html {
    font-size: 14px;
}

.popover {
    z-index: 1080 !important;
}

@media (min-width: 768px) {
    html {
        font-size: 16px;
    }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
    box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
    position: relative;
    min-height: 100%;
}

body {
    margin-bottom: 60px;
}


.form-floating .ts-control {
    padding-top: 1.625rem;
    padding-bottom: .625rem;
}

.form-floating .ts-wrapper.form-control, .form-floating .ts-wrapper.form-select {
    height: 0 !important;
}


.card-wrapper-421 {
    margin-left: auto;
    margin-right: auto;
}

.fixed-card {
    flex: 0 0 18rem;
    min-width: 18rem;
}

/* 2 cartes max */
@media (min-width: 625px) and (max-width: 1399px) {
    .card-wrapper-421 {
        max-width: calc(2 * 18rem + 4 * 0.75rem);
        justify-content: space-evenly;
    }
}

/* 4 cartes max */
@media (min-width: 1400px) {
    .card-wrapper-421 {
        max-width: calc(4 * 18rem + 8 * 0.75rem);
        justify-content: space-between;
    }
}


.breadcrumb-item.active > a {
    color: var(--bs-breadcrumb-item-active-color);
}

/*bootstrap5-dropdown-ml-hack*/
.dropdown-hover-all .dropdown-menu, .dropdown-hover > .dropdown-menu.dropend {
    margin-left: -1px !important
}


/* Extension Bootstrap 5.3 - Boutons avec couleurs CSS personnalisées */
/* Utilise les variables Bootstrap existantes et les fonctions CSS modernes */

/* Boutons pour toutes les couleurs Bootstrap avec calculs HSL dynamiques */

.btn-blue {
    --bs-btn-color: var(--bs-white);
    --bs-btn-bg: var(--bs-blue);
    --bs-btn-border-color: var(--bs-blue);
    --bs-btn-hover-color: var(--bs-white);
    --bs-btn-hover-bg: hsl(from var(--bs-blue) h s calc(l * 0.85));
    --bs-btn-hover-border-color: hsl(from var(--bs-blue) h s calc(l * 0.8));
    --bs-btn-focus-shadow-rgb: from var(--bs-blue) r g b;
    --bs-btn-active-color: var(--bs-white);
    --bs-btn-active-bg: hsl(from var(--bs-blue) h s calc(l * 0.8));
    --bs-btn-active-border-color: hsl(from var(--bs-blue) h s calc(l * 0.75));
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-white);
    --bs-btn-disabled-bg: var(--bs-blue);
    --bs-btn-disabled-border-color: var(--bs-blue);
}

.btn-indigo {
    --bs-btn-color: var(--bs-white);
    --bs-btn-bg: var(--bs-indigo);
    --bs-btn-border-color: var(--bs-indigo);
    --bs-btn-hover-color: var(--bs-white);
    --bs-btn-hover-bg: hsl(from var(--bs-indigo) h s calc(l * 0.85));
    --bs-btn-hover-border-color: hsl(from var(--bs-indigo) h s calc(l * 0.8));
    --bs-btn-focus-shadow-rgb: from var(--bs-indigo) r g b;
    --bs-btn-active-color: var(--bs-white);
    --bs-btn-active-bg: hsl(from var(--bs-indigo) h s calc(l * 0.8));
    --bs-btn-active-border-color: hsl(from var(--bs-indigo) h s calc(l * 0.75));
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-white);
    --bs-btn-disabled-bg: var(--bs-indigo);
    --bs-btn-disabled-border-color: var(--bs-indigo);
}

.btn-purple {
    --bs-btn-color: var(--bs-white);
    --bs-btn-bg: var(--bs-purple);
    --bs-btn-border-color: var(--bs-purple);
    --bs-btn-hover-color: var(--bs-white);
    --bs-btn-hover-bg: hsl(from var(--bs-purple) h s calc(l * 0.85));
    --bs-btn-hover-border-color: hsl(from var(--bs-purple) h s calc(l * 0.8));
    --bs-btn-focus-shadow-rgb: from var(--bs-purple) r g b;
    --bs-btn-active-color: var(--bs-white);
    --bs-btn-active-bg: hsl(from var(--bs-purple) h s calc(l * 0.8));
    --bs-btn-active-border-color: hsl(from var(--bs-purple) h s calc(l * 0.75));
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-white);
    --bs-btn-disabled-bg: var(--bs-purple);
    --bs-btn-disabled-border-color: var(--bs-purple);
}

