/*
Bootstrap - Override

Allows updating the color pallet of bootstrap using only CSS variables,
no compiling with SCSS required.

Simply set the theme colours using the following variables, and the rest is
calculated using the css color-mix function

--theme-primary
--theme-secondary
--theme-light
--theme-dark
--theme-danger
--theme-warning
--theme-info
--theme-success
*/

:root {
    /* Neutral */
    --theme-black: #000000;
    --theme-white: #ffffff;

    /* Primary */
    --theme-primary: #1b7679;

    --theme-primary-900: color-mix(in srgb, var(--theme-black) 80%, var(--theme-primary));
    --theme-primary-800: color-mix(in srgb, var(--theme-black) 60%, var(--theme-primary));
    --theme-primary-700: color-mix(in srgb, var(--theme-black) 40%, var(--theme-primary));
    --theme-primary-600: color-mix(in srgb, var(--theme-black) 20%, var(--theme-primary));
    --theme-primary-500: var(--theme-primary);
    --theme-primary-400: color-mix(in srgb, var(--theme-white) 20%, var(--theme-primary));
    --theme-primary-300: color-mix(in srgb, var(--theme-white) 40%, var(--theme-primary));
    --theme-primary-200: color-mix(in srgb, var(--theme-white) 60%, var(--theme-primary));
    --theme-primary-100: color-mix(in srgb, var(--theme-white) 80%, var(--theme-primary));


    /* Secondary */
    --theme-secondary: #6c757d;

    --theme-secondary-900: color-mix(in srgb, var(--theme-black) 80%, var(--theme-secondary));
    --theme-secondary-800: color-mix(in srgb, var(--theme-black) 60%, var(--theme-secondary));
    --theme-secondary-700: color-mix(in srgb, var(--theme-black) 40%, var(--theme-secondary));
    --theme-secondary-600: color-mix(in srgb, var(--theme-black) 20%, var(--theme-secondary));
    --theme-secondary-500: var(--theme-secondary);
    --theme-secondary-400: color-mix(in srgb, var(--theme-white) 20%, var(--theme-secondary));
    --theme-secondary-300: color-mix(in srgb, var(--theme-white) 40%, var(--theme-secondary));
    --theme-secondary-200: color-mix(in srgb, var(--theme-white) 60%, var(--theme-secondary));
    --theme-secondary-100: color-mix(in srgb, var(--theme-white) 80%, var(--theme-secondary));

    /* Danger */
    --theme-danger: #dc3545;

    --theme-danger-900: color-mix(in srgb, var(--theme-black) 80%, var(--theme-danger));
    --theme-danger-800: color-mix(in srgb, var(--theme-black) 60%, var(--theme-danger));
    --theme-danger-700: color-mix(in srgb, var(--theme-black) 40%, var(--theme-danger));
    --theme-danger-600: color-mix(in srgb, var(--theme-black) 20%, var(--theme-danger));
    --theme-danger-500: var(--theme-danger);
    --theme-danger-400: color-mix(in srgb, var(--theme-white) 20%, var(--theme-danger));
    --theme-danger-300: color-mix(in srgb, var(--theme-white) 40%, var(--theme-danger));
    --theme-danger-200: color-mix(in srgb, var(--theme-white) 60%, var(--theme-danger));
    --theme-danger-100: color-mix(in srgb, var(--theme-white) 80%, var(--theme-danger));

    /* Success */
    --theme-success: #198754;

    --theme-success-900: color-mix(in srgb, var(--theme-black) 80%, var(--theme-success));
    --theme-success-800: color-mix(in srgb, var(--theme-black) 60%, var(--theme-success));
    --theme-success-700: color-mix(in srgb, var(--theme-black) 40%, var(--theme-success));
    --theme-success-600: color-mix(in srgb, var(--theme-black) 20%, var(--theme-success));
    --theme-success-500: var(--theme-success);
    --theme-success-400: color-mix(in srgb, var(--theme-white) 20%, var(--theme-success));
    --theme-success-300: color-mix(in srgb, var(--theme-white) 40%, var(--theme-success));
    --theme-success-200: color-mix(in srgb, var(--theme-white) 60%, var(--theme-success));
    --theme-success-100: color-mix(in srgb, var(--theme-white) 80%, var(--theme-success));

    /* Warning */
    --theme-warning: #ffc107;

    --theme-warning-900: color-mix(in srgb, var(--theme-black) 80%, var(--theme-warning));
    --theme-warning-800: color-mix(in srgb, var(--theme-black) 60%, var(--theme-warning));
    --theme-warning-700: color-mix(in srgb, var(--theme-black) 40%, var(--theme-warning));
    --theme-warning-600: color-mix(in srgb, var(--theme-black) 20%, var(--theme-warning));
    --theme-warning-500: var(--theme-warning);
    --theme-warning-400: color-mix(in srgb, var(--theme-white) 20%, var(--theme-warning));
    --theme-warning-300: color-mix(in srgb, var(--theme-white) 40%, var(--theme-warning));
    --theme-warning-200: color-mix(in srgb, var(--theme-white) 60%, var(--theme-warning));
    --theme-warning-100: color-mix(in srgb, var(--theme-white) 80%, var(--theme-warning));

    /* Info */
    --theme-info: #0dcaf0;

    --theme-info-900: color-mix(in srgb, var(--theme-black) 80%, var(--theme-info));
    --theme-info-800: color-mix(in srgb, var(--theme-black) 60%, var(--theme-info));
    --theme-info-700: color-mix(in srgb, var(--theme-black) 40%, var(--theme-info));
    --theme-info-600: color-mix(in srgb, var(--theme-black) 20%, var(--theme-info));
    --theme-info-500: var(--theme-info);
    --theme-info-400: color-mix(in srgb, var(--theme-white) 20%, var(--theme-info));
    --theme-info-300: color-mix(in srgb, var(--theme-white) 40%, var(--theme-info));
    --theme-info-200: color-mix(in srgb, var(--theme-white) 60%, var(--theme-info));
    --theme-info-100: color-mix(in srgb, var(--theme-white) 80%, var(--theme-info));

    /* Light */
    --theme-light: #f8f9fa;

    --theme-light-900: color-mix(in srgb, var(--theme-black) 80%, var(--theme-light));
    --theme-light-800: color-mix(in srgb, var(--theme-black) 60%, var(--theme-light));
    --theme-light-700: color-mix(in srgb, var(--theme-black) 40%, var(--theme-light));
    --theme-light-600: color-mix(in srgb, var(--theme-black) 20%, var(--theme-light));
    --theme-light-500: var(--theme-light);
    --theme-light-400: color-mix(in srgb, var(--theme-white) 20%, var(--theme-light));
    --theme-light-300: color-mix(in srgb, var(--theme-white) 40%, var(--theme-light));
    --theme-light-200: color-mix(in srgb, var(--theme-white) 60%, var(--theme-light));
    --theme-light-100: color-mix(in srgb, var(--theme-white) 80%, var(--theme-light));

    /* Dark */
    --theme-dark: #343a40;

    --theme-dark-900: color-mix(in srgb, var(--theme-black) 80%, var(--theme-dark));
    --theme-dark-800: color-mix(in srgb, var(--theme-black) 60%, var(--theme-dark));
    --theme-dark-700: color-mix(in srgb, var(--theme-black) 40%, var(--theme-dark));
    --theme-dark-600: color-mix(in srgb, var(--theme-black) 20%, var(--theme-dark));
    --theme-dark-500: var(--theme-dark);
    --theme-dark-400: color-mix(in srgb, var(--theme-white) 20%, var(--theme-dark));
    --theme-dark-300: color-mix(in srgb, var(--theme-white) 40%, var(--theme-dark));
    --theme-dark-200: color-mix(in srgb, var(--theme-white) 60%, var(--theme-dark));
    --theme-dark-100: color-mix(in srgb, var(--theme-white) 80%, var(--theme-dark));

    /* Code */
    --theme-code-color: #e685b5;
}

