/* Zihma — ESPACE PRESTATAIRE (planche « PRESTAIRE WEB », 38 frames de 1728 px).
   Se pose par-dessus app.css (jetons et composants partages du Lot 5) et
   espace.css (coquille d'application) : la barre laterale, les champs, les
   pilules, les StatCards, la Table, la navigation secondaire, les sections de
   reglages, les interrupteurs et les depots sont les memes composants que
   cote Client, colores par --accent (vert ; brun sur le rail et le Wallet). On ne definit ici que la coquille
   brune, les mises en page des ecrans et les pieces propres au Pro.

   Releves sur la planche (frame de 1728 px) :
     barre laterale   x 21, largeur 244
     colonne contenu  x 296 -> 1727
     pilules du haut  hauteur 50, rayon 25 ; bouton « Publier un bien » 229 x 50 */

/* L'or a ete promu dans app.css (--or / --or-texte). Le rail est un APLAT
   brun (--pro-brun) et une seule nuance, tres legere, vers le bas ; la barre
   basse mobile (espace.css) lit les memes deux jetons. */
:root{
  --pro-brun:#7a5c3f;
  --pro-brun-haut:#7a5c3f;
  --pro-brun-bas:#6e5236;
}

/* ------------------------------------------------------------- coquille */
.pro .esp__barre{background:linear-gradient(180deg,var(--pro-brun-haut),var(--pro-brun-bas))}
.pro .esp__moi img{border-radius:50%;background:var(--surface)}
.pro .esp__tel{color:var(--texte-inverse);opacity:.75}
/* --------------------------------------------------------- barre du haut */
/* a la largeur de frame tout tient sur une ligne ; en dessous, le groupe de
   droite passe a la ligne plutot que de deborder de la page. */
/* Meme regle que l'espace Client : la barre de titre reste en haut. */
/* Meme panneau que l'entete Client : les deux espaces portent la meme piece. */
.pro__haut{display:flex;align-items:center;gap:18px;padding:var(--e3) var(--e5);
           margin-bottom:var(--e2);border-radius:var(--r6);box-shadow:var(--ombre-1);
           flex-wrap:wrap;position:sticky;top:0;z-index:20;background:var(--surface)}
.pro__haut[data-colle="oui"]{box-shadow:var(--ombre-2)}
.pro__titres{flex:0 0 auto}
.pro__titre{font-size:var(--t10);font-weight:700;margin:0 0 2px;line-height:1.2}
/* Meme regle que cote Client : quand aucun titre dominant n'existe, le fil
   d'Ariane EST le <h1> et ne peut pas rester plus petit que ses sections. */
h1.pro__titre{font-size:var(--t11)}
.pro__sous{font-size:var(--t4);color:var(--gris-faible);margin:0;line-height:1.3}
/* Contextes de la barre (annee, plan, campagne) · corrections du 16/09 : ils
   situaient la page mais se lisaient comme deux gros CTA (aplat or, aplat
   gris, 48 px). Ils redeviennent des etiquettes de contexte : 36 px, texte
   13 px, filet leger, fond transparent ; seul le petit jeton garde sa couleur. */
/* 20/09 : la hauteur descend du jeton compact partage (40 px) au lieu d'un
   36 px propre a cette pilule — une etiquette de contexte reste secondaire
   par sa couleur et sa graisse, pas par une hauteur de plus. */
/* tete d'une page metier qui porte des pastilles (tableau de bord, abonnements) */
.pro__tete-metier{display:flex;flex-wrap:wrap;align-items:center;gap:var(--e2) var(--e4);margin:0 0 var(--e4)}
.pro__tete-metier .esp__h1{margin:0}
.pro__pilules{display:flex;flex-wrap:wrap;align-items:center;gap:var(--e2)}
.pro__pilule{--b-haut:var(--b-haut-petit);--b-marge:0 var(--e3) 0 var(--e2);
             --b-texte:var(--b-texte-petit);--b-graisse:500;
             --b-gouttiere:var(--e2);background:transparent;border:1px solid var(--bord);
             color:var(--gris-texte);flex:0 0 auto;white-space:nowrap}
.pro__pilule--contour{--b-marge:0 var(--e3);color:var(--encre)}
.pro__pilule--plan{color:var(--accent);font-weight:600}
.pro__pilule--plan[data-ton="or"]{color:var(--or-texte)}
a.pro__pilule:hover{background:var(--fond-creux);border-color:var(--bord-fort)}
.pro__pilule .ic,.pro__pilule img{width:16px;height:16px;color:var(--gris-faible)}
.pro__jeton{width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;
            justify-content:center;background:var(--accent);color:var(--texte-inverse);flex:0 0 22px}
.pro__jeton .ic,.pro__jeton img{width:14px;height:14px;color:inherit}
/* Sur l'or, un glyphe blanc tombe a 1,9:1. */
.pro__jeton[data-ton="or"]{background:var(--or);color:var(--encre)}
.pro__fin{margin-left:auto;display:flex;align-items:center;gap:18px}
.pro__cta{background:var(--accent);color:var(--texte-inverse)}
.pro__cta:hover{background:var(--accent-sombre)}
.pro__cta--gris{background:var(--gris-champ);color:var(--gris-fort)}
.pro__cta--gris:hover{background:var(--gris-pilule)}
.pro__cta .ic,.pro__cta img{width:20px;height:20px}
.pro__cta .ic{filter:none}
.pro__outils{display:flex;align-items:center;gap:12px}
/* .pro__outil : geometrie et couleurs dans espace.css, avec .esp__rond —
   les deux espaces portent la meme commande d'outil. */
.pro__compte{display:flex;align-items:center;gap:12px}
.pro__compte b{display:block;font-size:var(--t6);font-weight:600;line-height:1.2}
.pro__compte span{display:block;font-size:var(--t4);color:var(--gris-faible)}
.pro__compte .ic{width:18px;height:18px;color:var(--gris-texte)}

/* Une zone de saisie, pas une pilule : elle portait --r-pilule (999 px)
   quand tous les champs du site sont a --r-champ. */
.pro-select{display:inline-flex;align-items:center;gap:10px;height:44px;padding:0 20px;
            border-radius:var(--r-champ);background:var(--gris-champ);font-size:var(--t6);color:var(--gris-fort)}
.pro-select .ic{width:16px;height:16px}

/* Le test de contraste tient a cette ligne : --gris-faible sur menthe echoue. */
.pro-todo{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:var(--t6)}
.pro-todo b{color:var(--gris-texte);font-weight:400}
.pro-todo__vide{color:var(--gris-texte)}
/* une date qui porte un evenement est une commande : main, survol, focus, selection */
.pro .pro-cal button[data-etat="occupe"]{cursor:pointer}
.pro .pro-cal button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* ------------------------------------------------------ offres et listes */
.etiq{display:inline-flex;align-items:center;background:var(--gris-champ);color:var(--gris-fort)}
.etiq[data-ton="sejour"]{background:var(--accent-fond);color:var(--accent-encre)}
.etiq[data-ton="auto"]{background:var(--gris-champ);color:var(--gris-fort)}
.etiq[data-ton="immo"]{background:var(--fond-creux);color:var(--accent)}

.pro-toast{position:relative;margin:26px 0 0 auto;max-width:430px;background:var(--surface);
           border:1.5px solid var(--succes);border-radius:var(--r-champ);padding:20px 24px}
.pro-toast b{display:block;font-size:var(--t7);font-weight:600;color:var(--accent-encre)}
.pro-toast p{font-size:var(--t5);color:var(--gris-texte);margin:6px 0 0;max-width:300px}
.pro-toast button{position:absolute;top:18px;right:18px;color:var(--gris-fort)}
.pro-toast .ic{width:18px;height:18px}

/* ------------------------------------------------------------ adaptatif */
@media (max-width:900px){
  .pro__haut{flex-wrap:wrap;padding-right:0}
  .pro__titres{flex:1 1 100%;min-width:0}
  .pro__titre{font-size:var(--t8);overflow-wrap:anywhere}
  .pro-modale__tete{flex-wrap:wrap}
  .pro-modale{padding:18px}
  .pro-photos__vides{flex-wrap:wrap}
  .pro-photos__vide{flex:1 1 100%}
  .pro-photos__grille{grid-template-columns:minmax(0,1fr)}
  .pro-photos__grande{grid-row:auto}
  .pro-depot{padding:22px 14px}
  .pro__haut::after{left:0;right:0}
  .pro__fin{margin-left:0;width:100%;flex-wrap:wrap}
}

/* =================================================== composants du prestataire
   Ce qui suit couvre les 30 ecrans qui ne sont ni un tableau ni une grille de
   cartes : formulaires de publication, tarif, verification, detail d'offre,
   abonnements, campagnes, boost, profil. Les champs, pilules et tableaux
   viennent d'espace.css ; on ne definit ici que les blocs propres a ces ecrans. */

/* apercu de l'offre (publication, tarif, verification, campagnes) */
.pro-apercu{background:var(--fond);border-radius:var(--r-carte);padding:22px}
.pro-apercu__eti{font-size:var(--t1);letter-spacing:.08em;color:var(--gris-faible);text-align:center;margin:0 0 16px}
.pro-apercu__vue{position:relative;border-radius:var(--r4);overflow:hidden;
                 background:var(--gris-champ)}
.pro-apercu__img{width:100%;height:auto;display:block}
/* Le meme voile que la carte du site : l'apercu doit montrer ce que le visiteur
   verra, pas une variante. */
.pro-apercu__vue::after{content:"";position:absolute;left:0;right:0;bottom:0;
  height:46%;pointer-events:none;
  background:linear-gradient(180deg,rgba(6,20,18,0) 0%,rgba(6,20,18,.34) 26%,
                             rgba(6,20,18,.80) 54%,rgba(6,20,18,.94) 100%)}
/* « Nouveau » est un ETAT, pas une note : il se lit en haut a gauche, la ou on
   lit un statut, et sans etoile. */