.btn-pink {
    --bs-btn-color: var(--bs-white);
    --bs-btn-bg: var(--bs-pink);
    --bs-btn-border-color: var(--bs-pink);
    --bs-btn-hover-color: var(--bs-white);
    --bs-btn-hover-bg: hsl(from var(--bs-pink) h s calc(l * 0.85));
    --bs-btn-hover-border-color: hsl(from var(--bs-pink) h s calc(l * 0.8));
    --bs-btn-focus-shadow-rgb: from var(--bs-pink) r g b;
    --bs-btn-active-color: var(--bs-white);
    --bs-btn-active-bg: hsl(from var(--bs-pink) h s calc(l * 0.8));
    --bs-btn-active-border-color: hsl(from var(--bs-pink) h s calc(l * 0.75));
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-white);
    --bs-btn-disabled-bg: var(--bs-pink);
    --bs-btn-disabled-border-color: var(--bs-pink);
}

.btn-red {
    --bs-btn-color: var(--bs-white);
    --bs-btn-bg: var(--bs-red);
    --bs-btn-border-color: var(--bs-red);
    --bs-btn-hover-color: var(--bs-white);
    --bs-btn-hover-bg: hsl(from var(--bs-red) h s calc(l * 0.85));
    --bs-btn-hover-border-color: hsl(from var(--bs-red) h s calc(l * 0.8));
    --bs-btn-focus-shadow-rgb: from var(--bs-red) r g b;
    --bs-btn-active-color: var(--bs-white);
    --bs-btn-active-bg: hsl(from var(--bs-red) h s calc(l * 0.8));
    --bs-btn-active-border-color: hsl(from var(--bs-red) h s calc(l * 0.75));
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-white);
    --bs-btn-disabled-bg: var(--bs-red);
    --bs-btn-disabled-border-color: var(--bs-red);
}

.btn-orange {
    --bs-btn-color: var(--bs-black);
    --bs-btn-bg: var(--bs-orange);
    --bs-btn-border-color: var(--bs-orange);
    --bs-btn-hover-color: var(--bs-black);
    --bs-btn-hover-bg: hsl(from var(--bs-orange) h s calc(l * 0.9));
    --bs-btn-hover-border-color: hsl(from var(--bs-orange) h s calc(l * 0.85));
    --bs-btn-focus-shadow-rgb: from var(--bs-orange) r g b;
    --bs-btn-active-color: var(--bs-black);
    --bs-btn-active-bg: hsl(from var(--bs-orange) h s calc(l * 0.85));
    --bs-btn-active-border-color: hsl(from var(--bs-orange) h s calc(l * 0.8));
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-black);
    --bs-btn-disabled-bg: var(--bs-orange);
    --bs-btn-disabled-border-color: var(--bs-orange);
}

.btn-yellow {
    --bs-btn-color: var(--bs-black);
    --bs-btn-bg: var(--bs-yellow);
    --bs-btn-border-color: var(--bs-yellow);
    --bs-btn-hover-color: var(--bs-black);
    --bs-btn-hover-bg: hsl(from var(--bs-yellow) h s calc(l * 0.9));
    --bs-btn-hover-border-color: hsl(from var(--bs-yellow) h s calc(l * 0.85));
    --bs-btn-focus-shadow-rgb: from var(--bs-yellow) r g b;
    --bs-btn-active-color: var(--bs-black);
    --bs-btn-active-bg: hsl(from var(--bs-yellow) h s calc(l * 0.85));
    --bs-btn-active-border-color: hsl(from var(--bs-yellow) h s calc(l * 0.8));
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-black);
    --bs-btn-disabled-bg: var(--bs-yellow);
    --bs-btn-disabled-border-color: var(--bs-yellow);
}

