:root{--bg:#f6f7f9;--fg:#1b1f24;--mut:#6b7280;--line:#dfe3e8;--card:#fff;--acc:#2563eb;--ok:#15803d;--warn:#b45309;--bad:#b91c1c;--auto:#7c3aed}
@media (prefers-color-scheme:dark){:root{--bg:#0f1317;--fg:#e6e8eb;--mut:#9aa3ad;--line:#2a3138;--card:#161b21;--acc:#60a5fa;--ok:#4ade80;--warn:#fbbf24;--bad:#f87171;--auto:#c4b5fd}}
*{box-sizing:border-box}body{margin:0;font:14px/1.45 system-ui,sans-serif;background:var(--bg);color:var(--fg)}
a{color:var(--acc);text-decoration:none}a:hover{text-decoration:underline}
nav.top{display:flex;gap:14px;align-items:center;padding:8px 16px;background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5;flex-wrap:wrap}
nav .brand{font-weight:700;color:var(--fg)}nav .spacer,.spacer{flex:1}
main{padding:16px;max-width:1500px;margin:0 auto}
h1{font-size:22px;margin:4px 0 12px}h2{font-size:17px;margin:18px 0 8px}h3{font-size:15px;margin:14px 0 6px}
.badge{background:var(--acc);color:#fff;border-radius:10px;padding:0 7px;font-size:11px}.badge.busy{background:var(--warn)}
.flash{background:#dcfce7;color:#14532d;padding:8px 12px;border-radius:6px;margin-bottom:12px}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:16px}
.tile{display:block;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:12px;color:var(--fg)}.tile b{display:block;font-size:24px}.tile span{color:var(--mut);font-size:12px}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:20px}@media(max-width:900px){.cols{grid-template-columns:1fr}}
table.list{width:100%;border-collapse:collapse}table.list td,table.list th{padding:6px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
table.kv th{text-align:left;color:var(--mut);padding:2px 10px 2px 0;font-weight:500}
img.thumb{width:40px;height:40px;object-fit:cover;border-radius:4px}img.big{width:220px;max-width:45%;border-radius:6px;margin-right:6px}
.st{display:inline-block;padding:1px 7px;border-radius:9px;font-size:11px;background:var(--line)}
.st-done,.st-accepted{color:var(--ok)}.st-failed,.st-rejected,.st-not_a_face{color:var(--bad)}.st-running,.st-processing,.st-pending{color:var(--warn)}.st-auto{color:var(--auto)}
.err{color:var(--bad)}.warn{color:var(--warn)}.empty{color:var(--mut)}.hint{color:var(--mut);font-size:12px}
kbd{border:1px solid var(--line);border-radius:3px;padding:0 4px;font-size:11px;background:var(--card)}
.card{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:12px;margin-bottom:12px}.card.narrow{max-width:520px}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.tabs a{padding:5px 10px;border:1px solid var(--line);border-radius:16px;color:var(--fg)}.tabs a.on{background:var(--acc);color:#fff;border-color:var(--acc)}
form.filters{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
input,select,textarea,button{font:inherit;padding:5px 8px;border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--fg)}
textarea{width:100%;min-height:70px;font-family:ui-monospace,monospace}
button{cursor:pointer}button.ok{background:var(--ok);color:#fff;border-color:var(--ok)}button.muted{color:var(--mut)}button.sm{padding:2px 8px;font-size:12px}button.x{padding:0 6px;line-height:1.2}
form.inline{display:inline}.danger button{color:var(--bad)}
.cards{display:flex;flex-direction:column;gap:10px}
.card.review{display:grid;grid-template-columns:260px 1fr;gap:14px;outline:none}.card.review:focus{border-color:var(--acc);box-shadow:0 0 0 2px color-mix(in srgb,var(--acc) 30%,transparent)}
@media(max-width:700px){.card.review{grid-template-columns:1fr}}
.subject img.ctx{width:100%;max-height:240px;object-fit:contain;background:#000;border-radius:6px}
.strip{display:flex;gap:4px;margin:6px 0;overflow-x:auto}.strip img{width:56px;height:56px;object-fit:cover;border-radius:4px}.strip.wrap{flex-wrap:wrap}.strip a{position:relative}.strip a small{position:absolute;bottom:0;right:2px;font-size:10px;background:rgba(0,0,0,.6);color:#fff;padding:0 3px;border-radius:3px}
.ex{position:relative}.ex form{position:absolute;top:-6px;right:-2px}
.cands{display:flex;flex-direction:column;gap:6px}
.cand{display:grid;grid-template-columns:56px 1fr auto;gap:10px;align-items:center;padding:6px;border:1px solid var(--line);border-radius:6px}.cand.top{border-color:var(--acc)}
.cand img{width:56px;height:56px;object-fit:cover;border-radius:4px}.noimg{display:inline-block;width:56px;height:56px;border-radius:4px;background:var(--line);font-size:10px;text-align:center;line-height:56px;color:var(--mut)}
.score{font-size:15px}.score.auto{color:var(--auto)}.score.review{color:var(--warn)}.score.below_floor{color:var(--mut)}
.btns{display:flex;gap:4px}
form.other{display:flex;gap:4px;flex-wrap:wrap;align-items:center;margin-top:4px}form.other input{min-width:140px;flex:1}
.card.decided{color:var(--mut);display:flex;gap:10px;align-items:center;padding:8px 12px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px}.grid.people{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.cell{display:block;background:var(--card);border:1px solid var(--line);border-radius:6px;padding:4px;text-align:center;color:var(--fg);overflow:hidden}.cell img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:4px}.cell small{display:block;color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cell.st-accepted,.cell.st-auto{border-color:var(--ok)}.cell.st-pending{border-color:var(--warn)}
video{width:100%;max-height:60vh;background:#000;border-radius:6px}
.imgwrap{position:relative;display:inline-block;max-width:100%}.imgwrap img{max-width:100%;display:block;border-radius:6px}.imgwrap svg{position:absolute;inset:0;width:100%;height:100%}.imgwrap rect{fill:transparent;stroke:var(--warn);stroke-width:3;vector-effect:non-scaling-stroke}.imgwrap rect.st-accepted,.imgwrap rect.st-auto{stroke:var(--ok)}
.trackrow[data-seek]{cursor:pointer}
.settings label{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:6px 0}.settings input,.settings select{width:9em}
body.login{display:grid;place-items:center;min-height:100vh}body.login input,body.login button{width:100%;margin:6px 0}
.more{text-align:center;color:var(--mut);padding:10px}.more-n{align-self:center;color:var(--mut)}
.btn{display:inline-block;padding:5px 10px;border:1px solid var(--line);border-radius:6px}
details summary{cursor:pointer;font-weight:600}
progress{width:200px}

input.w5{width:5em}
