*{box-sizing:border-box}:root{--bg:#04101f;--card:#94c5ff0f;--card-border:#94c5ff24;--ink:#e8f1fb;--muted:#8fa8c4;--accent:#38bdf8}html,body{margin:0;padding:0}body{background:radial-gradient(1100px 600px at 85% -10%, #38bdf829, transparent 60%), radial-gradient(900px 500px at -10% 110%, #3b82f624, transparent 60%), var(--bg);color:var(--ink);min-height:100vh;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.page{gap:18px;max-width:1080px;margin:0 auto;padding:28px 20px 48px;display:grid}.header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}h1{letter-spacing:-.02em;margin:0;font-size:26px}.subtitle{color:var(--muted);margin:4px 0 0;font-size:14px}.presets{border:1px solid var(--card-border);background:#94c5ff12;border-radius:999px;padding:4px;display:flex}.preset{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:999px;padding:7px 16px;font-size:14px;transition:color .15s,background .15s}.preset:hover{color:var(--ink)}.preset.active{color:#fff;background:linear-gradient(135deg,#0ea5e9,#2563eb);box-shadow:0 4px 14px #2563eb59}.card{background:var(--card);border:1px solid var(--card-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:16px}.stats{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.stat{gap:6px;padding:14px 16px;display:grid}.stat-label{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:12px}.stat-value{font-variant-numeric:tabular-nums;font-size:24px;font-weight:650}.stat.accent{background:linear-gradient(135deg,#38bdf82e,#2563eb1a);border-color:#38bdf859}.stat.accent .stat-value{color:var(--accent)}.chart-card{background:#fff;border-color:#0f172a14;padding:14px}.chart-host{width:100%}.state-card{text-align:center;color:var(--muted);place-items:center;gap:12px;padding:48px;display:grid}.spinner{border:2px solid #38bdf840;border-top-color:var(--accent);border-radius:50%;width:22px;height:22px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(1turn)}}.btn{color:var(--ink);font:inherit;cursor:pointer;background:#38bdf81f;border:1px solid #38bdf866;border-radius:10px;padding:8px 18px}.btn:hover{background:#38bdf838}.footer{color:var(--muted);text-align:center;font-size:12px}@media (width<=720px){.stats{grid-template-columns:repeat(2,1fr)}.header{flex-direction:column;align-items:stretch}.presets{justify-content:space-between}.preset{flex:1}}.uplot,.uplot *,.uplot :before,.uplot :after{box-sizing:border-box}.uplot{width:min-content;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}.u-title{text-align:center;font-size:18px;font-weight:700}.u-wrap{-webkit-user-select:none;user-select:none;position:relative}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{width:100%;height:100%;display:block;position:relative}.u-axis{position:absolute}.u-legend{text-align:center;margin:auto;font-size:14px}.u-inline{display:block}.u-inline *{display:inline-block}.u-inline tr{margin-right:16px}.u-legend th{font-weight:600}.u-legend th>*{vertical-align:middle;display:inline-block}.u-legend .u-marker{width:1em;height:1em;margin-right:4px;background-clip:padding-box!important}.u-inline.u-live th:after{content:":";vertical-align:middle}.u-inline:not(.u-live) .u-value{display:none}.u-series>*{padding:4px}.u-series th{cursor:pointer}.u-legend .u-off>*{opacity:.3}.u-select{pointer-events:none;background:#00000012;position:absolute}.u-cursor-x,.u-cursor-y{pointer-events:none;will-change:transform;position:absolute;top:0;left:0}.u-hz .u-cursor-x,.u-vt .u-cursor-y{border-right:1px dashed #607d8b;height:100%}.u-hz .u-cursor-y,.u-vt .u-cursor-x{border-bottom:1px dashed #607d8b;width:100%}.u-cursor-pt{pointer-events:none;will-change:transform;border:0 solid;border-radius:50%;position:absolute;top:0;left:0;background-clip:padding-box!important}.u-axis.u-off,.u-select.u-off,.u-cursor-x.u-off,.u-cursor-y.u-off,.u-cursor-pt.u-off{display:none}
