:root {
    --crm-bg: #f7f8fa;
    --crm-surface: #ffffff;
    --crm-surface-2: #f3f5f8;
    --crm-surface-3: #e9edf2;

    --crm-border: #e2e6ec;
    --crm-border-strong: #d2d8e0;

    --crm-accent: #3d7fff;
    --crm-accent-soft: rgba(61, 127, 255, 0.10);

    --crm-text: #1a2233;
    --crm-text-muted: #6b7a99;
    --crm-text-dim: #a7b0c0;

    --crm-success: #16a34a;
    --crm-warning: #d97706;
    --crm-danger: #dc2626;

    --crm-radius: 10px;
    --crm-radius-small: 6px;

    --crm-shadow-small:
        0 1px 3px rgba(20, 30, 50, 0.04);
}


/* ==========================================================
   CRM ALLIANCE — FICHE CLIENT
   Version consolidée
   Consultation / modification
   ========================================================== */


/* ==========================================================
   1. VARIABLES ET BASE
   ========================================================== */

.crm-client-page {
    --crm-bg: #f6f8fb;
    --crm-card: #ffffff;

    --crm-border: #dfe5ed;
    --crm-border-soft: #e8edf3;

    --crm-text: #172033;
    --crm-text-secondary: #526078;
    --crm-text-muted: #8793a7;

    --crm-primary: #3b82f6;
    --crm-primary-dark: #2563eb;

    --crm-radius: 10px;
    --crm-radius-small: 7px;

    width: 100%;
    min-width: 0;

    color: var(--crm-text);

    font-size: 12px;
    line-height: 1.45;
}


/* ==========================================================
   2. NETTOYAGE WORDPRESS / FORMIDABLE
   ========================================================== */

/*
 * Les Views génèrent plusieurs <p> vides autour
 * des blocs. Ils ne doivent ni créer d'espace
 * ni devenir des éléments du CSS Grid.
 */

.crm-client-page > p,
.crm-client-page-content > p,
.crm-client-page-main-column > p,
.crm-client-page section > p,
.crm-client-page header > p,
.crm-client-page nav > p,
.crm-client-page dl > p,
.crm-client-page dd > p,
.crm-client-page li > p,
.crm-client-page .crm-client-page-card-header > p,
.crm-client-page .crm-client-page-card-actions > p {
    margin: 0 !important;
    padding: 0 !important;
}

.crm-client-page-content > p,
.crm-client-page-main-column > p {
    display: none !important;
}


/* Paragraphes contenus dans les valeurs */
.crm-client-page dd p,
.crm-client-page-data-item p,
.crm-client-page-related-line p,
.crm-client-page-check-item p {
    margin: 0 !important;
}


/* ==========================================================
   ÉLÉMENTS PARASITES FORMIDABLE DANS LES GRILLES
   ========================================================== */

/*
 * Les Views Formidable injectent parfois des <p> vides
 * directement dans les <dl>.
 *
 * Dans une CSS Grid, ils occupent une cellule même s'ils
 * n'ont ni marge ni contenu.
 */

.crm-client-page dl > p,
.crm-client-page dl > br {
    display: none !important;
}


/* ==========================================================
   3. FIL D'ARIANE
   ========================================================== */

.crm-client-page-breadcrumb {
    display: flex;
    align-items: center;
    gap: 7px;

    margin: 0 0 12px;
}

.crm-client-page-back {
    color: #5d6c84 !important;

    font-size: 12px;
    font-weight: 500;

    text-decoration: none !important;
}

.crm-client-page-back:hover {
    color: var(--crm-primary) !important;
}

.crm-client-page-breadcrumb-separator {
    color: #b0b8c5;
}

.crm-client-page-breadcrumb-current {
    color: #7a879a;

    font-size: 12px;
}


/* ==========================================================
   4. EN-TÊTE CLIENT
   ========================================================== */

.crm-client-page-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;

    margin-bottom: 14px;
    padding: 17px 18px;

    border: 1px solid var(--crm-border);
    border-radius: var(--crm-radius);

    background: #fff;

    box-shadow:
        0 1px 2px rgba(15, 23, 42, .03);
}

.crm-client-page-header-main {
    display: flex;
    align-items: center;
    gap: 13px;

    min-width: 0;
}

.crm-client-page-avatar {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 46px;
    height: 46px;

    flex: 0 0 46px;

    overflow: hidden;

    border-radius: 50%;

    background: #eef4ff;

    color: #3978ed;

    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
}

.crm-client-page-heading {
    min-width: 0;
}

.crm-client-page-heading-top {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;

    margin-bottom: 3px;
}

.crm-client-page-code {
    color: #8996aa;

    font-size: 11px;
    font-weight: 700;

    letter-spacing: .07em;
    text-transform: uppercase;
}

.crm-client-page-status {
    display: inline-flex;
    align-items: center;

    min-height: 21px;

    padding: 3px 8px;

    border: 1px solid #f2c879;
    border-radius: 999px;

    background: #fff7e6;

    color: #a45f05;

    font-size: 10px;
    font-weight: 700;

    text-transform: uppercase;
}

.crm-client-page-title {
    margin: 0 !important;

    color: var(--crm-text);

    font-size: 20px !important;
    font-weight: 700 !important;
    line-height: 1.2;
}

.crm-client-page-subtitle {
    margin-top: 4px;

    color: #758197;

    font-size: 12px;
}

.crm-client-page-header-actions {
    flex: 0 0 auto;
}


/* ==========================================================
   5. BOUTONS
   ========================================================== */

.crm-client-page-button,
.crm-client-page-edit-link,
.crm-client-page-toggle-form {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-height: 30px;

    padding: 6px 10px;

    border: 1px solid #d8e0e9;
    border-radius: 6px;

    background: #fff;

    color: #526078 !important;

    font-size: 12px;
    font-weight: 600;
    line-height: 1;

    text-decoration: none !important;

    cursor: pointer;

    transition:
        border-color .15s ease,
        background-color .15s ease,
        color .15s ease;
}

.crm-client-page-button:hover,
.crm-client-page-edit-link:hover,
.crm-client-page-toggle-form:hover {
    border-color: #b8c8df;

    background: #f5f8fc;

    color: var(--crm-primary-dark) !important;
}

.crm-client-page-toggle-form {
    border-color: #c7d8f5;

    color: #356bc6 !important;
}


/* ==========================================================
   6. RÉSUMÉ RAPIDE
   ========================================================== */

.crm-client-page-summary {
    display: grid;

    grid-template-columns:
        repeat(5, minmax(0, 1fr));

    margin-bottom: 16px;

    overflow: hidden;

    border: 1px solid var(--crm-border);
    border-radius: var(--crm-radius);

    background: #fff;
}

.crm-client-page-summary-item {
    min-width: 0;

    padding: 11px 13px;

    border-right: 1px solid var(--crm-border-soft);
}

.crm-client-page-summary-item:last-child {
    border-right: 0;
}

.crm-client-page-summary-label {
    display: block;

    margin-bottom: 4px;

    color: #8995a8;

    font-size: 11px;
    font-weight: 700;

    letter-spacing: .045em;
    text-transform: uppercase;
}

.crm-client-page-summary-value,
.crm-client-page-summary-item > p {
    margin: 0 !important;

    color: #273249;

    font-size: 12px;
    font-weight: 600;
}


/* ==========================================================
   7. LAYOUT PRINCIPAL
   ========================================================== */

/*
 * Il n'y a plus de sidebar.
 * Le contenu principal utilise toute la largeur disponible.
 */

.crm-client-page-content {
    display: block !important;

    width: 100%;
    max-width: none;
}


/*
 * Toutes les cartes sont réparties automatiquement
 * sur DEUX colonnes en desktop.
 */

.crm-client-page-main-column {
    display: grid !important;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    align-items: start;

    gap: 16px;

    width: 100%;
    min-width: 0;
}


/*
 * Très important :
 * aucune carte n'est forcée sur toute la largeur.
 */

.crm-client-page-main-column
> .crm-client-page-card {
    grid-column: auto !important;

    width: 100%;
    min-width: 0;
}


/* ==========================================================
   8. CARTES
   ========================================================== */

.crm-client-page-card {
    overflow: hidden;

    border: 1px solid var(--crm-border);
    border-radius: var(--crm-radius);

    background: #fff;

    box-shadow:
        0 1px 2px rgba(15, 23, 42, .025);
}


