/* ==========================================================================
   legacy_login_contrast.css — capa de contraste de la PAGINA DE LOGIN
   HILO 11 · P0_2 SHARED_LEGACY_SHELL_GLOBAL_PALETTE_CONTRAST
   preprod / Legacy TEST · NO_PRODUCTION

   Corrige los cuatro pares que incumplen WCAG AA en `/auth/login/`, medidos
   en el navegador sobre el DOM servido y las cuatro hojas reales del host:
   `evidencia/medicion_L_A_vivo.txt`.

   Por que existe una capa aparte y no se amplia la v1 o la v2
   --------------------------------------------------------------------
   El login NO carga la cascada de `header.php`. Sus cuatro hojas son
   bootstrap -> font-awesome -> animate -> style, y ahi no estan ni
   `hermes_global.css` ni la v1 ni la v2. Ampliar aquellas no llegaria a esta
   pagina; y enlazarlas aqui traeria el shell oscuro entero a una vista que
   nadie ha aprobado en oscuro. Esta capa toca cuatro reglas y nada mas.

   Cada hex esta DERIVADO, no elegido: `derivar_login.py` imprime la escalera
   completa (reutilizar token desplegado -> mover tinta -> mover fondo) con
   sus ratios y sus dE76. DO_NOT_GUESS_HEX.

   Se carga la ULTIMA. Todas las reglas ganan por orden de carga o por
   especificidad propia; ninguna necesita `!important`.
   ========================================================================== */


/* --------------------------------------------------------------------------
   1. Rotulo `PERITA AJUSTADORES` — era 1.11:1, el peor par de todo el pack.
   --------------------------------------------------------------------------
   Las 18 letras las pinta un script INCRUSTADO en la vista mediante
   `element.style.color`, alternando `white` y `gray`. Eso es estilo en linea:
   solo `!important` lo sobrescribiria, y eso igualaria las dos tintas y
   apagaria la animacion.

   Asi que se mueve el FONDO, y se mueve a un token que YA esta desplegado
   (`--hs-bg` de `hermes_global.css`, verificado por SHA en el GET publico),
   no a un color nuevo. Las dos tintas declaradas pasan a cumplir:

       white  #ffffff sobre #07111f -> 18.94
       gray   #808080 sobre #07111f ->  4.79   (peor caso)

   La animacion queda intacta porque no se toca ninguna tinta.
   dE76 respecto del #f3f3f4 anterior: 91.5 — es un cambio de color grande y
   visible, y por eso queda anotado aqui para la puerta visual humana.
   -------------------------------------------------------------------------- */
.navbar-default.navbar-fixed-top {
  background-color: #07111f;
  border-color: #07111f;
}


/* --------------------------------------------------------------------------
   2. Marcadores de posicion — eran 2.85:1.
   --------------------------------------------------------------------------
   El formulario no tiene ni un solo `<label>`: estos marcadores son la unica
   etiqueta que llevan los dos campos, asi que su contraste no es decorativo.

   `#767676` es el gris MAS CLARO que cumple 4.5:1 sobre blanco, es decir el
   minimo desplazamiento desde `#999999` que satisface AA (dE76 13.6). Se
   descarto `--hermes-tinta-marca` (#1d1d1d), que cumple 16.86 pero dejaria el
   marcador mas oscuro que el valor escrito en el campo (#676a6c) e
   invertiria la jerarquia: un campo vacio pareceria lleno.

   Los pseudoelementos van en reglas SEPARADAS a proposito. Un navegador
   descarta la regla entera si no reconoce uno solo de los selectores de una
   lista separada por comas, asi que agruparlos anularia el arreglo en los
   navegadores que no soportan alguno.
   -------------------------------------------------------------------------- */
