*{box-sizing:border-box}
body{margin:0;background:var(--ink-950);color:var(--text-hi);font:16px/1.55 var(--font-ui)}
.top{flex-wrap:wrap;gap:6px;display:flex;justify-content:space-between;align-items:center;padding:14px 20px;border-bottom:1px solid var(--line)}
.brand{display:flex;gap:10px;align-items:center}
.wm{font:700 19px var(--font-display)}.pn{font:500 19px var(--font-display);color:var(--text-mid)}
.tag{font:500 12px var(--font-mono);color:var(--text-mid);letter-spacing:.06em}
main{max-width:var(--wrap);margin:0 auto;padding:20px}
h1{font:700 clamp(28px,5vw,46px)/1.1 var(--font-display);margin:10px 0 10px;max-width:22ch}
.intro p:not(.eyebrow){color:var(--text-mid);max-width:60ch;margin:0 0 20px}
.drop{border:1.5px dashed var(--line-strong);border-radius:var(--radius-l);padding:24px;background:var(--ink-900);text-align:center}
.drop.over{border-color:var(--volt);background:var(--volt-soft)}
.drop p{color:var(--text-mid);margin:10px 0 0;font-size:14px}
#files{position:absolute;opacity:0;width:1px;height:1px}
.pick,.btn,button{font:600 15px var(--font-ui);border-radius:var(--radius-m);padding:10px 16px;border:1px solid var(--volt);cursor:pointer;display:inline-block;min-height:44px}
.pick,.primary{background:var(--volt);color:var(--on-volt)}
.pick:hover,.primary:hover{filter:brightness(.92)}
.ghost{background:transparent;color:var(--volt)}
.ghost:hover{background:var(--volt-soft)}
button:disabled{opacity:.4;cursor:not-allowed}
:focus-visible{outline:3px solid var(--volt);outline-offset:2px}
#files:focus-visible+.pick,.drop:focus-within .pick{outline:3px solid #fff;outline-offset:2px}
.grid{display:grid;grid-template-columns:330px 1fr;gap:18px;margin-top:18px;align-items:start}
.panel{background:var(--ink-900);border:1px solid var(--line);border-radius:var(--radius-l);padding:18px;min-width:0}
h2{font:700 18px var(--font-display);margin:0 0 10px}
label{display:block;font-size:14px;margin:10px 0;color:var(--text-mid)}
input[type=number],input[type=text],select{display:block;width:100%;font:inherit;padding:9px;margin-top:4px;border:1px solid var(--line-strong);border-radius:8px;background:var(--ink-850);color:var(--text-hi);min-height:44px}
input[type=range]{width:100%;accent-color:#D6FF3F}
input[type=checkbox]{accent-color:#D6FF3F;width:24px;height:24px;flex:none}
input[type=color]{display:block;margin-top:4px;height:40px;width:70px;background:var(--ink-850);border:1px solid var(--line-strong)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.chk{min-height:44px;display:flex;gap:8px;align-items:center;color:var(--text-hi)}
.hint{font-size:13px;color:var(--text-mid);margin:0}
.btns{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
.status{font-size:14px;margin:6px 0 12px;color:var(--text-mid)}
.list{list-style:none;margin:0;padding:0}
.item{display:grid;grid-template-columns:64px 1fr auto;gap:12px;padding:12px 0;border-top:1px solid var(--line);align-items:center}
.item img,.item .ph,.item .th{width:64px;height:64px;max-width:none;object-fit:cover;flex:none;border-radius:8px;background:var(--ink-800);background-image:linear-gradient(45deg,#2a3340 25%,transparent 25%,transparent 75%,#2a3340 75%),linear-gradient(45deg,#2a3340 25%,transparent 25%,transparent 75%,#2a3340 75%);background-size:12px 12px;background-position:0 0,6px 6px}
.item>div{min-width:0}
.item .nm{overflow-wrap:anywhere;font-weight:600;word-break:break-all}
.item .meta{font:400 12px var(--font-mono);color:var(--text-mid)}
.state{font-size:13px;font-weight:600}
.state.ok{color:var(--ok)}.state.warn{color:var(--warn)}.state.bad{color:var(--danger)}
.item a{font-size:14px;color:var(--volt);display:inline-flex;align-items:center;min-height:44px;padding:0 12px;border:1px solid var(--line-strong);border-radius:var(--radius-m);text-decoration:none}
.notes{margin-top:28px;color:var(--text-mid);font-size:14px}
@media(max-width:800px){.grid{grid-template-columns:1fr}.grid>.panel+.panel{order:-1}.item{grid-template-columns:48px 1fr}.item .act{grid-column:1/-1}.item img,.item .ph,.item .th{width:48px;height:48px}}
@media(prefers-reduced-motion:no-preference){button{transition:filter .15s,background .15s}}
.notes a{color:var(--volt)}
.stale{background:rgba(255,176,32,.12);border:1px solid var(--warn);color:var(--warn);border-radius:8px;padding:8px 12px;font-size:14px;margin:8px 0}
[hidden]{display:none!important}