.pro-apercu__etat{position:absolute;top:14px;left:14px;z-index:2;
  display:inline-flex;align-items:center;height:28px;padding:0 var(--e3);
  border-radius:var(--r-pilule);background:var(--surface);color:var(--accent-encre);
  font-size:var(--t1);font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.pro-apercu__coeur{position:absolute;top:14px;right:14px;z-index:2;
                   width:34px;height:34px;border-radius:50%;
                   background:var(--voile-blanc);display:inline-flex;
                   align-items:center;justify-content:center}
/* Trois lignes, plafonnees au quart comme sur la carte du site. */
.pro-apercu__pied{position:absolute;left:0;right:0;bottom:0;z-index:2;
  box-sizing:border-box;max-height:25%;overflow:hidden;
  padding:0 var(--e4) var(--e3);display:flex;flex-direction:column;
  justify-content:flex-end;gap:2px;color:var(--texte-inverse)}
.pro-apercu__nom,.pro-apercu__lieu,.pro-apercu__prix{min-width:0;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;
  /* Le pied est une colonne serree contre le bas de la vignette : sans ce
     `flex-shrink:0` les trois lignes se tassaient, et l'epingle de 13 px se
     retrouvait rognee de 3 px en haut et en bas par sa propre ligne. */
  flex-shrink:0}
.pro-apercu__nom{font-size:var(--carte-titre);font-weight:700;line-height:1.15;
  color:var(--texte-inverse);display:block}
.pro-apercu__lieu{display:flex;align-items:center;gap:5px;font-size:var(--t1);
  line-height:1.2;color:var(--texte-inverse);opacity:.94}
/* Le nom coupe a l'ellipse ; l'epingle, elle, se faisait rogner de 3 px. */
.pro-apercu__lieu .ic{flex:0 0 auto}
.pro-apercu__prix{display:flex;align-items:baseline;gap:5px;margin:2px 0 0;
  font-size:var(--carte-prix);line-height:1.15;font-weight:700;
  color:var(--texte-inverse)}
.pro-apercu__prix b{font-size:inherit;font-weight:700;color:inherit}
.pro-apercu__unite{font-size:inherit;font-weight:500;opacity:.9}
.pro-apercu__note{font-size:var(--t3);color:var(--gris-faible);text-align:center;margin:16px 0 0;line-height:1.5}
.pro-apercu--petit{background:var(--surface);padding:0}
.pro-apercu__t{display:flex;align-items:center;gap:10px;font-size:var(--t8);font-weight:600;
               color:var(--accent);margin:0 0 12px}
.pro-apercu__x{font-size:var(--t4);color:var(--gris-texte);line-height:1.5;margin:0 0 20px}

/* choix de la categorie : les six tuiles legacy (298 px, vides) n'existent plus,
   /pro/publication.html rend l'assistant (tuiles .pub__univers). Reste la
   question d'objectif d'une campagne. */
.pro-choix__q{font-size:var(--t8);font-weight:600;margin:0 0 22px}

/* sections de formulaire */
.pro-pub{display:grid;grid-template-columns:1fr 1fr;gap:36px 64px;margin-top:30px}
.pro-sect{margin-bottom:44px}
.pro-sect__titre{font-size:var(--t9);font-weight:700;margin:0 0 18px}
.pro-sect__titre i,.esp-champ2__e i,.pro-modale__titre i,.esp-form__photo i{color:var(--erreur);font-style:normal}
.pro-sect__tete{display:flex;align-items:center;gap:16px;margin-bottom:18px}
.pro-sect__tete .pro-sect__titre{margin:0;flex:1 1 auto}
.pro-sect__sous{font-size:var(--t8);font-weight:700;margin:0;flex:1 1 auto}
.pro-ajouter{background:var(--gris-champ);color:var(--gris-texte)}
.pro-ajouter:hover{background:var(--gris-pilule)}
.pro-ajouter .ic,.pro-ajouter img{width:16px;height:16px;flex:0 0 16px}
/* Les pictogrammes monochromes sont des <span> masques, plus des <img> :
   `.ic` les couvre tous les deux. */
.pro-visuel > .ic{width:46px;height:46px}
/* Quatre colonnes fixes donnaient des tuiles de 100 px sous 1500 px : les trois
   commandes de la tuile (retirer, remplacer, principale) n'y tenaient plus sur
   une ligne. La grille se remplit desormais par tuiles d'au moins 132 px — soit
   les quatre colonnes de la maquette a la largeur de frame, trois en dessous. */
.pro-visuels{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:16px}
.pro-visuel{aspect-ratio:1/1;border:1.5px dashed var(--accent-bord);border-radius:var(--r4);background:var(--surface);
            display:flex;align-items:center;justify-content:center;position:relative}
.pro-visuel img{width:100%;height:100%;object-fit:cover;border-radius:var(--r-champ)}
.pro-visuel--plein{border-style:solid;border-color:transparent;padding:0}
.pro-plat{position:relative;display:block}
.pro-plat__nom{position:absolute;left:50%;bottom:10px;transform:translateX(-50%);
               max-width:calc(100% - 8px);overflow:hidden;text-overflow:ellipsis;
               background:var(--accent);color:var(--texte-inverse);border-radius:var(--r-pilule);
               padding:5px 14px;font-size:var(--t3);white-space:nowrap}
.pro-zone{width:100%;min-height:400px;border:1px solid var(--gris-pilule);border-radius:var(--r-champ);
          background:var(--surface);padding:18px;font:inherit;font-size:var(--t6);resize:vertical}
.pro-zone--courte{min-height:96px}

.pro-puces{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.pro-puce{display:inline-flex;align-items:center;gap:8px;background:var(--gris-champ);border-radius:var(--r2);
          padding:8px 14px;font-size:var(--t5);color:var(--gris-fort)}
.pro-puce--nu{background:var(--gris-champ)}
.pro-liste{margin-top:22px}
.pro-detail__case{display:flex;align-items:center;justify-content:space-between;gap:16px;
                  font-size:var(--t6);padding:10px 0}
.pro-detail__l{display:flex;align-items:center;justify-content:space-between;gap:16px;
               font-size:var(--t6);padding:8px 0}
/* Le compteur est le composant partage d'app.css (.compteur, .compteur__b, .compteur__v). */

/* « 1fr » vaut « minmax(min-content,1fr) » : une etiquette longue elargit la
   colonne et pousse la page. Les colonnes doivent pouvoir se retrecir. */
.pro-duo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;margin:14px 0}
/* Sans repli, le premier bouton d'une rangee alignee a droite sort par la
   GAUCHE sous 400 px et devient inatteignable. Vaut pour les quatre
   rangees d'actions du site. */
.pro-pub__actions{display:flex;justify-content:flex-end;gap:18px;margin-top:20px;flex-wrap:wrap}
.pro-pub__actions--fin{margin-top:44px}

/* photos de l'offre */
.pro-photos{display:grid;grid-template-columns:minmax(0,1fr) 430px;gap:40px;margin-top:20px}
.pro-photos__titre{font-size:var(--t11);font-weight:700;margin:36px 0 10px}
.pro-photos__note{font-size:var(--t6);color:var(--gris-fort);margin:0}
.pro-depot{border:1.5px dashed var(--bord-fort);border-radius:var(--r-carte);padding:34px;text-align:center;
           margin-top:22px}
.pro-depot .ic{width:34px;height:34px;color:var(--accent);margin:0 auto 12px}
.pro-depot b{display:block;font-size:var(--t7);font-weight:600}
.pro-depot p{font-size:var(--t4);color:var(--gris-texte);margin:6px 0 16px}
.pro-depot__b{background:var(--accent-fond);color:var(--accent)}
.pro-photos__grille{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:12px;
                    margin-top:22px}
.pro-photos__grille figure{margin:0;position:relative}
.pro-photos__grande{grid-row:span 2}
.pro-photos__grille img{width:100%;height:100%;object-fit:cover;border-radius:var(--r-champ);display:block}
.pro-photos__grande img{height:300px}
.pro-photos__grille figcaption{position:absolute;top:12px;left:12px;background:var(--surface);
                               border-radius:var(--r-pilule);padding:6px 14px;font-size:var(--t3);
                               font-weight:600;display:inline-flex;align-items:center;gap:6px}
.pro-photos__vides{display:flex;gap:22px;margin-top:22px}
.pro-photos__vide{flex:0 0 230px;height:170px;border:1.5px dashed var(--bord-fort);border-radius:var(--r-champ);
                  display:flex;flex-direction:column;align-items:center;justify-content:center;
                  gap:6px;font-size:var(--t4);color:var(--gris-faible)}
.pro-photos__select{display:block;max-width:350px;margin-top:14px}
.pro-conseil{background:var(--fond);border-radius:var(--r5);padding:26px;align-self:start}
.pro-conseil__titre{display:flex;align-items:center;gap:10px;font-size:var(--t8);font-weight:600;
                    color:var(--accent);margin:0 0 12px}
.pro-conseil__texte{font-size:var(--t4);color:var(--gris-texte);line-height:1.55;margin:0 0 22px}

/* tarif */
.pro-tarif{display:grid;grid-template-columns:minmax(0,1fr) 430px;gap:44px;margin-top:60px}
.pro-tarif__titre{font-size:var(--t12);font-weight:700;margin:0 0 12px}
.pro-tarif__sous{font-size:var(--t6);color:var(--gris-texte);line-height:1.55;margin:0 0 34px;max-width:520px}
.pro-tarif__carte{padding:24px}
/* L'etape « Prix et engagement » (§7) : mode, acompte, politique, capacite.
   Les intertitres et les trois nombres reprennent le format deja dessine —
   meme etiquette, meme boite de saisie que le prix juste au-dessus. */
.pro-tarif__carte + .pro-tarif__carte{margin-top:22px}
.pro-tarif__h2{margin:0 0 6px;font-size:var(--t7);font-weight:600}
.pro-tarif__carte > .pro-tarif__h2:not(:first-child){margin-top:30px}
.pro-tarif__aide{margin:0 0 16px;font-size:var(--t3);color:var(--gris-texte);line-height:1.5}
.pro-tarif__trio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.pro-tarif__champ{min-width:0}

/* La boite de saisie du tarif et ses deux etiquettes suivent le format des
   champs : elles etaient a 12 px et 8 px. */
.pro-tarif__saisie{display:flex;align-items:center;gap:14px;background:var(--fond);border-radius:var(--r-champ);
                   padding:12px 16px}
.pro-tarif__devise,.pro-tarif__unite{display:inline-flex;align-items:center;gap:8px;
                                     background:var(--accent-fond);border-radius:var(--r-champ);
                                     padding:8px 12px;font-size:var(--t6);color:var(--accent-encre)}
.pro-tarif__unite{margin-left:auto}
.pro-tarif__val{font-size:var(--t14);font-weight:600}
.pro-tarif__calcul{background:var(--accent-fond);border-radius:var(--r-bouton);padding:18px 22px;margin-top:22px}
.pro-tarif__calcul hr{border:0;margin:14px 0}
.pro-tarif__l{display:flex;justify-content:space-between;gap:20px;font-size:var(--t5);color:var(--accent-encre);
              margin:0 0 10px}
.pro-tarif__l--fort{font-size:var(--t7);color:var(--accent);margin:0 0 8px}

/* verification finale */
.pro-verif__titre{font-size:var(--t14);font-weight:700;color:var(--accent-encre);margin:26px 0 12px}
.pro-verif__sous{font-size:var(--t6);color:var(--gris-fort);line-height:1.55;margin:0 0 34px;max-width:660px}
.pro-verif{display:grid;grid-template-columns:minmax(0,1fr) 430px;gap:40px;align-items:start}
.pro-verif__col{display:flex;flex-wrap:wrap;gap:22px}
.pro-verif__b{flex:1 1 100%;border:1px solid var(--gris-pilule);border-radius:var(--r4);padding:24px}
.pro-verif__b--demi{flex:1 1 calc(50% - 11px)}
.pro-verif__tete{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.pro-verif__tete h3{display:flex;align-items:center;gap:10px;font-size:var(--t7);font-weight:600;
                    color:var(--accent);margin:0}
.pro-verif__lien{margin-left:auto;font-size:var(--t4);text-decoration:underline;color:var(--gris-fort)}
.pro-verif__paires{display:grid;grid-template-columns:1fr 1fr;gap:14px 26px}
.pro-verif__k{display:block;font-size:var(--t3);color:var(--gris-faible)}
.pro-verif__v{font-size:var(--t6);margin:2px 0 0}
.pro-verif__t{font-size:var(--t5);color:var(--gris-fort);margin:0 0 4px;line-height:1.5}
.pro-verif__gros{font-size:var(--t9);font-weight:600;color:var(--accent);margin:0}
.pro-verif__images{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.pro-verif__images img{width:100%;height:190px;object-fit:cover;border-radius:var(--r-bouton)}
.pro-moderation{background:var(--accent-fond);border-radius:var(--r-carte);padding:26px;margin-top:26px}
.pro-moderation h3{display:flex;align-items:center;gap:10px;font-size:var(--t7);font-weight:600;
                   color:var(--accent);margin:0 0 12px}
.pro-moderation .esp-btn{width:100%;margin-top:20px}


/* avis (fiche de gestion, reputation) */
.pro-detail__fl--g{left:16px}
.pro-detail__fl--d{right:16px}
.pro-detail__carte{width:100%;height:auto;margin-top:14px}
.pro-avis__liste{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}
.pro-avis{background:var(--fond);border-radius:var(--r-champ);padding:18px}
.pro-avis__tete{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.pro-avis__tete img{width:42px;height:42px;border-radius:50%;object-fit:cover}
.pro-avis__initiales{width:42px;height:42px;flex-basis:42px;font-size:var(--t2)}
.pro-avis__tete b{font-size:var(--t6);font-weight:600}
/* --or est un APLAT (1,9:1 en trait sur ivoire) ; les etoiles se lisent,
   elles prennent donc --or-texte, comme celles de app.css. */
.pro-avis__etoiles{display:flex;gap:2px;color:var(--or-texte)}
.pro-avis__etoiles .ic{width:15px;height:15px}
.pro-avis__etoiles .ic[data-icone="etoile-pleine"]{fill:currentColor}
.pro-avis__date{margin-left:auto;font-size:var(--t3);color:var(--gris-faible)}
.pro-avis__texte{font-size:var(--t4);color:var(--gris-texte);line-height:1.5;margin:0}
/* reponse du prestataire (17/09/2026) : l'existante en retrait, sinon « Répondre » qui deplie un champ */
.pro-avis__rep{margin:var(--e3) 0 0;padding:var(--e3) var(--e3) var(--e3) var(--e4);border-left:3px solid var(--accent);
  background:var(--surface);border-radius:0 var(--r2) var(--r2) 0}
.pro-avis__rep-l{display:flex;align-items:center;gap:6px;margin:0 0 4px;font-size:var(--t2);font-weight:600;color:var(--accent-encre)}
.pro-avis__rep-l .ic{width:14px;height:14px}
.pro-avis__rep-t{margin:0;font-size:var(--t3);color:var(--gris-fort);line-height:1.5}
.pro-avis__reponse{margin-top:var(--e3)}
.pro-avis__repondre{display:inline-flex;align-items:center;gap:6px;min-height:var(--tactile);padding:0 var(--e3);
  border-radius:var(--r-pilule);border:1px solid var(--bord);background:var(--surface);font-size:var(--t3);font-weight:600;
  color:var(--vert);cursor:pointer;list-style:none}
.pro-avis__repondre::-webkit-details-marker{display:none}
.pro-avis__repondre:hover{background:var(--accent-fond)}
.pro-avis__reponse[open] .pro-avis__repondre{background:var(--accent-fond);border-color:var(--accent-bord)}
.pro-avis__form{display:grid;gap:var(--e2);margin-top:var(--e3)}
.pro-avis__champ{width:100%;box-sizing:border-box;padding:var(--e2) var(--e3);border:var(--champ-bord);border-radius:var(--r-champ);
  font:inherit;font-size:var(--t3);resize:vertical;background:var(--surface)}
.pro-avis__envoi{display:flex}
.pro-avis__form .pro-etat{margin:0}

/* abonnements : deux blocs independants (17/09/2026). A. l'abonnement
   Immobilier sur fond blanc borde (plus d'aplat vert : le vert ne reste
   qu'aux accents, le brun a la navigation) : titre, perimetre lu dans le
   catalogue, bascule Mensuelle/Annuelle, quatre PlanCards de meme hauteur
   sur fond ivoire, une seule mise en avant par un lisere or et une pilule
   discrete. B. le Boost & publicite, un bandeau menthe a part. */
.pro-abo{background:var(--surface);border:1px solid var(--bord);border-radius:var(--r5);
         padding:var(--e6);margin:var(--e4) 0 var(--e5)}
.pro-abo__tete{display:flex;flex-direction:column;gap:var(--e2)}
.pro-abo__titre{font-size:var(--t9);font-weight:700;color:var(--encre);margin:0;line-height:1.15;
                letter-spacing:-.01em}
.pro-abo__intro{font-size:var(--t4);color:var(--gris-fort);margin:0}
.pro-abo__perimetre{display:flex;align-items:flex-start;gap:var(--e2);margin:0;font-size:var(--t3);
                    color:var(--accent-encre);background:var(--accent-fond);border-radius:var(--r3);
                    padding:var(--e2) var(--e3);align-self:flex-start;max-width:100%}
.pro-abo__perimetre .ic{flex:0 0 16px;margin-top:2px}
.pro-abo__offres{display:flex;align-items:center;gap:var(--e2) var(--e4);flex-wrap:wrap;
                 margin-top:var(--e6);padding-top:var(--e5);border-top:1px solid var(--bord)}
.pro-abo__h2{font-size:var(--t7);font-weight:700;margin:0;color:var(--encre);flex:1 1 auto;min-width:0}
.pro-abo__sous{font-size:var(--t3);color:var(--gris-texte);margin:0;flex:1 1 100%;order:3}
/* la bascule Mensuelle / Annuelle est le segmented control PARTAGE (.esp-segment,
   app.css) : meme hauteur, meme rayon, aucun contour double ; l'accent du Pro */
.pro-abo__offres .esp-segment a{min-height:var(--tactile);height:auto;font-weight:500}
.pro-abo__offres .esp-segment [aria-current="page"]{background:var(--accent)}
.pro-abo__offres .esp-segment sup{font-size:var(--t1);margin-left:2px;line-height:1}
/* 21/09/2026, measured at 320 px: the two pills (padding 26 px) made the toggle
   290 px wide, centred in a 254 px column, 3 px past the viewport. Below
   360 px they share the column instead. */
@media (max-width:360px){
  .pro-abo__offres .esp-segment{max-width:100%}
  .pro-abo__offres .esp-segment a{flex:1 1 0;min-width:0;padding:0 12px}
}
/* l'usage reel : trois StatCards partagees sous le titre */
.pro-abo__usage{margin-top:var(--e5)}
.pro-abo__perimetre{margin-top:var(--e4)}
.pro-abo .etat-vide{margin-top:var(--e5)}
/* la formule actuelle se reconnait sans dominer : badge + contour vert leger */
.pro-formule__actuelle{position:absolute;top:calc(-1 * var(--pil-haut) / 2);right:var(--e3);white-space:nowrap}
.pro-formule__actuelle .ic{width:12px;height:12px}
.pro-formules{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--e4);margin-top:var(--e5);
              align-items:stretch;grid-auto-rows:1fr}   /* six paliers, une seule hauteur de carte */
.pro-formule{position:relative;display:flex;flex-direction:column;gap:var(--e1);min-width:0;
             background:var(--fond);border:1px solid var(--bord);border-radius:var(--r-carte);
             padding:var(--e5) var(--e4) var(--e4)}
.pro-formule--vedette{border:2px solid var(--or);background:var(--surface)}
.pro-formule--actuelle{border-color:var(--accent-bord);background:var(--surface)}
.pro-formule__reco{position:absolute;top:calc(-1 * var(--pil-haut) / 2);right:var(--e3);
                   white-space:nowrap;font-size:var(--t2)}
.pro-formule__nom{display:flex;align-items:center;gap:var(--e2);font-size:var(--t6);font-weight:700;margin:0}
.pro-formule[data-ton="olive"] .pro__jeton{background:var(--accent)}
.pro-formule[data-ton="or"] .pro__jeton{background:var(--or)}
.pro-formule[data-ton="violet"] .pro__jeton{background:var(--accent)}
.pro-formule__prix{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px;margin:var(--e2) 0 0;
                   font-size:var(--t11);font-weight:700;line-height:1;letter-spacing:-.01em;
                   font-variant-numeric:tabular-nums}
/* l'unite ne se coupe pas entre le « F » et le « CFA » */
.pro-formule__devise{font-size:var(--t4);font-weight:600;color:var(--gris-texte);white-space:nowrap}
.pro-formule__periode{font-size:var(--t3);color:var(--gris-texte);margin:0}
.pro-formule__periode s{color:var(--gris-faible)}
.pro-formule__liste{list-style:none;margin:var(--e3) 0 var(--e4);padding:var(--e3) 0 0;display:grid;gap:var(--e2);
                    align-content:start;flex:1 1 auto;border-top:1px solid var(--bord)}
.pro-formule__liste li{display:flex;align-items:flex-start;gap:var(--e2);font-size:var(--t3);
                       color:var(--gris-fort);line-height:1.4}
.pro-formule__liste .ic{width:14px;height:14px;flex:0 0 14px;margin-top:3px;color:var(--accent)}
.pro-formule__b{margin-top:auto;width:100%}
/* Formule deja souscrite : ce n'est pas une commande, et son libelle reste
   lisible (encre accent sur menthe), pas un bouton grise. */
.pro-formule--actuelle .pro-formule__b{opacity:1;background:var(--accent-fond);color:var(--accent-encre);
                                       pointer-events:none}
/* lien croise discret entre les deux historiques */
.pro-abo__croise-p{margin:var(--e4) 0 0;font-size:var(--t3);color:var(--gris-texte)}
.pro-abo__croise{display:inline-flex;align-items:center;gap:var(--e1);min-height:var(--tactile);
                 color:var(--accent-encre);font-weight:600}
.pro-abo__croise:hover{text-decoration:underline}
.pro-camp__croise{margin:calc(-1 * var(--e3)) 0 var(--e4)}
/* six paliers officiels (17/09/2026) : trois par rangee, deux sous 1240 px, un sous 900 px */
.pro-formules{grid-template-columns:repeat(3,minmax(0,1fr))}
.pro-formule[data-ton="vert"] .pro__jeton{background:var(--accent)}
.pro-abo__regles{margin:var(--e4) 0 0;font-size:var(--t2);color:var(--gris-texte);line-height:1.5;max-width:80ch}
/* formule choisie dans ce navigateur (pro.js) : ses deux actions sous « Formule
   actuelle », le message honnete sous la grille, le retour vers la publication */
.pro-formule__actes{display:flex;flex-wrap:wrap;gap:var(--e2);margin-top:var(--e2)}
.pro-abo__message{margin:var(--e3) 0 0}
.pro-abo__retour{margin:0 0 var(--e4)}
.pro-abo__retour p{display:flex;flex-wrap:wrap;align-items:center;gap:var(--e2) var(--e3);margin:0}
@media (max-width:1240px){.pro-formules{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){
  .pro-abo{padding:var(--e4)}
  .pro-formules{grid-template-columns:minmax(0,1fr);grid-auto-rows:auto}
}

/* campagnes : PageTitle (.tete-section), StatCards partagees, barre d'outils
   de liste, puis UN composant CampaignRow pour les publicites et les boosts :
   [visuel] [nom · type · dates] [statut] [montant] [performance] [actions]. */
.pro-camp__tete{align-items:flex-start;flex-wrap:wrap;margin:var(--e4) 0 var(--e5)}
/* la barre d'outils : SearchField partage + deux FilterSelects (etiquette .filtre__eti,
   select habille par socle.js), alignes en bas ; l'un sous l'autre sous 640 px */
.pro-camp__outils{align-items:flex-end;gap:var(--e3) var(--e4);margin:0 0 var(--e5)}
.pro-camp__q{flex:1 1 260px;max-width:420px}
.pro-camp__sel{display:flex;flex-direction:column;gap:4px;flex:0 1 220px;min-width:0}
.pro-camp__sel .champ-select,.pro-camp__sel select{width:100%}
.pro-camp__sel .filtre__eti{margin:0;text-align:left;align-self:flex-start}
.etat-vide__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--e2);margin-top:var(--e2)}
@media (max-width:640px){
  .pro-camp__q,.pro-camp__sel{flex:1 1 100%;max-width:none}
}
.pro-camp__tete .tete-section__texte{max-width:64ch}
.pro-camp__actions{display:flex;flex-wrap:wrap;gap:var(--e2);flex:0 1 auto;max-width:100%}
.pro-camp__stats{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:var(--e3)}
.pro-camp__section{margin:var(--rythme-section) 0 var(--e3)}
.pro-camp__h2{display:flex;align-items:center;gap:var(--e3);flex-wrap:wrap}
.pro-camp-liste{display:grid;gap:var(--e3)}
.pro-camp-ligne{display:grid;grid-template-columns:96px minmax(0,1fr) 132px 150px 124px auto;
                align-items:center;gap:var(--e4);padding:var(--e3) var(--e4);min-width:0;
                background:var(--surface);border:1px solid var(--bord);border-radius:var(--r-carte)}
.pro-camp-ligne__vue img{display:block;width:96px;height:72px;object-fit:cover;border-radius:var(--r3)}
.pro-camp-ligne__id{min-width:0}
.pro-camp-ligne__nom{font-size:var(--t5);font-weight:600;margin:0;line-height:1.25;overflow-wrap:anywhere}
.pro-camp-ligne__ou{font-size:var(--t2);color:var(--gris-texte);margin:2px 0 0}
.pro-camp-ligne__dates{display:flex;align-items:center;gap:6px;font-size:var(--t2);color:var(--gris-texte);
                       margin:4px 0 0}
.pro-camp-ligne__dates .ic{width:14px;height:14px;flex:0 0 14px}
.pro-camp-ligne .pilule-etat{justify-self:center;white-space:nowrap}
.pro-camp-ligne__montant{margin:0;text-align:right;white-space:nowrap}
.pro-camp-ligne__montant b{display:block;font-size:var(--t5);font-weight:700;font-variant-numeric:tabular-nums}
.pro-camp-ligne__montant i{font-style:normal;font-size:var(--t1);color:var(--gris-texte)}
.pro-camp-ligne__perf{display:flex;gap:var(--e4);margin:0;justify-content:flex-end}
.pro-camp-ligne__perf span{display:flex;flex-direction:column;align-items:flex-end}
.pro-camp-ligne__perf b{font-size:var(--t5);font-weight:700;font-variant-numeric:tabular-nums}
.pro-camp-ligne__perf i{font-style:normal;font-size:var(--t1);color:var(--gris-texte)}
.pro-camp-ligne .table__actions{flex-wrap:nowrap}
@media (max-width:1240px){
  .pro-camp-ligne{grid-template-columns:72px minmax(0,1fr) auto;gap:var(--e2) var(--e3)}
  .pro-camp-ligne__vue img{width:72px;height:54px}
  .pro-camp-ligne__montant{grid-column:2;grid-row:2;text-align:left}
  .pro-camp-ligne__perf{grid-column:3;grid-row:2}
  .pro-camp-ligne .table__actions{grid-column:2 / -1;grid-row:3;justify-content:flex-start}
}
@media (max-width:640px){
  .pro-camp__stats{grid-template-columns:minmax(0,1fr)}
  .pro-camp-ligne{grid-template-columns:64px minmax(0,1fr) auto}
  .pro-camp-ligne__vue img{width:64px;height:48px}
  .pro-camp-ligne__id{grid-column:2 / -1}
  .pro-camp-ligne .pilule-etat{grid-column:2 / -1;grid-row:2;justify-self:start}
  .pro-camp-ligne__montant{grid-row:3}
  .pro-camp-ligne__perf{grid-row:3;flex-wrap:wrap}
  .pro-camp-ligne .table__actions{grid-column:2 / -1;grid-row:4}
}

/* etapes de campagne : stepper compact commun a la famille (ronds de 28 px,
   libelles, trait fin, pas d'etirement). Sous 640 px, « Étape n sur 4 ·
   titre » + barre, comme la progression de l'assistant de publication. */
.pro-etapes{margin:var(--e5) 0}
.pro-etapes__liste{list-style:none;margin:0;padding:0;display:flex;align-items:center;flex-wrap:wrap;
                   gap:var(--e2) var(--e3)}
.pro-etape{display:flex;align-items:center;gap:var(--e2);font-size:var(--t3);font-weight:500;
           color:var(--gris-texte)}
.pro-etape__rond{width:28px;height:28px;border-radius:50%;background:var(--accent-fond);color:var(--accent);
                 display:inline-flex;align-items:center;justify-content:center;font-size:var(--t2);
                 font-weight:700;flex:0 0 28px}
.pro-etapes .pro-etape__rond{background:var(--fond-creux);color:var(--gris-texte)}
.pro-etape[data-etat="fait"] .pro-etape__rond{background:var(--succes-fond);color:var(--succes)}
.pro-etape[data-etat="actif"]{color:var(--encre);font-weight:600}
.pro-etapes .pro-etape[data-etat="actif"] .pro-etape__rond{background:var(--accent);color:var(--texte-inverse)}
.pro-etape + .pro-etape::before{content:"";width:28px;height:1px;flex:0 0 28px;background:var(--bord)}
.pro-etape[data-etat="fait"] + .pro-etape::before{background:var(--accent)}
.pro-etapes__compact{display:none}
.pro-camp__duo{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,360px);gap:var(--e5);
               align-items:start}
.pro-carte-blanche{background:var(--surface);border:1px solid var(--bord);border-radius:var(--r-carte);
                   padding:var(--e5);min-width:0}
.pro-carte-menthe{background:var(--accent-fond);border:1px solid var(--accent-bord);border-radius:var(--r-carte);
                  padding:var(--e4);min-width:0;position:sticky;top:calc(var(--e8) + var(--e4))}
/* ChoiceCard compacte : toute l'etiquette est cliquable ; la coche suit le
   vrai bouton radio (etat coche plus bas : lisere accent). */
.pro-objectif{display:flex;align-items:flex-start;gap:var(--e3);border-radius:var(--r-champ);
              background:var(--surface);border:1px solid var(--bord);padding:var(--e3) var(--e4);
              margin-bottom:var(--e2);cursor:pointer;position:relative;
              transition:border-color var(--mvt),background var(--mvt)}
.pro-objectif input{position:absolute;opacity:0;width:0;height:0}
.pro-objectif__ic{width:36px;height:36px;border-radius:50%;background:var(--accent-fond);color:var(--accent);
                  display:grid;place-items:center;flex:0 0 36px}
.pro-objectif__ic .ic{width:18px;height:18px}
.pro-objectif__texte{flex:1 1 auto;min-width:0}
.pro-objectif b{display:block;font-size:var(--t5);font-weight:600;margin-bottom:2px}
.pro-objectif p{font-size:var(--t3);color:var(--gris-texte);line-height:1.45;margin:0}
.pro-radio{width:20px;height:20px;border-radius:50%;border:2px solid var(--accent-bord);flex:0 0 20px;
           margin-top:3px;display:inline-flex;align-items:center;justify-content:center}
.pro .pro-objectif:has(:checked) .pro-radio.pro-radio--rond{background:var(--accent);border-color:var(--accent);
              color:var(--texte-inverse);box-shadow:none}
@media (max-width:1240px){
  .pro-camp__duo{grid-template-columns:minmax(0,1fr)}
  .pro-carte-menthe{position:static}
}
@media (max-width:640px){
  .pro-etapes__liste{display:none}
  .pro-etapes__compact{display:block;background:var(--surface);border:1px solid var(--bord);
                       border-radius:var(--r-carte);padding:var(--e3) var(--e4)}
  .pro-carte-blanche{padding:var(--e4)}
}
.pro-fenetre{background:var(--surface);border-radius:var(--r-bouton);padding:0 0 18px;overflow:hidden;margin-top:22px}
.pro-fenetre__barre{display:block;height:20px;background:var(--lagune-fond)}
.pro-fenetre__ou{display:block;text-align:center;background:var(--accent-fond);color:var(--accent-encre);
                 border-radius:var(--r-pilule);padding:5px 14px;font-size:var(--t2);margin:16px auto;
                 width:fit-content}
.pro-fenetre__vue{position:relative;width:230px;margin:0 auto}
.pro-fenetre__vue img{width:100%;height:200px;object-fit:cover;border-radius:var(--r3)}
.pro-fenetre__badge{position:absolute;top:10px;left:10px;display:inline-flex;align-items:center;
                    gap:6px;background:var(--accent);color:var(--texte-inverse);border-radius:var(--r-pilule);
                    padding:5px 12px;font-size:var(--t2)}
.pro-fenetre__ligne{display:block;height:14px;background:var(--accent-fond);border-radius:var(--r2);
                    margin:10px 26px}
.pro-fenetre__ligne:last-child{width:55%}
.pro-actions{display:flex;justify-content:center;gap:18px;margin-top:34px}
/* etape « formule » : l'offre a booster est la VRAIE carte d'annonce du
   catalogue (.carte, app.css), puis trois FormulaCards comparables de meme
   hauteur ; toute la carte selectionne (etat coche plus bas). */
.pro-camp__bloc{margin-bottom:var(--e4)}
.pro-camp__offre{display:flex}
.pro-camp__offre .carte{flex:0 1 var(--carte-l);max-width:100%}
/* les cartes de formule du BOOST sont .boost-formule (plus bas) ; le tag de duree est partage */
.pro-formule__duree{flex:0 0 auto;display:inline-flex;align-items:center;height:22px;padding:0 var(--e2);
                    background:var(--lagune-fond);color:var(--lagune);border-radius:var(--r-pilule);
                    font-size:var(--t1);font-weight:600;letter-spacing:.04em;text-transform:uppercase;
                    white-space:nowrap}
.pro-formule__texte{font-size:var(--t3);color:var(--gris-texte);line-height:1.5;margin:0}
.pro-radio--rond{border-radius:50%;border:1.5px solid var(--bord-fort);width:24px;height:24px;flex:0 0 24px;
                 display:inline-flex;align-items:center;justify-content:center;color:transparent;
                 background:var(--surface);transition:background var(--mvt),border-color var(--mvt)}
.pro-radio--rond .ic{width:13px;height:13px}


/* boost : compteur de reduction, totaux (avis, membre), moyens */

.pro-reduction{align-items:flex-start;margin-top:20px}
.pro-reduction b{display:block;font-size:var(--t6);font-weight:500}
.pro-reduction p{font-size:var(--t4);color:var(--gris-texte);margin:0}
.pro-totaux{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:16px 0 30px}
.pro-totaux--trois{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:22px}
.pro-totaux > div{background:var(--accent-fond);border-radius:var(--r-bouton);padding:16px 20px}
.pro-totaux--trois > div{background:var(--fond)}
.pro-total__l{font-size:var(--t5);color:var(--gris-fort);margin:0}
.pro-total__v{font-size:var(--t9);font-weight:600;color:var(--accent);margin:6px 0 0}
.pro-moyens{display:flex;gap:12px;margin:16px 0 22px}
.pro-moyen{display:inline-flex;align-items:center;height:40px;padding:0 20px;border-radius:var(--r-champ);
           background:var(--gris-champ);font-size:var(--t5);color:var(--gris-fort);cursor:pointer}
.pro-moyen input{position:absolute;opacity:0;width:0;height:0}
.pro-moyen .ic{width:18px;height:18px;margin-right:8px;flex:0 0 18px}
.pro-reseaux{font-size:var(--t1);font-weight:700;color:var(--gris-faible);letter-spacing:.04em;flex:0 0 auto}

/* modales */
.pro-voile{position:relative;margin-top:-620px;z-index:2;display:flex;justify-content:center;
           pointer-events:none}
.pro-modale{pointer-events:auto;background:var(--surface);border-radius:var(--r5);padding:26px;width:100%;
            max-width:1110px;box-shadow:var(--ombre-3)}
.pro-modale--etroite{max-width:770px}
.pro-modale__tete{display:flex;align-items:center;gap:24px;margin-bottom:18px}
.pro-modale__tete h3{font-size:var(--t10);font-weight:700;margin:0;flex:0 0 auto}
.pro-modale__tete .champ-cherche{flex:1 1 auto}
.pro-modale__titre{font-size:var(--t10);font-weight:700;margin:0 0 26px}
.pro .pro-modale hr{border:0;margin:22px 0 18px}

/* RG-172 : les conditions d'une demande de retrait, et le motif d'une methode
   qu'on ne peut pas choisir. `[disabled]` grise deja la commande (regle « hors
   service ») ; le motif dit POURQUOI, a l'endroit du choix. */
.esp-secu__liste{margin:0 0 26px;padding-left:22px;display:flex;flex-direction:column;
                 gap:6px;font-size:var(--t3);color:var(--gris-texte);line-height:1.5}
.pro-destination[data-verifiee="non"],
.pro-destination:has(input:disabled){opacity:.55;cursor:not-allowed}
.pro-destination__raison{display:block;margin-top:4px;color:var(--accent);font-style:normal}

@media (max-width:1500px){
  .pro-photos,.pro-tarif,.pro-verif{grid-template-columns:minmax(0,1fr) 360px}
}
@media (max-width:1240px){
  .pro-pub,.pro-photos,.pro-tarif,.pro-verif,.pro-detail{grid-template-columns:minmax(0,1fr)}
  .pro-choix__grille{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pro-voile{margin-top:0;position:static}
}
@media (max-width:900px){
  .pro-choix__grille,.pro-duo,.pro-totaux,.pro-verif__paires,
  .pro-avis__liste{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:900px){
  .pro-tarif__saisie{flex-wrap:wrap}
  .pro-tarif__unite{margin-left:0}
  .pro-detail__eq span{flex:0 0 150px}
    }

/* ------------------- reputation (page deduite, ECARTS §3) */
.pro-rep{display:flex;align-items:center;gap:56px;background:var(--fond);
         border-radius:var(--r-carte);padding:28px 34px;flex-wrap:wrap}
.pro-rep__bloc{text-align:center;flex:0 0 auto}
.pro-rep__note{font-size:var(--t15);font-weight:700;color:var(--accent);margin:0;line-height:1}
.pro-rep__note sup{font-size:var(--t7);font-weight:600;margin-left:4px}
.pro-rep__compte{font-size:var(--t4);color:var(--gris-texte);margin:8px 0 0}
.pro-rep__barres{flex:1 1 320px;min-width:0}
.pro-rep__ligne{display:flex;align-items:center;gap:16px;margin-bottom:10px}
.pro-rep__l{flex:0 0 90px;font-size:var(--t4);color:var(--gris-texte)}
.pro-rep__jauge{flex:1 1 auto;height:10px;border-radius:var(--r1);background:var(--gris-pilule);overflow:hidden}
.pro-rep__jauge i{display:block;height:100%;background:var(--accent);border-radius:var(--r1)}
.pro-rep__n{flex:0 0 32px;text-align:right;font-size:var(--t4);color:var(--gris-texte)}
.pro-rep__bien{font-size:var(--t3);color:var(--accent);margin:0 0 8px}

/* -------- retrait, permissions, fiche membre (ecrans deduits, ECARTS §3.5) */
.pro-destination{display:flex;align-items:center;gap:16px;border:1px solid var(--gris-pilule);
                 border-radius:var(--r-champ);padding:16px 20px;margin-bottom:12px;cursor:pointer}
.pro-destination input{position:absolute;opacity:0;width:0;height:0}
.pro-destination b{display:block;font-size:var(--t6);font-weight:500}
.pro-destination i{font-style:normal;font-size:var(--t4);color:var(--gris-faible)}
/* Seul l'element porteur de [data-choisi] passe sur menthe, ou --gris-faible
   ne tient que 4,42:1. Meme correction que .esp-notif__q et .pro-todo b :
   c'est la meme paire de couleurs qui echoue partout ou elle se rencontre. */
.pro .pro-destination:has(:checked) i{color:var(--gris-texte)}
.pro-recap{background:var(--accent-fond);border-radius:var(--r-champ);padding:20px 24px;margin-top:24px}
.pro-recap .esp-paie__total{border-top-color:var(--accent-bord)}
.pro-droits th{font-size:var(--t4);white-space:nowrap}
.pro-droits td{padding:16px 12px 16px 0;text-align:center}
.pro-droits td:first-child{text-align:left}
.pro-droits .esp-case{margin:0 auto}
.pro-membre__tete{display:flex;align-items:center;gap:24px;margin:24px 0 10px}
.pro-membre__tete img{width:88px;height:88px;border-radius:50%;object-fit:cover;flex:0 0 88px}
.pro-membre__tete > div{flex:1 1 auto}
.pro-membre__tete .esp-fiche__nom{margin:0}
.pro-actions--fin{justify-content:flex-end;margin-top:30px}

/* --- Demander un retrait (18/09/2026, demande client E) ---------------------
   Contenu centre (~900 px), carte de solde ivoire a accent brun (plus de
   rectangle brun brut), champ montant avec devise en suffixe, vrais boutons
   radio, recapitulatif dominant, conditions a coches, pied d'actions aligne.
   Les couleurs passent par --accent (brun du contexte Wallet). */
.pro-retrait__page{max-width:920px;margin:0 auto}
.pro-retrait{padding:var(--e6) var(--e7)}
.pro-retrait > .esp__h1{margin-top:0}
.pro-retrait .esp-form__section{margin:var(--e6) 0 var(--e3)}
.pro-solde-carte{margin-top:var(--e5);padding:var(--e5) var(--e6);border-radius:var(--r-carte);
  background:linear-gradient(135deg,var(--fond) 0%,var(--accent-fond) 100%);
  border:1px solid var(--accent-bord);box-shadow:var(--ombre-1)}
.pro-solde-carte__sur{margin:0 0 var(--e2);font-size:var(--t1);font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:var(--accent-encre)}
.pro-solde-carte__ligne{display:flex;align-items:center;justify-content:space-between;gap:var(--e4)}
.pro-solde-carte__montant{margin:0;display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;
  font-size:var(--t13);font-weight:700;line-height:1.1;color:var(--accent-encre);
  font-variant-numeric:tabular-nums;letter-spacing:-.01em;overflow-wrap:anywhere}
.pro-solde-carte__unite{font-size:var(--t5);font-weight:600;color:var(--gris-texte);letter-spacing:.02em}
.pro .pro-solde-carte__oeil{color:var(--accent);border-color:var(--accent-bord);background:var(--surface)}
.pro .pro-solde-carte__oeil:hover:not([disabled]){background:var(--accent-fond)}
.pro-retrait__montant{margin:var(--e6) 0 0}
.pro-retrait__montant .esp-champ2__e{margin-bottom:var(--e2)}
.pro-retrait__montant input{font-size:var(--t8);font-weight:600;font-variant-numeric:tabular-nums}
.pro-retrait__devise{flex:0 0 auto;display:inline-flex;align-items:center;align-self:stretch;
  margin:-1px -18px -1px 0;padding:0 var(--e4);border-left:1px solid var(--bord);
  background:var(--fond-creux);border-radius:0 var(--r-champ) var(--r-champ) 0;
  font-size:var(--t2);font-weight:700;letter-spacing:.06em;color:var(--gris-fort)}
.pro-retrait__montant .esp-champ2__b{overflow:hidden}
.pro-retrait__montant .pro-champ__erreur{margin-top:var(--e2)}
/* vrais boutons radio : ◉ / ○ visibles, la carte n'est que l'etiquette */
.pro-retrait__destinations .pro-destination{margin-bottom:var(--e3);padding:var(--e4) var(--e5);
  border-color:var(--bord-carte);background:var(--surface);transition:border-color var(--mvt-d),background var(--mvt-d)}
.pro-retrait__destinations .pro-destination input{position:static;opacity:1;width:20px;height:20px;
  flex:0 0 20px;margin:0}
.pro .pro-retrait__destinations .pro-destination:has(:checked){border:1px solid var(--accent);
  padding:var(--e4) var(--e5);background:var(--accent-fond)}
.pro .pro-retrait__destinations .pro-destination:has(:disabled){border-style:solid;opacity:1;
  color:var(--gris-texte);background:var(--fond)}
.pro .pro-retrait__destinations .pro-destination:has(:disabled) :is(b,i){color:var(--gris-texte)}
.pro .pro-retrait__destinations .pro-destination:has(:disabled) .esp-mvt__ic{opacity:.6}
.pro .pro-retrait__destinations .pro-destination:has(:disabled) input{opacity:.7}
.pro .pro-retrait__destinations .pro-destination__raison{color:var(--accent-encre);font-size:var(--t3)}
/* recapitulatif : lignes discretes, « Vous recevrez » dominant */
.pro-retrait__recap{margin-top:var(--e6);padding:var(--e5) var(--e6);border-radius:var(--r-carte);
  background:var(--surface);border:1px solid var(--bord-carte)}
.pro-retrait__recap .esp-paie__ligne{font-size:var(--t4);margin:0 0 var(--e3);align-items:baseline}
.pro-retrait__recap .esp-paie__ligne > span:first-child{color:var(--gris-texte)}
.pro-retrait__recap .esp-paie__ligne > span:last-child{font-weight:600;font-variant-numeric:tabular-nums}
.pro-retrait__recap .esp-paie__total{margin:var(--e3) 0 0;padding-top:var(--e4);border-top:1px solid var(--bord-carte);
  border-bottom:0;align-items:baseline;font-size:var(--t8)}
.pro-retrait__recap .esp-paie__total > span:last-child{font-size:var(--t11);color:var(--accent-encre);
  font-variant-numeric:tabular-nums}
/* conditions : bloc leger a coches */
.pro-retrait__conditions{list-style:none;margin:0 0 var(--e5);padding:var(--e4) var(--e5);
  display:flex;flex-direction:column;gap:var(--e2);border-radius:var(--r-carte);
  background:var(--fond-creux);font-size:var(--t3);color:var(--gris-texte);line-height:1.5}
.pro-retrait__conditions li{display:flex;align-items:flex-start;gap:var(--e3)}
.pro-retrait__conditions .ic{width:16px;height:16px;flex:0 0 16px;margin-top:3px;color:var(--succes)}
/* pied : deux commandes de meme hauteur, alignees a droite */
.pro-retrait .pro-actions--fin{margin-top:var(--e5);gap:var(--e3)}
.pro-retrait .pro-actions--fin > :is(a,button){min-width:160px}
.pro-retrait .pro-actions--fin > [aria-disabled="true"]{pointer-events:auto}
@media (max-width:900px){
  .pro-retrait{padding:var(--e5)}
  .pro-solde-carte{padding:var(--e4) var(--e5)}
  .pro-solde-carte__montant{font-size:var(--t11)}
}
@media (max-width:480px){
  .pro-solde-carte__ligne{flex-wrap:wrap}
  .pro-retrait__recap{padding:var(--e4)}
  .pro-retrait__recap .esp-paie__ligne{font-size:var(--t3);gap:var(--e3)}
  .pro-retrait__recap .esp-paie__total{font-size:var(--t6);gap:var(--e3)}
  .pro-retrait__recap .esp-paie__total > span:last-child{font-size:var(--t9)}
  .pro-retrait .pro-actions--fin{flex-direction:column-reverse;align-items:stretch}
  .pro-retrait .pro-actions--fin > :is(a,button){width:100%}
}
@media (max-width:900px){
  .pro-membre__tete{flex-wrap:wrap}
  .pro-droits{white-space:nowrap}
}

/* ================================== tres petits ecrans (320 a 480 px)
   Suite du bloc de meme nom dans espace.css : on ne traite ici que les
   rangees propres au prestataire qui restent rigides a 320 et 390 px.
   Mesure de reference : documentElement.scrollWidth == clientWidth a 320,
   390, 768, 1280 et 1728 px sur toutes les pages /pro/. */
@media (max-width:480px){
  .pro-actions{flex-wrap:wrap}

  /* titres et boutons d'entete : le bouton passe sous le titre plutot que
     de forcer la ligne a sa largeur de contenu. */
  .pro-modale__tete h3{flex:1 1 100%}
  .pro-sect__tete{flex-wrap:wrap}
  .pro-sect__titre,.pro-sect__sous{min-width:0}
  .pro-detail__tete{flex-wrap:wrap}
  .pro-detail__tete .pro-detail__h3{min-width:0}
}

/* ECR-P09 — arrivée par QR ou code court (17/09/2026 : resume en carte, deux
   voies en blocs arrondis a icone, un bouton principal). */
.pro-scan{max-width:820px}
.pro-scan__tete{margin-bottom:var(--e4)}
.pro-scan__intro{margin:var(--e2) 0 0;max-width:60ch}
.pro-scan__resume{display:flex;gap:var(--e3);align-items:flex-start;padding:var(--e4);
  border:1px solid var(--accent-bord);border-radius:var(--r5);background:var(--accent-fond);color:var(--accent-encre)}
.pro-scan__resume-ic{flex:0 0 44px;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;
  border-radius:50%;background:var(--surface);color:var(--accent)}
.pro-scan__resume > div{min-width:0;flex:1 1 auto}
.pro-scan__sur{margin:0 0 var(--e1);font-size:var(--t1);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--gris-texte)}
.pro-scan__contexte{margin:0;font-size:var(--t5);font-weight:600;color:var(--encre);overflow-wrap:anywhere}
.pro-scan__paiement{margin:var(--e1) 0 0;font-size:var(--t3);color:var(--gris-fort)}
.pro-scan__note{margin:var(--e2) 0 0}
.pro-scan__voies{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--e4);margin-top:var(--e5)}
.pro-scan__voie{display:flex;flex-direction:column;align-items:flex-start;gap:var(--e2);padding:var(--e5);min-width:0;
  border:1px solid var(--bord);border-radius:var(--r5);background:var(--surface)}
.pro-scan__icone{display:inline-flex;width:52px;height:52px;align-items:center;justify-content:center;
  border-radius:var(--r3);background:var(--accent-fond);color:var(--accent)}
.pro-scan__h2{margin:var(--e1) 0 0;font-size:var(--t6);font-weight:700}
.pro-scan__texte{margin:0;font-size:var(--t3);color:var(--gris-texte);line-height:1.5}
.pro-scan__b{margin-top:auto;padding-top:var(--e2);width:100%}
.pro-scan__voie .pro-etat{margin:var(--e2) 0 0}
.pro-scan__voie .esp-champ2__e{margin-top:var(--e2)}
.pro-scan__voie .esp-champ2__b{width:100%}
.pro-scan__code input{text-transform:uppercase;letter-spacing:.16em;font-weight:700}
.pro-scan__pied{display:flex;flex-direction:column;align-items:flex-start;gap:var(--e2);margin-top:var(--e5)}
/* Geometrie : la regle de format (48 px). Ce CTA montait a 52 px sans raison. */
.pro-scan__cta{--b-marge:0 var(--e6)}
.pro-scan__pied .pro-etat{margin:0}
@media (max-width:640px){
  .pro-scan__voies{grid-template-columns:minmax(0,1fr)}
  .pro-scan__voie{padding:var(--e4)}
  .pro-scan__cta{width:100%;justify-content:center}
}
/* ============================================================================
   CHAMPS DU PRESTATAIRE — marque d'obligation et etats
   La planche « PRESTAIRE WEB » ne dessine que le repos. Les autres etats sont
   deduits ici, UNE SEULE FOIS pour les 64 ecrans, dans la meme famille que
   l'espace client (espace.css) : trait qui s'assombrit au survol, vert de
   marque au clavier, tirets quand la saisie est fermee, rouge sombre en erreur.
   Rien n'agrandit une boite : les anneaux sont des `outline` (hors flux) et les
   cibles tactiles s'etendent par un calque. Les cotes de la planche a 1728 px
   restent donc inchangees.
   ============================================================================ */

/* --- marque d'obligation ----------------------------------------------------
   L'asterisque seul se perd a la loupe et ne se dit pas : il reste comme
   decor (aria-hidden) et le mot porte l'information. */
/* `.champ-requis` est monte dans app.css : `_requis()` existe dans les DEUX
   espaces, et l'espace Client ne charge pas cette feuille. */


/* --- etats des boites de saisie propres au prestataire ----------------------
   `.esp-champ2__b` est deja traite dans espace.css ; il reste la barre de
   recherche et la zone de texte longue. */
.pro .esp-champ,.pro .pro-zone{transition:border-color var(--mvt-d),box-shadow var(--mvt-d)}
.pro .esp-champ:hover,.pro .pro-zone:hover{border-color:var(--bord-fort)}

.pro .esp-champ:has(:disabled),.pro .pro-zone:disabled{background:var(--fond);
              border-style:dashed;color:var(--gris-faible);cursor:not-allowed}
.pro .esp-champ:has([aria-invalid="true"]),.pro .pro-zone[aria-invalid="true"]{
              border-color:var(--erreur);box-shadow:inset 0 0 0 1px var(--erreur)}

/* --- focus clavier -----------------------------------------------------------
   Les radios et les cases du prestataire sont masquees au profit d'une pastille
   dessinee : sans cet anneau pose sur l'etiquette, un clavier ne saurait pas ou
   il se trouve. `:focus-visible` n'apparait pas au clic de souris. */
.pro :is(a,button,[tabindex]:not(.pub__h2)):focus-visible{
              outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r1)}
