/**
 * Supported desktop envelope and no-script first-paint floor.
 * The shell is never released to auto height because its stage consumes
 * leftover height; below the envelope the definite box is floored instead.
 */

html[data-lobby-envelope="below"] {
  height: auto;
  min-height: 100%;
  overflow-y: auto;
  overflow-x: hidden;
}

html[data-lobby-envelope="below"] body {
  height: auto;
  min-height: max(100vh, 560px);
  overflow: visible;
}

html[data-lobby-envelope="below"] .lobby-topbar {
  position: sticky;
  top: 0;
  z-index: 40;
}

html:not([data-lobby-mode-density]) .lobby-body {
  grid-template-areas: none;
}

@media (max-width: 959px), (max-height: 559px) {
  html:not([data-lobby-mode-density]) {
    height: auto;
    min-height: 100%;
    overflow-y: auto;
    overflow-x: hidden;
  }

  html:not([data-lobby-mode-density]) body {
    height: auto;
    min-height: max(100vh, 560px);
    overflow: visible;
  }

  html:not([data-lobby-mode-density]) .lobby-topbar {
    position: sticky;
    top: 0;
    z-index: 40;
  }
}

/* The fork's narrow fallback becomes a real vertical document below the
   desktop envelope. Explicit auto rows keep the flex-owned first row from
   collapsing to zero, while the center retains a definite stage footprint. */
@media (max-width: 900px) {
  html[data-lobby-envelope="below"] .lobby-body,
  html:not([data-lobby-mode-density]) .lobby-body {
    flex: 0 0 auto;
    grid-template-rows: auto;
    align-items: start;
    row-gap: 16px;
    min-height: 0;
    overflow: visible;
  }

  html[data-lobby-envelope="below"] .lobby-body > .lobby-left,
  html[data-lobby-envelope="below"] .lobby-body > .lobby-right,
  html:not([data-lobby-mode-density]) .lobby-body > .lobby-left,
  html:not([data-lobby-mode-density]) .lobby-body > .lobby-right {
    height: auto;
    max-height: none;
    overflow: visible;
  }

  html[data-lobby-envelope="below"] .lobby-body > .lobby-center,
  html:not([data-lobby-mode-density]) .lobby-body > .lobby-center {
    min-height: 520px;
    overflow: visible;
  }

  html[data-lobby-envelope="below"] .lobby-center .hero-preview,
  html:not([data-lobby-mode-density]) .lobby-center .hero-preview {
    min-height: 360px !important;
  }

  html[data-lobby-envelope="below"] .legal-rail,
  html:not([data-lobby-mode-density]) .legal-rail {
    grid-row: auto;
  }
}

/* Keep Return-to-Lobby masked until the live restore path selects its surface. */
html.postmatch-transition-pending body[data-lobby-shell="desktop"] {
  overflow: hidden;
}

html.postmatch-transition-pending body[data-lobby-shell="desktop"] > .lobby-topbar,
html.postmatch-transition-pending body[data-lobby-shell="desktop"] > .lobby-body {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
