.room72-tour-shell { position: relative; width: 100%; overflow: hidden; background: #181818; }
.room72-tour-shell *, .room72-admin * { box-sizing: border-box; }
.room72-panorama { width: 100%; height: 100vh; min-height: 480px; color: #fff; }
html.room72-tour-page, body.room72-tour-page {
  width: 100%; height: 100%; min-height: 0 !important;
  margin: 0 !important; padding: 0 !important; overflow: hidden !important;
  overscroll-behavior: none; background: #181818;
}
.room72-tour-shell.is-fullpage {
  position: fixed !important; inset: 0 !important; z-index: 2147483000;
  width: 100% !important; max-width: none !important;
  height: 100vh !important; height: 100dvh !important;
  min-height: 0 !important; margin: 0 !important; padding: 0 !important; border: 0 !important;
}
.room72-tour-shell.is-fullpage .room72-panorama {
  width: 100%; height: 100% !important; min-height: 0 !important;
  margin: 0; padding: 0; border: 0; touch-action: none;
}
.room72-tour-shell .pnlm-zoom-controls { display: none !important; }
.room72-tour-shell .pnlm-panorama-info,
#room72-preview .pnlm-panorama-info,
.room72-tour-shell .pnlm-load-box,
.room72-test-navigation .pnlm-load-box { display: none !important; }
.room72-transition-notice {
  position: absolute; z-index: 5; left: 50%; bottom: calc(112px + env(safe-area-inset-bottom, 0px)); transform: translateX(-50%);
  max-width: min(90%, 480px); margin: 0; padding: 12px 18px; border-radius: 8px;
  background: rgba(15, 23, 32, .92); color: #fff; font: 14px/1.5 Arial, sans-serif; text-align: center;
}
.room72-tour-shell [hidden] { display: none !important; }
.room72-notice { padding: 32px; background: #181818; color: #fff; text-align: center; }
.room72-panel {
  position: absolute; z-index: 10; top: 0; right: 0; width: min(420px, 92%);
  height: 100%; padding: 88px 32px 32px; overflow-y: auto; color: #111;
  background: rgba(255, 255, 255, .98); box-shadow: -18px 0 45px rgba(0, 0, 0, .28);
}
.room72-panel h2 { margin-top: 0; color: #111; }
.room72-close-panel {
  position: absolute; top: 20px; right: 20px; width: 46px; height: 46px; padding: 0;
  border: 0; border-radius: 50%; font-size: 30px; line-height: 1; cursor: pointer;
  background: #181818; color: white;
}
.room72-marker {
  width: 42px; height: 42px; border: 2px solid #fff; border-radius: 50%;
  color: #fff; background: rgba(15, 23, 32, .82); box-shadow: 0 0 0 6px rgba(255, 255, 255, .22);
  cursor: pointer; display: flex; align-items: center; justify-content: center;
}
.room72-marker:hover, .room72-marker:focus-visible { background: #b45309; outline: 3px solid #fbbf24; outline-offset: 4px; }
.room72-marker-icon { display: block; font: 26px/1 Arial, sans-serif; pointer-events: none; }
.room72-marker-label {
  position: absolute; top: calc(100% + 10px); left: 50%; transform: translateX(-50%);
  display: block; width: max-content; max-width: min(180px, 45vw);
  padding: 6px 10px; border-radius: 6px; color: #fff; background: rgba(15, 23, 32, .86);
  font: 600 13px/1.35 Arial, sans-serif; text-align: center; white-space: normal;
  overflow-wrap: anywhere; pointer-events: none; text-shadow: 0 1px 2px #000;
}
.room72-tour-shell .pnlm-tooltip span { font-family: inherit; }
.room72-tour-actions {
  --r72-available-width: calc(100% - var(--r72-alignment-offset, 12px) * 2 - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px));
  --r72-available-height: calc(100% - var(--r72-bottom, 20px) * 2 - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px));
  position: absolute; z-index: 8; left: 50%; bottom: calc(var(--r72-bottom, 20px) + env(safe-area-inset-bottom, 0px));
  transform: translateX(-50%); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: min(var(--r72-gap, 6px), 4vw); width: min(var(--r72-dock-width, 380px), var(--r72-available-width)); padding: min(var(--r72-bar-padding, 8px), 4vw);
  height: var(--r72-dock-height, auto); max-height: var(--r72-available-height); overflow: auto;
  border: var(--r72-border-width, 1px) solid var(--r72-border, rgba(255,255,255,.25)); border-radius: var(--r72-bar-radius, 18px);
  background: var(--r72-bar-bg, rgba(15,23,32,.92)); box-shadow: var(--r72-shadow, 0 8px 30px rgba(0,0,0,.3));
  touch-action: manipulation;
}
.room72-tour-actions[data-edge="top"] { top: calc(var(--r72-bottom, 20px) + env(safe-area-inset-top, 0px)); bottom: auto; }
.room72-tour-actions:is([data-edge="top"], [data-edge="bottom"])[data-align="start"] {
  left: calc(var(--r72-alignment-offset, 12px) + env(safe-area-inset-left, 0px)); right: auto; transform: none;
}
.room72-tour-actions:is([data-edge="top"], [data-edge="bottom"])[data-align="end"] {
  right: calc(var(--r72-alignment-offset, 12px) + env(safe-area-inset-right, 0px)); left: auto; transform: none;
}
.room72-tour-actions:is([data-edge="left"], [data-edge="right"]) {
  --r72-available-width: calc(100% - var(--r72-bottom, 20px) * 2 - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px));
  --r72-available-height: calc(100% - var(--r72-alignment-offset, 12px) * 2 - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px));
  grid-template-columns: minmax(0, 1fr); grid-auto-rows: max-content;
  top: 50%; bottom: auto; left: calc(var(--r72-bottom, 20px) + env(safe-area-inset-left, 0px)); right: auto;
  transform: translateY(-50%); touch-action: pan-y;
}
.room72-tour-actions[data-edge="right"] { left: auto; right: calc(var(--r72-bottom, 20px) + env(safe-area-inset-right, 0px)); }
.room72-tour-actions:is([data-edge="left"], [data-edge="right"])[data-align="start"] {
  top: calc(var(--r72-alignment-offset, 12px) + env(safe-area-inset-top, 0px)); bottom: auto; transform: none;
}
.room72-tour-actions:is([data-edge="left"], [data-edge="right"])[data-align="end"] {
  bottom: calc(var(--r72-alignment-offset, 12px) + env(safe-area-inset-bottom, 0px)); top: auto; transform: none;
}
.room72-tour-actions .room72-tour-action {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--r72-icon-gap, 6px);
  min-width: 0; min-height: var(--r72-button-height, 60px); margin: 0; padding: 9px 4px; border: 0; border-radius: var(--r72-button-radius, 11px);
  background: var(--r72-button-bg, transparent); color: var(--r72-text-color, #fff); text-decoration: none; text-transform: none;
  font: 600 var(--r72-text-size, 12px)/1.2 Arial, sans-serif; letter-spacing: 0; cursor: pointer; box-shadow: none;
}
.room72-tour-action svg, .room72-tour-action img {
  display: block; width: var(--r72-icon-size, 23px); height: var(--r72-icon-size, 23px); max-width: 100%;
  flex-shrink: 0; object-fit: contain; pointer-events: none; color: var(--r72-icon-color, #fff);
}
.room72-action-label { max-width: 100%; overflow-wrap: anywhere; }
.room72-hide-action-labels .room72-action-label { display: none; }
.room72-tour-actions .room72-tour-action:hover { background: var(--r72-hover-bg, rgba(255,255,255,.14)); color: var(--r72-text-color, #fff); }
.room72-tour-actions .room72-tour-action:focus-visible { outline: 2px solid #fbbf24; outline-offset: 1px; }
.room72-tour-actions .room72-tour-action:disabled { opacity: .45; cursor: default; background: var(--r72-button-bg, transparent); }
.room72-action-notice {
  position: absolute; z-index: 9; top: 20%; left: 50%; transform: translateX(-50%);
  width: min(420px, calc(100% - 32px)); margin: 0; padding: 12px;
  border-radius: 8px; background: #18212b; color: #fff; font: 14px/1.4 Arial, sans-serif; text-align: center;
}
/* Elementor dialogs are outside the full-page tour shell. */
body.room72-tour-page .elementor-popup-modal { z-index: 2147483100 !important; }
@media (max-width: 767px) {
  .room72-panorama { height: 100svh; min-height: 360px; }
  .room72-panel { padding: 80px 24px 24px; }
}
