/* ==========================================================================
   PymeGo Design Tokens
   ========================================================================== */

:root {
  /* ----- Colores: Marca ----- */
  --color-primary: #0B5FFF;
  --color-primary-dark: #0840B5;
  --color-primary-light: #4F8AFF;
  --color-primary-soft: #E8F0FF;

  --color-accent: #FF5306;
  --color-accent-dark: #D43F00;
  --color-accent-soft: #FFEBE0;

  /* ----- Colores: Texto ----- */
  --color-text: #0F172A;
  --color-text-strong: #020617;
  --color-text-muted: #475569;
  --color-text-subtle: #64748B;
  --color-text-on-primary: #FFFFFF;

  /* ----- Colores: Fondos ----- */
  --color-bg: #FFFFFF;
  --color-bg-soft: #F8FAFC;
  --color-bg-muted: #F1F5F9;
  --color-bg-dark: #0B1220;
  --color-bg-elevated: #FFFFFF;

  /* ----- Colores: Bordes ----- */
  --color-border: #E2E8F0;
  --color-border-strong: #CBD5E1;
  --color-border-subtle: #F1F5F9;

  /* ----- Colores: Estado ----- */
  --color-success: #10B981;
  --color-success-soft: #D1FAE5;
  --color-warning: #F59E0B;
  --color-warning-soft: #FEF3C7;
  --color-error: #EF4444;
  --color-error-soft: #FEE2E2;
  --color-info: #3B82F6;
  --color-info-soft: #DBEAFE;

  /* ----- Gradientes ----- */
  --gradient-primary: linear-gradient(135deg, #0B5FFF 0%, #0840B5 100%);
  --gradient-accent: linear-gradient(135deg, #FF7A33 0%, #FF5306 100%);
  --gradient-hero: linear-gradient(180deg, #F8FAFC 0%, #FFFFFF 100%);
  --gradient-glow: radial-gradient(circle at 50% 0%, rgba(11, 95, 255, 0.12) 0%, transparent 60%);

  /* ----- Tipografía ----- */
  --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, system-ui, sans-serif;
  --font-display: 'Plus Jakarta Sans', var(--font-sans);
  --font-mono: 'JetBrains Mono', 'Fira Code', ui-monospace, SFMono-Regular, Menlo, monospace;

  /* Tamaños tipográficos (escala modular 1.25) */
  --text-xs: 0.75rem;     /* 12px */
  --text-sm: 0.875rem;    /* 14px */
  --text-base: 1rem;      /* 16px */
  --text-lg: 1.125rem;    /* 18px */
  --text-xl: 1.25rem;     /* 20px */
  --text-2xl: 1.5rem;     /* 24px */
  --text-3xl: 1.875rem;   /* 30px */
  --text-4xl: 2.25rem;    /* 36px */
  --text-5xl: 3rem;       /* 48px */
  --text-6xl: 3.75rem;    /* 60px */
  --text-7xl: 4.5rem;     /* 72px */

  /* Pesos */
  --weight-regular: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --weight-bold: 700;
  --weight-extrabold: 800;

  /* Line heights */
  --leading-tight: 1.15;
  --leading-snug: 1.3;
  --leading-normal: 1.5;
  --leading-relaxed: 1.7;

  /* Letter spacing */
  --tracking-tight: -0.02em;
  --tracking-tighter: -0.04em;
  --tracking-normal: 0;
  --tracking-wide: 0.02em;

  /* ----- Espaciados (escala 4px) ----- */
  --space-0: 0;
  --space-1: 0.25rem;     /* 4px */
  --space-2: 0.5rem;      /* 8px */
  --space-3: 0.75rem;     /* 12px */
  --space-4: 1rem;        /* 16px */
  --space-5: 1.25rem;     /* 20px */
  --space-6: 1.5rem;      /* 24px */
  --space-8: 2rem;        /* 32px */
  --space-10: 2.5rem;     /* 40px */
  --space-12: 3rem;       /* 48px */
  --space-16: 4rem;       /* 64px */
  --space-20: 5rem;       /* 80px */
  --space-24: 6rem;       /* 96px */
  --space-32: 8rem;       /* 128px */

  /* ----- Bordes ----- */
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 14px;
  --radius-xl: 20px;
  --radius-2xl: 28px;
  --radius-full: 9999px;

  /* ----- Sombras ----- */
  --shadow-xs: 0 1px 2px rgba(15, 23, 42, 0.04);
  --shadow-sm: 0 2px 4px rgba(15, 23, 42, 0.06), 0 1px 2px rgba(15, 23, 42, 0.04);
  --shadow-md: 0 4px 12px rgba(15, 23, 42, 0.08), 0 2px 4px rgba(15, 23, 42, 0.04);
  --shadow-lg: 0 12px 24px rgba(15, 23, 42, 0.10), 0 4px 8px rgba(15, 23, 42, 0.05);
  --shadow-xl: 0 24px 48px rgba(15, 23, 42, 0.12), 0 8px 16px rgba(15, 23, 42, 0.06);
  --shadow-2xl: 0 32px 64px rgba(15, 23, 42, 0.14);
  --shadow-glow: 0 0 0 4px rgba(11, 95, 255, 0.15);
  --shadow-accent-glow: 0 0 32px rgba(255, 83, 6, 0.30);

  /* ----- Layout ----- */
  --container-max: 1200px;
  --container-narrow: 960px;
  --container-wide: 1320px;
  --container-padding: clamp(1rem, 4vw, 2rem);

  --nav-height: 72px;

  /* ----- Transiciones ----- */
  --duration-fast: 150ms;
  --duration-base: 250ms;
  --duration-slow: 400ms;
  --duration-slower: 700ms;
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);

  /* ----- Z-index ----- */
  --z-dropdown: 100;
  --z-sticky: 200;
  --z-overlay: 300;
  --z-modal: 400;
  --z-toast: 500;
}

/* ----- Modo de movimiento reducido ----- */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
