/* /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: none;
    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);
}
/* /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);
}
.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/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/GeoLayerTypesPage.razor.rz.scp.css */
.isis-grid--geo-layer-types .isis-grid__head[b-aojnpsqcoz],
.isis-grid--geo-layer-types .isis-grid__row[b-aojnpsqcoz] {
    grid-template-columns: 160px minmax(200px, 1fr) 70px 130px 70px 90px 90px;
    min-width: 820px;
}
/* /Components/Pages/Gesqhse/ChartePage.razor.rz.scp.css */
/* Consultation de la charte — arbre piliers → phases → contrôles (lecture seule). */
.isis-charte[b-95c2x8tgom] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    max-width: 960px;
}

/* Pilier = carte plate, teinte module discrète en bandeau de tête */
.isis-charte-pilier[b-95c2x8tgom] {
    display: flex;
    flex-direction: column;
    gap: .9rem;
    padding: 1rem 1.15rem 1.15rem;
    border: 1px solid var(--isis-border);
    border-radius: var(--isis-radius-lg);
    background: var(--isis-surface);
    box-shadow: var(--isis-elevation-1);
}

.isis-charte-pilier__head[b-95c2x8tgom] {
    display: flex;
    flex-direction: column;
    gap: .3rem;
    padding-bottom: .75rem;
    border-bottom: 1px solid var(--isis-border);
}

.isis-charte-pilier__title[b-95c2x8tgom] {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 600;
    line-height: 1.25;
    color: var(--isis-current-mod, var(--isis-text));
}

.isis-charte-pilier__principe[b-95c2x8tgom] {
    margin: 0;
    font-size: .85rem;
    line-height: 1.5;
    color: var(--isis-text-muted);
}

/* Phase = section regroupée sous le pilier */
.isis-charte-phase[b-95c2x8tgom] {
    display: flex;
    flex-direction: column;
    gap: .55rem;
}

.isis-charte-phase__title[b-95c2x8tgom] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
    margin: 0;
    font-size: .9rem;
    font-weight: 600;
    color: var(--isis-text);
}

/* Contrôles = liste propre, libellé prend la place, badges en fin de ligne */
.isis-charte-controles[b-95c2x8tgom] {
    display: flex;
    flex-direction: column;
    gap: .35rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.isis-charte-controle[b-95c2x8tgom] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    padding: .5rem .7rem;
    border: 1px solid var(--isis-border);
    border-radius: var(--isis-radius-sm);
    background: var(--isis-surface-alt);
}

.isis-charte-controle__libelle[b-95c2x8tgom] {
    flex: 1 1 60%;
    min-width: 0;
    font-size: .85rem;
    line-height: 1.4;
    color: var(--isis-text);
    overflow-wrap: anywhere;
}

.isis-charte-controle__badges[b-95c2x8tgom] {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .35rem;
}
/* /Components/Pages/Gesqhse/ConformiteDureeTravailPage.razor.rz.scp.css */
.isis-dt-sections[b-0sg4q0kf9m] { display: grid; grid-template-columns: 1.3fr 1fr; gap: 1rem; align-items: start; }
@media (max-width: 1000px) { .isis-dt-sections[b-0sg4q0kf9m] { grid-template-columns: 1fr; } }
.isis-dt-card[b-0sg4q0kf9m] { border: 1px solid var(--isis-border); border-radius: var(--isis-radius); background: var(--isis-surface); padding: .85rem 1rem 1rem; box-shadow: var(--isis-elevation-1); }
.isis-dt-card__hd[b-0sg4q0kf9m] { font-size: .82rem; font-weight: 700; color: var(--isis-current-mod, var(--isis-text)); margin-bottom: .7rem; display: flex; align-items: center; gap: .4rem; }
.isis-dt-card__hd small[b-0sg4q0kf9m] { font-weight: 500; color: var(--isis-text-muted); }

/* Tendance — barres verticales */
.isis-dt-trend[b-0sg4q0kf9m] { display: flex; align-items: flex-end; gap: .35rem; height: 140px; padding-top: .5rem; }
.isis-dt-trend__col[b-0sg4q0kf9m] { flex: 1; display: flex; flex-direction: column; align-items: center; gap: .3rem; min-width: 0; }
.isis-dt-trend__bar[b-0sg4q0kf9m] { width: 100%; max-width: 26px; border-radius: 4px 4px 0 0; background: color-mix(in srgb, var(--isis-current-mod, var(--isis-accent)) 55%, transparent); transition: background .15s; }
.isis-dt-trend__bar.is-zero[b-0sg4q0kf9m] { background: var(--isis-surface-alt); min-height: 2px; }
.isis-dt-trend__col:hover .isis-dt-trend__bar:not(.is-zero)[b-0sg4q0kf9m] { background: var(--isis-current-mod, var(--isis-accent)); }
.isis-dt-trend__n[b-0sg4q0kf9m] { font-size: .7rem; font-weight: 700; font-variant-numeric: tabular-nums; color: var(--isis-text); }
.isis-dt-trend__m[b-0sg4q0kf9m] { font-size: .62rem; color: var(--isis-text-muted); white-space: nowrap; }