.btn-green {
    --bs-btn-color: var(--bs-white);
    --bs-btn-bg: var(--bs-green);
    --bs-btn-border-color: var(--bs-green);
    --bs-btn-hover-color: var(--bs-white);
    --bs-btn-hover-bg: hsl(from var(--bs-green) h s calc(l * 0.85));
    --bs-btn-hover-border-color: hsl(from var(--bs-green) h s calc(l * 0.8));
    --bs-btn-focus-shadow-rgb: from var(--bs-green) r g b;
    --bs-btn-active-color: var(--bs-white);
    --bs-btn-active-bg: hsl(from var(--bs-green) h s calc(l * 0.8));
    --bs-btn-active-border-color: hsl(from var(--bs-green) h s calc(l * 0.75));
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-white);
    --bs-btn-disabled-bg: var(--bs-green);
    --bs-btn-disabled-border-color: var(--bs-green);
}

.btn-teal {
    --bs-btn-color: var(--bs-black);
    --bs-btn-bg: var(--bs-teal);
    --bs-btn-border-color: var(--bs-teal);
    --bs-btn-hover-color: var(--bs-black);
    --bs-btn-hover-bg: hsl(from var(--bs-teal) h s calc(l * 0.9));
    --bs-btn-hover-border-color: hsl(from var(--bs-teal) h s calc(l * 0.85));
    --bs-btn-focus-shadow-rgb: from var(--bs-teal) r g b;
    --bs-btn-active-color: var(--bs-black);
    --bs-btn-active-bg: hsl(from var(--bs-teal) h s calc(l * 0.85));
    --bs-btn-active-border-color: hsl(from var(--bs-teal) h s calc(l * 0.8));
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-black);
    --bs-btn-disabled-bg: var(--bs-teal);
    --bs-btn-disabled-border-color: var(--bs-teal);
}

.btn-cyan {
    --bs-btn-color: var(--bs-black);
    --bs-btn-bg: var(--bs-cyan);
    --bs-btn-border-color: var(--bs-cyan);
    --bs-btn-hover-color: var(--bs-black);
    --bs-btn-hover-bg: hsl(from var(--bs-cyan) h s calc(l * 0.9));
    --bs-btn-hover-border-color: hsl(from var(--bs-cyan) h s calc(l * 0.85));
    --bs-btn-focus-shadow-rgb: from var(--bs-cyan) r g b;
    --bs-btn-active-color: var(--bs-black);
    --bs-btn-active-bg: hsl(from var(--bs-cyan) h s calc(l * 0.85));
    --bs-btn-active-border-color: hsl(from var(--bs-cyan) h s calc(l * 0.8));
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-black);
    --bs-btn-disabled-bg: var(--bs-cyan);
    --bs-btn-disabled-border-color: var(--bs-cyan);
}

.btn-gray {
    --bs-btn-color: var(--bs-white);
    --bs-btn-bg: var(--bs-gray);
    --bs-btn-border-color: var(--bs-gray);
    --bs-btn-hover-color: var(--bs-white);
    --bs-btn-hover-bg: hsl(from var(--bs-gray) h s calc(l * 0.85));
    --bs-btn-hover-border-color: hsl(from var(--bs-gray) h s calc(l * 0.8));
    --bs-btn-focus-shadow-rgb: from var(--bs-gray) r g b;
    --bs-btn-active-color: var(--bs-white);
    --bs-btn-active-bg: hsl(from var(--bs-gray) h s calc(l * 0.8));
    --bs-btn-active-border-color: hsl(from var(--bs-gray) h s calc(l * 0.75));
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-white);
    --bs-btn-disabled-bg: var(--bs-gray);
    --bs-btn-disabled-border-color: var(--bs-gray);
}

.btn-gray-dark {
    --bs-btn-color: var(--bs-white);
    --bs-btn-bg: var(--bs-gray-dark);
    --bs-btn-border-color: var(--bs-gray-dark);
    --bs-btn-hover-color: var(--bs-white);
    --bs-btn-hover-bg: hsl(from var(--bs-gray-dark) h s calc(l * 1.2));
    --bs-btn-hover-border-color: hsl(from var(--bs-gray-dark) h s calc(l * 1.15));
    --bs-btn-focus-shadow-rgb: from var(--bs-gray-dark) r g b;
    --bs-btn-active-color: var(--bs-white);
    --bs-btn-active-bg: hsl(from var(--bs-gray-dark) h s calc(l * 1.15));
    --bs-btn-active-border-color: hsl(from var(--bs-gray-dark) h s calc(l * 1.1));
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-white);
    --bs-btn-disabled-bg: var(--bs-gray-dark);
    --bs-btn-disabled-border-color: var(--bs-gray-dark);
}

