/* /Components/Accueil/TableauDeBordAccueil.razor.rz.scp.css */
/* Accueil (décision 033) — maquette retenue du 05/10/2026. Aucune couleur en dur : palette MudBlazor
   (thème DsTheme) et variables de ds-theme.css. Deux colonnes qui passent l'une sous l'autre au téléphone. */

.ds-acc[b-yf4ve8h8ce] {
    display: flex;
    flex-direction: column;
    gap: 20px;
    /* Lisibilité : la page ne s'étire pas au-delà d'un écran de bureau (le bouton reste près du texte). */
    max-width: 1320px;
}

/* Le gris de lecture : « TextSecondary » de la charte est un bleu marine, qui noyait tout. */
.ds-acc[b-yf4ve8h8ce] {
    --ds-acc-gris: var(--mud-palette-gray-darker);
}

[b-yf4ve8h8ce] .ds-acc-gris-texte {
    color: var(--ds-acc-gris) !important;
}

.ds-acc-colonnes[b-yf4ve8h8ce] {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    /* Les deux colonnes prennent la hauteur de la plus longue… */
    align-items: stretch;
}

/* …et leur DERNIÈRE carte s'étire jusqu'en bas : les deux colonnes finissent au même niveau
   (Cyril, 05/10/2026). Sans effet au téléphone, où les colonnes sont l'une sous l'autre. */
[b-yf4ve8h8ce] .ds-acc-principale > :last-child,
[b-yf4ve8h8ce] .ds-acc-cote > :last-child {
    flex-grow: 1;
}

.ds-acc-principale[b-yf4ve8h8ce] {
    flex: 3 1 560px;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.ds-acc-cote[b-yf4ve8h8ce] {
    flex: 1 1 300px;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* La carte panier pose sa propre marge basse : l'espacement vient de la colonne. */
.ds-acc-cote[b-yf4ve8h8ce]  .mud-paper.mb-4 {
    margin-bottom: 0 !important;
}

[b-yf4ve8h8ce] .ds-acc-carte {
    border-radius: 8px;
    overflow: hidden;
}

.ds-acc-carte-titre[b-yf4ve8h8ce] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px;
    padding: 16px 18px 12px;
}

/* ---- À faire ---- */

.ds-acc-horizon[b-yf4ve8h8ce] {
    padding: 8px 18px;
    font-size: 13px;
    font-weight: 700;
    color: var(--mud-palette-primary);
    background: var(--mud-palette-background-gray);
    border-top: 1px solid var(--mud-palette-lines-default);
}

.ds-acc-horizon-urgent[b-yf4ve8h8ce] {
    color: var(--ds-bandeau-texte);
    /* Teinte légère de l'orange (pas l'aplat) : un repère, pas une alarme. */
    background: color-mix(in srgb, var(--mud-palette-warning) 18%, var(--mud-palette-surface));
    border-top-color: color-mix(in srgb, var(--mud-palette-warning) 45%, var(--mud-palette-surface));
}

.ds-acc-action[b-yf4ve8h8ce] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px;
    padding: 14px 18px;
    border-top: 1px solid var(--mud-palette-table-lines);
}

.ds-acc-date[b-yf4ve8h8ce] {
    flex: 0 0 60px;
    text-align: center;
    border-radius: 6px;
    padding: 6px 0;
    background: var(--mud-palette-background-gray);
    color: var(--mud-palette-primary);
    line-height: 1.2;
}

.ds-acc-date b[b-yf4ve8h8ce] {
    display: block;
    font-size: 20px;
}

.ds-acc-date span[b-yf4ve8h8ce] {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .05em;
}

.ds-acc-action-texte[b-yf4ve8h8ce] {
    flex: 1 1 240px;
    min-width: 0;
}

.ds-acc-tag[b-yf4ve8h8ce] {
    font-size: 11px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--ds-steel);
}

.ds-acc-action-titre[b-yf4ve8h8ce] {
    font-size: 16px;
    font-weight: 500;
    color: var(--mud-palette-text-primary);
}

