/* /Components/CodeAffectationEdit.razor.rz.scp.css */
.code-edit[b-xv116kx19a] {
    position: relative;
}

/* Bloc dans le flux (pas de position absolute) : le popup qui l'heberge a un overflow-y
   auto qui rognerait un calque ; la liste pousse simplement les boutons vers le bas. */
.code-suggestions[b-xv116kx19a] {
    margin: 0.125rem 0 0;
    padding: 0;
    list-style: none;
    max-height: 12rem;
    overflow-y: auto;
    background: #fff;
    border: 1px solid #ced4da;
    border-radius: 0.25rem;
}

    .code-suggestions li[b-xv116kx19a] {
        padding: 0.25rem 0.5rem;
        cursor: pointer;
        white-space: nowrap;
    }

        .code-suggestions li:hover[b-xv116kx19a] {
            background: #e9ecef;
        }

        .code-suggestions li.active[b-xv116kx19a] {
            background: #0d6efd;
            color: #fff;
        }
/* /Components/Depot.razor.rz.scp.css */
.depot-zone[b-s8iirguvl5] {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    width: 100%;
    min-height: 3.5rem;
    margin-bottom: 0.75rem;
    padding: 0.75rem 1rem;
    border: 2px dashed #9db8e0;
    border-radius: 0.5rem;
    background: #f5f9ff;
    color: #3a5a8c;
    cursor: pointer;
    text-align: center;
    transition: background 0.15s, border-color 0.15s;
}

    .depot-zone:hover[b-s8iirguvl5] {
        background: #eaf1ff;
        border-color: #0d6efd;
    }

/* L'input (rendu par InputFile) couvre la zone (drop + clic) mais reste invisible.
   ::deep car l'element est genere par le composant enfant InputFile. */
[b-s8iirguvl5] .depot-input {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}

.depot-text[b-s8iirguvl5] {
    pointer-events: none;
}

/* Mode "bare" : la zone habille son contenu (ex. nom de dossier), droppable */
.depot--bare[b-s8iirguvl5] {
    display: inline-block;
}

    .depot--bare .depot-zone[b-s8iirguvl5] {
        display: inline-block; /* pas de flex/centrage : neutre au repos */
        position: relative;
        min-height: auto;
        width: auto;
        /* aire cliquable padee, compensee par une marge negative -> aucun decalage au repos */
        padding: 0.2rem 0.5rem;
        margin: -0.2rem -0.5rem;
        border: 1px dashed transparent;
        border-radius: 0.375rem;
        background: transparent;
        text-align: inherit;
        transition: background 0.12s, border-color 0.12s;
    }

        /* Survol : le pourtour se transforme (bordure pointillee + fond) */
        .depot--bare .depot-zone:hover[b-s8iirguvl5] {
            background: #dbe8ff;
            border-color: #0d6efd;
        }

/* Mode compact (dans une entete de groupe) */
.depot--compact[b-s8iirguvl5] {
    display: inline-block;
}

    .depot--compact .depot-zone[b-s8iirguvl5] {
        min-height: auto;
        width: auto;
        margin: 0;
        padding: 0.1rem 0.6rem;
        font-size: 0.75rem;
        border-width: 1px;
    }
/* /Components/DeviseEdit.razor.rz.scp.css */
/* En grille : la colonne "Dev" ne porte qu'un code ISO sur 3 lettres. */
.devise-edit[b-sko4dmvf1p] {
    position: relative;
    min-width: 3.25rem;
}

/* Champ de formulaire : pleine largeur du conteneur */
.devise-edit--large[b-sko4dmvf1p] {
    min-width: 0;
}

.devise-input[b-sko4dmvf1p] {
    font-size: 0.75rem;
    text-transform: uppercase;
}

.devise-edit--large .devise-input[b-sko4dmvf1p] {
    font-size: 1rem;
}

/* La liste (code + nom) est plus large que l'input : elle s'etale vers la droite. */
.devise-suggestions[b-sko4dmvf1p] {
    position: absolute;
    z-index: 1000;
    left: 0;
    min-width: 100%;
    margin: 0.125rem 0 0;
    padding: 0;
    list-style: none;
    max-height: 12rem;
    overflow-y: auto;
    background: #fff;
    border: 1px solid #ced4da;
    border-radius: 0.25rem;
    box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.15);
    font-size: 0.8rem;
}