.btn-white {
    --bs-btn-color: var(--bs-black);
    --bs-btn-bg: var(--bs-white);
    --bs-btn-border-color: var(--bs-white);
    --bs-btn-hover-color: var(--bs-black);
    --bs-btn-hover-bg: hsl(from var(--bs-white) h s calc(l * 0.96));
    --bs-btn-hover-border-color: hsl(from var(--bs-white) h s calc(l * 0.92));
    --bs-btn-focus-shadow-rgb: from var(--bs-white) r g b;
    --bs-btn-active-color: var(--bs-black);
    --bs-btn-active-bg: hsl(from var(--bs-white) h s calc(l * 0.92));
    --bs-btn-active-border-color: hsl(from var(--bs-white) h s calc(l * 0.9));
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-black);
    --bs-btn-disabled-bg: var(--bs-white);
    --bs-btn-disabled-border-color: var(--bs-white);
}

.btn-black {
    --bs-btn-color: var(--bs-white);
    --bs-btn-bg: var(--bs-black);
    --bs-btn-border-color: var(--bs-black);
    --bs-btn-hover-color: var(--bs-white);
    --bs-btn-hover-bg: hsl(from var(--bs-black) h s calc(l * 1.5));
    --bs-btn-hover-border-color: hsl(from var(--bs-black) h s calc(l * 1.3));
    --bs-btn-focus-shadow-rgb: from var(--bs-black) r g b;
    --bs-btn-active-color: var(--bs-white);
    --bs-btn-active-bg: hsl(from var(--bs-black) h s calc(l * 1.3));
    --bs-btn-active-border-color: hsl(from var(--bs-black) h s calc(l * 1.1));
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-white);
    --bs-btn-disabled-bg: var(--bs-black);
    --bs-btn-disabled-border-color: var(--bs-black);
}

/* Versions outline pour toutes les couleurs */
.btn-outline-blue {
    --bs-btn-color: var(--bs-blue);
    --bs-btn-border-color: var(--bs-blue);
    --bs-btn-hover-color: var(--bs-white);
    --bs-btn-hover-bg: var(--bs-blue);
    --bs-btn-hover-border-color: var(--bs-blue);
    --bs-btn-focus-shadow-rgb: from var(--bs-blue) r g b;
    --bs-btn-active-color: var(--bs-white);
    --bs-btn-active-bg: var(--bs-blue);
    --bs-btn-active-border-color: var(--bs-blue);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-blue);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--bs-blue);
    --bs-gradient: none;
}

.btn-outline-indigo {
    --bs-btn-color: var(--bs-indigo);
    --bs-btn-border-color: var(--bs-indigo);
    --bs-btn-hover-color: var(--bs-white);
    --bs-btn-hover-bg: var(--bs-indigo);
    --bs-btn-hover-border-color: var(--bs-indigo);
    --bs-btn-focus-shadow-rgb: from var(--bs-indigo) r g b;
    --bs-btn-active-color: var(--bs-white);
    --bs-btn-active-bg: var(--bs-indigo);
    --bs-btn-active-border-color: var(--bs-indigo);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-indigo);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--bs-indigo);
    --bs-gradient: none;
}

.btn-outline-purple {
    --bs-btn-color: var(--bs-purple);
    --bs-btn-border-color: var(--bs-purple);
    --bs-btn-hover-color: var(--bs-white);
    --bs-btn-hover-bg: var(--bs-purple);
    --bs-btn-hover-border-color: var(--bs-purple);
    --bs-btn-focus-shadow-rgb: from var(--bs-purple) r g b;
    --bs-btn-active-color: var(--bs-white);
    --bs-btn-active-bg: var(--bs-purple);
    --bs-btn-active-border-color: var(--bs-purple);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-purple);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--bs-purple);
    --bs-gradient: none;
}

.btn-outline-pink {
    --bs-btn-color: var(--bs-pink);
    --bs-btn-border-color: var(--bs-pink);
    --bs-btn-hover-color: var(--bs-white);
    --bs-btn-hover-bg: var(--bs-pink);
    --bs-btn-hover-border-color: var(--bs-pink);
    --bs-btn-focus-shadow-rgb: from var(--bs-pink) r g b;
    --bs-btn-active-color: var(--bs-white);
    --bs-btn-active-bg: var(--bs-pink);
    --bs-btn-active-border-color: var(--bs-pink);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-pink);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--bs-pink);
    --bs-gradient: none;
}

