/* =====================================================
   COLOR DICTIONARY – SINGLE SOURCE OF TRUTH
   ===================================================== */

:root,
[data-bs-theme=light] {

    /* Corner radius -- every Tabler border-radius variable derives from this
       scale (cards, buttons, tags, inputs, etc. all stay in sync automatically).
       0.5 matches the "0.5" setting in Tabler's own demo site's radius picker. */
    --tblr-border-radius-scale: 0.5;

    /* =====================================================
       Capewood Color Palette
       ===================================================== */

    
    /* primary + secondary colors */
    --color-deep-blue: #002a40;
    --color-deep-blue-rgb: 0, 42, 64;

    --color-muted-blue-gray: #c7d6df;
    --color-muted-blue-gray-rgb: 199, 214, 223;

    /* neutral + base colors */
    --color-white-ish: #ffffff;
    --color-white-ish-rgb: 255, 255, 255;

    --color-warm-stone: #f1eee8;
    --color-warm-stone-rgb: 241, 238, 232;

    --color-slate: #8fa6b4;
    --color-slate-rgb: 143, 166, 180;

    
    /* =====================================================
       Brand colors
       ===================================================== */

    /* Primary – Deep Blue */
    --color-primary: var(--color-deep-blue);
    --color-primary-rgb: var(--color-deep-blue-rgb);
    --color-primary-hover: #001e2d;
    --color-primary-hover-rgb: 0, 30, 45;
    --color-primary-active: #001926;
    --color-primary-active-rgb: 0, 25, 38;

    /* Secondary – Muted Blue-Gray */
    --color-secondary: var(--color-muted-blue-gray);
    --color-secondary-rgb: var(--color-muted-blue-gray-rgb);
    --color-secondary-hover: #b7c9d4;
    --color-secondary-hover-rgb: 183, 201, 212;
    --color-secondary-active: #a9bdc9;
    --color-secondary-active-rgb: 169, 189, 201;

    /* =====================================================
       Status colors
       ===================================================== */

    /* Success -- dark enough to clear 4.5:1 for white-on-success text (badges/buttons).
       A lighter green such as #4f9a6a is only 3.41:1, a WCAG AA fail. See #299. */
    --color-success: #3d7a53;
    --color-success-rgb: 61, 122, 83;
    --color-success-hover: #356a48;
    --color-success-hover-rgb: 53, 106, 72;
    --color-success-active: #2d5b3e;
    --color-success-active-rgb: 45, 91, 62;

    /* Warning */
    --color-warning: #e0b020;
    --color-warning-rgb: 224, 176, 32;
    --color-warning-hover: #cfa01d;
    --color-warning-hover-rgb: 207, 160, 29;
    --color-warning-active: #b58c19;
    --color-warning-active-rgb: 181, 140, 25;

    /* Danger */
    --color-danger: #b94a48;
    --color-danger-rgb: 185, 74, 72;
    --color-danger-hover: #a64341;
    --color-danger-hover-rgb: 166, 67, 65;
    --color-danger-active: #933b39;
    --color-danger-active-rgb: 147, 59, 57;

    
    /* =====================================================
       Supporting semantic colors
       ===================================================== */

    /* Info -- dark enough to clear 4.5:1 for white-on-info text (env "Dev" badge, info
       buttons). A lighter blue such as #5b8fb9 is only 3.46:1, a WCAG AA fail. See #299. */
    --color-info: #4e7a9f;
    --color-info-rgb: 78, 122, 159;
    --color-info-hover: #436a8a;
    --color-info-hover-rgb: 67, 106, 138;
    --color-info-active: #3a5b77;
    --color-info-active-rgb: 58, 91, 119;

    /* Light */
    --color-light: #f8f9fa;
    --color-light-rgb: 248, 249, 250;
    --color-light-hover: #eceff1;
    --color-light-hover-rgb: 236, 239, 241;
    --color-light-active: #dee3e7;
    --color-light-active-rgb: 222, 227, 231;

    /* Dark */
    --color-dark: #5f7482;
    --color-dark-rgb: 95, 116, 130;
    --color-dark-hover: #526572;
    --color-dark-hover-rgb: 82, 101, 114;
    --color-dark-active: #465760;
    --color-dark-active-rgb: 70, 87, 96;

    /* Links -- a distinct deep brand blue rather than the green family: #125e94 is 6.88:1,
       where the green #4f9a6a is 3.41:1, a WCAG AA fail. See #299. */
    --color-link: #125e94;
    --color-link-rgb: 18, 94, 148;
    --color-link-hover: #0f4f7d;
    --color-link-hover-rgb: 15, 79, 125;


    /* =====================================================
       Tabler semantic mappings
       ===================================================== */

    --tblr-primary: var(--color-primary);
    --tblr-primary-rgb: var(--color-primary-rgb);

    --tblr-secondary: var(--color-secondary);
    --tblr-secondary-rgb: var(--color-secondary-rgb);

    --tblr-success: var(--color-success);
    --tblr-success-rgb: var(--color-success-rgb);

    --tblr-warning: var(--color-warning);
    --tblr-warning-rgb: var(--color-warning-rgb);

    --tblr-danger: var(--color-danger);
    --tblr-danger-rgb: var(--color-danger-rgb);

    --tblr-info: var(--color-info);
    --tblr-info-rgb: var(--color-info-rgb);

    --tblr-light: var(--color-light);
    --tblr-light-rgb: var(--color-light-rgb);

    --tblr-dark: var(--color-dark);
    --tblr-dark-rgb: var(--color-dark-rgb);

    /* Text emphasis */
    --tblr-primary-text-emphasis: var(--color-primary);
    --tblr-secondary-text-emphasis: var(--color-secondary);
    --tblr-success-text-emphasis: var(--color-success);
    --tblr-warning-text-emphasis: var(--color-warning);
    --tblr-danger-text-emphasis: var(--color-danger);
    --tblr-info-text-emphasis: var(--color-info);
    --tblr-light-text-emphasis: var(--color-light);
    --tblr-dark-text-emphasis: var(--color-dark);

    /* Subtle backgrounds */
    --tblr-primary-bg-subtle: rgba(var(--color-primary-rgb), 0.08);
    --tblr-secondary-bg-subtle: rgba(var(--color-secondary-rgb), 0.08);
    --tblr-success-bg-subtle: rgba(var(--color-success-rgb), 0.10);
    --tblr-warning-bg-subtle: rgba(var(--color-warning-rgb), 0.12);
    --tblr-danger-bg-subtle: rgba(var(--color-danger-rgb), 0.10);
    --tblr-info-bg-subtle: rgba(var(--color-info-rgb), 0.10);
    --tblr-light-bg-subtle: rgba(var(--color-light-rgb), 0.08);
    --tblr-primary-bg-dark: rgba(var(--color-dark-rgb), 0.08);

    /* Body */
    --tblr-body-bg: var(--color-white-ish);
    --tblr-body-bg-rgb: var(--color-white-ish-rgb);
    --tblr-body-color: var(--color-primary);
    --tblr-body-color-rgb: var(--color-primary-rgb);

    --tblr-link-color: var(--color-link);
    --tblr-link-color-rgb: var(--color-link-rgb);
    --tblr-link-hover-color: var(--color-link-hover);
    --tblr-link-hover-color-rgb: var(--color-link-hover-rgb);

    --tblr-form-valid-color: var(--tblr-success);
    --tblr-form-valid-border-color: var(--tblr-success);
    --tblr-form-invalid-color: var(--tblr-danger);
    --tblr-form-invalid-border-color: var(--tblr-danger);

    /* Focus ring */
    --tblr-focus-ring-color: rgba(var(--color-primary-rgb), 0.25);

    /* Muted text / table headers -- Tabler's default is slightly under 4.5:1 on white.
       Explicit override to clear AA (muted secondary text, uppercase th headers). See #299. */
    --tblr-muted: #5a6b78;
}

