.construction-toolbar{display:flex;align-items:center;gap:12px;padding:10px 12px;margin-bottom:12px}.stage-steps{display:flex;gap:4px;flex:1}.stage-steps button{flex:1;border:1px solid #273542;background:#0d141b;color:#718394;padding:9px 5px;font-size:8px;cursor:pointer}.stage-steps button.active{background:#102838;color:#62c9f2;border-color:#267da5}.construction-toolbar label{display:flex;align-items:center;gap:7px;color:#8293a2;font-size:8px}.construction-layout{display:grid;grid-template-columns:minmax(520px,1.35fr) minmax(390px,.65fr);gap:12px}.bim-panel,.causal-panel{overflow:hidden}.bim-legend{display:flex;gap:10px;font-size:7px;color:#8394a3}.bim-legend span{display:flex;align-items:center;gap:4px}.bim-legend i{width:7px;height:7px;border-radius:50%}.space-dot{background:#39a8d8}.work-dot{background:#e0a746}.risk-dot{background:#ff536d}.sensor-dot{background:#50d39b}.bim-viewport{height:540px;position:relative;overflow:hidden;background:radial-gradient(circle at 50% 36%,#142430 0,#090e13 58%,#05080b 100%);perspective:1050px}.bim-viewport:before{content:"";position:absolute;inset:0;background:linear-gradient(#1b334155 1px,transparent 1px),linear-gradient(90deg,#1b334155 1px,transparent 1px);background-size:40px 40px;transform:perspective(500px) rotateX(65deg) translateY(265px) scale(1.8);opacity:.25}.bim-scene{--turn:-12deg;position:absolute;width:520px;height:390px;left:50%;top:52%;transform-style:preserve-3d;transform:translate(-50%,-50%) rotateX(58deg) rotateZ(var(--turn));transition:transform .5s}.site-base,.soil-grid,.excavation,.foundation,.basement,.tower,.core,.crane3d{position:absolute;transform-style:preserve-3d;transition:opacity .45s,transform .6s}.site-base{inset:25px 15px;background:#17232a;border:2px solid #3e5965;box-shadow:0 0 45px #1789b133}.site-base span{position:absolute;color:#89a1ad;font-size:9px;transform:rotateX(-58deg);left:12px;top:8px}.soil-grid{inset:50px 62px;background:repeating-linear-gradient(45deg,#1d352c 0,#1d352c 8px,#16271f 8px,#16271f 16px);border:2px solid #49705b}.excavation{left:96px;top:70px;width:330px;height:220px;background:#071015;border:10px solid #4a3825;box-shadow:inset 0 0 35px #000}.retaining{position:absolute;background:#746345;border:1px solid #a18c67}.r1,.r2{width:100%;height:10px}.r1{top:-10px}.r2{bottom:-10px}.r3,.r4{height:100%;width:10px}.r3{left:-10px}.r4{right:-10px}.foundation{left:108px;top:82px;width:306px;height:196px;background:#36434b;border:3px solid #708591}.foundation i{position:relative;float:left;width:46px;height:46px;margin:9px 27px;background:#53636c;border:2px solid #8397a2;box-shadow:0 0 9px #4eb9e544}.basement{left:112px;top:87px;width:298px;height:188px;background:#294453aa;border:2px solid #63b9da;box-shadow:inset 0 0 0 13px #15232a;transform:translateZ(30px)}.basement.b1{transform:translateZ(62px)}.basement span{position:absolute;left:10px;top:8px;color:#87d6f3;font-size:8px}.tower{left:160px;top:107px;width:205px;height:147px;transform-style:preserve-3d}.floor3d{position:absolute;inset:0;background:#265167bb;border:2px solid #6dc1e5;box-shadow:inset 0 0 0 9px #172f3a;transform:translateZ(var(--z));opacity:0;transition:opacity .4s,transform .5s}.floor3d:after{content:attr(data-floor);color:#8fd3ef;font-size:7px;position:absolute;right:4px;bottom:3px}.core{left:239px;top:139px;width:48px;height:58px;background:#6d7d84;border:2px solid #b5c2c7;transform:translateZ(88px)}.core:before,.core:after{content:"";position:absolute;background:#3f4d53}.core:before{width:100%;height:74px;transform-origin:top;transform:rotateX(90deg);top:0}.core:after{height:100%;width:74px;transform-origin:left;transform:rotateY(-90deg);left:0}.core span{font-size:7px;color:#dce6e9}.crane3d{left:400px;top:85px;width:6px;height:170px;background:#d0a43d;transform:translateZ(40px)}.crane3d i{position:absolute;width:160px;height:6px;background:#d0a43d;top:0;left:-70px}.crane3d b{position:absolute;width:2px;height:95px;background:#d0a43d;left:-50px;top:5px}.bim-hotspot{position:absolute;display:none;border:0;background:transparent;color:#ff5c74;font-size:14px;filter:drop-shadow(0 0 7px #ff526e);cursor:pointer;transform:rotateZ(calc(var(--turn) * -1)) rotateX(-58deg)}.bim-hotspot small{display:block;color:#dae8ef;font-size:7px}.h-soil{left:68px;top:205px}.h-wall{left:405px;top:222px}.h-core{left:270px;top:155px;transform:translateZ(130px) rotateX(-58deg)}.h-crane{left:397px;top:80px;transform:translateZ(115px) rotateX(-58deg)}.axis{position:absolute;font-size:8px;font-weight:700}.axis-x{bottom:18px;right:28px;color:#ff6578}.axis-y{bottom:38px;right:12px;color:#52d69e}.axis-z{bottom:58px;right:35px;color:#63c9ef}.section-cut{position:absolute;left:10px;top:90px;display:flex;flex-direction:column;gap:78px;color:#69808e;font-size:7px}.object-strip{display:grid;grid-template-columns:150px 1fr auto;gap:12px;align-items:center;padding:12px 16px;border-top:1px solid #26313b}.object-strip strong{font-size:10px}.object-strip span{font-size:8px;color:#8999a7}.object-strip em{font-style:normal;font-size:7px;color:#efbd60;border:1px solid #705526;padding:5px 7px}.causal-panel{min-height:620px}.causal-panel>svg{width:100%;height:520px;background:radial-gradient(circle,#101b23,#090d12)}.causal-edge{stroke:#344955;stroke-width:1.5}.causal-edge.hot{stroke:#ff5b72;stroke-width:2.5;filter:drop-shadow(0 0 4px #ff536d)}.causal-node circle{fill:#101820;stroke:#516875;stroke-width:1.5}.causal-node text{fill:#c9d6de;font-size:9px;text-anchor:middle}.causal-node.active circle{fill:#173143;stroke:#62c8ef;stroke-width:2.5}.causal-node.risk circle{fill:#35131d;stroke:#ff5a71}.causal-node.control circle{fill:#10291e;stroke:#51d098}.causal-node.sensor circle{fill:#2a210f;stroke:#e9b551}.causal-path{min-height:46px;padding:10px 15px;color:#9dafbc;font-size:8px;line-height:1.6;border-top:1px solid #26313b}.causal-path strong{color:#ff657a}.stage-gates{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:12px}.stage-gates article{padding:15px}.stage-gates h2{font-size:10px;margin:0 0 10px}.gate-row{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid #222d36;font-size:8px;color:#aab7c1}.gate-row i{width:7px;height:7px;border-radius:50%;background:#ff5a70}.gate-row.ok i{background:#52d19b}.gate-row b{margin-left:auto;color:#6f8190;font-size:7px}.stage-hidden{opacity:0!important;pointer-events:none}.stage-shown{opacity:1!important}.scene-0 .soil-grid,.scene-1 .excavation,.scene-2 .foundation,.scene-3 .basement.b2,.scene-3 .basement.b1,.scene-4 .tower,.scene-4 .core,.scene-5 .tower,.scene-5 .core,.scene-5 .crane3d,.scene-6 .tower,.scene-6 .core{opacity:1}.scene-0 .h-soil,.scene-1 .h-wall,.scene-2 .h-wall,.scene-3 .h-wall,.scene-4 .h-core,.scene-5 .h-crane,.scene-6 .h-core{display:block}@media(max-width:1200px){.construction-layout{grid-template-columns:1fr}.stage-gates{grid-template-columns:1fr}.bim-viewport{height:500px}}@media(max-width:760px){.stage-steps{display:grid;grid-template-columns:repeat(4,1fr)}.construction-toolbar{align-items:flex-start;flex-wrap:wrap}.bim-scene{transform:translate(-50%,-50%) scale(.72) rotateX(58deg) rotateZ(var(--turn))}.object-strip{grid-template-columns:1fr}.bim-legend{display:none}}
