/* ──────────────────────────────────────────────────────────────────────────
   Design Tokens
   Single source of truth for color, type, spacing, radii, shadow, motion.
   Loaded before all other stylesheets — see routes/_app.tsx.
   See docs/design-system.md for usage and naming.
   ────────────────────────────────────────────────────────────────────────── */

:root {
  /* ── Color: Ink (text and dark surfaces) ─────────────────────────────── */
  --ink-0: #000;
  --ink-1: #1a1a1a; /* primary text, titles */
  --ink-2: #2a2a2a; /* tooltip, atelier dark surface */
  --ink-3: #333; /* hover state for dark text */
  --ink-4: #444; /* body copy */
  --ink-5: #555; /* default text / form labels */
  --ink-6: #666; /* subdued text */
  --ink-7: #888; /* muted labels */
  --ink-8: #999; /* hint, ellipsis, count */
  --ink-9: #aaa; /* very muted */
  --ink-10: #bbb; /* placeholder text */
  --ink-11: #ccc; /* divider hairline on light bg */

  /* ── Color: Paper (warm beige neutrals & whites) ─────────────────────── */
  --paper-0: #fff; /* card / input bg */
  --paper-1: #faf8f4; /* modal surface, alt row */
  --paper-2: #f5f1e8; /* hover row */
  --paper-3: #f4f1eb; /* page background */
  --paper-4: #f0ebdf; /* tag bg, info bg */
  --paper-5: #eae6de; /* placeholder block */
  --paper-6: #e8e4dc; /* hairline rule (warm) */
  --paper-7: #e4dcc1; /* chip-wrap (gear ≡ N) */
  --paper-8: #f5f3ee; /* dropdown hover */
  --paper-9: #f0ece4; /* table row separator */

  /* ── Color: Border (warm) ────────────────────────────────────────────── */
  --border-soft: #ddd; /* form & control borders on white */
  --border-warm: #d6cfbf; /* info border, divider */
  --border-strong: #c9bfa5; /* secondary button border, table head */
  --border-accent: #dcd3ba; /* facet chip border */
  --border-wrap: #c9bc9a; /* chip-wrap border */
  --border-row: #e5ddca; /* table cell border */

  /* ── Color: Brand & accent ───────────────────────────────────────────── */
  --accent-gold: #c4a23b;
  --accent-gold-soft: rgba(196, 162, 59, 0.2); /* focus ring glow */
  --link-hover: #203864;

  /* ── Color: Atelier dark mode ────────────────────────────────────────── */
  --tooltip-bg: var(--ink-2);
  --tooltip-fg: #f5f1e6;
  --canvas-bg: var(--ink-0);

  /* ── Color: Feedback ─────────────────────────────────────────────────── */
  --info-bg: var(--paper-4);
  --info-fg: #534b3a;
  --info-border: var(--border-warm);

  --error-bg: #f7e3d8;
  --error-fg: #75331a;
  --error-text: #c44a30;
  --error-border: #e5b89c;

  --success-bg: #e3edd5;
  --success-fg: #4a6a35;
  --success-border: #c5d4ae;

  --pos: #5b8a72; /* table delta positive */
  --neg: #a35d6a; /* table delta negative */
  --note-dot: #e8b800; /* facet "noted" indicator */

  /* ── Typography: Size scale ──────────────────────────────────────────── */
  --fs-2xs: 0.65rem; /* eyebrow / micro label */
  --fs-xs: 0.7rem; /* eyebrow large */
  --fs-sm: 0.75rem; /* small label, breadcrumb */
  --fs-base: 0.8rem; /* secondary text, controls */
  --fs-md: 0.85rem; /* body */
  --fs-lg: 0.9rem; /* prose */
  --fs-xl: 1rem; /* article body */
  --fs-2xl: 1.2rem; /* section title */
  --fs-3xl: 2rem; /* page subtitle */
  --fs-4xl: 2.4rem; /* page title */
  --fs-5xl: 3rem; /* hero title */

  /* ── Typography: Weight ──────────────────────────────────────────────── */
  --fw-regular: 400;
  --fw-medium: 500;
  --fw-semi: 600;
  --fw-bold: 700;

  /* ── Typography: Letter spacing ──────────────────────────────────────── */
  --tracking-snug: 0.02em;
  --tracking-base: 0.04em;
  --tracking-wide: 0.05em;
  --tracking-wider: 0.08em;
  --tracking-widest: 0.15em;

  /* ── Spacing scale (rem; ~4pt step) ──────────────────────────────────── */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-16: 4rem;

  /* ── Radii ───────────────────────────────────────────────────────────── */
  --radius-sm: 0.2rem;
  --radius-md: 0.25rem;
  --radius-lg: 0.3rem;
  --radius-xl: 0.5rem;
  --radius-pill: 999px;

  /* ── Shadows ─────────────────────────────────────────────────────────── */
  --shadow-card: 0 1px 4px rgba(0, 0, 0, 0.04);
  --shadow-elevated: 0 4px 12px rgba(0, 0, 0, 0.08);
  --shadow-modal: 0 8px 32px rgba(0, 0, 0, 0.12);
  --shadow-tooltip: 0 2px 8px rgba(0, 0, 0, 0.15);
  --shadow-chip-hover: 0 2px 8px rgba(0, 0, 0, 0.15);

  /* ── Motion ──────────────────────────────────────────────────────────── */
  --t-fast: 100ms;
  --t-base: 150ms;
  --t-slow: 200ms;
  --ease: ease;

  /* ── Layout ──────────────────────────────────────────────────────────── */
  --sidebar-width: 12rem;
  --content-max: 56rem;
  --side-width: 16rem; /* atelier panel max */
  --side-min-width: 3rem; /* atelier panel min */

  /* ── Atelier control palette (kept for editor-side back-compat) ──────── */
  --control-forecolor: #222;
  --control-hover-forecolor: var(--ink-5);
  --control-backcolor: #eee;
  --control-hover-backcolor: #f7f7f7;
  --control-border-color: var(--border-soft);
  --control-accent-color: var(--accent-gold);
  --editor-forecolor: var(--ink-0);
  --editor-backcolor: #fafafa;

  /* ── Legacy aliases (avoid in new code; use the canonical token) ─────── */
  --nav-text: var(--ink-5);
  --landing-bg: var(--paper-3);
  --link-hover-color: var(--link-hover);
}

/* Mobile: collapse the fixed sidebar gutter so pages don't reserve space. */
@media screen and (max-width: 800px) {
  :root {
    --sidebar-width: 0rem;
  }
}
