/* tokens.css - the closed token set for signalism-co.
   The whole design authority for values: every colour, size, space,
   radius and border in the app resolves to a var() defined here.
   No raw hex or px outside this file. Adding a token is a design
   decision: propose, show against mockups/brief-mockup.png, get
   approval, then add. See DESIGN-CONTRACT.md.

   Colour values are calibrated against the Brief mockup; adjust only
   by eyedropper against the real artwork, never by taste. */

:root {
  /* ---- Colour: six roles, no seventh ---- */
  --ground:   #EBEAE7;  /* app background, left rail, warm grey */
  --paper:    #F8F7F5;  /* sheets, cards */
  --ink:      #191919;  /* primary text, steady status border */
  --muted:    #8B8781;  /* secondary text, inactive labels, meta */
  --hairline: #DEDCD7;  /* rules, card borders, dividers */
  --accent:   #E04B12;  /* vermilion: signal, active, action. Nothing else. */

  /* ---- Type: two families, three weights total ---- */
  --font-sans: "Inter", -apple-system, "Helvetica Neue", sans-serif;
  --font-mono: "IBM Plex Mono", "SF Mono", "Menlo", monospace;

  --weight-regular: 400;   /* sans body */
  --weight-strong:  600;   /* sans titles, headline */
  --weight-mono:    500;   /* all mono */

  /* ---- Type scale ---- */
  /* Bumped one notch (23 Jul 2026, Chris: "a little too zoomed out")
     from the first pass (38/19/15/14/11px). Adjust again by eye, not
     by formula. */
  --text-display: 2.75rem;   /* 44px - the Brief headline */
  --text-title:   1.3125rem; /* 21px - card titles */
  --text-body:    1rem;      /* 16px - body, nav */
  --text-meta:    0.9375rem; /* 15px - meta rows, status line */
  --text-label:   0.75rem;   /* 12px - Labels: caps mono kickers, chips */

  --leading-display: 1.15;
  --leading-body:    1.5;
  --tracking-label:  0.08em;  /* Labels only */

  /* ---- Space: the only distances that exist ---- */
  /* s4-s8 also bumped alongside the type scale, same pass. */
  --s1: 0.25rem;   /*  4px */
  --s2: 0.5rem;    /*  8px */
  --s3: 0.75rem;   /* 12px */
  --s4: 1.125rem;  /* 18px */
  --s5: 1.75rem;   /* 28px */
  --s6: 2.25rem;   /* 36px */
  --s7: 3.25rem;   /* 52px */
  --s8: 4.5rem;    /* 72px */

  /* ---- Shape ---- */
  --radius:       8px;   /* cards, sheets */
  --radius-tight: 4px;   /* chips, small controls */

  --border-hair:   1px;  /* all rules and card borders */
  --border-status: 3px;  /* ledger card left border */

  /* ---- Layout ---- */
  --rail-w:    200px;    /* left nav rail */
  --measure:   880px;    /* main content column max */
  --measure-headline: 21ch; /* Brief headline max measure */

  /* ---- Motion: hover states only ---- */
  --hover-ease: 120ms ease-out;
}