/* Les champs (input, select, textarea, zones de depot) suivent l'etat de
   focus commun d'app.css : filet vert et halo menthe, aucun anneau. */
.pro :is(.pro-objectif,.pro-moyen,.pro-destination,.pro-detail__case):has(:focus-visible){
              outline:2px solid var(--accent);outline-offset:2px}
/* Sur la barre laterale vert sombre, le vert de marque ne se detacherait pas. */
.pro .esp__barre :is(a,button,summary):focus-visible{outline-color:var(--texte-inverse)}

/* --- etat coche : il suit la commande, pas seulement la donnee ---------------
   `data-choisi` fige l'etat dessine par la maquette ; `:has(:checked)` le fait
   suivre le vrai choix de la personne.

   Les regles en [data-choisi="oui"] ont ete RETIREES ici, pas seulement
   doublees : tant qu'elles restaient, choisir une autre option en laissait
   DEUX peintes comme retenues — mesure faite sur /pro/retrait.html, ou les
   deux destinations de virement ressortaient ensemble apres un clic. Aucun
   script ne remet cet attribut a jour (app.js et reservation.js le font pour
   .moyen et .cnt-option ; rien ne le fait pour les composants .pro-*), et le
   serveur pose `checked` sur les huit elements concernes : l'etat vivant
   couvre donc aussi le premier rendu. La forme (pastille pleine, coche, trait
   epaissi) double la couleur pour ne pas dependre d'elle. */
.pro .pro-objectif:has(:checked){background:var(--accent-fond);border:1.5px solid var(--accent)}   /* choisi : contour vert, fond menthe leger, coche */
.pro .pro-objectif:has(:checked) .pro-radio{border-color:var(--accent);background:var(--accent);
              box-shadow:inset 0 0 0 3px var(--texte-inverse)}
.pro .pro-moyen:has(:checked){background:var(--accent-fond);color:var(--accent);font-weight:600;
              box-shadow:inset 0 0 0 2px var(--accent)}
.pro .pro-destination:has(:checked){border-color:var(--accent);border-width:2px;padding:15px 19px;
              background:var(--accent-fond)}

/* --- survol des etiquettes cliquables --------------------------------------- */
.pro :is(.pro-objectif,.pro-moyen,.pro-destination):hover{border-color:var(--accent-bord)}

/* --- appui : un enfoncement bref, aucune boite ne bouge dans le flux -------- */
.pro :is(.pro__cta,.esp-btn,.esp-filtre,.pro-acte,.pro-rond,.pro-ajouter,.pro-select,
         .pro-camp__filtre,.pro-importer,.pro-depot__b,.compteur__b,
         .pro-objectif,.pro-moyen,.pro-destination):active{
              transform:scale(.98)}

/* --- hors service ------------------------------------------------------------
   Le gris ne suffit pas : les tirets et le curseur barre le disent aussi. */
.pro :is(input,textarea,select):disabled,
.pro button:disabled:not(.bouton){cursor:not-allowed;opacity:.55}
.pro :is(.pro-objectif,.pro-moyen,.pro-destination,.pro-detail__case,
         .esp-champ2,.esp-champ2__b):has(:disabled){opacity:.55;cursor:not-allowed;
              border-style:dashed}
.pro [aria-disabled="true"]:not(.bouton){opacity:.55;cursor:not-allowed;pointer-events:none}

/* --- chargement --------------------------------------------------------------
   Se pose sur la BOITE (un <input> ne porte pas de pseudo-element) : la saisie
   se ferme et la roue dit l'attente. `aria-busy` la dit aux lecteurs d'ecran. */
.pro :is(.esp-champ2__b,.esp-champ,.esp-btn,.pro__cta,.esp-filtre,.pro-ajouter)[aria-busy="true"]{
              position:relative;pointer-events:none;opacity:.7}
.pro [aria-busy="true"]::after{content:"";position:absolute;top:50%;right:14px;
              width:18px;height:18px;margin-top:-9px;border:2px solid rgba(0,0,0,.18);
              border-top-color:var(--accent);border-radius:50%;
              animation:pro-attente .7s linear infinite}
@keyframes pro-attente{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){
  .pro [aria-busy="true"]::after{animation-duration:2.4s}
  .pro :is(.pro__cta,.esp-btn,.esp-filtre,.pro-acte,.pro-rond,.pro-ajouter,.pro-select,
           .pro-camp__filtre,.pro-importer,.pro-depot__b,.compteur__b,
           .pro-objectif,.pro-moyen,.pro-destination):active{transform:none}
}

/* --- cibles tactiles ---------------------------------------------------------
   La planche dessine des pastilles de 28 a 40 px. Les agrandir deplacerait les
   rangees ; le calque etend la zone qui recoit le doigt SANS toucher a la boite,
   donc sans bouger un seul pixel de la mise en page. */
.pro :is(.compteur__b,.pro-rond,.pro-acte,.pro__outil,.pro__retour,.pro-ajouter,
         .pro-camp__filtre,.pro-importer,.pro-depot__b,.pro-moyen,.pro-select,
         .pro-cal button,.esp-fleche){
              position:relative}
.pro :is(.compteur__b,.pro-rond,.pro-acte,.pro__outil,.pro__retour,.pro-ajouter,
         .pro-camp__filtre,.pro-importer,.pro-depot__b,.pro-moyen,.pro-select,
         .pro-cal button,.esp-fleche)::after{
              content:"";position:absolute;left:50%;top:50%;
              width:max(100%,var(--tactile));height:max(100%,var(--tactile));
              transform:translate(-50%,-50%)}

/* Les cases du calendrier sont des <button> : sans cela elles heritent du
   bouton du navigateur et perdent la rondeur dessinee sur la planche. */
.pro .pro-cal button{height:38px;border-radius:50%;display:inline-flex;align-items:center;
              justify-content:center;font-size:var(--t5);color:var(--encre);background:none;border:0;
              font:inherit;cursor:pointer}
.pro .pro-cal button[data-etat="hors"]{color:var(--gris-faible)}
.pro .pro-cal button[data-etat="occupe"]{background:var(--gris-champ)}
.pro .pro-cal button[data-etat="jour"]{border:1.5px solid var(--accent);color:var(--accent);
              font-weight:600}
.pro .pro-cal button:hover{background:var(--gris-champ)}.pro :is(.seg-pilule,.pro__compte,.esp-pages a){position:relative}.pro :is(.seg-pilule,.pro__compte,.esp-pages a)::after{content:"";
              position:absolute;left:50%;top:50%;
              width:max(100%,var(--tactile));height:max(100%,var(--tactile));
              transform:translate(-50%,-50%)}

/* Dernieres commandes dessinees sous 44 px : la fermeture du bandeau, les
   onglets de notification et les deux liens d'action isoles
   (« Retour », « Modifier »). Seule la hauteur manque, sauf pour la croix du
   bandeau : leurs zones ne peuvent donc pas se chevaucher lateralement.
   Reste hors de cette liste le lien pose DANS une phrase (.esp-fiche__mention) :
   l'agrandir couperait l'interligne du paragraphe. */
.pro :is(.esp-segment a,.pro-verif__lien){position:relative}
.pro :is(.esp-segment a,.pro-verif__lien)::after{content:"";
              position:absolute;left:50%;top:50%;
              width:max(100%,var(--tactile));height:max(100%,var(--tactile));
              transform:translate(-50%,-50%)}
.pro .pro-toast button::after{content:"";position:absolute;left:50%;top:50%;
              width:max(100%,var(--tactile));height:max(100%,var(--tactile));
              transform:translate(-50%,-50%)}