.btn-outline-red {
    --bs-btn-color: var(--bs-red);
    --bs-btn-border-color: var(--bs-red);
    --bs-btn-hover-color: var(--bs-white);
    --bs-btn-hover-bg: var(--bs-red);
    --bs-btn-hover-border-color: var(--bs-red);
    --bs-btn-focus-shadow-rgb: from var(--bs-red) r g b;
    --bs-btn-active-color: var(--bs-white);
    --bs-btn-active-bg: var(--bs-red);
    --bs-btn-active-border-color: var(--bs-red);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-red);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--bs-red);
    --bs-gradient: none;
}

.btn-outline-orange {
    --bs-btn-color: var(--bs-orange);
    --bs-btn-border-color: var(--bs-orange);
    --bs-btn-hover-color: var(--bs-black);
    --bs-btn-hover-bg: var(--bs-orange);
    --bs-btn-hover-border-color: var(--bs-orange);
    --bs-btn-focus-shadow-rgb: from var(--bs-orange) r g b;
    --bs-btn-active-color: var(--bs-black);
    --bs-btn-active-bg: var(--bs-orange);
    --bs-btn-active-border-color: var(--bs-orange);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-orange);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--bs-orange);
    --bs-gradient: none;
}

.btn-outline-yellow {
    --bs-btn-color: var(--bs-yellow);
    --bs-btn-border-color: var(--bs-yellow);
    --bs-btn-hover-color: var(--bs-black);
    --bs-btn-hover-bg: var(--bs-yellow);
    --bs-btn-hover-border-color: var(--bs-yellow);
    --bs-btn-focus-shadow-rgb: from var(--bs-yellow) r g b;
    --bs-btn-active-color: var(--bs-black);
    --bs-btn-active-bg: var(--bs-yellow);
    --bs-btn-active-border-color: var(--bs-yellow);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-yellow);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--bs-yellow);
    --bs-gradient: none;
}

.btn-outline-green {
    --bs-btn-color: var(--bs-green);
    --bs-btn-border-color: var(--bs-green);
    --bs-btn-hover-color: var(--bs-white);
    --bs-btn-hover-bg: var(--bs-green);
    --bs-btn-hover-border-color: var(--bs-green);
    --bs-btn-focus-shadow-rgb: from var(--bs-green) r g b;
    --bs-btn-active-color: var(--bs-white);
    --bs-btn-active-bg: var(--bs-green);
    --bs-btn-active-border-color: var(--bs-green);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-green);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--bs-green);
    --bs-gradient: none;
}

.btn-outline-teal {
    --bs-btn-color: var(--bs-teal);
    --bs-btn-border-color: var(--bs-teal);
    --bs-btn-hover-color: var(--bs-black);
    --bs-btn-hover-bg: var(--bs-teal);
    --bs-btn-hover-border-color: var(--bs-teal);
    --bs-btn-focus-shadow-rgb: from var(--bs-teal) r g b;
    --bs-btn-active-color: var(--bs-black);
    --bs-btn-active-bg: var(--bs-teal);
    --bs-btn-active-border-color: var(--bs-teal);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-teal);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--bs-teal);
    --bs-gradient: none;
}

.btn-outline-cyan {
    --bs-btn-color: var(--bs-cyan);
    --bs-btn-border-color: var(--bs-cyan);
    --bs-btn-hover-color: var(--bs-black);
    --bs-btn-hover-bg: var(--bs-cyan);
    --bs-btn-hover-border-color: var(--bs-cyan);
    --bs-btn-focus-shadow-rgb: from var(--bs-cyan) r g b;
    --bs-btn-active-color: var(--bs-black);
    --bs-btn-active-bg: var(--bs-cyan);
    --bs-btn-active-border-color: var(--bs-cyan);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-cyan);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--bs-cyan);
    --bs-gradient: none;
}

.btn-outline-gray {
    --bs-btn-color: var(--bs-gray);
    --bs-btn-border-color: var(--bs-gray);
    --bs-btn-hover-color: var(--bs-white);
    --bs-btn-hover-bg: var(--bs-gray);
    --bs-btn-hover-border-color: var(--bs-gray);
    --bs-btn-focus-shadow-rgb: from var(--bs-gray) r g b;
    --bs-btn-active-color: var(--bs-white);
    --bs-btn-active-bg: var(--bs-gray);
    --bs-btn-active-border-color: var(--bs-gray);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-gray);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--bs-gray);
    --bs-gradient: none;
}