/* Par type — barres horizontales */
.isis-dt-types[b-0sg4q0kf9m] { display: flex; flex-direction: column; gap: .55rem; }
.isis-dt-type[b-0sg4q0kf9m] { display: grid; grid-template-columns: 1fr auto; gap: .15rem .6rem; align-items: center; }
.isis-dt-type__lbl[b-0sg4q0kf9m] { font-size: .82rem; color: var(--isis-text); }
.isis-dt-type__lbl small[b-0sg4q0kf9m] { color: var(--isis-text-muted); }
.isis-dt-type__n[b-0sg4q0kf9m] { font-size: .82rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.isis-dt-type__track[b-0sg4q0kf9m] { grid-column: 1 / -1; height: 7px; border-radius: 999px; background: var(--isis-surface-alt); overflow: hidden; }
.isis-dt-type__fill[b-0sg4q0kf9m] { height: 100%; border-radius: 999px; background: color-mix(in srgb, var(--isis-warning) 70%, transparent); }

/* Récidive — bandes cliquables */
.isis-dt-recidive[b-0sg4q0kf9m] { display: flex; flex-direction: column; gap: .5rem; }
.isis-dt-band[b-0sg4q0kf9m] { display: flex; align-items: center; justify-content: space-between; gap: .6rem; padding: .55rem .75rem; border: 1px solid var(--isis-border); border-radius: var(--isis-radius-sm); background: var(--isis-surface); cursor: pointer; font: inherit; text-align: left; width: 100%; transition: background .12s; }
.isis-dt-band:hover[b-0sg4q0kf9m] { background: var(--isis-surface-alt); }
.isis-dt-band:focus-visible[b-0sg4q0kf9m] { outline: 2px solid var(--isis-current-mod, var(--isis-accent)); outline-offset: 2px; }
.isis-dt-band__lbl[b-0sg4q0kf9m] { font-size: .84rem; color: var(--isis-text); }
.isis-dt-band__n[b-0sg4q0kf9m] { font-size: 1.1rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.isis-dt-band.is-chronic[b-0sg4q0kf9m] { border-color: color-mix(in srgb, var(--isis-danger) 40%, transparent); background: color-mix(in srgb, var(--isis-danger) 6%, var(--isis-surface)); }
.isis-dt-band.is-chronic .isis-dt-band__n[b-0sg4q0kf9m] { color: var(--isis-danger); }
/* /Components/Pages/Gesqhse/Parametres/CharteParamsPage.razor.rz.scp.css */
/* Paramétrage de la charte — arbre piliers → phases → contrôles (éditable). */
.isis-charte[b-rw7xlme7sz] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    max-width: 960px;
}

/* Pilier = carte plate, teinte module discrète en bandeau de tête */
.isis-charte-pilier[b-rw7xlme7sz] {
    display: flex;
    flex-direction: column;
    gap: .9rem;
    padding: 1rem 1.15rem 1.15rem;
    border: 1px solid var(--isis-border);
    border-radius: var(--isis-radius-lg);
    background: var(--isis-surface);
    box-shadow: var(--isis-elevation-1);
}

.isis-charte-pilier__head[b-rw7xlme7sz] {
    display: flex;
    flex-direction: column;
    gap: .3rem;
    padding-bottom: .75rem;
    border-bottom: 1px solid var(--isis-border);
}

.isis-charte-pilier__title[b-rw7xlme7sz] {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 600;
    line-height: 1.25;
    color: var(--isis-current-mod, var(--isis-text));
}

.isis-charte-pilier__principe[b-rw7xlme7sz] {
    margin: 0;
    font-size: .85rem;
    line-height: 1.5;
    color: var(--isis-text-muted);
}

/* Phase = section regroupée sous le pilier */
.isis-charte-phase[b-rw7xlme7sz] {
    display: flex;
    flex-direction: column;
    gap: .55rem;
}

.isis-charte-phase__title[b-rw7xlme7sz] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
    margin: 0;
    font-size: .9rem;
    font-weight: 600;
    color: var(--isis-text);
}

/* Contrôles = liste propre, libellé prend la place, badges + actions en fin de ligne */
.isis-charte-controles[b-rw7xlme7sz] {
    display: flex;
    flex-direction: column;
    gap: .35rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.isis-charte-controle[b-rw7xlme7sz] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    padding: .5rem .7rem;
    border: 1px solid var(--isis-border);
    border-radius: var(--isis-radius-sm);
    background: var(--isis-surface-alt);
}

