@import '_content/Blazor.Bootstrap/Blazor.Bootstrap.olwso25aue.bundle.scp.css';

/* /Pages/Auth/DeleteAccount.razor.rz.scp.css */
/* Containers */

.main-container[b-etk5ti92vq] {
    margin: 60px 20px 40px 20px;
    width: 25rem;
}

.title-container[b-etk5ti92vq] {
    padding-bottom: 10px;
}

.bottom-div[b-etk5ti92vq] {
    bottom: 0;
}
/* /Pages/Auth/ForgotPassword.razor.rz.scp.css */
.selected[b-zoknfteze9] {
    color: #027bff;
    background-color: #ffffff;
}

li:hover[b-zoknfteze9] {
    background-color: #ffffff;
}

button[b-zoknfteze9],
button:hover[b-zoknfteze9] {
    background-color: #1486f4;
    color: white;
}

/* Custom CSS */


/* Containers */

.main-container[b-zoknfteze9] {
    /* display: grid;
    grid-template-areas:
        "title"
        "form";
    grid-template-rows: 30% 12rem;
    margin-left: 12%;
    margin-right: 12%;
    margin-top: 2%;*/

    margin: 60px 20px 40px 20px;
    width: 25rem;
}

.title-container[b-zoknfteze9] {
    /*grid-area: title;*/
    padding-bottom: 10px;
}

.form-container[b-zoknfteze9] {
    /* grid-area: form;
    position: relative;*/
}

.bottom-div[b-zoknfteze9] {
    /*position: absolute;*/
    bottom: 0;
}

.bg-transparent[b-zoknfteze9]{
    background-color: transparent;
}
/* /Pages/Auth/ForgotPasswordValidation.razor.rz.scp.css */
.selected[b-bch8dwa434] {
    color: #027bff;
    background-color: #ffffff;
}

li:hover[b-bch8dwa434] {
    background-color: #ffffff;
}

button[b-bch8dwa434],
button:hover[b-bch8dwa434] {
    background-color: #1486f4;
    color: white;
}

/* Custom CSS */


/* Containers */

.main-container[b-bch8dwa434] {
    /*display: grid;
    grid-template-areas:
        "title"
        "form";
    grid-template-rows: 4rem 28rem;
    margin-left: 10%;
    margin-right: 10%;
    margin-top: 2%;*/
    margin: 60px 20px 40px 20px;
    width: 25rem;
}

.title-container[b-bch8dwa434] {
    /*grid-area: title;*/
    padding-bottom: 10px;
}

.form-container[b-bch8dwa434] {
    /*grid-area: form;
    position: relative;*/
}

.bottom-div[b-bch8dwa434] {
    /*position: absolute;*/
    bottom: 0;
}
/* /Pages/Auth/Login.razor.rz.scp.css */
.selected[b-0x26hjf5op] {
    color: #027bff;
    background-color: #ffffff;
}

li:hover[b-0x26hjf5op] {
    background-color: #ffffff;
}

button[b-0x26hjf5op],
button:hover[b-0x26hjf5op] {
    background-color: #1486f4;
    color: white;
}

/* Custom CSS */


/* Containers */

.main-container[b-0x26hjf5op] {
    /*display: grid;*/
    /* grid-template-areas: 
        "title" 
        "form";
    grid-template-rows: auto auto;*/
    margin: 60px 20px 40px 20px;
    width: 25rem;
}

.title-container[b-0x26hjf5op] {
    /*grid-area: title;*/
    padding-bottom: 10px;
}

.form-container[b-0x26hjf5op] {
    /*grid-area: form;*/
}

.bottom-div[b-0x26hjf5op] {
    bottom: 0;
}

/* /Pages/Auth/Register.razor.rz.scp.css */
.selected[b-n6dgydfvcz] {
    color: #027bff;
    background-color: #ffffff;
}

li:hover[b-n6dgydfvcz] {
    background-color: #ffffff;
}

button[b-n6dgydfvcz],
button:hover[b-n6dgydfvcz] {
    background-color: #1486f4;
    color: white;
}

/* Custom CSS */


/* Containers */

.main-container[b-n6dgydfvcz] {
    /*display: grid;
    grid-template-areas:
        "title"
        "form";
    grid-template-rows: 4rem 27rem;
    margin-left: 12.5%;
    margin-right: 12.5%;
    margin-top: 5%;
    height: 66rem;*/
    margin: 60px 20px 40px 20px;
    width: 25rem;
}

.title-container[b-n6dgydfvcz] {
    /*grid-area: title;*/
    padding-bottom: 10px;
}

.form-container[b-n6dgydfvcz] {
    /*grid-area: form;
    position: relative;*/
}

.bottom-div[b-n6dgydfvcz] {
    /*position: absolute;*/
    bottom: 0;
}
/* /Pages/Auth/RegisterValidation.razor.rz.scp.css */
.selected[b-29y9chepbv] {
    color: #027bff;
    background-color: #ffffff;
}

li:hover[b-29y9chepbv] {
    background-color: #ffffff;
}

button[b-29y9chepbv],
button:hover[b-29y9chepbv] {
    background-color: #1486f4;
    color: white;
}

/* Custom CSS */


/* Containers */


.main-container[b-29y9chepbv] {
    /*display: grid;
    grid-template-areas:
        "title"
        "form";
    grid-template-rows: 4rem 27rem;
    margin-left: 12.5%;
    margin-right: 12.5%;
    margin-top: 5%;
    height: 66rem;*/
    margin: 60px 20px 40px 20px;
    width: 25rem;
}

.title-container[b-29y9chepbv] {
    /*grid-area: title;*/
    padding-bottom: 10px;
}

.form-container[b-29y9chepbv] {
    /*grid-area: form;
    position: relative;*/
}

.bottom-div[b-29y9chepbv] {
    /*position: absolute;*/
    bottom: 0;
}
/* /Pages/Downloads/EditDownload.razor.rz.scp.css */
/* Container principal */
.downloads-manage-container[b-wld36okkm9] {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 0;
}

/* Contenu principal - deux colonnes */
.downloads-manage-content[b-wld36okkm9] {
    display: flex;
    flex: 1;
    margin-top: 20px;
    gap: 40px;
}

/* Colonne gauche - Margin="26,20,20,0" */
.column-left[b-wld36okkm9] {
    flex: 1;
    margin-left: 26px;
}

/* Colonne droite - Margin="20,20,20,0" */
.column-right[b-wld36okkm9] {
    flex: 1;
    margin-right: 20px;
}

/* Titre de section - SegoeUI14 = 14pt, Bold, ColorTextColor=#0277ED */
.section-title[b-wld36okkm9] {
    font-size: 13px; /* 14pt a l'echelle Web */
    font-weight: bold;
    color: #0277ED; /* ColorTextColor */
    font-family: 'Segoe UI', sans-serif;
    margin: 0 0 10px 0;
}

/* Message d'erreur - SegoeUI14, Italic, ColorButtonCancel=#FF0000 */
.error-message[b-wld36okkm9] {
    display: block;
    font-size: 13px; /* 14pt a l'echelle Web */
    font-style: italic;
    color: #FF0000; /* ColorButtonCancel */
    font-family: 'Segoe UI', sans-serif;
    margin: 10px 0;
}

/* Groupe de formulaire - Margin="0,20,0,0" */
.form-group[b-wld36okkm9] {
    margin-top: 20px;
}

/* Label de formulaire */
.form-label[b-wld36okkm9] {
    display: block;
    font-size: 10px;
    font-family: 'Segoe UI', sans-serif;
    color: #333333;
    margin-bottom: 5px;
}

/* Container pour input fichier */
.file-input-container[b-wld36okkm9] {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.file-input[b-wld36okkm9] {
    width: 100%;
}

.file-name[b-wld36okkm9] {
    font-size: 10px;
    font-family: 'Segoe UI', sans-serif;
    color: #666666;
}

/* Bouton Creer - Width="240", Padding="10", BorderThickness="1", CornerRadius="15" */
.btn-create[b-wld36okkm9] {
    width: 240px;
    padding: 10px;
    margin-top: 20px;
    background-color: transparent;
    color: #000000;
    border: 1px solid #000000;
    border-radius: 15px;
    font-size: 15px; /* 16pt a l'echelle Web */
    font-family: 'Segoe UI', sans-serif;
    cursor: pointer;
    text-align: center;
    transition: background-color 0.2s;
}

.btn-create:hover[b-wld36okkm9] {
    background-color: #f0f0f0;
}

/* Ligne de boutons */
.button-row[b-wld36okkm9] {
    display: flex;
    gap: 20px;
    margin-top: 20px;
}

/* Bouton Modifier - Width="240", Padding="10", BorderThickness="1", CornerRadius="15" */
.btn-modify[b-wld36okkm9] {
    width: 240px;
    padding: 10px;
    background-color: transparent;
    color: #000000;
    border: 1px solid #000000;
    border-radius: 15px;
    font-size: 15px; /* 16pt a l'echelle Web */
    font-family: 'Segoe UI', sans-serif;
    cursor: pointer;
    text-align: center;
    transition: background-color 0.2s;
}

.btn-modify:hover:not(:disabled)[b-wld36okkm9] {
    background-color: #f0f0f0;
}

.btn-modify:disabled[b-wld36okkm9] {
    opacity: 0.5;
    cursor: not-allowed;
}

/* Bouton Supprimer - Width="240", Padding="10", Background=ColorButtonCancel=#FF0000, CornerRadius="15" */
.btn-delete[b-wld36okkm9] {
    width: 240px;
    padding: 10px;
    background-color: #FF0000; /* ColorButtonCancel */
    color: #FFFFFF;
    border: 1px solid #888888; /* ColorButtonNeutral */
    border-radius: 15px;
    font-size: 15px; /* 16pt a l'echelle Web */
    font-family: 'Segoe UI', sans-serif;
    cursor: pointer;
    text-align: center;
    transition: background-color 0.2s;
}

.btn-delete:hover:not(:disabled)[b-wld36okkm9] {
    background-color: #cc0000;
}

.btn-delete:disabled[b-wld36okkm9] {
    opacity: 0.5;
    cursor: not-allowed;
}

/* Overlay des operations sans transfert de fichier - Background="#A5000000".
   L'overlay de progression de transfert a ete extrait dans FileTransferProgressModal :
   l'isolation CSS de Blazor rendant ces regles invisibles depuis un autre composant,
   elles y ont ete recopiees et sont supprimees ici. */
.working-overlay[b-wld36okkm9] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.65);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
}

/* Popup d'operation - Width="500", Padding="40,20,40,20", CornerRadius="12" */
.working-popup[b-wld36okkm9] {
    width: 500px;
    padding: 20px 40px;
    background-color: #FFFFFF;
    border-radius: 12px;
    box-shadow: 0px 3px 6px rgba(223, 223, 223, 0.5);
    text-align: center;
}

/* Titre d'operation - SegoeUI14, Bold */
.working-title[b-wld36okkm9] {
    font-size: 13px; /* 14pt a l'echelle Web */
    font-weight: bold;
    font-family: 'Segoe UI', sans-serif;
    margin: 0 0 20px 0;
}

/* Message d'operation - SegoeUI12 */
.working-message[b-wld36okkm9] {
    font-size: 12px; /* 12pt a l'echelle Web */
    font-family: 'Segoe UI', sans-serif;
    margin: 0;
}
/* /Pages/Downloads/ListDownload.razor.rz.scp.css */
/* Container principal */
.downloads-container[b-bvzvomdlsa] {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 0;
}

/* Contenu principal - Margin="20,20,0,0" */
.downloads-content[b-bvzvomdlsa] {
    flex: 1;
    margin: 20px 0 0 20px;
    overflow-y: auto;
}

/* Section de categorie */
.category-section[b-bvzvomdlsa] {
    margin-bottom: 20px;
}

/* Titre de categorie - SegoeUI14 = 14pt, Bold, ColorTextColor=#0277ED */
.category-title[b-bvzvomdlsa] {
    font-size: 13px; /* 14pt a l'echelle Web */
    font-weight: bold;
    color: #0277ED; /* ColorTextColor */
    font-family: 'Segoe UI', sans-serif;
    margin: 0;
    padding: 0;
}

/* Grille des telechargements - WrapPanel avec Margin="0,20,0,0" */
.downloads-grid[b-bvzvomdlsa] {
    display: flex;
    flex-wrap: wrap;
    margin-top: 20px;
    gap: 0;
}

/* Carte de telechargement - Width="500", Margin="0,0,20,40", Padding="20", CornerRadius="8", DropShadow */
.download-card[b-bvzvomdlsa] {
    width: 500px;
    margin-right: 20px;
    margin-bottom: 40px;
    padding: 20px;
    background-color: #F3F5FB; /* ColorBackgroundBlock */
    border-radius: 8px;
    box-shadow: 0px 3px 6px rgba(223, 223, 223, 0.5); /* DropShadow ColorDropShadow=#DFDFDF */
}

.download-content[b-bvzvomdlsa] {
    display: flex;
    flex-direction: column;
    height: 100%;
}

/* Nom du telechargement - SegoeUI14 = 14pt, Bold */
.download-name[b-bvzvomdlsa] {
    font-size: 13px; /* 14pt a l'echelle Web */
    font-weight: bold;
    font-family: 'Segoe UI', sans-serif;
    color: #000000;
    margin: 0;
    padding: 0;
}

/* Description - SegoeUI14 = 14pt, Margin="0,20,0,0", TextWrapping */
.download-description[b-bvzvomdlsa] {
    font-size: 13px; /* 14pt a l'echelle Web */
    font-family: 'Segoe UI', sans-serif;
    color: #000000;
    margin: 20px 0 0 0;
    word-wrap: break-word;
}

/* Footer avec info et bouton */
.download-footer[b-bvzvomdlsa] {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-top: 20px;
}

/* Info version et date - Gray, Margin="0,20,0,0" */
.download-info[b-bvzvomdlsa] {
    display: flex;
    flex-direction: column;
    font-size: 10px;
    font-family: 'Segoe UI', sans-serif;
    color: gray;
}

/* Bouton telecharger - Padding="4", BorderBrush="Black", BorderThickness="2", CornerRadius="8" */
.btn-download[b-bvzvomdlsa] {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 4px;
    border: 2px solid #000000;
    border-radius: 8px;
    background-color: transparent;
    cursor: pointer;
    transition: background-color 0.2s;
}

.btn-download:hover[b-bvzvomdlsa] {
    background-color: #f0f0f0;
}

.btn-download img[b-bvzvomdlsa] {
    height: 24px;
    width: auto;
}
/* /Pages/Groups/CreateGroup.razor.rz.scp.css */
/* Container principal */
.group-create-container[b-n8febdu5xb] {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 0;
}


/* Contenu principal - Grid avec 2 colonnes (1* et 2*) */
.group-create-content[b-n8febdu5xb] {
    flex: 1;
    display: flex;
    overflow: hidden;
}

/* Colonne gauche - Grid.Column="0", Margin="26,0,0,0" */
.column-left[b-n8febdu5xb] {
    flex: 1;
    margin-left: 26px;
    display: flex;
    flex-direction: column;
}

