/* ROUND MapView 3D — premium rendered Residential Digital Twin */
#mapView.rd-mapview-3d-ready {
  --rd3-gold: #d7b879;
  --rd3-ivory: #eee8dc;
  --rd3-muted: #a29b90;
  --rd3-panel: rgba(10,11,11,.91);
}

#mapView.rd-mapview-3d-ready .map-stage {
  overflow: hidden;
  border-color: rgba(222,196,144,.14) !important;
  background: #080909 !important;
}

#mapView.rd-mapview-3d-ready .map-heading {
  z-index: 24;
  top: 18px !important;
  right: auto !important;
  left: 22px !important;
  width: min(390px,30vw);
  min-height: 0;
  padding: 14px 18px !important;
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 16px;
  background: linear-gradient(145deg,rgba(10,11,11,.88),rgba(10,11,11,.54));
  box-shadow: 0 20px 50px rgba(0,0,0,.28);
  backdrop-filter: blur(18px) saturate(.86);
}

#mapView.rd-mapview-3d-ready .map-heading .eyebrow {
  color: rgba(225,200,150,.78) !important;
  font-size: 8px !important;
  letter-spacing: .14em !important;
}

#mapView.rd-mapview-3d-ready .map-heading h1 {
  margin: 6px 0 0 !important;
  color: var(--rd3-ivory) !important;
  font: 400 28px/1.05 Georgia,"Times New Roman",serif !important;
  letter-spacing: -.035em !important;
}

#mapView.rd-mapview-3d-ready .map-heading p {
  margin: 7px 0 0 !important;
  color: #928d84 !important;
  font-size: 9px !important;
  line-height: 1.45 !important;
}

#mapView.rd-mapview-3d-ready .plan-wrap {
  z-index: 2;
  inset: 0 !important;
}

#mapView.rd-mapview-3d-ready .floor-plan {
  position: absolute !important;
  inset: 0 !important;
  overflow: hidden !important;
  width: 100% !important;
  height: 100% !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: #080909 !important;
  isolation: isolate;
}

#mapView.rd-mapview-3d-ready .floor-plan::before {
  content: "" !important;
  position: absolute !important;
  z-index: 2 !important;
  inset: 0 !important;
  border: 0 !important;
  background:
    linear-gradient(90deg,rgba(4,5,5,.48) 0,transparent 18%,transparent 78%,rgba(4,5,5,.24) 100%),
    linear-gradient(180deg,rgba(5,6,6,.38) 0,transparent 23%,transparent 74%,rgba(4,5,5,.34) 100%) !important;
  opacity: 1 !important;
  pointer-events: none;
}

#mapView.rd-mapview-3d-ready .floor-plan::after {
  content: "";
  position: absolute;
  z-index: 3;
  inset: 0;
  background: radial-gradient(ellipse at 54% 53%,transparent 38%,rgba(3,4,4,.055) 68%,rgba(3,4,4,.38) 100%);
  pointer-events: none;
}

#mapView.rd-mapview-3d-ready .rd-twin-render {
  position: absolute;
  z-index: 1;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 54%;
  filter: brightness(.87) saturate(.88) contrast(1.045);
  transform: scale(1.022);
  opacity: 0;
  transition: opacity .7s ease,filter .5s ease;
  user-select: none;
  pointer-events: none;
}

#mapView.rd-mapview-3d-ready.rd-twin-image-loaded .rd-twin-render { opacity: 1; }

#mapView.rd-mapview-3d-ready .rd-twin-atmosphere {
  position: absolute;
  z-index: 4;
  inset: 0;
  background:
    radial-gradient(circle at 28% 64%,rgba(223,177,99,.08),transparent 21%),
    radial-gradient(circle at 73% 31%,rgba(197,158,91,.055),transparent 19%);
  mix-blend-mode: screen;
  pointer-events: none;
}

#mapView.rd-mapview-3d-ready .rd-twin-live-status {
  position: absolute;
  z-index: 25;
  right: 24px;
  bottom: 24px;
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 30px;
  padding: 0 11px;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 999px;
  background: rgba(8,9,9,.62);
  color: #837f78;
  font-size: 7px;
  letter-spacing: .08em;
  backdrop-filter: blur(14px);
}

#mapView.rd-mapview-3d-ready .rd-twin-live-status i {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #92bd9c;
  box-shadow: 0 0 10px rgba(146,189,156,.45);
}

#mapView.rd-mapview-3d-ready .rd-twin-live-status b {
  color: #b7b0a5;
  font-weight: 500;
}

#mapView.rd-mapview-3d-ready .rx-map-launchers.rd-map-tools {
  z-index: 28;
  top: 20px !important;
  right: 22px !important;
  bottom: auto !important;
  left: auto !important;
  display: grid !important;
  grid-template-columns: minmax(138px,1fr) minmax(150px,.92fr) minmax(170px,1.18fr) !important;
  width: min(610px,49vw) !important;
  padding: 5px !important;
  border-color: rgba(255,255,255,.09) !important;
  border-radius: 16px !important;
  background: rgba(8,9,9,.73) !important;
  box-shadow: 0 20px 55px rgba(0,0,0,.27) !important;
  backdrop-filter: blur(18px) saturate(.9);
}

