/* Dimensiones estables y áreas seguras para Safari y la aplicación instalada. */
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; touch-action: pan-x pan-y; /* sin zoom por pellizco ni doble toque */ }
/* Sin rebote al llegar arriba/abajo: en Safari iOS el rebote vuelve a desplegar la barra de direcciones y la barra negra fija se despega y se ve bajar. */
html, body { overscroll-behavior-y: none; }
body { min-height: 100vh; min-height: 100dvh; padding-left: env(safe-area-inset-left, 0px); padding-right: env(safe-area-inset-right, 0px); }
main { min-width: 0; }
input, textarea, select, button { font: inherit; }
/* Safari iOS ignora el ancho de los campos de fecha/hora con apariencia nativa: se salen del contenedor y la página se desliza de lado. */
input[type="date"], input[type="time"], input[type="datetime-local"] { -webkit-appearance: none; appearance: none; box-sizing: border-box; min-width: 0; max-width: 100%; }
input[type="date"]::-webkit-date-and-time-value, input[type="time"]::-webkit-date-and-time-value, input[type="datetime-local"]::-webkit-date-and-time-value { text-align: left; min-height: 1.5em; }
button, a, input, select, textarea { touch-action: manipulation; }
@media screen and (max-width: 1023px) {
    body > nav.fixed.top-0 { padding-top: env(safe-area-inset-top, 0px); padding-left: env(safe-area-inset-left, 0px); padding-right: env(safe-area-inset-right, 0px); }
    body > main { padding-top: calc(5rem + env(safe-area-inset-top, 0px)); padding-bottom: calc(7rem + env(safe-area-inset-bottom, 0px)); }
    #mobile-menu-toggle { bottom: calc(1.5rem + env(safe-area-inset-bottom, 0px)); right: calc(1.5rem + env(safe-area-inset-right, 0px)); }
    #mobile-nav { padding-left: env(safe-area-inset-left, 0px); padding-right: env(safe-area-inset-right, 0px); padding-bottom: env(safe-area-inset-bottom, 0px); }
    #mobile-nav > div { max-height: 75vh; max-height: calc(80dvh - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px)); overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; }
    #pwa-install-banner { bottom: calc(6rem + env(safe-area-inset-bottom, 0px)); }
    #cq-toasts { top: calc(5rem + env(safe-area-inset-top, 0px)); }
    /* 16 px evita que Safari amplíe la página al enfocar un campo. */
    body input:not([type="checkbox"]):not([type="radio"]), body select, body textarea, body .select2-search__field { font-size: 16px !important; }
    .select2-container { max-width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    #mobile-nav, #mobile-nav-overlay, #app-loading { transition: none; }
}
