.home,.home-sheet,.thermo-modal,.smoke-alarm,.app-toast,.infopage{--panel:#111418;--panel-line:#23282f;--text:#f2f3f5;--text-dim:#9aa3ad;--accent:#7cc4ff}.infopage{z-index:5;padding:calc(4 * var(--cqh,1cqh)) calc(5 * var(--cqw,1cqw));color:var(--text);font-size:clamp(13px, calc(2.2 * var(--cqh,1cqh)), 26px);-webkit-overflow-scrolling:touch;background:#0b0d10;position:absolute;inset:0;overflow-y:auto}.infopage[hidden],.infopage [hidden]{display:none!important}.ip-block+.ip-block{border-top:1px solid var(--panel-line);margin-top:1.4em;padding-top:1.2em}.infopage h2{margin:0 0 .5em;font-size:1.3em;font-weight:600}.infopage h3{letter-spacing:.04em;text-transform:uppercase;color:var(--accent);margin:.8em 0 .3em;font-size:.85em;font-weight:600}.ip-deps{margin:0;padding:0;list-style:none}.ip-deps li{border-bottom:1px solid #ffffff0d;grid-template-columns:3.2em 3.6em 3.4em 1fr auto;align-items:baseline;gap:.4em;padding:.3em 0;display:grid}.ip-time{font-variant-numeric:tabular-nums;font-weight:600}.ip-delay{color:#ffb347;font-size:.9em;font-weight:600}.ip-line{color:#ff8a8a;background:#ec001633;border-radius:.3em;justify-self:start;padding:.05em .4em;font-size:.8em;font-weight:600}.ip-dest{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.ip-platform{color:var(--text-dim);font-size:.85em}.ip-platform.changed{color:#ffb347;font-weight:600}.ip-deps li.cancelled .ip-time,.ip-deps li.cancelled .ip-dest{color:var(--text-dim);text-decoration:line-through}.ip-deps li.cancelled .ip-delay{color:#ff6b6b}.ip-none,.ip-empty{color:var(--text-dim)}.ip-days{text-align:center;grid-template-columns:repeat(6,1fr);gap:.3em;display:grid}.ip-day{flex-direction:column;align-items:center;gap:.15em;display:flex}.ip-dname{color:var(--text-dim);font-size:.85em}.ip-dicon{font-size:1.6em;line-height:1.2}.ip-dtemp{font-variant-numeric:tabular-nums;color:var(--text-dim);font-size:.9em}.ip-dtemp b{color:var(--text)}.ip-drain{color:#8fc8ff;min-height:1.2em;font-size:.75em}.ip-rain{margin-top:.9em}.ip-rain-text{color:#8fc8ff;font-size:.95em}.ip-bars{align-items:flex-end;gap:2px;height:3em;margin-top:.4em;display:flex}.ip-bars i{background:var(--panel-line);border-radius:2px;flex:1}.ip-bars i.wet{background:#4aa3ff}.ip-axis{color:var(--text-dim);justify-content:space-between;margin-top:.2em;font-size:.75em;display:flex}.ip-waste-list{margin:0;padding:0;list-style:none}.ip-waste-list li{align-items:center;gap:.6em;padding:.25em 0;display:flex}.ip-wdate{width:7.5em;color:var(--text-dim)}.ip-waste-list i{border-radius:50%;width:.8em;height:.8em}.smoke-warn{margin-top:calc(4 * var(--cqw,1cqw));font-size:calc(7 * var(--cqw,1cqw));color:#ffb347}.smoke-warn[hidden]{display:none}.smoke-alarm{z-index:100;padding:env(safe-area-inset-top) 5vw env(safe-area-inset-bottom);color:#fff;text-align:center;background:#b00000;flex-direction:column;justify-content:center;align-items:center;gap:.4em;font-size:clamp(18px,3.4vh,40px);animation:1s step-end infinite smoke-flash;display:flex;position:fixed;inset:0}.smoke-alarm[hidden]{display:none}@keyframes smoke-flash{50%{background:#e01010}}.smoke-icon{font-size:4em;line-height:1}.smoke-title{letter-spacing:.08em;font-size:3em;font-weight:800}.smoke-where{font-size:1.5em;line-height:1.4}.smoke-mute{color:#fff;min-height:52px;font:inherit;cursor:pointer;background:#00000040;border:2px solid #fff;border-radius:999px;margin-top:1.2em;padding:.6em 1.4em;font-size:.9em}.smoke-mute[hidden]{display:none}.ip-smoke{margin:0;padding:0;list-style:none}.ip-smoke li{border-bottom:1px solid #ffffff0d;grid-template-columns:1fr 1fr auto;gap:.6em;padding:.3em 0;display:grid}.sm-room{color:var(--text-dim)}.sm-ok{color:#5ad19a}.sm-warn{color:#ffb347}.sm-bad{color:#ff6b6b;font-weight:700}.sm-base{color:var(--text-dim);margin:.5em 0 0;font-size:.85em}.appliance-lines{margin-top:calc(4 * var(--cqw,1cqw));font-size:calc(7 * var(--cqw,1cqw));line-height:1.4}.appliance-lines[hidden],.app-toast[hidden]{display:none}.app-toast{top:max(16px, env(safe-area-inset-top));z-index:60;color:#fff;background:#0e141cf0;border:1px solid #7cc4ff80;border-radius:999px;align-items:center;gap:.6em;max-width:90vw;padding:.7em 1.3em;font-size:clamp(16px,2.6vh,28px);animation:.4s ease-out app-toast-in;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 8px 30px #00000080}@keyframes app-toast-in{0%{opacity:0;transform:translate(-50%,-20px)}}.ip-appliances{margin:0;padding:0;list-style:none}.ip-appliances li{border-bottom:1px solid #ffffff0d;justify-content:space-between;gap:.8em;padding:.3em 0;display:flex}.ap-off{color:var(--text-dim)}.ap-on{color:#ffb347}.ap-run{color:var(--accent);text-align:right}.ap-done{color:#5ad19a}.energy-line{margin-top:calc(4 * var(--cqw,1cqw));font-size:calc(7 * var(--cqw,1cqw));color:#ffb347}.energy-line.exporting{color:#5ad19a}.energy-line[hidden]{display:none}.en-now{color:#ffb347;align-items:baseline;gap:.6em;display:flex}.en-now.exporting{color:#5ad19a}.en-big{font-variant-numeric:tabular-nums;font-size:2em;font-weight:700}.en-today{flex-wrap:wrap;gap:.4em 1.6em;margin-top:.5em;display:flex}.en-today div{flex-direction:column;display:flex}.en-today span{color:var(--text-dim);font-size:.8em}.en-chart{grid-template-columns:repeat(24,1fr);align-items:end;gap:2px;height:4.5em;margin-top:.9em;display:grid}.en-col{align-items:flex-end;gap:1px;height:100%;display:flex}.en-col i{border-radius:2px 2px 0 0;flex:1;min-height:1px}.en-imp{background:#ffb347}.en-exp{background:#5ad19a}.en-axis{color:var(--text-dim);justify-content:space-between;margin-top:.2em;font-size:.75em;display:flex}.en-legend{color:var(--text-dim);margin:.4em 0 0;font-size:.8em}.en-legend i{vertical-align:-.05em;border-radius:2px;width:.8em;height:.8em;margin:0 .2em 0 .6em;display:inline-block}.hw-display{background:#0f1626;border-radius:1em;grid-template-columns:1.55fr 1fr 1.25fr;align-items:center;gap:1em;padding:1.1em 1.2em;display:grid}.hw-ring{aspect-ratio:1;width:100%;position:relative;container-type:inline-size}.hw-ring svg{position:absolute;inset:0;overflow:visible}.hw-track{fill:none;stroke:var(--c);stroke-width:6px}.hw-cap{fill:none;stroke:#fff;stroke-width:6.5px;stroke-linecap:round;opacity:.75;filter:drop-shadow(0 0 2px var(--c)) drop-shadow(0 0 4px #fff)}.hw-val{flex-direction:column;justify-content:center;align-items:center;line-height:1;display:flex;position:absolute;inset:0}.hw-val b{font-size:calc(27 * var(--cqw,1cqw));font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-weight:700}.hw-val span{color:var(--c);font-size:calc(13 * var(--cqw,1cqw));margin-top:.12em;font-weight:700}.hw-ring.long .hw-val b{font-size:calc(21 * var(--cqw,1cqw))}.hw-ring.big .hw-val span{font-size:calc(11 * var(--cqw,1cqw));margin-top:.25em}.hw-main{flex-direction:column;align-items:center;display:flex}.hw-flows{flex-wrap:wrap;justify-content:center;gap:0 .6em;margin-top:.5em;font-size:1.25em;font-weight:700;display:flex}.hw-flows i{margin-right:.1em;font-style:normal}.hw-flows small{text-align:center;color:#9fb4d8;flex-basis:100%;font-size:.7em}.hw-small{flex-direction:column;gap:.9em;padding:0 .4em;display:flex}.hw-stats{flex-direction:column;gap:1.1em;display:flex}.hw-stat-row{justify-content:flex-end;align-items:center;gap:.25em;display:flex}.hw-icon{margin-right:.2em;font-size:1.6em;line-height:1}.hw-whole{font-variant-numeric:tabular-nums;font-size:2.6em;font-weight:700;line-height:1}.hw-sup{flex-direction:column;min-width:1.4em;font-size:.85em;font-weight:700;line-height:1.15;display:flex}.hw-sup i{font-style:normal}.hw-sup i:last-child{color:#9fd3ff}.hw-bar{background:var(--c);border-radius:99px;height:.32em;margin-top:.35em;position:relative}.hw-bar.fill{background:#9fd3ff73}.hw-bar.fill i{background:#fff;border-radius:99px;position:absolute;inset:0 auto 0 0}.hw-bar.dot{opacity:.85}.hw-bar.dot i{background:var(--c);filter:brightness(1.3);border:2px solid #0f1626;border-radius:50%;width:.85em;height:.85em;position:absolute;top:50%;transform:translate(-50%,-50%)}.hw-note{text-align:right;color:#7f8fa8;margin-top:.2em;font-size:.7em}.thermo-btn[hidden]{display:none}.thermo-btn.is-on{background:#ff8c3c1f;border-color:#ff8c3cb3}.thermo-btn.is-on .switch-icon{color:#ff8c3c}.thermo-btn.is-error{border-color:#ff6b6bcc}.thermo-btn.is-error .switch-state{color:#ff6b6b}.thermo-modal{z-index:50;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.thermo-modal[hidden],.thermo-modal [hidden]{display:none!important}.thermo-card{color:#fff;text-align:center;background:#11161f;border:1px solid #2a3240;border-radius:24px;width:min(460px,90vw);padding:28px 28px 22px;font-size:clamp(15px,2.2vh,20px);position:relative}.thermo-close{color:#fff;cursor:pointer;background:#ffffff14;border:0;border-radius:50%;width:44px;height:44px;font-size:18px;position:absolute;top:12px;right:12px}.thermo-zone{color:#9aa3ad;letter-spacing:.04em}.thermo-room{color:#9aa3ad;justify-content:center;align-items:baseline;gap:.5em;margin-top:.2em;display:flex}.thermo-room b{color:#fff;font-size:1.6em}.thermo-set{justify-content:center;align-items:center;gap:1.2em;margin:.8em 0 .4em;display:flex}.thermo-step{color:#fff;width:76px;height:76px;font:inherit;cursor:pointer;touch-action:manipulation;background:#1b2230;border:1px solid #2f3846;border-radius:50%;font-size:40px;line-height:1}.thermo-step:active{background:#2a3446}.thermo-target{flex-direction:column;min-width:4.5em;display:flex}.thermo-target b{color:#ff9b52;font-variant-numeric:tabular-nums;font-size:3.4em;font-weight:700;line-height:1}.thermo-target span{color:#9aa3ad;font-size:.85em}.thermo-mode{min-height:1.4em;margin:.6em 0 0}.thermo-schedule{color:#9fd3ff;min-height:46px;font:inherit;cursor:pointer;background:0 0;border:1px solid #3b4a63;border-radius:999px;margin-top:.9em;padding:0 1.2em}.thermo-extra{color:#7f8fa8;margin:.9em 0 0;font-size:.85em}.home{z-index:18;padding:max(16px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left));color:#f2f3f5;-webkit-overflow-scrolling:touch;-webkit-user-select:none;user-select:none;background:#0d0f13;font-size:clamp(14px,1.05vh + .45vw,24px);position:fixed;inset:0;overflow-y:auto}.home[hidden],.home-sheet[hidden],.home [hidden]{display:none!important}.home-head{top:calc(-1 * max(16px, env(safe-area-inset-top)));z-index:2;margin:calc(-1 * max(16px, env(safe-area-inset-top))) -20px .6em;padding:max(16px, env(safe-area-inset-top)) 20px .7em;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0d0f13eb;grid-template-columns:1fr auto 1fr;align-items:center;display:grid;position:sticky}.home-head h1{margin:0;font-size:1.5em;font-weight:700}.home-back{color:#fff;min-height:44px;font:inherit;cursor:pointer;background:#1c1f25;border:0;border-radius:999px;justify-self:start;align-items:center;gap:.2em;padding:0 .9em 0 .5em;display:flex}.home-back svg{width:1.3em;height:1.3em}.home-now{font-variant-numeric:tabular-nums;justify-self:end;gap:.9em;font-size:1.1em;display:flex}.home-time{font-weight:700}.home-sec{margin-top:1.4em}.home-sec-head{justify-content:space-between;align-items:center;gap:1em;margin-bottom:.7em;display:flex}.home-sec h2{margin:0;font-size:1.25em;font-weight:700}.home-actions{gap:.5em;display:flex}.home-actions button{color:#cfd3da;min-height:40px;font:inherit;cursor:pointer;background:#1c1f25;border:0;border-radius:999px;padding:0 1em;font-size:.85em}.home-grid{grid-template-columns:repeat(auto-fill,minmax(8.6em,1fr));gap:.75em;display:grid}.tile{--accent:#ffd54f;aspect-ratio:1/.92;color:#f2f3f5;min-width:0;font:inherit;text-align:left;cursor:pointer;touch-action:manipulation;-webkit-touch-callout:none;background:#1c1f25;border:0;border-radius:1.2em;flex-direction:column;justify-content:space-between;padding:.85em;transition:background .2s,color .2s,transform .12s;display:flex;position:relative;overflow:hidden}.tile:active{transform:scale(.97)}.tile-icon{color:#9aa1ab;background:#2b2f37;border-radius:50%;justify-content:center;align-items:center;width:2.5em;height:2.5em;padding:.55em;display:flex}.tile-emoji{font-size:1.35em;line-height:1}.tile-text{flex-direction:column;gap:.15em;min-width:0;display:flex}.tile-text b{text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-weight:600;line-height:1.2;display:-webkit-box;overflow:hidden}.tile-text small{color:#8b929c;white-space:nowrap;text-overflow:ellipsis;font-size:.8em;overflow:hidden}.tile.is-on{color:#15171b;background:#f4f5f7}.tile.is-on .tile-icon{background:var(--accent);color:#15171b}.tile.is-on .tile-text small{color:#5d636d}.tile.is-offline{opacity:.45}.tile.is-pending{opacity:.75}.tile.is-alert{box-shadow:inset 0 0 0 2px #ff6b6b}.tile.is-alert .tile-text small{color:#ff8a8a}.tile-more{width:2.2em;height:2.2em;color:inherit;opacity:.55;border-radius:50%;padding:.5em;display:flex;position:absolute;top:.6em;right:.6em}.tile-more:hover{opacity:1;background:#7f7f7f33}.tile-img{background:var(--bg) center / cover no-repeat;opacity:.55;position:absolute;inset:0}.tile-img~.tile-icon,.tile-img~.tile-text{position:relative}.tile-img~.tile-text small{color:#dfe3e8}@media (hover:hover) and (pointer:fine){.tile:hover{filter:brightness(1.12)}.home-back:hover,.home-actions button:hover{background:#2a2e36}}.home-info .infopage.embedded{background:0 0;grid-template-columns:repeat(auto-fit,minmax(min(100%,24em),1fr));gap:.75em;padding:0;font-size:1em;display:grid;position:static;overflow:visible}.home-info .infopage.embedded .ip-block{background:#16191f;border:0;border-radius:1.2em;margin:0;padding:1em 1.1em}.home-info .infopage.embedded .ip-energy-block{order:-1}@media (min-width:900px) and (max-width:1500px){.home-info .infopage.embedded .ip-energy-block{grid-column:span 2}}.home-info .hw-display,.home-info .en-chart{max-width:40em}.home-info .en-axis{max-width:53.3333em}.home-info .en-legend{max-width:50em}.home-info .infopage.embedded .ip-block+.ip-block{border-top:0;margin-top:0;padding-top:1em}.home-sheet{z-index:40;background:#0000008c;justify-content:center;align-items:flex-end;font-size:clamp(15px,1.1vh + .45vw,24px);display:flex;position:fixed;inset:0}.sheet-card{width:min(560px,100%);max-height:85vh;padding:1.1em 1.3em calc(1.3em + env(safe-area-inset-bottom));color:#f2f3f5;background:#16191f;border-radius:1.4em 1.4em 0 0;animation:.22s ease-out sheet-in;overflow-y:auto}@keyframes sheet-in{0%{opacity:0;transform:translateY(40px)}}.sheet-head{justify-content:space-between;align-items:center;margin-bottom:.8em;display:flex}.sheet-head h3{margin:0;font-size:1.25em}.sheet-close{color:#fff;cursor:pointer;background:#262a32;border:0;border-radius:50%;width:44px;height:44px;font-size:18px}.sheet-power{color:#fff;width:100%;min-height:3.2em;font:inherit;cursor:pointer;background:#262a32;border:0;border-radius:1em;align-items:center;gap:.6em;padding:0 1em;font-weight:600;display:flex}.sheet-power svg{width:1.4em;height:1.4em}.sheet-power.on{color:#15171b;background:#ffd54f}.sheet-row{color:#aab0b9;justify-content:space-between;margin:1.1em 0 .5em;display:flex}.sheet-row b{color:#fff}.sheet-range{appearance:none;cursor:pointer;background:linear-gradient(90deg,#3a3f49,#ffd54f);border-radius:1em;width:100%;height:2.6em;margin:0}.sheet-range.warmth{background:linear-gradient(90deg,#ffb35c,#fff3dd,#cfe6ff)}.sheet-range::-webkit-slider-thumb{appearance:none;background:#fff;border:3px solid #16191f;border-radius:50%;width:2.2em;height:2.2em}.sheet-range::-moz-range-thumb{background:#fff;border:3px solid #16191f;border-radius:50%;width:2em;height:2em}.sheet-colours{grid-template-columns:repeat(9,1fr);gap:.5em;display:grid}.sheet-colours button{aspect-ratio:1;cursor:pointer;border:3px solid #0000;border-radius:50%}.sheet-colours button.white{color:#15171b;background:#f4f1e8;font-size:.7em}.sheet-colours button.sel{border-color:#fff;box-shadow:inset 0 0 0 2px #16191f}.sheet-list{grid-template-columns:auto 1fr;gap:.55em 1.2em;margin:0;display:grid}.sheet-list dt{color:#8b929c}.sheet-list dd{text-align:right;margin:0}.sheet-progress{background:#262a32;border-radius:99px;height:.5em;margin-top:1em;overflow:hidden}.sheet-progress i{background:#7cc4ff;height:100%;display:block}.sheet-note{color:#6c737d;margin:1.1em 0 0;font-size:.85em}.home-toast{bottom:max(20px, env(safe-area-inset-bottom));z-index:3;color:#ffd2d2;background:#3a1d1d;border-radius:999px;padding:.7em 1.2em;position:fixed;left:50%;transform:translate(-50%)}.sheet-actions{gap:.6em;margin-top:1.1em;display:flex}.sheet-btn{color:#fff;min-height:3em;font:inherit;cursor:pointer;background:#262a32;border:0;border-radius:1em;flex:1;padding:0 1em;font-weight:600}.sheet-btn.primary{color:#0d0f13;background:#7cc4ff}.sheet-btn.danger{color:#ffb4b4;background:#4a1f22}.sheet-btn:disabled{opacity:.45;cursor:default}.sheet-chips{flex-wrap:wrap;gap:.45em;display:flex}.chip{color:#dfe3e8;min-height:2.4em;font:inherit;cursor:pointer;background:#1c1f25;border:1px solid #343a45;border-radius:999px;padding:0 .9em;font-size:.9em}.chip.sel{color:#0d0f13;background:#7cc4ff;border-color:#7cc4ff;font-weight:600}.sheet-stepper{gap:.6em;display:flex}.sheet-stepper button{color:#fff;min-height:2.8em;font:inherit;cursor:pointer;background:#262a32;border:0;border-radius:1em;flex:1;font-size:1.4em}.sheet-msg{color:#9fd3ff;margin:.9em 0 0}.sheet-note.warn{color:#ffb347}.sheet-power.rituals.on{color:#15171b;background:#f4a7c4}.home.standalone .home-back{visibility:hidden}.home.embedded{z-index:auto;min-height:100%;padding:16px 16px 28px;position:static;inset:auto;overflow:visible}.home.embedded .home-head{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;margin:0 0 .4em;padding:0;position:static}.home.embedded .home-sec:first-of-type{margin-top:.6em}@media (max-width:640px){.home .hw-display{grid-template-columns:1.3fr 1fr;gap:.8em;padding:.9em}.home .hw-stats{grid-column:1/-1;grid-template-columns:repeat(3,1fr);gap:.6em;display:grid}.home .hw-stat-row{justify-content:center}.home .hw-whole{font-size:1.9em}.home .hw-note{text-align:center}.home .home-grid{grid-template-columns:repeat(auto-fill,minmax(9.5em,1fr))}.home .home-head h1{font-size:1.3em}.home .ip-days{grid-template-columns:repeat(3,1fr);row-gap:.8em}}.home-sheet .wifi-qr{justify-content:center;margin:.4em 0 1em;display:flex}.home-sheet .wifi-qr svg{background:#fff;border-radius:14px;width:min(70vw,300px);height:auto;padding:10px}.home-sheet .wifi-pw{color:#fff;letter-spacing:.06em;cursor:pointer;background:#1c1f25;border:1px solid #2c333c;border-radius:999px;min-height:2.2em;padding:0 .9em;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:1.05em}.home-sheet .wifi-pw:after{content:"  👁";letter-spacing:0;font-family:system-ui,sans-serif}.home-sheet .wifi-pw.shown{-webkit-user-select:text;user-select:text}.home-sheet .wifi-pw.shown:after{content:""}.home-sheet .fuel-verdict{color:#9aa3ad;margin:.2em 0 .4em}.home-sheet .fuel-verdict.de,.home-sheet .fuel-verdict.nl{color:#6fd38f;font-weight:600}.home-sheet .fuel-list{margin:0 0 1em;padding:0;list-style:none}.home-sheet .fuel-list li{border-bottom:1px solid #ffffff0f;justify-content:space-between;align-items:baseline;gap:.8em;padding:.35em 0;display:flex}.home-sheet .fuel-list small{color:#8b929c}.home-sheet .fuel-list b{font-variant-numeric:tabular-nums}
