:root{--bg:#121316;--panel:#1b1d22;--panel2:#23262d;--line:#2f333b;--text:#e7e8ea;--mute:#959aa3;
--acc:#f1641e;--acc2:#ff8a4c;--ok:#3fb27f;--warn:#e0a63a;--err:#e5534b;--radius:10px}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
a{color:var(--acc2);text-decoration:none}a:hover{text-decoration:underline}
header{display:flex;align-items:center;gap:18px;padding:12px 22px;border-bottom:1px solid var(--line);background:var(--panel);flex-wrap:wrap}
header .brand{font-weight:700;letter-spacing:.3px;color:var(--text)}
header .brand span{color:var(--acc)}
nav{display:flex;gap:4px;flex-wrap:wrap;flex:1}
nav a{color:var(--mute);padding:6px 10px;border-radius:7px}
nav a:hover,nav a.on{background:var(--panel2);color:var(--text);text-decoration:none}
main{max-width:1250px;margin:0 auto;padding:22px 16px 60px}
h1{font-size:21px;margin:0 0 16px}h2{font-size:16px;margin:24px 0 10px}h3{font-size:14px;margin:0 0 8px;color:var(--mute);font-weight:600}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin-bottom:16px}
.grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.stat{font-size:26px;font-weight:700}.mute{color:var(--mute)}.small{font-size:12px}
label{display:block;font-size:12px;color:var(--mute);margin:10px 0 4px}
input[type=text],input[type=password],input[type=number],input[type=url],select,textarea{width:100%;background:var(--panel2);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:8px 10px;font:inherit}
textarea{min-height:90px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--acc)}
.check{display:flex;align-items:center;gap:8px;color:var(--text);font-size:14px;margin:10px 0}
.btn{display:inline-block;background:var(--panel2);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:7px 13px;font:inherit;cursor:pointer;white-space:nowrap}
.btn:hover{border-color:var(--mute);text-decoration:none}
.btn.pri{background:var(--acc);border-color:var(--acc);color:#fff}.btn.pri:hover{background:var(--acc2)}
.btn.danger{color:var(--err)}.btn.sm{padding:3px 9px;font-size:12px}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.row>*{flex:0 0 auto}.grow{flex:1 1 auto!important}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:8px;border-bottom:1px solid var(--line);vertical-align:top}
th{color:var(--mute);font-weight:600;font-size:12px;position:sticky;top:0;background:var(--panel)}
tr:hover td{background:#1f2227}
.tbl-wrap{overflow:auto;max-height:70vh;border:1px solid var(--line);border-radius:var(--radius)}
.badge{display:inline-block;padding:1px 8px;border-radius:20px;font-size:11px;font-weight:600;background:var(--panel2);color:var(--mute)}
.b-ok,.b-sent,.b-published,.b-active{background:#1d3a2d;color:var(--ok)}
.b-pending,.b-draft{background:#3a321d;color:var(--warn)}
.b-error,.b-nolink,.b-mixed{background:#3d1f1d;color:var(--err)}
.flash{padding:10px 14px;border-radius:8px;margin-bottom:12px;border:1px solid}
.flash.ok{border-color:#2a5a43;background:#16261e}.flash.err{border-color:#6b2a27;background:#2a1716}.flash.warn{border-color:#6b5427;background:#2a2316}
.diff del{color:#ff8f87;text-decoration:line-through}.diff ins{color:#7fe0ad;text-decoration:none}
.tags span{display:inline-block;background:var(--panel2);border-radius:5px;padding:0 6px;margin:1px;font-size:12px}
.help{font-size:12px;color:var(--mute);margin-top:4px}
code{background:var(--panel2);padding:1px 5px;border-radius:4px;font-size:12px}
details summary{cursor:pointer;color:var(--acc2)}
.login{max-width:340px;margin:12vh auto}
pre{white-space:pre-wrap;background:var(--panel2);padding:10px;border-radius:8px;font-size:12px;margin:0}
.progress{height:6px;background:var(--panel2);border-radius:4px;overflow:hidden;margin:10px 0}
.progress>div{height:100%;width:0;background:var(--acc);transition:width .2s}
@media (max-width:700px){header{padding:10px 16px}th,td{padding:6px}}
