/* ============================================================
   DESIGN TOKENS — Berlin Live Transit
   ============================================================ */

:root {
  /* ── Brand / Accent ── */
  --color-bvg-yellow:    hsl(47, 100%, 50%);
  --color-bvg-yellow-dim: hsl(47, 100%, 40%);
  --color-accent:        hsl(47, 100%, 50%);
  --color-accent-glow:   hsl(47, 100%, 50%, 0.25);

  /* ── Background Layers ── */
  --bg-page:      hsl(220, 20%, 7%);
  --bg-surface:   hsl(220, 18%, 11%);
  --bg-elevated:  hsl(220, 16%, 15%);
  --bg-glass:     hsl(220, 20%, 100%, 0.06);
  --bg-glass-hover: hsl(220, 20%, 100%, 0.10);

  /* ── Text ── */
  --text-primary:   hsl(220, 15%, 95%);
  --text-secondary: hsl(220, 10%, 65%);
  --text-muted:     hsl(220, 8%, 45%);
  --text-inverse:   hsl(220, 20%, 7%);

  /* ── Border ── */
  --border-subtle:  hsl(220, 15%, 100%, 0.08);
  --border-default: hsl(220, 15%, 100%, 0.14);
  --border-strong:  hsl(220, 15%, 100%, 0.22);

  /* ── Semantic ── */
  --color-success: hsl(142, 70%, 45%);
  --color-warning: hsl(38, 95%, 55%);
  --color-danger:  hsl(4, 80%, 58%);
  --color-info:    hsl(210, 80%, 58%);

  /* ── Delay indicators ── */
  --delay-ontime:  hsl(142, 70%, 45%);
  --delay-slight:  hsl(38, 95%, 55%);
  --delay-late:    hsl(4, 80%, 58%);

  /* ── Berlin Transit Line Colors ── */
  /* U-Bahn */
  --line-u1: hsl(57, 92%, 46%);
  --line-u2: hsl(349, 72%, 50%);
  --line-u3: hsl(57, 92%, 46%);
  --line-u4: hsl(130, 45%, 58%);
  --line-u5: hsl(27, 75%, 38%);
  --line-u6: hsl(219, 52%, 48%);
  --line-u7: hsl(219, 52%, 48%);
  --line-u8: hsl(219, 52%, 48%);
  --line-u9: hsl(219, 52%, 48%);

  /* S-Bahn */
  --line-s-default: hsl(142, 68%, 40%);

  /* Bus / Tram / Ferry */
  --line-bus:   hsl(349, 72%, 50%);
  --line-tram:  hsl(349, 72%, 50%);
  --line-ferry: hsl(210, 80%, 50%);
  --line-regional: hsl(262, 50%, 55%);

  /* ── Typography ── */
  --font-sans: 'Inter', 'system-ui', sans-serif;
  --font-mono: 'JetBrains Mono', 'Fira Code', monospace;

  --text-xs:   0.6875rem;  /* 11px */
  --text-sm:   0.8125rem;  /* 13px */
  --text-base: 0.9375rem;  /* 15px */
  --text-lg:   1.0625rem;  /* 17px */
  --text-xl:   1.25rem;    /* 20px */
  --text-2xl:  1.5rem;     /* 24px */
  --text-3xl:  2rem;       /* 32px */
  --text-4xl:  2.5rem;     /* 40px */

  --weight-normal:   400;
  --weight-medium:   500;
  --weight-semibold: 600;
  --weight-bold:     700;
  --weight-black:    900;

  --leading-tight:  1.2;
  --leading-snug:   1.35;
  --leading-normal: 1.5;

  /* ── Spacing ── */
  --space-1:  0.25rem;
  --space-2:  0.5rem;
  --space-3:  0.75rem;
  --space-4:  1rem;
  --space-5:  1.25rem;
  --space-6:  1.5rem;
  --space-8:  2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-16: 4rem;

  /* ── Radius ── */
  --radius-sm:   0.375rem;
  --radius-md:   0.625rem;
  --radius-lg:   1rem;
  --radius-xl:   1.25rem;
  --radius-2xl:  1.75rem;
  --radius-full: 9999px;

  /* ── Shadows ── */
  --shadow-sm:  0 1px 3px hsl(220, 30%, 0%, 0.4);
  --shadow-md:  0 4px 16px hsl(220, 30%, 0%, 0.5);
  --shadow-lg:  0 8px 32px hsl(220, 30%, 0%, 0.6);
  --shadow-glow: 0 0 24px var(--color-accent-glow);

  /* ── Transitions ── */
  --duration-fast:   120ms;
  --duration-base:   220ms;
  --duration-slow:   380ms;
  --ease-out:        cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out:     cubic-bezier(0.4, 0, 0.2, 1);
  --ease-spring:     cubic-bezier(0.34, 1.56, 0.64, 1);

  /* ── Layout ── */
  --content-max:  640px;
  --header-h:     64px;
}
