/* v33 hidden elevator and fullscreen scroll polish. */
.elevator-toggle {
  position: relative;
}

.elevator-card {
  display: flex !important;
  position: fixed;
  right: max(10px, env(safe-area-inset-right));
  bottom: calc(86px + env(safe-area-inset-bottom));
  z-index: 26;
  width: min(330px, calc(100vw - 20px));
  max-height: min(58vh, 470px);
  flex-direction: column;
  overflow: auto;
  opacity: 0;
  pointer-events: none;
  transform: translateY(calc(100% + 92px)) scale(0.98);
  transform-origin: right bottom;
  transition:
    opacity 0.18s ease,
    transform 0.18s ease;
  border-color: rgba(242, 184, 75, 0.42);
  box-shadow:
    0 22px 54px rgba(0, 0, 0, 0.48),
    inset 0 1px 0 rgba(255, 255, 255, 0.12);
}

body.elevator-open .elevator-card {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0) scale(1);
}

body.elevator-open .elevator-toggle {
  color: #101923;
  background: linear-gradient(135deg, #f2b84b, #64c4b0);
}

.elevator-card .section-head {
  margin-bottom: 8px;
}

.elevator-card .passenger-box {
  min-height: 52px;
}

.elevator-card .floor-jump {
  grid-template-columns: repeat(auto-fit, minmax(38px, 1fr));
}

.lobby-queue.empty {
  min-height: 0;
  padding: 0;
  pointer-events: none;
}

body.fullscreen-active {
  overflow-y: auto;
  overscroll-behavior-y: contain;
}

body.fullscreen-active .app {
  height: auto;
  min-height: 100dvh;
  padding-bottom: calc(104px + env(safe-area-inset-bottom));
  overflow: visible;
}

body.fullscreen-active .layout,
body.fullscreen-active .side-panel {
  min-height: 0;
  overflow: visible;
}

body.fullscreen-active .modal {
  max-height: calc(100dvh - 24px);
}

body.fullscreen-active .build-grid {
  padding-bottom: calc(28px + env(safe-area-inset-bottom));
}

@media (max-width: 920px) {
  body.fullscreen-active .layout {
    gap: 10px;
    padding-bottom: calc(24px + env(safe-area-inset-bottom));
  }

  body.fullscreen-active .stage-panel {
    height: auto;
    min-height: 0;
    overflow: visible;
  }

  body.fullscreen-active .kingdom-scroll {
    position: relative;
    inset: auto;
    overflow: visible;
    touch-action: pan-y;
    padding-bottom: 16px;
  }

  body.fullscreen-active .kingdom {
    min-height: 0;
  }

  body.fullscreen-active .floor-detail-card {
    scroll-margin-bottom: 132px;
  }

  body.fullscreen-active .floor-detail .detail-actions {
    position: relative;
    z-index: 2;
  }
}

@media (max-width: 620px) {
  .elevator-card {
    left: 10px;
    right: 10px;
    bottom: calc(78px + env(safe-area-inset-bottom));
    width: auto;
    max-height: min(54vh, 440px);
    padding: 10px;
  }

  .elevator-card .passenger-copy span {
    display: none;
  }

  .elevator-controls {
    grid-template-columns: 44px 1fr 44px;
    gap: 6px;
  }

  .floor-jump {
    gap: 5px;
  }

  body.fullscreen-active .resources {
    padding-bottom: calc(12px + env(safe-area-inset-bottom));
  }
}