.devise-edit--large .devise-suggestions[b-sko4dmvf1p] {
    font-size: 1rem;
}

    .devise-suggestions li[b-sko4dmvf1p] {
        padding: 0.25rem 0.5rem;
        cursor: pointer;
        white-space: nowrap;
    }

        .devise-suggestions li:hover[b-sko4dmvf1p] {
            background: #e9ecef;
        }
/* /Components/FactureRow.razor.rz.scp.css */
/* Cellules a police reduite (Id, Nom facture, Fournisseur, Num facture) */
.cell-sm[b-rthwa5tu95] {
    font-size: 0.75rem;
}

/* Champs de saisie compacts : la grille porte 6 champs editables par ligne, le padding
   par defaut de Bootstrap coute plus de largeur que le contenu lui-meme.
   ::deep obligatoire : les champs Fournisseur et Devise sont rendus par les composants
   FournisseurEdit / DeviseEdit, donc hors de la portee du CSS scope de cette ligne. */
[b-rthwa5tu95] .form-control,
[b-rthwa5tu95] .form-select {
    padding: 0.15rem 0.35rem;
    font-size: 0.75rem;
}

/* --- Actions de la ligne (PDF + commentaires) --- */
.row-actions[b-rthwa5tu95] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

/* Bouton reduit a son icone : pas de libelle, encombrement minimal. */
.icon-btn[b-rthwa5tu95] {
    display: inline-flex;
    align-items: center;
    padding: 0.1rem 0.25rem;
    line-height: 1;
}

/* Compteur de commentaires DANS la bulle (la pointe occupe le bas de l'icone,
   d'ou le leger decalage vers le haut). */
.comment-icon[b-rthwa5tu95] {
    position: relative;
    display: inline-flex;
}

.comment-count[b-rthwa5tu95] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding-bottom: 3px;
    /* Calage fin dans la bulle (le centrage optique ne tombe pas sur le centre geometrique). */
    transform: translateY(2px);
    font-size: 0.6rem;
    font-weight: 700;
    line-height: 1;
}

/* --- Colonne Avis : bouton d'avis + « ⇒ FG » cote a cote --- */
.avis-actions[b-rthwa5tu95] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    white-space: nowrap;
}

/* Bouton « ⇒ FG » (envoi vers les frais generaux) : contour orange, texte noir, pas de gras
   (le plein orange etait trop voyant — retour du 2026-09-16). Meme orange que la pastille
   « en attente » et le type Avoir (#fd7e14), Bootstrap n'a pas de .btn-outline-orange. */
.fg-btn[b-rthwa5tu95] {
    background: #fff;
    border-color: #fd7e14;
    color: #212529;
    white-space: nowrap;
}

    .fg-btn:hover[b-rthwa5tu95],
    .fg-btn:focus-visible[b-rthwa5tu95] {
        background: #fff3e6;
        border-color: #e8700f;
        color: #212529;
    }

/* ID d'une facture issue de la RFE : rouge au lieu de noir (frais-generaux.md). */
.id-rfe[b-rthwa5tu95] {
    color: #dc3545;
    font-weight: 600;
}

/* --- Pastille de sauvegarde de la ligne --- */
/* En overlay dans le coin du bouton PDF (et non de la cellule, qui porte aussi le
   bouton commentaires) : n'occupe pas de place, jamais de retour a la ligne. */
.pdf-wrap[b-rthwa5tu95] {
    position: relative;
    display: inline-flex;
}

.save-dot[b-rthwa5tu95] {
    position: absolute;
    top: -2px;
    right: -2px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
}

.save-dot--pending[b-rthwa5tu95] {
    background: #fd7e14;
}

.save-dot--saving[b-rthwa5tu95] {
    background: #0d6efd;
    animation: save-dot-pulse-b-rthwa5tu95 0.9s ease-in-out infinite;
}

.save-dot--saved[b-rthwa5tu95] {
    background: #198754;
}

@keyframes save-dot-pulse-b-rthwa5tu95 {
    50% {
        opacity: 0.25;
    }
}

/* Alerte champ vide */
.field-empty[b-rthwa5tu95] {
    background: #fdecea;
}

    .field-empty input[b-rthwa5tu95],
    .field-empty .form-control[b-rthwa5tu95] {
        border-color: #dc3545;
    }

