/* CredTok Design Tokens v1.0 · generado desde la fuente de marca. No editar a mano: ajusta tokens.json y regenera. */
:root {
  /* Marca */
  --ct-brand-cyan: #19C8FF;
  --ct-brand-blue: #2A6BFF;
  --ct-brand-indigo: #4B3FE4;
  --ct-brand-violet: #8B5CF6;
  --ct-brand-deep: #1638C9;
  --ct-brand-ink: #0A0E1F;
  --ct-brand-night: #070B1A;
  --ct-brand-cloud: #F4F6FC;

  /* Paletas */
  --ct-blue-50: #EEF4FF;
  --ct-blue-100: #DBE7FF;
  --ct-blue-200: #BCD2FF;
  --ct-blue-300: #8FB3FF;
  --ct-blue-400: #5C8CFF;
  --ct-blue-500: #2A6BFF;
  --ct-blue-600: #1B52E6;
  --ct-blue-700: #1740B8;
  --ct-blue-800: #152F8A;
  --ct-blue-900: #111F5C;
  --ct-violet-50: #F5F1FF;
  --ct-violet-100: #EBE3FF;
  --ct-violet-200: #D7C8FF;
  --ct-violet-300: #BBA2FD;
  --ct-violet-400: #A27EF9;
  --ct-violet-500: #8B5CF6;
  --ct-violet-600: #7340E0;
  --ct-violet-700: #5C2FBA;
  --ct-violet-800: #452490;
  --ct-violet-900: #2F1A63;
  --ct-cyan-50: #EAFAFF;
  --ct-cyan-100: #CFF3FF;
  --ct-cyan-200: #A0E6FF;
  --ct-cyan-300: #63D7FF;
  --ct-cyan-400: #19C8FF;
  --ct-cyan-500: #00AEEA;
  --ct-cyan-600: #008BC0;
  --ct-cyan-700: #046E97;
  --ct-cyan-800: #0A5674;
  --ct-cyan-900: #0C3F55;
  --ct-neutral-0: #FFFFFF;
  --ct-neutral-50: #F4F6FC;
  --ct-neutral-100: #E9EDF7;
  --ct-neutral-200: #D8DEEC;
  --ct-neutral-300: #B9C2DA;
  --ct-neutral-400: #8C96B0;
  --ct-neutral-500: #5B6478;
  --ct-neutral-600: #414A5F;
  --ct-neutral-700: #2A3247;
  --ct-neutral-800: #171D33;
  --ct-neutral-900: #0A0E1F;
  --ct-neutral-950: #070B1A;
  --ct-success-100: #D3F9EC;
  --ct-success-400: #2EE6A6;
  --ct-success-500: #12B886;
  --ct-success-700: #0A7F5C;
  --ct-warning-100: #FFF1D6;
  --ct-warning-400: #FFC55C;
  --ct-warning-500: #F5A524;
  --ct-warning-700: #A8650A;
  --ct-danger-100: #FFE1E7;
  --ct-danger-400: #FF7A93;
  --ct-danger-500: #F04463;
  --ct-danger-700: #B01E3C;

  /* Degradados */
  --ct-gradient-brand: linear-gradient(135deg, #19C8FF 0%, #2A6BFF 48%, #8B5CF6 100%);
  --ct-gradient-brand-soft: linear-gradient(135deg, rgba(25,200,255,.16) 0%, rgba(42,107,255,.14) 48%, rgba(139,92,246,.18) 100%);
  --ct-gradient-tok: linear-gradient(90deg, #2A6BFF 0%, #8B5CF6 100%);
  --ct-gradient-night: linear-gradient(160deg, #141D45 0%, #070B1A 70%);
  --ct-gradient-aurora: radial-gradient(60% 80% at 15% 10%, rgba(25,200,255,.35) 0%, transparent 60%), radial-gradient(55% 70% at 90% 20%, rgba(139,92,246,.35) 0%, transparent 60%), radial-gradient(70% 80% at 50% 110%, rgba(42,107,255,.30) 0%, transparent 60%);

  /* Tipografía */
  --ct-font-display: 'Outfit', 'Avenir Next', 'Segoe UI', system-ui, sans-serif;
  --ct-font-body: 'Geist', 'Segoe UI', system-ui, -apple-system, 'Helvetica Neue', sans-serif;
  --ct-font-mono: 'Geist Mono', 'SFMono-Regular', ui-monospace, Menlo, Consolas, monospace;
  --ct-text-display-xl: 600 4rem/1.05 var(--ct-font-display);
  --ct-tracking-display-xl: -0.03em;
  --ct-text-display-lg: 600 3rem/1.08 var(--ct-font-display);
  --ct-tracking-display-lg: -0.025em;
  --ct-text-h1: 600 2.25rem/1.15 var(--ct-font-display);
  --ct-tracking-h1: -0.02em;
  --ct-text-h2: 600 1.75rem/1.2 var(--ct-font-display);
  --ct-tracking-h2: -0.015em;
  --ct-text-h3: 600 1.375rem/1.3 var(--ct-font-display);
  --ct-tracking-h3: -0.01em;
  --ct-text-body-lg: 400 1.125rem/1.6 var(--ct-font-body);
  --ct-tracking-body-lg: 0em;
  --ct-text-body: 400 1rem/1.6 var(--ct-font-body);
  --ct-tracking-body: 0em;
  --ct-text-body-sm: 400 0.875rem/1.5 var(--ct-font-body);
  --ct-tracking-body-sm: 0em;
  --ct-text-label: 500 0.8125rem/1.3 var(--ct-font-body);
  --ct-tracking-label: 0.01em;
  --ct-text-caption: 500 0.75rem/1.4 var(--ct-font-body);
  --ct-tracking-caption: 0.02em;
  --ct-text-overline: 600 0.6875rem/1.3 var(--ct-font-display);
  --ct-tracking-overline: 0.28em;
  --ct-text-data-lg: 600 2.5rem/1.1 var(--ct-font-display);
  --ct-tracking-data-lg: -0.02em;
  --ct-text-data-md: 600 1.625rem/1.2 var(--ct-font-mono);
  --ct-tracking-data-md: -0.01em;
  --ct-text-data: 500 0.875rem/1.4 var(--ct-font-mono);
  --ct-tracking-data: 0em;

  /* Espaciado (base 4px) */
  --ct-space-0: 0rem;
  --ct-space-1: 0.25rem;
  --ct-space-2: 0.5rem;
  --ct-space-3: 0.75rem;
  --ct-space-4: 1rem;
  --ct-space-5: 1.25rem;
  --ct-space-6: 1.5rem;
  --ct-space-8: 2rem;
  --ct-space-10: 2.5rem;
  --ct-space-12: 3rem;
  --ct-space-16: 4rem;
  --ct-space-20: 5rem;
  --ct-space-24: 6rem;

  /* Radios */
  --ct-radius-xs: 6px;
  --ct-radius-sm: 10px;
  --ct-radius-md: 14px;
  --ct-radius-lg: 20px;
  --ct-radius-xl: 28px;
  --ct-radius-2xl: 36px;
  --ct-radius-pill: 999px;

  /* Desenfoque de cristal */
  --ct-blur-sm: 8px;
  --ct-blur-md: 18px;
  --ct-blur-lg: 32px;

  /* Movimiento */
  --ct-duration-instant: 90ms;
  --ct-duration-fast: 160ms;
  --ct-duration-base: 240ms;
  --ct-duration-slow: 420ms;
  --ct-duration-ambient: 8s;
  --ct-ease-standard: cubic-bezier(.2,0,0,1);
  --ct-ease-out: cubic-bezier(.16,1,.3,1);
  --ct-ease-in: cubic-bezier(.4,0,1,1);
  --ct-ease-spring: cubic-bezier(.34,1.56,.64,1);

  /* Capas */
  --ct-z-base: 0;
  --ct-z-raised: 10;
  --ct-z-sticky: 100;
  --ct-z-overlay: 1000;
  --ct-z-modal: 1100;
  --ct-z-toast: 1200;

  /* Semánticos · tema claro (por defecto) */
  --ct-bg: #F4F6FC;
  --ct-bg-subtle: #E9EDF7;
  --ct-surface: #FFFFFF;
  --ct-surface-neu: #EEF1F9;
  --ct-text: #0A0E1F;
  --ct-text-muted: #5B6478;
  --ct-text-subtle: #636C84;
  --ct-text-on-brand: #FFFFFF;
  --ct-border: #D8DEEC;
  --ct-border-strong: #B9C2DA;
  --ct-primary: #2A6BFF;
  --ct-primary-hover: #1B52E6;
  --ct-primary-text: #1B52E6;
  --ct-accent: #7340E0;
  --ct-info: #046E97;
  --ct-success: #0A7F5C;
  --ct-warning: #8F5607;
  --ct-danger: #B01E3C;
  --ct-focus-ring: rgba(42,107,255,.35);
  --ct-glass-bg: rgba(255,255,255,.58);
  --ct-glass-bg-strong: rgba(255,255,255,.78);
  --ct-glass-border: rgba(255,255,255,.85);
  --ct-glass-highlight: rgba(255,255,255,.9);
  --ct-shadow-glass: 0 1px 0 rgba(255,255,255,.9) inset, 0 12px 40px -8px rgba(23,40,110,.18), 0 2px 6px rgba(23,40,110,.06);
  --ct-shadow-neu: 8px 8px 20px rgba(163,175,208,.55), -8px -8px 20px rgba(255,255,255,.95);
  --ct-shadow-neu-sm: 4px 4px 10px rgba(163,175,208,.5), -4px -4px 10px rgba(255,255,255,.95);
  --ct-shadow-neu-inset: inset 4px 4px 9px rgba(163,175,208,.55), inset -4px -4px 9px rgba(255,255,255,.95);
  --ct-shadow-glow: 0 10px 30px -6px rgba(42,107,255,.45);
  color-scheme: light;
}

/* Tema oscuro: automático según el sistema, o forzado con data-theme */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --ct-bg: #070B1A;
    --ct-bg-subtle: #0A0E1F;
    --ct-surface: #10162C;
    --ct-surface-neu: #0D1226;
    --ct-text: #F4F6FC;
    --ct-text-muted: #B9C2DA;
    --ct-text-subtle: #8C96B0;
    --ct-text-on-brand: #FFFFFF;
    --ct-border: #232B45;
    --ct-border-strong: #3A4463;
    --ct-primary: #5C8CFF;
    --ct-primary-hover: #8FB3FF;
    --ct-primary-text: #8FB3FF;
    --ct-accent: #BBA2FD;
    --ct-info: #63D7FF;
    --ct-success: #2EE6A6;
    --ct-warning: #FFC55C;
    --ct-danger: #FF7A93;
    --ct-focus-ring: rgba(92,140,255,.5);
    --ct-glass-bg: rgba(255,255,255,.055);
    --ct-glass-bg-strong: rgba(255,255,255,.09);
    --ct-glass-border: rgba(255,255,255,.12);
    --ct-glass-highlight: rgba(255,255,255,.18);
    --ct-shadow-glass: 0 1px 0 rgba(255,255,255,.10) inset, 0 16px 48px -10px rgba(0,0,0,.6), 0 2px 6px rgba(0,0,0,.3);
    --ct-shadow-neu: 8px 8px 20px rgba(2,4,12,.75), -6px -6px 16px rgba(36,46,84,.45);
    --ct-shadow-neu-sm: 4px 4px 10px rgba(2,4,12,.7), -3px -3px 8px rgba(36,46,84,.45);
    --ct-shadow-neu-inset: inset 4px 4px 9px rgba(2,4,12,.75), inset -3px -3px 8px rgba(36,46,84,.45);
    --ct-shadow-glow: 0 10px 34px -6px rgba(42,107,255,.65);
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --ct-bg: #070B1A;
  --ct-bg-subtle: #0A0E1F;
  --ct-surface: #10162C;
  --ct-surface-neu: #0D1226;
  --ct-text: #F4F6FC;
  --ct-text-muted: #B9C2DA;
  --ct-text-subtle: #8C96B0;
  --ct-text-on-brand: #FFFFFF;
  --ct-border: #232B45;
  --ct-border-strong: #3A4463;
  --ct-primary: #5C8CFF;
  --ct-primary-hover: #8FB3FF;
  --ct-primary-text: #8FB3FF;
  --ct-accent: #BBA2FD;
  --ct-info: #63D7FF;
  --ct-success: #2EE6A6;
  --ct-warning: #FFC55C;
  --ct-danger: #FF7A93;
  --ct-focus-ring: rgba(92,140,255,.5);
  --ct-glass-bg: rgba(255,255,255,.055);
  --ct-glass-bg-strong: rgba(255,255,255,.09);
  --ct-glass-border: rgba(255,255,255,.12);
  --ct-glass-highlight: rgba(255,255,255,.18);
  --ct-shadow-glass: 0 1px 0 rgba(255,255,255,.10) inset, 0 16px 48px -10px rgba(0,0,0,.6), 0 2px 6px rgba(0,0,0,.3);
  --ct-shadow-neu: 8px 8px 20px rgba(2,4,12,.75), -6px -6px 16px rgba(36,46,84,.45);
  --ct-shadow-neu-sm: 4px 4px 10px rgba(2,4,12,.7), -3px -3px 8px rgba(36,46,84,.45);
  --ct-shadow-neu-inset: inset 4px 4px 9px rgba(2,4,12,.75), inset -3px -3px 8px rgba(36,46,84,.45);
  --ct-shadow-glow: 0 10px 34px -6px rgba(42,107,255,.65);
  color-scheme: dark;
}

@media (prefers-reduced-motion: reduce) {
  :root { --ct-duration-instant: 0ms; --ct-duration-fast: 0ms; --ct-duration-base: 0ms; --ct-duration-slow: 0ms; }
}
