:root{--brand:#144fed;--brand-deep:#052789;--bg:#f4f6fb;--surface:#fff;--border:#e3e8f2;--text:#0f172a;--muted:#64748b;--ok:#16a34a;--ok-soft:#dcfce7;--warn:#b45309;--warn-soft:#fef3c7;--bad:#dc2626;--bad-soft:#fee2e2;--info-soft:#e0e9ff;--radius:12px;color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0b1220;--surface:#131c2e;--border:#243049;--text:#e6ecf8;--muted:#93a1bb;--ok-soft:#12351f;--warn-soft:#3a2a0c;--bad-soft:#3d1515;--info-soft:#172a57}}*{box-sizing:border-box}body{background:var(--bg);margin:0;font-size:14px;line-height:1.45}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}h1{margin:0;font-size:22px}h2{margin:0 0 12px;font-size:16px}button,input,select,textarea{font:inherit;color:inherit}.shell{grid-template-columns:232px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--brand-deep);color:#fff;flex-direction:column;gap:4px;height:100vh;padding:18px 12px;display:flex;position:sticky;top:0;overflow:auto}.brand{letter-spacing:.5px;padding:6px 12px 18px;font-size:20px;font-weight:800}.brand small{opacity:.7;letter-spacing:1px;text-transform:uppercase;font-size:11px;font-weight:500;display:block}.nav a{color:#fffc;border-radius:10px;align-items:center;gap:10px;padding:9px 12px;display:flex}.nav a:hover{background:#ffffff14;text-decoration:none}.nav a.active{color:#fff;background:#ffffff29;font-weight:600}.nav .group{text-transform:uppercase;letter-spacing:1px;opacity:.5;padding:14px 12px 4px;font-size:11px}.side-foot{opacity:.85;border-top:1px solid #ffffff26;gap:8px;margin-top:auto;padding:12px;font-size:12px;display:grid}.main{width:100%;max-width:1280px;padding:24px 28px 48px}.topbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:20px;display:flex}.topbar .spacer{flex:1}.muted{color:var(--muted)}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.grid{gap:16px;display:grid}.cols-2{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}.cols-4{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.stat{gap:2px;display:grid}.stat .v{font-size:26px;font-weight:700}.stat .l{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;font-size:12px}.stat.link{cursor:pointer}.stat.link:hover{border-color:var(--brand)}.btn{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:9px;padding:7px 12px}.btn:hover{border-color:var(--brand)}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.ok{background:var(--ok);border-color:var(--ok);color:#fff}.btn.danger{background:var(--bad);border-color:var(--bad);color:#fff}.btn.ghost{background:0 0}.btn.sm{padding:4px 9px;font-size:12px}.btn:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{background:var(--surface);border:1px solid var(--border);border-radius:9px;min-width:0;padding:8px 10px}input:focus,select:focus,textarea:focus{outline:2px solid var(--brand);outline-offset:-1px}textarea{resize:vertical;width:100%;min-height:80px}.field{gap:4px;margin-bottom:12px;display:grid}.field label{color:var(--muted);font-size:12px;font-weight:600}.field input,.field select{width:100%}.table-wrap{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:10px 14px}th{text-transform:uppercase;letter-spacing:.5px;color:var(--muted);background:color-mix(in srgb, var(--surface) 92%, var(--border));font-size:11px}tr:last-child td{border-bottom:0}tbody tr.click{cursor:pointer}tbody tr.click:hover{background:color-mix(in srgb, var(--surface) 94%, var(--brand))}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}td.wrap{white-space:normal;min-width:220px}.empty{text-align:center;color:var(--muted);padding:28px}.badge{background:var(--info-soft);color:var(--brand);border-radius:999px;padding:2px 9px;font-size:12px;font-weight:600;display:inline-block}.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.bad{background:var(--bad-soft);color:var(--bad)}.badge.neutral{background:color-mix(in srgb, var(--surface) 85%, var(--border));color:var(--muted)}.tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:4px;margin-bottom:16px;display:flex}.tabs button{cursor:pointer;color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;padding:9px 14px;font-weight:600}.tabs button.active{color:var(--brand);border-color:var(--brand)}.pager{color:var(--muted);justify-content:flex-end;align-items:center;gap:10px;margin-top:12px;display:flex}.overlay{z-index:50;background:#0f172a80;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border-radius:16px;width:min(520px,100%);max-height:92vh;padding:20px;overflow:auto}.modal h2{margin-bottom:14px}.modal .actions{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.notice{background:var(--info-soft);border-radius:10px;margin-bottom:14px;padding:10px 14px}.notice.bad{background:var(--bad-soft);color:var(--bad)}.notice.ok{background:var(--ok-soft);color:var(--ok)}.toast{z-index:60;position:fixed;bottom:20px;right:20px}.kv{grid-template-columns:150px 1fr;gap:6px 12px;display:grid}.kv dt{color:var(--muted)}.kv dd{word-break:break-word;margin:0}.selfie{border:1px solid var(--border);border-radius:12px;width:100%;max-width:280px}.bars{align-items:flex-end;gap:6px;height:90px;display:flex}.bars div{background:var(--brand);border-radius:4px 4px 0 0;flex:1;min-height:3px;position:relative}.bars span{text-align:center;color:var(--muted);font-size:11px;position:absolute;top:-16px;left:0;right:0}.login{background:var(--brand-deep);place-items:center;min-height:100vh;padding:16px;display:grid}.login .card{width:min(400px,100%);padding:28px}pre.json{white-space:pre-wrap;color:var(--muted);margin:0;font-size:12px}@media (width<=860px){.shell{grid-template-columns:1fr}.sidebar{flex-flow:wrap;align-items:center;height:auto;position:static}.nav{flex-wrap:wrap;gap:2px;display:flex}.nav .group,.side-foot{display:none}.main{padding:16px}}.modal.wide{width:min(1240px,96vw);max-height:94vh;padding:24px 28px}.modal.wide .table-wrap{overflow-x:visible}.modal.wide th,.modal.wide td{padding:12px 16px}
