:root{color-scheme:light;--page: #f4f3f0;--surface: #fcfcfb;--border: #e2e0da;--border-strong: #cfccc4;--text-primary: #0b0b0b;--text-secondary: #52514e;--text-muted: #7a7873;--series-1: #2a78d6;--series-2: #eb6834;--bar: #2a78d6;--bar-track: #eceae5;--critical: #d03b3b;--good: #0ca30c;--radius: 10px;--shadow: 0 1px 2px rgb(0 0 0 / 6%), 0 1px 8px rgb(0 0 0 / 4%)}@media(prefers-color-scheme:dark){:root{color-scheme:dark;--page: #121211;--surface: #1a1a19;--border: #2e2e2b;--border-strong: #3d3d39;--text-primary: #ffffff;--text-secondary: #c3c2b7;--text-muted: #8f8e86;--series-1: #3987e5;--series-2: #d95926;--bar: #3987e5;--bar-track: #26262300;--shadow: none}}*{box-sizing:border-box}body{margin:0;background:var(--page);color:var(--text-primary);font:15px/1.5 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}.tabular{font-variant-numeric:tabular-nums}.login{min-height:100dvh;display:grid;place-items:center;padding:24px}.login form{width:min(360px,100%);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px;display:grid;gap:14px}.login h1{margin:0;font-size:19px}.login p{margin:0;color:var(--text-secondary);font-size:13px}input,select,button{font:inherit;color:inherit}input[type=password],input[type=date],select{background:var(--page);border:1px solid var(--border-strong);border-radius:8px;padding:9px 11px;width:100%}input:focus-visible,select:focus-visible,button:focus-visible{outline:2px solid var(--series-1);outline-offset:2px}button{background:var(--series-1);color:#fff;border:1px solid transparent;border-radius:8px;padding:9px 14px;cursor:pointer}button:disabled{opacity:.55;cursor:default}button.ghost{background:transparent;color:var(--text-secondary);border-color:var(--border-strong)}button.ghost[aria-pressed=true]{background:var(--surface);color:var(--text-primary);border-color:var(--series-1)}.error{color:var(--critical);font-size:13px;margin:0}.shell{max-width:1180px;margin:0 auto;padding:20px 20px 64px}.topbar{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:18px}.topbar h1{font-size:18px;margin:0}.topbar .sub{color:var(--text-muted);font-size:13px}.filters{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:18px}.filters .presets{display:flex;gap:6px}.filters label{color:var(--text-muted);font-size:13px}.filters input[type=date],.filters select{width:auto}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:18px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.tile .label{color:var(--text-secondary);font-size:13px}.tile .value{font-size:28px;font-weight:600;letter-spacing:-.02em;margin-top:4px}.tile .note{font-size:12px;color:var(--text-muted);margin-top:2px}.trend.up{color:var(--good)}.trend.down{color:var(--critical)}.panels{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px}.panel h2{font-size:14px;margin:0 0 2px;font-weight:600}.panel .hint{color:var(--text-muted);font-size:12px;margin:0 0 12px}.panel.wide{grid-column:1 / -1}.rank{list-style:none;margin:0;padding:0;display:grid;gap:7px}.rank li{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center}.rank .name{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rank .count{font-size:13px;color:var(--text-secondary)}.rank .track{grid-column:1 / -1;height:6px;background:var(--bar-track);border-radius:3px;overflow:hidden}.rank .fill{display:block;height:100%;background:var(--bar);border-radius:0 3px 3px 0}.empty{color:var(--text-muted);font-size:13px;margin:6px 0 0}.charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px;margin-bottom:12px}.chart-frame{height:210px;margin:0 -6px}.recharts-cartesian-axis-tick text{fill:var(--text-muted);font-size:11px}.tooltip{background:var(--surface);border:1px solid var(--border-strong);border-radius:8px;box-shadow:var(--shadow);padding:8px 10px;font-size:12px}.tooltip .day{color:var(--text-muted);margin-bottom:2px}.tooltip .val{color:var(--text-primary);font-weight:600}.measured{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:0}.measured dt{color:var(--text-secondary);font-size:13px}.measured dd{margin:2px 0 0;font-size:22px;font-weight:600;letter-spacing:-.02em}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:left;padding:5px 8px;border-bottom:1px solid var(--border)}td.num,th.num{text-align:right}.scroller{max-height:260px;overflow:auto}.state{color:var(--text-secondary);padding:40px 0;text-align:center}
