/* ------------------------------------------------------
   theme.css — Design System: Variables & Base Typography
   ------------------------------------------------------
   Loaded globally BEFORE site.css and components.css.
   Defines the canonical design tokens (colors, spacing,
   radius, shadows, typography) that all other stylesheets
   should reference via var(--token-name).

   site.css may override or extend these; that is by design.
*/

:root {
  /* ---- Colors ---- */
  --color-primary:       #0b5fff;
  --color-primary-hover: #0048d9;
  --color-secondary:     #6b7280;
  --color-secondary-hover:#4b5563;
  --color-danger:        #dc2626;
  --color-danger-hover:  #b91c1c;
  --color-success:       #16a34a;
  --color-warning:       #d97706;
  --color-info:          #0284c7;

  /* Neutrals */
  --color-white:         #ffffff;
  --color-gray-50:       #f9fafb;
  --color-gray-100:      #f3f4f6;
  --color-gray-200:      #e5e7eb;
  --color-gray-300:      #d1d5db;
  --color-gray-400:      #9ca3af;
  --color-gray-500:      #6b7280;
  --color-gray-600:      #4b5563;
  --color-gray-700:      #374151;
  --color-gray-800:      #1f2937;
  --color-gray-900:      #111827;

  /* ---- Typography ---- */
  --font-sans:  system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --font-mono:  ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;

  --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 */

  --leading-tight:  1.25;
  --leading-normal: 1.5;
  --leading-loose:  1.75;

  --font-normal:    400;
  --font-medium:    500;
  --font-semibold:  600;
  --font-bold:      700;

  /* ---- Spacing ---- */
  --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 */

  /* ---- Borders & Radius ---- */
  --radius-sm:  0.25rem;  /* 4px  */
  --radius-md:  0.375rem; /* 6px  */
  --radius-lg:  0.5rem;   /* 8px  */
  --radius-xl:  0.75rem;  /* 12px */
  --radius-full: 9999px;

  --border-color: var(--color-gray-200);

  /* ---- Shadows ---- */
  --shadow-sm:  0 1px 2px 0 rgba(0, 0, 0, 0.05);
  --shadow-md:  0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
  --shadow-lg:  0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);

  /* ---- Transitions ---- */
  --transition-fast: 150ms ease;
  --transition-base: 200ms ease;

  /* ---- Layout ---- */
  --container-max: 1100px;
  --container-pad: 1rem;
}

/* ---- Base Typography Defaults ---- */
body {
  font-family: var(--font-sans);
  font-size: var(--text-base);
  line-height: var(--leading-normal);
  color: var(--color-gray-900);
  background-color: var(--color-white);
}

h1, h2, h3, h4, h5, h6 {
  line-height: var(--leading-tight);
  font-weight: var(--font-semibold);
  margin-top: 0;
}

code, pre, kbd, samp {
  font-family: var(--font-mono);
  font-size: var(--text-sm);
}

