.ambient-reading{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #3d5b60;background:#132c334d;border-radius:15px;padding:14px 16px;margin-top:22px}.ambient-label{font-size:13px;font-weight:600;color:#d0e7e2}.ambient-description{font-size:10px;color:#95b2ba;margin:5px 0 0;line-height:1.45}.ambient-result{text-align:right;flex-shrink:0}.ambient-result strong{display:block;font-size:21px;color:#c7f1df;font-weight:500;letter-spacing:-.5px}.ambient-result span{display:block;font-size:9px;color:#99b5bc;margin-top:5px;max-width:170px;line-height:1.5}.ambient-stale .ambient-result strong{color:#a1b4b7}.ambient-stale .ambient-result span{color:#d9c494}.remote-view .ambient-reading{padding:13px;margin-top:20px}.remote-view .ambient-result strong{font-size:20px}@media(max-width:370px){.ambient-reading{gap:8px;padding:12px}.ambient-result strong{font-size:18px}.ambient-description{max-width:120px}.ambient-result span{max-width:135px}}.automation-overlay .automation-routines{display:flex;flex-direction:column;padding:0;overflow:hidden;width:min(850px,100%);max-height:calc(100dvh - 40px);color:var(--theme-text,#eef4f6)}.routine-screen-header{display:flex;align-items:center;gap:15px;flex-shrink:0;padding:22px 26px 18px;border-bottom:1px solid var(--theme-border,#334853);background:var(--theme-surface,#20343e)}.routine-screen-header .eyebrow{margin:0;color:var(--theme-muted,#9ab0bd);font-size:9px}.routine-screen-header h2{margin:5px 0 0}.routine-back{order:2;margin-left:auto;flex-shrink:0}.routine-scroll{overflow:auto;overscroll-behavior:contain;padding:0 26px 26px;scroll-padding-bottom:35px;-webkit-overflow-scrolling:touch}.automation-routines .routine-summary{display:block;border-color:var(--theme-border,#334853)}.routine-summary-main{width:100%;min-width:0}.routine-summary-title{display:flex;justify-content:space-between;gap:10px;align-items:center}.routine-summary-title>strong{overflow-wrap:anywhere}.routine-summary-title>span{font-size:10px;margin:0;color:var(--theme-accent,#b7edda)}.routine-summary .automation-actions{margin-top:14px;gap:9px}.routine-timeline{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:9px}.routine-timeline li{display:grid;grid-template-columns:52px minmax(0,1fr);gap:4px 12px;align-items:start;font-size:12px}.routine-timeline li>strong{color:var(--theme-accent,#b7edda);font-variant-numeric:tabular-nums}.routine-timeline li>span{margin:0;color:var(--theme-text,#eef4f6)}.routine-timeline li>small{grid-column:2;font-size:10px;color:var(--theme-muted,#9ab0bd)}.automation-routines .routine-name{width:100%;box-sizing:border-box;margin-top:8px;min-height:48px;border:1px solid var(--theme-border-strong,#4a626a);background:var(--theme-surface-2,#1a2a35);color:var(--theme-text,#eef4f6);border-radius:11px;padding:12px;font:inherit}.routine-days{margin-top:20px!important}.routine-enabled{display:flex;align-items:center;gap:10px;margin:20px 0;font-size:13px}.routine-enabled input{accent-color:var(--theme-accent,#b7edda);width:18px;height:18px}.routine-entries{display:grid;gap:15px}.automation-routines fieldset.routine-entry{margin:0;border:1px solid var(--theme-border,#334853);border-radius:14px;padding:12px 16px 17px;min-width:0}.automation-routines .routine-entry legend{padding:0 7px;font-size:12px;color:var(--theme-accent,#b7edda)}.routine-entry-header{display:flex;justify-content:space-between;align-items:center;gap:10px;color:var(--theme-muted,#9ab0bd);font-size:10px}.routine-entry-header button{font-size:11px;padding:8px 10px}.routine-entry .form-grid{grid-template-columns:.8fr 1.3fr 1fr}.routine-entry .form-grid label{min-width:0;margin-top:8px;font-size:12px}.routine-entry input,.routine-entry select{box-sizing:border-box;min-height:48px;margin-top:7px;min-width:0;width:100%}.automation-routines .add-routine-time{margin-top:16px;width:100%;min-height:48px;border-style:dashed;border-color:var(--theme-border-strong,#4a626a);color:var(--theme-accent,#b7edda);background:var(--theme-surface-soft,#253d47)}.automation-routines .form-buttons{padding:12px 0 0;flex-wrap:wrap}.automation-routines .primary{background:var(--theme-accent,#b7edda);color:var(--theme-accent-ink,#173831);min-height:48px}.automation-routines .day-picker input:focus-visible+span{outline:2px solid var(--theme-accent,#b7edda);outline-offset:3px}.automation-routines .day-picker input:checked+span{background:var(--theme-accent,#b7edda);color:var(--theme-accent-ink,#173831);border-color:var(--theme-accent,#b7edda)}@media(max-width:700px){.automation-overlay.routine-mobile{padding:0;display:block;overflow:hidden;z-index:30;background:var(--theme-bg,#101d28)}.automation-overlay.routine-mobile .automation-routines{position:absolute;inset:0;width:100%;height:100dvh;max-height:none;border:0;border-radius:0;margin:0;box-shadow:none;background:var(--theme-bg,#101d28)}.routine-mobile .routine-screen-header{padding:calc(14px + env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) 15px max(18px,env(safe-area-inset-left));gap:14px}.routine-mobile .routine-back{order:0;margin:0;font-size:13px;padding:10px 0;min-height:44px}.routine-mobile .routine-screen-header h2{font-size:22px}.routine-mobile .routine-scroll{flex:1;padding:0 max(16px,env(safe-area-inset-right)) calc(28px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));min-height:0}.routine-mobile .routine-entry .form-grid{grid-template-columns:1fr 1fr;gap:5px 12px}.routine-mobile .routine-entry .form-grid label:first-child{grid-column:1/-1}.routine-mobile .routine-entry .form-grid label:first-child input{max-width:100%}.routine-mobile .form-buttons{align-items:stretch;flex-direction:column;gap:12px}.routine-mobile .form-buttons button{width:100%}.routine-mobile .routine-entry-header span{max-width:190px;line-height:1.5}.routine-mobile input,.routine-mobile select{font-size:16px!important}.routine-mobile .routine-summary-title{align-items:flex-start}.routine-mobile .automation-actions button{min-height:42px;flex:1}.routine-mobile .routine-timeline{gap:12px}}@media(max-width:370px){.routine-mobile .routine-entry .form-grid{grid-template-columns:1fr}.routine-mobile .routine-entry-header span{max-width:145px}}.consumption-modal{width:min(1040px,calc(100% - 28px));max-height:calc(100dvh - 28px);margin:auto;padding:30px;color:#eef4f6}.consumption-modal::backdrop{background:#071016df}.consumption-modal h2{font-size:28px}.consumption-modal h3{font-size:17px;font-weight:500}.consumption-modal .modal-heading .muted{margin:8px 0}.consumption-period{display:flex;align-items:flex-end;gap:15px;flex-wrap:wrap}.consumption-period label{min-width:155px;flex:1}.consumption-period select{margin-top:8px}.consumption-modal input{font:inherit;width:100%;background:#142530;border:1px solid #435962;color:#edf5f5;border-radius:11px;padding:13px;margin-top:8px}.consumption-source{font-size:12px;color:#acd6cc;margin:25px 0 15px}.consumption-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.consumption-metrics article{padding:20px 16px;background:#11242d;border:1px solid #38535a;border-radius:16px;display:flex;flex-direction:column;gap:13px}.consumption-metrics span,.consumption-metrics small{font-size:11px;color:#a3b8c3;line-height:1.5}.consumption-metrics strong{font-size:24px;font-weight:500;color:#c4efdf;overflow-wrap:anywhere}.consumption-metrics small{margin-top:auto}.consumption-coverage{margin:20px 0;font-size:12px;color:#9ab0bd;line-height:1.6}.consumption-coverage p{margin:5px 0}.consumption-table{overflow:auto;max-height:350px;border:1px solid #3c5059;border-radius:14px}.consumption-table table{width:100%;border-collapse:collapse;font-size:12px;white-space:nowrap}.consumption-table th,.consumption-table td{padding:13px;text-align:left;border-bottom:1px solid #334952}.consumption-table thead th{position:sticky;top:0;background:#152b35;color:#b9d9d0;font-weight:500}.consumption-table tbody th{font-weight:400;color:#c9d9dc}.consumption-reference{margin-top:25px;border-top:1px solid #3c5059;padding-top:20px}.consumption-reference summary{cursor:pointer;color:#c1d9d2;font-size:14px}.consumption-reference-fields{display:grid;grid-template-columns:1fr 1fr;gap:18px}.consumption-reference .primary{width:auto;margin:12px 0 20px}.consumption-modal>.hint{font-size:11px;margin-top:15px;line-height:1.7}@media(max-width:700px){.consumption-modal{padding:22px;width:calc(100% - 16px);max-height:calc(100dvh - 16px);border-radius:22px}.consumption-metrics{grid-template-columns:1fr 1fr}.consumption-metrics strong{font-size:22px}.consumption-reference-fields{grid-template-columns:1fr}.consumption-period{gap:10px}.consumption-period label{min-width:120px}.consumption-period .quiet{padding-left:0}.consumption-table th,.consumption-table td{padding:12px 10px}}@media(max-width:350px){.consumption-metrics{grid-template-columns:1fr}}.consumption-timeline{margin:25px 0 24px;padding:22px;background:#10252f;border:1px solid #3e5b64;border-radius:19px}.timeline-heading{display:flex;justify-content:space-between;align-items:center;gap:14px}.timeline-heading h3{font-size:23px;margin:6px 0 18px;color:#e0f5ed}.timeline-heading .eyebrow{font-size:9px;margin:0}.timeline-heading>span{font-size:11px;color:#aac3c7;white-space:nowrap}.timeline-legend{display:flex;flex-wrap:wrap;gap:18px;font-size:12px;color:#b5c9cf}.timeline-legend span{display:flex;align-items:center;gap:7px}.timeline-legend i{display:block;width:19px;height:12px;border-radius:3px}.legend-on{background:#b7edda}.legend-off{background:#567c91}.legend-unknown{background:repeating-linear-gradient(135deg,#172934 0 4px,#6c7a88 4px 5px,#172934 5px 8px);border:1px solid #6c7a88}.timeline-graphic{display:block;width:100%;height:154px;overflow:visible;touch-action:pan-y;cursor:crosshair}.timeline-segment{cursor:pointer}.timeline-segment:focus,.timeline-segment.selected{outline:none;stroke:#f4fff8;stroke-width:2;vector-effect:non-scaling-stroke}.timeline-details{background:#1a323d;border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:6px;min-height:98px;font-size:13px;color:#b6cdd2}.timeline-details strong{font-size:16px;color:#d2f2e4;font-weight:500}.timeline-details small{font-size:11px;line-height:1.6;color:#9eb7c2}.timeline-picker{font-size:11px;margin-top:18px}.timeline-picker select{margin-top:8px;font-size:12px}.consumption-timeline>.hint{font-size:11px;line-height:1.6;margin-bottom:0}@media(max-width:700px){.consumption-timeline{padding:16px 10px;margin-top:20px}.timeline-heading{align-items:flex-start;padding:0 5px;flex-direction:column;gap:0}.timeline-heading h3{font-size:20px;margin-bottom:9px}.timeline-heading>span{margin-bottom:18px}.timeline-legend{font-size:10px;gap:12px;padding:0 5px}.timeline-details{padding:13px 12px}.timeline-picker select{font-size:11px;padding-left:10px}.consumption-timeline>.hint{padding:0 5px}}.state-chart,.usage-bars-chart{display:block;width:100%;height:222px;overflow:visible;touch-action:pan-y}.chart-grid{stroke:var(--consumption-grid,#38505b);stroke-width:1}.chart-grid.vertical{stroke-dasharray:2 6;opacity:.45}.chart-axis{font-size:12px;fill:var(--consumption-axis,#b4c8d0)}.chart-now{fill:var(--consumption-axis,#c7e7df)}.chart-gap{font-size:11px;fill:var(--consumption-muted,#839aa8)}.state-line{stroke:var(--consumption-line,#b7edda);stroke-width:3.5;stroke-linecap:round;cursor:pointer;pointer-events:stroke}.state-change{stroke:var(--consumption-transition,#e7c885);stroke-width:2.5;stroke-dasharray:4 3;cursor:pointer;pointer-events:stroke}.state-line:focus,.state-line.selected,.state-change:focus,.state-change.selected{outline:none;stroke-width:5}.state-chart-legend{display:flex;flex-wrap:wrap;gap:12px 20px;font-size:11px;color:var(--consumption-axis,#b4c8d0)}.state-chart-legend span{display:flex;align-items:center;gap:7px}.state-chart-legend i{display:block;width:22px;height:0}.state-solid{border-top:3px solid var(--consumption-line,#b7edda)}.state-dashed{border-top:2px dashed var(--consumption-transition,#e7c885)}.usage-bar{fill:var(--consumption-line,#b7edda)}.usage-bar.selected{stroke:var(--consumption-axis,#e2f9ed);stroke-width:2}.usage-bars-chart [role=button]{cursor:pointer}.usage-bars-chart [role=button]:focus{outline:none}.usage-bars-chart [role=button]:focus .usage-bar{stroke:var(--consumption-axis,#e2f9ed);stroke-width:2}.bar-missing{fill:var(--consumption-muted,#839aa8);font-size:15px}.bar-date{font-size:11px}.usage-bars-chart{height:214px}@media(max-width:700px){.state-chart-legend{font-size:10px;gap:9px}.timeline-heading h3{line-height:1.3}.chart-axis{font-size:11px}.bar-date{font-size:10px}}.consumption-modal.consumption-dashboard{--consumption-line:var(--theme-accent,#b7edda);--consumption-axis:var(--theme-text,#eef4f6);--consumption-muted:var(--theme-muted,#9ab0bd);--consumption-grid:var(--theme-border,#334853);--consumption-transition:var(--theme-accent-muted,#8fb8ad);--consumption-panel:color-mix(in srgb,var(--theme-bg,#101d28) 82%,black);--consumption-card:color-mix(in srgb,var(--theme-surface,#20343e) 65%,var(--consumption-panel));--consumption-border:color-mix(in srgb,var(--theme-border,#334853) 75%,transparent);border-radius:24px;padding:28px 32px;box-shadow:0 32px 120px #0009;font-variant-numeric:tabular-nums;color:var(--theme-text,#eef4f6)}.app-theme .consumption-modal.consumption-dashboard,.consumption-modal.consumption-dashboard{background:var(--consumption-panel);border-color:var(--consumption-border)}.consumption-dashboard .modal-heading{padding-bottom:20px;border-bottom:1px solid var(--consumption-border);align-items:center}.consumption-dashboard h2{font-size:36px;letter-spacing:-1.5px;font-weight:600;margin-top:7px}.consumption-dashboard .modal-heading .eyebrow{font-size:9px;color:var(--consumption-muted)}.consumption-dashboard .modal-heading .muted{font-size:12px;margin-bottom:0}.consumption-dashboard .modal-heading .quiet{border:1px solid var(--consumption-border);width:40px;height:40px;padding:0;border-radius:50%;color:var(--consumption-axis)}.consumption-dashboard .consumption-back{display:none}.consumption-dashboard .consumption-period{padding-top:8px}.consumption-dashboard .consumption-period label{font-size:10px;text-transform:uppercase;letter-spacing:1.1px;max-width:270px;color:var(--consumption-muted)}.consumption-dashboard select,.consumption-dashboard input{background:var(--consumption-card);color:var(--consumption-axis);border-color:var(--consumption-border);border-radius:10px}.consumption-dashboard .consumption-period select{text-transform:none;letter-spacing:0;font-size:13px;padding:12px}.consumption-dashboard .consumption-period>.quiet{margin-left:auto;font-size:11px;padding:12px;color:var(--consumption-muted)}.consumption-dashboard .consumption-timeline{background:linear-gradient(145deg,color-mix(in srgb,var(--theme-surface,#20343e) 22%,var(--consumption-panel)),var(--consumption-panel));border-color:var(--consumption-border);padding:24px 26px;border-radius:17px;box-shadow:inset 0 1px color-mix(in srgb,var(--consumption-axis) 3%,transparent);margin-top:20px}.consumption-dashboard .timeline-heading{align-items:flex-start;flex-direction:row;margin-bottom:22px}.consumption-dashboard .timeline-heading h3{font-size:23px;font-weight:550;letter-spacing:-.7px;margin:9px 0 7px;color:var(--consumption-axis)}.consumption-dashboard .timeline-heading .eyebrow{font-size:8px;letter-spacing:1.7px;color:var(--consumption-muted)}.chart-period-label{font-size:11px;color:var(--consumption-muted)}.chart-reading{text-align:right;display:flex;flex-direction:column;gap:5px;min-width:95px}.chart-reading strong{font-size:35px;font-weight:550;letter-spacing:-1.3px;color:var(--consumption-axis);line-height:1}.chart-reading strong small{font-size:15px;font-weight:400;margin-left:5px;color:var(--consumption-muted)}.chart-reading>span{font-size:9px;color:var(--consumption-muted);letter-spacing:.2px}.consumption-dashboard .state-chart,.consumption-dashboard .usage-bars-chart{margin:12px 0 8px}.consumption-dashboard .state-line{filter:drop-shadow(0 0 4px color-mix(in srgb,var(--consumption-line) 30%,transparent))}.consumption-dashboard .chart-grid{opacity:.4}.consumption-dashboard .chart-grid.vertical{opacity:.18}.consumption-dashboard .state-chart-legend{font-size:10px;color:var(--consumption-muted)}.consumption-dashboard .timeline-details{background:var(--consumption-card);border:1px solid var(--consumption-border);border-radius:10px;min-height:88px;padding:13px 16px;color:var(--consumption-axis)}.consumption-dashboard .timeline-details strong{color:var(--consumption-axis);font-size:14px}.consumption-dashboard .timeline-details small,.consumption-dashboard .timeline-picker{color:var(--consumption-muted)}.consumption-dashboard .timeline-picker{font-size:10px;margin-top:15px}.consumption-dashboard .timeline-picker select{padding:11px;font-size:11px}.consumption-dashboard .consumption-metrics{gap:12px}.consumption-dashboard .consumption-metrics article{background:var(--consumption-card);border-color:var(--consumption-border);border-radius:13px;padding:21px 18px;min-height:151px;position:relative;overflow:hidden}.consumption-dashboard .consumption-metrics article:before{content:"";position:absolute;top:0;left:18px;right:18px;height:1px;background:linear-gradient(90deg,var(--consumption-line),transparent);opacity:.55}.consumption-dashboard .consumption-metrics strong{font-size:30px;font-weight:550;letter-spacing:-1.2px;color:var(--consumption-axis)}.consumption-dashboard .consumption-metrics span{font-size:10px;letter-spacing:.3px;color:var(--consumption-muted)}.consumption-dashboard .consumption-metrics small,.consumption-dashboard .consumption-source{color:var(--consumption-muted);font-size:10px}.consumption-dashboard .consumption-coverage{font-size:11px;color:var(--consumption-muted);padding:16px 0}.consumption-dashboard .consumption-days h3{color:var(--consumption-axis);font-size:17px}.consumption-dashboard .consumption-table{border-color:var(--consumption-border);border-radius:11px}.consumption-dashboard .consumption-table th,.consumption-dashboard .consumption-table td{border-color:var(--consumption-border);color:var(--consumption-axis)}.consumption-dashboard .consumption-table thead th{background:var(--consumption-card);font-size:10px;text-transform:uppercase;letter-spacing:.4px;color:var(--consumption-muted)}.consumption-dashboard .consumption-reference{border-color:var(--consumption-border)}.consumption-dashboard .consumption-reference summary{color:var(--consumption-axis);font-size:12px}.consumption-dashboard .hint{color:var(--consumption-muted)}.consumption-dashboard .usage-bar{fill:color-mix(in srgb,var(--consumption-line) 72%,var(--consumption-axis))}.consumption-dashboard .usage-bar.selected{fill:var(--consumption-line)}@media(max-width:700px){.consumption-modal.consumption-dashboard{position:fixed;inset:0;width:100%;max-width:100%;height:100%;height:100dvh;max-height:100%;max-height:100dvh;margin:0;border:0;border-radius:0;padding:0 18px max(24px,env(safe-area-inset-bottom));box-sizing:border-box;overscroll-behavior:contain;overflow-y:auto;overflow-x:hidden}.consumption-dashboard h2{font-size:28px;margin:0}.consumption-dashboard .modal-heading{position:sticky;top:0;z-index:3;display:flex;justify-content:flex-start;gap:14px;margin:0 -18px;padding:max(18px,env(safe-area-inset-top)) 18px 16px;background:var(--consumption-panel);border-bottom:1px solid var(--consumption-border)}.consumption-dashboard .modal-heading .eyebrow{display:none}.consumption-dashboard .modal-heading .muted{font-size:10px;margin-top:4px}.consumption-dashboard .consumption-back{display:block;flex:0 0 40px;font-size:23px}.consumption-dashboard .consumption-close{display:none}.consumption-dashboard .consumption-timeline{padding:20px 12px;border-radius:14px}.consumption-dashboard .timeline-heading{padding:0 3px;gap:8px;margin-bottom:18px}.consumption-dashboard .timeline-heading h3{font-size:19px}.consumption-dashboard .timeline-heading .eyebrow{font-size:7px;letter-spacing:1px}.chart-reading{min-width:78px}.chart-reading strong{font-size:29px}.chart-reading>span{font-size:8px;max-width:90px;line-height:1.4}.consumption-dashboard .consumption-metrics article{padding:18px 13px;min-height:140px}.consumption-dashboard .consumption-metrics strong{font-size:24px}.consumption-dashboard .state-chart-legend{font-size:9px;gap:8px 12px}.consumption-dashboard .timeline-details{padding:12px;font-size:11px}.consumption-dashboard .consumption-period label{min-width:140px}.consumption-dashboard .consumption-period>.quiet{padding-right:0}.consumption-dashboard .consumption-source{font-size:9px}.consumption-dashboard .consumption-reference-fields label{line-height:1.6}}:root{color-scheme:dark;font-family:Segoe UI,system-ui,sans-serif;color:#eef4f6;background:#101d28;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 80% 20%,#17333c 0,transparent 45%);min-height:100vh}main{max-width:1100px;margin:auto;padding:36px 32px 20px}header,.brand,.card-top,.heading,.bottom-row{display:flex;align-items:center;justify-content:space-between}header{margin-bottom:60px}.brand{gap:10px;text-decoration:none;color:#f1f7f8;font-size:27px;font-weight:650;letter-spacing:-1px}.brand-icon{color:#a9e0cf;font-size:42px;line-height:1}.local{margin-left:16px;letter-spacing:2px;font-size:9px;color:#86a0ae;border-left:1px solid #3d515c;padding-left:20px}h1{font-size:44px;letter-spacing:-1.8px;font-weight:500;margin:8px 0 28px;line-height:1.1}h2{font-size:21px;font-weight:500;margin:8px 0 24px;letter-spacing:-.5px}.eyebrow{font-size:10px;letter-spacing:2px;color:#9db4c0}.muted,.hint{color:#9ab0bd}.hint{font-size:12px;line-height:1.6}.card{border:1px solid #334853;border-radius:26px;background:linear-gradient(135deg,#20343e,#1a2a35);padding:32px;box-shadow:0 20px 70px #0002}.login{max-width:470px;margin:0 auto 70px;padding:42px}.login h1{font-size:58px;margin:24px 0}.login .muted{line-height:1.7;margin-bottom:30px}label{display:block;font-size:13px;color:#bccbd2;margin:20px 0 10px}input[type=password],select{font:inherit;width:100%;background:#142530;border:1px solid #435962;color:#edf5f5;border-radius:11px;padding:14px}button{font:inherit;cursor:pointer;border:1px solid #4a626a;border-radius:12px;background:#253d47;color:#e2eeef;padding:12px 18px;transition:background .2s}button:hover:enabled{background:#36545c}button:disabled,select:disabled,input:disabled{opacity:.35;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #a5e7d4;outline-offset:4px}.primary{background:#b7edda;color:#173831;border:0;width:100%;margin-top:20px;display:flex;justify-content:space-between;font-weight:650}.primary:hover:enabled{background:#d1ffed}.quiet{border:0;background:transparent;color:#b5c8cf;font-size:13px}.badge{border:1px solid #45645f;color:#b7e9d7;border-radius:24px;padding:9px 14px;font-size:11px}.heading{margin-bottom:8px}.heading h1{margin-bottom:25px}.layout{display:grid;grid-template-columns:1.1fr 1fr;gap:22px}.climate{display:flex;flex-direction:column}.card-top h2{margin-bottom:0}.power{width:54px;height:54px;border-radius:50%;font-size:26px;padding:0}.power[aria-pressed=true]{background:#b7edda;color:#173831;border-color:#b7edda}.dial{width:290px;max-width:100%;aspect-ratio:1;margin:35px auto 24px;border:10px solid #3b535c;border-top-color:#b7edda;border-right-color:#b7edda;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-direction:column;box-shadow:0 0 40px #a4e5d008,inset 0 0 35px #a4e5d008}.dial-caption{font-size:9px;letter-spacing:1.3px;color:#9db4c0}.dial strong{font-size:86px;font-weight:350;letter-spacing:-5px;line-height:1.5}.degree{font-size:22px;vertical-align:top;display:inline-block;margin-top:25px;margin-left:8px;color:#b0c5cd}.dial .muted{font-size:12px}.temperature-actions{display:flex;justify-content:center;align-items:center;gap:25px;color:#97adb8;font-size:12px}.temperature-actions button{width:50px;height:50px;font-size:24px;border-radius:50%;padding:0}.line{margin:0 10px;opacity:.5}.climate>.hint{text-align:center;margin-top:28px}.settings h2{margin-bottom:28px}.toggles{margin-top:24px}.toggle{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #344b55;padding-top:16px;margin-top:16px;gap:18px}.toggle small{display:block;margin-top:5px;font-size:11px;color:#8da4b2}.toggle input{appearance:none;flex-shrink:0;width:37px;height:22px;background:#112430;border:1px solid #50656e;border-radius:30px;position:relative;cursor:pointer}.toggle input:before{content:"";position:absolute;width:14px;height:14px;border-radius:50%;background:#8ba4b0;left:3px;top:3px}.toggle input:checked{background:#b7edda;border-color:#b7edda}.toggle input:checked:before{left:18px;background:#234a40}.bottom-row{color:#8ba4b0;font-size:12px;margin-top:20px}.diagnostics{margin-top:32px;color:#95acb8;font-size:12px;line-height:1.6}.diagnostics summary{cursor:pointer}pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#0c1720;padding:16px;border-radius:12px}.notice{padding:16px 20px;border:1px solid #8a7850;background:#3b3425;border-radius:12px;color:#f1dfb8;font-size:13px;line-height:1.5}footer{border-top:1px solid #2e424e;margin-top:45px;padding-top:22px;font-size:20px;color:#8299a6;display:flex;justify-content:space-between;align-items:center}footer span{font-size:11px}[hidden]{display:none!important}@media(max-width:700px){main{padding:24px 18px}header{margin-bottom:40px}.local{font-size:8px;margin-left:8px;padding-left:12px}.layout{grid-template-columns:1fr}.card{padding:26px}.heading h1{font-size:34px}.badge{font-size:10px;padding:8px 10px}.login{padding:30px;margin-bottom:45px}.login h1{font-size:48px}.dial{width:260px}.bottom-row{align-items:flex-start;gap:12px;flex-direction:column}.bottom-row button{padding-left:0}footer span{max-width:185px;text-align:right;line-height:1.5}}.temperature-control{width:100%}.range-label{font-size:12px;color:#a7c7c7;text-align:center;margin:10px 0 3px}.temperature-range{display:block;width:100%;height:48px;margin:0;cursor:grab;accent-color:#b7edda;background:transparent;touch-action:pan-y}.temperature-range:active{cursor:grabbing}.temperature-range::-webkit-slider-runnable-track{height:8px;background:#3b535c;border-radius:20px}.temperature-range::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:30px;height:30px;border:3px solid #e0fff3;border-radius:50%;background:#b7edda;margin-top:-11px;box-shadow:0 0 0 5px #b7edda15}.temperature-range{appearance:none;-webkit-appearance:none}.temperature-range::-moz-range-track{height:8px;background:#3b535c;border-radius:20px}.temperature-range::-moz-range-thumb{width:24px;height:24px;border:3px solid #e0fff3;border-radius:50%;background:#b7edda}.range-scale{display:flex;justify-content:space-between;color:#98b6c0;font-size:11px}.selection-state{min-height:18px;text-align:center;font-size:12px;color:#b7dace;margin:8px 0 17px}.power{display:grid;place-items:center}.power-icon{display:block;width:28px;height:28px}.remote-view{max-width:460px;margin:auto}.remote-view .layout{grid-template-columns:1fr;gap:18px}.remote-view .heading h1{font-size:33px}.remote-view .heading{gap:10px}.remote-view .badge{font-size:10px;white-space:nowrap}.remote-view .climate{padding:26px}.remote-view .card-top{align-items:center}.remote-view .power{height:68px;width:68px;font-size:33px;border:2px solid #7d9e9b}.remote-view .power[aria-pressed=true]{border-color:#ddfff0;box-shadow:0 0 0 6px #b7edda12}.remote-view .dial{width:245px;margin:26px auto 18px}.remote-view .temperature-actions button{width:48px;height:48px}.remote-view .settings{padding:25px}.remote-view .settings h2{font-size:20px}.remote-view .bottom-row{align-items:flex-start;gap:10px;flex-direction:column}.remote-view .bottom-row button{padding-left:0}.remote-view .diagnostics{margin-top:22px}.header-actions{display:flex;gap:8px;align-items:center}.badge.offline{color:#e7c885;border-color:#846d42}.read-status{min-height:20px;text-align:center;font-size:11px;color:#a8c7c4;margin-top:auto;padding-top:12px}.dial.stale{opacity:.55;border-top-color:#536972;border-right-color:#536972}.device-selector{max-width:400px;margin-bottom:24px}.notice{overflow-wrap:anywhere}button,input,select{-webkit-tap-highlight-color:transparent}button{touch-action:manipulation}.toggle{min-height:45px}.device-selector select{margin-top:8px}.toggle small:empty{display:none}.quiet:disabled{cursor:wait}@media(max-width:450px){header{align-items:flex-start}.local{display:none}.heading{gap:10px}.heading h1{font-size:31px}.badge{white-space:nowrap}.card{padding:23px}.header-actions{flex-direction:column;align-items:flex-end}.dial{max-width:100%;width:245px}.temperature-actions{gap:18px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}.modal-backdrop{position:fixed;inset:0;z-index:20;background:#071016d9;display:grid;place-items:center;padding:20px;overflow:auto}.automation-modal{width:min(760px,100%);max-height:calc(100vh - 40px);overflow:auto}.modal-heading{display:flex;justify-content:space-between;align-items:flex-start}.modal-heading h2{margin:5px 0}.automation-list{display:grid;gap:10px;margin:24px 0}.automation-item{display:flex;justify-content:space-between;gap:16px;border:1px solid #3c555d;border-radius:14px;padding:15px}.automation-item.paused{opacity:.6}.automation-item span,.automation-item small{display:block;color:#a8bdc5;margin-top:5px}.automation-item small{color:#e7c885}.automation-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.automation-actions button{padding:8px 10px;font-size:12px}.automation-form{border-top:1px solid #3c5059;margin-top:22px;padding-top:8px}.automation-form h3{font-size:17px;font-weight:500}.form-grid{display:grid;grid-template-columns:1.3fr 1fr .8fr;gap:12px}.automation-form input[type=time],.automation-form input[type=number]{font:inherit;width:100%;background:#142530;border:1px solid #435962;color:#edf5f5;border-radius:11px;padding:14px}.automation-form fieldset{border:0;padding:0;margin:18px 0}.automation-form legend{font-size:13px;color:#bccbd2;margin-bottom:10px}.day-picker{display:flex;gap:7px;flex-wrap:wrap}.day-picker label{margin:0}.day-picker input{position:absolute;opacity:0}.day-picker span{display:block;border:1px solid #4a626a;border-radius:10px;padding:9px 11px;cursor:pointer}.day-picker input:checked+span{background:#b7edda;color:#173831;border-color:#b7edda}.form-buttons{display:flex;gap:10px;align-items:center}.form-buttons .primary{width:auto;min-width:190px;margin:0}@media(max-width:700px){.automation-modal{padding:22px}.automation-item{flex-direction:column}.form-grid{grid-template-columns:1fr}.header-actions{flex-wrap:wrap;justify-content:flex-end}.modal-backdrop{padding:8px}.automation-modal{max-height:calc(100vh - 16px)}}.app-theme{--theme-bg:#101d28;--theme-glow:#17333c;--theme-surface:#20343e;--theme-surface-2:#1a2a35;--theme-surface-soft:#253d47;--theme-border:#334853;--theme-border-strong:#4a626a;--theme-text:#eef4f6;--theme-muted:#9ab0bd;--theme-accent:#b7edda;--theme-accent-muted:#8fb8ad;--theme-accent-ink:#173831;--theme-track:#2b454e;--theme-nav:#20363eef;--theme-sheet:#20343e;position:relative;isolation:isolate;color:var(--theme-text)}.app-theme.climate-theme-off{--theme-bg:#111a21;--theme-glow:#202e35;--theme-surface:#202d34;--theme-surface-2:#19242b;--theme-surface-soft:#26363d;--theme-border:#3b4b52;--theme-border-strong:#56666c;--theme-text:#edf2f3;--theme-muted:#9faeb2;--theme-accent:#a7b6b9;--theme-accent-muted:#7f9195;--theme-accent-ink:#1c2a2f;--theme-track:#34454b;--theme-nav:#202d33ef;--theme-sheet:#202d34}.app-theme.climate-theme-cold{--theme-bg:#0b1b28;--theme-glow:#123a52;--theme-surface:#17364a;--theme-surface-2:#112a3a;--theme-surface-soft:#1c455d;--theme-border:#315f78;--theme-border-strong:#4e8199;--theme-text:#eff9ff;--theme-muted:#9dbdce;--theme-accent:#8ed4ee;--theme-accent-muted:#67a9c2;--theme-accent-ink:#0b3446;--theme-track:#234d62;--theme-nav:#15394def;--theme-sheet:#17384b}.app-theme.climate-theme-hot{--theme-bg:#241611;--theme-glow:#543020;--theme-surface:#422b22;--theme-surface-2:#342119;--theme-surface-soft:#573625;--theme-border:#744b39;--theme-border-strong:#96654c;--theme-text:#fff7f1;--theme-muted:#c9aa99;--theme-accent:#efae80;--theme-accent-muted:#c98058;--theme-accent-ink:#4a2618;--theme-track:#69402e;--theme-nav:#402920ef;--theme-sheet:#422b22}.app-theme.climate-theme-pending,.app-theme.climate-theme-stale{--theme-bg:#151c22;--theme-glow:#2d3030;--theme-surface:#292f31;--theme-surface-2:#202629;--theme-surface-soft:#303a3c;--theme-border:#4d5758;--theme-border-strong:#6b7471;--theme-text:#f0f2ef;--theme-muted:#adafa6;--theme-accent:#c5bea0;--theme-accent-muted:#969076;--theme-accent-ink:#302d22;--theme-track:#474b47;--theme-nav:#292e2def;--theme-sheet:#292f31}.app-theme:before{content:"";position:fixed;inset:0;z-index:-1;background:radial-gradient(ellipse at 80% 20%,var(--theme-glow) 0,var(--theme-bg) 46%)}.app-theme .brand,.app-theme h1,.app-theme h2{color:var(--theme-text)}.app-theme .local,.app-theme .muted,.app-theme .hint,.app-theme .bottom-row,.app-theme .diagnostics{color:var(--theme-muted)}.app-theme .card{border-color:var(--theme-border);background:linear-gradient(135deg,var(--theme-surface),var(--theme-surface-2))}.app-theme button{border-color:var(--theme-border-strong);background:var(--theme-surface-soft);color:var(--theme-text)}.app-theme .quiet{background:transparent;color:var(--theme-muted)}.app-theme .badge{color:var(--theme-accent);border-color:var(--theme-border-strong)}.app-theme input[type=password],.app-theme select,.app-theme .automation-form input[type=time],.app-theme .automation-form input[type=number]{background:var(--theme-surface-2);border-color:var(--theme-border-strong);color:var(--theme-text)}.app-theme .toggle,.app-theme .automation-form{border-color:var(--theme-border)}.app-theme .toggle input{background:var(--theme-bg);border-color:var(--theme-border-strong)}.app-theme .toggle input:checked{background:var(--theme-accent);border-color:var(--theme-accent)}.app-theme .toggle input:checked:before{background:var(--theme-accent-ink)}.app-theme .power[aria-pressed=true]{background:var(--theme-accent);color:var(--theme-accent-ink);border-color:var(--theme-accent);box-shadow:0 0 0 5px color-mix(in srgb,var(--theme-accent) 10%,transparent)}.app-theme .dial{border-color:var(--theme-track);border-top-color:var(--theme-accent);border-right-color:var(--theme-accent);background:radial-gradient(circle,var(--theme-glow) 0,transparent 66%)}.app-theme .ring-track{stroke:var(--theme-track)}.app-theme .ring-progress{stroke:var(--theme-accent)}.app-theme .ring-tick.passed{stroke:var(--theme-accent-muted)}.app-theme .ring-handle{fill:var(--theme-accent);stroke:var(--theme-bg)}.app-theme .temperature-actions button{background:var(--theme-surface-soft);border-color:var(--theme-border-strong)}.app-theme .control-nav{background:var(--theme-nav);border-color:var(--theme-border)}.app-theme .control-nav button{background:transparent;color:var(--theme-muted)}.app-theme .control-nav button:hover:enabled,.app-theme .control-nav button[aria-expanded=true]{background:var(--theme-surface-soft);color:var(--theme-text)}.app-theme .control-sheet{background:var(--theme-sheet);border-color:var(--theme-border-strong);color:var(--theme-text)}.climate-state{display:inline-flex;align-items:center;gap:6px;margin-top:7px;color:var(--theme-accent);font-size:10px;line-height:1.2}.climate-state:before{content:"";width:6px;height:6px;flex:0 0 6px;border-radius:50%;background:var(--theme-accent)}.app-theme .card,.app-theme button,.app-theme input,.app-theme select,.app-theme .dial,.app-theme .control-nav,.app-theme .control-sheet,.app-theme .ring-progress,.app-theme .ring-handle,.app-theme .climate-state,.app-theme .climate-state:before{transition:background-color .4s ease,border-color .4s ease,color .4s ease,stroke .4s ease,fill .4s ease,box-shadow .4s ease}.app-theme .power[aria-pressed=true]{box-shadow:0 0 18px var(--theme-glow)}.remote-shell{max-width:1100px;min-height:100svh;padding-top:22px;padding-bottom:16px}.remote-shell>header{margin-bottom:18px}.remote-shell .brand{font-size:24px}.remote-shell .brand-icon{font-size:32px}.remote-shell .local{font-size:8px}.remote-shell>footer{display:none}.remote-view{max-width:440px;min-height:calc(100svh - 100px);display:flex;flex-direction:column}.remote-view>.heading{display:none}.remote-view .layout{display:block;flex:1}.remote-view .climate{background:none;border:0;box-shadow:none;padding:12px 14px 0;border-radius:0}.remote-view .card-top{align-items:center;gap:20px}.remote-view .card-top .eyebrow{display:none}.remote-view .card-top h2{font-size:25px;margin:0 0 5px;font-weight:500;letter-spacing:-.6px}.remote-view .power{width:56px;height:56px;flex-shrink:0;background:#243d45;border:1px solid #607c7d;color:#e2eeef;box-shadow:none}.remote-view .power:disabled{opacity:.68}.remote-view .power .power-icon{width:29px;height:29px}.remote-view .power[aria-pressed=true]{color:#183b31;background:#b7edda;border-color:#d6ffed;box-shadow:0 0 22px #b7edda14}.remote-connection{font-size:10px;color:#93b8b5}.remote-view .ambient-reading{background:none;border:0;border-radius:0;padding:12px 0 6px;margin:0;justify-content:flex-start;gap:10px}.remote-view .ambient-label{font-size:11px;font-weight:400;color:#a0bebf}.remote-view .ambient-description{display:none}.remote-view .ambient-result{text-align:left}.remote-view .ambient-result strong{font-size:15px;letter-spacing:0}.remote-view .ambient-result span{font-size:9px;margin-top:3px;max-width:none}.remote-view .temperature-control{margin:auto 0}.remote-view .dial{position:relative;border:0;box-shadow:none;background:radial-gradient(circle,#294b4d33 0,transparent 66%);width:min(100%,clamp(235px,42svh,330px));aspect-ratio:1;margin:20px auto 7px;touch-action:none;-webkit-user-select:none;user-select:none}.remote-view .dial>*:not(svg){z-index:1;pointer-events:none}.remote-view .dial strong{font-size:clamp(70px,11svh,96px);letter-spacing:-5px;line-height:1.6;font-weight:300}.remote-view .dial-caption{font-size:8px;letter-spacing:1.8px;color:#8fadaa}.remote-view .dial .degree{font-size:20px;margin-top:28px}.remote-view .dial .muted{font-size:12px}.dial-ring{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.ring-track,.ring-progress{fill:none;stroke-width:5;stroke-linecap:round}.ring-track{stroke:#2b454e}.ring-progress{stroke:#b7edda}.ring-tick{stroke:#34535a;stroke-width:1.5;stroke-linecap:round}.ring-tick.passed{stroke:#8fb8ad}.ring-handle{fill:#c5f9df;stroke:#143039;stroke-width:4;filter:drop-shadow(0 0 5px #b7edda35)}.remote-view .dial.stale{opacity:.5}.remote-view .temperature-control:focus-within .dial{outline:2px solid #c5f9df;outline-offset:5px;border-radius:50%}.remote-view .temperature-range{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.remote-view .range-scale{display:none}.remote-view .range-label{font-size:11px;color:#8fadaf;margin:3px 0}.remote-view .selection-state{font-size:10px;margin:6px 0 12px;min-height:16px;color:#adcdbf}.remote-view .temperature-actions{gap:36px}.remote-view .temperature-actions button{width:43px;height:43px;background:#203943;border-color:#3d5961;font-size:24px}.remote-view .temperature-actions>span{font-size:10px;color:#78959e}.remote-view .climate>.hint{display:none}.remote-view .read-status{font-size:10px;min-height:28px;margin:8px 0 12px;padding-top:6px;color:#85a6a9}.remote-view>.bottom-row,.remote-view>.diagnostics{display:none}.control-nav{display:grid;grid-template-columns:repeat(4,1fr);position:sticky;bottom:max(10px,env(safe-area-inset-bottom));gap:3px;background:#20363eef;border:1px solid #3a535b;border-radius:22px;padding:9px 5px;box-shadow:0 12px 35px #0002;margin:12px 2px 0;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.control-nav button{border:0;background:none;padding:8px 2px 6px;min-width:0;display:flex;align-items:center;flex-direction:column;gap:6px;border-radius:14px;font-size:11px;color:#b5cec9}.control-nav button:hover:enabled,.control-nav button[aria-expanded=true]{background:#2d4b50;color:#d2f8e8}.control-nav small{font-size:9px;color:#7f9ba4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;line-height:1.2}.remote-shell>.notice{max-width:440px;margin:14px auto 0;font-size:11px;padding:12px 15px;line-height:1.5}.control-sheet{color:#edf5f2;background:#20343e;border:1px solid #466067;box-shadow:0 20px 100px #0005;border-radius:25px;padding:17px 25px 28px;width:min(430px,calc(100% - 24px));max-height:75svh;overflow:auto;position:fixed;inset:auto 0 18px;margin:0 auto}.control-sheet::backdrop{background:#07141cbd;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.sheet-grip{width:36px;height:4px;background:#63817f;border-radius:8px;margin:0 auto 22px}.sheet-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px}.sheet-heading h2{margin:6px 0 0;font-size:24px}.sheet-heading .eyebrow{font-size:8px;margin:0}.sheet-heading .quiet{font-size:19px}.control-sheet .toggle{padding-top:16px;margin-top:18px;min-height:40px}.control-sheet label:first-child{margin-top:0}.control-sheet select{min-height:52px}.control-sheet .toggles{margin-top:0}@media(max-width:700px){.remote-shell{padding-top:18px}.remote-shell>header{margin-bottom:13px}.remote-shell .header-actions{flex-direction:row;align-items:center}.remote-shell .header-actions .quiet{font-size:11px;padding:7px 9px}.remote-shell .brand{font-size:22px}.remote-shell .local{display:none}.control-sheet{bottom:max(12px,env(safe-area-inset-bottom));padding-bottom:26px}}@media(max-height:700px){.remote-view .dial{width:235px;margin-top:10px}.remote-view .dial strong{font-size:74px}.remote-view .climate{padding-top:3px}.remote-view .selection-state{margin-bottom:8px}.remote-view .read-status{margin-top:4px;margin-bottom:5px}.control-nav{margin-top:7px}.remote-view .ambient-reading{padding-top:8px}}.app-theme .remote-view .climate{background:transparent}.app-theme .remote-view .power{background:var(--theme-surface-soft);border-color:var(--theme-border-strong);color:var(--theme-text)}.app-theme .remote-view .power[aria-pressed=true]{background:var(--theme-accent);border-color:var(--theme-accent);color:var(--theme-accent-ink)}.app-theme .remote-view .dial{border:0;background:radial-gradient(circle,var(--theme-glow) 0,transparent 66%)}.app-theme .remote-view .ring-track{stroke:var(--theme-track)}.app-theme .remote-view .ring-progress{stroke:var(--theme-accent)}.app-theme .remote-view .ring-tick.passed{stroke:var(--theme-accent-muted)}.app-theme .remote-view .ring-handle{fill:var(--theme-accent);stroke:var(--theme-bg)}.app-theme .remote-view .temperature-actions button{background:var(--theme-surface-soft);border-color:var(--theme-border-strong)}.app-theme .remote-view .remote-connection{color:var(--theme-muted)}.app-theme .remote-view .climate-state{font-size:9px;margin-top:7px;color:var(--theme-accent)}.remote-view{width:100%;min-width:0}.remote-view .card-top>div{min-width:0}
