/*
  Design tokens — the single source of truth for color, spacing, radius,
  shadow and motion. Every other stylesheet reads these; no magic numbers
  outside this file (Development Master Prompt §7).

  Colors are derived from the client-supplied logo.png, pixel-sampled at
  build time — see docs/design/brand.md. Contrast checked against WCAG 2.2
  AA (4.5:1 body text, 3:1 large text/UI) where noted.
*/

:root {
    /* ---------- Ink (dark neutral) ----------
       Was a navy sampled straight from the logo's wordmark; retuned to a
       warm, neutral graphite at the client's request (2026-08-22) — the
       panel backgrounds read as "blue" at this size even though the accent
       is now orange. Same relative lightness per step (contrast ratios
       below are unchanged from the navy version), hue neutralized. */
    --color-ink-950: #0d0b0a;
    --color-ink-900: #181412;
    --color-ink-800: #201c19;
    --color-ink-700: #2b2521;
    --color-ink-600: #423a33;
    --color-ink-500: #5c5148;

    /* ---------- Brand: accent orange ----------
       Chosen deliberately over the logo's original blue at the client's
       request (2026-08-22) — a confident safety/signal orange, in the same
       register as the warning-label and hazard-marking language already
       part of this domain (electrical safety, emergency vehicles), rather
       than a generic "corporate" orange. Contrast-checked like the blue it
       replaced: see docs/design/brand.md. */
    --color-accent-800: #8f3f06; /* pressed state */
    --color-accent-700: #b24e08; /* default text/icon/button-fill color on light — 5.3:1 on white, AA-safe */
    --color-accent-600: #d2600a; /* decorative/large-scale only — 3.9:1 on white, UI borders & non-text accents */
    --color-accent-500: #e8792a;
    --color-accent-tint: #f08a3c; /* for text/links on dark panels — 7.0:1 on ink-900 */
    --color-accent-tint-soft: rgba(240, 138, 60, 0.14);

    /* ---------- Neutrals / surfaces ---------- */
    --color-paper: #ffffff;
    --color-paper-sunken: #f6f4f2; /* alternating "drawing sheet" section bg — warm, was cool-gray */
    --color-line: #e5e1dc; /* hairline borders on paper — warm, was cool-gray */
    --color-line-strong: #c9c2b8; /* warm, was cool-gray */
    --color-line-on-dark: rgba(255, 255, 255, 0.14);

    /* ---------- Text ----------
       Both muted values were cool/blue-leaning grays (slate-600, and a
       blue-gray on dark) — retuned warm same-day as the ink palette, same
       complaint: "still blue" even after the panels themselves were fixed.
       Contrast re-verified after the swap, not just eyeballed. */
    --color-text: #181412; /* body text on paper — matches --color-ink-900 */
    --color-text-muted: #5c5449; /* warm taupe-gray — 7.5:1 on white */
    --color-text-inverse: #ffffff; /* text on dark panels */
    --color-text-inverse-muted: #aca599; /* warm gray — 7.2:1 on ink-900 */

    /* ---------- Semantic ---------- */
    --color-success: #1a7f4b;
    --color-danger: #b3261e;

    /* ---------- Spacing scale (4px base) ---------- */
    --space-1: 0.25rem;  /* 4  */
    --space-2: 0.5rem;   /* 8  */
    --space-3: 0.75rem;  /* 12 */
    --space-4: 1rem;     /* 16 */
    --space-5: 1.5rem;   /* 24 */
    --space-6: 2rem;     /* 32 */
    --space-7: 3rem;     /* 48 */
    --space-8: 4rem;     /* 64 */
    --space-9: 6rem;     /* 96 */
    --space-10: 8rem;    /* 128 */

    /* ---------- Radius — deliberately restrained, no pill/bubble chrome ---------- */
    --radius-xs: 2px;
    --radius-sm: 4px;

    /* ---------- Shadow — used sparingly (sticky header, menus), never decorative ---------- */
    --shadow-sm: 0 1px 2px rgba(16, 26, 38, 0.06), 0 1px 1px rgba(16, 26, 38, 0.04);
    --shadow-md: 0 8px 24px rgba(16, 26, 38, 0.10), 0 2px 6px rgba(16, 26, 38, 0.06);

    /* ---------- Motion ---------- */
    --duration-fast: 120ms;
    --duration-base: 200ms;
    --duration-slow: 320ms;
    --ease-standard: cubic-bezier(0.4, 0, 0.2, 1);
    --ease-out: cubic-bezier(0.16, 1, 0.3, 1); /* entrances only */
    --ease-in: cubic-bezier(0.7, 0, 0.84, 0); /* exits only */

    /* ---------- Layout ---------- */
    --container-max: 75rem; /* 1200px */
    --container-padding: clamp(1.25rem, 4vw, 3rem);
    --header-height: 4.5rem;

    /* ---------- Z-index scale ---------- */
    --z-dropdown: 10;
    --z-sticky: 20;
    --z-overlay: 30;
    --z-modal: 50;
}