/* ============================ parcours de publication ======================
   Les commandes de ce parcours n'etaient pas des commandes : croix en <span>,
   compteurs inertes, « Publier » en guise d'« etape suivante ». Ce qui suit
   habille les vraies commandes — et la ligne d'etat qui dit ce qu'elles font. */
.pro-flux{display:block}
.pro-pub__pied{margin-top:20px}
.pro-pub__pied .pro-pub__actions{margin-top:0}

/* Ligne d'etat : elle est la meme partout — sauvegarde, medias, soumission —
   parce qu'elle repond toujours a la meme question, « qu'est-ce qui vient de
   se passer, et ou est ma saisie ». */
.pro-etat,.pro-medias__etat{margin:12px 0 0;font-size:var(--t4);line-height:1.5;
             color:var(--gris-fort);background:var(--accent-fond);border-radius:var(--r-champ);
             padding:12px 16px}
/* Vide, la zone ne se voit pas — mais elle reste dans la page : un
   role="status" pose en meme temps que son texte n'est pas annonce. */
.pro-etat:empty,.pro-medias__etat:empty{padding:0;margin:0;background:none}
.pro-etat[data-ton="ok"],.pro-medias__etat[data-ton="ok"]{color:var(--vert);
             background:var(--menthe)}
.pro-etat--alerte,.pro-etat[data-ton="alerte"],.pro-medias__etat[data-ton="alerte"]{
             color:var(--erreur);background:var(--erreur-fond)}
.pro-pub__pied .pro-etat{text-align:right}

/* Tuiles de visuels : trois commandes nommees par photo. La cible fait 44 px
   meme si le rond peint en fait 28. */
/* 140 px de tuile - 4 de marge = 136, soit les trois cibles de 44 px sur une
   seule ligne : le bandeau ne recouvre jamais la moitie de la photo. */
.pro-visuel__actes{position:absolute;left:0;right:0;bottom:0;display:flex;flex-wrap:wrap;
                   justify-content:flex-end;gap:0;padding:2px}
.pro-visuel__a{flex:0 0 44px;width:44px;min-height:44px;display:inline-flex;
               align-items:center;justify-content:center;color:var(--texte-inverse)}
.pro-visuel .pro-visuel__a .ic{width:16px;height:16px}
.pro-visuel__rond{width:28px;height:28px;border-radius:50%;background:rgba(0,0,0,.55);
                  display:inline-flex;align-items:center;justify-content:center;
                  font-size:var(--t4);line-height:1}
.pro-visuel__a:hover .pro-visuel__rond{background:rgba(0,0,0,.75)}
/* Des trois croix posees sur une photo, une seule detruit : elle rougit au
   survol (20/09/2026), comme toute suppression du site. Les deux autres
   — « principale », « remplacer » — ne suppriment rien et restent neutres. */
.pro-visuel__a[data-media="retirer"]:hover .pro-visuel__rond{background:var(--danger)}
.pro-visuel__a[data-media="principale"][aria-pressed="true"] .pro-visuel__rond{
               background:var(--accent)}
.pro-visuel__a:focus-visible .pro-visuel__rond{outline:2px solid var(--texte-inverse);outline-offset:2px}
button.pro-visuel{width:100%;padding:0}
.pro-visuels--photos{margin-top:16px}

/* Puces : le « + » ajoute la valeur saisie, la croix retire la puce. */
.pro-liste__plus{width:44px;min-height:44px;display:inline-flex;align-items:center;
                 justify-content:center;color:var(--accent);flex:0 0 44px}
.pro-puce__x{position:relative;width:22px;min-height:22px;display:inline-flex;
             align-items:center;justify-content:center;color:var(--gris-fort);font-size:var(--t4)}
.pro .pro-puce__x::after{content:"";position:absolute;left:50%;top:50%;
             width:var(--tactile);height:var(--tactile);transform:translate(-50%,-50%)}
.pro-puce__x:hover{color:var(--danger)}

/* Bandeau de resultat : il dit ce qui s'est reellement passe, pas un succes. */
.pro-toast__detail{font-size:var(--t4);color:var(--gris-texte);margin:8px 0 0}
.pro-toast__detail:empty{display:none}
.pro-toast__x{position:absolute;top:18px;right:18px;color:var(--gris-fort)}

/* Tarif : le prix se saisit, l'unite se choisit vraiment. */
input.pro-tarif__val{font-size:var(--t14);font-weight:600;border:0;background:none;
             flex:1 1 auto;min-width:0;width:100%;font-family:inherit;color:inherit}
.pro-etat[data-ton="ok"],.pro-medias__etat[data-ton="ok"]{color:var(--vert);
             background:var(--menthe)}
.pro-tarif__select{border:0;background:none;font:inherit;font-size:var(--t6);color:var(--accent-encre);
             min-height:44px}
.pro-tarif__eti{display:block}
.pro-verif__lien[hidden]{display:none}

@media (max-width:900px){
  .pro-pub__pied .pro-etat{text-align:left}
  .pro-visuel__actes{gap:0;padding:0}
}

/* ============================ agenda, selecteurs, filtres ===================
   Les commandes de ces trois familles etaient dessinees mais inertes (audit
   B05). Ce qui suit habille ce qu'elles font maintenant, et RIEN d'autre : les
   cotes de la coquille (barre 245 px, colonne 1408 px, filet a 102 px) ne sont
   pas touchees. */

/* Une ligne masquee par un filtre l'est pour de bon, quel que soit le display
   que sa propre regle lui donne (ligne de tableau, carte en grille, annonce). */
.pro [data-hors-filtre]{display:none !important}

/* --- selecteurs du graphique : la pilule devient une vraie etiquette + menu */
.pro-select__e{white-space:nowrap;color:var(--gris-texte)}
.pro-select__e::after{content:" :"}
/* Meme fleche que toutes les listes du site (--chevron-champ, app.css) a la
   place de celle du navigateur ; un libelle trop long se coupe en « … »
   plutot qu'a la lettre (« le mois derr »). */
.pro-select__c{border:0;background:none;font:inherit;color:var(--encre);
               min-height:var(--tactile);max-width:220px;min-width:0;cursor:pointer;
               appearance:none;-webkit-appearance:none;padding:0 24px 0 0;text-overflow:ellipsis;
               background-image:var(--chevron-champ);background-repeat:no-repeat;
               background-position:right 2px center;background-size:16px 16px}
/* Sous 640 px, « Comparer avec : le mois dernier » ne tient plus sur une ligne :
   l'intitule passe au-dessus du menu au lieu de pousser la page (ZERO
   debordement horizontal a 320 px). */
.pro-select{max-width:100%}
@media (max-width:640px){
  .pro-select{flex-wrap:wrap;height:auto;min-height:var(--tactile);padding:8px 16px}
  .pro-select__c{max-width:100%;width:100%}
}

/* --- agenda : la date choisie se voit, et pas seulement par la couleur ----- */
.pro .pro-cal button[aria-pressed="true"]{background:var(--accent-fond);color:var(--accent);
               font-weight:700;outline:2px solid var(--accent);outline-offset:-2px}

/* --- panneau de filtres, compteur et etat vide ----------------------------- */
.pro-outils{margin-top:14px}
.pro-filtres{display:flex;flex-wrap:wrap;align-items:center;gap:var(--e2) var(--e4)}
/* un critere = son intitule (casse normale) + le SelectField partage */
.pro-filtre{display:inline-flex;align-items:center;gap:var(--e2);margin:0;font-size:var(--t3);color:var(--gris-texte)}
.pro-filtre .champ-select{max-width:230px}
.pro-filtre__note{margin:0;flex:1 1 100%;font-size:var(--t4);color:var(--gris-faible)}
.pro-outils .pro-etat{margin-top:12px}

/* --- confirmation posee dans la zone d'etat -------------------------------- */
.pro-confirme__b{--b-haut:var(--b-haut-petit);--b-marge:var(--b-marge-petit);
               --b-texte:var(--b-texte-petit);margin:6px 0 0 10px}

/* --- fermeture d'une interface superposee ---------------------------------- */
.pro-modale__x{margin-left:auto;width:44px;height:44px;flex:0 0 44px;border-radius:50%;
               display:inline-flex;align-items:center;justify-content:center;color:var(--gris-fort)}
.pro-modale__x:hover{background:var(--gris-champ)}
.pro-modale__tete .pro-modale__titre{margin:0;flex:1 1 auto}

/* --- import de piece : l'etat se lit sous le depot ------------------------- */
.pro-photo .pro-etat{margin-top:10px}

/* Etat vide d'une liste filtree : sans lui, l'ecran parait casse. */
.pro-filtre__vide{margin:var(--e4) 0 0;padding:var(--e4);border-radius:var(--r-champ);
  background:var(--gris-champ);color:var(--gris-texte);font-size:var(--t3);text-align:center}



/* ============================================================================
   LOT 3 — accents bruns sur les composants d'espace.css qui restaient verts.
   ============================================================================ */
/* Le rail Pro portait ses propres mesures (identite 36 px, rembourrages,
   onglets etires jusqu'au bas) : depuis le 17/09/2026 il lit celles du rail
   partage (espace.css), seule la couleur change. Les groupes complementaires
   suivent les onglets ; l'agence et la zone legale restent ancrees en bas. */

/* L'en-tete reste en haut au defilement. Il est OPAQUE : le calque peint
   derriere lui couvre aussi la marge de page au-dessus, rien ne passe par
   les angles arrondis, et un filet le separe du contenu qui glisse dessous. */
.pro__haut{isolation:isolate;top:0;gap:var(--e4);padding:var(--e3) var(--e5);
  margin-bottom:var(--e4);border-radius:var(--r-carte);box-shadow:none;
  border-bottom:1px solid var(--bord)}
.pro__haut::before{content:"";position:absolute;z-index:-1;left:0;right:0;bottom:0;
  top:calc(-1 * var(--esp-marge));background:var(--surface);border-radius:0 0 var(--r-carte) var(--r-carte)}
.pro__haut[data-colle="oui"]{box-shadow:var(--ombre-2);border-bottom-color:transparent}
.pro__titre{font-size:var(--t8)}
/* Quand le <h1> est dans le corps, la barre ne porte qu'un fil d'Ariane :
   il situe, il ne titre pas (corrections du 16/09). */
p.pro__titre{font-size:var(--t5);font-weight:600;color:var(--gris-fort)}
h1.pro__titre{font-size:var(--t9)}
.pro__sous{font-size:var(--t3)}
.pro__cta{background:var(--accent);color:var(--texte-inverse)}
.pro__cta:hover{background:var(--accent-sombre)}
.pro__cta--gris{background:var(--gris-champ);color:var(--gris-fort)}
.pro .esp__h2{font-size:var(--t9);margin-top:var(--e5)}
.pro :is(a,button,[tabindex]:not(.pub__h2)):focus-visible{outline-color:var(--accent)}

/* --- accents partages qui restaient verts (espace.css) --------------------- */
.pro .esp-btn{background:var(--accent)}
.pro .esp-btn:hover{background:var(--accent-sombre)}
.pro .esp-btn--danger{background:var(--danger-fond);color:var(--danger);border-color:var(--danger-bord)}
.pro .esp-btn--danger:hover{background:var(--danger-survol)}
/* messagerie : le meme composer que le Client (espace.css) — « Envoyer » en
   bouton texte + icone, pas un pave plein (demande client du 17/09) */
.pro .esp-conv__champ .esp-btn,.pro .esp-conv__champ .esp-btn:hover{background:none;color:var(--encre)}
/* fenetre de conversation (17/09/2026) : bandeau de cloture au-dessus du composer,
   champ desactive, demande de reouverture depliable ; l'historique reste au-dessus */
.esp-conv__ferme{margin:0 var(--e4);padding:var(--e3) var(--e4);border-radius:var(--r-champ);
  background:var(--fond-creux);border:1px solid var(--bord);font-size:var(--t3);color:var(--gris-fort)}
.esp-conv__ferme-t{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0;line-height:1.5}
.esp-conv__ferme-t .ic{flex:0 0 16px;color:var(--gris-texte)}
.esp-conv__ferme-t b{color:var(--encre)}
.esp-conv__reouverture{margin-top:var(--e2)}
.esp-conv__reouvrir{display:inline-flex;align-items:center;gap:6px;min-height:var(--tactile);font-weight:600;
  color:var(--vert);cursor:pointer;list-style:none}
.esp-conv__reouvrir::-webkit-details-marker{display:none}
.esp-conv__reouvrir:hover{text-decoration:underline}
.esp-conv__reouvrir-f{display:grid;gap:var(--e2);margin-top:var(--e2);max-width:420px}
.esp-conv__reouvrir-f .esp-champ2__b select{width:100%;min-width:0;border:0;background:none;font:inherit;color:inherit;min-height:var(--tactile)}
.esp-conv__reouvrir-b{display:flex}
.esp-conv__reouvrir-f .pro-etat{margin:0}
.esp-conv__champ[data-ferme] input:disabled{background:var(--gris-champ);color:var(--gris-faible);cursor:not-allowed}
.esp-conv__champ[data-ferme] .esp-btn:disabled{opacity:.45;cursor:not-allowed}
.pro .esp-btn--contour{background:var(--surface);color:var(--accent);border:1px solid var(--accent)}
.pro .esp-btn--contour:hover{background:var(--accent-fond)}
.pro .esp-fleche{border-color:var(--accent);color:var(--accent)}
.pro .esp-fleche:hover{background:var(--accent-fond)}
.pro .esp-pages [aria-current="page"]{background:var(--accent-fond);color:var(--accent-encre)}
.pro .seg-pilule[aria-current="true"]{background:var(--accent);color:var(--texte-inverse)}
.pro .esp__corps :is(input,select,textarea){accent-color:var(--accent)}
.pro .espace-menu summary{color:var(--accent-encre)}
.pro .espace-menu[open] summary{background:var(--accent-fond)}
.pro .espace-menu__accueil:hover{color:var(--accent)}
.pro .espace-menu__identite{color:var(--encre)}
.pro .esp-tuile--solde{background:linear-gradient(135deg,var(--brun),var(--brun-sombre))}
.pro .pilule-etat{white-space:nowrap}
.pro .pilule-etat[data-ton="gris"]{background:var(--gris-champ);color:var(--gris-fort)}
.pro .pro-montant[data-ton="neutre"]{color:var(--gris-texte);font-weight:500}
.pro .pro-montant[data-ton="vert"]{color:var(--succes)}

/* --- tableau de bord : grille, graphique, biens actifs ---------------------- */
.pro-grille{gap:var(--e6);margin-top:var(--e5)}
.pro-graph{margin-top:var(--e7)}
.pro-graph__tete{justify-content:space-between;gap:var(--e4)}
.pro-graph__titre{font-size:var(--t8);flex:0 1 auto}
.pro-select{height:var(--tactile);padding:0 var(--e3) 0 var(--e4);gap:var(--e1);
  background:var(--surface);border:1px solid var(--bord);font-size:var(--t4)}
.pro-select__c{font-size:var(--t4);font-weight:600}
/* l'histogramme (17/09/2026) : douze colonnes, une par mois, sur des lignes de
   repere ; la valeur exacte au-dessus de chaque barre, l'info-bulle data-info
   (app.css) au survol et au focus. Une seule serie, verte : la couleur vient
   d'ici, jamais d'un hexa dans la page. */
.pro-graph__barres{--graph-h:200px;position:relative;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));
  align-items:end;gap:var(--e1);height:240px;padding-top:22px;border-bottom:1px solid var(--bord);box-sizing:border-box}
.pro-graph__ligne{position:absolute;left:0;right:0;height:1px;background:var(--bord);pointer-events:none;
  bottom:calc(var(--k,0) * var(--graph-h) / 100)}
/* la colonne n'a que la hauteur de sa barre et de sa valeur : l'info-bulle se
   pose juste au-dessus du chiffre, pas en haut du graphique */
.pro-graph__col{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;
  min-width:0;border-radius:var(--r2);outline:none;cursor:default}
.pro-graph__col:hover .pro-graph__barre,.pro-graph__col:focus-visible .pro-graph__barre{background:var(--vert-sombre)}
.pro-graph__col:focus-visible{box-shadow:0 0 0 2px var(--accent)}
.pro-graph__barre{display:block;width:min(60%,28px);height:calc(var(--h,0) * var(--graph-h) / 100);
  background:var(--vert);border-radius:var(--r2) var(--r2) 0 0;transition:background var(--mvt)}
/* zero : un trait gris a la base, la valeur « 0 » reste ecrite au-dessus */
.pro-graph__barre[style="--h:0.0"]{height:2px;background:var(--bord)}
.pro-graph__valeur{order:-1;margin-bottom:4px;font-size:var(--t2);font-weight:700;color:var(--encre);
  font-variant-numeric:tabular-nums;line-height:1}
.pro-graph__valeur[data-zero]{color:var(--gris-faible);font-weight:500}
.pro-graph__mois{flex-direction:row;align-items:center;justify-content:space-between;
  gap:var(--e1);padding:0;flex:0 0 auto;font-size:var(--t3)}
.pro-graph__mois span{padding:var(--e1) 0;line-height:1.3;text-align:center;min-width:0}
.pro-graph__pied{gap:var(--e5);margin-top:var(--e4);font-size:var(--t4);color:var(--gris-fort)}
.pro-actifs{margin-top:var(--e7)}

/* ====================================================================== LOT 5
   HARMONISATION — un seul produit, trois contextes. Les composants sont ceux
   d'app.css (PageHeader, StatCard, Table, IconButton, menu « ⋯ »,
   SecondaryNav, SettingsSection, ActionBar, Switch, DeviceRow, PayoutMethod,
   UploadField, Alert, Pagination), colores par --accent (vert ; brun sur le Wallet). Ici ne vivent
   que les mises en page des ecrans Pro et les quelques pieces qui n'existent
   qu'ici : graphique, agenda, carte d'offre, progression de publication. */

/* --- titres de page : la barre du haut nomme deja l'ecran, le titre du corps
       reste un cran sous celui du Client (t13) pour ne pas le repeter en geant */
/* experience.css pose clamp(26px,3vw,36px) sur tout h1 d'espace avec trois classes de
   specificite : on en aligne autant pour tenir le degre choisi ici. */
.esp.pro h1.esp__h1{font-size:var(--t10);line-height:1.15;margin:var(--e4) 0 0;letter-spacing:-.01em}
.pro .esp__h1 + .esp__note{margin-top:6px}
.pro .esp__h2{font-size:var(--t9);margin-top:var(--e5)}
.pro .tete-section__titre{font-size:var(--t8)}
.pro h3.tete-section__titre,.pro .reglage__titre{font-size:var(--t6)}
.esp.pro .tete-section h1.esp__h1{margin:0}

/* l'action d'une tete de page ne se replie pas */
.pro .tete-section > .bouton{flex:0 0 auto;white-space:nowrap}

/* --- StatCards ---------------------------------------------------------------- */
.pro .stat:has(.stat__ic) .stat__lib{padding-right:44px}
/* le second (date, tel) reste sur une ligne ; le principal (nom du bien) se replie
   plutot que de pousser la colonne Actions hors de la boite (mesure a 1440 px) */
.pro .table__identite .table__second{white-space:nowrap}
/* en lignes-cartes (≤ 900 px, app.css .table--cartes) un nom long passe a la
   ligne plutot que de sortir de la boite (mesure a 320 px : « M. Stéphane
   Kouamé » debordait de 43 px) */
@media (max-width:900px){
  .pro .table--cartes .table__identite .table__principal,.pro .table--cartes .table__identite .table__second{white-space:normal}
  .pro .table--cartes .table__identite{min-width:0}
}
.pro-stats{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:var(--e4)}
.pro-stats--solde{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr);margin-top:var(--e4)}
/* Mes offres (21/09/2026) : titre et texte a gauche (64 ch), « Publier une
   offre » a droite sur la meme ligne ; les statuts en pilules filtrantes
   (compteur dans la pilule) ; la grille du site dessous. SOUS la bande de
   chaque carte (carte--pro, app.css .carte__actions), le statut puis les
   actions posees par mes-biens.js, le menu « ⋯ » a droite. */
.mes-biens__tete{align-items:flex-start;margin-bottom:var(--e4)}
.mes-biens__tete .tete-section__texte{max-width:64ch}
.mes-biens__tete > .bouton{flex:0 0 auto;margin-top:var(--e2)}
/* a droite : « Mes abonnements » (immobilier) et « Publier une offre », l'etat de la formule dessous */
.mes-biens__cote{flex:0 0 auto;display:grid;gap:var(--e1);justify-items:end;margin-top:var(--e2);max-width:100%}
.mes-biens__tete > :first-child{flex:1 1 0;min-width:min(100%,40ch)}
.mes-biens__actes{display:flex;flex-wrap:wrap;gap:var(--e2)}
.mes-biens__abo-etat{margin:0;font-size:var(--t2);color:var(--gris-texte)}
.carte__actions [data-abo-requis]{position:relative}
.carte__actions [data-abo-requis]::after{content:"";position:absolute;inset:-10px 0}
@media (max-width:640px){.mes-biens__cote{justify-items:start}}
.pro-vues{margin:0;flex-wrap:wrap}
.pro-vue__n{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;
  border-radius:var(--r-pilule);background:var(--surface);color:var(--gris-fort);font-size:var(--t1);
  font-weight:700;font-variant-numeric:tabular-nums}
.pro .seg-pilule[aria-current="true"] .pro-vue__n{background:var(--voile-blanc);color:var(--accent)}
.mes-biens .pro-etat{margin-top:var(--e4)}
.mes-biens__h2{margin-top:var(--e5)}
/* 21/09/2026 : les cartes gardent leur propre hauteur (align-items:start) :
   l'ecart d'une rangee — une note de decision de cinq lignes — se pose dans
   le fond de page, pas en blanc dans les cartes voisines. */
.mes-biens > .grille{margin-top:var(--e4);align-items:start}
/* « Prix à renseigner » (dossier en travail sans prix) : une mention grise,
   pas un montant */
.carte--pro[data-sans-prix] .carte__prix b{font-weight:500;font-size:var(--t2);color:var(--gris-texte)}
/* la decision du back-office (motif, champs a corriger) se lit AVANT les
   commandes, en note teintee : or pour « À corriger », rouge pour un refus */
.carte--pro .carte__actions .carte__decision{grid-row:2;padding:8px 10px;border-radius:var(--r2);
  background:var(--or-fond);color:var(--gris-fort)}
.carte--pro[data-statut="refusee"] .carte__actions .carte__decision{background:var(--erreur-fond)}
.carte--pro .carte__actions .carte__decision:not([hidden]) ~ .bouton{grid-row:3}
.carte--pro .carte__actions .menu-plus{margin-left:auto}

.stat__val--oeil{display:flex;align-items:center;gap:var(--e2);flex-wrap:wrap}
.stat--dominante .bouton-ic{color:var(--texte-inverse)}
.stat--dominante .bouton-ic:hover,.stat--dominante .bouton-ic:focus-visible{background:var(--voile-blanc);color:var(--accent)}
.stat--dominante .stat__action{margin-top:var(--e2)}
.stat--dominante :focus-visible{outline-color:var(--texte-inverse)}
.pro .stat + .pro-etat{margin-top:0}
.pro .stats-grille .stat__val{font-size:var(--t9)}
.pro .stat--dominante .stat__val{font-size:var(--t10)}

/* --- tete de liste et barre d'outils ------------------------------------------ */
.pro-liste__tete{margin-top:var(--e6);margin-bottom:var(--e3);flex-wrap:wrap}
.pro-outils{display:flex;flex-wrap:wrap;align-items:center;gap:var(--e2);margin-top:var(--e3)}
.pro-outils__q{flex:1 1 240px;max-width:400px;min-width:0}
.pro-outils .pro-select{height:var(--b-haut);background:var(--surface);border:1px solid var(--bord)}
.pro-outils + .pro-outils{margin-top:var(--e3)}

