/* /Components/Layout/MainLayout.razor.rz.scp.css */
.page[b-cfcldoydbb] {
    position: relative;
    display: flex;
    flex-direction: column;
}

main[b-cfcldoydbb] {
    flex: 1;
}

.sidebar[b-cfcldoydbb] {
    background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%);
}

.top-row[b-cfcldoydbb] {
    background-color: var(--isis-surface-alt);
    border-bottom: 1px solid var(--isis-border);
    justify-content: flex-end;
    height: 3.5rem;
    display: flex;
    align-items: center;
}

    .top-row[b-cfcldoydbb]  a, .top-row[b-cfcldoydbb]  .btn-link {
        white-space: nowrap;
        margin-left: 1.5rem;
        text-decoration: none;
    }

    .top-row[b-cfcldoydbb]  a:hover, .top-row[b-cfcldoydbb]  .btn-link:hover {
        text-decoration: underline;
    }

    .top-row[b-cfcldoydbb]  a:first-child {
        overflow: hidden;
        text-overflow: ellipsis;
    }

@media (max-width: 640.98px) {
    .top-row[b-cfcldoydbb] {
        justify-content: space-between;
    }

    .top-row[b-cfcldoydbb]  a, .top-row[b-cfcldoydbb]  .btn-link {
        margin-left: 0;
    }
}

@media (min-width: 641px) {
    .page[b-cfcldoydbb] {
        flex-direction: row;
    }

    .sidebar[b-cfcldoydbb] {
        width: 250px;
        height: 100vh;
        position: sticky;
        top: 0;
    }

    .top-row[b-cfcldoydbb] {
        position: sticky;
        top: 0;
        z-index: 1;
    }

    .top-row.auth[b-cfcldoydbb]  a:first-child {
        flex: 1;
        text-align: right;
        width: 0;
    }

    .top-row[b-cfcldoydbb], article[b-cfcldoydbb] {
        padding-left: 2rem !important;
        padding-right: 1.5rem !important;
    }
}

#blazor-error-ui[b-cfcldoydbb] {
    color-scheme: light only;
    background: lightyellow;
    bottom: 0;
    box-shadow: var(--isis-elevation-1);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss[b-cfcldoydbb] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }
/* /Components/Layout/MobileBottomNav.razor.rz.scp.css */
.isis-m-bottomnav[b-iiklfcrr70] {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    border-top: 1px solid var(--isis-border);
    background: var(--isis-surface);
    padding-bottom: env(safe-area-inset-bottom);
}
.isis-m-tab[b-iiklfcrr70] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    min-height: 52px;              /* > 44px : cible tactile confortable */
    padding: 6px 2px;
    border: none;
    background: none;
    cursor: pointer;
    color: var(--isis-text-muted);
    font-size: 0.68rem;
    text-decoration: none;
    -webkit-tap-highlight-color: transparent;
}
.isis-m-tab .rzi[b-iiklfcrr70] {
    font-size: 22px;
}
.isis-m-tab.is-active[b-iiklfcrr70] {
    color: var(--isis-mod-monespace, var(--isis-accent));
    font-weight: 600;
}
.isis-m-tab:focus-visible[b-iiklfcrr70] {
    outline: 2px solid var(--isis-accent);
    outline-offset: 2px;
    box-shadow: var(--isis-elevation-focus);
    border-radius: var(--isis-radius);
}
/* Feuille « Plus » : glisse du bas. */
.isis-m-sheet-backdrop[b-iiklfcrr70] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.35);
    z-index: 40;
}
.isis-m-sheet[b-iiklfcrr70] {
    position: fixed;
    left: 50%;
    transform: translateX(-50%);
    bottom: 0;
    width: 100%;
    max-width: 480px;
    z-index: 41;
    background: var(--isis-surface);
    border-radius: var(--isis-radius-lg) var(--isis-radius-lg) 0 0;
    box-shadow: var(--isis-elevation-2);
    padding: 0.5rem 0.75rem calc(0.75rem + env(safe-area-inset-bottom));
    max-height: 70vh;
    overflow-y: auto;
}
.isis-m-sheet__grab[b-iiklfcrr70] {
    width: 36px;
    height: 4px;
    border-radius: 2px;
    background: var(--isis-border);
    margin: 0.5rem auto 0.75rem;
}
.isis-m-sheet__item[b-iiklfcrr70] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-height: 48px;
    padding: 0 0.5rem;
    color: var(--isis-text);
    text-decoration: none;
    border-bottom: 1px solid var(--isis-border);
}
.isis-m-sheet__item:last-child[b-iiklfcrr70] {
    border-bottom: none;
}
.isis-m-sheet__item .rzi[b-iiklfcrr70] {
    color: var(--isis-text-muted);
}

.isis-m-sheet__close[b-iiklfcrr70] {
    position: sticky;
    top: 0;
    z-index: 1;
    display: flex;
    margin: 0 0 0.25rem auto;
    background: var(--isis-surface);
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
    border: 0;
    border-radius: var(--isis-radius);
    color: var(--isis-text-muted);
    cursor: pointer;
}
.isis-m-sheet__close:focus-visible[b-iiklfcrr70] {
    outline: 2px solid var(--isis-accent);
    outline-offset: 2px;
    box-shadow: var(--isis-elevation-focus);
    border-radius: var(--isis-radius);
}
/* /Components/Layout/MobileHelpLink.razor.rz.scp.css */
.isis-m-help[b-2ou0i4i6zl] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: var(--isis-radius);
    color: var(--isis-text-muted);
    text-decoration: none;
}
.isis-m-help:hover[b-2ou0i4i6zl] {
    color: var(--isis-text);
    background: var(--isis-surface-soft);
}
.isis-m-help:focus-visible[b-2ou0i4i6zl] {
    outline: 2px solid var(--isis-current-mod);
    outline-offset: 2px;
}
/* /Components/Layout/MobileLayout.razor.rz.scp.css */
/* Coquille plein ecran : header fixe, contenu scrollable, bottom-nav fixe.
   100dvh = dynamic viewport (la barre d'URL mobile ne mange pas la hauteur). */
.isis-m-shell[b-no6nxtox4z] {
    display: flex;
    flex-direction: column;
    height: 100dvh;
    max-width: 480px;          /* regle de bord 1 : centre sur desktop, plein sur mobile */
    margin: 0 auto;
    background: var(--isis-surface);
    /* sur desktop, une bordure discrete delimite la coquille centree */
    border-inline: 1px solid var(--isis-border);
}
.isis-m-header[b-no6nxtox4z] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.5rem 0.75rem;
    padding-top: max(0.5rem, env(safe-area-inset-top));  /* encoche */
    border-bottom: 1px solid var(--isis-border);
    background: var(--isis-surface);
    /* Le header porte le menu utilisateur (AppUserMenu, panneau en position: absolute
       z-index: 1). Sans contexte d'empilement ici, ce 1 se compare a tout ce que la
       page positionne dans .isis-m-content et se fait recouvrir. On monte la CELLULE,
       au-dessus de la bottom-nav (40/41) : meme remede que la coque desktop. */
    position: relative;
    z-index: 50;
}
.isis-m-header__title[b-no6nxtox4z] {
    font-weight: 650;
    font-size: 1.05rem;
    color: var(--isis-text);
    /* garde de largeur : un nom utilisateur long (frequent MA/CI) ne doit pas
       pousser le titre hors champ ni deborder le header (qui n'a pas d'overflow). */
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.isis-m-header__actions[b-no6nxtox4z] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    flex: 0 0 auto;
}
/* Borne la pilule utilisateur reutilisee du desktop : sinon un nom long deborde. */
.isis-m-header__actions .isis-user-pill__text[b-no6nxtox4z] {
    max-width: 96px;
}
.isis-m-header__actions .isis-user-pill__name[b-no6nxtox4z],
.isis-m-header__actions .isis-user-pill__role[b-no6nxtox4z] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.isis-m-content[b-no6nxtox4z] {
    flex: 1 1 auto;
    overflow-y: auto;
    overflow-x: hidden;        /* jamais de scroll horizontal a 390px */
    -webkit-overflow-scrolling: touch;
    padding: 0.75rem;
    /* place pour un FAB flottant (52px + son offset au-dessus de la bottom-nav) :
       sans ca, le dernier element de contenu passe sous le FAB en fin de scroll. */
    padding-bottom: 5.5rem;
}
/* La bottom-nav est rendue par MobileBottomNav (ilot) : son flex-shrink doit
   etre pose ici, sur l'enfant direct de la coquille, car le CSS scope de
   MobileBottomNav ne peut pas atteindre son propre element racine depuis le
   parent. On cible donc le composant via ::deep. */
[b-no6nxtox4z] .isis-m-bottomnav {
    flex: 0 0 auto;
}
/* /Components/Layout/PageAssistButton.razor.rz.scp.css */
.isis-assist[b-in7radibm8] { position: relative; }
.isis-assist__drawer[b-in7radibm8] {
    position: fixed; top: var(--isis-header-h); right: 0; bottom: 0;
    width: var(--isis-assist-width); max-width: 100vw;
    display: flex; flex-direction: column;
    background: var(--isis-surface); border-left: 1px solid var(--isis-border);
    box-shadow: var(--isis-elevation-2); z-index: 1040;
}
.isis-assist__drawer--full-height[b-in7radibm8] { top: 0; }
.isis-assist__drawer[hidden][b-in7radibm8] { display: none; }
.isis-assist__head[b-in7radibm8] { display: flex; align-items: flex-end; border-bottom: 1px solid var(--isis-border); padding: 0 var(--isis-space-sm); }
.isis-assist__tabs[b-in7radibm8] { display: flex; gap: var(--isis-space-xs); }
.isis-assist__tab[b-in7radibm8] { background: none; border: 0; border-bottom: 2px solid transparent; padding: 10px; font-weight: 600; color: var(--isis-text-muted); cursor: pointer; }
.isis-assist__tab[aria-selected="true"][b-in7radibm8] { color: var(--isis-current-mod); border-bottom-color: var(--isis-current-mod); }
.isis-assist__tab:focus-visible[b-in7radibm8], .isis-assist__close:focus-visible[b-in7radibm8] { outline: 2px solid var(--isis-current-mod); outline-offset: 2px; }
.isis-assist__count[b-in7radibm8] { margin-inline-start: 4px; }
.isis-assist__close[b-in7radibm8] { margin-inline-start: auto; background: none; border: 0; padding: 8px; color: var(--isis-text-muted); cursor: pointer; }
.isis-assist__body[b-in7radibm8] { flex: 1; overflow: auto; padding: var(--isis-space-md); }
.isis-assist__title[b-in7radibm8] { margin: 0 0 var(--isis-space-sm); font-size: var(--isis-fs-lg); font-weight: 600; color: var(--isis-text); }
.isis-assist__foot[b-in7radibm8] { flex: 0 0 auto; border-top: 1px solid var(--isis-border); padding: var(--isis-space-sm) var(--isis-space-md); }
.isis-assist__foot--fin[b-in7radibm8] { text-align: right; }
.isis-assist__foot a[b-in7radibm8] { color: var(--isis-current-mod); font-weight: 600; }
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-tgnoq0elra],
.components-reconnect-repeated-attempt-visible[b-tgnoq0elra],
.components-reconnect-failed-visible[b-tgnoq0elra],
.components-pause-visible[b-tgnoq0elra],
.components-resume-failed-visible[b-tgnoq0elra],
.components-rejoining-animation[b-tgnoq0elra] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-tgnoq0elra],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-tgnoq0elra],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-tgnoq0elra],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-tgnoq0elra],
#components-reconnect-modal.components-reconnect-retrying[b-tgnoq0elra],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-tgnoq0elra],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-tgnoq0elra],
#components-reconnect-modal.components-reconnect-failed[b-tgnoq0elra],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-tgnoq0elra] {
    display: block;
}


#components-reconnect-modal[b-tgnoq0elra] {
    --isis-signal: #0fb5a8;
    background-color: var(--isis-surface, #fff);
    color: var(--isis-text, #1f2328);
    width: 20rem;
    margin: 20vh auto;
    padding: 2rem;
    border: 1px solid var(--isis-border, #e4e7ec);
    border-radius: var(--isis-radius-lg, 12px);
    box-shadow: var(--isis-elevation-2, 0 28px 54px -14px rgba(16, 24, 40, 0.28));
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-tgnoq0elra 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-tgnoq0elra 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-tgnoq0elra 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

/* showModal() donne le focus au <dialog> → on masque son anneau de focus par
   défaut (le conteneur n'est pas un contrôle ; les boutons gardent leur focus). */
#components-reconnect-modal:focus[b-tgnoq0elra],
#components-reconnect-modal:focus-visible[b-tgnoq0elra] {
    outline: none;
}

#components-reconnect-modal[b-tgnoq0elra]::backdrop {
    background-color: rgba(0, 0, 0, 0.4);
    animation: components-reconnect-modal-fadeInOpacity-b-tgnoq0elra 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-tgnoq0elra {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-tgnoq0elra {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-tgnoq0elra {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-tgnoq0elra] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

.components-reconnect-logo[b-tgnoq0elra] {
    width: 40px;
    height: 40px;
    display: block;
}

/* Visuel d'accueil du tenant (login_page_logo) réutilisé ici : plus grand que le
   logo produit, ratio préservé. */
.components-reconnect-logo--brand[b-tgnoq0elra] {
    width: auto;
    height: auto;
    max-width: 200px;
    max-height: 80px;
    object-fit: contain;
}

#components-reconnect-modal p[b-tgnoq0elra] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-tgnoq0elra] {
    border: 0;
    background-color: var(--isis-accent, #0e7490);
    color: #fff;
    padding: 0.5rem 1.4rem;
    border-radius: var(--isis-radius, 8px);
    font-weight: 600;
    cursor: pointer;
}

    #components-reconnect-modal button:hover[b-tgnoq0elra] {
        background-color: var(--isis-accent-strong, #0c5e72);
    }

    #components-reconnect-modal button:active[b-tgnoq0elra] {
        background-color: var(--isis-accent, #0e7490);
    }

.components-rejoining-animation[b-tgnoq0elra] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-tgnoq0elra] {
        position: absolute;
        border: 3px solid var(--isis-signal, #0fb5a8);
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-tgnoq0elra 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-tgnoq0elra] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-tgnoq0elra {
    0% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    4.9% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    5% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 1;
    }

    100% {
        top: 0px;
        left: 0px;
        width: 80px;
        height: 80px;
        opacity: 0;
    }
}
/* /Components/Pages/Admin/AppearancePage.razor.rz.scp.css */
.apparence-dirty[b-5suxaj1ymt] {
    align-self: center;
    font-size: 0.75rem;
    color: var(--isis-warning-text);
}
/* /Components/Pages/Admin/CompteExterneSection.razor.rz.scp.css */
.compte-externe[b-ivjfwg13g5] {
    margin-top: var(--isis-space-md);
}

.compte-externe__erreur[b-ivjfwg13g5] {
    margin-top: var(--isis-space-xs);
    color: var(--isis-danger-text);
    font-size: var(--isis-fs-sm, 0.82rem);
}

.compte-externe__champ[b-ivjfwg13g5] {
    margin-top: var(--isis-space-sm);
}

.compte-externe .required[b-ivjfwg13g5] {
    color: var(--isis-danger-text);
    margin-left: 2px;
}
/* /Components/Pages/Admin/GeocodingBatchPage.razor.rz.scp.css */
.geocodage__info[b-uof2ksbucm] {
    margin: 0;
}

.geocodage__info--suite[b-uof2ksbucm] {
    margin-top: 0.5rem;
}

.geocodage__switch[b-uof2ksbucm] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin-top: 0.6rem;
}

[b-uof2ksbucm] .geocodage__switch-label {
    margin: 0;
}

.geocodage__limite[b-uof2ksbucm] {
    max-width: 320px;
    margin-top: 0.8rem;
}

.geocodage__actions[b-uof2ksbucm] {
    margin-top: 1rem;
}

.geocodage__progression[b-uof2ksbucm] {
    margin-top: 1rem;
}

.geocodage__progression-ligne[b-uof2ksbucm] {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.5rem;
    font-size: 0.85rem;
    margin-bottom: 0.3rem;
}

.geocodage__progression-aide[b-uof2ksbucm] {
    margin-top: 0.3rem;
}

.geocodage__resultat[b-uof2ksbucm] {
    gap: 1.6rem;
    flex-wrap: wrap;
}

.geocodage__exemples[b-uof2ksbucm] {
    margin-top: 0.8rem;
}

.geocodage__exemples summary[b-uof2ksbucm] {
    cursor: pointer;
    font-size: 0.875rem;
    color: var(--isis-text-muted);
}

.geocodage__exemples ul[b-uof2ksbucm] {
    margin-top: 0.4rem;
    font-family: var(--isis-font-mono);
    font-size: 0.8rem;
    color: var(--isis-text-muted);
}
/* /Components/Pages/Admin/GeoLayerTypesPage.razor.rz.scp.css */
.geo-type__icon[b-aojnpsqcoz] {
    font-size: 18px;
    vertical-align: middle;
    color: var(--geo-type-color, var(--isis-text-muted));
}

.geo-type__swatch[b-aojnpsqcoz] {
    display: inline-block;
    width: 14px;
    height: 14px;
    border-radius: var(--isis-radius-sm);
    background: var(--geo-type-color);
    border: 1px solid var(--isis-border);
    vertical-align: middle;
}

.geo-type__hex[b-aojnpsqcoz] {
    margin-left: 0.4rem;
    font-family: var(--isis-font-mono);
    font-size: 0.78rem;
    color: var(--isis-text-muted);
}

.geo-type__vide[b-aojnpsqcoz] {
    color: var(--isis-text-muted);
}

/* Le bouton « Effacer la recherche » de la page remplace la croix native : une seule croix. */
.isis-filter-bar__search input[type="search"][b-aojnpsqcoz]::-webkit-search-cancel-button {
    -webkit-appearance: none;
    appearance: none;
}
/* /Components/Pages/Admin/HelpAssistantSettingsPage.razor.rz.scp.css */
.hasp-switch[b-rkdvbd2fdv] {
    display: flex;
    gap: var(--isis-space-sm);
    align-items: center;
    cursor: pointer;
}
.hasp-switch__text[b-rkdvbd2fdv] { font-size: var(--isis-fs-md); }
.isis-form-linear__actions[b-rkdvbd2fdv]  .hasp-dirty { color: var(--isis-warning-text); }
[b-rkdvbd2fdv] .hasp-question { white-space: normal; overflow-wrap: anywhere; }
/* /Components/Pages/Admin/IncompatibilitesPage.razor.rz.scp.css */
.incompat__info[b-j76jddua5c] {
    margin: 0;
}

.incompat__info--suite[b-j76jddua5c] {
    margin-top: 0.5rem;
}
/* /Components/Pages/Admin/JourFerieListPage.razor.rz.scp.css */
.jf__info[b-3kuytb25gc] {
    margin: 0;
}

.jf__info--suite[b-3kuytb25gc] {
    margin-top: 0.5rem;
}

.jf__num[b-3kuytb25gc] {
    font-variant-numeric: tabular-nums;
}

.jf__notes[b-3kuytb25gc] {
    font-size: 0.85rem;
}

.jf__date-apercu[b-3kuytb25gc] {
    color: var(--isis-text-muted);
    font-size: 0.85rem;
}

.jf__notes-apercu[b-3kuytb25gc] {
    margin-top: 0.5rem;
    color: var(--isis-text-muted);
    font-size: 0.88rem;
    white-space: pre-wrap;
}

.jf__jour[b-3kuytb25gc] {
    font-size: 0.85rem;
}

.jf__modifie[b-3kuytb25gc] {
    color: var(--isis-text-muted);
    font-size: 0.82rem;
}
/* /Components/Pages/Admin/OrganisationEmailDomainsSection.razor.rz.scp.css */
.org-domaines[b-68ei0h4icw] {
    list-style: none;
    margin: 0 0 var(--isis-space-sm);
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--isis-space-xs);
}
.org-domaines__item[b-68ei0h4icw] {
    display: flex;
    align-items: center;
    gap: var(--isis-space-sm);
    font-family: var(--isis-font-mono);
    font-size: var(--isis-fs-md);
}

.org-domaines__erreur[b-68ei0h4icw] {
    margin-top: var(--isis-space-xs);
    color: var(--isis-danger-text);
    font-size: var(--isis-fs-sm, 0.82rem);
}

/* Alerte d'état dégradé : le thème pose texte et fond du même orange (≈ 2:1) ; on rétablit l'encre foncée. */
.org-domaines-section[b-68ei0h4icw]  .rz-alert.rz-warning.rz-shade-lighter {
    --rz-alert-background-color: var(--isis-warning-soft);
    --rz-alert-color: var(--isis-warning-text);
    --rz-alert-title-color: var(--isis-warning-text);
    --rz-alert-icon-color: var(--isis-warning-text);
}

.org-domaines-section[b-68ei0h4icw]  .rz-button[aria-disabled="true"] {
    opacity: 0.55;
    cursor: not-allowed;
}
/* /Components/Pages/Admin/PackApplicationPage.razor.rz.scp.css */
.isis-pack-section[b-6if7m1i868] { margin-top: var(--isis-space-lg); }
.isis-pack-section__titre[b-6if7m1i868] { font-size: 1rem; font-weight: 600; margin: 0 0 var(--isis-space-sm); color: var(--isis-text); }
.isis-pack-actions[b-6if7m1i868] { display: flex; align-items: center; gap: var(--isis-space-sm); margin-top: var(--isis-space-md); }
.isis-pack-horsoutil[b-6if7m1i868] { margin: var(--isis-space-sm) 0 0; padding-left: 1.2rem; color: var(--isis-text-muted); }
.isis-pack-motif[b-6if7m1i868] { color: var(--isis-text-muted); margin: 0 0 var(--isis-space-sm); }
.isis-pack-lot[b-6if7m1i868] { margin-top: var(--isis-space-md); }
.isis-pack-lot > summary[b-6if7m1i868] { cursor: pointer; font-weight: 600; color: var(--isis-text); }
.isis-pack-lot > summary:focus-visible[b-6if7m1i868],
.isis-pack-lien:focus-visible[b-6if7m1i868] { outline: 2px solid var(--isis-current-mod); outline-offset: 2px; }
.isis-pack-lien[b-6if7m1i868] { background: none; border: 0; padding: 0; font: inherit; color: var(--isis-accent); text-decoration: underline; cursor: pointer; }
.isis-reprise-upload:focus-within[b-6if7m1i868] { outline: 2px solid var(--isis-current-mod); outline-offset: 2px; }
.isis-pack-section__sous-titre[b-6if7m1i868] { margin-top: var(--isis-space-md); }
.isis-pack-aide[b-6if7m1i868] { color: var(--isis-text-muted); margin: 0 0 var(--isis-space-sm); }
.isis-pack-lien[b-6if7m1i868] { min-height: 24px; }
.isis-reprise-upload.is-disabled[b-6if7m1i868] { opacity: 0.6; cursor: not-allowed; }
.isis-grid--pack-executions .isis-grid__row[b-6if7m1i868] { cursor: pointer; }
/* /Components/Pages/Admin/PartnerEmailDomainsSection.razor.rz.scp.css */
.part-domaines[b-qwms6dhw3d] {
    list-style: none;
    margin: 0 0 var(--isis-space-sm);
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--isis-space-xs);
}
.part-domaines__item[b-qwms6dhw3d] {
    display: flex;
    align-items: center;
    gap: var(--isis-space-sm);
    font-family: var(--isis-font-mono);
    font-size: var(--isis-fs-md);
}

.part-domaines__erreur[b-qwms6dhw3d] {
    margin-top: var(--isis-space-xs);
    color: var(--isis-danger-text);
    font-size: var(--isis-fs-sm, 0.82rem);
}

/* Alerte d'état dégradé : le thème pose texte et fond du même orange (≈ 2:1) ; on rétablit l'encre foncée. */
.part-domaines-section[b-qwms6dhw3d]  .rz-alert.rz-warning.rz-shade-lighter {
    --rz-alert-background-color: var(--isis-warning-soft);
    --rz-alert-color: var(--isis-warning-text);
    --rz-alert-title-color: var(--isis-warning-text);
    --rz-alert-icon-color: var(--isis-warning-text);
}

.part-domaines-section[b-qwms6dhw3d]  .rz-button[aria-disabled="true"] {
    opacity: 0.55;
    cursor: not-allowed;
}
/* /Components/Pages/Admin/RepriseDonneesPage.razor.rz.scp.css */
/* Le champ fichier est transparent et recouvre son libellé (isis-theme.css) : sans ce relais,
   le focus clavier arrivait sur un élément invisible, sans aucun repère visuel (WCAG 2.4.7). */
.isis-reprise-upload:focus-within[b-nmpgng58mu] {
    outline: 2px solid var(--isis-current-mod);
    outline-offset: 2px;
}
/* /Components/Pages/Admin/RevuesAccesPage.razor.rz.scp.css */
/* La classe globale isis-grid__col-num n'est câblée que pour quelques grilles : sans cette
   règle, les compteurs de campagne s'alignaient à gauche comme du texte. */
.isis-grid--revue-campagnes .isis-grid__col-num[b-hjgk684ed7] {
    justify-content: flex-end;
    text-align: right;
    font-variant-numeric: tabular-nums;
}
/* /Components/Pages/Admin/RolesList.razor.rz.scp.css */
.rl-flush[b-v678ighk8s] {
    margin: 0;
}
/* /Components/Pages/Admin/SecurityPolicyPage.razor.rz.scp.css */
.spp-flush[b-8ppoyb3jhf] { margin: 0; }
.spp-switch[b-8ppoyb3jhf] {
    display: flex;
    gap: var(--isis-space-sm);
    align-items: center;
    cursor: pointer;
}
.spp-switch__text[b-8ppoyb3jhf] { font-size: var(--isis-fs-md); }
/* RadzenText rend sa propre racine : la portée du fichier ne l'atteint qu'à travers ::deep. */
.isis-form-linear__actions[b-8ppoyb3jhf]  .spp-dirty { color: var(--isis-warning-text); }
/* /Components/Pages/Admin/Surveillance/AccountSurveillancePage.razor.rz.scp.css */
.acs-strong[b-6d3tjlf7lt] { font-weight: 600; }
.acs-login[b-6d3tjlf7lt] { margin-left: 0; }
.acs-small[b-6d3tjlf7lt] { font-size: var(--isis-fs-sm); }
.acs-muted[b-6d3tjlf7lt] { color: var(--isis-text-muted); font-weight: 400; }
.acs-tabular[b-6d3tjlf7lt] { font-variant-numeric: tabular-nums; }
.acs-num[b-6d3tjlf7lt] { font-variant-numeric: tabular-nums; text-align: center; }
.acs-mono[b-6d3tjlf7lt] {
    font-variant-numeric: tabular-nums;
    font-family: var(--isis-font-mono);
    font-size: var(--isis-fs-sm);
}
/* /Components/Pages/Admin/Surveillance/AuditEventListPage.razor.rz.scp.css */
.aud-period-choices[b-lh7t5b1cwl] { display: flex; flex-wrap: wrap; gap: var(--isis-space-xs); }
.aud-mono[b-lh7t5b1cwl] { font-family: var(--isis-font-mono); font-size: var(--isis-fs-sm); }
.aud-mono-base[b-lh7t5b1cwl] { font-family: var(--isis-font-mono); }
.aud-tabular[b-lh7t5b1cwl] { font-variant-numeric: tabular-nums; }
.aud-muted[b-lh7t5b1cwl] { color: var(--isis-text-muted); }
.aud-italic[b-lh7t5b1cwl] { font-style: italic; }
.aud-small[b-lh7t5b1cwl] { font-size: var(--isis-fs-sm); }
.aud-base[b-lh7t5b1cwl] { font-size: var(--isis-fs-base); }
.aud-caption[b-lh7t5b1cwl] { font-size: var(--isis-fs-xs); }
.aud-error[b-lh7t5b1cwl] {
    margin-top: var(--isis-space-md);
    padding: var(--isis-space-sm) var(--isis-space-md);
    background: var(--isis-danger-soft);
    border: 1px solid var(--isis-danger);
    border-radius: var(--isis-radius-sm);
    font-size: var(--isis-fs-sm);
    white-space: pre-wrap;
    color: var(--isis-danger-text);
}
.aud-error__title[b-lh7t5b1cwl] { display: block; margin-bottom: var(--isis-space-xs); }
.aud-useragent[b-lh7t5b1cwl] {
    margin-top: var(--isis-space-sm);
    font-size: var(--isis-fs-xs);
    color: var(--isis-text-muted);
    word-break: break-all;
}
.aud-empty-payload[b-lh7t5b1cwl] {
    font-size: var(--isis-fs-sm);
    color: var(--isis-text-muted);
    font-style: italic;
    padding: var(--isis-space-sm) 0;
}
/* /Components/Pages/Admin/Surveillance/AuditLogListPage.razor.rz.scp.css */
.audit-log__note[b-jpfjqabixt] {
    font-size: 0.82rem;
    color: var(--isis-text-muted);
    font-style: italic;
    padding: 0.5rem 0;
}

