/* GENERATED from shared/design/tokens.css - edit there */
/* Design tokens. Gallery sets data-theme="dark" on <html>, admin data-theme="light". */
:root,
:root[data-theme="dark"] {
  --navy: #000026;
  --accent: #F8931F;
  --on-accent: #000026;
  --bg: #05051A;
  --surface: #12122E;
  --surface-2: #1A1A3D;
  --hairline: rgba(255, 255, 255, 0.10);
  --text: #F5F5F7;
  --text-2: #A6A8C4;
  --track: rgba(255, 255, 255, 0.14);
  --good: #6FE08D;
  --good-bg: rgba(52, 199, 89, 0.16);
  --danger: #FF8A80;
  --glass: rgba(18, 18, 46, 0.72);
  /* Pipeline stage colours (contrast on --surface #12122E, all >= 3:1):
     new 7.97, quoted 7.00, booked 7.55, delivered 9.45, paid 11.05. */
  --stage-new: #F8931F;
  --stage-quoted: #7C9CFF;
  --stage-booked: #B794FF;
  --stage-delivered: #3CCFC0;
  --stage-paid: #6FE08D;
  --shadow-1: 0 1px 2px rgba(0, 0, 0, 0.30), 0 8px 24px rgba(0, 0, 0, 0.30);
  --shadow-2: 0 12px 40px rgba(0, 0, 0, 0.45);
  color-scheme: dark;
}

:root[data-theme="light"] {
  --bg: #F5F5F7;
  --surface: #FFFFFF;
  --surface-2: #E9E9F0;
  --hairline: rgba(0, 0, 38, 0.08);
  --text: #000026;
  --text-2: #5E6078;
  --track: #E9E9F0;
  --good: #1E7B3A;
  --good-bg: rgba(52, 199, 89, 0.16);
  --danger: #B3261E;
  --glass: rgba(255, 255, 255, 0.72);
  /* Pipeline stage colours (contrast on --surface #FFFFFF, all >= 3:1):
     new 4.29, quoted 6.23, booked 6.45, delivered 5.32, paid 5.32. */
  --stage-new: #C25E00;
  --stage-quoted: #2A55D6;
  --stage-booked: #6B3FD1;
  --stage-delivered: #00796B;
  --stage-paid: #1E7B3A;
  --shadow-1: 0 1px 2px rgba(0, 0, 38, 0.04), 0 8px 24px rgba(0, 0, 38, 0.05);
  --shadow-2: 0 12px 40px rgba(0, 0, 38, 0.14);
  color-scheme: light;
}

:root {
  --font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", Inter, system-ui, "Segoe UI", sans-serif;

  /* Type scale: seven steps, nothing else. */
  --fs-label: 13px;
  --fs-body: 18px;
  --fs-body-lg: 20px;
  --fs-h3: 24px;
  --fs-h2: 32px;
  --fs-h1: 44px;
  --fs-display: clamp(40px, 9vw, 60px);

  --r-sm: 12px;
  --r-md: 20px;
  --r-lg: 28px;
  --r-pill: 999px;

  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --dur: 250ms;
  --tap: 44px;
}

body {
  font-family: var(--font);
  font-size: var(--fs-body);
  background: var(--bg);
  color: var(--text);
  -webkit-font-smoothing: antialiased;
}

h1, .display { letter-spacing: -0.02em; }
.display { font-size: var(--fs-display); font-weight: 700; line-height: 1.05; }

:focus-visible {
  outline: 3px solid var(--accent);
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
