/* Authoritative 2.5D projection. The slab, grid, hit targets and assets all use
   C(x,y) = (630 + 48(x-y), 100 + 28(x+y)). */
.dc-room-canvas:not(.plan-mode) .iso-floor{
  position:relative;
  display:block;
  width:1260px;
  height:720px;
  margin:38px 55px;
  padding:0;
  background:none;
  background-image:none;
  border:0;
  border-radius:0;
  clip-path:none;
  box-shadow:none;
  overflow:visible;
}
.dc-room-canvas:not(.plan-mode) .iso-floor::before{display:none}
.dc-room-canvas:not(.plan-mode) .iso-grid-svg{
  position:absolute;
  inset:0;
  width:1260px;
  height:720px;
  z-index:0;
  overflow:visible;
  pointer-events:none;
  filter:drop-shadow(0 18px 20px #50616b24);
}
.dc-room-canvas:not(.plan-mode) .iso-grid-svg .iso-floor-shape{
  fill:#d9dde2;
  stroke:#aeb6bd;
  stroke-width:2;
  vector-effect:non-scaling-stroke;
}
.dc-room-canvas:not(.plan-mode) .iso-grid-svg .iso-grid-cell{
  fill:#ffffff08;
  stroke:#a8b1b9;
  stroke-width:1.25;
  vector-effect:non-scaling-stroke;
}
.dc-room-canvas:not(.plan-mode) .iso-floor>[data-cell]{
  position:absolute;
  left:calc(630px + (var(--gx) - var(--gy))*48px);
  top:calc(100px + (var(--gx) + var(--gy))*28px);
  width:96px;
  height:56px;
  margin:0;
  transform:translate(-50%,-50%);
  clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);
  border:0;
  border-radius:0;
  outline:0;
  background:transparent;
  box-shadow:none;
  z-index:2;
}
.dc-room-canvas:not(.plan-mode) .iso-floor>[data-cell]:hover,
.dc-room-canvas:not(.plan-mode) .iso-floor>[data-cell].drop-target{
  background:#36bcd63d;
  border:0;
  outline:1px solid #199eb7;
  outline-offset:-1px;
  box-shadow:inset 0 0 0 2px #ffffff70;
}
.dc-room-canvas:not(.plan-mode) .iso-object.svg-device{
  left:calc(630px + (var(--x) - var(--y))*48px - 63px);
  top:calc(100px + (var(--x) + var(--y))*28px - 144px);
  width:126px;
  height:154px;
  margin:0;
  transform:none;
  transform-origin:63px 144px;
  z-index:7;
}
.dc-room-canvas:not(.plan-mode) .iso-object.svg-device.selected::after{
  content:'';
  position:absolute;
  left:15px;
  top:116px;
  width:96px;
  height:56px;
  background:#35bed228;
  outline:1px solid #1ba4ba;
  clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);
  z-index:-1;
}
.dc-room-canvas:not(.plan-mode) .iso-partition{
  left:calc(630px + (var(--x) - var(--y))*48px);
  top:calc(100px + (var(--x) + var(--y))*28px);
}
.dc-room-canvas.plan-mode .iso-floor-shape{display:none}
