/* ============================================================================
   AJUSTE · red de seguridad para que la web quepa en CUALQUIER pantalla
   ----------------------------------------------------------------------------
   No cambia el diseño: solo evita que algo se salga a lo ancho (que es lo que
   provoca el scroll horizontal y el «zoom raro» en los móviles). Va después de
   tema.css en todas las páginas.
   ============================================================================ */

/* 1. Nada puede ser más ancho que la pantalla. El scroll horizontal se corta en
      <html>, no en <body>: si se pone en el body, el body pasa a ser el
      contenedor de scroll y deja de dispararse el IntersectionObserver
      (lección del 3D de la portada). */
html { overflow-x: hidden; }
body { min-width: 0; }

/* 2. Medios y lienzos: nunca más anchos que su hueco */
img, svg, video, canvas, iframe { max-width: 100%; }
img, video { height: auto; }

/* 3. Palabras y enlaces largos (URLs de los legales, correos, códigos) parten
      línea en vez de estirar la caja */
p, li, td, th, h1, h2, h3, h4, blockquote, summary, label, .piedra { overflow-wrap: break-word; }
a { overflow-wrap: anywhere; }

/* 4. Barras de navegación: si los enlaces no caben en una línea, la barra crece
      hacia abajo en vez de desbordarse por la derecha */
nav .cont { flex-wrap: wrap; min-height: 56px; height: auto !important; row-gap: 4px; }
nav .enlaces { flex-wrap: wrap; justify-content: flex-end; row-gap: 4px; }

/* 5. Tablas anchas (panel): el scroll va DENTRO de su envoltorio, no en la
      página entera */
.envoltorio { overflow-x: auto; max-width: 100%; width: 100%; min-width: 0;
  -webkit-overflow-scrolling: touch; }
.envoltorio > table { min-width: 520px; }
/* los contenedores en rejilla/flex necesitan min-width:0 o sus hijos anchos los
   estiran (es lo que hacía desbordar la tabla del panel en el móvil) */
.cont, .tarjeta, main, section { min-width: 0; }

/* 6. Formularios: los campos se adaptan al ancho disponible. Los <select> y el
      selector de fichero tienen un ancho intrínseco grande (el del texto de sus
      opciones) y eran los que se salían de la pantalla en el panel. */
input, select, textarea, button { max-width: 100%; }
input, select { min-width: 0; }
select { width: auto; max-width: min(100%, 320px); }
input[type="file"] { max-width: 100%; font-size: .8rem; }
/* las etiquetas del panel llevan el campo debajo: que no las estire */
label { max-width: 100%; }

/* 7. Rejillas de tarjetas: una sola columna cuando no caben dos */
@media (max-width: 560px) {
  .kpis { grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); }
  .pasos { grid-template-columns: 1fr; }
}

/* 8. Pantallas MUY estrechas (320 px): se aprieta el margen lateral para ganar
      espacio útil */
@media (max-width: 380px) {
  .cont { padding-left: 14px; padding-right: 14px; }
}

/* 9. Pantallas muy anchas: el contenido no se estira sin fin ni se queda
      minúsculo en el centro */
@media (min-width: 1700px) {
  .cont { max-width: 1320px; }
}

/* 10. La barra de desplazamiento del navegador se oculta: en su lugar está la
       COLUMNA DE NÉBULA rosa del margen derecho (muelle.js), que además marca
       por dónde vas. Solo en escritorio: en el móvil ya no se ve barra y el
       dedo manda. El scroll sigue funcionando igual (rueda, teclado, dedo). */
/* el umbral de 900 px es el mismo que usa muelle.js para dibujarse: así el hueco
   de la derecha existe solo cuando la columna está de verdad ahí */
@media (hover: hover) and (pointer: fine) and (min-width: 901px) {
  html { scrollbar-width: none; -ms-overflow-style: none; }
  html::-webkit-scrollbar, body::-webkit-scrollbar { width: 0; height: 0; display: none; }
  body { padding-right: 74px; }
}
/* los elementos fijos a pantalla completa no deben heredar ese hueco */
#visor, #mLogin, #edad, #aviso, .lienzoRetrato, #muelle { margin-right: 0; }