/* Colonne droite - Grid.Column="1", Margin="20,0,0,0" */
.column-right[b-n8febdu5xb] {
    flex: 2;
    margin-left: 20px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

/* Titre de section - SegoeUI14 = 14pt (~19px), Bold, ColorTextColor=#0277ED */
.section-title[b-n8febdu5xb] {
    font-size: 13px; /* 14pt a l'echelle Web */
    font-weight: bold;
    color: #0277ED; /* ColorTextColor */
    font-family: 'Segoe UI', sans-serif;
    height: 28px;
    line-height: 28px;
}

/* Titre colonne gauche - Margin="0,20,0,0" */
.column-left .section-title[b-n8febdu5xb] {
    margin: 20px 0 0 0;
}

/* Titre colonne droite - Margin="0,20,0,20" */
.column-right .section-title[b-n8febdu5xb] {
    margin: 20px 0 20px 0;
}


/* Container des champs de formulaire - Margin="0,20,0,0", MaxWidth=470 */
.form-fields[b-n8febdu5xb] {
    margin-top: 10px;
    max-width: 470px;
}

/* Groupe de formulaire - Margin="0,20,0,0", MaxWidth=470 */
.form-group[b-n8febdu5xb] {
    margin-top: 20px;
    max-width: 470px;
}

.form-label[b-n8febdu5xb] {
    display: block;
    font-size: 10px;
    font-family: 'Segoe UI', sans-serif;
    color: #707070;
    margin-bottom: 5px;
}

.form-input[b-n8febdu5xb] {
    width: 100%;
    padding: 10px 15px;
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
    border: 1px solid #DBDBDB;
    border-radius: 8px;
    outline: none;
    box-sizing: border-box;
}

.form-input:focus[b-n8febdu5xb] {
    border-color: #0277ED;
}

/* Container SearchBox - MaxWidth=470 */
.search-box-container[b-n8febdu5xb] {
    position: relative;
    max-width: 470px;
    margin-top: 0;
}

/* Message d'erreur utilisateur - Margin="0,10,0,0", SegoeUI14, Italic, ColorButtonCancel */
.user-error-message[b-n8febdu5xb] {
    font-size: 13px; /* 14pt a l'echelle Web */
    font-style: italic;
    color: #FF0000; /* ColorButtonCancel */
    font-family: 'Segoe UI', sans-serif;
    margin: 10px 0 0 0;
}

/* Container liste utilisateurs - Border Margin="0,20,0,0", Padding="20", CornerRadius="8", DropShadow */
.users-list-container[b-n8febdu5xb] {
    flex: 1;
    margin-top: 20px;
    padding: 20px;
    background-color: #F3F5FB; /* ColorBackgroundBlock */
    border-radius: 8px;
    box-shadow: 0px 3px 6px rgba(223, 223, 223, 0.5); /* DropShadowEffect Opacity="0.5" */
    overflow-y: auto;
}

.users-list[b-n8febdu5xb] {
    display: flex;
    flex-direction: column;
}

/* Ligne utilisateur - Height="56", Margin="0,0,4,20", Padding="20,5,20,5", CornerRadius="20" */
.user-row[b-n8febdu5xb] {
    display: flex;
    align-items: center;
    height: 56px;
    padding: 5px 20px;
    margin-right: 4px;
    margin-bottom: 20px;
    background-color: #F3F3F3; /* ColorGreyButton */
    border: 1px solid #707070; /* ColorGreyDark */
    border-radius: 20px;
}

/* Bouton supprimer utilisateur - Column Width="38", Image Height="30" */
.btn-remove-user[b-n8febdu5xb] {
    width: 38px;
    height: 30px;
    padding: 0;
    background: none;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

.btn-remove-user img[b-n8febdu5xb] {
    height: 30px;
    width: auto;
}

.btn-remove-user:hover[b-n8febdu5xb] {
    opacity: 0.7;
}

/* Info utilisateur - Margin="20,0,0,0" */
.user-info[b-n8febdu5xb] {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    margin-left: 20px;
}

/* Nom utilisateur - SegoeUI16 = 16pt (~21px), SemiBold, ColorGreyDark=#707070 */
.user-name[b-n8febdu5xb] {
    font-size: 15px; /* 16pt a l'echelle Web */
    font-weight: 600; /* SemiBold */
    font-family: 'Segoe UI', sans-serif;
    color: #707070; /* ColorGreyDark */
    line-height: 1.2;
}

/* Label Administrateur - Italic, ColorGreyDark=#707070 */
.user-admin-label[b-n8febdu5xb] {
    font-size: 10px;
    font-style: italic;
    font-family: 'Segoe UI', sans-serif;
    color: #707070; /* ColorGreyDark */
    line-height: 1.2;
}

/* Toggle admin */
.user-admin-toggle[b-n8febdu5xb] {
    margin-left: auto;
}

/* /Pages/Groups/EditGroup.razor.rz.scp.css */
/* Container principal */
.group-detail-container[b-cj378hrt12] {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 0;
}


/* Contenu principal - Grid avec 2 colonnes (1* et 2*) */
.group-detail-content[b-cj378hrt12] {
    flex: 1;
    display: flex;
    overflow: hidden;
}

/* Colonne gauche - Grid.Column="0", Margin="26,0,0,0" */
.column-left[b-cj378hrt12] {
    flex: 1;
    margin-left: 26px;
    display: flex;
    flex-direction: column;
}

/* Colonne droite - Grid.Column="1", Margin="20,0,0,0" */
.column-right[b-cj378hrt12] {
    flex: 2;
    margin-left: 20px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

/* Titre de section - SegoeUI14 = 14pt (~19px), Bold, ColorTextColor=#0277ED, Height="28" */
.section-title[b-cj378hrt12] {
    font-size: 13px; /* 14pt a l'echelle Web */
    font-weight: bold;
    color: #0277ED; /* ColorTextColor */
    font-family: 'Segoe UI', sans-serif;
    height: 28px;
    line-height: 28px;
}

/* Titre colonne gauche - Margin="0,20,0,0" */
.column-left .section-title[b-cj378hrt12] {
    margin: 20px 0 0 0;
}

/* Titre colonne droite - Margin="0,20,0,20" */
.column-right .section-title[b-cj378hrt12] {
    margin: 20px 0 20px 0;
}


/* Container des champs de formulaire - Margin="0,20,0,0", MaxWidth=470 */
.form-fields[b-cj378hrt12] {
    margin-top: 10px;
    max-width: 470px;
}

/* Groupe de formulaire - Margin="0,20,0,0", MaxWidth=470 */
.form-group[b-cj378hrt12] {
    margin-top: 20px;
    max-width: 470px;
}

.form-label[b-cj378hrt12] {
    display: block;
    font-size: 10px;
    font-family: 'Segoe UI', sans-serif;
    color: #707070;
    margin-bottom: 5px;
}

.form-input[b-cj378hrt12] {
    width: 100%;
    padding: 10px 15px;
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
    border: 1px solid #DBDBDB;
    border-radius: 8px;
    outline: none;
    box-sizing: border-box;
}

.form-input:focus[b-cj378hrt12] {
    border-color: #0277ED;
}

.form-input:disabled[b-cj378hrt12] {
    background-color: #f5f5f5;
    cursor: not-allowed;
}

/* Container SearchBox - MaxWidth=470 */
.search-box-container[b-cj378hrt12] {
    position: relative;
    max-width: 470px;
    margin-top: 0;
}

/* Message d'erreur utilisateur - Margin="0,15,20,0", SegoeUI14, Italic, ColorButtonCancel */
.user-error-message[b-cj378hrt12] {
    font-size: 13px; /* 14pt a l'echelle Web */
    font-style: italic;
    color: #FF0000; /* ColorButtonCancel */
    font-family: 'Segoe UI', sans-serif;
    margin: 15px 20px 0 0;
}

/* Message de succès utilisateur - Margin="0,15,20,0", SegoeUI14, Italic, ColorGreen */
.user-success-message[b-cj378hrt12] {
    font-size: 13px; /* 14pt a l'echelle Web */
    font-style: italic;
    color: green; /* ColorGreen */
    font-family: 'Segoe UI', sans-serif;
    margin: 15px 20px 0 0;
}

/* Container liste utilisateurs - Border Margin="0,20,0,0", Padding="20", CornerRadius="8", DropShadow */
.users-list-container[b-cj378hrt12] {
    flex: 1;
    margin-top: 20px;
    padding: 20px;
    background-color: #F3F5FB; /* ColorBackgroundBlock */
    border-radius: 8px;
    box-shadow: 0px 3px 6px rgba(223, 223, 223, 0.5); /* DropShadowEffect Opacity="0.5" */
    overflow-y: auto;
}

.users-list[b-cj378hrt12] {
    display: flex;
    flex-direction: column;
}

/* Ligne utilisateur - Height="56", Margin="0,0,4,20", Padding="20,5,20,5", CornerRadius="20" */
.user-row[b-cj378hrt12] {
    display: flex;
    align-items: center;
    height: 56px;
    padding: 5px 20px;
    margin-right: 4px;
    margin-bottom: 20px;
    background-color: #F3F3F3; /* ColorGreyButton */
    border: 1px solid #707070; /* ColorGreyDark */
    border-radius: 20px;
}

/* Bouton supprimer utilisateur - Column Width="38", Image Height="30" */
.btn-remove-user[b-cj378hrt12] {
    width: 38px;
    height: 30px;
    padding: 0;
    background: none;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

.btn-remove-user img[b-cj378hrt12] {
    height: 30px;
    width: auto;
}

.btn-remove-user:hover[b-cj378hrt12] {
    opacity: 0.7;
}

/* Info utilisateur - Margin="20,0,0,0" */
.user-info[b-cj378hrt12] {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    margin-left: 20px;
}

/* Nom utilisateur - SegoeUI16 = 16pt (~21px), SemiBold, ColorGreyDark=#707070 */
.user-name[b-cj378hrt12] {
    font-size: 15px; /* 16pt a l'echelle Web */
    font-weight: 600; /* SemiBold */
    font-family: 'Segoe UI', sans-serif;
    color: #707070; /* ColorGreyDark */
    line-height: 1.2;
}

/* Label Administrateur - Italic, ColorGreyDark=#707070 */
.user-admin-label[b-cj378hrt12] {
    font-size: 10px;
    font-style: italic;
    font-family: 'Segoe UI', sans-serif;
    color: #707070; /* ColorGreyDark */
    line-height: 1.2;
}

/* Toggle admin */
.user-admin-toggle[b-cj378hrt12] {
    margin-left: auto;
}

/* /Pages/Groups/ListGroups.razor.rz.scp.css */
/* Container principal */
.groups-container[b-9mdzducem5] {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 0;
}


/* Contenu principal */
.groups-content[b-9mdzducem5] {
    flex: 1;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

/* Titre liste des groupes - SegoeUI14 = 14pt, Bold, ColorTextColor=#0277ED, Margin="26,20,20,20" */
.list-title[b-9mdzducem5] {
    font-size: 13px; /* 14pt a l'echelle Web */
    font-weight: bold;
    color: #0277ED; /* ColorTextColor */
    font-family: 'Segoe UI', sans-serif;
    margin: 20px 20px 20px 26px;
}


/* Message si pas de groupes - SegoeUI20 = 20pt, SemiBold, centré, Width="800" */
.no-groups-message[b-9mdzducem5] {
    display: flex;
    justify-content: center;
    align-items: center;
    flex: 1;
    text-align: center;
}

.no-groups-message p[b-9mdzducem5] {
    max-width: 800px;
    font-size: 19px; /* 20pt a l'echelle Web */
    font-weight: 600; /* SemiBold */
    font-family: 'Segoe UI', sans-serif;
    color: #000000; /* ColorTextDark */
    margin: 0;
}

/* Container liste groupes - avec scroll, Margin="0,0,20,0" */
.groups-list-container[b-9mdzducem5] {
    flex: 1;
    overflow-y: auto;
    margin-right: 20px;
}

/* Liste en WrapPanel - correspond au WrapPanel WPF */
.groups-list[b-9mdzducem5] {
    display: flex;
    flex-wrap: wrap;
}

/* Carte groupe - Width="450", Margin="0,0,40,40", Padding="40,20,40,10", CornerRadius="12", DropShadow */
.group-card[b-9mdzducem5] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: 450px;
    padding: 20px 40px 10px 40px;
    margin-right: 40px;
    margin-bottom: 40px;
    background-color: #F3F5FB; /* ColorBackgroundBlock */
    border: none;
    border-radius: 12px;
    cursor: pointer;
    transition: background-color 0.2s, box-shadow 0.2s;
    text-align: left;
    box-shadow: 0px 3px 6px rgba(223, 223, 223, 0.5); /* DropShadow ColorDropShadow=#DFDFDF */
}

.group-card:hover[b-9mdzducem5] {
    background-color: #e8ecf5;
    box-shadow: 0px 5px 10px rgba(223, 223, 223, 0.8);
}

/* Nom du groupe - SegoeUI14 = 14pt, Bold */
.group-name[b-9mdzducem5] {
    font-size: 13px; /* 14pt a l'echelle Web */
    font-weight: bold;
    font-family: 'Segoe UI', sans-serif;
    color: #000000; /* ColorTextDark */
    line-height: 1.2;
}

/* Label Administrateur - SegoeUI11 = 11pt, Italic, Margin="0,6,0,0", Height="18" */
.group-admin-label[b-9mdzducem5] {
    font-size: 11px; /* 11pt a l'echelle Web */
    font-style: italic;
    font-family: 'Segoe UI', sans-serif;
    color: #000000; /* ColorTextDark */
    margin-top: 6px;
    min-height: 18px;
    line-height: 1.2;
}

/* Nombre d'utilisateurs - SegoeUI13 = 13pt, Margin="0,30,0,10" */
.group-users[b-9mdzducem5] {
    font-size: 12px; /* 13pt a l'echelle Web */
    font-family: 'Segoe UI', sans-serif;
    color: #000000; /* ColorTextDark */
    margin-top: 30px;
    margin-bottom: 10px;
    line-height: 1.2;
}
/* /Pages/Index.razor.rz.scp.css */
/* ======================== HOME WRAPPER ======================== */
.home-wrapper[b-4nbnl18mya] {
    height: 100vh;
    overflow-y: auto;
    overflow-x: hidden;
    width: 100%;
    background-color: #FFFFFF;
}

/* ======================== HEADER ROW 0 : Connexion ======================== */
/* XAML: Grid Row="0" — Right-aligned buttons, separator line */
.header-top[b-4nbnl18mya] {
    background-color: #FFFFFF;
}

.header-top-right[b-4nbnl18mya] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 20px;
    padding: 20px 40px 0 0;
}

.header-btn[b-4nbnl18mya] {
    display: flex;
    align-items: center;
    text-decoration: none;
    color: inherit;
    background: none;
    border: none;
    cursor: pointer;
}

.header-btn:hover[b-4nbnl18mya] {
    opacity: 0.7;
    text-decoration: none;
    color: inherit;
}

.header-btn-icon[b-4nbnl18mya] {
    height: 16px;
    width: auto;
    object-fit: contain;
}

.header-btn-text[b-4nbnl18mya] {
    margin-left: 5px;
    font-family: 'Roboto', sans-serif;
    /* 9px et non 8px : plancher de lisibilite de l'interface, la mise a l'echelle
       generale aurait amene ce libelle de bouton sous ce seuil */
    font-size: 9px;
    color: #000000;
}

.header-separator[b-4nbnl18mya] {
    height: 1px;
    background-color: #B2B2B2;
    margin-top: 16px;
}

/* ======================== HEADER ROW 1 : Logo + Navigation ======================== */
/* XAML: Grid Row="1" — Logo (1*) + Nav links (2*) */
.header-nav[b-4nbnl18mya] {
    display: grid;
    grid-template-columns: 1fr 2fr;
    background-color: #FFFFFF;
}

.header-nav-logo[b-4nbnl18mya] {
    display: flex;
    align-items: center;
    margin-top: 10px;
    margin-bottom: 10px;
    justify-content: center;
    padding: 5px 0;
}

.header-logo[b-4nbnl18mya] {
    height: 80px;
    object-fit: contain;
}

.header-nav-links[b-4nbnl18mya] {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 40px;
}

.header-nav-link[b-4nbnl18mya] {
    font-family: 'Roboto', sans-serif;
    font-size: 17px;
    color: #000000;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
}

.header-nav-link:hover[b-4nbnl18mya] {
    opacity: 0.7;
}

/* ======================== HERO (XAML Row 2) ======================== */
/* Grid 2 colonnes 50/50 — Gauche: #001E37, Droite: image */
.hero-section[b-4nbnl18mya] {
    display: grid;
    grid-template-columns: 1fr 1fr;
}

.hero-left[b-4nbnl18mya] {
    background-color: #001E37;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding: 60px 80px 60px 40px;
}

.hero-text-block[b-4nbnl18mya] {
    text-align: right;
}

.hero-title[b-4nbnl18mya] {
    font-family: 'Roboto', sans-serif;
    font-size: 23px;
    font-weight: 700;
    color: #70BD95;
    margin: 0;
}

.hero-subtitle[b-4nbnl18mya] {
    font-family: 'Roboto', sans-serif;
    font-size: 23px;
    font-weight: 700;
    color: #FFFFFF;
    margin: 50px 0 0 0;
}

.hero-subtitle-light[b-4nbnl18mya] {
    font-weight: 400;
}

.hero-right[b-4nbnl18mya] {
    overflow: hidden;
    display: flex;
}

.hero-img[b-4nbnl18mya] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* ======================== PRESENTATION (XAML Row 3) ======================== */
/* Fond #E6E6E6, Padding 0,80,0,80, SegoeUI24 (32px), couleur #001E37 */
.presentation-section[b-4nbnl18mya] {
    background-color: #E6E6E6;
    padding: 80px 40px;
}

.presentation-content[b-4nbnl18mya] {
    max-width: 1200px;
    margin: 0 auto;
    text-align: center;
}

.pres-text[b-4nbnl18mya] {
    font-family: 'Roboto', sans-serif;
    font-size: 12px;
    color: #001E37;
    margin: 0;
    line-height: 1.4;
}

.pres-gap[b-4nbnl18mya] {
    margin-top: 40px;
}

/* ======================== FONCTIONNALITES (XAML Row 4) ======================== */
/* Fond White, Padding 0,80,0,80, SegoeUI24 (32px), icons 40px */
.features-section[b-4nbnl18mya] {
    background-color: #FFFFFF;
    padding: 80px 40px;
}

.features-content[b-4nbnl18mya] {
    max-width: 1200px;
    margin: 0 auto;
}

.features-intro[b-4nbnl18mya] {
    font-family: 'Roboto', sans-serif;
    font-size: 12px;
    color: #001E37;
    text-align: center;
    margin: 0 0 30px 0;
}

.features-list[b-4nbnl18mya] {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.feature-row[b-4nbnl18mya] {
    display: flex;
    align-items: center;
}

.feature-row + .feature-row[b-4nbnl18mya] {
    margin-top: 20px;
}

.feature-icon[b-4nbnl18mya] {
    width: 40px;
    height: 40px;
    object-fit: contain;
    flex-shrink: 0;
}

.feature-text[b-4nbnl18mya] {
    font-family: 'Roboto', sans-serif;
    font-size: 12px;
    color: #001E37;
    margin: 0 0 0 20px;
    text-align: left;
}

/* ======================== ARCHITECTURE (XAML Row 5) ======================== */
/* Fond #001E37, Padding 0,60,0,130, SegoeUI28 (37.33px) */
.architecture-section[b-4nbnl18mya] {
    background-color: #001E37;
    padding: 60px 40px 130px;
}

.architecture-header[b-4nbnl18mya] {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 60px;
}

.architecture-icon[b-4nbnl18mya] {
    height: 50px;
    object-fit: contain;
}

.architecture-title[b-4nbnl18mya] {
    font-family: 'Roboto', sans-serif;
    font-size: 12px;
    font-weight: 700;
    color: #FFFFFF;
    margin: 0 0 0 20px;
}

.architecture-diagram[b-4nbnl18mya] {
    display: flex;
    justify-content: center;
}

.diagram-img[b-4nbnl18mya] {
    max-width: 100%;
    height: auto;
}

/* ======================== SLIDESHOW WORKFLOW (XAML Row 6) ======================== */
/* Height=600, Padding 0,90,0,90, Grid 1:2:1, bg dynamique */
.workflow-section[b-4nbnl18mya] {
    height: 600px;
    padding: 45px 0 90px;
    background-color: #FFFFFF;
    display: flex;
    flex-direction: column;
}

.workflow-grid[b-4nbnl18mya] {
    display: grid;
    grid-template-columns: 1fr 2fr 1fr;
    flex: 1;
    align-items: center;
}

.workflow-nav[b-4nbnl18mya] {
    display: flex;
    align-items: center;
    justify-content: center;
}

.workflow-center[b-4nbnl18mya] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 350px;
}

.workflow-header[b-4nbnl18mya] {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 70px;
}

.workflow-icon[b-4nbnl18mya] {
    height: 46px;
    object-fit: contain;
}

.workflow-title[b-4nbnl18mya] {
    font-family: 'Roboto', sans-serif;
    font-size: 17px;
    font-weight: 700;
    color: #001E37;
    margin: 0 0 0 20px;
}

.workflow-texts[b-4nbnl18mya] {
    text-align: center;
}

.workflow-text[b-4nbnl18mya] {
    font-family: 'Roboto', sans-serif;
    font-size: 12px;
    color: #001E37;
    margin: 0;
    line-height: 1.5;
}

/* Boutons circulaires de navigation (Ellipse 66x66, Stroke 2px) */
.nav-circle[b-4nbnl18mya] {
    width: 66px;
    height: 66px;
    border-radius: 50%;
    border-width: 2px;
    border-style: solid;
    background: transparent;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    padding: 0;
    flex-shrink: 0;
}

.nav-circle:hover[b-4nbnl18mya] {
    opacity: 0.7;
}

.nav-circle-navy[b-4nbnl18mya] {
    border-color: #001E37;
}

.nav-circle-white[b-4nbnl18mya] {
    border-color: #FFFFFF;
}

/* Arrow.png 24px, rotated 180° for prev */
.nav-arrow[b-4nbnl18mya] {
    height: 24px;
    object-fit: contain;
}

.nav-arrow-prev[b-4nbnl18mya] {
    transform: rotate(180deg);
}

/* Indicateurs workflow : rectangles 32x3px, Margin 5,0,5,0 */
.workflow-indicators[b-4nbnl18mya] {
    display: flex;
    justify-content: center;
    align-items: center;
}

.workflow-indicator[b-4nbnl18mya] {
    width: 32px;
    height: 3px;
    border: none;
    padding: 0;
    margin: 0 5px;
    cursor: pointer;
    background-color: #B9B9BB;
    transition: background-color 0.2s ease;
}

.workflow-indicator.active[b-4nbnl18mya] {
    background-color: #001E37;
}

/* ======================== SLIDESHOW SCREENSHOTS (XAML Row 7) ======================== */
/* Height=900, Padding 0,40,0,20, fond #001E37, Grid 1:2:1 */
.screenshot-section[b-4nbnl18mya] {
    height: 900px;
    padding: 40px 0 20px;
    background-color: #001E37;
    display: flex;
    flex-direction: column;
}

.screenshot-header[b-4nbnl18mya] {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 30px;
    flex-shrink: 0;
}

.screenshot-header-icon[b-4nbnl18mya] {
    height: 50px;
    object-fit: contain;
}

.screenshot-title[b-4nbnl18mya] {
    font-family: 'Roboto', sans-serif;
    font-size: 12px;
    font-weight: 700;
    color: #FFFFFF;
    margin: 0 0 0 20px;
}

.screenshot-grid[b-4nbnl18mya] {
    display: grid;
    grid-template-columns: 1fr 2fr 1fr;
    flex: 1;
    align-items: center;
    min-height: 0;
}

.screenshot-nav[b-4nbnl18mya] {
    display: flex;
    align-items: center;
    justify-content: center;
}

.screenshot-main[b-4nbnl18mya] {
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    height: 100%;
}

.screenshot-current[b-4nbnl18mya] {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

/* Thumbnails : Height=70, Margin 14,0,14,0, overlay #AA669ECC */
.screenshot-thumbnails[b-4nbnl18mya] {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 30px;
    flex-shrink: 0;
}

.thumbnail-btn[b-4nbnl18mya] {
    position: relative;
    border: none;
    background: none;
    padding: 0;
    margin: 0 14px;
    cursor: pointer;
    height: 70px;
    display: flex;
    align-items: center;
}

.thumbnail-img[b-4nbnl18mya] {
    height: 70px;
    width: auto;
    object-fit: contain;
    display: block;
}

.thumbnail-overlay[b-4nbnl18mya] {
    position: absolute;
    inset: 0;
    background-color: rgba(102, 158, 204, 0.67);
}

/* ======================== PARTENAIRE (XAML Row 8) ======================== */
/* Grid 2 colonnes 50/50, image cover / logo partenaire */
.partner-section[b-4nbnl18mya] {
    display: grid;
    grid-template-columns: 1fr 1fr;
}

.partner-left[b-4nbnl18mya] {
    overflow: hidden;
    display: flex;
}

.partner-img[b-4nbnl18mya] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.partner-right[b-4nbnl18mya] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 40px;
    background-color: #FFFFFF;
}

.partner-title[b-4nbnl18mya] {
    font-family: 'Roboto', sans-serif;
    font-size: 12px;
    font-weight: 700;
    color: #000000;
    margin: 0;
    text-align: center;
}

.partner-logo[b-4nbnl18mya] {
    height: 160px;
    margin-top: 20px;
    object-fit: contain;
}

/* ======================== MENTIONS LEGALES (XAML Row 9) ======================== */
/* Fond #001E37, Padding 0,50,0,50, Grid 2 colonnes */
.legal-section[b-4nbnl18mya] {
    background-color: #001E37;
    padding: 50px 40px;
}

.legal-title[b-4nbnl18mya] {
    font-family: 'Roboto', sans-serif;
    font-size: 12px;
    font-weight: 700;
    color: #FFFFFF;
    text-align: center;
    margin: 0 0 40px 0;
}

.legal-columns[b-4nbnl18mya] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    max-width: 1200px;
    margin: 0 auto;
}

.legal-col[b-4nbnl18mya] {
    text-align: center;
}

.legal-text[b-4nbnl18mya] {
    font-family: 'Roboto', sans-serif;
    font-size: 12px;
    color: #FFFFFF;
    margin: 0;
    line-height: 1.6;
}

/* ======================== RESPONSIVE BASIQUE ======================== */
@media (max-width: 768px) {
    .header-top-right[b-4nbnl18mya] {
        padding: 12px 16px 0;
        gap: 12px;
    }

    .header-nav[b-4nbnl18mya] {
        grid-template-columns: 1fr;
    }

    .header-nav-links[b-4nbnl18mya] {
        justify-content: center;
        gap: 20px;
        padding: 0 16px 10px;
        flex-wrap: wrap;
    }

    .header-nav-link[b-4nbnl18mya] {
        font-size: 12px;
    }

    .header-logo[b-4nbnl18mya] {
        height: 50px;
    }

    .hero-section[b-4nbnl18mya] {
        grid-template-columns: 1fr;
    }

    .hero-left[b-4nbnl18mya] {
        padding: 40px 20px;
        justify-content: center;
    }

    .hero-text-block[b-4nbnl18mya] {
        text-align: center;
    }

    .hero-subtitle[b-4nbnl18mya] {
        margin-top: 24px;
        font-size: 17px;
    }

    .hero-title[b-4nbnl18mya] {
        font-size: 17px;
    }

    .hero-right[b-4nbnl18mya] {
        max-height: 300px;
    }

    .presentation-section[b-4nbnl18mya] {
        padding: 40px 20px;
    }

    .pres-text[b-4nbnl18mya] {
        font-size: 14px;
    }

    .pres-gap[b-4nbnl18mya] {
        margin-top: 24px;
    }

    .features-section[b-4nbnl18mya] {
        padding: 40px 20px;
    }

    .features-intro[b-4nbnl18mya] {
        font-size: 14px;
    }

    .feature-text[b-4nbnl18mya] {
        font-size: 13px;
    }

    .architecture-section[b-4nbnl18mya] {
        padding: 40px 20px 60px;
    }

    .architecture-title[b-4nbnl18mya] {
        font-size: 17px;
    }

    .workflow-section[b-4nbnl18mya] {
        height: auto;
        min-height: 500px;
        padding: 40px 0;
    }

    .workflow-grid[b-4nbnl18mya] {
        grid-template-columns: auto 1fr auto;
        padding: 0 10px;
    }

    .nav-circle[b-4nbnl18mya] {
        width: 44px;
        height: 44px;
    }

    .nav-arrow[b-4nbnl18mya] {
        height: 16px;
    }

    .workflow-title[b-4nbnl18mya] {
        font-size: 17px;
    }

    .workflow-text[b-4nbnl18mya] {
        font-size: 13px;
    }

    .workflow-center[b-4nbnl18mya] {
        height: auto;
    }

    .screenshot-section[b-4nbnl18mya] {
        height: auto;
        min-height: 600px;
        padding: 30px 0 20px;
    }

    .screenshot-grid[b-4nbnl18mya] {
        grid-template-columns: auto 1fr auto;
        padding: 0 10px;
    }

    .screenshot-title[b-4nbnl18mya] {
        font-size: 17px;
    }

    .thumbnail-btn[b-4nbnl18mya] {
        margin: 0 6px;
        height: 40px;
    }

    .thumbnail-img[b-4nbnl18mya] {
        height: 40px;
    }

    .partner-section[b-4nbnl18mya] {
        grid-template-columns: 1fr;
    }

    .partner-left[b-4nbnl18mya] {
        max-height: 250px;
    }

    .partner-title[b-4nbnl18mya] {
        font-size: 17px;
    }

    .partner-logo[b-4nbnl18mya] {
        height: 100px;
    }
}
/* /Pages/Project/BIProject.razor.rz.scp.css */
/* UpperBar est un frere de ce container (et non son enfant) : le container ne
   dispose donc que de la hauteur restante sous l'en-tete. height: 100% le ferait
   deborder de 64 px et provoquerait une barre de defilement permanente. */
.bi-container[b-6q9aee1noo] {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    padding: 0;
}

/* Zone de contenu - Margin="26,20,0,0" */
.bi-content[b-6q9aee1noo] {
    flex: 1;
    margin: 20px 0 0 26px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 30px;
}

/* Section BI */
.bi-section[b-6q9aee1noo] {
    display: flex;
    flex-direction: column;
}

/* Titre de section - SegoeUI14 = 14pt = ~19px, Bold, ColorTextColor=#0277ED */
.section-title[b-6q9aee1noo] {
    font-size: 14px;
    font-weight: bold;
    color: #0277ED;
    font-family: 'Segoe UI', sans-serif;
    margin: 0 0 15px 0;
}

/* Lignes d'URL */
.url-rows[b-6q9aee1noo] {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.url-row[b-6q9aee1noo] {
    display: flex;
    align-items: center;
    gap: 10px;
}

/* Bouton copie - fond #0277ED, 30x30, border-radius 4px */
.btn-copy[b-6q9aee1noo] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    min-width: 30px;
    background-color: #0277ED;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    transition: background-color 0.2s;
}

.btn-copy:hover[b-6q9aee1noo] {
    background-color: #0260c0;
}

.btn-copy img[b-6q9aee1noo] {
    width: 16px;
    height: 16px;
}

/* Label URL - SegoeUI12 = 12pt = ~16px, SemiBold, Width=240 */
.url-label[b-6q9aee1noo] {
    font-size: 12px;
    font-weight: 600;
    font-family: 'Segoe UI', sans-serif;
    width: 240px;
    min-width: 240px;
    color: #000000;
}

/* Valeur URL - SegoeUI12 = 12pt = ~16px */
.url-value[b-6q9aee1noo] {
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
    color: #333333;
    word-break: break-all;
}

/* Selecteur de modele - Width=350 */
.model-selector[b-6q9aee1noo] {
    width: 350px;
    margin-bottom: 15px;
    font-weight: bold;
}

/* Section type de courbe */
.curve-type-section[b-6q9aee1noo] {
    display: flex;
    align-items: center;
    gap: 20px;
    margin: 15px 0;
}

/* Label type de courbe - SegoeUI12, SemiBold */
.curve-type-label[b-6q9aee1noo] {
    font-size: 12px;
    font-weight: 600;
    font-family: 'Segoe UI', sans-serif;
    color: #000000;
}

.curve-type-radios[b-6q9aee1noo] {
    display: flex;
    align-items: center;
    gap: 20px;
}

.radio-label[b-6q9aee1noo] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
    cursor: pointer;
    color: #000000;
}

.radio-label input[type="radio"][b-6q9aee1noo] {
    accent-color: #0277ED;
    cursor: pointer;
}

/* Description rapport */
.report-description[b-6q9aee1noo] {
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
    color: #333333;
    margin: 0 0 15px 0;
}

/* Bouton rapport - Width=240, Padding=10, BorderThickness=1, CornerRadius=15 */
.btn-report[b-6q9aee1noo] {
    width: 240px;
    padding: 10px;
    background-color: transparent;
    color: #000000;
    border: 1px solid #000000;
    border-radius: 15px;
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
    cursor: pointer;
    text-align: center;
    transition: background-color 0.2s;
}

.btn-report:hover[b-6q9aee1noo] {
    background-color: #f0f0f0;
}
/* /Pages/Project/Components/FormProject.razor.rz.scp.css */
/* Container principal - Grid 2 colonnes (aligné sur ProjectDetailView.xaml) */
.form-project-container[b-0eo9235lur] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    height: 100%;
}

/* Section gauche - Margin="26,0,20,0" (XAML Compagnon) */
.form-project-left[b-0eo9235lur] {
    margin: 0 20px 0 26px;
    overflow-y: auto;
}

/* Section droite - Margin="20,0,0,0" (XAML Compagnon)
   height:100% + flex column pour permettre a la liste users de s'etirer */
.form-project-right[b-0eo9235lur] {
    margin: 0 0 0 20px;
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
    min-height: 0;
}

/* Titre de section gauche - SegoeUI14 (19px), Bold, Margin="0,20,0,0" */
.form-project-section-title[b-0eo9235lur] {
    margin: 20px 0 0 0;
    font-family: 'Segoe UI', sans-serif;
    font-size: 14px;
    font-weight: bold;
    color: #0277ED;
}

/* Titre de section droite - Margin="0,20,0,20" */
.form-project-section-title-right[b-0eo9235lur] {
    margin: 20px 0 20px 0;
    font-family: 'Segoe UI', sans-serif;
    font-size: 14px;
    font-weight: bold;
    color: #0277ED;
}

/* Message d'erreur - SegoeUI14, Italic, Margin="0,10,0,0" */
.form-project-error[b-0eo9235lur] {
    margin: 10px 0 0 0;
    font-family: 'Segoe UI', sans-serif;
    font-size: 14px;
    font-style: italic;
    color: #dc3545;
}

/* Avatar - Margin="0,20,0,0" */
.form-project-avatar[b-0eo9235lur] {
    margin: 20px 0 0 0;
}

/* Champs du formulaire - Width max 470px */
.form-project-fields[b-0eo9235lur] {
    max-width: 470px;
}

/* Premier champ - Margin="0,20,0,0" */
.form-project-fields > :first-child[b-0eo9235lur] {
    margin-top: 20px;
}

/* Autres champs - Margin="0,10,0,0" (aligne sur XAML : 10px entre TextBoxEx) */
.form-project-fields > *[b-0eo9235lur] {
    margin-top: 10px;
}

/* Section Personnalisation - Margin="0,40,0,0" (aligne sur XAML Compagnon)
   Override explicite pour neutraliser le margin-bottom hérité de <h5> Bootstrap
   et les regles antérieures de .form-project-section-title */
.form-project-section-title-advanced[b-0eo9235lur] {
    margin: 40px 0 0 0 !important;
}

/* Sous-bloc de champs Personnalisation (couleurs).
   ::deep nécessaire pour traverser le scope CSS du composant enfant FormInputColor :
   la règle cible le .form-color-box du premier FormInputColor et impose 20px sous le titre.
   Le second color picker garde ses 10px (definis dans FormInputColor.razor.css). */
.form-project-fields-advanced[b-0eo9235lur]  .form-color-box {
    margin-top: 10px;
}

.form-project-fields-advanced > :first-child[b-0eo9235lur]  .form-color-box {
    margin-top: 20px;
}
/* /Pages/Project/CreateProject.razor.rz.scp.css */
/* Wrapper flex-column pour transformer la zone de @Body (non-flex dans LeftBarLayout
   .sidebar-content-wrapper) en chaine flex ininterrompue : UpperBar reste a sa
   hauteur intrinseque, .create-project-container recoit le reste de l'espace vertical. */
.create-project-page[b-gu2j0vlqjq] {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
}

/* Container de la page CreateProject - flex child qui prend toute la place verticale
   restante sous UpperBar. min-height:0 permet aux enfants (users-list-container)
   de declencher leur overflow au lieu de pousser le parent */
.create-project-container[b-gu2j0vlqjq] {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 0;
    margin-top: 20px;
}
/* /Pages/Project/CurveSettingProject.razor.rz.scp.css */
/* UpperBar est un frere de ce container (et non son enfant) : le container ne
   dispose donc que de la hauteur restante sous l'en-tete. height: 100% le ferait
   deborder de 64 px et provoquerait une barre de defilement permanente. */
.curve-container[b-lpl9z09i4i] {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    padding: 0;
}

/* Grid 5 rows x 2 cols - remplit tout l'espace restant */
.curve-grid[b-lpl9z09i4i] {
    flex: 1;
    min-height: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto auto auto auto 1fr;
    margin: 20px 0 0 26px;
}

/* Row 0 Col 0 : Titre selection */
.grid-r0-c0[b-lpl9z09i4i] {
    grid-row: 1;
    grid-column: 1;
    display: flex;
    align-items: center;
}

/* Row 0 Col 1 : Titre actions */
.grid-r0-c1[b-lpl9z09i4i] {
    grid-row: 1;
    grid-column: 2;
    display: flex;
    align-items: center;
}

/* Row 1 Col 0 : ComboBox modele - Margin=0,20,0,0 */
.grid-r1-c0[b-lpl9z09i4i] {
    grid-row: 2;
    grid-column: 1;
    margin-top: 20px;
}

/* Row 1-3 Col 1 : WrapPanel boutons - Margin=0,20,0,0 rowspan=3 */
.grid-r1to3-c1[b-lpl9z09i4i] {
    grid-row: 2 / 5;
    grid-column: 2;
    margin-top: 20px;
    align-self: start;
}

/* Row 2 Col 0 : Titre activation - Margin=0,40,0,0 */
.grid-r2-c0[b-lpl9z09i4i] {
    grid-row: 3;
    grid-column: 1;
}

/* Row 3 Col 0 : Checkbox + indice - Margin=0,20,0,0 */
.grid-r3-c0[b-lpl9z09i4i] {
    grid-row: 4;
    grid-column: 1;
    margin-top: 20px;
}

/* Row 4 Col 0-1 : Graphique - colspan=2, remplit toute la hauteur restante */
.grid-r4-full[b-lpl9z09i4i] {
    grid-row: 5;
    grid-column: 1 / 3;
    position: relative;
    min-height: 0;
}

/* Titre de section - SegoeUI14 = ~19px, Bold, ColorTextColor=#0277ED */
.section-title[b-lpl9z09i4i] {
    font-size: 14px;
    font-weight: bold;
    color: #0277ED;
    font-family: 'Segoe UI', sans-serif;
    margin: 0;
}

/* Titre avec espacement supplementaire - Margin=0,40,0,0 */
.section-title-spaced[b-lpl9z09i4i] {
    margin-top: 40px;
}

/* ComboBox modele - Width=350 */
.model-combo[b-lpl9z09i4i] {
    max-width: 350px;
}

/* Checkbox + Indice sur une ligne - StackPanel Orientation=Horizontal */
.activation-row[b-lpl9z09i4i] {
    display: flex;
    align-items: center;
    gap: 20px;
}

.checkbox-group[b-lpl9z09i4i] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.checkbox-group input[type="checkbox"][b-lpl9z09i4i] {
    width: 18px;
    height: 18px;
    accent-color: #0277ED;
    cursor: pointer;
}

/* SegoeUI14 = ~19px */
.checkbox-label[b-lpl9z09i4i] {
    font-size: 14px;
    font-family: 'Segoe UI', sans-serif;
    cursor: pointer;
}

/* ComboBox indice - Width=225 Margin=20,0,0,0 */
.indice-combo[b-lpl9z09i4i] {
    width: 225px;
}

/* WrapPanel boutons */
.actions-wrap[b-lpl9z09i4i] {
    display: flex;
    flex-wrap: wrap;
    align-content: flex-start;
}

/* Bouton action - Width=200, Padding=10, BorderBrush=Black, BorderThickness=1, CornerRadius=15 */
.btn-action[b-lpl9z09i4i] {
    width: 200px;
    padding: 10px;
    background-color: transparent;
    color: #000000;
    border: 1px solid #000000;
    border-radius: 15px;
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
    cursor: pointer;
    text-align: center;
    transition: background-color 0.2s;
    margin: 0 20px 20px 0;
}

.btn-action:hover[b-lpl9z09i4i] {
    background-color: #f0f0f0;
}

.btn-action:disabled[b-lpl9z09i4i] {
    opacity: 0.5;
    cursor: not-allowed;
}

/* Carte du graphique - positionnee en absolu pour casser la boucle Chart.js */
.chart-card[b-lpl9z09i4i] {
    position: absolute;
    top: 20px;
    left: 0;
    right: 10px;
    bottom: 10px;
    padding: 20px;
    background-color: #F3F5FB;
    border-radius: 12px;
    box-shadow: 0px 3px 6px rgba(223, 223, 223, 0.5);
    box-sizing: border-box;
}

/* LineChart remplit toute la carte (taille fixee par le positionnement absolu) */
[b-lpl9z09i4i] .curve-line-chart {
    width: 100% !important;
    height: 100% !important;
}

/* Message graphique vide - FontStyle=Italic Foreground=ColorGreyDark SegoeUI14 */
.empty-chart[b-lpl9z09i4i] {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: #666666;
    font-style: italic;
    font-size: 14px;
    font-family: 'Segoe UI', sans-serif;
}
/* /Pages/Project/EditProject.razor.rz.scp.css */
/* Wrapper flex-column pour transformer la zone de @Body (non-flex dans LeftBarLayout
   .sidebar-content-wrapper) en chaine flex ininterrompue : UpperBar reste a sa
   hauteur intrinseque, .edit-project-container recoit le reste de l'espace vertical. */
.edit-project-page[b-wrjcee92w2] {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
}

/* Container de la page EditProject - flex child qui prend toute la place verticale
   restante sous UpperBar. min-height:0 permet aux enfants (users-list-container)
   de declencher leur overflow au lieu de pousser le parent */
.edit-project-container[b-wrjcee92w2] {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 0;
    margin-top: 20px;
}
/* /Pages/Project/EditTypologies.razor.rz.scp.css */
/* ===========================================
   EditTypologies - Style pour la page de gestion des typologies
   Basé sur ProjectTypologyView.xaml du Compagnon
   =========================================== */

/* Enveloppe de la page (d-flex flex-column edit-project) : relais de hauteur entre le wrapper
   de contenu du layout et la grille des deux colonnes. Sans flex: 1 elle se limite à la hauteur
   de son contenu et la liste des typologies n'atteint pas le bas de la fenêtre. */
.edit-project[b-fd7qwackfh] {
    flex: 1;
    min-height: 0;
}

/* Layout principal en deux colonnes */
.typologies-container[b-fd7qwackfh] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    /* flex: 1 et non height: calc(100vh - 250px) : la soustraction figeait une hauteur
       approximative, indépendante de la hauteur réelle de l'en-tête et des marges du layout,
       d'où un bloc gris qui s'arrêtait avant le bas de la fenêtre. */
    flex: 1;
    min-height: 0;
    margin-top: 20px;
}

