/* Palette values from docs/themes. The existing theme remains the default. */
:root[data-palette]:not([data-palette="default"]) {
    --bg-canvas: var(--palette-bg);
    --bg-surface: var(--palette-surface);
    --bg-surface-hover: var(--palette-alt);
    --bg-surface-active: color-mix(in srgb, var(--palette-alt) 78%, var(--palette-primary));
    --bg-elevated: var(--palette-surface);
    --bg-inset: color-mix(in srgb, var(--palette-bg) 75%, var(--palette-alt));
    --border-subtle: color-mix(in srgb, var(--palette-muted) 22%, var(--palette-surface));
    --border-strong: color-mix(in srgb, var(--palette-muted) 45%, var(--palette-surface));
    --border-focus: var(--palette-primary);
    --text-primary: var(--palette-text);
    --text-secondary: var(--palette-muted);
    --text-muted: var(--palette-muted);
    --text-inverse: var(--palette-bg);
    --primary: var(--palette-primary);
    --primary-hover: color-mix(in srgb, var(--palette-primary) 82%, var(--palette-text));
    --primary-active: color-mix(in srgb, var(--palette-primary) 68%, var(--palette-text));
    --primary-contrast: var(--palette-primary-contrast, #ffffff);
    --secondary: var(--palette-secondary);
    --accent: var(--palette-accent);
    --status-unread: var(--palette-primary);
    --status-success: var(--palette-success);
    --status-flagged: var(--palette-warning);
    --bs-body-bg: var(--bg-canvas);
    --bs-body-color: var(--text-primary);
    --bs-card-bg: var(--bg-surface);
    --bs-card-color: var(--text-primary);
    --bs-card-border-color: var(--border-subtle);
    --bs-border-color: var(--border-subtle);
    --bs-secondary-bg: var(--bg-surface-hover);
    --bs-tertiary-bg: var(--bg-inset);
    --bs-emphasis-color: var(--text-primary);
    --bs-secondary-color: var(--text-secondary);
    --bs-primary: var(--primary);
    --bs-success: var(--status-success);
    --bs-warning: var(--status-flagged);
    --bs-link-color: var(--primary);
    --bs-link-hover-color: var(--primary-hover);
}

:root[data-palette]:not([data-palette="default"]) .text-primary { color: var(--primary) !important; }
:root[data-palette]:not([data-palette="default"]) .bg-primary { background-color: var(--primary) !important; color: var(--primary-contrast); }
:root[data-palette]:not([data-palette="default"]) .text-success { color: var(--status-success) !important; }
:root[data-palette]:not([data-palette="default"]) .form-control,
:root[data-palette]:not([data-palette="default"]) .form-select {
    background-color: var(--bg-surface);
    border-color: var(--border-subtle);
    color: var(--text-primary);
}
:root[data-palette]:not([data-palette="default"]) .form-control:focus,
:root[data-palette]:not([data-palette="default"]) .form-select:focus {
    border-color: var(--border-focus);
    box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--primary) 22%, transparent);
}
:root[data-palette]:not([data-palette="default"]) .alert-primary {
    background: color-mix(in srgb, var(--primary) 15%, var(--bg-surface)) !important;
    border-color: color-mix(in srgb, var(--primary) 40%, var(--bg-surface)) !important;
    color: var(--text-primary) !important;
}

