:root {
    color-scheme: light;
    --font-display: "Montserrat", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --font-body: "Source Sans 3", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

    /* Paleta institucional: estos valores no cambian entre temas. */
    --color-brand-950: #083369;
    --color-brand-900: #0a3e82;
    --color-brand-800: #0c4693;
    --color-brand-700: #0e4da4;
    --color-brand-100: #d8e7f8;
    --color-brand-50: #eaf2fc;
    --color-accent: #a6cf00;
    --color-accent-dark: #507000;
    --color-accent-50: #f1f8d9;

    /* Roles semánticos del tema. */
    --color-interactive: #0e4da4;
    --color-interactive-hover: #0a3e82;
    --color-interactive-soft: #eaf2fc;
    --color-interactive-border: #d8e7f8;
    --color-primary-solid: #0e4da4;
    --color-primary-solid-hover: #0a3e82;
    --color-heading: #083369;
    --color-accent-readable: #507000;
    --color-on-solid: #ffffff;
    --color-on-dark: #ffffff;
    --color-text: #172334;
    --color-text-muted: #5d6b7c;
    --color-border: #d6e0ec;
    --color-border-strong: #a5b4c5;
    --color-surface: #ffffff;
    --color-surface-raised: #ffffff;
    --color-canvas: #f5f8fc;
    --color-topbar: rgb(255 255 255 / 92%);
    --color-focus-ring: rgb(14 77 164 / 32%);
    --color-focus-ring-soft: rgb(14 77 164 / 16%);
    --color-overlay: rgb(8 51 105 / 56%);

    --color-danger: #b42318;
    --color-danger-border: #fda29b;
    --color-danger-50: #fff1f0;
    --color-danger-solid: #b42318;
    --color-danger-solid-hover: #8f1c13;
    --color-danger-focus: rgb(180 35 24 / 28%);
    --color-success: #167a55;
    --color-success-border: #86d2a9;
    --color-success-50: #edf8f2;
    --color-success-solid: #167a55;
    --color-success-solid-hover: #106443;
    --color-warning: #9a6700;
    --color-warning-border: #e9c46a;
    --color-warning-50: #fff8e7;
    --color-warning-solid: #9a6700;
    --color-warning-solid-hover: #7a5100;

    --chart-text: #172334;
    --chart-muted: #5d6b7c;
    --chart-grid: #e7edf5;
    --chart-border: #ffffff;
    --chart-primary: #0e4da4;
    --chart-primary-hover: #083369;
    --chart-primary-fill: rgb(14 77 164 / 12%);
    --chart-series-1: #0e4da4;
    --chart-series-2: #083369;
    --chart-series-3: #a6cf00;
    --chart-series-4: #5d6b7c;
    --chart-series-5: #507000;
    --chart-series-6: #d8e7f8;

    --shadow-sm: 0 1px 2px rgb(16 24 40 / 6%);
    --shadow-md: 0 16px 38px rgb(8 51 105 / 12%);
    --radius-sm: 8px;
    --radius-md: 12px;
    --radius-lg: 16px;
    --sidebar-width: 264px;
    --sidebar-collapsed-width: 78px;
    --topbar-height: 68px;
    --content-max-width: 1480px;
    --transition-fast: 160ms ease;
    --transition-base: 220ms ease;
    --z-sidebar: 40;
    --z-overlay: 30;
    --z-popover: 50;
}

:root[data-color-scheme="dark"] {
    color-scheme: dark;
    --color-interactive: #72a7f3;
    --color-interactive-hover: #a8c9f8;
    --color-interactive-soft: #132a46;
    --color-interactive-border: #2a5686;
    --color-primary-solid: #2c6ab9;
    --color-primary-solid-hover: #3272c4;
    --color-heading: #f2f6fb;
    --color-accent-readable: #c5e657;
    --color-text: #f2f6fb;
    --color-text-muted: #a7b5c6;
    --color-border: #33465d;
    --color-border-strong: #607690;
    --color-surface: #111d2d;
    --color-surface-raised: #18273b;
    --color-canvas: #09111f;
    --color-topbar: rgb(17 29 45 / 92%);
    --color-focus-ring: rgb(114 167 243 / 48%);
    --color-focus-ring-soft: rgb(114 167 243 / 28%);
    --color-overlay: rgb(2 8 18 / 72%);

    --color-danger: #ff8a80;
    --color-danger-border: #82424a;
    --color-danger-50: #311b20;
    --color-danger-solid: #c4372d;
    --color-danger-solid-hover: #d0443b;
    --color-danger-focus: rgb(255 138 128 / 42%);
    --color-success: #5fd3a5;
    --color-success-border: #397b67;
    --color-success-50: #123229;
    --color-success-solid: #167a55;
    --color-success-solid-hover: #1d9167;
    --color-warning: #f0c36a;
    --color-warning-border: #80662d;
    --color-warning-50: #352a12;
    --color-warning-solid: #9a6700;
    --color-warning-solid-hover: #b47b0a;

    --chart-text: #f2f6fb;
    --chart-muted: #a7b5c6;
    --chart-grid: #33465d;
    --chart-border: #111d2d;
    --chart-primary: #72a7f3;
    --chart-primary-hover: #a8c9f8;
    --chart-primary-fill: rgb(114 167 243 / 16%);
    --chart-series-1: #72a7f3;
    --chart-series-2: #c5e657;
    --chart-series-3: #5fd3a5;
    --chart-series-4: #f0c36a;
    --chart-series-5: #ff8a80;
    --chart-series-6: #a7b5c6;

    --shadow-sm: 0 1px 2px rgb(0 0 0 / 34%);
    --shadow-md: 0 18px 42px rgb(0 0 0 / 46%);
}