#mapView.rd-mapview-3d-ready .rx-map-launchers.rd-map-tools button {
  height: 50px !important;
  min-height: 50px !important;
  padding: 0 12px !important;
  border-radius: 11px !important;
  box-shadow: none !important;
}

#mapView.rd-mapview-3d-ready .rx-map-launchers.rd-map-tools button b { font-size: 10px !important; }
#mapView.rd-mapview-3d-ready .rx-map-launchers.rd-map-tools button small { font-size: 7px !important; }

#mapView.rd-mapview-3d-ready #rxNodeOpen {
  border-color: rgba(221,188,119,.26) !important;
  background: rgba(221,188,119,.055) !important;
}

#mapView.rd-mapview-3d-ready #rxNodeOpen > i {
  color: #d8b873 !important;
  font-size: 7px !important;
  text-shadow: 0 0 12px rgba(216,184,115,.45);
}

#mapView.rd-mapview-3d-ready #rxNodeOpen b { color: #e8d5aa !important; }
#mapView.rd-mapview-3d-ready #rxNodeOpen small { color: #94866e !important; }

/* Room buttons are touch hotspots over the render, never device tiles. */
#mapView.rd-mapview-3d-ready .map-room {
  z-index: 8 !important;
  display: block !important;
  padding: 0 !important;
  border: 1px solid transparent !important;
  border-radius: 22px !important;
  background: transparent !important;
  box-shadow: none !important;
  opacity: 1 !important;
  filter: none !important;
  overflow: visible !important;
  cursor: pointer;
  transition: border-color .18s ease,background .18s ease,box-shadow .2s ease,opacity .2s ease !important;
}

#mapView.rd-mapview-3d-ready .room-living { left: 31% !important; top: 40% !important; width: 37% !important; height: 43% !important; }
#mapView.rd-mapview-3d-ready .room-kitchen { left: 35% !important; top: 13% !important; width: 34% !important; height: 27% !important; }
#mapView.rd-mapview-3d-ready .room-bath { left: 72% !important; top: 16% !important; width: 19% !important; height: 27% !important; }
#mapView.rd-mapview-3d-ready .room-master { left: 72% !important; top: 43% !important; width: 24% !important; height: 40% !important; }
#mapView.rd-mapview-3d-ready .room-room2 { left: 6% !important; top: 39% !important; width: 25% !important; height: 44% !important; }
#mapView.rd-mapview-3d-ready .room-entry { left: 12% !important; top: 12% !important; width: 23% !important; height: 27% !important; }

#mapView.rd-mapview-3d-ready .floor-plan.has-selection .map-room:not(.selected) {
  opacity: .72 !important;
  filter: none !important;
}

#mapView.rd-mapview-3d-ready .map-room::before {
  content: "" !important;
  position: absolute !important;
  z-index: -1 !important;
  inset: 0 !important;
  border: 0 !important;
  border-radius: inherit !important;
  background: radial-gradient(circle at 50% 55%,rgba(221,178,100,.075),transparent 67%) !important;
  box-shadow: none !important;
  opacity: 0 !important;
  transform: none !important;
  transition: opacity .2s ease !important;
}

#mapView.rd-mapview-3d-ready .map-room.rd-light-on::before { opacity: .74 !important; }

#mapView.rd-mapview-3d-ready .map-room::after {
  content: "";
  position: absolute;
  inset: -1px;
  border: 1px solid transparent;
  border-radius: inherit;
  pointer-events: none;
}

#mapView.rd-mapview-3d-ready .map-room:hover,
#mapView.rd-mapview-3d-ready .map-room:focus-visible {
  border-color: rgba(222,196,144,.28) !important;
  background: rgba(225,195,135,.035) !important;
  outline: none !important;
}

#mapView.rd-mapview-3d-ready .map-room.selected {
  border-color: rgba(229,202,148,.68) !important;
  background: rgba(221,184,115,.055) !important;
  box-shadow: inset 0 0 42px rgba(225,190,121,.05),0 0 0 1px rgba(225,198,143,.08),0 16px 45px rgba(0,0,0,.16) !important;
}

#mapView.rd-mapview-3d-ready .map-room.selected::after {
  border-color: rgba(222,191,130,.52);
  animation: rd3-zone-confirm .72s ease both;
}

@keyframes rd3-zone-confirm {
  0% { transform: scale(.96); opacity: 0; }
  48% { opacity: 1; }
  100% { transform: scale(1); opacity: .48; }
}

#mapView.rd-mapview-3d-ready .map-room.rd-command-running {
  border-color: rgba(128,201,210,.62) !important;
  box-shadow: inset 0 0 46px rgba(105,190,202,.08),0 0 24px rgba(105,190,202,.08) !important;
}

#mapView.rd-mapview-3d-ready .map-room.rd-command-failed { border-color: rgba(229,112,103,.72) !important; }

