:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--page:#f9f9f7;--surface:#fcfcfb;--surface-2:#f0efec;--ink:#0b0b0b;--ink-2:#52514e;--muted:#898781;--grid:#e1e0d9;--axis:#c3c2b7;--border:#0b0b0b1a;--accent:#2a78d6;--accent-ink:#fff;--series-1:#2a78d6;--series-2:#eb6834;--series-3:#1baf7a;--series-4:#eda100;--series-5:#e87ba4;--series-6:#008300;--series-7:#6250d6;--series-8:#e34948;--temp-cold:#2a78d6;--temp-warm:#e34948;--temp-mid:#f0efec;--wall:#3d3c39;--good:#0ca30c;--good-ink:#006300;--warning:#fab219;--serious:#ec835a;--critical:#d03b3b;--radius:14px;--font:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}@media (prefers-color-scheme:dark){:root:where(:not([data-theme=light])){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page:#0d0d0d;--surface:#1a1a19;--surface-2:#262624;--ink:#f0efec;--ink-2:#c3c2b7;--muted:#898781;--grid:#2c2c2a;--axis:#383835;--border:#ffffff1a;--accent:#3987e5;--series-1:#3987e5;--series-2:#d95926;--series-3:#199e70;--series-4:#c98500;--series-5:#d55181;--series-6:#008300;--series-7:#9085e9;--series-8:#e66767;--temp-cold:#3987e5;--temp-warm:#e66767;--temp-mid:#383835;--wall:#6b6a65;--good-ink:#0ca30c}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page:#0d0d0d;--surface:#1a1a19;--surface-2:#262624;--ink:#f0efec;--ink-2:#c3c2b7;--muted:#898781;--grid:#2c2c2a;--axis:#383835;--border:#ffffff1a;--accent:#3987e5;--series-1:#3987e5;--series-2:#d95926;--series-3:#199e70;--series-4:#c98500;--series-5:#d55181;--series-6:#008300;--series-7:#9085e9;--series-8:#e66767;--temp-cold:#3987e5;--temp-warm:#e66767;--temp-mid:#383835;--wall:#6b6a65;--good-ink:#0ca30c}*{box-sizing:border-box}html,body{background:var(--page);color:var(--ink);font-family:var(--font);-webkit-text-size-adjust:100%;margin:0;font-size:15px;line-height:1.4}button{font:inherit;color:inherit}.app{min-height:100vh;padding-bottom:calc(72px + env(safe-area-inset-bottom))}.topbar{z-index:10;padding:10px 16px;padding-top:calc(10px + env(safe-area-inset-top));background:color-mix(in srgb, var(--page) 88%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);align-items:center;gap:12px;display:flex;position:sticky;top:0}.topbar h1{flex:1;margin:0;font-size:18px;font-weight:650}.tabs{gap:4px;display:flex}.tabs button,.nav button{color:var(--ink-2);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:6px 12px}.tabs button[aria-current=page]{background:var(--surface-2);color:var(--ink);font-weight:600}.nav{z-index:10;padding:6px 8px calc(6px + env(safe-area-inset-bottom));background:color-mix(in srgb, var(--page) 92%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--border);justify-content:space-around;display:none;position:fixed;inset:auto 0 0}.nav button{flex-direction:column;align-items:center;gap:2px;min-width:64px;padding:6px 10px;font-size:12px;display:flex}.nav button[aria-current=page]{color:var(--accent);font-weight:600}@media (width<=720px){.tabs{display:none}.nav{display:flex}}@media (width>=721px){.app{padding-bottom:24px}}.grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:12px;max-width:1400px;margin:0 auto;padding:12px 16px;display:grid}.tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:0;padding:14px 16px}.tile.wide{grid-column:1/-1}@media (width>=1100px){.tile.span2{grid-column:span 2}}.tile h2{color:var(--ink-2);align-items:center;gap:8px;margin:0 0 10px;font-size:13px;font-weight:600;display:flex}.tile h2 .spacer{flex:1}.foot{color:var(--muted);margin-top:10px;font-size:12px}.conn{color:var(--ink-2);align-items:center;gap:6px;font-size:12px;display:inline-flex}.dot{background:var(--muted);border-radius:50%;flex:none;width:8px;height:8px}.dot.good{background:var(--good)}.dot.warning{background:var(--warning)}.dot.critical{background:var(--critical)}.banner{background:var(--surface);border:1px solid var(--critical);border-radius:10px;align-items:center;gap:8px;margin:12px 16px 0;padding:10px 14px;font-size:14px;display:flex}.theme-toggle{border:1px solid var(--border);background:var(--surface);cursor:pointer;color:var(--ink-2);border-radius:999px;padding:4px 10px;font-size:12px}.rows{gap:0;display:grid}.row{border-top:1px solid var(--grid);align-items:baseline;gap:12px;padding:7px 0;display:flex}.row:first-child{border-top:0}.row .label{color:var(--ink-2);flex:1;min-width:0}.row .value{font-variant-numeric:tabular-nums;text-align:right;overflow-wrap:anywhere;font-weight:600}.row .value.text{max-width:65%;font-size:13px;font-weight:500}.row .unit{color:var(--muted);margin-left:3px;font-weight:400}.stats{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;margin-top:12px;display:grid}.stat{background:var(--surface-2);border-radius:10px;padding:8px 10px}.stat .label{color:var(--ink-2);font-size:12px}.stat .value{font-size:18px;font-weight:600}.stat .unit{color:var(--muted);margin-left:3px;font-size:12px;font-weight:400}.switch-row{border-top:1px solid var(--grid);align-items:center;gap:12px;padding:8px 0;display:flex}.switch-row:first-child{border-top:0}.switch-row .label{flex:1;min-width:0}.switch-row .hint{color:var(--muted);font-size:12px;display:block}.toggle{background:var(--axis);cursor:pointer;border:0;border-radius:999px;flex:none;width:50px;height:30px;transition:background .15s;position:relative}.toggle:after{content:"";background:#fff;border-radius:50%;width:24px;height:24px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #00000040}.toggle[aria-checked=true]{background:var(--accent)}.toggle[aria-checked=true]:after{transform:translate(20px)}.toggle:disabled{cursor:default;opacity:.55}.toggle.pending:after{animation:.9s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.4}}.pill{background:var(--surface-2);color:var(--ink);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:13px;display:inline-flex}.error{color:var(--critical);font-size:12px}.btns{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;display:grid}.btn{border:1px solid var(--border);background:var(--surface-2);cursor:pointer;text-align:left;border-radius:10px;min-height:44px;padding:10px 12px}.btn:hover{border-color:var(--accent)}.btn:disabled{opacity:.6;cursor:default}.btn .sub{color:var(--muted);font-size:12px;display:block}.thermos{grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr));gap:10px;display:grid}.thermo{background:var(--surface-2);border-radius:12px;gap:6px;padding:10px 12px;display:grid}.thermo .name{align-items:center;gap:6px;font-weight:600;display:flex}.thermo .temps{align-items:baseline;gap:6px;display:flex}.thermo .ist{font-size:28px;font-weight:600}.thermo .ist small{color:var(--muted);font-size:14px;font-weight:400}.thermo .meta{color:var(--ink-2);flex-wrap:wrap;gap:10px;font-size:12px;display:flex}.stepper{align-items:center;gap:6px;display:flex}.stepper button{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:50%;width:36px;height:36px;font-size:18px;line-height:1}.stepper .soll{text-align:center;font-variant-numeric:tabular-nums;min-width:64px;font-weight:600}.stepper .soll.pending{animation:.9s ease-in-out infinite pulse}.chip{border:1px solid var(--border);color:var(--ink-2);border-radius:999px;align-items:center;gap:4px;padding:1px 7px;font-size:11px;display:inline-flex}.cars{grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:12px;display:grid}.car{background:var(--surface-2);border-radius:12px;padding:12px}.car .name{font-size:16px;font-weight:600}.meter{background:color-mix(in srgb, var(--series-1) 18%, var(--surface));border-radius:999px;height:8px;margin:6px 0 2px;overflow:hidden}.meter>div{background:var(--series-1);border-radius:999px;height:100%}.meter.low>div{background:var(--serious)}.status-list{gap:4px;margin-top:8px;font-size:14px;display:grid}.status-list>div{align-items:center;gap:8px;display:flex}.presence{flex-wrap:wrap;gap:8px;display:flex}.flow svg{width:100%;height:auto;max-height:360px;display:block}.flow .node-ring{fill:var(--surface);stroke-width:2px}.flow .node-label{fill:var(--ink-2);font-size:12px}.flow .node-value{fill:var(--ink);font-size:14px;font-weight:600}.flow .node-sub{fill:var(--muted);font-size:11px}.flow .link{fill:none;stroke:var(--axis);stroke-width:2px;stroke-linecap:round}.flow .link.active{stroke-dasharray:2 8;animation:1s linear infinite flow}.flow .link.reverse{animation-direction:reverse}@keyframes flow{to{stroke-dashoffset:-10px}}@media (prefers-reduced-motion:reduce){.flow .link.active{animation:none}}.chart-head{flex-wrap:wrap;align-items:center;gap:8px 16px;margin-bottom:6px;display:flex}.legend{color:var(--ink-2);flex-wrap:wrap;flex:1;gap:4px 14px;font-size:12px;display:flex}.legend span{align-items:center;gap:6px;display:inline-flex}.legend i{border-radius:1px;width:14px;height:2px;display:inline-block}.seg{background:var(--surface-2);border-radius:999px;padding:2px;display:inline-flex}.seg button{color:var(--ink-2);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:3px 10px;font-size:12px}.seg button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:0 0 0 1px var(--border);font-weight:600}.chart{width:100%;height:260px}table.data{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:13px}table.data th,table.data td{text-align:right;border-bottom:1px solid var(--grid);padding:4px 6px}table.data th:first-child,table.data td:first-child{text-align:left}table.data th{color:var(--ink-2);font-weight:600}.table-wrap{max-height:260px;overflow:auto}.thermo .boost{color:var(--ink-2);justify-content:space-between;align-items:center;font-size:13px;display:flex}.legend .swatch,.stat .swatch,.screen-head .swatch,table.data .swatch{vertical-align:-1px;border-radius:2px;width:10px;height:10px;display:inline-block}.controls{flex-wrap:wrap;gap:8px;display:flex}.chart-sub{color:var(--ink-2);margin:8px 0 0;font-size:12px}.chart.small{height:120px}.table-wrap.tall{max-height:480px}.search{min-width:0;font:inherit;border:1px solid var(--border);background:var(--surface-2);color:var(--ink);border-radius:999px;flex:1;padding:6px 12px;font-size:14px}.mono{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:12px}.muted{color:var(--muted)}table.data.hosts td:first-child{white-space:nowrap}.show-sm{display:none}@media (width<=720px){.show-sm{display:inline}}table.data .dot{vertical-align:1px;display:inline-block}.value.warn{color:var(--critical)}.device-list{display:grid}.device{border-top:1px solid var(--grid);align-items:center;gap:10px;padding:7px 0;display:flex}.device:first-child{border-top:0}.device .name{flex:1;min-width:0}.device .since{color:var(--muted);text-align:right;font-size:12px}.thermo .seg.valve{width:100%;display:flex}.thermo .seg.valve button{flex:1;padding:5px 4px}.thermo .seg.valve button.pending{animation:.9s ease-in-out infinite pulse}.thermo.is-max .soll{color:var(--critical)}.car{align-content:start;gap:6px;display:grid}.car-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.car .sub{color:var(--muted);font-size:12px}.car .hero{white-space:nowrap;font-size:30px;font-weight:600;line-height:1.1}.car .hero .unit{color:var(--muted);margin-left:3px;font-size:14px;font-weight:400}.fuel-row{color:var(--ink-2);margin-top:4px;font-size:13px}.car .stats{margin-top:6px}.car .stat{background:var(--surface)}.section-title{color:var(--ink-2);text-transform:uppercase;letter-spacing:.03em;margin-top:10px;font-size:12px;font-weight:600}.car .status-list{grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:4px 16px;margin-top:2px}.car .status-list .k{color:var(--ink-2);flex:1}.car .status-list .v{white-space:nowrap}table.data.trips td:first-child{color:var(--ink-2)}details.raw{border-top:1px solid var(--grid);margin-top:8px;padding-top:6px}details.raw summary{cursor:pointer;color:var(--accent);padding:4px 0;font-size:13px}details.raw .rows{max-height:420px;overflow:auto}details.raw .row .label{overflow-wrap:anywhere}@media (width<=720px){html,body{font-size:14px}.topbar{padding:8px 12px;padding-top:calc(8px + env(safe-area-inset-top))}.topbar h1{font-size:17px}.grid{gap:10px;padding:10px}.tile{border-radius:12px;padding:12px}.banner{margin:10px 10px 0}.chart{height:220px}.chart.small{height:110px}.chart-head{flex-direction:column;align-items:stretch}.controls{justify-content:space-between}.thermos{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.thermo{padding:8px 10px}.thermo .name{font-size:13px}.thermo .ist{font-size:22px}.stepper{gap:4px}.stepper button{width:32px;height:32px}.stepper .soll{flex:1;min-width:0;font-size:13px}.thermo .meta .chip{font-size:10px}.stats,.btns{grid-template-columns:repeat(2,minmax(0,1fr))}.hide-sm{display:none}table.data.hosts td:first-child{white-space:normal;overflow-wrap:anywhere}table.data.hosts td:nth-child(2){white-space:nowrap}table.data{font-size:12px}table.data th,table.data td{padding:4px 3px}.row .value.text{max-width:60%}.car .hero{font-size:26px}}@media (width<=360px){.thermos{grid-template-columns:1fr}}.people{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:12px;display:grid}.person{background:var(--surface-2);border:1px solid #0000;border-radius:12px;gap:14px;padding:14px;display:flex}.person.home{border-color:color-mix(in srgb, var(--good) 45%, transparent)}.person .avatar{background:var(--surface);width:48px;height:48px;color:var(--ink-2);border:2px solid var(--axis);border-radius:50%;flex:none;place-items:center;font-size:20px;font-weight:600;display:grid}.person.home .avatar{border-color:var(--good);color:var(--ink)}.person .info{gap:4px;min-width:0;display:grid}.person .name{font-size:17px;font-weight:600}.person .status{align-items:center;gap:6px;font-size:15px;display:flex}.person .since{color:var(--muted);font-size:12px}.person .chips{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.person .chips.secondary .chip{opacity:.8}.chart.tall{height:340px}.series-toggles{flex-wrap:wrap;gap:6px;margin:4px 0 8px;display:flex}.series-toggle{border:1px solid var(--border);background:var(--surface);color:var(--ink-2);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:6px;min-height:30px;padding:4px 10px;font-size:12px;display:inline-flex}.series-toggle i{border-top:2px solid var(--c);border-radius:1px;width:14px;height:0}.series-toggle.outdoor i{border-top-style:dashed}.series-toggle .val{color:var(--ink);font-variant-numeric:tabular-nums;font-weight:600}.series-toggle[aria-pressed=true]{background:var(--surface-2);color:var(--ink)}.series-toggle[aria-pressed=false]{opacity:.55}.series-toggle[aria-pressed=false] i{border-top-color:var(--muted)}.series-toggle[aria-pressed=false] .name{text-decoration:line-through}.series-bulk{gap:4px;margin-left:auto;display:inline-flex}.series-bulk button{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;padding:4px 6px;font-size:12px}.series-bulk button:disabled{color:var(--muted);cursor:default}.chart-empty{text-align:center;color:var(--muted);pointer-events:none;height:180px;margin-top:-180px;font-size:13px}@media (width<=720px){.chart.tall{height:280px}.series-toggles{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.series-toggle{min-width:0;padding:4px 8px}.series-toggle .name{text-align:left;-webkit-hyphens:auto;hyphens:auto;overflow-wrap:anywhere;flex:1;min-width:0;line-height:1.2}.series-toggle .val{flex-shrink:0}.series-bulk{grid-column:1/-1;justify-content:flex-end}}.plan-legend{color:var(--ink-2);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:6px 8px;margin-bottom:10px;font-size:12px;display:flex}.plan-scale{background:linear-gradient(to right, color-mix(in oklab, var(--temp-cold) 70%, var(--temp-mid)), var(--temp-mid), color-mix(in oklab, var(--temp-warm) 70%, var(--temp-mid)));border-radius:4px;width:120px;height:8px}.plan-legend .muted{margin-left:6px}.floors{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));align-items:start;gap:16px 24px;display:grid}.floor{margin:0}.floor figcaption{color:var(--ink-2);margin-bottom:4px;font-size:12px;font-weight:600}.plan{width:100%;position:relative}.plan svg{width:100%;height:100%;display:block;position:absolute;inset:0}.plan-walls{fill:var(--wall)}.plan-room rect,.plan-room polygon{transition:fill .6s}.plan-room.kind-outside rect,.plan-room.kind-outside polygon{stroke:var(--axis);stroke-width:.05px;stroke-dasharray:.18 .12}.plan-room.selected rect,.plan-room.selected polygon{stroke:var(--accent);stroke-width:.12px}.plan-steps line{stroke:var(--grid);stroke-width:.03px}.room-label{color:var(--ink);font:inherit;text-align:center;cursor:pointer;background:0 0;border:0;border-radius:4px;flex-direction:column;justify-content:center;align-items:center;gap:1px;padding:2px;display:flex;position:absolute;overflow:hidden}.room-label.passive{cursor:default}.room-label:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}.room-name{color:var(--ink-2);-webkit-hyphens:auto;hyphens:auto;overflow-wrap:anywhere;font-size:12px;line-height:1.15}.room-label.passive .room-name{color:var(--muted);font-size:11px}.room-temp{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:22px;font-weight:650;line-height:1.1}.room-temp small{vertical-align:.5em;font-size:.6em;font-weight:600}.room-trend{color:var(--ink-2);margin-left:2px;font-size:.6em}.room-status{color:var(--ink-2);flex-wrap:wrap;justify-content:center;align-items:center;gap:2px 6px;font-size:11px;line-height:1.2;display:flex}.room-status .flag{color:var(--ink);font-weight:600}.room-label.compact .room-name{font-size:11px}.room-label.compact .room-temp{font-size:17px}.room-label.kind-outside .room-temp{color:var(--ink-2);font-size:16px}.plan-detail{border-top:1px solid var(--grid);margin-top:14px;padding-top:12px}.plan-detail-head{flex-wrap:wrap;align-items:center;gap:6px 10px;margin-bottom:8px;font-size:14px;display:flex}.plan-detail-head .muted{font-size:12px}@media (width<=720px){.room-name{font-size:10px}.room-temp{font-size:17px}.room-label.compact .room-temp{font-size:14px}.room-label.compact .room-name,.room-status{font-size:9.5px}.room-label.kind-outside .room-temp{font-size:13px}.room-label.passive .room-name{font-size:9.5px}.room-label.tiny .room-name,.room-label.tiny .room-trend{display:none}.room-label.tiny .room-temp{font-size:11px}}.plan-detail .chart.small{height:170px}.chart.energy{height:380px}.seg-wrap{border-radius:14px;flex-wrap:wrap}.range-row{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:6px 10px;margin:2px 0 8px;font-size:12px;display:flex}.range-row label{align-items:center;gap:6px;display:inline-flex}.range-row input{font:inherit;color:var(--ink);background:var(--surface-2);border:1px solid var(--border);color-scheme:inherit;border-radius:8px;padding:4px 6px;font-size:13px}.range-step{border:1px solid var(--border);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:999px;width:30px;height:30px;font-size:18px;line-height:1}.series-toggle.line-forecast i{border-top-style:dashed}.series-toggle.line-forecastRaw i{border-top-style:dotted}@media (width<=720px){.chart.energy{height:330px}.range-row label{flex:140px}.range-row input{flex:1;min-width:0}}.appl-status{flex-wrap:wrap;align-items:baseline;gap:4px 10px;font-size:15px;display:flex}.appl-status .dot{align-self:center}.appl-text{flex:220px}.appl-power{font-variant-numeric:tabular-nums;font-size:26px;font-weight:650}.appl-power small{color:var(--ink-2);font-size:14px;font-weight:500}.appl-lamp{flex-wrap:wrap;align-items:center;gap:4px 10px;margin:6px 0 12px;font-size:12px;display:flex}.appl-lamp .chip{padding:2px 9px;font-size:12px}.appl-lamp .chip.on{color:var(--ink);font-weight:600}.screen-cards{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:10px;display:grid}.screen-card{background:var(--surface-2);border-radius:10px;padding:10px 12px}.screen-head{align-items:center;gap:8px;font-size:14px;display:flex}.screen-head .chip{margin-left:auto}.screen-head .chip.on{color:var(--ink);font-weight:600}.screen-status{color:var(--ink-2);min-height:1.3em;margin:4px 0 8px;font-size:12px}.screen-stats{flex-wrap:wrap;gap:16px;display:flex}.screen-stats div{flex-direction:column;display:flex}.screen-stats .label{color:var(--muted);font-size:11px}.screen-stats b{font-variant-numeric:tabular-nums;font-size:16px}.timeline{flex-direction:column;gap:4px;display:flex}.tl-row{grid-template-columns:78px 1fr 64px;align-items:center;gap:8px;font-size:12px;display:grid}.tl-day{color:var(--ink-2);white-space:nowrap}.tl-sum{text-align:right;color:var(--ink-2);font-variant-numeric:tabular-nums;white-space:nowrap}.tl-track{background:var(--surface-2);border-radius:4px;height:22px;position:relative}.tl-axis .tl-track{background:0 0;height:14px}.tl-axis .tl-track span{color:var(--muted);font-size:10px;position:absolute;transform:translate(-50%)}.tl-axis .tl-track span:first-child{transform:none}.tl-axis .tl-track span:last-child{transform:translate(-100%)}.tl-grid{background:var(--grid);width:1px;position:absolute;top:0;bottom:0}.tl-now{background:var(--ink-2);z-index:2;border-radius:1px;width:2px;position:absolute;top:-2px;bottom:-2px}.tl-lane{padding:2px 0;position:absolute;left:0;right:0}.tl-seg{cursor:pointer;border:0;border-radius:2px;padding:0;position:absolute;top:2px;bottom:2px}.tl-seg.running{opacity:.75}.tl-seg.selected{outline:2px solid var(--ink);outline-offset:1px;z-index:1}.tl-detail{color:var(--ink-2);min-height:1.3em;margin:4px 0 0 86px;font-size:12px}.screen-bottom{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:8px 24px;margin-top:6px;display:grid}.app-bars{flex-direction:column;gap:6px;margin:8px 0 0;padding:0;list-style:none;display:flex}.app-bars li{grid-template-columns:110px 1fr 70px;align-items:center;gap:8px;font-size:12px;display:grid}.app-name{color:var(--ink-2);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.app-bar{background:var(--surface-2);border-radius:3px;height:10px;overflow:hidden}.app-bar i{background:var(--series-1);border-radius:3px;height:100%;display:block}.app-time{text-align:right;font-variant-numeric:tabular-nums}@media (width<=720px){.tl-row{grid-template-columns:62px 1fr 52px;gap:6px;font-size:11px}.tl-detail{margin-left:0}}.login{min-height:100vh;padding:16px;padding-top:calc(16px + env(safe-area-inset-top));place-items:center;display:grid}.login-box{flex-direction:column;gap:12px;width:min(100%,380px);padding:24px;display:flex}.login-box h2{color:var(--ink);margin:0;font-size:20px}.login-logo{line-height:0}.login-text{color:var(--ink-2);margin:0}.login-error{color:var(--critical);margin:0}.login-links{justify-content:space-between;display:flex}.field{color:var(--ink-2);flex-direction:column;gap:4px;font-size:13px;display:flex}.field input{font:inherit;color:var(--ink);background:var(--page);border:1px solid var(--border);border-radius:10px;padding:10px 12px;font-size:16px}.field input:focus{outline:2px solid var(--accent);outline-offset:-1px}.field input.code{letter-spacing:6px;font-variant-numeric:tabular-nums;text-align:center;font-size:24px}button.primary{background:var(--accent);color:var(--accent-ink);cursor:pointer;border:0;border-radius:10px;padding:11px 16px;font-weight:600}button.primary:disabled{opacity:.5;cursor:default}button.link{color:var(--accent);cursor:pointer;background:0 0;border:0;align-self:flex-start;padding:4px 0;font-size:13px}button.link.danger{color:var(--critical)}button.link:disabled{opacity:.5}.user-menu{position:relative}.user-menu>.theme-toggle{text-overflow:ellipsis;white-space:nowrap;max-width:120px;overflow:hidden}.menu{background:var(--surface);border:1px solid var(--border);z-index:20;border-radius:12px;flex-direction:column;min-width:200px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 8px 24px #00000026}.menu-head{color:var(--muted);border-bottom:1px solid var(--border);overflow-wrap:anywhere;margin-bottom:4px;padding:6px 10px 8px;font-size:12px}.menu button{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;padding:8px 10px}.menu button:hover{background:var(--surface-2)}.admin-form{flex-direction:column;gap:10px;display:flex}.check{color:var(--ink-2);align-items:center;gap:8px;font-size:13px;display:flex}.badge{background:var(--surface-2);color:var(--ink-2);border-radius:999px;margin-left:6px;padding:1px 8px;font-size:11px;font-weight:600}.badge.admin{background:var(--accent);color:var(--accent-ink)}.admin-mail{color:var(--ink);overflow-wrap:anywhere}.sessions{flex-direction:column;gap:8px;margin:10px 0 4px;padding:0;list-style:none;display:flex}.sessions li{background:var(--surface-2);border-radius:10px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;font-size:13px;display:flex}.sessions .muted{font-size:12px}.stepper button:disabled,.thermo .seg.valve button:disabled{opacity:.45;cursor:default}.install-hint{z-index:50;padding:16px 16px calc(16px + env(safe-area-inset-bottom));background:#0006;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.install-hint>div{background:var(--surface);color:var(--ink);border-radius:var(--radius);width:100%;max-width:420px;padding:18px;box-shadow:0 8px 24px #00000040}.install-hint p{margin:8px 0}.install-hint .hint{color:var(--ink-2);font-size:13px}
