/* ════════════════════════════════════════════════════════════════
   OUTILS EC — DASHBOARD V7 (23/10/2026)
   Couche de design chargée après les styles V3/V6 : charte du site
   outils-ec.fr (encre, pêche, bleu, Inter + Nunito), clair uniquement.
   Ne change aucun comportement : seulement l'apparence et la mise en page.
   ════════════════════════════════════════════════════════════════ */

/* ── Jetons : mêmes noms que la V3, valeurs du site. body.dark reçoit les
      mêmes valeurs pour qu'un ancien réglage « sombre » ne repeigne rien. ── */
:root, body.dark{
  --ink:#0A0F1A; --strong:#1F2937; --text:#374151; --muted:#4B5563; --faint:#6B7280;
  --border:#E5E7EB; --hair:#F0F1F4; --border-strong:#D1D5DB;
  --bg:#F5F7FA; --surface:#FFFFFF; --surface-2:#FAFBFD; --surface-3:#F3F4F6;
  --accent:#0066FF; --accent-bg:#E6F0FF; --accent-bd:#C7DBFF;
  --volt:#0066FF; --volt-bg:#E6F0FF;
  --blue:#0066FF; --blue-dark:#0052CC; --blue-mid:#0066FF;
  --pos:#047857; --pos-bg:#D1FAE5; --neg:#C2272D; --neg-bg:#FFEBEC;
  --warn:#C2410C; --warn-bg:#FFF1E6;
  --peach:#FFD8B8; --peach-soft:#FFF4EA; --peach-line:#FBE2CC; --nuit:#0B1D45;
  --viz-grid:#EEF0F4; --viz-axis:#D1D5DB;
  --r-xs:8px; --r-sm:10px; --r-md:12px; --r-lg:16px; --r-xl:18px; --r-2xl:22px;
  --sh-xs:0 1px 2px rgba(10,15,26,.04);
  --sh-sm:0 1px 2px rgba(10,15,26,.04);
  --sh-md:0 12px 32px -16px rgba(10,15,26,.18);
  --sh-lg:0 24px 60px -24px rgba(10,15,26,.22);
  --num:'Nunito','Inter',system-ui,sans-serif;
  --ui:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
  color-scheme:light;
}
/* Anciens noms de couleur utilisés par les rendus de dashboard.js (souvent avec une valeur
   de secours en dur) : on les fait pointer sur la palette du site. */
:root, body.dark{
  --red:#C2272D; --red-50:#FFEBEC; --red-100:#FFD5D7;
  --green:#047857; --green-50:#D1FAE5; --green-100:#A7F3D0; --gn:#047857;
  --blue-50:#E6F0FF; --blue-100:#C7DBFF;
  --orange:#C2410C; --orange-50:#FFF1E6; --orange-100:#FBE2CC; --amber:#C2410C;
  --violet:#1F3670; --black:#0A0F1A; --gray-100:#F3F4F6; --paper:#FAFBFD;
}
body, body.dark{background:var(--bg);color:var(--text);font-family:var(--ui)}
::selection{background:var(--peach);color:var(--ink)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}
.main{scrollbar-color:var(--border-strong) transparent}
.tb-ibtn#themeToggle, #darkToggleLabel{display:none!important}

/* ── Titres : le libellé de synchro passe SOUS le titre (pas de surtitre) ── */
.page-intro > div:first-child{display:flex;flex-direction:column}
.page-intro .eyebrow{order:2;margin:8px 0 0}
.page-h1{font-family:var(--num);font-weight:900;font-size:2rem;letter-spacing:-.01em;line-height:1.1;color:var(--ink)}
.topbar-title{font-family:var(--num);font-weight:800;letter-spacing:0}
.card-title,.chart-h,.rp-h{font-family:var(--ui);font-weight:700;letter-spacing:0;color:var(--ink)}
.hero-eyebrow,.hmini .hm-l,.st-label{text-transform:none;letter-spacing:0;font-size:.8rem;font-weight:600;color:var(--muted)}
.hero-num,.st-value,.hmini .hm-v{font-family:var(--num);font-weight:900;letter-spacing:-.01em;color:var(--ink)}

/* ── Menu latéral : blanc, groupes en accordéon, entrée active en pêche ── */
.sidebar{background:var(--surface);border-right:1px solid var(--border)}
.nav-pin,.nav-item{border-radius:10px;color:var(--muted);font-weight:500}
.nav-pin:hover,.nav-item:hover{background:var(--bg);color:var(--ink)}
.nav-pin.active,.nav-item.active{background:var(--peach-soft);color:var(--ink);font-weight:700;box-shadow:inset 0 0 0 1px var(--peach-line)}
.nav-pin.active .nav-ic,.nav-item.active .nav-ic{color:var(--ink)}
.nav-pin.active::before,.nav-item.active::before{display:none!important}
.nav-group>summary{text-transform:none;letter-spacing:0;font-size:.86rem;font-weight:600;color:var(--ink);padding:9px 11px;border-radius:10px}
.nav-group>summary:hover{background:var(--bg);color:var(--ink)}
.nav-group-items{margin-left:14px;padding-left:8px;border-left:1px solid var(--border)}
.nav-group-count.has-badge{background:var(--warn-bg);color:var(--warn)}
body.sidebar-collapsed .nav-group-items{margin-left:0;padding-left:0;border-left:0}

