/* Dolphin Design System tokens. Generated by tools/export_tokens.py from ds/project/tokens.json. Do not edit. */
/* Use the purpose tokens (surface, text, action-primary …) in components; scale steps (blue-700 …) only to define new purpose tokens. */

:root {
  color-scheme: light;
  /* Colors (light theme) */
  --blue-50: #f2f7ff;
  --blue-100: #e1eefe;
  --blue-200: #c0dafd;
  --blue-300: #91c1ff;
  --blue-400: #5aa3fd;
  --blue-500: #3685e3;
  --blue-600: #1869c2;
  --blue-700: #0051a1;
  --blue-800: #013f7f;
  --blue-900: #002e60;
  --blue-950: #002047;
  --green-50: #e9fee8;
  --green-100: #dcf9da;
  --green-200: #bbedb8;
  --green-300: #8fd98d;
  --green-400: #62c061;
  --green-500: #46ad47;
  --green-600: #15871e;
  --green-700: #0f6d16;
  --green-800: #09570f;
  --green-900: #034007;
  --green-950: #012c03;
  --neutral-50: #f2f7ff;
  --neutral-100: #e1eeff;
  --neutral-200: #cbdbef;
  --neutral-300: #b0c1d7;
  --neutral-400: #93a5bc;
  --neutral-500: #7689a2;
  --neutral-600: #5b6d84;
  --neutral-700: #48586c;
  --neutral-800: #374557;
  --neutral-900: #273242;
  --neutral-950: #192431;
  --neutral-0: #ffffff;
  --neutral-1000: #07101b;
  --success-50: #effce7;
  --success-100: #dff3d0;
  --success-200: #c1e2a8;
  --success-300: #9ecb79;
  --success-400: #7baf4b;
  --success-500: #5d9222;
  --success-600: #48770a;
  --success-700: #386000;
  --success-800: #2b4c01;
  --success-900: #1f3900;
  --success-950: #162902;
  --warning-50: #feefe0;
  --warning-100: #fee1c3;
  --warning-200: #ffc688;
  --warning-300: #f9a129;
  --warning-400: #d88703;
  --warning-500: #b4710d;
  --warning-600: #935a00;
  --warning-700: #764804;
  --warning-800: #5d3803;
  --warning-900: #462901;
  --warning-950: #341d00;
  --danger-50: #fff4f2;
  --danger-100: #ffe5de;
  --danger-200: #fec7ba;
  --danger-300: #ff9d85;
  --danger-400: #f46e50;
  --danger-500: #d64b2c;
  --danger-600: #b6300f;
  --danger-700: #952305;
  --danger-800: #771b04;
  --danger-900: #5b1202;
  --danger-950: #440a01;
  --surface: var(--neutral-0);
  --surface-subtle: var(--neutral-50);
  --surface-raised: var(--neutral-0);
  --surface-sunken: var(--neutral-100);
  --surface-brand: var(--blue-700);
  --surface-brand-strong: var(--blue-800);
  --text: var(--neutral-1000);
  --text-muted: var(--neutral-700);
  --text-subtle: var(--neutral-500);
  --text-brand: var(--blue-700);
  --text-on-brand: var(--neutral-0);
  --text-link: var(--blue-700);
  --text-link-hover: var(--blue-800);
  --border: var(--neutral-200);
  --border-strong: var(--neutral-500);
  --border-dashed: var(--neutral-300);
  --divider: var(--neutral-200);
  --action-primary: var(--green-600);
  --action-primary-hover: var(--green-700);
  --action-primary-text: var(--neutral-0);
  --action-secondary: var(--green-700);
  --action-secondary-hover: var(--green-800);
  --accent: var(--green-500);
  --focus-ring: var(--blue-600);
  --success: var(--success-500);
  --success-text: var(--success-600);
  --success-subtle: var(--success-50);
  --success-border: var(--success-200);
  --success-solid: var(--success-600);
  --success-on-solid: var(--neutral-0);
  --warning: var(--warning-500);
  --warning-text: var(--warning-600);
  --warning-subtle: var(--warning-50);
  --warning-border: var(--warning-200);
  --warning-solid: var(--warning-300);
  --warning-on-solid: var(--neutral-1000);
  --danger: var(--danger-600);
  --danger-text: var(--danger-600);
  --danger-subtle: var(--danger-50);
  --danger-border: var(--danger-200);
  --danger-solid: var(--danger-600);
  --danger-on-solid: var(--neutral-0);
  --info: var(--blue-500);
  --info-text: var(--blue-600);
  --info-subtle: var(--blue-50);
  --info-border: var(--blue-200);
  --info-solid: var(--blue-600);
  --info-on-solid: var(--neutral-0);
  --chart-1: var(--blue-700);
  --chart-2: var(--green-500);
  --chart-3: #7a59c3;
  --chart-4: #fe8c2c;
  --chart-5: #067d9f;
  --chart-6: #d3a813;
  --chart-7: #a83876;
  --chart-8: #70adfd;
  --chart-9: #0f9085;
  --chart-10: #b296ff;
  --chart-11: #9e5108;
  --chart-12: #1abbed;
  --chart-13: #137f1f;
  --chart-14: #f47db9;
  --chart-15: #806506;
  --chart-16: #0bc5b5;
  --chart-midpoint: var(--neutral-100);
  --primary: var(--blue-700);
  --cta: var(--green-500);
  --cta-hover: var(--action-primary-hover);
  --on-cta: var(--action-primary-text);
  --on-primary: var(--text-on-brand);
  --background: var(--surface);
  --section-background: var(--surface-subtle);
  --gradient-start: #3ca33d;
  --gradient-end: #2d7fc2;
  --state-hover: rgba(0, 81, 161, 0.035);
  --state-pressed: rgba(0, 81, 161, 0.10);
  --state-selected: var(--blue-100);
  --state-selected-text: var(--blue-800);
  --state-selected-text-muted: var(--blue-700);
  --state-selected-indicator: var(--blue-700);
  --state-disabled: var(--neutral-100);
  --state-disabled-text: var(--neutral-500);
  --row-hover: var(--state-hover);
  --row-selected: var(--state-selected);
  --severity-fatal: var(--danger-800);
  --severity-fatal-text: var(--danger-800);
  --severity-fatal-subtle: var(--danger-100);
  --severity-fatal-border: var(--danger-300);
  --severity-fatal-solid: var(--danger-800);
  --severity-fatal-on-solid: var(--neutral-0);
  --severity-error: var(--danger);
  --severity-error-text: var(--danger-text);
  --severity-error-subtle: var(--danger-subtle);
  --severity-error-border: var(--danger-border);
  --severity-error-solid: var(--danger-solid);
  --severity-error-on-solid: var(--neutral-0);
  --severity-warning: var(--warning);
  --severity-warning-text: var(--warning-text);
  --severity-warning-subtle: var(--warning-subtle);
  --severity-warning-border: var(--warning-border);
  --severity-warning-solid: var(--warning-solid);
  --severity-warning-on-solid: var(--warning-on-solid);
  --severity-info: var(--info);
  --severity-info-text: var(--info-text);
  --severity-info-subtle: var(--info-subtle);
  --severity-info-border: var(--info-border);
  --severity-info-solid: var(--info-solid);
  --severity-info-on-solid: var(--info-on-solid);
  --severity-debug: var(--neutral-500);
  --severity-debug-text: var(--neutral-700);
  --severity-debug-subtle: var(--neutral-100);
  --severity-debug-border: var(--neutral-300);
  --severity-debug-solid: var(--neutral-600);
  --severity-debug-on-solid: var(--neutral-0);
  --chart-grid: var(--neutral-100);
  --chart-axis: var(--neutral-300);
  --chart-label: var(--text-muted);
  --chart-empty: var(--neutral-200);
  --chart-tooltip: var(--surface-raised);
  --nav-surface: var(--blue-700);
  --nav-text: var(--neutral-0);
  --nav-text-muted: var(--blue-200);
  --nav-item-hover: rgba(255, 255, 255, 0.08);
  --nav-item-current: var(--blue-600);
  --nav-text-current: var(--neutral-0);
  --nav-icon-current: var(--green-300);
  --nav-indicator: var(--neutral-0);
  --nav-divider: rgba(255, 255, 255, 0.16);
  --nav-focus-ring: var(--neutral-0);
  --nav-link-hover: var(--blue-950);
  --tooltip-surface: var(--neutral-900);
  --tooltip-text: var(--neutral-0);
  --code-keyword: var(--blue-700);
  --code-string: var(--green-700);
  --code-number: var(--warning-700);
  --code-comment: var(--neutral-700);
  --overlay-scrim: rgba(11, 13, 18, 0.48);
  --chart-range-p50: var(--blue-700);
  --chart-range-p95: var(--blue-300);
  --chart-other: var(--neutral-400);
  --accent-strong: #339c36;
  --tab-indicator: var(--accent-strong);
  --chart-sparkline: var(--accent-strong);
  --surface-glass: rgba(242, 247, 255, 0.82);
  --text-muted-on-glass: var(--neutral-700);
  --surface-glass-raised: rgba(255, 255, 255, 0.86);
  --text-secondary: var(--neutral-600);
  --table-row-line: var(--neutral-100);
  --tooltip-surface-glass: rgba(39, 50, 66, 0.86);
  --nav-text-soft: #e6eef6;
  --nav-item-current-ring: rgba(255, 255, 255, 0.1);
  --chart-previous: var(--neutral-700);
  --table-head: #eaf2ff;
  --button-secondary-border: var(--blue-300);
  --chart-2-on: var(--neutral-1000);
  --chart-3-on: var(--neutral-0);
  --chart-4-on: var(--neutral-1000);
  --chart-5-on: var(--neutral-0);
  --chart-6-on: var(--neutral-1000);
  --chart-7-on: var(--neutral-0);
  --chart-8-on: var(--neutral-1000);
  --chart-9-on: var(--neutral-1000);
  --chart-10-on: var(--neutral-1000);
  --chart-11-on: var(--neutral-0);
  --chart-12-on: var(--neutral-1000);
  --chart-13-on: var(--neutral-0);
  --chart-14-on: var(--neutral-1000);
  --chart-15-on: var(--neutral-0);
  --chart-16-on: var(--neutral-1000);
  /* Elevation */
  --elevation-0: none;
  --elevation-1: 0 1px 2px rgba(11, 13, 18, 0.06), 0 1px 1px rgba(11, 13, 18, 0.04);
  --elevation-2: 0 4px 12px rgba(11, 13, 18, 0.08), 0 2px 4px rgba(11, 13, 18, 0.05);
  --elevation-3: 0 16px 40px rgba(11, 13, 18, 0.14), 0 4px 12px rgba(11, 13, 18, 0.06);
  /* Font families */
  --font-display: "MB Empire", "Futura", "Century Gothic", sans-serif;
  --font-body: "URW Grotesk T OT", "Helvetica Neue", Arial, sans-serif;
  --font-slides: Lexend, Arial, sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  --font-ui: "Inter", "Helvetica Neue", Arial, sans-serif;
  /* Fluid font sizes */
  --font-size-display: clamp(3rem, 2rem + 4.444vw, 6rem);
  --font-size-h1: clamp(2.5rem, 1.667rem + 3.704vw, 5rem);
  --font-size-h2: clamp(2.188rem, 1.667rem + 2.315vw, 3.75rem);
  --font-size-h3: clamp(1.25rem, 0.8333rem + 1.852vw, 2.5rem);
  --font-size-h4: clamp(1rem, 0.8125rem + 0.8333vw, 1.562rem);
  --font-size-lead: clamp(1.25rem, 1.167rem + 0.3704vw, 1.5rem);
  --font-size-body-1: clamp(1.125rem, 1.042rem + 0.3704vw, 1.375rem);
  --font-size-cta-label: clamp(1.062rem, 1rem + 0.2778vw, 1.25rem);
  --font-size-body-2: clamp(1rem, 0.9583rem + 0.1852vw, 1.125rem);
  --font-size-caption: clamp(0.8125rem, 0.7917rem + 0.09259vw, 0.875rem);
  --font-size-figure: clamp(2.5rem, 1.833rem + 2.963vw, 4.5rem);
  --font-size-ui-lg: 14px;
  --font-size-ui-base: 13px;
  --font-size-ui-md: 13px;
  --font-size-ui-sm: 12px;
  --font-size-ui-xs: 12px;
  --font-size-ui-section: 20px;
  --font-size-ui-title: 24px;
  --font-size-ui-figure: 32px;
  --font-size-code: 12px;
  --font-size-code-sm: 12px;
  /* Spacing */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 64px;
  --space-9: 96px;
  --space-10: 128px;
  /* Corner radius */
  --radius-none: 0px;
  --radius-xs: 4px;
  --radius-sm: 8px;
  --radius-md: 16px;
  --radius-lg: 24px;
  --radius-pill: 100px;
  --radius-panel: 12px;
  /* Layout */
  --breakpoint-sm: 360px;
  --breakpoint-md: 768px;
  --breakpoint-lg: 1024px;
  --breakpoint-xl: 1440px;
  --container-max: 1260px;
  --measure: 65ch;
  --chart-stack-gap: 2px;
  --page-head-height: 72px;
  /* Blur */
  --blur-backdrop: 3px;
  --blur-header: 12px;
  --blur-menu: 16px;
  /* Motion: durations */
  --duration-instant: 100ms;
  --duration-fast: 150ms;
  --duration-base: 250ms;
  --duration-slow: 400ms;
  /* Motion: easing */
  --ease-standard: cubic-bezier(0.2, 0, 0, 1);
  --ease-enter: cubic-bezier(0, 0, 0, 1);
  --ease-exit: cubic-bezier(0.3, 0, 1, 1);
  /* Border widths */
  --border-width-hairline: 1px;
  --border-width-strong: 2px;
  --focus-ring-width: 2px;
  --focus-ring-offset: 2px;
  --chart-line-width: 2px;
  --state-indicator-width: 3px;
}

