/* GENERATED — do not edit. Run `npm run gen:prototype-tokens` to
   regenerate from app/src/styles.css's two theme-token rule sets
   (app/scripts/gen-prototype-tokens.mjs).

   Known gaps, both deliberate:
   - The @media (max-width: 600px) overrides of --space-* are not carried;
     prototypes are desktop-first.
   - --font-sans names "Geist"/"Geist Fallback", whose @font-face rules
     live outside these two blocks, so a prototype renders in the system
     sans stack, not Geist. */
:root {
  color-scheme: dark;
  --bg: #0b0e10;
  --bg-elev: #141a1d;
  --bg-elev-2: #1a2024;
  --bg-hover: #21282d;
  --border: #2a323a;
  --border-strong: #3b454f;
  --text: #ebedf0;
  --text-dim: #9aa3ad;
  --terminal-bg: #0a0a0c;
  --terminal-fg: #ebedf0;
  --text-faint: #868f9c;
  --accent: #4ade80;
  --accent-on: #0b0e10;
  --accent-soft: #14532d;
  --accent-strong: #86efac;
  --accent-glow: rgba(74,222,128,0.20);
  --accent-tint: rgba(74,222,128,0.08);
  --accent-chip-bg: color-mix(in oklab, var(--accent) 8%, var(--bg-elev-2));
  --search-hit-bg: #facc15;
  --search-hit-fg: #1c1917;
  --cta: #15803d;
  --cta-hover: #126b33;
  --cta-on: #ffffff;
  --danger: #b34040;
  --danger-hover: #8a2e2e;
  --danger-border: #8a2e2e;
  --danger-ink: #d47878;
  --brand-silver: #c0c8d0;
  --pri-high: #e78989;
  --pri-normal: #d6c463;
  --pri-low: #b0b0b0;
  --pri-high-bg: color-mix(in oklab, var(--pri-high) 15%, var(--bg-elev-2));
  --pri-normal-bg: color-mix(in oklab, var(--pri-normal) 15%, var(--bg-elev-2));
  --pri-low-bg: color-mix(in oklab, var(--pri-low) 15%, var(--bg-elev-2));
  --stage-bg-sl: 55% 55%;
  --stage-fg-sl: 60% 72.5%;
  --status-pending: #a1a6ae;
  --status-in-progress: #4fb0c6;
  --status-in-progress-on: #0b0e10;
  --status-done: #6fbf73;
  --status-cancelled: #b0b0b0;
  --status-blocked: #e78989;
  --status-blocked-on: #0b0e10;
  --status-ready-for-review: #c794d4;
  --status-warning: #d49f47;
  --status-pending-bg: color-mix(in oklab, var(--status-pending) 15%, var(--bg-elev-2));
  --status-in-progress-bg: color-mix(in oklab, var(--status-in-progress) 15%, var(--bg-elev-2));
  --status-done-bg: color-mix(in oklab, var(--status-done) 15%, var(--bg-elev-2));
  --status-cancelled-bg: color-mix(in oklab, var(--status-cancelled) 15%, var(--bg-elev-2));
  --status-blocked-bg: color-mix(in oklab, var(--status-blocked) 15%, var(--bg-elev-2));
  --status-ready-for-review-bg: color-mix(in oklab, var(--status-ready-for-review) 15%, var(--bg-elev-2));
  --status-warning-bg: color-mix(in oklab, var(--status-warning) 15%, var(--bg-elev-2));
  --status-in-progress-bg-subtle: color-mix(in oklab, var(--status-in-progress) 6%, var(--bg-elev));
  --status-in-progress-bg-soft: color-mix(in oklab, var(--status-in-progress) 10%, var(--bg-elev));
  --status-ready-for-review-bg-subtle: color-mix(in oklab, var(--status-ready-for-review) 8%, var(--bg-elev));
  --status-warning-bg-subtle: color-mix(in oklab, var(--status-warning) 12%, var(--bg-elev));
  --status-warning-bg-medium: color-mix(in oklab, var(--status-warning) 16%, var(--bg-elev));
  --status-done-bg-subtle: color-mix(in oklab, var(--status-done) 15%, var(--bg-elev));
  --status-warning-bg-callout: color-mix(in oklab, var(--status-warning) 10%, var(--bg-elev));
  --status-blocked-bg-callout: color-mix(in oklab, var(--status-blocked) 10%, var(--bg-elev));
  --status-done-border: color-mix(in oklab, var(--status-done) 40%, transparent);
  --status-done-border-strong: color-mix(in oklab, var(--status-done) 50%, transparent);
  --status-done-glow: color-mix(in oklab, var(--status-done) 45%, transparent);
  --status-in-progress-border: color-mix(in oklab, var(--status-in-progress) 40%, transparent);
  --status-in-progress-border-soft: color-mix(in oklab, var(--status-in-progress) 30%, transparent);
  --status-blocked-border: color-mix(in oklab, var(--status-blocked) 50%, transparent);
  --status-ready-for-review-border: color-mix(in oklab, var(--status-ready-for-review) 45%, transparent);
  --status-warning-border: color-mix(in oklab, var(--status-warning) 35%, transparent);
  --viz-1: #7c5cff;
  --viz-2: #ef9b4d;
  --viz-3: #ef6f91;
  --viz-4: #2fb8a3;
  --viz-5: #b9dd4a;
  --viz-6: #4fc8e8;
  --viz-heat: #7c5cff;
  --viz-generation: var(--viz-1);
  --viz-overhead: var(--viz-2);
  --viz-billed: var(--viz-3);
  --viz-covered: var(--viz-4);
  --viz-throughput: var(--viz-5);
  --viz-task-bound: var(--viz-2);
  --viz-task-free: var(--viz-4);
  --tl-status: #5b9bd5;
  --tl-assign: #b59be0;
  --tl-session: #4cc4d6;
  --space-0: 0;
  --space-1: 4px;
  --space-2: 6px;
  --space-3: 8px;
  --space-4: 12px;
  --space-5: 16px;
  --space-6: 20px;
  --space-7: 24px;
  --space-8: 32px;
  --space-hairline: 2px;
  --space-px: 1px;
  --indent-step: var(--space-6);
  --pad-xs: var(--space-2) var(--space-3);
  --pad-sm: var(--space-3) var(--space-4);
  --pad-md: var(--space-4) var(--space-5);
  --pad-lg: var(--space-5);
  --box-text: 1em;
  --box-xs: 14px;
  --box-sm: 20px;
  --box-md: 26px;
  --box-lg: 34px;
  --page-pad-y: clamp(16px, 2.4vw, 32px);
  --page-pad-x: var(--page-pad-y);
  --sub-header-h: 41px;
  --topbar-h: 64px;
  --scroll-panel-xs: 200px;
  --scroll-panel-sm: 240px;
  --scroll-panel-md: 320px;
  --scroll-panel-lg: 420px;
  --panel-w-sm: 200px;
  --panel-w-md: 280px;
  --panel-w-lg: 600px;
  --content-w-sm: 480px;
  --content-w-md: 760px;
  --content-w-lg: 1100px;
  --text-2xs: 11px;
  --text-xs: 12px;
  --text-sm: 13px;
  --text-base: 14px;
  --text-md: 15px;
  --text-lg: 17px;
  --text-xl: 20px;
  --text-2xl: 30px;
  --leading-none: 1;
  --leading-display: 1.2;
  --leading-tight: 1.4;
  --leading-base: 1.5;
  --leading-relaxed: 1.6;
  --measure: 70ch;
  --measure-tight: 44ch;
  --font-sans: "Geist", "Geist Fallback", -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif;
  --font-mono: "Geist Mono", "JetBrains Mono", "SF Mono", Menlo, Monaco, ui-monospace, monospace;
  --weight-normal: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --weight-bold: 700;
  --tracking-display: -0.03em;
  --tracking-heading: -0.01em;
  --tracking-wide: 0.01em;
  --tracking-overline: 0.06em;
  --radius-xs: 3px;
  --radius-sm: 4px;
  --radius-md: 6px;
  --radius-lg: 10px;
  --radius-xl: 14px;
  --radius-full: 999px;
  --field-w-xs: 72px;
  --field-w-sm: 120px;
  --field-w-md: 200px;
  --field-w-lg: 300px;
  --rail-w-sm: 200px;
  --rail-w-md: 260px;
  --rail-w-lg: 320px;
  --mobile-card-label-col: 38%;
  --search-w: 416px;
  --shadow-sm: 0 1px 2px rgba(0,0,0,0.04), 0 1px 1px rgba(0,0,0,0.03);
  --shadow-md: 0 2px 4px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);
  --shadow-lg: 0 8px 16px rgba(0,0,0,0.08), 0 2px 4px rgba(0,0,0,0.05);
  --shadow-overlay-color: rgba(0,0,0,0.28);
  --shadow-overlay: 0 8px 32px var(--shadow-overlay-color);
  --z-sticky-content: 5;
  --z-sticky: 10;
  --z-nav: 20;
  --z-nav-panel: 21;
  --z-topbar: 30;
  --z-dropdown: 40;
  --z-overlay: 50;
  --z-toast: 60;
  --z-tooltip: 70;
  --overlay-scrim: rgba(0,0,0,0.4);
  --t-short: 140ms;
  --t-base: 220ms;
  --t-enter: 160ms;
  --t-hero: 420ms;
  --t-spin: 0.6s;
  --t-pulse: 1.8s;
  --t-shimmer: 1.4s;
  --ease: cubic-bezier(0.4, 0, 0.2, 1);
  --ease-out: cubic-bezier(0.2, 0.8, 0.2, 1);
  --control-height: 38px;
  --control-pad-y: 7px;
  --control-height-sm: 30px;
  --control-pad-y-sm: 3px;
  --control-pad-x: 12px;
  --kv-row-h: var(--control-height-sm);
  --table-row-h: calc(var(--control-height-sm) + 2 * var(--space-3) + 1px);
  --tap-min: 24px;
  --tap-min-comfortable: 40px;
  --focus-ring: 0 0 0 3px color-mix(in oklab, var(--accent) 25%, transparent);
  --focus-ring-inset: inset 0 0 0 2px color-mix(in oklab, var(--accent) 45%, transparent);
  --focus-ring-danger: 0 0 0 3px color-mix(in oklab, var(--status-blocked) 25%, transparent);
  --disabled-opacity: 0.5;
  --disabled-fill: var(--bg-elev-2);
  --disabled-border: var(--border);
  --disabled-ink: var(--text-dim);
  --hljs-comment: #8b949e;
  --hljs-keyword: #ff7b72;
  --hljs-string: #a5d6a7;
  --hljs-number: #79c0ff;
  --hljs-function: #d2a8ff;
  --hljs-type: #ffa657;
  --hljs-attr: #7ee787;
  --hljs-operator: #89ddff;
  --hljs-property: #79c0ff;
  --hljs-meta: #d2a8ff;
  --hljs-deletion-fg: #ffa198;
  --hljs-deletion-bg: rgba(255,161,152,0.12);
  --hljs-addition-fg: #56d364;
  --hljs-addition-bg: rgba(86,211,100,0.12);
}
:root[data-theme="light"] {
  color-scheme: light;
  --bg: #f6f8f7;
  --bg-elev: #ffffff;
  --bg-elev-2: #eef2ef;
  --bg-hover: #e6ebe7;
  --border: #e0e6e2;
  --border-strong: #c6cec9;
  --text: #1a201d;
  --text-dim: #5b6463;
  --terminal-bg: #1a2024;
  --terminal-fg: #ebedf0;
  --text-faint: #606874;
  --accent: #0f7a35;
  --accent-on: #ffffff;
  --accent-soft: #8fe3b0;
  --accent-strong: #0b5f29;
  --accent-glow: rgba(15,122,53,0.16);
  --accent-tint: rgba(15,122,53,0.06);
  --accent-chip-bg: color-mix(in oklab, var(--accent) 8%, var(--bg-elev-2));
  --search-hit-bg: #facc15;
  --search-hit-fg: #1c1917;
  --brand-silver: #5b6470;
  --danger-ink: #b34040;
  --shadow-overlay-color: rgba(0,0,0,0.12);
  --shadow-overlay: 0 8px 32px var(--shadow-overlay-color);
  --status-pending: #525b64;
  --status-in-progress: #0550ae;
  --status-in-progress-on: #ffffff;
  --status-done: #116329;
  --status-cancelled: #5a5a5a;
  --status-blocked: #a40e26;
  --status-blocked-on: #ffffff;
  --status-ready-for-review: #5a32a3;
  --status-warning: #7d4e00;
  --pri-high: #a40e26;
  --pri-normal: #7d4e00;
  --pri-low: #5a5a5a;
  --stage-bg-sl: 55% 40%;
  --stage-fg-sl: 65% 23.5%;
  --tl-status: #1c5f96;
  --tl-assign: #6a3fb0;
  --tl-session: #0f7a8c;
  --viz-1: #6b3fd6;
  --viz-2: #b5590a;
  --viz-3: #c23566;
  --viz-4: #147d6b;
  --viz-5: #5a8f16;
  --viz-6: #0f7fa3;
  --viz-heat: #6b3fd6;
  --hljs-comment: #656d76;
  --hljs-keyword: #cf222e;
  --hljs-string: #0a3069;
  --hljs-number: #0550ae;
  --hljs-function: #7f4cde;
  --hljs-type: #953800;
  --hljs-attr: #116329;
  --hljs-operator: #24292f;
  --hljs-property: #0550ae;
  --hljs-meta: #7f4cde;
  --hljs-deletion-fg: #82071e;
  --hljs-deletion-bg: rgba(130,7,30,0.08);
  --hljs-addition-fg: #116329;
  --hljs-addition-bg: rgba(17,99,41,0.08);
}