.audit-log__info-p[b-jpfjqabixt] { margin: 0; }
.audit-log__info-p--next[b-jpfjqabixt] { margin-top: 0.5rem; }
.audit-log__chips[b-jpfjqabixt] { display: flex; flex-wrap: wrap; gap: 0.3rem; }
.audit-log__cell-date[b-jpfjqabixt] {
    font-variant-numeric: tabular-nums;
    font-family: var(--isis-font-mono);
    font-size: 0.78rem;
}
.audit-log__cell-table[b-jpfjqabixt] { font-family: var(--isis-font-mono); font-size: 0.8rem; }
.audit-log__cell-pk[b-jpfjqabixt] {
    font-family: var(--isis-font-mono);
    font-size: 0.72rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.audit-log__cell-count[b-jpfjqabixt] { text-align: center; font-variant-numeric: tabular-nums; }
.audit-log__dash[b-jpfjqabixt] { color: var(--isis-text-muted); font-size: 0.78rem; }
.audit-log__detail-date[b-jpfjqabixt] {
    font-variant-numeric: tabular-nums;
    color: var(--isis-text-muted);
    font-size: 0.82rem;
}
[b-jpfjqabixt] .audit-log__detail-table { font-family: var(--isis-font-mono); font-size: 0.95rem; }
.audit-log__detail-pk[b-jpfjqabixt] {
    font-family: var(--isis-font-mono);
    font-size: 0.72rem;
    color: var(--isis-text-muted);
    word-break: break-all;
}
.audit-log__actor[b-jpfjqabixt] { font-size: 0.85rem; }
.audit-log__actor--system[b-jpfjqabixt] { color: var(--isis-text-muted); font-style: italic; }
/* /Components/Pages/Admin/Surveillance/TenantHealthPage.razor.rz.scp.css */
.tenant-health__pair[b-3nswy1332l] { display: contents; }

.tenant-health__muted[b-3nswy1332l] {
    color: var(--isis-text-muted);
    font-weight: 400;
}
.tenant-health__muted--md[b-3nswy1332l] { font-size: 0.95rem; }
.tenant-health__muted--sm[b-3nswy1332l] { font-size: 0.85rem; }
.tenant-health__muted--gap[b-3nswy1332l] { margin-left: 0.5rem; }

.tenant-health__lede[b-3nswy1332l] {
    font-size: 0.85rem;
    color: var(--isis-text-muted);
    margin: 0 0 0.75rem 0;
    max-width: 70ch;
}

.tenant-health__kpi-date[b-3nswy1332l] { font-size: 0.95rem; }
.tenant-health__mono-sm[b-3nswy1332l] { font-size: 0.78rem; }
.tenant-health__cta-inline[b-3nswy1332l] { display: inline-flex; }
/* /Components/Pages/Admin/UserDetail.razor.rz.scp.css */
.user-detail__span-all[b-cnqb1nhi10] { grid-column: 1 / -1; }
.user-detail__mono[b-cnqb1nhi10] { font-family: var(--isis-font-mono); }
.user-detail__ua[b-cnqb1nhi10] { font-size: 0.8rem; color: var(--isis-text-muted); }
.user-detail__pair[b-cnqb1nhi10] { display: contents; }

.user-detail__email[b-cnqb1nhi10] { display: flex; flex-direction: column; gap: var(--isis-space-xs); margin-top: var(--isis-space-sm); }
.user-detail__email-row[b-cnqb1nhi10] { display: flex; flex-wrap: wrap; align-items: center; gap: var(--isis-space-sm); }
.user-detail__email-row[b-cnqb1nhi10]  .rz-button { flex: 0 0 auto; white-space: nowrap; }
.user-detail__email-ecart[b-cnqb1nhi10] {
    display: flex; flex-wrap: wrap; align-items: center; gap: var(--isis-space-xs);
    color: var(--isis-warning-text);
}

.user-detail__actions-envoi[b-cnqb1nhi10]  .rz-button[aria-disabled="true"] {
    opacity: 0.55;
    cursor: not-allowed;
}

/* .helper n'est stylé globalement que sous .isis-form-linear : sans cette règle, la phrase et son lien n'ont pas la même taille. */
.user-detail__actions-envoi .helper[b-cnqb1nhi10] {
    font-size: 0.78rem;
    line-height: 1.35;
    color: var(--isis-text-muted);
}
.user-detail__actions-envoi .helper .isis-text-link[b-cnqb1nhi10] {
    font-size: inherit;
    text-decoration: underline;
}
/* /Components/Pages/Admin/UsersList.razor.rz.scp.css */
.users-list__chips[b-nngt2wejzs] { display: flex; flex-wrap: wrap; gap: 0.3rem; }

.isis-sans-compte[b-nngt2wejzs] { display: flex; flex-direction: column; gap: var(--isis-space-md); }
.isis-sans-compte__bar[b-nngt2wejzs] { display: flex; align-items: center; justify-content: flex-end; gap: var(--isis-space-md); }

/* Cible tactile minimale (WCAG 2.5.8) : le bouton Small de Radzen descend sous 24 px. */
.isis-sans-compte[b-nngt2wejzs]  .isis-sans-compte__row-btn { min-width: 24px; min-height: 24px; }
/* /Components/Pages/Aide/AideCentrePage.razor.rz.scp.css */
.isis-help-modules[b-6nejlu6hsm] {
    list-style: none;
    margin: var(--isis-space-md) 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--isis-space-xs);
    max-width: 32rem;
}

.isis-help-modules a[b-6nejlu6hsm] {
    display: block;
    padding: var(--isis-space-sm) var(--isis-space-md);
    border: 1px solid var(--isis-border);
    border-radius: var(--isis-radius);
    background: var(--isis-surface);
    color: var(--isis-text);
    font-size: var(--isis-fs-md);
    text-decoration: none;
}

.isis-help-modules a:hover[b-6nejlu6hsm] {
    border-color: var(--isis-current-mod, var(--isis-accent));
    color: var(--isis-current-mod, var(--isis-accent));
}

.isis-help-page__empty[b-6nejlu6hsm],
.isis-help-page__status[b-6nejlu6hsm],
.isis-help-page__error[b-6nejlu6hsm] {
    margin: var(--isis-space-md) 0 0;
    font-size: var(--isis-fs-base);
    color: var(--isis-text-muted);
}

.isis-help-page__error[b-6nejlu6hsm] {
    color: var(--isis-danger, var(--isis-text));
}

.isis-help-nav a[aria-current="page"][b-6nejlu6hsm] {
    background: color-mix(in srgb, var(--isis-current-mod, var(--isis-accent)) 12%, transparent);
    color: var(--isis-text);
    font-weight: 600;
}

.isis-help-modules a:focus-visible[b-6nejlu6hsm],
.isis-help-nav a:focus-visible[b-6nejlu6hsm] {
    outline: 2px solid var(--isis-current-mod, var(--isis-accent));
    outline-offset: 2px;
    border-radius: var(--isis-radius);
}

.isis-help-nav__search[b-6nejlu6hsm]  .isis-help-nav__search-icon {
    font-size: var(--isis-fs-sm);
    color: var(--isis-text-muted);
}

.isis-help-nav__sr[b-6nejlu6hsm] {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}
/* /Components/Pages/Dev/TdbDemoPage.razor.rz.scp.css */
/* CSS isolée (Blazor scoped styles) — pas de style inline (ronde 1/5 puis 2/5) : un
   anti-patron dans une page prise comme référence par les futures pages hôtes se
   recopierait. Scopée à cette page plutôt qu'ajoutée à isis-theme.css : ce sont des textes
   et une mise en scène de démonstration, pas un vocabulaire du socle partagé. */
.tdb-demo-erreur[b-6z9f4p7zrz] {
    color: var(--isis-danger);
}

/* Largeurs du squelette de chargement — classes modificatrices plutôt qu'un style inline
   (ronde 2/5), sur le modèle exact d'EntityHistoryPanel.razor :
   isis-hist__skeleton-line--short/--medium dans isis-theme.css:41534-41538. Le repère
   (hauteur, marge) va dans la classe de base ; seule la largeur varie par modificateur. */
.tdb-demo-skeleton-line[b-6z9f4p7zrz] {
    height: 14px;
    margin-top: var(--isis-space-xs);
}
.tdb-demo-skeleton-line--wide[b-6z9f4p7zrz] { width: 70%; }
.tdb-demo-skeleton-line--narrow[b-6z9f4p7zrz] { width: 45%; }
/* /Components/Pages/Feedback/AvisList.razor.rz.scp.css */
.avis-info[b-c091ntj38w] { margin: 0; }

.avis-col-center[b-c091ntj38w] { text-align: center; }

.avis-sub[b-c091ntj38w] {
    font-size: 0.75rem;
    color: var(--isis-text-soft);
    margin-top: 2px;
}

.avis-body[b-c091ntj38w] {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    overflow-wrap: anywhere;
}

.avis-date[b-c091ntj38w] {
    font-variant-numeric: tabular-nums;
    color: var(--isis-text-soft);
}

.avis-num[b-c091ntj38w] { font-variant-numeric: tabular-nums; }

[b-c091ntj38w] .avis-vote-icon { font-size: 16px; }
/* /Components/Pages/Forbidden.razor.rz.scp.css */
/* Focus programmatique de FocusOnNavigate (Routes.razor) : titre non navigable, pas d'anneau. */
.isis-login[b-wnu0jwdg72]  h1:focus { outline: none; }
/* Deux libellés en capitales sur une carte de 400 px : passer à la ligne plutôt que couper un bouton. */
.isis-login[b-wnu0jwdg72]  .rz-button { white-space: nowrap; }
/* /Components/Pages/ForgotPassword.razor.rz.scp.css */
/* Focus programmatique de FocusOnNavigate (Routes.razor) : titre non navigable, pas d'anneau. */
.isis-login[b-p51zwy2ohw]  h1:focus { outline: none; }
/* /Components/Pages/Gescom/CommandesLieesPage.razor.rz.scp.css */
/* Bascule d'agrégation + grilles par axe (lot 2, hub santé client, tâche 7). Aucune couleur en
   dur — tokens --isis-* uniquement, lisibles en clair et en sombre (cf. --isis-on-accent pour le
   texte du segment actif, jamais #fff en dur). */

.isis-hub-aggbar[b-pull9rihrp] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--isis-space-md);
    /* Pas de margin-top : la barre est un enfant direct de .isis-hub-volet (re-revue lot 2,
       sortie du volet repliable), dont le gap flex column espace déjà les enfants. Un margin-top
       ici s'ajouterait au gap plutôt que de le remplacer. */
}

.isis-hub-aggbar__label[b-pull9rihrp] {
    font-size: 0.78rem;
    color: var(--isis-text-soft);
}

.isis-hub-aggbar__count[b-pull9rihrp] {
    margin-left: auto;
    font-size: 0.78rem;
    color: var(--isis-text-soft);
    font-variant-numeric: tabular-nums;
}

/* Segmented control générique — même patron que .isis-pilotage-cycle .isis-seg (isis-theme.css),
   scopé ici pour ne pas dépendre d'un conteneur de page particulier. */
.isis-seg[b-pull9rihrp] {
    display: inline-flex;
    background: var(--isis-surface);
    border: 1px solid var(--isis-border);
    border-radius: var(--isis-radius);
    overflow: hidden;
}

.isis-seg__btn[b-pull9rihrp] {
    padding: 0.32rem 0.7rem;
    font-size: 0.8rem;
    line-height: 1.2;
    color: var(--isis-text-muted);
    background: none;
    border: none;
    border-right: 1px solid var(--isis-border);
    text-decoration: none;
    cursor: pointer;
    font-family: inherit;
}

.isis-seg__btn:last-child[b-pull9rihrp] { border-right: none; }

/* aria-pressed="true" — jamais aria-pressed="false" comme sélecteur : Blazor OMET l'attribut
   quand la valeur est false, une règle ciblant cette forme serait morte. */
.isis-seg__btn[aria-pressed="true"][b-pull9rihrp] {
    background: var(--isis-current-mod, var(--isis-accent));
    color: var(--isis-on-accent);
    font-weight: 600;
}

.isis-seg__btn:focus-visible[b-pull9rihrp] {
    outline: 2px solid var(--isis-current-mod, var(--isis-accent));
    outline-offset: -2px;
}

.isis-hub-devise-note[b-pull9rihrp] {
    margin: 0;
    font-size: 0.74rem;
    font-style: italic;
    color: var(--isis-text-soft);
}

/* Enveloppe de la liste : transparente à la mise en page tant qu'elle est visible, retirée quand le
   rapport occupe la place. display: contents garde les enfants dans le flex de .isis-rich-page. */
.rapport-liste-wrap[b-pull9rihrp] { display: contents; }
.rapport-liste-wrap[hidden][b-pull9rihrp] { display: none; }
/* /Components/Pages/Gescom/DevisLivrableCatalogueDialog.razor.rz.scp.css */
/* Sélecteur de reprise du catalogue des livrables types. */

.devis-livrable-catalogue__note[b-nne98ojpna] {
    margin: 0;
    font-size: 0.8125rem;
    line-height: 1.5;
    color: var(--isis-text-muted);
}

.devis-livrable-catalogue__liste[b-nne98ojpna] {
    list-style: none;
    margin: var(--isis-space-sm) 0 0;
    padding: 0;
    /* Le catalogue d'un client se compte en dizaines d'entrées : la liste défile dans le
       dialogue plutôt que d'en pousser les boutons hors de l'écran. */
    max-height: 340px;
    overflow-y: auto;
    border: 1px solid var(--isis-border);
    border-radius: var(--isis-radius-sm);
}

.devis-livrable-catalogue__item[b-nne98ojpna] {
    display: flex;
    align-items: flex-start;
    gap: var(--isis-space-sm);
    padding: 8px 12px;
    border-bottom: 1px solid var(--isis-border-soft);
}

.devis-livrable-catalogue__item:last-child[b-nne98ojpna] {
    border-bottom: none;
}

.devis-livrable-catalogue__texte[b-nne98ojpna] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.devis-livrable-catalogue__libelle[b-nne98ojpna] {
    font-weight: 500;
    color: var(--isis-text);
    line-height: 1.35;
}

.devis-livrable-catalogue__meta[b-nne98ojpna] {
    font-size: 0.75rem;
    line-height: 1.4;
    color: var(--isis-text-muted);
    overflow-wrap: anywhere;
}

/* Le compteur tient la gauche de la barre d'actions ; les boutons restent à droite. */
.devis-livrable-catalogue__compteur[b-nne98ojpna] {
    margin-right: auto;
    font-size: 0.8125rem;
    color: var(--isis-text-muted);
}
/* /Components/Pages/Gescom/DevisLivrablesTab.razor.rz.scp.css */
/* Onglet « Livrables » de l'offre. Gabarit de la grille : isis-theme.css. */

.isis-devis-livrables[b-3kef0f2cba] {
    display: flex;
    flex-direction: column;
    gap: var(--isis-space-sm);
}

/* La ligne porte deux niveaux d'information : le libellé, qui est l'engagement, et la précision,
   qui le borne. Empilés plutôt que dans deux colonnes — une précision tient rarement sur une
   ligne, et une colonne à sa mesure écraserait tout le reste. */
.isis-devis-livrables[b-3kef0f2cba]  .isis-grid__col-raison {
    display: flex;
    flex-direction: column;
    gap: 2px;
    align-items: flex-start;
    justify-content: center;
}

.isis-devis-livrables[b-3kef0f2cba]  .isis-devis-livrables__libelle {
    font-weight: 500;
    color: var(--isis-text);
    line-height: 1.35;
}

.isis-devis-livrables[b-3kef0f2cba]  .isis-devis-livrables__precision {
    font-size: 0.75rem;
    line-height: 1.4;
    color: var(--isis-text-muted);
    /* Deux lignes au plus : au-delà, la ligne de grille devient un paragraphe et la liste perd
       son balayage vertical. Le texte entier reste lisible au survol et dans le formulaire. */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    overflow-wrap: anywhere;
}
/* /Components/Pages/Gescom/DevisRaciTab.razor.rz.scp.css */
/* Matrice RACI d'une offre de prix. Posée ici et non dans isis-theme.css : le fichier partagé
   est tenu par un autre chantier, et une matrice de plus n'a pas à attendre sa fusion.
   Le gabarit de colonnes, lui, est posé EN LIGNE par le composant — il dépend du nombre de
   rôles, inconnu à l'écriture de la feuille. */

.isis-devis-raci[b-vum5m7yrt8] {
    display: flex;
    flex-direction: column;
    gap: var(--isis-space-sm);
}

/* Le conteneur défile horizontalement dès quatre ou cinq rôles plutôt que d'écraser les
   colonnes : une colonne de 60px ne porte plus ni le nom du rôle ni son titulaire. */
.isis-grid--devis-raci[b-vum5m7yrt8] {
    overflow-x: auto;
    min-width: 0;
}

/* tabindex=0 sur un conteneur qui défile (WCAG 2.1.1) : il lui faut un focus visible, comme
   tout élément focalisable. */
.isis-grid--devis-raci:focus-visible[b-vum5m7yrt8] {
    outline: 2px solid var(--isis-current-mod);
    outline-offset: 2px;
}

.isis-grid--devis-raci .isis-grid__head[b-vum5m7yrt8],
.isis-grid--devis-raci .isis-grid__row[b-vum5m7yrt8] {
    align-items: center;
}

/* L'en-tête d'une colonne de rôle empile un libellé, un titulaire et deux boutons : la hauteur
   normative de 34px et la disposition en ligne les écraseraient côte à côte dans 160px.
   L'empilement ne vise QUE les colonnes de rôle (à partir de la 2e) — appliqué à l'en-tête
   « Tâche », il le désalignerait des lignes. */
.isis-grid--devis-raci .isis-grid__head[b-vum5m7yrt8] {
    height: auto;
    min-height: 34px;
    align-items: stretch;
}

.isis-grid--devis-raci .isis-grid__head > div:nth-child(n+2)[b-vum5m7yrt8] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.15rem;
    white-space: normal;
    padding: 0.3rem 0.35rem;
}

.isis-raci-role__nom[b-vum5m7yrt8] {
    font-weight: 600;
    color: var(--isis-text);
    white-space: normal;
    overflow-wrap: anywhere;
}

/* Le titulaire est une information de second rang : lisible, sans concurrencer le rôle. Il
   reste écrit en clair — « Rôle vacant » n'est pas signalé par la seule absence de texte. */
.isis-raci-role__titulaire[b-vum5m7yrt8] {
    font-size: 0.72rem;
    line-height: 1.25;
    color: var(--isis-text-muted);
    white-space: normal;
    overflow-wrap: anywhere;
}

.isis-raci-role__titulaire--vacant[b-vum5m7yrt8] {
    font-style: italic;
    color: var(--isis-text-subtle);
}

.isis-raci-role__actions[b-vum5m7yrt8],
.isis-raci-ligne__actions[b-vum5m7yrt8] {
    display: flex;
    align-items: center;
    gap: 0.15rem;
}

/* La tâche et son lot tiennent sur deux lignes au plus : au-delà, la matrice devient un mur
   de texte et les colonnes de rôle se retrouvent hors du champ visible. */
.isis-raci-ligne[b-vum5m7yrt8] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    min-width: 0;
}

.isis-raci-ligne__nom[b-vum5m7yrt8] {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    white-space: normal;
    overflow-wrap: anywhere;
    font-weight: 600;
    color: var(--isis-text);
}

.isis-raci-cell[b-vum5m7yrt8] {
    padding: 0.2rem 0.3rem;
    white-space: normal;
}

/* Le sélecteur d'une cellule occupe toute sa colonne : un champ plus étroit que la colonne
   laisse croire qu'il reste de la place pour autre chose dans la case.
   ::deep est obligatoire ici : la grille, ses en-têtes et ses cellules sont rendus par ce
   composant et portent donc le marqueur d'isolation, mais le `.rz-dropdown` est rendu PAR
   Radzen — sans ::deep, le sélecteur ne l'atteint jamais. */
.isis-raci-cell[b-vum5m7yrt8]  .rz-dropdown {
    width: 100%;
    min-width: 0;
}

/* Poser une responsabilité recharge la matrice : sans atténuation, l'ancienne reste lisible et
   cliquable pendant la requête. L'aria-busy du conteneur dit la même chose à qui ne voit pas
   l'atténuation. */
.isis-grid--devis-raci[aria-busy="true"][b-vum5m7yrt8] {
    opacity: 0.55;
    pointer-events: none;
    transition: opacity 120ms ease-out;
}
/* /Components/Pages/Gescom/FacturesLieesPage.razor.rz.scp.css */
/* Bascule d'agrégation + grilles par axe (lot 2, hub santé client, tâche 7). Aucune couleur en
   dur — tokens --isis-* uniquement, lisibles en clair et en sombre (cf. --isis-on-accent pour le
   texte du segment actif, jamais #fff en dur). */

.isis-hub-aggbar[b-nuyqbmo1q5] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--isis-space-md);
    /* Pas de margin-top : la barre est un enfant direct de .isis-hub-volet (re-revue lot 2,
       sortie du volet repliable), dont le gap flex column espace déjà les enfants. Un margin-top
       ici s'ajouterait au gap plutôt que de le remplacer. */
}

.isis-hub-aggbar__label[b-nuyqbmo1q5] {
    font-size: 0.78rem;
    color: var(--isis-text-soft);
}

.isis-hub-aggbar__count[b-nuyqbmo1q5] {
    margin-left: auto;
    font-size: 0.78rem;
    color: var(--isis-text-soft);
    font-variant-numeric: tabular-nums;
}

/* Segmented control générique — même patron que .isis-pilotage-cycle .isis-seg (isis-theme.css),
   scopé ici pour ne pas dépendre d'un conteneur de page particulier. */
.isis-seg[b-nuyqbmo1q5] {
    display: inline-flex;
    background: var(--isis-surface);
    border: 1px solid var(--isis-border);
    border-radius: var(--isis-radius);
    overflow: hidden;
}

.isis-seg__btn[b-nuyqbmo1q5] {
    padding: 0.32rem 0.7rem;
    font-size: 0.8rem;
    line-height: 1.2;
    color: var(--isis-text-muted);
    background: none;
    border: none;
    border-right: 1px solid var(--isis-border);
    text-decoration: none;
    cursor: pointer;
    font-family: inherit;
}

.isis-seg__btn:last-child[b-nuyqbmo1q5] { border-right: none; }

/* aria-pressed="true" — jamais aria-pressed="false" comme sélecteur : Blazor OMET l'attribut
   quand la valeur est false, une règle ciblant cette forme serait morte. */
.isis-seg__btn[aria-pressed="true"][b-nuyqbmo1q5] {
    background: var(--isis-current-mod, var(--isis-accent));
    color: var(--isis-on-accent);
    font-weight: 600;
}

.isis-seg__btn:focus-visible[b-nuyqbmo1q5] {
    outline: 2px solid var(--isis-current-mod, var(--isis-accent));
    outline-offset: -2px;
}

.isis-hub-devise-note[b-nuyqbmo1q5] {
    margin: 0;
    font-size: 0.74rem;
    font-style: italic;
    color: var(--isis-text-soft);
}

/* Enveloppe de la liste : transparente à la mise en page tant qu'elle est visible, retirée quand le
   rapport occupe la place. display: contents garde les enfants dans le flex de .isis-rich-page. */
.rapport-liste-wrap[b-nuyqbmo1q5] { display: contents; }
.rapport-liste-wrap[hidden][b-nuyqbmo1q5] { display: none; }
/* /Components/Pages/Gescom/Parametres/BordereauArticlesDialog.razor.rz.scp.css */
.bordereau-collage__avertissement[b-cvhmkj11ql] {
    margin: 0 0 var(--isis-space-sm);
    padding: var(--isis-space-sm);
    border: 1px solid var(--isis-warning);
    border-radius: var(--isis-radius-sm);
    background: var(--isis-warning-soft);
    color: var(--isis-text);
}

.bordereau-collage__apercu[b-cvhmkj11ql] {
    margin-top: var(--isis-space-sm);
    font-size: var(--isis-fs-sm);
    color: var(--isis-text);
}

.bordereau-collage__apercu p[b-cvhmkj11ql] {
    margin: 0 0 var(--isis-space-sm);
}

.bordereau-collage__rejets[b-cvhmkj11ql] {
    margin: 0 0 var(--isis-space-sm);
    padding-left: 1.2rem;
    max-height: 12rem;
    overflow-y: auto;
    color: var(--isis-text-muted);
}

.bordereau-collage__saisie[b-cvhmkj11ql] {
    width: 100%;
    font-family: var(--isis-font-mono, ui-monospace, monospace);
    font-size: var(--isis-fs-sm);
    resize: vertical;
}

.bordereau-collage__echantillon[b-cvhmkj11ql] {
    width: 100%;
    border-collapse: collapse;
    margin: 0 0 var(--isis-space-sm);
}

.bordereau-collage__echantillon caption[b-cvhmkj11ql] {
    text-align: left;
    color: var(--isis-text-muted);
    padding-bottom: var(--isis-space-xs);
}

.bordereau-collage__echantillon th[b-cvhmkj11ql],
.bordereau-collage__echantillon td[b-cvhmkj11ql] {
    text-align: left;
    padding: var(--isis-space-xs) var(--isis-space-sm);
    border-bottom: 1px solid var(--isis-border);
}

.bordereau-collage__echantillon .num[b-cvhmkj11ql] {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.bordereau-collage__raison[b-cvhmkj11ql] {
    margin-right: auto;
    align-self: center;
    font-size: var(--isis-fs-sm);
    color: var(--isis-text-muted);
}
/* /Components/Pages/Gescom/Parametres/BordereauFormDialog.razor.rz.scp.css */
.bordereau-form__lu[b-lytmtytb2y] {
    padding: 0.45rem 0;
    color: var(--isis-text);
}
/* /Components/Pages/Gescom/Parametres/BordereauListPage.razor.rz.scp.css */
.bordereau-detail__vide[b-h9enbvgh39] {
    margin: 0;
    color: var(--isis-text-muted);
    font-size: var(--isis-fs-sm);
}

.bordereau-versions[b-h9enbvgh39] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--isis-space-sm);
}

.bordereau-versions__item[b-h9enbvgh39] {
    width: 100%;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 0.15rem var(--isis-space-sm);
    align-items: center;
    padding: var(--isis-space-sm);
    border: 1px solid var(--isis-border);
    border-radius: var(--isis-radius-sm);
    background: var(--isis-surface);
    color: var(--isis-text);
    text-align: left;
    cursor: pointer;
}

.bordereau-versions__item:hover[b-h9enbvgh39] {
    background: var(--isis-surface-alt);
}

.bordereau-versions__item.is-active[b-h9enbvgh39] {
    border-color: var(--isis-current-mod);
}

.bordereau-versions__item:focus-visible[b-h9enbvgh39] {
    outline: 2px solid var(--isis-current-mod);
    outline-offset: 2px;
}

.bordereau-versions__num[b-h9enbvgh39] {
    font-weight: 600;
}

.bordereau-versions__meta[b-h9enbvgh39] {
    grid-column: 1;
    color: var(--isis-text-muted);
    font-size: var(--isis-fs-xs);
}

.bordereau-articles[b-h9enbvgh39] {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--isis-fs-sm);
}

.bordereau-articles th[b-h9enbvgh39],
.bordereau-articles td[b-h9enbvgh39] {
    padding: 0.3rem 0.4rem;
    border-bottom: 1px solid var(--isis-border-soft);
    text-align: left;
    vertical-align: top;
}

.bordereau-articles th[b-h9enbvgh39] {
    color: var(--isis-text-muted);
    font-weight: 600;
}

.bordereau-articles__num[b-h9enbvgh39] {
    text-align: right !important;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.bordereau-articles__pager[b-h9enbvgh39] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: var(--isis-space-sm);
    margin-top: var(--isis-space-sm);
    font-size: var(--isis-fs-sm);
    color: var(--isis-text-muted);
}
/* /Components/Pages/Gescom/Parametres/GabaritDecompositionListPage.razor.rz.scp.css */
.gabarit-detail__vide[b-mgshw39sxq] {
    margin: 0;
    color: var(--isis-text-muted);
    font-size: var(--isis-fs-sm);
}

.gabarit-soustaches[b-mgshw39sxq],
.gabarit-accroches[b-mgshw39sxq] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--isis-space-sm);
}

.gabarit-soustaches__item[b-mgshw39sxq] {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 0 var(--isis-space-sm);
    align-items: start;
    padding: var(--isis-space-sm);
    border: 1px solid var(--isis-border);
    border-radius: var(--isis-radius-sm);
    background: var(--isis-surface);
}

.gabarit-soustaches__rang[b-mgshw39sxq] {
    min-width: 1.6rem;
    height: 1.6rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--isis-radius-sm);
    background: var(--isis-surface-alt);
    color: var(--isis-text-muted);
    font-size: var(--isis-fs-xs);
    font-variant-numeric: tabular-nums;
    font-weight: 600;
}

.gabarit-soustaches__corps[b-mgshw39sxq] {
    min-width: 0;
}

.gabarit-soustaches__titre[b-mgshw39sxq] {
    font-weight: 600;
    overflow-wrap: anywhere;
}

.gabarit-soustaches__meta[b-mgshw39sxq] {
    color: var(--isis-text-muted);
    font-size: var(--isis-fs-xs);
    overflow-wrap: anywhere;
}

.gabarit-soustaches__note[b-mgshw39sxq] {
    margin-top: 0.15rem;
    color: var(--isis-text-muted);
    font-size: var(--isis-fs-xs);
    font-style: italic;
    overflow-wrap: anywhere;
}

.gabarit-soustaches__actions[b-mgshw39sxq] {
    display: flex;
    gap: 0.15rem;
}

.gabarit-accroches__item[b-mgshw39sxq] {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 0 var(--isis-space-sm);
    align-items: center;
    padding: var(--isis-space-xs) var(--isis-space-sm);
    border: 1px solid var(--isis-border);
    border-radius: var(--isis-radius-sm);
    background: var(--isis-surface);
}

.gabarit-accroches__nom[b-mgshw39sxq] {
    min-width: 0;
    font-size: var(--isis-fs-sm);
    overflow-wrap: anywhere;
}

.gabarit-accroches__ajout[b-mgshw39sxq] {
    display: flex;
    flex-direction: column;
    gap: var(--isis-space-sm);
    margin-top: var(--isis-space-sm);
    padding-top: var(--isis-space-sm);
    border-top: 1px solid var(--isis-border-soft);
}
/* /Components/Pages/Gescom/Parametres/LivrableTypeListPage.razor.rz.scp.css */
/* Description du panneau de détail : texte libre, donc respect des retours à la ligne saisis
   par l'administrateur, et césure des chaînes sans espace (une référence de format, un
   chemin) pour qu'elles ne débordent pas du panneau. */
.livrable-type-desc[b-5se1wvqy22] {
    margin: 0;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    font-size: 0.8125rem;
    line-height: 1.5;
    color: var(--isis-text);
}
/* /Components/Pages/Gescom/Parametres/TemplateListPage.razor.rz.scp.css */
/* Le libellé porte jusqu'à deux pastilles (« par défaut », « fichier introuvable ») :
   en une ligne tronquée, l'alerte de fichier manquant disparaissait derrière l'ellipse. */
.isis-grid--templates-gescom .isis-grid__col-raison[b-7vq2wpsep3] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    row-gap: 0.25rem;
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
}
/* /Components/Pages/Gescom/Rapport/RapportCommandesPanel.razor.rz.scp.css */
.rapport-panneau[b-ivh3hzrf9w] {
    display: flex;
    flex-direction: column;
    gap: var(--isis-space-md);
    min-width: 0;
    flex: 0 0 auto;
}

.rapport-etat[b-ivh3hzrf9w] {
    margin: 0;
    font-size: 0.8rem;
    color: var(--isis-text-soft);
}
/* /Components/Pages/Gescom/Rapport/RapportFacturesPanel.razor.rz.scp.css */
.rapport-panneau[b-ay6442to3m] {
    display: flex;
    flex-direction: column;
    gap: var(--isis-space-md);
    min-width: 0;
    flex: 0 0 auto;
}

