:root{--bg:#0f1117;--panel:#171a22;--panel-2:#1e222c;--border:#2a2f3a;--text:#e7e9ee;--muted:#9aa3b2;--accent:#6ea8fe;--accent-ink:#0b1220;--ok:#3fb950;--ok-bg:#122017;--warn:#d29922;--danger:#f85149;--danger-bg:#2a1416;--radius:10px;--mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--sans:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:15px;line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:1.5rem;margin:0 0 4px}h2{font-size:1.1rem;margin:0 0 10px}h3{font-size:.95rem;margin:0 0 6px}.muted{color:var(--muted)}.small{font-size:.85rem}.mono{font-family:var(--mono)}.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.topbar{display:flex;align-items:center;gap:18px;padding:12px 24px;background:var(--panel);border-bottom:1px solid var(--border);position:-webkit-sticky;position:sticky;top:0;z-index:10}.topbar .brand{font-weight:700;letter-spacing:.02em}.topbar .brand .tag{font-size:.7rem;font-weight:600;color:var(--warn);border:1px solid var(--warn);border-radius:6px;padding:1px 6px;margin-left:8px;vertical-align:middle}.topbar nav{display:flex;gap:16px}.topbar nav a{color:var(--muted);font-weight:500}.topbar nav a.active,.topbar nav a:hover{color:var(--text);text-decoration:none}.topbar .spacer{flex:1 1}.topbar .who{color:var(--muted);font-size:.85rem}.container{max-width:1080px;margin:0 auto;padding:28px 24px 64px}.page-title{margin-bottom:20px}.page-title .sub{color:var(--muted);font-size:.92rem}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:18px;margin-bottom:18px}.stack>*+*{margin-top:16px}.row{gap:10px;flex-wrap:wrap}.row,.spread{display:flex;align-items:center}.spread{justify-content:space-between;gap:12px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:12px;gap:12px}.stat{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius);padding:14px}.stat .k{color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}.stat .v{font-size:1.6rem;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.table{width:100%;border-collapse:collapse;font-size:.9rem}.table td,.table th{text-align:left;padding:9px 10px;border-bottom:1px solid var(--border)}.table th{color:var(--muted);font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}.table tbody tr:hover{background:var(--panel-2)}.table td.num,.table th.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:.72rem;font-weight:600;border:1px solid var(--border);background:var(--panel-2);color:var(--muted)}.badge-ok{color:var(--ok);border-color:var(--ok);background:var(--ok-bg)}.badge-warn{color:var(--warn);border-color:var(--warn)}.badge-danger{color:var(--danger);border-color:var(--danger);background:var(--danger-bg)}.badge-accent{color:var(--accent);border-color:var(--accent)}input,select,textarea{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 10px;font:inherit}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}label.field{display:block;margin-bottom:12px}label.field>span{display:block;font-size:.82rem;color:var(--muted);margin-bottom:4px}label.field input,label.field select,label.field textarea{width:100%}.hint{color:var(--muted);font-size:.78rem;margin-top:4px}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:8px;border:1px solid var(--border);background:var(--panel-2);color:var(--text);font:inherit;font-weight:600;cursor:pointer}.btn:hover{border-color:var(--accent)}.btn-sm{padding:5px 10px;font-size:.82rem}.btn-primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.btn-danger{color:var(--danger);background:var(--danger-bg)}.btn-danger,.btn-danger:hover{border-color:var(--danger)}.alert{background:var(--danger-bg);border:1px solid var(--danger);color:#ffb4ae;border-radius:8px}.alert,.ok-note{padding:10px 12px;margin-bottom:14px}.ok-note{background:var(--ok-bg);border:1px solid var(--ok);color:#87e09a;border-radius:8px}.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.auth-card{width:100%;max-width:360px}