/* Colonne TTC : min-width, pas seulement width. La table est en width:100% sans
   conteneur de defilement (cf. en-tete sticky), donc une largeur simple se fait
   ecraser quand la fenetre est etroite et le montant devient illisible. */
.ttc-cell[b-rthwa5tu95] {
    width: 6rem;
    min-width: 6rem; /* de quoi afficher un montant a 7 chiffres separateurs compris */
}

/* Colonne Devise : un code ISO sur 3 lettres, rien de plus (en-tete "Dev"). */
.devise-cell[b-rthwa5tu95] {
    width: 3.75rem;
    min-width: 3.75rem;
}

/* Colonne Fournisseur */
.fournisseur-cell[b-rthwa5tu95] {
    width: 8rem;
}

/* --- Type de facture (badge en lecture / bordure en edition) --- */
/* Le chevron de .form-select reserve 2.25rem a droite : c'est lui qui rognait le
   libelle ("Justificatif" -> "Jus"). On le rapproche du bord. */
.type-input[b-rthwa5tu95] {
    width: 6.25rem;
    padding-right: 1.15rem !important;
    background-position: right 0.2rem center;
}

.badge.type-facture[b-rthwa5tu95] {
    background: #0d6efd;
    color: #fff;
}

.badge.type-avoir[b-rthwa5tu95] {
    background: #fd7e14;
    color: #fff;
}

.badge.type-justificatif[b-rthwa5tu95] {
    background: #d9c9f0;
    color: #4b2e83;
}

.badge.type-manquant[b-rthwa5tu95] {
    background: #dc3545;
    color: #fff;
}

.badge.type-autre[b-rthwa5tu95] {
    background: #adb5bd;
    color: #fff;
}

select.type-facture[b-rthwa5tu95] {
    border-color: #0d6efd;
    color: #0d6efd;
}

select.type-avoir[b-rthwa5tu95] {
    border-color: #fd7e14;
    color: #b35300;
}

select.type-justificatif[b-rthwa5tu95] {
    border-color: #8e6fc4;
    color: #4b2e83;
}

select.type-manquant[b-rthwa5tu95] {
    border-color: #dc3545;
    color: #dc3545;
}

/* --- Etapes (pastilles) --- */
.etape[b-rthwa5tu95] {
    color: #fff;
}

.etape.etape-validation[b-rthwa5tu95] {
    background: #0d6efd;
}

.etape.etape-rouge-pastel[b-rthwa5tu95] {
    background: #f8b4b4;
    color: #7a1f1f;
}

.etape.etape-rouge-vif[b-rthwa5tu95] {
    background: #dc3545;
}

.etape.etape-neutre[b-rthwa5tu95] {
    background: #e9ecef;
    color: #333;
}
/* /Components/FacturesGroupedTable.razor.rz.scp.css */
/* Grille un cran plus petite (les lignes de groupe gardent leur taille, cf. plus bas). */
table[b-2ipwsdwxuq] {
    font-size: 0.8rem;
}

/* Cellules resserrees : 11 colonnes, le padding par defaut de Bootstrap (0.5rem)
   coute a lui seul plus de 1 cm de large sur la ligne.
   ::deep obligatoire pour les td : ils sont rendus par FactureRow, donc hors de la
   portee du CSS scope de ce composant. Les lignes de groupe, elles, sont rendues ici
   et gardent leur propre padding (regle .group-separator plus specifique). */
thead th[b-2ipwsdwxuq],
[b-2ipwsdwxuq] tbody > tr > td {
    padding: 0.2rem 0.3rem;
}

/* En-tete fige : une seule table pour toute la liste (plus de decoupage par initiale),
   donc l'en-tete sortirait du champ de vision des qu'un groupe est deplie.
   Le sticky s'ancre sur le scrollport le plus proche : NE PAS remettre de
   .table-responsive autour de la table (son overflow-x en ferait un scrollport de
   hauteur libre, qui ne defile pas -> en-tete jamais fige). */
thead th[b-2ipwsdwxuq] {
    position: sticky;
    top: 0;
    z-index: 2;
    background: #fff;
    box-shadow: inset 0 -2px 0 #cdd6e0;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: #5a6472;
}

/* Lignes de groupe : taille INCHANGEE (elles conviennent telles quelles), d'ou le
   font-size explicite qui annule la reduction posee sur la table. */