/* ---------- Header ---------- */

.crm-client-page-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;

    min-height: 55px;

    padding: 11px 14px;

    border-bottom: 1px solid var(--crm-border-soft);

    background: #fff;
}

.crm-client-page-card-heading {
    min-width: 0;
}

.crm-client-page-card-title {
    margin: 0 !important;

    color: #2b374d;

    font-size: 12px !important;
    font-weight: 700 !important;
    line-height: 1.25;

    letter-spacing: .035em;
    text-transform: uppercase;
}

.crm-client-page-card-description {
    margin: 3px 0 0 !important;

    color: #919cad;

    font-size: 11px;
    line-height: 1.35;
}

.crm-client-page-card-actions {
    flex: 0 0 auto;
}


/* ---------- Body ---------- */

.crm-client-page-card-body {
    padding: 14px;

    font-size: 12px;
}


/* ==========================================================
   9. DONNÉES DANS LES CARTES
   ========================================================== */

/*
 * Chaque carte occupant environ 50 % de la page,
 * les données sont disposées sur 2 colonnes internes.
 */

.crm-client-page-data-grid {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 15px 20px;

    margin: 0;
}

.crm-client-page-data-item {
    min-width: 0;
}

.crm-client-page-data-item dt {
    margin: 0 0 4px;

    color: #8a96a9;

    font-size: 12px;
    font-weight: 500;
}

.crm-client-page-data-item dd {
    margin: 0;

    color: #253047;

    font-size: 12px;
    font-weight: 500;
    line-height: 1.4;
}

.crm-client-page-empty {
    color: #9ba5b5 !important;

    font-size: 12px;

    font-style: italic;
    font-weight: 400;
}


/* ==========================================================
   10. INFORMATIONS FINANCIÈRES
   ========================================================== */

.crm-client-page-card-finances {
    border-color: #ead8a9;
}

.crm-client-page-card-finances
.crm-client-page-card-header {
    border-bottom-color: #eadfbe;

    background: #fffcf5;
}

.crm-client-page-card-finances
.crm-client-page-card-title {
    color: #99620a;
}


/*
 * La carte finances fait désormais une demi-page :
 * 2 colonnes internes sont beaucoup plus lisibles que 4.
 */

.crm-client-page-data-grid-finances {
    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 10px;
}

.crm-client-page-data-grid-finances
.crm-client-page-data-item {
    padding: 10px;

    border: 1px solid #eadfbe;
    border-radius: 7px;

    background: #fffdf9;
}

.crm-client-page-data-grid-finances
.crm-client-page-data-item-highlight {
    border-color: #a9dfc0;

    background: #effaf4;
}

.crm-client-page-data-item-highlight dt {
    color: #40815d;
}

.crm-client-page-data-item-highlight dd {
    color: #07863c;

    font-weight: 700;
}


/* ==========================================================
   11. PAIEMENTS
   ========================================================== */

.crm-client-page-payment-status {
    display: flex;
    justify-content: flex-end;

    margin-bottom: 10px;
}

.crm-client-page-check-list {
    display: grid;

    grid-template-columns: 1fr;

    gap: 8px;

    margin: 0;
    padding: 0;

    list-style: none;
}

.crm-client-page-check-item,
.crm-client-page-maintenance-payment {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;

    padding: 9px 10px;

    border: 1px solid #e1e6ed;
    border-radius: 7px;

    background: #f8fafc;
}

.crm-client-page-maintenance-payment {
    margin-top: 8px;
}

.crm-client-page-check-label,
.crm-client-page-check-value {
    font-size: 12px;
}

.crm-client-page-check-label {
    color: #526078;
}

.crm-client-page-check-value {
    color: #344057;

    font-weight: 600;
}


/* ---------- Badge paiement ---------- */

.crm-payment {
    display: inline-flex;
    align-items: center;
    gap: 5px;

    min-height: 22px;

    padding: 4px 9px;

    border-radius: 999px;

    font-size: 11px;
    font-weight: 600;
}

.crm-payment-pending {
    border: 1px solid #f3cf82;

    background: #fff7e6;

    color: #a56408;
}


/* ==========================================================
   12. CONTACTS / ADRESSES / DOCUMENTS
   ========================================================== */

.crm-client-page-related-item {
    overflow: hidden;

    margin-bottom: 8px;

    border: 1px solid #e1e6ed;
    border-radius: 8px;

    background: #fff;
}

.crm-client-page-related-item:last-child {
    margin-bottom: 0;
}

.crm-client-page-related-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;

    padding: 10px 11px;

    border-bottom: 1px solid #edf0f4;

    background: #fafbfd;
}

.crm-client-page-related-heading {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 7px;

    min-width: 0;
}

.crm-client-page-related-title {
    margin: 0 !important;

    color: #253047;

    font-size: 12px !important;
    font-weight: 600 !important;
}

.crm-client-page-related-badge {
    display: inline-flex;

    padding: 3px 7px;

    border: 1px solid #cdd9ee;
    border-radius: 999px;

    background: #eef3fb;

    color: #5873a7;

    font-size: 10px;
    font-weight: 700;

    text-transform: uppercase;
}

.crm-client-page-related-actions a {
    color: #4f6f9f !important;

    font-size: 12px;
    font-weight: 600;

    text-decoration: none !important;
}

.crm-client-page-related-actions a:hover {
    color: var(--crm-primary-dark) !important;
}

.crm-client-page-related-content {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 10px 16px;

    padding: 10px 11px;
}

.crm-client-page-related-line {
    min-width: 0;
}

.crm-client-page-related-label {
    display: block;

    margin-bottom: 3px;

    color: #929daf;

    font-size: 11px;
    font-weight: 600;

    text-transform: uppercase;
}

.crm-client-page-related-value {
    color: #3b465a;

    font-size: 12px;
}

.crm-client-page-related-value a {
    color: #5078c7 !important;

    text-decoration: none !important;
}


/* ==========================================================
   13. MESSAGES VIDES
   ========================================================== */

.crm-empty-message,
.crm-client-page-card-body
> .crm-client-page-empty {
    margin: 0 !important;
    padding: 14px;

    border: 1px dashed #d8dee8;
    border-radius: 7px;

    background: #fafbfd;

    color: #929caf !important;

    font-size: 12px;
    font-style: italic;

    text-align: center;
}


/* ==========================================================
   14. NOTES INTERNES
   ========================================================== */

.crm-client-page-card-notes
.crm-client-page-card-body {
    color: #596579;

    font-size: 12px;
    line-height: 1.55;
}


/* ==========================================================
   15. FORMULAIRES DÉPLIABLES
   Contacts / Adresses / Documents
   ========================================================== */

.crm-client-page-collapsible-form {
    padding: 14px;

    border-bottom: 1px solid var(--crm-border-soft);

    background: #f8fafc;
}

.crm-client-page-collapsible-form[hidden] {
    display: none !important;
}


/* ---------- Sections ---------- */

.crm-client-page-collapsible-form
.frm_section_heading {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 12px 14px;

    margin: 0 0 14px !important;
    padding: 0 !important;

    border: 0 !important;
}

.crm-client-page-collapsible-form
.frm_section_heading > h3 {
    grid-column: 1 / -1;

    margin: 0 !important;
    padding: 0 0 7px !important;

    border-bottom: 1px solid #dde4ed;

    color: #69768b;

    font-size: 11px !important;
    font-weight: 700 !important;

    letter-spacing: .05em;
    text-transform: uppercase;
}


/* ---------- Labels ---------- */

.crm-client-page-collapsible-form
.frm_primary_label {
    display: block;

    margin: 0 0 4px !important;

    color: #69768b;

    font-size: 12px !important;
    font-weight: 500;
}


/* ---------- Inputs ---------- */

.crm-client-page-collapsible-form
input[type="text"],
.crm-client-page-collapsible-form
input[type="email"],
.crm-client-page-collapsible-form
input[type="tel"],
.crm-client-page-collapsible-form
input[type="number"],
.crm-client-page-collapsible-form
select,
.crm-client-page-collapsible-form
textarea {
    box-sizing: border-box;

    width: 100%;
    min-width: 0;

    border: 1px solid #d4dce7;
    border-radius: 6px;

    background: #fff;

    box-shadow: none;

    color: #263247;

    font-size: 12px;
}