:root,
[data-bs-theme=light] {
    --bs-blue: var(--theme-primary);
    --bs-red: var(--theme-danger);
    --bs-yellow: var(--theme-warning);
    --bs-green: var(--theme-success);
    --bs-cyan: var(--theme-info);
    --bs-black: var(--theme-black);
    --bs-white: var(--theme-white);
    --bs-primary: var(--theme-primary);
    --bs-secondary: var(--theme-secondary);
    --bs-success: var(--theme-success);
    --bs-info: var(--theme-info);
    --bs-warning: var(--theme-warning);
    --bs-danger: var(--theme-danger);
    --bs-primary-text-emphasis: var(--theme-primary-800);
    --bs-secondary-text-emphasis: var(--theme-secondary-800);
    --bs-success-text-emphasis: var(--theme-success-800);
    --bs-info-text-emphasis: var(--theme-info-800);
    --bs-warning-text-emphasis: var(--theme-warning-800);
    --bs-danger-text-emphasis: var(--theme-danger-800);
    --bs-primary-bg-subtle: var(--theme-primary-100);
    --bs-secondary-bg-subtle: var(--theme-secondary-100);
    --bs-success-bg-subtle: var(--theme-success-100);
    --bs-info-bg-subtle: var(--theme-info-100);
    --bs-warning-bg-subtle: var(--theme-warning-100);
    --bs-danger-bg-subtle: var(--theme-danger-100);
    --bs-primary-border-subtle: var(--theme-primary-200);
    --bs-secondary-border-subtle: var(--theme-secondary-200);
    --bs-success-border-subtle: var(--theme-success-200);
    --bs-info-border-subtle: var(--theme-info-200);
    --bs-warning-border-subtle: var(--theme-warning-200);
    --bs-danger-border-subtle: var(--theme-danger-200);
    --bs-body-bg: var(--theme-white);
    --bs-emphasis-color: var(--theme-black);
    --bs-secondary-bg: var(--theme-gray-200);
    --bs-link-color: var(--theme-primary);
    --bs-link-hover-color: var(--theme-primary-300);
    --bs-code-color: var(--theme-pink);
    --bs-highlight-color: var(--theme-dark);
    --bs-highlight-bg: var(--theme-warning-100);
    --bs-form-valid-color: var(--theme-success);
    --bs-form-valid-border-color: var(--theme-success);
    --bs-form-invalid-color: var(--theme-danger);
    --bs-form-invalid-border-color: var(--theme-danger);
}

