/* ─────────────────────────────────────────────────────────────────────────────
   Tokens del subsistema de Flujo de Caja.

   Se carga DESPUÉS de colors.css y corrige dos defectos que arrastra la paleta
   heredada de Vx:

   1. Varios tokens semánticos usan el mismo tono (400/500) en ambos temas. Sobre
      blanco eso da 2,0–2,7:1 de contraste — por debajo del mínimo legible (4,5:1).
   2. `--warning-surface-softer` apunta a un crema claro también en modo oscuro,
      así que la columna "Vencido" quedaba crema sobre crema (1,5:1).

   Cada token de aquí está calculado contra el fondo real de su tema.
   El número entre paréntesis es la razón de contraste.
   ───────────────────────────────────────────────────────────────────────────── */

:root,
:root.light-theme {
  /* Texto — sobre #ffffff */
  --cf-text:            #384752;  /* neutral-800  (9,6:1) montos */
  --cf-text-muted:      #545f72;  /* neutral-700  (6,5:1) sub-filas, cabeceras */
  --cf-text-faint:      #728097;  /* neutral-600  (4,0:1) montos en cero */

  /* Semánticos de flujo */
  /* 3,8:1 — legible, pero por debajo de AA-normal (4,5:1). Para AA estricto,
     cambiar a #1b502d (success-800, 9,4:1); se pierde algo de saturación. */
  --cf-income:          #009934;  /* success-700  (3,8:1) */
  --cf-expense:         #cb2722;  /* danger-700   (5,5:1) */

  /* Vencido */
  /* 4,0:1 sobre la celda crema. Para AA estricto: #754400 (warning-800, 7,7:1) */
  --cf-overdue:         #c16107;  /* warning-700 */
  --cf-overdue-surface: #fff7eb;  /* warning-50 */
  --cf-overdue-border:  #ffdba8;  /* warning-200 */

  /* Superficies */
  --cf-income-surface:  rgba(0, 153, 52, 0.08);
  --cf-expense-surface: rgba(203, 39, 34, 0.07);
  --cf-current-surface: rgba(32, 167, 137, 0.07); /* período en curso */
  --cf-zebra:           rgba(56, 71, 82, 0.022);  /* filas alternas */
  --cf-divider:         #eaecf0;  /* neutral-100 */
  --cf-total-divider:   #d6dae1;  /* neutral-200 */
  --cf-accent:          #19856d;  /* primary-600  (4,6:1) */
}

:root.dark-theme {
  /* Texto — sobre #323d47 */
  --cf-text:            #ffffff;  /*              (10,8:1) */
  --cf-text-muted:      #c1c7d2;  /* neutral-300  (6,5:1) */
  --cf-text-faint:      #98a2b3;  /* neutral-500  (4,3:1) */

  --cf-income:          #a2eb9b;  /* success-300  (7,9:1) */
  --cf-expense:         #f8adaa;  /* danger-300   (6,1:1) */

  /* Tinte cálido translúcido: se funde con el fondo oscuro en vez de imponer
     un crema claro como hacía --warning-surface-softer */
  --cf-overdue:         #ffc87a;  /* warning-300  (7,3:1) */
  --cf-overdue-surface: rgba(255, 161, 32, 0.13);
  --cf-overdue-border:  rgba(255, 161, 32, 0.32);

  --cf-income-surface:  rgba(162, 235, 155, 0.12);
  --cf-expense-surface: rgba(248, 173, 170, 0.12);
  --cf-current-surface: rgba(255, 255, 255, 0.06);
  --cf-zebra:           rgba(255, 255, 255, 0.018);
  --cf-divider:         #545f72;  /* neutral-700 */
  --cf-total-divider:   #728097;  /* neutral-600 */
  --cf-accent:          #3ac7a5;  /* primary-400  (5,2:1) */
}
