:root{color-scheme:dark;--bg: #040b13;--panel: rgba(7, 25, 39, .88);--line: rgba(48, 206, 255, .23);--cyan: #31d8ff;--blue: #168eff;--green: #54e5a4;--orange: #ffb14d;--red: #ff5a69;--text: #e8fbff;--muted: #7396a7}*{box-sizing:border-box}html,body,#app,#dashboard{width:100%;height:100%;margin:0;overflow:hidden}body{background:radial-gradient(circle at 50% 38%,#10293d 0,#07131f 42%,var(--bg) 78%);color:var(--text);font-family:Microsoft YaHei,PingFang SC,system-ui,sans-serif}button{color:inherit;font:inherit}canvas{display:block}[data-application-landing],[data-application-dashboard]{height:100%;min-height:0}.landing-hub{height:100%;min-height:0;overflow:auto;color:var(--text);background:radial-gradient(circle at 50% 34%,#10344a 0,#061521 44%,#030a11 82%)}.landing-header{min-height:82px;display:grid;grid-template-columns:88px minmax(0,1fr) 118px;align-items:center;gap:18px;padding:10px 28px;border-bottom:1px solid rgba(49,216,255,.24);background:linear-gradient(90deg,#072333f0,#0b3648bd,#072333f0)}.landing-brand{width:64px;height:56px;overflow:hidden;box-shadow:0 0 22px #008ecf47}.landing-brand img{width:100%;height:100%;object-fit:cover}.landing-title-wrap{text-align:center}.landing-title-wrap>span{color:#54b9d4;font:9px Consolas,monospace;letter-spacing:4px}.landing-title-wrap h1{margin:5px 0 2px;font-size:25px;letter-spacing:2px}.landing-title-wrap h1:focus{outline:none}.landing-title-wrap p{margin:0;color:#7299a8;font-size:10px}.landing-badge{color:#6c9cac;font-size:10px;line-height:1.5;letter-spacing:2px;text-align:right}.landing-badge b{color:#54e5a4;font-size:13px}.landing-main{width:min(1440px,100%);min-height:calc(100vh - 82px);margin:auto;display:grid;grid-template-rows:minmax(310px,1fr) auto;gap:14px;padding:16px 22px 22px}.landing-model{position:relative;min-height:310px;overflow:hidden;border:1px solid rgba(49,216,255,.22);background:radial-gradient(circle at 50% 58%,#185d7742,#020d16b8);box-shadow:inset 0 0 70px #31d8ff0a}.landing-model:before,.landing-model:after{content:"";position:absolute;z-index:3;width:34px;height:34px;pointer-events:none}.landing-model:before{left:-1px;top:-1px;border-left:2px solid var(--cyan);border-top:2px solid var(--cyan)}.landing-model:after{right:-1px;bottom:-1px;border-right:2px solid var(--cyan);border-bottom:2px solid var(--cyan)}.landing-model-copy{position:absolute;z-index:3;top:18px;left:20px;pointer-events:none}.landing-model-copy span{color:#4b99b2;font:8px Consolas;letter-spacing:2px}.landing-model-copy h2{margin:5px 0 4px;font-size:18px}.landing-model-copy p{margin:0;color:#608898;font-size:9px}.landing-scene{position:absolute;inset:0}.landing-scene canvas{width:100%;height:100%}.landing-loading{position:absolute;z-index:4;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:#030e17db}.landing-loading i{width:38px;height:38px;border:2px solid rgba(49,216,255,.16);border-top-color:var(--cyan);border-radius:50%;animation:spin 1s linear infinite}.landing-loading b{font-size:12px}.landing-loading small{color:var(--cyan);font:10px Consolas}.landing-loading.failed i{display:none}.landing-loading.failed b{color:#ffbd70}.landing-loading.failed em{color:#7ea3af;font-size:10px;font-style:normal}.landing-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}.landing-nav button{min-width:0;min-height:86px;display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px 14px;border:1px solid rgba(49,216,255,.18);color:#dcf7ff;background:linear-gradient(145deg,#0b3043eb,#041621f2);text-align:left;cursor:pointer;transition:.18s ease}.landing-nav button:hover,.landing-nav button:focus-visible{transform:translateY(-2px);border-color:var(--cyan);box-shadow:0 8px 24px #00bceb21;outline:none}.landing-nav button>i{color:var(--cyan);font:18px Consolas;font-style:normal}.landing-nav button span{min-width:0}.landing-nav button b,.landing-nav button small{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.landing-nav button b{font-size:15px}.landing-nav button small{margin-top:4px;color:#4c8193;font:7px Consolas;letter-spacing:1px}.landing-nav button em{color:#eab769;font-size:9px;font-style:normal;white-space:nowrap}.landing-nav .landing-dashboard-entry{border-color:#54e5a466;background:linear-gradient(145deg,#0e4541eb,#052326f5)}.landing-nav .landing-dashboard-entry>i,.landing-nav .landing-dashboard-entry em{color:var(--green)}@media (max-width: 900px){.landing-header{grid-template-columns:58px minmax(0,1fr) 76px;gap:10px;padding:8px 14px}.landing-brand{width:50px;height:46px}.landing-title-wrap h1{font-size:18px}.landing-main{grid-template-rows:minmax(230px,46vh) auto;padding:10px 12px 16px}.landing-model{min-height:230px}.landing-nav{grid-template-columns:repeat(3,minmax(0,1fr))}.landing-nav button{min-height:78px;padding:10px}}@media (max-width: 520px){.landing-header{min-height:66px;grid-template-columns:46px minmax(0,1fr)}.landing-brand{width:42px;height:40px}.landing-title-wrap{text-align:left}.landing-title-wrap>span{font-size:6px;letter-spacing:1.4px}.landing-title-wrap h1{margin-top:3px;font-size:14px;letter-spacing:.5px}.landing-title-wrap p,.landing-badge{display:none}.landing-main{min-height:calc(100vh - 66px);grid-template-rows:260px auto;padding:8px}.landing-model{min-height:260px}.landing-model-copy{top:12px;left:12px}.landing-model-copy h2{font-size:15px}.landing-nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.landing-nav button{min-height:76px;grid-template-columns:26px minmax(0,1fr);gap:7px;padding:9px}.landing-nav button>i{font-size:14px}.landing-nav button b{font-size:13px}.landing-nav button em{display:none}}.app-shell{min-width:1180px;min-height:680px;height:100%;display:grid;grid-template:76px minmax(0,1fr) 28px / 306px minmax(520px,1fr) 326px;gap:10px;padding:0 12px;position:relative;background-image:linear-gradient(rgba(39,172,221,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(39,172,221,.03) 1px,transparent 1px);background-size:42px 42px}.app-shell:before{content:"";position:fixed;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(33,193,255,.06),transparent 14%,transparent 86%,rgba(33,193,255,.06))}.topbar{grid-column:1 / 4;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid var(--line);background:linear-gradient(90deg,transparent,rgba(17,74,105,.38) 28%,rgba(17,74,105,.38) 72%,transparent);position:relative}.topbar:after{content:"";position:absolute;left:32%;right:32%;bottom:-1px;height:2px;background:linear-gradient(90deg,transparent,var(--cyan),transparent);box-shadow:0 0 14px var(--cyan)}.brand-mark{width:58px;height:50px;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:2px;box-shadow:0 0 18px #008ecf40}.brand-mark img{width:100%;height:100%;display:block;object-fit:cover}.title-wrap{position:absolute;left:50%;transform:translate(-50%);text-align:center;white-space:nowrap}.eyebrow{color:#4aa0bd;font-size:9px;letter-spacing:4px}h1{margin:4px 0 0;font-size:24px;letter-spacing:3px;text-shadow:0 0 16px rgba(49,216,255,.38)}.top-status{display:flex;gap:18px;align-items:center;font-size:12px;color:#8fb9c9}.dashboard-home{min-height:32px;padding:0 10px;border:1px solid rgba(49,216,255,.3);color:#bdefff;background:#31d8ff14;font-size:10px;cursor:pointer}.top-status strong{color:var(--cyan);font:600 18px Consolas,monospace}.panel-stack{min-height:0;display:flex;flex-direction:column;gap:10px}.left-panel{grid-column:1;grid-row:2}.right-panel{grid-column:3;grid-row:2}.panel{position:relative;border:1px solid var(--line);background:linear-gradient(145deg,#071b2af0,#05111cd1);box-shadow:inset 0 0 30px #0d6f970d;overflow:hidden}.panel:before,.panel:after{content:"";position:absolute;width:16px;height:16px;pointer-events:none}.panel:before{left:-1px;top:-1px;border-left:2px solid var(--cyan);border-top:2px solid var(--cyan)}.panel:after{right:-1px;bottom:-1px;border-right:2px solid var(--cyan);border-bottom:2px solid var(--cyan)}.panel-title{height:38px;display:flex;justify-content:space-between;align-items:center;padding:0 13px;border-bottom:1px solid rgba(48,206,255,.14)}.panel-title span{font-size:14px;font-weight:700;letter-spacing:1px}.panel-title em{color:#386c80;font-size:9px;font-style:normal;letter-spacing:2px}.project-panel{flex:0 0 222px}.project-visual{height:125px;margin:9px 10px 6px;position:relative;overflow:hidden;background:#102331}.project-visual img{width:100%;height:100%;object-fit:cover;opacity:.74;filter:saturate(.75) contrast(1.12)}.project-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(3,16,25,.7),transparent 52%)}.target-tag{position:absolute;right:13px;bottom:13px;z-index:1;color:#fff;font-size:11px;padding:4px 7px;background:#f03f4ac7;border:1px solid #ff6671}.project-copy{padding:1px 10px;display:flex;justify-content:space-between;align-items:center;gap:8px}.project-copy>div{min-width:0;display:flex;flex-direction:column;gap:2px}.project-copy b{overflow:hidden;font-size:11px;white-space:nowrap;text-overflow:ellipsis}.project-copy span{overflow:hidden;color:var(--muted);font-size:9px;white-space:nowrap;text-overflow:ellipsis}.project-copy button{flex:0 0 auto;padding:5px 7px;border:1px solid rgba(49,216,255,.35);background:#31d8ff14;color:#bdefff;font-size:9px;cursor:pointer}.project-copy button:hover{border-color:var(--cyan);background:#31d8ff26}.monitor-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;flex:0 0 190px}.monitor-card{border:1px solid rgba(48,206,255,.18);background:#071e2ed1;display:grid;grid-template-columns:27px 1fr 28px;align-items:center;gap:5px;padding:8px;text-align:left;cursor:pointer;transition:.2s}.monitor-card:hover,.monitor-card.active{border-color:var(--cyan);transform:translateY(-1px);box-shadow:0 0 18px #31d8ff1f}.monitor-icon{color:var(--cyan);font-size:17px}.monitor-copy{display:flex;flex-direction:column;min-width:0}.monitor-copy b{font-size:11px;white-space:nowrap}.monitor-copy small{color:var(--muted);font-size:9px;margin-top:4px;white-space:nowrap}.monitor-card strong{color:var(--cyan);font:700 19px Consolas,monospace;text-align:right}.online-card strong,.online-card .monitor-icon{color:var(--green)}.tower-card{grid-column:1/3;min-height:42px}.tower-card strong,.tower-card .monitor-icon{color:var(--orange)}.lifecycle-panel{flex:1;min-height:120px}.stage-list{padding:10px 13px;display:grid;grid-template-columns:1fr 1fr;gap:6px 8px}.stage{border:1px solid rgba(48,206,255,.13);background:#0a26358c;padding:7px 8px;display:flex;align-items:center;gap:8px;cursor:pointer;text-align:left}.stage i{font:10px Consolas;color:#50879b}.stage span{font-size:11px}.stage.active{border-color:var(--orange);color:#ffd59d;background:#ffb14d17}.stage.active i{color:var(--orange)}.site-brief{margin:2px 13px 12px;padding:10px;border:1px solid rgba(49,216,255,.16);background:linear-gradient(145deg,#0b2b3bb8,#051622c2)}.site-brief-title{display:flex;align-items:center;justify-content:space-between;padding-bottom:7px;border-bottom:1px solid rgba(49,216,255,.12)}.site-brief-title b{font-size:11px;letter-spacing:.5px}.site-brief-title em{color:#3c7185;font:8px/1 Consolas;letter-spacing:1.5px}.site-facts{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;padding:8px 0}.site-facts span{min-width:0;display:flex;justify-content:space-between;gap:5px}.site-facts i{color:#628998;font-size:9px;font-style:normal;white-space:nowrap}.site-facts b{overflow:hidden;color:#c5e2e9;font-size:9px;font-weight:600;white-space:nowrap;text-overflow:ellipsis}.site-facts b.good{color:var(--green)}.environment-row{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.environment-row span{padding:5px 2px;border:1px solid rgba(49,216,255,.1);color:#608795;font-size:8px;text-align:center}.environment-row b{display:block;margin-top:2px;color:#9dc2cd;font:9px Consolas}.baseline-progress{position:relative;display:grid;grid-template-columns:1fr auto;gap:4px;margin-top:8px;color:#6d94a3;font-size:9px}.baseline-progress b{color:var(--cyan);font:10px Consolas}.baseline-progress>i{grid-column:1/3;height:3px;overflow:hidden;background:#31d8ff1a}.baseline-progress>i em{display:block;width:86%;height:100%;background:linear-gradient(90deg,#168eff,var(--cyan));box-shadow:0 0 8px #31d8ff80}.digital-twin{grid-column:2;grid-row:2;position:relative;min-width:0;overflow:hidden;border:1px solid rgba(48,206,255,.14);background:radial-gradient(circle at center,#144d6847,#030c147a)}.scene-container{position:absolute;inset:0}.scene-heading{position:absolute;z-index:2;left:18px;top:16px;display:flex;flex-direction:column;pointer-events:none}.scene-heading span{font-size:15px;font-weight:700}.scene-heading em{color:var(--green);font-size:10px;font-style:normal;margin-top:5px}.model-loading{position:absolute;z-index:5;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;background:#030d16c7;transition:opacity .35s}.model-loading.hidden{opacity:0;pointer-events:none}.model-loading b{font-size:12px;letter-spacing:1px}.model-loading small{color:var(--cyan)}.loader-ring{width:38px;height:38px;border:2px solid rgba(49,216,255,.18);border-top-color:var(--cyan);border-radius:50%;animation:spin 1s linear infinite;box-shadow:0 0 18px #31d8ff24}@keyframes spin{to{transform:rotate(360deg)}}.scene-legend{position:absolute;z-index:3;left:16px;bottom:18px;display:flex;flex-wrap:wrap;gap:8px 14px;max-width:72%;padding:8px 11px;background:#031019b8;border:1px solid rgba(48,206,255,.13)}.scene-legend span{display:flex;align-items:center;gap:5px;color:#a5c7d4;font-size:9px}.scene-legend i{width:7px;height:7px;border-radius:50%;background:var(--c);box-shadow:0 0 7px var(--c)}.scene-toolbar{position:absolute;z-index:3;right:12px;top:13px;display:flex;gap:4px}.scene-toolbar button{border:1px solid rgba(48,206,255,.2);background:#03141fcc;color:#8cb8c8;font-size:10px;padding:6px 8px;cursor:pointer}.scene-toolbar button:hover{color:#fff;border-color:var(--cyan)}.health-panel{flex:0 0 145px}.health-row{height:calc(100% - 38px);padding:10px 13px;display:grid;grid-template-columns:96px 1fr;gap:13px;align-items:center}.health-score{height:78px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-right:1px solid rgba(49,216,255,.16);background:radial-gradient(circle,rgba(84,229,164,.12),transparent 68%)}.health-score strong{color:var(--green);font:700 38px/1 Consolas,monospace;letter-spacing:-2px;text-shadow:0 0 16px rgba(84,229,164,.34)}.health-score small{margin-top:6px;color:#85aebb;font-size:10px;letter-spacing:2px}.health-bars{display:grid;gap:5px}.health-bars span{min-width:0;display:flex;align-items:center;justify-content:space-between;padding:0 1px 5px;border-bottom:1px dashed rgba(108,160,179,.18)}.health-bars span:last-child{border-bottom:0;padding-bottom:0}.health-bars i{color:#88abba;font-size:10px;font-style:normal;letter-spacing:.5px}.health-bars b{color:#eafaff;font:700 14px/1 Consolas,monospace}.health-bars .warning b{color:var(--orange)}.health-bars .alarm b{color:var(--red)}.detail-panel{flex:1 1 210px;min-height:195px}.point-detail{position:relative;height:calc(100% - 38px);padding:10px 13px 9px;display:flex;flex-direction:column;gap:6px;overflow:hidden}.point-overview{display:grid;grid-template-columns:minmax(105px,1fr) 142px;gap:9px;align-items:start}.point-primary{min-width:0}.point-code{align-self:flex-start;min-width:52px;padding:3px 7px;border:1px solid rgba(49,216,255,.38);border-radius:2px;color:var(--cyan);background:#31d8ff12;font:700 10px/1.2 Consolas,monospace;letter-spacing:1px;text-align:center}.point-code.warning{color:var(--orange);border-color:#ffb14d73;background:#ffb14d14}.point-code.alarm{color:var(--red);border-color:#ff5a697a;background:#ff5a6914}.point-detail h2{overflow:hidden;margin:6px 0 1px;color:#f1fcff;font-size:16px;line-height:1.2;letter-spacing:.5px;white-space:nowrap;text-overflow:ellipsis}.value-line{display:flex;align-items:baseline;gap:6px;margin:2px 0 7px}.value-line strong{color:var(--cyan);font:700 25px/1.05 Consolas,monospace;text-shadow:0 0 12px rgba(49,216,255,.24)}.value-line span{color:#92b5c2;font:11px Consolas,monospace}.threshold-line{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.threshold-line span{overflow:hidden;padding:5px 3px;border:1px solid rgba(49,216,255,.12);background:#0928398c;color:#789dab;font-size:9px;line-height:1.15;text-align:center;white-space:nowrap;text-overflow:ellipsis}.threshold-line span:nth-child(1){border-color:#ffd54338;color:#dbc66f}.threshold-line span:nth-child(2){border-color:#ffb14d3d;color:#e5a964}.threshold-line span:nth-child(3){border-color:#ff5a693d;color:#e77b85}.change-metrics{width:auto;display:grid;grid-template-columns:1fr 1fr;gap:4px}.change-metrics span{min-width:0;padding:4px 5px;border:1px solid rgba(49,216,255,.11);background:#08233299}.change-metrics i{display:block;color:#5d8594;font-size:7px;font-style:normal;white-space:nowrap}.change-metrics b{display:block;margin-top:2px;overflow:hidden;color:#acd2dc;font:9px/1.1 Consolas,monospace;white-space:nowrap;text-overflow:ellipsis}.live-type-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:3px}.live-type{min-width:0;padding:4px 2px 3px;border-top:2px solid var(--type-color);background:#0a2837a3;text-align:center}.live-type span{display:block;overflow:hidden;color:#769cab;font-size:8px;white-space:nowrap}.live-type b{display:block;margin-top:2px;overflow:hidden;color:#d9f3f8;font:700 11px/1 Consolas,monospace;white-space:nowrap;text-overflow:ellipsis}.live-type small{display:block;margin-top:3px;overflow:hidden;color:#557b89;font:7px/1 Consolas,monospace;white-space:nowrap;text-overflow:ellipsis}.live-type.attention{background:#facc1514}.live-type.warning{background:#fb923c17}.live-type.alarm{background:#ef44441a}.live-type.warning b{color:#ffca8c}.live-type.alarm b{color:#ff9aa5}.device-line{margin-top:auto;overflow:hidden;color:#567b8a;font-size:8px;letter-spacing:.3px;white-space:nowrap;text-overflow:ellipsis}.project-intro-modal{position:fixed;z-index:1000;inset:0;display:flex;align-items:center;justify-content:center;padding:24px;background:#01080ed1;backdrop-filter:blur(7px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s,visibility .2s}.project-intro-modal.open{opacity:1;visibility:visible;pointer-events:auto}.project-intro-dialog{position:relative;width:min(760px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow:auto;padding:24px;border:1px solid rgba(49,216,255,.42);background:linear-gradient(145deg,#0a2536,#06121e 70%);box-shadow:0 0 60px #14aadc33,inset 0 0 50px #31d8ff0a}.project-intro-dialog:before{content:"";position:absolute;left:0;top:0;width:110px;height:3px;background:var(--cyan);box-shadow:0 0 14px var(--cyan)}.project-intro-close{position:absolute;right:14px;top:12px;width:30px;height:30px;border:1px solid rgba(49,216,255,.25);background:#04141fc2;color:#9ac5d3;font-size:21px;line-height:1;cursor:pointer}.project-intro-eyebrow{color:#4fa5c0;font:9px Consolas,monospace;letter-spacing:3px}.project-intro-dialog h2{margin:8px 42px 15px 0;color:#f2fcff;font-size:23px;letter-spacing:1px}.project-intro-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}.project-intro-kpis span{padding:10px 12px;border:1px solid rgba(49,216,255,.16);background:#31d8ff0e}.project-intro-kpis b,.project-intro-kpis small{display:block}.project-intro-kpis b{color:var(--cyan);font:700 17px Consolas,monospace}.project-intro-kpis small{margin-top:4px;color:#789caa;font-size:9px}.project-comparison{margin:0 0 14px;border:1px solid rgba(49,216,255,.2);background:#061522}.project-comparison img{display:block;width:100%;max-height:285px;object-fit:cover}.project-comparison figcaption{display:flex;justify-content:space-between;padding:7px 10px;color:#6f9cab;font-size:9px;letter-spacing:1px}.project-intro-copy{color:#b8d4dc;font-size:13px;line-height:1.8}.project-intro-copy p{margin:0 0 9px}.project-intro-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.project-intro-tags span{padding:5px 8px;border:1px solid rgba(84,229,164,.22);color:#8dd7b8;background:#54e5a40d;font-size:9px}.project-features{margin-top:14px}.project-features-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;padding-bottom:7px;border-bottom:1px solid rgba(49,216,255,.15)}.project-features-title span{font-size:15px;font-weight:700}.project-features-title em{color:#4b8094;font:8px Consolas;letter-spacing:2px}.project-feature-gallery{display:grid;grid-template-columns:1fr 1fr;gap:8px}.project-feature-gallery figure{position:relative;margin:0;overflow:hidden;border:1px solid rgba(49,216,255,.18);background:#061522}.project-feature-gallery .feature-wide{grid-column:1/-1}.project-feature-gallery img{display:block;width:100%;height:240px;object-fit:contain;background:#03101a}.project-feature-gallery .feature-wide img{height:auto;max-height:none;object-fit:contain}.project-feature-gallery figcaption{position:absolute;right:0;bottom:0;left:0;padding:7px 9px;color:#d7f7ff;background:linear-gradient(transparent,#020d15f0);font-size:9px;letter-spacing:.8px}.project-feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.project-feature-grid article{padding:10px;border:1px solid rgba(49,216,255,.14);background:#31d8ff0b}.project-feature-grid span{display:block;margin-bottom:4px;color:#4b8094;font:8px Consolas,monospace;letter-spacing:1.4px}.project-feature-grid b{color:#bdefff;font-size:12px}.project-feature-grid p{margin:5px 0 0;color:#83a7b4;font-size:10px;line-height:1.6}.content-hub{position:fixed;z-index:1300;inset:0;display:none;padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));color:#d8f4fb;background:#010910f5;backdrop-filter:blur(14px)}.content-hub.open{display:block}.content-hub-shell{width:min(1320px,100%);height:100%;margin:auto;display:grid;grid-template-rows:58px minmax(0,1fr);border:1px solid rgba(49,216,255,.32);background:linear-gradient(145deg,#0a2131,#03101b 70%);box-shadow:0 0 70px #00beff1f}.content-hub-bar{display:grid;grid-template-columns:160px 1fr 48px;align-items:center;gap:10px;padding:0 10px 0 16px;border-bottom:1px solid rgba(49,216,255,.22);background:#041926eb}.content-hub-bar>span{text-align:center;color:#63dffc;font-size:10px;letter-spacing:4px}.content-hub-bar button{min-height:44px;border:1px solid rgba(49,216,255,.24);color:#bdefff;background:#31d8ff0d;cursor:pointer}.content-hub-bar [data-content-back][hidden]{display:block;visibility:hidden}.content-hub-bar [data-content-close]{font-size:24px}.content-hub-main{min-height:0;overflow:auto;overscroll-behavior:contain;padding:28px}.content-hub-heading{max-width:840px;margin:0 auto 24px;text-align:center}.content-hub-heading>span,.content-topic-hero>span{color:#4ebbd7;font:10px Consolas,monospace;letter-spacing:3px}.content-hub-heading h2,.content-topic-hero h2{margin:7px 0 9px;color:#ecfbff;font-size:30px}.content-hub-heading p,.content-topic-hero p{margin:0;color:#91b5c1;font-size:13px;line-height:1.8}.content-topic-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.content-topic-grid button{min-height:190px;display:grid;grid-template-columns:38px 1fr;grid-template-rows:1fr auto;gap:9px;padding:18px;border:1px solid rgba(49,216,255,.2);color:#d8f4fb;background:linear-gradient(145deg,#0d3043eb,#041622f5);text-align:left;cursor:pointer;transition:.18s ease}.content-topic-grid button:hover,.content-topic-grid button:focus-visible{transform:translateY(-3px);border-color:#31d8ff;box-shadow:0 10px 30px #00bceb21;outline:none}.content-topic-grid i{color:#31d8ff;font:22px Consolas,monospace;font-style:normal}.content-topic-grid span{min-width:0}.content-topic-grid b,.content-topic-grid em,.content-topic-grid small{display:block}.content-topic-grid b{font-size:18px}.content-topic-grid em{margin:5px 0 12px;color:#4b8295;font:8px Consolas;font-style:normal;letter-spacing:1.6px}.content-topic-grid small{color:#88aab6;font-size:10px;line-height:1.65}.content-topic-grid strong{grid-column:2;color:#f4b45c;font-size:10px;font-weight:500}.content-topic-view{max-width:1120px;margin:auto}.content-topic-hero{padding:3px 0 18px;border-bottom:1px solid rgba(49,216,255,.17)}.content-topic-hero>em{display:block;margin-top:9px;color:#4f7c8b;font:9px Consolas;font-style:normal}.content-topic-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:16px 0}.content-topic-metrics span{padding:13px 14px;border:1px solid rgba(49,216,255,.16);background:#31d8ff0b}.content-topic-metrics b,.content-topic-metrics small{display:block}.content-topic-metrics b{color:#46dcff;font:700 20px Consolas}.content-topic-metrics small{margin-top:5px;color:#769eac;font-size:9px}.content-media-section{margin:18px 0}.content-media-section>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 2px 8px;border-bottom:1px solid rgba(49,216,255,.16)}.content-media-section>header span{color:#cceff7;font-size:15px;font-weight:700}.content-media-section>header em{color:#558797;font:9px Consolas;font-style:normal}.content-hub-media{columns:3;column-gap:10px;margin:10px 0 16px}.content-hub-media.single{columns:1}.content-hub-media figure{break-inside:avoid;margin:0 0 10px;overflow:hidden;border:1px solid rgba(49,216,255,.18);background:#03101a;transition:.18s ease}.content-hub-media figure:hover{border-color:#31d8ff8c;transform:translateY(-2px)}.content-hub-media a{display:block;background:transparent}.content-hub-media img{display:block;width:100%;height:auto}.content-hub-media figcaption{padding:8px 10px;color:#89b3c0;font-size:9px}.content-topic-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:16px}.content-topic-cards article{position:relative;min-height:132px;padding:16px;border:1px solid rgba(49,216,255,.15);background:#082230b8}.content-topic-cards article>em{color:#4c879b;font:8px Consolas;font-style:normal;letter-spacing:1.5px}.content-topic-cards h3{margin:5px 0 7px;color:#d8f6ff;font-size:14px}.content-topic-cards p{margin:0;color:#88aab6;font-size:11px;line-height:1.75}.content-status{display:inline-block;margin-top:10px;padding:3px 7px;border:1px solid rgba(244,180,92,.35);color:#f4b45c;font-size:8px}.content-dashboard-action{display:block;min-height:46px;margin:20px auto 0;padding:0 24px;border:1px solid #31d8ff;color:#dffaff;background:#31d8ff1a;cursor:pointer}.tower-modal{position:fixed;z-index:1001;inset:0;display:flex;align-items:center;justify-content:center;padding:20px;background:#01080edb;backdrop-filter:blur(7px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s,visibility .2s}.tower-modal.open{opacity:1;visibility:visible;pointer-events:auto}.tower-dialog{position:relative;width:min(940px,calc(100vw - 28px));max-height:calc(100vh - 28px);overflow:auto;padding:22px;border:1px solid rgba(255,138,36,.46);background:linear-gradient(145deg,#122333,#07111c 72%);box-shadow:0 0 60px #ff8a2421}.tower-dialog h2{margin:8px 42px 5px 0;font-size:22px}.tower-intro{margin:0 0 14px;color:#789dab;font-size:11px}.tower-list{display:grid;gap:6px}.tower-row{width:100%;display:grid;grid-template-columns:100px 160px repeat(6,minmax(66px,1fr));gap:5px;align-items:center;padding:8px;border:1px solid rgba(49,216,255,.14);background:#081f2dcc;color:#d8eff5;text-align:left}.tower-row>span{min-width:0}.tower-row>span:not(.tower-number):not(.tower-location){padding-left:7px;border-left:1px solid rgba(49,216,255,.1)}.tower-row b,.tower-row small,.tower-row i{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.tower-row b{font-size:11px}.tower-row small,.tower-row i{color:#658b99;font-size:8px;font-style:normal}.tower-row>span:not(.tower-number):not(.tower-location) b{margin-top:3px;color:#bfe7ef;font:700 11px Consolas}.tower-number b{color:var(--orange);font-size:13px}.tower-row.attention{border-color:#facc156b}.tower-row.warning{border-color:#fb923c8c}.tower-thresholds{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.tower-thresholds span{padding:5px 8px;border:1px solid rgba(255,177,77,.2);color:#d5aa72;font-size:9px}.alarms-panel{flex:0 0 222px;min-height:170px}.alarm-list{height:calc(100% - 38px);padding:8px 9px;display:flex;flex-direction:column;gap:5px;overflow:auto;scrollbar-width:thin;scrollbar-color:rgba(49,216,255,.28) transparent}.alarm-row{flex:0 0 auto;width:100%;min-height:36px;display:grid;grid-template-columns:3px minmax(0,1fr);gap:8px;align-items:stretch;padding:0;border:1px solid rgba(49,216,255,.12);border-radius:2px;background:linear-gradient(90deg,#31d8ff12,#091d2a85);color:#bcd8e2;text-align:left;cursor:pointer;transition:border-color .18s,background .18s,transform .18s}.alarm-row:hover{border-color:#31d8ff6b;background:#31d8ff17;transform:translate(-1px)}.alarm-row>i{display:block;background:var(--green);box-shadow:0 0 8px #54e5a473}.alarm-row>span{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:6px 8px 6px 0}.alarm-row b{overflow:hidden;color:#dff7fc;font-size:10px;font-weight:600;line-height:1.25;white-space:nowrap;text-overflow:ellipsis}.alarm-row small{color:#698b99;font:9px/1.2 Consolas,monospace;white-space:nowrap}.alarm-row.warning{border-color:#ffb14d2e;background:linear-gradient(90deg,#ffb14d17,#091d2a85)}.alarm-row.warning>i{background:var(--orange);box-shadow:0 0 8px #ffb14d7a}.alarm-row.warning b{color:#ffd9a5}.alarm-row.alarm{border-color:#ff5a6933;background:linear-gradient(90deg,#ff5a691a,#091d2a85)}.alarm-row.alarm>i{background:var(--red);box-shadow:0 0 8px #ff5a6980}.alarm-row.alarm b{color:#ffadb5}.scenario-panel{flex:0 0 139px}.scenario-grid{height:calc(100% - 38px);padding:8px 9px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.scenario-grid button{min-width:0;border:1px solid rgba(49,216,255,.15);border-radius:2px;background:#082333a8;color:#83a7b5;font-size:10px;padding:5px 4px;cursor:pointer;transition:.18s}.scenario-grid button:first-child{grid-column:1/3}.scenario-grid button:hover{color:#dff8ff;border-color:#31d8ff73;background:#31d8ff14}.scenario-grid button.active{border-color:var(--orange);color:#ffd39a;background:#ffb14d1a;box-shadow:inset 0 0 12px #ffb14d0f}.statusbar{grid-column:1/4;grid-row:3;display:flex;justify-content:space-between;align-items:center;padding:0 8px;border-top:1px solid rgba(48,206,255,.14);color:#52798a;font-size:9px;letter-spacing:.5px}.statusbar b{color:var(--green)}.empty-hint{color:var(--muted);font-size:11px;text-align:center;margin:auto}.app-shell.portrait-layout{width:100%;min-width:0;min-height:0;height:auto;grid-template:60px 360px auto auto 26px / minmax(0,1fr);gap:8px;padding:0 8px 8px}.portrait-layout .topbar{grid-column:1;grid-row:1;padding:0 8px;position:sticky;top:0;z-index:10}.portrait-layout .brand-mark{width:42px;height:42px}.portrait-layout .title-wrap{left:60px;right:68px;transform:none;text-align:left;overflow:hidden}.portrait-layout .eyebrow{font-size:6px;letter-spacing:2px}.portrait-layout h1{overflow:hidden;margin-top:2px;font-size:13px;letter-spacing:.5px;text-overflow:ellipsis}.portrait-layout .top-status{gap:0}.portrait-layout .top-status .location{display:none}.portrait-layout .top-status strong{font-size:12px}.portrait-layout .digital-twin{grid-column:1;grid-row:2;min-height:360px}.portrait-layout .right-panel{grid-column:1;grid-row:3;min-height:0}.portrait-layout .left-panel{grid-column:1;grid-row:4;min-height:0}.portrait-layout .statusbar{grid-column:1;grid-row:5;min-height:26px}.portrait-layout .health-panel{flex-basis:130px}.portrait-layout .detail-panel{flex-basis:230px;min-height:230px}.portrait-layout .alarms-panel{flex-basis:220px}.portrait-layout .scenario-panel{flex-basis:135px}.portrait-layout .project-panel{flex-basis:205px}.portrait-layout .project-visual{height:108px}.portrait-layout .monitor-grid{flex-basis:180px}.portrait-layout .lifecycle-panel{flex-basis:385px}.portrait-layout .scene-legend{max-width:94%;gap:6px 9px}.portrait-layout .scene-toolbar{top:52px;right:8px}.portrait-layout .scene-toolbar button{padding:5px 6px}@media (max-width: 900px){.content-hub-main{padding:20px 16px}.content-topic-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.content-topic-grid button{min-height:156px}.content-hub-media{columns:2}}@media (max-width: 520px){.project-intro-modal{padding:10px}.project-intro-dialog{width:100%;padding:19px 15px}.project-intro-dialog h2{font-size:18px}.project-intro-kpis{gap:5px}.project-intro-kpis span{padding:8px 6px}.project-intro-kpis b{font-size:13px}.project-intro-kpis small{font-size:8px}.project-comparison img{max-height:190px}.project-intro-copy{font-size:12px;line-height:1.7}.project-feature-grid,.project-feature-gallery{grid-template-columns:1fr}.project-feature-gallery .feature-wide{grid-column:auto}.project-feature-gallery img{height:auto;max-height:none;object-fit:contain}.content-hub{padding:max(6px,env(safe-area-inset-top)) max(6px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left))}.content-hub-shell{grid-template-rows:52px minmax(0,1fr)}.content-hub-bar{grid-template-columns:105px 1fr 44px;padding-left:7px}.content-hub-bar>span{font-size:8px;letter-spacing:1px}.content-hub-main{padding:16px 12px}.content-hub-heading h2,.content-topic-hero h2{font-size:22px}.content-topic-grid{grid-template-columns:1fr;gap:8px}.content-topic-grid button{min-height:132px;padding:13px}.content-topic-cards{grid-template-columns:1fr}.content-hub-media{columns:1}.tower-dialog{padding:16px 12px}.tower-row{grid-template-columns:82px 125px repeat(6,68px);width:max-content}.tower-list{overflow-x:auto}.tower-intro{line-height:1.6}}@media (max-height: 760px){.app-shell{grid-template-rows:64px minmax(0,1fr) 24px;gap:7px}.project-panel{flex-basis:165px}.project-visual{height:78px;margin-top:7px}.project-copy{padding-top:0}.monitor-grid{flex-basis:140px;gap:5px}.monitor-card{padding:5px 7px}.stage-list{padding:7px 13px;gap:4px 8px}.stage{padding:5px 8px}.site-brief{margin-top:0;padding:8px}.site-facts{padding:6px 0;gap:4px 10px}.environment-row span{padding:3px 2px}.baseline-progress{margin-top:5px}.health-panel{flex-basis:115px}.health-row{padding:6px 13px}.health-score{height:62px}.health-score strong{font-size:32px}.detail-panel{flex-basis:190px;min-height:190px}.point-detail{padding-top:9px}.alarms-panel{flex-basis:130px;min-height:120px}.alarm-row{min-height:32px}.scenario-panel{flex-basis:129px}.scenario-grid{padding:6px 9px;gap:4px}.scenario-grid button{padding:3px 4px}}