[data-bs-theme=dark] {
    --bs-emphasis-color: var(--theme-white);
    --bs-primary-text-emphasis: var(--theme-primary-300);
    --bs-secondary-text-emphasis: var(--theme-secondary-300);
    --bs-success-text-emphasis: var(--theme-success-300);
    --bs-info-text-emphasis: var(--theme-info-300);
    --bs-warning-text-emphasis: var(--theme-warning-300);
    --bs-danger-text-emphasis: var(--theme-danger-300);
    --bs-primary-bg-subtle: var(--theme-primary-900);
    --bs-secondary-bg-subtle: var(--theme-secondary-900);
    --bs-success-bg-subtle: var(--theme-success-900);
    --bs-info-bg-subtle: var(--theme-info-900);
    --bs-warning-bg-subtle: var(--theme-warning-900);
    --bs-danger-bg-subtle: var(--theme-danger-900);
    --bs-primary-border-subtle: var(--theme-primary-800);
    --bs-secondary-border-subtle: var(--theme-secondary-800);
    --bs-success-border-subtle: var(--theme-success-800);
    --bs-info-border-subtle: var(--theme-info-800);
    --bs-warning-border-subtle: var(--theme-warning-800);
    --bs-danger-border-subtle: var(--theme-danger-800);
    --bs-link-color: var(--theme-primary-500);
    --bs-link-hover-color: var(--theme-primary-700);
    --bs-code-color: var(--theme-code-color);
    --bs-highlight-color: var(--theme-gray-300);
    --bs-highlight-bg: var(--theme-warning-800);
    --bs-border-color: var(--theme-gray-700);
    --bs-form-valid-color: var(--theme-success-300);
    --bs-form-valid-border-color: var(--theme-success-300);
    --bs-form-invalid-color: var(--theme-danger-300);
    --bs-form-invalid-border-color: var(--theme-danger-300);
}

