/* ─── ALISRAEL PRIVATE FINANCE — Check-up ─────────────────────────────────────
   Nouveau fichier dédié — ne modifie aucune règle existante (style.css,
   cockpit.css, procurations.css). Réutilise les variables CSS globales déjà
   définies dans style.css (--navy, --gold, --cream, etc.).
   ─────────────────────────────────────────────────────────────────────────── */

.page-checkup {
  background-color: var(--cream, #F5F1EB);
  min-height: 100vh;
}

.page-checkup .pr-main { padding: 1.5rem 0 3rem; }

.cu-empty {
  padding: 3rem 1rem;
  text-align: center;
  color: var(--text-muted, #7A7570);
  font-size: 0.9375rem;
}
.cu-empty.cu-hidden { display: none; }

/* ── Liste des dossiers ───────────────────────────────────────────────────── */
.cu-list {
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
}

/* ── Carte client (accordéon principal, <details> natif) ─────────────────────
   Le natif évite tout bug de fermeture accidentelle au moindre clic sur une
   case à cocher : seule la structure DOM déjà en place est mise à jour. */
.cu-card {
  background: var(--white, #fff);
  /* Teinte de bordure alignée Phase C1/C2 (bleu/blanc/pastel) — la couleur
     de l'accent gauche (priorité/urgence, juste en dessous) reste
     INCHANGÉE : c'est un système sémantique distinct, hors périmètre de
     cette passe de réorganisation. */
  border: 1px solid var(--crm-border, #E4ECFC);
  border-left-width: 3px;
  border-radius: 10px;
  box-shadow: var(--shadow-sm, 0 1px 3px rgba(10,22,40,0.08));
  overflow: hidden;
}
.cu-card.cu-hidden { display: none; }

/* ── Accent de priorité (bordure gauche discrète) ─────────────────────────────
   Un seul repère de couleur, sobre, cohérent avec le reste de l'accordéon —
   pas d'aplat de fond, juste une bordure fine. */
.cu-card[data-priority="retard"]     { border-left-color: var(--error, #8B2020); }
.cu-card[data-priority="aujourdhui"] { border-left-color: var(--gold, #C9A96E); }
.cu-card[data-priority="urgent"]     { border-left-color: var(--gold-muted, #8B7240); }
.cu-card[data-priority="a-suivre"]   { border-left-color: var(--navy-border, #1A2F50); }
.cu-card[data-priority="planifie"]   { border-left-color: var(--border, #D8D3CC); }
.cu-card[data-priority="sans-date"]  { border-left-style: dashed; border-left-color: var(--text-light, #9C9589); }
.cu-card[data-priority="termine"]    { border-left-color: var(--border-light, #E8E4DE); opacity: 0.75; }

.cu-card-summary {
  list-style: none;
  cursor: pointer;
  padding: 1rem 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  position: relative;
}
.cu-card-summary::-webkit-details-marker { display: none; }

.cu-card-row1 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
}
.cu-card-row2 {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 1.25rem;
  font-size: 0.8125rem;
  color: var(--text-secondary, #4A4540);
  padding-left: 1.5rem;
}
.cu-card-row2 strong { color: var(--text-primary, #1C1A17); font-weight: 600; }
.cu-card-meta-line { min-width: 0; }

/* ── Les 7 badges de phase — calculés depuis la checklist, jamais stockés ─────
   CORRECTIF ERGONOMIQUE (Phase C3/D) — pointer-events:none sur la rangée
   (les espaces entre badges deviennent transparents aux clics et remontent
   nativement jusqu'au <summary>, qui bascule l'accordéon — jamais une
   section forcée) + pointer-events:auto sur chaque badge (reste pleinement
   cliquable pour un clic délibéré). Combiné au déplacement de cette rangée
   en fin de résumé (voir cuRenderCard()), élimine la collision mesurée où
   le centre géométrique du résumé tombait systématiquement sur un badge. */
.cu-phase-badges {
  padding-left: 1.5rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  pointer-events: none;
}
.cu-phase-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  background: var(--surface-alt, #F7F5F1);
  border: 1px solid var(--border-light, #E8E4DE);
  border-radius: 20px;
  padding: 2px 9px;
  font-size: 0.6875rem;
  font-weight: 600;
  color: var(--text-secondary, #4A4540);
  cursor: pointer;
  font-family: inherit;
  pointer-events: auto;
  min-height: 26px;
}
.cu-phase-badge:hover { border-color: var(--gold, #C9A96E); }
.cu-phase-symbol { font-weight: 700; }
.cu-phase-badge--non-commence .cu-phase-symbol { color: var(--text-light, #9C9589); }
.cu-phase-badge--en-cours { border-color: rgba(201,169,110,0.4); background: var(--gold-pale, #F0E8D8); }
.cu-phase-badge--en-cours .cu-phase-symbol { color: var(--gold-muted, #8B7240); }
.cu-phase-badge--termine { border-color: rgba(45,106,79,0.22); background: var(--success-bg, #EAF4EE); }
.cu-phase-badge--termine .cu-phase-symbol { color: var(--success, #2D6A4F); }
.cu-phase-badge--na { border-style: dashed; color: var(--text-light, #9C9589); opacity: 0.8; }
.cu-phase-badge--na .cu-phase-symbol { color: var(--text-light, #9C9589); }

.cu-card-arrow {
  font-size: 0.7rem;
  color: var(--gold-muted, #8B7240);
  flex-shrink: 0;
  width: 1rem;
}
/* Sélecteur d'enfant direct (>) : chaque <details> (carte ou section
   imbriquée) ne contrôle que la flèche de son PROPRE <summary>, jamais celle
   d'un <details> imbriqué plus profondément. */
.cu-card[open] > .cu-card-summary .cu-card-arrow-closed { display: none; }
.cu-card:not([open]) > .cu-card-summary .cu-card-arrow-open { display: none; }
.cu-section[open] > .cu-section-summary .cu-card-arrow-closed { display: none; }
.cu-section:not([open]) > .cu-section-summary .cu-card-arrow-open { display: none; }

.cu-card-name {
  font-family: var(--font-serif, 'Playfair Display', Georgia, serif);
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--navy, #0A1628);
  flex: 1 1 220px;
  min-width: 0;
}

.cu-pct {
  font-weight: 700;
  font-size: 0.9375rem;
  color: var(--navy, #0A1628);
  font-variant-numeric: tabular-nums;
  flex-shrink: 0;
}

/* ── Badges de statut général ──────────────────────────────────────────────── */
.cu-status {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 20px;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  white-space: nowrap;
  flex-shrink: 0;
}
.cu-status--a-faire  { background: rgba(10,22,40,0.06);  color: var(--text-secondary, #4A4540); border: 1px solid rgba(10,22,40,0.14); }
.cu-status--en-cours { background: rgba(201,169,110,0.15); color: var(--gold-muted, #8B7240); border: 1px solid rgba(201,169,110,0.3); }
.cu-status--attente  { background: rgba(251,146,60,0.12); color: #9a3412; border: 1px solid rgba(251,146,60,0.25); }
.cu-status--bloque   { background: rgba(239,68,68,0.1);   color: #b91c1c; border: 1px solid rgba(239,68,68,0.25); }
.cu-status--termine  { background: rgba(34,197,94,0.1);   color: #15803d; border: 1px solid rgba(34,197,94,0.22); }
/* État intermédiaire (correctif retour utilisateur réel) — bleu, distinct de
   l'ambre (attente), du vert (terminé) et du rouge (bloqué). */
.cu-status--premier-deblocage { background: rgba(59,130,246,0.1); color: #1d4ed8; border: 1px solid rgba(59,130,246,0.25); }

/* ── Badge de priorité (urgence « À checker ») ────────────────────────────────
   Distinct du badge de statut général ci-dessus — discret, une seule couleur
   d'accent par catégorie, jamais d'aplat criard. */
.cu-priority-badge {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 20px;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  white-space: nowrap;
  flex-shrink: 0;
  border: 1px solid transparent;
}
.cu-priority--retard     { background: var(--error-bg, #F9ECEC); color: var(--error, #8B2020); border-color: rgba(139,32,32,0.22); }
.cu-priority--aujourdhui { background: var(--gold-pale, #F0E8D8); color: var(--navy, #0A1628); border-color: rgba(201,169,110,0.4); }
.cu-priority--urgent     { background: var(--gold-pale, #F0E8D8); color: var(--gold-muted, #8B7240); border-color: rgba(139,114,64,0.28); }
.cu-priority--a-suivre   { background: var(--navy-pale, rgba(10,22,40,0.04)); color: var(--navy, #0A1628); border-color: rgba(10,22,40,0.12); }
.cu-priority--planifie   { background: var(--surface-alt, #F7F5F1); color: var(--text-muted, #7A7570); border-color: var(--border-light, #E8E4DE); }
.cu-priority--sans-date  { background: var(--off-white, #FAF8F5); color: var(--text-light, #9C9589); border: 1px dashed var(--border, #D8D3CC); }
.cu-priority--termine    { background: var(--surface-alt, #F7F5F1); color: var(--text-light, #9C9589); }
.cu-priority--premier-deblocage { background: rgba(59,130,246,0.08); color: #1d4ed8; border-color: rgba(59,130,246,0.22); }

/* ── Badge de synchronisation Supabase (assets/js/checkups-db.js) ────────────
   Visible uniquement une fois la migration validée (mode remote). Discret —
   texte + couleur d'accent, jamais d'aplat. Cliquable seulement en conflit. */
.cu-sync-badge {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 20px;
  font-size: 0.6875rem;
  font-weight: 600;
  white-space: nowrap;
  flex-shrink: 0;
  border: 1px solid transparent;
}
.cu-sync-badge--synced   { background: var(--success-bg, #EAF4EE); color: var(--success, #2D6A4F); }
.cu-sync-badge--saving   { background: var(--surface-alt, #F7F5F1); color: var(--text-muted, #7A7570); }
.cu-sync-badge--error    { background: var(--gold-pale, #F0E8D8); color: var(--gold-muted, #8B7240); cursor: default; }
.cu-sync-badge--conflict { background: var(--error-bg, #F9ECEC); color: var(--error, #8B2020); cursor: pointer; border-color: rgba(139,32,32,0.25); }
.cu-sync-badge--conflict:hover { border-color: var(--error, #8B2020); }

/* ── Report rapide (+1j / +2j / +3j / +7j / +15j / +30j) ─────────────────────
   Vit dans le <summary> (carte fermée) — voir checkup.js pour le
   preventDefault() qui empêche ces clics de replier/déplier l'accordéon.
   CORRECTIF ERGONOMIQUE (Phase C3/D) — même risque que les badges de phase :
   sur mobile (texte qui s'enveloppe davantage), le centre géométrique du
   résumé peut tomber sur cette rangée plutôt que sur les badges. Même
   protection : pointer-events:none sur la rangée (espaces neutres, geste
   naturel = ouvrir/fermer la carte), pointer-events:auto sur chaque bouton
   (clic délibéré = reporter la date). Le libellé texte reste non cliquable
   (purement informatif), donc pas de pointer-events:auto dessus. */
.cu-quick-report {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.375rem;
  padding-left: 1.5rem;
  pointer-events: none;
}
.cu-quick-report-label {
  font-size: 0.75rem;
  color: var(--text-muted, #7A7570);
  margin-right: 0.125rem;
}
.cu-quick-btn {
  background: var(--surface-alt, #F7F5F1);
  border: 1px solid var(--border, #D8D3CC);
  border-radius: 20px;
  padding: 3px 10px;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--navy, #0A1628);
  cursor: pointer;
  font-family: inherit;
  min-height: 28px;
  pointer-events: auto;
}
.cu-quick-btn:hover { background: var(--gold-pale, #F0E8D8); border-color: var(--gold, #C9A96E); }

.cu-progress-wrap {
  flex: 1 1 100%;
  height: 6px;
  background: var(--border-light, #E8E4DE);
  border-radius: 4px;
  overflow: hidden;
}
.cu-progress-bar {
  height: 100%;
  /* Indicateur de complétion générique (pas un repère d'urgence) — bleu
     Phase C1/C2. */
  background: var(--crm-primary, #2563EB);
  border-radius: 4px;
  transition: width 0.3s ease;
}

/* ── Corps de l'accordéon ouvert ───────────────────────────────────────────── */
.cu-card-body {
  padding: 0 1.25rem 1.25rem;
  border-top: 1px solid var(--border-light, #E8E4DE);
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.cu-top-fields {
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
  padding-top: 1.25rem;
}
@media (min-width: 640px) {
  .cu-top-fields { flex-direction: row; flex-wrap: wrap; }
  .cu-top-fields .pr-form-group { flex: 1 1 220px; }
}

.cu-top-action-group .pr-form-input { font-size: 1rem; }

/* ── Sections (documents / banque / expertise / …) — <details> imbriqués ──────
   Couleurs alignées Phase C1/C2 (bleu/blanc/pastel, var(--crm-*) avec repli
   littéral) — cette famille de classes est utilisée EXCLUSIVEMENT à
   l'intérieur de la fiche client (Contacts, Banque/Expertise/Juridique/
   Assurances, Signature, Déblocage, Actions personnalisées), jamais par la
   barre Pilotage/Journal : aucun risque de débordement visuel ailleurs
   (voir PLAN-FICHE-CLIENT-C1C2.md §3, cette famille n'y figure pas). Seule
   la couleur change ici — structure et sélecteurs d'enfant direct (flèches
   ▶/▼, lignes 124-125 plus haut) restent strictement inchangés. ──────────── */
.cu-section {
  border: 1px solid var(--crm-border, #E4ECFC);
  border-radius: 8px;
  overflow: hidden;
}

.cu-section-summary {
  list-style: none;
  cursor: pointer;
  padding: 0.75rem 1rem;
  background: var(--crm-muted, #F1F5FD);
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--crm-ink, #0F172A);
}
.cu-section-summary::-webkit-details-marker { display: none; }
.cu-section-summary .cu-card-arrow { color: var(--crm-primary, #2563EB); }

.cu-section-count {
  margin-left: auto;
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--crm-primary-deep, #1D4ED8);
  font-variant-numeric: tabular-nums;
}

.cu-section-body {
  padding: 0.75rem 1rem 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

/* ── Ligne à cocher (documents / banque / expertise / juridique / assurances) ── */
.cu-check-row {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  min-height: 44px;
  cursor: pointer;
  font-size: 0.875rem;
  color: var(--text-primary, #1C1A17);
}
.cu-check-row input[type="checkbox"] {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  accent-color: var(--navy, #0A1628);
  cursor: pointer;
}
.cu-check-row:has(input:checked) span { color: var(--text-muted, #7A7570); text-decoration: line-through; }

/* ── Bascule « Non applicable » ─────────────────────────────────────────────
   Un item N/A est exclu du calcul —/●/✓ de sa phase, sans jamais modifier la
   case cochée sous-jacente (réversible à tout moment). */
.cu-check-row-item { display: flex; align-items: center; gap: 0.5rem; }
.cu-check-row-item .cu-check-row { flex: 1; min-width: 0; }
.cu-check-row-item--na .cu-check-row { opacity: 0.6; }
.cu-check-row-item--na .cu-check-row input[type="checkbox"] { cursor: not-allowed; }
.cu-na-tag {
  font-size: 0.6875rem;
  font-style: italic;
  color: var(--text-light, #9C9589);
  margin-left: 0.375rem;
}
.cu-na-toggle {
  flex-shrink: 0;
  background: none;
  border: 1px solid var(--border, #D8D3CC);
  border-radius: 14px;
  padding: 2px 9px;
  font-size: 0.6875rem;
  color: var(--text-muted, #7A7570);
  cursor: pointer;
  font-family: inherit;
  min-height: 26px;
}
.cu-na-toggle:hover { border-color: var(--gold, #C9A96E); color: var(--gold-muted, #8B7240); }

.cu-extra-field {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: 0.375rem;
  font-size: 0.8125rem;
  color: var(--text-secondary, #4A4540);
}
.cu-extra-field input {
  max-width: 160px;
}
.cu-extra-field .pr-form-input { padding: 0.4rem 0.6rem; font-size: 0.875rem; }

.cu-field-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
  font-size: 0.8125rem;
  color: var(--text-secondary, #4A4540);
}
.cu-field-row .pr-form-input { max-width: 200px; padding: 0.45rem 0.6rem; font-size: 0.875rem; }

/* ── Actions personnalisées ───────────────────────────────────────────────── */
.cu-actions-list {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
}

.cu-action-item {
  border: 1px solid var(--border-light, #E8E4DE);
  border-radius: 8px;
  padding: 0.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.cu-action-row1 {
  display: flex;
  align-items: flex-start;
  gap: 0.625rem;
}
.cu-action-row1 input[type="checkbox"] {
  width: 18px; height: 18px; margin-top: 3px; flex-shrink: 0;
  accent-color: var(--navy, #0A1628); cursor: pointer;
}
.cu-action-text {
  flex: 1;
  border: none;
  border-bottom: 1px dashed var(--border, #D8D3CC);
  background: none;
  font-size: 0.875rem;
  font-family: inherit;
  color: var(--text-primary, #1C1A17);
  padding: 0.25rem 0;
}
.cu-action-text:focus { outline: none; border-bottom-color: var(--gold, #C9A96E); }
.cu-action-item:has(.cu-action-row1 input:checked) .cu-action-text {
  color: var(--text-muted, #7A7570); text-decoration: line-through;
}

.cu-action-row2 {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  padding-left: 1.75rem;
}
.cu-action-row2 select,
.cu-action-row2 input[type="date"] {
  font-size: 0.8125rem;
  padding: 0.35rem 0.5rem;
  border: 1px solid var(--border, #D8D3CC);
  border-radius: 5px;
  background: var(--white, #fff);
  color: var(--text-primary, #1C1A17);
  font-family: inherit;
}
.cu-action-comment {
  flex: 1 1 160px;
  font-size: 0.8125rem;
  padding: 0.35rem 0.5rem;
  border: 1px solid var(--border, #D8D3CC);
  border-radius: 5px;
  font-family: inherit;
  color: var(--text-primary, #1C1A17);
}
.cu-action-delete {
  background: none;
  border: none;
  color: var(--text-muted, #7A7570);
  cursor: pointer;
  font-size: 0.8125rem;
  padding: 0.35rem 0.5rem;
}
.cu-action-delete:hover { color: #b91c1c; }

.cu-btn-add-action {
  align-self: flex-start;
}

/* ── Notes — journal horodaté (correctif retour utilisateur réel) ──────────── */
.cu-notes-log {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
  margin-bottom: 0.75rem;
  max-height: 260px;
  overflow-y: auto;
}
.cu-notes-empty { font-size: 0.875rem; color: var(--text-light, #9C9589); font-style: italic; margin: 0; }
.cu-notes-entry {
  border: 1px solid var(--border-light, #E8E4DE);
  border-radius: 8px;
  padding: 0.625rem 0.75rem;
  background: var(--off-white, #FAF8F5);
}
.cu-notes-entry-meta {
  font-size: 0.6875rem;
  font-weight: 600;
  color: var(--gold-muted, #8B7240);
  margin-bottom: 0.25rem;
}
.cu-notes-entry-text {
  font-size: 0.875rem;
  color: var(--text-primary, #1C1A17);
  white-space: pre-wrap;
  word-break: break-word;
}
.cu-notes-add { display: flex; flex-direction: column; gap: 0.5rem; }
.cu-notes-new-input {
  width: 100%;
  min-height: 64px;
  padding: 0.75rem;
  border: 1px solid var(--border, #D8D3CC);
  border-radius: 8px;
  font-family: var(--font-sans, 'Inter', sans-serif);
  font-size: 0.875rem;
  color: var(--text-primary, #1C1A17);
  resize: vertical;
  box-sizing: border-box;
}
.cu-notes-save-btn { align-self: flex-start; }

/* ── Bandeau de compteurs / filtres ───────────────────────────────────────────
   Petites puces cliquables, sobres — bordure + texte, pas d'aplat de couleur. */
.cu-counters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 1.25rem 0;
}
.cu-counter-chip {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  background: var(--white, #fff);
  border: 1px solid var(--border, #D8D3CC);
  border-radius: 20px;
  padding: 0.375rem 0.75rem;
  font-family: inherit;
  cursor: pointer;
  min-height: 36px;
}
.cu-counter-label {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--text-secondary, #4A4540);
  letter-spacing: 0.02em;
}
.cu-counter-value {
  font-size: 0.8125rem;
  font-weight: 700;
  color: var(--navy, #0A1628);
  font-variant-numeric: tabular-nums;
}
.cu-counter-chip--active {
  border-color: var(--gold, #C9A96E);
  background: var(--gold-pale, #F0E8D8);
  box-shadow: var(--shadow-sm, 0 1px 3px rgba(10,22,40,0.08));
}
.cu-counter-chip--retard     .cu-counter-value { color: var(--error, #8B2020); }
.cu-counter-chip--tous { border-style: dashed; }

/* ── Bouton « À traiter aujourd'hui » ─────────────────────────────────────────
   Le badge reflète en direct le nombre En retard + Aujourd'hui, y compris
   pendant la journée si un dossier devient urgent sans rouvrir la fenêtre. */
.cu-btn-today {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}
.cu-today-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  border-radius: 10px;
  background: var(--navy, #0A1628);
  color: var(--white, #fff);
  font-size: 0.6875rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

/* ── Terminés (section séparée, repliée en bas) ───────────────────────────────
   Réutilise .cu-section pour l'aspect accordéon, avec un rendu volontairement
   plus discret puisqu'elle est hors du flux de priorité active. */
.cu-termines-block {
  margin-top: 1.5rem;
  background: var(--surface-alt, #F7F5F1);
}
.cu-termines-block .cu-section-summary { background: transparent; }
.cu-termines-block .cu-list { gap: 0.75rem; }

/* "Premier déblocage effectué" (correctif retour utilisateur réel) — même
   gabarit que .cu-termines-block, teinte bleue pour signaler que ce N'EST
   PAS un état clos (contrairement à Terminés), juste mis de côté. */
.cu-premier-deblocage-block { background: rgba(59,130,246,0.04); margin-top: 1.5rem; }

/* ── Fenêtre « Aujourd'hui à traiter » ────────────────────────────────────────── */
.cu-daily-body {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  max-height: 60vh;
  overflow-y: auto;
}
.cu-daily-section-title {
  font-family: var(--font-serif, 'Playfair Display', Georgia, serif);
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--navy, #0A1628);
  margin: 0 0 0.625rem;
}
.cu-daily-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem 0.75rem;
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--border-light, #E8E4DE);
}
.cu-daily-row:last-child { border-bottom: none; }
.cu-daily-row-main {
  flex: 1 1 220px;
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
  background: none;
  border: none;
  padding: 0;
  text-align: left;
  cursor: pointer;
  font-family: inherit;
  min-height: 44px;
  justify-content: center;
}
.cu-daily-row-main:hover .cu-daily-name { color: var(--gold-muted, #8B7240); }
.cu-daily-name {
  font-weight: 700;
  color: var(--navy, #0A1628);
  font-size: 0.9375rem;
}
.cu-daily-action {
  font-size: 0.8125rem;
  color: var(--text-secondary, #4A4540);
}
.cu-daily-date {
  font-size: 0.75rem;
  font-weight: 600;
}
.cu-daily-date--retard     { color: var(--error, #8B2020); }
.cu-daily-date--aujourdhui { color: var(--gold-muted, #8B7240); }
.cu-daily-row-quick {
  display: flex;
  gap: 0.375rem;
  flex-shrink: 0;
}
.cu-daily-empty {
  text-align: center;
  color: var(--text-muted, #7A7570);
  padding: 1.5rem 0;
  font-size: 0.9375rem;
}

/* ── Recherche + filtres métier (Phase, Banque, Avocat) ───────────────────────
   Desktop : tout est visible en ligne, compact. Mobile : les sélecteurs
   passent derrière un bouton « Filtres » qui ouvre un tiroir plein écran —
   voir la media query en bas de fichier. */
.cu-filterbar {
  margin: 0.5rem 0 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.cu-filterbar-row1 {
  display: flex;
  gap: 0.75rem;
  align-items: center;
}
.cu-search-input {
  flex: 1;
  min-width: 0;
  padding: 0.6rem 0.9rem;
  border: 1px solid var(--border, #D8D3CC);
  border-radius: 20px;
  font-family: inherit;
  font-size: 0.875rem;
  color: var(--text-primary, #1C1A17);
  background: var(--white, #fff);
}
.cu-search-input:focus { outline: none; border-color: var(--gold, #C9A96E); }
.cu-filters-toggle-btn { display: none; white-space: nowrap; }

.cu-filters-panel {
  display: flex;
  flex-wrap: wrap;
  gap: 0.625rem;
  align-items: center;
}
.cu-filters-panel select {
  padding: 0.5rem 0.75rem;
  border: 1px solid var(--border, #D8D3CC);
  border-radius: 20px;
  font-family: inherit;
  font-size: 0.8125rem;
  color: var(--text-primary, #1C1A17);
  background: var(--white, #fff);
  min-height: 38px;
}
.cu-filters-panel select.cu-hidden { display: none; }
.cu-filters-panel-header, .cu-filters-panel-close { display: none; }

.cu-results-info {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 1rem;
  font-size: 0.8125rem;
  color: var(--text-muted, #7A7570);
}
#cu-results-count { font-weight: 600; color: var(--text-secondary, #4A4540); }
.cu-active-filters { display: flex; flex-wrap: wrap; gap: 0.375rem; }
.cu-active-filter-chip {
  background: var(--gold-pale, #F0E8D8);
  border: 1px solid rgba(201,169,110,0.4);
  border-radius: 14px;
  padding: 2px 9px;
  font-size: 0.75rem;
  color: var(--navy, #0A1628);
  cursor: pointer;
  font-family: inherit;
}
.cu-active-filter-chip:hover { border-color: var(--gold, #C9A96E); }

/* ── Modale nouveau check-up (légère, propre au fichier) ─────────────────────── */
.cu-modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 1.5rem;
  overflow-y: auto;
}
.cu-modal-overlay.cu-hidden { display: none; }

.cu-modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(10,22,40,0.45);
}

.cu-modal-box {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 440px;
  background: var(--white, #fff);
  border-radius: 12px;
  box-shadow: var(--shadow-lg, 0 12px 40px rgba(10,22,40,0.14));
  margin: auto;
  padding: 1.5rem;
}
.cu-modal-box--wide { max-width: 560px; }
.cu-modal-box--xl { max-width: 820px; }

/* ── Import en lot (Phase 3) ─────────────────────────────────────────────── */
.cu-docimp-dropzone {
  border: 1.5px dashed var(--border, #D8D3CC);
  border-radius: 10px;
  padding: 2rem 1rem;
  text-align: center;
  transition: border-color 0.15s, background 0.15s;
}
.cu-docimp-dropzone--over { border-color: var(--gold, #C9A96E); background: var(--gold-pale, #F0E8D8); }
.cu-docimp-dropzone-title {
  font-family: var(--font-serif, 'Playfair Display', Georgia, serif);
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--navy, #0A1628);
  margin: 0 0 0.375rem;
}
.cu-docimp-dropzone-sub { font-size: 0.8125rem; color: var(--text-muted, #7A7570); margin: 0 0 1rem; }
.cu-docimp-choose-btn { display: inline-block; cursor: pointer; }
.cu-docimp-choose-btn input[type="file"] { display: none; }

.cu-docimp-addmore {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex-wrap: wrap;
  margin-bottom: 0.875rem;
}
.cu-docimp-addmore-btn {
  background: var(--white, #fff);
  border: 1px solid var(--border, #D8D3CC);
  border-radius: 16px;
  padding: 4px 12px;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--navy, #0A1628);
  cursor: pointer;
  display: inline-block;
}
.cu-docimp-addmore-btn input[type="file"] { display: none; }
.cu-docimp-addmore-btn:hover { border-color: var(--gold, #C9A96E); }

.cu-docimp-counter { font-size: 0.8125rem; font-weight: 600; color: var(--gold-muted, #8B7240); margin: 0; }

.cu-docimp-selectall {
  background: none; border: none; padding: 0;
  font-size: 0.75rem; font-weight: 600; color: var(--gold-muted, #8B7240);
  text-decoration: underline; cursor: pointer; font-family: inherit;
}

.cu-docimp-list {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  max-height: 320px;
  overflow-y: auto;
  margin: 0.75rem 0 1.125rem;
  padding-right: 2px;
}
.cu-docimp-file {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  padding: 0.5rem 0.625rem;
  border: 1px solid var(--border-light, #E8E4DE);
  border-radius: 8px;
}
.cu-docimp-file-actions { display: inline-flex; align-items: center; gap: 0.625rem; flex: 0 0 auto; }
.cu-docimp-thumb {
  width: 32px; height: 32px;
  border-radius: 5px;
  object-fit: cover;
  background: var(--surface-alt, #F7F5F1);
  flex: 0 0 auto;
}
.cu-docimp-thumb--doc {
  display: flex; align-items: center; justify-content: center;
  font-size: 1rem;
}
.cu-docimp-file-name {
  font-size: 0.8125rem;
  color: var(--text-primary, #1C1A17);
  flex: 1 1 160px;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.cu-docimp-file-status {
  font-size: 0.75rem;
  font-weight: 600;
  white-space: nowrap;
  color: var(--text-muted, #7A7570);
}
.cu-docimp-file-status--uploaded { color: var(--success, #2D6A4F); }
.cu-docimp-file-status--error { color: var(--error, #8B2020); }
.cu-docimp-file-status--uploading { color: var(--gold-muted, #8B7240); }

.cu-docimp-assign {
  border: 1px solid var(--gold, #C9A96E);
  border-radius: 10px;
  padding: 0.875rem 1rem;
  background: var(--off-white, #FAF8F5);
}
.cu-docimp-assign-preview {
  font-size: 0.75rem;
  color: var(--text-muted, #7A7570);
  margin: 0.375rem 0 0.75rem;
}
/* Blocage léger (§14 Phase 3.1) — même ton ambre que PARTIEL, jamais rouge :
   une information à corriger, pas une erreur. */
.cu-docimp-assign-warning {
  font-size: 0.75rem;
  font-weight: 600;
  color: #9a3412;
  margin: 0.375rem 0 0.75rem;
}

/* ── Classement rapide par période (Phase 3.1) ───────────────────────────── */
.cu-docimp-period-files {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
  margin: 0.75rem 0;
  padding-top: 0.75rem;
  border-top: 1px dashed var(--border, #D8D3CC);
}
.cu-docimp-period-row { display: flex; flex-direction: column; gap: 0.3rem; }
.cu-docimp-period-filename {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--text-secondary, #4A4540);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.cu-docimp-period-chips { display: flex; flex-wrap: wrap; gap: 0.3rem; }
/* Chips volontairement plus compactes que .cu-doc-qa-choice standard — 8
   boutons + « Autre période » par ligne doivent rester scannables (§18),
   et passer à la ligne sans jamais provoquer de scroll horizontal (§19). */
.cu-docimp-period-chips .cu-doc-qa-choice { padding: 3px 9px; font-size: 0.75rem; }

.cu-docimp-touched { margin-top: 1.125rem; }

/* ── Centre de classement — section « Classés » repliable (Phase 3.2) ────── */
.cu-docimp-classified {
  margin-top: 1.25rem;
  padding-top: 0.875rem;
  border-top: 1px solid var(--border-light, #E8E4DE);
}
.cu-docimp-classified > summary {
  cursor: pointer;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--text-muted, #7A7570);
}
.cu-docimp-classified .cu-docimp-list { margin-top: 0.625rem; }
/* Fichiers déjà classés : discrets (texte atténué), sortent visuellement du
   chemin sans disparaître — restent ouvrables/réaffectables (§11). */
.cu-docimp-classified .cu-docimp-file { opacity: 0.75; }
.cu-docimp-classified .cu-docimp-file:hover { opacity: 1; }

/* Bouton « Classer les documents » dans le résumé de « Documents à classer »
   (onglet normal) — n'apparaît que si la section a du contenu. */
.cu-doc-aclasser-open-btn { margin-left: 0.75rem; }

.cu-docimp-footer {
  display: flex;
  justify-content: flex-end;
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border-light, #E8E4DE);
}

/* Mobile — la liste reste verticale (déjà le cas), le panneau d'affectation
   colle en bas de la modale pour rester accessible sans trop scroller. */
@media (max-width: 640px) {
  .cu-docimp-assign { position: sticky; bottom: -1.5rem; margin: 0 -1.5rem -1.5rem; border-radius: 0; z-index: 2; }
}

/* ── Import rapide ────────────────────────────────────────────────────────── */
.cu-import-help {
  font-size: 0.8125rem;
  color: var(--text-muted, #7A7570);
  margin: 0 0 0.75rem;
  line-height: 1.5;
}
.cu-import-help code {
  background: var(--surface-alt, #F7F5F1);
  padding: 1px 5px;
  border-radius: 3px;
  font-size: 0.75rem;
}

.cu-import-textarea {
  width: 100%;
  min-height: 200px;
  padding: 0.75rem;
  border: 1px solid var(--border, #D8D3CC);
  border-radius: 8px;
  font-family: var(--font-sans, 'Inter', sans-serif);
  font-size: 0.875rem;
  line-height: 1.6;
  color: var(--text-primary, #1C1A17);
  resize: vertical;
  box-sizing: border-box;
}
.cu-import-textarea:focus { outline: none; border-color: var(--gold, #C9A96E); }

.cu-import-count {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--gold-muted, #8B7240);
  margin: 0.625rem 0 0;
}

.cu-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.25rem;
}
.cu-modal-title {
  font-family: var(--font-serif, 'Playfair Display', Georgia, serif);
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--navy, #0A1628);
  margin: 0;
}
.cu-modal-close {
  background: none; border: none; cursor: pointer;
  font-size: 1.25rem; color: var(--text-muted, #7A7570); line-height: 1;
}

#cu-form { display: flex; flex-direction: column; gap: 1rem; }
#cu-form.cu-hidden { display: none; }
#cu-modal-resolver.cu-hidden { display: none; }

.cu-modal-footer {
  display: flex;
  justify-content: flex-end;
  gap: 0.625rem;
  margin-top: 0.5rem;
}

/* ── Filtres sur mobile : bouton unique + tiroir plein écran ──────────────────
   Évite d'empiler 3-4 <select> pleine largeur au milieu de la page. */
@media (max-width: 767px) {
  .cu-filters-toggle-btn { display: inline-flex; }
  .cu-filters-panel {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 1000;
    background: var(--white, #fff);
    flex-direction: column;
    align-items: stretch;
    padding: 1.5rem;
    overflow-y: auto;
  }
  .cu-filters-panel.cu-filters-panel--open { display: flex; }
  .cu-filters-panel select { width: 100%; }
  .cu-filters-panel-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1rem;
  }
  .cu-filters-panel-title {
    font-family: var(--font-serif, 'Playfair Display', Georgia, serif);
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--navy, #0A1628);
  }
  .cu-filters-panel-close { display: inline-block; }
  /* Neutralise .pr-btn-secondary{flex:1} (règle mobile de procurations.css
     pensée pour des boutons en ligne) qui étirerait le bouton sur toute la
     hauteur de ce panneau en colonne. */
  #cu-btn-reset-filters { width: 100%; margin-top: 0.5rem; flex: none; }
}

/* ── Responsive : compact sur mobile, sans complexité superflue ──────────────── */
@media (max-width: 480px) {
  .cu-card-summary { padding: 0.875rem 1rem; }
  .cu-card-name { font-size: 1rem; }
  .cu-action-row2 { padding-left: 0; }
  .cu-card-row2, .cu-quick-report, .cu-phase-badges { padding-left: 0; }
  .cu-counters { gap: 0.375rem; margin: 1rem 0; }
  .cu-counter-chip { padding: 0.3rem 0.55rem; }
  .cu-counter-label { font-size: 0.6875rem; }
  .cu-daily-row-quick { width: 100%; justify-content: flex-start; }
  /* CORRECTIF ERGONOMIQUE (Phase C3/D) — sur mobile, le report rapide (6
     boutons) s'enveloppait sur 2 lignes et occupait assez de hauteur pour
     que le centre géométrique du résumé tombe exactement dessus (mesuré).
     Une seule ligne défilante horizontalement (même principe déjà éprouvé
     que .cu-deb-months pour le bandeau des déblocages) rend sa hauteur
     faible et prévisible, quel que soit le nombre de boutons. */
  .cu-quick-report {
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 2px;
  }
  .cu-quick-btn { flex-shrink: 0; }
}

/* ── Panneau de migration Supabase ─────────────────────────────────────────── */
.cu-migration-panel {
  background: var(--gold-pale, #F0E8D8);
  border: 1px solid rgba(201,169,110,0.4);
  border-radius: 10px;
  padding: 1.25rem;
  margin: 1.25rem 0;
}
.cu-migration-panel.cu-hidden { display: none; }
.cu-migration-report.cu-hidden { display: none; }
#cu-migration-step3.cu-hidden { display: none; }
.cu-migration-header { margin-bottom: 0.875rem; }
.cu-migration-title {
  font-family: var(--font-serif, 'Playfair Display', Georgia, serif);
  font-size: 1rem;
  font-weight: 700;
  color: var(--navy, #0A1628);
}
.cu-migration-summary {
  margin: 0.375rem 0 0;
  font-size: 0.8125rem;
  color: var(--text-secondary, #4A4540);
}
.cu-migration-steps {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.625rem;
}
.cu-migration-report {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(201,169,110,0.35);
  font-size: 0.8125rem;
  color: var(--text-secondary, #4A4540);
}
.cu-migration-report ul { margin: 0.375rem 0 0.75rem; padding-left: 1.25rem; }
.cu-migration-error { color: var(--error, #8B2020); font-weight: 600; margin: 0.5rem 0 0; }
.cu-migration-ok { color: var(--success, #2D6A4F); font-weight: 600; margin: 0.5rem 0 0; }

@media (max-width: 480px) {
  .cu-migration-steps { flex-direction: column; }
  .cu-migration-steps button { width: 100%; }
}

/* ── Bouton « Contacter » compact (carte fermée) ──────────────────────────────
   Un seul point d'entrée discret plutôt que 6 boutons Mail/WhatsApp visibles
   en permanence — voir cu-contacter-popover pour le détail. */
.cu-contacter-wrap { position: relative; flex-shrink: 0; }
.cu-contacter-btn {
  background: var(--surface-alt, #F7F5F1);
  border: 1px solid var(--border, #D8D3CC);
  border-radius: 20px;
  padding: 3px 12px;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--navy, #0A1628);
  cursor: pointer;
  font-family: inherit;
}
.cu-contacter-btn:hover { border-color: var(--gold, #C9A96E); }

.cu-contacter-popover {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  z-index: 20;
  background: var(--white, #fff);
  border: 1px solid var(--border-light, #E8E4DE);
  border-radius: 10px;
  box-shadow: var(--shadow-lg, 0 12px 40px rgba(10,22,40,0.14));
  padding: 0.75rem;
  width: 260px;
  cursor: default;
}
.cu-contacter-popover.cu-hidden { display: none; }

.cu-contacter-row {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  padding: 0.5rem 0;
  border-bottom: 1px solid var(--border-light, #E8E4DE);
}
.cu-contacter-row:last-child { border-bottom: none; padding-bottom: 0; }
.cu-contacter-role {
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--text-light, #9C9589);
}
.cu-contacter-name {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--text-primary, #1C1A17);
}
.cu-contacter-actions { display: flex; gap: 0.5rem; margin-top: 0.125rem; }
.cu-contacter-action {
  background: none;
  border: none;
  color: var(--gold-muted, #8B7240);
  font-size: 0.75rem;
  font-weight: 600;
  cursor: pointer;
  padding: 0;
  text-decoration: none;
  font-family: inherit;
}
.cu-contacter-action:hover { text-decoration: underline; }
.cu-contacter-missing { font-size: 0.75rem; color: var(--text-light, #9C9589); font-style: italic; }

/* ── Bloc « CONTACTS » (dossier ouvert) ──────────────────────────────────────── */
.cu-contacts-block { gap: 0.75rem; }
.cu-contact-block-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 1rem;
  padding: 0.5rem 0;
  border-bottom: 1px solid var(--border-light, #E8E4DE);
}
.cu-contact-block-row:last-child { border-bottom: none; }
.cu-contact-block-role {
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--gold-muted, #8B7240);
  width: 70px;
  flex-shrink: 0;
}
.cu-contact-block-name {
  font-weight: 600;
  color: var(--text-primary, #1C1A17);
  font-size: 0.875rem;
  flex: 1 1 140px;
}
.cu-contact-block-actions { display: flex; gap: 0.75rem; flex-shrink: 0; }
.cu-contact-unlink {
  background: none;
  border: 1px solid var(--border, #D8D3CC);
  border-radius: 20px;
  padding: 3px 11px;
  font-size: 0.75rem;
  color: var(--text-muted, #7A7570);
  cursor: pointer;
  font-family: inherit;
  flex-shrink: 0;
}
.cu-contact-unlink:hover { border-color: var(--error, #8B2020); color: var(--error, #8B2020); }

/* ── Bloc « ESPACE CLIENT » (dossier ouvert) — compact, discret, premium ──── */
.cu-portal-block {
  margin-top: 0.75rem;
  padding: 0.75rem 0.875rem;
  border: 1px solid var(--border-light, #E8E4DE);
  border-radius: 8px;
  background: var(--surface-alt, #F7F5F1);
}
.cu-portal-header {
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--gold-muted, #8B7240);
  margin-bottom: 0.5rem;
}
.cu-portal-body { display: flex; flex-direction: column; align-items: flex-start; gap: 0.5rem; }
.cu-portal-status { font-size: 0.875rem; font-weight: 600; margin: 0; }
.cu-portal-status--none    { color: var(--text-muted, #7A7570); }
.cu-portal-status--invite  { color: var(--gold-muted, #8B7240); }
.cu-portal-status--actif   { color: var(--success, #2D6A4F); }
.cu-portal-status--revoque { color: var(--error, #8B2020); }
.cu-portal-hint { font-size: 0.8125rem; color: var(--text-muted, #7A7570); margin: 0; line-height: 1.4; }
.cu-portal-hint--warning { color: var(--error, #8B2020); }
.cu-portal-body .pr-btn-primary,
.cu-portal-body .pr-btn-secondary { padding: 0.4rem 0.875rem; font-size: 0.8125rem; }

/* ── Bloc « FINANCEMENT » (dossier ouvert) — lecture seule, même style que
   « ESPACE CLIENT » ci-dessus (compact, discret, premium) ───────────────── */
.cu-financement-block {
  margin-top: 0.75rem;
  padding: 0.75rem 0.875rem;
  border: 1px solid var(--border-light, #E8E4DE);
  border-radius: 8px;
  background: var(--surface-alt, #F7F5F1);
}
.cu-financement-header {
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--gold-muted, #8B7240);
  margin-bottom: 0.5rem;
}
.cu-financement-body { display: flex; flex-direction: column; gap: 0.375rem; }
.cu-financement-row { display: flex; align-items: baseline; justify-content: space-between; gap: 0.75rem; }
.cu-financement-label { font-size: 0.8125rem; color: var(--text-muted, #7A7570); }
.cu-financement-value { font-size: 0.875rem; font-weight: 600; color: var(--text, #2A2620); }

/* ── Panneau « Rapprochement clients » + modale liaison contact ──────────────── */
.cu-rapp-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1rem;
  font-size: 0.8125rem;
  color: var(--text-muted, #7A7570);
}
.cu-rapp-counter { font-weight: 600; color: var(--text-secondary, #4A4540); }
.cu-rapp-body { max-height: 65vh; overflow-y: auto; }
.cu-rapp-card { display: flex; flex-direction: column; gap: 0.75rem; }
.cu-rapp-checkup-nom {
  font-family: var(--font-serif, 'Playfair Display', Georgia, serif);
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--navy, #0A1628);
  margin: 0;
}
.cu-rapp-linked-info { font-size: 0.875rem; color: var(--text-secondary, #4A4540); margin: 0; }
.cu-rapp-none, .cu-rapp-done { color: var(--text-muted, #7A7570); font-size: 0.875rem; }

.cu-rapp-candidate {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
  border: 1px solid var(--border-light, #E8E4DE);
  border-radius: 8px;
  padding: 0.75rem;
}
.cu-rapp-level {
  font-size: 0.6875rem;
  font-weight: 700;
  border-radius: 12px;
  padding: 2px 8px;
  flex-shrink: 0;
}
.cu-rapp-level--exacte   { background: var(--success-bg, #EAF4EE); color: var(--success, #2D6A4F); }
.cu-rapp-level--probable { background: var(--gold-pale, #F0E8D8); color: var(--gold-muted, #8B7240); }
.cu-rapp-level--possible { background: var(--surface-alt, #F7F5F1); color: var(--text-muted, #7A7570); }
.cu-rapp-candidate-name { font-weight: 600; color: var(--text-primary, #1C1A17); flex: 1 1 140px; }
.cu-rapp-candidate-coords { font-size: 0.8125rem; color: var(--text-muted, #7A7570); flex: 1 1 160px; }

.cu-rapp-more {
  background: none;
  border: none;
  color: var(--gold-muted, #8B7240);
  font-size: 0.8125rem;
  font-weight: 600;
  cursor: pointer;
  padding: 0;
  align-self: flex-start;
  font-family: inherit;
}
.cu-rapp-manual { margin-top: 0.5rem; }
.cu-rapp-manual .pr-form-input { margin-top: 0.375rem; }
#cu-rapp-manual-results, #cu-contact-link-results {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-top: 0.5rem;
}
.cu-rapp-actions { display: flex; justify-content: flex-end; gap: 0.625rem; }
.cu-contact-link-create { margin-top: 0.5rem; }

/* ── Choix du pays (numéro WhatsApp ambigu) ──────────────────────────────────── */
.cu-country-number {
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--navy, #0A1628);
  margin: 0 0 1rem;
}
.cu-country-choices { display: flex; gap: 0.75rem; }

/* ── Avertissement changement de banque (3 choix, jamais automatique) ────────── */
.cu-bank-warning-choices { display: flex; flex-wrap: wrap; gap: 0.625rem; }
.cu-bank-warning-choices .cu-contact-unlink { padding: 0.6rem 1rem; }

/* ── Regroupement par banque dans la modale de liaison contact bancaire ──────── */
.cu-bank-group-title {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--text-muted, #7A7570);
  margin: 0.75rem 0 0.375rem;
}
.cu-bank-group-title:first-child { margin-top: 0; }

@media (max-width: 480px) {
  .cu-contacter-popover { right: -0.5rem; width: 230px; }
  .cu-contact-block-actions { width: 100%; justify-content: flex-start; }
  .cu-country-choices { flex-direction: column; }
  .cu-bank-warning-choices { flex-direction: column; }
  .cu-bank-warning-choices button { width: 100%; }
}

/* ═══ BANDEAU « DÉBLOCAGES À VENIR — 6 MOIS » ════════════════════════════════
   Vue calculée à 100% depuis les Check-ups existants. Tout en haut de page,
   avant les compteurs — sobre, premium, marine/crème/doré. ═══════════════ */

.cu-deb-bandeau {
  background: var(--white, #fff);
  border: 1px solid var(--border-light, #E8E4DE);
  border-radius: 12px;
  box-shadow: var(--shadow-sm, 0 1px 3px rgba(10,22,40,0.08));
  padding: 1.25rem 1.5rem 1.5rem;
  margin: 1.25rem 0 1.5rem;
}
.cu-deb-bandeau:empty { display: none; }
.cu-deb-bandeau-header { margin-bottom: 0.875rem; }
.cu-deb-bandeau-title {
  font-family: var(--font-serif, 'Playfair Display', Georgia, serif);
  font-size: 1.0625rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--navy, #0A1628);
  margin: 0;
  text-transform: uppercase;
}

/* ── Bloc « EN RETARD » — discret, jamais une zone rouge pleine ─────────────── */
.cu-deb-retard-block {
  border-left: 3px solid var(--error, #8B2020);
  background: var(--error-bg, #F9ECEC);
  border-radius: 6px;
  padding: 0.75rem 1rem;
  margin-bottom: 1rem;
}
.cu-deb-retard-label {
  display: block;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--error, #8B2020);
  margin-bottom: 0.625rem;
}
.cu-deb-retard-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.625rem;
}

/* ── Grille des 6 mois (desktop) / scroll horizontal + snap (mobile) ────────── */
.cu-deb-months {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 0.875rem;
}
.cu-deb-month {
  min-width: 0;
  border: 1px solid var(--border-light, #E8E4DE);
  border-radius: 8px;
  padding: 0.75rem;
  background: var(--off-white, #FAF8F5);
}
.cu-deb-month-header {
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
  margin-bottom: 0.625rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid var(--border-light, #E8E4DE);
}
.cu-deb-month-name {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--navy, #0A1628);
}
.cu-deb-month-total {
  font-size: 0.6875rem;
  color: var(--text-muted, #7A7570);
}
.cu-deb-month-total--partial { color: var(--gold-muted, #8B7240); }
.cu-deb-month-body {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.cu-deb-month-empty {
  font-size: 0.8125rem;
  color: var(--text-light, #9C9589);
  margin: 0;
}

/* ── Carte échéance (bandeau) ─────────────────────────────────────────────── */
.cu-deb-card {
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
  width: 100%;
  text-align: left;
  background: var(--white, #fff);
  border: 1px solid var(--border, #D8D3CC);
  border-left: 3px solid var(--border, #D8D3CC);
  border-radius: 6px;
  padding: 0.5rem 0.625rem;
  font-family: inherit;
  cursor: pointer;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.cu-deb-card:hover { border-color: var(--gold, #C9A96E); box-shadow: 0 2px 6px rgba(10,22,40,0.08); }
.cu-deb-card--retard    { border-left-color: var(--error, #8B2020); }
.cu-deb-card--urgent    { border-left-color: var(--gold, #C9A96E); }
.cu-deb-card--attention { border-left-color: var(--gold-muted, #8B7240); }
.cu-deb-card-date {
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  color: var(--navy, #0A1628);
}
.cu-deb-card-top {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--text-secondary, #4A4540);
}
.cu-deb-card-libelle {
  font-size: 0.75rem;
  color: var(--text-muted, #7A7570);
  font-style: italic;
}
.cu-deb-card-montant {
  font-size: 0.8125rem;
  font-weight: 700;
  color: var(--gold-muted, #8B7240);
}
.cu-deb-card-banque {
  font-size: 0.75rem;
  color: var(--text-muted, #7A7570);
}

/* ── Section « Déblocage des fonds » (dossier) — multi-échéances ────────────── */
.cu-deb-all-done {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
  background: var(--off-white, #FAF8F5);
  border: 1px solid var(--border-light, #E8E4DE);
  border-radius: 8px;
  padding: 0.75rem 1rem;
  margin-bottom: 0.875rem;
}
.cu-deb-all-done-icon {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--gold-muted, #8B7240);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.8125rem;
  font-weight: 700;
}
.cu-deb-all-done p { flex: 1 1 200px; margin: 0; font-size: 0.875rem; color: var(--text-primary, #1C1A17); }

/* État intermédiaire (correctif retour utilisateur réel) — même structure
   que .cu-deb-all-done, teinte bleue pour rester cohérent avec les badges
   de statut "Premier déblocage effectué" ci-dessus. */
.cu-deb-status-actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
  background: var(--off-white, #FAF8F5);
  border: 1px solid var(--border-light, #E8E4DE);
  border-radius: 8px;
  padding: 0.75rem 1rem;
  margin-bottom: 0.875rem;
}
.cu-deb-status-actions--premier { background: rgba(59,130,246,0.06); border-color: rgba(59,130,246,0.18); }
.cu-deb-status-icon {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--gold-muted, #8B7240);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.8125rem;
}
.cu-deb-status-actions--premier .cu-deb-status-icon { background: #1d4ed8; }
.cu-deb-status-actions p { flex: 1 1 200px; margin: 0; font-size: 0.875rem; color: var(--text-primary, #1C1A17); }

.cu-deb-list { display: flex; flex-direction: column; gap: 0.875rem; }
.cu-deb-empty { font-size: 0.875rem; color: var(--text-light, #9C9589); font-style: italic; margin: 0 0 0.75rem; }
.cu-deb-entry {
  border: 1px solid var(--border-light, #E8E4DE);
  border-radius: 8px;
  padding: 0.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.cu-deb-entry--done { background: var(--off-white, #FAF8F5); }
.cu-deb-entry-row { display: flex; gap: 0.5rem; align-items: center; flex-wrap: wrap; }
.cu-deb-montant-input { max-width: 150px; }
.cu-deb-montant-preview {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--gold-muted, #8B7240);
  white-space: nowrap;
}
.cu-deb-libelle-input { font-style: italic; }
.cu-deb-entry-checks { display: flex; gap: 1.25rem; flex-wrap: wrap; }
.cu-deb-delete {
  align-self: flex-start;
  background: none;
  border: none;
  color: var(--error, #8B2020);
  font-size: 0.75rem;
  text-decoration: underline;
  cursor: pointer;
  padding: 0;
  font-family: inherit;
}
.cu-btn-add-deblocage { margin-top: 0.25rem; }
.cu-deb-historique { margin-top: 1rem; }
.cu-deb-historique > summary {
  cursor: pointer;
  font-size: 0.8125rem;
  color: var(--text-muted, #7A7570);
  font-weight: 600;
}
.cu-deb-list--historique { margin-top: 0.75rem; }

/* Surbrillance temporaire au clic depuis le bandeau — discrète, premium */
.cu-deb-entry--flash {
  animation: cu-deb-flash 2s ease-out;
}
@keyframes cu-deb-flash {
  0%   { box-shadow: 0 0 0 3px rgba(201,169,110,0.55); }
  100% { box-shadow: 0 0 0 0 rgba(201,169,110,0); }
}

/* ── Responsive ───────────────────────────────────────────────────────────── */
@media (max-width: 900px) {
  .cu-deb-months {
    grid-template-columns: none;
    grid-auto-flow: column;
    grid-auto-columns: minmax(220px, 1fr);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    padding-bottom: 0.5rem;
    -webkit-overflow-scrolling: touch;
  }
  .cu-deb-month { scroll-snap-align: start; }
}
@media (max-width: 480px) {
  .cu-deb-bandeau { padding: 1rem; }
  .cu-deb-months { grid-auto-columns: minmax(78vw, 1fr); }
  .cu-deb-retard-list { flex-direction: column; }
  .cu-deb-retard-list .cu-deb-card { width: 100%; }
  .cu-deb-entry-row { flex-direction: column; align-items: stretch; }
  .cu-deb-montant-input { max-width: none; }
}

/* ═══ SOUS-ONGLETS DOSSIER | DOCUMENTS ═══════════════════════════════════════ */
.cu-subtabs {
  display: flex;
  gap: 0.5rem;
  margin-bottom: 1rem;
  border-bottom: 1px solid var(--border-light, #E8E4DE);
}
.cu-subtab {
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  padding: 0.5rem 0.25rem 0.625rem;
  margin-bottom: -1px;
  font-family: inherit;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--text-muted, #7A7570);
  cursor: pointer;
}
.cu-subtab:hover { color: var(--navy, #0A1628); }
.cu-subtab--active { color: var(--navy, #0A1628); border-bottom-color: var(--gold, #C9A96E); }
.cu-tab-panel.cu-hidden { display: none; }

/* ═══ PHASE C1/C2 — identité visuelle bleu/blanc/pastel, SCOPÉE à la fiche
   client ════════════════════════════════════════════════════════════════
   Réutilise les tokens déjà validés et définis sur .crm-shell (voir
   assets/css/crm-shell.css, non modifié ici) via var(--crm-*, repli
   littéral identique) — ce fichier n'invente aucune nouvelle couleur et ne
   déclare JAMAIS ces variables lui-même : il hérite de la valeur posée sur
   l'ancêtre .crm-shell quand la page est servie normalement (checkup.html),
   et retombe sur le repli si jamais checkup.css était chargé seul.

   Volontairement NE TOUCHE PAS .cu-subtabs/.cu-subtab/.cu-subtab--active
   ci-dessus (partagés avec la barre « Pilotage » et les filtres du Journal,
   hors périmètre de la fiche — voir PLAN-FICHE-CLIENT-C1C2.md §3, risque
   n°5) : les nouvelles classes .cu-card-subtab*/.cu-doc-innernav*
   ci-dessous s'ajoutent EN PLUS des classes de base (sizing/comportement
   inchangés), avec une spécificité plus élevée pour ne redéfinir QUE la
   couleur sur la fiche, jamais sur Pilotage/Journal. ═══════════════════ */

/* Barre des 5 onglets principaux de la fiche (Aperçu / Étapes bancaires /
   Documents / Tâches / Notes & historique). */
.cu-card-subtabs {
  border-bottom-color: var(--crm-border, #E4ECFC);
}
/* Lisibilité des onglets (retour utilisateur réel) — un contour léger sur
   CHAQUE onglet pour qu'il se distingue comme bouton cliquable, texte plus
   foncé au repos. Toujours scopé à .cu-card-subtab (jamais .cu-subtab de
   base, partagé avec Pilotage/Journal — voir note ci-dessus) : même
   disposition (flex, même rangée), mêmes dimensions globales, juste un
   contour/fond en plus — aucune nouvelle navigation, aucun gros bouton. */
.cu-card-subtab {
  border: 1px solid var(--crm-border, #E4ECFC);
  border-radius: 8px;
  background: var(--crm-card, #FFFFFF);
  color: var(--crm-ink-soft, #475569);
  margin-bottom: 0;
}
.cu-card-subtab.cu-subtab--active {
  color: var(--crm-primary-deep, #1D4ED8);
  background: var(--crm-primary-tint, #EFF4FE);
  border-color: var(--crm-primary, #2563EB);
}
.cu-card-subtab:hover { color: var(--crm-primary-deep, #1D4ED8); border-color: var(--crm-primary, #2563EB); }

/* Débordement mobile (retour utilisateur réel) — les 5 onglets ne
   tenaient pas sur 375px ("Notes & historique" sortait entièrement de
   l'écran, inatteignable au doigt). Défilement horizontal simple,
   scopé à .cu-card-subtabs uniquement (jamais Pilotage/Journal) et au
   seul point de rupture mobile déjà utilisé ailleurs dans ce fichier —
   aucun habillage visuel changé, aucun nouveau bouton. */
@media (max-width: 760px) {
  .cu-card-subtabs {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    flex-wrap: nowrap;
  }
  .cu-card-subtab { flex-shrink: 0; }
}

/* Sous-commutateur « Documents client | Documents internes » — à
   l'intérieur de l'onglet Documents, jamais un 6e onglet de même rang que
   les 5 principaux (voir rapport — arbitrage « Documents internes »).
   Rendu en-dehors des panneaux lazy-chargés documents-panel/interne-panel
   pour survivre à leur reconstruction totale (panel.innerHTML, voir
   _cuRefreshDocumentsTab/_cuRefreshInterneTab, non modifiés). */
.cu-doc-innernav {
  display: flex;
  gap: 0.5rem;
  margin: -0.25rem 0 0.875rem;
}
.cu-doc-innernav.cu-hidden { display: none; }
.cu-doc-innernav-btn {
  background: var(--crm-muted, #F1F5FD);
  border: 1px solid transparent;
  border-radius: 999px;
  padding: 0.3rem 0.75rem;
  font-family: inherit;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--crm-ink-soft, #475569);
  cursor: pointer;
}
.cu-doc-innernav-btn:hover { color: var(--crm-primary-deep, #1D4ED8); }
.cu-doc-innernav-btn.cu-subtab--active {
  background: var(--crm-primary-tint, #EFF4FE);
  border-color: var(--crm-primary, #2563EB);
  color: var(--crm-primary-deep, #1D4ED8);
}

/* Actions personnalisées relocalisées sous l'onglet Tâches (voir rapport —
   arbitrage « Actions personnalisées ») : séparateur discret rappelant que
   ce bloc est distinct du moteur de tâches CRM au-dessus. */
.cu-card-actions-panel { padding-top: 0.25rem; }
.cu-card-actions-panel-label {
  font-size: 0.75rem;
  color: var(--crm-ink-faint, #94A3B8);
  margin: 0 0 0.625rem;
}

/* ═══ ESPACE DE PILOTAGE — Déblocages à venir | Tâches à faire ══════════════
   Réutilise .cu-subtabs/.cu-subtab/.cu-tab-panel ci-dessus (même langage
   visuel que les sous-onglets Dossier/Documents). .cu-deb-bandeau garde
   INTÉGRALEMENT son propre style (non modifié) — seule sa marge externe est
   neutralisée ici (déjà portée par .cu-pilotage) pour éviter un double
   espacement, sans toucher à la règle de base. ═══════════════════════════ */
.cu-pilotage { margin: 1.25rem 0 1.5rem; }
.cu-pilotage .cu-deb-bandeau { margin-top: 0; margin-bottom: 0; }
.cu-pilotage-tabs .cu-subtab { min-height: 44px; padding: 0.625rem 0.5rem; }
.cu-pilotage-count {
  display: inline-block;
  margin-left: 0.25rem;
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--text-muted, #7A7570);
}
.cu-subtab--active .cu-pilotage-count { color: var(--gold-muted, #8B7240); }

/* ── Panneau Tâches — même chrome de carte que .cu-deb-bandeau ─────────────── */
.cu-tasks-panel {
  background: var(--white, #fff);
  border: 1px solid var(--border-light, #E8E4DE);
  border-radius: 12px;
  box-shadow: var(--shadow-sm, 0 1px 3px rgba(10,22,40,0.08));
  padding: 1.25rem 1.5rem 1.5rem;
}
.cu-tasks-body {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  max-height: 480px;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.cu-tasks-section-title {
  display: block;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--navy, #0A1628);
  margin-bottom: 0.5rem;
}
.cu-tasks-section-empty { font-size: 0.8125rem; color: var(--text-light, #9C9589); margin: 0; }
.cu-tasks-list { display: flex; flex-direction: column; gap: 0.625rem; }

.cu-tasks-empty {
  text-align: center;
  padding: 1.5rem 1rem;
  font-family: var(--font-serif, 'Playfair Display', Georgia, serif);
  font-size: 1rem;
  font-weight: 600;
  color: var(--navy, #0A1628);
  margin: 0;
}
/* Variante compacte — fiche Check-up (« non lié ») : espace de carte réduit,
   pas besoin de l'emphase serif utilisée pour le grand panneau de page. */
.cu-tasks-empty--muted {
  font-family: inherit;
  font-weight: 400;
  font-size: 0.8125rem;
  color: var(--text-muted, #7A7570);
  text-align: left;
  padding: 0.5rem 0;
}

/* ── Journal d'activité quotidienne — même chrome de carte que .cu-tasks-panel ── */
.cu-journal-panel {
  background: var(--white, #fff);
  border: 1px solid var(--border-light, #E8E4DE);
  border-radius: 12px;
  box-shadow: var(--shadow-sm, 0 1px 3px rgba(10,22,40,0.08));
  padding: 1.25rem 1.5rem 1.5rem;
}
.cu-journal-counter { margin-bottom: 1.125rem; }
.cu-journal-counter-row {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
}
.cu-journal-counter-value {
  font-family: var(--font-serif, 'Playfair Display', Georgia, serif);
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--navy, #0A1628);
}
.cu-journal-counter-label {
  font-size: 0.8125rem;
  color: var(--text-muted, #7A7570);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-weight: 600;
}
.cu-journal-progress-bar {
  width: 100%;
  height: 8px;
  border-radius: 4px;
  background: var(--surface-alt, #F7F5F1);
  overflow: hidden;
}
.cu-journal-progress-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--gold, #C9A96E), var(--navy, #0A1628));
  border-radius: 4px;
  transition: width 0.3s ease;
}

.cu-journal-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 1rem;
}
.cu-journal-date-input { max-width: 170px; }

.cu-journal-list {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
  max-height: 480px;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.cu-journal-day-group { margin-bottom: 0.5rem; }
.cu-journal-day-title {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--navy, #0A1628);
  margin: 0 0 0.5rem;
}
.cu-journal-day-group .cu-journal-row { margin-bottom: 0.625rem; }

.cu-journal-row {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 0.625rem 0.75rem;
  border: 1px solid var(--border-light, #E8E4DE);
  border-radius: 8px;
}
.cu-journal-row-icon { flex-shrink: 0; font-size: 1.0625rem; line-height: 1.3; }
.cu-journal-row-body { flex: 1; min-width: 0; }
.cu-journal-row-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex-wrap: wrap;
  margin-bottom: 0.2rem;
}
.cu-journal-row-dossier { font-size: 0.8125rem; font-weight: 700; color: var(--navy, #0A1628); }
.cu-journal-row-time { font-size: 0.75rem; color: var(--text-muted, #7A7570); white-space: nowrap; }
.cu-journal-row-action { font-size: 0.8125rem; color: var(--text-secondary, #4A4540); line-height: 1.4; }

/* ── Pastille de compte sur l'onglet « Tâches » d'une fiche Check-up ───────── */
.cu-card-tasks-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  margin-left: 0.25rem;
  border-radius: 999px;
  background: var(--gold, #C9A96E);
  color: var(--white, #fff);
  font-size: 0.6875rem;
  font-weight: 700;
  line-height: 1;
  vertical-align: middle;
}

/* ── Résolveur client CRM (inline) ─────────────────────────────────────────
   Remplace l'ancien écran « Lier / Créer » à deux boutons + modales.
   Réutilise volontairement .cu-rapp-candidate/.cu-rapp-level/.cu-rapp-none
   (déjà existants), .cu-doc-dup-warning, .cu-qt-error, .cu-qt-link-btn,
   pr-form-group/pr-form-input, .cu-modal-footer — aucune règle dupliquée
   pour ce qui existe déjà. */
.cu-crm-resolver { padding: 0.25rem 0; }
.cu-crm-title {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--gold-muted, #8B7240);
  margin: 0 0 0.25rem;
}
.cu-crm-sub {
  font-size: 0.875rem;
  color: var(--text-secondary, #4A4540);
  margin: 0 0 1rem;
}
.cu-crm-label {
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--text-muted, #7A7570);
  margin: 0 0 0.5rem;
}
.cu-crm-search { margin: 0.75rem 0 1rem; }
.cu-crm-search [data-role="crm-search-results"] { margin-top: 0.5rem; display: flex; flex-direction: column; gap: 0.5rem; }

.cu-crm-create {
  margin-top: 0.75rem;
  border: 1px solid var(--gold, #C9A96E);
  border-radius: 10px;
  padding: 0.875rem 1rem;
  background: var(--off-white, #FAF8F5);
}
.cu-crm-create.cu-hidden { display: none; }

/* ── Ajouter une tâche (fiche Check-up) ──────────────────────────────────────
   Réutilise .cu-qt-choice-row/.cu-qt-choice-btn/.cu-qt-link-btn/.cu-qt-error
   (Tâche rapide) et .cu-modal-footer/pr-form-group existants — même chrome
   « boîte dorée » que .cu-crm-create/.cu-doc-quickadd (déclarations propres,
   composant distinct, cf. convention déjà suivie dans ce fichier). */
.cu-tqa-zone { margin: 0.75rem 0; }
.cu-tqa {
  margin-top: 0.5rem;
  border: 1px solid var(--gold, #C9A96E);
  border-radius: 10px;
  padding: 0.875rem 1rem;
  background: var(--off-white, #FAF8F5);
}
.cu-tqa.cu-hidden { display: none; }
/* Rangées de chips repliables (catégories/actions/échéances) — première
   utilisation d'un état masqué pour .cu-qt-choice-row (déjà existant,
   jamais caché avant ce composant). */
.cu-qt-choice-row.cu-hidden { display: none; }
.cu-tqa-date-custom.cu-hidden { display: none; }

/* ── Historique des tâches terminées (fiche Check-up) ────────────────────── */
.cu-tqa-history { margin-top: 1rem; }
.cu-tqa-history > summary {
  cursor: pointer;
  font-size: 0.8125rem;
  color: var(--text-muted, #7A7570);
  font-weight: 600;
}
.cu-tqa-history .cu-tasks-list { margin-top: 0.625rem; }

/* Historique des tâches automatiques (is_template) — même sobriété que
   .cu-tqa-history, teinte neutre (jamais confondu avec « en retard »). */
.cu-tasks-auto-history { margin-top: 1rem; }
.cu-tasks-auto-history > summary {
  cursor: pointer;
  font-size: 0.8125rem;
  color: var(--text-muted, #7A7570);
  font-weight: 600;
}
.cu-tasks-auto-hint {
  margin: 0.375rem 0 0.625rem;
  font-size: 0.75rem;
  font-style: italic;
  color: var(--text-light, #9C9589);
}
.cu-tasks-auto-history .cu-tasks-list { margin-top: 0.625rem; }
.cu-task-card--done {
  opacity: 0.75;
  border-left-color: var(--success, #2D6A4F);
}

/* ── Carte tâche ──────────────────────────────────────────────────────────── */
.cu-task-card {
  border: 1px solid var(--border, #D8D3CC);
  border-left: 3px solid var(--border, #D8D3CC);
  border-radius: 8px;
  padding: 0.75rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  background: var(--off-white, #FAF8F5);
}
.cu-task-card--retard     { border-left-color: var(--error, #8B2020); }
.cu-task-card--aujourdhui { border-left-color: var(--gold, #C9A96E); }
.cu-task-card--avenir     { border-left-color: var(--border, #D8D3CC); }

.cu-task-card-main { display: flex; flex-direction: column; gap: 0.125rem; min-width: 0; flex: 1 1 220px; }
.cu-task-card-client { font-size: 0.875rem; font-weight: 700; color: var(--navy, #0A1628); }
.cu-task-card-type { font-size: 0.75rem; font-weight: 600; color: var(--gold-muted, #8B7240); }
.cu-task-card-desc { font-size: 0.8125rem; color: var(--text-secondary, #4A4540); }
.cu-task-card-when {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--text-muted, #7A7570);
  margin-top: 0.125rem;
}
.cu-task-card-when--retard     { color: var(--error, #8B2020); }
.cu-task-card-when--aujourdhui { color: var(--gold-muted, #8B7240); }

/* ── Éléments liés (Task linked items) — compact, jamais une grosse carte ── */
.cu-task-linked {
  margin: 0.25rem 0 0.125rem;
  padding: 0.375rem 0.5rem;
  border-left: 2px solid var(--border, #D8D3CC);
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
}
.cu-task-linked-counter { font-size: 0.75rem; font-weight: 600; color: var(--gold-muted, #8B7240); }
.cu-task-linked-row { font-size: 0.8125rem; color: var(--text-secondary, #4A4540); }
.cu-task-linked-row--done { color: var(--success, #2D6A4F); }

/* ── Sélecteur d'éléments liés (formulaire d'ajout de tâche) ───────────────── */
.cu-tqa-linked-picker { margin: 0.5rem 0 0.75rem; }
.cu-tqa-linked-pick-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.375rem 0;
  font-size: 0.8125rem;
  color: var(--navy, #0A1628);
  min-height: 32px;
}

.cu-task-card-actions { display: flex; gap: 0.5rem; flex-shrink: 0; }
.cu-task-btn {
  background: var(--surface-alt, #F7F5F1);
  border: 1px solid var(--border, #D8D3CC);
  border-radius: 20px;
  padding: 0.5rem 0.875rem;
  min-height: 40px;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--navy, #0A1628);
  cursor: pointer;
  font-family: inherit;
}
.cu-task-btn:hover { background: var(--gold-pale, #F0E8D8); border-color: var(--gold, #C9A96E); }
.cu-task-btn--done:hover { background: var(--success-bg, #EAF4EE); border-color: var(--success, #2D6A4F); color: var(--success, #2D6A4F); }

/* ── Popover « Reporter » — même famille visuelle que .cu-contacter-popover
   (nouvelle classe dédiée : sémantique différente, déclarations analogues). */
.cu-task-report-wrap { position: relative; }
.cu-task-report-popover {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  z-index: 20;
  background: var(--white, #fff);
  border: 1px solid var(--border-light, #E8E4DE);
  border-radius: 10px;
  box-shadow: var(--shadow-lg, 0 12px 40px rgba(10,22,40,0.14));
  padding: 0.375rem;
  width: 190px;
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
  cursor: default;
}
.cu-task-report-popover.cu-hidden { display: none; }
.cu-task-report-row {
  background: none;
  border: none;
  text-align: left;
  padding: 0.5rem 0.5rem;
  border-radius: 6px;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--navy, #0A1628);
  cursor: pointer;
  font-family: inherit;
  min-height: 36px;
}
.cu-task-report-row:hover { background: var(--gold-pale, #F0E8D8); }
.cu-task-report-custom { display: flex; gap: 0.375rem; padding: 0.375rem 0.5rem 0.25rem; }
.cu-task-report-custom.cu-hidden { display: none; }
.cu-task-report-custom input { flex: 1 1 auto; min-width: 0; }
.cu-task-report-custom-confirm { padding: 0.4rem 0.75rem; font-size: 0.75rem; }

@media (max-width: 600px) {
  .cu-task-card { flex-direction: column; align-items: stretch; }
  .cu-task-card-actions { width: 100%; }
  .cu-task-btn { flex: 1 1 auto; }
  .cu-task-report-popover { right: 0; width: 100%; max-width: 240px; }
  .cu-tasks-panel { padding: 1rem; }
}

/* ═══ ONGLET DOCUMENTS — checklist documentaire manuelle ═════════════════════
   Poste de montage, pas un formulaire administratif : chips rapides, cases
   MANQUANT/REÇU discrètes, aucune grosse zone rouge. ═══════════════════════ */

.cu-doc-noclient {
  text-align: center;
  padding: 2rem 1rem;
  color: var(--text-secondary, #4A4540);
}
.cu-doc-noclient p { margin: 0 0 1rem; }
.cu-doc-noclient-title {
  font-family: var(--font-serif, 'Playfair Display', Georgia, serif);
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--navy, #0A1628);
}
.cu-doc-noclient-sub { color: var(--text-muted, #7A7570); font-size: 0.875rem; }
.cu-doc-noclient-actions {
  display: flex;
  justify-content: center;
  gap: 0.75rem;
  flex-wrap: wrap;
  margin-top: 0.5rem;
}

/* ── Avertissement de doublon (création client depuis Documents) ─────────── */
.cu-doc-dup-warning {
  background: var(--gold-pale, #F0E8D8);
  border: 1px solid var(--gold, #C9A96E);
  border-radius: 8px;
  padding: 0.75rem 1rem;
  margin-bottom: 1rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex-wrap: wrap;
}
.cu-doc-dup-warning p { margin: 0; font-size: 0.875rem; color: var(--navy, #0A1628); }
.cu-doc-dup-warning.cu-hidden { display: none; }
.cu-doc-required { color: var(--error, #8B2020); }

.cu-doc-loading, .cu-doc-empty {
  font-size: 0.875rem;
  color: var(--text-light, #9C9589);
  font-style: italic;
  margin: 0.5rem 0;
}

.cu-doc-counter-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-bottom: 1.25rem;
}
.cu-doc-counter-text {
  display: inline-block;
  font-family: var(--font-serif, 'Playfair Display', Georgia, serif);
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--navy, #0A1628);
}

/* Point d'entrée Phase 3 — volontairement distinct des chips (+Type) :
   contour plein, pas un simple lien texte, mais pas un gros CTA non plus. */
.cu-docimp-open-btn {
  background: var(--white, #fff);
  border: 1.5px solid var(--navy, #0A1628);
  border-radius: 20px;
  padding: 6px 14px;
  font-size: 0.8125rem;
  font-weight: 700;
  color: var(--navy, #0A1628);
  cursor: pointer;
  font-family: inherit;
  white-space: nowrap;
}
.cu-docimp-open-btn:hover { background: var(--navy, #0A1628); color: var(--white, #fff); }

.cu-doc-section-title {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--text-muted, #7A7570);
  margin: 0 0 0.625rem;
}
.cu-doc-catalog-wrap { margin-bottom: 1.5rem; }

/* ── Catalogue de chips (même esprit que les boutons +1j/+2j/+3j) ─────────── */
.cu-doc-catalog {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.cu-doc-chip {
  background: var(--surface-alt, #F7F5F1);
  border: 1px solid var(--border, #D8D3CC);
  border-radius: 20px;
  padding: 5px 12px;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--navy, #0A1628);
  cursor: pointer;
  font-family: inherit;
}
.cu-doc-chip:hover { background: var(--gold-pale, #F0E8D8); border-color: var(--gold, #C9A96E); }

/* ── Panneau de saisie rapide (compact, jamais un formulaire lourd) ───────── */
.cu-doc-quickadd {
  margin-top: 0.75rem;
  border: 1px solid var(--gold, #C9A96E);
  border-radius: 10px;
  padding: 0.875rem 1rem;
  background: var(--off-white, #FAF8F5);
}
.cu-doc-quickadd.cu-hidden { display: none; }
.cu-doc-qa-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.75rem;
  font-family: var(--font-serif, 'Playfair Display', Georgia, serif);
  color: var(--navy, #0A1628);
  font-size: 0.9375rem;
}
.cu-doc-qa-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 0.625rem;
}
.cu-doc-qa-row:last-child { margin-bottom: 0; justify-content: flex-end; }
.cu-doc-qa-fields select, .cu-doc-qa-fields input { max-width: 160px; }
.cu-doc-qa-choice {
  background: var(--white, #fff);
  border: 1px solid var(--border, #D8D3CC);
  border-radius: 20px;
  padding: 5px 12px;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--text-secondary, #4A4540);
  cursor: pointer;
  font-family: inherit;
}
.cu-doc-qa-choice:hover { border-color: var(--gold, #C9A96E); }
.cu-doc-qa-choice--active { background: var(--navy, #0A1628); border-color: var(--navy, #0A1628); color: var(--white, #fff); }

/* ── Pièces demandées, groupées par personne ──────────────────────────────── */
.cu-doc-requirements-wrap { margin-bottom: 1.25rem; }
.cu-doc-group { margin-bottom: 1rem; }
.cu-doc-group-title {
  font-family: var(--font-serif, 'Playfair Display', Georgia, serif);
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--navy, #0A1628);
  margin: 0 0 0.5rem;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}
.cu-doc-req {
  border: 1px solid var(--border-light, #E8E4DE);
  border-radius: 8px;
  padding: 0.625rem 0.875rem;
  margin-bottom: 0.5rem;
}
.cu-doc-req--recu { border-left: 3px solid var(--success, #2D6A4F); }
.cu-doc-req--manquant { border-left: 3px solid var(--border, #D8D3CC); }
/* Même teinte ambre que .cu-status--attente — « reste à obtenir », visible
   sans être agressif (ni vert terminé, ni neutre rien-reçu). */
.cu-doc-req--partiel { border-left: 3px solid #fb923c; }
.cu-doc-req-main {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex-wrap: wrap;
}
.cu-doc-req-label { font-size: 0.875rem; font-weight: 600; color: var(--navy, #0A1628); }
.cu-doc-req-status {
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  border-radius: 12px;
  padding: 2px 9px;
  white-space: nowrap;
}
.cu-doc-req-status--recu { background: var(--success-bg, #EAF4EE); color: var(--success, #2D6A4F); }
.cu-doc-req-status--manquant { background: var(--surface-alt, #F7F5F1); color: var(--text-muted, #7A7570); }
.cu-doc-req-status--partiel { background: rgba(251,146,60,0.14); color: #9a3412; }

/* ── Checklist de composants (Recto/Verso/Sefah...) — Phase 2 ────────────── */
.cu-doc-components {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
  margin-top: 0.5rem;
}
.cu-doc-components-list { display: flex; gap: 0.625rem; flex-wrap: wrap; }
.cu-doc-component-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--text-secondary, #4A4540);
  cursor: pointer;
  user-select: none;
}
.cu-doc-component-chip input { accent-color: var(--success, #2D6A4F); cursor: pointer; }
.cu-doc-component-chip--checked { color: var(--success, #2D6A4F); }

/* Compteur de fichiers archivés — purement informatif, toujours discret.
   --warning (REÇU + 0 fichier) reste un ton ambre doux, jamais rouge : la
   décision de l'utilisateur reste souveraine, ceci n'est qu'un signal. */
.cu-doc-filecount {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--text-muted, #7A7570);
  white-space: nowrap;
}
.cu-doc-filecount--warning { color: var(--gold-muted, #8B7240); }

.cu-doc-req-doc {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-top: 0.5rem;
  flex-wrap: wrap;
}
.cu-doc-req-filename {
  font-size: 0.8125rem;
  color: var(--text-secondary, #4A4540);
  max-width: 220px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.cu-doc-link-action {
  background: none;
  border: none;
  color: var(--gold-muted, #8B7240);
  font-size: 0.8125rem;
  font-weight: 600;
  cursor: pointer;
  padding: 0;
  font-family: inherit;
  text-decoration: underline;
}
.cu-doc-link-action--danger { color: var(--error, #8B2020); }

.cu-doc-req-dropzone {
  margin-top: 0.625rem;
  border: 1.5px dashed var(--border, #D8D3CC);
  border-radius: 8px;
  padding: 0.75rem;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
  transition: border-color 0.15s, background 0.15s;
}
.cu-doc-req-dropzone--over { border-color: var(--gold, #C9A96E); background: var(--gold-pale, #F0E8D8); }
.cu-doc-req-dropzone-text { font-size: 0.8125rem; color: var(--text-muted, #7A7570); }
.cu-doc-req-filebtn {
  background: var(--white, #fff);
  border: 1px solid var(--border, #D8D3CC);
  border-radius: 16px;
  padding: 4px 12px;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--navy, #0A1628);
  cursor: pointer;
}
.cu-doc-req-filebtn:hover { border-color: var(--gold, #C9A96E); }
.cu-doc-req-fileinput { display: none; }

.cu-doc-associate-list {
  margin-top: 0.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  padding: 0.5rem;
  background: var(--surface-alt, #F7F5F1);
  border-radius: 6px;
}
.cu-doc-associate-header {
  margin: 0 0 0.125rem;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--text-muted, #7A7570);
}

/* ── « Mettre à jour » — picker compact de période suivante ──────────────── */
.cu-doc-renew-panel {
  margin-top: 0.625rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  padding: 0.5rem;
  background: var(--gold-pale, #F0E8D8);
  border-radius: 6px;
}
.cu-doc-renew-panel .cu-doc-qa-choice { background: var(--white, #fff); }
.cu-doc-associate-pick {
  text-align: left;
  background: var(--white, #fff);
  border: 1px solid var(--border-light, #E8E4DE);
  border-radius: 6px;
  padding: 4px 8px;
  font-size: 0.8125rem;
  color: var(--navy, #0A1628);
  cursor: pointer;
  font-family: inherit;
}
.cu-doc-associate-pick:hover { border-color: var(--gold, #C9A96E); }

.cu-doc-req-remove {
  margin-top: 0.5rem;
  background: none;
  border: none;
  color: var(--text-light, #9C9589);
  font-size: 0.75rem;
  cursor: pointer;
  padding: 0;
  font-family: inherit;
}
.cu-doc-req-remove:hover { color: var(--error, #8B2020); }

/* ── Documents à classer ───────────────────────────────────────────────────── */
.cu-doc-aclasser { margin: 1rem 0; }
.cu-doc-aclasser > summary {
  cursor: pointer;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--text-muted, #7A7570);
}
.cu-doc-aclasser-list { margin-top: 0.625rem; display: flex; flex-direction: column; gap: 0.5rem; }
.cu-doc-aclasser-item {
  border: 1px solid var(--border-light, #E8E4DE);
  border-radius: 8px;
  padding: 0.5rem 0.75rem;
}
.cu-doc-aclasser-info { display: flex; flex-direction: column; gap: 0.125rem; margin-bottom: 0.375rem; }
.cu-doc-aclasser-name { font-size: 0.8125rem; font-weight: 600; color: var(--navy, #0A1628); }
.cu-doc-aclasser-type { font-size: 0.75rem; color: var(--text-muted, #7A7570); }
.cu-doc-aclasser-actions { display: flex; gap: 0.875rem; flex-wrap: wrap; }

.cu-doc-mail-btn { margin-top: 0.5rem; }

/* ── Modale mail ──────────────────────────────────────────────────────────── */
.cu-doc-mail-actions { display: flex; gap: 0.625rem; justify-content: flex-end; }

/* ── Tâche rapide ─────────────────────────────────────────────────────────── */

/* Boutons de choix (type de tâche + échéance) — même esprit visuel que
   .cu-doc-chip / .cu-quick-btn, avec un état --active dédié (sélection
   unique parmi le groupe). Taille pensée pour un usage au doigt (mobile). */
.cu-qt-choice-row { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.cu-qt-choice-btn {
  background: var(--surface-alt, #F7F5F1);
  border: 1px solid var(--border, #D8D3CC);
  border-radius: 20px;
  padding: 0.625rem 1rem;
  min-height: 44px;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--navy, #0A1628);
  cursor: pointer;
  font-family: inherit;
}
.cu-qt-choice-btn:hover { background: var(--gold-pale, #F0E8D8); border-color: var(--gold, #C9A96E); }
.cu-qt-choice-btn--active {
  background: var(--gold, #C9A96E);
  border-color: var(--gold, #C9A96E);
  color: var(--off-white, #FAF8F5);
}

.cu-qt-date-custom { margin-top: 0.5rem; }
.cu-qt-date-custom.cu-hidden { display: none; }

/* Client sélectionné — chip de confirmation, même famille visuelle que les
   badges succès déjà utilisés (migration, sync). */
.cu-qt-client-selected {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  background: var(--success-bg, #EAF4EE);
  border: 1px solid var(--success, #2D6A4F);
  border-radius: 8px;
  padding: 0.5rem 0.75rem;
  margin-top: 0.5rem;
  font-size: 0.875rem;
}
.cu-qt-client-selected.cu-hidden { display: none; }
.cu-qt-client-selected-name { font-weight: 600; color: var(--navy, #0A1628); }
.cu-qt-client-change {
  background: none;
  border: none;
  color: var(--gold-muted, #8B7240);
  font-size: 0.8125rem;
  font-weight: 600;
  cursor: pointer;
  text-decoration: underline;
  padding: 0;
  font-family: inherit;
}

.cu-qt-client-results { margin-top: 0.5rem; display: flex; flex-direction: column; gap: 0.5rem; }
.cu-qt-client-link-row { margin: 0.375rem 0 0; font-size: 0.8125rem; color: var(--text-muted, #7A7570); }
.cu-qt-link-btn {
  background: none;
  border: none;
  color: var(--gold-muted, #8B7240);
  font-size: 0.8125rem;
  font-weight: 600;
  cursor: pointer;
  text-decoration: underline;
  padding: 0;
  font-family: inherit;
}

/* Création client repliée — même traitement visuel que .cu-doc-quickadd
   (bordure or, fond crème) pour rester cohérent avec le reste du module. */
.cu-qt-client-create {
  margin-top: 0.75rem;
  border: 1px solid var(--gold, #C9A96E);
  border-radius: 10px;
  padding: 0.875rem 1rem;
  background: var(--off-white, #FAF8F5);
}
.cu-qt-client-create.cu-hidden { display: none; }
.cu-qt-client-create-title {
  font-family: var(--font-serif, 'Playfair Display', Georgia, serif);
  color: var(--navy, #0A1628);
  font-size: 0.9375rem;
  margin: 0 0 0.625rem;
}
.cu-qt-client-create-actions { display: flex; justify-content: flex-end; gap: 0.5rem; margin-top: 0.75rem; }

.cu-qt-error {
  color: var(--error, #8B2020);
  font-size: 0.875rem;
  margin-top: 0.5rem;
}
.cu-qt-error.cu-hidden { display: none; }

.cu-qt-success {
  background: var(--success-bg, #EAF4EE);
  color: var(--success, #2D6A4F);
  border: 1px solid var(--success, #2D6A4F);
  border-radius: 8px;
  padding: 0.5rem 0.75rem;
  font-size: 0.875rem;
  font-weight: 600;
  text-align: center;
  margin-top: 0.5rem;
}
.cu-qt-success.cu-hidden { display: none; }

/* ── Statuts conseiller (architecture documentaire v2) ────────────────────── */
.cu-doc-statut-badge {
  display: block;
  margin-top: 0.5rem;
  padding: 0.5rem 0.75rem;
  border-radius: 8px;
  font-size: 0.8125rem;
}
.cu-doc-statut-badge--valide { background: var(--success-bg, #EAF4EE); color: var(--success, #2D6A4F); }
.cu-doc-statut-badge--rejete { background: rgba(139,32,32,0.08); color: var(--error, #8B2020); }
.cu-doc-statut-msg { margin: 0.25rem 0 0; font-style: italic; font-size: 0.8125rem; }
.cu-doc-statut-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.625rem; }
.cu-doc-statut-btn {
  background: var(--white, #fff);
  border: 1px solid var(--border, #D8D3CC);
  border-radius: 20px;
  padding: 4px 12px;
  font-size: 0.75rem;
  font-weight: 700;
  cursor: pointer;
  font-family: inherit;
}
.cu-doc-statut-btn--valide { color: var(--success, #2D6A4F); }
.cu-doc-statut-btn--rejete { color: var(--error, #8B2020); }
.cu-doc-statut-btn--active.cu-doc-statut-btn--valide { background: var(--success, #2D6A4F); border-color: var(--success, #2D6A4F); color: var(--white, #fff); }
.cu-doc-statut-btn--active.cu-doc-statut-btn--rejete { background: var(--error, #8B2020); border-color: var(--error, #8B2020); color: var(--white, #fff); }
.cu-doc-statut-editor {
  margin-top: 0.625rem;
  border: 1px solid var(--border, #D8D3CC);
  border-radius: 8px;
  padding: 0.75rem;
  background: var(--off-white, #FAF8F5);
}
.cu-doc-statut-textarea { width: 100%; resize: vertical; font-family: inherit; }

/* ── Modèles documentaires (architecture documentaire v2) ─────────────────── */
.cu-tpl-help { font-size: 0.8125rem; color: var(--text-muted, #7A7570); margin: 0 0 0.75rem; }
.cu-tpl-list { display: flex; flex-direction: column; gap: 0.5rem; }
.cu-tpl-pick {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.2rem;
  text-align: left;
  background: var(--white, #fff);
  border: 1px solid var(--border, #D8D3CC);
  border-radius: 8px;
  padding: 0.75rem 1rem;
  cursor: pointer;
  font-family: inherit;
}
.cu-tpl-pick:hover { border-color: var(--gold, #C9A96E); background: var(--gold-pale, #F0E8D8); }
.cu-tpl-pick strong { color: var(--navy, #0A1628); font-size: 0.9375rem; }
.cu-tpl-pick span { color: var(--text-muted, #7A7570); font-size: 0.8125rem; }
.cu-tpl-items { display: flex; flex-direction: column; gap: 0.625rem; margin-bottom: 1rem; max-height: 50vh; overflow-y: auto; }
.cu-tpl-item { border: 1px solid var(--border-light, #E8E4DE); border-radius: 8px; padding: 0.625rem 0.875rem; }
.cu-tpl-item-main { display: flex; align-items: center; gap: 0.625rem; flex-wrap: wrap; margin-bottom: 0.5rem; }
.cu-tpl-item-type { font-size: 0.8125rem; font-weight: 700; color: var(--navy, #0A1628); white-space: nowrap; }
.cu-tpl-item-libelle { flex: 1; min-width: 160px; }
.cu-tpl-add-row { display: flex; gap: 0.5rem; align-items: center; margin-bottom: 1rem; flex-wrap: wrap; }

/* ── Responsive ───────────────────────────────────────────────────────────── */
@media (max-width: 600px) {
  .cu-doc-req-doc, .cu-doc-req-dropzone { flex-direction: column; align-items: stretch; }
  .cu-doc-aclasser-actions { justify-content: flex-start; }
  .cu-doc-qa-fields select, .cu-doc-qa-fields input { max-width: none; width: 100%; }
  .cu-doc-mail-actions { flex-direction: column; }
  .cu-doc-noclient-actions { flex-direction: column; }
  .cu-doc-noclient-actions button { width: 100%; }
  .cu-doc-dup-warning { flex-direction: column; align-items: stretch; text-align: center; }
  .cu-qt-client-selected { flex-direction: column; align-items: stretch; text-align: center; }
  .cu-qt-client-create-actions { flex-direction: column; }
  .cu-qt-client-create-actions button { width: 100%; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   FICHE CLIENT V2 (Phase G2/G3) — conforme à la maquette validée
   (Artefact 1 « ALISRAEL CRM — Maquette interactive », bleu #2563EB).
   Tokens scopés à .cu-card-body UNIQUEMENT (--fc-*, préfixe dédié) : aucune
   collision avec --navy/--gold (identité déjà validée du résumé de carte,
   volontairement conservée telle quelle) ni avec --crm-* (coquille sidebar,
   assets/css/crm-shell.css). Rien ici n'affecte une autre page du projet.
   ═══════════════════════════════════════════════════════════════════════ */
.cu-card-body {
  --fc-bg: #F8FAFC;
  --fc-card: #FFFFFF;
  --fc-border: #E4ECFC;
  --fc-muted: #F1F5FD;
  --fc-ink: #0F172A;
  --fc-ink-soft: #475569;
  --fc-ink-faint: #94A3B8;
  --fc-primary: #2563EB;
  --fc-primary-deep: #1D4ED8;
  --fc-primary-tint: #EFF4FE;
  --fc-mint: #0F9D77; --fc-mint-tint: #E6F7F1;
  --fc-amber: #B45309; --fc-amber-tint: #FEF3E2;
  --fc-rose: #BE123C; --fc-rose-tint: #FDEAF0;
  --fc-radius: 16px; --fc-radius-sm: 10px;
}

/* ── En-tête de synthèse ──────────────────────────────────────────────── */
.cu-fiche-header {
  background: var(--fc-card);
  border: 1px solid var(--fc-border);
  border-radius: var(--fc-radius);
  padding: 1.1rem 1.3rem;
  margin-bottom: 1rem;
}
.cu-fiche-header-top { display: flex; align-items: center; gap: 0.9rem; margin-bottom: 1rem; flex-wrap: wrap; }
.cu-fiche-avatar {
  width: 48px; height: 48px; border-radius: 50%; background: var(--fc-primary); color: #fff;
  display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 1rem; flex-shrink: 0;
}
.cu-fiche-id { flex: 1; min-width: 0; }
.cu-fiche-name { font-size: 1.05rem; font-weight: 800; color: var(--fc-ink); letter-spacing: -0.01em; }
.cu-fiche-contacts { display: flex; gap: 0.9rem; flex-wrap: wrap; margin-top: 0.25rem; }
.cu-fiche-contact-link { font-size: 0.78rem; color: var(--fc-ink-soft); font-weight: 600; text-decoration: none; }
.cu-fiche-contact-link:hover { color: var(--fc-primary-deep); }
.cu-fiche-contact-link--muted { color: var(--fc-ink-faint); font-weight: 500; }
.cu-fiche-pill {
  flex-shrink: 0; display: inline-flex; align-items: center; font-size: 0.72rem; font-weight: 700;
  padding: 0.3rem 0.7rem; border-radius: 999px; white-space: nowrap;
}
.cu-fiche-pill--encours { background: var(--fc-primary-tint); color: var(--fc-primary-deep); }
.cu-fiche-pill--deblocage { background: var(--fc-mint-tint); color: var(--fc-mint); }
.cu-fiche-pill--attente { background: var(--fc-amber-tint); color: var(--fc-amber); }
.cu-fiche-pill--retard { background: var(--fc-rose-tint); color: var(--fc-rose); }
.cu-fiche-pill--termine { background: var(--fc-muted); color: var(--fc-ink-faint); }

.cu-fiche-metrics {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem;
  padding: 0.9rem 0; border-top: 1px solid var(--fc-border); border-bottom: 1px solid var(--fc-border);
  margin-bottom: 0.9rem;
}
.cu-fiche-metric .l { display: block; font-size: 0.66rem; color: var(--fc-ink-faint); font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; margin-bottom: 0.3rem; }
.cu-fiche-metric .r { font-size: 1rem; font-weight: 800; color: var(--fc-ink); }

.cu-fiche-progress-wrap { height: 8px; background: var(--fc-muted); border-radius: 5px; overflow: hidden; margin-bottom: 0.9rem; }
.cu-fiche-progress-fill { height: 100%; background: var(--fc-primary); border-radius: 5px; transition: width 0.2s; }

.cu-fiche-nextaction {
  display: flex; align-items: center; gap: 0.6rem; background: var(--fc-primary-tint);
  border-radius: var(--fc-radius-sm); padding: 0.7rem 0.9rem; font-size: 0.82rem; color: var(--fc-primary-deep); font-weight: 700;
}
.cu-fiche-nextaction .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--fc-primary-deep); flex-shrink: 0; }

/* ── Bandeau d'alertes — toujours visible, jamais dans un onglet ─────────── */
.cu-fiche-alerts { display: flex; gap: 0.8rem; flex-wrap: wrap; margin-bottom: 1.1rem; }
.cu-fiche-alert {
  flex: 1; min-width: 210px; display: flex; align-items: center; gap: 0.7rem; text-align: left;
  background: var(--fc-card); border: 1px solid var(--fc-border); border-radius: var(--fc-radius);
  padding: 0.8rem 0.95rem; font-family: inherit; cursor: pointer;
}
.cu-fiche-alert:hover { border-color: #CFE0FB; box-shadow: 0 1px 2px rgba(15,23,42,.04), 0 12px 28px -16px rgba(15,23,42,.14); }
.cu-fiche-alert-icon { width: 30px; height: 30px; border-radius: 9px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 0.9rem; }
.cu-fiche-alert-icon--rose { background: var(--fc-rose-tint); color: var(--fc-rose); }
.cu-fiche-alert-icon--amber { background: var(--fc-amber-tint); color: var(--fc-amber); }
.cu-fiche-alert-icon--blue { background: var(--fc-primary-tint); color: var(--fc-primary-deep); }
.cu-fiche-alert-value { display: block; font-size: 0.86rem; font-weight: 800; color: var(--fc-ink); }
.cu-fiche-alert-label { display: block; font-size: 0.68rem; color: var(--fc-ink-faint); margin-top: 1px; }

/* ── Cartes génériques de l'onglet Aperçu ────────────────────────────────── */
.cu-fiche-card {
  background: var(--fc-card); border: 1px solid var(--fc-border); border-radius: var(--fc-radius);
  padding: 1.1rem 1.2rem; margin-bottom: 1rem;
}
.cu-fiche-card-title { font-size: 0.9rem; font-weight: 700; color: var(--fc-ink); margin: 0 0 0.8rem; }

/* ── Traqueur des 7 phases ────────────────────────────────────────────── */
.cu-phase-tracker { display: flex; justify-content: space-between; padding: 0.2rem 0 0.4rem; }
.cu-pt-step { display: flex; flex-direction: column; align-items: center; gap: 0.3rem; flex: 1; position: relative; }
.cu-pt-line { position: absolute; top: 11px; left: calc(-50% + 11px); width: calc(100% - 22px); height: 2px; background: var(--fc-border); z-index: 0; }
.cu-pt-step:first-child .cu-pt-line { display: none; }
.cu-pt-step.done .cu-pt-line { background: var(--fc-primary); }
.cu-pt-circle {
  width: 22px; height: 22px; border-radius: 50%; background: var(--fc-muted); border: 2px solid var(--fc-muted);
  z-index: 1; display: flex; align-items: center; justify-content: center; font-size: 0.62rem; font-weight: 800; color: var(--fc-ink-faint);
}
.cu-pt-step.done .cu-pt-circle { background: var(--fc-primary); border-color: var(--fc-primary); color: #fff; }
.cu-pt-step.current .cu-pt-circle { background: #fff; border-color: var(--fc-primary); color: var(--fc-primary); }
.cu-pt-label { font-size: 0.62rem; color: var(--fc-ink-faint); text-align: center; max-width: 68px; font-weight: 600; line-height: 1.25; }
.cu-pt-step.done .cu-pt-label, .cu-pt-step.current .cu-pt-label { color: var(--fc-ink); }

/* ── Grille Contacts / Espace client (info-cards) ────────────────────────── */
.cu-fiche-infogrid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-bottom: 1rem; align-items: start; }
@media (max-width: 760px) { .cu-fiche-infogrid { grid-template-columns: 1fr; } }
/* Contacts (accordéon natif, ouvert par défaut) + Espace client (div simple)
   habillés IDENTIQUEMENT en carte d'info — sans toucher à leur contenu ni à
   leurs gestionnaires d'événement (voir cuRenderContactsSection/
   cuRenderPortalSection dans checkup.js, strictement inchangés). */
.cu-fiche-infogrid > .cu-section--infocard,
.cu-fiche-infogrid > .cu-portal-block {
  background: var(--fc-card); border: 1px solid var(--fc-border); border-radius: var(--fc-radius);
  overflow: hidden; margin: 0;
}
.cu-fiche-infogrid > .cu-section--infocard > .cu-section-summary,
.cu-fiche-infogrid > .cu-portal-block > .cu-portal-header {
  padding: 0.7rem 1rem; font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em;
  color: var(--fc-ink-faint); background: var(--fc-muted); border-bottom: 1px solid var(--fc-border);
  cursor: default; /* reste techniquement un <details> repliable, mais ne s'affiche jamais comme tel */
}
.cu-fiche-infogrid > .cu-section--infocard > .cu-section-summary .cu-card-arrow { display: none; }
.cu-fiche-infogrid > .cu-section--infocard > .cu-section-body { padding: 0; }
.cu-fiche-infogrid .cu-contact-block-row {
  display: flex; align-items: center; gap: 0.6rem; padding: 0.6rem 1rem; border-bottom: 1px solid var(--fc-border);
  font-size: 0.8rem; flex-wrap: wrap;
}
.cu-fiche-infogrid .cu-contact-block-row:last-child { border-bottom: none; }
.cu-fiche-infogrid .cu-contact-block-role { color: var(--fc-ink-faint); flex: 0 0 68px; }
.cu-fiche-infogrid .cu-contact-block-name { font-weight: 700; color: var(--fc-ink); flex: 1; min-width: 0; }

/* Financement — réutilise les classes existantes (.cu-financement-*), déjà
   structurées en "header + rows label/valeur" : seul l'habillage change. */
.cu-financement-block {
  background: var(--fc-card); border: 1px solid var(--fc-border); border-radius: var(--fc-radius);
  overflow: hidden; margin-bottom: 1rem;
}
.cu-financement-header {
  padding: 0.7rem 1rem; font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em;
  color: var(--fc-ink-faint); background: var(--fc-muted); border-bottom: 1px solid var(--fc-border);
  display: flex; align-items: center; justify-content: space-between; gap: 0.75rem;
}
.cu-financement-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.65rem 1rem; border-bottom: 1px solid var(--fc-border); font-size: 0.82rem; }
.cu-financement-row:last-child { border-bottom: none; }
.cu-financement-label { color: var(--fc-ink-faint); }
.cu-financement-value { font-weight: 700; color: var(--fc-ink); font-variant-numeric: tabular-nums; }
.cu-financement-noclient { padding: 0.9rem 1rem; margin: 0; font-size: 0.82rem; color: var(--fc-ink-faint); }

/* Bouton « ✎ Modifier » — discret, même logique visuelle que les autres
   actions d'en-tête de carte (edit-client, portal-resend...). */
.cu-financement-edit-btn {
  border: 1px solid var(--fc-border); background: var(--fc-card); color: var(--fc-ink-soft);
  font-size: 0.68rem; font-weight: 700; text-transform: none; letter-spacing: 0; cursor: pointer;
  padding: 0.25rem 0.6rem; border-radius: 6px; transition: background 0.15s, border-color 0.15s;
}
.cu-financement-edit-btn:hover { background: var(--fc-muted); border-color: var(--fc-ink-faint); }

/* Formulaire d'édition — 3 champs + actions, inséré à la place de
   .cu-financement-body (jamais affichés simultanément). */
.cu-financement-form { padding: 0.9rem 1rem; display: flex; flex-direction: column; gap: 0.7rem; }
.cu-financement-field { display: flex; flex-direction: column; gap: 0.3rem; }
.cu-financement-field label { font-size: 0.72rem; color: var(--fc-ink-faint); font-weight: 600; }
/* Aide à la saisie — montant avec séparateurs de milliers, affiché en
   temps réel pendant la frappe (retour utilisateur réel). Même principe
   déjà en place pour les montants de déblocage (.cu-deb-montant-preview,
   voir plus bas) : purement visuel, aucune valeur enregistrée ici. */
.cu-montant-preview {
  font-size: 0.78rem; font-weight: 600; color: var(--fc-primary-deep, #1D4ED8);
  font-variant-numeric: tabular-nums; margin-top: 0.1rem;
}
.cu-financement-form-actions { display: flex; gap: 0.5rem; margin-top: 0.1rem; }
.cu-financement-form-actions .pr-btn-primary,
.cu-financement-form-actions .pr-btn-secondary { padding: 0.4rem 0.9rem; font-size: 0.8rem; }
.cu-financement-feedback { margin: 0; font-size: 0.8rem; font-weight: 600; color: var(--success, #2D6A4F); }
.cu-financement-error { margin: 0; font-size: 0.8rem; font-weight: 600; color: var(--error, #8B2020); }
/* Bascule lecture ↔ formulaire — même convention que le reste du fichier :
   une règle composée par élément, jamais un `.cu-hidden` nu (qui n'a pas de
   règle propre dans ce fichier et ne masquerait donc rien). */
.cu-financement-body.cu-hidden,
.cu-financement-form.cu-hidden,
.cu-financement-feedback.cu-hidden,
.cu-financement-error.cu-hidden { display: none; }

/* ── Modifier le dossier — champs d'édition réels, repliés par défaut ────── */
.cu-fiche-edit { background: var(--fc-card); border: 1px solid var(--fc-border); border-radius: var(--fc-radius); padding: 0; margin-top: 0.5rem; }
.cu-fiche-edit-summary { padding: 0.75rem 1rem; font-size: 0.82rem; font-weight: 700; color: var(--fc-ink-soft); cursor: pointer; list-style: none; }
.cu-fiche-edit-summary::-webkit-details-marker { display: none; }
.cu-fiche-edit[open] .cu-fiche-edit-summary { border-bottom: 1px solid var(--fc-border); }
.cu-fiche-edit .cu-top-fields { padding: 1rem; }

@media (max-width: 600px) {
  .cu-fiche-metrics { grid-template-columns: 1fr 1fr; }
  .cu-fiche-alerts { flex-direction: column; }
  .cu-pt-label { max-width: 44px; font-size: 0.56rem; }
}

/* ── Onglet Étapes bancaires (Phase G4) — même structure réelle (accordéons
   .cu-section + .cu-deb-entry, AUCUN élément JS changé), seule la palette
   est ramenée sur --fc-* pour une présentation homogène avec l'en-tête de
   la fiche (ci-dessus). Avant cette règle, les accordéons utilisaient déjà
   un bleu identique par héritage accidentel de --crm-primary (voir rapport
   de diagnostic) : ceci le rend intentionnel et cohérent, et corrige les
   éléments qui, eux, étaient restés sur l'ancienne palette crème/brun
   (déblocages, cases cochées, montant). ────────────────────────────────── */
.cu-tab-panel[data-tab-panel="etapes-bancaires"] .cu-section {
  border-color: var(--fc-border);
  border-radius: var(--fc-radius-sm);
  margin-bottom: 0.6rem;
}
.cu-tab-panel[data-tab-panel="etapes-bancaires"] .cu-section-summary {
  background: var(--fc-muted);
  color: var(--fc-ink);
}
.cu-tab-panel[data-tab-panel="etapes-bancaires"] .cu-section-summary .cu-card-arrow { color: var(--fc-primary); }
.cu-tab-panel[data-tab-panel="etapes-bancaires"] .cu-section-count { color: var(--fc-primary-deep); }
.cu-tab-panel[data-tab-panel="etapes-bancaires"] .cu-check-row { min-height: 32px; color: var(--fc-ink); }
.cu-tab-panel[data-tab-panel="etapes-bancaires"] .cu-check-row input[type="checkbox"] { accent-color: var(--fc-primary); }
.cu-tab-panel[data-tab-panel="etapes-bancaires"] .cu-check-row:has(input:checked) span { color: var(--fc-ink-faint); }

.cu-tab-panel[data-tab-panel="etapes-bancaires"] .cu-deb-status-actions,
.cu-tab-panel[data-tab-panel="etapes-bancaires"] .cu-deb-all-done {
  background: var(--fc-primary-tint); border-color: var(--fc-border); border-radius: var(--fc-radius-sm);
}
.cu-tab-panel[data-tab-panel="etapes-bancaires"] .cu-deb-status-actions p,
.cu-tab-panel[data-tab-panel="etapes-bancaires"] .cu-deb-all-done p { color: var(--fc-ink); }
.cu-tab-panel[data-tab-panel="etapes-bancaires"] .cu-deb-status-icon,
.cu-tab-panel[data-tab-panel="etapes-bancaires"] .cu-deb-all-done-icon { background: var(--fc-primary-deep); }
.cu-tab-panel[data-tab-panel="etapes-bancaires"] .cu-deb-status-actions--premier { background: var(--fc-primary-tint); border-color: var(--fc-border); }
.cu-tab-panel[data-tab-panel="etapes-bancaires"] .cu-deb-status-actions--premier .cu-deb-status-icon { background: var(--fc-primary-deep); }

.cu-tab-panel[data-tab-panel="etapes-bancaires"] .cu-deb-entry {
  border-color: var(--fc-border); border-radius: var(--fc-radius-sm); background: var(--fc-card);
}
.cu-tab-panel[data-tab-panel="etapes-bancaires"] .cu-deb-entry--done { background: var(--fc-muted); }
.cu-tab-panel[data-tab-panel="etapes-bancaires"] .cu-deb-montant-preview { color: var(--fc-primary-deep); font-variant-numeric: tabular-nums; }

/* ═══════════════════════════════════════════════════════════════════════════
   Onglets Documents / Documents internes / Tâches / Notes & historique
   (Phase G5) — même principe que G4 : AUCUN élément JS changé (mêmes
   data-role, mêmes gestionnaires), seule la présentation (bordures pleines
   + pastilles de statut au lieu de liserés de couleur, cartes au lieu de
   lignes denses) est ramenée sur la palette --fc-* pour rejoindre la
   maquette validée. ═══════════════════════════════════════════════════════ */

/* ── Documents / Documents internes — fiche-exigence ─────────────────────── */
.cu-tab-panel[data-tab-panel="documents"] .cu-doc-req,
.cu-tab-panel[data-tab-panel="interne"] .cu-doc-req {
  border: 1px solid var(--fc-border, #E4ECFC);
  border-left-width: 1px; /* annule le liseré de couleur hérité */
  border-radius: var(--fc-radius-sm, 10px);
  background: var(--fc-card, #fff);
}
.cu-tab-panel[data-tab-panel="documents"] .cu-doc-req-label,
.cu-tab-panel[data-tab-panel="interne"] .cu-doc-req-label { color: var(--fc-ink, #0F172A); }
.cu-tab-panel[data-tab-panel="documents"] .cu-doc-req-status,
.cu-tab-panel[data-tab-panel="interne"] .cu-doc-req-status {
  border-radius: 999px; font-weight: 700; letter-spacing: 0.02em;
}
.cu-tab-panel[data-tab-panel="documents"] .cu-doc-req-status--recu,
.cu-tab-panel[data-tab-panel="interne"] .cu-doc-req-status--recu { background: var(--fc-mint-tint, #E6F7F1); color: var(--fc-mint, #0F9D77); }
.cu-tab-panel[data-tab-panel="documents"] .cu-doc-req-status--manquant,
.cu-tab-panel[data-tab-panel="interne"] .cu-doc-req-status--manquant { background: var(--fc-rose-tint, #FDEAF0); color: var(--fc-rose, #BE123C); }
.cu-tab-panel[data-tab-panel="documents"] .cu-doc-req-status--partiel,
.cu-tab-panel[data-tab-panel="interne"] .cu-doc-req-status--partiel { background: var(--fc-amber-tint, #FEF3E2); color: var(--fc-amber, #B45309); }
.cu-tab-panel[data-tab-panel="documents"] .cu-doc-req-dropzone,
.cu-tab-panel[data-tab-panel="interne"] .cu-doc-req-dropzone { border-color: var(--fc-border, #E4ECFC); }
.cu-tab-panel[data-tab-panel="documents"] .cu-doc-req-dropzone--over,
.cu-tab-panel[data-tab-panel="interne"] .cu-doc-req-dropzone--over { border-color: var(--fc-primary, #2563EB); background: var(--fc-primary-tint, #EFF4FE); }
.cu-tab-panel[data-tab-panel="documents"] .cu-doc-req-filebtn:hover,
.cu-tab-panel[data-tab-panel="interne"] .cu-doc-req-filebtn:hover { border-color: var(--fc-primary, #2563EB); }
.cu-tab-panel[data-tab-panel="documents"] .cu-doc-link-action,
.cu-tab-panel[data-tab-panel="interne"] .cu-doc-link-action { color: var(--fc-primary-deep, #1D4ED8); }
.cu-tab-panel[data-tab-panel="documents"] .cu-doc-aclasser-item,
.cu-tab-panel[data-tab-panel="interne"] .cu-doc-aclasser-item { border-color: var(--fc-border, #E4ECFC); border-radius: var(--fc-radius-sm, 10px); }
.cu-tab-panel[data-tab-panel="documents"] .cu-doc-counter-text,
.cu-tab-panel[data-tab-panel="interne"] .cu-doc-counter-text { color: var(--fc-ink-soft, #475569); }

/* ── Tâches — cartes avec pastille de couleur (jamais un simple liseré),
   même principe que .task-dot de la maquette. ───────────────────────────── */
.cu-tab-panel[data-tab-panel="taches"] .cu-task-card {
  border: 1px solid var(--fc-border, #E4ECFC);
  border-left: 1px solid var(--fc-border, #E4ECFC);
  border-radius: var(--fc-radius-sm, 10px);
  background: var(--fc-card, #fff);
  position: relative;
  padding-left: 1.6rem;
}
.cu-tab-panel[data-tab-panel="taches"] .cu-task-card::before {
  content: ''; position: absolute; left: 0.7rem; top: 1rem;
  width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0;
}
.cu-tab-panel[data-tab-panel="taches"] .cu-task-card--retard::before { background: var(--fc-rose, #BE123C); }
.cu-tab-panel[data-tab-panel="taches"] .cu-task-card--aujourdhui::before { background: var(--fc-amber, #B45309); }
.cu-tab-panel[data-tab-panel="taches"] .cu-task-card--avenir::before { background: var(--fc-primary, #2563EB); }
.cu-tab-panel[data-tab-panel="taches"] .cu-task-card--done::before { background: var(--fc-ink-faint, #94A3B8); }
.cu-tab-panel[data-tab-panel="taches"] .cu-task-card-client { color: var(--fc-ink, #0F172A); }
.cu-tab-panel[data-tab-panel="taches"] .cu-task-card-type { color: var(--fc-primary-deep, #1D4ED8); }
.cu-tab-panel[data-tab-panel="taches"] .cu-task-card-desc { color: var(--fc-ink-soft, #475569); }
.cu-tab-panel[data-tab-panel="taches"] .cu-task-card-when--retard { color: var(--fc-rose, #BE123C); }
.cu-tab-panel[data-tab-panel="taches"] .cu-task-card-when--aujourdhui { color: var(--fc-amber, #B45309); }
.cu-tab-panel[data-tab-panel="taches"] .cu-task-btn:hover { background: var(--fc-primary-tint, #EFF4FE); border-color: var(--fc-primary, #2563EB); }
.cu-tab-panel[data-tab-panel="taches"] .cu-task-btn--done:hover { background: var(--fc-mint-tint, #E6F7F1); border-color: var(--fc-mint, #0F9D77); color: var(--fc-mint, #0F9D77); }

/* ── Notes & historique — cartes conformes à .note2 de la maquette ───────── */
.cu-tab-panel[data-tab-panel="notes"] .cu-notes-entry {
  border: 1px solid var(--fc-border, #E4ECFC);
  border-radius: var(--fc-radius-sm, 10px);
  background: var(--fc-muted, #F1F5FD);
}
.cu-tab-panel[data-tab-panel="notes"] .cu-notes-entry-meta { color: var(--fc-ink-faint, #94A3B8); font-weight: 700; }
.cu-tab-panel[data-tab-panel="notes"] .cu-notes-entry-text { color: var(--fc-ink, #0F172A); }
.cu-tab-panel[data-tab-panel="notes"] .cu-notes-new-input { border-color: var(--fc-border, #E4ECFC); border-radius: var(--fc-radius-sm, 10px); color: var(--fc-ink, #0F172A); }
.cu-tab-panel[data-tab-panel="notes"] .cu-notes-empty { color: var(--fc-ink-faint, #94A3B8); }

/* Entrée automatique (fin de tâche / report — Centre de tâches « Mes
   tâches ») — même carte que ci-dessus, fond neutre légèrement différent
   pour une distinction discrète avec une note manuelle, jamais une couleur
   vive ni un badge voyant. Jamais éditable/supprimable (pas de bouton). */
.cu-tab-panel[data-tab-panel="notes"] .cu-notes-entry--journal {
  background: var(--fc-card, #FFFFFF);
  border-style: dashed;
}
.cu-tab-panel[data-tab-panel="notes"] .cu-notes-entry--journal .cu-notes-entry-meta { color: var(--fc-primary-deep, #1D4ED8); }