.crm-client-page-collapsible-form
input[type="text"],
.crm-client-page-collapsible-form
input[type="email"],
.crm-client-page-collapsible-form
input[type="tel"],
.crm-client-page-collapsible-form
input[type="number"],
.crm-client-page-collapsible-form
select {
    min-height: 37px;

    padding: 7px 9px;
}

.crm-client-page-collapsible-form
textarea {
    min-height: 85px;

    padding: 8px 9px;
}


/* ---------- Submit ---------- */

.crm-client-page-collapsible-form
.frm_submit {
    display: flex;
    justify-content: flex-end;

    margin-top: 12px;
}

.crm-client-page-collapsible-form
.frm_button_submit {
    min-height: 35px;

    padding: 7px 12px;

    border: 1px solid var(--crm-primary);
    border-radius: 6px;

    background: var(--crm-primary);

    color: #fff;

    font-size: 12px;
    font-weight: 600;
}


/* ==========================================================
   16. ÉDITION IN-PLACE
   ========================================================== */

.crm-client-page-inline-content
.frm_forms {
    padding: 13px;

    background: #f8fafc;
}

.crm-client-page-inline-content
.frm_form_fields {
    margin: 0;
}

.crm-client-page-inline-content
.frm_fields_container {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 11px 14px;
}


/*
 * Les sections Formidable ne doivent pas introduire
 * un niveau supplémentaire dans la grille.
 */

.crm-client-page-inline-content
.frm_section_heading {
    display: contents;
}

.crm-client-page-inline-content
.frm_primary_label {
    margin-bottom: 4px !important;

    color: #738096;

    font-size: 12px !important;
    font-weight: 500;
}


/* ---------- Champs ---------- */

.crm-client-page-inline-content
input[type="text"],
.crm-client-page-inline-content
input[type="number"],
.crm-client-page-inline-content
input[type="email"],
.crm-client-page-inline-content
input[type="tel"],
.crm-client-page-inline-content
select,
.crm-client-page-inline-content
textarea {
    box-sizing: border-box;

    width: 100%;
    min-width: 0;

    border: 1px solid #d4dce7;
    border-radius: 6px;

    background: #fff;

    box-shadow: none;

    color: #273249;

    font-size: 12px;
}

.crm-client-page-inline-content
input[type="text"],
.crm-client-page-inline-content
input[type="number"],
.crm-client-page-inline-content
input[type="email"],
.crm-client-page-inline-content
input[type="tel"],
.crm-client-page-inline-content
select {
    min-height: 36px;

    padding: 7px 9px;
}

.crm-client-page-inline-content
textarea {
    min-height: 85px;

    padding: 8px 9px;
}


/* ---------- Submit ---------- */

.crm-client-page-inline-content
.frm_submit {
    grid-column: 1 / -1;

    display: flex;
    justify-content: flex-end;

    gap: 8px;

    margin-top: 5px;
}


/* ==========================================================
   17. DROPZONE DOCUMENT
   ========================================================== */

.crm-client-page
.frm_dropzone {
    min-height: 80px !important;

    border: 1px dashed #cad4e1 !important;
    border-radius: 7px !important;

    background: #fafbfd !important;
}

.crm-client-page
.frm_dropzone:hover {
    border-color: #9db7dc !important;

    background: #f7faff !important;
}

.crm-client-page
.frm_dropzone .dz-message {
    margin: 0 !important;
    padding: 17px !important;
}


/* ==========================================================
   18. RESPONSIVE
   ========================================================== */


/*
 * Tablette / petit laptop :
 * une carte par ligne.
 */

@media (max-width: 1050px) {

    .crm-client-page-main-column {
        grid-template-columns: 1fr;
    }

    .crm-client-page-main-column
    > .crm-client-page-card {
        grid-column: 1 !important;
    }

    .crm-client-page-summary {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .crm-client-page-summary-item {
        border-bottom:
            1px solid var(--crm-border-soft);
    }
}


/*
 * Mobile.
 */

@media (max-width: 650px) {

    .crm-client-page-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .crm-client-page-header-actions {
        width: 100%;
    }

    .crm-client-page-header-actions
    .crm-client-page-button {
        width: 100%;
    }

    .crm-client-page-summary,
    .crm-client-page-data-grid,
    .crm-client-page-data-grid-finances,
    .crm-client-page-related-content,
    .crm-client-page-inline-content
    .frm_fields_container,
    .crm-client-page-collapsible-form
    .frm_section_heading {
        grid-template-columns: 1fr;
    }

    .crm-client-page-summary-item {
        border-right: 0;
    }

    .crm-client-page-card-header {
        align-items: flex-start;
    }
}



/* ==========================================================
   CRM ALLIANCE — PAGE MODIFICATION DEVIS
   Version consolidée
   ========================================================== */


/* ==========================================================
   1. VARIABLES / BASE
   ========================================================== */

.crm-devis-page {
    --devis-bg: #f6f8fb;
    --devis-card: #ffffff;

    --devis-border: #dfe5ed;
    --devis-border-soft: #e8edf3;

    --devis-text: #172033;
    --devis-text-secondary: #526078;
    --devis-text-muted: #8793a7;

    --devis-primary: #3b82f6;
    --devis-primary-dark: #2563eb;

    --devis-green: #159447;
    --devis-green-bg: #effaf4;
    --devis-green-border: #b9e5c9;

    --devis-orange: #9a6508;
    --devis-orange-bg: #fff8e8;
    --devis-orange-border: #efd59a;

    --devis-red: #b54747;
    --devis-red-bg: #fff7f7;
    --devis-red-border: #efd2d2;

    --devis-radius: 10px;
    --devis-radius-small: 7px;

    width: 100%;
    min-width: 0;

    color: var(--devis-text);

    font-family:
        Inter,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif;

    font-size: 12px;
    line-height: 1.45;
}


/* ==========================================================
   2. NETTOYAGE WORDPRESS / FORMIDABLE
   ========================================================== */

/*
 * Les Views génèrent énormément de <p> et <br>.
 * On neutralise surtout les enfants directs servant
 * uniquement de wrappers.
 */

.crm-devis-page > p,
.crm-devis-page section > p,
.crm-devis-page header > p,
.crm-devis-page nav > p,
.crm-devis-card-header > p,
.crm-devis-card-actions > p,
.crm-devis-line-cell > p,
.crm-devis-material-content > p,
.crm-devis-finance-item > p,
.crm-devis-kpi > p,
.crm-devis-lines-summary > p {
    margin: 0 !important;
    padding: 0 !important;
}


/* Paragraphes parasites entre les gros blocs */
.crm-devis-page > p {
    display: none !important;
}


/* BR parasites */
.crm-devis-page
.crm-devis-card-header br,

.crm-devis-page
.crm-devis-line-content br,

.crm-devis-page
.crm-devis-material-content br,

.crm-devis-page
.crm-devis-lines-summary br,

.crm-devis-page
.crm-devis-finance-block br,

.crm-devis-page
.crm-devis-kpis br {
    display: none !important;
}


/* ==========================================================
   3. FIL D'ARIANE
   ========================================================== */

.crm-devis-page-breadcrumb {
    display: flex;
    align-items: center;
    gap: 7px;

    margin: 0 0 12px;
}

.crm-devis-page-breadcrumb p {
    margin: 0 !important;
}

.crm-devis-page-back {
    color: #5d6c84 !important;

    font-size: 12px;
    font-weight: 500;

    text-decoration: none !important;
}

.crm-devis-page-back:hover {
    color: var(--devis-primary) !important;
}

.crm-devis-page-breadcrumb-separator {
    color: #b0b8c5;
}

.crm-devis-page-breadcrumb-current {
    color: #7a879a;

    font-size: 12px;
}


/* ==========================================================
   4. EN-TÊTE DEVIS
   ========================================================== */

.crm-devis-page-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;

    margin-bottom: 16px;
    padding: 17px 18px;

    border: 1px solid var(--devis-border);
    border-radius: var(--devis-radius);

    background: #fff;

    box-shadow:
        0 1px 2px rgba(15, 23, 42, .03);
}

.crm-devis-page-header-main {
    min-width: 0;
}

