/* VENDORED COPY. Source of truth: phase1/DESIGN-TOKENS.json + tokens.css,
   exported from Figma (D-006). Do not hand-edit -- re-export instead.
   test/views.test.js compares this file against the phase1 export when it
   can reach it, so drift is caught rather than discovered. */
/* Wazapod design tokens v0.2.0 — generated from Figma. Do not hand-edit. */
:root {
  --wzp-bg-canvas: #FAF9F7;
  --wzp-bg-surface: #FFFFFF;
  --wzp-bg-surface-sunken: #F2F1ED;
  --wzp-bg-surface-raised: #FFFFFF;
  --wzp-bg-accent-subtle: #EAF0EE;
  --wzp-border-subtle: #E5E3DE;
  --wzp-border-default: #D3D0C9;
  --wzp-border-interactive: #87847E;
  --wzp-border-strong: #87847E;
  --wzp-border-focus: #2F5D50;
  --wzp-border-focus-inverse: #FFFFFF;
  --wzp-text-primary: #1A1A18;
  --wzp-text-secondary: #55534E;
  --wzp-text-muted: #6B6862;
  --wzp-text-on-accent: #FFFFFF;
  --wzp-accent-default: #2F5D50;
  --wzp-accent-hover: #24483E;
  --wzp-accent-text: #245046;
  --wzp-mastery-not-started: #8A8781;
  --wzp-mastery-attempted: #B4531F;
  --wzp-mastery-practiced: #7A5CA8;
  --wzp-mastery-ready: #2F7A4F;
  --wzp-mastery-mastered: #1F4B44;
  --wzp-mastery-not-started-text: #6C6A65;
  --wzp-mastery-attempted-text: #AE501E;
  --wzp-mastery-practiced-text: #795BA7;
  --wzp-mastery-ready-text: #2E784E;
  --wzp-mastery-mastered-text: #1F4B44;
  --wzp-mastery-not-started-bg: #F0EFEC;
  --wzp-mastery-attempted-bg: #FBEEE5;
  --wzp-mastery-practiced-bg: #F1ECF9;
  --wzp-mastery-ready-bg: #E7F3EB;
  --wzp-mastery-mastered-bg: #E1EFEB;
  --wzp-provenance-deck: #2A6099;
  --wzp-provenance-agent: #7A5CA8;
  --wzp-provenance-instructor: #2F7A4F;
  --wzp-provenance-gap: #B4531F;
  --wzp-provenance-gap-text: #B0511E;
  --wzp-provenance-recording: #1F6B70;
  --wzp-status-success: #2F7A4F;
  --wzp-status-attention: #8A5A00;
  --wzp-status-error: #A32A22;
  --wzp-status-info: #2A6099;
  --wzp-status-success-text: #1F5636;
  --wzp-status-attention-text: #6B4600;
  --wzp-status-error-text: #8A231C;
  --wzp-annotate-highlight: #C2410C;
  --wzp-annotate-halo: #FFFFFF;
  --wzp-annotate-callout-bg: #1A1A18;
  --wzp-annotate-callout-text: #FFFFFF;
  --wzp-space-50: 2px;
  --wzp-space-100: 4px;
  --wzp-space-200: 8px;
  --wzp-space-300: 12px;
  --wzp-space-400: 16px;
  --wzp-space-500: 24px;
  --wzp-space-600: 32px;
  --wzp-space-700: 48px;
  --wzp-space-800: 64px;
  --wzp-radius-sm: 4px;
  --wzp-radius-md: 8px;
  --wzp-radius-lg: 12px;
  --wzp-radius-pill: 999px;
  --wzp-size-target-min: 24px;
  --wzp-size-focus-ring: 2px;
}

/* annotate/* are intentionally absent below: they are composited onto screenshots. */
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) {
  --wzp-bg-canvas: #141412;
  --wzp-bg-surface: #1E1E1B;
  --wzp-bg-surface-sunken: #181815;
  --wzp-bg-surface-raised: #262622;
  --wzp-bg-accent-subtle: #1B2A26;
  --wzp-border-subtle: #302F2A;
  --wzp-border-default: #3D3B35;
  --wzp-border-interactive: #787468;
  --wzp-border-strong: #787468;
  --wzp-border-focus: #7FBFAE;
  --wzp-border-focus-inverse: #0F1614;
  --wzp-text-primary: #F5F4F1;
  --wzp-text-secondary: #B4B1A9;
  --wzp-text-muted: #949189;
  --wzp-text-on-accent: #0F1614;
  --wzp-accent-default: #7FBFAE;
  --wzp-accent-hover: #9AD1C2;
  --wzp-accent-text: #9AD1C2;
  --wzp-mastery-not-started: #6E6B64;
  --wzp-mastery-attempted: #D98A55;
  --wzp-mastery-practiced: #A98FD1;
  --wzp-mastery-ready: #66B98A;
  --wzp-mastery-mastered: #7FBFAE;
  --wzp-mastery-not-started-text: #928E85;
  --wzp-mastery-attempted-text: #D98A55;
  --wzp-mastery-practiced-text: #A98FD1;
  --wzp-mastery-ready-text: #66B98A;
  --wzp-mastery-mastered-text: #7FBFAE;
  --wzp-mastery-not-started-bg: #26251F;
  --wzp-mastery-attempted-bg: #33221A;
  --wzp-mastery-practiced-bg: #251E33;
  --wzp-mastery-ready-bg: #16291E;
  --wzp-mastery-mastered-bg: #12241F;
  --wzp-provenance-deck: #7FAEE0;
  --wzp-provenance-agent: #A98FD1;
  --wzp-provenance-instructor: #66B98A;
  --wzp-provenance-gap: #D98A55;
  --wzp-provenance-gap-text: #D98A55;
  --wzp-provenance-recording: #6FBCC1;
  --wzp-status-success: #66B98A;
  --wzp-status-attention: #E0B057;
  --wzp-status-error: #E58079;
  --wzp-status-info: #7FAEE0;
  --wzp-status-success-text: #8ACBA6;
  --wzp-status-attention-text: #E8C57F;
  --wzp-status-error-text: #F0A29C;
} }