#mapView.rd-mapview-3d-ready .room-label {
  position: absolute !important;
  z-index: 3 !important;
  top: auto !important;
  right: auto !important;
  bottom: 12px !important;
  left: 12px !important;
  min-width: 0 !important;
  max-width: calc(100% - 24px);
  padding: 10px 12px !important;
  border: 1px solid rgba(255,255,255,.10) !important;
  border-radius: 12px !important;
  background: linear-gradient(145deg,rgba(10,11,11,.88),rgba(10,11,11,.63)) !important;
  box-shadow: 0 12px 30px rgba(0,0,0,.25) !important;
  text-align: left;
  backdrop-filter: blur(14px) saturate(.88);
  transform: none !important;
}

#mapView.rd-mapview-3d-ready .room-label strong {
  display: block;
  margin: 0 !important;
  color: #eee7db !important;
  font-size: 14px !important;
  font-weight: 570 !important;
  letter-spacing: -.02em !important;
}

#mapView.rd-mapview-3d-ready .room-label em {
  display: block !important;
  overflow: hidden;
  max-width: 190px;
  margin-top: 5px !important;
  color: #a39c90 !important;
  font-size: 8px !important;
  font-style: normal;
  font-weight: 500;
  white-space: nowrap;
  text-overflow: ellipsis;
}

#mapView.rd-mapview-3d-ready .room-label small,
#mapView.rd-mapview-3d-ready .room-state,
#mapView.rd-mapview-3d-ready .room-stats,
#mapView.rd-mapview-3d-ready .door-gap { display: none !important; }

#mapView.rd-mapview-3d-ready .map-room.rd-vent-needed .room-label {
  border-color: rgba(222,163,95,.34) !important;
}

#mapView.rd-mapview-3d-ready .map-room.rd-vent-needed .room-label em { color: #d7ae75 !important; }

/* Keep the existing local control logic; only refine its visual relationship to the 3D room. */
#mapView.rd-mapview-3d-ready .map-room-control-popover {
  z-index: 44 !important;
  width: min(520px,calc(100% - 36px)) !important;
  padding: 17px !important;
  border-color: rgba(221,190,129,.42) !important;
  border-radius: 19px !important;
  background: linear-gradient(145deg,rgba(12,13,13,.96),rgba(9,10,10,.91)) !important;
  box-shadow: 0 30px 85px rgba(0,0,0,.58),inset 0 1px rgba(255,255,255,.035) !important;
  backdrop-filter: blur(24px) saturate(.86);
}

#mapView.rd-mapview-3d-ready .rd-map-connector { z-index: 42 !important; }

#mapView.rd-mapview-3d-ready .rd-scene-progress {
  z-index: 55 !important;
  right: 23% !important;
  bottom: 17px !important;
  left: 23% !important;
  height: 32px !important;
  border-radius: 999px !important;
  background: rgba(8,9,9,.83) !important;
  backdrop-filter: blur(16px);
}

/* Light & Sound and Style FIT share the same visual home model. */
#mapView.rd-mapview-3d-ready .rx-node-stage {
  background-image:
    linear-gradient(180deg,rgba(7,8,8,.28),rgba(7,8,8,.58)),
    url('./assets/round_mapview_3d.webp') !important;
  background-position: center !important;
  background-size: cover !important;
}

#mapView.rd-mapview-3d-ready .rx-node-stage::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 52%,transparent 38%,rgba(5,6,6,.56));
  pointer-events: none;
}

#mapView.rd-mapview-3d-ready .rx-zone {
  z-index: 2;
  background: rgba(10,11,11,.13);
  backdrop-filter: blur(2px);
}

#mapView.rd-mapview-3d-ready .rx-node { z-index: 5; }

@media (max-width: 1240px),(max-height: 720px) {
  #mapView.rd-mapview-3d-ready .map-heading { top: 14px !important; left: 16px !important; width: 300px; padding: 11px 14px !important; }
  #mapView.rd-mapview-3d-ready .map-heading h1 { font-size: 23px !important; }
  #mapView.rd-mapview-3d-ready .map-heading p { display: none; }
  #mapView.rd-mapview-3d-ready .rx-map-launchers.rd-map-tools { top: 14px !important; right: 16px !important; width: min(530px,50vw) !important; }
  #mapView.rd-mapview-3d-ready .rx-map-launchers.rd-map-tools button { height: 44px !important; min-height: 44px !important; }
  #mapView.rd-mapview-3d-ready .room-label { bottom: 8px !important; left: 8px !important; padding: 8px 10px !important; }
  #mapView.rd-mapview-3d-ready .room-label strong { font-size: 12px !important; }
  #mapView.rd-mapview-3d-ready .room-label em { font-size: 7px !important; }
  #mapView.rd-mapview-3d-ready .rd-twin-live-status { right: 17px; bottom: 17px; }
}

@media (prefers-reduced-motion: reduce) {
  #mapView.rd-mapview-3d-ready .rd-twin-render,
  #mapView.rd-mapview-3d-ready .map-room,
  #mapView.rd-mapview-3d-ready .map-room.selected::after { transition: none !important; animation: none !important; }
}
