@layer foundation {
    [data-ui-theme-preset][data-bs-theme] {
        color-scheme: light;
        --bs-body-font-family: var(--ui-font-sans);
        --bs-body-font-size: var(--ui-font-size-base);
        --bs-body-line-height: var(--ui-line-height-base);
        --bs-body-color: var(--ui-text);
        --bs-body-color-rgb: var(--ui-text-rgb);
        --bs-body-bg: var(--ui-canvas);
        --bs-body-bg-rgb: var(--ui-canvas-rgb);
        --bs-emphasis-color: var(--ui-text);
        --bs-emphasis-color-rgb: var(--ui-text-rgb);
        --bs-secondary-color: var(--ui-text-muted);
        --bs-secondary-bg: var(--ui-surface-2);
        --bs-tertiary-bg: var(--ui-surface-1);
        --bs-border-color: var(--ui-border);
        --bs-link-color: var(--ui-accent);
        --bs-link-color-rgb: var(--ui-accent-rgb);
        --bs-link-hover-color: var(--ui-accent-hover);
        --bs-link-hover-color-rgb: var(--ui-accent-hover-rgb);
        --bs-primary: var(--ui-accent);
        --bs-primary-rgb: var(--ui-accent-rgb);
        --bs-border-radius-sm: var(--ui-radius-sm);
        --bs-border-radius: var(--ui-radius-md);
        --bs-border-radius-lg: var(--ui-radius-lg);
        --bs-box-shadow-sm: var(--ui-shadow-sm);
        --bs-box-shadow: var(--ui-shadow-md);
        --bs-focus-ring-color: var(--ui-focus-ring);
        --bs-highlight-color: var(--ui-text);
        --bs-highlight-bg: var(--ui-selection-background);
        --bs-form-valid-color: var(--ui-success);
        --bs-form-valid-border-color: var(--ui-success);
        --bs-form-invalid-color: var(--ui-danger);
        --bs-form-invalid-border-color: var(--ui-danger);
        --ui-surface-border: var(--ui-border-subtle);
    }

    [data-bs-theme="dark"] { color-scheme: dark; }

    [data-ui-theme-preset="slate-blue"][data-bs-theme="light"] {
        --ui-font-sans: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
        --ui-font-size-base: .875rem; --ui-line-height-base: 1.45;
        --ui-canvas: #f3f4f6; --ui-canvas-rgb: 243, 244, 246;
        --ui-surface-1: #ffffff; --ui-surface-2: #eef3fa; --ui-surface-raised: #ffffff; --ui-surface-muted: #f8fafc;
        --ui-canvas-background: linear-gradient(145deg, #f8fafc 0%, #f3f4f6 55%, #eef4fb 100%); --ui-heading: #1f242e; --ui-panel-accent: #3b82f6;
        --ui-table-background: #ffffff; --ui-table-header: #edf3fb; --ui-table-stripe: #f8fafc; --ui-table-hover: #eaf2fd; --ui-selection-background: #dbeafe;
        --ui-text: #1f242e; --ui-text-rgb: 31, 36, 46; --ui-text-muted: #667085;
        --ui-border: #ced9e8; --ui-border-strong: #aebed2; --ui-border-subtle: #e2e8f0; --ui-table-divider: #e5eaf1;
        --ui-control-background: #ffffff; --ui-control-border: #b9c7d9; --ui-control-disabled: #e9edf3;
        --ui-disabled-background: #e9edf3; --ui-disabled-text: #7d8998;
        --ui-accent: #3b82f6; --ui-accent-rgb: 59, 130, 246; --ui-accent-hover: #2563eb; --ui-accent-hover-rgb: 37, 99, 235; --ui-accent-contrast: #ffffff; --ui-accent-subtle: #dbeafe;
        --ui-sidebar-background: linear-gradient(180deg, #1f242e 0%, #252e3d 100%); --ui-sidebar-text: #f3f4f6; --ui-sidebar-muted: #93c5fd; --ui-sidebar-border: #35445a; --ui-sidebar-hover: rgba(96, 165, 250, .15); --ui-sidebar-active: rgba(59, 130, 246, .22); --ui-sidebar-indicator: #60a5fa;
        --ui-header-background: rgba(255, 255, 255, .96); --ui-header-text: #1f242e; --ui-header-border: #e2e8f0;
        --ui-focus-ring: #60a5fa; --ui-overlay: rgba(31, 36, 46, .48);
        --ui-radius-sm: .375rem; --ui-radius-md: .5rem; --ui-radius-lg: .625rem;
        --ui-shadow-sm: 0 1px 2px rgba(31, 36, 46, .04), 0 3px 8px rgba(31, 36, 46, .05); --ui-shadow-md: 0 8px 24px rgba(31, 36, 46, .09), 0 2px 6px rgba(31, 36, 46, .05); --ui-shadow-float: 0 18px 48px rgba(31, 36, 46, .18), 0 4px 12px rgba(31, 36, 46, .08);
        --ui-success: #328064; --ui-success-contrast: #ffffff; --ui-success-subtle: #e2f2ea;
        --ui-danger: #b4515c; --ui-danger-contrast: #ffffff; --ui-danger-subtle: #f8e7e9;
        --ui-warning: #906d2e; --ui-warning-contrast: #ffffff; --ui-warning-subtle: #f8f0df;
        --ui-info: #3b82f6; --ui-info-contrast: #ffffff; --ui-info-subtle: #dbeafe;
    }

    [data-ui-theme-preset="slate-blue"][data-bs-theme="dark"] {
        --ui-font-sans: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
        --ui-font-size-base: .875rem; --ui-line-height-base: 1.45;
        --ui-canvas: #1f242e; --ui-canvas-rgb: 31, 36, 46;
        --ui-surface-1: #272e3a; --ui-surface-2: #303949; --ui-surface-raised: #2b3341; --ui-surface-muted: #232a35;
        --ui-canvas-background: linear-gradient(145deg, #1b2029 0%, #1f242e 55%, #202b3b 100%); --ui-heading: #f3f4f6; --ui-panel-accent: #60a5fa;
        --ui-table-background: #272e3a; --ui-table-header: #303b4d; --ui-table-stripe: #2a3240; --ui-table-hover: #344258; --ui-selection-background: #284875;
        --ui-text: #f3f4f6; --ui-text-rgb: 243, 244, 246; --ui-text-muted: #b9c4d3;
        --ui-border: #43536a; --ui-border-strong: #5a6c85; --ui-border-subtle: #354154; --ui-table-divider: #374458;
        --ui-control-background: #252c38; --ui-control-border: #53647d; --ui-control-disabled: #303744;
        --ui-disabled-background: #303744; --ui-disabled-text: #8d99aa;
        --ui-accent: #60a5fa; --ui-accent-rgb: 96, 165, 250; --ui-accent-hover: #93c5fd; --ui-accent-hover-rgb: 147, 197, 253; --ui-accent-contrast: #1f242e; --ui-accent-subtle: #284875;
        --ui-sidebar-background: linear-gradient(180deg, #181c24 0%, #1f242e 100%); --ui-sidebar-text: #f3f4f6; --ui-sidebar-muted: #93c5fd; --ui-sidebar-border: #35445a; --ui-sidebar-hover: rgba(96, 165, 250, .16); --ui-sidebar-active: rgba(59, 130, 246, .24); --ui-sidebar-indicator: #60a5fa;
        --ui-header-background: rgba(39, 46, 58, .96); --ui-header-text: #f3f4f6; --ui-header-border: #354154;
        --ui-focus-ring: #93c5fd; --ui-overlay: rgba(9, 12, 17, .7);
        --ui-radius-sm: .375rem; --ui-radius-md: .5rem; --ui-radius-lg: .625rem;
        --ui-shadow-sm: 0 1px 2px rgba(0, 0, 0, .18), 0 3px 10px rgba(0, 0, 0, .14); --ui-shadow-md: 0 10px 28px rgba(0, 0, 0, .28), 0 2px 8px rgba(0, 0, 0, .2); --ui-shadow-float: 0 20px 52px rgba(0, 0, 0, .42), 0 4px 14px rgba(0, 0, 0, .24);
        --ui-success: #76b99d; --ui-success-contrast: #13291f; --ui-success-subtle: #254438;
        --ui-danger: #e18a93; --ui-danger-contrast: #35161c; --ui-danger-subtle: #4c2c33;
        --ui-warning: #ddb96b; --ui-warning-contrast: #332608; --ui-warning-subtle: #4c3e23;
        --ui-info: #60a5fa; --ui-info-contrast: #1f242e; --ui-info-subtle: #284875;
    }
}

@layer component {
    [data-ui-theme-preset] .btn-primary {
        --bs-btn-color: var(--ui-accent-contrast); --bs-btn-bg: var(--ui-accent); --bs-btn-border-color: var(--ui-accent);
        --bs-btn-hover-color: var(--ui-accent-contrast); --bs-btn-hover-bg: var(--ui-accent-hover); --bs-btn-hover-border-color: var(--ui-accent-hover);
        --bs-btn-active-color: var(--ui-accent-contrast); --bs-btn-active-bg: var(--ui-accent-hover); --bs-btn-active-border-color: var(--ui-accent-hover);
        --bs-btn-disabled-color: var(--ui-accent-contrast); --bs-btn-disabled-bg: var(--ui-accent); --bs-btn-disabled-border-color: var(--ui-accent);
    }
    [data-ui-theme-preset] .btn-secondary { --bs-btn-color: var(--ui-text); --bs-btn-bg: var(--ui-surface-2); --bs-btn-border-color: var(--ui-border); --bs-btn-hover-color: var(--ui-text); --bs-btn-hover-bg: var(--ui-accent-subtle); --bs-btn-hover-border-color: var(--ui-accent); }
    [data-ui-theme-preset] .btn-outline-secondary { --bs-btn-color: var(--ui-text); --bs-btn-border-color: var(--ui-border); --bs-btn-hover-color: var(--ui-text); --bs-btn-hover-bg: var(--ui-surface-2); --bs-btn-hover-border-color: var(--ui-accent); }
    [data-ui-theme-preset] .btn-success { --bs-btn-color: var(--ui-success-contrast); --bs-btn-bg: var(--ui-success); --bs-btn-border-color: var(--ui-success); }
    [data-ui-theme-preset] .btn-danger { --bs-btn-color: var(--ui-danger-contrast); --bs-btn-bg: var(--ui-danger); --bs-btn-border-color: var(--ui-danger); }
    [data-ui-theme-preset] .btn-warning { --bs-btn-color: var(--ui-warning-contrast); --bs-btn-bg: var(--ui-warning); --bs-btn-border-color: var(--ui-warning); }
    [data-ui-theme-preset] .alert-success { --bs-alert-color: var(--ui-text); --bs-alert-bg: var(--ui-success-subtle); --bs-alert-border-color: var(--ui-success); }
    [data-ui-theme-preset] .alert-danger { --bs-alert-color: var(--ui-text); --bs-alert-bg: var(--ui-danger-subtle); --bs-alert-border-color: var(--ui-danger); }
    [data-ui-theme-preset] .alert-warning { --bs-alert-color: var(--ui-text); --bs-alert-bg: var(--ui-warning-subtle); --bs-alert-border-color: var(--ui-warning); }
    [data-ui-theme-preset] .alert-info { --bs-alert-color: var(--ui-text); --bs-alert-bg: var(--ui-info-subtle); --bs-alert-border-color: var(--ui-info); }
    [data-ui-theme-preset] .text-bg-secondary { color: var(--ui-text) !important; background-color: var(--ui-surface-2) !important; border: 1px solid var(--ui-border); }
    [data-ui-theme-preset] .text-bg-success { color: var(--ui-success-contrast) !important; background-color: var(--ui-success) !important; }
    [data-ui-theme-preset] .text-bg-danger { color: var(--ui-danger-contrast) !important; background-color: var(--ui-danger) !important; }
    [data-ui-theme-preset] .text-bg-warning { color: var(--ui-warning-contrast) !important; background-color: var(--ui-warning) !important; }
    [data-ui-theme-preset] :is(.form-control, .form-select, .form-check-input) { background-color: var(--ui-control-background); color: var(--ui-text); border-color: var(--ui-control-border); }
    [data-ui-theme-preset] :is(.form-control, .form-select, .form-check-input):disabled { background-color: var(--ui-control-disabled); color: var(--ui-disabled-text); }
    [data-ui-theme-preset] :is(.form-control, .form-select):focus { border-color: var(--ui-accent); box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--ui-focus-ring) 28%, transparent); }
    [data-ui-theme-preset] .form-check-input:checked { background-color: var(--ui-accent); border-color: var(--ui-accent); }
    [data-ui-theme-preset] .table {
        --bs-table-color: var(--ui-text); --bs-table-bg: var(--ui-table-background); --bs-table-border-color: var(--ui-border);
        --bs-table-striped-color: var(--ui-text); --bs-table-striped-bg: var(--ui-table-stripe);
        --bs-table-hover-color: var(--ui-text); --bs-table-hover-bg: var(--ui-table-hover);
        --bs-table-active-color: var(--ui-text); --bs-table-active-bg: var(--ui-accent-subtle);
    }
    [data-ui-theme-preset] .table > thead { --bs-table-bg: var(--ui-table-header); }
    [data-ui-theme-preset] :is(.card, .list-group) { --bs-card-bg: var(--ui-surface-1); --bs-card-color: var(--ui-text); --bs-card-border-color: var(--ui-border); --bs-list-group-bg: var(--ui-surface-1); --bs-list-group-color: var(--ui-text); --bs-list-group-border-color: var(--ui-border); }
    [data-ui-theme-preset] .card { box-shadow: var(--ui-shadow-sm); }
    [data-ui-theme-preset] .dropdown-menu { --bs-dropdown-bg: var(--ui-surface-raised); --bs-dropdown-color: var(--ui-text); --bs-dropdown-border-color: var(--ui-border); --bs-dropdown-link-color: var(--ui-text); --bs-dropdown-link-hover-color: var(--ui-text); --bs-dropdown-link-hover-bg: var(--ui-table-hover); --bs-dropdown-link-active-color: var(--ui-accent-contrast); --bs-dropdown-link-active-bg: var(--ui-accent); box-shadow: var(--ui-shadow-float); }
    [data-ui-theme-preset] .modal-content { --bs-modal-bg: var(--ui-surface-raised); --bs-modal-color: var(--ui-text); --bs-modal-border-color: var(--ui-border); --bs-modal-header-border-color: var(--ui-border); --bs-modal-footer-border-color: var(--ui-border); box-shadow: var(--ui-shadow-float); }
    [data-ui-theme-preset] :is(input, textarea, select):-webkit-autofill,
    [data-ui-theme-preset] :is(input, textarea, select):-webkit-autofill:hover,
    [data-ui-theme-preset] :is(input, textarea, select):-webkit-autofill:focus {
        -webkit-text-fill-color: var(--ui-text) !important;
        -webkit-box-shadow: 0 0 0 1000px var(--ui-surface-1) inset !important;
        box-shadow: 0 0 0 1000px var(--ui-surface-1) inset !important;
        caret-color: var(--ui-text);
        transition: background-color 0s, color 0s, box-shadow 0s;
    }
}