.rapport-etat[b-ay6442to3m] {
    margin: 0;
    font-size: 0.8rem;
    color: var(--isis-text-soft);
}
/* /Components/Pages/Gescom/Rapport/RapportHubBarre.razor.rz.scp.css */
.rapport-barre[b-tqynpfdfc0] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--isis-space-sm);
}
/* /Components/Pages/Gescom/Rapport/RapportHubCadre.razor.rz.scp.css */
/* Mise en forme commune des deux rapports. Tokens --isis-* uniquement : lisible en clair comme en sombre. */

.rapport-cadre[b-fyb31hur69] {
    display: flex;
    flex-direction: column;
    gap: var(--isis-space-md);
    min-width: 0;
    color: var(--isis-text);
}

.rapport-entete h2[b-fyb31hur69] {
    margin: 0 0 var(--isis-space-sm);
    font-size: 1.25rem;
    font-weight: 600;
}

.rapport-entete h2:focus-visible[b-fyb31hur69] {
    outline: 2px solid var(--isis-current-mod, var(--isis-accent));
    outline-offset: 2px;
}

.rapport-interne[b-fyb31hur69] {
    margin: 0 0 var(--isis-space-sm);
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--isis-text-soft);
}

.rapport-aller[b-fyb31hur69] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: var(--isis-space-xs) var(--isis-space-sm);
    margin-top: var(--isis-space-sm);
    font-size: 0.8rem;
}

.rapport-aller span[b-fyb31hur69] { color: var(--isis-text-soft); }
.rapport-aller ul[b-fyb31hur69] { display: flex; flex-wrap: wrap; gap: var(--isis-space-xs) var(--isis-space-md); margin: 0; padding: 0; list-style: none; }
.rapport-aller a[b-fyb31hur69] { color: var(--isis-current-mod, var(--isis-accent)); }
.rapport-aller a:focus-visible[b-fyb31hur69] {
    outline: 2px solid var(--isis-current-mod, var(--isis-accent));
    outline-offset: 2px;
}

.rapport-meta[b-fyb31hur69] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--isis-space-xs) var(--isis-space-lg);
    margin: 0;
}

.rapport-meta > div[b-fyb31hur69] { display: flex; gap: var(--isis-space-xs); min-width: 0; }
.rapport-meta dt[b-fyb31hur69] { color: var(--isis-text-soft); font-size: 0.8rem; }
.rapport-meta dt[b-fyb31hur69]::after { content: " :"; }
.rapport-meta dd[b-fyb31hur69] { margin: 0; font-size: 0.8rem; font-weight: 500; overflow-wrap: anywhere; }

.rapport-cadre[b-fyb31hur69]  .rapport-section {
    display: flex;
    flex-direction: column;
    gap: var(--isis-space-sm);
    min-width: 0;
}

.rapport-cadre[b-fyb31hur69]  .rapport-section h3 {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 600;
}

.rapport-cadre[b-fyb31hur69]  .rapport-note,
.rapport-cadre[b-fyb31hur69]  .rapport-vide {
    margin: 0;
    font-size: 0.8rem;
    color: var(--isis-text-soft);
}

.rapport-cadre[b-fyb31hur69]  .rapport-kpis {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(140px, 100%), 1fr));
    gap: var(--isis-space-sm) var(--isis-space-md);
    margin: 0;
}

.rapport-cadre[b-fyb31hur69]  .rapport-kpis > div {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    padding: var(--isis-space-sm) var(--isis-space-md);
    background: var(--isis-surface-soft);
    border: 1px solid var(--isis-border-soft);
    border-radius: var(--isis-radius);
    min-width: 0;
}

.rapport-cadre[b-fyb31hur69]  .rapport-kpis dt { font-size: 0.72rem; color: var(--isis-text-soft); }
.rapport-cadre[b-fyb31hur69]  .rapport-kpis dd {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    overflow-wrap: anywhere;
}
.rapport-cadre[b-fyb31hur69]  .rapport-kpis .rapport-kpi--warn dd { color: var(--isis-warning); }
.rapport-cadre[b-fyb31hur69]  .rapport-kpis .rapport-kpi--bad dd { color: var(--isis-danger); }

.rapport-cadre[b-fyb31hur69]  .rapport-liste {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--isis-space-xs);
}

.rapport-cadre[b-fyb31hur69]  .rapport-liste li {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: var(--isis-space-sm);
    font-size: 0.85rem;
}

.rapport-cadre[b-fyb31hur69]  .rapport-constat-texte { flex: 1 1 20ch; min-width: 0; }

.rapport-cadre[b-fyb31hur69]  .rapport-tableau-cadre { overflow-x: auto; max-width: 100%; }
.rapport-cadre[b-fyb31hur69]  .rapport-tableau-cadre:focus-visible {
    outline: 2px solid var(--isis-current-mod, var(--isis-accent));
    outline-offset: 2px;
}

.rapport-cadre[b-fyb31hur69]  .rapport-voir-liste { align-self: flex-start; font-size: 0.82rem; }
.rapport-cadre[b-fyb31hur69]  .rapport-serie-bascule { font-size: 0.82rem; }
.rapport-cadre[b-fyb31hur69]  .rapport-repliable--ferme { display: none; }

.rapport-cadre[b-fyb31hur69]  table.rapport-tableau {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.82rem;
}

.rapport-cadre[b-fyb31hur69]  table.rapport-tableau caption {
    text-align: left;
    padding-bottom: var(--isis-space-xs);
    font-size: 0.78rem;
    color: var(--isis-text-soft);
}

.rapport-cadre[b-fyb31hur69]  table.rapport-tableau th,
.rapport-cadre[b-fyb31hur69]  table.rapport-tableau td {
    padding: 0.4rem 0.6rem;
    text-align: left;
    border-bottom: 1px solid var(--isis-border-soft);
    vertical-align: top;
}

.rapport-cadre[b-fyb31hur69]  table.rapport-tableau thead th {
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--isis-text-soft);
    border-bottom-color: var(--isis-border);
}

.rapport-cadre[b-fyb31hur69]  table.rapport-tableau .num {
    text-align: right;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.rapport-cadre[b-fyb31hur69]  .rapport-groupes {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr));
    gap: var(--isis-space-md);
}

.rapport-cadre[b-fyb31hur69]  .rapport-groupes h4 { margin: 0 0 var(--isis-space-xs); font-size: 0.85rem; font-weight: 600; }

.rapport-cadre[b-fyb31hur69]  .rapport-feu {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-weight: 600;
    font-size: 0.82rem;
}
.rapport-cadre[b-fyb31hur69]  .rapport-feu::before {
    content: "";
    width: 0.65rem;
    height: 0.65rem;
    border-radius: 50%;
    background: currentColor;
}
.rapport-cadre[b-fyb31hur69]  .rapport-feu--vert { color: var(--isis-success); }
.rapport-cadre[b-fyb31hur69]  .rapport-feu--orange { color: var(--isis-warning); }
.rapport-cadre[b-fyb31hur69]  .rapport-feu--rouge { color: var(--isis-danger); }
.rapport-cadre[b-fyb31hur69]  .rapport-feu--neutre { color: var(--isis-text-soft); }

.rapport-cadre[b-fyb31hur69]  .rapport-sante {
    display: flex;
    flex-direction: column;
    gap: var(--isis-space-xs);
    padding: var(--isis-space-sm) var(--isis-space-md);
    border: 1px solid var(--isis-border-soft);
    border-radius: var(--isis-radius);
}
.rapport-cadre[b-fyb31hur69]  .rapport-sante ul { margin: 0; padding-left: 1.1rem; font-size: 0.82rem; }

.rapport-cadre[b-fyb31hur69]  .rapport-section h4 { margin: var(--isis-space-xs) 0 0; font-size: 0.85rem; font-weight: 600; }

.rapport-cadre[b-fyb31hur69]  .rapport-cv {
    margin-left: 0.2rem;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: var(--isis-text);
    white-space: nowrap;
}

.rapport-cadre[b-fyb31hur69]  .rapport-ecartees {
    display: flex;
    flex-direction: column;
    gap: var(--isis-space-xs);
    padding: var(--isis-space-sm) var(--isis-space-md);
    border: 1px solid var(--isis-warning);
    border-radius: var(--isis-radius);
    font-size: 0.85rem;
}

.rapport-cadre[b-fyb31hur69]  .rapport-detail {
    flex-basis: 100%;
    font-size: 0.78rem;
    color: var(--isis-text-soft);
}

.rapport-cadre[b-fyb31hur69]  .rapport-graphe { min-width: 0; }

.rapport-cadre[b-fyb31hur69]  a { color: var(--isis-current-mod, var(--isis-accent)); }
.rapport-cadre[b-fyb31hur69]  a:focus-visible {
    outline: 2px solid var(--isis-current-mod, var(--isis-accent));
    outline-offset: 2px;
}

@media print {
    .rapport-cadre[b-fyb31hur69]  .rapport-tableau-cadre { overflow: visible; }
    .rapport-cadre[b-fyb31hur69]  .rapport-repliable--ferme { display: block; }
    .rapport-cadre[b-fyb31hur69]  .rapport-serie-bascule,
    .rapport-cadre[b-fyb31hur69]  .rapport-voir-liste,
    .rapport-aller[b-fyb31hur69] { display: none; }
    /* Une section entière insécable plus haute que la place restante partait à la page
       suivante en laissant une page à moitié blanche : on ne protège que les petits blocs. */
    .rapport-cadre[b-fyb31hur69]  .rapport-section h3,
    .rapport-cadre[b-fyb31hur69]  .rapport-sante h4,
    .rapport-cadre[b-fyb31hur69]  .rapport-note:has(~ .rapport-graphe) { break-after: avoid; }
    .rapport-cadre[b-fyb31hur69]  .rapport-kpis > div,
    .rapport-cadre[b-fyb31hur69]  .rapport-liste li,
    .rapport-cadre[b-fyb31hur69]  .rapport-sante,
    .rapport-cadre[b-fyb31hur69]  .rapport-graphe,
    .rapport-cadre[b-fyb31hur69]  table.rapport-tableau tr { break-inside: avoid; }
    /* Sans les graphismes d'arrière-plan (réglage par défaut des navigateurs), le badge critique,
       en texte clair sur fond plein, imprimerait blanc sur blanc. */
    .rapport-cadre[b-fyb31hur69]  .rz-badge {
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }
}

@media print {
    .rapport-cadre[b-fyb31hur69]  .rapport-ecartees,
    .rapport-cadre[b-fyb31hur69]  .rapport-contre-valeur {
        break-inside: avoid;
    }
}
/* /Components/Pages/Gescom/RegleApprobationListPage.razor.rz.scp.css */
/* La cellule ARIA ne doit pas créer de boîte : la liste des conditions reste l'élément de
   grille attendu par .isis-grid--regles-gescom. */
.isis-regle-conditions-cell[b-m3389jm0au] {
    display: contents;
}
/* /Components/Pages/Gescompta/AvoirListPage.razor.rz.scp.css */
/* La colonne Type fait 90px : sans troncature, « Geste commercial » et « Partiel montant »
   sont coupés net. Le libellé complet reste dans le title. */
.av-type-chip[b-8syfv0n6rk] {
    display: inline-block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    line-height: 26px;
    vertical-align: middle;
}
/* /Components/Pages/Gescompta/CostCategoryListPage.razor.rz.scp.css */
/* La largeur mini globale (880 px) dépassait le volet maître : la colonne Actions, collante,
   recouvrait alors la colonne Ordre. */
.isis-grid--cost-categories .isis-grid__head[b-op0ca29qi8],
.isis-grid--cost-categories .isis-grid__row[b-op0ca29qi8] {
    min-width: 700px;
}
/* /Components/Pages/Gescompta/CostUnitListPage.razor.rz.scp.css */
/* La largeur mini globale (820 px) dépassait le volet maître : la colonne Actions, collante,
   recouvrait alors la colonne Ordre. */
.isis-grid--units .isis-grid__head[b-gcg8r49s2p],
.isis-grid--units .isis-grid__row[b-gcg8r49s2p] {
    min-width: 680px;
}
/* /Components/Pages/Gescompta/CurrencyRateListPage.razor.rz.scp.css */
.rate-col-num[b-8tikfbbkvh] {
    justify-content: flex-end;
    text-align: right;
    font-variant-numeric: tabular-nums;
    padding-right: var(--isis-space-md);
}

.rate-filter-empty[b-8tikfbbkvh] {
    font-size: 0.78rem;
    color: var(--isis-text-soft);
    font-style: italic;
}
/* /Components/Pages/Gescompta/DossiersAValiderPage.razor.rz.scp.css */
.isis-grid--dossiers-avalider .isis-grid__head[b-c0w1dih6ks],
.isis-grid--dossiers-incomplets .isis-grid__head[b-c0w1dih6ks],
.isis-grid--dossiers-valides .isis-grid__head[b-c0w1dih6ks] {
    align-items: center;
}
/* /Components/Pages/Gesfac/EmplacementDetail.razor.rz.scp.css */
/* .isis-empty-state n'a aucune règle globale : sans elle, l'état vide/erreur/introuvable
   de la fiche s'aligne en ligne, icône écrasée contre le texte. Même géométrie que .isis-grid__empty. */
.isis-empty-state[b-3qmloanmuc] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 3rem 1rem;
    color: var(--isis-text-soft);
    text-align: center;
}

.isis-empty-state strong[b-3qmloanmuc] {
    color: var(--isis-text);
}

/* /Components/Pages/Gesfac/MoveRequestDetail.razor.rz.scp.css */
/* .isis-empty-state n'a aucune règle globale : sans elle, l'état vide/erreur/introuvable
   de la fiche s'aligne en ligne, icône écrasée contre le texte. Même géométrie que .isis-grid__empty. */
.isis-empty-state[b-fmlrr01uf9] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 3rem 1rem;
    color: var(--isis-text-soft);
    text-align: center;
}

.isis-empty-state strong[b-fmlrr01uf9] {
    color: var(--isis-text);
}
/* /Components/Pages/Gesmaff/OpportuniteDetail.razor.rz.scp.css */
/* Bande « Changer de statut » — cadre propre, distinct de la ligne « Autres issues » du stepper :
   collés sans séparation, repères passifs et boutons se lisaient comme un seul bloc. */
.opp-transitions[b-wk6qavsnau] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--isis-space-sm) var(--isis-space-md);
    margin-top: var(--isis-space-md);
    padding: 10px 12px;
    background: var(--isis-bg);
    border: 1px solid var(--isis-border);
    border-radius: var(--isis-radius);
}
.opp-transitions__label[b-wk6qavsnau] { font-size: 12px; font-weight: 600; color: var(--isis-text-muted); }
.opp-transitions__group[b-wk6qavsnau] { display: flex; flex-wrap: wrap; gap: var(--isis-space-sm); }
.opp-transitions__group--cloture[b-wk6qavsnau] { margin-left: auto; }

.isis-op-marches__montant[b-wk6qavsnau] { text-align: right; }
.isis-op-marches__montant--valeur[b-wk6qavsnau] { font-variant-numeric: tabular-nums; }
.isis-op-marches__date[b-wk6qavsnau] { font-size: 0.85rem; color: var(--isis-text-muted); }
/* /Components/Pages/Gespark/EcheancierPage.razor.rz.scp.css */
/* Sidepanel Justificatif — repris à l'identique des deux règles legacy propres à
   cet écran (isis-theme.css), renommées hors famille "gesmaff-side" sans toucher
   au fichier partagé (résidu de cette famille proscrit sur un écran converti). */
.isis-echeancier-doc-name[b-vcnxtiwquh] {
    font-size: 0.8rem; font-weight: 600; margin: 0.4rem 0;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.isis-echeancier-doc-loading[b-vcnxtiwquh] {
    display: flex; align-items: center; gap: 0.5rem; font-size: 0.85rem;
    color: var(--isis-text-muted); padding: 0.3rem 0;
}
/* /Components/Pages/Gespark/EquipementListPage.razor.rz.scp.css */
/* Sidepanel Vie actuelle / Pièces jointes — repris à l'identique des deux règles
   legacy propres à cet écran (isis-theme.css), renommées hors famille "gesmaff-side"
   sans toucher au fichier partagé (résidu de cette famille proscrit sur un écran
   converti). Dernier consommateur des deux règles d'origine : leur suppression du
   fichier partagé appartient à la tâche 16. */
.isis-parcauto-doc-name[b-tehr7iahb9] {
    font-size: 0.8rem; font-weight: 600; margin: 0.4rem 0;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.isis-parcauto-live-loading[b-tehr7iahb9] {
    display: flex; align-items: center; gap: 0.5rem; font-size: 0.85rem;
    color: var(--isis-text-muted); padding: 0.3rem 0;
}
/* /Components/Pages/Gesqhse/ChartePage.razor.rz.scp.css */
/* La charte — UNE grille hiérarchisée pleine largeur, en lecture comme en édition.

   Refonte 2026-09-07. La forme précédente posait une grille PAR PILIER, juxtaposées par
   `.isis-charte` (`auto-fit` + `minmax(700px, 1fr)`) et plafonnées par `max-inline-size` sur
   `.isis-charte-pilier` — un correctif (47a5f63a6) qui contenait un débordement horizontal
   propre à des CARTES. Une grille UNIQUE n'a ni pistes ni cartes : le défaut disparaît par
   construction, et les deux règles qui le contenaient deviennent sans objet.

   Pilier et phase sont désormais des LIGNES DE GROUPE repliables (`.isis-charte-grp`), et non
   plus des sections ou des bandes hors grille : elles traversent la grille sans suivre son
   gabarit de colonnes. */

/* Énoncé de la charte — la définition que le document pose. Il garde SA mesure de lecture :
   une phrase de prose sur 1300 px se lit mal, et la règle de pleine largeur vise les
   conteneurs de page, pas les paragraphes. */
.isis-charte__enonce[b-95c2x8tgom] {
    max-width: 62ch;
    margin: 0 0 0.35rem;
    font-size: var(--isis-fs-lg, 1.0625rem);
    line-height: 1.5;
    color: var(--isis-text);
}

.isis-charte__legende[b-95c2x8tgom] {
    max-width: 82ch;
    margin: 0 0 0.9rem;
    font-size: 0.8rem;
    line-height: 1.6;
    color: var(--isis-text-muted);
}

/* ── La grille ───────────────────────────────────────────────────────────────────────── */
/* Gabarit des pistes : isis-theme.css (clés gesqhse-charte et gesqhse-charte-edition). */
.isis-charte-grille .isis-grid__head[b-95c2x8tgom],
.isis-charte-grille .isis-grid__row[b-95c2x8tgom] {
    padding-left: 2.05rem;
}

/* ── Les lignes ──────────────────────────────────────────────────────────────────────── */
/* Le patron de grille pose `white-space: nowrap` sur ses cellules : dans un REGISTRE, tronquer
   une ligne de trop est acceptable — on cherche une valeur, pas une phrase. Ici c'est un
   DOCUMENT PUBLIÉ : un engagement coupé à « Clarifier précisément le besoin client (cadrage … »
   n'engage plus personne. Le retour à la ligne est donc rétabli, et les lignes s'alignent en
   haut pour que deux cellules de hauteurs différentes restent lisibles. */
/* ATTENTION — `gridcell` et non `cell` : sous un conteneur `treegrid`, ARIA impose `gridcell`, et le
   Razor a été corrigé en ce sens. Ce sélecteur ne suivait PAS — la troncature du patron était
   donc revenue en force, en silence, sur la page même dont tout l'objet est de ne rien couper.
   Trouvé à la recette du 2026-09-07, invisible au build comme aux revues. */
.isis-charte-grille .isis-grid__row > [role="gridcell"][b-95c2x8tgom] {
    white-space: normal;
    align-self: start;
    /* Le patron pose aussi `overflow: hidden` + `text-overflow: ellipsis` sur ses cellules.
       C'est juste pour un registre ; ici cela coupait « auto GESMAT_CALI… ». Un document
       publié ne cache rien : la cellule grandit, elle ne tronque pas. */
    overflow: visible;
    text-overflow: clip;
}

/* ── Les lignes de groupe (pilier, phase) ────────────────────────────────────────────── */
/* Les deux premiers niveaux sont des LIGNES DE GROUPE, pas des lignes de données : elles
   traversent la grille et ne suivent pas son gabarit de colonnes.

   La ligne (`.isis-charte-grp`) porte le filet et le fond — plus le bouton de bascule seul,
   depuis que les actions d'édition (pilier/phase) siègent À CÔTÉ de lui, dans le même
   conteneur `role="row"` : un bouton dans un bouton est du HTML invalide et rend le clic
   imprévisible (piège payé le 2026-09-07). Le bouton de bascule ne couvre donc plus que le
   chevron et le libellé — c'est `flex: 1 1 auto` qui lui rend l'espace restant. */
.isis-charte-grp[b-95c2x8tgom] {
    display: flex;
    align-items: stretch;
    border-radius: var(--isis-radius-sm);
    box-sizing: border-box;
}

.isis-charte-grp--pilier[b-95c2x8tgom] {
    margin: .7rem .55rem .1rem;
    border: 1px solid color-mix(in srgb, var(--isis-current-mod, var(--isis-accent)) 34%, var(--isis-border));
    background: color-mix(in srgb, var(--isis-current-mod, var(--isis-accent)) 10%, var(--isis-surface-alt));
}

.isis-charte-grp--phase[b-95c2x8tgom] {
    margin: .28rem .55rem .1rem 1.45rem;
    border: 1px solid var(--isis-border);
    background: var(--isis-surface-alt);
}

.isis-charte-grp__btn[b-95c2x8tgom] {
    display: flex; align-items: center; flex-wrap: wrap; gap: .55rem;
    flex: 1 1 auto; min-width: 0; text-align: left; font: inherit; cursor: pointer;
    padding: .42rem .6rem; border-radius: inherit;
    box-sizing: border-box; background: transparent; border: none;
}

/* Enveloppe `gridcell` du bouton de bascule : sous un `treegrid`, un `row` ne peut contenir que
   des cellules. `display: contents` la retire du rendu pour que le bouton reste l'élément flex
   de la ligne. */
.isis-charte-grp__cell[b-95c2x8tgom] { display: contents; }

/* Les actions d'édition (ajouter/modifier/supprimer), sibling du bouton de bascule —
   jamais son enfant. */
.isis-charte-grp__actions[b-95c2x8tgom] {
    display: inline-flex; align-items: center; gap: .2rem; flex: none;
    padding: 0 .5rem;
}

.isis-charte-caret[b-95c2x8tgom] { font-size: .6rem; color: var(--isis-text-soft); width: .85em; flex: none; }
/* Le Razor doit poser la CHAÎNE "true"/"false", jamais un booléen C# : Blazor omet purement
   l'attribut quand un bool vaut false, et rend `=""` quand il vaut true. Ce sélecteur ne
   matchait donc JAMAIS — mesuré au navigateur : chevron figé dans les deux états, et aucun
   lecteur d'écran n'apprenait qu'une ligne était repliée, sur un treegrid où c'est
   précisément l'information qui compte. */
.isis-charte-grp[aria-expanded="false"] .isis-charte-caret[b-95c2x8tgom] { transform: rotate(-90deg); }

.isis-charte-grp--pilier .isis-charte-grp__nom[b-95c2x8tgom] { font-size: .95rem; font-weight: 700; color: var(--isis-current-mod, var(--isis-text)); }
.isis-charte-grp--phase  .isis-charte-grp__nom[b-95c2x8tgom] { font-size: .85rem; font-weight: 600; color: var(--isis-text); }

/* Poignée de glissement PERMANENTE. Un curseur au survol n'est pas un indice : un geste
   nouveau sur un écran existant exige un repère visible en permanence, sinon la fonction
   n'existe pas pour l'utilisateur. */
.isis-charte-poignee[b-95c2x8tgom] {
    flex: none; cursor: grab; color: var(--isis-text-soft);
    font-size: .8rem; line-height: 1; padding: 0 .1rem;
}
.isis-charte-poignee:active[b-95c2x8tgom] { cursor: grabbing; }

/* Repère de dépôt — pilier et phase (`.isis-charte-grp`) ET engagement (`.isis-grid__row`,
   seul niveau qui n'est pas une ligne de groupe) : les trois niveaux se glissent. */
.isis-charte-grp.is-drop-cible[b-95c2x8tgom],
.isis-charte-grille .isis-grid__row.is-drop-cible[b-95c2x8tgom] {
    outline: 2px dashed var(--isis-current-mod, var(--isis-accent)); outline-offset: 1px;
}

/* Le principe d'un pilier : dit dans son bouton de bascule, à la suite du libellé, plutôt
   qu'en sous-titre de section — il n'existe plus de section à sous-titrer. */
.isis-charte-meta[b-95c2x8tgom] {
    font-size: .78rem;
    font-weight: 400;
    color: var(--isis-text-soft);
}

/* ── Les cellules ─────────────────────────────────────────────────────────────────────── */
/* Le code du contrôle : sa propre colonne depuis la grille unique (la charte par pilier le
   taisait). Chasse fixe, comme une référence — pas la prose du reste de la ligne. */
.isis-charte-code[b-95c2x8tgom] {
    font-family: var(--isis-font-mono, 'Geist Mono', ui-monospace, monospace);
    font-variant-numeric: tabular-nums;
    font-size: .76rem;
    font-weight: 600;
    color: var(--isis-text-soft);
    overflow-wrap: anywhere;
}

.isis-charte-engagement[b-95c2x8tgom] {
    display: block;
    white-space: normal;
    font-size: .84rem;
    line-height: 1.4;
    color: var(--isis-text);
    overflow-wrap: anywhere;
}

/* « Incitatif » et « déclarée » s'écrivent en toutes lettres plutôt qu'en badge : dans une
   COLONNE, une cellule vide se lirait comme une donnée manquante, alors que c'est le cas par
   défaut. Le badge est réservé à ce qui fait exception. */
.isis-charte-nature[b-95c2x8tgom] {
    font-size: .78rem;
    color: var(--isis-text-soft);
}

/* La transition gardée par un contrôle bloquant : sur sa propre ligne, sous le badge, comme
   la source d'un contrôle automatique — accolée, elle n'a que la largeur qui reste au badge. */
.isis-charte-gate[b-95c2x8tgom] {
    display: block;
    margin-top: .15rem;
    font-size: .72rem;
    color: var(--isis-text-muted);
    overflow-wrap: anywhere;
}

/* La source sur sa PROPRE ligne : accolée au badge, elle n'a qu'une centaine de pixels et
   se coupe. Seule, elle dispose de toute la colonne. */
.isis-charte-source[b-95c2x8tgom] {
    display: block;
    white-space: normal;
    overflow-wrap: anywhere;
    margin-top: .15rem;
    font-size: .72rem;
    font-weight: 600;
    color: var(--isis-text-muted);
    overflow-wrap: anywhere;
}

.isis-charte-actions[b-95c2x8tgom] {
    display: inline-flex;
    align-items: center;
    gap: .2rem;
}

/* Contrôle suspendu — visible en édition seulement, jamais dans la charte publiée.
   Pas d'opacity sur la ligne : elle composite TOUT le sous-arbre, boutons compris — le
   bouton « Réactiver » deviendrait le plus pâle de la rangée au moment précis où
   l'utilisateur le cherche. On délave donc le seul libellé. */
.isis-grid__row.is-inactive .isis-charte-engagement[b-95c2x8tgom] {
    color: var(--isis-text-soft);
    text-decoration: line-through;
    text-decoration-color: var(--isis-border-strong);
}

/* Le moment déclencheur, dans la ligne de phase : NEUTRE, et c'est un choix corrigé après
   audit. Il portait la couleur du module — la même que le libellé de pilier, un niveau plus
   haut. Deux niveaux hiérarchiques signalés par la même teinte démonétisent le repère. */
.isis-charte-moment[b-95c2x8tgom] {
    padding: .08rem .45rem;
    border: 1px solid var(--isis-border);
    border-radius: 999px;
    background: var(--isis-surface);
    color: var(--isis-text-muted);
    font-size: .7rem;
    font-weight: 600;
    white-space: nowrap;
}

.isis-charte-moment.is-orpheline[b-95c2x8tgom] {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    background: color-mix(in srgb, var(--isis-warning) 14%, var(--isis-surface));
    color: color-mix(in srgb, var(--isis-warning) 82%, var(--isis-text));
    border-color: color-mix(in srgb, var(--isis-warning) 45%, var(--isis-border));
    font-weight: 700;
}

/* ── Les mentions d'exception ────────────────────────────────────────────────────────── */
.isis-charte-tag[b-95c2x8tgom] {
    padding: .08rem .4rem;
    border-radius: 999px;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .02em;
    white-space: nowrap;
}

.isis-charte-tag.is-bloquant[b-95c2x8tgom] {
    background: color-mix(in srgb, var(--isis-danger) 13%, var(--isis-surface));
    color: color-mix(in srgb, var(--isis-danger) 80%, var(--isis-text));
}

.isis-charte-tag.is-auto[b-95c2x8tgom] {
    background: color-mix(in srgb, var(--isis-success) 13%, var(--isis-surface));
    color: color-mix(in srgb, var(--isis-success) 80%, var(--isis-text));
}

/* ── Impression ──────────────────────────────────────────────────────────────────────── */
/* La charte est un document PUBLIÉ, susceptible d'être annexé à un contrat. Sans ces règles,
   un pilier se coupe au milieu d'une page et les mentions perdent leur sens en niveaux de
   gris. Jetons et non hex : c'est la convention du bloc d'impression déjà présent dans la
   feuille globale, et DESIGN.md § 10 interdit le noir pur.

   ⚠ Réserve assumée : imprimer depuis le thème SOMBRE rendra un texte clair sur papier
   blanc. Le produit n'a aucun mécanisme de bascule en palette claire à l'impression.

   Les nœuds repliés ne sont pas RENDUS côté serveur : aucune règle ci-dessous ne peut les
   faire réapparaître sur le papier — c'est le bouton « Tout déplier » de la barre d'outils
   qui répond à ce besoin. Ces règles masquent seulement les chevrons et poignées, devenus
   sans objet une fois qu'il n'y a plus de geste à faire à l'impression. */
@media print {
    .isis-charte-grp--pilier[b-95c2x8tgom] {
        break-inside: avoid;
    }

    .isis-charte-grp[b-95c2x8tgom],
    .isis-charte-tag[b-95c2x8tgom],
    .isis-charte-moment[b-95c2x8tgom] {
        border: 1px solid var(--isis-border-strong, var(--isis-border));
        background: transparent;
        color: var(--isis-text);
    }

    .isis-charte-caret[b-95c2x8tgom],
    .isis-charte-poignee[b-95c2x8tgom],
    .isis-charte-grp__actions[b-95c2x8tgom] {
        display: none !important;
    }

    .isis-charte-grp__btn[b-95c2x8tgom] {
        cursor: default;
    }
}
/* /Components/Pages/Gesqhse/ProblemeDetail.razor.rz.scp.css */
/* Description, résolution, motif et mesures sont saisis en zone de texte libre :
   les sauts de ligne de la saisie doivent survivre à l'affichage. */
.isis-detail-desc[b-qgq0ci8hre] {
    white-space: pre-line;
    overflow-wrap: anywhere;
    max-width: 75ch;
}
/* /Components/Pages/Gesst/EngagementListPage.razor.rz.scp.css */
/* Suivi financier compact du sidepanel (facturé / payé). Aucun retrait latéral :
   le bloc s'aligne sur ses frères .isis-side-* du __top, qui n'en ont pas. */
.isis-side-fin-summary[b-szyna9u1mf] {
    display: flex;
    gap: 1rem;
    padding: 0.25rem 0 0.5rem;
    font-size: 0.875rem;
}

.isis-side-fin-summary__label[b-szyna9u1mf] {
    color: var(--isis-text-muted);
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.isis-side-fin-summary__value[b-szyna9u1mf] {
    font-variant-numeric: tabular-nums;
    font-weight: 600;
}

.isis-engagement-intitule[b-szyna9u1mf] {
    display: flex;
    align-items: center;
    gap: var(--isis-space-xs);
    min-width: 0;
}

.isis-engagement-intitule__texte[b-szyna9u1mf] {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

[b-szyna9u1mf] .isis-engagement-intitule__retard {
    flex-shrink: 0;
}
/* /Components/Pages/Home.razor.rz.scp.css */
.accueil-vue-note[b-05wq825plu] {
    font-size: var(--isis-fs-sm);
    color: var(--isis-text-muted);
}
/* /Components/Pages/Landing.razor.rz.scp.css */
/* Sans reset universel, width:100% + padding latéral débordait de 48 px au téléphone. */
@media (max-width: 900px) {
    .isis-ld__hero[b-m9ce7wlf7o] { box-sizing: border-box; }
}
/* /Components/Pages/Legal/Confidentialite.razor.rz.scp.css */
/* Liens du corps : distinguables autrement que par la couleur (WCAG 1.4.1)
   et focus clavier visible (WCAG 2.4.7). */
.isis-legal__link[b-rokh8fi8b6] {
    color: var(--isis-accent);
    text-decoration: underline;
    text-underline-offset: 2px;
    overflow-wrap: anywhere;
}
.isis-legal__link:hover[b-rokh8fi8b6] { text-decoration-thickness: 2px; }
.isis-legal__link:focus-visible[b-rokh8fi8b6] {
    outline: 2px solid var(--isis-accent);
    outline-offset: 2px;
    border-radius: 2px;
}
/* /Components/Pages/Legal/LegalShell.razor.rz.scp.css */
/* Page-document publique : une colonne lisible, aucun chrome applicatif.
   Toutes les couleurs viennent des tokens --isis-* : la page est servie
   avant tout thème tenant, elle doit tenir sur le thème par défaut. */

.isis-legal[b-7my8b095w0] {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background: var(--isis-bg);
    color: var(--isis-text);
}

.isis-legal__top[b-7my8b095w0] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 28px;
    border-bottom: 1px solid var(--isis-border);
}

.isis-legal__login[b-7my8b095w0] {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 4px 8px;
    border-radius: var(--isis-radius-sm);
    font-size: var(--isis-fs-sm);
    color: var(--isis-accent);
    text-decoration: none;
}
.isis-legal__login:hover[b-7my8b095w0] { color: var(--isis-accent-strong); text-decoration: underline; }

.isis-legal__doc[b-7my8b095w0] {
    flex: 1;
    box-sizing: border-box;
    width: 100%;
    max-width: 760px;
    margin: 0 auto;
    padding: 40px 28px 72px;
}

.isis-legal__h1[b-7my8b095w0] {
    font-size: var(--isis-fs-2xl);
    line-height: 1.15;
    margin: 0 0 12px;
    text-wrap: balance;
}

.isis-legal__lede[b-7my8b095w0] {
    color: var(--isis-text-muted);
    margin: 0 0 32px;
    max-width: 62ch;
}

.isis-legal__foot[b-7my8b095w0] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 20px 28px;
    border-top: 1px solid var(--isis-border);
    font-size: var(--isis-fs-sm);
    color: var(--isis-text-muted);
}

.isis-legal__foot nav[b-7my8b095w0] { display: flex; flex-wrap: wrap; gap: 12px; }
.isis-legal__foot a[b-7my8b095w0] {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 4px;
    border-radius: var(--isis-radius-sm);
    color: var(--isis-text-muted);
}
.isis-legal__foot a:hover[b-7my8b095w0] { color: var(--isis-text); }

/* Cible tactile >= 24 px (WCAG 2.5.8) et halo de focus au module courant, accent par défaut. */
.isis-legal__login:focus-visible[b-7my8b095w0],
.isis-legal__foot a:focus-visible[b-7my8b095w0] {
    outline: none;
    box-shadow: var(--isis-elevation-focus);
}

.isis-legal__doc[b-7my8b095w0]  .isis-legal__block { margin-bottom: 34px; }
.isis-legal__doc[b-7my8b095w0]  .isis-legal__block p {
    max-width: 70ch;
    text-wrap: pretty;
}
.isis-legal__doc[b-7my8b095w0]  .isis-legal__block h2 {
    font-size: var(--isis-fs-lg);
    margin: 0 0 10px;
}
.isis-legal__doc[b-7my8b095w0]  .isis-legal__vide {
    color: var(--isis-text-muted);
    font-style: italic;
}
/* Panne de lecture, PAS une absence de publication — cf. C7 (2026-09-07).
   Couleur sémantique --isis-danger : un visiteur doit distinguer d'un coup
   d'œil « rien n'a été publié » (italique neutre ci-dessus) de « une panne
   empêche de savoir ». */
.isis-legal__doc[b-7my8b095w0]  .isis-legal__erreur {
    color: var(--isis-danger);
    font-weight: 500;
}
.isis-legal__doc[b-7my8b095w0]  .isis-legal__dl {
    display: grid;
    grid-template-columns: minmax(140px, 220px) minmax(0, 1fr);
    gap: 8px 20px;
    margin: 0;
}
.isis-legal__doc[b-7my8b095w0]  .isis-legal__dl dt {
    color: var(--isis-text-muted);
    font-size: var(--isis-fs-sm);
}
.isis-legal__doc[b-7my8b095w0]  .isis-legal__dl dd { margin: 0; }
.isis-legal__doc[b-7my8b095w0]  table {
    width: 100%;
    border-collapse: collapse;
    margin: 14px 0;
}
.isis-legal__doc[b-7my8b095w0]  th,
.isis-legal__doc[b-7my8b095w0]  td {
    text-align: left;
    padding: 8px 12px 8px 0;
    border-bottom: 1px solid var(--isis-border);
    vertical-align: top;
}

@media (max-width: 640px) {
    .isis-legal__doc[b-7my8b095w0]  .isis-legal__dl { grid-template-columns: 1fr; gap: 2px 0; }
    .isis-legal__doc[b-7my8b095w0]  .isis-legal__dl dd { margin-bottom: 10px; }
}
/* /Components/Pages/Legal/MentionsLegales.razor.rz.scp.css */
/* Adresses et licences sont saisies en zone multiligne dans /master : sans
   pre-line, les retours à la ligne saisis disparaissent à l'affichage. */
.isis-legal__multiligne[b-d2xvhvlscx] { white-space: pre-line; }

/* Liens du corps : distinguables autrement que par la couleur (WCAG 1.4.1)
   et focus clavier visible (WCAG 2.4.7). */
.isis-legal__link[b-d2xvhvlscx] {
    color: var(--isis-accent);
    text-decoration: underline;
    text-underline-offset: 2px;
    overflow-wrap: anywhere;
}
.isis-legal__link:hover[b-d2xvhvlscx] { text-decoration-thickness: 2px; }
.isis-legal__link:focus-visible[b-d2xvhvlscx] {
    outline: 2px solid var(--isis-accent);
    outline-offset: 2px;
    border-radius: 2px;
}
/* /Components/Pages/Logigramme.razor.rz.scp.css */
/* .isis-lg pose height: 100dvh + un padding vertical : sans border-box, la page
   dépasse l'écran de ce padding et la commande Lecture/pause passe sous la ligne de flottaison. */
.isis-lg[b-bvif6eg7gg] {
    box-sizing: border-box;
}
/* /Components/Pages/Master/BasemapsCatalog.razor.rz.scp.css */
.isis-tool-row[b-0md6nmj0fo] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.35rem 0;
    border-bottom: 1px solid var(--isis-border);
}
.isis-tool-row:last-child[b-0md6nmj0fo] { border-bottom: none; }
.isis-tool-row__label[b-0md6nmj0fo] {
    flex: 0 0 210px;
    font-size: 0.85rem;
    color: var(--isis-text);
}
.isis-tool-row__select[b-0md6nmj0fo] {
    flex: 1 1 auto;
    min-width: 0;
    max-width: 560px;
}
.isis-tool-config__actions[b-0md6nmj0fo] {
    margin-top: 1rem;
    display: flex;
    justify-content: flex-end;
}
@media (max-width: 720px) {
    .isis-tool-row[b-0md6nmj0fo] { flex-wrap: wrap; }
    .isis-tool-row__label[b-0md6nmj0fo] { flex-basis: 100%; }
    .isis-tool-row__select[b-0md6nmj0fo] { max-width: none; }
}

.isis-tool-config__head[b-0md6nmj0fo] {
    margin-bottom: 0.75rem;
}

.isis-basemaps-label[b-0md6nmj0fo] {
    font-weight: 600;
}
/* /Components/Pages/Master/ChangePasswordPage.razor.rz.scp.css */
/* La carte de connexion est réemployée DANS une RadzenCard, qui porte déjà le cadre :
   ni ombre, ni bordure, ni marge propres — sinon une carte dans la carte. */
.isis-change-password__card[b-ne11rxjlj4] {
    box-shadow: none;
    border: none;
    padding: 0;
    max-width: 520px;
}

.isis-change-password__card form[b-ne11rxjlj4] {
    display: flex;
    flex-direction: column;
    gap: 1.1rem;
}

.isis-change-password__footnote[b-ne11rxjlj4] {
    margin-top: 0.5rem;
}
/* /Components/Pages/Master/HelpAssistantPage.razor.rz.scp.css */
.isis-assistant-probe[b-vv14319vrt] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin: 0 0 0.5rem;
    padding: 0.5rem 0.75rem;
    border-radius: var(--isis-radius);
}
.isis-assistant-probe--ok[b-vv14319vrt] { background: var(--isis-success-soft); color: var(--isis-success-text); }
.isis-assistant-probe--ko[b-vv14319vrt] { background: var(--isis-danger-soft); color: var(--isis-danger-text); }
.isis-assistant-errors[b-vv14319vrt] { margin: 0.25rem 0 0; padding-left: 1.25rem; }
.isis-form-linear__actions[b-vv14319vrt]  .isis-assistant-reset { margin-right: auto; }
/* /Components/Pages/Master/PlatformExigencesPage.razor.rz.scp.css */
.exig-import[b-o2tf96vzi1] {
    position: relative;
    cursor: pointer;
}

