@import '_content/Solinfo.SyncEngine.UIComponents/Solinfo.SyncEngine.UIComponents.heq42azki0.bundle.scp.css';

/* /Components/Layout/AICodingAssistant.razor.rz.scp.css */
/* AI Assistant Box */

#ai-assistant[b-1fs96pio5z] {
    position: absolute;
    bottom: 64px;
    left: 9px;
    width: 188px;
    border: 1px solid transparent;
    border-radius: 11px;
    padding: 5px 16px;
    background: linear-gradient(var(--kendo-color-surface), var(--kendo-color-surface)) padding-box, linear-gradient(114deg, #4b5ffa 0%, #c158e4 93%) border-box;
}

    #ai-assistant[b-1fs96pio5z]::before {
        content: "";
        position: absolute;
        z-index: 0;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        opacity: .18;
        background: url(ai-circle.png) center center no-repeat;
        background-size: cover;
    }

    #ai-assistant h4[b-1fs96pio5z],
    #ai-assistant > p[b-1fs96pio5z],
    #ai-assistant > a[b-1fs96pio5z] {
        position: relative;
        padding-left: 41px;
        z-index: 2;
    }

    #ai-assistant h4[b-1fs96pio5z] {
        position: relative;
        margin: 0 0 .3em;
        font-size: 20px;
        line-height: 1.4;
        font-weight: 500;
    }

    #ai-assistant .k-icon[b-1fs96pio5z] {
        position: absolute;
        left: 0;
        top: 0;
        color: #4b5ffa;
    }

    #ai-assistant > a[b-1fs96pio5z] {
        color: #a75ae9;
        text-decoration: none;
    }

        #ai-assistant > a:hover[b-1fs96pio5z] {
            text-decoration: underline;
        }
/* /Components/Layout/MainLayout.razor.rz.scp.css */
/* Drawer item styles */

.drawer-parent-item[b-yo6xvleyly],
.drawer-child-item[b-yo6xvleyly],
.drawer-regular-item[b-yo6xvleyly] {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    cursor: pointer;
    white-space: nowrap;
}

.drawer-parent-item[b-yo6xvleyly] {
     
}

.drawer-parent-item .drawer-item-text[b-yo6xvleyly] {
    flex: 1;
}

.drawer-parent-item .drawer-arrow[b-yo6xvleyly] {
    margin-left: auto;
    flex-shrink: 0;
}

.drawer-child-item[b-yo6xvleyly] {
   
}

.drawer-regular-item[b-yo6xvleyly] {
     
}

/* -- Section titles and separators in drawer -- */

.drawer-separator[b-yo6xvleyly] {
    padding: 3px 0;
    width: 100%;
}