.group-separator td[b-2ipwsdwxuq] {
    background: #eef2f7;
    padding: 0.25rem 0.5rem;
    border-top: 2px solid #cdd6e0;
    font-size: 1rem;
}

.group-row[b-2ipwsdwxuq] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

/* Le nom occupe l'espace et reste colle a gauche ; le compteur part a droite */
.group-name-wrap[b-2ipwsdwxuq] {
    flex: 1;
    min-width: 0;
    text-align: left;
}

.chevron-btn[b-2ipwsdwxuq] {
    border: none;
    background: transparent;
    cursor: pointer;
    color: #6c757d;
    padding: 0 0.25rem;
    font-size: 0.8rem;
}

.group-name[b-2ipwsdwxuq] {
    flex: 1;
    font-weight: 600;
    font-size: 0.8rem;
    color: #334;
}

.group-name--toggle[b-2ipwsdwxuq] {
    cursor: pointer;
}

/* Leger decalage des lignes de facture -> impression d'arborescence sous le dossier.
   ::deep car les lignes sont rendues par le composant FactureRow. */
[b-2ipwsdwxuq] tr[id^="facture-"] > td:first-child {
    padding-left: 1.75rem;
}
/* /Components/FacturesTable.razor.rz.scp.css */
/* Meme densite que la grille groupee (cf. FacturesGroupedTable.razor.css) :
   ::deep pour les td, rendus par FactureRow. */
table[b-3hs1qwz47y] {
    font-size: 0.8rem;
}

thead th[b-3hs1qwz47y],
[b-3hs1qwz47y] tbody > tr > td {
    padding: 0.2rem 0.3rem;
}

thead th[b-3hs1qwz47y] {
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: #5a6472;
}
/* /Components/FournisseurEdit.razor.rz.scp.css */
.fournisseur-edit[b-fsujz50x2k] {
    position: relative;
    min-width: 12rem;
}

.fournisseur-suggestions[b-fsujz50x2k] {
    position: absolute;
    z-index: 1000;
    left: 0;
    right: 0;
    margin: 0.125rem 0 0;
    padding: 0;
    list-style: none;
    max-height: 12rem;
    overflow-y: auto;
    background: #fff;
    border: 1px solid #ced4da;
    border-radius: 0.25rem;
    box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.15);
}

    .fournisseur-suggestions li[b-fsujz50x2k] {
        padding: 0.25rem 0.5rem;
        cursor: pointer;
        white-space: nowrap;
    }

        .fournisseur-suggestions li:hover[b-fsujz50x2k] {
            background: #e9ecef;
        }
/* /Components/Layout/MainLayout.razor.rz.scp.css */
.page[b-tn5a72rx28] {
    position: relative;
    display: flex;
    flex-direction: column;
}

main[b-tn5a72rx28] {
    flex: 1;
}

.sidebar[b-tn5a72rx28] {
    background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%);
}

.top-row[b-tn5a72rx28] {
    background-color: #f7f7f7;
    border-bottom: 1px solid #d6d5d5;
    justify-content: flex-end;
    height: 3.5rem;
    display: flex;
    align-items: center;
}

    .top-row[b-tn5a72rx28]  a, .top-row[b-tn5a72rx28]  .btn-link {
        white-space: nowrap;
        margin-left: 1.5rem;
        text-decoration: none;
    }

    .top-row[b-tn5a72rx28]  a:hover, .top-row[b-tn5a72rx28]  .btn-link:hover {
        text-decoration: underline;
    }

    .top-row[b-tn5a72rx28]  a:first-child {
        overflow: hidden;
        text-overflow: ellipsis;
    }

@media (max-width: 640.98px) {
    .top-row[b-tn5a72rx28] {
        justify-content: space-between;
    }

    .top-row[b-tn5a72rx28]  a, .top-row[b-tn5a72rx28]  .btn-link {
        margin-left: 0;
    }
}

@media (min-width: 641px) {
    .page[b-tn5a72rx28] {
        flex-direction: row;
    }

    .sidebar[b-tn5a72rx28] {
        width: 250px;
        height: 100vh;
        position: sticky;
        top: 0;
    }

    .top-row[b-tn5a72rx28] {
        position: sticky;
        top: 0;
        z-index: 1;
    }

    .top-row.auth[b-tn5a72rx28]  a:first-child {
        flex: 1;
        text-align: right;
        width: 0;
    }

    .top-row[b-tn5a72rx28], article[b-tn5a72rx28] {
        padding-left: 2rem !important;
        padding-right: 1.5rem !important;
    }
}

