:root{--ink: #e8f0ff;--muted: #8494ad;--ground: #04060c;--panel: rgba(8, 12, 21, .82);--line: rgba(130, 160, 210, .16);--cause: #ff9a76;--relief: #6ff2c8;--estimate: #c8a4ff;--bottleneck: #ffd166;--forecast: #8fd3ff;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--ground);color:var(--ink);font:13px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow:hidden}#globe{position:fixed;top:0;right:0;bottom:0;left:0}.overlay{position:fixed;z-index:2;pointer-events:none}.overlay button,.overlay input,.overlay li{pointer-events:auto}.top{top:22px;left:0;right:0;text-align:center}.top h1{margin:0;font-size:14px;font-weight:600;letter-spacing:.42em;text-indent:.42em}.subtitle{margin:5px 0 0;font-size:10px;letter-spacing:.08em;color:var(--muted)}.legend,.panel,.settings{padding:15px 16px;background:var(--panel);border:1px solid var(--line);border-radius:11px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:auto}.legend h2,.panel h2,.settings h2{margin:0 0 10px;font-size:9px;letter-spacing:.16em;color:var(--muted);font-weight:600;cursor:grab;-webkit-user-select:none;user-select:none}.legend h2:before,.panel h2:before,.settings h2:before{content:"⋮⋮";margin-right:7px;letter-spacing:-.1em;opacity:.55}.dragging{cursor:grabbing;box-shadow:0 18px 40px #0009;transition:none}.dragging h2,.dragging figcaption{cursor:grabbing}.chart.dragged{position:fixed;z-index:3}.legend{top:84px;left:26px;width:232px;max-height:calc(100vh - 300px);overflow-y:auto}.legend-block+.legend-block{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.production-zone+.production-zone{margin-top:12px}.production-head{display:flex;justify-content:space-between;align-items:baseline;font-size:12px;margin-bottom:5px}.production-head .co2{font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums}.bar{display:flex;height:7px;border-radius:4px;overflow:hidden;background:#ffffff0f}.bar span{display:block;height:100%}.production-foot{margin-top:5px;font-size:10px;color:var(--muted)}.source-chips{display:flex;flex-wrap:wrap;gap:4px 10px;margin:8px 0 0;font-size:9.5px;color:var(--muted)}.source-chip i{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:4px;vertical-align:middle}#zone-prices{margin:0;padding:0;list-style:none}#zone-prices li{display:flex;align-items:center;gap:8px;padding:3px 0;cursor:pointer;border-radius:4px}#zone-prices li:hover{color:#fff}.swatch{width:8px;height:8px;border-radius:50%;flex:none}.zone-name{font-size:11.5px}.price{margin-left:auto;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.hint{margin:12px 0 0;padding-top:10px;border-top:1px solid var(--line);font-size:9.5px;color:var(--muted)}.panel{top:84px;right:26px;width:310px;max-height:calc(100vh - 540px);overflow-y:auto}.panel-headline{margin:0 0 4px;font-size:26px;font-weight:650;letter-spacing:-.02em}.panel-sub{margin:0 0 12px;font-size:10.5px;color:var(--muted)}.panel-lines{margin:0;padding:0;list-style:none}.panel-line{padding:9px 0;border-top:1px solid var(--line)}.panel-kind{display:block;font-size:8.5px;letter-spacing:.15em;color:var(--muted);margin-bottom:3px}.panel-line.cause .panel-kind{color:var(--cause)}.panel-line.relief .panel-kind{color:var(--relief)}.panel-line.estimate .panel-kind{color:var(--estimate)}.panel-line.bottleneck .panel-kind{color:var(--bottleneck)}.panel-line.breakdown .panel-kind,.panel-line.timing .panel-kind,.panel-line.forecast .panel-kind{color:var(--forecast)}.panel-text{display:block;font-size:12px;line-height:1.45}.panel-caveat{display:block;margin-top:5px;font-size:9.5px;color:var(--muted);font-style:italic}.settings{right:26px;bottom:262px;width:310px}.field{display:block;margin-bottom:9px}.field span{display:block;font-size:10px;color:var(--muted);margin-bottom:3px}.field select,.field input{width:100%;padding:6px 8px;background:#ffffff0d;border:1px solid var(--line);border-radius:6px;color:var(--ink);font:inherit;font-size:12px}.field select option{background:#0b111c;color:var(--ink)}.field select:focus,.field input:focus{outline:none;border-color:#a0c8ff8c}.settings-note{margin:8px 0 0;font-size:10.5px;color:var(--muted);line-height:1.5}.settings-warning{margin:9px 0 0;padding-top:8px;border-top:1px solid var(--line);font-size:9.5px;color:var(--muted);font-style:italic}.zone-marker{position:relative;display:flex;flex-direction:column;align-items:center;gap:1px;transform:translate(-50%,-50%);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.zone-marker:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--zone-color);box-shadow:0 0 8px var(--zone-color)}.zone-marker.has-ring:before{width:7px;height:7px}.zone-ring{position:absolute;top:3.5px;left:50%;transform:translate(-50%,-50%);pointer-events:none;filter:drop-shadow(0 0 4px rgba(0,0,0,.9))}.zone-ring .ring{display:block}.ring-spin{animation:ring-spin linear infinite}@keyframes ring-spin{to{transform:rotate(360deg)}}.ring-segment.sunlit{filter:drop-shadow(0 0 3px #ffd166) drop-shadow(0 0 6px rgba(255,209,102,.6))}.ring-segment.ember{animation:ember 1.3s ease-in-out infinite alternate}@keyframes ember{0%{opacity:.7;filter:drop-shadow(0 0 2px #ff7a3d)}to{opacity:1;filter:drop-shadow(0 0 6px #ff9a3d)}}.zone-marker.has-ring .zone-marker-name{margin-top:20px}.zone-marker.has-ring.hovered{z-index:5}.zone-marker.has-ring.hovered .zone-ring{transform:translate(-50%,-50%) scale(2.8);transition:transform .18s ease}.zone-ring{transition:transform .18s ease}.zone-marker.has-ring.hovered .zone-marker-name,.zone-marker.has-ring.hovered .zone-marker-price{opacity:0}.ring-segment{transition:opacity .12s ease;pointer-events:stroke}.ring-segment.dim{opacity:.25}.ring-card{display:none;position:absolute;left:70px;top:-6px;min-width:190px;padding:9px 11px;background:#080c15f2;border:1px solid var(--line);border-radius:9px;box-shadow:0 8px 24px #0009;font-size:11px;text-align:left;white-space:nowrap;pointer-events:none}.ring-card.floating{position:fixed;z-index:20;left:0;top:0}.ring-card.floating.visible{display:block}.ring-card-head{font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.ring-row{display:grid;grid-template-columns:8px 1fr auto auto;gap:8px;align-items:center;padding:2px 0;transition:opacity .12s ease}.ring-row i{width:8px;height:8px;border-radius:50%}.ring-row b{font-variant-numeric:tabular-nums;font-weight:600}.ring-row em{font-style:normal;color:var(--muted);font-variant-numeric:tabular-nums;min-width:34px;text-align:right}.ring-row.active{color:#fff}.ring-row.active em{color:var(--ink)}.ring-row.dim{opacity:.4}.ring-card-foot{margin-top:6px;padding-top:6px;border-top:1px solid var(--line);font-size:10px;color:var(--relief)}.zone-marker.suppressed{pointer-events:none}.zone-marker.hovered .zone-ring,.zone-marker.hovered .zone-ring svg{pointer-events:auto}.clock .state.stale{color:var(--cause)}.zone-marker-name{display:none;font-size:9px;letter-spacing:.07em;color:#e8f0ffd1;text-shadow:0 1px 3px #000}.labels-visible .zone-marker-name{display:block}.zone-marker-price{font-size:10.5px;font-weight:650;color:var(--zone-color);text-shadow:0 1px 4px #000,0 0 10px rgba(0,0,0,.8);font-variant-numeric:tabular-nums}.close-up .zone-ring{transform:translate(-50%,-50%) scale(1.5)}.close-up .zone-marker.has-ring .zone-marker-name{margin-top:30px}.float-tooltip-kap{z-index:3;padding:7px 10px;background:#080c15f0;border:1px solid var(--line);border-radius:7px;font-size:11.5px;line-height:1.45;color:var(--ink);box-shadow:0 6px 20px #0000008c}.bottom{bottom:18px;left:0;right:0;display:flex;flex-direction:column;align-items:center;gap:8px}.chart{position:relative;width:min(940px,92vw);padding:10px 12px 6px;background:var(--panel);border:1px solid var(--line);border-radius:12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:auto}.chart:empty{display:none}.chart-figure{margin:0}.chart-figure figcaption{display:flex;align-items:center;gap:14px;font-size:9px;letter-spacing:.14em;color:var(--muted);text-transform:uppercase;margin-bottom:4px;cursor:grab;-webkit-user-select:none;user-select:none}.chart-figure .drag-grip{letter-spacing:-.1em;opacity:.55}.chart-figure .states{margin-left:auto;text-transform:none;letter-spacing:.04em;display:flex;align-items:center;gap:4px 10px}.state-chip{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:3px;vertical-align:middle}.state-chip.past{background:#a3d14761}.state-chip.fixed{background:#a3d147}.state-chip.unpriced{background:transparent;border:1px dashed var(--muted)}.state-chip.wind{background:#3aa6ff}.chart-plot{overflow:hidden}.chart svg{display:block;width:100%;height:auto;font:10px -apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.chart .hit{fill:transparent;cursor:pointer}.chart .bar.fixed .hit,.chart .bar.unpriced .hit{cursor:default}.chart .bar .fill{transition:opacity .12s ease}.chart .bar.past .fill{opacity:.38}.chart .bar:hover .fill{opacity:1;filter:brightness(1.2)}.chart .bar.selected .fill{stroke:#fff;stroke-width:1.5;opacity:1}.chart .bar.cheapest .fill{stroke:var(--relief);stroke-width:1.2}.chart .ghost{fill:#ffffff08;stroke:var(--muted);stroke-width:1;stroke-dasharray:3 3;opacity:.6}.chart .window-glow{fill:var(--relief);opacity:.1}.chart .wind{fill:none;stroke:var(--forecast);stroke-width:1.8;stroke-linejoin:round;opacity:.9;pointer-events:none;filter:drop-shadow(0 0 3px rgba(143,211,255,.6))}.chart .row-track{fill:#ffffff0d}.chart .row-wind{fill:#3aa6ff;opacity:.9}.chart .row-solar{fill:#ffd166;opacity:.9}.chart .row-label{font-size:8.5px;letter-spacing:.1em;text-transform:uppercase}.chart .row-label.wind{fill:#3aa6ff}.chart .row-label.solar{fill:#ffd166}.state-chip.solar{background:#ffd166;margin-left:-1px}.chart .now-line{stroke:#fff;stroke-width:1;stroke-dasharray:3 3;opacity:.7}.chart .now-label,.chart .window-label,.chart .unpriced-label{fill:var(--ink);font-size:9px;letter-spacing:.1em}.chart .window-label{fill:var(--relief)}.chart .shown-label{fill:#fff;font-size:9px;letter-spacing:.1em}.chart .unpriced-label,.chart .tick,.chart .axis{fill:var(--muted)}.chart .strip-axis{font-size:8px;letter-spacing:.1em}.chart .day{fill:var(--ink);font-size:9px;letter-spacing:.08em;text-transform:uppercase}.chart-tooltip{position:absolute;z-index:4;padding:7px 10px;background:#080c15f5;border:1px solid var(--line);border-radius:7px;font-size:11px;line-height:1.45;color:var(--ink);pointer-events:none;white-space:nowrap;box-shadow:0 6px 20px #0000008c;transform:translateY(-100%)}.chart-tooltip i{color:var(--muted)}.timeline{display:flex;align-items:center;gap:14px;width:min(600px,84vw);padding:9px 15px;background:var(--panel);border:1px solid var(--line);border-radius:999px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.play{flex:none;width:29px;height:29px;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--ink);font-size:10px;cursor:pointer;line-height:1}.play:hover{border-color:#a0c8ff80}#slider{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:3px;border-radius:2px;background:#82a0d240;cursor:pointer}#slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:13px;height:13px;border-radius:50%;background:var(--ink)}#slider::-moz-range-thumb{width:13px;height:13px;border:none;border-radius:50%;background:var(--ink)}.clock{flex:none;width:122px;text-align:right;font-variant-numeric:tabular-nums;font-size:11.5px}.clock .state{display:block;font-size:8.5px;letter-spacing:.14em;color:var(--muted)}.clock .state.live{color:var(--relief)}.caveat{margin:0;max-width:92vw;text-align:center;font-size:9.5px;color:var(--muted)}.error{top:50%;left:50%;transform:translate(-50%,-50%);max-width:420px;padding:18px 22px;background:var(--panel);border:1px solid rgba(255,140,140,.35);border-radius:10px;text-align:center;pointer-events:auto}.error code{display:inline-block;margin-top:8px;padding:4px 9px;background:#ffffff12;border-radius:4px;font-size:12px}@media (max-width: 1100px){.legend{display:none}}@media (max-width: 760px){.panel,.settings{display:none}}
