/* Radar Patrimonial — thème « SaaS financier premium » :
   base blanche, bleu d'action unique, couleurs réservées aux statuts métier. */

:root {
  --bg: #f6f8fb;              /* fond général, gris-bleu très clair */
  --surface: #ffffff;
  --ink: #101b31;             /* bleu nuit */
  --ink-soft: #45536b;
  --muted: #8b95a7;
  --border: #e4e8f0;
  --border-soft: #eef1f6;

  --accent: #2160e0;          /* bleu d'action */
  --accent-deep: #1a4dba;
  --accent-soft: #eef4fe;
  --accent-line: #d4e2fb;

  --or: #b08d3e;              /* wordmark uniquement */

  --vert: #12805c;
  --vert-soft: #e9f6f0;
  --orange: #b25e09;
  --orange-soft: #fdf3e5;
  --rouge: #c02942;
  --rouge-soft: #fdeef0;
  --gris-soft: #f1f3f7;
  --warn: #b25e09;
  --paper: #ffffff;

  --r: 12px;                  /* rayon des cartes */
  --r-s: 9px;                 /* rayon boutons / champs */
  --ombre: 0 1px 2px rgba(16, 24, 40, 0.05);
  --ombre-haute: 0 8px 28px rgba(16, 27, 49, 0.12);
}

* { box-sizing: border-box; }

html, body {
  margin: 0;
  padding: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: "Inter", -apple-system, "Segoe UI", sans-serif;
  font-size: 14px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

.hidden { display: none !important; }
.mono { font-variant-numeric: tabular-nums; letter-spacing: 0.02em; }

/* ---------- Boutons & champs ---------- */

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border: 1px solid transparent;
  border-radius: var(--r-s);
  padding: 8px 14px;
  font: inherit;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.12s, border-color 0.12s, color 0.12s;
  text-decoration: none;
  color: var(--ink);
  background: var(--surface);
}
.btn:disabled { opacity: 0.55; cursor: default; }

.btn-primary {
  background: var(--accent);
  color: #fff;
}
.btn-primary:hover:not(:disabled) { background: var(--accent-deep); }

.btn-secondaire {
  background: var(--accent-soft);
  color: var(--accent);
  border-color: var(--accent-line);
}
.btn-secondaire:hover { background: #e2edfd; }

.btn-ghost {
  background: var(--surface);
  border-color: var(--border);
  color: var(--ink-soft);
}
.btn-ghost:hover:not(:disabled) { border-color: #c9d2e0; color: var(--ink); }

.btn-block { width: 100%; }

/* Bouton Appeler compact (tableaux) */
.btn-appeler {
  background: var(--accent);
  color: #fff;
  padding: 6px 13px;
  font-size: 12.5px;
  border-radius: 8px;
}
.btn-appeler:hover { background: var(--accent-deep); }
.btn-appeler svg { width: 13px; height: 13px; }

.btn-trouver {
  background: var(--surface);
  border-color: var(--accent-line);
  color: var(--accent);
  padding: 6px 11px;
  font-size: 12.5px;
  border-radius: 8px;
}
.btn-trouver:hover:not(:disabled) { background: var(--accent-soft); }

.select,
select {
  font: inherit;
  font-size: 13px;
  color: var(--ink);
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-s);
  padding: 8px 30px 8px 12px;
  cursor: pointer;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%238b95a7' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 11px center;
}
.select:focus, select:focus { outline: none; border-color: var(--accent-line); box-shadow: 0 0 0 3px var(--accent-soft); }

input[type="text"], input[type="search"], input[type="email"],
input[type="password"], input[type="tel"], input[type="date"], textarea {
  font: inherit;
  font-size: 13.5px;
  color: var(--ink);
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-s);
  padding: 8px 12px;
}
input:focus, textarea:focus { outline: none; border-color: var(--accent-line); box-shadow: 0 0 0 3px var(--accent-soft); }
input::placeholder, textarea::placeholder { color: var(--muted); }

/* ---------- Marque ---------- */

.wordmark { display: flex; flex-direction: column; line-height: 1.05; }
.wordmark-radar { font-size: 24px; font-weight: 800; letter-spacing: -0.01em; color: var(--ink); }
.wordmark-patrimonial {
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.34em;
  text-transform: uppercase;
  color: var(--or);
  margin-top: 3px;
}
.wordmark-small .wordmark-radar { font-size: 20px; }
.wordmark-small .wordmark-patrimonial { font-size: 9px; letter-spacing: 0.3em; }

.brand-x { color: var(--muted); font-size: 15px; }
.cobrand { display: flex; flex-direction: column; line-height: 1.1; }
.cobrand-groupe { font-size: 8.5px; letter-spacing: 0.28em; color: var(--muted); font-weight: 600; }
.cobrand-premium { font-size: 14px; font-weight: 700; color: var(--ink); }
.cobrand-side { flex-direction: row; gap: 5px; align-items: baseline; margin-top: 10px; }
.cobrand-side .cobrand-groupe { font-size: 8px; }
.cobrand-side .cobrand-premium { font-size: 12px; }

/* ---------- Connexion ---------- */

.login-screen {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background:
    radial-gradient(1100px 500px at 85% -10%, var(--accent-soft), transparent 60%),
    var(--bg);
}
.login-card {
  width: 380px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 16px;
  box-shadow: var(--ombre-haute);
  padding: 42px 38px 30px;
  text-align: center;
}
.login-card .wordmark { align-items: center; }
.login-cobrand { display: flex; justify-content: center; align-items: center; gap: 10px; margin-top: 14px; }
.login-tagline { color: var(--ink-soft); font-size: 13px; margin: 18px 0 24px; }
.login-card form { display: flex; flex-direction: column; gap: 10px; }
.login-card input { padding: 11px 13px; }
.login-card .btn { padding: 11px; margin-top: 4px; }
.login-error { color: var(--rouge); font-size: 12.5px; min-height: 16px; margin: 6px 0 0; }
.login-foot { color: var(--muted); font-size: 11px; margin-top: 26px; letter-spacing: 0.06em; }

/* ---------- Gabarit application ---------- */

.app { display: flex; min-height: 100vh; }

.sidenav {
  width: 228px;
  flex-shrink: 0;
  background: var(--surface);
  border-right: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  padding: 22px 14px 16px;
  position: sticky;
  top: 0;
  height: 100vh;
}
.sidenav-logo { padding: 0 10px 22px; }

.sidenav-nav { display: flex; flex-direction: column; gap: 2px; }

.nav-btn {
  display: flex;
  align-items: center;
  gap: 11px;
  width: 100%;
  border: none;
  background: none;
  font: inherit;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--ink-soft);
  padding: 10px 12px;
  border-radius: 10px;
  cursor: pointer;
  position: relative;
  text-align: left;
  transition: background 0.12s, color 0.12s;
}
.nav-btn svg { width: 18px; height: 18px; flex-shrink: 0; opacity: 0.85; }
.nav-btn:hover { background: var(--gris-soft); color: var(--ink); }
.nav-btn.active { background: var(--accent-soft); color: var(--accent); }
.nav-btn.active::before {
  content: "";
  position: absolute;
  left: -14px;
  top: 8px;
  bottom: 8px;
  width: 3px;
  border-radius: 0 3px 3px 0;
  background: var(--accent);
}

.sidenav-bas { margin-top: auto; display: flex; flex-direction: column; gap: 2px; }
.sidenav-bas .btn-primary { margin-bottom: 12px; }
.nav-sub { font-weight: 500; font-size: 13px; padding: 8px 12px; }
.nav-sub svg { width: 16px; height: 16px; }

.credits-card {
  margin-top: 12px;
  background: var(--accent-soft);
  border: 1px solid var(--accent-line);
  border-radius: 10px;
  padding: 10px 13px;
}
.credits-nom { font-size: 12.5px; font-weight: 700; color: var(--ink); }
.credits-detail { font-size: 12px; color: var(--accent); font-weight: 600; margin-top: 1px; }
.credits-tel-vide { color: var(--rouge); }

.contenu {
  flex: 1;
  min-width: 0;
  padding: 28px 34px 50px;
  max-width: 1500px;
}

/* ---------- Têtes de page ---------- */

.page-tete {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 20px;
}
.page-titre { font-size: 27px; font-weight: 800; letter-spacing: -0.02em; margin: 0 0 4px; }
.page-sous { color: var(--ink-soft); font-size: 13.5px; margin: 0; }
.page-sous b { color: var(--ink); }
.page-actions { display: flex; align-items: center; gap: 10px; }

