:root {
  /* ── Grises base ── */
  --gray-0:   #FFFFFF;
  --gray-50:  #F9F9F9;
  --gray-100: #F2F2F2;
  --gray-200: #E5E5E5;
  --gray-300: #D4D4D4;
  --gray-400: #A3A3A3;
  --gray-500: #737373;
  --gray-600: #525252;
  --gray-700: #404040;
  --gray-800: #262626;
  --gray-900: #171717;

  /* ── Semántica ── */
  --bg-base:        var(--gray-50);
  --bg-surface:     var(--gray-0);
  --bg-elevated:    var(--gray-100);
  --bg-hover:       var(--gray-100);
  --text-primary:   var(--gray-900);
  --text-secondary: var(--gray-600);
  --text-muted:     var(--gray-400);
  --border:         var(--gray-200);
  --border-strong:  var(--gray-300);
  --divider:        var(--gray-200);

  /* ── Chips de categoría ── */
  --cat-seguridad-bg:    #FFF0F0;
  --cat-seguridad-text:  #CC2222;
  --cat-ia-bg:           #EFF6FF;
  --cat-ia-text:         #1D5FA6;
  --cat-servidores-bg:   #F3F0FF;
  --cat-servidores-text: #6B3FA0;
  --cat-email-bg:        #F0FFF4;
  --cat-email-text:      #1A7A3C;
  --cat-herramientas-bg: #FFFBEB;
  --cat-herramientas-text:#92610A;
  --cat-noticias-bg:     #FAFAFA;
  --cat-noticias-text:   var(--gray-600);

  /* ── Chips de severidad ── */
  --sev-critica-bg:   #FFF0F0; --sev-critica-text:  #CC2222;
  --sev-alta-bg:      #FFF7ED; --sev-alta-text:     #C2560A;
  --sev-media-bg:     #FFFBEB; --sev-media-text:    #92610A;
  --sev-baja-bg:      #EFF6FF; --sev-baja-text:     #1D5FA6;

  /* ── Tipografía ── */
  --font-heading: 'Manrope', system-ui, sans-serif;
  --font-body:    'Inter', system-ui, sans-serif;
  --font-mono:    'JetBrains Mono', 'Courier New', monospace;

  /* ── Escala tipo ── */
  --text-xs:   0.75rem;
  --text-sm:   0.875rem;
  --text-base: 1rem;
  --text-lg:   1.125rem;
  --text-xl:   1.25rem;
  --text-2xl:  1.5rem;
  --text-3xl:  1.875rem;
  --text-4xl:  2.25rem;

  /* ── Pesos ── */
  --fw-normal:   400;
  --fw-medium:   500;
  --fw-semibold: 600;
  --fw-bold:     700;
  --fw-extrabold:800;

  /* ── Espaciado (base 4px) ── */
  --sp-1:  0.25rem;   --sp-2:  0.5rem;    --sp-3:  0.75rem;
  --sp-4:  1rem;      --sp-5:  1.25rem;   --sp-6:  1.5rem;
  --sp-8:  2rem;      --sp-10: 2.5rem;    --sp-12: 3rem;
  --sp-16: 4rem;      --sp-20: 5rem;      --sp-24: 6rem;

  /* ── Layout ── */
  --container:  1200px;
  --article-w:  800px;
  --card-min-w: 280px;

  /* ── Radio ── */
  --r-sm:  4px;
  --r-md:  8px;
  --r-lg:  12px;
  --r-xl:  16px;
  --r-full:9999px;

  /* ── Sombras ── */
  --shadow-sm:   0 1px 2px rgba(0,0,0,0.05);
  --shadow-md:   0 2px 8px rgba(0,0,0,0.08);
  --shadow-lg:   0 4px 16px rgba(0,0,0,0.10);
  --shadow-card: 0 1px 3px rgba(0,0,0,0.06), 0 4px 12px rgba(0,0,0,0.08);

  /* ── Transiciones ── */
  --transition:      150ms ease;
  --transition-slow: 300ms ease;
}
