/* =========================================
   UTILITIES.CSS — Classes utilitaires
   ========================================= */

/* === Couleurs texte (main.css) === */
.primary { color: var(--primary-color) !important; }
.secondary { color: var(--secondary-color) !important; }
.success { color: var(--success-color) !important; }
.info { color: var(--info-color) !important; }
.warning { color: var(--warning-color) !important; }
.danger { color: var(--danger-color) !important; }
.light { color: var(--light-color) !important; }
.dark { color: var(--dark-color) !important; }
.white { color: white !important; }

.neutral-50 { color: var(--neutral-50-color) !important; }

.blue-500 { color: var(--blue-400-color) !important; }
.red-400 { color: var(--red-400-color) !important; }
.purple-400 { color: var(--red-400-color) !important; }
.turquoise-400 { color: var(--turquoise-400-color) !important; }

/* === Couleurs background (main.css) === */
.bg-primary { background-color: var(--primary-color) !important; }
.bg-secondary { background-color: var(--secondary-color) !important; }
.bg-success { background-color: var(--success-color) !important; }
.bg-info { background-color: var(--info-color) !important; }
.bg-warning { background-color: var(--warning-color) !important; }
.bg-danger { background-color: var(--danger-color) !important; }
.bg-light { background-color: var(--light-color) !important; }
.bg-dark { background-color: var(--dark-color) !important; }

