/* SIOV360 1.0.42-PILOT · Corrección transversal móvil: scroll horizontal + zoom accesible
   Alcance: geometría/gestos de frontend únicamente. No modifica datos, AWS, permisos ni lógica funcional.

   Motivo:
   - V21.269/V21.305 mueve el scroll horizontal de las tablas a una barra superior y aplica
     .siov-hscroll-moved-top { overflow-x:hidden!important; }. En móvil esto impide arrastrar
     directamente la tabla con el dedo y deja como único control una barra superior muy pequeña.
   - El workspace persistente también fuerza overflow-x:hidden.

   Regla 1.0.42:
   - En teléfonos/tablets estrechos, la tabla vuelve a ser desplazable horizontalmente desde
     cualquier punto de su propio contenedor.
   - La barra superior legacy se oculta solo en esos viewports para evitar dos controles de scroll.
   - #siovWorkspace conserva scroll horizontal como red de seguridad para pantallas legacy que
     tengan contenido ancho fuera de un wrapper de tabla.
   - Se habilitan pan horizontal/vertical y pinch-zoom sin fijar anchos a un modelo de celular. */

@media (max-width:900px){
  /* Fallback transversal: si una pantalla legacy desborda fuera de un wrapper específico,
     el workspace puede recorrerse lateralmente en vez de recortar el contenido. */
  #siovWorkspace{
    overflow-x:auto!important;
    overflow-y:auto!important;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-x:contain;
    touch-action:pan-x pan-y pinch-zoom!important;
  }

  /* Hosts detectados transversalmente por JS, más wrappers conocidos que pueden existir
     antes de que el observador los marque. */
  .siov-responsive-xscroll,
  .table-responsive,
  .gd-table-wrap,
  .otm-table-wrap,
  .bkl-table-scroll,
  .tc-table-wrap,
  .log-table-wrap,
  .roster-wrap,
  .weekly-table-wrap,
  .sso-table-wrap,
  .finance-table-wrap,
  .siov-attachment-table-wrap,
  .alert-inc-table-wrap,
  .owner-org-table-wrap,
  .table-wrap,
  .table-container,
  .ms230-scroll,
  .siov-dd-table-wrap{
    box-sizing:border-box!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    overflow-x:auto!important;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-x:contain;
    touch-action:pan-x pan-y pinch-zoom!important;
    scrollbar-gutter:stable;
  }

  /* V21.270 oculta el scroll nativo del host después de crear la barra superior.
     En móvil se revierte únicamente ese ocultamiento, manteniendo intacto escritorio. */
  .siov-hscroll-moved-top,
  .siov-hscroll-moved-top.siov-responsive-xscroll{
    overflow-x:auto!important;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-x pan-y pinch-zoom!important;
  }

  /* En móvil el usuario desplaza directamente la tabla con el dedo. La barra superior
     legacy deja de ser necesaria y además ocupa un objetivo táctil demasiado pequeño. */
  .siov-top-hscroll{
    display:none!important;
  }

  /* Una tabla ancha no debe ser encogida por max-width heredados: el ancho real de sus
     columnas define el scroll dentro del host. No se impone un min-width global. */
  .siov-responsive-xscroll > table,
  .siov-responsive-xscroll table{
    max-width:none!important;
  }

  /* Contenedores operativos: nunca deben crecer por min-width heredados del propio panel.
     Las tablas internas conservan su ancho y se desplazan dentro de su wrapper. */
  #siovWorkspace > [id$="Screen"],
  #siovWorkspace > [id$="Screen"] > *,
  #siovWorkspace > [id$="Screen"] section,
  #siovWorkspace > [id$="Screen"] form{
    box-sizing:border-box!important;
    min-width:0!important;
  }
}

/* En pantallas táctiles algo más anchas (tablets) no bloqueamos pinch-zoom en hosts de tabla. */
@media (pointer:coarse){
  .siov-responsive-xscroll{
    touch-action:pan-x pan-y pinch-zoom!important;
  }
}
