/**
 * uva-tokens.css
 * UVA Design Token Definitions
 *
 * Single source of truth for all CSS custom properties.
 * All components reference these tokens — never hardcoded values.
 * Sub-themes may override tokens in their own css/uva-tokens-override.css.
 */

:root {
  /* ── Primary brand colours ──────────────────────────────────────── */
  --uva-blue:          #232D4B;   /* UVA Navy — primary brand colour */
  --uva-orange:        #E57200;   /* UVA Orange — accent */
  --uva-blue-medium:   #344872;   /* Medium navy — table headers, dark UI */
  --uva-blue-light:    #C0D6EC;   /* Light blue — backgrounds, borders */
  --uva-slate:         #63666A;   /* Secondary text, captions */
  --uva-white:         #FFFFFF;
  --uva-off-white:     #F5F7FA;   /* Alternate row/card backgrounds */

  /* ── Semantic colours ───────────────────────────────────────────── */
  --uva-text-primary:    #1A1A1A;
  --uva-text-secondary:  #374151;
  --uva-text-muted:      #6B7280;
  --uva-border:          #CCCCCC;
  --uva-border-strong:   #9CA3AF;
  --uva-focus:           #E57200;   /* Focus ring — meets WCAG AA contrast */
  --uva-success:         #1A6B3A;
  --uva-warning:         #92400E;
  --uva-error:           #991B1B;

  /* ── Typography ─────────────────────────────────────────────────── */
  --uva-font-sans:   'Arial', 'Helvetica Neue', sans-serif;
  --uva-font-serif:  'Georgia', 'Times New Roman', serif;
  --uva-font-mono:   'Courier New', 'Courier', monospace;

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

  /* Line heights */
  --uva-leading-tight:  1.15;
  --uva-leading-snug:   1.375;
  --uva-leading-normal: 1.5;
  --uva-leading-relaxed: 1.625;

  /* Font weights */
  --uva-font-normal: 400;
  --uva-font-medium: 500;
  --uva-font-bold:   700;

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

  /* Semantic spacing aliases */
  --uva-space-xs:   var(--uva-space-1);
  --uva-space-sm:   var(--uva-space-2);
  --uva-space-md:   var(--uva-space-4);
  --uva-space-lg:   var(--uva-space-6);
  --uva-space-xl:   var(--uva-space-8);
  --uva-space-2xl:  var(--uva-space-12);

  /* ── Border radius ──────────────────────────────────────────────── */
  --uva-radius-sm:   0.25rem;
  --uva-radius-md:   0.5rem;
  --uva-radius-lg:   1rem;
  --uva-radius-full: 9999px;

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

  /* ── Layout ─────────────────────────────────────────────────────── */
  --uva-container-max:  1200px;
  --uva-container-pad:  var(--uva-space-xl);

  /* ── Transitions ────────────────────────────────────────────────── */
  --uva-transition-fast:   150ms ease;
  --uva-transition-normal: 250ms ease;
  --uva-transition-slow:   400ms ease;

  /* ── Z-index scale ──────────────────────────────────────────────── */
  --uva-z-base:    0;
  --uva-z-raised:  10;
  --uva-z-overlay: 100;
  --uva-z-modal:   1000;
  --uva-z-toast:   2000;
}

/* ── Reduced motion ─────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  :root {
    --uva-transition-fast:   0ms;
    --uva-transition-normal: 0ms;
    --uva-transition-slow:   0ms;
  }
}