/* Zone gauche - Formulaires de creation */
.typologies-left[b-fd7qwackfh] {
    margin-left: 26px;
    margin-right: 20px;
    overflow-y: auto;
}

/* Zone droite - Liste des typologies */
.typologies-right[b-fd7qwackfh] {
    margin-left: 20px;
    margin-right: 20px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

/* Titres de section - SegoeUI14 Bold, couleur bleue (ColorTextColor dans XAML) */
/* SegoeUI14 = 14pt (pas 14px) */
.section-title[b-fd7qwackfh] {
    font-family: 'Segoe UI', sans-serif;
    font-size: 13px; /* 14pt a l'echelle Web */
    font-weight: 700;
    color: #0277ED;
    margin-top: 20px;
    margin-bottom: 0;
    height: 28px;
    line-height: 28px;
}

/* Espacement supplementaire avant "Creer un statut" (margin-top: 40px dans XAML) */
.section-title-status[b-fd7qwackfh] {
    margin-top: 40px;
}

/* Messages d'erreur - SegoeUI12 Italic, rouge */
/* SegoeUI12 = 12pt (pas 12px) */
.error-message[b-fd7qwackfh] {
    font-family: 'Segoe UI', sans-serif;
    font-size: 12px; /* 12pt a l'echelle Web */
    font-style: italic;
    color: #dc3545;
    margin-top: 20px;
    margin-bottom: 0;
}

/* Section de formulaire avec les champs */
.form-section[b-fd7qwackfh] {
    max-width: 470px;
}

/* Espacement entre les champs de formulaire (margin-top: 20px dans XAML) */
/* ::deep et non :deep(...) : traverse la portee du composant enfant */
.form-section[b-fd7qwackfh] >  .custom-form-group {
    margin-top: 20px;
    margin-bottom: 0;
}

/* Bouton Creer - Border noir 1px, border-radius 12px, padding 40px/10px */
/* SegoeUI16 = 16pt (pas 16px) */
.btn-create[b-fd7qwackfh] {
    margin-top: 20px;
    padding: 10px 40px;
    background-color: transparent;
    border: 1px solid #000;
    border-radius: 12px;
    font-family: 'Segoe UI', sans-serif;
    font-size: 15px; /* 16pt a l'echelle Web */
    cursor: pointer;
    transition: background-color 0.2s;
}

.btn-create:hover[b-fd7qwackfh] {
    background-color: #f0f0f0;
}

/* En-tete de la liste (titre + boutons) */
.list-header[b-fd7qwackfh] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 20px;
}

.list-header .section-title[b-fd7qwackfh] {
    margin-top: 0;
}

.header-buttons[b-fd7qwackfh] {
    display: flex;
    gap: 10px;
}

/* Boutons icone (charger/sauvegarder) - fond bleu, border-radius 4px, padding 4px */
.btn-icon[b-fd7qwackfh] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    padding: 4px;
    background-color: #0277ED;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    transition: background-color 0.2s;
}

.btn-icon:hover[b-fd7qwackfh] {
    background-color: #0056b3;
}

.icon-22px[b-fd7qwackfh] {
    width: 22px;
    height: 22px;
}

.icon-24px[b-fd7qwackfh] {
    width: 24px;
    height: 24px;
}

.icon-20px[b-fd7qwackfh] {
    width: 20px;
    height: 20px;
}

/* Container de la liste - fond gris clair, border-radius 8px, padding 20px, ombre */
.typologies-list-container[b-fd7qwackfh] {
    flex: 1;
    margin-top: 20px;
    margin-right: 10px;
    margin-bottom: 10px;
    padding: 20px;
    background-color: #f3f5fb;
    border-radius: 8px;
    box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.3);
    overflow-x: hidden;
    overflow-y: auto;
}

/* En-tete de typologie dans l'accordion - SegoeUI14 SemiBold */
.typology-header[b-fd7qwackfh] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    padding: 10px 0;
}

/* SegoeUI14 SemiBold = 14pt */
.typology-name[b-fd7qwackfh] {
    font-family: 'Segoe UI', sans-serif;
    font-size: 13px; /* 14pt a l'echelle Web */
    font-weight: 600;
    margin-left: 10px;
}

.typology-actions[b-fd7qwackfh] {
    display: flex;
    align-items: center;
    gap: 20px;
}

/* Boutons d'action (edit/delete) - transparents */
.btn-action[b-fd7qwackfh] {
    background: transparent;
    border: none;
    padding: 0;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

.btn-action:hover[b-fd7qwackfh] {
    opacity: 0.7;
}

/* Liste des statuts - margin-left 30px */
.status-list[b-fd7qwackfh] {
    margin-left: 30px;
}

/* Item de statut - padding 20,4,0,4 dans XAML, border-radius 10px */
.status-item[b-fd7qwackfh] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 4px 0 4px 20px;
    margin-top: 10px;
    border-radius: 10px;
}

/* Alternance des couleurs de fond (blanc / transparent) */
.status-item-even[b-fd7qwackfh] {
    background-color: #fff;
}

.status-item-odd[b-fd7qwackfh] {
    background-color: transparent;
}

/* Info du statut (radio, couleur, nom) */
.status-info[b-fd7qwackfh] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 1;
    min-width: 0;
}

.status-radio[b-fd7qwackfh] {
    cursor: pointer;
}

/* Rectangle de couleur - 24x24px */
.status-color[b-fd7qwackfh] {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
}

/* Nom du statut - SegoeUI14 = 14pt - prend l'espace disponible (XAML col 0 Width="*") */
.status-name[b-fd7qwackfh] {
    font-family: 'Segoe UI', sans-serif;
    font-size: 13px; /* 14pt a l'echelle Web */
    flex: 1;
    min-width: 0;
}

/* Label "Statut d'etape" - italic, colonne fixe 80px centrée (XAML col 1 Width="80") */
.status-step-label[b-fd7qwackfh] {
    font-style: italic;
    width: 80px;
    text-align: center;
    white-space: nowrap;
}

/* Label de ponderation - italic gris, colonne fixe 60px centrée (XAML col 2 Width="60") */
.status-weighting[b-fd7qwackfh] {
    font-style: italic;
    color: #666;
    width: 60px;
    margin-left: 20px;
    text-align: center;
    white-space: nowrap;
}

/* Actions du statut (fleches, edit, delete) - espacements selon XAML */
.status-actions[b-fd7qwackfh] {
    display: flex;
    align-items: center;
}

/* Boutons fleches */
.btn-arrow[b-fd7qwackfh] {
    background: transparent;
    border: none;
    padding: 0;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Bouton fleche bas - margin-left 10px selon XAML */
.btn-arrow:not(.arrow-up)[b-fd7qwackfh] {
    margin-left: 10px;
}

.btn-arrow:hover:not(.btn-disabled)[b-fd7qwackfh] {
    opacity: 0.7;
}

.btn-disabled[b-fd7qwackfh] {
    opacity: 0.25;
    cursor: not-allowed;
}

/* Fleche vers le haut (rotation 180deg) - applique sur l'image dans le bouton */
.arrow-up img[b-fd7qwackfh] {
    transform: rotate(180deg);
}

/* Espacement avant le bouton edit - margin-left 40px selon XAML */
.btn-action-edit[b-fd7qwackfh] {
    margin-left: 40px;
}

/* Espacement avant le bouton delete dans les statuts - margin-left 20px selon XAML */
.btn-action-delete-status[b-fd7qwackfh] {
    margin-left: 20px;
}

/* Espacement avant le bouton delete dans l'en-tete de typologie */
.btn-action-delete[b-fd7qwackfh] {
    margin-left: 0;
}

/* Override des styles de l'accordion BlazorBootstrap */
[b-fd7qwackfh] .accordion-button {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

[b-fd7qwackfh] .accordion-body {
    padding: 1px !important;
}

[b-fd7qwackfh] .accordion-item {
    margin-bottom: 10px;
    border: none;
}

[b-fd7qwackfh] .accordion-button:not(.collapsed) {
    background-color: transparent;
    box-shadow: none;
}

[b-fd7qwackfh] .accordion-button:focus {
    box-shadow: none;
}
/* /Pages/Project/ExportProject.razor.rz.scp.css */
/* ===========================================
   ExportProject - Style pour la page d'export
   Basé sur ProjectExportView.xaml du Compagnon
   =========================================== */

/* Page entière - prend toute la hauteur du wrapper parent */
.export-page[b-2oxomf5c2k] {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
}

/* Corps de la page sous l'UpperBar */
.export-body[b-2oxomf5c2k] {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    overflow: hidden;
}

/* Zone de contenu - Grid avec 2 colonnes */
.export-content[b-2oxomf5c2k] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-top: 20px;
    flex: 1;
    min-height: 0;
    overflow: hidden;
}

/* Colonne gauche */
.left-column[b-2oxomf5c2k] {
    margin-left: 26px;
    margin-right: 20px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.left-scroll[b-2oxomf5c2k] {
    overflow-y: auto;
    padding-right: 4px;
}

/* Colonne droite */
.right-column[b-2oxomf5c2k] {
    margin-left: 20px;
    margin-right: 10px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.right-scroll[b-2oxomf5c2k] {
    overflow-y: auto;
    padding-right: 4px;
}

/* Titre de section */
.section-title[b-2oxomf5c2k] {
    font-size: 14px;
    font-weight: bold;
    color: #0277ED;
    font-family: 'Segoe UI', sans-serif;
    margin: 0;
}

/* Sous-titre de section */
.subsection-title[b-2oxomf5c2k] {
    font-size: 12px;
    font-weight: bold;
    color: #0277ED;
    font-family: 'Segoe UI', sans-serif;
    margin: 0;
}

.mt-section[b-2oxomf5c2k] {
    margin-top: 40px;
}

/* Toolbar - titre + boutons alignés */
.toolbar-row[b-2oxomf5c2k] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 20px;
}

.toolbar-buttons[b-2oxomf5c2k] {
    display: flex;
    gap: 10px;
}

/* Message d'erreur des paramètres IFC - ErrorParam du Compagnon : ColorButtonCancel=#FF0000, SegoeUI12, Margin="0,10,0,0" */
.param-error-text[b-2oxomf5c2k] {
    color: #FF0000;
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
    margin: 10px 0 0 0;
}

/* Bouton icône */
.btn-icon[b-2oxomf5c2k] {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 4px;
    background-color: #0277ED;
    border: 1px solid #999;
    border-radius: 4px;
    cursor: pointer;
    transition: background-color 0.2s;
}

.btn-icon:hover[b-2oxomf5c2k] {
    background-color: #0260c0;
}

.btn-icon img[b-2oxomf5c2k] {
    height: 22px;
}

.btn-icon-add img[b-2oxomf5c2k] {
    height: 28px;
}

/* Bouton icône suppression */
.btn-icon-delete[b-2oxomf5c2k] {
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: transparent;
    border: none;
    cursor: pointer;
    flex-shrink: 0;
}

.btn-icon-delete img[b-2oxomf5c2k] {
    height: 30px;
}

/* Radio buttons row */
.radio-row[b-2oxomf5c2k] {
    display: flex;
    align-items: center;
    margin-top: 20px;
    gap: 10px;
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
}

.radio-label[b-2oxomf5c2k] {
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
}

.radio-option[b-2oxomf5c2k] {
    display: flex;
    align-items: center;
    gap: 5px;
    margin-left: 20px;
    cursor: pointer;
}

.radio-option input[type="radio"][b-2oxomf5c2k] {
    cursor: pointer;
}

/* Checkbox grid - 2 colonnes */
.checkbox-grid[b-2oxomf5c2k] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px 20px;
    margin-top: 10px;
}

.checkbox-item[b-2oxomf5c2k] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 11px;
    font-family: 'Segoe UI', sans-serif;
    cursor: pointer;
}

.checkbox-item input[type="checkbox"][b-2oxomf5c2k] {
    cursor: pointer;
    width: 16px;
    height: 16px;
}

/* Section formulaire */
.form-section[b-2oxomf5c2k] {
    max-width: 470px;
    margin-top: 10px;
}

/* ::deep et non :deep(...) : traverse la portee du composant enfant */
.form-section[b-2oxomf5c2k] >  .custom-form-group {
    margin-top: 0;
    margin-bottom: 0;
}

/* Row 13 : Typology (col 0) + Indice (col 1) side by side */
.typology-indice-row[b-2oxomf5c2k] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-top: 10px;
    align-items: center;
}

.typology-add-cell[b-2oxomf5c2k] {
    display: flex;
    align-items: center;
    gap: 10px;
}

.typology-input-wrap[b-2oxomf5c2k] {
    flex: 1;
    min-width: 0;
}

/* ::deep et non :deep(...) : traverse la portee du composant enfant */
.typology-input-wrap[b-2oxomf5c2k] >  .custom-form-group {
    margin-top: 0;
    margin-bottom: 0;
}

/* ::deep et non :deep(...) : traverse la portee du composant enfant */
.indice-cell[b-2oxomf5c2k] >  .custom-form-group {
    margin-top: 0;
    margin-bottom: 0;
}

/* Typology list */
.typology-list[b-2oxomf5c2k] {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 10px;
    padding: 8px;
    min-height: 60px;
    border: 1px solid #999;
    border-radius: 8px;
}

.typology-tag[b-2oxomf5c2k] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    background-color: #F3F5FB;
    border-radius: 6px;
    box-shadow: 0px 3px 6px rgba(223, 223, 223, 0.5);
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
    color: #555;
}

.typology-tag-remove[b-2oxomf5c2k] {
    background: transparent;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
}

.typology-tag-remove img[b-2oxomf5c2k] {
    height: 20px;
}

/* Properties list */
.properties-list[b-2oxomf5c2k] {
    margin-top: 10px;
    padding: 8px;
    min-height: 60px;
    border: 1px solid #999;
    border-radius: 8px;
}

/* Property row */
.property-row[b-2oxomf5c2k] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px;
}

.property-field[b-2oxomf5c2k] {
    flex: 1;
    min-width: 0;
}

/* ::deep et non :deep(...) : traverse la portee du composant enfant */
.property-field[b-2oxomf5c2k] >  .custom-form-group {
    margin-top: 0;
    margin-bottom: 0;
}

/* Séparateur */
.separator[b-2oxomf5c2k] {
    margin: 10px 0;
    border: none;
    border-top: 1px solid #ccc;
    flex-shrink: 0;
}

/* Zone d'action en bas */
.action-bar[b-2oxomf5c2k] {
    display: flex;
    justify-content: flex-end;
    padding: 0 10px 10px 0;
    flex-shrink: 0;
}

/* Bouton créer tâche */
.btn-create-task[b-2oxomf5c2k] {
    padding: 10px 40px;
    background-color: transparent;
    color: #000;
    border: 1px solid #000;
    border-radius: 15px;
    font-size: 15px;
    font-family: 'Segoe UI', sans-serif;
    cursor: pointer;
    transition: background-color 0.2s;
}

.btn-create-task:hover[b-2oxomf5c2k] {
    background-color: #f0f0f0;
}

.btn-create-task:disabled[b-2oxomf5c2k] {
    color: #999;
    border-color: #999;
    cursor: default;
    background-color: transparent;
}

/* No items text */
.no-items-text[b-2oxomf5c2k] {
    text-align: center;
    color: #666;
    font-style: italic;
    padding: 20px 0;
    font-family: 'Segoe UI', sans-serif;
    font-size: 10px;
}
/* /Pages/Project/IFCProject.razor.rz.scp.css */
/* UpperBar est un frere de ce container (et non son enfant) : le container ne
   dispose donc que de la hauteur restante sous l'en-tete. height: 100% le ferait
   deborder de 64 px et provoquerait une barre de defilement permanente. */
.ifc-container[b-8uvnoyizkc] {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    padding: 0;
}

/* Messages d'erreur contextuels des 2 formulaires (creation et modification).
   Conservee : ErrorCreateMessage et ErrorModifyMessage restent rendus dans le corps
   de la page, pres de leur formulaire respectif, et non dans UpperBar. */
.error-message[b-8uvnoyizkc] {
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
    color: #FF0000;
    margin: 10px 0 0 0;
}

/* Contenu principal - 2 colonnes */
.ifc-content[b-8uvnoyizkc] {
    flex: 1;
    margin-top: 20px;
    display: flex;
    gap: 20px;
    min-height: 0;
}

/* Colonne gauche - Margin="26,0,20,0" */
.ifc-left[b-8uvnoyizkc] {
    flex: 1;
    margin-left: 26px;
    display: flex;
    flex-direction: column;
}

/* Colonne droite - Margin="20,0,0,0" */
.ifc-right[b-8uvnoyizkc] {
    flex: 1;
    margin-right: 10px;
    display: flex;
    flex-direction: column;
    min-height: 0;
}

/* Titre de section - SegoeUI14 = 14pt = ~19px, Bold, ColorTextColor=#0277ED */
.section-title[b-8uvnoyizkc] {
    font-size: 14px;
    font-weight: bold;
    color: #0277ED;
    font-family: 'Segoe UI', sans-serif;
    margin: 20px 0 0 0;
    height: 28px;
}

/* Formulaire de creation */
.create-form[b-8uvnoyizkc] {
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin-top: 20px;
}

/* Bouton creer - Width=240, Padding=10, BorderThickness=1, CornerRadius=15 */
.btn-create[b-8uvnoyizkc] {
    width: 240px;
    padding: 10px;
    background-color: transparent;
    color: #000000;
    border: 1px solid #000000;
    border-radius: 15px;
    font-size: 15px;
    font-family: 'Segoe UI', sans-serif;
    cursor: pointer;
    text-align: center;
    transition: background-color 0.2s;
}

.btn-create:hover[b-8uvnoyizkc] {
    background-color: #f0f0f0;
}

.btn-create:disabled[b-8uvnoyizkc] {
    opacity: 0.5;
    cursor: not-allowed;
}

/* Carte des fichiers - Padding=20, Background=ColorBackgroundBlock, CornerRadius=8, DropShadow */
.files-card[b-8uvnoyizkc] {
    flex: 1;
    margin-top: 10px;
    padding: 20px;
    background-color: #F3F5FB;
    border-radius: 8px;
    box-shadow: 0px 3px 6px rgba(223, 223, 223, 0.5);
    overflow-y: auto;
    margin-right: 10px;
    margin-bottom: 10px;
}

/* Item fichier - Margin="0,10,0,0", Padding="20,10,20,10", CornerRadius="10" */
.file-item[b-8uvnoyizkc] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 20px;
    margin-top: 10px;
    border-radius: 10px;
}

.file-item-alt[b-8uvnoyizkc] {
    background-color: #FFFFFF;
}

.file-info[b-8uvnoyizkc] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

/* Nom du fichier - SegoeUI12 = 12pt = ~16px, Bold */
.file-item-name[b-8uvnoyizkc] {
    font-size: 12px;
    font-weight: bold;
    font-family: 'Segoe UI', sans-serif;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Commentaire - SegoeUI12 = 12pt = ~16px */
.file-item-comment[b-8uvnoyizkc] {
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
    color: #666666;
}

/* Actions sur les fichiers */
.file-actions[b-8uvnoyizkc] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-left: 10px;
}

/* Bouton Horus - Padding=6, Border=ColorButtonNeutral, CornerRadius=15 */
.btn-file-horus[b-8uvnoyizkc] {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 44px;
    padding: 6px;
    background-color: transparent;
    border: 1px solid #888888;
    border-radius: 15px;
    cursor: pointer;
    transition: background-color 0.2s;
}

.btn-file-horus:hover[b-8uvnoyizkc] {
    background-color: #f0f0f0;
}

.btn-file-horus img[b-8uvnoyizkc] {
    height: 30px;
    object-fit: contain;
}

/* Bouton action fichier - Padding=10, Background=ColorButtonValid, CornerRadius=15 */
.btn-file-action[b-8uvnoyizkc] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    background-color: #0277ED;
    border: none;
    border-radius: 15px;
    cursor: pointer;
    transition: background-color 0.2s;
    padding: 10px;
}

.btn-file-action:hover[b-8uvnoyizkc] {
    background-color: #0260c0;
}

.btn-file-action img[b-8uvnoyizkc] {
    height: 24px;
}

/* Bouton supprimer - pas de fond, juste l'icone */
.btn-file-delete[b-8uvnoyizkc] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    background-color: transparent;
    border: none;
    cursor: pointer;
}

.btn-file-delete img[b-8uvnoyizkc] {
    height: 44px;
}

/* Message pas de fichiers */
.no-files[b-8uvnoyizkc] {
    text-align: center;
    color: #666666;
    font-style: italic;
    padding: 40px 0;
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
}
/* /Pages/Project/Informations/ShowInformations.razor.rz.scp.css */
/* ===========================================
   ShowInformations - Style de la page d'informations projet
   Base sur ProjectStatisticsView.xaml du Compagnon
   =========================================== */

/* UpperBar est un frere de ce container (et non son enfant) : le container ne
   dispose donc que de la hauteur restante sous l'en-tete. height: 100% le ferait
   deborder de 64 px et provoquerait une barre de defilement permanente. */
.informations-container[b-lqdx1k35ut] {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    padding: 0;
}

/* Zone de contenu - Margin="26,0,0,0" cote XAML */
.informations-content[b-lqdx1k35ut] {
    flex: 1;
    min-height: 0;
    margin: 20px 0 0 26px;
    overflow-y: auto;
}

/* Titre de section - SegoeUI14 = 14pt, Bold, ColorTextColor=#0277ED */
.section-title[b-lqdx1k35ut] {
    font-size: 14px;
    font-weight: bold;
    color: #0277ED;
    font-family: 'Segoe UI', sans-serif;
    margin: 0;
}

/* Titre avec espacement supplementaire - Margin="0,40,0,0" */
.section-title-spaced[b-lqdx1k35ut] {
    margin-top: 40px;
}

/* Grille libelle / valeur - ColumnDefinitions 240 + * cote XAML */
.info-grid[b-lqdx1k35ut] {
    display: grid;
    grid-template-columns: 240px 1fr;
    row-gap: 10px;
    column-gap: 10px;
    margin-top: 20px;
    align-items: start;
}

/* Libelle - SegoeUI14 Bold */
.info-label[b-lqdx1k35ut] {
    font-size: 12px;
    font-weight: bold;
    font-family: 'Segoe UI', sans-serif;
}

/* Valeur - SegoeUI14 */
.info-value[b-lqdx1k35ut] {
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
}

/* Ligne auteur du dernier statut - FontStyle=Italic FontWeight=Light cote XAML */
.info-value-author[b-lqdx1k35ut] {
    font-style: italic;
    font-weight: 300;
}

/* ComboBox modele - Width=320 cote XAML */
.model-combo[b-lqdx1k35ut] {
    max-width: 320px;
    margin-top: 20px;
}
/* /Pages/Project/InitializeProject.razor.rz.scp.css */
/* ===========================================
   InitializeProject - Style pour la page d'initialisation
   Basé sur ProjectInitialisationView.xaml du Compagnon
   =========================================== */

/* Page entière - prend toute la hauteur du wrapper parent */
.init-page[b-xxz7ldhqdk] {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
}

/* Corps de la page sous l'UpperBar */
.init-body[b-xxz7ldhqdk] {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    overflow: hidden;
}

/* Zone de contenu - Grid avec 2 colonnes (1* et 1*), remplit l'espace restant */
.init-content[b-xxz7ldhqdk] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-top: 20px;
    flex: 1;
    min-height: 0;
    overflow: hidden;
}

/* Colonne gauche */
.left-column[b-xxz7ldhqdk] {
    margin-left: 26px;
    margin-right: 20px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.left-scroll[b-xxz7ldhqdk] {
    overflow-y: auto;
    padding-right: 4px;
}

/* Colonne droite */
.right-column[b-xxz7ldhqdk] {
    margin-left: 20px;
    margin-right: 10px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

/* Titre de section - SegoeUI14 = 14pt, Bold, ColorTextColor=#0277ED */
.section-title[b-xxz7ldhqdk] {
    font-size: 14px;
    font-weight: bold;
    color: #0277ED;
    font-family: 'Segoe UI', sans-serif;
    margin: 0;
}

/* Sous-titre de section */
.subsection-title[b-xxz7ldhqdk] {
    font-size: 12px;
    font-weight: bold;
    color: #0277ED;
    font-family: 'Segoe UI', sans-serif;
    margin: 0;
}

.mt-section[b-xxz7ldhqdk] {
    margin-top: 40px;
}

/* Toolbar - titre + boutons alignés */
.toolbar-row[b-xxz7ldhqdk] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 20px;
}

.toolbar-buttons[b-xxz7ldhqdk] {
    display: flex;
    gap: 10px;
}

/* Message d'erreur des groupes - ErrorLink du Compagnon : ColorButtonCancel=#FF0000, SegoeUI12, Margin="0,10,0,0" */
.group-error-text[b-xxz7ldhqdk] {
    color: #FF0000;
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
    margin: 10px 0 0 0;
}

/* Bouton icône (style WPF : fond bleu, bord, radius 4) */
.btn-icon[b-xxz7ldhqdk] {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 4px;
    background-color: #0277ED;
    border: 1px solid #999;
    border-radius: 4px;
    cursor: pointer;
    transition: background-color 0.2s;
}

.btn-icon:hover[b-xxz7ldhqdk] {
    background-color: #0260c0;
}

.btn-icon img[b-xxz7ldhqdk] {
    height: 22px;
}

.btn-icon-add img[b-xxz7ldhqdk] {
    height: 28px;
}

/* Bouton icône petit */
.btn-icon-sm[b-xxz7ldhqdk] {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 4px 10px;
    background-color: #0277ED;
    border: 1px solid #999;
    border-radius: 4px;
    cursor: pointer;
    transition: background-color 0.2s;
}

.btn-icon-sm:hover[b-xxz7ldhqdk] {
    background-color: #0260c0;
}

.btn-icon-sm img[b-xxz7ldhqdk] {
    height: 22px;
}

/* Bouton icône suppression */
.btn-icon-delete[b-xxz7ldhqdk] {
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: transparent;
    border: none;
    cursor: pointer;
}

.btn-icon-delete img[b-xxz7ldhqdk] {
    height: 30px;
}

/* Flèches haut/bas */
.arrow-up[b-xxz7ldhqdk] {
    transform: rotate(90deg);
}

.arrow-down[b-xxz7ldhqdk] {
    transform: rotate(-90deg);
}

/* Section formulaire */
.form-section[b-xxz7ldhqdk] {
    max-width: 470px;
    margin-top: 10px;
}

/* ::deep et non :deep(...) : traverse la portee du composant enfant */
.form-section[b-xxz7ldhqdk] >  .custom-form-group {
    margin-top: 0;
    margin-bottom: 0;
}

/* Radio buttons row */
.radio-row[b-xxz7ldhqdk] {
    display: flex;
    align-items: center;
    margin-top: 20px;
    gap: 10px;
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
}

.radio-label[b-xxz7ldhqdk] {
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
}

.radio-option[b-xxz7ldhqdk] {
    display: flex;
    align-items: center;
    gap: 5px;
    margin-left: 20px;
    cursor: pointer;
}

.radio-option input[type="radio"][b-xxz7ldhqdk] {
    cursor: pointer;
}

/* Data params grid - 2 colonnes */
.data-params-grid[b-xxz7ldhqdk] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px 20px;
    margin-top: 10px;
}

/* ::deep et non :deep(...) : traverse la portee du composant enfant */
.data-param-item[b-xxz7ldhqdk] >  .custom-form-group {
    margin-top: 0;
    margin-bottom: 0;
}

/* Zone add row */
.zone-add-row[b-xxz7ldhqdk] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: 20px;
}

.zone-input-wrap[b-xxz7ldhqdk] {
    max-width: 470px;
    flex: 1;
}

/* ::deep et non :deep(...) : traverse la portee du composant enfant */
.zone-input-wrap[b-xxz7ldhqdk] >  .custom-form-group {
    margin-top: 0;
    margin-bottom: 0;
}

/* Zone list */
.zone-list[b-xxz7ldhqdk] {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 10px;
    padding: 8px;
    min-height: 60px;
    border: 1px solid #999;
    border-radius: 8px;
}

.zone-tag[b-xxz7ldhqdk] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    background-color: #F3F5FB;
    border-radius: 6px;
    box-shadow: 0px 3px 6px rgba(223, 223, 223, 0.5);
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
    color: #555;
}

.zone-tag-remove[b-xxz7ldhqdk] {
    background: transparent;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
}

.zone-tag-remove img[b-xxz7ldhqdk] {
    height: 20px;
}

/* Groupes liste */
.groups-list[b-xxz7ldhqdk] {
    flex: 1;
    margin-top: 10px;
    overflow-y: auto;
    padding-right: 4px;
}

/* Groupe item */
.group-item[b-xxz7ldhqdk] {
    margin-bottom: 10px;
}

/* Groupe header - fond gris avec shadow */
.group-header[b-xxz7ldhqdk] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 15px;
    background-color: #F3F5FB;
    border-radius: 4px;
    box-shadow: 0px 3px 6px rgba(223, 223, 223, 0.5);
    cursor: pointer;
    user-select: none;
}

.group-header-info[b-xxz7ldhqdk] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 1;
    min-width: 0;
    color: #fff;
    font-family: 'Segoe UI', sans-serif;
}

.group-header-label[b-xxz7ldhqdk] {
    font-size: 10px;
    color: #666;
}