.drawer-separator hr[b-yo6xvleyly] {
    border: none;
    border-top: 1px solid var(--kendo-color-border, #444);
    margin: 0;
    opacity: 0.4;
}

.drawer-section-title[b-yo6xvleyly] {
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--kendo-color-subtle, #6c757d);
    font-weight: 700;
    cursor: default;
    pointer-events: none;
    
    padding: 2px 0;
    border-left: 2px solid var(--kendo-color-primary, #dc4344);
    padding-left: 6px !important;
    margin-top: 2px;
}

/* ─── MENU USAGER (header) ───────────────────────────────────────────────── */

/* Bouton dans le header (vrai <button> : on neutralise le style natif) */
.user-menu-button[b-yo6xvleyly] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    cursor: pointer;
    background: none;
    border: none;
    color: inherit;
    font: inherit;
    min-height: 44px; /* cible tactile */
}

    .user-menu-button .user-menu-name[b-yo6xvleyly] {
        font-size: 14px;
        font-weight: 500;
        white-space: nowrap;
        max-width: 180px;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .user-menu-button .user-menu-chevron[b-yo6xvleyly] {
        font-size: 10px;
        opacity: 0.7;
    }

/* Overlay transparent pour fermer le menu en cliquant ailleurs */
.user-menu-overlay[b-yo6xvleyly] {
    position: fixed;
    inset: 0;
    z-index: 1000;
}

/* Carte popup */
.user-menu-popup[b-yo6xvleyly] {
    position: fixed;
    top: 52px;
    right: 8px;
    z-index: 1001;
    width: min(320px, calc(100vw - 16px)); /* ne déborde jamais du viewport mobile */
    background: var(--kendo-color-surface-alt, #2a2a2a);
    border: 1px solid var(--kendo-color-border, #3a3a3a);
    border-radius: 8px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .45);
    overflow: hidden;
    animation: user-menu-fadein-b-yo6xvleyly .15s ease;
}

@keyframes user-menu-fadein-b-yo6xvleyly {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* Section infos usager */
.user-menu-info[b-yo6xvleyly] {
    padding: 14px 16px 12px;
}

.user-menu-fullname[b-yo6xvleyly] {
    font-size: 15px;
    font-weight: 600;
    color: var(--kendo-color-on-app-surface);
}

.user-menu-email[b-yo6xvleyly] {
    font-size: 12px;
    color: var(--kendo-color-subtle-text, #999);
    margin-top: 2px;
    word-break: break-all;
}

.user-menu-role[b-yo6xvleyly] {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 12px;
    margin-top: 6px;
    color: var(--kendo-color-subtle-text, #999);
}

/* Séparateur */
.user-menu-divider[b-yo6xvleyly] {
    height: 1px;
    background: var(--kendo-color-border, #3a3a3a);
    margin: 0;
}

/* Liens d'action */
.user-menu-actions[b-yo6xvleyly] {
    padding: 6px 0;
}

.user-menu-action[b-yo6xvleyly] {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    min-height: 44px; /* cible tactile */
    padding: 9px 16px;
    font-size: 14px;
    color: var(--kendo-color-on-app-surface);
    background: none;
    border: none;
    text-decoration: none;
    cursor: pointer;
    transition: background .12s;
}

    .user-menu-action:hover[b-yo6xvleyly] {
        background: var(--kendo-color-base-hover, rgba(255,255,255,.07));
        color: var(--kendo-color-primary);
        text-decoration: none;
    }

.user-menu-logout[b-yo6xvleyly] {
    color: var(--kendo-color-error, #dc4344);
}

    .user-menu-logout:hover[b-yo6xvleyly] {
        color: var(--kendo-color-error, #dc4344);
    }
/* /Components/Pages/Admin/AdminIndex.razor.rz.scp.css */
.admin-page[b-nnlju4596g] {
    padding: 12px 16px;
}

.admin-title[b-nnlju4596g] {
    margin-bottom: 16px;
    font-size: 1.3rem;
    color: var(--kendo-color-primary);
}

/* Hauteur minimale pour que le TabStrip gauche s'affiche bien */
.admin-tabstrip[b-nnlju4596g] {
    min-height: calc(100vh - 120px);
}

/* Contenu des tabs : padding interne */
[b-nnlju4596g] .k-tabstrip-content {
    padding: 16px 20px;
}

/* Largeur fixe du panel de tabs gauche */
[b-nnlju4596g] .k-tabstrip-items-wrapper {
    min-width: 180px;
}
/* /Components/Pages/Admin/Sections/AdminProxyRoutingMatrix.razor.rz.scp.css */
.proxyrouting-header[b-bdihf4q5ef] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    margin-bottom: 0.5rem;
}

.proxyrouting-status[b-bdihf4q5ef] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}

.proxy-chip[b-bdihf4q5ef] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.2rem 0.6rem;
    border-radius: 1rem;
    font-size: 0.85rem;
}

.proxy-chip-ok[b-bdihf4q5ef] {
    background: rgba(40, 167, 69, 0.12);
}

.proxy-chip-err[b-bdihf4q5ef] {
    background: rgba(220, 53, 69, 0.15);
}

.proxy-chip-default[b-bdihf4q5ef] {
    opacity: 0.75;
    font-size: 0.8rem;
}

.proxyrouting-filters[b-bdihf4q5ef] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}

.matrix-badge[b-bdihf4q5ef] {
    display: inline-block;
    padding: 0.05rem 0.4rem;
    border-radius: 0.6rem;
    font-size: 0.7rem;
    vertical-align: middle;
    margin-left: 0.35rem;
}

.matrix-badge-default[b-bdihf4q5ef] {
    background: rgba(108, 117, 125, 0.18);
}

.matrix-badge-external[b-bdihf4q5ef] {
    background: rgba(255, 193, 7, 0.25);
}

.matrix-badge-ruletype[b-bdihf4q5ef] {
    background: rgba(13, 110, 253, 0.15);
    margin-left: 0;
    margin-right: 0.35rem;
}

.matrix-cell-explicit[b-bdihf4q5ef] {
    font-weight: 600;
}

.matrix-cell-default[b-bdihf4q5ef] {
    opacity: 0.8;
}

.matrix-cell-none[b-bdihf4q5ef] {
    color: #dc3545;
}

.proxyrouting-nonlicence[b-bdihf4q5ef] {
    margin-top: 1rem;
}

.proxyrouting-nonlicence h5[b-bdihf4q5ef] {
    font-size: 0.95rem;
}

.proxyrouting-nonlicence ul[b-bdihf4q5ef] {
    margin: 0.25rem 0 0 1rem;
    padding: 0;
}
/* /Components/Pages/Admin/Sections/AuditLogsViewer.razor.rz.scp.css */
.audit-detail-section-codes[b-cozkafo1js] {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin-bottom: 8px;
}

.audit-detail-table[b-cozkafo1js] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.88em;
    margin-bottom: 8px;
}

.audit-detail-table th[b-cozkafo1js] {
    text-align: left;
    color: var(--kendo-color-subtle, #666);
    font-weight: 500;
    padding: 4px 8px 4px 0;
    width: 110px;
    vertical-align: top;
}

.audit-detail-table td[b-cozkafo1js] {
    padding: 4px 0;
    word-break: break-word;
    color: var(--kendo-color-on-app-surface, inherit);
}

.audit-detail-table code[b-cozkafo1js] {
    font-size: 0.95em;
    background: var(--kendo-color-base, rgba(0,0,0,0.05));
    padding: 1px 4px;
    border-radius: 3px;
}

.audit-detail-msg[b-cozkafo1js] {
    margin: 0 0 8px 0;
    padding: 8px;
    background: #1e1e1e;
    color: #d4d4d4;
    border: 1px solid var(--kendo-color-border, transparent);
    border-radius: 4px;
    font-family: monospace;
    font-size: 0.82em;
    white-space: pre-wrap;
    word-break: break-all;
    max-height: 240px;
    overflow: auto;
}

.audit-detail-empty[b-cozkafo1js] {
    color: var(--kendo-color-subtle, #888);
    font-style: italic;
    margin: 0 0 8px 0;
    font-size: 0.88em;
}

.edit-panel-body h5[b-cozkafo1js] {
    margin: 12px 0 6px 0;
    font-size: 0.9em;
    color: var(--kendo-color-primary);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-bottom: 1px solid var(--kendo-color-border);
    padding-bottom: 2px;
}

.edit-panel-body h5:first-child[b-cozkafo1js] {
    margin-top: 0;
}

.audit-badge[b-cozkafo1js] {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 12px;
    font-size: 0.78em;
    font-weight: 600;
    line-height: 1.4;
}

.audit-badge-code[b-cozkafo1js] {
    background: var(--kendo-color-primary-subtle, rgba(255, 99, 88, 0.15));
    color: var(--kendo-color-primary, #ff6358);
}

.audit-badge-subcode[b-cozkafo1js] {
    background: var(--kendo-color-base, rgba(0, 0, 0, 0.08));
    color: var(--kendo-color-on-app-surface, inherit);
}

.audit-badge-read[b-cozkafo1js] {
    background: var(--kendo-color-success-subtle, #d4edda);
    color: var(--kendo-color-success, #155724);
}

.audit-badge-unread[b-cozkafo1js] {
    background: var(--kendo-color-base, rgba(0, 0, 0, 0.08));
    color: var(--kendo-color-subtle, #666);
}
/* /Components/Pages/AppPairing/ConnectApplication.razor.rz.scp.css */
/* =========================================================
   Appariement d'une application — styles scopés
   Même langage visuel que le survol de licence (cartes, tuiles).
   ========================================================= */

.ap[b-ra65mw7k0g] {
    max-width: 720px;
    margin: 0 auto;
    padding: 1.5rem 1rem 3rem;
    box-sizing: border-box;
}

.ap h2[b-ra65mw7k0g] {
    margin: 0 0 0.5rem;
    font-size: 1.5rem;
    font-weight: 600;
}

.ap-kicker[b-ra65mw7k0g] {
    margin: 0 0 0.25rem;
    font-size: 0.78rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--kendo-color-subtle, #aaa);
}

.ap-muted[b-ra65mw7k0g] {
    margin: 0 0 1rem;
    font-size: 0.9rem;
    color: var(--kendo-color-subtle, #aaa);
}

.ap-error[b-ra65mw7k0g] {
    margin: 1rem 0 0;
    font-size: 0.88rem;
    color: var(--kendo-color-error, #f31700);
}

.ap-field[b-ra65mw7k0g] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    margin-bottom: 1rem;
}

.ap-field label[b-ra65mw7k0g] {
    font-size: 0.85rem;
    font-weight: 600;
}

.ap-card[b-ra65mw7k0g] {
    padding: 0.9rem 1.1rem;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 10px;
    background: var(--kendo-color-surface, #222244);
}

.ap-list[b-ra65mw7k0g] {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    margin-bottom: 1.25rem;
}

.ap-choice[b-ra65mw7k0g] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    padding: 0.85rem 1.1rem;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 10px;
    background: var(--kendo-color-surface, #222244);
    color: var(--kendo-color-on-app-surface, #e0e0e0);
    text-align: left;
    font: inherit;
    cursor: pointer;
}

.ap-choice:hover[b-ra65mw7k0g] {
    border-color: var(--kendo-color-primary, #4e9af1);
}

.ap-choice-on[b-ra65mw7k0g] {
    border-color: var(--kendo-color-primary, #4e9af1);
    box-shadow: 0 0 0 1px var(--kendo-color-primary, #4e9af1);
}

.ap-choice-name[b-ra65mw7k0g] {
    font-weight: 600;
}

.ap-choice .ap-muted[b-ra65mw7k0g] {
    margin: 0;
    font-size: 0.82rem;
}

.ap-actions[b-ra65mw7k0g] {
    display: flex;
    justify-content: flex-end;
}
/* /Components/Pages/ERPConnector/ErpCompanyConnexionInfo.razor.rz.scp.css */
/* « Ajouter » sans licence filtrée : la fenêtre la demande d'abord. */
.quick-create-licence[b-fg0te5w9vp] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 4px 0 12px;
}

.required-star[b-fg0te5w9vp] {
    color: red;
}

.ext-prop-row[b-fg0te5w9vp] {
    display: flex;
    gap: 6px;
    align-items: center;
    margin-bottom: 4px;
}

.gateway-groupbox[b-fg0te5w9vp] {
    border: 1px solid #d5d5d5;
    border-radius: 4px;
    padding: 12px 12px 10px;
    margin: 14px 0;
    position: relative;
}

.gateway-groupbox-title[b-fg0te5w9vp] {
    position: absolute;
    top: -10px;
    left: 10px;
    background: white;
    padding: 0 6px;
    font-size: 0.82em;
    font-weight: 600;
    color: #555;
    letter-spacing: 0.02em;
}

.gateway-groupbox-body[b-fg0te5w9vp] {
    padding-top: 4px;
}

.gateway-checkbox-row[b-fg0te5w9vp] {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Lien « Formulaire complet (avancé) » sous le composant simple, dans le popup « Ajouter ». */
.quick-create-advanced[b-fg0te5w9vp] {
    margin-top: 0.75rem;
    border: 0;
    background: none;
    padding: 0;
    font: inherit;
    font-size: 0.85rem;
    color: var(--kendo-color-primary, #4e9af1);
    cursor: pointer;
}

/* Usager à plusieurs licences sans choix : la grille lui demande d'en choisir une. */
.licence-choice-hint[b-fg0te5w9vp] {
    margin: 4px 0 10px;
    font-size: 0.875rem;
    color: var(--kendo-color-warning, #ffc000);
}
/* /Components/Pages/ERPConnector/ERPTaskLauncher.razor.rz.scp.css */
.task-launcher[b-bvaeful2dp] {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 8px 8px 32px 8px;
    max-width: 1200px;
}

.section-card[b-bvaeful2dp] {
    border: 1px solid var(--kendo-color-border);
    border-radius: 6px;
    background: var(--kendo-color-surface-alt);
}

.section-card.section-disabled[b-bvaeful2dp] {
    opacity: 0.6;
    pointer-events: auto;
}

.disabled-notice[b-bvaeful2dp] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    margin-bottom: 8px;
    background: rgba(255, 193, 7, 0.12);
    border: 1px solid rgba(255, 193, 7, 0.5);
    border-radius: 4px;
    color: #ffd66b;
    font-size: 0.9em;
}

.form-row[b-bvaeful2dp] {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 12px;
}

.form-row > label[b-bvaeful2dp] {
    min-width: 160px;
    font-weight: 500;
}

.subsection-title[b-bvaeful2dp] {
    margin: 16px 0 8px 0;
    font-size: 1em;
    font-weight: 600;
    color: var(--kendo-color-subtle);
}

.pagination-row[b-bvaeful2dp] {
    display: flex;
    gap: 24px;
    margin-bottom: 12px;
}

.form-field[b-bvaeful2dp] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.form-field label[b-bvaeful2dp] {
    font-size: 0.85em;
    font-weight: 500;
    color: var(--kendo-color-subtle);
}

.filter-row[b-bvaeful2dp] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
    padding: 6px;
    background: var(--kendo-color-surface);
    border: 1px solid var(--kendo-color-border);
    border-radius: 4px;
}

.filter-value-placeholder[b-bvaeful2dp] {
    color: var(--kendo-color-subtle);
    font-style: italic;
    width: 220px;
}

.empty-hint[b-bvaeful2dp] {
    color: var(--kendo-color-subtle);
    font-style: italic;
    padding: 8px 0;
    font-size: 0.9em;
}

.fields-list[b-bvaeful2dp] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 4px 12px;
    padding: 4px 0;
}

.field-checkbox[b-bvaeful2dp] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 4px;
    cursor: pointer;
}

.field-checkbox small[b-bvaeful2dp] {
    color: var(--kendo-color-subtle);
    font-family: Consolas, monospace;
    font-size: 0.8em;
}

.json-preview[b-bvaeful2dp],
.json-result[b-bvaeful2dp] {
    background: #1e1e1e;
    color: #dcdcdc;
    padding: 12px;
    border-radius: 4px;
    font-family: Consolas, monospace;
    font-size: 0.85em;
    max-height: 500px;
    overflow: auto;
    white-space: pre;
    margin: 0;
}

.execute-row[b-bvaeful2dp] {
    display: flex;
    justify-content: flex-end;
    padding: 8px 0;
}

.execute-btn[b-bvaeful2dp] {
    min-width: 220px;
    font-size: 1em;
    font-weight: 600;
    padding: 10px 20px;
}

.result-card[b-bvaeful2dp] {
    border-top: 3px solid #2196f3;
}

.result-ok[b-bvaeful2dp] {
    color: #7ee787;
    font-weight: 700;
}

.result-ko[b-bvaeful2dp] {
    color: #ff9da7;
    font-weight: 700;
}

.result-meta[b-bvaeful2dp] {
    color: var(--kendo-color-subtle);
    font-weight: normal;
    font-size: 0.9em;
}

.error-msg[b-bvaeful2dp] {
    background: rgba(220, 67, 68, 0.12);
    border: 1px solid rgba(220, 67, 68, 0.5);
    color: #ff9da7;
    padding: 12px;
    border-radius: 4px;
    font-family: Consolas, monospace;
    font-size: 0.9em;
    margin-bottom: 12px;
    white-space: pre-wrap;
    word-break: break-word;
}

/* ── Sommaire du résultat (onglet 1er niveau) ── */

.result-summary-grid[b-bvaeful2dp] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 8px 0;
    font-size: 0.9em;
}

.rs-row[b-bvaeful2dp] {
    display: flex;
    align-items: baseline;
    gap: 12px;
    padding: 5px 8px;
    border-radius: 4px;
    background: var(--kendo-color-surface);
    border: 1px solid var(--kendo-color-border);
}

.rs-label[b-bvaeful2dp] {
    min-width: 160px;
    font-weight: 600;
    color: var(--kendo-color-subtle);
    font-family: Consolas, monospace;
    font-size: 0.88em;
    flex-shrink: 0;
}

.rs-value[b-bvaeful2dp] {
    color: var(--kendo-color-on-app-surface);
    word-break: break-word;
}

.rs-number[b-bvaeful2dp] {
    font-family: Consolas, monospace;
    color: #79b8ff;
}

.rs-compressed[b-bvaeful2dp] {
    color: var(--kendo-color-subtle);
    font-size: 0.9em;
}

/* ── En-tête de section : titre, pastille de résumé et chevron sur une ligne ── */

.section-header-row[b-bvaeful2dp] {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
}

.section-summary[b-bvaeful2dp] {
    flex: 1;
}

/* Le <button> est rendu par TelerikButton (composant enfant) : il ne porte pas
   l'attribut de scope de cette page, d'où ::deep. */
.section-header-row[b-bvaeful2dp]  .collapse-btn {
    margin-left: auto;
    flex-shrink: 0;
}

/* ── Pastilles de résumé de l'entête ── */

.summary-chip[b-bvaeful2dp] {
    display: inline-block;
    padding: 2px 10px;
    border-radius: 12px;
    background: var(--kendo-color-surface);
    border: 1px solid var(--kendo-color-border);
    color: var(--kendo-color-subtle);
    font-size: 0.82em;
    font-weight: 500;
    white-space: nowrap;
}

.summary-warn[b-bvaeful2dp] {
    background: rgba(255, 193, 7, 0.12);
    border-color: var(--kendo-color-warning, #ffc107);
    color: #ffd66b;
}

.summary-ok[b-bvaeful2dp] {
    background: rgba(126, 231, 135, 0.12);
    border-color: var(--kendo-color-success, #4caf50);
    color: #7ee787;
}

/* Pastille du ERPSystemType de la compagnie sélectionnée */
.erp-type-badge[b-bvaeful2dp] {
    display: inline-block;
    padding: 2px 10px;
    border-radius: 12px;
    background: var(--kendo-color-surface);
    border: 1px solid var(--kendo-color-border);
    color: var(--kendo-color-on-app-surface);
    font-family: Consolas, monospace;
    font-size: 0.85em;
    font-weight: 600;
    white-space: nowrap;
}

/* ── Sous-boîtes de la section « Paramètres de la requête » ── */

.qs-subbox[b-bvaeful2dp] {
    padding: 12px 14px;
    margin-bottom: 12px;
    background: var(--kendo-color-surface-alt);
    border: 1px solid var(--kendo-color-border);
    border-radius: 6px;
}

.qs-subbox-title[b-bvaeful2dp] {
    margin: 0 0 10px 0;
    font-size: 0.95em;
    font-weight: 600;
    color: var(--kendo-color-subtle);
}

/* Résumé des champs choisis : monospace, retour à la ligne, hauteur bornée */
.selected-fields-summary[b-bvaeful2dp] {
    margin-top: 6px;
    padding: 8px 10px;
    background: var(--kendo-color-surface);
    border: 1px solid var(--kendo-color-border);
    border-radius: 4px;
    color: var(--kendo-color-subtle);
    font-family: Consolas, monospace;
    font-size: 0.85em;
    word-break: break-word;
    min-height: 28px;
    max-height: 120px;
    overflow-y: auto;
}

/* ═══════════ Mode URI brute ═══════════ */

.mode-switch[b-bvaeful2dp] {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 16px;
}

.mode-hint[b-bvaeful2dp] {
    color: var(--kendo-color-subtle);
    font-size: 0.88em;
}

/* Variante de .form-row pour un champ large qui passe sous son etiquette. */
.form-row-stacked[b-bvaeful2dp] {
    flex-direction: column;
    align-items: flex-start;
}

.raw-uri-input[b-bvaeful2dp] {
    width: 100%;
}

/* Une URI collee est longue : police mono pour distinguer les caracteres encodes. */
.raw-uri-input[b-bvaeful2dp]  textarea {
    font-family: Consolas, monospace;
    font-size: 0.88em;
}

/* Contrairement au reste de .json-preview, on veut voir toute la URL sans defiler. */
.effective-url[b-bvaeful2dp] {
    white-space: pre-wrap;
    word-break: break-all;
    max-height: 160px;
}

/* Le bloc sysadmin est le seul endroit qui peut sortir de la base imposee : on le marque. */
.qs-subbox-admin[b-bvaeful2dp] {
    border-left: 3px solid var(--kendo-color-warning);
    padding-left: 12px;
    margin-top: 16px;
}

.raw-header-row[b-bvaeful2dp] {
    flex-wrap: wrap;
}


/* Explique le bouton Executer grise, au lieu de laisser deviner. */
.execute-blocked[b-bvaeful2dp] {
    color: var(--kendo-color-subtle);
    font-size: 0.88em;
    font-style: italic;
}
/* /Components/Pages/Licence/LicenceOverviewPage.razor.rz.scp.css */
/* =========================================================
   Survol d'une licence — styles scopés
   Même langage visuel que la mise en service (cartes, tuiles).
   ========================================================= */

.lo[b-q5em7wgpyb] {
    max-width: 1100px;
    margin: 0 auto;
    padding: 1.5rem 1rem 3rem;
    box-sizing: border-box;
}

.lo-empty h2[b-q5em7wgpyb],
.lo-head h2[b-q5em7wgpyb] {
    margin: 0 0 0.35rem;
    font-size: 1.5rem;
    font-weight: 600;
}

.lo-head h2 code[b-q5em7wgpyb] {
    font-size: 1.3rem;
    padding: 0.15rem 0.5rem;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.08);
}

.lo-kicker[b-q5em7wgpyb] {
    margin: 0 0 0.25rem;
    font-size: 0.78rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--kendo-color-subtle, #aaa);
}

.lo-muted[b-q5em7wgpyb] {
    margin: 0;
    font-size: 0.9rem;
    color: var(--kendo-color-subtle, #aaa);
}

.lo-error[b-q5em7wgpyb] {
    margin: 0.75rem 0 0;
    font-size: 0.88rem;
    color: var(--kendo-color-error, #f31700);
}

.lo-head[b-q5em7wgpyb] {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-end;
    gap: 1rem 2rem;
    margin-bottom: 1.5rem;
}

.lo-stats[b-q5em7wgpyb] {
    display: flex;
    gap: 1.5rem;
}

.lo-stat[b-q5em7wgpyb] {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 90px;
    padding: 0.6rem 0.9rem;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 10px;
    background: var(--kendo-color-surface, #222244);
}

.lo-stat-n[b-q5em7wgpyb] {
    font-size: 1.15rem;
    font-weight: 600;
}

.lo-stat-l[b-q5em7wgpyb] {
    font-size: 0.75rem;
    color: var(--kendo-color-subtle, #aaa);
}

.lo-ok[b-q5em7wgpyb] {
    color: var(--kendo-color-success, #37b400);
}

.lo-warn[b-q5em7wgpyb] {
    color: var(--kendo-color-warning, #ffc000);
}

/* ── Sections ─────────────────────────────────────────── */

.lo-section[b-q5em7wgpyb] {
    margin-bottom: 1.75rem;
}

.lo-section h3[b-q5em7wgpyb] {
    margin: 0 0 0.75rem;
    font-size: 1.1rem;
    font-weight: 600;
}

.lo-section-head[b-q5em7wgpyb] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 1rem;
}

.lo-card[b-q5em7wgpyb] {
    margin-bottom: 0.75rem;
    padding: 0.9rem 1.1rem;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 10px;
    background: var(--kendo-color-surface, #222244);
}

.lo-card-row[b-q5em7wgpyb] {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 0.5rem 1rem;
    font-size: 0.9rem;
}

.lo-row-actions[b-q5em7wgpyb] {
    display: inline-flex;
    align-items: center;
    gap: 0.9rem;
    flex-shrink: 0;
}

.lo-link[b-q5em7wgpyb] {
    border: 0;
    background: none;
    padding: 0;
    font: inherit;
    font-size: 0.9rem;
    color: var(--kendo-color-primary, #4e9af1);
    cursor: pointer;
}

.lo-link:disabled[b-q5em7wgpyb] {
    opacity: 0.5;
    cursor: default;
}

/* Verdict du test, sur la ligne de la compagnie (même esprit que les pastilles .status-* d'app.css). */
.lo-test[b-q5em7wgpyb] {
    border: 1px solid transparent;
    border-radius: 999px;
    padding: 0.1rem 0.6rem;
    font: inherit;
    font-size: 0.8rem;
    white-space: nowrap;
}

.lo-test-running[b-q5em7wgpyb] {
    color: #79b8ff;
    border-color: rgba(121, 184, 255, 0.35);
}

.lo-test-ok[b-q5em7wgpyb] {
    color: #7ee2a8;
    background: rgba(46, 204, 113, 0.12);
    border-color: rgba(126, 226, 168, 0.35);
    cursor: pointer;
}

.lo-test-ko[b-q5em7wgpyb] {
    color: #f5c26b;
    background: rgba(255, 180, 90, 0.10);
    border-color: rgba(245, 194, 107, 0.35);
}

.lo-details[b-q5em7wgpyb] {
    margin-top: 0.5rem;
    font-size: 0.85rem;
    color: var(--kendo-color-subtle, #aaa);
}

.lo-details summary[b-q5em7wgpyb] {
    cursor: pointer;
}

.lo-table[b-q5em7wgpyb] {
    width: 100%;
    margin-top: 0.5rem;
    border-collapse: collapse;
    font-size: 0.82rem;
}

.lo-table th[b-q5em7wgpyb],
.lo-table td[b-q5em7wgpyb] {
    padding: 0.3rem 0.5rem;
    text-align: left;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

/* ── Tuiles ───────────────────────────────────────────── */

.lo-tiles[b-q5em7wgpyb] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 0.9rem;
}

.lo-tile[b-q5em7wgpyb] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 1rem 1.1rem;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 10px;
    background: var(--kendo-color-surface, #222244);
    color: var(--kendo-color-on-app-surface, #e0e0e0);
    text-decoration: none;
    text-align: left;
    font: inherit;
    cursor: pointer;
}

.lo-tile:hover[b-q5em7wgpyb] {
    border-color: var(--kendo-color-primary, #4e9af1);
}

.lo-tile-name[b-q5em7wgpyb] {
    font-weight: 600;
}

.lo-tile-sub[b-q5em7wgpyb] {
    font-size: 0.82rem;
    color: var(--kendo-color-subtle, #aaa);
}

@media (max-width: 640px) {
    .lo-stats[b-q5em7wgpyb] {
        width: 100%;
        justify-content: space-between;
        gap: 0.5rem;
    }
}
/* /Components/Pages/Onboarding/CustomerFormEditor.razor.rz.scp.css */
/* Styles du formulaire client — déménagés de OnboardingWizard.razor.css avec le markup.
   L'isolation CSS de Blazor ne traverse pas les composants : chaque composant extrait
   porte les règles de son propre markup. */

.new-customer-form[b-ri9mpx3jlk] {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
}

.field[b-ri9mpx3jlk] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.field > label[b-ri9mpx3jlk] {
    font-weight: 500;
    font-size: 0.85rem;
    color: var(--kendo-color-subtle, #a9a9b3);
}

.field-row[b-ri9mpx3jlk] {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.field-row > .field[b-ri9mpx3jlk] {
    flex: 1 1 140px;
}

.required-star[b-ri9mpx3jlk] {
    color: var(--kendo-color-primary, #dc4344);
    margin-left: 2px;
}

.field-hint[b-ri9mpx3jlk] {
    font-size: 0.78rem;
    line-height: 1.35;
    color: var(--kendo-color-subtle, #a9a9b3);
}

.field-hint code[b-ri9mpx3jlk] {
    font-family: ui-monospace, "Cascadia Mono", Consolas, monospace;
    font-size: 0.95em;
    color: var(--kendo-color-base-emphasis, #d8d8de);
}

/* Largeur pleine par défaut pour les composants Telerik dans une carte */
.field[b-ri9mpx3jlk]  .k-input,
.field[b-ri9mpx3jlk]  .k-picker,
.field[b-ri9mpx3jlk]  .k-textbox {
    width: 100%;
}

@media (max-width: 680px) {
    .field-row[b-ri9mpx3jlk] {
        flex-direction: column;
    }
}
/* /Components/Pages/Onboarding/OnboardingCaseListPage.razor.rz.scp.css */
/* =========================================================
   Liste des mises en service — styles scopés
   Un tableau (TelerikGrid) dans la même carte que le dossier.
   ========================================================= */

.case-list-page[b-jvlmmhvu9f] {
    display: flex;
    justify-content: center;
    width: 100%;
    padding: 2rem 1rem 3rem;
    box-sizing: border-box;
}

.case-list-card[b-jvlmmhvu9f] {
    background: var(--kendo-color-surface, #222244);
    border: 1px solid var(--kendo-color-border, #3a3a3a);
    border-radius: 10px;
    box-shadow: 0 6px 28px rgba(0, 0, 0, 0.28);
    width: 100%;
    max-width: 1280px;
    padding: 1.75rem 2rem 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    box-sizing: border-box;
}

.case-list-header[b-jvlmmhvu9f] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.case-list-header h3[b-jvlmmhvu9f] {
    margin: 0 0 0.25rem;
    font-size: 1.35rem;
    color: var(--kendo-color-on-app-surface, #e6e6e6);
}

.case-list-muted[b-jvlmmhvu9f] {
    margin: 0;
    font-size: 0.85rem;
    color: var(--kendo-color-subtle, #9a9aa8);
}

.case-list-tools[b-jvlmmhvu9f] {
    flex: none;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.4rem;
}

.case-list-toggle[b-jvlmmhvu9f] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.82rem;
    color: var(--kendo-color-subtle, #9a9aa8);
    cursor: pointer;
    white-space: nowrap;
}

.case-list-empty[b-jvlmmhvu9f] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 1rem 0 0.5rem;
}

.case-list-link[b-jvlmmhvu9f] {
    font-size: 0.9rem;
    color: var(--kendo-color-primary, #dc4344);
    text-decoration: none;
    white-space: nowrap;
}

.case-list-link:hover[b-jvlmmhvu9f] {
    text-decoration: underline;
}

.case-list-error[b-jvlmmhvu9f] {
    margin: 0 0 0.75rem;
    color: var(--kendo-color-error, #f31700);
    font-size: 0.9rem;
}

/* ---------- Cellules du tableau ---------- */

[b-jvlmmhvu9f] .case-grid .k-grid-content tr {
    cursor: pointer;
}

.case-grid-strong[b-jvlmmhvu9f] {
    font-weight: 600;
    color: var(--kendo-color-on-app-surface, #e6e6e6);
}

.case-grid-muted[b-jvlmmhvu9f] {
    font-size: 0.8rem;
    color: var(--kendo-color-subtle, #9a9aa8);
}

.case-grid-pct[b-jvlmmhvu9f] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.82rem;
}

.case-grid-pct-bar[b-jvlmmhvu9f] {
    flex: 1 1 auto;
    height: 6px;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.1);
    overflow: hidden;
}

.case-grid-pct-fill[b-jvlmmhvu9f] {
    height: 100%;
    border-radius: 6px;
    background: var(--kendo-color-primary, #dc4344);
}

.case-grid-actions[b-jvlmmhvu9f] {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
}

.case-row-badge[b-jvlmmhvu9f] {
    display: inline-block;
    padding: 0.2rem 0.65rem;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 600;
    white-space: nowrap;
}

.case-row-badge-open[b-jvlmmhvu9f] {
    background: rgba(255, 176, 32, 0.16);
    color: #ffb020;
}

.case-row-badge-done[b-jvlmmhvu9f] {
    background: rgba(46, 176, 106, 0.16);
    color: #2eb06a;
}

.case-row-badge-cancelled[b-jvlmmhvu9f] {
    background: rgba(255, 255, 255, 0.08);
    color: var(--kendo-color-subtle, #aaa);
}

.case-row-open[b-jvlmmhvu9f] {
    font-size: 0.9rem;
    color: var(--kendo-color-primary, #dc4344);
    text-decoration: none;
}

.case-row-open:hover[b-jvlmmhvu9f] {
    text-decoration: underline;
}

.case-row-cancel[b-jvlmmhvu9f] {
    border: 0;
    background: none;
    padding: 0;
    font: inherit;
    font-size: 0.85rem;
    color: var(--kendo-color-subtle, #aaa);
    cursor: pointer;
}

.case-row-cancel:hover[b-jvlmmhvu9f] {
    text-decoration: underline;
}

.case-row-cancel-confirm[b-jvlmmhvu9f] {
    color: var(--kendo-color-error, #f31700);
    font-weight: 600;
}

/* ---------- Écrans étroits ---------- */

@media (max-width: 640px) {
    .case-list-card[b-jvlmmhvu9f] {
        padding: 1.25rem 1rem 1rem;
    }

    .case-list-header[b-jvlmmhvu9f] {
        flex-direction: column;
    }

    .case-list-tools[b-jvlmmhvu9f] {
        align-items: flex-start;
    }
}
/* /Components/Pages/Onboarding/TrialStartPage.razor.rz.scp.css */
/* =========================================================
   Essai web — une page, les étapes à gauche (libres d'aller-retour)
   Mobile : les étapes passent au-dessus, en rangée compacte.
   ========================================================= */

.ts[b-5ky2vi1he6] {
    display: grid;
    grid-template-columns: 250px minmax(0, 1fr);
    gap: 2rem;
    max-width: 1100px;
    margin: 0 auto;
    padding: 1.5rem 1rem 3rem;
}

/* ── Menu des étapes ───────────────────────────────────── */

.ts-nav[b-5ky2vi1he6] {
    position: sticky;
    top: 1rem;
    align-self: start;
}

.ts-nav-title[b-5ky2vi1he6] {
    margin: 0 0 0.75rem;
    font-size: 0.8rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--kendo-color-subtle, #aaa);
}

.ts-steps[b-5ky2vi1he6] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.ts-step[b-5ky2vi1he6] {
    display: flex;
    align-items: flex-start;
    gap: 0.7rem;
    width: 100%;
    padding: 0.6rem 0.7rem;
    border: 1px solid transparent;
    border-radius: 8px;
    background: none;
    color: var(--kendo-color-on-app-surface, #e0e0e0);
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.ts-step:hover:not(:disabled)[b-5ky2vi1he6] {
    background: rgba(255, 255, 255, 0.04);
}

.ts-step:disabled[b-5ky2vi1he6] {
    cursor: default;
    opacity: 0.45;
}

.ts-step-current[b-5ky2vi1he6] {
    border-color: rgba(255, 255, 255, 0.12);
    background: var(--kendo-color-surface, #222244);
}

.ts-num[b-5ky2vi1he6] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.6rem;
    height: 1.6rem;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, 0.25);
    font-size: 0.8rem;
}

.ts-step-current .ts-num[b-5ky2vi1he6] {
    border-color: var(--kendo-color-primary, #4e9af1);
    color: var(--kendo-color-primary, #4e9af1);
}

.ts-step-done .ts-num[b-5ky2vi1he6] {
    border-color: var(--kendo-color-success, #37b400);
    background: var(--kendo-color-success, #37b400);
    color: #fff;
}

.ts-step-na .ts-num[b-5ky2vi1he6] {
    border-style: dashed;
}

.ts-step-text[b-5ky2vi1he6] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
}

.ts-step-name[b-5ky2vi1he6] {
    font-size: 0.92rem;
    font-weight: 600;
}

.ts-step-sub[b-5ky2vi1he6] {
    font-size: 0.78rem;
    color: var(--kendo-color-subtle, #aaa);
}

.ts-nav-foot[b-5ky2vi1he6] {
    margin: 1.25rem 0 0;
    padding-top: 0.75rem;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    font-size: 0.78rem;
    line-height: 1.6;
    color: var(--kendo-color-subtle, #aaa);
    overflow-wrap: anywhere;
}

.ts-nav-new[b-5ky2vi1he6] {
    display: inline-block;
    margin-top: 0.9rem;
    font-size: 0.85rem;
    color: var(--kendo-color-primary, #4e9af1);
    text-decoration: none;
}

/* ── Contenu de l'étape ────────────────────────────────── */

/* Nouveau client / Client existant (intégrateur, admin). */
.ts-switch[b-5ky2vi1he6] {
    display: inline-flex;
    margin-bottom: 1rem;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 8px;
    overflow: hidden;
}

.ts-switch-btn[b-5ky2vi1he6] {
    padding: 0.4rem 1rem;
    border: 0;
    background: none;
    color: var(--kendo-color-on-app-surface, #e0e0e0);
    font: inherit;
    font-size: 0.88rem;
    cursor: pointer;
}

.ts-switch-on[b-5ky2vi1he6] {
    background: var(--kendo-color-primary, #4e9af1);
    color: var(--kendo-color-on-primary, #fff);
}

.ts-field[b-5ky2vi1he6] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    margin-bottom: 0.8rem;
}

.ts-field label[b-5ky2vi1he6] {
    font-size: 0.85rem;
    color: var(--kendo-color-subtle, #aaa);
}

.ts-field-row[b-5ky2vi1he6] {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

.ts-hint[b-5ky2vi1he6] {
    font-size: 0.8rem;
    color: var(--kendo-color-subtle, #aaa);
}

.ts-advanced[b-5ky2vi1he6] {
    margin-top: 1rem;
    padding: 0.75rem 1rem;
    border: 1px dashed rgba(255, 255, 255, 0.15);
    border-radius: 8px;
}

.ts-advanced summary[b-5ky2vi1he6] {
    margin-bottom: 0.5rem;
    font-size: 0.88rem;
    color: var(--kendo-color-subtle, #aaa);
    cursor: pointer;
}

.ts-check[b-5ky2vi1he6] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.88rem;
}

.ts-main[b-5ky2vi1he6] {
    min-width: 0;
}

.ts-main h2[b-5ky2vi1he6] {
    margin: 0 0 1rem;
    font-size: 1.4rem;
    font-weight: 600;
}

.ts-muted[b-5ky2vi1he6] {
    margin: 0 0 1rem;
    font-size: 0.9rem;
    color: var(--kendo-color-subtle, #aaa);
}

.ts-error[b-5ky2vi1he6] {
    margin: 0.75rem 0 0;
    font-size: 0.88rem;
    color: var(--kendo-color-error, #f31700);
}

.ts-actions[b-5ky2vi1he6] {
    display: flex;
    justify-content: flex-end;
    gap: 0.75rem;
    margin-top: 1.5rem;
}

.ts-card[b-5ky2vi1he6] {
    margin-bottom: 0.75rem;
    padding: 0.9rem 1.1rem;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 10px;
    background: var(--kendo-color-surface, #222244);
}

.ts-card p[b-5ky2vi1he6] {
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.5;
}

.ts-card a[b-5ky2vi1he6] {
    color: var(--kendo-color-primary, #4e9af1);
}

.ts-card .ts-card-title[b-5ky2vi1he6] {
    margin-bottom: 0.3rem;
    font-weight: 600;
}

.ts-card-row[b-5ky2vi1he6] {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 0.5rem 1rem;
    font-size: 0.9rem;
}

.ts-card-assist[b-5ky2vi1he6] {
    border-color: var(--kendo-color-warning, #ffc000);
}

.ts-ok[b-5ky2vi1he6] {
    font-size: 0.8rem;
    color: var(--kendo-color-success, #37b400);
}

.ts-warn[b-5ky2vi1he6] {
    font-size: 0.8rem;
    color: var(--kendo-color-warning, #ffc000);
}

.ts-link[b-5ky2vi1he6] {
    border: 0;
    background: none;
    padding: 0;
    font: inherit;
    font-size: 0.9rem;
    color: var(--kendo-color-primary, #4e9af1);
    cursor: pointer;
}

.ts-btn[b-5ky2vi1he6] {
    display: inline-block;
    margin-top: 0.6rem;
    padding: 0.45rem 1rem;
    border-radius: 6px;
    background: var(--kendo-color-primary, #4e9af1);
    color: var(--kendo-color-on-primary, #fff) !important;
    text-decoration: none;
    font-size: 0.9rem;
}

.ts-cards[b-5ky2vi1he6] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 0.9rem;
}

.ts-tile[b-5ky2vi1he6] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 1rem 1.1rem;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 10px;
    background: var(--kendo-color-surface, #222244);
    color: var(--kendo-color-on-app-surface, #e0e0e0);
    text-decoration: none;
}

/* Une tuile peut être un <button> (dialog) : même allure qu'un lien. */
button.ts-tile[b-5ky2vi1he6] {
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.ts-row-actions[b-5ky2vi1he6] {
    display: inline-flex;
    align-items: center;
    gap: 0.9rem;
    flex-shrink: 0;
}

.ts-row-actions a.ts-link[b-5ky2vi1he6] {
    text-decoration: none;
}

.ts-skip[b-5ky2vi1he6] {
    display: block;
    margin-top: 0.75rem;
    font-size: 0.82rem;
    color: var(--kendo-color-subtle, #aaa);
}

.ts-card-final[b-5ky2vi1he6] {
    margin-top: 1.5rem;
}

.ts-card-final .k-button[b-5ky2vi1he6] {
    margin-top: 0.6rem;
}

.ts-tile:hover[b-5ky2vi1he6],
.ts-tile:focus-visible[b-5ky2vi1he6] {
    border-color: var(--kendo-color-primary, #4e9af1);
}

.ts-tile-name[b-5ky2vi1he6] {
    font-weight: 600;
}

.ts-tile-sub[b-5ky2vi1he6] {
    font-size: 0.84rem;
    line-height: 1.45;
    color: var(--kendo-color-subtle, #aaa);
}

/* ── Mobile : les étapes au-dessus, en pastilles numérotées ── */

@media (max-width: 768px) {
    .ts[b-5ky2vi1he6] {
        grid-template-columns: minmax(0, 1fr);
        gap: 1rem;
        padding: 1rem 16px 2rem;
    }

    .ts-nav[b-5ky2vi1he6] {
        position: static;
    }

    .ts-steps[b-5ky2vi1he6] {
        flex-direction: row;
        justify-content: space-between;
        gap: 0;
    }

    .ts-steps li[b-5ky2vi1he6] {
        flex: 1 1 0;
        min-width: 0;
        position: relative;
    }

    /* Le trait qui relie les pastilles : gris pâle, vert une fois l'étape franchie. Chaque <li>
       porte sa moitié gauche et sa moitié droite ; la pastille passe par-dessus. */
    .ts-steps li[b-5ky2vi1he6]::before,
    .ts-steps li[b-5ky2vi1he6]::after {
        content: "";
        position: absolute;
        top: calc(0.4rem + 1px + 0.8rem);
        width: 50%;
        height: 2px;
        background: rgba(255, 255, 255, 0.14);
    }

    .ts-steps li[b-5ky2vi1he6]::before { left: 0; }
    .ts-steps li[b-5ky2vi1he6]::after { right: 0; }
    .ts-steps li:first-child[b-5ky2vi1he6]::before,
    .ts-steps li:last-child[b-5ky2vi1he6]::after { display: none; }

    .ts-steps li.ts-li-done[b-5ky2vi1he6]::after,
    .ts-steps li.ts-li-done + li[b-5ky2vi1he6]::before {
        background: var(--kendo-color-success, #37b400);
    }

    .ts-step[b-5ky2vi1he6] {
        position: relative;
        z-index: 1;
        flex-direction: column;
        align-items: center;
        gap: 0.3rem;
        padding: 0.4rem 0.1rem;
    }

    .ts-num[b-5ky2vi1he6] {
        background: var(--kendo-color-app-surface, #1c1c1c);
    }

    /* Un mot sous la pastille, le sous-titre attend le plein écran. */
    .ts-step-text[b-5ky2vi1he6] {
        align-items: center;
        text-align: center;
    }

    .ts-step-name[b-5ky2vi1he6] {
        font-size: 0.68rem;
        font-weight: 500;
        line-height: 1.15;
    }

    .ts-step-sub[b-5ky2vi1he6],
    .ts-nav-foot[b-5ky2vi1he6] {
        display: none;
    }
}

/* ── Annuler la mise en service (pied du menu) ─────────── */

.ts-nav-cancel[b-5ky2vi1he6] {
    margin-top: 0.75rem;
    font-size: 0.8rem;
    opacity: 0.7;
}

.ts-nav-cancel-box[b-5ky2vi1he6] {
    margin-top: 0.75rem;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    font-size: 0.8rem;
}

.ts-nav-cancel-box p[b-5ky2vi1he6] {
    margin: 0;
}

.ts-nav-cancel-reason[b-5ky2vi1he6] {
    width: 100%;
    box-sizing: border-box;
    padding: 0.25rem 0.4rem;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 6px;
    background: transparent;
    color: inherit;
    font: inherit;
}
/* /Components/Pages/Security/ChangePassword.razor.rz.scp.css */
/* =========================================================
   ChangePassword page — styles scopés
   Même identité visuelle que Login.razor et ForgotPassword.razor
   ========================================================= */

.login-container[b-k3atimskbq] {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    background: var(--kendo-color-app-surface, #1a1a2e);
    padding: 1rem;
}

.login-card[b-k3atimskbq] {
    background: var(--kendo-color-surface, #222244);
    border-radius: 8px;
    padding: 2rem;
    width: 100%;
    max-width: 460px;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.3);
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

/* En-tête logo + titre */
.login-header[b-k3atimskbq] {
    text-align: center;
    margin-bottom: 0.25rem;
}

.login-logo[b-k3atimskbq] {
    max-width: 240px;
    margin-bottom: 0.5rem;
}

.login-header h2[b-k3atimskbq] {
    margin: 0;
    color: var(--kendo-color-on-app-surface, #e0e0e0);
}

.login-subtitle[b-k3atimskbq] {
    margin: 0.2rem 0 0;
    font-size: 0.9rem;
    color: var(--kendo-color-subtle, #aaa);
}

/* Alertes — classes status-* du projet */
.login-alert[b-k3atimskbq] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.65rem 0.9rem;
    border-radius: 4px;
    font-size: 0.88rem;
}

/* Champs de formulaire */
.form-group[b-k3atimskbq] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    margin-bottom: 0.5rem;
}

.form-group label[b-k3atimskbq] {
    font-weight: 500;
    font-size: 0.88rem;
    color: var(--kendo-color-subtle, #aaa);
}

.form-actions[b-k3atimskbq] {
    margin-top: 1rem;
    margin-bottom: 0.25rem;
    display: flex;
    align-items: center;
    gap: 1rem;
}

/* Bouton étiré sur la place restante — flex: 1 et non width: 100%, parce qu'ici il partage
   la rangée avec le lien « Annuler ».

   Un bouton rendu par Telerik ne porte PAS l'attribut de scope de cette page : une règle
   posée sur sa classe est réécrite en « .login-btn-submit[b-xxxxx] » et ne matche jamais.
   On part donc de notre conteneur et on descend avec ::deep. */
.form-actions[b-k3atimskbq]  .k-button {
    flex: 1;
    justify-content: center;
}

/* Lien Annuler aligné avec le bouton */
.cancel-link[b-k3atimskbq] {
    white-space: nowrap;
    font-size: 0.88rem;
}

/* Liens */
.form-links[b-k3atimskbq] {
    text-align: center;
    margin-top: 0.25rem;
}

.login-link[b-k3atimskbq] {
    color: var(--kendo-color-primary, #4e9af1);
    text-decoration: none;
    font-size: 0.88rem;
}

.login-link:hover[b-k3atimskbq] {
    text-decoration: underline;
}
/* /Components/Pages/Security/ForgotPassword.razor.rz.scp.css */
/* =========================================================
   ForgotPassword page — styles scopés
   Même identité visuelle que Login.razor
   ========================================================= */

.login-container[b-httksiukir] {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    background: var(--kendo-color-app-surface, #1a1a2e);
    padding: 1rem;
}

.login-card[b-httksiukir] {
    background: var(--kendo-color-surface, #222244);
    border-radius: 8px;
    padding: 2rem;
    width: 100%;
    max-width: 460px;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.3);
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

/* En-tête logo + titre */
.login-header[b-httksiukir] {
    text-align: center;
    margin-bottom: 0.25rem;
}

.login-logo[b-httksiukir] {
    max-width: 240px;
    margin-bottom: 0.5rem;
}

.login-header h2[b-httksiukir] {
    margin: 0;
    color: var(--kendo-color-on-app-surface, #e0e0e0);
}

.login-subtitle[b-httksiukir] {
    margin: 0.2rem 0 0;
    font-size: 0.9rem;
    color: var(--kendo-color-subtle, #aaa);
}

/* Alertes — classes status-* du projet */
.login-alert[b-httksiukir] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.65rem 0.9rem;
    border-radius: 4px;
    font-size: 0.88rem;
}

/* Texte d'instructions */
.login-instructions[b-httksiukir] {
    font-size: 0.9rem;
    color: var(--kendo-color-subtle, #aaa);
    margin: 0;
}

/* Champs de formulaire */
.form-group[b-httksiukir] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    margin-bottom: 0.5rem;
}

.form-group label[b-httksiukir] {
    font-weight: 500;
    font-size: 0.88rem;
    color: var(--kendo-color-subtle, #aaa);
}

.form-actions[b-httksiukir] {
    margin-top: 1rem;
    margin-bottom: 1rem;
}

/* Bouton pleine largeur.

   Un bouton rendu par Telerik ne porte PAS l'attribut de scope de cette page : une règle
   posée sur sa classe est réécrite en « .login-btn-submit[b-xxxxx] » et ne matche jamais.
   On part donc de notre conteneur et on descend avec ::deep. */
.form-actions[b-httksiukir]  .k-button {
    width: 100%;
    justify-content: center;
}

/* Liens */
.form-links[b-httksiukir] {
    text-align: center;
    margin-top: 0.25rem;
}

.login-link[b-httksiukir] {
    color: var(--kendo-color-primary, #4e9af1);
    text-decoration: none;
    font-size: 0.88rem;
}

.login-link:hover[b-httksiukir] {
    text-decoration: underline;
}
/* /Components/Pages/Security/Login.razor.rz.scp.css */
/* =========================================================
   Connexion — styles scopés

   Même gabarit que /signup : formulaire à gauche, argumentaire de marque à droite. Les
   deux pages se suivent dans le parcours ; deux mises en page différentes donneraient
   l'impression de changer de produit en cours de route.
   ========================================================= */

.login-page[b-7c8r6zhwns] {
    display: grid;
    grid-template-columns: 1fr 1fr;

    /* Rangée explicitement en 1fr : une rangée « auto » se dimensionnerait sur le contenu
       de ses items et ferait grandir la grille au-delà de sa propre hauteur — le
       débordement reviendrait alors dans body. */
    grid-template-rows: 1fr;

    /* height et non min-height : body est une colonne flex de hauteur fixe en
       overflow:hidden (voir app.css). Ce qui dépasse du viewport est rogné SANS barre de
       défilement, donc hors d'atteinte. On se cale sur le viewport et on fait défiler à
       l'intérieur du volet. */
    height: 100vh;
    height: 100dvh; /* dvh : exclut la barre d'adresse mobile (fallback vh ci-dessus) */

    background: var(--kendo-color-app-surface, #1a1a2e);
}

/* ─────────────────────────────── Volet formulaire ─────────────────────────────── */

.login-form-pane[b-7c8r6zhwns] {
    display: flex;
    padding: 2.5rem 2rem;
    background: var(--kendo-color-surface, #222244);

    /* Le formulaire est dense — SSO, deux champs, une case, trois liens, et jusqu'à trois
       alertes empilées. C'est ICI qu'on défile, jamais dans body. min-height: 0 pour que
       l'item de grille accepte d'être plus court que son contenu. */
    overflow-y: auto;
    min-height: 0;
}

.login-form-inner[b-7c8r6zhwns] {
    width: 100%;
    max-width: 420px;

    /* Centrage par marges auto, et non par align-items/justify-content: center — dès que le
       contenu dépasse la hauteur du volet, les marges auto retombent à zéro et le haut du
       formulaire reste atteignable au défilement. Un centrage flex le rendrait
       définitivement inaccessible. */
    margin: auto;

    display: flex;
    flex-direction: column;
    gap: 1rem;
}

/* En-tête centré : logo, titre et accroche. Le centrage s'arrête là — les libellés des
   champs restent alignés à gauche, sinon le formulaire devient pénible à parcourir. */
.login-logo[b-7c8r6zhwns] {
    max-width: 240px;
    margin-bottom: 0.5rem;
    margin-inline: auto;
}

/* Le h1 global fait 42px : hors d'échelle dans une colonne de 420 px. */
.login-form-inner h1[b-7c8r6zhwns] {
    margin: 0;
    font-size: 1.5rem;
    text-align: center;
    color: var(--kendo-color-on-app-surface, #e0e0e0);
}

.login-lead[b-7c8r6zhwns] {
    margin: 0.3rem 0 0;
    font-size: 0.9rem;
    line-height: 1.45;
    text-align: center;
    color: var(--kendo-color-subtle, #aaa);
}

/* Alertes — utilise les classes status-* du projet */
.login-alert[b-7c8r6zhwns] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.65rem 0.9rem;
    border-radius: 4px;
    font-size: 0.88rem;
}

/* Boutons pleine largeur.

   Un bouton rendu par Telerik ne porte PAS l'attribut de scope de cette page : une règle
   posée sur sa classe est réécrite en « .login-btn-submit[b-xxxxx] » et ne matche jamais.
   C'est pour ça que ces boutons étaient à largeur intrinsèque malgré un width: 100%.

   On part donc d'un conteneur qui est le nôtre et on descend avec ::deep. Ne pas remonter
   jusqu'à la carte : cela étirerait aussi les .k-button internes d'un futur composant
   Telerik (bascule de liste déroulante, incrémenteur). */
.form-actions[b-7c8r6zhwns]  .k-button {
    width: 100%;
    justify-content: center;
}

/* Champs de formulaire */
.form-group[b-7c8r6zhwns] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    margin-bottom: 0.5rem;
}

.form-group label[b-7c8r6zhwns] {
    font-weight: 500;
    font-size: 0.88rem;
    color: var(--kendo-color-subtle, #aaa);
}

.form-actions[b-7c8r6zhwns] {
    margin-top: 0.5rem;
}

/* Libellé + action sur la même ligne (« Modifier », « Mot de passe oublié ? ») */
.login-label-row[b-7c8r6zhwns] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.5rem;
}

.login-link[b-7c8r6zhwns] {
    color: var(--kendo-color-primary, #4e9af1);
    text-decoration: none;
    font-size: 0.88rem;
}

.login-link:hover[b-7c8r6zhwns] {
    text-decoration: underline;
}

/* Bouton natif rendu comme un lien — évite le splatting d'attributs sur Telerik */
.login-linkbtn[b-7c8r6zhwns] {
    padding: 0;
    background: none;
    border: none;
    color: var(--kendo-color-primary, #4e9af1);
    font: inherit;
    font-size: 0.88rem;
    cursor: pointer;
}

.login-linkbtn:hover[b-7c8r6zhwns] {
    text-decoration: underline;
}

.login-linkbtn:disabled[b-7c8r6zhwns] {
    opacity: 0.5;
    cursor: default;
}

/* L'identifiant de l'étape 1, rappelé à l'étape 2 : un vrai champ (pour les gestionnaires de mots
   de passe), mais présenté comme du texte. */
.login-identity[b-7c8r6zhwns] {
    width: 100%;
    padding: 0.5rem 0.75rem;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 4px;
    color: var(--kendo-color-on-app-surface, #e0e0e0);
    font: inherit;
    font-size: 0.95rem;
    box-sizing: border-box;
}

.login-identity:focus[b-7c8r6zhwns] {
    outline: none;
}

/* « Nouvel utilisateur ? Essayez gratuitement » */
.login-footer[b-7c8r6zhwns] {
    margin: 0.25rem 0 0;
    text-align: center;
    font-size: 0.88rem;
    color: var(--kendo-color-subtle, #aaa);
}

/* ─────────────────────────────── Volet marque ─────────────────────────────── */

/* Purement décoratif : s'il ne rentre pas, on rogne ICI plutôt que de laisser le volet
   pousser la page hors du viewport. min-height: 0 annule la taille minimale automatique de
   l'item de grille, qui sinon imposerait la hauteur de son contenu. */
.login-brand-pane[b-7c8r6zhwns] {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 1.5rem;
    padding: 3rem 1.25rem;
    min-height: 0;
    overflow: hidden;
}

/* Animation de marque.

   La page d'animation mesure elle-même son cadre (ResizeObserver) et y adapte la
   composition 1280x720 : l'iframe remplit simplement sa boîte. Voir Signup.razor.css, qui
   porte le même bloc. */
.login-brand-anim[b-7c8r6zhwns] {
    width: 100%;
    aspect-ratio: 16 / 9;
    border-radius: 8px;
    overflow: hidden;
    background: #06070A;
}

.login-brand-anim iframe[b-7c8r6zhwns] {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
}

/* 1,25rem (volet) + 1,75rem = le retrait de 3rem que le texte aurait eu sans la marge
   resserrée du volet, qui existe pour laisser l'animation approcher les bords. */
.login-brand-title[b-7c8r6zhwns],
.login-brand-lead[b-7c8r6zhwns] {
    padding-inline: 1.75rem;
}

.login-brand-title[b-7c8r6zhwns] {
    margin: 0;
    font-size: 1.9rem;
    line-height: 1.25;
    color: var(--kendo-color-on-app-surface, #e0e0e0);
}

.login-brand-lead[b-7c8r6zhwns] {
    margin: 0;
    font-size: 0.95rem;
    line-height: 1.55;
    color: var(--kendo-color-subtle, #aaa);
}

/* ─────────────────────────────── Responsive ─────────────────────────────── */

/* Sous 900 px, l'argumentaire s'efface et le formulaire prend toute la largeur. */
@media (max-width: 900px) {
    .login-page[b-7c8r6zhwns] {
        grid-template-columns: 1fr;
    }

    .login-brand-pane[b-7c8r6zhwns] {
        display: none;
    }
}

@media (max-width: 520px) {
    .login-form-pane[b-7c8r6zhwns] {
        padding: 1.5rem 1rem;
    }
}
/* /Components/Pages/Security/MyProfile.razor.rz.scp.css */
/* =========================================================
   MyProfile page — styles scopés
   ========================================================= */

/* Conteneur principal — limiter la largeur et centrer */
.my-profile-container[b-akwam7s8xl] {
    max-width: 760px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    padding: 1.5rem 1rem;
}

/* ── Carte d'informations lecture seule ─────────────────── */

.my-profile-info-card[b-akwam7s8xl] {
    background: var(--kendo-color-surface-alt, #2a2a44);
    border: 1px solid var(--kendo-color-border, #3a3a55);
    border-radius: 8px;
    padding: 1rem 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.my-profile-info-row[b-akwam7s8xl] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.my-profile-label[b-akwam7s8xl] {
    font-size: 0.78rem;
    color: var(--kendo-color-subtle-text, #999);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.my-profile-value[b-akwam7s8xl] {
    font-size: 0.95rem;
    font-weight: 500;
    color: var(--kendo-color-on-app-surface, #e0e0e0);
}

/* ── Sections du formulaire ─────────────────────────────── */

.edit-panel-section[b-akwam7s8xl] {
    background: var(--kendo-color-surface-alt, #2a2a44);
    border: 1px solid var(--kendo-color-border, #3a3a55);
    border-radius: 8px;
    padding: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.edit-panel-section-title[b-akwam7s8xl] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0 0 0.25rem;
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--kendo-color-on-app-surface, #e0e0e0);
}

.edit-panel-section-hint[b-akwam7s8xl] {
    font-size: 0.78rem;
    font-weight: 400;
    color: var(--kendo-color-subtle-text, #999);
    margin-left: 0.25rem;
}

/* ── Champs de formulaire ───────────────────────────────── */

.form-group[b-akwam7s8xl] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.form-group label[b-akwam7s8xl] {
    font-size: 0.88rem;
    font-weight: 500;
    color: var(--kendo-color-subtle, #aaa);
}

/* Grille 2 colonnes pour les champs côte à côte */
.form-row-2col[b-akwam7s8xl] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

@media (max-width: 560px) {
    .form-row-2col[b-akwam7s8xl] {
        grid-template-columns: 1fr;
    }
}

/* ── Boutons d'action ───────────────────────────────────── */

.my-profile-actions[b-akwam7s8xl] {
    display: flex;
    gap: 0.75rem;
    align-items: center;
    padding-top: 0.5rem;
}

.my-profile-hint[b-akwam7s8xl] {
    display: block;
    margin-top: 0.3rem;
    font-size: 0.8rem;
    opacity: 0.7;
}
/* /Components/Pages/Security/ResetPassword.razor.rz.scp.css */
/* =========================================================
   ResetPassword page — styles scopés
   Même identité visuelle que Login.razor
   ========================================================= */

.login-container[b-co9zpnvagc] {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    background: var(--kendo-color-app-surface, #1a1a2e);
    padding: 1rem;
}

.login-card[b-co9zpnvagc] {
    background: var(--kendo-color-surface, #222244);
    border-radius: 8px;
    padding: 2rem;
    width: 100%;
    max-width: 460px;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.3);
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

/* En-tête logo + titre */
.login-header[b-co9zpnvagc] {
    text-align: center;
    margin-bottom: 0.25rem;
}

.login-logo[b-co9zpnvagc] {
    max-width: 240px;
    margin-bottom: 0.5rem;
}

.login-header h2[b-co9zpnvagc] {
    margin: 0;
    color: var(--kendo-color-on-app-surface, #e0e0e0);
}

.login-subtitle[b-co9zpnvagc] {
    margin: 0.2rem 0 0;
    font-size: 0.9rem;
    color: var(--kendo-color-subtle, #aaa);
}

/* Alertes — classes status-* du projet */
.login-alert[b-co9zpnvagc] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.65rem 0.9rem;
    border-radius: 4px;
    font-size: 0.88rem;
}

/* Champs de formulaire */
.form-group[b-co9zpnvagc] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    margin-bottom: 0.5rem;
}

.form-group label[b-co9zpnvagc] {
    font-weight: 500;
    font-size: 0.88rem;
    color: var(--kendo-color-subtle, #aaa);
}

.form-actions[b-co9zpnvagc] {
    margin-top: 0.5rem;
}

/* Bouton pleine largeur.

   Un bouton rendu par Telerik ne porte PAS l'attribut de scope de cette page : une règle
   posée sur sa classe est réécrite en « .login-btn-submit[b-xxxxx] » et ne matche jamais.
   On part donc de notre conteneur et on descend avec ::deep. */
.form-actions[b-co9zpnvagc]  .k-button {
    width: 100%;
    justify-content: center;
}

/* Liens */
.form-links[b-co9zpnvagc] {
    text-align: center;
    margin-top: 0.25rem;
}

.login-link[b-co9zpnvagc] {
    color: var(--kendo-color-primary, #4e9af1);
    text-decoration: none;
    font-size: 0.88rem;
}

.login-link:hover[b-co9zpnvagc] {
    text-decoration: underline;
}
/* /Components/Pages/Security/Signup.razor.rz.scp.css */
/* =========================================================
   Signup — styles scopés

   Mise en page deux colonnes : le formulaire à gauche, l'argumentaire à droite.
   Le découpage visuel vient du contraste entre les deux surfaces Kendo déjà
   utilisées par la page de connexion — volontairement, pour que /signup ne
   ressemble pas à une page étrangère au portail.
   ========================================================= */

.signup-page[b-1j1mwyfuc8] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 100vh;
    background: var(--kendo-color-app-surface, #1a1a2e);
}

/* ─────────────────────────────── Volet formulaire ─────────────────────────────── */

.signup-form-pane[b-1j1mwyfuc8] {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2.5rem 2rem;
    background: var(--kendo-color-surface, #222244);
}

.signup-form-inner[b-1j1mwyfuc8] {
    width: 100%;
    max-width: 420px;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

/* En-tête centré : logo, titre et accroche. Le centrage s'arrête là — les libellés des
   champs restent alignés à gauche, sinon le formulaire devient pénible à parcourir. */
.signup-logo[b-1j1mwyfuc8] {
    max-width: 240px;
    margin-bottom: 0.5rem;
    margin-inline: auto;
}

.signup-form-inner h1[b-1j1mwyfuc8] {
    margin: 0;
    font-size: 1.5rem;
    text-align: center;
    color: var(--kendo-color-on-app-surface, #e0e0e0);
}

.signup-lead[b-1j1mwyfuc8] {
    margin: 0.3rem 0 0;
    font-size: 0.9rem;
    line-height: 1.45;
    text-align: center;
    color: var(--kendo-color-subtle, #aaa);
}

/* Alertes — reprend les classes status-* globales du projet pour les couleurs */
.signup-alert[b-1j1mwyfuc8] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    padding: 0.65rem 0.9rem;
    border-radius: 4px;
    font-size: 0.88rem;
    line-height: 1.5;
}

/* Prénom + nom côte à côte, empilés sur mobile */
.signup-row[b-1j1mwyfuc8] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
}

.form-group[b-1j1mwyfuc8] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    margin-bottom: 0.5rem;
}

.form-group label[b-1j1mwyfuc8] {
    font-weight: 500;
    font-size: 0.88rem;
    color: var(--kendo-color-subtle, #aaa);
}

.signup-hint[b-1j1mwyfuc8] {
    margin: 0.1rem 0 0;
    font-size: 0.78rem;
    color: var(--kendo-color-subtle, #aaa);
    opacity: 0.85;
}

/* « Code en route… » : le petit loader à côté du texte, pas au-dessus. */
.signup-sending[b-1j1mwyfuc8] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    opacity: 1;
}

.signup-actions[b-1j1mwyfuc8] {
    margin-top: 0.5rem;
}

/* Le bouton est rendu par Telerik : il ne porte donc pas l'attribut de scope de
   cette page, et une règle posée sur sa classe ne matcherait jamais. On part de
   notre propre conteneur et on descend avec ::deep. */
.signup-actions[b-1j1mwyfuc8]  .k-button {
    width: 100%;
    justify-content: center;
}

/* Le code OTP : espacé et centré, pour qu'on le relise facilement.
   ::deep est indispensable — le <input> est rendu par le composant Telerik,
   il ne porte donc pas l'attribut de scope de cette page. */
.signup-otp-code[b-1j1mwyfuc8]  input {
    text-align: center;
    letter-spacing: 0.4em;
    font-size: 1.15rem;
}

/* Pied de volet : liens secondaires */
.signup-footer[b-1j1mwyfuc8] {
    margin: 0.25rem 0 0;
    text-align: center;
    font-size: 0.88rem;
    color: var(--kendo-color-subtle, #aaa);
}

.signup-link[b-1j1mwyfuc8] {
    color: var(--kendo-color-primary, #4e9af1);
    text-decoration: none;
}

.signup-link:hover[b-1j1mwyfuc8] {
    text-decoration: underline;
}

.signup-sep[b-1j1mwyfuc8] {
    margin: 0 0.4rem;
    color: var(--kendo-color-subtle, #aaa);
    opacity: 0.6;
}

/* Bouton natif rendu comme un lien — évite le splatting d'attributs sur Telerik */
.signup-linkbtn[b-1j1mwyfuc8] {
    background: none;
    border: 0;
    padding: 0;
    font: inherit;
    color: var(--kendo-color-primary, #4e9af1);
    cursor: pointer;
}

.signup-linkbtn:hover[b-1j1mwyfuc8] {
    text-decoration: underline;
}

.signup-linkbtn:disabled[b-1j1mwyfuc8] {
    opacity: 0.5;
    cursor: default;
    text-decoration: none;
}

/* ─────────────────────────────── Volet marque ─────────────────────────────── */

/* Texte seul (l'animation de marque est restée sur /login) : le retrait de 3rem est
   rendu au volet. */
.signup-brand-pane[b-1j1mwyfuc8] {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 1.75rem;
    padding: 3rem;
}

.signup-brand-title[b-1j1mwyfuc8] {
    margin: 0;
    font-size: 1.9rem;
    line-height: 1.25;
    color: var(--kendo-color-on-app-surface, #e0e0e0);
}

.signup-brand-list[b-1j1mwyfuc8] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
}

.signup-brand-list li[b-1j1mwyfuc8] {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    font-size: 0.95rem;
    line-height: 1.5;
    color: var(--kendo-color-subtle, #aaa);
}

.signup-brand-check[b-1j1mwyfuc8] {
    flex-shrink: 0;
    margin-top: 0.15rem;
    color: var(--kendo-color-primary, #4e9af1);
}

/* ─────────────────────────────── Responsive ─────────────────────────────── */

/* Sous 900 px, l'argumentaire s'effface et le formulaire prend toute la largeur. */
@media (max-width: 900px) {
    .signup-page[b-1j1mwyfuc8] {
        grid-template-columns: 1fr;
    }

    .signup-brand-pane[b-1j1mwyfuc8] {
        display: none;
    }
}

@media (max-width: 520px) {
    .signup-row[b-1j1mwyfuc8] {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .signup-form-pane[b-1j1mwyfuc8] {
        padding: 1.5rem 1rem;
    }
}
/* /Components/Pages/Security/User.razor.rz.scp.css */
/* ─── Custom context menu ─── */

.custom-context-menu-backdrop[b-ni7rbx0c3t] {
    position: fixed;
    inset: 0;
    z-index: 9998;
}

.custom-context-menu[b-ni7rbx0c3t] {
    position: fixed;
    z-index: 9999;
    background: var(--kendo-color-surface-alt, #2b2b2b);
    border: 1px solid var(--kendo-color-border, #444);
    border-radius: 6px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
    min-width: 200px;
    padding: 4px 0;
}

.custom-context-menu ul[b-ni7rbx0c3t] {
    list-style: none;
    margin: 0;
    padding: 0;
}

.custom-context-menu li[b-ni7rbx0c3t] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 16px;
    cursor: pointer;
    font-size: .9em;
    color: var(--kendo-color-on-surface, #ddd);
    transition: background 0.15s;
}

.custom-context-menu li:hover[b-ni7rbx0c3t] {
    background: var(--kendo-color-primary-subtle, rgba(13, 110, 253, 0.15));
}

.custom-context-menu li.context-menu-danger:hover[b-ni7rbx0c3t] {
    background: rgba(220, 53, 69, 0.2);
    color: #f59da0;
}
/* /Components/Pages/Security/UserRightsEditor.razor.rz.scp.css */
.rights-editor[b-uyabm33evh] {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 8px 4px;
}

/* ── Sections ── */

.rights-section[b-uyabm33evh] {
    background: var(--kendo-color-surface-alt);
    border: 1px solid var(--kendo-color-border);
    border-radius: 6px;
    padding: 14px 16px;
}

.rights-section-title[b-uyabm33evh] {
    margin: 0 0 12px 0;
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--kendo-color-on-app-surface);
    border-bottom: 1px solid var(--kendo-color-border);
    padding-bottom: 8px;
}

/* ── Formulaire ── */

.rights-form-box[b-uyabm33evh] {
    background: var(--kendo-color-surface);
    border: 1px solid var(--kendo-color-border);
    border-radius: 4px;
    padding: 12px 14px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.rights-form-row[b-uyabm33evh] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.rights-form-actions[b-uyabm33evh] {
    padding-top: 6px;
    border-top: 1px solid var(--kendo-color-border);
    justify-content: flex-end;
}

/* Séparateur vertical entre groupes de champs */
.rights-form-separator[b-uyabm33evh] {
    width: 1px;
    height: 24px;
    background: var(--kendo-color-border);
    margin: 0 4px;
    flex-shrink: 0;
}

/* ── Textes ── */

.rights-label[b-uyabm33evh] {
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--kendo-color-on-app-surface);
    white-space: nowrap;
}

.rights-radio-label[b-uyabm33evh] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    cursor: pointer;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--kendo-color-on-app-surface);
    white-space: nowrap;
}

/* ── Toggle vue ── */

.rights-view-toggle[b-uyabm33evh] {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 10px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--kendo-color-border);
}

/* ── Grille ── */

.rights-grid[b-uyabm33evh] {
    margin-top: 4px;
}

.rights-empty-message[b-uyabm33evh] {
    color: var(--kendo-color-subtle);
    font-style: italic;
    margin: 12px 0 0 0;
    font-size: 0.875rem;
}
/* /Components/Pages/SyncEngine/SchedulingJobDetail.razor.rz.scp.css */
.job-detail-page[b-014r0b74mc] {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
}

.job-detail-header[b-014r0b74mc] {
    display: flex;
    align-items: center;
}
/* /Components/Pages/SyncEngine/SchedulingJobHeader.razor.rz.scp.css */
.licence-filter[b-t219p813rs] {
    display: flex;
    align-items: center;
}
/* /Components/Pages/SyncEngine/SchedulingJobHistory.razor.rz.scp.css */
/* Styles spécifiques au composant SyncBatchDetailGrid — voir SyncBatchDetailGrid.razor.css */
/* /Components/Pages/SyncEngine/SchedulingJobRunning.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════════════
   SchedulingJobRunning — Scoped styles
   ═══════════════════════════════════════════════════════════════ */

.system-status-section .status-card[b-cwjyjhpt0j] {
    border-radius: 8px;
    transition: box-shadow 0.2s;
}

.system-status-section .status-card:hover[b-cwjyjhpt0j] {
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);
}

.status-icon[b-cwjyjhpt0j] {
    margin-bottom: 8px;
}

.status-label[b-cwjyjhpt0j] {
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--kendo-color-subtle, #6c757d);
    margin-bottom: 4px;
}

.status-value[b-cwjyjhpt0j] {
    font-size: 1.1rem;
    font-weight: 600;
}

/* ── Running job cards ── */

.running-job-card[b-cwjyjhpt0j] {
    border-left: 4px solid var(--kendo-color-primary, #0d6efd);
}
/* /Components/Pages/SyncEngine/SyncBatchHeaders.razor.rz.scp.css */

/* Stats badges (grille batch headers) */

[b-ks0b1gf115] .stats-grid {
    display: grid;
    grid-template-columns: repeat(3, auto);
    gap: 3px 5px;
    font-size: .78em;
}

[b-ks0b1gf115] .stat-badge {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 1px 7px;
    border-radius: 4px;
    font-weight: 500;
    white-space: nowrap;
    line-height: 1.5;
}

[b-ks0b1gf115] .stat-badge .stat-label {
    opacity: .7;
    font-weight: 400;
}

[b-ks0b1gf115] .stat-total {
    background: #3a3a4a;
    color: #ccc;
}

[b-ks0b1gf115] .stat-success {
    background: #143d1a;
    color: #6fcf7c;
}

[b-ks0b1gf115] .stat-fail {
    background: #3d1417;
    color: #f59da0;
}

[b-ks0b1gf115] .stat-new {
    background: #142a3d;
    color: #6fb8e8;
}

[b-ks0b1gf115] .stat-update {
    background: #2d2a3d;
    color: #b0a8d8;
}

[b-ks0b1gf115] .stat-skip {
    background: #3d3520;
    color: #d4c47a;
}

/* ── Context menu ── */

.custom-context-menu-backdrop[b-ks0b1gf115] {
    position: fixed;
    inset: 0;
    z-index: 10000;
}

.custom-context-menu[b-ks0b1gf115] {
    position: fixed;
    z-index: 10001;
    background: var(--kendo-color-surface, #2b2b3b);
    border: 1px solid var(--kendo-color-border, #444);
    border-radius: 6px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.35);
    min-width: 260px;
    padding: 4px 0;
}

.custom-context-menu ul[b-ks0b1gf115] {
    list-style: none;
    margin: 0;
    padding: 0;
}

.custom-context-menu li[b-ks0b1gf115] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 16px;
    cursor: pointer;
    font-size: 0.88rem;
    color: var(--kendo-color-on-app-surface, #ddd);
    transition: background 0.15s;
}

.custom-context-menu li:hover[b-ks0b1gf115] {
    background: var(--kendo-color-primary, #0d6efd);
    color: #fff;
}

.custom-context-menu li.context-menu-danger:hover[b-ks0b1gf115] {
    background: #dc3545;
    color: #fff;
}
/* /Components/Shared/AgentInstall.razor.rz.scp.css */
/* =========================================================
   Installer l'Agent (nouvelle version) — styles scopés
   Trois temps numérotés : où l'installer, préparer, vérification.
   ========================================================= */

.ai[b-m33b8jaybj] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.ai-head[b-m33b8jaybj] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.ai-title[b-m33b8jaybj] {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 600;
    color: var(--kendo-color-on-app-surface, #e0e0e0);
}

.ai-badge[b-m33b8jaybj] {
    padding: 0.2rem 0.6rem;
    border-radius: 4px;
    font-size: 0.8rem;
    background: rgba(255, 255, 255, 0.08);
    color: var(--kendo-color-subtle, #aaa);
}

.ai-badge-ok[b-m33b8jaybj] {
    background: rgba(55, 180, 0, 0.18);
    color: var(--kendo-color-success, #37b400);
}

.ai-sub[b-m33b8jaybj] {
    margin: 0;
    font-size: 0.88rem;
    line-height: 1.55;
    color: var(--kendo-color-subtle, #aaa);
}

.ai-sub a[b-m33b8jaybj] {
    margin-left: 0.35rem;
    color: var(--kendo-color-primary, #4e9af1);
}

.ai-card[b-m33b8jaybj],
.ai-steps[b-m33b8jaybj] {
    margin: 0.25rem 0 0;
    padding: 0.25rem 1.25rem;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 10px;
    background: var(--kendo-color-surface, #222244);
    list-style: none;
}

.ai-card[b-m33b8jaybj] {
    padding: 1rem 1.25rem;
}

.ai-step[b-m33b8jaybj] {
    display: flex;
    gap: 0.9rem;
    padding: 0.9rem 0;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.ai-step:first-child[b-m33b8jaybj] {
    border-top: 0;
}

.ai-num[b-m33b8jaybj] {
    flex-shrink: 0;
    width: 1.7rem;
    height: 1.7rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.85rem;
    border: 1px solid rgba(255, 255, 255, 0.25);
    color: var(--kendo-color-subtle, #aaa);
}

.ai-num-current[b-m33b8jaybj] {
    border-color: var(--kendo-color-primary, #4e9af1);
    color: var(--kendo-color-primary, #4e9af1);
}

.ai-num-done[b-m33b8jaybj] {
    border-color: var(--kendo-color-success, #37b400);
    color: var(--kendo-color-success, #37b400);
}

.ai-step-title[b-m33b8jaybj] {
    margin: 0.15rem 0 0.3rem;
    font-weight: 600;
    color: var(--kendo-color-on-app-surface, #e0e0e0);
}

.ai-row[b-m33b8jaybj] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.6rem;
}

/* Liens natifs stylés en boutons (téléchargement, mailto) : navigation, pas action. */
.ai-btn[b-m33b8jaybj] {
    display: inline-block;
    padding: 0.45rem 0.9rem;
    border-radius: 4px;
    border: 1px solid var(--kendo-color-primary, #4e9af1);
    background: var(--kendo-color-primary, #4e9af1);
    color: var(--kendo-color-on-primary, #fff);
    text-decoration: none;
    font-size: 0.88rem;
}

.ai-btn-outline[b-m33b8jaybj] {
    background: none;
    color: var(--kendo-color-primary, #4e9af1);
}

.ai-hint[b-m33b8jaybj] {
    margin: 0.6rem 0 0;
    font-size: 0.78rem;
    color: var(--kendo-color-subtle, #aaa);
}

.ai-details[b-m33b8jaybj] {
    margin-top: 0.6rem;
    font-size: 0.82rem;
    color: var(--kendo-color-subtle, #aaa);
}

.ai-details summary[b-m33b8jaybj],
.ai-link[b-m33b8jaybj] {
    cursor: pointer;
}

.ai-details code[b-m33b8jaybj] {
    word-break: break-all;
}

.ai-link[b-m33b8jaybj] {
    border: 0;
    background: none;
    padding: 0;
    font: inherit;
    color: var(--kendo-color-primary, #4e9af1);
}

.ai-ok[b-m33b8jaybj] {
    margin: 0;
    color: var(--kendo-color-success, #37b400);
}

.ai-warn[b-m33b8jaybj] {
    margin: 0;
    font-size: 0.88rem;
    color: var(--kendo-color-warning, #ffc000);
}

.ai-error[b-m33b8jaybj] {
    margin: 0.6rem 0 0;
    font-size: 0.85rem;
    color: var(--kendo-color-error, #f31700);
}
/* /Components/Shared/CompanyQuickCreate.razor.rz.scp.css */
/* =========================================================
   Créer une compagnie (version simple) — styles scopés
   Tuiles de logiciels, puis une carte avec les seuls champs utiles.
   ========================================================= */

.cqc[b-o260t29ckc] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.cqc-title[b-o260t29ckc] {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 600;
    color: var(--kendo-color-on-app-surface, #e0e0e0);
}

.cqc-sub[b-o260t29ckc] {
    margin: 0 0 0.25rem;
    font-size: 0.88rem;
    line-height: 1.5;
    color: var(--kendo-color-subtle, #aaa);
}

.cqc-sub a[b-o260t29ckc] {
    margin-left: 0.35rem;
    color: var(--kendo-color-primary, #4e9af1);
}

.cqc-group[b-o260t29ckc] {
    margin: 0.75rem 0 0.25rem;
    font-size: 0.82rem;
    color: var(--kendo-color-subtle, #aaa);
}

.cqc-tiles[b-o260t29ckc] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
    gap: 0.75rem;
}

/* Un <button> natif : cliquable au clavier, rien de splatté sur Telerik. */
.cqc-tile[b-o260t29ckc] {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
    padding: 1rem 0.5rem 0.85rem;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 10px;
    background: var(--kendo-color-surface, #222244);
    color: var(--kendo-color-on-app-surface, #e0e0e0);
    cursor: pointer;
    font: inherit;
}

.cqc-tile:hover[b-o260t29ckc],
.cqc-tile:focus-visible[b-o260t29ckc] {
    border-color: var(--kendo-color-primary, #4e9af1);
}

.cqc-tile-name[b-o260t29ckc] {
    font-size: 0.95rem;
    font-weight: 600;
}

.cqc-tile-sub[b-o260t29ckc] {
    font-size: 0.78rem;
    color: var(--kendo-color-subtle, #aaa);
}

/* « Autre » : tous les autres logiciels, en petit. */
.cqc-tiles-small[b-o260t29ckc] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.cqc-tile-small[b-o260t29ckc] {
    padding: 0.35rem 0.8rem;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 6px;
    background: var(--kendo-color-surface, #222244);
    color: var(--kendo-color-on-app-surface, #e0e0e0);
    font: inherit;
    font-size: 0.85rem;
    cursor: pointer;
}

.cqc-tile-small:hover[b-o260t29ckc],
.cqc-tile-small:focus-visible[b-o260t29ckc] {
    border-color: var(--kendo-color-primary, #4e9af1);
}

/* Formulaire complet partagé (SyncEngine.UIComponents) : il vient avec ses propres classes. */
.cqc-form[b-o260t29ckc] {
    margin-top: 0.5rem;
}

.cqc-btn[b-o260t29ckc] {
    display: inline-block;
    padding: 0.45rem 1rem;
    border-radius: 6px;
    background: var(--kendo-color-primary, #4e9af1);
    color: var(--kendo-color-on-primary, #fff);
    text-decoration: none;
    font-size: 0.9rem;
}

.cqc-badge[b-o260t29ckc] {
    position: absolute;
    top: -0.6rem;
    left: 50%;
    transform: translateX(-50%);
    padding: 0.1rem 0.5rem;
    border-radius: 4px;
    white-space: nowrap;
    font-size: 0.72rem;
    background: var(--kendo-color-primary, #4e9af1);
    color: var(--kendo-color-on-primary, #fff);
}

.cqc-card[b-o260t29ckc] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    margin-top: 0.5rem;
    padding: 1rem 1.25rem;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 10px;
    background: var(--kendo-color-surface, #222244);
}

.cqc-card-head[b-o260t29ckc] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
}

.cqc-card-title[b-o260t29ckc] {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--kendo-color-on-app-surface, #e0e0e0);
}

.cqc-link[b-o260t29ckc] {
    border: 0;
    background: none;
    padding: 0;
    font: inherit;
    font-size: 0.85rem;
    color: var(--kendo-color-primary, #4e9af1);
    cursor: pointer;
}

.cqc-field[b-o260t29ckc] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    margin-top: 0.6rem;
}

.cqc-field label[b-o260t29ckc] {
    display: flex;
    align-items: center;
    font-size: 0.85rem;
    color: var(--kendo-color-subtle, #aaa);
}

/* Valeur à copier (clé Solinfo d'Acomba GO) : le champ, puis « Copier » à droite. */
.cqc-copy-row[b-o260t29ckc] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.cqc-hint[b-o260t29ckc] {
    font-size: 0.78rem;
    color: var(--kendo-color-subtle, #aaa);
}

.cqc-advanced[b-o260t29ckc] {
    margin-top: 0.9rem;
    font-size: 0.85rem;
    color: var(--kendo-color-subtle, #aaa);
}

.cqc-advanced summary[b-o260t29ckc] {
    cursor: pointer;
}

.cqc-error[b-o260t29ckc] {
    margin: 0.75rem 0 0;
    font-size: 0.85rem;
    color: var(--kendo-color-error, #f31700);
}

.cqc-actions[b-o260t29ckc] {
    display: flex;
    justify-content: flex-end;
    margin-top: 1rem;
}

/* Options avancées : cases à cocher et propriétés étendues clé / valeur. */
.cqc-check[b-o260t29ckc] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.6rem;
    font-size: 0.85rem;
    color: var(--kendo-color-on-app-surface, #e0e0e0);
}

.cqc-ext-row[b-o260t29ckc] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.4rem;
}
/* /Components/Shared/HelpTip.razor.rz.scp.css */
/* Icône d'aide « ? » — discrète à côté d'un libellé, plus lisible au survol. */

.help-tip[b-tjcaf54hk5] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    vertical-align: middle;
    margin-left: 0.3rem;
    color: var(--kendo-color-subtle, #a9a9b3);
    cursor: help;
    line-height: 1;
    transition: color 0.15s ease;
}

/* Variante lien (DocUrl fourni) : le curseur signale qu'on peut cliquer. */
a.help-tip[b-tjcaf54hk5] {
    cursor: pointer;
    text-decoration: none;
}

.help-tip:hover[b-tjcaf54hk5],
.help-tip:focus-visible[b-tjcaf54hk5] {
    color: var(--kendo-color-primary, #dc4344);
    outline: none;
}

.help-tip[b-tjcaf54hk5]  .k-svg-icon {
    width: 1rem;
    height: 1rem;
}
/* /Components/Shared/PasswordBox.razor.rz.scp.css */
/* L'œil du champ mot de passe : un bouton nu dans le suffixe du TelerikTextBox. */

.pwd-eye[b-quq6b9lrbm] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    background: none;
    padding: 0 0.5rem;
    margin: 0;
    color: var(--kendo-color-subtle, #a9a9b3);
    cursor: pointer;
    line-height: 1;
}

.pwd-eye:hover[b-quq6b9lrbm],
.pwd-eye:focus-visible[b-quq6b9lrbm] {
    color: var(--kendo-color-primary, #dc4344);
    outline: none;
}

.pwd-eye[b-quq6b9lrbm]  .k-svg-icon {
    width: 1.1rem;
    height: 1.1rem;
}

/* Secret enregistré : l'œil reste visible mais éteint — on ne révèle jamais ce qu'on n'a pas tapé. */
.pwd-eye:disabled[b-quq6b9lrbm] {
    opacity: 0.35;
    cursor: not-allowed;
}
/* /Components/Shared/QualificationQuestions.razor.rz.scp.css */
/* =========================================================
   « Quelques questions » — styles scopés
   Une question = un libellé + une rangée de pastilles (boutons natifs).
   ========================================================= */

.qq[b-b8abjrkzyk] {
    display: flex;
    flex-direction: column;
    gap: 1.1rem;
}

.qq-lead[b-b8abjrkzyk] {
    margin: 0;
    font-size: 0.92rem;
    line-height: 1.5;
    color: var(--kendo-color-subtle, #aaa);
}

.qq-q[b-b8abjrkzyk] {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.qq-label[b-b8abjrkzyk] {
    margin: 0;
    font-size: 0.98rem;
    font-weight: 600;
    color: var(--kendo-color-on-app-surface, #e0e0e0);
}

.qq-chips[b-b8abjrkzyk] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.qq-chip[b-b8abjrkzyk] {
    padding: 0.4rem 0.85rem;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 999px;
    background: var(--kendo-color-surface, #222244);
    color: var(--kendo-color-on-app-surface, #e0e0e0);
    font: inherit;
    font-size: 0.88rem;
    cursor: pointer;
}

.qq-chip:hover[b-b8abjrkzyk],
.qq-chip:focus-visible[b-b8abjrkzyk] {
    border-color: var(--kendo-color-primary, #4e9af1);
}

/* Les « autres » logiciels, dépliés sous « Autre… » : plus petits. */
.qq-chips-small[b-b8abjrkzyk] {
    padding-left: 0.75rem;
    border-left: 2px solid rgba(255, 255, 255, 0.1);
}

.qq-chips-small .qq-chip[b-b8abjrkzyk] {
    padding: 0.25rem 0.7rem;
    font-size: 0.8rem;
}

.qq-chip-on[b-b8abjrkzyk] {
    border-color: var(--kendo-color-primary, #4e9af1);
    background: var(--kendo-color-primary, #4e9af1);
    color: var(--kendo-color-on-primary, #fff);
}

.qq-hint[b-b8abjrkzyk],
.qq-help[b-b8abjrkzyk] {
    margin: 0;
    font-size: 0.82rem;
    line-height: 1.5;
    color: var(--kendo-color-subtle, #aaa);
}

.qq-help[b-b8abjrkzyk] {
    padding: 0.6rem 0.8rem;
    border-left: 3px solid var(--kendo-color-primary, #4e9af1);
    background: rgba(255, 255, 255, 0.03);
}

.qq-hint a[b-b8abjrkzyk],
.qq-verdict a[b-b8abjrkzyk] {
    margin-left: 0.25rem;
    color: var(--kendo-color-primary, #4e9af1);
}

.qq-verdict[b-b8abjrkzyk] {
    padding: 0.85rem 1rem;
    border-radius: 10px;
    border: 1px solid rgba(255, 255, 255, 0.12);
}

.qq-verdict p[b-b8abjrkzyk] {
    margin: 0;
    font-size: 0.88rem;
    line-height: 1.5;
    color: var(--kendo-color-on-app-surface, #e0e0e0);
}

.qq-verdict .qq-verdict-title[b-b8abjrkzyk] {
    margin-bottom: 0.25rem;
    font-weight: 600;
}

.qq-verdict-incomplete[b-b8abjrkzyk] {
    display: none;
}

.qq-verdict-easy[b-b8abjrkzyk] {
    border-color: var(--kendo-color-success, #37b400);
    background: rgba(55, 180, 0, 0.08);
}

.qq-verdict-assisted[b-b8abjrkzyk] {
    border-color: var(--kendo-color-warning, #ffc000);
    background: rgba(255, 192, 0, 0.08);
}

.qq-verdict-blocked[b-b8abjrkzyk] {
    border-color: var(--kendo-color-error, #f31700);
    background: rgba(243, 23, 0, 0.08);
}
/* /Components/Shared/SsoButtons.razor.rz.scp.css */
/* Séparateur « ou continuer avec » — bien visible : c'est lui qui annonce la voie sans mot de passe. */
.sso-separator[b-c4f0xwuwp8] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-top: 0.25rem;
    color: var(--kendo-color-on-app-surface, #e0e0e0);
    font-size: 0.95rem;
    font-weight: 500;
}

.sso-separator[b-c4f0xwuwp8]::before,
.sso-separator[b-c4f0xwuwp8]::after {
    content: '';
    flex: 1;
    height: 1px;
    background: rgba(255, 255, 255, 0.22);
}

/* Grille de tuiles : côte à côte tant qu'elles tiennent, une seule prend toute la largeur. */
.sso-tiles[b-c4f0xwuwp8] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 0.6rem;
}

.sso-tile[b-c4f0xwuwp8] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    min-height: 76px;
    padding: 0.9rem 0.5rem;
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 8px;
    color: var(--kendo-color-on-app-surface, #e0e0e0);
    font: inherit;
    font-size: 0.9rem;
    font-weight: 500;
    cursor: pointer;
    transition: background-color 0.15s, border-color 0.15s;
}

.sso-tile:hover:not(:disabled)[b-c4f0xwuwp8] {
    background: rgba(255, 255, 255, 0.05);
    border-color: rgba(255, 255, 255, 0.28);
}

.sso-tile:focus-visible[b-c4f0xwuwp8] {
    outline: 2px solid var(--kendo-color-primary, #e53e3e);
    outline-offset: 2px;
}

.sso-tile:disabled[b-c4f0xwuwp8] {
    opacity: 0.5;
    cursor: default;
}

.sso-tile img[b-c4f0xwuwp8] {
    width: 24px;
    height: 24px;
}