/* =====================================================
   SOLID BUTTONS
   ===================================================== */

.btn-primary {
    --tblr-btn-color: var(--color-white-ish);
    --tblr-btn-bg: var(--color-primary);
    --tblr-btn-border-color: var(--color-primary);
    --tblr-btn-hover-bg: var(--color-primary-hover);
    --tblr-btn-hover-border-color: var(--color-primary-hover);
    --tblr-btn-active-bg: var(--color-primary-active);
    --tblr-btn-active-border-color: var(--color-primary-active);
}

.btn-secondary {
    --tblr-btn-color: var(--color-primary);
    --tblr-btn-bg: var(--color-secondary);
    --tblr-btn-border-color: var(--color-secondary);
    --tblr-btn-hover-bg: var(--color-secondary-hover);
    --tblr-btn-hover-border-color: var(--color-secondary-hover);
    --tblr-btn-active-bg: var(--color-secondary-active);
    --tblr-btn-active-border-color: var(--color-secondary-active);
}

.btn-success {
    --tblr-btn-color: var(--color-white-ish);
    --tblr-btn-bg: var(--color-success);
    --tblr-btn-border-color: var(--color-success);
    --tblr-btn-hover-bg: var(--color-success-hover);
    --tblr-btn-hover-border-color: var(--color-success-hover);
    --tblr-btn-active-bg: var(--color-success-active);
    --tblr-btn-active-border-color: var(--color-success-active);
}

