/* All selectors are local to the scene. No app/chrome styles. */
.strom-scene{--ss-ink:#24443c;--ss-paper:#fff4d8;--ss-accent:#f1c870;position:relative;width:100%;min-width:0;overflow:hidden;border-radius:18px;background:#b6c795;isolation:isolate;font-family:"Segoe UI",system-ui,sans-serif;container-type:inline-size}
.strom-scene *{box-sizing:border-box}
.strom-scene .ss-canvas{display:block;width:100%;height:auto;overflow:hidden}
.strom-scene .ss-landscape,.strom-scene .ss-city-light > :not(.ss-object):not(.ss-position),.strom-scene .ss-position > :not(.ss-object),.strom-scene .ss-object > :not(.ss-label){filter:brightness(var(--ss-city-brightness,1))}
.strom-scene .ss-landmark{pointer-events:none}
.strom-scene .ss-landmark-light{opacity:var(--ss-night,0)}
.strom-scene .ss-label{filter:none}
.strom-scene .ss-label rect{fill:var(--ss-paper);stroke:#7b9179;stroke-width:1;fill-opacity:.97}
.strom-scene .ss-label text{fill:var(--ss-ink);font-size:14px;font-weight:700;pointer-events:none}
.strom-scene .ss-label .ss-value{font-size:12px;font-weight:500;font-variant-numeric:tabular-nums}
.strom-scene .ss-object{cursor:pointer;outline:none}
.strom-scene .ss-pick-area{fill:transparent}
.strom-scene .ss-object:hover .ss-label rect,.strom-scene .ss-object:focus-visible .ss-label rect,.strom-scene .ss-object.ss-selected .ss-label rect{fill:#ffe4a0;stroke:#254b40;stroke-width:3}
.strom-scene .ss-object:focus-visible .ss-label rect{stroke:#fff;stroke-width:5;paint-order:stroke fill}
.strom-scene .ss-object.ss-selected .ss-label text{fill:#172f2b}
.strom-scene .ss-window{fill:var(--ss-window-color,#56776a);opacity:var(--ss-window-opacity,.9);filter:brightness(var(--ss-label-brightness,1))}
.strom-scene .ss-panel{fill:#355e67;stroke:#d8ddbc;stroke-width:2;filter:brightness(var(--ss-solar-light,1))}
.strom-scene .ss-running-light{fill:#d3ed9b}
.strom-scene .ss-off .ss-running-light{fill:#7c867b}
.strom-scene .ss-status-text{fill:#fff4da;font-size:14px;font-weight:600}
.strom-scene .ss-shortage .ss-status-dot{fill:#ffa27b}
.strom-scene .ss-footnote{fill:#24443c;font-size:14px;font-weight:600}
.strom-scene .ss-rotor{animation:ss-spin var(--ss-wind-duration,12s) linear infinite;animation-play-state:var(--ss-wind-play,paused);transform-origin:0 0}
.strom-scene .ss-machine{animation:ss-spin calc(4s / var(--ss-speed,1)) linear infinite;animation-play-state:var(--ss-plant-play,paused);transform-origin:0 0}
.strom-scene .ss-industry-wheel{animation:ss-spin calc(5s / var(--ss-speed,1)) linear infinite;animation-play-state:var(--ss-industry-play,paused);transform-origin:0 0}
.strom-scene .ss-tram{animation:ss-travel calc(22s / var(--ss-speed,1)) ease-in-out infinite alternate;animation-play-state:var(--ss-transit-play,paused)}
.strom-scene .ss-grid-flow,.strom-scene .ss-battery-flow{animation:ss-flow calc(1.5s / var(--ss-speed,1)) linear infinite}
.strom-scene .ss-battery-fill{transform-box:fill-box;transform-origin:left center}
.strom-scene.ss-paused .ss-motion{animation-play-state:paused!important}
.strom-scene .ss-mobile-picker{display:none}
@keyframes ss-spin{to{transform:rotate(360deg)}}
@keyframes ss-travel{from{transform:translateX(-45px)}to{transform:translateX(152px)}}
@keyframes ss-flow{to{stroke-dashoffset:-42}}
@container (max-width:600px){
 .strom-scene .ss-mobile-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:10px;background:#213b35}
 .strom-scene .ss-mobile-picker button{appearance:none;min-height:48px;min-width:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:3px;padding:8px 12px;border:1px solid #647c6a;border-radius:9px;background:#314d42;color:#fff4d8;font:600 13px "Segoe UI",system-ui,sans-serif;cursor:pointer;text-align:left}
 .strom-scene .ss-mobile-picker button span+span{font-size:11px;font-weight:400;color:#d8e3cc;font-variant-numeric:tabular-nums}
 .strom-scene .ss-mobile-picker button.ss-selected{background:#efd29a;color:#213b35;border-color:#f6e2ba}
 .strom-scene .ss-mobile-picker button.ss-selected span+span{color:#344b3c}
 .strom-scene .ss-mobile-picker button:focus-visible{outline:3px solid #fff1bc;outline-offset:-3px}
 .strom-scene .ss-footnote{display:none}
}
@media(prefers-reduced-motion:reduce){.strom-scene .ss-motion{animation:none!important}}
