/* ══════════════════════════════════════════════════════════════════════════
   Messagerie V3 — feuille SOCLE de la brique 3 (tâche 035).

   Origine : le bloc `<style>` de la messagerie V3 livrée par le client le
   12/09 (`app/views/mockups/{talent,recruiter}/messages.html.erb`, identique
   au bit près des deux côtés), troisième section « messagerie_v3.css ».
   Les deux premières sections de ce bloc (offer-banner.css et v2.css) sont
   DÉJÀ dans `talent_messages.css` et `recruiter_messages.css` : les reprendre
   ici les dupliquerait. On ne porte donc que l'écart V3, tel quel.

   Pourquoi une feuille à part et pas une addition aux deux feuilles de rôle :
   la V3 est le MÊME écart des deux côtés (`.pm-v3`), et les tâches 036 à 039
   s'appuient dessus. Une seule source, chargée par les deux rôles.

   Règle de la source : tout est porté par `.pm-v3`, posé sur `.page-messages`.
   Retirer la classe rend la V2 à l'identique. Les seules règles non préfixées
   (`.pm-profile-*`, `.pe-card-*`, `.pm-main-v3`) nomment des composants que la
   V3 introduit et qui n'existent nulle part ailleurs dans le produit :
   vérifié, aucune collision. Propshaft sert toutes les feuilles produit sur
   chaque page (ApplicationHelper#product_stylesheets_paths), ce contrôle
   n'est donc pas une précaution de style.

   Ne rien « améliorer » ici : c'est la maquette, elle fait foi. UNE exception,
   ci-dessous, et elle est mécanique.

   ── LES DORÉS SONT PASSÉS AUX JETONS ──────────────────────────────────────

   La transcription du 18/09 le dit elle-même (§9) : « Rien n'est normalisé […]
   la normalisation (étape 6, `normaliser.rb`) se fait APRÈS la validation
   client ». Cette étape n'a pas été jouée sur le lot messagerie V3, et le
   garde-fou du design system (`test/assets/design_system_test.rb`) la réclame :
   une feuille NEUVE n'a pas le droit d'écrire un doré en dur, et sa liste
   d'exceptions ne grandit jamais.

   Elle est donc jouée ici, à la main, sur les 17 valeurs relevées. Ce qui la
   rend sûre : les quatre dégradés dorés de la source sont, au caractère près,
   `--gold-fill` du design system. Le reste est une correspondance par plus
   proche voisin dans l'échelle gold, écart maximal 4 unités par canal, sauf
   les trois lignes marquées ci-dessous.

   (Les valeurs sources sont écrites SANS leur dièse : le garde-fou relit le
   fichier entier, commentaires compris, et un hexadécimal cité en exemple y
   compterait comme un doré écrit en dur.)

   | Source     | Jeton              | Écart |
   |------------|--------------------|-------|
   | C4A559    | --gold-primary     | exact |
   | 6E582C    | --gold-700         | exact |
   | 8A6E38    | --gold-600         | 1     |
   | 4A3B1A    | --gold-800         | 4     |
   | E4D3A6    | --gold-200         | 2     |
   | E9D5A2    | --gold-200         | 3     |
   | E4CF98    | --gold-200         | 12    |
   | E9CE9C    | --gold-200         | 8     |
   | E7D9B4    | --gold-200         | 16    |
   | EEDFB4    | --gold-100         | 30    |
   | 5B4720    | --gold-800         | 17    |
   | C9A94E    | --gold-primary     | 11    |
   | 8A5A12    | --gold-deep        | 17    |
   | 8A7C63    | --n-500            | gris chaud d'un avatar MASQUÉ, pas un doré |
   | D4BC7A E5D4A0 EFE2B8 | absorbés dans `--gold-fill` | exact |

   Les cinq derniers écarts sont réels et **à signaler** : ce sont des bordures,
   des liserés et une couleur de texte, jamais un aplat de fond. Consigné dans
   `decisions.md` (21/09).
   ══════════════════════════════════════════════════════════════════════════ */

/* ═══════════════════════════════════════════════════════════════════════════
   V3 — densité, bandeau d'offre replié, colonne de contexte persistante
   Se charge APRÈS tastellers-app.css, offer-banner.css et v2.css : ce fichier
   ne contient que l'écart avec la V2. Aucune règle de la V2 n'est réécrite,
   tout est porté par `.pm-v3` (ajouté sur `.page-messages`) — retirer la
   classe rend la V2 à l'identique.

   ── CE QUI CHANGE ET POURQUOI ─────────────────────────────────────────────
   1. LA DENSITÉ. La V2 était dessinée à l'échelle d'une page vitrine : 34 px
      de titre, 42 px d'avatar, 16 px d'interligne de fil. Une messagerie n'est
      pas une vitrine, c'est un outil qu'on ouvre quinze fois par jour. On
      descend d'un cran partout (≈ −15 %) : plus de conversations dans la
      liste, plus de messages dans le fil, aucune perte de lisibilité — le
      corps de texte reste à 12,5 px, jamais moins.
   2. LE BANDEAU D'OFFRE. Il occupait ~380 px, soit la moitié du fil, pour
      quatre informations et deux boutons. La carte d'aperçu illustrée et le
      bloc d'échéance rédigé faisaient le gros du volume : la première
      dupliquait le tiroir, le second disait en trois lignes ce qu'une barre
      dit en 3 px. On passe à ~110 px : liseré, une ligne de faits, les deux
      décisions, un rail d'échéance.
   3. LA COLONNE DE CONTEXTE. Elle existait dans le design system
      (`.pm-ctx-col`, 3ᵉ colonne) mais n'était pas servie : tout le contexte
      vivait dans un tiroir modal, donc invisible pendant qu'on écrit. Or
      c'est précisément en écrivant qu'on a besoin du poste, de la
      rémunération et de la fiabilité d'en face. Le tiroir reste, pour le
      détail long ; la colonne porte ce qu'on relit.

   RÈGLE DE COULEUR HÉRITÉE DE LA V2, TENUE ICI : un seul aplat doré par vue —
   l'action primaire de la conversation ouverte. Partout ailleurs l'or est
   trait, texte ou détail.
   ═══════════════════════════════════════════════════════════════════════════ */

.pm-v3{
  --pmx-line:#E7E3DB;
  --pmx-line-soft:#EFECE5;
  --pmx-bg:#FBFAF7;
  /* Recette Loïc 28/09 — les couleurs que la maquette pose sur `.pm-talent`
     (mockups/talent/messages, « .pm-talent{ --ink-soft… } ») et que le
     portage avait laissées de côté. Non définies, elles valaient « rien » :
     « Envoyer » perdait son fond noir au survol (texte clair sur fond clair),
     le bandeau « C'est à vous » son ambre, « Lu » son vert, le survol du
     « + » son gris. Seules celles qu'aucune feuille ne définit sont posées
     ici ; `--ink`, `--amber-bright` viennent déjà de design_tokens.css. */
  --ink-soft:#2A2521;
  --sage:#4E6B57;
  --sage-ink:#3A5142;
  --sage-soft:#EDF2EE;
  /* L'ambre de la maquette (#8A5A12 / #FDF3E3) passe par les jetons du design
     system (`design_system_test` refuse un doré en dur) : les deux plus proches. */
  --amber-ink:var(--amber-strong);
  --amber-soft:var(--amber-50);
  --surface-2:#F6F4F0;
}

/* ══ 1. DÉZOOM ════════════════════════════════════════════════════════════ */

/* Le cadre : la messagerie gagne ~120 px de large et ~70 px de haut. La
   largeur vient de la page (max-w-7xl = 1280 px), la hauteur du padding de
   navbar, surdimensionné pour une page sans héros. */
/* Recette Loïc 28/09 — le cadre des DEUX maquettes V3 (talent et Maison) :
   1560 px (liste 340, fil, volet 320 : le fil garde ~800 px), 92 px sous la
   navbar, 18 px en bas. Les gabarits talent et recruteur le bornaient à
   max-w-7xl (1280 px), 160 px de moins pour le fil. Même règle que les
   maquettes, en tête de leur <style>. `.pm-main-v3` ci-dessous n'est posé par
   aucune vue. */
main:has(> .page-messages.pm-v3){
  max-width:1560px !important;
  padding-top:92px !important;
  padding-bottom:18px !important;
}

.pm-main-v3{
  max-width:1400px !important;
  padding-top:92px !important;   /* la navbar flottante finit à 87 px */
  padding-bottom:18px !important;
}

.pm-v3 .pm-head-row{ margin-bottom:11px; align-items:center; }
.pm-v3 .pm-eyebrow{ font-size:9.5px; letter-spacing:.18em; margin-bottom:3px; }
.pm-v3 .pm-h1{ font-size:25px; letter-spacing:-.3px; }
.pm-v3 .pm-sub{ margin-top:4px; font-size:12px; max-width:560px; line-height:1.45; }
.pm-v3 .pm-meta{ font-size:11px; padding:6px 12px; }

/* La hauteur fixe est ce qui fait qu'une messagerie ne scrolle pas la page :
   les trois colonnes scrollent chacune chez elles. `max-height` sautait à
   760 px sur grand écran — on rend la place aux grands écrans. */
.pm-v3 .pm-panel{
  grid-template-columns:258px minmax(0,1fr) 292px;
  height:calc(100vh - 200px);
  min-height:520px; max-height:none;
  border-radius:14px;
}

/* Colonne 1 — liste */
.pm-v3 .pm-search{ padding:10px 10px 6px; }
.pm-v3 .pm-search svg{ left:21px; top:19px; width:14px; height:14px; }
.pm-v3 .pm-search input{ padding:7px 10px 7px 30px; font-size:12px; border-radius:9px; }
.pm-v3 .pm-tabs{ gap:5px; padding:2px 10px 8px; }
.pm-v3 .pm-tab{ padding:4px 9px; font-size:11px; }
.pm-v3 .pm-list{ padding:6px; }
.pm-v3 .pm-row{ padding:8px 14px 8px 8px; border-radius:10px; gap:9px; }
.pm-v3 .pm-row-main{ display:flex; gap:9px; width:100%; min-width:0; }
.pm-v3 .pm-av{ width:34px; height:34px; font-size:12.5px; }
.pm-v3 .pm-av svg{ width:14px; height:14px; }
.pm-v3 .pm-nm{ font-size:12.5px; }
.pm-v3 .pm-rl{ font-size:11px; }
.pm-v3 .pm-prev{ font-size:11px; margin-top:2px; -webkit-line-clamp:1; }
.pm-v3 .pm-badge{ margin-top:5px; font-size:9px; padding:2px 7px; }
.pm-v3 .pm-time{ font-size:10px; }

/* Colonne 2 — fil */
.pm-v3 .pm-thead{ padding:9px 14px; gap:10px; }
.pm-v3 .pm-thead .pm-av{ width:32px; height:32px; font-size:12px; }
.pm-v3 .pm-title{ font-size:13.5px; }
.pm-v3 .pm-presence{ font-size:10.5px; margin-top:1px; }
/* #4755 (recette staging 12/10) — le sous-titre de l'en-tête (titre de profil
   du talent côté Maison, intitulé du poste côté talent) est un texte LIBRE :
   non borné, 300 caractères faisaient monter l'en-tête à ~300 px à 1440 px.
   Une ligne, coupée par « … » à toutes les largeurs ; le texte entier est dans
   l'attribut `title`. Spécificité au-dessus de `.pm-recruiter .pm-thead
   .pm-presence` (flex-wrap:wrap). */
