.uplot,.uplot *,.uplot *:before,.uplot *:after{box-sizing:border-box}.uplot{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;width:min-content}.u-title{text-align:center;font-size:18px;font-weight:700}.u-wrap{position:relative;-webkit-user-select:none;user-select:none}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{display:block;position:relative;width:100%;height:100%}.u-axis{position:absolute}.u-legend{font-size:14px;margin:auto;text-align:center}.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{background:#00000012;position:absolute;pointer-events:none}.u-cursor-x,.u-cursor-y{position:absolute;left:0;top:0;pointer-events:none;will-change:transform}.u-hz .u-cursor-x,.u-vt .u-cursor-y{height:100%;border-right:1px dashed #607D8B}.u-hz .u-cursor-y,.u-vt .u-cursor-x{width:100%;border-bottom:1px dashed #607D8B}.u-cursor-pt{position:absolute;top:0;left:0;border-radius:50%;border:0 solid;pointer-events:none;will-change:transform;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}:root{--bg: #f6f7f9;--surface: #ffffff;--text: #14181d;--muted: #5d6772;--accent: #1d6fa5;--warn-bg: #fdf1d8;--warn-text: #6b4a05;--error: #a3271f;--border: #dde1e6;--series-1: #2a78d6;--series-2: #eb6834;--grid: #e1e0d9;--axis: #c3c2b7;--status-warning: #b8791a;color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--bg: #10151a;--surface: #171d24;--text: #eef2f6;--muted: #939ea9;--accent: #5fb2e6;--warn-bg: #3a2f14;--warn-text: #f0d089;--error: #f08a80;--border: #2a323b;--series-1: #3987e5;--series-2: #d95926;--grid: #2c2c2a;--axis: #383835;--status-warning: #fab219}}*{box-sizing:border-box}body{margin:0;min-height:100dvh;display:grid;place-items:center;padding:1.5rem;padding:max(1.5rem,env(safe-area-inset-top)) max(1.5rem,env(safe-area-inset-right)) max(1.5rem,env(safe-area-inset-bottom)) max(1.5rem,env(safe-area-inset-left));background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}#app{width:100%;max-width:26rem;min-width:0}.loading,.error{text-align:center;color:var(--muted)}.error{color:var(--error)}.login{display:flex;flex-direction:column;gap:.75rem;background:var(--surface);border:1px solid var(--border);border-radius:.75rem;padding:1.5rem}.login h1{margin:0 0 .5rem;font-size:1.25rem;font-weight:600;text-align:center}.login input,.login button{font-size:1rem;padding:.75rem;border-radius:.5rem;border:1px solid var(--border);font-family:inherit}.login input{background:var(--bg);color:var(--text)}.login button{background:var(--accent);color:#fff;border-color:transparent;font-weight:600;cursor:pointer}.login button:disabled{opacity:.55;cursor:default}.login .error{margin:0;min-height:1.25rem;font-size:.875rem;text-align:center}.gauge{text-align:center}.gauge.is-refreshing{opacity:.6}.gauge{transition:opacity .12s ease-out}@media(prefers-reduced-motion:reduce){.gauge{transition:none}}.stale,.offline{border-radius:.5rem;padding:.625rem .875rem;margin:0 0 .75rem;font-size:.9375rem}.stale{background:var(--warn-bg);color:var(--warn-text);margin-bottom:1.5rem}.offline{background:var(--surface);border:1px solid var(--border);color:var(--muted)}.label{margin:0;color:var(--muted);font-size:.9375rem;text-transform:uppercase;letter-spacing:.06em}.reading{margin:.25rem 0 0;font-size:clamp(3rem,19vw,6rem);font-weight:700;line-height:1}.reading.is-stale{color:var(--muted)}.reading .unit{font-size:.3em;font-weight:600;color:var(--muted);margin-left:.25em;letter-spacing:.02em}.age{margin:.75rem 0 0;color:var(--muted);font-size:1rem}.controls{display:flex;flex-direction:column;gap:.375rem;margin:2rem 0 .75rem}.chips{display:flex;gap:.375rem}.chip{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:.375rem;padding:.5rem .25rem;font-size:.875rem;font-family:inherit;color:var(--muted);background:var(--surface);border:1px solid var(--border);border-radius:.375rem;cursor:pointer;min-height:2.75rem}.chip.is-selected{background:var(--accent);border-color:transparent;color:#fff;font-weight:600}.chip:disabled{cursor:default;opacity:.6}.chip-dot{width:.5rem;height:.5rem;border-radius:50%;background:var(--chip-series, currentColor);flex:none}.chip.is-selected .chip-dot{background:currentColor}.chart{margin:0;width:100%;min-width:0;background:var(--surface);border:1px solid var(--border);border-radius:.5rem;padding:.5rem .75rem .625rem;overflow:hidden}.chart-plot{width:100%;min-width:0}.chart-caption{margin:.375rem 0 0;color:var(--muted);font-size:.8125rem;text-align:left}.chart-empty{margin:2rem 0 0;color:var(--muted);font-size:.9375rem}.chart-tip{position:absolute;z-index:2;pointer-events:none;display:flex;flex-direction:column;gap:.125rem;padding:.375rem .5rem;border-radius:.375rem;background:var(--surface);border:1px solid var(--border);box-shadow:0 2px 8px #0000001f;white-space:nowrap;text-align:left}.chart-tip strong{font-size:.9375rem;font-variant-numeric:tabular-nums;color:var(--text)}.chart-tip span{font-size:.75rem;color:var(--muted)}.u-cursor-x{border-right-color:var(--axis)}.diagnostics{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem;margin-top:1.75rem}@media(min-width:32rem){.diagnostics{grid-template-columns:repeat(4,1fr)}}.tile{background:var(--surface);border:1px solid var(--border);border-radius:.5rem;padding:.625rem .5rem;text-align:left}.tile-label{margin:0;font-size:.75rem;color:var(--muted)}.tile-value{margin:.125rem 0 0;font-size:1.125rem;font-weight:600;color:var(--text);white-space:nowrap}.tile-note{margin:.125rem 0 0;font-size:.6875rem;color:var(--muted)}.tile.is-warning .tile-value{color:var(--status-warning)}.link{margin-top:2.5rem;background:none;border:none;color:var(--muted);font-size:.875rem;font-family:inherit;text-decoration:underline;cursor:pointer;padding:.5rem}
