:root{font-family:Manrope,Noto Sans SC,sans-serif;color:#dceceb;background:#061b24;font-synthesis:none;font-weight:400;font-size:13px;--mint: #78edcf;--muted: #6c919b;--line: rgba(137, 193, 198, .13)}*{box-sizing:border-box}body{margin:0}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none;transition:background .2s,border-color .2s,color .2s}button:focus-visible{outline:2px solid var(--mint);outline-offset:4px}button:disabled{opacity:.3;cursor:default}button:hover:not(:disabled){color:var(--mint)}button svg{flex-shrink:0}button.primary:hover{background:#a6ffe4;color:#123e38}small{font-size:10px}button,p,h1,h2,h3{margin:0}button{padding:0}h2{font-size:13px;font-weight:600;letter-spacing:.7px}i{display:inline-block}header{height:88px;display:flex;align-items:center;gap:27px;padding:0 34px;border-bottom:1px solid var(--line);background:#081e27;position:relative;z-index:5}.brand{display:flex;align-items:center;gap:12px;text-align:left}.brand>svg{color:var(--mint)}.brand>span{font-size:22px;letter-spacing:4px;font-weight:600}.brand small{display:block;font-size:8px;letter-spacing:2.9px;margin-top:4px;color:#8cafb6}.header-divider{height:28px;border-left:1px solid var(--line)}.breadcrumb{display:flex;align-items:center;gap:13px;font-size:11px}.breadcrumb>svg{color:#45616b}.breadcrumb button{display:flex;align-items:center;gap:9px}.breadcrumb button:first-child{color:#8caab2}.header-right{margin-left:auto;display:flex;align-items:center;gap:25px}.live{font-size:10px;color:#91b5bb;display:flex;align-items:center;gap:8px}.live i,.data-status i,footer i{width:5px;height:5px;border-radius:50%;background:var(--mint);box-shadow:0 0 9px #6bfad36b}.date{font-size:9px;color:#86a1aa;display:flex;align-items:center;gap:15px}.date b{font-size:16px;color:#c9dddf;letter-spacing:1px;font-weight:500}.icon-button{display:flex;padding:7px;color:#8db0b8}main{height:calc(100dvh - 127px);min-height:690px;position:relative;overflow:hidden}.scene{isolation:isolate;z-index:0;position:absolute;inset:0}.scene:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 25%,#061b2433 65%,#061b24aa 100%)}.left,.right{position:absolute;top:38px;bottom:105px;width:260px;z-index:2;pointer-events:none}.left>*,.right>*{pointer-events:auto}.left{left:34px}.right{right:34px;top:40px;width:270px}.analysis-link{display:inline-flex;align-items:center;gap:7px;flex-shrink:0;padding:8px 12px;border:1px solid #426d70;border-radius:4px;background:#12343c;color:var(--mint);font-size:11px;text-decoration:none;white-space:nowrap}.analysis-link:hover{background:#204c50;border-color:var(--mint)}.analysis-link:focus-visible{outline:2px solid var(--mint);outline-offset:4px}.documentation-links{display:flex;align-items:center;gap:8px;flex-shrink:0}@media(max-width:480px){.documentation-links{gap:5px}.documentation-links .analysis-link{padding:7px;gap:4px;font-size:10px}}.intro{margin-bottom:25px}.eyebrow{color:#7899a3;font-size:8px;letter-spacing:2px}h1{font-size:24px;letter-spacing:2px;line-height:1.6;margin-top:9px;font-weight:600}.intro p{font-size:10px;line-height:1.9;color:#8ca9b1;margin-top:7px}.panel{background:linear-gradient(125deg,#0b222bef,#0a2029e6);border:1px solid var(--line);border-radius:4px;box-shadow:0 12px 40px #0000000d}.spatial{padding:20px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:10px}.section-title>svg{color:#78d3c2}.section-title>small{font-size:8px;color:#6e8c96;letter-spacing:.9px}.big-stat{font-size:44px;letter-spacing:-2px;margin-top:15px;line-height:1.3;font-weight:600}.big-stat>span{font-size:10px;letter-spacing:0;color:#88a5ae;margin-left:7px}.muted{font-size:10px;color:var(--muted)}.mini-stats{display:flex;justify-content:space-between;margin-top:23px}.mini-stats b{display:block;font-size:20px;font-weight:500}.mini-stats span{display:block;font-size:10px;color:#8aa7b0;margin-top:7px}.rule{height:1px;background:var(--line);margin:23px 0}.index-list{margin-top:15px;display:grid;gap:8px}.index-item{width:100%;display:flex;align-items:center;text-align:left;padding:11px 10px;gap:12px;background:#15313b;border:1px solid #304c55;border-radius:3px;min-height:57px}.index-item.selected{background:#234b50;border-color:#508c88}.index-item:hover{background:#254c52}.index-item>span{font-size:11px;font-weight:500;flex:1}.index-item small{display:block;font-size:9px;color:#87a6ad;margin-top:4px;font-weight:400}.index-item>svg{color:#7fb4b8}.code{font-size:20px;background:#102d36;width:25px;text-align:center;font-weight:500}.panel-hint{font-size:9px;color:#6d919b;line-height:1.9;margin-top:15px}.location-card{display:flex;gap:11px;align-items:center;width:100%;text-align:left;margin-top:15px;padding:14px 12px;color:#99b6be;border:1px solid var(--line);background:#0b222b99;border-radius:3px}.location-card>svg:first-child{color:#66b7aa}.location-card span{flex:1;font-size:10px}.location-card small{display:block;font-size:7px;color:#618792;margin-top:5px}.operations{padding:21px}.operation-stats{display:flex;gap:24px;align-items:center;margin-top:23px}.donut{width:92px;height:92px;border-radius:50%;background:conic-gradient(var(--mint) 0deg var(--percent),#23424c var(--percent) 360deg);padding:3px;transform:rotate(-45deg);flex-shrink:0;box-shadow:0 0 18px #78edcf0b}.donut>div{width:100%;height:100%;border-radius:50%;background:#0b232c;display:flex;align-items:center;justify-content:center;flex-direction:column;transform:rotate(45deg)}.donut b{font-size:22px;font-weight:500;letter-spacing:-1px}.donut b small{font-size:11px;margin-left:2px}.donut span{font-size:8px;color:#8fa9b0;margin-top:4px}.status-list{flex:1;display:grid;gap:13px;font-size:10px}.status-list>div{display:flex;align-items:center;gap:7px}.status-list i,.status-dot{height:5px;width:5px;border-radius:50%;background:var(--mint)}.status-list .amber,.status-dot.warn{background:#e3b877}.status-list .gray{background:#496570}.status-list span{color:#92adb4}.status-list b{margin-left:auto;font-weight:500;font-size:12px}.segmented{display:flex;gap:2px;background:#071e27;border:1px solid #203e48;border-radius:3px;padding:2px}.segmented button{font-size:8px;padding:3px 7px;color:#668893;border-radius:2px}.segmented button.active{background:#234b4c;color:var(--mint)}.energy-total{margin-top:18px;display:flex;gap:5px;align-items:baseline}.energy-total>b{font-size:23px;font-weight:500;letter-spacing:-.8px}.energy-total>span{font-size:9px}.energy-total>small{font-size:8px;color:#6c919b;margin-left:auto}.energy-total em{font-style:normal;color:#7bceb7;margin-left:3px}.chart{height:115px;margin-top:7px}.legend{display:flex;gap:5px;align-items:center;color:#6f8e98;font-size:8px}.legend i{width:5px;height:5px;background:var(--mint);border-radius:1px}.tabs{display:flex;gap:23px;align-items:center;margin-bottom:20px}.tabs button{font-size:11px;color:#6c8d98;padding-bottom:8px;border-bottom:1px solid transparent}.tabs button.active{color:#d0e5e4;border-color:var(--mint)}.tabs span{font-size:8px;color:#71999d;margin-left:5px}.alert-card{display:flex;gap:10px;text-align:left;width:100%}.alert-card>svg{color:#ddbc7a;margin-top:3px}.alert-card b{font-size:10px;font-weight:500}.alert-card small{display:block;font-size:9px;color:#8ca3a8;margin-top:7px}.alert-card em{font-style:normal;font-size:8px;color:#6b929b;margin-top:8px;display:flex;gap:8px;align-items:center}.health{margin-top:19px;display:flex;gap:7px;align-items:center;font-size:9px;color:#7c999f}.health svg{color:#75b9a7}.health span:last-child{margin-left:auto;font-size:8px;color:#80baa9}.environment{display:flex;justify-content:space-between;border-top:1px solid var(--line);margin-top:25px;padding-top:19px}.environment span{font-size:8px;color:#6b939d;display:block}.environment b{font-size:16px;display:block;font-weight:500;margin-top:7px}.environment small{font-size:9px;margin-left:3px;color:#8eabb0}.mint{color:var(--mint)}.data-status{display:flex;align-items:center;gap:6px;border-top:1px solid var(--line);padding-top:14px;margin-top:19px;font-size:8px;color:#82a3ad}.data-status span{margin-left:auto;color:#527982}.steps{position:absolute;top:35px;left:50%;transform:translate(-50%);display:flex;padding:12px 16px;align-items:center;background:#0b242d77;border:1px solid #2b4e541f;border-radius:30px;z-index:2;white-space:nowrap}.steps button{display:flex;align-items:center;gap:6px;font-size:10px;color:#496c77}.steps button>span:first-child{font-size:8px}.steps button.active{color:#a6f5df}.steps button.done{color:#83b3b5}.step-line{width:14px;height:1px;background:#2d5059;margin:0 9px}.building-label{border:1px solid #426c73;background:#102f39e8;display:flex;align-items:center;text-align:left;gap:14px;padding:11px 13px;border-radius:4px;min-width:153px;white-space:nowrap;box-shadow:0 7px 25px #0003;position:relative}.building-label:after{content:"";position:absolute;top:100%;left:50%;height:24px;border-left:1px solid #7abcb7aa}.building-label.selected{border-color:#78dbc3;box-shadow:0 0 20px #69e8ca0b}.building-label>b{font-size:22px;font-weight:500}.building-label>span{font-size:12px}.building-label>span:last-child{color:#83c6c1;font-size:15px;margin-left:auto}.building-label small{display:block;font-size:8px;color:#8aaeb6;margin-top:5px}.ground-label{font-size:10px;color:#9dc2c4;white-space:nowrap;letter-spacing:2px;pointer-events:none;text-shadow:0 1px 5px #000}.view-tools{position:absolute;bottom:140px;right:331px;display:flex;flex-direction:column;background:#0c2732d9;border:1px solid var(--line);border-radius:4px;overflow:hidden}.view-tools button{padding:12px;color:#638d99;display:flex}.view-tools button+button{border-top:1px solid var(--line)}.view-tools button.active{color:#83d7c3}.scene-caption{position:absolute;bottom:145px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none;white-space:nowrap;font-size:10px;color:#88b0b7}.scene-caption small{font-size:6px;letter-spacing:2px;color:#416e7c}.crosshair{font-size:20px;color:#4e8e92;font-weight:400}.bottom-controls{position:absolute;bottom:41px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:15px;white-space:nowrap;background:#0a252fea;padding:10px;border:1px solid #2d4d57;border-radius:5px;box-shadow:0 10px 35px #0002;z-index:3}.bottom-controls>button:not(.primary){display:flex;align-items:center;justify-content:center;color:#82a9b2;padding:6px}.controls-divider{height:16px;width:1px;background:var(--line)}.mouse-hint{font-size:9px;color:#668b97}.bottom-controls>.layer-button{gap:6px;font-size:10px!important;border-left:1px solid var(--line);padding-left:15px!important}.bottom-controls>.layer-button.active{color:var(--mint)}.primary{background:#78edcf;color:#0d3d37;padding:13px 18px;border:1px solid #88f9db;border-radius:3px;display:flex;align-items:center;justify-content:center;gap:17px;font-size:11px;font-weight:600}.heat-legend{position:absolute;bottom:115px;left:50%;transform:translate(-50%);display:flex;gap:10px;align-items:center;font-size:9px;color:#aac1c4}.heat-legend i{width:70px;height:4px;background:linear-gradient(90deg,#6a9ad2,#6bdac9,#ddad6b)}footer{height:39px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 34px;font-size:8px;letter-spacing:1px;color:#4c7887}footer b{font-weight:400;margin-left:8px;color:#789ba4}footer span:last-child{display:flex;align-items:center;gap:8px;font-size:7px}footer span:last-child b{margin-left:13px;font-size:7px}.floor-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.floor-grid button{padding:12px 7px;display:flex;gap:5px;align-items:center;justify-content:center;background:#12323d;border:1px solid #2c4a54;border-radius:3px;font-size:11px;position:relative}.floor-grid button.selected,.floor-grid button:hover{background:#23514f;color:var(--mint);border-color:#5aa99b}.floor-grid i{position:absolute;top:5px;right:5px;width:4px;height:4px;background:#d7b67c;border-radius:50%}.floor-label{padding:4px 12px;background:#0b2b36d9;border:1px solid #426a74;white-space:nowrap;font-size:10px}.floor-label.active{color:var(--mint);border-color:#70cebc}.room-label{font-size:10px;padding:7px 11px;background:#0b2835ed;border:1px solid #588b91;border-radius:3px;white-space:nowrap}.room-label.selected{border-color:var(--mint);color:var(--mint)}.room-label i{height:5px;width:5px;border-radius:50%;background:#dcb173;margin-left:7px}.map-pin{padding:16px 20px;background:#0d303be6;border:1px solid #74d5bf;border-radius:4px;white-space:nowrap}.map-pin small{display:block;color:#86aaaf;margin:8px 0;font-size:9px}.map-pin b{display:block;color:var(--mint);font-size:11px}.pulse-dot{height:7px;width:7px;background:var(--mint);border-radius:50%;margin-right:8px;box-shadow:0 0 0 5px #78edcf22;animation:pulse 2s infinite}.city-name{font-size:25px;letter-spacing:7px;white-space:nowrap;color:#9fcdd3;pointer-events:none}.city-name small{display:block;font-size:8px;letter-spacing:4px;margin-top:8px}.asset-pin{height:24px;width:24px;border-radius:50%;border:1px solid #90f3d5;background:#17594f;color:#c7ffee;box-shadow:0 0 0 5px #8bfad71a;font-size:10px}.asset-pin.warning{background:#82613b;border-color:#efc68b;color:#ffe6b9}.district-label{color:#9cbec5;font-size:10px;white-space:nowrap;letter-spacing:2px;text-shadow:0 2px 7px #00151f;pointer-events:none}.modal-scrim{position:absolute;inset:0;background:#04131999;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:20;display:flex;justify-content:center;align-items:center}.asset-modal{width:420px;padding:26px;background:linear-gradient(135deg,#15343e,#0b222d);border:1px solid #43716f;border-radius:7px;box-shadow:0 25px 120px #0008;position:relative}.asset-modal>.mint{margin-top:14px}.asset-modal h2{font-size:23px;margin-top:15px;letter-spacing:1px}.asset-modal>p{color:#7c9da6;font-size:10px;margin-top:9px}.asset-status{position:absolute;top:94px;right:26px;font-size:10px;color:var(--mint);padding:6px 10px;border:1px solid #335e57;background:#184037;border-radius:3px}.asset-status.warning{background:#40372b;color:#e8bc80;border-color:#766043}.asset-reading{display:flex;align-items:baseline;gap:9px;margin-top:22px}.asset-reading b{font-size:48px;font-weight:500;letter-spacing:-2px}.asset-reading span{color:#83a7ae}.asset-modal dl{font-size:10px;margin:20px 0}.asset-modal dl>div{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px solid var(--line)}dt{color:#7298a2}dd{margin:0;color:#afcbcd;font-size:10px}.asset-modal>.primary{width:100%}.warning-message{font-size:10px;display:flex;align-items:center;gap:8px;color:#e2bd87;background:#5c492533;padding:12px;border:1px solid #80694444;border-radius:3px;margin-top:10px}.alert-log{min-height:109px}.alert-log>button{display:flex;gap:8px;align-items:center;text-align:left;margin-top:15px;font-size:9px;width:100%;color:#d5bc92}.alert-log small{display:block;color:#6d929d;font-size:8px;margin-top:7px}.scene-error{position:absolute;top:35%;left:50%;transform:translate(-50%);max-width:360px;text-align:center;z-index:3;background:#102f39;padding:30px;border:1px solid #3d626d;border-radius:5px}.scene-error h3{margin-top:10px}.scene-error p{font-size:12px;color:#86a5ad;line-height:1.8;margin-top:10px}.scene-error button{color:var(--mint);margin-top:15px}.toast{position:absolute;bottom:110px;left:50%;transform:translate(-50%);background:#23494b;border:1px solid #65a89c;padding:12px 20px;z-index:30;font-size:12px}@keyframes pulse{50%{box-shadow:0 0 0 9px #78edcf08}}@media(min-width:1600px){.left{width:290px;left:42px}.right{width:290px;right:42px}.intro{margin-bottom:32px}.spatial,.operations{padding:25px}h1{font-size:24px}.view-tools{right:355px}.chart{height:140px}.rule{margin:27px 0}.index-item{padding:13px 11px}.operations{padding-bottom:25px}}@media(max-width:1150px){header{padding:0 22px;gap:18px}.left{left:20px;width:220px}.right{right:20px;width:230px}.spatial,.operations{padding:16px}.steps{top:18px}.step-line{width:6px;margin:0 6px}h1{font-size:20px}.intro p{font-size:9px}.operation-stats{gap:12px}.donut{width:78px;height:78px}.view-tools{right:266px}.bottom-controls{gap:10px}.mouse-hint{display:none}.environment{margin-top:18px}.header-right{gap:12px}.date{display:none}.rule{margin:18px 0}.chart{height:100px}.location-card small{font-size:6px}.scene-caption{bottom:135px}.breadcrumb{font-size:10px}}@media(max-width:800px){header{height:70px;padding:0 16px;gap:12px}.brand>span{font-size:17px;letter-spacing:2px}.brand small{font-size:6px;letter-spacing:2px}.brand svg{width:25px}.header-divider,.breadcrumb,.live{display:none}.header-right{margin-left:auto}main{height:auto;min-height:calc(100dvh - 70px);overflow:visible;display:flex;flex-direction:column;padding-top:420px;gap:15px;padding-bottom:100px}.scene{height:430px;bottom:auto}.steps{top:15px;padding:10px 12px}.steps button{font-size:9px}.left,.right{position:relative;inset:auto;width:auto;margin:0 16px;pointer-events:auto}.intro{position:absolute;top:-350px;left:0;pointer-events:none}.intro h1{font-size:20px}.intro p{display:none}.intro .eyebrow{font-size:6px}.spatial{padding:19px}.big-stat{font-size:35px;margin-top:5px}.mini-stats{position:absolute;top:51px;right:40px;gap:30px;margin:0}.mini-stats b{font-size:18px}.mini-stats span{font-size:8px}.index-list{grid-template-columns:repeat(1,1fr)}.location-card{display:none}.right .operations{padding:20px}.operation-stats{gap:30px;margin:15px 0}.donut{width:85px;height:85px}.status-list{max-width:160px}.chart{height:140px}.view-tools{right:16px;top:270px;bottom:auto}.view-tools button{padding:9px}.scene-caption{top:375px;bottom:auto;font-size:8px}.scene-caption .crosshair{display:none}.bottom-controls{position:fixed;bottom:12px;gap:9px;max-width:calc(100% - 16px);padding:8px;z-index:10}.bottom-controls .primary{padding:11px;font-size:10px;gap:8px}.bottom-controls>.layer-button{font-size:9px!important;padding-left:6px!important;gap:4px}.controls-divider{display:none}.heat-legend{top:355px;bottom:auto}.floor-grid{grid-column:1/-1;grid-template-columns:repeat(6,1fr)}.panel-hint{margin-top:12px}.environment{justify-content:space-around}.asset-modal{max-width:calc(100% - 32px)}.modal-scrim{position:fixed}.scene-error{top:140px;width:70%;padding:15px}footer{padding:12px 16px;height:auto;font-size:7px}footer>span:nth-child(2){display:none}footer>span:last-child b{display:none}.asset-modal h2{font-size:21px}}
