/* tokens.css — design-system primitives.
 * Authoritative values per CLAUDE.md §"DESIGN SYSTEM TOKENS".
 * NEVER invent colours outside this set.
 */
:root {
  /* Brand · Neo Blue — only Ed's avatar (#3BAE5A) is allowed to be green */
  --brand-dark:      #2B2D6E;
  --brand-mid:       #6AADE4;
  --brand-light:     #EBF3FB;

  /* Surfaces */
  --surface-page:    #F4F2EB;     /* warm off-white — never cold white */
  --surface-primary: #FFFFFF;     /* cards, panels, modals */
  --surface-tertiary:#F9FAFB;

  /* Text */
  --text-primary:    #1A1A1A;
  --text-secondary:  #4A4A4A;
  --text-tertiary:   #9CA3AF;

  /* Borders */
  --border-default:  #E5E7EB;
  --border-light:    #F0F0F0;

  /* Functional */
  --success:         #0E7C5F;
  --amber:           #C17B00;
  --danger:          #C0392B;
  --ai:              #7B3FD4;

  /* Layout */
  --sidebar-w:       220px;
  --header-h:        48px;

  /* Radii */
  --radius-sm: 6px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 16px;

  /* Shadows */
  --shadow-lg:   0 8px 24px rgba(0,0,0,0.12);
  --shadow-ring: 0 0 0 3px rgba(106,173,228,0.20);

  /* Type — Playfair Display serif for headings/letterheads, Montserrat sans
   * for UI. Fraunces was the original serif (V42-V62) but its dramatic
   * lowercase j and stylistic flourishes looked out of place at display
   * size — swapped to Playfair Display in V63. */
  --font-sans:  'Montserrat', -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  --font-serif: 'Playfair Display', 'Georgia', serif;
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: var(--font-sans);
  background: var(--surface-page);
  color: var(--text-primary);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Honour the `hidden` HTML attribute even when other rules set display.
   Required because some elements are flex/grid by default and the browser's
   hidden=true default `display:none` loses the cascade. */
[hidden] { display: none !important; }