#blazor-error-ui[b-tn5a72rx28] {
    color-scheme: light only;
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    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-tn5a72rx28] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }
/* /Components/Layout/NavMenu.razor.rz.scp.css */
.navbar-toggler[b-m0zzysyfd8] {
    appearance: none;
    cursor: pointer;
    width: 3.5rem;
    height: 2.5rem;
    color: white;
    position: absolute;
    top: 0.5rem;
    right: 1rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") no-repeat center/1.75rem rgba(255, 255, 255, 0.1);
}

.navbar-toggler:checked[b-m0zzysyfd8] {
    background-color: rgba(255, 255, 255, 0.5);
}

.top-row[b-m0zzysyfd8] {
    min-height: 3.5rem;
    background-color: rgba(0,0,0,0.4);
}

.navbar-brand[b-m0zzysyfd8] {
    font-size: 1.1rem;
}

.bi[b-m0zzysyfd8] {
    display: inline-block;
    position: relative;
    width: 1.25rem;
    height: 1.25rem;
    margin-right: 0.75rem;
    top: -1px;
    background-size: cover;
}

.bi-house-door-fill-nav-menu[b-m0zzysyfd8] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-house-door-fill' viewBox='0 0 16 16'%3E%3Cpath d='M6.5 14.5v-3.505c0-.245.25-.495.5-.495h2c.25 0 .5.25.5.5v3.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.146-.354L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.354 1.146a.5.5 0 0 0-.708 0l-6 6A.5.5 0 0 0 1.5 7.5v7a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5Z'/%3E%3C/svg%3E");
}

.bi-plus-square-fill-nav-menu[b-m0zzysyfd8] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-plus-square-fill' viewBox='0 0 16 16'%3E%3Cpath d='M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2zm6.5 4.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3a.5.5 0 0 1 1 0z'/%3E%3C/svg%3E");
}

.bi-list-nested-nav-menu[b-m0zzysyfd8] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-list-nested' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M4.5 11.5A.5.5 0 0 1 5 11h10a.5.5 0 0 1 0 1H5a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 3 7h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 1 3h10a.5.5 0 0 1 0 1H1a.5.5 0 0 1-.5-.5z'/%3E%3C/svg%3E");
}

.nav-item[b-m0zzysyfd8] {
    font-size: 0.9rem;
    padding-bottom: 0.5rem;
}

    .nav-item:first-of-type[b-m0zzysyfd8] {
        padding-top: 1rem;
    }

    .nav-item:last-of-type[b-m0zzysyfd8] {
        padding-bottom: 1rem;
    }

    .nav-item[b-m0zzysyfd8]  .nav-link {
        color: #d7d7d7;
        background: none;
        border: none;
        border-radius: 4px;
        height: 3rem;
        display: flex;
        align-items: center;
        line-height: 3rem;
        width: 100%;
    }

.nav-item[b-m0zzysyfd8]  a.active {
    background-color: rgba(255,255,255,0.37);
    color: white;
}

.nav-item[b-m0zzysyfd8]  .nav-link:hover {
    background-color: rgba(255,255,255,0.1);
    color: white;
}

.nav-scrollable[b-m0zzysyfd8] {
    display: none;
}

.navbar-toggler:checked ~ .nav-scrollable[b-m0zzysyfd8] {
    display: block;
}

@media (min-width: 641px) {
    .navbar-toggler[b-m0zzysyfd8] {
        display: none;
    }

    .nav-scrollable[b-m0zzysyfd8] {
        /* Never collapse the sidebar for wide screens */
        display: block;

        /* Allow sidebar to scroll for tall menus */
        height: calc(100vh - 3.5rem);
        overflow-y: auto;
    }
}
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-uw0cuqssfd],
.components-reconnect-repeated-attempt-visible[b-uw0cuqssfd],
.components-reconnect-failed-visible[b-uw0cuqssfd],
.components-pause-visible[b-uw0cuqssfd],
.components-resume-failed-visible[b-uw0cuqssfd],
.components-rejoining-animation[b-uw0cuqssfd] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-uw0cuqssfd],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-uw0cuqssfd],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-uw0cuqssfd],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-uw0cuqssfd],
#components-reconnect-modal.components-reconnect-retrying[b-uw0cuqssfd],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-uw0cuqssfd],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-uw0cuqssfd],
#components-reconnect-modal.components-reconnect-failed[b-uw0cuqssfd],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-uw0cuqssfd] {
    display: block;
}