.ds-acc-action-detail[b-yf4ve8h8ce] {
    font-size: 13px;
    color: var(--ds-acc-gris);
    margin-top: 2px;
}

.ds-acc-plus[b-yf4ve8h8ce] {
    display: flex;
    justify-content: center;
    padding: 6px;
    border-top: 1px solid var(--mud-palette-table-lines);
}

/* ---- Important cette semaine ---- */

.ds-acc-defile[b-yf4ve8h8ce] {
    overflow-x: auto;
}

.ds-acc-grille[b-yf4ve8h8ce] {
    width: 100%;
    min-width: 420px;
    border-collapse: collapse;
    font-variant-numeric: tabular-nums;
}

.ds-acc-grille th[b-yf4ve8h8ce],
.ds-acc-grille td[b-yf4ve8h8ce] {
    padding: 10px 12px;
    border-bottom: 1px solid var(--mud-palette-table-lines);
    text-align: center;
    font-size: 14px;
}

.ds-acc-grille td:first-child[b-yf4ve8h8ce] {
    font-size: 15px;
}

.ds-acc-grille th[b-yf4ve8h8ce] {
    font-size: 12px;
    font-weight: 500;
    color: var(--ds-steel);
    text-transform: uppercase;
    letter-spacing: .04em;
}

.ds-acc-grille th:first-child[b-yf4ve8h8ce],
.ds-acc-grille td:first-child[b-yf4ve8h8ce] {
    text-align: left;
}

.ds-acc-grille a[b-yf4ve8h8ce] {
    color: var(--mud-palette-primary);
    font-weight: 500;
    text-decoration: none;
}

.ds-acc-grille a:hover[b-yf4ve8h8ce] {
    text-decoration: underline;
}

.ds-acc-vide[b-yf4ve8h8ce] {
    color: var(--mud-palette-text-disabled);
    font-weight: 400;
}

/* Une case : le total en grand, « dont n cette semaine » en petit dessous. */
.ds-acc-nombre[b-yf4ve8h8ce] {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    line-height: 1.15;
}

.ds-acc-nombre b[b-yf4ve8h8ce] {
    font-size: 20px;
}

.ds-acc-urgent[b-yf4ve8h8ce] {
    font-size: 12px;
    font-weight: 500;
    color: var(--mud-palette-warning-darken);
    white-space: nowrap;
}

.ds-acc-sav[b-yf4ve8h8ce] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
}

.ds-acc-sav a[b-yf4ve8h8ce] {
    color: var(--mud-palette-primary);
    font-weight: 500;
}

/* ---- Commander ---- */

.ds-acc-raccourcis[b-yf4ve8h8ce] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 10px;
}

/* ---- Dernières commandes ---- */

.ds-acc-commande[b-yf4ve8h8ce] {
    padding: 10px 0;
    border-bottom: 1px solid var(--mud-palette-table-lines);
    font-size: 14px;
}

.ds-acc-commande-ligne[b-yf4ve8h8ce] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 8px;
}

.ds-acc-statut[b-yf4ve8h8ce] {
    font-size: 13px;
    font-weight: 500;
    color: var(--ds-steel);
}

.ds-acc-statut-attente[b-yf4ve8h8ce] {
    color: var(--mud-palette-warning-darken);
}

.ds-acc-statut-acceptee[b-yf4ve8h8ce] {
    color: var(--mud-palette-success-darken);
}

/* Couverture du journal DS Infos (décision 038) : pleine largeur de la carte, proportions gardées. */
.ds-acc-dsinfos[b-yf4ve8h8ce] {
    display: block;
    width: 100%;
    max-width: 260px;
    height: auto;
    border: 1px solid var(--mud-palette-lines-default);
}
/* /Components/Accueil/VitrineAccueil.razor.rz.scp.css */
/* Carte vitrine de l'accueil (décision 033) — tokens seulement. */

.ds-acc-vitrine-ligne[b-4cvmiydm9t] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 0;
    border-bottom: 1px solid var(--mud-palette-table-lines);
    color: var(--mud-palette-text-primary);
    text-decoration: none;
}

