.activity-control{position:absolute;left:20px;top:145px;z-index:9;font-size:11px}.activity-toggle{display:flex;align-items:center;gap:7px;padding:8px 10px;background:#102735ee;border:1px solid #3a5867;border-radius:5px;color:#b9d3dc}.activity-toggle b{font-size:8px;font-weight:400;padding:2px 4px;background:#28433c;color:#80dac0;border-radius:2px}.activity-toggle i{width:5px;height:5px;background:#72e6c2;border-radius:50%}.activity-toggle i.stopped{background:#e5b979}.activity-popover{width:245px;background:#0d202ef7;border:1px solid #426072;box-shadow:0 15px 45px #0006;padding:14px;margin-top:7px;border-radius:6px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.explore-title{display:flex;justify-content:space-between;align-items:center;gap:8px}.explore-title strong{font-size:12px;font-weight:500;color:#d9e9ec}.explore-title button{display:flex;padding:0;color:#8faab8}.activity-popover p,.floor-details p{font-size:10px;line-height:1.7;color:#7e9dac;margin:9px 0 12px}.scenario-options{display:flex;background:#081923;border-radius:4px;padding:3px;gap:4px;margin-bottom:13px}.scenario-options button{flex:1;font-size:10px;padding:6px}.scenario-options button[aria-pressed=true]{background:#245b50;color:#a4f4d9;border-radius:3px}.simulation-switch{display:flex;justify-content:space-between;align-items:center;margin:10px 0;color:#b1c9d4}.simulation-switch>span{display:flex;align-items:center;gap:6px}.simulation-switch input{accent-color:#64d9b7;cursor:pointer}.simulation-range{display:block;margin:10px 0}.simulation-range span{display:flex;justify-content:space-between;font-size:10px;color:#7e9aaa}.simulation-range b{font-family:var(--mono);font-weight:400;color:#bedadf}.simulation-range input{width:100%;height:12px;accent-color:#65d5b8;cursor:pointer;margin-top:6px}.simulation-actions{display:flex;gap:7px;border-top:1px solid #2c4350;padding-top:11px;margin-top:12px}.simulation-actions button{display:flex;align-items:center;justify-content:center;gap:5px;padding:7px;border:1px solid #355767;border-radius:3px;flex:1;font-size:10px}.activity-popover>small{display:block;font-size:9px;margin-top:10px;color:#70949f}.block-picker{display:flex;align-items:center;gap:8px;color:#799ba8;font-size:9px;margin-top:10px}.block-picker select{flex:1;min-width:0;font-size:10px}.building-explore{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px;padding-top:10px;border-top:1px solid #36545e}.building-explore button{display:flex;align-items:center;justify-content:center;gap:6px;font-size:11px;border:1px solid #4a8c7a;background:#225344;padding:8px 10px;border-radius:4px}.building-explore button+button{background:#18353f;border-color:#355d69}.building-explore small{width:100%;color:#80a49f;font-size:8px}.scene-panel.floor-mode{position:fixed;inset:82px 24px 24px;z-index:50;border:1px solid #4c797b;box-shadow:0 0 0 100vw #060e18d9;border-radius:10px}.floor-mode .scene-top,.floor-mode .scene-coordinates,.floor-mode .map-legend,.floor-mode .activity-control{display:none}.map-wrap:has(.floor-mode)>.building-search{display:none}.floor-mode .scene-tools{top:22px;right:20px}.floor-mode .scene-bottom{bottom:16px}.floor-heading{position:absolute;left:26px;top:24px;max-width:calc(100% - 100px)}.floor-heading .micro-label{font-size:9px;letter-spacing:2px;color:#74b3af}.floor-heading h2{font-size:23px;font-weight:500;margin-top:8px;color:#d5efeb}.floor-heading p{font-size:11px;color:#83a2b2;margin-top:8px;line-height:1.6}.floor-heading>button{display:flex;align-items:center;gap:5px;border:1px solid #416271;background:#152f3eee;border-radius:4px;padding:8px 12px;font-size:11px;margin-top:14px}.floor-selector{position:absolute;left:26px;top:175px;bottom:100px;overflow:auto;display:flex;flex-direction:column;gap:7px;padding:9px;background:#102737d9;border:1px solid #36525f;border-radius:6px;width:62px;max-height:max-content}.floor-selector>strong{font-size:9px;font-weight:400;text-align:center;color:#8caeba;padding-bottom:5px}.floor-selector button{width:42px;min-height:33px;display:flex;align-items:center;justify-content:center;font:14px var(--mono);border:1px solid #365766;background:#102b3a;border-radius:3px;color:#90b6c1}.floor-selector button[aria-pressed=true]{color:#b0ffdd;background:#246350;border-color:#66bd9c}.floor-selector .floor-overview{margin-top:6px}.floor-details{position:absolute;right:22px;top:230px;width:240px;padding:17px;background:#102533ed;border:1px solid #365c69;border-radius:6px;max-height:calc(100% - 330px);overflow:auto;box-shadow:0 10px 30px #0003}.explore-title>span{font-size:8px;color:#e4c28b;border:1px solid #736243;padding:2px 5px;border-radius:3px}.room-options{display:flex;flex-direction:column;gap:7px}.room-options button{display:flex;align-items:center;justify-content:space-between;border:1px solid #345361;padding:10px 9px;border-radius:4px;font-size:11px;text-align:left}.room-options button[aria-pressed=true]{background:#235448;color:#a7f6d8;border-color:#64b497}.room-options small{display:flex;align-items:center;gap:6px;color:#73959f;font:10px var(--mono)}.room-detail{display:flex;flex-direction:column;gap:8px;background:#1b3e45;padding:11px;margin-top:10px;font-size:10px;color:#85b4b4;border-radius:4px}.room-detail b{font-weight:500;color:#b3e2d4}.return-floor{display:flex;align-items:center;gap:6px;font-size:10px;color:#96c9c0;margin-top:12px;padding:7px 0}.floor-note{font-size:9px;color:#78939d;border-top:1px solid #2b4956;padding-top:10px;margin-top:12px;line-height:1.6}.floor-transition{position:absolute;bottom:90px;left:50%;transform:translate(-50%);background:#214f47;color:#b6f2dc;padding:10px 18px;border-radius:5px;font-size:11px}@media(max-width:600px){.activity-control{top:150px;left:15px}.activity-toggle{font-size:9px;padding:6px 8px}.activity-popover{width:230px;padding:12px;max-height:310px;overflow:auto}.scene-panel.floor-mode{inset:8px}.floor-heading{left:15px;top:16px;max-width:calc(100% - 70px)}.floor-heading h2{font-size:16px}.floor-heading .micro-label{font-size:7px}.floor-heading p{font-size:9px}.floor-heading>button{font-size:10px;margin-top:10px}.floor-mode .scene-tools{top:17px;right:12px}.floor-selector{left:12px;top:180px;bottom:310px;padding:5px;gap:5px}.floor-selector button{width:32px;min-height:28px;font-size:12px}.floor-details{inset:auto 12px 88px;width:auto;padding:12px;max-height:205px}.floor-details p{font-size:9px;margin:7px 0}.room-options{display:grid;grid-template-columns:1fr 1fr;gap:5px}.room-options button{font-size:10px;padding:7px}.room-detail{padding:7px;gap:4px;margin-top:6px}.floor-note{font-size:8px;padding-top:6px;margin-top:7px}.floor-mode .scene-hint{display:none}.floor-mode .scene-bottom{bottom:14px}.floor-transition{bottom:302px;font-size:9px;white-space:nowrap}.map-building-card{max-width:calc(100% - 75px)}}.floor-ops-kicker{display:flex;justify-content:space-between;align-items:center;color:#71b0ac;font:8px var(--mono);letter-spacing:1.3px}.floor-ops-kicker span{color:#e5c27d;border:1px solid #756541;border-radius:3px;padding:2px 5px;font:8px var(--mono);letter-spacing:0}.floor-ops-title{display:flex;gap:10px;margin-top:12px;align-items:flex-start}.floor-ops-title>span{font:18px var(--mono);color:#72e4c3;background:#193d43;border:1px solid #4b897d;border-radius:3px;padding:4px 5px}.floor-ops-title h3{font-size:14px;font-weight:500;color:#d5e9e5;margin:1px 0 4px}.floor-ops-title p{margin:0;font-size:9px;color:#7897a3}.floor-metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin:13px 0}.floor-metrics>div{background:#0b202c;border:1px solid #294a57;padding:7px 8px;border-radius:3px}.floor-metrics span{display:block;font-size:8px;color:#7898a3;margin-bottom:4px}.floor-metrics strong{display:block;color:#c9eee4;font:16px var(--mono)}.floor-metrics small{font:8px var(--mono);color:#72969c;margin-left:3px}.floor-utilization{border-top:1px solid #2a4a56;border-bottom:1px solid #2a4a56;padding:9px 0;margin:2px 0 11px}.floor-utilization>div:first-child{display:flex;justify-content:space-between;font-size:9px;color:#89a7ad}.floor-utilization strong{font:16px var(--mono);color:#66dfbe}.utilization-track{height:4px;background:#18313c;border-radius:4px;margin:7px 0 5px;overflow:hidden}.utilization-track i{display:block;height:100%;background:linear-gradient(90deg,#4eafa0,#7be8bf);border-radius:4px}.floor-utilization>small{font-size:8px;color:#6e919d}.floor-inventory h4,.room-list-heading h4{font-size:10px;font-weight:500;color:#b7d9d5;margin:10px 0 8px}.floor-inventory button{width:100%;display:flex;align-items:center;gap:8px;padding:8px;border:1px solid #2d505e;border-radius:4px;margin:5px 0;text-align:left}.floor-inventory button>b{color:#75dfc0;font:11px var(--mono);min-width:24px}.floor-inventory button span{font-size:10px;color:#bfd5d4;flex:1}.floor-inventory button small{display:block;color:#708f9b;font-size:8px;margin-top:3px}.floor-inventory button svg{color:#66b39f}.room-list-heading{display:flex;justify-content:space-between;align-items:center}.room-list-heading span{font-size:8px;color:#6f9ca2}.room-list-heading h4{margin:7px 0}.room-options button{min-height:43px}.room-options button>span:first-child{min-width:0}.room-options button b{display:block;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}.room-options button small{display:block;font:8px var(--mono);margin-top:4px;color:#7fa1a7;white-space:nowrap}.room-code{font:8px var(--mono);color:#78a8a4!important;display:flex;align-items:center;gap:4px}.room-operation-detail{border-top:1px solid #2d505b;margin-top:10px;padding-top:8px}.room-detail-back{display:flex;align-items:center;gap:3px;color:#7eb6ab;font-size:9px;padding:2px 0 8px}.room-operation-title{display:flex;justify-content:space-between;align-items:center;gap:5px}.room-operation-title h4{font-size:13px;color:#d0ebe4;font-weight:500;margin:2px 0}.room-operation-title span{font-size:8px;border:1px solid #4d876f;color:#7ce4bc;padding:3px 5px;border-radius:3px}.room-operation-detail>p{font-size:9px;color:#84a4a9;margin:4px 0 9px}.room-operation-detail .floor-metrics{margin:6px 0}.room-operation-detail h5{font-size:9px;color:#9dbab9;font-weight:400;border-top:1px solid #2b4a57;padding-top:8px;margin:9px 0 4px}.room-operation-detail h5 small{float:right;color:#d1ae6f;font:8px var(--mono)}.room-schedule{list-style:none;padding:0;margin:0}.room-schedule li{display:flex;gap:8px;padding:6px 0;border-bottom:1px solid #203d48}.room-schedule time{font:8px var(--mono);color:#6fa8a0;min-width:67px}.room-schedule span{font-size:9px;color:#b3ceca}.room-schedule span small{display:block;font-size:8px;color:#718f98;margin-top:2px}.vehicle-detail{min-width:420px}.vehicle-detail-hero{display:flex;align-items:center;gap:12px;padding:12px;background:#102f38;border:1px solid #315b61;border-radius:5px}.vehicle-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:8px;background:#1d594f;color:#78e7c5}.vehicle-detail-hero strong{display:block;font-size:16px;color:#d9eee9;font-weight:500}.vehicle-detail-hero small{display:block;margin-top:5px;font-size:10px;color:#85a9ad}.vehicle-detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:12px}.vehicle-detail-grid>div{padding:10px;background:#0c202c;border:1px solid #294b57;border-radius:4px}.vehicle-detail-grid span{display:block;font-size:9px;color:#799ba4;margin-bottom:5px}.vehicle-detail-grid b{font:15px var(--mono);color:#c9eee5}.vehicle-detail-grid small{font-size:9px;color:#71939b}.vehicle-detail-note{margin-top:12px;padding:10px 12px;border-top:1px solid #2b4c57;color:#7898a1;font-size:10px;line-height:1.7}.vehicle-personnel{grid-column:1/-1}.vehicle-personnel small{display:block;margin-top:6px}@media(max-width:600px){.vehicle-detail{min-width:0}.vehicle-detail-hero strong{font-size:14px}.vehicle-detail-grid b{font-size:13px}.vehicle-detail-note{font-size:9px}}@media(min-width:601px){.floor-details{width:330px;right:20px;top:185px;max-height:calc(100% - 245px);padding:19px}.floor-ops-kicker{font-size:9px}.floor-ops-title h3{font-size:17px}.floor-ops-title p{font-size:11px}.floor-ops-title>span{font-size:20px;padding:5px 7px}.floor-details .floor-metrics{gap:8px;margin:16px 0}.floor-details .floor-metrics>div{padding:10px}.floor-details .floor-metrics span{font-size:10px;margin-bottom:6px}.floor-details .floor-metrics strong{font-size:19px}.floor-details .floor-metrics small{font-size:9px}.floor-utilization>div:first-child{font-size:11px}.floor-utilization strong{font-size:19px}.floor-utilization>small{font-size:10px}.room-list-heading h4,.floor-inventory h4{font-size:12px}.room-list-heading span{font-size:10px}.room-options{gap:8px}.room-options button{padding:12px 11px;font-size:13px;min-height:52px}.room-options button b{max-width:215px}.room-options button small{font-size:10px;margin-top:5px}.room-code{font-size:10px}.room-operation-title h4{font-size:16px}.room-operation-title span{font-size:10px}.room-operation-detail>p{font-size:11px}.room-operation-detail h5{font-size:11px}.room-operation-detail h5 small{font-size:9px}.room-schedule li{padding:8px 0}.room-schedule time{font-size:10px;min-width:78px}.room-schedule span{font-size:11px}.room-schedule span small{font-size:9px}.floor-inventory button{padding:11px}.floor-inventory button>b{font-size:13px}.floor-inventory button span{font-size:12px}.floor-inventory button small{font-size:10px}}.fire-demo-button{background:#642f2a!important;border-color:#b85c4c!important;color:#ffd8c9!important}.fire-stop-button{background:transparent!important;border-color:#724947!important;color:#e8a99a!important}.fire-alert{display:flex;align-items:center;gap:9px;background:#542d2a;border:1px solid #c05c4e;border-radius:4px;padding:10px 11px;margin:12px 0;color:#ffd0c3}.fire-alert svg{color:#ff9a63;flex:none}.fire-alert strong{display:block;color:#ffd8c9;font-size:11px}.fire-alert span{display:block;color:#f1a998;font:10px var(--mono);margin-top:3px}.fire-alert button{margin-left:auto;border:1px solid #b85c4c;border-radius:3px;background:#74362e;color:#ffd8c9;padding:5px 7px;font-size:9px;white-space:nowrap}.room-options button.room-fire-active{border-color:#c55a49;background:linear-gradient(90deg,#772a22e6,#372528e6);box-shadow:inset 3px 0 #ff7043}.room-fire-active .room-code{color:#ffb18f}.room-fire-active .room-code svg{color:#ff7043}.room-fire-active small{color:#ffb18f!important}.room-fire-badge{display:inline-flex;align-items:center;gap:6px;margin:8px 0 2px;padding:5px 7px;border:1px solid #c55a49;border-radius:3px;background:#612f2d;color:#ffb18f;font-size:10px}.room-fire-badge svg{color:#ff7043}:root{font-family:Microsoft YaHei UI,PingFang SC,Microsoft YaHei,sans-serif;color:#d5e1ea;background:#080f19;font-synthesis:none;--bg:#080f19;--panel:#0e1927;--line:#22303e;--text:#d5e1ea;--muted:#7e93a6;--mint:#69e4c5;--blue:#80b3ff;--amber:#e8b66a;--red:#f28f8f;--mono:"Bahnschrift","DIN Alternate","Consolas",monospace}*{box-sizing:border-box}body{margin:0;min-width:360px}button,input,select{font:inherit}button{cursor:pointer;color:inherit;background:none;border:0}button:disabled{cursor:not-allowed;opacity:.35}button,a,input,select{outline-offset:4px}button:focus-visible,a:focus-visible{outline:2px solid var(--mint)}a{color:inherit;text-decoration:none}input,select{color:var(--text);background:#101e2b;border:1px solid #2c3c4b;border-radius:4px}select{font-size:10px;padding:4px 8px;color:#a9bdcc;cursor:pointer}option{background:#132332}input::placeholder{color:#627c8d}svg{flex-shrink:0}h1,h2,h3,h4,p{margin:0}em{font-style:normal}small{font-size:10px}button{transition:background .18s,border-color .18s,color .18s}button:hover{color:#f1fff9}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-thumb{background:#334b5c;border-radius:4px}::-webkit-scrollbar-track{background:#0c1621}.app-shell{min-height:100dvh;background:radial-gradient(ellipse at 48% -30%,#1c374338,transparent 58%),#080f19;padding:0 24px;overflow-x:hidden}.app-header{height:83px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #21313c;gap:25px;position:relative}.app-header:after{content:"";position:absolute;bottom:-1px;left:0;width:58px;height:2px;background:var(--mint)}.brand{display:flex;gap:13px;align-items:center;flex-shrink:0}.brand-mark{width:43px;height:43px;display:grid;place-items:center;color:var(--mint);border:1px solid #386353;background:linear-gradient(135deg,#1d483a66,#11322b1a);border-radius:9px}.brand strong{display:block;font-size:21px;font-weight:550;letter-spacing:2px;color:#edf5f7}.brand span:not(.brand-mark){display:block;font-family:var(--mono);font-size:8px;letter-spacing:1.8px;color:#7b98a7;margin-top:5px}.main-nav{display:flex;align-self:stretch;gap:10px;align-items:stretch}.main-nav button{display:flex;gap:9px;align-items:center;position:relative;padding:0 21px;font-size:13px;color:#8197ab;white-space:nowrap}.main-nav button:hover{background:#172b3755;color:#c1d6e0}.main-nav button.active{color:var(--mint);background:linear-gradient(0deg,#2f8b7030,transparent 80%)}.main-nav button.active:after{content:"";height:2px;background:var(--mint);position:absolute;left:14px;right:14px;bottom:-1px}.main-nav button i{width:3px;height:3px;border-radius:50%;background:var(--mint);position:absolute;bottom:10px;left:50%}.header-end{display:flex;gap:20px;align-items:center}.demo-badge{border:1px solid #415149;font-size:9px;color:#b9c3aa;border-radius:4px;padding:6px 8px;letter-spacing:.5px;white-space:nowrap}.demo-badge i{width:4px;height:4px;border-radius:50%;display:inline-block;margin-right:6px;background:#c9c29b}.clock strong{display:block;font-family:var(--mono);font-weight:450;font-size:24px;letter-spacing:1px;font-variant-numeric:tabular-nums;text-align:right}.clock span{display:block;color:#7290a2;font-family:var(--mono);font-size:9px;letter-spacing:.9px;margin-top:3px}.clock em{font-family:inherit;margin-left:7px}.icon-btn{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #2a3b4b;border-radius:5px;color:#9ab1c2}.icon-btn:hover{background:#1b3240;color:var(--mint)}.context-bar{height:49px;display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#7f97a9;gap:20px}.context-left,.context-right,.context-left>span,.context-right>span{display:flex;gap:8px;align-items:center}.context-left{gap:13px}.context-left b{font-size:11px;color:#becdd7;font-weight:400}.context-section{color:#8bacba}.bar-separator{height:11px;width:1px;background:#34424c;margin:0 8px}.context-right{gap:10px}.weather{color:#b8c9d6}.weather svg{color:#e6bd7d}.weather small{font-size:8px;color:#647c90;margin-left:3px}.refresh-status{display:flex;align-items:center;gap:6px;font-size:10px;color:#9eb0be;padding:4px 0}.live-dot{width:5px;height:5px;display:inline-block;background:var(--mint);border-radius:50%;box-shadow:0 0 7px #67e8c651;flex-shrink:0}.update-time{font-family:var(--mono);color:#5b7386;font-size:10px}.small-icon{display:inline-flex;align-items:center;justify-content:center;padding:4px;color:#829ba9}.small-icon:hover{color:var(--mint)}.metrics-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}.metric-card{padding:15px 20px 12px;text-align:left;position:relative;overflow:hidden;border:1px solid #253542;border-radius:6px;background:linear-gradient(120deg,#142433aa,#0d1723 72%);height:125px}.metric-card:before{content:"";width:2px;height:19px;position:absolute;left:0;top:16px;background:var(--mint)}.metric-card.tone-blue:before{background:var(--blue)}.metric-card.tone-amber:before{background:var(--amber)}.metric-card:hover{border-color:#496576;background:#152a37}.metric-heading{display:flex;align-items:center;justify-content:space-between;color:#8fa6b8;font-size:11px}.metric-heading svg{color:#6dafac}.metric-card.tone-blue .metric-heading svg{color:#7c9bbc}.metric-card.tone-amber .metric-heading svg{color:#c79e65}.metric-value{display:flex;align-items:baseline;margin:8px 0 7px;gap:9px;position:relative}.metric-value strong{font-family:var(--mono);font-size:35px;line-height:1.05;font-weight:500;letter-spacing:.5px;color:#eef8fa;z-index:1}.metric-value>span{font-size:10px;color:#71899a}.metric-card.tone-amber .metric-value strong{color:#eac587}.sparkline{position:absolute;right:0;bottom:0;width:29%;height:34px;opacity:.8}.metric-foot{display:flex;align-items:center;justify-content:space-between;font-size:9px;color:#6f879a}.metric-foot b{display:flex;align-items:center;gap:3px;font-weight:400;color:#68c7ab}.metric-card.tone-amber .metric-foot b{color:var(--amber)}.dashboard-grid{display:grid;grid-template-columns:290px minmax(0,1fr) 300px;gap:16px;min-height:650px;height:calc(100dvh - 315px)}.left-column,.right-column,.center-column{display:flex;flex-direction:column;min-width:0;gap:14px}.panel{background:linear-gradient(130deg,#10203077,#0e1927 50%);border:1px solid #23323f;border-radius:6px;padding:17px 17px 14px;position:relative;min-width:0;overflow:hidden}.panel-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px;gap:7px}.panel-title h2{font-size:12px;font-weight:500;letter-spacing:.5px;display:flex;align-items:center;gap:7px;white-space:nowrap}.panel-title h2>i{width:3px;height:12px;background:var(--mint);border-radius:1px;display:block}.panel-title h2 small{font-family:var(--mono);font-size:7px;letter-spacing:1px;font-weight:400;color:#516c7f;display:none}.subtle-chip{padding:2px 6px;border:1px solid #2a414d;border-radius:3px;color:#7693a4;font-size:8px;white-space:nowrap}.population-panel{flex:0 0 225px}.population-body{display:flex;gap:18px;align-items:center;justify-content:center}.donut{position:relative;width:125px;height:125px;flex-shrink:0}.donut>svg{width:100%;height:100%;transform:rotate(0)}.donut>div{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.donut strong{font-family:var(--mono);font-weight:450;font-size:25px;line-height:1.2;letter-spacing:.2px}.donut strong small{font-size:10px;margin-left:2px;color:#8babb9}.donut span{font-size:9px;color:#738c9e;margin-top:6px}.population-legend{display:flex;flex-direction:column;gap:11px;flex:1}.population-legend>span{font-size:9px;color:#8da6b7;position:relative;padding-left:11px;white-space:nowrap}.population-legend>span i{position:absolute;left:0;top:4px}.population-legend strong{display:block;font:19px var(--mono);color:#d3e3e9;margin-top:3px}.population-legend strong small{font:8px Microsoft YaHei,sans-serif;color:#627d90;margin-left:5px}.population-bottom{margin-top:11px;padding-top:10px;border-top:1px solid #20313e;display:flex;justify-content:space-between;gap:6px}.population-bottom span{display:flex;align-items:center;gap:6px;font-size:8px;color:#637f91}.population-bottom b{font-family:var(--mono);font-weight:400;color:#bbcedb;font-size:11px}.population-bottom small{font-size:7px;color:#516c7a}.mint,.blue,.amber,.muted{display:inline-block;width:5px;height:5px;border-radius:1px;flex-shrink:0}.mint{background:var(--mint)}.blue{background:var(--blue)}.amber{background:var(--amber)}.muted{background:#537087}.energy-panel{flex:1;min-height:273px}.energy-panel .panel-title{margin-bottom:12px}.energy-total>span{font-size:10px;color:#8aa0b3}.energy-total small{font-size:8px;color:#526e80;margin-left:5px}.energy-total>strong{display:flex;align-items:center;gap:13px;font-family:var(--mono);font-size:27px;font-weight:450;margin:5px 0}.energy-total em{display:flex;align-items:center;font-size:10px;color:var(--mint);gap:3px;font-family:var(--mono)}.line-chart{position:relative;margin-top:2px}.line-chart svg{display:block;width:100%;height:138px;overflow:visible}.line-chart text{fill:#688194;font:9px var(--mono)}.chart-current{display:flex;gap:8px;align-items:center;justify-content:flex-end;font-size:9px;color:#708da0;margin:2px 0 3px}.chart-current b{font-family:var(--mono);font-size:11px;color:#a0c8ce;font-weight:400}.chart-current small{font-size:8px}.chart-legend{display:flex;justify-content:center;gap:18px;font-size:8px;color:#678698;margin-top:0}.chart-legend span{display:flex;gap:6px;align-items:center}.energy-secondary{display:flex;padding-top:13px;margin-top:12px;border-top:1px solid #22323e;gap:12px}.energy-secondary>div{display:flex;align-items:flex-start;gap:7px;flex:1}.energy-secondary>div+div{border-left:1px solid #22323e;padding-left:13px}.energy-secondary svg{color:#709cb0;margin-top:2px}.energy-secondary span{font-size:8px;color:#718ea0}.energy-secondary b{display:block;font:16px var(--mono);color:#bacdd6;margin-top:4px}.energy-secondary small{font-size:8px;color:#718b9a;margin-left:4px}.access-panel{flex:0 0 166px}.access-panel .panel-title{margin-bottom:11px}.access-numbers{display:flex;justify-content:space-between;padding-right:12px}.access-numbers>span{font-size:8px;color:#7b95a7}.access-numbers strong{display:block;font:23px var(--mono);color:#d4e4ec;margin-top:5px}.access-numbers small{font-size:8px;color:#678398;margin-left:6px}.mini-bars{display:flex;align-items:flex-end;gap:4px;height:33px;margin-top:10px}.mini-bars>div{flex:1;min-height:3px;background:linear-gradient(0deg,#295666aa,#549b9b);position:relative;border-radius:1px 1px 0 0}.mini-bars>div:nth-child(3n){background:linear-gradient(0deg,#37665b99,#6ad4b4)}.mini-bars>div.hovered{background:var(--mint)}.mini-bars span{position:absolute;bottom:100%;left:50%;transform:translate(-50%,-7px);font-size:8px;background:#183345;color:var(--mint);padding:5px;white-space:nowrap;z-index:2;border:1px solid #39586c;border-radius:3px}.axis-caption{display:flex;justify-content:space-between;font:8px var(--mono);color:#586f82;margin-top:5px}.target-progress>span{font-size:11px;color:#8aa3b3;display:flex;justify-content:space-between;align-items:center}.target-progress strong{font:25px var(--mono);color:var(--mint)}.target-progress small{font-size:11px}.progress-track{height:4px;background:#213642;border-radius:3px;overflow:hidden}.progress-track i{display:block;height:100%;background:linear-gradient(90deg,#3b857d,#67e8c6);border-radius:3px}.target-progress .progress-track{margin-top:12px}.target-progress p{display:flex;justify-content:space-between;font-size:8px;color:#7093a4;margin-top:8px}.target-progress p b{font-weight:400;color:#526c7d}.target-progress .panel-link{margin-top:9px;padding-top:7px}.center-column{gap:14px}.map-wrap{position:relative;flex:1;min-height:445px;min-width:0}.scene-panel{position:absolute;inset:0;background:#0b141e;border:1px solid #243744;border-radius:7px;overflow:hidden}.scene-panel:before,.scene-panel:after{content:"";position:absolute;top:0;left:0;width:14px;height:14px;border-left:2px solid #61938f;border-top:2px solid #61938f;z-index:2;pointer-events:none}.scene-panel:after{inset:auto 0 0 auto;transform:rotate(180deg)}.scene-panel iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.scene-top{position:absolute;top:22px;left:22px;right:20px;display:flex;align-items:start;justify-content:space-between;pointer-events:none;gap:10px}.micro-label{font-family:var(--mono);font-size:8px;letter-spacing:1.6px;color:#5a8295}.scene-heading-new h2{font-weight:450;font-size:17px;color:#dcecf1;letter-spacing:1.5px;margin-top:8px}.scene-heading-new h2 span{color:#638b9d;font-size:10px;margin-left:9px;letter-spacing:.5px}.scene-heading-new p{font-size:8px;color:#68899b;display:flex;align-items:center;gap:7px;margin-top:9px}.scene-heading-new p>span{color:#3f6575}.layer-switch{display:flex;gap:2px;pointer-events:auto;border:1px solid #2c4553;background:#0d1d29c9;border-radius:4px;padding:3px}.layer-switch button{display:flex;align-items:center;gap:5px;font-size:9px;color:#7192a4;padding:6px 8px;border-radius:2px}.layer-switch button.active{background:#1c463e;color:#8ce5ca}.layer-switch button:hover{background:#25414d;color:#b9e9ec}.scene-coordinates{position:absolute;left:20px;bottom:92px;font-family:var(--mono);font-size:7px;letter-spacing:1px;color:#426676;pointer-events:none}.scene-coordinates span{display:block;font-size:6px;margin-top:5px}.scene-tools{position:absolute;right:16px;top:113px;display:flex;flex-direction:column;gap:5px}.scene-tools button{width:29px;height:29px;border-radius:4px;border:1px solid #2b414f;background:#0d1d29df;color:#7696a9;display:grid;place-items:center}.scene-tools button:hover,.scene-tools button.active{border-color:#397c70;color:#80dbbd;background:#15352f}.scene-tools>span{height:4px}.scene-bottom{position:absolute;left:20px;right:20px;bottom:15px;display:flex;flex-direction:column;align-items:center;gap:15px;pointer-events:none}.view-controls{display:flex;border:1px solid #2a4352;background:#0c1c28ed;padding:4px;border-radius:5px;pointer-events:auto;gap:2px;box-shadow:0 8px 30px #0004}.view-controls button{display:flex;gap:5px;align-items:center;padding:7px 11px;font-size:9px;border-radius:3px;color:#8caab9}.view-controls button.active{background:#205448;color:#a4f1d9}.view-controls button:hover{background:#27444d}.view-controls>span{width:1px;background:#304652;margin:4px 5px}.scene-hint{width:100%;display:flex;align-items:center;justify-content:space-between;font-size:7px;color:#5d7e90;gap:8px}.scene-hint>span:first-child{color:#7f9caa}.scene-hint i{display:inline-block;width:4px;height:4px;background:var(--mint);border-radius:50%;margin-right:5px}.scene-hint b{font:9px var(--mono);border:1px solid #3c5b67;border-radius:50%;height:25px;width:25px;display:grid;place-items:center;color:#7b9aab}.building-search{position:absolute;left:21px;top:109px;display:flex;align-items:center;width:170px;padding:6px 8px;gap:6px;color:#5f879b;border:1px solid #263f4c;border-radius:4px;background:#0b1b27dd;z-index:3}.building-search input{font-size:9px;min-width:0;width:100%;border:0;background:transparent;padding:2px;outline:none;color:#b6d5df}.search-results{position:absolute;top:calc(100% + 5px);left:0;right:-40px;background:#101f2ef8;border:1px solid #355161;border-radius:4px;padding:4px;box-shadow:0 15px 35px #0008}.search-results button{display:flex;align-items:center;gap:7px;padding:10px 7px;font-size:10px;width:100%;text-align:left;border-radius:3px}.search-results button:hover{background:#213e4b;color:var(--mint)}.search-results small{margin-left:auto;font:8px var(--mono);color:#5d8797}.search-results p{padding:12px;font-size:10px;color:#7a9cae}.map-legend{position:absolute;bottom:102px;right:20px;display:flex;align-items:center;gap:6px;background:#0b1b28c9;padding:8px;border:1px solid #263d48;border-radius:4px;font-size:8px;color:#85a4b2}.map-legend>span{color:#b5c8d3;margin-right:6px}.map-legend small{font-size:7px;color:#536f80;border-left:1px solid #36535d;padding-left:6px}.map-building-card{position:absolute;bottom:108px;left:auto;right:20px;width:267px;padding:15px;background:#102532ee;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid #3d6b73;border-radius:5px;box-shadow:0 12px 30px #0005}.map-building-card h3{font-size:14px;font-weight:450;margin-top:6px}.close-mini{position:absolute;right:7px;top:7px;color:#7897a9;display:flex;padding:3px}.building-brief{display:flex;margin-top:16px;gap:20px}.building-brief>span{font-size:8px;color:#7599aa}.building-brief strong{display:block;font:18px var(--mono);color:#c8e5e9;margin-top:5px}.building-brief small{font-size:7px;color:#698f9e;margin-left:4px}.building-brief button{font-size:8px;color:var(--mint);align-self:flex-end;display:flex;align-items:center;gap:3px;margin-left:auto;padding:2px}.scene-loading{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;background:#0b141e}.scene-loading svg{color:var(--mint)}.scene-loading strong{font-size:13px;font-weight:400}.scene-loading span{font-size:10px;color:#6c8b9c}.scene-loading button{border:1px solid #395d64;background:#164237;padding:8px 12px;font-size:11px;border-radius:4px}.spin{animation:spin 1.5s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.day-scene .scene-heading-new h2{color:#294552}.day-scene .scene-heading-new p{color:#446573}.day-scene .micro-label{color:#3d6577}.stream-panel{flex:0 0 220px;padding:16px 18px 10px}.stream-panel .panel-title{margin-bottom:11px}.text-action{font-size:9px;color:#7899ab;display:flex;align-items:center;gap:4px;padding:3px 0}.text-action:hover{color:var(--mint)}.event-table-head,.event-table-row{display:grid;grid-template-columns:65px minmax(0,1fr) 46px 58px 12px;gap:10px;align-items:center;text-align:left;width:100%}.event-table-head{font-size:8px;color:#587388;margin-bottom:2px;padding:0 0 6px;border-bottom:1px solid #213342}.event-table-row{padding:10px 0;border-bottom:1px solid #1d2b3a}.event-table-row:last-child{border:0}.event-table-row:hover{background:#1c304150}.event-table-row time{font:10px var(--mono);color:#7897aa}.event-table-row b{font-weight:400;font-size:10px;color:#b6ccd7;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-table-row small{display:block;font-size:8px;color:#5e7f92;margin-top:4px}.event-table-row svg{color:#547389}.severity{display:inline-flex;align-items:center;gap:4px;font-size:9px;white-space:nowrap}.severity i{width:4px;height:4px;border-radius:50%;background:currentColor}.severity.high{color:var(--red)}.severity.medium{color:var(--amber)}.severity.low{color:#82aede}.status-badge{display:inline-flex;justify-content:center;align-items:center;font-size:8px;padding:3px 5px;border:1px solid #384b5b;border-radius:3px;line-height:1.2;white-space:nowrap;width:max-content}.status-badge.pending{color:#daa864;background:#6b432317;border-color:#5a4633}.status-badge.processing{color:#8fbbf2;background:#3e618f20;border-color:#36516a}.status-badge.resolved{color:#6cccac;background:#346b5320;border-color:#2d5148}.ranking-list{display:flex;flex-direction:column;gap:6px}.ranking-list button{display:flex;align-items:center;gap:12px;padding:7px 0;min-width:0}.ranking-list em{font:10px var(--mono);color:#486b7f}.ranking-list button>span{width:84px;font-size:10px;color:#a0bac9;text-align:left;flex-shrink:0}.ranking-list button>div{height:4px;background:#203443;flex:1;border-radius:2px;overflow:hidden}.ranking-list button i{display:block;height:100%;background:linear-gradient(90deg,#286f63,#75ddc3);border-radius:2px}.ranking-list strong{font:13px var(--mono);color:#adced7;font-weight:400;min-width:78px;text-align:right}.ranking-list small{font-size:7px;color:#5e7c8f;margin-left:4px}.mini-device-list button{width:100%;display:flex;align-items:center;gap:10px;font-size:10px;padding:10px 0;border-bottom:1px solid #20323f;text-align:left;color:#89a8b9}.mini-device-list button>b{font:13px var(--mono);color:#c6e2e5;margin-left:auto}.mini-device-list small{color:#557486;font-size:10px}.mini-device-list button>span:last-of-type{font:11px var(--mono);margin-left:10px}.health-panel{flex:0 0 187px}.health-panel .panel-title{margin-bottom:12px}.health-score{display:flex;align-items:center;justify-content:space-between}.health-score strong{font:45px var(--mono);font-weight:450;letter-spacing:-1px;color:#d7f5e9;line-height:1.1}.health-score span{display:flex;align-items:center;gap:10px;color:#657f93;font-size:9px;margin-top:5px}.health-score span>b{color:#71bfa1;font-weight:400;background:#285c4026;font-size:8px;padding:3px 5px;border-radius:2px}.health-radar{position:relative;display:grid;place-items:center;width:75px;height:75px;border:1px solid #2a4f4b;border-radius:50%;background:radial-gradient(circle,#39bb7722,transparent);color:#6ecdb1;margin-right:12px}.health-radar:before{content:"";position:absolute;inset:7px;border:1px dashed #365d5c;border-radius:50%}.health-radar i{position:absolute;top:13px;right:6px;width:4px;height:4px;background:var(--mint);border-radius:50%}.health-radar i+i{top:auto;bottom:7px;left:13px;background:#52776d;width:3px;height:3px}.health-sub{display:flex;justify-content:space-between;border-top:1px solid #213340;margin-top:13px;padding-top:10px;gap:10px}.health-sub>span{font-size:8px;color:#678597}.health-sub b{font:11px var(--mono);color:#aac8d5;margin-left:6px}.health-sub small{font-size:8px}.attention-panel{flex:1;min-height:279px}.attention-panel .panel-title{margin-bottom:14px}.count-badge{font:11px var(--mono);color:#e4bd86;background:#5d45322f;border:1px solid #614d38;border-radius:4px;padding:3px 7px}.alert-list{display:flex;flex-direction:column;gap:9px}.alert-card{display:flex;align-items:center;gap:10px;padding:12px 9px 11px;border:1px solid #263947;border-radius:4px;background:#11202c;text-align:left;width:100%}.alert-card.high{border-left:2px solid #c57872;background:linear-gradient(90deg,#4a262329,#11202c)}.alert-card.medium{border-left:2px solid #c19a60;background:linear-gradient(90deg,#51402a29,#11202c)}.alert-card.low{border-left:2px solid #588bb5}.alert-card:hover{border-color:#5d7183;background:#1b2f3d}.alert-symbol{height:26px;width:26px;display:grid;place-items:center;border-radius:4px;background:#1d3541;color:#79a7c6;flex-shrink:0}.alert-card.high .alert-symbol{background:#70423b30;color:#e49787}.alert-card.medium .alert-symbol{background:#6c583c30;color:#d6b37c}.alert-copy{min-width:0;flex:1}.alert-copy b{font-size:10px;font-weight:450;color:#bfced8;display:block;white-space:nowrap}.alert-copy>small{display:block;font-size:8px;color:#698797;margin-top:6px}.alert-copy em{display:flex;align-items:center;gap:8px;margin-top:8px;font:8px var(--mono);color:#506e80}.alert-copy .status-badge{font:7px Microsoft YaHei,sans-serif;padding:2px 4px}.alert-card>svg{color:#4b6b7c}.panel-link{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #213440;font-size:9px;color:#7fa5b2;width:100%;padding:11px 0 0;margin-top:13px}.panel-link:hover{color:var(--mint)}.camera-panel{flex:0 0 198px}.camera-panel .panel-title{margin-bottom:13px}.camera-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.camera-tile{border:1px solid #2a4555;border-radius:4px;position:relative;height:103px;overflow:hidden;padding:0;background:#162c39}.camera-tile img{width:100%;height:100%;object-fit:cover;filter:saturate(.55) brightness(.78);transition:transform .4s}.camera-tile:hover img{transform:scale(1.07);filter:saturate(.8) brightness(.95)}.camera-tag{position:absolute;top:6px;left:6px;display:flex;align-items:center;gap:3px;background:#0b2339d9;border:1px solid #466776;border-radius:2px;font:6px var(--mono);padding:2px 3px;color:#b4d6d8}.camera-tag i{height:3px;width:3px;background:var(--mint);border-radius:50%}.camera-play{position:absolute;inset:0;display:grid;place-items:center;color:#d1f4ed;opacity:0;transition:opacity .2s}.camera-tile:hover .camera-play{opacity:1}.camera-caption{position:absolute;bottom:0;left:0;right:0;padding:7px 5px;background:linear-gradient(transparent,#081824e6);font-size:8px;display:flex;align-items:center;gap:4px;white-space:nowrap}.camera-caption svg:last-child{margin-left:auto}.camera-foot{display:flex;justify-content:space-between;margin-top:12px;font-size:8px;color:#65879b}.camera-foot>span{display:flex;align-items:center;gap:5px}.camera-foot button{display:flex;align-items:center;gap:3px;color:#8ca8b6;font-size:8px;padding:0}.device-distribution{display:flex;flex-direction:column;gap:8px}.device-distribution button{padding:0}.device-distribution button>span{display:flex;justify-content:space-between;font-size:9px;color:#8fabb9;margin-bottom:5px}.device-distribution b{font:10px var(--mono);color:#b2d1dc}.device-distribution .progress-track{height:3px}.camera-panel:has(.device-distribution){flex-basis:237px}.app-footer{height:46px;display:flex;align-items:center;justify-content:space-between;gap:15px;color:#3f5a6e;font-size:8px}.app-footer>span{display:flex;align-items:center;gap:7px}.app-footer>span:first-child{color:#5c7b8a}.app-footer i{width:2px;height:2px;background:#4f726f;margin:0 4px}.app-footer b{font:8px var(--mono);letter-spacing:1px;color:#416476;border:1px solid #203746;padding:2px 4px;margin-left:4px}.app-footer button{font-size:8px;color:#4d6b7e;padding:0}.mint-text{color:var(--mint)!important}.amber-text{color:var(--amber)!important}.muted-text{color:#6d8b9e;font-size:11px}.mono{font-family:var(--mono)}.modal{background:#0e1b29;color:#d9e5ec;border:1px solid #3a5768;border-radius:10px;padding:26px;width:min(560px,calc(100vw - 32px));max-height:90dvh;box-shadow:0 30px 150px #0009;overflow:auto}.modal.wide{width:min(850px,calc(100vw - 32px))}.modal::backdrop{background:#020812c9;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.modal-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:23px;gap:15px;border-bottom:1px solid #263c4b;padding-bottom:18px}.modal-header h2{font-size:20px;font-weight:500;margin:9px 0}.modal-header p{font-size:10px;color:#6f91a6;line-height:1.7}.modal-header .micro-label{font-size:8px}.modal-header .icon-btn{flex-shrink:0}.alert-detail-title{display:flex;align-items:center;gap:10px;margin-bottom:23px;flex-wrap:wrap}.alert-detail-title h3{font-size:15px;font-weight:450;flex:1}.alert-detail-title .status-badge{font-size:10px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:19px;background:#122432;border:1px solid #294251;border-radius:5px}.detail-grid span{display:block;font-size:10px;color:#7694a6;margin-bottom:9px}.detail-grid b{font-size:12px;color:#bad0dc;font-weight:400}.detail-note{margin:20px 0}.detail-note h4{font-weight:450;color:#b2cbd4;font-size:12px;margin:16px 0 8px}.detail-note p{font-size:11px;line-height:1.9;color:#7d9bad}.workflow{display:flex;justify-content:space-between;align-items:center;gap:13px;padding:20px 0;font-size:10px;color:#55788c}.workflow span{display:flex;align-items:center;gap:5px;white-space:nowrap}.workflow span.done{color:#68d2b1}.workflow i{height:1px;background:#2d4959;flex:1}.modal-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:20px;padding-top:18px;border-top:1px solid #293f4e;flex-wrap:wrap}.primary-button,.secondary-button{font-size:11px;display:inline-flex;gap:8px;align-items:center;justify-content:center;padding:10px 14px;border-radius:4px;border:1px solid #4a8574;background:#245b4c;color:#c3f3e2}.primary-button:hover{background:#347764;border-color:#67e8c6}.secondary-button{background:#142a3b;color:#a4c3d2;border-color:#345167}.secondary-button:hover{background:#224256;color:#d2e9f1}.resolved-note{font-size:11px;color:var(--mint);display:flex;align-items:center;gap:7px}.filter-tabs{display:flex;gap:8px;border-bottom:1px solid #233b4e;margin-bottom:16px;padding-bottom:14px}.filter-tabs button{font-size:11px;color:#85a5b7;border:1px solid #2d485a;padding:8px 13px;border-radius:4px;display:flex;gap:8px;align-items:center}.filter-tabs button.active{background:#214d43;border-color:#497b6a;color:#a4edcf}.filter-tabs span{font:10px var(--mono);background:#0b202966;padding:2px 4px;border-radius:3px}.modal-event-list>button{display:flex;align-items:center;text-align:left;width:100%;gap:20px;padding:17px 9px;border-bottom:1px solid #243b4b}.modal-event-list>button:hover{background:#172f40}.modal-event-list>button>div{flex:1}.modal-event-list b{font-size:12px;font-weight:450}.modal-event-list small{display:block;color:#6e8d9f;font-size:10px;margin-top:7px}.modal-event-list .status-badge{font-size:9px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:28px 8px;color:#5f8b9f}.empty-state b{font-size:12px;font-weight:400;color:#9ec0cd}.empty-state span{font-size:10px;color:#618598}.building-modal-stats{display:flex;gap:14px;margin-bottom:24px}.building-modal-stats>div{flex:1;background:#132b37;border:1px solid #2e4853;border-radius:5px;display:flex;flex-direction:column;gap:11px;padding:16px}.building-modal-stats svg{color:#6aafac}.building-modal-stats strong{font:24px var(--mono);color:#d6eaf0}.building-modal-stats span{font-size:9px;color:#7ea2b0}.device-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.device-filters label{display:flex;align-items:center;gap:7px;background:#102637;border:1px solid #2e495a;border-radius:4px;padding:8px 9px;flex:1;min-width:170px;color:#63899c}.device-filters input{background:transparent;border:0;min-width:0;width:100%;font-size:11px;outline:none}.device-filters select{padding:8px;font-size:10px}.device-table-wrap{overflow-x:auto}.device-table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap}.device-table th{font-size:10px;color:#6f93a7;font-weight:400;background:#142b3b;padding:11px 9px}.device-table td{font-size:10px;color:#a3bfcd;padding:13px 9px;border-bottom:1px solid #263a49}.device-table td button{display:flex;align-items:center;gap:3px;font-size:9px;color:#78bba9;padding:0}.online-state,.offline-state{display:inline-flex;align-items:center;gap:5px;color:#72c5a5;font-size:10px}.online-state i,.offline-state i{background:currentColor;width:4px;height:4px;border-radius:50%}.offline-state{color:#d6ae78}.pagination{display:flex;justify-content:space-between;align-items:center;margin-top:22px;font-size:10px;color:#698b9e}.pagination>div{display:flex;align-items:center;gap:14px}.pagination button{font-size:10px;border:1px solid #345263;border-radius:3px;padding:6px 8px;color:#a2bdcb}.pagination button:hover:not(:disabled){background:#264557}.camera-expanded{position:relative;aspect-ratio:16/9;overflow:hidden;background:#132e3a;border:1px solid #355766;border-radius:5px}.camera-expanded img{height:100%;width:100%;object-fit:cover;filter:saturate(.75)}.camera-expanded>div{position:absolute;top:13px;left:15px;right:15px;display:flex;justify-content:space-between;font:10px var(--mono);color:#dcf1ec;text-shadow:0 2px 3px #000}.camera-expanded>div>span{display:flex;align-items:center;gap:6px;font-size:8px;letter-spacing:1px}.camera-corner{position:absolute;width:25px;height:25px;bottom:18px;border-bottom:1px solid #9bc6c1}.camera-corner.left{left:18px;border-left:1px solid #9bc6c1}.camera-corner.right{right:18px;border-right:1px solid #9bc6c1}.scan-line{position:absolute;left:0;right:0;top:0;height:1px;background:#79dfb544;box-shadow:0 -10px 20px #50b18c16;animation:scan 6s linear infinite}@keyframes scan{to{top:100%}}.camera-picker{display:flex;gap:8px;margin-top:15px}.camera-picker button{display:flex;align-items:center;gap:6px;font-size:10px;padding:9px 12px;border:1px solid #2d4c5f;border-radius:4px;color:#6f9aad}.camera-picker button.active{background:#235249;border-color:#4b8b73;color:#b2edda}.about-content{font-size:12px;color:#8fabb9;line-height:1.9}.about-icon{color:var(--mint);background:#1c4a3b44;width:76px;height:76px;border:1px solid #396d5c;display:grid;place-items:center;border-radius:17px;margin-bottom:20px}.about-content ul{padding-left:18px;margin:20px 0 27px;font-size:11px}.about-content li{margin-bottom:8px}.toast{position:fixed;bottom:50px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:9px;font-size:12px;padding:13px 16px;background:#183e34;border:1px solid #467a66;border-radius:6px;color:#b8f3db;box-shadow:0 12px 40px #0006;z-index:100;max-width:90vw;white-space:nowrap}.toast>button{display:flex;padding:2px;margin-left:9px;color:#7cac99}.security-patrol .patrol-total{display:flex;gap:12px;align-items:center;border-bottom:1px solid #294451;padding-bottom:16px;margin-bottom:14px;color:#67cdb2}.patrol-total>span{font-size:9px;color:#7ea2b0}.patrol-total strong{display:block;font:26px var(--mono);color:#c3e8e6;margin-top:6px}.patrol-total small{font:9px Microsoft YaHei,sans-serif;color:#597f91}.patrol-total>b{font:11px var(--mono);margin-left:auto}.patrol-zones{display:flex;flex-direction:column;gap:9px}.patrol-zones button{text-align:left;border:1px solid #2c4351;background:#132633;padding:10px;border-radius:4px}.patrol-zones button:hover{background:#1e3e4a}.patrol-zones button>span{display:flex;gap:6px;align-items:center;font-size:10px;color:#95b4c1}.patrol-zones em{font-size:8px;margin-left:auto}.patrol-zones button>div{display:flex;gap:8px;align-items:baseline;margin-top:8px}.patrol-zones strong{font:22px var(--mono);color:#c0e4e6}.patrol-zones small{font-size:8px;color:#658c9f}.patrol-zones button>div>svg{margin-left:auto;color:#547b8d;align-self:center}.patrol-note{font-size:8px;color:#5c8494;display:flex;align-items:center;gap:6px;margin-top:11px}.access-records button{display:flex;gap:15px;width:100%;align-items:center;text-align:left;padding:13px 0;border-bottom:1px solid #203845}.access-records time{font:10px var(--mono);color:#6b93a7}.access-records button>span:nth-child(2){flex:1}.access-records b{font-size:10px;font-weight:400;color:#acc7d2}.access-records small{display:block;font-size:8px;color:#5c8296;margin-top:5px}.access-records em{font-size:9px}.access-records .verified{display:flex;align-items:center;gap:4px;font-size:8px;color:#67b596}.access-records button>svg{color:#506d80}.blue-text{color:var(--blue)}@media(min-width:1750px){.app-shell{padding:0 30px}.dashboard-grid{grid-template-columns:326px minmax(0,1fr) 336px;gap:18px;height:calc(100dvh - 326px);min-height:682px}.app-header{height:89px}.context-bar{height:53px}.metric-card{height:128px;padding:17px 23px 14px}.metric-heading{font-size:12px}.metric-value strong{font-size:39px}.panel{padding:19px 20px 16px}.panel-title h2{font-size:13px}.panel-title h2 small{display:inline}.population-panel{flex-basis:238px}.donut{width:138px;height:138px}.population-legend strong{font-size:21px}.energy-panel{min-height:304px}.energy-panel .line-chart svg{height:158px}.access-panel{flex-basis:176px}.health-panel{flex-basis:203px}.health-score strong{font-size:49px}.health-score .health-radar{width:80px;height:80px}.alert-card{padding:14px 10px}.alert-copy b{font-size:11px}.camera-panel{flex-basis:213px}.camera-tile{height:115px}.stream-panel{flex-basis:223px}.event-table-head,.event-table-row{grid-template-columns:85px minmax(0,1fr) 66px 68px 13px}.event-table-row b{font-size:11px}.event-table-row time{font-size:11px}.event-table-row{padding:11px 0}.scene-heading-new h2{font-size:20px}.layer-switch button{font-size:10px;padding:7px 10px}.scene-hint{font-size:8px}.view-controls button{font-size:10px;padding:8px 13px}}@media(max-width:1400px){.app-shell{padding:0 17px}.brand strong{font-size:17px;letter-spacing:1px}.brand span:not(.brand-mark){font-size:7px;letter-spacing:1.1px}.brand-mark{height:36px;width:36px}.main-nav{gap:0}.main-nav button{padding:0 13px;font-size:11px;gap:6px}.header-end{gap:12px}.clock strong{font-size:22px}.demo-badge{font-size:8px}.dashboard-grid{grid-template-columns:250px minmax(0,1fr) 260px;gap:12px;min-height:640px}.panel{padding-left:13px;padding-right:13px}.left-column,.right-column,.center-column{gap:12px}.population-body{gap:10px}.donut{width:111px;height:111px}.population-panel{flex-basis:212px}.population-bottom span:last-child{display:none}.energy-panel .line-chart svg{height:130px}.health-radar{width:62px;height:62px;margin-right:3px}.health-score strong{font-size:40px}.health-sub{gap:3px}.health-sub b{font-size:10px;margin-left:4px}.alert-card{padding:12px 7px;gap:7px}.alert-symbol{width:22px;height:22px}.alert-copy b{font-size:9px}.camera-caption{font-size:7px}.camera-caption>svg:last-child{display:none}.metrics-row{gap:12px}.metric-card{padding-left:16px;padding-right:16px}.metric-foot{font-size:8px}.metric-value strong{font-size:32px}.scene-top{left:17px;right:15px}.scene-heading-new h2{font-size:15px}.scene-heading-new h2 span{display:none}.micro-label{font-size:7px}.layer-switch button{padding:6px;font-size:8px;gap:4px}.scene-tools{right:12px}.scene-bottom{left:12px;right:12px}.view-controls button{padding:7px 8px}.stream-panel{padding-left:13px;padding-right:13px}.event-table-head,.event-table-row{gap:6px;grid-template-columns:55px minmax(0,1fr) 35px 50px 10px}.event-table-row b{font-size:9px}.event-table-row small,.status-badge{font-size:7px}.severity{font-size:8px}.app-footer>span:nth-child(2){display:none}.panel-title h2{font-size:11px}.panel-title .text-action{font-size:8px}}@media(max-height:850px)and (min-width:1101px){.app-header{height:72px}.context-bar{height:39px}.metric-card{height:110px;padding-top:12px}.metrics-row{margin-bottom:12px}.metric-value strong{font-size:30px}.metric-value{margin:6px 0}.dashboard-grid{height:auto;min-height:640px}.app-footer{height:38px}}@media(max-width:1100px){.app-header{height:auto;min-height:78px;flex-wrap:wrap;padding-top:15px;gap:10px}.brand{order:0}.header-end{order:1;margin-left:auto}.main-nav{order:2;width:100%;height:43px;justify-content:center}.main-nav button{padding:0 26px}.context-right .weather,.context-right .bar-separator,.context-left>span:first-child,.context-left>svg{display:none}.dashboard-grid{height:auto;grid-template-columns:250px minmax(0,1fr);gap:14px}.left-column{grid-column:1;grid-row:1}.center-column{grid-column:2;grid-row:1}.right-column{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}.right-column .panel{min-height:220px}.attention-panel{grid-column:2}.alert-card{padding:8px}.alert-copy em{margin-top:4px}.camera-tile{height:116px}.health-radar{margin-top:10px}.health-score{margin-top:28px}.map-wrap{min-height:474px}.metrics-row{gap:10px}.metric-card{height:110px;padding:12px}.metric-value strong{font-size:29px}.sparkline{width:27%}.metric-foot,.metric-foot b{font-size:7px}.metric-value{gap:4px}.context-bar{height:44px}.stream-panel{flex-basis:225px}.main-nav button{font-size:12px}.camera-panel .panel-title .subtle-chip{display:none}}@media(max-width:760px){.app-shell{padding:0 12px}.app-header{padding-top:16px;gap:12px}.brand strong{font-size:16px}.brand{gap:9px}.brand-mark{width:34px;height:34px}.brand-mark svg{width:23px}.brand span:not(.brand-mark){font-size:6px;letter-spacing:1px}.header-end .clock,.fullscreen{display:none}.header-end{gap:5px}.demo-badge{font-size:7px;padding:5px}.main-nav{justify-content:space-between;height:43px;gap:0}.main-nav button{font-size:10px;padding:0 10px;gap:6px}.main-nav button svg{width:13px}.context-left .bar-separator,.context-section{display:none!important}.context-left b{font-size:10px}.context-right{gap:7px}.update-time{display:none!important}.refresh-status{font-size:9px}.metrics-row{grid-template-columns:1fr 1fr;gap:9px;margin-bottom:12px}.metric-card{height:106px;padding:12px}.metric-heading{font-size:10px}.metric-heading svg{width:14px}.metric-value strong{font-size:29px}.metric-foot{font-size:7px}.metric-card .sparkline{height:23px;width:24%;opacity:.65}.metric-value>span{font-size:8px}.dashboard-grid{display:flex;flex-direction:column;gap:12px}.center-column{order:0;gap:12px}.map-wrap{flex:none;height:510px;min-height:0}.scene-top{top:18px;left:15px;right:12px}.scene-heading-new h2{font-size:15px}.scene-heading-new .micro-label{font-size:6px}.scene-heading-new p{font-size:7px}.layer-switch button{font-size:8px;padding:5px}.layer-switch svg{display:none}.building-search{left:15px;top:104px;width:146px}.scene-tools{top:104px;right:12px;gap:6px}.scene-tools button{width:28px;height:28px}.scene-hint{font-size:6px}.scene-hint b{width:21px;height:21px;font-size:8px}.scene-bottom{bottom:10px;gap:13px}.view-controls button{font-size:8px;padding:7px 8px;gap:4px}.view-controls svg{width:11px}.view-controls>span{margin:4px 2px}.scene-coordinates{display:none}.scene-hint>span:first-child{display:none}.scene-hint>span:nth-child(2){margin:auto}.map-building-card{bottom:95px;width:250px;left:auto;right:12px}.map-legend{bottom:84px;right:12px;font-size:7px}.map-legend small{display:none}.map-legend>span{margin-right:3px}.stream-panel{flex:none;height:217px}.event-table-row b{font-size:9px}.event-table-head,.event-table-row{grid-template-columns:51px minmax(0,1fr) 33px 46px 9px;gap:5px}.event-table-row{padding:10px 0}.left-column{order:1;display:grid;grid-template-columns:1fr 1fr;gap:12px}.left-column .panel{min-height:0}.population-panel{grid-column:1;padding-bottom:13px}.population-body{flex-direction:column;gap:8px}.population-legend{display:flex;flex-direction:row;gap:12px;justify-content:center}.population-legend>span{font-size:7px;padding-left:0}.population-legend>span i{display:none}.population-legend strong{font-size:13px;margin-top:6px}.population-legend small{display:none}.donut{width:130px;height:130px}.population-bottom{display:none}.access-panel{grid-column:2;grid-row:1}.access-numbers{flex-direction:column;gap:20px}.access-numbers strong{font-size:25px}.mini-bars{gap:2px;margin-top:20px}.energy-panel{grid-column:1/-1;grid-row:2}.energy-panel .line-chart svg{height:170px}.panel-title h2{font-size:12px}.energy-panel .panel-title h2 small{display:inline}.energy-total>strong{font-size:31px}.energy-secondary span{font-size:10px}.energy-secondary b{font-size:21px}.right-column{order:2;display:grid;grid-template-columns:1fr 1fr;gap:12px}.health-panel{grid-column:1;grid-row:1}.camera-panel{grid-column:2;grid-row:1}.attention-panel{grid-column:1/-1;grid-row:2}.right-column .panel{min-height:0}.health-score{margin-top:28px;flex-direction:column;align-items:flex-start}.health-radar{display:none}.health-score strong{font-size:39px}.health-sub{flex-direction:column;gap:12px;margin-top:24px}.health-sub span{font-size:9px}.health-sub b{font-size:12px}.camera-panel .panel-title h2{font-size:11px}.camera-grid{grid-template-columns:1fr;gap:6px}.camera-tile{height:78px}.camera-foot{display:none}.camera-caption{font-size:8px}.attention-panel .alert-list{gap:8px}.alert-card{padding:12px;gap:11px}.alert-symbol{width:28px;height:28px}.alert-copy b{font-size:11px}.alert-copy>small{font-size:9px}.alert-copy em{margin-top:7px;font-size:9px}.alert-copy .status-badge{font-size:8px}.panel-link{font-size:10px}.app-footer{padding:16px 0;height:auto;flex-direction:column;gap:8px;align-items:flex-start;font-size:7px}.app-footer button{font-size:7px}.modal{padding:19px}.modal-header h2{font-size:18px}.detail-grid{padding:15px;gap:18px}.detail-grid b{font-size:11px}.modal-actions{gap:10px}.filter-tabs{gap:5px}.filter-tabs button{font-size:9px;padding:7px;gap:4px}.modal-event-list>button{gap:9px;padding:15px 0}.modal-event-list b{font-size:10px}.modal-event-list small,.modal-event-list .status-badge{font-size:8px}.building-modal-stats{gap:8px}.building-modal-stats>div{padding:12px 9px}.building-modal-stats strong{font-size:22px}.building-modal-stats span{font-size:8px}.camera-picker{flex-wrap:wrap;gap:6px}.camera-picker button{font-size:9px;padding:8px}.camera-expanded>div{font-size:8px;left:9px;right:9px}.camera-expanded>div>span{font-size:6px}.toast{font-size:10px;white-space:normal;bottom:24px;max-width:94vw;width:max-content}.device-filters select{flex:1}.device-table{min-width:570px}.pagination{font-size:9px}.about-content{font-size:11px}.target-progress>span{flex-direction:column;align-items:flex-start;gap:18px}.target-progress p{flex-direction:column;gap:7px}.mini-device-list button{font-size:10px}}@media(min-width:1101px){.dashboard-grid{grid-template-rows:minmax(0,1fr)}.left-column,.right-column,.center-column{min-height:0}.population-panel{flex-basis:210px}.population-panel .panel-title{margin-bottom:9px}.population-body .donut{width:112px;height:112px}.population-bottom{margin-top:7px;padding-top:7px}.energy-panel{min-height:278px}.energy-panel .panel-title{margin-bottom:8px}.energy-panel .line-chart svg{height:110px}.energy-total>strong{margin:4px 0}.energy-secondary{padding-top:9px;margin-top:9px}.access-panel{flex-basis:154px}.health-panel{flex-basis:178px}.attention-panel{min-height:270px}.alert-card{padding-top:10px;padding-bottom:10px}.camera-panel{flex-basis:186px}.camera-tile{height:95px}.stream-panel{flex-basis:211px}.map-wrap{min-height:390px}}@media(min-width:1750px){.dashboard-grid{height:calc(100dvh - 332px)}.population-panel{flex-basis:220px}.population-body .donut{width:118px;height:118px}.energy-panel{min-height:296px}.energy-panel .line-chart svg{height:130px}.access-panel{flex-basis:162px}.health-panel{flex-basis:190px}.camera-panel{flex-basis:202px}.camera-tile{height:107px}.stream-panel{flex-basis:213px}}@media(min-width:1101px)and (max-height:980px){.app-header{height:72px}.context-bar{height:40px}.metric-card{height:108px;padding:12px 16px}.metric-value strong{font-size:30px}.metric-value{margin:6px 0}.metrics-row{margin-bottom:12px}.app-footer{height:35px}.dashboard-grid{height:calc(100dvh - 267px);min-height:558px;gap:12px}.left-column,.right-column,.center-column{gap:12px}.panel{padding:13px 14px 11px}.panel-title{margin-bottom:10px}.population-panel{flex-basis:179px}.population-body .donut{width:102px;height:102px}.population-bottom{display:none}.population-legend{gap:9px}.population-legend strong{font-size:18px}.energy-panel{min-height:243px}.energy-total>strong{font-size:25px}.energy-panel .line-chart svg{height:96px}.chart-current{font-size:8px}.energy-secondary{padding-top:8px;margin-top:6px}.energy-secondary b{font-size:14px}.energy-secondary span{font-size:8px}.access-panel{flex-basis:122px}.access-panel .panel-title{margin-bottom:7px}.access-numbers strong{font-size:20px;margin-top:3px}.mini-bars{height:23px;margin-top:7px}.axis-caption{font-size:7px;margin-top:3px}.health-panel{flex-basis:148px}.health-score strong{font-size:36px}.health-score span{margin-top:3px}.health-radar{height:58px;width:58px}.health-radar svg{width:26px}.health-sub{margin-top:8px;padding-top:8px}.attention-panel{min-height:258px}.attention-panel .panel-title{margin-bottom:10px}.alert-list{gap:7px}.alert-card{padding:8px;gap:8px}.alert-copy em{margin-top:6px}.alert-copy>small{margin-top:5px}.alert-copy b{font-size:10px}.panel-link{padding-top:9px;margin-top:10px}.camera-panel{flex-basis:160px}.camera-tile{height:82px}.camera-foot{margin-top:9px}.stream-panel{flex-basis:187px;padding:13px 15px 8px}.stream-panel .panel-title{margin-bottom:8px}.event-table-row{padding:8px 0}.event-table-row small{margin-top:3px}.map-wrap{min-height:355px}.camera-panel:has(.device-distribution){flex-basis:181px}.device-distribution{gap:5px}.device-distribution button>span{font-size:8px;margin-bottom:4px}.target-progress .panel-link{margin-top:6px;padding-top:5px}.target-progress strong{font-size:21px}.target-progress p{font-size:7px}}@media(min-width:1101px)and (max-height:825px){.dashboard-grid{height:auto;min-height:580px;grid-template-rows:auto}.app-shell{min-height:100dvh}.energy-panel{flex:0 0 260px}.attention-panel{flex:1}.map-wrap{min-height:400px}.app-footer{margin-top:0}}@media(min-width:1101px){.attention-panel .alert-copy em{margin-top:5px}.attention-panel .alert-copy>small{margin-top:4px}.attention-panel .alert-card{padding-top:8px;padding-bottom:8px}.attention-panel .panel-link{margin-top:10px;padding-top:9px}.attention-panel .panel-title{margin-bottom:11px}.attention-panel .alert-list{gap:7px}}@media(min-width:1750px){.population-panel{flex-basis:230px}.access-panel{flex-basis:164px}}@media(min-width:1101px)and (max-height:825px){.energy-panel{flex:1;min-height:285px}}@media(min-width:1101px){.security-patrol .patrol-total{padding-bottom:8px;margin-bottom:8px;gap:8px}.patrol-total strong{font-size:22px;margin-top:3px}.patrol-zones{gap:6px}.patrol-zones button{padding:6px 8px;display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:37px}.patrol-zones button>span{display:grid;grid-template-columns:13px 1fr;gap:3px 5px;font-size:9px}.patrol-zones em{grid-column:2;margin-left:0;font-size:7px}.patrol-zones button>div{margin:0;gap:4px}.patrol-zones strong{font-size:18px}.patrol-zones small{font-size:7px}.patrol-note{margin-top:7px;font-size:7px}.access-records button{padding:9px 0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition:none!important}}
