:root{--bg:#0b0e14;--bg-elev:#121722;--bg-elev-2:#1a2130;--border:#232c3d;--border-strong:#33405a;--text:#d6deeb;--text-dim:#8593ab;--text-faint:#5b6880;--accent:#4c8dff;--accent-dim:#2b4a7a;--pos:#34d399;--neg:#f87171;--warn:#fbbf24;--long:#34d399;--short:#f87171;--radius:8px;--mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;--sans:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:14px;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}.mono,.num{font-family:var(--mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pos{color:var(--pos)}.neg{color:var(--neg)}.dim{color:var(--text-dim)}.faint{color:var(--text-faint)}.shell{display:grid;grid-template-columns:208px 1fr;grid-template-rows:48px 1fr;grid-template-areas:"brand topbar" "nav   main";height:100vh;overflow:hidden}.brand{grid-area:brand;display:flex;align-items:center;gap:8px;padding:0 16px;border-bottom:1px solid var(--border);border-right:1px solid var(--border);font-weight:700;letter-spacing:.02em}.brand .dot{width:9px;height:9px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent)}.topbar{grid-area:topbar;display:flex;align-items:center;gap:12px;padding:0 16px;border-bottom:1px solid var(--border);background:var(--bg-elev)}.topbar .spacer{flex:1 1}.nav{grid-area:nav;border-right:1px solid var(--border);background:var(--bg-elev);padding:8px;overflow-y:auto}.nav a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:6px;color:var(--text-dim);font-size:13px}.nav a:hover{background:var(--bg-elev-2);color:var(--text)}.nav a.active{background:var(--accent-dim);color:#fff}.nav .nav-ico{width:16px;text-align:center;opacity:.8}.main{grid-area:main;overflow-y:auto;padding:20px 24px 60px}.badge{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;border:1px solid var(--border-strong);color:var(--text-dim)}.badge.ok{color:var(--pos);border-color:#1f6b52}.badge.warn{color:var(--warn);border-color:#7a5c1a}.badge.bad{color:var(--neg);border-color:#7a2f2f}.badge .pulse{width:7px;height:7px;border-radius:50%;background:currentColor}.pill-btn{padding:5px 12px;border-radius:999px;border:1px solid var(--border-strong);background:var(--bg-elev-2);color:var(--text);cursor:pointer;font-size:12px;font-weight:600}.pill-btn:hover{border-color:var(--accent)}.pill-btn.danger{border-color:#7a2f2f;color:var(--neg)}.pill-btn.danger:hover{background:#2a1414}.pill-btn:disabled{opacity:.5;cursor:not-allowed}.page-title{font-size:18px;font-weight:700;margin:0 0 4px}.page-sub{color:var(--text-dim);margin:0 0 18px;font-size:13px}.grid{display:grid;grid-gap:14px;gap:14px}.cols-2{grid-template-columns:repeat(2,1fr)}.cols-3{grid-template-columns:repeat(3,1fr)}.cols-4{grid-template-columns:repeat(4,1fr)}@media (max-width:1100px){.cols-3,.cols-4{grid-template-columns:repeat(2,1fr)}}.card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.card h3{margin:0 0 12px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim)}.stat{display:flex;flex-direction:column;gap:6px}.stat .label{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim)}.stat .value{font-size:24px;font-weight:700;font-family:var(--mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat .sub{font-size:12px;color:var(--text-faint)}table.tbl{width:100%;border-collapse:collapse;font-size:13px}table.tbl th{text-align:left;color:var(--text-dim);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.04em}table.tbl td,table.tbl th{padding:8px 10px;border-bottom:1px solid var(--border);white-space:nowrap}table.tbl tr:hover td{background:var(--bg-elev-2)}table.tbl td.r,table.tbl th.r{text-align:right}.tbl-wrap{overflow-x:auto}.tag{display:inline-block;padding:1px 7px;border-radius:4px;font-size:11px;font-weight:600;background:var(--bg-elev-2);border:1px solid var(--border);color:var(--text-dim)}.tag.long{color:var(--long);border-color:#1f6b52}.tag.short{color:var(--short);border-color:#7a2f2f}.tag.close{color:var(--warn);border-color:#7a5c1a}.empty{color:var(--text-faint);font-size:13px;padding:18px 0;text-align:center}.field{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}.field label{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim)}.field input,.field select,.field textarea{background:var(--bg);border:1px solid var(--border-strong);border-radius:6px;padding:8px 10px}.field input:focus,.field select:focus{outline:none;border-color:var(--accent)}.form-row{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:12px;gap:12px}.btn{padding:9px 16px;border-radius:6px;border:1px solid var(--accent);background:var(--accent);color:#fff;font-weight:600;cursor:pointer}.btn:hover{background:#3a7ae8}.btn.ghost{background:transparent;color:var(--text);border-color:var(--border-strong)}.btn:disabled{opacity:.5;cursor:not-allowed}.form-msg{font-size:12px;margin-top:8px}.form-msg.err{color:var(--neg)}.form-msg.ok{color:var(--pos)}.meter{position:relative;height:8px;background:var(--bg-elev-2);border-radius:4px;overflow:hidden}.meter>span{position:absolute;top:0;bottom:0;background:var(--accent)}.expo-track{position:relative;height:14px;background:var(--bg-elev-2);border-radius:4px}.expo-track .mid{position:absolute;left:50%;top:0;bottom:0;width:1px;background:var(--border-strong)}.expo-track .fill{position:absolute;top:2px;bottom:2px;border-radius:3px;opacity:.85}.expo-track .target{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--text)}.drawer-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:40}.drawer{position:fixed;top:0;right:0;bottom:0;width:520px;max-width:92vw;background:var(--bg-elev);border-left:1px solid var(--border-strong);z-index:50;padding:20px;overflow-y:auto}.drawer h2{margin:0 0 12px;font-size:16px}.login-wrap{height:100vh;display:flex;align-items:center;justify-content:center}.login-card{width:340px;background:var(--bg-elev);border:1px solid var(--border);border-radius:12px;padding:28px}.login-card h1{font-size:18px;margin:0 0 4px;display:flex;align-items:center;gap:8px}.kv{display:grid;grid-template-columns:130px 1fr;grid-gap:6px 12px;gap:6px 12px;font-size:13px}.kv .k{color:var(--text-dim)}