:root[data-palette="aurora-slate"][data-theme="light"] { --palette-bg:#F6F8FB; --palette-surface:#FFFFFF; --palette-alt:#E9EEF6; --palette-text:#18212F; --palette-muted:#5E6B7D; --palette-primary:#3266ED; --palette-secondary:#14B8A6; --palette-accent:#8B5CF6; --palette-success:#22C55E; --palette-warning:#F59E0B; }
:root[data-palette="aurora-slate"][data-theme="dark"] { --palette-bg:#0B1220; --palette-surface:#111A2D; --palette-alt:#1C2740; --palette-text:#E9EEF8; --palette-muted:#9AA8BC; --palette-primary:#5D8CFF; --palette-secondary:#2DD4BF; --palette-accent:#A78BFA; --palette-success:#4ADE80; --palette-warning:#FBBF24; --palette-primary-contrast:#0B1220; }
:root[data-palette="nordic-mint"][data-theme="light"] { --palette-bg:#F5FBF9; --palette-surface:#FFFFFF; --palette-alt:#E4F3EE; --palette-text:#193129; --palette-muted:#5A7068; --palette-primary:#0F766E; --palette-secondary:#06B6D4; --palette-accent:#84CC16; --palette-success:#16A34A; --palette-warning:#D97706; }
:root[data-palette="nordic-mint"][data-theme="dark"] { --palette-bg:#081714; --palette-surface:#0E221D; --palette-alt:#163129; --palette-text:#E6F7F1; --palette-muted:#9AB7AE; --palette-primary:#14B8A6; --palette-secondary:#22D3EE; --palette-accent:#A3E635; --palette-success:#4ADE80; --palette-warning:#F59E0B; --palette-primary-contrast:#081714; }
:root[data-palette="sandstone-blue"][data-theme="light"] { --palette-bg:#FBF7F2; --palette-surface:#FFFFFF; --palette-alt:#F0E7DA; --palette-text:#2C241D; --palette-muted:#7A6B5C; --palette-primary:#2563EB; --palette-secondary:#C08457; --palette-accent:#0EA5A4; --palette-success:#65A30D; --palette-warning:#EA580C; }
:root[data-palette="sandstone-blue"][data-theme="dark"] { --palette-bg:#15110C; --palette-surface:#201912; --palette-alt:#2D241A; --palette-text:#F6EFE6; --palette-muted:#B6A595; --palette-primary:#5B8FFF; --palette-secondary:#D4A574; --palette-accent:#2DD4BF; --palette-success:#84CC16; --palette-warning:#FB923C; --palette-primary-contrast:#15110C; }
:root[data-palette="plum-ember"][data-theme="light"] { --palette-bg:#FBF6FA; --palette-surface:#FFFFFF; --palette-alt:#F1E5EE; --palette-text:#2B1827; --palette-muted:#735C70; --palette-primary:#A21CAF; --palette-secondary:#F97316; --palette-accent:#E11D48; --palette-success:#22C55E; --palette-warning:#F59E0B; }
:root[data-palette="plum-ember"][data-theme="dark"] { --palette-bg:#170A15; --palette-surface:#231022; --palette-alt:#341635; --palette-text:#F8EAF6; --palette-muted:#B89BB3; --palette-primary:#D946EF; --palette-secondary:#FB923C; --palette-accent:#FB7185; --palette-success:#4ADE80; --palette-warning:#FBBF24; --palette-primary-contrast:#170A15; }
:root[data-palette="forest-copper"][data-theme="light"] { --palette-bg:#F7F9F6; --palette-surface:#FFFFFF; --palette-alt:#E7EEE6; --palette-text:#1F2B20; --palette-muted:#667067; --palette-primary:#2F6E49; --palette-secondary:#B45309; --palette-accent:#0F766E; --palette-success:#15803D; --palette-warning:#D97706; }
:root[data-palette="forest-copper"][data-theme="dark"] { --palette-bg:#0E1510; --palette-surface:#152019; --palette-alt:#213024; --palette-text:#ECF5EE; --palette-muted:#A4B1A5; --palette-primary:#4DA36C; --palette-secondary:#D97706; --palette-accent:#14B8A6; --palette-success:#22C55E; --palette-warning:#F59E0B; --palette-primary-contrast:#0E1510; }
:root[data-palette="cobalt-citrus"][data-theme="light"] { --palette-bg:#F6F9FF; --palette-surface:#FFFFFF; --palette-alt:#E8EFFD; --palette-text:#16213A; --palette-muted:#64748B; --palette-primary:#1D4ED8; --palette-secondary:#84CC16; --palette-accent:#F97316; --palette-success:#16A34A; --palette-warning:#EAB308; }
:root[data-palette="cobalt-citrus"][data-theme="dark"] { --palette-bg:#0A1226; --palette-surface:#111B35; --palette-alt:#1A2850; --palette-text:#E8EEFC; --palette-muted:#9CADC7; --palette-primary:#4F7DFF; --palette-secondary:#A3E635; --palette-accent:#FB923C; --palette-success:#4ADE80; --palette-warning:#FACC15; --palette-primary-contrast:#0A1226; }
:root[data-palette="rosewood-sky"][data-theme="light"] { --palette-bg:#FCF7F8; --palette-surface:#FFFFFF; --palette-alt:#F3E7EB; --palette-text:#311B24; --palette-muted:#7A6570; --palette-primary:#E11D48; --palette-secondary:#0EA5E9; --palette-accent:#C084FC; --palette-success:#22C55E; --palette-warning:#F59E0B; }
:root[data-palette="rosewood-sky"][data-theme="dark"] { --palette-bg:#180B11; --palette-surface:#241019; --palette-alt:#351725; --palette-text:#FCECF1; --palette-muted:#C2A7B3; --palette-primary:#FB4B74; --palette-secondary:#38BDF8; --palette-accent:#D8B4FE; --palette-success:#4ADE80; --palette-warning:#FBBF24; --palette-primary-contrast:#180B11; }
:root[data-palette="glacier-orange"][data-theme="light"] { --palette-bg:#F4FAFC; --palette-surface:#FFFFFF; --palette-alt:#E3F1F5; --palette-text:#163038; --palette-muted:#5E7680; --palette-primary:#0276B2; --palette-secondary:#F97316; --palette-accent:#06B6D4; --palette-success:#10B981; --palette-warning:#EAB308; }
:root[data-palette="glacier-orange"][data-theme="dark"] { --palette-bg:#08161B; --palette-surface:#0F232A; --palette-alt:#15323C; --palette-text:#E7F7FB; --palette-muted:#A4C0C8; --palette-primary:#38BDF8; --palette-secondary:#FB923C; --palette-accent:#22D3EE; --palette-success:#34D399; --palette-warning:#FACC15; --palette-primary-contrast:#08161B; }
:root[data-palette="midnight-orchid"][data-theme="light"] { --palette-bg:#F8F7FC; --palette-surface:#FFFFFF; --palette-alt:#ECE8F8; --palette-text:#221B35; --palette-muted:#6C6780; --palette-primary:#6D28D9; --palette-secondary:#2563EB; --palette-accent:#EC4899; --palette-success:#22C55E; --palette-warning:#F59E0B; }
:root[data-palette="midnight-orchid"][data-theme="dark"] { --palette-bg:#0D0A17; --palette-surface:#161126; --palette-alt:#24193A; --palette-text:#F2EEFF; --palette-muted:#ACA5C2; --palette-primary:#9B5CFF; --palette-secondary:#5B8FFF; --palette-accent:#F472B6; --palette-success:#4ADE80; --palette-warning:#FBBF24; --palette-primary-contrast:#0D0A17; }
:root[data-palette="graphite-gold"][data-theme="light"] { --palette-bg:#F7F7F8; --palette-surface:#FFFFFF; --palette-alt:#EBEDF0; --palette-text:#1C222B; --palette-muted:#667181; --palette-primary:#374151; --palette-secondary:#D4A017; --palette-accent:#0EA5E9; --palette-success:#22C55E; --palette-warning:#F59E0B; }
:root[data-palette="graphite-gold"][data-theme="dark"] { --palette-bg:#0E1116; --palette-surface:#151A22; --palette-alt:#202833; --palette-text:#F3F5F8; --palette-muted:#A5AFBC; --palette-primary:#7C8AA0; --palette-secondary:#F0C94A; --palette-accent:#38BDF8; --palette-success:#4ADE80; --palette-warning:#FBBF24; --palette-primary-contrast:#0E1116; }
