body {
    --bs-body-font-size: 0.8rem;
    --bs-body-font-weight: 400;
    --bs-body-line-height: 1.2;
}


.navbar-dark-all-page {
    background-color: #3575cc;
    opacity: 0.8;
    height: 100px;
    background-image: url("/static/vendor/front/svg/components/wave-pattern-light.678905678f26.svg");
}

.cursor-move {
    cursor: move;
}

.form-control {
    border-radius: 0 !important;
    padding: 3px 6px;
}

.form-control-sm {
    border-radius: 0 !important;
    padding: 3px 6px !important;
    min-height: auto !important;
    font-size: 0.875rem !important; /* ou 14px */
    line-height: 1.2 !important;
}


select.form-select {
    padding: 6px 2.25rem 6px 6px;
    line-height: 1.2;
    border-radius: 0 !important;
}


.form-control,
select.form-select,
select.form-control,
select.js-select,
.span-befor-search-input {
    background-color: #f1f3f5;
    border-color: #d7dee6;
    border-radius: 0;
    height: 30px;
}

select.form-select,
select.form-control,
select.js-select {
    background-position: right .65rem center;
    background-repeat: no-repeat;
    padding-right: 2.25rem !important;
    text-overflow: ellipsis;
    white-space: nowrap;
}

select.form-select-sm {
    padding-right: 2rem !important;
}

.ts-wrapper.form-control, .ts-wrapper.form-select {
   background-color: #f1f3f5;
}

/* TomSelect : aligner les widgets sur les <select> natifs
   (hauteur 30px, coins carrés, même bordure/fond). */
.ts-wrapper.form-select,
.ts-wrapper.form-control {
    border-radius: 0;
    padding: 0;
    border: 0;
    min-height: 0;
    height: auto;
}
.ts-wrapper.single .ts-control {
    min-height: 30px;
    height: 30px;
    border-radius: 0;
    border: 1px solid #d7dee6;
    background-color: #f1f3f5;
    padding-top: 0;
    padding-bottom: 0;
    display: flex;
    align-items: center;
    line-height: normal;
}
/* L'item sélectionné devient un conteneur centré pleine hauteur : le texte est
   centré verticalement même si le thème imbrique le libellé dans un <div>. */
.ts-wrapper.single .ts-control > .item {
    display: flex;
    align-items: center;
    height: 100%;
    padding: 0;
    margin: 0;
    line-height: normal;
}
.ts-wrapper.single .ts-control > input {
    height: auto;
    min-height: 0;
    margin: 0;
    padding: 0;
    align-self: center;
    line-height: normal;
}

/* Tom Select compact, aligned with PLAMOGES native selects.
   Apply this class to the field container. It supports both single and
   multiple widgets; multiple widgets can still grow onto several lines. */
.plamoges-tom-select-compact .ts-wrapper.form-select,
.plamoges-tom-select-compact .ts-wrapper.form-control {
    min-height: 30px;
    padding: 0;
    border: 1px solid #d7dee6 !important;
    border-radius: 0;
    background-color: #f1f3f5 !important;
    box-shadow: none;
    position: relative;
}

.plamoges-tom-select-compact .ts-control {
    min-height: 28px;
    align-items: center;
    padding: 0 2.25rem 0 6px;
    border: 0 !important;
    border-radius: 0;
    background: transparent !important;
    box-shadow: none;
    line-height: 1.2;
}

/* The legacy single-select rule draws its own inner border. Inside the
   reusable compact style, the wrapper is the only visible field surface. */
.plamoges-tom-select-compact .ts-wrapper.single .ts-control {
    min-height: 28px;
    height: 28px;
    padding: 0 2.25rem 0 6px;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none;
}

.plamoges-tom-select-compact .ts-wrapper.focus {
    border-color: #86b7fe !important;
}

.input-group-text {
  padding: .5rem 1rem;
  font-size: .8rem;
  border-radius: .3125rem;
}

.input-group-text {
  font-size: 1rem;
  font-weight: 300;
  line-height: 1;
}

textarea.form-control {
    background-color: #f1f3f5;
    border-color: #d7dee6;
    border-radius: 0;
    height: 40px;
}

.modal-header {
    border-radius: 0 !important;
    background-color: #DDDDDD; /* Couleur sombre type desktop */
    color: white;
    border-bottom: 2px solid var(--bs-primary);
    padding: 10px 15px;
    font-weight: bold;
}

#treeContainer {
    background: white;
    border: 1px solid #ccc;
    max-height: 300px;
    overflow-y: auto;
}

.span_ctrl {
    margin-top: 3px;
}

.span_ctrl span {
    cursor: pointer;
    transition: font-weight 0.2s ease;
}

.span_ctrl span:hover {
    font-weight: bold;
}

