/* ==========================================================================
   Interface v2 — écran Pipeline en kanban (refonte UX, 25/08/2026)
   ==========================================================================
   Tout est scopé sous html.ui-v2 (drapeau localStorage "sobria-ui-v2") :
   sans le drapeau, ce fichier ne change RIEN à l'interface actuelle.
   Chargé APRÈS ui-v2.css (index.html) — il consomme ses variables
   (--v2-bordure-douce) et les jetons de design-tokens.css.

   Règles du cahier : cartes blanches radius 12, bordure douce, ombre légère ;
   radius 8 boutons/champs, 4 badges ; grille de 8 points ; cibles 44 px sur
   mobile ; un seul bouton primaire cuivre par écran.

   Le liseré de colonne vit dans la variable --v2p-col, posée par ui-v2-pipeline.js
   sur chaque colonne (couleur par étape STOCKÉE). Le kanban défile
   horizontalement DANS son conteneur (.v2p-kanban, overflow-x:auto) — jamais
   la page.
   ========================================================================== */

/* ------------------------------------------------------------------ entête */
html.ui-v2 .v2p-entete {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}
html.ui-v2 .v2p-entete h1 {
  font-family: var(--font-head, "PT Serif", Georgia, serif);
  font-size: 26px;
  color: var(--sobria-nuit);
  margin: 0;
}
html.ui-v2 .v2p-outils {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

/* Selects blancs bordés + boutons de la barre d'outils. Le select reçoit
   width:auto pour neutraliser la règle globale « select { width:100% } »
   de style.css (le piège mesuré au navigateur le 20/08). */
html.ui-v2 .v2p-select {
  width: auto;
  min-height: 40px;
  border: 1px solid var(--v2-bordure-douce);
  border-radius: 8px;
  background: var(--fond-surface);
  color: var(--texte);
  padding: 0 10px;
  font-size: 13.5px;
}
html.ui-v2 .v2p-btn {
  min-height: 40px;
  padding: 0 14px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1px solid var(--v2-bordure-douce);
  border-radius: 8px;
  background: var(--fond-surface);
  color: var(--texte);
  font-size: 14px;
  cursor: pointer;
  text-decoration: none;
}
html.ui-v2 .v2p-btn svg { width: 18px; height: 18px; flex: none; }
html.ui-v2 .v2p-btn:hover { background: var(--fond-survol); }
/* LE bouton primaire de l'écran. */
html.ui-v2 .v2p-btn-primaire {
  background: var(--sobria-cuivre);
  border-color: var(--sobria-cuivre);
  color: #fff;
  font-weight: 600;
}
html.ui-v2 .v2p-btn-primaire:hover { background: #b06c33; border-color: #b06c33; }

/* Onglets « Mes affaires | Toutes les affaires » — une paire soudée, l'actif
   sur fond nuit. Ce sont des filtres d'écran, pas une navigation : ils vivent
   dans la barre d'outils, à côté des selects. */
html.ui-v2 .v2p-onglets {
  display: inline-flex;
  border: 1px solid var(--v2-bordure-douce);
  border-radius: 8px;
  overflow: hidden;
  background: var(--fond-surface);
}
html.ui-v2 .v2p-onglet {
  min-height: 38px;
  padding: 0 14px;
  border: 0;
  background: transparent;
  color: var(--texte-attenue);
  font-size: 13.5px;
  cursor: pointer;
}
html.ui-v2 .v2p-onglet + .v2p-onglet { border-left: 1px solid var(--v2-bordure-douce); }
html.ui-v2 .v2p-onglet:hover { background: var(--fond-survol); color: var(--texte); }
html.ui-v2 .v2p-onglet-actif,
html.ui-v2 .v2p-onglet-actif:hover {
  background: var(--sobria-nuit);
  color: #fff;
  font-weight: 600;
}
html.ui-v2 .v2p-onglet:focus-visible {
  outline: 2px solid var(--sobria-cuivre);
  outline-offset: -2px;
}

/* ---------------------------------------------------- bandeau de synthèse */
html.ui-v2 .v2p-synthese {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 320px));
  gap: 16px;
  margin-bottom: 16px;
}
html.ui-v2 .v2p-stat {
  background: var(--fond-surface);
  border: 1px solid var(--v2-bordure-douce);
  border-radius: 12px;
  padding: 14px 16px;
  box-shadow: 0 1px 3px rgba(20, 33, 59, .06);
}
html.ui-v2 .v2p-stat-accent { border-left: 3px solid var(--sobria-cuivre); }
html.ui-v2 .v2p-stat-num {
  font-size: 22px;
  font-weight: 700;
  color: var(--sobria-nuit);
  line-height: 1.2;
}
html.ui-v2 .v2p-stat-lbl { font-size: 12.5px; color: var(--texte-attenue); margin-top: 4px; }
html.ui-v2 .v2p-stat-sous { font-size: 11.5px; color: var(--texte-attenue); opacity: .8; margin-top: 2px; }