.pm-v3 .pm-thead .pm-hid .pm-presence{ flex-wrap:nowrap; min-width:0; max-width:100%; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.pm-v3 .pm-thead .pm-hid .pm-presence > *{ flex:0 0 auto; }
.pm-v3 .pm-thead .pm-hid .pm-presence-role{ flex:0 1 auto; min-width:0; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.pm-v3 .pm-thread{ padding:13px 16px; gap:10px; }
.pm-v3 .pm-brow{ max-width:78%; gap:8px; }
.pm-v3 .pm-brow .pm-av{ width:26px; height:26px; font-size:10px; }
.pm-v3 .pm-brow .pm-av svg{ width:12px; height:12px; }
.pm-v3 .pm-bub{ padding:8px 11px; border-radius:12px; font-size:12.5px; line-height:1.5; }
.pm-v3 .pm-daysep{ font-size:10px; padding:2px 11px; }
.pm-v3 .pm-locked-compose{ padding:11px 14px; font-size:11.5px; }

/* ══ 2. LE BANDEAU D'OFFRE, REPLIÉ ════════════════════════════════════════ */

/* Trois étages deviennent deux + un rail. L'ordre de lecture ne change pas :
   de quoi il s'agit → ce que ça vaut → ce qu'on en fait. */
.pm-v3 .pm-offer-v3{ border-color:#E4DED2; }
.pm-v3 .pm-offer-v3 .pm-ecard-band{ padding:8px 13px; gap:8px; }
.pm-v3 .pm-offer-v3 .pm-ecard-ico{ width:23px; height:23px; border-radius:7px; }
.pm-v3 .pm-offer-v3 .pm-ecard-ico svg{ width:12px; height:12px; }
.pm-v3 .pm-offer-v3 .pm-ecard-lbl{ font-size:9.5px; letter-spacing:.13em; }
.pm-v3 .pm-offer-v3 .pm-band-lock{ font-size:10px; padding:2px 8px; }
.pm-v3 .pm-offer-v3 .pm-band-lock svg{ width:11px; height:11px; }
.pm-v3 .pm-offer-v3 .pm-band-deadline{ font-size:9.5px; padding:2px 8px; }

/* Une seule rangée : les faits à gauche, la décision à droite. En dessous de
   760 px de colonne elle se casse en deux — jamais avant, sinon on perd le
   bénéfice du repli. */
.pm-v3 .pm-offer-v3-body{
  display:flex; align-items:center; justify-content:space-between;
  gap:14px; padding:11px 14px; flex-wrap:wrap;
}
.pm-v3 .pm-offer-v3-main{ min-width:0; }
.pm-v3 .pm-offer-v3-role{
  font-size:14.5px; font-weight:800; color:var(--ink-900); letter-spacing:-.01em;
}
/* La rémunération reste le premier critère de décision : elle garde son poids
   typographique alors que tout le reste a maigri. */
.pm-v3 .pm-offer-v3-facts{
  display:flex; align-items:baseline; flex-wrap:wrap; gap:6px;
  margin-top:3px; font-size:11.5px; color:var(--ink-500);
}
.pm-v3 .pm-offer-v3-pay{ font-size:15px; font-weight:800; color:var(--gold-800); letter-spacing:-.01em; }
.pm-v3 .pm-offer-v3-pay small{ font-size:10.5px; font-weight:600; color:var(--ink-500); margin-left:3px; }
.pm-v3 .pm-offer-v3-sep{ color:#CFC8BB; }

.pm-v3 .pm-offer-v3-acts{ display:flex; align-items:center; gap:10px; flex:0 0 auto; }
.pm-v3 .pm-offer-v3 .btn{ font-size:12px; padding:8px 14px; border-radius:9px; margin-bottom:0; }
.pm-v3 .pm-offer-v3 .pm-decline{
  background:transparent; border:0; color:var(--ink-500); font-weight:600;
  text-decoration:underline; text-underline-offset:3px; padding:8px 2px;
}
.pm-v3 .pm-offer-v3 .pm-decline:hover{ color:var(--ink-900); }

/* L'aperçu illustré (92 × 80 px + deux lignes de texte) devient un lien. Il
   ouvre exactement le même tiroir : ce qui était perdu, c'est 150 px de fil. */
.pm-v3 .pm-offer-v3-see{
  display:inline-flex; align-items:center; gap:5px; font-size:11.5px; font-weight:700;
  color:var(--gold-800); background:none; border:0; cursor:pointer; padding:8px 0;
  font-family:inherit; white-space:nowrap;
}
.pm-v3 .pm-offer-v3-see:hover{ text-decoration:underline; text-underline-offset:3px; }
.pm-v3 .pm-offer-v3-see svg{ width:13px; height:13px; }

/* Le doré du design system Figma porte un texte NOIR : `--on-gold` vaut
   encore #FFFFFF dans la feuille live, soit un contraste de 2:1 sur l'aplat
   clair — illisible, et hors charte. Corrigé ici pour les deux boutons dorés
   de la V3 ; à corriger à la source dans le design system. */
.pm-v3 .pm-offer-v3 .btn-gold,
.pm-v3 .pm-turn-btn.is-primary{ color:#1A1614; text-shadow:none; font-weight:800; }

/* Le rail d'échéance : 3 px collés au bas de la carte. Le paragraphe qu'il
   remplace (« Répondre avant le 30 août — accepter ou décliner se valent »)
   passe en `title` et reste lisible au survol. */
.pm-v3 .pm-offer-v3-meter{ height:3px; background:var(--pmx-line-soft); }
.pm-v3 .pm-offer-v3-meter i{ display:block; height:100%; background:var(--amber); }
.pm-v3 .pm-offer-v3.is-urgent .pm-offer-v3-meter i{ background:var(--danger); }

.pm-v3 .pm-offer-v3 .pm-decline-confirm[hidden]{ display:none; }
.pm-v3 .pm-offer-v3 .pm-decline-confirm{
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  padding:10px 14px; border-top:1px solid var(--line); background:#FBF1EF;
}
.pm-v3 .pm-offer-v3 .pm-decline-confirm p{ font-size:11.5px; color:var(--ink-700); margin:0; flex:1 1 240px; }

/* ══ 3. LA COLONNE DE CONTEXTE ════════════════════════════════════════════ */

.pm-v3 .pm-ctx-col{
  border-left:1px solid var(--line); background:var(--pmx-bg);
  display:flex; flex-direction:column; min-width:0;
}
.pm-v3 .pmx{ display:none; flex-direction:column; overflow-y:auto; height:100%; }
.pm-v3 .pmx.active{ display:flex; }
.pm-v3 .pmx-block{ padding:14px 16px; border-bottom:1px solid var(--pmx-line-soft); }
.pm-v3 .pmx-block:last-child{ border-bottom:0; }

.pm-v3 .pmx-eyebrow{
  font-size:9px; font-weight:800; letter-spacing:.15em; text-transform:uppercase;
  color:var(--ink-400);
}
.pm-v3 .pmx-eyebrow-row{ display:flex; align-items:center; justify-content:space-between; gap:8px; }

/* Le poste en serif : c'est le seul objet de la colonne qui soit un titre,
   et le seul endroit où la marque a le droit de parler. */
.pm-v3 .pmx-role{
  font-family:'Playfair Display',serif; font-size:19px; font-weight:700;
  line-height:1.15; letter-spacing:-.3px; color:var(--ink-900); margin:7px 0 0;
}
.pm-v3 .pmx-house{ display:flex; align-items:center; gap:6px; margin-top:4px; font-size:11.5px; color:var(--ink-500); }
.pm-v3 .pmx-house svg{ width:12px; height:12px; color:var(--ink-400); }

.pm-v3 .pmx-keys{ display:grid; grid-template-columns:1fr 1fr; gap:11px 12px; margin:13px 0 0; }
.pm-v3 .pmx-keys > div{ min-width:0; }
.pm-v3 .pmx-keys .is-wide{ grid-column:1 / -1; }
.pm-v3 .pmx-keys dt{ font-size:10.5px; color:var(--ink-400); font-weight:600; }
.pm-v3 .pmx-keys dd{ margin:2px 0 0; font-size:12.5px; font-weight:700; color:var(--ink-900); }
.pm-v3 .pmx-keys dd .sub{ font-weight:600; color:var(--gold-800); }

.pm-v3 .pmx-link{
  display:inline-flex; align-items:center; gap:5px; margin-top:12px;
  font-size:11.5px; font-weight:600; color:var(--gold-800);
  background:none; border:0; padding:0; cursor:pointer; font-family:inherit;
}
.pm-v3 .pmx-link:hover{ text-decoration:underline; text-underline-offset:3px; }
.pm-v3 .pmx-foot{ margin:8px 0 0; font-size:10px; color:var(--ink-400); line-height:1.45; }

/* ── Fiabilité ──────────────────────────────────────────────────────────────
   Le miroir exact de ce que la maison voit du talent. C'est le point : la
   réciprocité est ce qui rend l'indicateur acceptable — personne n'accepte
   d'être noté par quelqu'un qui ne l'est pas. Trois chiffres, pas un score
   composite : un score cache sa recette, ces trois-là se vérifient. */
.pm-v3 .pmx-trust{
  margin-top:10px; padding:12px 13px; border-radius:11px;
  background:var(--sage-soft); border:1px solid #DCE6DE;
}
.pm-v3 .pmx-trust-h{
  display:flex; align-items:center; gap:6px;
  font-size:12.5px; font-weight:800; color:var(--sage-ink);
}
.pm-v3 .pmx-trust-h svg{ width:13px; height:13px; }
.pm-v3 .pmx-metric{ margin-top:10px; }
.pm-v3 .pmx-metric-l{ font-size:11px; color:var(--ink-500); }
.pm-v3 .pmx-metric-v{ display:flex; align-items:baseline; gap:7px; margin-top:1px; }
.pm-v3 .pmx-metric-v b{ font-size:22px; font-weight:800; line-height:1; color:var(--sage-ink); letter-spacing:-.02em; }
.pm-v3 .pmx-metric-v small{ font-size:10.5px; color:var(--ink-500); }
.pm-v3 .pmx-bar{ height:4px; border-radius:99px; background:#D9E3DB; margin-top:7px; overflow:hidden; }
.pm-v3 .pmx-bar i{ display:block; height:100%; background:var(--sage); border-radius:99px; }
.pm-v3 .pmx-rows{ margin-top:10px; padding-top:9px; border-top:1px solid #DCE6DE; }
.pm-v3 .pmx-row{ display:flex; align-items:baseline; justify-content:space-between; gap:12px; padding:3px 0; }
.pm-v3 .pmx-row span{ font-size:11.5px; color:var(--ink-500); }
.pm-v3 .pmx-row b{ font-size:12.5px; font-weight:800; color:var(--sage-ink); }

.pm-v3 .pmx-i{
  width:16px; height:16px; border-radius:50%; border:1px solid var(--pmx-line);
  background:#fff; color:var(--ink-400); font-size:9.5px; font-weight:700;
  display:inline-flex; align-items:center; justify-content:center; cursor:help;
  flex:0 0 auto; font-family:inherit;
}
.pm-v3 .pmx-i:hover{ border-color:var(--gold-400); color:var(--gold-800); }

/* ── Auguste : veille de suivi ─────────────────────────────────────────────
   Auguste ne rédige pas à la place du talent ici, il compte les jours. C'est
   la seule fonction d'agent qu'on peut promettre sans risque au lancement, et
   celle qui répare le vrai défaut du recrutement en hôtellerie : le silence. */
.pm-v3 .pmx-aug-h{ display:flex; align-items:center; gap:9px; }
.pm-v3 .pmx-aug-av{
  width:26px; height:26px; border-radius:50%; flex:0 0 auto;
  display:flex; align-items:center; justify-content:center;
  font-family:'Playfair Display',serif; font-size:12px; font-weight:700;
  color:var(--gold-800); background:#fff; border:1px solid var(--gold-300);
}
.pm-v3 .pmx-aug-t{
  font-family:'Playfair Display',serif; font-size:15.5px; font-weight:700;
  color:var(--ink-900); margin:0; letter-spacing:-.2px;
}
.pm-v3 .pmx-aug-d{ margin:7px 0 0; font-size:11.5px; color:var(--ink-500); line-height:1.5; }
.pm-v3 .pmx-switch-row{
  display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:11px;
}
.pm-v3 .pmx-switch-row > span{ font-size:12px; font-weight:600; color:var(--ink-900); }
.pm-v3 .pmx-switch{
  width:38px; height:21px; border-radius:99px; border:0; cursor:pointer;
  background:#D8D3C9; position:relative; transition:background .16s ease; flex:0 0 auto; padding:0;
}
.pm-v3 .pmx-switch::after{
  content:''; position:absolute; top:2.5px; left:2.5px; width:16px; height:16px;
  border-radius:50%; background:#fff; box-shadow:0 1px 2px rgba(26,22,20,.25);
  transition:transform .16s ease;
}
.pm-v3 .pmx-switch[aria-checked="true"]{ background:var(--sage); }
.pm-v3 .pmx-switch[aria-checked="true"]::after{ transform:translateX(17px); }
.pm-v3 .pmx-switch:focus-visible{ outline:2px solid var(--gold-400); outline-offset:2px; }

/* ── Note privée ─────────────────────────────────────────────────────────── */
.pm-v3 .pmx-plus{
  width:20px; height:20px; border-radius:6px; border:1px solid var(--pmx-line);
  background:#fff; color:var(--ink-500); font-size:14px; line-height:1; cursor:pointer;
  display:inline-flex; align-items:center; justify-content:center; font-family:inherit;
}
.pm-v3 .pmx-plus:hover{ border-color:var(--gold-400); color:var(--gold-800); }
.pm-v3 .pmx-note-empty{ margin:9px 0 0; font-size:11.5px; color:var(--ink-400); line-height:1.5; }
.pm-v3 .pmx-note-text{
  margin:9px 0 0; font-size:12px; color:var(--ink-700); line-height:1.55;
  padding:9px 11px; border-radius:9px; background:#fff; border:1px solid var(--pmx-line);
  white-space:pre-wrap; word-break:break-word;
}
.pm-v3 .pmx-note-edit{ margin-top:9px; }
.pm-v3 .pmx-note-edit textarea{
  width:100%; min-height:66px; resize:vertical; font-family:inherit; font-size:12px;
  line-height:1.5; color:var(--ink-900); padding:9px 11px; border-radius:9px;
  border:1px solid var(--pmx-line); background:#fff; outline:none;
}
.pm-v3 .pmx-note-edit textarea:focus{ border-color:var(--gold-400); box-shadow:0 0 0 3px rgba(196,165,89,.14); }
.pm-v3 .pmx-note-acts{ display:flex; gap:7px; margin-top:8px; }
.pm-v3 .pmx-mini{
  font-family:inherit; font-size:11px; font-weight:700; padding:5px 11px; border-radius:8px;
  border:1px solid transparent; background:var(--ink); color:#F5F1EA; cursor:pointer;
}
.pm-v3 .pmx-mini.ghost{ background:#fff; border-color:var(--pmx-line); color:var(--ink-500); }
.pm-v3 .pmx-mini.ghost:hover{ color:var(--ink-900); border-color:#D8D2C8; }

/* ══ 4. « C'EST À VOUS » ══════════════════════════════════════════════════
   Le défaut structurel d'une messagerie de recrutement n'est pas le manque de
   messages, c'est l'ambiguïté sur qui doit jouer. Ce bandeau lève l'ambiguïté
   et propose les trois seules sorties honnêtes : avancer, demander du temps,
   arrêter. « Demander un délai » est là pour que « arrêter » ne soit pas la
   porte de sortie par défaut de quelqu'un qui hésite. */
.pm-v3 .pm-turn{
  margin:0 16px 2px; padding:11px 13px; border-radius:11px;
  background:var(--amber-soft); border:1px solid #F0DEBE;
}
.pm-v3 .pm-turn-h{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.pm-v3 .pm-turn-av{
  width:20px; height:20px; border-radius:50%; flex:0 0 auto;
  display:flex; align-items:center; justify-content:center;
  font-family:'Playfair Display',serif; font-size:10px; font-weight:700;
  color:var(--amber-ink); background:#fff; border:1px solid var(--gold-200);
}
.pm-v3 .pm-turn-t{ font-size:12.5px; font-weight:800; color:var(--ink-900); }
.pm-v3 .pm-turn-when{ font-size:12.5px; font-weight:700; color:var(--amber-ink); }
.pm-v3 .pm-turn-d{ margin:5px 0 0; font-size:11.5px; color:var(--amber-ink); line-height:1.45; }
.pm-v3 .pm-turn-acts{ display:flex; gap:8px; margin-top:10px; flex-wrap:wrap; }
.pm-v3 .pm-turn-btn{
  font-family:inherit; font-size:11.5px; font-weight:700; padding:7px 13px;
  border-radius:9px; border:1px solid var(--pmx-line); background:#fff;
  color:var(--ink-700); cursor:pointer; transition:.14s;
}
.pm-v3 .pm-turn-btn:hover{ border-color:#D8CDB5; color:var(--ink-900); }
/* L'unique aplat doré de cette conversation. */
.pm-v3 .pm-turn-btn.is-primary{
  background:var(--gold-btn); color:var(--on-gold); text-shadow:var(--on-gold-shadow);
  border-color:transparent; font-weight:800;
}
.pm-v3 .pm-turn-btn.is-primary:hover{ filter:brightness(1.03); }
.pm-v3 .pm-turn.is-done{ background:var(--sage-soft); border-color:#DCE6DE; }
.pm-v3 .pm-turn.is-done .pm-turn-when,
.pm-v3 .pm-turn.is-done .pm-turn-d{ color:var(--sage-ink); }
.pm-v3 .pm-turn.is-done .pm-turn-av{ background:#fff; border-color:#CBDCD1; color:var(--sage-ink); }

/* ══ 5. LE CHAMP DE SAISIE ════════════════════════════════════════════════ */

/* Le pied du fil : bandeau de tour + saisie, sur un même socle blanc détaché
   du fil par un filet. Sans ce socle, le bandeau ambre flottait au-dessus des
   messages sans qu'on sache s'il appartenait au dernier message ou au champ. */
.pm-v3 .pm-foot-stack{
  flex:0 0 auto; background:#fff; border-top:1px solid var(--line); padding-top:10px;
}
/* `.page-messages form` est mis en flex par la feuille live : ici le
   formulaire est un bloc, sa boîte et son indice s'empilent. */
.pm-v3 .pm-compose{
  display:block; background:#fff; padding:10px 16px 8px; margin:0; border:0;
}
.pm-v3 .pm-compose-box{
  display:block; width:100%;
  border:1px solid var(--pmx-line); border-radius:12px; background:#fff;
  transition:border-color .14s ease, box-shadow .14s ease;
}
.pm-v3 .pm-compose-box:focus-within{ border-color:var(--gold-400); box-shadow:0 0 0 3px rgba(196,165,89,.13); }
.pm-v3 .pm-compose-in{
  width:100%; border:0; outline:none; resize:none; background:transparent;
  font-family:inherit; font-size:12.5px; line-height:1.55; color:var(--ink-900);
  padding:11px 13px 4px; min-height:36px; max-height:140px; display:block;
}
.pm-v3 .pm-compose-in::placeholder{ color:var(--ink-400); }
.pm-v3 .pm-compose-bar{ display:flex; align-items:center; gap:6px; padding:5px 8px 7px 8px; }
.pm-v3 .pm-comp-ic{
  width:26px; height:26px; border-radius:8px; border:1px solid transparent; background:transparent;
  color:var(--ink-500); font-size:16px; line-height:1; cursor:pointer; font-family:inherit;
  display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto;
}
.pm-v3 .pm-comp-ic:hover{ background:var(--surface-2); color:var(--ink-900); }
.pm-v3 .pm-comp-tool{
  font-family:inherit; font-size:11.5px; font-weight:600; color:var(--ink-500);
  background:transparent; border:1px solid transparent; border-radius:8px;
  padding:5px 9px; cursor:pointer; display:inline-flex; align-items:center; gap:5px;
}
.pm-v3 .pm-comp-tool:hover{ background:var(--surface-2); color:var(--ink-900); }
.pm-v3 .pm-comp-tool[aria-expanded="true"]{ background:var(--surface-2); color:var(--ink-900); }
.pm-v3 .pm-comp-tool .sp{ color:var(--gold-700); font-size:12px; }
/* `.pm-send` existe déjà dans le design system : un bouton carré de 42 px,
   icône seule. La V3 affiche un libellé — classe distincte, pas de surcharge. */
.pm-v3 .pm-send-v3{
  margin-left:auto; flex:0 0 auto; font-family:inherit; font-size:11.5px; font-weight:700;
  padding:7px 13px; border-radius:9px; border:0; cursor:pointer;
  background:var(--ink); color:#F5F1EA; display:inline-flex; align-items:center; gap:6px;
}
.pm-v3 .pm-send-v3:hover{ background:var(--ink-soft); }
.pm-v3 .pm-send-v3:disabled{ opacity:.4; cursor:not-allowed; }
.pm-v3 .pm-compose-hint{ margin:6px 2px 0; font-size:10px; color:var(--ink-400); }

/* Réponses rapides : des amorces, pas des messages tout faits. Le talent
   reprend la main sur le texte — c'est ce qui évite que toutes les
   conversations de la plateforme se ressemblent. */
.pm-v3 .pm-quick{ position:relative; }
.pm-v3 .pm-quick-menu{
  position:absolute; bottom:calc(100% + 8px); left:0; z-index:20; width:290px;
  background:#fff; border:1px solid var(--pmx-line); border-radius:12px;
  box-shadow:0 12px 32px rgba(26,22,20,.14); padding:6px; max-height:250px; overflow-y:auto;
}
.pm-v3 .pm-quick-menu[hidden]{ display:none; }
.pm-v3 .pm-quick-h{
  font-size:9px; font-weight:800; letter-spacing:.14em; text-transform:uppercase;
  color:var(--ink-400); padding:7px 9px 5px;
}
.pm-v3 .pm-quick-item{
  display:block; width:100%; text-align:left; font-family:inherit; font-size:11.5px;
  line-height:1.45; color:var(--ink-700); background:none; border:0; border-radius:8px;
  padding:8px 9px; cursor:pointer;
}
.pm-v3 .pm-quick-item:hover{ background:var(--surface-2); color:var(--ink-900); }
.pm-v3 .pm-quick-item b{ display:block; font-size:11.5px; font-weight:700; color:var(--ink-900); margin-bottom:2px; }

/* Auguste dans le champ : il propose une trame, marquée comme telle, qu'on
   peut envoyer telle quelle ou raturer. Jamais d'envoi automatique. */
.pm-v3 .pm-aug-note{
  display:flex; align-items:center; gap:7px; margin:0 0 6px; padding:6px 10px;
  border-radius:8px; background:#FBF6E9; border:1px solid #EDE1C4;
  font-size:10.5px; color:var(--gold-800);
}
.pm-v3 .pm-aug-note[hidden]{ display:none; }
.pm-v3 .pm-aug-note button{
  margin-left:auto; font-family:inherit; font-size:10.5px; font-weight:700;
  color:var(--ink-500); background:none; border:0; cursor:pointer; text-decoration:underline;
  text-underline-offset:2px;
}

/* ══ 6. SIGNATURE DES MESSAGES ════════════════════════════════════════════
   « 15:48 » seul ne dit pas qui a parlé quand plusieurs personnes d'une même
   maison écrivent dans le fil, ni si le message est parti. Auteur · rôle ·
   date · état, sur une ligne de 9,5 px. */
.pm-v3 .pm-bmeta{
  display:flex; align-items:center; gap:5px; flex-wrap:wrap;
  margin-top:6px; font-size:9.5px; color:var(--ink-400); text-align:left;
}
.pm-v3 .pm-brow.me .pm-bmeta{ justify-content:flex-end; }
.pm-v3 .pm-bmeta b{ font-weight:700; color:var(--ink-500); }
.pm-v3 .pm-bmeta .sep{ color:#D3CDC2; }
.pm-v3 .pm-bmeta .state{ display:inline-flex; align-items:center; gap:3px; font-weight:600; }
.pm-v3 .pm-bmeta .state.is-read{ color:var(--sage-ink); }
.pm-v3 .pm-bmeta .state svg{ width:11px; height:11px; }

/* ══ 7. RESPONSIVE ════════════════════════════════════════════════════════ */

@media(max-width:1280px){
  .pm-v3 .pm-panel{ grid-template-columns:236px minmax(0,1fr) 272px; }
}
/* Sous 1100 px la colonne de contexte disparaît (règle du design system) : le
   tiroir reprend son rôle, et le bouton du fil redevient le seul accès. */
@media(max-width:1100px){
  .pm-v3 .pm-panel{ grid-template-columns:250px minmax(0,1fr); }
  .pm-v3 .pm-ctx-col{ display:none; }
  .pm-v3 .pmx-open{ display:inline-flex; }
}
@media(max-width:860px){
  .pm-main-v3{ padding-top:88px !important; }
  .pm-v3 .pm-panel{ grid-template-columns:minmax(0,1fr); height:auto; max-height:none; }
  .pm-v3 .pm-side{ max-height:300px; border-right:0; border-bottom:1px solid var(--line); }
  .pm-v3 .pm-thread-col{ height:74vh; min-height:440px; }
  .pm-v3 .pm-offer-v3-body{ align-items:flex-start; }
  .pm-v3 .pm-offer-v3-acts{ width:100%; }
  .pm-v3 .pm-offer-v3-acts .btn-gold{ flex:1 1 auto; justify-content:center; }
  .pm-v3 .pm-quick-menu{ width:calc(100vw - 64px); max-width:290px; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   V3.1 — le socle de contexte, la carte d'offre allégée, le résumé recruteur
   Décisions validées en wireframe (WF2d / WF1d) :
   · l'offre quitte le fil et se pose sur un socle, sous l'entête ;
   · le séparateur légendé vit DANS le socle, collé à son bord bas — dans le
     fil il défilerait avec les messages et la frontière disparaîtrait au
     deuxième écran ;
   · la carte garde ses 14 informations, mais perd le bandeau plein sombre,
     les cadres emboîtés et l'illustration de 92 × 80.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Le socle ────────────────────────────────────────────────────────────── */
.pm-v3 .pm-stage{
  flex:0 0 auto; background:#fff; padding:11px 16px 0;
  border-bottom:1px solid var(--line);
}
.pm-v3 .pm-stage-h{
  font-size:9px; font-weight:800; letter-spacing:.15em; text-transform:uppercase;
  color:var(--ink-400); margin-bottom:8px;
}
.pm-v3 .pm-startsep{ display:flex; align-items:center; gap:11px; padding:13px 0 10px; }
.pm-v3 .pm-startsep i{ flex:1; height:1px; background:var(--pmx-line-soft); }
.pm-v3 .pm-startsep span{
  font-size:9.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  color:var(--ink-400); white-space:nowrap;
}
/* L'ombre passe du socle au fil : interne, douce, et elle suit le scroll. */
.pm-v3 .pm-stage + .pm-thread{ box-shadow:inset 0 5px 7px -6px rgba(26,22,20,.22); }

/* ── La carte d'offre (D1) ───────────────────────────────────────────────── */
.pm-v3 .pm-offer-d1{
  background:#fff; border:1px solid #E4DED2; border-left:3px solid var(--gold-400);
  border-radius:10px; overflow:hidden;
}
.pm-v3 .pm-offer-d1 .od-top{
  display:flex; align-items:center; gap:9px; flex-wrap:wrap;
  padding:7px 13px; background:#FCFAF4; border-bottom:1px solid #F1ECDF;
}
.pm-v3 .pm-offer-d1 .od-lbl{
  font-size:9.5px; font-weight:800; letter-spacing:.12em; text-transform:uppercase;
  color:var(--gold-800);
}
.pm-v3 .pm-offer-d1 .od-lock{
  display:inline-flex; align-items:center; gap:5px; font-size:10.5px; color:var(--ink-400);
}
.pm-v3 .pm-offer-d1 .od-lock svg{ width:11px; height:11px; }
.pm-v3 .pm-offer-d1 .od-dead{
  margin-left:auto; font-size:10px; font-weight:800; letter-spacing:.04em;
  text-transform:uppercase; color:var(--gold-800);
}
.pm-v3 .pm-offer-d1.is-urgent .od-dead{ color:var(--danger); }

.pm-v3 .pm-offer-d1 .od-grid{ display:grid; grid-template-columns:minmax(0,1fr) 1px minmax(0,1fr); }
.pm-v3 .pm-offer-d1 .od-rule{ background:#F1ECDF; }
.pm-v3 .pm-offer-d1 .od-l{ padding:11px 13px; min-width:0; }
.pm-v3 .pm-offer-d1 .od-r{ padding:11px 13px; display:flex; flex-direction:column; gap:10px; min-width:0; }
.pm-v3 .pm-offer-d1 .od-role{ font-size:13.5px; font-weight:800; color:var(--ink-900); letter-spacing:-.01em; }
.pm-v3 .pm-offer-d1 .od-pay{ margin-top:3px; font-size:17px; font-weight:800; line-height:1.1; color:var(--ink-900); letter-spacing:-.015em; }
.pm-v3 .pm-offer-d1 .od-pay span{ margin-left:5px; font-size:10.5px; font-weight:600; color:var(--ink-500); letter-spacing:0; }
.pm-v3 .pm-offer-d1 .od-facts{ margin-top:7px; font-size:10.5px; color:var(--ink-500); }

.pm-v3 .pm-offer-d1 .od-item{ display:flex; align-items:flex-start; gap:9px; }
.pm-v3 .pm-offer-d1 .od-ic{
  width:16px; height:16px; border-radius:5px; flex:0 0 auto; margin-top:1px;
  display:flex; align-items:center; justify-content:center;
  background:#F4EFE2; color:var(--gold-800);
}
.pm-v3 .pm-offer-d1 .od-ic svg{ width:10px; height:10px; }
.pm-v3 .pm-offer-d1 .od-t{ font-size:11.5px; font-weight:700; color:var(--ink-900); }
.pm-v3 .pm-offer-d1 .od-d{ font-size:10.5px; color:var(--ink-400); line-height:1.45; margin-top:1px; }
.pm-v3 .pm-offer-d1 .od-rail{ height:3px; border-radius:2px; background:#EDE7DA; overflow:hidden; margin-top:7px; }
.pm-v3 .pm-offer-d1 .od-rail i{ display:block; height:100%; background:var(--amber); }
.pm-v3 .pm-offer-d1.is-urgent .od-rail i{ background:var(--danger); }
.pm-v3 .pm-offer-d1 .od-link{
  font-family:inherit; font-size:11.5px; font-weight:700; color:var(--gold-800);
  background:none; border:0; padding:0; cursor:pointer; text-align:left;
}
.pm-v3 .pm-offer-d1 .od-link:hover{ text-decoration:underline; text-underline-offset:3px; }

.pm-v3 .pm-offer-d1 .od-foot{
  display:flex; align-items:center; gap:12px; flex-wrap:wrap;
  padding:9px 13px; border-top:1px solid #F1ECDF;
}
.pm-v3 .pm-offer-d1 .od-foot .btn{ font-size:11.5px; padding:7px 14px; border-radius:9px; margin-bottom:0; }
.pm-v3 .pm-offer-d1 .od-foot .btn-gold{ color:#1A1614; text-shadow:none; font-weight:800; }
.pm-v3 .pm-offer-d1 .od-decline{
  font-family:inherit; font-size:11.5px; font-weight:600; color:var(--ink-500);
  background:none; border:0; cursor:pointer; text-decoration:underline; text-underline-offset:3px;
}
.pm-v3 .pm-offer-d1 .od-decline:hover{ color:var(--ink-900); }
.pm-v3 .pm-offer-d1 .od-note{ flex:1 1 100%; order:3; font-size:10px; color:var(--ink-400); margin:0; }
.pm-v3 .pm-offer-d1 .pm-decline-confirm[hidden]{ display:none; }
.pm-v3 .pm-offer-d1 .pm-decline-confirm{
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  padding:10px 13px; border-top:1px solid #F1ECDF; background:#FBF1EF;
}
.pm-v3 .pm-offer-d1 .pm-decline-confirm p{ flex:1 1 240px; margin:0; font-size:11.5px; color:var(--ink-700); }

/* ── La barre de rappel : même socle, une fois la décision passée ────────── */
.pm-v3 .pm-ctxbar{
  display:flex; align-items:center; gap:9px; flex-wrap:wrap;
  background:#fff; border:1px solid #E4DED2; border-left:3px solid var(--gold-400);
  border-radius:9px; padding:8px 12px;
}
.pm-v3 .pm-ctxbar .cb-lbl{
  font-size:9.5px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--gold-800);
}
.pm-v3 .pm-ctxbar .cb-role{ font-size:12.5px; font-weight:800; color:var(--ink-900); }
.pm-v3 .pm-ctxbar .cb-pay{ font-size:12.5px; font-weight:800; color:var(--ink-900); }
.pm-v3 .pm-ctxbar .cb-x{ font-size:11px; color:var(--ink-400); }
.pm-v3 .pm-ctxbar .od-link{ margin-left:auto; }
.pm-v3 .pm-ctxbar.is-sage{ border-left-color:var(--sage); }
.pm-v3 .pm-ctxbar.is-sage .cb-lbl{ color:var(--sage-ink); }
.pm-v3 .pm-ctxbar.is-muted{ border-left-color:#C9C3B7; }
.pm-v3 .pm-ctxbar.is-muted .cb-lbl{ color:var(--ink-500); }

@media(max-width:860px){
  .pm-v3 .pm-offer-d1 .od-grid{ grid-template-columns:minmax(0,1fr); }
  .pm-v3 .pm-offer-d1 .od-rule{ height:1px; }
  .pm-v3 .pm-offer-d1 .od-r{ padding-top:0; }
}

/* ═══ RECRUTEUR ═══════════════════════════════════════════════════════════ */

.pm-v3 .pmr-panel{ grid-template-columns:320px minmax(0,1fr); }

/* ── Colonne de gauche : groupes par recrutement ─────────────────────────── */
.pm-v3 .pmr-seg{
  display:flex; margin:8px 10px 6px; border:1px solid var(--pmx-line);
  border-radius:8px; overflow:hidden; background:#fff;
}
.pm-v3 .pmr-seg button{
  flex:1; font-family:inherit; font-size:10.5px; font-weight:600; padding:5px 0;
  border:0; background:#fff; color:var(--ink-500); cursor:pointer;
}
.pm-v3 .pmr-seg button.on{ background:var(--ink); color:#F5F1EA; font-weight:700; }

.pm-v3 .pmr-grp{
  margin:0 0 8px; border:1px solid var(--pmx-line-soft); border-radius:10px;
  background:#fff; overflow:hidden;
}
.pm-v3 .pmr-grp-h{
  display:flex; align-items:center; gap:8px; width:100%; text-align:left;
  padding:8px 10px; background:var(--surface-2); border:0; border-bottom:1px solid var(--pmx-line-soft);
  font-family:inherit; cursor:pointer;
}
.pm-v3 .pmr-caret{ font-size:9px; color:var(--ink-400); transition:transform .14s ease; }
.pm-v3 .pmr-grp.is-closed .pmr-caret{ transform:rotate(-90deg); }
.pm-v3 .pmr-grp-t{
  flex:1; min-width:0; font-size:11.5px; font-weight:700; color:var(--ink-900);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.pm-v3 .pmr-grp-n{
  font-size:9.5px; font-weight:700; color:var(--ink-500); background:#fff;
  border:1px solid var(--pmx-line); border-radius:99px; padding:0 6px; flex:0 0 auto;
}
.pm-v3 .pmr-grp-sub{
  font-size:9.5px; color:var(--ink-400); padding:5px 10px 6px;
  background:var(--surface-2); border-bottom:1px solid var(--pmx-line-soft);
}
.pm-v3 .pmr-grp.is-closed .pmr-grp-sub,
.pm-v3 .pmr-grp.is-closed .pm-row{ display:none; }
.pm-v3 .pmr-grp .pm-row{ border-radius:0; border-bottom:1px solid var(--pmx-line-soft); padding:8px 10px; }
.pm-v3 .pmr-grp .pm-row:last-child{ border-bottom:0; }
.pm-v3 .pmr-grp .pm-row.active{ background:var(--surface-2); box-shadow:none; border-color:transparent;
  border-bottom-color:var(--pmx-line-soft); border-left:2px solid var(--gold-400); padding-left:8px; }
/* #4749 (Kevin 09/10) — « Tous messages » et « Non lus » : UNE liste, dans
   l'ordre du serveur (épinglés puis dernier échange). Les boîtes de groupe
   s'effacent (`display:contents`) et chaque ligne prend son rang (`--rank`,
   posé par `_v3_side`). Avant, les en-têtes étaient masqués mais les fils
   restaient rangés par annonce : 08:47, 05:37, 11/10, puis 07:37. « Par poste »
   n'est pas touché. */
.pm-v3 .pm-list.is-flat{ display:flex; flex-direction:column; }
.pm-v3 .pm-list.is-flat > *{ flex-shrink:0; order:100000; }
.pm-v3 .pm-list.is-flat > .pmr-grp{ display:contents; }
.pm-v3 .pm-list.is-flat .pm-row{ flex-shrink:0; order:var(--rank, 0); border-left:1px solid var(--pmx-line-soft); border-right:1px solid var(--pmx-line-soft); }
.pm-v3 .pm-list.is-flat .pm-row[style*="--rank: 0"]{ border-top:1px solid var(--pmx-line-soft); border-radius:10px 10px 0 0; }
.pm-v3 .pm-list.is-flat .pm-row.active{ border-left:2px solid var(--gold-400); }

/* ── Colonne de droite : le résumé ───────────────────────────────────────── */
.pm-v3 .pmr-home{ display:none; flex-direction:column; height:100%; overflow-y:auto; background:#fff; }
.pm-v3 .pmr-home.active{ display:flex; }
/* Recette Loïc 28/09 — la vue d'ensemble REMPLACE le fil, comme dans la
   maquette : le fil ouvert restait rendu dessous (en-tête, actions, composeur
   visibles sous les compteurs). Le fil reste dans la page, prêt pour
   « Conversations ». */
.pm-v3 .pmr-home.active ~ .pm-conv{ display:none; }
.pm-v3 .pmr-home-in{ padding:16px 18px 22px; max-width:720px; }
.pm-v3 .pmr-hi{ font-family:'Playfair Display',serif; font-size:19px; font-weight:700; letter-spacing:-.3px; color:var(--ink-900); }
.pm-v3 .pmr-hs{ margin-top:3px; font-size:12px; color:var(--ink-500); }
/* #4256 (Tatianna 01/10) — le talent non vérifié : un bandeau sous la
   salutation, ton « action à faire » (ambre, comme le bouton de l'encart
   d'identité et les pastilles « à traiter » du tableau de bord). */
.pm-v3 .pmr-idv{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;
  margin:12px 0 10px; padding:12px 14px; border-radius:10px;
  background:var(--amber-50); border:1px solid var(--amber-200); }
.pm-v3 .pmr-idv-txt{ margin:0; flex:1 1 240px; font-size:13px; font-weight:600; line-height:1.45; color:var(--amber-strong); }
.pm-v3 .pmr-idv form{ margin:0; }
.pm-v3 .pmr-idv-cta{ display:inline-flex; align-items:center; height:34px; padding:0 14px; border:0; border-radius:8px;
  background:var(--amber-strong); color:var(--on-gold); font-family:inherit; font-size:12px; font-weight:700;
  text-decoration:none; cursor:pointer; white-space:nowrap; transition:background .14s; }
.pm-v3 .pmr-idv-cta:hover{ background:var(--amber); }

.pm-v3 .pmr-counts{ display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:15px 0 20px; }
.pm-v3 .pmr-count{
  border:1px solid var(--pmx-line); border-radius:10px; padding:10px 12px 11px;
  background:#fff; text-align:left; font-family:inherit; cursor:pointer; transition:.14s;
}
.pm-v3 .pmr-count:hover{ border-color:#D6CFC0; }
.pm-v3 .pmr-count.on{ border-color:var(--gold-400); background:#FDFBF5; }
.pm-v3 .pmr-count .n{ font-size:23px; font-weight:800; line-height:1; color:var(--ink-900); letter-spacing:-.02em; }
.pm-v3 .pmr-count .l{ margin-top:5px; font-size:10.5px; color:var(--ink-500); line-height:1.3; }
.pm-v3 .pmr-count.is-warn .n{ color:var(--danger); }

.pm-v3 .pmr-sec{
  display:flex; align-items:center; gap:8px; margin:0 0 8px;
  font-size:9.5px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-400);
}
.pm-v3 .pmr-sec .more{
  margin-left:auto; font-family:inherit; font-size:10.5px; font-weight:600; letter-spacing:0;
  text-transform:none; color:var(--gold-800); background:none; border:0; cursor:pointer;
  text-decoration:underline; text-underline-offset:2px;
}

.pm-v3 .pmr-list{ border:1px solid var(--pmx-line); border-radius:10px; overflow:hidden; margin-bottom:19px; }
.pm-v3 .pmr-row{
  display:flex; align-items:center; gap:10px; padding:9px 12px;
  border-bottom:1px solid var(--pmx-line-soft);
}
.pm-v3 .pmr-row:last-child{ border-bottom:0; }
.pm-v3 .pmr-av{
  width:26px; height:26px; border-radius:50%; flex:0 0 auto; overflow:hidden;
  display:flex; align-items:center; justify-content:center;
  font-family:'Playfair Display',serif; font-size:10.5px; font-weight:700;
  color:var(--ink-500); background:#EFEAE1; border:1px solid #E4DED2;
}
.pm-v3 .pmr-av img{ width:100%; height:100%; object-fit:cover; display:block; }
.pm-v3 .pmr-b{ flex:1; min-width:0; }
.pm-v3 .pmr-t{ font-size:11.5px; font-weight:700; color:var(--ink-900); }
.pm-v3 .pmr-d{ font-size:10.5px; color:var(--ink-500); margin-top:1px; }
.pm-v3 .pmr-d b{ color:var(--ink-900); font-weight:700; }
.pm-v3 .pmr-w{
  flex:0 0 auto; font-size:9.5px; color:var(--ink-500);
  border:1px solid var(--pmx-line); border-radius:99px; padding:2px 8px;
}
.pm-v3 .pmr-w.is-late{ border-color:#E3C9C2; color:var(--danger); font-weight:700; }
.pm-v3 .pmr-open{
  flex:0 0 auto; font-family:inherit; font-size:10.5px; font-weight:700;
  border:1px solid transparent; border-radius:8px; padding:5px 11px; cursor:pointer;
  background:var(--gold-btn); color:#1A1614;
}
.pm-v3 .pmr-open.ghost{ background:#fff; border-color:var(--pmx-line); color:var(--ink-700); }
.pm-v3 .pmr-open.ghost:hover{ border-color:#D6CFC0; color:var(--ink-900); }

/* agenda */
.pm-v3 .pmr-date{ width:36px; text-align:center; flex:0 0 auto; }
.pm-v3 .pmr-date .dd{ display:block; font-size:16px; font-weight:800; line-height:1; color:var(--ink-900); }
.pm-v3 .pmr-date .mm{ display:block; font-size:8.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-400); margin-top:2px; }
.pm-v3 .pmr-kind{
  flex:0 0 auto; font-size:8.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase;
  border:1px solid var(--pmx-line); border-radius:99px; padding:2px 8px; color:var(--ink-500);
}
.pm-v3 .pmr-kind.is-essai{ border-color:#DCE6DE; background:var(--sage-soft); color:var(--sage-ink); }

/* repli « par recrutement » */
.pm-v3 .pmr-more{
  display:flex; align-items:center; gap:8px; width:100%; text-align:left;
  padding:9px 12px; background:var(--surface-2); border:0; border-top:1px solid var(--pmx-line-soft);
  font-family:inherit; font-size:10.5px; color:var(--ink-500); cursor:pointer;
}
.pm-v3 .pmr-more:hover{ color:var(--ink-900); }
.pm-v3 .pmr-more b{ color:var(--ink-900); font-weight:700; }
.pm-v3 .pmr-hidden[hidden]{ display:none; }

/* retour au résumé depuis une conversation */
.pm-v3 .pmr-back{
  display:inline-flex; align-items:center; gap:6px; margin:0 0 9px;
  font-family:inherit; font-size:10.5px; font-weight:600; color:var(--ink-500);
  background:none; border:0; padding:0; cursor:pointer;
}
.pm-v3 .pmr-back:hover{ color:var(--gold-800); }
.pm-v3 .pmr-back svg{ width:12px; height:12px; }

@media(max-width:1000px){
  .pm-v3 .pmr-panel{ grid-template-columns:270px minmax(0,1fr); }
  .pm-v3 .pmr-counts{ grid-template-columns:1fr; }
}
@media(max-width:860px){
  .pm-v3 .pmr-panel{ grid-template-columns:minmax(0,1fr); }
}

/* ══ Volet droit — design des apercus (bandeau dore, cles, frise, fiabilite) ══
   Ferme par defaut ; l'onglet « Contexte » de l'entete du fil l'ouvre. Trois
   panneaux separes (liste, fil, volet), chacun sa carte. */
.pm-v3 .pm-panel{
  grid-template-columns:258px minmax(0,1fr); gap:16px;
  background:none; border:0; box-shadow:none; overflow:visible; border-radius:0;
}
.pm-v3.has-ctx .pm-panel{ grid-template-columns:258px minmax(0,1fr) 320px; }
.pm-v3 .pm-side, .pm-v3 .pm-thread-col, .pm-v3 .pm-ctx-col{
  background:#fff; border:1px solid var(--line); border-radius:14px; overflow:hidden;
  box-shadow:0 2px 14px rgba(26,22,20,.05); min-height:0;
}
.pm-v3 .pm-ctx-col{ display:none; background:#FCFBF9; border-left:1px solid var(--line); flex-direction:column; }
.pm-v3.has-ctx .pm-ctx-col{ display:flex; }
.pm-v3 .pmx{ display:none; flex-direction:column; overflow-y:auto; height:100%; }
.pm-v3 .pmx.active{ display:flex; }

.pm-v3 .pmx-tab{
  display:inline-flex; align-items:center; gap:6px; margin-left:8px; flex:0 0 auto;
  padding:5px 10px; border-radius:999px; border:1px solid var(--line); background:#fff;
  font-family:inherit; font-size:11px; font-weight:700; color:var(--ink-700); cursor:pointer; transition:.14s;
}
.pm-v3 .pmx-tab:hover{ border-color:var(--gold-400); color:var(--gold-800); }
.pm-v3 .pmx-tab[aria-expanded="true"]{ background:var(--head-grad); border-color:var(--cream-line); color:var(--gold-800); }

.pm-v3 .pmx-hero{
  position:relative; flex:0 0 auto; text-align:center; padding:18px 18px 16px;
  background:var(--head-grad); border-bottom:1px solid var(--gold-100);
}
.pm-v3 .pmx-close{
  position:absolute; top:10px; right:10px; width:26px; height:26px; border-radius:8px;
  border:1px solid var(--cream-line); background:#fff; color:var(--ink-700);
  font-size:16px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; padding:0;
}
.pm-v3 .pmx-close:hover{ color:var(--ink-900); border-color:var(--gold-400); }
.pm-v3 .pmx-hero-av{
  width:58px; height:58px; border-radius:50%; margin:0 auto 10px; overflow:hidden;
  display:flex; align-items:center; justify-content:center;
  font-family:'Playfair Display',serif; font-weight:700; font-size:20px; color:var(--gold-800);
  background:#fff; box-shadow:0 0 0 2.5px var(--gold-primary), 0 2px 8px rgba(0,0,0,.12);
}
.pm-v3 .pmx-hero-av img{ width:100%; height:100%; object-fit:cover; }
.pm-v3 .pmx-hero-av.masked{ background:linear-gradient(155deg,#EFEAE1,#DDD5C7); color:var(--n-warm-550); }
.pm-v3 .pmx-hero-av svg{ width:24px; height:24px; }
.pm-v3 .pmx-hero-nm{ font-size:16px; font-weight:800; color:var(--ink-900); }
.pm-v3 .pmx-hero-q{ font-family:'Playfair Display',serif; font-style:italic; font-size:12.5px; color:var(--gold-600); margin-top:2px; }
.pm-v3 .pmx-hero-pill{
  display:inline-flex; align-items:center; gap:6px; margin-top:9px;
  font-size:10.5px; font-weight:800; color:var(--gold-800);
  background:#fff; border:1px solid var(--cream-line); border-radius:999px; padding:4px 11px;
}
.pm-v3 .pmx-hero-pill .rel-score{ font-weight:700; color:var(--ink-500); }
.pm-v3 .pmx-hero-pill .tsm-badge{ border:0; padding:0; background:none; }

.pm-v3 .pmx-body{ padding:16px 18px 22px; }
.pm-v3 .pmx-sec{ font-size:9.5px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-400); margin:16px 0 9px; }
.pm-v3 .pmx-body > .pmx-sec:first-child, .pm-v3 .pmx-body > .pm-locknote + .pmx-sec{ margin-top:0; }
.pm-v3 .pmx-body > .pm-locknote{ margin-bottom:16px; }
.pm-v3 .pmx-sec-row{ display:flex; align-items:center; justify-content:space-between; gap:8px; margin:16px 0 9px; }
.pm-v3 .pmx-sec-row .pmx-sec{ margin:0; white-space:nowrap; }
.pm-v3 .pmx-private{
  display:inline-flex; align-items:center; gap:5px; font-size:9px; font-weight:800; letter-spacing:.06em;
  text-transform:uppercase; color:var(--ink-500); background:#F3F1ED; border:1px solid var(--line);
  border-radius:999px; padding:3px 8px; cursor:help;
}
.pm-v3 .pmx-private svg{ width:11px; height:11px; }
.pm-v3 .pmx-poste{ margin-bottom:9px; }
.pm-v3 .pmx-poste .rl{ font-size:13px; font-weight:800; color:var(--ink-900); }
.pm-v3 .pmx-poste .vn{ font-size:11px; color:var(--gold-700); font-weight:600; }
.pm-v3 .pm-reliability{ gap:10px; align-items:baseline; }
.pm-v3 .pm-reliability b{ white-space:nowrap; text-align:right; }
.pm-v3 .pm-reliability b small{ font-weight:500; color:var(--ink-400); font-size:10.5px; margin-left:5px; }
.pm-v3 .pmx-autonote{
  display:flex; gap:9px; align-items:flex-start; padding:11px 13px; border-radius:11px;
  background:linear-gradient(180deg,#FFFDF7,#FBF3DF); border:1px solid var(--cream-line);
}
.pm-v3 .pmx-autonote svg{ width:15px; height:15px; color:var(--gold-700); flex:0 0 auto; margin-top:1px; }
.pm-v3 .pmx-autonote p{ margin:0; font-size:11.5px; line-height:1.5; color:var(--ink-700); }
.pm-v3 .pmx-autonote b{ color:var(--gold-800); }
.pm-v3 .pmx-block--flat{ padding:0; border:0; }
.pm-v3 .pmx-link{ margin-top:10px; }
.pm-v3 .pmx-cta{
  display:flex; align-items:center; justify-content:center; gap:7px; width:100%; margin-top:18px;
  padding:9px 12px; border-radius:10px; border:1px solid var(--line); background:#fff;
  font-family:inherit; font-size:12px; font-weight:700; color:var(--ink-900); cursor:pointer; text-decoration:none; transition:.14s;
}
.pm-v3 .pmx-cta:hover{ border-color:var(--gold-400); color:var(--gold-800); }
@media(max-width:1100px){
  .pm-v3.has-ctx .pm-panel{ grid-template-columns:250px minmax(0,1fr); }
  .pm-v3.has-ctx .pm-ctx-col{ display:none; }
  .pm-v3 .pmx-tab{ display:none; }
}
@media(max-width:860px){
  .pm-v3 .pm-panel, .pm-v3.has-ctx .pm-panel{ grid-template-columns:minmax(0,1fr); }
}

/* ══ GO 11/09 — declinaison avec motif ══════════════════════════════════════ */
.pm-v3 .pm-offer-d1 .pm-decline-v3{ display:block; padding:12px 14px 13px; }

/* Correctif du 22/09 — LE MÊME PANNEAU, DANS LE BANDEAU D'OFFRE DU TALENT.
   Les deux règles qui mettent ce panneau en page (celle du dessus et son repli
   à une colonne plus bas) sont scopées `.pm-offer-d1`, la carte d'offre posée
   dans le fil. Le bandeau collé en haut du fil (#3285, `.pm-offer-banner`) n'a
   pas cet ancêtre : son panneau restait en `display:flex` avec un <form> en
   `flex:0 0 auto` (talent_messages.css) et une grille de motifs à DEUX
   colonnes. Un <form> qui ne rétrécit pas autour d'une grille à deux colonnes
   se dimensionne sur son contenu : mesuré à 706 px de bord droit dans une
   fenêtre de 390 px, c'est-à-dire « Oui, décliner » et la moitié des motifs
   hors de l'écran. Un talent ne pouvait pas refuser une proposition depuis son
   téléphone. Le test le mesurait déjà (#3285) ; il visait depuis le 21/09 un
   fil de candidature, qui ne porte aucun bandeau, et ne le voyait plus. */
.pm-v3 .pm-offer-banner .pm-decline-confirm.pm-decline-v3{ display:block; padding:12px 14px 13px; }
.pm-v3 .pm-offer-banner .pm-decline-confirm.pm-decline-v3 > form{
  flex:1 1 100%; width:100%; min-width:0; margin:0;
}
.pm-v3 .pm-decline-v3 .dc-title{ margin:0 0 9px; font-size:12.5px; font-weight:800; color:var(--ink-900); }
.pm-v3 .pm-decline-v3 .dc-title span{ display:block; margin-top:2px; font-size:11px; font-weight:500; color:var(--ink-500); }
.pm-v3 .pm-decline-v3 .dc-reasons{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px 8px; }
.pm-v3 .pm-decline-v3 .dc-reason{
  display:flex; align-items:center; gap:8px; padding:7px 10px; border-radius:9px; cursor:pointer;
  background:#fff; border:1px solid #EAD9D4; font-size:11.5px; font-weight:600; color:var(--ink-700); transition:.14s;
}
.pm-v3 .pm-decline-v3 .dc-reason:hover{ border-color:#D9B7AE; }
.pm-v3 .pm-decline-v3 .dc-reason input{ accent-color:#B23A2E; margin:0; flex:0 0 auto; }
.pm-v3 .pm-decline-v3 .dc-reason.is-on{ border-color:#B23A2E; background:#FDF6F4; color:var(--ink-900); }
.pm-v3 .pm-decline-v3 .dc-free{
  display:block; width:100%; margin-top:8px; resize:vertical; font-family:inherit; font-size:12px; line-height:1.5;
  padding:8px 10px; border-radius:9px; border:1px solid #EAD9D4; background:#fff; color:var(--ink-900); outline:none;
}
.pm-v3 .pm-decline-v3 .dc-free[hidden]{ display:none; }
.pm-v3 .pm-decline-v3 .dc-keep{ display:flex; align-items:center; gap:8px; margin-top:10px; font-size:11.5px; color:var(--ink-700); cursor:pointer; }
.pm-v3 .pm-decline-v3 .dc-keep input{ accent-color:var(--gold-700); margin:0; }
.pm-v3 .pm-decline-v3 .dc-preview{
  margin-top:10px; padding:9px 12px; border-radius:9px; background:#fff; border:1px dashed #D9B7AE;
}
.pm-v3 .pm-decline-v3 .dc-preview[hidden]{ display:none; }
.pm-v3 .pm-decline-v3 .dc-preview b{ display:block; font-size:9.5px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:#8C2F1B; }
.pm-v3 .pm-decline-v3 .dc-preview p{ margin:4px 0 0; font-size:12px; line-height:1.5; color:var(--ink-700); }
.pm-v3 .pm-decline-v3 .dc-acts{ display:flex; justify-content:flex-end; gap:8px; margin-top:11px; }
.pm-v3 .pm-decline-v3 .btn[disabled]{ opacity:.45; cursor:not-allowed; }
.pm-v3 .pm-row .pm-badge.st-neutral{ color:var(--ink-500); }

/* ══ GO 11/09 — volet ouvert par defaut, fleche de repli, languette ═════════ */
.pm-v3 .pm-thread-col{ position:relative; }
.pm-v3 .pmx-tab svg{ transition:transform .16s ease; }
.pm-v3 .pmx-handle{
  position:absolute; right:0; top:50%; transform:translateY(-50%); z-index:3;
  display:none; align-items:center; gap:5px; padding:8px 7px 8px 6px;
  border:1px solid var(--cream-line); border-right:0; border-radius:9px 0 0 9px;
  background:var(--head-grad); color:var(--gold-800); font-family:inherit; font-size:10px; font-weight:800;
  letter-spacing:.06em; text-transform:uppercase; cursor:pointer; box-shadow:-2px 2px 8px rgba(26,22,20,.06);
  writing-mode:vertical-rl; transform:translateY(-50%) rotate(180deg);
}
.pm-v3 .pmx-handle svg{ transform:rotate(90deg); }
.pm-v3:not(.has-ctx) .pmx-handle{ display:inline-flex; }
.pm-v3 .pmr-home.active ~ .pmx-handle{ display:none; }
@media(max-width:1100px){ .pm-v3 .pmx-handle{ display:none !important; } }

/* ══ GO 11/09 — vue d'ensemble pleine largeur, colonne de gauche plus large ═ */
.pm-v3 .pm-panel{ grid-template-columns:310px minmax(0,1fr); }
.pm-v3.has-ctx .pm-panel{ grid-template-columns:310px minmax(0,1fr) 320px; }
.pm-v3 .pmr-panel{ grid-template-columns:340px minmax(0,1fr); }
.pm-v3.has-ctx .pmr-panel{ grid-template-columns:340px minmax(0,1fr) 320px; }
.pm-v3 .pmr-home-in{ max-width:none; padding:20px 28px 28px; }
.pm-v3 .pmr-counts{ max-width:820px; }
@media(max-width:1100px){
  .pm-v3 .pm-panel, .pm-v3.has-ctx .pm-panel{ grid-template-columns:270px minmax(0,1fr); }
  .pm-v3 .pmr-panel, .pm-v3.has-ctx .pmr-panel{ grid-template-columns:280px minmax(0,1fr); }
}
@media(max-width:860px){
  .pm-v3 .pm-panel, .pm-v3.has-ctx .pm-panel, .pm-v3 .pmr-panel, .pm-v3.has-ctx .pmr-panel{ grid-template-columns:minmax(0,1fr); }
}

/* ══ GO 2 · 3 — coupure carte / repere flottant / messages ═════════════════ */
.pm-v3 .pm-stage{ background:#FBFAF7; padding-bottom:14px; border-bottom:1px solid var(--line); position:relative; z-index:2; }
.pm-v3 .pm-startsep{ position:absolute; left:0; right:0; bottom:-12px; padding:0; justify-content:center; pointer-events:none; }
.pm-v3 .pm-startsep i{ display:none; }
.pm-v3 .pm-startsep span{
  background:#fff; border:1px solid var(--line); border-radius:999px; padding:4px 13px;
  box-shadow:0 1px 4px rgba(26,22,20,.06); color:var(--ink-500); letter-spacing:.09em;
}
.pm-v3 .pm-stage + .pm-thread{ box-shadow:none; padding-top:26px; }
.pm-v3 .pm-thread > .pe-card:first-child{ margin-top:0; }

/* ══ GO 2 · 5 — entrees « Proposer une etape » ═══════════════════════════ */
.pm-v3 .pmx-tab--etape{ background:var(--head-grad); border-color:var(--cream-line); color:var(--gold-800); }
.pm-v3 .pmx-tab--etape:hover{ filter:brightness(.98); }
.pm-v3 .pm-thread .pe-card{ align-self:stretch; max-width:none; flex:0 0 auto; }
.pm-v3 .pmx-cta--etape{ background:var(--head-grad); border-color:var(--cream-line); color:var(--gold-800); }

/* ══ GO 3 · 12 — colonne des conversations agrandissable ═══════════════════ */
.pm-v3 .pm-search--x{ display:flex; align-items:center; gap:8px; }
.pm-v3 .pm-search--x input{ flex:1 1 auto; }
.pm-v3 .pm-side-expand{
  order:2; flex:0 0 auto; display:inline-flex; align-items:center; gap:5px; height:30px; padding:0 8px;
  border-radius:8px; border:1px solid var(--line); background:#fff; color:var(--ink-500); cursor:pointer;
  font-family:inherit; font-size:11px; font-weight:700; transition:.14s;
}
.pm-v3 .pm-side-expand:hover{ border-color:var(--gold-400); color:var(--gold-800); }
.pm-v3 .pm-side-expand .is-close{ display:none; align-items:center; gap:5px; }
.pm-v3.side-wide .pm-side-expand .is-open{ display:none; }
.pm-v3.side-wide .pm-side-expand .is-close{ display:inline-flex; }
.pm-v3.side-wide .pm-panel, .pm-v3.side-wide.has-ctx .pm-panel, .pm-v3.side-wide .pmr-panel, .pm-v3.side-wide.has-ctx .pmr-panel{ grid-template-columns:minmax(0,1fr); }
.pm-v3.side-wide .pm-thread-col, .pm-v3.side-wide .pm-ctx-col{ display:none; }
.pm-v3.side-wide .pm-side{ border-right:1px solid var(--line); }
.pm-v3.side-wide .pm-search--x, .pm-v3.side-wide .pmr-seg, .pm-v3.side-wide .pm-tabs[data-tabs-panel], .pm-v3.side-wide .pm-tabs-toggle{ width:min(760px, calc(100% - 24px)); box-sizing:border-box; margin-left:auto; margin-right:auto; }
.pm-v3.side-wide .pm-tabs-toggle{ display:flex; }
.pm-v3.side-wide .pm-list{ padding:6px 12px 14px; }
.pm-v3.side-wide .pm-row{ padding:13px 18px; border-radius:12px; gap:14px; }
.pm-v3.side-wide .pm-av{ width:44px; height:44px; font-size:15px; }
.pm-v3.side-wide .pm-nm{ font-size:14px; }
.pm-v3.side-wide .pm-rl{ font-size:12.5px; }
.pm-v3.side-wide .pm-prev{ font-size:13px; white-space:normal; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; line-height:1.4; }
.pm-v3.side-wide .pm-time{ font-size:12px; }
.pm-v3.side-wide .pmr-grp-h{ padding:12px 16px 6px; }

/* ══ GO 3 · 13 — deux niveaux de filtres ══════════════════════════════════ */
.pm-v3 .pmr-seg button{ font-size:11.5px; padding:7px 4px; white-space:nowrap; }
.pm-v3 .pm-tabs-toggle{
  display:flex; align-items:center; gap:6px; width:calc(100% - 20px); margin:2px 10px 6px; padding:6px 10px;
  border-radius:8px; border:1px dashed var(--line); background:#fff; color:var(--ink-500);
  font-family:inherit; font-size:11px; font-weight:700; cursor:pointer; text-align:left;
}
.pm-v3 .pm-tabs-toggle:hover{ border-color:var(--gold-400); color:var(--gold-800); }
.pm-v3 .pm-tabs-toggle svg{ width:12px; height:12px; margin-left:auto; transition:transform .16s; }
.pm-v3 .pm-tabs-toggle[aria-expanded="true"] svg{ transform:rotate(180deg); }
.pm-v3 .pm-tabs-toggle[aria-expanded="true"]{ border-style:solid; border-bottom-left-radius:0; border-bottom-right-radius:0; margin-bottom:0; }
.pm-v3 .pm-tabs-cur{ font-weight:600; color:var(--gold-800); }
.pm-v3 .pm-tabs-cur:empty{ display:none; }
.pm-v3 .pm-tabs[data-tabs-panel]{ margin:0 10px 8px; padding:8px 8px 6px; border:1px solid var(--line); border-top:0; border-radius:0 0 8px 8px; background:#FCFBF9; }
.pm-v3 .pm-tabs[data-tabs-panel][hidden]{ display:none; }

/* ══ GO 3 · 14 — barre d'actions du fil ═══════════════════════════════════ */
.pm-v3 .pm-actbar{ display:flex; align-items:center; gap:7px; flex-wrap:wrap; padding:8px 14px 6px; border-top:1px solid var(--line); background:#fff; position:relative; }
.pm-v3 .pm-actbar + .pm-compose{ padding-top:6px; }
.pm-v3 .pm-actbtn.aug{ margin-left:auto; background:linear-gradient(180deg,#FFFDF7,#FBF3DF); border-color:var(--cream-line); color:var(--gold-800); padding-left:6px; }
.pm-v3 .pm-actbtn .ic-aug{ width:24px; height:24px; overflow:hidden; background:#fff; box-shadow:0 0 0 1.5px var(--gold-200); }
.pm-v3 .pm-actbtn .ic-aug img{ width:100%; height:100%; object-fit:cover; object-position:50% 40%; }
.pm-v3 .pm-augmenu{ position:absolute; right:14px; bottom:calc(100% + 6px); z-index:7; min-width:250px; padding:6px; border-radius:12px; background:#fff; border:1px solid var(--cream-line); box-shadow:0 12px 32px rgba(26,22,20,.16); }
.pm-v3 .pm-augmenu button{ display:flex; flex-direction:column; align-items:flex-start; gap:1px; width:100%; text-align:left; font-family:inherit; font-size:12.5px; font-weight:700; color:var(--ink-900); background:none; border:0; border-radius:8px; padding:8px 10px; cursor:pointer; }
.pm-v3 .pm-augmenu button small{ font-size:11px; font-weight:500; color:var(--ink-500); }
.pm-v3 .pm-augmenu button:hover{ background:#FBF6EA; }
.pm-v3 .pm-augmenu-h{ font-size:9.5px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--gold-800); padding:4px 10px 6px; }
.pm-v3 .pm-actbar-sep{ width:1px; height:20px; background:var(--line); margin:0 2px; }
.pm-v3 .pm-actbtn{
  display:inline-flex; align-items:center; gap:6px; padding:7px 12px; border-radius:999px;
  border:1px solid var(--line); background:#fff; font-family:inherit; font-size:12px; font-weight:700;
  color:var(--ink-700); cursor:pointer; transition:.14s; white-space:nowrap;
}
.pm-v3 .pm-actbtn:hover{ border-color:var(--gold-400); color:var(--gold-800); }
.pm-v3 .pm-actbtn.primary{ background:var(--head-grad); border-color:var(--cream-line); color:var(--gold-800); }
.pm-v3 .pm-actbtn.danger{ color:var(--red); }
.pm-v3 .pm-actbtn.danger:hover{ border-color:#E4B6AE; }
.pm-v3 .pm-actbtn.ghost{ color:var(--ink-500); font-weight:600; }
.pm-v3 .pm-actbtn[disabled]{ opacity:.45; cursor:not-allowed; }
.pm-v3 .pm-actbtn[disabled]:hover{ border-color:var(--line); color:var(--ink-700); }
.pm-v3 .pm-sys{ align-self:center; margin:4px 0; font-size:11px; font-weight:700; color:var(--sage-ink); background:var(--sage-soft); border:1px solid #DCE6DE; border-radius:999px; padding:4px 12px; }

/* ══ GO 4 · 15 — fleche d'agrandissement doree, visible, interactive ═══════ */
.pm-v3 .pm-side-expand{
  width:32px; height:32px; padding:0; justify-content:center; border-radius:50%;
  border:1px solid rgba(255,255,255,.6); color:#2B2210;
  background:var(--gold-fill);
  box-shadow:0 1px 0 rgba(255,255,255,.35) inset, 0 3px 10px rgba(207,160,78,.35);
  animation:pm-x-pulse 1.6s ease-out 1.2s 2;
}
.pm-v3 .pm-side-expand:hover{ transform:translateY(-1px); filter:brightness(1.04); color:#2B2210; border-color:rgba(255,255,255,.8); }
.pm-v3 .pm-side-expand svg{ position:static !important; left:auto; top:auto; width:15px !important; height:15px !important; color:inherit; }
.pm-v3.side-wide .pm-side-expand{ width:auto; padding:0 12px 0 9px; border-radius:999px; animation:none; }
.pm-v3 .pm-side-expand .is-open, .pm-v3 .pm-side-expand .is-close{ align-items:center; }
@keyframes pm-x-pulse{ 0%{ box-shadow:0 1px 0 rgba(255,255,255,.35) inset, 0 3px 10px rgba(207,160,78,.35), 0 0 0 0 rgba(196,165,89,.45); } 100%{ box-shadow:0 1px 0 rgba(255,255,255,.35) inset, 0 3px 10px rgba(207,160,78,.35), 0 0 0 12px rgba(196,165,89,0); } }
/* colonne de gauche +20 % */
.pm-v3 .pm-panel{ grid-template-columns:372px minmax(0,1fr); }
.pm-v3.has-ctx .pm-panel{ grid-template-columns:372px minmax(0,1fr) 320px; }
.pm-v3 .pmr-panel{ grid-template-columns:408px minmax(0,1fr); }
.pm-v3.has-ctx .pmr-panel{ grid-template-columns:408px minmax(0,1fr) 320px; }
@media(max-width:1100px){
  .pm-v3 .pm-panel, .pm-v3.has-ctx .pm-panel{ grid-template-columns:300px minmax(0,1fr); }
  .pm-v3 .pmr-panel, .pm-v3.has-ctx .pmr-panel{ grid-template-columns:320px minmax(0,1fr); }
}
@media(max-width:860px){
  .pm-v3 .pm-panel, .pm-v3.has-ctx .pm-panel, .pm-v3 .pmr-panel, .pm-v3.has-ctx .pmr-panel{ grid-template-columns:minmax(0,1fr); }
}

/* ══ GO 4 · 16 — la carte d'offre vient de la maison : 70 %, a gauche, avatar devant ═ */
.pm-v3 .pm-stage-row{ display:flex; align-items:flex-start; justify-content:flex-end; gap:10px; }   /* la carte vient de la maison : decalee a droite, le fil reste a gauche */
.pm-v3 .pm-stage-row > .pm-av{ width:32px; height:32px; flex:0 0 32px; margin-top:2px; }
.pm-v3 .pm-stage-card{ flex:0 1 70%; max-width:70%; min-width:0; }
.pm-v3 .pm-stage-card .pm-offer-d1 .od-grid{ grid-template-columns:minmax(0,1fr); }
.pm-v3 .pm-stage-card .pm-offer-d1 .od-rule{ height:1px; }
.pm-v3 .pm-stage-card .pm-offer-d1 .od-r{ padding-top:0; }
.pm-v3 .pm-stage-card .pm-decline-v3 .dc-reasons{ grid-template-columns:minmax(0,1fr); }
.pm-v3 .pm-stage-card .pm-ctxbar .od-link{ margin-left:auto; }
@media(max-width:1100px){ .pm-v3 .pm-stage-card{ flex-basis:100%; max-width:100%; } }

/* ══ GO 5 — reactions, reponse a un message, survol, icones, cartes compactes ═ */
.pm-v3 .pm-brow{ position:relative; }
.pm-v3 .pm-msgtools{
  position:absolute; top:-12px; right:8px; display:none; gap:2px; padding:2px; border-radius:999px;
  background:#fff; border:1px solid var(--line); box-shadow:0 2px 8px rgba(26,22,20,.10); z-index:3;
}
.pm-v3 .pm-brow.me .pm-msgtools{ right:auto; left:8px; }
.pm-v3 .pm-brow:hover .pm-msgtools, .pm-v3 .pm-brow.is-tools .pm-msgtools{ display:inline-flex; }
.pm-v3 .pm-msgtools button{ width:26px; height:26px; border-radius:50%; border:0; background:none; color:var(--ink-500); cursor:pointer; display:inline-flex; align-items:center; justify-content:center; padding:0; }
.pm-v3 .pm-msgtools button:hover{ background:#F3EFE6; color:var(--gold-800); }
.pm-v3 .pm-msgtools svg{ width:14px; height:14px; }
.pm-v3 .pm-picker{
  position:absolute; top:-46px; right:8px; display:flex; gap:2px; padding:4px 6px; border-radius:999px;
  background:#fff; border:1px solid var(--line); box-shadow:0 6px 18px rgba(26,22,20,.14); z-index:4;
}
.pm-v3 .pm-brow.me .pm-picker{ right:auto; left:8px; }
.pm-v3 .pm-picker button{ width:30px; height:30px; border:0; background:none; border-radius:50%; font-size:18px; line-height:1; cursor:pointer; transition:transform .12s; }
.pm-v3 .pm-picker button:hover{ transform:scale(1.25); background:#F7F3EA; }
.pm-v3 .pm-reacts{ display:flex; gap:4px; flex-wrap:wrap; margin-top:-6px; margin-bottom:6px; padding-left:38px; }
.pm-v3 .pm-brow.me + .pm-reacts{ justify-content:flex-end; padding-left:0; padding-right:4px; }
.pm-v3 .pm-react{ display:inline-flex; align-items:center; gap:4px; font-size:12px; padding:2px 8px; border-radius:999px; background:#fff; border:1px solid var(--line); cursor:pointer; font-family:inherit; color:var(--ink-700); }
.pm-v3 .pm-react.is-mine{ border-color:var(--gold-400); background:var(--cream); }
.pm-v3 .pm-react b{ font-size:11px; }
.pm-v3 .pm-quote{
  display:flex; flex-direction:column; gap:1px; margin:0 0 6px; padding:6px 9px; border-left:3px solid var(--gold-400);
  border-radius:8px; background:rgba(26,22,20,.05); font-size:11.5px; color:var(--ink-500); cursor:pointer;
}
.pm-v3 .pm-bub.me .pm-quote{ background:rgba(255,255,255,.55); }
.pm-v3 .pm-quote b{ font-size:11px; color:var(--ink-700); }
.pm-v3 .pm-quote span{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pm-v3 .pm-brow.is-flash .pm-bub{ animation:pm-flash 1.2s ease-out; }
@keyframes pm-flash{ 0%{ box-shadow:0 0 0 3px rgba(196,165,89,.55); } 100%{ box-shadow:0 0 0 3px rgba(196,165,89,0); } }
.pm-v3 .pm-replybar{ display:flex; align-items:center; gap:9px; margin:0 0 6px; padding:7px 10px; border-radius:10px; background:#F7F3EA; border-left:3px solid var(--gold-400); font-size:12px; }
.pm-v3 .pm-replybar[hidden]{ display:none; }
.pm-v3 .pm-replybar-ic{ color:var(--gold-800); display:inline-flex; }
.pm-v3 .pm-replybar-b{ flex:1; min-width:0; display:flex; flex-direction:column; }
.pm-v3 .pm-replybar-b b{ font-size:11px; color:var(--gold-800); }
.pm-v3 .pm-replybar-b span{ color:var(--ink-500); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pm-v3 .pm-replybar-x{ width:24px; height:24px; border:0; background:none; color:var(--ink-400); font-size:16px; cursor:pointer; border-radius:50%; }
.pm-v3 .pm-replybar-x:hover{ color:var(--ink-900); background:#fff; }

/* survol d'une conversation : la suite du dernier message */
.pm-v3 .pm-prev.is-full{ white-space:normal; overflow:visible; text-overflow:clip; display:block; line-height:1.4; }
.pm-v3 .pm-row{ transition:background .12s; }

/* icones colorees sur les actions */
.pm-v3 .pm-actbtn .ic{ width:20px; height:20px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; }
.pm-v3 .pm-actbtn .ic svg{ width:12px; height:12px; }
.pm-v3 .ic-entretien{ color:#2A5C8F; background:#EAF1F9; }
.pm-v3 .ic-essai{ color:#1B7A4E; background:#EAF4EE; }
.pm-v3 .ic-prise{ color:var(--gold-deep); background:#FBF1DD; }
.pm-v3 .ic-clore{ color:var(--ink-500); background:#F1EEE8; }
.pm-v3 .ic-ok{ color:#1B7A4E; background:#EAF4EE; }
.pm-v3 .ic-no{ color:var(--red); background:#FBECE9; }
.pm-v3 .pm-actbtn:hover .ic{ filter:saturate(1.3); }
.pm-v3 .pmr-kind{ color:#2A5C8F; background:#EAF1F9; border-color:#C9D9EC; }
.pm-v3 .pmr-kind.is-essai{ color:#1B7A4E; background:#EAF4EE; border-color:#BFE0CC; }
.pm-v3 .pm-badge.st-sage{ display:inline-flex; align-items:center; gap:4px; }

/* le volet : la proposition complete */
.pm-v3 .pm-ctx-col.is-etape-open .pmx:not(.pmx-etape){ display:none; }
.pm-v3 .pm-ctx-col.is-etape-open .pmx-etape{ display:flex; }
.pm-v3 .pmx-etape[hidden]{ display:none; }
.pm-v3 .pmx-etape-h{ display:flex; align-items:center; gap:10px; padding:10px 12px; border-bottom:1px solid var(--line); background:#fff; flex:0 0 auto; }
.pm-v3 .pmx-etape-back{ display:inline-flex; align-items:center; gap:4px; font-family:inherit; font-size:11.5px; font-weight:700; color:var(--ink-700); background:#fff; border:1px solid var(--line); border-radius:999px; padding:5px 10px 5px 7px; cursor:pointer; }
.pm-v3 .pmx-etape-back:hover{ border-color:var(--gold-400); color:var(--gold-800); }
.pm-v3 .pmx-etape-t{ font-family:'Playfair Display',serif; font-size:15px; font-weight:700; color:var(--ink-900); }
.pm-v3 .pmx-etape-body{ padding:12px; }
.pm-v3 .pmx-etape-body .pe-card{ margin:0; box-shadow:none; }
.pm-v3 .pm-thread .pe-card.is-compact{ align-self:flex-start; width:min(100%, 560px); }
.pm-v3 .pm-thread .pe-card.is-compact.is-me{ align-self:flex-end; }

/* ══ Ajouts Kevin (11/09 soir) — fond blanc, bulles contrastees, « … » de saisie, menu ⋯ et point d'attente ═ */
.pm-v3 .pm-thread, .pm-v3 .pm-side, .pm-v3 .pm-ctx-col, .pm-v3 .pm-stage, .pm-v3 .pmr-home, .pm-v3 .pm-list{ background:#fff; }
.pm-v3 .pm-bub.them{ background:#F1EFEA; border-color:#F1EFEA; color:var(--ink-900); }
.pm-v3 .pm-bub.me{ background:linear-gradient(135deg,#F3E6C3 0%,var(--gold-200) 100%); border-color:var(--gold-200); color:#2B2210; }
.pm-v3 .pm-bub.me .pm-bmeta, .pm-v3 .pm-bub.me .pm-bmeta b{ color:var(--gold-700); }
.pm-v3 .pm-bub.me .pm-bmeta .state.is-read{ color:#5D7128; }
/* saisie en cours : trois points qui respirent */
.pm-v3 .pm-typing{ display:flex; align-items:flex-end; gap:8px; }
.pm-v3 .pm-typing .pm-av{ width:28px; height:28px; }
.pm-v3 .pm-typing-bub{ display:inline-flex; align-items:center; gap:4px; padding:10px 13px; border-radius:14px; border-top-left-radius:4px; background:#F1EFEA; }
.pm-v3 .pm-typing-bub i, .pm-v3 .pm-prev-typing i{ width:6px; height:6px; border-radius:50%; background:var(--ink-400); display:inline-block; animation:pm-dot 1.2s infinite ease-in-out; }
.pm-v3 .pm-typing-bub i:nth-child(2), .pm-v3 .pm-prev-typing i:nth-child(2){ animation-delay:.2s; }
.pm-v3 .pm-typing-bub i:nth-child(3), .pm-v3 .pm-prev-typing i:nth-child(3){ animation-delay:.4s; }
@keyframes pm-dot{ 0%, 60%, 100%{ transform:translateY(0); opacity:.45; } 30%{ transform:translateY(-4px); opacity:1; } }
.pm-v3 .pm-prev-typing{ display:inline-flex; align-items:center; gap:3px; color:var(--gold-800); font-style:italic; font-weight:600; }
.pm-v3 .pm-prev-typing i{ width:5px; height:5px; background:var(--gold-700); }
/* la liste : point d'attente et menu au survol */
.pm-v3 .pm-row{ position:relative; }
.pm-v3 .pm-row .pm-l1{ padding-right:34px; }
.pm-v3 .pm-waitdot{ position:absolute; right:14px; top:50%; transform:translateY(-50%); width:10px; height:10px; border-radius:50%; background:var(--gold-primary); box-shadow:0 0 0 2px #fff; }
.pm-v3 .pm-row.is-unread .pm-waitdot{ background:#2A5C8F; }
.pm-v3 .pm-rowmenu{
  position:absolute; right:10px; top:50%; transform:translateY(-50%); width:30px; height:30px; border-radius:50%;
  border:1px solid var(--line); background:#fff; color:var(--ink-700); cursor:pointer; display:none; align-items:center; justify-content:center;
  box-shadow:0 2px 8px rgba(26,22,20,.10); z-index:2; padding:0;
}
.pm-v3 .pm-rowmenu svg{ width:16px; height:16px; }
.pm-v3 .pm-row:hover .pm-rowmenu, .pm-v3 .pm-row.is-menu .pm-rowmenu{ display:flex; }
.pm-v3 .pm-row:hover .pm-waitdot, .pm-v3 .pm-row.is-menu .pm-waitdot{ display:none; }
.pm-v3 .pm-rowmenu-list{
  position:absolute; right:10px; top:calc(50% + 20px); z-index:6; min-width:200px; padding:6px; border-radius:12px;
  background:#fff; border:1px solid var(--line); box-shadow:0 10px 30px rgba(26,22,20,.16);
}
.pm-v3 .pm-rowmenu-list button{ display:flex; align-items:center; gap:8px; width:100%; text-align:left; font-family:inherit; font-size:12.5px; font-weight:600; color:var(--ink-700); background:none; border:0; border-radius:8px; padding:8px 10px; cursor:pointer; }
.pm-v3 .pm-rowmenu-list button:hover{ background:#F7F3EA; color:var(--ink-900); }
.pm-v3 .pm-rowmenu-list button.danger{ color:var(--red); }
.pm-v3 .pm-row.is-pinned .pm-nm::before{ content:""; display:inline-block; width:8px; height:8px; border-radius:50%; background:var(--gold-400); margin-right:6px; vertical-align:middle; }
.pm-v3 .pm-row.is-muted-row{ opacity:.55; }

/* ══ Chantier 1 — une seule fiabilite, reciproque ═══════════════════════════ */
.pm-v3 .rel-chip--fact{ gap:6px; font-weight:600; color:var(--ink-500); }
.pm-v3 .rel-chip--fact b{ color:var(--ink-900); font-weight:800; }
.pm-v3 .rel-chip--fact .sep{ color:var(--ink-400); }
.pm-v3 .pmx-hero-pill .rel-dots, .pm-v3 .pm-thead .rel-dots{ display:none; }
.pm-v3 .pmx-mirror{ margin-top:12px; padding:10px 12px; border-radius:11px; background:#FBF8EF; border:1px dashed var(--cream-line); }
.pm-v3 .pmx-mirror-h{ font-size:10px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-800); margin-bottom:4px; }
.pm-v3 .pmx-mirror .pm-reliability{ border-bottom-color:#EFE6CF; }
.pm-v3 .pmx-nodata{ margin:6px 0 0; }
.pm-v3 .pmx-explain{ margin-top:8px; padding:10px 12px; border-radius:10px; background:#fff; border:1px solid var(--line); font-size:11.5px; line-height:1.55; color:var(--ink-700); }
.pm-v3 .pmx-explain[hidden]{ display:none; }
.pm-v3 .pmx-explain b{ color:var(--ink-900); }
.pm-v3 .pm-sys.is-open{ color:var(--gold-800); background:var(--cream); border-color:var(--cream-line); }

/* ══ Photos dans les ronds ═════════════════════════════════════════════════ */
.pm-v3 .pm-av.is-photo, .pm-v3 .pmr-av.is-photo{ overflow:hidden; padding:0; background:#EEE9DF; }
.pm-v3 .pm-av.is-photo img, .pm-v3 .pmr-av.is-photo img{ width:100%; height:100%; object-fit:cover; object-position:50% 30%; display:block; border-radius:50%; }
.pm-v3 .pm-typing .pm-av.is-photo{ width:28px; height:28px; }
/* haut de la carte d'etape : photo, nom, role — propre */
.pe-card-who{ display:flex; align-items:center; gap:10px; }
.pe-card-who .av{ width:42px; height:42px; border-radius:50%; overflow:hidden; flex:0 0 42px; background:#F3EFE6; display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:800; color:var(--gold-800); box-shadow:0 0 0 2px #fff, 0 0 0 3px var(--gold-200); }
.pe-card-who .av img{ width:100%; height:100%; object-fit:cover; object-position:50% 30%; }
.pe-card-who b{ display:block; font-size:14px; font-weight:800; color:var(--pe-ink); line-height:1.2; }
.pe-card-who small{ display:block; font-size:11.5px; color:var(--pe-ink-500); margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pe-card.is-compact .pe-card-who .av{ width:34px; height:34px; flex-basis:34px; }
.pe-card.is-compact .pe-card-who b{ font-size:13px; }
.pe-card-when{ margin-top:12px; }
/* dans le volet : les faits en pile, pas en tableau serre */
.pm-v3 .pmx-etape-body .pe-card-rows{ grid-template-columns:1fr; gap:8px; }
.pm-v3 .pmx-etape-body .pe-card-rows dt{ font-size:9.5px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-400); }
.pm-v3 .pmx-etape-body .pe-card-rows dd{ text-align:left; margin-top:-6px; font-weight:600; }
.pm-v3 .pmx-etape-body .pe-card-when{ font-size:19px; }
/* ══ Chantier 2 — Auguste : reglages par recrutement, texte visible, trace ═══ */
.pm-v3 .pm-turn-preview{ margin-top:10px; padding:10px 12px; border-radius:10px; background:#fff; border:1px dashed var(--gold-200); font-size:12px; color:var(--ink-700); line-height:1.5; }
.pm-v3 .pm-turn-preview[hidden]{ display:none; }
.pm-v3 .pm-turn-preview b{ display:block; font-size:9.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--amber-ink); margin-bottom:4px; }
.pm-v3 .pm-turn-preview .acts{ display:flex; gap:8px; margin-top:8px; }
.pm-v3 .pmx-augset{ margin-top:10px; padding:10px 12px; border-radius:11px; background:#fff; border:1px solid var(--line); }
.pm-v3 .pmx-augset[hidden]{ display:none; }
.pm-v3 .pmx-augset-row{ display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:8px; }
.pm-v3 .pmx-augset-row:first-child{ margin-top:0; }
.pm-v3 .pmx-augset-row > span{ font-size:11.5px; color:var(--ink-500); }
.pm-v3 .pmx-augset .seg{ display:inline-flex; border:1px solid var(--line); border-radius:8px; overflow:hidden; }
.pm-v3 .pmx-augset .seg button{ font-family:inherit; font-size:11px; font-weight:600; padding:4px 8px; border:0; background:#fff; color:var(--ink-500); cursor:pointer; }
.pm-v3 .pmx-augset .seg button.on{ background:var(--ink); color:#F5F1EA; }
.pm-v3 .pmx-augset select{ font-family:inherit; font-size:11.5px; border:1px solid var(--line); border-radius:8px; padding:4px 8px; background:#fff; color:var(--ink-900); }
.pm-v3 .pmx-augset-foot{ margin-top:10px; display:flex; align-items:center; justify-content:space-between; gap:8px; }
.pm-v3 .pmx-augset-sum{ font-size:11px; color:var(--gold-800); font-weight:600; line-height:1.4; }
.pm-v3 .pm-bmeta .via-aug{ color:var(--gold-800); font-weight:700; }

/* fleche « aller en bas » du fil, comme sur les messageries */
.pm-v3 .pm-conv{ position:relative; }
.pm-v3 .pm-tobottom{
  position:absolute; left:50%; transform:translate(-50%, 6px); z-index:5; width:38px; height:38px; border-radius:50%;
  border:1px solid rgba(255,255,255,.7); background:var(--gold-fill);
  color:#2B2210; box-shadow:0 4px 14px rgba(26,22,20,.18); cursor:pointer; display:flex; align-items:center; justify-content:center;
  opacity:0; pointer-events:none; transition:opacity .16s, transform .16s;
}
.pm-v3 .pm-tobottom.is-on{ opacity:1; pointer-events:auto; transform:translate(-50%, 0); }
.pm-v3 .pm-tobottom:hover{ filter:brightness(1.04); }
.pm-v3 .pm-tobottom svg{ width:16px; height:16px; }
.pm-v3 .pm-tobottom .n{ position:absolute; top:-6px; right:-6px; min-width:18px; height:18px; border-radius:999px; background:#2A5C8F; color:#fff; font-size:10px; font-weight:800; display:flex; align-items:center; justify-content:center; padding:0 5px; border:2px solid #fff; }
.pm-v3 .pm-tobottom .n:empty{ display:none; }

/* ══ Chantier 3 — etat unique : quelques etats visibles ═════════════════════ */
.pm-v3 .pm-conv.is-close .pm-actbar .pm-actbtn:not(.aug){ opacity:.45; pointer-events:none; }
.pm-v3 .pm-conv.is-close .pm-compose{ opacity:.7; }
.pm-v3 .pm-badge.st-close{ color:var(--ink-500); background:#F1EEE8; border-color:#E5E1DB; }
.pm-v3 .pm-pending{ display:inline-flex; align-items:center; gap:5px; margin-left:8px; font-size:10.5px; font-weight:700; color:var(--amber-ink); }
.pm-v3 .pm-pending i{ width:6px; height:6px; border-radius:50%; background:var(--amber-bright); display:inline-block; }

/* ══ barre d'actions cote talent, dans le composeur ═════════════════════════ */
.pm-v3 .pm-compose .pm-actbar{ border-top:0; padding:0 0 8px; }
.pm-v3 .pm-actbar--talent .pm-actbtn.ghost{ margin-left:0; }
/* ══ carte compacte : plus basse, CTA en bas a droite sur la ligne du texte ═ */
.pe-card.is-compact .pe-card-body{ padding:9px 12px 9px; }
.pe-card.is-compact .pe-card-band{ padding:6px 12px; }
.pe-card.is-compact .pe-card-who{ gap:8px; }
.pe-card.is-compact .pe-card-who .av{ width:30px; height:30px; flex-basis:30px; }
.pe-card.is-compact .pe-card-who b{ font-size:12.5px; }
.pe-card.is-compact .pe-card-who small{ font-size:11px; }
.pe-card-cmain{ display:flex; align-items:flex-end; justify-content:space-between; gap:12px; margin-top:6px; }
.pe-card-cmain > div{ min-width:0; }
.pe-card.is-compact .pe-card-when{ font-size:16px; margin-top:0; }
.pe-card.is-compact .pe-card-where{ margin-top:2px; font-size:12px; }
.pe-card.is-compact .pe-card-cfoot{ margin-top:0; flex:0 0 auto; }
.pe-card.is-compact .pe-card-cfoot .pe-cbtn{ padding:6px 12px; font-size:11.5px; }
.pe-card.is-compact .pe-card-open{ padding:4px 2px; font-size:11.5px; }
.pe-card-cnote{ display:none; }
.pm-v3 .pm-thread .pe-card.is-compact{ width:min(78%, 540px); }

/* ══ Chantier 4 — vue d'ensemble talent ═════════════════════════════════════ */
.pm-v3 .pmt-panel .pmr-home{ display:none; }
.pm-v3 .pmt-panel .pmr-home.active{ display:flex; }
.pm-v3 .pmr-av.pm-av{ width:34px; height:34px; }
.pm-v3 .pmr-av.pm-av.masked{ background:linear-gradient(155deg,#EFEAE1,#DDD5C7); color:var(--n-warm-550); display:flex; align-items:center; justify-content:center; }
.pm-v3 .pmr-av.pm-av.masked svg{ width:56%; height:56%; }
.pm-v3 .pmt-panel .pmr-back{ margin-right:2px; }
/* ══ Chantier 4 — telephone ══════════════════════════════════════════════════ */
@media(max-width:1100px){
  /* le volet devient un tiroir : la conversation garde sa place */
  .pm-v3 .pmx-tab{ display:inline-flex; }
  .pm-v3.has-ctx .pm-ctx-col{ display:flex; position:fixed; top:0; right:0; bottom:0; width:min(380px, 92vw); z-index:950; border-radius:0; box-shadow:-12px 0 40px rgba(26,22,20,.22); }
  .pm-v3.has-ctx::after{ content:""; position:fixed; inset:0; background:rgba(26,22,20,.35); z-index:940; }
  .pm-v3 .pmx-handle{ display:none !important; }
}
@media(max-width:860px){
  .pm-v3 .pm-panel, .pm-v3.has-ctx .pm-panel, .pm-v3 .pmr-panel, .pm-v3.has-ctx .pmr-panel{ grid-template-columns:minmax(0,1fr); height:auto; }
  .pm-v3:not(.is-thread) .pm-thread-col{ display:none; }
  .pm-v3.is-thread .pm-side{ display:none; }
  .pm-v3 .pm-side{ max-height:none; height:calc(100vh - 150px); }
  .pm-v3 .pm-thread-col{ height:calc(100vh - 150px); min-height:520px; }
  .pm-v3 .pmr-back{ font-size:12.5px; padding:8px 10px; }
  .pm-v3 .pm-thead .pm-sla-chip, .pm-v3 .pm-thead .rel-chip{ display:none; }
  .pm-v3 .pm-actbtn{ padding:11px 14px; font-size:13px; }
  .pm-v3 .pm-actbtn .ic{ width:22px; height:22px; }
  .pe-cbtn{ min-height:44px; }
  .pm-v3 .pm-send-v3, .pm-v3 .pm-comp-tool, .pm-v3 .pm-comp-ic{ min-height:40px; }
  .pm-v3 .pm-brow{ max-width:92%; }
  .pm-v3 .pm-thread .pe-card.is-compact{ width:100%; }
  .pm-v3 .pmr-counts{ grid-template-columns:1fr 1fr 1fr; gap:6px; }
  .pm-v3 .pmr-home-in{ padding:14px 14px 20px; }
  .pm-v3 .pm-side-expand{ display:none; }
  .pm-v3 .pm-stage-card{ flex-basis:100%; max-width:100%; }
  .pm-v3 .pm-stage-row{ justify-content:flex-start; }
  /* le fil garde de la place : bandeau compact, barre d'actions sur une ligne qui defile */
  .pm-v3 .pm-thread{ min-height:200px; }
  .pm-v3 .pm-turn-d{ display:none; }
  .pm-v3 .pm-turn{ padding:8px 11px; }
  .pm-v3 .pm-actbar{ flex-wrap:nowrap; overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none; padding-bottom:8px; }
  .pm-v3 .pm-actbar::-webkit-scrollbar{ display:none; }
  .pm-v3 .pm-actbtn.aug{ margin-left:0; }
  .pm-v3 .pm-compose-hint{ display:none; }
  .pm-v3 .pm-stage-h{ display:none; }
}

/* ══ Chantier 5 — documents, auteur, « qui m'écrit », intention de clôture ══ */
.pm-v3 .pm-files{ display:flex; flex-direction:column; gap:6px; margin:8px 0 4px; }
.pm-v3 .pm-file{ display:flex; align-items:center; gap:10px; padding:8px 10px; border-radius:10px; border:1px solid var(--line); background:#fff; color:var(--ink-900); text-decoration:none; min-width:220px; max-width:360px; transition:border-color .15s, box-shadow .15s; }
.pm-v3 .pm-bub.me .pm-file{ background:rgba(255,255,255,.72); }
.pm-v3 .pm-file:hover{ border-color:var(--gold-400); box-shadow:0 2px 10px rgba(26,22,20,.08); }
.pm-v3 .pm-file-ic{ width:30px; height:30px; border-radius:8px; background:#F3EDE0; color:var(--gold-800); display:flex; align-items:center; justify-content:center; flex:0 0 auto; }
.pm-v3 .pm-file-ic svg{ width:16px; height:16px; }
.pm-v3 .pm-file-b{ display:flex; flex-direction:column; min-width:0; flex:1; }
.pm-v3 .pm-file-b b{ font-size:12.5px; font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pm-v3 .pm-file-b small{ font-size:10.5px; color:var(--ink-500); }
.pm-v3 .pm-file-open{ font-size:10.5px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--gold-800); flex:0 0 auto; }
.pm-v3 .pm-bub p:empty{ display:none; }
.pm-v3 .pm-attach-zone{ display:flex; flex-wrap:wrap; gap:6px; margin:0 0 6px; }
.pm-v3 .pm-attach-zone[hidden]{ display:none; }
/* Recette 28/09 — la zone ne porte plus le « + » : vide, elle ne prend pas de place. */
.pm-v3 .pm-attach-zone:empty{ display:none; }
.pm-v3 .pm-attach{ display:inline-flex; align-items:center; gap:6px; padding:5px 6px 5px 9px; border-radius:999px; border:1px solid var(--gold-400); background:#FBF7EC; font-size:11.5px; color:var(--ink-900); max-width:260px; }
.pm-v3 .pm-attach svg{ width:12px; height:12px; color:var(--gold-800); flex:0 0 auto; }
.pm-v3 .pm-attach b{ font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pm-v3 .pm-attach small{ color:var(--ink-500); font-size:10.5px; }
.pm-v3 .pm-attach button{ width:18px; height:18px; border-radius:50%; border:0; background:transparent; color:var(--ink-500); cursor:pointer; font-size:14px; line-height:1; padding:0; display:flex; align-items:center; justify-content:center; }
.pm-v3 .pm-attach button:hover{ background:#EFE7D3; color:var(--ink-900); }
.pm-v3 .pm-comp-ic.has-files{ color:var(--gold-800); border-color:var(--gold-400); }
/* volet : documents echanges */
.pm-v3 .pmx-docs{ display:flex; flex-direction:column; gap:6px; margin-top:6px; }
.pm-v3 .pmx-doc{ display:flex; align-items:center; gap:9px; padding:7px 9px; border-radius:10px; border:1px solid var(--line); background:#fff; text-decoration:none; color:var(--ink-900); }
.pm-v3 .pmx-doc:hover{ border-color:var(--gold-400); }
.pm-v3 .pmx-doc .pm-file-ic{ width:26px; height:26px; }
.pm-v3 .pmx-doc-b{ display:flex; flex-direction:column; min-width:0; }
.pm-v3 .pmx-doc-b b{ font-size:12px; font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pm-v3 .pmx-doc-b small{ font-size:10.5px; color:var(--ink-500); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
/* qui m'ecrit */
.pm-v3 .od-who{ margin-top:8px; padding:8px 10px; border-radius:9px; background:#F7F4EC; border:1px dashed #D9CFB6; font-size:12px; line-height:1.45; color:var(--ink-700); }
.pm-v3 .od-who-k{ font-size:9.5px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-800); margin-right:6px; }
.pm-v3 .od-who-n{ display:block; margin-top:3px; font-size:11px; color:var(--ink-500); }
/* intention de cloture : visible, annulable */
.pm-v3 .pm-cloture-chip{ display:flex; align-items:center; gap:8px; margin:0 0 6px; padding:7px 10px; border-radius:9px; background:#F6F1F1; border:1px solid #E6D3D3; font-size:12px; color:#6B2E2E; }
.pm-v3 .pm-cloture-chip[hidden]{ display:none; }
.pm-v3 .pm-cloture-chip svg{ width:14px; height:14px; flex:0 0 auto; }
.pm-v3 .pm-cloture-chip span{ flex:1; }
.pm-v3 .pm-cloture-chip button,
.pm-v3 .pm-cloture-chip label{ font-family:inherit; font-size:11px; font-weight:700; padding:4px 9px; border-radius:7px; border:1px solid #D8B9B9; background:#fff; color:#6B2E2E; cursor:pointer; }
.pm-v3 .pm-cloture-chip button:hover,
.pm-v3 .pm-cloture-chip label:hover{ background:#FBEDED; }
/* B3 tache 043 — l'intention de cloture est une CASE du formulaire, pas un etat
   du navigateur : « Clore la candidature » la coche, « Garder ouverte » la
   decoche, et la puce suit. Ce qui est arme est donc exactement ce qui sera
   poste, et le geste marche sans JavaScript. */
.pm-v3 .pm-cloture-toggle{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
.pm-v3 .pm-cloture-toggle:not(:checked) + .pm-cloture-chip{ display:none; }
.pm-v3 .pm-cloture-toggle:focus-visible + .pm-cloture-chip{ outline:2px solid var(--gold-400); outline-offset:2px; }
/* F20 : outils de message accessibles au clavier et au tactile */
.pm-v3 .pm-brow:focus-within .pm-msgtools{ display:inline-flex; }
.pm-v3 .pm-bub:focus{ outline:2px solid var(--gold-400); outline-offset:2px; }
@media (hover:none){ .pm-v3 .pm-msgtools{ display:inline-flex; } }
/* F15 : archive */
.pm-v3 .pm-row.is-archived .pm-badge{ opacity:.7; }

/* ══ #18 — alleger le haut du fil ══════════════════════════════════════════ */
@media (min-width:1100px){
  .pm-v3.has-ctx .pm-stage:not(:has(.pm-offer-d1)) .pm-stage-h, .pm-v3.has-ctx .pm-stage > .pm-ctxbar, .pm-v3.has-ctx .pm-stage .pm-stage-row:not(:has(.pm-offer-d1)){ display:none; }
  .pm-v3.has-ctx .pm-stage:not(:has(.pm-offer-d1)){ padding:0; min-height:26px; }   /* jamais sur un fil qui porte la carte d'offre */
}
.pm-v3 .pm-turn.is-folded{ display:none; }

/* ══ #19 — fiche resume du candidat (tiroir) ═══════════════════════════════ */
.pm-v3 [data-profile-open]{ cursor:pointer; }
.pm-v3 .pm-thead .pm-title[data-profile-open]:hover, .pm-v3 .pmx-hero-nm[data-profile-open]:hover{ text-decoration:underline; text-decoration-color:var(--gold-500); text-underline-offset:3px; }
.pm-v3 .pm-thead .pm-av[data-profile-open]:hover, .pm-v3 .pmx-hero-av[data-profile-open]:hover{ box-shadow:0 0 0 3px rgba(196,165,89,.45); }
.pm-profile{ position:fixed; inset:0; z-index:880; display:flex; justify-content:flex-end; }   /* sous la fenetre Proposer une etape (900), au-dessus de la barre de navigation (100) */
.pm-profile[hidden]{ display:none; }
.pm-profile-scrim{ position:absolute; inset:0; background:rgba(26,22,20,.28); backdrop-filter:blur(1px); animation:pmp-fade .18s ease-out; }
.pm-profile-pane{ position:relative; width:min(460px, 100%); height:100%; background:#fff; box-shadow:-12px 0 40px rgba(26,22,20,.18); display:flex; flex-direction:column; animation:pmp-slide .22s cubic-bezier(.2,.7,.2,1); overflow:hidden; }
@keyframes pmp-fade{ from{ opacity:0; } to{ opacity:1; } }
@keyframes pmp-slide{ from{ transform:translateX(40px); opacity:0; } to{ transform:none; opacity:1; } }
@media (prefers-reduced-motion: reduce){ .pm-profile-scrim, .pm-profile-pane{ animation:none; } }
.pm-profile-hero{ padding:22px 22px 18px; background:var(--gold-fill); display:flex; gap:16px; align-items:center; }
.pm-profile-hero .ph-av{ width:72px; height:72px; border-radius:50%; overflow:hidden; border:3px solid rgba(255,255,255,.85); box-shadow:0 4px 14px rgba(26,22,20,.18); flex:0 0 auto; background:#fff; display:flex; align-items:center; justify-content:center; font-weight:800; color:var(--gold-deep); }
.pm-profile-hero .ph-av img{ width:100%; height:100%; object-fit:cover; display:block; }
.pm-profile-hero .ph-nm{ font-family:"Playfair Display", Georgia, serif; font-size:21px; font-weight:700; color:#2B2210; line-height:1.1; }
.pm-profile-hero .ph-role{ font-size:12.5px; color:var(--gold-800); margin-top:4px; }
.pm-profile-hero .ph-pill{ display:inline-flex; margin-top:8px; font-size:10.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; padding:4px 9px; border-radius:999px; background:rgba(255,255,255,.75); color:var(--gold-deep); }
.pm-profile-x{ position:absolute; top:12px; right:12px; width:32px; height:32px; border-radius:50%; border:1px solid rgba(255,255,255,.7); background:rgba(255,255,255,.85); color:#2B2210; font-size:18px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; }
.pm-profile-x:hover{ background:#fff; }
.pm-profile-body{ flex:1; overflow:auto; padding:16px 22px 20px; }
.pm-profile-sec{ font-size:9.5px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-500); margin:16px 0 8px; }
.pm-profile-sec:first-child{ margin-top:0; }
.pm-profile-facts{ display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line); border-radius:12px; overflow:hidden; }
.pm-profile-facts > div{ background:#fff; padding:9px 12px; }
.pm-profile-facts small{ display:block; font-size:9.5px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-500); }
.pm-profile-facts b{ display:block; font-size:13px; font-weight:700; color:var(--ink-900); margin-top:2px; }
.pm-profile-tags{ display:flex; flex-wrap:wrap; gap:6px; }
.pm-profile-tags span{ font-size:11.5px; font-weight:600; padding:5px 10px; border-radius:999px; background:#F7F4EC; color:var(--ink-700); border:1px solid #EDE6D6; }
.pm-profile-path{ list-style:none; margin:0; padding:0; border-left:2px solid var(--gold-200); }
.pm-profile-path li{ position:relative; padding:0 0 10px 14px; font-size:12.5px; color:var(--ink-900); }
.pm-profile-path li::before{ content:""; position:absolute; left:-6px; top:5px; width:8px; height:8px; border-radius:50%; background:var(--gold-primary); border:2px solid #fff; }
.pm-profile-path li small{ display:block; font-size:11px; color:var(--ink-500); }
.pm-profile-desc{ font-size:13px; line-height:1.5; color:var(--ink-700); margin:0; }
.pm-profile-rel .pm-reliability{ display:flex; justify-content:space-between; gap:10px; padding:7px 0; border-bottom:1px solid var(--line); font-size:12.5px; }
.pm-profile-rel .pm-reliability span{ color:var(--ink-500); }
.pm-profile-rel .pm-reliability b small{ display:block; font-weight:500; color:var(--ink-500); font-size:10.5px; }
.pm-profile-docs{ display:flex; flex-direction:column; gap:6px; }
.pm-profile-note{ font-size:12.5px; color:var(--ink-700); background:#FBF7EC; border:1px dashed var(--gold-200); border-radius:10px; padding:9px 12px; }
.pm-profile-foot{ padding:12px 22px 16px; border-top:1px solid var(--line); display:flex; gap:8px; align-items:center; background:#FCFBF9; }
.pm-profile-foot .pmx-cta{ flex:1; justify-content:center; margin:0; }
.pm-profile-demo{ font-size:10.5px; color:var(--ink-500); margin:10px 0 0; }

/* ══ Carte d'offre allegee : l'essentiel sur la carte, le reste dans le volet ══
   Kevin 12/09 : un peu plus d'air entre le bas de la carte et la pastille « Debut de l'echange » */
.pm-v3 .pm-stage:has(.pm-offer-d1){ padding-bottom:28px; }
/* */
.pm-v3 .pm-offer-d1 .od-grid{ display:block; }
.pm-v3 .pm-offer-d1 .od-l{ max-width:none; }
.pm-v3 .od-who.is-compact{ padding:0; border:0; background:none; margin-top:10px; }
.pm-v3 .od-who-t{ width:100%; display:flex; align-items:center; gap:8px; font-family:inherit; font-size:12px; text-align:left; padding:8px 10px; border-radius:9px; background:#F7F4EC; border:1px dashed #D9CFB6; color:var(--ink-700); cursor:pointer; }
.pm-v3 .od-who-t:hover{ border-color:var(--gold-primary); background:#FBF7EC; }
.pm-v3 .od-who-t .od-who-k{ margin-right:0; flex:0 0 auto; }
.pm-v3 .od-who-s{ flex:1; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pm-v3 .od-who-more{ display:inline-flex; align-items:center; gap:4px; flex:0 0 auto; font-size:11px; font-weight:800; color:var(--gold-800); }
.pm-v3 .od-who-more svg{ width:12px; height:12px; transition:transform .18s; }
.pm-v3 .od-who-t[aria-expanded="true"] .od-who-more svg{ transform:rotate(180deg); }
.pm-v3 .od-who-x{ margin-top:6px; padding:8px 10px 2px; font-size:12px; line-height:1.45; color:var(--ink-700); animation:pe-in .16s ease-out; }
.pm-v3 .od-who-x[hidden]{ display:none; }
.pm-v3 .od-foot{ display:flex; align-items:center; flex-wrap:wrap; gap:10px 12px; }
.pm-v3 .od-full{ display:inline-flex; align-items:center; gap:8px; font-family:inherit; font-size:13px; font-weight:700; color:var(--gold-deep); background:#FFFDF7; border:1.5px solid var(--gold-primary); border-radius:10px; padding:10px 14px; cursor:pointer; transition:background .15s, box-shadow .15s; }
.pm-v3 .od-full svg{ width:15px; height:15px; }
.pm-v3 .od-full:hover{ background:#FBF3DF; box-shadow:0 2px 10px rgba(196,165,89,.25); }
.pm-v3 .od-foot .od-note{ flex-basis:100%; margin:0; }
.pm-v3 .od-foot .od-note b{ font-weight:700; color:var(--ink-700); }
/* volet */
.pm-v3 .pmx-who{ margin:0 0 4px; font-size:12.5px; line-height:1.5; color:var(--ink-700); padding:9px 11px; border-radius:10px; background:#F7F4EC; border:1px dashed #D9CFB6; }
.pm-v3 .pmx-deadline{ margin-top:10px; padding:10px 12px; border-radius:11px; background:#fff; border:1px solid var(--line); }
.pm-v3 .pmx-deadline-h{ display:flex; justify-content:space-between; align-items:baseline; gap:8px; font-size:12.5px; color:var(--ink-700); }
.pm-v3 .pmx-deadline-h b{ color:var(--ink-900); }
.pm-v3 .pmx-deadline-h .n{ font-size:10.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--amber-ink, var(--gold-deep)); }
.pm-v3 .pmx-deadline .od-rail{ margin-top:8px; }
.pm-v3 .pmx-deadline .pmx-foot{ margin:8px 0 0; }

/* ══ Auguste, une seule fois : un petit bouton dans le champ, une fenetre au clic ══ */
.pm-v3 .pm-quick{ display:none !important; }
.pm-v3 .pm-compose{ position:relative; }
.pm-v3 .pm-compose-box{ display:grid; grid-template-columns:auto minmax(0,1fr); }
.pm-v3 .pm-compose-box .pm-compose-in{ grid-row:1; grid-column:2; padding-left:6px; }
.pm-v3 .pm-compose-box .pm-compose-bar{ grid-row:2; grid-column:1 / -1; }
.pm-v3 .pm-augbtn{ grid-row:1; grid-column:1; align-self:start; position:relative; width:30px; height:30px; margin:7px 0 0 9px; padding:0; border-radius:50%; border:1.5px solid #E7DCC2; background:#fff; cursor:pointer; overflow:visible; transition:border-color .15s, box-shadow .15s, transform .12s; }
.pm-v3 .pm-augbtn img{ width:100%; height:100%; object-fit:cover; border-radius:50%; display:block; }
.pm-v3 .pm-augbtn .sp{ position:absolute; right:-4px; bottom:-3px; width:14px; height:14px; border-radius:50%; background:var(--gold-fill); color:#2B2210; display:flex; align-items:center; justify-content:center; border:1.5px solid #fff; }
.pm-v3 .pm-augbtn .sp svg{ width:8px; height:8px; }
.pm-v3 .pm-augbtn:hover, .pm-v3 .pm-augbtn[aria-expanded="true"]{ border-color:var(--gold-primary); box-shadow:0 0 0 3px rgba(196,165,89,.18); transform:scale(1.04); }
.pm-v3 .pm-augbtn:focus-visible{ outline:2px solid var(--gold-primary); outline-offset:2px; }
/* la fenetre */
.pm-v3 .pm-augpop{ position:absolute; left:0; bottom:calc(100% + 4px); z-index:9; width:min(560px, 100%); border-radius:14px; background:#fff; border:1px solid var(--cream-line, #E7DCC2); box-shadow:0 16px 44px rgba(26,22,20,.18); overflow:hidden; animation:pe-in .16s ease-out; }
.pm-v3 .pm-augpop[hidden]{ display:none; }
.pm-v3 .pm-augpop-h{ display:flex; align-items:center; gap:10px; padding:10px 12px; background:linear-gradient(90deg,#FBF6EA 0%,#FDFBF5 100%); border-bottom:1px solid #EFE4C8; }
.pm-v3 .pm-augpop-av{ width:30px; height:30px; border-radius:50%; overflow:hidden; border:2px solid #fff; box-shadow:0 1px 4px rgba(26,22,20,.18); flex:0 0 auto; }
.pm-v3 .pm-augpop-av img{ width:100%; height:100%; object-fit:cover; display:block; }
.pm-v3 .pm-augpop-t{ flex:1; min-width:0; }
.pm-v3 .pm-augpop-t b{ display:block; font-size:12.5px; font-weight:800; color:var(--ink-900); }
.pm-v3 .pm-augpop-t small{ display:block; font-size:10.5px; color:var(--ink-500); }
.pm-v3 .pm-augton{ display:inline-flex; border:1px solid #E7DCC2; border-radius:999px; overflow:hidden; background:#fff; flex:0 0 auto; }
.pm-v3 .pm-augton button{ font-family:inherit; font-size:10.5px; font-weight:700; padding:4px 8px; border:0; background:none; color:var(--ink-500); cursor:pointer; }
.pm-v3 .pm-augton button.on{ background:var(--ink); color:#F5F1EA; }
.pm-v3 .pm-augpop-x{ width:26px; height:26px; border-radius:50%; border:0; background:transparent; color:var(--ink-500); font-size:17px; line-height:1; cursor:pointer; flex:0 0 auto; }
.pm-v3 .pm-augpop-x:hover{ background:#F3EDE0; color:var(--ink-900); }
.pm-v3 .pm-augpop-sec{ font-size:9.5px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--gold-800); padding:10px 12px 4px; }
.pm-v3 .pm-augpop-list{ display:grid; grid-template-columns:1fr 1fr; gap:3px; padding:0 8px 6px; }
.pm-v3 .pm-augitem{ display:flex; flex-direction:column; align-items:flex-start; gap:2px; text-align:left; font-family:inherit; background:none; border:1px solid transparent; border-radius:10px; padding:8px 10px; cursor:pointer; min-width:0; }
.pm-v3 .pm-augitem b{ font-size:12.5px; font-weight:700; color:var(--ink-900); display:flex; align-items:center; gap:6px; max-width:100%; }
.pm-v3 .pm-augitem b span{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pm-v3 .pm-augitem b i{ font-style:normal; font-size:9.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:#fff; background:var(--gold-fill); border-radius:999px; padding:2px 6px; flex:0 0 auto; }
.pm-v3 .pm-augitem small{ font-size:11px; color:var(--ink-500); line-height:1.4; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.pm-v3 .pm-augitem:hover, .pm-v3 .pm-augitem:focus-visible{ background:#FBF6EA; border-color:#EFE4C8; outline:none; }
.pm-v3 .pm-augitem.is-sugg{ grid-column:1 / -1; background:#FDFBF5; border-color:#EFE4C8; }
.pm-v3 .pm-augitem.is-sugg small{ -webkit-line-clamp:3; }
.pm-v3 .pm-augpop-acts{ display:flex; flex-wrap:wrap; gap:6px; padding:0 12px 12px; }
.pm-v3 .pm-augact{ font-family:inherit; font-size:11.5px; font-weight:700; color:var(--ink-700); background:#fff; border:1px solid #E7DCC2; border-radius:999px; padding:6px 11px; cursor:pointer; }
.pm-v3 .pm-augact:hover{ border-color:var(--gold-primary); color:var(--gold-800); }
.pm-v3 .pm-augpop-foot{ padding:8px 12px 10px; border-top:1px solid var(--line); font-size:10.5px; color:var(--ink-500); background:#FCFBF9; }
.pm-v3 .pm-conv.is-close .pm-augbtn{ opacity:.45; pointer-events:none; }
@media (max-width:860px){ .pm-v3 .pm-augpop-list{ grid-template-columns:1fr; } .pm-v3 .pm-augton{ display:none; } .pm-v3 .pm-augpop{ width:100%; } }

/* ══ Lot finitions 12/09 ══════════════════════════════════════════════════════ */
/* A : une conversation close ou declinee grise aussi ses cartes d'etape et le volet d'etape */
.pm-v3 .pm-conv.is-close .pe-card, .pm-v3 .pm-conv.is-declinee .pe-card{ opacity:.7; filter:grayscale(.4); }
.pm-v3 .pm-conv.is-close .pe-card .pe-cbtn, .pm-v3 .pm-conv.is-declinee .pe-card .pe-cbtn{ pointer-events:none; opacity:.5; }
.pm-v3 .pm-conv.is-close .pm-augbtn{ opacity:.45; pointer-events:none; }
.pm-v3 .pm-cloture-chip .pm-cloture-etape{ display:block; margin-top:2px; font-weight:700; }
.pm-v3 .pmx-deadline.is-declinee{ background:#F6F1F1; border-color:#E6D3D3; }
.pm-v3 .pmx-deadline.is-declinee .n{ color:#6B2E2E; }
.pm-v3 .pm-av.is-revealed, .pm-v3 .pmx-hero-av.is-revealed{ background:var(--gold-fill); }
/* chantier 4 : la vue d'ensemble est un ecran a part entiere sur telephone */
.pm-v3 .pmr-back--list{ display:none; }
@media (max-width:860px){
  .pm-v3.is-home:not(.is-thread) .pm-thread-col{ display:flex !important; }
  .pm-v3.is-home:not(.is-thread) .pm-side{ display:none !important; }
  .pm-v3 .pmr-back--list{ display:inline-flex; align-items:center; gap:6px; margin:10px 12px 0; font-family:inherit; font-size:12.5px; font-weight:700; color:var(--ink-700); background:#fff; border:1px solid var(--line); border-radius:999px; padding:6px 12px; cursor:pointer; }
  .pm-v3 .pmr-back--list svg{ width:14px; height:14px; }
}

/* ══ #20 — carte d'offre : -25 % de largeur, toujours a droite ══════════════ */
@media (min-width:1101px){ .pm-v3 .pm-stage-card{ flex:0 1 52%; max-width:52%; min-width:min(460px, 100%); } }
/* ══ #21 — fiche de la maison (talent) ══════════════════════════════════════ */
.pm-v3 .od-who-link{ font-family:inherit; font-size:11.5px; font-weight:800; color:var(--gold-800); background:none; border:0; padding:0; cursor:pointer; text-decoration:underline; text-decoration-color:rgba(196,165,89,.5); text-underline-offset:3px; }
.pm-v3 .od-who-link:hover{ text-decoration-color:var(--gold-800); }
.pm-profile-hero .ph-av.is-logo{ background:#fff; padding:6px; }
.pm-profile-hero .ph-av.is-logo img{ object-fit:contain; border-radius:0; }
.pm-profile-hero .ph-av.is-crest{ background:#F3EDE0; color:var(--gold-deep); }
.pm-profile-hero .ph-av.is-crest svg{ width:30px; height:30px; }
.pm-profile-anon{ font-size:12.5px; line-height:1.5; color:var(--ink-700); padding:10px 12px; border-radius:10px; background:#F7F4EC; border:1px dashed #D9CFB6; margin:0; }
.pm-profile-anon b{ display:block; font-size:9.5px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-800); margin-bottom:4px; }
.pm-profile-keys .pm-keys{ margin:0; }

/* ══ Lot finitions, seconde passe ══════════════════════════════════════════ */
.pm-v3 .pmr-row[hidden]{ display:none !important; }
.pm-v3 .pm-ctx-col.is-close-conv [data-etape-panel] .pe-card{ opacity:.55; pointer-events:none; filter:grayscale(.4); }
.pm-v3 .cb-decline{ margin-left:8px; }

/* ══ Lot n°3 ══════════════════════════════════════════════════════════════════ */
.pm-v3 .pm-turn--close{ background:#F6F3F0; border-color:#E5DED6; }
.pm-v3 .pm-turn--close .pm-turn-av{ background:#E9E2D8; color:var(--ink-700); display:inline-flex; align-items:center; justify-content:center; }
.pm-v3 .pmx-cta--etape.is-off{ opacity:.5; cursor:not-allowed; }
.pm-v3 .pm-file-rm{ display:none; font-family:inherit; font-size:10.5px; font-weight:700; color:var(--ink-500); background:none; border:0; cursor:pointer; padding:0 4px; }
.pm-v3 .pm-brow.me .pm-file:hover .pm-file-rm{ display:inline; }
.pm-v3 .pm-file.is-removed{ color:var(--ink-500); font-size:12px; font-style:italic; background:#FAF8F4; pointer-events:none; }
.pm-v3 .od-question{ margin-top:10px; padding:10px 12px; border-radius:10px; border:1px dashed #D9CFB6; background:#F7F4EC; }
.pm-v3 .od-question p{ margin:0 0 6px; font-size:12px; color:var(--ink-700); }
.pm-v3 .od-question textarea{ width:100%; box-sizing:border-box; font-family:inherit; font-size:12.5px; border:1px solid var(--line); border-radius:8px; padding:8px 10px; resize:vertical; min-height:56px; background:#fff; }
.pm-v3 .od-question .acts{ display:flex; gap:8px; margin-top:8px; align-items:center; }
.pm-v3 .od-question .acts small{ color:var(--ink-500); font-size:11px; }
.pm-v3 .pm-badge.st-neutral{ color:var(--ink-700); background:#F1EEE8; border-color:#E5E1DB; }

/* ── GO 12/09 : vue d'ensemble / conversations — le toggle du titre, la flèche du fil ── */
.pm-v3 .pm-head-tools{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; justify-content:flex-end; }
.pm-v3 .pm-viewtoggle{
  display:inline-flex; align-items:center; padding:3px; gap:2px;
  background:#fff; border:1px solid var(--line); border-radius:999px; box-shadow:0 1px 3px rgba(26,22,20,.05);
}
.pm-v3 .pm-vt{
  display:inline-flex; align-items:center; gap:6px; font-family:inherit; font-size:11.5px; font-weight:700;
  color:var(--ink-500); background:none; border:0; border-radius:999px; padding:6px 12px; cursor:pointer;
  transition:background .15s, color .15s;
}
.pm-v3 .pm-vt svg{ width:13px; height:13px; }
.pm-v3 .pm-vt:hover{ color:var(--ink-900); }
.pm-v3 .pm-vt.on{ color:#2B2210; background:var(--gold-fill); }

.pm-v3 .pmr-back:not(.pmr-back--list){
  display:inline-flex; align-items:center; justify-content:center; width:32px; height:32px; margin:0; padding:0;
  color:var(--ink-700); background:#fff; border:1px solid var(--line); border-radius:50%;
  transition:border-color .15s, color .15s, background .15s;
}
.pm-v3 .pmr-back:not(.pmr-back--list):hover{ color:var(--gold-800); border-color:var(--gold); background:var(--cream, #FBF7EC); }
.pm-v3 .pmr-back:not(.pmr-back--list) svg{ width:15px; height:15px; }
.pm-v3 .pmt-panel .pmr-back{ margin-right:6px; }
@media (max-width:860px){ .pm-v3 .pmr-back:not(.pmr-back--list){ font-size:0; padding:0; } }
@media (max-width:760px){ .pm-v3 .pm-head-tools{ justify-content:flex-start; } .pm-v3 .pm-vt span{ font-size:11px; } }

/* ══ GO 12/09 — téléphone (≤ 760 px) ═══════════════════════════════════════ */
@media (max-width: 760px){
  /* la page : marges réduites, sous-titre masqué, compteur sous le titre */
  .pm-main-v3{ padding-left:12px !important; padding-right:12px !important; padding-top:84px !important; }
  .pm-v3 .pm-head-row{ display:flex; flex-direction:column; align-items:flex-start; gap:6px; margin-bottom:10px; }
  .pm-v3 .pm-head-row .pm-sub{ display:none; }
  .pm-v3 .pm-h1{ font-size:26px; line-height:1.1; margin:0; }
  .pm-v3 .pm-eyebrow{ font-size:10px; }
  .pm-v3 .pm-meta{ font-size:11.5px; padding:5px 10px; }

  /* dans un fil : plein écran. Le titre de page s'efface, le fil prend la hauteur. */
  .pm-v3.is-thread .pm-head-row{ display:none; }
  .pm-v3.is-thread .pm-panel, .pm-v3.is-thread .pmr-panel{ margin-top:0; }
  .pm-v3 .pm-thread-col{ height:calc(100dvh - 96px); min-height:0; max-height:none; border-radius:14px; }
  .pm-v3.is-thread .pm-thread-col{ height:calc(100dvh - 88px); }
  .pm-v3 .pm-side{ height:calc(100dvh - 190px); min-height:420px; }
  .pm-v3.is-home:not(.is-thread) .pm-thread-col{ height:calc(100dvh - 190px); }

  /* entête du fil : deux lignes */
  .pm-v3 .pm-thead{
    display:grid; grid-template-columns:auto minmax(0,1fr) auto; grid-template-areas:"back back ctx" "av name name";
    align-items:center; column-gap:10px; row-gap:8px; padding:10px 12px 9px;
  }
  .pm-v3 .pm-thead .pmr-back{ grid-area:back; margin:0; justify-self:start; width:34px; height:34px; }
  .pm-v3 .pm-thead .pm-avwrap .pm-av{ width:36px; height:36px; }
  .pm-v3 .pm-thead .pmx-tab{ grid-area:ctx; margin:0; justify-self:end; }
  .pm-v3 .pm-thead .pm-avwrap{ grid-area:av; margin-left:0 !important; }
  .pm-v3 .pm-thead .pm-hid{ grid-area:name; min-width:0; display:block; margin:0; justify-self:stretch; overflow:hidden; text-align:left; }
  .pm-v3 .pm-thead .pm-title{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-size:14px; }
  .pm-v3 .pm-thead .pm-presence{ display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-size:11px; }
  .pm-v3 .pm-thead .pm-presence .pm-presence-role, .pm-v3 .pm-thead .pm-presence .pm-dotsep{ display:inline; }
  .pm-v3 .pm-thead > :not(.pmr-back):not(.pmx-tab):not(.pm-avwrap):not(.pm-hid){ display:none !important; }

  /* la carte d'offre prend toute la largeur ; avatar devant masqué */
  .pm-v3 .pm-stage{ padding:10px 10px 22px; }
  .pm-v3 .pm-stage-row{ gap:0; }
  .pm-v3 .pm-stage-row > .pm-av{ display:none; }
  .pm-v3 .pm-stage-card, .pm-v3 .pm-stage-card.pm-stage-card{ flex:1 1 100%; max-width:100%; min-width:0; }
  .pm-v3 .pm-offer-d1 .od-top{ flex-wrap:wrap; row-gap:4px; }
  .pm-v3 .pm-offer-d1 .od-foot{ display:grid; grid-template-columns:1fr 1fr; gap:8px 8px; padding:10px 12px 12px; }
  .pm-v3 .pm-offer-d1 .od-foot .btn, .pm-v3 .pm-offer-d1 .od-foot .od-full{ justify-content:center; text-align:center; width:100%; margin:0; min-height:42px; box-sizing:border-box; }
  .pm-v3 .pm-offer-d1 .od-foot .btn-gold{ grid-column:1 / -1; }
  .pm-v3 .pm-offer-d1 .od-foot .od-full{ grid-column:1 / -1; }
  .pm-v3 .pm-offer-d1 .od-foot .od-decline{ justify-self:start; padding:4px 0; }
  .pm-v3 .pm-offer-d1 .od-foot .od-decline + .od-decline{ justify-self:end; }
  .pm-v3 .pm-offer-d1 .od-foot .od-note{ grid-column:1 / -1; margin:2px 0 0; }
  .pm-v3 .pm-offer-d1 .od-foot .pm-ctxbar, .pm-v3 .pm-offer-d1 .od-foot [data-question-box], .pm-v3 .pm-offer-d1 .od-foot .od-question{ grid-column:1 / -1; }
  .pm-v3 .pm-offer-d1 .pm-decline-v3 .dc-reasons{ grid-template-columns:minmax(0,1fr); }
  .pm-v3 .pm-offer-banner .pm-decline-v3 .dc-reasons{ grid-template-columns:minmax(0,1fr); }
  .pm-v3 .pm-offer-banner .pm-decline-v3 .dc-reason{ min-width:0; }
  .pm-v3 .pm-offer-banner .pm-decline-v3 .dc-reason span{ min-width:0; overflow-wrap:anywhere; }

  /* le fil : rien ne dépasse */
  .pm-v3 .pm-thread{ padding:12px 10px; }
  .pm-v3 .pm-brow{ max-width:100%; min-width:0; }
  .pm-v3 .pm-brow > *{ min-width:0; }
  .pm-v3 .pm-bub{ max-width:calc(100vw - 96px); min-width:0; overflow-wrap:anywhere; }
  .pm-v3 .pm-brow.me .pm-bub, .pm-v3 .pm-brow.is-me .pm-bub{ max-width:calc(100vw - 72px); }
  .pm-v3 .pm-files, .pm-v3 .pm-file{ max-width:100%; min-width:0; }
  .pm-v3 .pm-file .pm-file-b{ min-width:0; }
  .pm-v3 .pm-file .pm-file-b b{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; display:block; }
  .pm-v3 .pm-turn{ margin-left:0; margin-right:0; }
  .pm-v3 .pm-turn-acts{ flex-wrap:wrap; }
  .pm-v3 .pm-turn-btn{ flex:1 1 auto; justify-content:center; }
  .pm-v3 .pm-thread .pe-card, .pm-v3 .pm-thread .pe-card.is-compact{ width:100%; max-width:100%; }

  /* barre d'actions rapides : une ligne qui défile */
  .pm-v3 .pm-actbar{ flex-wrap:nowrap; overflow-x:auto; overflow-y:hidden; -webkit-overflow-scrolling:touch; scrollbar-width:none; padding:8px 12px 6px; gap:6px;
    mask-image:linear-gradient(90deg,#000 calc(100% - 28px), transparent); -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px), transparent); }
  .pm-v3 .pm-actbar::-webkit-scrollbar{ display:none; }
  .pm-v3 .pm-actbtn{ flex:0 0 auto; white-space:nowrap; padding:9px 12px; font-size:12.5px; }
  .pm-v3 .pm-actbtn .ic{ width:20px; height:20px; }

  /* composeur */
  .pm-v3 .pm-compose{ padding:8px 10px 10px; }
  .pm-v3 .pm-send-v3{ min-height:40px; padding:0 14px; }
  .pm-v3 .pm-augpop{ position:fixed; left:0; right:0; bottom:0; top:auto; width:100%; max-height:78dvh; overflow:auto; border-radius:16px 16px 0 0; z-index:930; box-shadow:0 -12px 40px rgba(26,22,20,.22); }

  /* volet de contexte : une feuille plein écran, la croix visible */
  .pm-v3.has-ctx .pm-ctx-col{ display:flex !important; position:fixed; inset:0; width:100%; max-width:none; height:100dvh; z-index:960; border:0; border-radius:0; box-shadow:none; background:#FCFBF9; }
  .pm-v3.has-ctx .pm-ctx-col .pmx{ height:100%; }
  .pm-v3 .pmx-close{ display:grid !important; place-items:center; position:absolute; top:12px; right:12px; width:34px; height:34px; border-radius:50%; background:rgba(255,255,255,.92); color:var(--ink-900); border:1px solid var(--line); font-size:20px; line-height:1; z-index:2; }
  .pm-v3.has-ctx::after{ display:none; }
  .pm-v3.has-ctx .pmx-body{ padding-bottom:40px; }

  /* vue d'ensemble : lignes repliées */
  .pm-v3 .pmr-home-in{ padding:14px 12px 20px; }
  .pm-v3 .pmr-hi, .pm-v3 .pmr-home-in h2{ font-size:20px; line-height:1.2; }
  .pm-v3 .pmr-counts{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; margin:12px 0 16px; }
  .pm-v3 .pmr-count{ padding:10px 8px; }
  .pm-v3 .pmr-count b, .pm-v3 .pmr-count .n{ font-size:20px; }
  .pm-v3 .pmr-count small, .pm-v3 .pmr-count span{ font-size:10px; line-height:1.25; }
  .pm-v3 .pmr-row{ display:grid; grid-template-columns:26px minmax(0,1fr) auto; grid-template-areas:"av body body" "av w open"; align-items:center; column-gap:10px; row-gap:6px; padding:10px 10px; }
  .pm-v3 .pmr-row > .pmr-av{ grid-area:av; align-self:start; }
  .pm-v3 .pmr-row > .pmr-date{ grid-area:av; align-self:start; }
  .pm-v3 .pmr-row > .pmr-b{ grid-area:body; }
  .pm-v3 .pmr-row > .pmr-w, .pm-v3 .pmr-row > .pmr-kind{ grid-area:w; justify-self:start; }
  .pm-v3 .pmr-row > .pmr-open{ grid-area:open; justify-self:end; min-height:34px; padding:6px 14px; font-size:11.5px; }
  .pm-v3 .pmr-t{ font-size:12.5px; }
  .pm-v3 .pmr-d{ font-size:11px; }
  .pm-v3 .pmr-sec{ margin-top:14px; }

  /* liste : la tuile et les lignes sur toute la largeur */
  .pm-v3 .pm-search--x{ padding:10px 10px 0; }
  .pm-v3 .pm-tabs{ padding:8px 10px 4px; }
  .pm-v3 .pm-side-expand{ display:none; }

  /* fenêtres du composant Proposer une étape : plein écran */
  .pe-modal, .pe-dialog{ width:100vw !important; max-width:100vw !important; height:100dvh; max-height:100dvh; border-radius:0 !important; }
  .pe-actions{ position:sticky; bottom:0; background:#fff; padding-bottom:max(10px, env(safe-area-inset-bottom)); }
  .pe-slot-grid, .pe-hours-grid{ grid-template-columns:repeat(3,minmax(0,1fr)) !important; }

  /* carte d'étape dans le fil : le nom ne déborde pas ; la flèche « aller en bas » à droite */
  .pm-v3 .pe-card-who > div{ min-width:0; }
  .pm-v3 .pe-card-who > div > b, .pm-v3 .pe-card-who > div > small{ display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .pm-v3 .pe-card .pe-when, .pm-v3 .pe-card .pe-card-when{ font-size:17px; }
  .pm-v3 .pe-card-cmain{ flex-direction:column; align-items:stretch; gap:10px; }
  .pm-v3 .pe-card-cmain > div:first-child{ min-width:0; }
  .pm-v3 .pe-card-cfoot{ justify-content:flex-start; flex-wrap:wrap; gap:8px; }
  .pm-v3 .pe-card-cfoot .pe-cbtn{ flex:1 1 40%; text-align:center; min-height:40px; }
  .pm-v3 .pe-card-cfoot .pe-card-open{ flex:1 1 100%; justify-content:center; padding:8px 4px; }
  .pm-v3 .pe-card-cfoot .pe-card-cnote{ flex:1 1 100%; margin:0; }
  .pm-v3 .pe-card-when, .pm-v3 .pe-card.is-compact .pe-card-when{ font-size:17px; }
  .pm-v3 .pm-tobottom{ left:auto; right:14px; transform:translate(0, 6px); }
  .pm-v3 .pm-tobottom.is-on{ transform:translate(0, 0); }

  /* fiche talent / fiche maison : pleine largeur */
  .pm-profile-pane{ width:100vw !important; max-width:100vw !important; }
}

/* ══ B3 tache 039 — AC34.9 : le repli d'un message long ════════════════════
   La source du 12/09 n'a pas ce repli, parce qu'elle n'a pas de message de
   6 000 caracteres. Sans lui, une bulle pousse le reste du fil hors de l'ecran
   et l'ancrage ne tient plus a 390 px : c'est le cas ou la maquette est fausse
   (cf. decisions.md, « a signaler »).

   Un `<details>` natif : aucune ligne de JavaScript, le texte entier est dans
   la page (donc trouvable par la recherche du navigateur, et imprimable), et
   l'etat ouvert/ferme est celui du navigateur. Seul le chevron par defaut est
   remplace, pour que le resume se lise comme un lien de la messagerie. */
.pm-v3 .pm-bmore{ margin-top:2px; }
.pm-v3 .pm-bmore > summary{
  display:inline-flex; align-items:center; gap:4px; cursor:pointer; list-style:none;
  font-size:11.5px; font-weight:700; color:var(--gold-800); padding:2px 0;
}
.pm-v3 .pm-bmore > summary::-webkit-details-marker{ display:none; }
.pm-v3 .pm-bmore > summary::after{ content:"▾"; font-size:10px; }
.pm-v3 .pm-bmore[open] > summary::after{ content:"▴"; }
.pm-v3 .pm-bmore > summary:hover{ text-decoration:underline; }
/* Le corps d'une bulle n'etire jamais la bulle : un mot de deux cents
   caracteres (une URL collee) debordait a 390 px. */
.pm-v3 .pm-bub p{ overflow-wrap:anywhere; }
/* ══ DÉFAUT TROUVÉ EN CHEMIN — tâche 048, hors périmètre de la fiche ═══════
   Le filet vertical de la frise d'état (`<span class="rail">`, rendu par
   `shared/conversations/_v3_context` et `shared/steps/_timeline`) était
   ÉCRASÉ par une règle d'une autre feuille.

   La cause : `talent_onboarding.css:148` déclare un `.rail` GLOBAL, sans
   racine de page — c'est le rail de l'onboarding talent, une colonne de
   432 px avec fond dégradé, bordure, ombre et `height:calc(100vh - 28px)`.
   Propshaft sert les 66 feuilles du produit sur CHAQUE page
   (`ApplicationHelper#product_stylesheets_paths`, hasard déjà nommé deux fois
   en tête des deux feuilles de messagerie) : cette règle atteignait donc le
   filet de 2 px de la messagerie, qui porte le même nom de classe.

   Ce qui se voyait, mesuré au navigateur le 21/09 sur
   `/talent/conversations/:id`, volet de contexte ouvert : trois blocs crème
   de 60 px de large et 1 257 px de haut, empilés par-dessus la frise, les
   « Documents échangés » et le bas du volet. Le fond masquait les libellés
   des étapes, et le bloc INTERCEPTAIT LES CLICS — un `elementFromPoint` sur
   les boutons du bas rendait `SPAN.rail`, pas le bouton. Les deux rôles et
   les deux surfaces (colonne V3, tiroir V2) étaient touchés.

   `.pm-step .rail` ne suffisait pas à s'en défendre : il gagne la largeur et
   la position, mais il ne DÉCLARAIT PAS le fond, le cadre, la hauteur ni le
   `display` — donc ceux du rail d'onboarding passaient. On les repose ici,
   une fois, à une portée qui couvre les deux surfaces (`.page-messages`).
   Le rendu visé est celui de la maquette : un filet de 2 px, doré quand
   l'étape est faite ou courante, gris sinon. */
.page-messages .pm-step .rail {
  display: block;
  height: auto;
  min-width: 0;
  padding: 0;
  margin: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  overflow: visible;
  z-index: 0;
}

/* La dernière étape n'a pas de filet : il descendrait sous la frise, vers
   rien. La règle d'origine le dit déjà (`.pm-step:last-child .rail`), mais à
   spécificité égale c'est la dernière chargée qui gagne, et les deux feuilles
   de messagerie sont servies AVANT celle-ci (voir le commentaire d'ordre en
   tête des deux vues). On la repose donc ici, après le correctif. */
.page-messages .pm-step:last-child .rail { display: none; }

/* #4668 (Tatianna, 07/10) — « bug au niveau des CTA ». Le pied de la carte
   « Proposition reçue » gardait le dessin V2 : un bandeau gris, « Accepter »
   étiré sur 340 px en texte BLANC sur un dégradé or qui pâlit vers la droite
   (illisible à moitié), « Décliner » rejeté à l'autre bout de la carte, sous la
   pastille du widget. Il prend le pied validé de la maquette V3
   (mockups/talent/messages, `.od-foot`, l. 1254-1265) : fond blanc et filet
   fin, bouton compact en texte encre, « Décliner » juste à côté, la note sur sa
   propre ligne. Le balisage ne change pas (button_to + <details>) : seule la
   présentation suit la maquette. */
.pm-v3.pm-talent .pm-offer-banner .pm-offer-foot{
  background:#fff; border-top:1px solid #F1ECDF; padding:10px 14px 11px;
}
.pm-v3.pm-talent .pm-offer-banner .pm-offer-foot-actions{ gap:14px; }
.pm-v3.pm-talent .pm-offer-banner .pm-offer-foot-actions > form{ flex:0 0 auto; }
.pm-v3.pm-talent .pm-offer-banner .pm-offer-foot-actions > form .btn{ width:auto; }
.pm-v3.pm-talent .pm-offer-banner .pm-accept{
  padding:9px 22px; border-radius:10px; font-size:13px; font-weight:800;
  color:var(--ink-900); text-shadow:none; box-shadow:0 4px 12px rgba(163,133,67,.22);
}
.pm-v3.pm-talent .pm-offer-banner .pm-decline-wrap{ margin-left:0; }
.pm-v3.pm-talent .pm-offer-banner .pm-decline-wrap > summary.pm-decline{ font-size:12.5px; }
.pm-v3.pm-talent .pm-offer-banner .pm-decline-wrap > summary.pm-decline:hover{ color:var(--ink-900); }
.pm-v3.pm-talent .pm-offer-banner .pm-offer-foot-note{ margin-top:6px; font-size:11px; color:var(--ink-400); }
@media (max-width: 640px){
  /* Maquette à 390 px : « Accepter » sur toute la largeur, « Décliner » dessous. */
  .pm-v3.pm-talent .pm-offer-banner .pm-offer-foot-actions > form{ flex:1 1 100%; }
  .pm-v3.pm-talent .pm-offer-banner .pm-offer-foot-actions > form .btn{ width:100%; min-height:42px; justify-content:center; }
}
