:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page:#0b0d10;--page-glow:#121821;--surface:#12151a;--surface-raised:#191d24;--surface-edge:#ffffff12;--surface-highlight:#ffffff0d;--shadow:0 1px 0 #ffffff0a inset, 0 18px 40px #0000008c, 0 2px 8px #0006;--text:#eef1f5;--text-2:#b3bbc7;--muted:#7d8590;--grid:#222830;--axis:#2e3540;--accent:#6aa5f0;--good:#3fb950;--warning:#e3a33a;--critical:#e5534b;--rail24-0:#9ec5f4;--rail24-1:#6da7ec;--rail24-2:#3987e5;--rail24-3:#256abf;--rail12-0:#f6b796;--rail12-1:#f08c5e;--rail12-2:#d95926;--rail12-3:#a8431a;--unmetered:#3d434c;--soc:#6aa5f0;--cell-top:#3a404a;--cell-mid:#20252d;--cell-bottom:#0e1115;--cell-well:#07090b;--glow-discharge:#b9dcff;--glow-charge:#3fb950;--glow-low:#e3a33a;--glow-critical:#e5534b;--tiles-filter:invert(1) hue-rotate(180deg) brightness(.85) contrast(.9) saturate(.6);--radius:18px;--gutter:16px;font-variant-numeric:tabular-nums;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--page:#f4f5f7;--page-glow:#fff;--surface:#fbfbfc;--surface-raised:#fff;--surface-edge:#0b0d1017;--surface-highlight:#ffffffe6;--shadow:0 1px 0 #ffffffe6 inset, 0 12px 30px #14181e1a, 0 2px 6px #14181e12;--text:#0b0d10;--text-2:#4a5059;--muted:#6b7079;--grid:#e3e5e9;--axis:#c6cad1;--accent:#2a6fc9;--good:#1a7f37;--warning:#9a6700;--critical:#c9372c;--rail24-0:#86b6ef;--rail24-1:#5598e7;--rail24-2:#2a78d6;--rail24-3:#1c5cab;--rail12-0:#f0956a;--rail12-1:#e0672f;--rail12-2:#bb4f1d;--rail12-3:#8f3b14;--unmetered:#cfd2d8;--soc:#2a6fc9;--cell-top:#fff;--cell-mid:#e7e9ed;--cell-bottom:#c4c8cf;--cell-well:#dfe2e7;--glow-discharge:#4f8fe0;--glow-charge:#1a7f37;--glow-low:#c27c00;--glow-critical:#c9372c;--tiles-filter:none}*{box-sizing:border-box}html,body{background:var(--page);color:var(--text);margin:0}body{background:radial-gradient(120% 60% at 50% -10%, var(--page-glow), var(--page) 70%) fixed, var(--page);-webkit-font-smoothing:antialiased;min-height:100vh;overflow-x:hidden}a{color:var(--accent)}h1,h2,h3{margin:0;font-weight:600}h2{color:var(--text-2);letter-spacing:.08em;text-transform:uppercase;font-size:.8rem;font-weight:600}svg.icon{vertical-align:-.2em;flex:none;width:1.15em;height:1.15em}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}main.view{max-width:1120px;padding:var(--gutter);gap:var(--gutter);margin:0 auto;display:grid}.card{background:linear-gradient(180deg, var(--surface-highlight), transparent 40%), linear-gradient(160deg, var(--surface-raised), var(--surface));border:1px solid var(--surface-edge);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--gutter);min-width:0}.card>h2{margin-bottom:12px}.view-header{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.view-header h1{flex:auto;min-width:0;font-size:1.35rem}.back{align-items:center;gap:4px;font-size:.9rem;text-decoration:none;display:inline-flex}.meta{width:100%;color:var(--text-2);flex-wrap:wrap;gap:4px 16px;font-size:.85rem;display:flex}.pill{background:var(--surface);border:1px solid;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:.85rem;font-weight:600;display:inline-flex}.pill.live{color:var(--good)}.pill.stale{color:var(--warning)}.pill.offline{color:var(--critical)}.pill.none{color:var(--muted)}.link-state{color:var(--text-2);align-items:center;gap:6px;font-size:.85rem;display:inline-flex}.dot{background:var(--muted);border-radius:50%;width:9px;height:9px}.dot.on{background:var(--good);box-shadow:0 0 0 3px color-mix(in srgb, var(--good) 25%, transparent)}.ranges{border:1px solid var(--surface-edge);background:var(--surface);border-radius:999px;padding:3px;display:inline-flex}.ranges button{font:inherit;color:var(--text-2);cursor:pointer;background:0 0;border:0;border-radius:999px;min-height:32px;padding:6px 14px;font-size:.85rem}.ranges button[aria-pressed=true]{background:var(--surface-raised);color:var(--text);font-weight:600;box-shadow:0 1px 4px #0000004d}.ranges button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.grid{gap:var(--gutter);grid-template-columns:minmax(0,1fr);display:grid}@media (min-width:760px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.grid .wide{grid-column:1/-1}}.hero{grid-template-columns:clamp(86px,26vw,128px) minmax(0,1fr);align-items:center;gap:clamp(14px,4vw,28px);display:grid}.hero.discharging,.hero.none{--cell-glow:var(--glow-discharge)}.hero.charging{--cell-glow:var(--glow-charge)}.hero.low{--cell-glow:var(--glow-low)}.hero.critical{--cell-glow:var(--glow-critical)}.cell{width:100%;height:auto;display:block;overflow:visible}.cell .fill{transform-box:fill-box;transform-origin:50% 100%;transition:transform .7s cubic-bezier(.2,.8,.2,1)}.cell .glow{fill:var(--cell-glow);opacity:.55}@media (prefers-reduced-motion:reduce){.cell .fill{transition:none}}.figures{min-width:0}.soc{letter-spacing:-.03em;font-size:clamp(56px,17vw,92px);font-weight:650;line-height:.95}.soc small{color:var(--text-2);letter-spacing:0;margin-left:4px;font-size:.38em;font-weight:500}.battery-state{color:var(--cell-glow);align-items:center;gap:6px;margin-top:6px;font-size:.85rem;font-weight:600;display:inline-flex}.power{letter-spacing:-.02em;align-items:center;gap:4px;margin-top:10px;font-size:clamp(32px,9.5vw,52px);font-weight:600;line-height:1;display:flex}.power svg.icon{width:.7em;height:.7em;color:var(--text-2)}.electrics{color:var(--text-2);flex-wrap:wrap;gap:6px 14px;margin-top:8px;font-size:.9rem;display:flex}.charger{color:var(--text);align-items:center;gap:4px;font-size:.85rem;display:inline-flex}.forecast{border-top:1px solid var(--surface-edge);flex-wrap:wrap;align-items:baseline;gap:8px;margin-top:14px;padding-top:12px;font-size:.95rem;display:flex}.tag{color:var(--muted);border:1px dashed var(--muted);border-radius:6px;padding:1px 6px;font-size:.75rem}.stale-note{color:var(--warning);align-items:center;gap:6px;margin-top:10px;font-size:.85rem;display:flex}.chart{width:100%;position:relative}.chart svg.plot{touch-action:pan-y;width:100%;display:block;overflow:visible}.chart .axis text{fill:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.chart .axis path,.chart .axis line{stroke:var(--axis)}.chart .grid-line{stroke:var(--grid);stroke-width:1px}.chart .envelope{fill:none;stroke:var(--text);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.chart .band{stroke:var(--surface);stroke-width:1px}.chart .soc-line{fill:none;stroke:var(--soc);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.chart .soc-area{fill:var(--soc);opacity:.1}.chart .projection{fill:none;stroke:var(--soc);stroke-width:2px;stroke-dasharray:5 5}.chart .crosshair{stroke:var(--text-2);stroke-width:1px}.chart .marker{fill:var(--soc);stroke:var(--surface);stroke-width:2px}.chart .empty{fill:var(--muted);font-size:13px}.tooltip{pointer-events:none;background:var(--surface-raised);border:1px solid var(--surface-edge);box-shadow:var(--shadow);z-index:2;border-radius:10px;min-width:150px;padding:8px 10px;font-size:.8rem;position:absolute;top:0}.tooltip .when{color:var(--muted);margin-bottom:4px}.tooltip .row{grid-template-columns:14px auto 1fr;align-items:center;gap:6px;display:grid}.tooltip .row strong{font-variant-numeric:tabular-nums}.tooltip .row span:last-child{color:var(--text-2)}.key{border-radius:2px;width:12px;height:3px;display:inline-block}.legend{color:var(--text-2);flex-wrap:wrap;gap:6px 14px;margin-top:10px;font-size:.8rem;display:flex}.legend .group{width:100%;color:var(--text);margin-top:4px;font-weight:600}.legend .item{align-items:center;gap:6px;display:inline-flex}.swatch{border-radius:3px;width:12px;height:12px;display:inline-block}.legend .line{background:var(--text);width:14px;height:2px;display:inline-block}.legend .dashed{border-top:2px dashed var(--soc);width:14px;height:0;display:inline-block}.note{color:var(--muted);margin-top:8px;font-size:.8rem}.fact{align-items:center;gap:12px;font-size:1.05rem;display:flex}.fact svg.icon{width:2rem;height:2rem;color:var(--text-2)}.fact strong{font-size:1.6rem}.fact .sub{color:var(--text-2);font-size:.85rem;display:block}@media (min-width:640px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}.cell .cell-stop-mid{stop-color:var(--cell-mid)}.cell .cell-stop-bottom{stop-color:var(--cell-bottom)}.cell .cell-edge{stroke:var(--surface-edge);stroke-width:1px}.cell .cell-well{fill:var(--cell-well);stroke:#00000059;stroke-width:1.5px}.cell .fill-stop-edge{stop-color:color-mix(in srgb, var(--cell-glow) 62%, black)}.cell .fill-stop-core{stop-color:color-mix(in srgb, var(--cell-glow) 78%, white)}.cell .cell-ticks{stroke:var(--cell-well);stroke-width:1.5px;opacity:.55}.cell .cell-shadow{fill:#000;opacity:.55}.sub{color:var(--text-2);font-size:.85rem;display:block}.lights{gap:6px;margin:0;padding:0;list-style:none;display:grid}.lights li{align-items:center;gap:10px;min-height:28px;font-size:.9rem;display:flex}.lights .bulb{border:1px solid #0000;border-radius:8px;place-items:center;width:26px;height:26px;display:grid}.lights .bulb.commanded{border:1px dashed var(--muted)}.lights .bulb svg{width:20px;height:20px}.lights .on .bulb{color:var(--warning)}.lights .on .bulb svg{filter:drop-shadow(0 0 6px color-mix(in srgb, var(--warning) 60%, transparent))}.lights .off .bulb{color:var(--muted)}.lights .unknown .bulb{color:var(--muted);opacity:.8}.lights .state{color:var(--text-2);margin-left:auto;font-size:.85rem}hb-lights h3{color:var(--muted);margin:10px 0 2px;font-size:.8rem;font-weight:600}.map{background:var(--surface-raised);border-radius:12px;height:280px;overflow:hidden}.no-fix{height:140px;color:var(--muted);text-align:center;place-items:center;gap:4px;display:grid}.map.leaflet-container{background:var(--surface-raised);font:inherit}.leaflet-tile-pane{filter:var(--tiles-filter)}.leaflet-container .leaflet-control-attribution{background:var(--surface-raised);color:var(--text-2);opacity:.92}.leaflet-container .leaflet-control-attribution a{color:var(--accent)}.leaflet-bar a{background:var(--surface-raised);color:var(--text);border-color:var(--surface-edge)}.cards{gap:var(--gutter);grid-template-columns:minmax(0,1fr);display:grid}@media (min-width:640px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}a.vehicle-card{color:inherit;gap:10px;text-decoration:none;transition:transform .16s;display:grid}a.vehicle-card:hover,a.vehicle-card:focus-visible{border-color:var(--accent);outline:none;transform:translateY(-2px)}.vehicle-card .top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.vehicle-card .numbers{flex-wrap:wrap;align-items:baseline;gap:20px;display:flex}.vehicle-card .numbers strong{font-size:2rem;font-weight:600}.page-title{font-size:1.4rem}.stream-state{color:var(--muted);align-items:center;gap:6px;font-size:.8rem;display:inline-flex}footer.view-footer{color:var(--muted);padding-bottom:24px;font-size:.75rem}.cell .cell-cap{fill:var(--cell-top);stroke:var(--surface-edge)}.cell .cell-stop-edge{stop-color:var(--cell-bottom)}.cell .cell-stop-top{stop-color:var(--cell-top)}.cell .cell-body{stroke:var(--surface-edge)}.cell .cell-well{fill:var(--page);opacity:.85}.cell .fill-stop-dark{stop-color:color-mix(in srgb, var(--soc) 70%, black)}.cell .fill-stop-light{stop-color:color-mix(in srgb, var(--soc) 75%, white)}.cell .cell-gloss{fill:#fff;opacity:.12}.sub{color:var(--text-2);font-size:.85rem}.grid.loading{opacity:.55;transition:opacity .2s}hb-theme-toggle{margin-left:auto}.theme-toggle{cursor:pointer;background:var(--surface-raised);width:36px;height:36px;color:var(--text-2);border:1px solid var(--surface-edge);border-radius:50%;place-items:center;display:grid}.theme-toggle:hover{color:var(--text)}.theme-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.chart .excess-hatch{stroke:var(--text-2);stroke-width:1.5px}.chart .excess{stroke:var(--text-2);stroke-width:1px;stroke-dasharray:3 3}.swatch.excess-swatch{background:repeating-linear-gradient(45deg, var(--text-2) 0 1.5px, transparent 1.5px 5px);outline:1px dashed var(--text-2)}
