:root{--bg:#0f1218;--side:#161b24;--card:#1c2230;--line:#2a3345;--txt:#e6e9ef;--muted:#8a93a6;--acc:#e0322b;--acc2:#ff5a4f;--ok:#2ecc71;--bad:#e74c3c;--warn:#f1c40f;--info:#3498db;--gold:#f39c12}
*{box-sizing:border-box}body{margin:0;font:14px/1.45 system-ui,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--txt)}
a{color:#7fb3ff;text-decoration:none}a:hover{text-decoration:underline}code{font-family:Consolas,monospace;font-size:12.5px;background:#0b0e14;padding:1px 5px;border-radius:4px}code.small{font-size:11px;word-break:break-all}
.layout{display:flex;min-height:100vh}.side{width:220px;background:var(--side);border-right:1px solid var(--line);padding:18px 14px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.brand{font-weight:700;font-size:15px;display:flex;align-items:center;gap:8px;margin-bottom:18px}.brand.big{font-size:20px;justify-content:center;margin-bottom:4px}.dot{width:10px;height:10px;border-radius:50%;background:var(--acc);box-shadow:0 0 10px var(--acc)}
nav a{display:block;padding:9px 10px;border-radius:6px;color:var(--txt);margin-bottom:2px}nav a.on,nav a:hover{background:#242c3b;text-decoration:none}
.who{margin-top:auto;font-size:12.5px;color:var(--muted);border-top:1px solid var(--line);padding-top:10px}.tag{background:var(--acc);color:#fff;padding:0 6px;border-radius:10px;font-size:10px}
button.link{background:none;border:0;color:#7fb3ff;cursor:pointer;padding:0;font:inherit}
.main{flex:1;padding:22px 28px;max-width:1300px}h1{font-size:22px;margin:0 0 16px}h2{font-size:15px;margin:0 0 10px;color:#c7cdda}h3{font-size:13px;margin:14px 0 6px;color:var(--muted)}
.muted{color:var(--muted)}.r{text-align:right}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px;margin-bottom:16px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:16px}.stat{text-align:center;padding:14px}.stat .n{font-size:28px;font-weight:700}.stat .l{color:var(--muted);font-size:12px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:900px){.grid2{grid-template-columns:1fr}.side{display:none}}
.tbl{width:100%;border-collapse:collapse}.tbl th{text-align:left;color:var(--muted);font-weight:600;font-size:12px;padding:6px 8px;border-bottom:1px solid var(--line)}.tbl td{padding:7px 8px;border-bottom:1px solid #222a38;vertical-align:middle}.tbl tr:last-child td{border-bottom:0}.tbl.kv td:first-child{color:var(--muted);width:38%}.tbl.small td{font-size:12.5px;padding:5px 8px}
.pill{display:inline-block;padding:1px 8px;border-radius:10px;font-size:11px;background:#2a3345;color:#cfd6e4;margin-right:4px}.pill.ok{background:#1d4d33;color:#7ee2a8}.pill.bad{background:#5a1f1f;color:#ff9b93}.pill.warn{background:#5a4a10;color:#ffe08a}.pill.info{background:#1e3f5c;color:#8fc9ff}.pill.gold{background:#5a3d10;color:#ffcf7a}
.btn{background:#2a3345;color:var(--txt);border:1px solid #3a4560;border-radius:6px;padding:7px 12px;cursor:pointer;font:inherit}.btn:hover{background:#344059}.btn.primary{background:var(--acc);border-color:var(--acc)}.btn.primary:hover{background:var(--acc2)}.btn.danger{background:#7a2323;border-color:#7a2323}.btn.warn{background:#6b5410;border-color:#6b5410}.btn.ghost{background:transparent}.btn.tiny{padding:3px 8px;font-size:12px}.btn.wide{width:100%}
input,textarea{background:#0b0e14;border:1px solid var(--line);color:var(--txt);border-radius:6px;padding:7px 9px;font:inherit;width:100%}input:disabled{color:var(--muted);background:#141923}textarea{resize:vertical}
label{display:block;font-size:12.5px;color:var(--muted);margin-bottom:8px}label input,label textarea{margin-top:4px}label.chk{display:flex;gap:8px;align-items:center}label.chk input{width:auto;margin:0}
form.inline{display:flex;gap:8px;align-items:center}form.inline input{width:auto;flex:1}form.stack{display:flex;flex-direction:column;gap:6px;max-width:520px}
.actions{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.actions form{margin:0}
.search{display:flex;gap:8px;margin-bottom:14px}.search input{max-width:420px}
.pager a{display:inline-block;padding:4px 9px;border-radius:5px;margin-right:4px;background:#1c2230}.pager a.on{background:var(--acc);color:#fff}
.flash{padding:10px 14px;border-radius:8px;margin-bottom:14px;border:1px solid}.flash.ok{background:#173324;border-color:#2e6b48;color:#a8f0c6}.flash.err{background:#3a1717;border-color:#7a2b2b;color:#ffb3ad}
.persona{display:grid;grid-template-columns:2fr repeat(4,1fr) auto;gap:10px;align-items:end;padding:10px 0;border-bottom:1px solid var(--line)}.persona .pname{font-weight:600;align-self:center}.persona label{margin:0}@media(max-width:900px){.persona{grid-template-columns:1fr 1fr}}
ul.plain{list-style:none;padding:0;margin:0 0 10px}ul.plain li{padding:2px 0}
.sticky{position:sticky;bottom:0;background:linear-gradient(transparent,var(--bg) 40%);padding:16px 0 4px}
.login-body{display:flex;align-items:center;justify-content:center;min-height:100vh}.login-box{width:340px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:26px}.login-box p{text-align:center;margin:0 0 18px}