.form-control::placeholder { color: #767676; opacity: 1; }
.form-control::-webkit-input-placeholder { color: #767676; }
.form-control::-moz-placeholder { color: #767676; opacity: 1; }
.form-control:-ms-input-placeholder { color: #767676; }


/* --------------------------------------------------------------------------
   3. Boton de entrar — era 2.65:1.
   --------------------------------------------------------------------------
   `#ffffff` sobre el verde de marca `#1ab394`. Se conserva el verde y se
   mueve solo la tinta: coste de marca CERO.

   `#1d1d1d` no es un color nuevo — es `--hermes-tinta-marca`, el mismo token
   con el que la v1 y la v2 ya resuelven este mismo fondo en `/admin/`
   (`etiqueta primary`, `distintivo primary` y `utilidad navy-bg`, 6.36 los
   tres, en `../shell_stack/cascada_final/evidencia/medicion_X_B_con_ultima.txt`).
   Aqui da el mismo 6.36.

   Los estados se repiten porque INSPINIA vuelve a declarar `color:#fff` en
   `:hover`, `:focus` y `:active`; sin estas lineas el arreglo se perderia en
   cuanto el cursor tocara el boton.
   -------------------------------------------------------------------------- */
.btn-primary,
.btn-primary:link,
.btn-primary:visited { color: #1d1d1d; }

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-primary.active,
.btn-primary:active:focus,
.open > .dropdown-toggle.btn-primary { color: #1d1d1d; }


/* --------------------------------------------------------------------------
   4. Desbordamiento horizontal de 15 px — geometria, no color.
   --------------------------------------------------------------------------
   ANADIDO 2026-09-04. Las tres secciones de arriba estan DESPLEGADAS desde el
   2026-09-03T21:25:33Z y no cambian ni un byte: esta seccion se anade al final
   y no toca ninguna de sus reglas. Sus valores de contraste siguen siendo los
   medidos.

   El defecto, medido sobre el host por el coordinador
   (`p0_2_live_login_20260904T1045Z`, HTTP 200 en `/auth/login/`):

       ancho 1440  ->  document.scrollWidth 1455
       ancho 1024  ->  document.scrollWidth 1039
       ancho  390  ->  document.scrollWidth  405     (x=-15 .. right=405)

   Siempre +15, en los tres anchos. Los elementos que desbordan son el `.row`
   de primer nivel y su `.col-lg-12`, los de las lineas 75-84 del HTML servido.

   La causa esta en el marcado, no en el proveedor. Bootstrap 3 declara, en los
   bytes que sirve el host (`bootstrap.min.css` sha `a23ce814…`):

       .row      { margin-right:-15px; margin-left:-15px }
       .col-*-*  { padding-right: 15px; padding-left: 15px }

   Es un par que se cancela: el margen negativo del `.row` recupera el relleno
   de 15 px del `.container` que lo envuelve, y el relleno de la columna lo
   vuelve a poner por dentro. Pero ESE `.row` no esta dentro de ningun
   `.container` — cuelga directo de `<center>`, que cuelga de `<body>`, que
   tiene `margin:0`. Sin contenedor no hay relleno que recuperar, asi que el
   margen negativo no cancela nada: solo saca la fila 15 px por cada lado.

       ancho W  ->  fila de -15 a W+15  ->  scrollWidth = W + 15

   (El `.row` de la linea 88, el del formulario, SI esta dentro de un
   `.container` y por eso no desborda. No se toca.)

   Por que no `overflow-x`
   --------------------------------------------------------------------
   `style.css` de INSPINIA ya declara `body { overflow-x: hidden }`, que se
   propaga al viewport y RECORTA el desbordamiento. O sea que la unica razon de
   que hoy no se vea una barra horizontal es que ya hay un enmascaramiento
   puesto: la geometria lleva rota todo este tiempo por debajo. Anadir mas
   `overflow` taparia la medicion en vez de corregirla, y dejaria el defecto
   esperando a la primera pagina que no herede esa regla. Se corrige la causa.

   Por que este arreglo no mueve un solo pixel
   --------------------------------------------------------------------
   Se retiran las DOS mitades del par, no una. Con `*{box-sizing:border-box}`
   (que Bootstrap declara), la caja de contenido de la columna es la misma
   antes y despues:

       antes:  fila -15..W+15,  columna relleno 15  ->  contenido 0..W
       ahora:  fila   0..W,     columna relleno  0  ->  contenido 0..W

   El `.ibox` que va dentro se pinta exactamente donde se pintaba. Lo unico que
   cambia es que la caja ya no sobresale del viewport. Quitar solo el margen
   habria corregido igual el desbordamiento pero habria metido el `.ibox` 15 px
   por cada lado: seria un cambio de maqueta, y la maqueta esta aprobada.

   Degradacion segura: si algun dia la vista cambia la clase de la columna, la
   primera regla sigue cerrando el desbordamiento por si sola; solo se perderia
   la neutralidad de pixel, que es cosmetica.

   Sin `!important`, como el resto de la hoja: `body > center > .row` es (0,1,2)
   frente al (0,1,0) de `.row`, y gana por especificidad propia.
   -------------------------------------------------------------------------- */
body > center > .row,
body > .row {
  margin-right: 0;
  margin-left: 0;
}

body > center > .row > .col-lg-12,
body > .row > .col-lg-12 {
  padding-right: 0;
  padding-left: 0;
}