#components-reconnect-modal[b-uw0cuqssfd] {
    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-uw0cuqssfd 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-uw0cuqssfd 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-uw0cuqssfd 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

#components-reconnect-modal[b-uw0cuqssfd]::backdrop {
    background-color: rgba(0, 0, 0, 0.4);
    animation: components-reconnect-modal-fadeInOpacity-b-uw0cuqssfd 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-uw0cuqssfd {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-uw0cuqssfd {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-uw0cuqssfd {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-uw0cuqssfd] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-uw0cuqssfd] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-uw0cuqssfd] {
    border: 0;
    background-color: #6b9ed2;
    color: white;
    padding: 4px 24px;
    border-radius: 4px;
}

    #components-reconnect-modal button:hover[b-uw0cuqssfd] {
        background-color: #3b6ea2;
    }

    #components-reconnect-modal button:active[b-uw0cuqssfd] {
        background-color: #6b9ed2;
    }

.components-rejoining-animation[b-uw0cuqssfd] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-uw0cuqssfd] {
        position: absolute;
        border: 3px solid #0087ff;
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-uw0cuqssfd 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-uw0cuqssfd] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-uw0cuqssfd {
    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/Portail.razor.rz.scp.css */
.portail-center[b-ly5kmpkgkp] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 60vh;
    font-size: 1.25rem;
    color: #555;
    text-align: center;
    padding: 1rem;
}

.portail-error[b-ly5kmpkgkp] {
    color: #b00020;
}

.portail-shell[b-ly5kmpkgkp] {
    max-width: 520px;
    margin: 3rem auto;
    padding: 0 1rem;
}

.portail-list[b-ly5kmpkgkp] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.portail-item[b-ly5kmpkgkp] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.75rem 1rem;
    border: 1px solid #dee2e6;
    border-radius: 0.5rem;
    background: #fff;
    color: #212529;
    text-decoration: none;
    font-weight: 600;
    transition: border-color 0.15s, background 0.15s;
}

    .portail-item:hover[b-ly5kmpkgkp] {
        border-color: #0d6efd;
        background: #f2f6ff;
        color: #0d6efd;
    }
/* /Components/Pages/Verdie.razor.rz.scp.css */
.verdie-center[b-brwi9h9zef] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 60vh;
    font-size: 1.25rem;
    color: #555;
    text-align: center;
    padding: 1rem;
}

.verdie-error[b-brwi9h9zef] {
    color: #b00020;
}

.verdie-header[b-brwi9h9zef] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.5rem;
}

/* Aucune marge : l'ecran est integre en composant (iframe Hubshare), il travaille
   au ras de la bordure. Ne pas y remettre de padding "pour aerer". */
.verdie-shell[b-brwi9h9zef] {
    padding: 0;
}

/* Onglets */
.verdie-tabs[b-brwi9h9zef] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
    margin-bottom: 0.5rem;
    border-bottom: 2px solid #e6e8eb;
    padding-bottom: 0;
}

.verdie-tab[b-brwi9h9zef] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    border: none;
    background: transparent;
    color: #5a6472;
    font-weight: 600;
    padding: 0.55rem 1rem;
    border-radius: 0.5rem 0.5rem 0 0;
    cursor: pointer;
    position: relative;
    transition: color 0.15s, background 0.15s;
}

    .verdie-tab:hover[b-brwi9h9zef] {
        color: #0d6efd;
        background: #f2f6ff;
    }

    .verdie-tab.is-active[b-brwi9h9zef] {
        color: #0d6efd;
        background: #eaf1ff;
    }

        .verdie-tab.is-active[b-brwi9h9zef]::after {
            content: "";
            position: absolute;
            left: 0.5rem;
            right: 0.5rem;
            bottom: -2px;
            height: 3px;
            background: #0d6efd;
            border-radius: 3px 3px 0 0;
        }