.bg-white { background-color: #fff !important; }

.bg-neutral-20 { background-color: var(--neutral-20-color) !important; }
.bg-neutral-30 { background-color: var(--neutral-30-color) !important; }
.bg-neutral-40 { background-color: var(--neutral-40-color) !important; }

.bg-red-400 { background-color: var(--red-400-color) !important; }
.bg-purple-400 { background-color: var(--red-400-color) !important; }
.bg-turquoise-400 { background-color: var(--turquoise-400-color) !important; }
.bg-grey-baseConnaissance { background-color: var(--neutral-20-color) !important; }

/* === Opacité === */
.opacity-0 { opacity: 0; }
.opacity-25 { opacity: .25; }
.opacity-50 { opacity: .5; }
.opacity-75 { opacity: .75; }
.opacity-100 { opacity: 1; }

/* === Font sizes === */
.fs-extra-large { font-size: 30px; }
.fs-larger { font-size: 23px; }
.fs-large { font-size: 16.8px; }
.fs-medium { font-size: 14px; }
.fs-small { font-size: 11.67px; }

/* === Font weights === */
.fw-extra-bold { font-weight: 700 !important; }
.fw-bold { font-weight: 600 !important; }
.fw-regular { font-weight: 500; }
.form-description,
.fw-light { font-weight: 500 !important; }
.fw-lighter { font-weight: 300 !important; }

.category {
    text-transform: uppercase;
    font-weight: 700;
    color: var(--neutral-80-color);
    font-size: 13.33px;
}

/* === Positionnement === */
.center {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

/* === Dimensions === */
.w-45 { width: 45%; }
.h-0 { height: 0; }
.min-height-20 { min-height: 20rem; }
.min-height-40 { min-height: 40rem; }

/* === Helpers divers === */
.pointer { cursor: pointer; }

.text-break { word-break: break-all; }
.do-not-break-word { word-break: break-word; }
.normal-weight { font-weight: 500 !important; }

/* === Colonnes customs === */
.col-2-custom {
    -ms-flex: 0 0 20%;
    flex: 0 0 20%;
    max-width: 20%;
}
.col-4-custom {
    -ms-flex: 0 0 40%;
    flex: 0 0 40%;
    max-width: 40%;
}
.col-12-custom {
    -ms-flex: 0 0 10%;
    flex: 0 0 10%;
    max-width: 100%;
}
.col-1-5 { max-width: 10% !important; }

.w-20 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 20%;
    flex: 0 0 20%;
    max-width: 20% !important;
}

.tooltip-inner {
    max-width: 400px !important;
    white-space: pre-wrap;
    padding: 0.5rem 0.75rem;
    font-size: var(--font-size-sm, 0.875rem);
    border-radius: 0.375rem;
    background-color: var(--color-primary, #222F59);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.bs-tooltip-top .tooltip-arrow::before,
.bs-tooltip-auto[data-popper-placement^="top"] .tooltip-arrow::before {
    border-top-color: var(--color-primary, #222F59);
}

.bs-tooltip-bottom .tooltip-arrow::before,
.bs-tooltip-auto[data-popper-placement^="bottom"] .tooltip-arrow::before {
    border-bottom-color: var(--color-primary, #222F59);
}

.bs-tooltip-start .tooltip-arrow::before,
.bs-tooltip-auto[data-popper-placement^="left"] .tooltip-arrow::before {
    border-left-color: var(--color-primary, #222F59);
}

.bs-tooltip-end .tooltip-arrow::before,
.bs-tooltip-auto[data-popper-placement^="right"] .tooltip-arrow::before {
    border-right-color: var(--color-primary, #222F59);
}

.underline { text-decoration: underline; }

/* === Couleurs texte françaises (cssSam.css) === */
.text-primary { color: var(--couleur-primary) !important; }
.text-info { color: var(--couleur-info) !important; }
.text-warning { color: var(--couleur-warning) !important; }
.text-success { color: var(--couleur-succes) !important; }
.text-danger { color: var(--couleur-danger) !important; }
.text-default { color: var(--couleur-default) !important; }
.text-muted { color: var(--couleur-default) !important; }

/* === Couleurs sans !important (cssSam.css) === */
.color-default { color: var(--couleur-default); }
.color-primary { color: var(--couleur-primary); }
.color-info { color: var(--couleur-info); }
.color-warning { color: var(--couleur-warning); }
.color-success { color: var(--couleur-succes); }
.color-danger { color: var(--couleur-danger); }
.color-fond-page { color: var(--couleur-fond-page); }

/* === Couleurs background françaises === */
.bg-couleur-default { background-color: var(--couleur-default); }
.bg-couleur-primary { background-color: var(--couleur-primary); }
.bg-couleur-info { background-color: var(--couleur-info); }
.bg-couleur-warning { background-color: var(--couleur-warning); }
.bg-couleur-succes { background-color: var(--couleur-succes); }
.bg-couleur-danger { background-color: var(--couleur-danger); }
.bg-couleur-fond-page { background-color: var(--couleur-fond-page); }

/* === Dégradés (cssSam.css) === */
.couleur-primary-degrade {
    background: -webkit-gradient(linear, left top, right top, from(var(--couleur-primary)), to(var(--couleur-primary-hover)));
    background: linear-gradient(to right, var(--couleur-primary), var(--couleur-primary-hover));
}
.couleur-info-degrade {
    background: -webkit-gradient(linear, left top, right top, from(var(--couleur-info)), to(var(--couleur-info-hover)));
    background: linear-gradient(to right, var(--couleur-info), var(--couleur-info-hover));
}
.couleur-succes-degrade {
    background: -webkit-gradient(linear, left top, right top, from(var(--couleur-succes)), to(var(--couleur-succes-hover)));
    background: linear-gradient(to right, var(--couleur-succes), var(--couleur-succes-hover));
}
.couleur-warning-degrade {
    background: -webkit-gradient(linear, left top, right top, from(var(--couleur-warning)), to(var(--couleur-warning-hover)));
    background: linear-gradient(to right, var(--couleur-warning), var(--couleur-warning-hover));
}
.couleur-danger-degrade {
    background: -webkit-gradient(linear, left top, right top, from(var(--couleur-danger)), to(var(--couleur-danger-hover)));
    background: linear-gradient(to right, var(--couleur-danger), var(--couleur-danger-hover));
}
.couleur-default-degrade {
    background: -webkit-gradient(linear, left top, right top, from(var(--couleur-default)), to(var(--couleur-default-hover)));
    background: linear-gradient(to right, var(--couleur-default), var(--couleur-default-hover));
}

/* === AdminTY bg helpers === */
.bg-adminty-blue { background-color: var(--adminty-blue); color: #fff; }
.bg-adminty-green { background-color: var(--adminty-green); color: #fff; }
.bg-adminty-red { background-color: var(--adminty-red); color: #fff; }
.bg-adminty-yellow { background-color: var(--adminty-yellow); color: #fff; }

/* === Super admin === */
.super-admin-color {
    color: var(--purple-100-color) !important;
    background-color: var(--purple-30-color) !important;
}
