:root{color-scheme:dark;--bg:#0c0d14;--panel:#141621;--border:#292c3c;--purple:#996bff;--purple-dark:#7540dd;--muted:#a5a9bd;--white:#f5f4fa;--green:#68dab3;--red:#ff747e}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 0 10%,#28194455,transparent 50%),var(--bg);color:var(--white);font-family:Arial,Helvetica,sans-serif;line-height:1.5}button,input{font:inherit}button{cursor:pointer;border:1px solid transparent;border-radius:8px;padding:11px 17px;font-weight:600;transition:background .15s}button:disabled{cursor:not-allowed;opacity:.4}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid #c5a7ff;outline-offset:3px}.primary{background:var(--purple-dark);color:white}.primary:hover:enabled{background:#8e59f1}.secondary{background:#202333;border-color:#373b50;color:#ece9f5}.secondary:hover:enabled{background:#2c2f43}.ghost{background:none;border-color:#414353;color:var(--white);padding:7px 15px}.wide{width:100%;display:flex;justify-content:space-between;margin-top:25px}.topbar{height:88px;margin:0 auto;padding:0 5%;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #262331}.brand{display:flex;align-items:center;gap:20px;text-decoration:none;color:white}.brand img{width:144px;height:45px;object-fit:contain}.brand-divider{height:28px;width:1px;background:#494052}.cloud{font-size:28px;font-weight:700;letter-spacing:-1px}.brand-dot{color:var(--purple)}.top-label{font-size:10px;letter-spacing:2px;color:var(--muted)}main{max-width:1360px;margin:auto;padding:48px 44px 28px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;color:#bc9bff}h1,h2,p{margin-top:0}h2{font-size:20px;letter-spacing:-.5px;margin:10px 0 18px}p{color:var(--muted)}.login-layout{min-height:640px;display:grid;grid-template-columns:1.25fr 1fr;align-items:center;gap:100px}.login-copy h1{font-size:clamp(40px,5vw,66px);line-height:1.13;letter-spacing:-2.8px;margin:25px 0}.login-copy p{font-size:18px;max-width:470px}.feature-list{display:flex;flex-direction:column;gap:18px;margin:36px 0 50px}.feature-list span{display:flex;gap:20px;color:#b695f5;font-size:12px}.feature-list b{font-size:14px;color:#dbd7e4;font-weight:400}.access-note{color:var(--muted);font-size:12px;display:flex;align-items:center;gap:10px}.small-dot{width:6px;height:6px;border-radius:50%;background:var(--purple)}.login-card{border:1px solid #403052;border-radius:16px;padding:38px;background:linear-gradient(140deg,#21192b,#14151f 70%);box-shadow:0 24px 90px #0004}.login-card h2{font-size:28px;margin:14px 0 8px}.login-card>p{font-size:13px;margin-bottom:28px}label{display:block;font-size:12px;color:#cdc9db;margin:18px 0 8px}input{border:1px solid #3c354c;background:#101018;border-radius:7px;color:white;padding:12px;width:100%}.login-foot{border-top:1px solid #332d40;padding-top:20px;margin-top:24px;font-size:11px;color:#aaa4bc;line-height:1.8}.message{color:#ceb8ff;font-size:13px;min-height:20px;margin:12px 0}.message.error{color:var(--red)}.workspace-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.workspace-head h1{font-size:34px;letter-spacing:-1px;margin:8px 0 5px}.workspace-head p{font-size:13px;margin:0}.session-box{display:flex;align-items:center;gap:14px;background:#191725;border:1px solid #352a49;border-radius:9px;padding:12px 15px}.session-box span{font-size:11px;color:var(--muted)}.session-box strong{font-size:18px;font-variant-numeric:tabular-nums;color:#c5a5ff}.admin-panel{border:1px solid #54406e;border-radius:12px;padding:22px;background:#241b32;display:flex;justify-content:space-between;align-items:center;gap:20px}.admin-panel h2{margin:6px 0;font-size:19px}.admin-panel p{font-size:12px;margin:0}.admin-actions{display:flex;gap:10px}.tabs{display:flex;gap:7px;border-bottom:1px solid var(--border);margin:20px 0 0}.tabs button{background:none;color:var(--muted);border-radius:0;padding:16px 18px;border-bottom:2px solid transparent;font-size:13px}.tabs .selected{color:#c2a0ff;border-bottom-color:var(--purple)}.system-strip{display:flex;align-items:center;gap:25px;padding:17px 0;font-size:11px;color:var(--muted);flex-wrap:wrap}.system-strip>span:first-child{display:flex;align-items:center;gap:8px}.system-strip b{color:#d8d7e4;font-weight:500}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#73778a}.status-dot.on{background:var(--green);box-shadow:0 0 10px #68dab34a}.card{border:1px solid var(--border);background:var(--panel);border-radius:12px;padding:24px;min-width:0}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.tag{border:1px solid #36394d;border-radius:5px;padding:3px 7px;color:#b3b6ca;font-size:10px;white-space:nowrap}.live-grid{display:grid;grid-template-columns:1.05fr 1fr 1fr;gap:18px}.temperature{display:flex;align-items:baseline;gap:12px;margin:22px 0 18px}.temperature strong{font-size:58px;letter-spacing:-2px;font-weight:500;line-height:1}.temperature span{color:var(--muted);font-size:20px}progress{width:100%;height:7px;accent-color:var(--purple);border:0}progress::-webkit-progress-bar{background:#303044;border-radius:8px}progress::-webkit-progress-value{background:var(--purple);border-radius:8px}.scale{display:flex;justify-content:space-between;font-size:9px;color:var(--muted);margin:8px 0 20px}.subrow{border-top:1px solid var(--border);padding-top:15px;display:flex;justify-content:space-between;gap:10px;font-size:11px;color:var(--muted)}.subrow b{font-weight:500;color:#dedbea}.signal-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:19px 0;border-bottom:1px solid var(--border);font-size:12px}.signal-row>span{display:flex;align-items:center;gap:10px}.signal-row small,h2 small{color:#83899f;font-size:10px}.signal-symbol{width:28px;height:28px;border:1px solid #3b3e53;border-radius:7px;display:flex;align-items:center;justify-content:center;font-style:normal;color:#bab0d0;font-size:10px}.signal-value{font-weight:500;color:var(--muted);font-size:11px;white-space:nowrap}.signal-value.alarm{color:var(--red)}.muted{font-size:11px;color:var(--muted);line-height:1.7;margin:18px 0 0}.motor-state{display:flex;align-items:center;gap:10px;font-size:18px;margin:27px 0}.motor-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.motor-actions button{padding:10px 9px;font-size:11px}.bottom-grid{display:grid;grid-template-columns:2.09fr 1fr;gap:18px;margin-top:18px}.indicator-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:23px 0 4px}.indicator-grid>div{display:flex;align-items:center;flex-direction:column;gap:7px}.indicator-grid b{font-size:11px;font-weight:500}.indicator-grid small{font-size:10px;color:var(--muted)}.lamp{height:20px;width:20px;border-radius:50%;border:1px solid #505264;background:#343645;opacity:.55}.lamp.on{opacity:1;box-shadow:0 0 17px currentColor}.lamp.green.on{background:#68dab3;color:#68dab3}.lamp.amber.on{background:#f6c260;color:#f6c260}.lamp.blue.on{background:#62b5ff;color:#62b5ff}.lamp.red.on{background:#ff747e;color:#ff747e}.sdv-card strong{font-size:17px;display:block;margin-top:24px}.record-note{display:flex;justify-content:space-between;gap:20px;margin-top:22px;padding:15px 0;border-top:1px solid var(--border);font-size:10px;color:#a29caf}.range-form{display:flex;gap:14px;align-items:flex-end;background:#15141f;border:1px solid var(--border);padding:18px;border-radius:10px;margin-bottom:18px}.range-form label{margin:0 0 7px;font-size:10px}.range-form input{padding:9px;font-size:12px}.range-form>div{flex:1;min-width:0}.range-form button{font-size:12px;padding:10px 14px}.tab-panel>article+article{margin-top:18px}canvas{width:100%;height:260px;display:block;margin-top:18px}.table-scroll{overflow:auto;max-height:360px;margin:18px 0}table{border-collapse:collapse;width:100%;text-align:left;font-size:11px;white-space:nowrap}th{font-size:10px;font-weight:500;color:#b9a6d8;background:#1c1b2a;position:sticky;top:0}th,td{padding:12px;border-bottom:1px solid var(--border)}td{color:#d0cbdd}td:last-child{white-space:normal;min-width:180px}.pager{display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:11px;color:var(--muted)}footer{max-width:1272px;margin:0 auto;padding:20px 0 30px;border-top:1px solid #242331;display:flex;justify-content:space-between;font-size:9px;letter-spacing:1px;color:#8c879b}[hidden]{display:none!important}@media(max-width:1100px){.live-grid{grid-template-columns:1fr 1fr}.motor-card{grid-column:1/-1}.motor-card .motor-actions{max-width:420px}.bottom-grid{grid-template-columns:1fr 1fr}.login-layout{gap:45px}.top-label{display:none}.range-form{flex-wrap:wrap}}@media(max-width:650px){.topbar{height:72px;padding:0 20px}.brand{gap:13px}.brand img{width:115px}.cloud{font-size:24px}main{padding:28px 18px 18px}.login-layout{display:flex;flex-direction:column;gap:34px;min-height:0;align-items:stretch}.login-copy h1{font-size:42px;margin:17px 0}.login-copy p{font-size:14px}.feature-list{flex-direction:row;flex-wrap:wrap;gap:13px;margin:20px 0}.feature-list span{gap:7px}.feature-list b{font-size:10px}.access-note{font-size:10px}.login-card{padding:25px}.login-card h2{font-size:25px}.workspace-head{display:block}.workspace-head h1{font-size:29px}.session-box{margin-top:20px;justify-content:space-between}.admin-panel{display:block}.admin-actions{margin-top:18px}.admin-actions button{font-size:11px;flex:1;padding:10px}.tabs{gap:0}.tabs button{flex:1;font-size:10px;padding:14px 8px}.system-strip{gap:10px 18px;font-size:10px}.live-grid,.bottom-grid{grid-template-columns:1fr}.card{padding:21px}.bottom-grid{gap:18px}.record-note{flex-direction:column;gap:5px}.range-form{gap:12px;padding:15px}.range-form>div{flex:1 1 100%}.range-form button{flex:1;font-size:11px}.indicator-grid{gap:8px}.indicator-grid b{font-size:10px}footer{margin:0 18px;flex-direction:column;gap:8px;font-size:8px}}

.requested-order{display:flex;justify-content:space-between;gap:10px;font-size:11px;color:var(--muted);margin:-10px 0 18px}.requested-order b{font-weight:500;color:#dedbea}.mismatch{font-size:11px;color:#f6c260;margin:0 0 15px}
/* Approved terminal HMI themes. */
:root{color-scheme:light;--bg:#faf8fc;--panel:#ffffff;--border:#e5dcef;--purple:#96139c;--purple-dark:#8e1198;--muted:#75618c;--white:#23113d;--green:#00a770;--red:#d93044}
body[data-theme=dark]{color-scheme:dark;--bg:#06121c;--panel:#0b1a25;--border:#263d4c;--purple:#eb62f4;--purple-dark:#9831ae;--muted:#acbed4;--white:#f4f1ff;--green:#34e4ac;--red:#ff5362}
body{background:radial-gradient(ellipse at 35% 5%,#aa44bf08,transparent 50%),var(--bg);color:var(--white)}
main{max-width:1800px;padding:22px 30px 24px}.topbar{height:auto;min-height:66px;padding:12px 30px;gap:20px;border-color:var(--border)}.brand{color:var(--white);gap:16px}.brand img{width:140px}.brand-divider{background:var(--border)}.cloud{font-size:23px}.header-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:11px}.header-tools time{font-variant-numeric:tabular-nums;color:var(--muted);font-size:11px}.product{color:var(--muted)}.product b{display:inline-block;margin-left:8px;border:1px solid var(--border);padding:7px 15px;border-radius:6px;color:var(--white)}.data-mode{font-size:11px;padding:8px 12px;border-radius:8px;background:#e890a326;color:var(--red);font-weight:700}.data-mode.confirmed{background:#00b67a18;color:var(--green)}.header-tools button{padding:7px 12px;font-size:11px}.workspace-head{margin-bottom:12px}.workspace-head h1{font-size:26px}.workspace-head .eyebrow{display:none}.session-box,.admin-panel,.login-card,.range-form{background:var(--panel);border-color:var(--border)}.login-card{box-shadow:0 20px 70px #52216a12}.feature-list b,.session-box strong,.subrow b,.requested-order b,td,.system-strip b{color:var(--white)}.eyebrow,.tabs .selected{color:var(--purple)}.tabs .selected{border-bottom-color:var(--purple)}.message{color:var(--purple)}.secondary{background:var(--panel);border-color:var(--border);color:var(--white)}.secondary:hover:enabled{background:var(--border)}.ghost{border-color:var(--border);color:var(--white)}label,input{color:var(--white)}input{background:var(--bg);border-color:var(--border)}th{background:var(--bg);color:var(--muted)}.login-foot,footer{border-color:var(--border);color:var(--muted)}.card{padding:18px;background:var(--panel);border-color:var(--border);border-radius:10px}.tabs{margin-top:8px}.tabs button{padding:10px 16px}.system-strip{padding:12px 0}.message:empty{display:none}.terminal-kpis{display:grid;grid-template-columns:1.1fr 1fr 1fr 1.1fr;gap:12px;margin-bottom:14px}.kpi{display:flex;align-items:center;gap:14px;min-height:88px}.kpi h2{font-size:14px;line-height:1.35;margin:0;letter-spacing:0}.kpi small{font-size:11px;color:var(--muted)}.kpi-temperature{margin-left:auto;font-size:36px;white-space:nowrap;color:var(--purple);line-height:1}.kpi-temperature small{font-size:18px;color:var(--purple)}.kpi-icon{font-size:35px;color:var(--purple);line-height:1}.shield{color:var(--green)}.equipment-icon{font-size:35px}.pump-icon{color:#d73045}.mov-icon{color:#147da8}.state-pill{display:inline-flex;align-items:center;gap:8px;padding:9px 13px;border-radius:18px;font-size:11px;line-height:1.2}.kpi .state-pill{margin-left:auto}.state-pill:before{content:'';width:8px;height:8px;border-radius:50%;background:currentColor;flex-shrink:0}.neutral{color:var(--muted);background:#8390a014}.healthy{color:var(--green);background:#00b67a18}.danger{color:var(--red);background:#ff536219}.warning{color:#b97908;background:#e5a02720}.terminal-layout{display:grid;grid-template-columns:minmax(0,2.35fr) minmax(310px,1fr);gap:14px;align-items:stretch}.terminal-scene{padding:16px 0 0;overflow:hidden;background:var(--bg);display:flex;flex-direction:column}.scene-heading{display:flex;gap:12px;padding:0 18px;align-items:center}.scene-heading h2{font-size:17px;margin:0 0 2px;letter-spacing:0}.scene-heading p{font-size:12px;margin:0}.scene-heading .kpi-icon{font-size:28px}.scene-stage{position:relative;flex:1;min-height:560px;display:flex;align-items:center}.scene-art{width:100%;height:auto;display:block;object-fit:contain}.scene-tag{position:absolute;display:flex;flex-direction:column;padding:10px 14px;border:1px solid var(--border);border-radius:8px;background:var(--panel);box-shadow:0 5px 20px #0002;min-width:135px;font-size:12px}.scene-tag span{font-weight:700}.scene-tag small{font-size:10px;color:var(--muted)}.scene-tag strong{color:var(--purple);font-size:24px}.scene-tag b{font-size:11px;color:var(--muted);font-weight:400}.tank-tag{top:24%;left:11%;border-color:var(--purple)}.pump-tag{top:65%;left:18%}.mov-tag{top:60%;right:10%}.scene-note{font-size:10px;line-height:1.5;padding:0 20px 12px;margin:0;color:var(--muted)}.terminal-aside{display:flex;flex-direction:column;gap:14px;min-width:0}.terminal-aside h2{font-size:15px;margin:0;letter-spacing:0}.trend-card{min-height:275px}.trend-card canvas{height:200px;margin-top:10px}.trend-card .muted{margin-top:6px;font-size:10px}.beacon-card{flex:1}.beacon-subtitle{font-size:11px;margin:3px 0 12px}.beacon-row{display:flex;gap:25px;align-items:center;padding:12px 10px;border-bottom:1px solid var(--border);min-height:85px}.beacon-row:last-child{border:0}.beacon-row>div{display:flex;flex-direction:column}.beacon-row b{font-size:13px}.beacon-row small{font-size:11px;color:var(--muted)}.industrial-lamp{--light:#32d57a;display:block;position:relative;flex-shrink:0;width:34px;height:52px;margin:5px 15px;border:3px solid #263333;border-radius:13px;background:repeating-linear-gradient(90deg,transparent 0 8px,#1c272a 8px 10px),repeating-linear-gradient(0deg,transparent 0 14px,#1c272a 14px 16px),linear-gradient(90deg,#333e42,#69706d,#333e42);box-shadow:inset 0 0 10px #0006;opacity:.65}.industrial-lamp:before,.industrial-lamp:after{content:'';position:absolute;left:8px;right:8px;height:5px;background:#384043}.industrial-lamp:before{top:-7px}.industrial-lamp:after{bottom:-7px}.industrial-lamp.amber{--light:#ffad28}.industrial-lamp.red{--light:#ff3445}.industrial-lamp.white{--light:#fff}.industrial-lamp.on{opacity:1;background:repeating-linear-gradient(90deg,transparent 0 8px,#1c272a 8px 10px),repeating-linear-gradient(0deg,transparent 0 14px,#1c272a 14px 16px),linear-gradient(90deg,color-mix(in srgb,var(--light) 55%,black),var(--light),color-mix(in srgb,var(--light) 55%,black));box-shadow:0 0 20px color-mix(in srgb,var(--light) 35%,transparent)}.plc-detail{margin-top:18px;border:1px solid var(--border);border-radius:10px;background:var(--panel)}.plc-detail summary{cursor:pointer;padding:14px 18px;font-size:12px;color:var(--muted)}.plc-detail .live-grid{padding:0 14px 14px;grid-template-columns:1fr 1.1fr 1fr}.plc-detail h2{font-size:15px}.plc-detail .subrow{margin-top:15px}.plc-detail progress{margin-top:15px}.plc-detail .motor-state{font-size:15px;margin:20px 0}.record-note{color:var(--muted)}
@media(max-width:1250px){.terminal-kpis{grid-template-columns:1fr 1fr}.terminal-layout{grid-template-columns:minmax(0,1.7fr) minmax(290px,1fr)}.scene-stage{min-height:500px}.plc-detail .live-grid{grid-template-columns:1fr 1fr}.plc-detail .motor-card{grid-column:auto}.sdv-card{grid-column:1/-1}.header-tools time{font-size:10px}.scene-tag{padding:7px 9px;min-width:110px}}
@media(max-width:800px){.terminal-layout{grid-template-columns:1fr}.terminal-aside{display:grid;grid-template-columns:1fr 1fr}.scene-stage{min-height:0}.scene-tag strong{font-size:20px}.topbar{flex-wrap:wrap}.header-tools{gap:8px}.workspace-head{display:block}.session-box{display:flex;margin-top:12px}.beacon-row{gap:8px;padding:10px 0}.industrial-lamp{margin-left:5px}.scene-note{padding-top:12px}}
@media(max-width:550px){main{padding:16px 12px}.topbar{padding:12px}.brand img{width:120px}.header-tools{width:100%;justify-content:space-between}.product{display:none}.header-tools time{order:3;flex-basis:100%}.workspace-head h1{font-size:23px}.terminal-kpis{grid-template-columns:1fr}.kpi{min-height:72px;padding:12px}.kpi h2{font-size:13px}.kpi-temperature{font-size:32px}.terminal-aside{display:flex}.scene-heading h2{font-size:13px}.scene-heading p{font-size:10px}.scene-tag{font-size:9px;min-width:90px;padding:5px 6px}.scene-tag small,.scene-tag b{font-size:8px}.scene-tag strong{font-size:16px}.tank-tag{left:7%;top:20%}.pump-tag{left:10%;top:70%}.mov-tag{right:2%;top:57%}.scene-note{font-size:9px}.plc-detail .live-grid{grid-template-columns:1fr}.kpi .state-pill{font-size:10px}.plc-detail .motor-card,.sdv-card{grid-column:auto}}
body[data-theme=light] .brand img{filter:brightness(.23) sepia(.3) saturate(3) hue-rotate(215deg)}
/* Restore the approved 3D equipment renders in the upper KPI cards. */
.equipment-icon{display:block;flex:0 0 58px;width:58px;height:58px;background-image:url('/equipment-icons.png');background-repeat:no-repeat;background-size:200% 100%}.pump-icon{background-position:left center}.mov-icon{background-position:right center}.terminal-kpis .kpi{gap:12px}.terminal-kpis .kpi h2{max-width:145px}
@media(max-width:550px){.equipment-icon{flex-basis:46px;width:46px;height:46px}}
/* Original approved artwork displayed through CSS sprite viewports. No redraw. */
body{--approved-icons:url('/approved-icons-light.png')}body[data-theme=dark]{--approved-icons:url('/approved-icons-dark.png')}
.equipment-icon{background-image:var(--approved-icons);background-size:1672px 941px;height:70px;width:66px;flex:0 0 66px;background-repeat:no-repeat}.pump-icon{background-position:-479px -83px}.mov-icon{width:82px;flex-basis:82px;background-position:-870px -82px}.thermometer-icon{width:50px;flex-basis:50px;background-position:-53px -85px}.shield-icon{width:60px;flex-basis:60px;background-position:-1238px -85px}
.industrial-lamp,.industrial-lamp.on{width:62px;height:82px;flex-basis:62px;margin:0 5px;border:0;border-radius:0;background-image:var(--approved-icons);background-size:1672px 941px;background-repeat:no-repeat;box-shadow:none;background-color:transparent;opacity:1;filter:brightness(.8) saturate(.6)}.industrial-lamp:before,.industrial-lamp:after{display:none}.industrial-lamp.green,.industrial-lamp.green.on{background-position:-1258px -552px}.industrial-lamp.amber,.industrial-lamp.amber.on{background-position:-1258px -635px}.industrial-lamp.red,.industrial-lamp.red.on{background-position:-1258px -718px}.industrial-lamp.white,.industrial-lamp.white.on{background-position:-1258px -800px}.industrial-lamp.on{filter:none}.industrial-lamp.white{filter:none;opacity:.7}.beacon-row{padding:7px 10px;gap:25px;min-height:88px}
@media(max-width:550px){.equipment-icon{height:70px}.beacon-row{gap:15px}}
body[data-theme=light] .equipment-icon,body[data-theme=light] .industrial-lamp{mix-blend-mode:multiply}body[data-theme=dark] .equipment-icon,body[data-theme=dark] .industrial-lamp{mix-blend-mode:lighten}.industrial-lamp{filter:saturate(.5);opacity:.65}.industrial-lamp.on{filter:none;opacity:1}.industrial-lamp.white{filter:none;opacity:.7}.terminal-kpis .kpi h2{flex-shrink:0}.mov-icon{flex-basis:74px;width:74px}
.scene-signal-tower{position:absolute;right:1%;top:8%;width:194px;height:550px;z-index:1;pointer-events:none}.tower-hardware{position:absolute;inset:0;background-image:var(--approved-icons);background-size:1672px 941px;background-position:-944px -247px;background-repeat:no-repeat;clip-path:polygon(40% 0,85% 0,85% 13%,57% 18%,56% 22%,96% 22%,96% 27%,56% 27%,56% 86%,61% 86%,61% 98%,23% 100%,23% 87%,46% 87%,46% 27%,6% 27%,6% 22%,46% 22%,46% 18%,40% 16%)}.tower-light{position:absolute;top:145px;width:40px;height:60px;background-image:var(--approved-icons);background-size:1672px 941px;background-repeat:no-repeat;opacity:.65;filter:saturate(.5)}.tower-light.green{left:5px;background-position:-951px -388px}.tower-light.amber{left:47px;background-position:-994px -388px}.tower-light.red{left:108px;background-position:-1054px -388px}.tower-light.white{left:149px;background-position:-1096px -388px}.tower-light.on{opacity:1;filter:none}body[data-theme=light] .tower-hardware,body[data-theme=light] .tower-light{mix-blend-mode:multiply}body[data-theme=dark] .tower-hardware,body[data-theme=dark] .tower-light{mix-blend-mode:lighten}
@media(max-width:1250px){.scene-signal-tower{transform:scale(.75);transform-origin:top right}}@media(max-width:800px){.scene-signal-tower{transform:scale(.8)}}@media(max-width:550px){.scene-signal-tower{transform:scale(.32);top:7%;right:1%}.mov-tag{right:10%;top:62%}}

/* Pump commands remain visible in the main equipment card. */
.pump-control-kpi{flex-wrap:wrap}.pump-control-kpi .motor-actions{flex:0 0 100%;width:100%;max-width:none;grid-template-columns:1fr 1fr}.pump-control-kpi .motor-actions button{min-height:40px;font-size:12px}

.pump-status-info{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:6px}.pump-status-info .state-pill{margin-left:0;font-size:10px;padding:6px 9px}

/* R4.5: captions outside the artwork; level gauge aligned to TK-01. */
.scene-stage{display:block;flex:0 0 auto;min-height:0}
.scene-captions{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:10px;padding:8px 18px 16px}
.scene-captions .scene-tag{position:static;min-width:0;padding:12px 14px;font-size:12px;box-shadow:none;justify-content:center;gap:6px}
.scene-captions .scene-tag strong{font-size:23px;white-space:nowrap}
.scene-captions .scene-tag small,.scene-captions .scene-tag b{font-size:10px}
.tank-readings{display:flex;flex-wrap:wrap;gap:8px 20px}
.tank-readings>div{display:flex;flex-direction:column}
.tank-level-gauge{position:absolute;left:29.5%;top:17.5%;height:33%;width:clamp(8px,1.3%,17px);pointer-events:none;border-radius:5px;background:var(--panel);border:1px solid #96755c;box-shadow:0 1px 4px #0005;overflow:hidden}
.level-tube{height:100%;position:relative;margin:2px;max-height:calc(100% - 4px);border-radius:3px;overflow:hidden;background:#94775a25}
.level-fill{position:absolute;inset:0;background:linear-gradient(90deg,#a96c3b,#d8ac6d,#b88044);transform:scaleY(0);transform-origin:bottom;transition:transform .9s linear;visibility:hidden}
.tank-level-gauge.confirmed .level-fill{visibility:visible}
.level-graduations{position:absolute;inset:0;background:repeating-linear-gradient(to top,transparent 0 calc(10% - 1px),#3b2a2166 calc(10% - 1px) 10%)}
@media(max-width:1250px){.scene-captions{grid-template-columns:1fr 1fr}.scene-captions .tank-tag{grid-column:1/-1}}
@media(max-width:550px){.scene-captions{padding:8px 12px 12px;gap:8px}.scene-captions .scene-tag{padding:10px;font-size:11px}.scene-captions .scene-tag strong{font-size:21px}.scene-captions .scene-tag b{font-size:9px}}
@media(prefers-reduced-motion:reduce){.level-fill{transition:none}}

/* R4.6: data positioned beside TK-01 and below each equipment base. */
.scene-stage{container-type:inline-size}
.scene-captions{position:absolute;inset:0;display:block;padding:0;pointer-events:none}
.scene-captions .scene-tag{position:absolute;min-width:0;padding:3px 5px;border:0;border-radius:4px;box-shadow:none;background:#ffffffc9;color:#29212f;text-align:center;gap:2px;font-size:clamp(7px,1.15cqw,12px);line-height:1.3}
.scene-captions .tank-tag{left:13%;top:23%;right:auto;width:15.5%;text-align:left;padding:0;background:transparent;grid-column:auto}
.scene-captions .tank-tag>span,.scene-captions .tank-tag>#levelStatus{display:none}
.scene-captions .tank-readings{display:flex;flex-direction:column;gap:5px}
.scene-captions .scene-tag small{font-size:clamp(7px,1.05cqw,11px);font-weight:700;color:#29212f}
.scene-captions .scene-tag strong{font-size:clamp(9px,1.7cqw,18px);color:#810d97;line-height:1.25;white-space:nowrap}
.scene-captions .scene-tag b{font-size:clamp(6px,.95cqw,10px);color:#49344e}
.scene-captions .pump-tag{left:44%;top:84.5%;right:auto;width:27%;transform:translateX(-50%)}
.scene-captions .mov-tag{left:77%;top:83.5%;right:auto;width:23%;transform:translateX(-50%)}
@media(max-width:550px){.scene-captions .scene-tag{padding:2px}.scene-captions .tank-tag{padding:0}.scene-captions .tank-readings{gap:3px}}

/* R4.7: fine leaders connect each tank reading to the vertical gauge. */
.scene-captions .tank-readings>div strong{display:flex;align-items:center;width:calc(100% + 1cqw);gap:5px}
.scene-captions .tank-readings>div strong:after{content:'';height:1px;flex:1;min-width:0;background:#796557;opacity:.8}
.session-box time{font-size:16px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--purple);white-space:nowrap}
.demo-timer{position:fixed;right:16px;bottom:16px;z-index:20;display:flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid var(--border);border-radius:8px;background:var(--panel);color:var(--muted);font-size:10px;box-shadow:0 2px 8px #0001}
.demo-timer strong{font-size:10px;line-height:1.5;font-variant-numeric:tabular-nums;color:var(--white)}
footer{padding-bottom:60px}
@media(max-width:600px){.session-box{flex-wrap:wrap;gap:8px}.session-box time{font-size:13px}.demo-timer{right:10px;bottom:10px}}
