@import '_content/MTDScan.Connecteurs.Blazor/MTDScan.Connecteurs.Blazor.a2izcog3f0.bundle.scp.css';

/* /Pages/Administration/AdministrationAdministrateurs.razor.rz.scp.css */
/* Écran Administrateurs (AdministrationAdministrateurs.razor) — feuille ISOLÉE, classes préfixées adm-. Les pastilles ont
   leur propre feuille. */

/* L'explication courte d'un bloc, à côté de son titre (charte §14, « ch-ctx »). */
.adm-ctx[b-kttt0k62fz] {
    margin-left: 6px;
    color: #5f6a74;
    font-size: 12.5px;
    font-weight: 400;
}

.adm-corps[b-kttt0k62fz] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 10px 12px;
}

.adm-compte[b-kttt0k62fz] {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 6px;
}

.adm-note[b-kttt0k62fz],
.adm-vide[b-kttt0k62fz] {
    color: #5f6a74;
    font-size: 12.5px;
}

/* Le superadmin désactivé : avertissement, jamais du jaune sur blanc (charte §14). */
.adm-alerte[b-kttt0k62fz] {
    padding: 0 7px;
    border-radius: 10px;
    background: #fff3cd;
    color: #664d03;
    font-size: 12px;
}

.adm-table[b-kttt0k62fz] {
    font-size: 13px;
}

.adm-origines[b-kttt0k62fz] {
    margin: 0;
    padding-left: 1.1rem;
}

.adm-login[b-kttt0k62fz] {
    font-family: ui-monospace, Consolas, "Courier New", monospace;
    font-size: 12px;
}

.adm-situation[b-kttt0k62fz] {
    margin-left: 4px;
}

.adm-groupes[b-kttt0k62fz] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 14px;
}

.adm-groupes-titre[b-kttt0k62fz] {
    font-size: 12.5px;
    font-weight: 600;
}
/* /Pages/Administration/AdministrationPortailRfe.razor.rz.scp.css */
/* Écran /administration/portail-rfe (INV-502) — feuille ISOLÉE, classes préfixées pra-. Colonnes FIGÉES (D50) :
   table-layout fixed + largeurs explicites sur les <col>, les pastilles passent à la ligne dans leur cellule, la
   table ne se redimensionne jamais quand on ajoute quelqu'un. Le dérouleur (Shared/DerouleurPrincipaux) s'ancre sur
   .pra-ancre (position relative) et porte sa propre feuille. */

.pra-carte-info[b-n6agvbgz3z] {
    max-width: 40rem;
}

.pra-table[b-n6agvbgz3z] {
    table-layout: fixed;
    width: 100%;
    font-size: 13px;
}

.pra-col-adresse[b-n6agvbgz3z] {
    width: 22%;
}

.pra-col-cellule[b-n6agvbgz3z] {
    width: 18%;
}

/* Rejet depuis le portail (extranet-RFE.md §18.5, D69) : une case par adresse. */
.pra-col-rejet[b-n6agvbgz3z] {
    width: 6%;
}

.pra-table th[b-n6agvbgz3z] {
    white-space: normal;
}

.pra-table td[b-n6agvbgz3z] {
    vertical-align: top;
    overflow-wrap: anywhere;
}

/* La ligne « Toutes les adresses » : fond léger pour la distinguer des adresses (D32). */
.pra-toutes > td[b-n6agvbgz3z] {
    background: #f8f9fa;
}

.pra-adresse-titre[b-n6agvbgz3z] {
    font-weight: 600;
}

/* Entête de société : une ligne de groupe, comme les entêtes de groupe de la liste du portail. */
.pra-societe > td[b-n6agvbgz3z] {
    background: #f1f3f5;
    font-weight: 600;
    padding-top: 6px;
}

/* La chaîne d'adresse en police à chasse fixe (SIREN_SIRET + code, à comparer d'un coup d'œil). */
.pra-adresse[b-n6agvbgz3z] {
    font-size: 12px;
    color: #495057;
    overflow-wrap: anywhere;
}

.pra-inactive[b-n6agvbgz3z] {
    color: #664d03;
}

.pra-cellule[b-n6agvbgz3z] {
    line-height: 1.7;
}

.pra-ancre[b-n6agvbgz3z] {
    position: relative;
    display: inline-block;
    vertical-align: middle;
}

.pra-ajouter[b-n6agvbgz3z] {
    padding: 0 4px;
    font-size: 12px;
    text-decoration: none;
    white-space: nowrap;
}

.pra-pied[b-n6agvbgz3z] {
    margin-top: 4px;
}
/* /Pages/Administration/AdministrationProfils.razor.rz.scp.css */
/* Écran Profils et droits (AdministrationProfils.razor) — feuille ISOLÉE, classes préfixées pd-. Les pastilles, la liste
   des profils, les onglets de droits et les membres ont leur propre feuille. */

.pd-barre[b-yw5w4j63mo] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 12px;
    padding: 10px 12px;
}

.pd-origine[b-yw5w4j63mo] {
    padding: 2px 8px;
    border-radius: 10px;
    background: #e9ecef;
    color: #495057;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
}

.pd-origine-predefini[b-yw5w4j63mo] {
    background: #e6dcf2;
    color: #5f368d;
}

/* Mentions : pastilles neutres, comme dans la liste des profils. */
.pd-mention[b-yw5w4j63mo] {
    padding: 0 7px;
    border-radius: 10px;
    background: #e9ecef;
    color: #495057;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
}

.pd-resume[b-yw5w4j63mo] {
    color: #5f6a74;
    font-size: 12.5px;
    font-variant-numeric: tabular-nums;
}

/* Nouveau, Dupliquer, Désactiver : à droite de la barre, comme dans la maquette ; ils passent à la ligne à petite
   largeur. */
.pd-gestes[b-yw5w4j63mo] {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-left: auto;
}

/* Bandeau de création : le nom du profil, obligatoire, et sa description. */
.pd-creation[b-yw5w4j63mo] {
    padding: 10px 12px;
    border-bottom: 1px solid #dee2e6;
    background: #f8f9fa;
}

.pd-creation-titre[b-yw5w4j63mo] {
    font-size: 13px;
    font-weight: 600;
}

.pd-creation-note[b-yw5w4j63mo] {
    color: #5f6a74;
    font-size: 12.5px;
}

.pd-champs[b-yw5w4j63mo] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 12px;
    margin-top: 6px;
}

.pd-champ[b-yw5w4j63mo] {
    display: flex;
    flex: 0 1 280px;
    flex-direction: column;
    min-width: 0;
    margin: 0;
}

.pd-champ-large[b-yw5w4j63mo] {
    flex: 1 1 360px;
}

.pd-creation-pied[b-yw5w4j63mo] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-top: 8px;
}

.pd-invalide[b-yw5w4j63mo] {
    margin-right: auto;
    color: #58151c;
    font-size: 12.5px;
}

/* Nom et description d'un profil spécifique, saisis avec ses droits. */
.pd-identite[b-yw5w4j63mo] {
    padding: 4px 12px 10px;
    border-bottom: 1px solid #dee2e6;
}

/* La puissance enregistrée, quand les cases cochées en donnent une autre. */
.pd-avant[b-yw5w4j63mo] {
    color: #5f6a74;
    font-size: 12px;
    font-style: italic;
}

.pd-confirmation[b-yw5w4j63mo] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border-bottom: 1px solid #dee2e6;
    background: #f8d7da;
    color: #58151c;
    font-size: 13px;
}

.pd-confirmation-reactivation[b-yw5w4j63mo] {
    background: #d1e7dd;
    color: #0a3622;
}

.pd-note[b-yw5w4j63mo] {
    padding: 8px 12px;
    border-bottom: 1px solid #dee2e6;
    background: #f8f9fa;
    color: #5f6a74;
    font-size: 12.5px;
}

.pd-note-alerte[b-yw5w4j63mo] {
    background: #fff3cd;
    color: #664d03;
}

.pd-inconnue[b-yw5w4j63mo] {
    display: inline-flex;
    align-items: baseline;
    gap: 4px;
    margin-left: 8px;
}

.pd-inconnue code[b-yw5w4j63mo] {
    color: #664d03;
}

/* Un droit inconnu retiré à l'enregistrement reste visible, barré, jusque-là. */
.pd-inconnue-retiree code[b-yw5w4j63mo] {
    text-decoration: line-through;
    opacity: 0.7;
}

.pd-titre[b-yw5w4j63mo] {
    margin: 0 0 6px;
    font-size: 13px;
    font-weight: 600;
}

.pd-titre-suite[b-yw5w4j63mo] {
    margin-top: 18px;
}

.pd-titre-ctx[b-yw5w4j63mo] {
    color: #5f6a74;
    font-size: 12.5px;
    font-weight: 400;
}

/* Sous les membres : le bouton d'ajout, ancre du dérouleur partagé (panneau absolu sous le bouton), et ce qui le retient. */
.pd-ajout[b-yw5w4j63mo] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 12px;
    margin-top: 10px;
}

.pd-ancre[b-yw5w4j63mo] {
    position: relative;
    display: inline-block;
}

.pd-raison[b-yw5w4j63mo] {
    color: #5f6a74;
    font-size: 12.5px;
}

/* Un compte ou un groupe choisi que le service refuserait : il n'est pas ajouté, la raison reste sous le bouton. */
.pd-refus-ajout[b-yw5w4j63mo] {
    margin-top: 6px;
    padding: 6px 10px;
    border-radius: 4px;
    background: #f8d7da;
    color: #58151c;
    font-size: 12.5px;
}

/* Pied de l'édition : l'état à gauche, Annuler et Enregistrer à droite (charte §5). */
.pd-pied[b-yw5w4j63mo] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    border-top: 1px solid #dee2e6;
    background: #f8f9fa;
}

.pd-etat[b-yw5w4j63mo] {
    margin-right: auto;
    color: #5f6a74;
    font-size: 12.5px;
}

.pd-etat-attente[b-yw5w4j63mo] {
    color: #664d03;
    font-weight: 600;
}

.pd-refus[b-yw5w4j63mo] {
    padding: 8px 12px;
    border-top: 1px solid #dee2e6;
    background: #f8d7da;
    color: #58151c;
    font-size: 12.5px;
}

/* Le refus d'un geste sur le profil entier s'affiche sous son bandeau, en haut de la carte. */
.pd-refus-geste[b-yw5w4j63mo] {
    border-top: 0;
    border-bottom: 1px solid #dee2e6;
}
/* /Pages/Administration/ProfilsDroitsOnglets.razor.rz.scp.css */
/* Droits d'un profil par section du menu (ProfilsDroitsOnglets.razor) — feuille ISOLÉE, classes préfixées pdo-.
   Charte §4 : les onglets et leur contenu dans la même carte, un onglet non courant sans aucun fond, même au survol. */

.pdo-onglets[b-ea340xqg2o] {
    display: flex;
    flex-wrap: wrap;
    gap: 2px;
    border-bottom: 1px solid #dee2e6;
}

.pdo-onglet[b-ea340xqg2o] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-bottom: -1px;
    padding: 7px 12px;
    border: 1px solid transparent;
    border-bottom: 0;
    border-radius: 6px 6px 0 0;
    background: transparent;
    color: #5f6a74;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}

.pdo-onglet:hover[b-ea340xqg2o] {
    color: #212529;
}

.pdo-onglet:focus-visible[b-ea340xqg2o] {
    outline: 2px solid #5f368d;
    outline-offset: -2px;
}

.pdo-onglet-actif[b-ea340xqg2o] {
    border-color: #dee2e6;
    border-bottom: 1px solid #ffffff;
    background: #ffffff;
    color: #212529;
}

.pdo-compte[b-ea340xqg2o] {
    color: #5f6a74;
    font-size: 11.5px;
    font-weight: 400;
    font-variant-numeric: tabular-nums;
}

.pdo-compte-plein[b-ea340xqg2o] {
    color: #198754;
    font-weight: 600;
}

/* Un onglet qui porte une modification non enregistrée. */
.pdo-modif[b-ea340xqg2o] {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #fd7e14;
}

.pdo-panneau[b-ea340xqg2o] {
    padding: 0 4px;
}

.pdo-tete[b-ea340xqg2o] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 12px;
    padding: 8px 4px;
    border-bottom: 1px solid #dee2e6;
}

.pdo-tete-compte[b-ea340xqg2o] {
    color: #5f6a74;
    font-size: 12.5px;
    font-variant-numeric: tabular-nums;
}

/* La case « tout » : un bouton dessiné en case, cochée, vide ou mixte selon aria-checked. */
.pdo-tout[b-ea340xqg2o] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 2px 4px;
    border: 0;
    background: transparent;
    color: #5f6a74;
    font-size: 12.5px;
    cursor: pointer;
}

.pdo-tout:focus-visible[b-ea340xqg2o] {
    outline: 2px solid #5f368d;
    outline-offset: 1px;
}

.pdo-tout-case[b-ea340xqg2o] {
    position: relative;
    width: 15px;
    height: 15px;
    border: 1px solid #6c757d;
    border-radius: 3px;
    background: #ffffff;
}

.pdo-tout[aria-checked="true"] .pdo-tout-case[b-ea340xqg2o],
.pdo-tout[aria-checked="mixed"] .pdo-tout-case[b-ea340xqg2o] {
    border-color: #5f368d;
    background: #5f368d;
}

.pdo-tout[aria-checked="true"] .pdo-tout-case[b-ea340xqg2o]::after {
    content: "";
    position: absolute;
    left: 4px;
    top: 1px;
    width: 5px;
    height: 9px;
    border: solid #ffffff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

.pdo-tout[aria-checked="mixed"] .pdo-tout-case[b-ea340xqg2o]::after {
    content: "";
    position: absolute;
    left: 3px;
    top: 6px;
    width: 7px;
    height: 2px;
    background: #ffffff;
}

.pdo-ligne[b-ea340xqg2o] {
    padding: 7px 4px;
    border-bottom: 1px solid #dee2e6;
}

.pdo-ligne:last-child[b-ea340xqg2o] {
    border-bottom: 0;
}

/* Une ligne dont une case diffère de l'enregistrement. */
.pdo-ligne-modifiee[b-ea340xqg2o] {
    background: #fff3cd;
}

.pdo-fonction[b-ea340xqg2o] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 8px;
    margin: 0;
}

.pdo-libelle[b-ea340xqg2o] {
    font-weight: 600;
}

.pdo-route[b-ea340xqg2o] {
    color: #5f6a74;
    font-family: ui-monospace, Consolas, "Courier New", monospace;
    font-size: 11.5px;
}

/* Les gestes s'alignent sous le libellé de leur écran, après la case. */
.pdo-gestes[b-ea340xqg2o] {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 14px;
    margin-top: 4px;
    padding-left: 23px;
}

.pdo-geste[b-ea340xqg2o] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin: 0;
    font-size: 12.5px;
}

.pdo-fonction input[b-ea340xqg2o],
.pdo-geste input[b-ea340xqg2o] {
    width: 15px;
    height: 15px;
    margin: 0;
    accent-color: #5f368d;
    cursor: pointer;
}

.pdo-fonction input:disabled[b-ea340xqg2o],
.pdo-geste input:disabled[b-ea340xqg2o] {
    cursor: not-allowed;
}

/* Une fonction que le profil ne donne pas reste lisible, en retrait. */
.pdo-non-donne[b-ea340xqg2o],
.pdo-non-donne .pdo-libelle[b-ea340xqg2o] {
    color: #5f6a74;
    font-weight: 400;
}

.pdo-donne[b-ea340xqg2o] {
    color: #212529;
}

.pdo-niveau[b-ea340xqg2o] {
    padding: 0 6px;
    border-radius: 10px;
    font-size: 10px;
    font-weight: 700;
    white-space: nowrap;
}

.pdo-niveau-destructif[b-ea340xqg2o] {
    background: #f8d7da;
    color: #58151c;
}

.pdo-niveau-sensible[b-ea340xqg2o] {
    background: #fff3cd;
    color: #664d03;
}
/* /Pages/Administration/ProfilsMembres.razor.rz.scp.css */
/* Membres d'un profil (ProfilsMembres.razor) — feuille ISOLÉE, classes préfixées pdm-. Les pastilles ont leur propre
   feuille. */

.pdm[b-ielyfqbyvq] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 10px;
    min-height: 32px;
}

.pdm-membre[b-ielyfqbyvq] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.pdm-note[b-ielyfqbyvq] {
    color: #5f6a74;
    font-size: 11.5px;
    font-variant-numeric: tabular-nums;
}

.pdm-vide[b-ielyfqbyvq] {
    color: #5f6a74;
    font-size: 12.5px;
}

/* La croix d'un membre et le ↺ qui le garde : sans bord ni fond, le fond apparaît au survol ou au focus, comme le ×
   d'une pastille ; grisée quand le service refuserait, la raison en infobulle. */
.pdm-action[b-ielyfqbyvq] {
    flex: none;
    width: 18px;
    height: 18px;
    padding: 0;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: #495057;
    font-size: 13px;
    font-weight: 700;
    line-height: 18px;
    cursor: pointer;
}

.pdm-action:hover:not(:disabled)[b-ielyfqbyvq] {
    background: rgba(0, 0, 0, .12);
}

/* Au clavier, le contour violet des autres commandes de l'écran : le seul fond gris se voyait à peine (revue, INV-947). */
.pdm-action:focus-visible[b-ielyfqbyvq] {
    background: rgba(0, 0, 0, .12);
    outline: 2px solid #5f368d;
    outline-offset: 1px;
}

.pdm-action:disabled[b-ielyfqbyvq] {
    opacity: .35;
    cursor: not-allowed;
}

/* Un membre retiré reste visible, barré et atténué, jusqu'à l'enregistrement. */
.pdm-retire[b-ielyfqbyvq]  .pastille-principal-texte {
    text-decoration: line-through;
}

.pdm-retire[b-ielyfqbyvq]  .pastille-principal,
.pdm-retire[b-ielyfqbyvq]  .pastille-puissance {
    opacity: .55;
}

/* Un compte ou un groupe à ajouter : cerclé de vert, la couleur d'un ajout (charte §5). */
.pdm-ajoute[b-ielyfqbyvq]  .pastille-principal {
    box-shadow: 0 0 0 2px #198754;
}
/* /Pages/Aide.razor.rz.scp.css */
/* ---- mise en page 3 colonnes : sommaire | contenu | « Dans cette page » ---- */

.aide-layout[b-g9flja7hvq] {
    display: grid;
    grid-template-columns: 240px minmax(0, 1fr);
    gap: 2rem;
    max-width: 1280px;
    margin: 0 auto;
    padding: 0.5rem 0 3rem;
}

.aide-layout.avec-toc[b-g9flja7hvq] {
    grid-template-columns: 240px minmax(0, 1fr) 220px;
}

.aide-corps[b-g9flja7hvq] {
    max-width: 880px;
    min-width: 0;
}

/* ---- sommaire (volet gauche flottant) ---- */

.aide-nav[b-g9flja7hvq] {
    position: sticky;
    top: 1rem;
    align-self: start;
    max-height: calc(100vh - 2rem);
    overflow-y: auto;
    padding-right: 0.75rem;
    border-right: 1px solid #ececef;
    font-size: 0.9rem;
}

.aide-nav-titre[b-g9flja7hvq] {
    display: block;
    font-weight: 650;
    font-size: 0.95rem;
    color: #1f2328;
    text-decoration: none;
    margin-bottom: 0.6rem;
}

