:root{--cyan: #32ade6;--bg: #f2f2f7;--card: #ffffff;--card-2: #f2f2f7;--fill: rgba(120, 120, 128, .12);--fill-2: rgba(120, 120, 128, .2);--label: #000000;--label-2: rgba(60, 60, 67, .6);--label-3: rgba(60, 60, 67, .3);--sep: rgba(60, 60, 67, .18);--bar-bg: rgba(249, 249, 249, .86);--tile-off: rgba(255, 255, 255, .62);--tile-on: #ffffff;--tile-on-text: #000000;--switch-off: #e9e9eb;--seg-on: #ffffff;--blue: #007aff;--green: #34c759;--orange: #ff9500;--yellow: #ffcc00;--red: #ff3b30;--indigo: #5856d6;--font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-display: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-rounded: ui-rounded, "SF Pro Rounded", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--radius: 20px;--radius-sm: 12px;--shadow: 0 1px 2px rgba(0, 0, 0, .04), 0 2px 10px rgba(0, 0, 0, .04);--gap: 16px;color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--bg: #000000;--card: #1c1c1e;--card-2: #2c2c2e;--fill: rgba(120, 120, 128, .24);--fill-2: rgba(120, 120, 128, .32);--label: #ffffff;--label-2: rgba(235, 235, 245, .6);--label-3: rgba(235, 235, 245, .3);--sep: rgba(84, 84, 88, .65);--bar-bg: rgba(22, 22, 24, .86);--tile-off: #1c1c1e;--tile-on: rgba(255, 255, 255, .94);--tile-on-text: #000000;--switch-off: #39393d;--seg-on: #636366;--blue: #0a84ff;--green: #30d158;--orange: #ff9f0a;--yellow: #ffd60a;--red: #ff453a;--indigo: #5e5ce6;--cyan: #64d2ff;--shadow: none}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{margin:0;background:var(--bg);color:var(--label);font:400 17px/1.35 var(--font);letter-spacing:-.01em;-webkit-font-smoothing:antialiased}a{color:var(--blue);text-decoration:none}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.02em}:focus-visible{outline:3px solid color-mix(in srgb,var(--blue) 55%,transparent);outline-offset:2px;border-radius:8px}.icon{flex:none;vertical-align:-3px}.app{min-height:100vh}.content{width:100%;max-width:1120px;margin:0 auto;padding:max(14px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 48px max(16px,env(safe-area-inset-left))}.with-nav .content{padding-bottom:calc(96px + env(safe-area-inset-bottom))}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:18px 4px 16px}.page-head h1{margin:0;font-size:34px;font-weight:700;line-height:1.1;letter-spacing:.005em}.status-line{display:flex;align-items:center;gap:6px;margin:4px 0 0;font-size:13px;color:var(--label-2)}.status-line .dot{width:8px;height:8px;border-radius:50%;background:var(--label-3)}.status-online .dot{background:var(--green)}.status-connecting .dot,.status-demo .dot{background:var(--orange)}.status-offline .dot{background:var(--red)}.avatar{display:grid;place-items:center;flex:none;width:40px;height:40px;margin-bottom:4px;border-radius:50%;background:linear-gradient(180deg,#a5abb8,#858994);color:#fff;font-size:16px;font-weight:600;letter-spacing:0}.avatar.current{box-shadow:0 0 0 3px var(--bg),0 0 0 5px var(--blue)}.tabbar{position:fixed;z-index:20;left:0;right:0;bottom:0;display:flex;justify-content:space-around;padding:6px max(8px,env(safe-area-inset-left)) calc(6px + env(safe-area-inset-bottom));border-top:.5px solid var(--sep);background:var(--bar-bg);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}.tabbar a{display:flex;flex:1;flex-direction:column;align-items:center;gap:2px;min-width:0;max-width:120px;padding:2px 0;color:var(--label-2);font-size:10px;font-weight:500;letter-spacing:.01em}.tabbar a span{overflow:hidden;max-width:100%;text-overflow:ellipsis;white-space:nowrap}.tabbar a[aria-current=page]{color:var(--blue)}.sidebar-title{display:none}@media(min-width:1024px){.app.with-nav{display:grid;grid-template-columns:260px minmax(0,1fr)}.tabbar{position:sticky;top:0;bottom:auto;height:100vh;flex-direction:column;justify-content:flex-start;gap:2px;padding:20px 12px;border-top:0;border-right:.5px solid var(--sep);background:var(--card);-webkit-backdrop-filter:none;backdrop-filter:none}.sidebar-title{display:block;margin:6px 12px 14px;font-family:var(--font-display);font-size:28px;font-weight:700;letter-spacing:.005em}.tabbar a{flex:none;flex-direction:row;gap:12px;max-width:none;padding:9px 12px;border-radius:10px;color:var(--label);font-size:17px;font-weight:400}.tabbar a .icon{color:var(--blue)}.tabbar a[aria-current=page]{background:var(--blue);color:#fff}.tabbar a[aria-current=page] .icon{color:#fff}.with-nav .content{padding-bottom:48px;padding-left:32px;padding-right:32px}}.grid,.module-page{display:grid;gap:var(--gap)}.grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));align-items:start}.panel,.setup,.summary-bar,.car,.energy-now,.speaker,.edit-panel{border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow)}.panel{padding:18px 20px 20px}.panel h2{margin:0 0 14px;font-size:22px;font-weight:700}.panel h2 .icon{color:var(--label-2)}.muted,.meta{margin:12px 0 0;font-size:15px;color:var(--label-2)}.muted-inline{color:var(--label-2)}button{padding:11px 20px;border:0;border-radius:var(--radius-sm);background:var(--blue);color:#fff;font:600 17px var(--font);letter-spacing:-.01em;cursor:pointer;transition:opacity .15s,transform .1s}button:active:not(:disabled){transform:scale(.97)}button:disabled{opacity:.4;cursor:default}button.secondary{background:color-mix(in srgb,var(--blue) 14%,transparent);color:var(--blue)}button.link{padding:0;border-radius:4px;background:none;color:var(--blue);font-weight:400}button.link:active:not(:disabled){transform:none;opacity:.5}button.link.danger,.danger{color:var(--red)}button.danger-fill{background:var(--red);color:#fff}.small-btn{padding:6px 14px;border-radius:999px;font-size:15px}.actions{display:flex;align-items:center;flex-wrap:wrap;gap:16px;margin-top:20px}.spacer{flex:1}.icon-btn{display:inline-grid;place-items:center;width:44px;height:44px;padding:0;border-radius:50%;background:transparent;color:var(--label)}.icon-btn.small{width:36px;height:36px;background:var(--fill)}.icon-btn.main{width:58px;height:58px;background:var(--fill)}.setup{width:100%;max-width:460px;margin:8px auto 0;padding:26px 22px}.signed-out .page-head{justify-content:center;text-align:center}.signed-out .status-line{justify-content:center}.setup h2{margin:0 0 6px;font-size:26px;font-weight:700}.setup>p{margin:0 0 6px;color:var(--label-2)}.setup .actions button[type=submit],.setup .actions .passkey-login{flex:1 1 100%}.passkey-login{display:inline-flex;align-items:center;justify-content:center;gap:8px}.search{display:grid;gap:6px;margin:16px 0 0}.search>span{padding-left:4px;font-size:13px;color:var(--label-2)}input,select{width:100%;min-height:44px;padding:10px 14px;border:0;border-radius:10px;background:var(--fill);color:var(--label);font:400 17px var(--font);letter-spacing:-.01em}input::placeholder{color:var(--label-3)}select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--label-2) 50%),linear-gradient(135deg,var(--label-2) 50%,transparent 50%);background-position:calc(100% - 19px) 50%,calc(100% - 14px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:34px}select option{color:#000}input:disabled,select:disabled{opacity:.5}input[type=range]{min-height:0;height:28px;margin:10px 0 0;padding:0;background:transparent;accent-color:var(--blue)}input[type=range]:disabled{opacity:.35}.check{display:flex;align-items:center;gap:10px;margin-top:14px;cursor:pointer}.check input{width:22px;min-height:0;height:22px;margin:0;padding:0;accent-color:var(--blue)}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0 16px}.form-wide{grid-column:1 / -1}.toggle{display:inline-flex;align-items:center;gap:12px;cursor:pointer}.toggle input{appearance:none;position:relative;flex:none;width:51px;min-height:0;height:31px;margin:0;padding:0;border-radius:999px;background:var(--switch-off);cursor:pointer;transition:background .2s}.toggle input:after{content:"";position:absolute;top:2px;left:2px;width:27px;height:27px;border-radius:50%;background:#fff;box-shadow:0 3px 8px #00000026,0 1px 1px #00000029;transition:transform .2s}.toggle input:checked{background:var(--green)}.toggle input:checked:after{transform:translate(20px)}.toggle input:disabled{opacity:.5;cursor:default}.segmented,.subtabs{display:inline-flex;padding:2px;border-radius:9px;background:var(--fill)}.segmented label,.subtabs a{position:relative;flex:1;padding:5px 14px;border-radius:7px;color:var(--label);font-size:13px;font-weight:500;text-align:center;white-space:nowrap;cursor:pointer}.segmented label.on,.subtabs a[aria-current=page]{background:var(--seg-on);box-shadow:0 3px 8px #0000001f,0 3px 1px #0000000a;font-weight:600}.segmented input{position:absolute;opacity:0;pointer-events:none}.segmented label:has(input:focus-visible){outline:3px solid color-mix(in srgb,var(--blue) 55%,transparent)}.subtabs{display:flex;margin-bottom:20px;max-width:820px}.notice,.confirm{margin:14px 0 0;padding:12px 14px;border-radius:var(--radius-sm);font-size:15px}.notice{background:color-mix(in srgb,var(--red) 12%,transparent)}.confirm{background:color-mix(in srgb,var(--green) 14%,transparent)}.notice code{font-size:13px;word-break:break-all}.chip,.chip-light,.tag{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;background:var(--fill);color:var(--label-2);font-size:13px;font-weight:600;letter-spacing:0}.tag{padding:1px 8px;font-size:12px}.chip-charge,.chip-light.live,.tag-ok{background:color-mix(in srgb,var(--green) 16%,transparent);color:var(--green)}.tag-warn{background:color-mix(in srgb,var(--orange) 16%,transparent);color:var(--orange)}.log-fail{color:var(--red)}.rows,.entity-list,.devices{margin:12px 0 0;padding:0;list-style:none}.rows,.entity-list{overflow:hidden;border-radius:var(--radius-sm);background:var(--card);box-shadow:var(--shadow)}.panel .rows,.panel .entity-list{background:var(--card-2);box-shadow:none}.rows>li,.entity-list li{position:relative;padding:12px 16px}.rows>li+li:before,.entity-list li+li:before{content:"";position:absolute;top:0;left:16px;right:0;border-top:.5px solid var(--sep)}.row-main{display:flex;align-items:center;justify-content:space-between;gap:16px}.row-main p{margin:0}.row-title{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-weight:600}.row-sub{font-size:15px;color:var(--label-2);overflow-wrap:anywhere}.entity-list li{display:flex;justify-content:space-between;gap:16px;font-size:15px}.entity-list code{font-size:14px;word-break:break-all}.entity-state{flex:none;color:var(--label-2);font-variant-numeric:tabular-nums}.settings-section,.browser,.account-grid{max-width:820px}.section-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.section-head h2,.browser h2{margin:0;font-size:22px;font-weight:700}.browser .meta{margin:6px 0 0}.edit-panel{margin:16px 0;padding:18px 20px}.edit-panel h3,.account-section h3{margin:0 0 6px;font-size:20px;font-weight:700}.levels{margin:16px 0 0;padding:0;border:0}.levels legend{margin-bottom:6px;padding:0 4px;font-size:13px;color:var(--label-2)}.level-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;padding:10px 0;border-top:.5px solid var(--sep)}.password-box{margin:16px 0;padding:16px 18px;border-radius:14px;background:color-mix(in srgb,var(--green) 12%,var(--card))}.password-box p{margin:0 0 10px}.password-box code{display:block;padding:10px 12px;border-radius:10px;background:var(--card);font-size:18px;overflow-wrap:anywhere;-webkit-user-select:all;user-select:all}.account-who{margin:-6px 4px 18px}.account-logout{margin-left:14px}.account-grid{display:grid;gap:var(--gap)}.account-section>p .tag{margin-right:6px}.mfa-setup{margin-top:12px}.mfa-scan{display:grid;grid-template-columns:auto 1fr;gap:20px;align-items:start}.mfa-scan p{margin:0 0 8px}.mfa-scan img,.qr-empty{width:220px;height:220px;border-radius:14px;background:#fff}.manual-key{display:inline-block;margin:0 0 16px;padding:6px 10px;border-radius:8px;background:var(--fill);font-size:15px;letter-spacing:.04em;overflow-wrap:anywhere;-webkit-user-select:all;user-select:all}.backup-codes{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin:0;padding:0;list-style:none}.backup-codes code{display:block;padding:8px 10px;border-radius:8px;background:var(--fill);font-size:16px;text-align:center;-webkit-user-select:all;user-select:all}.car-grid{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}.car{grid-column:1 / -1;display:grid;grid-template-columns:220px minmax(0,1fr);grid-template-areas:"ring head" "ring body";gap:16px 32px;align-items:center;padding:22px 24px}.ring{grid-area:ring;position:relative;width:100%;max-width:220px;aspect-ratio:1;justify-self:center}.ring svg{display:block;width:100%;height:100%}.ring-track{fill:none;stroke:var(--fill)}.ring-value{fill:none;stroke:var(--green);stroke-linecap:round;transition:stroke-dasharray .6s ease}.ring-low .ring-value{stroke:var(--red)}.ring-charging .ring-value{animation:breathe 2.4s ease-in-out infinite}@keyframes breathe{50%{opacity:.6}}.limit-mark{stroke:var(--label);stroke-width:3;stroke-linecap:round}.ring-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.ring-center p{margin:0}.range{font:700 54px / 1 var(--font-rounded);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.range .unit{margin-left:3px;font-size:20px;font-weight:600;color:var(--label-2)}.level{margin-top:6px!important;font-size:15px;font-weight:500;color:var(--label-2)}.car-head{grid-area:head;align-self:end}.car-head p{margin:0}.car-title{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.car-title .chip{padding:5px 12px;font-size:15px}.charge-line{margin-top:8px!important;color:var(--green);font-weight:600}.charge-sub{margin-top:2px!important;font-size:13px;color:var(--label-2)}.updated{margin-top:6px!important;font-size:13px;color:var(--label-2)}.car-body{grid-area:body;align-self:start;min-width:0}.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:16px 24px;margin:0}.facts div{margin:0}.facts dt{font-size:13px;color:var(--label-2)}.facts dd{margin:2px 0 0;font:600 24px / 1.15 var(--font-rounded);letter-spacing:-.01em;font-variant-numeric:tabular-nums}.dd-sub{display:block;margin-top:2px;font:400 13px / 1.3 var(--font);color:var(--label-2)}.dd-warn{color:var(--orange)}.dd-unit{font-size:15px;font-weight:500;color:var(--label-2)}.car-map{position:relative;height:200px;margin:20px 0 0;overflow:hidden;border-radius:14px;background:var(--card-2);isolation:isolate}.map-tiles{position:absolute;inset:0;filter:saturate(.85)}@media(prefers-color-scheme:dark){.map-tiles{filter:grayscale(.6) invert(.9) hue-rotate(180deg) brightness(.9) contrast(.9)}}.map-tiles img{position:absolute;width:256px;height:256px;max-width:none;-webkit-user-select:none;user-select:none}.map-pin{position:absolute;left:50%;top:50%;width:20px;height:20px;margin:-10px 0 0 -10px;border:3px solid #fff;border-radius:50%;background:var(--blue);box-shadow:0 0 0 8px color-mix(in srgb,var(--blue) 22%,transparent),0 2px 6px #0000004d}.map-place{position:absolute;left:10px;bottom:10px;display:flex;flex-direction:column;padding:6px 12px;border-radius:10px;background:var(--bar-bg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);line-height:1.25}.map-place strong{font-size:15px;font-weight:600}.map-place span{font-size:12px;color:var(--label-2)}.map-zoom{position:absolute;top:10px;right:10px;display:flex;flex-direction:column;overflow:hidden;border-radius:10px;background:var(--bar-bg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.map-zoom button{width:36px;height:36px;padding:0;border-radius:0;background:transparent;color:var(--label);font:400 22px / 1 var(--font)}.map-zoom button+button{border-top:.5px solid var(--sep)}.map-credit{position:absolute;right:6px;bottom:4px;font-size:10px;color:var(--label-2)}.car-tiles,.lamps{display:grid;gap:10px}.car-tiles{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:6px}.car-tile,.lamp-toggle{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;column-gap:10px;align-items:center;min-width:0;width:100%;min-height:64px;padding:12px;border-radius:16px;background:var(--fill);color:var(--label);font:inherit;text-align:left;transition:background .2s,transform .1s}.car-tile:disabled,.lamp-toggle:disabled{opacity:1}.car-tile:disabled:not([aria-pressed=true]){opacity:.5}.tile-icon,.lamp-dot{grid-row:1 / 3;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--fill-2);color:var(--label-2)}.tile-name,.lamp-name{overflow:hidden;font-size:15px;font-weight:600;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.tile-state,.lamp-state{overflow:hidden;font-size:13px;color:var(--label-2);text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums}.car-tile.on{background:color-mix(in srgb,var(--yellow) 22%,var(--card))}.car-tile.on .tile-icon{background:var(--yellow);color:#000}.car-tile.charge{background:color-mix(in srgb,var(--green) 18%,var(--card))}.car-tile.charge .tile-icon{background:var(--green);color:#fff}.control{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-top:.5px solid var(--sep)}.control p{margin:0}.control-name{font-weight:500}.control-state{font-size:13px;color:var(--label-2)}.control button{min-width:100px}.control-limit{display:block}.control-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.limit-value{font:600 22px / 1 var(--font-rounded);font-variant-numeric:tabular-nums}.limit-value.off{font:400 15px var(--font);color:var(--label-2)}.totals{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:14px 24px}.totals p{margin:0}.big{font:700 40px / 1 var(--font-rounded);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.mid{font:700 28px / 1 var(--font-rounded);font-variant-numeric:tabular-nums}.unit{margin-left:5px;font-size:15px;color:var(--label-2)}.sub{display:block;margin-top:4px;font-size:13px;color:var(--label-2)}.bars{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;height:150px;margin:22px 0 0;padding:0;list-style:none}.bars li{display:grid;grid-template-rows:auto 1fr auto;align-items:end;justify-items:center;min-width:0}.bar-value{font-size:12px;color:var(--label-2);font-variant-numeric:tabular-nums}.bar{align-self:end;width:100%;max-width:28px;min-height:4px;border-radius:6px;background:var(--fill-2)}.bars li.today .bar{background:var(--blue)}.bars li.future .bar{opacity:.4}.bar-label{margin-top:6px;font-size:12px;color:var(--label-2)}.bars li.today .bar-label{color:var(--label);font-weight:600}.trip-totals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 24px;margin-top:14px}.trip-total{position:relative;margin:0;padding-left:14px}.trip-dot{position:absolute;left:0;top:12px;width:8px;height:8px;border-radius:50%}.trip-total.km .trip-dot,.key.km,.trip-col.km .trip-bar{background:var(--blue)}.trip-total.kwh .trip-dot,.key.kwh,.trip-col.kwh .trip-bar{background:var(--green)}.trip-per100{margin:10px 0 0;font-size:13px}.trip-chart{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;height:170px;margin:20px 0 0;padding:0;list-style:none}.trip-chart li{display:grid;grid-template-rows:minmax(0,1fr) auto;min-width:0}.trip-pair{display:grid;grid-template-columns:1fr 1fr;gap:3px;align-items:end;min-height:0;padding:0 2px}.trip-col{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;min-width:0}.trip-val{margin-bottom:3px;font-size:10px;font-weight:600;line-height:1;white-space:nowrap;font-variant-numeric:tabular-nums}.trip-col.km .trip-val{color:var(--blue)}.trip-col.kwh .trip-val{color:var(--green)}.trip-bar{width:100%;max-width:14px;min-height:3px;border-radius:4px}.trip-chart li.future .trip-bar{opacity:.3}.trip-chart li:not(.today) .trip-bar{opacity:.75}.trip-chart .bar-label{margin-top:6px;text-align:center}.trip-chart li.today .bar-label{color:var(--label);font-weight:600}.trips .legend .key{width:10px;height:10px;border-radius:3px}.trips .legend .key.kwh{margin-left:10px}.trips .legend{margin-top:10px}.car-grid .trips-log{grid-column:1 / -1}.trip-nav{display:flex;align-items:center;justify-content:space-between;margin-top:16px}.trip-count{font-size:13px;font-weight:600;color:var(--label-2);font-variant-numeric:tabular-nums}.trip-detail{margin-top:10px;padding:16px;border-radius:16px;background:var(--card-2)}.trip-when{margin:0 0 12px;font-weight:600}.trip-route{position:relative;margin:0 0 16px;padding:0;list-style:none}.trip-route:before{content:"";position:absolute;left:5px;top:14px;bottom:14px;border-left:2px dashed var(--label-3)}.trip-route li{position:relative;display:grid;grid-template-columns:12px 1fr auto;align-items:center;gap:12px;padding:6px 0}.trip-pin{width:12px;height:12px;border-radius:50%;background:var(--card);box-shadow:inset 0 0 0 3px var(--green)}.trip-pin.end{background:var(--blue);box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 25%,transparent)}.trip-place{min-width:0;overflow:hidden;font-size:15px;text-overflow:ellipsis;white-space:nowrap}.trip-time{font-size:13px;color:var(--label-2);font-variant-numeric:tabular-nums}.trip-facts{grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}.trip-facts dd{font-size:20px}.trip-list{max-height:340px;overflow-y:auto}.trip-list li{padding:0!important}.trip-row{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:10px 16px;border-radius:0;background:transparent;color:var(--label);font:inherit;text-align:left}.trip-row:active:not(:disabled){transform:none}.trip-list li.open .trip-row{background:color-mix(in srgb,var(--blue) 10%,transparent)}.trip-row-main{display:flex;flex-direction:column;min-width:0}.trip-row-main .row-sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trip-row-km{display:flex;flex:none;flex-direction:column;align-items:flex-end;font-weight:600;font-variant-numeric:tabular-nums}.summary-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px 20px;padding:14px 20px}.summary-bar p{margin:0}.room-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:22px var(--gap);align-items:start}.room.panel{padding:0;border-radius:0;background:none;box-shadow:none}.room-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;padding:0 4px}.room-head h2,.panel .room-head h2{margin:0;font-size:20px}.lamps{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.lamp-wrap:has(.members){grid-column:1 / -1}.lamp-toggle{background:var(--tile-off);box-shadow:var(--shadow)}.lamp.on .lamp-toggle{background:var(--tile-on);color:var(--tile-on-text)}.lamp.on .lamp-state{color:#3c3c4399}.lamp.on .lamp-dot{background:var(--yellow);color:#000}.climate-tile.snowflake.on .lamp-dot{background:var(--cyan);color:#fff}.climate-tile.heater.on .lamp-dot{background:var(--orange);color:#fff}.climate-tile.fan.on .lamp-dot{background:var(--green);color:#fff}.climate-tile.fan.on .lamp-dot svg{animation:climate-spin 2.4s linear infinite}@keyframes climate-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.climate-tile.fan.on .lamp-dot svg{animation:none}}.climate-sheet{display:grid;gap:16px;--mode: var(--label-3)}.climate-sheet.on{--mode: var(--cyan)}.climate-sheet.on.mode-heat{--mode: var(--orange)}.climate-sheet.on.mode-dry,.climate-sheet.on.mode-fan_only{--mode: var(--green)}.climate-sheet.on.mode-auto,.climate-sheet.on.mode-heat_cool{--mode: var(--indigo)}.climate-power{display:flex;justify-content:space-between;padding:12px 16px;border-radius:var(--radius-sm);background:var(--card)}.climate-power>span{display:grid}.climate-dial{display:grid;grid-template-columns:56px 1fr 56px;align-items:center;padding:18px 12px;border-radius:var(--radius-sm);background:var(--card);box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--mode) 45%,transparent);transition:box-shadow .3s}.climate-step{width:52px;height:52px;min-height:0;padding:0;border-radius:50%;background:var(--fill);color:var(--label);font-size:28px;font-weight:400;line-height:1}.climate-step:disabled{opacity:.35}.climate-target{display:grid;grid-template-columns:auto auto;justify-content:center;align-items:start;margin:0;text-align:center}.climate-temp{font-family:var(--font-rounded);font-size:56px;font-weight:600;line-height:1;color:var(--mode);font-variant-numeric:tabular-nums;transition:color .3s}.climate-sheet:not(.on) .climate-temp{color:var(--label-2)}.climate-unit{margin:6px 0 0 2px;font-size:20px;font-weight:600;color:var(--label-2)}.climate-now{grid-column:1 / -1;margin-top:6px;font-size:13px;color:var(--label-2)}.climate-row{display:grid;gap:6px}.climate-label{margin:0 0 0 4px;font-size:13px;color:var(--label-2);text-transform:uppercase;letter-spacing:.02em}.climate-seg{display:flex;width:100%}.climate-seg label{padding:7px 6px}.climate-seg.wrap{display:grid;grid-template-columns:repeat(3,1fr)}.climate-sensor{justify-content:space-between;padding:12px 16px}.room-grid>.climate{grid-column:1 / -1}.climate .lamps{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.climate .lamp-state{white-space:normal}.lamp.missing{opacity:.45}.lamp.small .lamp-toggle{min-height:52px;padding:8px 10px}.lamp.small .lamp-dot{width:30px;height:30px}.lamp-dim{accent-color:var(--yellow)!important}.members-toggle{margin:8px 0 0 4px;font-size:15px}.members{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;margin-top:8px}.speaker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--gap);align-items:start}.speaker{padding:18px 20px}.speaker.missing{opacity:.55}.speaker-top{display:flex;align-items:center;gap:14px;min-width:0}.cover{display:grid;place-items:center;flex:none;width:76px;height:76px;overflow:hidden;border-radius:10px;background:var(--fill);color:var(--label-3);box-shadow:0 4px 14px #0000001f}.cover.empty{box-shadow:none}.cover img{width:100%;height:100%;object-fit:cover}.speaker-info{min-width:0}.speaker-info p{margin:0}.speaker-room{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:13px;font-weight:600;color:var(--label-2);text-transform:uppercase;letter-spacing:.02em}.speaker-state{padding:1px 7px;border-radius:999px;background:var(--fill);font-size:11px;text-transform:none;letter-spacing:0}.speaker-state.live{background:color-mix(in srgb,var(--green) 16%,transparent);color:var(--green)}.speaker-title{margin-top:3px!important;overflow:hidden;font-size:19px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.speaker-artist{overflow:hidden;color:var(--label-2);font-size:15px;text-overflow:ellipsis;white-space:nowrap}.transport{display:flex;align-items:center;justify-content:center;gap:22px;margin:16px 0 6px}.volume{display:flex;align-items:center;gap:8px}.volume input[type=range]{flex:1;margin:0}.volume .icon-btn.small{background:transparent;color:var(--label-2)}.volume-value{min-width:2.2em;color:var(--label-2);font-size:15px;text-align:right;font-variant-numeric:tabular-nums}.speaker-options{display:grid;gap:12px;margin-top:14px;padding-top:14px;border-top:.5px solid var(--sep);font-size:15px}.speaker-options .toggle{flex-direction:row-reverse;justify-content:space-between}.speaker-group{margin-top:4px!important;font-size:13px;font-weight:500;color:var(--green)}.speaker-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:4px 0 12px}.speaker-actions button{display:inline-flex;align-items:center;gap:6px}.stations{margin:0 0 12px;min-width:0}.stations-label{margin:0 0 6px;font-size:13px;font-weight:600;color:var(--label-2)}.stations-list{display:flex;gap:10px;margin:0 -16px;padding:0 16px 4px;overflow-x:auto;list-style:none;scroll-snap-type:x proximity;scrollbar-width:none;-webkit-overflow-scrolling:touch}.stations-list::-webkit-scrollbar{display:none}.stations-list li{flex:none;scroll-snap-align:start}.station{display:flex;flex-direction:column;align-items:center;gap:6px;width:76px;padding:0;background:transparent;color:var(--label);font:inherit}.station .media-thumb{width:64px;height:64px;border-radius:12px}.station-title{display:-webkit-box;width:100%;overflow:hidden;font-size:12px;line-height:1.25;text-align:center;-webkit-box-orient:vertical;-webkit-line-clamp:2}.station:disabled{opacity:1}.stations-hint{margin:0 0 12px!important;font-size:13px;text-align:center}html.sheet-open{overflow:hidden}dialog.sheet{width:min(560px,100%);max-width:100%;max-height:min(760px,calc(100dvh - 48px));margin:auto;padding:0;border:0;border-radius:14px;background:var(--bg);color:var(--label);box-shadow:0 20px 60px #0000004d;overflow:hidden}dialog.sheet[open]{display:flex;animation:sheet-in .25s ease}dialog.sheet::backdrop{background:#00000059}@keyframes sheet-in{0%{opacity:0;transform:translateY(24px)}}.sheet-body{display:flex;flex-direction:column;width:100%;min-height:0}.sheet-head{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;padding:12px 16px;border-bottom:.5px solid var(--sep);background:var(--bar-bg);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}.sheet-head h2{max-width:60vw;margin:0;overflow:hidden;font-size:17px;font-weight:600;text-align:center;text-overflow:ellipsis;white-space:nowrap}.sheet-side{display:flex;min-width:0}.sheet-side.end{justify-content:flex-end}.sheet-back{display:inline-flex;align-items:center;gap:0;max-width:100%;margin-left:-6px}.sheet-back span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sheet-done{font-weight:600!important}.sheet-scroll{flex:1;min-height:0;padding:16px 16px max(20px,env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain}.sheet-scroll>.notice:first-child,.sheet-scroll>.muted:first-child{margin-top:0}@media(max-width:720px){dialog.sheet{width:100%;max-height:calc(100dvh - max(44px,env(safe-area-inset-top)));margin:auto 0 0;border-radius:14px 14px 0 0}}.media-play-all{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-bottom:14px}.media-filter{display:flex;align-items:center;gap:6px;margin-bottom:12px;padding:0 10px;border-radius:10px;background:var(--fill);color:var(--label-2)}.media-filter input{min-height:36px;padding:6px 4px;background:transparent}.media-list,.group-list{margin:0;padding:0;overflow:hidden;border-radius:var(--radius-sm);background:var(--card);list-style:none}.media-list li,.group-list li{position:relative;display:flex;align-items:center}.media-list li+li:before,.group-list li+li:before{content:"";position:absolute;top:0;left:72px;right:0;border-top:.5px solid var(--sep)}.group-list li+li:before{left:16px}.media-row{display:flex;flex:1;align-items:center;gap:12px;min-width:0;padding:8px 14px 8px 12px;border-radius:0;background:transparent;color:var(--label);font:inherit;text-align:left}.media-row:active:not(:disabled){transform:none;background:var(--fill)}.media-row:disabled{opacity:1}.media-row>.icon{color:var(--label-3)}.media-thumb{display:grid;place-items:center;flex:none;width:48px;height:48px;overflow:hidden;border-radius:8px;background:var(--fill);color:var(--label-2)}.media-thumb img{width:100%;height:100%;object-fit:cover}.media-text{display:flex;flex:1;flex-direction:column;min-width:0}.media-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-kind{font-size:13px;color:var(--label-2)}.media-quick{margin-right:10px;color:var(--blue)!important}.media-busy{color:var(--label-2)}.group-hint{margin:0 4px 12px!important}.group-row{display:flex;justify-content:space-between;width:100%;padding:10px 16px}.group-name{display:flex;flex-direction:column}.group-sub{font-size:13px;color:var(--label-2)}.group-follow p{margin:0 4px 16px}.energy-now{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:18px 36px;align-items:center;padding:22px 24px}.energy-main p{margin:0}.energy-big{font:700 72px / .95 var(--font-rounded);letter-spacing:-.03em;font-variant-numeric:tabular-nums}.energy-unit{margin-left:6px;font:600 26px / 1 var(--font-rounded);color:var(--label-2)}.energy-flow.export .energy-big{color:var(--green)}.energy-label{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:8px!important;font-size:17px;color:var(--label-2)}.energy-facts dt{display:flex;align-items:center;gap:5px}.phases{grid-column:1 / -1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 20px;font-size:13px;color:var(--label-2)}.phase{display:grid;grid-template-columns:1fr auto;grid-template-areas:"label value" "bar bar";align-items:center;gap:5px 8px}.phase>span:first-child{grid-area:label}.phase-value{grid-area:value;color:var(--label);font-weight:600;font-variant-numeric:tabular-nums;text-align:right}.phase-max{color:var(--label-2);font-weight:400}.phase-bar{grid-area:bar;height:6px;overflow:hidden;border-radius:3px;background:var(--fill)}.phase-bar span{display:block;height:100%;border-radius:3px;background:var(--blue);transition:width .6s ease}.phase.high .phase-bar span{background:var(--orange)}.energy-grid .usage{grid-column:1 / -1}.usage-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px 16px}.usage-head h2{margin:0!important}.period-nav{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;margin:14px 0 18px}.period-label{position:relative;display:inline-flex;align-items:center;gap:8px;min-width:0;padding:7px 14px;border-radius:999px;background:var(--fill);font-size:15px;font-weight:600;cursor:pointer}.period-label .icon{color:var(--blue)}.period-label input[type=date]{position:absolute;inset:0;width:100%;min-height:0;height:100%;padding:0;border:0;opacity:0;cursor:pointer}.period-label:has(input:focus-visible){outline:3px solid color-mix(in srgb,var(--blue) 55%,transparent);outline-offset:2px}.usage-totals{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px 24px;transition:opacity .2s}.usage-totals p{margin:0}.loading{opacity:.45}.usage-bars{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:4px;height:180px;margin:22px 0 0;padding:0;list-style:none;transition:opacity .2s}.usage-bars.n-many{gap:2px}.usage-bars li{display:grid;grid-template-rows:1fr 18px;min-width:0}.usage-bars button{display:flex;align-items:flex-end;justify-content:center;width:100%;height:100%;padding:0;border-radius:6px;background:transparent}.usage-bars button:active:not(:disabled){transform:none}.usage-bars button:hover:not(:disabled){background:var(--fill)}.usage-bars button:disabled{opacity:1}.stack{display:flex;flex-direction:column;width:100%;max-width:26px;min-height:3px;overflow:hidden;border-radius:5px;background:var(--fill)}.stack .part{flex:none}.usage-bars button.split{flex-direction:column;align-items:stretch}.bar-up,.bar-down{display:flex;flex-basis:0;justify-content:center;min-height:0}.bar-up{align-items:flex-end}.bar-down{align-items:flex-start;border-top:1px solid var(--sep)}.stack.export{min-height:2px;background:color-mix(in srgb,var(--orange) 45%,transparent)}.key.export{background:color-mix(in srgb,var(--orange) 45%,transparent)}.legend .key.export{margin-left:10px}.part.grid,.key.grid{background:var(--blue)}.part.sun,.key.sun{background:var(--orange)}.usage-bars li.selected .stack{box-shadow:0 0 0 2px var(--label)}.usage-bars li.future .stack{opacity:.35}.usage-bars .bar-label{margin-top:4px;overflow:hidden;font-size:11px;text-align:center;white-space:nowrap}.usage-foot{min-height:64px;margin-top:12px;padding-top:12px;border-top:.5px solid var(--sep)}.usage-detail p{margin:0}.usage-detail .muted{margin:2px 0 4px}.legend{display:flex;align-items:center;gap:6px;margin:0;font-size:13px;color:var(--label-2)}.legend .key{width:10px;height:10px;border-radius:3px}.legend .key.sun{margin-left:10px}.legend-hint{margin-left:auto}.part.water,.key.water{background:var(--cyan)}.energy-grid .sessions,.energy-grid .devices-card{grid-column:1 / -1}.energy-grid .forecast,.energy-grid .wallbox,.energy-grid .heatpump,.energy-grid .water{align-self:stretch}@media(min-width:700px){.energy-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.energy-grid .battery{grid-column:1 / -1}.battery-contract{margin-top:14px}.battery-grid{display:flex;justify-content:space-between;width:100%;margin-top:4px}.battery-grid>span{display:grid;gap:2px;font-size:15px}.battery-efficiency{margin:12px 0 22px;font-size:15px}.battery-efficiency span{color:var(--label-2)}.battery-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:6px 24px;margin:14px 0 20px}.battery-slider,.battery-price{display:block;font-size:15px}.battery-slider input{width:100%;margin-top:4px}.battery-slider-head{display:flex;justify-content:space-between;gap:8px;color:var(--label-2)}.battery-slider-head strong{color:var(--label);font-variant-numeric:tabular-nums}.battery-price>span:first-child{display:block;color:var(--label-2)}.battery-price-input{display:flex;align-items:center;gap:6px;margin-top:6px;font-weight:600}.battery-price-input input{width:100%;max-width:240px}.battery-loss{color:var(--red)}.battery-totals{transition:opacity .2s}.battery-sub{margin:24px 0 10px;font-size:15px;font-weight:600;color:var(--label-2)}.battery-months{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:4px;margin:0;padding:0;list-style:none}.battery-months li{display:grid;grid-template-rows:80px auto auto;justify-items:center;gap:4px;font-size:12px;min-width:0}.battery-bar{display:flex;align-items:flex-end;width:100%;max-width:26px;height:100%}.battery-bar span{display:block;width:100%;min-height:3px;border-radius:5px;background:var(--green)}.battery-value{font-weight:600;font-variant-numeric:tabular-nums}.battery-label{color:var(--label-2)}.battery-sizes{display:grid;gap:4px;margin:0;padding:0;list-style:none}.battery-sizes button{display:grid;grid-template-columns:70px 1fr auto;align-items:center;gap:10px;width:100%;min-height:0;padding:6px 10px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--label);font:inherit;font-size:15px;text-align:left;cursor:pointer}.battery-sizes button.selected{background:var(--fill);font-weight:600}.battery-size-kwh{grid-column:1;grid-row:1}.battery-size-bar{grid-column:2;grid-row:1;display:block;height:8px;overflow:hidden;border-radius:4px;background:var(--fill)}.battery-size-bar span{display:block;height:100%;border-radius:4px;background:var(--green)}.battery-size-eur{font-variant-numeric:tabular-nums}.battery-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px 24px;margin:22px 0 0}.battery-facts dt{font-size:13px;color:var(--label-2)}.battery-facts dd{margin:2px 0 0;font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}.devices-card .devices{gap:2px;transition:opacity .2s}.devices-card .devices>li{display:block}.device-row{display:grid;grid-template-columns:minmax(0,12em) 1fr 5.5em;align-items:center;gap:12px;width:100%;padding:6px 0;border-radius:8px;background:transparent;color:inherit;font:inherit;font-size:15px;text-align:left}.device-row:active:not(:disabled){transform:none;background:var(--fill)}.devices li.idle .device-row{color:var(--label-2)}.device-name{display:flex;flex-direction:column;min-width:0;line-height:1.25}.device-now{overflow:hidden;font-size:12px;color:var(--label-2);text-overflow:ellipsis;white-space:nowrap}.device-detail{padding:4px 0 10px}.device-detail .muted{margin-top:6px;font-size:13px}.usage-bars.mini{height:90px;margin-top:6px}.devices-card .usage-bars.mini li{display:grid;grid-template-columns:none;grid-template-rows:minmax(0,1fr) 16px;gap:0;height:100%;font-size:11px}.stack-wrap{display:flex;align-items:flex-end;justify-content:center;height:100%;min-height:0}.part.device{background:var(--indigo)}.forecast .muted-inline{display:inline-flex;align-items:center;gap:6px}.forecast .muted-inline .icon{color:var(--orange)}.forecast-progress{display:block;height:6px;margin-top:14px;overflow:hidden;border-radius:3px;background:var(--fill)}.forecast-progress span{display:block;height:100%;border-radius:3px;background:var(--orange)}.forecast-days{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:6px;margin:18px 0 0;padding:0;list-style:none}.forecast-days li{display:grid;grid-template-rows:auto auto 70px auto auto;justify-items:center;gap:4px;font-size:13px}.forecast-day{color:var(--label-2);font-weight:600;text-transform:capitalize}.forecast-icon{color:var(--label-2)}.forecast-icon.zon,.forecast-icon.half{color:var(--orange)}.forecast-icon.regen,.forecast-icon.onweer{color:var(--blue)}.forecast-bar{display:flex;align-items:flex-end;width:100%;max-width:22px;height:100%}.forecast-bar span{display:block;width:100%;min-height:3px;border-radius:5px;background:color-mix(in srgb,var(--orange) 80%,var(--yellow))}.forecast-kwh{font-weight:600;font-variant-numeric:tabular-nums}.forecast-temp{color:var(--label-2)}.energy-page{padding-bottom:84px}.period-bar{position:fixed;z-index:15;left:0;right:0;bottom:calc(76px + env(safe-area-inset-bottom));display:flex;justify-content:center;padding:0 12px;pointer-events:none;animation:bar-in .35s ease}@keyframes bar-in{0%{opacity:0;transform:translateY(16px)}}.period-bar-inner{display:flex;align-items:center;flex-wrap:wrap;justify-content:center;gap:6px 10px;max-width:100%;padding:7px 8px;border:.5px solid var(--sep);border-radius:22px;background:var(--bar-bg);box-shadow:0 8px 30px #00000024,0 1px 3px #00000014;-webkit-backdrop-filter:saturate(180%) blur(22px);backdrop-filter:saturate(180%) blur(22px);pointer-events:auto}.period-bar .segmented{background:var(--fill)}.period-bar-nav{display:flex;align-items:center;gap:4px}.period-bar .icon-btn.small{width:30px;height:30px}.period-bar-label{position:relative;display:inline-grid;justify-items:center;min-width:0;padding:4px 8px;border-radius:8px;font-size:14px;font-weight:600;white-space:nowrap;cursor:pointer;font-variant-numeric:tabular-nums}.period-bar-label input[type=date]{position:absolute;inset:0;width:100%;min-height:0;height:100%;padding:0;opacity:0;cursor:pointer}.period-bar-label:has(input:focus-visible){outline:3px solid color-mix(in srgb,var(--blue) 55%,transparent)}.period-bar-label>span{grid-area:1 / 1}.period-bar-sizer,.period-bar-now.hidden{visibility:hidden}.period-bar-now{padding:4px 10px;border-radius:999px;background:color-mix(in srgb,var(--blue) 14%,transparent);color:var(--blue);font-size:13px}@media(min-width:1024px){.period-bar{left:260px;bottom:22px}}@media(max-width:520px){.energy-page{padding-bottom:120px}.period-bar-inner{width:100%}.period-bar .segmented{flex:1 1 100%;display:flex}}.coverage{margin:12px 0 14px}.coverage-text{margin:0}.coverage-bar{display:flex;height:10px;margin-top:10px;overflow:hidden;border-radius:5px;background:var(--fill)}.coverage-bar span{height:100%}.coverage-bar span+span{box-shadow:inset 1px 0 0 var(--card)}.coverage-bar .coverage-rest-known{background:var(--label-3)}.coverage-legend{display:flex;flex-wrap:wrap;gap:4px 12px;margin:8px 0 0;font-size:12px;color:var(--label-2)}.coverage-legend>span{display:inline-flex;align-items:center;gap:5px}.coverage-legend .key{width:9px;height:9px;border-radius:3px}.coverage-legend .key.rest{background:var(--fill-2)}.heatpump-parts{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--label-2)}.heatpump-parts .key{display:inline-block;width:9px;height:9px;margin-right:4px;border-radius:3px}.heatpump .usage-bars.mini{height:110px;margin-top:14px}.heatpump .usage-bars.mini li{display:grid;grid-template-rows:minmax(0,1fr) 16px;height:100%;font-size:11px}.heatpump-months{margin:14px 0 0;padding:0;list-style:none;font-size:14px}.heatpump-months li{display:grid;grid-template-columns:1fr auto;gap:0 10px;padding:6px 0;border-top:.5px solid var(--sep)}.heatpump-months .muted-inline{grid-column:1 / -1;font-size:12px}.heatpump-month{text-transform:capitalize}.heatpump-form .search{margin-top:12px}.striped{background-image:repeating-linear-gradient(-45deg,rgba(255,255,255,.55) 0 2px,transparent 2px 5px)!important}.striped-key{display:inline-block;width:14px;height:9px;margin-right:4px;border-radius:3px;background-color:var(--label-3);background-image:repeating-linear-gradient(-45deg,rgba(255,255,255,.6) 0 2px,transparent 2px 5px);vertical-align:0}.heatpump-meters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:6px}.heatpump-meter{min-width:0;padding:12px 14px 8px;border-radius:14px;background:var(--card-2)}.heatpump-meter p{margin:0}.heatpump-meter-head{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--label-2)}.heatpump-meter-head .key{width:9px;height:9px;border-radius:3px}.heatpump-meter-total{margin-top:4px!important}.heatpump-meter .heatpump-bars{height:80px;margin-top:8px}.heatpump-legend{grid-column:1 / -1;margin:0}.part.fault,.key.fault{background-color:var(--fill-2);background-image:repeating-linear-gradient(-45deg,var(--orange) 0 2px,transparent 2px 6px);opacity:.6}@media(max-width:720px){.heatpump-meters{grid-template-columns:1fr}}.energy-grid .charging-months{grid-column:1 / -1}.cm-section{margin:16px 0 8px;font-size:13px;font-weight:600;color:var(--label-2);text-transform:uppercase;letter-spacing:.03em}.cm-totals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.cm-total{display:flex;flex-direction:column;min-width:0;padding:12px 14px;border-radius:14px;background:var(--card-2)}.cm-total-label{font-size:13px;color:var(--label-2)}.cm-total-big{margin:2px 0 4px;font:700 28px / 1.1 var(--font-rounded);font-variant-numeric:tabular-nums}.cm-total-sub{font-size:13px;line-height:1.4;color:var(--label-2);overflow-wrap:anywhere}.cm-dot{display:inline-block;flex:none;width:8px;height:8px;margin-right:6px;border-radius:50%;background:var(--fill-2);vertical-align:1px}.priv .cm-dot{background:var(--indigo)}.self .cm-dot{background:var(--orange)}.work .cm-dot{background:var(--green)}.cm-head,.cm-list li{display:grid;grid-template-columns:7.5em repeat(3,minmax(0,1fr));align-items:center;gap:8px 14px}.cm-head{padding:0 14px 6px;font-size:12px;font-weight:600;color:var(--label-2)}.cm-col small{display:block;margin-left:14px;font-size:11px;font-weight:400}.cm-list{margin:0;padding:0;overflow:hidden;border-radius:var(--radius-sm);background:var(--card-2);list-style:none}.cm-list li{position:relative;padding:10px 14px}.cm-list li+li:before{content:"";position:absolute;top:0;left:14px;right:0;border-top:.5px solid var(--sep)}.cm-list li.selected{background:color-mix(in srgb,var(--blue) 9%,transparent)}.cm-month{font-weight:600;text-transform:capitalize}.cm-cell{display:flex;flex-direction:column;min-width:0;font-size:14px;font-variant-numeric:tabular-nums}.cm-cell.zero{opacity:.4}.cm-none{grid-column:2 / -1;font-size:13px;color:var(--label-2)}.cm-cell .cm-label{display:none}.cm-kwh{font-weight:600}.cm-eur{font-size:13px;color:var(--label-2)}@media(max-width:720px){.cm-totals{grid-template-columns:1fr}.cm-head{display:none}.cm-list li{grid-template-columns:1fr;gap:4px}.cm-month{margin-bottom:2px}.cm-list li.empty{grid-template-columns:auto 1fr;align-items:baseline;gap:10px}.cm-list li.empty .cm-month{margin:0}.cm-none{grid-column:auto;text-align:right}.cm-cell{display:grid;grid-template-columns:minmax(0,1fr) auto 4.8em;align-items:baseline;gap:8px}.cm-cell .cm-label{display:block;overflow:hidden;font-size:13px;color:var(--label-2);text-overflow:ellipsis;white-space:nowrap}.cm-eur{text-align:right}}.charge-prompt{margin-top:16px;padding:14px 16px;border-radius:14px;background:color-mix(in srgb,var(--green) 12%,var(--card))}.charge-prompt p{margin:0}.charge-prompt .muted{margin-top:2px}.charge-prompt-title .icon{color:var(--green)}.charge-prompt-q{margin-top:12px!important;font-weight:600}.charge-prompt-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:10px}.year-nav{margin:0}.period-label.static{cursor:default;font-variant-numeric:tabular-nums}.session-list .segmented{flex:none}.session-choice{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px 8px}.sessions .period-nav{margin:12px 0 14px}.session-import{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;margin-top:14px;font-size:13px}.session-more{margin-top:12px}.sessions .meta a{white-space:nowrap}.rate-form{margin-top:8px}.devices{display:grid;gap:12px;margin:0}.devices li{display:grid;grid-template-columns:minmax(0,9em) 1fr 4.5em;align-items:center;gap:12px;font-size:15px}.devices li.idle{color:var(--label-2)}.device-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-bar{height:6px;overflow:hidden;border-radius:3px;background:var(--fill)}.device-bar span{display:block;height:100%;border-radius:3px;background:var(--indigo)}.device-w{text-align:right;font-variant-numeric:tabular-nums}@media(max-width:720px){.car{grid-template-columns:132px minmax(0,1fr);grid-template-areas:"ring head" "body body";gap:16px;padding:18px}.ring{max-width:132px}.range{font-size:34px}.range .unit{font-size:14px}.level{margin-top:2px!important;font-size:13px}.car-head{align-self:center}.facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}.facts dd{font-size:21px}.car-map{height:170px}.energy-now{grid-template-columns:1fr;padding:18px}.energy-big{font-size:58px}.energy-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.mfa-scan{grid-template-columns:1fr}.mfa-scan img,.qr-empty{justify-self:center}}@media(max-width:520px){:root{--gap: 12px}.page-head{padding-top:10px}.panel,.speaker{padding:16px}.panel h2{font-size:20px}.grid,.car-grid{grid-template-columns:minmax(0,1fr)}.car-tile{grid-template-columns:1fr;grid-template-rows:auto auto auto;row-gap:6px}.car-tile .tile-icon{grid-row:auto}.lamps,.members,.usage-totals{grid-template-columns:repeat(2,minmax(0,1fr))}.phases{grid-template-columns:1fr}.device-row{grid-template-columns:minmax(0,1fr) 4em 5em}.sessions .usage-totals,.usage .usage-cost{grid-column:1 / -1}.sessions .usage-totals{grid-template-columns:1fr}.session-list .row-main{flex-wrap:wrap;gap:8px}.session-list .row-main>div:first-child{flex-basis:100%}.session-choice{justify-content:flex-start}.big{font-size:32px}.mid{font-size:24px}.usage-bars{height:150px}.legend{flex-wrap:wrap}.legend-hint{flex-basis:100%;margin-left:0}.subtabs a{padding:5px 8px}.level-row{display:grid;grid-template-columns:1fr}.segmented{justify-self:start}.summary-bar{padding:14px 16px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.unit-switch label{min-width:44px}.devices-period{display:block;margin:2px 0 0}.row-actions{display:flex;flex:none;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px 14px}.contracts .row-title .tag{margin-left:8px}.contract-form{margin-top:16px;padding-top:14px;border-top:.5px solid var(--sep)}.contract-form h4{margin:0 0 10px;font-size:15px}.year-switch{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-variant-numeric:tabular-nums}.year-switch .icon-btn:not(.small){width:36px;height:36px;background:var(--fill)}.session-warnings{margin:6px 0 0;padding:0;list-style:none;color:var(--orange);font-size:13px;font-weight:500}.session-warnings li{display:flex;align-items:center;gap:6px}.admin-session.flagged:after{content:"";position:absolute;top:10px;bottom:10px;left:0;width:3px;border-radius:0 3px 3px 0;background:var(--orange)}.rows.deleted .row-title{color:var(--label-2);text-decoration:line-through}button.danger.small-btn{background:var(--red);color:#fff}.car-charge-list{max-height:420px;overflow-y:auto}.car-charge-list>li{padding:0!important}.car-charge-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;padding:10px 16px;border-radius:0;background:transparent;color:var(--label);font:inherit;text-align:left}.car-charge-row:active:not(:disabled){transform:none}.car-charge.open .car-charge-row{background:color-mix(in srgb,var(--green) 10%,transparent)}.car-charge-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:color-mix(in srgb,var(--green) 18%,transparent);color:var(--green)}.car-charge.away .car-charge-icon{background:color-mix(in srgb,var(--indigo) 18%,transparent);color:var(--indigo)}.car-charge-main{display:flex;flex-direction:column;gap:2px;min-width:0}.car-charge-main .row-sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.car-charge-kwh{display:flex;flex-direction:column;align-items:flex-end;font-weight:600;color:var(--green);font-variant-numeric:tabular-nums}.charge-battery{position:relative;display:block;height:5px;margin-top:3px;border-radius:3px;background:var(--fill);overflow:hidden}.charge-battery-had{position:absolute;top:0;bottom:0;left:0;background:var(--label-3)}.charge-battery-added{position:absolute;top:0;bottom:0;background:var(--green)}.car-charge-facts{margin:0;padding:4px 16px 14px 60px}.dd-small{font-size:15px!important}.car-year-metric{display:flex;width:100%;margin-top:14px}.car-year-bars{margin-top:14px}.part.km{background:var(--blue)}.part.kwh{background:var(--green)}.part.per100{background:var(--indigo)}@media(max-width:700px){.subtabs{max-width:100%;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.subtabs::-webkit-scrollbar{display:none}.subtabs a{flex:none;padding:6px 12px}}.link.subtle{color:var(--label-2)}@media(min-width:900px){.devices-card ul.devices{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2px 48px}.devices-card ul.devices>li.open{grid-column:1 / -1}.energy-grid .usage.water{grid-column:auto}}.car-year .part.home,.car-year .key.home{background:var(--green)}.car-year .part.away,.car-year .key.away{background:var(--indigo)}.car-year .part.unknown,.car-year .key.unknown{background:var(--label-3)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.status-summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px}.status-summary h3{margin:0}.status-summary p{margin:2px 0 0}.status-summary-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;color:#fff;background:var(--green)}.status-summary.let-op .status-summary-icon{background:var(--orange)}.status-summary.storing .status-summary-icon{background:var(--red)}.status-list{margin-top:14px}.status-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:12px}.status-dot{display:grid;place-items:center;width:24px;height:24px;margin-top:1px;border-radius:50%;color:#fff;background:var(--green)}.status-item.let-op .status-dot{background:var(--orange)}.status-item.storing .status-dot{background:var(--red)}.status-main .row-title{margin:0}.status-main .row-sub{margin:2px 0 0;white-space:normal}.status-link{display:inline-flex;align-items:center;gap:2px;padding-top:2px;color:var(--blue);font-size:15px;white-space:nowrap;text-decoration:none}.status-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--gap);margin-top:var(--gap)}.status-facts .facts{margin:8px 0 0}.status-counts{margin:8px 0 0;padding:0;list-style:none}.status-counts li{display:flex;justify-content:space-between;padding:6px 0;border-top:.5px solid var(--sep)}@media(max-width:520px){.status-item{grid-template-columns:auto minmax(0,1fr)}.status-link{grid-column:2}}.last-command{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;width:100%;margin-top:12px;padding:10px 12px;border-radius:var(--radius-sm);background:var(--fill);color:var(--label);font:inherit;font-size:14px;text-align:left}.last-command:active:not(:disabled){transform:none}.last-command-text{display:flex;flex-direction:column;min-width:0}.last-command-text>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.last-command-label{font-size:12px;color:var(--label-2)}.last-command-time{color:var(--label-2);font-variant-numeric:tabular-nums;white-space:nowrap}.last-command svg{color:var(--label-3)}.last-command-outcome.ok,.command-outcome.ok{color:var(--green)}.last-command-outcome.fail,.command-outcome.fail{color:var(--red)}.command-list li{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 16px}.command-time{color:var(--label-2);font-variant-numeric:tabular-nums}.command-main{display:flex;flex-direction:column;min-width:0}.command-day+.command-day{margin-top:14px}.command-outcome.ok{background:color-mix(in srgb,var(--green) 14%,transparent)}.command-outcome.fail{background:color-mix(in srgb,var(--red) 14%,transparent)}.status-item.accepted .status-dot{background:var(--label-3)}.status-item.accepted .row-title{color:var(--label-2)}.status-accepted{font-style:italic}.status-actions{display:flex;gap:12px;margin-top:8px}.status-actions .link{font-size:14px}.status-actions a.link{align-self:center;color:var(--blue);text-decoration:none}.kwh-edit{margin-top:10px}.kwh-edit .search{max-width:200px}.kwh-edit .actions{margin-top:8px;align-items:center}.row-sub.corrected{color:var(--blue)}.cm-totals.three{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:720px){.cm-totals.three{grid-template-columns:1fr}}.cm-plus{color:var(--green);font-weight:600}.cm-minus{color:var(--red);font-weight:600}.cm-month svg{margin-left:6px;color:var(--green);vertical-align:-2px}.cm-note{font-size:11px}.cm-check{grid-column:1 / -1;font-size:13px;color:var(--label-2);font-variant-numeric:tabular-nums}.cm-check.ok{color:var(--green)}.cm-check.warn{color:var(--orange)}.cm-settle{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;font-size:13px;color:var(--label-2)}.cm-settle .link{font-size:13px}.settle-form{display:grid;gap:12px}.settle-form .facts{margin:0}.settle-diff{margin:-4px 0 0;font-size:14px}.usage-net{color:var(--label)!important;font-weight:600}.nowrap{white-space:nowrap}.cm-month-open{display:flex;flex-direction:column;align-items:flex-start;min-height:0;padding:0;background:none;color:var(--label);font:inherit;font-weight:600;text-align:left;text-transform:capitalize}.cm-month-open:active:not(:disabled){transform:none}.cm-month-count{display:inline-flex;align-items:center;gap:2px;font-size:12px;font-weight:400;color:var(--blue);text-transform:none}.cm-month-open svg{vertical-align:-2px}@media(max-width:720px){.cm-month-open{flex-direction:row;align-items:baseline;justify-content:space-between;width:100%}}.month-sessions-sum{margin:0 0 10px}.notice-soft{display:flex;align-items:center;gap:6px;margin:0 0 12px;padding:10px 12px;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--green) 12%,transparent);font-size:14px}.month-sessions li{display:block;padding:0}.month-session-row{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:0;padding:10px 16px;background:none;color:var(--label);font:inherit;text-align:left}.month-session-row:active:not(:disabled){transform:none}.month-session-row>svg{flex:none;color:var(--label-3);transition:transform .2s}.month-session.open .month-session-row>svg{transform:rotate(90deg)}.month-session-main{display:flex;flex-direction:column;min-width:0}.month-session-main .row-title .tag{margin-left:6px}.tag-warn{background:color-mix(in srgb,var(--orange) 18%,transparent);color:var(--orange)}.month-session.flagged{box-shadow:inset 3px 0 0 var(--orange)}.month-session-detail{display:grid;gap:12px;padding:0 16px 14px}.month-session-detail .facts{margin:0}.month-session-choice{display:flex;width:100%}.month-session-choice label{padding:7px 4px;font-size:12px}.month-session-detail .kwh-edit{margin-top:0}.month-session-detail .actions{flex-wrap:wrap}.update-banner{position:fixed;top:calc(env(safe-area-inset-top,0px) + 10px);left:50%;z-index:60;display:flex;align-items:center;gap:10px;width:max-content;max-width:calc(100vw - 24px);padding:8px 8px 8px 14px;border-radius:999px;background:var(--card);box-shadow:0 6px 24px #00000029;color:var(--label);font-size:14px;transform:translate(-50%);animation:update-in .3s ease-out}.update-banner svg{flex:none;color:var(--blue)}.update-banner button{flex:none;border-radius:999px}@keyframes update-in{0%{opacity:0;transform:translate(-50%,-12px)}}@media(min-width:1024px){.with-nav .update-banner{left:calc(50% + 130px)}}.status-opens{margin-top:var(--gap)}.open-kind.gestart{color:var(--green);font-weight:600}.open-kind.herladen{color:var(--orange);font-weight:600}.open-kind.fout{color:var(--red);font-weight:600}.account-refresh{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}.account-refresh h3{margin:0}.account-refresh p{margin:4px 0 0}.chip-offline{background:color-mix(in srgb,var(--red) 14%,transparent);color:var(--red);font-weight:600}.car-offline{margin-top:10px;padding:12px 14px;border-radius:14px;background:color-mix(in srgb,var(--red) 9%,transparent)}.car-offline p{margin:0}.car-offline-title{color:var(--red);font-weight:600;font-size:15px}.car-offline-text{margin-top:4px!important;font-size:14px;color:var(--label-2)}.car-offline-actions{display:flex;align-items:center;gap:14px;margin-top:10px}.car-offline .notice,.car-offline .confirm{margin-top:8px}.tabbar a .tab-icon{position:relative;display:inline-flex;overflow:visible}.tab-badge,.side-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--red);color:#fff;font-size:12px;font-weight:600;line-height:1;font-variant-numeric:tabular-nums}.tabbar a .tab-badge{position:absolute;top:-5px;right:-10px;overflow:visible;box-shadow:0 0 0 2px var(--card)}.tabbar a .side-badge{display:none}@media(min-width:1024px){.tabbar a .tab-badge{display:none}.tabbar a .side-badge{display:inline-flex;margin-left:auto;overflow:visible}}.device-title{display:flex;align-items:center;gap:6px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-label{min-width:0;overflow:hidden;text-overflow:ellipsis}.phase-tag{flex:none;padding:1px 6px;border-radius:6px;background:var(--fill);color:var(--label-2);font-size:11px;font-weight:600;letter-spacing:.02em;font-variant-numeric:tabular-nums}.phase-tag.unsure{font-weight:500;opacity:.8}.eflux-rows .eflux-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.eflux-row.geen .row-title,.eflux-row.afgesloten .row-title{color:var(--label-2)}.eflux-kwh{display:flex;align-items:center;gap:10px;margin:12px 0;font-size:14px}.eflux-month{margin-top:14px;padding-top:12px;border-top:.5px solid var(--sep)}.eflux-check{margin-top:8px}.eflux-check.ok{color:var(--green)}.eflux-check.warn{color:var(--orange)}.eflux-sub{margin-top:10px}.eflux-choice{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.eflux-month .eflux-choice .small-btn{margin-top:0}.eflux-month .small-btn{margin-top:8px}.ptr{position:fixed;top:env(safe-area-inset-top);left:50%;z-index:60;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--card);color:var(--label-2);box-shadow:0 2px 10px #00000026;pointer-events:none}.ptr span{display:grid}.ptr.ready,.ptr.busy{color:var(--blue)}.ptr.busy span{animation:climate-spin .8s linear infinite}.notification-rules .row-main{justify-content:flex-start;align-items:flex-start;gap:12px}.rule-toggle{padding-top:2px}.rule-text{flex:1;min-width:0}.notification-rules .row-actions{justify-content:flex-start;margin:6px 0 0 63px}.rule-form{margin-top:12px}.rule-form .wide{grid-column:1 / -1}.rule-form small{display:block;margin-top:4px;font-size:13px}.time-range{display:flex;align-items:center;gap:8px}.time-range input{flex:1;min-width:0}.danger-text{color:var(--red)}.sent-list p{margin:0}.push-prompt{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 96px);z-index:70;display:flex;align-items:flex-start;gap:12px;width:min(440px,calc(100vw - 32px));padding:16px;border-radius:20px;background:var(--card);box-shadow:0 10px 40px #00000038;color:var(--label);transform:translate(-50%);animation:push-in .3s ease-out}.push-prompt p{margin:0}.push-prompt .row-sub{margin-top:4px}.push-prompt .actions{margin-top:12px;gap:10px}.push-prompt-icon{display:grid;flex:none;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--red);color:#fff}@keyframes push-in{0%{opacity:0;transform:translate(-50%,16px)}}@media(min-width:1024px){.with-nav .push-prompt{left:calc(50% + 130px);bottom:32px}}.version-changes{margin:6px 0 0;padding-left:18px;list-style:disc;color:var(--label-2);font-size:15px;line-height:1.4}.version-changes li+li{margin-top:4px}.stack.dyn-dearer,.key.dyn-dearer{background:var(--red)}.stack.dyn-cheaper,.key.dyn-cheaper{background:var(--green)}.legend .key.dyn-cheaper{margin-left:10px}.dynamic-verdict{margin:14px 0 0;font-size:15px;font-weight:600}.dynamic-verdict.cheaper{color:var(--green)}.dynamic-verdict.dearer{color:var(--red)}:root{--bg: #f5f4ee;--card: #fdfcf9;--card-2: #f0eee6;--sidebar: #efede5;--sidebar-on: #e3e0d5;--fill: rgba(31, 30, 29, .06);--fill-2: rgba(31, 30, 29, .1);--label: #1f1e1d;--label-2: #6b6a63;--label-3: #a9a79e;--sep: #e4e1d7;--bar-bg: rgba(245, 244, 238, .9);--tile-off: #f0eee6;--tile-on: #fbf0d4;--tile-on-text: #1f1e1d;--switch-off: #e0ddd2;--seg-on: #ffffff;--blue: #c96442;--accent-soft: #f4e3db;--green: #5f8a4e;--orange: #d38f2e;--yellow: #e2b13c;--red: #c2453b;--indigo: #7b6fb5;--cyan: #4e9aae;--sky: #5a87b5;--teal: #4e9aae;--pink: #bf5f78;--gray: #9c9a92;--font-serif: ui-serif, "New York", "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--font-rounded: var(--font);--radius: 18px;--radius-sm: 10px;--shadow: 0 1px 2px rgba(31, 30, 29, .04);--gap: 14px;--sidebar-w: 280px}@media(prefers-color-scheme:dark){:root{--bg: #262624;--card: #30302e;--card-2: #393835;--sidebar: #1f1e1d;--sidebar-on: #393835;--fill: rgba(250, 249, 245, .07);--fill-2: rgba(250, 249, 245, .12);--label: #f5f4ee;--label-2: rgba(245, 244, 238, .62);--label-3: rgba(245, 244, 238, .32);--sep: #44433f;--bar-bg: rgba(38, 38, 36, .9);--tile-off: #393835;--tile-on: #f5f4ee;--tile-on-text: #1f1e1d;--switch-off: #4a4945;--seg-on: #5a5955;--blue: #d97757;--accent-soft: rgba(217, 119, 87, .18);--green: #8daa77;--orange: #e0a54e;--yellow: #ebc25a;--red: #e06b5f;--indigo: #9c91d1;--cyan: #6fb4c6;--sky: #7da4cc;--teal: #6fb4c6;--pink: #d88296;--shadow: none}}body{background:var(--bg);letter-spacing:0}h1,h2,h3{letter-spacing:-.005em}.panel,.setup,.summary-bar,.car,.energy-now,.speaker,.edit-panel,.tile{border:1px solid var(--sep);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow)}.panel h2,.setup h2,.sheet-head h2{font-family:var(--font-serif);font-weight:500;letter-spacing:0}.panel h2{font-size:21px}button{border-radius:var(--radius-sm);font-weight:600}button.secondary{background:var(--fill);color:var(--label)}button.link{border-radius:4px}.small-btn{border-radius:8px}.app-bar{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:8px;height:calc(52px + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) max(10px,env(safe-area-inset-right)) 0 max(10px,env(safe-area-inset-left));border-bottom:1px solid var(--sep);background:var(--bar-bg);-webkit-backdrop-filter:saturate(140%) blur(16px);backdrop-filter:saturate(140%) blur(16px)}.bar-btn{position:relative;display:grid;place-items:center;width:40px;height:40px;padding:0;border-radius:10px;background:none;color:var(--label)}button.bar-btn:active:not(:disabled){background:var(--fill);transform:none}.bar-dot{position:absolute;top:8px;right:7px;width:9px;height:9px;border:2px solid var(--bg);border-radius:50%;background:var(--red)}.app-bar-title{display:inline-flex;align-items:center;justify-content:center;gap:7px;color:var(--label);font-family:var(--font-serif);font-size:19px;font-weight:500}.spark{flex:none;color:var(--blue)}.avatar,.avatar.small{display:grid;place-items:center;flex:none;margin:0;border-radius:50%;background:var(--label);color:var(--bg);font-weight:600;letter-spacing:0;box-shadow:none}.avatar.small{width:34px;height:34px;font-size:13px;justify-self:end}.sidebar{position:fixed;z-index:40;top:0;bottom:0;left:0;display:flex;flex-direction:column;gap:4px;width:min(var(--sidebar-w),86vw);padding:calc(14px + env(safe-area-inset-top,0px)) 12px calc(14px + env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left));overflow-y:auto;border-right:1px solid var(--sep);background:var(--sidebar);transform:translate(-102%);transition:transform .28s cubic-bezier(.2,.8,.2,1)}.sidebar.open{transform:none;box-shadow:0 0 40px #0000002e}.scrim{position:fixed;z-index:39;inset:0;background:#14141352;opacity:0;pointer-events:none;transition:opacity .25s}html.drawer-open .scrim{opacity:1;pointer-events:auto}html.drawer-open{overflow:hidden}.sidebar-brand{display:flex;align-items:center;gap:9px;margin:0 4px 14px 10px;min-height:40px;font-family:var(--font-serif);font-size:22px;font-weight:500}.sidebar-close{margin-left:auto}.sidebar-links{display:flex;flex-direction:column;gap:2px}.sidebar-links a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;color:var(--label);font-size:16px;font-weight:500}.sidebar-links a .icon{color:var(--label-2)}.sidebar-links a:hover{background:var(--fill)}.sidebar-links a[aria-current=page]{background:var(--sidebar-on);font-weight:600}.sidebar-links a[aria-current=page] .icon{color:var(--blue)}.sidebar-links .side-badge{margin-left:auto}.sidebar-label{margin:18px 12px 6px;font-size:12px;font-weight:600;color:var(--label-2);text-transform:uppercase;letter-spacing:.05em}.sidebar-account{display:flex;align-items:center;gap:10px;margin-top:auto;padding:12px 10px 4px;border-top:1px solid var(--sep);color:var(--label)}.sidebar-account.current .sidebar-account-text>span:first-child{color:var(--blue)}.sidebar-account-text{display:flex;flex-direction:column;min-width:0;font-size:15px;font-weight:600}.sidebar-account-sub{font-size:13px;font-weight:400;color:var(--label-2)}@media(min-width:1024px){.app-bar,.scrim,.sidebar-close{display:none}.sidebar{width:var(--sidebar-w);transform:none;transition:none;box-shadow:none!important}.app.with-nav{display:block;padding-left:var(--sidebar-w)}html.drawer-open{overflow:visible}.with-nav .content{padding-left:40px;padding-right:40px}}.content{padding-top:8px}.with-nav .content{padding-bottom:calc(48px + env(safe-area-inset-bottom,0px))}.page-head{display:block;padding:18px 2px}.page-head h1{font-family:var(--font-serif);font-size:32px;font-weight:500;letter-spacing:-.01em}.home-head{padding:26px 4px 20px;text-align:center}.home-head h1{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px;font-size:32px;line-height:1.15}.home-head .status-line{justify-content:center}.page-date{margin:0 0 6px;font-size:14px;color:var(--label-2)}.page-date:first-letter{text-transform:uppercase}.overview{display:grid;gap:18px}.shortcuts{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.shortcut,.fold-chip{display:inline-flex;flex:none;align-items:center;gap:6px;padding:7px 12px;border:1px solid var(--sep);border-radius:10px;background:var(--card);color:var(--label);font:500 14px var(--font);box-shadow:none}.shortcut .icon{color:var(--label-2)}.shortcut:hover,.fold-chip:hover{border-color:var(--label-3)}button.fold-chip:active:not(:disabled){background:var(--fill);transform:none}.tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}@media(min-width:760px){.tiles{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}}.tile{position:relative;display:flex;flex-direction:column;gap:12px;min-width:0;min-height:132px;padding:14px 16px 16px;color:var(--label);transition:border-color .15s,transform .12s;-webkit-user-select:none;user-select:none}.tile:hover{border-color:var(--label-3)}.tile:active{transform:scale(.985)}.tile.wide{grid-column:span 2}.tile-head{display:flex;align-items:center;gap:9px;min-width:0;font-size:15px;font-weight:600}.tile-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tile-icon{display:grid;flex:none;place-items:center;width:30px;height:30px;border-radius:9px;background:color-mix(in srgb,var(--tone) 15%,transparent);color:var(--tone)}.tile-chevron{margin-left:auto;color:var(--label-3)}.tone-blue{--tone: var(--sky)}.tone-green{--tone: var(--green)}.tone-orange{--tone: var(--orange)}.tone-yellow{--tone: var(--yellow)}.tone-red{--tone: var(--red)}.tone-teal{--tone: var(--teal)}.tone-cyan{--tone: var(--cyan)}.tone-pink{--tone: var(--pink)}.tone-gray{--tone: var(--gray)}.tile-body{display:flex;flex-direction:column;gap:4px;min-width:0;margin-top:auto}.tile-row{display:flex;align-items:center;gap:14px;min-width:0}.tile-main{display:flex;flex:1;flex-direction:column;gap:2px;min-width:0}.tile-value{font:600 28px / 1.05 var(--font);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.tile-value small{font-size:15px;font-weight:500;color:var(--label-2);letter-spacing:0}.tile-value.text{font-family:var(--font-serif);font-size:21px;font-weight:500;line-height:1.2;letter-spacing:0}.tile-value.export{color:var(--green)}.tile-sub{font-size:14px;color:var(--label-2)}.tile-sub.live{color:var(--green);font-weight:600}.tile-sub.bad{color:var(--red);font-weight:600}.clamp{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tile-side{display:flex;flex:none;flex-direction:column;align-items:flex-end;gap:2px;text-align:right}.tile-side-value{display:inline-flex;align-items:center;gap:4px;font-size:17px;font-weight:600;font-variant-numeric:tabular-nums}.tile-side-value.sun .icon{color:var(--orange)}.tile-side-label,.tile-foot{font-size:12px;color:var(--label-2)}.tile-foot{margin-top:6px;padding-top:10px;border-top:1px solid var(--sep);font-size:13px}.mini-ring{position:relative;flex:none;width:64px;height:64px}.mini-ring svg{width:100%;height:100%}.mini-ring-text{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font:600 16px / 1 var(--font);font-variant-numeric:tabular-nums}.mini-ring-text small{font-size:11px;color:var(--label-2)}.mini-phases{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:10px}.mini-phase{height:5px;overflow:hidden;border-radius:999px;background:var(--fill-2)}.mini-phase span{display:block;height:100%;border-radius:inherit;background:var(--orange)}.mini-phase.high span{background:var(--red)}.tile-eq{display:flex;flex:none;align-items:flex-end;justify-content:center;gap:4px;width:50px;height:50px;padding:12px;border-radius:12px;background:var(--fill)}.tile-eq span{width:5px;height:30%;border-radius:3px;background:var(--label-3)}.tile-eq.on{background:color-mix(in srgb,var(--pink) 14%,transparent)}.tile-eq.on span{background:var(--pink);animation:eq 1s ease-in-out infinite alternate}.tile-eq.on span:nth-child(2){animation-delay:-.4s}.tile-eq.on span:nth-child(3){animation-delay:-.7s}@keyframes eq{0%{height:25%}to{height:100%}}@media(prefers-reduced-motion:reduce){.tile-eq.on span{animation:none;height:70%}.sidebar,.scrim{transition:none}}.quick-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.glass-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border:1px solid var(--sep);background:var(--card);color:var(--label);font-size:15px}.glass-btn .icon{color:var(--yellow)}.fold{display:grid;min-width:0;scroll-margin-top:calc(env(safe-area-inset-top,0px) + 64px)}.fold:empty{display:none}.fold>*{min-width:0}.fold-head{cursor:pointer;-webkit-user-select:none;user-select:none}.fold-head h2{display:flex;align-items:center;gap:8px}.fold-head h2[role=button]:focus-visible{outline-offset:4px}.fold-head h2:after{content:"";flex:none;width:7px;height:7px;margin:-4px 0 0 2px;border-right:2px solid var(--label-3);border-bottom:2px solid var(--label-3);transform:rotate(45deg);transition:transform .25s}.fold.collapsed .fold-head h2:after{margin-top:0;transform:rotate(-45deg)}.fold.collapsed>*>:not(.fold-head){display:none!important}.fold.collapsed .fold-head{margin-bottom:0!important}.fold.collapsed .fold-head>h2,.fold.collapsed>.panel>h2{margin:0!important}.fold.collapsed>.panel{padding-bottom:18px}.fold.collapsed .usage-head>:not(h2):not(.muted-inline){display:none}.fold.collapsed{align-self:start!important}.energy-grid>.fold:has(>.usage),.energy-grid>.fold:has(>.sessions),.energy-grid>.fold:has(>.devices-card),.energy-grid>.fold:has(>.battery),.energy-grid>.fold:has(>.charging-months),.car-grid>.fold:has(>.trips-log),.room-grid>.fold:has(>.climate){grid-column:1 / -1}.energy-grid>.fold:has(>.forecast),.energy-grid>.fold:has(>.wallbox),.energy-grid>.fold:has(>.heatpump),.energy-grid>.fold:has(>.water){align-self:stretch}@media(min-width:900px){.energy-grid>.fold:has(>.usage.water){grid-column:auto}}.fold-nav{display:flex;gap:8px;margin:-6px calc(-1*max(16px,env(safe-area-inset-left))) 2px;padding:2px max(16px,env(safe-area-inset-left)) 6px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.fold-nav::-webkit-scrollbar{display:none}@media(min-width:1024px){.fold-nav{flex-wrap:wrap;margin:-6px 0 2px;padding:2px 0 6px}}.room-grid{gap:var(--gap)}.room.panel{padding:16px;border:1px solid var(--sep);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow)}.room-head{padding:0 2px}.room-head h2{flex:1;min-width:0}.room-count{flex:none;font-size:14px;color:var(--label-2)}.lamp-toggle,.car-tile{border-radius:12px;box-shadow:none!important}.lamp.on .lamp-toggle{border:1px solid color-mix(in srgb,var(--yellow) 45%,transparent)}.summary-bar{padding:14px 16px 14px 20px}.period-bar{bottom:calc(14px + env(safe-area-inset-bottom,0px))}.period-bar-inner{border:1px solid var(--sep);border-radius:16px;background:var(--bar-bg);box-shadow:0 6px 24px #1f1e1d1f}.energy-page{padding-bottom:72px}@media(max-width:520px){.energy-page{padding-bottom:112px}}@media(min-width:1024px){.period-bar{left:var(--sidebar-w);bottom:20px}.with-nav .update-banner{left:calc(50% + var(--sidebar-w) / 2)}}.update-banner{border:1px solid var(--sep);border-radius:12px;background:var(--card)}.bars li.today .bar,.trip-col.km .trip-bar,.trip-pin.end,.map-pin,.key.grid,.part.km{background:var(--sky)}.trip-col.km .trip-val,.forecast-icon.onweer{color:var(--sky)}.trip-pin.end{box-shadow:0 0 0 3px color-mix(in srgb,var(--sky) 25%,transparent)}.map-pin{box-shadow:0 0 0 8px color-mix(in srgb,var(--sky) 22%,transparent),0 1px 3px #0000004d}