/* Style barre de langue */
.lang_bar {
    text-align: right;
}

.modal_primary {
    color: #377dff;
    background-color: rgba(55, 125, 255, .15);
    border-bottom: 2px solid var(--bs-primary);
}

.modal_primary h5 {
    color: #377dff;
}

.modal_default {
    color: #71869d;
    background-color: rgba(113, 134, 157, .15);
}

.modal_default h5 {
    color: #71869d;
}

.modal_danger {
    color: #ed4c78;
    background-color: rgba(237, 76, 120, 0.15);
    border-bottom: 2px solid var(--bs-danger);
}

.modal_danger h5 {
    color: #ed4c78;
}

.modal_success {
    color: #00c9a7;
    background-color: rgba(0, 201, 167, 0.15);
    border-bottom: 2px solid var(--bs-success);
}

.modal_success h5 {
    color: #00c9a7;
}

.modal_warning {
    color: #f5ca99;
    background-color: rgba(245, 202, 153, 0.15);
    border-bottom: 2px solid var(--bs-warning);
}

.modal_warning h5 {
    color: #f5ca99;
}


#treeDefault {
    height: 200px; /* hauteur fixe */
    overflow-y: auto; /* ajoute un ascenseur vertical si le contenu dépasse */
    border: 3px solid #ccc; /* optionnel, pour visualiser le conteneur */
    padding: 0.5rem; /* optionnel, pour l’esthétique */
}

#treeDefaultCheckbox {
    max-height: 200px; /* hauteur fixe */
    overflow-y: auto; /* ajoute un ascenseur vertical si le contenu dépasse */
    border: 3px solid #ccc; /* optionnel, pour visualiser le conteneur */
    padding: 0.5rem; /* optionnel, pour l’esthétique */
}

.navbar-brand {
    margin-left: 0px;
}

/* Si la largeur de l’écran est ≤ 360px */
@media (max-width: 360px) {
    .navbar-brand {
        width: 150px;
    }
}

.top_header {
    height: 30px;
    margin-bottom: 5px;
    width: 100%;
    align-items: center;
}


.top_header_module {
    background-color: #ebecee;
    width: 14%; /* largeur fixe */
    height: 30px;
    align-items: center;
    vertical-align: middle;
    text-align: center; /* centrer le texte */
    /* border-radius: 15px; */
    font-weight: bold;
    margin-left: 3px;

}

.top_header_lang {
    background-color: #d7d8da;
    width: 14%; /* largeur fixe */
    height: 30px;
    align-items: center;
    vertical-align: middle;
    text-align: center; /* centrer le texte */
    border-radius: 15px;
    font-weight: bold;
    margin-left: 3px;

}

.top_header_lang span {
    margin-top: 4px; /* décale le texte vers le bas */
    display: inline-block; /* nécessaire pour que margin-top s’applique correctement */
}

.top_header_module span {
    margin-top: 4px; /* décale le texte vers le bas */
    display: inline-block; /* nécessaire pour que margin-top s’applique correctement */
}

/*
.top_header_lang {
    width: 15%; !* largeur fixe *!
    border: 1px solid #ccc; !* bordure grise *!
    border-radius: 3px; !* arrondi *!
    text-align: center; !* centrer le texte *!
    padding: 2px 5px;
    !* un peu d’espace interne *!
    background-color: #cccccc;
    height: 100%;
    align-items: center; !* centre verticalement *!
    justify-content: center; !* centre horizontalement *!
}
*/

/* Tablettes (entre 768px et 991px) */
@media (max-width: 991px) and (min-width: 768px) {
    .top_header_lang {
        width: 20%;
    }
}

/* Sur mobile (max 768px), le bloc langue prend toute la largeur */
@media (max-width: 768px) {
    .top_header_lang {
        width: 100%;
        padding-bottom: 10px;
    }
}

/***** Gestion de la largeur globale de la page principale ****
****************************************************************/
@media (min-width: 576px) {
    .container, .container-sm {
        max-width: 740px
    }
}

@media (min-width: 768px) {
    .container, .container-md, .container-sm {
        max-width: 920px
    }
}

@media (min-width: 992px) {
    .container, .container-lg, .container-md, .container-sm {
        max-width: 1100px
    }
}

@media (min-width: 1200px) {
    .container, .container-lg, .container-md, .container-sm, .container-xl {
        max-width: 1290px
    }
}

/*Bandeau supérieur de la page d'accueil*/
.bandeau-page-accueil {
    background-color: #3575cc;
    opacity: 1;
    height: 100px;
    background-image: url("/static/img/bg_sub_header.ef774e876c4e.png");
}

/* Réglage de la page avec card */
.card-header-page {
    /*background-color: #ebecee; */
    background-color: #f3f4f6;
    padding: 5px 30px 5px 30px;
}

