/* ============================================================================
   Dashboard démarchage Lemon Punch — feuille de style
   Identité fixée en blanc/jaune (comme lemonpunch.fr), volontairement
   indépendante du thème système (pas de prefers-color-scheme).
   Polices : Oswald (titres + chiffres clés), Karla (tout le reste).
   ========================================================================== */

:root{
  color-scheme: light;

  /* Fonds & texte */
  --bg:#F6F1E2; --bg-2:#EFE8D2;
  --surface:#FFFFFF; --surface-2:#F7F3E6; --surface-3:#F0EAD4;
  --text:#1E1A0F; --text-muted:#5B5137; --text-faint:#8A7F62;

  /* Accent citron */
  --accent:#E2C400; --accent-strong:#C9AE00; --accent-ink:#3D3300; --accent-soft:#FBF0AE; --accent-wash:#FDF8DA;

  /* Sémantique */
  --good:#227A50; --good-soft:#E1F0E6; --good-ink:#0F4A2C;
  --warn:#A8600A; --warn-soft:#FBEAD2; --warn-ink:#5C3400;
  --crit:#B23A2C; --crit-soft:#F7E1DC; --crit-ink:#6B1F14;
  --info:#2B5F8A; --info-soft:#E1ECF5; --info-ink:#153A55;

  --border:#E6DEC2; --border-strong:#D6CBA5;

  /* Élévation : 2 niveaux, volontairement discrets (fond crème = contrastes doux) */
  --shadow-sm: 0 1px 2px rgba(45,36,12,.06);
  --shadow: 0 1px 2px rgba(45,36,12,.05), 0 8px 24px -16px rgba(45,36,12,.22);
  --shadow-lg: 0 2px 4px rgba(45,36,12,.06), 0 24px 48px -28px rgba(45,36,12,.35);

  --tile-accent-text:#3D3300;
  --radius:16px; --radius-sm:10px; --radius-xs:8px;
  --ring: 0 0 0 3px rgba(226,196,0,.45);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; background:var(--bg); color:var(--text);
  font-family:Karla, "Segoe UI", system-ui, sans-serif;
  font-size:15.5px; line-height:1.5;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  background-image:
    radial-gradient(1100px 420px at 100% -80px, var(--accent-wash), transparent 70%),
    radial-gradient(900px 380px at -10% -60px, #FFFDF2, transparent 70%);
  background-attachment:fixed;
}
::selection{background:var(--accent-soft); color:var(--accent-ink);}

/* Focus visible homogène partout (accessibilité clavier) */
:where(button, input, textarea, [tabindex]):focus-visible{
  outline:none; box-shadow:var(--ring); border-radius:var(--radius-xs);
}

/* Barres de défilement fines, dans la palette */
.wrap-scroll, .campaign-form textarea, .mail-text{scrollbar-width:thin; scrollbar-color:var(--border-strong) transparent;}
.wrap-scroll::-webkit-scrollbar, .campaign-form textarea::-webkit-scrollbar, .mail-text::-webkit-scrollbar{width:10px; height:10px;}
.wrap-scroll::-webkit-scrollbar-thumb, .campaign-form textarea::-webkit-scrollbar-thumb, .mail-text::-webkit-scrollbar-thumb{
  background:var(--border-strong); border-radius:99px; border:3px solid transparent; background-clip:content-box;
}
.wrap-scroll::-webkit-scrollbar-thumb:hover{background:var(--text-faint); background-clip:content-box;}
.wrap-scroll::-webkit-scrollbar-track{background:transparent;}

.topstripe{
  height:4px; position:sticky; top:0; z-index:60;
  background:linear-gradient(90deg, var(--accent), var(--good) 55%, var(--accent) 100%);
}
.wrap{max-width:none; margin:0; padding:0 clamp(14px, 2vw, 32px) 70px;}

/* ---------------------------------------------------------------- Masthead */
/* Collant : sur une page longue (1100 prospects) on garde l'accès aux onglets
   et la date de dernière maj sous les yeux. */
.masthead{
  position:sticky; top:4px; z-index:50;
  display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
  margin:0 calc(clamp(14px, 2vw, 32px) * -1) 20px; padding:14px clamp(14px, 2vw, 32px);
  background:rgba(246,241,226,.82); backdrop-filter:blur(12px) saturate(1.2);
  border-bottom:1px solid var(--border);
}
.masthead .id{display:flex; align-items:center; gap:13px;}
.mark{
  font-family:Oswald, sans-serif; font-weight:700; font-size:20px; color:var(--accent-ink);
  background:linear-gradient(160deg, #F4DC4A, var(--accent) 60%, var(--accent-strong));
  width:46px; height:46px; border-radius:13px;
  display:flex; align-items:center; justify-content:center; letter-spacing:-.02em;
  box-shadow:var(--shadow), inset 0 1px 0 rgba(255,255,255,.55);
  flex-shrink:0;
}
.masthead h1{
  font-family:Oswald, sans-serif; font-weight:600; text-transform:uppercase;
  letter-spacing:.02em; font-size:clamp(18px,2.6vw,25px); margin:0; text-wrap:balance; line-height:1.1;
}
.masthead .eyebrow{
  display:block; font-size:11.5px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--text-faint); font-weight:700; margin-bottom:1px;
}
.updated{
  font-variant-numeric:tabular-nums; font-size:12.5px; color:var(--text-muted); white-space:nowrap;
  display:inline-flex; align-items:center; gap:7px;
  background:var(--surface); border:1px solid var(--border); border-radius:99px;
  padding:7px 14px; box-shadow:var(--shadow-sm);
}
.updated .dot{
  display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--good);
  box-shadow:0 0 0 3px var(--good-soft); flex-shrink:0;
}
@media (prefers-reduced-motion: no-preference){
  .updated .dot{animation:pulse 2.8s ease-in-out infinite;}
  @keyframes pulse{0%,100%{box-shadow:0 0 0 3px var(--good-soft);} 50%{box-shadow:0 0 0 5px rgba(34,122,80,.10);}}
}