/* ------------------------------------------------------ statuts à vérifier */
html.ui-v2 .v2p-averifier {
  background: var(--fond-surface);
  border: 1px solid var(--sobria-cuivre);
  border-radius: 12px;
  padding: 16px;
  margin-bottom: 16px;
}
html.ui-v2 .v2p-averifier h2 { margin: 0 0 6px; font-size: 15px; color: var(--sobria-nuit); }
html.ui-v2 .v2p-averifier > .v2p-meta { margin: 0 0 8px; }
html.ui-v2 .v2p-averifier-ligne {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  padding: 8px 0;
  border-top: 1px solid var(--v2-bordure-douce);
}

/* ----------------------------------------------------------------- kanban */
html.ui-v2 .v2p-kanban {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  overflow-x: auto;                 /* le kanban défile, jamais la page */
  padding-bottom: 8px;
}
html.ui-v2 .v2p-col {
  flex: 0 0 272px;
  width: 272px;
  background: var(--fond-surface-2);
  border: 1px solid var(--v2-bordure-douce);
  border-top: 3px solid var(--v2p-col, #8a8f98);   /* le liseré de la maquette */
  border-radius: 12px;
  padding: 10px;
}
html.ui-v2 .v2p-col.v2p-survol {
  background: #ece6d6;
  border-color: var(--sobria-cuivre);
  border-top-color: var(--v2p-col, #8a8f98);
}
html.ui-v2 .v2p-col-tete {
  display: flex;
  align-items: baseline;
  gap: 8px;
  font-size: 13px;
  padding: 2px 4px 2px;
}
html.ui-v2 .v2p-col-point { display: none; }       /* visible en mobile seulement */
html.ui-v2 .v2p-col-titre { font-weight: 600; color: var(--sobria-nuit); }
html.ui-v2 .v2p-col-compte {
  font-size: 11.5px;
  font-weight: 600;
  color: var(--texte-attenue);
  background: rgba(20, 33, 59, .08);
  border-radius: 4px;
  padding: 1px 6px;
}
html.ui-v2 .v2p-col-montant {
  margin-left: auto;
  font-weight: 600;
  color: var(--texte-attenue);
  white-space: nowrap;
}
html.ui-v2 .v2p-col-hono {
  font-size: 11.5px;
  color: var(--texte-attenue);
  padding: 0 4px 8px;
}
html.ui-v2 .v2p-col-bascule {
  width: 100%;
  min-height: 32px;
  margin-bottom: 8px;
  border: 1px dashed var(--v2-bordure-douce);
  border-radius: 8px;
  background: transparent;
  color: var(--texte-attenue);
  font-size: 12px;
  cursor: pointer;
}
html.ui-v2 .v2p-col-bascule:hover { background: var(--fond-survol); color: var(--texte); }
html.ui-v2 .v2p-col-cartes {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: 44px;
}

/* État vide d'une colonne — zone pointillée discrète, cible du dépôt. */
html.ui-v2 .v2p-col-vide {
  border: 1.5px dashed var(--v2-bordure-douce);
  border-radius: 12px;
  padding: 22px 12px;
  text-align: center;
  font-size: 12.5px;
  color: var(--texte-attenue);
}
html.ui-v2 .v2p-col.v2p-survol .v2p-col-vide {
  border-color: var(--sobria-cuivre);
  color: var(--texte);
}

/* Bas de colonne : la création d'affaire, étape préremplie. */
html.ui-v2 .v2p-ajouter {
  width: 100%;
  min-height: 36px;
  margin-top: 8px;
  padding: 8px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--cuivre-clair, #a05f27);
  font-size: 13px;
  text-align: left;
  cursor: pointer;
}
html.ui-v2 .v2p-ajouter:hover { background: var(--fond-survol); }

/* ---------------------------------------------------------------- cartes */
html.ui-v2 .v2p-carte {
  background: var(--fond-surface);
  border: 1px solid var(--v2-bordure-douce);
  border-radius: 12px;
  padding: 12px;
  box-shadow: 0 1px 3px rgba(20, 33, 59, .06);
  cursor: grab;
}
html.ui-v2 .v2p-carte:hover {
  border-color: #d6cdb8;
  box-shadow: 0 4px 12px rgba(20, 33, 59, .10);
}
html.ui-v2 .v2p-carte.v2p-en-vol { opacity: .5; cursor: grabbing; }

html.ui-v2 .v2p-carte-tete {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
}
html.ui-v2 .v2p-societe {
  font-size: 14.5px;
  font-weight: 600;
  color: var(--sobria-nuit);
  line-height: 1.3;
}
html.ui-v2 .v2p-titre {
  font-size: 13px;
  color: var(--sobria-ardoise);
  margin-top: 2px;
  line-height: 1.35;
}
html.ui-v2 .v2p-carte-ligne {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 8px;
}
html.ui-v2 .v2p-montant { font-size: 14px; font-weight: 600; color: var(--texte); }
html.ui-v2 .v2p-meta { font-size: 11.5px; color: var(--texte-attenue); }
html.ui-v2 .v2p-hono { margin-top: 4px; }

/* Pastille avatar du responsable (initiales, nom complet au survol). */
html.ui-v2 .v2p-avatar {
  width: 24px;
  height: 24px;
  margin-left: auto;
  border-radius: 50%;
  background: var(--sobria-nuit);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  letter-spacing: .02em;
}

/* Sans responsable : la pastille retombe sur le CRÉATEUR, en retrait visuel
   (ardoise, pas nuit) — le title de la pastille explicite la nuance. */
html.ui-v2 .v2p-avatar-createur {
  background: var(--sobria-ardoise, #5a6472);
  opacity: .75;
}

/* Modale « Attribuer à… » — une liste de choix pleine largeur, cible 44 px,
   le choix courant marqué d'un liseré cuivre. */
html.ui-v2 .v2p-attribuer {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 12px 0 4px;
}
html.ui-v2 .v2p-attribuer-choix {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  min-height: 44px;
  padding: 6px 10px;
  border: 1px solid var(--v2-bordure-douce);
  border-radius: 8px;
  background: var(--fond-surface);
  color: var(--texte);
  font-size: 14px;
  text-align: left;
  cursor: pointer;
}
html.ui-v2 .v2p-attribuer-choix:hover { background: var(--fond-survol); }
html.ui-v2 .v2p-attribuer-choix .v2p-avatar { margin-left: 0; }
html.ui-v2 .v2p-attribuer-choix .v2p-meta { margin-left: auto; }
html.ui-v2 .v2p-attribuer-actuel { border-color: var(--sobria-cuivre); }
html.ui-v2 .v2p-attribuer-choix:focus-visible {
  outline: 2px solid var(--sobria-cuivre);
  outline-offset: 2px;
}

/* Badges d'urgence (bloquée / échéance proche) — radius 4, pas d'emoji. */
html.ui-v2 .v2p-pastille {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  font-weight: 600;
  padding: 2px 6px;
  border-radius: 4px;
}
html.ui-v2 .v2p-pastille svg { width: 13px; height: 13px; }
html.ui-v2 .v2p-pastille-retard { background: #f6e2df; color: #b3352b; }
html.ui-v2 .v2p-pastille-echeance { background: #f7ecd8; color: #8a6116; }

/* Prochaine action — l'état vient du serveur ; le retard est rouge #b3352b. */
html.ui-v2 .v2p-action {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px dashed var(--v2-bordure-douce);
  font-size: 12px;
  line-height: 1.4;
  color: var(--texte);
}
html.ui-v2 .v2p-action svg { width: 14px; height: 14px; flex: none; margin-top: 1px; }
html.ui-v2 .v2p-action-quand {
  font-weight: 600;
  color: var(--texte-attenue);
  margin-right: 4px;
}
html.ui-v2 .v2p-action-absente { color: var(--texte-attenue); }
html.ui-v2 .v2p-action-retard { color: #b3352b; }
html.ui-v2 .v2p-action-retard .v2p-action-quand { color: #b3352b; }

/* Bouton « Actions » (⋮) de la carte — cible confortable, menu v2 accroché
   à son conteneur (position:relative, exigé par uiV2OuvrirMenu). */
html.ui-v2 .v2p-carte-menu { position: relative; flex: none; }
html.ui-v2 .v2p-menu-btn {
  width: 32px;
  height: 32px;
  margin: -6px -6px 0 0;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--texte-attenue);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
html.ui-v2 .v2p-menu-btn:hover { background: var(--fond-survol); color: var(--texte); }
html.ui-v2 .v2p-menu-btn svg { width: 18px; height: 18px; }
html.ui-v2 .v2p-menu-titre {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--texte-attenue);
  padding: 8px 12px 4px;
}
html.ui-v2 .v2p-menu-point {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  display: inline-block;
  flex: none;
}

/* ------------------------------------------------------------------ divers */
html.ui-v2 .v2p-aide { color: var(--texte-attenue); font-size: 12.5px; margin-top: 12px; }
html.ui-v2 .v2p-visuallyhidden {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}
/* La carte est focalisable (tabindex 0) : anneau visible au clavier. */
html.ui-v2 .v2p-carte:focus-visible,
html.ui-v2 .v2p-select:focus-visible {
  outline: 2px solid var(--sobria-cuivre);
  outline-offset: 2px;
}

/* --------------------------------------------------------------- mobile */
/* < 768 px : PAS de kanban horizontal — liste verticale groupée par étape :
   bandeau d'étape (point de couleur + libellé + compte + montant) puis
   cartes compactes (société, montant, prochaine action, échéance). Le
   glisser-déposer n'existe pas au doigt : le menu « Actions » le remplace. */
/* ------------------------- refonte de l'en-tête (06/09/2026, maquette
   d'Adrien : « voici à quoi cela doit ressembler, c'est plus facile ») */
html.ui-v2 .v2p-titre-rang {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
html.ui-v2 .v2p-sous-titre {
  margin: 2px 0 0;
  font-size: 13px;
  color: var(--texte-attenue);
}
/* Deux formulations, une par largeur : « Nouvelle affaire » au bureau,
   « Affaire » sur un téléphone où le bouton partage sa ligne avec le titre.
   Le nom accessible ne change pas — les deux sont dans le bouton. */
html.ui-v2 .v2p-court { display: none; }
html.ui-v2 .v2p-rang-filtres { display: flex; gap: 8px; align-items: center; }
html.ui-v2 .v2p-btn-filtres { display: none; }
html.ui-v2 .v2p-filtres { display: contents; }
html.ui-v2 .v2p-col-plier { display: none; }
html.ui-v2 .v2p-carte-sous { display: none; font-size: 13px; color: var(--texte-attenue); margin-top: 2px; }

@media (max-width: 767px) {
  html.ui-v2 .v2p-entete h1 { font-size: 22px; }
  html.ui-v2 .v2p-outils { width: 100%; margin-left: 0; }
  html.ui-v2 .v2p-select,
  html.ui-v2 .v2p-btn { min-height: 44px; }
  html.ui-v2 .v2p-onglet { min-height: 44px; flex: 1; }
  html.ui-v2 .v2p-onglets { display: flex; width: 100%; }
  /* Les deux cartes de synthèse et le paragraphe d'aide au glisser-déposer
     disparaissent du téléphone (maquette d'Adrien). Le glisser-déposer
     n'existe pas au doigt : expliquer un geste impossible occupait quatre
     lignes au-dessus du premier prospect. Les chiffres, eux, restent sur
     grand écran, où ils tiennent sans rien pousser. */
  html.ui-v2 .v2p-synthese { display: none; }
  html.ui-v2 .v2p-aide { display: none; }

  html.ui-v2 .v2p-long { display: none; }
  html.ui-v2 .v2p-court { display: inline; }
  html.ui-v2 .v2p-titre-rang { align-items: center; }
  html.ui-v2 .v2p-titre-rang .v2p-btn-primaire { flex: none; min-height: 40px; }
  html.ui-v2 .v2p-btn-primaire { background: var(--sobria-nuit); border-color: var(--sobria-nuit); }

  /* Les onglets en sélecteur segmenté : un rail gris, le segment actif en
     blanc. Trois segments tiennent sur 390 px parce que leurs libellés sont
     courts — c'est à cela que sert .v2p-court. */
  html.ui-v2 .v2p-onglets {
    background: var(--v2-bordure-douce);
    border-radius: 10px;
    padding: 3px;
    gap: 3px;
    border: 0;
  }
  html.ui-v2 .v2p-onglet {
    border: 0;
    border-radius: 8px;
    background: transparent;
    font-size: 14px;
  }
  html.ui-v2 .v2p-onglet + .v2p-onglet { border-left: 0; }
  html.ui-v2 .v2p-onglet-actif,
  html.ui-v2 .v2p-onglet-actif:hover {
    background: var(--fond-surface);
    /* La règle de bureau met le texte en BLANC sur fond nuit. Ici le fond
       devient blanc : sans reprendre la couleur, l'onglet actif était une
       case vide — vu à l'écran le 06/09/2026, « Toutes » avait disparu. */
    color: var(--sobria-nuit);
    box-shadow: 0 1px 2px rgba(20, 33, 59, .12);
  }

  /* L'en-tête d'étape se réduit à l'essentiel de la maquette : pastille,
     nom, compteur, chevron. Le budget de la colonne, ses honoraires et son
     bouton « + Ajouter une affaire » sont des repères de bureau — sur un
     téléphone, « + Affaire » en haut d'écran fait le même travail une seule
     fois au lieu de cinq. */
  html.ui-v2 .v2p-col-montant,
  html.ui-v2 .v2p-col-hono,
  html.ui-v2 .v2p-ajouter { display: none; }
  html.ui-v2 .v2p-col-titre { flex: none; }
  html.ui-v2 .v2p-col-compte { margin-left: auto; }

  /* La carte dit qui suit et combien, en une ligne de texte — la maquette
     écrit « Adrien · CA potentiel à renseigner ». La rangée montant/avatar
     de bureau laisse la place. */
  html.ui-v2 .v2p-carte-ligne { display: none; }
  html.ui-v2 .v2p-carte-sous { display: block; }

  /* Les filtres passent derrière un bouton : « Ce mois-ci » et « Filtres »
     sur une ligne, le reste dans un tiroir. Quatre contrôles à plat
     prenaient deux rangs avant la première affaire. */
  html.ui-v2 .v2p-btn-filtres { display: inline-flex; flex: 1; }
  html.ui-v2 .v2p-rang-filtres > .v2p-select { flex: 1; }
  html.ui-v2 .v2p-filtres {
    display: none;
    flex-direction: column;
    gap: 8px;
    padding: 10px;
    margin-top: 8px;
    border: 1px solid var(--v2-bordure-douce);
    border-radius: 10px;
    background: var(--fond-surface);
  }
  html.ui-v2 .v2p-filtres-ouvert { display: flex; }

  /* Replier une étape : le chevron n'existe qu'ici, où l'on a besoin de
     voir les cinq étapes d'un coup. */
  html.ui-v2 .v2p-col-plier {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    /* PAS de marge automatique ici : le compteur en porte déjà une, et deux
       marges automatiques dans la même rangée se partagent l'espace — le
       compteur restait au milieu (mesuré : 98 px de marge chacun). */
    border: 0;
    background: transparent;
    color: var(--texte-attenue);
    cursor: pointer;
  }
  html.ui-v2 .v2p-col-plier svg { width: 18px; height: 18px; transition: transform .15s; }
  html.ui-v2 .v2p-col-repliee .v2p-col-plier svg { transform: rotate(-90deg); }
  html.ui-v2 .v2p-col-repliee .v2p-col-cartes,
  html.ui-v2 .v2p-col-repliee .v2p-col-hono,
  html.ui-v2 .v2p-col-repliee .v2p-ajouter,
  html.ui-v2 .v2p-col-repliee .v2p-col-bascule { display: none; }
  @media (prefers-reduced-motion: reduce) {
    html.ui-v2 .v2p-col-plier svg { transition: none; }
  }

  /* Le geste que l'écran réclame, à portée de pouce. */
  html.ui-v2 .v2p-ajouter-action {
    width: 100%;
    justify-content: center;
    margin-top: 8px;
    min-height: 40px;
  }

  html.ui-v2 .v2p-kanban { display: block; overflow-x: visible; }
  html.ui-v2 .v2p-col {
    width: 100%;
    flex: none;
    margin-bottom: 16px;
    border-top: 1px solid var(--v2-bordure-douce);   /* le liseré cède au point */
  }
  html.ui-v2 .v2p-col-tete { padding-top: 4px; }
  html.ui-v2 .v2p-col-point {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--v2p-col, #8a8f98);
    flex: none;
    align-self: center;
  }
  /* Cartes compactes : le titre de l'affaire et les honoraires s'effacent,
     restent société, montant, échéance, prochaine action. */
  html.ui-v2 .v2p-titre { display: none; }
  html.ui-v2 .v2p-hono { display: none; }
  html.ui-v2 .v2p-carte { cursor: pointer; }
  html.ui-v2 .v2p-carte-ligne { margin-top: 4px; }
  /* La zone de dépôt n'a pas de sens sans glisser-déposer. */
  html.ui-v2 .v2p-col-vide { display: none; }
  html.ui-v2 .v2p-col-cartes { min-height: 0; }
  html.ui-v2 .v2p-menu-btn { width: 44px; height: 44px; margin: -10px -10px 0 0; }
  html.ui-v2 .v2p-ajouter { min-height: 44px; }
  html.ui-v2 .v2p-aide { display: none; }
}

/* ── L'état du questionnaire sur la carte (06/09/2026) ───────────────────
   Adrien : « j'imagine bien les questionnaires envoyés dans le pipeline ».
   Discret par construction : c'est un renseignement, pas une alerte — la
   carte porte déjà le montant, l'échéance, l'urgence et le responsable. */
html.ui-v2 .v2p-q {
  margin-top: 6px;
  padding-top: 6px;
  border-top: 1px dashed var(--bordure);
  font-size: 12px;
  line-height: 1.35;
  color: var(--texte-attenue);
}
html.ui-v2 .v2p-q-etat { font-weight: 600; color: var(--texte); }
html.ui-v2 .v2p-q-detail { color: var(--texte-attenue); }
/* Rempli : le seul état qui appelle un geste — c'est le seul coloré. */
html.ui-v2 .v2p-q-termine .v2p-q-etat { color: var(--sobria-cuivre); }
html.ui-v2 .v2p-q-geste {
  display: block;
  width: 100%;
  margin-top: 6px;
  min-height: 32px;
  border: 1px solid var(--sobria-cuivre);
  border-radius: 6px;
  background: transparent;
  color: var(--sobria-cuivre);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
}
html.ui-v2 .v2p-q-geste:hover { background: var(--sobria-cuivre); color: #fff; }

/* ── La colonne « En attente du client » : une VUE, pas une étape ─────────
   Aucune valeur stockée derrière elle, donc rien à y déposer. Le pointillé
   dit qu'elle n'est pas de la même nature que les cinq autres. */
html.ui-v2 .v2p-col-vue { border-style: dashed; }
html.ui-v2 .v2p-col-vue-note {
  padding: 6px 10px 8px;
  font-size: 11.5px;
  line-height: 1.4;
  color: var(--texte-attenue);
}
