:root{--ink:#243438;--muted:#78888b;--faint:#a2aeb0;--line:#e0e7e7;--canvas:#f4f7f7;--paper:#fff;--accent:#0f766b;--accent-soft:#e7f3f0;--warn:#a97522;--warn-soft:#fbf2e2;--danger:#ba4b45;--danger-soft:#fbefed;--radius:8px;font-family:"Bahnschrift","Microsoft YaHei UI","Microsoft YaHei",sans-serif;color:var(--ink);font-synthesis:none;font-size:13px}
*{box-sizing:border-box}body{margin:0;background:var(--canvas)}button,input,select{font:inherit}button{cursor:pointer;color:inherit}button,select{touch-action:manipulation}button:disabled{cursor:default;opacity:.45}button:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #8bbeb4;outline-offset:3px}button:active:not(:disabled){transform:scale(.98)}button,select{transition:background .18s,border-color .18s,color .18s}button svg,svg.icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex:none}h1,h2,h3,p{margin:0}h2{font-size:14px;font-weight:600}small{font-size:11px}strong{font-weight:600}.subtle{color:var(--muted);font-size:11px}.sr-only{position:absolute;clip:rect(0,0,0,0);width:1px;height:1px;overflow:hidden}.skip{position:fixed;top:-80px;left:80px;z-index:100;background:white;padding:12px;color:var(--accent)}.skip:focus{top:8px}.rail{position:fixed;inset:0 auto 0 0;width:68px;background:#23383c;display:flex;align-items:center;flex-direction:column;z-index:10;color:#afc1c4}.brand{height:76px;width:100%;display:grid;place-items:center;margin-bottom:25px;border-bottom:1px solid #3b4c50}.brand svg{width:34px;height:34px;fill:none;stroke:#d9eeea;stroke-width:1.5;stroke-linejoin:round}.rail-button{width:52px;height:62px;border:0;background:transparent;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:7px;border-radius:7px;font-size:10px;color:#9fb4b8;margin-bottom:11px}.rail-button:hover{background:#30494d;color:#eef8f7}.rail-button.active{background:#365452;color:#e3f4ef}.rail-button svg{width:21px;height:21px}.help-nav{margin-top:auto}.rail-version{font-family:"Cascadia Code",Consolas,monospace;font-size:9px;color:#7f999e;padding:9px 0 25px}.shell{margin-left:68px}.topbar{height:58px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:0 32px;background:white}.breadcrumb{font-size:12px;color:var(--muted);display:flex;gap:15px;align-items:center}.breadcrumb span{color:#c2cccc}.breadcrumb strong{font-weight:500;color:#425559}.topbar-right{display:flex;align-items:center;gap:16px}.demo-label{font-size:10px;letter-spacing:.3px;border:1px solid #d4e5df;border-radius:4px;padding:5px 9px;color:#52796e;background:#f8fbfa}.icon-button{height:30px;width:30px;display:grid;place-items:center;border:1px solid transparent;border-radius:5px;background:transparent;color:#667e82;padding:0}.icon-button:hover{background:#eaf1ef;color:var(--accent)}main{padding:25px 30px 0;max-width:1760px;margin:auto}.heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:23px}.eyebrow{font-family:"Bahnschrift","Cascadia Code",sans-serif;font-size:9px;letter-spacing:1.7px;color:#7a9396;margin-bottom:9px;display:block}.eyebrow span{margin-left:10px;font-size:9px;letter-spacing:.5px;border-left:1px solid #c8d6d6;padding-left:10px}h1{font-size:25px;font-weight:600;letter-spacing:.8px;line-height:1.25}.equipment-meta{display:flex;gap:10px;align-items:center;margin-top:10px;color:#879799;font-size:10px}.equipment-code{font-family:"Cascadia Code",Consolas,monospace;color:#4d676b;font-size:11px}.equipment-meta i{width:3px;height:3px;background:#b7c6c6;border-radius:50%}.heading-controls{display:flex;align-items:center;gap:12px}.mode-switch{display:flex;border:1px solid #d6e0df;padding:3px;background:#e9efed;border-radius:6px}.mode-switch button{border:0;background:transparent;color:#778a8b;border-radius:4px;padding:9px 17px;font-size:11px}.mode-switch button.selected{background:white;color:#2a6059;box-shadow:0 1px 2px #26423c0a}.secondary{display:flex;align-items:center;justify-content:center;gap:7px;padding:10px 13px;font-size:11px;border:1px solid #d6e0df;border-radius:6px;background:white}.secondary:hover{border-color:#a4bdb6;background:#f8fbfa}.button-indicator{width:6px;height:6px;border:1px solid #ba8c4d;border-radius:2px}.fault-trigger.engaged{color:var(--danger);border-color:#e1bdb7;background:#fff6f4}.metrics{display:grid;grid-template-columns:1.1fr 1fr 1fr 1fr;margin-bottom:22px;border-bottom:1px solid var(--line);padding:0 0 21px}.metric{padding:0 30px;border-left:1px solid var(--line)}.metric:first-child{border:0;padding-left:0}.metric-label{font-size:11px;color:var(--muted);display:block;margin-bottom:11px}.metric-value{display:flex;align-items:baseline;gap:7px;line-height:1;font-size:30px;font-weight:500;font-variant-numeric:tabular-nums;font-family:"Bahnschrift","Cascadia Code","Microsoft YaHei UI",sans-serif;letter-spacing:-.6px}.metric-value small{font-size:11px;font-weight:400;letter-spacing:0;color:#8b9a9c}.metric-note{margin-top:10px;font-size:10px;color:#8b9a9c;display:block}.status-value{align-items:center;font-size:25px;letter-spacing:.3px;gap:10px;color:var(--accent)}.state-dot{height:8px;width:8px;flex:none;border-radius:50%;background:currentColor}.status-value.fault{color:var(--danger)}.status-value.idle{color:#9b8355}.workspace-grid{display:grid;grid-template-columns:minmax(0,1fr) 324px;gap:20px;align-items:start}.scene-panel{background:white;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;min-width:0}.panel-top{height:52px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid var(--line);gap:8px}.panel-title{display:flex;align-items:center;gap:10px;min-width:0}.small-tag{font-size:9px;color:#4b7a6f;border:1px solid #d6e7df;background:#f5faf7;border-radius:3px;padding:3px 6px;white-space:nowrap}.small-tag.history{color:#836932;border-color:#e7dfcc;background:#fcf9f1}.view-tools{display:flex;align-items:center;gap:3px}.tool{border:0;padding:7px 9px;background:transparent;font-size:10px;color:#889a9c;border-radius:4px;white-space:nowrap}.tool:hover{background:#f0f5f3}.tool.selected{background:#edf4f1;color:#336d60}.tool-divider{width:1px;height:16px;background:var(--line);margin:0 5px}.scene-container{height:444px;position:relative;background:#f1f5f4;isolation:isolate;overflow:hidden}#three-view{position:absolute;inset:0}#three-view canvas{width:100%;height:100%;display:block;outline:none}.scene-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:12px;flex-direction:column;background:#f1f5f4;z-index:3;color:#608077}.scene-loading>span{width:150px;height:84px;background:#e0e9e5;border-radius:5px}.scene-loading strong{font-weight:500;font-size:12px}.scene-loading small{color:#90a3a0}.scene-loading.error{padding:45px;text-align:center}.scene-loading.error>span{display:none}.scene-identity{position:absolute;right:18px;top:18px;display:flex;align-items:center;gap:6px;font-family:"Cascadia Code",Consolas,monospace;font-size:11px;color:#52726c;pointer-events:none}.scene-clock-caption{font-family:"Microsoft YaHei UI",sans-serif;font-size:9px;color:#96a8a5;margin-left:2px}.live-dot{height:5px;width:5px;border-radius:50%;background:#639c82;display:inline-block}.component-menu{position:absolute;left:14px;top:14px;width:128px;padding:8px 5px;background:#fffffff0;border:1px solid #e1e9e5;border-radius:6px;z-index:2}.component-caption{font-size:9px;color:#94a29e;padding:3px 9px 9px}.component-row{width:100%;border:0;background:transparent;text-align:left;display:flex;align-items:center;gap:7px;padding:9px 7px;color:#71857f;font-size:10px;border-radius:3px}.component-row:hover{background:#f1f6f3}.component-row.active{background:#e8f1eb;color:#2b6654}.part-glyph{font-family:"Cascadia Code",Consolas,monospace;font-size:8px;color:#91a79a}.part-status{width:4px;height:4px;flex:none;background:#83ac91;border-radius:50%;margin-left:auto}.part-status.warn{background:#c19b52}.part-status.error{background:#bf6861}.selection-caption{position:absolute;left:18px;bottom:27px;display:flex;align-items:center;gap:10px;pointer-events:none;max-width:70%}.selection-mark{height:27px;width:3px;background:#72a08a;border-radius:2px}.selection-caption strong{display:block;font-size:11px;font-weight:500;color:#456257;margin-bottom:5px}.selection-caption small{display:block;color:#8da198;font-size:9px}.scene-hint{position:absolute;left:50%;transform:translateX(-50%);bottom:12px;color:#9aaba5;display:flex;gap:8px;white-space:nowrap;pointer-events:none;font-size:9px}.scene-hint span{color:#b6c2bc}.orientation{position:absolute;right:16px;bottom:26px;width:55px;height:55px;pointer-events:none}.orientation svg{height:55px;width:55px;stroke:#93aaa2;fill:none;stroke-width:1.2}.orientation span{font-family:Consolas,monospace;position:absolute;font-size:8px;color:#8da49d}.axis-y{left:24px;top:-3px}.axis-z{left:0;bottom:4px}.axis-x{right:0;bottom:4px}.scene-bottom{height:36px;padding:0 17px;display:flex;align-items:center;gap:17px;font-size:9px;color:#879b92;border-top:1px solid #e3eae6}.scene-bottom>span{display:flex;align-items:center;gap:5px}.legend-dot{width:5px;height:5px;border-radius:50%;background:#639c82}.legend-dot.warning{background:#c09a50}.legend-dot.danger{background:#bc6e66}.scene-bottom-note{margin-left:auto;color:#9ca9a4}.information-panel{background:white;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;min-width:0}.detail-id{font-family:"Cascadia Code",Consolas,monospace;font-size:10px;color:#96a6a4}.detail-body{padding:17px 17px 16px}.detail-heading{display:flex;gap:10px;align-items:center;margin-bottom:17px}.component-icon{height:34px;width:34px;display:grid;place-items:center;background:#ecf3ef;border:1px solid #e2ebe5;border-radius:6px;color:#5a8a73;font-family:Consolas,monospace;font-size:13px;flex:none}.detail-heading h3{font-size:12px;font-weight:500;line-height:1.45}.detail-heading>div>span{font-size:9px;color:#9aaa9f;margin-top:4px;display:block}.status-pill{font-size:9px;padding:4px 6px;background:#edf5ef;color:#5f8b6d;border-radius:3px;white-space:nowrap;margin-left:auto}.status-pill.warn{color:var(--warn);background:var(--warn-soft)}.status-pill.error{color:var(--danger);background:var(--danger-soft)}.parameter-list{display:grid;gap:11px}.parameter-row{display:flex;justify-content:space-between;align-items:center;font-size:10px;gap:8px}.parameter-row label{color:#8a9c94}.parameter-row strong{font-family:"Bahnschrift","Microsoft YaHei UI",sans-serif;font-weight:400;font-variant-numeric:tabular-nums;color:#4d685c}.parameter-row strong.alert{color:var(--warn)}.process-stages{display:flex;align-items:center;justify-content:space-between;margin-top:19px;padding:12px 0 0;border-top:1px dashed #e0e9e2;gap:5px}.process-stages span{font-size:9px;color:#9baaa0;padding:4px 8px;border-radius:3px}.process-stages .stage-active{background:#edf4eb;color:#628a68}.process-stages .stage-error{background:var(--danger-soft);color:var(--danger)}.process-stages i{height:1px;background:#dce6dc;flex:1}.alarm-panel{border-top:1px solid var(--line)}.alarm-heading{display:flex;align-items:center;justify-content:space-between;padding:17px 17px 11px;gap:8px}.count-badge{font-family:"Cascadia Code",Consolas,monospace;min-width:17px;height:17px;display:grid;place-items:center;border-radius:4px;background:#faf1df;color:#ac8b47;font-size:9px}.alarm-filters{display:flex;gap:17px;padding:0 17px;border-bottom:1px solid #edf1ec}.alarm-filters button{border:0;border-bottom:2px solid transparent;background:transparent;padding:7px 0 9px;color:#a0aaa1;font-size:9px}.alarm-filters button.active{color:#5e7f65;border-bottom-color:#759b7b}.alarm-filters button span{margin-left:3px;font-family:Consolas,monospace;font-size:8px}.alarm-list{max-height:218px;overflow:auto;scrollbar-width:thin;scrollbar-color:#d5dfd4 transparent}.alarm-item{display:flex;width:100%;border:0;border-bottom:1px solid #eff2eb;background:white;padding:11px 16px;text-align:left;align-items:flex-start;gap:9px}.alarm-item:hover{background:#f8faf6}.alarm-item.selected{background:#f1f6ef}.severity-mark{margin-top:2px;width:14px;height:14px;display:grid;place-items:center;flex:none;color:#b39454;font-size:10px;border:1px solid #d9c694;border-radius:4px;font-family:Consolas,monospace;line-height:1}.severity-mark.error{border-color:#d9b8b1;color:#bb786b}.alarm-item-main{flex:1;min-width:0}.alarm-item-title{font-size:10px;color:#5f735f;display:block;font-weight:400;line-height:1.4}.alarm-item-meta{display:flex;gap:8px;font-size:8px;color:#a1ac9f;margin-top:6px;font-family:Consolas,"Microsoft YaHei UI",monospace}.alarm-item-state{font-size:8px;color:#a0af9d;white-space:nowrap;padding-top:2px}.alarm-item-state.active{color:#af9259}.alarm-item-state.error{color:var(--danger)}.alarm-item-arrow{font-size:16px;line-height:1;color:#b4c0aa;padding-left:2px}.alarm-empty{padding:24px 18px;font-size:11px;color:#88a282;line-height:1.8;background:#fafcf9}.alarm-selection{padding:13px 17px;background:#fafbf7;border-top:1px solid var(--line)}.alarm-selection-top{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:10px}.alarm-selection p{font-size:10px;color:#8a997e;line-height:1.85;margin:7px 0}.alarm-selection-actions{display:flex;align-items:center;justify-content:space-between;font-size:9px;color:#99a88e;gap:8px}.text-button{border:0;background:transparent;padding:4px 0;color:var(--accent);font-size:10px}.text-button:hover{color:#23593f;text-decoration:underline}.playback-panel{background:white;border:1px solid var(--line);border-radius:var(--radius);margin-top:20px;padding:17px 19px 11px}.playback-header{display:flex;justify-content:space-between;gap:15px;align-items:center}.history-range{font-family:"Bahnschrift","Microsoft YaHei UI",sans-serif;font-size:10px;margin-left:4px}.playback-header-note{font-size:9px;color:#99a48c}.playback-content{display:flex;align-items:center;gap:24px;margin-top:16px}.playback-buttons{display:flex;align-items:center;gap:6px;flex:none}.play-button{width:35px;height:35px;border:0;background:#397b60;color:white;border-radius:50%;display:grid;place-items:center}.play-button:hover{background:#246449}.play-button svg{width:16px;height:16px;fill:currentColor;stroke:none;margin-left:1px}.step-button{color:#8b9f85;width:25px;height:30px}.step-button svg{height:14px;width:14px}.speed-control{margin-left:4px}.speed-control select{border:1px solid #e0e7d9;border-radius:4px;background:#fff;padding:5px 4px;color:#809277;font-size:10px;width:49px;height:28px}.timeline-area{flex:1;min-width:0}.timeline-topline{display:flex;justify-content:space-between;font-size:9px;color:#a0ac91;margin-bottom:10px;gap:10px}.timeline-topline strong{font-family:Consolas,monospace;font-size:10px;color:#719066;font-weight:400}.timeline-topline small{font-size:9px;color:#a6b39d}.timeline-track{height:22px;position:relative}.timeline-bands{position:absolute;inset:7px 0 auto;height:6px;overflow:hidden;border-radius:3px;background:#e8eee2}.timeline-bands span{position:absolute;height:100%;background:#c7d8be}.timeline-bands .fault-band{background:#d8afa2}.timeline-bands .idle-band{background:#ded6b9}.timeline-progress{position:absolute;left:100%;height:18px;top:1px;width:2px;background:#4e865f;pointer-events:none;z-index:2}.timeline-progress:before{content:"";position:absolute;left:-3px;top:-2px;height:7px;width:7px;background:#4e865f;border-radius:2px;transform:rotate(45deg)}#timeline{appearance:none;-webkit-appearance:none;position:absolute;inset:0;margin:0;width:100%;height:21px;background:transparent;cursor:ew-resize;z-index:3;opacity:.015}#timeline::-webkit-slider-thumb{appearance:none;width:14px;height:24px;background:#397b60;border-radius:4px}#timeline:focus-visible{outline:2px solid #a7bea0;opacity:.28}.event-markers{position:absolute;inset:0;pointer-events:none}.event-marker{pointer-events:auto;position:absolute;top:-2px;width:15px;height:24px;padding:0;transform:translateX(-50%);background:transparent;border:0;z-index:4}.event-marker:after{content:"";display:block;width:6px;height:6px;transform:rotate(45deg);background:#c3a567;position:absolute;top:6px;left:4px;border:1px solid #fff}.event-marker.error:after{background:#bc7b67}.event-marker:hover:after{width:8px;height:8px;left:3px;top:5px}.event-marker:active{transform:translateX(-50%)!important}.time-ticks{display:flex;justify-content:space-between;font-family:Consolas,monospace;font-size:8px;color:#a7b498;margin-top:1px}.return-live{display:flex;align-items:center;gap:7px;padding:8px 0 8px 9px;color:#819b71;background:transparent;border:0;font-size:10px;white-space:nowrap;flex:none}.playback-footnote{display:flex;align-items:center;gap:15px;margin-top:13px;color:#a3ae93;font-size:8px}.playback-footnote>span{display:flex;align-items:center;gap:5px}.sample-line{height:3px;width:12px;background:#b8cfa9;border-radius:1px}.sample-line.error{background:#d0a090}.sample-line.idle{background:#d4c69e}.sample-note{margin-left:auto}.page-footer{padding:15px 0 16px;display:flex;justify-content:space-between;align-items:center;font-size:8px;color:#a0ad97;gap:16px}.page-footer>span:first-child{display:flex;align-items:center;gap:6px}.page-footer i{width:4px;height:4px;border:1px solid #9fb29a;border-radius:50%}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,15px);background:#2c4436;color:#e8f1e4;padding:11px 20px;border-radius:6px;z-index:30;font-size:11px;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;max-width:90vw;line-height:1.65}.toast.visible{opacity:1;transform:translate(-50%,0)}.hotspot{position:absolute;pointer-events:none;transform:translate(-50%,-50%);display:flex;align-items:center;gap:5px;font-size:9px;color:#8b9c7c;white-space:nowrap;background:#ffffffe8;padding:4px 7px;border-radius:3px;border:1px solid #dfe7d8}.hotspot:before{content:"";height:4px;width:4px;border-radius:50%;background:#7f9b6d}.hotspot.warn{color:#a08445;border-color:#e8dabc;background:#fffaf0eb}.hotspot.warn:before{background:#b6984c}.hotspot.error{color:#ad7562;border-color:#dfbdb0;background:#fff5efe8}.hotspot.error:before{background:#b6755c}.hotspot.selected{border-color:#96b18b;color:#587c48;background:#fafff6f0}dialog{border:1px solid #dae4d5;border-radius:12px;padding:26px;width:min(530px,calc(100vw - 30px));color:var(--ink);box-shadow:0 18px 70px #263d3420}dialog::backdrop{background:#223e3555;backdrop-filter:blur(3px)}.dialog-top{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.dialog-top h2{font-size:19px;font-weight:500;margin-top:7px}.help-steps{list-style:none;padding:0;margin:28px 0;display:grid;gap:23px}.help-steps li{display:flex;align-items:flex-start;gap:16px}.help-steps li>span{font-family:Consolas,monospace;font-size:11px;color:#729763;background:#f0f6ea;padding:8px;border-radius:4px}.help-steps strong{font-size:13px;font-weight:500}.help-steps p{font-size:11px;color:#849477;line-height:1.9;margin-top:5px}.dialog-note{font-size:10px;line-height:1.9;color:#95a186;background:#f5f8ef;border:1px solid #e8eddf;border-radius:5px;padding:12px;margin-bottom:19px}.primary{border:0;border-radius:5px;padding:10px 18px;background:var(--accent);color:white;font-size:12px}.primary:hover{background:#155b45}
@media(min-width:1500px){main{padding-top:30px}.scene-container{height:490px}.alarm-list{max-height:264px}.heading{margin-bottom:26px}.metrics{padding-bottom:24px;margin-bottom:25px}.workspace-grid{grid-template-columns:minmax(0,1fr) 350px}.parameter-list{gap:13px}.detail-body{padding-top:19px;padding-bottom:19px}}
@media(max-width:1150px){main{padding:23px 22px 0}.workspace-grid{grid-template-columns:minmax(0,1fr) 290px;gap:15px}.scene-container{height:439px}.metric{padding-left:22px;padding-right:18px}.view-tools .tool{padding:6px}.component-menu{width:115px}.component-row{font-size:9px;gap:5px}.scene-clock-caption{display:none}.scene-bottom-note{display:none}.playback-header-note{display:none}.playback-content{gap:14px}.return-live{font-size:9px}.sample-note{display:none!important}.detail-body{padding:15px}.alarm-item{padding:11px 14px}.alarm-heading{padding-left:14px;padding-right:14px}.alarm-heading .subtle{font-size:9px}.parameter-list{gap:12px}}
@media(max-width:900px){.rail{width:58px}.shell{margin-left:58px}.topbar{padding:0 22px}.workspace-grid{grid-template-columns:minmax(0,1fr) 260px;gap:12px}.heading-controls{gap:8px}.mode-switch button{padding:8px 11px}.secondary{padding:10px;font-size:10px}.metric-value{font-size:26px}.status-value{font-size:21px}.scene-container{height:435px}.component-menu{top:44px;left:10px;width:109px}.scene-identity{top:14px;right:12px}.view-tools .tool{font-size:9px;padding:6px}.panel-top{padding:0 12px}.panel-title{gap:6px}h2{font-size:12px}.scene-hint{font-size:8px;gap:4px}.alarm-item-title{font-size:9px}.alarm-item-state{font-size:7px}.alarm-heading .subtle{display:none}.detail-heading{gap:7px}.detail-heading h3{font-size:11px}.component-icon{height:29px;width:29px}.detail-heading>div>span{font-size:8px}.status-pill{font-size:8px;padding:4px}.detail-body{padding:14px}.parameter-row{font-size:9px}.playback-content{gap:12px}.step-button{display:none}.return-live{padding-left:0}.scene-bottom{gap:12px}.scene-bottom-note{display:none!important}.scene-bottom{font-size:8px}.playback-panel{padding:15px}.heading{gap:10px}h1{font-size:23px}.eyebrow{font-size:8px}.metric{padding-left:18px;padding-right:14px}.metric-label{font-size:10px}.metric-note{font-size:8px}}
@media(max-width:760px){.rail{width:51px}.rail-button{width:43px;font-size:9px}.rail-button svg{width:19px;height:19px}.shell{margin-left:51px}.brand{height:58px;margin-bottom:20px}.brand svg{width:28px;height:28px}.topbar{height:50px;padding:0 16px}.breadcrumb{font-size:10px;gap:9px}.demo-label{font-size:8px;padding:4px 6px}.topbar-right{gap:4px}.topbar-right .icon-button{display:none}main{padding:19px 15px 0}.heading{align-items:flex-start;flex-direction:column;gap:17px;margin-bottom:21px}h1{font-size:23px}.equipment-meta{font-size:9px}.heading-controls{width:100%;justify-content:space-between}.mode-switch button{padding:8px 13px;font-size:10px}.secondary{font-size:9px;padding:10px}.metrics{grid-template-columns:1fr 1fr;gap:21px 0;padding-bottom:20px;margin-bottom:20px}.metric{padding:0 0 0 21px}.metric:nth-child(3){padding-left:0;border-left:0}.metric-label{margin-bottom:9px}.metric-value{font-size:27px}.status-value{font-size:22px}.metric-note{font-size:9px;margin-top:8px}.workspace-grid{display:flex;flex-direction:column;gap:15px}.scene-panel{width:100%}.scene-container{height:350px}.scene-panel .panel-top{height:47px;padding:0 10px;gap:4px}.small-tag{font-size:8px;padding:2px 4px}.view-tools{gap:0}.view-tools .tool{padding:6px;font-size:9px}.tool-divider{margin:0 3px}.view-tools .icon-button{width:25px;height:25px}.view-tools .icon-button svg{width:15px;height:15px}.component-menu{width:104px;padding:5px 3px;left:9px;top:12px}.component-row{font-size:9px;padding:8px 5px}.component-caption{font-size:8px;padding-bottom:6px}.scene-identity{font-size:9px;top:14px;right:10px}.scene-clock-caption{display:none}.scene-hint{bottom:11px;font-size:8px}.selection-caption{left:12px;bottom:31px}.selection-caption strong{font-size:10px}.selection-caption small{font-size:8px}.orientation{right:10px;bottom:33px;width:40px;height:40px}.orientation svg{width:40px;height:40px}.orientation span{font-size:7px}.axis-y{left:17px;top:-3px}.information-panel{width:100%;display:block}.detail-body{padding:17px}.detail-heading h3{font-size:12px}.parameter-row{font-size:11px}.detail-heading>div>span{font-size:10px}.status-pill{font-size:9px}.detail-id{font-size:10px}.component-icon{height:34px;width:34px}.process-stages span{font-size:10px}.alarm-heading .subtle{display:block;font-size:10px}.alarm-list{max-height:none}.alarm-item{padding:14px 17px}.alarm-item-title{font-size:11px}.alarm-item-meta{font-size:9px}.alarm-item-state{font-size:9px}.alarm-filters button{font-size:10px}.alarm-panel .panel-title h2{font-size:13px}.alarm-selection p{font-size:11px}.playback-panel{margin-top:15px;padding:15px 12px 11px}.playback-header{align-items:flex-start}.history-range{font-size:8px;margin-left:0}.playback-header .panel-title{align-items:flex-start;flex-direction:column;gap:6px}.playback-content{flex-wrap:wrap;gap:13px;position:relative;margin-top:13px}.playback-buttons{order:1;width:100%;gap:9px}.play-button{height:31px;width:31px}.step-button{display:grid}.timeline-area{order:3;flex:0 0 100%}.return-live{order:2;position:absolute;right:0;top:3px;font-size:9px}.timeline-topline{font-size:8px}.playback-footnote{font-size:8px;gap:13px;margin-top:11px}.page-footer{align-items:flex-start;font-size:8px;line-height:1.8}.page-footer>span:last-child{display:none}.hotspot{font-size:8px;padding:3px 5px}.scene-bottom{padding:0 12px;gap:13px}.scene-bottom-note{display:none!important}.toast{font-size:10px;width:max-content;max-width:82vw;left:55%}}
.hotspot.warn.selected{color:#a08445;border-color:#d9bd87;background:#fffaf0eb}.hotspot.error.selected{color:#ad6556;border-color:#cf9787;background:#fff5efe8}
@media(max-width:760px){.component-menu{top:auto;bottom:0;left:0;border-left:0;border-right:0;border-bottom:0;width:100%;display:flex;gap:1px;padding:4px;border-radius:0;background:#fffffff2}.component-caption,.component-menu .part-glyph,.component-menu .part-status{display:none}.component-row{padding:8px 2px;flex:1;justify-content:center;font-size:9px;white-space:nowrap}.scene-hint{bottom:46px}.selection-caption{bottom:65px}.orientation{bottom:65px}}
/* Readable operational data; compact chrome stays secondary. */
.scene-container{height:480px}
.metric-label,.metric-note,.subtle,.detail-id,.component-caption,.scene-identity{font-size:11px}
.component-row,.tool,.small-tag,.scene-bottom,.selection-caption small,.scene-hint{font-size:10px}
.detail-heading h3,.parameter-row,.alarm-item-title,.alarm-selection-top,.alarm-selection p{font-size:12px}
.detail-heading>div>span,.status-pill,.alarm-item-meta,.alarm-item-state,.alarm-filters button,.alarm-selection-actions,.text-button{font-size:11px}
.alarm-item{padding-top:13px;padding-bottom:13px}
.alarm-list{max-height:246px}
.history-range,.playback-header-note,.timeline-topline,.timeline-topline strong,.time-ticks,.playback-footnote,.return-live,.speed-control select{font-size:10px}
.parameter-list{gap:12px}
@media(min-width:1500px){.scene-container{height:520px}.alarm-list{max-height:270px}}
@media(max-width:1150px){.alarm-item-title,.parameter-row{font-size:11px}.alarm-item-meta,.alarm-item-state{font-size:10px}.alarm-item{padding-left:12px;padding-right:12px}.detail-heading{flex-wrap:wrap}.detail-heading .status-pill{margin-left:44px;margin-top:-2px}.component-row{font-size:10px}.alarm-list{max-height:246px}}
@media(max-width:760px){
  .scene-container{height:400px}
  .scene-panel .panel-top{height:auto;min-height:92px;flex-wrap:wrap;padding:8px 10px;gap:2px}
  .scene-panel .panel-top .panel-title{width:100%}
  .view-tools{width:100%;justify-content:flex-end}
  .view-tools .tool,.view-tools .icon-button{min-height:44px;min-width:44px;font-size:11px}
  .mode-switch button,.secondary,.component-row,.text-button,.alarm-filters button,.return-live{min-height:44px}
  .rail-button{width:44px}
  .text-button,.alarm-filters button{min-width:44px}
  .component-menu{padding:3px}
  .component-row{font-size:10px;padding:7px 2px}
  .component-menu .part-glyph,.component-menu .part-status{display:none}
  .scene-hint{bottom:64px;font-size:10px}
  .selection-caption{bottom:89px;max-width:80%}
  .selection-caption small{font-size:10px}
  .orientation{bottom:90px}
  .detail-heading h3,.parameter-row,.alarm-item-title{font-size:12px}
  .detail-heading .status-pill{margin:0 0 0 auto}
  .alarm-item-meta,.alarm-item-state,.alarm-filters button,.detail-heading>div>span{font-size:11px}
  .alarm-list{max-height:none}
  .alarm-item{padding:15px 16px}
  .alarm-heading .subtle{font-size:10px}
  .playback-buttons{gap:5px}
  .play-button,.step-button{min-height:44px;min-width:44px}
  .speed-control select{height:44px;width:52px;font-size:12px}
  .return-live{position:static;margin-left:auto;padding:0;font-size:11px}
  .playback-content{gap:8px}
  .playback-buttons{width:auto;flex:1}
  .timeline-track{height:44px}
  .timeline-bands{top:18px}
  .timeline-progress{top:12px}
  #timeline{height:44px}
  .event-marker{width:44px;height:44px;top:0}
  .event-marker:after{left:19px;top:18px}
  .event-marker:hover:after{left:18px;top:17px}
  .timeline-topline{font-size:10px}
  .timeline-topline strong{font-size:10px}
  .timeline-topline small{display:none}
  .time-ticks{font-size:10px}
  .playback-header .history-range{font-size:10px}
  .dialog-note,.help-steps p{font-size:12px}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* Five-station machine: keep the model unobscured by the structure selector. */
.component-menu{position:static;width:100%;display:flex;align-items:center;flex-wrap:wrap;gap:3px;padding:8px 12px;border-radius:0;border:0;border-bottom:1px solid #e1e7df;background:#fbfcf9}
.component-menu .component-caption{display:none}.component-row{flex:0 0 auto;width:auto;min-height:34px;font-size:11px;padding:6px 8px;gap:5px;border:1px solid transparent;border-radius:4px}.component-menu .part-status{display:none}.component-menu .part-glyph{display:inline;font-size:9px}.component-row.active{border-color:#c7d7c5;background:#edf5e9}.component-row:hover{background:#f0f4eb}
.scene-container{height:492px}.scene-hint{bottom:12px}.selection-caption{bottom:36px}.orientation{bottom:40px}.scene-identity{left:15px;right:auto}.scene-loading[hidden]{display:none}.scene-loading small{max-width:350px;line-height:1.8;text-align:center;padding:0 15px}.scene-loading.error{gap:12px}.scene-loading a{font-size:12px;color:#27725f}.scene-loading .secondary{margin-top:4px;min-height:44px}.model-credit{display:flex;flex-wrap:wrap;align-items:center;gap:5px 12px;padding:10px 15px;font-size:10px;line-height:1.7;color:#7b8d79;border-top:1px solid #e1e7df}.model-credit a{color:#357b64;text-decoration:none}.model-credit>span:last-child{margin-left:auto}.process-stages{gap:3px}.process-stages span{font-size:10px;white-space:nowrap}.process-stages i{min-width:4px}.page-footer{font-size:10px}.page-footer>span:last-child{font-family:Consolas,monospace;line-height:1.7}.heading h1{font-size:27px}.fault-trigger{white-space:nowrap}.hotspot{font-size:10px}.model-credit a:hover{text-decoration:underline}
@media(min-width:1500px){.scene-container{height:530px}}
@media(max-width:1150px){.heading{align-items:flex-start}.heading-controls{flex-wrap:wrap;justify-content:flex-end;max-width:280px}.heading h1{font-size:24px}.component-row{padding:6px}.scene-container{height:485px}.model-credit>span:last-child{margin-left:0}}
@media(max-width:900px) and (min-width:761px){.heading{flex-direction:column}.heading-controls{max-width:none;justify-content:flex-start}.component-row{font-size:10px}.component-menu .part-glyph{display:none}}
@media(max-width:760px){.heading h1{font-size:22px;line-height:1.5}.heading-controls{max-width:none;gap:8px;justify-content:flex-start;flex-wrap:wrap}.mode-switch{flex:none}.mode-switch button{font-size:11px;padding:8px 10px}.secondary{font-size:11px}.component-menu{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:6px}.component-row{width:100%;min-height:44px;justify-content:center;padding:6px 2px;font-size:11px;gap:4px}.component-menu .part-glyph{display:none}.scene-container{height:372px}.selection-caption{left:12px;bottom:37px}.scene-hint{bottom:12px}.orientation{bottom:41px}.scene-identity{left:12px;right:auto}.scene-clock-caption{display:none}.hotspot{font-size:9px;padding:3px 4px}.model-credit{padding:9px 12px;font-size:10px;gap:4px 10px}.model-credit>span:last-child{width:100%;margin:0}.page-footer{font-size:10px}.page-footer>span:last-child{display:none}.process-stages span{font-size:11px}.view-tools .tool{font-size:11px}.alarm-item{padding-left:12px;padding-right:12px}.parameter-row label{max-width:52%}.parameter-row strong{text-align:right}}

/* Expand the entire 3D panel, keeping component navigation and exit reachable. */
.fullscreen-button{font-weight:600;color:#286f5a!important;border:1px solid #c6d8c9!important;margin-left:3px}.license-link{color:#547c60;font-size:10px;white-space:nowrap}
body.scene-fullscreen-open{overflow:hidden}
.scene-panel.is-fullscreen,.scene-panel:fullscreen{position:fixed!important;inset:0!important;width:100%!important;height:100vh!important;height:100dvh!important;max-width:none!important;max-height:none!important;z-index:1000;display:flex!important;flex-direction:column;overflow:hidden;background:#f1f5f4;border:0;border-radius:0;margin:0!important;box-sizing:border-box}
.scene-panel.is-fullscreen>.panel-top{flex:none;min-height:52px;height:auto;display:flex;flex-wrap:wrap;padding:6px 14px;gap:5px}.scene-panel.is-fullscreen .view-tools{flex-wrap:wrap;justify-content:flex-end}.scene-panel.is-fullscreen>.component-menu{flex:none;max-height:30dvh;overflow:auto}.scene-panel.is-fullscreen>.scene-container{flex:1 1 auto;min-height:80px;height:auto!important;width:100%}.scene-panel.is-fullscreen>.model-credit,.scene-panel.is-fullscreen>.scene-bottom{flex:none}.scene-panel.is-fullscreen .fullscreen-button{min-width:72px;min-height:40px;background:#e9f2e5}.scene-panel.is-fullscreen::backdrop{background:#f1f5f4}
@media(max-width:760px){.view-tools{flex-wrap:wrap}.scene-panel.is-fullscreen>.panel-top{padding:6px 10px;min-height:72px}.scene-panel.is-fullscreen>.component-menu{display:flex;flex-wrap:nowrap;overflow-x:auto;max-height:none;padding:4px 6px}.scene-panel.is-fullscreen>.component-menu .component-row{flex:0 0 auto;width:auto;min-height:44px;padding:6px 10px}.scene-panel.is-fullscreen>.model-credit{display:none}.scene-panel.is-fullscreen>.scene-bottom{min-height:26px;height:auto}.scene-panel.is-fullscreen .view-tools .tool{min-height:44px}.page-footer{flex-wrap:wrap}}

/* Communication controls share the existing industrial workbench vocabulary. */
.communication-panel{margin:-5px 0 23px;padding:14px 16px;background:#fff;border:1px solid var(--line);border-radius:8px;display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center}
.communication-heading{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.source-control{display:flex;align-items:center;gap:9px;color:#718784;font-size:11px}.source-control select{padding:8px;border:1px solid #cfddd6;background:#f8fbf9;border-radius:4px;color:#2b5d50;max-width:100%;font-size:12px}.connection-state{font-size:12px;color:#2e7b60;display:flex;align-items:center;gap:7px}.connection-state:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.connection-state.offline{color:#a47736}.sim-only{font-size:10px;color:#83938d}.communication-actions{display:flex;flex-wrap:wrap;gap:7px;margin-left:auto}.communication-actions .secondary{padding:8px 10px;font-size:11px}.communication-stats{flex:0 0 100%;font:11px/1.8 Consolas,"Microsoft YaHei",monospace;color:#72877e;overflow-wrap:anywhere}.timeline-bands{background:#e6ebe7}.time-ticks{gap:5px}.time-ticks span{font-size:9px}.timeline-area{min-width:0}
@media(max-width:760px){.communication-panel{padding:12px;gap:12px;margin-bottom:20px}.communication-heading{gap:12px}.communication-actions{width:100%;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.communication-actions .secondary{min-height:44px;padding:8px 6px;white-space:normal;font-size:11px}.source-control{flex-wrap:wrap}.source-control select{min-height:44px}.communication-stats{font-size:10px}.sim-only{font-size:10px}.time-ticks span:nth-child(2),.time-ticks span:nth-child(4){display:none}.connection-state{font-size:11px}}