/* Dark theme: follows the system setting unless the page forces light with data-theme="light". */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    color-scheme: dark;
    --surface: var(--neutral-950);
    --surface-subtle: var(--neutral-900);
    --surface-raised: var(--neutral-900);
    --surface-sunken: var(--neutral-1000);
    --surface-brand: var(--blue-800);
    --surface-brand-strong: var(--blue-900);
    --text: var(--neutral-50);
    --text-muted: var(--neutral-300);
    --text-brand: var(--blue-400);
    --text-link: var(--blue-400);
    --text-link-hover: var(--blue-200);
    --border: var(--neutral-800);
    --border-dashed: var(--neutral-700);
    --divider: var(--neutral-800);
    --action-secondary: var(--green-400);
    --action-secondary-hover: var(--green-300);
    --accent: var(--green-400);
    --focus-ring: var(--blue-300);
    --success: var(--success-300);
    --success-text: var(--success-400);
    --success-subtle: var(--success-950);
    --success-border: var(--success-800);
    --warning-text: var(--warning-400);
    --warning-subtle: var(--warning-950);
    --warning-border: var(--warning-800);
    --danger: var(--danger-500);
    --danger-text: var(--danger-300);
    --danger-subtle: var(--danger-950);
    --danger-border: var(--danger-800);
    --info-text: var(--blue-400);
    --info-subtle: var(--blue-950);
    --info-border: var(--blue-800);
    --chart-1: #2f79d6;
    --chart-3: #7250ba;
    --chart-4: #da720d;
    --chart-5: #0d80a3;
    --chart-6: #b28d08;
    --chart-8: #4992f2;
    --chart-10: #9b7be9;
    --chart-12: #05a1cc;
    --chart-14: #d863a0;
    --chart-16: #0ea89b;
    --chart-midpoint: var(--neutral-800);
    --gradient-start: var(--accent);
    --gradient-end: var(--blue-400);
    --state-hover: rgba(255, 255, 255, 0.04);
    --state-pressed: rgba(255, 255, 255, 0.10);
    --state-selected: var(--blue-900);
    --state-selected-text: var(--blue-200);
    --state-selected-text-muted: var(--blue-300);
    --state-selected-indicator: var(--blue-400);
    --state-disabled: var(--neutral-900);
    --state-disabled-text: var(--neutral-600);
    --severity-fatal: var(--danger-200);
    --severity-fatal-text: var(--danger-200);
    --severity-fatal-subtle: var(--danger-900);
    --severity-fatal-border: var(--danger-700);
    --severity-debug: var(--neutral-400);
    --severity-debug-text: var(--neutral-300);
    --severity-debug-subtle: var(--neutral-900);
    --severity-debug-border: var(--neutral-700);
    --chart-grid: var(--neutral-800);
    --chart-axis: var(--neutral-600);
    --chart-empty: var(--neutral-800);
    --nav-surface: var(--blue-800);
    --nav-item-current: var(--blue-700);
    --nav-link-hover: var(--neutral-1000);
    --tooltip-surface: var(--neutral-700);
    --code-keyword: var(--blue-300);
    --code-string: var(--green-300);
    --code-number: var(--warning-300);
    --code-comment: var(--neutral-400);
    --overlay-scrim: rgba(0, 0, 0, 0.64);
    --chart-range-p50: var(--blue-400);
    --chart-range-p95: var(--blue-700);
    --chart-other: var(--neutral-500);
    --accent-strong: var(--accent);
    --surface-glass: rgba(39, 50, 66, 0.86);
    --text-muted-on-glass: var(--neutral-300);
    --surface-glass-raised: rgba(39, 50, 66, 0.9);
    --text-secondary: var(--neutral-400);
    --table-row-line: var(--neutral-900);
    --tooltip-surface-glass: rgba(55, 69, 87, 0.9);
    --nav-text-soft: #e6ecf2;
    --chart-previous: var(--neutral-300);
    --table-head: #202b3a;
    --button-secondary-border: var(--blue-600);
    --elevation-1: 0 1px 2px rgba(11, 13, 18, 0.40), 0 1px 1px rgba(11, 13, 18, 0.30);
    --elevation-2: 0 4px 12px rgba(11, 13, 18, 0.45), 0 2px 4px rgba(11, 13, 18, 0.35);
    --elevation-3: 0 16px 40px rgba(11, 13, 18, 0.55), 0 4px 12px rgba(11, 13, 18, 0.40);
  }
}

