/* ============================================================================
   Console administrative — thème graphique (v7.0.4)
   Charte LaShop : encre, papier, terracotta, sauge. Chargé en dernier :
   il redessine l'app sans toucher aux gabarits.
   ============================================================================ */
:root {
    --t-bg: #F4F1EC;            /* fond de page : papier chaud */
    --t-surface: #FFFFFF;
    --t-surface-2: #FAF8F4;     /* en-têtes de cartes, zones calmes */
    --t-line: #E7E2D9;
    --t-line-2: #EFEBE4;
    --t-ink: #1C1A17;
    --t-ink-2: #5E574C;         /* texte secondaire */
    --t-ink-3: #8C8478;
    --t-terra: #C47056;
    --t-terra-fonce: #A85A42;
    --t-terra-pale: #F6E6DF;
    --t-sage: #9DC2AF;
    --t-sage-fonce: #3F7A60;
    --t-sage-pale: #E5F0EA;
    --t-side: #1F1D1A;          /* menu latéral */
    --t-side-2: #2A2724;
    --t-side-txt: #D9D3C8;
    --t-rad: 10px;
    --t-rad-sm: 7px;
    --t-ombre: 0 1px 2px rgba(28,26,23,.04), 0 4px 16px rgba(28,26,23,.05);
    --t-ombre-2: 0 2px 4px rgba(28,26,23,.06), 0 10px 28px rgba(28,26,23,.09);

    /* Variables historiques remappées */
    --color-bg: var(--t-bg);
    --color-light-gray: var(--t-line);
    --color-very-light: var(--t-surface-2);
    --color-gray: var(--t-ink-2);
    --color-dark: var(--t-ink);
    --color-accent: var(--t-terra);
    --radius: var(--t-rad-sm);
    --side-w: 248px;
}

body {
    background: var(--t-bg);
    font-family: "Inter", "SF Pro Text", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
    font-size: 14px;
    color: var(--t-ink);
    -webkit-font-smoothing: antialiased;
    font-feature-settings: "tnum" 0, "cv11" 1;
}

