/* ══════════════════════════════════════════════════════════
   overrides.css — Capa final (5 de 5). Ajustes puntuales que
   deben ganar a las capas anteriores. Mantener vacío salvo
   excepciones; se irá poblando en la Fase 5 (pulido).
   ══════════════════════════════════════════════════════════ */

/* Evita scroll del fondo cuando hay un modal o el login abiertos. */
body.no-scroll { overflow: hidden; }

/* Utilidades varias */
.flex { display: flex; }
.items-center { align-items: center; }
.gap-8 { gap: 8px; }
.gap-12 { gap: 12px; }
.mt-16 { margin-top: 16px; }
.w-full { width: 100%; }
.truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Las tarjetas-enlace del dashboard se comportan como tarjetas, no como
   texto enlazado. */
a.stat-card { color: inherit; text-decoration: none; transition: border-color var(--transition), box-shadow var(--transition); }
a.stat-card:hover { border-color: var(--accent); box-shadow: var(--shadow); }

/* Inputs de archivo un poco más legibles. */
input[type="file"] { font-size: 12px; color: var(--text-muted); }

/* Accesibilidad: respeta "reducir movimiento" del sistema operativo.
   Desactiva animaciones/transiciones para quien lo solicita. */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
}