.crm-devis-page-heading {
    min-width: 0;
}

.crm-devis-page-heading-top {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;

    margin-bottom: 3px;
}

.crm-devis-page-heading-top p,
.crm-devis-page-subtitle p {
    margin: 0 !important;
}

.crm-devis-page-code {
    color: #8996aa;

    font-size: 11px;
    font-weight: 700;

    letter-spacing: .07em;
    text-transform: uppercase;
}

.crm-devis-page-status {
    display: inline-flex;
    align-items: center;
    gap: 6px;

    min-height: 21px;

    padding: 3px 8px;

    border: 1px solid var(--devis-orange-border);
    border-radius: 999px;

    background: var(--devis-orange-bg);

    color: var(--devis-orange);

    font-size: 10px;
    font-weight: 700;

    text-transform: uppercase;
}

.crm-devis-page-status::before {
    content: "";

    width: 6px;
    height: 6px;

    border-radius: 50%;

    background: currentColor;
}

.crm-devis-page-title {
    margin: 0 !important;

    color: var(--devis-text);

    font-size: 20px !important;
    font-weight: 700 !important;
    line-height: 1.2;
}

.crm-devis-page-subtitle {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px 18px;

    margin-top: 5px;

    color: #758197;

    font-size: 12px;
}


/* ==========================================================
   5. CARTES — BASE COMMUNE
   ========================================================== */

.crm-devis-card {
    overflow: hidden;

    margin-bottom: 16px;

    border: 1px solid var(--devis-border);
    border-radius: var(--devis-radius);

    background: #fff;

    box-shadow:
        0 1px 2px rgba(15, 23, 42, .025);
}


/* ---------- Header carte ---------- */

.crm-devis-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;

    min-height: 55px;

    padding: 11px 14px;

    border-bottom: 1px solid var(--devis-border-soft);

    background: #fff;
}

.crm-devis-card-heading {
    min-width: 0;
}

.crm-devis-card-title {
    margin: 0 !important;

    color: #2b374d;

    font-size: 12px !important;
    font-weight: 700 !important;
    line-height: 1.25;

    letter-spacing: .035em;
    text-transform: uppercase;
}

.crm-devis-card-title img.emoji {
    width: 14px;
    height: 14px;

    margin-right: 4px;

    vertical-align: -2px;
}

.crm-devis-card-description {
    margin: 3px 0 0 !important;

    color: #919cad;

    font-size: 11px;
    line-height: 1.35;
}

.crm-devis-card-actions {
    display: flex;
    align-items: center;
    gap: 6px;

    flex: 0 0 auto;
}


/* ---------- Body ---------- */

.crm-devis-card-body {
    padding: 14px;

    font-size: 12px;
}


/* ==========================================================
   6. BOUTONS
   ========================================================== */

.crm-devis-edit-link,
.crm-devis-toggle-form {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-height: 30px;

    padding: 6px 10px;

    border: 1px solid #d8e0e9;
    border-radius: 6px;

    background: #fff;

    color: #526078 !important;

    font-size: 11px;
    font-weight: 600;
    line-height: 1;

    text-decoration: none !important;

    cursor: pointer;

    transition:
        border-color .15s ease,
        background-color .15s ease,
        color .15s ease;
}

.crm-devis-edit-link:hover,
.crm-devis-toggle-form:hover {
    border-color: #b8c8df;

    background: #f5f8fc;

    color: var(--devis-primary-dark) !important;
}


/* Boutons Ajouter */
.crm-devis-toggle-form {
    border-color: #c7d8f5;

    color: #356bc6 !important;
}


/* ==========================================================
   7. INFORMATIONS GÉNÉRALES
   ========================================================== */

.crm-devis-data-grid {
    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap: 15px 20px;

    margin: 0;
}

.crm-devis-data-grid--4 {
    grid-template-columns:
        repeat(4, minmax(0, 1fr));
}

.crm-devis-data-grid--3 {
    grid-template-columns:
        repeat(3, minmax(0, 1fr));
}

.crm-devis-data-grid--2 {
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
}

.crm-devis-data-item {
    min-width: 0;
}

.crm-devis-data-item dt {
    margin: 0 0 4px;

    color: #8a96a9;

    font-size: 11px;
    font-weight: 500;
}

.crm-devis-data-item dd {
    margin: 0;

    color: #253047;

    font-size: 12px;
    font-weight: 500;
    line-height: 1.4;
}

.crm-devis-data-item dd p {
    margin: 0 !important;
}

.crm-devis-data-item--highlight {
    padding: 9px 10px;

    border: 1px solid #c5e5d1;
    border-radius: 7px;

    background: #f2fbf5;
}

.crm-devis-data-item--highlight dd {
    color: var(--devis-green);

    font-weight: 700;
}


/* ==========================================================
   8. SITUATION ACTUELLE / PROPOSÉE
   ========================================================== */

.crm-devis-situations-grid {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    align-items: start;

    gap: 16px;
}

.crm-devis-situations-grid > p {
    display: none !important;
}


/* Cartes SA/SP sans marge basse interne de grille */
.crm-devis-situations-grid
.crm-devis-card {
    margin-bottom: 16px;
}


/* ---------- SA ---------- */

.crm-devis-card-header--danger {
    border-bottom-color: #efd8d8;

    background: #fffafa;
}

.crm-devis-card-header--danger
.crm-devis-card-title {
    color: #9e4c4c;
}


/* ---------- SP ---------- */

.crm-devis-card-header--success {
    border-bottom-color: #d1e8da;

    background: #f9fdfb;
}

.crm-devis-card-header--success
.crm-devis-card-title {
    color: #27734a;
}


/* ==========================================================
   9. LIGNES SA / SP
   ========================================================== */

.crm-devis-lines {
    width: 100%;
}


/* ---------- Header ligne ---------- */

.crm-devis-line-header {
    display: grid;
    align-items: center;
    gap: 10px;

    margin: 0;
    padding: 8px 10px;

    border-bottom: 1px solid #e2e6ec;

    color: #6b7a99;
    background: #fafbfd;

    font-size: 9px;
    font-weight: 700;

    letter-spacing: .055em;
    text-transform: uppercase;
}

.crm-devis-line-header--sa {
    grid-template-columns:
        1fr
        1.1fr
        1.5fr
        1.15fr
        .9fr
        72px;
}

.crm-devis-line-header--sp {
    grid-template-columns:
        1.15fr
        1.7fr
        1fr
        .75fr
        1fr
        72px;
}


/* ---------- Ligne ---------- */

.crm-devis-line {
    position: relative;

    border-bottom: 1px solid #e8ecf1;

    background: #fff;

    transition: background-color .14s ease;
}

.crm-devis-line:last-child {
    border-bottom: 0;
}

.crm-devis-line:hover {
    background: #fafcff;
}


/* ---------- Contenu ---------- */

.crm-devis-line-content {
    display: grid;
    align-items: center;
    gap: 10px;

    padding: 11px 92px 11px 10px;
}

.crm-devis-line-content--sa {
    grid-template-columns:
        1fr
        1.1fr
        1.5fr
        1.15fr
        .9fr;
}

.crm-devis-line-content--sp {
    grid-template-columns:
        1.15fr
        1.7fr
        1fr
        .75fr
        1fr;
}

.crm-devis-line-cell {
    min-width: 0;

    color: #344054;

    font-size: 12px;
}

.crm-devis-line-cell p {
    margin: 0 !important;
}

.crm-devis-line-cell--money {
    white-space: nowrap;
}

.crm-devis-price-final {
    color: var(--devis-green);
}

.crm-devis-discount {
    display: inline-flex;

    padding: 3px 7px;

    border: 1px solid #d8e0ea;
    border-radius: 999px;

    background: #f5f7fa;

    color: #596579;

    font-size: 10px;
    font-weight: 600;
}


/* Labels mobile cachés sur desktop */
.crm-devis-line-mobile-label {
    display: none;
}


/* ==========================================================
   10. ACTIONS DES LIGNES
   ========================================================== */

.crm-devis-line-actions {
    position: absolute;
    top: 50%;
    right: 10px;

    display: flex;
    align-items: center;
    gap: 5px;

    transform: translateY(-50%);
}

.crm-devis-line-actions p,
.crm-devis-material-actions p {
    margin: 0 !important;
}