.exig-import[b-o2tf96vzi1]  input[type="file"] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.exig-import:focus-within[b-o2tf96vzi1] {
    outline: 2px solid var(--isis-current-mod);
    outline-offset: 2px;
}
/* /Components/Pages/Master/SessionsPage.razor.rz.scp.css */
a.isis-rich-toolbar__btn[b-47vii1xal5],
a.isis-grid__action-btn[b-47vii1xal5] {
    text-decoration: none;
}

.isis-sessions-confirm[b-47vii1xal5] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.75rem;
    padding: 0.75rem 1rem;
    border: 1px solid var(--isis-border);
    border-radius: var(--isis-radius);
}

/* Les deux RadzenText (titre, rappel) ne portent pas l'attribut de portée : ::deep. */
.isis-sessions-confirm[b-47vii1xal5]  > .rz-text-subtitle2,
.isis-sessions-confirm[b-47vii1xal5]  > .rz-text-body2 {
    flex-basis: 100%;
    margin: 0;
}

.isis-sessions-confirm form .isis-rich-toolbar__btn[b-47vii1xal5],
.isis-sessions-confirm > a.isis-rich-toolbar__btn[b-47vii1xal5] {
    border-color: currentColor;
}

/* Deux cibles de 44px (pseudo-élément du bouton de grille) côte à côte : l'écart
   les empêche de se chevaucher. */
.isis-sessions-confirm.isis-sessions-confirm--inline[b-47vii1xal5] {
    display: inline-flex;
    flex-wrap: nowrap;
    gap: 1rem;
    padding: 0;
    border: none;
}

.isis-sessions-confirm:focus-visible[b-47vii1xal5] {
    outline: 2px solid var(--isis-current-mod);
    outline-offset: 2px;
}
/* /Components/Pages/Master/TenantBrandPage.razor.rz.scp.css */
/* Aperçu live de la marque — déplacé du bloc <style> inline de la page (2026-10-06). */
.irp-prev[b-iron7jwk5e] { position: sticky; top: 1rem; }
.irp-prev-frame[b-iron7jwk5e] { border: 1px solid var(--isis-border); border-radius: 12px; overflow: hidden; background: var(--isis-surface); box-shadow: var(--isis-elevation-1); }
.irp-prev-header[b-iron7jwk5e] { display: flex; align-items: center; gap: 8px; padding: 8px 12px; border-bottom: 1px solid var(--isis-border); }
.irp-prev-header[b-iron7jwk5e]  img { width: 26px; height: 26px; }
.irp-prev-name[b-iron7jwk5e] { font-weight: 600; letter-spacing: .03em; font-size: 12px; color: var(--isis-text); line-height: 1; }
.irp-prev-name small[b-iron7jwk5e] { display: block; font-weight: 600; font-size: 8px; letter-spacing: .12em; color: var(--isis-text-muted); }
.irp-prev-body[b-iron7jwk5e] { display: flex; min-height: 150px; }
.irp-prev-ws[b-iron7jwk5e] { width: 130px; border-right: 1px solid var(--isis-border); padding: 10px; display: flex; flex-direction: column; gap: 8px; }
.irp-prev-fil[b-iron7jwk5e] { display: flex; align-items: center; gap: 7px; padding-bottom: 7px; border-bottom: 1px solid var(--isis-border); }
.irp-prev-fil img[b-iron7jwk5e] { width: 24px; height: 24px; object-fit: cover; box-shadow: var(--isis-elevation-1); }
.irp-prev-fil span[b-iron7jwk5e] { font-size: 11px; font-weight: 700; color: var(--isis-text); }
.irp-prev-navitem[b-iron7jwk5e] { height: 8px; border-radius: 3px; background: var(--isis-border); }
.irp-prev-main[b-iron7jwk5e] { flex: 1; padding: 12px; display: flex; flex-direction: column; gap: 10px; }
.irp-prev-pill[b-iron7jwk5e] { align-self: flex-start; font-size: 10px; font-weight: 700; padding: 4px 10px; border-radius: 999px; color: var(--isis-on-accent); }
.irp-prev-btn[b-iron7jwk5e] { align-self: flex-start; font-size: 11px; font-weight: 700; padding: 6px 14px; border-radius: 7px; color: var(--isis-on-accent); }
.irp-prev-bar[b-iron7jwk5e] { height: 9px; border-radius: 4px; background: var(--isis-surface-alt); }
.irp-prev-bar.w60[b-iron7jwk5e] { width: 60%; } .irp-prev-bar.w40[b-iron7jwk5e] { width: 40%; }

.irp-row[b-iron7jwk5e] { display: flex; align-items: center; gap: .6rem; }
.irp-row--wide[b-iron7jwk5e] { gap: .75rem; }
.irp-wrap[b-iron7jwk5e] { display: flex; gap: 1rem; flex-wrap: wrap; }
.irp-label[b-iron7jwk5e] { font-size: var(--isis-fs-base); }
.irp-color[b-iron7jwk5e] { width: 44px; height: 30px; border: none; background: none; cursor: pointer; }
.irp-asset[b-iron7jwk5e] { display: flex; align-items: flex-start; gap: 1rem; }
.irp-asset__text[b-iron7jwk5e] { flex: 1; min-width: 0; }
.irp-asset__thumb[b-iron7jwk5e] { width: 48px; height: 48px; border-radius: var(--isis-radius); object-fit: cover; border: 1px solid var(--isis-border); }
.irp-asset__actions[b-iron7jwk5e] { display: flex; flex-direction: column; gap: .4rem; align-items: flex-end; }
.irp-prev-navitem.w80[b-iron7jwk5e] { width: 80%; } .irp-prev-navitem.w65[b-iron7jwk5e] { width: 65%; }
.irp-prev-fil img.is-square[b-iron7jwk5e] { border-radius: 5px; } .irp-prev-fil img.is-round[b-iron7jwk5e] { border-radius: 50%; }
/* /Components/Pages/MfaChallenge.razor.rz.scp.css */
/* Lien de l'avis « Session expirée » : sans règle, il prend le bleu par défaut du navigateur. */
.isis-alert a[b-ylynukwc20] {
    color: inherit;
    font-weight: 600;
}
/* /Components/Pages/Mobile/MobileCoffrePage.razor.rz.scp.css */
[b-rlakrddcwn] .m-coffre__icon {
    font-size: 22px;
    color: var(--isis-text-muted);
}
.m-coffre__body[b-rlakrddcwn] {
    flex: 1 1 auto;
    min-width: 0;
}
.m-coffre__name[b-rlakrddcwn] {
    overflow-wrap: anywhere;
}
[b-rlakrddcwn] .m-coffre__file {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}
/* /Components/Pages/Mobile/MobileDelegationsPage.razor.rz.scp.css */
[b-h68n1l5i9t] .m-deleg__scope-icon {
    font-size: 14px;
    color: var(--isis-warning);
    vertical-align: middle;
}
.m-deleg__scope-restricted[b-h68n1l5i9t] {
    color: var(--isis-warning);
}
.m-deleg__reason[b-h68n1l5i9t] {
    overflow-wrap: anywhere;
}
/* /Components/Pages/Mobile/MobileEquipeFeuillesTempsPage.razor.rz.scp.css */
.m-equipe__month[b-gfkgygevp9] {
    align-items: center;
    margin-bottom: 0.6rem;
}
.m-equipe__vue[b-gfkgygevp9] {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 0.6rem;
}
.m-equipe__vue[b-gfkgygevp9]  .isis-pl-echelle button {
    min-height: 44px;
}
.m-equipe__select-all[b-gfkgygevp9] {
    align-items: center;
    justify-content: flex-start;
    min-height: 44px;
    cursor: pointer;
    margin-bottom: 0.4rem;
}
.m-equipe__check[b-gfkgygevp9] {
    width: 20px;
    height: 20px;
    flex: 0 0 auto;
    accent-color: var(--isis-accent);
}
.m-equipe__check:focus-visible[b-gfkgygevp9] {
    outline: none;
    box-shadow: var(--isis-elevation-focus);
}
.m-equipe__check-spacer[b-gfkgygevp9] {
    width: 20px;
    flex: 0 0 auto;
}
.m-equipe__selection[b-gfkgygevp9] {
    border-color: var(--isis-accent);
    margin-bottom: 0.6rem;
}
.m-equipe__reject[b-gfkgygevp9] {
    margin-top: 0.5rem;
}
.m-equipe__card--selectable[b-gfkgygevp9] {
    display: block;
    cursor: pointer;
}
.m-equipe__alert[b-gfkgygevp9] {
    color: var(--isis-warning);
    font-weight: 600;
}
/* /Components/Pages/MonEspace/ChangePasswordPage.razor.rz.scp.css */
/* La carte de connexion est réutilisée DANS le shell : ni ombre, ni marge, ni cadre propres — la RadzenCard les porte. */
.me-pwd-card[b-nmk59bolvx] { box-shadow: none; border: none; padding: 0; max-width: 520px; }
.me-pwd-form[b-nmk59bolvx] { display: flex; flex-direction: column; gap: 1.1rem; }
.me-pwd-footnote[b-nmk59bolvx] { margin-top: 0.5rem; }
/* /Components/Pages/MonEspace/CoffrePage.razor.rz.scp.css */
.coffregrid-name[b-ml7usbo1yu] {
    font-weight: 500; color: var(--isis-text);
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0;
}
.isis-rich-toolbar__btn--primary[b-ml7usbo1yu] { position: relative; gap: 0.35rem; padding-inline: 0.7rem; }
.isis-rich-toolbar__btn.is-disabled[b-ml7usbo1yu] { opacity: 0.55; pointer-events: none; }
.isis-grid__action-btn--danger:hover[b-ml7usbo1yu] {
    background: var(--isis-danger-soft) !important;
    color: var(--isis-danger) !important;
}
/* Le vrai contrôle est l'input fichier transparent : sans ce relais, le focus clavier ne se voit pas. */
.isis-rich-toolbar__btn--primary:has(input[type="file"]:focus-visible)[b-ml7usbo1yu] {
    outline: 2px solid var(--isis-current-mod);
    outline-offset: 2px;
}
/* /Components/Pages/MonEspace/MesProjetsPage.razor.rz.scp.css */
/* La zone calendrier défile d'un bloc : ni le calendrier de saisie (grille en overflow: hidden)
   ni la section « Mes mobilisations » ne doivent y être écrasés par le flex. */
.isis-ts-cal-wrap[b-zkq9ur3qxh]  .isis-ts-cal,
.isis-ts-cal-wrap > .isis-rich-section[b-zkq9ur3qxh] {
    flex: 0 0 auto;
}
/* /Components/Pages/MonEspace/MesReservationsPage.razor.rz.scp.css */
.resa-champs[b-nwl54zook8] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--isis-space-3, 0.75rem);
    align-items: flex-end;
    margin-bottom: var(--isis-space-3, 0.75rem);
}

.resa-champ[b-nwl54zook8] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.resa-avertissement[b-nwl54zook8] {
    margin: 0 0 var(--isis-space-2, 0.5rem);
    color: var(--isis-text-muted);
    font-size: 0.85rem;
}

.resa-aucun-site[b-nwl54zook8] {
    margin: 0 0 var(--isis-space-3, 0.75rem);
    color: var(--isis-text-muted);
}

.resa-bilan h3[b-nwl54zook8] {
    margin: 0 0 0.25rem;
    font-size: 0.95rem;
    font-weight: 600;
}

.resa-bilan p[b-nwl54zook8] {
    margin: 0 0 var(--isis-space-2, 0.5rem);
    color: var(--isis-text-muted);
    font-size: 0.85rem;
}
/* /Components/Pages/MonEspace/MesStructuresPage.razor.rz.scp.css */
.isis-structure-md__item-wrap[b-zl99mr3uir] {
    display: flex;
    min-width: 0;
}

@media (max-width: 820px) {
    .isis-structure-md__item-wrap[b-zl99mr3uir] {
        flex: 0 0 auto;
    }
}
/* /Components/Pages/MonEspace/NotificationsPage.razor.rz.scp.css */
/* Boîte de réception — deux volets.
   Aucune ombre ad-hoc ni gradient : l'élévation passe par les tokens --isis-elevation-*.
   Les couleurs sont toutes tirées des variables --isis-* (thème Instrument).

   CSS isolation : la ligne (NotificationInboxRow) et le volet (NotificationDetailPane)
   sont des composants enfants — leur markup ne porte PAS l'attribut de scope de cette
   page. Tout ce qui les vise passe donc par `::deep` sous un ancêtre appartenant à la
   page, sans quoi la règle ne s'applique à rien. */

.isis-notif-page[b-weg0enc2hu] {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

/* Le compteur hero, la rangée de chips et le <select> de module ont été SUPPRIMÉS avec le
   bandeau et les puces qu'ils habillaient (harmonisation MonEspace) : le compteur « Action
   requise » est devenu un bouton de la barre de filtres, les puces des entonnoirs communs, et
   le <select> natif — interdit en page interactive — un <IsisColumnFilter>. Leurs règles
   partent avec eux : une feuille scopée qui garde des sélecteurs sans markup est un piège pour
   la prochaine lecture, pas un filet de sécurité. */

/* ── Les deux volets ───────────────────────────────────────────────────────── */

.isis-notif-panes[b-weg0enc2hu] {
    flex: 1;
    min-height: 0;
}

.isis-notif-list[b-weg0enc2hu] {
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
}

.isis-notif-list__scroll[b-weg0enc2hu] {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
}

.isis-notif-list__sep[b-weg0enc2hu] {
    position: sticky;
    top: 0;
    z-index: 1;
    margin: 0;
    padding: 0.375rem 0.875rem;
    font-size: 0.6rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.09em;
    color: var(--isis-text-muted);
    background: var(--isis-surface-alt);
    border-bottom: 1px solid var(--isis-border);
}

/* ── Une ligne = un sujet (composant enfant → ::deep) ──────────────────────── */

.isis-notif-list__scroll[b-weg0enc2hu]  .isis-notif-row {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    padding: 0.625rem 0.75rem;
    border-bottom: 1px solid var(--isis-border-subtle);
}

/* L'état (lu / ouvert / sélectionné) est porté par le fond teinté seul : DESIGN.md §1
   proscrit le liseré vertical sur une ligne de liste. La catégorie, elle, est portée
   par le tag textuel coloré de .isis-notif-row__meta — jamais par la couleur seule. */
.isis-notif-list__scroll[b-weg0enc2hu]  .isis-notif-row.is-read { background: var(--isis-surface-alt); }
.isis-notif-list__scroll[b-weg0enc2hu]  .isis-notif-row.is-read .isis-notif-row__title {
    font-weight: 500;
    color: var(--isis-text-muted);
}
/* Toute la ligne est cliquable (lien étiré du titre) et rien ne le signalait. Le survol le dit,
   sans concurrencer les fonds d'état : il reste sous is-active / is-selected dans l'ordre des
   règles, donc un sujet ouvert ou coché garde son propre fond au survol. */
.isis-notif-list__scroll[b-weg0enc2hu]  .isis-notif-row:hover {
    background: color-mix(in oklch, var(--isis-text) 4%, transparent);
}

.isis-notif-list__scroll[b-weg0enc2hu]  .isis-notif-row.is-active {
    background: color-mix(in oklch, var(--isis-current-mod) 8%, transparent);
}
.isis-notif-list__scroll[b-weg0enc2hu]  .isis-notif-row.is-selected {
    background: color-mix(in oklch, var(--isis-accent) 6%, transparent);
}

.isis-notif-list__scroll[b-weg0enc2hu]  .isis-notif-row__check {
    position: relative;
    z-index: 2;
    margin-top: 0.125rem;
}

.isis-notif-list__scroll[b-weg0enc2hu]  .isis-notif-row__dot {
    width: 6px; height: 6px; border-radius: 50%;
    margin-top: 0.45rem; flex: none; background: transparent;
}
/* Pastille de non-lu en --isis-read, PAS en --isis-accent : le chaud est réservé à la
   catégorie « Action requise ». Partagé entre le hero, le tag Action requise et l'état non-lu,
   il finissait par ne plus rien vouloir dire — un sujet Information jamais ouvert portait le
   même point orange qu'un sujet réellement urgent, sur 608 lignes. Un signal = un sens.
   --isis-read plutôt que --isis-accent pour deux raisons : (1) le token est défini comme le
   bleu-gris neutre « Lecture », découplé de tout module — c'est exactement ce qu'exprime un
   point de non-lu ; (2) --isis-accent est surchargé par l'accent de MARQUE du tenant, qui n'a
   pas de variante sombre : la pastille y tombait à 1.33:1 sur la ligne, donc invisible (mesuré).
   --isis-read est un ton médian identique dans les deux thèmes, ~4:1 des deux côtés. */
.isis-notif-list__scroll[b-weg0enc2hu]  .isis-notif-row__dot.is-unread { background: var(--isis-read); }

.isis-notif-list__scroll[b-weg0enc2hu]  .isis-notif-row__icon {
    display: flex; align-items: center; justify-content: center;
    width: 26px; height: 26px; flex: none;
    border-radius: var(--isis-radius-sm);
}

.isis-notif-list__scroll[b-weg0enc2hu]  .isis-notif-row__main { flex: 1; min-width: 0; }

.isis-notif-list__scroll[b-weg0enc2hu]  .isis-notif-row__title {
    display: block;
    padding: 0;
    border: 0;
    background: none;
    text-align: left;
    font: inherit;
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: -0.012em;
    color: var(--isis-text);
    cursor: pointer;
    overflow-wrap: anywhere;
}

/* Lien étiré : le titre est le seul élément qui ouvre le sujet. La case à cocher
   reste au-dessus grâce à son z-index. */
.isis-notif-list__scroll[b-weg0enc2hu]  .isis-notif-row__title::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 1;
}
.isis-notif-list__scroll[b-weg0enc2hu]  .isis-notif-row__title:focus-visible {
    outline: 2px solid color-mix(in oklch, var(--isis-current-mod) 60%, transparent);
    outline-offset: 2px;
}

/* Troncature à 2 lignes : le corps vient de champs libres métier (« Motif : … » d'un renvoi de
   facturation, commentaire de rejet) dont rien ne borne la longueur. Sans clamp, une seule
   notification bavarde fait exploser la hauteur de sa ligne et casse la régularité sur laquelle
   repose le balayage de la colonne. Le texte complet reste lisible dans le fil du sujet. */
.isis-notif-list__scroll[b-weg0enc2hu]  .isis-notif-row__body {
    margin-top: 0.125rem;
    font-size: 0.75rem;
    color: var(--isis-text-muted);
    overflow-wrap: anywhere;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow: hidden;
}

.isis-notif-list__scroll[b-weg0enc2hu]  .isis-notif-row__meta {
    display: flex; align-items: center; gap: 0.375rem;
    margin-top: 0.3rem; flex-wrap: wrap;
}

.isis-notif-list__scroll[b-weg0enc2hu]  .isis-notif-row__tag {
    font-size: 0.58rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.07em;
    padding: 0.1rem 0.375rem;
    border-radius: var(--isis-radius-sm);
    background: var(--isis-surface-alt);
    color: var(--isis-text-muted);
}
/* Texte en --isis-accent-strong, pas --isis-accent : ce dernier (#c2410c en clair)
   ne donne que 3.45:1 sur le fond du tag (14 % de lui-même composé sur une ligne lue à
   --isis-surface-alt) — échec WCAG AA, alors que c'est LE porteur de priorité depuis le
   retrait du filet vertical. Le token -strong est prévu pour ça (déjà employé en texte sur
   -soft) et va dans le bon sens des deux côtés : plus foncé en clair (#9a3412 → 4.87:1),
   plus clair en sombre (#ff9d5c), où le fond du tag est un brun sombre. */
