:root{font-family:-apple-system,BlinkMacSystemFont,'SF Pro Text','Helvetica Neue',sans-serif;color:#18263a;background:#f1f4f8;color-scheme:light;--panel:#fff;--line:#d5dfeb;--muted:#52647b;--blue:#2478c5;--green:#18623f;--green-bg:#e5f5ed;--blue-bg:#eaf1fd;--gray:#edf1f6}*{box-sizing:border-box}body{margin:0}main{max-width:1200px;margin:auto;padding:48px 24px}header,.section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}header{margin-bottom:44px}.eyebrow{font-size:13px;letter-spacing:.12em;font-weight:600;color:var(--muted);margin:0 0 12px}h1{font-size:clamp(32px,5vw,44px);font-weight:600;letter-spacing:-1.5px;margin:0 0 12px}h2{font-size:24px;font-weight:600;letter-spacing:-.5px;margin:0}h3{font-size:18px;font-weight:600;margin:0 0 12px}.sub,.muted{color:var(--muted);font-size:14px;line-height:1.6}.sub{font-size:16px;margin:0}button,select{font:inherit;font-size:16px;padding:12px 16px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:inherit;min-height:44px}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}button:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--blue);outline-offset:3px}.section-heading{margin-bottom:16px}.section-heading>span{font-size:14px;color:var(--muted)}.stations,.insights{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.station,.panel,.insight{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:24px}.station{border-top:4px solid #8995a6}.station.available{border-top-color:var(--green)}.station.charging{border-top-color:var(--blue)}.station-head{display:flex;justify-content:space-between;align-items:center}.floor{font-size:14px;padding:6px 10px;border:1px solid var(--line);border-radius:6px}.station h3{font-size:32px;margin:0}.station .label{font-size:14px;color:var(--muted);margin:0 0 8px}.badge{display:inline-block;margin-top:24px;padding:8px 12px;border-radius:8px;background:var(--gray);font-weight:600}.available .badge{background:var(--green-bg);color:var(--green)}.charging .badge{background:var(--blue-bg);color:var(--blue)}.duration{font-size:16px;margin:16px 0 8px}.history{margin-top:48px}label{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:14px}.insights{margin:24px 0}.insight strong{display:block;font-size:24px;font-weight:600;margin:12px 0}.insight p{font-size:14px;line-height:1.5;color:var(--muted);margin:0}.panel{margin-bottom:20px}.chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.scroll{overflow:auto}.heatmap{display:grid;grid-template-columns:44px repeat(24,minmax(36px,1fr));gap:4px;min-width:1010px;padding:8px 0}.heatmap .axis{font-size:12px;color:var(--muted);align-self:center;text-align:center}.heat{padding:0;border:1px solid var(--line);border-radius:4px;min-height:44px;height:44px;min-width:36px;color:#18263a;font-size:10px;line-height:1}.no-data{background:repeating-linear-gradient(135deg,var(--gray),var(--gray) 3px,var(--panel) 3px,var(--panel) 6px)}.legend{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);flex-wrap:wrap}.swatch{display:inline-block;width:16px;height:16px;border:1px solid var(--line)}.low{background:#C6D8EC}.high{background:#1F3644}.bars{display:flex;flex-direction:column;gap:8px}.bar-row{display:grid;grid-template-columns:88px 1fr 64px;gap:12px;align-items:center;font-size:14px}.track{height:16px;background:var(--gray);overflow:hidden}.fill{height:100%;background:#5497C1}.value{text-align:right;font-variant-numeric:tabular-nums}.hour-chart{display:flex;align-items:flex-end;height:164px;gap:4px;border-bottom:1px solid var(--line)}.hour-column{flex:1;min-width:0;height:100%;display:flex;flex-direction:column;justify-content:flex-end}.hour-column .fill{min-height:0}.hour-axis{display:flex;justify-content:space-between;font-size:13px;color:var(--muted);margin-top:8px}.empty{min-height:128px;display:grid;place-items:center;text-align:center;color:var(--muted);font-size:14px;background:var(--gray);border-radius:8px;padding:20px}.notice{background:#fff0e6;color:#793d1a;padding:16px;border-radius:8px;font-size:16px;line-height:1.5}footer{border-top:1px solid var(--line);margin-top:24px;padding-top:24px;color:var(--muted);font-size:14px;line-height:1.6}summary{cursor:pointer;font-size:16px}footer details p{max-width:860px}[hidden]{display:none!important}@media(max-width:760px){main{padding:28px 16px}header{align-items:flex-start;flex-direction:column;margin-bottom:28px}.section-heading{align-items:flex-start;flex-wrap:wrap}.insights,.chart-grid{grid-template-columns:1fr}.station{padding:20px}.station .badge{margin-top:16px}.history{margin-top:32px}.panel{padding:20px}.bar-row{grid-template-columns:80px 1fr 56px}.insights{gap:12px}.insight strong{font-size:22px}}@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){color:#edf2fa;background:#101925;color-scheme:dark;--panel:#192638;--line:#38485c;--muted:#adbed3;--blue:#5eaeed;--green:#87e1b0;--green-bg:#214535;--blue-bg:#253e5b;--gray:#2c394c}.notice{background:#442f20;color:#ffcca5}.heat{border-color:#56677c}.high{background:#1F3644}}

/* Compact three-column charger strip, including on phones. */
.stations{grid-template-columns:repeat(3,minmax(0,1fr));gap:0;background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.station{min-width:0;border:0;border-top:3px solid #8995a6;border-radius:0;padding:16px 20px;background:transparent}
.station+.station{border-left:1px solid var(--line)}
.station-head{justify-content:flex-start;gap:8px;flex-wrap:wrap}
.station h3{font-size:22px;line-height:1.2}
.station .floor{font-size:13px;padding:2px 6px;border:0;background:var(--gray);border-radius:4px}
.station .badge{font-size:14px;line-height:1.3;margin-top:10px;padding:4px 8px;border-radius:5px;max-width:100%}
.station .duration{font-size:14px;line-height:1.4;color:var(--muted);margin:8px 0 0}
@media(max-width:760px){.station{padding:12px 10px}.station h3{font-size:18px}.station-head{gap:4px}.station .floor{font-size:12px;padding:2px 4px}.station .badge{padding:4px;font-size:14px}.station .duration{font-size:13px}}
@media(max-width:360px){.station{padding:12px 8px}.station h3{font-size:16px}}

:root[data-theme="dark"]{color:#edf2fa;background:#101925;color-scheme:dark;--panel:#192638;--line:#38485c;--muted:#adbed3;--blue:#5eaeed;--green:#87e1b0;--green-bg:#214535;--blue-bg:#253e5b;--gray:#2c394c}
:root[data-theme="dark"] .notice{background:#442f20;color:#ffcca5}
:root[data-theme="light"] .notice{background:#fff0e6;color:#793d1a}
.toolbar{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;max-width:460px}.toolbar label{gap:8px}
.health{margin:12px 0 24px;padding:12px 16px;border:1px solid var(--line);border-radius:8px;font-size:14px;color:var(--muted);line-height:1.6}
.activity-panel{margin-top:24px}.activity{margin:0;padding:0;list-style:none;max-height:280px;overflow-y:auto}.activity li{display:grid;grid-template-columns:160px 96px 1fr;gap:12px;padding:12px 0;border-top:1px solid var(--line);font-size:14px;line-height:1.5}.activity time{color:var(--muted)}
@media(max-width:760px){.toolbar{justify-content:flex-start;max-width:none}.activity li{grid-template-columns:1fr 1fr;gap:4px 12px}.activity .event-description{grid-column:1/-1}}

.station .connectivity{font-size:12px;line-height:1.4;color:var(--muted);margin:4px 0 0}
.rate-note,.equipment-note{font-size:13px;color:var(--muted);line-height:1.5;margin-top:8px}
.rate-note summary,.equipment-note summary{font-size:13px;min-height:44px;padding:12px 0}
.rate-note strong{color:inherit;font-weight:600}.rate-note p,.equipment-note p{margin:4px 0 12px;max-width:850px}
