/* Design tokens — Calika Cardio IA · «Editorial clínico»
 *
 * Blanco cálido, navy profundo y un único acento carmín. Serif editorial
 * para la voz del producto, sans para los controles, mono para toda cifra
 * clínica. Tipografía auto-hospedada (ver fonts.css). Sin CDN externo.
 *
 * Todo par texto/fondo de este archivo llega a 4,5:1 (AA). Los valores
 * comentados son la relación de contraste medida sobre --color-background.
 */

:root {
  /* ── Color · acciones y cromo ───────────────────────────────────────── */
  --color-primary: #16283F;        /* Navy: acciones primarias, cromo, tinta */
  --color-primary-hover: #0F1D2E;
  --color-on-primary: #FBF9F5;

  --color-secondary: #9C2F3B;      /* Carmín: acento, enlaces, versalitas  6,9:1 */
  --color-secondary-hover: #7C242E;
  --color-carmin: #9C2F3B;         /* Alias legible del acento de marca */

  --color-info: #16283F;           /* Avisos neutros. No es el acento. */
  --color-accent: #1F7A4C;         /* Correcto, completado, en rango  5,1:1 */
  --color-warning: #B45309;        /* Atención, fuera de rango        4,8:1 */

  /* Variantes de texto. Aquí coinciden con el relleno porque el relleno ya
   * es legible sobre fondo claro; se conservan los nombres para no romper
   * las hojas que los usan. */
  --color-accent-text: #1F7A4C;
  --color-warning-text: #B45309;
  --color-accent-strong: #1F7A4C;
  --color-accent-strong-hover: #19653F;

  /* Pastillas. Fondos OPACOS (sin alfa) para contraste estable. */
  --badge-success-bg: #E7F1EA;  --badge-success-fg: #14603C;  /* 6,56:1 */
  --badge-warning-bg: #FBF0DC;  --badge-warning-fg: #8A4106;  /* 6,55:1 */
  --badge-error-bg:   #F7E7E7;  --badge-error-fg:   #8E2733;  /* 7,05:1 */
  --badge-info-bg:    #EFEBE3;  --badge-info-fg:    #16283F;  /* 12,5:1 */

  /* Destructivo. Deliberadamente más saturado que el carmín de marca: una
   * acción que borra no debe parecerse a un enlace. */
  --color-destructive: #B3261E;
  --color-destructive-hover: #93190F;

  /* ── Color · superficies ────────────────────────────────────────────── */
  --color-background: #FBF9F5;     /* Blanco cálido, saturación < 0,02 */
  --color-surface: #FFFFFF;
  --color-foreground: #16283F;
  --color-muted: #F4F0E9;
  --color-border: #E3DDD2;
  --color-border-strong: #CFC7B8;
  --color-ring: #16283F;

  /* Rail y superficies secundarias */
  --rail-surface: #F4F0E9;
  --rail-border: #E3DDD2;

  /* Papel de trabajo — la hoja del informe */
  --paper-surface: #FFFFFF;
  --paper-border: #EBE5DA;
  --paper-rule: #F0EBE1;           /* Filete interno de tablas y listas */
  --ink-primary: #16283F;          /* 15,9:1 */
  --ink-secondary: #445369;        /* 7,35:1 */
  --ink-muted: #5F6E82;            /* 4,97:1 */
  --ink-warm-muted: #7A6E5C;       /* 4,77:1 — versalitas sobre fondo cálido */

  /* Carmín también rotula «por firmar», el foco del observatorio y el
   * borde de los avisos de error. */
  --vermilion: #9C2F3B;
  --vermilion-hover: #7C242E;

  /* ── Tipografía — auto-hospedada en /fonts (ver fonts.css) ──────────── */
  --font-display: 'Source Serif 4', 'Iowan Old Style', 'Palatino Linotype', Palatino, serif;
  --font-ui: 'Source Sans 3', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-mono: 'IBM Plex Mono', ui-monospace, 'SF Mono', Monaco, Consolas, monospace;

  --text-display: clamp(2.25rem, 3.4vw, 2.75rem);   /* 36 → 44 */
  --text-h1: clamp(1.625rem, 2.4vw, 2.125rem);      /* 26 → 34 */
  --text-h2: clamp(1.25rem, 1.7vw, 1.375rem);       /* 20 → 22 */
  --text-h3: 1.0625rem;                              /* 17 */
  --text-body: 1rem;                                 /* 16 */
  --text-sm: 0.90625rem;                             /* 14,5 */
  --text-xs: 0.78125rem;                             /* 12,5 */
  --text-cap: 0.65625rem;                            /* 10,5 — versalitas */

  --leading-display: 1.05;
  --leading-h1: 1.1;
  --leading-h2: 1.2;
  --leading-body: 1.6;
  --leading-prose: 1.7;            /* Prosa serif del informe */
  --leading-sm: 1.5;
  --leading-xs: 1.45;

  --tracking-cap: 0.1em;
  --tracking-display: -0.022em;

  /* ── Espaciado — base 4px ───────────────────────────────────────────── */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 44px;
  --space-8: 64px;

  /* ── Estructura del shell — rail · stage ────────────────────────────── */
  --topbar-height: 56px;
  --status-height: 28px;
  --rail-width: 248px;
  --sidenav-width: var(--rail-width);
  --sidenav-width-collapsed: 64px;
  --detail-width: 400px;

  /* Altura de control. En el teléfono ningún objetivo baja de 48px. */
  --control-height: 38px;
  --control-height-touch: 48px;

  --z-dropdown: 10;
  --z-sticky: 20;
  --z-modal: 30;
  --z-toast: 50;

  --radius-sm: 5px;
  --radius-md: 7px;
  --radius-lg: 10px;
  --radius-full: 9999px;

  --shadow-sm: 0 1px 2px rgb(22 40 63 / 0.04);
  --shadow-md: 0 2px 4px rgb(22 40 63 / 0.05), 0 8px 20px rgb(22 40 63 / 0.06);
  --shadow-lg: 0 4px 8px rgb(22 40 63 / 0.06), 0 18px 44px rgb(22 40 63 / 0.09);
  --shadow-paper: 0 2px 4px rgb(22 40 63 / 0.05), 0 16px 38px rgb(22 40 63 / 0.07);

  --transition-fast: 150ms ease;
  --transition-normal: 250ms ease;
  --transition-slow: 350ms ease;

  /* ── Extensión clínica ───────────────────────────────────────────────
   * Tokens propios de Calika Cardio IA. Deliberadamente separados de los
   * semánticos generales: «fuera de rango» no es lo mismo que
   * «advertencia del sistema». */
  --clinical-normal: #1F7A4C;
  --clinical-normal-bg: #E7F1EA;
  --clinical-out-of-range: #B45309;
  --clinical-out-of-range-bg: #FBF0DC;
  --clinical-critical: #9C2F3B;
  --clinical-critical-bg: #F7E7E7;
  --clinical-nodata: #5F6E82;
  --clinical-nodata-bg: #EFEBE3;

  /* Estado de la privacidad. */
  --phi-safe: #1F7A4C;
  --phi-safe-bg: #E7F1EA;
  --phi-risk: #9C2F3B;
  --phi-risk-bg: #F7E7E7;
}
