:root{--ink:#111;--paper:#EDEDE6;--stone:#DDDDD4;--mute:#62625B;--accent:#EF5428;--deep:#DF4A1F;--line:#11111133;--font:'Helvetica Neue',Helvetica,Arial,sans-serif}
*{box-sizing:border-box}html,body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:15px;line-height:1.35;letter-spacing:-.01em}
button,input,textarea{font:inherit;color:inherit;letter-spacing:inherit}button{cursor:pointer;background:none;border:0;padding:0}
[hidden]{display:none!important}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.cap{font-size:11px;letter-spacing:.09em;text-transform:uppercase}.mk{width:30px;display:block}
.btn{background:var(--ink);color:var(--paper);padding:11px 18px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;transition:transform .16s}.btn:active{transform:scale(.97)}.btn.or{background:var(--accent);color:var(--ink)}.btn.ghost{background:none;color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.btn:disabled{opacity:.4;cursor:default}
.lnk{border-bottom:1px solid currentColor;padding-bottom:2px}.err{color:var(--deep);min-height:1.3em;margin:0}
.login{min-height:100svh;background:var(--ink);color:var(--paper);display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:26px;padding:6vw}.login .mk{width:56px}.login h1{margin:0;font-size:clamp(48px,9vw,130px);line-height:.9;letter-spacing:-.06em;text-transform:uppercase;font-weight:600}
.login form{display:flex;flex-direction:column;gap:12px;width:min(100%,380px)}.login input{background:none;border:0;border-bottom:1px solid var(--paper);padding:10px 0;font-size:20px;color:var(--paper);outline-offset:6px}.login .btn{background:var(--paper);color:var(--ink);align-self:flex-start}.login .err{color:var(--accent)}
.top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:20px;padding:12px 18px;background:var(--ink);color:var(--paper);flex-wrap:wrap}#tabs{display:flex;gap:16px;margin-right:auto;flex-wrap:wrap}#tabs button{font-size:13px;padding:4px 0;opacity:.6;border-bottom:1px solid transparent}#tabs button[aria-current=page]{opacity:1;border-color:currentColor}#state{color:#c8c8bf}
main{padding:20px 18px 80px}h2{font-size:clamp(26px,3.4vw,48px);line-height:.95;letter-spacing:-.05em;text-transform:uppercase;font-weight:600;margin:0 0 6px}h3{font-size:18px;letter-spacing:-.03em;margin:0;text-transform:uppercase;font-weight:600}.sub{color:var(--mute);margin:0 0 16px;max-width:70ch}
.layout{display:grid;grid-template-columns:320px minmax(0,1fr);gap:24px;align-items:start}.side{position:sticky;top:70px;max-height:calc(100vh - 90px);overflow:auto;padding-right:6px}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.chips button{box-shadow:inset 0 0 0 1px #11111155;padding:6px 10px;font-size:11px;letter-spacing:.05em;text-transform:uppercase}.chips button[aria-pressed=true]{background:var(--ink);color:var(--paper)}
.plist{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}.plist li{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:10px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line);cursor:pointer}.plist li[aria-current=true]{background:var(--stone);box-shadow:-18px 0 0 var(--stone)}.plist img{width:44px;height:44px;object-fit:cover;display:block;background:var(--stone)}.plist .t{font-weight:600;font-size:13px;line-height:1.1;text-transform:uppercase;letter-spacing:-.02em;overflow-wrap:anywhere}.plist .n{color:var(--mute);font-size:12px}.plist li.off{opacity:.45}.mv{display:flex;flex-direction:column}.mv button{font-size:11px;line-height:1;padding:3px 6px}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px;margin:14px 0}.f{display:flex;flex-direction:column;gap:4px;min-width:0}.f.wide{grid-column:1/-1}.f label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);display:flex;justify-content:space-between;gap:8px}.f input,.f textarea{width:100%;background:#fff;border:1px solid var(--line);padding:9px 10px;resize:vertical}.f .over{color:var(--deep)}
.bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:14px 0}.bar .grow{margin-right:auto}
.ph{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.ph figure{position:relative;margin:0;aspect-ratio:4/5;background:var(--stone);overflow:hidden;cursor:grab;outline:0 solid var(--accent)}.ph figure.sel{outline-width:3px;outline-offset:-3px}.ph figure.drag{opacity:.35}.ph figure.over{box-shadow:-5px 0 0 var(--accent)}.ph img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}
.ph .tl{position:absolute;left:6px;top:6px;display:flex;gap:4px;align-items:center}.ph .ck{width:20px;height:20px;accent-color:var(--accent);margin:0}.badge{background:var(--accent);color:var(--ink);padding:2px 6px;font-size:10px;letter-spacing:.06em;text-transform:uppercase}.ph .num{position:absolute;right:6px;top:6px;background:#111c;color:#fff;font-size:11px;padding:1px 5px}
.ph .act{position:absolute;left:0;right:0;bottom:0;display:flex;flex-wrap:wrap;gap:1px;background:#111e;color:#fff;font-size:11px}.ph .act button{flex:1;padding:6px 2px;white-space:nowrap}.ph .act button:hover{background:var(--accent);color:var(--ink)}
.group{border-top:2px solid var(--ink);padding:14px 0 22px}.group .hero{display:flex;gap:12px;align-items:center;margin:10px 0}.group .hero img{width:190px;height:110px;object-fit:cover;display:block;background:var(--stone)}
.ver{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}.ver li{display:flex;gap:14px;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
dialog{border:0;padding:20px;max-width:min(1100px,94vw);width:100%;background:var(--paper);color:var(--ink)}dialog::backdrop{background:#111c}dialog.small{max-width:480px}.pick{max-height:66vh;overflow:auto}.pick .ph figure{cursor:pointer;aspect-ratio:3/2}
.toast{position:fixed;left:18px;bottom:18px;z-index:40;background:var(--ink);color:var(--paper);padding:11px 15px;max-width:min(520px,90vw)}.toast.bad{background:var(--deep);color:#fff}
@media(max-width:860px){.layout{grid-template-columns:1fr}.side{position:static;max-height:280px}.fields{grid-template-columns:1fr}}
