:root{color-scheme:light;--page: #f4f6f3;--surface: #fcfcfb;--surface-2: #eef1ec;--ink: #0b0b0b;--ink-2: #52514e;--muted: #898781;--line: #e1e0d9;--axis: #c3c2b7;--accent: #2a78d6;--accent-ink: #1c5cab;--accent-wash: #e3eefb;--open-wash: rgba(27, 175, 122, .12);--open-ink: #0e7a52;--closed-wash: rgba(137, 135, 129, .14);--series-indoor: #2a78d6;--series-out: #eb6834;--series-dew: #1baf7a;--good: #0ca30c;--warning: #fab219;--critical: #d03b3b;--radius: 14px;--shadow: 0 1px 2px rgba(11, 11, 11, .04), 0 4px 16px rgba(11, 11, 11, .05);font-family:system-ui,-apple-system,Segoe UI,sans-serif;color:var(--ink);background:var(--page)}@media(prefers-color-scheme:dark){:root{color-scheme:dark;--page: #0d0d0d;--surface: #1a1a19;--surface-2: #232321;--ink: #f0efec;--ink-2: #c3c2b7;--muted: #898781;--line: #2c2c2a;--axis: #383835;--accent: #3987e5;--accent-ink: #86b6ef;--accent-wash: #16263a;--open-wash: rgba(25, 158, 112, .18);--open-ink: #4fd1a1;--closed-wash: rgba(137, 135, 129, .16);--series-indoor: #3987e5;--series-out: #d95926;--series-dew: #199e70;--shadow: none}}*{box-sizing:border-box}body{margin:0;line-height:1.45;-webkit-font-smoothing:antialiased}a{color:var(--accent-ink)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px;max-width:820px;margin:0 auto;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:9px;text-decoration:none;color:var(--ink);font-weight:650;font-size:1.15rem;letter-spacing:-.01em}.brand-mark{width:28px;height:28px;color:var(--ink)}.nav{display:flex;gap:4px}.nav a{text-decoration:none;color:var(--ink-2);padding:7px 12px;border-radius:999px;font-size:.93rem}.nav a.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow);font-weight:560}.wrap{max-width:820px;margin:0 auto;padding:4px 16px 64px}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;margin:14px 0;border:1px solid var(--line)}.card h2{font-size:1.02rem;margin:0 0 12px;letter-spacing:-.005em}.muted{color:var(--muted)}.small{font-size:.86rem}.ink2{color:var(--ink-2)}.hero{padding:22px 22px 18px}.hero .where{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:.88rem;color:var(--ink-2)}.status-pill{display:inline-flex;align-items:center;gap:7px;font-size:.84rem;font-weight:600;padding:4px 11px;border-radius:999px;margin-top:14px}.status-pill.open{background:var(--open-wash);color:var(--open-ink)}.status-pill.closed{background:var(--closed-wash);color:var(--ink-2)}.status-pill .dot{width:8px;height:8px;border-radius:50%;background:currentColor}.headline{font-size:clamp(1.7rem,5.5vw,2.4rem);font-weight:700;letter-spacing:-.02em;margin:10px 0 4px;line-height:1.1}.subline{color:var(--ink-2);margin:0;font-size:1rem}.savings{display:flex;gap:22px;flex-wrap:wrap;margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.stat .v{font-size:1.35rem;font-weight:650;letter-spacing:-.01em}.stat .l{font-size:.8rem;color:var(--muted)}.block{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;padding:14px 0;border-top:1px solid var(--line)}.block:first-of-type{border-top:0;padding-top:2px}.block .when{font-weight:650;grid-column:1 / -1;font-size:1.02rem}.block .icon{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--open-wash);color:var(--open-ink);font-size:.95rem;grid-row:span 3}.block p{margin:0;color:var(--ink-2);font-size:.94rem}.chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.chip{font-size:.8rem;padding:3px 9px;border-radius:999px;background:var(--surface-2);color:var(--ink-2);border:1px solid var(--line)}.chip.in{border-color:transparent;background:var(--accent-wash);color:var(--accent-ink)}.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:.82rem;color:var(--ink-2);margin-bottom:8px}.legend span{display:inline-flex;align-items:center;gap:6px}.legend i{display:inline-block;width:16px;height:2px;border-radius:2px}.legend i.box{height:10px;width:14px;border-radius:3px}.chart-wrap{position:relative}.chart-wrap svg{display:block;width:100%;height:auto;overflow:visible;touch-action:pan-y}.chart-wrap text{font-family:inherit}.tip{position:absolute;pointer-events:none;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 6px 24px #0000001f;padding:9px 11px;font-size:.8rem;min-width:168px;z-index:5;display:none}.tip .t{font-weight:650;margin-bottom:4px}.tip .r{display:flex;justify-content:space-between;gap:14px;color:var(--ink-2)}.tip .r b{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}.tip .sw{display:inline-block;width:9px;height:2px;margin-right:6px;vertical-align:middle}details.table-view summary{cursor:pointer;color:var(--accent-ink);font-size:.9rem;margin-top:10px}.hourly{width:100%;border-collapse:collapse;font-size:.82rem;margin-top:10px;font-variant-numeric:tabular-nums}.hourly th,.hourly td{text-align:right;padding:5px 6px;border-bottom:1px solid var(--line);white-space:nowrap}.hourly th:first-child,.hourly td:first-child,.hourly td:last-child,.hourly th:last-child{text-align:left}.hourly th{color:var(--muted);font-weight:560}.hourly tr.open td{background:var(--open-wash)}.table-scroll{overflow-x:auto}form.settings fieldset{border:0;padding:0;margin:0}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px 14px}label.f{display:flex;flex-direction:column;gap:5px;font-size:.85rem;color:var(--ink-2)}label.f .hint{font-size:.77rem;color:var(--muted)}input,select{font:inherit;font-size:.95rem;color:var(--ink);background:var(--page);border:1px solid var(--line);border-radius:9px;padding:9px 10px;width:100%}input:focus,select:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:transparent}input:disabled,select:disabled{opacity:.55}.row-inline{display:flex;gap:8px;align-items:flex-end}.check{display:flex;gap:8px;align-items:center;font-size:.9rem;color:var(--ink)}.check input{width:auto}.btn{font:inherit;font-size:.93rem;font-weight:600;border-radius:10px;padding:10px 16px;border:1px solid transparent;cursor:pointer;background:var(--accent);color:#fff;white-space:nowrap}.btn:hover{filter:brightness(1.06)}.btn.ghost{background:transparent;color:var(--accent-ink);border-color:var(--line)}.btn.danger{background:transparent;color:var(--critical);border-color:var(--line)}.btn.sm{padding:6px 10px;font-size:.84rem}.actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;position:sticky;bottom:0;padding:14px 0;background:linear-gradient(transparent,var(--page) 30%)}.win-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr auto;gap:8px;align-items:end;padding:8px 0;border-top:1px solid var(--line)}.win-row:first-of-type{border-top:0}@media(max-width:560px){.win-row{grid-template-columns:1fr 1fr 1fr}.win-row .name{grid-column:1 / -1}}.note{background:var(--accent-wash);color:var(--accent-ink);border-radius:10px;padding:10px 12px;font-size:.86rem;margin:6px 0 12px}.err{color:var(--critical);font-size:.86rem}.ok{color:var(--good);font-size:.86rem}.prose h3{font-size:.98rem;margin:18px 0 6px}.prose p,.prose li{color:var(--ink-2);font-size:.95rem}.prose code{font-size:.86rem;background:var(--surface-2);padding:1px 5px;border-radius:5px}.skeleton{height:14px;border-radius:6px;background:linear-gradient(90deg,var(--surface-2),var(--line),var(--surface-2));background-size:200% 100%;animation:sh 1.2s infinite;margin:10px 0}@keyframes sh{to{background-position:-200% 0}}
