@import '_content/Microsoft.AspNetCore.Components.QuickGrid/Microsoft.AspNetCore.Components.QuickGrid.boiwgh0w5b.bundle.scp.css';
@import '_content/Oasis.Common/Oasis.Common.jbp8ugs36t.bundle.scp.css';
@import '_content/Oasis.Contractors/Oasis.Contractors.c7pfpe4x2c.bundle.scp.css';
@import '_content/Oasis.SiteAccess/Oasis.SiteAccess.g18qfq97i8.bundle.scp.css';
@import '_content/Oasis.SST/Oasis.SST.liz5207z8g.bundle.scp.css';

/* /Pages/Home.razor.rz.scp.css */
/* /Pages/Reports/CatalogReportPage.razor.rz.scp.css */
/* SC-1430 — bloc « Source de données ».

   Le contraste de surface fait tout le travail de séparation : gris et sans ombre pour la
   plomberie en amont, blanc et ombré pour le rapport demandé en aval. Pas de MudDivider ni de
   titres « Étape 1 / Étape 2 » — ce n'est pas une séquence obligatoire, on peut très bien générer
   sans jamais synchroniser. */

/* `::deep` obligatoire : `.report-source` est posé sur un MudPaper, et l'isolation CSS n'appose son
   attribut de portée que sur le HTML écrit dans ce composant — pas sur la racine d'un composant
   enfant. Sans le wrapper natif + `::deep`, la règle ne matche rien et personne n'est averti.

   `background-gray`, graphie américaine : c'est le nom réel injecté par MudThemeProvider (vérifié
   dans le HTML servi). Écrite « grey », elle ne résout pas et la déclaration retombe en silence.
   Les deux erreurs étaient cumulées, et le résultat était le même dans les deux cas : un bloc blanc
   indiscernable de la carte du rapport, donc toute la séparation amont/aval à plat. Le littéral sert
   de filet si la variable change de nom d'une version à l'autre. */
.report-source-shell[b-sin76faiw8]  .report-source {
    background-color: var(--mud-palette-background-gray, #f1f5f9);
    overflow: hidden;
}

.report-source__head[b-sin76faiw8] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px 8px;
    justify-content: space-between;
    padding: 6px 14px;
    border-bottom: 1px solid var(--mud-palette-lines-default);
}

.report-source__eyebrow[b-sin76faiw8] {
    font-size: .69rem;
    font-weight: 700;
    letter-spacing: .11em;
    text-transform: uppercase;
    color: var(--mud-palette-text-secondary);
}

.report-source__body[b-sin76faiw8] {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 12px 14px;
}

/* Le texte occupe la place libre : c'est LUI qui pousse le bouton à droite. Un `margin-left: auto`
   sur le bouton ne fonctionnerait pas — les utilitaires d'espacement MudBlazor (`ma-0`, `ml-2`…)
   posent leur marge en `!important` et écrasent la règle. */
.report-source__text[b-sin76faiw8] {
    flex: 1 1 auto;
    min-width: 0;
}

/* L'action reste secondaire : « Générer le rapport » est la seule action primaire de l'écran. */
.report-source__action[b-sin76faiw8] {
    flex: 0 0 auto;
    white-space: nowrap;
}

/* Sous 600 px la rangée casse : le libellé du bouton ne doit jamais écraser le message d'état. */
@media (max-width: 600px) {
    .report-source__body[b-sin76faiw8] {
        flex-wrap: wrap;
    }

    .report-source__text[b-sin76faiw8] {
        flex-basis: 100%;
    }

    /* `::deep` pour la même raison que plus haut : c'est un MudButton.
       Cible tactile : 28 px suffisent à la souris, pas à un pouce ganté. C'est sur l'état « Échec »
       que ça compte le plus — « Réessayer » est l'action de récupération, elle ne peut pas être la
       plus petite cible de l'écran. */
    .report-source-shell[b-sin76faiw8]  .report-source__action {
        min-height: 44px;
    }
}
/* /Shared/MainLayout.razor.rz.scp.css */
.test[b-lio62jxv9g] {
    color: red;
}