.table-primary {
    --bs-table-color: var(--theme-black);
    --bs-table-bg: var(--theme-primary-100);
    --bs-table-border-color: var(--theme-primary-300);
    --bs-table-striped-bg: var(--theme-primary-200);
    --bs-table-striped-color: var(--theme-black);
    --bs-table-active-bg: var(--theme-primary-200);
    --bs-table-active-color: var(--theme-black);
    --bs-table-hover-bg: var(--theme-primary-100);
    --bs-table-hover-color: var(--theme-black);
}

.table-secondary {
    --bs-table-color: var(--theme-black);
    --bs-table-bg: var(--theme-secondary-100);
    --bs-table-border-color: var(--theme-secondary-300);
    --bs-table-striped-bg: var(--theme-secondary-200);
    --bs-table-striped-color: var(--theme-black);
    --bs-table-active-bg: var(--theme-secondary-200);
    --bs-table-active-color: var(--theme-black);
    --bs-table-hover-bg: var(--theme-secondary-100);
    --bs-table-hover-color: var(--theme-black);
}

.table-success {
    --bs-table-color: var(--theme-black);
    --bs-table-bg: var(--theme-success-100);
    --bs-table-border-color: var(--theme-success-300);
    --bs-table-striped-bg: var(--theme-success-200);
    --bs-table-striped-color: var(--theme-black);
    --bs-table-active-bg: var(--theme-success-200);
    --bs-table-active-color: var(--theme-black);
    --bs-table-hover-bg: var(--theme-success-100);
    --bs-table-hover-color: var(--theme-black);
}

.table-info {
    --bs-table-color: var(--theme-black);
    --bs-table-bg: var(--theme-info-100);
    --bs-table-border-color: var(--theme-info-300);
    --bs-table-striped-bg: var(--theme-info-200);
    --bs-table-striped-color: var(--theme-black);
    --bs-table-active-bg: var(--theme-info-300);
    --bs-table-active-color: var(--theme-black);
    --bs-table-hover-bg: var(--theme-info-100);
    --bs-table-hover-color: var(--theme-black);
}

.table-warning {
    --bs-table-color: var(--theme-black);
    --bs-table-bg: var(--theme-warning-100);
    --bs-table-border-color: var(--theme-warning-300);
    --bs-table-striped-bg: var(--theme-warning-200);
    --bs-table-striped-color: var(--theme-black);
    --bs-table-active-bg: var(--theme-warning-300);
    --bs-table-active-color: var(--theme-black);
    --bs-table-hover-bg: var(--theme-warning-100);
    --bs-table-hover-color: var(--theme-black);
}

.table-danger {
    --bs-table-color: var(--theme-black);
    --bs-table-bg: var(--theme-danger-100);
    --bs-table-border-color: var(--theme-danger-300);
    --bs-table-striped-bg: var(--theme-danger-200);
    --bs-table-striped-color: var(--theme-black);
    --bs-table-active-bg: var(--theme-danger-300);
    --bs-table-active-color: var(--theme-black);
    --bs-table-hover-bg: var(--theme-danger-200);
    --bs-table-hover-color: var(--theme-black);
}

.table-light {
    --bs-table-color: var(--theme-black);
    --bs-table-bg: var(--theme-light);
    --bs-table-border-color: var(--theme-color-c6c7c8);
    --bs-table-striped-bg: var(--theme-color-ecedee);
    --bs-table-striped-color: var(--theme-black);
    --bs-table-active-bg: var(--theme-color-dfe0e1);
    --bs-table-active-color: var(--theme-black);
    --bs-table-hover-bg: var(--theme-color-e5e6e7);
    --bs-table-hover-color: var(--theme-black);
}

.table-dark {
    --bs-table-color: var(--theme-white);
    --bs-table-bg: var(--theme-dark);
    --bs-table-border-color: var(--theme-color-4d5154);
    --bs-table-striped-bg: var(--theme-color-2c3034);
    --bs-table-striped-color: var(--theme-white);
    --bs-table-active-bg: var(--theme-color-373b3e);
    --bs-table-active-color: var(--theme-white);
    --bs-table-hover-bg: var(--theme-color-323539);
    --bs-table-hover-color: var(--theme-white);
}

