:root{--bg:#0e1117;--card:#161b24;--line:#232a36;--text:#e8ebf0;--muted:#8b93a3;--accent:#4ad2ff;--ok:#3ddc97;--warn:#ffd24a;--err:#ff6b6b;font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,Roboto,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-size:15px;line-height:1.45}
a{color:var(--accent);text-decoration:none}main{max-width:1100px;margin:0 auto;padding:16px}
header.top{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line);background:#0b0e14;position:sticky;top:0;z-index:5}
.brand{color:#fff;font-weight:800}.brand span{color:var(--accent);font-weight:500}nav a{margin-left:14px;color:var(--muted)}
h2{font-size:20px;margin:0 0 12px}h3{font-size:16px;margin:16px 0 8px}h4{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:14px 0 6px}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px;margin-bottom:16px}
label{display:block;margin:10px 0;font-weight:600}label small{display:block;color:var(--muted);font-weight:400}
input[type=text],input[type=password],input:not([type]),textarea,select{width:100%;margin-top:6px;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:#0b0e14;color:var(--text);font:inherit}
input[type=file]{margin-top:6px;width:100%}
button{font:inherit;border:0;border-radius:10px;padding:10px 16px;background:#263040;color:var(--text);cursor:pointer}
button.primary{background:var(--accent);color:#04121a;font-weight:700}button.small{padding:4px 9px;font-size:12px;border-radius:8px}button.on{background:var(--warn);color:#111}button.ghost{background:transparent;color:var(--muted);border:1px solid var(--line)}
button:disabled{opacity:.5;cursor:default}
.chk{display:flex;gap:8px;align-items:center;font-weight:500}.toggles{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:4px 12px}
.muted{color:var(--muted)}.err{color:var(--err)}.ok{color:var(--ok)}.warn{color:var(--warn);font-style:normal;margin-left:6px;font-size:12px}.hint{color:var(--warn);font-size:14px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.project{padding:0;overflow:hidden;color:inherit;display:block}.project img,.project .ph{width:100%;aspect-ratio:9/12;object-fit:cover;background:#0b0e14}.project .meta{padding:10px 12px;display:grid;gap:2px}
.state{font-size:12px;color:var(--muted)}.state.done{color:var(--ok)}.state.error{color:var(--err)}.state.running,.state.queued{color:var(--warn)}
.progress,.status{position:relative;background:#0b0e14;border:1px solid var(--line);border-radius:10px;height:34px;overflow:hidden;margin:12px 0}
.progress .bar,.status .bar{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,#1e6f8c,var(--accent));transition:width .6s}
.progress span,.status span{position:relative;display:block;line-height:34px;padding:0 12px;font-size:13px}
.status.done .bar{background:var(--ok)}.status.error .bar{background:var(--err);width:100%!important}.hidden{display:none}
.head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.variants{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}
.variant header{display:flex;justify-content:space-between;align-items:center;gap:8px}.variant.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.variant video{width:100%;aspect-ratio:9/16;background:#000;border-radius:10px;max-height:70vh}.ph.tall{aspect-ratio:9/16;background:#0b0e14;border-radius:10px}
.tag{font-size:12px;background:var(--accent);color:#04121a;border-radius:20px;padding:3px 10px;font-weight:700}
.rationale{color:var(--muted);font-size:14px}.cuts{font-size:13px;padding-left:18px;max-height:220px;overflow:auto}.cuts small{color:var(--muted)}
.lockrow{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.overlays{list-style:none;padding:0;margin:0}.overlays li{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:start;padding:8px 0;border-top:1px solid var(--line);font-size:14px}
.overlays li.removed .txt{text-decoration:line-through;color:var(--muted)}.overlays .type{font-size:11px;text-transform:uppercase;background:#263040;border-radius:6px;padding:3px 6px;color:var(--muted)}
.overlays .acts{display:flex;gap:4px}.overlays .txt small{display:block}
.cands{grid-column:1/-1;display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}.cands figure{margin:0;cursor:pointer;border:2px solid transparent;border-radius:10px;overflow:hidden;background:#0b0e14}
.cands figure.chosen{border-color:var(--ok)}.cands img,.cands .ph{width:100%;aspect-ratio:1;object-fit:cover;display:block}.cands figcaption{font-size:11px;padding:6px;color:var(--muted)}
.media .slotrow{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line);flex-wrap:wrap}
.media .slotinfo{display:grid;gap:2px}.media input[type=file]{width:auto;max-width:60%;font-size:13px}
.assetlist{font-size:13px;color:var(--muted);padding-left:18px;margin:8px 0 0}
.budget-warn{border-color:var(--warn)}.budget-warn h3{color:var(--warn);margin-top:0}
.ph.tall{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}
.slot{grid-column:1/-1;display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:6px 0}
.slot .upl{font-size:13px;font-weight:600;margin:0}.slot input[type=file]{font-size:12px;margin-top:4px}
.chat{margin-top:12px;border-top:1px solid var(--line);padding-top:8px}.msg{padding:8px 12px;border-radius:12px;background:#0b0e14;margin:6px 0;font-size:14px}.msg.user{background:#1d2a3a;margin-left:24px}.msg.assistant{margin-right:24px}
.costs table{width:100%;font-size:13px;border-collapse:collapse}.costs td{padding:4px 6px;border-top:1px solid var(--line)}.costs td:last-child{text-align:right}
.fact.verified{color:var(--ok)}.fact.unverified{color:var(--err)}.fact.unchecked{color:var(--muted)}.transcript{font-size:13px;color:var(--muted)}
body.center{display:flex;min-height:100vh;align-items:center;justify-content:center;padding:16px}.login{width:100%;max-width:380px}.login h1{font-size:22px;text-align:center}.login h1 span{color:var(--accent);font-weight:500}
@media (max-width:640px){nav a{margin-left:10px;font-size:14px}main{padding:10px}.head{flex-direction:column}}