.aide-nav-titre:hover[b-g9flja7hvq] {
    color: var(--bs-primary, #563d7c);
}

.aide-nav-recherche[b-g9flja7hvq] {
    width: 100%;
    font-size: 0.85rem;
    padding: 0.3rem 0.55rem;
    margin-bottom: 0.7rem;
    border: 1px solid #d6d6db;
    border-radius: 6px;
    outline: none;
}

.aide-nav-recherche:focus[b-g9flja7hvq] {
    border-color: var(--bs-primary, #563d7c);
    box-shadow: 0 0 0 3px rgba(86, 61, 124, 0.12);
}

.aide-nav[b-g9flja7hvq]  ul {
    list-style: none;
    padding-left: 0;
    margin: 0;
}

.aide-nav[b-g9flja7hvq]  ul ul {
    padding-left: 0.9rem;
    border-left: 2px solid #ececef;
    margin: 0.15rem 0 0.35rem 0.25rem;
}

.aide-nav[b-g9flja7hvq]  li {
    padding: 0.18rem 0;
}

.aide-nav[b-g9flja7hvq]  a {
    color: #374151;
    text-decoration: none;
    display: block;
    padding: 0.1rem 0.4rem;
    border-radius: 5px;
}

.aide-nav[b-g9flja7hvq]  a:hover {
    color: var(--bs-primary, #563d7c);
    background: #f4f4f5;
}

.aide-nav[b-g9flja7hvq]  a.actif {
    color: var(--bs-primary, #563d7c);
    background: rgba(86, 61, 124, 0.08);
    font-weight: 600;
}

.aide-nav[b-g9flja7hvq]  span {
    color: #6b7280;
    font-weight: 600;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

/* Ligne d'une section de premier niveau (repliable) : libellé + chevron de bascule. */
.aide-nav[b-g9flja7hvq]  .aide-nav-section {
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

.aide-nav[b-g9flja7hvq]  .aide-nav-section > a,
.aide-nav[b-g9flja7hvq]  .aide-nav-section > span {
    flex: 1 1 auto;
    min-width: 0;
}

.aide-nav[b-g9flja7hvq]  .aide-nav-basculer {
    border: none;
    background: none;
    cursor: pointer;
    color: #9ca3af;
    font-size: 0.95rem;
    line-height: 1;
    padding: 0 0.3rem;
    transition: transform 0.12s ease;
}

.aide-nav[b-g9flja7hvq]  .aide-nav-basculer.ouvert {
    transform: rotate(90deg);
}

.aide-nav[b-g9flja7hvq]  .aide-nav-basculer:hover {
    color: var(--bs-primary, #563d7c);
}

/* ---- fil d'Ariane ---- */

/* ---- Export PDF (INV-749) : en haut à droite, à la hauteur du fil d'Ariane ---- */

.aide-corps[b-g9flja7hvq] {
    position: relative;
}

.aide-export[b-g9flja7hvq] {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 5;
}

.aide-export-fond[b-g9flja7hvq] {
    position: fixed;
    inset: 0;
    z-index: 4;
}

.aide-export-menu[b-g9flja7hvq] {
    position: absolute;
    right: 0;
    left: auto;
    top: 100%;
    z-index: 6;
    font-size: 0.875rem;
}

.aide-fil[b-g9flja7hvq] {
    font-size: 0.85rem;
    color: #6b7280;
    margin: 0.25rem 0 1.25rem;
    padding-right: 5rem;   /* place du bouton PDF */
}

.aide-fil a[b-g9flja7hvq] {
    color: var(--bs-primary, #563d7c);
    text-decoration: none;
}

.aide-fil a:hover[b-g9flja7hvq] {
    text-decoration: underline;
}

.aide-fil-separateur[b-g9flja7hvq] {
    margin: 0 0.45rem;
    color: #9ca3af;
}

.aide-fil-courant[b-g9flja7hvq] {
    color: #1f2328;
    font-weight: 600;
}

/* ---- « Dans cette page » (colonne droite flottante) ---- */

.aide-toc[b-g9flja7hvq] {
    position: sticky;
    top: 1rem;
    align-self: start;
    max-height: calc(100vh - 2rem);
    overflow-y: auto;
    font-size: 0.85rem;
    border-left: 1px solid #ececef;
    padding-left: 1rem;
}

.aide-toc-titre[b-g9flja7hvq] {
    font-weight: 600;
    color: #6b7280;
    text-transform: uppercase;
    font-size: 0.72rem;
    letter-spacing: 0.05em;
    margin-bottom: 0.4rem;
}

.aide-toc ul[b-g9flja7hvq] {
    list-style: none;
    margin: 0;
    padding: 0;
}

.aide-toc li[b-g9flja7hvq] {
    padding: 0.18rem 0;
}

.aide-toc a[b-g9flja7hvq] {
    color: #374151;
    text-decoration: none;
}

.aide-toc a:hover[b-g9flja7hvq] {
    color: var(--bs-primary, #563d7c);
    text-decoration: underline;
}

/* ---- résultats de recherche ---- */

.aide-resultat[b-g9flja7hvq] {
    padding: 0.7rem 0;
    border-bottom: 1px solid #ececef;
}

.aide-resultat-titre[b-g9flja7hvq] {
    font-weight: 600;
    font-size: 1rem;
    color: var(--bs-primary, #563d7c);
    text-decoration: none;
}

.aide-resultat-titre:hover[b-g9flja7hvq] {
    text-decoration: underline;
}

.aide-resultat-route[b-g9flja7hvq] {
    font-size: 0.75rem;
    color: #9ca3af;
    font-family: Consolas, monospace;
    margin: 0.1rem 0 0.25rem;
}

.aide-resultat-extrait[b-g9flja7hvq] {
    font-size: 0.9rem;
    color: #374151;
    line-height: 1.5;
    margin: 0;
}

.aide-resultat-extrait mark[b-g9flja7hvq] {
    background: #ffe9a8;
    padding: 0 0.15rem;
    border-radius: 3px;
}

/* ---- écrans étroits : une colonne, sommaire replié en tête, TOC masquée ---- */

@media (max-width: 1100px) {
    .aide-layout[b-g9flja7hvq],
    .aide-layout.avec-toc[b-g9flja7hvq] {
        grid-template-columns: 1fr;
    }

    .aide-nav[b-g9flja7hvq] {
        position: static;
        max-height: none;
        border-right: none;
        border-bottom: 1px solid #ececef;
        padding: 0 0 0.75rem;
        margin-bottom: 0.75rem;
    }

    .aide-toc[b-g9flja7hvq] {
        display: none;
    }
}

/* ---- contenu markdown (::deep : le HTML vient de MarkupString, hors portée du CSS isolé) ---- */

.aide-contenu[b-g9flja7hvq]  h1 {
    font-size: 1.65rem;
    font-weight: 650;
    margin-bottom: 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid #ececef;
}

.aide-contenu[b-g9flja7hvq]  h2 {
    font-size: 1.25rem;
    font-weight: 600;
    margin: 1.75rem 0 0.6rem;
}

.aide-contenu[b-g9flja7hvq]  h3 {
    font-size: 1.05rem;
    font-weight: 600;
    margin: 1.25rem 0 0.4rem;
}

.aide-contenu[b-g9flja7hvq]  p,
.aide-contenu[b-g9flja7hvq]  li {
    line-height: 1.55;
    color: #1f2328;
}

.aide-contenu[b-g9flja7hvq]  table {
    width: 100%;
    border-collapse: collapse;
    margin: 0.75rem 0 1.25rem;
    font-size: 0.9rem;
}

.aide-contenu[b-g9flja7hvq]  th {
    text-align: left;
    background: #f8f9fa;
    border-bottom: 2px solid #e4e4e7;
    padding: 0.45rem 0.6rem;
}

.aide-contenu[b-g9flja7hvq]  td {
    border-bottom: 1px solid #ececef;
    padding: 0.45rem 0.6rem;
    vertical-align: top;
}

/* citation simple (>) : neutre — les niveaux typés passent par > [!NOTE] etc. */
.aide-contenu[b-g9flja7hvq]  blockquote {
    margin: 1rem 0;
    padding: 0.6rem 1rem;
    background: #f6f7f8;
    border-left: 4px solid #9ca3af;
    border-radius: 0 6px 6px 0;
    color: #4b5563;
}

.aide-contenu[b-g9flja7hvq]  blockquote p {
    margin: 0;
    color: inherit;
}

/* ---- encadrés à niveaux (> [!NOTE] / [!TIP] / [!IMPORTANT] / [!WARNING] / [!CAUTION]) ---- */

.aide-contenu[b-g9flja7hvq]  .aide-alerte {
    margin: 1rem 0;
    padding: 0.65rem 1rem;
    border-left: 4px solid;
    border-radius: 0 6px 6px 0;
}

.aide-contenu[b-g9flja7hvq]  .aide-alerte p {
    margin: 0 0 0.25rem;
}

.aide-contenu[b-g9flja7hvq]  .aide-alerte-titre {
    font-weight: 650;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 0.3rem;
}

.aide-contenu[b-g9flja7hvq]  .aide-alerte-info {
    background: #eef4fb;
    border-left-color: #3b82c4;
}

.aide-contenu[b-g9flja7hvq]  .aide-alerte-info .aide-alerte-titre {
    color: #2b5d8f;
}

.aide-contenu[b-g9flja7hvq]  .aide-alerte-astuce {
    background: #eefaf2;
    border-left-color: #2e9e5b;
}

.aide-contenu[b-g9flja7hvq]  .aide-alerte-astuce .aide-alerte-titre {
    color: #227a46;
}

.aide-contenu[b-g9flja7hvq]  .aide-alerte-important {
    background: #f3effb;
    border-left-color: #7c5cd6;
}

.aide-contenu[b-g9flja7hvq]  .aide-alerte-important .aide-alerte-titre {
    color: #5c40b0;
}

.aide-contenu[b-g9flja7hvq]  .aide-alerte-attention {
    background: #fbf7ef;
    border-left-color: #e0a800;
}

.aide-contenu[b-g9flja7hvq]  .aide-alerte-attention .aide-alerte-titre {
    color: #8a6d00;
}

.aide-contenu[b-g9flja7hvq]  .aide-alerte-danger {
    background: #fbefef;
    border-left-color: #d64545;
}

.aide-contenu[b-g9flja7hvq]  .aide-alerte-danger .aide-alerte-titre {
    color: #a83232;
}

.aide-contenu[b-g9flja7hvq]  code {
    background: #f4f4f5;
    border-radius: 4px;
    padding: 0.1rem 0.35rem;
    font-size: 0.85em;
}

.aide-contenu[b-g9flja7hvq]  pre {
    background: #f4f4f5;
    border-radius: 8px;
    padding: 0.75rem 1rem;
    overflow-x: auto;
}

.aide-contenu[b-g9flja7hvq]  pre code {
    background: none;
    padding: 0;
}

.aide-contenu[b-g9flja7hvq]  img {
    max-width: 100%;
    border: 1px solid #e4e4e7;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    margin: 0.5rem 0 1rem;
}

/* image cliquable : lightbox sur place — hack checkbox, CSS pur, AUCUNE navigation
   (une ancre #zoom serait résolue contre <base href="/"> et renverrait à l'accueil) */
.aide-contenu[b-g9flja7hvq]  label.aide-zoom {
    display: inline-block;
    cursor: zoom-in;
}

.aide-contenu[b-g9flja7hvq]  label.aide-zoom img {
    transition: box-shadow 0.12s ease;
}

.aide-contenu[b-g9flja7hvq]  label.aide-zoom:hover img {
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.16);
}

.aide-contenu[b-g9flja7hvq]  .aide-zoom-case {
    display: none;
}

.aide-contenu[b-g9flja7hvq]  label.aide-zoom-voile {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 2000;
    background: rgba(15, 17, 26, 0.82);
    align-items: center;
    justify-content: center;
    padding: 2rem;
    cursor: zoom-out;
}

.aide-contenu[b-g9flja7hvq]  .aide-zoom-case:checked + label.aide-zoom-voile {
    display: flex;
}

.aide-contenu[b-g9flja7hvq]  label.aide-zoom-voile img {
    max-width: 94vw;
    max-height: 92vh;
    margin: 0;
    border: none;
    border-radius: 6px;
    background: #fff;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5);
}

/* ---- surbrillance des termes de recherche dans la page ouverte ---- */

.aide-surbrillance-bandeau[b-g9flja7hvq] {
    background: #fdf6dd;
    border: 1px solid #eeddad;
    border-radius: 6px;
    padding: 0.4rem 0.8rem;
    font-size: 0.85rem;
    color: #6b5d20;
    margin-bottom: 1rem;
}

.aide-surbrillance-bandeau a[b-g9flja7hvq] {
    color: var(--bs-primary, #563d7c);
}

.aide-contenu[b-g9flja7hvq]  mark.aide-surbrillance {
    background: #ffe9a8;
    padding: 0 0.12rem;
    border-radius: 3px;
}

.aide-contenu[b-g9flja7hvq]  a {
    color: var(--bs-primary, #563d7c);
}

/* Schémas Mermaid (INV-410) : le <pre> du bloc ```mermaid reçoit le SVG (wwwroot/js/aide-schemas.js).
   Rendu : centré, sans le fond gris d'un bloc de code, jamais plus large que la colonne. */
.aide-contenu[b-g9flja7hvq]  pre.aide-schema {
    background: none;
    border: 0;
    padding: .5rem 0;
    margin: 1rem 0 1.25rem;
    text-align: center;
    overflow-x: auto;
    white-space: normal;
}

.aide-contenu[b-g9flja7hvq]  pre.aide-schema svg {
    max-width: 100%;
    height: auto;
}
/* /Pages/ChorusActions/ChorusActionFiche.razor.rz.scp.css */
/* Feuille ISOLÉE de la fiche d'une action Chorus (Pages/ChorusActions/ChorusActionFiche.razor, INV-455) — classes
   préfixées cha-. Page routable distincte de la liste : l'isolation ne traverse pas deux pages, d'où sa propre feuille
   (les quelques règles communes sont recopiées, comme entre PortailRfe et FactureRfe). L'essentiel est du Bootstrap
   (charte §2, §3, §5, §6) ; ici la palette de la maquette : en-tête coloré par rôle d'étape, lettre en carré bleu Chorus,
   liste des documents à filets pointillés, boutons compacts. ⚠ Les DxPopup sont rendus hors de la racine : cette feuille
   ne les atteint pas (Bootstrap seul dedans). */

.cha-page[b-1bhmkji7zn] {
    font-size: 13px;
    line-height: 1.4;
}

/* Contenu sur fond gris clair (charte §2). */
.cha-fond[b-1bhmkji7zn] {
    background: #f5f6f8;
    min-height: 60vh;
}

.cha-badge-chorus[b-1bhmkji7zn] {
    background: #1f4e79;
    color: #fff;
}

.cha-barre-titre[b-1bhmkji7zn] {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 40vw;
}

.cha-barre-gauche[b-1bhmkji7zn] {
    min-width: 0;
}

/* Rappel « figé depuis l'activation » : ambre foncé lisible sur blanc (AA), jamais du jaune sur blanc. */
.cha-fige[b-1bhmkji7zn] {
    color: #997404;
}

.cha-dl dt[b-1bhmkji7zn] {
    font-weight: 400;
}

.cha-dl dd[b-1bhmkji7zn] {
    margin-bottom: .2rem;
}

/* Carte d'étape : en-tête coloré par rôle — A dépôt (ambre clair), B traitement (cyan clair), C arrivée (vert clair),
   E erreur (rouge clair) ; encre sombre partout pour le contraste. */
.cha-etape-entete[b-1bhmkji7zn] {
    color: #212529;
}

.cha-etape-A .cha-etape-entete[b-1bhmkji7zn] {
    background: #fff3cd;
}

.cha-etape-B .cha-etape-entete[b-1bhmkji7zn] {
    background: #cff4fc;
}

.cha-etape-C .cha-etape-entete[b-1bhmkji7zn] {
    background: #d1e7dd;
}

.cha-etape-E .cha-etape-entete[b-1bhmkji7zn] {
    background: #f8d7da;
}

.cha-lettre[b-1bhmkji7zn] {
    display: inline-block;
    width: 24px;
    height: 24px;
    border-radius: 4px;
    background: #1f4e79;
    color: #fff;
    text-align: center;
    line-height: 24px;
    margin-right: 6px;
    font-size: 13px;
}

.cha-stats-titre[b-1bhmkji7zn] {
    letter-spacing: .04em;
    margin-bottom: 4px;
}

/* Liste des documents d'une étape : un filet pointillé entre deux lignes, pas de puce. */
.cha-docs li[b-1bhmkji7zn] {
    padding: 4px 0;
    border-bottom: 1px dashed #eceef1;
    font-size: 12.5px;
}

.cha-docs li:last-child[b-1bhmkji7zn] {
    border-bottom: 0;
}

/* Bouton compact d'une ligne de document (plus petit que btn-sm, comme la maquette). */
.btn-xs[b-1bhmkji7zn] {
    padding: 0 6px;
    font-size: 11px;
    line-height: 1.6;
}

/* Glyphe d'état d'un élément du coffre : largeur fixe pour aligner la liste (patron RfeManifeste). */
.cha-glyphe[b-1bhmkji7zn] {
    min-width: 7.5em;
}
/* /Pages/ChorusActions/ChorusActionsListe.razor.rz.scp.css */
/* Feuille ISOLÉE de la liste des actions Chorus (Pages/ChorusActions/ChorusActionsListe.razor, INV-455) —
   classes préfixées cha-. L'essentiel est du Bootstrap (charte §3, §5, §8) ; ici seulement ce que la maquette
   ajoute : le badge « Chorus Pro », la ligne d'en-tête de groupe, les codes en monospace, les lignes archivées.
   ⚠ Les DxPopup sont rendus hors de la racine : cette feuille ne les atteint pas (Bootstrap seul dedans). */

.cha-page[b-kqrbm16d9u] {
    font-size: 13px;
    line-height: 1.4;
}

/* Badge « Chorus Pro » : bleu Chorus de la maquette (#1f4e79), texte blanc (contraste AA). */
.cha-badge-chorus[b-kqrbm16d9u] {
    background: #1f4e79;
    color: #fff;
}

/* Ligne d'en-tête d'un groupe de workflow : gris bleuté, plus discret qu'un en-tête de colonne. */
.cha-groupe th[b-kqrbm16d9u] {
    --bs-table-bg: #eef1f5;
    --bs-table-color: #33415c;
    font-weight: 600;
    font-size: 12.5px;
}

/* Une action archivée reste lisible mais en retrait. */
.cha-archivee td[b-kqrbm16d9u] {
    color: #6c757d;
    font-style: italic;
}

.cha-code[b-kqrbm16d9u] {
    font-family: ui-monospace, "Cascadia Mono", Consolas, monospace;
    font-size: 12px;
}

/* Charte §12 : colonnes de chiffres à droite, en tabular-nums. */
.cha-num[b-kqrbm16d9u] {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.cha-table td[b-kqrbm16d9u],
.cha-table th[b-kqrbm16d9u] {
    white-space: nowrap;
}

.cha-dl dt[b-kqrbm16d9u] {
    font-weight: 400;
}
/* /Pages/DiagnosticChorus/ChorusPdfControle.razor.rz.scp.css */
/* Feuille ISOLÉE de l'écran Contrôle des PDF Chorus (Pages/DiagnosticChorus/ChorusPdfControle.razor, INV-458) —
   classes préfixées cpc-. L'essentiel est du Bootstrap (charte §3, §5, §8) ; ici seulement ce que la charte demande en
   plus : les tuiles de synthèse du bandeau (§12 : libellé au-dessus, nombre seul en tabular-nums, liseré 4 px à gauche
   coloré selon la nature), les colonnes de chiffres, et la hauteur des volets d'examen. Les volets ch-panes / ch-pane /
   ch-pdf viennent de la feuille commune wwwroot/css/charte.css (déclarée par CharteCss, §14) : les règles qui les visent
   passent par ::deep depuis la racine .cpc-page. Palette = celle de charte.css (filet #dee2e6, en-tête #f8f9fa, atténué
   #5f6a74, encre #212529, danger #dc3545, succès #198754, orange #fd7e14). */

.cpc-page[b-rc0i75gmsb] {
    font-size: 13px;
    line-height: 1.4;
}

/* ── Tuiles de synthèse (charte §12) ─────────────────────────────────────────────────────────── */

.cpc-tuiles[b-rc0i75gmsb] {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.cpc-tuile[b-rc0i75gmsb] {
    flex: 0 1 auto;
    min-width: 7.5rem;
    background: #fff;
    border: 1px solid #dee2e6;
    border-left: 4px solid #adb5bd;
    border-radius: .4rem;
    padding: .4rem .7rem;
}

.cpc-tuile-libelle[b-rc0i75gmsb] {
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .03em;
    text-transform: uppercase;
    color: #5f6a74;
    line-height: 1.25;
    white-space: nowrap;
}

.cpc-tuile-valeur[b-rc0i75gmsb] {
    font-size: 1.25rem;
    font-weight: 600;
    line-height: 1.2;
    color: #212529;
    font-variant-numeric: tabular-nums;
}

/* La date du dernier contrôle n'est pas un nombre : plus petite, même hauteur de tuile. */
.cpc-tuile-date .cpc-tuile-valeur[b-rc0i75gmsb] {
    font-size: .95rem;
    line-height: 1.6;
    white-space: nowrap;
}

/* Nature de la valeur par le liseré : rouge = à corriger, vert = conformes et remplacées, orange = anomalies. */
.cpc-tuile-corriger[b-rc0i75gmsb] {
    border-left-color: #dc3545;
}

.cpc-tuile-ok[b-rc0i75gmsb] {
    border-left-color: #198754;
}

.cpc-tuile-anomalie[b-rc0i75gmsb] {
    border-left-color: #fd7e14;
}

/* ── Table (charte §8, §12) ───────────────────────────────────────────────────────────────────── */

.cpc-num[b-rc0i75gmsb] {
    text-align: right;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.cpc-table td[b-rc0i75gmsb],
.cpc-table th[b-rc0i75gmsb] {
    white-space: nowrap;
}

/* Titre et détail d'anomalie peuvent passer à la ligne : ce sont les seules colonnes longues. */
.cpc-table td.cpc-libre[b-rc0i75gmsb] {
    white-space: normal;
    min-width: 16rem;
}

/* Détail d'une anomalie : encre danger de la charte (lisible sur blanc), pas de fond. */
.cpc-erreur[b-rc0i75gmsb] {
    color: #842029;
}

/* ── Volets d'examen ──────────────────────────────────────────────────────────────────────────── */

/* L'examen est un DxPopup (2026-09-17) : rendu hors de la racine de la page, il n'est pas atteint par cette feuille.
   Ses volets ch-panes / ch-pane / ch-pdf viennent de charte.css, déjà dimensionnés pour un popup de 95vh. Aucune règle ici. */
/* /Pages/DiagnosticMail/DiagnosticMail.razor.rz.scp.css */
.dm-intro[b-fafllgwz3m] {
    max-width: 70rem;
}

.dm-table[b-fafllgwz3m] {
    width: auto;
    min-width: 60rem;
}

.dm-table td[b-fafllgwz3m] {
    vertical-align: top;
}

/* Relève désactivée : grisée, mais la boîte est lue quand même. */
.dm-inactive > td[b-fafllgwz3m] {
    --bs-table-color: #8a8f98;
    color: #8a8f98;
}

.dm-mails[b-fafllgwz3m] {
    margin: 0;
    font-size: 0.9em;
}

/* Mail sans PDF : le connecteur le laisse sur place, c'est souvent la raison de sa présence. */
.dm-sans-pdf[b-fafllgwz3m] {
    --bs-table-color: #b45309;
    color: #b45309;
    font-weight: 600;
}
/* /Pages/DiagnosticRfe/DiagnosticRfe.razor.rz.scp.css */
/* Cartes repliables de /diagnostic/rfe (même geste que la synthèse de /receptionv2) : le titre est le bouton,
   le chevron tourne quand la carte est repliée. Feuille isolée : un bloc style dans le .razor serait global. */
.rfe-repliable[b-5w7a2raysy] { cursor: pointer; user-select: none; }
.rfe-chev[b-5w7a2raysy] { display: inline-block; transition: transform .12s; }
.rfe-chev-ferme[b-5w7a2raysy] { transform: rotate(-90deg); }

@media (prefers-reduced-motion: reduce) {
    .rfe-chev[b-5w7a2raysy] { transition: none; }
}
/* /Pages/DiagnosticStockage/DiagnosticStockage.razor.rz.scp.css */
/* Feuille ISOLÉE de l'écran Technique › Stockage (Pages/DiagnosticStockage, chantier stockage lot 4) — classes
   préfixées sto-. L'essentiel est du Bootstrap (charte §3, §5, §8) ; ici seulement la taille du texte, les colonnes de
   chiffres (alignées à droite, chiffres tabulaires), les chemins longs (coupés n'importe où plutôt que de faire
   déborder la carte) et la hauteur des longues listes. Le composant TableCompteurs, rendu dans cette page, est atteint
   par ::deep depuis la racine .sto-page. */

.sto-page[b-y45ib4xfut] {
    font-size: 13px;
    line-height: 1.4;
}

.sto-page[b-y45ib4xfut]  .sto-identite th {
    width: 12rem;
    font-weight: 600;
    color: #5f6a74;
    white-space: nowrap;
}

.sto-page[b-y45ib4xfut]  .sto-table th {
    white-space: nowrap;
    background: #f8f9fa;
}

.sto-page[b-y45ib4xfut]  .sto-nombre {
    text-align: right;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.sto-page[b-y45ib4xfut]  .sto-chemin {
    font-family: var(--bs-font-monospace);
    font-size: 12px;
    word-break: break-all;
}

/* Lot 6 : le champ du nouvel emplacement, assez large pour un chemin, sans prendre toute la carte. */
.sto-page[b-y45ib4xfut]  .sto-cible {
    width: 32rem;
    max-width: 100%;
    font-family: var(--bs-font-monospace);
}

/* Les listes d'écarts et de fichiers non référencés peuvent porter mille lignes : elles défilent dans leur carte. */
.sto-page[b-y45ib4xfut]  .sto-defilement {
    max-height: 32rem;
    overflow: auto;
}
/* /Pages/Index.razor.rz.scp.css */
/* =============================================================================
   Page d'accueil — « Nouveautés ».

   Feuille ISOLÉE (Blazor CSS isolation) : chaque sélecteur est automatiquement
   restreint aux éléments d'Index.razor. C'est volontaire et non négociable ici —
   la page redéfinit des éléments aussi génériques que p, h2 ou table, et un
   simple bloc <style> dans le .razor serait GLOBAL : il repeindrait toute
   l'application.

   Aucune police externe n'est chargée : l'application tourne sur site, parfois
   sans accès Internet, et un <link> vers un fournisseur de polices se dégraderait
   en silence. On s'appuie donc sur la pile système, et le caractère vient du
   poids, de l'approche et de la couleur.

   L'ambre est RÉSERVÉ au chapitre RFE, pour signaler la nouveauté. Ne pas le
   réemployer ailleurs : il perdrait son sens.
   ============================================================================= */

.nv[b-r8m78ywl1b] {
    --nv-paper: #ffffff;
    --nv-surface: #f6f8fa;
    --nv-surface-2: #eef2f6;
    --nv-line: #e3e9ef;
    --nv-line-soft: #edf1f5;
    --nv-ink: #0b1524;
    --nv-body: #33415c;
    --nv-muted: #64748b;
    --nv-faint: #94a3b8;

    --nv-accent: #0e7490;
    --nv-accent-d: #0b5b71;
    --nv-accent-soft: #e0f2f4;

    --nv-heat-1: #f59e0b;
    --nv-heat-2: #ef6c2e;
    --nv-heat-ink: #8a3d0b;
    --nv-heat-soft: #fff4e6;

    --nv-ok-ink: #067647;
    --nv-ok-soft: #ecfdf3;

    --nv-sans: "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;

    --nv-ombre-douce: 0 1px 2px rgba(11,21,36,.05), 0 8px 24px -12px rgba(11,21,36,.14);
    --nv-ombre-pill: 0 1px 2px rgba(11,21,36,.08), 0 6px 16px -8px rgba(11,21,36,.22);

    font-family: var(--nv-sans);
    font-size: 15px;
    line-height: 1.62;
    color: var(--nv-body);
    background: var(--nv-surface);
    margin: -1rem;
    padding-bottom: 70px;
    min-height: calc(100vh - 4rem);
}

.nv *[b-r8m78ywl1b],
.nv *[b-r8m78ywl1b]::before,
.nv *[b-r8m78ywl1b]::after {
    box-sizing: border-box;
}

.nv-page[b-r8m78ywl1b] {
    max-width: 1120px;
    margin: 0 auto;
    padding: 0 28px;
}

/* ---------- bandeau de tête ---------- */
.nv-tete[b-r8m78ywl1b] {
    position: relative;
    overflow: hidden;
    background: var(--nv-paper);
    border-bottom: 1px solid var(--nv-line);
}

/* trame de points : de la matière, sans bruit */
.nv-tete[b-r8m78ywl1b]::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: radial-gradient(circle at 1px 1px, rgba(14,116,144,.16) 1px, transparent 0);
    background-size: 22px 22px;
    -webkit-mask-image: radial-gradient(120% 90% at 78% 0%, #000 0%, transparent 62%);
    mask-image: radial-gradient(120% 90% at 78% 0%, #000 0%, transparent 62%);
    pointer-events: none;
}

.nv-tete-inner[b-r8m78ywl1b] {
    position: relative;
    padding: 40px 0 30px;
}

.nv-tete h1[b-r8m78ywl1b] {
    font-size: clamp(34px, 5vw, 52px);
    font-weight: 700;
    line-height: 1.04;
    letter-spacing: -.035em;
    color: var(--nv-ink);
    margin: 0;
    text-wrap: balance;
}

/* ---------- menu des chapitres ---------- */
.nv-nav[b-r8m78ywl1b] {
    position: sticky;
    top: 0;
    z-index: 30;
    background: rgba(246,248,250,.92);
    -webkit-backdrop-filter: saturate(1.5) blur(10px);
    backdrop-filter: saturate(1.5) blur(10px);
    padding: 14px 0;
    box-shadow: 0 1px 0 rgba(227,233,239,.9);
}

.nv-segments[b-r8m78ywl1b] {
    position: relative;
    display: flex;
    gap: 3px;
    background: var(--nv-surface-2);
    border: 1px solid var(--nv-line);
    border-radius: 14px;
    padding: 7px;
    overflow-x: auto;
    scrollbar-width: none;
}

.nv-segments[b-r8m78ywl1b]::-webkit-scrollbar {
    display: none;
}

/* La pastille active est portée par le bouton lui-même, pas par un élément qui
   glisse : la page est pilotée en C#, sans JavaScript ni interopérabilité. La
   transition sur le fond suffit à donner le mouvement. */
.nv-seg[b-r8m78ywl1b] {
    position: relative;
    appearance: none;
    border: 0;
    cursor: pointer;
    font-family: inherit;
    font-size: 14.5px;
    font-weight: 600;
    letter-spacing: -.005em;
    color: var(--nv-muted);
    white-space: nowrap;
    padding: 11px 20px;
    border-radius: 10px;
    background: transparent;
    box-shadow: none;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    transition: background-color .28s ease, box-shadow .28s ease, color .2s ease;
}

.nv-seg:hover[b-r8m78ywl1b] {
    color: var(--nv-ink);
}

.nv-seg.nv-actif[b-r8m78ywl1b] {
    color: var(--nv-ink);
    background: var(--nv-paper);
    box-shadow: var(--nv-ombre-pill);
}

.nv-seg:focus-visible[b-r8m78ywl1b] {
    outline: 2px solid #38bdf8;
    outline-offset: 2px;
}

/* --- la chaleur du chapitre marqué « nouveau », et rien d'autre --- */
.nv-seg-nouveau[b-r8m78ywl1b] {
    color: var(--nv-heat-ink);
}

.nv-seg-nouveau:hover[b-r8m78ywl1b],
.nv-seg-nouveau.nv-actif[b-r8m78ywl1b] {
    color: #6f2f06;
}

.nv-seg-nouveau.nv-actif[b-r8m78ywl1b] {
    background: linear-gradient(135deg, #fff8ee 0%, #ffffff 62%);
    box-shadow: 0 1px 2px rgba(138,61,11,.14), 0 10px 26px -10px rgba(239,108,46,.5);
}

.nv-braise[b-r8m78ywl1b] {
    position: absolute;
    inset: -5px -20px;
    border-radius: 22px;
    z-index: -1;
    background: radial-gradient(62% 78% at 50% 52%, rgba(245,158,11,.5) 0%, rgba(239,108,46,.24) 44%, rgba(239,108,46,0) 74%);
    filter: blur(8px);
    animation: nv-chaleur-b-r8m78ywl1b 3.6s ease-in-out infinite;
    pointer-events: none;
}

@keyframes nv-chaleur-b-r8m78ywl1b {
    0%, 100% { opacity: .55; transform: scale(.94); }
    50% { opacity: 1; transform: scale(1.06); }
}

.nv-tag[b-r8m78ywl1b] {
    font-size: 9.5px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #fff;
    padding: 2px 7px;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--nv-heat-1), var(--nv-heat-2));
    box-shadow: 0 2px 8px -2px rgba(239,108,46,.7);
}

/* ---------- contenu ---------- */
.nv-chapitre[b-r8m78ywl1b] {
    animation: nv-entree-b-r8m78ywl1b .34s cubic-bezier(.22,.72,.16,1) both;
}

@keyframes nv-entree-b-r8m78ywl1b {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: none; }
}

.nv-chap-tete[b-r8m78ywl1b] {
    padding: 22px 0 8px;
}

.nv h2[b-r8m78ywl1b] {
    font-size: clamp(25px, 3vw, 33px);
    font-weight: 700;
    line-height: 1.14;
    letter-spacing: -.03em;
    color: var(--nv-ink);
    margin: 0 0 10px;
    text-wrap: balance;
}

.nv h3[b-r8m78ywl1b] {
    font-size: 18px;
    font-weight: 700;
    letter-spacing: -.02em;
    color: var(--nv-ink);
    margin: 36px 0 14px;
}

.nv h4[b-r8m78ywl1b] {
    margin: 0;
}

.nv p[b-r8m78ywl1b] {
    max-width: 68ch;
    margin: 0 0 14px;
}

.nv strong[b-r8m78ywl1b] {
    color: var(--nv-ink);
    font-weight: 600;
}

.nv-meta[b-r8m78ywl1b] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin: 0 0 18px;
}

.nv-jeton[b-r8m78ywl1b] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 600;
    padding: 3px 10px;
    border-radius: 999px;
    background: var(--nv-surface-2);
    color: var(--nv-muted);
    border: 1px solid var(--nv-line);
}

.nv-jeton.nv-ok[b-r8m78ywl1b] {
    background: var(--nv-ok-soft);
    color: var(--nv-ok-ink);
    border-color: #c7ebd6;
}

.nv-jeton.nv-chaud[b-r8m78ywl1b] {
    background: var(--nv-heat-soft);
    color: var(--nv-heat-ink);
    border-color: #fbdcb4;
}

.nv-chapo[b-r8m78ywl1b] {
    font-size: 17px;
    color: var(--nv-body);
    max-width: 66ch;
    margin: 0 0 30px;
}

/* ---------- capture d'écran ---------- */
.nv-capture[b-r8m78ywl1b] {
    margin: 2px 0 26px;
    border: 1px solid var(--nv-line);
    border-radius: 14px;
    overflow: hidden;
    background: var(--nv-paper);
    box-shadow: var(--nv-ombre-douce);
}

.nv-capture img[b-r8m78ywl1b] {
    display: block;
    width: 100%;
    height: auto;
}

.nv-capture figcaption[b-r8m78ywl1b] {
    padding: 12px 18px;
    border-top: 1px solid var(--nv-line-soft);
    font-size: 13.5px;
    color: var(--nv-muted);
    background: var(--nv-surface);
}

.nv-capture figcaption b[b-r8m78ywl1b] {
    color: var(--nv-ink);
    font-weight: 600;
}

/* capture étroite, à côté d'un tableau */
.nv-capture-etroite[b-r8m78ywl1b] {
    max-width: 520px;
    margin-bottom: 0;
}

/* ---------- blocs ---------- */
.nv-grille[b-r8m78ywl1b] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(258px, 1fr));
    gap: 14px;
    margin-bottom: 8px;
}

.nv-bloc[b-r8m78ywl1b] {
    background: var(--nv-paper);
    border: 1px solid var(--nv-line);
    border-radius: 14px;
    padding: 20px 22px;
    box-shadow: var(--nv-ombre-douce);
}

.nv-bloc h4[b-r8m78ywl1b] {
    font-size: 15px;
    font-weight: 700;
    color: var(--nv-ink);
    margin: 0 0 7px;
    letter-spacing: -.01em;
}

.nv-bloc p[b-r8m78ywl1b] {
    font-size: 14px;
    color: var(--nv-muted);
    margin: 0;
    max-width: none;
}

.nv-cle[b-r8m78ywl1b] {
    display: inline-block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--nv-accent);
    margin-bottom: 9px;
}

/* ---------- le parcours d'une facture : une vraie séquence ---------- */
.nv-rail[b-r8m78ywl1b] {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    margin: 4px 0 8px;
}

.nv-pas[b-r8m78ywl1b] {
    position: relative;
    padding-right: 20px;
}

.nv-pas + .nv-pas[b-r8m78ywl1b] {
    padding-left: 20px;
}

.nv-pas + .nv-pas[b-r8m78ywl1b]::before {
    content: "";
    position: absolute;
    left: 0;
    top: 15px;
    bottom: 4px;
    width: 1px;
    background: var(--nv-line);
}

.nv-n[b-r8m78ywl1b] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 27px;
    height: 27px;
    border-radius: 9px;
    margin-bottom: 10px;
    background: linear-gradient(135deg, var(--nv-heat-1), var(--nv-heat-2));
    color: #fff;
    font-size: 12.5px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    box-shadow: 0 4px 12px -4px rgba(239,108,46,.6);
}

.nv-pas h4[b-r8m78ywl1b] {
    font-size: 14px;
    font-weight: 700;
    color: var(--nv-ink);
    margin: 0 0 5px;
    line-height: 1.32;
}

.nv-pas p[b-r8m78ywl1b] {
    font-size: 13.5px;
    color: var(--nv-muted);
    margin: 0;
    max-width: none;
}

.nv-pastille-info[b-r8m78ywl1b] {
    display: inline-block;
    margin-top: 10px;
    padding: 3px 11px;
    border-radius: 999px;
    background: var(--nv-heat-soft);
    color: var(--nv-heat-ink);
    border: 1px solid #fbdcb4;
    font-size: 11.5px;
    font-weight: 700;
    line-height: 1.5;
}

/* ---------- règles ordonnées ---------- */
.nv-regles[b-r8m78ywl1b] {
    list-style: none;
    margin: 0;
    padding: 0;
    counter-reset: nvr;
}

.nv-regles li[b-r8m78ywl1b] {
    counter-increment: nvr;
    position: relative;
    padding-left: 46px;
    margin-bottom: 18px;
}

.nv-regles li:last-child[b-r8m78ywl1b] {
    margin-bottom: 0;
}

.nv-regles li[b-r8m78ywl1b]::before {
    content: counter(nvr);
    position: absolute;
    left: 0;
    top: 0;
    width: 29px;
    height: 29px;
    border-radius: 9px;
    background: var(--nv-accent-soft);
    color: var(--nv-accent-d);
    font-size: 13px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    display: flex;
    align-items: center;
    justify-content: center;
}

.nv-regles b[b-r8m78ywl1b] {
    color: var(--nv-ink);
    font-size: 15px;
}

.nv-regles p[b-r8m78ywl1b] {
    margin: 3px 0 0;
    font-size: 14px;
    color: var(--nv-muted);
    max-width: 62ch;
}

/* ---------- encadrés ---------- */
.nv-encadre[b-r8m78ywl1b] {
    border-left: 3px solid var(--nv-accent);
    background: var(--nv-accent-soft);
    padding: 15px 20px;
    border-radius: 0 10px 10px 0;
    margin: 24px 0;
}

.nv-encadre p[b-r8m78ywl1b] {
    margin: 0;
    max-width: 66ch;
    color: var(--nv-ink);
    font-size: 14.5px;
}

.nv-encadre.nv-chaud[b-r8m78ywl1b] {
    border-left-color: var(--nv-heat-2);
    background: var(--nv-heat-soft);
}

.nv-encadre.nv-chaud p[b-r8m78ywl1b] {
    color: var(--nv-heat-ink);
}

/* ---------- pavé « Prochainement » ---------- */
.nv-avenir[b-r8m78ywl1b] {
    margin: 30px 0 4px;
    padding: 24px 26px;
    border-radius: 16px;
    background: linear-gradient(135deg, #fff6ea 0%, #fffaf3 55%, var(--nv-paper) 100%);
    border: 1px solid #f6dcbb;
}

.nv-avenir h3[b-r8m78ywl1b] {
    font-size: 21px;
    font-weight: 700;
    letter-spacing: -.02em;
    color: var(--nv-heat-ink);
    margin: 0 0 16px;
}

.nv-avenir ul[b-r8m78ywl1b] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 13px;
}

.nv-avenir li[b-r8m78ywl1b] {
    position: relative;
    padding-left: 30px;
}

.nv-avenir li[b-r8m78ywl1b]::before {
    content: "\2192";
    position: absolute;
    left: 0;
    top: -1px;
    color: var(--nv-heat-2);
    font-weight: 800;
    font-size: 17px;
}

.nv-avenir b[b-r8m78ywl1b] {
    display: block;
    color: var(--nv-ink);
    font-weight: 600;
    font-size: 15.5px;
}

.nv-avenir span[b-r8m78ywl1b] {
    color: var(--nv-muted);
    font-size: 14px;
}

/* ---------- tableaux ---------- */
.nv-tab[b-r8m78ywl1b] {
    overflow-x: auto;
    border: 1px solid var(--nv-line);
    border-radius: 14px;
    background: var(--nv-paper);
    box-shadow: var(--nv-ombre-douce);
}

.nv table[b-r8m78ywl1b] {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
    margin: 0;
}

.nv thead th[b-r8m78ywl1b] {
    text-align: left;
    font-size: 11px;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--nv-muted);
    font-weight: 800;
    padding: 12px 16px;
    background: var(--nv-surface-2);
    border-bottom: 1px solid var(--nv-line);
    white-space: nowrap;
}

.nv tbody td[b-r8m78ywl1b] {
    padding: 12px 16px;
    border-bottom: 1px solid var(--nv-line-soft);
    vertical-align: top;
}

.nv tbody tr:last-child td[b-r8m78ywl1b] {
    border-bottom: 0;
}

.nv td.nv-champ[b-r8m78ywl1b] {
    white-space: nowrap;
}

.nv td.nv-champ b[b-r8m78ywl1b] {
    display: block;
    color: var(--nv-ink);
    font-weight: 600;
}

.nv td.nv-sens[b-r8m78ywl1b] {
    color: var(--nv-body);
    min-width: 250px;
}

.nv-marque[b-r8m78ywl1b] {
    display: inline-block;
    padding: 2px 9px;
    border-radius: 999px;
    font-size: 11.5px;
    font-weight: 700;
    background: var(--nv-accent-soft);
    color: var(--nv-accent-d);
}

.nv-marque.nv-gris[b-r8m78ywl1b] {
    background: var(--nv-surface-2);
    color: var(--nv-muted);
}

.nv-marque.nv-stop[b-r8m78ywl1b] {
    background: #fee4e2;
    color: #a5301f;
}

/* ---------- deux colonnes ---------- */
.nv-duo[b-r8m78ywl1b] {
    display: grid;
    grid-template-columns: minmax(0, 520px) minmax(0, 1fr);
    gap: 30px;
    align-items: start;
}

.nv-duo h3:first-child[b-r8m78ywl1b] {
    margin-top: 0;
}

.nv-note-bas[b-r8m78ywl1b] {
    margin-top: 46px;
    padding-top: 20px;
    border-top: 1px solid var(--nv-line);
    font-size: 13px;
    color: var(--nv-muted);
    max-width: 76ch;
}

/* ---------- confort ---------- */
@media (prefers-reduced-motion: reduce) {
    .nv-chapitre[b-r8m78ywl1b] {
        animation: none;
    }

    .nv-braise[b-r8m78ywl1b] {
        animation: none;
        opacity: .8;
    }

    .nv-seg[b-r8m78ywl1b] {
        transition: none;
    }
}

@media (max-width: 900px) {
    .nv-rail[b-r8m78ywl1b] {
        grid-template-columns: 1fr 1fr;
        gap: 22px 0;
    }

    .nv-pas + .nv-pas[b-r8m78ywl1b]::before {
        display: none;
    }

    .nv-pas[b-r8m78ywl1b],
    .nv-pas + .nv-pas[b-r8m78ywl1b] {
        padding: 0 16px 0 0;
    }

    .nv-duo[b-r8m78ywl1b] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 600px) {
    .nv-rail[b-r8m78ywl1b] {
        grid-template-columns: 1fr;
    }

    .nv-page[b-r8m78ywl1b] {
        padding-left: 18px;
        padding-right: 18px;
    }
}
/* /Pages/InvoiceEdit/InvoiceEditV2.razor.rz.scp.css */
/* Aperçu PDF reciTAL : hauteur viewport DÉFINIE (le DxPdfViewer ne propage pas un height:100% chaîné). */
[b-yqcl4ouvql] .recital-pdf {
    height: 78vh;
    width: 100%;
}
/* /Pages/PortailRfe/DepotEmissionRfe.razor.rz.scp.css */
/* Popup de dépôt (DepotEmissionRfe) — feuille ISOLÉE du composant : DxPopup rend son contenu hors de l'arbre de
   la page, les règles en ::deep de PortailRfe.razor.css (portées par .rfe-page) ne l'atteignent pas. Ici, chaque
   élément écrit dans ce .razor porte l'attribut de portée, où qu'il soit affiché. */

.rfe-em-select-societe[b-zun2q0tz5c] {
    min-width: 18rem;
    width: 100%;
}

/* Avertissement sans jaune sur blanc : fond pêche, encre foncée. */
.rfe-em-avert[b-zun2q0tz5c] {
    font-size: 12.5px;
    padding: .35rem .6rem;
    background: #ffe5d0;
    border: 1px solid #fd7e14;
    border-radius: var(--bs-border-radius);
    color: #5c2c00;
}

/* Glisser-déposer sans JavaScript (DA-14) : l'input file multiple couvre toute la zone, transparent ; un dépôt
   de fichiers sur lui le remplit nativement, un clic ouvre le sélecteur. */
.rfe-em-depot-zone[b-zun2q0tz5c] {
    position: relative;
    min-height: 7rem;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: .75rem 1rem;
    border: 2px dashed #5f368d;
    border-radius: .5rem;
    background: #f7f3fb;
    color: #3d1f66;
}

.rfe-em-depot-zone:hover[b-zun2q0tz5c] {
    background: #efe6f7;
}

.rfe-em-depot-occupee[b-zun2q0tz5c] {
    border-style: solid;
    background: #f8f9fa;
}

/* Pendant l'envoi l'input reste présent (Blazor y lit les fichiers) mais ne reçoit plus ni clic ni dépôt. */
.rfe-em-depot-occupee[b-zun2q0tz5c]  .rfe-em-depot-input {
    pointer-events: none;
}

/* L'input est rendu par le composant InputFile : il ne porte pas l'attribut de portée, d'où ::deep. */
.rfe-em-depot-zone[b-zun2q0tz5c]  .rfe-em-depot-input {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}

.rfe-em-resultats[b-zun2q0tz5c] {
    max-height: 40vh;
    overflow-y: auto;
}

.rfe-em-fichier[b-zun2q0tz5c] {
    max-width: 22rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rfe-em-issue-ok[b-zun2q0tz5c] {
    color: #0f5132;
    font-weight: 600;
}

.rfe-em-issue-refus[b-zun2q0tz5c] {
    color: #8a4b08;
    font-weight: 600;
}

.rfe-em-issue-erreur[b-zun2q0tz5c] {
    color: #842029;
    font-weight: 600;
}

/* Récapitulatif de la soumission : encadré vert pâle, lignes colorées (jamais de jaune sur blanc). */
.rfe-em-recap[b-zun2q0tz5c] {
    padding: .6rem .8rem;
    background: #eaf6ee;
    border: 1px solid #198754;
    border-radius: var(--bs-border-radius);
}

.rfe-em-recap-ok[b-zun2q0tz5c] {
    color: #0f5132;
}

.rfe-em-recap-avert[b-zun2q0tz5c] {
    color: #8a4b08;
}

.rfe-em-recap-ko[b-zun2q0tz5c] {
    color: #842029;
}
/* /Pages/PortailRfe/EmissionRfe.razor.rz.scp.css */
/*
   Feuille ISOLÉE de la fiche d'une facture émise (Pages/PortailRfe/EmissionRfe.razor, route /rfe/emission/{id})
   — classes préfixées rfe-em-. Page routable distincte de PortailRfe.razor : l'isolation ne traverse pas deux
   pages, d'où sa propre feuille. La pastille a la sienne (PastilleIndicateur.razor.css). Aucun style dans le
   .razor (un bloc style y serait global).
*/

.rfe-em-fiche[b-xlmkp5aery] {
    font-size: 13px;
    line-height: 1.4;
}

/* Contenu sur fond gris clair (charte §2). */
.rfe-em-fond[b-xlmkp5aery] {
    background: #f5f6f8;
    min-height: 60vh;
}

.rfe-em-barre[b-xlmkp5aery] {
    z-index: 1020;
}

.rfe-em-barre-gauche[b-xlmkp5aery] {
    min-width: 0;
}

.rfe-em-barre-titre[b-xlmkp5aery] {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 40vw;
}

.rfe-em-fmt-badge[b-xlmkp5aery] {
    font-size: 11px;
    font-weight: 600;
}

/* Boutons du bandeau d'indicateurs : pastille + libellé, sans bordure, un survol discret. */
.rfe-em-saut[b-xlmkp5aery] {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    padding: .1rem .4rem;
    border: 1px solid transparent;
    font-size: 12px;
}

.rfe-em-saut:hover[b-xlmkp5aery],
.rfe-em-saut:focus-visible[b-xlmkp5aery] {
    border-color: var(--bs-border-color);
    background: #f8f9fa;
}

/* Les zones ne passent pas sous la barre sticky quand on y saute (rfe-emission.js). */
.rfe-em-section[b-xlmkp5aery] {
    scroll-margin-top: 4.5rem;
}

/* En-tête d'une zone en anomalie (charte §3) : rouge saumon pour un bloquant, orange pâle pour un avertissement. */
.rfe-em-entete-rouge[b-xlmkp5aery] {
    background: #f8d7da !important;
}

.rfe-em-entete-orange[b-xlmkp5aery] {
    background: #ffe5d0 !important;
}

.rfe-em-dl dt[b-xlmkp5aery] {
    font-weight: 400;
}

.rfe-em-dl dd[b-xlmkp5aery] {
    margin-bottom: .2rem;
    word-break: break-word;
}

/* Charte §12 : chiffres en tabular-nums. */
.rfe-em-montants dd[b-xlmkp5aery],
.rfe-em-num[b-xlmkp5aery] {
    font-variant-numeric: tabular-nums;
}

.rfe-em-num[b-xlmkp5aery] {
    text-align: right;
    white-space: nowrap;
}

.rfe-em-mentions dd[b-xlmkp5aery] {
    white-space: pre-wrap;
}

.rfe-em-detail-table[b-xlmkp5aery] {
    font-size: 12.5px;
}

.rfe-em-libelle[b-xlmkp5aery] {
    max-width: 28rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Messages de contrôle : encres lisibles sur blanc, jamais de jaune ; un liseré de 3 px dit la gravité. */
.rfe-em-messages[b-xlmkp5aery] {
    padding: 0;
}

.rfe-em-msg[b-xlmkp5aery] {
    padding: .1rem .5rem;
    margin-bottom: .15rem;
    border-left: 3px solid #adb5bd;
}

.rfe-em-msg-rouge[b-xlmkp5aery] {
    border-left-color: #dc3545;
    color: #842029;
}

.rfe-em-msg-orange[b-xlmkp5aery] {
    border-left-color: #fd7e14;
    color: #8a4b08;
}

.rfe-em-msg-vert[b-xlmkp5aery] {
    border-left-color: #198754;
    color: #0f5132;
}

/* Bandeau d'état orange (doublon, bloquée) : fond pêche, encre foncée — pas le jaune d'alert-warning. */
.rfe-em-alerte-orange[b-xlmkp5aery] {
    background: #ffe5d0;
    border: 1px solid #fd7e14;
    color: #5c2c00;
}

/* État « Warning » : text-warning de Bootstrap est jaune — illisible sur blanc (charte). */
.rfe-em-etat.text-warning[b-xlmkp5aery] {
    color: #b45309 !important;
}

.rfe-em-etat[b-xlmkp5aery] {
    font-weight: 600;
}

/* Deux volets (24/09) : zones lues à gauche, aperçu du document à droite. L'aperçu reste en place pendant que
   la colonne de gauche défile (sticky sous la barre ; c'est .content qui défile, pas la fenêtre). Sous 1200 px,
   les volets s'empilent et l'aperçu passe dessous. */
.rfe-em-corps[b-xlmkp5aery] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: start;
    background: #f5f6f8;
}

.rfe-em-gauche[b-xlmkp5aery] {
    min-width: 0;
}

.rfe-em-apercu[b-xlmkp5aery] {
    position: sticky;
    top: 3.4rem;
    height: calc(100vh - 7rem);
    padding: 1rem 1rem 1rem 0;
}

.rfe-em-apercu-cadre[b-xlmkp5aery] {
    display: block;
    width: 100%;
    height: 100%;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: 6px;
    background: #fff;
}

@media (max-width: 1199.98px) {
    .rfe-em-corps[b-xlmkp5aery] {
        grid-template-columns: minmax(0, 1fr);
    }

    .rfe-em-apercu[b-xlmkp5aery] {
        position: static;
        height: 80vh;
        padding: 0 1rem 1rem;
    }
}

/* Onglets de l'aperçu (24/09) : le document, XML, IA Sardine, données JSON. Soulignement de l'onglet actif,
   pas de nav-tabs Bootstrap (charte des onglets maison). */
.rfe-em-apercu[b-xlmkp5aery] {
    display: flex;
    flex-direction: column;
}

.rfe-em-onglets[b-xlmkp5aery] {
    display: flex;
    gap: .25rem;
    margin-bottom: .4rem;
    flex: none;
}

.rfe-em-onglet[b-xlmkp5aery] {
    border: 1px solid var(--bs-border-color, #dee2e6);
    background: #fff;
    border-radius: 4px;
    padding: .15rem .6rem;
    font-size: 12.5px;
    color: #495057;
}

.rfe-em-onglet:hover[b-xlmkp5aery] {
    background: #f1f3f5;
}

.rfe-em-onglet-actif[b-xlmkp5aery] {
    border-color: #5f368d;
    color: #5f368d;
    font-weight: 600;
    box-shadow: inset 0 -2px 0 #5f368d;
}

.rfe-em-apercu-corps[b-xlmkp5aery] {
    position: relative;
    flex: 1 1 auto;
    min-height: 0;
}

.rfe-em-masque[b-xlmkp5aery] {
    display: none;
}

.rfe-em-apercu-texte[b-xlmkp5aery] {
    height: 100%;
    overflow: auto;
    background: #fff;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: 6px;
    padding: .5rem;
}

/* Champs colorés d'après le contrôle (24/09) : la cellule de valeur porte la couleur, un filet à gauche la double
   (la couleur ne suffit jamais seule, le texte du message est en info-bulle). */
.rfe-em-champ[b-xlmkp5aery] {
    padding: 0 .35rem;
    border-radius: 3px;
    border-left: 3px solid transparent;
}

.rfe-em-champ-rouge[b-xlmkp5aery] {
    background: #f8d7da;
    border-left-color: #dc3545;
    color: #842029;
}

.rfe-em-champ-orange[b-xlmkp5aery] {
    background: #ffe5d0;
    border-left-color: #fd7e14;
    color: #7a3e00;
}

.rfe-em-champ-vert[b-xlmkp5aery] {
    background: #d1e7dd;
    border-left-color: #198754;
    color: #0f5132;
}

/* Édition de la strate utilisateur (§20, itération 2) : champs compacts, la couleur du contrôle reste visible. */
.rfe-em-saisie[b-xlmkp5aery] {
    font-size: 12.5px;
}

.rfe-em-saisie.rfe-em-champ-rouge[b-xlmkp5aery],
.rfe-em-saisie.rfe-em-champ-orange[b-xlmkp5aery],
.rfe-em-saisie.rfe-em-champ-vert[b-xlmkp5aery] {
    padding-left: .5rem;
}

.rfe-em-saisie-date[b-xlmkp5aery] {
    max-width: 11rem;
}

.rfe-em-saisie-num[b-xlmkp5aery] {
    max-width: 8rem;
    text-align: right;
}

.rfe-em-saisie-court[b-xlmkp5aery] {
    max-width: 5rem;
}

.rfe-em-bandeau-edition[b-xlmkp5aery] {
    font-size: 12.5px;
}

/* Popups de la fiche (annuaire, modèles) : fenêtre maison au-dessus d'un voile, sans DxPopup (pas de relais de
   visibilité à gérer). */
.rfe-em-modal-fond[b-xlmkp5aery] {
    position: fixed;
    inset: 0;
    z-index: 1050;
    background: rgba(0, 0, 0, .25);
}

.rfe-em-modal[b-xlmkp5aery] {
    position: fixed;
    z-index: 1060;
    top: 8vh;
    left: 50%;
    transform: translateX(-50%);
    width: min(900px, 94vw);
    max-height: 84vh;
    overflow: auto;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 1rem 3rem rgba(0, 0, 0, .25);
    padding: 1rem;
    font-size: 13px;
}

.rfe-em-modal-liste[b-xlmkp5aery] {
    max-height: 50vh;
    overflow: auto;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: 6px;
}

/* Modèles (§20.4) : bouton « ↺ » compact à droite du champ, dérouleur du modèle dans le bandeau d'édition. */
.rfe-em-reprendre[b-xlmkp5aery] {
    flex: none;
    padding: 0 .4rem;
    line-height: 1.6;
}

.rfe-em-reprendre-zone[b-xlmkp5aery] {
    font-size: 11.5px;
}

.rfe-em-select-modele[b-xlmkp5aery] {
    width: auto;
    min-width: 12rem;
}

/* Code EN 16931 devant chaque libellé (BT-1, BG-23…) : petit, à chasse fixe, discret. */
.rfe-em-bt[b-xlmkp5aery] {
    display: inline-block;
    min-width: 3.4rem;
    margin-right: .35rem;
    padding: 0 .25rem;
    border-radius: 3px;
    background: #eef0f3;
    color: #495057;
    font-family: SFMono-Regular, Consolas, "Liberation Mono", monospace;
    font-size: 10.5px;
    font-weight: 400;
    text-align: center;
}

/* Indicateurs et actions en tête de la colonne de saisie, collés sous la barre du haut pendant le défilement. */
.rfe-em-actions[b-xlmkp5aery] {
    position: sticky;
    top: 3.4rem;
    z-index: 1010;
    margin: -.25rem 0 .75rem;
    padding: .4rem .5rem;
    background: #fff;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: 6px;
    box-shadow: 0 .125rem .25rem rgba(0, 0, 0, .06);
}

/* Carte pliable (Dépôt) : en-tête cliquable, chevron. */
.rfe-em-pliable[b-xlmkp5aery] {
    cursor: pointer;
    user-select: none;
}

.rfe-em-pliable:hover[b-xlmkp5aery] {
    background: #f8f9fa !important;
}

.rfe-em-chevron[b-xlmkp5aery] {
    width: 1rem;
    color: #6c757d;
}

.rfe-em-modal-petit[b-xlmkp5aery] {
    width: min(520px, 94vw);
}

/* INV-611 : menu des SIREN proposés (à côté de « Renseigner le destinataire »), posé au-dessus de la fiche. */
.rfe-em-menu-sirens[b-xlmkp5aery] {
    top: 100%;
    left: 0;
    z-index: 20;
    min-width: 9rem;
}
/* /Pages/PortailRfe/FactureRfe.razor.rz.scp.css */
/* Feuille ISOLÉE de la page de détail du portail RFE (Pages/PortailRfe/FactureRfe.razor) — classes
   préfixées rfe-. Page routable distincte de PortailRfe.razor : l'isolation ne traverse pas deux pages,
   d'où sa propre feuille (courte : l'essentiel est du Bootstrap, comme InvoiceEditV2). */

.rfe-detail[b-wo81dm4mcu] {
    font-size: 13px;
    line-height: 1.4;
}

/* Contenu sur fond gris clair (charte §2). */
.rfe-fond[b-wo81dm4mcu] {
    background: #f5f6f8;
    min-height: 60vh;
}

.rfe-barre-titre[b-wo81dm4mcu] {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 60vw;
}

.rfe-barre-gauche[b-wo81dm4mcu] {
    min-width: 0;
}

/* Cartes libellé / valeur : le libellé en gris fin, la valeur dans la police courante. */
.rfe-dl dt[b-wo81dm4mcu] {
    font-weight: 400;
}

.rfe-dl dd[b-wo81dm4mcu] {
    margin-bottom: .2rem;
}

/* Charte §12 : chiffres en tabular-nums. */
.rfe-montants dd[b-wo81dm4mcu] {
    font-variant-numeric: tabular-nums;
}

/* Message du connecteur (cause du bac) : tel quel, retours à la ligne conservés. */
.rfe-message[b-wo81dm4mcu] {
    white-space: pre-wrap;
    word-break: break-word;
}

/* Code EN 16931 devant un libellé (INV-622) : même pastille grise que la fiche d'une facture émise (.rfe-em-bt). */
.rfe-bt[b-wo81dm4mcu] {
    display: inline-block;
    min-width: 3.4rem;
    margin-right: .35rem;
    padding: 0 .25rem;
    border-radius: 3px;
    background: #eef0f3;
    color: #495057;
    font-family: SFMono-Regular, Consolas, "Liberation Mono", monospace;
    font-size: 10.5px;
    font-weight: 400;
    text-align: center;
    cursor: help;
}
/* /Pages/PortailRfe/MenuActionsRfe.razor.rz.scp.css */
/* Menu d'actions maison (Pages/PortailRfe/MenuActionsRfe.razor) — feuille ISOLÉE, classes préfixées ma-.
   Même mécanique que le menu BAP de ReceptionV2 : ancre relative, menu absolu, voile fixe qui ferme
   au clic n'importe où. Le menu s'ouvre calé à DROITE (le bouton est toujours en bout de ligne ou
   de barre : ouvert à gauche il déborderait). */

.ma-ancre[b-vch43ikwki] {
    position: relative;
    display: inline-block;
}

.ma-bouton[b-vch43ikwki] {
    line-height: 1.1;
    padding-top: .15rem;
    padding-bottom: .15rem;
}

.ma-menu[b-vch43ikwki] {
    position: absolute;
    right: 0;
    left: auto;
    top: 100%;
    z-index: 1050;
    min-width: 12rem;
    margin-top: 2px;
    font-size: 13px;
}

.ma-menu .dropdown-item[b-vch43ikwki] {
    padding: 5px 12px;
}

.ma-fond[b-vch43ikwki] {
    position: fixed;
    inset: 0;
    z-index: 1040;
    background: transparent;
}

/* Icônes des entrées (INV-621) : SVG au trait, couleur du texte ; vert pour le pointage, rouge pour le rejet. */
.ma-item[b-vch43ikwki] {
    display: flex;
    align-items: center;
    gap: .5rem;
}

.ma-icone[b-vch43ikwki] {
    flex: 0 0 auto;
    width: 15px;
    height: 15px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.4;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.ma-icone-vert[b-vch43ikwki] {
    stroke: #198754;
}

.ma-danger[b-vch43ikwki] {
    color: #b02a37;
}

.ma-danger:hover[b-vch43ikwki],
.ma-danger:focus[b-vch43ikwki] {
    color: #fff;
    background-color: #b02a37;
}

.ma-item:disabled[b-vch43ikwki] {
    color: #adb5bd;
    cursor: not-allowed;
}

.ma-bientot[b-vch43ikwki] {
    margin-left: auto;
    padding: 0 .35rem;
    border-radius: 4px;
    background: #e9ecef;
    color: #6c757d;
    font-size: 11px;
}
/* /Pages/PortailRfe/PastilleIndicateur.razor.rz.scp.css */
/*
   Feuille ISOLÉE de la pastille d'indicateur (PastilleIndicateur.razor) — la même pastille sert la liste des
   factures sortantes (PortailRfe) et la fiche (EmissionRfe) : une seule feuille, aucune règle recopiée d'une
   page à l'autre (charte §13). Palette charte §14 : vert #198754, orange #fd7e14, rouge #dc3545, neutre
   #adb5bd — portée par les dessins SVG eux-mêmes (une forme par couleur : rond coché, panneau bordé de rouge,
   triangle orange, rond au tiret), jamais de jaune sur blanc.
*/

.rfe-em-p[b-dohxui85lj] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 0;
    text-decoration: none;
    vertical-align: middle;
    flex: none;
    user-select: none;
    border-radius: 3px;
}

.rfe-em-p svg[b-dohxui85lj] {
    display: block;
}

a.rfe-em-p:hover[b-dohxui85lj],
a.rfe-em-p:focus-visible[b-dohxui85lj] {
    outline: 2px solid #5f368d;
    outline-offset: 1px;
    text-decoration: none;
}
/* /Pages/PortailRfe/PointageRfe.razor.rz.scp.css */
/*
   Feuille ISOLÉE de PointageRfe (extranet-RFE.md §17, INV-620) : le cercle de pointage, le panneau d'historique au
   survol et la confirmation de dépointage. Vert = charte « OK » (Bootstrap success), gris = neutre.
*/

.rfe-pt[b-z87of5yxdv] {
    display: inline-flex;
    align-items: center;
    line-height: 1;
}

.rfe-pt-bouton[b-z87of5yxdv] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    cursor: default;
}

.rfe-pt-bouton.rfe-pt-modifiable[b-z87of5yxdv] {
    cursor: pointer;
}

.rfe-pt-bouton:focus-visible[b-z87of5yxdv] {
    outline: 2px solid #198754;
    outline-offset: 1px;
}

/* À traiter : cercle au contour gris, coche invisible ; au survol d'un cercle modifiable, contour vert et coche pâle. */
.rfe-pt-vide[b-z87of5yxdv] {
    fill: #fff;
    stroke: #adb5bd;
    stroke-width: 1.5;
}

.rfe-pt-coche-fantome[b-z87of5yxdv] {
    fill: none;
    stroke: transparent;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.rfe-pt-modifiable:hover .rfe-pt-vide[b-z87of5yxdv] {
    stroke: #198754;
}

.rfe-pt-modifiable:hover .rfe-pt-coche-fantome[b-z87of5yxdv] {
    stroke: #a3cfbb;
}

/* Traitée : pastille verte pleine, coche blanche. */
.rfe-pt-plein[b-z87of5yxdv] {
    fill: #198754;
}

.rfe-pt-coche[b-z87of5yxdv] {
    fill: none;
    stroke: #fff;
    stroke-width: 2.2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.rfe-pt-modifiable.rfe-pt-traitee:hover .rfe-pt-plein[b-z87of5yxdv] {
    fill: #146c43;
}

/* Panneau d'historique : position fixe posée en ligne (coordonnées du pointeur). */
.rfe-pt-panneau[b-z87of5yxdv] {
    position: fixed;
    z-index: 1070;
    width: max-content;
    min-width: 16rem;
    max-width: 26rem;
    padding: .55rem .7rem;
    background: #fff;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: 6px;
    font-size: .85rem;
    pointer-events: none;
    white-space: normal;
    text-align: left;
}

.rfe-pt-panneau-titre[b-z87of5yxdv] {
    font-weight: 600;
    margin-bottom: .35rem;
}

.rfe-pt-histo[b-z87of5yxdv] {
    list-style: none;
    margin: 0;
    padding: 0;
}

.rfe-pt-histo li[b-z87of5yxdv] {
    display: flex;
    gap: .4rem;
    align-items: baseline;
    padding: .1rem 0;
}

.rfe-pt-histo-type[b-z87of5yxdv] {
    display: inline-block;
    min-width: 5.2rem;
    padding: 0 .35rem;
    border-radius: 4px;
    font-size: .78rem;
    font-weight: 600;
    text-align: center;
}

.rfe-pt-histo-pointe[b-z87of5yxdv] {
    background: #d1e7dd;
    color: #0f5132;
}

.rfe-pt-histo-depointe[b-z87of5yxdv] {
    background: #e9ecef;
    color: #495057;
}

/* Confirmation de dépointage (patron des popups de la fiche d'émission). */
.rfe-pt-modal-fond[b-z87of5yxdv] {
    position: fixed;
    inset: 0;
    z-index: 1050;
    background: rgba(0, 0, 0, .25);
}

.rfe-pt-modal[b-z87of5yxdv] {
    position: fixed;
    z-index: 1060;
    top: 12vh;
    left: 50%;
    transform: translateX(-50%);
    width: min(480px, 94vw);
    padding: 1rem;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 .5rem 1.5rem rgba(0, 0, 0, .2);
    text-align: left;
    white-space: normal;
}
/* /Pages/PortailRfe/PortailRfe.razor.rz.scp.css */
/*
   Feuille ISOLÉE du portail RFE (Pages/PortailRfe/PortailRfe.razor + son composant EntrantesRfe) —
   classes préfixées rfe-. Toutes les règles sont en ::deep depuis la racine .rfe-page : le composant
   enfant EntrantesRfe et le rendu DevExpress des onglets ne portent pas l'attribut d'isolation de la page.
   Aucun <style> dans un .razor (un tel bloc serait global). La page de détail (FactureRfe.razor) est une
   autre page routable : elle a sa propre feuille, l'isolation ne traverse pas deux pages.

   ⚠ Les popups DevExpress sont rendus hors de la racine : leur contenu se stylise en Bootstrap ou en ligne.
*/

/* Tenue en 1080p (§5.1) : 25 lignes de table-sm en 13 px tiennent sans ascenseur vertical. */
.rfe-page[b-p2hvi4eaex] {
    font-size: 13px;
    line-height: 1.4;
    padding-bottom: 1.5rem;
}

.rfe-titre[b-p2hvi4eaex] {
    font-size: 1.35rem;
    margin: 0 0 .75rem;
}

/* Charte §4 : un onglet non courant ne porte aucun fond (le thème en pose un au survol / focus). */
[b-p2hvi4eaex] .rfe-onglets .dxbl-tabs-item:not(.dxbl-active) {
    background-color: transparent !important;
}

[b-p2hvi4eaex] .rfe-onglets .dxbl-tabs-item {
    font-size: .9rem;
}

/* Filtres : une ligne et demie de champs form-control-sm, largeurs fixées pour que la barre ne danse pas. */
[b-p2hvi4eaex] .rfe-filtres .form-label {
    margin-bottom: .15rem;
}

[b-p2hvi4eaex] .rfe-filtres .rfe-texte {
    width: 13rem;
}

[b-p2hvi4eaex] .rfe-filtres .rfe-select {
    width: auto;
    min-width: 9rem;
}

[b-p2hvi4eaex] .rfe-filtres .rfe-select-court {
    width: auto;
    min-width: 7rem;
}

/* Dérouleur à cases des adresses (D46, D57) — même mécanique que MenuActionsRfe : ancre relative, voile fixe
   qui ferme au clic n'importe où, panneau absolu. Ouvert à GAUCHE (le bouton est en début de barre). Une
   vingtaine d'adresses chez HGO : le panneau défile au-delà de 60 % de la hauteur, jamais la page. */
[b-p2hvi4eaex] .rfe-adresses {
    position: relative;
    display: inline-block;
}

[b-p2hvi4eaex] .rfe-adresses-bouton {
    line-height: 1.4;
    white-space: nowrap;
}

[b-p2hvi4eaex] .rfe-adresses-fond {
    position: fixed;
    inset: 0;
    z-index: 1040;
    background: transparent;
}

[b-p2hvi4eaex] .rfe-adresses-panneau {
    position: absolute;
    left: 0;
    top: 100%;
    z-index: 1050;
    margin-top: 2px;
    min-width: 16rem;
    max-height: 60vh;
    overflow-y: auto;
    padding: .35rem .6rem;
    background: #fff;
    border: 1px solid var(--bs-border-color);
    border-radius: var(--bs-border-radius);
    font-size: 13px;
}

[b-p2hvi4eaex] .rfe-adresses-entete {
    display: flex;
    align-items: center;
    gap: .4rem;
    padding-bottom: .3rem;
    margin-bottom: .3rem;
    border-bottom: 1px solid var(--bs-border-color);
}

[b-p2hvi4eaex] .rfe-adresses-ligne {
    display: flex;
    align-items: center;
    gap: .45rem;
    padding: .15rem 0;
    margin: 0;
    white-space: nowrap;
    cursor: pointer;
}

[b-p2hvi4eaex] .rfe-adresses-ligne .form-check-input {
    margin: 0;
    flex: none;
}

/* Liste : table-sm compacte ; le corps de page ne défile jamais horizontalement (§5.1) — c'est le
   conteneur .table-responsive qui prend l'ascenseur, en dessous de 1600 px. */
[b-p2hvi4eaex] .rfe-table {
    font-size: 13px;
    margin-bottom: .5rem;
}

[b-p2hvi4eaex] .rfe-table > :not(caption) > * > * {
    padding: .25rem .45rem;
}

[b-p2hvi4eaex] .rfe-table thead th {
    white-space: nowrap;
}

[b-p2hvi4eaex] .rfe-num {
    font-variant-numeric: tabular-nums;
    text-align: right;
    white-space: nowrap;
}

[b-p2hvi4eaex] .rfe-nowrap {
    white-space: nowrap;
}

[b-p2hvi4eaex] .rfe-fournisseur {
    max-width: 22rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Entête de groupe (§5.1) : bg-light + fw-semibold de Bootstrap, un peu d'air au-dessus. */
[b-p2hvi4eaex] .rfe-table tr.rfe-groupe > td {
    padding-top: .35rem;
    padding-bottom: .3rem;
}

/* Bouton « Export » (ex-« Zip ») de l'entête, entrantes et sortantes : la hauteur d'une ligne, en graisse normale (l'entête est en semi-gras) ; vert plein
   (charte §5, action principale) pour qu'on le voie — demande du 2026-09-22. */
[b-p2hvi4eaex] .rfe-table tr.rfe-groupe .rfe-zip {
    padding: 0 .5rem;
    font-size: 12px;
    line-height: 1.5;
    font-weight: 400;
    white-space: nowrap;
}

/* Pendant un rechargement, la liste précédente reste visible mais estompée : moins de sauts qu'un vide. */
[b-p2hvi4eaex] .rfe-perimee {
    opacity: .55;
    pointer-events: none;
}

[b-p2hvi4eaex] .rfe-chargement {
    padding: .25rem .5rem .5rem;
}

/* ═══════════════ Onglet « Factures sortantes » (INV-525, lot 1) — préfixe rfe-em- ═══════════════
   SortantesRfe et DepotEmissionRfe sont des composants enfants : leurs règles sont ici, en ::deep depuis
   .rfe-page, comme celles des entrantes. La pastille d'indicateur a sa propre feuille (PastilleIndicateur). */

/* Lecture seule (D13) : une ligne discrète à la place de la zone de dépôt. */
[b-p2hvi4eaex] .rfe-em-lecture-seule {
    font-size: 12.5px;
    color: #495057;
    padding: .35rem .6rem;
    background: #fff;
    border: 1px solid var(--bs-border-color);
    border-left: 4px solid #adb5bd;
    border-radius: var(--bs-border-radius);
}

/* Liste à une ligne par facture (24/09). Le détail se lit au survol (SurvolDetail) : la cellule ne tronque
   pas elle-même (overflow visible, sinon la bulle serait coupée), c'est son texte qui se tronque. */
[b-p2hvi4eaex] .rfe-em-liste {
    width: 100%;
}

[b-p2hvi4eaex] .rfe-em-table > tbody > tr > td {
    overflow: visible;
}

[b-p2hvi4eaex] .rfe-em-table .rfe-em-ind {
    width: 5.5rem;
}

[b-p2hvi4eaex] .rfe-em-texte {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

[b-p2hvi4eaex] .rfe-em-partie {
    white-space: nowrap;
}

[b-p2hvi4eaex] .rfe-em-partie .rfe-em-texte {
    max-width: 16rem;
}

/* INV-567 : triangle devant le nom ; sans alerte, sa place reste réservée pour que les noms s'alignent. */
[b-p2hvi4eaex] .rfe-em-alerte {
    display: inline-flex;
    flex: none;
}

[b-p2hvi4eaex] .rfe-em-alerte-vide {
    visibility: hidden;
}

[b-p2hvi4eaex] .rfe-em-format {
    font-size: 12px;
    color: #495057;
}

[b-p2hvi4eaex] .rfe-em-numero {
    font-weight: 600;
}

/* Un avoir se voit sans survol : il change le sens des montants. */
[b-p2hvi4eaex] .rfe-em-avoir {
    font-size: 11px;
    font-weight: 600;
    padding: 0 .35rem;
    border-radius: 3px;
    background: #e7f1ff;
    color: #0b5ed7;
    flex: none;
}

[b-p2hvi4eaex] .rfe-em-etat {
    font-weight: 600;
    white-space: nowrap;
}

[b-p2hvi4eaex] .rfe-em-premier {
    margin-left: .4rem;
    font-size: 12px;
    font-weight: 400;
}

/* Contenu des bulles de détail (fragments de SortantesRfe, rendus dans SurvolDetail). */
[b-p2hvi4eaex] .rfe-em-sv-titre {
    font-weight: 600;
    margin-bottom: .3rem;
    padding-bottom: .25rem;
    border-bottom: 1px solid #e9ecef;
}

[b-p2hvi4eaex] .rfe-em-sv-ligne {
    display: flex;
    gap: .6rem;
}

[b-p2hvi4eaex] .rfe-em-sv-lib {
    flex: none;
    width: 5.2rem;
    color: #6c757d;
}

[b-p2hvi4eaex] .rfe-em-sv-ind {
    margin-top: .45rem;
    padding-top: .4rem;
    border-top: 1px solid #e9ecef;
}

[b-p2hvi4eaex] .rfe-em-sv-ind-tete {
    display: flex;
    align-items: center;
    gap: .4rem;
    font-weight: 600;
}

[b-p2hvi4eaex] .rfe-em-sv-msgs {
    margin: .3rem 0 0;
    padding-left: 1.1rem;
}

[b-p2hvi4eaex] .rfe-em-sv-msgs li + li {
    margin-top: .15rem;
}

[b-p2hvi4eaex] .rfe-em-sv-rouge {
    color: #b02a37;
}

[b-p2hvi4eaex] .rfe-em-sv-orange {
    color: #9a4a00;
}

/* État « Warning » (doublon, lecture différée) : text-warning est jaune — illisible sur blanc (charte). */
[b-p2hvi4eaex] .rfe-em-table .text-warning {
    color: #b45309 !important;
}

/* ─── Zone de dépôt (DepotEmissionRfe) ─── */
[b-p2hvi4eaex] .rfe-em-select-societe {
    min-width: 18rem;
    width: auto;
}

[b-p2hvi4eaex] .rfe-em-encours-moi {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    color: #3d1f66;
}

/* Avertissement sans jaune sur blanc : fond pêche, encre foncée. */
[b-p2hvi4eaex] .rfe-em-avert {
    font-size: 12.5px;
    padding: .35rem .6rem;
    background: #ffe5d0;
    border: 1px solid #fd7e14;
    border-radius: var(--bs-border-radius);
    color: #5c2c00;
}

/* Glisser-déposer sans JavaScript (DA-14) : l'input file multiple couvre toute la zone, transparent ; un dépôt
   de fichiers sur lui le remplit nativement, un clic ouvre le sélecteur. */
[b-p2hvi4eaex] .rfe-em-depot-zone {
    position: relative;
    min-height: 5.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: .75rem 1rem;
    border: 2px dashed #5f368d;
    border-radius: .5rem;
    background: #f7f3fb;
    color: #3d1f66;
}

[b-p2hvi4eaex] .rfe-em-depot-zone:hover {
    background: #efe6f7;
}

[b-p2hvi4eaex] .rfe-em-depot-occupee {
    border-style: solid;
    background: #f8f9fa;
}

[b-p2hvi4eaex] .rfe-em-depot-input {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}

[b-p2hvi4eaex] .rfe-em-resultats {
    max-height: 40vh;
    overflow-y: auto;
}

[b-p2hvi4eaex] .rfe-em-fichier {
    max-width: 22rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

[b-p2hvi4eaex] .rfe-em-issue-ok {
    color: #0f5132;
    font-weight: 600;
}

[b-p2hvi4eaex] .rfe-em-issue-refus {
    color: #8a4b08;
    font-weight: 600;
}

[b-p2hvi4eaex] .rfe-em-issue-erreur {
    color: #842029;
    font-weight: 600;
}

/* Pointage « facture traitée » (extranet-RFE.md §17, INV-620) : colonne étroite en tête, ligne traitée estompée
   (D65) sauf la cellule de pointage, confirmation de « Tout pointer » (D68). */
[b-p2hvi4eaex] .rfe-pt-cellule {
    width: 34px;
    text-align: center;
}

[b-p2hvi4eaex] .rfe-ligne-traitee > td:not(.rfe-pt-cellule) {
    opacity: .55;
}

[b-p2hvi4eaex] .rfe-lot-fond {
    position: fixed;
    inset: 0;
    z-index: 1050;
    background: rgba(0, 0, 0, .25);
}

[b-p2hvi4eaex] .rfe-lot {
    position: fixed;
    z-index: 1060;
    top: 8vh;
    left: 50%;
    transform: translateX(-50%);
    width: min(640px, 94vw);
    max-height: 84vh;
    overflow: auto;
    padding: 1rem;
    background: #fff;
    border-radius: 8px;
}

[b-p2hvi4eaex] .rfe-lot-liste {
    max-height: 45vh;
    overflow: auto;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: 6px;
    font-size: 13px;
}
/* /Pages/PortailRfe/RejetPastille.razor.rz.scp.css */
/* Pastille de l'état du rejet (RejetPastille, extranet-RFE.md §18.5, D72) — feuille ISOLÉE. */

.rj-pastille[b-i72dsn92ua] {
    display: inline-block;
    margin-left: .35rem;
    padding: 0 .4rem;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 600;
    line-height: 1.5;
    white-space: nowrap;
    vertical-align: middle;
    cursor: help;
}

.rj-pastille-demande[b-i72dsn92ua] {
    background: #fff3cd;
    color: #7a4f01;
    border: 1px solid #ffc107;
}

.rj-pastille-rejetee[b-i72dsn92ua] {
    background: #f8d7da;
    color: #842029;
    border: 1px solid #dc3545;
}
/* /Pages/PortailRfe/RejetRfe.razor.rz.scp.css */
/* Fenêtre de rejet (RejetRfe, extranet-RFE.md §18) — feuille ISOLÉE. Patron des popups de la fiche d'émission. */

.rj-fond[b-k0mta5cf9r] {
    position: fixed;
    inset: 0;
    z-index: 1050;
    background: rgba(0, 0, 0, .3);
}

.rj-modal[b-k0mta5cf9r] {
    position: fixed;
    z-index: 1060;
    top: 10vh;
    left: 50%;
    transform: translateX(-50%);
    width: min(560px, 94vw);
    max-height: 80vh;
    overflow: auto;
    padding: 1rem;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 .5rem 1.5rem rgba(0, 0, 0, .25);
    text-align: left;
    white-space: normal;
    font-size: 14px;
}

/* L'avertissement d'irréversibilité : rouge pâle, bord rouge, lisible d'un coup d'œil. */
.rj-alerte[b-k0mta5cf9r] {
    padding: .6rem .75rem;
    border: 1px solid #f1aeb5;
    border-left: 4px solid #b02a37;
    border-radius: 6px;
    background: #f8d7da;
    color: #58151c;
}

.rj-commentaire[b-k0mta5cf9r] {
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}
/* /Pages/PortailRfe/SurvolDetail.razor.rz.scp.css */
/*
   Feuille ISOLÉE de SurvolDetail : la bulle et son déclenchement. Le contenu de la bulle (titres, listes de
   messages) vient d'un fragment du parent, donc de la portée du parent : ses règles sont dans PortailRfe.razor.css.
*/

.rfe-sv[b-8zoiqiec8p] {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    max-width: 100%;
    outline: none;
}

.rfe-sv:focus-visible[b-8zoiqiec8p] {
    outline: 2px solid #5f368d;
    outline-offset: 2px;
    border-radius: 2px;
}

.rfe-sv-bulle[b-8zoiqiec8p] {
    position: absolute;
    top: calc(100% + 6px);
    left: -.25rem;
    z-index: 1050;
    display: block;
    width: max-content;
    min-width: 14rem;
    max-width: 26rem;
    padding: .55rem .7rem;
    background: #fff;
    color: #212529;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: 6px;
    box-shadow: 0 .4rem 1.2rem rgba(0, 0, 0, .16);
    font-size: 12.5px;
    font-weight: 400;
    line-height: 1.45;
    text-align: left;
    white-space: normal;
    visibility: hidden;
    opacity: 0;
    transition: opacity .12s ease 0s, visibility 0s linear .12s;
    pointer-events: none;
}

.rfe-sv-droite > .rfe-sv-bulle[b-8zoiqiec8p] {
    left: auto;
    right: -.25rem;
}

/* Un pont invisible entre la cellule et la bulle : la souris peut y descendre sans la refermer. */
.rfe-sv-bulle[b-8zoiqiec8p]::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: -8px;
    height: 8px;
}

.rfe-sv:hover > .rfe-sv-bulle[b-8zoiqiec8p],
.rfe-sv:focus-within > .rfe-sv-bulle[b-8zoiqiec8p] {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
    transition: opacity .12s ease .25s, visibility 0s linear .25s;
}
/* /Pages/Rapprochement/ReceptionAnomalie.razor.rz.scp.css */
.alert[b-4175t6j2h6] {    
    /*margin-bottom: 1px;
    height: 25px;
    line-height: 25px;
    padding: 0px 15px;*/
}
/* /Pages/Rapprochement/ReceptionCommande.razor.rz.scp.css */
.alert[b-bzo383bmf2] {
    margin-bottom: 1px;
    height: 25px;
    line-height: 25px;
    padding: 0px 15px;
}
/* /Pages/ReceptionV2/CopieLigneV2.razor.rz.scp.css */
/* Popup « Copier la ligne » (/receptionv2) — feuille ISOLÉE, classes préfixées rv2-cp-. */

.rv2-cp-ligne[b-iqajo39kg3] {
    display: flex;
    gap: 10px;
    align-items: baseline;
    margin-bottom: 4px;
}

.rv2-cp-desc[b-iqajo39kg3] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rv2-cp-total[b-iqajo39kg3] {
    font-size: 12.5px;
    color: #6c757d;
    margin-bottom: 10px;
}

.rv2-cp-table[b-iqajo39kg3] {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

.rv2-cp-table th[b-iqajo39kg3],
.rv2-cp-table td[b-iqajo39kg3] {
    padding: 6px 8px;
    border-bottom: 1px solid #dee2e6;
}

.rv2-cp-table th[b-iqajo39kg3] {
    font-size: 11.5px;
    color: #6c757d;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.rv2-cp-table tfoot td[b-iqajo39kg3] {
    font-weight: 600;
    border-bottom: 0;
}

.rv2-cp-input[b-iqajo39kg3] {
    width: 110px;
    display: inline-block;
    font-variant-numeric: tabular-nums;
}

.rv2-num[b-iqajo39kg3] {
    text-align: right;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
/* /Pages/ReceptionV2/CoutsV2.razor.rz.scp.css */
/* Popup « Coûts additionnels » (/receptionv2) — feuille ISOLÉE, classes préfixées rv2-ca-.
   Les éditeurs DevExpress sont atteints par ::deep : leur racine porte la classe mais pas l'attribut de portée,
   le td parent le porte. */

.rv2-ca-table[b-xrtgw0lrla] {
    font-size: 13.5px;
}

.rv2-ca-table thead th[b-xrtgw0lrla] {
    background: #f8f9fa;
    color: #212529;
    font-weight: 600;
    padding: 8px;
    border-bottom: 1px solid #dee2e6;
    white-space: nowrap;
}

.rv2-ca-table tbody td[b-xrtgw0lrla] {
    padding: 8px;
    vertical-align: middle;
}

.rv2-ca-table[b-xrtgw0lrla]  .rv2-ca-compte,
.rv2-ca-table[b-xrtgw0lrla]  .rv2-ca-tva {
    min-width: 260px;
}

.rv2-ca-table[b-xrtgw0lrla]  .rv2-ca-ht {
    width: 140px;
}

.rv2-ca-money[b-xrtgw0lrla] {
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    text-align: right;
}

.rv2-ca-table tfoot tr.rv2-ca-total td[b-xrtgw0lrla] {
    border-top: 2px solid #dee2e6;
    border-bottom: 0;
    font-weight: 500;
    padding: 8px;
    vertical-align: middle;
}
/* /Pages/ReceptionV2/JournalV2Popup.razor.rz.scp.css */
/* Popup « Journal » (/receptionv2) — feuille ISOLÉE, classes préfixées rv2-jr-. */

.rv2-jr-scroll[b-wjnl32x4pr] {
    max-height: 70vh;
    overflow: auto;
}

.rv2-jr-table[b-wjnl32x4pr] {
    font-size: 12.5px;
}

.rv2-jr-table thead th[b-wjnl32x4pr] {
    position: sticky;
    top: 0;
    z-index: 1;
    white-space: nowrap;
}

.rv2-jr-table tbody td[b-wjnl32x4pr] {
    vertical-align: top;
}

.rv2-jr-tab[b-wjnl32x4pr] {
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.rv2-jr-action[b-wjnl32x4pr] {
    min-width: 180px;
}

/* Message du geste (texte du toast) : borne, le texte complet en infobulle. */
.rv2-jr-message[b-wjnl32x4pr] {
    max-width: 380px;
    white-space: normal;
}

.rv2-jr-btn[b-wjnl32x4pr] {
    white-space: nowrap;
    font-size: 12px;
    padding: 1px 8px;
}

/* Popup JSON possede : le bloc colore de WfJsonView (RCL, feuille isolee du RCL) defile dans une hauteur bornee. */
.rv2-jr-json[b-wjnl32x4pr] {
    max-height: 75vh;
    overflow: auto;
}

.rv2-jr-compteur[b-wjnl32x4pr] {
    margin-right: auto;
    font-size: 12.5px;
    color: #6c757d;
    align-self: center;
}
/* /Pages/ReceptionV2/LitigeV2.razor.rz.scp.css */
/* Litige / Bon à payer (/receptionv2) — feuille ISOLÉE, classes préfixées rv2-lt-.
   Les éditeurs DevExpress sont atteints par ::deep depuis le conteneur .rv2-lt. */

.rv2-lt-lbl[b-4bo5nc12db] {
    font-size: 12.5px;
    color: #6c757d;
    white-space: nowrap;
}

.rv2-lt[b-4bo5nc12db]  .rv2-lt-combo {
    width: 220px;
}

.rv2-lt[b-4bo5nc12db]  .rv2-lt-commentaire {
    width: 40ch;
    max-width: 100%;
}
/* /Pages/ReceptionV2/ReceptionV2.razor.rz.scp.css */
/*
   Feuille ISOLÉE de l'écran /receptionv2 (INV-382) — reprise fidèle de la maquette v12
   « rapprochements-faciles.html » (spec-rapprochement-auto §11.11), classes préfixées rv2-.

   Toutes les règles sont écrites avec ::deep : la racine .rv2-page (dans ReceptionV2.razor) porte
   l'attribut d'isolation, les composants enfants (BarreV2, CommandesV2, SyntheseV2Carte, GrilleV2Vue…)
   n'en portent pas — ::deep les atteint depuis la racine. Aucun <style> dans un .razor (un tel bloc
   serait global, cf. Index.razor). On n'emploie pas la classe Bootstrap .table (elle écrase les couleurs
   des cellules) : la grille a sa propre classe rv2-grille.

   ⚠ Les popups DevExpress (DxPopup, DxFlyout) sont rendus hors de la racine : cette feuille ne les atteint pas,
   leur habillage vient de la feuille commune wwwroot/css/charte.css (classes ch-*, déclarée par <CharteCss />,
   charteGraphique.md §14).
*/

.rv2-page[b-hlij4yiakf] {
    --rv2-ground: #f5f6f8;
    --rv2-card: #ffffff;
    --rv2-ink: #212529;
    --rv2-muted: #6c757d;
    --rv2-line: #dee2e6;
    --rv2-head: #f8f9fa;
    --rv2-primary: #5f368d;
    --rv2-primary-hover: #512e78;
    --rv2-primary-soft: #e7dff3;
    --rv2-success: #198754;
    --rv2-success-soft: #d1e7dd;
    --rv2-warning-soft: #fff3cd;
    --rv2-danger: #dc3545;
    --rv2-danger-soft: #f8d7da;
    --rv2-neutral-soft: #e9ecef;
    --rv2-hl: #fff59d;
    --rv2-hl-strong: #ffe066;
    --rv2-code: #495057;

    /* pleine largeur dans la zone .content du layout : padding-top 1.1rem (MainLayout.razor.css) et padding horizontal
       1.5rem imposé par la classe Bootstrap px-4 (!important) posée sur le DxGridLayoutItem de MainLayout.razor — pas 2rem,
       sinon 8 px de débordement et une barre de défilement horizontale permanente sur .content (C011) */
    margin: 0 -1.5rem 0;   /* plus de compensation verticale : MainLayout retire son padding haut pour cette page (:has) */
    padding: 0 16px 24px;
    min-height: 100%;
    background: var(--rv2-ground);
    color: var(--rv2-ink);
    font-size: 14px;
    line-height: 1.45;
}

[b-hlij4yiakf] .rv2-code {
    font-family: ui-monospace, Consolas, "Cascadia Mono", Menlo, monospace;
    font-size: 12.5px;
    color: var(--rv2-code);
}

[b-hlij4yiakf] .rv2-num {
    font-variant-numeric: tabular-nums;
    text-align: right;
    white-space: nowrap;
}

[b-hlij4yiakf] .rv2-muted { color: var(--rv2-muted); }
[b-hlij4yiakf] .rv2-small { font-size: 12.5px; }
[b-hlij4yiakf] .rv2-spacer { flex: 1; }

[b-hlij4yiakf] a.rv2-lienx { color: var(--rv2-primary); text-decoration: none; }
[b-hlij4yiakf] a.rv2-lienx:hover { text-decoration: underline; }

/* ---------- Barre d'actions sticky ---------- */
/* Conteneur figé : barre d'actions + carte fournisseur / commandes (2026-09-12). Le sticky est ici, plus sur la barre seule. */
[b-hlij4yiakf] .rv2-sticky {
    position: sticky;
    top: 0;
    z-index: 1020;
    background: var(--rv2-card);
    margin: 0 -16px;
    padding: 0 16px;
    border-bottom: 1px solid var(--rv2-line);
    box-shadow: 0 2px 4px rgba(0, 0, 0, .06);
}

/* Un seul panneau (2026-09-12, 22:36) : dans le bloc figé, les cartes perdent bordure, arrondi, ombre et marge ; un trait les sépare. */
[b-hlij4yiakf] .rv2-sticky .rv2-card {
    margin: 0 -16px;
    border: 0;
    border-top: 1px solid var(--rv2-line);
    border-radius: 0;
    box-shadow: none;
}
[b-hlij4yiakf] .rv2-sticky .rv2-actionbar { border-bottom: 0; }
/* Synthèse dépliée dans le bloc figé : bornée et défilable, pour que la grille reste atteignable en dessous. */
[b-hlij4yiakf] .rv2-sticky .rv2-syn-body { max-height: 45vh; overflow: auto; }

[b-hlij4yiakf] .rv2-actionbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 2px 10px;
    margin: 0 -16px;
    padding: 2px 16px;
    background: var(--rv2-card);
    border-bottom: 1px solid var(--rv2-line);
}

[b-hlij4yiakf] .rv2-fermer { font-weight: 700; padding-left: 8px; padding-right: 8px; }

[b-hlij4yiakf] .rv2-actionbar .rv2-ctx {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 1 1 380px;
    min-width: 0;
}

[b-hlij4yiakf] .rv2-actionbar .rv2-title {
    font-weight: 600;
    font-size: 15px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

[b-hlij4yiakf] .rv2-badge {
    display: inline-block;
    padding: 2px 7px;
    border-radius: 4px;
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: .02em;
    line-height: 1.3;
    vertical-align: middle;
    white-space: nowrap;
}

[b-hlij4yiakf] .rv2-badge-bu { background: var(--rv2-ink); color: #fff; }
[b-hlij4yiakf] .rv2-badge-sec { background: var(--rv2-neutral-soft); color: var(--rv2-code); }
[b-hlij4yiakf] .rv2-badge-cond { background: #e2d9f3; color: #3d2a7a; }
[b-hlij4yiakf] .rv2-badge-ro { background: var(--rv2-warning-soft); color: #664d03; border: 1px solid #ffe69c; }
[b-hlij4yiakf] .rv2-badge-partielle { background: var(--rv2-warning-soft); color: #664d03; font-weight: 500; margin-left: 4px; }
/* Numéro de commande cliquable (détail /commandes/{code}) : même encre que la cellule, souligné au survol seulement. */
[b-hlij4yiakf] .rv2-lien-cmd { color: inherit; text-decoration: none; }
[b-hlij4yiakf] .rv2-lien-cmd:hover { color: var(--rv2-primary); text-decoration: underline; }

/* Pastille bleue du bouton Commentaires : nombre de commentaires de version (2026-09-12). */
[b-hlij4yiakf] .rv2-badge-info { background: #0d6efd; color: #fff; margin-left: 6px; }

/* Menu déroulant maison (bouton « BAP ») : ancre relative, menu absolu sous le bouton, fond transparent qui ferme au clic. */
[b-hlij4yiakf] .rv2-menu-ancre { position: relative; display: inline-block; }
[b-hlij4yiakf] .rv2-menu { position: absolute; left: 0; top: 100%; z-index: 1050; min-width: 12rem; margin-top: 2px; font-size: 13px; }
[b-hlij4yiakf] .rv2-menu .dropdown-item { padding: 5px 12px; }
[b-hlij4yiakf] .rv2-menu-fond { position: fixed; inset: 0; z-index: 1040; background: transparent; }

/* La pastille de source (ex-« RFE » orange, rv2-pastille-rfe) est depuis INV-468 le composant partagé
   SourceFacturePastille et sa CSS isolée : une couleur par source, la même sur tous les écrans. */

[b-hlij4yiakf] .rv2-btns {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
}

[b-hlij4yiakf] .rv2-btns .rv2-sep {
    width: 1px;
    height: 22px;
    background: var(--rv2-line);
    margin: 0 4px;
}

[b-hlij4yiakf] .rv2-btns .btn,
[b-hlij4yiakf] .rv2-sec-head .btn,
[b-hlij4yiakf] .rv2-geste .btn {
    white-space: nowrap;
}

[b-hlij4yiakf] .rv2-btns .btn-sm,
[b-hlij4yiakf] .rv2-sec-head .btn-sm,
[b-hlij4yiakf] .rv2-geste .btn-sm {
    padding: 2px 8px;
    font-size: 12.5px;
}

[b-hlij4yiakf] .rv2-lien-ancien {
    font-size: 12px;
    color: var(--rv2-muted);
    text-decoration: underline dotted;
    text-underline-offset: 3px;
    margin-left: 4px;
    white-space: nowrap;
}

[b-hlij4yiakf] .rv2-lien-ancien:hover { color: var(--rv2-primary); }

/* Bouton-lien (coûts additionnels de la synthèse) */
[b-hlij4yiakf] .rv2-lien {
    appearance: none;
    background: none;
    border: 0;
    padding: 0;
    font: inherit;
    color: var(--rv2-primary);
    cursor: pointer;
    text-decoration: underline dotted;
    text-underline-offset: 3px;
    font-variant-numeric: tabular-nums;
}

[b-hlij4yiakf] .rv2-lien:hover { color: var(--rv2-primary-hover); text-decoration-style: solid; }
[b-hlij4yiakf] .rv2-lien:disabled { color: var(--rv2-muted); cursor: default; text-decoration: none; }

/* « S » vert de rebond vers Sage X3 */
[b-hlij4yiakf] a.rv2-sage {
    display: inline-block;
    margin-left: 4px;
    font-weight: 700;
    color: #008000;
    font-size: 12px;
    text-decoration: none;
    vertical-align: baseline;
}

[b-hlij4yiakf] a.rv2-sage:hover { text-decoration: underline; }

/* Crayon devant la description : ouvre la fiche de ligne sans gêner le clic-mot */
[b-hlij4yiakf] .rv2-crayon {
    appearance: none;
    background: none;
    border: 0;
    padding: 0 3px;
    cursor: pointer;
    color: var(--rv2-muted);
    font-size: 12px;
}

[b-hlij4yiakf] .rv2-crayon:hover { color: var(--rv2-primary); }

/* ---------- Cartes ---------- */
[b-hlij4yiakf] .rv2-card {
    background: var(--rv2-card);
    border: 1px solid var(--rv2-line);
    border-radius: 6px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
    margin-top: 6px;
}

[b-hlij4yiakf] .rv2-card-header {
    padding: 5px 12px;
    border-bottom: 1px solid var(--rv2-line);
    font-weight: 600;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 14px;
}

[b-hlij4yiakf] .rv2-card-header.rv2-repliable { cursor: pointer; user-select: none; }
[b-hlij4yiakf] .rv2-card-header .rv2-chev { display: inline-block; transition: transform .12s; }
[b-hlij4yiakf] .rv2-card-header.rv2-collapsed .rv2-chev { transform: rotate(-90deg); }
[b-hlij4yiakf] .rv2-card-header.rv2-collapsed { border-bottom: 0; }

/* ---------- Fournisseur + commandes ---------- */
[b-hlij4yiakf] .rv2-cmd-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 14px;
    padding: 3px 12px;
}

/* Mini-synthèse LIBELLÉE de l'en-tête de la carte Synthèse (§12.13 D2, INV-443) : Rapprochée · Coûts · Total HT · HT facture ·
   Écart (%) [· Remise], chaque terme = un libellé atténué suivi de son nombre (tabular-nums), l'écart coloré comme la cellule
   du corps (fond doux, jamais de pastille à côté d'un nombre — charte §12). */
[b-hlij4yiakf] .rv2-mini {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 4px 8px;
    font-weight: 400;
    font-variant-numeric: tabular-nums;
    margin-left: 10px;
}

[b-hlij4yiakf] .rv2-mini .rv2-mini-terme { white-space: nowrap; }
[b-hlij4yiakf] .rv2-mini .rv2-mini-lbl { color: var(--rv2-muted); font-size: 12px; }
[b-hlij4yiakf] .rv2-mini .rv2-mini-fort { font-weight: 600; }
[b-hlij4yiakf] .rv2-mini .rv2-mini-sep { color: var(--rv2-muted); opacity: .6; }
[b-hlij4yiakf] .rv2-mini .rv2-mini-ecart { padding: 0 5px; border-radius: 3px; }
[b-hlij4yiakf] .rv2-mini .rv2-mini-ecart.rv2-ok { background: var(--rv2-success-soft); color: #0a3622; }
/* Niveau faible : encre héritée (comme la cellule de la grille) — l'encre atténuée sur ce fond tombait sous le contraste AA (3,9:1). */
[b-hlij4yiakf] .rv2-mini .rv2-mini-ecart.rv2-e1 { background: var(--rv2-neutral-soft); }
[b-hlij4yiakf] .rv2-mini .rv2-mini-ecart.rv2-e2 { background: var(--rv2-warning-soft); color: #664d03; }
[b-hlij4yiakf] .rv2-mini .rv2-mini-ecart.rv2-e3 { background: var(--rv2-danger-soft); color: #842029; font-weight: 600; }
/* Compteurs + tag anomalies : calés à droite ensemble, y compris quand l'en-tête passe sur deux lignes. */
[b-hlij4yiakf] .rv2-mini-droite { margin-left: auto; display: inline-flex; align-items: center; gap: 10px; white-space: nowrap; }
[b-hlij4yiakf] .rv2-badge-danger { background: #f8d7da; color: #842029; border: 1px solid #f1aeb5; }
[b-hlij4yiakf] .rv2-badge-warning { background: #ffe5d0; color: #8a4500; border: 1px solid #fd7e14; }
[b-hlij4yiakf] .rv2-badge-ok { background: #d1e7dd; color: #0f5132; border: 1px solid #a3cfbb; }

[b-hlij4yiakf] .rv2-lbl {
    font-size: 12.5px;
    color: var(--rv2-muted);
    white-space: nowrap;
}

[b-hlij4yiakf] .rv2-tagbox { min-width: 320px; max-width: 100%; flex: 1 1 320px; }

[b-hlij4yiakf] .rv2-alerte-cmd {
    margin: 0;
    padding: 4px 10px;
    font-size: 12.5px;
}

[b-hlij4yiakf] .rv2-notes {
    padding: 0 14px 8px;
    display: grid;
    gap: 4px;
}

[b-hlij4yiakf] .rv2-note {
    font-size: 12px;
    color: var(--rv2-muted);
    white-space: pre-wrap;
    border-left: 3px solid var(--rv2-line);
    padding-left: 8px;
}

/* ---------- Entête repliable ---------- */
[b-hlij4yiakf] .rv2-entete {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 4px 24px;
    padding: 8px 14px 10px;
    font-size: 13px;
}

[b-hlij4yiakf] .rv2-entete .rv2-champ {
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: 8px;
    align-items: baseline;
}

[b-hlij4yiakf] .rv2-entete .rv2-champ .rv2-lbl { font-size: 12px; }
[b-hlij4yiakf] .rv2-entete .rv2-champ .rv2-val { min-width: 0; overflow-wrap: anywhere; }

/* ---------- Synthèse + anomalies ---------- */
[b-hlij4yiakf] .rv2-syn-body {
    display: grid;
    grid-template-columns: minmax(0, 3fr) minmax(260px, 2fr);
}

[b-hlij4yiakf] .rv2-syn-body > .rv2-tablewrap { padding: 4px 6px 6px 6px; }

[b-hlij4yiakf] table.rv2-syn {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

[b-hlij4yiakf] table.rv2-syn thead th {
    background: var(--rv2-card);
    color: var(--rv2-muted);
    font-weight: 500;
    text-align: left;
    border-bottom: 1px solid var(--rv2-line);
    padding: 4px 8px;
    white-space: nowrap;
}

[b-hlij4yiakf] table.rv2-syn thead th.rv2-num { text-align: right; }
[b-hlij4yiakf] table.rv2-syn tbody td { padding: 4px 8px; border-bottom: 1px solid #edf0f3; vertical-align: middle; }
[b-hlij4yiakf] table.rv2-syn tbody tr:last-child td { border-bottom: 0; }
[b-hlij4yiakf] table.rv2-syn td:first-child { white-space: nowrap; }
[b-hlij4yiakf] table.rv2-syn tr.rv2-proj td { color: #3d2a7a; }
[b-hlij4yiakf] table.rv2-syn .rv2-remise { width: 110px; display: inline-block; }
[b-hlij4yiakf] table.rv2-syn td.rv2-ecart { font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }
[b-hlij4yiakf] table.rv2-syn td.rv2-ecart.rv2-e0 { color: var(--rv2-muted); background: transparent; }
[b-hlij4yiakf] table.rv2-syn td[colspan].rv2-ecart { text-align: left; white-space: normal; }
[b-hlij4yiakf] table.rv2-syn td.rv2-ecart.rv2-ok { background: var(--rv2-success-soft); color: #0a3622; }

[b-hlij4yiakf] .rv2-anomalies {
    border-left: 1px solid var(--rv2-line);
    padding: 6px 12px 8px 14px;
    background: #fcfcfd;
}

[b-hlij4yiakf] .rv2-anomalies .rv2-ano-lbl {
    font-size: 12px;
    color: var(--rv2-muted);
    text-transform: uppercase;
    letter-spacing: .05em;
    margin-bottom: 4px;
}

[b-hlij4yiakf] .rv2-anomalies ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 4px;
    font-size: 12.5px;
}

[b-hlij4yiakf] .rv2-anomalies li {
    display: flex;
    gap: 8px;
    align-items: baseline;
    line-height: 1.35;
}

[b-hlij4yiakf] .rv2-anomalies li::before {
    content: "";
    flex: 0 0 8px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    margin-top: 4px;
    background: var(--rv2-muted);
}

[b-hlij4yiakf] .rv2-anomalies li.rv2-rouge::before { background: var(--rv2-danger); }
[b-hlij4yiakf] .rv2-anomalies li.rv2-orange::before { background: #fd7e14; }

@media (max-width: 900px) {
    [b-hlij4yiakf] .rv2-syn-body { grid-template-columns: 1fr; }
    [b-hlij4yiakf] .rv2-anomalies { border-left: 0; border-top: 1px solid var(--rv2-line); }
}

/* ---------- Filtre par mot (en-tête de la carte Rapprochement) ---------- */
[b-hlij4yiakf] .rv2-filtre {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    font-weight: 400;
}

[b-hlij4yiakf] .rv2-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 1px 8px 1px 10px;
    border-radius: 999px;
    background: var(--rv2-hl-strong);
    border: 1px solid #e0b900;
    font: inherit;
    font-size: 12.5px;
    cursor: pointer;
    color: var(--rv2-ink);
}

[b-hlij4yiakf] .rv2-chip b { font-weight: 600; }
[b-hlij4yiakf] .rv2-chip .rv2-x { font-weight: 700; color: var(--rv2-code); }

[b-hlij4yiakf] .rv2-filtre .rv2-count {
    font-size: 12.5px;
    color: var(--rv2-muted);
    font-variant-numeric: tabular-nums;
}

[b-hlij4yiakf] .rv2-filtre .rv2-clear {
    font-size: 12.5px;
    color: var(--rv2-primary);
    background: none;
    border: 0;
    cursor: pointer;
    padding: 0;
    font: inherit;
    text-decoration: underline;
}

/* ---------- La grille ---------- */
[b-hlij4yiakf] .rv2-tablewrap { overflow-x: auto; }

[b-hlij4yiakf] table.rv2-grille {
    width: 100%;
    border-collapse: collapse;
    font-size: 12.5px;
    color: var(--rv2-ink);
}

[b-hlij4yiakf] table.rv2-grille thead th {
    background: var(--rv2-head);
    color: var(--rv2-ink);
    font-weight: 600;
    text-align: left;
    padding: 6px 8px;
    border-bottom: 1px solid var(--rv2-line);
    white-space: nowrap;
}

[b-hlij4yiakf] table.rv2-grille thead th.rv2-num { text-align: right; }

[b-hlij4yiakf] table.rv2-grille thead tr.rv2-grp th {
    font-size: 11.5px;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--rv2-muted);
    background: var(--rv2-card);
    border-bottom: 0;
    padding-bottom: 2px;
}

[b-hlij4yiakf] table.rv2-grille th.rv2-sep,
[b-hlij4yiakf] table.rv2-grille td.rv2-sep { border-left: 2px solid var(--rv2-line); }

/* Tri par en-tête : le th (columnheader, aria-sort) contient un vrai bouton — Entrée / Espace natifs, focus visible (C062).
   Le bouton hérite tout du th (font, couleur, alignement des colonnes .rv2-num) ; l'outline est sur le bouton, pas sur la
   cellule, dont le contour serait rogné par border-collapse. */
[b-hlij4yiakf] table.rv2-grille th.rv2-sortable { user-select: none; }
[b-hlij4yiakf] table.rv2-grille th.rv2-sortable .rv2-tri {
    all: unset;
    cursor: pointer;
    font: inherit;
    color: inherit;
    display: inline-flex;
    align-items: center;
    gap: 2px;
    width: 100%;
}
[b-hlij4yiakf] table.rv2-grille th.rv2-num .rv2-tri { justify-content: flex-end; }
[b-hlij4yiakf] table.rv2-grille th.rv2-sortable .rv2-tri:hover { color: var(--rv2-primary); }
[b-hlij4yiakf] table.rv2-grille th.rv2-sortable .rv2-tri:focus-visible { outline: 2px solid var(--rv2-primary); outline-offset: 2px; }
[b-hlij4yiakf] table.rv2-grille th.rv2-sortable .rv2-dir { display: inline-block; width: 1em; color: var(--rv2-primary); font-size: 11px; }

[b-hlij4yiakf] table.rv2-grille tbody td {
    padding: 4px 8px;
    border-bottom: 1px solid var(--rv2-line);
    vertical-align: middle;
}

[b-hlij4yiakf] table.rv2-grille tbody tr.rv2-data:hover td { filter: brightness(.97); }

/* En-têtes de section */
[b-hlij4yiakf] table.rv2-grille tr.rv2-sec td {
    background: #eef0f3;
    border-top: 2px solid var(--rv2-line);
    border-bottom: 1px solid var(--rv2-line);
    padding: 6px 10px;
}

[b-hlij4yiakf] .rv2-sec-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 12px;
}

[b-hlij4yiakf] .rv2-sec-title {
    font-weight: 600;
    font-size: 13.5px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    user-select: none;
}

[b-hlij4yiakf] .rv2-sec-title .rv2-chev { display: inline-block; transition: transform .12s; }
[b-hlij4yiakf] tr.rv2-collapsed .rv2-sec-title .rv2-chev { transform: rotate(-90deg); }
[b-hlij4yiakf] .rv2-sec-title .rv2-badge { font-size: 11px; }
[b-hlij4yiakf] .rv2-sec-head .rv2-hint { font-size: 12px; color: var(--rv2-muted); }
[b-hlij4yiakf] table.rv2-grille tr.rv2-sec-sugg td { border-top-color: #c9b8e8; }
[b-hlij4yiakf] table.rv2-grille tr.rv2-sec-prix td { border-top-color: #b8d4e8; }
[b-hlij4yiakf] table.rv2-grille tr.rv2-sec-rapp td { border-top-color: #b6d7c4; }

/* Champ « Marge » du pavé prix proche (§12.13.P) : libellé + combo à saisie libre, compact comme les éditeurs de la barre. */
[b-hlij4yiakf] .rv2-sec-head .rv2-marge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    color: var(--rv2-muted);
    font-weight: 500;
}

[b-hlij4yiakf] .rv2-sec-head .rv2-marge label { margin: 0; cursor: default; }
[b-hlij4yiakf] .rv2-sec-head .rv2-marge-combo { width: 96px; }

/* Types de ligne */
[b-hlij4yiakf] table.rv2-grille tr.rv2-rapp td { background: var(--rv2-success-soft); }
[b-hlij4yiakf] table.rv2-grille tr.rv2-fact td { background: #fff; }
[b-hlij4yiakf] table.rv2-grille tr.rv2-rece td { background: #f6f7f9; }
[b-hlij4yiakf] table.rv2-grille tr.rv2-sugg td { background: #faf7fe; }
[b-hlij4yiakf] table.rv2-grille tr.rv2-prix td { background: #f5f9fd; }
/* INV-750 : Qté × PU ≠ Total — orange = signalé sans bloquer l'export, rouge = bloquant. */
[b-hlij4yiakf] table.rv2-grille tr.rv2-ligne-ecart td { background: #ffe5d0; }
[b-hlij4yiakf] table.rv2-grille tr.rv2-ligne-anomalie td { background: var(--rv2-danger-soft); }
[b-hlij4yiakf] table.rv2-grille tr.rv2-selected td { background: var(--rv2-primary-soft) !important; }

[b-hlij4yiakf] table.rv2-grille td.rv2-lib {
    max-width: 190px;
    min-width: 120px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

[b-hlij4yiakf] table.rv2-grille td.rv2-geste { white-space: nowrap; }
[b-hlij4yiakf] table.rv2-grille td.rv2-geste .rv2-badge { margin-right: 6px; }
[b-hlij4yiakf] table.rv2-grille td.rv2-motif { font-size: 12px; color: var(--rv2-muted); }

/* Écart PU : la CELLULE entière est colorée (charte §8), graduée en part du PU de commande */
[b-hlij4yiakf] table.rv2-grille td.rv2-ecart {
    font-variant-numeric: tabular-nums;
    text-align: right;
    white-space: nowrap;
}

[b-hlij4yiakf] table.rv2-grille td.rv2-ecart.rv2-e0 { color: var(--rv2-muted); }
[b-hlij4yiakf] table.rv2-grille tr td.rv2-ecart.rv2-e1 { background: var(--rv2-neutral-soft); }
[b-hlij4yiakf] table.rv2-grille tr td.rv2-ecart.rv2-e2 { background: var(--rv2-warning-soft); }
[b-hlij4yiakf] table.rv2-grille tr td.rv2-ecart.rv2-e3 { background: var(--rv2-danger-soft); font-weight: 600; }
[b-hlij4yiakf] table.rv2-grille tr td.rv2-ecart.rv2-fav { background: #bfe5cf; }

[b-hlij4yiakf] table.rv2-grille td.rv2-cpt { text-align: center; }

[b-hlij4yiakf] table.rv2-grille tr.rv2-empty td {
    color: var(--rv2-muted);
    text-align: center;
    padding: 10px;
    background: var(--rv2-card);
}

[b-hlij4yiakf] table.rv2-grille input[type=checkbox] {
    width: 15px;
    height: 15px;
    cursor: pointer;
    vertical-align: middle;
}

[b-hlij4yiakf] table.rv2-grille input[type=checkbox]:disabled { cursor: not-allowed; }

/* Interrupteur « Cpt Ecart » */
[b-hlij4yiakf] .rv2-sw {
    position: relative;
    display: inline-block;
    width: 30px;
    height: 16px;
    vertical-align: middle;
    margin: 0;
}

[b-hlij4yiakf] .rv2-sw input { opacity: 0; width: 0; height: 0; position: absolute; }

[b-hlij4yiakf] .rv2-sw span {
    position: absolute;
    inset: 0;
    background: #ccc;
    border-radius: 16px;
    transition: .12s;
    cursor: pointer;
}

[b-hlij4yiakf] .rv2-sw span::before {
    content: "";
    position: absolute;
    width: 12px;
    height: 12px;
    left: 2px;
    top: 2px;
    background: #fff;
    border-radius: 50%;
    transition: .12s;
}

[b-hlij4yiakf] .rv2-sw input:checked + span { background: var(--rv2-primary); }
[b-hlij4yiakf] .rv2-sw input:checked + span::before { transform: translateX(14px); }
[b-hlij4yiakf] .rv2-sw input:disabled + span { opacity: .5; cursor: not-allowed; }
/* Focus clavier : sur le span visible, jamais sur l'input (opacity 0 = anneau invisible) — C063 */
[b-hlij4yiakf] .rv2-sw input:focus-visible + span { outline: 2px solid var(--rv2-primary); outline-offset: 2px; }

/* Article survolé (infobulle DxFlyout unique) */
[b-hlij4yiakf] .rv2-art { cursor: help; border-bottom: 1px dotted var(--rv2-muted); }

/* Mots cliquables (boutons natifs, C037) : filtre au clic, surbrillance au survol (JS receptionv2.js).
   Remise à zéro du bouton (comme .rv2-crayon) pour qu'il se fonde dans le texte de la cellule. */
[b-hlij4yiakf] .rv2-mot {
    appearance: none;
    background: none;
    border: 0;
    font: inherit;
    color: inherit;
    line-height: inherit;
    cursor: pointer;
    border-radius: 2px;
    padding: 0 1px;
}
[b-hlij4yiakf] .rv2-mot:focus-visible { outline: 2px solid var(--rv2-primary); outline-offset: 1px; }
[b-hlij4yiakf] .rv2-mot:hover { text-decoration: underline; text-decoration-color: var(--rv2-muted); }
[b-hlij4yiakf] .rv2-mot.rv2-hl { background: var(--rv2-hl); }
[b-hlij4yiakf] .rv2-mot.rv2-actif { background: var(--rv2-hl-strong); font-weight: 600; }

/* Chargement, erreur, facture déjà partie */
[b-hlij4yiakf] .rv2-chargement {
    padding: 24px 16px;
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--rv2-muted);
}

[b-hlij4yiakf] .rv2-etat { margin-top: 16px; }

@media (prefers-reduced-motion: reduce) {
    [b-hlij4yiakf] .rv2-sec-title .rv2-chev,
    [b-hlij4yiakf] .rv2-card-header .rv2-chev,
    [b-hlij4yiakf] .rv2-sw span,
    [b-hlij4yiakf] .rv2-sw span::before { transition: none; }
}

@media (max-width: 700px) {
    [b-hlij4yiakf] .rv2-actionbar .rv2-ctx { flex-basis: 100%; }
    [b-hlij4yiakf] table.rv2-grille td.rv2-lib { max-width: 150px; }
    [b-hlij4yiakf] .rv2-entete .rv2-champ { grid-template-columns: 1fr; }
}
/* /Shared/ColonneTriable.razor.rz.scp.css */
/* En-tête triable (Shared/ColonneTriable.razor) — feuille ISOLÉE, classes préfixées ct-.
   Le bouton est dépouillé de son apparence pour se fondre dans l'en-tête du tableau ; il garde
   son focus visible, c'est ce qui le rend utilisable au clavier. */

th > .ct-tri[b-hgs1l8o1gy] {
    background: none;
    border: 0;
    padding: 0;
    font: inherit;
    color: inherit;
    cursor: pointer;
    display: inline-flex;
    align-items: baseline;
    gap: .3rem;
    white-space: nowrap;
}

th > .ct-tri:hover[b-hgs1l8o1gy] {
    text-decoration: underline;
}

th > .ct-tri:focus-visible[b-hgs1l8o1gy] {
    outline: 2px solid var(--bs-primary, #0d6efd);
    outline-offset: 2px;
}

/* La colonne triée porte sa flèche en pleine encre ; les autres la montrent en creux, pour qu'on
   devine qu'elles sont cliquables sans qu'elles ne réclament l'attention. */
.ct-fleche[b-hgs1l8o1gy] {
    font-size: .75em;
}

.ct-inactive[b-hgs1l8o1gy] {
    opacity: .3;
}
/* /Shared/DashboardLayout.razor.rz.scp.css */
.page[b-4n9bcvv52x] {
    height: 100%;
    overflow: hidden;
    background-color: inherit;
}
[b-4n9bcvv52x] .page-layout,
[b-4n9bcvv52x] .page-layout > .dxbl-gridlayout-root,
[b-4n9bcvv52x] .layout-item {
    background-color: var(--bs-body-bg, var(--dxbl-body-bg, #fff));
}

[b-4n9bcvv52x] .content {
    padding: 1.1rem 2rem 0 2rem;
    overflow: auto;
}

@media (max-width: 1199.98px) {
    [b-4n9bcvv52x] .page-layout > .dxbl-gridlayout-root {
        grid-template-columns: minmax(0, 1fr) !important;
    }
}

[b-4n9bcvv52x] .fit-width {
    max-width: 100%;
}

[b-4n9bcvv52x] .mw-1100 {
    max-width: 1100px;
}
/* /Shared/DerouleurPrincipaux.razor.rz.scp.css */
/* Dérouleur de comptes et de groupes (Shared/DerouleurPrincipaux.razor) — feuille ISOLÉE, classes préfixées pd-.
   Même mécanique que MenuActionsRfe : voile fixe qui ferme au clic n'importe où, panneau absolu ancré dans l'élément
   en position relative que pose l'appelant (.pra-ancre sur l'écran d'accès par adresse). Ouvert à gauche par défaut,
   à droite (pd-droite) près du bord droit pour ne pas déborder de la fenêtre. */

.pd-fond[b-ce6w2nyt2i] {
    position: fixed;
    inset: 0;
    z-index: 1040;
    background: transparent;
}

.pd-panneau[b-ce6w2nyt2i] {
    position: absolute;
    left: 0;
    top: 100%;
    z-index: 1050;
    width: 22rem;
    max-width: 90vw;
    margin-top: 2px;
    padding: 6px;
    background: #fff;
    border: 1px solid #dee2e6;
    border-radius: 6px;
    font-size: 13px;
    text-align: left;
    white-space: normal;
}

.pd-droite[b-ce6w2nyt2i] {
    left: auto;
    right: 0;
}

.pd-champ[b-ce6w2nyt2i] {
    margin-bottom: 4px;
}

.pd-note[b-ce6w2nyt2i] {
    padding: 4px 6px;
    font-size: 12px;
}

.pd-liste[b-ce6w2nyt2i] {
    list-style: none;
    margin: 0;
    padding: 0;
    max-height: 18rem;
    overflow-y: auto;
}

.pd-item[b-ce6w2nyt2i] {
    display: flex;
    align-items: center;
    gap: 6px;
    width: 100%;
    padding: 3px 6px;
    border: 0;
    border-radius: 4px;
    background: transparent;
    text-align: left;
    cursor: pointer;
}

.pd-item:hover[b-ce6w2nyt2i],
.pd-item:focus-visible[b-ce6w2nyt2i] {
    background: #f1f3f5;
    outline: none;
}

/* « à importer » : le badge d'avertissement de la charte (fond clair, encre foncée — jamais du jaune sur blanc). */
.pd-badge[b-ce6w2nyt2i] {
    flex: none;
    background: #fff3cd;
    color: #664d03;
    font-weight: 600;
}

.pd-detail[b-ce6w2nyt2i] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 12px;
}
/* /Shared/EmissionsEnCours.razor.rz.scp.css */
/*
   Feuille ISOLÉE du compteur « N factures en cours d'analyse » du bandeau (Shared/EmissionsEnCours.razor).
   Ton informatif (violet de la charte, fond pâle), distinct de l'ambre des alertes du bandeau (écart de
   version, manifeste en attente, pooling) : ce n'est pas un problème, c'est du travail en cours. Le rond
   pulse doucement ; il reste immobile sous prefers-reduced-motion.
*/

.rfe-em-encours[b-1ffzryjlqb] {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    font-size: 0.8rem;
    color: #3d1f66;
    background: #e6dcf2;
    border-radius: 0.25rem;
    padding: 0.1rem 0.5rem;
    white-space: nowrap;
    align-self: center;
    text-decoration: none;
}

.rfe-em-encours:hover[b-1ffzryjlqb],
.rfe-em-encours:focus-visible[b-1ffzryjlqb] {
    background: #d8c7ec;
    color: #3d1f66;
    text-decoration: none;
}

.rfe-em-encours-rond[b-1ffzryjlqb] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #5f368d;
    animation: rfe-em-pulse-b-1ffzryjlqb 1.6s ease-in-out infinite;
}

@keyframes rfe-em-pulse-b-1ffzryjlqb {
    0%, 100% { opacity: 1; }
    50% { opacity: .3; }
}

@media (prefers-reduced-motion: reduce) {
    .rfe-em-encours-rond[b-1ffzryjlqb] {
        animation: none;
    }
}
/* /Shared/Header.razor.rz.scp.css */
.navbar.header-navbar[b-r4g5cvrnst] {
    flex-grow: 0;
    flex-wrap: nowrap;
    border: none;
    background-color: inherit;
    border-radius: 0;
    height: 3.5rem;
    min-height: 3.5rem;
    box-shadow: 0px 2px 6px 0px rgba(0, 0, 0, 0.12);
    justify-content: flex-start;
}

.header-navbar .navbar-toggler[b-r4g5cvrnst] {
    outline: none;
    border-radius: 0;
    padding-left: .75rem;
    padding-right: .75rem;
    box-shadow: none;
    align-self: stretch;
}

.header-navbar .navbar-toggler .navbar-toggler-icon[b-r4g5cvrnst] {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255,255,255, 1)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 8h24M4 16h24M4 24h24'/%3E%3C/svg%3E");
    background-color: transparent !important;
    height: 2rem;
    width: 2rem;
}

.title[b-r4g5cvrnst] {
    font-size: 1.1rem;
    text-overflow: ellipsis;
    overflow: hidden;
}

/* Versions coffre / site toujours visibles : gris discret quand elles concordent. */
.version-info[b-r4g5cvrnst] {
    font-size: 0.8rem;
    color: #6c757d;
    white-space: nowrap;
    align-self: center;
}

/* Écart de version site/coffre : signale sans crier (ambre discret, petite taille). */
.version-ecart[b-r4g5cvrnst] {
    font-size: 0.8rem;
    color: #b45309;
    white-space: nowrap;
    align-self: center;
}

/* Provisionnement du coffre en attente (coffre injoignable, compte non administrateur) : même ton ambre,
   fond pâle pour se distinguer de l'écart de version qui peut être affiché en même temps. */
.manifeste-attente[b-r4g5cvrnst] {
    font-size: 0.8rem;
    color: #b45309;
    background: #fef3c7;
    border-radius: 0.25rem;
    padding: 0.1rem 0.5rem;
    white-space: nowrap;
    align-self: center;
}

/* Pool de connexions SQL désactivé ou indéterminable (appsettings du site ou chaîne du coffre) : même ton
   ambre que les deux messages précédents, fond pâle comme l'attente de manifeste — les trois peuvent être
   affichés en même temps, chacun doit rester lisible. Le nom des chaînes peut s'allonger : on tronque. */
.pooling-alerte[b-r4g5cvrnst] {
    font-size: 0.8rem;
    color: #b45309;
    background: #fef3c7;
    border-radius: 0.25rem;
    padding: 0.1rem 0.5rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 20rem;
    align-self: center;
}

@media (max-width: 350px) {
    .title[b-r4g5cvrnst] {
        font-size: inherit;
    }
}
/* /Shared/ListeProfils.razor.rz.scp.css */
/* Liste des profils (Shared/ListeProfils.razor) — feuille ISOLÉE, classes préfixées lp-. Même mécanique que le
   dérouleur de comptes et de groupes : voile fixe qui ferme au clic n'importe où, panneau absolu ancré sous le bouton.
   Le liseré de chaque ligne prend EXACTEMENT le fond de la pastille de sa puissance (PuissancePastille.razor.css). */

.lp-ancre[b-bcch34t8f2] {
    position: relative;
    display: inline-block;
    max-width: 100%;
}

.lp-bouton[b-bcch34t8f2] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-width: min(300px, 100%);
    max-width: 100%;
    padding: 6px 10px;
    border: 1px solid #dee2e6;
    border-left: 5px solid var(--lp-couleur, #dee2e6);
    border-radius: 6px;
    background: #ffffff;
    color: #212529;
    font-weight: 600;
    text-align: left;
    cursor: pointer;
}

.lp-bouton:focus-visible[b-bcch34t8f2] {
    outline: 2px solid #5f368d;
    outline-offset: 2px;
}

.lp-bouton:disabled[b-bcch34t8f2] {
    cursor: not-allowed;
    opacity: .65;
}

.lp-invite[b-bcch34t8f2] {
    color: #5f6a74;
    font-weight: 400;
}

.lp-chevron[b-bcch34t8f2] {
    margin-left: auto;
    color: #5f6a74;
}

.lp-fond[b-bcch34t8f2] {
    position: fixed;
    inset: 0;
    z-index: 1040;
    background: transparent;
}

.lp-liste[b-bcch34t8f2] {
    position: absolute;
    left: 0;
    top: 100%;
    z-index: 1050;
    min-width: min(380px, 92vw);
    max-width: 92vw;
    max-height: 70vh;
    overflow-y: auto;
    margin-top: 4px;
    padding: 4px 0;
    background: #ffffff;
    border: 1px solid #dee2e6;
    border-radius: 8px;
    font-size: 13px;
    text-align: left;
}

.lp-groupe[b-bcch34t8f2] {
    list-style: none;
    margin: 0;
    padding: 0;
}

.lp-groupe-titre[b-bcch34t8f2] {
    padding: 8px 12px 4px;
    color: #5f6a74;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.lp-vide[b-bcch34t8f2] {
    padding: 2px 12px 6px;
    color: #5f6a74;
    font-style: italic;
}

.lp-option[b-bcch34t8f2] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 8px;
    padding: 6px 12px 6px 9px;
    border-left: 4px solid var(--lp-couleur, transparent);
    cursor: pointer;
}

.lp-option:hover[b-bcch34t8f2],
.lp-option:focus[b-bcch34t8f2] {
    background: #f1f3f5;
    outline: none;
}

.lp-option[aria-selected="true"][b-bcch34t8f2] {
    background: #e6dcf2;
}

.lp-option:focus-visible[b-bcch34t8f2] {
    box-shadow: inset 0 0 0 2px #5f368d;
}

.lp-nom[b-bcch34t8f2] {
    font-weight: 600;
}

/* Mentions : pastilles neutres de la charte, qui ne rivalisent pas avec la couleur de la puissance. */
.lp-mention[b-bcch34t8f2] {
    padding: 0 7px;
    border-radius: 10px;
    background: #e9ecef;
    color: #495057;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
}

/* Un profil désactivé reste dans la liste, grisé : nom en gris, pastille estompée ; son liseré garde la couleur de sa
   puissance. */
.lp-desactive .lp-nom[b-bcch34t8f2] {
    color: #6c757d;
    font-weight: 400;
}

.lp-desactive[b-bcch34t8f2]  .pastille-puissance {
    opacity: .5;
}

.lp-lisere-superadmin[b-bcch34t8f2] {
    --lp-couleur: #ffe600;
}

.lp-lisere-administrateur[b-bcch34t8f2] {
    --lp-couleur: #dc3545;
}

.lp-lisere-partenaire[b-bcch34t8f2] {
    --lp-couleur: #fd7e14;
}

.lp-lisere-super-utilisateur[b-bcch34t8f2] {
    --lp-couleur: #5f368d;
}

.lp-lisere-metier[b-bcch34t8f2] {
    --lp-couleur: #0a58ca;
}

.lp-lisere-connecte[b-bcch34t8f2] {
    --lp-couleur: #6c757d;
}
/* /Shared/MainLayout.razor.rz.scp.css */
.page[b-9336yg2ywt] {
    height: 100%;
    overflow: hidden;
    background-color: inherit;
}
[b-9336yg2ywt] .page-layout,
[b-9336yg2ywt] .page-layout > .dxbl-gridlayout-root,
[b-9336yg2ywt] .layout-item {
    background-color: var(--bs-body-bg, var(--dxbl-body-bg, #fff));
}

[b-9336yg2ywt] .content {
    padding: 1.1rem 2rem 0 2rem;
    overflow: auto;
}

/* /receptionv2 (2026-09-12) : son bloc figé (barre d'actions, commandes, synthèse) doit toucher le bandeau. La page compensait
   le padding haut par une marge négative, que position: sticky neutralise (le bloc était repoussé d'autant) : ici, pas de
   padding haut quand la zone de contenu héberge cette page. :has() — Chrome/Edge 105+, Firefox 121+. */
[b-9336yg2ywt] .content:has(> .rv2-page) {
    padding-top: 0;
}

@media (max-width: 1199.98px) {
    [b-9336yg2ywt] .page-layout > .dxbl-gridlayout-root {
        grid-template-columns: minmax(0, 1fr) !important;
    }
}

[b-9336yg2ywt] .fit-width {
    max-width: 100%;
}

[b-9336yg2ywt] .mw-1100 {
    max-width: 1100px;
}
/* /Shared/MenuUtilisateur.razor.rz.scp.css */
.menu-utilisateur[b-1regk5klgu] {
    position: relative;
    display: flex;
    align-items: center;
}

/* ---- avatar rond à initiales (bandeau + entête du panneau) ---- */

.mu-avatar-bouton[b-1regk5klgu] {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    border-radius: 50%;
    line-height: 0;
}

.mu-avatar-bouton:hover .mu-avatar[b-1regk5klgu],
.mu-avatar-bouton:focus-visible .mu-avatar[b-1regk5klgu] {
    box-shadow: 0 0 0 3px rgba(86, 61, 124, 0.25);
}

.mu-avatar[b-1regk5klgu] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--bs-primary, #563d7c);
    color: #fff;
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    user-select: none;
    transition: box-shadow 0.12s ease;
}

.mu-avatar-grand[b-1regk5klgu] {
    width: 48px;
    height: 48px;
    font-size: 1.05rem;
}

/* Couleur de la puissance de la personne (MenuUtilisateur.ClassesAvatar) : fonds et encres EXACTEMENT ceux de la
   pastille de puissance (PuissancePastille.razor.css), AA ≥ 4,5:1, gardés identiques par PuissancePastilleTests.
   Connecté n'a pas de classe : son avatar garde le violet primaire ci-dessus. Le Super Utilisateur, violet primaire
   lui aussi, s'en distingue par un anneau (INV-904). */
.mu-avatar-superadmin[b-1regk5klgu] {
    background: #ffe600;
    color: #111111;
    /* Cerclé de noir puis de jaune, comme sa pastille, pour se repérer de loin. Le cercle noir est une bordure : le
       halo du survol, une ombre, remplace le cercle jaune mais pas lui. */
    border: 2px solid #111111;
    box-shadow: 0 0 0 2px #ffe600;
}

.mu-avatar-administrateur[b-1regk5klgu] {
    background: #dc3545;
    color: #ffffff;
}

.mu-avatar-partenaire[b-1regk5klgu] {
    background: #fd7e14;
    color: #212529;
}

.mu-avatar-super-utilisateur[b-1regk5klgu] {
    background: #5f368d;
    color: #ffffff;
    /* Anneau de son fond, détaché du disque : il le distingue de Connecté, du même violet, sans infobulle (INV-904).
       Un contour, pas une ombre : le halo du survol, une ombre, s'y ajoute sans le remplacer. */
    outline: 2px solid #5f368d;
    outline-offset: 2px;
}

.mu-avatar-metier[b-1regk5klgu] {
    background: #0a58ca;
    color: #ffffff;
}

/* ---- panneau ---- */

/* Voile transparent plein écran : un clic hors du panneau le ferme (pattern WfWorkflow). */
.mu-voile[b-1regk5klgu] {
    position: fixed;
    inset: 0;
    z-index: 1040;
    background: transparent;
}

.mu-panneau[b-1regk5klgu] {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    z-index: 1050;
    width: 300px;
    max-height: 82vh;
    overflow-y: auto;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 10px;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.16);
    padding: 0.4rem 0;
}

.mu-entete[b-1regk5klgu] {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 0.9rem 1rem;
}

.mu-identite[b-1regk5klgu] {
    min-width: 0;
}

.mu-nom[b-1regk5klgu] {
    font-weight: 600;
    font-size: 1rem;
    color: #1f2328;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mu-sous-titre[b-1regk5klgu] {
    font-size: 0.8rem;
    color: #6b7280;
}

.mu-separateur[b-1regk5klgu] {
    border-top: 1px solid #ececef;
    margin: 0.35rem 0;
}

/* ---- lignes du menu ---- */

.mu-item[b-1regk5klgu] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    width: 100%;
    padding: 0.55rem 1rem;
    border: none;
    background: none;
    text-align: left;
    color: #1f2328;
    text-decoration: none;
    cursor: pointer;
    font-size: 0.925rem;
}

.mu-item:hover[b-1regk5klgu] {
    background: #f4f4f5;
    color: #1f2328;
    text-decoration: none;
}

.mu-icone[b-1regk5klgu] {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    color: #6b7280;
}

/* Ligne d'information (version du coffre) : même gabarit que les items, mais non cliquable. */
.mu-version[b-1regk5klgu] {
    color: #6b7280;
    font-size: 0.85rem;
    cursor: default;
}

.mu-version:hover[b-1regk5klgu] {
    background: none;
    color: #6b7280;
}

.mu-chevron[b-1regk5klgu] {
    margin-left: auto;
    color: #9ca3af;
    font-size: 1rem;
    line-height: 1;
    transition: transform 0.12s ease;
}

.mu-chevron-ouvert[b-1regk5klgu] {
    transform: rotate(90deg);
}

/* ---- sous-menus (sections en liste : Contrôle, Technique, Habilitations, Chorus Pro) ---- */

.mu-sous-liste[b-1regk5klgu] {
    position: relative;
    padding: 0.15rem 0 0.3rem;
}

/* Trait de guidage vertical aligné sous le centre de la colonne d'icônes (1rem + 16px/2),
   en ::before pour laisser le hover des sous-items couvrir toute la largeur du panneau. */
.mu-sous-liste[b-1regk5klgu]::before {
    content: "";
    position: absolute;
    left: calc(1rem + 8px);
    top: 0.15rem;
    bottom: 0.3rem;
    width: 1px;
    background: #e4e4e7;
}

/* Le texte d'un item parent commence à ~2.75rem (padding 1rem + icône 16px + gap 0.75rem) :
   4rem donne un retrait réellement visible des sous-items. */
.mu-sous-item[b-1regk5klgu] {
    padding: 0.4rem 1rem 0.4rem 4rem;
    font-size: 0.875rem;
    color: #374151;
}

/* ---- anonyme ---- */

.mu-lien-connexion[b-1regk5klgu] {
    background: none;
    border: none;
    cursor: pointer;
    color: var(--bs-primary, #563d7c);
    font-weight: 600;
    font-size: 0.925rem;
    padding: 0.35rem 0.75rem;
}

.mu-lien-connexion:hover[b-1regk5klgu] {
    text-decoration: underline;
}
/* /Shared/PaginationBandeau.razor.rz.scp.css */
/* Bandeau de pagination (Shared/PaginationBandeau.razor) — feuille ISOLÉE, classes préfixées pgb-.
   Le compte tient la gauche (c'est une information, pas une commande), les pages le centre,
   « Par page » la droite : la disposition de la maquette extranet-RFE.md §5. */

.pgb-bandeau[b-980bh0rqyi] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .75rem;
    padding-top: .5rem;
    border-top: 1px solid #dee2e6;
    font-size: .84rem;
}

.pgb-compte[b-980bh0rqyi] {
    flex: 1 1 0;
    color: #212529;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.pgb-sur[b-980bh0rqyi] {
    color: #6c757d;
}

.pgb-pages[b-980bh0rqyi] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: .2rem;
}

.pgb-pages .btn[b-980bh0rqyi] {
    min-width: 2.1rem;
    font-variant-numeric: tabular-nums;
}

/* Le rang courant garde la hauteur d'un bouton pour rester aligné, sans curseur ni survol. */
.pgb-courante[b-980bh0rqyi] {
    pointer-events: none;
    background-color: #e9ecef;
    color: #212529;
    font-weight: 600;
    opacity: 1;
}

.pgb-ellipse[b-980bh0rqyi] {
    padding: 0 .25rem;
    color: #6c757d;
}

.pgb-taille[b-980bh0rqyi] {
    flex: 1 1 0;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .4rem;
    margin-bottom: 0;
    color: #6c757d;
    white-space: nowrap;
}

.pgb-taille select[b-980bh0rqyi] {
    width: auto;
    font-size: .84rem;
}
/* /Shared/PrincipalPastille.razor.rz.scp.css */
/* Pastille de principal (compte ou groupe — INV-502, D39/D44) : fond clair + encre foncée pour tenir le contraste
   AA (≥ 4,5:1) en 11 px gras — chaque couple est celui des « emphasis » Bootstrap sur les fonds « subtle »
   (≈ 7:1 à 9:1). Elle PASSE À LA LIGNE dans sa cellule (D50 : la table ne se redimensionne jamais quand on
   ajoute quelqu'un) : white-space normal, à la différence de .ch-pill (nowrap). */
.pastille-principal[b-52qtwlr4xf] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    max-width: 100%;
    margin: 1px 4px 1px 0;
    padding: 1px 4px 1px 7px;
    border-radius: 10px;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.5;
    vertical-align: middle;
    white-space: normal;
    overflow-wrap: anywhere;
}

.pastille-principal-texte[b-52qtwlr4xf] {
    min-width: 0;
}

/* Compte d'annuaire (M-Files, Entra ID) : bleu. */
.pastille-principal-annuaire[b-52qtwlr4xf] {
    background: #cfe2ff;
    color: #052c65;
}

/* Compte local InvoiceUI : vert. */
.pastille-principal-local[b-52qtwlr4xf] {
    background: #d1e7dd;
    color: #0a3622;
}

/* Groupe interne InvoiceUI : violet (famille du primaire #5f368d de la charte). */
.pastille-principal-groupe-interne[b-52qtwlr4xf] {
    background: #e6dcf2;
    color: #3d1f66;
}

/* Groupe synchronisé depuis un annuaire (M-Files) : cyan. */
.pastille-principal-groupe-annuaire[b-52qtwlr4xf] {
    background: #cff4fc;
    color: #055160;
}

/* Compte désactivé : barré et atténué — il reste visible pour qu'on le retire (§16.5). */
.pastille-principal-barree .pastille-principal-texte[b-52qtwlr4xf] {
    text-decoration: line-through;
    opacity: .6;
}

/* Le × de retrait : même encre que la pastille, sans bord ni fond ; le fond apparaît au survol/focus. */
.pastille-principal-retirer[b-52qtwlr4xf] {
    flex: none;
    width: 16px;
    height: 16px;
    padding: 0;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: inherit;
    font-size: 13px;
    font-weight: 700;
    line-height: 16px;
    cursor: pointer;
}

.pastille-principal-retirer:hover[b-52qtwlr4xf],
.pastille-principal-retirer:focus-visible[b-52qtwlr4xf] {
    background: rgba(0, 0, 0, .12);
    outline: none;
}
/* /Shared/PuissancePastille.razor.rz.scp.css */
/* Pastille de puissance : APLAT FRANC (fond saturé, encre blanche ou noire, AA ≥ 4,5:1 en 10,5 px gras), en
   majuscules. La pastille de principal, elle, est un fond pâle à encre foncée : le violet du Super Utilisateur et le
   bleu du Métier ne se confondent donc ni avec le groupe interne ni avec le compte M-Files. Le liseré de la liste des
   profils (ListeProfils.razor.css) reprend exactement ces fonds, et l'avatar du menu utilisateur
   (MenuUtilisateur.razor.css) ces fonds et ces encres, sauf Connecté. */
.pastille-puissance[b-w4zt79bz0n] {
    display: inline-block;
    padding: 1px 7px;
    border-radius: 8px;
    font-size: 10.5px;
    font-weight: 800;
    letter-spacing: .03em;
    line-height: 1.5;
    text-transform: uppercase;
    vertical-align: middle;
    white-space: nowrap;
}

/* Superadmin : noir sur jaune vif, cerclé de noir puis de jaune, pour se voir de loin (≈ 15:1). */
.pastille-puissance-superadmin[b-w4zt79bz0n] {
    background: #ffe600;
    color: #111111;
    box-shadow: inset 0 0 0 1px #111111, 0 0 0 2px #ffe600;
}

/* Administrateur : rouge danger de la charte, blanc (≈ 4,5:1). */
.pastille-puissance-administrateur[b-w4zt79bz0n] {
    background: #dc3545;
    color: #ffffff;
}

/* Partenaire : orange de la charte, encre sombre (≈ 6,0:1 ; le blanc n'y tient pas). */
.pastille-puissance-partenaire[b-w4zt79bz0n] {
    background: #fd7e14;
    color: #212529;
}

/* Super Utilisateur : violet primaire de la charte, blanc (≈ 8,7:1). */
.pastille-puissance-super-utilisateur[b-w4zt79bz0n] {
    background: #5f368d;
    color: #ffffff;
}

/* Métier : bleu franc, blanc (≈ 6,4:1). */
.pastille-puissance-metier[b-w4zt79bz0n] {
    background: #0a58ca;
    color: #ffffff;
}

/* Connecté : gris franc, blanc (≈ 4,7:1). */
.pastille-puissance-connecte[b-w4zt79bz0n] {
    background: #6c757d;
    color: #ffffff;
}
/* /Shared/SourceFacturePastille.razor.rz.scp.css */
/* Pastille de source de la facture (INV-468) : petite, en gras, elle doit se voir sans écraser le libellé
   (« Détail », « Entête », le titre de la barre) à côté duquel elle est posée. Une couleur par source, prise dans
   la palette de la charte (Doc/charteGraphique.md) ; encre sombre sur les fonds clairs pour tenir le contraste AA
   en 11 px gras (orange : ≈ 6,0:1 avec #212529, 2,6:1 avec du blanc — note C066 de la réception v2). */
.pastille-source[b-0qgyufve9i] {
    display: inline-block;
    margin-left: 6px;
    padding: 1px 7px;
    border-radius: 10px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .04em;   /* pas de majuscules forcées : « reciTAL », « Chorus Pro » s'écrivent comme les marques */
    line-height: 1.4;
    vertical-align: middle;
    white-space: nowrap;
    cursor: help;
}

/* RFE : orange de la maquette v12 (celui de la réception v2), encre sombre. */
.pastille-source-rfe[b-0qgyufve9i] {
    background: #fd7e14;
    color: #212529;
}

/* Chorus Pro : violet primaire de la charte, blanc (≈ 8,6:1). */
.pastille-source-chorus[b-0qgyufve9i] {
    background: #5f368d;
    color: #ffffff;
}

/* Vantage (module M-Files ou connecteur) : vert succès, blanc (≈ 4,5:1). */
.pastille-source-vantage[b-0qgyufve9i] {
    background: #198754;
    color: #ffffff;
}

/* reciTAL et FlexiCapture, la lecture de PDF ordinaire : gris neutre, encre des codes de la charte. */
.pastille-source-recital[b-0qgyufve9i],
.pastille-source-flexi[b-0qgyufve9i] {
    background: #e9ecef;
    color: #495057;
}
/* /Shared/VerdieWidgetLayout.razor.rz.scp.css */
/* Widget iframe : compact, plein cadre, sans marges héritées. */
.verdie-widget[b-llpiknez56] {
    height: 100%;
    min-height: 100vh;
    padding: 0.5rem 0.75rem;
    background: #fff;
    overflow: auto;
}