.btn-warning {
    /* Deep-blue text on the vibrant yellow bg -- white-on-warning is 2.02:1 (AA fail).
       See #299. */
    --tblr-btn-color: var(--color-deep-blue);
    --tblr-btn-bg: var(--color-warning);
    --tblr-btn-border-color: var(--color-warning);
    --tblr-btn-hover-bg: var(--color-warning-hover);
    --tblr-btn-hover-border-color: var(--color-warning-hover);
    --tblr-btn-active-bg: var(--color-warning-active);
    --tblr-btn-active-border-color: var(--color-warning-active);
}

.btn-danger {
    --tblr-btn-color: var(--color-white-ish);
    --tblr-btn-bg: var(--color-danger);
    --tblr-btn-border-color: var(--color-danger);
    --tblr-btn-hover-bg: var(--color-danger-hover);
    --tblr-btn-hover-border-color: var(--color-danger-hover);
    --tblr-btn-active-bg: var(--color-danger-active);
    --tblr-btn-active-border-color: var(--color-danger-active);
}

.btn-info {
    --tblr-btn-color: var(--color-white-ish);
    --tblr-btn-bg: var(--color-info);
    --tblr-btn-border-color: var(--color-info);
    --tblr-btn-hover-bg: var(--color-info-hover);
    --tblr-btn-hover-border-color: var(--color-info-hover);
    --tblr-btn-active-bg: var(--color-info-active);
    --tblr-btn-active-border-color: var(--color-info-active);
}

.btn-light {
    --tblr-btn-color: var(--color-primary);
    --tblr-btn-bg: var(--color-light);
    --tblr-btn-border-color: var(--color-light);
    --tblr-btn-hover-bg: var(--color-light-hover);
    --tblr-btn-hover-border-color: var(--color-light-hover);
    --tblr-btn-active-bg: var(--color-light-active);
    --tblr-btn-active-border-color: var(--color-light-active);
}

.btn-dark {
    --tblr-btn-color: var(--color-white-ish);
    --tblr-btn-bg: var(--color-dark);
    --tblr-btn-border-color: var(--color-dark);
    --tblr-btn-hover-bg: var(--color-dark-hover);
    --tblr-btn-hover-border-color: var(--color-dark-hover);
    --tblr-btn-active-bg: var(--color-dark-active);
    --tblr-btn-active-border-color: var(--color-dark-active);
}

/* =====================================================
   OUTLINE BUTTONS
   ===================================================== */

.btn-outline-primary {
    --tblr-btn-color: var(--color-primary);
    --tblr-btn-border-color: var(--color-primary);
    --tblr-btn-hover-color: var(--color-white-ish);
    --tblr-btn-hover-bg: var(--color-primary);
    --tblr-btn-active-bg: var(--color-primary-hover);
}

.btn-outline-secondary {
    --tblr-btn-color: var(--color-primary);
    --tblr-btn-border-color: var(--color-slate);
    --tblr-btn-hover-color: var(--color-primary);
    --tblr-btn-hover-bg: var(--color-warm-stone);
}

.btn-outline-success {
    --tblr-btn-color: var(--color-success);
    --tblr-btn-border-color: var(--color-success);
    --tblr-btn-hover-color: var(--color-white-ish);
    --tblr-btn-hover-bg: var(--color-success);
    --tblr-btn-active-bg: var(--color-success-hover);
}

.btn-outline-warning {
    /* Deep-blue text at rest too, not just on hover -- the warning yellow itself as a text
       color on a white/transparent background is only 2.02:1, the same AA-failing pairing
       .btn-warning's solid fill also has to avoid. */
    --tblr-btn-color: var(--color-deep-blue);
    --tblr-btn-border-color: var(--color-warning);
    --tblr-btn-hover-color: var(--color-deep-blue);
    --tblr-btn-hover-bg: var(--color-warning);
    --tblr-btn-active-bg: var(--color-warning-hover);
}