.crm-devis-line-edit,
.crm-devis-line-delete {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-height: 27px;

    padding: 5px 7px;

    border-radius: 5px;

    font-size: 10px;
    font-weight: 600;

    text-decoration: none !important;
}

.crm-devis-line-edit {
    border: 1px solid #d8e0e9;

    background: #fff;

    color: #526078 !important;
}

.crm-devis-line-edit:hover {
    color: var(--devis-primary-dark) !important;

    background: #f5f8fc;
}

.crm-devis-line-delete {
    color: #a54c4c !important;

    background: transparent;
}

.crm-devis-line-delete:hover {
    background: #fff1f1;

    color: #c13f3f !important;
}


/* ==========================================================
   11. TOTALS SA / SP
   ========================================================== */

.crm-devis-lines-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;

    padding: 10px 12px;

    border-top: 1px solid #e2e6ec;

    background: #fafbfd;

    color: #596579;

    font-size: 11px;
}

.crm-devis-lines-summary p {
    margin: 0 !important;
}

.crm-devis-lines-summary-value {
    color: #253047;

    font-size: 13px;
    font-weight: 700;

    white-space: nowrap;
}


/* SP possède deux lignes de résumé */
.crm-devis-lines-summary--sp {
    display: block;

    padding: 0;
}

.crm-devis-lines-summary-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;

    padding: 9px 12px;

    border-top: 1px solid #e8ecf1;
}

.crm-devis-lines-summary-row p {
    margin: 0 !important;
}

.crm-devis-lines-summary-row--highlight {
    background: #f3fbf6;
}

.crm-devis-lines-summary-row--highlight
.crm-devis-lines-summary-value {
    color: var(--devis-green);
}


/* ==========================================================
   12. MATÉRIELS
   ========================================================== */

.crm-devis-materials-header {
    display: grid;

    grid-template-columns:
        90px
        minmax(0, 1fr)
        120px;

    gap: 12px;

    padding: 8px 10px;

    border-bottom: 1px solid #e2e6ec;

    background: #fafbfd;

    color: #6b7a99;

    font-size: 9px;
    font-weight: 700;

    letter-spacing: .055em;
    text-transform: uppercase;
}

.crm-devis-material-row {
    position: relative;

    border-bottom: 1px solid #e8ecf1;
}

.crm-devis-material-row:last-child {
    border-bottom: 0;
}

.crm-devis-material-content {
    display: grid;

    grid-template-columns:
        90px
        minmax(0, 1fr);

    align-items: center;

    gap: 12px;

    padding: 11px 130px 11px 10px;
}

.crm-devis-material-content p {
    margin: 0 !important;
}

.crm-devis-material-quantity,
.crm-devis-material-name {
    font-size: 12px;
}

.crm-devis-material-actions {
    position: absolute;
    top: 50%;
    right: 10px;

    display: flex;
    align-items: center;
    gap: 5px;

    transform: translateY(-50%);
}


/* ==========================================================
   13. RACHAT
   ========================================================== */

.crm-devis-card-buyout
.crm-devis-card-header {
    background: #fffdf8;

    border-bottom-color: #eadfbe;
}

.crm-devis-card-buyout
.crm-devis-card-title {
    color: #8c6417;
}


/* ==========================================================
   14. SYNTHÈSE FINANCIÈRE
   ========================================================== */

.crm-devis-card-finance {
    border-color: #ead8a9;
}

.crm-devis-card-finance
.crm-devis-card-header {
    border-bottom-color: #eadfbe;

    background: #fffcf5;
}

.crm-devis-card-finance
.crm-devis-card-title {
    color: #99620a;
}


/* ==========================================================
   15. LISSAGE
   ========================================================== */

.crm-devis-finance-block--lissage {
    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap: 10px;

    margin-bottom: 14px;
}

.crm-devis-finance-item {
    padding: 10px;

    border: 1px solid #e3e7ed;
    border-radius: 7px;

    background: #fafbfd;
}

.crm-devis-finance-item p {
    margin: 0 !important;
}

.crm-devis-finance-label {
    display: block;

    margin-bottom: 5px;

    color: #8793a7;

    font-size: 10px;
    font-weight: 500;
}

.crm-devis-finance-value {
    color: #253047;

    font-size: 13px;
    font-weight: 700;
}

.crm-devis-finance-item--accent {
    border-color: #d7c6f5;

    background: #faf7ff;
}

.crm-devis-finance-item--accent
.crm-devis-finance-value {
    color: #8b52dd;
}


/* ==========================================================
   16. FINANCEMENT
   ========================================================== */

.crm-devis-financing {
    margin-top: 14px;
    padding-top: 13px;

    border-top: 1px solid #e8ecf1;
}

.crm-devis-financing-title {
    margin: 0 0 10px !important;

    color: #526078;

    font-size: 11px !important;
    font-weight: 700 !important;

    letter-spacing: .04em;
    text-transform: uppercase;
}


/* ==========================================================
   17. COÛT TOTAL
   ========================================================== */

.crm-devis-finance-total {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 15px;

    margin-top: 14px;
    padding: 11px 12px;

    border: 1px solid #e5d6ae;
    border-radius: 7px;

    background: #fffbf2;
}

.crm-devis-finance-total p {
    margin: 0 !important;
}

.crm-devis-finance-total span {
    color: #76613c;

    font-size: 11px;
    font-weight: 600;
}

.crm-devis-finance-total strong {
    color: #875f10;

    font-size: 14px;
    font-weight: 700;
}


/* ==========================================================
   18. KPI
   ========================================================== */

.crm-devis-kpis {
    display: grid;

    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    gap: 10px;

    margin-top: 14px;
}

.crm-devis-kpi {
    padding: 11px;

    border: 1px solid #dde4ed;
    border-radius: 7px;

    background: #f7f9fc;
}

.crm-devis-kpi p {
    margin: 0 !important;
}

.crm-devis-kpi-label {
    display: block;

    margin-bottom: 5px;

    color: #77849a;

    font-size: 10px;
    font-weight: 600;

    text-transform: uppercase;
}

.crm-devis-kpi-value {
    color: var(--devis-green);

    font-size: 14px;
    font-weight: 700;
}

.crm-devis-kpi--margin {
    border-color: #c6e5d1;

    background: #effaf4;
}

.crm-devis-kpi--margin
.crm-devis-kpi-label {
    color: #397853;
}


/* ==========================================================
   19. PROPAL / ADRESSES / COMMENTAIRES
   ========================================================== */

.crm-devis-propal-section + .crm-devis-propal-section {
    margin-top: 15px;
    padding-top: 14px;

    border-top: 1px solid #e8ecf1;
}

.crm-devis-propal-subtitle {
    margin: 0 0 8px !important;

    color: #66728a;

    font-size: 10px !important;
    font-weight: 700 !important;

    letter-spacing: .05em;
    text-transform: uppercase;
}

.crm-devis-sites,
.crm-devis-comments {
    padding: 10px 11px;

    border: 1px solid #dfe5ed;
    border-radius: 7px;

    background: #fafbfd;

    color: #445067;

    font-size: 12px;
}

.crm-devis-propal-footer {
    margin-top: 15px;
    padding-top: 14px;

    border-top: 1px solid #e8ecf1;
}

.crm-devis-propal-template {
    display: flex;
    align-items: center;
    gap: 12px;

    flex-wrap: wrap;
}

.crm-devis-propal-label {
    color: #8793a7;

    font-size: 10px;
    font-weight: 600;

    text-transform: uppercase;
}


/* ==========================================================
   20. BOUTON FINAL PROPAL
   ========================================================== */

.crm-devis-page-actions {
    display: flex;
    justify-content: flex-end;

    margin-top: 18px;
    padding-top: 16px;

    border-top: 1px solid #e1e6ee;
}

.crm-devis-page-actions p {
    margin: 0 !important;
}

.crm-devis-page-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;

    min-height: 40px;

    padding: 9px 16px;

    border-radius: 7px;

    font-size: 12px;
    font-weight: 600;

    cursor: pointer;
}

.crm-devis-page-button-primary {
    border: 1px solid #3478f6;

    background: #3b82f6;

    color: #fff;
}

.crm-devis-page-button-primary:hover {
    border-color: #2563eb;

    background: #2563eb;
}


