:root{--bg:#0f1117;--bg-elev:#171922;--card:#1a1d27;--card-hover:#20242f;--border:#262a36;--text:#e6e8ee;--muted:#8a90a2;--muted-2:#5f6577;--green:#3ecf8e;--green-dim:#1c5741;--amber:#f5a623;--red:#f05252;--blue:#4b8bf5;--purple:#a78bfa;--radius:12px;--mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;--sans:-apple-system,BlinkMacSystemFont,"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:14px;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.topbar{gap:16px;padding:14px 24px;border-bottom:1px solid var(--border);background:var(--bg-elev);position:-webkit-sticky;position:sticky;top:0;z-index:10}.brand,.topbar{display:flex;align-items:center}.brand{gap:10px;font-weight:600}.brand .dot{width:9px;height:9px;border-radius:50%;background:var(--green);box-shadow:0 0 10px var(--green)}.brand small{color:var(--muted);font-weight:400}.spacer{flex:1 1}.updated{color:var(--muted-2);font-size:12px}.btn{background:var(--card);border:1px solid var(--border);color:var(--text);padding:7px 14px;border-radius:8px;cursor:pointer;font-size:13px}.btn:hover{background:var(--card-hover)}.btn-ghost{background:transparent}.tabs{display:flex;gap:4px;padding:0 16px;border-bottom:1px solid var(--border);background:var(--bg-elev);overflow-x:auto}.tab{padding:12px 16px;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap;font-size:13px}.tab.active,.tab:hover{color:var(--text)}.tab.active{border-bottom-color:var(--green)}.wrap{max-width:1200px;margin:0 auto;padding:24px}.grid{display:grid;grid-gap:16px;gap:16px}.grid.cols-4{grid-template-columns:repeat(4,1fr)}.grid.cols-3{grid-template-columns:repeat(3,1fr)}.grid.cols-2{grid-template-columns:repeat(2,1fr)}@media (max-width:900px){.grid.cols-3,.grid.cols-4{grid-template-columns:repeat(2,1fr)}}@media (max-width:560px){.grid.cols-2,.grid.cols-3,.grid.cols-4{grid-template-columns:1fr}}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:18px}.card h3{margin:0 0 14px;font-size:13px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.card-title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.card-title-row h3{margin:0}.stat .label{color:var(--muted);font-size:12px;margin-bottom:6px;text-transform:uppercase;letter-spacing:.04em}.stat .value{font-size:28px;font-weight:650;line-height:1.1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat .sub{color:var(--muted-2);font-size:12px;margin-top:4px}.bar{height:8px;background:var(--bg);overflow:hidden}.bar,.bar>span{border-radius:6px}.bar>span{display:block;height:100%;transition:width .4s ease}.bar-row{display:flex;align-items:center;gap:12px;margin:8px 0}.bar-row .k{width:120px;color:var(--muted);font-size:12px;flex-shrink:0}.bar-row .v{width:64px;text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:12px;color:var(--muted)}.bar-row .bar{flex:1 1}.badge{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:20px;font-size:12px;border:1px solid transparent}.badge .dot{width:7px;height:7px;border-radius:50%}.badge.green{background:rgba(62,207,142,.12);color:var(--green)}.badge.green .dot{background:var(--green)}.badge.red{background:rgba(240,82,82,.12);color:var(--red)}.badge.red .dot{background:var(--red)}.badge.amber{background:rgba(245,166,35,.12);color:var(--amber)}.badge.amber .dot{background:var(--amber)}.badge.grey{background:var(--bg);color:var(--muted)}.badge.grey .dot{background:var(--muted)}.tbl-scroll{overflow-x:auto}table.tbl{width:100%;border-collapse:collapse;font-size:13px}table.tbl th{text-align:left;color:var(--muted);font-weight:500;padding:8px 10px;font-size:12px;white-space:nowrap}table.tbl td,table.tbl th{border-bottom:1px solid var(--border)}table.tbl td{padding:9px 10px;vertical-align:middle}table.tbl tr:last-child td{border-bottom:none}table.tbl td.num,table.tbl th.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}table.tbl td.mono{font-family:var(--mono);font-size:12px;color:var(--muted)}.truncate{max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rows{flex-direction:column;gap:2px}.kv,.rows{display:flex}.kv{justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--border)}.kv:last-child{border-bottom:none}.kv .k{color:var(--muted)}.kv .v{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:8px 12px}.chip .n{font-size:18px;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.chip .l{font-size:12px}.chip .l,.notice{color:var(--muted)}.notice{padding:14px 16px;border:1px dashed var(--border);border-radius:var(--radius);background:var(--bg)}.err{color:var(--red);font-size:13px}.skeleton{background:linear-gradient(90deg,var(--card) 25%,var(--card-hover) 50%,var(--card) 75%);background-size:200% 100%;animation:sk 1.4s infinite;border-radius:6px}@keyframes sk{0%{background-position:200% 0}to{background-position:-200% 0}}.spark{display:flex;align-items:flex-end;gap:3px;height:60px}.spark>i{flex:1 1;background:var(--green-dim);border-radius:2px 2px 0 0;min-height:2px;transition:height .3s}.spark>i:hover{background:var(--green)}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{width:100%;max-width:360px;background:var(--card);border:1px solid var(--border);border-radius:14px;padding:28px}.login-card h1{font-size:18px;margin:0 0 4px;display:flex;align-items:center;gap:10px}.login-card p{color:var(--muted);margin:0 0 20px;font-size:13px}.login-card input{width:100%;padding:11px 13px;background:var(--bg);border:1px solid var(--border);border-radius:9px;color:var(--text);font-size:14px;margin-bottom:12px}.login-card input:focus{outline:none;border-color:var(--green)}.login-card button{width:100%;padding:11px;background:var(--green);color:#062015;border:none;border-radius:9px;font-weight:600;cursor:pointer;font-size:14px}.login-card button:disabled{opacity:.6;cursor:default}