/* ============================================================================
   Design tokens. THE ONLY FILE THAT HOLDS A COLOUR.
   A palette swap is this file and nothing else.

   Light theme only, fully committed: there are deliberately no dark tokens and
   no theme switcher anywhere in the product (see factory/DECISIONS.md D-008).

   Every colour below is an unmodified step from the dataviz skill's validated
   reference palette. Brand primary is violet, not the navy-and-gold legal
   cliche, and shares no hue family with any status colour so status keeps
   reading (D-007).
   ========================================================================== */

:root {
  color-scheme: light;

  /* -- brand ------------------------------------------------------------- */
  --brand-700: #2f2478;
  --brand-600: #3a2d92;
  --brand:     #4a3aa7;
  --brand-400: #6a5cc0;
  --brand-300: #8f83d1;
  --brand-100: #ded9f2;
  --brand-050: #efedf9;

  /* -- secondary / sequential ramp (magnitude) --------------------------- */
  --blue-600: #184f95;
  --blue-500: #256abf;
  --blue:     #2a78d6;
  --blue-400: #3987e5;
  --blue-300: #86b6ef;
  --blue-200: #9ec5f4;
  --blue-100: #cde2fb;

  /* -- status (fixed, never themed; always paired with an icon + label) --- */
  --ok:        #0ca30c;
  --ok-ink:    #006300;
  --ok-wash:   #e6f5e6;
  --warn:      #fab219;
  --warn-ink:  #7a5200;
  --warn-wash: #fdf3dd;
  --serious:      #ec835a;
  --serious-ink:  #8a3c17;
  --serious-wash: #fdeee7;
  --critical:      #d03b3b;
  --critical-ink:  #96201f;
  --critical-wash: #fbe9e9;

  /* -- ink & surfaces ---------------------------------------------------- */
  --ink:      #1a1917;   /* 15.9:1 on --paper */
  --ink-2:    #52514e;   /*  7.6:1 */
  /* The reference palette's muted step (#898781) measures 3.37:1 on this paper —
     fine for lines and large text, short of the 4.5:1 AA floor for the body copy
     it is used for here (hints, sub-labels, secondary rows). Darkened one step to
     4.99:1. Gridlines and axes keep their own tokens below, so the recessive
     chart chrome is unaffected. */
  --muted:    #6b6963;   /*  5.0:1 */
  --paper:    #faf9f6;
  --surface:  #ffffff;
  --surface-2:#f4f2ed;
  --hairline: #e5e3dc;
  --baseline: #c3c2b7;
  --gridline: #eceae3;

  /* -- elevation --------------------------------------------------------- */
  --ring:      0 0 0 1px var(--hairline);
  --shadow-1:  0 1px 2px rgba(26,25,23,.05), 0 1px 1px rgba(26,25,23,.03);
  --shadow-2:  0 4px 14px rgba(26,25,23,.07), 0 1px 3px rgba(26,25,23,.05);
  --shadow-3:  0 14px 40px rgba(26,25,23,.13), 0 3px 10px rgba(26,25,23,.07);
  --focus:     0 0 0 3px var(--brand-100), 0 0 0 1px var(--brand);

  /* -- geometry ---------------------------------------------------------- */
  --r-sm: 7px;
  --r:    11px;
  --r-lg: 16px;
  --r-xl: 22px;

  --s-1: 4px;   --s-2: 8px;   --s-3: 12px;  --s-4: 16px;
  --s-5: 22px;  --s-6: 30px;  --s-7: 42px;  --s-8: 60px;

  /* -- type -------------------------------------------------------------- */
  --font: -apple-system, "SF Arabic", BlinkMacSystemFont, "Segoe UI",
          "Geeza Pro", "Noto Naskh Arabic", system-ui, sans-serif;
  --fs-xs: 12px; --fs-sm: 13px; --fs-md: 15px; --fs-lg: 17px;
  --fs-xl: 20px; --fs-2xl: 26px; --fs-3xl: 34px; --fs-hero: 56px;

  /* -- motion (all of it collapses under prefers-reduced-motion) --------- */
  --t-fast: 180ms cubic-bezier(.22,.61,.36,1);
  --t-med:  260ms cubic-bezier(.22,.61,.36,1);
  --t-slow: 900ms cubic-bezier(.22,.61,.36,1);

  --sidebar-w: 248px;
}

@media (prefers-reduced-motion: reduce) {
  :root { --t-fast: 1ms; --t-med: 1ms; --t-slow: 1ms; }
}
