/**
 * Tokens de marca — Eternal Dreams.
 *
 * Generados desde Forge (`generate_theme`). NO editar valores a mano: la marca
 * exige una sola fuente de verdad y prohíbe los hex sueltos. Para actualizar,
 * se vuelve a pedir el tema a Forge y se pega aquí.
 *
 * Última regeneración: 2026-09-18. Trae las variantes "deep" corregidas del
 * parche de contraste de Forge (2026-08-19): las anteriores no llegaban a
 * WCAG AA sobre papel, y el tema claro de la app cuelga de ellas.
 *
 * El bloque final ("Roles semánticos") es la capa que consume la UI. Son alias
 * cortos sobre los tokens de arriba, y es lo único que debería usar una hoja
 * de estilos de pantalla.
 */
:root {
  /* Superficies (dark primero: el claro es la variante) */
  --ed-color-void:        #06080c;
  --ed-color-void-2:      #0a0d13;
  --ed-color-surface:     #101319;
  --ed-color-border:      #20252d;

  /* Texto */
  --ed-color-text:        #eaf2ee;
  --ed-color-text-soft:   #c2cbcb;
  --ed-color-muted:       #7c8a92;

  /* Acentos */
  --ed-color-accent:      #00ffab;
  --ed-color-accent-hover:#3bffc0;
  --ed-color-on-accent:   #001a12;
  --ed-color-accent-2:    #00d5c7;
  --ed-color-aurora-3:    #7b5cff;

  /* Tema claro */
  --ed-color-paper:         #f4f7f6;
  --ed-color-paper-2:       #ffffff;
  --ed-color-ink:           #0b2e24;
  --ed-color-ink-soft:      #2b3733;
  --ed-color-muted-deep:    #67737a;
  --ed-color-aurora-a-deep: #008251;
  --ed-color-aurora-b-deep: #007c94;
  --ed-color-aurora-c-deep: #6a45e0;

  /* Estados. Las variantes "deep" son las legibles sobre papel: la paleta
     neón sobre claro da 1,23:1 (success), 1,70:1 (warning) y 2,81:1 (error). */
  --ed-color-success:      #00ffab;
  --ed-color-warning:      #ffb020;
  --ed-color-error:        #ff5c5c;
  --ed-color-success-deep: #008157;
  --ed-color-warning-deep: #976813;
  --ed-color-error-deep:   #c34646;

  /* Tinta sobre color sólido. Sin estos tokens se acaba poniendo blanco, que
     sobre el neón da 1,32:1 — texto prácticamente invisible. */
  --ed-color-on-success:  #0b2e24;
  --ed-color-on-warning:  #0b2e24;
  --ed-color-on-error:    #0b2e24;

  /* Glass — una capa por vista, nunca glass sobre glass */
  --ed-glass-bg:           rgba(255, 255, 255, 0.04);
  --ed-glass-bg-strong:    rgba(255, 255, 255, 0.06);
  --ed-glass-border:       rgba(255, 255, 255, 0.08);
  --ed-glass-border-hover: rgba(0, 255, 171, 0.35);
  --ed-glass-blur:         24px;
  --ed-glass-saturate:     160%;
  --ed-glass-shadow:       0 8px 40px rgba(0, 0, 0, 0.45);
  --ed-glass-shadow-hover: 0 16px 56px rgba(0, 0, 0, 0.55);
  --ed-aurora-opacity:     0.18;

  /* Tipografía. Fraunces y Satoshi van self-hosted en /assets/fonts (ver
     ed-fonts.css): la marca prohíbe el CDN de Google Fonts. La cadena de
     respaldo del token es la que usan los soportes donde no se pueden
     cargar, como el correo. */
  --ed-font-display: 'Fraunces', Georgia, 'Times New Roman', serif;
  --ed-font-body:    'Satoshi', 'Segoe UI', system-ui, sans-serif;
  --ed-font-weight-regular:  400;
  --ed-font-weight-medium:   500;
  --ed-font-weight-wordmark: 540;
  --ed-font-weight-bold:     700;

  /* Escala (cuarta justa 1.333) */
  --ed-text-xs:   13px;
  --ed-text-sm:   14px;
  --ed-text-base: 16px;
  --ed-text-md:   21px;
  --ed-text-lg:   28px;
  --ed-text-xl:   38px;
  --ed-text-2xl:  51px;
  --ed-text-3xl:  67px;
  --ed-text-4xl:  90px;

  /* Radios */
  --ed-radius-card:   20px;
  --ed-radius-input:  14px;
  --ed-radius-button: 14px;
  --ed-radius-icon:   12px;
  --ed-radius-pill:   999px;

  /* Espaciado — el espacio negativo es parte de la marca */
  --ed-space-hair:  8px;
  --ed-space-tight: 12px;
  --ed-space-base:  20px;
  --ed-space-loose: 32px;
  --ed-space-room:  56px;
  --ed-space-void:  96px;

  /* Movimiento. Lo que se repite mucho (hover, foco) va al SUELO del rango. */
  --ed-motion-fast:   180ms;
  --ed-motion-base:   320ms;
  --ed-motion-slow:   600ms;
  --ed-motion-easing: cubic-bezier(0.4, 0, 0.2, 1);

  /* Realce del wordmark de la casa. Cian → violeta a propósito: NO lleva el
     verde, así el nombre no gasta la chispa de la pantalla. Es realce de
     texto (background-clip), nunca fondo de un bloque ni de un botón. */
  --ed-gradient-wordmark: linear-gradient(100deg, var(--ed-color-accent-2) 20%, var(--ed-color-aurora-3));

  /* Roles semánticos — es lo que consume la UI */
  --ed-page:      var(--ed-color-void);
  --ed-elevated:  var(--ed-color-void-2);
  --ed-fg:        var(--ed-color-text);
  --ed-fg-soft:   var(--ed-color-text-soft);
  --ed-fg-muted:  var(--ed-color-muted);
  --ed-cta:       var(--ed-color-accent);
  --ed-cta-hover: var(--ed-color-accent-hover);
  --ed-cta-fg:    var(--ed-color-on-accent);
  --ed-focus:     var(--ed-color-accent);
  --ed-border:    var(--ed-color-border);
  --ed-danger:    var(--ed-color-error);
  --ed-danger-fg: var(--ed-color-text);
}