/* ------------------------------------------------------------------ Tuiles */
.tiles{display:grid; grid-template-columns:1.25fr 1fr 1fr; gap:14px; margin-bottom:16px;}
.tile{
  position:relative; overflow:hidden;
  background:var(--surface); border:1px solid var(--border); border-radius:var(--radius);
  padding:18px 20px 16px; box-shadow:var(--shadow);
}
.tile .label{
  font-size:11.5px; text-transform:uppercase; letter-spacing:.1em; color:var(--text-faint); font-weight:700;
}
.tile .value{
  font-family:Oswald, sans-serif; font-weight:600; font-size:clamp(34px, 3.4vw, 46px);
  line-height:1; margin-top:10px; font-variant-numeric:tabular-nums; letter-spacing:-.01em;
}
.tile .sub{font-size:13px; color:var(--text-muted); margin-top:8px;}
.tile.accent{
  background:linear-gradient(150deg, var(--accent-soft), #FFFEF7 72%);
  border-color:var(--accent);
}
.tile.accent::after{
  content:''; position:absolute; right:-40px; top:-40px; width:150px; height:150px; border-radius:50%;
  background:radial-gradient(circle, rgba(226,196,0,.22), transparent 65%); pointer-events:none;
}
.tile.accent .value{color:var(--tile-accent-text);}

/* Delta 7 j / 7 j précédents, calculé côté client sur l'historique déjà présent */
.trend{
  display:inline-flex; align-items:center; gap:5px; margin-top:9px;
  font-size:12px; font-weight:700; padding:3px 10px; border-radius:99px;
  background:var(--surface-3); color:var(--text-muted); font-variant-numeric:tabular-nums;
}
.trend.up{background:var(--good-soft); color:var(--good-ink);}
.trend.down{background:var(--crit-soft); color:var(--crit-ink);}
.trend.flat{background:var(--surface-3); color:var(--text-muted);}
.trend[hidden]{display:none;}

.row2{display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:16px;}

/* --------------------------------------------------------------- Colonnes  */
/* Données du business à gauche, actions à faire à droite. Une seule page,
   chaque tableau garde son propre défilement interne (.wrap-scroll). */
.split{display:grid; grid-template-columns:0.88fr 1.12fr; gap:18px; align-items:start;}
.split-col{display:flex; flex-direction:column; min-width:0;}
.split-heading{
  font-family:Oswald, sans-serif; font-weight:700; text-transform:uppercase; letter-spacing:.06em;
  font-size:12.5px; color:var(--text-faint); margin:0 0 10px; display:flex; align-items:center; gap:8px;
}

/* ------------------------------------------------------------------ Cartes */
.card{
  background:var(--surface); border:1px solid var(--border); border-radius:var(--radius);
  box-shadow:var(--shadow); margin-bottom:16px; overflow:hidden;
  transition:box-shadow .2s ease, border-color .2s ease;
}
.card:hover{box-shadow:var(--shadow-lg);}
.card h2{
  font-family:Oswald, sans-serif; font-weight:600; text-transform:uppercase; letter-spacing:.03em; font-size:14px;
  margin:0; padding:15px 20px; border-bottom:1px solid var(--border); color:var(--text);
  display:flex; justify-content:space-between; align-items:center; gap:10px;
  background:linear-gradient(180deg, #FFFFFF, var(--surface-2));
}
.card h2 .muted{
  font-family:Karla, sans-serif; font-variant-numeric:tabular-nums; text-transform:none; letter-spacing:0;
  color:var(--text-faint); font-weight:600; font-size:13px;
}
/* Liseré de couleur en tête de carte : repère visuel du type de section
   (rouge = décision, orange = en attente, gris = info, vert = automatique). */
.card[data-tone]{position:relative;}
.card[data-tone]::before{
  content:''; position:absolute; top:0; left:0; right:0; height:3px; z-index:1;
}
.card[data-tone="crit"]::before{background:linear-gradient(90deg, var(--crit), #E08A79);}
.card[data-tone="warn"]::before{background:linear-gradient(90deg, var(--warn), #E9B573);}
.card[data-tone="good"]::before{background:linear-gradient(90deg, var(--good), #7EC3A0);}
.card[data-tone="info"]::before{background:linear-gradient(90deg, var(--info), #8FB8D4);}
.card[data-tone="accent"]::before{background:linear-gradient(90deg, var(--accent), var(--accent-soft));}

/* ---------------------------------------------------------- Graphes barres */
.chart-body{padding:16px 20px 12px;}
.bars{
  display:flex; align-items:flex-end; gap:5px; height:160px; position:relative;
  padding:16px 0 0; border-bottom:1.5px solid var(--border-strong);
}
/* Lignes de repère horizontales (25/50/75 %) tracées en fond, pas en éléments */
.bars::before{
  content:''; position:absolute; inset:16px 0 0; pointer-events:none;
  background:repeating-linear-gradient(to top, transparent 0, transparent calc(33.33% - 1px), var(--border) calc(33.33% - 1px), var(--border) 33.33%);
  opacity:.8;
}
.bar-col{
  flex:1; display:flex; flex-direction:column; align-items:center; justify-content:flex-end;
  height:100%; min-width:0; position:relative; gap:0;
}
.bar-col .bar-wrap{flex:1; width:100%; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; min-height:0;}
.bar{
  width:100%; max-width:26px; border-radius:5px 5px 2px 2px; min-height:3px;
  transition:filter .15s ease, transform .15s ease;
}
.bars.relances .bar{background:linear-gradient(to top, var(--accent-strong), #F6E480);}
.bars.reponses .bar{background:linear-gradient(to top, var(--good), #8FCFAE);}
.bar-col:hover .bar{filter:brightness(1.07); transform:scaleY(1.015); transform-origin:bottom;}
.bars.relances .bar-col.today .bar{
  box-shadow:0 0 0 2px var(--accent-ink) inset, 0 0 0 3px var(--accent-wash);
}
.bars.reponses .bar-col.today .bar{
  box-shadow:0 0 0 2px var(--good-ink) inset, 0 0 0 3px var(--good-soft);
}
.bar-count{
  font-variant-numeric:tabular-nums; font-size:10.5px; font-weight:700; color:var(--text);
  line-height:1; padding-bottom:5px; white-space:nowrap; letter-spacing:-.02em;
}
.bar-count.zero{color:var(--text-faint); font-weight:600;}
.bar-day{
  font-variant-numeric:tabular-nums; font-size:10.5px; color:var(--text-faint); white-space:nowrap;
  padding-top:7px; letter-spacing:-.02em;
}
.bar-col.hide-label .bar-day{visibility:hidden;}
.bar-col.today .bar-day{color:var(--text); font-weight:700;}

/* ------------------------------------------------------------------- Chips */
.chips{display:flex; flex-wrap:wrap; gap:8px; padding:16px 20px;}
.chip{
  display:inline-flex; align-items:center; gap:8px; background:var(--surface-2);
  border:1px solid var(--border); border-radius:99px; padding:7px 14px 7px 12px; font-size:14px;
  transition:border-color .15s ease, background .15s ease;
}
.chip:hover{border-color:var(--border-strong); background:var(--surface-3);}
.chip .dot{width:7px; height:7px; border-radius:50%; background:var(--good); flex-shrink:0;}
.chip b{font-variant-numeric:tabular-nums; color:var(--text);}

/* ---------------------------------------------------------------- Tableaux */
table{width:100%; border-collapse:collapse; font-size:14.5px;}
thead th{
  text-align:left; font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:var(--text-faint);
  font-weight:700; padding:10px 18px; border-bottom:1px solid var(--border);
  background:var(--surface-2); position:sticky; top:0; z-index:2; white-space:nowrap;
}
thead th::after{
  content:''; position:absolute; left:0; right:0; bottom:-1px; height:1px; background:var(--border);
}
tbody td{padding:12px 18px; border-bottom:1px solid var(--border); vertical-align:top; line-height:1.45;}
tbody tr:last-child td{border-bottom:none;}
tbody tr{transition:background .12s ease;}
tbody tr:hover{background:var(--surface-2);}
tbody tr.urgent-crit{box-shadow:inset 3px 0 0 var(--crit);}
tbody tr.urgent-warn{box-shadow:inset 3px 0 0 var(--warn);}
tbody tr.urgent-ok{box-shadow:inset 3px 0 0 var(--good);}
.nom{font-weight:700; line-height:1.35;}
.prospect{color:var(--text-muted); font-size:13.5px;}
.mail{font-variant-numeric:tabular-nums; font-size:13px; word-break:break-word; color:var(--text-muted);}
td.num{font-variant-numeric:tabular-nums; white-space:nowrap;}
.empty{padding:34px 20px; text-align:center; color:var(--text-faint); font-size:14.5px;}

/* Zone défilante : hauteur bornée + dégradé de fin pour signaler qu'il reste du contenu */
.wrap-scroll{
  overflow-x:auto; overflow-y:auto; max-height:min(52vh, 460px);
  position:relative;
  mask-image:linear-gradient(to bottom, #000 calc(100% - 26px), transparent 100%);
  -webkit-mask-image:linear-gradient(to bottom, #000 calc(100% - 26px), transparent 100%);
}
/* Panneau de détail ouvert -> on agrandit et on retire le masque, sinon le texte
   du mail se retrouve coupé en bas par le dégradé. */
.wrap-scroll.expanded{max-height:min(80vh, 900px); mask-image:none; -webkit-mask-image:none;}
.wrap-scroll.no-fade{mask-image:none; -webkit-mask-image:none;}

/* Colonnes du tableau "à décider" : la suggestion IA prend la place restante
   plutôt que de laisser un vide à droite quand la carte est large. */
#a-traiter-table{table-layout:fixed;}
#a-traiter-table th:nth-child(1), #a-traiter-table td:nth-child(1){width:19%;}
#a-traiter-table th:nth-child(2), #a-traiter-table td:nth-child(2){width:12%;}
#a-traiter-table th:nth-child(3), #a-traiter-table td:nth-child(3){width:16%;}
#a-traiter-table th:nth-child(4), #a-traiter-table td:nth-child(4){width:27%;}
#a-traiter-table th:nth-child(5), #a-traiter-table td:nth-child(5){width:10%;}
#a-traiter-table th:nth-child(6), #a-traiter-table td:nth-child(6){width:16%;}
#a-traiter-table .mail{word-break:break-word;}

#non-reconnus-table{table-layout:fixed;}
#non-reconnus-table th:nth-child(1), #non-reconnus-table td:nth-child(1){width:24%;}
#non-reconnus-table th:nth-child(2), #non-reconnus-table td:nth-child(2){width:24%;}
#non-reconnus-table th:nth-child(3), #non-reconnus-table td:nth-child(3){width:29%;}
#non-reconnus-table th:nth-child(4), #non-reconnus-table td:nth-child(4){width:11%;}
#non-reconnus-table th:nth-child(5), #non-reconnus-table td:nth-child(5){width:15%;}

#tarifs-table{table-layout:fixed;}
#tarifs-table th:nth-child(1), #tarifs-table td:nth-child(1){width:26%;}
#tarifs-table th:nth-child(2), #tarifs-table td:nth-child(2){width:16%;}
#tarifs-table th:nth-child(3), #tarifs-table td:nth-child(3){width:22%;}
#tarifs-table th:nth-child(4), #tarifs-table td:nth-child(4){width:20%;}
#tarifs-table th:nth-child(5), #tarifs-table td:nth-child(5){width:16%;}

#envoyes-table th:nth-child(2), #envoyes-table td:nth-child(2){word-break:break-word;}

/* Ligne cliquable -> ouvre le panneau de détail (plus robuste qu'un 2e bouton
   à caser dans une colonne déjà étroite). */
.clickable-row{cursor:pointer;}
.clickable-row .nom::after{
  content:'›'; display:inline-block; margin-left:7px; color:var(--text-faint);
  font-weight:400; transform:rotate(90deg); transition:transform .18s ease, color .18s ease;
}
.clickable-row.row-open .nom::after{transform:rotate(-90deg); color:var(--accent-ink);}
.clickable-row.row-open{background:var(--accent-wash);}
.clickable-row.row-open td{border-bottom-color:transparent;}
.actions-cell{white-space:normal;}
td .btn-done{white-space:normal; width:100%; text-align:center; line-height:1.25;}

/* Panneau dépliant : casse volontairement le look "tableau" (fond distinct,
   coins arrondis, marge) pour se lire comme un panneau et pas une ligne de plus. */
.detail-row td{background:var(--accent-wash); padding:0 18px 18px;}
.mail-detail{
  display:flex; flex-direction:column; gap:14px; background:var(--surface);
  border:1px solid var(--border-strong); border-radius:12px; padding:16px 18px;
  box-shadow:var(--shadow-sm);
}
.mail-text{
  white-space:pre-wrap; word-break:break-word; font-size:14px; line-height:1.6; color:var(--text);
  background:var(--surface-2); border:1px solid var(--border); border-radius:10px; padding:14px 16px;
  max-height:340px; overflow-y:auto;
}
.detail-cols{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
.reply-box, .correction-box{display:flex; flex-direction:column; gap:7px;}
.reply-box label, .correction-box label{
  font-size:11.5px; font-weight:700; color:var(--text-faint); text-transform:uppercase; letter-spacing:.07em;
}
.reply-box textarea, .correction-box textarea{
  font:inherit; font-size:14px; padding:10px 12px; border-radius:9px; border:1px solid var(--border);
  background:var(--surface); color:var(--text); resize:vertical; width:100%;
}
.reply-box textarea:focus, .correction-box textarea:focus{outline:none; border-color:var(--accent); box-shadow:var(--ring);}
.detail-actions{display:flex; align-items:center; gap:10px; flex-wrap:wrap;}

/* ------------------------------------------------------------------ Boutons */
.btn-done, .btn-send-reply, .btn-send-correction{
  font-family:Karla, sans-serif; font-size:13px; font-weight:700; border-radius:8px;
  padding:8px 13px; cursor:pointer; white-space:nowrap;
  transition:filter .12s ease, transform .12s ease, box-shadow .12s ease;
}
.btn-done{color:var(--good-ink); background:var(--good-soft); border:1px solid rgba(34,122,80,.45);}
.btn-send-reply{color:#fff; background:var(--good); border:1px solid var(--good-ink); padding:9px 15px; font-size:13.5px;}
.btn-send-correction{color:var(--warn-ink); background:var(--warn-soft); border:1px solid rgba(168,96,10,.45); padding:9px 15px; font-size:13.5px;}
.btn-done:hover, .btn-send-reply:hover, .btn-send-correction:hover{filter:brightness(1.06); transform:translateY(-1px); box-shadow:var(--shadow-sm);}
.btn-done:active, .btn-send-reply:active, .btn-send-correction:active{transform:translateY(0);}
.btn-done:disabled, .btn-send-reply:disabled, .btn-send-correction:disabled{opacity:.45; cursor:default; transform:none; box-shadow:none;}
.send-status, .correction-status{font-size:13px; color:var(--text-muted);}
.row-done{opacity:.35; transition:opacity .3s ease;}

/* ------------------------------------------------------------- Pastilles   */
.count-badge{
  font-variant-numeric:tabular-nums; font-size:12.5px; font-weight:700; color:#fff; background:var(--crit);
  padding:3px 11px; border-radius:99px; box-shadow:0 0 0 3px var(--crit-soft);
}
.age{
  display:inline-flex; align-items:center; gap:6px; font-size:12.5px; font-weight:700;
  padding:4px 10px; border-radius:99px; white-space:nowrap;
}
.age.urgent-ok{color:var(--good-ink); background:var(--good-soft);}
.age.urgent-warn{color:var(--warn-ink); background:var(--warn-soft);}
.age.urgent-crit{color:var(--crit-ink); background:var(--crit-soft);}
.status-pill{
  display:inline-block; font-size:12.5px; font-weight:700; padding:4px 10px; border-radius:99px;
  background:var(--surface-3); color:var(--text-muted); white-space:nowrap;
}

/* Étiquette de classification IA (interessé / refus / à relancer / ambigu) */
.tag-ia{
  display:inline-flex; align-items:center; gap:5px; font-size:11px; font-weight:700;
  text-transform:uppercase; letter-spacing:.05em; padding:3px 9px; border-radius:6px;
  background:var(--surface-3); color:var(--text-muted); white-space:nowrap;
}
.tag-ia.interesse{background:var(--good-soft); color:var(--good-ink);}
.tag-ia.refus{background:var(--crit-soft); color:var(--crit-ink);}
.tag-ia.a_relancer{background:var(--warn-soft); color:var(--warn-ink);}
.tag-ia.ambigu{background:var(--info-soft); color:var(--info-ink);}
.tag-ia.refus_poli{background:var(--surface-3); color:var(--text-muted);}
.tag-ia.mauvais_contact{background:var(--accent-soft); color:var(--accent-ink);}
.tag-ia.hors_demarchage{background:var(--warn-soft); color:var(--warn-ink);}
.tag-prio{
  display:inline-flex; align-items:center; font-size:11px; font-weight:700; text-transform:uppercase;
  letter-spacing:.05em; padding:3px 9px; border-radius:6px; background:var(--crit); color:#fff;
}
.row-tags{display:flex; flex-wrap:wrap; gap:5px; margin-top:6px;}

/* Suggestion IA */
.ia{
  font-size:13.5px; line-height:1.5; color:var(--text); background:var(--accent-wash);
  border-left:3px solid var(--accent); padding:8px 12px; border-radius:0 8px 8px 0;
}
.ia.none{color:var(--text-faint); font-style:italic; border-left-color:var(--border); background:transparent; padding-left:0;}
/* Jauge de confiance IA : barre fine sous la suggestion, plus lisible qu'un "87 %" */
.conf{display:flex; align-items:center; gap:7px; margin-top:7px; font-size:11px; color:var(--text-faint); font-weight:700;}
.conf-bar{flex:1; max-width:90px; height:4px; border-radius:99px; background:var(--border); overflow:hidden;}
.conf-bar i{display:block; height:100%; border-radius:99px; background:var(--accent-strong);}
.conf.low .conf-bar i{background:var(--crit);}
.conf.mid .conf-bar i{background:var(--warn);}
.conf.high .conf-bar i{background:var(--good);}

/* ------------------------------------------------------------- Recherche   */
.search-bar{padding:14px 20px; border-bottom:1px solid var(--border); background:var(--surface-2);}
.search-bar input{
  width:100%; font:inherit; font-size:15px; padding:11px 14px 11px 40px; border-radius:10px;
  border:1px solid var(--border); background:var(--surface); color:var(--text);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238A7F62' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.6-3.6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:13px center; background-size:17px;
}
.search-bar input:focus{outline:none; border-color:var(--accent); box-shadow:var(--ring);}
.search-hint{font-size:12.5px; color:var(--text-faint); margin-top:7px;}

/* ------------------------------------------------------------------ Onglets */
.tabs{display:flex; gap:4px; background:var(--surface); border:1px solid var(--border); border-radius:99px; padding:4px; box-shadow:var(--shadow-sm);}
.tab-btn{
  font-family:Oswald, sans-serif; font-weight:600; text-transform:uppercase; letter-spacing:.03em;
  font-size:12.5px; padding:9px 20px; border-radius:99px; border:none;
  background:transparent; color:var(--text-muted); cursor:pointer; transition:background .15s ease, color .15s ease;
}
.tab-btn:hover{color:var(--text); background:var(--surface-2);}
.tab-btn.active{background:var(--accent); color:var(--accent-ink); box-shadow:var(--shadow-sm);}
.tab-panel[hidden]{display:none;}
@media (prefers-reduced-motion: no-preference){
  .tab-panel:not([hidden]){animation:fadeIn .22s ease;}
  @keyframes fadeIn{from{opacity:0; transform:translateY(4px);} to{opacity:1; transform:none;}}
}

/* --------------------------------------------------- Onglet "campagne"     */
/* Un champ de saisie de 1500 px de large est illisible : on borne la colonne de
   redaction, contrairement au suivi qui profite de toute la largeur. */
#tab-campagne{max-width:1080px; margin:0 auto;}
.campaign-form{padding:18px 20px;}
.campaign-form label{
  display:block; font-size:11.5px; font-weight:700; color:var(--text-faint);
  text-transform:uppercase; letter-spacing:.08em; margin:18px 0 6px;
}
.campaign-form label:first-child{margin-top:0;}
.campaign-form input[type="text"], .campaign-form input[type="date"], .campaign-form textarea{
  width:100%; font:inherit; font-size:15px; padding:12px 14px; border-radius:10px;
  border:1px solid var(--border); background:var(--surface-2); color:var(--text); outline:none;
  transition:border-color .15s ease, background .15s ease;
}
.campaign-form input:focus, .campaign-form textarea:focus{border-color:var(--accent); background:var(--surface); box-shadow:var(--ring);}
.campaign-form textarea{min-height:340px; resize:vertical; line-height:1.55; font-family:inherit;}
.campaign-form .row2{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:0;}
.campaign-form .hint{font-size:13px; color:var(--text-muted); margin:8px 0 0;}
.var-hints{margin-top:12px; padding:13px 15px; background:var(--surface-2); border:1px solid var(--border); border-radius:10px;}
.var-hint{display:flex; gap:10px; align-items:baseline; font-size:13px; color:var(--text-muted); margin-bottom:7px;}
.var-hint:last-of-type{margin-bottom:0;}
.var-hint code, .var-hints .hint code{
  background:var(--surface); border:1px solid var(--border); border-radius:6px; padding:2px 7px;
  font-family:"Courier New", monospace; font-weight:700; font-size:12.5px; color:var(--accent-ink); flex-shrink:0;
}
.var-hints .hint{margin-top:11px; padding-top:11px; border-top:1px solid var(--border);}
.campaign-actions{display:flex; gap:12px; flex-wrap:wrap; align-items:center; margin-top:22px;}
.btn-primary{
  font-family:Oswald, sans-serif; font-weight:700; text-transform:uppercase; letter-spacing:.04em;
  font-size:14px; padding:14px 28px; border-radius:11px; border:none; cursor:pointer;
  background:linear-gradient(160deg, #F4DC4A, var(--accent) 65%, var(--accent-strong));
  color:var(--accent-ink); box-shadow:var(--shadow);
  transition:filter .15s ease, transform .15s ease, box-shadow .15s ease;
}
.btn-primary:hover{filter:brightness(1.05); transform:translateY(-1px); box-shadow:var(--shadow-lg);}
.btn-primary:active{transform:translateY(0);}
.btn-secondary{
  font-family:Karla, sans-serif; font-weight:700; font-size:14px; padding:13px 20px;
  border-radius:11px; border:1px solid var(--border-strong); background:var(--surface); color:var(--text-muted);
  cursor:pointer; transition:border-color .15s ease, color .15s ease, transform .15s ease;
}
.btn-secondary:hover{border-color:var(--text-faint); color:var(--text); transform:translateY(-1px);}
.btn-secondary:active{transform:translateY(0);}
.status{font-size:13px; color:var(--text-muted); font-weight:600;}

.hist-list{padding:16px 20px;}
.hist-empty{color:var(--text-muted); font-size:14.5px;}
.hist-status{margin:0; padding:0 20px 16px; color:var(--text-faint); font-size:12.5px;}
.hist-item{
  border:1px solid var(--border); border-radius:11px; padding:14px 16px; background:var(--surface-2);
  margin-bottom:10px; display:flex; justify-content:space-between; align-items:flex-start; gap:12px;
  transition:border-color .15s ease, background .15s ease;
}
.hist-item:hover{border-color:var(--border-strong); background:var(--surface-3);}
.hist-item:last-child{margin-bottom:0;}
.hist-info{min-width:0; flex:1;}
.hist-objet{font-weight:700; font-size:14.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.hist-preview{font-size:13px; color:var(--text-muted); margin-top:4px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.hist-date{font-size:12px; color:var(--text-faint); margin-top:6px;}
.hist-buttons{display:flex; gap:8px; flex-shrink:0;}
.hist-buttons .btn-secondary{padding:9px 15px; font-size:13px;}

#waiting-card{border-color:var(--accent);}
.waiting-item{
  border:1px solid var(--border); border-radius:11px; padding:14px 16px;
  margin-bottom:10px; display:flex; justify-content:space-between; align-items:center; gap:12px;
}
.waiting-item:last-child{margin-bottom:0;}
.waiting-item.far{border-color:var(--warn); background:var(--warn-soft);}
.waiting-info{min-width:0; flex:1;}
.waiting-objet{font-weight:700; font-size:14.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.waiting-when{font-size:13px; color:var(--text-muted); margin-top:4px;}
.waiting-when b{color:var(--text); font-variant-numeric:tabular-nums;}
.waiting-badge{
  font-size:12.5px; font-weight:700; padding:4px 11px; border-radius:99px; white-space:nowrap;
  background:var(--accent-soft); color:var(--accent-ink);
}
.waiting-badge.far{background:var(--warn); color:#fff;}

/* Bandeau de confirmation après "Lancer la campagne" (persistant, pas un toast) */
.confirm-banner{
  border-radius:13px; padding:18px 22px; margin-bottom:16px;
  display:flex; align-items:flex-start; gap:14px; box-shadow:var(--shadow);
}
.confirm-banner[hidden]{display:none;}
.confirm-banner.sending{background:var(--surface-2); border:1px solid var(--border); color:var(--text-muted);}
.confirm-banner.ok{background:var(--good-soft); border:1px solid var(--good); color:var(--good-ink);}
.confirm-banner.err{background:var(--crit-soft); border:1px solid var(--crit); color:var(--crit-ink);}
.confirm-banner .cb-icon{font-size:22px; line-height:1; flex-shrink:0;}
.confirm-banner .cb-body{flex:1; min-width:0;}
.confirm-banner .cb-title{font-family:Oswald, sans-serif; font-weight:700; font-size:15px; text-transform:uppercase; letter-spacing:.02em; margin:0 0 4px;}
.confirm-banner .cb-detail{font-size:14px; line-height:1.5;}
.confirm-banner .cb-close{
  background:transparent; border:none; cursor:pointer; font-size:18px; line-height:1; padding:2px 4px;
  color:inherit; opacity:.6; flex-shrink:0;
}
.confirm-banner .cb-close:hover{opacity:1;}

/* ---------------------------------------------------- Mini-calendrier date */
.date-picker-wrap{position:relative;}
#camp-date-display{cursor:pointer; background-image:none;}
.date-picker-pop{
  position:absolute; top:calc(100% + 8px); left:0; z-index:20; width:284px;
  background:var(--surface); border:1px solid var(--border-strong); border-radius:13px; box-shadow:var(--shadow-lg);
  padding:14px;
}
.dp-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:10px;}
.dp-head .dp-label{font-family:Oswald, sans-serif; font-weight:600; font-size:14px; text-transform:capitalize; color:var(--text);}
.dp-nav{
  width:28px; height:28px; border-radius:8px; border:1px solid var(--border); background:var(--surface);
  color:var(--text-muted); cursor:pointer; font-size:14px; line-height:1; display:flex; align-items:center; justify-content:center;
}
.dp-nav:hover{background:var(--surface-2); color:var(--text);}
.dp-grid{display:grid; grid-template-columns:repeat(7,1fr); gap:2px; text-align:center;}
.dp-dow{font-size:11px; font-weight:700; color:var(--text-faint); text-transform:uppercase; padding:4px 0 8px;}
.dp-day{font-size:13.5px; padding:7px 0; border-radius:8px; cursor:pointer; color:var(--text); font-variant-numeric:tabular-nums;}
.dp-day:hover{background:var(--surface-2);}
.dp-day.dp-muted{color:var(--text-faint); opacity:.5;}
.dp-day.dp-today{font-weight:700; box-shadow:inset 0 0 0 1.5px var(--accent);}
.dp-day.dp-selected{background:var(--accent); color:var(--accent-ink); font-weight:700;}
.dp-day.dp-past{opacity:.35; cursor:default; pointer-events:none;}
.dp-foot{display:flex; justify-content:space-between; gap:8px; margin-top:10px; padding-top:10px; border-top:1px solid var(--border);}
.dp-foot button{font-family:Karla, sans-serif; font-size:12.5px; font-weight:700; color:var(--text-muted); background:transparent; border:none; cursor:pointer; padding:4px 6px;}
.dp-foot button:hover{color:var(--text);}

footer{font-size:12.5px; color:var(--text-faint); text-align:center; padding-top:14px;}

/* ------------------------------------------------------------ Écran d'accès */
#gate{position:fixed; inset:0; z-index:999; display:flex; align-items:center; justify-content:center; padding:24px;
  background:var(--bg);
  background-image:radial-gradient(900px 420px at 50% -60px, var(--accent-wash), transparent 70%);}
.gate-card{
  width:100%; max-width:370px; background:var(--surface); border:1px solid var(--border);
  border-radius:var(--radius); box-shadow:var(--shadow-lg); padding:34px 30px; position:relative; overflow:hidden;
}
.gate-card::before{
  content:''; position:absolute; top:0; left:0; right:0; height:4px;
  background:linear-gradient(90deg, var(--accent), var(--good) 55%, var(--accent) 100%);
}
.gate-mark{
  font-family:Oswald, sans-serif; font-weight:700; font-size:18px; color:var(--accent-ink);
  background:linear-gradient(160deg, #F4DC4A, var(--accent) 60%, var(--accent-strong));
  width:42px; height:42px; border-radius:12px; display:flex; align-items:center; justify-content:center;
  margin-bottom:16px; box-shadow:var(--shadow-sm);
}
.gate-card h1{font-family:Oswald, sans-serif; font-weight:700; font-size:1.4rem; margin:0 0 4px; color:var(--text); letter-spacing:.01em;}
.gate-card p{margin:0 0 24px; font-size:.9rem; color:var(--text-muted);}
.gate-card label{display:block; font-size:11.5px; font-weight:700; margin-bottom:6px; color:var(--text-faint); text-transform:uppercase; letter-spacing:.08em;}
.gate-card input{
  width:100%; padding:12px 14px; font:inherit; font-size:1rem; border:1px solid var(--border);
  border-radius:10px; background:var(--surface-2); color:var(--text); outline:none;
}
.gate-card input:focus{border-color:var(--accent); background:var(--surface); box-shadow:var(--ring);}
#gate-btn{
  width:100%; margin-top:16px; padding:13px; font-size:.95rem; font-weight:700; font-family:Oswald, sans-serif;
  letter-spacing:.04em; text-transform:uppercase; border:none; border-radius:10px; cursor:pointer;
  background:linear-gradient(160deg, #F4DC4A, var(--accent) 65%, var(--accent-strong)); color:var(--accent-ink);
  box-shadow:var(--shadow);
}
#gate-btn:hover{filter:brightness(1.05);}
#gate-err{display:none; margin-top:14px; padding:10px 12px; border-radius:10px; background:var(--crit-soft); color:var(--crit-ink); font-size:.85rem; font-weight:600;}
#gate-err.show{display:block;}

/* ------------------------------------------------------------- Responsive  */
@media (max-width:1240px){
  .split{grid-template-columns:1fr;}
  .tiles{grid-template-columns:repeat(3, 1fr);}
}
@media (max-width:900px){
  .detail-cols{grid-template-columns:1fr;}
  .row2{grid-template-columns:1fr;}
  .campaign-form .row2{grid-template-columns:1fr;}
}
@media (max-width:760px){
  body{font-size:15px;}
  .tiles{grid-template-columns:1fr;}
  .masthead{position:static; margin-bottom:16px;}
  .masthead .updated{order:3;}
  .tabs{width:100%; justify-content:center;}
  thead th, tbody td{padding:10px 14px;}
  .wrap-scroll{max-height:none; mask-image:none; -webkit-mask-image:none;}
  /* Sur mobile on masque les colonnes secondaires plutôt que de scroller latéralement */
  #a-traiter-table th:nth-child(2), #a-traiter-table td:nth-child(2),
  #a-traiter-table th:nth-child(3), #a-traiter-table td:nth-child(3),
  #envoyes-table th:nth-child(4), #envoyes-table td:nth-child(4){display:none;}
  #a-traiter-table th:nth-child(1), #a-traiter-table td:nth-child(1){width:32%;}
  #a-traiter-table th:nth-child(4), #a-traiter-table td:nth-child(4){width:28%;}
  #a-traiter-table th:nth-child(5), #a-traiter-table td:nth-child(5){width:16%;}
  #a-traiter-table th:nth-child(6), #a-traiter-table td:nth-child(6){width:24%;}
  /* Colonnes secondaires egalement masquees sur les 2 autres tableaux d'actions */
  #tarifs-table th:nth-child(2), #tarifs-table td:nth-child(2),
  #non-reconnus-table th:nth-child(2), #non-reconnus-table td:nth-child(2){display:none;}
  #tarifs-table th:nth-child(1), #tarifs-table td:nth-child(1){width:30%;}
  #tarifs-table th:nth-child(3), #tarifs-table td:nth-child(3){width:26%;}
  #tarifs-table th:nth-child(4), #tarifs-table td:nth-child(4){width:22%;}
  #tarifs-table th:nth-child(5), #tarifs-table td:nth-child(5){width:22%;}
  #non-reconnus-table th:nth-child(1), #non-reconnus-table td:nth-child(1){width:30%;}
  #non-reconnus-table th:nth-child(3), #non-reconnus-table td:nth-child(3){width:30%;}
  #non-reconnus-table th:nth-child(4), #non-reconnus-table td:nth-child(4){width:18%;}
  #non-reconnus-table th:nth-child(5), #non-reconnus-table td:nth-child(5){width:22%;}
}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms !important; transition-duration:.001ms !important;}
  html{scroll-behavior:auto;}
}

/* Retour immediat des actions (24/09/2026) */
tr.row-leaving{opacity:0; transform:translateX(24px); transition:opacity .25s ease, transform .25s ease;}
#toast-box{position:fixed; right:16px; bottom:16px; z-index:9999; display:flex; flex-direction:column; gap:8px; max-width:min(420px, calc(100vw - 32px));}
.toast{background:#1d1d1b; color:#fff; padding:10px 14px; border-radius:10px; font-size:14px; box-shadow:0 6px 20px rgba(0,0,0,.18); border-left:4px solid #FAE733; transition:opacity .4s ease, transform .4s ease;}
.toast.ok{border-left-color:#3fb950;}
.toast.warn{border-left-color:#e3a008;}
.toast.err{border-left-color:#e5484d;}
.toast.out{opacity:0; transform:translateY(8px);}
/* 29/10/2026 : bouton d'action (Annuler), fermeture, barre du délai d'annulation */
.toast{position:relative; overflow:hidden; display:flex; align-items:center; gap:10px; line-height:1.4;}
.toast-txt{flex:1; min-width:0;}
.toast-act{flex:none; border:1px solid #FAE733; background:none; color:#FAE733; border-radius:8px; padding:4px 10px; font:inherit; font-size:13px; font-weight:700; cursor:pointer;}
.toast-act:hover{background:#FAE733; color:#1d1d1b;}
.toast-x{flex:none; border:0; background:none; color:#9b988f; font-size:13px; padding:2px 4px; cursor:pointer;}
.toast-x:hover{color:#fff;}
.toast-barre{position:absolute; left:0; bottom:0; height:3px; width:100%; background:#FAE733; transform-origin:left; animation:toast-barre linear forwards;}
@keyframes toast-barre{from{transform:scaleX(1);} to{transform:scaleX(0);}}
@media (prefers-reduced-motion:reduce){ .toast-barre{animation:none;} }

/* ==== Onglet Contacts v4 (24/09/2026) : ajout rapide + filtres par etat + tableau + fiche en lecture ====
   Remplace les couches v1/v2/v3. Police Inter sur cet onglet, fond blanc, contraste fort. */
#tab-contacts, #tab-contacts button, #tab-contacts input, #tab-contacts select, #tab-contacts textarea{font-family:Inter, "Segoe UI", system-ui, sans-serif;}
#tab-contacts{
  --c-bg:#FFFFFF; --c-soft:#F7F6F2; --c-line:#E9E6DD; --c-text:#1A1915; --c-muted:#56534B; --c-dim:#8A867C;
  --c-sel:#FFF6C7; --c-accent:#E2C400; --c-accent-ink:#3D3300; --c-ring:0 0 0 3px rgba(226,196,0,.28);
  color:var(--c-text);
}
body:has(#tab-contacts:not([hidden])) footer{display:none;}
body:has(#tab-contacts:not([hidden])) .wrap{padding-bottom:10px;}
#tab-contacts kbd{font-family:inherit; font-size:11px; font-weight:600; padding:1px 5px; border-radius:5px; border:1px solid var(--c-line); background:#fff; color:var(--c-muted);}

/* ---- Ajout rapide ---- */
.qa{background:var(--c-bg); border:1px solid var(--c-line); border-radius:14px; box-shadow:0 1px 2px rgba(0,0,0,.04); padding:14px 16px; margin-bottom:14px;}
.qa-head{display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:10px;}
.qa-title{font-size:16px; font-weight:700; letter-spacing:-.01em;}
.qa-title span{font-weight:500; color:var(--c-muted); font-size:14px;}
.qa-right{display:flex; align-items:center; gap:14px;}
.qa-count{font-size:13px; font-weight:600; padding:4px 11px; border-radius:99px; background:#EEECE6; color:var(--c-muted); font-variant-numeric:tabular-nums;}
.qa-count.on{background:#FFF1A8; color:var(--c-accent-ink);}
.ct-link{background:none; border:0; padding:0; font-size:13.5px; font-weight:600; color:var(--c-text); text-decoration:underline; text-decoration-color:var(--c-accent); text-decoration-thickness:2px; text-underline-offset:3px; cursor:pointer;}
.ct-link:hover{text-decoration-color:var(--c-text);}
.qa-row{display:flex; flex-wrap:wrap; gap:10px; align-items:flex-end;}
.qa-f{display:flex; flex-direction:column; gap:4px; min-width:0; flex:1 1 160px;}
.qa-f > span{font-size:12.5px; font-weight:600; color:var(--c-muted);}
.qa-nom{flex:1.6 1 200px;} .qa-mail{flex:1.8 1 220px;} .qa-type{flex:1 1 150px;} .qa-ville{flex:1.3 1 170px;} .qa-zip{flex:0 0 96px;} .qa-note{flex:2 1 240px;}
.qa-f input, .qa-f select{font-size:15px; color:var(--c-text); height:40px; padding:0 11px; border:1px solid var(--c-line); border-radius:9px; background:var(--c-soft); min-width:0; width:100%;}
.qa-f input:focus, .qa-f select:focus{background:#fff; border-color:var(--c-accent); outline:none; box-shadow:var(--c-ring);}
.qa-f input.bad{border-color:#D92D20; background:#FFF5F4;}
.qa-go{flex:0 0 auto; height:40px; padding:0 18px; border:0; border-radius:9px; background:var(--c-accent); color:var(--c-accent-ink); font-size:15px; font-weight:700; cursor:pointer; display:inline-flex; align-items:center; gap:6px;}
.qa-go:hover{filter:brightness(1.05);}
.qa-go:disabled{opacity:.6; cursor:default;}
.qa-go kbd{background:rgba(255,255,255,.55); border-color:transparent; color:var(--c-accent-ink);}
.qa-more{margin-top:8px;}
.qa-more summary{font-size:13px; font-weight:600; color:var(--c-muted); cursor:pointer; width:max-content; padding:2px 0;}
.qa-more[open] summary{margin-bottom:8px;}
.qa-msg{margin:10px 0 0; padding:8px 12px; border-radius:9px; font-size:14px; line-height:1.45;}
.qa-msg[hidden]{display:none;}
.qa-msg.ok{background:#E6F4EA; color:#14532D;}
.qa-msg.warn{background:#FDF0D5; color:#6B3F00;}
.qa-msg.err{background:#FDE7E4; color:#8A1C12;}
.qa-msg .ct-link{font-size:14px; color:inherit;}

/* mode d'ajout : Un par un / Plusieurs a la fois */
.qa-left{display:flex; align-items:center; gap:14px; flex-wrap:wrap;}
.qa-seg{display:inline-flex; background:var(--c-soft); border:1px solid var(--c-line); border-radius:10px; padding:3px; gap:2px;}
.qa-seg button{border:0; background:none; padding:6px 13px; border-radius:7px; font-size:13.5px; font-weight:600; color:var(--c-muted); cursor:pointer; white-space:nowrap;}
.qa-seg button:hover{color:var(--c-text);}
.qa-seg button[aria-selected="true"]{background:#fff; color:var(--c-text); box-shadow:0 1px 2px rgba(0,0,0,.1), 0 0 0 1px var(--c-line);}
.qa-sub{font-size:13px; color:var(--c-dim);}
.qa[data-mode="un"] .qg, .qa[data-mode="plusieurs"] .qa-one{display:none;}

/* tableau type tableur */
.qg-help{font-size:13px; color:var(--c-muted); margin:0 0 8px; line-height:1.5;}
.qg-scroll{max-height:min(46vh, 430px); overflow:auto; border:1px solid var(--c-line); border-radius:10px; scrollbar-width:thin;}
.qg-table{width:100%; min-width:1000px; border-collapse:separate; border-spacing:0; table-layout:fixed; font-size:14px;}
.qg-table th{position:sticky; top:0; z-index:1; background:var(--c-soft); text-align:left; font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--c-dim); padding:8px; border-bottom:1px solid var(--c-line); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.qg-table th:nth-child(1){width:38px;} .qg-table th:nth-child(2){width:19%;} .qg-table th:nth-child(3){width:19%;}
.qg-table th:nth-child(4){width:130px;} .qg-table th:nth-child(5){width:12%;} .qg-table th:nth-child(6){width:76px;}
.qg-table th:nth-child(7){width:122px;} .qg-table th:nth-child(9){width:220px;} .qg-table th:nth-child(10){width:34px;}
.qg-table td{padding:0; height:36px; border-bottom:1px solid var(--c-line); border-right:1px solid var(--c-line); background:#fff;}
.qg-table td input, .qg-table td select{display:block; width:100%; height:35px; border:0; border-radius:0; background:transparent; padding:0 8px; font-size:14px; color:var(--c-text); min-width:0;}
.qg-table td input:focus, .qg-table td select:focus{outline:2px solid var(--c-accent); outline-offset:-2px; background:#FFFDF0; box-shadow:none;}
.qg-table td.qg-n{text-align:center; font-size:12px; color:var(--c-dim); background:var(--c-soft);}
.qg-table td.qg-st{padding:0 8px; font-size:12.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; border-right:0;}
.qg-table td.qg-x{border-right:0;}
.qg-x button{display:block; width:100%; height:35px; border:0; background:none; color:#C9C5BA; cursor:pointer; font-size:12px;}
.qg-x button:hover{color:#B42318;}
.qg-table tr.ok td.qg-st{color:#14532D; font-weight:600;}
.qg-table tr.warn td.qg-st{color:var(--c-dim);}
.qg-table tr.dup td{background:#FFFAEB;} .qg-table tr.dup td.qg-st{color:#8A5300;}
.qg-table tr.err td{background:#FFF6F5;} .qg-table tr.err td.qg-st{color:#B42318; font-weight:600;}
.qg-table td.qg-st .ct-link{font-size:12.5px; color:inherit;}
.qg-foot{display:flex; align-items:center; justify-content:flex-end; gap:8px; margin-top:10px; flex-wrap:wrap;}
.qg-sum{margin-right:auto; font-size:13.5px; color:var(--c-muted);}

/* ---- Liste ---- */
.ct-layout{display:grid; grid-template-columns:minmax(0, 1.3fr) minmax(380px, 1fr); gap:16px; min-height:460px;}
.ct-side, .ct-main{background:var(--c-bg); border:1px solid var(--c-line); border-radius:14px; box-shadow:0 1px 2px rgba(0,0,0,.04); min-height:0; overflow:hidden;}
.ct-side{display:flex; flex-direction:column;}
.ct-side-head{padding:12px 14px; border-bottom:1px solid var(--c-line);}
.ct-toolbar{display:grid; grid-template-columns:minmax(0, 1fr) 170px 210px; gap:8px;}
#ct-search{font-size:15px; height:40px; padding:0 12px; border:1px solid var(--c-line); border-radius:10px; background:var(--c-soft); color:var(--c-text); min-width:0;}
#ct-search:focus{background:#fff; border-color:var(--c-accent); outline:none; box-shadow:var(--c-ring);}
.ct-toolbar select{font-size:14px; height:40px; padding:0 8px; border:1px solid var(--c-line); border-radius:10px; background:#fff; color:var(--c-text); min-width:0;}
.ct-states{display:flex; flex-wrap:wrap; gap:6px; margin-top:10px;}
.ct-state{display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:500; padding:5px 11px; border-radius:99px; border:1px solid var(--c-line); background:#fff; color:var(--c-muted); cursor:pointer; white-space:nowrap;}
.ct-state::before{content:""; width:8px; height:8px; border-radius:99px; background:#C9C5BA;}
.ct-state[data-tone=""]::before{display:none;}
.ct-state[data-tone="a_envoyer"]::before{background:#E2C400;}
.ct-state[data-tone="contacte"]::before{background:#6B8BB5;}
.ct-state[data-tone="en_cours"]::before{background:#2F6FDB;}
.ct-state[data-tone="programme"]::before{background:#1F9254;}
.ct-state[data-tone="annee_pro"]::before, .ct-state[data-tone="a_trier"]::before{background:#D98A06;}
.ct-state[data-tone="refuse"]::before, .ct-state[data-tone="mail_ko"]::before{background:#D92D20;}
.ct-state[data-tone="sans_mail"]::before{background:transparent; border:1.5px solid #B5B1A6;}
.ct-state[data-tone="international"]::before{background:#0E9384;}
.ct-state b{font-weight:700; color:var(--c-text); font-variant-numeric:tabular-nums;}
.ct-state:hover{background:var(--c-soft);}
.ct-state.on{background:var(--c-text); border-color:var(--c-text); color:#fff;}
.ct-state.on b{color:#fff;}

.ct-thead, .ct-row{display:grid; grid-template-columns:minmax(0, 1.4fr) minmax(0, 1.4fr) 196px 108px; gap:12px; align-items:center; padding:0 14px;}
.ct-thead{height:34px; background:var(--c-soft); border-bottom:1px solid var(--c-line);}
.ct-thead button{background:none; border:0; padding:0; text-align:left; overflow:hidden; text-overflow:ellipsis; min-width:0; font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--c-dim); cursor:pointer; white-space:nowrap;}
.ct-thead button:hover, .ct-thead button.on{color:var(--c-text);}
.ct-thead button[data-dir="asc"]::after{content:" ↑";}
.ct-thead button[data-dir="desc"]::after{content:" ↓";}
.ct-list{flex:1; overflow-y:auto; scrollbar-width:thin; outline:none;}
.ct-row{height:46px; border-bottom:1px solid var(--c-line); cursor:pointer;}
.ct-row:hover{background:var(--c-soft);}
.ct-row.sel{background:var(--c-sel); box-shadow:inset 3px 0 0 var(--c-accent);}
.ct-row > div{min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.c-nom{display:flex; align-items:center; gap:8px;}
.ct-name{font-size:14.5px; font-weight:600; color:var(--c-text); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.c-lieu{font-size:13.5px; color:var(--c-muted);}
.c-envoi{font-size:13px; color:var(--c-muted); font-variant-numeric:tabular-nums;}
.ct-new-tag{flex:none; font-size:11px; font-weight:700; padding:1px 7px; border-radius:99px; background:#FFF1A8; color:var(--c-accent-ink);}
.t-dot{display:inline-block; width:8px; height:8px; border-radius:99px; margin-right:7px; background:#B5B1A6; vertical-align:1px;}
.t-dot[data-t="festival"]{background:#E8820C;}
.t-dot[data-t="bar"], .t-dot[data-t="cafe"]{background:#2F6FDB;}
.t-dot[data-t="salle"]{background:#8B5CF6;}
.t-dot[data-t="mairie"]{background:#1F9254;}
.t-dot[data-t="camping"], .t-dot[data-t="guinguette"]{background:#C9A800;}
.t-dot[data-t="presse"]{background:#DB2777;}
.ct-dim{font-size:12.5px; color:var(--c-dim);}
.ct-empty{padding:40px 14px; text-align:center; color:var(--c-dim);}
.ct-sync{display:flex; justify-content:space-between; gap:10px; padding:7px 14px; font-size:12px; color:var(--c-dim); border-top:1px solid var(--c-line); background:var(--c-soft);}
#ct-count{font-weight:600; color:var(--c-muted); font-variant-numeric:tabular-nums;}

/* pastilles d'etat */
.ct-chip{display:inline-block; flex:none; font-size:12px; font-weight:600; padding:2px 9px; border-radius:99px; background:#EEECE6; color:#4A473F; white-space:nowrap; max-width:100%; overflow:hidden; text-overflow:ellipsis; vertical-align:middle;}
.ct-chip.todo{background:#FFF1A8; color:#4A3F00;}
.ct-chip.sent{background:#E6EDF6; color:#28415F;}
.ct-chip.dim{background:transparent; color:var(--c-dim); box-shadow:inset 0 0 0 1px var(--c-line);}
.ct-chip.crit{background:#FDE7E4; color:#9B1C12;}
.ct-chip.good{background:#DDF3E4; color:#14532D;}
.ct-chip.info{background:#E0ECFB; color:#1E3A8A;}
.ct-chip.warn{background:#FDEFD6; color:#7C4A03;}
.c-etat .ct-chip + .ct-chip, .ct-chips .ct-chip + .ct-chip{margin-left:4px;}
.ct-chips{white-space:nowrap;}

/* ---- Panneau de droite sans fiche ---- */
.ct-main{position:relative;}
.ct-empty-panel{padding:24px 28px; overflow-y:auto; height:100%;}
.ct-empty-panel[hidden]{display:none;}
.ct-sum-top{display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:24px;}
.ct-stat{background:var(--c-soft); border-radius:12px; padding:14px 16px; display:flex; flex-direction:column; align-items:flex-start; gap:2px;}
.ct-stat.todo{background:#FFF8D1;}
.ct-stat b{font-size:28px; font-weight:700; letter-spacing:-.02em; font-variant-numeric:tabular-nums; line-height:1.15;}
.ct-stat span{font-size:13.5px; color:var(--c-muted);}
.ct-stat .ct-link{margin-top:6px;}
.ct-empty-panel h3, .ct-sec h3, .ct-hist-box summary{font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--c-dim); margin:0 0 10px; font-family:Inter, sans-serif;}
.ct-today{display:flex; flex-direction:column; border-top:1px solid var(--c-line);}
.ct-today-row{display:grid; grid-template-columns:minmax(0, 1.2fr) minmax(0, 1fr) auto 42px; gap:10px; align-items:center; padding:9px 6px; background:none; border:0; border-bottom:1px solid var(--c-line); text-align:left; cursor:pointer; font-size:14px;}
.ct-today-row:hover{background:var(--c-soft);}
.ct-meta{font-size:13px; color:var(--c-muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.ct-hint{font-size:14.5px; line-height:1.55; color:var(--c-muted); margin:0; max-width:560px;}
.ct-keys{font-size:12.5px; color:var(--c-dim); margin:24px 0 0; line-height:2;}

/* ---- Fiche ---- */
.ct-overlay[hidden]{display:none !important;}
.ct-drawer{background:var(--c-bg); display:flex; flex-direction:column; height:100%; width:100%;}
.ct-drawer-head{display:flex; justify-content:space-between; align-items:flex-start; gap:12px; padding:22px 26px 8px;}
.ct-drawer-head h2{font-family:Inter, sans-serif; font-size:24px; font-weight:700; letter-spacing:-.02em; margin:0; line-height:1.2; text-transform:none;}
.ct-drawer-head p{margin:4px 0 0; font-size:14px; color:var(--c-muted);}
.ct-badges{display:flex; flex-wrap:wrap; gap:6px; margin-top:10px;}
.ct-badges:empty{display:none;}
.ct-close{flex:none; width:34px; height:34px; border-radius:99px; border:1px solid var(--c-line); background:#fff; cursor:pointer; font-size:15px; color:var(--c-muted);}
.ct-actions{display:flex; flex-wrap:wrap; gap:8px; padding:8px 26px 14px; border-bottom:1px solid var(--c-line);}
.ct-actions[hidden]{display:none;}
.ct-act{font-size:14px; font-weight:600; color:var(--c-text); text-decoration:none; background:var(--c-soft); border:1px solid var(--c-line); border-radius:9px; padding:7px 13px; cursor:pointer; white-space:nowrap;}
.ct-act:hover{border-color:var(--c-accent); background:#fff;}
.ct-act.primary{background:var(--c-accent); border-color:var(--c-accent); color:var(--c-accent-ink); margin-left:auto;}
.ct-act.danger{background:#fff; border-color:#F3CDC7; color:#B42318;}
.ct-act.danger:hover{background:#FFF5F4; border-color:#B42318;}
.ct-undo{display:flex; flex-wrap:wrap; align-items:center; gap:6px 10px; background:#FDF0D5; color:#6B3F00; padding:10px 14px; border-radius:10px; margin-bottom:18px; font-size:14px;}
.ct-undo .ct-link{color:inherit; font-size:14px;}
.ct-drawer-body{flex:1; overflow-y:auto; padding:4px 26px 24px;}
.ct-drawer-body > div[hidden]{display:none;}
.ct-sec{padding:18px 0 6px; border-bottom:1px solid var(--c-line);}
.ct-kvs{display:grid; grid-template-columns:repeat(auto-fill, minmax(200px, 1fr)); gap:14px 20px; margin:0;}
.ct-kv{min-width:0;}
.ct-kv.wide{grid-column:1 / -1;}
.ct-kv dt{font-size:12.5px; font-weight:600; color:var(--c-dim);}
.ct-kv dd{margin:3px 0 0; font-size:15px; color:var(--c-text); overflow-wrap:anywhere; line-height:1.45;}
.ct-kv dd a{color:#1E4FB8; text-decoration:none;}
.ct-kv dd a:hover{text-decoration:underline;}
.ct-note{margin:0; font-size:15px; line-height:1.55; white-space:pre-wrap; background:var(--c-soft); border-radius:10px; padding:12px 14px; overflow-wrap:anywhere;}
.ct-vides{font-size:13px; color:var(--c-dim); margin:16px 0 0;}
.ct-vides .ct-link{font-size:13px;}
.ct-hist-box{border-bottom:0;}
.ct-hist-box summary{cursor:pointer; margin:0; width:max-content;}
.ct-hist-box[open] summary{margin-bottom:8px;}
.ct-hist{display:flex; flex-direction:column;}
.ct-h{display:flex; flex-direction:column; gap:2px; padding:8px 0; border-bottom:1px dashed var(--c-line); font-size:14px; overflow-wrap:anywhere;}
.ct-h-d{font-size:12px; color:var(--c-dim);}
.ct-old{color:var(--c-dim); text-decoration:line-through;}

/* edition */
.ct-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(200px, 1fr)); gap:12px 16px;}
.ct-field{display:flex; flex-direction:column; gap:5px; min-width:0;}
.ct-field.wide{grid-column:1 / -1;}
.ct-field label{font-size:12.5px; font-weight:600; color:var(--c-muted);}
.ct-field input, .ct-field select, .ct-field textarea{font-size:14.5px; color:var(--c-text); padding:8px 10px; border:1px solid var(--c-line); border-radius:8px; background:#fff; min-width:0;}
.ct-field textarea{resize:vertical;}
.ct-field input:focus, .ct-field select:focus, .ct-field textarea:focus{border-color:var(--c-accent); outline:none; box-shadow:var(--c-ring);}
.ct-field.changed input, .ct-field.changed select, .ct-field.changed textarea{background:#FFFBE0; border-color:var(--c-accent);}
.ct-ro{font-size:14.5px; padding:8px 0; color:var(--c-text); overflow-wrap:anywhere;}
.ct-field label .ct-dim{font-weight:500;}
.ct-multi{display:flex; flex-wrap:wrap; gap:6px;}
.ct-pill{font-size:13.5px; font-weight:500; padding:6px 12px; border:1px solid var(--c-line); border-radius:99px; background:#fff; color:var(--c-muted); cursor:pointer;}
.ct-pill:hover{border-color:var(--c-accent);}
.ct-pill.on{background:var(--c-accent); border-color:var(--c-accent); color:var(--c-accent-ink); font-weight:700;}
.ct-field.changed .ct-pill.on{box-shadow:0 0 0 2px #FFFBE0, 0 0 0 3px var(--c-accent);}
.ct-drawer-foot{display:flex; justify-content:flex-end; gap:8px; padding:12px 26px; border-top:1px solid var(--c-line); background:var(--c-soft);}
.ct-drawer-foot[hidden]{display:none;}
.ct-drawer-foot{align-items:center;}
.ct-save-state{margin-right:auto; font-size:13.5px; font-weight:600; color:var(--c-dim);}
.ct-save-state.ok{color:#14532D;}
.ct-save-state.err{color:#B42318;}
.ct-btn{font-size:14px; font-weight:700; border-radius:9px; padding:9px 18px; border:0; background:var(--c-accent); color:var(--c-accent-ink); cursor:pointer;}
.ct-btn:disabled{background:#EEECE6; color:var(--c-dim); cursor:default;}
.ct-btn.ghost{background:#fff; border:1px solid var(--c-line); color:var(--c-muted);}

@media (min-width:1000px){
  .ct-overlay{position:static; inset:auto; background:none; display:block; height:100%;}
  body.ct-open{overflow:auto;}
}
@media (max-width:1300px){
  .ct-toolbar{grid-template-columns:minmax(0, 1fr) 150px 170px;}
  .ct-thead, .ct-row{grid-template-columns:minmax(0, 1.3fr) minmax(0, 1.2fr) 188px 96px;}
}
@media (max-width:999px){
  .ct-layout{grid-template-columns:1fr;}
  .ct-main{display:none;}
  .ct-main:has(.ct-overlay:not([hidden])){display:block; border:0; background:none; box-shadow:none;}
  .ct-overlay{position:fixed; inset:0; z-index:9000; background:rgba(20,18,12,.4); display:flex; justify-content:flex-end;}
  .ct-drawer{width:min(620px, 100vw);}
  body.ct-open{overflow:hidden;}
  .ct-drawer-head, .ct-actions, .ct-drawer-body, .ct-drawer-foot{padding-left:16px; padding-right:16px;}
}
@media (max-width:700px){
  .qa{padding:12px;}
  .qa-f, .qa-nom, .qa-mail, .qa-ville, .qa-type, .qa-note{flex:1 1 100%;}
  .qa-zip{flex:1 1 90px;}
  .qa-go{flex:1 1 auto; justify-content:center;}
  .ct-toolbar{grid-template-columns:1fr 1fr;}
  #ct-search{grid-column:1 / -1;}
  .ct-thead, .ct-row{grid-template-columns:minmax(0, 1fr) auto;}
  .ct-thead [data-sort="ville"], .ct-thead [data-sort="envoi"], .ct-row .c-lieu, .ct-row .c-envoi{display:none;}
  .ct-sum-top{grid-template-columns:1fr;}
}

/* ==== Onglet Boite mail (27/09/2026) : tableau en colonnes facon kanban ==== */
#tab-boite, .bx-panel, .bx-panel button, .bx-panel select, .bx-panel textarea{font-family:Inter, "Segoe UI", system-ui, sans-serif;}
body:has(#tab-boite:not([hidden])) footer{display:none;}
.bx-head{display:flex; align-items:baseline; gap:14px; flex-wrap:wrap; margin:2px 2px 12px;}
.bx-title{font-size:20px; font-weight:700; letter-spacing:-.01em; color:#1A1915;}
.bx-title span{font-size:14px; font-weight:500; color:#56534B; margin-left:8px;}
.bx-subline{font-size:13px; color:#8A867C;}
.bx-board{display:grid; grid-template-columns:repeat(6, minmax(200px, 1fr)); gap:12px; overflow-x:auto; min-height:380px; padding-bottom:4px;}
.bx-col{background:#F3F1EA; border:1px solid #E9E6DD; border-radius:14px; display:flex; flex-direction:column; min-height:0; overflow:hidden;}
.bx-col-head{display:flex; align-items:center; gap:8px; padding:12px 12px 10px; border-top:4px solid var(--bx-c, #bbb);}
.bx-col[data-col="repondre"]{--bx-c:#E2C400;}
.bx-col[data-col="concerts"]{--bx-c:#7C3AED;}
.bx-col[data-col="factures"]{--bx-c:#15803D;}
.bx-col[data-col="refus"]{--bx-c:#9CA3AF;}
.bx-col[data-col="pubs"]{--bx-c:#D1D5DB;}
.bx-ico{width:24px; height:24px; border-radius:7px; background:#fff; display:grid; place-items:center; font-size:13px; font-weight:700; flex:none; box-shadow:0 1px 2px rgba(0,0,0,.06);}
.bx-col-head h3{margin:0; font-size:14.5px; font-weight:700; color:#1A1915; flex:1; font-family:Inter, sans-serif; text-transform:none; letter-spacing:0;}
.bx-count{font-size:13px; font-weight:700; color:#56534B; background:#fff; border-radius:99px; padding:1px 9px;}
.bx-all{font-size:12px; font-weight:600; border:1px solid #D6D2C6; background:#fff; border-radius:7px; padding:3px 8px; cursor:pointer; color:#56534B;}
.bx-cards{flex:1; overflow-y:auto; padding:2px 10px 12px; display:flex; flex-direction:column; gap:8px; scrollbar-width:thin;}
.bx-card{background:#fff; border:1px solid #E9E6DD; border-radius:11px; padding:10px 12px; cursor:pointer; box-shadow:0 1px 2px rgba(0,0,0,.04); transition:transform .12s ease, box-shadow .12s ease, border-color .12s ease;}
.bx-card:hover, .bx-card:focus-visible{transform:translateY(-1px); box-shadow:0 6px 16px -8px rgba(0,0,0,.25); border-color:#D6D2C6; outline:none;}
.bx-card.is-urgent{border-left:4px solid #DC2626;}
.bx-card.is-pending{opacity:.7;}
.bx-c1{display:flex; justify-content:space-between; gap:8px; align-items:baseline;}
.bx-from{font-size:14px; font-weight:700; color:#1A1915; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.bx-when{font-size:12px; color:#8A867C; flex:none;}
.bx-resume{margin:4px 0 0; font-size:13.5px; line-height:1.4; color:#3D3A33; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;}
.bx-c3{display:flex; justify-content:space-between; align-items:center; gap:6px; margin-top:7px;}
.bx-action{font-size:12.5px; font-weight:600; color:#1E40AF; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.bx-tags{display:flex; gap:4px; flex:none;}
.bx-tag{font-size:11px; font-weight:600; padding:1px 7px; border-radius:99px; background:#EEECE6; color:#56534B;}
.bx-tag.urgent{background:#FDE7E4; color:#9B1C12;}
.bx-tag.known{background:#FFF4B8; color:#3D3300;}
.bx-empty{font-size:13.5px; color:#8A867C; text-align:center; margin:18px 0;}

.bx-overlay{position:fixed; inset:0; z-index:9000; background:rgba(20,18,12,.45); display:flex; align-items:center; justify-content:center; padding:24px;}
.bx-overlay[hidden]{display:none;}
body.bx-open{overflow:hidden;}
.bx-panel{background:#fff; border-radius:16px; width:min(1180px, 100%); max-height:calc(100vh - 48px); display:flex; flex-direction:column; box-shadow:0 30px 80px -20px rgba(0,0,0,.45); overflow:hidden; color:#1A1915;}
.bx-m-head{display:flex; justify-content:space-between; gap:12px; padding:18px 22px 12px; border-bottom:1px solid #E9E6DD;}
.bx-m-head h2{margin:0; font-size:21px; font-weight:700; letter-spacing:-.01em; font-family:Inter, sans-serif; text-transform:none;}
.bx-m-head p{margin:3px 0 0; font-size:13.5px; color:#56534B;}
.bx-m-body{display:grid; grid-template-columns:1fr 1fr; min-height:0; flex:1;}
.bx-m-mail{padding:16px 22px; overflow-y:auto; border-right:1px solid #E9E6DD; background:#FBFAF7;}
.bx-m-subject{font-size:15.5px; font-weight:700; margin-bottom:6px;}
.bx-m-resume{font-size:13.5px; color:#1E40AF; background:#EEF4FF; border-radius:8px; padding:7px 10px; margin-bottom:12px;}
.bx-m-resume:empty{display:none;}
.bx-m-text{white-space:pre-wrap; font-size:14px; line-height:1.55; overflow-wrap:anywhere;}
.bx-m-reply{padding:16px 22px; display:flex; flex-direction:column; gap:10px; min-height:0; overflow-y:auto;}
.bx-m-row{display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap;}
.bx-m-row label{font-size:13px; font-weight:700; color:#56534B;}
#bx-reply{flex:1; min-height:280px; font-size:14.5px; line-height:1.55; padding:12px 14px; border:1px solid #E9E6DD; border-radius:10px; resize:vertical; color:#1A1915;}
#bx-reply:focus{outline:none; border-color:#E2C400; box-shadow:0 0 0 3px rgba(226,196,0,.25);}
#bx-reply.loading{background:linear-gradient(90deg,#fff,#FFF8D6,#fff); background-size:200% 100%; animation:bxload 1.2s linear infinite;}
@keyframes bxload{from{background-position:200% 0} to{background-position:0 0}}
.bx-status{margin:0; font-size:13px; color:#9A6700; min-height:1em;}
.bx-ghost{font-size:13.5px; font-weight:600; background:#fff; border:1px solid #D6D2C6; border-radius:9px; padding:7px 12px; cursor:pointer; color:#1A1915;}
.bx-ghost:hover{border-color:#E2C400;}
.bx-ghost:disabled{opacity:.6; cursor:default;}
.bx-inline{display:flex; align-items:center; gap:6px; font-size:13px; font-weight:600; color:#56534B;}
.bx-inline select{font-size:13.5px; padding:6px 8px; border:1px solid #D6D2C6; border-radius:8px; background:#fff;}
.bx-m-actions{display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap; padding-top:10px; border-top:1px solid #E9E6DD;}
@media (max-width:1300px){ .bx-board{grid-template-columns:repeat(6, 260px);} }
@media (max-width:860px){
  .bx-board{grid-template-columns:repeat(6, 86vw); scroll-snap-type:x mandatory;}
  .bx-col{scroll-snap-align:start;}
  .bx-overlay{padding:0;}
  .bx-panel{max-height:100vh; height:100%; border-radius:0;}
  .bx-m-body{grid-template-columns:1fr; overflow-y:auto;}
  .bx-m-mail{border-right:0; border-bottom:1px solid #E9E6DD; overflow:visible;}
  .bx-m-reply{overflow:visible;}
}

/* 28/09/2026 : 'A decider' et 'non reconnus' font doublon avec l'onglet Boite mail */
.card.lp-doublon{display:none !important;}
.bx-btns{display:flex; gap:8px; flex-wrap:wrap;}
.bx-ghost.bx-del{color:#B42318; border-color:#F1C4BE;}
.bx-ghost.bx-del:hover{border-color:#B42318;}
.bx-col-head .bx-all + .bx-all{margin-left:-2px;}

/* 28/09 : la fenetre du mail est hors de #tab-contacts -> ses boutons n'avaient plus de couleurs */
.bx-panel{--c-accent:#E2C400; --c-accent-ink:#3D3300; --c-dim:#8A867C; --c-line:#E9E6DD; --c-muted:#56534B;}
.bx-addr{font-size:14px; line-height:1.5; background:#FFF4B8; border:1px solid #E8D56A; border-radius:10px; padding:10px 12px; margin-bottom:12px;}
.bx-addr[hidden]{display:none;}
.bx-addr .ct-btn{margin-top:8px; display:inline-block;}
.bx-tag.addr{background:#FFF4B8; color:#3D3300;}

.bx-consigne{border-top:1px solid #E9E6DD; padding-top:10px; display:flex; flex-direction:column; gap:6px;}
.bx-consigne label{font-size:13px; font-weight:700; color:#56534B;}
.bx-cons-row{display:flex; gap:8px;}
.bx-cons-row input{flex:1; min-width:0; font-size:14px; padding:8px 10px; border:1px solid #D6D2C6; border-radius:9px; font-family:inherit;}
.bx-cons-row input:focus{outline:none; border-color:#E2C400; box-shadow:0 0 0 3px rgba(226,196,0,.25);}
.bx-cons-res{margin:0; font-size:13px; color:#15803D; min-height:1em;}
.bx-tag.rappel{background:#E0ECFB; color:#1E3A8A;}

/* selection multiple dans Contacts (28/09/2026) */
.ct-row.pick{background:#E3EEFF; box-shadow:inset 3px 0 0 #3B82F6;}
.ct-row.pick .ct-name::before{content:"\2713  "; color:#2563EB; font-weight:700;}
.ct-bulk{display:flex; flex-wrap:wrap; align-items:center; gap:8px; padding:9px 14px; border-top:1px solid var(--c-line); background:#EEF4FF; font-size:13px;}
.ct-bulk[hidden]{display:none;}
.ct-bulk-n{flex:1; min-width:140px;}

/* ==== Mobile (29/09/2026) : en-tête compact, Boîte mail colonne par colonne, listes Stats bornées,
   ajout de contacts replié. Tout est sous 760 px, le rendu ordinateur ne change pas. ==== */
.bx-mtabs{display:none;}
@media (max-width:760px){
  /* En-tête : logo + titre sur une ligne, onglets sur une seule ligne sans retour à la ligne */
  .masthead{gap:10px; padding:10px 14px; margin-bottom:12px;}
  .masthead .id{gap:10px;}
  .mark{width:36px; height:36px; font-size:16px; border-radius:10px;}
  .masthead h1{font-size:18px;}
  .masthead .eyebrow{font-size:10px; letter-spacing:.14em;}
  .tabs{order:2; width:100%; overflow-x:auto; scrollbar-width:none;}
  .tabs::-webkit-scrollbar{display:none;}
  .tab-btn{flex:1 0 auto; padding:9px 10px; font-size:12.5px; white-space:nowrap;}
  .tab-long{display:none;}
  .updated{order:3; width:100%; justify-content:center; background:none; border:0; box-shadow:none; padding:0; font-size:11.5px;}

  /* Boîte mail : pastilles de colonnes + une seule colonne en pleine largeur, la page défile */
  .bx-head{margin-bottom:8px;}
  .bx-mtabs{display:flex; gap:6px; overflow-x:auto; scrollbar-width:none; margin:0 -14px 10px; padding:2px 14px;}
  .bx-mtabs::-webkit-scrollbar{display:none;}
  .bx-mtab{flex:none; font:600 13.5px/1 Inter, "Segoe UI", system-ui, sans-serif; color:#3D3A33; background:#fff; border:1px solid #E2DED3; border-radius:99px; padding:9px 12px; white-space:nowrap; cursor:pointer;}
  .bx-mtab b{font-weight:700; color:#8A867C; margin-left:2px;}
  .bx-mtab.on{background:#1A1915; border-color:#1A1915; color:#fff;}
  .bx-mtab.on b{color:#E2C400;}
  .bx-board{display:block; height:auto !important; min-height:0; overflow:visible; padding:0;}
  .bx-col{display:none; overflow:visible;}
  .bx-col.is-mcol{display:flex;}
  .bx-col-head{display:none;}  /* doublon avec la pastille, sauf Pubs qui porte « Tout vu » / « 🗑 Tout » */
  .bx-col[data-col="pubs"] .bx-col-head{display:flex;}
  .bx-col:not([data-col="pubs"]){border-top:4px solid var(--bx-c, #bbb);}
  .bx-cards{overflow:visible; padding:2px 8px 10px;}
  .bx-card{padding:12px;}
  .bx-resume{-webkit-line-clamp:4;}

  /* Stats : tuiles plus compactes, listes bornées en hauteur, lignes de tableau empilées */
  .tiles{grid-template-columns:1fr 1fr; gap:10px;}
  .tiles .tile:first-child{grid-column:1 / -1;}
  .tile{padding:14px 14px 12px;}
  .tile .value{font-size:30px; margin-top:6px;}
  .tile .label{font-size:10.5px;}
  .wrap-scroll{max-height:min(65vh, 560px);}
  #envoyes-table thead, #tarifs-table thead, #geres-auto-table thead{display:none;}
  #envoyes-table, #tarifs-table, #geres-auto-table{width:100%; min-width:0;}
  #envoyes-table tbody, #tarifs-table tbody, #geres-auto-table tbody{display:block;}
  #envoyes-table tr, #tarifs-table tr, #geres-auto-table tr{display:grid; grid-template-columns:minmax(0, 1fr) auto; column-gap:10px; row-gap:3px; padding:11px 14px; border-bottom:1px solid var(--border);}
  #envoyes-table td, #tarifs-table td, #geres-auto-table td{display:block; padding:0 !important; border:0 !important; width:auto !important; min-width:0; overflow-wrap:anywhere; font-size:13.5px;}
  #envoyes-table td:nth-child(1), #tarifs-table td:nth-child(1), #geres-auto-table td:nth-child(1){grid-column:1; grid-row:1; font-weight:700;}
  #envoyes-table td:nth-child(5), #tarifs-table td:nth-child(5), #geres-auto-table td:nth-child(3){grid-column:2; grid-row:1; justify-self:end; align-self:start;}
  #envoyes-table td:nth-child(2), #envoyes-table td:nth-child(3),
  #tarifs-table td:nth-child(3), #tarifs-table td:nth-child(4),
  #geres-auto-table td:nth-child(2), #geres-auto-table td:nth-child(4), #geres-auto-table td:nth-child(5){grid-column:1 / -1; color:var(--text-muted); font-size:12.5px;}
  #envoyes-table td:nth-child(4), #tarifs-table td:nth-child(2){display:none;}
  #envoyes-table td[colspan], #tarifs-table td[colspan], #geres-auto-table td[colspan]{grid-column:1 / -1 !important; grid-row:auto !important;}

  /* Contacts : le bloc d'ajout est replié, la liste passe en premier */
  .qa-title{cursor:pointer; display:flex; align-items:center; gap:8px;}
  .qa-title::after{content:'+'; display:inline-grid; place-items:center; width:24px; height:24px; border-radius:7px; background:var(--c-accent, #E2C400); color:var(--c-accent-ink, #3D3300); font-weight:700; font-size:16px; line-height:1;}
  #qa-card.qa-open .qa-title::after{content:'−';}
  #qa-card:not(.qa-open){padding:10px 14px;}
  #qa-card:not(.qa-open) > :not(.qa-head){display:none !important;}
  #qa-card:not(.qa-open) .qa-head{margin:0;}
  #qa-card:not(.qa-open) .qa-seg, #qa-card:not(.qa-open) .qa-right{display:none;}
  /* Filtres d'état sur une seule ligne qui défile de côté (ils prenaient 200 px au-dessus de la liste) */
  #ct-states{flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; margin-left:-14px; margin-right:-14px; padding-left:14px; padding-right:14px;}
  #ct-states::-webkit-scrollbar{display:none;}
  #ct-states .ct-state{flex:none; white-space:nowrap;}
}

/* Fiche complétée automatiquement depuis la signature d'un mail (29/09/2026) */
.bx-enrich{font-size:13.5px; line-height:1.45; color:#14532D; background:#E7F6EC; border:1px solid #BFE5CC; border-radius:10px; padding:8px 12px; margin-bottom:12px;}
.bx-enrich[hidden]{display:none;}

/* Corriger l'orthographe / Reformuler sous la réponse (29/09/2026) */
.bx-tools{display:flex; gap:8px; flex-wrap:wrap; margin-top:-2px;}
.bx-ghost.bx-mini{font-size:12.5px; padding:5px 10px;}
.bx-tools [hidden]{display:none;}

/* Onglet « Premières parties » (30/09/2026) : veille des agendas des salles */
.vs-intro{margin:0 0 14px; color:var(--text-muted); font-size:14.5px; line-height:1.5; max-width:780px;}
.vs-stats{display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:12px;}
@media (max-width:1100px){ .vs-stats{grid-template-columns:repeat(2, minmax(0, 1fr));} }
.vs-stat{background:var(--surface-2); border:1px solid var(--border); border-radius:var(--radius-sm); padding:12px 14px; display:flex; flex-direction:column; gap:2px;}
.vs-stat b{font-family:Oswald, sans-serif; font-size:28px; font-weight:600; line-height:1.1;}
.vs-stat span{font-size:14px; color:var(--text-muted);}
.vs-stat small{font-size:12.5px; color:var(--text-faint);}
.vs-alerte{padding:14px 0; border-bottom:1px solid var(--border); display:grid; gap:4px;}
.vs-alerte:first-child{padding-top:4px;}
.vs-alerte:last-child{border-bottom:0; padding-bottom:0;}
.vs-a-top{display:flex; align-items:center; gap:10px; flex-wrap:wrap;}
.vs-a-nom{font-weight:700; font-size:16.5px;}
.vs-a-lieu{font-size:14.5px;}
.vs-a-contact{font-size:14px; color:var(--text-muted);}
.vs-a-bas{display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; font-size:13.5px;}
.vs-dim{color:var(--text-faint);}
.vs-alerte a, .vs-table a{color:var(--text); text-decoration:underline; text-decoration-color:var(--accent); text-decoration-thickness:2px; text-underline-offset:3px;}
#vs-search{width:100%; max-width:380px; height:40px; padding:0 12px; margin-bottom:12px; border:1px solid var(--border); border-radius:10px; background:var(--surface-2); color:var(--text); font:inherit; font-size:15px;}
#vs-search:focus{outline:none; box-shadow:var(--ring);}
.vs-table-wrap{max-height:540px; overflow:auto; border:1px solid var(--border); border-radius:var(--radius-sm);}
.vs-table{width:100%; border-collapse:collapse; font-size:14px;}
.vs-table th{position:sticky; top:0; z-index:1; background:var(--surface-2); text-align:left; font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--text-faint); padding:9px 12px; border-bottom:1px solid var(--border);}
.vs-table td{padding:8px 12px; border-bottom:1px solid var(--border); vertical-align:middle;}
.vs-table tr:last-child td{border-bottom:0;}
.vs-details summary{cursor:pointer; font-family:Oswald, sans-serif; font-size:18px; font-weight:600;}
.vs-details summary .muted{font-family:Karla, sans-serif; font-size:13.5px; font-weight:400; color:var(--text-faint);}
.vs-non{list-style:none; margin:12px 0 0; padding:0; columns:2; column-gap:28px; font-size:14px;}
.vs-non li{display:flex; justify-content:space-between; gap:10px; padding:6px 0; border-bottom:1px solid var(--border); break-inside:avoid;}
@media (max-width:760px){
  .vs-stats{grid-template-columns:1fr;}
  .vs-non{columns:1;}
  .vs-table th:nth-child(4), .vs-table td:nth-child(4){display:none;}
}

/* Premieres parties v3 (01/10/2026) : dates cliquables + fenetre de candidature (reprend .bx-panel de la Boite mail) */
.vs-alerte[data-url]{cursor:pointer; margin:0 -10px; padding-left:10px; padding-right:10px; border-radius:10px;}
.vs-alerte[data-url]:hover, .vs-alerte[data-url]:focus-visible{background:var(--accent-wash); outline:none;}
.vs-ecrire{font-weight:700;}
.vs-proches{margin-top:14px; padding-top:12px; border-top:1px solid var(--border);}
.vs-proches summary{font-size:16px;}
.vs-proches .vs-alerte{opacity:.75;}
.vs-champ{display:flex; align-items:center; gap:10px;}
.vs-champ label{width:46px; flex:none; font-size:13px; font-weight:700; color:#56534B;}
.vs-champ input{flex:1; min-width:0; font-size:14px; padding:8px 10px; border:1px solid #D6D2C6; border-radius:9px; font-family:inherit; color:#1A1915;}
.vs-champ input:focus, #vs-corps:focus{outline:none; border-color:#E2C400; box-shadow:0 0 0 3px rgba(226,196,0,.25);}
#vs-corps{flex:1; min-height:300px; font-size:14.5px; line-height:1.55; padding:12px 14px; border:1px solid #E9E6DD; border-radius:10px; resize:vertical; color:#1A1915;}
#vs-corps.loading{background:linear-gradient(90deg,#fff,#FFF8D6,#fff); background-size:200% 100%; animation:bxload 1.2s linear infinite;}
.vs-m-dl{display:grid; grid-template-columns:auto 1fr; gap:6px 14px; margin:10px 0 14px; font-size:14px;}
.vs-m-dl dt{font-weight:700; color:#56534B;}
.vs-m-dl dd{margin:0; overflow-wrap:anywhere;}
.vs-m-info p{font-size:14px; margin:0 0 10px;}
.vs-m-info a{color:#1A1915; text-decoration:underline; text-decoration-color:#E2C400; text-decoration-thickness:2px; text-underline-offset:3px;}
/* tri des dates (01/10/2026) : reprend le selecteur .qa-seg de l'onglet Contacts, dont les variables sont locales */
#tab-veille{--c-soft:#F7F6F2; --c-line:#E9E6DD; --c-text:#1A1915; --c-muted:#56534B;}
.vs-tri-row{display:flex; align-items:center; justify-content:space-between; gap:10px 16px; flex-wrap:wrap; margin-bottom:6px;}
.vs-tri-row h2{margin:0;}
/* pieces jointes des mails envoyes depuis le dashboard (01/10/2026) */
.pj-row{display:flex; align-items:center; gap:8px; flex-wrap:wrap;}
.pj-btn{display:inline-flex; align-items:center; cursor:pointer;}
.pj-list{display:flex; gap:6px; flex-wrap:wrap; min-width:0;}
.pj-list[hidden]{display:none;}
.pj-chip{display:inline-flex; align-items:center; gap:6px; max-width:100%; font-size:12.5px; background:#F7F6F2; border:1px solid #E9E6DD; border-radius:99px; padding:3px 6px 3px 10px;}
.pj-nom{overflow-wrap:anywhere;}
.pj-chip small{color:#8A867C; white-space:nowrap;}
.pj-chip button{border:0; background:none; cursor:pointer; color:#8A867C; font-size:12px; padding:0 2px;}
.pj-chip button:hover{color:#B42318;}
/* filtres de l'onglet Premieres parties (02/10/2026) */
.vs-filtres{display:flex; align-items:center; gap:10px 18px; flex-wrap:wrap; margin:6px 0 12px; padding:10px 12px; background:var(--c-soft); border:1px solid var(--c-line); border-radius:12px;}
.vs-f-km{display:flex; align-items:center; gap:8px; font-size:13.5px; font-weight:600; color:var(--c-muted);}
.vs-f-km input{width:150px; accent-color:#E2C400; cursor:pointer;}
.vs-f-km b{min-width:96px; color:var(--c-text); font-weight:700;}
.vs-f-mois{display:flex; gap:6px; flex-wrap:wrap;}
.vs-mois-chip{border:1px solid var(--c-line); background:#fff; border-radius:99px; padding:4px 10px; font-size:12.5px; font-weight:600; color:var(--c-muted); cursor:pointer; white-space:nowrap;}
.vs-mois-chip:hover{border-color:#E2C400;}
.vs-mois-chip[aria-pressed="true"]{background:#FFF1A8; border-color:#E2C400; color:#3D3300;}
.vs-mois-chip small{font-weight:500; color:#8A867C; margin-left:2px;}
.vs-mois-chip[aria-pressed="true"] small{color:#6B5A00;}
.vs-f-nb{font-size:13px; font-weight:600; color:var(--c-muted); margin-left:auto;}
.vs-f-raz{border:0; background:none; padding:0; font-size:13px; color:var(--c-muted); text-decoration:underline; cursor:pointer;}
.vs-f-raz[hidden]{display:none;}
@media (max-width:760px){ .vs-f-km input{width:120px;} .vs-f-nb{margin-left:0;} }
/* fiche mise a jour depuis un mail : ancienne / nouvelle (02/10/2026) */
.bx-maj{font-size:13.5px; line-height:1.45; background:#EAF6EE; border:1px solid #B9DFC6; border-radius:10px; padding:10px 12px; margin-bottom:12px;}
.bx-maj-top{display:flex; justify-content:space-between; align-items:center; gap:10px; margin-bottom:6px;}
.bx-maj-t{width:100%; border-collapse:collapse; font-size:13px;}
.bx-maj-t th, .bx-maj-t td{text-align:left; padding:3px 6px; vertical-align:top; overflow-wrap:anywhere;}
.bx-maj-t thead th{font-size:11.5px; text-transform:uppercase; letter-spacing:.03em; color:#56534B;}
.bx-maj-t tbody th{font-weight:600; color:#56534B; white-space:nowrap;}
.bx-maj-av{color:#8A867C; text-decoration:line-through;}
.bx-maj-note{margin:6px 0 0; font-size:12.5px; color:#14532D;}
/* Premieres parties : plage de dates + bouton pour retirer une date (02/10/2026) */
.vs-f-dates{display:flex; align-items:center; gap:6px; font-size:13.5px; font-weight:600; color:var(--c-muted);}
.vs-f-dates input{font-size:13px; padding:4px 6px; border:1px solid var(--c-line); border-radius:8px; background:#fff; color:var(--c-text); font-family:inherit;}
.vs-alerte{position:relative;}
.vs-alerte[data-url] .vs-a-top{padding-right:34px;}
.vs-suppr{position:absolute; top:12px; right:6px; width:26px; height:26px; border:1px solid transparent; border-radius:8px; background:none; color:#8A867C; font-size:14px; line-height:1; cursor:pointer;}
.vs-suppr:hover{border-color:#F1C4BE; background:#FDE7E4; color:#B42318;}
/* Premieres parties v5 (02/10/2026) : cartes epurees, 4 colonnes max, titres de groupe */
.vs-grille{display:grid; grid-template-columns:repeat(auto-fill, minmax(max(290px, calc((100% - 36px) / 4)), 1fr)); gap:10px 12px;}
.vs-groupe{grid-column:1 / -1; display:flex; align-items:baseline; gap:8px; margin:14px 0 2px; font-family:Oswald, sans-serif; font-size:15px; font-weight:600; letter-spacing:.02em; text-transform:uppercase; color:var(--text);}
.vs-groupe:first-child{margin-top:2px;}
.vs-groupe span{font-family:Karla, sans-serif; font-size:13px; font-weight:400; text-transform:none; letter-spacing:0; color:var(--text-faint);}
.vs-groupe em{margin-left:auto; font-style:normal; font-family:Karla, sans-serif; font-size:12.5px; font-weight:600; color:var(--text-faint);}
.vs-grille .vs-alerte{display:flex; align-items:center; gap:13px; margin:0; padding:11px 12px; background:var(--surface); border:1px solid var(--border); border-radius:12px; opacity:1; transition:border-color .15s, box-shadow .15s;}
.vs-grille .vs-alerte:hover, .vs-grille .vs-alerte:focus-visible{background:var(--surface); border-color:#E2C400; box-shadow:0 6px 18px -12px rgba(61,51,0,.4); outline:none;}
.vs-proches .vs-grille{margin-top:10px;}
.vs-proches .vs-grille .vs-alerte{opacity:.65;}
.vs-cal{flex:none; width:50px; padding:5px 0 6px; border-radius:10px; background:var(--accent-wash); border:1px solid var(--accent-soft); color:var(--accent-ink); display:flex; flex-direction:column; align-items:center; line-height:1.1;}
.vs-cal span{font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.05em;}
.vs-cal b{font-family:Oswald, sans-serif; font-size:22px; font-weight:600;}
.vs-cal.inconnue{background:#F4F2EC; border-color:#E9E6DD; color:#8A867C;}
.vs-a-corps{flex:1; min-width:0; display:flex; flex-direction:column; gap:2px;}
.vs-grille .vs-a-nom{font-size:15px; font-weight:700; line-height:1.3; padding-right:22px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.vs-grille .vs-a-lieu{font-size:13px; color:var(--text-muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.vs-a-meta{display:flex; align-items:center; gap:6px; margin-top:3px; font-size:12px; color:var(--text-faint); white-space:nowrap; overflow:hidden;}
.vs-a-meta > span:not(.vs-go) + span:not(.vs-go)::before{content:"·"; margin-right:6px; color:var(--text-faint);}
.vs-style{color:#14532D; font-weight:600; overflow:hidden; text-overflow:ellipsis;}
.vs-style.doute{color:#7C4A03;}
.vs-pp{color:#1E3A8A; font-weight:600;}
.vs-suivi{color:#6B5A00; background:#FFF1A8; border-radius:99px; padding:0 7px; font-weight:700;}  /* groupe suivi (12/10/2026) */
.vs-groupes a{color:inherit;}
.vs-f-suivis[hidden]{display:none;}
.vs-ok{color:#14532D; font-weight:700;}
.vs-go{margin-left:auto; padding-left:8px; font-size:15px; color:var(--text-faint); transition:color .15s, transform .15s;}
.vs-grille .vs-alerte:hover .vs-go{color:var(--accent-strong); transform:translateX(2px);}
.vs-grille .vs-suppr{top:6px; right:6px; width:24px; height:24px; font-size:12px; opacity:0; transition:opacity .15s;}
.vs-grille .vs-alerte:hover .vs-suppr, .vs-grille .vs-alerte:focus-within .vs-suppr{opacity:1;}
@media (hover:none){ .vs-grille .vs-suppr{opacity:1;} }
.vs-orga{color:#7C4A03; font-weight:600; overflow:hidden; text-overflow:ellipsis;}  /* organisateur exterieur (02/10/2026) */

/* ============================================================================
   Onglet « Vérif mails » (08/10/2026, verif.js) : reprend les cartes et pastilles de « Premières parties »
   ========================================================================== */
/* variables locales des sélecteurs .qa-seg / pastilles / boutons, comme #tab-veille */
#tab-verif{--c-soft:#F7F6F2; --c-line:#E9E6DD; --c-text:#1A1915; --c-muted:#56534B; --c-accent:#E2C400; --c-accent-ink:#3D3300;}
.vm-stats{grid-template-columns:repeat(5, minmax(0, 1fr));}
.vm-cons{width:100%; min-height:76px; resize:vertical; padding:10px 12px; border:1px solid var(--border); border-radius:10px;
  background:var(--surface-2); color:var(--text); font:inherit; font-size:15px; line-height:1.45;}
.vm-cons:focus{outline:none; box-shadow:var(--ring);}
.vm-cons-row{display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-top:10px;}
.vm-cons-res{margin:4px 0 0; color:var(--text-muted); font-size:14px; line-height:1.45; flex:1;}
.vm-filtres{margin:2px 0 12px;}
.vm-item{border:1px solid var(--border); border-radius:var(--radius-sm); background:var(--surface); padding:12px 14px; margin-bottom:10px;}
.vm-item-auto{background:var(--surface-2);}
.vm-tete{display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 10px;}
.vm-tete b{font-size:15.5px;}
.vm-meta{color:var(--text-faint); font-size:13px;}
.vm-tag{margin-left:auto; font-size:12.5px; font-weight:700; padding:2px 9px; border-radius:999px; white-space:nowrap;}
.vm-tag.good{background:var(--good-soft); color:var(--good-ink);}
.vm-tag.warn{background:var(--warn-soft); color:var(--warn-ink);}
.vm-tag.crit{background:var(--crit-soft); color:var(--crit-ink);}
.vm-tag.info{background:var(--info-soft); color:var(--info-ink);}
.vm-mail{margin-top:6px; font-size:15px; overflow-wrap:anywhere;}
.vm-ancien{color:var(--text-muted);}
.vm-nouveau{font-weight:700; color:var(--good-ink);}
.vm-fleche{color:var(--text-faint);}
.vm-ch{display:inline-block; margin-right:14px;}
.vm-ch i{font-style:normal; color:var(--text-faint); font-size:13px; margin-right:4px;}
.vm-ch s{color:var(--text-faint);}
.vm-detail{margin-top:4px; color:var(--text-muted); font-size:13.5px; overflow-wrap:anywhere;}
.vm-detail a{color:var(--info);}
.vm-btns{display:flex; flex-wrap:wrap; gap:8px; margin-top:10px;}
.vm-btns .ct-btn{padding:7px 14px; font-size:13.5px; background:var(--accent); color:var(--accent-ink);}
.vm-btns button:disabled{opacity:.5; cursor:default;}
.vm-autre{display:flex; gap:8px; margin-top:8px; max-width:560px;}
.vm-autre input{flex:1; min-width:0; height:34px; padding:0 10px; font-size:14px; color:var(--c-text); border:1px solid var(--c-line); border-radius:8px; background:var(--c-soft);}
.vm-autre input:focus{background:#fff; border-color:var(--c-accent); outline:none;}
.vm-vide{color:var(--text-muted); margin:6px 0;}
@media (max-width:900px){ .vm-stats{grid-template-columns:repeat(3, minmax(0, 1fr));} }
@media (max-width:760px){
  .vm-stats{grid-template-columns:repeat(2, minmax(0, 1fr));}
  .vm-cons-row{flex-direction:column; align-items:stretch;}
  .vm-tag{margin-left:0;}
  #vm-mode{overflow-x:auto; max-width:100%;}
}

/* ==== Fil des echanges (12/10/2026) : fiche contact + fenetre d'un mail de la Boite mail ==== */
.fil{display:flex; flex-direction:column;}
.fil-l{display:grid; grid-template-columns:64px 74px minmax(0, 1fr); gap:8px; padding:7px 0; border-bottom:1px dashed var(--c-line, #E9E6DD); font-size:14px; line-height:1.45;}
.fil > .fil-l:last-child{border-bottom:0;}
.fil-d{font-size:12px; color:var(--c-dim, #8A867C); padding-top:2px; font-variant-numeric:tabular-nums;}
.fil-q{font-size:12px; font-weight:600; padding-top:2px; white-space:nowrap;}
.fil-t{overflow-wrap:anywhere;}
.fil-recu .fil-q{color:#1E40AF;}
.fil-envoye .fil-q{color:#166534;}
.fil-campagne, .fil-campagne .fil-q{color:var(--c-dim, #8A867C); font-weight:500;}
.fil-old > summary{cursor:pointer; font-size:12.5px; color:var(--c-dim, #8A867C); padding:4px 0 6px;}
.bx-fil{font-size:13.5px; background:#F7F6F2; border-radius:8px; padding:7px 10px; margin-bottom:12px;}
.bx-fil[hidden]{display:none;}
.bx-fil > summary{cursor:pointer; font-weight:600; color:#56534B;}
.bx-fil[open] > summary{margin-bottom:4px;}
.bx-fil .fil-l{font-size:13.5px;}
@media (max-width:760px){
  .fil-l{grid-template-columns:56px minmax(0, 1fr); gap:2px 8px;}
  .fil-q{grid-column:2;}
  .fil-t{grid-column:1 / -1;}
}

/* Colonne « À relancer » (12/10/2026) */
.bx-tag.tarif{background:#FFF4B8; color:#3D3300;}

/* Filtre « Origine » (13/10/2026, Lieux Culte) : 3 menus sous la recherche dans la barre des contacts */
@media (min-width:701px){
  .ct-toolbar{grid-template-columns:repeat(3, minmax(0, 1fr));}
  .ct-toolbar #ct-search{grid-column:1 / -1;}
}

/* Onglet « Hermès » (23/10/2026) : résumé du robot de prospection + conversation pour lui donner des ordres (hermes.js) */
#tab-hermes{--c-soft:#F7F6F2; --c-line:#E9E6DD; --c-text:#1A1915; --c-muted:#56534B; --c-dim:#8A867C; --c-accent:#E2C400; --c-accent-ink:#3D3300;}
.hm-grid{display:grid; grid-template-columns:minmax(0, 1.55fr) minmax(300px, 1fr); gap:16px; align-items:start;}
.hm-body{padding:14px 20px 18px;}
.card h2 .hm-head-r{display:flex; align-items:center; gap:10px; font-family:Karla, sans-serif; text-transform:none; letter-spacing:0;}
.hm-pill{font-size:13px; font-weight:700; padding:4px 12px; border-radius:99px; background:var(--surface-3); color:var(--text-muted);}
.hm-pill.good{background:var(--good-soft); color:var(--good-ink);}
.hm-pill.warn{background:var(--warn-soft); color:var(--warn-ink);}
.hm-pill.crit{background:var(--crit-soft); color:var(--crit-ink);}
.hm-pause{padding:6px 14px; font-size:13.5px;}
.hm-pause.on{background:var(--accent); border-color:var(--accent); color:var(--accent-ink);}
.hm-tunnel{margin:2px 0 10px; font-size:13.5px; color:var(--text-muted); display:flex; align-items:center; gap:7px;}
.hm-dot{width:9px; height:9px; border-radius:50%; display:inline-block; background:var(--text-faint);}
.hm-dot.good{background:var(--good);}
.hm-dot.crit{background:var(--crit);}
.hm-resume{margin:0 0 14px; font-size:16px; line-height:1.55; color:var(--text); max-width:820px;}
.hm-probleme{margin:-4px 0 14px; padding:10px 14px; border-radius:var(--radius-sm); background:var(--crit-soft); color:var(--crit-ink); font-size:14.5px; line-height:1.45;}
.hm-stats .vs-stat span{font-size:13.5px;}
.hm-regl{display:flex; flex-wrap:wrap; align-items:center; gap:6px 8px; margin-top:12px;}
.hm-regl:empty{display:none;}
.hm-regl-lab{font-size:13px; color:var(--text-muted); font-weight:600;}
.hm-chip{display:inline-flex; align-items:center; gap:4px; background:var(--accent-soft); color:var(--accent-ink); border-radius:99px; padding:4px 6px 4px 12px; font-size:13px; font-weight:600;}
.hm-chip-x{border:0; background:rgba(255,255,255,.6); color:var(--accent-ink); width:20px; height:20px; border-radius:50%; font-size:11px; cursor:pointer; line-height:1;}
.hm-chip-x:hover{background:#fff;}

/* conversation */
.hm-chat{max-height:min(52vh, 520px); min-height:120px; overflow-y:auto; padding:6px 2px 10px; display:flex; flex-direction:column; gap:10px;
  scrollbar-width:thin;}
.hm-vide{margin:auto 0; color:var(--text-muted); font-size:14.5px; text-align:center; padding:18px 10px;}
.hm-msg{display:flex; flex-direction:column; max-width:86%;}
.hm-msg.moi{align-self:flex-end; align-items:flex-end;}
.hm-msg.lui{align-self:flex-start;}
.hm-bulle{padding:9px 13px; border-radius:14px; font-size:14.5px; line-height:1.45; white-space:pre-wrap; overflow-wrap:anywhere;}
.hm-msg.moi .hm-bulle{background:var(--accent-soft); color:var(--accent-ink); border-bottom-right-radius:4px;}
.hm-msg.lui .hm-bulle{background:var(--surface-2); border:1px solid var(--border); border-bottom-left-radius:4px;}
.hm-msg.bouton .hm-bulle{background:none; border-style:dashed; color:var(--text-muted); font-size:13.5px; padding:6px 11px;}
.hm-msg small{font-size:12px; color:var(--text-faint); margin-top:3px; display:flex; align-items:center; gap:8px;}
.hm-suivi{margin:7px 0 0; padding:0; list-style:none; font-size:13.5px;}
.hm-suivi li{padding:2px 0;}
.hm-suivi .trouve{color:var(--good-ink);}
.hm-suivi .rien{color:var(--text-muted);}
.hm-tag{font-size:11.5px; font-weight:700; padding:1px 7px; border-radius:99px; background:var(--surface-3); color:var(--text-muted);}
.hm-tag.warn{background:var(--warn-soft); color:var(--warn-ink);}
.hm-annuler{border:0; background:none; padding:0; font-size:12px; font-weight:600; color:var(--text-muted); text-decoration:underline; cursor:pointer;}
.hm-annuler:hover{color:var(--text);}
.hm-form{display:flex; gap:10px; align-items:flex-end; margin-top:8px;}
.hm-form textarea{flex:1; min-width:0; resize:vertical; min-height:46px; max-height:200px; padding:10px 12px; border:1px solid var(--border);
  border-radius:10px; font:inherit; font-size:15px; line-height:1.4; background:var(--surface-2); color:var(--text);}
.hm-form textarea:focus{outline:none; box-shadow:var(--ring); background:#fff;}
.hm-form .ct-btn{height:46px; white-space:nowrap;}
.hm-exemples{display:flex; flex-wrap:wrap; gap:6px; margin-top:10px;}
.hm-sait{margin-top:12px; font-size:14px; color:var(--text-muted);}
.hm-sait summary{cursor:pointer; font-weight:600; width:max-content;}
.hm-sait ul{margin:8px 0 6px; padding-left:20px; line-height:1.55;}
.hm-sait p{margin:4px 0 0;}

/* journal */
.hm-journal{list-style:none; margin:0; padding:0; max-height:min(76vh, 900px); overflow-y:auto; scrollbar-width:thin;}
.hm-journal li{display:grid; grid-template-columns:70px 1fr; gap:10px; padding:8px 2px; border-top:1px solid var(--border); font-size:14px; line-height:1.4;}
.hm-journal li:first-child{border-top:0;}
.hm-journal time{color:var(--text-faint); font-size:12.5px; font-variant-numeric:tabular-nums; padding-top:1px;}
.hm-journal li span{overflow-wrap:anywhere;}
.hm-journal .mail span::before{content:""; display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--good); margin-right:7px; vertical-align:1px;}
.hm-journal .doublon span::before{content:""; display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--warn); margin-right:7px; vertical-align:1px;}
.hm-journal .cycle span{color:var(--text-muted);}
.hm-journal .vide{grid-template-columns:1fr; color:var(--text-muted);}
.hm-par{font-style:normal; font-size:11.5px; font-weight:700; padding:1px 6px; border-radius:99px; background:var(--info-soft); color:var(--info-ink);}

@media (max-width:1100px){ .hm-grid{grid-template-columns:1fr;} .hm-journal{max-height:60vh;} }
#tab-hermes .card h2{flex-wrap:wrap; row-gap:6px;}
.hm-pill, .hm-pause{white-space:nowrap;}
@media (max-width:760px){
  #tab-hermes .hm-stats{grid-template-columns:repeat(2, minmax(0, 1fr)); gap:8px;}
  #tab-hermes .hm-stats .vs-stat{padding:10px 11px;}
  #tab-hermes .hm-stats .vs-stat b{font-size:24px;}
  .hm-body{padding:12px 14px 16px;}
  .hm-msg{max-width:94%;}
  .hm-form{flex-direction:column; align-items:stretch;}
  .hm-journal li{grid-template-columns:58px 1fr;}
  .hm-resume{font-size:15px;}
}

/* Recherche artiste / salle dans les filtres des Premières parties (23/10/2026) */
.vs-f-q{width:230px; height:34px; padding:0 10px; border:1px solid var(--c-line); border-radius:8px; background:#fff; color:var(--c-text); font:inherit; font-size:14px;}
.vs-f-q:focus{outline:none; box-shadow:var(--ring);}
@media (max-width:760px){ .vs-f-q{width:100%;} }

/* Ecrire a un contact depuis sa fiche (26/10/2026, contacts.js) : reprend la fenetre de candidature Premieres parties */
#ce-corps{flex:1; min-height:300px; font-size:14.5px; line-height:1.55; padding:12px 14px; border:1px solid #E9E6DD; border-radius:10px; resize:vertical; color:#1A1915;}
#ce-corps:focus{outline:none; border-color:#E2C400; box-shadow:0 0 0 3px rgba(226,196,0,.25);}
#ce-corps.loading{background:linear-gradient(90deg,#fff,#FFF8D6,#fff); background-size:200% 100%; animation:bxload 1.2s linear infinite;}
.ce-autre{margin:-4px 0 0 56px; font-size:13px; color:#56534B; overflow-wrap:anywhere;}
.ce-autre a{color:#1A1915; text-decoration:underline; text-decoration-color:#E2C400; text-decoration-thickness:2px; text-underline-offset:3px;}
#ce-info .ce-warn{font-size:13.5px; line-height:1.45; background:#FFF4B8; border:1px solid #E8D56A; border-radius:10px; padding:8px 12px;}
#ce-info .ce-note{background:#F3F1EA; border-radius:9px; padding:9px 12px; white-space:pre-wrap; overflow-wrap:anywhere;}
.ce-fil-titre{margin:18px 0 4px; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:#8A867C; font-family:Inter, sans-serif;}

/* Filtre « Région » (02/11/2026) : 4 menus sous la recherche (type, région, département, origine) */
@media (min-width:701px){
  .ct-toolbar{grid-template-columns:repeat(4, minmax(0, 1fr));}
}

/* ==== Contacts (03/11/2026) : tri par type OU par ville, plusieurs personnes par lieu ==== */
.ct-th-duo{display:flex; align-items:center; gap:5px; min-width:0; font-size:11.5px; font-weight:700; color:var(--c-dim);}
.ct-th-duo button{flex:none;}
.ct-pers-list{display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:10px; margin-bottom:14px;}
.ct-pers{display:flex; flex-direction:column; gap:3px; min-width:0; padding:10px 12px; border:1px solid var(--c-line); border-radius:10px; background:#fff;}
.ct-pers-h{display:flex; flex-wrap:wrap; align-items:center; gap:6px; font-size:14.5px; color:var(--c-text);}
.ct-pers a{font-size:14px; color:#1E4FB8; text-decoration:none; overflow-wrap:anywhere;}
.ct-pers a:hover{text-decoration:underline;}
.ct-role{font-size:12px; font-weight:600; padding:1px 8px; border-radius:99px; background:#EEECE6; color:#4A473F;}
.ct-princ{font-size:11.5px; font-weight:700; padding:1px 8px; border-radius:99px; background:var(--c-sel); color:var(--c-accent-ink); white-space:nowrap;}
.ct-pers-ed{display:flex; flex-direction:column; align-items:flex-start; gap:8px;}
.ct-pe-rows{display:flex; flex-direction:column; gap:8px; width:100%;}
.ct-pe{display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 1fr) auto; grid-template-areas:"nom role acts" "mail tel acts"; gap:6px; align-items:center; padding:8px; border:1px solid var(--c-line); border-radius:10px; background:var(--c-soft);}
.ct-pe [data-p="nom"]{grid-area:nom;} .ct-pe [data-p="role"]{grid-area:role;} .ct-pe [data-p="mail"]{grid-area:mail;} .ct-pe [data-p="tel"]{grid-area:tel;}
.ct-pe input{font-size:14px; color:var(--c-text); padding:7px 9px; border:1px solid var(--c-line); border-radius:8px; background:#fff; min-width:0;}
.ct-pe input:focus{border-color:var(--c-accent); outline:none; box-shadow:var(--c-ring);}
.ct-field.changed .ct-pe input{border-color:var(--c-accent);}
.ct-pe-acts{grid-area:acts; display:flex; flex-direction:column; align-items:flex-end; justify-content:center; gap:6px;}
.ct-pe-btn{width:30px; height:30px; border:1px solid var(--c-line); border-radius:8px; background:#fff; color:var(--c-muted); font-size:14px; cursor:pointer;}
.ct-pe-btn:hover{background:var(--c-soft); color:var(--c-text);}
.ct-pe-btn:focus-visible{outline:none; box-shadow:var(--c-ring);}
@media (max-width:700px){
  .ct-th-duo{display:none;}
}
