/* Ajuste móvil universal: mismo aspecto en iPhone y en Android (Samsung, Xiaomi, Motorola…, cualquier tamaño de pantalla). */
html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;-webkit-tap-highlight-color:transparent}
html,body{max-width:100%;overflow-x:clip}
body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
img,video,canvas{max-width:100%}
button,[type=button],[type=submit],[type=reset],a.btn{-webkit-appearance:none;appearance:none;touch-action:manipulation}
button,input,select,textarea{font-family:inherit}
@media(max-width:860px){textarea,pre,code{overflow-wrap:anywhere}table{max-width:100%}}

/* ---- iPhone (todos los modelos: SE, mini, normal, Plus, Pro Max, con notch o Dynamic Island) ---- */
html{min-height:100%;-webkit-touch-callout:none}
body{min-height:100vh;min-height:100dvh;-webkit-overflow-scrolling:touch}
a,button,[role=button],label,summary{-webkit-touch-callout:none}
/* En horizontal, el contenido no queda tapado por el notch ni por la isla */
@supports (padding:max(0px)){
  body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
}
/* iOS hace zoom automático al tocar un campo con letra menor de 16px: se evita sin bloquear el zoom manual */
@supports (-webkit-touch-callout:none){
  input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]),select,textarea{font-size:16px!important}
}
/* Pantalla instalada (icono en el inicio): sin rebote que muestre el fondo detrás de la barra de estado */
@media all and (display-mode:standalone){
  html,body{overscroll-behavior-y:none}
  body{padding-top:env(safe-area-inset-top)}
}
/* Elementos fijos abajo no quedan bajo la barra de inicio del iPhone */
.sticky-bottom,.bottom-bar,.mobile-nav,.tabbar{padding-bottom:max(env(safe-area-inset-bottom),0px)}
