:root{--brun:#3D291F;--brun-soft:#6B5347;--beige:#F3ECE4;--blanc:#FCFAF7;--line:#E3D9CC;--red:#B3453B;--green:#3E6B4F}
*{box-sizing:border-box}
body{margin:0;font-family:'Jost',Arial,sans-serif;background:var(--beige);color:var(--brun);font-size:15px;line-height:1.5}
a{color:inherit}
.wrap{max-width:1080px;margin:0 auto;padding:0 1.5rem}
.topbar{background:var(--brun);color:var(--blanc);padding:1rem 1.5rem;display:flex;align-items:center;justify-content:space-between}
.topbar a{color:var(--blanc);text-decoration:none;font-size:.85rem;letter-spacing:.05em}
.topbar .brand{font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.topbar nav{display:flex;gap:1.4rem;flex-wrap:wrap}
.topbar nav a{opacity:.85}
.topbar nav a:hover,.topbar nav a.is-current{opacity:1;text-decoration:underline}
.topbar-refresh{background:transparent;border:1px solid rgba(252,250,247,.5);color:var(--blanc);font-size:.72rem;letter-spacing:.04em;padding:.4rem .8rem;border-radius:4px;cursor:pointer;white-space:nowrap}
.topbar-refresh:hover{background:rgba(252,250,247,.12);border-color:var(--blanc)}
main{padding:2.5rem 0 4rem}
h1{font-size:1.7rem;margin:0 0 .3rem;font-weight:600}
h2{font-size:1.2rem;margin:2rem 0 1rem;font-weight:600}
.muted{color:var(--brun-soft)}
.card{background:var(--blanc);border:1px solid var(--line);border-radius:8px;padding:1.5rem;margin-bottom:1.5rem}
.btn{display:inline-block;background:var(--brun);color:var(--blanc);border:1px solid var(--brun);padding:.6rem 1.2rem;border-radius:5px;text-decoration:none;font-size:.85rem;cursor:pointer;letter-spacing:.02em}
.btn:hover{opacity:.88}
.btn--outline{background:transparent;color:var(--brun)}
.btn--danger{background:var(--red);border-color:var(--red)}
.btn--sm{padding:.4rem .8rem;font-size:.78rem}
table{width:100%;border-collapse:collapse;font-size:.9rem}
th,td{text-align:left;padding:.7rem .5rem;border-bottom:1px solid var(--line)}
th{color:var(--brun-soft);font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em}
tr:hover td{background:#faf6f0}
.thumb{width:64px;height:44px;object-fit:cover;border-radius:4px;background:var(--beige)}
.thumb-ph{width:64px;height:44px;border-radius:4px;background:repeating-linear-gradient(45deg,#e9e0d4 0 6px,var(--beige) 6px 12px)}
form label{display:block;font-size:.8rem;font-weight:600;margin:1.1rem 0 .35rem;color:var(--brun-soft)}
form input[type=text],form input[type=email],form input[type=password],form input[type=number],form textarea,form select{
  width:100%;padding:.6rem .7rem;border:1px solid var(--line);border-radius:5px;font-family:inherit;font-size:.92rem;background:var(--blanc);color:var(--brun)}
form textarea{resize:vertical}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 1.5rem}
.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0 1.5rem}
.checks{display:flex;flex-wrap:wrap;gap:.6rem 1.4rem;margin-top:.5rem}
.checks label{display:flex;align-items:center;gap:.4rem;font-weight:400;margin:0;font-size:.88rem;color:var(--brun)}
.checks input{width:auto}
.wordcount{font-size:.78rem;color:var(--brun-soft);margin-top:.3rem}
.wordcount.over{color:var(--red);font-weight:600}
.actions{margin-top:2rem;display:flex;gap:.8rem;align-items:center}
.flash{padding:.9rem 1.1rem;border-radius:6px;margin-bottom:1.5rem;font-size:.9rem}
.flash--ok{background:#E8F1EA;color:var(--green);border:1px solid #C3DEC9}
.flash--err{background:#F7E7E5;color:var(--red);border:1px solid #E6C3BF}
.photos-grid{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:.6rem}
.photo-item{position:relative;width:120px}
.photo-item img{width:120px;height:90px;object-fit:cover;border-radius:5px;border:1px solid var(--line);display:block}
.photo-item .cover-badge{position:absolute;top:4px;left:4px;background:var(--brun);color:var(--blanc);font-size:.62rem;padding:.15rem .4rem;border-radius:3px;letter-spacing:.05em;z-index:1}
.photo-item label{display:flex;align-items:center;gap:.3rem;font-weight:400;font-size:.72rem;margin:.35rem 0 0;color:var(--brun-soft)}
.photo-del{position:absolute;top:4px;right:4px;z-index:2;width:20px;height:20px;line-height:18px;padding:0;border:none;border-radius:50%;background:rgba(61,41,31,.78);color:var(--blanc);font-size:.7rem;cursor:pointer;text-align:center}
.photo-del:hover{background:var(--red)}
.photo-positions{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.4rem}
.pos-btn{min-width:20px;height:20px;padding:0 .3rem;border:1px solid var(--line);border-radius:3px;background:var(--blanc);color:var(--brun-soft);font-size:.68rem;cursor:pointer}
.pos-btn:hover{border-color:var(--brun)}
.pos-btn.is-active{background:var(--brun);border-color:var(--brun);color:var(--blanc)}
.banner-btn{display:block;width:100%;margin-top:.3rem;padding:.25rem .3rem;border:1px solid var(--line);border-radius:3px;background:var(--blanc);color:var(--brun-soft);font-size:.62rem;letter-spacing:.02em;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.banner-btn:hover{border-color:var(--brun);color:var(--brun)}
.banner-btn.is-active{background:var(--brun);border-color:var(--brun);color:var(--blanc);cursor:default}
#photoActionMsg{color:var(--brun-soft)}
#photoActionMsg.hint--err{color:var(--red)}
.login-wrap{max-width:380px;margin:6rem auto;padding:0 1.5rem}
.login-wrap .card{padding:2rem}
.hint{font-size:.78rem;color:var(--brun-soft);margin-top:.35rem}
.dropzone{border:1.5px dashed var(--line);border-radius:6px;padding:1.4rem;text-align:center;color:var(--brun-soft);font-size:.85rem;margin-top:.6rem}
.badge{display:inline-block;background:var(--beige);border:1px solid var(--line);border-radius:4px;padding:.15rem .5rem;font-size:.72rem;margin-right:.3rem}
