:root{--bg:#0b0f17;--panel:#121826;--panel2:#0f1420;--border:#1f2937;--text:#e6edf6;--muted:#94a3b8;--dim:#64748b;--accent:#5b8cff;--accent2:#7c5cff;--good:#34d399;--warn:#fbbf24;--bad:#f87171;--high:#f472b6;--training:#a855f7}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font:14px/1.5 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:20px;margin:0 0 2px}h2{font-size:15px;margin:18px 0 10px;color:var(--text)}.small{font-size:12px;color:var(--muted)}.dim{color:var(--dim)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.layout{display:grid;grid-template-columns:224px 1fr;min-height:100vh}.side{background:var(--panel2);border-right:1px solid var(--border);padding:16px 12px;position:-webkit-sticky;position:sticky;top:0;height:100vh}.brand{font-weight:700;letter-spacing:.5px;padding:6px 8px 14px;display:flex;gap:8px;align-items:center}.brand .dot{width:10px;height:10px;border-radius:2px;background:linear-gradient(135deg,var(--accent),var(--accent2))}.nav a{display:block;padding:8px 10px;border-radius:8px;color:var(--muted);margin-bottom:2px}.nav a:hover{text-decoration:none}.nav a.active,.nav a:hover{background:var(--panel);color:var(--text)}.nav .sep{height:1px;background:var(--border);margin:10px 4px}.main{padding:24px 28px;max-width:1180px}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.grid{display:grid;grid-gap:14px;gap:14px}.g4{grid-template-columns:repeat(4,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g2{grid-template-columns:repeat(2,1fr)}@media(max-width:900px){.g2,.g3,.g4{grid-template-columns:1fr 1fr}}.card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px}.card h3{margin:0 0 8px;font-size:13px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.4px}.stat{font-size:28px;font-weight:700}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;border:1px solid var(--border);background:var(--panel2);color:var(--muted)}.badge.good{color:var(--good);border-color:#134e3a}.badge.warn{color:var(--warn);border-color:#4d3a10}.badge.bad{color:var(--bad);border-color:#4d1717}.badge.high{color:var(--high);border-color:#4d1740}.badge.accent{color:var(--accent);border-color:#1e3a6b}.badge.training{color:#fff;background:linear-gradient(135deg,#7c3aed,#a855f7);border:none}table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:9px 10px;border-bottom:1px solid var(--border);vertical-align:top}th{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--dim);font-weight:600}tr:hover td{background:var(--panel2)}.btn{display:inline-block;padding:8px 14px;border-radius:8px;border:1px solid var(--border);background:var(--panel);color:var(--text);cursor:pointer;font-size:13px}.btn:hover{border-color:var(--accent)}.btn.primary{background:linear-gradient(135deg,var(--accent),var(--accent2));border:none;color:#fff;font-weight:600}.btn.sm{padding:5px 10px;font-size:12px}input,select,textarea{background:var(--panel2);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:9px 11px;width:100%;font-size:14px}label{display:block;font-size:12px;color:var(--muted);margin:10px 0 4px}.center{min-height:100vh;display:flex;align-items:center;justify-content:center}.authcard{width:360px}.kv{display:grid;grid-template-columns:150px 1fr;grid-gap:6px 12px;gap:6px 12px;font-size:13px}.kv .k{color:var(--dim)}.notice{padding:10px 12px;border-radius:8px;border:1px solid;font-size:13px;margin:8px 0}.notice.info{border-color:#1e3a6b;background:#0f1a30;color:#cfe0ff}.notice.warn{border-color:#4d3a10;background:#241c06;color:#ffe6a8}.notice.wall{border-color:#4d1740;background:#22101c;color:#ffd6ec}.pill-list{display:flex;flex-direction:column;gap:6px}.expl{padding:8px 10px;border-left:3px solid var(--good);background:var(--panel2);border-radius:0 8px 8px 0}.err,.expl{font-size:13px}.err{color:var(--bad);margin-top:8px}.tag{font-size:11px;color:var(--dim)}