/* Dark theme forced with data-theme="dark" on <html>. */
:root[data-theme="dark"] {
  color-scheme: dark;
  --surface: var(--neutral-950);
  --surface-subtle: var(--neutral-900);
  --surface-raised: var(--neutral-900);
  --surface-sunken: var(--neutral-1000);
  --surface-brand: var(--blue-800);
  --surface-brand-strong: var(--blue-900);
  --text: var(--neutral-50);
  --text-muted: var(--neutral-300);
  --text-brand: var(--blue-400);
  --text-link: var(--blue-400);
  --text-link-hover: var(--blue-200);
  --border: var(--neutral-800);
  --border-dashed: var(--neutral-700);
  --divider: var(--neutral-800);
  --action-secondary: var(--green-400);
  --action-secondary-hover: var(--green-300);
  --accent: var(--green-400);
  --focus-ring: var(--blue-300);
  --success: var(--success-300);
  --success-text: var(--success-400);
  --success-subtle: var(--success-950);
  --success-border: var(--success-800);
  --warning-text: var(--warning-400);
  --warning-subtle: var(--warning-950);
  --warning-border: var(--warning-800);
  --danger: var(--danger-500);
  --danger-text: var(--danger-300);
  --danger-subtle: var(--danger-950);
  --danger-border: var(--danger-800);
  --info-text: var(--blue-400);
  --info-subtle: var(--blue-950);
  --info-border: var(--blue-800);
  --chart-1: #2f79d6;
  --chart-3: #7250ba;
  --chart-4: #da720d;
  --chart-5: #0d80a3;
  --chart-6: #b28d08;
  --chart-8: #4992f2;
  --chart-10: #9b7be9;
  --chart-12: #05a1cc;
  --chart-14: #d863a0;
  --chart-16: #0ea89b;
  --chart-midpoint: var(--neutral-800);
  --gradient-start: var(--accent);
  --gradient-end: var(--blue-400);
  --state-hover: rgba(255, 255, 255, 0.04);
  --state-pressed: rgba(255, 255, 255, 0.10);
  --state-selected: var(--blue-900);
  --state-selected-text: var(--blue-200);
  --state-selected-text-muted: var(--blue-300);
  --state-selected-indicator: var(--blue-400);
  --state-disabled: var(--neutral-900);
  --state-disabled-text: var(--neutral-600);
  --severity-fatal: var(--danger-200);
  --severity-fatal-text: var(--danger-200);
  --severity-fatal-subtle: var(--danger-900);
  --severity-fatal-border: var(--danger-700);
  --severity-debug: var(--neutral-400);
  --severity-debug-text: var(--neutral-300);
  --severity-debug-subtle: var(--neutral-900);
  --severity-debug-border: var(--neutral-700);
  --chart-grid: var(--neutral-800);
  --chart-axis: var(--neutral-600);
  --chart-empty: var(--neutral-800);
  --nav-surface: var(--blue-800);
  --nav-item-current: var(--blue-700);
  --nav-link-hover: var(--neutral-1000);
  --tooltip-surface: var(--neutral-700);
  --code-keyword: var(--blue-300);
  --code-string: var(--green-300);
  --code-number: var(--warning-300);
  --code-comment: var(--neutral-400);
  --overlay-scrim: rgba(0, 0, 0, 0.64);
  --chart-range-p50: var(--blue-400);
  --chart-range-p95: var(--blue-700);
  --chart-other: var(--neutral-500);
  --accent-strong: var(--accent);
  --surface-glass: rgba(39, 50, 66, 0.86);
  --text-muted-on-glass: var(--neutral-300);
  --surface-glass-raised: rgba(39, 50, 66, 0.9);
  --text-secondary: var(--neutral-400);
  --table-row-line: var(--neutral-900);
  --tooltip-surface-glass: rgba(55, 69, 87, 0.9);
  --nav-text-soft: #e6ecf2;
  --chart-previous: var(--neutral-300);
  --table-head: #202b3a;
  --button-secondary-border: var(--blue-600);
  --elevation-1: 0 1px 2px rgba(11, 13, 18, 0.40), 0 1px 1px rgba(11, 13, 18, 0.30);
  --elevation-2: 0 4px 12px rgba(11, 13, 18, 0.45), 0 2px 4px rgba(11, 13, 18, 0.35);
  --elevation-3: 0 16px 40px rgba(11, 13, 18, 0.55), 0 4px 12px rgba(11, 13, 18, 0.40);
}

@media (prefers-reduced-motion: reduce) {
  :root { --duration-instant: 0ms; --duration-fast: 0ms; --duration-base: 0ms; --duration-slow: 0ms; }
}
