:root {
  /* ===== PRIMARY COLORS  ===== */
  --color-fair-plan-blue: #2546D9;
  --color-fair-plan-blue-rgb: 37, 70, 217;
  --color-dark-blue: #0D2C40;
  --color-dark-blue-rgb: 13, 44, 64;
  --color-bright-blue: #2ECEF2;
  --color-bright-blue-rgb: 46, 206, 242;

  /* ===== SECONDARY COLORS  ===== */
  --color-navy: #004A6E;
  --color-navy-rgb: 0, 74, 110;
  --color-light-gray: #F0F1F2;
  --color-light-gray-rgb: 240, 241, 242;
  --color-dark-gray: #232323;
  --color-dark-gray-rgb: 35, 35, 35;
  --color-green: #79D5AE;
  --color-green-rgb: 121, 213, 174;
  --color-yellow: #F8E971;
  --color-yellow-rgb: 248, 233, 113;

  /* ===== BASE / NEUTRALS ===== */
  --color-white: #FFFFFF;
  --color-black: #000000;

  /* ===== SEMANTIC / EXTENDED  ===== */
  --color-success: #2DB34A;
  --color-warning: #FF9500;
  --color-error: #D63026;
  --color-info: var(--color-bright-blue);
  --color-neutral: #6C6C70;

  /* ===== BACKGROUNDS ===== */
  --color-background-primary: var(--color-white);
  --color-background-secondary: var(--color-light-gray);
  --color-background-tertiary: #F5F5F7;
  --color-background-dark: var(--color-dark-blue);
  --color-background-brand: var(--color-fair-plan-blue);

  /* ===== TEXT COLORS ===== */
  --color-text-primary: var(--color-dark-blue);
  --color-text-secondary: var(--color-dark-gray);
  --color-text-tertiary: #6C6C70;
  --color-text-on-dark: var(--color-white);
  --color-text-on-brand: var(--color-white);
  --color-text-link: var(--color-fair-plan-blue);
  --color-text-link-hover: var(--color-navy);

  /* ===== BORDERS ===== */
  --color-border-primary: #C7C7CC;
  --color-border-secondary: var(--color-light-gray);
  --color-border-brand: var(--color-fair-plan-blue);
  --color-border-dark: var(--color-dark-blue);

  /* ===== TYPOGRAPHY ===== */
  --font-family-heading: 'Raleway', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --font-family-body: 'Roboto', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --font-family-mono: 'SF Mono', 'Roboto Mono', Consolas, monospace;

  --font-size-xs: 0.75rem;    /* 12px */
  --font-size-sm: 0.875rem;   /* 14px */
  --font-size-base: 1rem;     /* 16px */
  --font-size-lg: 1.125rem;   /* 18px */
  --font-size-xl: 1.25rem;    /* 20px */
  --font-size-2xl: 1.5rem;    /* 24px */
  --font-size-3xl: 1.875rem;  /* 30px */
  --font-size-4xl: 2.25rem;   /* 36px */
  --font-size-5xl: 3rem;      /* 48px */

  --font-weight-light: 300;
  --font-weight-regular: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;

  --line-height-tight: 1.2;
  --line-height-normal: 1.5;
  --line-height-relaxed: 1.625;

  --letter-spacing-tight: -0.01em;
  --letter-spacing-normal: 0;
  --letter-spacing-wide: 0.02em;

  /* ===== SPACING ===== */
  --spacing-0: 0;
  --spacing-1: 0.25rem;
  --spacing-2: 0.5rem;
  --spacing-3: 0.75rem;
  --spacing-4: 1rem;
  --spacing-5: 1.25rem;
  --spacing-6: 1.5rem;
  --spacing-8: 2rem;
  --spacing-10: 2.5rem;
  --spacing-12: 3rem;
  --spacing-16: 4rem;

  /* ===== RADIUS ===== */
  --radius-none: 0;
  --radius-sm: 0.25rem;
  --radius-md: 0.5rem;
  --radius-lg: 0.75rem;
  --radius-xl: 1rem;
  --radius-full: 9999px;

  /* ===== SHADOWS ===== */
  --shadow-xs: 0 1px 3px rgba(0, 0, 0, 0.05);
  --shadow-sm: 0 2px 8px rgba(13, 44, 64, 0.08);
  --shadow-md: 0 4px 16px rgba(13, 44, 64, 0.12);
  --shadow-lg: 0 8px 32px rgba(13, 44, 64, 0.16);

  /* ===== Z-INDEX ===== */
  --z-index-dropdown: 1000;
  --z-index-sticky: 1020;
  --z-index-fixed: 1030;
  --z-index-modal: 1050;
  --z-index-popover: 1060;
  --z-index-tooltip: 1070;

  /* ===== TRANSITIONS ===== */
  --transition-fast: 150ms ease;
  --transition-normal: 250ms ease;
  --transition-slow: 350ms ease;

  /* ===== BREAKPOINTS ===== */
  --breakpoint-mobile: 320px;
  --breakpoint-tablet: 768px;
  --breakpoint-desktop: 1024px;
  --breakpoint-wide: 1280px;

  /* Heading 1 */
  --heading-1-font: var(--font-weight-semibold) var(--font-size-5xl)/var(--line-height-tight) var(--font-family-heading);
  --heading-1-color: var(--color-dark-blue);

  /* Heading 2 */
  --heading-2-font: var(--font-weight-regular) var(--font-size-4xl)/var(--line-height-tight) var(--font-family-heading);
  --heading-2-color: var(--color-black);

  /* Heading 3 */
  --heading-3-font: var(--font-weight-bold) var(--font-size-2xl)/var(--line-height-tight) var(--font-family-heading);
  --heading-3-color: var(--color-navy);

  /* Heading 4 */
  --heading-4-font: var(--font-weight-medium) var(--font-size-xl)/var(--line-height-normal) var(--font-family-body);
  --heading-4-color: var(--color-fair-plan-blue);

  /* Body */
  --body-font: var(--font-weight-regular) var(--font-size-base)/var(--line-height-normal) var(--font-family-body);
  --body-color: var(--color-black);

