/* Back-office : styles limités au layout d'administration. */
.admin-interface { background: #f5f6f9; color: var(--icac-anthracite); font-size: 1rem; font-weight: 300; font-variant-numeric: lining-nums tabular-nums; }
.admin-interface #wrapper { padding: 0 12px; margin: 0; }
.admin-largeur { width: min(100%, max(90%, 1200px)); max-width: 1600px; margin-inline: auto; }
.admin-bandeau { background: var(--icac-anthracite); color: #fff; padding: 0 12px; border-bottom: 3px solid var(--icac-rouge); }
.admin-bandeau-interieur { display: flex; align-items: center; justify-content: space-between; min-height: 72px; gap: 1rem; }
.admin-marque { display: flex; align-items: center; gap: 1.25rem; color: #fff; font-size: .85rem; font-weight: 800; }
.admin-marque img { width: 106px; height: auto; }
.admin-marque span { border-left: 1px solid #666870; padding-left: 1.25rem; }
.admin-compte { display: flex; align-items: center; gap: 1.5rem; font-size: .85rem; }
.admin-bandeau a { color: #fff; }
.admin-bandeau a:hover { color: #ffb8b5; }
.admin-identite { max-width: 24ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.admin-navigation { background: #fff; padding-inline: 12px; border-bottom: 1px solid #dfe1e8; }
.admin-navigation ul { display: flex; gap: 1.5rem; list-style: none; padding: 0; margin: 0; overflow-x: auto; }
.admin-navigation a { display: block; padding: .85rem .1rem; color: #626570; border-bottom: 3px solid transparent; white-space: nowrap; font-size: .9rem; font-weight: 800; }
.admin-navigation a:hover, .admin-navigation a.active { color: var(--icac-rouge-fonce); border-bottom-color: var(--icac-rouge); }
.admin-page { padding-block: 1.35rem 1.5rem; min-height: 65vh; }
.admin-interface #wrapper > .alert { max-width: 1600px; margin: 1rem auto 0; }
.admin-entete { background: transparent; color: var(--icac-anthracite); padding: 0; display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.15rem; }
.admin-page h1 { display: flex; flex-wrap: wrap; align-items: center; gap: .65rem; margin: 0; font-size: clamp(1.65rem, 2.4vw, 2.1rem); line-height: 1.2; text-transform: none; letter-spacing: -.025em; }
.admin-entete p { margin: .45rem 0 0; color: #626570; font-size: .9rem; overflow-wrap: anywhere; }
.admin-page h2, .admin-carte legend { font-size: 1.1rem; font-weight: 800; text-transform: none; margin-bottom: 1rem; }
.admin-page .admin-compteur { background: #e8eaf2; color: #555966; border-radius: .5rem; padding: .25rem .5rem; font-size: .9rem; letter-spacing: 0; }
.admin-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; }
.admin-interface .btn { margin: 0; text-transform: none; letter-spacing: 0; --bs-btn-padding-x: 1rem; --bs-btn-padding-y: .6rem; }
.admin-interface a:focus-visible, .admin-interface button:focus-visible, .admin-interface summary:focus-visible, .admin-tableau:focus-visible { outline: 3px solid var(--icac-rouge); outline-offset: 3px; }
.admin-evitement { position: absolute; top: -100px; left: 1rem; z-index: 1100; padding: .75rem; background: #fff; }
.admin-evitement:focus { top: .5rem; }
.admin-filtres { background: #fff; padding: 1rem; border: 1px solid #dfe1e8; border-radius: .75rem; margin-bottom: 1rem; }
.admin-filtres-principaux { display: flex; flex-wrap: wrap; align-items: center; gap: .65rem; }
.admin-filtres-principaux > .form-floating { flex: 1 1 150px; min-width: 0; }
.admin-filtres-principaux > .form-floating:first-child { flex-grow: 1.5; }
.admin-filtres-actions { display: flex; align-items: center; gap: .8rem; font-size: .8rem; }
.admin-filtres-actions > a { color: #626570; text-decoration: underline; text-underline-offset: .2em; }
.admin-filtres-avances { margin-top: .7rem; font-size: .85rem; }
.admin-filtres-avances summary { width: fit-content; cursor: pointer; color: #626570; }
.admin-filtres-avances[open] summary { margin-bottom: .8rem; }
.admin-tableau { position: relative; overflow-x: auto; border: 1px solid #dfe1e8; border-radius: .75rem; background: #fff; }
.admin-page .table { width: 100%; margin: 0; font-size: .875rem; font-weight: 300; --bs-table-hover-bg: #f5f6fa; }
.admin-page .table > :not(caption) > * > * { padding: .65rem .9rem; border-width: 0 0 1px; border-color: #e9eaf0; vertical-align: middle; background-color: transparent; text-align: left; color: var(--icac-anthracite); }
.admin-page .table thead > tr > th { background: #eceef5; font-size: .75rem; font-weight: 800; white-space: nowrap; }
.admin-page .table thead a { color: #555966; }
.admin-page .table thead .sorted a { color: var(--icac-rouge-fonce); }
.admin-page .table tbody tr:last-child > * { border-bottom: 0; }
.admin-tableau .table { min-width: 700px; }
.admin-tableau td:first-child a { font-weight: 800; }
.admin-page .table a { color: var(--icac-rouge-fonce); }
.admin-page .table .list-inline { display: flex; align-items: center; gap: .25rem; margin: 0; }
.admin-page .table .list-inline-item { margin: 0; }
.admin-page .table .list-inline-item > a { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border: 1px solid #e2e4ec; border-radius: .45rem; color: #555966; }
.admin-page .table .list-inline-item > a:hover { background: #fff0ef; color: var(--icac-rouge-fonce); }
.admin-page .badge { padding: .4em .65em; font-size: .75rem; font-weight: 800; border-radius: .35rem; line-height: 1.3; }
.admin-page .badge.bg-success { background: #e6f2eb !important; color: #216b43; }
.admin-page .badge.bg-danger { background: #fbe8e8 !important; color: #a12828; }
.admin-page .badge.bg-warning { background: #fff1d4 !important; color: #825600; }
.admin-page .badge.bg-secondary { background: #eceef3 !important; color: #555966; }
.admin-page .badge.bg-primary, .admin-page .badge.bg-info { background: #e6edf9 !important; color: #305985; }
.admin-page .table .admin-vide { padding: 2.5rem 1rem; color: #626570; text-align: center; }
.admin-pagination { margin-top: 1rem; }
.admin-pagination .pagination { margin: 0; flex-wrap: wrap; gap: .2rem; }
.admin-retour { display: inline-flex; align-items: center; gap: .35rem; font-size: .85rem; color: #626570; margin-bottom: .75rem; }
.admin-legende, .admin-description { color: #626570; font-size: .85rem; margin-bottom: 1rem; }
.admin-groupes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; align-items: start; }
.admin-carte { display: block; min-width: 0; background: #fff; border: 1px solid #dfe1e8; border-radius: .75rem; padding: 1.25rem; }
.admin-carte legend { float: none; width: auto; padding: 0; }
.admin-champs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1rem; }
.admin-champ, .admin-champs > * { min-width: 0; }
.admin-champ-large, .admin-pleine-largeur { grid-column: 1 / -1; }
.admin-page .form-control, .admin-page .form-select { font-size: 1rem; font-weight: 300; border-color: #d6d8e0; border-radius: .45rem; }
.admin-page .form-floating > label, .admin-page label { font-size: 1rem; font-weight: 500; color: var(--icac-anthracite); }
.admin-page .form-floating > .form-control, .admin-page .form-floating > .form-select { height: 3.5rem; min-height: 3.5rem; }
.admin-page textarea.form-control { min-height: 130px; }
.admin-page .form-check { margin-bottom: .65rem; }
.admin-page .form-check-input { margin-top: .35em; }
.admin-page .tox-tinymce, .admin-page .ts-wrapper { max-width: 100%; }
.admin-page .ts-control { font-size: 1rem; }
.admin-page .ts-control .item { overflow-wrap: anywhere; max-width: 100%; }
.admin-page .invalid-feedback { font-size: .85rem; }
.admin-enregistrer { position: sticky; bottom: 0; z-index: 10; display: flex; align-items: center; gap: 1.25rem; padding: .85rem 1rem; margin-top: 1rem; border: 1px solid #dfe1e8; border-radius: .75rem; background: #fff; box-shadow: 0 -3px 15px #2d2e3308; font-size: .9rem; }
.admin-suppression { display: flex; justify-content: flex-end; margin-top: 1rem; }
.admin-complement { margin-top: 1rem; padding: 1rem; border: 1px solid #dfe1e8; border-radius: .75rem; background: #fff; }
.admin-complement summary { cursor: pointer; font-size: .9rem; font-weight: 800; }
.admin-complement[open] summary { margin-bottom: 1rem; }
.admin-complement code, .admin-informations dd { overflow-wrap: anywhere; }
.admin-informations { margin: 0; }
.admin-informations > div { display: grid; grid-template-columns: minmax(120px, .7fr) minmax(0, 1.3fr); gap: 1rem; padding: .7rem 0; border-bottom: 1px solid #e9eaf0; }
.admin-informations > div:last-child { border-bottom: 0; }
.admin-informations dt { color: #626570; font-size: .85rem; font-weight: 300; }
.admin-informations dd { margin: 0; font-size: .95rem; }
.admin-entete .admin-total, .admin-montant { font-size: 1.3rem; font-weight: 800; color: var(--icac-anthracite); }
.admin-total span { font-size: .85rem; font-weight: 300; color: #626570; }
.admin-image img { max-width: 100%; max-height: 300px; object-fit: contain; border-radius: .5rem; }
.admin-image figcaption { font-size: .85rem; color: #626570; margin-top: .5rem; }
.admin-apercu-resultat { margin-top: 1.25rem; scroll-margin-top: 1rem; }
.admin-apercu-email { display: block; width: 100%; height: 75vh; min-height: 420px; border: 1px solid #dfe1e8; border-radius: .5rem; background: #fafafa; }
.admin-apercu { display: grid; grid-template-columns: 1fr 1fr auto; align-items: end; gap: 1rem; }
.admin-pied { background: transparent; display: flex; flex-wrap: wrap; justify-content: space-between; gap: .75rem; padding: 1rem 12px 1.5rem; color: #626570; border-top: 1px solid #dfe1e8; font-size: .8rem; }
.admin-pied a { color: #626570; }
/* Tableau de bord */
.admin-periode { align-items: stretch; gap: .5rem; }
.admin-periode .form-floating { min-width: 12rem; }
.admin-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); gap: .75rem; margin-bottom: 1rem; }
.admin-kpi { display: flex; flex-direction: column; gap: .15rem; background: #fff; border: 1px solid #dfe1e8; border-radius: .75rem; padding: 1rem 1.1rem; }
.admin-kpi-libelle { color: #555966; font-size: .8rem; font-weight: 800; text-transform: uppercase; letter-spacing: .03em; }
.admin-kpi-valeur { color: var(--icac-anthracite); font-size: 1.6rem; line-height: 1.2; }
.admin-kpi-detail { color: #555966; font-size: .85rem; }
.admin-kpi-evolution { font-size: .85rem; font-weight: 800; }
.admin-kpi-evolution.hausse { color: #216b43; }
.admin-kpi-evolution.baisse { color: #a12828; }
.admin-bord-grille { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: .75rem; align-items: start; }
.admin-graphique { margin: 0; background: #fff; border: 1px solid #dfe1e8; border-radius: .75rem; padding: 1.25rem; }
.admin-graphique figcaption { font-weight: 800; margin-bottom: .75rem; }
.admin-graphique-zone { position: relative; height: 280px; }
.admin-graphique-donnees { margin-top: .75rem; font-size: .85rem; }
.admin-graphique-donnees summary { color: #555966; cursor: pointer; }
.admin-liens { padding-left: 1.1rem; margin-bottom: .75rem; }
.admin-note { color: #555966; font-size: .8rem; margin: .5rem 0 0; }
.admin-onglets { flex-wrap: nowrap; overflow-x: auto; overflow-y: hidden; margin-top: 1.25rem; border-bottom-color: #dfe1e8; scrollbar-width: thin; }
.admin-onglets .nav-link { white-space: nowrap; color: #555966; font-size: .9rem; font-weight: 800; padding: .7rem 1rem; border-radius: .5rem .5rem 0 0; }
.admin-onglets .nav-link:hover { color: var(--icac-rouge-fonce); border-color: transparent; }
.admin-onglets .nav-link.active { color: var(--icac-anthracite); background: #fff; border-color: #dfe1e8 #dfe1e8 #fff; box-shadow: inset 0 3px 0 var(--icac-rouge); }
.admin-onglets .nav-link:focus-visible { outline: 3px solid var(--icac-rouge); outline-offset: -3px; }
.admin-onglets-contenu > .tab-pane { padding-top: 1.25rem; }
.admin-onglets-contenu > .tab-pane:focus-visible { outline: 3px solid var(--icac-rouge); outline-offset: 3px; }
.admin-onglets-contenu .table td { white-space: nowrap; }
.admin-onglets-contenu abbr[title] { text-decoration: none; cursor: help; }
.admin-onglets-contenu h3 { font-size: 1rem; font-weight: 800; margin-bottom: .75rem; }
.admin-kpi-lien { position: relative; transition: border-color .15s; }
.admin-kpi-lien:hover { border-color: var(--icac-rouge); }
.admin-kpi-lien .admin-kpi-libelle { color: #555966; text-decoration: none; }
.admin-kpi-lien .admin-kpi-libelle::before { border-radius: .75rem; }
.admin-kpi-lien:hover .admin-kpi-libelle { color: var(--icac-rouge-fonce); }
.admin-bord-grille + .admin-bord-grille, .admin-bord-grille + .admin-bord-deux, .admin-bord-plein, .admin-bord-grille + .admin-bord-plein { margin-top: .75rem; }
.admin-kpis-quatre { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.admin-bord-deux { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; align-items: start; }

@media (max-width: 991px) {
    .admin-bord-grille, .admin-bord-deux { grid-template-columns: 1fr; }
    .admin-kpis-quatre { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .admin-groupes { grid-template-columns: 1fr; }
    .admin-entete { align-items: flex-start; flex-direction: column; }
    .admin-navigation ul { gap: 1.15rem; }
    .admin-apercu { grid-template-columns: 1fr; }
}
@media (max-width: 575px) {
    .admin-bandeau-interieur { min-height: 64px; }
    .admin-marque { gap: .6rem; font-size: .75rem; }
    .admin-marque img { width: 75px; }
    .admin-marque span { padding-left: .6rem; }
    .admin-identite { display: none; }
    .admin-compte { gap: .75rem; font-size: .75rem; }
    .admin-compte .icone { width: 1rem; }
    .admin-compte > a:first-child .icone { display: none; }
    .admin-champs { grid-template-columns: 1fr; }
    .admin-carte { padding: 1rem; }
    .admin-actions .btn { font-size: .8rem; }
    .admin-informations > div { grid-template-columns: 1fr; gap: .25rem; }
    .admin-filtres-principaux > .form-floating { flex-basis: 100%; }
    .admin-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
    .admin-kpi { padding: .8rem .85rem; }
    .admin-kpi-valeur { font-size: 1.35rem; }
    .admin-graphique { padding: 1rem; }
    .admin-onglets .nav-link { padding: .6rem .75rem; }
}

/* Formats de lecture de l’aperçu e-mail. */
.admin-apercu-vues { display: flex; flex-wrap: wrap; gap: .3rem; width: fit-content; padding: .25rem; margin-bottom: 1rem; border: 1px solid #dfe1e8; border-radius: .55rem; background: #f4f5f8; }
.admin-apercu-vues[hidden] { display: none; }
.admin-apercu-vues button { padding: .55rem .85rem; border: 0; border-radius: .35rem; background: transparent; color: #555966; font-size: .85rem; font-weight: 800; }
.admin-apercu-vues button[aria-pressed="true"] { background: var(--icac-anthracite); color: #fff; }
.admin-apercu-vues button:focus-visible { outline: 3px solid var(--icac-rouge); outline-offset: 2px; }
.admin-apercu-fond { padding: .75rem; border: 1px solid #dfe1e8; border-radius: .6rem; background: #e9ebf0; }
.admin-apercu-email { max-width: 100%; margin-inline: auto; }
.admin-apercu-email.is-mobile { width: 390px; }

/* Suivi des dossiers : compteurs filtrants et listes accessibles. */
.admin-suivi-categorie { text-decoration: none; color: var(--icac-anthracite); border: 1px solid #dfe1e8; }
.admin-suivi-categorie:hover, .admin-suivi-categorie.selectionnee { border-color: #b68d42; background: #fcf8ee; }
.admin-suivi-categorie:focus-visible { outline: 3px solid var(--icac-rouge); outline-offset: 3px; }
.admin-suivi-pagination { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin-top: 1rem; }
.admin-suivi-table th[scope="row"] { min-width: 10rem; overflow-wrap: anywhere; }
.admin-suivi-defilement { position: relative; }
.admin-suivi-defilement:focus-visible { outline: 3px solid var(--icac-rouge); outline-offset: 3px; }
