/* RepublicaPass V34 — true app shell for a motionless Safari bottom dock */
.rp-mobile-app-shell,.rp-mobile-scroll{display:contents}

@media(max-width:820px){
  html{
    width:100%!important;
    height:100%!important;
    overflow:hidden!important;
    background:#020706!important;
    overscroll-behavior:none!important;
  }
  body.public-body{
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
    background:#020706!important;
    overscroll-behavior:none!important;
  }

  /* Absolute, stable-height shell: unlike position:fixed, it does not follow
     Safari's changing visual viewport. Height is captured once in JS. */
  .rp-mobile-app-shell{
    display:flex!important;
    flex-direction:column!important;
    position:absolute!important;
    left:0!important;
    top:0!important;
    width:100%!important;
    height:var(--rp34-app-height,100svh)!important;
    min-height:var(--rp34-app-height,100svh)!important;
    max-height:var(--rp34-app-height,100svh)!important;
    overflow:hidden!important;
    background:#020706!important;
    z-index:0!important;
  }
  .rp-mobile-scroll{
    display:block!important;
    position:relative!important;
    flex:1 1 auto!important;
    min-height:0!important;
    width:100%!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior-y:contain!important;
    scrollbar-width:none!important;
    padding:0!important;
    margin:0!important;
    background:#020706!important;
  }
  .rp-mobile-scroll::-webkit-scrollbar{display:none!important}

  /* The dock is now a normal flex sibling, not fixed/sticky/absolute. It cannot
     move with browser chrome because it is outside the scrolling element. */
  .rp-mobile-bottom-nav{
    display:grid!important;
    position:relative!important;
    inset:auto!important;
    left:auto!important;
    right:auto!important;
    top:auto!important;
    bottom:auto!important;
    flex:0 0 auto!important;
    width:100%!important;
    height:calc(64px + env(safe-area-inset-bottom))!important;
    min-height:calc(64px + env(safe-area-inset-bottom))!important;
    max-height:calc(64px + env(safe-area-inset-bottom))!important;
    margin:0!important;
    padding:6px 8px calc(6px + env(safe-area-inset-bottom))!important;
    transform:none!important;
    -webkit-transform:none!important;
    translate:none!important;
    animation:none!important;
    transition:none!important;
    will-change:auto!important;
    contain:layout paint!important;
    z-index:30!important;
    background:#020706!important;
    border-top:1px solid rgba(13,242,138,.10)!important;
    box-shadow:0 -10px 30px rgba(0,0,0,.34)!important;
  }
  .rp-mobile-bottom-nav::before,.rp-mobile-bottom-nav::after{animation:none!important;transform:none!important;transition:none!important}
  .rp-mobile-bottom-nav a,
  .rp-mobile-bottom-nav a *,
  .rp-mobile-bottom-nav a::before,
  .rp-mobile-bottom-nav a::after{
    transform:none!important;
    -webkit-transform:none!important;
    animation:none!important;
    transition:none!important;
  }

  /* Old V31-V33 Safari experiments are fully neutralized. */
  html.rp-ios-safari-nav-lock,
  html.rp-ios-safari-nav-lock body.public-body.rp-safari-nav-page{
    position:static!important;
    inset:auto!important;
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    max-height:none!important;
    overflow:hidden!important;
  }

  /* Pages that intentionally hide the dock simply give all shell space to the
     scroll surface. Existing display:none rules remain authoritative. */
  .rp-page-evento .rp-mobile-bottom-nav,
  .rp-page-checkout .rp-mobile-bottom-nav,
  .rp-page-compra .rp-mobile-bottom-nav{display:none!important}
}