/* 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-charte-controle.is-inactive .isis-charte-controle__libelle[b-rw7xlme7sz] {
    color: var(--isis-text-soft);
    text-decoration: line-through;
    text-decoration-color: var(--isis-border-strong);
}

.isis-charte-controle__libelle[b-rw7xlme7sz] {
    flex: 1 1 60%;
    min-width: 0;
    font-size: .85rem;
    line-height: 1.4;
    color: var(--isis-text);
    overflow-wrap: anywhere;
}

.isis-charte-controle__badges[b-rw7xlme7sz] {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .35rem;
}
/* /Components/Pages/Gesst/EngagementListPage.razor.rz.scp.css */
/* Suivi financier compact du sidepanel (facturé / payé). */
.isis-side-fin-summary[b-szyna9u1mf] {
    display: flex;
    gap: 1rem;
    padding: 0 1rem;
    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;
}
/* /Components/Pages/MonEspace/CoffrePage.razor.rz.scp.css */
.isis-grid--coffre .isis-grid__head[b-ml7usbo1yu],
.isis-grid--coffre .isis-grid__row[b-ml7usbo1yu] {
    grid-template-columns: minmax(240px, 1.8fr) minmax(160px, 1fr) 90px 140px 120px;
    min-width: 850px;
}
.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;
}
/* /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;
}

/* ── Compteur hero ─────────────────────────────────────────────────────────── */

.isis-notif-hero[b-weg0enc2hu] {
    margin-left: auto;
    text-align: right;
}

/* 1.375rem = la taille de .isis-rich-header__title. DESIGN.md §3 pose « KPI <= Titre page » :
   à 1.75rem le compteur écrasait le titre de la page. L'accent est porté par la couleur chaude
   et la graisse, pas par la taille. */
.isis-notif-hero__value[b-weg0enc2hu] {
    font-family: var(--isis-font-mono, 'Geist Mono', ui-monospace, monospace);
    font-variant-numeric: tabular-nums;
    font-size: 1.375rem;
    font-weight: 600;
    letter-spacing: -0.03em;
    line-height: 1;
    color: var(--isis-accent-warm);
}

.isis-notif-hero__label[b-weg0enc2hu] {
    margin-top: 0.25rem;
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 0.09em;
    color: var(--isis-text-muted);
}

/* ── Rangée de chips ───────────────────────────────────────────────────────── */

.isis-notif-chips[b-weg0enc2hu] {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    flex-wrap: wrap;
    padding: 0.5rem 0;
}

.isis-notif-chips__spacer[b-weg0enc2hu] { flex: 1 1 1.5rem; }

/* `appearance: none` retire le chevron natif du <select> : sans indicateur de
   remplacement, plus rien ne signale une liste déroulante. Le chevron est redessiné
   en CSS sur le conteneur (currentColor → correct en clair comme en sombre) plutôt
   qu'en image de fond, qui figerait une couleur. */
.isis-notif-chips__module[b-weg0enc2hu] {
    position: relative;
    display: inline-flex;
    align-items: center;
    color: var(--isis-text-muted);
}

.isis-notif-chips__module[b-weg0enc2hu]::after {
    content: '';
    position: absolute;
    right: 0.62rem;
    top: 50%;
    width: 6px;
    height: 6px;
    margin-top: -4px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg);
    opacity: 0.65;
    pointer-events: none;
}

.isis-chip--select[b-weg0enc2hu] {
    appearance: none;
    padding-right: 1.6rem;
    cursor: pointer;
}

/* ── 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, var(--isis-border));
}

/* 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-warm : 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-warm-strong, pas --isis-accent-warm : 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-warm) 14%, transparent);
    color: var(--isis-accent-warm-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/Sirh/AnnualSynthesisView.razor.rz.scp.css */
.isis-annual[b-n6unpl8ktw] { display:flex; flex-direction:column; gap:.7rem; }
.isis-annual-filters[b-n6unpl8ktw] { display:flex; align-items:flex-end; gap:.8rem; flex-wrap:wrap; }
.isis-annual-filters .field[b-n6unpl8ktw] { display:flex; flex-direction:column; gap:.2rem; }
.isis-annual-filters .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-warm, #c2410c); }

.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-warm, #c2410c) 12%, var(--isis-surface));
    color: var(--isis-accent-warm, #c2410c);
}
.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-warm, #c2410c) 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-warm, #c2410c) 6%, var(--isis-surface));
    border-right: 1px solid var(--isis-border);
    border: 1px solid var(--isis-accent-warm, #c2410c);
    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-warm, #c2410c) 12%, var(--isis-surface));
    color: var(--isis-accent-warm, #c2410c);
}
.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-warm, #c2410c) 22%, transparent);
    border-radius: var(--isis-radius-sm);
    padding: 0.22rem 0.32rem;
    background: color-mix(in oklch, var(--isis-accent-warm, #c2410c) 7%, var(--isis-surface));
}
.isis-org__resp-badge[b-eym8fehl6t] {
    font-size: 0.52rem;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--isis-accent-warm, #c2410c);
    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-warm, #c2410c) 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-warm, #c2410c) 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-warm, #c2410c); 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-warm, #c2410c) 30%, var(--isis-border));
    background: color-mix(in oklch, var(--isis-accent-warm, #c2410c) 4%, var(--isis-surface));
}

.isis-org__recap-num[b-eym8fehl6t] {
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1;
    color: var(--isis-accent-warm, #c2410c);
    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-warm, #c2410c);
    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-warm, #c2410c) 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/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/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/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/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);
}
