/* iOS standalone viewport-fit=cover can report a shortened dynamic viewport.
   Use the full viewport for both the containing block and its screens.
   Avoid fixed-position clipping and keep safe-area padding inside each screen.
   WebKit: https://bugs.webkit.org/show_bug.cgi?id=254868 */
@supports (-webkit-touch-callout: none) {
  html[data-visitor-page] { min-height:100vh; }
  html[data-visitor-page] body { min-height:100vh; }

  html[data-visitor-page="app"],
  html[data-visitor-page="app"] body { height:100vh; min-height:100vh; }
  html[data-visitor-page="app"] body { position:relative; background:transparent; }
  html[data-visitor-page="app"] .screen {
    position:absolute;
    top:0; left:0; right:0; bottom:auto;
    height:100vh;
  }

  /* Public pages keep their natural document scrolling, including at login. */
  html[data-visitor-page="public"],
  html[data-visitor-page="public"] body { height:auto; min-height:100vh; }
}

/* Installed iOS: do not depend on vh/dvh or innerHeight, which can exclude
   the status-area height even though the page starts behind that area. */
html.visitor-ios-installed { min-height:var(--visitor-screen-height,100vh); }
html.visitor-ios-installed body { min-height:var(--visitor-screen-height,100vh); }
html.visitor-ios-installed[data-visitor-page="app"],
html.visitor-ios-installed[data-visitor-page="app"] body {
  height:var(--visitor-screen-height,100vh);
  min-height:var(--visitor-screen-height,100vh);
  overflow:hidden;
}
html.visitor-ios-installed[data-visitor-page="app"] body {position:relative;background:transparent}
html.visitor-ios-installed[data-visitor-page="app"] .screen {
  position:absolute;top:0;left:0;right:0;bottom:auto;
  height:var(--visitor-screen-height,100vh);
}
html.visitor-ios-installed[data-home-style="modern"] {
  --modern-pitch:min(100px,calc((var(--visitor-screen-height,100vh) - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 170px)/5));
}