.isis-notif-list__scroll[b-weg0enc2hu]  .isis-notif-row__tag--action {
    background: color-mix(in oklch, var(--isis-accent) 14%, transparent);
    color: var(--isis-accent-strong);
}
/* Paire sémantique --isis-info, PAS --isis-accent : l'accent est l'accent de MARQUE du tenant
   (BrandSync le surcharge sur .isis-shell) et il n'a pas de variante sombre — le tag héritait
   donc en thème sombre d'un fond quasi blanc, éclatant sur la liste sombre, alors qu'Échéance
   est la catégorie la plus fréquente (517 sujets sur 610 en recette) : la moins urgente criait
   le plus fort. --isis-info est déclinée dans les deux thèmes et documentée comme lisible en
   texte sur --isis-info-soft (≈8:1 en clair, ≈7:1 en sombre). Bénéfice de fond : un signal de
   CATÉGORIE ne doit pas dépendre de la marque du client — les trois tags sont désormais
   brand-independent (chaud / bleu / neutre). */
.isis-notif-list__scroll[b-weg0enc2hu]  .isis-notif-row__tag--echeance {
    background: var(--isis-info-soft);
    color: var(--isis-info);
}

/* Information : neutre assumé, déclaré explicitement plutôt que laissé à l'héritage de la règle
   de base. Les trois niveaux de la palette de catégorie se lisent ainsi au même endroit —
   chaud (agir) > bleu (surveiller) > neutre (pour information). */
.isis-notif-list__scroll[b-weg0enc2hu]  .isis-notif-row__tag--info {
    background: var(--isis-surface-alt);
    color: var(--isis-text-muted);
}

.isis-notif-list__scroll[b-weg0enc2hu]  .isis-notif-row__count {
    font-family: var(--isis-font-mono, 'Geist Mono', ui-monospace, monospace);
    font-variant-numeric: tabular-nums;
    font-size: 0.68rem;
    color: var(--isis-text-muted);
}

.isis-notif-list__scroll[b-weg0enc2hu]  .isis-notif-row__date {
    flex: none;
    font-size: 0.68rem;
    color: var(--isis-text-muted);
    white-space: nowrap;
    margin-top: 0.125rem;
}

/* ── Barre d'actions groupées ──────────────────────────────────────────────── */

/* (Les règles .isis-notif-bulk* ont été retirées : la barre de sélection passe désormais par
   <RichListBulkActionsBar> et .isis-bulk-actions-bar, le composant transverse.) */

/* ── États vides ───────────────────────────────────────────────────────────── */

.isis-notif-list__empty[b-weg0enc2hu],
.isis-notif-detail-host[b-weg0enc2hu]  .isis-notif-detail__empty {
    display: flex; flex-direction: column;
    align-items: center; justify-content: center;
    gap: 0.5rem; padding: 2.5rem 1.5rem;
    text-align: center; height: 100%;
}

.isis-notif-list__empty-icon[b-weg0enc2hu] {
    display: flex; align-items: center; justify-content: center;
    width: 46px; height: 46px;
    border-radius: var(--isis-radius-lg);
    background: var(--isis-accent-soft);
    color: var(--isis-accent);
}

.isis-notif-list__empty-title[b-weg0enc2hu] { margin: 0; font-size: 0.85rem; font-weight: 600; }
.isis-notif-list__empty-hint[b-weg0enc2hu]  { margin: 0; font-size: 0.75rem; color: var(--isis-text-muted); }

/* ── Volet de détail (composant enfant → ::deep) ───────────────────────────── */

/* Le padding de 1rem porté par .isis-master-detail__detail dans isis-theme.css est
   neutralisé : c'est .isis-notif-detail qui pose le sien, à l'intérieur de la zone
   scrollable. Le conserver doublerait l'inset et sortirait le scroll du cadre. */
.isis-notif-detail-host[b-weg0enc2hu] {
    min-height: 0;
    overflow: hidden;
    padding: 0;
}

.isis-notif-detail-host[b-weg0enc2hu]  .isis-notif-detail {
    height: 100%;
    overflow-y: auto;
    padding: 1rem 1.125rem;
}

.isis-notif-detail-host[b-weg0enc2hu]  .isis-notif-detail__head {
    display: flex; align-items: flex-start; gap: 0.625rem;
}

.isis-notif-detail-host[b-weg0enc2hu]  .isis-notif-detail__back {
    display: none;                      /* visible seulement en superposition étroite */
    align-items: center; justify-content: center;
    width: 28px; height: 28px; flex: none;
    border: 1px solid var(--isis-border);
    border-radius: var(--isis-radius-sm);
    background: var(--isis-surface);
    cursor: pointer;
}

.isis-notif-detail-host[b-weg0enc2hu]  .isis-notif-detail__title {
    margin: 0;
    font-size: 0.95rem; font-weight: 640; letter-spacing: -0.02em;
    overflow-wrap: anywhere;
}

.isis-notif-detail-host[b-weg0enc2hu]  .isis-notif-detail__sub {
    margin: 0.2rem 0 0;
    font-size: 0.72rem;
    color: var(--isis-text-muted);
}

.isis-notif-detail-host[b-weg0enc2hu]  .isis-notif-detail__actions {
    display: flex; flex-wrap: wrap; gap: 0.4rem;
    margin: 0.875rem 0 0;
}

.isis-notif-detail-host[b-weg0enc2hu]  .isis-notif-detail__label {
    margin: 1rem 0 0.625rem;
    font-size: 0.6rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.09em;
    color: var(--isis-text-muted);
    padding-top: 0.875rem;
    border-top: 1px solid var(--isis-border);
}

/* ── Fil du sujet ──────────────────────────────────────────────────────────── */

.isis-notif-detail-host[b-weg0enc2hu]  .isis-notif-thread { margin: 0; padding: 0; list-style: none; }

.isis-notif-detail-host[b-weg0enc2hu]  .isis-notif-thread__item {
    position: relative;
    display: flex; gap: 0.625rem;
    padding-bottom: 0.875rem;
}

.isis-notif-detail-host[b-weg0enc2hu]  .isis-notif-thread__item::before {
    content: '';
    position: absolute;
    left: 5px; top: 0.875rem; bottom: 0;
    width: 1px;
    background: var(--isis-border);
}
.isis-notif-detail-host[b-weg0enc2hu]  .isis-notif-thread__item:last-child::before { display: none; }

.isis-notif-detail-host[b-weg0enc2hu]  .isis-notif-thread__dot {
    position: relative; z-index: 1;
    width: 11px; height: 11px; flex: none;
    margin-top: 0.15rem;
    border-radius: 50%;
    border: 2px solid var(--isis-border-strong, var(--isis-border));
    background: var(--isis-surface);
}
.isis-notif-detail-host[b-weg0enc2hu]  .isis-notif-thread__item.is-unread .isis-notif-thread__dot {
    border-color: var(--isis-accent);
}

.isis-notif-detail-host[b-weg0enc2hu]  .isis-notif-thread__title {
    font-size: 0.78rem; font-weight: 560; overflow-wrap: anywhere;
}
.isis-notif-detail-host[b-weg0enc2hu]  .isis-notif-thread__body {
    margin-top: 0.15rem; font-size: 0.73rem; color: var(--isis-text-muted); overflow-wrap: anywhere;
}
.isis-notif-detail-host[b-weg0enc2hu]  .isis-notif-thread__date {
    display: block; margin-top: 0.2rem; font-size: 0.68rem; color: var(--isis-text-muted);
}

/* ── Écran étroit : le volet passe en superposition ────────────────────────── */

/* Le seuil est calé sur celui d'isis-theme.css, qui masque .isis-master-detail__detail
   dès 1200px. Un seuil plus bas (1100) ouvrait une bande morte 1101-1200 : le volet
   était masqué par le thème et aucune règle ne le remontait, donc cliquer une ligne
   chargeait le sujet sans rien afficher — ni volet, ni retour, ni message. */
@media (max-width: 1200px) {
    /* La grille repasse à UNE colonne : redondant avec le thème à ce seuil, mais la
       règle reste vraie si le seuil du thème bouge. */
    .isis-notif-panes[b-weg0enc2hu] { grid-template-columns: minmax(0, 1fr); }

    .isis-notif-panes .isis-notif-detail-host[b-weg0enc2hu] { display: none; }

    .isis-notif-panes.is-detail-open .isis-notif-list[b-weg0enc2hu] { display: none; }

    .isis-notif-panes.is-detail-open .isis-notif-detail-host[b-weg0enc2hu] {
        display: block;
        width: 100%;
    }

    .isis-notif-detail-host[b-weg0enc2hu]  .isis-notif-detail__back { display: flex; }
}
/* /Components/Pages/MonEspace/ValidationsPage.razor.rz.scp.css */
/* La page empile la grille des absences puis les sections Mobilisations et Affectations :
   elle défile (isis-rich-page--scrollable), mais la grille garde une hauteur bornée et
   défile en interne — sans borne, elle chevauchait les sections suivantes ou poussait
   tout le reste sous l'historique. */
.isis-rich-page[b-5emnd77kxr]  .isis-master-detail--validations {
    flex: 0 0 auto;
    height: calc(100vh - 240px);
    min-height: 360px;
}

.isis-val-meta[b-5emnd77kxr] {
    font-size: var(--isis-fs-sm);
}

.isis-val-meta--bloc[b-5emnd77kxr] {
    display: block;
}
/* /Components/Pages/MonEspace/VisaLotAvertissementDialog.razor.rz.scp.css */
.isis-vla__phrase[b-zwt8qmn9ti] {
    margin: 0 0 0.5rem;
    font-weight: 600;
    color: var(--isis-text);
    overflow-wrap: anywhere;
}

.isis-vla__mention[b-zwt8qmn9ti] {
    margin: 0 0 0.75rem;
    font-size: 0.88rem;
    color: var(--isis-text);
    overflow-wrap: anywhere;
}

.isis-vla__liste[b-zwt8qmn9ti],
.isis-vla__details[b-zwt8qmn9ti] {
    margin: 0;
    padding-left: 1.1rem;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    font-size: 0.88rem;
    color: var(--isis-text);
    overflow-wrap: anywhere;
}

.isis-vla__liste[b-zwt8qmn9ti] {
    list-style: disc;
}

.isis-vla__details[b-zwt8qmn9ti] {
    list-style: circle;
    margin-top: 0.3rem;
    gap: 0.2rem;
}

.isis-vla__nom[b-zwt8qmn9ti] {
    font-weight: 600;
}
/* /Components/Pages/ResetPassword.razor.rz.scp.css */
.isis-login__brand[b-wesflfor1k]  h1:focus-visible {
    outline: 2px solid var(--isis-current-mod);
    outline-offset: 2px;
}
/* /Components/Pages/Roadmap/RoadmapPage.razor.rz.scp.css */
/* Ancre du sélecteur de module : le menu est positionné par rapport à elle,
   le déclencheur étant devenu un vrai <button> frère du menu. */
.roadmap-picker-anchor[b-q44n3nbfp9] {
    position: relative;
    display: inline-flex;
}

@media (max-width: 720px) {
    .roadmap-picker-anchor[b-q44n3nbfp9] {
        display: flex;
        width: 100%;
    }
}

/* Chevron en icône (le glyphe ▾ n'existe pas en Geist et se rendait comme un point). */
.roadmap-picker-anchor .isis-roadmap-picker__chevron[b-q44n3nbfp9] {
    display: inline-flex;
    align-items: center;
    font-size: inherit;
}
/* /Components/Pages/Sirh/AnnualSynthesisView.razor.rz.scp.css */
.isis-annual[b-n6unpl8ktw] { display:flex; flex-direction:column; gap:.7rem; }
.isis-annual .field[b-n6unpl8ktw] { display:flex; flex-direction:column; gap:.2rem; }
.isis-annual .label[b-n6unpl8ktw] { font-size:.72rem; color:var(--isis-text-muted); font-weight:600; }
.isis-annual-scroll[b-n6unpl8ktw] { overflow:auto; max-height:calc(100vh - 320px); border:1px solid var(--isis-border-soft); border-radius:8px; }
table.isis-annual-table[b-n6unpl8ktw] { border-collapse:separate; border-spacing:0; width:max-content; min-width:100%; font-size:.8rem; }
.isis-annual-table th[b-n6unpl8ktw], .isis-annual-table td[b-n6unpl8ktw] { padding:.3rem .5rem; white-space:nowrap; border-bottom:1px solid var(--isis-border-soft); }
.isis-annual-table thead th[b-n6unpl8ktw] { position:sticky; top:0; z-index:2; background:var(--isis-surface); font-size:.7rem; text-transform:uppercase; letter-spacing:.02em; color:var(--isis-text-muted); font-weight:600; text-align:right; }
.isis-annual-table thead th.lcol[b-n6unpl8ktw] { text-align:left; }
.isis-annual-table td.num[b-n6unpl8ktw] { text-align:right; font-variant-numeric:tabular-nums; }
.isis-annual-table td.is-zero[b-n6unpl8ktw] { color:var(--isis-text-muted); opacity:.45; }
.isis-annual-table td.mcol[b-n6unpl8ktw] { text-align:left; font-weight:600; text-transform:capitalize; position:sticky; left:0; background:var(--isis-surface); z-index:1; }
.isis-annual-table tbody tr:hover td[b-n6unpl8ktw] { background:var(--isis-surface-alt); }
.isis-annual-table tbody tr:hover td.mcol[b-n6unpl8ktw] { background:var(--isis-surface-alt); }
.isis-annual-table tr.is-empty td[b-n6unpl8ktw] { opacity:.5; }
.isis-annual-table tr.is-total td[b-n6unpl8ktw] { border-top:2px solid color-mix(in srgb, var(--isis-current-mod, var(--isis-accent)) 35%, transparent); background:color-mix(in srgb, var(--isis-current-mod, var(--isis-accent)) 8%, var(--isis-surface)); font-weight:600; }
.isis-annual-table tr.is-total td.mcol[b-n6unpl8ktw] { background:color-mix(in srgb, var(--isis-current-mod, var(--isis-accent)) 8%, var(--isis-surface)); }
.isis-annual-table td.visa[b-n6unpl8ktw] { text-align:center; font-variant-numeric:tabular-nums; }
.isis-annual-table td.visa.ok[b-n6unpl8ktw] { color:var(--isis-success); }
.isis-annual-table td.visa.pending[b-n6unpl8ktw] { color:var(--isis-text-muted); opacity:.5; }
.isis-annual-table .grp[b-n6unpl8ktw] { border-left:2px solid var(--isis-border); }
.isis-annual-meta[b-n6unpl8ktw] { font-size:.85rem; color:var(--isis-text-muted); }
/* /Components/Pages/Sirh/CollaborateurOrgMatrix.razor.rz.scp.css */
/* Organigramme arbre + rails + lanes (mode « Organisation ») — tokens --isis-* only. */

/* Le diagramme remplit la zone master ; centré horizontalement (safe = pas de rognage si trop large). */
.isis-org[b-eym8fehl6t] {
    display: flex;
    justify-content: safe center;
    align-items: flex-start;
    width: 100%;
    height: 100%;
    min-height: 0;
    overflow: hidden;
}

.isis-org__scroll[b-eym8fehl6t] {
    flex: 0 1 auto;        /* épouse la largeur de la scène ; scroll interne si trop large */
    max-width: 100%;
    max-height: 100%;
    overflow: auto;
    background: var(--isis-surface);
    border: 1px solid var(--isis-border);
    border-radius: var(--isis-radius-lg);
    box-shadow: var(--isis-elevation-1);
}

.isis-org-empty[b-eym8fehl6t] {
    padding: var(--isis-space-lg);
    color: var(--isis-text-muted);
    text-align: center;
}

/* ── Arbre ── */
.isis-org__tree[b-eym8fehl6t] {
    position: relative;
    background: color-mix(in oklch, var(--isis-current-mod) 3%, var(--isis-surface));
    border-bottom: 2px solid color-mix(in oklch, var(--isis-current-mod) 26%, transparent);
}

.isis-org__wires[b-eym8fehl6t] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
}

.isis-org__node[b-eym8fehl6t] {
    position: absolute;
    transform: translateX(-50%);
    box-sizing: border-box;   /* largeur rendue = 164/200px (sinon padding+bordure débordent → scrollbar) */
    width: 164px;
    min-height: 70px;
    background: var(--isis-surface);
    border: 1px solid var(--isis-border);
    border-top: 3px solid var(--isis-current-mod);
    border-radius: var(--isis-radius);
    padding: 0.4rem 0.5rem 0.45rem;
    box-shadow: var(--isis-elevation-1);
    transition: opacity .15s, box-shadow .15s;
}
.isis-org__node:hover[b-eym8fehl6t] { box-shadow: var(--isis-elevation-2); }
.isis-org__node.is-wide[b-eym8fehl6t] { width: 200px; }

/* axes : technique = vert module ; juridique = terre cuite */
.isis-org__node.is-tech[b-eym8fehl6t] { border-top-color: var(--isis-current-mod); }
.isis-org__node.is-jur[b-eym8fehl6t]  { border-top-color: var(--isis-accent); }

.isis-org__node.is-root[b-eym8fehl6t] {
    border-top-color: var(--isis-text);
    background: var(--isis-text);
    box-shadow: none;
}
.isis-org__node.is-root .isis-org__node-name[b-eym8fehl6t],
.isis-org__node.is-root .isis-org__node-resp[b-eym8fehl6t],
.isis-org__node.is-root .isis-org__node-cnt[b-eym8fehl6t] { color: var(--isis-surface) !important; }
.isis-org__node.is-root .isis-org__node-ic[b-eym8fehl6t],
.isis-org__node.is-root .isis-org__node-chip[b-eym8fehl6t] {
    background: color-mix(in oklch, var(--isis-surface) 16%, var(--isis-text));
    color: var(--isis-surface);
}

/* surbrillance croisée */
.isis-org__node.is-hl[b-eym8fehl6t] { outline: 2px solid var(--isis-current-mod); outline-offset: 1px; box-shadow: var(--isis-elevation-2); }
.isis-org__scene.is-lit .isis-org__node.is-dim[b-eym8fehl6t] { opacity: 0.4; }

.isis-org__node-top[b-eym8fehl6t] { display: flex; align-items: center; gap: 0.4rem; }
.isis-org__node-ic[b-eym8fehl6t] { width: 22px; height: 22px; border-radius: 6px; flex: none; display: grid; place-items: center; }
.isis-org__node-ic svg[b-eym8fehl6t] { width: 13px; height: 13px; }
.isis-org__node.is-tech .isis-org__node-ic[b-eym8fehl6t],
.isis-org__node.is-tech .isis-org__node-chip[b-eym8fehl6t] {
    background: color-mix(in oklch, var(--isis-current-mod) 13%, var(--isis-surface));
    color: var(--isis-current-mod);
}
.isis-org__node.is-jur .isis-org__node-ic[b-eym8fehl6t],
.isis-org__node.is-jur .isis-org__node-chip[b-eym8fehl6t] {
    background: color-mix(in oklch, var(--isis-accent) 12%, var(--isis-surface));
    color: var(--isis-accent);
}
.isis-org__node-chip[b-eym8fehl6t] {
    font-size: 0.5rem; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase;
    padding: 0.1rem 0.34rem; border-radius: 999px; white-space: nowrap;
}
.isis-org__node-cnt[b-eym8fehl6t] { margin-left: auto; font-size: 0.74rem; font-weight: 700; color: var(--isis-text); font-variant-numeric: tabular-nums; }
.isis-org__node-name[b-eym8fehl6t] {
    font-size: 0.78rem; font-weight: 700; line-height: 1.12; margin-top: 5px;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.isis-org__node-sub[b-eym8fehl6t] {
    font-size: 0.62rem; color: var(--isis-text-muted); margin-top: 2px;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.isis-org__node-direct[b-eym8fehl6t] { color: var(--isis-current-mod); font-weight: 600; }

/* ── Lanes : rails continus + grille ── */
.isis-org__lanes[b-eym8fehl6t] { position: relative; }

.isis-org__rail[b-eym8fehl6t] {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 0;
    border-left: 1.5px dashed color-mix(in oklch, var(--isis-current-mod) 38%, var(--isis-surface));
    z-index: 0;
    pointer-events: none;
    transition: border-color .15s;
}
.isis-org__rail.is-hl[b-eym8fehl6t] { border: 1px solid var(--isis-current-mod); z-index: 3; }

.isis-org__lane[b-eym8fehl6t] {
    display: grid;
    grid-template-columns: 190px repeat(var(--anchors), 180px);
    position: relative;
    z-index: 1;
    border-top: 1px solid var(--isis-border);
    transition: background .15s;
}
.isis-org__lane.is-hl[b-eym8fehl6t] { background: color-mix(in oklch, var(--isis-accent) 6%, var(--isis-surface)); }
.isis-org__scene.is-lit .isis-org__lane.is-dim .isis-org__lanehead[b-eym8fehl6t] { opacity: 0.5; }

.isis-org__lanehead[b-eym8fehl6t] {
    padding: 0.5rem 0.55rem;
    background: color-mix(in oklch, var(--isis-accent) 6%, var(--isis-surface));
    border-right: 1px solid var(--isis-border);
    border: 1px solid var(--isis-accent);
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 0.28rem;
    position: sticky;
    left: 0;
    z-index: 2;
}
.isis-org__lane.is-sans .isis-org__lanehead[b-eym8fehl6t] {
    background: var(--isis-surface);
    border-color: var(--isis-border-strong);
}

.isis-org__lane-top[b-eym8fehl6t] { display: flex; align-items: center; gap: 0.4rem; }
.isis-org__lane-ic[b-eym8fehl6t] {
    width: 22px; height: 22px; border-radius: 6px; flex: none; display: grid; place-items: center;
    background: color-mix(in oklch, var(--isis-accent) 12%, var(--isis-surface));
    color: var(--isis-accent);
}
.isis-org__lane-ic svg[b-eym8fehl6t] { width: 13px; height: 13px; }
.isis-org__lanename[b-eym8fehl6t] { font-size: 0.8rem; font-weight: 700; }

.isis-org__resp[b-eym8fehl6t] {
    display: flex;
    flex-direction: column;
    border: 1px solid color-mix(in oklch, var(--isis-accent) 22%, transparent);
    border-radius: var(--isis-radius-sm);
    padding: 0.22rem 0.32rem;
    background: color-mix(in oklch, var(--isis-accent) 7%, var(--isis-surface));
}
.isis-org__resp-badge[b-eym8fehl6t] {
    font-size: 0.52rem;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--isis-accent);
    letter-spacing: 0.03em;
}
.isis-org__resp-name[b-eym8fehl6t] { font-size: 0.66rem; font-weight: 600; }
.isis-org__resp-eff[b-eym8fehl6t] { font-size: 0.56rem; color: var(--isis-text-muted); }

.isis-org__cell[b-eym8fehl6t] {
    padding: 0.45rem 0.4rem;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    justify-content: flex-start;
    min-width: 0;
    transition: background .15s;
}
/* Surbrillance croisée des cellules : colonne-service (vert) × lane-agence (terre cuite). */
.isis-org__cell.is-hl[b-eym8fehl6t] { background: color-mix(in oklch, var(--isis-current-mod) 7%, var(--isis-surface)); }   /* colonne (technique) */
.isis-org__lane.is-hl .isis-org__cell[b-eym8fehl6t] { background: color-mix(in oklch, var(--isis-accent) 7%, var(--isis-surface)); }  /* ligne (juridique) */
.isis-org__lane.is-hl .isis-org__cell.is-hl[b-eym8fehl6t] {                                          /* intersection */
    background: color-mix(in oklch, var(--isis-current-mod) 14%, color-mix(in oklch, var(--isis-accent) 14%, var(--isis-surface)));
    outline: 1px solid color-mix(in oklch, var(--isis-current-mod) 40%, transparent);
    outline-offset: -1px;
}

.isis-org__chip[b-eym8fehl6t] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    width: 100%;
    border: 1px solid var(--isis-border);
    border-radius: var(--isis-radius-sm);
    padding: 0.26rem 0.4rem;
    font-size: 0.66rem;
    background: var(--isis-surface);
    box-shadow: var(--isis-elevation-1);
    cursor: pointer;
    text-align: left;
    color: var(--isis-text);
    font-family: inherit;
}
.isis-org__chip:hover[b-eym8fehl6t] { border-color: color-mix(in oklch, var(--isis-current-mod) 45%, var(--isis-border)); }
.isis-org__chip:focus-visible[b-eym8fehl6t] {
    outline: none;
    box-shadow: 0 0 0 2px color-mix(in oklch, var(--isis-current-mod) 55%, transparent);
}
.isis-org__chip.is-selected[b-eym8fehl6t] {
    border-color: var(--isis-current-mod);
    background: color-mix(in oklch, var(--isis-current-mod) 8%, var(--isis-surface));
}
.isis-org__chip.is-inactive[b-eym8fehl6t] { opacity: 0.55; }
.isis-org__chip.is-manager[b-eym8fehl6t] { border: 1px solid var(--isis-current-mod); }

.isis-org__av[b-eym8fehl6t] {
    width: 19px;
    height: 19px;
    border-radius: 50%;
    object-fit: cover;
    flex: 0 0 auto;
}
.isis-org__av--initials[b-eym8fehl6t] {
    background: var(--isis-current-mod);
    color: var(--isis-surface);
    display: grid;
    place-items: center;
    font-size: 0.5rem;
    font-weight: 700;
}
.isis-org__pname[b-eym8fehl6t] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    flex: 1;
    min-width: 0;
}
.isis-org__star[b-eym8fehl6t] { color: var(--isis-accent); font-size: 0.72rem; flex: 0 0 auto; }

.isis-org__more[b-eym8fehl6t] {
    align-self: flex-start;
    border: 1px dashed var(--isis-border-strong);
    background: transparent;
    border-radius: var(--isis-radius-sm);
    font-size: 0.6rem;
    padding: 0.15rem 0.4rem;
    color: var(--isis-text-muted);
    cursor: pointer;
}
.isis-org__more:hover[b-eym8fehl6t] { color: var(--isis-current-mod); border-color: var(--isis-current-mod); }
.isis-org__more:focus-visible[b-eym8fehl6t] {
    outline: none;
    box-shadow: 0 0 0 2px color-mix(in oklch, var(--isis-current-mod) 45%, transparent);
}

.isis-org__cell-empty[b-eym8fehl6t] { color: var(--isis-border-strong); font-size: 0.8rem; }

.isis-org__sr[b-eym8fehl6t] {
    position: absolute;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0, 0, 0, 0);
    white-space: nowrap; border: 0;
}

/* ── Panneau récap ── */
/* Vrai sidepanel : pleine hauteur, surface dédiée, scroll propre. */
.isis-org__recap[b-eym8fehl6t] {
    flex: 0 0 224px;
    align-self: stretch;
    display: flex;
    flex-direction: column;
    gap: var(--isis-space-sm);
    padding: var(--isis-space-sm);
    overflow-y: auto;
    background: color-mix(in oklch, var(--isis-current-mod) 3%, var(--isis-surface));
    border: 1px solid var(--isis-border);
    border-radius: var(--isis-radius-lg);
    box-shadow: var(--isis-elevation-1);
}
.isis-org__recap-head[b-eym8fehl6t] {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--isis-text);
    padding: 0.15rem 0.2rem 0.1rem;
}

.isis-org__recap-card[b-eym8fehl6t] {
    background: var(--isis-surface);
    border: 1px solid var(--isis-border);
    border-radius: var(--isis-radius-sm);
    padding: 0.5rem 0.6rem;   /* compact, sans élévation : secondaire */
}
.isis-org__recap-card.is-warm[b-eym8fehl6t] {
    border-color: color-mix(in oklch, var(--isis-accent) 30%, var(--isis-border));
    background: color-mix(in oklch, var(--isis-accent) 4%, var(--isis-surface));
}

.isis-org__recap-num[b-eym8fehl6t] {
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1;
    color: var(--isis-accent);
    font-variant-numeric: tabular-nums;
}
.isis-org__recap-lbl[b-eym8fehl6t] {
    font-size: 0.62rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--isis-text-muted);
    font-weight: 700;
}
.isis-org__recap-hint[b-eym8fehl6t] { font-size: 0.64rem; color: var(--isis-text-muted); margin: 0.3rem 0 0.45rem; }

.isis-org__recap-cta[b-eym8fehl6t] {
    width: 100%;
    border: none;
    border-radius: var(--isis-radius-sm);
    background: var(--isis-accent);
    color: var(--isis-surface);
    font-weight: 600;
    font-size: 0.7rem;
    padding: 0.38rem 0.5rem;
    cursor: pointer;
}
.isis-org__recap-cta:hover[b-eym8fehl6t] { filter: brightness(1.05); }
.isis-org__recap-cta:focus-visible[b-eym8fehl6t] {
    outline: none;
    box-shadow: 0 0 0 2px color-mix(in oklch, var(--isis-accent) 55%, transparent);
}

.isis-org__recap-title[b-eym8fehl6t] {
    font-size: 0.62rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--isis-text-muted);
    margin-bottom: 0.3rem;
}
.isis-org__recap-list[b-eym8fehl6t] { list-style: none; margin: 0; padding: 0; }
.isis-org__recap-list li[b-eym8fehl6t] {
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
    font-size: 0.66rem;
    padding: 0.13rem 0;
    border-top: 1px solid var(--isis-border);
}
.isis-org__recap-list li:first-child[b-eym8fehl6t] { border-top: none; }
.isis-org__recap-list li.is-total[b-eym8fehl6t] { font-weight: 700; border-top: 1.5px solid var(--isis-border-strong); }
.isis-org__recap-name[b-eym8fehl6t] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.isis-org__recap-val[b-eym8fehl6t] { font-variant-numeric: tabular-nums; color: var(--isis-text); flex: 0 0 auto; }

.isis-org__legend-item[b-eym8fehl6t] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.72rem;
    color: var(--isis-text-muted);
    padding: 0.15rem 0;
}
.isis-org__legend-rail[b-eym8fehl6t] {
    display: inline-block;
    width: 0;
    height: 14px;
    border-left: 1.5px dashed color-mix(in oklch, var(--isis-current-mod) 45%, var(--isis-surface));
}
/* /Components/Pages/Sirh/Parametres/RubriquesPage.razor.rz.scp.css */
/* Écriture en cours (suppression…) : indicateur visible, distinct du chargement de la liste. */
.rubriques-ecriture[b-ajk9e2achy] {
    display: inline-flex;
    align-items: center;
    gap: var(--isis-space-2);
    color: var(--isis-text-muted);
    font-size: var(--isis-fs-sm);
}

.rubriques-ecriture:empty[b-ajk9e2achy] {
    display: none;
}
/* /Components/Pages/TiersDeclaration.razor.rz.scp.css */
.isis-tiers-decl__logo[b-w7n11y99zp] {
    max-height: 44px;
    max-width: 200px;
    object-fit: contain;
}