.btn-primary {
    --bs-btn-color: var(--theme-white);
    --bs-btn-bg: var(--theme-primary);
    --bs-btn-border-color: var(--theme-primary);
    --bs-btn-hover-color: var(--theme-white);
    --bs-btn-hover-bg: var(--theme-primary-400);
    --bs-btn-hover-border-color: var(--theme-primary-600);
    --bs-btn-active-color: var(--theme-white);
    --bs-btn-active-bg: var(--theme-primary-600);
    --bs-btn-active-border-color: var(--theme-primary-700);
    --bs-btn-disabled-color: var(--theme-white);
    --bs-btn-disabled-bg: var(--theme-primary);
    --bs-btn-disabled-border-color: var(--theme-primary);
}

.btn-secondary {
    --bs-btn-color: var(--theme-white);
    --bs-btn-bg: var(--theme-secondary);
    --bs-btn-border-color: var(--theme-secondary);
    --bs-btn-hover-color: var(--theme-white);
    --bs-btn-hover-bg: var(--theme-secondary-400);
    --bs-btn-hover-border-color: var(--theme-secondary-600);
    --bs-btn-active-color: var(--theme-white);
    --bs-btn-active-bg: var(--theme-secondary-600);
    --bs-btn-active-border-color: var(--theme-secondary-700);
    --bs-btn-disabled-color: var(--theme-white);
    --bs-btn-disabled-bg: var(--theme-secondary);
    --bs-btn-disabled-border-color: var(--theme-secondary);
}

.btn-success {
    --bs-btn-color: var(--theme-white);
    --bs-btn-bg: var(--theme-success);
    --bs-btn-border-color: var(--theme-success);
    --bs-btn-hover-color: var(--theme-white);
    --bs-btn-hover-bg: var(--theme-success-400);
    --bs-btn-hover-border-color: var(--theme-success-600);
    --bs-btn-active-color: var(--theme-white);
    --bs-btn-active-bg: var(--theme-success-600);
    --bs-btn-active-border-color: var(--theme-success-700);
    --bs-btn-disabled-color: var(--theme-white);
    --bs-btn-disabled-bg: var(--theme-success);
    --bs-btn-disabled-border-color: var(--theme-success);
}

.btn-info {
    --bs-btn-color: var(--theme-black);
    --bs-btn-bg: var(--theme-info);
    --bs-btn-border-color: var(--theme-info);
    --bs-btn-hover-color: var(--theme-black);
    --bs-btn-hover-bg: var(--theme-info-600);
    --bs-btn-hover-border-color: var(--theme-info-700);
    --bs-btn-active-color: var(--theme-black);
    --bs-btn-active-bg: var(--theme-info-400);
    --bs-btn-active-border-color: var(--theme-info-700);
    --bs-btn-disabled-color: var(--theme-black);
    --bs-btn-disabled-bg: var(--theme-info);
    --bs-btn-disabled-border-color: var(--theme-info);
}

.btn-warning {
    --bs-btn-color: var(--theme-black);
    --bs-btn-bg: var(--theme-warning);
    --bs-btn-border-color: var(--theme-warning);
    --bs-btn-hover-color: var(--theme-black);
    --bs-btn-hover-bg: var(--theme-warning-600);
    --bs-btn-hover-border-color: var(--theme-warning-700);
    --bs-btn-active-color: var(--theme-black);
    --bs-btn-active-bg: var(--theme-warning-400);
    --bs-btn-active-border-color: var(--theme-warning-700);
    --bs-btn-disabled-color: var(--theme-black);
    --bs-btn-disabled-bg: var(--theme-warning);
    --bs-btn-disabled-border-color: var(--theme-warning);
}