/* Variante clara. El CTA NO es el neón: accent sobre paper da 1,23:1 — un botón
   que no se distingue del papel. Se usa aurora-a-deep (4,52:1). */
[data-theme="light"] {
  --ed-page:      var(--ed-color-paper);
  --ed-elevated:  var(--ed-color-paper-2);
  --ed-fg:        var(--ed-color-ink);
  --ed-fg-soft:   var(--ed-color-ink-soft);
  --ed-fg-muted:  var(--ed-color-muted-deep);
  --ed-cta:       var(--ed-color-aurora-a-deep);
  /* Oscurecido DESDE el token, no un hex inventado: la paleta no define un
     hover para el CTA claro y la marca prohíbe los hex sueltos. */
  --ed-cta-hover: color-mix(in srgb, var(--ed-color-aurora-a-deep) 86%, var(--ed-color-ink));
  --ed-cta-fg:    var(--ed-color-paper);
  --ed-focus:     var(--ed-color-aurora-a-deep);
  --ed-border:    rgba(11, 46, 36, 0.14);
  --ed-danger:    var(--ed-color-error-deep);
  --ed-glass-bg:     rgba(255, 255, 255, 0.70);
  --ed-glass-border: rgba(11, 46, 36, 0.10);
  --ed-glass-shadow: 0 8px 40px rgba(11, 46, 36, 0.10);
  --ed-aurora-opacity: 0.10;
}