.group-header-name[b-xxz7ldhqdk] {
    font-size: 10px;
    font-weight: bold;
    color: #0277ED;
}

.group-header-alias-label[b-xxz7ldhqdk] {
    margin-left: 10px;
}

.group-header-alias[b-xxz7ldhqdk] {
    font-size: 10px;
    color: #0277ED;
}

.group-header-dependent[b-xxz7ldhqdk] {
    font-size: 9px;
    font-style: italic;
    color: #888;
    margin-left: auto;
}

.group-header-actions[b-xxz7ldhqdk] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-left: 20px;
}

/* Groupe content (expanded) */
.group-content[b-xxz7ldhqdk] {
    margin: 10px 0 0 26px;
    padding-right: 6px;
}

/* Group params row */
.group-params-row[b-xxz7ldhqdk] {
    display: flex;
    align-items: flex-end;
    gap: 15px;
    flex-wrap: wrap;
}

.group-param-field[b-xxz7ldhqdk] {
    flex: 1;
    /* min-width: 0 et non 150px : un enfant flex refuse par defaut de descendre
       sous sa taille de contenu, ce qui empechait les deux champs de se partager
       la largeur disponible */
    min-width: 0;
}

/* ::deep et non :deep(...) : cette derniere est la syntaxe Vue, que Blazor ne
   traduit pas. Il lui accole l'attribut de portee de la page, or le champ est
   rendu par le composant FormInputText et ne porte pas cet attribut : la regle
   ne s'appliquait donc pas du tout.
   Le min-width leve celui de 15rem pose sur .custom-form-group dans global.css,
   qui figeait chaque champ a 240 px et faisait deborder la paire hors de la
   colonne, d'ou le chevauchement de Nom du parametre et d'Alias. */
.group-param-field[b-xxz7ldhqdk]  .custom-form-group {
    margin-top: 0;
    margin-bottom: 0;
    min-width: 0;
}

.group-param-checkbox[b-xxz7ldhqdk] {
    display: flex;
    align-items: center;
    padding-bottom: 6px;
    /* Empeche la case de se tasser au point de coller le libelle au bord droit */
    flex-shrink: 0;
}

.group-param-checkbox label[b-xxz7ldhqdk] {
    display: flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
}

.dependent-label[b-xxz7ldhqdk] {
    font-size: 10px;
    font-style: italic;
    font-family: 'Segoe UI', sans-serif;
}

/* Matches list */
.matches-list[b-xxz7ldhqdk] {
    margin-top: 10px;
    background-color: #F3F5FB;
    border: 1px solid #999;
    border-radius: 8px;
    padding: 8px;
}

/* Ligne de correspondance - flexbox une seule ligne */
.match-row[b-xxz7ldhqdk] {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 10px;
    padding: 8px;
}

/* Cellule flex (valeur, typologie, groupe) - proportionnelle */
.match-cell-flex[b-xxz7ldhqdk] {
    flex: 1 1 0;
    min-width: 0;
}

/* Cellule poids - largeur fixe 130px (Width="130" dans le XAML) */
.match-cell-weight[b-xxz7ldhqdk] {
    flex: 0 0 130px;
}

/* Bouton reset typologie */
.btn-reset-match[b-xxz7ldhqdk] {
    flex-shrink: 0;
    padding: 4px;
    background-color: #0277ED;
    border: 1px solid #999;
    border-radius: 4px;
    cursor: pointer;
}

.btn-reset-match img[b-xxz7ldhqdk] {
    height: 22px;
}

/* Bouton supprimer */
.btn-icon-delete[b-xxz7ldhqdk] {
    flex-shrink: 0;
}

/* Séparateur */
.separator[b-xxz7ldhqdk] {
    margin: 10px 0;
    border: none;
    border-top: 1px solid #ccc;
    flex-shrink: 0;
}

/* Zone d'action en bas */
.action-bar[b-xxz7ldhqdk] {
    display: flex;
    justify-content: flex-end;
    padding: 0 10px 10px 0;
    flex-shrink: 0;
}

/* Bouton créer tâche */
.btn-create-task[b-xxz7ldhqdk] {
    padding: 10px 40px;
    background-color: transparent;
    color: #000;
    border: 1px solid #000;
    border-radius: 15px;
    font-size: 15px;
    font-family: 'Segoe UI', sans-serif;
    cursor: pointer;
    transition: background-color 0.2s;
}

.btn-create-task:hover[b-xxz7ldhqdk] {
    background-color: #f0f0f0;
}

/* No items text */
.no-items-text[b-xxz7ldhqdk] {
    text-align: center;
    color: #666;
    font-style: italic;
    padding: 20px 0;
    font-family: 'Segoe UI', sans-serif;
    font-size: 10px;
}
/* /Pages/Project/ListProjects.razor.rz.scp.css */
/* Variables de couleur alignées sur le thème WPF */
/* ColorBackgroundBlock: #F3F5FB */
/* ColorTextColor: #0277ED */
/* ColorGreyDark: #707070 */
/* ColorDropShadow: #DFDFDF */

/* Container principal */
.projects-container[b-5gclnxvzni] {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 0;
}

/* Contenu principal */
.projects-content[b-5gclnxvzni] {
    flex: 1;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

/* Sous-header : sous-titre (gauche) + pagination (droite) */
.projects-subheader[b-5gclnxvzni] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 20px 20px 20px 26px;
}

/* Sous-titre "Liste des projets" - SegoeUI14, Bold, ColorTextColor */
.projects-subtitle[b-5gclnxvzni] {
    margin: 0;
    font-weight: bold;
    color: #0277ED;
    font-size: 13px; /* 14pt a l'echelle Web */
    white-space: nowrap;
}

/* Filtre admin - checkbox + label, dans le UpperBar header */
.projects-admin-filter[b-5gclnxvzni] {
    display: flex;
    align-items: center;
    margin-right: 20px;
}

.projects-admin-filter input[type="checkbox"][b-5gclnxvzni] {
    width: 16px;
    height: 16px;
    margin-right: 8px;
    cursor: pointer;
    accent-color: #0277ED;
}

.projects-admin-filter-label[b-5gclnxvzni] {
    font-size: 13px; /* 14pt a l'echelle Web */
    font-family: 'Segoe UI', sans-serif;
    white-space: nowrap;
    cursor: pointer;
}

/* Container liste projets - avec scroll */
.projects-list-container[b-5gclnxvzni] {
    flex: 1;
    overflow-y: auto;
    margin-top: 20px;
    margin-right: 20px;
}

/* Message "pas de projets" - SegoeUI20, SemiBold, centré, Width="800" */
.no-projects-message[b-5gclnxvzni] {
    display: flex;
    justify-content: center;
    align-items: center;
    flex: 1;
    text-align: center;
}

.no-projects-message p[b-5gclnxvzni] {
    max-width: 800px;
    font-size: 19px; /* 20pt a l'echelle Web */
    font-weight: 600; /* SemiBold */
    font-family: 'Segoe UI', sans-serif;
    color: #000000; /* ColorTextDark */
    margin: 0;
}

/* Liste des projets - WrapPanel avec ItemWidth: 420 */
.list-project[b-5gclnxvzni] {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    padding: 0;
    margin: 0;
}

/* Carte de projet - Border avec CornerRadius: 12, DropShadow */
.list-project-elem[b-5gclnxvzni] {
    width: 420px;
    margin-right: 40px;
    margin-bottom: 40px;
    padding: 20px 40px 10px 40px;
    background: #F3F5FB;
    border-radius: 12px;
    box-shadow: 0px 3px 6px rgba(223, 223, 223, 0.5);
    cursor: pointer;
    box-sizing: border-box;
}

.list-project-elem:hover[b-5gclnxvzni] {
    box-shadow: 0px 4px 8px rgba(223, 223, 223, 0.8);
}

/* Conteneur du nom du projet */
.project-box[b-5gclnxvzni] {
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Texte du nom - SegoeUI14, Bold, ColorGreyDark, TextTrimming */
.project-text[b-5gclnxvzni] {
    font-weight: bold;
    color: #707070;
    font-size: 13px; /* 14pt a l'echelle Web */
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}

/* Conteneur de l'image */
.project-img-container[b-5gclnxvzni] {
    display: flex;
    justify-content: center;
    margin-top: 20px;
}

/* Image du projet - 240x240, Padding: 8, Border: 1px Black, CornerRadius: 12 */
.project-img[b-5gclnxvzni] {
    width: 240px;
    height: 240px;
    padding: 8px;
    background: #FFFFFF;
    border: 1px solid #000000;
    border-radius: 12px;
    object-fit: contain;
    box-sizing: border-box;
}

/* Texte "Administrateur" - Margin: 0,10,0,0, HorizontalAlignment: Center */
.admin-text[b-5gclnxvzni] {
    height: 26px;
    margin-top: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px; /* 10pt a l'echelle Web */
}

.admin-text p[b-5gclnxvzni] {
    margin: 0;
}
/* /Pages/Project/ModelProject.razor.rz.scp.css */
/* ===========================================
   ModelProject - Style pour la page de gestion des modèles
   Basé sur ProjectModelsView.xaml du Compagnon
   =========================================== */

/* Enveloppe de la page (d-flex flex-column edit-project) : relais de hauteur entre le wrapper
   de contenu du layout et la grille des deux colonnes. Sans flex: 1 elle se limite à la hauteur
   de son contenu et la liste des modèles n'atteint pas le bas de la fenêtre. */
.edit-project[b-3ibtqkybq0] {
    flex: 1;
    min-height: 0;
}

/* Zone de contenu - Grid avec 2 colonnes (1* et 2*), hauteur pleine page */
.models-content[b-3ibtqkybq0] {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 20px;
    margin-top: 20px;
    /* flex: 1 et non height: calc(100vh - 210px) : la soustraction figeait une hauteur
       approximative, indépendante de la hauteur réelle de l'en-tête et des marges du layout,
       d'où un bloc gris qui s'arrêtait avant le bas de la fenêtre. */
    flex: 1;
    min-height: 0;
    overflow: hidden;
}

/* Section de creation (gauche) - Margin="26,0,20,0" */
.create-section[b-3ibtqkybq0] {
    margin-left: 26px;
    margin-right: 20px;
    display: flex;
    flex-direction: column;
}

/* Titre de section - SegoeUI14 = 14pt, Bold, ColorTextColor=#0277ED, Margin="0,20,0,0" */
.section-title[b-3ibtqkybq0] {
    font-size: 14px;
    font-weight: bold;
    color: #0277ED;
    font-family: 'Segoe UI', sans-serif;
    margin: 20px 0 0 0;
}

/* Message d'erreur - ColorButtonCancel=#FF0000, Margin="0,10,0,0" */
.error-message[b-3ibtqkybq0] {
    color: #FF0000;
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
    margin: 10px 0 0 0;
}

/* Bouton creer - Width="240", Padding="10", BorderThickness="1", CornerRadius="15", Margin="0,20,0,0" */
.btn-create[b-3ibtqkybq0] {
    width: 240px;
    padding: 10px;
    background-color: transparent;
    color: #000000;
    border: 1px solid #000000;
    border-radius: 15px;
    font-size: 15px; /* 16pt a l'echelle Web */
    font-family: 'Segoe UI', sans-serif;
    cursor: pointer;
    text-align: center;
    margin-top: 20px;
    transition: background-color 0.2s;
}

.btn-create:hover[b-3ibtqkybq0] {
    background-color: #f0f0f0;
}

/* Etats desactives (droits insuffisants) - equivalent de IsEnabled=False du WPF */
.btn-create:disabled[b-3ibtqkybq0],
.btn-action:disabled[b-3ibtqkybq0],
.btn-edit:disabled[b-3ibtqkybq0],
.btn-delete:disabled[b-3ibtqkybq0] {
    opacity: 0.5;
    cursor: not-allowed;
}

.btn-create:disabled:hover[b-3ibtqkybq0],
.btn-action:disabled:hover[b-3ibtqkybq0] {
    background-color: transparent;
}

.btn-edit:disabled:hover[b-3ibtqkybq0] {
    background-color: #0277ED;
}

/* Section de gestion (droite) - Margin="20,0,0,0" */
.manage-section[b-3ibtqkybq0] {
    margin-left: 20px;
    margin-right: 10px;
    display: flex;
    flex-direction: column;
    overflow: visible;
}

/* Carte de liste des modeles - Margin="0,10,0,0", Padding="20", CornerRadius="8", avec shadow */
.models-list-card[b-3ibtqkybq0] {
    flex: 1;
    margin-top: 10px;
    padding: 20px;
    background-color: #F3F5FB;
    border-radius: 8px;
    box-shadow: 0px 3px 6px rgba(223, 223, 223, 0.5);
    overflow-y: auto;
}

/* Item de modele - Border: Margin="0,10,0,0" Padding="20,10,20,10" CornerRadius="10" */
.model-item[b-3ibtqkybq0] {
    margin-top: 10px;
    padding: 10px 20px;
    border-radius: 10px;
}

.model-item:first-child[b-3ibtqkybq0] {
    margin-top: 0;
}

/* AlternationIndex=0 -> White, AlternationIndex=1 -> Transparent */
.model-item-alt[b-3ibtqkybq0] {
    background-color: #FFFFFF;
}

/* Grid: 3 cols (*, Auto, Auto) / 2 rows (Auto, Auto) */
.model-grid[b-3ibtqkybq0] {
    display: grid;
    grid-template-columns: 1fr auto auto;
    grid-template-rows: auto auto;
    align-items: center;
}

/* Row 0, Col 0: Name */
.model-name[b-3ibtqkybq0] {
    grid-row: 1;
    grid-column: 1;
    font-size: 14px;
    font-weight: bold;
    font-family: 'Segoe UI', sans-serif;
    margin-bottom: 10px;
    align-self: center;
}

/* Row 0-1, Col 1: Edit button */
.btn-edit[b-3ibtqkybq0] {
    grid-row: 1 / 3;
    grid-column: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 10px;
    margin-left: 10px;
    background-color: #0277ED;
    border: none;
    border-radius: 15px;
    cursor: pointer;
    transition: background-color 0.2s;
    position: relative;
    z-index: 10;
}

.btn-edit:hover[b-3ibtqkybq0] {
    background-color: #0260c0;
}

.btn-edit img[b-3ibtqkybq0] {
    height: 24px;
}

/* Row 0-1, Col 2: Delete button */
.btn-delete[b-3ibtqkybq0] {
    grid-row: 1 / 3;
    grid-column: 3;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-left: 10px;
    background-color: transparent;
    border: none;
    cursor: pointer;
    position: relative;
    z-index: 10;
}

.btn-delete img[b-3ibtqkybq0] {
    height: 44px;
}

/* Row 1, Col 0 spanning 3 cols: StackPanel Horizontal */
.model-actions-row[b-3ibtqkybq0] {
    grid-row: 2;
    grid-column: 1 / 4;
    display: flex;
    align-items: center;
}

/* Button action: Border Width="150" Padding="6" CornerRadius="15" */
.btn-action[b-3ibtqkybq0] {
    width: 150px;
    padding: 6px;
    background-color: transparent;
    color: #000000;
    border: 1px solid #000000;
    border-radius: 15px;
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
    cursor: pointer;
    text-align: center;
    transition: background-color 0.2s;
}

.btn-action:hover[b-3ibtqkybq0] {
    background-color: #f0f0f0;
}

/* Groupe Indice: ComboBox + Button (aligné verticalement, marges au pixel près XAML) */
.indice-group[b-3ibtqkybq0] {
    display: flex;
    flex-direction: row;
    align-items: center;
    margin-left: 20px; /* XAML ComboBox Margin="20,0,0,0" */
}

/* ComboBox dans le groupe : la combobox elle-même n'a pas de margin supplémentaire */
/* ::deep et non :deep(...) : traverse la portee du composant enfant */
.indice-group[b-3ibtqkybq0]  .custom-form-group {
    margin-top: 0;
    margin-bottom: 0;
}

/* Bouton Supprimer indice : XAML Margin="10,0,0,0" relatif à la ComboBox */
.btn-action-indice[b-3ibtqkybq0] {
    margin-left: 10px;
}

/* Bouton Effacer statuts : XAML Margin="20,0,0,0" */
.btn-action-clear[b-3ibtqkybq0] {
    margin-left: 20px;
}

/* Pas de modeles */
.no-models[b-3ibtqkybq0] {
    text-align: center;
    color: #666666;
    font-style: italic;
    padding: 40px 0;
    font-family: 'Segoe UI', sans-serif;
}

/* Section de formulaire */
.form-section[b-3ibtqkybq0] {
    max-width: 470px;
}

/* ::deep et non :deep(...) : traverse la portee du composant enfant */
.form-section[b-3ibtqkybq0] >  .custom-form-group {
    margin-top: 20px;
    margin-bottom: 0;
}

/* Popups */
.popup-overlay[b-3ibtqkybq0] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.65);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
}

.popup-content[b-3ibtqkybq0] {
    width: 450px;
    padding: 40px 40px 20px 40px;
    background-color: #F3F5FB;
    border: 1px solid #888888;
    border-radius: 20px;
    box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.5);
}

.popup-title[b-3ibtqkybq0] {
    font-size: 14px;
    font-weight: bold;
    font-family: 'Segoe UI', sans-serif;
    margin: 0 0 20px 0;
    text-align: center;
}

.popup-error[b-3ibtqkybq0] {
    font-size: 10px;
    font-family: 'Segoe UI', sans-serif;
    color: #FF0000;
    font-style: italic;
    margin: 10px 0 0 0;
    text-align: end;
}

.popup-buttons[b-3ibtqkybq0] {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-top: 30px;
    margin-bottom: 20px;
}

.btn-cancel[b-3ibtqkybq0] {
    width: 150px;
    padding: 10px;
    background-color: transparent;
    color: #000000;
    border: 1px solid #000000;
    border-radius: 15px;
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
    cursor: pointer;
    transition: background-color 0.2s;
}

.btn-cancel:hover[b-3ibtqkybq0] {
    background-color: #f0f0f0;
}

.btn-confirm[b-3ibtqkybq0] {
    width: 150px;
    padding: 10px;
    background-color: #0277ED;
    color: #FFFFFF;
    border: 1px solid #0277ED;
    border-radius: 15px;
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
    cursor: pointer;
    transition: background-color 0.2s;
}

.btn-confirm:hover[b-3ibtqkybq0] {
    background-color: #0260c0;
}

/* Form elements in popup */
.form-group[b-3ibtqkybq0] {
    margin-top: 10px;
}

.form-label[b-3ibtqkybq0] {
    display: block;
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
    margin-bottom: 5px;
    color: #333333;
}

.form-input[b-3ibtqkybq0] {
    width: 100%;
    padding: 10px 15px;
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
    border: 1px solid #cccccc;
    border-radius: 8px;
    outline: none;
    transition: border-color 0.2s;
    box-sizing: border-box;
}

.form-input:focus[b-3ibtqkybq0] {
    border-color: #0277ED;
}
/* /Pages/Project/OverviewProject.razor.rz.scp.css */
/* UpperBar est un frere de ce container (et non son enfant) : le container ne
   dispose donc que de la hauteur restante sous l'en-tete. height: 100% le ferait
   deborder de 64 px et provoquerait une barre de defilement permanente. */
.overview-container[b-4xbjzx480v] {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    padding: 0;
}

/* Zone de contenu - Margin="26,20,0,0" */
.overview-content[b-4xbjzx480v] {
    flex: 1;
    margin: 20px 0 0 26px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* Ligne de contenu - 2 colonnes avec gap 40px */
.content-row[b-4xbjzx480v] {
    display: flex;
    gap: 40px;
}

/* Section info projet */
.info-section[b-4xbjzx480v] {
    flex: 1;
}

.project-info[b-4xbjzx480v] {
    display: flex;
    align-items: center;
    gap: 10px;
}

/* Image - Width="100", Stretch="Uniform" */
.project-thumbnail[b-4xbjzx480v] {
    width: 100px;
    height: auto;
    object-fit: contain;
}

/* Bouton edit - Width="40", Padding="10", BorderThickness="1", CornerRadius="15" */
.btn-edit[b-4xbjzx480v] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    padding: 10px;
    border: 1px solid #000000;
    border-radius: 15px;
    background-color: transparent;
    cursor: pointer;
    transition: background-color 0.2s;
}

.btn-edit:hover[b-4xbjzx480v] {
    background-color: #f0f0f0;
}

.btn-edit img[b-4xbjzx480v] {
    width: 20px;
    height: 20px;
}

/* Details projet - Margin="20,0,0,0" */
.project-details[b-4xbjzx480v] {
    display: flex;
    flex-direction: column;
    margin-left: 10px;
}

/* SegoeUI14 = 14pt = ~19px */
.project-name[b-4xbjzx480v] {
    font-size: 14px;
    font-family: 'Segoe UI', sans-serif;
}

/* SegoeUI12 = 12pt = ~16px, Italic */
.project-address[b-4xbjzx480v] {
    font-size: 12px;
    font-style: italic;
    font-family: 'Segoe UI', sans-serif;
    color: #666666;
}

/* Section statistiques - grille 2 lignes, 4 colonnes (auto,*,auto,2*) avec gap row=10, col=20 */
.stats-section[b-4xbjzx480v] {
    flex: 1;
}

.stats-grid[b-4xbjzx480v] {
    display: grid;
    grid-template-columns: auto 1fr auto 2fr;
    gap: 10px 20px;
    align-items: center;
}

/* SegoeUI12 = 12pt = ~16px, Bold */
.stat-label[b-4xbjzx480v] {
    font-size: 12px;
    font-weight: bold;
    font-family: 'Segoe UI', sans-serif;
}

/* SegoeUI12 = 12pt = ~16px */
.stat-value[b-4xbjzx480v] {
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
}

.stat-value-ellipsis[b-4xbjzx480v] {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Section actions */
.actions-section[b-4xbjzx480v] {
    flex: 1;
}

/* Titre de section - SegoeUI14 = 14pt = ~19px, Bold, ColorTextColor=#0277ED */
.section-title[b-4xbjzx480v] {
    font-size: 14px;
    font-weight: bold;
    color: #0277ED;
    font-family: 'Segoe UI', sans-serif;
    margin: 0;
}

.section-header[b-4xbjzx480v] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 10px;
}

/* WrapPanel - Margin="0,10,0,0", gap entre boutons 20px */
.actions-wrap[b-4xbjzx480v] {
    display: flex;
    flex-wrap: wrap;
    margin-top: 10px;
}

/* Bouton action - Width="200", Padding="10", BorderThickness="1", CornerRadius="15", Margin="0,0,20,20" */
.btn-action[b-4xbjzx480v] {
    width: 200px;
    padding: 10px;
    margin: 0 20px 20px 0;
    background-color: transparent;
    color: #000000;
    border: 1px solid #000000;
    border-radius: 15px;
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
    cursor: pointer;
    text-align: center;
    text-decoration: none;
    transition: background-color 0.2s;
}

.btn-action:hover[b-4xbjzx480v] {
    background-color: #f0f0f0;
    color: #000000;
}

/* Bouton action desactive (droits insuffisants) - equivalent de IsEnabled=False du WPF */
.btn-action:disabled[b-4xbjzx480v],
.btn-action-disabled[b-4xbjzx480v] {
    opacity: 0.5;
    cursor: not-allowed;
}

.btn-action-disabled:hover[b-4xbjzx480v] {
    background-color: transparent;
    color: #000000;
}

/* Section graphiques pleine largeur - Margin="0,20,0,0" */
.graphs-full-section[b-4xbjzx480v] {
    margin-top: 0;
    display: flex;
    flex-direction: column;
}

/* Texte d'aide au-dessus d'une ligne de filtres - SegoeUI12 */
.filters-info[b-4xbjzx480v] {
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
    margin: 10px 0 0 0;
    color: #000000;
}

.filters-info-secondary[b-4xbjzx480v] {
    margin-top: 20px;
}

/* Ligne de filtres - Compagnon: deux colonnes de 350px chacune */
.filters-row[b-4xbjzx480v] {
    display: flex;
    align-items: center;
    margin: 10px 0 20px 0;
    gap: 20px;
}

.filter-item[b-4xbjzx480v] {
    font-weight: bold;
    width: 350px;
}

.filter-model[b-4xbjzx480v],
.filter-indice[b-4xbjzx480v],
.filter-typology[b-4xbjzx480v],
.filter-zone[b-4xbjzx480v] {
    width: 350px;
}

/* Carte graphique generique - Padding=20, Background=ColorBackgroundBlock, CornerRadius=8, DropShadow */
.graph-card[b-4xbjzx480v] {
    padding: 20px;
    background-color: #F3F5FB;
    border-radius: 8px;
    box-shadow: 0px 3px 6px rgba(223, 223, 223, 0.5);
    margin: 0 10px 20px 0;
    align-self: flex-start;
}

/* Carte courbe - pleine largeur */
.curve-card[b-4xbjzx480v] {
    width: calc(100% - 10px);
    align-self: stretch;
}

/* En-tete de la carte courbe : titre+summary a gauche, boutons a droite */
.curve-chart-header[b-4xbjzx480v] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin-bottom: 20px;
}

.curve-chart-title[b-4xbjzx480v] {
    display: flex;
    align-items: baseline;
    gap: 0;
    font-size: 14px;
    font-family: 'Segoe UI', sans-serif;
    color: #000000;
}

.curve-title-label[b-4xbjzx480v] {
    font-weight: bold;
}

.curve-summary[b-4xbjzx480v] {
    font-weight: normal;
    margin-left: 8px;
}

/* Zone des boutons d'action de la carte courbe - Compagnon : StackPanel horizontal, Margin=10,0,0,0 */
.curve-chart-actions[b-4xbjzx480v] {
    display: flex;
    align-items: center;
    gap: 10px;
}

/* Bouton Screenshot - Background=ColorButtonValid, Padding=4, CornerRadius=4, image 22px */
.btn-screenshot[b-4xbjzx480v] {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 4px;
    background-color: #0277ED;
    border: 1px solid #0277ED;
    border-radius: 4px;
    cursor: pointer;
    transition: background-color 0.2s;
}

.btn-screenshot:hover[b-4xbjzx480v] {
    background-color: #0260c0;
}

.btn-screenshot img[b-4xbjzx480v] {
    height: 22px;
    width: 22px;
}

/* Graphique courbe d'avancement - MinHeight="600" */
.curve-chart-wrapper[b-4xbjzx480v] {
    min-height: 600px;
}

[b-4xbjzx480v] .curve-line-chart {
    min-height: 600px;
}

/* Mode plein ecran de la carte courbe.
   La marge et la largeur calculee de .graph-card / .curve-card laisseraient des bandes noires,
   et les deux hauteurs minimales de 600px empecheraient le graphique d'occuper l'ecran sur un
   petit ecran : les trois sont neutralisees ici. Chart.js dimensionne le graphique sur la hauteur
   de son conteneur, d'ou le flex sur .curve-chart-wrapper et le height 100% en dessous. */
.curve-card:fullscreen[b-4xbjzx480v] {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    margin: 0;
    border-radius: 0;
    overflow: hidden;
}

.curve-card:fullscreen .curve-chart-wrapper[b-4xbjzx480v] {
    flex: 1 1 auto;
    min-height: 0;
}

.curve-card:fullscreen[b-4xbjzx480v]  .curve-line-chart {
    height: 100%;
    min-height: 0;
}

/* Camemberts - Compagnon: cards empilees verticalement, alignees a gauche */
.pie-card[b-4xbjzx480v] {
    display: flex;
    flex-direction: column;
}

/* Titre camembert - SegoeUI14, Bold */
.pie-chart-title[b-4xbjzx480v] {
    font-size: 14px;
    font-weight: bold;
    font-family: 'Segoe UI', sans-serif;
    margin: 0 0 20px 0;
    color: #000000;
}

.pie-chart-wrapper[b-4xbjzx480v] {
    display: flex;
    align-items: center;
    gap: 10px;
}

.pie-chart-canvas[b-4xbjzx480v] {
    width: 350px;
    height: 250px;
    flex-shrink: 0;
}

/* Canvas graphique */
[b-4xbjzx480v] .chart-canvas {
    max-height: 250px;
}

/* Legende */
.chart-legend[b-4xbjzx480v] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-left: 10px;
}

.legend-item[b-4xbjzx480v] {
    display: flex;
    align-items: center;
    gap: 5px;
}

/* Rectangle couleur - Width="16", Height="16", StrokeThickness="1" */
.legend-color[b-4xbjzx480v] {
    width: 16px;
    height: 16px;
    border: 1px solid #888888;
    flex-shrink: 0;
}

.legend-label[b-4xbjzx480v],
.legend-value[b-4xbjzx480v],
.legend-percent[b-4xbjzx480v] {
    font-size: 10px;
    font-family: 'Segoe UI', sans-serif;
}

/* Message pas de donnees - fond ColorBackgroundBlock, Padding=60, SegoeUI18 */
.no-data-card[b-4xbjzx480v] {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 60px;
    background-color: #F3F5FB;
    border-radius: 8px;
    margin: 20px 10px 20px 0;
}

.no-data-card p[b-4xbjzx480v] {
    color: #333333;
    font-size: 17px;
    font-family: 'Segoe UI', sans-serif;
    margin: 0;
    text-align: center;
}
/* /Pages/Project/VisualizeProject.razor.rz.scp.css */
/* Container principal */
.visualize-container[b-gv8d99a9yd] {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 0;
}

