/* 19.38: one navigation bar, contextual operation, readable schematic. */
body.officer-mode{height:100dvh;overflow:hidden;background:#0a1a1e;--dock:330px}body.officer-mode main{height:100%;padding:0}body.officer-mode .game-bar{height:64px;padding:0 22px;background:#0a1b1e;border-bottom:1px solid #34504b;z-index:80}body.officer-mode .game-bar>b{font-size:20px}body.officer-mode .game-bar>b span{display:none}body.officer-mode .game-bar>div{display:flex;align-items:center;gap:8px}body.officer-mode .game-bar a{font-size:12px;color:#d9c18c}body.officer-mode .game-bar button{font-size:12px;padding:9px 14px;min-height:38px}body.officer-mode #officer-view{background:#d8bd83;color:#142b2a;border-color:#d8bd83}#officer-more{position:relative;color:#dde7df;font-size:12px}#officer-more>summary{cursor:pointer;list-style:none;border:1px solid #4c675f;border-radius:7px;padding:10px 16px;min-height:38px;box-sizing:border-box}#officer-more>summary::-webkit-details-marker{display:none}.officer-menu{position:absolute;right:0;top:48px;width:265px;max-height:calc(100dvh - 130px);overflow:auto;padding:12px;background:#10282a;border:1px solid #4b685f;border-radius:9px;box-shadow:0 15px 40px #0008;z-index:100}.officer-menu button,.officer-menu label,.officer-menu a{display:block!important;text-align:left;width:100%;margin:5px 0;box-sizing:border-box}.officer-menu label{padding:9px;color:#b9d1c3;font-size:12px!important;line-height:1.5}.officer-menu a{padding:9px}.officer-menu small{display:block;color:#94aea3;padding:10px;font-size:10px}.officer-menu input{accent-color:#d8bd83}.officer-mode .game-bar>div:has(#officer-more){gap:8px}
body.officer-mode .lab-layout{position:fixed;inset:64px 0 0;display:block;margin:0;z-index:1}body.officer-mode .network-stage{height:100%;border:0;border-radius:0;background:#0a191f;overflow:hidden}body.officer-mode #three-panel,body.officer-mode .canvas-host{height:100%!important}body.officer-mode .lab-toolbar,body.officer-mode .scene-actions,body.officer-mode .play-controls,body.officer-mode .mission-card,body.officer-mode .city-summary,body.officer-mode .scene-caption,body.officer-mode .officer-strip,body.officer-mode .telemetry-health{display:none!important}body.officer-mode .telemetry-health[data-health=failed],body.officer-mode .telemetry-health[data-health=recovering],body.officer-mode .telemetry-health[data-health=stale]{display:block!important;position:fixed;top:72px;bottom:auto;left:12px;right:auto;z-index:30;font-size:11px;max-width:calc(100vw - 30px)}
.officer-status{position:fixed;left:14px;bottom:14px;display:flex;gap:14px;align-items:center;z-index:25;padding:7px 10px;background:#0b2429e8;border:1px solid #4d6b63;border-radius:7px;color:#c8ddd0;font:11px system-ui;max-width:calc(100vw - 28px)}.officer-status button{font-size:10px!important;min-height:28px!important;padding:5px 8px!important;background:transparent!important}.officer-mode #city-labels button{font-size:11px;padding:7px 10px;max-width:220px}.officer-mode #city-labels .supply-alert{border-color:#db8673;background:#4b2927}
.officer-dock{display:none;position:fixed;right:12px;top:76px;bottom:12px;width:var(--dock);max-width:calc(100vw - 24px);overflow:auto;background:#10272a;border:1px solid #426059;border-radius:9px;z-index:35;overscroll-behavior:contain;box-shadow:0 8px 40px #0005}.officer-mode.inspect-open .officer-dock{display:block}.officer-mode.network-open.inspect-open .lab-layout{right:calc(var(--dock) + 24px)}.officer-mode .officer-dock .inspector{display:block;position:static;inset:auto;width:100%;max-height:none;border:0;padding:16px;background:transparent;box-shadow:none;overflow:visible}.officer-mode .officer-dock .inspector>label,.officer-mode .officer-dock #asset-select,.officer-mode .officer-dock #inspector-close{display:none}.context-close{display:block;margin:10px 10px 0 auto;font-size:11px!important;min-height:30px!important}.officer-mode .inspector h2{font-size:22px;margin:5px 0 14px;line-height:1.2}.officer-mode .inspector .eyebrow{font-size:8px!important;margin:3px 0 8px!important}.officer-mode .inspector .reading{font-size:12px;padding:9px 0;gap:12px}.officer-mode .inspector .reading b{max-width:65%;line-height:1.5}.officer-mode #asset-controls{border-top:0;margin-top:14px;padding-top:0}.context-visual{margin:0 0 12px;background:#0a1e22;border-radius:7px;overflow:hidden;height:100px;display:flex;justify-content:center}.context-visual img{width:100%;height:100%;object-fit:contain}.context-visual:has(img[src*=cover]) img{object-fit:cover}.context-actions{display:flex;gap:8px;margin-bottom:12px}.context-actions button{flex:1;min-height:44px!important;font-size:13px!important}.context-actions button:first-child{background:#d6bc84!important;color:#132c2b!important;border-color:#d6bc84!important}.context-feedback:empty{display:none}.context-feedback{font-size:12px;color:#a5d6c4;line-height:1.6;margin:10px 0}.context-feedback[data-error=true]{color:#ffbaa4}.context-plan,.context-advanced{border-top:1px solid #3c5852;padding:12px 0;margin:0}.context-plan>summary,.context-advanced>summary{cursor:pointer;color:#ddc58e;font-size:13px;line-height:1.5}.context-plan p,.context-advanced p{font-size:11px;color:#abc2b7;line-height:1.6}.context-plan small{display:block;font-size:10px;color:#92aaa0;line-height:1.6;margin-top:12px}.officer-mode #asset-controls .context-fields label{display:block;margin:12px 0;font-size:11px}.officer-mode #asset-controls .context-fields input{display:block;width:100%;margin-top:6px;padding:10px;font-size:13px}.context-plan [data-context-action=test],.context-plan [data-context-action=apply]{width:100%;margin-top:12px}.context-plan [data-context-action=apply]{background:#d7bc84;color:#122c29}.context-plan [hidden]{display:none!important}.context-comparison{font-size:11px;color:#b5d5c9}.context-comparison p{padding:7px 0;border-bottom:1px solid #2b4942;margin:0}.context-more-actions{display:grid;gap:8px;margin-top:12px}.context-more-actions button{text-align:left;font-size:12px}.context-more-actions label{font-size:11px}.officer-mode #asset-note{font-size:10px;line-height:1.6;color:#9bb5a8;margin-top:14px}
body.city-lab.officer-mode #network-panel:not([hidden]){height:100%;padding:0;display:grid;grid-template-rows:52px minmax(0,1fr);background:#0a191f;overflow:hidden}body.officer-mode #network-panel>.flow-map-head{grid-row:1;padding:8px 18px;height:52px;min-height:0;border-bottom:1px solid #294440;gap:12px}body.officer-mode .flow-map-head b{font-size:13px}.officer-mode .flow-map-head span{display:none!important}.officer-mode .flow-map-head>div:last-child{display:flex;gap:6px}.officer-mode .flow-map-head button{font-size:11px;min-height:30px;padding:5px 10px}body.city-lab.officer-mode #network-panel>#flow-map{grid-row:2;width:100%!important;min-height:0;height:100%!important;padding:14px 15px 65px!important;box-sizing:border-box;overflow:auto;background:radial-gradient(ellipse at 40% 30%,#183337,#0a191f 80%);touch-action:none}body.officer-mode #network-process-panel,body.officer-mode #network-navigation{display:none!important}body.officer-mode #flow-map .city-schematic{display:block;width:100%!important;height:auto!important;min-width:1000px;max-width:none;margin:0;user-select:none;touch-action:none;cursor:grab}body.officer-mode #flow-map.schematic-fit .city-schematic{height:100%!important;min-width:0;width:100%!important}body.officer-mode #flow-map .city-schematic:active{cursor:grabbing}
.officer-readings{display:none;position:fixed;right:12px;top:76px;width:min(660px,calc(100vw - 24px));max-height:calc(100dvh - 90px);overflow:auto;padding:14px;background:#10272a;border:1px solid #4a665f;border-radius:9px;z-index:55}.readings-open .officer-readings{display:block}.officer-readings>button{display:block;margin-left:auto;margin-bottom:12px}.officer-mode .officer-readings .lab-metrics{display:grid!important;position:static;transform:none;inset:auto;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:0;border:1px solid #36564d;background:#36564d}.officer-mode .officer-readings .lab-metrics>div{display:block!important;padding:14px;background:#0f282c}.officer-readings .lab-metrics span{display:block;color:#9dbbac;font-size:11px}.officer-readings .lab-metrics strong{display:block;font-size:19px;margin-top:5px}.officer-mode.settings-open .lab-title{display:block!important;z-index:95;top:76px;right:12px}.officer-mode.settings-open .lab-toolbar{display:grid!important;z-index:95;top:210px;left:auto;right:12px}.officer-mode.settings-open .lab-toolbar .view-tabs{display:none!important}
#officer-notices{width:min(880px,95vw);max-height:85dvh;overflow:auto;padding:22px;background:#0d2428;color:#dfebe2;border:1px solid #4e6b60;border-radius:10px}#officer-notices::backdrop{background:#031216bb}#officer-notices>.close-notices{float:right}#officer-notices h2{font-size:21px}#officer-notices .lab-bottom{display:grid!important;grid-template-columns:1fr;gap:14px;margin-top:20px}.officer-mode .game-bar b:after{content:' / CITY WATER';font-size:9px;letter-spacing:2px;color:#a6b8aa;margin-left:10px;font-weight:400}
@media(max-width:760px){body.officer-mode .game-bar{height:56px;padding:0 10px;gap:6px}body.officer-mode .game-bar>b{display:none}body.officer-mode .game-bar button{padding:7px 10px;font-size:11px;min-height:36px}body.officer-mode .game-bar>div:has(#officer-more){gap:5px}body.officer-mode .lab-layout{top:56px;bottom:0;right:0;left:0}.officer-mode.inspect-open .officer-dock{top:auto;bottom:8px;left:8px;right:8px;width:auto;max-height:46dvh;max-width:none}.officer-mode.network-open.inspect-open .lab-layout{right:0;bottom:calc(46dvh + 16px)}.officer-dock .inspector{padding:12px}.context-visual{height:75px}.officer-mode .officer-dock input,.officer-mode .officer-dock select{font-size:16px!important}.officer-status{bottom:8px;left:8px;font-size:10px;gap:8px;padding:5px 8px}.officer-mode.inspect-open .officer-status{display:none}.officer-menu{right:0;width:245px}.officer-mode .game-bar a{font-size:10px}.officer-readings{top:65px}.officer-mode #network-panel>.flow-map-head{padding:6px 10px}.officer-mode .flow-map-head b{font-size:11px}.officer-mode .flow-map-head button{font-size:10px;padding:5px 7px}body.city-lab.officer-mode #network-panel>#flow-map{padding:8px 8px 54px!important}.officer-mode .game-bar b:after{display:none}}
@media(prefers-reduced-motion:reduce){.city-schematic .running .pump-rotor,.city-schematic .running .process-water{animation:none}}
.city-schematic .schematic-groups path{stroke:#30484b;stroke-width:1;fill:none}.city-schematic .schematic-groups text{fill:#9db4ad;font:9px system-ui;letter-spacing:1.4px}.city-schematic .schematic-labels text{fill:#cebe99;font:11px system-ui;letter-spacing:2px}.city-schematic .scada-pipe{fill:none;stroke:#3c555c;stroke-width:11;stroke-linejoin:round;stroke-linecap:round}.city-schematic .scada-water{fill:none;stroke:#263c45;stroke-width:6;stroke-linejoin:round;stroke-linecap:round}.city-schematic .filled .scada-water{stroke:#326579}.city-schematic .flowing .scada-water{stroke:#40869b}.city-schematic .scada-motion{fill:none;stroke:#a6e3ea;stroke-width:2.5;stroke-dasharray:8 20;opacity:0;pointer-events:none}.city-schematic .flowing .scada-motion{opacity:1}.city-schematic .paused .scada-motion{opacity:.35}.city-schematic .scada-hit{stroke:transparent;stroke-width:20;fill:none;cursor:pointer}.city-schematic [data-pipe].selected .scada-pipe{stroke:#b59957}.city-schematic [data-pipe]:focus .scada-pipe{stroke:#e7cf92;outline:none}.city-schematic .equipment-selection{fill:#d2be8110;stroke:#d9bd7a;stroke-width:1.5;opacity:0;pointer-events:none}.city-schematic .scada-equipment{cursor:pointer;outline:none}.city-schematic .scada-equipment.selected>.equipment-selection,.city-schematic .scada-equipment:hover>.equipment-selection,.city-schematic .scada-equipment:focus>.equipment-selection{opacity:1}.city-schematic .scada-equipment.alert>.equipment-selection{opacity:1;stroke:#f18878;fill:#d5533b12}.city-schematic .scada-equipment.held>.equipment-selection{opacity:.5;stroke:#e6be68}.city-schematic .equipment-title{fill:#e3e9df;font:600 12px system-ui}.city-schematic .equipment-reading{fill:#87d2df;font:11px system-ui;font-variant-numeric:tabular-nums}.city-schematic .equipment-status{fill:#92b5a4;font:8px system-ui;letter-spacing:.5px}.city-schematic .alert .equipment-status{fill:#f5ac9b}.city-schematic .held .equipment-status{fill:#e5c181}.city-schematic .auxiliary .equipment-title{font-size:9px}.city-schematic .auxiliary .equipment-reading{font-size:8px}.city-schematic .compact .equipment-title{font-size:10px}.city-schematic .compact .equipment-reading{font-size:9px}.city-schematic .compact .equipment-status{font-size:7px}.city-schematic .level-track{fill:#152e37;stroke:#7495a1;stroke-width:1}.city-schematic .equipment-level{fill:#6fcad5}.city-schematic .level-track,.city-schematic .equipment-level{pointer-events:none}.city-schematic .valve-state{stroke:#76c9b4;stroke-width:4;opacity:calc(.25 + var(--position)*.75)}.city-schematic .pump-housing{fill:#537886;stroke:#c1d1d1;stroke-width:2}.city-schematic .pump-rotor{fill:#d5b36a;stroke:#e6d9ac;stroke-width:1;transform-origin:center}.city-schematic .running .pump-rotor{animation:scada-pump-spin 2.8s linear infinite}.city-schematic .paused .pump-rotor{animation-play-state:paused}.city-schematic .pump-base{fill:#687d7d;stroke:#b0bcb1;stroke-width:1}.city-schematic .pump-motor{fill:#a29666;stroke:#c6bf9c;stroke-width:2}.city-schematic .process-symbol{fill:#264c53;stroke:#bed3cf;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.city-schematic .process-water{fill:#79d2e0}.city-schematic .running .process-water{animation:scada-dose 1.4s ease-in-out infinite}.city-schematic .customer-houses{fill:#718c88;stroke:#adc3b7;stroke-width:1}.city-schematic .alert .customer-houses{fill:#a35c52}.city-schematic .scada-equipment>text{pointer-events:none}.city-schematic .equipment-art{pointer-events:none}
.city-schematic .inline-flange{fill:none;stroke:#769ba6;stroke-width:8;stroke-linecap:round}.city-schematic .inline-valve{fill:#365f6d;stroke:#cad9d8;stroke-width:2}.city-schematic .actuator-shaft{fill:none;stroke:#c9b477;stroke-width:3}.city-schematic .valve .equipment-title{font-size:11px}.city-schematic .valve .equipment-reading{font-size:10px}.city-schematic .valve .equipment-status{font-size:7px}.city-schematic .compact .equipment-art image{width:19px;height:45px;x:13px;y:-27px}.city-schematic .compact .inline-flange{stroke-width:5}.city-schematic .compact .inline-valve{stroke-width:1.5}
.city-schematic .equipment-title,.city-schematic .equipment-reading,.city-schematic .equipment-status{paint-order:stroke;stroke:#0a191f;stroke-width:3px;stroke-linejoin:round}.city-schematic .equipment-status{stroke-width:2px}
.city-schematic .equipment-title{font-size:15px}.city-schematic .equipment-reading{font-size:13px}.city-schematic .equipment-status{font-size:10px}.city-schematic .valve .equipment-title{font-size:13px}.city-schematic .valve .equipment-reading{font-size:12px}.city-schematic .valve .equipment-status{font-size:9px}.city-schematic .auxiliary .equipment-title{font-size:12px}.city-schematic .auxiliary .equipment-reading{font-size:10px}.city-schematic .compact .equipment-title{font-size:12px}.city-schematic .compact .equipment-reading{font-size:10px}.city-schematic .compact .equipment-status{font-size:8px}
@keyframes scada-pump-spin{to{transform:rotate(360deg)}}@keyframes scada-dose{50%{opacity:.3}}
.city-schematic .pump-fins{fill:none;stroke:#d4d5c0;stroke-width:2}.city-schematic .reservoir-body{fill:#607b80;stroke:#bdcbc4;stroke-width:2}.city-schematic .reservoir-rim{fill:#c5cec2;stroke:#dae1cf;stroke-width:2}.city-schematic .reservoir-water{fill:#37879e;stroke:#8ed5dc;stroke-width:1}.city-schematic .pump-rotor{transform-origin:-9px 1px}
.context-equipment-icon{display:block;width:100%;height:100%;max-width:270px}.officer-mode.settings-open .lab-title>div:not(.lab-actions){display:none!important}.officer-mode.settings-open .lab-title{max-height:150px;overflow:auto}.officer-mode.settings-open .lab-toolbar{top:245px!important}.legacy-control-return{width:100%;margin-bottom:12px}
.context-equipment-icon .context-water{opacity:.25}.context-equipment-icon[data-running=true] .context-water{opacity:1;stroke-dasharray:7 4;animation:context-water-motion 1.4s linear infinite}.context-equipment-icon[data-paused=true] .context-water{animation-play-state:paused}@keyframes context-water-motion{to{stroke-dashoffset:-22}}@media(prefers-reduced-motion:reduce){.context-equipment-icon .context-water{animation:none!important}}
/* 19.41: SCADA always has an operating panel, even before selection. */
body.officer-mode{--dock:360px}.officer-mode.network-open .officer-dock{display:block}.officer-mode.network-open .lab-layout{right:calc(var(--dock) + 24px)}.officer-mode:not(.inspect-open) .officer-dock .inspector,.officer-mode:not(.inspect-open) .context-close{display:none}.officer-panel-empty{padding:20px;color:#b6cdc1;font:13px/1.7 system-ui}.officer-panel-empty h2{font-size:25px;line-height:1.2;color:#e5eadd}.officer-panel-empty ol{padding-left:19px}.officer-panel-empty li{margin:14px 0}.officer-panel-empty small{color:#91ada1;font-size:11px}.panel-equipment-preview{height:110px;background:#0b2024;border-radius:8px}.panel-equipment-preview svg{margin:auto}.panel-city-status{padding:12px 0;border-top:1px solid #39574e;font-variant-numeric:tabular-nums}.officer-mode.inspect-open .officer-panel-empty{display:none}.officer-asset-finder{display:block!important;padding:15px 15px 12px;font:11px system-ui;color:#a9c3b6;border-bottom:1px solid #36544d}.officer-asset-finder select{display:block;width:100%;margin-top:7px;min-height:42px;padding:9px;background:#0c2227;color:#e0e8dc;border:1px solid #527368;border-radius:6px;font:13px system-ui}.context-mode-switch{display:flex;gap:4px;padding:4px;margin:0 0 14px;background:#071e22;border:1px solid #35554c;border-radius:8px}.context-mode-switch button{flex:1;min-height:39px;font-size:12px;background:transparent;color:#b8cec0;border:0}.context-mode-switch button[aria-pressed=true]{background:#cbb47c;color:#122b28}.officer-mode .inspector[data-context-mode=operate] .context-plan{display:none}.officer-mode .inspector[data-context-mode=plan] .context-actions,.officer-mode .inspector[data-context-mode=plan] .context-advanced{display:none}.officer-mode .inspector[data-context-mode=plan] .context-plan>summary{pointer-events:none;list-style:none;font-size:16px;margin-bottom:10px}.officer-mode .inspector[data-context-mode=plan] .context-plan>summary::-webkit-details-marker{display:none}.comparison-heading{color:#f0d69a!important;font-weight:700}.officer-mode .flow-map-head select{max-width:155px;background:#0c2227;color:#d3e1d3;border:1px solid #456559;padding:6px;border-radius:5px;font:11px system-ui}.officer-mode .flow-map-head b{display:none}.officer-mode #network-panel>.flow-map-head{grid-template-columns:1fr;justify-content:flex-end}.officer-mode .flow-map-head>div:last-child{flex-wrap:wrap}.officer-mode #network-panel>.flow-map-head{height:auto;min-height:52px}.officer-mode #network-panel:not([hidden]){grid-template-rows:auto minmax(0,1fr)}
@media(max-width:760px){.officer-mode.network-open:not(.inspect-open) .officer-dock{top:auto;left:8px;right:8px;bottom:8px;width:auto;max-width:none;max-height:120px}.officer-mode.network-open:not(.inspect-open) .officer-panel-empty,.officer-mode.network-open:not(.inspect-open) .context-close{display:none}.officer-mode.network-open:not(.inspect-open) .lab-layout{right:0;bottom:110px}.officer-mode.network-open .lab-layout{right:0}.officer-mode.network-open:not(.inspect-open) .officer-status{display:none}.officer-asset-finder{padding:10px 12px}.officer-asset-finder select{font-size:16px}.officer-mode .flow-map-head select{max-width:135px;min-height:34px}.officer-mode .flow-map-head button{min-height:34px}.officer-mode .flow-map-head>div:last-child{gap:4px}.officer-mode .inspector[data-context-mode=plan] .context-visual{display:none}}
.city-schematic .reservoir-land{fill:#3e6155;stroke:#89a497;stroke-width:1.5}.city-schematic .dam-face{fill:#8d9f9c;stroke:#ccd4c7;stroke-width:2}.city-schematic .dam-gate{fill:none;stroke:#435d61;stroke-width:5}.city-schematic .dam-rail{fill:none;stroke:#d5bf8a;stroke-width:1.5}.city-schematic .scada-equipment.selected>.equipment-selection{stroke-width:2.5}.city-schematic .scada-equipment.alert .equipment-status{font-weight:700}
/* 19.40: photoreal equipment, port-derived pipework and state-driven motion. */
body.officer-mode #flow-map .realistic-scada{min-width:1100px}.realistic-scada .scada-pipe{stroke:#526e77;stroke-width:11}.realistic-scada .scada-water{stroke-width:6}.realistic-scada .flowing .scada-water{stroke:#4b9db5}.realistic-scada .scada-motion{stroke-width:2;stroke-dasharray:5 23}.realistic-scada .equipment-selection{fill:#d2be8107;stroke:#ceb77c;opacity:0}.realistic-scada .equipment-title{font:500 14px system-ui;stroke-width:2px}.realistic-scada .equipment-reading{font:12px system-ui;stroke-width:2px}.realistic-scada .equipment-status{font:9px system-ui;letter-spacing:.6px;stroke-width:2px}.realistic-scada .ward .equipment-title,.realistic-scada .valve .equipment-title{font-size:12px}.realistic-scada .ward .equipment-reading,.realistic-scada .valve .equipment-reading{font-size:11px}.realistic-scada .boundary-title{fill:#9ebcaf;font:11px system-ui}.realistic-scada .physical-junction{fill:#b7d0ca;stroke:#294d58;stroke-width:1.5}.realistic-scada .schematic-labels text{font:12px system-ui;letter-spacing:1.2px;fill:#cdbc93}.realistic-scada .medium-chemical .scada-pipe{stroke:#786849;stroke-width:5}.realistic-scada .medium-chemical .scada-water{stroke:#a7925e;stroke-width:3}.realistic-scada .medium-chemical.flowing .scada-motion{stroke:#ecd4a1;stroke-width:1.5}.realistic-scada .medium-sludge .scada-pipe{stroke:#665e4e;stroke-width:8}.realistic-scada .medium-sludge .scada-water{stroke:#726548;stroke-width:4}.realistic-scada .medium-sludge.flowing .scada-motion{stroke:#c6b792;stroke-width:1.8}.realistic-scada .service-underground .scada-pipe{stroke:#384943;stroke-width:16}.realistic-scada .service-underground .scada-water{stroke:#4c8394;stroke-width:5}.realistic-scada .actuator-position-track{stroke:#3d534a;stroke-width:3}.realistic-scada .actuator-position-fill{stroke:#d8c48a;stroke-width:3;stroke-dasharray:34;stroke-dashoffset:calc(34 - var(--position,0)*34)}.realistic-scada .working-effects,.realistic-scada .park-water{opacity:0;pointer-events:none}.realistic-scada .running .working-effects,.realistic-scada .park-running .park-water{opacity:1}.realistic-scada .running .water-ripple{animation:real-water-ripple 2.4s ease-out infinite;transform-box:fill-box;transform-origin:center}.realistic-scada .pump-pulse{animation:real-pump-pulse 1.4s ease-in-out infinite;transform-origin:center;transform-box:fill-box}.realistic-scada .dose-pulse{animation:real-dose-pulse 1.5s steps(2) infinite}.realistic-scada .sludge-motion{animation:real-waste-flow 2s linear infinite}.realistic-scada .tap-motion{stroke-dasharray:3 4;animation:real-waste-flow .8s linear infinite}.realistic-scada .oht-riser-motion path{stroke:#8cdae4;stroke-width:2;stroke-dasharray:3 17;fill:none;animation:real-waste-flow 1.6s linear infinite}.realistic-scada .oht-riser-motion path:first-child{animation-direction:reverse}.realistic-scada .paused .working-effects{animation-play-state:paused;opacity:0}.context-real-equipment{width:100%;height:100%;display:block}.context-visual:has(.context-real-equipment){height:145px;background:radial-gradient(#173b3f,#0b2024)}.officer-mode .context-actions{flex-wrap:wrap}.context-actions [data-context-action=process]{flex-basis:100%;background:transparent!important;color:#d5c28c!important;font-size:12px!important}.realistic-scada .equipment-art{pointer-events:none}.realistic-scada [data-equipment]{touch-action:none}
@keyframes real-water-ripple{0%{opacity:.8;transform:scale(.85)}100%{opacity:0;transform:scale(1.35)}}@keyframes real-pump-pulse{50%{opacity:.4;transform:scale(.85)}}@keyframes real-dose-pulse{50%{opacity:.25}}@keyframes real-waste-flow{to{stroke-dashoffset:-20}}@media(prefers-reduced-motion:reduce){.realistic-scada *{animation:none!important}.realistic-scada .working-effects{opacity:.3}.realistic-scada .scada-motion{opacity:0!important}}@media(max-width:760px){.context-visual:has(.context-real-equipment){height:105px}body.officer-mode #flow-map .realistic-scada{min-width:900px}.officer-mode #flow-map.schematic-fit .realistic-scada{min-width:0}}
.realistic-scada .pipe-crossing-gap{fill:#0a2025;stroke:#0a2025;stroke-width:1}.realistic-scada .filter-wash-effect{opacity:0;pointer-events:none}.realistic-scada .backwashing .filter-wash-effect{opacity:.8}.realistic-scada .filter-wash-effect path{animation:real-waste-flow 1.5s linear infinite;animation-direction:reverse}.realistic-scada .paused .filter-wash-effect{opacity:0}
.realistic-scada .oht-riser-motion path{opacity:0}.realistic-scada .filling .inlet-motion,.realistic-scada .supplying .outlet-motion{opacity:1}.realistic-scada.paused .oht-riser-motion path{opacity:0}.realistic-scada .equipment-level{transition:y .25s linear,height .25s linear}.realistic-scada.paused .equipment-level{transition:none}.context-horizon{display:block;font-size:12px;margin:18px 0}.context-horizon select{width:100%;margin-top:8px;padding:10px;background:#102c30;color:#dce6da;border:1px solid #4e6b5d;border-radius:5px}
.realistic-scada .oht-riser-motion path:first-child,.realistic-scada .filter-wash-effect path{animation-direction:normal}