.ds-acc-vitrine-ligne:hover .ds-acc-vitrine-titre[b-4cvmiydm9t] {
    color: var(--mud-palette-primary);
    text-decoration: underline;
}

/* Petite jaquette : 75 px de large dans les listes, réduite ici à une vignette. */
[b-4cvmiydm9t] .ds-acc-vitrine-jaq {
    flex: 0 0 44px;
    width: 44px;
    height: 64px;
}

[b-4cvmiydm9t] .ds-acc-vitrine-jaq img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.ds-acc-vitrine-texte[b-4cvmiydm9t] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.ds-acc-vitrine-titre[b-4cvmiydm9t] {
    font-size: 14px;
    font-weight: 500;
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.ds-acc-vitrine-support[b-4cvmiydm9t] {
    font-size: 12px;
    color: var(--mud-palette-gray-darker);
}
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-osi91ryvjp],
.components-reconnect-repeated-attempt-visible[b-osi91ryvjp],
.components-reconnect-failed-visible[b-osi91ryvjp],
.components-pause-visible[b-osi91ryvjp],
.components-resume-failed-visible[b-osi91ryvjp],
.components-rejoining-animation[b-osi91ryvjp] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-osi91ryvjp],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-osi91ryvjp],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-osi91ryvjp],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-osi91ryvjp],
#components-reconnect-modal.components-reconnect-retrying[b-osi91ryvjp],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-osi91ryvjp],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-osi91ryvjp],
#components-reconnect-modal.components-reconnect-failed[b-osi91ryvjp],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-osi91ryvjp] {
    display: block;
}


#components-reconnect-modal[b-osi91ryvjp] {
    background-color: white;
    width: 20rem;
    margin: 20vh auto;
    padding: 2rem;
    border: 0;
    border-radius: 0.5rem;
    box-shadow: 0 3px 6px 2px rgba(0, 0, 0, 0.3);
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-osi91ryvjp 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-osi91ryvjp 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-osi91ryvjp 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

#components-reconnect-modal[b-osi91ryvjp]::backdrop {
    background-color: rgba(0, 0, 0, 0.4);
    animation: components-reconnect-modal-fadeInOpacity-b-osi91ryvjp 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-osi91ryvjp {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-osi91ryvjp {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-osi91ryvjp {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-osi91ryvjp] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-osi91ryvjp] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-osi91ryvjp] {
    border: 0;
    background-color: #6b9ed2;
    color: white;
    padding: 4px 24px;
    border-radius: 4px;
}

    #components-reconnect-modal button:hover[b-osi91ryvjp] {
        background-color: #3b6ea2;
    }

    #components-reconnect-modal button:active[b-osi91ryvjp] {
        background-color: #6b9ed2;
    }

.components-rejoining-animation[b-osi91ryvjp] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-osi91ryvjp] {
        position: absolute;
        border: 3px solid #0087ff;
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-osi91ryvjp 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-osi91ryvjp] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-osi91ryvjp {
    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/Login.razor.rz.scp.css */
/* Champs de connexion NATIFS (ni liés ni réécrits par Blazor) — les gestionnaires de mots de passe
   ne proposent d'enregistrer qu'un mot de passe TAPÉ, jamais un champ dont un script a réécrit la valeur.
   Apparence calée sur les champs « Outlined » de MudBlazor, couleurs du thème uniquement. */

.ds-cnx-champ[b-ba47y2c6td] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-bottom: 16px;
}

.ds-cnx-champ label[b-ba47y2c6td] {
    font-size: 0.875rem;
    color: var(--mud-palette-text-secondary);
}

.ds-cnx-champ input[b-ba47y2c6td] {
    font: inherit;
    font-size: 1rem;
    padding: 14px 12px;
    border: 1px solid var(--mud-palette-lines-inputs);
    border-radius: var(--mud-default-borderradius);
    background: var(--mud-palette-surface);
    color: var(--mud-palette-text-primary);
    outline: none;
}