:root[data-theme="dark"] {
  --wzp-bg-canvas: #141412;
  --wzp-bg-surface: #1E1E1B;
  --wzp-bg-surface-sunken: #181815;
  --wzp-bg-surface-raised: #262622;
  --wzp-bg-accent-subtle: #1B2A26;
  --wzp-border-subtle: #302F2A;
  --wzp-border-default: #3D3B35;
  --wzp-border-interactive: #787468;
  --wzp-border-strong: #787468;
  --wzp-border-focus: #7FBFAE;
  --wzp-border-focus-inverse: #0F1614;
  --wzp-text-primary: #F5F4F1;
  --wzp-text-secondary: #B4B1A9;
  --wzp-text-muted: #949189;
  --wzp-text-on-accent: #0F1614;
  --wzp-accent-default: #7FBFAE;
  --wzp-accent-hover: #9AD1C2;
  --wzp-accent-text: #9AD1C2;
  --wzp-mastery-not-started: #6E6B64;
  --wzp-mastery-attempted: #D98A55;
  --wzp-mastery-practiced: #A98FD1;
  --wzp-mastery-ready: #66B98A;
  --wzp-mastery-mastered: #7FBFAE;
  --wzp-mastery-not-started-text: #928E85;
  --wzp-mastery-attempted-text: #D98A55;
  --wzp-mastery-practiced-text: #A98FD1;
  --wzp-mastery-ready-text: #66B98A;
  --wzp-mastery-mastered-text: #7FBFAE;
  --wzp-mastery-not-started-bg: #26251F;
  --wzp-mastery-attempted-bg: #33221A;
  --wzp-mastery-practiced-bg: #251E33;
  --wzp-mastery-ready-bg: #16291E;
  --wzp-mastery-mastered-bg: #12241F;
  --wzp-provenance-deck: #7FAEE0;
  --wzp-provenance-agent: #A98FD1;
  --wzp-provenance-instructor: #66B98A;
  --wzp-provenance-gap: #D98A55;
  --wzp-provenance-gap-text: #D98A55;
  --wzp-provenance-recording: #6FBCC1;
  --wzp-status-success: #66B98A;
  --wzp-status-attention: #E0B057;
  --wzp-status-error: #E58079;
  --wzp-status-info: #7FAEE0;
  --wzp-status-success-text: #8ACBA6;
  --wzp-status-attention-text: #E8C57F;
  --wzp-status-error-text: #F0A29C;
}

/* ---------------------------------------------------------------------------
 * TYPOGRAPHY
 *
 * These were MISSING. app.css referenced 24 of them -- every font size, line
 * height and family in the product -- and none was ever defined here, so each
 * of those declarations was invalid and the browser dropped it. The learner and
 * instructor UI has been rendering with no typographic scale at all.
 *
 * Nothing caught it because an undefined custom property fails silently: no
 * error, no warning, and the damage depends on which mode the reader is in. The
 * same mistake shipped the public site as black text on a near-black background.
 * scripts/check-css-tokens.py now fails the build on it.
 *
 * The scale is derived from the two anchors DESIGN-SYSTEM.md line 45 states --
 * display/lg at 40/48 down to label/sm at 11/14 -- and follows its rule that
 * LINE HEIGHTS ARE ABSOLUTE PIXELS, so vertical rhythm survives a font swap.
 * The twelve Figma text styles remain the design source; this is the export that
 * was never written, and DESIGN-TOKENS.json carries no typography at all.
 * ------------------------------------------------------------------------- */
:root {
  --wzp-font-sans: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  /* mono/sm is a placeholder for a real mono face, per DESIGN-SYSTEM.md. */
  --wzp-font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

  --wzp-display-lg: 40px;
  --wzp-display-lg-lh: 48px;
  --wzp-heading-lg: 30px;
  --wzp-heading-lg-lh: 38px;
  --wzp-heading-md: 24px;
  --wzp-heading-md-lh: 32px;
  --wzp-heading-sm: 19px;
  --wzp-heading-sm-lh: 26px;
  --wzp-body-lg:    18px;
  --wzp-body-lg-lh:    28px;
  --wzp-body-md:    16px;
  --wzp-body-md-lh:    26px;
  --wzp-body-sm:    14px;
  --wzp-body-sm-lh:    22px;
  --wzp-label-sm:   11px;
  --wzp-label-sm-lh:   14px;
  --wzp-mono-sm:    13px;
  --wzp-mono-sm-lh:    20px;

  /* Reading measure. Prose wider than this costs comprehension, and it is a
   * token rather than a magic number because every long-form surface needs it. */
  --wzp-measure: 68ch;

  /* Referenced by app.css and site.css for link colour. accent/text is the
   * on-surface accent that already clears 4.5:1; accent/default is the fill. */
  --wzp-text-link: var(--wzp-accent-text);
}
