:root{--plane: #f9f9f7;--surface: #fcfcfb;--ink: #0b0b0b;--ink-2: #52514e;--muted: #898781;--hairline: #e6e5e0;--series: #2a78d6;--series-2: #b4530a;--critical: #d03b3b;--notice: #eef4fd;color-scheme:light dark}@media (prefers-color-scheme: dark){:root{--plane: #0d0d0d;--surface: #1a1a19;--ink: #ffffff;--ink-2: #c3c2b7;--hairline: #2e2e2c;--series: #3987e5;--series-2: #f0934a;--notice: #16263b}}*{box-sizing:border-box}body{margin:0;background:var(--plane);color:var(--ink);font:15px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}h1{font-size:22px;margin:0;font-weight:650}h2{font-size:15px;margin:0;font-weight:600}p{margin:0}.muted{color:var(--ink-2);font-size:13px}.error{color:var(--critical)}.page{max-width:1240px;margin:0 auto;padding:24px 16px 48px;display:grid;gap:16px}.top{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}.top-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.card{background:var(--surface);border:1px solid var(--hairline);border-radius:12px;padding:16px;min-width:0}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.notice{background:var(--notice);border-radius:10px;padding:12px 14px;font-size:14px}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}.tiles.small{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.tile{background:var(--surface);border:1px solid var(--hairline);border-radius:12px;padding:14px 16px}.tiles.small .tile{background:var(--plane)}.tile-label{color:var(--ink-2);font-size:13px}.tile-value{font-size:30px;font-weight:650;line-height:1.2;font-variant-numeric:tabular-nums}.tile-note{color:var(--muted);font-size:12.5px}.grid{display:grid;gap:16px}.grid.two{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}.grid.three{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}button{font:inherit;border:1px solid var(--hairline);background:var(--surface);color:var(--ink);border-radius:8px;padding:7px 12px;cursor:pointer}button:disabled{opacity:.5;cursor:default}button.quiet{color:var(--ink-2)}.segmented{display:inline-flex;border:1px solid var(--hairline);border-radius:8px;overflow:hidden}.segmented button{border:0;border-radius:0}.segmented button.on{background:var(--ink);color:var(--surface)}.login{min-height:100vh;display:grid;place-items:center;padding:16px}.login form{width:100%;max-width:340px;display:grid;gap:10px}.login input{font:inherit;padding:9px 10px;border-radius:8px;border:1px solid var(--hairline);background:var(--plane);color:var(--ink)}.login button{background:var(--ink);color:var(--surface);border-color:var(--ink)}.chart{position:relative;width:100%}.chart svg{display:block}.grid{stroke:var(--hairline);stroke-width:1}.axis{fill:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}.line{fill:none;stroke:var(--series);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.area{fill:var(--series);opacity:.1}.dot{fill:var(--series);stroke:var(--surface);stroke-width:2}.cross{stroke:var(--muted);stroke-width:1}.tip{position:absolute;transform:translate(-50%);background:var(--ink);color:var(--surface);border-radius:8px;padding:6px 10px;font-size:12.5px;pointer-events:none;white-space:nowrap}.tip-day{opacity:.75}.bars{list-style:none;margin:0;padding:0;display:grid;gap:8px}.bars li{display:grid;grid-template-columns:minmax(90px,38%) 1fr auto;gap:10px;align-items:center;font-size:13.5px}.bar-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-track{height:12px}.bar-fill{display:block;height:12px;background:var(--series);border-radius:0 4px 4px 0}.bar-value{font-variant-numeric:tabular-nums;white-space:nowrap}.table-wrap{overflow-x:auto;max-height:420px;overflow-y:auto}table{border-collapse:collapse;width:100%;font-size:13.5px;font-variant-numeric:tabular-nums}th,td{text-align:right;padding:6px 10px;border-bottom:1px solid var(--hairline)}th:first-child,td:first-child{text-align:left}th{color:var(--ink-2);font-weight:600;position:sticky;top:0;background:var(--surface)}.bar{fill:var(--series);opacity:.55}.bar.on{opacity:.9}.line.second{stroke:var(--series-2)}.dot.second{fill:var(--series-2)}.axis-bar{fill:var(--series)}.axis-line{fill:var(--series-2)}.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:12.5px;color:var(--ink-2);margin-bottom:6px}.key{display:inline-block;margin-right:6px;vertical-align:middle}.key-bar{width:10px;height:10px;border-radius:2px;background:var(--series);opacity:.6}.key-line{width:14px;height:2px;background:var(--series-2)}
