:root{--bg:#0f0d0b;--surface:#171512;--line:rgba(255,240,220,0.08);--text:#ede6dc;--text-dim:#8a8279;--accent:#ffb547;--warn:#ff6b4a;--charge:#5b8def;--discharge:#d98ad6;--land:#1a1714;--sea:#0a0908;--coast:rgba(237,230,220,0.18);--road:#1e1b17;--circuit:#d9d2c7;--offshore:#9fb8c8;--code:#b3a48f;--group-wind:#4fb3a2;--group-solar:#e8dc8a;--group-thermal:#c0623b;--group-nuclear:#9b87d4;--group-storage:#5b8def;--group-renew:#8a8279;--sans:var(--font-sans),system-ui,-apple-system,"Segoe UI",sans-serif;--mono:var(--font-mono),ui-monospace,"SF Mono",Menlo,monospace;--rail:48px;--strip:36px;--drawer:360px;--r:2px;--dock:0px;color-scheme:dark}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font:13px/1.45 var(--sans);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;overflow:hidden}button,input{font:inherit;color:inherit}button{background:none;border:0;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}h2,h3{font:inherit}:focus-visible{outline:1px solid var(--accent);outline-offset:2px}.code,.num{font-family:var(--mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.code{letter-spacing:.02em}.eyebrow,.muted{color:var(--text-dim)}.eyebrow{font-size:10px;font-weight:500;letter-spacing:.08em;text-transform:uppercase}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.lead{position:fixed;z-index:0;inset:0;display:grid;align-content:center;justify-items:center;grid-gap:8px;gap:8px;padding:0 24px;text-align:center;pointer-events:none}.lead__title{font-size:15px;font-weight:600}.lead__text{max-width:440px;color:var(--text-dim);text-wrap:balance}:root[data-map=ready] .lead{inset:auto;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.app{display:grid;grid-template-columns:var(--rail) 1fr;width:100vw;height:100vh;height:100dvh}.rail{z-index:3;display:flex;flex-direction:column;align-items:stretch;padding-top:max(8px,env(safe-area-inset-top));padding-left:env(safe-area-inset-left);background:var(--surface);border-right:1px solid var(--line)}.rail__btn{position:relative;display:grid;place-items:center;height:44px;color:var(--text-dim)}.rail__spacer{flex:1 1}.rail__btn:last-child{margin-bottom:max(8px,env(safe-area-inset-bottom))}.rail__btn.is-on,.rail__btn:hover{color:var(--text)}.rail__btn.is-on:before{content:"";position:absolute;top:10px;bottom:10px;left:0;width:1px;background:var(--accent)}.rail__btn:focus-visible{outline-offset:-4px}.rail__btn:after{content:attr(data-tip);position:absolute;left:calc(100% + 6px);top:50%;padding:4px 8px;font-size:11px;white-space:nowrap;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:var(--r);opacity:0;transform:translateY(-50%);transition:opacity .1s;pointer-events:none;z-index:5}.rail__btn:hover:after{opacity:1;transition-delay:.4s}.rail.is-warm .rail__btn:hover:after,.rail__btn:focus-visible:after{opacity:1;transition-delay:0s}.rail__btn.is-on:after{display:none}.flyout{position:absolute;z-index:4;top:52px;left:calc(var(--rail) + 8px);width:264px;max-height:calc(100dvh - var(--strip) - 68px);overflow-y:auto;padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overscroll-behavior:contain}.flyout .eyebrow{margin-bottom:8px}.flyout__note{margin-top:12px;font-size:11px;color:var(--text-dim)}.toggles{list-style:none}.toggles label{display:flex;align-items:center;gap:12px;padding:4px 0;cursor:pointer;color:var(--text-dim)}.toggles label:hover{color:var(--text)}.toggles input{accent-color:var(--accent)}.flyout__sub{margin-top:16px}.seg{display:flex;border:1px solid var(--line);border-radius:var(--r)}.seg label{flex:1 1;padding:4px 8px;text-align:center;color:var(--text-dim);cursor:pointer}.seg label+label{border-left:1px solid var(--line)}.seg label.is-on{color:var(--text);background:var(--line)}.seg input{position:absolute;opacity:0;pointer-events:none}.seg label:has(input:focus-visible){outline:1px solid var(--accent);outline-offset:-1px}.sources{display:grid;grid-gap:12px;gap:12px;list-style:none;font-size:12px;color:var(--text-dim)}.sources li{display:grid;grid-gap:2px;gap:2px}.sources__credit{font-size:11px;color:var(--text);opacity:.8}.sources a{color:var(--text);-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:2px}.sources a:hover{-webkit-text-decoration-color:var(--text-dim);text-decoration-color:var(--text-dim)}.search{width:100%;padding:8px;background:var(--bg);border:1px solid var(--line);border-radius:var(--r)}.search::placeholder{color:var(--text-dim)}.results{list-style:none;margin-top:8px}.results button{display:flex;align-items:center;gap:8px;width:100%;padding:4px 8px;min-height:28px;text-align:left;border-radius:var(--r)}.results button.is-active,.results button:hover{background:var(--line)}.results__name{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-dim)}.results .code{font-size:12px}.results .num{font-size:11px;color:var(--text-dim)}.stage{display:grid;grid-template-rows:1fr calc(var(--strip) + env(safe-area-inset-bottom));min-width:0;overflow:hidden}.map,.stage{position:relative}.map{min-height:0}.maplibregl-canvas:focus-visible{outline:1px solid var(--accent);outline-offset:-2px}.head{position:absolute;inset:0 0 auto;display:flex;align-items:baseline;gap:16px;height:44px;padding:13px 16px 0;background:color-mix(in srgb,var(--bg) 72%,transparent);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:none}.head__mark{flex:none;white-space:nowrap;font-size:15px;font-weight:600;letter-spacing:-.01em;line-height:1.2}.head__stats{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:var(--text-dim)}.head.is-zoomed .head__stats{display:none}.inst{position:absolute;top:56px;right:12px;width:248px;padding:8px 12px 12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);transition:transform .3s ease}.app--open .inst{transform:translateX(calc(-1 * var(--drawer)))}.inst__top{margin-bottom:4px}.inst__body,.inst__top{display:flex;justify-content:space-between}.inst__body{align-items:center;gap:8px}.inst__val{font-size:22px;font-weight:500;line-height:1;letter-spacing:-.02em;color:var(--text)}.inst__unit{margin-left:4px;font-size:11px;letter-spacing:0;color:var(--text-dim)}.inst svg{display:block;flex:none}.inst svg *{vector-effect:non-scaling-stroke}.inst__gauge{display:flex;gap:4px}.inst__scale{position:relative;flex:none;width:24px;height:40px;font-size:9px;color:var(--text-dim)}.inst__scale span{position:absolute;left:0;line-height:1;transform:translateY(-50%)}.inst__trace{fill:none;stroke:var(--accent);stroke-width:1;stroke-linejoin:round}.inst__mid{stroke:var(--text-dim);stroke-opacity:.5;stroke-width:1}.inst__limit{stroke:var(--line);stroke-width:1;stroke-dasharray:2 2}.inst.is-aside>*{opacity:.6}.inst.is-aside .inst__trace{stroke:var(--text-dim)}.inst.is-warn .inst__val{color:var(--warn)}.inst.is-warn .inst__trace{stroke:var(--warn)}.sw{flex:none;width:18px;height:1px;background:var(--c,var(--circuit));opacity:var(--o,1)}.sw--dash{height:0;background:none;border-top:1px dashed var(--c,var(--circuit))}.mk{flex:none;display:grid;place-items:center;width:9px;height:9px}.mk:before{content:"";display:block}.mk--sub:before{width:2px;height:2px;border-radius:50%;background:var(--text-dim)}.mk--gen:before{width:5px;height:5px;border-radius:50%;background:var(--circuit)}.mk--ic:before{width:5px;height:5px;border:1px solid var(--text)}.dot.dot--offshore{width:5px;height:5px;margin:0 2px;background:var(--offshore)}.dot.dot--kvring{width:9px;height:9px;border:1px solid var(--accent)}.legend__note{margin-left:auto;font-size:10px;color:var(--text-dim)}p.legend__note{margin-top:8px}.dot{flex:none;width:8px;height:8px;border-radius:50%}.legend{position:absolute;right:12px;bottom:calc(var(--strip) + 32px);width:212px;padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);font-size:11px;transition:transform .3s ease;max-height:calc(100% - var(--strip) - var(--dock, 0px) - 96px);overflow-y:auto;overscroll-behavior:contain}.legend.is-wide{display:grid;grid-template-columns:1fr 1fr;grid-gap:0 20px;gap:0 20px;width:452px}.legend{scrollbar-gutter:stable}.legend__sec{padding-bottom:12px}.legend__col>.legend__sec:last-child{padding-bottom:0}.app--open .legend{transform:translateX(calc(-1 * var(--drawer)))}.legend ul{display:grid;grid-gap:4px;gap:4px;margin:8px 0 0;list-style:none}.legend li{display:flex;align-items:center;gap:8px;color:var(--text-dim)}.legend__fuels{grid-template-columns:1fr 1fr}.strip{display:flex;align-items:stretch;padding:0 max(16px,env(safe-area-inset-right)) env(safe-area-inset-bottom) 0;overflow-x:auto;white-space:nowrap;background:var(--surface);border-top:1px solid var(--line);font-size:12px;scrollbar-width:none}.strip>*{display:inline-flex;align-items:center;padding:0 16px}.strip>*+*{border-left:1px solid var(--line)}.strip__live{gap:8px;font-size:10px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--text)}.strip__live .num{letter-spacing:0;color:var(--text-dim)}.strip__live i{width:6px;height:6px;border-radius:50%;background:var(--accent);animation:live 2s ease-in-out infinite}.strip__live.is-down{color:var(--text-dim)}.strip__live.is-down i{background:var(--text-dim);animation:none}@keyframes live{50%{opacity:.35}}.stat{gap:8px}.stat__k{font-size:10px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim)}.stat__v{color:var(--text);opacity:.82}.stat__v.is-new{animation:fresh .4s ease-out}@keyframes fresh{0%{opacity:1}}.strip .strip__src{margin-left:auto;font-size:10px;color:var(--text-dim)}.dock__box{position:absolute;z-index:1;left:12px;right:12px;bottom:calc(var(--strip) + env(safe-area-inset-bottom) + 8px);display:flex;transition:right .3s ease}.app--open .dock__box{right:calc(var(--drawer) + 12px)}.app.is-replay .maplibregl-ctrl-bottom-left{bottom:var(--dock)}.dock{display:flex;flex-direction:column;width:100%;min-height:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}.dock__divider{position:relative;flex:none;height:8px;cursor:ns-resize;touch-action:none}.dock__divider:after{content:"";position:absolute;left:50%;top:3px;width:32px;height:1px;margin-left:-16px;background:var(--text-dim)}.dock__divider:focus-visible{outline:1px solid var(--accent);outline-offset:-1px}.dock__panes{display:flex;flex:1 1;flex-direction:column;min-height:0;overflow:hidden;cursor:crosshair;touch-action:none;outline:none}.dock__panes:focus-visible{outline:1px solid var(--accent);outline-offset:-1px}.dock__empty{margin:auto;font-size:12px}.pane{display:flex;flex:1 1;flex-direction:column;min-height:0;border-top:1px solid var(--line)}.pane:first-child{border-top:0}.pane__legend{display:flex;flex:none;gap:0 12px;padding:2px 8px 0;overflow:hidden;font-size:10px;line-height:16px;white-space:nowrap;pointer-events:none}.pane__title{font-size:10px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim)}.pane__note{font-size:9px;color:var(--text-dim)}.pane__plot{position:relative;flex:1 1;min-height:0}.pane__plot svg{position:absolute;top:0;left:0;display:block;overflow:visible}.pane__line{fill:none;stroke-width:1}.pane__line.is-dash{stroke-dasharray:3 2}.pane__area{stroke:none;opacity:.85}.pane__plot rect.is-charge{fill:var(--charge)}.pane__plot rect.is-discharge{fill:var(--discharge)}.pane__grid{stroke:var(--line)}.pane__rule{stroke-width:1;stroke-dasharray:2 3}.pane__mark{fill:var(--warn)}.pane__head{stroke:var(--accent)}.pane__cross{stroke:var(--text-dim);stroke-dasharray:2 2}.pane__scale{position:absolute;top:0;right:0;bottom:0;width:56px;font-size:9px;color:var(--text-dim);border-left:1px solid var(--line)}.pane__scale span{position:absolute;left:6px;line-height:1;transform:translateY(-50%)}.pane__scale .pane__tag{left:3px;padding:1px 3px;background:var(--surface);border:1px solid;border-radius:var(--r)}.dock__axis{position:relative;flex:none;height:16px;margin-right:56px;font-size:9px;color:var(--text-dim);border-top:1px solid var(--line)}.dock__axis span{position:absolute;top:3px;line-height:1;transform:translateX(-50%)}.dock__axis .dock__cursor{top:1px;padding:1px 4px;color:var(--text);background:var(--surface);border:1px solid var(--text-dim);border-radius:var(--r)}.dock__controls{display:flex;flex:none;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:6px 8px;border-top:1px solid var(--line)}.dock.is-collapsed .dock__controls{border-top:0}.dock__days label{white-space:nowrap}.app--open .dock .replay__seglabel,.app--open .dock__date{display:none}.dock__play{display:flex;gap:4px}.dock__time{margin-right:auto;font-size:12px}.dock__menu{position:relative}.dock__menubtn{height:26px;padding:0 8px;font-size:11px;color:var(--text-dim);border:1px solid var(--line);border-radius:var(--r)}.dock__menubtn:hover,.dock__menubtn[aria-expanded=true]{color:var(--text)}.dock__menulist{position:absolute;z-index:5;right:0;bottom:calc(100% + 6px);min-width:168px;padding:6px 0;list-style:none;background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}.dock__menulist label{display:flex;align-items:center;gap:8px;padding:5px 12px;font-size:12px;cursor:pointer}.dock__menulist li{display:flex;align-items:center;padding-right:8px}.dock__menulist li label{flex:1 1}.dock__max{padding:2px 6px;font-size:10px;color:var(--text-dim);border:1px solid var(--line);border-radius:var(--r)}.dock__max:hover,.dock__max[aria-pressed=true]{color:var(--text)}.dock__menulist input{accent-color:var(--text)}.replay__btn{display:grid;place-items:center;width:26px;height:26px;color:var(--text-dim);border:1px solid var(--line);border-radius:var(--r)}.replay__btn:hover:not(:disabled){color:var(--text);background:var(--line)}.replay__swatch{width:14px;height:1px;margin-left:6px}.replay__swatch--model{background:var(--text)}.replay__swatch--mid{background:var(--text-dim)}.replay__head{stroke:var(--accent)}.strip__live.is-replay i{background:var(--text-dim);animation:none}.app.is-replay .legend{bottom:calc(var(--strip) + var(--dock) + 32px)}.app.is-replay .readout{bottom:calc(var(--strip) + env(safe-area-inset-bottom) + var(--dock) + 8px)}.mk--dim:before{opacity:.35}.dot.dot--spare{opacity:.45}.dot.dot--marg,.dot.dot--spare{width:9px;height:9px;border:1px solid var(--text);background:none}.offers th{padding:0 0 4px;font-size:10px;font-weight:500;letter-spacing:.08em;text-align:left;text-transform:uppercase;color:var(--text-dim)}.offers th.right{text-align:right}.offers td+td,.offers th+th{padding-left:8px}.offers__fuel{display:block;font-size:10px;color:var(--text-dim)}.offers__status{color:var(--text-dim);white-space:nowrap}.offers .is-setter .code,.offers .is-setter .offers__status{color:var(--text)}.readout{position:absolute;right:12px;bottom:calc(var(--strip) + env(safe-area-inset-bottom) + 8px);font-size:10px;color:var(--text-dim);pointer-events:none;transition:transform .3s ease}.app--open .readout{transform:translateX(calc(-1 * var(--drawer)))}.maplibregl-ctrl-bottom-left .maplibregl-ctrl-scale{margin:0 0 8px 12px;padding:0 4px 1px;background:none;border:1px solid var(--text-dim);border-top:0;color:var(--text-dim);font:10px var(--mono)}.scrim{position:fixed;inset:0;z-index:10;display:grid;justify-items:center;align-items:start;padding:15vh 16px 0;background:color-mix(in srgb,var(--bg) 55%,transparent)}.palette{width:min(520px,100%);padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overscroll-behavior:contain}.palette .search{font-size:14px}.palette .results{max-height:50vh;overflow-y:auto}.palette__foot{margin-top:8px;font-size:11px;color:var(--text-dim)}kbd{display:inline-block;min-width:18px;padding:1px 4px;font:10px/1.4 var(--mono);text-align:center;color:var(--text);border:1px solid var(--line);border-radius:var(--r)}.scrim--center{align-items:center;padding-top:0}.welcome{position:relative;width:min(380px,100%);padding:32px 28px 24px;text-align:center}.welcome h2{margin-bottom:12px;font-size:15px;font-weight:600;text-wrap:balance}.welcome p{margin-top:8px;color:var(--text-dim);text-wrap:pretty}.welcome__x{position:absolute;top:8px;right:8px;display:grid;place-items:center;width:28px;height:28px;color:var(--text-dim);border-radius:var(--r)}.welcome__x:hover{color:var(--text);background:var(--line)}.welcome__ok{margin-top:20px;padding:6px 16px;border:1px solid var(--line);border-radius:var(--r)}.welcome__ok:hover{background:var(--line)}.sheet dl{display:grid;grid-gap:8px;gap:8px;margin-top:12px}.sheet dl div{display:flex;justify-content:space-between;gap:16px}.sheet dt{display:flex;gap:4px}.sheet dd{color:var(--text-dim);text-align:right}.drawer{position:absolute;z-index:2;top:0;right:0;bottom:calc(var(--strip) + env(safe-area-inset-bottom));width:min(var(--drawer),100%);overflow-y:auto;background:var(--surface);border-left:1px solid var(--line);overscroll-behavior:contain;transform:translateX(100%);transition:transform .3s ease}.app--open .drawer{transform:none}.drawer__in{padding:16px 16px 32px}.drawer__head{display:flex;justify-content:space-between;gap:12px;padding-bottom:16px}.drawer__code{font-size:11px;color:var(--accent)}.drawer h2,.head__mark{text-wrap:balance;overflow-wrap:anywhere}.drawer h2{margin-top:4px;font-size:18px;font-weight:600;letter-spacing:-.01em;line-height:1.25}.drawer__sub{margin-top:4px;font-size:12px;color:var(--text-dim)}.drawer__close{display:grid;place-items:center;flex:none;width:28px;height:28px;color:var(--text-dim);border-radius:var(--r)}.drawer__close:hover{color:var(--text);background:var(--line)}.drawer section{padding:16px 0;border-top:1px solid var(--line)}.drawer section>.eyebrow{margin-bottom:8px}.drawer__note{margin-top:8px;font-size:10px;color:var(--text-dim);overflow-wrap:anywhere}.big{font-size:20px;font-weight:500}.mixbar{display:flex;gap:1px;height:4px;margin:8px 0 12px}.mixbar span{flex-basis:0;min-width:2px}.mixtext{margin:-4px 0 12px;font-size:11px;color:var(--text-dim)}.gens{display:grid;grid-gap:4px;gap:4px;list-style:none;font-size:12px}.gens li{display:flex;align-items:center;gap:8px}.gens__fuel{font-size:11px;color:var(--text-dim)}.gens li .gens__name{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gens .num{color:var(--text-dim);font-size:11px}.spark__top{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:8px}.spark__top .muted{font-size:11px}.spark svg{display:block}.spark__line{fill:none;stroke:var(--text);stroke-width:1}.spark__line,.spark__zero{vector-effect:non-scaling-stroke}.spark__zero{stroke:var(--line)}.spark__axis{display:flex;justify-content:space-between;margin-top:4px;font-size:10px;color:var(--text-dim)}.tbl{width:100%;border-collapse:collapse;font-size:11px}.tbl td{padding:4px 0;border-top:1px solid var(--line)}.tbl .right{text-align:right}.links{list-style:none}.links button{display:flex;align-items:center;gap:8px;width:100%;padding:4px 0;min-height:28px;text-align:left;font-size:12px}.links button:hover .links__name{color:var(--text)}.links .code{font-size:11px}.links__name{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-dim)}.links .num{font-size:11px;color:var(--text-dim)}.chips{display:flex;flex-wrap:wrap;gap:4px}.chips span{padding:2px 4px;font-size:10px;border:1px solid var(--line);border-radius:var(--r)}.term{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;-webkit-text-decoration-color:color-mix(in srgb,currentColor 45%,transparent);text-decoration-color:color-mix(in srgb,currentColor 45%,transparent);text-underline-offset:2px;cursor:help;pointer-events:auto}.term:focus-visible{outline-offset:1px}.pane__swatch{display:inline-block;width:7px;height:7px;margin-right:4px;vertical-align:0;border-radius:1px}.legend__code{flex:none;width:32px;font-size:8px;letter-spacing:.16em;color:var(--code)}.strip>.strip__freq{display:none;padding:0}.strip__freq .stat{display:inline-flex;align-items:center;height:100%;padding:0 16px}.batt__earlier summary{padding:3px 0;font-size:11px;color:var(--text-dim);cursor:pointer}.batt__earlier .batt__log{margin-bottom:4px}.batt__log.batt__log--recent{max-height:none;overflow:visible}.flyout--wide{width:360px}.about{display:grid;grid-gap:8px;gap:8px;font-size:12px;color:var(--text-dim)}.about li,.about p{text-wrap:pretty}.about b{font-weight:500;color:var(--text)}.about .eyebrow{margin:10px 0 0}.about__title{font-size:14px;font-weight:600;color:var(--text)}.about__list,.about__steps{display:grid;grid-gap:6px;gap:6px;padding-left:16px}.about__list{list-style:square}.about__fine{font-size:11px}.about__note{margin-top:6px;padding:8px;border:1px solid var(--line);border-radius:var(--r)}.about__contact,.about__note{color:var(--text)}.about__back,.about__contact a,.about__more,.welcome__link{color:var(--accent);text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb,var(--accent) 40%,transparent);text-decoration-color:color-mix(in srgb,var(--accent) 40%,transparent);text-underline-offset:2px}.about__back,.about__more{justify-self:start;font-size:12px}.about__back{display:block;margin-bottom:12px}.welcome__actions{display:flex;justify-content:center;align-items:baseline;gap:16px;margin-top:20px}.welcome__actions .welcome__ok{margin-top:0}.welcome .about__contact{margin-top:16px;padding-top:12px;font-size:11px;color:var(--text-dim);border-top:1px solid var(--line)}.maplibregl-ctrl-bottom-left{display:flex;align-items:flex-end}.maplibregl-ctrl-bottom-left .maplibregl-ctrl{clear:none}.maplibregl-ctrl-bottom-left .maplibregl-ctrl-attrib{margin:0 0 8px 8px;padding:0 4px;font:10px/16px var(--mono);color:var(--text-dim);background:color-mix(in srgb,var(--bg) 72%,transparent);border-radius:var(--r)}.maplibregl-ctrl-attrib a{color:var(--text-dim)}.maplibregl-ctrl-attrib a:hover{color:var(--text)}.maplibregl-ctrl-bottom-left .maplibregl-ctrl-attrib.maplibregl-compact{min-height:16px;margin:0 0 8px 8px;padding:0 0 0 18px;box-sizing:border-box;border:1px solid var(--line);border-radius:var(--r)}.maplibregl-ctrl-bottom-left .maplibregl-ctrl-attrib.maplibregl-compact-show{padding:0 6px 0 20px;border-radius:var(--r)}.maplibregl-ctrl-bottom-left .maplibregl-ctrl-attrib-button{top:-1px;left:0;width:18px;height:18px;background-color:transparent!important;filter:invert(1);opacity:.55}.maplibregl-map{font-family:var(--sans)}.tip .maplibregl-popup-content{padding:4px 8px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:none;color:var(--text);font-size:12px}.tip .maplibregl-popup-content b{display:block;font-weight:500}.tip .maplibregl-popup-content span{font:11px var(--mono);color:var(--text-dim)}.tip .maplibregl-popup-tip{display:none}@media (prefers-reduced-motion:reduce){*,:after,:before{transition-duration:0s!important;transition-delay:0s!important;animation:none!important}}@media (max-width:640px){:root{--rail:40px}.legend{right:8px;bottom:calc(var(--strip) + 8px)}.legend.is-wide{grid-template-columns:1fr;width:calc(100vw - var(--rail) - 16px)}.legend.is-wide .legend__col+.legend__col{padding-top:12px}.head{padding:13px 12px 0}.head__stats{font-size:10px}.inst{top:52px;right:8px;width:160px;padding:8px}.inst__body{flex-direction:column;align-items:stretch}.inst__val{font-size:18px}.inst__gauge svg{flex:1 1;min-width:0}.app--open .inst{transform:none}.flyout{width:calc(100vw - var(--rail) - 16px)}.dock__box{left:8px;right:8px}.dock__date,.replay__seglabel{display:none}.rail__btn{height:40px}.inst{display:none}.strip>.strip__freq{display:inline-flex}.strip{-webkit-mask-image:linear-gradient(90deg,#000 82%,transparent);mask-image:linear-gradient(90deg,#000 82%,transparent)}.pane__legend{flex-wrap:wrap;white-space:normal;gap:0 8px}.pane__item{white-space:nowrap}.dock__panes{overflow-y:auto;touch-action:pan-y}.pane{flex:1 0 auto;min-height:88px}.app--open .dock__box,.readout{display:none}.maplibregl-ctrl-bottom-left{flex-direction:column;align-items:flex-start}.maplibregl-ctrl-bottom-left .maplibregl-ctrl-attrib,.maplibregl-ctrl-bottom-left .maplibregl-ctrl-attrib.maplibregl-compact{margin:0 8px 8px 12px}}.sw.sw--bound{height:0;background:none;border-top:1px dotted var(--text-dim)}.sw.sw--bound.is-bind{border-top-color:var(--warn)}.tri{flex:none;width:9px;height:9px;margin:0 3px}.drawer__note+.tbl{margin-top:16px}.replay__strategy{align-items:center}.replay__seglabel{padding:0 8px 0 0;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim)}.batt__spec{margin:-4px 0 10px;font-size:11px;color:var(--text-dim)}.batt__gauge{position:relative;height:8px;border:1px solid var(--line);background:var(--bg)}.batt__fill{position:absolute;inset:0 auto 0 0;background:var(--text-dim)}.batt__fill.is-charge{background:var(--charge)}.batt__fill.is-discharge{background:var(--discharge)}.batt__now{margin:6px 0 12px;font-size:12px}.batt__chart{margin:0 0 4px}.batt__chart svg{display:block;width:100%;height:96px}.batt__forecast,.batt__price{fill:none;stroke-width:1;vector-effect:non-scaling-stroke}.batt__price{stroke:var(--text)}.batt__forecast{stroke:var(--text-dim);stroke-dasharray:3 2}.batt__tick.is-charge{fill:var(--charge)}.batt__tick.is-discharge{fill:var(--discharge)}.batt__key{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:10px}.batt__key>span{display:inline-flex;align-items:center;gap:6px}.batt__sw--price{background:var(--text)}.batt__sw--forecast{background:none;border-top:1px dashed var(--text-dim);height:0}.batt__h{margin:14px 0 6px;font-size:10px;font-weight:500;letter-spacing:.08em;text-transform:uppercase}.batt__h,.batt__log{color:var(--text-dim)}.batt__log{max-height:132px;overflow-y:auto;list-style:none;font-size:11px;overscroll-behavior:contain}.batt__log li{padding:3px 0;border-top:1px solid var(--line)}.batt__log li.is-now{color:var(--text)}.batt__log .num{margin-right:6px}.batt__rev .batt__total td{color:var(--text);border-top:1px solid var(--line)}.dial{flex:none;width:13px;height:13px;margin:0 1px}.dial__track{fill:none;stroke:var(--text-dim);stroke-opacity:.5;stroke-width:1}.dial__arc{fill:none;stroke-width:2}.dial__arc.is-charge{stroke:var(--charge)}.dial__arc.is-discharge{stroke:var(--discharge)}.dial__arc.is-idle{stroke:var(--text-dim)}