/* Header */
.visualize-header[b-gv8d99a9yd] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 64px;
    padding: 5px;
    background-color: #F3F5FB;
    border-radius: 12px;
}

.header-left[b-gv8d99a9yd] {
    display: flex;
    flex-direction: column;
    margin-left: 20px;
}

.header-title[b-gv8d99a9yd] {
    font-size: 24px;
    font-weight: bold;
    font-family: 'Segoe UI', sans-serif;
    margin: 0;
    color: #000000;
}

.header-breadcrumb[b-gv8d99a9yd] {
    display: flex;
    align-items: center;
    margin-top: 2px;
}

.breadcrumb-link[b-gv8d99a9yd] {
    color: #666666;
    text-decoration: underline;
    font-size: 14px;
    font-family: 'Segoe UI', sans-serif;
}

.breadcrumb-link:hover[b-gv8d99a9yd] {
    color: #444444;
}

.breadcrumb-separator[b-gv8d99a9yd] {
    color: #666666;
    margin: 0 5px;
    font-size: 14px;
}

.breadcrumb-current[b-gv8d99a9yd] {
    color: #666666;
    font-size: 14px;
    font-family: 'Segoe UI', sans-serif;
}

/* Zone de contenu */
.visualize-content[b-gv8d99a9yd] {
    flex: 1;
    margin: 20px 0 0 26px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    overflow: hidden;
}

/* Section parametres */
.parameters-section[b-gv8d99a9yd] {
    flex-shrink: 0;
}

.section-title[b-gv8d99a9yd] {
    font-size: 19px;
    font-weight: bold;
    color: #0277ED;
    font-family: 'Segoe UI', sans-serif;
    margin: 0 0 10px 0;
}

.parameters-row[b-gv8d99a9yd] {
    display: flex;
    gap: 20px;
    margin-top: 10px;
}

.parameter-field[b-gv8d99a9yd] {
    width: 300px;
}

.parameter-field-full[b-gv8d99a9yd] {
    margin-top: 10px;
    max-width: 620px;
}

.loading-warning[b-gv8d99a9yd] {
    margin-top: 10px;
    font-size: 14px;
    font-family: 'Segoe UI', sans-serif;
    color: #888888;
    font-style: italic;
}

.error-message[b-gv8d99a9yd] {
    margin-top: 10px;
    font-size: 16px;
    font-family: 'Segoe UI', sans-serif;
    color: #FF0000;
}

.btn-load[b-gv8d99a9yd] {
    margin-top: 20px;
    width: 240px;
    padding: 10px;
    background-color: transparent;
    color: #000000;
    border: 1px solid #000000;
    border-radius: 15px;
    font-size: 16px;
    font-family: 'Segoe UI', sans-serif;
    cursor: pointer;
    text-align: center;
    transition: background-color 0.2s;
}

.btn-load:hover:not(:disabled)[b-gv8d99a9yd] {
    background-color: #f0f0f0;
}

.btn-load:disabled[b-gv8d99a9yd] {
    opacity: 0.5;
    cursor: not-allowed;
}

/* Section viewer */
.viewer-section[b-gv8d99a9yd] {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 0;
    margin-right: 26px;
}

.viewer-wrapper[b-gv8d99a9yd] {
    flex: 1;
    position: relative;
    margin-top: 10px;
    border: 1px solid #888888;
    border-radius: 6px;
    overflow: hidden;
    min-height: 400px;
}

.viewer-container[b-gv8d99a9yd] {
    width: 100%;
    height: 100%;
    background-color: #ffffff;
}

.viewer-placeholder[b-gv8d99a9yd] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    background-color: #f5f5f5;
}

.viewer-placeholder p[b-gv8d99a9yd] {
    font-size: 16px;
    font-family: 'Segoe UI', sans-serif;
    color: #888888;
    font-style: italic;
}

/* Boutons d'action du viewer */
.viewer-actions[b-gv8d99a9yd] {
    position: absolute;
    top: 10px;
    right: 10px;
    display: flex;
    gap: 10px;
    z-index: 10;
}

.btn-viewer-action[b-gv8d99a9yd] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 8px 12px;
    background-color: #0277ED;
    color: #ffffff;
    border: 1px solid #888888;
    border-radius: 6px;
    font-size: 14px;
    font-family: 'Segoe UI', sans-serif;
    cursor: pointer;
    transition: background-color 0.2s;
}

.btn-viewer-action:hover[b-gv8d99a9yd] {
    background-color: #0260c0;
}

.btn-viewer-action img[b-gv8d99a9yd] {
    width: 18px;
    height: 18px;
}

/* Overlay de chargement */
.loading-overlay[b-gv8d99a9yd] {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.65);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 100;
}

.loading-popup[b-gv8d99a9yd] {
    width: 500px;
    padding: 40px 40px 30px 40px;
    background-color: #ffffff;
    border-radius: 12px;
    box-shadow: 0px 3px 10px rgba(0, 0, 0, 0.5);
    text-align: center;
}

.loading-title[b-gv8d99a9yd] {
    font-size: 19px;
    font-weight: bold;
    font-family: 'Segoe UI', sans-serif;
    margin: 0 0 10px 0;
}

.loading-interface-warning[b-gv8d99a9yd] {
    font-size: 14px;
    font-family: 'Segoe UI', sans-serif;
    color: #888888;
    margin: 0 0 20px 0;
}

.loading-message[b-gv8d99a9yd] {
    font-size: 16px;
    font-family: 'Segoe UI', sans-serif;
    color: #0277ED;
    margin: 0 0 20px 0;
}

.progress-bar-container[b-gv8d99a9yd] {
    width: 100%;
    height: 30px;
    background-color: #e0e0e0;
    border-radius: 4px;
    overflow: hidden;
}

.progress-bar[b-gv8d99a9yd] {
    height: 100%;
    background-color: #0277ED;
    transition: width 0.3s ease;
}

.progress-bar-indeterminate[b-gv8d99a9yd] {
    height: 100%;
    background: linear-gradient(90deg, #e0e0e0 0%, #0277ED 50%, #e0e0e0 100%);
    background-size: 200% 100%;
    animation: indeterminate-b-gv8d99a9yd 1.5s infinite linear;
}

@keyframes indeterminate-b-gv8d99a9yd {
    0% {
        background-position: 200% 0;
    }
    100% {
        background-position: -200% 0;
    }
}

.progress-text[b-gv8d99a9yd] {
    display: block;
    margin-top: 10px;
    font-size: 14px;
    font-family: 'Segoe UI', sans-serif;
    color: #666666;
}

/* Mode plein ecran */
.viewer-container:fullscreen[b-gv8d99a9yd] {
    background-color: #ffffff;
}

.viewer-container:fullscreen .viewer-actions[b-gv8d99a9yd] {
    position: fixed;
    top: 10px;
    right: 10px;
}
/* /Pages/Register/ListRegister.razor.rz.scp.css */
/* ============================================
   ListRegister - Style aligné sur RegisterView.xaml
   ============================================ */

/* Variables de couleur alignées sur le thème WPF */
/* ColorGreyButton: #F3F3F3 */
/* ColorGreyDark: #707070 */
/* ColorButtonValid: #0277ED */
/* ColorButtonNeutral: #676676 */
/* ColorTextLight: #FFFFFF */

/* Conteneur racine de la page.
   Neutralise le height: 100% de l'utilitaire .full-screen de global.css : sous le wrapper de
   contenu du layout, ces 100 % se résolvent sur la hauteur totale du wrapper sans tenir compte
   de l'en-tête, qui en est un frère, d'où un débordement de 64 px et une barre de défilement
   permanente. La règle reste locale : .full-screen n'est utilisée que par cette page, mais elle
   est déclarée globalement et garde ailleurs son sens d'origine. */
.full-screen[b-zr2qnbynb9] {
    height: auto;
    flex: 1;
    min-height: 0;
}

/* Conteneur message "pas de données" */
.no-data-container[b-zr2qnbynb9] {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100%;
}

/* Message "pas de données" - SegoeUI18, DemiBold */
.no-data-message[b-zr2qnbynb9] {
    font-size: 17px; /* 18pt a l'echelle Web */
    font-weight: 600;
    font-family: 'Segoe UI', sans-serif;
    color: #000000;
    text-align: center;
}

/* Liste des inscriptions - WrapPanel */
.register-list[b-zr2qnbynb9] {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 40px;
}

/* Carte d'inscription - Border: Width: 500, Padding: 20, CornerRadius: 20 */
/* La carte entière est cliquable (valide l'inscription), comme le Button racine du DataTemplate WPF */
.register-card[b-zr2qnbynb9] {
    width: 500px;
    margin-right: 10px;
    margin-bottom: 20px;
    padding: 20px;
    background: #F3F3F3;
    border: 1px solid #707070;
    border-radius: 20px;
    box-sizing: border-box;
    cursor: pointer;
}

/* Informations de l'inscription */
.register-info[b-zr2qnbynb9] {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: 20px;
}

/* Nom complet - SegoeUI16, SemiBold, ColorGreyDark */
.register-name[b-zr2qnbynb9] {
    font-size: 15px; /* 16pt a l'echelle Web */
    font-weight: 600;
    font-family: 'Segoe UI', sans-serif;
    color: #707070;
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}

/* Date - SegoeUI12, Italic, ColorGreyDark */
.register-date[b-zr2qnbynb9] {
    font-size: 12px; /* 12pt a l'echelle Web */
    font-style: italic;
    font-family: 'Segoe UI', sans-serif;
    color: #707070;
    text-align: center;
    margin-top: 5px;
}

/* Actions (boutons) */
.register-actions[b-zr2qnbynb9] {
    display: flex;
    justify-content: center;
    gap: 20px;
}

/* Bouton Valider - Width: 140, Padding: 10, Background: ColorButtonValid, CornerRadius: 15 */
.btn-validate[b-zr2qnbynb9] {
    width: 140px;
    padding: 10px;
    background: #0277ED;
    color: #FFFFFF;
    border: none;
    border-radius: 15px;
    font-size: 13px; /* 14pt a l'echelle Web */
    font-family: 'Segoe UI', sans-serif;
    cursor: pointer;
    transition: background-color 0.2s ease;
}

.btn-validate:hover[b-zr2qnbynb9] {
    background: #0265c9;
}

/* Bouton Supprimer - Width: 140, Padding: 10, Background: Transparent, Border: ColorButtonNeutral, CornerRadius: 15 */
.btn-delete[b-zr2qnbynb9] {
    width: 140px;
    padding: 10px;
    background: transparent;
    color: #676676;
    border: 1px solid #676676;
    border-radius: 15px;
    font-size: 13px; /* 14pt a l'echelle Web */
    font-family: 'Segoe UI', sans-serif;
    cursor: pointer;
    transition: all 0.2s ease;
}

.btn-delete:hover[b-zr2qnbynb9] {
    background: #676676;
    color: #FFFFFF;
}

/* ============================================
   Responsive
   ============================================ */

@media (max-width: 1200px) {
    .register-card[b-zr2qnbynb9] {
        width: 450px;
    }
}

@media (max-width: 900px) {
    .register-card[b-zr2qnbynb9] {
        width: 100%;
        max-width: 500px;
    }

    .register-name[b-zr2qnbynb9] {
        font-size: 13px; /* 14pt a l'echelle Web */
    }

    .register-date[b-zr2qnbynb9] {
        font-size: 11px; /* 11pt a l'echelle Web */
    }

    .btn-validate[b-zr2qnbynb9],
    .btn-delete[b-zr2qnbynb9] {
        width: 120px;
        font-size: 12px; /* 12pt a l'echelle Web */
    }
}
/* /Pages/User/Components/UserDynamicTable.razor.rz.scp.css */
/* Container de la liste - Margin="0,20,20,0", Padding="20", CornerRadius="8", DropShadow
   flex:1 + min-height:0 permettent l'etirement vertical complet au sein du parent flex column
   margin-bottom:20px reserve 20px avant le bas de la zone de contenu */
.users-list-container[b-ikl7anznwd] {
    margin: 20px 0 20px 0;
    padding: 20px;
    background: #F3F5FB;
    border-radius: 8px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
    overflow-y: auto;
    flex: 1;
    min-height: 0;
}

/* Liste des utilisateurs */
.users-list[b-ikl7anznwd] {
    list-style: none;
    padding: 0;
    margin: 0;
}

/* Item utilisateur - Height="56", Margin="0,0,4,20", Padding="20,5", CornerRadius="20", Border="1"
   box-sizing:border-box pour que Height 56 inclue padding + border */
.user-item[b-ikl7anznwd] {
    box-sizing: border-box;
    display: grid;
    grid-template-columns: 38px 1fr auto;
    align-items: center;
    height: 56px;
    margin: 0 4px 20px 0;
    padding: 5px 20px;
    background: #F3F3F3;
    border: 1px solid #707070;
    border-radius: 20px;
}

/* Colonne bouton supprimer - Width="38"
   XAML: <Grid HorizontalAlignment="Left"> contient <Button><Image Height="30"/></Button>
   → image collee a gauche du col 0, largeur intrinseque 30 (aspect ratio natif) */
.user-item-delete[b-ikl7anznwd] {
    display: flex;
    align-items: center;
    justify-content: flex-start;
}

.user-item-delete img[b-ikl7anznwd] {
    height: 30px;
    width: auto;
    cursor: pointer;
}

/* Colonne infos - Margin="20,0,0,0"
   Reproduit le sous-Grid XAML avec RowDefinitions "*" / "Auto" :
   row 1 (1fr) = nom centre verticalement, row 2 (auto) = admin colle en bas.
   align-self:stretch force l'etirement vertical (sinon la cellule se replie au contenu
   a cause du align-items:center du parent .user-item). */
.user-item-info[b-ikl7anznwd] {
    display: grid;
    grid-template-rows: 1fr auto;
    align-self: stretch;
    min-width: 0;
    margin-left: 20px;
}

/* Nom - SegoeUI16 (21px), SemiBold, #707070 — Row 0 (*) VerticalAlignment=Center
   line-height:1 pour garantir le rendu dans 56-10-2=44px de contenu vertical */
.user-item-name[b-ikl7anznwd] {
    grid-row: 1;
    align-self: center;
    justify-self: start;
    min-width: 0;
    max-width: 100%;
    font-family: 'Segoe UI', sans-serif;
    font-size: 15px;
    font-weight: 600;
    line-height: 1;
    color: #707070;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    margin: 0;
}

/* Administrateur - Italic, #707070 — Row 1 (Auto) */
.user-item-admin[b-ikl7anznwd] {
    grid-row: 2;
    align-self: end;
    justify-self: start;
    font-family: 'Segoe UI', sans-serif;
    font-size: 10px;
    font-style: italic;
    line-height: 1;
    color: #707070;
    margin: 0;
}

/* Colonne toggle */
.user-item-toggle[b-ikl7anznwd] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
}

/* Message d'erreur - SegoeUI14, Italic, Margin="0,15,20,0" */
.user-message-error[b-ikl7anznwd] {
    margin: 15px 20px 0 0;
    font-family: 'Segoe UI', sans-serif;
    font-size: 14px;
    font-style: italic;
    color: #dc3545;
}

/* Message de succès */
.user-message-success[b-ikl7anznwd] {
    margin: 15px 20px 0 0;
    font-family: 'Segoe UI', sans-serif;
    font-size: 14px;
    font-style: italic;
    color: #198754;
}
/* /Pages/User/CreateUser.razor.rz.scp.css */
/* Container principal */
.user-create-container[b-ufqk1kzav9] {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 0;
}


/* Contenu principal - pas de margin-top entre header et content */
.user-create-content[b-ufqk1kzav9] {
    flex: 1;
    display: flex;
    overflow: hidden;
}

/* Colonne gauche - Grid.Column="0", Margin="26,0,0,0" */
.column-left[b-ufqk1kzav9] {
    flex: 1;
    margin-left: 26px;
    margin-top: 0;
    margin-right: 0;
    margin-bottom: 0;
    display: flex;
    flex-direction: column;
}

/* Titre de section - SegoeUI14 = 14pt, Bold, ColorTextColor=#0277ED, Height="28", Margin="0,20,0,0" */
.section-title[b-ufqk1kzav9] {
    font-size: 13px; /* 14pt a l'echelle Web */
    font-weight: bold;
    color: #0277ED; /* ColorTextColor */
    font-family: 'Segoe UI', sans-serif;
    height: 28px;
    line-height: 28px;
    margin: 20px 0 0 0;
    padding: 0;
}


/* Container Avatar - Margin="0,20,0,0" */
.avatar-container[b-ufqk1kzav9] {
    margin: 20px 0 0 0;
    max-width: 470px;
}

/* Container des champs de formulaire */
.form-fields[b-ufqk1kzav9] {
    margin-top: 10px;
    max-width: 470px;
}

/* Groupe de formulaire - Margin="0,20,0,0" */
.form-group[b-ufqk1kzav9] {
    margin: 20px 0 0 0;
    max-width: 470px;
}

.form-label[b-ufqk1kzav9] {
    display: block;
    font-size: 10px;
    font-family: 'Segoe UI', sans-serif;
    color: #707070;
    margin-bottom: 5px;
}

.form-input[b-ufqk1kzav9] {
    width: 100%;
    padding: 10px 15px;
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
    border: 1px solid #DBDBDB;
    border-radius: 8px;
    outline: none;
    box-sizing: border-box;
}

.form-input:focus[b-ufqk1kzav9] {
    border-color: #0277ED;
}

/* /Pages/User/EditUser.razor.rz.scp.css */
/* Container principal */
.user-detail-container[b-dk3rdn8f20] {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 0;
}


/* Contenu principal - pas de margin-top entre header et content */
.user-detail-content[b-dk3rdn8f20] {
    flex: 1;
    display: flex;
    overflow: hidden;
}

/* Colonne gauche - Grid.Column="0", Margin="26,0,0,0" */
.column-left[b-dk3rdn8f20] {
    flex: 1;
    margin-left: 26px;
    margin-top: 0;
    margin-right: 0;
    margin-bottom: 0;
    display: flex;
    flex-direction: column;
}

/* Titre de section - SegoeUI14 = 14pt, Bold, ColorTextColor=#0277ED, Height="28", Margin="0,20,0,0" */
.section-title[b-dk3rdn8f20] {
    font-size: 13px; /* 14pt a l'echelle Web */
    font-weight: bold;
    color: #0277ED; /* ColorTextColor */
    font-family: 'Segoe UI', sans-serif;
    height: 28px;
    line-height: 28px;
    margin: 20px 0 0 0;
    padding: 0;
}


/* Container Avatar - Margin="0,20,0,0" */
.avatar-container[b-dk3rdn8f20] {
    margin: 20px 0 0 0;
    max-width: 470px;
}

/* Container des champs de formulaire */
.form-fields[b-dk3rdn8f20] {
    margin-top: 10px;
    max-width: 470px;
}

/* Groupe de formulaire - Margin="0,20,0,0" */
.form-group[b-dk3rdn8f20] {
    margin: 20px 0 0 0;
    max-width: 470px;
}

.form-label[b-dk3rdn8f20] {
    display: block;
    font-size: 10px;
    font-family: 'Segoe UI', sans-serif;
    color: #707070;
    margin-bottom: 5px;
}

.form-input[b-dk3rdn8f20] {
    width: 100%;
    padding: 10px 15px;
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
    border: 1px solid #DBDBDB;
    border-radius: 8px;
    outline: none;
    box-sizing: border-box;
}

.form-input:focus[b-dk3rdn8f20] {
    border-color: #0277ED;
}

.form-input:disabled[b-dk3rdn8f20] {
    background-color: #f5f5f5;
    cursor: not-allowed;
}

/* /Pages/User/ListUser.razor.rz.scp.css */
/* Container principal */
.users-container[b-rrrg7wb4i6] {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 0;
}


