:root {
    /* Existing palette */
    --white: #fff;
    --light: #e7f3f7;
    --navy: #001D3D;

    --dark-teal: #006A94;
    --dark-teal-2: #00537A;
    --dark-teal-3: #013C58;

    --light-teal: #228791;
    --emerald: #065739;
    --teal-green: #226763;
    --light-teal-2: #e8f3f4;

    --high: #990000;
    --high-light: #D78176;
    --low: #228791;
    --low-light: #A5C9D4;

    --sunny-orange: #FFBA08;
    --orange: #fe661f;

    --gray-1: #708090;
    --gray-2: #536878;
    --gray-3: #36454f;

    /* Bootstrap semantic palette */
    --primary: var(--dark-teal);
    --primary-dark: var(--dark-teal-2);
    --primary-darker: var(--dark-teal-3);

    --secondary: var(--gray-2);
    --success: var(--emerald);
    --info: var(--light-teal);
    --warning: var(--sunny-orange);
    --danger: var(--high);
    --dark: var(--navy);
}


/* =========================================================
   BACKGROUNDS
   ========================================================= */

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

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

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

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

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

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

.bg-light {
    background-color: var(--light) !important;
    color: var(--navy) !important;
}

.bg-dark {
    background-color: var(--dark) !important;
    color: var(--white) !important;
}


/* =========================================================
   TEXT
   ========================================================= */

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

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

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

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

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

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

.text-dark {
    color: var(--dark) !important;
}

.text-light {
    color: var(--light) !important;
}


/* =========================================================
   BORDERS
   ========================================================= */

.border-primary {
    border-color: var(--primary) !important;
}

.border-secondary {
    border-color: var(--secondary) !important;
}

.border-success {
    border-color: var(--success) !important;
}

.border-info {
    border-color: var(--info) !important;
}

.border-warning {
    border-color: var(--warning) !important;
}

.border-danger {
    border-color: var(--danger) !important;
}

.border-dark {
    border-color: var(--dark) !important;
}


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

.btn-primary {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--primary);
    --bs-btn-border-color: var(--primary);

    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--primary-dark);
    --bs-btn-hover-border-color: var(--primary-dark);

    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--primary-darker);
    --bs-btn-active-border-color: var(--primary-darker);
}

.btn-secondary {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--gray-2);
    --bs-btn-border-color: var(--gray-2);

    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--gray-3);
    --bs-btn-hover-border-color: var(--gray-3);
}

.btn-success {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--emerald);
    --bs-btn-border-color: var(--emerald);

    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #04462e;
    --bs-btn-hover-border-color: #04462e;
}

.btn-info {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--light-teal);
    --bs-btn-border-color: var(--light-teal);

    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--teal-green);
    --bs-btn-hover-border-color: var(--teal-green);
}

.btn-warning {
    --bs-btn-color: var(--navy);
    --bs-btn-bg: var(--sunny-orange);
    --bs-btn-border-color: var(--sunny-orange);

    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--orange);
    --bs-btn-hover-border-color: var(--orange);
}

.btn-danger {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--high);
    --bs-btn-border-color: var(--high);

    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #780000;
    --bs-btn-hover-border-color: #780000;
}

.btn-dark {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--navy);
    --bs-btn-border-color: var(--navy);

    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--dark-teal-3);
    --bs-btn-hover-border-color: var(--dark-teal-3);
}


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

.btn-outline-primary {
    --bs-btn-color: var(--primary);
    --bs-btn-border-color: var(--primary);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--primary);
    --bs-btn-hover-border-color: var(--primary);
}

.btn-outline-success {
    --bs-btn-color: var(--success);
    --bs-btn-border-color: var(--success);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--success);
    --bs-btn-hover-border-color: var(--success);
}

.btn-outline-danger {
    --bs-btn-color: var(--danger);
    --bs-btn-border-color: var(--danger);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--danger);
    --bs-btn-hover-border-color: var(--danger);
}

.btn-outline-warning {
    --bs-btn-color: #b47d00;
    --bs-btn-border-color: var(--warning);
    --bs-btn-hover-color: var(--navy);
    --bs-btn-hover-bg: var(--warning);
    --bs-btn-hover-border-color: var(--warning);
}

.btn-outline-info {
    --bs-btn-color: var(--info);
    --bs-btn-border-color: var(--info);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--info);
    --bs-btn-hover-border-color: var(--info);
}


/* =========================================================
   ALERTS
   ========================================================= */

.alert-primary {
    color: var(--dark-teal-3);
    background-color: var(--light-teal-2);
    border-color: var(--low-light);
}
.alert-success {
    color: var(--emerald);
    background-color: #e5f3ed;
    border-color: var(--emerald);
}
.alert-info {
    color: var(--dark-teal-3);
    background-color: var(--light-teal-2);
    border-color: var(--light-teal);
}
.alert-warning {
    background-color: #fff4cf;
    border-color: var(--sunny-orange);
}
.alert-danger {
    color: var(--high);
    background-color: #f8e5e3;
    border-color: var(--high-light);
}

/* =========================================================
   BADGES
   ========================================================= */

.badge.bg-primary {
    background-color: var(--primary) !important;
}
.badge.bg-success {
    background-color: var(--success) !important;
}
.badge.bg-info {
    background-color: var(--info) !important;
}
.badge.bg-warning {
    background-color: var(--warning) !important;
    color: var(--navy) !important;
}
.badge.bg-danger {
    background-color: var(--danger) !important;
}