/* ------------------------------------------------------------ menu latéral */
.app-sidebar {
    background: var(--t-side);
    border-right: none;
    box-shadow: 1px 0 0 rgba(0,0,0,.25);
}
.side-logo { padding: 26px 22px 20px; border-bottom: 1px solid rgba(255,255,255,.07); gap: 14px; }
.side-logo img { height: 50px; }
.side-titre { color: #F4F1EC; font-size: 15px; font-weight: 600; letter-spacing: .01em; }
.side-titre::after {
    content: ""; display: block; width: 28px; height: 2px; margin-top: 10px;
    background: var(--t-terra); border-radius: 2px;
}
.side-nav { padding: 14px 12px 18px; }
.side-groupe-titre { color: #8E877C; padding: 12px 12px 6px; }
.side-groupe-titre:hover { background: transparent; color: #F4F1EC; }
.side-nav a {
    color: var(--t-side-txt); border-left: none; border-radius: var(--t-rad-sm);
    padding: 8px 12px 8px 14px; font-size: 13.5px; position: relative;
    transition: background .15s ease, color .15s ease;
}
.side-nav a:hover { background: var(--t-side-2); color: #FFFFFF; }
.side-nav a.active { background: rgba(196,112,86,.16); color: #FFFFFF; font-weight: 600; }
.side-nav a.active::before {
    content: ""; position: absolute; left: 0; top: 8px; bottom: 8px; width: 3px;
    border-radius: 3px; background: var(--t-terra);
}
.side-pied { color: #7D766B; border-top: 1px solid rgba(255,255,255,.07); }

/* ------------------------------------------------------------ page */
.app-main { padding: 32px 32px 48px; }
.app-main a:not(.btn) { color: var(--t-terra-fonce); text-decoration: none; }
.app-main a:not(.btn):hover { text-decoration: underline; text-underline-offset: 2px; }
.data-table .btn, .data-table .btn-sm { padding: 4px 8px; font-size: 12px; }
.page-title, .fact-head .page-title {
    font-size: 26px; font-weight: 700; letter-spacing: -.015em; line-height: 1.2;
    border-bottom: none; padding-bottom: 0; display: block; margin-bottom: 6px;
}
.page-title::after {
    content: ""; display: block; width: 36px; height: 3px; margin-top: 10px;
    background: var(--t-terra); border-radius: 3px;
}
.page-subtitle, .fact-head p.text-muted { color: var(--t-ink-2); font-size: 13.5px; }
.text-muted { color: var(--t-ink-2) !important; }
.fact-head { margin-bottom: 22px; }

/* ------------------------------------------------------------ cartes */
.card, details.card {
    background: var(--t-surface);
    border: 1px solid var(--t-line);
    border-radius: var(--t-rad);
    box-shadow: var(--t-ombre);
    margin-bottom: 20px;
}
.card-header {
    background: var(--t-surface);
    border-left: none;
    border-bottom: 1px solid var(--t-line-2);
    padding: 14px 20px;
}
.card-header h3, .card-header > span:first-child {
    font-size: 14.5px; font-weight: 650; letter-spacing: -.005em; color: var(--t-ink);
}
.card-body { padding: 20px 22px; }

/* ------------------------------------------------------------ boutons */
.btn {
    border-radius: var(--t-rad-sm);
    border-color: var(--t-line);
    background: var(--t-surface);
    padding: 8px 15px;
    font-weight: 500;
    box-shadow: 0 1px 1px rgba(28,26,23,.04);
}
.btn:hover { background: var(--t-surface-2); border-color: #D6CFC3; }
.btn-primary { background: var(--t-terra); border-color: var(--t-terra); color: #fff; box-shadow: 0 1px 2px rgba(168,90,66,.25); }
.btn-primary:hover { background: var(--t-terra-fonce); border-color: var(--t-terra-fonce); color: #fff; }
.btn-success { background: var(--t-sage-fonce); border-color: var(--t-sage-fonce); color: #fff; }
.btn-success:hover { background: #336650; border-color: #336650; color: #fff; }
.btn-danger { color: #A8412B; }
.btn-danger:hover { background: #FBEDE9; border-color: #E8BFB3; }
.btn-sm { padding: 5px 11px; border-radius: 6px; }

/* ------------------------------------------------------------ champs */
.form-control, input[type="text"], input[type="number"], input[type="date"],
input[type="email"], input[type="month"], textarea, select {
    border-radius: var(--t-rad-sm);
    border-color: #DDD6CB;
    background-color: #FFFFFF;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.form-control:focus, input:focus, textarea:focus, select:focus {
    border-color: var(--t-terra);
    box-shadow: 0 0 0 3px rgba(196,112,86,.16);
}
input:disabled, select:disabled, textarea:disabled, input[readonly] { background: var(--t-surface-2); color: var(--t-ink-2); }
.form-group label { color: var(--t-ink-3); font-size: 11.5px; letter-spacing: .05em; }
.champ-groupe { border-radius: var(--t-rad); border-left-width: 1px; border-color: var(--t-line); background: var(--t-surface-2); }

/* ------------------------------------------------------------ tableaux */
.data-table th, .dash-table th, .fact-table th {
    background: transparent;
    color: var(--t-ink-3);
    font-size: 11px; font-weight: 650; text-transform: uppercase; letter-spacing: .06em;
    border-bottom: 1px solid var(--t-line);
}
.data-table td, .dash-table td, .fact-table td { border-bottom: 1px solid var(--t-line-2); }
.data-table tbody tr:hover td, .fact-table tbody tr:hover td { background: #FBF9F6; }
.fact-table tfoot td, .dash-table tfoot td { border-top: 1px solid var(--t-ink); background: var(--t-surface-2); }
.fact-table a, .dash-table a { color: var(--t-ink); text-decoration: none; border-bottom: 1px solid rgba(196,112,86,.35); }
.fact-table a:hover, .dash-table a:hover { color: var(--t-terra-fonce); border-bottom-color: var(--t-terra); }
.fact-table a.btn, .dash-table a.btn { border-bottom: 1px solid var(--t-line); }

/* ------------------------------------------------------------ indicateurs */
.kpi-grid { gap: 16px; margin-bottom: 22px; }
.kpi-card {
    background: var(--t-surface); border: 1px solid var(--t-line); border-radius: var(--t-rad);
    box-shadow: var(--t-ombre); padding: 18px 20px 16px; position: relative; overflow: hidden;
}
.kpi-card::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--t-line); }
.kpi-grid .kpi-card:first-child::before, .kpi-accepte::before { background: var(--t-terra); }
.kpi-accepte::before { background: var(--t-sage-fonce); }
.kpi-attente::before { background: #D9A441; }
.kpi-refuse::before { background: #B0472F; }
.kpi-accepte, .kpi-attente, .kpi-refuse { border-left: 1px solid var(--t-line); }
.kpi-label { font-size: 11.5px; text-transform: uppercase; letter-spacing: .06em; color: var(--t-ink-3); font-weight: 600; }
.kpi-value { font-size: 25px; font-weight: 700; letter-spacing: -.02em; margin-top: 2px; }
.kpi-sub { color: var(--t-ink-2); }

.resume-box > div { background: var(--t-surface); border: 1px solid var(--t-line); border-radius: var(--t-rad); padding: 12px 14px; box-shadow: var(--t-ombre); }
.resume-box .lbl { text-transform: uppercase; letter-spacing: .05em; font-size: 10.5px; color: var(--t-ink-3); font-weight: 600; }
.resume-box .v { font-size: 19px; letter-spacing: -.01em; }

/* ------------------------------------------------------------ pastilles et bandeaux */
.pill { border-radius: 999px; padding: 3px 10px; font-weight: 600; font-size: 11.5px; }
.pill-ok { background: var(--t-sage-pale); color: var(--t-sage-fonce); border-color: #CBE0D4; }
.pill-warn { background: #FBF0DF; color: #8A5A17; border-color: #F0DDB9; }
.pill-bad { background: #F8E3DD; color: #933A25; border-color: #EDC6BA; }
.pill-info { background: #E6EEF4; color: #2D5876; border-color: #C9D9E6; }

.bandeau-etat { border-radius: var(--t-rad); padding: 14px 18px; }
.bandeau-etat.brouillon { background: #FFF8EE; border: 1px dashed #E6C297; }
.bandeau-etat.emise { background: var(--t-sage-pale); border: 1px solid #CBE0D4; }
.note-box { border-radius: var(--t-rad-sm); background: var(--t-terra-pale); border-left-color: var(--t-terra); }
.lock-bar { border-radius: var(--t-rad); }

.progress { height: 6px; background: var(--t-line-2); border-radius: 999px; }
.progress > div { background: var(--t-sage); border-radius: 999px; }
.progress.plein > div { background: var(--t-sage-fonce); }
.progress.depasse > div { background: var(--t-terra); }

/* Graphique de facturation */
.barres .barre { background: #D8D0C3; border-radius: 5px 5px 2px 2px; max-width: 40px; }
.barres .barre.courant { background: var(--t-terra); }
.barres .objectif { border-top: 1.5px dashed var(--t-terra); }
.barres .objectif span { color: var(--t-terra-fonce); background: var(--t-surface); font-weight: 600; }

/* Résumé latéral des propositions, barre d'actions */
.summary-card { border-radius: var(--t-rad); box-shadow: var(--t-ombre); border-color: var(--t-line); }
.actions-bar { border-radius: 0 0 var(--t-rad) var(--t-rad); background: rgba(255,255,255,.96); backdrop-filter: blur(6px); }
.filter-bar { border-radius: var(--t-rad); box-shadow: var(--t-ombre); }

/* Messages flottants */
.message { border-radius: var(--t-rad-sm); box-shadow: var(--t-ombre-2); }

/* Fenêtres modales */
.modal { border-radius: 14px; box-shadow: 0 20px 60px rgba(28,26,23,.25); }
.modal-backdrop { background: rgba(28,26,23,.45); backdrop-filter: blur(2px); }

/* Défilement discret du menu */
.app-sidebar::-webkit-scrollbar { width: 6px; }
.app-sidebar::-webkit-scrollbar-thumb { background: #3A3631; border-radius: 3px; }

@media (max-width: 900px) {
    .app-main { padding: 22px 16px; }
    .side-logo img { height: 36px; }
    .side-titre::after { display: none; }
}


/* ============================================================================
   v7.0.4 — palette plus colorée
   Terracotta (marque) + sarcelle, indigo, ambre, vert, prune.
   ============================================================================ */
:root {
    --c-terra: #D2643F;  --c-terra-pale: #FCE9E1;
    --c-teal:  #0F8B8D;  --c-teal-pale:  #DDF3F2;
    --c-indigo:#4F5BD5;  --c-indigo-pale:#E7E9FB;
    --c-ambre: #E0A020;  --c-ambre-pale: #FDF3DC;
    --c-vert:  #2E9D5B;  --c-vert-pale:  #DFF4E7;
    --c-prune: #9B4DCA;  --c-prune-pale: #F2E6FA;
    --t-bg: #F1F4F9;
    --t-surface-2: #F7F9FC;
    --t-line: #E1E6EF;
    --t-line-2: #EDF0F5;
    --t-ink: #16202E;
    --t-ink-2: #536074;
    --t-ink-3: #7E8AA0;
    --t-terra: var(--c-terra);
    --t-terra-fonce: #B24E2C;
    --t-side: #14233A;
    --t-side-2: rgba(255,255,255,.07);
    --t-side-txt: #C9D3E3;
}
body {
    background:
        radial-gradient(1200px 500px at 100% -10%, rgba(79,91,213,.08), transparent 60%),
        radial-gradient(900px 400px at 20% -20%, rgba(210,100,63,.08), transparent 60%),
        var(--t-bg);
    background-attachment: fixed;
}

/* Menu latéral : bleu nuit en dégradé, pastille de couleur par section */
.app-sidebar { background: linear-gradient(180deg, #172A45 0%, #14233A 55%, #1B2D3F 100%); }
.side-titre::after { width: 44px; height: 3px; background: linear-gradient(90deg, var(--c-terra), var(--c-ambre)); }
.side-groupe-titre { color: #93A1B8; }
.side-groupe-titre::before {
    content: ""; display: inline-block; width: 8px; height: 8px; border-radius: 50%;
    margin-right: 9px; vertical-align: 1px; background: var(--g-coul, var(--c-terra));
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--g-coul, var(--c-terra)) 22%, transparent);
}
.side-groupe[data-groupe="propositions"] { --g-coul: var(--c-terra); }
.side-groupe[data-groupe="facturation"]  { --g-coul: #22B8B0; }
.side-groupe[data-groupe="clients"]      { --g-coul: #8C95F0; }
.side-groupe[data-groupe="parametres"]   { --g-coul: var(--c-ambre); }
.side-nav a:hover { background: rgba(255,255,255,.07); }
.side-nav a.active {
    background: linear-gradient(90deg, color-mix(in srgb, var(--g-coul, var(--c-terra)) 30%, transparent), rgba(255,255,255,.03));
    color: #fff;
}
.side-nav a.active::before { background: var(--g-coul, var(--c-terra)); }
.side-pied { color: #6F7E96; border-top-color: rgba(255,255,255,.08); }
.app-sidebar::-webkit-scrollbar-thumb { background: #2C4260; }

/* Titres */
.page-title::after { width: 56px; height: 4px; background: linear-gradient(90deg, var(--c-terra), var(--c-ambre)); }

/* Cartes : liseré de couleur en tête, en alternance */
.card { border-color: var(--t-line); overflow: hidden; }
.card-header { background: linear-gradient(180deg, #FFFFFF, #FAFBFD); position: relative; }
.card-header h3::before {
    content: ""; display: inline-block; width: 10px; height: 10px; border-radius: 3px;
    margin-right: 9px; vertical-align: 0; background: var(--k-coul, var(--c-teal));
}
.card { border-top: 3px solid var(--k-coul, var(--c-teal)); }
.card:nth-of-type(5n+1) { --k-coul: var(--c-teal); }
.card:nth-of-type(5n+2) { --k-coul: var(--c-indigo); }
.card:nth-of-type(5n+3) { --k-coul: var(--c-terra); }
.card:nth-of-type(5n+4) { --k-coul: var(--c-prune); }
.card:nth-of-type(5n+5) { --k-coul: var(--c-vert); }

/* Indicateurs : chaque carte a sa couleur, fond teinté et chiffre coloré */
.kpi-card { border: 1px solid transparent; }
.kpi-card::before { height: 4px; background: var(--k-coul) !important; }
.kpi-grid .kpi-card:nth-child(5n+1) { --k-coul: var(--c-terra);  --k-pale: var(--c-terra-pale); }
.kpi-grid .kpi-card:nth-child(5n+2) { --k-coul: var(--c-teal);   --k-pale: var(--c-teal-pale); }
.kpi-grid .kpi-card:nth-child(5n+3) { --k-coul: var(--c-indigo); --k-pale: var(--c-indigo-pale); }
.kpi-grid .kpi-card:nth-child(5n+4) { --k-coul: var(--c-ambre);  --k-pale: var(--c-ambre-pale); }
.kpi-grid .kpi-card:nth-child(5n+5) { --k-coul: var(--c-prune);  --k-pale: var(--c-prune-pale); }
.kpi-grid .kpi-card.kpi-accepte { --k-coul: var(--c-vert);  --k-pale: var(--c-vert-pale); }
.kpi-grid .kpi-card.kpi-attente { --k-coul: var(--c-ambre); --k-pale: var(--c-ambre-pale); }
.kpi-grid .kpi-card.kpi-refuse { --k-coul: #D0453A;        --k-pale: #FBE4E1; }
.kpi-card {
    background: linear-gradient(160deg, var(--k-pale, #fff) 0%, #FFFFFF 70%);
    border-color: color-mix(in srgb, var(--k-coul, #ccc) 22%, #FFFFFF);
}
.kpi-card .kpi-label { color: color-mix(in srgb, var(--k-coul, #777) 75%, #16202E); }
.kpi-card .kpi-value { color: color-mix(in srgb, var(--k-coul, #16202E) 70%, #16202E); }
.kpi-card .kpi-value.alerte-retard { color: #C0392B; }
.kpi-card:hover { box-shadow: var(--t-ombre-2); transform: translateY(-1px); transition: all .15s ease; }

.resume-box > div { border-top: 3px solid var(--r-coul, var(--c-teal)); }
.resume-box > div:nth-child(4n+1) { --r-coul: var(--c-terra); }
.resume-box > div:nth-child(4n+2) { --r-coul: var(--c-teal); }
.resume-box > div:nth-child(4n+3) { --r-coul: var(--c-indigo); }
.resume-box > div:nth-child(4n+4) { --r-coul: var(--c-ambre); }

/* Tableaux : en-têtes teintés */
.data-table th, .dash-table th, .fact-table th {
    background: #EEF1F8; color: #46557A; border-bottom: 2px solid #D9DFEE;
}
.data-table tbody tr:hover td, .fact-table tbody tr:hover td { background: #F3F6FF; }
.fact-table tfoot td, .dash-table tfoot td { background: #EEF1F8; border-top: 2px solid var(--c-indigo); }
.fact-table a, .dash-table a { border-bottom-color: color-mix(in srgb, var(--c-indigo) 35%, transparent); }
.fact-table a:hover, .dash-table a:hover { color: var(--c-indigo); border-bottom-color: var(--c-indigo); }
.app-main a:not(.btn) { color: #3C48B8; }

/* Boutons */
.btn:hover { background: #F3F6FF; border-color: #C9D1EE; }
.btn-primary {
    background: linear-gradient(135deg, #E0744C, var(--c-terra) 55%, #BF5231);
    border-color: #C65A36; color: #fff; box-shadow: 0 2px 6px rgba(210,100,63,.35);
}
.btn-primary:hover { background: linear-gradient(135deg, #D2643F, #B24E2C); border-color: #B24E2C; }
.btn-success {
    background: linear-gradient(135deg, #16A3A0, var(--c-teal)); border-color: var(--c-teal);
    box-shadow: 0 2px 6px rgba(15,139,141,.3);
}
.btn-success:hover { background: #0C7577; border-color: #0C7577; }
.btn-danger { color: #C0392B; }

/* Champs */
.form-control:focus, input:focus, textarea:focus, select:focus {
    border-color: var(--c-indigo); box-shadow: 0 0 0 3px rgba(79,91,213,.18);
}
.form-group label { color: #5A6788; }

/* Pastilles : couleurs franches */
.pill { background: #E9EDF5; color: #445270; border: none; }
.pill-ok   { background: var(--c-vert-pale);  color: #1E7443; }
.pill-warn { background: var(--c-ambre-pale); color: #95650B; }
.pill-bad  { background: #FBE1DD;             color: #B0321F; }
.pill-info { background: var(--c-indigo-pale); color: #3440A8; }

/* Barres de progression */
.progress { background: #E6EAF2; }
.progress > div { background: linear-gradient(90deg, #22B8B0, var(--c-teal)); }
.progress.plein > div { background: linear-gradient(90deg, #3CC47A, var(--c-vert)); }
.progress.depasse > div { background: linear-gradient(90deg, #EE8A5E, var(--c-terra)); }

/* Graphique de facturation */
.barres .barre { background: linear-gradient(180deg, #7C86EA, var(--c-indigo)); }
.barres .barre.courant { background: linear-gradient(180deg, #F08C62, var(--c-terra)); }
.barres .objectif { border-top-color: var(--c-ambre); }
.barres .objectif span { color: #95650B; }

/* Bandeaux */
.bandeau-etat.brouillon { background: var(--c-ambre-pale); border-color: #EBC46A; }
.bandeau-etat.emise { background: var(--c-vert-pale); border-color: #9ED8B5; }
.note-box { background: var(--c-indigo-pale); border-left-color: var(--c-indigo); }
.filter-bar { border-top: 3px solid var(--c-indigo); }
.summary-card { border-top: 3px solid var(--c-terra); }
.side-groupe-titre { justify-content: flex-start; }
.side-groupe-titre .chevron { margin-left: auto; }
.side-groupe-titre:hover { color: #FFFFFF; }

/* ============================================================================
   v7.0.5 — tableau de bord général
   ============================================================================ */
.side-accueil {
    display: flex !important; align-items: center; gap: 10px;
    margin: 2px 0 10px; padding: 10px 12px 10px 14px !important;
    font-weight: 600; color: #fff !important;
    background: linear-gradient(90deg, rgba(210,100,63,.22), rgba(224,160,32,.10));
    border: 1px solid rgba(255,255,255,.06);
}
.side-accueil .ico { color: var(--c-ambre); font-size: 15px; }
.side-accueil.active { background: linear-gradient(90deg, rgba(210,100,63,.45), rgba(224,160,32,.18)) !important; }
.side-accueil.active::before { background: var(--c-ambre) !important; }

.dash-section {
    font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em;
    color: #5A6788; margin: 4px 0 10px; display: flex; align-items: center; gap: 10px;
}
.dash-section::after { content: ""; flex: 1; height: 1px; background: var(--t-line); }
.kpi-lien { display: block; text-decoration: none !important; color: inherit !important; cursor: pointer; }
.kpi-unite { font-size: 15px; font-weight: 600; opacity: .8; }
.kpi-card .progress { height: 6px; margin: 8px 0 4px; background: rgba(0,0,0,.07); }
.kpi-grid .kpi-card.kpi-alerte { --k-coul: #D0453A; --k-pale: #FBE4E1; }
.kpi-grid .kpi-card.kpi-taux { --k-coul: var(--c-indigo); --k-pale: var(--c-indigo-pale); }
.kpi-props .kpi-card.kpi-refuse { --k-coul: var(--c-prune); --k-pale: var(--c-prune-pale); }
.dash-grille { margin-bottom: 20px; align-items: start; }
.dash-grille .card { margin-bottom: 0; }
.dash-sous-titre { font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: #5A6788; margin: 18px 0 6px; }

/* Liste « À faire » */
.afaire { display: flex; flex-direction: column; gap: 8px; }
.afaire-item {
    display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 9px;
    text-decoration: none !important; color: var(--t-ink) !important;
    background: var(--a-pale); border: 1px solid color-mix(in srgb, var(--a-coul) 20%, #fff);
    transition: transform .12s ease, box-shadow .12s ease;
}
.afaire-item:hover { transform: translateX(2px); box-shadow: var(--t-ombre); }
.afaire-item .n {
    flex: 0 0 auto; min-width: 30px; height: 30px; padding: 0 6px; border-radius: 8px;
    display: flex; align-items: center; justify-content: center;
    background: var(--a-coul); color: #fff; font-weight: 700; font-size: 14px;
}
.afaire-item.rouge    { --a-coul: #D0453A;          --a-pale: #FBE4E1; }
.afaire-item.ambre    { --a-coul: var(--c-ambre);  --a-pale: var(--c-ambre-pale); }
.afaire-item.indigo   { --a-coul: var(--c-indigo); --a-pale: var(--c-indigo-pale); }
.afaire-item.vert     { --a-coul: var(--c-vert);   --a-pale: var(--c-vert-pale); }
.afaire-item.sarcelle { --a-coul: var(--c-teal);   --a-pale: var(--c-teal-pale); }
.afaire-item.terra    { --a-coul: var(--c-terra);  --a-pale: var(--c-terra-pale); }
.afaire-item.prune    { --a-coul: var(--c-prune);  --a-pale: var(--c-prune-pale); }
.afaire-vide { color: var(--t-ink-2); padding: 12px 4px; }
.afaire-item ~ .afaire-vide { display: none; }

/* Âge des comptes à recevoir */
.age-barre { display: flex; height: 12px; border-radius: 999px; overflow: hidden; margin: 2px 0 14px; background: #E6EAF2; gap: 2px; }
.age-point { display: inline-block; width: 9px; height: 9px; border-radius: 3px; margin-right: 8px; }
.age-1 { background: var(--c-vert); }
.age-2 { background: var(--c-teal); }
.age-3 { background: var(--c-ambre); }
.age-4 { background: #E07A3F; }
.age-5 { background: #D0453A; }
@media (max-width: 1100px) { .dash-grille.grid-2 { grid-template-columns: 1fr; } }
.dash-grille td:first-child { white-space: nowrap; }

/* ============================================================================
   v7.0.6 — fonds de cartes en blanc pur (aucune teinte beige ou crème)
   ============================================================================ */
.card, details.card, .card-header, .card-body, .summary-card, .filter-bar,
.kpi-card, .kpi-grid .kpi-card, .resume-box > div, .champ-groupe, .modal,
.bandeau-etat, .note-box { background: #FFFFFF !important; }
.kpi-card { border-color: var(--t-line) !important; }
.champ-groupe { border-color: var(--t-line) !important; }
.bandeau-etat.brouillon { border: 1px dashed #EBC46A; border-left: 4px solid var(--c-ambre); }
.bandeau-etat.emise { border: 1px solid #BFE3CC; border-left: 4px solid var(--c-vert); }
.bandeau-etat.annulee { border: 1px solid #F0C4BC; border-left: 4px solid #D0453A; }
.note-box { border: 1px solid var(--t-line); border-left: 4px solid var(--c-indigo); }
.ligne-suggestion td, .plan-table .row-À\.valider td { background: #FFFFFF; }
.plan-table .row-À\.valider td:first-child { box-shadow: inset 3px 0 0 var(--c-indigo); }
.plan-table .row-Facturé td:first-child { box-shadow: inset 3px 0 0 var(--c-vert); }
.fact-table tfoot td, .dash-table tfoot td { background: #FFFFFF; }
.afaire-item { background: #FFFFFF; border-left: 4px solid var(--a-coul); }
/* Bouton « Tableau de bord » du menu : bleu nuit, sans teinte brune */
.side-accueil { background: rgba(255,255,255,.06); }
.side-accueil.active { background: rgba(255,255,255,.12) !important; }
.lock-bar { background: #FFFFFF !important; border: 1px solid var(--t-line) !important; border-left: 4px solid var(--c-ambre) !important; }

/* ============================================================================
   v7.0.8 — suivi de l'envoi des propositions
   ============================================================================ */
.envoi-bloc { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--t-line); }
.envoi-titre { font-size: 14px; margin-bottom: 10px; color: var(--t-ink-2); text-transform: uppercase; letter-spacing: .05em; }
.envoi-etat { padding: 10px 12px; border-radius: 8px; background: #FFFFFF; border: 1px solid var(--t-line);
    border-left: 4px solid var(--c-ambre); font-size: 13.5px; line-height: 1.5; }
.envoi-etat.envoyee { border-left-color: var(--c-vert); }
.envoi-bloc .btn-bloc { width: 100%; justify-content: center; }
.envoi-bloc details summary { cursor: pointer; color: #3C48B8; }
.envoi-bloc .form-group label { font-size: 11px; }
.envoi-mention { font-size: 11.5px; color: #95650B; margin-top: 3px; }
.envoi-mention.envoyee { color: #1E7443; }
.statut-cell { flex-wrap: wrap; }
.statut-cell .envoi-mention { flex-basis: 100%; padding-left: 18px; }
.lien-retour { display: inline-block; margin: -8px 0 10px; font-size: 13px; font-weight: 500;
    color: #3C48B8 !important; text-decoration: none !important; }
.lien-retour:hover { text-decoration: underline !important; }

/* ============================================================================
   v7.1 — section Projets
   ============================================================================ */
.side-groupe[data-groupe="projets"] { --g-coul: #3CC47A; }
.onglets { display: flex; gap: 4px; border-bottom: 2px solid var(--t-line); margin-bottom: 18px; }
.onglet { background: none; border: none; padding: 10px 16px; font: inherit; font-weight: 600; font-size: 14px;
    color: var(--t-ink-2); cursor: pointer; border-bottom: 3px solid transparent; margin-bottom: -2px; }
.onglet:hover { color: var(--t-ink); }
.onglet.actif { color: var(--t-ink); border-bottom-color: var(--c-terra); }
.onglet .compte { display: inline-block; min-width: 20px; padding: 0 6px; border-radius: 10px; background: #E9EDF5;
    font-size: 11.5px; margin-left: 4px; }
.statut-projet.s-actif { background: var(--c-vert-pale); color: #1E7443; }
.statut-projet.s-en-proposition { background: var(--c-indigo-pale); color: #3440A8; }
.statut-projet.s-en-attente { background: var(--c-ambre-pale); color: #95650B; }
.statut-projet.s-terminé { background: #E9EDF5; color: #445270; }
.statut-projet.s-non-retenu, .statut-projet.s-annulé { background: #FBE1DD; color: #B0321F; }
.mandat-description { white-space: pre-line; margin-bottom: 14px; line-height: 1.55; }
.mandat-phase { border-top: 1px solid var(--t-line-2); padding-top: 12px; margin-top: 12px; }
.mandat-phase h4 { font-size: 14.5px; margin-bottom: 8px; color: var(--t-ink); }
.mandat-sous { font-size: 11px; text-transform: uppercase; letter-spacing: .06em; color: #5A6788; font-weight: 700; margin-bottom: 4px; }
.mandat-liste { margin: 0; padding-left: 18px; line-height: 1.6; font-size: 13.5px; }
.statut-projet.s-fermer-lorsque-paiement-reçu { background: var(--c-terra-pale); color: #A1441F; }
.fact-table a.lien-projet { display: block; font-size: 11px; border-bottom: none; color: #7E8AA0; white-space: nowrap; }
.fact-table a.lien-projet:hover { color: #3C48B8; }
fieldset.lecture-seule { border: none; padding: 0; margin: 0; min-width: 0; }
fieldset.lecture-seule .btn-success, fieldset.lecture-seule .btn-danger { display: none; }

/* ---------------------------------------------------------------------------
   v8.1.3 : liste déroulante avec recherche (static/js/selection_recherche.js)
   --------------------------------------------------------------------------- */
.rech-boite { position: relative; display: inline-block; }
.rech-boite input.rech-champ { width: 100%; min-width: 220px; padding-right: 30px !important;
    background: var(--t-surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%238A8478' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") no-repeat right 10px center; }
.rech-liste { position: absolute; z-index: 60; left: 0; right: 0; top: calc(100% + 4px); min-width: 100%; max-height: 300px; overflow-y: auto;
    margin: 0; padding: 4px; list-style: none; background: var(--t-surface); border: 1px solid var(--t-line); border-radius: var(--t-rad-sm);
    box-shadow: 0 8px 24px rgba(28, 26, 23, .14); }
.rech-liste li { padding: 7px 10px; border-radius: 5px; font-size: 13.5px; cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rech-liste li.actif { background: var(--t-surface-2); box-shadow: inset 3px 0 0 var(--t-terra); }
.rech-liste li.choisi { font-weight: 600; }
.rech-liste li mark { background: #FBE3D9; color: inherit; padding: 0; border-radius: 2px; }
.rech-liste li.rech-vide { color: var(--t-ink-3); cursor: default; font-size: 12.5px; }
