:root {
  /* Vibrante — acento Violeta/Índigo, ámbar como secundario */
  --color-bg-primary: #1E1B4B;   /* indigo-950: header / superficies oscuras */
  --color-bg-secondary: #4F46E5; /* indigo-600: fin del degradado en hero */
  --color-bg-card: #FFFFFF;
  --color-bg-surface: #F7F7FE;   /* fondo claro, levemente violáceo */
  --color-accent: #7C3AED;       /* violet-600: acción principal */
  --color-accent-hover: #6D28D9; /* violet-700 */
  --color-accent-2: #4F46E5;     /* indigo-600 (para degradados) */
  --color-secondary: #F59E0B;    /* ámbar: destacar (quick-wins, acento de marca) */
  --color-secondary-hover: #D97706;
  --color-text-primary: #0F172A;
  --color-text-inverse: #FFFFFF;
  --color-text-muted: #64748B;
  --color-link: #6D28D9;         /* violet-700 accesible sobre blanco (WCAG AA) */
  --color-border: #E7E5F0;
  --color-success: #10B981;
  --color-warning: #F59E0B;
  --color-danger: #EF4444;
  --color-maturity-1: #EF4444;
  --color-maturity-2: #F97316;
  --color-maturity-3: #EAB308;
  --color-maturity-4: #84CC16;
  --color-maturity-5: #10B981;
  --font-display: 'Inter', system-ui, sans-serif;
  --font-data: 'JetBrains Mono', monospace;
  --radius-sm: 6px;
  --radius-md: 12px;
  --radius-lg: 20px;
  --shadow-sm: 0 1px 3px rgba(15, 37, 84, 0.08);
  --shadow-card: 0 4px 24px rgba(15, 37, 84, 0.10);
  --shadow-lg: 0 12px 40px rgba(15, 37, 84, 0.16);
  --transition-base: 0.25s ease;
  /* Escala de espaciado */
  --space-1: 0.25rem; --space-2: 0.5rem; --space-3: 0.75rem;
  --space-4: 1rem; --space-5: 1.5rem; --space-6: 2rem; --space-8: 3rem;
  /* Escala tipográfica */
  --text-xs: 0.75rem; --text-sm: 0.875rem; --text-base: 1rem;
  --text-lg: 1.125rem; --text-xl: 1.5rem; --text-2xl: 2rem;
}

*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  font-size: 16px;
  scroll-behavior: smooth;
}

body {
  font-family: var(--font-display);
  color: var(--color-text-primary);
  background: var(--color-bg-surface);
  line-height: 1.6;
  min-height: 100vh;
}

a {
  color: var(--color-link);
  text-decoration: none;
  transition: color var(--transition-base);
}

a:hover {
  color: var(--color-accent-hover);
}

/* Foco visible accesible para navegación por teclado */
:where(a, button, [role="button"], [tabindex], input, select, textarea):focus-visible {
  outline: 3px solid var(--color-accent);
  outline-offset: 2px;
  border-radius: 4px;
}

/* Sólo lectura para lectores de pantalla */
.sr-only {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
}

ul, ol {
  list-style: none;
}

img, svg {
  display: block;
  max-width: 100%;
}

h1, h2, h3, h4, h5, h6 {
  font-weight: 700;
  line-height: 1.3;
  color: var(--color-text-primary);
}

p {
  line-height: 1.7;
}

code, .mono {
  font-family: var(--font-data);
}