/* --- Table partagee : contenus de cellule propres au Pro ------------------------ */
.pro .boite-tab{margin-top:var(--e4);background:var(--surface)}
.pro .boite-tab .table{margin-top:0}
.pro .table th:last-child{text-align:right}
.table__vignette{width:40px;height:40px;border-radius:var(--r2);object-fit:cover;flex:0 0 40px}
.table__vignette--rond{border-radius:50%}
.table__identite{color:inherit;min-width:0}
.table__identite > span{min-width:0}
a.table__identite:hover .table__principal{color:var(--accent)}
.pro .table .pilule-etat{white-space:normal;text-align:left;line-height:1.2}
.pro .table .etiq{white-space:nowrap}
.bouton-ic[data-ton="accent"]{background:var(--accent);color:var(--texte-inverse)}
.bouton-ic[data-ton="accent"]:hover,.bouton-ic[data-ton="accent"]:focus-visible{background:var(--accent-sombre);color:var(--texte-inverse)}
.bouton-ic[data-ton="danger"]{color:var(--erreur)}
.menu-plus summary.bouton-ic{cursor:pointer}
.menu-plus[open] > summary.bouton-ic{background:var(--accent-fond);color:var(--accent)}
.menu-plus__liste [data-ton="accent"]{color:var(--accent);font-weight:600}
.menu-plus__liste .ic{width:16px;height:16px;flex:0 0 16px;color:var(--gris-texte)}
.menu-plus__liste [data-ton="danger"] .ic{color:var(--erreur)}
.pro .pages{margin-top:var(--e5)}
.pro .pages [data-inactif]{opacity:.35}

/* --- tableau de bord : lecture en Z ---------------------------------------------- */
.pro-grille{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:var(--e5) var(--e6);
            margin-top:0;align-items:start}
.pro-grille__titre,.pro-grille__note,.pro-grille > .pro-stats{grid-column:1 / -1}
.pro-grille__note{margin-top:var(--e2)}
.pro-grille > .pro-stats{margin-top:0}
.pro-grille__principal{min-width:0;display:flex;flex-direction:column;gap:var(--e5)}
.pro-cote{display:flex;flex-direction:column;gap:var(--e4);min-width:0}
.pro-cote .reglage,.pro-cote .stat{margin:0}
/* graphique : titre, barre d'outils compacte, courbe, mois, legende */
.pro-graph{margin:0;padding:var(--e5)}
.pro-graph__tete{margin:0 0 var(--e3)}
.pro-graph__corps{display:flex;flex-direction:column;gap:var(--e2);margin-top:var(--e4);padding:0}
/* l'axe vertical (maximum en haut, zero en bas) a gauche de la courbe ; l'axe
   des mois, dessous, commence a la meme abscisse que la courbe (--axe) */
.pro-graph{--axe:28px}
.pro-graph__svg{display:flex;gap:var(--e2);padding-top:var(--e3)}
.pro-graph__axe{flex:0 0 auto;width:var(--axe);display:flex;flex-direction:column;justify-content:space-between;
  font-size:var(--t1);color:var(--gris-faible);text-align:right;padding-right:var(--e1);font-variant-numeric:tabular-nums}
.pro-graph__trace{position:relative;flex:1 1 auto;min-width:0}
.pro-graph__svg svg{width:100%;display:block}
.pro-graph__mois{display:flex;padding-left:calc(var(--axe) + var(--e2))}
.pro-graph__pied{display:flex;align-items:center;flex-wrap:wrap;gap:var(--e2) var(--e4);margin-top:var(--e3);
  font-size:var(--t2)}
/* biens les plus actifs : la grille du site (app.css), trois cartes de front */
.pro-actifs{margin:0}
.pro-actifs .grille{--colonnes:3}
.pro-actifs .tete-section{margin-bottom:var(--e3)}
/* colonne droite : actions requises, agenda, conseil */
.pro-requis .reglage__tete{margin-bottom:var(--e2);align-items:center}
.pro-agenda__tete{align-items:center;margin-bottom:var(--e3)}
.pro-agenda__nav{display:flex;align-items:center;gap:2px;flex:0 0 auto}
.pro-agenda__mois{font-size:var(--t3);font-weight:600;min-width:84px;text-align:center;white-space:nowrap}
.pro-agenda__sous{font-size:var(--t4);font-weight:600;margin:var(--e5) 0 0}
.pro-agenda .etat-vide{padding:var(--e3) 0 0}
.pro-cal{display:grid;grid-template-columns:repeat(7,1fr);gap:2px 0;text-align:center}
.pro-cal span{font-size:var(--t1);font-weight:600;letter-spacing:.04em;text-transform:uppercase;
  color:var(--gris-texte);padding:var(--e1) 0 var(--e2)}
.pro .pro-cal button{width:38px;height:38px;min-height:38px;justify-self:center;font-size:var(--t3);
  border-radius:50%;background:none;color:var(--encre);font-weight:500}
.pro .pro-cal button:hover{background:var(--fond-creux)}
.pro .pro-cal button[data-etat="hors"]{color:var(--gris-faible)}
/* reserve : un point sous le jour (le calque ::after est la cible tactile) */
.pro .pro-cal button[data-etat="occupe"]{font-weight:700;color:var(--accent-encre);background:none}
.pro .pro-cal button[data-etat="occupe"]::before{content:"";position:absolute;left:50%;bottom:3px;
  width:5px;height:5px;margin-left:-2.5px;border-radius:50%;background:var(--accent)}
.pro .pro-cal button[data-etat="occupe"]:hover{background:var(--fond-creux)}
/* aujourd'hui : plein — meme quand le jour porte un evenement (aria-current, 17/09/2026) */
.pro .pro-cal button[data-etat="aujourdhui"],.pro .pro-cal button[aria-current="date"]{background:var(--accent);color:var(--texte-inverse);font-weight:700}
.pro .pro-cal button[data-etat="aujourdhui"]:hover,.pro .pro-cal button[aria-current="date"]:hover{background:var(--accent-sombre)}
.pro .pro-cal button[aria-current="date"][data-etat="occupe"]::before{background:var(--texte-inverse)}
/* selection : anneau */
.pro .pro-cal button[aria-pressed="true"]{background:var(--accent-fond);color:var(--accent-encre);font-weight:700;
  outline:2px solid var(--accent);outline-offset:-2px}
.pro .pro-cal button[data-etat="aujourdhui"][aria-pressed="true"],.pro .pro-cal button[aria-current="date"][aria-pressed="true"]{background:var(--accent);color:var(--texte-inverse);
  outline-offset:2px}
.pro-cal__legende{display:flex;flex-wrap:wrap;gap:var(--e2) var(--e4);margin:var(--e3) 0 0;
  font-size:var(--t2);color:var(--gris-texte)}
.pro-cal__legende span{display:inline-flex;align-items:center;gap:var(--e2)}
.pro-cal__legende i{width:12px;height:12px;border-radius:50%;display:inline-block;box-sizing:border-box}
.pro-cal__legende i[data-etat="aujourdhui"]{background:var(--accent)}
.pro-cal__legende i[data-etat="occupe"]{background:var(--surface);border:1px solid var(--bord);position:relative}
.pro-cal__legende i[data-etat="occupe"]::before{content:"";position:absolute;left:50%;bottom:1px;width:4px;height:4px;
  margin-left:-2px;border-radius:50%;background:var(--accent)}
.pro-cal__legende i[data-etat="choisi"]{border:2px solid var(--accent)}
.pro-cote .pro-etat{margin-top:var(--e3)}
.alerte__lien{display:inline-flex;align-items:center;gap:6px;min-height:var(--tactile);font-weight:600;
  text-decoration:underline;text-underline-offset:3px;color:inherit}
.alerte__lien .ic{width:14px;height:14px}
.alerte > .ic{margin-top:2px}

/* --- fiche de gestion d'une offre --------------------------------------------------- */
.pro-fiche{margin-top:var(--e4)}
.pro-fiche__tete{align-items:flex-start;flex-wrap:wrap;margin-bottom:var(--e5)}
.pro-fiche__titre{display:flex;align-items:center;flex-wrap:wrap;gap:var(--e3)}
.pro-fiche__nom{margin:0;font-size:var(--t12)}
.pro-fiche__prix b{font-size:var(--t7);color:var(--encre)}
.pro-fiche__actions{display:flex;flex-wrap:wrap;gap:var(--e2)}
.pro-fiche__corps{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:var(--e5);align-items:start}
.pro-fiche__cote{min-width:0}
.pro-fiche__vue{position:relative;border-radius:var(--r3);overflow:hidden;margin-bottom:var(--e4);
  aspect-ratio:3/2;background:var(--fond-creux)}
.pro-fiche__vue img{width:100%;height:100%;object-fit:cover;display:block}
.pro-fiche__tags{position:absolute;top:var(--e2);left:var(--e2);right:var(--e2);display:flex;flex-wrap:wrap;gap:var(--e1)}
.pro-fiche__tags span{background:var(--voile-blanc);color:var(--accent-encre);border-radius:var(--r-pilule);
  padding:var(--e1) var(--e2);font-size:var(--t1);font-weight:600;white-space:nowrap;max-width:100%;
  overflow:hidden;text-overflow:ellipsis}
.pro-fiche__stats{grid-template-columns:repeat(3,minmax(0,1fr))}
.pro-fiche__stats .stat,.pro-boost-page__chiffres .stat{min-height:0;padding:var(--e3) var(--e4)}
.pro-fiche__stats .stat__val,.pro-boost-page__chiffres .stat__val{font-size:var(--t8)}
.pro-fiche__eqs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--e5);margin:0}
.pro-fiche__eq{display:flex;justify-content:space-between;gap:var(--e3);padding:var(--e2) 0;
  border-bottom:1px solid var(--bord);font-size:var(--t3)}
.pro-fiche__eq dt{color:var(--gris-texte)}
.pro-fiche__eq dd{margin:0;font-weight:600;text-align:right}
.pro-fiche .pro-avis__liste{grid-template-columns:minmax(0,1fr);margin-top:0}
.pro-fiche .plan{width:100%}
.pro-fiche .plan__reserve{margin-top:var(--e3)}

/* --- boost : progression a gauche, apercu et resume a droite ------------------------- */
/* ---- Boost (BoostCampaign) et Publicité (AdCampaign), 21/09/2026 ----------
   Deux parcours distincts qui partagent la meme grammaire : tete + stepper,
   colonne d'etapes a gauche, resume collant a droite, carte compacte de
   l'offre, cartes de formule comparables, apercu « À la une » reel. ---- */
.boost-distinction{margin:var(--e3) 0 0;max-width:80ch}
.boost-distinction b{color:var(--encre)}
/* l'offre en carte compacte : image, nom, categorie · lieu, prix, statut */
.boost-offre{display:grid;grid-template-columns:96px minmax(0,1fr) auto;align-items:center;gap:var(--e3) var(--e4);
  padding:var(--e3) var(--e4);background:var(--fond-creux);border-radius:var(--r-carte)}
.boost-offre__img{width:96px;height:72px;object-fit:cover;border-radius:var(--r-bouton);display:block}
.boost-offre__corps{min-width:0;display:flex;flex-direction:column;gap:2px}
.boost-offre__nom{margin:0;font-size:var(--t6);font-weight:600;line-height:1.3}
.boost-offre__nom b{font-weight:inherit}
.boost-offre__ou{margin:0;font-size:var(--t3);color:var(--gris-texte)}
.boost-offre__prix{margin:2px 0 0;display:flex;align-items:center;gap:var(--e2);flex-wrap:wrap;font-size:var(--t4)}
.boost-offre__prix b{color:var(--accent-encre);font-variant-numeric:tabular-nums}
.boost-offre__changer{flex:0 0 auto}
@media (max-width:640px){
  .boost-offre{grid-template-columns:80px minmax(0,1fr)}
  .boost-offre__img{width:80px;height:60px}
  .boost-offre__changer{grid-column:1 / -1;justify-self:start}
}
/* les formules : trois cartes de meme boite, prix sur le meme axe, choix par contour + teinte + coche */
.boost-formules{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--e3);align-items:stretch}
.boost-formule{position:relative;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;gap:var(--e2);min-width:0;
  padding:var(--e4) var(--e4) var(--e4);background:var(--surface);border:1.5px solid var(--bord);border-radius:var(--r-carte);
  cursor:pointer;transition:border-color var(--mvt-d),background-color var(--mvt-d),box-shadow var(--mvt-d)}
.boost-formule input{position:absolute;opacity:0;width:0;height:0}
.boost-formule:hover{border-color:var(--accent-bord);box-shadow:var(--ombre-1)}
.boost-formule:has(input:checked){border-color:var(--accent);background:var(--accent-fond)}
.boost-formule:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}
.boost-formule__tete{display:flex;flex-direction:column;align-items:flex-start;gap:var(--e1);padding-right:32px}
/* deux lignes reservees au nom : le prix des trois cartes reste sur le meme axe */
.boost-formule__tete b{font-size:var(--t6);font-weight:700;min-width:0;line-height:1.25;min-height:2.5em}
.boost-formule__prix{font-size:var(--t9);font-weight:800;letter-spacing:-.01em;color:var(--accent-encre);
  font-variant-numeric:tabular-nums;line-height:1.1;white-space:nowrap}
.boost-formule__texte{font-size:var(--t3);line-height:1.5;color:var(--gris-texte)}
.boost-formule__puces{display:flex;flex-direction:column;gap:var(--e1);padding-top:var(--e2);border-top:1px solid var(--bord)}
.boost-formule:has(input:checked) .boost-formule__puces{border-top-color:var(--accent-bord)}
.boost-formule__eti{font-size:var(--t1);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--gris-texte);margin-bottom:2px}
.boost-formule__puce{display:flex;align-items:center;gap:var(--e2);font-size:var(--t3);color:var(--encre)}
.boost-formule__puce .ic{width:14px;height:14px;flex:0 0 14px;color:var(--accent)}
.boost-formule__coche{position:absolute;top:var(--e4);right:var(--e4)}
.boost-formule:has(input:checked) .boost-formule__coche{background:var(--accent);border-color:var(--accent);color:var(--texte-inverse)}
@media (max-width:1023px){.boost-formules{grid-template-columns:minmax(0,1fr)}}
/* la source d'une campagne, le compteur de caracteres, les cotes du visuel, l'apercu */
.campagne-source{margin-top:var(--e4);padding-top:var(--e4);border-top:1px solid var(--bord)}
.campagne-source[hidden]{display:none}
.campagne-compteur{margin:var(--e1) 0 0;font-size:var(--t2);color:var(--gris-texte)}
.campagne-compteur[data-depasse="oui"]{color:var(--erreur);font-weight:600}
.campagne-visuel__cotes{margin:0 0 var(--e3);padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:var(--e1) var(--e4);
  font-size:var(--t3);color:var(--gris-texte)}
.campagne-visuel__cotes b{color:var(--encre);font-weight:600}
.campagne-apercu .pub{--pub-l:100%;max-width:560px}
.campagne-apercu__cote .campagne-apercu .pub{max-width:none;min-height:200px}
.campagne-apercu__rangee{padding:var(--e4);background:var(--fond);border-radius:var(--r-carte)}
.pro-type[data-ton="boost"]{background:var(--or-fond);color:var(--or-texte)}
.pro-type[data-ton="publicite"]{background:var(--lagune-fond);color:var(--lagune)}
.pro-camp-ligne .carte__decision{margin:var(--e1) 0 0;font-size:var(--t2);color:var(--erreur)}
/* ---- Parcours de boost (21/09/2026) : trois ecrans, un titre, un stepper ---- */
.pro-boost__titre{margin-top:var(--e4)}
.pro-boost__titre + .esp__note{max-width:64ch}
/* etape 1 : la liste des biens, chaque ligne mene a l'etape 2 */
.boost-choix .champ-cherche{max-width:420px;margin-bottom:var(--e4)}
.boost-biens{display:flex;flex-direction:column;gap:var(--e2)}
.boost-bien{display:grid;grid-template-columns:64px minmax(0,1.5fr) minmax(0,1.2fr) minmax(0,1fr) minmax(0,.9fr) auto;
  align-items:center;gap:var(--e3) var(--e4);padding:var(--e3) var(--e4);border:var(--champ-bord);
  border-radius:var(--r-carte);background:var(--surface);color:inherit;
  transition:border-color var(--mvt-d),box-shadow var(--mvt-d),transform var(--mvt-d)}
.boost-bien:hover{border-color:var(--accent-bord);box-shadow:var(--ombre-2);transform:translateY(-1px)}
.boost-bien[data-choisi="oui"]{background:var(--accent-fond);border-color:var(--accent-bord)}
/* sur la teinte menthe, --gris-faible ne tient pas 4,5:1 : le gris de texte */
.boost-bien[data-choisi="oui"] i{color:var(--gris-texte)}
.boost-bien__img{width:64px;height:64px;object-fit:cover;border-radius:var(--r-bouton);display:block}
.boost-bien b{display:block;font-size:var(--t5);font-weight:600;line-height:1.3}
.boost-bien i{display:block;font-style:normal;font-size:var(--t3);color:var(--gris-texte);line-height:1.4}
.boost-bien__cat{display:flex;flex-wrap:wrap;align-items:center;gap:var(--e1) var(--e2)}
.boost-bien__action{display:inline-flex;align-items:center;gap:6px;min-height:var(--b-haut-petit);padding:0 var(--e3);
  border-radius:var(--r-pilule);border:1.5px solid var(--accent);color:var(--accent);font-size:var(--t3);font-weight:600;
  white-space:nowrap}
.boost-bien:hover .boost-bien__action,.boost-bien[data-choisi="oui"] .boost-bien__action{background:var(--accent);color:var(--texte-inverse)}
@media (max-width:1023px){
  .boost-bien{grid-template-columns:64px minmax(0,1fr) auto;grid-template-areas:"img nom action" "img cat action" "img prix action" "img vues action"}
  .boost-bien__img{grid-area:img;align-self:start}
  .boost-bien__nom{grid-area:nom}.boost-bien__cat{grid-area:cat}.boost-bien__prix{grid-area:prix}.boost-bien__vues{grid-area:vues}
  .boost-bien__action{grid-area:action}
}
@media (max-width:640px){
  .boost-bien{grid-template-columns:56px minmax(0,1fr);grid-template-areas:"img nom" "img cat" "prix prix" "vues vues" "action action";gap:var(--e2) var(--e3)}
  .boost-bien__img{width:56px;height:56px}
  .boost-bien__action{justify-self:start}
}
/* etape 2 : l'action principale sous le montant, dans la colonne collante */
.pro-resume__action{margin-top:var(--e4);display:flex;flex-direction:column;gap:var(--e2)}
.pro-resume__cta{width:100%}
.pro-resume__aide{margin:0;font-size:var(--t2);color:var(--gris-texte);line-height:1.5}
.pro-boost-page__tete-bien{display:flex;align-items:center;justify-content:space-between;gap:var(--e3);flex-wrap:wrap}
.pro-boost-page__changer{margin:0}
/* etape 3 : l'etat honnete puis le resume et le bien cote a cote */
.pro-boost-page__etat{margin:0 0 var(--e5)}
.pro-boost-page--confirme{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.pro-boost-page__actions{margin-top:var(--e5);flex-wrap:wrap}
.pro-boost-page{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:var(--e5);align-items:start;
  margin-top:var(--e5)}
.pro-boost-page__etapes{min-width:0}
.pro-boost-page__etapes .reglage:last-child{margin-bottom:0}
.pro-boost-page__cote{display:flex;flex-direction:column;gap:var(--e4);min-width:0;position:sticky;
  top:calc(var(--e8) + var(--e4))}
.pro-boost-page__cote .reglage{margin:0}
.pro-boost-page__tete{flex-direction:column;gap:var(--e1);align-items:flex-start}
.pro-boost-page__etape{display:flex;align-items:center;gap:var(--e3)}
.pro-boost-page__etape .pro-etape__rond{width:28px;height:28px;font-size:var(--t2);background:var(--accent);
  color:var(--texte-inverse)}
.pro-boost-page__duo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--e4)}
.pro-boost-page .esp-champ2{margin-bottom:0}
.pro-boost-page .pro-reduction{margin-top:0}
.pro-boost-page .pro-moyens{margin:0}
.pro-boost-page__carte{display:grid;gap:var(--e3)}
.pro-boost-page__carte .pro-duo{margin:0}
.pro-boost-page .barre-actions{margin-top:0}
.pro-resume{margin:0;display:grid;gap:0}
.pro-resume__l{display:flex;justify-content:space-between;gap:var(--e3);font-size:var(--t3);padding:var(--e2) 0;
  border-bottom:1px solid var(--bord)}
.pro-resume__l dt{color:var(--gris-texte)}
.pro-resume__l dd{margin:0;font-weight:600;text-align:right;min-width:0}
.pro-resume__l dd span{display:block;font-weight:400;color:var(--gris-texte);font-size:var(--t2)}
.pro-resume__total{margin-top:var(--e4)}
.pro-boost-page__chiffres{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:var(--e4)}
/* une seule carte, pleine largeur de la colonne */
.pro-boost-page__carte-bien{--colonnes:1}

/* --- formulaire de programmation -------------------------------------------------------- */
.pro-formulaire__page{max-width:880px}
.pro-formulaire .reglage:first-of-type{margin-top:var(--e5)}
.reglage__corps--deux .esp-champ2,.pro-champs .esp-champ2{margin-bottom:0}
.pro-formulaire .esp-secu__note{margin-top:var(--e2)}

/* --- profil : navigation secondaire, sections, depots, champs ----------------------------- */
.pro .alerte .pilule-etat{background:var(--surface)}
.pro .paiement__cgv a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}
.pro .reglages{margin-top:var(--e4)}
.pro-profil__tete{margin-bottom:var(--e5);flex-wrap:wrap}
.pro-profil__h1{margin:0}
.pro-profil__tete .bouton{flex:0 0 auto}
.pro .reglage .esp-form__section{margin:0}
.pro-depots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--e4)}
.pro-depot-bloc{min-width:0}
.pro-depot-bloc--large{grid-column:1 / -1}
.pro-depot-bloc .pro-etat{margin-top:var(--e2)}
.pro .depot__apercu[data-import-apercu]{background-size:cover;background-position:center;background-repeat:no-repeat}
.pro .depot__apercu[data-plein="oui"] .ic{display:none}
.pro .depot__nom .champ-requis{font-weight:500}
.pro-champ__erreur{margin:6px 0 0;font-size:var(--t2);color:var(--erreur)}
.pro-champ__erreur:empty{display:none}
.pro .esp-champ2__b:has([aria-invalid="true"]){border-color:var(--erreur)}
.pro .esp-champ2:has(textarea) {grid-column:1 / -1}
.pro-choix-compacts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--e3);margin-bottom:var(--e4)}
.pro-objectif--compact{margin:0;padding:var(--e3) var(--e4);border:1px solid var(--bord);background:var(--surface);
  gap:var(--e3)}
