/* Data center workspace: rack elevation + draggable 45 degree room plan */
.datacenter-section{margin-top:14px;padding:24px;background:#f7f8f6;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}.dc-titlebar{display:flex;align-items:flex-end;justify-content:space-between;padding-bottom:18px}.dc-titlebar h2{font-size:26px;margin:3px 0 5px}.dc-titlebar p:not(.eyebrow){margin:0;color:#75817d;font-size:13px}.dc-actions{display:flex;gap:4px;border:1px solid #daddd9;border-radius:9px;padding:3px;background:#fff}.dc-tab{min-height:38px;padding:0 14px;border:0;border-radius:7px;background:transparent;color:#687470;font-weight:700;cursor:pointer}.dc-tab.active{background:#173f40;color:#fff}.dc-toolbar{display:flex;align-items:center;gap:16px;min-height:54px;border-top:1px solid #dde1dc;border-bottom:1px solid #dde1dc;font-size:11px}.dc-toolbar label{display:flex;align-items:center;gap:8px}.dc-toolbar select{padding:7px 10px;border:1px solid #d7dcd7;border-radius:7px;background:#fff}.dc-legend{margin-left:auto;display:flex;align-items:center;gap:5px;color:#75817d}.dc-dot{width:8px;height:8px;border-radius:50%}.online{background:#37ad68}.warning{background:#e99a37}.offline{background:#de5a5a}.dc-hint{color:#75817d}.dc-view{position:relative;min-height:650px;height:auto;border:0;border-radius:0;overflow:hidden;background:#f0f1f3}.dc-rack-view[hidden],.dc-room-view[hidden]{display:none}.dc-rack-scroll{overflow-x:auto;padding:18px 16px 12px}.dc-rack-row{display:flex;align-items:flex-end;gap:4px;min-width:1500px}.kk-rack{width:246px;flex:0 0 246px}.kk-rack>header{height:58px;display:flex;justify-content:space-between;padding:0 4px}.kk-rack>header strong,.kk-rack>header small{display:block}.kk-rack>header strong{font-size:13px}.kk-rack>header small{font:10px 'DM Mono';color:#8b9298;margin-top:4px}.rk-counts{display:flex;gap:4px}.rk-counts b{font:700 9px 'DM Mono';padding:3px 5px;border-radius:5px}.rk-counts .on{color:#20a757;background:#d8f6e3}.rk-counts .warn{color:#d98000;background:#fff0d3}.rk-counts .off{color:#d94444;background:#ffe1e1}.kk-bag{position:relative;width:74px;height:86px;margin:-7px auto 8px;background:linear-gradient(100deg,#77c93e,#b8ef70 50%,#5db62d);clip-path:polygon(7% 0,94% 3%,100% 97%,3% 100%);filter:drop-shadow(0 5px 3px #0003);display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(-2deg)}.kk-bag:before{content:'KK';position:absolute;top:10px;background:#e93232;color:#fff;font:700 8px Arial;padding:2px 9px}.kk-bag span{margin-top:11px;width:46px;height:28px;border-radius:4px;background:#11171a;display:grid;place-items:center;color:#6fe64e;font:700 13px 'DM Mono'}.kk-bag small{font-size:6px;color:#306d23;background:#fff;padding:3px 7px;margin-top:5px}.rk-shell{position:relative;height:680px;padding:12px 10px 12px 24px;background:linear-gradient(90deg,#111214,#252629 5%,#141517 95%,#050607);border:2px solid #2d2e32;border-radius:12px;box-shadow:inset 0 0 0 5px #111214,0 5px 12px #0003}.rk-holes{position:absolute;inset:5px;background:radial-gradient(circle,#050505 0 2px,transparent 2.3px) 0 0/10px 10px;pointer-events:none}.rk-u-numbers{position:absolute;left:3px;top:13px;bottom:13px;width:18px;display:grid;grid-template-rows:repeat(42,1fr);z-index:2}.rk-u-numbers span{font:7px 'DM Mono';color:#777b80;display:grid;place-items:center}.rk-grid{position:relative;height:100%;display:grid;grid-template-rows:repeat(42,1fr);gap:1px;background:repeating-linear-gradient(135deg,#17181a 0 2px,#1c1d1f 2px 5px);border:1px solid #090a0b;border-radius:4px;overflow:hidden}.rk-device{position:relative;grid-row:calc(43 - var(--u) - var(--h) + 1)/span var(--h);width:100%;min-height:0;padding:0 24px 0 18px;border:1px solid #08090a;border-radius:4px;background:linear-gradient(#303135,#191a1d);color:#e9eaeb;box-shadow:inset 0 1px #ffffff20;cursor:pointer;overflow:hidden;z-index:3}.rk-device:hover,.rk-device.selected{outline:2px solid #4dbdff;outline-offset:-2px}.rk-device-label{display:block;font:700 9px 'DM Sans';white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rk-device-model{display:block;font:6px 'DM Mono';color:#92979c}.rk-led{position:absolute;left:7px;top:50%;width:6px;height:6px;border-radius:50%;background:#35cd68;box-shadow:0 0 6px #35cd68;transform:translateY(-50%)}.status-warning .rk-led{background:#eaa32d}.status-offline .rk-led{background:#ee4e55}.rk-vents{position:absolute;right:8px;top:25%;width:19px;height:50%;background:repeating-linear-gradient(90deg,#090a0b 0 2px,transparent 2px 4px)}.rk-storage{background:linear-gradient(#d8d9dc,#8e9096);color:#25272b}.rk-blade,.rk-gpu{background:linear-gradient(90deg,#ddd 0 7%,#37393d 8% 92%,#bbb 93%)}.rk-blade:after,.rk-gpu:after{content:'';position:absolute;left:23%;right:23%;top:18%;bottom:18%;border:3px solid #6b6e73;clip-path:polygon(0 0,20% 0,32% 38%,45% 0,62% 0,75% 38%,88% 0,100% 0,100% 100%,0 100%)}.rk-switch:after{content:'';position:absolute;left:30%;right:8%;top:28%;height:44%;background:repeating-linear-gradient(90deg,#020303 0 5px,#31a864 5px 6px,#020303 6px 10px)}.rk-ups{background:linear-gradient(90deg,#bbb,#eee 15%,#ccc 86%,#999);color:#292b2e}.rk-ups:after{content:'⚡ ▮▮▮▮▮ 94%';position:absolute;right:8px;top:40%;color:#16b957;font:700 8px 'DM Mono'}.rk-pdu:after{content:'● ● ● ● ● ●';position:absolute;right:8px;top:35%;color:#050505;font-size:8px}.dc-room-view{min-height:680px;display:grid;grid-template-columns:minmax(0,1fr) 180px;background:#15191d}.dc-room-canvas{overflow:auto;background:linear-gradient(#161a1e,#0e1114)}.iso-floor{position:relative;width:1180px;height:760px;margin:20px;display:grid;grid-template-columns:repeat(12,84px);grid-template-rows:repeat(8,68px);gap:2px;padding:70px 80px;background:#20292f}.iso-floor:before{content:'';position:absolute;inset:70px 80px;background:linear-gradient(30deg,transparent 49%,#3a454c 50%,transparent 51%),linear-gradient(150deg,transparent 49%,#3a454c 50%,transparent 51%);background-size:84px 68px;opacity:.58}.iso-floor>[data-cell]{position:relative;z-index:1}.iso-floor>[data-cell]:hover{background:#55c2ff18;outline:1px solid #55c2ff66}.iso-room-label{position:absolute;left:30px;top:24px;color:#70808a;font:700 12px 'DM Mono';letter-spacing:.12em}.iso-object{position:absolute;left:calc(80px + var(--x)*86px);top:calc(70px + var(--y)*70px);width:82px;height:102px;border:0;background:none;color:#dce6ec;cursor:grab;z-index:4;filter:drop-shadow(12px 14px 6px #0008)}.iso-object .iso-front{position:absolute;left:0;top:31px;width:58px;height:62px;display:grid;place-items:center;background:linear-gradient(90deg,#13171a,#2b3136);border:1px solid #56626a;transform:skewY(25deg);font:700 8px 'DM Mono';writing-mode:vertical-rl}.iso-object .iso-side{position:absolute;left:58px;top:17px;width:24px;height:62px;background:#283137;border:1px solid #56626a;transform:skewY(-32deg)}.iso-object .iso-top{position:absolute;left:8px;top:0;width:65px;height:35px;background:linear-gradient(135deg,#4b5962,#222a2f);border:1px solid #697985;transform:skewY(-25deg)}.iso-object i{position:absolute;left:10px;top:52px;width:5px;height:5px;border-radius:50%;background:#39d26e;box-shadow:0 0 7px #39d26e;z-index:3}.iso-cooling .iso-front{background:linear-gradient(90deg,#bfc9cd,#7f9198);color:#162026}.iso-camera{transform:scale(.55)}.dc-object-palette{padding:16px;background:#f6f7f7;border-left:1px solid #d7dcde;display:flex;flex-direction:column;gap:8px}.dc-object-palette button{min-height:44px;text-align:left;padding:0 12px;border:1px solid #d7dcde;border-radius:7px;background:#fff;cursor:grab}.dc-object-palette small{color:#7c898f;font-size:9px}@media(max-width:900px){.dc-titlebar{display:block}.dc-actions{margin-top:14px;width:max-content}.dc-toolbar{display:block;padding:12px 0}.dc-view{min-height:560px}.dc-room-view{grid-template-columns:1fr}.dc-object-palette{position:absolute;right:10px;top:10px;width:150px}.kk-rack{width:220px;flex-basis:220px}.rk-shell{height:610px}}

/* QuickAid visual identity: flatter elevations, closed isometric room objects. */
.dc-rack-view{background:#eef2f1}.dc-rack-scroll{padding-top:26px}.dc-rack-row{gap:14px}.kk-rack{width:238px;flex-basis:238px;background:#fff;border:1px solid #d9e1df;border-radius:10px;padding:12px}.kk-rack>header{height:64px;padding:0}.kk-rack>header strong{font-size:14px;color:#183f40}.kk-rack>header small{font-family:'DM Sans';color:#7d8986}.rk-counts{align-items:flex-start;flex-wrap:wrap;justify-content:flex-end;max-width:94px}.rk-counts b{font-family:'DM Sans';font-size:8px;font-weight:700}.rk-shell{height:640px;padding:9px 8px 9px 26px;background:#d9e2e0;border:1px solid #bdcbc8;border-radius:7px;box-shadow:none}.rk-holes{display:none}.rk-u-numbers{left:4px;top:10px;bottom:10px}.rk-u-numbers span{color:#72827f}.rk-grid{gap:1px;background:repeating-linear-gradient(to bottom,#f7faf9 0,#f7faf9 13px,#dfe8e6 14px);border:1px solid #c4d0ce;border-radius:3px}.rk-device{border:1px solid #aebdba;border-radius:3px;background:#f5f8f7;color:#244544;box-shadow:none;padding-left:20px}.rk-device:hover,.rk-device.selected{outline-color:#21a0a0;background:#e8f5f3}.rk-device-model{color:#87938f}.rk-led{box-shadow:none}.rk-vents{opacity:.22}.rk-storage,.rk-blade,.rk-gpu,.rk-ups{background:#edf2f1;color:#244544}.rk-blade:after,.rk-gpu:after{border-width:1px;border-color:#9baba8;opacity:.45}.rk-switch:after{opacity:.5}.rk-ups:after{color:#239861}.rk-pdu:after{color:#657572}.rk-pdu,.rk-kvm,.rk-blank{background:#dfe8e6;color:#244544}.dc-room-view{background:#e9efee;grid-template-columns:minmax(0,1fr) 190px}.dc-room-canvas{background:#dce5e3}.iso-floor{width:1180px;height:760px;margin:24px;background:#cbd8d5;border:1px solid #afc0bc;border-radius:12px;box-shadow:0 20px 50px #29413b1c}.iso-floor:before{background:linear-gradient(30deg,transparent 49%,#afc0bc 50%,transparent 51%),linear-gradient(150deg,transparent 49%,#afc0bc 50%,transparent 51%);opacity:.75}.iso-floor>[data-cell]:hover{background:#fff8;outline-color:#269fa1}.iso-wall{position:absolute;background:#78908c;z-index:2}.iso-wall-left{left:58px;top:68px;width:22px;height:550px;clip-path:polygon(100% 0,100% 96%,0 100%,0 4%)}.iso-wall-top{left:80px;top:49px;width:1008px;height:22px;clip-path:polygon(2% 0,100% 0,98% 100%,0 100%)}.iso-room-label{left:100px;top:88px;color:#365956;letter-spacing:0}.iso-room-label b,.iso-room-label span{display:block}.iso-room-label b{font-size:14px}.iso-room-label span{font:10px 'DM Sans';margin-top:5px;color:#6b807c}.iso-zone{position:absolute;left:150px;width:790px;height:54px;border-radius:7px;display:flex;align-items:center;padding-left:18px;z-index:1;opacity:.65}.iso-zone b{font:700 10px 'DM Mono';letter-spacing:.14em}.iso-zone.cold{top:266px;background:#a9d9df;color:#2d7078}.iso-zone.hot{top:474px;background:#edc4ad;color:#985f40}.iso-door{position:absolute;right:70px;bottom:42px;width:76px;height:28px;border:2px solid #78908c;border-bottom:0;color:#4c6964;font-size:9px;display:grid;place-items:center}.iso-object{width:106px;height:126px;filter:drop-shadow(9px 12px 7px #3149433d);transition:filter .18s,transform .18s}.iso-object:hover{filter:drop-shadow(10px 14px 9px #21413a59) brightness(1.04)}.iso-object .iso-top{left:0;top:0;width:78px;height:40px;background:#51716c;border:1px solid #42615c;transform:skewY(-24deg);border-radius:3px 3px 0 0}.iso-object .iso-front{left:0;top:39px;width:78px;height:70px;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;padding:0 8px 10px;background:#294b48;border:1px solid #1e3b39;transform:skewY(0);writing-mode:horizontal-tb;text-align:left;border-radius:0 0 0 3px}.iso-object .iso-front b{font:700 10px 'DM Sans';color:#fff}.iso-object .iso-front small{font:7px 'DM Sans';color:#a9c2be;margin-top:3px}.iso-object .iso-side{left:78px;top:20px;width:28px;height:70px;background:#1f3937;border:1px solid #172f2d;transform:skewY(-35deg);border-radius:0 3px 3px 0}.iso-object .iso-front i{left:9px;top:9px}.iso-cooling .iso-top{background:#73aeb8}.iso-cooling .iso-front{background:#4d8e99}.iso-cooling .iso-side{background:#376e77}.iso-ups .iso-top{background:#b59869}.iso-ups .iso-front{background:#826b47}.iso-ups .iso-side{background:#625037}.iso-camera{transform:scale(.65);transform-origin:center bottom}.dc-object-palette{background:#f7faf9;border-left-color:#c8d4d1}.dc-object-palette button{border-color:#ccd7d4;color:#31524e}.dc-object-palette button:hover{border-color:#269fa1;background:#eaf6f4}

/* Rack drag/drop and managed common-device library. */
.dc-rack-view{display:grid;grid-template-columns:minmax(0,1fr) 245px}.dc-rack-scroll{min-width:0}.rack-device-palette{background:#f8faf9;border-left:1px solid #ccd8d5;padding:16px;display:flex;flex-direction:column;gap:12px}.palette-head{display:flex;align-items:center;justify-content:space-between}.palette-head strong,.palette-head small{display:block}.palette-head strong{font-size:13px;color:#244844}.palette-head small{font-size:9px;color:#7b8986;margin-top:3px}.palette-head button{padding:6px 9px;border:1px solid #cbd7d4;border-radius:6px;background:#fff;color:#33746d;font-size:10px}.palette-search{display:flex;align-items:center;gap:6px;padding:7px 9px;border:1px solid #d2dcda;border-radius:7px;background:#fff;color:#87938f}.palette-search input{width:100%;border:0;outline:0;background:transparent;font-size:11px}.rack-catalog-list{display:flex;flex-direction:column;gap:7px;overflow:auto}.rack-catalog-item{display:grid;grid-template-columns:8px 1fr auto;gap:9px;align-items:center;min-height:56px;padding:9px;border:1px solid #d7e0de;border-radius:8px;background:#fff;text-align:left;cursor:grab}.rack-catalog-item:hover{border-color:#4a9b91;background:#f0f8f6}.rack-catalog-item>i{width:8px;height:30px;border-radius:4px}.rack-catalog-item b,.rack-catalog-item small{display:block}.rack-catalog-item b{font-size:11px;color:#274944}.rack-catalog-item small{font-size:8px;color:#84918e;margin-top:4px}.rack-catalog-item em{font-style:normal;font-size:8px;color:#3b887f}.catalog-empty{font-size:10px;color:#8c9895;text-align:center;padding:20px 0}.rk-grid.drop-ready{outline:3px solid #35a89b;outline-offset:2px;background-color:#e4f5f1}.rk-grid.drop-blocked{outline-color:#d75c5c;background-color:#fae9e9}.rack-catalog-card{width:min(620px,100%);max-height:90vh;overflow:auto}.rack-catalog-card .form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.rack-catalog-card select{display:block;width:100%;margin-top:7px;border:1px solid var(--line);border-radius:8px;padding:11px;background:#fbfcf7}.rack-catalog-card input[type=color]{height:42px;padding:4px}.rack-catalog-admin-list{margin-top:24px;border-top:1px solid var(--line)}.catalog-admin-row{display:grid;grid-template-columns:9px 1fr auto auto;gap:9px;align-items:center;padding:10px 0;border-bottom:1px solid #edf0ec}.catalog-admin-row>i{width:8px;height:32px;border-radius:4px}.catalog-admin-row b,.catalog-admin-row small{display:block}.catalog-admin-row b{font-size:11px}.catalog-admin-row small{font-size:9px;color:var(--muted);margin-top:3px}.catalog-admin-row button{font-size:9px;color:#33746d;padding:5px}.catalog-admin-row button.danger{color:#c54d4d}@media(max-width:1050px){.dc-rack-view{grid-template-columns:1fr}.rack-device-palette{border-left:0;border-top:1px solid #ccd8d5;max-height:300px}.rack-catalog-list{display:grid;grid-template-columns:repeat(2,1fr)}}

/* 2.5D selection and save-state feedback. */
.dc-new-site{border:1px solid #bfd1cd;background:#fff;color:#276b64;border-radius:7px;padding:7px 10px;font-weight:700;cursor:pointer}.dc-probe-button{margin-top:auto!important;background:#173f40!important;color:#fff!important;border-color:#173f40!important;cursor:pointer!important}.dc-probe-button:disabled{opacity:.42;cursor:not-allowed!important}.iso-object.selected{filter:drop-shadow(0 0 0 #000) drop-shadow(0 0 10px #20b6a8);z-index:8}.iso-object.selected .iso-front{outline:3px solid #50d4c5}.probe-result{margin:14px 0;padding:12px;border-radius:8px;background:#eef3f1;color:#48625d;font-size:11px}.probe-result.online{background:#def6e7;color:#15763e}.probe-result.offline{background:#ffe5e5;color:#a33131}.probe-enabled{display:flex!important;flex-direction:row!important;gap:8px;align-items:center}.dc-selection{white-space:pre-line;padding:12px;border:1px solid #d4dedb;border-radius:8px;background:#fff;color:#385b56;font-size:10px;line-height:1.6}.iso-sensor .iso-top{background:#5aa8a0}.iso-sensor .iso-front{background:#347c76}.iso-sensor .iso-side{background:#235d58}

/* Digital Twin 2.5D v2 — high-contrast operations canvas. */
.dc-room-view{grid-template-columns:minmax(0,1fr) 226px;background:#0a1118;border-radius:12px;min-height:790px}.dc-room-canvas{position:relative;background:radial-gradient(circle at 48% 28%,#243746 0,#101b25 46%,#080e14 100%);padding-top:64px}.dc-stage-head{position:absolute;z-index:20;left:18px;right:18px;top:14px;height:44px;display:flex;align-items:center;gap:18px;padding:0 14px;border:1px solid #ffffff17;border-radius:10px;background:#101b25dd;backdrop-filter:blur(14px);box-shadow:0 12px 30px #0005;color:#dce8ef}.dc-stage-head>div:first-child{display:grid;grid-template-columns:10px auto;column-gap:8px;align-items:center}.dc-stage-head small{grid-column:2;font-size:8px;color:#718896}.dc-stage-head b{font-size:10px;letter-spacing:.12em}.live-pulse{width:7px;height:7px;border-radius:50%;background:#35e487;box-shadow:0 0 0 5px #35e48718,0 0 12px #35e487}.dc-stage-kpis{display:flex;gap:7px;margin-left:auto}.dc-stage-kpis span{padding:6px 9px;border-radius:6px;background:#ffffff09;color:#8da2ae;font-size:8px}.dc-stage-kpis span b{color:#e6f2f7;font-size:11px}.dc-stage-kpis .good b{color:#48e18e}.dc-stage-kpis .bad b{color:#ff6b74}.dc-zoom{display:flex;align-items:center;border:1px solid #ffffff18;border-radius:7px;overflow:hidden}.dc-zoom button{width:28px;height:28px;border:0;background:#ffffff08;color:#bcd0da;cursor:pointer}.dc-zoom strong{width:45px;text-align:center;font-size:8px}.iso-floor{transform-origin:top left;transition:transform .18s ease;width:1180px;height:700px;margin:24px 34px;padding:76px 80px;background-color:#17232d;background-image:linear-gradient(30deg,#89a8b31b 1px,transparent 1px),linear-gradient(150deg,#89a8b31b 1px,transparent 1px),radial-gradient(circle at 50% 40%,#243743,#131e27 72%);background-size:84px 68px,84px 68px,100% 100%;border:1px solid #69818e48;border-radius:16px;box-shadow:0 32px 80px #0009,inset 0 1px #ffffff15;overflow:hidden}.iso-floor:before{inset:76px 80px;background:linear-gradient(30deg,transparent 49%,#8eb1bf1b 50%,transparent 51%),linear-gradient(150deg,transparent 49%,#8eb1bf1b 50%,transparent 51%);opacity:1}.iso-wall-left{left:58px;top:74px;background:linear-gradient(90deg,#0a1118,#34505d);box-shadow:8px 0 20px #0007}.iso-wall-top{left:80px;top:51px;background:linear-gradient(#4b6975,#1a2a34);box-shadow:0 12px 20px #0007}.iso-room-label{left:104px;top:92px;color:#c9dbe2}.iso-room-label b{font-size:12px;letter-spacing:.12em}.iso-room-label span{color:#68818d;font-family:'DM Mono';font-size:8px}.iso-zone{left:150px;width:790px;height:44px;border:1px solid transparent;opacity:.8;backdrop-filter:blur(4px)}.iso-zone.cold{top:275px;background:linear-gradient(90deg,#1bc4e01a,#1bc4e03d,#1bc4e00e);border-color:#3bd9ed24;color:#65dcec}.iso-zone.hot{top:487px;background:linear-gradient(90deg,#ff6d4b12,#ff6d4b38,#ff6d4b0b);border-color:#ff795724;color:#ff9a80}.iso-zone b{font-size:8px}.iso-door{border-color:#557483;color:#7894a0}.iso-object{width:116px;height:142px;filter:drop-shadow(15px 20px 10px #000a)}.iso-object .iso-top{left:2px;width:84px;height:36px;background:linear-gradient(145deg,#52646e,#1d2930 62%,#111a20);border-color:#667b85;clip-path:polygon(18% 0,100% 0,82% 100%,0 100%);transform:none}.iso-object .iso-front{left:2px;top:35px;width:82px;height:92px;padding:0 9px 11px;background:linear-gradient(90deg,#0d1216,#202a30 52%,#0b1013);border:2px solid #3d4c53;border-radius:3px;box-shadow:inset 0 0 0 3px #090d10,inset 0 1px #ffffff24;transform:none}.iso-object .iso-front:before{content:'';position:absolute;left:9px;right:9px;top:18px;height:49px;background:repeating-linear-gradient(to bottom,#35444b 0 3px,#080b0d 3px 7px);border:1px solid #020405;box-shadow:inset 5px 0 #142026,inset -5px 0 #142026}.iso-object .iso-front:after{content:'••••  ▪▪';position:absolute;left:11px;bottom:25px;color:#31d67c;font:6px 'DM Mono';letter-spacing:1px}.iso-object .iso-front b,.iso-object .iso-front small{position:relative;z-index:2}.iso-object .iso-front b{font-size:9px}.iso-object .iso-front small{font:6px 'DM Mono';color:#7f98a3}.iso-object .iso-side{left:84px;top:22px;width:30px;height:91px;background:linear-gradient(90deg,#27343b,#0a0f12);border-color:#4b5c64;transform:skewY(-36deg)}.iso-object .iso-front i{z-index:3;left:9px;top:8px;width:6px;height:6px;background:#42e98c;box-shadow:0 0 9px #42e98c}.iso-object.status-offline .iso-front{border-color:#e14d57}.iso-object.status-offline .iso-front i{background:#ff4e5b;box-shadow:0 0 10px #ff4e5b}.iso-object.status-warning .iso-front i{background:#ffae38;box-shadow:0 0 10px #ffae38}.iso-cooling .iso-front:before{background:repeating-radial-gradient(circle,#bfe4ea 0 2px,#56737d 3px 5px);border-radius:50%;height:54px}.iso-ups .iso-front:before{background:linear-gradient(#182329,#182329),repeating-linear-gradient(90deg,#212f36 0 8px,#080c0f 8px 10px)}.iso-camera .iso-front:before,.iso-sensor .iso-front:before{display:none}.iso-camera,.iso-sensor{transform:scale(.72);transform-origin:center bottom}.dc-object-palette{padding:18px;background:linear-gradient(#f8fbfa,#eef4f2);border-left:1px solid #c9d7d3;gap:9px}.dc-object-palette button:not(.dc-probe-button){min-height:50px;border-radius:10px;border-color:#cbd8d5;background:#fff;box-shadow:0 3px 10px #27443c0a;font-size:12px;font-weight:700}.dc-object-palette button:not(.dc-probe-button):hover{transform:translateY(-1px);border-color:#2b9c91;box-shadow:0 8px 18px #266b6019}.dc-selection{margin-top:8px;border-radius:10px;box-shadow:0 4px 12px #183c3410}
.iso-object.selected{outline:2px solid #37a9b5;outline-offset:5px;filter:drop-shadow(10px 14px 9px #21413a70) brightness(1.06)}
.dc-selection{white-space:pre-line;margin-top:10px;padding:10px;border:1px solid #d7dcde;border-radius:7px;background:#fff;color:#52615d;font-size:10px;line-height:1.6}
.dc-tab.dirty{background:#fff4df;color:#9b5e00;box-shadow:inset 0 0 0 1px #efb85b}

/* v3: spacious light isometric floor and separate engineering plan. */
.dc-room-view{background:#f6f7f9;min-height:820px}.dc-room-canvas{background:#f7f8fa;padding-top:58px}.dc-stage-head{background:#ffffffed;border-color:#dfe4e8;box-shadow:0 8px 22px #33445512;color:#263942}.dc-stage-head small{color:#86959c}.dc-stage-kpis span{background:#f2f5f6;color:#718087}.dc-stage-kpis span b{color:#263941}.dc-zoom{border-color:#d8e0e3}.dc-zoom button{background:#f6f8f9;color:#405760}.dc-arrange{border:1px solid #d6dfe2;border-radius:7px;background:#fff;color:#526a72;padding:6px 10px;font-size:9px;cursor:pointer}.iso-floor{width:1260px;height:720px;margin:38px 55px;padding:90px 100px;background-color:#d7d9dd;background-image:linear-gradient(30deg,#8e929a 1px,transparent 1px),linear-gradient(150deg,#8e929a 1px,transparent 1px);background-size:84px 68px;border:1px solid #aeb2b9;border-radius:0;clip-path:polygon(50% 0,100% 42%,50% 100%,0 42%);box-shadow:none;overflow:visible}.iso-floor:before{inset:0;background:linear-gradient(145deg,#fff8,#00000009);opacity:1;pointer-events:none}.iso-wall,.iso-zone,.iso-room-label,.iso-door{display:none}.iso-object{filter:drop-shadow(12px 17px 8px #58606b55);width:95px;height:150px}.iso-object .iso-top{width:72px;height:32px;background:linear-gradient(145deg,#34383e,#08090b);border-color:#50545b}.iso-object .iso-front{top:31px;width:70px;height:108px;background:linear-gradient(90deg,#111315,#282b2f 50%,#08090a);border-color:#34383d}.iso-object .iso-front:before{top:21px;height:67px;background:repeating-linear-gradient(to bottom,#2d3034 0 4px,#08090a 4px 9px);box-shadow:inset 4px 0 #0c0d0f,inset -4px 0 #0c0d0f}.iso-object .iso-side{left:72px;top:18px;width:24px;height:108px;background:linear-gradient(90deg,#24262a,#090a0b)}.iso-object .iso-front b{font-size:8px}.iso-object .iso-front small{font-size:5px}.iso-object.selected .iso-front{outline:2px solid #25b9d0}.dc-room-canvas:not(.plan-mode) .iso-object{left:calc(205px + var(--x)*72px);top:calc(150px + var(--y)*54px)}
.dc-room-canvas.plan-mode{background:#f8fafc}.dc-room-canvas.plan-mode .iso-floor{width:1240px;height:720px;margin:18px 30px;padding:0;background-color:#f5f9fd;background-image:linear-gradient(#77b9e033 1px,transparent 1px),linear-gradient(90deg,#77b9e033 1px,transparent 1px),linear-gradient(#429bc344 1px,transparent 1px),linear-gradient(90deg,#429bc344 1px,transparent 1px);background-size:21px 21px,21px 21px,84px 84px,84px 84px;border:2px solid #8298a4;clip-path:none;overflow:hidden}.dc-room-canvas.plan-mode .iso-floor:before{display:none}.dc-room-canvas.plan-mode .iso-object{left:calc(var(--x)*86px);top:calc(var(--y)*70px);width:84px;height:68px;filter:drop-shadow(2px 3px 2px #52616d35)}.dc-room-canvas.plan-mode .iso-object .iso-top,.dc-room-canvas.plan-mode .iso-object .iso-side{display:none}.dc-room-canvas.plan-mode .iso-object .iso-front{inset:0;width:84px;height:68px;transform:none;border:1px solid #4c5660;border-radius:3px;padding:9px;background:linear-gradient(#25282c,#101214)}.dc-room-canvas.plan-mode .iso-object .iso-front:before{left:7px;right:7px;top:26px;height:22px}.dc-room-canvas.plan-mode .iso-object .iso-front:after{display:none}.dc-room-canvas.plan-mode .iso-object .iso-front b{font-size:10px}.dc-room-canvas.plan-mode .iso-object .iso-front small{font-size:7px}.dc-room-canvas.plan-mode .iso-object .iso-front i{right:7px;left:auto;top:8px}

