/* BGV Platform UI - generated from tokens.json */
:root, [data-theme="light"] {
  --surface-page: #f6f7f9;
  --surface: #ffffff;
  --surface-sunken: #eef0f3;
  --border: #d5d9e0;
  --border-strong: #7c8592;
  --ink: #14181f;
  --ink-muted: #4f5866;
  --focus: #0b57d0;
  --on-accent: #ffffff;
  --product-bgv: #34495e;
  --product-bgv-subtle: #e9eef3;
  --product-captive: #1f5fbf;
  --product-captive-subtle: #e7eefa;
  --product-school: #8a5600;
  --product-school-subtle: #f6ecdc;
  --product-eduplanner: #1e6b3a;
  --product-eduplanner-subtle: #e3f1e7;
  --product-research: #7a1f2e;
  --product-research-subtle: #f5e5e7;
  --product-results: #22386b;
  --product-results-subtle: #e7ebf4;
  --accent: var(--product-bgv);
  --accent-subtle: var(--product-bgv-subtle);
  --success: #0b6670;
  --success-subtle: #e1f2f3;
  --warning: #8a4b00;
  --warning-subtle: #fbefdc;
  --danger: #b42318;
  --danger-subtle: #fbe8e6;
  --info: #1d5a9e;
  --info-subtle: #e5eef9;
  --scrim: rgba(15, 18, 22, 0.5);
  --shadow-overlay: 0 8px 24px rgba(20, 24, 31, 0.12), 0 2px 6px rgba(20, 24, 31, 0.08);
}
[data-theme="dark"] {
  --surface-page: #0f1216;
  --surface: #171b21;
  --surface-sunken: #0b0e12;
  --border: #2c333d;
  --border-strong: #6b7684;
  --ink: #e8ebef;
  --ink-muted: #a3acb8;
  --focus: #8ab4ff;
  --on-accent: #0f1216;
  --product-bgv: #a9bdd2;
  --product-bgv-subtle: #1a222c;
  --product-captive: #86adf2;
  --product-captive-subtle: #15223a;
  --product-school: #e9b25f;
  --product-school-subtle: #2b2110;
  --product-eduplanner: #74cf93;
  --product-eduplanner-subtle: #13271b;
  --product-research: #f09aa6;
  --product-research-subtle: #2e171b;
  --product-results: #9db4ea;
  --product-results-subtle: #182037;
  --accent: var(--product-bgv);
  --accent-subtle: var(--product-bgv-subtle);
  --success: #5cc8cf;
  --success-subtle: #10282b;
  --warning: #f2b65a;
  --warning-subtle: #2e2210;
  --danger: #ff8a7a;
  --danger-subtle: #331614;
  --info: #7fb2f0;
  --info-subtle: #13243a;
  --scrim: rgba(0, 0, 0, 0.6);
  --shadow-overlay: 0 8px 24px rgba(0, 0, 0, 0.5), 0 2px 6px rgba(0, 0, 0, 0.4);
}
:root {
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 64px;
  --radius-sm: 4px;
  --radius-md: 6px;
  --radius-lg: 10px;
  --control-sm: 32px;
  --control-md: 40px;
  --control-lg: 48px;
  --sidebar-width: 248px;
  --content-max: 1200px;
  --form-max: 640px;
  --font-sans: "Public Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-mono: "IBM Plex Mono", ui-monospace, Consolas, monospace;
}
.type-display { font-family: var(--font-sans); font-size: 32px; line-height: 40px; font-weight: 700; letter-spacing: -0.01em; }
.type-h1 { font-family: var(--font-sans); font-size: 24px; line-height: 32px; font-weight: 600; }
.type-h2 { font-family: var(--font-sans); font-size: 20px; line-height: 28px; font-weight: 600; }
.type-h3 { font-family: var(--font-sans); font-size: 16px; line-height: 24px; font-weight: 600; }
.type-body { font-family: var(--font-sans); font-size: 16px; line-height: 24px; font-weight: 400; }
.type-body-sm { font-family: var(--font-sans); font-size: 14px; line-height: 20px; font-weight: 400; }
.type-label { font-family: var(--font-sans); font-size: 14px; line-height: 20px; font-weight: 500; }
.type-caption { font-family: var(--font-sans); font-size: 12px; line-height: 16px; font-weight: 500; }
.type-figure { font-family: var(--font-sans); font-size: 28px; line-height: 36px; font-weight: 600; }
.type-code { font-family: var(--font-mono); font-size: 14px; line-height: 20px; font-weight: 400; }