.pro-objectif--compact b{font-size:var(--t4);margin-bottom:2px}
.pro-objectif--compact p{font-size:var(--t2)}
.pro-kyc__bandeau{margin-bottom:var(--e5);display:grid;gap:var(--e3)}
.pro-kyc__etat{margin:0 0 var(--e2)}
.pro-kyc__refaire{padding:var(--e3) var(--e4);border-radius:var(--r3);background:var(--fond-creux)}
.pro-kyc__refaire .reglage__titre{font-size:var(--t4)}
.pro-kyc__branche-titre{font-size:var(--t4);font-weight:600;margin:var(--e4) 0 var(--e3)}
.pro-kyc__branche + .pro-champs,.pro-kyc__branche + .pro-kyc__branche + .pro-champs{margin-top:var(--e4)}
.pro .reglage .paiement__cgv{margin-top:0}
.pro .reglage .paiement__cgv + .paiement__cgv{margin-top:var(--e3)}
.pro .reglage .paiement__cgv input{accent-color:var(--accent)}
.pro .reglage [data-erreur="consentement"]{margin-top:var(--e3)}
.pro-solde__duo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--e4);align-items:start}
.pro-solde__detail .barre-actions{margin-top:var(--e3);justify-content:flex-start}
.pro .moyens{margin-top:var(--e2)}
.pro-interrupteurs{display:grid;gap:0}
.pro .interrupteur{position:relative;padding:var(--e2) 0;border-bottom:1px solid var(--bord)}
.pro .interrupteur:last-child{border-bottom:0}
.pro .esp-secu__ligne .bouton{flex:0 0 auto}
.pro .reglages .esp-msg__segments{margin:0 0 var(--e3)}
.pro .reglages .pro-outils{margin-top:var(--e4)}

/* --- assistant de publication : progression compacte, sections repliables, FormField,
   interrupteurs, puces cochables, MediaUploader, modules repetables, verification --------- */
/* Assistant de publication (21/09/2026) : titre en pleine largeur, puis deux
   colonnes — le formulaire a gauche (720 px au plus de lecture), la
   progression a droite, collee sous le Header : etape courante, barre des
   obligatoires, la liste des dix etapes toujours ouverte (un stepper
   vertical). Sous 1024 px la progression passe au-dessus du formulaire, sa
   liste repliee derriere « Toutes les étapes ». */
.pub-page{display:flex;flex-direction:column;gap:var(--e4)}
.pub-page .tete-section{margin-bottom:0}
.pub-page .tete-section__texte{max-width:72ch}
.pub-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:var(--e5);align-items:start}
@media (max-width:1180px){.pub-layout{grid-template-columns:minmax(0,1fr) 260px;gap:var(--e4)}}
/* la progression precede le formulaire dans le document (elle se lit d'abord
   sur mobile) ; sur bureau l'ordre la met a droite */
.pub-layout > .pub-form{order:1;min-width:0}
.pub-layout > .pub-progression{order:2}
.pub-progression{background:var(--surface);padding:var(--e4);position:sticky;
  top:calc(var(--haut-entete,80px) + var(--e3))}   /* filet et rayon : format des cartes, app.css */
.pub-progression__tete{display:flex;flex-direction:column;gap:var(--e2)}
.pub-progression__texte{margin:0;font-size:var(--t4);color:var(--gris-fort);line-height:1.4}
.pub-progression__texte b{color:var(--encre);font-weight:700}
.pub-progression__barre{height:6px;border-radius:var(--r1);background:var(--gris-pilule);overflow:hidden}
.pub-progression__barre i{display:block;height:100%;background:var(--accent);border-radius:var(--r1);
  transition:width var(--mvt-lent)}
.pub-progression__oblig{margin:0;font-size:var(--t2);color:var(--gris-texte)}
.pub-progression__oblig:empty{display:none}
.pub-progression__liste{margin-top:var(--e3);padding-top:var(--e3);border-top:1px solid var(--bord)}
.pub-progression__liste summary{display:inline-flex;align-items:center;gap:6px;min-height:var(--tactile);
  padding:0 var(--e2);cursor:pointer;list-style:none;font-size:var(--t3);font-weight:600;color:var(--accent);
  border-radius:var(--r2)}
.pub-progression__liste summary::-webkit-details-marker{display:none}
.pub-progression__liste summary:hover{background:var(--fond)}
.pub-progression__liste[open] .accordeon__chevron{transform:rotate(180deg)}
.pub-progression__liste .accordeon__chevron{color:inherit;width:14px;height:14px}
/* le stepper : une colonne, un filet relie les ronds */
.pub-etapes{list-style:none;margin:var(--e2) 0 0;padding:0;display:grid;grid-template-columns:minmax(0,1fr);gap:0}
.pub-etapes__item{position:relative}
.pub-etapes__item + .pub-etapes__item::before{content:"";position:absolute;left:calc(var(--e2) + 12px);top:-6px;
  width:1px;height:12px;background:var(--bord)}
.pub-etape{display:flex;align-items:center;gap:var(--e3);width:100%;min-height:40px;padding:0 var(--e2);
  border-radius:var(--r2);font-size:var(--t3);font-weight:500;color:var(--gris-fort);text-align:left;cursor:pointer;
  transition:background var(--mvt),color var(--mvt)}
.pub-etape:hover{background:var(--fond)}
.pub-etape .pro-etape__rond{width:26px;height:26px;font-size:var(--t1);flex:0 0 26px;position:relative;z-index:1;
  box-shadow:0 0 0 2px var(--surface)}