.btn-danger {
    --bs-btn-color: var(--theme-white);
    --bs-btn-bg: var(--theme-danger);
    --bs-btn-border-color: var(--theme-danger);
    --bs-btn-hover-color: var(--theme-white);
    --bs-btn-hover-bg: var(--theme-danger-600);
    --bs-btn-hover-border-color: var(--theme-danger-400);
    --bs-btn-active-color: var(--theme-white);
    --bs-btn-active-bg: var(--theme-danger-400);
    --bs-btn-active-border-color: var(--theme-danger-700);
    --bs-btn-disabled-color: var(--theme-white);
    --bs-btn-disabled-bg: var(--theme-danger);
    --bs-btn-disabled-border-color: var(--theme-danger);
}

.btn-light {
    --bs-btn-color: var(--theme-black);
    --bs-btn-bg: var(--theme-light);
    --bs-btn-border-color: var(--theme-light);
    --bs-btn-hover-color: var(--theme-black);
    --bs-btn-hover-bg: var(--theme-color-d3d4d5);
    --bs-btn-hover-border-color: var(--theme-color-c6c7c8);
    --bs-btn-active-color: var(--theme-black);
    --bs-btn-active-bg: var(--theme-color-c6c7c8);
    --bs-btn-active-border-color: var(--theme-color-babbbc);
    --bs-btn-disabled-color: var(--theme-black);
    --bs-btn-disabled-bg: var(--theme-light);
    --bs-btn-disabled-border-color: var(--theme-light);
}

.btn-dark {
    --bs-btn-color: var(--theme-white);
    --bs-btn-bg: var(--theme-dark);
    --bs-btn-border-color: var(--theme-dark);
    --bs-btn-hover-color: var(--theme-white);
    --bs-btn-hover-bg: var(--theme-color-424649);
    --bs-btn-hover-border-color: var(--theme-color-373b3e);
    --bs-btn-active-color: var(--theme-white);
    --bs-btn-active-bg: var(--theme-color-4d5154);
    --bs-btn-active-border-color: var(--theme-color-373b3e);
    --bs-btn-disabled-color: var(--theme-white);
    --bs-btn-disabled-bg: var(--theme-dark);
    --bs-btn-disabled-border-color: var(--theme-dark);
}

.btn-outline-primary {
    --bs-btn-color: var(--theme-primary);
    --bs-btn-border-color: var(--theme-primary);
    --bs-btn-hover-color: var(--theme-white);
    --bs-btn-hover-bg: var(--theme-primary);
    --bs-btn-hover-border-color: var(--theme-primary);
    --bs-btn-active-color: var(--theme-white);
    --bs-btn-active-bg: var(--theme-primary);
    --bs-btn-active-border-color: var(--theme-primary);
    --bs-btn-disabled-color: var(--theme-primary);
    --bs-btn-disabled-border-color: var(--theme-primary);
}

.btn-outline-secondary {
    --bs-btn-color: var(--theme-secondary);
    --bs-btn-border-color: var(--theme-secondary);
    --bs-btn-hover-color: var(--theme-white);
    --bs-btn-hover-bg: var(--theme-secondary);
    --bs-btn-hover-border-color: var(--theme-secondary);
    --bs-btn-active-color: var(--theme-white);
    --bs-btn-active-bg: var(--theme-secondary);
    --bs-btn-active-border-color: var(--theme-secondary);
    --bs-btn-disabled-color: var(--theme-secondary);
    --bs-btn-disabled-border-color: var(--theme-secondary);
}

.btn-outline-success {
    --bs-btn-color: var(--theme-success);
    --bs-btn-border-color: var(--theme-success);
    --bs-btn-hover-color: var(--theme-white);
    --bs-btn-hover-bg: var(--theme-success);
    --bs-btn-hover-border-color: var(--theme-success);
    --bs-btn-active-color: var(--theme-white);
    --bs-btn-active-bg: var(--theme-success);
    --bs-btn-active-border-color: var(--theme-success);
    --bs-btn-disabled-color: var(--theme-success);
    --bs-btn-disabled-border-color: var(--theme-success);
}

.btn-outline-info {
    --bs-btn-color: var(--theme-info);
    --bs-btn-border-color: var(--theme-info);
    --bs-btn-hover-color: var(--theme-black);
    --bs-btn-hover-bg: var(--theme-info);
    --bs-btn-hover-border-color: var(--theme-info);
    --bs-btn-active-color: var(--theme-black);
    --bs-btn-active-bg: var(--theme-info);
    --bs-btn-active-border-color: var(--theme-info);
    --bs-btn-disabled-color: var(--theme-info);
    --bs-btn-disabled-border-color: var(--theme-info);
}

