:root{--navy:#061b38;--deep:#020b18;--blue:#005bac;--sky:#00b6e8;--red:#d71920;--orange:#f2a23a;--green:#2acb8d;--line:#285382;--text:#eff8ff;--muted:#9bb6d2;--panel:rgba(7,34,66,.92);--scale:1}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden;background:#010711;color:var(--text);font-family:"Microsoft YaHei UI","Microsoft YaHei",sans-serif;letter-spacing:0}button{font:inherit}.stage{position:absolute;width:1920px;height:1080px;left:50%;top:50%;transform:translate(-50%,-50%) scale(var(--scale));transform-origin:center;background:linear-gradient(145deg,#061b38,#020b18);overflow:hidden}.topbar{height:82px;padding:0 64px;display:flex;align-items:center;border-bottom:1px solid var(--line);background:rgba(3,19,41,.96)}.brand{display:flex;align-items:center;gap:15px}.brand-mark{width:44px;height:44px;overflow:hidden;flex:0 0 44px}.brand-mark img{width:126px;height:126px;max-width:none;transform:translate(-40px,-23px)}.brand p{margin:0 0 3px;color:#6fa1c9;font-size:11px}.brand h1{margin:0;font-size:24px;font-weight:700}.top-status{margin-left:auto;display:flex;align-items:center;gap:25px;color:var(--muted);font-size:14px}.top-status i,.mode-chip i,.system-ok i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px;background:currentColor}.mode-chip{padding:8px 12px;border:1px solid #2c6390;color:#ccecff}.mode-chip i{color:var(--sky)}.system-ok{color:#9be5c8}.workspace{position:relative;height:844px}.scene{position:absolute;inset:0;display:none;padding:102px 64px 28px}.scene.active{display:block}.scene-heading{position:absolute;left:64px;top:30px;z-index:5}.scene-heading p{margin:0 0 5px;color:var(--sky);font-size:12px;font-weight:700}.scene-heading h2{margin:0;font-size:30px;line-height:1.25}.scene-heading span{display:block;margin-top:7px;color:var(--muted);font-size:15px}.factory-scene,.line-stage,.model-shell,.comparison,.alarm-layout,.replay-main{height:100%;border:1px solid #2c6595;background:linear-gradient(135deg,rgba(19,73,124,.53),rgba(2,15,35,.9));position:relative;overflow:hidden}.factory-scene{width:1370px}.site-grid{position:absolute;inset:-28% -10%;background-image:linear-gradient(rgba(104,192,240,.14) 1px,transparent 1px),linear-gradient(90deg,rgba(104,192,240,.14) 1px,transparent 1px);background-size:54px 54px;transform:perspective(650px) rotateX(58deg);transform-origin:center bottom}.zone{position:absolute;padding:22px;border:1px solid #76aeda;background:linear-gradient(145deg,#2b6da7,#143f70);box-shadow:22px 22px 0 rgba(0,6,17,.35);transform:skewY(-6deg)}.zone b,.zone span{display:block;transform:skewY(6deg)}.zone b{font-size:18px}.zone span{margin-top:7px;color:#bad5eb}.production{left:190px;top:200px;width:520px;height:230px}.warehouse{left:795px;top:115px;width:310px;height:190px;transform:skewY(7deg)}.warehouse b,.warehouse span{transform:skewY(-7deg)}.logistics{left:780px;top:445px;width:350px;height:165px}.office{left:205px;top:550px;width:340px;height:130px;transform:skewY(7deg)}.office b,.office span{transform:skewY(-7deg)}.route{position:absolute;height:4px;transform-origin:left center}.route i{display:block;width:100%;height:100%;background:currentColor;box-shadow:0 0 12px currentColor}.route span{position:absolute;top:12px;left:38%;color:#d6edff;white-space:nowrap}.production-route{left:260px;top:465px;width:510px;color:var(--sky);transform:rotate(-12deg)}.logistics-route{left:700px;top:410px;width:460px;color:var(--orange);transform:rotate(28deg)}.visitor-route{left:240px;top:680px;width:760px;color:#8bd08d;transform:rotate(-2deg)}.site-pin{position:absolute;font-size:15px;font-weight:700}.site-pin i{display:inline-block;width:13px;height:13px;border-radius:50%;margin-right:8px;background:var(--sky);box-shadow:0 0 12px var(--sky)}.site-pin.active i{background:var(--green)}.site-pin.warning i{background:var(--orange)}.pin-a{left:300px;top:295px}.pin-b{left:530px;top:365px}.pin-c{left:875px;top:520px}.summary-panel,.line-detail,.steps-panel{position:absolute;right:64px;top:102px;width:390px;height:714px;border:1px solid var(--line);background:var(--panel);padding:28px}.summary-panel p,.line-detail p{margin:0;color:var(--muted)}.summary-panel h3{font-size:21px;margin:13px 0 25px}.summary-panel h3 i{display:inline-block;width:11px;height:11px;border-radius:50%;background:var(--green);box-shadow:0 0 10px var(--green);margin-right:9px}.summary-panel dl,.line-detail dl,.replay-info dl{margin:0}.summary-panel dl div,.line-detail dl div,.replay-info dl div{display:flex;justify-content:space-between;padding:18px 0;border-top:1px solid #1d476e}.summary-panel dt,.line-detail dt,.replay-info dt{color:var(--muted)}.summary-panel dd,.line-detail dd,.replay-info dd{margin:0;font-weight:700}.legend{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:34px;padding-top:20px;border-top:1px solid var(--line);color:var(--muted)}.legend .run{color:var(--sky)}.legend .warn,.warning-text{color:var(--orange)!important}.legend .offline{color:#ff7d87}.ok-text{color:var(--green)!important}.line-stage{width:1370px;padding:170px 90px 80px}.line-spine{position:absolute;left:115px;right:115px;top:360px;height:5px;background:#29577f}.station-list{height:100%;display:grid;grid-template-columns:repeat(7,1fr);gap:16px;align-items:center}.station-node{position:relative;height:180px;padding:22px 15px;border:1px solid #2b5c87;background:#0a294c;text-align:center}.station-node:before{content:"";position:absolute;left:50%;top:-52px;width:16px;height:16px;border-radius:50%;transform:translateX(-50%);background:currentColor;box-shadow:0 0 14px currentColor}.station-node:after{content:"";position:absolute;left:50%;top:-36px;width:1px;height:36px;background:#4777a0}.station-node b{display:block;color:var(--sky);font-size:22px}.station-node strong{display:block;margin:12px 0 9px;font-size:17px}.station-node span{font-size:13px;color:var(--muted)}.station-node.run{color:var(--sky)}.station-node.idle{color:#849aaf}.station-node.warning{color:var(--orange)}.station-node.offline{color:#ff727d}.station-node.current{border-color:var(--sky);background:#0b3b67;transform:translateY(-18px)}.agv{position:absolute;left:565px;top:475px;background:#e7a935;color:#071329;padding:10px 18px;font-size:13px;box-shadow:0 0 20px rgba(242,162,58,.5)}.agv b,.agv span{display:block}.line-detail strong{display:block;margin-top:12px;font:700 62px "Cascadia Mono",monospace;color:var(--sky)}.line-detail h3{font-size:23px;margin:0 0 22px}.line-progress,.step-progress{height:8px;background:#163957}.line-progress i,.step-progress i{display:block;height:100%;background:var(--sky);width:58%}.model-shell{width:1280px}.model-shell .three-stage{position:absolute;inset:0}.three-stage canvas{display:block;width:100%;height:100%}.model-loading{position:absolute;inset:0;display:grid;place-items:center;color:#a9c6df;background:linear-gradient(145deg,#0a3964,#04172e);z-index:2}.three-stage.ready .model-loading{display:none}.model-label,.pane-title{position:absolute;left:24px;right:24px;bottom:22px;padding:14px 18px;background:rgba(3,17,35,.86);border-left:3px solid var(--sky);display:flex;justify-content:space-between;align-items:center;z-index:3}.model-label span,.pane-title span{color:var(--muted)}.model-label b,.pane-title b{font-size:19px}.steps-panel{width:500px}.step-summary>span{color:var(--muted)}.step-summary strong{float:right;color:var(--sky);font-size:19px}.step-summary h3{font-size:24px;margin:10px 0}.step-summary p{display:flex;justify-content:space-between;margin:10px 0 17px}.process-steps{display:grid;grid-template-columns:1fr 1fr;gap:4px 18px}.process-step{padding:10px 8px;color:#8da8c1;border-bottom:1px solid #183d60;font-size:14px}.process-step b{display:inline-block;width:26px;color:#5d8fb5}.process-step.active{color:#fff;font-weight:700;border-color:var(--sky)}.process-step.active b{color:var(--orange)}.process-step.done{color:#bce9da}.device-row{position:absolute;left:28px;right:28px;bottom:24px;display:flex;justify-content:space-between;font-size:12px;color:#b9cee2}.ok-dot{display:inline-block;width:7px;height:7px;background:var(--green);border-radius:50%;margin-right:5px}.comparison{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:20px;background:#031329;height:650px}.compare-pane{position:relative;border:1px solid var(--line);background:#061a33;overflow:hidden}.compare-pane video,.compare-pane .three-stage{width:100%;height:100%;object-fit:cover}.sync-strip{height:64px;margin-top:16px;border:1px solid var(--line);background:var(--panel);display:flex;align-items:center;justify-content:space-around;color:var(--muted)}.sync-strip i{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--green);margin-right:7px}.sync-strip b{color:#fff}.metrics-grid{height:470px;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.metrics-grid article{border:1px solid var(--line);background:var(--panel);padding:27px}.metrics-grid article>span{color:var(--muted);font-size:15px}.metrics-grid strong{display:block;margin:15px 0 8px;font:700 48px "Cascadia Mono",monospace;color:var(--sky)}.metrics-grid strong small{font:500 18px "Microsoft YaHei UI",sans-serif}.metrics-grid .text-metric{font-size:30px;color:#fff}.metrics-grid em{font-style:normal;color:#b9cee2}.dashboard-band{height:180px;margin-top:18px;border:1px solid var(--line);background:linear-gradient(90deg,#092e53,#071d38);padding:32px;display:flex;justify-content:space-between;align-items:center}.dashboard-band p{color:var(--muted);margin:0}.dashboard-band h3{font-size:25px;margin:8px 0}.dashboard-band span{color:#b9cee2}.completion-ring{width:190px;border-left:1px solid var(--line);padding-left:32px}.completion-ring span,.completion-ring b{display:block}.completion-ring b{font-size:34px;margin-top:8px;color:var(--sky)}.alarm-layout{display:grid;grid-template-columns:1.1fr .9fr}.alarm-map{position:relative;background:radial-gradient(circle at 48% 45%,#174d78,#06172d 66%);overflow:hidden}.cell-outline{position:absolute;left:16%;right:14%;top:20%;bottom:16%;border:2px solid #3c729c;transform:perspective(620px) rotateX(55deg);background-image:linear-gradient(rgba(88,162,208,.2) 1px,transparent 1px),linear-gradient(90deg,rgba(88,162,208,.2) 1px,transparent 1px);background-size:46px 46px}.alarm-device{position:absolute;left:43%;top:43%;padding:17px 22px;border:1px solid var(--red);background:rgba(74,16,25,.88);box-shadow:0 0 30px rgba(215,25,32,.35)}.alarm-device i{display:inline-block;width:13px;height:13px;background:var(--red);border-radius:50%;box-shadow:0 0 14px var(--red);margin-right:8px}.alarm-device b,.alarm-device span{display:block}.alarm-device span{margin-top:7px;color:#ffc4c8}.impact-path{position:absolute;left:53%;top:56%;width:340px;height:3px;background:var(--red);transform:rotate(23deg);box-shadow:0 0 12px var(--red)}.alarm-card{padding:26px;background:#151522;border-left:1px solid #7d2931}.alarm-tabs{display:flex;gap:8px}.alarm-tabs button{height:38px;border:1px solid #63303a;background:#261923;color:#d7b6ba;padding:0 13px}.alarm-tabs button.active{background:#6a2029;color:#fff;border-color:#b3444f}.alarm-title{margin:24px 0 15px;border-left:4px solid var(--red);padding-left:16px}.alarm-title span{color:#ff9aa3}.alarm-title h3{font-size:25px;margin:6px 0}.alarm-card dl{display:grid;grid-template-columns:1fr 1fr;margin:0;border-top:1px solid #55303a}.alarm-card dl div{padding:13px;border-bottom:1px solid #55303a}.alarm-card dt{color:#bd9da2;font-size:13px}.alarm-card dd{margin:6px 0 0;font-weight:700}.resolution-steps{display:flex;margin-top:18px}.resolution-step{flex:1;position:relative;padding-top:22px;color:#8f7880;font-size:13px}.resolution-step:before{content:"";position:absolute;left:0;right:5px;top:7px;height:3px;background:#4d3037}.resolution-step:after{content:"";position:absolute;left:0;top:2px;width:12px;height:12px;border-radius:50%;background:#4d3037}.resolution-step.done{color:#bce9da}.resolution-step.done:before,.resolution-step.done:after{background:var(--green)}.resolution-step.active{color:#fff}.resolution-step.active:after{background:var(--orange);box-shadow:0 0 10px var(--orange)}.resolve-button{margin-top:20px;height:42px;border:1px solid #a73b47;background:#71232c;color:#fff;padding:0 22px}.replay-banner{position:absolute;left:64px;right:64px;top:96px;height:48px;border:1px solid #9c6b29;background:#4d3518;display:flex;align-items:center;padding:0 18px;gap:10px;z-index:4}.replay-banner i{width:10px;height:10px;border-radius:50%;background:var(--orange)}.replay-banner span{margin-left:auto;color:#ead0a6}.replay-main{height:500px;margin-top:42px;display:grid;grid-template-columns:1.55fr .75fr}.replay-visual{position:relative;background:#082b50;overflow:hidden}.replay-visual img{width:100%;height:100%;object-fit:contain;filter:saturate(.75) brightness(.85)}.replay-visual>span{position:absolute;left:25px;bottom:22px;padding:10px 14px;background:rgba(3,17,35,.9);border-left:3px solid var(--orange);font-size:19px}.scan-line{position:absolute;left:0;right:0;height:2px;top:30%;background:rgba(0,182,232,.7);box-shadow:0 0 12px var(--sky);animation:scan 4s linear infinite}.replay-info{padding:35px;background:var(--panel)}.replay-info>span{color:var(--muted)}.replay-info>strong{display:block;font:700 43px "Cascadia Mono",monospace;margin:12px 0;color:var(--orange)}.replay-info>p{line-height:1.7;color:#c3d5e6}.replay-timeline{height:145px;margin-top:16px;border:1px solid var(--line);background:var(--panel);padding:28px;position:relative}.replay-track{height:6px;background:#254d72;position:relative}.replay-track i{display:block;height:100%;width:38%;background:var(--orange)}.replay-track button{position:absolute;top:-5px;width:16px;height:16px;border-radius:50%;border:2px solid #d4e9f7;background:#0a3157;transform:translateX(-50%)}.timeline-labels{display:flex;justify-content:space-between;margin-top:14px;color:var(--muted);font-size:12px}.replay-timeline>button{float:right;margin:18px 0 0 10px;height:34px;border:1px solid var(--line);background:#0b3157;color:#e3f2ff;padding:0 14px}.controlbar{height:154px;border-top:1px solid var(--line);background:#03152e;padding:16px 64px;display:grid;grid-template-columns:1fr auto;grid-template-rows:72px 38px;gap:6px 22px}.scene-nav{display:flex;align-items:center}.nav-step{position:relative;min-width:168px;color:#6f91b4;padding-left:18px;font-size:12px}.nav-step:before{content:"";position:absolute;left:0;top:3px;width:10px;height:10px;border:2px solid #6685a3;border-radius:50%}.nav-step:after{content:"";position:absolute;left:13px;top:9px;width:151px;height:1px;background:#315b83}.nav-step:last-child:after{display:none}.nav-step span{display:block;margin-top:5px;color:#9db6d0;font-size:13px}.nav-step.active{color:#fff}.nav-step.active:before{border-color:var(--sky);background:var(--sky);box-shadow:0 0 9px var(--sky)}.nav-step.complete:before{border-color:var(--green);background:var(--green)}.controls{display:flex;gap:9px;align-items:center}.controls button{height:43px;border:1px solid var(--line);background:#0a2a4e;color:#d7edff;padding:0 15px;min-width:92px}.controls button span{margin-right:7px}.controls button.primary{background:var(--blue);border-color:#1d81c3}.controls button:hover{background:#14588b}.timeline{grid-column:1/-1;display:grid;grid-template-columns:70px 1fr 60px;gap:14px;align-items:center;color:#87a7c4;font:13px "Cascadia Mono",monospace}.timeline>div{height:4px;background:#173b5d}.timeline i{display:block;height:100%;width:0;background:var(--sky)}@keyframes scan{from{top:20%}to{top:82%}}@media(max-aspect-ratio:16/9){.stage{--fit:w}}
.factory-3d-shell{background:#061a33}.overview-three{position:absolute;inset:0;z-index:3}.factory-overlay{position:absolute;inset:0;z-index:5;pointer-events:none}.factory-station-pin{position:absolute;pointer-events:auto;min-width:162px;padding:11px 14px;border:1px solid #4c99c7;background:rgba(3,28,54,.9);color:#eef9ff;text-align:left;box-shadow:0 0 20px rgba(0,182,232,.22);cursor:pointer}.factory-station-pin:hover{border-color:#00b6e8;background:#0b406c}.factory-station-pin b{display:inline-block;width:30px;color:#00b6e8;font:700 18px "Cascadia Mono",monospace}.factory-station-pin span{display:block;margin:5px 0 0 34px;color:#8fe0bc;font-size:12px}.station-a{left:16%;top:58%}.station-b{left:43%;top:39%}.station-c{left:70%;top:56%}.route-tag{position:absolute;color:#a9d9f4;font-size:12px;background:rgba(3,20,42,.8);padding:5px 8px;border-left:2px solid #00b6e8}.tag-one{left:34%;top:69%}.tag-two{left:57%;top:28%;border-color:#f2a23a}.overview-model-caption{position:absolute;left:24px;right:24px;bottom:22px;z-index:6;display:flex;justify-content:space-between;padding:14px 18px;background:rgba(3,17,35,.88);border-left:3px solid #00b6e8}.overview-model-caption span{color:#9bb6d2}.factory-3d-shell>.site-grid,.factory-3d-shell>.zone,.factory-3d-shell>.route,.factory-3d-shell>.site-pin{display:none}
.summary-panel,.steps-panel{background:rgba(7,34,66,.72);backdrop-filter:blur(6px)}.simulation-tag{display:inline-block;margin-bottom:12px;padding:5px 8px;border:1px solid rgba(0,182,232,.45);background:rgba(0,182,232,.12);color:#89dff3;font-size:12px}.factory-sim-card{position:absolute;right:22px;bottom:84px;z-index:7;width:218px;padding:14px;border:1px solid rgba(68,143,191,.72);background:rgba(3,23,47,.72);backdrop-filter:blur(7px)}.factory-sim-card>span{color:#89dff3;font-size:12px}.factory-sim-card>b{display:block;margin:8px 0;color:#fff;font-size:17px}.factory-sim-card dl{display:grid;grid-template-columns:1fr 1fr;margin:0;border-top:1px solid rgba(94,154,195,.35)}.factory-sim-card dl div{padding-top:8px}.factory-sim-card dt{color:#9bb6d2;font-size:11px}.factory-sim-card dd{margin:3px 0 0;color:#bce9da;font:700 14px "Cascadia Mono",monospace}.overview-actions{position:absolute;left:22px;bottom:86px;z-index:7;display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid rgba(68,143,191,.72);background:rgba(3,23,47,.72);color:#a8c8df;font-size:12px}.overview-actions button{height:32px;border:1px solid #2d79aa;background:#0b3961;color:#e7f6ff;padding:0 12px;cursor:pointer}.overview-actions button:hover{background:#14588b}
.factory-sim-card{width:250px}.factory-sim-card dl{grid-template-columns:1fr 1fr;gap:0 12px}.station-sim-card{position:absolute;right:22px;top:22px;z-index:4;width:245px;padding:14px;border:1px solid rgba(68,143,191,.72);background:rgba(3,23,47,.70);backdrop-filter:blur(7px)}.station-sim-card>span{color:#89dff3;font-size:12px}.station-sim-card>b{display:block;margin:8px 0;color:#fff;font-size:17px}.station-sim-card dl{margin:0;border-top:1px solid rgba(94,154,195,.35)}.station-sim-card dl div{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid rgba(94,154,195,.24)}.station-sim-card dt{color:#9bb6d2;font-size:11px}.station-sim-card dd{margin:0;color:#bce9da;font:700 12px "Cascadia Mono",monospace}.overview-actions{max-width:520px;flex-wrap:wrap}
.roam-station-card{display:none;position:absolute;left:22px;top:22px;z-index:7;width:220px;padding:14px;border:1px solid rgba(0,182,232,.65);background:rgba(3,23,47,.76);backdrop-filter:blur(7px)}.roam-station-card.visible{display:block}.roam-station-card>span{color:#89dff3;font-size:12px}.roam-station-card>b{display:block;margin:8px 0;color:#fff;font-size:17px}.roam-station-card dl{margin:0;border-top:1px solid rgba(94,154,195,.35)}.roam-station-card dl div{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid rgba(94,154,195,.24)}.roam-station-card dt{color:#9bb6d2;font-size:11px}.roam-station-card dd{margin:0;color:#bce9da;font:700 12px "Cascadia Mono",monospace}

/* v0073 UI review: interior semantics, P0-only summary, and projected POI labels. */
.factory-station-pin{left:0;top:0;min-width:184px;min-height:68px;padding:12px 14px;overflow:visible;transform:none;transition:border-color .18s ease,background .18s ease,opacity .18s ease}
.factory-station-pin b{width:34px;font-size:19px;vertical-align:middle}
.factory-station-pin.selected{border-color:#59d6f5;background:rgba(5,49,82,.94);box-shadow:0 0 24px rgba(0,182,232,.28)}
.factory-station-pin strong{font-size:16px;line-height:1.25;white-space:nowrap;vertical-align:middle}
.factory-station-pin span{margin:6px 0 0 38px;font-size:14px;line-height:1.2}
.factory-station-pin .pin-leader{position:absolute;left:0;top:0;width:0;height:1px;background:rgba(148,213,246,.9);transform-origin:0 50%;pointer-events:none;box-shadow:0 0 5px rgba(0,182,232,.45)}
.factory-station-pin .pin-anchor-dot{position:absolute;left:0;top:0;width:9px;height:9px;border:2px solid #c8f2ff;border-radius:50%;background:#008fbd;box-shadow:0 0 10px rgba(0,182,232,.85);pointer-events:none}
.station-a,.station-b,.station-c{left:0;top:0}
.route-tag{font-size:14px;line-height:1.25;padding:7px 10px}
.route-tag:after{content:"";position:absolute;left:10px;top:100%;width:24px;height:1px;background:currentColor;transform:rotate(38deg);transform-origin:left center;opacity:.75}
.overview-model-caption{font-size:14px}
.overview-actions{font-size:14px;max-width:590px}
.overview-actions button{height:36px;font-size:14px}
.summary-panel{display:flex;flex-direction:column;padding:24px}
.summary-panel>p{font-size:14px}
.summary-panel h3{margin:10px 0 18px;font-size:21px}
.summary-panel .summary-metrics{display:grid;grid-template-columns:1fr 1fr;gap:0 18px;border-top:1px solid #1d476e}
.summary-panel .summary-metrics div{display:block;padding:13px 0;border-top:0;border-bottom:1px solid #1d476e}
.summary-panel .summary-metrics dt{font-size:14px}
.summary-panel .summary-metrics dd{margin-top:5px;font:700 17px "Cascadia Mono",monospace;font-variant-numeric:tabular-nums}
.summary-panel .factory-sim-card{position:static;width:auto;margin:18px 0 0;padding:17px 0 0;border:0;border-top:1px solid var(--line);background:none;backdrop-filter:none}
.summary-panel .factory-sim-card>span{font-size:14px}
.summary-panel .factory-sim-card>b{margin:7px 0 10px;font-size:17px}
.summary-panel .factory-sim-card dl{grid-template-columns:1fr 1fr;gap:0 16px}
.summary-panel .factory-sim-card dl div{padding:8px 0;border-bottom:1px solid rgba(94,154,195,.24)}
.summary-panel .factory-sim-card dt{font-size:13px}
.summary-panel .factory-sim-card dd{font-size:15px;font-variant-numeric:tabular-nums}
.summary-panel .legend{margin-top:auto;padding-top:14px;font-size:14px}
.line-stage{padding:170px 170px 80px}
.station-list{grid-template-columns:repeat(3,1fr);gap:44px}
.station-node span{font-size:14px}
.simulation-tag,.station-sim-card>span,.roam-station-card>span{font-size:14px}

/* V2.1 A: fixed tour command bar and state-driven overview rail. */
.coordinate-chip{padding:8px 11px;border:1px solid rgba(242,162,58,.55);color:#ffd495;white-space:nowrap}
.tour-scene-note{position:absolute;left:22px;top:18px;z-index:7;padding:8px 11px;border-left:3px solid var(--sky);background:rgba(3,23,47,.78);color:#c6dcea;font-size:14px}
.tour-entry-panel{position:absolute;left:22px;bottom:132px;z-index:8;width:520px;padding:16px 18px;border:1px solid rgba(68,143,191,.72);background:rgba(3,23,47,.9);backdrop-filter:blur(7px)}
.tour-entry-panel>span{color:#9bb6d2;font-size:14px}.tour-entry-panel h3{margin:7px 0 13px;font-size:19px}.tour-entry-panel>div{display:flex;gap:9px}
.tour-button{height:36px;padding:0 12px;border:1px solid #2d79aa;background:#0b3961;color:#e7f6ff;cursor:pointer;white-space:nowrap}.tour-button:hover{background:#14588b}.tour-button:focus-visible,.tour-station-grid button:focus-visible{outline:2px solid var(--sky);outline-offset:2px}.tour-button.primary{background:var(--blue);border-color:#2d8bc4}.tour-button.danger{border-color:rgba(215,25,32,.72);color:#ffc7cb}.tour-button:disabled{opacity:.52;cursor:wait}
.tour-command-bar{position:absolute;left:16px;right:16px;bottom:16px;z-index:9;height:98px;display:grid;grid-template-columns:330px minmax(320px,1fr) 500px;gap:22px;align-items:center;padding:13px 16px;border:1px solid rgba(68,143,191,.72);background:rgba(3,19,38,.96)}
.tour-poi-summary{display:grid;grid-template-columns:78px 1fr;gap:13px;align-items:center;min-width:0}.tour-poi-summary>strong{height:52px;display:grid;place-items:center;border:1px solid rgba(0,182,232,.5);background:rgba(0,91,172,.2);color:#78e3fa;font:700 18px "Cascadia Mono",monospace}.tour-poi-summary div{min-width:0}.tour-poi-summary span,.tour-poi-summary small{display:block;color:#8faac0;font-size:12px}.tour-poi-summary b{display:block;margin:3px 0 4px;overflow:hidden;color:#f4f9fc;font-size:15px;text-overflow:ellipsis;white-space:nowrap}.tour-poi-summary small span{display:inline}
.tour-progress>div{height:5px;background:#1d425e}.tour-progress i{display:block;width:0;height:100%;background:var(--sky);transition:width .2s linear}.tour-progress p{display:flex;justify-content:space-between;margin:9px 0 0;color:#8faac0;font:12px "Cascadia Mono",monospace}.tour-progress p b{color:#dcebf3;font-weight:600}
.tour-controls{display:flex;justify-content:flex-end;gap:7px}.tour-controls .tour-button{font-size:13px}
.tour-pause-flag{display:none;position:absolute;left:50%;top:20px;z-index:10;transform:translateX(-50%);padding:10px 15px;background:rgba(242,162,58,.95);color:#182530;font-size:14px;font-weight:700}
.tour-station-selector{display:none;position:absolute;left:22px;right:22px;top:68px;bottom:132px;z-index:11;padding:20px;border:1px solid rgba(68,143,191,.8);background:rgba(3,23,47,.96);backdrop-filter:blur(8px)}.tour-station-selector header{display:flex;justify-content:space-between;align-items:flex-start}.tour-station-selector h3{margin:0;font-size:24px}.tour-station-selector p{margin:7px 0 0;color:#9bb6d2;font-size:14px}.tour-station-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}.tour-station-grid button{min-height:88px;padding:14px;border:1px solid rgba(68,143,191,.7);background:rgba(9,45,75,.78);color:#edf7fb;text-align:left;cursor:pointer}.tour-station-grid button:hover{border-color:var(--sky);background:#0b3f69}.tour-station-grid b{display:block;font-size:16px}.tour-station-grid span{display:block;margin-top:7px;color:#9bb6d2;font-size:13px}.tour-station-grid em{display:inline-block;margin-top:8px;color:#91e6f7;font-size:12px;font-style:normal}
.tour-modal{display:none;position:absolute;left:50%;top:43%;z-index:12;transform:translate(-50%,-50%);width:500px;padding:24px;border:1px solid rgba(215,25,32,.72);background:rgba(3,23,47,.97);box-shadow:0 22px 58px rgba(0,0,0,.38)}.tour-modal small{color:#ffadb3;font-size:13px}.tour-modal h3{margin:8px 0;font-size:23px}.tour-modal p{margin:0 0 17px;color:#acc2d1;line-height:1.65}.tour-ending-panel{border-color:rgba(42,203,141,.68)}.tour-ending-panel small{color:#98e4c7}
.tour-summary-panel{padding:24px}.tour-summary-panel>header{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:14px;border-bottom:1px solid var(--line)}.tour-summary-panel>header p{font-size:14px}.tour-summary-panel>header h3{margin:8px 0 0}.tour-summary-panel>header>span{padding:5px 7px;border:1px solid rgba(0,182,232,.5);color:#91e6f7;font-size:12px}.tour-summary-metrics{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.tour-summary-panel .tour-summary-metrics div{display:block;padding:14px 0;border-top:0;border-bottom:1px solid #1d476e}.tour-summary-metrics dt{font-size:14px}.tour-summary-metrics dd{margin-top:6px;font:700 17px "Cascadia Mono",monospace;color:#dff7ed;font-variant-numeric:tabular-nums}.tour-summary-status{margin-top:18px;padding:13px 14px;border-left:3px solid var(--green);background:rgba(15,57,88,.62)}.tour-summary-status span{display:block;color:#9bb6d2;font-size:13px}.tour-summary-status b{display:block;margin-top:5px;font-size:15px}.tour-summary-foot{margin-top:auto!important;padding-top:16px;border-top:1px solid var(--line);font-size:12px!important;line-height:1.6}
.factory-scene[data-tour-state="READY"] .tour-controls,.factory-scene[data-tour-state="MANUAL_SELECT"] .tour-controls{display:none}.factory-scene[data-tour-state="READY"] .tour-progress,.factory-scene[data-tour-state="MANUAL_SELECT"] .tour-progress{grid-column:2/4}.factory-scene:not([data-tour-state="READY"]) .tour-entry-panel{display:none}.factory-scene[data-tour-state="PAUSED"] .tour-pause-flag{display:block}.factory-scene[data-tour-state="PAUSED"] .overview-three{filter:saturate(.72)}.factory-scene[data-tour-state="MANUAL_SELECT"] .tour-station-selector{display:block}.factory-scene[data-tour-state="MANUAL_SELECT"] .factory-overlay{opacity:.25}.factory-scene[data-tour-state="FALLBACK"] .tour-fallback-panel,.factory-scene[data-tour-state="ENDING"] .tour-ending-panel{display:block}.factory-scene[data-tour-state="FALLBACK"] .overview-three{filter:saturate(.42) brightness(.62)}.factory-scene[data-tour-state="ENDING"] .tour-controls [data-tour-action="previous"],.factory-scene[data-tour-state="ENDING"] .tour-controls [data-tour-action="pause"],.factory-scene[data-tour-state="ENDING"] .tour-controls [data-tour-action="next"],.factory-scene[data-tour-state="ENDING"] .tour-controls [data-tour-action="exit"]{display:none}
.overview-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;opacity:1;transition:opacity .22s ease}.overview-three canvas{position:relative;z-index:1;opacity:0;transition:opacity .22s ease}.overview-three.ready canvas{opacity:1}.overview-three.ready .overview-poster{opacity:0}.overview-three .model-loading{background:rgba(4,23,46,.28);text-shadow:0 1px 5px #020b18}
.factory-scene[data-tour-state^="DWELLING"] .factory-station-pin:not(.selected){opacity:.34!important}.factory-scene[data-tour-state="TRAVELLING"] .factory-station-pin{opacity:.58!important}
.factory-scene[data-card-profile="compact"]+.tour-summary-panel .tour-summary-metrics{display:none}.factory-scene[data-card-profile="compact"]+.tour-summary-panel{height:210px}.factory-scene[data-card-profile="compact"]+.tour-summary-panel .tour-summary-foot{display:none}
@media(prefers-reduced-motion:reduce){.tour-progress i{transition:none}}

.overview-poster{filter:saturate(.86) brightness(.78);transform:scale(1.018);transition:opacity .48s ease,filter .48s ease,transform 7s cubic-bezier(.2,.65,.25,1)}.overview-three.ready .overview-poster{filter:none;transform:scale(1)}
.overview-loading{position:absolute;inset:0;z-index:4;display:grid;place-items:center;overflow:hidden;background:linear-gradient(180deg,rgba(2,16,32,.12),rgba(2,16,32,.36));transition:opacity .42s ease,visibility .42s ease}.overview-three.ready .overview-loading{opacity:0;visibility:hidden;pointer-events:none}.overview-loading-panel{width:min(620px,72%);padding:26px 30px 24px;border:1px solid rgba(130,210,245,.44);background:linear-gradient(135deg,rgba(3,26,52,.9),rgba(3,16,34,.76));box-shadow:0 18px 46px rgba(0,7,20,.32);backdrop-filter:blur(8px)}.overview-loading-kicker{display:block;color:#82d8f1;font:700 12px "Cascadia Mono",monospace;letter-spacing:1.1px}.overview-loading-kicker i{display:inline-block;width:8px;height:8px;margin-right:8px;border-radius:50%;background:#2acb8d;box-shadow:0 0 14px #2acb8d;animation:loadPulse 1.2s ease-in-out infinite}.overview-loading-panel>strong{display:block;margin-top:13px;color:#f4fbff;font-size:26px;letter-spacing:.5px}.overview-loading-panel>span:not(.overview-loading-kicker){display:block;margin-top:9px;color:#b7cee2;font-size:14px}.overview-loading-progress{height:7px;margin-top:22px;background:#173b5d;overflow:hidden}.overview-loading-progress i{display:block;width:0;height:100%;background:linear-gradient(90deg,#00b6e8,#2acb8d);box-shadow:0 0 18px rgba(0,182,232,.7);transition:width .24s ease}.overview-loading-meta{display:flex;justify-content:space-between;align-items:center;margin-top:10px;color:#8ba9c4;font-size:12px}.overview-loading-meta b{color:#dff7ed;font:700 16px "Cascadia Mono",monospace}.overview-loading-scan{position:absolute;left:-10%;right:-10%;top:26%;height:1px;background:linear-gradient(90deg,transparent,rgba(0,182,232,.7),transparent);box-shadow:0 0 20px rgba(0,182,232,.72);animation:loadScan 3.8s ease-in-out infinite;pointer-events:none}.overview-three.ready .overview-loading-scan{animation:none}@keyframes loadPulse{0%,100%{opacity:.42;transform:scale(.8)}50%{opacity:1;transform:scale(1.12)}}@keyframes loadScan{0%{transform:translateY(-12vh);opacity:0}18%,78%{opacity:1}100%{transform:translateY(56vh);opacity:0}}@media(prefers-reduced-motion:reduce){.overview-poster,.overview-loading,.overview-loading-progress i{transition:none}.overview-loading-kicker i,.overview-loading-scan{animation:none}}
/* Overview camera safety */
.factory-scene{width:1325px}

.overview-reset-view{position:absolute;right:22px;top:22px;z-index:8;height:36px;padding:0 13px;border:1px solid rgba(68,143,191,.88);background:rgba(3,23,47,.86);color:#e7f6ff;cursor:pointer;box-shadow:0 4px 16px rgba(0,0,0,.22);font-size:14px;letter-spacing:.02em}.overview-reset-view:hover,.overview-reset-view:focus-visible{background:#14588b;border-color:#00b6e8;outline:none}.overview-reset-view:active{transform:translateY(1px)}
.station-sim-card{left:22px;right:auto}

/* Shared title/content contract: the heading owns its row and every scene body
   starts below it. This prevents the subtitle baseline from being crossed by
   canvas and panel borders at 100%, 125%, and 150% Windows display scaling. */
.scene{padding-top:138px}
.scene-heading{top:24px;max-width:1240px}
.scene-heading h2{line-height:1.22}
.scene-heading span{margin-top:8px;line-height:1.5;color:#b6cbe0}
.summary-panel,.line-detail,.steps-panel{top:138px;height:678px}
.replay-banner{top:138px}

/* P0 title-row final authority; keep this after legacy/shared overrides. */
.scene{padding-top:143px}
.scene-heading{top:26px;min-height:88px;max-width:1240px;overflow:visible}
.scene-heading h2{color:#f4f8fc;line-height:1.3}
.scene-heading span{margin-top:8px;color:#b8cbe0;line-height:1.5}
.summary-panel,.line-detail,.steps-panel{top:143px;height:673px}
.replay-banner{top:143px}

/* POIs are only valid after the model camera and anchors have settled. */
.factory-overlay{opacity:0;visibility:hidden;transition:opacity .18s ease}
.overview-three.ready~.factory-overlay{opacity:1;visibility:visible}

/* A2 phase-one visual baseline: mid-tone industrial blue-grey, a 74/26 stage,
   and one persistent tour controller shared by overview and station scenes. */
:root{--navy:#123047;--deep:#0b2233;--blue:#177cb0;--sky:#39dccd;--orange:#ffc66b;--green:#54dfb2;--line:#527489;--text:#f7fbfc;--muted:#c0d1d8;--panel:rgba(24,62,85,.94)}
body{background:#0b2233}
.stage{background:linear-gradient(145deg,#123047,#0b2233 72%)}
.topbar{background:#102b3f;border-color:#527489;box-shadow:0 8px 30px rgba(3,16,26,.18)}
.brand h1{color:#f7fbfc}.brand p,.statusbar{color:#c0d1d8}
.scene-heading p{color:#55e1d3}.scene-heading h2{color:#f7fbfc}.scene-heading span{color:#c0d1d8}
.factory-scene,.model-shell,.line-stage{border-color:#527489;background:#183e55}
.summary-panel,.line-detail,.steps-panel{background:linear-gradient(180deg,rgba(24,62,85,.97),rgba(16,47,67,.97));border-color:#527489;box-shadow:0 18px 42px rgba(3,16,26,.16)}
.tour-summary-panel>header,.tour-summary-panel .tour-summary-metrics div,.tour-summary-foot{border-color:rgba(124,162,181,.42)}
.tour-summary-metrics dt,.tour-summary-foot,.tour-entry-panel>span{color:#c0d1d8}
.tour-summary-status{background:rgba(38,91,111,.78)}
.tour-entry-panel{bottom:28px;background:rgba(16,47,67,.94);border-color:#668ba0;box-shadow:0 16px 34px rgba(3,16,26,.22)}
.tour-button,.controls button{border-color:#527f99;background:#184b67;color:#f1f9fb}
.tour-button:hover,.controls button:hover{background:#246782}.tour-button.primary,.controls button.primary{background:#177cb0;border-color:#4fb6cf}
.factory-station-pin{background:rgba(16,53,73,.94);border-color:#62a4bd;box-shadow:0 10px 26px rgba(3,16,26,.2)}
.factory-station-pin b{color:#46dfd1}.factory-station-pin span{color:#82e6c2}
.tour-scene-note,.overview-reset-view{background:rgba(16,47,67,.9);border-color:#668ba0;color:#eaf6f8}
.tour-command-bar{display:none!important}
.phase1-controlbar{height:154px;padding:19px 64px 15px;display:grid;grid-template-columns:280px minmax(360px,1fr) auto;grid-template-rows:66px 34px;gap:9px 24px;align-items:center;background:linear-gradient(180deg,#123047,#102a3d);border-color:#527489;box-shadow:0 -14px 34px rgba(3,16,26,.14)}
.phase1-current{display:grid;grid-template-columns:78px 1fr;gap:14px;align-items:center}.phase1-current>strong{height:52px;display:grid;place-items:center;border:1px solid rgba(57,220,205,.56);background:rgba(57,220,205,.1);color:#66eadc;font:700 18px "Cascadia Mono",monospace}.phase1-current span{display:block;color:#a9c1cc;font-size:12px}.phase1-current b{display:block;margin-top:5px;color:#f7fbfc;font-size:17px}
.phase1-progress>div{height:6px;overflow:hidden;background:#294e62}.phase1-progress i{display:block;width:0;height:100%;background:linear-gradient(90deg,#39dccd,#70e6b5);box-shadow:0 0 16px rgba(57,220,205,.5);transition:width .2s linear}.phase1-progress p{display:flex;justify-content:space-between;margin:9px 0 0;color:#a9c1cc;font:12px "Cascadia Mono",monospace}.phase1-progress p b{color:#e7f2f5;font-weight:600}
.phase1-controls{display:flex;gap:8px;align-items:center}.phase1-controls button{height:42px;min-width:94px;padding:0 14px}.phase1-controls button.primary{min-width:116px}.phase1-controls button.exit{border-color:rgba(255,198,107,.62);color:#ffd79a}.phase1-controls button.utility{min-width:44px;width:44px;padding:0}.phase1-controls button:disabled{opacity:.4;cursor:not-allowed}
.phase1-route{grid-column:1/-1;display:flex;align-items:center;color:#c0d1d8;font-size:13px;letter-spacing:.04em}.phase1-route:before{content:"一期三站链路";margin-right:22px;color:#67e1d5;font-weight:700}.phase1-route i{display:block;flex:1;max-width:118px;height:1px;margin:0 13px;background:linear-gradient(90deg,#527489,#39dccd)}
.legacy-control{display:none!important}
.station-tour-fallback{display:none;position:absolute;left:50%;top:48%;z-index:12;transform:translate(-50%,-50%);width:520px;padding:24px;border:1px solid rgba(255,198,107,.72);background:rgba(15,43,60,.96);box-shadow:0 24px 60px rgba(2,12,20,.42);backdrop-filter:blur(7px)}.station-tour-fallback.visible{display:block}.station-tour-fallback small{color:#ffd294;font-size:13px}.station-tour-fallback h3{margin:8px 0;color:#f7fbfc;font-size:23px}.station-tour-fallback p{margin:0 0 17px;color:#c0d1d8;line-height:1.65}.station-tour-fallback>div{display:flex;gap:9px}.model-shell:has(.station-tour-fallback.visible) #station3d canvas{filter:brightness(.55) saturate(.62) blur(1px)}
body:has(.factory-scene[data-tour-state="FALLBACK"]) .phase1-controls{pointer-events:none}body:has(.factory-scene[data-tour-state="FALLBACK"]) .phase1-controls button{opacity:.35;cursor:not-allowed}.phase1-controls button{transition:opacity .2s ease}
.station-focus-debug{position:absolute;z-index:11;border:2px solid #ffc66b;background:rgba(255,198,107,.06);color:#182530;font:700 12px "Cascadia Mono",monospace;box-shadow:0 0 0 1px rgba(5,22,31,.55);pointer-events:none}.station-focus-debug:before{content:"BUSINESS FOCUS";position:absolute;left:-2px;bottom:100%;padding:4px 7px;background:#ffc66b;white-space:nowrap}
@media(prefers-reduced-motion:reduce){.phase1-progress i{transition:none}}