/* ── Surfaces ── */
.card,.stat-strip,.hero{border-radius:var(--r-lg);border:1px solid var(--border);box-shadow:var(--sh-sm);background:var(--surface)}
.btn-primary,.btn.btn-primary{background:var(--ink);border-color:var(--ink);color:#fff}
.period-filter-bar{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:3px}
.period-chip{border-radius:8px;font-weight:600}
.period-chip.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.alert-pill{border-radius:999px}

/* ════════ ACCUEIL ════════ */
.v7-intro{align-items:center}
.v7-intro .v7-title{display:flex;flex-direction:column}
.v7-mtabs{display:none}
.v7-muted{font-size:.8rem;color:var(--muted)}
.v7-empty{padding:18px;text-align:center;color:var(--muted);font-size:.84rem}

.v7-kpis{display:grid;grid-template-columns:minmax(0,2.1fr) minmax(0,1fr) minmax(0,1fr);gap:14px;margin-bottom:14px}
.v7-kpi-hero .hero{margin:0;height:100%;animation:none}
.v7-kpi-hero .hero-left{padding:22px 24px}
.v7-kpi-hero .hero-num{font-size:3rem}
.v7-kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:20px 22px;display:flex;flex-direction:column;gap:8px;cursor:pointer;transition:border-color .15s}
.v7-kpi:hover{border-color:var(--border-strong)}
.v7-kpi-l{font-size:.8rem;font-weight:600;color:var(--muted);display:flex;gap:6px;align-items:center}
.v7-kpi-v{font-family:var(--num);font-weight:900;font-size:2.4rem;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums}
.v7-kpi-v small{font-size:1.2rem;color:var(--faint);font-weight:800}
.v7-kpi-s{font-size:.8rem;color:var(--muted)}
.v7-kpi-trial{background:var(--peach-soft);border-color:var(--peach-line)}
.v7-kpi-trial .v7-kpi-l,.v7-kpi-trial .v7-kpi-s{color:#7C2D12}
.v7-kpi-conv{margin-top:auto;padding-top:10px;border-top:1px solid var(--peach-line);display:flex;flex-direction:column;gap:4px}
.v7-kpi-conv .st-value{font-size:1.3rem}
.v7-kpi-conv .st-foot{font-size:.74rem}
.v7-parc-bar{display:flex;gap:2px;height:8px;border-radius:99px;overflow:hidden;background:var(--surface-3)}
.v7-parc-bar span{display:block;height:100%}
.v7-seg-ok{background:var(--accent)}.v7-seg-tol{background:#9CC0FF}.v7-seg-late{background:#EA580C}

.v7-strip{grid-template-columns:repeat(7,minmax(0,1fr))}
.v7-strip .stat-cell{padding:16px 18px}
.v7-strip .st-value{font-size:1.45rem}
.v7-strip .st-ic{display:none}

.v7-row{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:14px;margin-bottom:14px;align-items:stretch}
.v7-cell > .card{height:100%;margin:0}
.v7-row > .card[style*="display:none"]{display:none}

/* Fil « À venir » et liste du parc (rendus par v7-accueil.js) */
.v7-ev{display:grid;grid-template-columns:110px minmax(0,1fr) auto;gap:14px;align-items:center;padding:12px 18px;border-top:1px solid var(--hair)}
.v7-ev:first-child{border-top:0}
.v7-ev-d{font-size:.8rem;font-weight:600;color:var(--strong)}
.v7-ev-t{font-size:.9rem;font-weight:600;color:var(--ink)}
.v7-ev-s{font-size:.8rem;color:var(--muted);margin-top:2px}
.v7-ev .btn{white-space:nowrap}
.v7-tag{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;font-size:.72rem;font-weight:700;margin-right:8px;white-space:nowrap}
.v7-tag-renew{background:var(--accent-bg);color:var(--blue-dark)}
.v7-tag-trial{background:var(--peach-soft);color:#9A3412}
.v7-tag-pay{background:var(--neg-bg);color:var(--neg)}
.v7-pr{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:8px 18px;border-top:1px solid var(--hair);font-size:.86rem}
.v7-pr:first-child{border-top:0}
.v7-pr b{color:var(--ink)}
.v7-pr span.v7-pr-s{color:var(--muted);font-size:.78rem}
.v7-vchip{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;font-size:.74rem;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.v7-vchip.late{background:var(--warn-bg);color:var(--warn)}
.v7-vchip.ok{background:var(--pos-bg);color:var(--pos)}
.v7-vchip.tol{background:var(--surface-3);color:var(--strong)}

/* Onglets Finance (les 4 pages restent séparées, reliées par cette barre) */
.v7-fintabs{display:flex;gap:4px;flex-wrap:wrap;margin:0 0 18px;padding:3px;background:var(--surface);border:1px solid var(--border);border-radius:12px;width:max-content;max-width:100%}
.v7-fintabs button{height:34px;padding:0 14px;border:0;border-radius:9px;background:none;font:600 .84rem var(--ui);color:var(--muted);cursor:pointer}
.v7-fintabs button:hover{color:var(--ink);background:var(--bg)}
.v7-fintabs button[aria-current="page"]{background:var(--ink);color:#fff}

@media (max-width:1280px){
  .v7-strip{grid-template-columns:repeat(4,minmax(0,1fr))}
  .v7-kpis{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .v7-kpi-hero{grid-column:1 / -1}
}

/* ════════ IPHONE ════════ */
@media (max-width:900px){
  .page-h1{font-size:1.75rem}
  .v7-intro{flex-direction:column;align-items:stretch;gap:12px}
  .v7-intro .period-filter-bar{display:flex;overflow-x:auto}
  .v7-intro .period-chip{flex:1;min-height:36px;white-space:nowrap;padding:0 6px}
  .v7-mtabs{display:flex;gap:2px;margin:0 0 14px;padding:3px;background:#E9ECF2;border-radius:12px;position:sticky;top:0;z-index:20}
  .v7-mtabs button{flex:1;min-height:40px;border:0;border-radius:9px;background:none;font:600 .88rem var(--ui);color:var(--muted);cursor:pointer}
  .v7-mtabs button[aria-selected="true"]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px rgba(10,15,26,.1)}
  #page-dashboard[data-mtab="today"] [data-m]:not([data-m="today"]),
  #page-dashboard[data-mtab="nums"]  [data-m]:not([data-m="nums"]),
  #page-dashboard[data-mtab="parc"]  [data-m]:not([data-m="parc"]){display:none!important}
  .v7-kpis{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
  .v7-kpi{padding:14px}
  .v7-kpi-v{font-size:1.9rem}
  .v7-kpi-hero .hero-left{padding:18px}
  .v7-kpi-hero .hero-num{font-size:2.6rem}
  .v7-row{grid-template-columns:1fr;gap:10px;margin-bottom:10px}
  .v7-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
  .v7-ev{grid-template-columns:minmax(0,1fr) auto;padding:12px 14px}
  .v7-ev-d{grid-column:1 / -1;margin-bottom:-6px}
  .v7-fintabs{width:auto;overflow-x:auto;flex-wrap:nowrap}
  .v7-fintabs button{flex-shrink:0;min-height:40px}
  /* Barre d'onglets du bas : blanche, onglet actif posé sur une pastille pêche */
  .mobile-nav{background:rgba(255,255,255,.97);border-top:1px solid var(--border)}
  .mbn{font-size:.66rem;color:var(--faint);min-height:48px;justify-content:center}
  .mbn.active{color:var(--ink)}
  .mbn svg{width:20px;height:20px;padding:4px 14px;border-radius:999px;box-sizing:content-box}
  .mbn.active svg{background:var(--peach)}
}
@media (max-width:560px){
  .v7-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
  .v7-strip .stat-cell{border-right:1px solid var(--hair)!important}
  .v7-strip .stat-cell:nth-child(2n){border-right:none!important}
}

/* Fil d'Ariane jamais mis à jour par le JS (restait « Dashboard ») : le titre suffit */
.tb-crumb{display:none}

/* ════════ DA sur toutes les pages ════════ */
/* Libellés en phrase normale, plus de petites capitales espacées (les en-têtes de tableaux gardent leur style compact) */
.field-label,.form-field label,.kbox .l,.kcol-h,.stat-label,.kpi-label,.df-label,.pf-label,.ph-tag,.mm-group-title,
#page-announcements .form-field label,#page-campagnes .form-field label,#page-announcements .ann-stat-l,#page-campagnes .ann-stat-l,
#page-roadmap .rm-af-title,.brandtext small,.sb-brand small{text-transform:none;letter-spacing:0}
.field-label,.form-field label,#page-announcements .form-field label,#page-campagnes .form-field label{font-size:.82rem;font-weight:600;color:var(--strong)}
.page-sub{color:var(--muted);max-width:72ch}
.form-field input,.form-field select,.form-field textarea,.inp{border-radius:10px;border-color:var(--border-strong)}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus,.inp:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg);outline:none}
.tbl thead th,table.tbl th,.tablewrap th{color:var(--muted)}
.tbl tbody tr:hover,.tablewrap tbody tr:hover{background:var(--surface-2)}

/* Menu iPhone (tuiles) */
.mm-group-title{font-size:.84rem;font-weight:700;color:var(--ink)}
.mm-ic{background:var(--surface-3);color:var(--ink)}
.mm-tile:active{background:var(--peach-soft)}
.mm-badge{background:var(--warn);}

@media (max-width:900px){
  .topbar-title{display:none}
  .topbar{height:56px}
  .page-intro .page-sub{font-size:.88rem}
}

/* ════════ CAMPAGNES ════════ */
.v7-camp-status{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:4px 18px;margin-bottom:16px}
.v7-camp-status-l{font-size:.82rem;font-weight:700;color:var(--ink)}
.v7-camp-status .ann-pad{padding:10px 0;flex:1;min-width:0}
.v7-ctabs{display:flex;gap:2px;padding:3px;background:var(--surface);border:1px solid var(--border);border-radius:12px;width:max-content;max-width:100%;margin-bottom:16px}
.v7-ctabs button{height:36px;padding:0 16px;border:0;border-radius:9px;background:none;font:600 .86rem var(--ui);color:var(--muted);cursor:pointer}
.v7-ctabs button[aria-selected="true"]{background:var(--ink);color:#fff}
#page-campagnes[data-ctab="new"] [data-cpane="hist"],#page-campagnes[data-ctab="hist"] [data-cpane="new"]{display:none}
.v7-camp{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:16px;align-items:start}
.v7-camp-steps{display:flex;flex-direction:column;gap:14px}
.v7-step-h{display:flex;align-items:center;gap:12px;padding:16px 20px 0}
.v7-step-h h2{margin:0;font-size:1rem;font-weight:700;color:var(--ink)}
.v7-step-n{display:grid;place-items:center;width:28px;height:28px;border-radius:999px;background:var(--peach);color:var(--ink);font:800 .85rem var(--num);flex-shrink:0}
.v7-step-act{margin-left:auto}
.v7-step .form-field{margin-top:14px!important}
.v7-step #campIaToggle{background:var(--peach-soft);border-color:var(--peach-line);color:var(--ink);font-weight:600}
.v7-send-bar{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.v7-send-bar .primary{margin-left:auto}
.v7-camp-prev{position:sticky;top:16px}
.v7-camp-prev #campPreviewBox{margin-top:0!important}
.v7-camp-prev #campPreviewFrame{height:640px!important}
.v7-prev-empty{display:none;padding:40px 16px;text-align:center;color:var(--muted);font-size:.86rem;line-height:1.5;border:1px dashed var(--border-strong);border-radius:12px}
#campPreviewBox[style*="none"] ~ .v7-prev-empty{display:block}
.v7-camp-hist{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start}
@media (max-width:1100px){.v7-camp{grid-template-columns:1fr}.v7-camp-prev{position:static}.v7-camp-hist{grid-template-columns:1fr}}
@media (max-width:900px){
  .v7-ctabs{width:auto}.v7-ctabs button{flex:1;min-height:40px}
  .v7-step-h{padding:14px 14px 0}
  .v7-send-bar{position:sticky;bottom:calc(70px + var(--safe-b,0px));background:var(--surface);padding:10px 0 4px;z-index:5}
  .v7-send-bar .primary{flex:1 0 100%;margin-left:0;min-height:44px;justify-content:center}
  .v7-camp-prev #campPreviewFrame{height:520px!important}
}
.v7-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ════════ Listes (Clients, Licences, Ventes…) ════════ */
/* Filtres : même pastille encre que les autres sélecteurs */
.pill{border-radius:999px;font-weight:600}
.pill.active{background:var(--ink)!important;color:#fff!important;border-color:var(--ink)!important}
/* Tuiles de stats : chiffres en encre, sans émoji décoratif ; la couleur reste pour ce qui alerte */
.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:none}
.stat-card .stat-icon{display:none}
.stat-card .stat-value{font-family:var(--num);font-weight:900;color:var(--ink)!important}
#clients-stats .stat-card:last-child .stat-value{color:var(--warn)!important}

/* ════════════════════════════════════════════════════════════════
   COMPOSANTS COMMUNS V7 — à utiliser pour tout nouveau rendu
   (au lieu de styles en ligne). Les anciennes classes y sont raccrochées.
   ════════════════════════════════════════════════════════════════ */

/* Badge : pastille de statut ou de catégorie.
   .v7-badge + --ok | --warn | --neg | --info | --brand | --nuit | --muted */
.v7-badge,.status,.chip,.tag,.badge-pill,[class^="badge-"]:not(.badge-pill),[class*=" badge-"]{
  display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 9px;border-radius:999px;
  font:600 .72rem/1 var(--ui);letter-spacing:0;text-transform:none;white-space:nowrap;border:0}
.v7-badge{background:var(--surface-3);color:var(--strong)}
.v7-badge--ok{background:var(--pos-bg);color:var(--pos)}
.v7-badge--warn{background:var(--warn-bg);color:var(--warn)}
.v7-badge--neg{background:var(--neg-bg);color:var(--neg)}
.v7-badge--info{background:var(--accent-bg);color:var(--blue-dark)}
.v7-badge--brand{background:var(--peach-soft);color:#9A3412}
.v7-badge--nuit{background:#E8ECF6;color:var(--nuit)}
.v7-badge--muted{background:var(--surface-3);color:var(--muted)}
.chip-ls{font-family:var(--mono);font-weight:600}

/* Boutons : encre pour l'action principale, bleu pour l'action de marque, contour sinon */
.btn,.btn-mini,.row-btn,.act-btn,.btn-outline{font-weight:600;border-radius:10px;border-width:1px}
.btn:active,.btn-mini:active,.row-btn:active,.act-btn:active{transform:translateY(1px)}
.btn.primary,.btn.btn-primary{background:var(--ink);border-color:var(--ink);color:#fff}
.btn.volt{background:var(--accent);border-color:var(--accent)}
.btn.danger{color:var(--neg);border-color:#F4A9AC;background:var(--surface)}

/* Cartes et en-têtes de carte */
.card-head,.card-header{padding:16px 20px;border-bottom:1px solid var(--hair);gap:12px}
.card-title{font-size:.95rem;display:flex;align-items:center;gap:8px}
.sec-head .card-title{font-size:1.05rem}

/* Tableaux : en-tête discret, lignes aérées, chiffres alignés */
.tbl,.tablewrap table{font-size:.84rem}
.tbl thead th,.tablewrap thead th{font-size:.72rem;font-weight:600;text-transform:none;letter-spacing:0;color:var(--muted);background:var(--surface-2);border-bottom:1px solid var(--border)}
.tbl td,.tablewrap td{border-bottom:1px solid var(--hair);vertical-align:middle}
.tbl td,.tablewrap td{font-variant-numeric:tabular-nums}

/* Tuiles de chiffres (kbox, stat-card) */
.kbox{border-radius:var(--r-lg);box-shadow:none}
.kbox .l{font-size:.8rem;font-weight:600;color:var(--muted)}
.kbox .v{font-family:var(--num);font-weight:900;letter-spacing:-.01em}

/* Lignes mises en avant (essai, gratuit) : fond léger, plus de barre colorée à gauche */
.row-free,.row-test,body.dark .row-free,body.dark .row-test{box-shadow:none!important}
.row-test{background:var(--peach-soft)!important}
.row-free{background:#F1F3F9!important}

/* Fenêtres (modales) */
.modal-box{border-radius:var(--r-xl);border:1px solid var(--border);box-shadow:var(--sh-lg)}

/* Le titre de page vit dans la page : la barre du haut garde recherche, Sync, alertes */
.topbar-title{display:none}
.v7-fintabs{margin-top:-6px}
/* Tuiles de chiffres : l'émoji décoratif sans classe en tête de tuile disparaît */
.stat-card > div:first-child:not([class]){display:none}

/* Accueil : MRR sur toute la hauteur à gauche (graphique plus large),
   Essais et Suite à jour empilés à droite. */
@media (min-width:1281px){
  .v7-kpis{grid-template-columns:minmax(0,2.6fr) minmax(0,1fr);grid-auto-rows:auto}
  .v7-kpi-hero{grid-row:1 / span 2}
  .v7-kpi-hero .hero{grid-template-columns:minmax(260px,.8fr) minmax(0,2fr)}
  .v7-kpi{padding:16px 20px;gap:6px}
  .v7-kpi-v{font-size:2rem}
  .v7-kpi-trial{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:16px;align-items:end}
  .v7-kpi-trial .v7-kpi-l,.v7-kpi-trial .v7-kpi-s{grid-column:1}
  .v7-kpi-trial .v7-kpi-v{grid-column:1}
  .v7-kpi-trial .v7-kpi-conv{grid-column:2;grid-row:1 / span 3;margin:0;padding:0 0 0 16px;border-top:0;border-left:1px solid var(--peach-line);align-self:stretch;justify-content:center}
}

/* KPI (skill dataviz) : un seul chiffre héros (le MRR) ; les grands chiffres isolés
   gardent des chiffres proportionnels, l'alignement tabulaire reste pour les colonnes. */
.hero-num,.st-value,.v7-kpi-v,.kbox .v,.stat-value,.hmini .hm-v{font-variant-numeric:normal}
.v7-kpi-hero .hero-num{font-size:3.4rem}

/* Palette des graphiques, tirée du site et validée par le skill dataviz (validate_palette.js :
   toutes vérifications OK en clair). Ordre figé, jamais cyclé. Le bleu nuit reste hors graphiques
   (trop sombre et trop peu saturé pour une série). Les mini-courbes des tuiles sont toutes en --viz-1. */
:root, body.dark{
  --viz-1:#0066FF; --viz-2:#EA580C; --viz-3:#0895A8;
  --viz-4:#B98900; --viz-5:#6B5BD6; --viz-6:#D64B7A;
  --viz-grid:#EEF0F4; --viz-axis:#D1D5DB;
}

/* ════════ GRAPHIQUES V7 ════════
   Trio de la charte : encre (la donnée qui compte), bleu (l'action, le présent), pêche (en cours, le doux).
   Formes seulement : les calculs et les étiquettes restent ceux de dashboard.js. */
/* Courbe MRR : trait encre, aire pêche, point final bleu cerclé */
.hero-spark .sk path[fill="none"]{stroke:var(--ink);stroke-width:2.5}
.hero-spark .sk path:not([fill="none"]){fill:var(--peach-soft)}
.hero-spark .sk{color:var(--accent)}
.sk-dot{box-shadow:0 0 0 3px var(--surface)}
.hs-x{color:var(--faint);font-weight:500}
.hs-cap{font-weight:700;color:var(--ink)}
.hs-hit u{border-left:1px dashed var(--border-strong)}
.hs-hit b{background:var(--accent);box-shadow:0 0 0 3px var(--surface)}
/* Mini-courbes des tuiles : même traitement que la courbe MRR (trait encre, aire pêche, point final bleu) */
.st-spark .sk{color:var(--accent)}
.st-spark .sk path[fill="none"]{stroke:var(--ink);stroke-width:1.75}
.st-spark .sk path:not([fill="none"]){fill:var(--peach-soft)}
/* Barres des revenus */
.chart-plot{gap:14px;border-bottom:1px solid var(--border-strong)}
.chart-xaxis{gap:14px}
.chart-grid-line{border-top:1px dashed var(--border)!important;background:none!important;height:0!important}
.chart-y-label{color:var(--faint);font-weight:500}
.bar{max-width:30px;border-radius:7px 7px 2px 2px;background:var(--accent)}
.bar-col:hover .bar{opacity:1;background:var(--blue-dark)}
.bar.bar-current,.bar-col:hover .bar.bar-current{opacity:1;background:var(--peach);box-shadow:inset 0 0 0 1.5px #F2B48A}
.chart-note i{background:var(--peach);opacity:1;box-shadow:inset 0 0 0 1px #F2B48A}
.bar-label{font-weight:500;color:var(--faint)}
.bar-label.on{color:var(--ink);font-weight:700}
.bar-cap{font-weight:700;color:var(--ink)}
.chart-h{font-family:var(--ui);font-weight:700;letter-spacing:0}
.chart-total{font-family:var(--num);font-weight:900;letter-spacing:-.01em;font-variant-numeric:normal}
/* Info-bulles des graphiques */
.bar-tip,.bar-tooltip,.hs-hit span{background:var(--ink)!important;border-radius:10px!important;padding:8px 11px!important;box-shadow:var(--sh-md)!important}
.bar-tip em.up,.hs-hit span em.up{color:#6EE7B7}
.bar-tip em.down,.hs-hit span em.down{color:#FCA5A5}
/* CA par robot : pistes fines et arrondies */
.rb-h{font-size:.84rem}

/* ════════ Revue page par page (23/10/2026) ════════ */
/* Le libellé de groupe sous chaque titre répète le menu : seul l'état de synchro de l'Accueil reste */
.page-intro .eyebrow:not(#dash-updated){display:none}
/* Étiquettes de tuiles lisibles partout (Prospects, Autres revenus, IRPP…) */
.kbox .l,.stat-label,.kpi-label,.stat-card .stat-label{font-size:.8rem!important;font-weight:600;color:var(--muted)}
/* Sous-onglets (Comptabilité, Annonces, Prospects…) : même sélecteur segmenté que le reste */
.tabs{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:3px;gap:2px}
.tab{font:600 .84rem var(--ui);padding:0 14px;height:34px;border-radius:9px;color:var(--muted)}
.tab:hover{color:var(--ink);background:var(--bg)}
.tab.active{background:var(--ink);color:#fff;box-shadow:none}
/* Courbe « Encaissé » d'Autres revenus : même trio que la courbe MRR */
#ar-spark polyline,#ar-spark path[fill="none"]{stroke:var(--ink)!important;stroke-width:2.5}
#ar-spark path:not([fill="none"]),#ar-spark polygon{fill:var(--peach-soft)!important}
#ar-spark circle{fill:var(--accent)!important;stroke:var(--surface);stroke-width:2}
/* Annonces DGFIP : chaque message en carte légère, texte replié à 4 lignes, clic pour tout lire */
.v7-dg-item{padding:14px 16px;border:1px solid var(--border);border-radius:12px;background:var(--surface);margin-bottom:10px}
.v7-dg-text{font-size:.86rem;line-height:1.55;white-space:pre-line;color:var(--text);display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;cursor:pointer;max-width:90ch}
.v7-dg-text.open{display:block;-webkit-line-clamp:unset}
.v7-dg-text:not(.open)::after{content:""}
/* Calendrier des prospects : jour courant en pêche, pas en bleu vif */
.pcal-today{border-color:var(--peach-line)!important;background:var(--peach-soft)!important}
.pcal-today .pcal-dname,.pcal-dow.pcal-today .pcal-dnum{color:var(--ink)!important}
.pcal-dow.pcal-today{border-bottom-color:var(--ink)!important}
/* Kanban Roadmap : plus de barre colorée en tête de colonne */
.rm-col-backlog,.rm-col-progress,[class*="rm-col-"].rm-col{border-top:1px solid var(--border)!important}
.rm-col{background:var(--bg)}

/* Revenus mensuels : zone de tracé plus haute sur grand écran, la carte se remplit à hauteur de sa voisine */
@media (min-width:1281px){#page-dashboard .chart-bars{--plot-h:210px}}
/* Étiquette de fin de courbe MRR : au-dessus du dernier point, sur fond blanc, jamais barrée par la courbe */
.hs-cap{transform:translate(calc(-100% + 6px),calc(-100% - 12px))!important;background:var(--surface);padding:2px 7px;border-radius:7px;box-shadow:0 1px 3px rgba(10,15,26,.12);font-size:.78rem!important}
.v7-kpi-hero .hs-plot{margin-top:30px}
/* iPhone : tuiles de chiffres 2 par ligne (au lieu d'une) pour arriver plus vite aux listes */
@media (max-width:560px){
  .kgrid.c3,.kgrid.c4,.kgrid.c5,.kgrid.c6{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px}
  .kgrid .kbox,.kgrid > div{padding:12px 14px;min-width:0}
  .kbox .v{font-size:1.25rem}
}

/* Modals prospect et client : sections titrées, chronologie (Journal) */
#prospect-modal .modal-box{width:min(720px,96vw)}
.pm-body{display:flex;flex-direction:column;gap:0}
.pm-sec{padding:18px 0;border-top:1px solid var(--hair)}
.pm-body>.pm-sec:first-of-type{padding-top:4px;border-top:0}
.pm-sec-t{margin:0 0 12px;font:700 .95rem/1.3 var(--ui);color:var(--ink);letter-spacing:0;text-transform:none}
.pm-sec .form-grid+.form-grid,.pm-sec .form-grid+.form-field,.pm-sec .form-field+.form-grid{margin-top:14px}
.pm-switch-field{justify-content:flex-end;min-height:62px}
.pm-switch-field.full{min-height:0}
.pm-inline{display:flex;gap:8px}.pm-inline .inp{flex:1;min-width:0}
.pm-mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem;letter-spacing:.02em}
.pm-prod-field{margin-top:14px}
.pm-prod-box{display:flex;flex-wrap:wrap;gap:8px}
.pm-prod{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:6px 12px;border:1px solid var(--border);border-radius:999px;background:var(--surface);font-size:.84rem;cursor:pointer;transition:border-color .15s,background .15s}
.pm-prod:hover{border-color:var(--border-strong)}
.pm-prod:has(input:checked){border-color:var(--blue);background:var(--blue-50)}
.pm-prod input{margin:0;accent-color:var(--blue)}
.pm-prod-name{font-weight:600;color:var(--ink)}
.pm-prod-price{color:var(--muted);font-variant-numeric:tabular-nums}
.pm-prod-price::before{content:"·";margin-right:6px;color:var(--faint)}
.pm-notes-preview{font-size:.86rem;line-height:1.55;color:var(--ink);padding:10px 12px;border:1px solid var(--border);border-radius:10px;cursor:text;overflow-wrap:anywhere}
#pm-notes{min-height:96px}
.tl-add{display:flex;gap:8px;margin-bottom:12px}.tl-add .inp{flex:1;min-width:0}
.tl{position:relative;padding:4px 0 4px 4px}
.tl::before{content:"";position:absolute;left:13px;top:12px;bottom:12px;width:2px;border-radius:2px;background:var(--hair)}
.tl-item{position:relative;padding:8px 6px 10px 36px}
.tl-dot{position:absolute;left:3px;top:8px;width:22px;height:22px;border-radius:50%;background:var(--faint);color:#fff;display:grid;place-items:center;box-shadow:0 0 0 3px var(--surface)}
.tl-dot svg{width:12px;height:12px}
/* Couleur de la puce = la tâche (mail reçu, envoyé, rendez-vous, clé…) */
.tl-item.tlk-recu .tl-dot{background:#059669}
.tl-item.tlk-envoi .tl-dot{background:var(--blue)}
.tl-item.tlk-rdv .tl-dot{background:var(--nuit)}
.tl-item.tlk-cle .tl-dot{background:#EA580C}
.tl-item.tlk-achat .tl-dot{background:#047857}
.tl-item.tlk-perdu .tl-dot{background:var(--neg,#C2272D)}
.tl-item.tlk-poste .tl-dot,.tl-item.tlk-note .tl-dot{background:#6B7280}
.tl-txt{font-size:.88rem;line-height:1.45;color:var(--ink);overflow-wrap:anywhere}
.tl-meta{margin-top:2px;font-size:.76rem;color:var(--muted);font-variant-numeric:tabular-nums}
.tl-meta em{font-style:normal;font-weight:600;color:var(--blue)}
.tl-auto .tl-dot{background:var(--blue)}
.tl-manuel .tl-dot{background:#EA580C}
.tl-demo .tl-dot{background:var(--nuit)}
.tl-licence .tl-dot,.tl-achat .tl-dot{background:#059669}
.tl-abo .tl-dot{background:var(--blue)}
.tl-poste .tl-dot,.tl-fiche .tl-dot{background:#9CA3AF}
.tl-item.tl-futur .tl-dot{background:var(--surface);color:var(--blue);box-shadow:0 0 0 2px var(--blue),0 0 0 5px var(--surface)}
.tl-futur .tl-txt{color:var(--strong)}
.tl-vide{padding:14px 4px;font-size:.86rem;color:var(--muted)}
.pm-head-id{display:flex;align-items:center;gap:14px;min-width:0}
.pm-head-id .c360-sub .v7-badge,.c360-sub .v7-badge{margin-left:6px;vertical-align:1px}
/* Fiche client 360 */
#customer360-box{display:flex;flex-direction:column;max-height:92vh}
.c360-head{align-items:flex-start;gap:12px}
.c360-id{display:flex;gap:14px;align-items:center;min-width:0}
.c360-avatar{flex:none;width:44px;height:44px;border-radius:12px;background:var(--peach-soft);border:1px solid var(--peach-line);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.1rem;color:var(--ink)}
.c360-sub{font-size:.84rem;color:var(--muted);overflow-wrap:anywhere}
.c360-badges{margin-top:6px;display:flex;gap:6px;flex-wrap:wrap}
.c360-actions{display:flex;gap:8px;align-items:center;flex:none}
.c360-body{overflow-y:auto}
.c360-kpis{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--border);border-radius:12px;margin-bottom:6px}
.c360-kpi{padding:12px 14px;border-left:1px solid var(--hair);min-width:0}
.c360-kpi:first-child{border-left:0}
.c360-kpi-v{font-weight:700;font-size:1.1rem;color:var(--ink);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.c360-kpi-l{font-size:.78rem;color:var(--muted);margin-top:2px}
.c360-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:24px}
.c360-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--hair)}
.c360-row:first-of-type{border-top:0;padding-top:0}
.c360-key{color:var(--blue)}
.c360-strong{font-weight:600;color:var(--ink);font-size:.86rem}
.c360-meta{font-size:.78rem;color:var(--muted)}
.c360-vide{font-size:.84rem;color:var(--muted)}
#cu360-note{min-height:84px;width:100%}
.c360-note-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:8px}
@media (max-width:640px){.c360-grid{grid-template-columns:1fr}.c360-kpis{grid-template-columns:1fr 1fr}.c360-kpi:nth-child(3){border-left:0}.c360-kpi:nth-child(n+3){border-top:1px solid var(--hair)}#prospect-modal .form-grid{grid-template-columns:1fr}}
/* Fiche en pleine page (prospect et client) : formulaire à gauche, Journal en colonne à droite */
.pm-full-btn{margin-left:auto}
.pm-full-btn+.modal-close{margin-left:0}
.pm-notes-vide{color:var(--muted)}
.modal-overlay.is-full{padding:0}
.modal-overlay.is-full>.modal-box,#customer360-modal.is-full #customer360-box{width:100vw!important;max-width:none;height:100vh;max-height:none;border-radius:0}
.is-full [aria-pressed="true"]{background:var(--blue-50);color:var(--blue)}
@media (min-width:980px){
  #prospect-modal.is-full .pm-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(380px,40%);column-gap:40px;align-content:start;padding:24px max(32px,calc((100vw - 1400px)/2))}
  #prospect-modal.is-full .pm-body>*{grid-column:1}
  #prospect-modal.is-full #pm-journal-wrap{grid-column:2;grid-row:1/span 40;position:sticky;top:0;align-self:start;border-top:0;padding-top:4px}
  #prospect-modal.is-full .tl{max-height:calc(100vh - 260px);overflow-y:auto}
  #customer360-modal.is-full .c360-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(380px,40%);column-gap:40px;align-content:start;padding:24px max(32px,calc((100vw - 1400px)/2))}
  #customer360-modal.is-full .c360-body>*{grid-column:1}
  #customer360-modal.is-full .c360-body>.pm-sec:last-child{grid-column:2;grid-row:1/span 3;border-top:0;padding-top:0;position:sticky;top:0}
  #customer360-modal.is-full .tl{max-height:calc(100vh - 220px);overflow-y:auto}
}

/* Pleine page : fond doux, chaque bloc dans une carte blanche */
.modal-overlay.is-full>.modal-box,#customer360-modal.is-full #customer360-box{background:var(--bg)}
.is-full .modal-head{background:var(--surface);padding:20px max(32px,calc((100vw - 1400px)/2))}
.is-full .modal-head .mt{font-size:1.35rem;letter-spacing:-.01em}
.is-full .c360-avatar{width:52px;height:52px;font-size:1.3rem;border-radius:14px}
.is-full .modal-foot{background:var(--surface);padding:14px max(32px,calc((100vw - 1400px)/2))}
.is-full .pm-sec{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:20px 22px;margin-bottom:16px}
.is-full .pm-body>.pm-sec:first-of-type{padding-top:20px;border-top:1px solid var(--border)}
.is-full .c360-kpis{border:0;gap:12px;margin-bottom:16px}
.is-full .c360-kpi{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px 18px}
.is-full .c360-kpi-v{font-size:1.4rem}
.is-full .c360-grid{column-gap:16px}
@media (min-width:980px){
  #prospect-modal.is-full #pm-journal-wrap,#customer360-modal.is-full .c360-body>.pm-sec:last-child{top:24px;border-top:1px solid var(--border);padding-top:20px}
}
.c360-grid{align-items:start}
/* Blocs complémentaires des fiches */
.c360-row-end{display:flex;align-items:center;gap:10px}
.fiche-sous-titre{margin:16px 0 8px;font-size:.84rem;font-weight:600;color:var(--strong)}
.fiche-liens{display:flex;flex-direction:column;gap:6px}
.fiche-lien{display:flex;flex-direction:column;align-items:flex-start;gap:1px;width:100%;padding:8px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);text-align:left;cursor:pointer;font:inherit}
.fiche-lien:hover{border-color:var(--blue);background:var(--blue-50)}
.fiche-essai{margin-bottom:14px;padding:12px 14px;border:1px solid var(--peach-line);border-radius:12px;background:var(--peach-soft)}
.fiche-essai .c360-row{padding:0;border:0}
.fiche-alerte{margin-top:6px;padding:6px 10px;border-radius:8px;background:var(--warn-bg);color:var(--warn);font-size:.78rem;font-weight:600}
.fiche-copier{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;margin-left:4px;padding:0;border:0;border-radius:6px;background:transparent;color:var(--faint);cursor:pointer;vertical-align:-6px}
.fiche-copier svg{width:14px;height:14px}
.fiche-copier:hover{background:var(--surface-3);color:var(--ink)}
.fiche-copier.ok{color:#059669;background:var(--pos-bg)}
.pm-inline .btn.ok{color:#059669;border-color:#059669}
.c360-large{grid-column:1/-1}
.c360-stripe-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.c360-stripe-cols .fiche-sous-titre{margin-top:0}
.c360-kv{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:5px 0;border-top:1px solid var(--hair);font-size:.84rem}
.c360-kv span{color:var(--muted)}
.c360-kv strong{font-weight:600;color:var(--ink);text-align:right;overflow-wrap:anywhere}
.c360-stripe-liens{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px}
@media (max-width:820px){.c360-stripe-cols{grid-template-columns:1fr}}
.c360-kv-fac strong{white-space:nowrap;margin-left:auto}
.c360-kv-fac span{min-width:0}
/* Tableau des licences */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.lic-table td{vertical-align:middle}
.lic-cab .client-name{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.lic-badges{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}
.lic-row-essai td:first-child{box-shadow:inset 3px 0 0 var(--peach)}
.lic-key{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.76rem;color:var(--strong)}
.lic-link{padding:0;border:0;background:none;color:var(--blue);font:600 .84rem var(--ui);cursor:pointer;text-underline-offset:3px}
.lic-link:hover{text-decoration:underline}
.lic-muted{color:var(--faint);font-size:.84rem}
.lic-doss{display:flex;flex-direction:column;gap:5px;min-width:78px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink)}
.lic-doss small{font-weight:500;color:var(--muted)}
.lic-doss i{display:block;height:4px;border-radius:4px;background:linear-gradient(90deg,var(--blue) var(--p),var(--surface-3) var(--p))}
.lic-doss.is-over{color:var(--neg,#C2272D)}
.lic-doss.is-over i{background:linear-gradient(90deg,var(--neg,#C2272D) var(--p),var(--surface-3) var(--p))}
.lic-date{display:flex;flex-direction:column;font-size:.84rem;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.lic-date small{font-size:.72rem;color:var(--muted)}
.lic-actions div{display:flex;gap:2px;justify-content:flex-end}
.lic-act{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:0;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer}
.lic-act svg{width:16px;height:16px}
.lic-act:hover{background:var(--surface-3);color:var(--ink)}
.lic-act--ok:hover{color:var(--pos)}.lic-act--warn:hover{color:var(--warn)}.lic-act--neg:hover{color:var(--neg,#C2272D);background:#FDECEC}
.lic-th-actions{width:1%}
/* Boutons d'action des tableaux : discrets, la couleur n'apparaît qu'au survol */
table td .btn-outline.btn-xs{border-color:transparent;background:transparent;color:var(--muted);box-shadow:none;font-weight:600}
table td .btn-outline.btn-xs:hover{background:var(--surface-3);color:var(--ink)}
table td .btn-danger-ghost:hover{background:#FDECEC;color:var(--neg,#C2272D)}
.pipeline-col-title{gap:8px}
/* Licences : menu d'actions « ⋯ » et noms tronqués */
.lic-cab .client-name{flex-wrap:nowrap;max-width:300px}
.lic-nom{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lic-actions{position:relative;text-align:right}
.lic-menu{display:inline-block;position:relative}
.lic-menu summary{list-style:none;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;color:var(--muted);cursor:pointer}
.lic-menu summary::-webkit-details-marker{display:none}
.lic-menu summary svg{width:18px;height:18px}
.lic-menu summary:hover,.lic-menu[open] summary{background:var(--surface-3);color:var(--ink)}
.lic-menu-pop{position:absolute;right:0;top:calc(100% + 4px);z-index:40;min-width:200px;padding:6px;border:1px solid var(--border);border-radius:12px;background:var(--surface);box-shadow:0 12px 32px rgba(10,15,26,.12);display:flex;flex-direction:column}
.lic-menu-pop .lic-act{width:100%;height:auto;justify-content:flex-start;gap:10px;padding:8px 10px;font:500 .86rem var(--ui);color:var(--strong);text-align:left}
.lic-menu-pop .lic-act--neg{color:var(--neg,#C2272D)}
.lic-row-amb td:first-child{box-shadow:inset 3px 0 0 var(--nuit)}
/* Licences sur iPhone : une carte par licence au lieu d'un tableau qui défile */
@media (max-width:640px){
  .lic-table{min-width:0!important;width:100%}
  .lic-table thead{display:none}
  .lic-table tbody tr{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;position:relative;padding:12px 48px 12px 14px;border-bottom:1px solid var(--hair)}
  .lic-table tbody td{display:block;padding:0!important;border:0!important;box-shadow:none!important}
  .lic-table td.lic-cab{flex:1 0 100%}
  .lic-table td.col-mobile-hide{display:none}
  .lic-table .lic-doss>span::after{content:" dossiers";font-size:.8em;font-weight:500;color:var(--muted)}
  .lic-table td.lic-actions{position:absolute;top:8px;right:6px}
  .lic-table .lic-cab .client-name{max-width:none}
  .lic-table .lic-date{flex-direction:row;gap:4px}.lic-table .lic-date small{display:none}
  .lic-table tr.lic-row-essai{box-shadow:inset 3px 0 0 var(--peach)}
  .lic-table tr.lic-row-amb{box-shadow:inset 3px 0 0 var(--nuit)!important}
}
.btn-danger-ghost{color:var(--muted)}
.btn-danger-ghost:hover{background:#FDECEC!important;color:var(--neg,#C2272D)!important}
/* Surligneur du site outils-ec.fr (classe .u-blue) : bande pêche + trait bleu, sur les titres de page et le nom des fiches */
.page-h1,.is-full .modal-head .mt{width:fit-content;max-width:100%;background:linear-gradient(transparent 62%,var(--peach) 62%,var(--peach) 92%,transparent 92%);text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:3px;text-underline-offset:7px;text-decoration-skip-ink:none;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding:0 2px}
/* Cartes prospect : étiquettes claires */
.pc-tag-demo-avenir{background:var(--blue-50);color:var(--blue);border-color:var(--blue-100)}
.pc-tag-license.is-soon{background:var(--warn-bg);color:var(--warn)}
.pc-tag-license.is-over{background:var(--surface-3);color:var(--muted)}
/* Accueil : « À faire aujourd'hui » */
.v7-todo-row{margin-bottom:16px}
.v7-todo-card{border-color:var(--peach-line)}
.v7-ev.v7-todo{grid-template-columns:minmax(0,1fr) auto}
.v7-todo .v7-ev-s{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:62ch}
/* iPhone : les tableaux Clients, Ventes, Renouvellements et Factures passent en cartes
   (1re colonne en titre, le reste à la ligne, actions en bas), au lieu de défiler sur le côté. */
@media (max-width:640px){
  #page-clients table,#page-ventes table,#page-renouvellements table,#page-finances table{min-width:0!important;width:100%}
  #page-clients thead,#page-ventes thead,#page-renouvellements thead,#page-finances thead{display:none}
  #page-clients tbody tr,#page-ventes tbody tr,#page-renouvellements tbody tr,#page-finances tbody tr{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:12px 14px;border-bottom:1px solid var(--hair)}
  #page-clients tbody td,#page-ventes tbody td,#page-renouvellements tbody td,#page-finances tbody td{display:block;padding:0!important;border:0!important;text-align:left!important}
  #page-clients tbody td:first-child,#page-ventes tbody td:first-child,#page-renouvellements tbody td:first-child,#page-finances tbody td:first-child{flex:1 0 100%}
  #page-clients tbody td:last-child,#page-renouvellements tbody td:last-child,#page-finances tbody td:last-child{flex:1 0 100%;display:flex;gap:6px;flex-wrap:wrap}
  #page-clients td.col-mobile-hide,#page-ventes td.col-mobile-hide,#page-renouvellements td.col-mobile-hide,#page-finances td.col-mobile-hide{display:none}
}
/* Kanban : une étape vide se réduit à une fine bande (reste une zone de dépôt) */
.pipeline-col.is-empty{opacity:.8}
.pipeline-col.is-empty .pipeline-col-head{padding-top:8px;padding-bottom:8px}
.pipeline-col.is-empty .pipeline-col-body{min-height:0;padding:0 11px 8px;font-size:.78rem}
.pipeline-col.is-empty .pipeline-col-body>*{padding:4px 0!important;margin:0!important;border:0!important;min-height:0!important;background:none!important}
.pipeline-col.is-empty.drop-target .pipeline-col-body{min-height:56px}
/* Page Voix du client */
.v7-voix-pills{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}
.v7-voix-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:16px;align-items:start}
.voix-item,.voix-perte{padding:12px 18px;border-top:1px solid var(--hair)}
.voix-item:first-child,.voix-perte:first-child{border-top:0}
.voix-tete{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.voix-date{margin-left:auto;font-size:.78rem;color:var(--muted);font-variant-numeric:tabular-nums}
.voix-txt{margin-top:6px;font-size:.88rem;line-height:1.5;color:var(--strong);overflow-wrap:anywhere}
.voix-noms{margin-top:4px;font-size:.84rem;color:var(--muted)}
.voix-tete .v7-muted{margin-left:auto}
@media (max-width:900px){.v7-voix-grid{grid-template-columns:1fr}}
.v7-todo-row{display:block!important}.v7-todo-row>.v7-cell{width:100%;max-width:none}
.v7-todo-acts{display:flex;gap:6px;align-items:center}
.v7-todo-ign{border-color:transparent!important;background:transparent!important;color:var(--muted)!important}
.v7-todo-ign:hover{background:var(--surface-3)!important;color:var(--ink)!important}
.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
.v7-dg-text{max-width:none!important}
.page-sub{max-width:none!important;text-wrap:pretty}
/* Roadmap : tableau allégé */
.rm-row-title{font-weight:700;color:var(--ink);margin-bottom:3px}
.rm-row-pct{font-weight:600;font-size:.74rem;color:var(--blue);margin-left:6px}
.rm-row-desc{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:62ch}
#rm-cardTable .rm-iconbtn{border-color:transparent;background:transparent;color:var(--muted)}
#rm-cardTable .rm-iconbtn:hover{background:var(--surface-3);color:var(--ink)}
#rm-cardTable .rm-iconbtn-danger:hover{background:#FDECEC;color:var(--neg,#C2272D)}
/* Mini-courbes des tuiles alignées en bas, quelle que soit la hauteur du sous-titre */
.stat-cell{display:flex;flex-direction:column}.stat-cell>.st-spark,.stat-cell>.st-spark-empty{margin-top:auto}
/* Page SEO */
.seo-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}
.seo-kpi{padding:16px 18px}
.seo-kpi-l{font-size:.8rem;color:var(--muted)}
.seo-kpi-v{font:700 1.7rem/1.2 var(--num);color:var(--ink);margin:4px 0;font-variant-numeric:tabular-nums}
.seo-kpi-s{font-size:.78rem;color:var(--muted)}
.seo-delta{font-weight:700}.seo-delta.is-up{color:var(--pos)}.seo-delta.is-down{color:var(--neg,#C2272D)}
.seo-courbe-card{margin-bottom:16px}
.seo-courbe{padding:12px 18px 14px;height:130px}
.seo-courbe .sk{height:90px}
.seo-courbe .sk path[fill="none"]{stroke:var(--ink);stroke-width:2}
.seo-courbe .sk path:not([fill="none"]){fill:var(--peach-soft)}
.seo-axe{display:flex;justify-content:space-between;font-size:.74rem;color:var(--faint);margin-top:6px}
.seo-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
.seo-ligne{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 18px;border-top:1px solid var(--hair)}
.seo-ligne:first-child{border-top:0}
.seo-ligne-t{min-width:0}
.seo-q{font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.seo-ligne-d{flex:none;font-size:.86rem;color:var(--strong);font-variant-numeric:tabular-nums}
@media (max-width:900px){.seo-grid{grid-template-columns:1fr}.seo-kpis{grid-template-columns:1fr 1fr}}
.seo-courbe .sk svg{display:block;width:100%;height:100%}
/* SEO : période et graphiques */
.seo-periodes{margin:0 0 14px}
.seo-charts{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
.seo-ch{padding:10px 14px 12px}
.seo-svg{display:block;width:100%;height:auto;overflow:visible}
.seo-grille{stroke:var(--hair);stroke-width:1}
.seo-axe-t{font:500 10px var(--ui);fill:var(--faint)}
.seo-bar rect:first-child{fill:var(--accent)}
.seo-bar:hover rect:first-child{fill:var(--nuit)}
.seo-hit{fill:transparent}
.seo-ligne-c{fill:none;stroke:var(--ink);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.seo-pt{fill:var(--accent);stroke:var(--surface);stroke-width:2}
.seo-pt:hover{r:6}
@media (max-width:900px){.seo-charts{grid-template-columns:1fr}}
.seo-bar:hover rect:first-child{fill:var(--nuit)}
.seo-pt.is-on{r:6;fill:var(--nuit)}
.seo-tip{position:absolute;z-index:200;display:none;flex-direction:column;gap:1px;transform:translate(-50%,-100%);padding:6px 10px;border-radius:8px;background:var(--ink);color:#fff;font:500 .76rem var(--ui);pointer-events:none;white-space:nowrap;box-shadow:0 6px 18px rgba(10,15,26,.18)}
.seo-tip b{font-weight:700;font-size:.86rem}
.seo-mc-card{margin-top:16px}
.seo-mc-outils{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:12px 18px;border-bottom:1px solid var(--hair)}
.seo-mc-outils .inp{flex:1;min-width:200px;max-width:360px}
.seo-mc-table td{font-variant-numeric:tabular-nums}
.seo-mc-q{font-weight:600;color:var(--ink)}
#seo-mc-tri{margin:0}
.seo-sb-card{margin-bottom:16px}
/* SEO : titres de section */
.seo-section{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:26px 0 12px}
.seo-section-t{margin:0;font:700 1.05rem/1.3 var(--ui);color:var(--ink)}
.seo-charts{margin-bottom:0}
.seo-grid{margin-bottom:0}
.seo-mc-card,.seo-sb-card{margin-top:0}

/* Fiches client et prospect en fenêtre : chaque section dans une carte blanche sur fond doux,
   et un repère bleu devant chaque titre de section (24/10/2026, demande de Patrick : séparations peu visibles) */
#customer360-modal:not(.is-full) .c360-body,#prospect-modal:not(.is-full) .pm-body{background:var(--bg)}
#customer360-modal:not(.is-full) .pm-sec,#prospect-modal:not(.is-full) .pm-sec{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px 18px;margin-bottom:12px}
#customer360-modal:not(.is-full) .pm-body>.pm-sec:first-of-type,#prospect-modal:not(.is-full) .pm-body>.pm-sec:first-of-type{padding-top:16px;border-top:1px solid var(--border)}
#customer360-modal:not(.is-full) .c360-grid{column-gap:12px}
.pm-sec-t{display:flex;align-items:center;gap:8px}
.pm-sec-t::before{content:"";flex:none;width:3px;height:15px;border-radius:2px;background:var(--blue)}

/* Logo de la barre latérale : logo complet en grand + « Dashboard », sans icône ; rien quand la barre est réduite (24/10/2026) */
.sb-head{padding:24px 22px 18px}
.sb-mark{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-decoration:none}
.sb-mark-full{height:46px;width:auto;display:block}
.sb-mark-t{font-family:"Nunito",var(--ui);font-weight:800;font-size:.8rem;letter-spacing:.01em;color:var(--muted);padding-left:3px}
body.sidebar-collapsed .sb-mark{display:none}

/* Barre latérale réduite (24/10/2026) : groupes séparés par un filet, déconnexion toujours visible, haut compact */
body.sidebar-collapsed .sb-head{padding:14px 0 6px}
body.sidebar-collapsed .nav-group{margin-top:6px;padding-top:6px;border-top:1px solid var(--hair)}
body.sidebar-collapsed .nav-pins+.nav-group{border-top:1px solid var(--hair)}
body.sidebar-collapsed .sb-foot #logoutBtn{display:inline-flex}

/* Page de connexion : même logo que la barre latérale (24/10/2026) */
.login-mark{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin-bottom:22px}
.login-mark img{height:52px;width:auto;display:block}
.login-mark span{font-family:"Nunito",var(--ui);font-weight:800;font-size:.85rem;color:var(--muted);padding-left:3px}
