/* Prestataires ProSuite (assets/js/prestataires.js) : « Gestion de mes clients »
   et la carte « Prestataires » des Contacts. S'appuie sur rgpd.css (so-*, gt-*, ap-*). */

.pr-btn { padding: 6px 12px; font-size: 0.8125rem; min-height: 0; }
.pr-actions { display: inline-flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
.pr-ligne { flex-wrap: wrap; }
.pr-ligne > .ap-pastille { flex: none; }
.ap-pastille--rouge { color: var(--rg-rouge); background: var(--rg-rouge-fond); }

/* La liste : seule elle défile, la page non. */
.pr-carte .so-filtres-nat { padding: 0 16px; }
.pr-liste { max-height: calc(100vh - 390px); min-height: 160px; overflow-y: auto; }

/* L'ajout d'un client */
.pr-form { display: grid; gap: 10px; margin-top: 12px; }
.pr-form label { display: grid; gap: 4px; }
.pr-form label > span { font-size: 0.8125rem; font-weight: 600; }
.pr-form select, .pr-form input { width: 100%; padding: 9px 12px; border: 1px solid var(--champ-bord); border-radius: 10px; background: var(--champ); color: inherit; font: inherit; }
.pr-form .btn { justify-self: start; }
.pr-res { display: grid; gap: 8px; justify-items: start; margin-top: 14px; padding: 14px; border: 1px solid var(--bord); border-radius: 12px; background: var(--rg-gris-fond); }
.pr-res b { font-size: 0.9375rem; }
.pr-res small { color: var(--doux); }
.pr-res .so-note { margin: 0; }
.pr-res--non { color: var(--rg-rouge); background: var(--rg-rouge-fond); border-color: transparent; }
.pr-parent { margin-top: 14px; }
.pr-aside { max-height: calc(100vh - 230px); overflow-y: auto; }

/* Côté client : la carte au-dessus des contacts */
.pr-contacts { margin-bottom: 18px; padding: 18px 22px; }
.pr-contacts h2 { display: flex; align-items: center; gap: 10px; margin-bottom: 4px; font-size: 1.0625rem; }
.pr-contacts > .so-note { margin: 0 0 6px; }
.pr-code { display: flex; flex: 1 0 100%; flex-wrap: wrap; align-items: flex-end; justify-content: flex-end; gap: 8px; }
.pr-code label { display: grid; gap: 3px; font-size: 0.75rem; font-weight: 600; }
.pr-code input { width: 8.5em; padding: 6px 10px; border: 1px solid var(--champ-bord); border-radius: 8px; background: var(--champ); color: inherit; font: inherit; letter-spacing: 0.08em; }

/* Inscrire une société pas encore inscrite, réinviter son dirigeant */
.pr-res .pr-form { width: 100%; margin-top: 4px; }
.pr-code select { padding: 6px 10px; border: 1px solid var(--champ-bord); border-radius: 8px; background: var(--champ); color: inherit; font: inherit; }
.pr-rep input { width: 16em; letter-spacing: 0; }

/* Étape C : intervenants, journal, « Gestion de XXXX » */
.pr-lim { gap: 6px 14px; }
.pr-case { display: inline-flex !important; align-items: center; gap: 6px; font-size: 0.875rem !important; font-weight: 500 !important; }
.pr-code .pr-case input { width: auto; padding: 0; letter-spacing: 0; accent-color: var(--foret, #1b5e20); }
.pr-jq { font-weight: 400; color: var(--doux); }
.pr-mes-titre { display: flex; align-items: center; gap: 10px; padding: 16px 18px 0; font-size: 1.0625rem; }
.pr-gx-note { display: flex; align-items: flex-start; gap: 8px; margin: 14px 0 0; }
.pr-gx-note svg { flex: none; margin-top: 2px; }

/* Étape D : l'onglet Clés ODESA */
.pr-kpis { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding: 16px 18px 6px; }
.pr-kpi { display: grid; gap: 2px; padding: 12px 14px; border-radius: 12px; background: var(--rg-gris-fond); }
.pr-kpi b { font-size: 1.75rem; line-height: 1.1; }
.pr-kpi span { font-weight: 600; font-size: 0.875rem; }
.pr-kpi small { color: var(--doux); font-size: 0.75rem; }
.pr-liste--k { max-height: calc(100vh - 470px); }
.pr-h3 { margin: 14px 8px 4px; font-size: 0.8125rem; text-transform: uppercase; letter-spacing: 0.04em; color: var(--doux); }
.pr-seg { margin: 10px 0 2px; padding: 0; flex-wrap: wrap; }
.pr-devis { margin: 0; font-weight: 600; }
.pr-cle code { display: block; padding: 14px; border-radius: 10px; background: var(--rg-gris-fond); font-size: 1.125rem; letter-spacing: 0.06em; text-align: center; user-select: all; }

@media (max-width: 700px) {
  .pr-liste, .pr-aside, .pr-liste--k { max-height: none; }
  .pr-kpis { grid-template-columns: 1fr; }
  .pr-actions, .pr-code { width: 100%; justify-content: flex-start; }
}
/* Les onglets prennent la largeur de leur libellé : aucun n'est coupé tant que la place suffit. */
.pr-onglets { margin-bottom: 14px; }
.pr-onglets button { flex: 1 1 auto; padding: 9px 8px; }

/* La carte du réseau (carte-reseau.js) : la scène à gauche, l'explorateur à droite.
   Seules la scène (zoom) et la liste bougent ; la page ne défile pas. */
.pr-page--carte { display: grid; gap: 14px; }
.cr { --cr-gros: #2f6fe0; --cr-dist: #f07a1a; --cr-cli: #3fae1c; --cr-four: #8a5cd6;
  --cr-ok: #3fae1c; --cr-dem: #e5a50a; --cr-ar: #f07a1a; --cr-ni: #9aa894;
  --cr-sol: #eef5e6; --cr-sol2: #dfeccf; --cr-etq: rgba(22, 34, 20, .86); --cr-etq-t: #fff;
  display: grid; grid-template-columns: minmax(0, 1fr) 370px; gap: 14px; height: max(540px, calc(100vh - 300px)); outline: none; }
:root[data-theme="sombre"] .cr { --cr-gros: #6aa0ff; --cr-dist: #ff9a4a; --cr-cli: #7bd64a; --cr-four: #b493f0; --cr-ok: #7bd64a; --cr-dem: #f5c04a; --cr-ar: #ff9a4a; --cr-ni: #5d6e5a;
  --cr-sol: #10241a; --cr-sol2: #0b1a12; --cr-etq: rgba(238, 245, 232, .92); --cr-etq-t: #10200f; }

/* la scène */
.cr-vue { position: relative; min-width: 0; min-height: 0; border-radius: 18px; overflow: hidden; box-shadow: var(--ombre);
  background: radial-gradient(ellipse at 50% 42%, var(--cr-sol) 0%, var(--cr-sol2) 100%); }
.cr-svg { display: block; width: 100%; height: 100%; cursor: grab; user-select: none; touch-action: none; }
.cr-svg:active { cursor: grabbing; }
.cr-quad { fill: none; stroke: var(--cr-cli); stroke-opacity: .07; stroke-width: 1; }
.cr-cercle { fill: none; stroke: var(--cr-cli); stroke-opacity: .16; stroke-width: 1.4; stroke-dasharray: 2 6; }
.cr-sect-halo { opacity: .6; }
.cr-hs--grossistes { stop-color: var(--cr-gros); } .cr-hs--distributeurs { stop-color: var(--cr-dist); } .cr-hs--clients { stop-color: var(--cr-cli); }
.cr-sect-titre { cursor: pointer; }
.cr-sect-titre rect { fill: var(--carte); stroke-width: 2; }
.cr-sect--grossistes .cr-sect-titre rect { stroke: var(--cr-gros); }
.cr-sect--distributeurs .cr-sect-titre rect { stroke: var(--cr-dist); }
.cr-sect--clients .cr-sect-titre rect { stroke: var(--cr-cli); }
/* Le secteur filtré : en couleur pleine. */
.cr-sect--grossistes.cr-sect--actif .cr-sect-titre rect { fill: var(--cr-gros); }
.cr-sect--distributeurs.cr-sect--actif .cr-sect-titre rect { fill: var(--cr-dist); }
.cr-sect--clients.cr-sect--actif .cr-sect-titre rect { fill: var(--cr-cli); }
.cr-sect--actif .cr-sect-nom { fill: #fff; }
/* La pastille du filtre en cours, en bas à gauche de la carte. */
.cr-raz { position: absolute; left: 12px; bottom: 12px; z-index: 2; display: flex; align-items: center; gap: 8px; max-width: calc(100% - 140px); padding: 4px 4px 4px 12px; border-radius: 999px; background: var(--texte); color: var(--carte); font-size: 0.8125rem; box-shadow: 0 6px 20px rgba(0, 0, 0, .18); }
.cr-raz[hidden] { display: none; }
.cr-raz span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cr-raz button { flex: none; padding: 4px 10px; border: 0; border-radius: 999px; background: var(--carte); color: var(--texte); font: inherit; font-weight: 600; cursor: pointer; }
.cr-raz button b { margin-left: 2px; }
.cr-sect-nom { font-size: 14px; font-weight: 800; text-anchor: middle; fill: var(--texte); white-space: pre; }

/* les liens : une lueur et des points de lumière qui circulent vers la société */
.cr-lien path { fill: none; }
.cr-lien-halo { stroke-width: 10; stroke-opacity: .16; stroke-linecap: round; }
.cr-lien-lueur { stroke-width: 3; stroke-opacity: .85; }
.cr-lien--grossistes .cr-lien-halo { stroke: var(--cr-gros); } .cr-lien--distributeurs .cr-lien-halo { stroke: var(--cr-dist); }
.cr-lien--clients .cr-lien-halo { stroke: var(--cr-cli); } .cr-lien--fournisseur .cr-lien-halo { stroke: var(--cr-four); }
.cr-lien-flux { stroke-width: 2.6; stroke-dasharray: 1.5 16; stroke-linecap: round; stroke: #fff; animation: cr-flux 1.6s linear infinite; }
.cr-lien--grossistes .cr-lien-lueur { stroke: var(--cr-gros); }
.cr-lien--distributeurs .cr-lien-lueur { stroke: var(--cr-dist); }
.cr-lien--clients .cr-lien-lueur { stroke: var(--cr-cli); }
.cr-lien--fournisseur .cr-lien-lueur { stroke: var(--cr-four); stroke-dasharray: 6 6; }
@keyframes cr-flux { to { stroke-dashoffset: -35; } }

/* les sociétés */
.cr-soc { cursor: pointer; transition: opacity .3s; }
.cr-soc--centre { cursor: default; }
.cr-soc--terne { opacity: .18 !important; }
.cr-soc:not(.cr-soc--centre):hover .cr-socle, .cr-soc--survol .cr-socle { stroke: var(--texte); stroke-width: 2.5; }
.cr-soc--survol .cr-halo { opacity: .9; }
.cr-halo { opacity: .45; transition: opacity .2s; }
.cr-halo--racine { fill: var(--cr-cli); opacity: .35; }
.cr-halo--grossistes { fill: var(--cr-gros); } .cr-halo--distributeurs { fill: var(--cr-dist); } .cr-halo--clients { fill: var(--cr-cli); opacity: .3; } .cr-halo--fournisseur { fill: var(--cr-four); }
.cr-socle { stroke-width: 1.5; }
.cr-sc--racine.cr-socle { fill: url(#cr-g-racine); stroke: var(--cr-cli); }
.cr-sc--grossistes.cr-socle { fill: url(#cr-g-grossistes); stroke: var(--cr-gros); }
.cr-sc--distributeurs.cr-socle { fill: url(#cr-g-distributeurs); stroke: var(--cr-dist); }
.cr-sc--clients.cr-socle { fill: url(#cr-g-clients); stroke: var(--cr-cli); }
.cr-socle-bord { stroke: none; }
.cr-sc--racine.cr-socle-bord, .cr-sc--clients.cr-socle-bord { fill: #2f7d14; }
.cr-sc--grossistes.cr-socle-bord { fill: #1f4fa8; } .cr-sc--distributeurs.cr-socle-bord { fill: #b4560c; }
.cr-st-racine-0 { stop-color: #f4ffe9; } .cr-st-racine-1 { stop-color: #9fdc76; }
.cr-st-gros-0 { stop-color: #f2f7ff; } .cr-st-gros-1 { stop-color: #a9c6f5; }
.cr-st-dist-0 { stop-color: #fff6ee; } .cr-st-dist-1 { stop-color: #f8c398; }
.cr-st-cli-0 { stop-color: #f6fff0; } .cr-st-cli-1 { stop-color: #bfe6a6; }
.cr-st-four-0 { stop-color: #f7f2ff; } .cr-st-four-1 { stop-color: #cbb6f2; }
.cr-centre-anneau { fill: none; stroke: var(--cr-cli); stroke-width: 3; stroke-opacity: .55; }
.cr-ca--grossistes { stroke: var(--cr-gros); } .cr-ca--distributeurs { stroke: var(--cr-dist); }
.cr-centre-anneau--2 { stroke-width: 1.5; stroke-opacity: .35; stroke-dasharray: 3 7; animation: cr-flux 4s linear infinite; }

/* les bâtiments : trois faces éclairées différemment, des fenêtres */
.cr-b-g, .cr-b-d, .cr-b-h, .cr-t-a, .cr-t-g, .cr-t-d { stroke: rgba(0, 0, 0, .12); stroke-width: .5; stroke-linejoin: round; }
.cr-b-verre.cr-b-g { fill: #3d7fb5; } .cr-b-verre.cr-b-d { fill: #2b6496; } .cr-b-verre.cr-b-h { fill: #a9d4f2; }
.cr-b-verre2.cr-b-g { fill: #e9eef2; } .cr-b-verre2.cr-b-d { fill: #c9d3dc; } .cr-b-verre2.cr-b-h { fill: #ffffff; }
.cr-b-entrepot.cr-b-g { fill: #5e86c9; } .cr-b-entrepot.cr-b-d { fill: #456cae; } .cr-b-entrepot.cr-b-h { fill: #c7d7f2; }
.cr-b-entrepot2.cr-b-g { fill: #e8edf5; } .cr-b-entrepot2.cr-b-d { fill: #cfd8e6; } .cr-b-entrepot2.cr-b-h { fill: #fff; }
.cr-t-entrepot.cr-t-g { fill: #dfe6f0; } .cr-t-entrepot.cr-t-a { fill: #b9c6d8; } .cr-t-entrepot.cr-t-d { fill: #c9d3e2; }
.cr-b-boutique.cr-b-g { fill: #e58a4a; } .cr-b-boutique.cr-b-d { fill: #c96d2f; } .cr-b-boutique.cr-b-h { fill: #f6d3b5; }
.cr-b-boutique2.cr-b-g { fill: #8b98a3; } .cr-b-boutique2.cr-b-d { fill: #707d88; } .cr-b-boutique2.cr-b-h { fill: #c9d2d9; }
.cr-b-auvent.cr-b-g { fill: #d9472b; } .cr-b-auvent.cr-b-d { fill: #b8381f; } .cr-b-auvent.cr-b-h { fill: #f07a5f; }
.cr-b-maison.cr-b-g { fill: #f4ead8; } .cr-b-maison.cr-b-d { fill: #e1d2b8; } .cr-b-maison.cr-b-h { fill: #fff8ec; }
.cr-t-maison.cr-t-g { fill: #5a6f8c; } .cr-t-maison.cr-t-a { fill: #42536b; } .cr-t-maison.cr-t-d { fill: #4c5f7a; }
.cr-soc--a_rattacher .cr-t-maison.cr-t-g { fill: #d9762a; } .cr-soc--a_rattacher .cr-t-maison.cr-t-a { fill: #b65f1d; } .cr-soc--a_rattacher .cr-t-maison.cr-t-d { fill: #c46a23; }
.cr-soc--non_inscrit .cr-b-maison.cr-b-g, .cr-soc--non_inscrit .cr-b-maison.cr-b-d { fill: #d8dcd4; } .cr-soc--non_inscrit .cr-t-maison { fill: #9aa294 !important; }
.cr-f { fill: #d8efff; opacity: .9; }
.cr-f--d { fill: #b8dcf5; opacity: .8; }
.cr-b-boutique ~ .cr-f, .cr-b-maison ~ .cr-f { fill: #fff6d6; }
.cr-tronc { fill: #8a5a32; }
.cr-feuille { fill: #3f9a2a; } .cr-feuille2 { fill: #6cc24a; }

/* l'état d'un client, en pastille */
.cr-badge circle:first-child { stroke: #fff; stroke-width: 2; }
.cr-badge--rattache circle:first-child { fill: var(--cr-ok); } .cr-badge--demande circle:first-child { fill: var(--cr-dem); }
.cr-badge--a_rattacher circle:first-child { fill: var(--cr-ar); } .cr-badge--non_inscrit circle:first-child { fill: var(--cr-ni); }
.cr-badge-i { fill: #fff; }

/* les étiquettes */
.cr-etq rect { fill: var(--cr-etq); }
.cr-etq text { fill: var(--cr-etq-t); font-size: 11.5px; font-weight: 700; text-anchor: middle; }
.cr-etq--centre text { font-size: 14px; font-weight: 800; }
.cr-etq--centre .cr-etq-sous { font-size: 10.5px; font-weight: 500; opacity: .85; }
.cr-plus-socle { fill: var(--carte); stroke: var(--doux); stroke-dasharray: 4 3; stroke-width: 1.5; }
.cr-plus-t { fill: var(--texte); font-size: 15px; font-weight: 800; text-anchor: middle; }

/* fil, légende, zoom, bulle */
.cr-fil { position: absolute; top: 12px; left: 12px; right: 12px; display: flex; flex-wrap: wrap; align-items: center; gap: 4px; font-size: 0.8125rem; pointer-events: none; }
.cr-fil > * { pointer-events: auto; }
.cr-fil button, .cr-fil b { max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding: 4px 11px; border-radius: 999px; border: 1px solid var(--bord); background: var(--carte); color: var(--texte); font: inherit; box-shadow: var(--ombre); }
.cr-fil button { cursor: pointer; color: var(--doux); }
.cr-fil button:hover { color: var(--texte); border-color: var(--vert); }
.cr-fil span { color: var(--doux); }
.cr-legende { position: absolute; left: 12px; bottom: 12px; display: grid; grid-template-columns: auto auto; gap: 4px 14px; max-width: calc(100% - 170px); padding: 8px 12px; border-radius: 12px; background: rgba(18, 30, 18, .82); color: #eef5e8; font-size: 0.6875rem; cursor: help; }
.cr-leg-titre { grid-column: 1 / -1; font-weight: 700; font-size: 0.75rem; }
.cr-legende:not(:hover) > :not(.cr-leg-titre) { display: none; }
.cr-legende:not(:hover) { padding: 6px 12px; }
.cr-leg { display: flex; align-items: center; gap: 8px; }
.cr-leg i { width: 20px; height: 3px; border-radius: 3px; box-shadow: 0 0 6px currentColor; }
.cr-leg--grossistes i { background: var(--cr-gros); color: var(--cr-gros); } .cr-leg--distributeurs i { background: var(--cr-dist); color: var(--cr-dist); }
.cr-leg--clients i { background: var(--cr-cli); color: var(--cr-cli); } .cr-leg--fournisseur i { background: var(--cr-four); color: var(--cr-four); }
.cr-leg-etats { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 3px 10px; padding-top: 5px; border-top: 1px solid rgba(255, 255, 255, .15); }
.cr-leg-e { display: inline-flex; align-items: center; gap: 5px; }
.cr-zoom { position: absolute; right: 12px; bottom: 12px; display: flex; overflow: hidden; border-radius: 12px; background: rgba(18, 30, 18, .82); }
.cr-zoom button { display: grid; place-items: center; width: 40px; height: 38px; border: 0; background: none; color: #fff; font: 600 20px/1 inherit; cursor: pointer; }
.cr-zoom button:hover { background: rgba(255, 255, 255, .12); }
.cr-bulle { position: absolute; z-index: 2; display: grid; gap: 1px; max-width: 260px; padding: 7px 11px; border-radius: 10px; background: var(--texte); color: var(--carte); font-size: 0.8125rem; pointer-events: none; box-shadow: 0 6px 20px rgba(0, 0, 0, .18); }
.cr-bulle span { opacity: .75; font-size: 0.75rem; }
/* « hidden » doit l'emporter sur display: grid : la bulle s'efface quand on quitte la société. */
.cr-bulle[hidden] { display: none; }

/* l'explorateur */
.cr-panneau { display: grid; grid-template-rows: auto auto auto minmax(0, 1fr); gap: 12px; min-height: 0; padding: 14px; border-radius: 18px; background: var(--carte); box-shadow: var(--ombre); }
.cr-cherche { display: flex; align-items: center; gap: 8px; padding: 0 12px; border: 1px solid var(--champ-bord); border-radius: 12px; background: var(--champ); color: var(--doux); }
.cr-cherche:focus-within { border-color: var(--vert); box-shadow: 0 0 0 3px rgba(76, 184, 26, .18); }
.cr-cherche input { flex: 1; min-width: 0; padding: 10px 0; border: 0; background: none; color: var(--texte); font: inherit; outline: none; }
.cr-filtres { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
.cr-filtre { display: grid; gap: 1px; padding: 8px 9px; border: 1px solid var(--bord); border-radius: 12px; background: var(--carte); color: var(--texte); font: inherit; text-align: left; cursor: pointer; min-width: 0; }
.cr-filtre span { display: flex; align-items: center; gap: 6px; }
.cr-filtre i { width: 9px; height: 9px; border-radius: 50%; }
.cr-filtre b { font-size: 1.1875rem; line-height: 1.1; }
.cr-filtre small { font-size: 0.6875rem; color: var(--doux); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cr-filtre[aria-pressed="true"] { border-color: var(--texte); box-shadow: inset 0 0 0 1px var(--texte); }
.cr-filtre:disabled { opacity: .5; cursor: default; }
.cr-filtre--grossistes i, .cr-pt--grossistes { background: var(--cr-gros); }
.cr-filtre--distributeurs i, .cr-pt--distributeurs { background: var(--cr-dist); }
.cr-filtre--clients i, .cr-pt--clients { background: var(--cr-cli); }
.cr-filtre--a_rattacher i, .cr-pt--a_rattacher { background: var(--cr-ar); }
.cr-pt--fournisseur { background: var(--cr-four); } .cr-pt--rattache { background: var(--cr-ok); } .cr-pt--demande { background: var(--cr-dem); } .cr-pt--non_inscrit { background: var(--cr-ni); }
.cr-pt { flex: none; display: inline-block; width: 10px; height: 10px; border-radius: 50%; }
.cr-centre { padding: 12px; border-radius: 14px; background: var(--neutre); }
.cr-centre-tete { display: flex; align-items: center; gap: 10px; min-width: 0; }
.cr-centre-tete > div { min-width: 0; }
.cr-centre-tete h3 { margin: 0 0 3px; font-size: 1rem; overflow-wrap: anywhere; }
.cr-chiffres { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin-top: 10px; }
.cr-chiffres div { display: grid; padding: 7px 8px; border-radius: 10px; background: var(--carte); }
.cr-chiffres b { font-size: 1.1875rem; line-height: 1.1; }
.cr-chiffres span { font-size: 0.6875rem; color: var(--doux); }
.cr-note { margin: 8px 0 0; font-size: 0.8125rem; color: var(--doux); }
.cr-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.cr-liste { min-height: 0; overflow-y: auto; overflow-x: hidden; margin: 0 -6px; padding: 0 6px; }
.cr-sec h4 { display: flex; align-items: center; gap: 8px; margin: 6px 4px 4px; font-size: 0.9375rem; }
.cr-sec h4 small { color: var(--doux); font-weight: 600; }
.cr-ligne { display: flex; align-items: center; gap: 10px; width: 100%; padding: 7px 8px; border: 0; border-radius: 12px; background: none; color: var(--texte); font: inherit; text-align: left; cursor: pointer; }
.cr-ligne:hover, .cr-ligne:focus-visible { background: var(--neutre); outline: none; }
.cr-ligne > svg { flex: none; color: var(--doux); }
.cr-ligne-t { display: grid; gap: 3px; min-width: 0; flex: 1; }
.cr-ligne-t b { font-size: 0.875rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cr-av { flex: none; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; color: #fff; font-size: 0.75rem; font-weight: 800; letter-spacing: .02em; }
.cr-av--racine { background: linear-gradient(135deg, #58c624, #2f8a12); }
.cr-av--grossistes { background: linear-gradient(135deg, #5b93f0, #1f4fa8); }
.cr-av--distributeurs { background: linear-gradient(135deg, #ffad66, #c9600f); }
.cr-av--clients { background: linear-gradient(135deg, #8fd66a, #3a8f1a); }
.cr-av--a_rattacher { background: linear-gradient(135deg, #ffb27a, #e06a14); }
.cr-av--non_inscrit { background: linear-gradient(135deg, #c3cbbf, #8c9886); }
.cr-av--demande { background: linear-gradient(135deg, #f8d26a, #d49a06); }
.cr-pills { display: flex; flex-wrap: wrap; gap: 4px; }
.cr-pill { padding: 1px 8px; border-radius: 999px; font-size: 0.6875rem; font-weight: 600; font-style: normal; background: var(--neutre); color: var(--doux); }
.cr-centre .cr-pill { background: var(--carte); }
.cr-pill--grossiste { color: var(--cr-gros); } .cr-pill--distributeur { color: var(--cr-dist); } .cr-pill--rattache { color: var(--cr-ok); }
.cr-pill--a_rattacher { color: var(--cr-ar); } .cr-pill--demande { color: #b07c00; } .cr-pill--racine { color: var(--vert-fonce); }
.cr-vide, .cr-plus { margin: 10px 4px; color: var(--doux); font-size: 0.8125rem; }

@media (max-width: 1000px) {
  .cr { grid-template-columns: 1fr; height: auto; }
  .cr-vue { height: min(90vw, 600px); }
  .cr-panneau { grid-template-rows: auto auto auto auto; }
  .cr-liste { max-height: 420px; }
  .cr-legende { display: none; }
}
@media (prefers-reduced-motion: reduce) { .cr-lien-flux, .cr-centre-anneau--2 { animation: none; } }

/* Le droit de distribuer (C2) : la liste des applications, le choix à droite. */
.pr-dr-ligne { width: 100%; border: 0; background: none; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.pr-dr-ligne--choisie { background: var(--pastille); }
.pr-dr-liste { display: grid; gap: 2px; margin: 10px -8px; }
.pr-dr-liste .pr-ligne { row-gap: 6px; }
.pr-dr-liste .gt-ligne-nom { flex: 1 1 calc(100% - 56px); min-width: 0; }
.pr-dr-liste .gt-ligne-nom small { white-space: normal; }
.pr-dr-liste .pr-actions { flex-wrap: wrap; justify-content: flex-end; }
.pr-dr-liste .ap-pastille { margin-left: 46px; }
.pr-dr-liste .pr-actions, .pr-dr-liste .pr-ligne > .btn { margin-left: auto; }
.pr-dr-q { font-size: 0.8125rem; font-weight: 600; }
.pr-dr-tous { margin-top: 4px; }

/* Les prix (C3) */
.pr-px-vues { margin: 4px 0 8px; padding: 0; }
.pr-px-form { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: end; margin-top: 6px; }
.pr-px-form label > span { font-size: 0.6875rem; }
.pr-px-form .btn { justify-self: end; align-self: end; }
.pr-dr-liste .pr-px-form { flex: 1 1 100%; margin-left: 46px; min-width: 0; }
.pr-px-achat { display: grid; gap: 2px; margin: 4px 0 10px; padding: 10px 12px; border-radius: 10px; background: var(--neutre); font-size: 0.8125rem; color: var(--doux); }
.pr-px-achat b { color: var(--texte); font-weight: 600; }

/* Les demandes du Store (C4) et le formulaire de contact de l'installation */
.pr-dm .gt-ligne-nom { min-width: 0; }
.pr-dm-msg { display: block; margin-top: 4px; padding: 6px 10px; border-radius: 8px; background: var(--neutre); font-size: 0.8125rem; white-space: pre-wrap; overflow-wrap: anywhere; }
.pr-dm .pr-actions { flex: 1 1 100%; justify-content: flex-end; }
.pr-dm select { padding: 6px 10px; border: 1px solid var(--champ-bord); border-radius: 8px; background: var(--champ); color: inherit; font: inherit; max-width: 220px; }
.si-contact { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--bord); }
.si-contact h4 { margin: 0; }
.si-champ textarea { padding: 9px 11px; border: 1px solid var(--champ-bord); border-radius: 9px; background: var(--champ); color: inherit; font: inherit; font-weight: 400; resize: vertical; }

/* Consommation et montants (C5) */
.pr-cs-nav { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 14px 18px 0; }
.pr-cs-nav b { font-size: 1rem; text-transform: capitalize; }
.pr-cs-kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.pr-cs-kpis .pr-kpi b { font-size: 1.25rem; }
.pr-cs-vues { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; padding: 6px 16px; }
.pr-cs-csv { margin-left: auto; }
.pr-cs-m { display: grid; justify-items: end; margin-left: auto; white-space: nowrap; }
.pr-cs-m small { color: var(--doux); font-size: 0.75rem; }
@media (max-width: 700px) { .pr-cs-kpis { grid-template-columns: 1fr 1fr; } }


/* Consommation : la note des jours provisoires. */
.pr-cs-prov { margin: 2px 0 0; font-size: 12px; }
