/*
 * Design tokens (issue #43): every visual decision is a custom property —
 * screens compose tokens, they never invent values. Neutral palette + one
 * accent (dependency-free 37signals philosophy: beauty as a choice, never
 * bling). Status hues are functional only (badges, flashes).
 *
 * Dark mode is explicitly out of v1 scope: the token layer is the seam —
 * a future `prefers-color-scheme` override of :root restyles everything.
 */

:root {
  /* Neutral palette + the one accent */
  --ink: #1f2430;
  --muted: #5b6472;
  --paper: #fbfbfc;
  --surface: #ffffff;
  --line: #e3e6ea;
  --accent: #256d4a;
  --accent-ink: #ffffff;

  /* Functional status hues — badge/flash inks on their soft backgrounds,
     all ≥ WCAG AA (4.5:1) for text */
  --success: #256d4a;
  --success-bg: #e8f4ec;
  --success-line: #bcdcc7;
  --info: #2b5cae;
  --info-bg: #e6eefc;
  --info-line: #c4d6f7;
  --warning: #78350f;
  --warning-bg: #fdf3e3;
  --warning-line: #f0ddb4;
  --danger: #a1352c;
  --danger-bg: #faeceb;
  --danger-line: #ecc7c3;
  --neutral-bg: #eceff3;

  /* Type scale (system font stack lives in base.css) */
  --text-xs: 0.75rem;
  --text-sm: 0.85rem;
  --text-base: 1rem;
  --text-lg: 1.125rem;
  --text-xl: 1.45rem;
  --weight-semibold: 600;
  --weight-bold: 650;
  --leading: 1.55;

  /* Spacing scale */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-8: 4rem;

  /* Radii */
  --radius-sm: 4px;
  --radius-md: 6px;
  --radius-lg: 8px;
  --radius-full: 999px;

  /* Shadows (restraint: one soft lift for cards) */
  --shadow-sm: 0 1px 2px rgb(31 36 48 / 0.06);
  --shadow-md: 0 2px 8px rgb(31 36 48 / 0.08);

  /* Focus ring — visible on every interactive element */
  --focus-ring: 2px solid var(--accent);

  /* Content measure */
  --measure: 54rem;
}
