:root{--bg:#f2f5f3;--surface:#ffffff;--raised:#f8faf9;--ink:#10201b;--muted:#59695f;--line:#dce4df;--line-strong:#bfcac4;--brand:#0f6e5a;--brand-soft:#e1efe9;--on-brand:#ffffff;--charge:#d98a1c;--charge-soft:#fbefdc;--viz-solar:#c47a0f;--viz-use:#2f6bd8;--viz-grid:#7d8590;--good:#1f7a4d;--good-soft:#e2f2e8;--warn:#9a5b00;--warn-soft:#fcefd9;--bad:#b3261e;--bad-soft:#fbe4e1;--f-display:"Bricolage Grotesque","Segoe UI",system-ui,sans-serif;--f-body:"Figtree","Segoe UI",system-ui,sans-serif;--f-mono:"JetBrains Mono",ui-monospace,Menlo,monospace;--radius:14px;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0d1513;--surface:#15201c;--raised:#1a2723;--ink:#e6eeea;--muted:#9db0a6;--line:#26352f;--line-strong:#37483f;--brand-soft:#173029;--on-brand:#ffffff;--charge:#f0ac4a;--charge-soft:#3a2b14;--viz-solar:#c4842a;--viz-use:#5b8de6;--viz-grid:#9aa1ab;--good:#7cd0a0;--good-soft:#163024;--warn:#f1b85a;--warn-soft:#3a2c12;--bad:#f08a80;--bad-soft:#3d1d1a;color-scheme:dark}}*{box-sizing:border-box}body,html{margin:0}body{background:var(--bg);color:var(--ink);font:16px/1.55 var(--f-body);-webkit-tap-highlight-color:transparent}a{color:var(--brand)}h1,h2,h3{font-family:var(--f-display);line-height:1.12;margin:0;text-wrap:balance;letter-spacing:-.01em}h1{font-size:1.75rem}h2{font-size:1.25rem}h3{font-size:1.02rem}p{margin:0}img{max-width:100%}:focus-visible{outline:3px solid var(--charge);outline-offset:2px}[hidden]{display:none!important}.col{max-width:560px;padding-inline:16px}.col,.wide{width:100%;margin:0 auto}.wide{max-width:1080px;padding-inline:20px}.stack{display:grid;grid-gap:14px;gap:14px;grid-template-columns:minmax(0,1fr)}.card>*,.stack>*,details>*{min-width:0}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.grow{flex:1 1}.muted{color:var(--muted)}.small{font-size:.86rem}.num{font-family:var(--f-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.label{font:600 .72rem/1 var(--f-body);letter-spacing:.08em;text-transform:uppercase}.label,.note{color:var(--muted)}.note{font-size:.84rem;border-left:3px solid var(--line-strong);padding-left:10px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px;display:grid;grid-gap:12px;gap:12px;min-width:0;grid-template-columns:minmax(0,1fr);overflow-wrap:break-word}.card.brand{background:var(--brand);color:var(--on-brand);border-color:transparent}.card.brand .label,.card.brand .muted{color:color-mix(in srgb,var(--on-brand) 75%,transparent)}.big{font:800 2.6rem/1 var(--f-display);letter-spacing:-.03em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.mid{font:700 1.5rem/1.1 var(--f-display);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.gauge{height:10px;background:var(--line);overflow:hidden}.gauge,.gauge>span{border-radius:999px}.gauge>span{display:block;height:100%;background:var(--charge)}.card.brand .gauge{background:color-mix(in srgb,var(--on-brand) 25%,transparent)}.pill{display:inline-flex;align-items:center;gap:6px;font:600 .75rem var(--f-body);padding:4px 10px;border-radius:999px;background:var(--raised);border:1px solid var(--line);white-space:nowrap}.pill.good{background:var(--good-soft);color:var(--good)}.pill.good,.pill.warn{border-color:transparent}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.bad{background:var(--bad-soft);color:var(--bad)}.pill.bad,.pill.charge{border-color:transparent}.pill.charge{background:var(--charge-soft);color:var(--charge)}.btn{font:600 .95rem var(--f-body);padding:12px 18px;border-radius:12px;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);cursor:pointer;display:inline-flex;gap:8px;align-items:center;justify-content:center;text-decoration:none;min-height:44px}.btn:hover{border-color:var(--ink)}.btn.primary{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.btn.primary:hover{filter:brightness(1.08)}.btn.charge{background:var(--charge);border-color:var(--charge);color:#1b1305}.btn.quiet{background:none;border-color:transparent;color:var(--muted);padding:8px 10px;min-height:36px}.btn.block{width:100%}.btn.danger{color:var(--bad)}.btn:disabled{opacity:.55;cursor:not-allowed}input[type=date],input[type=email],input[type=number],input[type=password],input[type=tel],input[type=text],select,textarea{font:inherit;font-size:1rem;padding:11px 12px;border:1px solid var(--line-strong);border-radius:10px;background:var(--surface);color:var(--ink);width:100%;min-height:44px}input[type=file]{font:inherit;font-size:.92rem;width:100%}.field{display:grid;grid-gap:6px;gap:6px;min-width:0}.field>.lbl,.field>label{font-weight:600;font-size:.9rem}.hint{font-size:.82rem;color:var(--muted)}.two{grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.three,.two{display:grid}.three{grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px}.three .mid{font-size:1.15rem;margin:2px 0}.alert{padding:12px 14px;border-radius:12px;background:var(--brand-soft);font-size:.92rem}.alert.error{background:var(--bad-soft);color:var(--bad)}.alert.warn{background:var(--warn-soft);color:var(--warn)}.list{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.item,.list{display:grid}.item{grid-template-columns:minmax(0,1fr) auto;grid-gap:10px;gap:10px;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line)}.item:last-child{border-bottom:0}.item .sub{display:block;font-size:.84rem;color:var(--muted)}.item.best{background:var(--good-soft)}table.t{width:100%;border-collapse:collapse;font-size:.92rem}table.t td,table.t th{text-align:left;padding:9px 6px;border-bottom:1px solid var(--line)}table.t th{font:600 .72rem var(--f-body);text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}table.t td.r,table.t th.r{text-align:right}table.t td.lead,table.t th.lead{font-weight:700;vertical-align:top;width:34%}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}.table-scroll>table.t{min-width:100%}@media (max-width:480px){table.t{font-size:.84rem}table.t td,table.t th{padding:8px 4px}table.t th{letter-spacing:.02em}.pill{white-space:normal;text-align:center}}.top{position:-webkit-sticky;position:sticky;top:env(safe-area-inset-top,0);z-index:5;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.top .col{display:flex;gap:10px;padding-block:12px}.logo,.top .col{align-items:center}.logo{display:inline-flex;gap:8px;font:800 1.05rem var(--f-display);color:var(--ink);text-decoration:none}.logo .cell{width:14px;height:22px;border:2px solid var(--brand);border-radius:4px;position:relative}.logo .cell:before{top:-5px;left:3px;width:4px;height:3px;background:var(--brand)}.logo .cell:after,.logo .cell:before{content:"";position:absolute;border-radius:1px}.logo .cell:after{left:2px;right:2px;bottom:2px;height:60%;background:var(--charge)}.logo img{height:28px;width:auto}main.page{padding-block:18px 110px}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:6;background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0)}.tabbar nav{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(58px,1fr);overflow-x:auto;scrollbar-width:none;max-width:560px;margin:0 auto}.tabbar a{display:grid;justify-items:center;grid-gap:2px;gap:2px;padding:10px 2px 8px;font-size:.68rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;color:var(--muted);text-decoration:none}.tabbar a svg{width:22px;height:22px}.tabbar a[aria-current=page]{color:var(--brand)}.hero{padding-block:36px 28px;display:grid;grid-gap:18px;gap:18px}.hero h1{font-size:clamp(2.1rem,6vw,3.4rem);letter-spacing:-.03em}.hero h1 em{font-style:normal;color:var(--brand)}.lede{font-size:1.1rem;color:var(--muted);max-width:56ch}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:14px;gap:14px}.section{padding-block:40px;border-top:1px solid var(--line);display:grid;grid-gap:18px;gap:18px}.foot{padding-block:28px;color:var(--muted);font-size:.85rem;display:flex;gap:14px;flex-wrap:wrap;justify-content:space-between}.prose{max-width:70ch;display:grid;grid-gap:12px;gap:12px}.prose ul{margin:0;padding-left:20px}@media (max-width:720px){.grid3{grid-template-columns:1fr}}@media (max-width:420px){.two{grid-template-columns:1fr}.big{font-size:2.2rem}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.alert-card.warn{background:var(--warn-soft);border-color:transparent}.alert-card.info{background:var(--raised)}.check-row{display:flex;gap:10px;align-items:flex-start;font-size:.95rem}.check-row input{width:20px;height:20px;margin-top:2px;flex:none;accent-color:var(--brand)}.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}table.t tr.best td{background:var(--good-soft);font-weight:600}.article{max-width:68ch;display:grid;grid-gap:14px;gap:14px;padding-block:24px 64px}.article h1{font-size:clamp(1.8rem,5vw,2.4rem);letter-spacing:-.02em}.article h2{margin-top:12px}.article li,.article p{line-height:1.65}.article ol,.article ul{margin:0;padding-left:1.2em;display:grid;grid-gap:6px;gap:6px}.guide-list{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.guide-list a{text-decoration:none;color:inherit}details.card>summary{cursor:pointer;list-style:none;display:grid;grid-gap:4px;gap:4px}details.card>summary::-webkit-details-marker{display:none}details.card>summary:after{content:"Show details ▾";font-size:.8rem;color:var(--muted)}details.card[open]>summary:after{content:"Hide ▴"}details.card[open]>summary{margin-bottom:10px}.card h4{margin:12px 0 4px;font-size:.95rem}.bell{position:relative;padding-inline:10px}.bell .dot{position:absolute;top:2px;right:2px;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:var(--bad);color:var(--surface);font:700 .7rem/18px var(--f-body);text-align:center}.wk-chart{width:100%;height:auto;display:block}.wk-chart text{fill:var(--muted);font:500 11px var(--f-body)}.wk-chart .grid{stroke:var(--line);stroke-width:1}.wk-chart .solar{fill:var(--viz-solar)}.wk-chart .use{fill:var(--viz-use)}.wk-chart .grid3{fill:var(--viz-grid)}.rp-month{border-top:1px solid var(--line,#e5e5e5);padding-top:10px}.rp-month:first-child{border-top:0;padding-top:0}.rp-month dl{display:grid;grid-template-columns:1fr auto;grid-gap:2px 12px;gap:2px 12px;margin:6px 0 0}.rp-month dt{font-weight:400}.rp-month dd{margin:0;text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.rp-month .rp-saved{grid-column:1/-1;font-size:.9em;margin-top:2px;text-align:left}.wk-chart g.day:hover rect.hit{fill:var(--raised)}.legend{display:flex;gap:14px;font-size:.85rem;color:var(--muted)}.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px}.seg{display:inline-flex;border:1px solid var(--line);padding:3px;background:var(--raised);gap:2px;width:-moz-fit-content;width:fit-content}.seg,.seg a{border-radius:999px}.seg a{padding:6px 14px;font-weight:600;font-size:.88rem;color:var(--muted);text-decoration:none}.seg a[aria-current=page]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px rgb(0 0 0/.08)}@media (max-width:420px){.seg{max-width:100%;overflow-x:auto}.seg a{padding:6px;font-size:.8rem;white-space:nowrap}}.pill.est{background:var(--warn-soft);color:var(--warn);border-color:transparent}.tabbar nav::-webkit-scrollbar{display:none}@media (min-width:600px){.tabbar nav{max-width:720px}}@media print{.bell,.no-print,.tabbar,header.top{display:none!important}body{background:#fff;color:#000}.card{page-break-inside:avoid;break-inside:avoid;border:1px solid #bbb;box-shadow:none}.card.brand{background:#fff;color:#000}a{color:#000;text-decoration:none}.t{font-size:10pt}main.page{max-width:none;padding:0}}mark{background:var(--charge-soft);color:inherit;border-radius:3px;padding:0 1px}.savings-table th[scope=row]{text-align:left;font-weight:700;white-space:nowrap}.savings-table .mid{font-size:1.15rem}.savings-table td,.savings-table th{vertical-align:top}.call-retailer{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.call-retailer .btn.call{display:inline-flex;align-items:center;gap:8px;min-height:44px;text-decoration:none}.call-retailer.compact{grid-column:1/-1}.call-retailer.compact .btn.call{min-height:44px;padding:8px 14px;font-size:.9rem}.remove-appliance>summary{list-style:none;display:inline-flex;align-items:center;min-height:44px;cursor:pointer}.remove-appliance>summary::-webkit-details-marker{display:none}.help-guide{display:grid;grid-template-columns:minmax(0,1fr);grid-gap:16px;gap:16px;align-items:start}@media (min-width:760px){.help-guide{grid-template-columns:minmax(0,1fr) 360px}}.headline-proj{border-top:1px solid color-mix(in srgb,var(--on-brand) 30%,transparent);padding-top:12px;display:grid;grid-gap:4px;gap:4px}.card.brand a{color:var(--on-brand)}.ds-note{display:block;font-weight:400;margin-top:2px}.ds-table td{vertical-align:top}.ds-table{min-width:520px}@media (max-width:560px){.ds-table{min-width:0}.ds-table thead{display:none}.ds-table,.ds-table tbody{display:block}.ds-table tr{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:4px 10px;gap:4px 10px;padding:12px 0;border-bottom:1px solid var(--line)}table.t.ds-table td{border:0;padding:0}table.t.ds-table td.lead{width:auto;grid-column:1;grid-row:1}table.t.ds-table td:nth-child(4){grid-column:2;grid-row:1}table.t.ds-table td:nth-child(2),table.t.ds-table td:nth-child(3){grid-column:1/-1;font-size:.88rem}.ds-table td:nth-child(2):before{content:"Datasheet: ";color:var(--muted)}.ds-table td:nth-child(3):before{content:"Your battery: ";color:var(--muted)}}.vpp-event{background:var(--raised);border-radius:10px;padding:10px 12px;margin-top:8px}.coach-tip{display:grid;grid-template-columns:28px minmax(0,1fr);grid-gap:10px;gap:10px;align-items:start}.coach-icon{font-size:1.25rem;line-height:1.4}.top .home-name{max-width:34vw;min-width:64px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block}@media (max-width:420px){.top .col>.pill.charge{display:none}}table.t tr.hl td{font-weight:700;background:color-mix(in srgb,var(--brand) 8%,transparent)}.brand-editor{display:grid;grid-template-columns:minmax(0,1fr);grid-gap:16px;gap:16px}@media (min-width:900px){.brand-editor{grid-template-columns:minmax(0,1fr) 340px;align-items:start}.brand-preview{position:-webkit-sticky;position:sticky;top:80px}}.brand-preview{display:grid;grid-gap:10px;gap:10px;justify-items:center}.brand-preview .seg button{border:0;background:none;padding:6px 14px;border-radius:999px;font-weight:600;font-size:.88rem;color:var(--muted);cursor:pointer}.brand-preview .seg button[aria-current=page]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px rgb(0 0 0/.08)}.phone{width:300px;max-width:100%;border:8px solid #1b2420;border-radius:28px;background:var(--bg);overflow:hidden;display:grid;grid-template-rows:auto 1fr auto;min-height:520px}.phone-top{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line);background:var(--surface)}.phone-top img{max-height:26px;max-width:150px;object-fit:contain}.dot-bell{width:14px;height:14px;border-radius:50%;border:2px solid var(--muted)}.phone-body{grid-gap:8px;gap:8px;align-content:start}.mini,.phone-body{padding:10px;display:grid}.mini{background:var(--surface);border:1px solid var(--line);border-radius:12px;grid-gap:4px;gap:4px;font-size:.85rem}.alert-mini{background:#fbecd9}.alert-mini,.brand-mini{border-color:transparent}.brand-mini{background:var(--brand);color:var(--on-brand)}.mini-label{font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;opacity:.8}.mini-big{font-size:1.4rem;font-weight:800}.mini-btn{display:inline-block;justify-self:start;background:var(--brand);color:var(--on-brand);border-radius:8px;padding:6px 10px;font-weight:700;font-size:.8rem}.mini-foot{font-size:.72rem;color:var(--muted);text-align:center;margin:4px 0 0}.phone-tabs{display:flex;justify-content:space-around;border-top:1px solid var(--line);background:var(--surface);padding:8px 4px;font-size:.66rem;color:var(--muted);font-weight:600}.phone-tabs .on{color:var(--brand)}.email-mini{width:320px;max-width:100%;background:#f2f5f3;border:1px solid var(--line);border-radius:12px;padding:14px;display:grid;grid-gap:8px;gap:8px;color:#10201b}.email-head img{max-height:32px;max-width:180px;object-fit:contain}.email-card{background:#fff;border:1px solid #dce4df;border-radius:10px;padding:12px;display:grid;grid-gap:6px;gap:6px;font-size:.88rem}.installer-footer a{color:inherit}.app-steps li{margin-bottom:10px}.app-path{display:block;margin-top:4px;padding:8px 10px;border-radius:10px;background:var(--brand-soft);overflow-wrap:anywhere}.app-shot{display:block;margin-top:6px;max-width:220px;width:100%;border-radius:12px;border:1px solid var(--line)}.skel{background:linear-gradient(90deg,var(--line) 0,var(--raised) 50%,var(--line) 100%);background-size:200% 100%;animation:skel 1.2s ease-in-out infinite;border-radius:8px}.skel-title{height:30px;width:55%}.skel-card{display:grid;grid-gap:10px;gap:10px}.skel-line{height:14px}.skel-line.short{width:60%}.skel-big{height:40px;width:40%}@keyframes skel{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.skel{animation:none}}[data-pending]{position:relative;pointer-events:none;opacity:.75}[data-pending]:after{content:"";margin-left:.5em}.spinner,[data-pending]:after{display:inline-block;width:.9em;height:.9em;vertical-align:-.12em;border:2px solid;border-right:2px solid transparent;border-radius:50%;animation:bc-spin .7s linear infinite}.spinner{margin-right:.35em}@keyframes bc-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.spinner,[data-pending]:after{animation-duration:2s}}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.visually-hidden:focus+*,label:has(+.visually-hidden:focus-visible){outline:2px solid var(--brand,#0f6e5a);outline-offset:2px}html.in-app .top{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--bg)}html.in-app .btn,html.in-app a,html.in-app button,html.in-app label,html.in-app summary{touch-action:manipulation}html.in-app body{overscroll-behavior-y:none}main.page .card{content-visibility:auto;contain-intrinsic-size:auto 280px}@media print{main.page .card{content-visibility:visible}}.linklike{background:none;border:0;padding:0;color:inherit;text-decoration:underline;cursor:pointer;font:inherit}.linklike:disabled{opacity:.6;cursor:default}