:root{color-scheme:light dark;--color-bg: #fff8f1;--color-surface: #ffffff;--color-border: #f3e2d3;--color-text: #2b1d14;--color-text-muted: #6b4f3f;--color-accent: #b93d0a;--color-accent-text: #ffffff;--color-focus: #b93d0a;--color-error: #b42318;--shadow: 0 1px 2px rgb(124 45 18 / .06), 0 4px 12px rgb(124 45 18 / .08);--font-body: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 2rem;--series-1: #2a78d6;--series-2: #eb6834;--series-3: #1baf7a;--series-4: #eda100;--series-5: #e87ba4;--series-6: #008300;--radius: .75rem;--radius-pill: 999px;--max-width: 48rem}@media(prefers-color-scheme:dark){:root{--color-bg: #1a120d;--color-surface: #281c15;--color-border: #3d2b20;--color-text: #fbefe6;--color-text-muted: #d4bba9;--color-accent: #fdba74;--color-accent-text: #1a120d;--color-focus: #fdba74;--color-error: #fca5a5;--shadow: 0 1px 2px rgb(0 0 0 / .3), 0 4px 12px rgb(0 0 0 / .25);--series-1: #3987e5;--series-2: #d95926;--series-3: #199e70;--series-4: #c98500;--series-5: #d55181;--series-6: #008300}}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:var(--font-body);line-height:1.6;color:var(--color-text);background:var(--color-bg)}a{color:var(--color-accent)}:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}[hidden]{display:none!important}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip-link{position:absolute;left:var(--space-md);top:-3rem}.skip-link:focus{top:var(--space-md)}.site-header,main{max-width:var(--max-width);margin-inline:auto;padding:var(--space-md)}main{display:flex;flex-direction:column;gap:var(--space-md);padding-bottom:var(--space-lg)}h1{margin:0;font-size:clamp(2rem,6vw,3rem);line-height:1.1;letter-spacing:-.03em}.intro{margin:0;color:var(--color-text-muted)}h2{margin:0 0 var(--space-md);font-size:1.375rem;line-height:1.2}h3{margin:0;font-size:1rem}button{font:inherit;cursor:pointer}.panel{margin-top:var(--space-md)}.status:empty{display:none}.status{margin:0 0 var(--space-md);color:var(--color-text-muted)}.hint{margin:0;font-size:.875rem;color:var(--color-text-muted)}.swatch{display:inline-block;flex:none;width:.75rem;height:.75rem;border-radius:50%;background:currentColor}.series-1{color:var(--series-1)}.series-2{color:var(--series-2)}.series-3{color:var(--series-3)}.series-4{color:var(--series-4)}.series-5{color:var(--series-5)}.series-6{color:var(--series-6)}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr));gap:var(--space-sm);margin:0;padding:0;list-style:none}.card{padding:var(--space-md);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow)}.card h3{display:flex;align-items:center;gap:var(--space-sm)}.card p{margin:0}.card__temperature{margin-top:var(--space-xs);font-size:1.75rem;font-weight:700;line-height:1.2;font-variant-numeric:tabular-nums}.card__humidity,.card__time{color:var(--color-text-muted)}.card__time{font-size:.875rem}.card--stale .card__time{color:var(--color-error)}.controls{display:flex;flex-direction:column;gap:var(--space-md);margin-bottom:var(--space-md)}.periods,.range,.sensor-filter>div{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm)}.periods button,.range button{min-height:2.75rem;padding:var(--space-xs) var(--space-md);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-pill)}.periods button[aria-pressed=true],.range button{color:var(--color-accent-text);background:var(--color-accent);border-color:var(--color-accent)}.range label{display:flex;align-items:center;gap:var(--space-xs)}.range input{min-height:2.75rem;padding:var(--space-xs) var(--space-sm);font:inherit;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius)}.sensor-filter{margin:0;padding:0;border:0}.sensor-filter legend{margin-bottom:var(--space-xs);padding:0;font-weight:600}.sensor-filter label{display:inline-flex;align-items:center;gap:var(--space-xs);min-height:2.75rem;padding-right:var(--space-sm)}.sensor-filter input{width:1.125rem;height:1.125rem;margin:0;accent-color:var(--color-accent)}#history-results{display:flex;flex-direction:column;gap:var(--space-md)}.chart{margin:0;padding:var(--space-md) var(--space-sm) var(--space-sm);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius)}.chart figcaption{padding-inline:var(--space-sm);font-weight:600}.chart__plot{position:relative;min-height:240px}.chart__plot svg{display:block;overflow:visible;touch-action:pan-y}.chart__grid line{stroke:var(--color-border);stroke-width:1}.chart__label{font-size:.75rem;fill:var(--color-text-muted);font-variant-numeric:tabular-nums}.chart__label--y{text-anchor:end;dominant-baseline:middle}.chart__label--x{text-anchor:middle}.chart__line{fill:none;stroke:currentColor;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.chart__cursor line{stroke:var(--color-text-muted);stroke-width:1}.chart__cursor circle{fill:currentColor;stroke:var(--color-surface);stroke-width:2}.chart__tooltip{position:absolute;top:0;z-index:1;min-width:10rem;padding:var(--space-sm);font-size:.875rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow);pointer-events:none}.chart__tooltip-title{margin:0 0 var(--space-xs);color:var(--color-text-muted)}.chart__tooltip ul{margin:0;padding:0;list-style:none}.chart__tooltip li{display:flex;align-items:center;gap:var(--space-xs)}.chart__tooltip strong{margin-left:auto;padding-left:var(--space-md);font-variant-numeric:tabular-nums}.table-wrapper{overflow-x:auto}.summary{width:100%;border-collapse:collapse;font-size:.875rem;font-variant-numeric:tabular-nums}.summary caption{margin-bottom:var(--space-sm);font-weight:600;text-align:left}.summary th,.summary td{padding:var(--space-xs) var(--space-sm);border-bottom:1px solid var(--color-border);text-align:right;white-space:nowrap}.summary th:first-child{text-align:left}@media(forced-colors:active){.chart__plot svg,.swatch{forced-color-adjust:none}}