/* Contenu principal */
.users-content[b-rrrg7wb4i6] {
    flex: 1;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

/* Titre recherche - SegoeUI14 = 14pt, Bold, ColorTextColor=#0277ED, Margin="26,40,0,40" */
.search-title[b-rrrg7wb4i6] {
    font-size: 13px; /* 14pt a l'echelle Web */
    font-weight: bold;
    color: #0277ED; /* ColorTextColor */
    font-family: 'Segoe UI', sans-serif;
    margin: 40px 0;
    margin-left: 26px;
}

/* Container SearchBox - largeur max 470px comme dans WPF, Margin="26,0,0,0" */
.search-box-container[b-rrrg7wb4i6] {
    max-width: 470px;
    margin-left: 26px;
}

/* Message aucun utilisateur - SegoeUI18 = 18pt, DemiBold, centré, Margin="40,0,40,0" */
.no-users-message[b-rrrg7wb4i6] {
    display: flex;
    justify-content: center;
    align-items: center;
    flex: 1;
    text-align: center;
    margin: 0 40px;
}

.no-users-message p[b-rrrg7wb4i6] {
    font-size: 17px; /* 18pt a l'echelle Web */
    font-weight: 600; /* DemiBold */
    font-family: 'Segoe UI', sans-serif;
    color: #000000; /* ColorTextDark */
    margin: 0;
}

/* Container liste utilisateurs - Margin="0,40,0,0" avec scroll */
.users-list-container[b-rrrg7wb4i6] {
    flex: 1;
    overflow-y: auto;
    margin-top: 40px;
}

/* Liste en WrapPanel - correspond au WrapPanel WPF */
.users-list[b-rrrg7wb4i6] {
    display: flex;
    flex-wrap: wrap;
}

/* Carte utilisateur - Button Margin="0,0,10,0", Border Height="70", Margin="0,0,4,20", Padding="20,5,20,5",
   Background=ColorGreyButton=#F3F3F3, BorderBrush=ColorGreyDark=#707070, BorderThickness="1", CornerRadius="20" */
.user-card[b-rrrg7wb4i6] {
    display: flex;
    align-items: center;
    width: 500px;
    height: 70px;
    padding: 5px 20px;
    margin-right: 10px; /* Button Margin droite */
    margin-bottom: 20px; /* Border Margin bas */
    background-color: #F3F3F3; /* ColorGreyButton */
    border: 1px solid #707070; /* ColorGreyDark */
    border-radius: 20px;
    cursor: pointer;
    transition: background-color 0.2s;
    text-align: left;
}

.user-card:hover[b-rrrg7wb4i6] {
    background-color: #e8e8e8;
}

/* Avatar - correspond à l'Ellipse WPF Width="48" Height="48" */
.user-avatar[b-rrrg7wb4i6] {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
}

.user-avatar img[b-rrrg7wb4i6] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Informations utilisateur - Margin="40,0,0,0" */
.user-info[b-rrrg7wb4i6] {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    margin-left: 40px;
    min-width: 0;
}

/* Nom utilisateur - SegoeUI16 = 16pt, SemiBold, ColorGreyDark=#707070 */
.user-name[b-rrrg7wb4i6] {
    font-size: 15px; /* 16pt a l'echelle Web */
    font-weight: 600; /* SemiBold */
    font-family: 'Segoe UI', sans-serif;
    color: #707070; /* ColorGreyDark */
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.2;
}

/* Label Administrateur - SegoeUI (default), Italic, ColorGreyDark=#707070 */
.user-admin[b-rrrg7wb4i6] {
    font-size: 9px; /* taille par défaut */
    font-style: italic;
    font-family: 'Segoe UI', sans-serif;
    color: #707070; /* ColorGreyDark */
    line-height: 1.2;
}

/* Statut utilisateur - correspond à l'Ellipse WPF Width="20" Height="20" */
.user-status[b-rrrg7wb4i6] {
    flex-shrink: 0;
    margin-left: 10px;
}

.status-circle[b-rrrg7wb4i6] {
    width: 20px;
    height: 20px;
    border-radius: 50%;
}

/* ColorGreen = Green */
.status-circle.active[b-rrrg7wb4i6] {
    background-color: green;
}

/* Rouge pour inactif */
.status-circle.inactive[b-rrrg7wb4i6] {
    background-color: red;
}
/* /Pages/User/ProfilUser.razor.rz.scp.css */
/* ========================================
   ProfilUser.razor.css
   Basé sur ProfileView.xaml du Compagnon
   ======================================== */

/* Container principal - Grid avec 2 lignes et 2 colonnes */
.profil-container[b-gogqgqp2ny] {
    display: grid;
    grid-template-rows: auto 1fr;
    grid-template-columns: 1fr 1fr;
    height: 100%;
    width: 100%;
}

/* ========================================
   HEADER
   Equivalent du Grid.ColumnSpan="2" porte par le Border du header cote XAML
   (ProfileView.xaml l. 25) : sans cette regle le header, premier enfant du grid,
   n'occupe que la cellule ligne 1 / colonne 1, soit la moitie gauche de la page.
   ::deep est indispensable ici : l'element .header-container est rendu par le
   composant UpperBar, il ne porte donc pas l'attribut de portee de cette page.
   ======================================== */
.profil-container[b-gogqgqp2ny]  .header-container {
    grid-row: 1;
    grid-column: 1 / -1;
}

/* ========================================
   MESSAGES D'ERREUR/SUCCES
   Margin="0,10,20,0", SegoeUI14, Italic
   ======================================== */
.info-error-message[b-gogqgqp2ny] {
    margin: 10px 20px 0 0; /* Margin="0,10,20,0" */
    font-size: 13px; /* 14pt a l'echelle Web */
    font-style: italic;
    font-family: 'Segoe UI', sans-serif;
    color: #FF0000; /* ColorButtonCancel */
}

.info-success-message[b-gogqgqp2ny] {
    margin: 10px 20px 0 0; /* Margin="0,10,20,0" */
    font-size: 13px; /* 14pt a l'echelle Web */
    font-style: italic;
    font-family: 'Segoe UI', sans-serif;
    color: green; /* ColorGreen */
}


/* ========================================
   COLONNE GAUCHE
   ScrollViewer: Grid.Row="1", Grid.Column="0", VerticalScrollBarVisibility="Auto"
   Grid interne: Margin="26,20,4,20"
   ======================================== */
.column-left[b-gogqgqp2ny] {
    grid-row: 2;
    grid-column: 1;
    margin: 20px 4px 20px 26px; /* Margin="26,20,4,20" (left,top,right,bottom en WPF) */
    overflow-y: auto;
    overflow-x: hidden;
}

/* Scrollbar style pour column-left */
.column-left[b-gogqgqp2ny]::-webkit-scrollbar {
    width: 8px;
}

.column-left[b-gogqgqp2ny]::-webkit-scrollbar-thumb {
    background: #DBDBDB;
    border-radius: 4px;
}

.column-left[b-gogqgqp2ny]::-webkit-scrollbar-track {
    background: transparent;
}

/* ========================================
   COLONNE DROITE
   Grid: Grid.Row="1", Grid.Column="1", Margin="26,20,20,20"
   ======================================== */
.column-right[b-gogqgqp2ny] {
    grid-row: 2;
    grid-column: 2;
    margin: 20px 20px 20px 26px; /* Margin="26,20,20,20" */
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

/* ========================================
   TITRES DE SECTION
   SegoeUI14, Bold, ColorTextColor=#0277ED
   ======================================== */
.section-title[b-gogqgqp2ny] {
    font-size: 13px; /* 14pt a l'echelle Web */
    font-weight: bold;
    font-family: 'Segoe UI', sans-serif;
    color: #0277ED; /* ColorTextColor */
    margin: 0;
    padding: 0;
}

/* Section Mot de passe - Margin="0,40,0,0" */
.section-password[b-gogqgqp2ny] {
    margin-top: 40px;
}


/* ========================================
   AVATAR
   Margin="0,20,0,0", HorizontalAlignment="Left"
   ======================================== */
.avatar-container[b-gogqgqp2ny] {
    margin-top: 20px;
    max-width: 470px;
}

/* ========================================
   CHAMPS DE FORMULAIRE
   Width max 470px, Margin="0,20,0,0", HorizontalAlignment="Left"
   ======================================== */
.form-fields[b-gogqgqp2ny] {
    margin-top: 10px;
    max-width: 470px;
}

.form-group[b-gogqgqp2ny] {
    margin-top: 20px;
    max-width: 470px;
}

.form-label[b-gogqgqp2ny] {
    display: block;
    font-size: 9px;
    font-family: 'Segoe UI', sans-serif;
    color: #707070;
    margin-bottom: 4px;
}

.form-input[b-gogqgqp2ny] {
    width: 100%;
    padding: 10px 12px;
    font-size: 10px;
    font-family: 'Segoe UI', sans-serif;
    border: 1px solid #DBDBDB;
    border-radius: 8px;
    outline: none;
    box-sizing: border-box;
}

.form-input:focus[b-gogqgqp2ny] {
    border-color: #0277ED;
}

.form-input:disabled[b-gogqgqp2ny] {
    background-color: #f5f5f5;
    cursor: not-allowed;
}

/* ========================================
   BOUTON MODIFIER MOT DE PASSE
   Margin="0,40,0,0", HorizontalAlignment="Left", VerticalAlignment="Top"
   Border: Width="200", Padding="10", CornerRadius="6", BorderBrush=ColorButtonNeutral, BorderThickness="1"
   ======================================== */
.btn-modify-password[b-gogqgqp2ny] {
    margin-top: 40px;
    margin-bottom: 20px;
    width: 200px;
    padding: 10px;
    background-color: transparent;
    color: #000000; /* ColorButtonNeutral */
    border: 1px solid #000000; /* ColorButtonNeutral */
    border-radius: 6px;
    font-size: 15px; /* 16pt a l'echelle Web */
    font-family: 'Segoe UI', sans-serif;
    cursor: pointer;
    text-align: center;
}

.btn-modify-password:hover[b-gogqgqp2ny] {
    background-color: #f0f0f0;
}

/* ========================================
   SECTION SUPPRESSION DU COMPTE
   Propre au Web : point d'entrée vers /deleteaccount
   ======================================== */
.section-delete-account[b-gogqgqp2ny] {
    margin-top: 40px;
}

.delete-account-warning[b-gogqgqp2ny] {
    margin: 10px 20px 0 0;
    max-width: 470px;
    font-size: 12px; /* 12pt a l'echelle Web */
    font-family: 'Segoe UI', sans-serif;
    color: #707070; /* ColorGreyDark */
}

/* Bouton de suppression - meme gabarit que le bouton Modifier voisin, en rouge :
   Padding="10", CornerRadius="6", BorderBrush=ColorButtonCancel.
   Rendu comme un bouton bien qu'il s'agisse d'une ancre, puisqu'il navigue vers
   la page de confirmation au lieu de declencher une action.
   La largeur suit le texte plutot que d'etre figee a 200 px comme le bouton
   voisin : le libelle est trop long pour cette largeur et passait sur deux
   lignes. Le dimensionnement automatique evite d'avoir a choisir une valeur qui
   conviendrait au francais mais pas au neerlandais, le plus long des quatre
   ("Mijn account verwijderen"). min-width conserve le gabarit du voisin comme
   plancher, nowrap garantit la ligne unique quelle que soit la langue. */
.btn-delete-account[b-gogqgqp2ny] {
    display: inline-block;
    margin-top: 20px;
    margin-bottom: 20px;
    min-width: 200px;
    padding: 10px 24px;
    box-sizing: border-box;
    white-space: nowrap;
    background-color: transparent;
    color: #FF0000; /* ColorButtonCancel */
    border: 1px solid #FF0000; /* ColorButtonCancel */
    border-radius: 6px;
    font-size: 15px; /* 16pt a l'echelle Web */
    font-family: 'Segoe UI', sans-serif;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
}

.btn-delete-account:hover[b-gogqgqp2ny] {
    background-color: #FFF0F0;
    color: #FF0000;
}

/* ========================================
   MESSAGE "AUCUN GROUPE"
   HorizontalAlignment="Center", VerticalAlignment="Center"
   FontWeight="SemiBold", SegoeUI14
   ======================================== */
.no-groups[b-gogqgqp2ny] {
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
}

.no-groups span[b-gogqgqp2ny] {
    font-size: 13px; /* 14pt a l'echelle Web */
    font-weight: 600; /* SemiBold */
    font-family: 'Segoe UI', sans-serif;
    color: #000000;
}

/* ========================================
   LISTE DES GROUPES
   ItemsControl: Margin="0,20,0,0"
   ScrollViewer: VerticalScrollBarVisibility="Auto"
   ======================================== */
.groups-list[b-gogqgqp2ny] {
    margin-top: 20px;
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
}

/* Scrollbar style pour groups-list */
.groups-list[b-gogqgqp2ny]::-webkit-scrollbar {
    width: 8px;
}

.groups-list[b-gogqgqp2ny]::-webkit-scrollbar-thumb {
    background: #DBDBDB;
    border-radius: 4px;
}

.groups-list[b-gogqgqp2ny]::-webkit-scrollbar-track {
    background: transparent;
}

/* ========================================
   ELEMENT DE GROUPE
   Border: Margin="0,0,0,20", Padding="20,10,20,10", CornerRadius="16"
   Background=ColorGreyButton, BorderBrush=ColorGreyDark, BorderThickness="1"
   ======================================== */
.group-item[b-gogqgqp2ny] {
    margin-bottom: 20px; /* Margin="0,0,0,20" */
    padding: 10px 20px; /* Padding="20,10,20,10" (left,top,right,bottom) */
    background-color: #F3F5FB; /* ColorGreyButton */
    border: 1px solid #707070; /* ColorGreyDark */
    border-radius: 16px;
}

.group-info[b-gogqgqp2ny] {
    display: flex;
    flex-direction: column;
}

/* Nom du groupe - SegoeUI16, FontWeight="SemiBold", ColorGreyDark */
.group-name[b-gogqgqp2ny] {
    font-size: 15px; /* 16pt a l'echelle Web */
    font-weight: 600; /* SemiBold */
    font-family: 'Segoe UI', sans-serif;
    color: #707070; /* ColorGreyDark */
}

/* Texte "Administrateur" - FontStyle="Italic", ColorGreyDark */
.group-admin[b-gogqgqp2ny] {
    font-size: 10px;
    font-style: italic;
    font-family: 'Segoe UI', sans-serif;
    color: #707070; /* ColorGreyDark */
}

/* ========================================
   MESSAGES DE VALIDATION
   ======================================== */
.validation-messages[b-gogqgqp2ny] {
    margin-top: 10px;
    font-size: 10px;
    font-style: italic;
    font-family: 'Segoe UI', sans-serif;
    color: #FF0000;
}

.validation-messages[b-gogqgqp2ny]  .validation-message {
    display: block;
    margin-top: 4px;
}

/* ========================================
   RESPONSIVE - Adaptation pour écrans étroits
   ======================================== */
@media (max-width: 900px) {
    .profil-container[b-gogqgqp2ny] {
        grid-template-columns: 1fr;
    }


    .column-left[b-gogqgqp2ny] {
        grid-column: 1;
        margin: 20px;
    }

    .column-right[b-gogqgqp2ny] {
        grid-column: 1;
        margin: 20px;
        border-top: 1px solid #DBDBDB;
        padding-top: 20px;
    }
}
/* /Shared/Components/ChartFullscreenButton.razor.rz.scp.css */
/* Bouton Plein ecran - aligne sur .btn-screenshot de la vue d'ensemble */
/* Compagnon : Background=ColorButtonValid, Padding=4, CornerRadius=4, image 22px */
.btn-chart-fullscreen[b-n7eu6m5j5t] {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 4px;
    background-color: #0277ED;
    border: 1px solid #0277ED;
    border-radius: 4px;
    cursor: pointer;
    transition: background-color 0.2s;
}

.btn-chart-fullscreen:hover[b-n7eu6m5j5t] {
    background-color: #0260c0;
}

.btn-chart-fullscreen img[b-n7eu6m5j5t] {
    height: 22px;
    width: 22px;
}
/* /Shared/Components/CustomTooltip.razor.rz.scp.css */
/* ============================================
   CustomTooltip - Style aligné sur Views/Controls/CustomTooltip.xaml du Compagnon
   Border MaxWidth="400", Padding="4", Background ColorBackgroundBlock (#F3F5FB),
   BorderBrush ColorButtonNeutral (#676676), BorderThickness="1", CornerRadius="4"
   ============================================ */

/* Hôte positionné : l'infobulle se place par rapport à lui.
   display: contents est écarté, un élément en display: contents ne peut pas servir
   de référence de positionnement à un enfant en position: absolute. */
.custom-tooltip-host[b-gp032b0822] {
    position: relative;
    display: block;
}

/* Bulle : masquée par défaut, révélée au survol ou à la prise de focus de l'hôte.
   La transition porte sur visibility et opacity plutôt que sur display, qui n'est pas animable. */
.custom-tooltip-bubble[b-gp032b0822] {
    position: absolute;
    top: 50%;
    left: calc(100% + 8px);
    transform: translateY(-50%);
    z-index: 9998;
    max-width: 400px;
    width: max-content;
    padding: 4px;
    background: #F3F5FB;
    border: 1px solid #676676;
    border-radius: 4px;
    /* Le style implicite TextBlock du Compagnon impose ColorTextDark : le blanc de la
       barre latérale ne doit pas être hérité sur le fond clair de la bulle. */
    color: #000000 !important;
    font-family: 'Segoe UI', sans-serif;
    font-size: 10px; /* 10pt a l'echelle Web */
    font-weight: normal;
    line-height: 1.3;
    text-align: left;
    white-space: normal;
    overflow-wrap: break-word;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.15s ease, visibility 0.15s ease;
}

.custom-tooltip-host:hover > .custom-tooltip-bubble[b-gp032b0822],
.custom-tooltip-host:focus-within > .custom-tooltip-bubble[b-gp032b0822] {
    opacity: 1;
    visibility: visible;
}
/* /Shared/Components/Forms/FormAuthInputPassword.razor.rz.scp.css */
.custom-form-label[b-c735b20aww] {
    white-space: normal;
    overflow: visible;
    text-overflow: unset;
    line-height: 1.3;
}

.custom-input-text[b-c735b20aww] {
    min-height: 2.5rem;
}
/* /Shared/Components/Forms/FormAuthInputText.razor.rz.scp.css */
.custom-form-label[b-y8l8cb8vuh] {
    white-space: normal;
    overflow: visible;
    text-overflow: unset;
    line-height: 1.3;
}

.custom-input-text[b-y8l8cb8vuh] {
    min-height: 2.5rem;
}
/* /Shared/Components/Forms/FormCombobox.razor.rz.scp.css */
.custom-form-label[b-gejuvc0fl9] {
    white-space: normal;
    overflow: visible;
    text-overflow: unset;
    line-height: 1.3;
}

.custom-input-text[b-gejuvc0fl9] {
    min-height: 2.5rem;
}
/* /Shared/Components/Forms/FormFileBrowser.razor.rz.scp.css */
.drop-zone[b-g6zc7w6ydh] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 1rem;
    border: 1px dashed #888;
    border-radius: 6px;
    padding: 1rem;
    width: 100%;
}

    /* Classe posée par dropZone.js pendant le survol d'un fichier glissé */
    .drop-zone.hover[b-g6zc7w6ydh] {
        border-style: solid;
        border-color: #1586F4;
    }

.drop-zone-body[b-g6zc7w6ydh] {
    flex: 1 1 200px;
    min-width: 125px;
}

.drop-zone-message[b-g6zc7w6ydh] {
    font-size: 10px;
    font-family: 'Segoe UI', sans-serif;
    color: #333333;
    margin-bottom: 8px;
}

.drop-zone-file[b-g6zc7w6ydh] {
    font-size: 10px;
    font-family: 'Segoe UI', sans-serif;
    color: #333333;
    font-style: italic;
    margin: 8px 0 0 0;
}
/* /Shared/Components/Forms/FormInputColor.razor.rz.scp.css */
/* Boite de sélection de couleur alignée sur ColorBoxEx du Compagnon
   (Border 1px #707070, CornerRadius 6, fond blanc, label 12pt gris, swatch étiré à droite).
   width:100% + box-sizing:border-box forcent la boite à prendre toute la largeur du parent. */
.form-color-box[b-2tk7hfs7kd] {
    display: grid;
    grid-template-columns: 80px 1fr;
    gap: 10px;
    align-items: center;
    box-sizing: border-box;
    width: 100%;
    margin-top: 10px;
    padding: 6px 8px 4px 8px;
    background: #FFFFFF;
    border: 1px solid #707070;
    border-radius: 6px;
    min-height: 44px;
}

.form-color-label[b-2tk7hfs7kd] {
    font-family: 'Segoe UI', sans-serif;
    font-size: 9px;
    color: #707070;
    line-height: 1.15;
    white-space: normal;
    word-break: break-word;
}

/* Wrapper qui occupe TOUTE la largeur de la 2e col (1fr).
   min-width:0 neutralise le min-content par défaut des grid items. */
.form-color-input-wrapper[b-2tk7hfs7kd] {
    position: relative;
    width: 100%;
    height: 30px;
    min-width: 0;
}

/* L'input est rendu par <InputText> (composant Blazor) et n'herite donc
   PAS de l'attribut de scope du fichier parent. On passe par ::deep
   depuis le wrapper (qui, lui, porte le scope) pour que la regle
   s'applique reellement au <input type="color">. Sans ::deep, la regle
   UA `inline-size:50px` gagne et l'input reste fige a 50px. */
.form-color-input-wrapper[b-2tk7hfs7kd]  .form-color-input {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    position: absolute;
    inset: 0;
    inline-size: 100%;
    block-size: 100%;
    width: 100%;
    height: 100%;
    border: 0;
    padding: 0;
    margin: 0;
    background: transparent;
    cursor: pointer;
}

/* Retire les paddings/bordures internes pour que le swatch colore
   remplisse tout l'input bord a bord. */
.form-color-input-wrapper[b-2tk7hfs7kd]  .form-color-input::-webkit-color-swatch-wrapper {
    padding: 0;
}

.form-color-input-wrapper[b-2tk7hfs7kd]  .form-color-input::-webkit-color-swatch {
    border: none;
    border-radius: 4px;
}

.form-color-input-wrapper[b-2tk7hfs7kd]  .form-color-input::-moz-color-swatch {
    border: none;
    border-radius: 4px;
}

.form-color-input-wrapper[b-2tk7hfs7kd]  .form-color-input:disabled {
    cursor: not-allowed;
    opacity: 0.6;
}
/* /Shared/Components/Forms/FormInputPassword.razor.rz.scp.css */
.custom-form-label[b-hlqip8cbt6] {
    white-space: normal;
    overflow: visible;
    text-overflow: unset;
    line-height: 1.3;
}

.custom-input-text[b-hlqip8cbt6] {
    min-height: 2.5rem;
}
/* /Shared/Components/Forms/FormInputText.razor.rz.scp.css */
.custom-form-label[b-vkqanfubem] {
    white-space: normal;
    overflow: visible;
    text-overflow: unset;
    line-height: 1.3;
}

.custom-input-text[b-vkqanfubem] {
    min-height: 2.5rem;
}
/* /Shared/Components/Forms/FormPagination.razor.rz.scp.css */
/* Container principal - Border avec fond, bordure et coins arrondis */
.pagination-container[b-sd977iujy3] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 4px 6px;
    background: #F3F5FB;
    border: 1px solid #707070;
    border-radius: 6px;
}

/* Boutons de navigation - 32x32, fond vert, coins arrondis */
.pagination-btn[b-sd977iujy3] {
    width: 32px;
    height: 32px;
    padding: 6px;
    background: #0277ED;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

.pagination-btn:hover:not(:disabled)[b-sd977iujy3] {
    background: #0056b3;
}

.pagination-btn:disabled[b-sd977iujy3] {
    opacity: 0.5;
    cursor: not-allowed;
}

/* Zone info page courante / total */
.pagination-info[b-sd977iujy3] {
    display: flex;
    align-items: center;
    gap: 0;
}

/* Input de saisie de page - 50x28, centré, bordure grise */
.pagination-input[b-sd977iujy3] {
    width: 50px;
    height: 28px;
    text-align: center;
    font-size: 12px; /* 12pt a l'echelle Web */
    font-weight: 600;
    color: #000000;
    border: 1px solid #707070;
    border-radius: 0;
    outline: none;
    background: white;
}

/* Séparateur "/" */
.pagination-separator[b-sd977iujy3] {
    margin: 0 10px;
    font-size: 12px; /* 12pt a l'echelle Web */
    font-weight: 600;
    color: #000000;
}

/* Total pages */
.pagination-total[b-sd977iujy3] {
    font-size: 12px; /* 12pt a l'echelle Web */
    font-weight: 600;
    color: #000000;
}
/* /Shared/Components/Forms/FormPictureBrowser.razor.rz.scp.css */
.container[b-iq9d6qek0p] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 1rem;
    border: 1px dashed #888;
    border-radius: 6px;
    padding: 1rem;
    width: fit-content;
    margin-right: 4rem;
}

    .container.hover[b-iq9d6qek0p] {
        border-style: solid;
        border-color: #1586F4;
    }

    .container img[b-iq9d6qek0p] {
        width: 100%;
        max-width: 125px;
        aspect-ratio: 1 / 1;
        object-fit: cover;
        flex-shrink: 0;
        border-radius: 12px;
    }

.texte[b-iq9d6qek0p] {
    flex: 1 1 200px;
    min-width: 125px;
}

.edit-btn[b-iq9d6qek0p] {
    width: 48px;
    height: 48px;
    background: blue;
    position:relative;
    top: 0;
    left: 0;
}

.div-container[b-iq9d6qek0p] {
    width: 100%;
    max-width: 125px;
    position:relative;
}

    .div-container img[b-iq9d6qek0p] {
        width: 100%;
        height: auto;
        border-radius: 12px;
        box-shadow: 2px 2px 2px 1px #DFDFDF;
    }

    .div-container .btn[b-iq9d6qek0p] {
        position: absolute;
        top: 100%;
        left: 100%;
        transform: translate(-130%, -130%);
        -ms-transform: translate(-130%, -130%);
        font-size: 14px;
        border: none;
        cursor: pointer;
        border-radius: 5px;
        text-align: center;
        box-shadow: 2px 2px 2px 1px #DFDFDF;
    }

.icon-btn[b-iq9d6qek0p] {
    background-image: url(../img/Edit3.png);
    background-size: cover;
    display: inline-block;
}
/* /Shared/Components/Forms/FormToggleSwitch.razor.rz.scp.css */
/* Ligne toggle - Margin="0,20,0,0" */
.toggle-row[b-fo0sfmep5z] {
    display: flex;
    align-items: center;
    margin: 20px 0 0 0;
}

/* Toggle switch style */
.toggle-switch[b-fo0sfmep5z] {
    position: relative;
    display: inline-block;
    width: 50px;
    height: 24px;
}

.toggle-switch input[b-fo0sfmep5z] {
    opacity: 0;
    width: 0;
    height: 0;
}

.toggle-slider[b-fo0sfmep5z] {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #ccc;
    transition: 0.3s;
    border-radius: 24px;
}

.toggle-slider[b-fo0sfmep5z]:before {
    position: absolute;
    content: "";
    height: 18px;
    width: 18px;
    left: 3px;
    bottom: 3px;
    background-color: white;
    transition: 0.3s;
    border-radius: 50%;
}

.toggle-switch input:checked + .toggle-slider[b-fo0sfmep5z] {
    background-color: #0277ED;
}

.toggle-switch input:checked + .toggle-slider[b-fo0sfmep5z]:before {
    transform: translateX(26px);
}

/* Label toggle - Margin="40,0,0,0", SegoeUI14, SemiBold */
.toggle-label[b-fo0sfmep5z] {
    margin: 0 0 0 40px;
    font-size: 13px; /* 14pt a l'echelle Web */
    font-weight: 600; /* SemiBold */
    font-family: 'Segoe UI', sans-serif;
    color: #000000;
}
/* /Shared/Components/Forms/FormUserSearch.razor.rz.scp.css */
/* Wrapper champ de recherche + encart flottant des resultats.
   position:relative pour ancrer le panneau absolute sous le champ. */
.user-search-wrapper[b-zot8ja2sps] {
    position: relative;
}

/* Champ de recherche -- reproduit le WPF <Border Background="White"
   BorderBrush="ColorGreyDark" CornerRadius="6"> de SearchControlView. */
.user-search-box[b-zot8ja2sps] {
    display: flex;
    align-items: center;
    padding: 8px 12px;
    background-color: #FFFFFF;
    border: 1px solid #DBDBDB;
    border-radius: 8px;
}

/* Icone de recherche -- WPF <Image Height="22" Source="Search2.png"> */
.user-search-icon[b-zot8ja2sps] {
    width: 24px;
    height: 24px;
    margin-right: 10px;
    opacity: 0.6;
}

.user-search-input[b-zot8ja2sps] {
    flex: 1;
    border: none;
    outline: none;
    background: transparent;
    font-family: 'Segoe UI', sans-serif;
    font-size: 10px;
}

.user-search-input[b-zot8ja2sps]::placeholder {
    color: #999999;
}

/* Encart flottant des resultats -- reproduit le WPF <Popup Placement="Bottom">.
   Non-modal : le contenu en dessous reste en place (z-index au-dessus). */
.user-search-panel[b-zot8ja2sps] {
    position: absolute;
    top: calc(100% + 2px);
    left: 0;
    right: 0;
    z-index: 1000;
    padding: 10px;
    background: #E3E6E9;
    border: 1px solid #707070;
    border-radius: 6px;
    max-height: 400px;
    overflow-y: auto;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}

/* Overlay plein ecran transparent -- equivalent du WPF StaysOpen="False" :
   tout clic en dehors du panneau ferme la popup. z-index juste sous le panneau. */
.user-search-overlay[b-zot8ja2sps] {
    position: fixed;
    inset: 0;
    z-index: 999;
    background: transparent;
}

.user-search-list[b-zot8ja2sps] {
    list-style: none;
    margin: 0;
    padding: 0;
}

.user-search-list li[b-zot8ja2sps] {
    padding: 6px 8px;
    margin: 2px 0;
    border-radius: 4px;
    cursor: pointer;
    font-family: 'Segoe UI', sans-serif;
    font-size: 10px;
    color: #707070;
}

.user-search-list li:hover[b-zot8ja2sps] {
    background: #FFFFFF;
}

/* Etat "aucun resultat" -- WPF <TextBlock Text="- Aucun resultat -"> */
.user-search-empty[b-zot8ja2sps] {
    margin: 0;
    padding: 6px 8px;
    font-family: 'Segoe UI', sans-serif;
    font-size: 10px;
    font-style: italic;
    color: #707070;
}

/* Case a cocher de restriction au groupe -- padding-left compense le overflow a gauche
   du transform:scale(1.4) applique sur la checkbox (16px x 1.4 = 22.4px, debordement ~3.2px a gauche) */
.user-search-group-only[b-zot8ja2sps] {
    display: flex;
    align-items: center;
    margin: 10px 0 0 0;
    padding-left: 6px;
}

/* Label de la case a cocher - SegoeUI14, #707070, Margin="16,0,0,0" */
.user-search-group-only-label[b-zot8ja2sps] {
    margin-left: 16px;
    font-family: 'Segoe UI', sans-serif;
    font-size: 14px;
    color: #707070;
}
/* /Shared/Components/LoadingOverlay.razor.rz.scp.css */
/* ============================================
   LoadingOverlay - Style aligné sur Views/Controls/Spinner.xaml du Compagnon
   Rectangle Fill="#AA000000" en plein écran, image Spinner.png de 50 px de haut
   centrée et animée d'une rotation continue de 360 degrés par seconde.
   Le message texte du Spinner WPF n'est pas transposé : l'overlay Web n'affiche aucun
   libellé, il n'a donc besoin d'aucune clé de traduction.
   ============================================ */

/* Fond plein écran. position: fixed est indispensable : l'overlay est monté dans un layout
   dont les conteneurs sont eux-mêmes positionnés (.popup-layout-container est en
   position: relative) et un position: absolute se rognerait sur eux au lieu de couvrir
   la fenêtre.
   z-index 10000 : au-dessus de toutes les couches existantes du projet, relevées avant
   de choisir cette valeur — sélecteur de langue 1000 / 1001, popups et overlays de page
   1000 / 1001, modales de courbes 1060 / 1065, infobulles 9998, hôte de notifications
   9999. Cet ordre est celui du Compagnon : dans MasterUtilities.xaml, le Spinner est
   déclaré APRÈS les popups et les notifications, donc rendu au-dessus d'elles. */
.loading-overlay-backdrop[b-mebecyq8dz] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.667); /* #AA000000 */
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10000;
}

/* Image Height="50" du Spinner WPF, RenderTransformOrigin="0.5,0.5" */
.loading-overlay-spinner[b-mebecyq8dz] {
    height: 50px;
    width: auto;
    transform-origin: 50% 50%;
    animation: loading-overlay-rotate-b-mebecyq8dz 1s linear infinite;
}

/* Storyboard RepeatBehavior="Forever" : 0 -> 360 degrés en 0:0:1.0 */
@keyframes loading-overlay-rotate-b-mebecyq8dz {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}
/* /Shared/Components/LoginPartial.razor.rz.scp.css */
.navbar-toggler[b-npgsuyqy3t] {
    background-color: rgba(255, 255, 255, 0.1);
}

.top-row[b-npgsuyqy3t] {
    height: 3.5rem;
    background-color: rgba(0,0,0,0.4);
}

.navbar-brand[b-npgsuyqy3t] {
    font-size: 0.79rem;
}

.oi[b-npgsuyqy3t] {
    width: 2rem;
    font-size: 0.79rem;
    vertical-align: text-top;
    top: -2px;
}

.nav-item[b-npgsuyqy3t] {
    font-size: 0.65rem;
    padding-bottom: 0.5rem;
}

    .nav-item:first-of-type[b-npgsuyqy3t] {
        padding-top: 1rem;
    }

    .nav-item:last-of-type[b-npgsuyqy3t] {
        padding-bottom: 1rem;
    }

    .nav-item[b-npgsuyqy3t]  a {
        color: #d7d7d7;
        border-radius: 4px;
        height: 3rem;
        display: flex;
        align-items: center;
        line-height: 3rem;
    }

@media (min-width: 641px) {
    .navbar-toggler[b-npgsuyqy3t] {
        display: none;
    }

    .collapse[b-npgsuyqy3t] {
        /* Never collapse the sidebar for wide screens */
        display: block;
    }
}
/* /Shared/Components/NotificationHost.razor.rz.scp.css */
/* ============================================
   NotificationHost - Style aligné sur NotificationItem.xaml du Compagnon
   ============================================ */

/* Conteneur empilé en bas à droite (310px de large côté XAML -> 300px réels mesurés) */
.notification-host-container[b-tc0tuvq2mv] {
    position: fixed;
    bottom: 0;
    right: 0;
    width: 310px;
    display: flex;
    flex-direction: column-reverse;
    gap: 10px;
    padding: 10px;
    pointer-events: none;
    z-index: 9999;
}

/* Toast individuel : largeur 300px, hauteur 120px, fond ColorBackgroundHeader (#2A2E3F), bordure ColorButtonNeutral, coins arrondis 10px */
.notification-toast[b-tc0tuvq2mv] {
    width: 300px;
    min-height: 120px;
    background: #2A2E3F;
    border: 1px solid #707070;
    border-radius: 10px;
    padding: 10px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
    pointer-events: all;
    animation: slide-in-b-tc0tuvq2mv 0.5s cubic-bezier(0.23, 1, 0.32, 1),
               slide-out-b-tc0tuvq2mv 0.5s cubic-bezier(0.23, 1, 0.32, 1) 3.5s forwards;
}

/* Animation d'entrée : translation depuis 320px (hors écran) à 0 */
@keyframes slide-in-b-tc0tuvq2mv {
    from {
        transform: translateX(320px);
    }
    to {
        transform: translateX(0);
    }
}

/* Animation de sortie : translation de 0 à 320px */
@keyframes slide-out-b-tc0tuvq2mv {
    from {
        transform: translateX(0);
    }
    to {
        transform: translateX(320px);
    }
}

/* Contenu de la notification : disposition verticale */
.notification-content[b-tc0tuvq2mv] {
    display: flex;
    flex-direction: column;
    height: 100%;
}

/* En-tête avec titre et bouton de fermeture */
.notification-header[b-tc0tuvq2mv] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
}

/* En-tête sans titre : bouton de fermeture seul à droite */
.notification-header-no-title[b-tc0tuvq2mv] {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    margin-bottom: 8px;
}

/* Ligne titre */
.notification-title-row[b-tc0tuvq2mv] {
    display: flex;
    align-items: center;
    flex: 1;
}

/* Titre de la notification */
.notification-title[b-tc0tuvq2mv] {
    color: white;
    font-weight: bold;
    font-size: 10px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Bouton de fermeture */
.notification-close-btn[b-tc0tuvq2mv] {
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 0;
    margin-left: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
}

    .notification-close-btn:hover[b-tc0tuvq2mv] {
        opacity: 0.7;
    }

/* Icône de fermeture */
.notification-close-icon[b-tc0tuvq2mv] {
    width: 16px;
    height: 16px;
    filter: brightness(0) invert(1);
}

/* Message de la notification : zone flexible avec wrap */
.notification-message[b-tc0tuvq2mv] {
    flex: 1;
    color: white;
    font-size: 10px;
    overflow: hidden;
    word-wrap: break-word;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    line-height: 1.4;
}

/* Bouton d'action : hauteur 25px, fond ColorButtonNeutral (#707070), coins arrondis 4px */
.notification-action-btn[b-tc0tuvq2mv] {
    height: 25px;
    margin-top: 10px;
    background: #707070;
    border: 1px solid #707070;
    border-radius: 4px;
    color: white;
    font-size: 10px;
    cursor: pointer;
    padding: 4px;
    text-align: center;
    transition: opacity 0.2s;
}

    .notification-action-btn:hover[b-tc0tuvq2mv] {
        opacity: 0.8;
    }
/* /Shared/Components/Popups/ConfirmationModal.razor.rz.scp.css */
/* Bouton de confirmation - rouge ColorButtonCancel du Compagnon (#FF0000).
   Le sélecteur est doublé (.btn.btn-confirm) pour battre en spécificité le Bootstrap
   du CDN, chargé après le bundle d'isolation dans Pages/_Layout.cshtml. */
.btn.btn-confirm[b-2gaq8bttxr] {
    background-color: #FF0000;
    border: 1px solid #FF0000;
    color: #FFFFFF;
}

.btn.btn-confirm:hover[b-2gaq8bttxr],
.btn.btn-confirm:focus[b-2gaq8bttxr],
.btn.btn-confirm:active[b-2gaq8bttxr] {
    background-color: #CC0000;
    border-color: #CC0000;
    color: #FFFFFF;
}
/* /Shared/Components/Popups/CurvePointsPopup.razor.rz.scp.css */
/* Erreur */
.popup-error[b-0d3ws6ayvv] {
    color: #FF0000;
    font-size: 10px;
    font-family: 'Segoe UI', sans-serif;
    margin-bottom: 10px;
}

/* Message de succes - ColorButtonValid du Compagnon (#0277ED) */
.popup-success[b-0d3ws6ayvv] {
    color: #0277ED;
    font-size: 10px;
    font-family: 'Segoe UI', sans-serif;
    margin-bottom: 10px;
}

/* Toolbar - deux groupes gauche/droite comme le XAML */
.points-toolbar[b-0d3ws6ayvv] {
    display: flex;
    justify-content: space-between;
    margin-bottom: 10px;
}

.toolbar-left[b-0d3ws6ayvv],
.toolbar-right[b-0d3ws6ayvv] {
    display: flex;
    align-items: center;
    gap: 10px;
}

.btn-toolbar[b-0d3ws6ayvv] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    background-color: #0277ED;
    border: 1px solid #666666;
    border-radius: 4px;
    cursor: pointer;
    padding: 4px;
    transition: background-color 0.2s;
}