.btn-outline-danger {
    --tblr-btn-color: var(--color-danger);
    --tblr-btn-border-color: var(--color-danger);
    --tblr-btn-hover-color: var(--color-white-ish);
    --tblr-btn-hover-bg: var(--color-danger);
    --tblr-btn-active-bg: var(--color-danger-hover);
}

.btn-outline-info {
    --tblr-btn-color: var(--color-info);
    --tblr-btn-border-color: var(--color-info);
    --tblr-btn-hover-color: var(--color-white-ish);
    --tblr-btn-hover-bg: var(--color-info);
    --tblr-btn-active-bg: var(--color-info-hover);
}

.btn-outline-light {
    --tblr-btn-color: var(--color-light);
    --tblr-btn-border-color: var(--color-light);
    --tblr-btn-hover-color: var(--color-primary);
    --tblr-btn-hover-bg: var(--color-light-hover);
}

.btn-outline-dark {
    --tblr-btn-color: var(--color-dark);
    --tblr-btn-border-color: var(--color-dark);
    --tblr-btn-hover-color: var(--color-white-ish);
    --tblr-btn-hover-bg: var(--color-dark);
    --tblr-btn-active-bg: var(--color-dark-hover);
}

/* =====================================================
   BACKGROUND UTILITIES – FORCE TEXT COLOR CONSISTENCY
   ===================================================== */

.bg-deep-blue {
    background-color: var(--color-deep-blue) !important;
    color: var(--color-white-ish) !important;
}
.bg-muted-blue-gray {
    background-color: var(--color-muted-blue-gray) !important;
    color: var(--color-deep-blue) !important;
}
.bg-white-ish {
    background-color: var(--color-white-ish) !important;
    color: var(--color-deep-blue) !important;
}
.bg-warm-stone {
    background-color: var(--color-warm-stone) !important;
    color: var(--color-deep-blue) !important;
}
.bg-slate {
    background-color: var(--color-slate) !important;
    color: var(--color-deep-blue) !important;
}

.bg-primary,
.bg-success,
.bg-warning,
.bg-danger,
.bg-info,
.bg-dark {
    color: var(--color-white-ish) !important;
}

.bg-secondary,
.bg-light {
    color: var(--color-deep-blue) !important;
}


/* =====================================================
   CARD HEADERS / FOOTERS
   ===================================================== */

.card-header.bg-primary,
.card-header.bg-success,
.card-header.bg-warning,
.card-header.bg-danger,
.card-header.bg-info,
.card-header.bg-dark,
.card-footer.bg-primary,
.card-footer.bg-success,
.card-footer.bg-warning,
.card-footer.bg-danger,
.card-footer.bg-info,
.card-footer.bg-dark {
    color: var(--color-white-ish) !important;
}

.card-header.bg-secondary,
.card-header.bg-light,
.card-footer.bg-secondary,
.card-footer.bg-light {
    color: var(--color-primary) !important;
}

/* =====================================================
   TABLES
   ===================================================== */

/* Base table contextual backgrounds */
.table-primary {
    --tblr-table-bg: var(--color-primary);
    --tblr-table-color: var(--color-white-ish);
    --tblr-table-border-color: rgba(var(--color-primary-rgb), 0.15);
}

.table-secondary {
    --tblr-table-bg: var(--color-secondary);
    --tblr-table-color: var(--color-primary);
    --tblr-table-border-color: rgba(var(--color-secondary-rgb), 0.3);
}

.table-success {
    --tblr-table-bg: var(--color-success);
    --tblr-table-color: var(--color-white-ish);
    --tblr-table-border-color: rgba(var(--color-success-rgb), 0.25);
}

.table-warning {
    --tblr-table-bg: var(--color-warning);
    --tblr-table-color: var(--color-white-ish);
    --tblr-table-border-color: rgba(var(--color-warning-rgb), 0.35);
}

.table-danger {
    --tblr-table-bg: var(--color-danger);
    --tblr-table-color: var(--color-white-ish);
    --tblr-table-border-color: rgba(var(--color-danger-rgb), 0.25);
}