.run-banner {
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--accent-soft);
  border: 1px solid var(--accent-line);
  color: var(--accent-deep);
  border-radius: 10px;
  padding: 9px 14px;
  font-size: 13px;
  font-weight: 600;
  margin-bottom: 16px;
}
.run-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--accent);
  animation: pulse 1.2s ease-in-out infinite;
}
@keyframes pulse { 50% { opacity: 0.3; } }

/* ---------- Cartes & tableaux ---------- */

.table-carte {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r);
  box-shadow: var(--ombre);
  overflow: hidden;
  overflow-x: auto;
}

table { width: 100%; border-collapse: collapse; }
thead th {
  text-align: left;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--muted);
  padding: 12px 14px;
  border-bottom: 1px solid var(--border);
  background: #fbfcfe;
  white-space: nowrap;
}
th.sortable { cursor: pointer; user-select: none; }
th.sortable:hover { color: var(--ink-soft); }
th.sortable::after { content: "\00a0" attr(data-dir); color: var(--accent); }

tbody td {
  padding: 12px 14px;
  border-bottom: 1px solid var(--border-soft);
  vertical-align: middle;
  font-size: 13.5px;
}
tbody tr:last-child td { border-bottom: none; }
tbody tr { cursor: pointer; transition: background 0.1s; }
tbody tr:hover { background: #fafbfd; }

.cell-main { font-weight: 600; }
.cell-sub { display: block; color: var(--muted); font-size: 12px; margin-top: 1px; font-weight: 400; }
.col-num { font-weight: 600; white-space: nowrap; font-variant-numeric: tabular-nums; }
.col-score { font-weight: 700; font-variant-numeric: tabular-nums; width: 52px; }
.col-action { white-space: nowrap; text-align: right; }
.col-pos { width: 34px; color: var(--muted); font-weight: 600; text-align: center; }

.avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px; height: 34px;
  border-radius: 50%;
  background: var(--accent-soft);
  color: var(--accent);
  font-size: 12px;
  font-weight: 700;
  flex-shrink: 0;
}
.avatar-sm { width: 28px; height: 28px; font-size: 10.5px; }

.contact-cell { display: flex; align-items: center; gap: 11px; }
.contact-cell b { font-weight: 600; }

.empty-state { padding: 46px; text-align: center; color: var(--ink-soft); }
.empty-title { font-weight: 700; font-size: 15px; color: var(--ink); margin: 0 0 4px; }

