:root{--bg:#f4f5f7;--fg:#17181b;--card:#fff;--line:#e1e3e8;--grid:#eceef2;--muted:#646b78;--accent:#2a78d6;--series:#2a78d6;--series-2:#eb6834;--band:#0ca30c14;--danger:#d03b3b;--good:#0ca30c;--good-ink:#006300;--warning:#fab219;--warning-ink:#8a5a00;--serious:#ec835a;--serious-ink:#a8401a;--hl:#eef4fd;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#121314;--fg:#ecedef;--card:#1b1c1e;--line:#2c2e32;--grid:#25272b;--muted:#9da3ad;--accent:#3987e5;--series:#3987e5;--series-2:#d95926;--band:#0ca30c21;--danger:#e66767;--good-ink:#4fcf4f;--warning-ink:#fab219;--serious-ink:#ec835a;--hl:#182335;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--fg);margin:0;font:15px/1.5 system-ui,sans-serif}h1{margin:0;font-size:19px}h2{margin:0 0 12px;font-size:15px;font-weight:600}h2.inline{margin:0;display:inline}code{word-break:break-all;font-size:13px}.small{font-size:13px}.muted{color:var(--muted)}.error{color:var(--danger)}.ok{color:var(--good-ink)}.shell{grid-template-columns:220px 1fr;min-height:100%;display:grid}.side{border-right:1px solid var(--line);background:var(--card);flex-direction:column;gap:20px;height:100vh;padding:20px 14px;display:flex;position:sticky;top:0}.side nav{flex-direction:column;gap:2px;display:flex}.side nav button{text-align:left;color:var(--muted);background:0 0}.side nav button:hover{color:var(--fg);background:var(--bg)}.side nav button.on{background:var(--hl);color:var(--accent);font-weight:600}.side-foot{flex-direction:column;gap:8px;margin-top:auto;display:flex}.main{min-width:0;padding:24px}@media (width<=760px){.shell{grid-template-columns:1fr}.side{border-right:0;border-bottom:1px solid var(--line);flex-flow:wrap;align-items:center;height:auto;padding:12px 16px;position:static}.side nav{flex-flow:wrap;flex:1}.side-foot{flex-direction:row;align-items:center;margin:0}.side-foot .muted{display:none}.main{padding:16px}}.dash{flex-direction:column;gap:24px;display:flex}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.section-head h2{margin:0}.card{background:var(--card);border:1px solid var(--line);border-radius:10px;min-width:0;padding:16px}.card.narrow{max-width:480px}.card.notice{border-color:var(--warning);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.card.notice p{margin:0}.card.highlight{background:var(--hl);border-color:var(--accent)}.row{align-items:center;gap:10px;display:flex}.row input{flex:1}.two-col{grid-template-columns:repeat(auto-fit,minmax(420px,1fr));align-items:start;gap:16px;display:grid}@media (width<=760px){.two-col{grid-template-columns:1fr}}.kpis{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;display:grid}.kpi{flex-direction:column;gap:2px;display:flex}.kpi strong{font-variant-numeric:tabular-nums;font-size:28px;line-height:1.2}.kpi strong.small-value{font-size:20px}.kpi .muted{font-size:13px}.metric-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;display:grid}.metric{flex-direction:column;gap:6px;display:flex}.metric strong{font-variant-numeric:tabular-nums;font-size:24px}.metric strong small{color:var(--muted);font-size:14px;font-weight:400}.chip{border:1px solid;border-radius:99px;align-self:flex-start;gap:4px;padding:1px 8px;font-size:12px;font-weight:600;display:inline-flex}.chip.good{color:var(--good-ink);border-color:var(--good)}.chip.warning{color:var(--warning-ink);border-color:var(--warning)}.chip.serious{color:var(--serious-ink);border-color:var(--serious)}.rangebar{height:6px;margin:4px 0 2px;position:relative}.rangebar span{border-left:2px solid var(--card);position:absolute;top:0;bottom:0}.rangebar span:first-child{border-left:0;border-radius:3px 0 0 3px}.rangebar span:last-of-type{border-radius:0 3px 3px 0}.rangebar .seg-good{background:var(--good)}.rangebar .seg-warning{background:var(--warning)}.rangebar .seg-serious{background:var(--serious)}.rangebar i{background:var(--fg);width:4px;height:14px;box-shadow:0 0 0 2px var(--card);border-radius:2px;margin-left:-2px;position:absolute;top:-4px}.chart-grid{grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:14px;display:grid}@media (width<=760px){.chart-grid{grid-template-columns:1fr}}.chart-card{margin:0}.chart-card figcaption{margin-bottom:6px;font-size:14px;font-weight:600}.chart-box{width:100%;position:relative}.chart-box svg{display:block;overflow:visible}.chart-gridline{stroke:var(--grid)}.chart-band{fill:var(--band)}.chart-tick{fill:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.chart-line{fill:none;stroke:var(--series);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.chart-dot{fill:var(--series);stroke:var(--card);stroke-width:2px}.chart-line.faint{stroke-width:1px;opacity:.35}.chart-line.trend{stroke:var(--series-2);stroke-width:2.5px}.chart-dot.trend{fill:var(--series-2)}.chart-dot.alt{fill:var(--card);stroke:var(--series);stroke-width:2px}.chart-bar{fill:var(--series)}.chart-bar.active{fill:color-mix(in srgb, var(--series) 75%, var(--card))}.chart-goal{stroke:var(--muted);stroke-dasharray:4 4}.legend{color:var(--muted);align-items:center;gap:6px;margin-left:12px;font-size:12px;font-weight:400;display:inline-flex}.key-dot{background:var(--series);border-radius:50%;width:8px;height:8px}.key-dot.alt{box-shadow:inset 0 0 0 2px var(--series);background:0 0;margin-left:8px}.key-line{background:var(--series-2);border-radius:2px;width:14px;height:2.5px;margin-left:8px}.tip-head{font-size:11px}.chip.neutral{color:var(--muted);border-color:var(--line);font-weight:500}.chart-cross{stroke:var(--muted);stroke-width:1px;stroke-dasharray:3 3}.chart-tip{pointer-events:none;background:var(--card);border:1px solid var(--line);white-space:nowrap;color:var(--muted);border-radius:6px;flex-direction:column;padding:4px 10px;font-size:12px;display:flex;position:absolute;transform:translate(-50%);box-shadow:0 4px 14px #0000001f}.chart-tip strong{color:var(--fg);font-size:14px}.seg{border:1px solid var(--line);background:var(--card);border-radius:8px;padding:2px;display:inline-flex}.seg button{color:var(--muted);background:0 0;padding:4px 12px}.seg button.on{background:var(--hl);color:var(--accent);font-weight:600}input,select{border:1px solid var(--line);background:var(--bg);color:var(--fg);font:inherit;border-radius:6px;width:100%;padding:8px 10px}label{color:var(--muted);flex-direction:column;gap:4px;margin-bottom:12px;font-size:13px;display:flex}button{background:var(--accent);color:#fff;font:inherit;cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:6px;padding:7px 14px}button:disabled{opacity:.6;cursor:default}button.ghost{color:var(--accent);border-color:var(--line);background:0 0}button.ghost.danger{color:var(--danger)}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:6px 10px}th{color:var(--muted);white-space:nowrap;font-weight:500}tr:last-child td{border-bottom:0}tr.selected td{background:var(--hl)}.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}tr.revoked td{opacity:.5}details>summary{cursor:pointer}details[open]>summary{margin-bottom:12px}.key{background:var(--card);border-radius:6px;flex:1;padding:6px 8px}pre.raw{background:var(--bg);border-radius:6px;max-height:70vh;margin:0;padding:12px;font-size:12px;overflow:auto}.login{place-items:center;min-height:100vh;padding:16px;display:grid}.login form{width:100%;max-width:360px}.login h1{margin-bottom:16px}.login button{width:100%}