.ds-cnx-champ input:hover[b-ba47y2c6td] {
    border-color: var(--mud-palette-text-primary);
}

.ds-cnx-champ input:focus[b-ba47y2c6td] {
    border-color: var(--mud-palette-primary);
    box-shadow: 0 0 0 1px var(--mud-palette-primary);
}
/* /Components/Pages/SavListe.razor.rz.scp.css */
/* Liste SAV — calée sur Maquette_ListeSAV.html, tokens de la charte (ds-theme.css / DsTheme).
   Aucune couleur en dur hors palette de la charte. */

/* ---- Carte de filtres ---- */
.sav-filters[b-35csckf1gd] {
    display: flex;
    gap: 12px;
    align-items: flex-end;
    background: var(--mud-palette-surface);
    border: 1px solid #E6E6E6;
    border-radius: 10px;
    padding: 13px 15px;
    margin-bottom: 14px;
    flex-wrap: wrap;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .04);
}

.sav-field[b-35csckf1gd] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.sav-field label[b-35csckf1gd] {
    font-size: 11px;
    color: #5a6b80;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .03em;
}

.sav-field select[b-35csckf1gd],
.sav-field input[b-35csckf1gd] {
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: 6px;
    padding: 0 10px;
    font: inherit;
    height: 38px;
    background: #fff;
    color: var(--mud-palette-text-primary);
    min-width: 180px;
}

.sav-field select:focus[b-35csckf1gd],
.sav-field input:focus[b-35csckf1gd] {
    outline: 2px solid var(--ds-accent);
    outline-offset: 1px;
    border-color: var(--ds-steel);
}

.sav-btn[b-35csckf1gd] {
    border: none;
    border-radius: 6px;
    height: 38px;
    padding: 0 20px;
    font-size: 13.5px;
    font-weight: 600;
    cursor: pointer;
    color: #fff;
    font-family: inherit;
    background: var(--mud-palette-primary);
}

.sav-btn:hover[b-35csckf1gd] {
    background: var(--ds-navy-deep);
}

/* Le compteur n'est plus rendu par la page : il est posé dans le pied du gabarit
   (ZonesGabarit.DefinirPiedDroite), pour tenir sur la même ligne que Lib_Droit. */

/* Action principale de la page (création) : distinguée de « Rechercher » par
   l'accent de la charte, dont c'est précisément le rôle (mise en évidence). */
.sav-btn-add[b-35csckf1gd] {
    background: var(--ds-accent);
    color: #231a06;
}

.sav-btn-add:hover[b-35csckf1gd] {
    background: #E88B00;
}

/* ---- Table ---- */
.sav-tablewrap[b-35csckf1gd] {
    overflow-x: auto;
}

.sav-table[b-35csckf1gd] {
    border-collapse: collapse;
    width: 100%;
    background: var(--mud-palette-surface);
    border: 1px solid var(--mud-palette-table-lines);
    border-radius: 8px;
    overflow: hidden;
}

.sav-table thead th[b-35csckf1gd] {
    background: #EBF2FA;                 /* sky-pale de la charte */
    color: var(--mud-palette-primary);
    text-align: left;
    padding: 10px 12px;
    font-size: 12.5px;
    font-weight: 700;
    border-bottom: 2px solid var(--mud-palette-lines-default);
    white-space: nowrap;
}

.sav-table tbody td[b-35csckf1gd] {
    padding: 9px 12px;
    border-bottom: 1px solid #E6E6E6;
    font-size: 13.5px;
}

.sav-table tbody tr:nth-child(even) td[b-35csckf1gd] {
    background: #F7F9FC;
}

.sav-table tbody tr:hover td[b-35csckf1gd] {
    background: #EEF4FB;
}

.sav-table tbody tr[b-35csckf1gd] {
    cursor: pointer;
}

.sav-num[b-35csckf1gd] {
    font-family: Consolas, "Courier New", monospace;
    font-size: 12.5px;
    color: #33475e;
}

.sav-thumb[b-35csckf1gd] {
    width: 44px;
}