/* ==========================================================
   21. FORMULAIRES DÉPLIABLES
   SA / SP / MATÉRIEL
   ========================================================== */

.crm-devis-collapsible-form {
    padding: 14px;

    border-bottom: 1px solid #e6ebf1;

    background: #f8fafc;
}

.crm-devis-collapsible-form[hidden] {
    display: none !important;
}


/* Formidable */
.crm-devis-collapsible-form
fieldset {
    margin: 0;
    padding: 0;

    border: 0;
}

.crm-devis-collapsible-form
.frm_fields_container {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 12px 14px;
}

.crm-devis-collapsible-form
.frm_form_field {
    min-width: 0;

    margin: 0 !important;
}


/* Champs techniques "Devis associé" */
.crm-devis-collapsible-form
#frm_field_265_container,

.crm-devis-collapsible-form
#frm_field_275_container,

.crm-devis-collapsible-form
#frm_field_288_container {
    display: none !important;
}


/* Filtre technique opérateur SA */
.crm-devis-collapsible-form
#frm_field_266_container {
    display: none !important;
}


/* Labels */
.crm-devis-collapsible-form
.frm_primary_label {
    display: block;

    margin: 0 0 4px !important;

    color: #69768b;

    font-size: 11px !important;
    font-weight: 500;
}


/* Champs */
.crm-devis-collapsible-form
input[type="text"],

.crm-devis-collapsible-form
input[type="number"],

.crm-devis-collapsible-form
input[type="email"],

.crm-devis-collapsible-form
input[type="tel"],

.crm-devis-collapsible-form
select,

.crm-devis-collapsible-form
textarea {
    box-sizing: border-box;

    width: 100%;
    min-width: 0;

    margin: 0 !important;

    border: 1px solid #d4dce7;
    border-radius: 6px;

    background: #fff;

    box-shadow: none;

    color: #263247;

    font-size: 12px;
}

.crm-devis-collapsible-form
input[type="text"],

.crm-devis-collapsible-form
input[type="number"],

.crm-devis-collapsible-form
input[type="email"],

.crm-devis-collapsible-form
input[type="tel"],

.crm-devis-collapsible-form
select {
    min-height: 37px;

    padding: 7px 9px;
}

.crm-devis-collapsible-form
textarea {
    min-height: 80px;

    padding: 8px 9px;
}


/* Submit */
.crm-devis-collapsible-form
.frm_submit {
    display: flex;
    justify-content: flex-end;

    grid-column: 1 / -1;

    margin-top: 4px;
    padding-top: 12px;

    border-top: 1px solid #e1e6ee;
}

.crm-devis-collapsible-form
.frm_button_submit {
    min-height: 35px;

    padding: 7px 12px;

    border: 1px solid var(--devis-primary);
    border-radius: 6px;

    background: var(--devis-primary);

    color: #fff;

    font-size: 12px;
    font-weight: 600;
}


/* ==========================================================
   22. ÉDITION IN-PLACE DES CARTES
   ========================================================== */

.crm-devis-inline-content
.frm_forms {
    padding: 14px;

    border-bottom: 1px solid #e5eaf1;

    background: #f8fafc;
}

.crm-devis-inline-content
.frm_form_fields {
    margin: 0;
}

.crm-devis-inline-content
.frm_fields_container {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 12px 14px;
}


/* Sections Formidable */
.crm-devis-inline-content
.frm_section_heading {
    display: contents;
}


/* Labels */
.crm-devis-inline-content
.frm_primary_label {
    display: block;

    margin: 0 0 4px !important;

    color: #738096;

    font-size: 11px !important;
    font-weight: 500;
}


/* Inputs */
.crm-devis-inline-content
input[type="text"],

.crm-devis-inline-content
input[type="number"],

.crm-devis-inline-content
input[type="email"],

.crm-devis-inline-content
input[type="tel"],

.crm-devis-inline-content
select,

.crm-devis-inline-content
textarea {
    box-sizing: border-box;

    width: 100%;
    min-width: 0;

    border: 1px solid #d4dce7;
    border-radius: 6px;

    background: #fff;

    box-shadow: none;

    color: #273249;

    font-size: 12px;
}

.crm-devis-inline-content
input[type="text"],

.crm-devis-inline-content
input[type="number"],

.crm-devis-inline-content
input[type="email"],

.crm-devis-inline-content
input[type="tel"],

.crm-devis-inline-content
select {
    min-height: 36px;

    padding: 7px 9px;
}

.crm-devis-inline-content
textarea {
    min-height: 85px;

    padding: 8px 9px;
}


/* Submit */
.crm-devis-inline-content
.frm_submit {
    grid-column: 1 / -1;

    display: flex;
    justify-content: flex-end;

    gap: 7px;

    margin-top: 5px;
}


/* ==========================================================
   23. TOTAL FORMATÉ FORMIDABLE
   ========================================================== */

.crm-devis-page
.frm_total_formatted {
    display: flex;
    align-items: center;

    min-height: 37px;

    margin: 0 !important;
    padding: 7px 9px;

    border: 1px solid #d4dce7;
    border-radius: 6px;

    background: #f0f4f8;

    color: #253047;

    font-size: 12px;
    font-weight: 700;
}


/* ==========================================================
   24. RESPONSIVE TABLETTE
   ========================================================== */

