/* Axalyon Standard — vues CRM (FRONT-VUES B) : fiches, fiche, agenda, demandes, SAV, réparations,
   prospects, opportunités (tableau par étape), relances.
   Toutes les classes sont préfixées « crm- » ; jetons et classes communes : css/app.css.

   Écrans Fiches, Fiche client et Agenda : valeurs reprises telles quelles du design
   « Nexoria Mobile Console » (_design/CARTE-DESIGN.md §5.4, §5.5, §5.6 et patrons P1 à P29).
   Les patrons communs du design vivent déjà dans app.css (.entete-vue = P6, .carte = P1,
   .liste/.element = P2, .onglets/.onglet = P11, .recherche-champ = P12, .champ = P13,
   .pastille = P10, .carte-titre = P3, .avatar = P18, .bouton = P7/P8, .encart, .vide) :
   ce fichier ne les redéfinit pas, il n'écrit que ce qui est propre à ces trois écrans.
   Les couleurs passent par les jetons d’app.css (qui portent désormais la palette du design) ;
   seules les teintes sans jeton restent en clair (#222832, #283040, #0B0E14, #11151C, #2A313B, #5A6472).
   Les survols en « style-hover » du design deviennent des règles :hover ici. */

/* ---------- Communs ---------- */
.crm-onglets{margin-bottom:0}
/* Variante 28 px des onglets pilule (en-tête de l'agenda). */
.crm-onglets.petits{gap:3px}
.crm-onglets.petits .onglet{height:28px;padding:0 13px;font-size:12.5px;font-weight:700}
.crm-intertitre{display:flex;align-items:center;gap:8px;font-family:var(--titre);font-size:15px;font-weight:600;margin:0 0 10px;color:var(--ink)}
.crm-intertitre .pastille{margin-left:2px}
/* Barre d'outils du design (P12, .barre-outils d'app.css) : largeur des listes déroulantes. */
.crm-filtres > .champ{min-width:150px}
.crm-filtres > input.champ{min-width:110px;flex:0 1 140px}
/* Champ de recherche (P12) : largeur du design sur l'écran Fiches. */
.crm-recherche{flex:1 1 240px;min-width:0;max-width:320px}
.crm-pied-liste{display:flex;justify-content:center;padding:14px 0 4px}
.crm-champ-compact{width:auto;min-height:30px;padding:4px 30px 4px 10px;font-size:12.5px;border-radius:8px;max-width:190px}
.crm-bouton-nu{background:none;border:0;padding:0;margin:0;color:inherit;font:inherit;text-align:left;cursor:pointer}
.crm-texte-long{white-space:pre-wrap;overflow-wrap:anywhere}
.crm-retard{color:var(--bad);font-weight:700}
.crm-message:empty{display:none}
.crm-message{margin-top:12px}
.crm-badge-ia{padding:1px 8px;font-size:10.5px;letter-spacing:.04em}
.crm-attente{opacity:.55;pointer-events:none;transition:opacity .15s}

/* Avatar à initiales (P18) : le design demande 40 px en liste et 60 px en tête de fiche. */
.crm-avatar{width:40px;height:40px;font-size:13px}
.crm-avatar.grand{width:60px;height:60px;font-size:19px}


.crm-lien-fiche{display:inline-flex;align-items:center;gap:5px;min-width:0;max-width:100%;color:var(--ink2);font-weight:700;font-size:12.5px;text-decoration:none;border-radius:6px}
.crm-lien-fiche span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.crm-lien-fiche:hover{color:var(--ink);text-decoration:underline}
.crm-lien-fiche .ic{color:var(--mut)}