.sav-thumb span[b-35csckf1gd] {
    cursor: zoom-in;
    display: block;
}

.sav-chev[b-35csckf1gd] {
    color: var(--ds-steel);
    font-weight: 700;
    text-align: center;
    width: 30px;
    font-size: 18px;
}

/* ---- Pastilles de statut ---- */
.sav-badge[b-35csckf1gd] {
    display: inline-block;
    padding: 2px 9px;
    border-radius: 11px;
    font-size: 11.5px;
    font-weight: 600;
    white-space: nowrap;
}

.b-cree[b-35csckf1gd] { background: #E7F0F8; color: #1c5a86; }
.b-recu[b-35csckf1gd] { background: #FCF0DC; color: #8a5a12; }
.b-trait[b-35csckf1gd] { background: #E7F3E7; color: #2f6b2f; }
.b-clos[b-35csckf1gd] { background: #ECECEC; color: #666; }

.sav-loading[b-35csckf1gd],
.sav-empty[b-35csckf1gd] {
    padding: 16px;
    color: #5a6b80;
}

/* ---- Cartes (mobile) ---- */
.sav-cards[b-35csckf1gd] {
    display: none;
}

.sav-card[b-35csckf1gd] {
    background: #fff;
    border: 1px solid #E6E6E6;
    border-radius: 12px;
    padding: 12px 14px;
    margin-bottom: 10px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .06);
    cursor: pointer;
}

.sav-card-h[b-35csckf1gd] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
}

.sav-card-h b[b-35csckf1gd] {
    color: var(--mud-palette-primary);
    font-size: 14px;
}

.sav-card-r[b-35csckf1gd] {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    padding: 3px 0;
}

.sav-card-r span:first-child[b-35csckf1gd] {
    color: #7a8aa0;
}

/* Bascule table -> cartes sous 720px (comme la maquette en mode téléphone). */
@media (max-width: 720px) {
    .sav-tablewrap[b-35csckf1gd] { display: none; }
    .sav-cards[b-35csckf1gd] { display: block; }
    .sav-filters[b-35csckf1gd] { flex-direction: column; align-items: stretch; }
    .sav-field select[b-35csckf1gd], .sav-field input[b-35csckf1gd] { min-width: 0; width: 100%; }
    .sav-count[b-35csckf1gd] { margin-left: 0; margin-top: 4px; }
}
/* /Components/Pages/Stat.razor.rz.scp.css */
/* Statistiques (décision 032). Aucune couleur en dur : tokens MudBlazor (--mud-palette-*) et DS (--ds-*). */

.ds-st-corps[b-aar6hh5vnr] { display: grid; gap: 14px; }

.ds-st-entete[b-aar6hh5vnr] { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; }

.ds-st-vide[b-aar6hh5vnr] { display: grid; gap: 6px; justify-items: center; text-align: center; padding: 28px 18px; }

.ds-st-num[b-aar6hh5vnr] { font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }

.ds-st-up[b-aar6hh5vnr] { color: var(--mud-palette-success-darken); }
.ds-st-down[b-aar6hh5vnr] { color: var(--mud-palette-error); }
.ds-st-nz[b-aar6hh5vnr] { color: var(--mud-palette-text-secondary); }
.ds-st-evo[b-aar6hh5vnr] { font-weight: 500; font-size: .85em; font-variant-numeric: tabular-nums; white-space: nowrap; }

/* ---- repères ---- */
.ds-st-kpis[b-aar6hh5vnr] { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
[b-aar6hh5vnr] .ds-st-kpi { display: grid; gap: 2px; padding: 10px 12px; min-width: 0; }
.ds-st-k[b-aar6hh5vnr] { font-size: .75rem; text-transform: uppercase; letter-spacing: .05em; color: var(--ds-steel); }
.ds-st-v[b-aar6hh5vnr] { font-size: 1.45rem; font-weight: 700; line-height: 1.2; font-variant-numeric: tabular-nums; color: var(--ds-navy-deep); }
.ds-st-s[b-aar6hh5vnr] { font-size: .8rem; color: var(--mud-palette-text-secondary); display: flex; flex-wrap: wrap; gap: 4px 8px; }

/* ---- tableau de bord ---- */
.ds-st-dash[b-aar6hh5vnr] { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 10px; }
[b-aar6hh5vnr] .ds-st-panel { display: grid; gap: 8px; align-content: start; padding: 12px 14px; min-width: 0; }
.ds-st-legende[b-aar6hh5vnr] { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: .8rem; color: var(--mud-palette-text-secondary); }
.ds-st-pastille[b-aar6hh5vnr] { display: inline-block; width: 10px; height: 10px; border-radius: 2px; margin-right: 5px; vertical-align: -1px; }
.ds-st-p-n[b-aar6hh5vnr] { background: var(--mud-palette-primary); }
.ds-st-p-c[b-aar6hh5vnr] { background: var(--mud-palette-lines-default); }
.ds-st-trait[b-aar6hh5vnr] { display: inline-block; width: 3px; height: 12px; margin-right: 5px; vertical-align: -2px; background: var(--ds-accent); }

/* Le SVG est un MarkupString : il ne porte pas l'attribut d'isolation, d'où ::deep. */
.ds-st-graph[b-aar6hh5vnr]  .ds-st-svg { width: 100%; height: auto; display: block; }
.ds-st-graph[b-aar6hh5vnr]  .ds-st-grille { stroke: var(--mud-palette-table-lines); stroke-opacity: .35; }
.ds-st-graph[b-aar6hh5vnr]  .ds-st-axe { font-size: 10px; fill: var(--mud-palette-text-secondary); }
.ds-st-graph[b-aar6hh5vnr]  .ds-st-axe-on { fill: var(--mud-palette-primary); font-weight: 700; }
.ds-st-graph[b-aar6hh5vnr]  .ds-st-b-n { fill: var(--mud-palette-primary); }
.ds-st-graph[b-aar6hh5vnr]  .ds-st-b-hors { fill: var(--ds-steel); fill-opacity: .55; }
.ds-st-graph[b-aar6hh5vnr]  .ds-st-b-c { fill: var(--mud-palette-lines-default); }

.ds-st-barres[b-aar6hh5vnr] { display: grid; gap: 8px; }
.ds-st-barre[b-aar6hh5vnr] { display: grid; grid-template-columns: minmax(0, 110px) 1fr 70px; gap: 8px; align-items: center; font-size: .8rem; }
.ds-st-barre-l[b-aar6hh5vnr] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ds-st-barre-t[b-aar6hh5vnr] { height: 12px; position: relative; border-radius: 3px; background: var(--mud-palette-background-gray); }
.ds-st-barre-t b[b-aar6hh5vnr] { position: absolute; inset: 0 auto 0 0; border-radius: 3px; background: var(--mud-palette-primary); }
.ds-st-barre-t s[b-aar6hh5vnr] { position: absolute; top: -3px; bottom: -3px; width: 2px; background: var(--ds-accent); }

.ds-st-mvts[b-aar6hh5vnr] { display: grid; font-size: .8rem; }
.ds-st-mvts div[b-aar6hh5vnr] { display: flex; justify-content: space-between; gap: 8px; padding: 4px 0; border-bottom: 1px solid var(--mud-palette-lines-default); }
.ds-st-mvts small[b-aar6hh5vnr] { color: var(--mud-palette-text-secondary); margin-left: 4px; }

/* ---- détail ---- */
.ds-st-table-wrap[b-aar6hh5vnr] { overflow-x: auto; border: 1px solid var(--mud-palette-lines-default); border-radius: 6px; background: var(--mud-palette-surface); }
.ds-st-table[b-aar6hh5vnr] { border-collapse: collapse; width: 100%; min-width: 980px; font-size: .85rem; }
.ds-st-table th[b-aar6hh5vnr] { font-weight: 500; font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; color: var(--ds-steel);
                  padding: 7px 8px; text-align: right; white-space: nowrap; border-bottom: 1px solid var(--mud-palette-lines-default); }
.ds-st-groupes th[b-aar6hh5vnr] { border-bottom: 0; padding-bottom: 0; text-align: center; color: var(--mud-palette-primary); }
.ds-st-table td[b-aar6hh5vnr] { padding: 6px 8px; border-bottom: 1px solid var(--mud-palette-table-lines); border-bottom-color: color-mix(in srgb, var(--mud-palette-table-lines) 35%, transparent); }
.ds-st-table .ds-st-l[b-aar6hh5vnr] { text-align: left; }
.ds-st-table .ds-st-g[b-aar6hh5vnr] { border-left: 1px solid var(--mud-palette-lines-default); }
.ds-st-uni td[b-aar6hh5vnr] { font-weight: 700; color: var(--ds-navy-deep); background: color-mix(in srgb, var(--mud-palette-secondary) 22%, transparent); }
.ds-st-fam td[b-aar6hh5vnr] { font-weight: 500; }
.ds-st-fam td.ds-st-l[b-aar6hh5vnr] { padding-left: 22px; }
.ds-st-sup td.ds-st-l[b-aar6hh5vnr] { padding-left: 44px; }
.ds-st-sup td[b-aar6hh5vnr] { color: var(--mud-palette-text-secondary); }
.ds-st-tot td[b-aar6hh5vnr] { font-weight: 700; color: var(--mud-palette-appbar-text); background: var(--mud-palette-primary); }
.ds-st-tot .ds-st-evo[b-aar6hh5vnr] { color: inherit; }

.ds-st-tog[b-aar6hh5vnr] { border: 0; background: none; padding: 0; font: inherit; color: inherit; cursor: pointer; display: inline-flex; gap: 6px; align-items: center; }
.ds-st-tog[b-aar6hh5vnr]::before { content: "▾"; display: inline-block; width: 10px; font-size: .75em; transition: transform .15s; }
.ds-st-tog[aria-expanded="false"][b-aar6hh5vnr]::before { transform: rotate(-90deg); }
.ds-st-tog:focus-visible[b-aar6hh5vnr] { outline: 2px solid var(--ds-accent); outline-offset: 2px; }

.ds-st-cartes[b-aar6hh5vnr] { display: none; gap: 8px; }
.ds-st-carte[b-aar6hh5vnr] { display: grid; gap: 6px; padding: 10px 12px; border-radius: 6px; border: 1px solid var(--mud-palette-lines-default); background: var(--mud-palette-surface); }
.ds-st-c-uni[b-aar6hh5vnr] { background: color-mix(in srgb, var(--mud-palette-secondary) 22%, transparent); border-color: transparent; }
.ds-st-c-tot[b-aar6hh5vnr] { background: var(--mud-palette-primary); color: var(--mud-palette-appbar-text); border-color: transparent; }
.ds-st-c-tot .ds-st-evo[b-aar6hh5vnr], .ds-st-c-tot dt[b-aar6hh5vnr] { color: inherit; }
.ds-st-carte-t[b-aar6hh5vnr] { display: flex; justify-content: space-between; gap: 8px; align-items: baseline; font-weight: 500; }
.ds-st-carte dl[b-aar6hh5vnr] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px 8px; margin: 0; font-size: .8rem; }
.ds-st-carte dt[b-aar6hh5vnr] { font-size: .7rem; color: var(--mud-palette-text-secondary); }
.ds-st-carte dd[b-aar6hh5vnr] { margin: 0; font-variant-numeric: tabular-nums; }

@media (prefers-reduced-motion: reduce) { .ds-st-tog[b-aar6hh5vnr]::before { transition: none; } }

/* Téléphone et petite tablette (même seuil que Breakpoint.Sm, cf. piège noté au lot RCde). */
@media (max-width: 960px) {
    .ds-st-kpis[b-aar6hh5vnr] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ds-st-dash[b-aar6hh5vnr] { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
    .ds-st-table-wrap[b-aar6hh5vnr] { display: none; }
    .ds-st-cartes[b-aar6hh5vnr] { display: grid; }
}
