*{box-sizing:border-box}html,body{margin:0;height:100%}
body{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue",Arial,sans-serif;background:linear-gradient(180deg,#fbfbfc 0%,#eceef2 100%);color:#111;-webkit-font-smoothing:antialiased;overscroll-behavior:none}
#app{max-width:760px;margin:0 auto;min-height:100%;padding:calc(env(safe-area-inset-top) + 16px) 22px calc(env(safe-area-inset-bottom) + 96px);display:flex;flex-direction:column;position:relative}
.top{display:flex;justify-content:space-between;align-items:center}
.brand{display:inline-flex;align-items:center;gap:10px;font-family:"Gotham","Montserrat","Avenir Next","Helvetica Neue",Futura,Arial,sans-serif;font-size:15px;font-weight:300;letter-spacing:.5em;color:#A31217;text-transform:uppercase}
.meta{display:flex;gap:12px;align-items:center}
.clock{font-size:14px;color:#111;font-variant-numeric:tabular-nums}
.tag{font-size:10px;letter-spacing:.16em;padding:3px 9px;border-radius:99px;border:1px solid #cfd2d7;color:#666;background:#fff}
.tag.live{color:#0a7d3c;border-color:#b6e3c8}.tag.off{color:#a15c00;border-color:#f0d39b}
.stage{position:relative;margin:1vh 4% 0}
.carimg{width:100%;height:auto;display:block;pointer-events:none;user-select:none}
.name{text-align:center;font-size:15px;color:#555;margin-top:-18px}
.nums{display:grid;grid-template-columns:repeat(3,1fr);text-align:center;margin-top:3vh}
.nums span{display:block;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#8a8d93}
.nums strong{display:block;font-weight:300;font-size:clamp(38px,11vw,64px);letter-spacing:-.03em;line-height:1.1}
.nums strong i{font-style:normal;font-size:.42em;color:#8a8d93;margin-left:2px}
.nums strong.sm{font-size:clamp(17px,4.6vw,24px);font-weight:400;padding-top:14px}
.bar{position:relative;height:3px;background:#dcdfe3;border-radius:3px;margin:20px 4px 0}
.bar i{display:block;height:100%;border-radius:3px;background:#111;width:0;transition:width .6s}
.bar b{position:absolute;top:-4px;width:2px;height:11px;background:#111;opacity:.5;left:80%}
.line{text-align:center;color:#6b6e75;font-size:13px;margin:16px 0 0;min-height:18px}
.plan{display:block;margin:22px auto 0;background:#111;color:#fff;border:0;border-radius:99px;padding:14px 30px;font-size:16px;text-decoration:none;text-align:center;cursor:pointer;font-family:inherit}
.fine{text-align:center;font-size:11.5px;color:#9a9da3;margin:10px 0 0}
.connect{position:fixed;inset:0;background:rgba(244,245,247,.86);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);display:grid;place-items:center;z-index:5}
.connect[hidden]{display:none}
.card{text-align:center;max-width:320px;padding:28px}.card h1{font-weight:400;font-size:28px;margin:10px 0 6px}.card p{color:#666;font-size:14px;line-height:1.45}
.dock{position:fixed;left:0;right:0;bottom:0;padding:10px 16px calc(env(safe-area-inset-bottom) + 12px);background:linear-gradient(180deg,rgba(236,238,242,0),#eceef2 40%);z-index:3}
.dock form{max-width:720px;margin:0 auto;display:flex;gap:8px;background:#fff;border:1px solid #dcdfe3;border-radius:99px;padding:6px 6px 6px 18px;box-shadow:0 6px 24px rgba(0,0,0,.06)}
.dock input{flex:1;border:0;outline:0;font-size:16px;background:transparent;font-family:inherit;min-width:0}
.dock button{width:38px;height:38px;border-radius:50%;border:0;background:#111;color:#fff;font-size:18px;flex:none}.dock button.ic{background:transparent;color:#6b6e75;display:grid;place-items:center}.dock button.ic[aria-pressed=true]{color:#111;background:#eceef2}.dock button.ic.rec{background:#e82127;color:#fff;animation:pulse 1.2s ease-in-out infinite}.dock button[hidden]{display:none}@keyframes pulse{50%{box-shadow:0 0 0 8px rgba(232,33,39,.15)}}
.sheet{position:fixed;left:0;right:0;bottom:0;top:18%;background:#fff;border-radius:22px 22px 0 0;box-shadow:0 -10px 40px rgba(0,0,0,.14);z-index:4;display:flex;flex-direction:column;padding-bottom:84px}
.sheet[hidden]{display:none}
.grab{display:flex;justify-content:space-between;align-items:center;padding:16px 20px 8px;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:#8a8d93}
.grab button{border:0;background:transparent;font-size:26px;color:#666}
.msgs{flex:1;overflow:auto;padding:4px 20px 20px;display:flex;flex-direction:column;gap:12px}
.m{max-width:88%;font-size:16px;line-height:1.45;white-space:pre-wrap}
.m.you{align-self:flex-end;background:#111;color:#fff;border-radius:18px 18px 4px 18px;padding:10px 14px}
.m.ai{align-self:flex-start;color:#111}
.m.err{color:#b3261e;font-size:13px}
@media (prefers-reduced-motion:no-preference){.fl{animation:dash 2.4s linear infinite}.fl.f{animation-duration:1.1s}@keyframes dash{to{stroke-dashoffset:-48}}.car{animation:fl 7s ease-in-out infinite}@keyframes fl{50%{transform:translateY(-2px)}}}

.dt{display:flex;align-items:center;gap:6px;margin:14px auto 0;border:0;background:transparent;color:#6b6e75;font:inherit;font-size:13px;letter-spacing:.04em;cursor:pointer;padding:6px 10px}
.dt svg{transition:transform .35s}.dt[aria-expanded=true] svg{transform:rotate(180deg)}
.details{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s cubic-bezier(.2,.8,.2,1),opacity .35s;opacity:0}
.details.open{grid-template-rows:1fr;opacity:1}
.dinner{overflow:hidden;min-height:0}
.dgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 28px;padding:6px 2px 4px}
.dgrid div{display:flex;justify-content:space-between;align-items:baseline;padding:11px 0;border-bottom:1px solid #e1e3e7;font-size:13px}
.dgrid span{color:#8a8d93;letter-spacing:.03em}.dgrid b{font-weight:500;font-size:16px;letter-spacing:-.01em;font-variant-numeric:tabular-nums;color:#111;text-align:right}
.dnote{grid-column:1/-1;color:#9a9da3;font-size:11.5px;margin:10px 0 0;text-align:center}
@media(max-width:420px){.dgrid{grid-template-columns:1fr}}

.line a{color:#111;text-decoration:underline}

.brand .sun{flex:none;margin-top:-2px}

.brand .wm{height:10px;width:auto;display:block}

.plan .sun{vertical-align:-3px;margin-right:8px}

.cable{position:absolute;left:0;top:0;width:100%;height:auto;aspect-ratio:1400/933;pointer-events:none;opacity:0;transition:opacity .5s}.stage.charging .cable{opacity:1}.cable .flow{stroke-dasharray:4 20;stroke-width:3;animation:fl .9s linear infinite}@keyframes fl{from{stroke-dashoffset:0}to{stroke-dashoffset:24}}.cable .cg>path:first-child{animation:pu 1.8s ease-in-out infinite}@keyframes pu{50%{opacity:.55}}

.stage .spin{position:absolute;left:0;top:0;width:100%;height:auto;aspect-ratio:1400/933;touch-action:pan-y;cursor:grab;pointer-events:auto;-webkit-user-select:none;user-select:none}.stage .spin:active{cursor:grabbing}.cable .cg{transition:none}.stage:not(.charging) .cable{opacity:0}

.solar{display:flex;align-items:center;justify-content:center;gap:7px;margin:14px auto 0;background:none;border:0;font:inherit;font-size:13px;cursor:pointer;padding:4px 8px}.solar.off{color:#c8161d}.solar.pend{color:#8a8d93}.solar.on{color:#1d9a68}
.sform{width:min(340px,86vw)}.sform input{width:100%;box-sizing:border-box;margin:8px 0 0;padding:13px 14px;border:1px solid #dcdfe3;border-radius:12px;font-size:16px;font-family:inherit;background:#fff}.sform .serr{color:#c8161d;font-size:13px;min-height:16px;margin-top:8px}.slink{background:none;border:0;color:#6b6e75;font-size:14px;margin-top:10px;cursor:pointer;font-family:inherit}

.stage .spin{position:absolute;left:0;top:0;width:100%;height:auto;aspect-ratio:1200/800;touch-action:pan-y;cursor:grab;pointer-events:auto;-webkit-user-select:none;user-select:none}
.stage .spin[hidden]{display:none}
.cable2{display:none}.stage.spinning .cable2{display:block}.stage.spinning .cable:not(.cable2){display:none}

.solar{flex-direction:column;gap:4px}.solar .hs{display:block;transition:filter .5s,opacity .5s}.solar.off .hs,.solar.pend .hs{filter:grayscale(1) brightness(1.12);opacity:.5}.solar.on .hs{filter:none;opacity:1}

.solar .hs{width:min(78vw,300px);height:auto;filter:none!important;opacity:1!important}

.solar .hs{width:min(66vw,260px);height:auto;display:block;margin:0 auto}

.solar .hs{width:auto;max-width:62vw;max-height:210px}
.solar .hs{max-width:86vw;max-height:230px}

.solar .snums{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:28px;text-align:center;margin-top:4px}.snums span{display:block;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#8a8d93}.snums strong{display:block;font-weight:300;font-size:clamp(38px,11vw,64px);letter-spacing:-.03em;line-height:1.1;color:#111}.snums strong i{font-style:normal;font-size:.36em;color:#8a8d93;margin-left:3px;letter-spacing:0}.snums strong.sm{font-size:clamp(17px,4.6vw,24px);font-weight:400;padding-top:14px}.snums strong.red{color:#d11a21}.solar .stap{font-size:12px;color:#8a8d93;min-height:14px;margin-top:2px}.solar.off,.solar.pend,.solar.on{color:inherit}
.stog{display:flex;align-items:center;justify-content:center;gap:10px;margin:8px auto 0;background:none;border:0;font:inherit;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#8a8d93;cursor:pointer;padding:6px 10px}.stog[hidden]{display:none}.stog .sw{width:38px;height:22px;border-radius:99px;background:#cfd2d7;position:relative;transition:background .25s}.stog .sw i{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .25s}.stog.on .sw{background:#111}.stog.on .sw i{transform:translateX(16px)}


.clock{white-space:nowrap}.meta{flex-wrap:nowrap}

@media (max-width:520px){.top{gap:6px}.brand .wm{width:34vw;height:auto}.meta{gap:6px}.tag{padding:3px 7px;letter-spacing:.1em}.clock{font-size:12px}}

.cartog{background:none;border:1px solid #cfd2d7;color:#666;border-radius:99px;font:inherit;font-size:10px;letter-spacing:.14em;text-transform:uppercase;padding:3px 9px;cursor:pointer;white-space:nowrap}
.solar .hs{width:auto;max-width:104vw;max-height:330px;margin:0 -2vw}
@media (max-width:520px){.cartog{padding:3px 7px;letter-spacing:.06em}}
html.dk,html.dk body{background:#000;color:#f2f3f5}
html.dk .clock{color:#f2f3f5}html.dk .tag,html.dk .cartog{background:#000;border-color:#34383f;color:#b8bcc4}html.dk .tag.live{color:#3ddc84;border-color:#1f6b45}html.dk .tag.off{color:#e0a040;border-color:#6b4a14}
html.dk .name{color:#aab0b9}
html.dk .nums span,html.dk .snums span{color:#aab0b9}html.dk .nums strong,html.dk .snums strong{color:#fff}html.dk .nums strong i,html.dk .snums strong i{color:#aab0b9}html.dk .snums strong.red{color:#ff4b52}
html.dk .bar{background:#222}html.dk .bar i[style*="17, 17, 17"]{background:#f2f3f5!important}html.dk .bar b{background:#fff}
html.dk .solar,html.dk .solar.off,html.dk .solar.pend,html.dk .solar.on{color:#f2f3f5}html.dk .solar .stap{color:#aab0b9}
html.dk .stog{color:#aab0b9}html.dk .stog .sw{background:#333}html.dk .stog.on .sw{background:#3a7bff}
html.dk .line{color:#9aa0a8}html.dk .line a{color:#fff}html.dk .dt{color:#d6d9de}html.dk .details,html.dk .dgrid{color:#d6d9de}
html.dk .plan{background:#f2f3f5;color:#000}html.dk .fine{color:#8a8d93}
html.dk .dock{background:linear-gradient(180deg,rgba(0,0,0,0),#000 40%)}html.dk .dock form{background:#111;border-color:#2b2b2b;box-shadow:none}html.dk .dock input{color:#fff}html.dk .dock input::placeholder{color:#7d838c}html.dk .dock button{background:#f2f3f5;color:#000}html.dk .dock button.ic{background:transparent;color:#aab0b9}html.dk .dock button.ic[aria-pressed=true]{background:#222;color:#fff}
html.dk .sheet{background:#000;color:#f2f3f5;box-shadow:0 -10px 40px rgba(255,255,255,.06)}html.dk .grab{color:#aab0b9}html.dk .grab button{color:#fff}html.dk .m.ai{color:#f2f3f5}html.dk .m.you{background:#1c1c1c;color:#fff}
html.dk .connect{background:rgba(0,0,0,.86)}html.dk .card{background:#0b0b0b;color:#f2f3f5;border:1px solid #222}html.dk .card p{color:#aab0b9}html.dk .sform input{background:#111;border-color:#2b2b2b;color:#fff}html.dk .slink{color:#aab0b9}
.auth{font-weight:800;font-size:15px;letter-spacing:.18em;text-transform:uppercase;color:#111;margin:14px 0 0;text-align:left}html.dk .auth{color:#fff}
.solar .hs{width:min(100vw,560px);max-width:none;max-height:none;margin:0}html,body{overflow-x:hidden}
.solar{align-self:center;width:100%}.solar .hs{width:calc(100% + 0px);max-width:400px;margin:0 auto}
html.dk .brand{color:#fff}

/* v66 compact one-screen */
.carimg{width:88%;margin:0 auto}
.stage .spin,.stage .cable{width:88%;left:6%}
.name{margin-top:-8px}
.nums{margin-top:1.6vh}
.bar{margin:12px 4px 0}
.line{margin:8px 0 0}
.solar{margin:6px auto 0}
.solar .snums{gap:22px}
.dt{margin:8px auto 0}
.plan{margin:14px auto 0;padding:12px 26px}
@media (max-height:800px){
 .carimg{width:74%}.stage .spin,.stage .cable{width:74%;left:13%}
 .solar .hs{max-width:250px}
 .nums strong,.snums strong{font-size:clamp(28px,8.5vw,48px)}
 .name{margin-top:-4px}
 .nums{margin-top:.8vh}
 .line{margin:4px 0 0;min-height:16px}
}


.solar .hs{filter:grayscale(1)!important}

.solar .snums{display:grid;grid-template-columns:repeat(3,1fr);gap:0;width:100%;margin-top:2px}.snums strong.sm{font-size:clamp(17px,4.6vw,24px);font-weight:400;padding-top:14px}
@media (max-height:800px){.snums strong.sm{padding-top:8px}}
.solar .hs{max-width:370px}.solar .stap{margin-top:0}
@media (max-height:800px){.solar .hs{max-width:225px}}
.snums strong.sm{font-size:clamp(15px,4.1vw,21px)}
.solar .hs{max-width:345px}.solar .snums strong{font-size:clamp(34px,10vw,56px)}.solar .snums strong.sm{font-size:clamp(15px,4.1vw,21px)}
@media (max-height:800px){.solar .hs{max-width:190px}.solar .snums strong{font-size:clamp(26px,8vw,40px)}.solar .snums strong.sm{font-size:clamp(14px,3.8vw,19px);padding-top:6px}.solar .stap{font-size:11px}}
.solar .hs{max-width:300px}@media (max-height:800px){.solar .hs{max-width:190px}}
/* v68 proportional scale: everything keyed to viewport height */
.carimg{width:min(88%,calc(30vh*1.5));margin:0 auto}
.stage .spin,.stage .cable{width:min(88%,calc(30vh*1.5));left:calc((100% - min(88%,calc(30vh*1.5)))/2)}
.solar .hs{max-width:none;width:auto;height:30vh;max-height:none;margin:0 auto}
.nums strong,.snums strong{font-size:clamp(26px,6vh,50px)}
.nums strong.sm,.snums strong.sm{font-size:clamp(14px,2.7vh,21px);padding-top:.9vh}
.nums span,.snums span{font-size:clamp(9px,1.35vh,11px)}
.solar .stap{font-size:clamp(10px,1.5vh,12px)}
@media (max-height:800px){.carimg{width:min(88%,calc(30vh*1.5))}.stage .spin,.stage .cable{width:min(88%,calc(30vh*1.5));left:calc((100% - min(88%,calc(30vh*1.5)))/2)}.solar .hs{max-width:none;width:auto;height:30vh}.nums strong,.snums strong{font-size:clamp(26px,6vh,50px)}.nums strong.sm,.snums strong.sm{font-size:clamp(14px,2.7vh,21px);padding-top:.9vh}}
.carimg{width:min(88%,30vh)}.stage .spin,.stage .cable{width:min(88%,30vh);left:calc((100% - min(88%,30vh))/2)}.solar .hs{height:22vh;max-width:none}
@media (max-height:800px){.carimg{width:min(88%,30vh)}.stage .spin,.stage .cable{width:min(88%,30vh);left:calc((100% - min(88%,30vh))/2)}.solar .hs{height:22vh}}
@media (max-height:760px){.fine{display:none}.carimg{width:min(88%,27vh)}.stage .spin,.stage .cable{width:min(88%,27vh);left:calc((100% - min(88%,27vh))/2)}.solar .hs{height:19.5vh}.nums strong,.snums strong{font-size:clamp(24px,5.4vh,46px)}}
#app{min-height:100vh;min-height:100dvh;box-sizing:border-box}.stage,.solar,.dt,.plan{margin-top:auto!important}.nums{margin-top:1vh!important}
.solar .hs{opacity:.5!important;filter:grayscale(1)!important}
.nums strong,.snums strong,.solar .snums strong{font-size:clamp(20px,4.4vh,36px)!important}
.nums strong.sm,.snums strong.sm,.solar .snums strong.sm{font-size:clamp(12px,2.1vh,16px)!important;padding-top:.7vh!important}
.nums span,.snums span{font-size:clamp(8px,1.2vh,10px)!important}
.wire{position:relative;width:2px;height:4.5vh;margin:0 auto;border-radius:2px;overflow:hidden;flex:none;background:rgba(150,155,165,.55)}
.wire i{position:absolute;left:0;top:0;width:100%;height:100%;background:linear-gradient(to top,transparent 0,#ffb400 50%,transparent 100%) 0 100%/100% 200% no-repeat;animation:wflow 1.6s linear infinite}
@keyframes wflow{from{background-position:0 100%}to{background-position:0 -100%}}
@media(prefers-reduced-motion:reduce){.wire i{animation:none}}
.wire+.solar{margin-top:0!important}
#app{position:relative}
.wire{display:none!important}
.wirev{position:absolute;left:0;top:0;pointer-events:none;z-index:3;overflow:visible}
.wirev #wbase{stroke:rgba(150,155,165,.55)}
html.dk .wirev #wbase{stroke:rgba(200,205,215,.4)}
.wirev #wflow{animation:wdash 1.1s linear infinite;filter:drop-shadow(0 0 3px #ffb400)}
@keyframes wdash{to{stroke-dashoffset:32}}
@media(prefers-reduced-motion:reduce){.wirev #wflow{animation:none}}
.wire+.solar{margin-top:auto!important}
@media (max-width:520px){.brand .wm{width:40vw!important}}
.solar .sbar{width:calc(100% - 8px);margin:1.2vh auto 0!important;height:3px}
.sbar i{background:#ffb400!important}
html.dk .sbar{background:#222}
.carimg{width:min(90%,42vh)!important;aspect-ratio:1370/580;margin:0 auto 1.5vh!important}
@media (max-height:760px){.carimg{width:min(90%,36vh)!important}}
.stage .cable,.stage .cable2{display:none!important}
.carimg{width:min(76%,34vh)!important}
@media (max-height:760px){.carimg{width:min(76%,30vh)!important}}
.snums strong.red{color:#ff3b30!important;text-transform:uppercase;letter-spacing:.02em}
@media (max-width:520px){.brand .wm{width:49vw!important}}
.credit{font-size:9px;letter-spacing:.32em;color:#8a8d93;opacity:.85;margin:-2px 0 0 2px;line-height:1;text-transform:uppercase;font-weight:300}
.credit{margin:6px 0 0 2px!important}
.lbrand{font-size:13px;letter-spacing:.42em;font-weight:600;color:#A31217;margin-bottom:6px;text-align:center}html.dk .lbrand{color:#fff}
.snums strong.red.sm{font-size:11px!important;letter-spacing:.16em;font-weight:400;padding-top:12px;text-transform:uppercase;line-height:1.2}
.snums strong em.act{display:block;width:max-content;margin:6px auto 0;font-style:normal;font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:#cfd2d6;border:1px solid #6b6f76;border-radius:99px;padding:3px 10px}
html:not(.dk) .snums strong em.act{color:#444;border-color:#999}
.top{flex-wrap:wrap!important;row-gap:4px}
.top .brand{flex:0 0 100%;order:1}
.top .credit{order:2;margin:0!important;align-self:center}
.top .meta{order:3;margin-left:auto}
@media (max-width:520px){.brand .wm{width:84vw!important}.tag{font-size:11px!important;padding:4px 9px!important}.cartog,#cartog{font-size:11px!important}.clock{font-size:14px!important}}
.wirev #wbase{stroke:url(#wg)!important;opacity:.45}
.wirev #wflow{filter:drop-shadow(0 0 3px rgba(255,196,0,.8))}
.snums strong.red.sm{text-transform:none!important;font-variant:small-caps;font-size:17px!important;letter-spacing:.1em;font-weight:500}
.wirev #wflow{filter:drop-shadow(0 0 3px rgba(34,197,94,.8))}
.nums strong,.snums strong,.solar .snums strong{font-size:clamp(17px,3.8vh,31px)!important}
.nums span,.snums span{font-size:clamp(7.5px,1.1vh,9.5px)!important}
.nums strong i,.snums strong i{font-size:.34em}
.nums strong.red.sm{text-transform:none!important;font-variant:small-caps;font-size:15px!important;letter-spacing:.1em;font-weight:500;color:#ff3b30!important;line-height:1.2}
.snums strong.red.sm{font-size:15px!important}
@media (max-width:520px){.brand .wm{width:95vw!important}.top .brand{margin-left:calc((100% - 95vw)/2)}}
.top .credit{margin-top:6px!important}
.updbar{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(env(safe-area-inset-bottom) + 84px);z-index:50;background:#ffc400;color:#111;border:0;border-radius:99px;padding:10px 18px;font:600 13px/1 system-ui,sans-serif;box-shadow:0 4px 18px rgba(0,0,0,.4)}
.wirev #wflow{filter:drop-shadow(0 0 3px rgba(255,196,0,.8))}
.nums strong.red.sm,.snums strong.red.sm{font-variant:all-small-caps!important;font-variant-caps:all-small-caps!important;text-transform:none!important;font-size:18px!important;letter-spacing:.14em!important;font-weight:500}
.nums strong.red.sm,.snums strong.red.sm{font-size:12.5px!important;letter-spacing:.18em!important;padding-top:1.2vh!important}
.nums strong.red.sm,.snums strong.red.sm{font-size:8.5px!important;letter-spacing:.24em!important;font-weight:500!important;padding-top:1.6vh!important}
.nums strong.red.sm,.snums strong.red.sm{font-size:9.5px!important;letter-spacing:.22em!important;color:#ff4038!important}
.nums strong.red.sm,.snums strong.red.sm{font-variant:normal!important;font-variant-caps:normal!important;text-transform:lowercase!important;font-size:13px!important;letter-spacing:.06em!important;font-weight:400!important;padding-top:1.1vh!important}
.top{padding-top:calc(env(safe-area-inset-top) + 10px)!important}
.top .meta{margin-top:8px}
@media (max-width:520px){
.top{flex-wrap:wrap!important;flex-direction:row!important;align-items:center!important}
.top .brand{flex:0 0 auto!important;order:1!important;margin-left:0!important}
.brand .wm{width:41vw!important}
.top .meta{order:2!important;margin-left:auto!important;margin-top:0!important;gap:5px!important}
.top .credit{order:3!important;flex:0 0 100%!important;margin-top:6px!important}
.tag{font-size:10px!important;padding:3px 7px!important}.cartog,#cartog{font-size:10px!important;padding:3px 7px!important}.clock{font-size:12px!important}
}
.nums strong,.snums strong,.solar .snums strong{font-size:clamp(14px,2.6vh,22px)!important}
.nums span,.snums span{font-size:clamp(7px,.95vh,8.5px)!important}
.nums strong.red.sm,.snums strong.red.sm{font-size:11px!important}
.nums strong.sm,.snums strong.sm{font-size:clamp(11px,1.8vh,14px)!important}
@media (max-width:520px){.brand .wm{width:44vw!important}}
.arahint{text-align:center;font-size:11px;letter-spacing:.14em;color:#6f737a;margin:0 0 6px}
@media (max-width:520px){
.top .brand{flex:0 0 100%!important;order:1!important;justify-content:center!important;margin:0!important}
.top .credit{order:2!important;flex:0 0 100%!important;text-align:center!important;margin-top:6px!important}
.top .meta{order:3!important;flex:0 0 100%!important;justify-content:flex-end!important;margin:8px 0 0!important}
}
@media (max-width:520px){.top .meta{margin-top:20px!important}}
@media (max-width:520px){.name{margin-top:22px!important}}
@media (max-width:520px){.name{margin-top:34px!important}}
@media (max-width:520px) and (max-height:700px){.name{margin-top:10px!important}.top .meta{margin-top:10px!important}.arahint{margin-bottom:3px}}
@media (max-width:520px){.stage{padding-top:22px!important}}
@media (max-width:520px) and (max-height:760px){.stage{padding-top:14px!important}.name{margin-top:6px!important}.solar .hs{height:15.5vh!important}}
@media (max-width:520px){.stage{padding-top:38px!important}}
@media (max-width:520px) and (max-height:760px){.stage{padding-top:26px!important}}
@media (max-width:520px) and (max-height:700px){.stage{padding-top:18px!important}}
@media (max-width:520px){.stage{padding-top:58px!important}}
@media (max-width:520px) and (max-height:760px){.stage{padding-top:40px!important}.solar .hs{height:15.5vh!important}}
@media (max-width:520px) and (max-height:700px){.stage{padding-top:26px!important}.solar .hs{height:14.5vh!important}}
.snums strong.grn{color:#22c55e!important;font-size:13px!important;text-transform:lowercase;font-weight:500!important}
.snums strong.grn em.act{display:block;margin:4px auto 0;width:max-content;font-style:normal;font-size:9px;letter-spacing:.2em;border:1px solid #22c55e;color:#22c55e;border-radius:99px;padding:3px 9px;text-transform:uppercase}
.solar.demo .sbar i,.solar.demo #sfill{background:#22c55e!important}
@media (max-width:520px){.stage{padding-top:18px!important}}
@media (max-width:520px) and (max-height:760px){.stage{padding-top:12px!important}.solar .hs{height:15.5vh!important}}
@media (max-width:520px) and (max-height:700px){.stage{padding-top:10px!important}}
.solar.on .hs{opacity:1!important;filter:none!important}

.cmp{margin:1.2vh 4% 0;text-align:center}
.cmpb{background:none;border:1px solid #34383f;color:#f2f3f5;border-radius:99px;padding:9px 18px;font:500 14px -apple-system,BlinkMacSystemFont,"SF Pro Text",Arial,sans-serif;display:inline-flex;align-items:center;gap:8px;cursor:pointer}
.cmpk{width:0;height:20px;overflow:hidden;transition:width .3s;display:inline-block}
.cmpk svg{width:20px;height:20px;display:block}
.cmp.done .cmpk{width:20px}
.cmp.done .cmpb{border-color:#1f6b45}
.cmpp{height:3px;background:#222;border-radius:3px;margin:10px auto 0;max-width:260px;overflow:hidden}
.cmpp i{display:block;height:100%;width:0;background:#ff4b52;border-radius:3px}
.cmp.run .cmpp i{transition:width 2.6s cubic-bezier(.3,.1,.2,1);width:100%}
.cmp.done .cmpp i{width:100%;background:#1fbf63;transition:background .3s}
.cmpr{font-size:12px;line-height:1.4;color:#aab0b9;margin:8px 8px 0;min-height:0;opacity:0;transition:opacity .4s}
.cmp.done .cmpr{opacity:1}
html:not(.dk) .cmpb{color:#111;border-color:#c9ccd2}
html:not(.dk) .cmpp{background:#dfe2e7}

.gsp{display:block;width:78%;max-width:300px;margin:12px auto 0;border:0;border-radius:10px;padding:14px 10px;color:#fff;font:600 17px -apple-system,BlinkMacSystemFont,"SF Pro Text",Arial,sans-serif;letter-spacing:.2px;cursor:pointer;background:linear-gradient(180deg,#4f6bff 0%,#2a3fe0 55%,#2236c8 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),inset 0 -2px 0 rgba(0,0,0,.18),0 4px 14px rgba(40,60,230,.45);text-shadow:0 1px 1px rgba(0,0,0,.25);-webkit-tap-highlight-color:transparent}
.gsp:active{transform:scale(.98);filter:brightness(.92)}
#plan{display:none!important}
.cmp.done .cmpp{display:none}
.gsp{background:linear-gradient(180deg,#4a76ea 0%,#3E6AE1 60%,#3860d2 100%)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 4px 14px rgba(62,106,225,.4)!important}
.cmpp{position:relative;height:7px;border-radius:2px;background:#26282d;max-width:280px}
.cmpp i{border-radius:0}
.cmpp::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(10% - 3px),#000 calc(10% - 3px),#000 10%)}
.cmp.run .cmpp i{transition:width 6s steps(10,end)}
.arahint,.dk .arahint,.grab span,.dk .grab span{color:#fff!important}
.dock input::placeholder{color:#fff;opacity:.85}
.wm{width:49vw!important}
.brand .wm{width:49vw!important}

.tabs{position:sticky;top:0;z-index:2;display:flex;gap:4px;margin:6px auto 4px;padding:4px;background:#111;border:1px solid #2b2b2b;border-radius:99px;width:max-content;max-width:100%}
.tabs button{border:0;background:transparent;color:#aab0b9;font:600 14px -apple-system,BlinkMacSystemFont,"SF Pro Text",Arial,sans-serif;padding:8px 16px;border-radius:99px;white-space:nowrap}
.tabs button.on{background:#f2f3f5;color:#111}
html.vopen,html.vopen body{overflow:hidden}
.voice{position:fixed;inset:0;z-index:8;background:#000;color:#f2f3f5;display:flex;flex-direction:column;align-items:center;padding:calc(env(safe-area-inset-top) + 16px) 22px calc(env(safe-area-inset-bottom) + 20px);box-sizing:border-box}
.voice[hidden]{display:none}
.vbody{flex:1;width:100%;max-width:560px;display:flex;flex-direction:column;min-height:0}
.vlog{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding:14px 2px;-webkit-overflow-scrolling:touch}
.vm{max-width:88%;font-size:16px;line-height:1.45;white-space:pre-wrap}
.vm.you{align-self:flex-end;background:#1c1c1c;border-radius:18px 18px 4px 18px;padding:10px 14px}
.vm.ai{align-self:flex-start;color:#f2f3f5}
.vm.err{color:#ff8a80;font-size:14px}
.vconn{align-self:flex-start;display:inline-block;background:#3E6AE1;color:#fff;border:0;border-radius:99px;padding:9px 18px;font:600 14px -apple-system,Arial,sans-serif;text-decoration:none}
.vstage{display:flex;flex-direction:column;align-items:center;gap:14px;padding:10px 0 4px}
.vorb{--lv:0;position:relative;width:132px;height:132px;border:0;background:transparent;padding:0;color:#fff;-webkit-tap-highlight-color:transparent}
.vorb .core{position:absolute;inset:18px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#7fa2ff,#3E6AE1 55%,#1d3a8a);box-shadow:0 0 30px rgba(62,106,225,.55);transition:transform .12s}
.vorb .r{position:absolute;inset:6px;border-radius:50%;border:2px solid rgba(62,106,225,.5);opacity:0}
.voice[data-state=listen] .core{transform:scale(calc(1 + var(--lv)*.18));background:radial-gradient(circle at 35% 30%,#7fe3b0,#1fbf63 55%,#0d6a38);box-shadow:0 0 34px rgba(31,191,99,.6)}
.voice[data-state=listen] .r{animation:vr 1.6s ease-out infinite;border-color:rgba(31,191,99,.5)}
.voice[data-state=listen] .r2{animation-delay:.8s}
.voice[data-state=think] .core{animation:vt 1s ease-in-out infinite}
.voice[data-state=speak] .core,.voice[data-state=greet] .core{animation:vt .9s ease-in-out infinite}
.voice[data-state=speak] .r,.voice[data-state=greet] .r{animation:vr 1.4s ease-out infinite}
.voice[data-state=speak] .r2,.voice[data-state=greet] .r2{animation-delay:.7s}
.vstat{font-size:15px;color:#aab0b9;text-align:center;min-height:20px}
.vend{border:1px solid #34383f;background:transparent;color:#d6d9de;border-radius:99px;padding:9px 20px;font:600 14px -apple-system,Arial,sans-serif}
.vend[hidden]{display:none}
@keyframes vr{0%{transform:scale(.9);opacity:.8}100%{transform:scale(1.45);opacity:0}}
@keyframes vt{50%{transform:scale(1.07)}}
#tabv,.tabs button.on{background:#fff;color:#111}
#tabd:not(.on),#vtabd{background:transparent;color:#aab0b9}
#tabv{box-shadow:0 0 0 1px #fff,0 0 14px rgba(255,255,255,.35)}
#tabd,#tabd.on{background:transparent;color:#aab0b9}

.vform{display:flex;gap:8px;width:100%;max-width:520px;background:#111;border:1px solid #2b2b2b;border-radius:99px;padding:6px 6px 6px 18px;box-sizing:border-box}
.vform input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:#f2f3f5;font-size:16px;font-family:inherit}
.vform button{width:38px;height:38px;border-radius:50%;border:0;background:#f2f3f5;color:#111;font-size:18px;flex:none}
.vstat{padding:0 8px;line-height:1.4}

.tabs button{padding:8px 12px;font-size:13px}
.abody{flex:1;width:100%;max-width:560px;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:30px}
.atop{display:flex;align-items:center;gap:10px;margin:14px 2px 4px}
.atop h1{margin:0;font-size:26px;font-weight:700;letter-spacing:-.01em}
.apre{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#e0a040;border:1px solid #6b4a14;border-radius:99px;padding:3px 8px}
.acount{margin-left:auto;font-size:13px;color:#3ddc84}
.anote{font-size:13px;line-height:1.45;color:#8a8f98;margin:4px 2px 6px}
.ahead{display:flex;flex-direction:column;gap:2px;margin:22px 4px 8px}
.ahead b{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#f2f3f5;font-weight:600}
.ahead span{font-size:12px;color:#7b808a}
.acard{background:#0e0f11;border:1px solid #23252a;border-radius:18px;overflow:hidden}
.arow{display:flex;align-items:center;gap:12px;padding:13px 16px;border-top:1px solid #1b1d21}
.arow:first-child{border-top:0}
.atx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.atx strong{font-size:16px;font-weight:600;color:#f2f3f5}
.atx small{font-size:12px;color:#7b808a}
.asw{flex:none;width:52px;height:31px;border-radius:99px;border:0;background:#2a2d33;position:relative;padding:0;transition:background .2s;-webkit-tap-highlight-color:transparent}
.asw i{position:absolute;top:2px;left:2px;width:27px;height:27px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.4);transition:transform .2s}
.asw[aria-checked=true]{background:#1fbf63}
.asw[aria-checked=true] i{transform:translateX(21px)}
.acard.locked .arow{opacity:.85}
.alock{flex:none;color:#8a8f98;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#16181b}
.appl .abody{margin-top:6px}

.tabs{max-width:100%;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.tabs::-webkit-scrollbar{display:none}
.tabs button{padding:8px 10px;font-size:12.5px;flex:none}
.shero{margin:10px 0 14px;padding:22px 20px 16px;border-radius:22px;background:radial-gradient(120% 90% at 20% 0%,#1d2a1f,#0e0f11 60%);border:1px solid #23302a}
.sl{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#8fbf9f}
.sbig{display:flex;align-items:baseline;gap:8px;margin-top:6px}
.sbig strong{font-size:64px;line-height:1;font-weight:700;letter-spacing:-.03em;background:linear-gradient(180deg,#fff,#b8f5cf);-webkit-background-clip:text;background-clip:text;color:transparent}
.sbig em{font-style:normal;font-size:20px;color:#9aa0a8}
.searn{margin-top:6px;font-size:15px;color:#9aa0a8}.searn span{color:#3ddc84;font-weight:700;font-size:20px}
.sflow{width:100%;height:auto;margin-top:14px}
.fdash{animation:fl 1s linear infinite}
.sflow.idle .fdash{animation:none;opacity:.2}
@keyframes fl{to{stroke-dashoffset:-17}}
.skw{font-size:13px;color:#3ddc84;text-align:center;margin-top:2px}
.scard{margin:14px 0;padding:18px 18px 16px;border-radius:20px;background:#0e0f11;border:1px solid #23252a}
.schead{display:flex;align-items:center;justify-content:space-between}
.schead b{font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:#f2f3f5}
.sseg{display:flex;background:#16181b;border-radius:99px;padding:3px}
.sseg button{border:0;background:transparent;color:#8a8f98;font:600 12px -apple-system,Arial,sans-serif;padding:5px 12px;border-radius:99px}
.sseg button.on{background:#f2f3f5;color:#111}
.stot{display:flex;align-items:baseline;gap:8px;margin-top:12px}.stot strong{font-size:34px;font-weight:700}.stot span{font-size:13px;color:#7b808a}
.stotk{font-size:12px;color:#7b808a;margin-top:2px}
.schart{width:100%;height:auto;margin-top:10px}
.sfoot{font-size:12px;color:#6d727b;margin:8px 0 0;line-height:1.4}
.sp{font-size:14px;line-height:1.5;color:#b8bcc4;margin:10px 0 4px}
.sbrow{border-top:1px solid #1b1d21;margin-top:10px;padding:14px 0 0}
.sul{margin:10px 0 0;padding-left:18px;font-size:14px;line-height:1.5;color:#b8bcc4}.sul li{margin-bottom:8px}
.tabs{gap:2px;padding:3px}
.tabs button{padding:7px 9px;font-size:12px}
#tabd,#vtabd,#atabd,#stabd{display:inline-flex!important;align-items:center;justify-content:center;flex:0 0 auto;padding-left:14px;padding-right:14px;background:transparent!important;color:#e8eaee!important}#tabd svg,#vtabd svg,#atabd svg,#stabd svg{display:block}
.smseg{display:flex;width:100%;margin:6px 0 4px}.smseg button{flex:1;padding:9px 4px;font-size:13px}
.smrows label{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 0;border-top:1px solid #23252a;font-size:14px;color:#cfd3da}
.smrows label>span:last-child{display:flex;align-items:center;gap:6px;color:#fff}.smrows select{background:#17181b;color:#fff;border:1px solid #2a2d33;border-radius:8px;padding:6px 4px;font-size:14px}
.smrows input[type=range]{width:110px;accent-color:#3b6cf0}.smrows b{min-width:58px;text-align:right;font-weight:600}
.smest{display:flex;flex-direction:column;gap:2px;padding:10px 0 2px;border-top:1px solid #23252a}.smest strong{font-size:22px}.smest span{font-size:12.5px;color:#9aa0aa}
.acat{margin-top:10px}
.acath{display:flex;align-items:center;gap:10px;padding:11px 4px;cursor:pointer;-webkit-tap-highlight-color:transparent;user-select:none}
.actt{display:flex;flex-direction:column;gap:1px;min-width:0}
.actt b{font-size:15px;font-weight:600;color:#f2f3f5}
.acn2{font-size:11px;color:#7b808a}
.acath .acn{margin-left:auto;font-size:12px;color:#7b808a}
.acath .ach{color:#7b808a;transition:transform .2s}
.acat.open .acath .ach{transform:rotate(90deg)}
.acatb{display:none}
.acat.open .acatb{display:block}
.acatempty{font-size:13px;color:#7b808a;padding:12px 16px}
.abtn{flex:none;min-width:58px;height:32px;border-radius:99px;border:0;background:#2a2d33;color:#8a8f98;font-size:12px;font-weight:700;letter-spacing:.06em;padding:0 14px;cursor:pointer;transition:background .15s,color .15s,transform .08s;-webkit-tap-highlight-color:transparent}
.abtn.on{background:#1fbf63;color:#04140a}
.abtn:active{transform:scale(.88)}


/* v148: centre the SOLAR PILOT heading everywhere; clear space under the Menu */
.top .brand{flex:0 0 100%!important;justify-content:center!important;margin:0!important;order:1!important}
.top .credit{flex:0 0 100%!important;text-align:center!important;order:2!important;margin:6px 0 0!important}
@media (min-width:521px){
.brand .wm{width:clamp(170px,14vw,300px)!important;height:auto!important}
.top .meta{position:absolute!important;right:22px;top:calc(env(safe-area-inset-top) + 16px);margin:0!important}
.stage{padding-top:38px!important}
.carimg{width:min(76%,calc(21vh*1.5))!important}
.stage .spin,.stage .cable{width:min(76%,calc(21vh*1.5))!important;left:calc((100% - min(76%,calc(21vh*1.5)))/2)!important}
.solar .hs{height:15.5vh!important}
}
@media (max-width:520px){.stage{padding-top:54px!important}.solar .hs{height:12.5vh!important}}
@media (max-width:520px) and (max-height:760px){.stage{padding-top:40px!important}.solar .hs{height:11.5vh!important}}

/* v149: only the car identification, in grey; compatibility pill and bar removed */
.cmpb,.cmpp,.cmpr{display:none!important}
.name{color:#8a8d93!important;font-size:14px;letter-spacing:.02em}

/* v150: light-theme toggle removed, app is always dark */
#cartog{display:none!important}

/* v155 photo house: same layout box as old house, scaled visually */
.solar .hs{transform:scale(1.35);transform-origin:50% 50%}