/* Bouton Actualiser : pousse a droite de la barre d'onglets. */
.verdie-refresh[b-brwi9h9zef] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-left: auto;
    align-self: center;
    border: 1px solid #ced4da;
    background: #fff;
    color: #5a6472;
    font-size: 0.8rem;
    font-weight: 600;
    padding: 0.3rem 0.6rem;
    border-radius: 0.375rem;
    cursor: pointer;
}

    .verdie-refresh:hover:not(:disabled)[b-brwi9h9zef] {
        color: #0d6efd;
        border-color: #0d6efd;
        background: #f2f6ff;
    }

    .verdie-refresh:disabled[b-brwi9h9zef] {
        cursor: default;
        opacity: 0.65;
    }

.verdie-refresh-icon[b-brwi9h9zef] {
    display: inline-block;
    font-size: 1rem;
    line-height: 1;
}

    .verdie-refresh-icon.is-spinning[b-brwi9h9zef] {
        animation: verdie-spin-b-brwi9h9zef 0.9s linear infinite;
    }

@keyframes verdie-spin-b-brwi9h9zef {
    to {
        transform: rotate(360deg);
    }
}

.verdie-tab-count[b-brwi9h9zef] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.5rem;
    height: 1.5rem;
    padding: 0 0.4rem;
    font-size: 0.75rem;
    font-weight: 700;
    color: #fff;
    background: #adb5bd;
    border-radius: 1rem;
}

.verdie-tab.is-active .verdie-tab-count[b-brwi9h9zef] {
    background: #0d6efd;
}

/* Selecteur de BU du bandeau */
.verdie-bu-picker[b-brwi9h9zef] {
    position: relative;
    display: inline-flex;
    align-items: center;
}

.verdie-bu-btn[b-brwi9h9zef] {
    border: none;
    cursor: pointer;
}

.verdie-bu-caret[b-brwi9h9zef] {
    font-size: 0.65rem;
    opacity: 0.8;
}

.verdie-bu-backdrop[b-brwi9h9zef] {
    position: fixed;
    inset: 0;
    z-index: 1030;
}

.verdie-bu-menu[b-brwi9h9zef] {
    position: absolute;
    top: calc(100% + 0.25rem);
    left: 0;
    z-index: 1035;
    width: 280px;
    background: #fff;
    border: 1px solid #dee2e6;
    border-radius: 0.5rem;
    padding: 0.5rem;
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
}

.verdie-bu-menu-list[b-brwi9h9zef] {
    max-height: 45vh;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
}

.verdie-bu-item[b-brwi9h9zef] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    width: 100%;
    border: none;
    background: transparent;
    text-align: left;
    padding: 0.375rem 0.5rem;
    border-radius: 0.375rem;
    font-weight: 600;
    color: #212529;
    cursor: pointer;
}

    .verdie-bu-item:hover[b-brwi9h9zef] {
        background: #f2f6ff;
        color: #0d6efd;
    }

    .verdie-bu-item.is-current[b-brwi9h9zef] {
        background: #eaf1ff;
        color: #0d6efd;
    }

.verdie-modal-backdrop[b-brwi9h9zef] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    z-index: 1040;
}

.verdie-modal[b-brwi9h9zef] {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1050;
    width: min(90vw, 420px);
    max-height: 80vh;
    overflow-y: auto;
    background: #fff;
    border-radius: 0.5rem;
    padding: 1.25rem;
    box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.3);
}

/* Contenu d'un commentaire : conserver les retours a la ligne saisis */
.comment-texte[b-brwi9h9zef] {
    white-space: pre-wrap;
    word-break: break-word;
}

.verdie-modal-list[b-brwi9h9zef] {
    max-height: 50vh;
    overflow-y: auto;
}

.verdie-pdf-modal[b-brwi9h9zef] {
    position: fixed;
    inset: 3vh 3vw;
    z-index: 1050;
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: 0.5rem;
    overflow: hidden;
    box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.4);
}

.verdie-pdf-head[b-brwi9h9zef] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.5rem 0.75rem;
    background: #f8f9fa;
    border-bottom: 1px solid #dee2e6;
    font-weight: 600;
}

.verdie-pdf-frame[b-brwi9h9zef] {
    flex: 1;
    width: 100%;
    border: none;
}

.verdie-busy[b-brwi9h9zef] {
    position: fixed;
    inset: 0;
    z-index: 1060;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.35);
}
