/* Genesis visual primitives. Self-hosted fonts retain licenses in /fonts/. */
@font-face{font-family:"General Sans";src:url("/fonts/general-sans-variable.woff2") format("woff2");font-style:normal;font-weight:200 700;font-display:swap}
@font-face{font-family:"DM Sans";src:url("/fonts/dm-sans-variable.woff2") format("woff2");font-style:normal;font-weight:100 1000;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url("/fonts/jetbrains-mono-variable.woff2") format("woff2");font-style:normal;font-weight:100 800;font-display:swap}
:root {
  color-scheme: light;
  --font-family: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  --font-heading-family: "General Sans", "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  --font-code-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Consolas, monospace;
  --font-body: 15px;
  --font-small: 13px;
  --font-heading: 28px;
  --primary: #6366f1;
  --primary-hover: #4f46e5;
  /* Small labels use the accepted darker shade: 6.29:1 against white. */
  --primary-action: #4f46e5;
  --primary-ink: #4f46e5;
  --purple: var(--primary-action);
  --purple-dark: var(--primary-hover);
  --brand-purple: #6366f1;
  --violet-soft: #eef0ff;
  --ink: #0a0a0a;
  --muted: #6b6b6b;
  --neutral: #9c9c9c;
  --line: #e8e8ec;
  --control-line: #8e8e98;
  --line-hover: #c8c8d0;
  --surface: #ffffff;
  --surface-alt: #f5f5f7;
  --sidebar-bg: #ffffff;
  --header-bg: #ffffffeb;
  --bg: #fafafa;
  --success: #10b981;
  --warning: #f59e0b;
  --error: #ef4444;
  --green: #047857;
  --green-soft: #ecfdf5;
  --green-line: #b2e8d4;
  --orange: #92400e;
  --orange-soft: #fffbeb;
  --orange-line: #efdbab;
  --red: #b91c1c;
  --red-soft: #fef2f2;
  --red-line: #f0c6c6;
  --on-primary: #ffffff;
  --radius-control: 6px;
  --radius-card: 12px;
  --radius-modal: 12px;
  --radius: var(--radius-card);
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --control-height: 44px;
  --control-padding-y: 8px;
  --control-padding-x: 16px;
  --card-padding: 20px;
  --shadow-card: none;
  --shadow-card-hover: 0 8px 30px #0a0a0a14;
  --shadow-button: none;
  --shadow-primary: 0 4px 12px #6366f12e;
  --shadow: var(--shadow-card);
  --shadow-modal: 0 20px 56px #0a0a0a26;
  --shadow-focus: 0 0 0 3px #6366f11f;
  --focus-width: 2px;
  --focus-color: var(--primary);
  --card: var(--surface);
  --accent: var(--primary);
  --soft: var(--violet-soft);
  --border: var(--line);
  --text: var(--ink);
}
:root[data-theme=dark], body.dark {
  color-scheme: dark;
  --primary: #a5a6ff;
  --primary-hover: #b9baff;
  --primary-action: #a5a6ff;
  --primary-ink: #b9baff;
  --purple: var(--primary-action);
  --purple-dark: var(--primary-hover);
  --violet-soft: #29283f;
  --ink: #fafafa;
  --muted: #a1a1aa;
  --neutral: #797984;
  --line: #2f2f38;
  --control-line: #777782;
  --line-hover: #50505c;
  --surface: #18181b;
  --surface-alt: #222226;
  --sidebar-bg: #151518;
  --header-bg: #18181beb;
  --bg: #101013;
  --green: #6ee7b7;
  --green-soft: #17352a;
  --green-line: #2f604c;
  --orange: #fcd38d;
  --orange-soft: #3a2d1b;
  --orange-line: #6b512a;
  --red: #fca5a5;
  --red-soft: #3d2328;
  --red-line: #704048;
  --on-primary: #141326;
  --shadow-card: none;
  --shadow-card-hover: 0 8px 30px #00000040;
  --shadow-button: none;
  --shadow-primary: 0 4px 12px #6366f12e;
  --shadow-modal: 0 20px 56px #00000070;
  --shadow-focus: 0 0 0 3px #a5a6ff33;
}