/* Chips de signal — teintes légères, fonctionnelles */
.sig-chip {
  display: inline-block;
  font-size: 11px;
  font-weight: 600;
  padding: 3px 9px;
  border-radius: 999px;
  white-space: nowrap;
}
.sig-cession { background: var(--vert-soft); color: var(--vert); }
.sig-holding { background: #eef0fb; color: #4a52b8; }
.sig-d55 { background: var(--orange-soft); color: var(--orange); }
.sig-amf { background: #f3edfb; color: #7440b3; }
.sig-cadre { background: #f3edfb; color: #7440b3; }
.sig-dissolution { background: var(--orange-soft); color: var(--orange); }
.sig-rsu { background: #ebeffc; color: #3653c7; }
.sig-manuel { background: var(--gris-soft); color: var(--ink-soft); }

/* Sélecteur de statut, en badge discret */
.statut-select {
  font-size: 12px;
  font-weight: 600;
  padding: 4px 24px 4px 10px;
  border-radius: 999px;
  border: 1px solid var(--border);
  background-color: var(--gris-soft);
  color: var(--ink-soft);
  background-position: right 8px center;
}
/* Statuts : la couleur dit l'étape, franchement. */
.statut-nouveau { background-color: #dce8fd; color: #1a4dba; border-color: #b9d0f8; }
.statut-a_appeler { background-color: var(--accent); color: #fff; border-color: var(--accent); }
.statut-a_appeler { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23ffffff' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E"); }
.statut-a_rappeler { background-color: #fbe3bf; color: #8a4508; border-color: #f0cf9a; }
.statut-nrp { background-color: #fde0e4; color: #a01f36; border-color: #f5c3cb; }
.statut-r1_fixe, .statut-r1_fait, .statut-r2 {
  background-color: #d3f0e2; color: #0d6b4b; border-color: #b3e2cc;
}
.statut-signe { background-color: var(--vert); color: #fff; border-color: var(--vert); }
.statut-signe { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23ffffff' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E"); }
.statut-mauvais_numero, .statut-hors_cible, .statut-ne_pas_contacter, .statut-perdu {
  background-color: #e6e9ef; color: #5b6578; border-color: #d5dae3;
}

.rappel-flag { font-size: 11px; color: var(--orange); font-weight: 600; margin-top: 4px; }

/* Lead Center : largeur fixe, tout tient dans l'écran — les libellés longs
   se coupent en pointillés (la fiche a le texte complet). */
.leads-table { table-layout: fixed; }
.leads-table .col-score { width: 72px; }
.leads-table .col-num { width: 92px; }
.leads-table .col-lieu { width: 132px; }
.leads-table .col-date { width: 104px; }
.leads-table .col-statut { width: 152px; }
.leads-table .col-action { width: 136px; }
.leads-table td { overflow: hidden; }
.leads-table .cell-main,
.leads-table .cell-sub { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.leads-table .statut-select { max-width: 100%; }
.leads-table .btn-appeler { padding: 6px 11px; }

/* ---------- Ma journée ---------- */

.date-select { min-width: 210px; text-transform: capitalize; }

.progres-carte {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r);
  box-shadow: var(--ombre);
  padding: 15px 20px 17px;
  margin-bottom: 16px;
}
.progres-ligne {
  display: flex;
  justify-content: space-between;
  font-size: 13px;
  color: var(--ink-soft);
  margin-bottom: 9px;
}
.progres-ligne b { color: var(--ink); font-size: 14px; }
.progres-total { color: var(--muted); }
.journee-barre {
  height: 7px;
  background: var(--border-soft);
  border-radius: 999px;
  overflow: hidden;
}
.journee-barre-fill {
  height: 100%;
  width: 0;
  background: var(--accent);
  border-radius: 999px;
  transition: width 0.4s ease;
}

.jtoolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 12px;
  flex-wrap: wrap;
}
.jtabs { display: flex; gap: 4px; }
.jtab {
  border: none;
  background: none;
  font: inherit;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--ink-soft);
  padding: 8px 13px;
  border-radius: 9px;
  cursor: pointer;
}
.jtab b {
  font-size: 11.5px;
  background: var(--gris-soft);
  border-radius: 999px;
  padding: 1px 8px;
  margin-left: 3px;
  color: var(--ink-soft);
}
.jtab:hover { color: var(--ink); }
.jtab.active { background: var(--accent-soft); color: var(--accent); }
.jtab.active b { background: #dbe8fc; color: var(--accent); }
.jtools { display: flex; gap: 9px; }

.jtable .col-action { min-width: 190px; }
.jrow.traitee { opacity: 0.55; }
.jrow.traitee .col-pos { color: var(--vert); }
.jraison { font-size: 11.5px; color: var(--ink-soft); font-weight: 500; margin-top: 5px; line-height: 1.4; }
.jraison-rappel { color: var(--orange); font-weight: 600; }
.jraison-neutre { color: var(--muted); }
.jfait { color: var(--vert); font-weight: 600; font-size: 12.5px; }
.jpasser {
  border: none;
  background: none;
  font: inherit;
  font-size: 12px;
  color: var(--muted);
  cursor: pointer;
  margin-left: 9px;
  padding: 5px 7px;
  border-radius: 7px;
}
.jpasser:hover { background: var(--gris-soft); color: var(--ink-soft); }

.journee-fin {
  margin-top: 18px;
  background: var(--vert-soft);
  border: 1px solid #cdeadd;
  border-radius: var(--r);
  padding: 18px 22px;
  color: var(--vert);
}
.journee-fin-titre { font-weight: 800; font-size: 15px; margin: 0 0 3px; }
.journee-fin p { margin: 0; }

/* ---------- Lead Center ---------- */

.filtres-carte {
  display: flex;
  align-items: center;
  gap: 9px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r);
  box-shadow: var(--ombre);
  padding: 11px 13px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}
.champ-recherche {
  position: relative;
  flex: 1;
  min-width: 220px;
}
.champ-recherche svg {
  position: absolute;
  left: 11px;
  top: 50%;
  transform: translateY(-50%);
  width: 15px; height: 15px;
  color: var(--muted);
  pointer-events: none;
}
.champ-recherche input { width: 100%; padding-left: 34px; }
.filtres-spacer { flex: 0 0 2px; align-self: stretch; background: var(--border-soft); margin: 2px 4px; }

/* ---------- CRM ---------- */

.champ-recherche-crm { width: 320px; flex: none; }

.crm-colonnes {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 18px;
}
@media (max-width: 1250px) { .crm-colonnes { grid-template-columns: repeat(3, 1fr); } }

.crm-col {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r);
  box-shadow: var(--ombre);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-top: 3px solid var(--border);
}
.crm-bleu { border-top-color: var(--accent); }
.crm-orange { border-top-color: #e5a13e; }
.crm-rouge { border-top-color: #e07979; }
.crm-vert { border-top-color: #3fa97e; }
.crm-gris { border-top-color: #c2c9d6; }

.crm-col-tete {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 13px 15px 10px;
  font-size: 13.5px;
  font-weight: 700;
}
.crm-col-tete b {
  font-size: 12px;
  background: var(--gris-soft);
  color: var(--ink-soft);
  border-radius: 999px;
  padding: 1px 9px;
}
.crm-col-liste {
  padding: 2px 8px;
  max-height: 380px;
  overflow-y: auto;
  flex: 1;
}
.crm-carte {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 8px;
  border-radius: 9px;
  cursor: pointer;
}
.crm-carte:hover { background: #fafbfd; }
.crm-carte-corps { min-width: 0; flex: 1; }
.crm-carte b { font-size: 13px; font-weight: 600; display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.crm-carte .cell-sub { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.crm-meta {
  font-size: 11px;
  font-weight: 600;
  color: var(--ink-soft);
  background: var(--gris-soft);
  border-radius: 999px;
  padding: 2px 8px;
  white-space: nowrap;
  flex-shrink: 0;
}
.crm-meta-due { background: var(--orange-soft); color: var(--orange); }
.crm-meta-r1_fixe, .crm-meta-r1_fait, .crm-meta-r2 { background: var(--vert-soft); color: var(--vert); }
.crm-meta-signe { background: var(--vert); color: #fff; }
.crm-vide { color: var(--muted); font-size: 12.5px; text-align: center; padding: 18px 0; }

.crm-col-pied {
  border: none;
  border-top: 1px solid var(--border-soft);
  background: none;
  font: inherit;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--accent);
  padding: 10px;
  cursor: pointer;
}
.crm-col-pied:hover { background: var(--accent-soft); }

.activite-carte {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r);
  box-shadow: var(--ombre);
  padding: 4px 0 6px;
}
.activite-tete { padding: 14px 20px 6px; }
.activite-tete h2 { font-size: 15px; font-weight: 700; margin: 0; }
.activite-ligne {
  display: grid;
  grid-template-columns: 28px minmax(120px, 180px) minmax(90px, 160px) 150px 1fr 90px;
  gap: 12px;
  align-items: center;
  padding: 9px 20px;
  border-top: 1px solid var(--border-soft);
  font-size: 13px;
  cursor: pointer;
}
.activite-ligne:hover { background: #fafbfd; }
.activite-ligne b { font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.activite-societe { color: var(--muted); font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.activite-action { font-weight: 600; color: var(--ink-soft); font-size: 12.5px; white-space: nowrap; }
.activite-notes { color: var(--ink-soft); font-size: 12.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.activite-quand { color: var(--muted); font-size: 12px; text-align: right; white-space: nowrap; }

/* ---------- Modales ---------- */

.modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(16, 27, 49, 0.45);
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 6vh 20px;
  z-index: 60;
  overflow-y: auto;
}
.modal {
  background: var(--surface);
  border-radius: 16px;
  box-shadow: var(--ombre-haute);
  width: 560px;
  max-width: 100%;
  padding: 28px 30px;
  position: relative;
}
.modal-close {
  position: absolute;
  right: 16px;
  top: 14px;
  border: none;
  background: none;
  font-size: 22px;
  color: var(--muted);
  cursor: pointer;
  line-height: 1;
  padding: 4px 8px;
  border-radius: 8px;
}
.modal-close:hover { background: var(--gris-soft); color: var(--ink); }
.modal-title { font-size: 19px; font-weight: 800; margin: 0 0 5px; }
.modal-sub { color: var(--ink-soft); font-size: 13px; margin: 0 0 18px; }
.modal-section { margin-bottom: 18px; }
.modal-section h3 { font-size: 13px; font-weight: 700; margin: 0 0 9px; }
.modal-note { color: var(--muted); font-size: 12px; margin: 7px 0 0; }
.modal-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 22px; }

.modal-large { width: 760px; }

/* Import CSV / Excel */
.import-zone {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  padding: 26px 20px;
  border: 1.5px dashed var(--accent-line);
  border-radius: var(--r);
  background: #fbfcfe;
  text-align: center;
}
.import-zone .modal-note { max-width: 520px; }
.import-resume { font-size: 13px; color: var(--ink-soft); margin: 0 0 10px; }
.import-alerte { color: var(--rouge); font-weight: 600; }
.import-tableau-wrap {
  max-height: 46vh;
  overflow-y: auto;
  border: 1px solid var(--border);
  border-radius: 10px;
}
.import-tableau { width: 100%; border-collapse: collapse; }
.import-tableau th { position: sticky; top: 0; z-index: 1; }
.import-tableau td { padding: 8px 12px; font-size: 13px; vertical-align: top; }
.import-tableau tbody tr { cursor: default; }
.import-col { font-weight: 600; width: 32%; word-break: break-word; }
.import-ex { color: var(--muted); font-size: 12px; width: 38%; line-height: 1.5; }
.import-cible { width: 100%; }
.import-bilan { display: flex; flex-wrap: wrap; gap: 12px; }
.bilan-chiffre {
  flex: 1;
  min-width: 140px;
  background: #fbfcfe;
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 14px 16px;
}
.bilan-chiffre b { display: block; font-size: 24px; font-weight: 800; letter-spacing: -0.02em; }
.bilan-chiffre span { font-size: 12.5px; color: var(--ink-soft); }
.import-bilan .modal-note { width: 100%; margin-top: 4px; }

.check-grid { display: grid; grid-template-columns: 1fr; gap: 7px; }
.check-grid label {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 13px;
  color: var(--ink-soft);
  cursor: pointer;
  padding: 4px 2px;
}
.check-grid input { accent-color: var(--accent); width: 15px; height: 15px; }

.field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.field-grid label,
.champ-bloc {
  display: flex;
  flex-direction: column;
  gap: 5px;
  font-size: 12px;
  font-weight: 600;
  color: var(--ink-soft);
}
.champ-bloc input, .champ-bloc textarea { width: 100%; font-weight: 400; }
.field-grid input { font-weight: 400; }

.licences-liste { display: flex; flex-direction: column; gap: 5px; }
.licence-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  background: var(--gris-soft);
  border-radius: 9px;
  font-size: 13px;
}
.licence-email { color: var(--muted); font-size: 12px; flex: 1; }
.licence-role {
  font-size: 10.5px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 700;
  color: var(--accent);
  background: var(--accent-soft);
  padding: 2px 8px;
  border-radius: 999px;
}
.licence-form { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.licence-form .btn { grid-column: span 2; }

/* ---------- Fiche (panneau latéral) ---------- */

.drawer-overlay {
  position: fixed;
  inset: 0;
  background: rgba(16, 27, 49, 0.45);
  z-index: 70;
}
.drawer {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: 660px;
  max-width: 94vw;
  background: var(--surface);
  z-index: 71;
  overflow-y: auto;
  box-shadow: -18px 0 50px rgba(16, 27, 49, 0.18);
}
.drawer-inner { padding: 30px 34px 46px; }
.drawer-close {
  position: absolute;
  right: 18px;
  top: 16px;
  border: none;
  background: var(--gris-soft);
  font-size: 19px;
  color: var(--ink-soft);
  cursor: pointer;
  line-height: 1;
  padding: 6px 11px;
  border-radius: 9px;
}
.drawer-close:hover { background: var(--border); color: var(--ink); }

.drawer-kicker {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 8px;
  padding-right: 50px;
}
.drawer-score {
  margin-left: auto;
  background: var(--vert-soft);
  color: var(--vert);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: none;
  padding: 4px 12px;
  border-radius: 999px;
}
.drawer-title { font-size: 24px; font-weight: 800; letter-spacing: -0.015em; margin: 0 0 3px; }
.drawer-subtitle { color: var(--ink-soft); font-size: 14px; margin-bottom: 16px; }
.dernier-appel {
  margin: -6px 0 16px;
  padding: 9px 13px;
  background: var(--orange-soft);
  border: 1px solid #f3ddba;
  border-radius: 9px;
  font-size: 12.5px;
  color: var(--ink);
  line-height: 1.5;
}
.dernier-appel b { color: var(--orange); }

.fiche-tuiles {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 10px;
  margin-bottom: 16px;
}
.tuile {
  background: #fbfcfe;
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 11px 13px;
}
.tuile b { display: block; font-size: 15.5px; font-weight: 700; letter-spacing: -0.01em; }
.tuile span { font-size: 11.5px; color: var(--muted); }

.enbref {
  background: var(--accent-soft);
  border: 1px solid var(--accent-line);
  border-radius: 10px;
  padding: 13px 16px;
  margin-bottom: 16px;
}
.enbref-titre {
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 5px;
}
.drawer-resume {
  margin: 0;
  font-size: 13.5px;
  line-height: 1.6;
  color: var(--ink);
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
  cursor: pointer;
}
.drawer-resume.deplie { -webkit-line-clamp: unset; }

.drawer-section { margin-bottom: 18px; }
.drawer-section h3 { font-size: 13.5px; font-weight: 700; margin: 0 0 8px; }

.section-appel {
  background: #fbfcfe;
  border: 1px solid var(--border);
  border-radius: var(--r);
  padding: 16px 18px;
}
.contact-titre {
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 8px;
}
.tel-row { display: flex; gap: 9px; }
.tel-input { flex: 1; font-size: 15px; font-weight: 600; font-variant-numeric: tabular-nums; }
.btn-appeler-fiche { padding: 8px 22px; }
.tel-source-input { width: 100%; margin-top: 7px; font-size: 12px; color: var(--muted); }
.tel-finder { margin-top: 10px; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.tel-finder-note { font-size: 12px; color: var(--muted); }
.tel-finder-statut { width: 100%; font-size: 12.5px; color: var(--accent-deep); font-weight: 600; }

/* Résultat de l'appel : familles puis sous-options */
.resultat-bloc { margin-top: 16px; }
.resultat-titre { font-size: 13px; font-weight: 700; margin-bottom: 9px; }
.cat-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.cat-btn {
  border: 1px solid var(--border);
  background: var(--surface);
  border-radius: 10px;
  font: inherit;
  font-size: 12.5px;
  font-weight: 600;
  padding: 10px 6px;
  cursor: pointer;
  color: var(--ink-soft);
  transition: border-color 0.12s, background 0.12s, color 0.12s;
}
.cat-btn:hover { border-color: #c9d2e0; }
.cat-gris.ouvert { background: var(--gris-soft); border-color: #c2c9d6; color: var(--ink); }
.cat-orange.ouvert { background: var(--orange-soft); border-color: #f3ddba; color: var(--orange); }
.cat-vert.ouvert { background: var(--vert-soft); border-color: #cdeadd; color: var(--vert); }
.cat-rouge.ouvert { background: var(--rouge-soft); border-color: #f5d0d7; color: var(--rouge); }

.cat-panel {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 10px;
  padding: 12px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 10px;
}
.issue-btn {
  border: 1px solid var(--border);
  background: var(--surface);
  border-radius: 999px;
  font: inherit;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--ink-soft);
  padding: 7px 13px;
  cursor: pointer;
}
.issue-btn:hover:not(:disabled) { border-color: var(--accent-line); background: var(--accent-soft); color: var(--accent); }
.issue-btn:disabled { opacity: 0.5; cursor: default; }

.issue-notes {
  width: 100%;
  min-height: 56px;
  margin-top: 11px;
  resize: vertical;
}
.issue-rappel {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 9px;
  font-size: 12.5px;
  color: var(--ink-soft);
}
.issue-rappel label { display: flex; align-items: center; gap: 8px; font-weight: 600; }
.issue-rappel input { padding: 6px 9px; font-size: 12.5px; }
.issue-hint { color: var(--muted); font-size: 11.5px; }

/* Points de vigilance */
.vigilance {
  margin-top: 18px;
  margin-bottom: 18px;
  padding: 14px 18px;
  background: var(--orange-soft);
  border: 1px solid #f3ddba;
  border-radius: 10px;
}
.vigilance-titre {
  font-size: 10.5px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--warn);
  margin-bottom: 10px;
}
.vigilance ul { list-style: none; margin: 0; padding: 0; }
.vigilance li {
  position: relative;
  padding: 5px 0 5px 22px;
  font-size: 13px;
  line-height: 1.5;
  color: var(--ink);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.vigilance li:hover { -webkit-line-clamp: unset; }
.vigilance li::before {
  content: "!";
  position: absolute;
  left: 2px;
  top: 7px;
  width: 14px; height: 14px;
  border-radius: 50%;
  background: var(--warn);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Sections repliées */
.pli {
  border: 1px solid var(--border);
  border-radius: var(--r);
  margin-bottom: 10px;
  background: var(--surface);
  overflow: hidden;
}
.pli summary {
  cursor: pointer;
  list-style: none;
  padding: 13px 18px;
  font-size: 13.5px;
  font-weight: 700;
  color: var(--ink);
  position: relative;
  user-select: none;
}
.pli summary::-webkit-details-marker { display: none; }
.pli summary::before {
  content: "▸";
  color: var(--muted);
  margin-right: 9px;
  display: inline-block;
  transition: transform 0.15s;
}
.pli[open] summary::before { transform: rotate(90deg); }
.pli summary:hover { background: #fafbfd; }
.pli-corps { padding: 4px 18px 18px; }
.pli-h4 {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--muted);
  margin: 18px 0 8px;
}
.pli-descriptif { color: var(--ink-soft); font-size: 12.5px; line-height: 1.6; }

/* Script d'appel */
.brief-say {
  background: var(--accent-soft);
  border: 1px solid var(--accent-line);
  border-radius: 10px;
  padding: 14px 16px;
  font-size: 13.5px;
  line-height: 1.65;
  margin-bottom: 12px;
}
.brief-say-label {
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 6px;
}
.brief-say .copy-btn { margin-top: 10px; display: inline-flex; }
.brief-line { display: flex; flex-direction: column; gap: 2px; margin-bottom: 12px; font-size: 13px; }
.brief-line b { font-size: 12px; color: var(--muted); font-weight: 600; }
.brief-block { margin-bottom: 12px; font-size: 13px; }
.brief-block > b { font-size: 12px; color: var(--muted); font-weight: 600; display: block; margin-bottom: 5px; }
.brief-block ul { margin: 0; padding-left: 18px; }
.brief-block li { margin-bottom: 5px; line-height: 1.5; }
.brief-objections li { list-style: none; margin-left: -18px; margin-bottom: 9px; }
.brief-objections li b { display: block; font-size: 12.5px; color: var(--ink); font-weight: 600; }
.brief-objections li span { color: var(--ink-soft); font-size: 12.5px; }
.brief-empty { color: var(--muted); font-size: 13px; }
.brief-regen { margin-top: 6px; }

/* Dossier complet */
.fact-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9px 18px;
  margin-top: 8px;
}
.fact { font-size: 13px; }
.fact b {
  display: block;
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 1px;
}
.dirigeants-list { margin: 0; padding-left: 4px; list-style: none; font-size: 13px; }
.dirigeants-list li { padding: 3px 0; }
.quality { color: var(--muted); font-size: 12px; }
.fiabilite {
  margin-top: 14px;
  font-size: 12.5px;
  color: var(--ink-soft);
  background: var(--gris-soft);
  border-radius: 9px;
  padding: 9px 12px;
}
.message-box {
  background: #fbfcfe;
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 12px 14px;
  font-size: 13px;
  line-height: 1.6;
  margin-bottom: 8px;
}
.source-link { color: var(--accent); font-weight: 600; font-size: 13px; text-decoration: none; }
.source-link:hover { text-decoration: underline; }

/* Historique */
.appels-list { list-style: none; margin: 0; padding: 0; }
.appels-list li {
  position: relative;
  padding: 10px 30px 10px 0;
  border-bottom: 1px solid var(--border-soft);
  font-size: 13px;
}
.appels-list li:last-child { border-bottom: none; }
.appel-issue {
  font-size: 11.5px;
  font-weight: 700;
  padding: 2px 9px;
  border-radius: 999px;
  background: var(--gris-soft);
  color: var(--ink-soft);
  margin-right: 8px;
}
.appel-issue.issue-r1_fixe, .appel-issue.issue-r1_fait, .appel-issue.issue-r2,
.appel-issue.issue-signe, .appel-issue.issue-interesse { background: var(--vert-soft); color: var(--vert); }
.appel-issue.issue-rappel, .appel-issue.issue-barrage { background: var(--orange-soft); color: var(--orange); }
.appel-issue.issue-refus, .appel-issue.issue-mauvais_numero,
.appel-issue.issue-ne_pas_contacter { background: var(--rouge-soft); color: var(--rouge); }
.appel-date { color: var(--muted); font-size: 12px; }
.appel-notes { margin-top: 5px; color: var(--ink-soft); font-size: 12.5px; line-height: 1.5; }
.appel-rappel { margin-top: 3px; color: var(--orange); font-size: 12px; font-weight: 600; }
.appel-suppr {
  position: absolute;
  right: 0;
  top: 10px;
  border: none;
  background: none;
  color: var(--muted);
  font-size: 15px;
  cursor: pointer;
  padding: 2px 7px;
  border-radius: 6px;
}
.appel-suppr:hover { background: var(--rouge-soft); color: var(--rouge); }

.notes-area { width: 100%; min-height: 84px; resize: vertical; }
.notes-saved { color: var(--vert); font-size: 11.5px; font-weight: 600; margin-left: 7px; }

/* Pièces jointes */
.pj-vide { color: var(--muted); font-size: 12.5px; margin: 10px 0 6px; }
.pj-liste { list-style: none; margin: 10px 0 6px; padding: 0; }
.pj-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  background: #fbfcfe;
  border: 1px solid var(--border);
  border-radius: 9px;
  margin-bottom: 6px;
  font-size: 13px;
}
.pj-item::before {
  content: "";
  width: 14px; height: 16px;
  flex-shrink: 0;
  border: 1.6px solid var(--accent);
  border-radius: 3px;
  opacity: 0.8;
}
.pj-nom { color: var(--ink); font-weight: 600; text-decoration: none; flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pj-nom:hover { color: var(--accent); text-decoration: underline; }
.pj-meta { color: var(--muted); font-size: 12px; white-space: nowrap; }
.pj-suppr {
  border: none;
  background: none;
  color: var(--muted);
  font-size: 15px;
  cursor: pointer;
  padding: 2px 6px;
  border-radius: 6px;
}
.pj-suppr:hover { background: var(--rouge-soft); color: var(--rouge); }
.pj-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 4px; }
.pj-hint { color: var(--muted); font-size: 11.5px; }
.pj-statut { color: var(--accent-deep); font-size: 12px; font-weight: 600; }

/* Modifier la fiche */
.btn-modifier {
  position: absolute;
  right: 62px;
  top: 19px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--ink-soft);
  font: inherit;
  font-size: 12px;
  font-weight: 600;
  padding: 6px 11px;
  border-radius: 8px;
  cursor: pointer;
}
.btn-modifier:hover { border-color: #c9d2e0; color: var(--ink); }
.fiche-edit {
  background: #fbfcfe;
  border: 1px solid var(--border);
  border-radius: var(--r);
  padding: 16px 18px;
  margin: 26px 0 18px;
}
.fiche-edit-titre { font-size: 13.5px; font-weight: 700; margin-bottom: 12px; }
.fiche-edit-actions { display: flex; justify-content: flex-end; gap: 9px; margin-top: 12px; }

/* Copie */
.copy-btn { font-size: 12px; padding: 5px 11px; }

/* ---------- Divers ---------- */

::selection { background: var(--accent-line); }

/* ======================================================================
   Retours David 05/09 : plus de relief, journée resserrée, CRM en grand,
   fiche colorée, barre latérale repliable.
   ====================================================================== */

/* --- Barre latérale repliable --- */
.sidenav { position: sticky; }
.sidenav-toggle {
  position: absolute;
  right: -13px;
  top: 26px;
  width: 26px; height: 26px;
  border-radius: 50%;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--ink-soft);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--ombre);
  z-index: 5;
  padding: 0;
}
.sidenav-toggle svg { width: 14px; height: 14px; transition: transform 0.2s; }
.sidenav-toggle:hover { color: var(--accent); border-color: var(--accent-line); }
.nav-icone-seule { display: none; font-size: 18px; line-height: 1; }
body.rail .sidenav { width: 66px; padding-left: 10px; padding-right: 10px; }
body.rail .sidenav-toggle svg { transform: rotate(180deg); }
body.rail .sidenav-logo { visibility: hidden; height: 34px; padding: 0; }
body.rail .nav-label, body.rail .credits-card { display: none; }
body.rail .nav-icone-seule { display: inline; }
body.rail .nav-btn { justify-content: center; padding: 11px 0; }
body.rail .nav-btn svg { width: 20px; height: 20px; }
body.rail .nav-btn.active::before { left: -10px; }
body.rail .sidenav-bas .btn-primary { padding: 9px 0; }

/* --- Journée : colonne de travail resserrée --- */

.jtable .col-action { min-width: 170px; width: 190px; }
.jtable td { padding: 13px 14px; }

.score-rond {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px; height: 40px;
  border-radius: 50%;
  background: var(--accent-soft);
  color: var(--accent-deep);
  font-size: 14px;
  font-weight: 800;
  letter-spacing: -0.02em;
  flex-shrink: 0;
  border: 1.5px solid var(--accent-line);
  font-variant-numeric: tabular-nums;
}
.score-rond.score-fort { background: var(--accent); color: #fff; border-color: var(--accent); }
.contact-texte { display: flex; flex-direction: column; min-width: 0; }
.contact-texte b { font-size: 14px; font-weight: 700; color: var(--ink); }
.contact-societe { font-size: 13px; font-weight: 600; color: var(--ink-soft); margin-top: 1px; }
.contact-fonction { font-size: 12px; color: var(--muted); margin-top: 1px; }

/* --- Lead Center : le neuf se voit --- */
.tag-nouveau {
  display: inline-block;
  margin-top: 3px;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--accent);
  background: var(--accent-soft);
  border: 1px solid var(--accent-line);
  border-radius: 999px;
  padding: 1px 7px;
}
.leads-table .col-score { font-size: 15px; }

/* --- CRM : gros chiffres, colonnes en grand --- */
.crm-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 18px;
}
.crm-stat {
  background: var(--surface);
  border: 1px solid var(--border);
  border-left: 5px solid var(--border);
  border-radius: var(--r);
  box-shadow: var(--ombre);
  padding: 16px 20px 14px;
}
.crm-stat b { display: block; font-size: 34px; font-weight: 800; letter-spacing: -0.03em; line-height: 1.05; }
.crm-stat span { display: block; font-size: 13.5px; font-weight: 600; color: var(--ink); margin-top: 4px; }
.crm-stat small { font-size: 12px; color: var(--muted); }
.stat-bleu { border-left-color: var(--accent); }
.stat-bleu b { color: var(--accent); }
.stat-vert { border-left-color: #21a06f; }
.stat-vert b { color: #12805c; }
.stat-orange { border-left-color: #e5a13e; }
.stat-orange b { color: #b25e09; }
.stat-or { border-left-color: var(--or); }
.stat-or b { color: #8a6b25; }

.crm-board { overflow-x: auto; padding-bottom: 6px; margin-bottom: 12px; }
.crm-colonnes {
  display: grid;
  grid-template-columns: repeat(5, 330px);   /* colonnes larges, le tableau glisse */
  gap: 16px;
  width: max-content;
  margin-bottom: 0;
}
@media (max-width: 1250px) { .crm-colonnes { grid-template-columns: repeat(5, 330px); } }
.crm-col { border-top-width: 5px; }
.crm-col-tete { padding: 15px 18px 10px; font-size: 15px; }
.crm-col-tete b { font-size: 13px; padding: 2px 10px; }
.crm-bleu .crm-col-tete { color: var(--accent-deep); }
.crm-orange .crm-col-tete { color: #8a4508; }
.crm-rouge .crm-col-tete { color: #a01f36; }
.crm-vert .crm-col-tete { color: #0d6b4b; }
.crm-gris .crm-col-tete { color: var(--ink-soft); }
.crm-bleu .crm-col-tete b { background: #dce8fd; color: var(--accent-deep); }
.crm-orange .crm-col-tete b { background: #fbe3bf; color: #8a4508; }
.crm-rouge .crm-col-tete b { background: #fde0e4; color: #a01f36; }
.crm-vert .crm-col-tete b { background: #d3f0e2; color: #0d6b4b; }
.crm-col-liste { max-height: 560px; padding: 4px 10px; }
.crm-carte { padding: 12px 10px; gap: 12px; border-radius: 10px; align-items: flex-start; }
.crm-carte + .crm-carte { border-top: 1px solid var(--border-soft); border-radius: 0 0 10px 10px; }
.crm-carte b { font-size: 14.5px; font-weight: 700; white-space: normal; line-height: 1.3; }
.crm-carte-societe { display: block; font-size: 13px; font-weight: 600; color: var(--ink-soft); margin-top: 2px; white-space: normal; }
.crm-carte .cell-sub { white-space: normal; }
.crm-carte .score-rond { width: 38px; height: 38px; font-size: 13px; }
.crm-meta { font-size: 12px; padding: 3px 10px; margin-top: 2px; }
.crm-meta-montant { background: #dce8fd; color: var(--accent-deep); }
.crm-col-pied { font-size: 13.5px; padding: 12px; }

.crm-focus-tete { display: flex; align-items: center; gap: 16px; margin-bottom: 14px; }
.crm-focus-tete h2 { font-size: 20px; font-weight: 800; margin: 0; }
.crm-focus-tete h2 b { font-size: 13px; background: var(--gris-soft); border-radius: 999px; padding: 2px 10px; margin-left: 8px; vertical-align: middle; }
#crm-focus .col-pos { width: 60px; }

/* --- Fiche : tuiles à icônes, présentation, cartes de résultat --- */
.tuile { display: flex; align-items: center; gap: 11px; padding: 11px 13px; }
.tuile > div { min-width: 0; }
.tuile b { font-size: 15px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tuile-ico {
  width: 34px; height: 34px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.tuile-ico svg { width: 17px; height: 17px; }
.tuile-euro { background: #dce8fd; color: var(--accent-deep); }
.tuile-date { background: #fbe3bf; color: #8a4508; }
.tuile-personne { background: #d3f0e2; color: #0d6b4b; }
.tuile-societe { background: #ece4fa; color: #6a3fb0; }
.tuile-horloge { background: #fde0e4; color: #a01f36; }

.enbref-presentation { margin: 0 0 8px; font-size: 14px; line-height: 1.6; color: var(--ink); font-weight: 500; }
.enbref .drawer-resume { font-size: 13px; color: var(--ink-soft); }
.enbref .drawer-resume b { color: var(--accent-deep); font-weight: 700; }

.cat-grille { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.cat-carte { border-radius: 12px; padding: 12px 13px 13px; border: 1px solid transparent; }
.cat-titre {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13.5px;
  font-weight: 700;
  margin-bottom: 9px;
}
.cat-titre svg { width: 17px; height: 17px; }
.cat-options { display: flex; flex-wrap: wrap; gap: 6px; }
.cat-options .issue-btn { background: rgba(255, 255, 255, 0.85); border-color: rgba(255, 255, 255, 0.9); color: var(--ink); font-size: 12.5px; padding: 6px 12px; }
.cat-options .issue-btn:hover:not(:disabled) { background: #fff; border-color: currentColor; }
.cat-date { display: flex; gap: 6px; width: 100%; margin-top: 2px; }
.cat-date input { flex: 1; padding: 5px 9px; font-size: 12.5px; background: rgba(255, 255, 255, 0.85); }
.cat-gris { background: #eceff4; border-color: #dfe4ec; }
.cat-gris .cat-titre { color: var(--ink-soft); }
.cat-orange { background: #fdefd9; border-color: #f5dcb5; }
.cat-orange .cat-titre { color: #8a4508; }
.cat-vert { background: #dff4e9; border-color: #bfe6d2; }
.cat-vert .cat-titre { color: #0d6b4b; }
.cat-rouge { background: #fde6e9; border-color: #f5c9d0; }
.cat-rouge .cat-titre { color: #a01f36; }
.cat-gris .issue-btn:hover { color: var(--ink); }
.cat-orange .issue-btn:hover { color: #8a4508; }
.cat-vert .issue-btn:hover { color: #0d6b4b; }
.cat-rouge .issue-btn:hover { color: #a01f36; }

.drawer-score { background: var(--accent); color: #fff; }
.drawer-kicker { padding-right: 210px; }   /* place pour « Modifier la fiche » + la croix */
.fiche-tuiles { grid-template-columns: repeat(2, 1fr); }
.tuile b { white-space: normal; }


/* --- Lead Center : pagination --- */
.pager {
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
  padding: 12px 16px; border-top: 1px solid var(--border-soft); background: #fbfcfe; flex-wrap: wrap;
}
.pager-info { font-size: 12.5px; color: var(--muted); }
.pager-pages { display: flex; align-items: center; gap: 4px; }
.pager-btn {
  min-width: 32px; height: 32px; padding: 0 8px;
  border: 1px solid var(--border); background: var(--surface); border-radius: 8px;
  font: inherit; font-size: 13px; font-weight: 600; color: var(--ink-soft); cursor: pointer;
}
.pager-btn:hover:not(:disabled) { border-color: var(--accent-line); color: var(--accent); }
.pager-btn.active { background: var(--accent); border-color: var(--accent); color: #fff; }
.pager-btn:disabled { opacity: 0.4; cursor: default; }
.pager-ellipse { color: var(--muted); padding: 0 4px; }

/* --- CRM : glisser-déposer --- */
.crm-carte[draggable="true"] { cursor: grab; }
.crm-carte.en-vol { opacity: 0.45; }
.crm-col.cible { outline: 2px dashed var(--accent); outline-offset: -4px; background: var(--accent-soft); }
.crm-col.cible .crm-carte { pointer-events: none; }

/* --- Modale de choix --- */
.modal-choix { width: 440px; }
.choix-options { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 6px; }
.choix-btn { font-size: 13.5px; padding: 10px 16px; }
.choix-date { display: flex; align-items: center; gap: 10px; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--border-soft); font-size: 13px; color: var(--ink-soft); }
.choix-date label { display: flex; align-items: center; gap: 8px; font-weight: 600; }


/* --- Journée : tableau condensé, l'œil suit une ligne d'un coup --- */
/* La journée occupe la page comme le Lead Center et le CRM (barre latérale repliée comprise). */
#vue-journee { max-width: none; }
.jtable { table-layout: fixed; }
.jtable .col-pos { width: 40px; }
.jtable .col-contact { width: 40%; }
.jtable .col-signal { width: 26%; }
.jtable .col-num { width: 92px; }
.jtable .col-action { width: 178px; min-width: 0; }
.jtable td { padding: 10px 10px; }
.jtable thead th { padding: 10px 10px; }
.jtable .contact-cell { gap: 9px; }
.jtable .score-rond { width: 36px; height: 36px; font-size: 13px; }
.jtable .contact-texte b { font-size: 13.5px; }
.jtable .contact-societe { font-size: 12.5px; }
.jtable .contact-fonction { font-size: 11.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.jtable .contact-societe, .jtable .contact-texte b { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.jtable .jraison { font-size: 11px; margin-top: 4px; }
.jtable .btn-appeler, .jtable .btn-trouver { padding: 6px 10px; font-size: 12px; }
.jtable .jpasser { margin-left: 6px; padding: 5px 6px; font-size: 11.5px; }


/* --- Journée : chips de signal plus lisibles --- */
.jtable .sig-chip { font-size: 12.5px; padding: 4px 11px; }
.jtable .jraison { font-size: 11.5px; }

/* --- Info-bulle du bouton de détection --- */
.tip { position: relative; }
.tip-i {
  display: inline-flex; align-items: center; justify-content: center;
  width: 16px; height: 16px; border-radius: 50%;
  border: 1.5px solid rgba(255, 255, 255, 0.75); color: #fff;
  font-size: 10px; font-weight: 800; font-style: italic; margin-left: 8px; opacity: 0.85;
}
body.rail .tip-i { display: none; }
.tip-bulle {
  position: absolute; left: calc(100% + 18px); top: 50%; transform: translateY(-50%);
  width: 300px; padding: 13px 15px;
  background: var(--ink); color: #fff; border-radius: 11px;
  font-size: 12.5px; line-height: 1.5; font-weight: 400;
  box-shadow: var(--ombre-haute);
  opacity: 0; visibility: hidden; transition: opacity 0.12s;
  z-index: 40; pointer-events: none;
}
.tip-bulle b { display: block; font-size: 13px; margin-bottom: 5px; }
.tip-bulle::before {
  content: ""; position: absolute; left: -7px; top: 50%; transform: translateY(-50%);
  border: 7px solid transparent; border-right-color: var(--ink); border-left: 0;
}
.tip:hover .tip-bulle, .tip:focus-within .tip-bulle { opacity: 1; visibility: visible; }


/* --- Lead Center : filtres cadrés, score en pastille, en-têtes homogènes --- */
.filtres-carte .champ-recherche { min-width: 260px; }
.select-court { width: 168px; flex: none; }
.select-montant { width: 128px; }
.leads-table th.col-score { font-size: 11px; font-weight: 600; width: 66px; }
.leads-table td.col-score { font-size: inherit; font-weight: inherit; }
.leads-table .col-action { text-align: left; width: 150px; }
.leads-table th.col-action { text-align: left; }
.leads-table thead th { white-space: normal; line-height: 1.25; }
.leads-table .col-num { width: 100px; }

/* --- CRM : respiration entre les chiffres et les colonnes, titres de colonnes lisibles --- */
.crm-stats { margin-bottom: 34px; }
.crm-col-tete {
  padding: 18px 18px 12px;
  font-size: 17px;
  font-weight: 800;
  letter-spacing: -0.01em;
  border-bottom: 1px solid var(--border-soft);
  margin-bottom: 4px;
}
.crm-col-tete b { font-size: 13.5px; padding: 3px 11px; }


/* --- Lead Center : en-têtes sur une seule ligne, alignés --- */
.leads-table thead th { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; vertical-align: middle; line-height: 1; padding: 13px 14px; }
.leads-table th.col-num { width: 104px; }

/* --- Le neuf du jour --- */
.badge-nouveaux {
  display: inline-block;
  margin-left: 6px;
  padding: 3px 10px;
  border-radius: 999px;
  background: #d3f0e2;
  color: #0d6b4b;
  font-size: 12px;
  font-weight: 700;
  vertical-align: 1px;
}


/* --- Filtre à cases (type de signal) --- */
.multi { position: relative; }
.multi-btn { text-align: left; }
.multi-btn.actif { border-color: var(--accent); color: var(--accent); font-weight: 600; background-color: var(--accent-soft); }
.multi-panel {
  position: absolute; top: calc(100% + 6px); left: 0; z-index: 30;
  width: 250px; padding: 8px;
  background: var(--surface); border: 1px solid var(--border); border-radius: 10px;
  box-shadow: var(--ombre-haute);
  display: flex; flex-direction: column; gap: 2px;
}
.multi-panel label {
  display: flex; align-items: center; gap: 9px;
  padding: 7px 8px; border-radius: 7px; font-size: 13px; color: var(--ink); cursor: pointer;
}
.multi-panel label:hover { background: var(--gris-soft); }
.multi-panel input { accent-color: var(--accent); width: 15px; height: 15px; }
.multi-raz {
  margin-top: 4px; border: none; border-top: 1px solid var(--border-soft); background: none;
  font: inherit; font-size: 12px; font-weight: 600; color: var(--muted); padding: 9px 8px 4px; cursor: pointer; text-align: left;
}
.multi-raz:hover { color: var(--accent); }

/* --- Lead Center : sur écran étroit, le tableau glisse plutôt que de tout tronquer --- */
.leads-table { min-width: 1000px; }
.leads-table th, .leads-table td { padding-left: 12px; padding-right: 12px; }
.leads-table th.col-score { width: 70px; }
.leads-table .col-num, .leads-table th.col-num { width: 96px; }
.leads-table .col-lieu { width: 120px; }
.leads-table .col-date { width: 100px; }
.leads-table .col-statut { width: 142px; }
.leads-table .col-action { width: 138px; }


/* --- CRM : les étapes du pipeline dans leur colonne --- */
.crm-etape { border-radius: 10px; padding: 6px 4px 4px; margin: 4px 0 8px; border: 1px dashed transparent; }
.crm-etape.cible { border-color: var(--accent); background: var(--accent-soft); }
.crm-etape-tete {
  display: flex; align-items: center; justify-content: space-between;
  font-size: 11px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase;
  padding: 4px 8px 6px; color: var(--ink-soft);
}
.crm-etape-tete b { font-size: 11px; background: var(--gris-soft); border-radius: 999px; padding: 1px 8px; }
.crm-etape-vide { margin: 0; padding: 8px; font-size: 12px; color: var(--muted); text-align: center; border: 1px dashed var(--border); border-radius: 8px; }
.statut-bloc-r1_fixe .crm-etape-tete { color: #0d6b4b; }
.statut-bloc-r1_fait .crm-etape-tete { color: #0d6b4b; }
.statut-bloc-r2 .crm-etape-tete { color: #0a5a3f; }
.statut-bloc-signe .crm-etape-tete { color: #fff; background: var(--vert); border-radius: 7px; }
.statut-bloc-signe .crm-etape-tete b { background: rgba(255,255,255,0.25); color: #fff; }
.statut-bloc-mauvais_numero .crm-etape-tete { color: #a01f36; }
.statut-bloc-hors_cible .crm-etape-tete { color: var(--ink-soft); }
.statut-bloc-ne_pas_contacter .crm-etape-tete { color: #a01f36; }
.statut-bloc-perdu .crm-etape-tete { color: var(--muted); }
.crm-col.cible .crm-etape .crm-carte { pointer-events: none; }


/* --- Pastilles de signal : une couleur par famille --- */
.sig-cession { background: var(--vert-soft); color: var(--vert); }           /* Cessions */
.sig-amf, .sig-cadre { background: #f3edfb; color: #7440b3; }                /* Dirigeants de cotées */
.sig-holding, .sig-d55 { background: #e6f2f9; color: #1d5f85; }              /* PME à transmettre */
.sig-rsu { background: #ebeffc; color: #3653c7; }                            /* RSU */
.sig-dissolution { background: #f1efe9; color: #6d5f43; }                    /* option */
.check-note { color: var(--muted); font-weight: 400; font-size: 12.5px; }
.check-grid label b { font-weight: 600; }
.check-option { margin-top: 6px; padding-top: 10px; border-top: 1px dashed var(--border); }


/* --- CRM : rendez-vous côte à côte, signés à part --- */
.crm-colonnes { grid-template-columns: repeat(4, 330px) 330px 330px; }
.crm-colonnes { grid-template-columns: 330px 330px 720px 330px 330px 330px; }
.crm-col-large .crm-col-liste { padding: 4px 8px; }
.crm-etapes-h { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; align-items: start; }
.crm-etapes-h .crm-etape { margin: 0; padding: 6px 4px 6px; background: #fbfcfe; border: 1px dashed var(--border); min-height: 160px; }
.crm-etapes-h .crm-etape.cible { border-color: var(--accent); background: var(--accent-soft); }
.crm-etapes-h .crm-etape-tete { padding: 4px 6px 8px; }
.crm-etapes-h .crm-carte { padding: 10px 6px; gap: 8px; flex-wrap: wrap; }
.crm-etapes-h .crm-carte .score-rond { width: 32px; height: 32px; font-size: 12px; }
.crm-etapes-h .crm-carte b { font-size: 13px; }
.crm-etapes-h .crm-carte-societe { font-size: 12px; }
.crm-or { border-top-color: var(--or); }
.crm-or .crm-col-tete { color: #8a6b25; }
.crm-or .crm-col-tete b { background: #f6efdd; color: #8a6b25; }


/* --- Statut : « Nouveau » vert = arrivé aujourd'hui ; « Statut » neutre = à qualifier --- */
.statut-select.statut-nouveau-jour { background-color: #d3f0e2; color: #0d6b4b; border-color: #b3e2cc; font-weight: 700; }
.statut-select.statut-vide { background-color: var(--surface); color: var(--muted); border-color: var(--border); font-weight: 500; }
.statut-select.statut-vide:hover { color: var(--ink-soft); border-color: #c9d2e0; }

/* Les trois étapes RDV occupent toute la hauteur de la colonne : une fiche
   déposée n'importe où dans une sous-colonne prend directement cette étape. */
.crm-col-large .crm-col-liste { display: flex; flex-direction: column; }
.crm-col-large .crm-etapes-h { flex: 1; align-items: stretch; min-height: 320px; }
.crm-etapes-h .crm-etape { display: flex; flex-direction: column; }
.crm-etapes-h .crm-etape .crm-etape-vide { flex: 1; display: flex; align-items: center; justify-content: center; }
/* Résultat de la recherche de mobile : lisible d'un coup d'œil. */
.tel-finder-statut { padding: 8px 10px; border-radius: 8px; line-height: 1.4; }
.tel-finder-statut.attente { background: var(--accent-soft); color: var(--accent-deep); }
.tel-finder-statut.ok { background: #e6f6ee; color: #0d6b4b; }
.tel-finder-statut.echec { background: #fff4e5; color: #8a5a00; }

/* Messages flottants (résultat d'une recherche laissée tourner). */
#toasts { position: fixed; right: 18px; bottom: 18px; z-index: 1200; display: flex; flex-direction: column; gap: 8px; max-width: 380px; }
.toast { padding: 10px 14px; border-radius: 10px; font-size: 13px; line-height: 1.4; box-shadow: 0 6px 24px rgba(15, 23, 42, 0.18); background: var(--ink); color: #fff; transition: opacity .4s, transform .4s; }
.toast-ok { background: #0d6b4b; }
.toast-echec { background: #8a5a00; }
.toast-fin { opacity: 0; transform: translateY(6px); }

.btn-mini { padding: 3px 9px; font-size: 11.5px; margin-left: 8px; vertical-align: middle; font-weight: 600; text-transform: none; letter-spacing: 0; }

/* Formule et jauges du mois. */
.credits-formule { font-size: 11.5px; color: var(--ink-soft); margin-top: 2px; }
.jauge-premium { font-size: 11px; color: var(--muted); }
.jauge-premium.jauge-epuisee { color: #a01f36; font-weight: 600; }
.famille-verrouillee::after { content: " 🔒"; font-size: 11px; }
.licence-row { flex-wrap: wrap; gap: 6px 10px; align-items: center; }
.licence-jauges { flex-basis: 100%; font-size: 11.5px; color: var(--muted); }
.licence-inactive { opacity: .55; }
.select-mini { padding: 3px 6px; font-size: 12px; }
#lic-formule { max-width: 130px; }

/* Équipe dans la barre latérale. */
.equipe { padding: 6px 10px 0; border-top: 1px solid var(--border); margin-top: 6px; }
.equipe-titre { display: flex; align-items: center; justify-content: space-between; font-size: 10.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); padding: 4px 10px 2px; }
.equipe-gerer { background: none; border: 0; color: var(--accent); font-size: 11px; font-weight: 600; cursor: pointer; text-transform: none; letter-spacing: 0; padding: 0; }
.equipe-profil { width: 100%; }
.equipe-initiale { width: 22px; height: 22px; border-radius: 50%; background: var(--accent-soft); color: var(--accent); font-size: 11px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.equipe-profil.active .equipe-initiale { background: var(--accent); color: #fff; }
.equipe-profil small { color: var(--muted); font-weight: 500; }
body.rail .equipe-titre { display: none; }
#envoyer-a { margin-left: 8px; max-width: 160px; }

/* Familles mass market (Île-de-France). */
.sig-distribution { background: #fdf0e6; color: #a04a12; }
.sig-artisan { background: #eef6ee; color: #2f6b3a; }

/* Envoi de fiches à un membre de l'équipe. */
.col-coche { width: 28px; text-align: center; }
.leads-table tr.selectionnee td { background: var(--accent-soft); }
.envoi-barre { position: fixed; left: 50%; bottom: 22px; transform: translateX(-50%); z-index: 1100; display: flex; align-items: center; gap: 10px; padding: 10px 16px; background: var(--ink); color: #fff; border-radius: 12px; box-shadow: 0 10px 30px rgba(15,23,42,.3); font-size: 13px; }
.envoi-sep { color: rgba(255,255,255,.7); }
.jtable .col-coche, .leads-table .col-coche { width: 30px; padding-right: 0; }
.jtable tr.selectionnee td { background: var(--accent-soft); }
#drag-ghost { position: fixed; top: -100px; left: -100px; padding: 6px 12px; border-radius: 999px; background: var(--accent); color: #fff; font-size: 12.5px; font-weight: 700; box-shadow: 0 6px 16px rgba(15,23,42,.25); pointer-events: none; }
.envoi-barre .select { max-width: 200px; }
.equipe-profil.cible { outline: 2px dashed var(--accent); background: var(--accent-soft); }
tr[draggable="true"] { cursor: grab; }

/* Carte compte : packs de mobiles et espace client (paiement en ligne). */
.credits-actions { display: flex; flex-direction: column; gap: 2px; margin-top: 8px; }
.credits-actions:empty { display: none; }
.credits-packs summary { font-size: 12px; font-weight: 600; color: var(--ink); cursor: pointer; padding: 2px 0; }
.credits-packs[open] summary { margin-bottom: 2px; }
.credits-lien { display: block; width: 100%; text-align: left; background: none; border: 0; padding: 3px 0; font: inherit; font-size: 12px; color: var(--accent); font-weight: 600; cursor: pointer; }
.credits-lien:hover { text-decoration: underline; }
.credits-lien:disabled { opacity: .6; cursor: wait; }
.credits-packs .credits-lien { padding-left: 10px; }

/* ---------- Formules : fonctions verrouillées ---------- */
.verrouille { position: relative; opacity: .72; }
.verrouille::after {
  content: ""; display: inline-block; width: 11px; height: 11px; margin-left: 6px; vertical-align: -1px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'%3E%3Crect x='5' y='11' width='14' height='10' rx='2'/%3E%3Cpath d='M8 11V8a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'%3E%3Crect x='5' y='11' width='14' height='10' rx='2'/%3E%3Cpath d='M8 11V8a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E") center / contain no-repeat;
}
.nav-btn.verrouille::after { margin-left: auto; }
body.rail .nav-btn.verrouille::after { display: none; }
.verrou-bloc { background: var(--accent-soft); border: 1px solid var(--accent-line); border-radius: var(--r); padding: 18px 20px; }
.verrou-bloc p { color: var(--ink-soft); font-size: 14px; margin: 0 0 14px; }
.verrou-page { max-width: 620px; margin-top: 8px; padding: 28px 30px; }
.verrou-page h2 { font-size: 20px; font-weight: 800; margin: 0 0 8px; }

/* ---------- Trame d'appel ---------- */
.trame-texte {
  width: 100%; font: inherit; font-size: 14px; line-height: 1.55; color: var(--ink);
  border: 1px solid var(--border); border-radius: var(--r-s); padding: 12px 14px; resize: vertical; min-height: 220px;
}
.trame-texte:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; border-color: var(--accent); }
.modal-note code { background: var(--gris-soft); border-radius: 5px; padding: 1px 5px; font-size: 11.5px; }
.brief-trame { background: var(--gris-soft); border-radius: var(--r-s); padding: 12px 14px; margin-bottom: 14px; font-size: 13.5px; }
.brief-trame summary { font-weight: 700; cursor: pointer; display: flex; align-items: center; gap: 10px; list-style: none; }
.brief-trame summary::-webkit-details-marker { display: none; }
.brief-trame summary .btn { margin-left: auto; }
.brief-trame-texte { white-space: pre-wrap; color: var(--ink-soft); margin-top: 8px; line-height: 1.55; }
.brief-trame-texte mark { background: var(--accent-soft); color: var(--accent-deep); font-weight: 600; border-radius: 4px; padding: 0 2px; }
.brief-trame-vide { color: var(--ink-soft); display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.trame-vide { color: var(--muted); }

/* ---------- Mes résultats ---------- */
.res-kpis { margin-bottom: 18px; }
.res-vide { color: var(--ink-soft); background: var(--surface); border: 1px dashed var(--border); border-radius: var(--r); padding: 14px 18px; margin: 0 0 18px; font-size: 14px; }
.res-grille { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.res-carte { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r); padding: 18px 20px; box-shadow: var(--ombre); min-width: 0; }
.res-large { grid-column: 1 / -1; }
.res-carte h2 { font-size: 15px; font-weight: 700; margin: 0 0 14px; }
.res-semaines { display: grid; grid-template-columns: repeat(8, 1fr); gap: 10px; align-items: end; }
.res-sem { display: flex; flex-direction: column; align-items: center; gap: 4px; min-width: 0; }
.res-barres { height: 140px; width: 100%; display: flex; align-items: flex-end; justify-content: center; gap: 4px; }
.res-barres i { display: block; width: 38%; max-width: 22px; border-radius: 4px 4px 0 0; min-height: 2px; }
.b-appels, .l-appels { background: var(--accent-line); }
.b-contacts, .l-contacts { background: var(--accent); }
.res-sem b { font-size: 12px; color: var(--orange); font-weight: 700; white-space: nowrap; }
.res-sem small, .res-heure small { font-size: 11px; color: var(--muted); }
.res-legende { font-size: 12px; color: var(--muted); margin: 12px 0 0; display: flex; align-items: center; gap: 6px; }
.res-legende span { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-left: 8px; }
.res-legende span:first-child { margin-left: 0; }
.res-entonnoir { list-style: none; margin: 0; padding: 0; }
.res-entonnoir li { display: flex; justify-content: space-between; padding: 7px 0; border-bottom: 1px solid var(--border-soft); font-size: 14px; }
.res-entonnoir li:last-child { border-bottom: 0; }
.res-entonnoir b { font-variant-numeric: tabular-nums; }
.res-table { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.res-table th { text-align: left; font-size: 12px; color: var(--muted); font-weight: 600; padding: 0 8px 8px 0; }
.res-table td { padding: 7px 8px 7px 0; border-top: 1px solid var(--border-soft); font-variant-numeric: tabular-nums; }
.res-table th:not(:first-child), .res-table td:not(:first-child) { text-align: right; }
.res-note { font-size: 12px; color: var(--muted); margin: 10px 0 0; }
.res-conseil { font-size: 14px; color: var(--ink-soft); margin: 0 0 12px; }
.res-heures { display: grid; grid-template-columns: repeat(12, 1fr); gap: 5px; align-items: end; }
.res-heure { display: flex; flex-direction: column; align-items: center; gap: 4px; }
.res-heure i { display: block; width: 100%; height: 0; background: var(--vert); border-radius: 3px 3px 0 0; }
.res-heure i.peu { background: var(--border); }
.res-heure { height: 110px; justify-content: flex-end; }
@media (max-width: 900px) { .res-grille { grid-template-columns: 1fr; } .res-semaines { gap: 4px; } }
a.credits-lien { text-decoration: none; }