@media (max-width: 1050px) {

    .crm-devis-situations-grid {
        grid-template-columns: 1fr;
    }

    .crm-devis-kpis {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .crm-devis-data-grid--4 {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }
}


/* ==========================================================
   25. RESPONSIVE MOBILE
   ========================================================== */

@media (max-width: 700px) {

    .crm-devis-page-header {
        align-items: flex-start;

        flex-direction: column;
    }


    .crm-devis-page-subtitle {
        align-items: flex-start;
        flex-direction: column;

        gap: 3px;
    }


    .crm-devis-data-grid,
    .crm-devis-data-grid--4,
    .crm-devis-data-grid--3,
    .crm-devis-data-grid--2,

    .crm-devis-finance-block--lissage,
    .crm-devis-kpis,

    .crm-devis-collapsible-form
    .frm_fields_container,

    .crm-devis-inline-content
    .frm_fields_container {
        grid-template-columns: 1fr;
    }


    /* ---------- Headers desktop masqués ---------- */

    .crm-devis-line-header,
    .crm-devis-materials-header {
        display: none;
    }


    /* ---------- Lignes transformées en cartes ---------- */

    .crm-devis-line,
    .crm-devis-material-row {
        margin-bottom: 10px;

        border: 1px solid #e1e6ed;
        border-radius: 7px;

        background: #fff;
    }


    .crm-devis-line-content,
    .crm-devis-line-content--sa,
    .crm-devis-line-content--sp,
    .crm-devis-material-content {
        display: grid;

        grid-template-columns: 1fr;

        gap: 8px;

        padding: 11px;
    }


    .crm-devis-line-cell,
    .crm-devis-material-quantity,
    .crm-devis-material-name {
        display: flex;
        align-items: baseline;
        justify-content: space-between;

        gap: 12px;
    }


    .crm-devis-line-mobile-label {
        display: inline;

        color: #8793a7;

        font-size: 10px;
        font-weight: 600;

        text-transform: uppercase;
    }


    .crm-devis-line-actions,
    .crm-devis-material-actions {
        position: static;

        justify-content: flex-end;

        padding: 8px 10px;

        border-top: 1px solid #edf0f4;

        transform: none;
    }


    .crm-devis-card-header {
        align-items: flex-start;
    }


    .crm-devis-page-actions
    .crm-devis-page-button {
        width: 100%;
    }
}


/* ==========================================================
   CRM DEVIS — CORRECTIONS ALIGNEMENT
   Headers / lignes SA-SP / matériels
   ========================================================== */


/* ==========================================================
   1. SUPPRESSION DES <br> PARASITES DANS LES GRILLES
   ========================================================== */

/*
 * TRÈS IMPORTANT :
 * les <br> générés par WordPress/Formidable étaient
 * considérés comme des enfants du CSS Grid.
 */

.crm-devis-line-header > br,
.crm-devis-materials-header > br {
    display: none !important;
}


/* Même nettoyage dans les cellules */
.crm-devis-line-cell br,
.crm-devis-material-quantity br,
.crm-devis-material-name br {
    display: none !important;
}


/* ==========================================================
   2. HEADERS DES CARTES
   ========================================================== */

.crm-devis-card-header {
    display: flex;
    align-items: center !important;
    justify-content: space-between;

    gap: 16px;
}


/* Bloc titre + description */
.crm-devis-card-heading {
    display: flex;
    flex-direction: column;
    justify-content: center;

    min-width: 0;
}


/* Suppression des éventuels espaces parasites */
.crm-devis-card-heading > p,
.crm-devis-card-actions > p {
    margin: 0 !important;
    padding: 0 !important;
}


.crm-devis-card-title {
    margin: 0 !important;
    padding: 0 !important;
}


.crm-devis-card-description {
    margin: 3px 0 0 !important;
    padding: 0 !important;

    line-height: 1.35;
}


/* Bouton centré verticalement */
.crm-devis-card-actions {
    display: flex;
    align-items: center;

    align-self: center;

    flex: 0 0 auto;
}


/* ==========================================================
   3. SA — HEADER ET DONNÉES
   EXACTEMENT LES MÊMES COLONNES
   ========================================================== */

.crm-devis-line-header--sa,
.crm-devis-line-content--sa {
    grid-template-columns:
        1fr
        1.1fr
        1.5fr
        1.15fr
        .9fr !important;
}


/*
 * Le header possède une colonne Actions supplémentaire.
 * On lui ajoute donc explicitement la sixième colonne.
 */

.crm-devis-line-header--sa {
    grid-template-columns:
        1fr
        1.1fr
        1.5fr
        1.15fr
        .9fr
        92px !important;
}


/* ==========================================================
   4. SP — HEADER ET DONNÉES
   ========================================================== */

.crm-devis-line-header--sp {
    grid-template-columns:
        1.15fr
        1.7fr
        1fr
        .75fr
        1fr
        92px !important;
}


.crm-devis-line-content--sp {
    grid-template-columns:
        1.15fr
        1.7fr
        1fr
        .75fr
        1fr !important;
}


/* ==========================================================
   5. PADDING IDENTIQUE HEADER / LIGNES
   ========================================================== */

.crm-devis-line-header {
    align-items: center;

    gap: 10px;

    padding: 9px 102px 9px 10px;
}


/*
 * Le padding-right du header réserve exactement
 * la même zone que les actions absolues des lignes.
 */

.crm-devis-line-header--sa,
.crm-devis-line-header--sp {
    padding-right: 10px;
}


.crm-devis-line-content {
    align-items: center;

    gap: 10px;

    min-height: 56px;

    padding-top: 10px;
    padding-bottom: 10px;
}


/* ==========================================================
   6. CENTRAGE VERTICAL DES CELLULES
   ========================================================== */

.crm-devis-line-cell {
    display: flex;
    align-items: center;

    min-height: 36px;

    padding: 0;
}


.crm-devis-line-cell > p {
    margin: 0 !important;
    padding: 0 !important;

    line-height: 1.4;
}


.crm-devis-line-cell strong {
    margin: 0;
    padding: 0;

    line-height: 1.4;
}


/* ==========================================================
   7. ACTIONS SA / SP
   ========================================================== */

/*
 * On revient au fonctionnement initial en position absolue.
 * Il est parfaitement adapté ici puisque le contenu
 * réserve déjà la place à droite.
 */

.crm-devis-line-actions {
    position: absolute !important;

    top: 50% !important;
    right: 10px !important;

    display: flex;
    align-items: center;

    gap: 5px;

    transform: translateY(-50%) !important;
}


.crm-devis-line-actions > p {
    margin: 0 !important;
    padding: 0 !important;
}


/* ==========================================================
   8. MATÉRIELS
   ========================================================== */

/*
 * Ici aussi, le <br> parasite était la principale
 * raison du décalage des titres.
 */

.crm-devis-materials-header {
    display: grid;

    grid-template-columns:
        90px
        minmax(0, 1fr)
        120px !important;

    align-items: center;

    gap: 12px;

    padding: 9px 10px;
}


.crm-devis-material-content {
    display: grid !important;

    grid-template-columns:
        90px
        minmax(0, 1fr) !important;

    align-items: center;

    gap: 12px;

    min-height: 58px;

    padding: 10px 130px 10px 10px !important;
}


/* Quantité et matériel centrés verticalement */
.crm-devis-material-quantity,
.crm-devis-material-name {
    display: flex;
    align-items: center;

    min-height: 38px;

    padding: 0;
}


.crm-devis-material-quantity p,
.crm-devis-material-name p {
    margin: 0 !important;
    padding: 0 !important;

    line-height: 1.4;
}


/* Actions */
.crm-devis-material-actions {
    position: absolute !important;

    top: 50% !important;
    right: 10px !important;

    display: flex;
    align-items: center;

    gap: 5px;

    transform: translateY(-50%) !important;
}


.crm-devis-material-actions > p {
    margin: 0 !important;
    padding: 0 !important;
}


/* ==========================================================
   9. TOTALS
   ========================================================== */

.crm-devis-lines-summary,
.crm-devis-lines-summary-row {
    align-items: center;
}


.crm-devis-lines-summary > p,
.crm-devis-lines-summary-row > p {
    display: flex;
    align-items: center;

    margin: 0 !important;
    padding: 0 !important;
}


.crm-devis-lines-summary-label,
.crm-devis-lines-summary-value {
    line-height: 1.35;
}


/* ==========================================================
   CORRECTIF FINAL SA / SP
   Paragraphes vides injectés par Formidable dans les grids
   ========================================================== */

.crm-devis-line-content > p {
    display: none !important;
}


/* ==========================================================
   NETTOYAGE DES ÉLÉMENTS PARASITES FORMIDABLE
   DANS LES ZONES EN CSS GRID
   ========================================================== */

/* SA / SP */
.crm-devis-line-content > p {
    display: none !important;
}


/* Matériels */
.crm-devis-material-content > p {
    display: none !important;
}


/* Headers SA / SP */
.crm-devis-line-header > br {
    display: none !important;
}


/* Header Matériels */
.crm-devis-materials-header > br {
    display: none !important;
}


/* ==========================================================
   CRM ALLIANCE — ONGLET CATALOGUE
   Harmonisé avec le reste du CRM
   ========================================================== */


/* ==========================================================
   BASE
   ========================================================== */

.crm-catalog-category {
    width: 100%;

    margin: 0 0 14px;

    overflow: hidden;

    border: 1px solid #dfe5ed;
    border-radius: 10px;

    background: #ffffff;

    font-family:
        Inter,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif;

    color: #1a2233;

    box-shadow:
        0 1px 2px rgba(15, 23, 42, .025);
}


/* ==========================================================
   NETTOYAGE WORDPRESS / FORMIDABLE
   ========================================================== */

.crm-catalog-category br {
    display: none !important;
}

.crm-catalog-category p {
    margin: 0 !important;
    padding: 0 !important;
}

.crm-catalog-product > p {
    display: none !important;
}


/* ==========================================================
   HEADER DE CATÉGORIE
   ========================================================== */

.crm-catalog-category__header {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 16px;

    min-height: 48px;

    padding: 10px 14px;

    border-bottom: 1px solid #e2e6ec;

    background: #fff;
}


.crm-catalog-category__heading {
    display: flex;
    align-items: center;
    gap: 8px;

    min-width: 0;
}


.crm-catalog-category__title {
    margin: 0 !important;
    padding: 0 !important;

    color: #1f2937;

    font-size: 13px !important;
    font-weight: 700 !important;
    line-height: 1.3;
}


/* Compteur futur */
.crm-catalog-category__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-width: 20px;
    min-height: 18px;

    padding: 2px 6px;

    border-radius: 999px;

    background: #eef2f7;

    color: #7a8798;

    font-size: 10px;
    font-weight: 600;
}


/* Si le compteur est vide */
.crm-catalog-category__count:empty {
    display: none;
}


/* ==========================================================
   BOUTON + AJOUTER
   ========================================================== */

.crm-catalog-category__add {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-height: 29px;

    padding: 6px 10px;

    border: 1px solid #d7e0eb;
    border-radius: 6px;

    background: #fff;

    color: #526078 !important;

    font-size: 11px;
    font-weight: 600;
    line-height: 1;

    text-decoration: none !important;

    white-space: nowrap;

    transition:
        border-color .15s ease,
        background-color .15s ease,
        color .15s ease;
}


