:root{color-scheme:dark;--bg:#041020;--panel:rgba(7,24,43,.9);--cyan:#51dff9;--text:#dbe9f4;--muted:#7d9fb9;--border:rgba(103,194,225,.23);--amber:#ffc973;--red:#ff8194;--green:#54dec1;--canvas-width:2520px}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;font-family:"PingFang SC","Microsoft YaHei",Arial,sans-serif;background:#020815;color:var(--text)}button,input,select,textarea{font:inherit}button{color:inherit;cursor:pointer;border:1px solid var(--border);background:rgba(16,48,72,.55);transition:background .2s,border-color .2s,box-shadow .2s,transform .2s}button:hover{background:#123c57;border-color:#52cfe1;box-shadow:0 0 16px #28b7cf1f}button:active{transform:translateY(1px)}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #7aebff;outline-offset:3px}button:disabled{opacity:.4;cursor:default}button img{pointer-events:none}strong,b{font-weight:600}em{font-style:normal;font-weight:400}small{font-size:12px;color:var(--muted)}h1,h2,h3,p{margin:0}#screen{position:absolute;width:var(--canvas-width);height:1080px;transform-origin:0 0;background:radial-gradient(ellipse at 52% 44%,#10304a66 0,transparent 46%),linear-gradient(160deg,#06182a,#030b1b 70%);padding:0 25px;overflow:hidden}.screen-grain{position:absolute;inset:0;pointer-events:none;opacity:.04;background-image:url('./assets/backgrounds/bg-grid-master.webp');background-size:100% 100%}.ico{width:46px;height:46px;object-fit:contain;flex-shrink:0;filter:drop-shadow(0 3px 8px #00aaff22)}.ctl{width:18px;height:18px;vertical-align:middle;object-fit:contain}.icon-button{padding:9px;border-radius:5px;display:inline-grid;place-items:center}.text-button{border:0;background:transparent;padding:3px 0;color:var(--cyan);font-size:12px}.wide-button{width:100%;padding:10px;border-radius:4px;font-size:13px;display:flex;justify-content:center;align-items:center;gap:8px}.primary{background:linear-gradient(180deg,#146987b8,#103e5c);border-color:#3ca8c9}.amber{color:var(--amber)!important}.red{color:var(--red)!important}.green{color:var(--green)!important}#header{height:96px;display:flex;align-items:center;justify-content:space-between;position:relative;border-bottom:1px solid #69d8f22e;background:linear-gradient(180deg,#06203e55,transparent)}#header:after{content:'';position:absolute;bottom:-2px;left:27%;right:27%;height:3px;background:linear-gradient(90deg,transparent,#91f2ff,transparent);box-shadow:0 1px 16px #21d5ff}.brand{display:flex;align-items:center;gap:12px;width:420px;font-size:23px;letter-spacing:4px}.brand-mark{display:block;width:48px;height:48px;flex:0 0 48px;object-fit:contain;filter:drop-shadow(0 3px 7px #163f5755)}.brand-wordmark{font-weight:500;color:#c9dfea;line-height:1.25}.brand small{font:7px Arial,sans-serif;font-weight:400;letter-spacing:2px;display:block;color:#7195ad;margin-top:7px}.edition{font:9px Arial;letter-spacing:2px;color:#608ba7;border-left:1px solid #2c5066;padding-left:16px;margin-left:4px}.hero-title{position:absolute;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:30px;text-align:center;white-space:nowrap}.hero-title div{font-size:31px;letter-spacing:8px;font-weight:600;color:#e7f7ff;text-shadow:0 0 21px #58d4ff30}.hero-title small{display:block;font:9px Arial;letter-spacing:5px;color:#7badc5;margin-top:8px}.hero-title>span{width:85px;height:8px;border-top:1px solid #67bed366;border-bottom:1px solid #67bed322;transform:skewX(-35deg)}.header-right{display:flex;align-items:center;gap:12px;font-size:12px;white-space:nowrap}#clock{font-variant-numeric:tabular-nums;color:#aac6d8;letter-spacing:1px}.demo-pill{font-size:10px;padding:7px 9px;border:1px solid #30b3b45e;color:#88dcd5;border-radius:20px}.demo-pill i,.bottom-status i,.live-dot{display:inline-block;width:5px;height:5px;background:#58dfc4;border-radius:50%;margin-right:6px;box-shadow:0 0 7px #46edc6}#nav{height:79px;display:flex;justify-content:center;align-items:center;gap:16px;position:relative}.nav-item{border:1px solid transparent;background:linear-gradient(180deg,#102c4740,#06152866);display:flex;align-items:center;width:205px;height:60px;padding:5px 18px;gap:12px;border-radius:5px;position:relative}.nav-item .ico{width:43px;height:43px}.nav-item span{font-size:17px;letter-spacing:2px;text-align:left}.nav-item small{display:block;font:8px Arial;letter-spacing:1.8px;margin-top:5px}.nav-item.active{border-color:#67d4ec66;background:linear-gradient(180deg,#16698a55,#0b304966);box-shadow:inset 0 0 25px #2fb3da15,0 4px 20px #25c8ff0b}.nav-item.active b{position:absolute;bottom:0;left:30%;right:30%;height:2px;background:var(--cyan);box-shadow:0 0 12px #2cf0ff}.spatial-tab{position:absolute;right:8px;display:flex;gap:4px;align-items:center;border:0;background:transparent;font-size:12px;color:#8eb5c9}.spatial-tab .ico{width:30px;height:30px}.spatial-tab.active{color:#8bedff}#kpis{height:91px;display:grid;grid-template-columns:repeat(6,1fr);gap:14px;padding:0 0 13px}.kpi{display:flex;position:relative;align-items:center;padding:12px 20px;gap:17px;text-align:left;background:linear-gradient(100deg,#102e4866,#0b203455);border:1px solid #527c9438;border-radius:5px;overflow:hidden}.kpi:before{content:'';width:3px;height:26px;background:#79d4e6;position:absolute;left:0;box-shadow:0 0 14px #44d4ff}.kpi .ico{width:49px;height:49px}.kpi label{display:block;font-size:12px;letter-spacing:1px;color:#8eaec2;margin-bottom:5px}.kpi strong{font-family:Arial,sans-serif;font-size:30px;line-height:31px;font-weight:500;color:#e6f7ff;font-variant-numeric:tabular-nums}.kpi em{font-family:"PingFang SC",sans-serif;font-size:11px;color:#7d9aaf;margin-left:7px}.kpi svg{width:65px;height:30px;position:absolute;bottom:13px;right:17px;opacity:.4}.kpi svg path{fill:none;stroke:#5ad6ef;stroke-width:1.2}.kpi.warn strong{color:#ffce8b}.kpi.warn:before{background:#e9ad54}#main{display:grid;grid-template-columns:370px minmax(600px,1fr) 370px;gap:18px;height:744px;position:relative}.rail{display:flex;flex-direction:column;gap:14px;min-width:0;z-index:2}.panel{position:relative;border:1px solid #3d769750;background:linear-gradient(110deg,#102a415c,#06192be6 45%,#07192bd4);box-shadow:inset 0 0 25px #0a304729,0 8px 24px #0000000d;border-radius:3px;flex:0 1 auto;min-height:0}.panel:before,.panel:after{content:'';width:23px;height:4px;position:absolute;left:0;top:-1px;background:#8fdae8aa;clip-path:polygon(0 0,100% 0,86% 100%,0 100%)}.panel:after{left:auto;top:auto;bottom:-1px;right:0;transform:rotate(180deg)}.panel-head{height:44px;display:flex;align-items:center;gap:10px;padding:0 14px;border-bottom:1px solid #569bb52c;background:linear-gradient(90deg,#13517235,transparent)}.head-line{width:4px;height:13px;background:#88edff;box-shadow:0 0 12px #25d7ff;transform:skewX(-22deg)}.panel h2{font-size:16px;letter-spacing:1.8px;white-space:nowrap;font-weight:500;flex:1}.panel h2 small{margin-left:10px;font:8px Arial;letter-spacing:1px;color:#628ba6}.panel-head .icon-button{padding:4px;border:0;background:none}.panel-body{padding:12px 14px;overflow:hidden}.panel-foot{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #6badbf22;padding:10px 0 0;margin-top:10px;gap:6px;font-size:10px;color:#7093a9}.environment-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.env-metric{display:flex;align-items:center;text-align:left;border-color:#48799639;background:#14375033;height:72px;padding:8px;gap:8px;border-radius:4px}.env-metric .ico{width:39px;height:39px}.env-metric span{font-size:11px;color:#91b2c6}.env-metric strong{font:26px Arial;display:inline-block;margin:4px 5px 0 0;color:#e8f5fd;font-variant-numeric:tabular-nums}.env-metric em{font:10px Arial;color:#809bae}.env-metric.warning-metric{border-color:#aa804638;background:#7a4f1b0d}.env-metric.warning-metric strong{color:#ffd08b}.health-strip{font-size:10px;display:flex;align-items:center;justify-content:space-between;margin-top:12px;color:#81a9c0}.health-strip b{font-weight:400}.target-band{margin-top:14px;padding:12px 8px;border-top:1px solid #527d9540;display:flex;justify-content:space-between;font-size:12px}.target-band strong{color:#7dd6d7}.target-band em{font-size:11px}.systems-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px 10px}.systems-grid button{display:flex;align-items:center;gap:4px;background:transparent;border:0;border-bottom:1px solid #5b93ac1a;height:62px;padding:3px 0;text-align:left}.systems-grid .ico{width:40px;height:40px}.systems-grid span{font-size:12px;flex:1}.systems-grid small{font-size:10px;display:block;margin-top:5px;color:#69c3bc}.systems-grid .ctl{width:12px;opacity:.45}.booking-list>button{display:flex;align-items:center;width:100%;text-align:left;background:transparent;border:0;border-bottom:1px solid #538da527;padding:10px 0;gap:11px}.booking-list>button:last-child{border-bottom:0}.booking-list strong{font-size:12px;display:block}.booking-list small{font-size:10px;display:block;margin-top:5px}.date-block{border-left:2px solid #56c5dc;padding-left:9px;width:49px;flex-shrink:0}.date-block b{font:13px Arial;color:#a1d7ea}.date-block small{font:10px Arial;color:#668aa4;margin-top:4px}.booking-list .badge{margin-left:auto}.badge{font-size:10px;padding:4px 6px;display:inline-block;border:1px solid #598ba84a;background:#2e658525;color:#8cb8d4;white-space:nowrap;border-radius:3px}.badge.new,.badge.alarm{color:#ff94a3;background:#af40531a;border-color:#b754694a}.badge.warning,.badge.confirmed,.badge.processing,.badge.pending{color:#ffcf91;background:#b18d401a;border-color:#aa85484a}.badge.normal,.badge.running,.badge.available,.badge.closed,.badge.returned{color:#7bdcc2;background:#329d8216;border-color:#3aab8c44}.badge.offline,.badge.cancelled{color:#8796a6;background:#56687926;border-color:#71839344}.alarm-item{display:flex;align-items:center;gap:9px;background:transparent;border:0;border-bottom:1px solid #5c8da12b;width:100%;padding:9px 0;text-align:left}.alarm-item:last-child{border-bottom:0}.alarm-icon .ico{width:33px;height:33px}.alarm-copy{flex:1}.alarm-copy strong{font-size:12px;font-weight:500;display:block;color:#c7dce8}.alarm-copy small{font-size:10px;display:block;margin-top:6px}.alarm-copy i{display:inline-block;margin:0 5px;width:2px;height:2px;background:#57798e}.alarm-item.critical strong{color:#ffd4d9}.alarm-copy p{font-size:11px;line-height:1.8;margin-top:7px;color:#829db0}.chart{position:relative;margin-top:9px}.chart svg{width:100%;height:126px;overflow:visible}.chart .gridline{stroke:#6088a126;stroke-dasharray:3 7;stroke-width:1}.chart .line{fill:none;stroke:#56dcf7;stroke-width:2.4;stroke-linejoin:round;filter:drop-shadow(0 0 3px #31c3e777)}.chart .secondary{stroke:#9b96ec;stroke-width:1.6;stroke-dasharray:5 5;filter:none;opacity:.6}.chart text{font:15px Arial;fill:#688aa4}.chart-legend{display:flex;align-items:center;gap:7px;font-size:10px;color:#81a3ba;margin-top:3px}.chart-legend i{height:2px;width:11px;background:#5cdcf8}.chart-legend .purple{background:#9d94db;margin-left:12px}.chart-legend span{margin-left:auto}.chart-tip{position:absolute;z-index:3;top:0;padding:8px;background:#06172cf0;border:1px solid #4b97b3;border-radius:4px;display:none;pointer-events:none;font-size:11px;white-space:nowrap;box-shadow:0 3px 15px #0008}.panel-tabs{display:flex;gap:5px;justify-content:flex-end;margin-top:-3px}.panel-tabs button{font-size:10px;width:29px;padding:4px;border-radius:3px;background:transparent}.panel-tabs button.active{color:var(--cyan);background:#318aa02c;border-color:#498fa7}.small-summary{display:flex;justify-content:space-around;border-top:1px solid #5e97b027;margin-top:12px;padding-top:10px;font-size:10px;color:#88a6b9}.small-summary b{display:block;font:19px Arial;color:#c9e3f1;margin-top:5px}.small-summary em{font-size:10px;color:#7894a8;margin-left:3px}.equipment-mini{display:flex;gap:9px}.mini-card{flex:1;display:flex;align-items:center;border:0;background:transparent;text-align:left;padding:5px 0;gap:7px}.mini-card .ico{width:42px;height:42px}.mini-card span{font-size:10px;color:#87a8bd;white-space:nowrap}.mini-card strong{display:block;font:24px Arial;color:#dbf2ff;margin-top:7px}.mini-card em{font-size:10px;margin-left:4px;color:#859eaf}.mini-card .ctl{display:none}#stage{position:relative;min-width:0;overflow:hidden;border-top:1px solid #497e932e;border-bottom:1px solid #497e932e;background:radial-gradient(ellipse at 50% 57%,#0c344733,transparent 70%)}#webgl{position:absolute;inset:0}#webgl canvas{display:block;width:100%;height:100%;outline:none}.stage-vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 65px 10px #04102180;background:linear-gradient(180deg,#06162615,transparent 65%,#020a1b50)}#stage-top{position:absolute;top:18px;left:22px;right:20px;pointer-events:none;display:flex;justify-content:space-between;align-items:start}.eyebrow{font:8px Arial;letter-spacing:3px;color:#5b96b1}.scene-heading h1{font-size:21px;letter-spacing:3px;font-weight:500;margin-top:8px;color:#cfeef7}.scene-heading p{font-size:11px;color:#648ba6;margin-top:9px}.stage-tags{display:flex;gap:7px}.source-tag{font-size:9px;padding:5px 7px;border:1px solid #45839945;color:#7da8bc;border-radius:2px}#view-tabs{position:absolute;top:109px;left:22px;display:flex;gap:2px;padding:3px;border:1px solid #508ca541;background:#05132399;border-radius:4px}.segmented button{font-size:11px;padding:7px 10px;background:transparent;border:1px solid transparent;border-radius:3px;color:#7d9eb4}.segmented button.active{background:#2b738840;border-color:#65bfd74f;color:#bfeefa}.stage-controls{position:absolute;top:164px;left:22px;display:flex;flex-direction:column;gap:6px}.tool-button{width:34px;height:34px;border-radius:4px;background:#061c2bbf;border-color:#3c6b843e;display:grid;place-items:center}.tool-button.active{background:#1c668269;border-color:#6bdded;color:#d9ffff}.tool-button img{width:17px;height:17px}#floor-selector{position:absolute;right:20px;top:170px;display:flex;flex-direction:column;gap:5px;width:61px;background:#071b2b9c;padding:6px;border:1px solid #4c8ba24a;border-radius:4px;backdrop-filter:blur(8px)}#floor-selector>small{font:8px Arial;letter-spacing:1px;text-align:center;margin:3px 0 6px}#floor-selector button{border:1px solid transparent;background:transparent;padding:8px 0}.floor-selector button,.floor-list button{color:#91b4c8}#floor-selector b{font:15px Arial;display:block}#floor-selector span{display:block;font-size:9px;margin-top:4px;color:#7297ae}#floor-selector button.active{border-color:#53b2cf66;background:#26769033;border-radius:3px}#floor-selector button.active b{color:#9df4ff}.scene-bottom{position:absolute;bottom:17px;left:25px;right:23px;display:flex;align-items:center;pointer-events:none;gap:17px}.compass{font:8px Arial;color:#7bafc4;text-align:center;display:flex;flex-direction:column;align-items:center}.compass span{font-size:43px;line-height:43px;color:#a8d6e6;font-weight:100;text-shadow:0 0 20px #a3e0ef33}.scene-readout{flex:1}.scene-readout>span{font:8px Arial;letter-spacing:2px;color:#5791ac}.scene-readout small{display:block;font-size:9px;color:#6b8ca3;margin-top:7px}.model-count{text-align:right;border-left:1px solid #548da346;padding-left:18px}.model-count strong{font:24px Arial;color:#b1d5e9;display:block}.model-count span{font-size:9px;color:#547d98;display:block;margin-top:3px}#scene-pins{position:absolute;left:15%;right:13%;bottom:100px;display:flex;justify-content:center;gap:8px;pointer-events:none}.scene-pin{pointer-events:auto;display:flex;gap:7px;align-items:center;padding:6px 10px;border-radius:3px;border-color:#6fbdce5e;background:#052032db;font-size:10px;color:#a1d1e0;box-shadow:0 5px 18px #0003}.scene-pin .ico{width:26px;height:26px}.scene-pin.alert{color:#ffd69e;border-color:#c4985d66;background:#3a291bba}.floating{position:absolute;z-index:10;min-width:190px;background:#081c30f5;border:1px solid #47819b85;box-shadow:0 14px 50px #0008;border-radius:5px;padding:15px;backdrop-filter:blur(20px)}.floating strong{font-size:14px;font-weight:500}.floating small{font-size:10px;display:block;margin-top:12px}.floating label{display:flex;align-items:center;gap:10px;margin:14px 0;font-size:12px;color:#a5c3d6}.floating input{accent-color:#43cbe6}#layer-popover{left:65px;top:295px}#search-results{left:100px;right:100px;top:170px}.hidden{display:none!important}#model-loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:17px;background:radial-gradient(ellipse,#092b41ee,#061326dd);z-index:11;transition:opacity .4s}#model-loading strong{font-size:15px;font-weight:400;letter-spacing:2px}#model-loading span{font-size:10px;color:#7ca5be}.loader-orbit{width:70px;height:70px;border:1px solid #29a2cb44;border-top-color:#89f0ff;border-radius:50%;animation:spin 1.3s linear infinite;box-shadow:0 0 24px #1bc3ff14,inset 0 0 23px #1bc3ff15}@keyframes spin{to{transform:rotate(360deg)}}#bottom{display:flex;align-items:center;height:70px;justify-content:space-between;position:relative;margin-top:0;border-top:1px solid #609fba22}.bottom-status{font:8px Arial;letter-spacing:1px;color:#54889f;display:flex;align-items:center;gap:8px;white-space:nowrap}.bottom-status i{width:4px;height:4px;margin:0}.bottom-status span{font-size:9px;margin-left:7px;letter-spacing:.4px;color:#7294aa}.bottom-actions{display:flex;align-items:center;gap:9px}.bottom-actions button{border:1px solid #4b82983b;background:#1231484d;font-size:11px;padding:8px 12px;display:flex;align-items:center;gap:6px;border-radius:4px;color:#9bbbd0}.bottom-actions .ctl{width:14px;height:14px}.bottom-actions .search-button{padding-right:52px;background:#08213780}.building-code{font:9px Arial;letter-spacing:2px;color:#47718c}.building-code b{color:#326d82;font-size:7px;margin:0 7px}.asset-photo{position:relative;height:131px;overflow:hidden;border:1px solid #5592ad40;border-radius:3px}.asset-photo>img{width:100%;height:100%;object-fit:cover;object-position:center 45%;filter:brightness(.75) saturate(.8)}.asset-photo>span{position:absolute;bottom:6px;left:7px;font-size:9px;padding:3px 5px;background:#061a2cce;color:#83acc3}.asset-photo .badge{top:8px;right:8px;left:auto;bottom:auto}.asset-heading{margin:12px 0 10px}.asset-heading>span{font:9px Arial;letter-spacing:2px;color:#70adc4}.asset-heading h3{font-size:16px;font-weight:500;letter-spacing:1px;margin-top:5px}.asset-kv{display:flex;flex-wrap:wrap;gap:8px 15px;font-size:10px;color:#6e93aa}.asset-kv b{color:#abc7d7;margin-left:8px;font-weight:400}.asset-params{display:grid;grid-template-columns:1fr 1fr;gap:12px 15px;padding:14px 0;border-top:1px solid #517c942e;margin-top:14px}.asset-params span{font-size:10px;color:#6e94ab}.asset-params b{display:block;font:20px Arial;color:#b8e9f5;margin-top:5px}.asset-params em{font-size:10px;color:#779ab0;margin-left:5px}.button-row{display:flex;gap:9px}.button-row button{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:9px;font-size:11px;border-radius:3px}.floor-list>button{display:flex;gap:12px;align-items:center;width:100%;text-align:left;background:transparent;border:0;border-bottom:1px solid #52829929;padding:12px 0}.floor-list>button.active{background:#1c70842b}.floor-block{font:20px Arial;display:grid;place-items:center;width:41px;height:41px;background:#23637c29;border:1px solid #498da24f;color:#9bddeb;border-radius:3px}.floor-list strong{font-size:13px;display:block}.floor-list small{display:block;font-size:10px;margin-top:5px}.floor-list b{margin-left:auto;font:20px Arial;color:#b7dce9;text-align:center}.floor-list b small{font:9px "PingFang SC"}.floor-list .ctl{width:13px}.search-field{display:flex;gap:8px;align-items:center;border:1px solid #4a7b9255;border-radius:3px;background:#05182a;padding:8px 10px}.search-field input{border:0;outline:0;background:transparent;color:#c1e2f1;width:100%;font-size:11px}.search-field .ctl{width:15px}.distribution{display:flex;gap:25px;align-items:center;padding:6px 0}.donut{width:122px;height:122px;flex-shrink:0;border-radius:50%;background:conic-gradient(#54cbdc 0 62%,#558cce 62% 85%,#a0b8cb 85%);position:relative;box-shadow:0 0 20px #54b8f318}.donut:before{position:absolute;inset:9px;border-radius:50%;content:'';background:#0b1d30}.donut strong{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;flex-direction:column;font:29px Arial;color:#c4edfa}.donut small{font-size:9px;margin-top:5px}.donut.energy{background:conic-gradient(#54cbdc 0 48%,#558cce 48% 77%,#a0b8cb 77% 93%,#a799da 93%);width:128px;height:128px}.donut.energy strong{font-size:24px}.distribution>div:last-child{flex:1}.distribution p{font-size:10px;display:flex;align-items:center;gap:6px;line-height:2.8;white-space:nowrap}.distribution p i{width:5px;height:5px;background:#5ec6d5;border-radius:1px}.distribution p:nth-child(2) i{background:#558cce}.distribution p:nth-child(3) i{background:#a0b8cb}.distribution p b{margin-left:auto;font:11px Arial}.assumption{font-size:10px;line-height:1.8;color:#6e92a9;border-top:1px solid #55859b27;margin-top:9px;padding-top:10px}.source-summary>span{display:flex;font-size:11px;padding:12px 0;border-bottom:1px solid #527e952b;gap:6px;color:#7e9eb4}.source-summary b{margin-left:auto;color:#adccde;font-size:11px;font-weight:400}.source-summary em{font-size:10px;color:#738fa6}.source-summary+button{margin-top:12px}.shortcut-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.shortcut{display:flex;align-items:center;gap:9px;padding:12px 8px;border-radius:3px;text-align:left;background:#15384d33}.shortcut .ico{width:40px;height:40px}.shortcut span{font-size:11px}.flow-diagram{display:flex;align-items:center;gap:3px;justify-content:space-around}.flow-diagram button{border:0;background:none;display:flex;flex-direction:column;align-items:center;font-size:11px;padding:7px 0;gap:7px}.flow-diagram .ico{width:52px;height:52px}.flow-diagram>b{color:#4e9db8;font-size:18px;font-weight:300}.task-counts{display:flex;justify-content:space-around;border-bottom:1px solid #5488a328;padding-bottom:13px;margin-bottom:6px}.metric{text-align:center}.metric>span{font-size:10px;color:#7ea3ba;display:block}.metric strong{font:26px Arial;color:#b9e5f5;display:inline-block;margin-top:8px}.metric em{font-size:10px;color:#819fb2;margin-left:4px}.calendar-head{display:flex;justify-content:space-between;align-items:center;margin:1px 0 15px}.calendar-head strong{font-size:13px;font-weight:400}.calendar-head span{font-size:9px;color:#739cb5}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.calendar-grid small{text-align:center;font-size:10px;margin-bottom:4px}.calendar-grid button{height:26px;background:none;border:1px solid transparent;font:11px Arial;border-radius:3px;color:#8baabd}.calendar-grid button.scheduled{background:#2b819438;border-color:#53c3d76e;color:#b8f7ff;position:relative}.calendar-grid button.scheduled:after{position:absolute;content:'';width:3px;height:3px;border-radius:50%;background:#65deeb;bottom:2px;left:45%}.mini-timeline>div{display:flex;align-items:center;gap:14px;padding:8px 0;position:relative}.mini-timeline i{font:12px Arial;display:grid;place-items:center;border:1px solid #4d8fa882;width:25px;height:25px;border-radius:50%;color:#8ee3f5;position:relative}.mini-timeline>div:not(:last-child):before{content:'';height:24px;position:absolute;width:1px;background:#499ab559;left:12px;top:35px}.mini-timeline span{font-size:12px}.mini-timeline small{display:block;font-size:10px;margin-top:6px}.rank-list button{display:block;width:100%;background:none;border:0;text-align:left;padding:10px 0;position:relative}.rank-list button>span{font:11px Arial;color:#5b91a9}.rank-list button b{font:12px "PingFang SC";color:#aacbdc;margin-left:12px}.rank-list button strong{float:right;font:13px Arial;color:#c6e7f6}.rank-list em{font-size:9px;color:#6c91a7;margin-left:6px}.rank-list button>div{margin-top:9px;height:4px;background:#123247;border-radius:2px;overflow:hidden}.rank-list button>div:before{content:'';display:block;height:100%;width:var(--bar);background:linear-gradient(90deg,#2a647f,#69d5e7);box-shadow:0 0 8px #6ff0ff44}.advice{display:flex;align-items:center;gap:9px;margin-bottom:15px}.advice .ico{width:57px;height:57px}.advice strong{font-size:13px;font-weight:400}.advice p{font-size:10px;line-height:1.9;color:#7fa1b7;margin-top:7px}.resource-grid button{display:flex;width:100%;padding:9px 0;gap:9px;align-items:center;text-align:left;background:transparent;border:0;border-bottom:1px solid #4a7a932b}.resource-grid .ico{width:39px;height:39px}.resource-grid span:nth-child(2){flex:1}.resource-grid strong{font-size:12px;font-weight:400}.resource-grid small{font-size:10px;display:block;margin-top:4px}.resource-grid+.wide-button{margin-top:12px}.reagent-list button{display:flex;align-items:center;gap:8px;width:100%;padding:8px 0;background:transparent;border:0;border-bottom:1px solid #598ba226;text-align:left}.reagent-list .ico{width:34px;height:34px}.reagent-list span{flex:1}.reagent-list strong{font-size:12px;font-weight:400}.reagent-list small{font-size:9px;display:block;margin-top:5px}.reagent-list b{font:23px Arial;color:#b5e5f3}.reagent-list em{font-size:9px;color:#7593a9;margin-left:4px}.cabinet-photo{height:106px;position:relative;border:1px solid #538aa238;border-radius:3px;overflow:hidden}.cabinet-photo img{width:100%;height:100%;object-fit:cover;object-position:center 40%;filter:brightness(.7)}.cabinet-photo span{position:absolute;bottom:8px;left:9px;font-size:10px;background:#041a2ac9;padding:4px 6px}.cabinet-metrics{display:flex;justify-content:space-around;margin-top:12px}.cabinet-metrics .metric strong{font-size:22px}.feed p{display:flex;gap:9px;padding:8px 0;border-bottom:1px solid #4b819628}.feed p:last-child{border:0}.feed i{height:5px;width:5px;border-radius:50%;background:#5bd6e0;margin-top:5px}.feed span{font-size:11px;line-height:1.6;flex:1;color:#a1bfd1}.feed small{display:block;font-size:9px;margin-top:5px}.empty{text-align:center;color:#749aaf;padding:30px;font-size:12px}.modal-backdrop{position:absolute;inset:0;z-index:40;background:#010812aa;backdrop-filter:blur(9px);display:flex;align-items:center;justify-content:center;animation:fade .2s}.modal{width:850px;max-height:900px;background:linear-gradient(135deg,#0c2d43,#07192e);border:1px solid #79c9e778;border-radius:8px;box-shadow:0 0 0 6px #20537719,0 30px 100px #000c;overflow:hidden;display:flex;flex-direction:column}.modal.wide{width:1140px}.modal-head{display:flex;align-items:center;padding:22px 26px;border-bottom:1px solid #78b5cd37;background:#1659771a;gap:12px}.modal-head .ico{width:38px;height:38px}.modal-head h2{font-size:22px;font-weight:400;letter-spacing:2px;flex:1}.modal-head small{font:9px Arial;letter-spacing:2px;display:block;margin-top:6px}.modal-body{padding:24px 28px;overflow:auto;font-size:13px;line-height:1.8}.modal-body::-webkit-scrollbar{width:5px}.modal-body::-webkit-scrollbar-thumb{background:#365e75;border-radius:4px}.modal-body h3{font-size:15px;font-weight:500;margin:15px 0 10px;color:#c9eaf8}.modal-body p{color:#8eafc4;line-height:2}.modal-body .notice{padding:12px 16px;margin:0 0 20px;background:#28728c22;border:1px solid #4b9bb44b;border-radius:4px;font-size:12px;color:#92c0d3}.modal-footer{padding:14px 28px;border-top:1px solid #598ca742;display:flex;justify-content:flex-end;gap:9px}.modal-footer button{font-size:12px;padding:9px 20px;border-radius:4px}.modal form{display:flex;flex-direction:column;gap:17px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field{display:flex;flex-direction:column;gap:7px;color:#8cacc2;font-size:12px}.field input,.field select,.field textarea,.modal-body select,.modal-body input[type=search]{background:#06172a;border:1px solid #447b985e;border-radius:4px;color:#d4e9f5;padding:11px 12px;font-size:13px;width:100%;outline:none}.field textarea{resize:vertical;min-height:85px}.form-actions{display:flex;justify-content:flex-end;gap:10px}.form-actions button{padding:11px 24px;font-size:13px;border-radius:4px}.form-error{display:none;padding:10px 14px;border:1px solid #bf5c7770;background:#ad375121;color:#ffb3bd;border-radius:4px;font-size:12px}.form-error.visible{display:block}.data-table{width:100%;border-collapse:collapse;font-size:12px}.data-table th{color:#7ca6bf;font-weight:400;text-align:left;padding:10px;border-bottom:1px solid #77b3cd4d;background:#16435b3d}.data-table td{padding:12px 10px;border-bottom:1px solid #5b8da12b;color:#b0cbdc}.data-table td small{display:block;font-size:10px;margin-top:4px}.data-table button{font-size:11px;padding:5px 9px;border-radius:3px;margin-right:5px}.data-table tr:hover td{background:#24536b17}.table-tools{display:flex;align-items:center;gap:10px;margin-bottom:17px}.table-tools>input{flex:1}.table-tools>select{width:180px}.table-tools>button{padding:9px 14px;font-size:12px;border-radius:4px;white-space:nowrap}.source-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#4f8a9e33;border:1px solid #4f8a9e33}.source-grid>span{display:flex;justify-content:space-between;gap:12px;background:#0b2438;padding:12px 16px;font-size:12px;color:#789eb5}.source-grid b{font-weight:400;color:#b9d9e8}.progress-flow{display:flex;align-items:center;margin:22px 0}.progress-flow>span{flex:1;display:flex;align-items:center;gap:7px;font-size:11px;color:#577f98;position:relative}.progress-flow>span:not(:last-child):after{content:'';height:1px;width:20px;background:#4b718b;position:absolute;right:9px}.progress-flow b{display:grid;place-items:center;border:1px solid #4b718b;height:24px;width:24px;border-radius:50%;font:11px Arial}.progress-flow .done{color:#7fd5d7}.progress-flow .current{color:#ffcf8e}.progress-flow .current b{border-color:#e5b56d;background:#bd8f3229}.detail-layout{display:grid;grid-template-columns:280px 1fr;gap:25px}.detail-image img{width:100%;height:195px;object-fit:cover;border:1px solid #558aa54a;border-radius:4px}.detail-image small{font-size:10px;display:block;margin-top:6px}.param-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.param-cell{border:1px solid #4a8aa23c;border-radius:4px;background:#163c511c;padding:12px}.param-cell>span{font-size:10px;color:#82a5bc}.param-cell strong{font:24px Arial;color:#c0eaf7;display:block;margin-top:5px}.param-cell em{font-size:10px;margin-left:5px;color:#7196af}.setting-row{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #4e7f9738;padding:15px 0}.setting-row strong{font-size:13px;font-weight:400}.setting-row small{display:block;margin-top:5px;font-size:11px}.setting-row input[type=checkbox]{width:19px;height:19px;accent-color:#3cc6e4}.setting-row select{width:170px}.help-card{padding:15px 0;border-bottom:1px solid #4d8ca13b}.help-card strong{color:#b1d7e8;font-size:14px;font-weight:500}.help-card p{font-size:12px;margin-top:6px}.timeline-event{display:flex;gap:13px;padding:12px 0;border-bottom:1px solid #4f8b9d25}.timeline-event>i{width:6px;height:6px;border-radius:50%;background:#6bcde3;margin-top:9px}.timeline-event small{font-size:11px;min-width:45px}.timeline-event span{font-size:12px;color:#b2cbda;flex:1}.control-row{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid #4a839b33;font-size:12px}.control-row label{width:105px;color:#8cacc2}.control-row input{flex:1;accent-color:#5bd0e8;min-width:0}.control-row output{width:53px;color:#b4e8f5;text-align:right}.control-row button{padding:6px 14px;font-size:11px;border-radius:3px}.video-sim{height:370px;position:relative;overflow:hidden;background:#03101b;border:1px solid #568ca34a;display:grid;place-items:center}.video-sim img{width:100%;height:100%;object-fit:cover;filter:brightness(.55) saturate(.6)}.video-sim:after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 3px,#0a41560c 3px 4px);pointer-events:none}.video-sim>span{position:absolute;left:18px;top:15px;font-size:13px;color:#b6cfe0}.video-sim>b{position:absolute;bottom:16px;right:17px;font:12px Arial;letter-spacing:2px;color:#74d1c2}.video-target{position:absolute;width:135px;height:150px;border:1px solid #76dab382;left:40%;top:38%;animation:scan 5s ease-in-out infinite}.video-target:after{content:'演示分析区域';position:absolute;top:-23px;font-size:10px;color:#9bdac8;white-space:nowrap}@keyframes scan{50%{transform:translateX(55px)}}@keyframes fade{from{opacity:0;transform:translateY(4px)}}#toast{position:absolute;z-index:80;bottom:95px;left:50%;transform:translate(-50%,15px);padding:12px 25px;background:#0c3248ed;border:1px solid #71c4d777;border-radius:5px;font-size:13px;color:#caecf7;box-shadow:0 8px 35px #0008;opacity:0;transition:.25s;pointer-events:none;max-width:850px;text-align:center}#toast.show{transform:translate(-50%,0);opacity:1}#toast.error{border-color:#bc6b7c;color:#ffb6c2;background:#321f34f0}.search-result{width:100%;display:flex;align-items:center;gap:12px;text-align:left;background:none;border:0;border-bottom:1px solid #598ca336;padding:13px 5px}.search-result .ico{width:40px;height:40px}.search-result span{flex:1;font-size:13px}.search-result small{display:block;font-size:10px;margin-top:3px}.photo-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:20px}.photo-strip img{width:100%;height:135px;object-fit:cover;border:1px solid #4e8c9d44;border-radius:4px}.reduced-motion *{animation-duration:.001ms!important;transition-duration:.001ms!important}.tour-banner{position:absolute;left:50%;bottom:170px;transform:translateX(-50%);padding:10px 15px;background:#08263de8;border:1px solid #5bbed77a;border-radius:4px;font-size:12px;display:flex;align-items:center;gap:15px;white-space:nowrap}.tour-banner button{border:0;background:#2d75915c;padding:6px 11px}.modal .empty{font-size:13px;padding:45px}.screenshot-nav{position:absolute;bottom:0}
@media(max-aspect-ratio:19/10){#main{grid-template-columns:345px minmax(600px,1fr) 345px;gap:14px}.hero-title div{font-size:29px}.hero-title>span{width:55px}.edition{display:none}.nav-item{width:185px}.nav-item span{font-size:16px}.panel h2{font-size:15px;letter-spacing:1px}.panel h2 small{font-size:7px;margin-left:7px}.stage-tags{display:none}.kpi{padding:10px 14px;gap:10px}.kpi .ico{width:43px;height:43px}.kpi svg{width:45px;opacity:.25}.bottom-status b{display:none}.building-code{font-size:8px}.bottom-actions{gap:7px}.bottom-actions button{padding:8px 10px}.bottom-actions .search-button{padding-right:25px}.source-tag{font-size:8px}}

.header-right .icon-button .ico{width:18px;height:18px}
/* Keep the information rails inside the 1080px presentation canvas. */
.rail{height:744px;min-height:0}.rail .panel{flex-shrink:0}.panel-head{height:40px}.panel-body{padding:10px 14px}.env-metric{height:61px}.env-metric .ico{width:35px;height:35px}.env-metric strong{font-size:25px;margin-top:3px}.health-strip{margin-top:10px}.systems-grid button{height:54px}.booking-list>button{padding:8px 0}.alarm-item{padding:7px 0}.panel-foot{padding-top:8px;margin-top:8px}.chart svg{height:110px}.small-summary{margin-top:10px;padding-top:9px}.flow-diagram .ico{width:44px;height:44px}.target-band{padding:10px 8px;margin-top:12px}.assumption{margin-top:7px;padding-top:8px}.asset-photo{height:118px}.asset-params{gap:10px 15px;padding:12px 0;margin-top:12px}.source-summary>span{padding:10px 0}.floor-list>button{padding:10px 0}.task-counts{padding-bottom:11px}.resource-grid button{padding:7px 0}.reagent-list button{padding:7px 0}.cabinet-photo{height:95px}
#screen[data-page=spatial] .rail{gap:12px}#screen[data-page=spatial] .panel-head{height:38px}#screen[data-page=spatial] .floor-list>button{padding:5px 0}#screen[data-page=spatial] .floor-block{width:32px;height:32px;font-size:17px}#screen[data-page=spatial] .floor-list small{font-size:9px;margin-top:3px}#screen[data-page=spatial] .floor-list b{font-size:17px}#screen[data-page=spatial] .floor-list b small{font-size:8px}#screen[data-page=spatial] .distribution .donut{width:90px;height:90px}#screen[data-page=spatial] .distribution{padding:0;gap:20px}#screen[data-page=spatial] .source-summary>span{padding:7px 0}#screen[data-page=spatial] .source-summary+.wide-button{margin-top:8px}#screen[data-page=spatial] .assumption{font-size:9px}
#screen[data-page=business] .resource-grid .ico{width:34px;height:34px}#screen[data-page=business] .flow-diagram .ico{width:40px;height:40px}#screen[data-page=business] .feed p{padding:5px 0}#screen[data-page=business] .feed p:nth-child(3){display:none}#screen[data-page=business] .reagent-list button{padding:6px 0}#screen[data-page=business] .cabinet-photo{height:86px}
#screen[data-page=business] #left .resource-grid button{padding:5px 0}#screen[data-page=business] #left .panel:last-child .panel-body{padding:7px 14px}#screen[data-page=operations] .calendar-grid{gap:6px}#screen[data-page=operations] .calendar-grid button{height:24px}
@media(max-aspect-ratio:19/10){#screen[data-page=operations] .calendar-grid button{height:21px}#screen[data-page=energy] #left .panel-body{padding-top:8px;padding-bottom:8px}}
.nav-item>span{white-space:nowrap}@media(max-aspect-ratio:19/10){.nav-item{padding-left:14px;padding-right:14px;gap:10px}}
#detail-controls{position:absolute;right:20px;top:109px;display:flex;gap:2px;padding:3px;background:#061a2cdb;border:1px solid #508ca541;border-radius:4px;z-index:5}#detail-controls button{display:flex;gap:5px;align-items:center;padding:7px 10px;font-size:11px}#detail-controls .ctl{width:13px;height:13px}#detail-angle-menu{top:154px;right:315px;min-width:130px;padding:6px;z-index:8}#detail-angle-menu button{display:block;width:100%;text-align:left;font-size:11px;padding:8px 13px;background:transparent;border:0;border-radius:3px}#detail-trace-menu{right:90px;top:157px;min-width:325px;z-index:8}#detail-trace-menu small{margin-top:6px;font-size:10px}#detail-trace-menu>div{display:flex;gap:5px;margin-top:13px}#detail-trace-menu button{display:flex;align-items:center;gap:5px;border-radius:3px;font-size:10px;padding:6px 7px;background:transparent}#detail-trace-menu button.active{border-color:#6bc7dc;background:#23688040;color:#bef7ff}#detail-trace-menu i{width:5px;height:5px;border-radius:50%;box-shadow:0 0 5px currentColor}#model-hover{position:absolute;pointer-events:none;z-index:12;background:#061a2eef;border:1px solid #6bbacc75;border-radius:4px;box-shadow:0 8px 24px #0006;padding:11px 14px;max-width:225px;backdrop-filter:blur(10px)}#model-hover b{display:block;font-size:12px;font-weight:500;color:#cfebf7}#model-hover span{display:block;font:10px Arial,sans-serif;letter-spacing:.6px;color:#78bed4;margin-top:6px}#model-hover small{display:block;font-size:9px;color:#7094aa;margin-top:8px}@media(max-aspect-ratio:19/10){#detail-controls button{font-size:10px;padding:7px 8px}#detail-controls{right:15px}#detail-controls .ctl{width:12px;height:12px}}

/* V3.2 — consistent presentation lighting, spatial focus and narrated inspection. */
#screen{background:radial-gradient(ellipse at 50% 50%,#0d29473b,transparent 58%),linear-gradient(155deg,#06162b,#020916 80%)}
.panel{border-color:#537e963d;background:linear-gradient(125deg,#0e263b9c,#06172ade 65%);box-shadow:inset 0 1px 0 #a9d8ea06,0 7px 25px #0002}
.panel:before,.panel:after{width:18px;height:2px;background:#88cddd88}.panel-head{background:linear-gradient(90deg,#24627b27,transparent);border-bottom-color:#6fa0b81d}
.panel h2{font-weight:500;letter-spacing:1.2px}.panel h2 small{color:#7095ac;letter-spacing:.7px}.panel-foot,.asset-kv,.alarm-copy small{color:#89a9bd}
.kpi{background:linear-gradient(110deg,#112e457d,#07192a99);border-color:#668fa53b;box-shadow:inset 0 1px 0 #b6ecff05}.kpi:before{height:20px;opacity:.65}.kpi svg{opacity:.18}.kpi label{color:#a0bdce}.kpi .ico{filter:drop-shadow(0 3px 6px #00aaff16)}
.stage-vignette{box-shadow:inset 0 0 95px 16px #020b1c80;background:radial-gradient(ellipse at 52% 63%,#3cbded05,transparent 62%),linear-gradient(180deg,#020c1b15,transparent 45%,#02091638)}
#experience-controls{position:absolute;top:60px;right:20px;display:flex;align-items:center;gap:9px;z-index:6}.light-switch{display:flex;padding:2px;border:1px solid #609bb03d;background:#051527c9;border-radius:4px}.light-switch button{font-size:10px;padding:6px 9px;border:0;background:transparent;color:#7e9eaf;border-radius:3px}.light-switch button.active{background:#24516c66;color:#c3e5f0}.story-launch{display:flex;align-items:center;gap:7px;padding:8px 11px;border:1px solid #d9ae6259;background:linear-gradient(110deg,#684b252e,#0b263ce6);border-radius:4px;color:#ecd4a8;font-size:11px;box-shadow:inset 0 0 16px #efb65605}.story-launch .ctl{width:14px;height:14px}
#scene-annotation{position:absolute;inset:0;pointer-events:none;z-index:4}#scene-annotation svg{width:100%;height:100%;overflow:hidden;position:absolute;inset:0}#scene-annotation path{fill:none;stroke:#80becd;stroke-width:1;opacity:.55}#scene-annotation circle{fill:#dbfbff;stroke:#60ddeb;stroke-width:2;filter:drop-shadow(0 0 4px #4fdaff)}#scene-annotation button{position:absolute;width:188px;text-align:left;padding:10px 12px;background:linear-gradient(110deg,#0c2c40ed,#051426ee);border:1px solid #68a8bd7a;border-left:2px solid #7be4ed;border-radius:3px;backdrop-filter:blur(10px);box-shadow:0 10px 28px #0005;pointer-events:auto}#scene-annotation .annotation-id{font:10px Arial;letter-spacing:1.5px;color:#84d7e6;display:block}#scene-annotation strong{display:block;font-size:12px;font-weight:500;color:#d3edf4;margin-top:5px}#scene-annotation small{display:block;font-size:10px;color:#8aaebf;margin-top:7px;white-space:nowrap}
#story-dock{position:absolute;bottom:72px;left:82px;right:90px;z-index:7;border:1px solid #68a8bd66;border-radius:6px;background:linear-gradient(120deg,#102c40f0,#051322f5);backdrop-filter:blur(18px);box-shadow:0 10px 45px #0007,inset 0 1px 0 #b4f4ff10;padding:10px 15px 11px}#story-dock:before{content:'';position:absolute;left:20px;right:20px;top:-1px;height:1px;background:linear-gradient(90deg,transparent,#8cd8e8,transparent)}.story-top{display:flex;align-items:center;gap:10px;font-size:11px;color:#c2e3ed}.story-top>span{flex:1;letter-spacing:1px}.story-top>span i{display:inline-block;width:5px;height:5px;background:#f4b65d;box-shadow:0 0 9px #ffbb5a;border-radius:50%;margin-right:8px}.story-top small{font-size:9px;color:#89aebf}.story-top button{width:23px;height:23px;padding:3px;display:grid;place-items:center;border:0;background:#2c5c7030;border-radius:3px}.story-top .ctl{width:12px;height:12px}.story-steps{display:flex;gap:5px;margin-top:9px}.story-steps button{flex:1;display:flex;align-items:center;justify-content:center;gap:9px;padding:8px 4px;font-size:11px;border:1px solid transparent;border-radius:3px;background:#0c22356b;color:#728f9f}.story-steps b{font:11px Arial;color:#6d8e9e}.story-steps button.active{background:linear-gradient(110deg,#805d292b,#183b4d83);border-color:#cfac6766;color:#f2dbb4;box-shadow:inset 0 0 20px #ebaf3d05}.story-steps button.active b{color:#f6c47d}.story-steps button.done{color:#85bbc8}.story-steps button.done b{color:#6bcbd6}.story-caption{display:flex;align-items:center;gap:10px;margin-top:9px;min-height:18px}.story-caption p{font-size:11px;color:#b0cbd7;flex:1}.story-caption small{font-size:9px;color:#7699ad}.story-caption .text-button{font-size:11px;white-space:nowrap}.story-active #scene-pins{display:none}.story-active .model-count{display:none}.story-active #energy-key{display:none}
#energy-key{position:absolute;bottom:90px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:9px;background:#06192cde;border:1px solid #538fa650;padding:9px 14px;border-radius:4px;font-size:10px;color:#a6cedd}#energy-key i{width:5px;height:5px;background:#6bd4d2;border-radius:50%}#energy-key b{width:105px;height:4px;background:linear-gradient(90deg,#2b92a4,#e4a84c);border-radius:2px}#energy-key small{font-size:9px}#screen[data-page=energy] #scene-pins{bottom:142px}
#screen[data-page=environment] #left .flow-diagram{padding:6px 0 10px}#screen[data-page=environment] #left .flow-diagram .ico{width:35px;height:35px}#screen[data-page=environment] #left .flow-diagram span{font-size:10px}#screen[data-page=environment] #left .panel:last-child .wide-button{padding:8px;font-size:11px}#screen[data-page=environment] #left .panel:last-child .assumption{font-size:9px;margin-top:7px;padding-top:6px}
#screen[data-page=business] #scene-pins{bottom:82px}.panel,.kpi{animation:panel-arrive .45s ease both}@keyframes panel-arrive{from{opacity:.5;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@media(max-aspect-ratio:19/10){#experience-controls{top:60px;right:15px;gap:6px}.story-launch{font-size:10px;padding:7px 8px}.light-switch button{padding:6px 7px;font-size:9px}#story-dock{left:67px;right:80px;padding:9px 11px}.story-steps{gap:2px}.story-steps button{font-size:10px;gap:5px}.story-caption{display:block}.story-caption small{display:block;margin-top:5px}.story-caption p{font-size:10px}.story-top>span{font-size:10px}.kpi strong{font-size:28px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.reduced-motion *,.reduced-motion *:before,.reduced-motion *:after{animation:none!important;transition:none!important}
#screen[data-page=environment] #left .panel:nth-child(2) .chart svg{height:82px}#screen[data-page=environment] #left .panel:last-child .panel-body{padding-top:7px;padding-bottom:8px}#screen[data-page=environment] #left .panel:last-child .panel-head{height:36px}
#screen[data-page=overview] #left .panel:last-child .panel-body{padding-bottom:8px}#screen[data-page=business] #left .panel:last-child .panel-body{padding-bottom:4px}
#route-origin{position:absolute;z-index:5;display:flex;align-items:center;gap:10px;background:#071e30eb;border:1px solid #5fa6b96e;border-radius:4px;padding:9px 12px;text-align:left;font-size:11px;color:#c6e9ef;box-shadow:0 5px 22px #0004}#route-origin i{width:6px;height:6px;border:1px solid #ffc575;box-shadow:0 0 8px #e9a54877;border-radius:50%}#route-origin small{font-size:9px;display:block;margin-top:5px;color:#85a6b7}

/* V3.3 — ambient data signals. Geometry and numeric values remain stable. */
.panel-signal,.stage-signal{position:absolute;inset:-1px;width:calc(100% + 2px);height:calc(100% + 2px);pointer-events:none;overflow:visible;z-index:3}
.panel-signal rect,.stage-signal rect{fill:none;vector-effect:non-scaling-stroke;stroke:#48cfe8;stroke-width:1;stroke-dasharray:9 91;stroke-dashoffset:0;opacity:.65;animation:panel-circuit 9s linear infinite;filter:drop-shadow(0 0 3px #37bbeb77)}
.panel-signal .signal-head{stroke:#d1f9ff;stroke-width:1.4;stroke-dasharray:.55 99.45;opacity:.95}
.rail .panel:nth-child(2) .panel-signal rect{animation-delay:-3.4s;animation-duration:11s}.rail .panel:nth-child(3) .panel-signal rect{animation-delay:-6.7s;animation-duration:12s}
#right .panel-signal rect{animation-direction:reverse;animation-delay:-4.5s}#right .panel:nth-child(2) .panel-signal rect{animation-delay:-7.2s}
.stage-signal{inset:0;width:100%;height:100%;z-index:1}.stage-signal rect{stroke:#5298ba;stroke-width:.8;stroke-dasharray:3 97;opacity:.5;animation-duration:16s;animation-delay:-8s;filter:none}
#header:before{content:'';position:absolute;left:0;right:0;bottom:-1px;height:1px;pointer-events:none;background:linear-gradient(90deg,transparent,#4dccf188,#c2f7ff,transparent);background-size:22% 100%;background-repeat:no-repeat;animation:signal-track 8s linear infinite;z-index:2}
.hero-title>span{background:linear-gradient(90deg,transparent,#74cfe9aa,transparent) 0 50%/35% 1px no-repeat;animation:signal-track 4s linear infinite}.hero-title>span:last-child{animation-direction:reverse;animation-delay:-1.3s}
.nav-item.active b{overflow:visible}.nav-item.active b:after{content:'';position:absolute;top:-1px;left:0;width:18px;height:3px;background:linear-gradient(90deg,transparent,#d9ffff,transparent);box-shadow:0 0 10px #6fefff;animation:nav-signal 2.8s ease-in-out infinite;pointer-events:none}
.kpi:after{content:'';position:absolute;left:8px;right:8px;bottom:0;height:1px;pointer-events:none;background:linear-gradient(90deg,transparent,#6ce4fb,transparent);background-size:28% 100%;background-repeat:no-repeat;animation:signal-track 7s linear infinite;opacity:.72}.kpi.warn:after{background-image:linear-gradient(90deg,transparent,#f5c174,transparent)}
.kpi:nth-child(2):after{animation-delay:-1.1s}.kpi:nth-child(3):after{animation-delay:-2.2s}.kpi:nth-child(4):after{animation-delay:-3.3s}.kpi:nth-child(5):after{animation-delay:-4.4s}.kpi:nth-child(6):after{animation-delay:-5.5s}
.panel-head{position:relative}.panel-head:after{content:'';position:absolute;left:12px;right:12px;bottom:0;height:1px;background:linear-gradient(90deg,transparent,#65bfd55e,transparent);background-size:35% 100%;background-repeat:no-repeat;animation:signal-track 10s ease-in-out infinite;pointer-events:none}
.chart .chart-primary{stroke-dasharray:1000;stroke-dashoffset:0;animation:curve-reveal 1.6s cubic-bezier(.2,.65,.25,1) both}.chart .signal-trail{fill:none;stroke:#d1f9ff;stroke-width:2.7;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:19 981;stroke-dashoffset:0;opacity:.82;filter:drop-shadow(0 0 4px #64e8ff);animation:curve-signal 5.5s linear infinite;animation-delay:-2s;pointer-events:none}
#right .panel:nth-child(2) .chart .signal-trail{animation-delay:-3.6s}.chart .line.secondary{opacity:.48}
.flow-diagram>b{position:relative;flex:0 0 28px;color:transparent;font-size:0;height:2px;margin-top:-17px}.flow-diagram>b:before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(90deg,#4c91a95e 0 4px,transparent 4px 8px)}.flow-diagram>b:after{content:'';position:absolute;left:0;top:-1px;width:9px;height:4px;clip-path:polygon(0 0,65% 0,100% 50%,65% 100%,0 100%,30% 50%);background:#8be6ef;box-shadow:0 0 7px #54def6;animation:flow-transfer 2s linear infinite}.flow-diagram>b:nth-of-type(2):after{animation-delay:-1s}
.donut:after{content:'';position:absolute;inset:-7px;border-radius:50%;border:1px solid #4bbbd821;border-top-color:#86e7edb3;border-right-color:#56c8db66;pointer-events:none;animation:donut-orbit 13s linear infinite}.donut.energy:after{animation-duration:17s;animation-direction:reverse}
.rank-list button>div{position:relative}.rank-list button>div:after{content:'';position:absolute;left:0;bottom:0;width:var(--bar);height:100%;background:linear-gradient(90deg,transparent,#c5ffffbb,transparent) -40% 0/25% 100% no-repeat;animation:signal-track 5.5s linear infinite}.rank-list button:nth-child(2)>div:after{animation-delay:-1s}.rank-list button:nth-child(3)>div:after{animation-delay:-2s}.rank-list button:nth-child(4)>div:after{animation-delay:-3s}.rank-list button:nth-child(5)>div:after{animation-delay:-4s}
#scene-annotation path{stroke-dasharray:4 8;animation:connector-signal 2s linear infinite}#scene-annotation circle{animation:anchor-breathe 3s ease-in-out infinite}.mini-timeline>div:not(:last-child):before{background:linear-gradient(180deg,#3c71893d 20%,#8bdef0bd 47%,#3c71893d 70%);background-size:100% 300%;animation:timeline-signal 4s linear infinite}.mini-timeline>div:nth-child(2):before{animation-delay:-1.3s}.mini-timeline>div:nth-child(3):before{animation-delay:-2.6s}
#bottom:after{content:'';position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,#54c3e38c,transparent) 0 0/18% 100% no-repeat;animation:signal-track 13s linear infinite;pointer-events:none}.bottom-status i,.live-dot{animation:anchor-breathe 3s ease-in-out infinite}
.story-steps button{position:relative;overflow:hidden}.story-steps button.active:after{content:'';position:absolute;left:5px;right:5px;bottom:0;height:1px;background:linear-gradient(90deg,transparent,#e9c68e,transparent) 0 0/32% 100% no-repeat;animation:signal-track 3.8s linear infinite;pointer-events:none}
@keyframes panel-circuit{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
@keyframes signal-track{from{background-position:-45% 0}to{background-position:145% 0}}
@keyframes nav-signal{0%,100%{left:0;opacity:.3}50%{left:calc(100% - 18px);opacity:1}}
@keyframes curve-reveal{from{stroke-dashoffset:1000}to{stroke-dashoffset:0}}
@keyframes curve-signal{from{stroke-dashoffset:1000}to{stroke-dashoffset:0}}
@keyframes flow-transfer{0%{transform:translateX(-2px);opacity:0}20%{opacity:1}80%{opacity:1}100%{transform:translateX(24px);opacity:0}}
@keyframes donut-orbit{to{transform:rotate(360deg)}}
@keyframes connector-signal{to{stroke-dashoffset:-36}}
@keyframes anchor-breathe{0%,100%{opacity:.42}50%{opacity:1}}
@keyframes timeline-signal{from{background-position:0 140%}to{background-position:0 -40%}}
/* Pausing freezes signals at their current position, while page-entry transitions remain usable. */
#screen[data-paused=true] :is(.panel-signal rect,.stage-signal rect,.hero-title>span,.signal-trail,.flow-diagram>b,.donut,#scene-annotation path,#scene-annotation circle,.bottom-status i,.live-dot){animation-play-state:paused!important}
#screen[data-paused=true] :is(.kpi,.panel-head,.nav-item.active b,.flow-diagram>b,.donut,.rank-list button>div,#bottom,.story-steps button.active):after,#screen[data-paused=true] #header:before,#screen[data-paused=true] .mini-timeline>div:before{animation-play-state:paused!important}
.reduced-motion :is(.panel-signal,.stage-signal,.signal-trail){display:none!important}
.reduced-motion *,.reduced-motion *:before,.reduced-motion *:after{animation:none!important;transition:none!important}
@media(prefers-reduced-motion:reduce){.panel-signal,.stage-signal,.signal-trail{display:none!important}*,*:before,*:after{animation:none!important;transition:none!important}}

/* Chaptered camera presentation sits inside the existing 3D stage. */
#stage.tour-active #scene-pins{display:none}.tour-dock{bottom:24px;z-index:8;width:760px;max-width:calc(100% - 160px);padding:14px 18px 17px;display:block;white-space:normal;background:linear-gradient(110deg,#061d30f5,#092d41f5);border-color:#65c6db70;box-shadow:0 12px 50px #0007,inset 0 1px #74e9ff12;backdrop-filter:blur(16px)}.tour-heading{display:flex;align-items:center;gap:13px}.tour-kicker{display:flex;align-items:center;gap:7px;font-size:9px;letter-spacing:2px;color:#69d6eb}.tour-kicker svg{width:15px;height:15px}.tour-title{font-size:16px;font-weight:600;letter-spacing:2px}.tour-phase{margin-left:auto;font-size:10px;color:#94b9ca}.tour-dock .tour-play,.tour-dock .tour-close{padding:4px;width:25px;height:25px;background:transparent;border:1px solid #64bcd23b;color:#92eaff;display:grid;place-items:center}.tour-dock svg{width:16px;height:16px}.tour-caption{color:#a4bdcd;font-size:11px;letter-spacing:1px;margin:8px 0 12px}.tour-chapters{display:flex;gap:6px}.tour-chapters button{flex:1;display:flex;align-items:center;justify-content:center;gap:7px;padding:8px 4px;font-size:11px;background:#041927;border:1px solid #356b7e66;color:#93acbf;cursor:pointer;transition:background .25s,color .25s,border-color .25s}.tour-chapters button b{font-size:9px;color:#448aa1}.tour-chapters button.active{color:#ddfcff;background:#13516b7a;border-color:#70d4e888;box-shadow:inset 0 -2px #60e7fb}.tour-chapters button.active b{color:#70e6f5}.tour-progress{position:absolute;bottom:0;left:0;right:0;height:2px;background:#173c4b}.tour-progress i{display:block;width:0;height:100%;background:linear-gradient(90deg,#237792,#8ef4ff);box-shadow:0 0 9px #63d7ec66}.tour-dock button:disabled{opacity:.4;cursor:default}