.card-body-page {
    padding: 20px;
}

.card-body-page .container {
    padding: 20px;
}

@media (max-width: 767.98px) {
    /* mobile <768px */
    .card-body-page .container {
        padding: 2px;
    }
}

/* Parcours candidat : groupes compacts des informations personnelles. */
.candidate-form-section {
    container-type: inline-size;
    margin-bottom: 1rem;
    overflow: visible;
    border: 1px solid #dbe5f1;
    border-radius: 8px;
    background: #fff;
}

.candidate-form-section:focus-within {
    position: relative;
    z-index: 5;
}

.candidate-form-section .ts-dropdown {
    z-index: 1080;
}

.candidate-form-section__header {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .7rem 1rem;
    border-bottom: 1px solid #e7edf5;
    background: #f2f7fd;
    border-radius: 8px 8px 0 0;
}

.candidate-form-section__icon {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    color: #2773d4;
    font-size: 1.1rem;
}

.candidate-form-section__title {
    margin: 0;
    color: #102a4c;
    font-size: 1rem;
    font-weight: 700;
}

.candidate-form-section__subtitle {
    margin: .1rem 0 0;
    color: #71839a;
    font-size: .78rem;
}

.candidate-form-section__body {
    padding: 1rem;
    border-radius: 0 0 8px 8px;
}

[data-candidate-field].d-none {
    display: none !important;
}

.candidate-form-section label {
    margin-bottom: .3rem;
    white-space: nowrap;
    font-size: .75rem;
}

.candidate-situation-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

@container (min-width: 720px) {
    .candidate-situation-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

.candidate-form-subsection + .candidate-form-subsection {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid #e7edf5;
}

.candidate-form-subsection__title,
.candidate-parent-column__title {
    margin-bottom: .75rem;
    color: #1e5fae;
    font-size: .9rem;
    font-weight: 700;
}

.candidate-parent-column + .candidate-parent-column {
    border-left: 1px solid #e7edf5;
}

.candidate-form-navigation {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin-top: 1.5rem;
    padding-top: 1rem;
    border-top: 1px solid #e7edf5;
}

.candidate-form-navigation__actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .5rem;
}

.candidate-form-navigation .btn {
    flex-shrink: 0;
    white-space: nowrap;
}

.candidate-document-item {
    min-height: 100%;
    padding: .75rem;
    border: 1px solid #e1e8f0;
    border-radius: 6px;
}

@media (max-width: 767.98px) {
    .candidate-form-section label {
        white-space: normal;
    }

    .candidate-parent-column + .candidate-parent-column {
        margin-top: 1rem;
        padding-top: 1rem;
        border-top: 1px solid #e7edf5;
        border-left: 0;
    }
}

@media (max-width: 575.98px) {
    .candidate-situation-grid {
        grid-template-columns: 1fr;
    }

    .candidate-form-navigation,
    .candidate-form-navigation__actions {
        align-items: stretch;
        flex-direction: column-reverse;
        width: 100%;
    }

    .candidate-form-navigation .btn {
        width: 100%;
    }
}


/* Colonne A occupe 25% */
.palettegauche {
    padding-bottom: 10px;
    background-color: #f7faff;
}

/* Colonne B occupe 75% */
.palettedroite {
    padding-left: 10px;
}

/* Le bandeau de recherche doit grandir avec ses filtres sans imposer une hauteur fixe. */
.bandeau_recherche {
    min-height: 55px;
    height: auto;
    overflow-y: visible;
    background-color: #f7faff; /* juste pour visualiser */
    align-items: flex-start;
}

#searchInput {
    background-color: #ffffff;
    color: #333;
    height: 34px;
}

/* Tableau standard des modèles de page.
   La combinaison historique des classes M1 reçoit automatiquement le même
   rendu que `.plm-model-table`, sans reprise manuelle des écrans existants. */
:is(.table.plm-model-table, .table.table-sm.table-striped.table-bordered.align-middle) {
    border: 1px solid #dce6f1;
    border-collapse: separate;
    border-spacing: 0;
    border-radius: 7px;
    overflow: hidden;
}

:is(.table.plm-model-table, .table.table-sm.table-striped.table-bordered.align-middle) > :not(caption) > * > * {
    padding: 0.62rem 0.8rem;
    border-width: 0 0 1px;
    border-color: #e4eaf1;
    background-clip: padding-box;
    box-shadow: none;
    vertical-align: middle;
}

:is(.table.plm-model-table, .table.table-sm.table-striped.table-bordered.align-middle) > thead > tr > * {
    --bs-table-bg: #eaf4ff;
    color: #173b6d;
    background-color: #eaf4ff;
    font-size: 0.78rem;
    font-weight: 700;
}