.isis-login__brand[b-w7n11y99zp]  h1:focus-visible {
    outline: 2px solid var(--isis-current-mod);
    outline-offset: 2px;
}
/* /Components/Pages/TiersDeclarationMerci.razor.rz.scp.css */
.isis-login__brand[b-1ogipyw4vk]  h1:focus-visible {
    outline: 2px solid var(--isis-current-mod);
    outline-offset: 2px;
}
/* /Components/Pages/VerifyDocument.razor.rz.scp.css */
.isis-verify[b-5vrp1xpm4d] {
    min-height: 100vh;
    background: var(--isis-surface-alt);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem 1rem;
}

.isis-verify__card[b-5vrp1xpm4d] {
    background: var(--isis-surface);
    border: 1px solid var(--isis-border);
    border-radius: var(--isis-radius-lg);
    box-shadow: var(--isis-elevation-1);
    max-width: 560px;
    width: 100%;
    padding: 2rem;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    box-sizing: border-box;
}

.isis-verify__brand[b-5vrp1xpm4d] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.25rem;
    text-align: center;
}

.isis-verify__brand[b-5vrp1xpm4d]  .isis-verify__brand-icon {
    font-size: 32px;
    color: var(--isis-accent);
}

.isis-verify__alert[b-5vrp1xpm4d],
.isis-verify__state[b-5vrp1xpm4d] {
    display: flex;
    gap: 0.75rem;
    padding: 1rem;
    border-radius: var(--isis-radius);
    font-size: 0.875rem;
    box-sizing: border-box;
    color: var(--isis-text);
}

.isis-verify__alert--danger[b-5vrp1xpm4d] {
    background: color-mix(in srgb, var(--isis-danger) 8%, transparent);
    border: 1px solid var(--isis-danger);
}

.isis-verify__state--draft[b-5vrp1xpm4d] {
    background: color-mix(in srgb, var(--isis-warning) 10%, transparent);
    border: 1px solid var(--isis-warning);
}

.isis-verify__state--final[b-5vrp1xpm4d] {
    background: color-mix(in srgb, var(--isis-success) 10%, transparent);
    border: 1px solid var(--isis-success);
}

/* Couleur pleine plutôt qu'une opacité : sur le fond teinté, une opacité de texte fait
   tomber le contraste sous 4.5:1 en mode sombre. */
.isis-verify__state-hint[b-5vrp1xpm4d] {
    font-size: 0.8125rem;
    color: var(--isis-text);
    margin-top: 0.25rem;
}

.isis-verify__details[b-5vrp1xpm4d] {
    margin: 0;
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    gap: 0.5rem 1rem;
    font-size: 0.875rem;
}

.isis-verify__details dt[b-5vrp1xpm4d] {
    color: var(--isis-text-muted);
    font-weight: 500;
}

.isis-verify__details dd[b-5vrp1xpm4d] {
    margin: 0;
    color: var(--isis-text);
    overflow-wrap: anywhere;
}

.isis-verify__hash[b-5vrp1xpm4d] {
    font-family: var(--isis-font-mono);
    font-size: 0.75rem;
    word-break: break-all;
    background: var(--isis-surface-alt);
    padding: 0.375rem 0.5rem;
    border-radius: var(--isis-radius-sm);
}

.isis-verify__footer[b-5vrp1xpm4d] {
    padding-top: 0.75rem;
    border-top: 1px solid var(--isis-border);
}

@media (max-width: 480px) {
    .isis-verify__card[b-5vrp1xpm4d] {
        padding: 1.25rem;
    }

    .isis-verify__details[b-5vrp1xpm4d] {
        grid-template-columns: minmax(0, 1fr);
        gap: 0.125rem;
    }

    .isis-verify__details dd[b-5vrp1xpm4d] {
        margin-bottom: 0.5rem;
    }
}

.isis-verify__brand[b-5vrp1xpm4d]  h1:focus-visible {
    outline: 2px solid var(--isis-current-mod);
    outline-offset: 2px;
}
/* /Components/Shared/AffaireChronologie.razor.rz.scp.css */
.achrono[b-pr2viyss5c] {
    container: achrono / inline-size;
}

.achrono__entete[b-pr2viyss5c] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}
.achrono__entete .isis-form-linear__section-title[b-pr2viyss5c] { margin-bottom: 0; }
.achrono__bascule[b-pr2viyss5c] { margin-right: 0; }

.achrono__vide[b-pr2viyss5c],
.achrono__erreur[b-pr2viyss5c] {
    margin: 0.5rem 0 0;
    font-size: 0.82rem;
    color: var(--isis-text-muted);
}
.achrono__erreur[b-pr2viyss5c] { color: var(--isis-warning-text); }

.achrono__corps[b-pr2viyss5c] { margin-top: 0.75rem; }
.achrono__corps.is-frise .achrono__liste[b-pr2viyss5c],
.achrono__corps.is-liste .achrono__frise[b-pr2viyss5c] { display: none; }

/* ---------- Frise ---------- */
.achrono__frise[b-pr2viyss5c] {
    --etage-haut: 2.5rem;
    --etage-bas: 2.1rem;
    position: relative;
    container: achrono-frise / inline-size;
    padding: 0 0.25rem;
}

.achrono__piste[b-pr2viyss5c] {
    list-style: none;
    margin: 0;
    padding: 0;
    position: relative;
    z-index: 1;
}
/* 1,4 rem de tête : la pastille « Aujourd'hui » au-dessus de l'étage le plus haut. */
.achrono__piste--haut[b-pr2viyss5c] { height: calc(2.65rem + 3 * var(--etage-haut)); }
.achrono__piste--bas[b-pr2viyss5c] { height: calc(0.9rem + 2 * var(--etage-bas)); margin-top: 0.4rem; }

.achrono__item[b-pr2viyss5c] {
    position: absolute;
    left: var(--pos);
    width: 0;
    z-index: 1;
}
.achrono__piste--haut[b-pr2viyss5c] { z-index: 2; }
.achrono__item:is(:hover, :focus-within)[b-pr2viyss5c] { z-index: 6; }
.achrono__piste--haut .achrono__item[b-pr2viyss5c] { bottom: 0; }
.achrono__piste--bas .achrono__item[b-pr2viyss5c] { top: 0; }

.achrono__etiquette[b-pr2viyss5c] {
    position: absolute;
    left: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
    width: max-content;
    max-width: 14cqi;
    padding-left: 0.4rem;
    border-left: 1px solid var(--isis-border-strong);
    font-size: 0.76rem;
    line-height: 1.25;
    color: var(--isis-text);
    /* Fond plein : la ligne « Aujourd'hui » passe derrière l'étiquette, jamais à travers. */
    background: var(--isis-surface);
}
.achrono__item.is-droite .achrono__etiquette[b-pr2viyss5c] {
    left: auto;
    right: 0;
    padding: 0 0.4rem 0 0;
    border-left: 0;
    border-right: 1px solid var(--isis-border-strong);
    text-align: right;
}
.achrono__piste--haut .achrono__etiquette[b-pr2viyss5c] { bottom: 0.9rem; padding-bottom: 0.1rem; }
.achrono__piste--haut .etage-1 .achrono__etiquette[b-pr2viyss5c] { bottom: calc(0.9rem + var(--etage-haut)); }
.achrono__piste--haut .etage-2 .achrono__etiquette[b-pr2viyss5c] { bottom: calc(0.9rem + 2 * var(--etage-haut)); }
.achrono__piste--bas .achrono__etiquette[b-pr2viyss5c] { top: 0.55rem; padding-top: 0.1rem; color: var(--isis-text-muted); }
.achrono__piste--bas .etage-1 .achrono__etiquette[b-pr2viyss5c] { top: calc(0.55rem + var(--etage-bas)); }

.achrono__date[b-pr2viyss5c] {
    font-family: var(--isis-font-mono);
    font-size: 0.7rem;
    color: var(--isis-text-muted);
}
.achrono__libelle[b-pr2viyss5c] {
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.achrono__detail[b-pr2viyss5c] {
    font-size: 0.72rem;
    color: var(--isis-text-muted);
}
.achrono__detail.is-alerte[b-pr2viyss5c] { color: var(--isis-warning-text); }

/* Repères d'échéance : losanges posés sur l'axe. */
.achrono__repere[b-pr2viyss5c] {
    position: absolute;
    left: 0;
    width: 10px;
    height: 10px;
    background: var(--isis-text);
    transform: translate(-50%, 50%) rotate(45deg);
}
.achrono__piste--haut .achrono__repere[b-pr2viyss5c] { bottom: 0; }
.achrono__item--principale .achrono__repere[b-pr2viyss5c] {
    width: 14px;
    height: 14px;
    background: var(--isis-current-mod);
}
.achrono__item--principale .achrono__libelle[b-pr2viyss5c] { color: var(--isis-current-mod); }
.achrono__item--prevue .achrono__repere[b-pr2viyss5c] {
    background: var(--isis-surface);
    border: 2px solid var(--isis-text);
}

/* Jalons : pastilles cliquables, centrées sur l'axe, au-dessus des losanges. */
.achrono__jalon[b-pr2viyss5c] {
    position: absolute;
    left: 0;
    bottom: 0;
    z-index: 2;
    width: 28px;
    height: 28px;
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border-radius: var(--isis-radius-pill);
    border: 2px solid var(--isis-current-mod);
    background: var(--isis-surface);
    color: var(--isis-current-mod);
    transform: translate(-50%, 50%);
    cursor: pointer;
    transition: box-shadow var(--isis-motion-fast) ease;
}
.achrono__jalon:hover[b-pr2viyss5c] { box-shadow: var(--isis-elevation-hover); }
.achrono__jalon:focus-visible[b-pr2viyss5c] {
    outline: 2px solid var(--isis-current-mod);
    outline-offset: 2px;
}
.achrono__item--effectue .achrono__jalon[b-pr2viyss5c] {
    border-color: var(--isis-success);
    background: var(--isis-success);
    color: var(--isis-on-accent);
}
/* Retard : trait pointillé en plus de la couleur (WCAG 1.4.1). */
.achrono__jalon.is-alerte[b-pr2viyss5c] {
    border-style: dashed;
    border-color: var(--isis-warning);
    color: var(--isis-warning-text);
}
.achrono__item--effectue .achrono__etiquette[b-pr2viyss5c],
.achrono__item--programme .achrono__etiquette[b-pr2viyss5c],
.achrono__item--reporte .achrono__etiquette[b-pr2viyss5c] { bottom: 1.35rem; }
.achrono__piste--haut .etage-1:is(.achrono__item--effectue, .achrono__item--programme, .achrono__item--reporte) .achrono__etiquette[b-pr2viyss5c] {
    bottom: calc(1.35rem + var(--etage-haut));
}
.achrono__piste--haut .etage-2:is(.achrono__item--effectue, .achrono__item--programme, .achrono__item--reporte) .achrono__etiquette[b-pr2viyss5c] {
    bottom: calc(1.35rem + 2 * var(--etage-haut));
}

.achrono__exige[b-pr2viyss5c],
.achrono__puce.is-exige[b-pr2viyss5c]::after {
    position: absolute;
    top: -6px;
    right: -6px;
    width: 14px;
    height: 14px;
    box-sizing: border-box;
    border-radius: var(--isis-radius-pill);
    border: 2px solid var(--isis-surface);
    background: var(--isis-warning-text);
    color: var(--isis-surface);
    font-size: 0.6rem;
    font-weight: 700;
    line-height: 10px;
    text-align: center;
}
.achrono__puce.is-exige[b-pr2viyss5c]::after { content: "!"; }

/* Info-bulle : au survol ou au focus, refermable par Échap (WCAG 1.4.13). */
.achrono__bulle[b-pr2viyss5c] {
    position: absolute;
    left: 0;
    top: 1.1rem;
    z-index: 5;
    display: none;
    flex-direction: column;
    gap: 2px;
    width: max-content;
    max-width: 16rem;
    padding: 0.5rem 0.65rem;
    border: 1px solid var(--isis-border);
    border-radius: var(--isis-radius);
    background: var(--isis-surface);
    box-shadow: var(--isis-elevation-2);
    font-size: 0.76rem;
    color: var(--isis-text);
    transform: translateX(-50%);
}
.achrono__item.is-droite .achrono__bulle[b-pr2viyss5c] { left: auto; right: -14px; transform: none; }
.achrono__item.is-gauche .achrono__bulle[b-pr2viyss5c] { left: -14px; transform: none; }
.achrono__item:hover .achrono__bulle[b-pr2viyss5c],
.achrono__item:focus-within .achrono__bulle[b-pr2viyss5c] { display: flex; }
.achrono__item .achrono__bulle.is-fermee[b-pr2viyss5c] { display: none; }

/* Axe : ligne, mois, bande d'exécution, aujourd'hui. */
.achrono__axe[b-pr2viyss5c] {
    position: relative;
    height: 2.5rem;
    border-top: 2px solid var(--isis-border-strong);
}
.achrono__mois[b-pr2viyss5c] {
    position: absolute;
    left: var(--pos);
    top: -2px;
    height: 0.4rem;
    border-left: 1px solid var(--isis-border-strong);
}
.achrono__mois > span[b-pr2viyss5c] {
    position: absolute;
    top: 0.45rem;
    left: 0.2rem;
    font-size: 0.68rem;
    color: var(--isis-text-muted);
    white-space: nowrap;
    text-transform: capitalize;
}
.achrono__execution[b-pr2viyss5c] {
    position: absolute;
    left: var(--debut);
    width: calc(var(--fin) - var(--debut));
    top: -7px;
    height: 12px;
    box-sizing: border-box;
    border: 1px solid var(--isis-current-mod);
    border-radius: var(--isis-radius-sm);
    background: var(--isis-current-mod-soft);
}
.achrono__execution.is-tronquee[b-pr2viyss5c] {
    border-right: 0;
    border-radius: var(--isis-radius-sm) 0 0 var(--isis-radius-sm);
}
.achrono__execution.is-tronquee[b-pr2viyss5c]::after {
    content: "";
    position: absolute;
    right: -6px;
    top: -1px;
    border-style: solid;
    border-width: 6px 0 6px 6px;
    border-color: transparent transparent transparent var(--isis-current-mod);
}
.achrono__execution > span[b-pr2viyss5c] {
    position: absolute;
    top: 1.55rem;
    left: 0;
    font-size: 0.68rem;
    font-weight: 600;
    color: var(--isis-current-mod);
    white-space: nowrap;
}
.achrono__execution.is-droite > span[b-pr2viyss5c] { left: auto; right: 0; }
.achrono__resserre[b-pr2viyss5c] {
    display: block;
    margin-top: 0.25rem;
    padding: 0;
    border: 0;
    background: none;
    font: inherit;
    font-size: 0.76rem;
    color: var(--isis-current-mod);
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
}
.achrono__resserre:focus-visible[b-pr2viyss5c] {
    outline: 2px solid var(--isis-current-mod);
    outline-offset: 2px;
}
.achrono__aujourdhui[b-pr2viyss5c] {
    position: absolute;
    left: var(--pos);
    top: calc(-2.65rem - 3 * var(--etage-haut));
    height: calc(2.65rem + 3 * var(--etage-haut) + 2.5rem);
    border-left: 1px dashed var(--isis-current-mod);
    pointer-events: none;
}
.achrono__aujourdhui > span[b-pr2viyss5c] {
    position: absolute;
    top: 0;
    left: 0.25rem;
    padding: 0 0.4rem;
    border-radius: var(--isis-radius-pill);
    background: var(--isis-current-mod);
    color: var(--isis-on-accent);
    font-size: 0.66rem;
    font-weight: 600;
    white-space: nowrap;
}

/* Historique : petits points sous l'axe. */
.achrono__piste--bas .achrono__repere[b-pr2viyss5c] {
    top: 0;
    width: 8px;
    height: 8px;
    border-radius: var(--isis-radius-pill);
    background: var(--isis-text-muted);
    transform: translate(-50%, -50%);
}
.achrono__piste--bas .achrono__libelle[b-pr2viyss5c] { font-weight: 500; }

.achrono__etiquette.is-masquee[b-pr2viyss5c],
.achrono__sr[b-pr2viyss5c] {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

/* ---------- Liste ---------- */
.achrono__lignes[b-pr2viyss5c] {
    list-style: none;
    margin: 0;
    padding: 0;
    position: relative;
}
.achrono__lignes[b-pr2viyss5c] { --col-date: 5.5rem; --col-ecart: 0.6rem; }
.achrono__lignes[b-pr2viyss5c]::before {
    content: "";
    position: absolute;
    left: calc(var(--col-date) + var(--col-ecart) + 13.5px);
    top: 0.9rem;
    bottom: 0.9rem;
    border-left: 1px solid var(--isis-border-strong);
}
.achrono__ligne[b-pr2viyss5c] {
    position: relative;
    display: grid;
    grid-template-columns: var(--col-date) 28px 1fr;
    gap: var(--col-ecart);
    align-items: start;
    padding: 0.45rem 0;
}
.achrono__ligne .achrono__date[b-pr2viyss5c] { padding-top: 0.35rem; text-align: right; }
.achrono__texte[b-pr2viyss5c] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
    padding-top: 0.25rem;
    font-size: 0.82rem;
}
.achrono__texte .achrono__libelle[b-pr2viyss5c] { white-space: normal; }
.achrono__puce[b-pr2viyss5c] {
    position: relative;
    width: 28px;
    height: 28px;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--isis-surface);
}
.achrono__puce[b-pr2viyss5c]::before {
    content: "";
    width: 10px;
    height: 10px;
    background: var(--isis-text);
    transform: rotate(45deg);
}
.achrono__ligne--principale[b-pr2viyss5c] { background: var(--isis-current-mod-soft); border-radius: var(--isis-radius); }
.achrono__ligne--principale .achrono__puce[b-pr2viyss5c] { background: transparent; }
.achrono__ligne--principale .achrono__puce[b-pr2viyss5c]::before { width: 14px; height: 14px; background: var(--isis-current-mod); }
.achrono__ligne--principale .achrono__libelle[b-pr2viyss5c] { color: var(--isis-current-mod); }
.achrono__ligne--prevue .achrono__puce[b-pr2viyss5c]::before { background: var(--isis-surface); border: 2px solid var(--isis-text); }
.achrono__ligne--etape .achrono__puce[b-pr2viyss5c]::before {
    width: 8px;
    height: 8px;
    border-radius: var(--isis-radius-pill);
    background: var(--isis-text-muted);
    transform: none;
}
.achrono__ligne--etape .achrono__libelle[b-pr2viyss5c] { font-weight: 500; }
.achrono__ligne--execution .achrono__puce[b-pr2viyss5c]::before {
    width: 18px;
    height: 10px;
    border-radius: var(--isis-radius-sm);
    border: 1px solid var(--isis-current-mod);
    background: var(--isis-current-mod-soft);
    transform: none;
}
:is(.achrono__ligne--effectue, .achrono__ligne--programme, .achrono__ligne--reporte) .achrono__puce[b-pr2viyss5c] {
    border-radius: var(--isis-radius-pill);
    border: 2px solid var(--isis-current-mod);
    color: var(--isis-current-mod);
}
:is(.achrono__ligne--effectue, .achrono__ligne--programme, .achrono__ligne--reporte) .achrono__puce[b-pr2viyss5c]::before { content: none; }
.achrono__ligne--effectue .achrono__puce[b-pr2viyss5c] {
    border-color: var(--isis-success);
    background: var(--isis-success);
    color: var(--isis-on-accent);
}
.achrono__ligne--reporte .achrono__puce[b-pr2viyss5c] { border-color: var(--isis-warning); color: var(--isis-warning-text); }

.achrono__ligne-aujourdhui[b-pr2viyss5c] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0;
    position: relative;
}
.achrono__ligne-aujourdhui[b-pr2viyss5c]::before,
.achrono__ligne-aujourdhui[b-pr2viyss5c]::after {
    content: "";
    flex: 1;
    border-top: 2px dashed var(--isis-current-mod);
}
.achrono__ligne-aujourdhui > span[b-pr2viyss5c] {
    padding: 0.1rem 0.55rem;
    border-radius: var(--isis-radius-pill);
    background: var(--isis-current-mod);
    color: var(--isis-on-accent);
    font-size: 0.72rem;
    font-weight: 600;
}

.achrono__lien[b-pr2viyss5c] {
    align-self: flex-start;
    padding: 0;
    border: 0;
    background: none;
    font: inherit;
    color: var(--isis-current-mod);
    text-align: left;
    cursor: pointer;
}
.achrono__lien:hover[b-pr2viyss5c] { text-decoration: underline; }
.achrono__lien:focus-visible[b-pr2viyss5c] { outline: 2px solid var(--isis-current-mod); outline-offset: 2px; }

/* ---------- Non daté ---------- */
.achrono__nondates[b-pr2viyss5c] {
    margin-top: 0.9rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--isis-border);
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}
.achrono__nondates-titre[b-pr2viyss5c] {
    margin: 0;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--isis-text-muted);
}
.achrono__nondates ul[b-pr2viyss5c] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem 1.25rem;
}
.achrono__nondates li[b-pr2viyss5c] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.82rem;
}
.achrono__nondates .achrono__lien[b-pr2viyss5c] { font-size: 0.78rem; font-weight: 500; }

/* Étroit : la frise devient illisible, la liste prend le relais quel que soit le choix. */
@container achrono (max-width: 640px) {
    .achrono__bascule[b-pr2viyss5c] { display: none; }
    .achrono__corps.is-frise .achrono__frise[b-pr2viyss5c] { display: none; }
    .achrono__corps.is-frise .achrono__liste[b-pr2viyss5c] { display: block; }
}
@container achrono (max-width: 360px) {
    .achrono__lignes[b-pr2viyss5c] { --col-date: 4.7rem; --col-ecart: 0.4rem; }
}

@media (prefers-reduced-motion: reduce) {
    .achrono__jalon[b-pr2viyss5c] { transition: none; }
}
/* /Components/Shared/AffaireDossierPanel.razor.rz.scp.css */
/* ── Conteneur global du panneau ──────────────────────────────────── */
.isis-affaire-dossier-panel[b-vq1gz2rjyv] {
    display: flex;
    flex-direction: column;
    gap: 0;
    /* Le panneau occupe tout le reste de la page : il remplit son panneau d'onglet
       hôte, qui hérite de la chaîne flex pleine hauteur de la fiche
       (.isis-rich-page → .isis-tabs-card → .isis-tab-panel actif = flex:1 + min-height:0).
       height:100% + min-height:0 laissent la grille interne se contraindre et chaque
       volet scroller à l'intérieur, sans débordement de page. Si la fiche hôte n'est
       pas en pleine hauteur, height:100% retombe sur la hauteur du contenu (pas de
       débordement). */
    height: 100%;
    min-height: 0;
}

/* ── Bascule segmentée Dossier / Liste ───────────────────────────── */
.isis-adp__seg-bar[b-vq1gz2rjyv] {
    display: flex;
    justify-content: flex-end;
    padding: 0 0 .5rem;
    flex: none;
}
.isis-adp__seg[b-vq1gz2rjyv] {
    display: flex;
    border: 1px solid var(--isis-border);
    border-radius: var(--isis-radius-sm);
    overflow: hidden;
    background: var(--isis-surface);
}
.isis-adp__seg-btn[b-vq1gz2rjyv] {
    border: 0;
    background: transparent;
    padding: 4px 10px;
    font-size: 11.5px;
    font-family: inherit;
    color: var(--isis-text-muted);
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 5px;
    white-space: nowrap;
    line-height: 1.4;
}
.isis-adp__seg-btn:hover[b-vq1gz2rjyv] { background: var(--isis-surface-alt); }
/* État actif : identité chromatique du module courant (DESIGN.md §2/§5). */
.isis-adp__seg-btn.is-active[b-vq1gz2rjyv] {
    background: color-mix(in srgb, var(--isis-current-mod, var(--isis-accent)) 10%, var(--isis-surface));
    color: var(--isis-current-mod, var(--isis-accent));
    font-weight: 600;
}
.isis-adp__seg-btn:focus-visible[b-vq1gz2rjyv] {
    outline: 2px solid var(--isis-current-mod, var(--isis-accent));
    outline-offset: 1px;
}

/* ── État vide / chargement ──────────────────────────────────────── */
.isis-adp__state[b-vq1gz2rjyv] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .4rem;
    padding: 2rem 1rem;
    text-align: center;
}

/* ── Espace de travail 3 volets pleine hauteur ───────────────────── */
.isis-adp__workspace[b-vq1gz2rjyv] {
    display: grid;
    grid-template-columns: 240px minmax(280px, 360px) 1fr;
    gap: .5rem;
    /* Remplit toute la hauteur restante du panneau (height:100%) via flex:1.
       Ne pas remettre de height ici : flex:1 + min-height:0 laissent chaque volet
       scroller à l'intérieur sans débordement. */
    flex: 1;
    min-height: 0;
    min-width: 0;
}

/* ── En-têtes de volets ─────────────────────────────────────────── */
.isis-adp__panel-head[b-vq1gz2rjyv] {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 7px 10px;
    border-bottom: 1px solid var(--isis-border);
    font-size: 10.5px;
    font-weight: 600;
    color: var(--isis-text-muted);
    text-transform: uppercase;
    letter-spacing: .04em;
    background: var(--isis-surface-alt);
    flex: none;
}
.isis-adp__panel-count[b-vq1gz2rjyv] {
    margin-left: auto;
    background: var(--isis-surface);
    border: 1px solid var(--isis-border);
    border-radius: 10px;
    padding: 0 5px;
    font-size: 10px;
    line-height: 1.6;
    color: var(--isis-text-muted);
}

/* ── Volet 1 : arbre rubriques ───────────────────────────────────── */
.isis-adp__tree-panel[b-vq1gz2rjyv] {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--isis-border);
    border-radius: var(--isis-radius);
    background: var(--isis-surface);
    overflow: hidden;
    min-height: 0;
}
.isis-adp__tree-body[b-vq1gz2rjyv] {
    flex: 1;
    overflow-y: auto;
    padding: 4px;
    min-height: 0;
}

/* ── Volet 2 : liste de documents ────────────────────────────────── */
.isis-adp__list-panel[b-vq1gz2rjyv] {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--isis-border);
    border-radius: var(--isis-radius);
    background: var(--isis-surface);
    overflow: hidden;
    min-height: 0;
}
.isis-adp__empty-hint[b-vq1gz2rjyv] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .3rem;
    padding: 1.5rem .75rem;
    text-align: center;
    color: var(--isis-text-soft);
    font-size: .78rem;
}
.isis-adp__fill-hint[b-vq1gz2rjyv] {
    flex: 1;
    justify-content: center;
}
.isis-adp__doc-list[b-vq1gz2rjyv] {
    display: flex;
    flex-direction: column;
    flex: 1;
    overflow-y: auto;
    padding: .25rem .5rem;
    min-height: 0;
}
.isis-adp__doc-row[b-vq1gz2rjyv] {
    display: flex;
    align-items: center;
    gap: .6rem;
    padding: .375rem .25rem;
    border-top: 1px solid var(--isis-border-soft);
    border-radius: var(--isis-radius-sm);
    cursor: default;
    transition: background var(--isis-motion-fast, 120ms);
}
.isis-adp__doc-row:first-child[b-vq1gz2rjyv] { border-top: 0; }
.isis-adp__doc-row:hover[b-vq1gz2rjyv] { background: var(--isis-surface-alt); }
.isis-adp__doc-row.is-selected[b-vq1gz2rjyv] {
    background: color-mix(in srgb, var(--isis-accent) 8%, transparent);
    padding-left: calc(.25rem - 2px);
}
.isis-adp__doc-main[b-vq1gz2rjyv] { flex: 1; min-width: 0; }
.isis-adp__doc-name[b-vq1gz2rjyv] {
    display: block;
    background: transparent;
    border: 0;
    padding: 0;
    cursor: pointer;
    font-size: .8125rem;
    font-weight: 500;
    color: var(--isis-text);
    text-align: left;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
}
.isis-adp__doc-name:hover[b-vq1gz2rjyv] { color: var(--isis-accent); text-decoration: underline; }
.isis-adp__doc-name:focus-visible[b-vq1gz2rjyv] {
    outline: 2px solid var(--isis-accent);
    outline-offset: 2px;
    border-radius: 2px;
}
.isis-adp__doc-meta[b-vq1gz2rjyv] {
    display: flex;
    align-items: center;
    gap: .3rem;
    font-size: .75rem;
    color: var(--isis-text-muted);
    margin-top: .1rem;
}
.isis-adp__doc-actions[b-vq1gz2rjyv] { flex: none; }

/* ── Note « plus de documents » ──────────────────────────────────── */
.isis-adp__more-hint[b-vq1gz2rjyv] {
    padding: .4rem .75rem;
    font-size: .75rem;
    color: var(--isis-text-muted);
    border-top: 1px solid var(--isis-border-soft);
    flex: none;
    text-align: center;
}
.isis-adp__link-btn[b-vq1gz2rjyv] {
    background: transparent;
    border: 0;
    padding: 0;
    font-size: inherit;
    font-family: inherit;
    color: var(--isis-accent);
    cursor: pointer;
    text-decoration: underline;
}
.isis-adp__link-btn:focus-visible[b-vq1gz2rjyv] {
    outline: 2px solid var(--isis-accent);
    outline-offset: 2px;
    border-radius: 2px;
}