.btn-outline-gray-dark {
    --bs-btn-color: var(--bs-gray-dark);
    --bs-btn-border-color: var(--bs-gray-dark);
    --bs-btn-hover-color: var(--bs-white);
    --bs-btn-hover-bg: var(--bs-gray-dark);
    --bs-btn-hover-border-color: var(--bs-gray-dark);
    --bs-btn-focus-shadow-rgb: from var(--bs-gray-dark) r g b;
    --bs-btn-active-color: var(--bs-white);
    --bs-btn-active-bg: var(--bs-gray-dark);
    --bs-btn-active-border-color: var(--bs-gray-dark);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-gray-dark);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--bs-gray-dark);
    --bs-gradient: none;
}

.btn-outline-white {
    --bs-btn-color: var(--bs-white);
    --bs-btn-border-color: var(--bs-white);
    --bs-btn-hover-color: var(--bs-black);
    --bs-btn-hover-bg: var(--bs-white);
    --bs-btn-hover-border-color: var(--bs-white);
    --bs-btn-focus-shadow-rgb: from var(--bs-white) r g b;
    --bs-btn-active-color: var(--bs-black);
    --bs-btn-active-bg: var(--bs-white);
    --bs-btn-active-border-color: var(--bs-white);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-white);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--bs-white);
    --bs-gradient: none;
}

.btn-outline-black {
    --bs-btn-color: var(--bs-black);
    --bs-btn-border-color: var(--bs-black);
    --bs-btn-hover-color: var(--bs-white);
    --bs-btn-hover-bg: var(--bs-black);
    --bs-btn-hover-border-color: var(--bs-black);
    --bs-btn-focus-shadow-rgb: from var(--bs-black) r g b;
    --bs-btn-active-color: var(--bs-white);
    --bs-btn-active-bg: var(--bs-black);
    --bs-btn-active-border-color: var(--bs-black);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-black);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--bs-black);
    --bs-gradient: none;
}

/* Classes de tailles personnalisées */
.btn-xs {
    --bs-btn-border-radius: var(--bs-border-radius-sm);
    --bs-btn-padding-y: .125rem;
    --bs-btn-padding-x: .35rem;
    --bs-btn-font-size: .6rem;
}

.btn-xl {
    --bs-btn-padding-y: 0.875rem;
    --bs-btn-padding-x: 2rem;
    --bs-btn-font-size: 1.25rem;
    --bs-btn-border-radius: var(--bs-border-radius-lg);
}

.bg-blue {
    background-color: #0d6efd !important;
}

.text-blue {
    color: #0d6efd !important;
}

.bg-indigo {
    background-color: #6610f2 !important;
}

.text-indigo {
    color: #6610f2 !important;
}

.bg-purple {
    background-color: #6f42c1 !important;
}

.text-purple {
    color: #6f42c1 !important;
}

.bg-pink {
    background-color: #d63384 !important;
}

.text-pink {
    color: #d63384 !important;
}

.bg-red {
    background-color: #dc3545 !important;
}

.text-red {
    color: #dc3545 !important;
}

.bg-orange {
    background-color: #fd7e14 !important;
}

.text-orange {
    color: #fd7e14 !important;
}

.bg-yellow {
    background-color: #ffc107 !important;
}

.text-yellow {
    color: #ffc107 !important;
}

.bg-green {
    background-color: #198754 !important;
}

.text-green {
    color: #198754 !important;
}

.bg-teal {
    background-color: #20c997 !important;
}

.text-teal {
    color: #20c997 !important;
}

.bg-cyan {
    background-color: #0dcaf0 !important;
}

.text-cyan {
    color: #0dcaf0 !important;
}

.bg-gray {
    background-color: #6c757d !important;
}

.text-gray {
    color: #6c757d !important;
}

.bg-gray-light {
    background-color: #adb5bd !important;
}

.text-gray-light {
    color: #adb5bd !important;
}

.bg-gray-dark {
    background-color: #343a40 !important;
}

.text-gray-dark {
    color: #343a40 !important;
}
