/* ======================================================================
   Cumplanza — Design tokens (única fuente de verdad)
   Dirección: "Institucional refinado" — navy sobrio, neutros cálidos,
   un acento brass/sello legal, tipografía con autoridad.
   Lo heredan informe / login / admin. NO redefinir :root en otras hojas.
   ====================================================================== */

:root {
  /* ---------- Marca / navy ---------- */
  --brand-900: #0e2236;   /* headers oscuros, footer, texto sobre claro */
  --brand-800: #143049;
  --brand-700: #1b4a6e;   /* botón primario */
  --brand-600: #225d88;   /* hover */
  --brand-500: #2f74a6;
  --brand-050: #eef4f9;   /* fondos sutiles de marca */

  /* ---------- Acento (sello brass / autoridad legal) ---------- */
  --accent-700: #8a6224;
  --accent-600: #a3762f;  /* acento principal */
  --accent-500: #bc8c3f;
  --accent-050: #f7efdf;

  /* ---------- Neutros (stone cálido, no slate frío) ---------- */
  --ink:      #1a2330;    /* texto principal */
  --ink-2:    #3b4554;    /* texto secundario */
  --muted:    #5b6573;    /* AA sobre blanco (~5:1) */
  --line:     #e5e7ec;    /* bordes suaves */
  --line-2:   #cdd2db;    /* bordes marcados */
  --bg:       #f6f7f9;    /* fondo de página */
  --surface:  #ffffff;    /* tarjetas */
  --surface-2:#fbfbfc;    /* zonas alternas */

  /* ---------- Semánticos (estado / semáforo) ---------- */
  --danger:    #b42318;  --danger-bg: #fef3f2;  --danger-line: #fecdca;
  --warn:      #b54708;  --warn-bg:   #fffaeb;  --warn-line:   #fedf89;
  --ok:        #067647;  --ok-bg:     #ecfdf3;  --ok-line:     #abefc6;
  --info:      #175cd3;  --info-bg:   #eff8ff;  --info-line:   #b2ddff;

  /* ---------- Tipografía ---------- */
  /* Display: serif institucional (autoridad). UI: Public Sans (US Web
     Design System — oficial, legible, NO genérica). Mono: números de doc. */
  --font-display: "Source Serif 4", Georgia, "Times New Roman", serif;
  --font-sans: "Public Sans", "Segoe UI", system-ui, -apple-system, sans-serif;
  --font-mono: "IBM Plex Mono", "Cascadia Code", ui-monospace, monospace;

  --fs-xs:   0.75rem;    /* 12px — overlines, meta */
  --fs-sm:   0.8125rem;  /* 13px — tablas, captions */
  --fs-base: 0.9375rem;  /* 15px — cuerpo UI */
  --fs-md:   1rem;       /* 16px */
  --fs-lg:   1.125rem;   /* 18px */
  --fs-xl:   1.375rem;   /* 22px */
  --fs-2xl:  1.75rem;    /* 28px */
  --fs-3xl:  2.25rem;    /* 36px — display de informe */

  --lh-tight:   1.2;
  --lh:         1.5;
  --lh-relaxed: 1.65;
  --ls-wide:    0.06em;  /* overlines en mayúsculas */

  /* ---------- Espaciado (base 4px) ---------- */
  --sp-1:  0.25rem;   --sp-2:  0.5rem;   --sp-3:  0.75rem;
  --sp-4:  1rem;      --sp-5:  1.25rem;  --sp-6:  1.5rem;
  --sp-8:  2rem;      --sp-10: 2.5rem;   --sp-12: 3rem;   --sp-16: 4rem;

  /* ---------- Radios ---------- */
  --r-sm: 6px;  --r: 10px;  --r-lg: 14px;  --r-pill: 999px;

  /* ---------- Sombras (suaves, refinadas) ---------- */
  --sh-xs: 0 1px 2px rgba(16,33,54,.06);
  --sh-sm: 0 1px 3px rgba(16,33,54,.08), 0 1px 2px rgba(16,33,54,.04);
  --sh-md: 0 4px 12px rgba(16,33,54,.08), 0 2px 4px rgba(16,33,54,.04);
  --sh-lg: 0 16px 40px rgba(16,33,54,.16);

  /* ---------- Foco accesible (visible, alto contraste) ---------- */
  --focus-ring: 0 0 0 3px rgba(34, 93, 136, .35);
  --focus-color: var(--brand-600);

  /* ---------- Capas ---------- */
  --z-sticky: 20;
  --z-modal:  1000;
  --z-overlay:1100;
  --z-toast:  1200;

  /* ---------- Movimiento ---------- */
  --t-fast: .12s ease;
  --t:      .18s ease;

  /* ======================================================================
     COMPAT — nombres legacy usados por informe.css y los estilos inline de
     informe.js / admin. Mapean al paletón institucional para migrar sin
     reescribir cada referencia. No usar estos en código nuevo.
     ====================================================================== */
  --brand:       var(--brand-900);
  --brand-2:     var(--brand-700);
  --accent:      var(--accent-600);
  --accent-2:    var(--accent-700);
  --card:        var(--surface);
  --border:      var(--line);
  --border-2:    var(--line-2);
  --danger-soft: var(--danger-line);
  --shadow:      var(--sh-sm);
  --shadow-md:   var(--sh-md);
  --shadow-lg:   var(--sh-lg);
  --radius:      var(--r);
  --radius-sm:   var(--r-sm);
}
