/* Survivor One v0.3.23 — responsive scroll/gesture presentation hardening only.
   Mobile installed PWA behaves like an app: no pinch zoom and no rubber-band
   movement on screens that have no meaningful overflow. Browser/desktop keeps
   ordinary browser zoom and long-page scrolling. */

/* Installed-mode root only. Keep both pan axes available for score strips and
   ordinary vertical scrolling while excluding pinch-zoom from touch-action. */
html.v0323-installed,
html.v0323-installed body,
html.v0323-installed #app{
  touch-action:pan-x pan-y!important;
  overscroll-behavior-y:none!important
}

html.v0323-installed body,
html.v0323-installed #app,
html.v0323-installed .shell{
  min-height:100dvh
}

/* A page that genuinely fits the installed viewport should not rubber-band or
   expose a moving scroll indicator. Long pages keep normal vertical scrolling. */
html.v0323-installed.v0323-static-page,
html.v0323-installed.v0323-static-page body{
  height:100dvh!important;
  min-height:100dvh!important;
  overflow-y:hidden!important;
  overscroll-behavior:none!important
}

/* Full-screen panels (Control Room, Profile, settings, etc.) are measured after
   their final additive UI settles. Only panels with real overflow can scroll. */
.panel-view.v0323-static{
  overflow-y:hidden!important;
  overscroll-behavior:none!important
}
.panel-view.v0323-scrollable{
  overflow-y:auto!important;
  overscroll-behavior-y:contain!important
}

/* Keep desktop/web behavior native. These declarations intentionally do not
   disable browser zoom or replace desktop scrolling. */
@media(min-width:800px){
  html:not(.v0323-installed),html:not(.v0323-installed) body{
    overscroll-behavior-y:auto
  }
}
