/* ══════════════════════════════════════════════════════════════════════════
   css/campos-de-texto.css — QUE ESCRIBIR NO HAGA ZOOM         (F22_06)
   ──────────────────────────────────────────────────────────────────────────
   EL PROBLEMA, QUE ES DE PLATAFORMA Y NO DE DISEÑO

   Safari en iOS —y por tanto también el `WKWebView` del envoltorio Capacitor,
   que es el mismo motor— AMPLÍA la página entera al enfocar un campo de texto
   cuyo tamaño de letra calculado sea **menor que 16 px**. No es configurable,
   no depende de la app y no hay evento que lo cancele: es una decisión de
   accesibilidad del sistema, tomada para que nadie tenga que escribir en
   letra de 12 px.

   El efecto que ve el usuario es el que describe el dueño: toca el campo de
   comentar y **la pantalla salta**. Y al salir del campo no siempre vuelve, así
   que la interfaz se queda descolocada.

   ──────────────────────────────────────────────────────────────────────────
   ⚠️ LO QUE **NO** SE HACE, Y POR QUÉ

   La receta que circula por internet es poner `maximum-scale=1` o
   `user-scalable=no` en el `<meta name="viewport">`. **Está descartado a
   propósito y no hay que volver a intentarlo:**

     · Impide a CUALQUIERA ampliar la página con los dedos, no sólo al
       escribir. Para una persona con baja visión eso convierte la aplicación
       en inusable.
     · Es un criterio de accesibilidad incumplido (WCAG 2.1 · 1.4.4 «Resize
       text»), y Apple lo mira en revisión.
     · `index.html` ya lo dice en un comentario junto al `<meta>`: «NO se
       restringe el zoom a propósito». Esta hoja existe para no tener que
       romper esa decisión.

   Tampoco se recurre a `transform: scale()` sobre el campo —que descoloca el
   cursor y el área de toque— ni a agrandar los campos en todas partes: en un
   ratón no hay problema que resolver y el diseño de escritorio está afinado a
   13-14 px.

   ──────────────────────────────────────────────────────────────────────────
   LO QUE SE HACE: 16 px DONDE OCURRE, Y SÓLO AHÍ

   `@media (pointer: coarse)` describe exactamente los dispositivos en los que
   el fallo existe: aquellos cuyo puntero principal es un dedo. En un
   ordenador con ratón la regla no llega a aplicarse y el diseño queda
   idéntico.

   ⚠️ POR QUÉ LLEVA `!important`, Y ES LA EXCEPCIÓN QUE CONFIRMA LA REGLA

   Porque tiene que ganar a los estilos EN LÍNEA, y no hay otra forma: el
   marcado de la aplicación lleva `style="font-size:13px"` en varios campos, y
   `appPrompt()` (features/feed/feed-core.js) construye su `<input>` con el
   tamaño dentro del atributo `style`. Un estilo en línea gana a cualquier
   selector, por específico que sea.

   Y el `!important` aquí no es una guerra de especificidad con el diseño: es
   un MÍNIMO DE PLATAFORMA. No hay ningún caso legítimo en el que un campo de
   texto deba medir menos de 16 px en un móvil, así que no hay nada a lo que
   esta regla pueda estar pisándole el diseño. Se aplica sólo a la propiedad
   `font-size` y sólo con puntero grueso.

   ⚠️ Y ES UN MÍNIMO, NO UNA IMPOSICIÓN. Los campos que ya miden 16 px o más
   —`.ob-input` del onboarding, por ejemplo— no cambian: se les asigna el mismo
   valor que ya tenían. Los que crezcan lo hacen dentro de su relleno; ningún
   campo de esta aplicación tiene la altura fijada en píxeles (censado), así
   que la caja se adapta sola y no hay nada que se desborde.

   Custodiado por `tests/verificar-zoom-de-campos.js`.
   ══════════════════════════════════════════════════════════════════════════ */

@media (pointer: coarse) {

  /* Los controles que ABREN TECLADO. Se excluyen uno a uno los `type` que no
     lo hacen: en ésos el tamaño de letra es puramente decorativo (o no se ve
     siquiera) y forzarlo movería la casilla de un interruptor. */
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="image"]),
  textarea,
  select,
  [contenteditable="true"],
  [contenteditable=""] {
    font-size: 16px !important;
  }

}