:is(.table.plm-model-table, .table.table-sm.table-striped.table-bordered.align-middle) > tbody > tr:nth-child(odd) > * {
    --bs-table-bg: #fff;
    --bs-table-accent-bg: transparent;
    color: #29496f;
    background-color: #fff;
}

:is(.table.plm-model-table, .table.table-sm.table-striped.table-bordered.align-middle) > tbody > tr:nth-child(even) > * {
    --bs-table-bg: #f6f9fc;
    --bs-table-accent-bg: transparent;
    color: #29496f;
    background-color: #f6f9fc;
}

:is(.table.plm-model-table, .table.table-sm.table-striped.table-bordered.align-middle) > tbody > tr:last-child > * {
    border-bottom-width: 0;
}


@media (max-width: 767.98px) {
    /* mobile <768px */
    .bandeau_recherche {
        min-height: 100px;
        height: auto;
    }
}

/* Ligne L2 prend le reste */
.contenu_donnees_modele {
    background-color: #ffffff; /* juste pour visualiser */
}

.btn {
    border-radius: 0px 0px 0px 0px;
}

#ajoutAdminStructModal .modal-content {
    /*height: 90vh;  90% de la hauteur de l’écran
    background-color: #0a53be;*/
}

.btn-sm {
    height: 32px;
    line-height: 1.2; /* ajuste le centrage du texte */
}

/* Espace de filtres opérationnel réutilisable (pilote : Examens > Anonymats). */
.plm-filter-workspace {
    overflow: hidden;
    border: 1px solid #dfe5ec;
    border-radius: 6px;
    background: #fff;
    box-shadow: 0 0.1875rem 0.75rem rgba(20, 52, 89, 0.08);
}

.plm-filter-workspace__mode {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin: 0 1.25rem;
    padding: 1.1rem 0;
    border-bottom: 1px solid #e5eaf0;
}

.plm-filter-workspace__mode-icon {
    display: inline-flex;
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: #2874d0;
    background: #eaf3ff;
    font-size: 1.15rem;
}

.plm-filter-workspace__fields {
    margin: 0;
    padding: 1.25rem;
}

.plm-filter-workspace__fields .form-label {
    display: block;
    min-height: 1.25rem;
    margin-bottom: 0.5rem;
    color: #52667b !important;
    font-weight: 500;
}

.plm-filter-workspace__fields .js-program-level-selector > .plamoges-tom-select-compact {
    margin-top: 0 !important;
}

.plm-filter-workspace__fields .form-label .bi,
.plm-filter-workspace__fields > div > .form-label .bi {
    color: #2874d0;
}

.plm-filter-workspace__fields .form-select,
.plm-filter-workspace__fields .ts-control {
    min-height: 44px;
    border-color: #d5dde6;
    background-color: #fff;
}

.plm-filter-workspace__fields .ts-control {
    align-items: center;
}

.plm-filter-workspace__fields .plamoges-tom-select-compact .ts-control {
    min-height: 44px !important;
    height: 44px !important;
}

/* Variante pilote : conserve la nouvelle composition d'Anonymats avec les
   dimensions et la surface des anciens champs PLAMOGES. */
#localExamAnonymizationsApp .plm-filter-workspace__fields .form-select:not(.ts-hidden-accessible) {
    min-height: 30px;
    height: 30px;
    border-color: #d7dee6;
    background-color: #f1f3f5;
}

#localExamAnonymizationsApp .plm-filter-workspace__fields .plamoges-tom-select-compact .ts-wrapper {
    min-height: 30px;
    height: 30px;
    border-color: #d7dee6 !important;
    background-color: #f1f3f5 !important;
}

#localExamAnonymizationsApp .plm-filter-workspace__fields .plamoges-tom-select-compact .ts-control {
    min-height: 28px !important;
    height: 28px !important;
}

.plm-filter-workspace__advice {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    margin: 0 1.25rem 1.1rem;
    padding: 0.85rem 1rem;
    border-left: 3px solid #5b9ce6;
    color: #245f9f;
    background: #f0f6fd;
}

.plm-filter-workspace__advice > .bi {
    flex: 0 0 auto;
    font-size: 1.35rem;
}

.plm-filter-workspace__actions {
    display: flex;
    justify-content: flex-end;
    gap: 0.75rem;
    padding: 1rem 1.25rem;
    border-top: 1px solid #e5eaf0;
    background: #fbfcfe;
}

@media (max-width: 767.98px) {
    .plm-filter-workspace__mode {
        align-items: stretch;
        flex-direction: column;
    }

    .plm-filter-workspace__mode .btn-group,
    .plm-filter-workspace__mode .btn {
        width: 100%;
    }

    .plm-filter-workspace__actions {
        flex-direction: column-reverse;
    }

    .plm-filter-workspace__actions .btn {
        width: 100%;
    }
}