/* ── Volet 3 : aperçu inline ─────────────────────────────────────── */
.isis-adp__preview-panel[b-vq1gz2rjyv] {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--isis-border);
    border-radius: var(--isis-radius);
    background: var(--isis-surface);
    overflow: hidden;
    min-height: 0;
}
.isis-adp__preview-empty[b-vq1gz2rjyv] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .6rem;
    height: 100%;
    padding: 2rem 1rem;
    text-align: center;
    color: var(--isis-text-soft);
    font-size: .82rem;
}
.isis-adp__preview-header[b-vq1gz2rjyv] {
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: 6px 10px;
    border-bottom: 1px solid var(--isis-border);
    background: var(--isis-surface-alt);
    font-size: 12px;
    flex: none;
}
.isis-adp__preview-title[b-vq1gz2rjyv] {
    flex: 1;
    min-width: 0;
    font-weight: 500;
    color: var(--isis-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.isis-adp__preview-actions[b-vq1gz2rjyv] {
    display: flex;
    align-items: center;
    gap: 2px;
    flex: none;
}
.isis-adp__preview-body[b-vq1gz2rjyv] {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
}
/* Le DocumentViewer doit occuper tout le volet d'aperçu.
   ::deep car .docviewer-container est rendu par le composant enfant DocumentViewer. */
.isis-adp__preview-body[b-vq1gz2rjyv]  .docviewer-container {
    flex: 1;
    min-height: 0;
}

/* ── Responsive : masquer l'aperçu sous 900px ────────────────────── */
@media (max-width: 900px) {
    .isis-adp__workspace[b-vq1gz2rjyv] {
        grid-template-columns: 200px 1fr;
        height: calc(100dvh - var(--isis-adp-top, 230px));
    }
    .isis-adp__preview-panel[b-vq1gz2rjyv] {
        display: none;
    }
}
@media (max-width: 640px) {
    .isis-adp__workspace[b-vq1gz2rjyv] {
        grid-template-columns: 1fr;
        grid-template-rows: 180px 1fr;
        height: auto;
        min-height: 400px;
    }
    .isis-adp__tree-panel[b-vq1gz2rjyv] {
        max-height: 180px;
    }
}
/* /Components/Shared/DevisQuantiteDerivationDialog.razor.rz.scp.css */
/* EF-58 — même teinte d'avertissement que la pastille rompue du marqueur. */
.isis-derivation__actuelle[b-1fzzucyo2z] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: var(--isis-space-sm);
    margin: 0;
}

.isis-derivation__perimee[b-1fzzucyo2z] {
    display: flex;
    align-items: center;
    gap: var(--isis-space-xs);
    color: var(--isis-warning-text);
}

.isis-derivation__apercu[b-1fzzucyo2z] {
    margin: 0;
    font-variant-numeric: tabular-nums;
}
/* /Components/Shared/DevisQuantiteOrigineMarker.razor.rz.scp.css */
/* EF-60 — pastille de provenance d'une quantité. Discrète quand tout suit sa source,
   avertissante quand la valeur a cessé de la suivre. Aucune couleur en dur : les deux
   teintes sont celles du thème, et c'est l'icône qui distingue les états sans la couleur. */
.isis-devis-origine[b-cky3zxcw0m] {
    display: inline-flex;
    align-items: center;
    color: var(--isis-text-muted);
}

.isis-devis-origine--rompue[b-cky3zxcw0m] {
    color: var(--isis-warning-text);
}

.isis-devis-origine[b-cky3zxcw0m]  .rzi {
    font-size: 14px;
}
/* /Components/Shared/DocumentationApplicablePanel.razor.rz.scp.css */
/* Documentation qualité applicable à une tâche (Lot 2.b). Tokens --isis-* uniquement.
   Le panneau vit dans trois hôtes de largeurs très différentes — fiche de tâche (conteneur à
   défilement horizontal de 1824 px), MonEspace « Mes projets », panneau latéral du planner
   (~320 px) : tout y est en min-width:0 + retour à la ligne, et la largeur est plafonnée pour
   qu'une ligne de document ne s'étire pas sur toute la largeur d'une grille de commande. */

.isis-doc-applicable[b-fgonr991jd] {
    display: flex;
    flex-direction: column;
    gap: var(--isis-space-sm);
    min-width: 0;
    max-width: 72ch;
    flex: 0 0 auto;
}

/* Sur-titre de section (DESIGN.md §3) : 0.7rem, 600, letter-spacing 0.06em. */
.isis-doc-applicable__head[b-fgonr991jd] {
    display: flex;
    align-items: center;
    gap: var(--isis-space-xs);
    color: var(--isis-text-muted);
}

.isis-doc-applicable__title[b-fgonr991jd] {
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

/* Absence assumée : une ligne discrète, pas un cadre vide — le panneau se tait déjà
   complètement quand la tâche ne porte aucune prestation (EF-42). */
.isis-doc-applicable__none[b-fgonr991jd] {
    display: flex;
    align-items: center;
    gap: var(--isis-space-xs);
    margin: 0;
    font-size: 0.78rem;
    color: var(--isis-text-muted);
}

.isis-doc-applicable__list[b-fgonr991jd] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--isis-space-xs);
}

.isis-doc-applicable__item[b-fgonr991jd] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
        "main action"
        "meta action";
    gap: var(--isis-space-xs) var(--isis-space-sm);
    align-items: center;
    padding: var(--isis-space-sm) var(--isis-space-md);
    border: 1px solid var(--isis-border);
    border-radius: var(--isis-radius-sm);
    background: var(--isis-surface);
    min-width: 0;
}

.isis-doc-applicable__main[b-fgonr991jd] {
    grid-area: main;
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: var(--isis-space-sm);
    min-width: 0;
}

.isis-doc-applicable__code[b-fgonr991jd] {
    font-size: 0.78rem;
    color: var(--isis-text-muted);
    overflow-wrap: anywhere;
}

.isis-doc-applicable__libelle[b-fgonr991jd] {
    min-width: 0;
    overflow-wrap: anywhere;
}

.isis-doc-applicable__meta[b-fgonr991jd] {
    grid-area: meta;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--isis-space-sm);
    min-width: 0;
    font-size: 0.75rem;
    color: var(--isis-text-muted);
}

/* Conteneur du bouton d'ouverture : la classe vit sur un wrapper et non sur <IsisButton>,
   car un `class` splatté sur un composant écraserait sa propre classe interne. */
.isis-doc-applicable__open[b-fgonr991jd] {
    grid-area: action;
    display: flex;
    align-items: center;
}

/* MonEspace : le panneau est un enfant flex direct de .isis-grid, entre deux lignes —
   même patron que .isis-proj-temps__week. L'encart le réaligne sur le padding des lignes. */

/* État vide, rendu UNIQUEMENT quand l'hôte fournit EmptyMessage — c'est-à-dire quand le panneau
   est un onglet dédié et non un fragment. Même registre que les états vides des autres onglets
   de la page. */
.isis-doc-applicable__empty[b-fgonr991jd] {
    margin: 0;
    padding: 1rem;
    color: var(--isis-text-muted);
    font-size: 0.85rem;
}
/* /Components/Shared/HelpAssistantPanel.razor.rz.scp.css */
.isis-assistant[b-bdmq6po08n] { display: flex; flex-direction: column; min-height: 100%; gap: var(--isis-space-sm); }
.isis-assistant__history summary[b-bdmq6po08n] { cursor: pointer; font-weight: 600; color: var(--isis-text-muted); font-size: var(--isis-fs-sm); }
.isis-assistant__history summary:focus-visible[b-bdmq6po08n] { outline: 2px solid var(--isis-current-mod); outline-offset: 2px; }
.isis-assistant__history ul[b-bdmq6po08n] { list-style: none; margin: var(--isis-space-xs) 0 0; padding: 0; max-height: 12rem; overflow: auto; }
.isis-assistant__history li[b-bdmq6po08n] { display: flex; align-items: center; gap: var(--isis-space-xs); }
.isis-assistant__resume[b-bdmq6po08n] { flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; text-align: left; background: none; border: 0; padding: var(--isis-space-xs) var(--isis-space-sm); color: var(--isis-text); cursor: pointer; border-radius: var(--isis-radius-sm); }
.isis-assistant__resume:hover[b-bdmq6po08n] { background: var(--isis-surface-alt); }
.isis-assistant__resume:hover .isis-assistant__when[b-bdmq6po08n] { color: var(--isis-text-muted); }
.isis-assistant__resume[aria-current="true"][b-bdmq6po08n] { background: var(--isis-current-mod-soft); }
.isis-assistant__resume:focus-visible[b-bdmq6po08n], .isis-assistant__delete:focus-visible[b-bdmq6po08n] { outline: 2px solid var(--isis-current-mod); outline-offset: 2px; }
.isis-assistant__when[b-bdmq6po08n] { font-size: var(--isis-fs-caption); color: var(--isis-text-soft); }
.isis-assistant__delete[b-bdmq6po08n] { flex: 0 0 auto; min-width: 28px; min-height: 28px; display: inline-flex; align-items: center; justify-content: center; background: none; border: 0; padding: 0; color: var(--isis-text-muted); cursor: pointer; border-radius: var(--isis-radius-sm); }
.isis-assistant__delete:hover[b-bdmq6po08n] { background: var(--isis-surface-alt); color: var(--isis-text); }
.isis-assistant__open-title[b-bdmq6po08n] { margin: 0; font-size: var(--isis-fs-sm); font-weight: 600; color: var(--isis-text-muted); }
.isis-assistant__thread[b-bdmq6po08n] { flex: 1; display: flex; flex-direction: column; gap: var(--isis-space-md); list-style: none; margin: 0; padding: 0; }
.isis-assistant__question[b-bdmq6po08n] { margin: 0; padding: var(--isis-space-sm); background: var(--isis-current-mod-soft); border: 1px solid var(--isis-current-mod); border-radius: var(--isis-radius); font-weight: 500; color: var(--isis-text); white-space: pre-wrap; overflow-wrap: anywhere; }
.isis-assistant__answer[b-bdmq6po08n] { margin-top: var(--isis-space-sm); font-size: var(--isis-fs-base); }
.isis-assistant__feedback[b-bdmq6po08n] { display: flex; align-items: center; flex-wrap: wrap; gap: var(--isis-space-sm); margin-top: var(--isis-space-xs); }
.isis-assistant__ask-feedback[b-bdmq6po08n] { font-size: var(--isis-fs-sm); color: var(--isis-text-muted); }
.isis-assistant__vote[b-bdmq6po08n] { min-width: 32px; min-height: 32px; display: inline-flex; align-items: center; justify-content: center; background: none; border: 1px solid transparent; padding: 0; color: var(--isis-text-muted); cursor: pointer; border-radius: var(--isis-radius-sm); }
.isis-assistant__vote:hover[b-bdmq6po08n] { background: var(--isis-surface-alt); color: var(--isis-text); }
.isis-assistant__vote[aria-pressed="true"][b-bdmq6po08n] { background: var(--isis-current-mod-soft); border-color: var(--isis-current-mod); color: var(--isis-text); }
.isis-assistant__vote:focus-visible[b-bdmq6po08n] { outline: 2px solid var(--isis-current-mod); outline-offset: 2px; }
@media (forced-colors: active) { .isis-assistant__vote[aria-pressed="true"][b-bdmq6po08n] { border-color: Highlight; } }
.isis-assistant__status[b-bdmq6po08n] { margin: var(--isis-space-xs) 0; font-size: var(--isis-fs-sm); color: var(--isis-text-muted); }
.isis-assistant__status--warn[b-bdmq6po08n] { border: 1px solid var(--isis-warning); background: var(--isis-warning-soft); border-radius: var(--isis-radius-sm); padding: var(--isis-space-sm) var(--isis-space-md); color: var(--isis-text); }
.isis-assistant__compose[b-bdmq6po08n] { position: sticky; bottom: calc(-1 * var(--isis-space-md)); max-height: 40vh; overflow: auto; background: var(--isis-surface); padding-block: var(--isis-space-sm); border-top: 1px solid var(--isis-border); }
.isis-assistant__bar[b-bdmq6po08n] { display: flex; align-items: center; justify-content: flex-end; gap: var(--isis-space-sm); margin-top: var(--isis-space-xs); flex-wrap: wrap; }
.isis-assistant__count[b-bdmq6po08n] { margin-inline-end: auto; font-size: var(--isis-fs-sm); color: var(--isis-text-muted); }
.isis-assistant__note[b-bdmq6po08n] { margin: var(--isis-space-xs) 0 0; font-size: var(--isis-fs-sm); color: var(--isis-text-muted); }
.isis-assistant__compose [aria-disabled="true"][b-bdmq6po08n] { opacity: 0.55; cursor: not-allowed; }
/* /Components/Shared/HubKpiDevises.razor.rz.scp.css */
/* Volet d'analyse du hub santé client (lot 1, tâche 6) : un bloc par devise du périmètre
   filtré. Aucune couleur en dur — tokens --isis-* uniquement, lisibles en clair et en sombre. */

.isis-hub-devises[b-xbd6v98q3h] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--isis-space-md);
}

.isis-hub-devise[b-xbd6v98q3h] {
    flex: 1 1 260px;
    min-width: 220px;
    display: flex;
    flex-direction: column;
    gap: var(--isis-space-sm);
    padding: var(--isis-space-md);
    background: var(--isis-surface-soft);
    border: 1px solid var(--isis-border-soft);
    border-radius: var(--isis-radius);
}

.isis-hub-devise__code[b-xbd6v98q3h] {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--isis-text-soft);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

/* dl/dt/dd acceptent grid/flex à l'identique — SAUF leurs marges par défaut du user-agent
   (dl : margin-block ; dd : margin-inline-start ~40px), qui casseraient l'alignement
   libellé/valeur tout juste corrigé ci-dessous si on ne les remettait pas à zéro. */
.isis-hub-kpis[b-xbd6v98q3h] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: var(--isis-space-sm) var(--isis-space-md);
    margin: 0;
}

.isis-hub-kpis > div[b-xbd6v98q3h] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.isis-hub-kpi__l[b-xbd6v98q3h] {
    margin: 0;
    font-size: 0.72rem;
    color: var(--isis-text-soft);
}

/* PAS de text-align:right ici (revue 2026-09-08) : chaque cellule est une colonne de grille
   large de 120px à 1fr — la valeur poussée à droite de SA colonne atterrit visuellement sous
   le libellé VOISIN plutôt que sous le sien (constaté au pixel sur les deux captures). Le
   patron du dépôt pour une paire libellé-au-dessus/valeur-en-dessous (.isis-pl-chiffres__v)
   n'aligne pas à droite non plus : la valeur reste sous son propre libellé. */
.isis-hub-kpi__v[b-xbd6v98q3h] {
    margin: 0;
    font-variant-numeric: tabular-nums;
    font-weight: 600;
}

.isis-hub-kpi__v--warn[b-xbd6v98q3h] { color: var(--isis-warning); }
.isis-hub-kpi__v--bad[b-xbd6v98q3h] { color: var(--isis-danger); }
/* /Components/Shared/HubSerieMensuelle.razor.rz.scp.css */
/* Série mensuelle du hub santé client (lot 2, tâche 7) — composant EN PRÉPARATION, cf. le
   .razor. Aucune couleur en dur pour la mise en page (le hex littéral des séries amCharts, lui,
   est une contrainte du bridge JS — cf. commentaire dans le .razor). */

.isis-hub-serie__devises[b-ghm7serzm9] {
    display: flex;
    justify-content: flex-end;
    gap: 0;
    margin-bottom: var(--isis-space-sm);
}

.isis-seg__btn[b-ghm7serzm9] {
    display: inline-flex;
    padding: 0.28rem 0.6rem;
    font-size: 0.76rem;
    color: var(--isis-text-muted);
    background: var(--isis-surface);
    border: 1px solid var(--isis-border);
    border-left: none;
    cursor: pointer;
    font-family: inherit;
}

.isis-hub-serie__devises .isis-seg__btn:first-child[b-ghm7serzm9] {
    border-left: 1px solid var(--isis-border);
    border-top-left-radius: var(--isis-radius);
    border-bottom-left-radius: var(--isis-radius);
}

.isis-hub-serie__devises .isis-seg__btn:last-child[b-ghm7serzm9] {
    border-top-right-radius: var(--isis-radius);
    border-bottom-right-radius: var(--isis-radius);
}

.isis-seg__btn[aria-pressed="true"][b-ghm7serzm9] {
    background: var(--isis-current-mod, var(--isis-accent));
    color: var(--isis-on-accent);
    font-weight: 600;
}
/* /Components/Shared/IrisOuverture.razor.rz.scp.css */
/* Ouverture de session — DESIGN.md, clause « Ouverture de session ».

   Chorégraphie ENTIÈREMENT en CSS, jamais en JS : le voile doit être juste dès le premier paint,
   sans attendre le circuit dont il masque justement l'amorçage. D'où `both` sur chaque animation —
   chaque élément TIENT sa keyframe 0 % pendant son délai, au lieu de sauter à sa position finale.

   Règle tenue partout ici : deux animations ne touchent jamais la même propriété du même élément.
   Le remplissage de la seconde écraserait la première depuis l'instant zéro. D'où l'imbrication
   `__vol` (déplacement) > `.isis-marque` (entrée) > barres (déroulé).
 */

.isis-ouverture[b-ng8mjj9by0] {
    --isis-ouv-taille: min(200px, 22vw);

    /* Cible du vol : la marque du shell. Repli purement CSS, remplacé par la mesure réelle dès
       que isis-ouverture.js trouve la marque de l'en-tête. */
    --isis-ouv-dx: calc(42px - 50vw);
    --isis-ouv-dy: calc(32px - 50vh);
    --isis-ouv-k: .18;

    /* Le voile qui se fend et la marque qui s'envole partent à 30 ms d'écart : une seule courbe
       pour les deux, sinon deux mouvements simultanés se lisent comme deux intentions. */
    --isis-ouv-elan: cubic-bezier(.6, 0, .2, 1);

    position: fixed;
    inset: 0;
    z-index: 10000; /* au-dessus du plafond de isis-theme.css (9999) */
    overflow: hidden;
    animation:
        isis-ouv-sortie-b-ng8mjj9by0 160ms ease-out 1620ms both,
        isis-ouv-inerte-b-ng8mjj9by0 1ms linear 1780ms both;
}

/* ─── Le voile et sa fente ─────────────────────────────────────────────────── */

.isis-ouverture__pan[b-ng8mjj9by0] {
    position: absolute;
    left: 0;
    width: 100%;
    /* Un pixel de chevauchement : sans lui, une hairline transparente apparaît sur la ligne de
       fente aux facteurs de zoom qui tombent sur un demi-pixel. */
    height: calc(50% + 1px);
    background: var(--isis-bg);
}

.isis-ouverture__pan--haut[b-ng8mjj9by0] {
    top: 0;
    animation: isis-ouv-pan-haut-b-ng8mjj9by0 520ms var(--isis-ouv-elan) 1150ms both;
}

.isis-ouverture__pan--bas[b-ng8mjj9by0] {
    bottom: 0;
    animation: isis-ouv-pan-bas-b-ng8mjj9by0 520ms var(--isis-ouv-elan) 1150ms both;
}

@keyframes isis-ouv-pan-haut-b-ng8mjj9by0 {
    to { transform: translateY(-101%); }
}

@keyframes isis-ouv-pan-bas-b-ng8mjj9by0 {
    to { transform: translateY(101%); }
}

/* ─── La scène ─────────────────────────────────────────────────────────────── */

.isis-ouverture__scene[b-ng8mjj9by0] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* La barre du milieu est centrée sur la tuile, donc sur la fenêtre : l'éclat et l'onde naissent
   exactement là où la tâche en cours vient de se poser. Centrage par marges négatives, et
   non par `translate(-50%, -50%)`, qui entrerait en conflit avec l'échelle animée. */
.isis-ouverture__eclat[b-ng8mjj9by0],
.isis-ouverture__onde[b-ng8mjj9by0] {
    position: absolute;
    top: 50%;
    left: 50%;
    box-sizing: border-box;
    border-radius: 50%;
    pointer-events: none;
}

.isis-ouverture__eclat[b-ng8mjj9by0] {
    width: calc(var(--isis-ouv-taille) * .55);
    height: calc(var(--isis-ouv-taille) * .55);
    margin: calc(var(--isis-ouv-taille) * -.275) 0 0 calc(var(--isis-ouv-taille) * -.275);
    background: var(--isis-brand-accent);
    filter: blur(calc(var(--isis-ouv-taille) * .09));
    animation: isis-ouv-eclat-b-ng8mjj9by0 470ms ease-out 820ms both;
}

.isis-ouverture__onde[b-ng8mjj9by0] {
    width: calc(var(--isis-ouv-taille) * .5);
    height: calc(var(--isis-ouv-taille) * .5);
    margin: calc(var(--isis-ouv-taille) * -.25) 0 0 calc(var(--isis-ouv-taille) * -.25);
    border: calc(var(--isis-ouv-taille) * .014) solid var(--isis-brand-accent);
    animation: isis-ouv-onde-b-ng8mjj9by0 540ms cubic-bezier(.16, 1, .3, 1) 820ms both;
}

@keyframes isis-ouv-eclat-b-ng8mjj9by0 {
    0%   { opacity: 0;   transform: scale(.2); }
    38%  { opacity: .55; }
    100% { opacity: 0;   transform: scale(1.8); }
}

@keyframes isis-ouv-onde-b-ng8mjj9by0 {
    0%   { opacity: 0;  transform: scale(.3);   border-width: calc(var(--isis-ouv-taille) * .014); }
    22%  { opacity: .7; }
    100% { opacity: 0;  transform: scale(2.15); border-width: calc(var(--isis-ouv-taille) * .00175); }
}

/* ─── La marque ────────────────────────────────────────────────────────────── */

.isis-ouverture__vol[b-ng8mjj9by0] {
    display: block;
    animation: isis-ouv-vol-b-ng8mjj9by0 560ms var(--isis-ouv-elan) 1180ms both;
}

.isis-ouverture__marque[b-ng8mjj9by0] {
    /* Bat le 36px que `.isis-marque` se donne par défaut : le sélecteur porte une classe de plus. */
    --isis-marque-taille: var(--isis-ouv-taille);
    animation: isis-ouv-entree-b-ng8mjj9by0 var(--isis-motion-enter) both;
}

@keyframes isis-ouv-entree-b-ng8mjj9by0 {
    0%   { opacity: 0; transform: scale(.94); }
    100% { opacity: 1; transform: none; }
}

@keyframes isis-ouv-vol-b-ng8mjj9by0 {
    to { transform: translate(var(--isis-ouv-dx), var(--isis-ouv-dy)) scale(var(--isis-ouv-k)); }
}

/* Marque du shell introuvable : le vol est annulé plutôt que dirigé vers le repli CSS, qui
   viserait un coin vide. Distinct du repli, qui couvre le cas où le script n'a pas tourné. */
.isis-ouverture[data-sans-cible] .isis-ouverture__vol[b-ng8mjj9by0] {
    animation: none;
}

/* ─── Le curseur du jour ───────────────────────────────────────────────────── */

/* Un trait terre cuite balaie la tuile comme la ligne « aujourd'hui » d'un Gantt, et les barres
   s'étirent derrière lui depuis leur bord gauche ; la tâche en cours (barre du milieu) ne se
   remplit qu'au passage du curseur. Barres et curseur partagent durée, délai et courbe : sans
   cela, le trait devance ou traîne derrière ce qu'il est censé pousser. L'éclat part à 820 ms,
   quand le curseur atteint le bord droit des barres. `fill-box` rapporte l'origine à la barre
   elle-même, et non au repère du SVG. */
.isis-ouverture__barre[b-ng8mjj9by0] {
    transform-box: fill-box;
    transform-origin: left center;
    animation: isis-ouv-pousse-b-ng8mjj9by0 760ms cubic-bezier(.45, 0, .2, 1) 120ms both;
}

.isis-ouverture__barre--2[b-ng8mjj9by0] { animation-name: isis-ouv-pousse-encours-b-ng8mjj9by0; }

@keyframes isis-ouv-pousse-b-ng8mjj9by0 {
    0%, 6%    { transform: scaleX(0); }
    86%, 100% { transform: none; }
}

@keyframes isis-ouv-pousse-encours-b-ng8mjj9by0 {
    0%, 30%   { transform: scaleX(0); }
    70%, 100% { transform: none; }
}

/* Repères : les barres couvrent 26 % à 74 % de la tuile ; le curseur part un peu avant et
   finit un peu après pour ne jamais rogner leurs arrondis. */
.isis-ouverture__curseur[b-ng8mjj9by0] {
    position: absolute;
    top: 8%;
    bottom: 8%;
    left: 14%;
    width: max(2px, calc(var(--isis-ouv-taille) * .012));
    border-radius: 2px;
    background: var(--isis-brand-accent);
    opacity: 0;
    pointer-events: none;
    animation: isis-ouv-balaye-b-ng8mjj9by0 760ms cubic-bezier(.45, 0, .2, 1) 120ms both;
}

@keyframes isis-ouv-balaye-b-ng8mjj9by0 {
    0%   { left: 14%; opacity: 0; }
    10%  { opacity: 1; }
    85%  { left: 84%; opacity: 1; }
    100% { left: 84%; opacity: 0; }
}

/* ─── Sortie, abrègement, inertie ──────────────────────────────────────────── */

@keyframes isis-ouv-sortie-b-ng8mjj9by0 {
    to { opacity: 0; }
}

@keyframes isis-ouv-paraitre-b-ng8mjj9by0 {
    from { opacity: 0; }
    to   { opacity: 1; }
}

@keyframes isis-ouv-abrege-b-ng8mjj9by0 {
    from { opacity: var(--isis-ouv-fin-depart, 1); }
    to   { opacity: 0; }
}

/* Filet purement CSS : même si le JS ne retire jamais le nœud, un voile à opacité nulle ne doit
   pas rester en travers de l'application. 1 ms, donc la bascule discrète tombe à la fin. */
@keyframes isis-ouv-inerte-b-ng8mjj9by0 {
    to { pointer-events: none; visibility: hidden; }
}

/* Abrègement : le geste se fige là où il en est et le voile s'efface. Figer plutôt que sauter à
   la fin — un saut de 1,5 s de chorégraphie se lit comme un bug. */
.isis-ouverture[data-fin][b-ng8mjj9by0] {
    animation:
        isis-ouv-abrege-b-ng8mjj9by0 180ms ease-out both,
        isis-ouv-inerte-b-ng8mjj9by0 1ms linear 180ms both;
}

.isis-ouverture[data-fin] .isis-ouverture__pan[b-ng8mjj9by0],
.isis-ouverture[data-fin] .isis-ouverture__scene *[b-ng8mjj9by0] {
    animation-play-state: paused;
}

/* ─── Mouvement réduit ─────────────────────────────────────────────────────── */

/* Ni déplacement, ni fente, ni onde : la marque paraît, tient, s'efface. L'ouverture reste une
   salutation, elle ne devient pas un écran de chargement muet. */
@media (prefers-reduced-motion: reduce) {
    .isis-ouverture[b-ng8mjj9by0] {
        animation:
            isis-ouv-sortie-b-ng8mjj9by0 200ms ease-out 700ms both,
            isis-ouv-inerte-b-ng8mjj9by0 1ms linear 900ms both;
    }

    .isis-ouverture__pan[b-ng8mjj9by0],
    .isis-ouverture__vol[b-ng8mjj9by0],
    .isis-ouverture__barre[b-ng8mjj9by0] {
        animation: none;
        transform: none;
    }

    .isis-ouverture__marque[b-ng8mjj9by0] {
        animation: isis-ouv-paraitre-b-ng8mjj9by0 200ms ease-out both;
    }

    .isis-ouverture__eclat[b-ng8mjj9by0],
    .isis-ouverture__onde[b-ng8mjj9by0],
    .isis-ouverture__curseur[b-ng8mjj9by0] {
        display: none;
    }
}
/* /Components/Shared/OpportuniteComplements.razor.rz.scp.css */
.isis-complements__note[b-1owvpwegcq] {
    display: flex;
    align-items: center;
    gap: var(--isis-space-xs);
    margin: 0 0 var(--isis-space-sm);
    color: var(--isis-text-muted);
    font-size: var(--isis-fs-sm);
}

.isis-complements__val[b-1owvpwegcq] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--isis-space-sm);
}
/* /Components/Shared/OpportuniteContrepartiesPanel.razor.rz.scp.css */
.isis-op-tab__lots[b-8rl5ev7pov] {
    display: flex;
    flex-direction: column;
    gap: .125rem;
    min-width: 0;
}

.isis-op-tab__lots-ligne[b-8rl5ev7pov] {
    display: flex;
    align-items: center;
    gap: .25rem;
    min-width: 0;
}

.isis-op-tab__lots-texte[b-8rl5ev7pov] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.isis-op-tab__gel[b-8rl5ev7pov] {
    color: var(--isis-text-muted);
    font-size: .75rem;
    white-space: normal;
}

.isis-op-tab .isis-tab-header[b-8rl5ev7pov] {
    flex-wrap: wrap;
}

.isis-op-tab__nom[b-8rl5ev7pov] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.isis-op-tab__num[b-8rl5ev7pov] {
    text-align: right;
    padding-inline-end: 1.5rem;
    font-variant-numeric: tabular-nums;
}

.isis-op-tab__muted[b-8rl5ev7pov] {
    color: var(--isis-text-muted);
}

.isis-op-tab__actions[b-8rl5ev7pov] {
    display: flex;
    justify-content: flex-end;
    gap: .25rem;
}

.isis-op-partenaires-grille:focus-visible[b-8rl5ev7pov] {
    outline: 2px solid var(--isis-current-mod);
    outline-offset: 2px;
}

.isis-op-tab:focus[b-8rl5ev7pov] {
    outline: none;
}
/* /Components/Shared/OpportuniteEquipePanel.razor.rz.scp.css */
.isis-op-tab .isis-tab-header[b-cj0q4l0wec] {
    flex-wrap: wrap;
}

.isis-op-tab__nom[b-cj0q4l0wec] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.isis-op-tab__sous-texte[b-cj0q4l0wec] {
    color: var(--isis-text-muted);
    font-size: var(--isis-fs-sm, .8125rem);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.isis-op-tab__muted[b-cj0q4l0wec] {
    color: var(--isis-text-muted);
}

.isis-op-tab__actions[b-cj0q4l0wec] {
    display: flex;
    justify-content: flex-end;
    gap: .25rem;
}

.isis-op-equipe-grille:focus-visible[b-cj0q4l0wec] {
    outline: 2px solid var(--isis-current-mod);
    outline-offset: 2px;
}
/* /Components/Shared/OpportuniteLotMarcheDialog.razor.rz.scp.css */
.isis-op-lots-marches__groupe[b-mq05da56rn] {
    border: 0;
    margin: 0;
    padding: 0;
    min-width: 0;
}

.isis-op-lots-marches__tout[b-mq05da56rn] {
    display: flex;
    gap: var(--isis-space-sm);
}

.isis-op-lots-marches__liste[b-mq05da56rn] {
    max-height: 12rem;
    overflow: auto;
}

.isis-op-lots-marches__coche[b-mq05da56rn] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--isis-space-sm);
    padding-block: var(--isis-space-xs);
}

.isis-op-lots-marches__coche .helper[b-mq05da56rn] {
    margin: 0;
}

.isis-op-lots-marches__montants[b-mq05da56rn] {
    width: 100%;
    border-collapse: collapse;
}

.isis-op-lots-marches__montants th[b-mq05da56rn],
.isis-op-lots-marches__montants td[b-mq05da56rn] {
    padding: var(--isis-space-xs) var(--isis-space-sm);
    border-bottom: 1px solid var(--isis-border-soft);
    text-align: left;
    vertical-align: middle;
}

.isis-op-lots-marches__montants thead th[b-mq05da56rn] {
    color: var(--isis-text-muted);
    font-weight: 600;
}

