/* Associação Clube v33.3.55 — Mobile App Scroll Definitive Fix
   Libera o scroll vertical no portal público, membro, admin da associação e portal admin.
   Mantém o bloqueio somente enquanto um menu/overlay real estiver aberto. */
:root{
  --v3355-safe-bottom:env(safe-area-inset-bottom,0px);
  --v3355-bottom-space:calc(92px + var(--v3355-safe-bottom));
}

@media (max-width:900px){
  html{
    width:100%!important;
    max-width:100%!important;
    min-height:100%!important;
    height:auto!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior-y:auto!important;
    -webkit-overflow-scrolling:touch;
  }

  body{
    width:100%!important;
    max-width:100%!important;
    min-height:100dvh!important;
    height:auto!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior-y:auto!important;
    touch-action:pan-x pan-y!important;
    -webkit-overflow-scrolling:touch;
    position:relative!important;
  }

  /* Containers principais nunca podem virar um viewport fixo. */
  body :is(main,.v20-main,.portal-main,.portal-page,.membro-app,.membro-main,.portal-admin-app,.portal-admin-main,.layout-admin,.conteudo-admin){
    height:auto!important;
    max-height:none!important;
    min-height:0!important;
    overflow-y:visible!important;
    overscroll-behavior-y:auto!important;
    touch-action:pan-y!important;
  }

  /* Portal público/PWA: o conteúdo termina acima da navegação fixa. */
  body.v20-body.portal-v235.v33252-public-mobile{
    min-height:100dvh!important;
    height:auto!important;
    overflow-y:auto!important;
    touch-action:pan-y!important;
    padding-bottom:var(--v3355-bottom-space)!important;
  }
  body.v20-body.portal-v235.v33252-public-mobile #conteudo,
  body.v20-body.portal-v235.v33252-public-mobile .v33239-hero,
  body.v20-body.portal-v235.v33252-public-mobile .v33239-section,
  body.v20-body.portal-v235.v33252-public-mobile .v20-footer{
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
    touch-action:pan-y!important;
  }
  body.v20-body.portal-v235.v33252-public-mobile .v20-bottom{
    padding-bottom:calc(5px + var(--v3355-safe-bottom))!important;
  }

  /* Admin da associação. */
  body.v33321-admin-mobile:not(.v33321-menu-open):not(.v33317-assoc-menu-open):not(.v33316-assoc-menu-open):not(.v33311-assoc-menu-open):not(.v33310-assoc-menu-open):not(.v14-menu-open){
    overflow-y:auto!important;
    touch-action:pan-y!important;
  }
  body.v33321-admin-mobile .conteudo-admin{
    height:auto!important;
    max-height:none!important;
    overflow-y:visible!important;
    padding-bottom:calc(92px + var(--v3355-safe-bottom))!important;
  }

  /* Portal admin. */
  body.v33254-portal-admin:not(.admin-menu-open):not(.v33316-portal-menu-open):not(.v33311-portal-menu-open):not(.v33310-portal-menu-open):not(.v33252-portal-menu-open){
    overflow-y:auto!important;
    touch-action:pan-y!important;
  }
  body.v33254-portal-admin :is(.admin-main,.portal-admin-main,.dashboard-content){
    height:auto!important;
    max-height:none!important;
    overflow-y:visible!important;
  }

  /* Área do membro. */
  body:not(.membro-menu-open) .membro-app,
  body:not(.membro-menu-open) .membro-main{
    height:auto!important;
    max-height:none!important;
    overflow-y:visible!important;
    touch-action:pan-y!important;
  }
  body:not(.membro-menu-open){
    overscroll-behavior-y:auto!important;
  }
  .membro-main{padding-bottom:calc(92px + var(--v3355-safe-bottom))!important}

  /* O bloqueio permanece apenas quando um menu realmente está aberto. */
  body.v33322-portal-menu-open,
  body.v20-menu-open,
  body.membro-menu-open,
  body.admin-menu-open,
  body.v33321-menu-open,
  body.v33317-assoc-menu-open,
  body.v33316-assoc-menu-open,
  body.v33316-portal-menu-open,
  body.v33311-assoc-menu-open,
  body.v33311-portal-menu-open,
  body.v33310-assoc-menu-open,
  body.v33310-portal-menu-open,
  body.v33252-portal-menu-open,
  body.v14-menu-open{
    overflow:hidden!important;
    touch-action:none!important;
  }
}
