:root{
  --bg:#0f1115; --surface:#171a21; --surface-2:#1e2230; --border:#2a2f3d;
  --text:#e6e8ee; --muted:#8b91a3; --accent:#5b8def;
  --ok:#3fb96f; --warn:#d9a13b; --danger:#d95b5b;
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:24px; --s6:32px;
  --r1:6px; --r2:10px;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);
  font:14px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
h1{font-size:24px;margin:var(--s5) 0 var(--s4)}
h2{font-size:16px;margin:var(--s5) 0 var(--s3);color:var(--muted);
  text-transform:uppercase;letter-spacing:.04em;font-weight:600}
main{max-width:1100px;margin:0 auto;padding:0 var(--s4) var(--s6)}
.topnav{position:sticky;top:0;z-index:10;display:flex;gap:var(--s4);
  align-items:center;padding:var(--s3) var(--s4);background:var(--surface);
  border-bottom:1px solid var(--border);overflow-x:auto;white-space:nowrap}
.topnav a{color:var(--text)}
.topnav form{margin-left:auto}
.navbadge{background:var(--warn);color:#111;border-radius:999px;
  padding:0 var(--s2);font-size:12px;font-weight:600}
.card{background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r2);padding:var(--s4);margin-bottom:var(--s4)}
.grid{display:grid;gap:var(--s4);grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.muted{color:var(--muted)}
.badge{display:inline-block;padding:1px var(--s2);border-radius:999px;
  background:var(--surface-2);border:1px solid var(--border);font-size:12px}
.badge--review{border-color:var(--warn);color:var(--warn)}
.badge--waiting_facts{border-color:var(--warn);color:var(--warn)}
.badge--approved,.badge--scheduled{border-color:var(--ok);color:var(--ok)}
.badge--published{color:var(--muted)}
.badge--failed,.badge--rejected{border-color:var(--danger);color:var(--danger)}
.badge--generating,.badge--editing{border-color:var(--accent);color:var(--accent)}
.badge--ok{border-color:var(--ok);color:var(--ok)}
.badge--warn{border-color:var(--warn);color:var(--warn)}
input,textarea,select,button{font:inherit;background:var(--surface-2);
  color:var(--text);border:1px solid var(--border);border-radius:var(--r1);
  padding:var(--s2) var(--s3)}
textarea{width:100%;min-height:14rem}
.btn{cursor:pointer;background:var(--accent);border:0;color:#fff;font-weight:500}
.btn--danger{background:var(--danger)}
.btn--warn{background:var(--warn);color:#111}
.btn--ghost{background:transparent;border:1px solid var(--border);color:var(--text)}
.chips{display:flex;gap:var(--s2);flex-wrap:wrap;margin:var(--s3) 0}
.chip{padding:2px var(--s3);border-radius:999px;border:1px solid var(--border);
  color:var(--muted);background:var(--surface)}
.chip--active{border-color:var(--accent);color:var(--text);background:var(--surface-2)}
.table-wrap{overflow-x:auto}
table{border-collapse:collapse;width:100%}
td,th{border-bottom:1px solid var(--border);padding:var(--s2) var(--s3);
  text-align:left;vertical-align:top}
th{color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase}
.kpi{background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r2);padding:var(--s4)}
.kpi b{display:block;font-size:24px;margin-bottom:var(--s1)}
.kpi .delta--up{color:var(--ok)} .kpi .delta--down{color:var(--danger)}
.sticky-actions{position:sticky;top:49px;z-index:5;background:var(--surface);
  border:1px solid var(--border);border-radius:var(--r2);padding:var(--s3) var(--s4);
  display:flex;gap:var(--s2);align-items:center;flex-wrap:wrap;margin-bottom:var(--s4)}
.tabs input[type=radio]{display:none}
.tabs label{cursor:pointer;padding:var(--s2) var(--s3);color:var(--muted);
  border-bottom:2px solid transparent}
.tabs input#tab-view:checked ~ .tabbar label[for=tab-view],
.tabs input#tab-edit:checked ~ .tabbar label[for=tab-edit]{
  color:var(--text);border-color:var(--accent)}
.tabs .pane{display:none}
.tabs input#tab-view:checked ~ .pane--view{display:block}
.tabs input#tab-edit:checked ~ .pane--edit{display:block}
.prose img{max-width:100%}
.msg{color:var(--ok);margin:var(--s2) 0}
details{margin:var(--s3) 0}
details summary{cursor:pointer;color:var(--muted)}
form.inline{display:inline}
@media (max-width:640px){
  h1{font-size:20px}
  .sticky-actions{position:static}
}
