*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.shell{display:grid;grid-template-columns:190px 1fr;min-height:100vh}.env-band{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:18px;padding:2px 12px;font-size:10px;font-weight:700;letter-spacing:.12em;line-height:16px}.env-band.env-prod{background:#B3261E;color:#fff}.env-band.env-dev{background:var(--bg2);color:var(--text-dim,var(--text));border-bottom:1px solid var(--border)}.env-switch{font:inherit;font-weight:600;letter-spacing:0;cursor:pointer;background:transparent;color:inherit;border:1px solid;border-radius:4px;padding:0 8px;font-size:10px;line-height:14px;opacity:.85}.env-switch:hover{opacity:1}.login-wrap{min-height:100vh;display:flex;flex-direction:column}.login-wrap .login{flex:1 1;min-height:0}.side{background:var(--bg2);border-right:1px solid var(--border);padding:18px 0;display:flex;flex-direction:column}.brand{padding:0 18px 18px;font-size:13px;font-weight:700;letter-spacing:.02em}.brand span{color:var(--accent)}.nav{display:flex;flex-direction:column}.nav a{padding:7px 18px;color:var(--text-dim);font-size:13px;border-left:2px solid transparent}.nav a:hover{text-decoration:none}.nav a.on,.nav a:hover{color:var(--text);background:var(--surface)}.nav a.on{border-left-color:var(--accent-fill)}.side-foot{margin-top:auto;padding:14px 18px 0;border-top:1px solid var(--border);font-size:11px;color:var(--text-faint)}.side-foot button{margin-top:6px;background:none;border:0;padding:0;color:var(--accent);cursor:pointer;font:inherit}.main{padding:22px 26px 60px;min-width:0}.head{display:flex;align-items:baseline;gap:12px;margin-bottom:4px}.head h1{font-size:17px;font-weight:600;margin:0}.head .meta{font-size:12px;color:var(--text-faint)}.sub{color:var(--text-dim);font-size:12px;margin:0 0 18px}.figs{display:flex;flex-wrap:wrap;border:1px solid var(--border);border-radius:4px;background:var(--surface);margin-bottom:22px}.fig{padding:11px 18px;border-right:1px solid var(--border);min-width:118px;flex:1 1 auto}.fig:last-child{border-right:0}.fig .n{font-family:var(--mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:19px;letter-spacing:-.02em}.fig .k{font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:var(--text-faint);margin-top:2px}.fig.attn .n{color:var(--warn)}.tablewrap{overflow-x:auto;border:1px solid var(--border);border-radius:4px}table{width:100%;border-collapse:collapse;font-size:13px}thead th{text-align:left;background:var(--surface2);font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:var(--text-faint);font-weight:600;white-space:nowrap}tbody td,thead th{padding:7px 12px;border-bottom:1px solid var(--border)}tbody td{vertical-align:top}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:var(--surface)}.mono,td.mono{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:12px;color:var(--text-dim)}.mono,td.mono,td.num{font-family:var(--mono)}td.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.dim{color:var(--text-dim)}.faint{color:var(--text-faint)}.pill{display:inline-block;padding:1px 7px;border-radius:3px;font-size:11px;border:1px solid var(--border-strong);color:var(--text-dim);white-space:nowrap}.pill.live{color:var(--live);border-color:rgba(74,222,128,.4)}.pill.warn{color:var(--warn);border-color:rgba(251,191,36,.4)}.pill.err{color:var(--error);border-color:rgba(255,122,147,.4)}.pill.acc{color:var(--accent);border-color:rgba(232,132,92,.45)}.bar{display:flex;gap:8px;align-items:center;margin-bottom:12px;flex-wrap:wrap}input[type=email],input[type=password],input[type=text],select{background:var(--surface);border:1px solid var(--border-strong);color:var(--text);border-radius:3px;padding:6px 9px;font:inherit;font-size:13px;min-width:200px}input::placeholder{color:var(--text-faint)}button.btn{background:var(--accent-fill);color:var(--on-accent);border:0;border-radius:3px;padding:6px 13px;font:inherit;font-size:13px;cursor:pointer}button.btn:hover{filter:brightness(1.08)}button.btn:disabled{opacity:.5;cursor:default}button.ghost{background:none;border:1px solid var(--border-strong);color:var(--text-dim);border-radius:3px;padding:3px 9px;font:inherit;font-size:12px;cursor:pointer}button.ghost:hover{color:var(--text);border-color:var(--accent)}.note{color:var(--text-faint);padding:18px 0}.err,.note{font-size:12px}.err{color:var(--error);border:1px solid rgba(255,122,147,.4);border-radius:3px;padding:8px 11px;margin-bottom:12px}.filters{display:flex;gap:8px;flex-wrap:wrap;margin:-4px 0 16px;padding-bottom:12px;border-bottom:1px solid var(--border)}.filters select{min-width:150px;font-size:12px;padding:5px 8px}.charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));grid-gap:14px;gap:14px;margin-bottom:22px}.card{border:1px solid var(--border);border-radius:4px;background:var(--surface);padding:12px 14px;min-width:0}.card h2{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--text-faint);margin:0 0 8px;font-weight:600}.card .big{font-family:var(--mono);font-size:17px;margin-bottom:4px}.chart{width:100%;height:auto;display:block}.chart .grid{stroke:var(--border);stroke-width:1}.chart .tick{fill:var(--text-faint);font-size:9px;font-family:var(--mono)}.chart .bar{fill:var(--accent-fill);opacity:.85}.chart .bar.b{fill:var(--live)}.chart .line{fill:none;stroke-width:1.6}.chart .line.a{stroke:var(--accent)}.chart .line.b{stroke:var(--live)}.chart .dot.a{fill:var(--accent)}.chart .dot.b{fill:var(--live)}.kv{display:grid;grid-template-columns:140px 1fr;grid-gap:4px 14px;gap:4px 14px;font-size:13px;margin-bottom:18px}.kv dt{color:var(--text-faint);font-size:11px;text-transform:uppercase;letter-spacing:.07em;padding-top:2px}.kv dd{margin:0}h2.sec{font-size:13px;font-weight:600;margin:22px 0 8px}.quote{border:1px solid var(--border);border-radius:4px;padding:10px 12px;margin-bottom:10px;background:var(--surface)}.quote .qhead{display:flex;gap:10px;align-items:baseline;color:var(--text-dim);margin-bottom:6px;flex-wrap:wrap}.quote .qhead,.quote table{font-size:12px}.struck{text-decoration:line-through}.pager,.struck{color:var(--text-faint)}.pager{display:flex;gap:10px;align-items:center;margin-top:12px;font-size:12px}.login{min-height:100vh;display:grid;place-items:center;padding:20px}.login form{width:100%;max-width:310px;border:1px solid var(--border);border-radius:5px;background:var(--surface);padding:22px}.login h1{font-size:15px;margin:0 0 3px;font-weight:600}.login p{font-size:12px;margin:0 0 16px}.login label,.login p{color:var(--text-faint)}.login label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.07em;margin-bottom:4px}.login input{width:100%;margin-bottom:12px;min-width:0}.login button{width:100%}@media (max-width:760px){.shell{grid-template-columns:1fr}.side{flex-direction:row;align-items:center;padding:10px 12px;overflow-x:auto}.brand{padding:0 14px 0 0}.nav{flex-direction:row}.nav a{border-left:0;border-bottom:2px solid transparent;padding:6px 10px}.nav a.on{border-left:0;border-bottom-color:var(--accent-fill)}.side-foot{margin:0 0 0 auto;border:0;padding:0 0 0 14px;white-space:nowrap}.main{padding:16px 14px 50px}}