.btn-toolbar:hover[b-0d3ws6ayvv] {
    background-color: #0260c0;
}

.btn-toolbar img[b-0d3ws6ayvv] {
    height: 24px;
    object-fit: contain;
}

/* Bouton supprimer tout - juste une image, pas de bordure */
.btn-toolbar-clear[b-0d3ws6ayvv] {
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: transparent;
    border: none;
    cursor: pointer;
    padding: 0;
}

.btn-toolbar-clear img[b-0d3ws6ayvv] {
    height: 34px;
}

/* Liste des points */
.points-list[b-0d3ws6ayvv] {
    max-height: 400px;
    overflow-y: auto;
}

.point-row[b-0d3ws6ayvv] {
    display: flex;
    align-items: center;
    padding: 8px 10px;
    border-radius: 8px;
    gap: 10px;
}

.point-row-alt[b-0d3ws6ayvv] {
    background-color: #F3F5FB;
}

.point-fields[b-0d3ws6ayvv] {
    flex: 1;
    display: flex;
    gap: 10px;
}

.point-field[b-0d3ws6ayvv] {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.point-label[b-0d3ws6ayvv] {
    font-size: 9px;
    font-family: 'Segoe UI', sans-serif;
    color: #666666;
    font-weight: 600;
}

.point-input[b-0d3ws6ayvv] {
    font-size: 10px;
    font-family: 'Segoe UI', sans-serif;
    padding: 4px 8px;
    border: 1px solid #cccccc;
    border-radius: 6px;
    outline: none;
}

.point-input:focus[b-0d3ws6ayvv] {
    border-color: #0277ED;
}

/* Libelle de semaine ISO sous la date - SegoeUI8 gris du Compagnon */
.point-week[b-0d3ws6ayvv] {
    font-size: 8px;
    font-family: 'Segoe UI', sans-serif;
    color: #707070;
    padding-left: 6px;
}

/* Bouton supprimer point */
.btn-delete-point[b-0d3ws6ayvv] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    background-color: transparent;
    border: none;
    cursor: pointer;
    padding: 0;
}

.btn-delete-point img[b-0d3ws6ayvv] {
    height: 24px;
}
/* /Shared/Components/Popups/CurveStatusPopup.razor.rz.scp.css */
/* Erreur */
.popup-error[b-apoj7ilewp] {
    color: #FF0000;
    font-size: 10px;
    font-family: 'Segoe UI', sans-serif;
    margin-bottom: 10px;
}

/* Selection de typologie - FormCombobox porte son propre libelle flottant */
.typo-selector[b-apoj7ilewp] {
    margin-bottom: 15px;
}

/* Liste des statuts */
.status-list[b-apoj7ilewp] {
    max-height: 400px;
    overflow-y: auto;
}

.status-row[b-apoj7ilewp] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 0;
    border-bottom: 1px solid #f0f0f0;
}

.status-color[b-apoj7ilewp] {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    flex-shrink: 0;
}

.status-name[b-apoj7ilewp] {
    font-size: 10px;
    font-family: 'Segoe UI', sans-serif;
    font-weight: 600;
    min-width: 100px;
}

.status-code[b-apoj7ilewp] {
    font-size: 9px;
    font-family: 'Segoe UI', sans-serif;
    color: #666666;
    flex: 1;
}

.status-weight[b-apoj7ilewp] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-left: auto;
}

.weight-label[b-apoj7ilewp] {
    font-size: 9px;
    font-family: 'Segoe UI', sans-serif;
    color: #666666;
    white-space: nowrap;
}

.weight-input[b-apoj7ilewp] {
    width: 80px;
    padding: 4px 8px;
    border: 1px solid #cccccc;
    border-radius: 6px;
    font-size: 10px;
    font-family: 'Segoe UI', sans-serif;
    text-align: right;
    outline: none;
}

.weight-input:focus[b-apoj7ilewp] {
    border-color: #0277ED;
}
/* /Shared/Components/Popups/CurveZonePopup.razor.rz.scp.css */
/* Erreur */
.popup-error[b-sghvehro2b] {
    color: #FF0000;
    font-size: 10px;
    font-family: 'Segoe UI', sans-serif;
    margin-bottom: 10px;
}

/* Statut DataPool - Margin=0,40,0,0 HorizontalAlignment=Center */
.datapool-status[b-sghvehro2b] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    margin-top: 20px;
    margin-bottom: 20px;
}

.datapool-active[b-sghvehro2b] {
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
    color: #4CAF50;
}

.datapool-inactive[b-sghvehro2b] {
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
    color: gray;
}

/* Bouton supprimer - Width=120 Background=ColorButtonCancel CornerRadius=12 */
.btn-delete-pool[b-sghvehro2b] {
    width: 120px;
    padding: 4px 6px;
    background-color: #DC3545;
    color: #FFFFFF;
    border: 1px solid #DC3545;
    border-radius: 12px;
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
    cursor: pointer;
    text-align: center;
    transition: background-color 0.2s;
}

.btn-delete-pool:hover[b-sghvehro2b] {
    background-color: #c82333;
}

/* Carte zone - Border Background=ColorBackgroundBlock CornerRadius=12 DropShadow Padding=20 */
.zone-card[b-sghvehro2b] {
    padding: 20px;
    background-color: #F3F5FB;
    border-radius: 12px;
    box-shadow: 0px 3px 6px rgba(223, 223, 223, 0.5);
}

/* Liste des zones */
.zone-list[b-sghvehro2b] {
    max-height: 300px;
    overflow-y: auto;
    overflow-x: hidden;
}

.zone-row[b-sghvehro2b] {
    display: flex;
    align-items: center;
    padding: 10px;
    border-radius: 8px;
    gap: 10px;
}

.zone-row-even[b-sghvehro2b] {
    background-color: #FFFFFF;
}

/* Nom de la zone - SegoeUI14 = ~19px */
.zone-name[b-sghvehro2b] {
    flex: 1;
    min-width: 0;
    font-size: 14px;
    font-family: 'Segoe UI', sans-serif;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Poids */
.zone-weight[b-sghvehro2b] {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
}

.zone-weight-label[b-sghvehro2b] {
    font-size: 9px;
    font-family: 'Segoe UI', sans-serif;
    color: #666666;
    white-space: nowrap;
}

.zone-weight-input[b-sghvehro2b] {
    width: 80px;
    padding: 4px 8px;
    border: 1px solid #cccccc;
    border-radius: 6px;
    font-size: 10px;
    font-family: 'Segoe UI', sans-serif;
    text-align: right;
    outline: none;
}

.zone-weight-input:focus[b-sghvehro2b] {
    border-color: #0277ED;
}

/* Total - Margin=0,10,0,0 HorizontalAlignment=Center SegoeUI14 */
.zone-total[b-sghvehro2b] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    margin-top: 10px;
}

.zone-total-label[b-sghvehro2b] {
    font-size: 14px;
    font-family: 'Segoe UI', sans-serif;
    font-weight: 600;
}

.zone-total-value[b-sghvehro2b] {
    font-size: 14px;
    font-family: 'Segoe UI', sans-serif;
}

.total-error[b-sghvehro2b] {
    color: #DC3545;
}

/* Pas de zone */
.no-zone[b-sghvehro2b] {
    text-align: center;
    color: #666666;
    font-style: italic;
    padding: 30px 0;
    font-size: 14px;
    font-family: 'Segoe UI', sans-serif;
}
/* /Shared/Components/Popups/ElementHistoryPopup.razor.rz.scp.css */
/* ========================================
   ElementHistoryPopup.razor.css
   Basé sur ElementHistoryPopupView.xaml du Compagnon
   ======================================== */

/* Message d'erreur de la popup */
.popup-error[b-woboirb136] {
    margin-bottom: 15px;
    font-size: 13px; /* 14pt a l'echelle Web */
    font-style: italic;
    font-family: 'Segoe UI', sans-serif;
    color: #FF0000; /* ColorButtonCancel */
    text-align: center;
}

/* Liste scrollable - Height=400 dans le Compagnon */
.history-list[b-woboirb136] {
    max-height: 400px;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 20px;
    background-color: #F3F5FB; /* ColorBackgroundBlock */
    border-radius: 12px;
}

.history-list[b-woboirb136]::-webkit-scrollbar {
    width: 8px;
}

.history-list[b-woboirb136]::-webkit-scrollbar-thumb {
    background: #DBDBDB;
    border-radius: 4px;
}

.history-list[b-woboirb136]::-webkit-scrollbar-track {
    background: transparent;
}

/* État vide et chargement */
.history-empty[b-woboirb136] {
    padding: 40px 20px;
    font-size: 13px; /* 14pt a l'echelle Web */
    font-style: italic;
    font-family: 'Segoe UI', sans-serif;
    color: #808080;
    text-align: center;
}

/* Entrée d'historique */
.history-item[b-woboirb136] {
    padding: 10px 0;
    border-bottom: 1px solid #DBDBDB;
}

.history-item:last-child[b-woboirb136] {
    border-bottom: none;
}

.history-item-header[b-woboirb136] {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

/* Nom du statut - SemiBold */
.history-status[b-woboirb136] {
    font-size: 13px; /* 14pt a l'echelle Web */
    font-weight: 600;
    font-family: 'Segoe UI', sans-serif;
    color: #000000;
}

.history-date[b-woboirb136] {
    font-size: 12px; /* 12pt a l'echelle Web */
    font-family: 'Segoe UI', sans-serif;
    color: #000000;
}

.history-user[b-woboirb136] {
    margin-top: 3px;
    font-size: 12px; /* 12pt a l'echelle Web */
    font-family: 'Segoe UI', sans-serif;
    color: #000000;
}

/* Commentaire - italique gris, masqué si vide */
.history-comment[b-woboirb136] {
    margin-top: 3px;
    font-size: 12px; /* 12pt a l'echelle Web */
    font-style: italic;
    font-family: 'Segoe UI', sans-serif;
    color: #808080;
}

/* Bouton de fermeture */
.btn-close-history[b-woboirb136] {
    width: 200px;
    padding: 10px;
    background-color: #0277ED; /* ColorButtonValid */
    color: #FFFFFF; /* ColorTextLight */
    border: none;
    border-radius: 15px;
    font-size: 13px; /* 14pt a l'echelle Web */
    font-family: 'Segoe UI', sans-serif;
    cursor: pointer;
}

.btn-close-history:hover[b-woboirb136] {
    opacity: 0.9;
}
/* /Shared/Components/Popups/EntityDeletePopup.razor.rz.scp.css */
/* Overlay - fond semi-transparent */
.popup-overlay[b-hcse1mxykt] {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 1000;
}

/* Container popup - Border WPF avec Padding="40,20,40,20", Background="White", CornerRadius="12", DropShadow */
.popup-container[b-hcse1mxykt] {
    background-color: #FFFFFF;
    padding: 20px 40px;
    border-radius: 12px;
    box-shadow: 0px 3px 6px rgba(223, 223, 223, 0.5); /* DropShadow ColorDropShadow=#DFDFDF */
    max-width: 600px;
    text-align: center;
}

/* Titre - SegoeUI14 = 14pt, centré */
.popup-title[b-hcse1mxykt] {
    font-size: 13px; /* 14pt a l'echelle Web */
    font-family: 'Segoe UI', sans-serif;
    color: #000000;
    margin: 0;
    text-align: center;
}

.popup-title strong[b-hcse1mxykt] {
    font-weight: bold;
}

/* Message - SegoeUI14 = 14pt, centré, Margin="0,30,0,0" */
.popup-message[b-hcse1mxykt] {
    font-size: 13px; /* 14pt a l'echelle Web */
    font-family: 'Segoe UI', sans-serif;
    color: #000000;
    margin: 30px 0 0 0;
    text-align: center;
    line-height: 1.5;
}

/* Texte de confirmation - SegoeUI14 = 14pt, Italic, Bold, centré, Margin="0,30,0,0" */
.popup-confirm[b-hcse1mxykt] {
    font-size: 13px; /* 14pt a l'echelle Web */
    font-family: 'Segoe UI', sans-serif;
    font-style: italic;
    font-weight: bold;
    color: #000000;
    margin: 30px 0 0 0;
    text-align: center;
}

/* Container boutons - Margin="0,40,0,0", centré, horizontal */
.popup-buttons[b-hcse1mxykt] {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 40px;
    gap: 0;
}

/* Bouton Supprimer - Width="200", Padding="10", Background=ColorButtonCancel=#FF0000, CornerRadius="15", BorderThickness="2" */
.btn-delete[b-hcse1mxykt] {
    width: 200px;
    padding: 10px;
    background-color: #FF0000; /* ColorButtonCancel - ROUGE */
    color: #FFFFFF; /* ColorTextLight */
    border: 2px solid #FF0000;
    border-radius: 15px;
    font-size: 15px; /* 16pt a l'echelle Web */
    font-family: 'Segoe UI', sans-serif;
    cursor: pointer;
    transition: background-color 0.2s;
}

.btn-delete:hover[b-hcse1mxykt] {
    background-color: #cc0000;
    border-color: #cc0000;
}

/* Bouton Annuler - Width="200", Padding="10", BorderBrush="Black", BorderThickness="2", CornerRadius="15", Margin="40,0,0,0" */
.btn-cancel[b-hcse1mxykt] {
    width: 200px;
    padding: 10px;
    margin-left: 40px;
    background-color: transparent;
    color: #000000;
    border: 2px solid #000000;
    border-radius: 15px;
    font-size: 15px; /* 16pt a l'echelle Web */
    font-family: 'Segoe UI', sans-serif;
    cursor: pointer;
    transition: background-color 0.2s;
}

.btn-cancel:hover[b-hcse1mxykt] {
    background-color: #f0f0f0;
}
/* /Shared/Components/Popups/FileTransferProgressModal.razor.rz.scp.css */
/* Overlay de transfert - Background="#A5000000" */
.loading-overlay[b-k2d3oj8wrf] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.65);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
}

/* Popup de transfert - Width="500", Padding="40,20,40,20", CornerRadius="12" */
.loading-popup[b-k2d3oj8wrf] {
    width: 500px;
    padding: 20px 40px;
    background-color: #FFFFFF;
    border-radius: 12px;
    box-shadow: 0px 3px 6px rgba(223, 223, 223, 0.5);
    text-align: center;
}

/* Titre - SegoeUI14, Bold */
.loading-title[b-k2d3oj8wrf] {
    font-size: 13px; /* 14pt a l'echelle Web */
    font-weight: bold;
    font-family: 'Segoe UI', sans-serif;
    margin: 0 0 20px 0;
}

/* Message - SegoeUI12 */
.loading-message[b-k2d3oj8wrf] {
    font-size: 12px; /* 12pt a l'echelle Web */
    font-family: 'Segoe UI', sans-serif;
    margin: 0 0 10px 0;
}

/* Container barre de progression */
.progress-bar-container[b-k2d3oj8wrf] {
    height: 30px;
    background-color: #e0e0e0;
    border-radius: 5px;
    overflow: hidden;
    margin: 10px 0;
}

.progress-bar[b-k2d3oj8wrf] {
    height: 100%;
    background-color: #0277ED;
    transition: width 0.3s ease;
}

/* Texte de progression - ColorTextColor=#0277ED */
.progress-text[b-k2d3oj8wrf] {
    font-size: 10px;
    font-family: 'Segoe UI', sans-serif;
    color: #0277ED; /* ColorTextColor */
}

/* Compteur de fichiers - affiche uniquement en transfert multiple */
.transfer-file-counter[b-k2d3oj8wrf] {
    font-size: 12px; /* 12pt a l'echelle Web */
    font-weight: bold;
    font-family: 'Segoe UI', sans-serif;
    margin: 0 0 5px 0;
}

/* Nom du fichier courant - tronque avec ellipse, comme le Compagnon */
.transfer-file-name[b-k2d3oj8wrf] {
    font-size: 12px; /* 12pt a l'echelle Web */
    font-family: 'Segoe UI', sans-serif;
    color: #666666;
    margin: 0 0 10px 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Message d'erreur - ColorButtonCancel=#FF0000
   pre-line : le message peut agreger une erreur par fichier, separees par des sauts de ligne
   que le HTML replierait sinon sur une seule ligne */
.transfer-error[b-k2d3oj8wrf] {
    font-size: 12px; /* 12pt a l'echelle Web */
    font-family: 'Segoe UI', sans-serif;
    color: #FF0000; /* ColorButtonCancel */
    margin: 10px 0 0 0;
    white-space: pre-line;
    max-height: 200px;
    overflow-y: auto;
}

/* Bouton Fermer - Width="200", Padding="10", BorderThickness="1", CornerRadius="15" */
.btn-transfer-close[b-k2d3oj8wrf] {
    width: 200px;
    padding: 10px;
    margin-top: 20px;
    background-color: transparent;
    color: #000000;
    border: 1px solid #000000;
    border-radius: 15px;
    font-size: 12px; /* 12pt a l'echelle Web */
    font-family: 'Segoe UI', sans-serif;
    cursor: pointer;
    text-align: center;
    transition: background-color 0.2s;
}

.btn-transfer-close:hover[b-k2d3oj8wrf] {
    background-color: #f0f0f0;
}
/* /Shared/Components/Popups/HorusFolderNode.razor.rz.scp.css */
/* Noeud de dossier */
.folder-node[b-01x0g84bsj] {
    font-family: 'Segoe UI', sans-serif;
}

.folder-row[b-01x0g84bsj] {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 4px 8px;
    border-radius: 4px;
    cursor: pointer;
    transition: background-color 0.15s;
}

.folder-row:hover[b-01x0g84bsj] {
    background-color: #e0e5f0;
}

.folder-selected[b-01x0g84bsj] {
    background-color: #0277ED !important;
    color: #FFFFFF;
}

.folder-toggle[b-01x0g84bsj] {
    background: none;
    border: none;
    cursor: pointer;
    width: 16px;
    height: 16px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.folder-toggle img[b-01x0g84bsj] {
    width: 10px;
    height: 10px;
    object-fit: contain;
}

/* Le chevron de base pointe vers le bas : replie, il pointe vers la droite */
.folder-toggle-collapsed img[b-01x0g84bsj] {
    transform: rotate(-90deg);
}

.folder-toggle-placeholder[b-01x0g84bsj] {
    width: 16px;
    display: inline-block;
}

.folder-icon[b-01x0g84bsj] {
    width: 18px;
    height: 18px;
    object-fit: contain;
}

.folder-name[b-01x0g84bsj] {
    font-size: 10px;
}

.folder-children[b-01x0g84bsj] {
    margin-left: 20px;
}
/* /Shared/Components/Popups/HorusPopup.razor.rz.scp.css */
/* Overlay */
.popup-overlay[b-qwnqp8n52s] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.65);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
}

/* Popup Horus - 600x800 */
.horus-popup[b-qwnqp8n52s] {
    width: 600px;
    height: 800px;
    padding: 30px 40px;
    background-color: #FFFFFF;
    border-radius: 12px;
    box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.5);
    display: flex;
    flex-direction: column;
}

/* Titre - SegoeUI20 = ~27px, Bold, centered */
.horus-title[b-qwnqp8n52s] {
    font-size: 19px;
    font-weight: bold;
    font-family: 'Segoe UI', sans-serif;
    text-align: center;
    margin: 0 0 20px 0;
}

/* Etape */
.horus-step[b-qwnqp8n52s] {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 0;
}

/* En-tete d'etape avec bouton retour */
.horus-step-header[b-qwnqp8n52s] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 15px;
}

.horus-step-header .horus-step-title[b-qwnqp8n52s] {
    margin: 0;
}

/* Titre d'etape - SegoeUI14 = ~19px, Bold, ColorTextColor=#0277ED */
.horus-step-title[b-qwnqp8n52s] {
    font-size: 14px;
    font-weight: bold;
    color: #0277ED;
    font-family: 'Segoe UI', sans-serif;
    margin: 0 0 15px 0;
}

/* Bouton retour */
.btn-horus-back[b-qwnqp8n52s] {
    padding: 4px 16px;
    background-color: #0277ED;
    color: #FFFFFF;
    border: 1px solid #0277ED;
    border-radius: 10px;
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
    cursor: pointer;
    transition: background-color 0.2s;
}

.btn-horus-back:hover[b-qwnqp8n52s] {
    background-color: #0260c0;
}

/* Formulaire de connexion */
.horus-form[b-qwnqp8n52s] {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

/* Actions de login */
.horus-login-actions[b-qwnqp8n52s] {
    margin-top: 20px;
}

/* Bouton login - Width=200, Padding=10, CornerRadius=15, Border=1 black */
.btn-horus-login[b-qwnqp8n52s] {
    width: 200px;
    padding: 10px;
    background-color: transparent;
    color: #000000;
    border: 1px solid #000000;
    border-radius: 15px;
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
    cursor: pointer;
    text-align: center;
    transition: background-color 0.2s;
}

.btn-horus-login:hover[b-qwnqp8n52s] {
    background-color: #f0f0f0;
}

.btn-horus-login:disabled[b-qwnqp8n52s] {
    opacity: 0.5;
    cursor: not-allowed;
}

/* Liste des projets - scrollable */
.horus-list[b-qwnqp8n52s] {
    flex: 1;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 5px;
    min-height: 0;
}

/* Item projet - bouton style WPF */
.horus-list-item[b-qwnqp8n52s] {
    display: block;
    width: 100%;
    padding: 12px 20px;
    background-color: #F3F5FB;
    border: 1px solid transparent;
    border-radius: 8px;
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
    cursor: pointer;
    text-align: left;
    transition: background-color 0.2s, border-color 0.2s;
}

.horus-list-item:hover[b-qwnqp8n52s] {
    background-color: #e0e5f0;
    border-color: #0277ED;
}

/* Arborescence des dossiers */
.horus-tree[b-qwnqp8n52s] {
    flex: 1;
    overflow-y: auto;
    min-height: 0;
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: 10px;
    background-color: #F3F5FB;
}

/* Parametre de segmentation */
.horus-parameter[b-qwnqp8n52s] {
    margin-top: 15px;
}

.horus-parameter-desc[b-qwnqp8n52s] {
    font-size: 10px;
    font-family: 'Segoe UI', sans-serif;
    font-style: italic;
    color: #666666;
    margin: 0 0 10px 0;
}

/* Message d'erreur */
.horus-error[b-qwnqp8n52s] {
    font-size: 10px;
    font-family: 'Segoe UI', sans-serif;
    color: #FF0000;
    margin: 10px 0 0 0;
}

/* Boutons bas */
.horus-buttons[b-qwnqp8n52s] {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-top: 20px;
}

/* Bouton valider - fond bleu */
.btn-horus-validate[b-qwnqp8n52s] {
    width: 200px;
    padding: 10px;
    background-color: #0277ED;
    color: #FFFFFF;
    border: 1px solid #0277ED;
    border-radius: 10px;
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
    cursor: pointer;
    transition: background-color 0.2s;
}

.btn-horus-validate:hover[b-qwnqp8n52s] {
    background-color: #0260c0;
}

.btn-horus-validate:disabled[b-qwnqp8n52s] {
    opacity: 0.5;
    cursor: not-allowed;
}

/* Bouton annuler - bordure noire */
.btn-horus-cancel[b-qwnqp8n52s] {
    width: 150px;
    padding: 10px;
    background-color: transparent;
    color: #000000;
    border: 1px solid #000000;
    border-radius: 15px;
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
    cursor: pointer;
    transition: background-color 0.2s;
}

.btn-horus-cancel:hover[b-qwnqp8n52s] {
    background-color: #f0f0f0;
}

/* Overlay de la popup d'avertissement */
.horus-warning-overlay[b-qwnqp8n52s] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1001;
}

/* Popup d'avertissement */
.horus-warning-popup[b-qwnqp8n52s] {
    padding: 30px 40px;
    background-color: #FFFFFF;
    border-radius: 12px;
    box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.5);
    max-width: 600px;
    text-align: center;
}

/* Titre d'avertissement */
.horus-warning-title[b-qwnqp8n52s] {
    font-size: 14px;
    font-weight: bold;
    font-family: 'Segoe UI', sans-serif;
    margin: 0 0 20px 0;
}

/* Message d'avertissement */
.horus-warning-message[b-qwnqp8n52s] {
    font-size: 14px;
    font-family: 'Segoe UI', sans-serif;
    margin: 0 0 30px 0;
    text-align: center;
    line-height: 1.5;
}

/* Bouton de validation de l'avertissement - fond rouge (ColorButtonCancel) */
.btn-horus-warning-validate[b-qwnqp8n52s] {
    width: 200px;
    padding: 10px;
    background-color: #FF0000;
    color: #FFFFFF;
    border: 2px solid #FF0000;
    border-radius: 15px;
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
    cursor: pointer;
    transition: background-color 0.2s;
}

.btn-horus-warning-validate:hover[b-qwnqp8n52s] {
    background-color: #cc0000;
}

.btn-horus-warning-validate:disabled[b-qwnqp8n52s] {
    opacity: 0.5;
    cursor: not-allowed;
}
/* /Shared/Components/Popups/IndiceValidationPopup.razor.rz.scp.css */
/* ========================================
   IndiceValidationPopup.razor.css
   Basé sur IndiceValidationPopupView.xaml du Compagnon
   ======================================== */

/* Message permanent affiché en haut de la popup */
.indice-message[b-9ldeug2onw] {
    margin-bottom: 0;
    font-size: 13px; /* 14pt a l'echelle Web */
    font-family: 'Segoe UI', sans-serif;
    color: #000000;
    text-align: center;
}

/* Avertissement d'indice existant ou de casse différente */
.indice-warning[b-9ldeug2onw] {
    margin-top: 20px;
    margin-bottom: 0;
    font-size: 13px; /* 14pt a l'echelle Web */
    font-family: 'Segoe UI', sans-serif;
    color: #FF0000; /* ColorButtonCancel */
    text-align: center;
}

/* Comparaison valeur existante / valeur saisie */
.indice-compare[b-9ldeug2onw] {
    margin-top: 5px;
    margin-bottom: 0;
    font-size: 12px; /* 12pt a l'echelle Web */
    font-family: 'Segoe UI', sans-serif;
    color: #000000;
    text-align: center;
}

/* Zone de saisie de l'indice retenu */
.indice-input[b-9ldeug2onw] {
    margin-top: 20px;
}
/* /Shared/Components/Popups/JobCreatedModal.razor.rz.scp.css */
/* ========================================
   JobCreatedModal.razor.css
   Basé sur JobCreatedPopupView.xaml du Compagnon

   L'isolation CSS de Blazor est par fichier : les règles génériques d'habillage
   (popup-overlay, popup-content, popup-title, popup-message, popup-buttons,
   btn-confirm, btn-cancel) ne sont définies nulle part globalement, elles vivaient
   dans ExportProject.razor.css et InitializeProject.razor.css et n'atteignent donc
   pas ce composant. Elles sont dupliquées ici à l'identique pour conserver un rendu
   inchangé, suivant le précédent de PopulatePopup.razor.css.
   ======================================== */

/* Overlay - fond semi-transparent */
.popup-overlay[b-uwnkh2rta8] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.65);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
}

/* Conteneur de la popup */
.popup-content[b-uwnkh2rta8] {
    width: 500px;
    padding: 40px;
    background-color: #F3F5FB;
    border: 1px solid #888;
    border-radius: 20px;
    box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.5);
}

/* Titre - SegoeUI14 = 14pt = ~19px */
.popup-title[b-uwnkh2rta8] {
    font-size: 14px;
    font-weight: bold;
    font-family: 'Segoe UI', sans-serif;
    margin: 0 0 20px 0;
    text-align: center;
}

/* Message */
.popup-message[b-uwnkh2rta8] {
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
    text-align: center;
    line-height: 1.5;
}

/* Conteneur des boutons */
.popup-buttons[b-uwnkh2rta8] {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-top: 30px;
}

/* Bouton Rester sur la page */
.btn-cancel[b-uwnkh2rta8] {
    width: 200px;
    padding: 10px;
    background-color: transparent;
    color: #000;
    border: 1px solid #000;
    border-radius: 15px;
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
    cursor: pointer;
    transition: background-color 0.2s;
}

.btn-cancel:hover[b-uwnkh2rta8] {
    background-color: #f0f0f0;
}

/* Bouton Retour à la vue d'ensemble */
.btn-confirm[b-uwnkh2rta8] {
    width: 200px;
    padding: 10px;
    background-color: #0277ED;
    color: #fff;
    border: 1px solid #0277ED;
    border-radius: 15px;
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
    cursor: pointer;
    transition: background-color 0.2s;
}