.crm-etiquettes{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.crm-etiquette{display:inline-block;padding:1px 8px;border-radius:6px;border:1px solid var(--line2);background:var(--champ);color:var(--ink2);font-size:11px;font-weight:700;text-decoration:none;line-height:1.6}
a.crm-etiquette:hover{border-color:var(--mut);color:var(--ink)}

.crm-dl{display:grid;grid-template-columns:minmax(96px,max-content) minmax(0,1fr);gap:8px 14px;margin:0;font-size:13.5px}
.crm-dl dt{color:var(--mut);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding-top:2px}
.crm-dl dd{margin:0;min-width:0;overflow-wrap:anywhere}
@media (max-width:420px){.crm-dl{grid-template-columns:minmax(0,1fr)}.crm-dl dt{padding-top:6px}}

.crm-details{border:1px solid var(--line);border-radius:10px;padding:0 14px;background:var(--surface)}
.crm-details > summary{cursor:pointer;padding:11px 0;font-weight:700;color:var(--ink2);list-style-position:inside}
.crm-details > summary:hover{color:var(--ink)}
.crm-details[open] > summary{border-bottom:1px solid var(--line);margin-bottom:12px}
.crm-details[open]{padding-bottom:12px}

/* ---------- Formulaires ---------- */
.crm-formulaire{gap:2px 16px}
.crm-champ{min-width:0}
.crm-champ.large{grid-column:1/-1}
.crm-champ.case{margin:16px 0 4px}
.crm-proprietaire{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;min-height:38px}
.crm-proprietaire-valeur{overflow-wrap:anywhere}
.crm-dl dd .crm-attribuer{margin-left:8px}
.crm-proprietaire .crm-attribuer,.crm-prospect-champs .crm-attribuer{margin-left:0}
.crm-modale-form .formulaire{align-items:start}
.crm-selecteur-fiche{display:flex;align-items:center;gap:8px;min-height:40px;padding:4px 6px 4px 8px;border:1px solid var(--line);border-radius:10px;background:var(--champ)}
.crm-selecteur-fiche[aria-invalid="true"]{border-color:var(--bad)}
.crm-sf-nom{flex:1;font-weight:700;font-size:13.5px}
.crm-choix-resultats{display:flex;flex-direction:column;max-height:min(360px,50vh);overflow-y:auto;border:1px solid var(--line);border-radius:10px;background:var(--card)}
.crm-choix-resultats:empty{display:none}
.crm-choix:last-child{border-bottom:0}
.crm-edition{display:flex;flex-direction:column;gap:6px}
.crm-edition-actions{justify-content:flex-end;margin-top:12px}

/* ---------- Liste des fiches ---------- */
/* Liste encadrée du design (P2, .liste + .element d'app.css) : ligne large, survol var(--survol). */
.crm-liste{margin:0}
.crm-ligne{list-style:none}
.crm-fiche-ligne{flex-wrap:wrap;gap:8px 14px}
.crm-fiche-ligne:hover{background:var(--survol)}
.crm-fiche-lien{flex:1 1 200px;min-width:0;color:var(--ink);text-decoration:none}
.crm-fiche-ligne .crm-fiche-lien{display:block}
.crm-fiche-titre{display:flex;align-items:center;gap:7px;min-width:0;flex-wrap:wrap}
.crm-fiche-nom{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.crm-fiche-sous{display:block;color:var(--ink2);font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.crm-fiche-meta{flex:none;color:var(--mut);font-size:12.5px}
.crm-fiche-ligne > .crm-fiche-meta{white-space:nowrap;max-width:240px;overflow:hidden;text-overflow:ellipsis}
.crm-fiche-actions{flex:none;display:flex;gap:8px}
/* Bouton d'appel rond du design (P9, format 36 px de la liste des fiches). */
.bouton.crm-appel-rond{width:36px;min-width:36px;height:36px;min-height:36px;flex:none;padding:0;border-radius:50%}
.bouton.crm-appel-rond .ic{width:17px;height:17px}
@media (max-width:899.98px){
  .crm-fiche-ligne > .crm-fiche-meta{display:none}
  .crm-filtres > .champ{flex:1 1 140px;min-width:0}
  .crm-recherche{max-width:none}
}

/* ---------- Fiche ---------- */
/* Les panneaux portent .carte (P1) ; ici seulement leur agencement. */
.crm-bloc{min-width:0}
.crm-fiche-entete{display:flex;flex-direction:column;gap:14px;margin:0}
.crm-entete-bandeau{display:flex;align-items:center;gap:16px;flex-wrap:wrap;min-width:0}
.crm-entete-haut{flex:1 1 220px;display:flex;align-items:center;gap:16px;min-width:0}
.crm-entete-corps{flex:1 1 220px;min-width:0}
.crm-nom{font-size:24px;font-weight:600;letter-spacing:normal;overflow-wrap:anywhere}
.crm-entete-pastilles{display:flex;align-items:center;gap:8px;margin-top:6px;flex-wrap:wrap}
.crm-entete-depuis{color:var(--mut);font-size:12.5px}
.crm-verrou{display:flex;align-items:center;flex-wrap:wrap;gap:8px;color:var(--mut);font-size:12.5px}
.crm-verrou .bouton.lien{font-size:12.5px}
.crm-actions-rapides{display:flex;gap:8px;flex-wrap:wrap}
.crm-actions-secondaires{justify-content:flex-end}
@media (max-width:560px){
  .crm-actions-rapides .bouton{flex:1 1 calc(50% - 8px)}
  .crm-actions-secondaires{justify-content:flex-start}
}

/* Grille de panneaux du design (P29). */
.crm-fiche-grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;margin-top:16px;align-items:start}
.crm-chrono-carte{margin-top:18px}
.crm-bloc-tete{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px;min-width:0}
.crm-bloc-tete .carte-titre{margin:0}
.crm-bloc-tete .carte-titre .menu-compteur{margin-left:2px;background:#222832;color:var(--ink2);letter-spacing:0}

/* Lignes clé / valeur (P22, .kv d'app.css) : ici la valeur est alignée à droite. */
.crm-kv-liste{display:flex;flex-direction:column}
.crm-kv:last-child{padding-bottom:0}
.crm-kv-val{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px 8px;text-align:right;font-size:13px}
.crm-kv.haut .crm-kv-val{display:block}
.crm-valeurs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.crm-numero{display:inline-flex;align-items:center;gap:7px;height:24px;padding:0 10px;border-radius:999px;border:1px solid rgba(34,197,94,.25);background:rgba(34,197,94,.08);color:var(--vert-clair);font-weight:700;font-size:12.5px;font-variant-numeric:tabular-nums}
.crm-numero:hover{background:rgba(34,197,94,.16)}
.crm-copier{width:28px;height:28px}
.crm-email{display:inline-flex;align-items:center;gap:6px;overflow-wrap:anywhere;color:var(--accent-clair)}
.crm-email:hover{color:var(--ink)}

/* Panneau « Suivi » : la ligne en retard reprend l'encart d'alerte du design. */
.crm-suivi{display:flex;flex-direction:column;gap:16px;min-width:0}
.crm-suivi-liste{border:0;margin:0}
.crm-suivi-el{display:flex;align-items:center;gap:12px;padding:12px 0 0;border:0;border-radius:0;background:none;text-align:left;min-width:0}
.crm-suivi-el:first-child{padding-top:0}
.crm-suivi-el:hover:not(:disabled){background:none}
.crm-suivi-el:disabled{cursor:default;opacity:1}
.crm-suivi-el .element-corps{flex:1;min-width:0;display:flex;flex-direction:column}
.crm-suivi-el .element-titre{font-weight:700;font-size:13.5px;white-space:normal;overflow:visible;text-overflow:clip}
.crm-suivi-el .element-texte{color:var(--ink2);font-size:12.5px;display:block}
.crm-suivi-icone{flex:none;display:inline-flex;color:var(--mut)}
.crm-suivi-icone .ic{width:17px;height:17px}
.crm-en-retard{padding:10px 12px;margin-top:12px;background:rgba(239,68,68,.08);border:1px solid rgba(239,68,68,.25);border-radius:12px}
.crm-en-retard:first-child{margin-top:0}
.crm-en-retard .crm-suivi-icone{color:var(--rouge-clair)}
.crm-en-retard .element-texte{color:var(--rouge-clair)}

/* Chronologie */
.crm-composeur{display:flex;flex-direction:column;gap:8px;padding-bottom:14px;margin-bottom:12px;border-bottom:1px solid var(--line-fin)}
.crm-composeur .case{margin:0;font-size:12.5px}
.crm-puces{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:14px}
.crm-puce{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 13px;border-radius:999px;border:0;background:none;color:var(--mut);font-size:12.5px;font-weight:700}
.crm-puce:hover{color:var(--ink3)}
.crm-puce.actif{background:#283040;color:var(--ink)}
.crm-puce-n{font-family:var(--titre);font-size:11px;color:var(--mut)}
.crm-puce.actif .crm-puce-n{color:var(--ink3)}
.crm-chrono-liste{list-style:none;margin:0;padding:0}
.crm-epinglees{margin-bottom:14px;padding-bottom:6px;border-bottom:1px dashed var(--line)}
.crm-chrono-jour{margin:14px 0 4px;font-size:10.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--mut)}
.crm-chrono-jour:first-child{margin-top:0}
.crm-chrono-el{display:flex;gap:12px;padding:14px 0;border-bottom:1px solid var(--line-fin);min-width:0}
.crm-chrono-el:first-child{padding-top:0}
.crm-chrono-el:last-child{padding-bottom:0;border-bottom:0}
.crm-chrono-icone{flex:none;width:34px;height:34px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#222832;color:var(--ink2)}
.crm-chrono-icone .ic{width:16px;height:16px}
.crm-chrono-appel .crm-chrono-icone{color:var(--vert-clair);background:var(--okbg)}
.crm-chrono-email .crm-chrono-icone,.crm-chrono-icone.email{color:var(--accent-clair);background:var(--infobg)}
.crm-chrono-note .crm-chrono-icone{color:var(--orange-clair);background:var(--warnbg)}
.crm-chrono-demande .crm-chrono-icone,.crm-chrono-reparation .crm-chrono-icone{color:var(--rouge-clair);background:var(--badbg)}
.crm-chrono-corps{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.crm-chrono-ligne{display:flex;justify-content:space-between;gap:10px;min-width:0}
.crm-chrono-titre{display:inline-flex;align-items:center;gap:6px;min-width:0;font-weight:700;font-size:13.5px;color:var(--ink);text-decoration:none;overflow-wrap:anywhere}
a.crm-chrono-titre:hover,button.crm-chrono-titre:hover{text-decoration:underline}
.crm-chrono-titre .ic{color:var(--mut)}
.crm-chrono-date{flex:none;color:var(--mut);font-size:12px;white-space:nowrap}
.crm-chrono-meta{color:var(--mut);font-size:12px}
.crm-chrono-texte{margin:3px 0 0;color:var(--ink2);font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere;max-height:14em;overflow:auto}
.crm-chrono-el .groupe-boutons{margin-top:2px}

/* ---------- Agenda ---------- */
/* L'écran de l'agenda ne défile pas d'un bloc : seule la zone des heures défile (design). */
.crm-agenda-ecran{display:grid;grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:0;height:100%}
.crm-agenda-tete{align-items:center;gap:12px;padding-bottom:14px;border-bottom:0;margin-bottom:0}
.crm-agenda-tete .titre-vue{font-size:22px}
.crm-agenda-tete .surtitre{margin-bottom:5px}
.crm-agenda-tete .sous-titre{margin:4px 0 0}
.crm-agenda-tete .groupe-boutons{align-items:center;gap:12px}
.crm-agenda-nav{display:flex;align-items:center;gap:6px}
.crm-agenda-barre{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-left:auto}
.crm-agenda-barre .case{margin:0;font-size:12.5px;color:var(--ink2)}
/* Boutons de navigation et champ de l'en-tête : format 34 px du design. */
.crm-nav-btn{height:34px;padding:0 13px;background:var(--card);border:1px solid var(--line);border-radius:10px;color:var(--ink);font-size:12.5px;font-weight:700}
.crm-nav-btn:hover:not(:disabled){background:var(--survol)}
.crm-nav-btn.carre{width:34px;padding:0;justify-content:center}
/* Hors de la semaine en cours, « Aujourd’hui » est le chemin du retour : il se distingue des flèches. */
.crm-nav-btn.crm-nav-retour{border-color:var(--accent);color:var(--accent-clair)}
.crm-nav-btn.carre .ic{width:15px;height:15px}
.crm-nav-btn.principal{background:var(--accent);border:0;color:#0B0E14;gap:7px}
.crm-nav-btn.principal:hover:not(:disabled){background:var(--accent-clair)}
.crm-nav-btn.principal .ic{width:15px;height:15px}
.crm-champ-agenda{height:34px;padding:0 10px;background:var(--card);border:1px solid var(--line);border-radius:10px;font-size:12.5px;color:var(--ink);outline:none;width:auto;min-width:150px}
.crm-agenda-zone{min-width:0;min-height:0;display:flex;flex-direction:column}
/* Grille : cadre, en-tête des jours figé, corps défilant. */
.crm-agenda{min-height:0;background:var(--card);border:1px solid var(--line);border-radius:14px;overflow-x:auto;overflow-y:hidden;display:grid;grid-template-rows:auto minmax(0,1fr)}
.crm-agenda-entete{display:grid;grid-template-columns:56px repeat(7,minmax(108px,1fr));min-width:812px;border-bottom:1px solid var(--line);background:#11151C}
.crm-agenda-coin{min-width:0}
.crm-agenda-jour{border-left:1px solid var(--line-fin);text-align:center;min-width:0}
.crm-agenda-jour.aujourdhui{background:rgba(141,155,168,.07)}
.crm-agenda-jour-nom{display:block;font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--mut)}
.crm-agenda-jour-num{display:inline-flex;align-items:center;justify-content:center;font-family:var(--titre);font-size:17px;font-weight:600;margin-top:2px;color:var(--ink)}
.crm-agenda-jour.aujourdhui .crm-agenda-jour-nom{color:var(--ink)}
.crm-agenda-jour.aujourdhui .crm-agenda-jour-num{color:#0B0E14;background:var(--accent);border-radius:7px;width:27px;height:27px}
.crm-agenda-jour.week-end .crm-agenda-jour-nom,.crm-agenda-jour.week-end .crm-agenda-jour-num{color:var(--ink5)}
.crm-agenda-jour-btn{position:relative;display:block;width:100%;padding:9px 8px;border:0;background:none;color:inherit;font:inherit;text-align:center;text-transform:capitalize}
button.crm-agenda-jour-btn{cursor:pointer}
.crm-agenda-jour-btn .ic{position:absolute;right:5px;top:9px;opacity:0;transition:opacity .12s;color:var(--mut)}
button.crm-agenda-jour-btn:hover,button.crm-agenda-jour-btn:focus-visible{background:rgba(141,155,168,.07)}
button.crm-agenda-jour-btn:hover .ic,button.crm-agenda-jour-btn:focus-visible .ic{opacity:1}
.crm-agenda-hors-lib{padding:8px 9px 8px 0;text-align:right;border-top:1px solid var(--line-fin);font-family:var(--titre);font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--mut)}
.crm-agenda-hors{display:flex;flex-direction:column;gap:3px;padding:4px;border-left:1px solid var(--line-fin);border-top:1px solid var(--line-fin);min-width:0}
.crm-agenda-hors .crm-rdv{position:static;width:100%}
.crm-agenda-corps{min-height:0;overflow-y:auto}
.crm-agenda-grille{display:grid;grid-template-columns:56px repeat(7,minmax(108px,1fr));min-width:812px}
/* Échelle du design : 1 h = 60 px, 12 heures = 720 px. vues-crm.js repose ces mêmes valeurs en ligne
   (HEURE_DEBUT, HEURE_FIN, PX_HEURE) : les deux doivent rester d’accord. */
.crm-agenda-heures{min-width:0;height:720px}
.crm-agenda-heure{height:60px;box-sizing:border-box;padding:0 9px 0 0;text-align:right;font-size:10.5px;font-family:var(--titre);font-variant-numeric:tabular-nums;color:var(--mut);border-top:1px solid var(--line-fin);transform:translateY(-7px)}
.crm-agenda-col{height:720px;position:relative;border-left:1px solid var(--line-fin);background-image:linear-gradient(to bottom,var(--line-fin) 1px,transparent 1px);background-size:100% 60px;cursor:copy;min-width:0}
.crm-agenda-col.aujourdhui{background-color:rgba(141,155,168,.04)}
.crm-agenda-col.week-end{background-color:rgba(0,0,0,.18)}
.crm-maintenant{position:absolute;left:0;right:0;height:2px;background:var(--rouge);z-index:3;pointer-events:none}
.crm-maintenant::before{content:"";position:absolute;left:-4px;top:-3px;width:8px;height:8px;border-radius:50%;background:var(--rouge)}
/* Bloc de rendez-vous : les quatre tons du design (à venir, mis en avant, passé, annulé). */
.crm-rdv{position:absolute;z-index:1;display:flex;flex-direction:column;align-items:flex-start;gap:1px;overflow:hidden;padding:4px 7px;border-radius:7px;border:1px solid var(--line2);border-left:3px solid var(--line2);background:var(--survol);color:var(--ink);font-size:11.5px;line-height:1.2;text-align:left;cursor:pointer;min-width:0}
.crm-rdv:hover,.crm-rdv:focus-visible{border-color:#5A6472;z-index:4}
.crm-rdv.a-moi{background:rgba(141,155,168,.16);border-color:var(--accent);border-left-color:var(--accent)}
.crm-rdv.a-moi .crm-rdv-heure,.crm-rdv.a-moi .crm-rdv-fiche,.crm-rdv.a-moi .crm-rdv-qui{color:var(--ink3)}
.crm-rdv.passe,.crm-rdv.statut-fait{background:var(--card);border-color:#2A313B;border-left-color:#2A313B;color:var(--mut)}
.crm-rdv.passe .crm-rdv-heure,.crm-rdv.statut-fait .crm-rdv-heure,.crm-rdv.passe .crm-rdv-fiche,.crm-rdv.passe .crm-rdv-qui{color:var(--ink5)}
.crm-rdv.statut-annule{background:var(--champ);border-color:var(--line);border-left-color:var(--line);color:var(--ink5)}
.crm-rdv.statut-annule .crm-rdv-titre{text-decoration:line-through}
.crm-rdv.statut-annule .crm-rdv-heure,.crm-rdv.statut-annule .crm-rdv-fiche,.crm-rdv.statut-annule .crm-rdv-qui{color:var(--ink5)}
.crm-rdv-heure{font-family:var(--titre);font-size:10px;font-variant-numeric:tabular-nums;color:var(--mut);white-space:nowrap}
.crm-rdv-titre{font-size:11.5px;font-weight:700;line-height:1.2;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.crm-rdv-fiche,.crm-rdv-qui{font-size:10px;color:var(--mut);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.crm-rdv.etroit{padding:3px 5px;border-left-width:2px}
.crm-rdv.etroit .crm-rdv-titre{white-space:normal;overflow-wrap:anywhere}
.crm-rdv.compact .crm-rdv-heure{display:inline}
.crm-rdv-source{position:absolute;top:3px;right:4px;padding:0 5px;border-radius:5px;background:rgba(141,155,168,.2);color:var(--accent-clair);font-size:9px;font-weight:800;letter-spacing:.04em}
/* Mode liste (mobile et choix explicite) : mêmes tons, en pleine largeur. */
.crm-agenda-liste{display:flex;flex-direction:column;gap:16px;min-width:0}
.crm-agenda-liste .crm-rdv{position:relative;width:100%;padding:9px 12px;font-size:13px;border-radius:10px;gap:2px}
.crm-agenda-liste .crm-rdv-heure{font-size:12px}
.crm-agenda-liste .crm-rdv-titre{font-size:13px}
.crm-agenda-liste-jour{min-width:0}
.crm-agenda-liste-jour.aujourdhui{border-color:var(--line2)}
.crm-agenda-liste-jour .crm-intertitre{font-size:10.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--mut);font-family:var(--texte);margin:0}
.crm-agenda-liste-jour.aujourdhui .crm-intertitre{color:var(--accent-clair)}
/* Un jour sans rendez-vous garde sa place et son bouton « + », mais s'efface : sa seule ligne dit tout. */
.crm-agenda-liste-jour.crm-jour-vide{padding:10px 18px;background:none;border-style:dashed}
.crm-agenda-liste-jour.crm-jour-vide .crm-bloc-tete{margin-bottom:0}
.crm-agenda-liste-rdv{display:flex;flex-direction:column;gap:6px}
/* Semaine sans rendez-vous : la phrase reste au-dessus du contenu sans le comprimer. */
.crm-agenda-zone > .vide{flex:0 0 auto;margin-bottom:12px}

/* ---------- Demandes et SAV ---------- */
.crm-demandes{list-style:none;margin:0;padding:0}
.crm-demande{display:flex;flex-direction:column;gap:8px;border-left:4px solid var(--info);padding:14px 16px}
.crm-demande.prio-basse{border-left-color:var(--neutre)}
.crm-demande.prio-haute{border-left-color:var(--warn)}
.crm-demande.prio-critique{border-left-color:var(--bad);background:linear-gradient(90deg,rgba(239,68,68,.08),var(--card) 40%)}
.crm-demande.resolue{opacity:.72;border-left-color:var(--ok)}
.crm-demande-tete{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex-wrap:wrap}
.crm-demande-titre{font-size:15px;min-width:0;overflow-wrap:anywhere;flex:1 1 240px}
.crm-demande-details{margin:0;color:var(--ink2);font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.crm-demande-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;color:var(--mut);font-size:12px}
.crm-demande-reps{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;border-radius:9px;background:var(--surface);border:1px dashed var(--line2)}
.crm-demande-actions{padding-top:8px;border-top:1px solid var(--line)}
.crm-resume-rep{margin-bottom:14px}
.crm-resume-rep:empty{display:none}
.crm-resume-rep-carte{display:flex;align-items:center;flex-wrap:wrap;gap:10px;text-decoration:none;color:var(--ink)}
.crm-resume-rep-carte > .ic:first-child{color:var(--red2)}
.crm-resume-rep-carte .pousse{margin-left:auto;color:var(--mut)}

/* ---------- Réparations ---------- */
.crm-filtre-fiche{display:flex;align-items:center;gap:6px}
.crm-filtre-fiche:empty{display:none}
.crm-reparations{list-style:none;margin:0;padding:0;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(min(100%,420px),1fr))}
.crm-reparation{display:flex;flex-direction:column;gap:8px}
.crm-reparation.statut-annule{opacity:.65}
.crm-reparation-tete{display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-width:0}
.crm-reparation-tete .pousse{min-width:0;max-width:100%}
.crm-ref{font-size:12px;font-weight:700;color:var(--ink2);padding:2px 7px;border-radius:6px;background:var(--champ);border:1px solid var(--line)}
.crm-reparation-titre{font-size:16px;overflow-wrap:anywhere}
.crm-note-courte{margin:0;padding:7px 10px;border-radius:8px;background:var(--surface);color:var(--ink2);font-size:12.5px;white-space:pre-wrap;overflow-wrap:anywhere}
.crm-progression{list-style:none;margin:4px 0;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0}
.crm-etape{position:relative;display:flex;flex-direction:column;align-items:center;gap:5px;text-align:center;min-width:0}
.crm-etape::before{content:"";position:absolute;top:6px;left:-50%;right:50%;height:2px;background:var(--line2)}
.crm-etape:first-child::before{display:none}
.crm-etape.faite::before,.crm-etape.actuelle::before{background:var(--red)}
.crm-etape-point{position:relative;z-index:1;width:14px;height:14px;border-radius:50%;background:var(--card);border:2px solid var(--line2)}
.crm-etape.faite .crm-etape-point{background:var(--red);border-color:var(--red)}
.crm-etape.actuelle .crm-etape-point{background:var(--card);border-color:var(--red2);box-shadow:0 0 0 4px rgba(141,155,168,.25)}
.crm-etape-lib{font-size:10.5px;font-weight:700;color:var(--mut);line-height:1.2;overflow-wrap:anywhere}
.crm-etape.faite .crm-etape-lib{color:var(--ink2)}
.crm-etape.actuelle .crm-etape-lib{color:var(--ink)}
.crm-reparation.statut-rendu .crm-etape.actuelle .crm-etape-point{background:var(--ok);border-color:var(--ok);box-shadow:none}
.crm-progression-annulee{margin:4px 0}
@media (max-width:420px){.crm-etape-lib{font-size:9.5px}}

/* ---------- Prospects ---------- */
.crm-prospect{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 12px;padding:10px 14px 10px 0}
.crm-prospect:hover{background:var(--survol)}
.crm-prospect .crm-fiche-lien{grid-row:1 / span 2;padding:0 0 0 14px}
.crm-prospect .element-corps{display:flex;flex-direction:column;gap:1px}
.crm-prospect-champs{display:flex;gap:6px;flex-wrap:wrap;align-items:center;justify-content:flex-end}
.crm-prospect-actions{justify-content:flex-end}
@media (max-width:560px){
  .crm-prospect{grid-template-columns:minmax(0,1fr)}
  .crm-prospect .crm-fiche-lien{grid-row:auto}
  .crm-prospect-champs,.crm-prospect-actions{justify-content:flex-start;padding-left:14px}
}

/* ---------- Opportunités ---------- */
.crm-totaux{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}
.crm-totaux:empty{display:none}
.crm-total{display:flex;flex-direction:column;gap:2px;padding:12px 16px;border-radius:var(--rayon);border:1px solid var(--line);background:var(--card);min-width:0}
.crm-total .etiquette{margin:0}
.crm-total .chiffre-cle{font-size:24px;overflow-wrap:anywhere}
.crm-total.ok .chiffre-cle{color:var(--ok)}
@media (max-width:560px){.crm-totaux{grid-template-columns:minmax(0,1fr)}.crm-total{flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:4px 10px}.crm-total .chiffre-cle{font-size:20px}}
.crm-kanban-cadre{overflow-x:auto;padding-bottom:8px;margin:0 -4px;scroll-snap-type:x proximity}
.crm-kanban{display:grid;grid-template-columns:repeat(6,minmax(200px,1fr));gap:10px;padding:0 4px;min-width:min-content}
.crm-kanban-col{display:flex;flex-direction:column;min-width:0;border-radius:var(--rayon);background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--info);scroll-snap-align:start;transition:border-color .12s,background .12s}
.crm-kanban-col.etape-proposition,.crm-kanban-col.etape-negociation{border-top-color:var(--warn)}
.crm-kanban-col.etape-gagne{border-top-color:var(--ok)}
.crm-kanban-col.etape-perdu{border-top-color:var(--neutre)}
.crm-kanban-col.survol{border-color:var(--red2);background:var(--survol)}
.crm-kanban-tete{padding:10px 12px 8px;border-bottom:1px solid var(--line)}
.crm-kanban-titre{font-size:13.5px;font-family:var(--titre)}
.crm-kanban-total{margin-top:2px;color:var(--ink2);font-size:13px;font-weight:600}
.crm-kanban-cartes{display:flex;flex-direction:column;gap:8px;padding:10px;min-height:120px;flex:1}
.crm-kanban-vide{margin:auto 0;padding:16px 6px;text-align:center;color:var(--ink5);font-size:12px;border:1px dashed var(--line2);border-radius:10px}
.crm-carte-opp{display:flex;flex-direction:column;gap:5px;padding:10px 11px;border-radius:10px;border:1px solid var(--line2);background:var(--card);cursor:grab;min-width:0;transition:border-color .12s,box-shadow .12s,opacity .12s}
.crm-carte-opp:hover,.crm-carte-opp:focus-visible{border-color:var(--line2);box-shadow:0 10px 24px -16px rgba(0,0,0,.9)}
.crm-carte-opp:focus-visible{outline:2px solid var(--red2);outline-offset:1px}
.crm-carte-opp.glisse{opacity:.45;cursor:grabbing}
.crm-carte-opp-titre{font-weight:700;font-size:13.5px;overflow-wrap:anywhere}
.crm-carte-opp-chiffres .chiffre{font-size:14px}
.crm-carte-opp-pied{min-height:26px}
.crm-carte-opp-deplacer{display:flex;align-items:center;justify-content:space-between;gap:4px;margin-top:2px;padding-top:6px;border-top:1px solid var(--line)}
.crm-carte-opp-deplacer > span:empty{width:30px}
@media (hover:hover) and (pointer:fine) and (min-width:900px){
  .crm-carte-opp-deplacer{opacity:0;transition:opacity .12s}
  .crm-carte-opp:hover .crm-carte-opp-deplacer,.crm-carte-opp:focus-within .crm-carte-opp-deplacer{opacity:1}
}
@media (max-width:899.98px){
  .crm-kanban{grid-template-columns:repeat(6,minmax(78vw,1fr))}
  .crm-carte-opp{cursor:default}
}

/* ---------- Relances ---------- */
.crm-relances-groupe .crm-intertitre .pastille{font-size:11px;padding:1px 8px}
.crm-relances-groupe.retard .crm-intertitre{color:var(--bad)}
.crm-relance{align-items:flex-start;flex-wrap:wrap}
.crm-relance .element-corps{display:flex;flex-direction:column;gap:2px;flex:1 1 240px}
.crm-relance .crm-chrono-icone{margin-top:2px}
.crm-relance-actions{flex:none;justify-content:flex-end}
.crm-relance .element-titre{font-size:14px}
@media (max-width:560px){.crm-relance-actions{width:100%;justify-content:flex-start;padding-left:43px}}

/* ---------- Script de vente ---------- */
.crm-script{display:flex;flex-direction:column;gap:10px;margin-top:6px}
.crm-script:empty{display:none}
.crm-script-texte{padding:14px 16px;border-radius:10px;background:var(--champ);border:1px solid var(--line);white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.65;max-height:50vh;overflow:auto}

/* ---------- Impression ---------- */
@media print{
  .crm-actions-rapides,.crm-actions-secondaires,.crm-composeur,.crm-puces,.crm-filtres,.crm-demande-actions,.crm-carte-opp-deplacer{display:none!important}
  .crm-kanban-cadre{overflow:visible}
  /* L'agenda est un écran à défilement interne : à l'impression, il se déplie. */
  .crm-agenda-ecran{display:block;height:auto}
  .crm-agenda{overflow:visible;display:block}
  .crm-agenda-corps{overflow:visible}
}
