/* =========================================================
   TABLEAUX FILTRABLES — STYLE COMMUN EULALIE / PUBLIC
   ========================================================= */

.tableau-filtres-outils {
    position: relative;

    display: flex;

    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;

    gap: 10px;

    margin: 0 0 12px;
}

.tableau-filtres-actions {
    display: flex;

    align-items: center;
    flex-wrap: wrap;

    gap: 8px;
}

.tableau-filtres-outils .tableau-filtres-bouton {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    min-height: 38px;

    margin: 0;
    padding: 7px 13px;

    border: 1px solid #9BD89E;
    border-radius: 7px;

    background: #FFFFFF;
    color: #222222;

    font: inherit;
    font-size: 0.88rem;
    font-weight: 650;
    line-height: 1.2;

    text-decoration: none;
    cursor: pointer;
}

.tableau-filtres-outils .tableau-filtres-bouton:hover {
    border-color: #9BD89E;

    background: #F2F8F0;
    color: #222222;
}

.tableau-filtres-outils .tableau-filtres-bouton:focus-visible {
    outline: 2px solid #9BD89E;
    outline-offset: 2px;
}

.tableau-filtres-resume {
    margin: 0;

    color: #666666;

    font-size: 0.84rem;
}

[data-tableau-filtrable] .tableau-filtre-entete {
    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 7px;

    width: 100%;
    min-height: 0;

    margin: 0;
    padding: 0;

    border: 0;
    border-radius: 0;

    background: transparent;
    color: inherit;

    font: inherit;
    font-weight: inherit;
    line-height: inherit;

    text-align: left;

    cursor: pointer;
}

[data-tableau-filtrable] .tableau-filtre-entete:hover {
    border: 0;

    background: #EAF6EB;
    color: #333333;
}

[data-tableau-filtrable] .tableau-filtre-entete:focus-visible {
    position: relative;
    z-index: 1;

    outline: 2px solid #9BD89E;
    outline-offset: -2px;
}

.tableau-filtre-icone {
    flex: 0 0 auto;

    color: #397A3D;

    font-size: 0.75rem;
    line-height: 1;
}

[data-tableau-filtrable] th.filtre-actif {
    background: #EAF6EB !important;
}

[data-tableau-filtrable] th.tri-actif {
    background: #E3F2E4 !important;
}

/* ---------------------------------------------------------
   Menu de filtre d'une colonne
   --------------------------------------------------------- */

.tableau-filtre-menu {
    position: fixed;

    z-index: 3000;

    width: min(
        320px,
        calc(100vw - 16px)
    );

    max-height: 70vh;

    overflow-y: auto;

    padding: 12px;

    border: 1px solid #CFE7CD;
    border-radius: 9px;

    background: #FFFFFF;
    color: #222222;

    box-shadow:
        0 10px 30px
        rgba(0, 0, 0, 0.16);
}

.tableau-filtre-menu[hidden] {
    display: none;
}

.tableau-filtre-titre {
    margin: 0 0 9px;

    color: #222222;

    font-size: 0.9rem;
    font-weight: 750;
}

.tableau-filtre-menu .tableau-filtre-action {
    display: block;

    width: 100%;
    min-height: 34px;

    margin: 0;
    padding: 7px 9px;

    border: 0;
    border-radius: 5px;

    background: #FFFFFF;
    color: #222222;

    font: inherit;
    font-size: 0.84rem;
    font-weight: 400;
    line-height: 1.2;

    text-align: left;

    cursor: pointer;
}

.tableau-filtre-menu .tableau-filtre-action:hover {
    border: 0;

    background: #F2F8F0;
    color: #222222;
}

.tableau-filtre-menu .tableau-filtre-action:focus-visible {
    outline: 2px solid #9BD89E;
    outline-offset: -2px;
}

.tableau-filtre-separation {
    height: 1px;

    margin: 8px 0;

    background: #E4E9E3;
}

.tableau-filtre-recherche {
    width: 100%;

    margin: 0 0 8px !important;
    padding: 8px 9px !important;

    border: 1px solid #CFE7CD !important;
    border-radius: 6px !important;

    background: #FFFFFF !important;
    color: #222222 !important;

    font: inherit !important;
    font-size: 0.84rem !important;
    font-weight: 400 !important;
}

.tableau-filtre-recherche:focus {
    outline: none !important;

    border-color: #9BD89E !important;

    box-shadow:
        0 0 0 3px
        rgba(155, 216, 158, 0.22) !important;
}

.tableau-filtre-actions-valeurs {
    display: flex;

    gap: 5px;

    margin-bottom: 7px;
}

.tableau-filtre-actions-valeurs .tableau-filtre-action {
    width: auto;

    flex: 1;

    text-align: center;
}

.tableau-filtre-liste-valeurs {
    max-height: 230px;

    overflow-y: auto;

    border-top: 1px solid #EEEEEE;
    border-bottom: 1px solid #EEEEEE;
}

.tableau-filtre-liste-valeurs label {
    display: flex !important;

    align-items: center;

    gap: 8px !important;

    margin: 0 !important;
    padding: 7px 4px !important;

    border-bottom: 1px solid #F0F0F0;

    color: #222222;

    font-size: 0.84rem;
    font-weight: 400;

    cursor: pointer;
}

.tableau-filtre-liste-valeurs label:last-child {
    border-bottom: 0;
}

.tableau-filtre-liste-valeurs label:hover {
    background: #F8FBF7;
}

.tableau-filtre-liste-valeurs input[type="checkbox"],
.tableau-colonnes-menu input[type="checkbox"] {
    flex: 0 0 auto;

    width: 17px !important;
    height: 17px !important;

    margin: 0 !important;
    padding: 0 !important;

    accent-color: #9BD89E;
}

/* ---------------------------------------------------------
   Menu Colonnes
   --------------------------------------------------------- */

.tableau-colonnes-menu {
    position: absolute;

    top: calc(100% + 5px);
    left: 0;

    z-index: 2500;

    min-width: 240px;

    padding: 9px;

    border: 1px solid #CFE7CD;
    border-radius: 9px;

    background: #FFFFFF;
    color: #222222;

    box-shadow:
        0 8px 24px
        rgba(0, 0, 0, 0.13);
}

.tableau-colonnes-menu[hidden] {
    display: none;
}

.tableau-colonnes-menu label {
    display: flex !important;

    align-items: center;

    gap: 9px !important;

    margin: 0 !important;
    padding: 7px 8px !important;

    border-radius: 5px;

    color: #222222;

    font-size: 0.86rem;
    font-weight: 400;

    cursor: pointer;
}

.tableau-colonnes-menu label:hover {
    background: #F2F8F0;
}

/* =========================================================
   TABLEAUX FILTRABLES — TÉLÉPHONE
   ========================================================= */

@media (max-width: 700px) {

    .tableau-filtres-outils {
        align-items: stretch;
        flex-direction: column;
    }

    .tableau-filtres-actions {
        display: grid;

        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        width: 100%;
    }

    .tableau-filtres-outils .tableau-filtres-bouton {
        width: 100%;
    }

    .tableau-filtres-resume {
        width: 100%;
    }

    .tableau-colonnes-menu {
        width: 100%;
    }
}