.btn-outline-warning {
    --bs-btn-color: var(--theme-warning);
    --bs-btn-border-color: var(--theme-warning);
    --bs-btn-hover-color: var(--theme-black);
    --bs-btn-hover-bg: var(--theme-warning);
    --bs-btn-hover-border-color: var(--theme-warning);
    --bs-btn-active-color: var(--theme-black);
    --bs-btn-active-bg: var(--theme-warning);
    --bs-btn-active-border-color: var(--theme-warning);
    --bs-btn-disabled-color: var(--theme-warning);
    --bs-btn-disabled-border-color: var(--theme-warning);
}

.btn-outline-danger {
    --bs-btn-color: var(--theme-danger);
    --bs-btn-border-color: var(--theme-danger);
    --bs-btn-hover-color: var(--theme-white);
    --bs-btn-hover-bg: var(--theme-danger);
    --bs-btn-hover-border-color: var(--theme-danger);
    --bs-btn-active-color: var(--theme-white);
    --bs-btn-active-bg: var(--theme-danger);
    --bs-btn-active-border-color: var(--theme-danger);
    --bs-btn-disabled-color: var(--theme-danger);
    --bs-btn-disabled-border-color: var(--theme-danger);
}

.btn-outline-light {
    --bs-btn-color: var(--theme-light);
    --bs-btn-border-color: var(--theme-light);
    --bs-btn-hover-color: var(--theme-black);
    --bs-btn-hover-bg: var(--theme-light);
    --bs-btn-hover-border-color: var(--theme-light);
    --bs-btn-active-color: var(--theme-black);
    --bs-btn-active-bg: var(--theme-light);
    --bs-btn-active-border-color: var(--theme-light);
    --bs-btn-disabled-color: var(--theme-light);
    --bs-btn-disabled-border-color: var(--theme-light);
}

.btn-outline-dark {
    --bs-btn-color: var(--theme-dark);
    --bs-btn-border-color: var(--theme-dark);
    --bs-btn-hover-color: var(--theme-white);
    --bs-btn-hover-bg: var(--theme-dark);
    --bs-btn-hover-border-color: var(--theme-dark);
    --bs-btn-active-color: var(--theme-white);
    --bs-btn-active-bg: var(--theme-dark);
    --bs-btn-active-border-color: var(--theme-dark);
    --bs-btn-disabled-color: var(--theme-dark);
    --bs-btn-disabled-border-color: var(--theme-dark);
}

.btn-link {
    --bs-btn-disabled-color: var(--theme-secondary);
}

.text-bg-primary {
    background-color: var(--theme-primary) !important;
}

.text-bg-secondary {
    background-color: var(--theme-secondary) !important;
}

.text-bg-success {
    background-color: var(--theme-success) !important;
}

.text-bg-danger {
    background-color: var(--theme-danger) !important;
}

.text-bg-warning {
    background-color: var(--theme-warning) !important;
}

.text-bg-info {
    background-color: var(--theme-info) !important;
}

.bg-primary {
    background-color: var(--theme-primary) !important;
}

.bg-secondary {
    background-color: var(--theme-secondary) !important;
}

.bg-success {
    background-color: var(--theme-success) !important;
}

.bg-danger {
    background-color: var(--theme-danger) !important;
}

.bg-warning {
    background-color: var(--theme-warning) !important;
}

.bg-info {
    background-color: var(--theme-info) !important;
}

.text-primary {
    color: var(--theme-primary) !important;
}
.text-secondary {
    color: var(--theme-secondary) !important;
}
.text-success {
    color: var(--theme-success) !important;
}
.text-danger {
    color: var(--theme-danger) !important;
}
.text-warning {
    color: var(--theme-warning) !important;
}
.text-info {
    color: var(--theme-info) !important;
}