.pub-etape .pro-etape__nom{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pub-etapes__item[data-etat="actif"] .pub-etape{background:var(--accent-fond);color:var(--accent-encre);font-weight:600}
.pub-etapes__item[data-etat="actif"] .pro-etape__rond{background:var(--accent);color:var(--texte-inverse)}
.pub-etapes__item[data-etat="fait"] .pro-etape__rond{background:var(--succes-fond);color:var(--succes)}
.pub-etapes__item[data-etat="incomplet"] .pro-etape__rond{background:var(--or-fond);color:var(--or-texte)}
@media (min-width:1024px){
  /* la liste est la colonne : pas de sommaire, toujours ouverte (publier.js) */
  .pub-progression__liste summary{display:none}
}
@media (max-width:1023px){
  .pub-layout{grid-template-columns:minmax(0,1fr)}
  .pub-layout > .pub-progression{order:0}
  .pub-progression{position:static;padding:var(--e3) var(--e4)}
  .pub-progression__tete{flex-direction:row;flex-wrap:wrap;align-items:center;gap:var(--e2) var(--e3)}
  .pub-progression__texte{flex:1 1 auto}
  .pub-progression__barre{flex:1 1 100%}
  .pub-progression__liste{margin-top:var(--e2);padding-top:0;border-top:0}
  .pub-etapes{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:2px var(--e3)}
  .pub-etapes__item + .pub-etapes__item::before{display:none}
}
.pub-form{display:flex;flex-direction:column;gap:var(--e4)}
/* --- guidage du prestataire (21/09/2026) ---------------------------------- */
/* les exemples (placeholders) se lisent comme des exemples : gris de texte, jamais pale */
.pub-form ::placeholder{color:var(--gris-texte);opacity:1;font-style:italic}
.pub__sous{margin:calc(-1 * var(--e2)) 0 var(--e3);font-size:var(--t3);color:var(--gris-texte);line-height:1.5}
.pub-facultatif__pourquoi{padding:0 var(--e3);margin:var(--e2) 0 0}
/* la vignette de l'offre en tete de la colonne de droite */
.pub-vignette{display:flex;align-items:center;gap:var(--e3);padding-bottom:var(--e3);margin-bottom:var(--e3);
  border-bottom:1px solid var(--bord)}
.pub-vignette__img{width:72px;height:54px;object-fit:cover;border-radius:var(--r2);flex:0 0 72px}
.pub-vignette__vide{width:72px;height:54px;flex:0 0 72px;border-radius:var(--r2);background:var(--fond-creux);
  display:grid;place-items:center;color:var(--gris-faible)}
.pub-vignette__vide .ic{width:22px;height:22px}
.pub-vignette__txt{min-width:0}
.pub-vignette__nom{margin:0;font-size:var(--t4);font-weight:700;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pub-vignette__sous{margin:2px 0 0;font-size:var(--t2);color:var(--gris-texte);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pub-vignette__apercu{margin-top:var(--e2);width:100%}
/* « Apparaît sur la fiche dans … » : le rappel, sous le sous-titre de l'etape
   puis dans chaque section, de ce que la fiche fera des reponses */
.pub__destination{display:flex;flex-wrap:wrap;gap:var(--e1) var(--e2);align-items:center;margin:calc(-1 * var(--e2)) 0 var(--e3);
  font-size:var(--t2);color:var(--gris-texte)}
.pub__destination--section{margin:0 0 var(--e3)}
.pub__destination-eti{display:inline-flex;align-items:center;min-height:22px;padding:0 var(--e2);border-radius:var(--r2);
  background:var(--fond-creux);color:var(--vert-sombre);font-weight:700;font-size:var(--t1);letter-spacing:.02em;text-transform:uppercase}
.pub-services__etat{margin-top:var(--e2)}
/* medias : le compte des photos, puis les conseils par categorie */
.pub-medias__compte{margin:0 0 var(--e3);padding:var(--e2) var(--e3);border-radius:var(--r2);font-size:var(--t3);font-weight:600;
  background:var(--or-fond);color:var(--or-texte)}
.pub-medias__compte[data-ton="vert"]{background:var(--succes-fond);color:var(--succes)}
.pub-conseils{margin-top:var(--e4);padding:var(--e3) var(--e4);border-radius:var(--r-bouton);background:var(--accent-fond);color:var(--vert-encre)}
.pub-conseils__titre{margin:0;font-size:var(--t1);font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.pub-conseils__texte{margin:var(--e1) 0 0;font-size:var(--t3);line-height:1.5}
.pub-conseils__liste{margin:var(--e2) 0 0;padding-left:var(--e4);font-size:var(--t3);line-height:1.6;columns:2;column-gap:var(--e5)}
.pub-conseils .pub__aide{margin-top:var(--e2);color:var(--vert-encre);opacity:.85}
.pub__note-equipements{margin:0 0 var(--e2);padding:var(--e2) var(--e3);border-radius:var(--r2);background:var(--fond-creux)}
/* prix : la carte « Votre prix » */
.pub-prix{margin-top:var(--e3);padding:var(--e4);border-radius:var(--r-carte);background:var(--fond-creux);border:1px solid var(--bord)}
.pub-prix__titre{display:flex;align-items:center;gap:var(--e2);margin:0 0 var(--e2);font-size:var(--t1);font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;color:var(--gris-texte)}
.pub-prix__info{--ic-haut:28px;--ic-icone:14px;border:1px solid var(--bord-fort);border-radius:50%;font-size:var(--t2);font-weight:700;
  color:var(--gris-texte);background:var(--surface)}
.pub-prix__ligne{display:flex;justify-content:space-between;align-items:baseline;gap:var(--e3);padding:6px 0;font-size:var(--t3);
  border-bottom:1px solid var(--bord)}
.pub-prix__ligne:last-of-type{border-bottom:0}
.pub-prix__lib{color:var(--gris-fort)}
.pub-prix__val{font-variant-numeric:tabular-nums;white-space:nowrap}
.pub-prix__ligne--net{font-size:var(--t4)}
.pub-prix__ligne--net .pub-prix__val{color:var(--succes);font-size:var(--t6)}
.pub-prix__ligne--client{margin-top:var(--e1);padding:var(--e2) var(--e3);border-radius:var(--r2);background:var(--surface);border:0}
.pub-prix__ligne--client .pub-prix__lib{color:var(--encre);font-weight:600}
.pub-prix__ligne--client .pub-prix__val{color:var(--vert);font-size:var(--t7)}
.pub-prix > .pub__aide{margin-top:var(--e2)}
/* apercu : checklist et carte de resultats cote a cote */
.pub-apercu__tete{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:var(--e4);align-items:start;margin:var(--e2) 0}
.pub-apercu__st{margin:0 0 var(--e3)}
.pub-apercu__check{padding:var(--e4) var(--e5)}
.pub-checklist{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.pub-checklist__item{display:flex;align-items:center;gap:var(--e2);min-height:36px;font-size:var(--t3);font-weight:500}
.pub-checklist__marque{width:22px;height:22px;flex:0 0 22px;border-radius:50%;display:grid;place-items:center;font-size:var(--t1);font-weight:700;
  background:var(--succes-fond);color:var(--succes)}
.pub-checklist__item[data-ok="non"] .pub-checklist__marque{background:var(--or-fond);box-shadow:inset 0 0 0 2px var(--or-texte)}
.pub-checklist__aller{display:flex;align-items:center;gap:var(--e2);width:100%;min-height:36px;padding:0 var(--e2) 0 0;border:0;background:none;
  font:inherit;font-weight:500;color:var(--encre);text-align:left;cursor:pointer;border-radius:var(--r2)}
.pub-checklist__aller:hover{background:var(--fond)}
/* cibles tactiles 44 px sans grandir les lignes : meme extension par ::after que .fchip (app.css) */
.pub-checklist__aller,.pub-etape{position:relative}
.pub-checklist__aller::after{content:"";position:absolute;inset:-4px 0}
.pub-etape::after{content:"";position:absolute;inset:-2px 0}
.pub-checklist__reste{margin-left:auto;font-size:var(--t2);font-weight:600;color:var(--or-texte);white-space:nowrap}
.pub-apercu__carte .carte{--carte-l:100%;width:100%;flex:none}
.pub-ameliorer{margin:0}
/* abonnement Immobilier (etape Apercu) : la carte partagee (.reglage), teintee
   selon l'etat : couvert (menthe) ou necessaire (or, comme « en attente ») */
.pub-abo{margin:var(--e4) 0 0;padding:var(--e4);display:grid;gap:var(--e2);justify-items:start}
.pub-abo[data-abo="couvert"]{background:var(--succes-fond);border-color:var(--succes)}
.pub-abo[data-abo="requis"]{background:var(--or-fond);border-color:var(--or-texte)}
.pub-abo__sur{margin:0;font-size:var(--t1);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--gris-texte)}
.pub-abo__titre{margin:0;color:var(--or-texte)}
.pub-abo__ligne{display:flex;align-items:center;flex-wrap:wrap;gap:var(--e2) var(--e4)}
.pub-abo__lien{display:inline-flex;align-items:center;min-height:var(--tactile);font-weight:600;color:var(--accent);text-decoration:underline}
.pub-abo .pub__aide{margin:0;color:var(--encre)}
.pub-abo__cta{margin-top:var(--e2)}
@media (max-width:900px){
  .pub-apercu__tete{grid-template-columns:minmax(0,1fr)}
  .pub-apercu__carte{max-width:360px}
  .pub-conseils__liste{columns:1}
}
/* la barre d'actions du formulaire : « precedente » a gauche, les deux autres a droite */
.pub-form > .barre-actions > [data-precedent]{margin-right:auto}
/* l'etat du brouillon (role=status) : une ligne discrete, pas un bandeau */
.pub-form > .pro-etat{margin:0;font-size:var(--t2);padding:var(--e2) var(--e3)}
.pub__h2{font-size:var(--t8);font-weight:700;margin:0 0 var(--e3)}
/* le h2 recoit le focus par script au changement d'etape (publier.js) : il n'est
   pas une commande, aucun anneau. La regle generale des anneaux l'exclut
   (`[tabindex]:not(.pub__h2)`), reste l'anneau du navigateur : eteint ici. */
.pro h2.pub__h2:focus{outline:none}
.pub__h3{font-size:var(--t6);font-weight:600;margin:var(--e3) 0 var(--e2)}
.pub__panneau{background:var(--surface);border:1px solid var(--bord);border-radius:var(--r-carte);padding:var(--e5)}
.pub__panneau > .pub__champs{display:flex;flex-direction:column;gap:var(--e3)}
/* sections repliables : une <details class="reglage"> par groupe du referentiel,
   le titre porte le nombre d'obligatoires restants ; la premiere est ouverte */
.pub-section{padding:0;margin:0}
.pub-section__tete{display:flex;align-items:center;gap:var(--e3);min-height:var(--tactile);
  padding:var(--e3) var(--e5);cursor:pointer;list-style:none;border-radius:var(--r-carte);
  transition:background var(--mvt)}
.pub-section__tete::-webkit-details-marker{display:none}
.pub-section__tete:hover{background:var(--fond)}
.pub-section__tete:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.pub-section[open] > .pub-section__tete{border-radius:var(--r-carte) var(--r-carte) 0 0;border-bottom:1px solid var(--bord)}
.pub-section__titre{flex:1 1 auto;min-width:0;font-size:var(--t6);font-weight:700;margin:0;line-height:1.25}
.pub-section__reste{flex:0 0 auto;font-size:var(--t2)}
.pub-section .accordeon__chevron{flex:0 0 auto}
.pub-section[open] > .pub-section__tete .accordeon__chevron{transform:rotate(180deg)}
.pub-section__corps{padding:var(--e4) var(--e5) var(--e5);display:flex;flex-direction:column;gap:var(--e4)}
.pub-section__texte{margin:0}
/* grille des champs : une colonne, deux a partir de 1024 px (stable) */
.pub__grille{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--e4) var(--e5)}
.pub__grille > *{min-width:0}
/* FormField unique */
.pub__champ{min-width:0;margin:0}
.pub__champ[data-large="oui"]{grid-column:1/-1}
.pub__champ > label{display:block}
.pub__etiquette{display:block}
.pub__champ .pub__interrupteur{display:flex;position:relative;justify-content:flex-start;gap:var(--e3);
  padding:var(--e1) 0}
.pub__champ .pub__interrupteur .interrupteur__piste{order:-1}
.pub__suffixe{flex:0 0 auto;color:var(--gris-texte);font-size:var(--t3);white-space:nowrap}
.pub__boite--lecture{background:var(--fond)}
.pub__boite--lecture input{color:var(--gris-fort)}
.pub__zone{display:block;width:100%;min-height:0;padding:12px 14px;font:inherit;font-size:var(--t5);line-height:1.5;
  color:var(--encre);background:var(--surface);resize:none;overflow:hidden}
.pub__compteur{margin:4px 0 0;font-size:var(--t1);color:var(--gris-texte);text-align:right}
.pub__compteur[data-plein="oui"]{color:var(--erreur)}
.pub__aide{font-size:var(--t2);color:var(--gris-texte);margin:0}
.pub__erreur{display:block;margin:4px 0 0;font-size:var(--t2);color:var(--erreur)}
.pub__erreur[hidden]{display:none}
.pub__erreurs{margin:0;padding:var(--e3);border-radius:var(--r2);background:var(--erreur-fond);color:var(--erreur);
  font-size:var(--t3)}
/* puces cochables : la case reste accessible (1 px, opaque a 0), la coche est dessinee */
.pub__multi{display:flex;flex-wrap:wrap;gap:8px}
.pub__multi-item{position:relative;display:inline-flex;align-items:center;gap:8px;min-height:var(--tactile);
  padding:0 14px 0 10px;border:1px solid var(--bord);border-radius:var(--r-pilule);background:var(--fond);
  font:inherit;font-size:var(--t3);color:var(--encre);cursor:pointer;text-align:left;
  transition:border-color var(--mvt),background var(--mvt),color var(--mvt)}
.pub__multi-case{position:absolute;width:1px;height:1px;margin:0;opacity:0}
.pub__multi-coche{flex:0 0 18px;width:18px;height:18px;border-radius:50%;border:1.5px solid var(--bord-fort);
  background:var(--surface);display:grid;place-items:center;transition:background var(--mvt),border-color var(--mvt)}
.pub__multi-coche::after{content:"";width:5px;height:9px;border:solid var(--texte-inverse);border-width:0 2px 2px 0;
  transform:rotate(45deg) translate(-1px,-1px);opacity:0}
.pub__multi-item:hover{border-color:var(--bord-fort)}
.pub__multi-item:has(.pub__multi-case:checked),.pub__multi-item[aria-checked="true"]{border-color:var(--accent);
  background:var(--accent-fond);color:var(--accent-encre)}
.pub__multi-item:has(.pub__multi-case:checked) .pub__multi-coche,
.pub__multi-item[aria-checked="true"] .pub__multi-coche{background:var(--accent);border-color:var(--accent)}
.pub__multi-item:has(.pub__multi-case:checked) .pub__multi-coche::after,
.pub__multi-item[aria-checked="true"] .pub__multi-coche::after{opacity:1}
.pub__multi-item:has(.pub__multi-case:focus-visible),.pub__multi-item:focus-visible{outline:2px solid var(--accent);
  outline-offset:2px}
/* tuiles d'univers : meme taille, icone, hover, focus, selection evidente */
.pub__univers{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--e3);
  margin-bottom:var(--e4)}
.pub__univers-c{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;
  min-height:112px;padding:var(--e3);gap:var(--e2);font:inherit;font-size:var(--t3);font-weight:600;color:var(--encre);
  border:1px solid var(--bord);border-radius:var(--r3);background:var(--surface);cursor:pointer;
  transition:border-color var(--mvt),background var(--mvt)}
.pub__univers-c .zihma-univers-icone{width:64px;height:64px}
.pub__univers-c:hover{background:var(--fond);border-color:var(--bord-fort)}
.pub__univers-c:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.pub__univers-coche{position:absolute;top:var(--e2);right:var(--e2);width:20px;height:20px;border-radius:50%;
  background:var(--accent);color:var(--texte-inverse);display:none;place-items:center}
.pub__univers-coche .ic{width:12px;height:12px;color:inherit}
.pub__univers-c[aria-checked="true"]{border:2px solid var(--accent);color:var(--accent-encre);
  background:var(--accent-fond);padding:calc(var(--e3) - 1px)}
.pub__univers-c[aria-checked="true"] .zihma-univers-icone{opacity:1;filter:saturate(1.12) contrast(1.03)}
.pub__univers-c[aria-checked="true"] .pub__univers-coche{display:grid}
.pub__sous-cat{margin-top:var(--e1)}
/* MediaUploader : visuels choisis (ordre, couverture, legende) + bibliotheque */
.pub-medias{display:flex;flex-direction:column;gap:var(--e4)}
.pub-medias__liste{list-style:none;margin:0;padding:0;display:grid;gap:var(--e3)}
.pub-medias__vide{padding:var(--e3);border:1px dashed var(--bord-fort);border-radius:var(--r3)}
.pub-media{display:grid;grid-template-columns:120px minmax(0,1fr);gap:var(--e3);padding:var(--e3);
  border:1px solid var(--bord);border-radius:var(--r3);background:var(--fond)}
.pub-media--couverture{border-color:var(--accent);background:var(--accent-fond)}
.pub-media--remplace{outline:2px dashed var(--accent);outline-offset:2px}
.pub-media__img{width:120px;height:90px;object-fit:cover;border-radius:var(--r2)}
.pub-media__corps{display:flex;flex-direction:column;gap:var(--e2);min-width:0}
.pub-media__tete{display:flex;align-items:center;gap:var(--e2);flex-wrap:wrap;font-size:var(--t4)}
.pub-media__legende{display:block}
.pub-media__actes{display:flex;flex-wrap:wrap;gap:var(--e2);align-items:center}
.pub-media__ordre{font-size:var(--t2);color:var(--gris-fort)}
.pub-media__ordre:disabled{opacity:.4;cursor:not-allowed}
/* modules repetables : une carte structuree par element, statut en pilule */
.pub__module{display:flex;flex-direction:column;gap:var(--e3)}
.pub__elements{display:flex;flex-direction:column;gap:var(--e2)}
.pub__element{border:1px solid var(--bord);border-radius:var(--r3);background:var(--surface)}
.pub__element-titre{display:flex;align-items:center;gap:var(--e3);min-height:var(--tactile);
  padding:8px var(--e3);font-weight:600;cursor:pointer;list-style:none;border-radius:var(--r3)}
.pub__element-titre::-webkit-details-marker{display:none}
.pub__element-titre:hover{background:var(--fond)}
.pub__element-titre:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.pub__element-resume{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pub__element-etat{flex:0 0 auto;font-size:var(--t2)}
.pub__element[open] > .pub__element-titre{border-radius:var(--r3) var(--r3) 0 0}
.pub__element[open] > .pub__element-titre .accordeon__chevron{transform:rotate(180deg)}
.pub__element-corps{padding:var(--e3);border-top:1px solid var(--bord);display:flex;flex-direction:column;gap:var(--e4)}
.pub__element-photos{display:flex;flex-direction:column;gap:var(--e2)}
.pub__element-actes,.pub__module-actes{margin-top:0;justify-content:flex-start}
.pub__menu-cat{display:flex;flex-direction:column;gap:var(--e2);padding:var(--e3);border:1px dashed var(--bord-fort);
  border-radius:var(--r3)}
.pub__menu-cat-tete{display:flex;align-items:center;justify-content:space-between;gap:var(--e2);flex-wrap:wrap}
.pub__menu-cat-titre{font-weight:700;font-size:var(--t4)}
.pub__menu-rappel{display:flex;flex-wrap:wrap;align-items:center;gap:var(--e2)}
.pub__menu-rappel .pilule-etat,.pub-section__reste{white-space:normal;text-align:left;min-width:0}
/* etape Apercu : erreurs regroupees PAR ETAPE (compteur + « corriger ») */
.pub-verif__corps{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:var(--e1)}
.pub-verif__etape{border-top:1px solid var(--erreur-bord);padding:var(--e1) 0}
.pub-verif__tete{display:flex;align-items:center;gap:var(--e2);min-height:var(--tactile);font-weight:600;flex-wrap:wrap}
.pub-verif__titre{flex:1 1 auto;min-width:0}
.pub-verif__voir{display:inline-flex;align-items:center;gap:6px;min-height:var(--tactile);cursor:pointer;
  list-style:none;font-size:var(--t2);font-weight:600}
.pub-verif__voir::-webkit-details-marker{display:none}
.pub-verif__voir:focus-visible{outline:2px solid var(--erreur);outline-offset:2px;border-radius:var(--r1)}
.pub-verif .accordeon__chevron{color:inherit;width:14px;height:14px}
.pub-verif__detail[open] > .pub-verif__voir .accordeon__chevron{transform:rotate(180deg)}
.pub-verif__detail .pub__liste-erreurs{padding-bottom:var(--e2)}
.pub__liste-erreurs{margin:0;padding-left:var(--e4);font-size:var(--t3);color:var(--encre)}
/* chaque point d'erreur est un bouton qui mene AU champ (etape puis focus) :
   un bloc de 44 px minimum, souligne comme un lien */
.pub__liste-erreurs li{margin:0}
.pub__erreur-lien{display:flex;align-items:center;width:100%;min-height:var(--tactile);padding:6px 0;border:0;
  background:none;font:inherit;text-align:left;color:inherit;text-decoration:underline;text-underline-offset:3px;
  cursor:pointer;line-height:1.4;border-radius:var(--r1)}
.pub__erreur-lien:hover{color:var(--erreur)}
.pub__erreur-lien:focus-visible{outline:2px solid var(--erreur);outline-offset:2px;border-radius:var(--r1)}
.pub__erreurs-titre{margin:0 0 var(--e1);font-weight:600}
.pub__erreurs .pub__liste-erreurs{color:inherit}
/* encart Compte (apercu) : le <dl class="carac"> vient de fiche.css, non chargee ici */
.pub__compte{padding:var(--e4) var(--e5)}
.pub__compte-titre{margin:0;font-weight:700;font-size:var(--t5)}
.pub__compte .carac{margin:var(--e3) 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--e5)}
.pub__compte .carac__ligne{display:flex;flex-direction:column;gap:2px;padding:var(--e3) 0;border-bottom:1px solid var(--bord)}
.pub__compte dt{font-size:var(--t2);color:var(--gris-texte)}
.pub__compte dd{margin:0;font-weight:600}
.pub__actions-fin{margin-top:var(--e3)}
.pub-form .barre-actions{margin-top:0}
/* « Obligatoire pour publier » / « Optionnel pour enrichir la fiche » : le
   bandeau sous chaque titre d'etape, et la barre de progression qui compte les
   obligatoires (publier.js › majProgression) */
.pub__bandeau{display:flex;flex-wrap:wrap;gap:var(--e2);margin:calc(-1*var(--e2)) 0 var(--e4)}
.pub__bandeau[hidden]{display:none}
.pub__bandeau .pilule-etat{white-space:normal;text-align:left}
.pub-progression__oblig{margin:var(--e2) 0 0;font-size:var(--t2);color:var(--gris-texte)}
/* le repli des champs optionnels d'une grille : un <details> discret sous les obligatoires */
.pub-facultatif{border:1px dashed var(--bord-fort);border-radius:var(--r3);padding:0}
.pub-facultatif[hidden]{display:none}
.pub-facultatif__tete{display:flex;align-items:center;gap:6px;min-height:var(--tactile);padding:var(--e1) var(--e3);
  cursor:pointer;list-style:none;font-size:var(--t3);font-weight:600;color:var(--gris-fort);border-radius:var(--r3)}
.pub-facultatif__tete > span{flex:1 1 auto;min-width:0}
.pub-facultatif__tete::-webkit-details-marker{display:none}
.pub-facultatif__tete:hover{background:var(--fond)}
.pub-facultatif__tete:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.pub-facultatif__n{color:var(--gris-texte);font-weight:500}
.pub-facultatif .accordeon__chevron{margin-left:auto;width:14px;height:14px;color:inherit}
.pub-facultatif[open] > .pub-facultatif__tete .accordeon__chevron{transform:rotate(180deg)}
.pub-facultatif > .pub__grille{padding:var(--e3) var(--e3) var(--e4)}
.pub__element-champs{display:flex;flex-direction:column;gap:var(--e3)}
/* un choix a option unique (pays, unite de chambre) : un texte, pas un menu */
/* (min-height:56px et non var(--champ-haut) : ce marqueur est celui de LA
   regle de format des champs, une seule dans tout le systeme — controle 12) */
.pub__fixe{display:flex;align-items:center;min-height:56px;padding:0 18px;
  border:var(--champ-bord);border-style:dashed;border-radius:var(--r-champ);background:var(--fond);
  color:var(--gris-fort);font-size:var(--t5)}
/* etiquettes : puces ajoutables (saisie + Entree, croix pour retirer) */
.pub__etiquettes{display:flex;flex-direction:column;gap:var(--e2)}
.pub__puces{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.pub__puces:empty{display:none}
.pub__puce{display:inline-flex;align-items:center;gap:4px;min-height:36px;padding:0 4px 0 14px;
  border:1px solid var(--accent);border-radius:var(--r-pilule);background:var(--accent-fond);color:var(--accent-encre);
  font-size:var(--t3);font-weight:500}
.pub__puce-x{display:inline-grid;place-items:center;width:32px;height:32px;min-height:0;padding:0;border:0;
  border-radius:50%;background:none;color:inherit;cursor:pointer;position:relative}
/* cible tactile de 44 px par calque, la puce garde sa hauteur de 36 */
.pub__puce-x::after{content:"";position:absolute;inset:-6px}
.pub__puce-x .ic{width:14px;height:14px}
.pub__puce-x:hover{background:var(--accent);color:var(--texte-inverse)}
.pub__puce-x:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.pub__etiquettes-saisie{display:flex;gap:var(--e2);align-items:center}
.pub__etiquettes-saisie .esp-champ2__b{flex:1 1 auto;min-width:0}
/* repeteur : une ligne = [colonne 1][colonne 2]…[retirer], libelles de colonne
   visibles sur la premiere ligne seulement des 640 px (chaque cellule garde le
   sien pour le lecteur d'ecran et sous 640 ou les cellules s'empilent) */
.pub__repeteur{display:flex;flex-direction:column;gap:var(--e2)}
.pub__lignes{display:flex;flex-direction:column;gap:var(--e2)}
.pub__ligne{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--e2);align-items:end;padding:var(--e2);
  border:1px solid var(--bord);border-radius:var(--r3);background:var(--fond)}
.pub__ligne-col{display:block;min-width:0;position:relative}
.pub__ligne-eti{display:block;font-size:var(--t2);font-weight:600;color:var(--gris-fort);margin-bottom:4px}
.pub__ligne-col .esp-champ2__b{background:var(--surface)}
.pub__ligne-x{justify-self:end;color:var(--gris-fort)}
.pub__ligne-x:hover,.pub__ligne-x:focus-visible{background:var(--erreur-fond);color:var(--erreur)}
.pub__repeteur-actes{display:flex}
/* Disponibilite et quota (lot B, 21/09/2026) : le segmented control du mode
   (deux cartes radio ; filet et rayon par la regle partagee des cartes,
   app.css), la liste de dates (les puces des etiquettes, croix de 44 px),
   l'apercu des creneaux du moteur, la capacite calculee d'une chambre.
   Sous 641 px les deux cartes du mode s'empilent. */
.pub-mode{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--e2);margin-top:var(--e1)}
.pub-mode__carte{display:flex;align-items:flex-start;gap:var(--e3);min-height:var(--tactile);padding:var(--e3) var(--e4);
  font:inherit;color:var(--encre);background:var(--surface);cursor:pointer;text-align:left;
  transition:border-color var(--mvt),background var(--mvt)}
.pub-mode__carte:hover{border-color:var(--bord-fort)}
.pub-mode__carte[aria-checked="true"]{border-color:var(--accent);background:var(--accent-fond);color:var(--accent-encre)}
.pub-mode__carte:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.pub-mode__icone{flex:0 0 20px;width:20px;height:20px;margin-top:2px;color:var(--accent)}
.pub-mode__corps{display:flex;flex-direction:column;gap:2px;min-width:0}
.pub-mode__titre{font-size:var(--t4);font-weight:700}
.pub-mode__texte{font-size:var(--t2);color:var(--gris-texte)}
.pub-mode__carte[aria-checked="true"] .pub-mode__texte{color:inherit}
.pub-dates .esp-champ2__b{flex:1 1 180px;max-width:260px}
.pub-cal__note{padding:var(--e2) var(--e3);border-radius:var(--r2);background:var(--fond)}
.pub-creneaux__apercu{display:flex;flex-direction:column;gap:var(--e2)}
.pub-creneaux__liste{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.pub-creneaux__pastille{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border:1px solid var(--bord);
  border-radius:var(--r-pilule);background:var(--surface);font-size:var(--t2);font-variant-numeric:tabular-nums}
.pub-element__capacite{margin:0;padding:var(--e2) var(--e3);border-radius:var(--r2);background:var(--accent-fond);
  color:var(--accent-encre);font-size:var(--t3);font-weight:600}
/* localite : le menu des localites connues, puis la saisie « Autre localité » */
.pub__localite{display:flex;flex-direction:column;gap:var(--e2)}
.pub__localite-autre[hidden]{display:none}
/* carte a epingle (Leaflet) : hauteur posee ICI, independante de leaflet.css */
.pub-carte{display:flex;flex-direction:column;gap:var(--e2)}
.pub-carte__fond{height:clamp(260px,42vh,420px);width:100%;border-radius:var(--r3);background:var(--fond);
  border:1px solid var(--bord);z-index:0;overflow:hidden}
.pub-carte__position{font-weight:600;color:var(--encre)}
.pub-carte__credit{text-align:right}
.pub-carte__epingle{background:none;border:0}
.pub-carte__epingle span{display:block;width:28px;height:28px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);
  background:var(--accent);border:3px solid var(--surface);box-shadow:var(--ombre-2);cursor:grab}
.pub-carte__epingle:focus-visible{outline:none}
.pub-carte__epingle:focus-visible span{outline:3px solid var(--or);outline-offset:2px}
.leaflet-marker-draggable .pub-carte__epingle span:active,.leaflet-drag-target span{cursor:grabbing}
/* etape Apercu : resume par etape + « Modifier », la fiche dans un cadre */
.pub-recap{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.pub-recap__etape{display:flex;flex-direction:column;gap:4px;padding:var(--e3) 0;border-top:1px solid var(--bord)}
.pub-recap__etape:first-child{border-top:0;padding-top:0}
.pub-recap__etape[data-erreurs="oui"]{background:linear-gradient(90deg,var(--erreur-fond),transparent 60%);
  margin:0 calc(-1*var(--e3));padding-left:var(--e3);padding-right:var(--e3)}
.pub-recap__tete{display:flex;align-items:center;gap:var(--e2);flex-wrap:wrap;min-height:var(--tactile)}
.pub-recap__tete .pro-etape__rond{width:26px;height:26px;font-size:var(--t1);flex:0 0 26px}
.pub-recap__titre{flex:1 1 auto;min-width:0;font-weight:700}
.pub-recap__actes{display:flex;align-items:center;gap:var(--e2);margin-left:auto;flex:0 0 auto}   /* pilule + Modifier restent ensemble, a droite */
.pub-recap__texte{margin:0 0 0 calc(26px + var(--e2));font-size:var(--t3);color:var(--gris-fort)}
.pub-apercu__cadre{display:block;width:100%;height:clamp(480px,70vh,900px);border:1px solid var(--bord);
  border-radius:var(--r3);background:var(--surface)}
.pub__module-vide{padding:var(--e4) var(--e5);display:flex;flex-direction:column;gap:var(--e2)}
/* adaptatif de l'assistant : 2 colonnes des 1024 ; sous 1024 UNE seule barre
   collee en bas (la navigation mobile de l'espace s'efface dans l'assistant,
   les etapes en haut defilent) ; sous 480 tout tient en une colonne */
@media (min-width:1024px){
  .pub__grille{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:641px){
  .pub-mode{grid-template-columns:repeat(2,minmax(0,1fr))}
  /* --colonnes est pose par publier.js (nombre de colonnes du referentiel) */
  .pub__ligne{grid-template-columns:repeat(var(--colonnes,2),minmax(0,1fr)) var(--tactile)}
  .pub__ligne:not(:first-child) .pub__ligne-eti{position:absolute;width:1px;height:1px;overflow:hidden;
    clip:rect(0 0 0 0);white-space:nowrap}
  /* six colonnes (autres services) ne tiennent pas sur une rangee de 700 px :
     nom · description, puis prix · unite · reservation, puis l'offre liee en
     pleine largeur ; les etiquettes restent lues sur chaque ligne */
  .pub__ligne[style*="--colonnes: 6"],.pub__ligne[style*="--colonnes:6"]{grid-template-columns:repeat(6,minmax(0,1fr)) var(--tactile)}
  .pub__ligne[style*="--colonnes: 6"] .pub__ligne-col:nth-child(1),.pub__ligne[style*="--colonnes:6"] .pub__ligne-col:nth-child(1){grid-column:1 / 4}
  .pub__ligne[style*="--colonnes: 6"] .pub__ligne-col:nth-child(2),.pub__ligne[style*="--colonnes:6"] .pub__ligne-col:nth-child(2){grid-column:4 / 7}
  .pub__ligne[style*="--colonnes: 6"] .pub__ligne-col:nth-child(3),.pub__ligne[style*="--colonnes:6"] .pub__ligne-col:nth-child(3){grid-column:1 / 3}
  .pub__ligne[style*="--colonnes: 6"] .pub__ligne-col:nth-child(4),.pub__ligne[style*="--colonnes:6"] .pub__ligne-col:nth-child(4){grid-column:3 / 5}
  .pub__ligne[style*="--colonnes: 6"] .pub__ligne-col:nth-child(5),.pub__ligne[style*="--colonnes:6"] .pub__ligne-col:nth-child(5){grid-column:5 / 7}
  .pub__ligne[style*="--colonnes: 6"] .pub__ligne-col:nth-child(6),.pub__ligne[style*="--colonnes:6"] .pub__ligne-col:nth-child(6){grid-column:1 / 7}
  .pub__ligne[style*="--colonnes: 6"] .pub__ligne-x,.pub__ligne[style*="--colonnes:6"] .pub__ligne-x{grid-column:7;grid-row:1}
  .pub__ligne[style*="--colonnes: 6"]:not(:first-child) .pub__ligne-eti,.pub__ligne[style*="--colonnes:6"]:not(:first-child) .pub__ligne-eti{position:static;width:auto;height:auto;overflow:visible;clip:auto}
}
}
@media (max-width:1023px){
  /* dans l'assistant, la barre d'actions reste collee au bas de l'ecran ;
     « Retour » en haut ramene aux biens. */
  .pub-form > .barre-actions{position:sticky;bottom:0;z-index:2;
    background:var(--surface);padding:var(--e2) var(--e2) calc(var(--e2) + env(safe-area-inset-bottom));
    border-top:1px solid var(--bord);margin:0 calc(-1*var(--e2));flex-wrap:nowrap}
  .pro .pub-form > .barre-actions > .bouton{width:auto;flex:0 0 auto}
  .pro .pub-form > .barre-actions > [data-suivant]{flex:1 1 auto}
}
@media (max-width:640px){
  .pub-section__tete{padding:var(--e3) var(--e4);flex-wrap:wrap}
  /* titre puis chevron sur la premiere ligne, la pilule dessous : plus de titre
     ecrase par « 5 obligatoires restants » */
  .pub-section__titre{order:1;flex:1 1 0}
  .pub-section__tete .accordeon__chevron{order:2}
  .pub-section__reste{order:3;flex:1 1 100%;justify-content:flex-start}
  .pub-section__corps{padding:var(--e3) var(--e4) var(--e4)}
  .pub-media{grid-template-columns:minmax(0,1fr)}
  .pub-media__img{width:100%;height:140px}
  .pub__compte .carac{grid-template-columns:minmax(0,1fr)}
  .pub__ligne-x{justify-self:start}
  .pub-apercu__cadre{height:70vh}
  /* « precedente » ne montre que son icone (nom en aria-label), en rond de 44 ;
     « enregistrer » garde un libelle court, lisible ; les trois tiennent sur
     375 px sans que « suivante » passe sur deux lignes */
  .pub-form > .barre-actions > [data-precedent] > span,.pub-form > .barre-actions > [data-enregistrer] > [data-long]{
    position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .pub-form > .barre-actions > [data-enregistrer] > [data-court]{display:inline}
  .pro .pub-form > .barre-actions > [data-precedent]{width:var(--tactile);flex:0 0 var(--tactile);padding:0;justify-content:center}
  .pro .pub-form > .barre-actions > [data-enregistrer],.pro .pub-form > .barre-actions > [data-suivant]{padding:0 var(--e3);min-width:0;white-space:nowrap}
}
@media (max-width:480px){
  /* 320 px : trois boutons ne tiennent qu'en laissant « suivante » se
     retrecir (son libelle passe sur deux lignes plutot que hors de l'ecran) */
  .pro .pub-form > .barre-actions > [data-suivant]{white-space:normal;flex:1 1 0;min-width:0;line-height:1.15}
  .pro .pub-form > .barre-actions{gap:var(--e2)}
}
@media (min-width:641px){
  .pub-form > .barre-actions > [data-enregistrer] > [data-court]{display:none}
}
@media (max-width:480px){
  .pub__panneau{padding:var(--e4)}
  .pub__univers{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* --- adaptatif (paliers : 480, 640, 900, 1240, 1500) ------------------------------------- */
@media (max-width:1500px){
  .pro-grille{grid-template-columns:minmax(0,1fr) 320px}
}
@media (max-width:1240px){
  .pro-grille,.pro-fiche__corps,.pro-boost-page,.pro-solde__duo{grid-template-columns:minmax(0,1fr)}
  .pro-boost-page__cote{position:static}
  .pro-stats--solde{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pro-stats--solde .pro-solde{grid-column:1 / -1}
}
@media (max-width:900px){
  .pro-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pro-stats--solde{grid-template-columns:minmax(0,1fr)}
  .pro-outils__q{flex:1 1 100%;max-width:none}
  .pro-fiche__eqs,.pro-depots,.pro-choix-compacts,.pro-boost-page__duo{grid-template-columns:minmax(0,1fr)}
  .pro-actifs .grille{--colonnes:2}
  .pro-depot-bloc--large{grid-column:auto}
  /* lignes-cartes : les regles d'espace.css qui font defiler les tableaux Pro
     ne valent plus quand chaque ligne devient une carte */
  .esp.pro .table--cartes{white-space:normal}
  .esp.pro .table--cartes td{padding:6px 0}
  .esp.pro .table--cartes td:first-child{padding-bottom:var(--e2)}
  .esp.pro .table--cartes td[data-col="Actions"]{padding-top:var(--e2)}
  .pro .table--cartes .table__actions{justify-content:flex-end}
  .pro .boite-tab:has(.table--cartes){overflow:visible}
  .pro .pages{margin-top:var(--e4)}
  .pro-fiche__tete{gap:var(--e3)}
}
@media (max-width:640px){
  .pro-fiche__stats,.pro-boost-page__chiffres{grid-template-columns:minmax(0,1fr)}
  .pro-actifs .grille{--colonnes:1}
  .pro-graph{padding:var(--e4)}
  .pro-graph__mois{gap:0}
  .pro-graph__mois span{font-size:var(--t1)}
  /* douze libelles ne tiennent pas sur 300 px : un mois sur deux garde son
     nom (les barres portent chacune leur nom accessible et leur valeur) */
  .pro-graph__mois span:nth-child(2n){visibility:hidden}
  .pro-graph__barre{width:min(70%,16px)}
  .pub-progression__tete{align-items:flex-start;flex-direction:column;gap:var(--e1)}
  .pub-etapes{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:480px){
  .pro-stats{grid-template-columns:minmax(0,1fr)}
  .pro .pro-cal button{width:34px;height:34px;min-height:34px}
  .pro-fiche__actions,.pro-fiche__actions .bouton,.pro-profil__tete .bouton{width:100%}
  .pro-agenda__tete{flex-wrap:wrap}
  .pro .reglage{padding:var(--e4)}
}

/* --- Réservations reçues (21/09/2026) : rythme, compteurs compacts, table
   proportionnee. Les trois compteurs s'ecartent du titre et se resserrent
   (chiffre en t9, icone de 30 px) ; sur mobile, une rangee de trois. --- */
.pro-stats--resa{margin-top:var(--e4);gap:var(--e3)}
.pro-stats--resa .stat{min-height:0;padding:var(--e3) var(--e4);gap:var(--e1)}
.pro-stats--resa .stat__lib{font-weight:600;padding-right:44px}
.pro-stats--resa .stat__ic{top:var(--e3);right:var(--e3);width:30px;height:30px}
.pro-stats--resa .stat__ic .ic,.pro-stats--resa .stat__ic img{width:15px;height:15px}
@media (max-width:900px){
  .pro-stats--resa{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--e2)}
  .pro-stats--resa .stat{padding:var(--e3)}
  /* mesure du 21/09/2026 a 390 px : « .pro .stat:has(.stat__ic) .stat__lib »
     (44 px a droite) l'emportait sur ce padding-right:0 et le libelle se
     cassait mot a mot sur 44 px ; « 3 demandes » en t7 debordait de la tuile */
  .pro .pro-stats--resa .stat .stat__lib{padding-right:0;overflow-wrap:anywhere;font-size:var(--t1)}
  .pro .pro-stats--resa .stat__val{margin-top:auto;font-size:var(--t6);overflow-wrap:anywhere}
  .pro-stats--resa .stat__ic{display:none}
}
/* --- Réservations : lignes et volet de fiche (17/09/2026) ------------------
   Le libelle d'un IconButton de ligne n'est lu que par l'info-bulle et le
   lecteur d'ecran ; sous 900 px (lignes-cartes) il s'ecrit en clair :
   « Voir », « Accepter », « Refuser » se lisent sans survol. */
.bouton-ic__lib{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.pro-table--resa td[data-col="Date"] .table__principal{white-space:nowrap}
/* --- Réservations reçues en CARTES, a toutes les largeurs (21/09/2026) ---
   La table reste une table (colonnes, filtre d'etat, lecteurs d'ecran), mais
   chaque ligne se dessine en carte : client et statut sur la premiere ligne,
   le bien, la date, montant et paiement cote a cote, les commandes en pied
   (en clair : « Voir », « Accepter », « Refuser »). Trois cartes par rangee,
   deux sous 1 300 px, une sous 900 px. Le filet et le rayon des cartes
   viennent du format commun (app.css : .pro-table--resa tr). */
.pro .boite-tab:has(.pro-table--resa){overflow:visible;background:none;border-color:transparent;margin-top:var(--e4)}
.pro-table--resa thead{display:none}
.pro-table--resa,.pro-table--resa tbody,.pro-table--resa tr,.pro-table--resa td{display:block;width:100%}
.pro-table--resa tbody{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--e4)}
.pro-table--resa tr,.pro-table--resa tr:last-child{display:grid;grid-template-columns:minmax(0,1fr) auto;
  grid-template-areas:"client statut" "bien bien" "date date" "montant paiement" "actions actions";
  gap:var(--e3) var(--e3);align-items:center;padding:var(--e4);background:var(--surface);
  transition:box-shadow var(--mvt)}
.pro .table.pro-table--resa tbody tr:hover{background:var(--surface);box-shadow:var(--ombre-carte)}
.pro-table--resa td,.pro-table--resa td:first-child,.pro-table--resa td:last-child{display:block;padding:0;border:0;
  min-height:0;min-width:0}
.pro-table--resa td[data-col]::before{display:none}
.pro-table--resa td:nth-child(1){grid-area:client}
.pro-table--resa td:nth-child(2){grid-area:bien}
.pro-table--resa td:nth-child(3){grid-area:date}
.pro-table--resa td:nth-child(4){grid-area:montant}
.pro-table--resa td:nth-child(5){grid-area:statut;justify-self:end;max-width:172px;text-align:right}
.pro-table--resa td:nth-child(6){grid-area:paiement;justify-self:end;text-align:right}
.pro-table--resa td:nth-child(7){grid-area:actions;padding-top:var(--e3);border-top:1px solid var(--bord)}
/* montant et paiement gardent leur etiquette, en capitales fines */
.pro-table--resa td:nth-child(4)::before,.pro-table--resa td:nth-child(6)::before{display:block;content:attr(data-col);
  font-size:var(--t1);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--gris-texte);margin-bottom:2px}
.pro-table--resa td:nth-child(6) > span{font-weight:600}
/* le bien : vignette 3:2 arrondie, nom sur deux lignes au plus */
.pro-table--resa td:nth-child(2) .table__vignette{width:56px;height:42px;flex:0 0 56px;border-radius:var(--r2)}
.pro .pro-table--resa .table__identite .table__principal,.pro .pro-table--resa .table__identite .table__second{white-space:normal}
.pro .pro-table--resa td:nth-child(1) .table__second{white-space:nowrap}   /* le telephone, entier */
/* un etat long (« En attente de confirmation ») passe sur deux lignes a
   droite, le nom du client garde plus de la moitie de la carte */
.pro .pro-table--resa .pilule-etat{white-space:normal;text-align:center;line-height:1.2}
/* les commandes s'ecrivent en clair, en pilules ; « Accepter » pleine, « Refuser » rouge */
.pro-table--resa .table__actions{--ic-haut:36px;flex:1 1 100%;min-width:0;flex-wrap:wrap;gap:var(--e2);justify-content:flex-start}
.pro-table--resa .table__actions .menu-plus{margin-left:auto}
.pro-table--resa .bouton-ic[data-acte]{width:auto;flex:0 0 auto;padding:0 10px;gap:6px;
  border:1px solid var(--bord);border-radius:var(--r-pilule);font-size:var(--t1);font-weight:600;color:var(--encre)}
.pro-table--resa .bouton-ic[data-acte][data-ton="accent"]{background:var(--vert);border-color:var(--vert);color:var(--texte-inverse)}
.pro-table--resa .bouton-ic[data-acte][data-ton="danger"]{color:var(--erreur);border-color:var(--erreur-bord)}
.pro-table--resa .bouton-ic[data-acte]::after{display:none}
.pro-table--resa .bouton-ic__lib{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}
/* la cellule Client est un bouton : elle ouvre le volet, comme « Voir » */
.pro-table--resa button.table__identite{padding:0;text-align:left;border-radius:var(--r2)}
.pro-table--resa button.table__identite:hover .table__principal{color:var(--vert)}
@media (max-width:1300px){.pro-table--resa tbody{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:900px){
  .pro-table--resa tbody{grid-template-columns:minmax(0,1fr);gap:var(--e3)}
  .pro-table--resa tr,.pro-table--resa tr:last-child{padding:var(--e3) var(--e4)}
  .pro-table--resa tr:last-child{border-bottom:1px solid var(--bord-carte)}
}
/* Le volet : le <dialog> partage (.modale, app.css) pose a DROITE, sur toute
   la hauteur ; sous 560 px la regle mobile d'app.css (feuille en bas) reprend. */
@media (min-width:561px){
  .modale--volet{margin:0 0 0 auto;height:100dvh;max-height:100dvh;max-width:min(520px,calc(100vw - var(--e6)))}
  .modale--volet .modale__cadre{height:100dvh;max-height:100dvh;border-radius:0}
  .modale--volet .modale__pied{border-radius:0}
}
/* flex-basis 0 (comme .modale__entete d'app.css) : en auto, un nom long avec sa
   pilule gardait sa largeur max-content et rejetait la croix seule a la ligne
   suivante (mesure a 390 et 320 px). */
/* 21/09/2026 : l'en-tete du volet est un bandeau menthe (surtitre, nom du
   client en t8, pilule d'etat), le bien une carte ivoire, les commandes un
   pied ivoire avec l'action principale en pleine largeur. */
.resa-fiche .modale__tete{background:var(--accent-fond);border-bottom:0;padding:var(--e4) var(--e4) var(--e4) var(--e5)}
.resa-fiche .modale__titre{font-size:var(--t8)}
.resa-fiche .modale__fermer:hover{background:var(--surface)}
.resa-fiche__tete{flex:1 1 0;min-width:0;display:flex;flex-wrap:wrap;align-items:center;gap:var(--e2) var(--e3)}
.resa-fiche__tete .modale__titre{flex:0 1 auto}
.resa-fiche__sur{width:100%;margin:0;font-size:var(--t1);font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--vert-encre)}
.resa-fiche .modale__corps > * + *{margin-top:var(--e4)}
.resa-fiche__sect{padding-top:var(--e4);border-top:1px solid var(--bord)}
.resa-fiche__sect:first-child{padding-top:0;border-top:0}
.resa-fiche__st{margin:0 0 var(--e3);font-size:var(--t1);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--gris-texte)}
.resa-fiche__client,.resa-fiche__bien{margin-bottom:var(--e3)}
.resa-fiche__bien{background:var(--fond);border-radius:var(--r-champ);padding:var(--e3)}
.resa-fiche__bien .table__vignette{width:72px;height:54px;flex-basis:72px;border-radius:var(--r2)}
.resa-fiche__bien .table__principal{font-size:var(--t5)}
.resa-fiche__bien .table__identite .table__second,.resa-fiche__client .table__identite .table__second{white-space:normal}
.resa-fiche .esp-paie__ligne{align-items:baseline;font-size:var(--t3)}
.resa-fiche .esp-paie__ligne > span:first-child{color:var(--gris-texte)}
.resa-fiche .esp-paie__ligne > span:last-child{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}
.resa-fiche .esp-paie__ligne[data-sens="entree"] > span:last-child{color:var(--succes)}
.resa-fiche .esp-paie__total{font-size:var(--t5);padding:var(--e2) 0;margin:var(--e2) 0;border-top:1px solid var(--bord);border-bottom:1px solid var(--bord)}
.resa-fiche__note{margin:0 0 var(--e2);font-size:var(--t3);color:var(--gris-texte)}
.resa-fiche__lien{display:inline-flex;align-items:center;gap:6px;min-height:var(--tactile);font-weight:600;color:var(--vert)}
.resa-fiche__lien:hover{text-decoration:underline}
button.resa-fiche__lien{background:none;border:0;padding:0;font:inherit;cursor:pointer}
.resa-fiche__reouverture{display:flex;flex-direction:column;align-items:flex-start;gap:var(--e2)}
.resa-fiche__reouverture .pro-etat{margin:0}
.resa-fiche__sect .esp-paie__ligne .pilule-etat{white-space:normal}
.resa-fiche__pied .resa-fiche__st{margin-bottom:var(--e2)}
.resa-fiche__pied{flex-direction:column;align-items:stretch;border-top:1px solid var(--bord);background:var(--fond)}
.resa-fiche__actions{display:flex;flex-wrap:wrap;gap:var(--e2)}
/* la premiere commande est l'etape suivante (valider l'arrivee, accepter,
   proposer une alternative) : pleine et en pleine largeur ; une commande
   rouge ne l'est jamais */
.resa-fiche__actions > :first-child:not([data-ton="danger"]){flex:1 1 100%;justify-content:center;
  background:var(--vert);border-color:var(--vert);color:var(--texte-inverse)}
.resa-fiche__actions > :first-child:not([data-ton="danger"]):hover{background:var(--vert-sombre)}
.resa-fiche__actions > :not(:first-child){background:var(--surface)}
.resa-fiche__actions a,.resa-fiche__actions button{display:inline-flex;align-items:center;gap:6px;min-height:var(--tactile);
  padding:0 var(--e4);border:1px solid var(--bord);border-radius:var(--r-pilule);font-size:var(--t3);font-weight:600;color:var(--encre)}
.resa-fiche__actions a:hover,.resa-fiche__actions button:hover{background:var(--fond)}
.resa-fiche__actions [data-acte="accepter"],.resa-fiche__actions [data-acte="terminer"]{background:var(--vert);border-color:var(--vert);color:var(--texte-inverse)}
.resa-fiche__actions [data-acte="accepter"]:hover,.resa-fiche__actions [data-acte="terminer"]:hover{background:var(--vert-sombre)}
.resa-fiche__actions [data-ton="danger"]{color:var(--erreur);border-color:var(--erreur-bord)}
.resa-fiche__actions [data-ton="danger"]:hover{background:var(--erreur-fond)}
.resa-fiche__pied .pro-etat{margin:0}
@media (max-width:560px){
  .resa-fiche__actions a,.resa-fiche__actions button{flex:1 1 100%;justify-content:center}
}

/* l'oeil « masquer les montants » dans une StatCard dominante : un seul dessin visible */
.stat__oeil .esp-oeil{width:18px;height:18px}
.stat__oeil .esp-oeil--barre{display:none}
.stat__oeil[aria-pressed="true"] .esp-oeil--ouvert{display:none}
.stat__oeil[aria-pressed="true"] .esp-oeil--barre{display:inline-block}

/* L'info-bulle `data-info` (app.css) est un pseudo-element absolu en nowrap :
   invisible mais present, il depassait du bord droit et donnait 6 a 16 px de
   defilement horizontal a 390 px. Il n'existe que pendant le survol / le focus. */
/* PayoutMethod : la colonne souple retrecit ; sous 640 px l'action passe dessous */
.pro .moyen > div:not(.moyen__fin){min-width:0;flex:1 1 auto}
@media (max-width:640px){
  .pro .moyen{flex-wrap:wrap}
  .pro .moyen__fin{margin-left:0;width:100%;justify-content:flex-end}
}
/* 320 px : la tete de page se replie, la pilule d'une alerte aussi, le trio
   bancaire du boost perd ses logos de reseau */
.pro .tete-section{flex-wrap:wrap}
.pro .alerte > div{min-width:0}
.pro .alerte .pilule-etat{white-space:normal;text-align:left}
.pro-boost-page__carte > *{min-width:0}
@media (max-width:480px){
  .pro-boost-page .pro-reseaux{display:none}
}
/* Cibles tactiles : les entrees de 40 px de la navigation secondaire et les
   boutons « petits » (40 px) recoivent le meme calque de 44 px que les autres
   commandes du Pro (voir « cibles tactiles » plus haut) : rien ne bouge a l'ecran. */
.pro :is(.nav-sec__lien,.bouton--petit){position:relative}
.pro :is(.nav-sec__lien,.bouton--petit)::after{content:"";position:absolute;left:50%;top:50%;
  width:max(100%,var(--tactile));height:max(100%,var(--tactile));transform:translate(-50%,-50%)}
/* sous 480 px, les actions d'un ecran prennent la largeur : une par ligne, dans l'ordre */
@media (max-width:480px){
  .pro .barre-actions > .bouton{width:100%}
  .pro .barre-actions__etat{margin-right:0;width:100%}
}

/* ---- Mes offres (21/09/2026) : barre d'outils SearchField + FilterChips,
   badges de visibilite (statuts, pas des actions), entree de menu desactivee
   avec sa raison. */
.mes-biens__outils{display:flex;flex-wrap:wrap;align-items:center;gap:var(--e3) var(--e4);margin-top:var(--e4)}
.mes-biens__outils .champ-cherche{flex:1 1 260px;max-width:380px}
.mes-biens__univers{display:flex;flex-direction:column;gap:4px;flex:0 1 220px;min-width:0}
.mes-biens__univers .filtre__eti{margin:0;text-align:left;align-self:flex-start}
.mes-biens__abo{display:flex;align-items:center;flex-wrap:wrap;gap:var(--e1) var(--e2);margin-top:var(--e3)}
.mes-biens__abo > .ic{flex:0 0 16px;color:var(--accent)}
.mes-biens__abo .pro-abo__croise{min-height:0}
.mes-biens__outils .fchips{flex:1 1 auto}
.pro-vue .fchip__compte{font-size:var(--t1);opacity:.8}
.carte__visibilite{gap:6px}
.carte__visibilite .ic{width:12px;height:12px;flex:0 0 12px}
.menu-plus__indispo{display:flex;flex-wrap:wrap;align-items:center;gap:var(--e2);min-height:var(--tactile);padding:var(--e2) var(--e3);
  color:var(--gris-faible);cursor:not-allowed}
.menu-plus__indispo .ic{width:16px;height:16px;flex:0 0 16px}
.menu-plus__indispo small{flex:1 1 100%;font-size:var(--t1);line-height:1.35;color:var(--gris-texte)}

/* ---- Calendrier d'une offre (lot E2, /pro/calendrier.html) ------------------
   La grille du mois et la colonne de droite. Cinq etats lisibles, tous pris
   aux jetons (aucune couleur ecrite ici) : disponible (surface), reserve
   (succes), en attente (or), bloque (gris raye), complet (erreur). Les cases
   sont des <button> d'au moins 44 px, la colonne suit le defilement sur
   bureau et passe sous la grille a 900 px. */
.pro-calendrier__offre{margin:var(--e1) 0 0;font-size:var(--t6);font-weight:600;color:var(--encre)}
.pro-calendrier__bandeau{margin:var(--e4) 0 0}
.pro-calendrier__barre{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;
  gap:var(--e3) var(--e4);margin:var(--e4) 0 var(--e3)}
.pro-calendrier__choix{flex:1 1 280px;min-width:0;max-width:420px;margin:0}
/* le nom d'une variante est long (« Chambre Deluxe Vue Lagune · 10 mises a
   disposition ») : le champ suit la colonne, il ne la pousse pas. */
.pro-calendrier__choix .esp-champ2__b,.pro-calendrier__choix select{width:100%;min-width:0;max-width:100%}
.pro-calendrier__choix select{text-overflow:ellipsis}
/* plancher de 44 px : .bouton--petit dessine 40 px, juste pour un lien de carte. */
.pro-calendrier .bouton--petit{min-height:var(--tactile)}
.pro-calendrier__nav{display:flex;align-items:center;gap:var(--e2)}
.pro-calendrier__mois{margin:0;min-width:9em;text-align:center;font-size:var(--t5);font-weight:600}
.pro-calendrier__corps{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,340px);
  gap:var(--e5);align-items:start}
.pro-calendrier__grille{min-width:0}
.pro-calendrier__cote{display:flex;flex-direction:column;gap:var(--e4);position:sticky;top:var(--e5)}
.pro-calendrier__carte{background:var(--surface);border:1px solid var(--bord);border-radius:var(--r4);
  padding:var(--e4)}
.pro-calendrier__st{margin:0;font-size:var(--t6);font-weight:700}
.pro-calendrier__sst{margin:var(--e4) 0 var(--e2);font-size:var(--t3);font-weight:700;
  text-transform:uppercase;letter-spacing:.04em;color:var(--gris-texte)}
.pro-calendrier__pli > summary{list-style:none;cursor:pointer;display:flex;align-items:center;
  justify-content:space-between;gap:var(--e2);min-height:var(--tactile)}
.pro-calendrier__pli > summary::-webkit-details-marker{display:none}
.pro-calendrier__pli > summary::after{content:"";width:9px;height:9px;flex:0 0 9px;
  border-right:2px solid var(--gris-texte);border-bottom:2px solid var(--gris-texte);
  transform:rotate(45deg);margin-bottom:3px}
.pro-calendrier__pli[open] > summary::after{transform:rotate(-135deg);margin:3px 0 0}
.pro-calendrier__champs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--e3);
  margin-top:var(--e3)}
.pro-calendrier__champs .esp-champ2{margin:0}
.pro-calendrier__b{margin-top:var(--e3);width:100%}
.pro-calendrier__quota{margin-top:var(--e3)}
.pro-calendrier__jour{margin:var(--e3) 0 var(--e2);font-size:var(--t5);font-weight:600}
.pro-calendrier__liste{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--e3)}
.pro-calendrier__resa,.pro-calendrier__blocage{display:flex;flex-direction:column;align-items:flex-start;
  gap:var(--e1);padding:var(--e3);border:1px solid var(--bord);border-radius:var(--r3)}
