/* ============================================================
   variables.css — Design tokens (paleta + tipografía + spacing)
   Fuente: ARCHITECTURE.md ADR-003 (paleta preliminar hasta oficial)
   ============================================================ */

:root {
  /* ---------- Brand (preliminar PDF — reemplazar al recibir logo oficial) ---------- */
  --brand-primary: oklch(28% 0.13 286);          /* morado profundo #2E1A6B */
  --brand-primary-dark: oklch(20% 0.10 286);     /* #1E0F4A */
  --brand-primary-light: oklch(50% 0.18 282);   /* #4D2FB8 */
  --brand-accent: oklch(56% 0.22 278);          /* violeta acento #5B47E0 */
  --brand-accent-cyan: oklch(78% 0.13 220);     /* cian luminoso #4FD1E8 */
  --brand-gradient: linear-gradient(135deg, var(--brand-accent) 0%, var(--brand-accent-cyan) 100%);

  /* ---------- Codificación visual por ruta de aprendizaje ---------- */
  --route-individuales: oklch(58% 0.20 256);    /* azul */
  --route-corporativos: oklch(56% 0.22 290);    /* violeta */
  --route-emprendimiento: oklch(72% 0.18 70);   /* naranja */
  --route-habilidades: oklch(65% 0.16 152);     /* verde */
  --route-recursos: oklch(54% 0.02 250);        /* gris neutro */

  /* ---------- Estados ---------- */
  --state-success: oklch(65% 0.16 152);
  --state-warning: oklch(72% 0.18 70);
  --state-error:   oklch(58% 0.22 25);
  --state-info:    oklch(58% 0.20 256);

  /* ---------- Neutros (tintados hacia brand) ---------- */
  --neutral-50:  oklch(98% 0.005 286);
  --neutral-100: oklch(96% 0.006 286);
  --neutral-200: oklch(92% 0.008 286);
  --neutral-300: oklch(84% 0.010 286);
  --neutral-400: oklch(72% 0.010 286);
  --neutral-500: oklch(58% 0.010 286);
  --neutral-600: oklch(46% 0.012 286);
  --neutral-700: oklch(34% 0.014 286);
  --neutral-800: oklch(22% 0.014 286);
  --neutral-900: oklch(12% 0.012 286);

  /* ---------- Tipografía (ADR-002 fallback hasta oficial) ---------- */
  --font-sans: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-display: 'Playfair Display', Georgia, 'Times New Roman', serif;
  --font-mono: 'JetBrains Mono', 'SF Mono', Consolas, monospace;

  /* Escala modular 1.25 (clamp fluid) */
  --fs-xs:   clamp(0.75rem, 0.72rem + 0.15vw, 0.875rem);
  --fs-sm:   clamp(0.875rem, 0.83rem + 0.2vw, 1rem);
  --fs-base: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
  --fs-md:   clamp(1.125rem, 1.05rem + 0.4vw, 1.375rem);
  --fs-lg:   clamp(1.375rem, 1.25rem + 0.6vw, 1.75rem);
  --fs-xl:   clamp(1.75rem, 1.5rem + 1vw, 2.5rem);
  --fs-2xl:  clamp(2.25rem, 1.85rem + 1.6vw, 3.5rem);
  --fs-3xl:  clamp(2.75rem, 2.2rem + 2.4vw, 4.5rem);
  --fs-4xl:  clamp(3.25rem, 2.5rem + 3.5vw, 6rem);

  /* Line-height */
  --lh-tight: 1.15;
  --lh-snug: 1.3;
  --lh-normal: 1.55;
  --lh-relaxed: 1.7;

  /* Letter spacing */
  --ls-tight: -0.02em;
  --ls-normal: 0;
  --ls-wide: 0.05em;
  --ls-wider: 0.12em;

  /* Font weight */
  --fw-regular: 400;
  --fw-medium: 500;
  --fw-semibold: 600;
  --fw-bold: 700;

  /* ---------- Espaciado (4pt scale semántico) ---------- */
  --space-1:  0.25rem;
  --space-2:  0.5rem;
  --space-3:  0.75rem;
  --space-4:  1rem;
  --space-5:  1.25rem;
  --space-6:  1.5rem;
  --space-8:  2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --space-20: 5rem;
  --space-24: 6rem;
  --space-32: 8rem;
  --space-40: 10rem;

  /* ---------- Border radius ---------- */
  --radius-xs:   4px;
  --radius-sm:   6px;
  --radius-md:   10px;
  --radius-lg:   16px;
  --radius-xl:   24px;
  --radius-2xl:  32px;
  --radius-full: 9999px;

  /* ---------- Sombras (multi-layer sutil) ---------- */
  --shadow-xs: 0 1px 2px 0 rgb(15 8 50 / 0.04);
  --shadow-sm: 0 1px 3px 0 rgb(15 8 50 / 0.06), 0 1px 2px -1px rgb(15 8 50 / 0.04);
  --shadow-md: 0 4px 6px -1px rgb(15 8 50 / 0.08), 0 2px 4px -2px rgb(15 8 50 / 0.04);
  --shadow-lg: 0 10px 15px -3px rgb(15 8 50 / 0.10), 0 4px 6px -4px rgb(15 8 50 / 0.06);
  --shadow-xl: 0 20px 25px -5px rgb(15 8 50 / 0.12), 0 8px 10px -6px rgb(15 8 50 / 0.06);
  --shadow-2xl: 0 25px 50px -12px rgb(15 8 50 / 0.20);
  --shadow-glow: 0 0 40px -10px var(--brand-accent);

  /* ---------- Transiciones ---------- */
  --t-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1);
  --t-base: 250ms cubic-bezier(0.4, 0, 0.2, 1);
  --t-slow: 400ms cubic-bezier(0.4, 0, 0.2, 1);
  --t-expo:  500ms cubic-bezier(0.16, 1, 0.3, 1);

  /* ---------- Layout ---------- */
  --container-sm: 640px;
  --container-md: 768px;
  --container-lg: 1024px;
  --container-xl: 1200px;
  --container-2xl: 1320px;
  --container-padding: clamp(1rem, 3vw, 2rem);

  /* ---------- Focus ---------- */
  --color-focus: var(--brand-accent-cyan);

  /* ---------- Z-index scale ---------- */
  --z-base: 1;
  --z-dropdown: 10;
  --z-sticky: 20;
  --z-fixed: 30;
  --z-modal: 40;
  --z-toast: 50;
}