.v2-shell {
  --v2-left-rail-w: var(--v2-rail-w);
  --v2-left-sidebar-offset: calc(var(--v2-rail-inset) + var(--v2-left-rail-w) + var(--v2-rail-gap));
  min-height: 100dvh;
  width: 100%;
  max-width: 100%;
  overflow-x: clip;
  padding: var(--v2-rail-inset);
  padding-left: var(--v2-left-sidebar-offset);
  padding-right: var(--v2-rail-inset);
  box-sizing: border-box;
  transition:
    padding-left var(--v2-rail-motion-duration) var(--v2-rail-motion-ease),
    padding-right var(--v2-rail-motion-duration) var(--v2-rail-motion-ease);
}

.v2-shell:has(.v2-rail--left.is-collapsed) {
  --v2-left-rail-w: var(--v2-rail-w-collapsed);
}

.v2-shell:has(#resources-rail:not(.hidden)) {
  padding-right: calc(var(--v2-rail-inset) + var(--v2-rail-w) + var(--v2-rail-gap));
}

.v2-shell:has(#resources-rail.hidden) {
  padding-right: var(--v2-rail-inset);
}

.v2-main {
  position: relative;
  z-index: 1;
  min-width: 0;
  width: 100%;
  max-width: 100%;
  height: calc(100dvh - 2 * var(--v2-rail-inset));
  min-height: calc(100dvh - 2 * var(--v2-rail-inset));
  overflow-x: clip;
}

/* Center column — shared horizontal bounds for map, kicker, and prompt frame */
.v2-main > whatimado-map,
.v2-main > whatimado-frame,
.v2-main > .v2-frame-kicker {
  left: 0;
  right: 0;
}

.v2-section-label {
  margin: 0 0 0.75rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: var(--v2-yellow);
}