.pro-calendrier__resa-t{margin:0;font-size:var(--t4);font-weight:600}
.pro-calendrier__resa-n{margin:0;font-size:var(--t2);color:var(--gris-texte)}
.pro-calendrier__actes{display:flex;flex-wrap:wrap;gap:var(--e2);margin-top:var(--e2)}
.pro-calendrier__creneaux{list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:var(--e2)}
.pro-calendrier__creneaux li{display:flex;flex-direction:column;gap:2px;padding:var(--e2);
  border:1px solid var(--bord);border-radius:var(--r2);font-size:var(--t2)}
.pro-calendrier__creneaux li span:first-child{font-weight:700;font-size:var(--t4)}
.pro-calendrier__creneaux li[data-etat="complet"]{background:var(--erreur-fond);color:var(--erreur);
  border-color:var(--erreur-fond)}
.pro-calendrier__creneaux li[data-etat="peu"]{background:var(--or-fond);color:var(--or-texte);
  border-color:var(--or-fond)}
/* la grille : sept colonnes, les rangees ARIA ne dessinent rien */
.pro-calj{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--e1)}
.pro-calj__tete,.pro-calj__ligne{display:contents}
.pro-calj__tete span{font-size:var(--t1);font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  color:var(--gris-texte);text-align:center;padding-bottom:var(--e1)}
.pro-calj__c{display:block;min-width:0}
.pro-calj__b{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;
  gap:2px;width:100%;min-height:64px;padding:var(--e2);border:1px solid var(--bord);
  border-radius:var(--r2);background:var(--surface);color:var(--encre);font:inherit;text-align:left;
  cursor:pointer}
.pro-calj__b:hover{border-color:var(--accent)}
.pro-calj__b:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.pro-calj__n{font-size:var(--t4);font-weight:700;line-height:1}
.pro-calj__e{font-size:var(--t1);line-height:1.25;color:var(--gris-texte)}
.pro-calj__b[aria-pressed="true"]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.pro-calj__b[data-etat="reserve"]{background:var(--succes-fond);border-color:var(--succes-fond)}
.pro-calj__b[data-etat="reserve"] .pro-calj__e{color:var(--succes)}
.pro-calj__b[data-etat="attente"]{background:var(--or-fond);border-color:var(--or-fond)}
.pro-calj__b[data-etat="attente"] .pro-calj__e{color:var(--or-texte)}
.pro-calj__b[data-etat="complet"]{background:var(--erreur-fond);border-color:var(--erreur-fond)}
.pro-calj__b[data-etat="complet"] .pro-calj__e{color:var(--erreur)}
.pro-calj__b[data-etat="bloque"]{background:repeating-linear-gradient(135deg,var(--gris-champ),
  var(--gris-champ) 5px,var(--surface) 5px,var(--surface) 10px);border-color:var(--bord)}
.pro-calj__b[data-etat="bloque"] .pro-calj__e{color:var(--gris-fort)}
.pro-calj__b[data-etat="ferme"]{background:none;border-style:dashed;color:var(--gris-faible);cursor:default}
.pro-calj__b[data-etat="ferme"] .pro-calj__e{color:var(--gris-faible)}
.pro-calj__legende{display:flex;flex-wrap:wrap;gap:var(--e2) var(--e4);margin:var(--e3) 0 0;
  font-size:var(--t2);color:var(--gris-texte)}
.pro-calj__legende span{display:inline-flex;align-items:center;gap:var(--e2)}
.pro-calj__legende i{width:12px;height:12px;flex:0 0 12px;border-radius:3px;border:1px solid var(--bord);
  background:var(--surface)}
.pro-calj__legende i[data-etat="reserve"]{background:var(--succes-fond);border-color:var(--succes)}
.pro-calj__legende i[data-etat="attente"]{background:var(--or-fond);border-color:var(--or-texte)}
.pro-calj__legende i[data-etat="complet"]{background:var(--erreur-fond);border-color:var(--erreur)}
.pro-calj__legende i[data-etat="bloque"]{background:repeating-linear-gradient(135deg,var(--gris-champ),
  var(--gris-champ) 3px,var(--surface) 3px,var(--surface) 6px)}
.pro-calj__pilule{display:inline-flex;align-items:center;padding:2px var(--e2);border-radius:var(--r5);
  font-size:var(--t1);font-weight:700;border:1px solid var(--bord);background:var(--surface)}
.pro-calj__pilule[data-etat="reserve"]{background:var(--succes-fond);color:var(--succes);border-color:var(--succes-fond)}
.pro-calj__pilule[data-etat="attente"]{background:var(--or-fond);color:var(--or-texte);border-color:var(--or-fond)}
.pro-calj__pilule[data-etat="complet"]{background:var(--erreur-fond);color:var(--erreur);border-color:var(--erreur-fond)}
.pro-calj__pilule[data-etat="bloque"]{background:var(--gris-champ);color:var(--gris-fort)}
@media (max-width:900px){
  .pro-calendrier__corps{grid-template-columns:minmax(0,1fr)}
  .pro-calendrier__cote{position:static}
}
/* 390 px : la case garde sa cible de 44 px, l'etat devient un point ; le
   detail du jour, lui, dit l'etat en toutes lettres. */
@media (max-width:480px){
  .pro-calendrier__champs{grid-template-columns:minmax(0,1fr)}
  .pro-calj{gap:2px}
  .pro-calj__b{align-items:center;justify-content:center;min-height:var(--tactile);padding:var(--e1) 2px}
  .pro-calj__e{width:8px;height:8px;overflow:hidden;text-indent:-999px;border-radius:50%;
    background:var(--bord);flex:0 0 8px}
  .pro-calj__b[data-etat="reserve"] .pro-calj__e{background:var(--succes)}
  .pro-calj__b[data-etat="attente"] .pro-calj__e{background:var(--or-texte)}
  .pro-calj__b[data-etat="complet"] .pro-calj__e{background:var(--erreur)}
  .pro-calj__b[data-etat="bloque"] .pro-calj__e{background:var(--gris-fort)}
  .pro-calj__b[data-etat="ferme"] .pro-calj__e{background:none}
}