.btn-confirm:hover[b-uwnkh2rta8] {
    background-color: #0260c0;
}
/* /Shared/Components/Popups/JobDetailModal.razor.rz.scp.css */
/* ========================================
   JobDetailModal.razor.css
   Basé sur JobDetailPopupView.xaml du Compagnon

   L'isolation CSS de Blazor est par fichier : les règles génériques d'habillage
   (popup-overlay, popup-content, popup-buttons, btn-popup-close) ne sont définies
   nulle part globalement, elles vivaient dans OverviewProject.razor.css et
   n'atteignent donc pas ce composant. Elles sont dupliquées ici à l'identique
   pour conserver un rendu inchangé, suivant le précédent de PopulatePopup.razor.css.
   ======================================== */

/* Overlay - fond semi-transparent */
.popup-overlay[b-08692ieupj] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.65);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
}

/* Conteneur de la popup */
.popup-content[b-08692ieupj] {
    width: 400px;
    padding: 40px 40px 20px 40px;
    background-color: #F3F5FB;
    border: 1px solid #888888;
    border-radius: 20px;
    box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.5);
}

/* La grille de détail impose une largeur supérieure à celle de la popup générique */
.popup-detail[b-08692ieupj] {
    min-width: 500px;
    max-width: 700px;
}

/* Titre - SegoeUI26 = 26pt = ~35px */
.popup-title-large[b-08692ieupj] {
    font-size: 25px;
    font-weight: normal;
    font-family: 'Segoe UI', sans-serif;
    margin: 0 0 30px 0;
    text-align: center;
}

/* Grille libellé / valeur */
.detail-grid[b-08692ieupj] {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 12px 20px;
    margin-bottom: 0;
}

/* SegoeUI14 = 14pt = ~19px, Bold */
.detail-label[b-08692ieupj] {
    font-size: 14px;
    font-weight: bold;
    font-family: 'Segoe UI', sans-serif;
}

/* SegoeUI14 = 14pt = ~19px */
.detail-value[b-08692ieupj] {
    font-size: 14px;
    font-family: 'Segoe UI', sans-serif;
    word-wrap: break-word;
}

.detail-error[b-08692ieupj] {
    color: #FF0000;
}

/* Conteneur des boutons */
.popup-buttons[b-08692ieupj] {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-top: 40px;
    margin-bottom: 20px;
}

/* Bouton Fermer - Width="200", Padding="10", CornerRadius="10", SegoeUI16 = 16pt = ~21px */
.btn-popup-close[b-08692ieupj] {
    width: 200px;
    padding: 10px;
    background-color: #0277ED;
    color: #FFFFFF;
    border: 1px solid #0277ED;
    border-radius: 10px;
    font-size: 15px;
    font-family: 'Segoe UI', sans-serif;
    cursor: pointer;
    transition: background-color 0.2s;
}

.btn-popup-close:hover[b-08692ieupj] {
    background-color: #0260c0;
}
/* /Shared/Components/Popups/JobsListModal.razor.rz.scp.css */
/* ========================================
   JobsListModal.razor.css
   Basé sur JobsPopupView.xaml du Compagnon

   L'isolation CSS de Blazor est par fichier : les règles génériques d'habillage
   (popup-overlay, popup-buttons, btn-popup-close) ne sont définies nulle part
   globalement, elles vivaient dans OverviewProject.razor.css et n'atteignent
   donc pas ce composant. Elles sont dupliquées ici à l'identique pour conserver
   un rendu inchangé, suivant le précédent de PopulatePopup.razor.css.
   ======================================== */

/* Overlay - fond semi-transparent */
.popup-overlay[b-b87hnzxb3u] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.65);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
}

/* Popup Jobs - XAML: Border Width=900, Height=800, Padding=40,30,40,30, CornerRadius=12 */
.popup-jobs[b-b87hnzxb3u] {
    width: 900px;
    height: 800px;
    padding: 30px 40px;
    background-color: #F3F5FB;
    border-radius: 12px;
    box-shadow: 0px 3px 6px rgba(223, 223, 223, 0.5);
    display: flex;
    flex-direction: column;
}

/* Titre popup jobs - SegoeUI20 = 20pt = ~27px, Bold, centered, Margin bottom 40 */
.popup-jobs-title[b-b87hnzxb3u] {
    font-size: 19px;
    font-weight: bold;
    font-family: 'Segoe UI', sans-serif;
    text-align: center;
    margin: 0 0 40px 0;
}

/* Toolbar pagination + refresh */
.popup-jobs-toolbar[b-b87hnzxb3u] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 10px;
}

.btn-refresh[b-b87hnzxb3u] {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 6px;
    background-color: #0277ED;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    transition: background-color 0.2s;
}

.btn-refresh:hover[b-b87hnzxb3u] {
    background-color: #0260c0;
}

.btn-refresh img[b-b87hnzxb3u] {
    width: 20px;
    height: 20px;
}

/* Liste des jobs scrollable */
.popup-jobs-list[b-b87hnzxb3u] {
    flex: 1;
    overflow-y: auto;
    min-height: 0;
}

.job-item[b-b87hnzxb3u] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 20px;
    margin-top: 10px;
    border-radius: 10px;
}

.job-item-alt[b-b87hnzxb3u] {
    background-color: #FFFFFF;
}

.job-info[b-b87hnzxb3u] {
    flex: 1;
}

/* SegoeUI12 = 12pt = ~16px */
.job-header[b-b87hnzxb3u] {
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
}

.job-type[b-b87hnzxb3u] {
    font-weight: bold;
}

.job-status[b-b87hnzxb3u] {
    font-style: italic;
}

.job-model[b-b87hnzxb3u] {
    font-size: 10px;
}

.job-date[b-b87hnzxb3u] {
    font-size: 10px;
    margin-top: 5px;
    color: #666666;
}

.job-description[b-b87hnzxb3u] {
    font-size: 10px;
    font-style: italic;
    margin-top: 5px;
    color: #666666;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.job-description-error[b-b87hnzxb3u] {
    color: #FF0000;
}

.job-actions[b-b87hnzxb3u] {
    display: flex;
    align-items: center;
    gap: 10px;
}

.btn-job[b-b87hnzxb3u] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    background-color: #0277ED;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    transition: background-color 0.2s;
}

.btn-job:hover[b-b87hnzxb3u] {
    background-color: #0260c0;
}

.btn-job img[b-b87hnzxb3u] {
    height: 20px;
}

.btn-job-delete[b-b87hnzxb3u] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    background-color: transparent;
    border: none;
    cursor: pointer;
}

.btn-job-delete img[b-b87hnzxb3u] {
    height: 36px;
}

.no-jobs[b-b87hnzxb3u] {
    text-align: center;
    color: #666666;
    font-style: italic;
    padding: 40px 0;
}

/* Conteneur des boutons */
.popup-buttons[b-b87hnzxb3u] {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-top: 40px;
    margin-bottom: 20px;
}

/* Bouton Fermer - Width="200", Padding="10", CornerRadius="10", SegoeUI16 = 16pt = ~21px */
.btn-popup-close[b-b87hnzxb3u] {
    width: 200px;
    padding: 10px;
    background-color: #0277ED;
    color: #FFFFFF;
    border: 1px solid #0277ED;
    border-radius: 10px;
    font-size: 15px;
    font-family: 'Segoe UI', sans-serif;
    cursor: pointer;
    transition: background-color 0.2s;
}

.btn-popup-close:hover[b-b87hnzxb3u] {
    background-color: #0260c0;
}
/* /Shared/Components/Popups/PopulatePopup.razor.rz.scp.css */
/* ========================================
   PopulatePopup.razor.css
   Basé sur PopulatePopupView.xaml du Compagnon

   L'isolation CSS de Blazor est par fichier : les règles génériques d'habillage
   (popup-overlay, popup-content, popup-title, popup-buttons, btn-cancel,
   btn-popup-close) ne sont définies nulle part globalement, elles vivent dans
   OverviewProject.razor.css et n'atteignent donc pas ce composant. Elles sont
   dupliquées ici à l'identique pour conserver un rendu inchangé.
   ======================================== */

/* Overlay - fond semi-transparent */
.popup-overlay[b-9ptu8qhp9q] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.65);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
}

/* Conteneur de la popup */
.popup-content[b-9ptu8qhp9q] {
    width: 400px;
    padding: 40px 40px 20px 40px;
    background-color: #F3F5FB;
    border: 1px solid #888888;
    border-radius: 20px;
    box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.5);
}

/* Titre - SegoeUI14 = 14pt = ~19px */
.popup-title[b-9ptu8qhp9q] {
    font-size: 14px;
    font-weight: bold;
    font-family: 'Segoe UI', sans-serif;
    margin: 0 0 20px 0;
    text-align: center;
}

/* Conteneur des boutons */
.popup-buttons[b-9ptu8qhp9q] {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-top: 40px;
    margin-bottom: 20px;
}

/* Bouton Valider - Width="200", Padding="10", CornerRadius="10", SegoeUI16 = 16pt = ~21px */
.btn-popup-close[b-9ptu8qhp9q] {
    width: 200px;
    padding: 10px;
    background-color: #0277ED;
    color: #FFFFFF;
    border: 1px solid #0277ED;
    border-radius: 10px;
    font-size: 15px;
    font-family: 'Segoe UI', sans-serif;
    cursor: pointer;
    transition: background-color 0.2s;
}

.btn-popup-close:hover[b-9ptu8qhp9q] {
    background-color: #0260c0;
}

/* Bouton Annuler */
.btn-cancel[b-9ptu8qhp9q] {
    width: 150px;
    padding: 10px;
    background-color: transparent;
    color: #000000;
    border: 1px solid #000000;
    border-radius: 15px;
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
    cursor: pointer;
    transition: background-color 0.2s;
}

.btn-cancel:hover[b-9ptu8qhp9q] {
    background-color: #f0f0f0;
}

/* Popup Enrichissement - Border Width=600 du Compagnon, ramené à 500 côté Web */
.popup-populate[b-9ptu8qhp9q] {
    width: 500px;
}

/* Formulaire modèle / indice / date */
.populate-form[b-9ptu8qhp9q] {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

/* Message d'erreur - Foreground=ColorButtonCancel */
.populate-error[b-9ptu8qhp9q] {
    color: #FF0000;
    font-size: 10px;
    font-family: 'Segoe UI', sans-serif;
    margin-top: 10px;
    text-align: center;
}
/* /Shared/Components/Popups/ProjectCheckTypologiesPopup.razor.rz.scp.css */
.check-counters[b-qirj90hucd] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    margin-top: 20px;
}

.check-row[b-qirj90hucd] {
    display: flex;
    gap: 10px;
}

.check-label[b-qirj90hucd] {
    font-family: 'Segoe UI', sans-serif;
    font-size: 13px; /* 14pt a l'echelle Web */
}

.check-value[b-qirj90hucd] {
    font-family: 'Segoe UI', sans-serif;
    font-size: 13px; /* 14pt a l'echelle Web */
}
/* /Shared/Components/Popups/ReleaseNotesModal.razor.rz.scp.css */
/* ========================================
   ReleaseNotesModal.razor.css
   Basé sur ReleaseNotesView.xaml du Compagnon

   L'isolation CSS de Blazor est par fichier : les règles génériques d'habillage
   (popup-overlay, popup-content) ne sont définies nulle part globalement, elles
   vivaient dans OverviewProject.razor.css et n'atteignent donc pas ce composant.
   Elles sont dupliquées ici à l'identique pour conserver un rendu inchangé,
   suivant le précédent de JobDetailModal.razor.css.
   ======================================== */

/* Overlay - fond semi-transparent */
.popup-overlay[b-gx59ugz6io] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.65);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
}

/* Conteneur de la popup - Padding="40,40,40,20", CornerRadius="20" du Compagnon.
   overflow: hidden rogne le bandeau, dont les coins bas doivent rester droits
   à l'intérieur des coins arrondis de la popup. */
.popup-content[b-gx59ugz6io] {
    padding: 40px 40px 20px 40px;
    background-color: #F3F5FB; /* ColorBackgroundBlock */
    border: 1px solid #676676; /* ColorButtonNeutral */
    border-radius: 20px;
    box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.5);
    overflow: hidden;
}

/* La zone de texte de 700 px impose la largeur de la popup */
.popup-release-notes[b-gx59ugz6io] {
    width: 780px;
    max-width: 90vw;
}

/* Bandeau sombre - Border Margin="-40,-40,-40,0" Padding="20" Background="ColorBackgroundHeader"
   CornerRadius="20,20,0,0" : les marges négatives annulent le padding de la popup pour que le
   bandeau touche ses bords. */
.release-notes-banner[b-gx59ugz6io] {
    margin: -40px -40px 0 -40px;
    padding: 20px;
    background-color: #2A2E3F; /* ColorBackgroundHeader */
    border-radius: 20px 20px 0 0;
    display: flex;
    align-items: center;
}

/* Image Height="40" */
.release-notes-logo[b-gx59ugz6io] {
    height: 40px;
    width: auto;
}

/* Image Height="24" Margin="20,0,0,0" */
.release-notes-logo-text[b-gx59ugz6io] {
    height: 24px;
    width: auto;
    margin-left: 20px;
}

/* Titre - Margin="0,60,0,0", SegoeUI26 = 26pt = ~35px, Bold */
.release-notes-title[b-gx59ugz6io] {
    margin: 60px 0 0 0;
    font-size: 25px;
    font-weight: bold;
    font-family: 'Segoe UI', sans-serif;
    text-align: center;
}

/* Zone de texte - TextBox Width="700" Height="400" IsReadOnly="True" TextWrapping="Wrap"
   VerticalScrollBarVisibility="Auto", FontSize="12pt" = ~16px.
   Le contenu source est du texte brut : white-space: pre-line préserve ses retours à la ligne
   tout en laissant le navigateur replier les lignes trop longues. */
.release-notes-message[b-gx59ugz6io] {
    width: 700px;
    max-width: 100%;
    height: 400px;
    margin: 20px auto 0 auto;
    padding: 10px;
    box-sizing: border-box;
    background-color: #FFFFFF; /* ColorBackgroundApp */
    border: 1px solid #676676; /* ColorButtonNeutral */
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
    white-space: pre-line;
    overflow-y: auto;
    overflow-x: hidden;
    overflow-wrap: break-word;
}

.release-notes-message[b-gx59ugz6io]::-webkit-scrollbar {
    width: 8px;
}

.release-notes-message[b-gx59ugz6io]::-webkit-scrollbar-thumb {
    background: #DBDBDB;
    border-radius: 4px;
}

.release-notes-message[b-gx59ugz6io]::-webkit-scrollbar-track {
    background: transparent;
}

/* Conteneur du bouton - Margin="0,20,0,0", HorizontalAlignment="Center" */
.release-notes-buttons[b-gx59ugz6io] {
    display: flex;
    justify-content: center;
    margin-top: 20px;
}

/* Bouton Fermer - Width="200", Padding="10", CornerRadius="10", SegoeUI16 = 16pt = ~21px */
.btn-release-notes-close[b-gx59ugz6io] {
    width: 200px;
    padding: 10px;
    background-color: #0277ED; /* ColorButtonValid */
    color: #FFFFFF; /* ColorTextLight */
    border: 1px solid #0277ED;
    border-radius: 10px;
    font-size: 15px;
    font-family: 'Segoe UI', sans-serif;
    cursor: pointer;
    transition: background-color 0.2s;
}

.btn-release-notes-close:hover[b-gx59ugz6io] {
    background-color: #0260c0;
}

/* Pied de page - Margin="0,20,0,0", HorizontalAlignment="Right", ColorGreyDark, SegoeUI12 = 12pt = ~16px */
.release-notes-footer[b-gx59ugz6io] {
    margin-top: 20px;
    color: #707070; /* ColorGreyDark */
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
    text-align: right;
}
/* /Shared/Components/Popups/ReportCreatedModal.razor.rz.scp.css */
/* ========================================
   ReportCreatedModal.razor.css
   Basé sur JobCreatedModal.razor.css, lui-même basé sur JobCreatedPopupView.xaml du Compagnon

   L'isolation CSS de Blazor est par fichier : les règles génériques d'habillage
   (popup-overlay, popup-content, popup-title, popup-message, popup-buttons,
   btn-confirm) ne sont définies nulle part globalement, elles n'atteignent donc
   pas ce composant. Elles sont dupliquées ici à l'identique pour conserver un rendu
   inchangé, suivant le précédent de JobCreatedModal.razor.css.
   ======================================== */

/* Overlay - fond semi-transparent */
.popup-overlay[b-6eisaebzdo] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.65);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
}

/* Conteneur de la popup */
.popup-content[b-6eisaebzdo] {
    width: 500px;
    padding: 40px;
    background-color: #F3F5FB;
    border: 1px solid #888;
    border-radius: 20px;
    box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.5);
}

/* Titre - SegoeUI14 = 14pt = ~19px */
.popup-title[b-6eisaebzdo] {
    font-size: 14px;
    font-weight: bold;
    font-family: 'Segoe UI', sans-serif;
    margin: 0 0 20px 0;
    text-align: center;
}

/* Message */
.popup-message[b-6eisaebzdo] {
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
    text-align: center;
    line-height: 1.5;
}

/* Conteneur des boutons */
.popup-buttons[b-6eisaebzdo] {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-top: 30px;
}

/* Bouton Fermer */
.btn-confirm[b-6eisaebzdo] {
    width: 200px;
    padding: 10px;
    background-color: #0277ED;
    color: #fff;
    border: 1px solid #0277ED;
    border-radius: 15px;
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
    cursor: pointer;
    transition: background-color 0.2s;
}

.btn-confirm:hover[b-6eisaebzdo] {
    background-color: #0260c0;
}
/* /Shared/Components/Popups/ReportPopup.razor.rz.scp.css */
/* ========================================
   ReportPopup.razor.css
   Basé sur ReportPopupView.xaml du Compagnon

   L'isolation CSS de Blazor est par fichier : les règles génériques d'habillage
   (popup-overlay, popup-content, popup-title, popup-buttons, btn-cancel,
   btn-popup-close) ne sont définies nulle part globalement, elles vivent dans
   OverviewProject.razor.css et n'atteignent donc pas ce composant. Elles sont
   dupliquées ici à l'identique pour conserver un rendu inchangé.

   Aucune règle ne cible le markup rendu par FormCombobox : Blazor n'apposant
   l'attribut de portée que sur le HTML littéral de ce fichier, une telle règle
   ne matcherait pas sans ::deep. La mise en page des champs passe donc par le
   conteneur .report-form, lui bien littéral.
   ======================================== */

/* Overlay - fond semi-transparent */
.popup-overlay[b-r3jv4td987] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.65);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
}

/* Conteneur de la popup */
.popup-content[b-r3jv4td987] {
    width: 400px;
    padding: 40px 40px 20px 40px;
    background-color: #F3F5FB;
    border: 1px solid #888888;
    border-radius: 20px;
    box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.5);
}

/* Titre - SegoeUI14 = 14pt = ~19px */
.popup-title[b-r3jv4td987] {
    font-size: 14px;
    font-weight: bold;
    font-family: 'Segoe UI', sans-serif;
    margin: 0 0 20px 0;
    text-align: center;
}

/* Conteneur des boutons */
.popup-buttons[b-r3jv4td987] {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-top: 40px;
    margin-bottom: 20px;
}

/* Bouton Valider - Width="200", Padding="10", CornerRadius="10", SegoeUI16 = 16pt = ~21px */
.btn-popup-close[b-r3jv4td987] {
    width: 200px;
    padding: 10px;
    background-color: #0277ED;
    color: #FFFFFF;
    border: 1px solid #0277ED;
    border-radius: 10px;
    font-size: 15px;
    font-family: 'Segoe UI', sans-serif;
    cursor: pointer;
    transition: background-color 0.2s;
}

.btn-popup-close:hover[b-r3jv4td987] {
    background-color: #0260c0;
}

/* Bouton Annuler */
.btn-cancel[b-r3jv4td987] {
    width: 150px;
    padding: 10px;
    background-color: transparent;
    color: #000000;
    border: 1px solid #000000;
    border-radius: 15px;
    font-size: 12px;
    font-family: 'Segoe UI', sans-serif;
    cursor: pointer;
    transition: background-color 0.2s;
}

.btn-cancel:hover[b-r3jv4td987] {
    background-color: #f0f0f0;
}

/* Popup Rapport PDF - Border Width=600 du Compagnon, ramené à 500 côté Web */
.popup-report[b-r3jv4td987] {
    width: 500px;
}

/* Formulaire modèle / indice / fichier IFC serveur */
.report-form[b-r3jv4td987] {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

/* Champs à boutons radio (Découpage, Colorisation) : libellé au-dessus de ses deux boutons
   radio, calqué sur les TextBlock de ReportPopupView.xaml.

   Le libellé N'UTILISE PAS la classe globale custom-form-label des autres champs : celle
   de global.css est en position absolute, conçue pour flotter à l'intérieur du cadre que
   FormCombobox dessine autour de son select. Posée sur un span sans ancêtre positionné,
   elle irait se placer dans un coin de la popup. */
.radio-field[b-r3jv4td987] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

/* SegoeUI14 côté Compagnon. La conversion retenue dans ce dépôt est 14pt -> 14px et non
   les ~19px du calcul DPI théorique, qui rend un texte trop gros : c'est déjà le choix
   de .popup-title ci-dessus. Poids normal et couleur par défaut, le TextBlock du
   Compagnon ne surchargeant ni l'un ni l'autre. */
.radio-field-label[b-r3jv4td987] {
    font-size: 14px;
    font-family: 'Segoe UI', sans-serif;
}

/* Les règles radio-row / radio-option existent déjà dans ExportProject.razor.css et
   InitializeProject.razor.css, mais l'isolation CSS de Blazor est PAR FICHIER : elles
   ne franchissent pas la frontière de ce composant. Elles sont donc reprises ici, comme
   l'est déjà l'habillage de popup en tête de fichier. */
.radio-row[b-r3jv4td987] {
    display: flex;
    align-items: center;
    gap: 40px;
    font-size: 14px;
    font-family: 'Segoe UI', sans-serif;
}

.radio-option[b-r3jv4td987] {
    display: flex;
    align-items: center;
    gap: 5px;
    cursor: pointer;
}

.radio-option input[type="radio"][b-r3jv4td987] {
    cursor: pointer;
}

/* Option indisponible : l'opacité est nécessaire en plus de l'attribut disabled, qui
   grise la puce du bouton mais laisse le libellé à sa couleur pleine. Même raison que
   le BoolToOpacityConverter posé sur le RadioButton du Compagnon. */
.radio-option-disabled[b-r3jv4td987] {
    opacity: 0.5;
    cursor: default;
}

.radio-option-disabled input[type="radio"][b-r3jv4td987] {
    cursor: default;
}

/* Motif d'indisponibilité du découpage par zone, rattaché au champ Découpage.
   Le <p> est du HTML littéral de ReportPopup.razor : il porte l'attribut de portée,
   contrairement au markup rendu par FormCombobox, donc aucun ::deep n'est requis. */
.report-hint[b-r3jv4td987] {
    color: #707070;
    font-size: 10px;
    font-family: 'Segoe UI', sans-serif;
    margin: 0;
}

/* Message d'erreur - Foreground=ColorButtonCancel */
.report-error[b-r3jv4td987] {
    color: #FF0000;
    font-size: 10px;
    font-family: 'Segoe UI', sans-serif;
    margin-top: 10px;
    text-align: center;
}
/* /Shared/Components/UpperBar.razor.rz.scp.css */
/* ===========================================
   UpperBar - Style basé sur le header de ProjectTypologyView.xaml
   Height: 64, Padding: 5, Background: #F3F5FB, CornerRadius: 12
   =========================================== */

/* Container principal - Border dans XAML */
.header-container[b-5m1r7whls7] {
    height: 64px;
    padding: 5px;
    background-color: #F3F5FB;
    border-radius: 12px;
    box-sizing: border-box;
}

/* Contenu du header - Grid dans XAML */
.header-content[b-5m1r7whls7] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 100%;
}

/* Zone gauche - StackPanel Margin="20,0,0,0", VerticalAlignment="Center" */
.header-left[b-5m1r7whls7] {
    display: flex;
    flex-direction: column;
    justify-content: center;
    margin-left: 20px;
}

/* Titre - TextBlock FontWeight="Bold", SegoeUI18 */
.header-title[b-5m1r7whls7] {
    font-family: 'Segoe UI', sans-serif;
    font-size: 17px; /* 18pt a l'echelle Web */
    font-weight: bold;
    margin: 0;
    line-height: 1.2;
}

/* Fil d'Ariane - StackPanel Margin="0,2,0,0", Orientation="Horizontal" */
.header-breadcrumb[b-5m1r7whls7] {
    display: flex;
    align-items: center;
    margin-top: 2px;
}

/* Liens du fil d'Ariane - TextDecorations="Underline", ColorGreyDark (#707070) */
.breadcrumb-link[b-5m1r7whls7] {
    font-family: 'Segoe UI', sans-serif;
    font-size: 10px; /* 10pt a l'echelle Web */
    color: #707070;
    text-decoration: underline;
}

.breadcrumb-link:hover[b-5m1r7whls7] {
    color: #505050;
}

/* Séparateur ">" - Margin="5,0,0,0" */
.breadcrumb-separator[b-5m1r7whls7] {
    font-family: 'Segoe UI', sans-serif;
    font-size: 10px; /* 10pt a l'echelle Web */
    color: #707070;
    margin-left: 5px;
    margin-right: 5px;
}

/* Page courante - pas de underline */
.breadcrumb-current[b-5m1r7whls7] {
    font-family: 'Segoe UI', sans-serif;
    font-size: 10px; /* 10pt a l'echelle Web */
    color: #707070;
}

/* Zone droite - StackPanel HorizontalAlignment="Right", Orientation="Horizontal" */
.header-right[b-5m1r7whls7] {
    display: flex;
    align-items: center;
    height: 100%;
}

/* Messages - SegoeUI14, italic, Margin="0,0,20,0" */
.header-message[b-5m1r7whls7] {
    font-family: 'Segoe UI', sans-serif;
    font-size: 13px; /* 14pt a l'echelle Web */
    font-style: italic;
    margin-right: 20px;
}

.header-message-error[b-5m1r7whls7] {
    color: #dc3545;
}

.header-message-success[b-5m1r7whls7] {
    color: #28a745;
}

/* Boutons - Margin="20,0,0,0" */
.header-btn[b-5m1r7whls7] {
    font-family: 'Segoe UI', sans-serif;
    font-size: 15px; /* 16pt a l'echelle Web */
    border: none;
    cursor: pointer;
    margin-left: 20px;
    height: 100%;
}

/* Bouton principal - Width="200", Padding="10", Background=#0277ED, CornerRadius="15" */
.header-btn-primary[b-5m1r7whls7] {
    width: 200px;
    padding: 10px;
    background-color: #0277ED;
    color: white;
    border-radius: 15px;
}

.header-btn-primary:hover[b-5m1r7whls7] {
    background-color: #0056b3;
}

/* Bouton principal désactivé */
.header-btn-disabled[b-5m1r7whls7] {
    background-color: #0277ED;
    opacity: 0.4;
    cursor: not-allowed;
}

.header-btn-disabled:hover[b-5m1r7whls7] {
    background-color: #0277ED;
}

/* Bouton secondaire - Border: 2px solid #2A2E3F, CornerRadius: 15 */
.header-btn-secondary[b-5m1r7whls7] {
    width: 200px;
    padding: 10px;
    background-color: #F3F5FB;
    color: #2A2E3F;
    border: 2px solid #2A2E3F;
    border-radius: 15px;
}

.header-btn-secondary:hover[b-5m1r7whls7] {
    background-color: #dadddf;
}
/* /Shared/Layouts/PopupLayout.razor.rz.scp.css */
.page[b-fwt86vsefz] {
    position: relative;
    display: flex;
    flex-direction: column;
}

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

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

.top-row[b-fwt86vsefz] {
    background-color: #f7f7f7;
    border-bottom: 1px solid #d6d5d5;
    justify-content: flex-end;
    height: 3.5rem;
    display: flex;
    align-items: center;
}

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

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

@media (max-width: 640.98px) {
    .top-row:not(.auth)[b-fwt86vsefz] {
        display: none;
    }

    .top-row.auth[b-fwt86vsefz] {
        justify-content: space-between;
    }

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

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

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

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

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

/* Custom CSS */

/* Base components */

/* Containers */

.box[b-fwt86vsefz] {
    background: red;
}

/* Conteneur principal pour centrer la zone de login */
.popup-layout-container[b-fwt86vsefz] {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    width: 100%;
}

.main-container[b-fwt86vsefz] {
    /* TODO: à adapter */
  /*  width: 35rem;
    height: 40rem;*/
    align-items: stretch;
    align-items: center;
    justify-content: center;
}

.navbar-content[b-fwt86vsefz] {
    height: 100%;
    display: flex;
    align-items: center;
}
/* /Shared/Layouts/TopBarLayout.razor.rz.scp.css */
.page[b-q1rz9whvu6] {
    position: relative;
    display: flex;
    flex-direction: column;
}

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

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

.top-row[b-q1rz9whvu6] {
    background-color: #f7f7f7;
    border-bottom: 1px solid #d6d5d5;
    justify-content: flex-end;
    height: 3.5rem;
    display: flex;
    align-items: center;
}

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

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

@media (max-width: 640.98px) {
    .top-row:not(.auth)[b-q1rz9whvu6] {
        display: none;
    }

    .top-row.auth[b-q1rz9whvu6] {
        justify-content: space-between;
    }

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

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

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

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

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