.crm-catalog-category__add:hover {
    border-color: #b9c8dc;

    background: #f5f8fc;

    color: #2563eb !important;
}


/* ==========================================================
   BODY
   ========================================================== */

.crm-catalog-category__body {
    width: 100%;

    background: #fff;
}


/* ==========================================================
   PRODUIT
   ========================================================== */

.crm-catalog-product {
    display: grid;

    grid-template-columns:
        minmax(0, 1fr)
        155px
        170px;

    align-items: center;

    gap: 16px;

    min-height: 60px;

    padding: 11px 14px;

    border-bottom: 1px solid #e8ecf1;

    background: #fff;

    transition:
        background-color .14s ease,
        box-shadow .14s ease;
}


.crm-catalog-product:last-child {
    border-bottom: 0;
}


.crm-catalog-product:hover {
    background: #f7f9fb;

    box-shadow:
        inset 2px 0 0 #3d7fff;
}


/* ==========================================================
   IDENTITÉ PRODUIT
   ========================================================== */

.crm-catalog-product__identity {
    min-width: 0;
}


.crm-catalog-product__identity p {
    margin: 0 !important;
}


.crm-catalog-product__name {
    display: block;

    color: #1a2233;

    font-size: 12px;
    font-weight: 600;
    line-height: 1.4;
}


/* ==========================================================
   PRIX
   ========================================================== */

.crm-catalog-product__price {
    display: flex;
    align-items: baseline;
    justify-content: flex-end;

    gap: 4px;

    min-width: 0;

    color: #344054;

    white-space: nowrap;
}


.crm-catalog-product__price p {
    margin: 0 !important;
}


.crm-catalog-product__price strong {
    color: #1a2233;

    font-size: 12px;
    font-weight: 600;
}


.crm-catalog-product__price span {
    display: none;
}


/* HT / mois, HT / an, etc. */
.crm-catalog-product__price p:last-child {
    color: #8995a8;

    font-size: 10px;
    font-weight: 500;
}


/* ==========================================================
   ACTIONS
   ========================================================== */

.crm-catalog-product__actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;

    gap: 6px;

    min-width: 0;
}


.crm-catalog-product__actions p {
    margin: 0 !important;
}


/* Modifier */
.crm-catalog-product__actions
.crm-button-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-height: 28px;

    padding: 5px 8px;

    border: 1px solid #d9e0e9;
    border-radius: 6px;

    background: #fff;

    color: #344057 !important;

    font-size: 10px;
    font-weight: 600;
    line-height: 1;

    text-decoration: none !important;

    transition:
        border-color .15s ease,
        background-color .15s ease,
        color .15s ease;
}


.crm-catalog-product__actions
.crm-button-secondary:hover {
    border-color: #b8c5d8;

    background: #f5f8fc;

    color: #2563eb !important;
}


/* Désactiver */
.crm-catalog-product__actions
.frm_update_field_link {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-height: 28px;

    padding: 5px 8px;

    border-radius: 6px;

    background: transparent;

    color: #a54c4c !important;

    font-size: 10px;
    font-weight: 600;
    line-height: 1;

    text-decoration: none !important;

    transition:
        background-color .15s ease,
        color .15s ease;
}


.crm-catalog-product__actions
.frm_update_field_link:hover {
    background: #fff1f1;

    color: #c13f3f !important;
}


/* ==========================================================
   CATÉGORIE VIDE
   ========================================================== */

.crm-catalog-category
.frm_no_entries {
    padding: 11px 14px;

    color: #9aa5b5;

    background: #fafbfd;

    font-size: 11px;
    font-style: italic;
}


/* ==========================================================
   OPTION : PETITE ICÔNE DEVANT LE TITRE
   ========================================================== */

/*
 * Si tu souhaites te rapprocher encore plus de la démo,
 * on peut ajouter automatiquement une petite icône neutre.
 */

.crm-catalog-category__title::before {
    content: "▦";

    display: inline-block;

    margin-right: 6px;

    color: #607089;

    font-size: 12px;

    vertical-align: 1px;
}


/* ==========================================================
   RESPONSIVE
   ========================================================== */

@media (max-width: 800px) {

    .crm-catalog-product {
        grid-template-columns:
            minmax(0, 1fr)
            120px
            145px;
    }
}


@media (max-width: 650px) {

    .crm-catalog-category__header {
        align-items: flex-start;
    }


    .crm-catalog-product {
        grid-template-columns: 1fr;

        gap: 8px;

        padding: 12px;
    }


    .crm-catalog-product__price {
        justify-content: flex-start;
    }


    .crm-catalog-product__actions {
        justify-content: flex-start;

        padding-top: 8px;

        border-top: 1px solid #edf0f4;
    }
}


/* ==========================================================
   FICHE CLIENT — ÉCHANGES
   ========================================================== */


/*
 * Liste des échanges
 */
.crm-client-echanges-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}


/*
 * Une fiche échange.
 * Les propriétés communes de related-item restent héritées
 * du système déjà utilisé pour Contacts / Adresses.
 */
.crm-client-page-echange-item {
    overflow: hidden;
}


/*
 * ----------------------------------------------------------
 * EN-TÊTE
 * ----------------------------------------------------------
 */

.crm-client-page-echange-item
.crm-client-page-related-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}


/*
 * Partie gauche :
 * titre + date / heure.
 */
.crm-client-page-echange-item
.crm-client-page-related-heading {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px 14px;
    min-width: 0;
}


/*
 * Intitulé de l'échange.
 */
.crm-client-page-echange-item
.crm-client-page-related-title {
    margin: 0;
}


/*
 * Date + heure.
 */
.crm-client-page-echange-datetime {
    display: inline-flex;
    align-items: center;
    gap: 4px;

    font-size: 12px;
    font-weight: 400;
    white-space: nowrap;
}


/*
 * Date légèrement mise en avant.
 */
.crm-client-page-echange-date {
    font-weight: 600;
}


/*
 * Heure.
 */
.crm-client-page-echange-time {
    font-weight: 400;
}


/*
 * ----------------------------------------------------------
 * ACTION
 * ----------------------------------------------------------
 */

.crm-client-page-echange-item
.crm-client-page-related-actions {
    flex: 0 0 auto;
    margin-left: auto;
}


/*
 * Le lien Modifier reprend le comportement visuel
 * des autres éléments liés de la fiche client.
 */
.crm-client-page-echange-item
.crm-client-page-related-edit {
    white-space: nowrap;
}


/*
 * ----------------------------------------------------------
 * RÉSUMÉ
 * ----------------------------------------------------------
 */

.crm-client-page-echange-item
.crm-client-page-related-content {
    padding-top: 12px;
    padding-bottom: 12px;
}


/*
 * Pas besoin d'un gros bloc "notes" pour un résumé
 * d'échange : on garde quelque chose de léger.
 */
.crm-client-page-echange-item
.crm-client-page-related-notes {
    margin: 0;
}


/*
 * Supprime les marges parasites générées par wpautop.
 */
.crm-client-page-echange-item
.crm-client-page-related-notes > p:first-child {
    margin-top: 0;
}

.crm-client-page-echange-item
.crm-client-page-related-notes > p:last-child {
    margin-bottom: 0;
}


/*
 * ----------------------------------------------------------
 * ÉCHANGE PRÉVU AUJOURD'HUI
 * ----------------------------------------------------------
 */

.crm-client-page-echange-item--today {
    background: #f2faf4;
    border-color: #b9dfc2;
}

.crm-client-page-echange-item--today
.crm-client-page-related-header {
    background: #edf8f0;
}


/*
 * Petit indicateur visuel sur la date du jour.
 */
.crm-client-page-echange-item--today
.crm-client-page-echange-date {
    color: #287a3e;
    font-weight: 700;
}


/*
 * ----------------------------------------------------------
 * RESPONSIVE
 * ----------------------------------------------------------
 */

@media (max-width: 767px) {

    .crm-client-page-echange-item
    .crm-client-page-related-header {
        align-items: flex-start;
    }

    .crm-client-page-echange-item
    .crm-client-page-related-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 5px;
    }

    .crm-client-page-echange-datetime {
        white-space: normal;
    }
}