/* V22.3.26 / build 2349 — revisão de rolagem do Web App no Android.
   Objetivo: deixar a página como rolagem vertical principal, preservar listas/modal que
   realmente precisam de rolagem própria e acompanhar a altura real do viewport/teclado. */

html[data-device-family="android"]{
  min-height:100%;
  max-width:100%;
  overflow-x:hidden;
  overscroll-behavior-x:none;
  scroll-padding-top:calc(108px + env(safe-area-inset-top));
}
html[data-device-family="android"] body{
  min-height:100%;
  max-width:100%;
  overflow-x:hidden!important;
  overflow-y:auto;
  overscroll-behavior-y:auto;
}
html[data-device-family="android"] .app-shell{
  min-height:var(--device-safe-vh,100dvh);
  height:auto;
}
html[data-device-family="android"] .main,
html[data-device-family="android"] .view,
html[data-device-family="android"] .view.active-view{
  min-width:0;
  max-width:100%;
}
html[data-device-family="android"] :is(input,select,textarea,button,[tabindex]){
  scroll-margin-top:calc(112px + env(safe-area-inset-top));
  scroll-margin-bottom:28px;
}

/* Altura do viewport visual: acompanha barra do Chrome e teclado virtual. */
html[data-device-family="android"] .sidebar{
  height:var(--device-safe-vh,100dvh)!important;
  max-height:var(--device-safe-vh,100dvh)!important;
}
html[data-device-family="android"] dialog[open]{
  max-height:calc(var(--device-safe-vh,100dvh) - 16px)!important;
}
html[data-device-family="android"] :is(
  .sidebar,
  .sidebar nav,
  dialog[open],
  .user-quick-menu-card,
  #notificationsDialog .notifications-list,
  #notificationsDialog .notifications-list.has-scroll,
  #bhImportDialog .bh-selected-details,
  #bhImportDialog .bh-lookup-results,
  .equipment-search-results,
  .premium-inline-results
){
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-y:contain;
}

/* Trilhos horizontais continuam rolando sem criar largura fantasma na página. */
html[data-device-family="android"] :is(
  .so-tabs,
  .set-mode-tabs,
  .camera-filter-row,
  .tech-filter-row,
  .call-status-legend,
  .admin-pro-tabs,
  .report-presets
){
  max-width:100%;
  overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch;
}

/* Em Android de tela pequena, evitar “scroll dentro do scroll” em blocos de conteúdo.
   Permanecem com scroll próprio apenas drawers, dialogs, notificações, buscas e seletores. */
@media (max-width:900px){
  html[data-device-family="android"] :is(
    .job-workflow-pane,
    .camera-list,
    .tech-list,
    #cameraList,
    .check-equipment-grid,
    .call-equipment-choices,
    #premiumView .premium-timeline,
    #aiBriefingReview .ai-briefing-results
  ){
    max-height:none!important;
    height:auto!important;
    overflow-y:visible!important;
    overscroll-behavior-y:auto!important;
  }

  html[data-device-family="android"] .admin-table-wrap,
  html[data-device-family="android"] .report-table,
  html[data-device-family="android"] .premium-table{
    max-width:100%;
    overflow-x:auto!important;
    overflow-y:visible!important;
    -webkit-overflow-scrolling:touch;
  }

  html[data-device-family="android"] .main{
    min-height:calc(var(--device-safe-vh,100dvh) - 92px);
    padding-bottom:calc(72px + env(safe-area-inset-bottom))!important;
  }
}

/* Android landscape baixo: não deixar a barra superior ou um dialog consumir a tela toda. */
@media (orientation:landscape) and (max-height:560px){
  html[data-device-family="android"] .main{padding-top:88px!important}
  html[data-device-family="android"] dialog[open]{max-height:calc(var(--device-safe-vh,100dvh) - 8px)!important}
}
