:root{--bg:#0b0d12;--card:#141821;--line:#252b38;--fg:#e8ebf2;--mut:#8b93a7;--acc:#8b5cf6;--ok:#22c55e;--bad:#ef4444;--warn:#f59e0b;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font-size:15px}
a{color:#c4b5fd}h1,h2,h3{margin:.2em 0 .6em}h2{font-size:1.1rem}h3{font-size:.95rem;display:flex;gap:.5em;align-items:baseline;flex-wrap:wrap}h3 small{color:var(--mut);font-weight:400;font-size:.75rem}
.top{display:flex;align-items:center;gap:1rem;padding:.7rem 1rem;border-bottom:1px solid var(--line);position:sticky;top:0;background:rgba(11,13,18,.95);backdrop-filter:blur(6px);z-index:5;flex-wrap:wrap}
.brand{font-weight:800;letter-spacing:.2px}.pill{font-size:.7rem;background:#2e1065;color:#ddd6fe;padding:.1rem .45rem;border-radius:99px;margin-left:.3rem}
nav{display:flex;gap:.25rem;flex:1;overflow-x:auto}nav button{background:none;border:0;color:var(--mut);padding:.45rem .7rem;border-radius:8px;cursor:pointer;font-size:.92rem;white-space:nowrap}nav button.on{background:var(--card);color:var(--fg)}
main{padding:1rem;max-width:1500px;margin:0 auto}.tab{display:none}.tab.on{display:block}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:1rem;margin-bottom:1rem}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem}
label{display:block;margin:.5rem 0;font-size:.85rem;color:var(--mut)}label.row{display:flex;gap:.5rem;align-items:center}
input,textarea,select{width:100%;background:#0d1017;border:1px solid var(--line);color:var(--fg);border-radius:9px;padding:.55rem .65rem;font:inherit;margin-top:.25rem}
input[type=checkbox]{width:auto;margin:0}textarea{resize:vertical}
.btn{display:inline-block;background:#1d2330;border:1px solid var(--line);color:var(--fg);padding:.5rem .85rem;border-radius:9px;cursor:pointer;font:inherit;text-decoration:none;font-size:.9rem}
.btn:hover{border-color:#3a4256}.btn.primary{background:var(--acc);border-color:var(--acc);color:#fff}.btn.ok{background:#14532d;border-color:#166534}.btn.bad{background:#450a0a;border-color:#7f1d1d}
.btn.sm{padding:.3rem .55rem;font-size:.8rem}.btn.ghost{background:none}.btn[disabled]{opacity:.45;cursor:not-allowed}
.row{display:flex;gap:.5rem;align-items:center}.wrap{flex-wrap:wrap}.muted{color:var(--mut)}.err{color:#fca5a5}
.toolbar{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.toolbar select{width:auto;margin:0}
.kanban{display:grid;grid-template-columns:repeat(4,minmax(260px,1fr));gap:.8rem;overflow-x:auto}
.col{background:#0f1219;border:1px solid var(--line);border-radius:14px;padding:.6rem;min-height:200px}.col .n{color:var(--mut);font-weight:400}
.item{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:.7rem;margin-bottom:.6rem}
.item .meta{display:flex;gap:.4rem;flex-wrap:wrap;font-size:.75rem;color:var(--mut);margin-bottom:.35rem}
.tag{background:#1e2533;border-radius:6px;padding:.05rem .4rem}.tag.ai{background:#3b0764;color:#e9d5ff}.tag.ex{background:#422006;color:#fde68a}
.item .title{font-weight:650;margin-bottom:.3rem}.item .body{white-space:pre-wrap;font-size:.88rem;max-height:220px;overflow:auto;border-left:2px solid var(--line);padding-left:.5rem}
.item .acts{display:flex;gap:.3rem;flex-wrap:wrap;margin-top:.5rem}.item img,.item video{width:100%;border-radius:8px;margin-top:.4rem;display:block}.item audio{width:100%;margin-top:.4rem}
.job{font-size:.78rem;margin-top:.35rem}.job.running{color:var(--warn)}.job.error{color:#fca5a5}
.score{display:flex;gap:.6rem;align-items:flex-start;padding:.55rem 0;border-bottom:1px solid var(--line)}.score:last-child{border:0}
.bar{height:6px;border-radius:3px;background:#1e2533;overflow:hidden;margin-top:.3rem}.bar i{display:block;height:100%;background:var(--acc)}
.st{display:flex;justify-content:space-between;gap:1rem;padding:.4rem 0;border-bottom:1px solid var(--line);font-size:.88rem}.st b{font-weight:600}.st span{text-align:right}
.ready{color:#86efac}.nc{color:#fcd34d}.soon{color:var(--mut)}
#banner .warn{background:#422006;color:#fde68a;padding:.6rem 1rem;font-size:.9rem}
dialog{background:var(--card);color:var(--fg);border:1px solid var(--line);border-radius:14px;width:min(760px,96vw);max-height:90vh;padding:1rem}dialog::backdrop{background:rgba(0,0,0,.6)}
.chips{display:flex;gap:.3rem;flex-wrap:wrap}.chip{font-size:.75rem;background:#1e2533;padding:.15rem .5rem;border-radius:99px}
.login{display:grid;place-items:center;min-height:100vh}.loginbox{width:min(360px,92vw)}.loginbox button{width:100%;margin-top:.6rem}
@media (max-width:820px){.top nav{order:3;flex-basis:100%}.brand{flex:1}.grid2{grid-template-columns:1fr}.kanban{grid-template-columns:repeat(4,85vw);scroll-snap-type:x mandatory}.col{scroll-snap-align:start}main{padding:.6rem}}
