/* Scoped physical equipment scenes. Full-machine overview with optional native zoom on small screens. */
.eq-scene{margin:0;min-width:0;background:#f5f8fb;border:1px solid #d8e2ec;border-radius:14px;overflow:hidden;color:#193247;text-align:left}
.eq-scene .eq-scroll{overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;background:linear-gradient(#fbfdff,#f1f6fa);padding:5px 0}
.eq-scene .eq-scroll:focus-visible{outline:3px solid #cc8a28;outline-offset:-4px}
.eq-scene .eq-svg{display:block;width:100%;max-width:880px;height:auto;margin:auto;font-family:system-ui,-apple-system,'Noto Sans TC',sans-serif;fill:none;stroke:#557083;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.eq-scene:has(.eq-zoom-control input:checked) .eq-svg{min-width:620px}
.eq-scene .eq-zoom-control{display:flex;align-items:center;gap:10px;min-height:44px;padding:8px 13px;font-size:13px;line-height:1.5;color:#45657c;cursor:pointer;background:#fff;border-bottom:1px solid #e0e8ee}
.eq-scene .eq-zoom-control input{width:20px;height:20px;accent-color:#2a7495;flex-shrink:0;cursor:pointer}
.eq-scene .eq-key{list-style:none;padding:11px 15px;margin:0;display:flex;flex-wrap:wrap;gap:7px 15px;font-size:13px;line-height:1.7;background:#edf4f8;color:#35586d;border-top:1px solid #dce7ef}
.eq-scene .eq-key li{padding:0;margin:0}
.eq-scene .eq-svg text{fill:#213d51;stroke:none;font-weight:550;font-size:18px}
.eq-scene .eq-svg .eq-heading{font-size:21px;font-weight:750;fill:#183c57}
.eq-scene .eq-svg .eq-small{font-size:17px;fill:#466176;font-weight:500}
.eq-scene .eq-svg .eq-label{font-size:18px;font-weight:650}
.eq-scene .eq-metal,.eq-scene .eq-gearbox{fill:#dce6ed;stroke:#5d7587;stroke-width:2.4}
.eq-scene .eq-fin{stroke:#8b9eac;stroke-width:1.6}
.eq-scene .eq-shaft{stroke:#61798b;stroke-width:7}
.eq-scene .eq-chamber,.eq-scene .eq-tank,.eq-scene .eq-trough,.eq-scene .eq-motor-cutaway{fill:#e5edf3;stroke:#5b788c;stroke-width:3}
.eq-scene .eq-window{fill:#fcfdfd;stroke:#b6c8d4;stroke-width:1.5}
.eq-scene .eq-bean{fill:#b88756;stroke:#795430;stroke-width:1}
.eq-scene .eq-duct{stroke:#d2dfe8;stroke-width:29;fill:none}
.eq-scene .eq-air{stroke:#9bafbe;stroke-width:3;stroke-dasharray:8 8}
.eq-scene .eq-arrow{stroke:#58768a;stroke-width:3;fill:none}
.eq-scene .eq-flow-on,.eq-scene .eq-active .eq-badge{stroke:#18849b!important}
.eq-scene .eq-flow-on{stroke-width:4}
.eq-scene .eq-active .eq-metal,.eq-scene .eq-active .eq-pump{fill:#d8eff0;stroke:#24889a}
.eq-scene .eq-blade{fill:#adc3d2;stroke:#5c7e94;stroke-width:1.7}
.eq-scene .eq-hub{fill:#5e8098;stroke:#fff}
.eq-scene .eq-heater{fill:#e9edf0;stroke:#8496a3;stroke-width:2}
.eq-scene .eq-heating{fill:#ffdfc1;stroke:#c26526}
.eq-scene .eq-hot{stroke:#dd6b26;stroke-width:4;fill:none}
.eq-scene .eq-warm{stroke:#c58f5d;stroke-width:3;stroke-dasharray:3 5}
.eq-scene .eq-residual{fill:#f6e7d8;stroke:#bd946d}
.eq-scene .eq-element{stroke:#778d9c;stroke-width:2.5;fill:none}
.eq-scene .eq-mesh{stroke:#a5b5bf;stroke-width:3;stroke-dasharray:2 5}
.eq-scene .eq-signal{stroke:#9175ac;stroke-width:2;stroke-dasharray:5 5;fill:none}
.eq-scene .eq-sensor{fill:#6d8d9e;stroke:#fff;stroke-width:2}
.eq-scene .eq-active .eq-sensor{fill:#16899a;stroke:#146d80}
.eq-scene .eq-panel{fill:#edf1f7;stroke:#899db0;stroke-width:2}
.eq-scene .eq-badge{fill:#f8fbfd;stroke:#c0ced9;stroke-width:1.5}
.eq-scene .eq-indicator{fill:#8da1ae;stroke:none}
.eq-scene .eq-active .eq-indicator{fill:#18849b}
.eq-scene .eq-winding-end{fill:#7b8f9f;stroke:none}
.eq-scene .eq-exhaust{stroke:#9aabba;stroke-width:5;stroke-dasharray:4 7}
.eq-scene .eq-pipe{stroke:#9db2c2;stroke-width:13;fill:none}
.eq-scene .eq-hose{stroke:#617f96;stroke-width:9;fill:none}
.eq-scene .eq-valve{fill:#e3eaf0;stroke:#71899b}
.eq-scene .eq-active .eq-valve{fill:#d9edf0;stroke:#22869a}
.eq-scene .eq-piston{fill:#92a9b9;stroke:#56758d}
.eq-scene .eq-crank{stroke:#6b879b;stroke-width:9}
.eq-scene .eq-belt{stroke:#9baebb;stroke-width:6;fill:none}
.eq-scene .eq-gauge{fill:white;stroke:#698498;stroke-width:3}
.eq-scene .eq-needle{stroke:#bd732b;stroke-width:3}
.eq-scene .eq-tool{fill:#b2c7d7;stroke:#5b7b92;stroke-width:2}
.eq-scene .eq-belt-body{fill:#dce7ee;stroke:#5d7b90;stroke-width:3}
.eq-scene .eq-roller{fill:#eff5f8;stroke:#7c99ad;stroke-width:2}
.eq-scene .eq-belt-surface{stroke:#6b879b;stroke-width:6;fill:none}
.eq-scene .eq-leg,.eq-scene .eq-tower-leg{stroke:#8fa6b7;stroke-width:6;fill:none}
.eq-scene .eq-drive{stroke:#7d96a7;stroke-width:4;fill:none}
.eq-scene .eq-sensor-arm{stroke:#7d8e9b;stroke-width:4;fill:none}
.eq-scene .eq-photo-beam{stroke:#c28b47;stroke-width:2;stroke-dasharray:3 5}
.eq-scene .eq-carton{fill:#e4c18c;stroke:#b28a56;stroke-width:2.5}
.eq-scene .eq-carton-seam{stroke:#bc935f;stroke-width:1.5}
.eq-scene .eq-metal-target{fill:#aabdc9;stroke:#536e80;stroke-width:1}
.eq-scene .eq-unlocated{fill:#f1e6d2;stroke-dasharray:4 5}
.eq-scene .eq-water{fill:#b6dce9;stroke:none}
.eq-scene .eq-water-flow{stroke:#268ea8;stroke-width:7;fill:none}
.eq-scene .eq-pump{fill:#e0e9f0;stroke:#658499;stroke-width:3}
.eq-scene .eq-electrode{stroke:#9f8559;stroke-width:4;fill:none}
.eq-scene .eq-winding path{stroke-width:4;fill:none}
.eq-scene .eq-coil-u{stroke:#bd7856}.eq-scene .eq-coil-v{stroke:#a68f4b}.eq-scene .eq-coil-w{stroke:#668fa9}
.eq-scene .eq-terminal-box{fill:#e9edf1;stroke:#92a9b9;stroke-width:2}
.eq-scene .eq-terminal{fill:#e0c18c;stroke:#927446;stroke-width:2.5}
.eq-scene .eq-cable{stroke:#a2b3bf;stroke-width:14;fill:none}
.eq-scene .eq-connection{stroke-width:6;fill:none}
.eq-scene .eq-star{stroke:#2b8e9b}.eq-scene .eq-delta{stroke:#3979b1}
.eq-scene .eq-source{stroke:#94a8b7;stroke-width:3;fill:none}
.eq-scene .eq-junction{fill:#2b8e9b;stroke:white}
.eq-scene .eq-open-winding{stroke:#a6b5bf;stroke-width:5;stroke-dasharray:6 6}
.eq-scene .eq-hopper,.eq-scene .eq-outlet{fill:#e1eaf0;stroke:#7a95a8;stroke-width:2.5}
.eq-scene .eq-auger{stroke:#9aabb7;stroke-width:5;fill:none}
.eq-scene .eq-auger.eq-active{stroke:#338fa1}
.eq-scene .eq-material-roll{fill:#eadfce;stroke:#ad9878;stroke-width:3}
.eq-scene .eq-material{fill:#e7c38b;stroke:#b18b55;stroke-width:1.5}
.eq-scene .eq-rubber{fill:#99aebe;stroke:#58758b;stroke-width:3}
.eq-scene .eq-rubber.eq-active{fill:#b8dbdf;stroke:#238596}
.eq-scene figcaption{padding:14px 17px 10px;color:#284e66;font-size:15px;line-height:1.8;font-weight:550;background:#fff}
.eq-scene .eq-details{padding:0 17px 14px;background:#fff;font-size:14px;line-height:1.8;color:#526c7d}
.eq-scene .eq-details summary{min-height:44px;display:list-item;align-content:center;cursor:pointer;font-weight:650;color:#406b87}
.eq-scene .eq-details p{font-size:14px;margin:2px 0 0}
@media(max-width:600px){.eq-scene figcaption{padding:12px 13px 7px}.eq-scene .eq-details{padding:0 13px 12px}}
/* Moving physical relations; classes exist only while that snapshot's output is active. */
.eq-scene .eq-spin{transform-box:view-box;animation:eq-rotate 1.8s linear infinite}
.eq-scene .eq-flow{stroke-dasharray:9 13;animation:eq-flow .85s linear infinite;fill:none}
.eq-scene .eq-flow-trace{stroke:#16849d;stroke-width:5}
.eq-scene .eq-paper-motion{stroke:#b78345;stroke-width:7;stroke-dasharray:3 24}
.eq-scene .eq-drive-motion{stroke:#426f83;stroke-width:4}
.eq-scene .eq-belt-motion{stroke:#d5edf1;stroke-width:5;stroke-dasharray:8 14}
.eq-scene .eq-water-motion{stroke:#e2faff;stroke-width:4}
.eq-scene .eq-grain-motion{stroke:#a66d37;stroke-width:8;stroke-dasharray:5 17}
.eq-scene .eq-reciprocate{animation:eq-piston 1.1s ease-in-out infinite alternate}
.eq-scene .eq-heat-rise{animation:eq-heat 1.6s ease-in-out infinite}
.eq-scene .eq-material-step{animation:eq-material 1.1s linear infinite}
.eq-scene .eq-screw{transform-box:view-box;animation:eq-screw 1.6s linear infinite}
.eq-scene .eq-rotor-fin{stroke:#267d95;stroke-width:4}
@keyframes eq-rotate{to{transform:rotate(360deg)}}
@keyframes eq-flow{to{stroke-dashoffset:-44}}
@keyframes eq-piston{from{transform:translateY(-13px)}to{transform:translateY(13px)}}
@keyframes eq-heat{0%,100%{transform:translateY(2px)}50%{transform:translateY(-6px)}}
@keyframes eq-material{from{transform:translateX(-3px)}to{transform:translateX(4px)}}
@keyframes eq-screw{0%,100%{transform:scaleY(1)}50%{transform:scaleY(-1)}}
@media(prefers-reduced-motion:reduce){.eq-scene .eq-motion{animation:none!important;transform:none!important}}
.eq-scene .eq-motion.eq-reverse{animation-direction:reverse}