.link-primary {
    color: var(--theme-primary) !important;
    text-decoration-color: var(--theme-primary) !important;
}
.link-primary:focus, .link-primary:hover {
    color: var(--theme-primary-400) !important;
    text-decoration-color: var(--theme-primary-400) !important;
}

.link-secondary {
    color: var(--theme-secondary) !important;
    text-decoration-color: var(--theme-secondary) !important;
}
.link-secondary:focus, .link-secondary:hover {
    color: var(--theme-secondary-400) !important;
    text-decoration-color: var(--theme-secondary-400) !important;
}

.link-success {
    color: var(--theme-success) !important;
    text-decoration-color: var(--theme-success) !important;
}
.link-success:focus, .link-success:hover {
    color: var(--theme-primary-400) !important;
    text-decoration-color: var(--theme-success-400) !important;
}

.link-danger {
    color: var(--theme-danger) !important;
    text-decoration-color: var(--theme-danger) !important;
}
.link-danger:focus, .link-danger:hover {
    color: var(--theme-danger-400) !important;
    text-decoration-color: var(--theme-danger-400) !important;
}

.link-warning {
    color: var(--theme-warning) !important;
    text-decoration-color: var(--theme-warning) !important;
}
.link-warning:focus, .link-warning:hover {
    color: var(--theme-warning-400) !important;
    text-decoration-color: var(--theme-warning-400) !important;
}

.link-info {
    color: var(--theme-info) !important;
    text-decoration-color: var(--theme-info) !important;
}
.link-info:focus, .link-info:hover {
    color: var(--theme-info-400) !important;
    text-decoration-color: var(--theme-info-400) !important;
}

.dropdown-menu {
    --bs-dropdown-link-active-color: var(--theme-white);
    --bs-dropdown-link-active-bg: var(--theme-primary);
    --bs-dropdown-header-color: var(--theme-secondary);
}

.dropdown-menu-dark {
    --bs-dropdown-color: var(--theme-gray-300);
    --bs-dropdown-bg: var(--theme-gray-dark);
    --bs-dropdown-link-color: var(--theme-gray-300);
    --bs-dropdown-link-hover-color: var(--theme-white);
    --bs-dropdown-link-active-color: var(--theme-white);
    --bs-dropdown-link-active-bg: var(--theme-primary);
    --bs-dropdown-link-disabled-color: var(--theme-gray-500);
    --bs-dropdown-header-color: var(--theme-gray-500);
}

.nav-pills {
    --bs-nav-pills-link-active-color: var(--theme-white);
    --bs-nav-pills-link-active-bg: var(--theme-primary);
}

.navbar-dark,
.navbar[data-bs-theme=dark] {
    --bs-navbar-active-color: var(--theme-white);
    --bs-navbar-brand-color: var(--theme-white);
    --bs-navbar-brand-hover-color: var(--theme-white);
}

.pagination {
    --bs-pagination-active-color: var(--theme-white);
    --bs-pagination-active-bg: var(--theme-primary);
    --bs-pagination-active-border-color: var(--theme-primary);
}

.badge {
    --bs-badge-color: var(--theme-white);
}

}
.progress,
.progress-stacked {
    --bs-progress-bar-color: var(--theme-white);
    --bs-progress-bar-bg: var(--theme-primary);
}

}

.list-group {
    --bs-list-group-active-color: var(--theme-white);
    --bs-list-group-active-bg: var(--theme-primary);
    --bs-list-group-active-border-color: var(--theme-primary);
}

.btn-close {
    --bs-btn-close-color: var(--theme-black);
}

.modal-backdrop {
    --bs-backdrop-bg: var(--theme-black);
}

.carousel-dark {
    --bs-carousel-indicator-active-bg: var(--theme-black);
    --bs-carousel-caption-color: var(--theme-black);
}
.border-primary {
    --bs-border-color: var(--theme-secondary);
    border-color: var(--theme-secondary) !important;
}

:root,
[data-bs-theme=light] {
    --bs-carousel-indicator-active-bg: var(--theme-white);
    --bs-carousel-caption-color: var(--theme-white);
}

[data-bs-theme=dark] {
    --bs-carousel-indicator-active-bg: var(--theme-black);
    --bs-carousel-caption-color: var(--theme-black);
}
