﻿/* ============================================================
   Edicloud V5 — MENOS MOVIMIENTO (`prefers-reduced-motion: reduce`)
   ------------------------------------------------------------
   PARA QUÉ EXISTE (2026-08-13). La misma guarda vive al final de
   `Content/EstiloUrmeneta.css` y cubre, por herencia, a todo lo que cuelga de
   `E000Master/Raiz.Master` — que son casi todas las páginas, incluidas las del
   `RRHH000RHHMaster.master`, que anida en Raíz. Esta hoja es para las que **no**
   cuelgan de ahí y por lo tanto no la reciben: el login y su familia, los
   redireccionadores y las públicas. Se carga con un `<link>`, no se copia.

   ⚠️ POLÍTICA DUPLICADA CON DUEÑO DECLARADO (#30c). El bloque de reglas de acá y
   el de `EstiloUrmeneta.css` tienen que decir LO MISMO. El **dueño es
   `EstiloUrmeneta.css`**: si cambia la política, se cambia allá y se copia acá.
   Que no se separen no depende de que alguien se acuerde —
   `tools/Check-GuardaMovimiento.ps1` compara los dos bloques normalizados y falla
   si divergen. Por qué duplicada y no un solo archivo linkeado desde los dos
   lados: eso obligaría a tocar `Raiz.Master`, que hoy NO coincide con producción
   (otra sesión commiteó ahí y no publicó), y publicarlo arrastraría su cambio.

   LÍMITE MEDIDO (2026-08-13), vale para las dos hojas: la guarda **no vence** a una animación
   declarada con `!important` y selector de clase. Entre dos `!important` decide la
   ESPECIFICIDAD, no el orden, y `*` pierde contra `.loquesea`. Se midió con un control negativo
   en el arnés: un `.terco { animation: giro 3s infinite !important }` sobrevive intacto con la
   preferencia activa. Hoy no existe ninguna declaración así en código propio —las únicas
   `!important` de motion del árbol son estas guardas y las de `referidos-publico.css` /
   `ENC000Responder.aspx`, que son guardas también—, pero si aparece, esto no la va a apagar.

   Qué hace: neutraliza toda transición y toda animación. EXCEPCIÓN declarada
   (#56): el indicador de espera indeterminado sigue girando, más lento —
   congelarlo borra la única señal de "esto está trabajando", y `.spinner-grow`
   tiene `opacity: 0` de base, así que detenerlo no lo congela, lo hace
   DESAPARECER. El porqué largo (incluido por qué `.01ms` y no `none`) está en el
   comentario de `EstiloUrmeneta.css`, que es el dueño.
   ============================================================ */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        transition-duration: .01ms !important;
        transition-delay: 0s !important;
        animation-duration: .01ms !important;
        animation-delay: 0s !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
    }

    .spinner-border,
    .spinner-grow,
    .uc-spinner {
        animation-duration: 1.2s !important; /* motion-ok: la espera indeterminada dura lo que dure; el tope de 300ms es para la transicion que el usuario ESPERA, no para el giro de fondo */
        animation-iteration-count: infinite !important;
    }
}