.table-info {
    --tblr-table-bg: var(--color-info);
    --tblr-table-color: var(--color-white-ish);
    --tblr-table-border-color: rgba(var(--color-info-rgb), 0.25);
}

.table-light {
    --tblr-table-bg: var(--color-light);
    --tblr-table-color: var(--color-primary);
    --tblr-table-border-color: rgba(var(--color-light-rgb), 0.6);
}

.table-dark {
    --tblr-table-bg: var(--color-dark);
    --tblr-table-color: var(--color-white-ish);
    --tblr-table-border-color: rgba(var(--color-dark-rgb), 0.4);
}

/* Table row contextual states */
.table > :not(caption) > tr.table-primary > * {
    background-color: var(--color-primary);
    color: var(--color-white-ish);
}

.table > :not(caption) > tr.table-secondary > * {
    background-color: var(--color-secondary);
    color: var(--color-primary);
}

.table > :not(caption) > tr.table-success > * {
    background-color: var(--color-success);
    color: var(--color-white-ish);
}

.table > :not(caption) > tr.table-warning > * {
    background-color: var(--color-warning);
    color: var(--color-white-ish);
}

.table > :not(caption) > tr.table-danger > * {
    background-color: var(--color-danger);
    color: var(--color-white-ish);
}

.table > :not(caption) > tr.table-info > * {
    background-color: var(--color-info);
    color: var(--color-white-ish);
}

.table > :not(caption) > tr.table-light > * {
    background-color: var(--color-light);
    color: var(--color-primary);
}

.table > :not(caption) > tr.table-dark > * {
    background-color: var(--color-dark);
    color: var(--color-white-ish);
}

/* Table head / foot contextual backgrounds */
.table > thead.table-primary > tr > th,
.table > tfoot.table-primary > tr > th {
    background-color: var(--color-primary);
    color: var(--color-white-ish);
}

.table > thead.table-secondary > tr > th,
.table > tfoot.table-secondary > tr > th {
    background-color: var(--color-secondary);
    color: var(--color-primary);
}

.table > thead.table-success > tr > th,
.table > tfoot.table-success > tr > th {
    background-color: var(--color-success);
    color: var(--color-white-ish);
}

.table > thead.table-warning > tr > th,
.table > tfoot.table-warning > tr > th {
    background-color: var(--color-warning);
    color: var(--color-white-ish);
}

.table > thead.table-danger > tr > th,
.table > tfoot.table-danger > tr > th {
    background-color: var(--color-danger);
    color: var(--color-white-ish);
}

.table > thead.table-info > tr > th,
.table > tfoot.table-info > tr > th {
    background-color: var(--color-info);
    color: var(--color-white-ish);
}

.table > thead.table-light > tr > th,
.table > tfoot.table-light > tr > th {
    background-color: var(--color-light);
    color: var(--color-primary);
}

.table > thead.table-dark > tr > th,
.table > tfoot.table-dark > tr > th {
    background-color: var(--color-dark);
    color: var(--color-white-ish);
}

/* Hover rows (table-hover modifier) */
.table-hover > tbody > tr:hover > * {
    background-color: rgba(var(--color-primary-rgb), 0.06);
}

.table-hover > tbody > tr.table-success:hover > * {
    background-color: var(--color-success-hover);
}

.table-hover > tbody > tr.table-warning:hover > * {
    background-color: var(--color-warning-hover);
}

.table-hover > tbody > tr.table-danger:hover > * {
    background-color: var(--color-danger-hover);
}

.table-hover > tbody > tr.table-info:hover > * {
    background-color: var(--color-info-hover);
}

.table-hover > tbody > tr.table-secondary:hover > * {
    background-color: var(--color-secondary-hover);
}

.table-hover > tbody > tr.table-light:hover > * {
    background-color: var(--color-light-hover);
}

.table-hover > tbody > tr.table-dark:hover > * {
    background-color: var(--color-dark-hover);
}

/* =====================================================
   NAVBAR (FORCE WHITE MENU TEXT)
   ===================================================== */

.navbar {
    --tblr-navbar-color: var(--color-white-ish);
    --tblr-navbar-hover-color: var(--color-white-ish);
    --tblr-navbar-active-color: var(--color-white-ish);
    --tblr-navbar-disabled-color: rgba(var(--color-white-ish-rgb), 0.6);
    --tblr-navbar-brand-color: var(--color-white-ish);
    --tblr-navbar-brand-hover-color: var(--color-white-ish);
}
