@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-wght-normal-BUzh504Q.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-wght-normal-CcLUaPy7.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-wght-normal-DLoelf7F.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(data:font/woff2;base64,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) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/hanken-grotesk-vietnamese-wght-normal-CHiFlh_0.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/hanken-grotesk-latin-ext-wght-normal-Dg-wlmqe.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/hanken-grotesk-latin-wght-normal-CaVRRdDk.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #e8edf0;--panel: #f6f8f9;--ink: #0f1d2a;--muted: #566676;--line: #d2dbe1;--line-strong: #b7c3cc;--solar: #e39b00;--battery: #12907f;--grid: #62748c;--accent: #2455e0;--bad: #b3261e;--ev: #6a4fd8;--price: #d4501f;--display: "Bricolage Grotesque Variable", "Hanken Grotesk Variable", system-ui, sans-serif;--body: "Hanken Grotesk Variable", system-ui, -apple-system, "Segoe UI", sans-serif}@media (prefers-color-scheme: dark){:root{--bg: #0b131b;--panel: #121c26;--ink: #e7eef4;--muted: #8b9cad;--line: #223140;--line-strong: #35495c;--solar: #f2b31f;--battery: #2fbfae;--grid: #8da1bc;--accent: #7aa0ff;--bad: #f2837c;--ev: #a190f5;--price: #f0794f}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 var(--body);font-variant-numeric:tabular-nums}svg text{font-family:var(--body);font-variant-numeric:tabular-nums}.wrap{max-width:1040px;margin:0 auto;padding:28px 20px 80px}h1{font:600 24px/1.15 var(--display);letter-spacing:-.015em;margin:0}h2{font:600 15px/1.3 var(--display);margin:0 0 12px;color:var(--ink);letter-spacing:-.005em}.sub{color:var(--muted);font-size:13px}.err{color:var(--bad);font-size:13px;margin-top:10px;min-height:18px}.card,.periods,.banner{background:var(--panel);border:1px solid var(--line);border-radius:14px}.card{padding:20px}.banner{padding:11px 16px;font-size:14px;border-radius:10px;border-left:4px solid var(--solar)}.sections>*{margin-top:18px}.top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:22px}.actions{display:flex;gap:4px}button{font:inherit;font-size:14px;border:1px solid var(--line-strong);background:transparent;color:var(--ink);padding:7px 14px;border-radius:8px;cursor:pointer;transition:background .12s,border-color .12s}button:hover{background:color-mix(in srgb,var(--ink) 6%,transparent)}button.primary{background:var(--ink);color:var(--bg);border-color:var(--ink);font-weight:600}button.primary:hover{background:color-mix(in srgb,var(--ink) 85%,var(--bg))}button.quiet{border-color:transparent;color:var(--muted)}button.quiet:hover,button.quiet[aria-pressed=true]{color:var(--ink);background:color-mix(in srgb,var(--ink) 8%,transparent)}button:disabled{opacity:.55;cursor:default}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input,select{font:inherit;width:100%;padding:9px 11px;border:1px solid var(--line-strong);border-radius:8px;background:var(--bg);color:var(--ink)}input:focus-visible,select:focus-visible{outline-offset:0;border-color:var(--accent)}label{display:block;font-size:13px;color:var(--muted);margin:12px 0 4px}.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:0 16px}.check{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:14px;color:var(--ink)}.check input{width:auto;accent-color:var(--accent)}.syslist{display:flex;gap:4px;flex-wrap:wrap;margin:0 0 20px;border-bottom:1px solid var(--line)}.sys{display:inline-flex;align-items:center;gap:8px;border:0;border-radius:8px 8px 0 0;padding:9px 14px;color:var(--muted);margin-bottom:-1px;border-bottom:2px solid transparent}.sys:hover{color:var(--ink);background:transparent}.sys.on{color:var(--ink);font-weight:600;border-bottom-color:var(--ink)}.sys.add{color:var(--muted);font-weight:400}.status{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;background:var(--line-strong)}.sys .status{margin-right:0}.status.ok{background:var(--battery)}.status.off{background:var(--bad)}.hero{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(250px,1fr);gap:40px;padding:10px 4px 26px}.hero h2{color:var(--muted);font-weight:500;font-size:14px;margin-bottom:4px}.hero-when{font-size:14px;color:var(--muted)}.hero-cost{font:600 clamp(56px,11vw,92px)/1 var(--display);letter-spacing:-.035em;margin:10px 0 8px;font-variation-settings:"opsz" 96}.hero-detail{font-size:15px;color:var(--ink);max-width:56ch}.hero-empty{font:600 clamp(28px,5vw,40px)/1.15 var(--display);letter-spacing:-.02em;margin:10px 0}.ribbon{display:flex;gap:3px;height:16px;margin-top:26px}.ribbon span{min-width:6px;border-radius:4px;animation:grow .9s cubic-bezier(.2,.7,.2,1) both;transform-origin:left}.ribbon span:first-child{border-radius:8px 4px 4px 8px}.ribbon span:last-child{border-radius:4px 8px 8px 4px}.ribbon span:only-child{border-radius:8px}@keyframes grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.ribbon-key{display:flex;gap:22px;flex-wrap:wrap;list-style:none;padding:0;margin:10px 0 0;font-size:13px;color:var(--muted)}.ribbon-key b{color:var(--ink);font-weight:600;margin-left:2px}.hero-now{border-left:1px solid var(--line);padding-left:36px}.gauge-row{display:flex;gap:18px;align-items:flex-end;margin-top:6px}.gauge{position:relative;width:44px;height:112px;border:2px solid var(--line-strong);border-radius:10px;overflow:hidden;flex:none}.gauge:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;background:repeating-linear-gradient(to top,transparent 0 24.5%,var(--panel) 24.5% 25%);opacity:.55}.gauge-fill{position:absolute;left:0;right:0;bottom:0;background:var(--battery);animation:rise .9s cubic-bezier(.2,.7,.2,1) both;transform-origin:bottom}@keyframes rise{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.now-big{font:600 52px/1 var(--display);letter-spacing:-.03em;font-variation-settings:"opsz" 72}.now-line{font-size:15px;margin-top:6px}.car-line{display:flex;align-items:center;gap:8px;margin-top:22px;font-size:15px}.dot{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px;flex:none}.car-line .dot{margin:0;border-radius:50%}.periods{display:grid;grid-template-columns:repeat(4,1fr)}.period{padding:18px 22px 20px;border-left:1px solid var(--line);min-width:0}.period:first-child{border-left:0}.period h2{font-weight:500;font-size:14px;color:var(--muted);margin-bottom:6px}.period-big{font:600 32px/1.1 var(--display);letter-spacing:-.025em;margin-bottom:4px}.cardhead{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.cardhead h2{margin:0}.tabs{display:inline-flex;gap:2px;padding:3px;border-radius:10px;background:color-mix(in srgb,var(--ink) 7%,transparent)}.tabs button{padding:5px 12px;font-size:13px;border:0;border-radius:7px;color:var(--muted)}.tabs button:hover{background:transparent;color:var(--ink)}.tabs button.on{background:var(--panel);color:var(--ink);font-weight:600;box-shadow:0 0 0 1px var(--line)}.rangebar{display:flex;align-items:center;gap:12px;margin-top:30px}.readout{min-height:22px;font-size:13px;color:var(--ink);margin-bottom:6px}.legend{display:flex;gap:18px;font-size:13px;color:var(--muted);margin-top:10px;flex-wrap:wrap}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:right;padding:10px 8px;border-bottom:1px solid var(--line);white-space:nowrap}th:first-child,td:first-child{text-align:left}th{color:var(--muted);font-weight:500;font-size:13px}tbody tr:last-child td{border-bottom:0}.tablewrap{overflow-x:auto}tr.click{cursor:pointer}tr.click:hover td{background:color-mix(in srgb,var(--ink) 4%,transparent)}tr.selected td{background:color-mix(in srgb,var(--ev) 12%,transparent)}tr.total td{font-weight:600;border-top:2px solid var(--line-strong)}.bands{margin-top:10px}.band{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end;margin-bottom:6px}.band button{margin-bottom:1px}.reconnect{display:flex;flex-direction:column;gap:10px;border-left-color:var(--price)}.reconnect-row{display:flex;gap:8px;flex-wrap:wrap}.reconnect-row input{flex:1 1 220px;width:auto}.people{list-style:none;padding:0;margin:14px 0}.people li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.badge{display:inline-block;margin-left:8px;padding:1px 9px;border-radius:999px;font-size:12px;background:var(--ink);color:var(--bg)}.badge.quiet{background:transparent;border:1px solid var(--line-strong);color:var(--muted)}.addperson{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.addperson>div{flex:1 1 260px}.addperson button{margin-bottom:1px}.signin{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,440px);gap:8vw;align-items:center;max-width:1040px;margin:0 auto;padding:40px 20px}.signin-lead h1{font:600 clamp(40px,6.5vw,72px)/1.02 var(--display);letter-spacing:-.035em;font-variation-settings:"opsz" 96}.signin-lead p{font-size:17px;color:var(--muted);max-width:40ch;margin:18px 0 26px}.signin-ribbon{display:flex;gap:3px;height:14px;max-width:360px}.signin-ribbon span{border-radius:4px;animation:grow .9s cubic-bezier(.2,.7,.2,1) both;transform-origin:left}.signin-ribbon span:first-child{border-radius:8px 4px 4px 8px}.signin-ribbon span:last-child{border-radius:4px 8px 8px 4px}.signin-form{padding:28px}.signin-form h2{font-size:18px;margin-bottom:4px}@media (max-width: 820px){.hero{grid-template-columns:1fr;gap:28px}.hero-now{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:24px}.periods{grid-template-columns:repeat(2,1fr)}.period:nth-child(3){border-left:0}.period:nth-child(n+3){border-top:1px solid var(--line)}.signin{grid-template-columns:1fr;gap:28px;align-content:center}}@media (max-width: 560px){.wrap{padding:20px 16px 60px}.grid2{grid-template-columns:1fr}.band{grid-template-columns:1fr 1fr}.band button{grid-column:1 / -1}.period{padding:16px}.period-big{font-size:26px}}@media (prefers-reduced-motion: reduce){.ribbon span,.gauge-fill,.signin-ribbon span{animation:none}button{transition:none}}