.isis-op-lots-marches__montants th[scope="row"][b-mq05da56rn] {
    font-weight: 400;
}

.isis-op-lots-marches__montants .isis-op-lots-marches__num[b-mq05da56rn] {
    text-align: right;
    white-space: nowrap;
}

/* Bouton principal inerte : aria-disabled, jamais disabled (cf. OpportuniteLotMarcheDialog.razor). */
.isis-op-lots-marches[b-mq05da56rn]  .rz-button[aria-disabled="true"],
.isis-op-lots-marches[b-mq05da56rn]  .rz-button[aria-disabled="true"]:hover {
    cursor: not-allowed;
    background-color: var(--isis-surface-2);
    color: var(--isis-text-muted);
}

.isis-op-lots-marches__saisie[b-mq05da56rn]  input {
    text-align: right;
}

.isis-op-lots-marches__remise[b-mq05da56rn] {
    display: flex;
    flex-direction: column;
    gap: var(--isis-space-xs);
    margin-top: var(--isis-space-xs);
}
/* /Components/Shared/OpportuniteLotPreuveDialog.razor.rz.scp.css */
.isis-op-lots__lots[b-4sb1ao4ya3] {
    border: 0;
    margin: 0;
    padding: 0;
    min-width: 0;
}

.isis-op-lots__tout[b-4sb1ao4ya3] {
    display: flex;
    gap: var(--isis-space-sm);
}

.isis-op-lots__liste[b-4sb1ao4ya3] {
    max-height: 16rem;
    overflow: auto;
}

.isis-op-lots__coche[b-4sb1ao4ya3] {
    display: flex;
    align-items: center;
    gap: var(--isis-space-sm);
    padding-block: var(--isis-space-xs);
}

.isis-op-lots[b-4sb1ao4ya3]  .rz-button[aria-disabled="true"],
.isis-op-lots[b-4sb1ao4ya3]  .rz-button[aria-disabled="true"]:hover {
    cursor: not-allowed;
    background-color: var(--isis-surface-2);
    color: var(--isis-text-muted);
}

.isis-op-lots[b-4sb1ao4ya3]  input[type="file"][aria-disabled="true"] {
    cursor: not-allowed;
    color: var(--isis-text-muted);
}
/* /Components/Shared/OpportuniteLotRevocationDialog.razor.rz.scp.css */
.isis-op-lots[b-zmkdxjrmfm]  .rz-button[aria-disabled="true"],
.isis-op-lots[b-zmkdxjrmfm]  .rz-button[aria-disabled="true"]:hover {
    cursor: not-allowed;
    background-color: var(--isis-surface-2);
    color: var(--isis-text-muted);
}

.isis-op-lots[b-zmkdxjrmfm]  input[type="file"][aria-disabled="true"] {
    cursor: not-allowed;
    color: var(--isis-text-muted);
}

.isis-lot-revocation__recap[b-zmkdxjrmfm] {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: var(--isis-space-2) var(--isis-space-3);
    margin: 0 0 var(--isis-space-2);
    font-size: var(--isis-fs-sm);
}

.isis-lot-revocation__recap dt[b-zmkdxjrmfm] {
    color: var(--isis-text-muted);
}

.isis-lot-revocation__recap dd[b-zmkdxjrmfm] {
    margin: 0;
    color: var(--isis-text);
}
/* /Components/Shared/OpportuniteLotsPanel.razor.rz.scp.css */
.isis-op-lots__num[b-uaw2u4hk9h] {
    text-align: right;
    font-family: var(--isis-font-mono);
    font-variant-numeric: tabular-nums;
}

.isis-op-lots__numero[b-uaw2u4hk9h],
.isis-op-lots__date[b-uaw2u4hk9h] {
    font-variant-numeric: tabular-nums;
}

.isis-op-lots__intitule[b-uaw2u4hk9h] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.isis-op-lots .isis-tab-header[b-uaw2u4hk9h] {
    flex-wrap: wrap;
}

.isis-op-lots .isis-tab-header__actions[b-uaw2u4hk9h] {
    flex-wrap: wrap;
    min-width: 0;
}

.isis-op-lots-grille:focus-visible[b-uaw2u4hk9h] {
    outline: 2px solid var(--isis-current-mod);
    outline-offset: 2px;
}

.isis-op-lots__preuve[b-uaw2u4hk9h] {
    color: var(--isis-text-muted);
    font-size: var(--isis-fs-caption);
    font-variant-numeric: tabular-nums;
}

.isis-op-lots__lien-marche[b-uaw2u4hk9h] {
    margin-inline-start: var(--isis-space-sm);
}

.isis-op-lots__remises[b-uaw2u4hk9h] {
    display: flex;
    flex-direction: column;
    gap: var(--isis-space-sm);
    margin-block-start: var(--isis-space-lg);
}

/* Lignes de remise sans clic de ligne : pas d'affordance de pointeur. */
.isis-grid__row.isis-op-lots__ligne-fixe[b-uaw2u4hk9h] { cursor: default; }
/* /Components/Shared/OpportuniteLotVolet.razor.rz.scp.css */
.isis-lot-volet[b-ni64r0albf] {
    display: flex;
    flex-direction: column;
    gap: var(--isis-space-lg);
}

.isis-lot-volet__section[b-ni64r0albf] {
    display: flex;
    flex-direction: column;
    gap: var(--isis-space-sm);
    min-width: 0;
}

.isis-lot-volet__attributions[b-ni64r0albf] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--isis-space-sm);
}

.isis-lot-volet__attribution[b-ni64r0albf] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--isis-space-xs);
    padding-block: var(--isis-space-sm);
    border-bottom: 1px solid var(--isis-border);
}

.isis-lot-volet__attribution:last-child[b-ni64r0albf] {
    border-bottom: none;
}

.isis-lot-volet__attribution-tete[b-ni64r0albf] {
    display: flex;
    align-items: center;
    gap: var(--isis-space-sm);
    font-variant-numeric: tabular-nums;
}

.isis-lot-volet__attribution-detail[b-ni64r0albf] {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    column-gap: var(--isis-space-md);
    row-gap: var(--isis-space-xs);
    margin: 0;
    font-size: var(--isis-fs-sm);
}

.isis-lot-volet__attribution-detail dt[b-ni64r0albf] {
    color: var(--isis-text-muted);
}

.isis-lot-volet__attribution-detail dd[b-ni64r0albf] {
    margin: 0;
}

.isis-lot-volet__precision[b-ni64r0albf] {
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.isis-lot-volet__aide[b-ni64r0albf] {
    margin: 0;
    color: var(--isis-text-muted);
    font-size: var(--isis-fs-caption);
}
/* /Components/Shared/OpportuniteOffreCibleDialog.razor.rz.scp.css */
.isis-op-offre-cible__groupe[b-jbm45toljs] {
    border: 0;
    margin: 0;
    padding: 0;
    min-width: 0;
}
/* /Components/Shared/OpportuniteRelanceOrigineLien.razor.rz.scp.css */
.isis-relance-origine[b-ld3c1hj8n0] {
    display: inline-block;
    max-width: 48ch;
    overflow: hidden;
    text-overflow: ellipsis;
    vertical-align: bottom;
}

.isis-relance-origine a[b-ld3c1hj8n0] {
    text-decoration: underline;
    text-underline-offset: 2px;
}
/* /Components/Shared/OpportuniteRelancesPanel.razor.rz.scp.css */
.isis-op-tab .isis-tab-header[b-d8s2jno8io] {
    flex-wrap: wrap;
}

.isis-sequence-exec:focus-visible[b-d8s2jno8io] {
    outline: 2px solid var(--isis-current-mod);
    outline-offset: 2px;
}
/* /Components/Shared/OpportuniteRemiseCombinaisonDialog.razor.rz.scp.css */
.isis-op-lots-remise__groupe[b-566eq3m3cl] {
    border: 0;
    margin: 0;
    padding: 0;
    min-width: 0;
}

.isis-op-lots-remise__liste[b-566eq3m3cl] {
    max-height: 12rem;
    overflow: auto;
}

.isis-op-lots-remise__coche[b-566eq3m3cl] {
    display: flex;
    align-items: center;
    gap: var(--isis-space-sm);
    padding-block: var(--isis-space-xs);
}
/* /Components/Shared/OpportuniteWorkflowStepper.razor.rz.scp.css */
.opp-stepper[b-f4x067bkee] { display: flex; flex-direction: column; gap: 16px; }

.opp-stepper__row[b-f4x067bkee] { display: flex; align-items: center; list-style: none; margin: 0; padding: 0; }
.opp-stepper__step[b-f4x067bkee] { display: flex; flex-direction: column; align-items: center; gap: 7px; flex: 1; position: relative; }
.opp-stepper__circle[b-f4x067bkee] {
    width: 30px; height: 30px; border-radius: 50%;
    background: var(--isis-surface-2); border: 2px solid var(--isis-border-strong);
    display: flex; align-items: center; justify-content: center;
    font-family: var(--isis-font-mono); font-size: 12px; font-weight: 700;
    color: var(--isis-text-muted); z-index: 1;
}
.opp-stepper__label[b-f4x067bkee] { font-size: 12px; font-weight: 700; color: var(--isis-text-muted); text-align: center; }
.opp-stepper__line[b-f4x067bkee] { position: absolute; top: 14px; right: 50%; width: 100%; height: 2px; background: var(--isis-border-strong); z-index: 0; }
.opp-stepper__line.done[b-f4x067bkee] { background: var(--isis-current-mod); }
.opp-stepper__step.done .opp-stepper__circle[b-f4x067bkee] { background: var(--isis-current-mod); border-color: var(--isis-current-mod); color: var(--isis-surface); }
.opp-stepper__step.done .opp-stepper__label[b-f4x067bkee] { color: var(--isis-text); }
.opp-stepper__step.current .opp-stepper__circle[b-f4x067bkee] { background: var(--isis-surface); border-color: var(--isis-current-mod); }
.opp-stepper__step.current .opp-stepper__label[b-f4x067bkee] { color: var(--isis-current-mod); }

.opp-stepper__exits[b-f4x067bkee] { display: flex; align-items: center; gap: 6px 16px; flex-wrap: wrap; padding-top: 12px; border-top: 1px solid var(--isis-border); }
.opp-stepper__exits-label[b-f4x067bkee] { font-size: 12px; color: var(--isis-text-soft); }
.opp-stepper__exits-list[b-f4x067bkee] { display: contents; list-style: none; margin: 0; padding: 0; }
/* Repère passif, sans contour ni graisse : en pastille bordée, il se lisait comme un bouton à côté
   des vrais boutons de transition de la fiche. */
.opp-stepper__exit-tag[b-f4x067bkee] { display: inline-flex; align-items: center; gap: 6px; border: 1px solid transparent; border-radius: var(--isis-radius-pill); padding: 2px 0; font-size: 12px; color: var(--isis-text-muted); }
.opp-stepper__exit-dot[b-f4x067bkee] { width: 8px; height: 8px; border-radius: 50%; border: 1.5px solid var(--isis-border-strong); flex: none; }
/* Palette neutre — pas --isis-danger : un statut Perdue/Abandonnée est un terminal informatif
   (cf. DemandeClientWorkflowDiagram.razor .isis-workflow-branch--muted, même fiche, onglet
   Workflow), pas une erreur à corriger. Reprend le même triplet de tokens au pixel près. */
.opp-stepper__exit-tag.active[b-f4x067bkee] { padding: 2px 10px 2px 8px; font-weight: 600; border-color: var(--isis-text-soft); color: var(--isis-text-muted); background: var(--isis-surface-alt); }
.opp-stepper__exit-tag.active .opp-stepper__exit-dot[b-f4x067bkee] { background: var(--isis-text-soft); border-color: var(--isis-text-soft); }
/* /Components/Shared/PerimetreParDefautCase.razor.rz.scp.css */
.isis-perimetre-defaut[b-bqnk5p1d4o] {
    margin-top: var(--isis-space-sm);
}

.isis-perimetre-defaut__ligne[b-bqnk5p1d4o] {
    display: flex;
    align-items: flex-start;
    gap: var(--isis-space-sm);
}

.isis-perimetre-defaut__label[b-bqnk5p1d4o] {
    color: var(--isis-text);
    cursor: pointer;
    line-height: 1.4;
}

.isis-perimetre-defaut__label.is-disabled[b-bqnk5p1d4o] {
    cursor: default;
}

.isis-perimetre-defaut__aide[b-bqnk5p1d4o] {
    margin: var(--isis-space-xs) 0 0;
    color: var(--isis-text-soft);
    font-size: 0.75rem;
    line-height: 1.35;
}
/* /Components/Shared/PerimetreParDefautSection.razor.rz.scp.css */
.isis-perimetre-defaut-section__actions[b-293bet3ftt] {
    display: flex;
    justify-content: flex-end;
    margin-top: var(--isis-space-sm);
}
/* /Components/Shared/PlancheArbreFiltre.razor.rz.scp.css */
.arbre[b-a83389h5jk] {
    display: grid;
    gap: 6px;
    color: var(--isis-text);
    font-size: var(--isis-fs-sm);
}

/* Bordure de contrôle à 3:1 (WCAG 1.4.11) : --isis-border-strong n'y atteint pas sur fond clair,
   et le thème n'offre aucun jeton de bordure de contrôle dédié. */
.arbre__recherche[b-a83389h5jk] {
    width: 100%;
    min-height: 28px;
    box-sizing: border-box;
    padding: 4px 8px;
    border: 1px solid var(--isis-text-muted);
    border-radius: var(--isis-radius-sm);
    background: var(--isis-surface);
    color: var(--isis-text);
    font: inherit;
}

.arbre__recherche[b-a83389h5jk]::placeholder {
    color: var(--isis-text-muted);
}

.arbre__recherche:focus-visible[b-a83389h5jk],
.arbre__tout:focus-visible[b-a83389h5jk] {
    outline: 2px solid var(--isis-current-mod, var(--isis-accent));
    outline-offset: 1px;
    box-shadow: var(--isis-elevation-focus);
}

.arbre__recherche[aria-disabled="true"][b-a83389h5jk],
.arbre__tout[aria-disabled="true"][b-a83389h5jk] {
    opacity: .65;
    cursor: default;
}

.arbre__tout[b-a83389h5jk] {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 28px;
    padding: 0 8px;
    border: 0;
    border-radius: var(--isis-radius-sm);
    background: transparent;
    color: var(--isis-text);
    font: inherit;
    font-weight: 600;
    text-align: left;
    cursor: pointer;
}

.arbre__tout:hover:not([aria-disabled="true"])[b-a83389h5jk] {
    background: var(--isis-surface-alt);
}

.arbre__liste[b-a83389h5jk] {
    display: grid;
    max-height: 220px;
    overflow-y: auto;
    border: 1px solid var(--isis-text-muted);
    border-radius: var(--isis-radius-sm);
}

.ligne[b-a83389h5jk] {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 28px;
    padding: 2px 8px 2px calc(8px + var(--niveau, 0) * 16px);
    cursor: pointer;
    user-select: none;
}

.ligne:hover[b-a83389h5jk] {
    background: var(--isis-surface-alt);
}

.ligne[aria-disabled="true"][b-a83389h5jk] {
    opacity: .65;
    cursor: default;
}

.ligne--entreprise .libelle[b-a83389h5jk] {
    font-weight: 600;
}

.ligne:focus-visible[b-a83389h5jk] {
    outline: 2px solid var(--isis-current-mod, var(--isis-accent));
    outline-offset: -2px;
}

.libelle[b-a83389h5jk] {
    min-width: 0;
    overflow-wrap: anywhere;
}

.marque[b-a83389h5jk] {
    flex: none;
    padding: 0 6px;
    border: 1px solid var(--isis-border);
    border-radius: var(--isis-radius-pill);
    color: var(--isis-text-muted);
    font-size: var(--isis-fs-xs);
    line-height: 16px;
}

.arbre__note[b-a83389h5jk] {
    margin: 0;
    color: var(--isis-text-muted);
    font-size: var(--isis-fs-sm);
    line-height: 1.35;
}
/* /Components/Shared/PlancheCase.razor.rz.scp.css */
.case[b-7j78zzglph] {
    position: relative;
    flex: none;
    width: 16px;
    height: 16px;
    box-sizing: border-box;
    border: 1.5px solid var(--isis-text-muted);
    border-radius: var(--isis-radius-sm);
    background: var(--isis-surface);
}

.case:not([data-etat="decoche"])[b-7j78zzglph] {
    border-color: var(--isis-current-mod, var(--isis-accent));
    background: var(--isis-current-mod, var(--isis-accent));
}

.case[b-7j78zzglph]::after {
    content: "";
    position: absolute;
    border: solid var(--isis-on-accent);
}

.case[data-etat="coche"][b-7j78zzglph]::after {
    left: 4px;
    top: 0;
    width: 4px;
    height: 9px;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

.case[data-etat="mixte"][b-7j78zzglph]::after {
    left: 3px;
    right: 3px;
    top: 50%;
    margin-top: -1px;
    border-width: 1px 0;
}
/* /Components/Shared/PlancheMembresFilter.razor.rz.scp.css */
/* Mode « vue d'équipe » (Equipe fourni). Les modes historiques s'habillent dans le CSS global (isis-pl-*).
   Bordure de contrôle à 3:1 (WCAG 1.4.11) : --isis-border-strong n'y atteint pas sur fond clair, et le
   thème n'offre aucun jeton de bordure de contrôle dédié. La case elle-même est dans PlancheCase. */
.vmb[b-7zwbdv6mql] {
    display: grid;
    gap: 4px;
    color: var(--isis-text);
    font-size: var(--isis-fs-sm);
}

.vmb__recherche[b-7zwbdv6mql] {
    width: 100%;
    min-height: 28px;
    box-sizing: border-box;
    padding: 4px 8px;
    border: 1px solid var(--isis-text-muted);
    border-radius: var(--isis-radius-sm);
    background: var(--isis-surface);
    color: var(--isis-text);
    font: inherit;
}

.vmb__recherche[b-7zwbdv6mql]::placeholder {
    color: var(--isis-text-muted);
}

/* Une seule zone de défilement pour tous les groupes. */
.vmb__liste[b-7zwbdv6mql] {
    display: grid;
    max-height: 260px;
    overflow-y: auto;
}

.vmb__tout[b-7zwbdv6mql],
.vmb__groupe[b-7zwbdv6mql],
.vmb__item[b-7zwbdv6mql] {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    min-height: 28px;
    box-sizing: border-box;
    padding: 2px 8px;
    border: 0;
    border-radius: var(--isis-radius-sm);
    background: transparent;
    color: var(--isis-text);
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.vmb__tout[b-7zwbdv6mql],
.vmb__groupe[b-7zwbdv6mql] {
    font-weight: 600;
}

.vmb__groupe[b-7zwbdv6mql] {
    margin-top: 4px;
    border-top: 1px solid var(--isis-border-soft);
    border-radius: 0;
}

.vmb__groupe-nom[b-7zwbdv6mql] {
    flex: 1;
    min-width: 0;
}

.vmb__groupe-n[b-7zwbdv6mql] {
    color: var(--isis-text-muted);
    font-variant-numeric: tabular-nums;
}

.vmb__groupe-liste[b-7zwbdv6mql] {
    display: grid;
}

.vmb__item[b-7zwbdv6mql] {
    padding-left: 24px;
}

.vmb__libelle[b-7zwbdv6mql] {
    min-width: 0;
    overflow-wrap: anywhere;
}

.vmb__marque[b-7zwbdv6mql] {
    flex: none;
    padding: 0 6px;
    border: 1px solid var(--isis-border);
    border-radius: var(--isis-radius-pill);
    color: var(--isis-text-muted);
    font-size: var(--isis-fs-xs);
    line-height: 16px;
}

.vmb__tout:hover:not([aria-disabled="true"])[b-7zwbdv6mql],
.vmb__groupe:hover:not([aria-disabled="true"])[b-7zwbdv6mql],
.vmb__item:hover:not([aria-disabled="true"])[b-7zwbdv6mql] {
    background: var(--isis-surface-alt);
}

.vmb__recherche:focus-visible[b-7zwbdv6mql],
.vmb__tout:focus-visible[b-7zwbdv6mql],
.vmb__groupe:focus-visible[b-7zwbdv6mql],
.vmb__item:focus-visible[b-7zwbdv6mql] {
    outline: 2px solid var(--isis-current-mod, var(--isis-accent));
    outline-offset: 1px;
    box-shadow: var(--isis-elevation-focus);
}

.vmb__recherche[aria-disabled="true"][b-7zwbdv6mql],
.vmb__tout[aria-disabled="true"][b-7zwbdv6mql],
.vmb__groupe[aria-disabled="true"][b-7zwbdv6mql],
.vmb__item[aria-disabled="true"][b-7zwbdv6mql] {
    opacity: .65;
    cursor: default;
}

.vmb__note[b-7zwbdv6mql] {
    margin: 0;
    color: var(--isis-text-muted);
    font-size: var(--isis-fs-sm);
    line-height: 1.35;
}
/* /Components/Shared/PlancheVueFiltres.razor.rz.scp.css */
/* Mode « vue d'équipe » (Etat fourni) : le wrapper ne crée pas de boîte, ses enfants se placent
   comme les blocs du mode historique. L'habillage des membres est dans PlancheMembresFilter.razor.css. */
.vue-filtres[b-f4qb6g8ygl] {
    display: contents;
}

/* Libellés de vue sécables : en `nowrap`, la largeur minimale des trois colonnes `1fr` dépassait le
   conteneur à 360 px (« Mes structures » tranché de 9 px sur les feuilles d'équipe, les commandes et
   les rapports). Le libellé passe à la ligne au lieu de pousser la grille. */
.isis-pl-echelle > button[b-f4qb6g8ygl] {
    white-space: normal;
    line-height: 1.2;
    padding-block: 4px;
}
/* /Components/Shared/QualiteSection.razor.rz.scp.css */
/* Section « Qualité » d'une prestation (gesqhse). Tokens --isis-* uniquement.
   Les échelons d'espacement du projet sont xs/sm/md/lg/xl — il n'existe pas de --isis-space-1..4. */

.isis-qualite .isis-rich-section__header[b-5dlw5w4ka4] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--isis-space-md);
}

.isis-qualite__phase[b-5dlw5w4ka4] {
    display: flex;
    flex-direction: column;
    gap: var(--isis-space-sm);
}

/* Sur-titre / label de section (DESIGN.md §3) : 0.7rem, 600, letter-spacing 0.06em. */
.isis-qualite__phase-title[b-5dlw5w4ka4] {
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--isis-text-muted);
}

.isis-qualite__points[b-5dlw5w4ka4] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--isis-space-xs);
}

.isis-qualite__point[b-5dlw5w4ka4] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--isis-space-md);
    padding: var(--isis-space-sm) var(--isis-space-md);
    border: 1px solid var(--isis-border);
    border-radius: var(--isis-radius-sm);
    background: var(--isis-surface);
}

/* Pas d'opacity sur la ligne : elle composite aussi le bouton d'attestation,
   qui doit rester lisible et cliquable sur un point déjà traité.
   --isis-text-muted et non --isis-text-soft : ce dernier tombe à ~4.2:1 sur la
   surface Nocturne, sous le seuil AA, et il s'agit ici de contenu métier. */
.isis-qualite__point.is-traite .isis-qualite__libelle[b-5dlw5w4ka4] {
    color: var(--isis-text-muted);
}

.isis-qualite__main[b-5dlw5w4ka4] {
    display: flex;
    flex-direction: column;
    gap: var(--isis-space-xs);
    min-width: 0;
    flex: 1 1 auto;
}

.isis-qualite__libelle[b-5dlw5w4ka4] {
    overflow-wrap: anywhere;
}

.isis-qualite__meta[b-5dlw5w4ka4] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--isis-space-sm);
    font-size: 0.75rem;
    color: var(--isis-text-muted);
}

.isis-qualite__motif[b-5dlw5w4ka4] {
    overflow-wrap: anywhere;
}

.isis-qualite__badges[b-5dlw5w4ka4] {
    display: flex;
    align-items: center;
    gap: var(--isis-space-sm);
    flex: 0 0 auto;
}

@media (max-width: 640px) {
    .isis-qualite__point[b-5dlw5w4ka4] {
        flex-direction: column;
        align-items: stretch;
        gap: var(--isis-space-sm);
    }
    .isis-qualite__badges[b-5dlw5w4ka4] {
        flex-wrap: wrap;
    }
}
/* /Components/Shared/RaciCommandeSection.razor.rz.scp.css */
/* Matrice de responsabilités d'un projet (EF-148) — lecture seule, même géométrie que la
   matrice de l'offre (DevisRaciTab.razor.css), sans les commandes d'édition. */

.isis-raci-commande__compte[b-dmt6p7up61] {
    color: var(--isis-text-muted);
    font-size: 0.85rem;
}

.isis-grid--raci-commande[b-dmt6p7up61] {
    overflow-x: auto;
    min-width: 0;
}

.isis-grid--raci-commande:focus-visible[b-dmt6p7up61] {
    outline: 2px solid var(--isis-current-mod);
    outline-offset: 2px;
}

.isis-grid--raci-commande .isis-grid__head[b-dmt6p7up61],
.isis-grid--raci-commande .isis-grid__row[b-dmt6p7up61] {
    align-items: center;
}

.isis-grid--raci-commande .isis-grid__head[b-dmt6p7up61] {
    height: auto;
    min-height: 34px;
    align-items: stretch;
}

.isis-grid--raci-commande .isis-grid__head > div:nth-child(n+2)[b-dmt6p7up61] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.15rem;
    white-space: normal;
    padding: 0.3rem 0.35rem;
}

.isis-raci-role__nom[b-dmt6p7up61] {
    font-weight: 600;
    color: var(--isis-text);
    white-space: normal;
    overflow-wrap: anywhere;
}

.isis-raci-role__titulaire[b-dmt6p7up61] {
    font-size: 0.72rem;
    line-height: 1.25;
    color: var(--isis-text-muted);
    white-space: normal;
    overflow-wrap: anywhere;
}

.isis-raci-role__titulaire--vacant[b-dmt6p7up61] {
    font-style: italic;
    color: var(--isis-text-subtle, var(--isis-text-muted));
}

.isis-raci-ligne[b-dmt6p7up61] {
    display: flex;
    align-items: center;
    min-width: 0;
}

.isis-raci-ligne__nom[b-dmt6p7up61] {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    white-space: normal;
    overflow-wrap: anywhere;
    font-weight: 600;
    color: var(--isis-text);
}

.isis-raci-cell[b-dmt6p7up61] {
    padding: 0.2rem 0.3rem;
    white-space: normal;
}

.isis-grid--raci-commande[aria-busy="true"][b-dmt6p7up61] {
    opacity: 0.55;
    transition: opacity 120ms ease-out;
}
/* /Components/Shared/TacheMasquageDocumentaireDialog.razor.rz.scp.css */
/* Masquage documentaire par tâche (Lot 2.b, Task 5). Tokens --isis-* uniquement.
   Deux sections lisibles d'un coup d'œil : ce que le terrain voit, ce qu'on lui a retiré. */

.isis-masquage[b-znupxvz3ek] {
    display: flex;
    flex-direction: column;
    gap: var(--isis-space-md);
    min-width: 0;
}

.isis-masquage__intro[b-znupxvz3ek] {
    margin: 0;
    font-size: 0.82rem;
    line-height: 1.5;
    color: var(--isis-text-muted);
}

/* Sur-titre de section (DESIGN.md §3) : 0.7rem, 600, letter-spacing 0.06em. */
.isis-masquage__section[b-znupxvz3ek] {
    display: flex;
    flex-direction: column;
    gap: var(--isis-space-sm);
    min-width: 0;
}

.isis-masquage__section-title[b-znupxvz3ek] {
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--isis-text-muted);
}

.isis-masquage__item[b-znupxvz3ek] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 0.55rem 0.7rem;
    border: 1px solid var(--isis-border);
    border-radius: var(--isis-radius-sm);
    background: var(--isis-surface);
    min-width: 0;
}

/* Masqué = en sourdine, code barré : l'état se lit sans lire le badge. */
.isis-masquage__item.is-masque[b-znupxvz3ek] {
    background: var(--isis-surface-alt);
}

.isis-masquage__item.is-masque .isis-masquage__code[b-znupxvz3ek],
.isis-masquage__item.is-masque .isis-masquage__libelle[b-znupxvz3ek] {
    text-decoration: line-through;
    color: var(--isis-text-muted);
}

.isis-masquage__main[b-znupxvz3ek] {
    display: flex;
    align-items: center;
    gap: var(--isis-space-xs);
    flex-wrap: wrap;
    min-width: 0;
}

.isis-masquage__code[b-znupxvz3ek] {
    font-size: 0.78rem;
    color: var(--isis-text-muted);
}

.isis-masquage__libelle[b-znupxvz3ek] {
    font-weight: 600;
    font-size: 0.86rem;
    min-width: 0;
    overflow-wrap: anywhere;
}

.isis-masquage__meta[b-znupxvz3ek] {
    display: flex;
    align-items: center;
    gap: var(--isis-space-xs);
    flex-wrap: wrap;
    font-size: 0.74rem;
    color: var(--isis-text-muted);
}

.isis-masquage__meta > span + span[b-znupxvz3ek]::before {
    content: "·";
    margin-right: var(--isis-space-xs);
}

.isis-masquage__motif-lu[b-znupxvz3ek] {
    margin: 0;
    font-size: 0.76rem;
    color: var(--isis-text-muted);
    overflow-wrap: anywhere;
}

.isis-masquage__action[b-znupxvz3ek] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: var(--isis-space-xs);
    flex-wrap: wrap;
}

/* La saisie du motif accompagne le geste : elle ne doit pas dominer la ligne. */
.isis-masquage__action[b-znupxvz3ek]  .isis-masquage__motif {
    flex: 1 1 12rem;
    max-width: 22rem;
    font-size: 0.8rem;
}

.isis-masquage__none[b-znupxvz3ek] {
    margin: 0;
    font-size: 0.8rem;
    color: var(--isis-text-muted);
}

.isis-masquage__empty[b-znupxvz3ek] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--isis-space-xs);
    text-align: center;
    padding: var(--isis-space-lg) var(--isis-space-md);
    border: 1px dashed var(--isis-border);
    border-radius: var(--isis-radius-sm);
    color: var(--isis-text-muted);
}

.isis-masquage__empty strong[b-znupxvz3ek] {
    color: var(--isis-text);
    font-size: 0.88rem;
}

.isis-masquage__empty span[b-znupxvz3ek] {
    font-size: 0.8rem;
    max-width: 46ch;
}

.isis-masquage__footer[b-znupxvz3ek] {
    display: flex;
    justify-content: flex-end;
    padding-top: var(--isis-space-xs);
}
