/* ============================================================
   DESIGN TOKENS — Sistema de diseño compartido
   
   Uso:
   - WordPress: encolar este archivo en functions.php
   - React/Tailwind: importar en index.css o globals.css
   - Tailwind: referenciar desde tailwind.config.js
   
   Todos los valores de diseño del sistema viven aquí.
   Cambiar un token lo cambia en todos los contextos.
   ============================================================ */

:root {

  /* ── Colores de marca ──────────────────────────────────── */
  --sp-color-brand-50:   #eef4ff;
  --sp-color-brand-100:  #d9e7ff;
  --sp-color-brand-200:  #bcd3ff;
  --sp-color-brand-300:  #8eb5fe;
  --sp-color-brand-400:  #598dfa;
  --sp-color-brand-500:  #3366f5;   /* Principal */
  --sp-color-brand-600:  #1d47e8;
  --sp-color-brand-700:  #1838d4;
  --sp-color-brand-800:  #1a2fab;
  --sp-color-brand-900:  #1b2d87;
  --sp-color-brand-950:  #141d52;

  /* ── Escala de grises ──────────────────────────────────── */
  --sp-color-gray-0:     #ffffff;
  --sp-color-gray-50:    #f8f9fb;
  --sp-color-gray-100:   #f1f2f6;
  --sp-color-gray-200:   #e2e5ed;
  --sp-color-gray-300:   #c8cdd9;
  --sp-color-gray-400:   #9aa0b4;
  --sp-color-gray-500:   #6b7290;
  --sp-color-gray-600:   #4e5470;
  --sp-color-gray-700:   #373d58;
  --sp-color-gray-800:   #242840;
  --sp-color-gray-900:   #141828;
  --sp-color-gray-950:   #0b0d18;

  /* ── Semánticos ────────────────────────────────────────── */
  --sp-color-success:    #16a34a;
  --sp-color-success-bg: #f0fdf4;
  --sp-color-warning:    #d97706;
  --sp-color-warning-bg: #fffbeb;
  --sp-color-danger:     #dc2626;
  --sp-color-danger-bg:  #fef2f2;
  --sp-color-info:       #0ea5e9;
  --sp-color-info-bg:    #f0f9ff;

  /* ── Superficie y fondo ────────────────────────────────── */
  --sp-bg-page:          var(--sp-color-gray-50);
  --sp-bg-surface:       var(--sp-color-gray-0);
  --sp-bg-subtle:        var(--sp-color-gray-100);
  --sp-bg-header:        var(--sp-color-gray-0);

  /* ── Texto ─────────────────────────────────────────────── */
  --sp-text-primary:     var(--sp-color-gray-900);
  --sp-text-secondary:   var(--sp-color-gray-500);
  --sp-text-muted:       var(--sp-color-gray-400);
  --sp-text-inverse:     var(--sp-color-gray-0);
  --sp-text-brand:       var(--sp-color-brand-600);

  /* ── Bordes ────────────────────────────────────────────── */
  --sp-border-subtle:    var(--sp-color-gray-100);
  --sp-border-default:   var(--sp-color-gray-200);
  --sp-border-strong:    var(--sp-color-gray-300);
  --sp-border-brand:     var(--sp-color-brand-500);

  /* ── Tipografía ────────────────────────────────────────── */
  --sp-font-display:     'Plus Jakarta Sans', sans-serif;
  --sp-font-body:        'DM Sans', sans-serif;
  --sp-font-mono:        'DM Mono', monospace;

  --sp-text-xs:          0.75rem;    /* 12px */
  --sp-text-sm:          0.8125rem;  /* 13px */
  --sp-text-base:        0.9375rem;  /* 15px */
  --sp-text-md:          1rem;       /* 16px */
  --sp-text-lg:          1.125rem;   /* 18px */
  --sp-text-xl:          1.25rem;    /* 20px */
  --sp-text-2xl:         1.5rem;     /* 24px */
  --sp-text-3xl:         1.875rem;   /* 30px */
  --sp-text-4xl:         2.25rem;    /* 36px */

  --sp-font-normal:      400;
  --sp-font-medium:      500;
  --sp-font-semibold:    600;

  --sp-leading-tight:    1.2;
  --sp-leading-snug:     1.35;
  --sp-leading-normal:   1.6;

  /* ── Espaciado ─────────────────────────────────────────── */
  --sp-space-1:   0.25rem;   /* 4px  */
  --sp-space-2:   0.5rem;    /* 8px  */
  --sp-space-3:   0.75rem;   /* 12px */
  --sp-space-4:   1rem;      /* 16px */
  --sp-space-5:   1.25rem;   /* 20px */
  --sp-space-6:   1.5rem;    /* 24px */
  --sp-space-8:   2rem;      /* 32px */
  --sp-space-10:  2.5rem;    /* 40px */
  --sp-space-12:  3rem;      /* 48px */
  --sp-space-16:  4rem;      /* 64px */

  /* ── Radios ────────────────────────────────────────────── */
  --sp-radius-sm:   4px;
  --sp-radius-md:   8px;
  --sp-radius-lg:   12px;
  --sp-radius-xl:   16px;
  --sp-radius-2xl:  24px;
  --sp-radius-full: 9999px;

  /* ── Sombras ───────────────────────────────────────────── */
  --sp-shadow-xs:  0 1px 2px rgba(20, 24, 40, 0.04);
  --sp-shadow-sm:  0 1px 3px rgba(20, 24, 40, 0.06), 0 1px 2px rgba(20, 24, 40, 0.04);
  --sp-shadow-md:  0 4px 6px rgba(20, 24, 40, 0.05), 0 2px 4px rgba(20, 24, 40, 0.04);
  --sp-shadow-lg:  0 10px 24px rgba(20, 24, 40, 0.08), 0 4px 8px rgba(20, 24, 40, 0.04);
  --sp-shadow-xl:  0 20px 40px rgba(20, 24, 40, 0.10);

  /* ── Header específico ─────────────────────────────────── */
  --sp-header-height:      60px;
  --sp-header-bg:          var(--sp-bg-surface);
  --sp-header-border:      var(--sp-border-subtle);
  --sp-header-shadow:      var(--sp-shadow-sm);
  --sp-header-z:           1000;

  /* ── Transiciones ──────────────────────────────────────── */
  --sp-transition-fast:    100ms ease;
  --sp-transition-base:    160ms ease;
  --sp-transition-slow:    280ms ease;

  /* ── Tier badges ───────────────────────────────────────── */
  --sp-tier-free-bg:       var(--sp-color-gray-100);
  --sp-tier-free-text:     var(--sp-color-gray-600);
  --sp-tier-basic-bg:      #e0f2fe;
  --sp-tier-basic-text:    #0369a1;
  --sp-tier-pro-bg:        #ede9fe;
  --sp-tier-pro-text:      #6d28d9;
  --sp-tier-premium-bg:    #fef3c7;
  --sp-tier-premium-text:  #92400e;
}

/* ── Dark mode ─────────────────────────────────────────────── */
@media (prefers-color-scheme: dark) {
  :root {
    --sp-bg-page:        var(--sp-color-gray-950);
    --sp-bg-surface:     var(--sp-color-gray-900);
    --sp-bg-subtle:      var(--sp-color-gray-800);
    --sp-bg-header:      var(--sp-color-gray-900);

    --sp-text-primary:   var(--sp-color-gray-50);
    --sp-text-secondary: var(--sp-color-gray-400);
    --sp-text-muted:     var(--sp-color-gray-500);

    --sp-border-subtle:  var(--sp-color-gray-800);
    --sp-border-default: var(--sp-color-gray-700);
    --sp-border-strong:  var(--sp-color-gray-600);

    --sp-header-bg:      var(--sp-color-gray-900);
    --sp-header-border:  var(--sp-color-gray-800);
  }
}

/* ── Reset base del sistema ────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }

body {
  font-family:       var(--sp-font-body);
  font-size:         var(--sp-text-base);
  color:             var(--sp-text-primary);
  background-color:  var(--sp-bg-page);
  line-height:       var(--sp-leading-normal);
  -webkit-font-smoothing: antialiased;
}
