/* ============================================================
   Kama — Dashboard (Home). Feuille de style du module.
   Reprend les tokens d'app.css : --accent #00FFC9, palette sémantique du 22/07.
   Tout est préfixé .dsh pour ne rien casser ailleurs.
   ============================================================ */

.dsh{--r:12px;padding:0 0 60px}
.dsh *{box-sizing:border-box}
.dsh .num{font-family:'Space Grotesk',sans-serif;font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:-.5px}
.dsh .mono{font-family:'JetBrains Mono',ui-monospace,monospace}

/* onglets */
.dsh-tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin-bottom:10px;overflow-x:auto;overflow-y:hidden}
.dsh-tabs button{padding:10px 15px;font-size:13.5px;font-weight:550;color:var(--ink2);border:0;background:none;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;cursor:pointer}
.dsh-tabs button:hover{color:var(--ink)}
.dsh-tabs button[aria-selected="true"]{color:var(--ink);font-weight:650;border-bottom-color:var(--accent,#0FFDC7)}
/* « new » : vert SAYCO, ecriture grise, et une date de fin dans le code. */
.dsh-tabs .neuf{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:99px;
  background:var(--accent,#0FFDC7);color:var(--ink2,#4A5163);font-size:10px;font-weight:700;
  letter-spacing:.01em;vertical-align:middle}
/* « bêta » : l'orange du code des puces d'état (_STAGE.beta dans app.js), le gabarit de « new ». */
.dsh-tabs .beta{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:99px;
  background:#F59E0B;color:#2B1A02;font-size:10px;font-weight:700;letter-spacing:.01em;vertical-align:middle}
.dsh-tabs .cnt{display:inline-block;margin-left:6px;font-size:10.5px;font-weight:700;background:var(--red-soft,#FDECEC);color:var(--red,#C12B33);padding:1px 6px;border-radius:99px;vertical-align:middle}
/* Avis Google : la pastille orange de la barre de gauche (app.css, .count.cons). */
.dsh-tabs .cnt.or{background:var(--nav-alerte,#F59E0B);color:#3A2400}
.dsh-tabs .adm{margin-left:5px;font-size:10px;color:var(--violet,#7A4DD6)}

/* panneaux */
.dsh .dshpanel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:visible;margin:0}
.dsh .dshpanel>.dshh{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 12px 6px;border-bottom:1px solid var(--line2);flex-wrap:wrap}
.dsh .dshpanel>.dshh .t{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:14.5px;letter-spacing:-.2px}
.dsh .dshpanel>.dshh .s{font-size:11.5px;color:var(--ink3)}
.dsh .dshpanel .body{padding:8px 10px}
.dsh-row{display:grid;gap:16px;align-items:start;margin-bottom:16px}
.dsh-row.c2{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr)}
@media(max-width:1100px){.dsh-row{grid-template-columns:1fr !important}}

/* tableaux */
.dsh-tb{width:100%;font-size:12px;border-collapse:collapse}
.dsh-tb th{text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink3);font-weight:600;padding:5px 8px;border-bottom:1px solid var(--line);white-space:nowrap}
.dsh-tb td{padding:4px 8px;border-bottom:1px solid var(--line2);white-space:nowrap}
.dsh-tb tbody tr:last-child td{border-bottom:none}
.dsh-tb tbody tr:hover{background:var(--surface-alt)}
.dsh-tb .r{text-align:right;font-variant-numeric:tabular-nums}
.dsh-tb tfoot td{padding:10px;border-top:2px solid var(--line);font-weight:700;font-family:'Space Grotesk',sans-serif;font-variant-numeric:tabular-nums;background:var(--surface-alt)}
.dsh .zero{color:var(--ink3)}
.dsh .hot{background:var(--accent-soft,#E3FFF8) !important}
.dsh .scrollx{overflow-x:auto}
.dsh .obj{display:inline-block;margin-left:10px;font-size:11.5px;font-weight:600;color:var(--blue,#2563EB);font-variant-numeric:tabular-nums;letter-spacing:0}
.dsh-tb td.cel{line-height:1.2;padding-top:4px;padding-bottom:4px}
.dsh .legobj{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--ink3)}
.dsh .legobj b{color:var(--blue,#2563EB);font-weight:700}

/* pastilles d'état */
.dsh .st{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;padding:1px 8px;border-radius:99px;white-space:nowrap}
/* Validé, réglé, versé : la menthe SAYCO à 25 % sur blanc (#BFFFF2), encre grise. Plus de vert sombre
   (Théo, 26/09/2026) ; même couple que ST_CLASSE.ok dans format.mts. */
.dsh .st.ok{background:#BFFFF2;color:var(--ink2,#4A5163)}
.dsh .st.wait{background:var(--orange-soft,#FCF0DC);color:var(--orange,#B26B00)}
.dsh .st.no{background:var(--line2);color:var(--ink3)}
.dsh .st.due{background:var(--blue-soft,#E6F1FA);color:var(--blue,#2563EB)}
.dsh .st.late{background:var(--red-soft,#FDECEC);color:var(--red,#C12B33)}
.dsh .pct{font-size:11px;color:var(--ink3);font-weight:500}
.dsh .hors{font-size:11.5px;color:var(--ink3);font-style:italic}
.dsh .soon{color:var(--ink3);font-size:11.5px}
.dsh .tag{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:2px 7px;border-radius:5px}
.dsh .tag.fre{background:var(--violet-soft,#F0E9FB);color:var(--violet,#7A4DD6)}
.dsh .tag.adm{background:var(--violet-soft,#F0E9FB);color:var(--violet,#7A4DD6)}
.dsh .tag.lock{background:var(--line2);color:var(--ink3)}
.dsh .split{display:inline-block;font-size:9.5px;font-weight:700;background:var(--violet-soft,#F0E9FB);color:var(--violet,#7A4DD6);padding:1px 6px;border-radius:4px;margin-left:6px;vertical-align:1px}
.dsh .late{color:var(--red,#C12B33);font-weight:650}

/* boutons */
.dsh .gh{border:1px solid var(--line);background:var(--surface-alt);border-radius:8px;padding:6px 12px;font-size:12.5px;font-weight:600;color:var(--ink2);cursor:pointer}
.dsh .gh:hover{background:var(--surface);border-color:var(--ink3)}
.dsh .gh[disabled]{opacity:.45;cursor:not-allowed}
.dsh .pr{background:var(--accent,#00FFC9);color:#0A2A23;border:0;border-radius:8px;padding:7px 14px;font-size:12.5px;font-weight:700;cursor:pointer}
.dsh .pr:hover{filter:brightness(.95)}
.dsh .mini{font-size:11.5px;padding:4px 9px;border-radius:7px}

/* liens internes */
.dsh .lnk{color:var(--ink);font-weight:600;border-bottom:1px dashed var(--ink3);cursor:pointer}
.dsh .lnk:hover{color:var(--link-hover,#2563EB);border-bottom-color:var(--link-hover,#2563EB)}
.dsh .pl .cli{font-weight:600}
/* Mention du registre a la place d'un nom (« facture en 2 temps / Val. PE ») :
   c'est une information reprise telle quelle, signalee comme une note. */
.dsh .mention{color:var(--ink3);font-style:italic}
/* Bandeau des filtres actifs, au-dessus de la table. */
.dsh .dshflt{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-height:26px;margin-bottom:8px}
/* Les filtres de « Placements et primes » sont remontes a droite du titre :
   la ligne qu'ils occupaient sous l'en-tete est rendue au tableau. */
.dsh .dshpanel>.dshh .dshtitre{display:flex;align-items:center;gap:14px;flex-wrap:wrap;min-width:0;flex:1 1 auto}
.dsh .dshpanel>.dshh .dshtitre .dshflt{margin-bottom:0;min-height:0}
.dsh .dshflt .vide{font-size:11.5px;color:var(--ink3)}
/* Selection de factures pour un envoi groupe. */
.dsh .pl th.selc,.dsh .pl td.selc{width:34px;padding-left:11px;padding-right:0}
.dsh .pl td.selc input,.dsh .pl th.selc input{cursor:pointer;accent-color:var(--blue,#2563EB);width:15px;height:15px}
.dsh .pl tr.coche{background:var(--accent-soft,#E3FFF8)}
.dsh .pl tr.coche:hover{background:var(--accent-soft,#E3FFF8)}
.dsh .selbar{position:fixed;left:50%;bottom:58px;transform:translateX(-50%);z-index:70;display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0;padding:10px 15px;width:auto;max-width:min(940px,calc(100vw - 48px));border-radius:12px;border:1.5px solid var(--accent,#00FFC9);background:var(--accent-soft,#E3FFF8);box-shadow:0 14px 38px rgba(20,25,37,.24);animation:dshSelIn .16s ease-out}
@keyframes dshSelIn{from{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%,0)}}
.dsh .selbar.ko{border-color:var(--orange,#B26B00);background:#FDF3E3}
.dsh .selbar .n{font-weight:700;font-size:13px;color:var(--ink)}
.dsh .selbar .m{font-size:13px;font-variant-numeric:tabular-nums;color:var(--ink2)}
.dsh .selbar .w{font-size:12px;color:var(--ink2)}
.dsh .selbar.ko .w{color:var(--orange,#B26B00);font-weight:650}
.dsh .selbar .sp{flex:1}
/* Statut de la prime : le petit panneau d'edition. */
.dshprime{margin-top:12px;display:flex;flex-direction:column;gap:10px}
/* Deux beneficiaires, deux blocs : l'intertitre dit de qui on parle. */
.dshprime+.dshprime{margin-top:16px;padding-top:14px;border-top:1px solid var(--line2)}
.dshprime-t{font-size:11.5px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--ink2)}
/* Compteur de beneficiaires, dans la colonne « Versement ». Les deux statuts
   d'une meme ligne s'empilaient (.stpile, retiree le 14/09) : la ligne passait a
   39 px quand toutes les autres font 26, et dans une grille toutes les lignes
   ont la meme hauteur. Une seule puce porte desormais l'etat le moins avance,
   ce compteur dit qu'il y en a deux, et le detail est au survol. Il ne parait
   que la : ailleurs il n'y a rien a compter. */
.dsh .stn{display:inline-flex;align-items:center;justify-content:center;min-width:15px;height:15px;
  padding:0 4px;margin-left:5px;border-radius:99px;background:var(--line2);color:var(--ink2);
  font-size:9.5px;font-weight:800;font-family:'Space Grotesk',sans-serif;
  vertical-align:1px;cursor:inherit}
.dshprime .ch{display:flex;flex-direction:column;gap:7px}
.dshprime .ch label{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink);cursor:pointer}
.dshprime .ch input{accent-color:var(--blue,#2563EB);width:15px;height:15px;cursor:pointer}
.dshprime .mo{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink2);padding-left:23px}
.dshprime .mo select,.dshprime .mo input{padding:6px 9px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font-size:12.5px}
.dshprime .mo input{width:78px}
/* La cellule s'ouvre au clic quand on est administrateur. */
.dsh .pl td.c-paie .st[data-prime]{cursor:pointer}
.dsh .pl td.c-paie .st[data-prime]:hover{box-shadow:0 0 0 2px var(--surface),0 0 0 3px currentColor}
/* Reglage de la visibilite des colonnes pour les recruteurs (mode « Colonnes »). */
.dsh .colvis{border:1px solid var(--line);border-radius:11px;padding:11px 13px;margin-bottom:10px;background:var(--surface-alt)}
.dsh .colvis .t{font-size:12px;font-weight:700;color:var(--ink);margin-bottom:8px}
.dsh .colvis .s{font-size:11.5px;color:var(--ink3);margin-top:8px}
.dsh .colvis .chips{display:flex;flex-wrap:wrap;gap:6px}
.dsh .cvc{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:14px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink3);font-size:11.5px;font-weight:650;cursor:pointer}
.dsh .cvc svg{opacity:.75}
.dsh .cvc:hover{border-color:var(--accent,#00FFC9)}
.dsh .cvc.on{border-color:var(--accent,#00FFC9);background:var(--accent-soft,#E3FFF8);color:var(--ink,#141925)}
/* Recherche d'une societe au registre des entreprises (panneau « Societe facturee »). */
.dshsiren{margin-top:12px}
.dshsiren .ln{display:flex;gap:8px;align-items:center}
.dshsiren .ln input{flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.02em}
.dshsiren .res{margin-top:10px;max-height:280px;overflow:auto;display:flex;flex-direction:column;gap:5px}
.dshsiren .res .vide{font-size:12px;color:var(--ink3);padding:6px 2px}
.dshsiren .soc{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;padding:8px 11px;border:1px solid var(--line);border-radius:9px;background:var(--surface);cursor:pointer}
.dshsiren .soc:hover{border-color:var(--accent,#00FFC9)}
.dshsiren .soc.on{border-color:var(--accent,#00FFC9);background:var(--accent-soft,#E3FFF8);box-shadow:0 0 0 1px var(--accent,#00FFC9)}
.dshsiren .soc b{font-size:13px;color:var(--ink)}
.dshsiren .soc .mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:var(--ink2)}
.dshsiren .soc .ad{font-size:11.5px;color:var(--ink3)}
.dshsiren .soc .ko{font-size:10.5px;font-weight:700;color:var(--red,#C12B33);text-transform:uppercase;letter-spacing:.04em}
.dsh .pos{display:block;font-weight:400;font-size:11.5px;color:var(--ink3);margin-top:1px}
.dsh .pl td{cursor:pointer}
.dsh .pl td.c-cli{white-space:normal;max-width:280px;line-height:1.3}
.dsh .pl td.c-cand{white-space:normal;max-width:180px}
.dsh .fact{display:inline-flex;align-items:center;gap:5px;color:var(--blue,#2563EB);font-weight:600;text-decoration:none}
.dsh .fact:hover{text-decoration:underline}

/* bandeau d'alerte */
.dsh .alert{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--red,#C12B33);border-radius:var(--r);padding:13px 17px;margin-bottom:16px}
.dsh .alert .l{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
.dsh .alert .n{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:23px;color:var(--red,#C12B33);font-variant-numeric:tabular-nums}
.dsh .alert .dshx{font-size:12.5px;color:var(--ink2);line-height:1.5;max-width:70ch}
.dsh .alert .dshx b{color:var(--ink)}

/* graphe */
.dsh .chart{position:relative}
.dsh .chart svg{display:block;width:100%;height:auto}
.dsh .tipbox{position:absolute;pointer-events:none;opacity:0;transition:opacity .1s;background:#141925;color:#fff;border-radius:8px;padding:8px 10px;font-size:11.5px;line-height:1.5;white-space:nowrap;box-shadow:0 6px 20px rgba(20,25,37,.28);z-index:5}
.dsh .leg{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;color:var(--ink2);margin-top:6px;padding-left:4px}
.dsh .leg i{display:inline-block;width:16px;height:4px;border-radius:2px;vertical-align:middle;margin-right:6px}

/* news — la date a gauche, le texte a droite, comme sur l'ancien dashboard */
.dsh .nw{position:relative;display:grid;grid-template-columns:96px minmax(0,1fr);gap:12px;align-items:center;padding:0;height:38px;border-bottom:1px solid var(--line2)}
.dsh .nw:last-child{border-bottom:none}
.dsh .nw .d{font-size:11.5px;color:var(--ink3);white-space:nowrap}
/* Une seule ligne, sur toute la largeur du bloc : les boutons d'edition
   passent par-dessus au survol, avec un fondu pour ne rien hacher. */
.dsh .nw .tx{font-size:12.5px;color:var(--ink);line-height:1.45;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dsh .nw .acts{position:absolute;top:50%;right:0;transform:translateY(-50%);display:flex;gap:5px;opacity:0;transition:opacity .12s;background:var(--surface);padding-left:2px}
.dsh .nw .acts::before{content:'';position:absolute;right:100%;top:0;bottom:0;width:30px;background:linear-gradient(to right,rgba(255,255,255,0),var(--surface) 85%)}
.dsh .nw:hover .acts,.dsh .nw:focus-within .acts{opacity:1}
.dsh .nw .acts button{width:24px;height:24px;border-radius:7px;display:grid;place-items:center;color:var(--ink3);border:1px solid var(--line);background:var(--surface);cursor:pointer}
.dsh .nw .acts button:hover{color:var(--ink);border-color:var(--ink3);background:var(--surface-alt)}
.dsh .nw .acts button.del:hover{color:var(--red,#C12B33);border-color:var(--red,#C12B33)}

/* sélecteurs ← → */
.dsh .nav-m{display:inline-flex;align-items:center;gap:4px;background:var(--surface-alt);border:1px solid var(--line);border-radius:9px;padding:3px}
.dsh .nav-m button{padding:5px 11px;border:0;background:none;border-radius:6px;font-size:13px;font-weight:600;color:var(--ink2);cursor:pointer}
.dsh .nav-m button:hover{background:var(--surface);color:var(--ink)}
.dsh .nav-m .lbl{padding:0 8px;font-size:12.5px;font-weight:650;width:216px;flex:0 0 216px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dsh .nav-m.sm .lbl{width:126px;flex:0 0 126px}

/* planning */
.dsh .wk-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 0 8px}
.dsh .wk-h .n{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:13.5px}
/* table-layout:fixed : sans lui, une colonne qui recoit « Bureau » s'elargit
   et decale toute la grille. Les largeurs viennent de l'en-tete. */
.dsh .pgrid{width:100%;font-size:12.5px;min-width:780px;border-collapse:collapse;table-layout:fixed}
.dsh .pgrid th{padding:6px;font-size:11px;color:var(--ink2);font-weight:600;text-align:center;border-bottom:1px solid var(--line)}
.dsh .pgrid th.day span{display:block;font-size:10px;color:var(--ink3);font-weight:500;margin-top:1px}
.dsh .pgrid th.today{color:var(--ink,#141925);box-shadow:inset 0 -3px 0 var(--accent,#00FFC9)}
.dsh .pgrid th.today span{color:var(--ink2,#4A5163)}
.dsh .pgrid th:first-child{text-align:left;padding-left:2px}
.dsh .pgrid td{padding:4px 3px;border-bottom:1px solid var(--line2)}
.dsh .pgrid tr:last-child td{border-bottom:none}
.dsh .pgrid td.nm{font-weight:600;font-size:13px;padding-left:2px;white-space:nowrap}
.dsh .pgrid td.nm span{display:block;font-weight:400;font-size:10.5px;color:var(--ink3)}
.dsh .pgrid td.tr{text-align:center;font-family:'Space Grotesk',sans-serif;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink,#141925)}
.dsh .day2{display:flex;gap:2px}
/* Demi-journees posterieures au depart de la personne : rien a saisir, rien a reclamer. */
.dsh .day2.hors{opacity:.5}
.dsh .hf.out{flex:1;height:26px;border-radius:6px;background:repeating-linear-gradient(135deg,var(--line2) 0 4px,transparent 4px 8px);border:1px dashed var(--line);cursor:default}
.dsh .hf{flex:1;height:33px;border-radius:6px;display:grid;place-items:center;font-size:10.5px;font-weight:700;background:var(--surface-alt);color:var(--ink3);border:1px solid var(--line2);cursor:pointer;transition:.1s}
.dsh .hf:hover{border-color:var(--ink3)}
.dsh .hf[data-s="Bureau"]{background:#BFFFF2;color:var(--ink2,#4A5163);border-color:transparent}
.dsh .hf[data-s="TT"]{background:var(--blue-soft,#E6F1FA);color:var(--blue,#2563EB);border-color:transparent}
.dsh .hf[data-s="RDV"]{background:var(--violet-soft,#F0E9FB);color:var(--violet,#7A4DD6);border-color:transparent}
.dsh .hf[data-s="Ecole"]{background:#FDF3C7;color:#8A6212;border-color:transparent}
.dsh .hf[data-s="Congé"]{background:#FCE7F3;color:#9D174D;border-color:transparent}
.dsh .hf[data-s="Arrêt"]{background:var(--red-soft,#FDECEC);color:var(--red,#C12B33);border-color:transparent}
.dsh .hf[data-s="Ferié"]{background:repeating-linear-gradient(45deg,#EEF0F5 0 5px,#E3E6EE 5px 10px);color:var(--ink3);border-color:transparent}
.dsh .locked .hf{cursor:not-allowed;opacity:.62}
.dsh .locked .hf:hover{border-color:var(--line2)}
.dsh-pick{position:fixed;z-index:240;background:var(--surface);border:1px solid var(--line);border-radius:11px;box-shadow:0 14px 38px rgba(20,25,37,.2);padding:7px;width:196px}
.dsh-pick .hd{font-size:10.5px;color:var(--ink3);text-transform:uppercase;letter-spacing:.06em;font-weight:600;padding:3px 6px 7px}
.dsh-pick button{display:flex;align-items:center;gap:9px;width:100%;padding:7px 8px;border:0;background:none;border-radius:8px;font-size:12.5px;font-weight:550;text-align:left;cursor:pointer;color:var(--ink)}
.dsh-pick button:hover{background:var(--surface-alt)}
.dsh-pick i{width:12px;height:12px;border-radius:4px;flex:0 0 12px;display:inline-block}
.dsh-pick .kbd{margin-left:auto;font-family:'JetBrains Mono',monospace;font-size:10.5px;min-width:19px;height:19px;padding:0 4px;display:grid;place-items:center;border:1px solid var(--line);border-bottom-width:2px;border-radius:5px;color:var(--ink3);background:var(--surface-alt)}
.dsh-pick .ft{font-size:10.5px;color:var(--ink3);padding:7px 8px 2px;border-top:1px solid var(--line2);margin-top:5px;line-height:1.45}
.dsh .dshlegend{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}
.dsh .lg{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--ink2);background:var(--surface-alt);border:1px solid var(--line);padding:4px 10px;border-radius:99px}
.dsh .lg i{width:11px;height:11px;border-radius:4px;display:inline-block}

/* volet latéral */
.dsh-ovl{position:fixed;inset:0;background:rgba(20,25,37,.34);opacity:0;pointer-events:none;transition:opacity .16s;z-index:140}
.dsh-ovl.on{opacity:1;pointer-events:auto}
.dsh-drw{position:fixed;top:0;right:0;bottom:0;width:min(470px,94vw);background:var(--surface);border-left:1px solid var(--line);box-shadow:-14px 0 44px rgba(20,25,37,.16);transform:translateX(102%);transition:transform .2s cubic-bezier(.4,0,.2,1);z-index:141;display:flex;flex-direction:column}
.dsh-drw.on{transform:none}
.dsh-drw .hd{padding:16px 18px 13px;border-bottom:1px solid var(--line2);display:flex;align-items:flex-start;gap:12px}
.dsh-drw .hd .t{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:16px;letter-spacing:-.3px;line-height:1.3}
.dsh-drw .hd .s{font-size:12.5px;color:var(--ink2);margin-top:3px}
.dsh-drw .hd .dshx{margin-left:auto;width:28px;height:28px;border-radius:8px;display:grid;place-items:center;color:var(--ink3);flex:0 0 28px;border:0;background:none;cursor:pointer}
.dsh-drw .hd .dshx:hover{background:var(--surface-alt);color:var(--ink)}
.dsh-drw .bd{overflow-y:auto;padding:4px 18px 26px;flex:1}
.dsh .blk{padding:15px 0;border-bottom:1px solid var(--line2)}
.dsh .blk:last-child{border-bottom:none}
.dsh .blk h4{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink3);font-weight:700;margin:0 0 10px;display:flex;align-items:center;gap:7px}
.dsh .kv{display:flex;justify-content:space-between;gap:14px;padding:5px 0;font-size:13px}
.dsh .kv .k{color:var(--ink2);flex:0 0 auto}
.dsh .kv .v{text-align:right;font-weight:550;font-variant-numeric:tabular-nums;min-width:0;word-break:break-word}
.dsh .kv .v.big{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:15px}
.dsh .kv .v.mut{color:var(--ink3);font-weight:400}
.dsh .rel{display:flex;gap:7px;align-items:center;padding:6px 0;font-size:12.5px}
.dsh .rel i{width:22px;height:22px;flex:0 0 22px;border-radius:7px;display:grid;place-items:center;font-size:10.5px;font-weight:700;background:var(--surface-alt);border:1px solid var(--line2);color:var(--ink3);font-style:normal}
.dsh .rel i.done{background:#BFFFF2;border-color:transparent;color:var(--ink2,#4A5163)}
.dsh .rel i.now{background:var(--red-soft,#FDECEC);border-color:transparent;color:var(--red,#C12B33)}
.dsh .rel .lab{flex:1;color:var(--ink2)}
.dsh .acts2{display:flex;gap:8px;flex-wrap:wrap;margin-top:11px}

/* paliers & notes */
.dsh .pal{padding:11px 0;border-bottom:1px solid var(--line2)}
.dsh .pal:last-child{border-bottom:none}
.dsh .pal .r1{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.dsh .pal .nm{font-weight:600;font-size:13.5px}
.dsh .pal .amt{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:16px;font-variant-numeric:tabular-nums}
.dsh .pal .nx{font-size:11.5px;color:var(--ink2);margin-top:5px;line-height:1.45}
.dsh .dshnote{margin-top:11px;font-size:12px;color:var(--ink2);line-height:1.55}
.dsh .dshnote b{color:var(--ink)}
.dsh .q{background:var(--violet-soft,#F0E9FB);border-left:2px solid var(--violet,#7A4DD6);border-radius:9px;padding:10px 13px;font-size:12.5px;line-height:1.55;color:#41307a;margin-top:12px}
.dsh .rule{background:var(--surface-alt);border:1px solid var(--line);border-radius:9px;padding:12px 14px;font-size:13px;line-height:1.6;color:var(--ink2)}
.dsh .rule ul{margin:8px 0 0 18px}
.dsh .rule li{margin-bottom:4px}
.dsh .doc{font-size:13px;line-height:1.65;color:var(--ink2);max-width:76ch}
.dsh .doc h4{font-size:13.5px;color:var(--ink);margin:16px 0 8px;font-family:'Space Grotesk',sans-serif}
.dsh .doc h4:first-child{margin-top:0}
.dsh .doc ul{margin:0 0 4px 18px}
.dsh .doc li{margin-bottom:5px}
.dsh .sysgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px}
.dsh .pal-row{display:flex;align-items:center;gap:10px;padding:5px 0;font-size:12.5px}
.dsh .pal-row .k{width:104px;flex:0 0 104px;color:var(--ink2);font-variant-numeric:tabular-nums}
.dsh .pal-row .bar{flex:1;height:14px;background:var(--surface-alt);border-radius:5px;overflow:hidden;min-width:40px}
.dsh .pal-row .bar i{display:block;height:100%;background:var(--accent,#00FFC9);border-radius:5px}
.dsh .pal-row .v{width:58px;flex:0 0 58px;text-align:right;font-family:'Space Grotesk',sans-serif;font-weight:700;font-variant-numeric:tabular-nums}
.dsh .h3{font-size:12.5px;font-weight:700;margin-bottom:9px;display:flex;align-items:center;gap:8px}
.dsh .avat{width:24px;height:24px;border-radius:99px;background:var(--accent-soft,#E3FFF8);color:var(--ink2,#4A5163);display:grid;place-items:center;font-size:10.5px;font-weight:700;flex:0 0 24px}
.dsh .stars{color:#E8A317;letter-spacing:1px}
.dsh .hero{display:flex;align-items:baseline;gap:10px}
.dsh .hero .n{font-size:36px}
.dsh .dshempty{padding:26px 4px;color:var(--ink3);font-size:13px;text-align:center}
.dsh [hidden]{display:none !important}

/* onglets collants : la barre reste accessible quand on descend */
/* La barre reste accessible quand on descend dans un long tableau.
   section.content a 24 px de padding en haut : sans le decalage ci-dessous,
   le contenu defilait dans cette bande, au-dessus de la barre. Un
   pseudo-element ne suffisait pas, .dsh-tabs a overflow-x:auto et le
   decoupait. On etire donc la boite elle-meme vers le haut. */
.dsh .dsh-tabs{position:sticky;top:-24px;padding-top:24px;margin-top:-24px;z-index:6;background:var(--bg,#F5F6F9)}

/* ===================== ajouts de la recette du 28/08 ===================== */

/* la bulle du recruteur, une couleur par prenom */
.dsh .recb{display:inline-block;padding:2px 9px;border-radius:99px;font-size:12px;font-weight:650;line-height:1.55;white-space:nowrap;letter-spacing:0;text-transform:none;vertical-align:middle}
.dsh-tb th.th-rec{text-transform:none;letter-spacing:0;padding-top:6px;padding-bottom:6px}
.dsh .dshpanel>.dshh .t .unite{color:var(--ink3);font-weight:600;font-size:12.5px}

/* bascule « voir comme un recruteur » : elle vit dans la barre d'onglets */
.dsh .dsh-tabs .vurec{order:9;margin-left:auto;align-self:center;margin-bottom:4px;border:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface-alt);border-radius:8px;padding:5px 11px;font-size:11.5px;font-weight:600;color:var(--ink2);white-space:nowrap}
.dsh .dsh-tabs .vurec:hover{color:var(--ink);border-color:var(--ink3)}
.dsh .dsh-tabs .vurec.on{background:var(--violet-soft,#F0E9FB);color:var(--violet,#7A4DD6);border-color:transparent}

/* selecteur d'annee et menu maison (le menu est pose sur le body) */
.dsh .gh.dshsel{display:inline-flex;align-items:center;gap:7px;font-variant-numeric:tabular-nums;font-weight:650}
.dsh-menu{position:fixed;z-index:130;background:var(--surface);border:1px solid var(--line);border-radius:11px;box-shadow:0 14px 38px rgba(20,25,37,.2);padding:6px;min-width:124px}
.dsh-menu button{display:flex;align-items:center;gap:9px;width:100%;text-align:left;padding:7px 10px;border:0;background:none;border-radius:8px;font-size:13px;font-weight:550;color:var(--ink);cursor:pointer;font-variant-numeric:tabular-nums}
.dsh-menu button:hover{background:var(--surface-alt)}
.dsh-menu button.on{font-weight:700}
.dsh-menu .ck{margin-left:auto;color:var(--blue,#2563EB);font-weight:700}
/* Le menu vit sur le <body>, hors de .dsh : la bulle de source a besoin de ses
   propres regles pour ressembler a celle de la colonne. */
.dsh-menu .srcb{display:inline-block;padding:2px 9px;border-radius:99px;font-size:11.5px;font-weight:650;line-height:1.55;white-space:nowrap;max-width:190px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}
.dsh-menu .mact{color:var(--ink2);font-size:12.5px;font-weight:550}
.dsh-menu .mact.add{color:#2563EB;font-weight:650}
.dsh-menu .mact.danger{color:var(--red,#C12B33);font-weight:650}
.dsh-menu button:has(.mact){border-top:1px solid var(--line2);border-radius:0;margin-top:2px;padding-top:8px}
.dsh-menu button:has(.mact)~button:has(.mact){border-top:0;margin-top:0;padding-top:7px}

/* le recapitulatif avant de figer une ligne */
.dshfig{margin-top:13px;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.dshfig div{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:8px 12px;border-bottom:1px solid var(--line2);font-size:13px}
.dshfig div:last-child{border-bottom:none}
.dshfig span{color:var(--ink2)}
.dshfig b{font-family:'Space Grotesk',sans-serif;font-variant-numeric:tabular-nums}
/* Deux beneficiaires sur une meme facture : un intertitre separe les deux blocs. */
.dshfig .dshfig-t{display:block;padding:7px 12px;background:var(--surface-alt,#F5F7FA);
  border-bottom:1px solid var(--line2);font-size:11.5px;font-weight:700;
  letter-spacing:.02em;text-transform:uppercase;color:var(--ink2)}
/* Filet entre la prime du recruteur et celle de l'apporteur, dans le volet. */
.dshsep{height:1px;margin:11px 0;background:var(--line2)}

/* le secteur de la mission */
.dsh .sect{display:inline-block;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;font-size:11.5px;color:var(--ink2);background:var(--surface-alt);border:1px solid var(--line2);padding:2px 8px;border-radius:6px}

/* toutes les lignes a la meme hauteur : le client sur une ligne, le poste sur une autre */
/* 38 px le 12/09, 26 px le 14/09 : 163 placements pour 15 lignes a l'ecran, le
   tableau ne montrait pas assez. A 26 px il en montre 24 sans rien retirer. */
.dsh .pl tbody td{height:26px;vertical-align:middle}
.dsh .dp{font-size:12px}
.dsh .dp tbody td{height:42px;vertical-align:middle;padding-top:5px;padding-bottom:5px}
.dsh .dp td.c-cli{line-height:1.3}
.dsh .dp .pos{font-size:11px}
.dsh .pl td.c-cli{white-space:nowrap;max-width:210px;overflow:hidden}
.dsh .dp td.c-cli{white-space:nowrap;max-width:250px;line-height:1.35;overflow:hidden}
.dsh .pl td.c-cli .cli{display:inline-block;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}
.dsh .dp td.c-cli .cli{display:inline-block;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}
.dsh .dp td.c-cli .pos{display:block;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dsh .dp td.c-cli .cli{font-weight:600}
.dsh .pl td.c-cand{white-space:nowrap;max-width:190px;overflow:hidden;text-overflow:ellipsis}

/* Le tableau fait 8 700 px de haut : sa barre native est hors d'atteinte.
   On la masque et on la double d'une barre collante au bas de l'ecran. */
.dsh .scrollx.barre{scrollbar-width:none}
.dsh .scrollx.barre::-webkit-scrollbar{height:0}
/* bottom:-70px compense le padding bas de section.content : sans lui, la
   barre se posait 70 px au-dessus du bas de la fenetre, en plein tableau. */
.dsh .hbar{position:sticky;bottom:-70px;z-index:4;overflow-x:auto;overflow-y:hidden;background:var(--surface);border-top:1px solid var(--line);padding-top:3px;box-shadow:0 -6px 14px rgba(20,25,37,.07);scrollbar-width:auto;scrollbar-color:var(--ink3) var(--surface-alt)}
.dsh .hbar>div{height:1px}
.dsh .hbar::-webkit-scrollbar{height:12px}
.dsh .hbar::-webkit-scrollbar-track{background:var(--surface-alt);border-radius:99px;margin:0 2px}
.dsh .hbar::-webkit-scrollbar-thumb{background:var(--ink3);border-radius:99px;border:3px solid var(--surface)}
.dsh .hbar::-webkit-scrollbar-thumb:hover{background:var(--ink2)}

/* verrouiller ou rouvrir une semaine */
.dsh .wk-h .vlock{margin-left:2px}
.dsh .pgrid td.nm{padding-top:6px;padding-bottom:6px}

/* la bulle du planning ne doit pas s'etaler : td.nm span est en display:block */
.dsh .pgrid td.nm .recb{display:inline-block;width:auto}

/* le score CA gagne de la place : l'objectif a droite allonge chaque colonne */
.dsh-row.c2.resume{grid-template-columns:minmax(0,1.95fr) minmax(0,1fr)}
.dsh .sca .dsh-tb th,.dsh .sca .dsh-tb td{padding-left:7px;padding-right:7px}
.dsh .sca .obj{margin-left:8px;font-size:11px}


/* la source du candidat, et la mention du vivier quand il a ete recontacte */
.dsh .srcb{display:inline-block;padding:2px 9px;border-radius:99px;font-size:11.5px;font-weight:650;line-height:1.55;white-space:nowrap;max-width:150px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}
.dsh .srcb.vide{background:transparent;color:var(--ink3);padding-left:2px;padding-right:2px}
/* Ancre invisible du calendrier maison : elle ne sert qu'a lui donner
   une position. Elle vit dans <body>, donc pas de prefixe .dsh ici. */
.dfac-anc{position:absolute;opacity:0;pointer-events:none;border:0;padding:0;margin:0;
  background:transparent;z-index:1}
/* Date de facturation et echeance : cliquables tant que rien n'est parti chez Qonto. */
.dsh .dfac{cursor:pointer;border-radius:6px;padding:1px 5px;margin:-1px -5px;display:inline-block;
  border-bottom:1px dotted transparent;transition:background .12s,border-color .12s}
.dsh .dfac:hover{background:var(--line2);border-bottom-color:var(--ink3)}
.dsh .srcb[data-src]{cursor:pointer}
.dsh .srcb[data-src]:hover{box-shadow:0 0 0 2px var(--surface),0 0 0 3px currentColor}
.dsh .viv{display:inline-block;margin-left:6px;font-size:9.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;background:#9CF5DC;color:#4B5563;padding:1px 7px;border-radius:99px;vertical-align:1px}
.dsh .pl td.c-src{white-space:nowrap;max-width:180px;overflow:hidden;text-overflow:ellipsis}

/* reglage des colonnes : on attrape un en-tete et on le fait glisser */
.dsh .colbar{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.dsh .colbar .aide{font-size:11.5px;color:var(--ink3)}
.dsh .pl.edit thead th{cursor:grab;user-select:none;background:var(--surface-alt)}
.dsh .pl.edit thead th:active{cursor:grabbing}
.dsh .pl.edit thead th.drag{opacity:.4}
.dsh .pl.edit thead th.over{box-shadow:inset -3px 0 0 var(--blue,#2563EB)}
.dsh .pl.edit thead th.avant{box-shadow:inset 3px 0 0 var(--blue,#2563EB)}
.dsh .pl.edit tbody td{cursor:default;opacity:.5}
.dsh .pl.edit tbody tr:hover{background:transparent}

/* Le poste a quitte la colonne client : chaque ligne tient sur une ligne. */
.dsh .pl td.c-poste{white-space:nowrap;max-width:210px;overflow:hidden;text-overflow:ellipsis}
/* Societe facturee : raisons sociales longues (« BIJOUTERIE LEPAGE ROUEN »), meme
   traitement que le client — une ligne, coupee au besoin, entiere au survol. */
.dsh .pl td.c-ent{white-space:nowrap;max-width:200px;overflow:hidden;text-overflow:ellipsis}
/* Echeance : la colonne fait la largeur d'une date. Une note libre (« en attente de
   validation PE ») est coupee et se lit en entier au survol. */
/* Echeance : une vraie date (10 caracteres depuis qu'on affiche l'annee) doit tenir
   en entier. Le rognage ne sert qu'aux notes libres du type « A confirmer ». */
.dsh .pl td.c-ech{max-width:110px;overflow:hidden}
.dsh .pl td.c-ech>span{display:inline-block;max-width:88px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}
.dsh .pl td.c-poste .pos{display:inline;font-size:12.5px;color:var(--ink2);margin:0}

/* Recruteur et apporteur prenaient toute la place laissee libre. */
.dsh .pl td.c-rec,.dsh .pl td.c-app{max-width:160px;overflow:hidden;text-overflow:ellipsis}
.dsh .pl td.c-prime,.dsh .pl th:nth-child(1){white-space:nowrap}

/* --- Densite de « Placements & primes » (14/09) -----------------------------
   Mesure avant : 2 737 px de tableau pour 1 396 px visibles, 15 lignes sur 163
   a l'ecran, et ~580 px de ce debordement venaient d'en-tetes plus larges que
   leurs donnees. Les titres sont raccourcis cote JS (LBL_COURT, format.mts) ;
   ici on resserre le reste — police, puces, marges laterales — et on plafonne
   chaque colonne sur la donnee la plus longue observee, pas sur son titre.
   Les dates gardent leur annee : « 07/09 » seul, sur une facture de l'an dernier,
   se lit comme une facture de cette annee (Theo, 14/09). */
.dsh .pl{font-size:11.5px}
.dsh .pl th,.dsh .pl td{padding-left:6px;padding-right:6px}
.dsh .pl .recb,.dsh .pl .srcb{font-size:10.5px;padding:1px 7px;line-height:1.5}
.dsh .pl .srcb{max-width:108px}
.dsh .pl .sect{font-size:10.5px;padding:1px 6px;max-width:118px}
.dsh .pl td .st{padding-left:6px;padding-right:6px;font-size:10.5px}
.dsh .pl .rangp{margin-left:5px;padding:0 5px;font-size:9.5px}
.dsh .pl td.c-poste .pos{font-size:11.5px}
/* Le tableau descend jusqu'au bas de la fenetre : le panneau s'efface en bas pour
   le laisser passer, et la barre de defilement horizontale touche le bord.
   Essaye le 14/09 puis retire le meme jour : le faire aussi a GAUCHE et A DROITE
   (marges negatives mesurees) collait le tableau aux bords — « c'est trop moche »
   (Theo). Les marges laterales du cadre restent donc celles de toute l'app. */
.dsh .dshpanel:has(#dshPlScroll){border-bottom:0;
  border-bottom-left-radius:0;border-bottom-right-radius:0}
.dsh .dshpanel:has(#dshPlScroll)>.body{padding-bottom:0}
/* Plafonds cales sur la donnee, colonne par colonne. */
.dsh .pl td.c-cli{max-width:180px}
.dsh .pl td.c-cli .cli{max-width:172px}
/* « Message a Theo » (29/09/2026) : l'icone suit le nom du client, qui se raccourcit pour
   lui laisser la place (146 + 6 + 14 = 166 px dans les 168 utiles de la cellule). Le
   message se lit au survol, et en entier en tete du volet de la ligne. */
.dsh .pl td.c-cli .cli.avec-msg{max-width:146px}
.dsh .pl td.c-cli .msgfac{display:inline-flex;vertical-align:-2px;margin-left:6px;color:var(--blue,#2563EB);cursor:help}
.dsh .dshmsg{padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:var(--surface-alt);font-size:12.5px;line-height:1.45;color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere}
.dsh .dshmsg-q{margin-top:6px;font-size:11px;color:var(--ink3)}
.dsh .pl td.c-cand{max-width:152px}
.dsh .pl td.c-poste{max-width:190px}
.dsh .pl td.c-ent{max-width:166px}
.dsh .pl td.c-src{max-width:120px}
.dsh .pl td.c-rec{max-width:118px}
.dsh .pl td.c-app{max-width:88px}

/* Infobulle maison, posee sur le body pour echapper aux conteneurs qui rognent. */
.dsh-tip{position:fixed;z-index:200;background:#141925;color:#fff;font-size:11.5px;line-height:1.55;padding:8px 11px;border-radius:9px;max-width:340px;box-shadow:0 10px 26px rgba(20,25,37,.3);pointer-events:none}

/* « X jours non saisis » devient un bouton : il ouvre de quoi les renseigner. */
.dsh .st.trous{border:0;font:inherit;font-size:11.5px;font-weight:600;cursor:pointer}
.dsh .st.trous:hover{filter:brightness(.94)}

/* Reglage de l'ordre des lignes du planning. */
.dsh .pgrid td.nm .grip{display:inline-block;width:auto;margin-right:7px;color:var(--ink3);font-size:13px;letter-spacing:-1px;vertical-align:1px}
.dsh .pgrid.edit td.nm{cursor:grab;user-select:none;background:var(--surface-alt)}
.dsh .pgrid.edit td.nm:active{cursor:grabbing}
.dsh .pgrid.edit tr.drag{opacity:.4}
.dsh .pgrid.edit tr.over td{box-shadow:inset 0 -3px 0 var(--blue,#2563EB)}
.dsh .pgrid.edit tr.avant td{box-shadow:inset 0 3px 0 var(--blue,#2563EB)}
.dsh .pgrid.edit .hf{pointer-events:none;opacity:.5}

/* La fenetre qui comble les demi-journees manquantes : on y retrouve la
   grille du planning, ses demi-journees et son selecteur de statut. */
.dshtous{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:14px;font-size:12px;color:var(--ink3)}
.dshtous button{border:1px solid rgba(20,25,37,.10);border-radius:99px;padding:3px 11px;font-size:11.5px;font-weight:650;color:var(--ink);cursor:pointer}
.dshtous button:hover{border-color:var(--ink3)}
.dshcal{margin-top:13px}
.dshcal .pgrid.mini{width:100%;border-collapse:collapse;table-layout:fixed;font-size:12px;min-width:0}
.dshcal .pgrid.mini th{padding:4px 5px;font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink3);font-weight:600;text-align:center;border-bottom:1px solid var(--line)}
.dshcal .pgrid.mini th.wk{width:42px}
.dshcal .pgrid.mini td{padding:4px 3px;border-bottom:1px solid var(--line2);vertical-align:top}
.dshcal .pgrid.mini tr:last-child td{border-bottom:none}
.dshcal .pgrid.mini td.wk{text-align:left;font-size:10.5px;color:var(--ink3);font-weight:600;padding-top:9px}
.dshcal .pgrid.mini td.hors{background:repeating-linear-gradient(45deg,transparent 0 6px,var(--surface-alt) 6px 12px);border-radius:6px}
.dshcal .dj{font-size:10.5px;color:var(--ink3);text-align:center;margin-bottom:2px;font-variant-numeric:tabular-nums}
.dshcal .day2{display:flex;gap:2px}
.dshcal .hf{flex:1;min-width:0;height:30px;border-radius:6px;display:grid;place-items:center;font-size:10px;font-weight:700;overflow:hidden;border:1px solid var(--line2);background:var(--surface-alt);color:var(--ink3)}
.dshcal .hf[data-s="Bureau"]{background:#BFFFF2;color:var(--ink2,#4A5163);border-color:transparent}
.dshcal .hf[data-s="TT"]{background:var(--blue-soft,#E6F1FA);color:var(--blue,#2563EB);border-color:transparent}
.dshcal .hf[data-s="RDV"]{background:var(--violet-soft,#F0E9FB);color:var(--violet,#7A4DD6);border-color:transparent}
.dshcal .hf[data-s="Ecole"]{background:#FDF3C7;color:#8A6212;border-color:transparent}
.dshcal .hf[data-s="Congé"]{background:#FCE7F3;color:#9D174D;border-color:transparent}
.dshcal .hf[data-s="Arrêt"]{background:var(--red-soft,#FDECEC);color:var(--red,#C12B33);border-color:transparent}
.dshcal .hf[data-s="Ferié"]{background:repeating-linear-gradient(45deg,#EEF0F5 0 5px,#E3E6EE 5px 10px);color:var(--ink3);border-color:transparent}
.dshcal .hf.fige{opacity:.45;cursor:default}
.dshcal .hf.aremplir{cursor:pointer;border:1px dashed var(--orange,#B26B00);background:var(--orange-soft,#FCF0DC)}
.dshcal .hf.aremplir:hover{border-style:solid}
.dshcal .hf.aremplir[data-s]:not([data-s=""]){border-style:solid;border-color:transparent}

/* La modale de app.js plafonne a 470 px : celle-ci porte sept boutons par ligne. */
/* saycoConfirm pose max-width en style en ligne : il faut passer devant. */
#saycoConfirmOv:has(.dshcal) > div{max-width:760px !important}

/* Les champs de la fenetre « Écrire une news ». */
.dshnews-f{display:flex;align-items:center;gap:10px;margin-top:14px}
.dshnews-f label{font-size:12px;color:var(--ink3)}
.dshnews-f input{padding:8px 11px;border:1px solid var(--line);border-radius:9px;font:inherit;font-size:13px;background:var(--surface);color:var(--ink)}
.dshnews-t{width:100%;margin-top:10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;font:inherit;font-size:13.5px;resize:vertical;background:var(--surface);color:var(--ink)}

/* Impayes : un chiffre sur la ligne du titre, plus un bandeau qui mange l'ecran.
   Le « i » porte le detail au survol, sur fond blanc comme le reste des panneaux. */
.dsh .acts2 .dshinfo{align-self:center;flex:0 0 auto;margin-left:-2px}
.dsh .dshinfo{display:inline-grid;place-items:center;width:15px;height:15px;border-radius:999px;
  border:1px solid var(--line);background:var(--surface);color:var(--ink3);
  font-size:10px;font-weight:700;font-style:italic;cursor:help;position:relative;flex:0 0 auto;
  vertical-align:middle;margin-left:7px}
.dsh .dshinfo:hover,.dsh .dshinfo:focus-visible{border-color:var(--ink3);color:var(--ink);outline:none}
/* Le contenu est rendu par cablerTip(), pose sur le body : place au-dessus de tout,
   jamais rogne par le conteneur de la table. */
.dsh-tip.blanc{background:var(--surface);color:var(--ink2);border:1px solid var(--line);
  box-shadow:0 12px 34px rgba(20,25,37,.18);font-size:12px;white-space:pre-line;padding:9px 12px}

/* En-tetes figes sur la table des placements.
   Le conteneur porte deja overflow-x:auto, ce qui force overflow-y a auto : un th
   « sticky » s'y accrochait donc au haut du conteneur, pas a l'ecran, et disparaissait
   avec lui. On lui donne une hauteur bornee : il devient le defileur vertical, la
   ligne d'en-tete reste, et les 161 lignes defilent dessous. */
/* Une seule barre horizontale : la table en dessine deja une (#dshPlBar). On ne
   laisse au navigateur que la verticale — d'ou height:0, et surtout AUCUN
   scrollbar-width ici : Chrome le fait primer sur ::-webkit-scrollbar et la barre
   horizontale native revenait doubler celle du dessous. */
/* contain:paint — le navigateur sait que rien ne deborde de ce cadre et n'a
   plus a verifier le reste de la page a chaque image de defilement. */
.dsh #dshPlScroll{contain:paint;max-height:calc(100vh - 260px);min-height:280px;overflow-x:auto;overflow-y:auto}
/* Hauteur de ligne resserree sur cette table seulement : le tableau des placements
   se lit d'un coup d'oeil, il gagne a montrer des lignes plutot que du blanc.
   Les autres tables du tableau de bord gardent leur respiration. */
.dsh .pl th{padding-top:2px;padding-bottom:2px}
.dsh .pl td{padding-top:2px;padding-bottom:2px}
/* La brique de filtre pose 11px 14px dans .th-inner : 34 px de haut et 28 px de
   large pour un titre de 12 px. Sur cette table — 19 colonnes, 163 lignes — ca
   coutait 15 px de hauteur d'en-tete et jusqu'a 28 px par colonne (« Prime app. »
   ne devait sa largeur qu'a ca). Les autres tables de Kama gardent leur aise. */
.dsh .pl thead th .th-inner{padding:3px 0}
.dsh .pl td.cel{padding-top:2px;padding-bottom:2px}
.dsh .pl td .st{padding-top:1px;padding-bottom:1px}
/* Rang du poste sur un mandat qui en porte plusieurs : « 2/5 ». Deux lignes du
   meme mandat ne se distinguent sinon que par le nom du candidat. */
.dsh .rangp{display:inline-block;margin-left:7px;padding:1px 6px;border-radius:999px;
  background:var(--surface-alt);color:var(--ink3);font-size:10px;font-weight:800;
  font-family:'Space Grotesk',sans-serif;letter-spacing:.02em;vertical-align:1px}
.dsh #dshPlScroll::-webkit-scrollbar{width:9px;height:0}
.dsh #dshPlScroll::-webkit-scrollbar-thumb{background:var(--line);border-radius:999px;border:2px solid var(--surface)}
.dsh #dshPlScroll::-webkit-scrollbar-track{background:transparent}
.dsh #dshPlScroll .pl thead th{position:sticky;top:0;z-index:3;background:var(--surface);
  box-shadow:inset 0 -1px 0 var(--line)}
.dsh #dshPlScroll .pl.edit thead th{background:var(--surface-alt)}
/* Statut pose a la main ou solde en attente : ni vert, ni bleu, ni rouge — la ligne
   est hors du circuit de facturation, elle doit se lire comme telle. */
.dsh .st.gris{background:var(--line2);color:var(--ink3)}
.dsh .st.pe{background:#EFE8FB;color:#6C41C9}
.dsh .pl td .st[data-st]{cursor:pointer}
.dsh .pl td .st[data-st]:hover{filter:brightness(.94)}

.dsh .st.perdu{background:#F3E4E4;color:#7A2E2E}

/* Deux colonnes ancrees a gauche : la case a cocher et la date de facturation.
   Meme apres avoir defile jusqu'au statut de la prime, on sait de quelle facture
   il s'agit sans revenir en arriere. */
.dsh .pl th.selc,.dsh .pl td.selc{position:sticky;left:0;z-index:2;background:var(--surface)}
.dsh .pl th.fig1,.dsh .pl td.fig1{position:sticky;left:0;z-index:2;background:var(--surface);
  border-right:1px solid var(--line2)}
.dsh #dshPlScroll .pl thead th.selc,.dsh #dshPlScroll .pl thead th.fig1{z-index:6}
.dsh .pl tbody tr:hover td.selc,.dsh .pl tbody tr:hover td.fig1{background:var(--surface-alt)}
.dsh .pl tbody tr.coche td.selc,.dsh .pl tbody tr.coche td.fig1{background:var(--accent-soft,#E3FFF8)}

/* Surbrillance de ligne suspendue le temps du defilement — la classe « defile »
   est posee et retiree par table.mts.
   Pendant qu'on fait defiler, le pointeur ne bouge pas mais les lignes passent
   dessous : la ligne survolee change plusieurs fois par cran de molette, et le
   navigateur recalcule le style de celle qu'on quitte et de celle qu'on prend,
   19 cellules chacune. Mesure du 14/09 sur une copie de la table (163 lignes,
   19 colonnes, roulette pilotee, survol au milieu du tableau) : 2 600 ms de fil
   principal pour 40 crans en vertical, 640 ms en suspendant la surbrillance —
   quatre fois moins. Ecartes : la retirer tout court (le plus rapide, 390 ms,
   mais elle sert a suivre une ligne de 19 colonnes), la porter sur la cellule
   plutot que sur la ligne (1 080 ms, et on perd la ligne entiere), et
   pointer-events:none (annulerait un clic juste apres un defilement).
   On ne touche donc qu'aux couleurs, jamais aux evenements. */
.dsh .pl.defile tbody tr:hover{background:transparent}
.dsh .pl.defile tbody tr:hover td.selc,.dsh .pl.defile tbody tr:hover td.fig1{background:var(--surface)}
/* Une ligne cochee garde son vert : son fond ne vient pas du survol. */
.dsh .pl.defile tbody tr.coche:hover{background:var(--accent-soft,#E3FFF8)}
.dsh .pl.defile tbody tr.coche:hover td.selc,.dsh .pl.defile tbody tr.coche:hover td.fig1{background:var(--accent-soft,#E3FFF8)}
/* Sans les cases a cocher (vue recruteur), la premiere colonne se cale a gauche. */
.dsh .pl:not(:has(td.selc)) th.fig1,.dsh .pl:not(:has(td.selc)) td.fig1{left:0}
/* Outils d'administration du referentiel, dans le menu de la colonne Source. */
.dsh-menu button .srcout{margin-left:auto;display:inline-flex;gap:2px;opacity:0;transition:opacity .12s}
.dsh-menu button:hover .srcout{opacity:1}
.dsh-menu .srcbtn{width:21px;height:21px;border-radius:6px;color:var(--ink3);
  display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.dsh-menu .srcbtn:hover{background:var(--line2);color:var(--ink)}
/* Onglet annonce mais pas encore ouvert : visible, grise, sans curseur de clic. */
.dsh-tabs button.verr{color:var(--ink3);cursor:default;opacity:.72}
.dsh-tabs button.verr:hover{color:var(--ink3)}
.dsh-tabs .adm{display:inline-flex;align-items:center}
/* Reglage de l'ordre des colonnes du tableau de score, meme geste que sur « Placements ». */
.dsh .sco.edit thead th[data-gen]{cursor:grab;user-select:none;background:var(--surface-alt)}
.dsh .sco.edit thead th[data-gen]:active{cursor:grabbing}
.dsh .sco.edit thead th.drag{opacity:.4}
.dsh .sco.edit thead th.over{box-shadow:inset -3px 0 0 var(--blue,#2563EB)}
.dsh .sco.edit thead th.avant{box-shadow:inset 3px 0 0 var(--blue,#2563EB)}
.dsh .sco.edit tbody td,.dsh .sco.edit tfoot td{opacity:.5}
/* Saisie des objectifs dans le tableau de score (bouton « Objectifs », 28/09/2026).
   La case prend la place de l'objectif bleu ; les lignes gardent leur hauteur.
   « input.objin » et non « .objin » : la regle generale des champs d'app.css
   (input:not(...), specificite 0,3,1) l'emportait et passait la case en 13 px. */
.dsh .sco.eobj td.cel{padding-top:2px;padding-bottom:2px}
.dsh .sco.eobj .rea{color:var(--ink3)}
.dsh .sco input.objin{width:50px;height:18px;margin:0 0 0 6px;padding:0 5px;border:1px solid var(--line);border-radius:5px;
  background:var(--surface);color:var(--blue,#2563EB);font-family:inherit;font-size:11px;font-weight:600;line-height:16px;
  font-variant-numeric:tabular-nums;text-align:right;vertical-align:middle}
.dsh .sco input.objin::placeholder{color:var(--ink3);font-weight:500}
.dsh .sco input.objin:hover{border-color:var(--ink3)}
.dsh .sco input.objin:focus{outline:none;border-color:var(--blue,#2563EB);box-shadow:0 0 0 2px color-mix(in srgb,var(--blue,#2563EB) 18%,transparent)}
.dsh .sco tfoot input.objin.an{width:70px;font-weight:700}
/* Un parti montre le temps d'un coup d'oeil (puce « N départs ») : sa bulle s'efface. */
.dsh .sco th.parti .recb{opacity:.5}
/* La puce « N départs » : elle n'existe que s'il y a des partis sur l'annee en cours. */
.dsh .dsh-departs{display:inline-flex;align-items:center;padding:2px 9px;border-radius:99px;border:1px solid var(--line);
  background:var(--surface-alt);color:var(--ink3);font-size:11px;font-weight:650;line-height:1.5;cursor:pointer;white-space:nowrap}
.dsh .dsh-departs:hover{color:var(--ink2);border-color:var(--ink3)}
.dsh .dsh-departs.on{border-color:var(--blue,#2563EB);color:var(--blue,#2563EB);background:color-mix(in srgb,var(--blue,#2563EB) 7%,var(--surface))}

/* Densité (01/09) : le tableau des placements descend jusqu'en bas de l'écran
   (hauteur posée par cablerPrimes), le défilement vit DANS .scrollx et les
   en-têtes de colonnes restent collés en haut pendant qu'on descend. */
.dsh .scrollx .dsh-tb thead th{position:sticky;top:0;background:var(--surface);z-index:3;box-shadow:0 1px 0 var(--line);border-bottom:none}
/* Annulee : la ligne se lit encore, mais elle ne compte plus. Le barre le dit
   mieux qu'une couleur — on voit du premier coup d'oeil qu'il ne reste qu'une trace. */
/* ================================================================ AVIS GOOGLE
   Onglet « Avis Google » (reviews.mts). Liste serrée, une ligne par avis, toutes
   de la même hauteur ; le détail s'ouvre sous la ligne. */
.dsh .avg-list{max-height:640px;overflow:auto}
.dsh .avg-row{display:grid;grid-template-columns:34px 124px 62px 104px minmax(0,1fr) 92px;align-items:center;gap:8px;height:34px;padding:0 10px;border-bottom:1px solid var(--line2);cursor:pointer;font-size:12.5px}
.dsh .avg-row:hover,.dsh .avg-row.on{background:var(--surface-alt)}
.dsh .avg-note{display:flex;align-items:center;gap:3px;font-family:'Space Grotesk',sans-serif;font-weight:700;color:var(--ink3)}
.dsh .avg-note.bas{color:var(--red,#C12B33)}
.dsh .avg-note.moy{color:var(--orange,#B26B00)}
.dsh .avg-aut{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dsh .avg-date{color:var(--ink3);white-space:nowrap}
.dsh .avg-recs{display:flex;align-items:center;gap:4px;overflow:hidden;white-space:nowrap}
.dsh .avg-recs .recb{font-size:10.5px;padding:1px 7px}
.dsh .avg-recs .plus{font-size:10.5px;font-weight:700;color:var(--ink3)}
.dsh .avg-txt{color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dsh .avg-st{justify-self:end;font-size:11.5px;font-weight:600;white-space:nowrap;color:var(--ink3)}
.dsh .avg-st.af{color:var(--orange,#B26B00)}
.dsh .avg-st.br{color:var(--blue,#2563EB)}
.dsh .avg-det{padding:10px 14px 14px 52px;border-bottom:1px solid var(--line2);background:var(--surface-alt)}
.dsh .avg-det .full{font-size:13px;line-height:1.55;white-space:pre-wrap}
.dsh .avg-det .rep{margin-top:10px;padding:6px 0 6px 12px;border-left:3px solid var(--line);font-size:12.5px;line-height:1.5;color:var(--ink2);white-space:pre-wrap}
.dsh .avg-det .rep .qui{font-size:11px;font-weight:600;color:var(--ink3);margin-bottom:3px}
/* Réponse tout juste publiée : le bord en vert SAYCO, le texte en encre. Aucun vert sombre,
   ni --green ni --accent-ink (Théo, 26/09/2026) : le seul vert est le vert SAYCO, en aplat. */
.dsh .avg-det .rep.ok{border-left-color:var(--accent,#00FFC9)}
.dsh .avg-det .rep.ok .qui{display:flex;align-items:center}
.dsh .avg-refus{display:flex;align-items:center;gap:6px;margin-top:6px;font-size:11.5px;font-weight:600;color:var(--red,#C12B33)}
.dsh .avg-ta[readonly]{opacity:.7}
.dsh .avg-qui{margin-top:8px;font-size:11.5px;color:var(--ink3)}
.dsh .avg-meta{display:flex;align-items:center;gap:6px;margin-top:8px;font-size:12px}
.dsh .avg-meta .k{width:74px;flex:none;font-size:11px;font-weight:600;color:var(--ink3)}
.dsh .avg-meta .recb{font-size:11px;padding:1px 8px}
.dsh .avg-meta .vide{color:var(--ink3);font-size:11.5px}
.dsh .avg-lien{border:0;background:transparent;padding:0;margin-left:4px;color:var(--blue,#2563EB);font-size:12px;font-weight:600;cursor:pointer;text-decoration:none}
.dsh .avg-tag{margin-left:6px;font-size:10.5px;font-weight:600;color:var(--ink3)}
.dsh .avg-ta{display:block;width:100%;min-height:92px;margin-top:10px;background:var(--surface)!important;line-height:1.5;resize:vertical}
.dsh .avg-actions{display:flex;align-items:center;gap:8px;margin-top:8px}
.dsh .avg-actions .src{margin-right:auto;font-size:11px;color:var(--ink3)}
.dsh .avg-actions button[disabled]{opacity:.5;cursor:progress}
@media(max-width:1100px){.dsh .avg-row{grid-template-columns:30px minmax(0,1fr) 56px 92px}.dsh .avg-recs,.dsh .avg-txt{display:none}.dsh .avg-det{padding-left:14px}}
/* Le menu et le choix des recruteurs vivent sur le <body>, hors de .dsh : la bulle
   du prénom y a besoin de ses propres règles (sinon rectangle carré, vu le 25/09). */
.dsh-menu .recb{display:inline-block;padding:2px 9px;border-radius:99px;font-size:12px;font-weight:650;line-height:1.55;white-space:nowrap;letter-spacing:0}
.dsh-menu.avg-pk{width:212px;max-height:calc(100vh - 16px);overflow:auto;padding:5px}
.avg-pk .avg-pk-t{padding:4px 9px;font-size:11px;font-weight:600;color:var(--ink3)}
.avg-pk .avg-pk-o{height:30px;gap:8px;padding:0 9px}
.avg-pk .avg-pk-o .h{font-size:11px;font-weight:500;color:var(--ink3)}
.avg-pk .avg-pk-o .ck{margin-left:auto;display:flex;color:var(--blue,#2563EB)}
.avg-pk .avg-pk-ih{display:flex;align-items:center;gap:5px;padding:7px 9px 4px;margin-top:4px;border-top:1px solid var(--line2);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink3);cursor:pointer;user-select:none}
.avg-pk .avg-pk-pied{margin-top:4px;padding-top:4px;border-top:1px solid var(--line2)}
.avg-pk .avg-pk-auto{height:30px;font-size:12.5px;color:var(--ink2)}
/* ============================================================ DEMANDES D'AVIS
   Onglet « Avis Google », carte « À demander » de l'accueil (review-requests.mts) :
   l'éditeur de message s'ouvre sous la ligne. */
.dsh .dem-det .full{font-size:13px}
.dsh .dem-a{align-items:center}
.dsh .dem-canaux{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}
.dsh .dem-qui{font-weight:650;font-size:12.5px;margin-right:2px}
.dsh .dem-can{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 10px;border-radius:999px;border:1px solid var(--line);background:var(--surface);font:inherit;font-size:11.5px;font-weight:600;color:var(--ink2);cursor:pointer;white-space:nowrap}
.dsh .dem-can:hover{border-color:var(--ink3)}
.dsh .dem-can.on{border-color:var(--blue,#2563EB);color:var(--blue,#2563EB);background:color-mix(in srgb,var(--blue,#2563EB) 7%,var(--surface))}
.dsh .dem-can.vide{border-style:dashed;color:var(--ink3)}
.dsh .dem-can.off{cursor:default;opacity:.55}
.dsh .dem-can.off:hover{border-color:var(--line)}
.dsh .dem-can .sub{font-weight:500;color:var(--ink3)}
.dsh .dem-can.on .sub{color:color-mix(in srgb,var(--blue,#2563EB) 70%,var(--ink3))}
.dsh .dem-seg{display:inline-flex;margin-left:auto;border:1px solid var(--line);border-radius:8px;overflow:hidden;flex:none}
.dsh .dem-seg button{border:0;background:var(--surface);padding:0 10px;height:24px;font:inherit;font-size:11.5px;font-weight:600;color:var(--ink3);cursor:pointer}
.dsh .dem-seg button+button{border-left:1px solid var(--line)}
.dsh .dem-seg button.on{background:var(--ink,#1F2533);color:#fff}
.dsh .dem-objet{flex:1;min-width:0;height:28px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font:inherit;font-size:12.5px}
.dsh .dem-ta{min-height:0;height:auto}
.dsh .dem-ajout input{height:28px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font:inherit;font-size:12.5px;flex:0 1 190px;min-width:0}
.dsh .dem-ajout .gh{height:28px;white-space:nowrap;flex:none}
.dsh .dem-x{border:0;background:none;color:var(--ink3);font-size:16px;line-height:1;cursor:pointer;padding:0 4px}
.dsh .dem-orph{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-height:36px;padding:5px 10px;border-bottom:1px solid var(--line2);background:var(--accent-soft,#E3FFF8);font-size:12px;color:var(--ink2)}
.dsh .dem-orph svg{color:var(--ink2)}
.dsh .dem-orph .dem-can{height:22px}
.dsh .dem-orph .dem-can:first-of-type{margin-left:4px}
.dsh .dem-orph .dem-x{margin-left:auto}
.dsh .dem-garder{margin-right:auto;display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;color:var(--ink2);cursor:pointer}
.dsh .dem-garder input{margin:0;accent-color:var(--blue,#2563EB)}
.dsh .dem-garde,.dsh .dem-lien{display:flex;align-items:center;gap:6px;margin-top:6px;font-size:11.5px;font-weight:600;color:var(--orange,#B26B00)}
.dsh .dem-lien{color:var(--ink3);font-weight:500}
.dsh .dem-info{display:flex;align-items:center;gap:6px;margin-top:6px;font-size:11.5px;font-weight:600;color:var(--blue,#2563EB)}
/* Les contacts de l'entreprise, sur le <body> comme le choix des recruteurs. */
.dsh-menu.dem-pk{width:250px;max-height:calc(100vh - 16px);overflow:auto;padding:5px}
.dem-pk .dem-pk-t{padding:4px 9px;font-size:11px;font-weight:600;color:var(--ink3)}
.dem-pk button{display:flex;flex-direction:column;align-items:flex-start;gap:1px;height:auto;padding:6px 9px}
.dem-pk button .h{font-size:11px;font-weight:500;color:var(--ink3)}
.dem-pk button.nv{flex-direction:row;align-items:center;gap:6px;margin-top:4px;border-top:1px solid var(--line2);color:var(--ink2)}

/* ---- Avis Google : l'aide du « i » (27/09/2026) ---- */
/* Le « i » de « Les avis » : celui des autres aides de Kama, sans le vert sombre au survol. */
.dsh .avg-i{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin-left:5px;border:0;border-radius:50%;background:none;color:var(--ink3,#8A91A3);cursor:help;padding:0;vertical-align:-3px}
.dsh .avg-i:hover,.dsh .avg-i.on{color:var(--ink,#141925);background:var(--accent-soft,#E3FFF8)}
.dsh .avg-i:focus-visible{outline:2px solid var(--blue,#2563EB);outline-offset:1px}
/* Le panneau : les mesures de #klDoc (app.js), le vert SAYCO en aplat, le texte en encre. Il vit sur le
   <body> : dans <main>, dont contain:layout fait le repère de position:fixed, il se centrait sur la zone
   de contenu et laissait la barre de gauche cliquable (constaté en prod le 27/09/2026). */
.avg-doc-hote{position:fixed;inset:0;z-index:209}
.avg-doc-back{position:absolute;inset:0;background:rgba(10,20,30,.35)}
.avg-doc{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(720px,94vw);max-height:86vh;overflow:auto;
  background:#fff;color:#1B2430;border:1px solid #E1E6EC;border-radius:14px;padding:16px 20px 18px;font-size:12.5px;line-height:1.6;
  box-shadow:0 18px 50px rgba(0,0,0,.28);text-align:left;font-weight:400}
.avg-doc .adh{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.avg-doc h4{margin:0;flex:1;font-size:12.5px;font-weight:800}
.avg-doc .adx{background:none;border:0;cursor:pointer;color:#5B6472;display:inline-flex;padding:2px;border-radius:6px}
.avg-doc .adx:hover{color:var(--ink,#141925);background:var(--surface-alt)}
.avg-doc .lv{display:inline-block;font-size:9.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;padding:1px 7px;border-radius:8px;margin-bottom:5px}
.avg-doc .nt{border-left:3px solid var(--accent,#00FFC9);padding:6px 10px;margin:0 0 10px;background:#F1FFFA;color:var(--ink,#141925)}
.avg-doc .nt .lv{background:var(--accent,#00FFC9);color:var(--ink,#141925)}
.avg-doc .tk{border-left:3px solid #4F6BED;padding:6px 10px;margin:0;background:#F3F5FF;color:#1E2A5C}
.avg-doc .tk .lv{background:#4F6BED;color:#fff}
.avg-doc code{font-size:11px;background:#E8ECFF;padding:0 4px;border-radius:4px;overflow-wrap:anywhere}
.avg-doc ul{margin:2px 0 4px;padding-left:16px}
.avg-doc li{margin:2px 0}
.avg-doc .adleg{margin:6px 0 2px}
.avg-doc .adl{display:flex;align-items:center;gap:12px;padding:5px 0;border-bottom:1px solid #EEF0F5}
.avg-doc .adl:last-child{border-bottom:0}
.avg-doc .adl>span:first-child{flex:0 0 132px;display:inline-flex}
.avg-doc .adl .add{flex:1;min-width:0;color:#5B6472}
.avg-doc .adl .add b{color:#1B2430}
.avg-doc .adong{display:inline-flex;align-items:center;font-size:12.5px;font-weight:650;color:var(--ink,#141925)}
.avg-doc .adcnt{display:inline-block;margin-left:6px;font-size:10.5px;font-weight:700;background:var(--nav-alerte,#F59E0B);color:#3A2400;padding:1px 6px;border-radius:99px}
.avg-doc .adp{margin-top:4px}
.avg-doc svg text{font-family:inherit}
@media(max-width:600px){.avg-doc{padding:14px 14px 16px}.avg-doc .adl{flex-wrap:wrap;gap:4px 12px}.avg-doc .adl>span:first-child{flex-basis:auto}}

/* ---- Avis Google : l'accueil de l'onglet (maquette A, validée par Théo le 27/09/2026) ----
   Ce qu'on est fier de montrer (la note de la fiche, tes avis, les trimestres, le palmarès), puis les
   deux choses à faire côte à côte, puis « Les avis » (les derniers, ou tous, dépliés sur place). Le vert
   SAYCO en aplat (barres, ce qui est à faire), l'or des étoiles, l'orange pour ce qui attend ta réponse :
   jamais de vert sombre. Les compteurs : orange sur l'onglet et la barre de gauche (les réponses), gris
   sur l'onglet seulement (les demandes). */
.dsh-tabs .cnt.gris{background:var(--line,#E7E9F0);color:var(--ink2,#4A5163)}
.avg-doc .adcnt.gris{background:var(--line,#E7E9F0);color:var(--ink2,#4A5163)}
/* Les textes */
.dsh .avg-acc .acc-lab{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3,#8A91A3);margin-bottom:6px}
.dsh .avg-acc .acc-sub{font-size:12px;color:var(--ink3,#8A91A3);margin-top:6px;display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.dsh .avg-acc .acc-big{font-family:'Space Grotesk',sans-serif;font-size:48px;font-weight:700;line-height:1;color:var(--ink,#141925);display:flex;align-items:center;gap:10px}
.dsh .avg-acc .acc-mid{font-family:'Space Grotesk',sans-serif;font-size:30px;font-weight:700;line-height:1.05;color:var(--ink,#141925)}
.dsh .avg-acc .acc-mid span{font-family:'Inter',system-ui,sans-serif;font-size:13px;font-weight:500;color:var(--ink2,#4A5163)}
.dsh .acc-et{display:inline-flex;gap:1px;vertical-align:-1px;flex:none}
.dsh .acc-et svg{color:var(--line,#E7E9F0)}
.dsh .acc-et svg.on{color:#E8A317}
.dsh .acc-et.gros svg{width:18px;height:18px}
/* Le bandeau */
.dsh .acc-hero{display:grid;grid-template-columns:1.25fr 1fr 1.15fr;position:relative;margin-bottom:16px}
.dsh .acc-hero.p4{grid-template-columns:1.25fr 1fr 1.15fr .9fr}
.dsh .acc-hb{padding:18px 20px;border-left:1px solid var(--line2,#EEF0F5);min-width:0}
.dsh .acc-hb:first-child{border-left:0}
.dsh .acc-hero .avg-i{position:absolute;top:10px;right:10px;margin:0}
.dsh .acc-souci{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:8px;font-size:12px;font-weight:600;color:var(--orange,#B26B00)}
.dsh .acc-souci .avg-lien{margin-left:0}
.dsh .acc-podium{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
.dsh .acc-podium .recb{font-size:13px;padding:3px 12px}
.dsh .acc-bars{display:flex;align-items:flex-end;gap:2px;margin-top:2px}
.dsh .acc-bar{flex:1;max-width:24px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%}
.dsh .acc-bar i{display:block;width:100%;background:var(--accent,#00FFC9);border-radius:4px 4px 0 0}
.dsh .acc-bar.cour i{background:repeating-linear-gradient(135deg,var(--accent,#00FFC9) 0 4px,#9DFFE8 4px 7px)}
.dsh .acc-bar b{font-family:'Space Grotesk',sans-serif;font-size:11px;font-weight:700;color:var(--ink,#141925);margin-bottom:2px}
/* Les deux cartes */
.dsh .acc-deux{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;margin-bottom:16px;align-items:start}
.dsh .acc-ch{display:flex;align-items:center;gap:6px;padding:14px 16px 10px;border-bottom:1px solid var(--line2,#EEF0F5)}
.dsh .acc-ct{display:inline-flex;align-items:center;gap:7px;font-size:14.5px;font-weight:700;color:var(--ink,#141925)}
.dsh .acc-cs{font-size:12px;color:var(--ink3,#8A91A3);margin-left:6px}
.dsh .acc-num{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:99px;font-size:11.5px;font-weight:700;margin-left:6px}
.dsh .acc-num.or{background:var(--nav-alerte,#F59E0B);color:#3A2400}
.dsh .acc-num.gr{background:var(--line,#E7E9F0);color:var(--ink2,#4A5163)}
.dsh .acc-vide{padding:18px 16px;font-size:12.5px;color:var(--ink3)}
.dsh .acc-fait{display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center;padding:26px 16px}
.dsh .acc-fait svg{color:var(--ink3);margin-bottom:4px}
.dsh .acc-fait b{font-size:13px;color:var(--ink2)}
.dsh .acc-rv{display:flex;gap:12px;padding:14px 16px;border-top:1px solid var(--line2,#EEF0F5);cursor:pointer}
.dsh .acc-rv:first-child{border-top:0}
.dsh .acc-rv.on{background:var(--surface-alt);cursor:default}
.dsh .acc-rv.on .acc-rn{cursor:pointer}
.dsh .acc-ava{flex:0 0 34px;width:34px;height:34px;border-radius:99px;display:grid;place-items:center;font-size:12px;font-weight:700}
.dsh .acc-rb{flex:1;min-width:0}
.dsh .acc-rn{display:flex;align-items:center;gap:7px;font-size:13.5px;font-weight:700;color:var(--ink,#141925);min-width:0}
.dsh .acc-an{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.dsh .acc-q{font-size:12px;font-weight:450;color:var(--ink3,#8A91A3);white-space:nowrap}
.dsh .acc-rt{font-size:13px;line-height:1.5;color:var(--ink2,#4A5163);margin:6px 0 10px;padding-left:10px;border-left:2px solid var(--line,#E7E9F0);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.dsh .acc-ra{display:flex;align-items:center;justify-content:space-between;gap:8px}
.dsh .acc-pret{display:inline-flex;align-items:center;font-size:11.5px;font-weight:650;color:var(--ink2,#4A5163);background:var(--accent-soft,#E3FFF8);padding:2px 9px;border-radius:99px;white-space:nowrap}
.dsh .acc-aec{font-size:11.5px;font-weight:600;color:var(--ink3)}
.dsh .acc-btn{white-space:nowrap}
.dsh .acc-rv .avg-det{padding:4px 0 0;border-bottom:0;background:none}
.dsh .acc-dg{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3,#8A91A3);padding:12px 16px 4px}
.dsh .acc-dl{display:flex;align-items:center;gap:10px;padding:7px 16px;cursor:pointer}
.dsh .acc-dl:hover,.dsh .acc-dl.on{background:var(--surface-alt)}
.dsh .acc-dic{flex:0 0 30px;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--surface-alt,#F5F7FA);color:var(--ink3,#8A91A3);border:1px solid var(--line2,#EEF0F5)}
.dsh .acc-dn{flex:1;min-width:0;font-size:13px;font-weight:650;color:var(--ink,#141925);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dsh .acc-dn small{display:block;font-size:11.5px;font-weight:450;color:var(--ink3,#8A91A3);overflow:hidden;text-overflow:ellipsis}
.dsh .acc-due{font-size:11.5px;font-weight:600;color:var(--ink3,#8A91A3);white-space:nowrap}
.dsh .acc-plie{display:flex;align-items:center;gap:6px;cursor:pointer;text-transform:none;letter-spacing:0;font-size:12.5px;font-weight:650;color:var(--ink2,#4A5163);padding-bottom:12px;user-select:none;min-width:0}
.dsh .acc-plie small{font-weight:450;color:var(--ink3,#8A91A3);margin-left:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.dsh .acc-dem .avg-det{padding:10px 16px 14px 56px}
.dsh .acc-dem .dem-orph{padding:6px 16px}
/* Tout se lit dans les panneaux (Théo, 27/09/2026) : « À faire · Toutes · L'équipe » dans « À demander »,
   « Les derniers · Tous · Sans réponse · Mes avis » dans « Les avis ». Les segments de l'éditeur (Tu · Vous). */
.dsh .acc-seg{display:inline-flex;margin-left:auto;border:1px solid var(--line);border-radius:8px;overflow:hidden;flex:none}
.avg-doc .acc-seg{display:inline-flex;border:1px solid #E1E6EC;border-radius:8px;overflow:hidden;flex:none}
.avg-doc .acc-seg span{display:inline-flex;align-items:center;height:22px;padding:0 9px;font-size:11px;font-weight:600;color:#5B6472;background:#fff;white-space:nowrap}
.avg-doc .acc-seg span+span{border-left:1px solid #E1E6EC}
.avg-doc .acc-seg span.on{background:var(--ink,#1F2533);color:#fff}
.avg-doc .adl.large{flex-direction:column;align-items:flex-start;gap:4px}
.avg-doc .adl.large>span:first-child{flex-basis:auto}
.avg-doc .adpil{display:inline-block;margin-right:4px;font-size:11px;font-weight:600;padding:1px 8px;border-radius:99px;background:var(--accent,#00FFC9);color:var(--ink,#141925);white-space:nowrap}
.avg-doc .adpil.recu{background:#BFFFF2;color:var(--ink2,#4A5163)}
.dsh .acc-seg button{border:0;background:var(--surface);padding:0 10px;height:26px;font:inherit;font-size:12px;font-weight:600;color:var(--ink3);cursor:pointer;white-space:nowrap}
.dsh .acc-seg button+button{border-left:1px solid var(--line)}
.dsh .acc-seg button:hover{color:var(--ink)}
.dsh .acc-seg button.on{background:var(--ink,#1F2533);color:#fff;cursor:default}
.dsh .acc-ch .acc-cs{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dsh .acc-dem-l.long{max-height:560px;overflow:auto}
.dsh .acc-rec{flex:0 0 66px;display:flex;overflow:hidden}
.dsh .acc-rec .recb{font-size:10.5px;padding:1px 7px}
.dsh .acc-dw{flex:0 0 98px;display:flex;justify-content:flex-end}
.dsh .acc-dem-l .acc-plie{padding:9px 16px;border-top:1px solid var(--line2,#EEF0F5)}
.dsh .acc-dem-l .acc-plie:hover{background:var(--surface-alt)}
.dsh .acc-dem-l .acc-plie:last-child{padding-bottom:12px}
/* Une action (à relancer, aujourd'hui, demain) : le vert SAYCO en aplat, l'encre dessus. Un avis reçu : la menthe
   à 25 %, l'état validé. L'orange est aux réponses. */
.dsh .acc-due.action{background:var(--accent,#00FFC9);color:var(--ink,#141925);padding:1px 8px;border-radius:99px}
.dsh .acc-due.recu{display:inline-flex;align-items:center;gap:3px;background:#BFFFF2;color:var(--ink2,#4A5163);padding:1px 8px;border-radius:99px}
.dsh .acc-mur .avg-row{padding:0 16px}
.dsh .acc-mur .acc-liste .avg-row:last-child{border-bottom:0}
/* « Les avis » : les derniers, en cartes */
.dsh .acc-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:16px}
.dsh .acc-tc{position:relative;display:flex;flex-direction:column;border:1px solid var(--line2,#EEF0F5);border-radius:12px;padding:16px 16px 12px;background:linear-gradient(180deg,#FBFFFE,#fff 40%);cursor:pointer}
.dsh .acc-tc>.acc-et{align-self:flex-start}
.dsh .acc-tc:hover{border-color:var(--line,#E7E9F0)}
.dsh .acc-guil{position:absolute;right:14px;top:12px;color:#BFFFF2}
/* L'avis en entier, à partager en capture (Théo, 05/10/2026) : plus de coupe à trois lignes, les retours
   à la ligne de l'auteur gardés, l'auteur en bas de chaque carte, à la même hauteur sur la rangée. */
.dsh .acc-tt{font-size:13px;line-height:1.55;color:var(--ink,#141925);margin:8px 0 12px;white-space:pre-line;overflow-wrap:anywhere}
.dsh .acc-tf{display:flex;align-items:center;gap:8px;min-width:0;margin-top:auto}
.dsh .acc-tf .acc-ava{flex-basis:28px;width:28px;height:28px;font-size:10.5px}
.dsh .acc-tn{font-size:12.5px;font-weight:650;color:var(--ink,#141925);line-height:1.2;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dsh .acc-tn small{display:block;font-size:11px;font-weight:450;color:var(--ink3,#8A91A3)}
.dsh .acc-tf .recb{font-size:11px;padding:1px 8px}
.dsh .acc-plus{font-size:10.5px;font-weight:700;color:var(--ink3)}
.dsh .acc-ok{display:inline-flex;align-items:center;font-size:11.5px;color:var(--ink3,#8A91A3);margin-left:auto;white-space:nowrap}
@media(max-width:1100px){
  .dsh .acc-hero,.dsh .acc-hero.p4{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .dsh .acc-hb:nth-child(odd){border-left:0}
  .dsh .acc-hb:nth-child(n+3){border-top:1px solid var(--line2,#EEF0F5)}
  .dsh .acc-deux{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:820px){.dsh .acc-cards{grid-template-columns:minmax(0,1fr)}}
@media(max-width:640px){
  .dsh .acc-hero,.dsh .acc-hero.p4{grid-template-columns:minmax(0,1fr)}
  .dsh .acc-hb{border-left:0}
  .dsh .acc-hb+.acc-hb{border-top:1px solid var(--line2,#EEF0F5)}
  .dsh .avg-acc .acc-big{font-size:40px}
}

/* Rétrocession d'un freelance (volet d'une ligne réglée, admin) : le relevé verrouillé et ses contrôles. */
.dsh .dshretro-rel{margin:10px 0 8px;border:1px solid var(--line,#E7E9F0);border-radius:10px;background:var(--surface-alt,#FBFBFD);padding:8px 12px 3px}
.dsh .dshretro-t{display:flex;align-items:center;gap:6px;font-size:10.5px;font-weight:650;letter-spacing:.05em;text-transform:uppercase;color:var(--ink3,#8A91A3);margin-bottom:2px}
.dsh .dshretro-ctl{display:grid;gap:5px;margin:8px 0 10px}
.dsh .dshretro-ctl>div{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--ink2,#4A5163)}
.dsh .dshretro-ctl>div>span{flex:1;min-width:0}
.dsh .dshretro-ctl>div>.gh{padding:2px 9px;font-size:11.5px}
.dsh .dshretro-ctl i{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;flex:none}
.dsh .dshretro-ctl .ok i{background:#BFFFF2;color:var(--ink2,#4A5163)}
.dsh .dshretro-ctl .warn i{background:var(--orange-soft,#FCF0DC);color:var(--orange,#B26B00)}
.dsh .dshretro-ctl .ko i{background:var(--red-soft,#FDECEC);color:var(--red,#C12B33)}
.dsh .dshretro-ctl .ko>span{color:var(--red,#C12B33)}
.dsh .dshretro .acts2 .pr,.dsh .dshretro .acts2 .gh{display:inline-flex;align-items:center;gap:6px}
.dsh .dshretro .acts2 a.gh{text-decoration:none}
.dsh .dshretro .acts2 .pr[disabled]{opacity:.45;cursor:not-allowed}


/* ============================================================================
   Dashboard → onglet « Prometheus » (Tom et Théo) — frontend/prometheus/.
   Repris de la maquette du 13/10/2026 (maquettes/prometheus.js), classes prm-.
   Vert : le seul vert SAYCO (#00FFC9), jamais le vert foncé (AGENTS.md).
   ========================================================================== */
.prm-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:8px 0 14px}
.prm-logo{font-family:'JetBrains Mono',ui-monospace,monospace;font-weight:500;font-size:19px;letter-spacing:.08em;color:var(--ink);position:relative;line-height:1.2}
.prm-logo::after{content:"";position:absolute;left:0;right:.6em;bottom:-4px;height:3px;border-radius:2px;background:var(--accent,#00FFC9)}
.prm-sub{font-size:12.5px;color:var(--ink3)}
.prm-sp{flex:1}
.prm-live{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:650;color:var(--ink2);background:var(--accent-soft,#E3FFF8);padding:3px 10px 3px 9px;border-radius:99px}
.prm-live i{width:8px;height:8px;border-radius:50%;background:#00FFC9;animation:prmPulse 1.6s infinite}
@keyframes prmPulse{0%{box-shadow:0 0 0 0 rgba(0,255,201,.6)}70%{box-shadow:0 0 0 7px rgba(0,255,201,0)}100%{box-shadow:0 0 0 0 rgba(0,255,201,0)}}
.prm .acc-seg{margin-left:0}
.prm-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));margin-bottom:16px !important}
.prm-k{padding:16px 18px 14px;border-left:1px solid var(--line2);min-width:0;position:relative}
.prm-k:first-child{border-left:0}
.prm-kl{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3);margin-bottom:8px}
.prm-kv{font-family:'Space Grotesk',sans-serif;font-size:34px;font-weight:700;line-height:1;color:var(--ink);letter-spacing:-.8px;display:flex;align-items:baseline;gap:5px}
.prm-kv small{font-family:'Inter',system-ui,sans-serif;font-size:14px;font-weight:600;color:var(--ink2);letter-spacing:0}
.prm-ks{font-size:12px;color:var(--ink3);margin-top:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.prm-ks b{color:var(--ink2);font-weight:650}
.prm-ks .or{color:var(--orange,#B26B00);font-weight:700}
.prm-spark{position:absolute;right:14px;top:30px}
@media(max-width:1300px){.prm-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.prm-k:nth-child(4){border-left:0}.prm-k:nth-child(n+4){border-top:1px solid var(--line2)}}
.prm-ac{margin-bottom:16px !important;border-color:#F9D99A !important}
.prm-ac>.dshh{background:#FFFAF0;border-radius:var(--r) var(--r) 0 0}
.prm-bin{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--ink2);font-weight:550}
.prm-gts-l{display:grid;grid-template-columns:repeat(auto-fill,minmax(440px,1fr))}
.prm-gt{display:flex;gap:12px;align-items:center;padding:12px 14px;border-top:1px solid var(--line2);border-left:1px solid var(--line2);cursor:pointer;margin:-1px 0 0 -1px}
.prm-gt:hover{background:var(--surface-alt)}
.prm-gti{flex:0 0 36px;width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:#FFF1D6;color:#B26B00}
.prm-gtb{flex:1;min-width:0}
.prm-gtn{font-size:13.5px;font-weight:700;color:var(--ink)}
.prm-gtp{font-weight:500;color:var(--ink3);font-size:12px}
.prm-gts{font-size:12px;color:var(--ink2);margin-top:2px}
.prm-gtc{display:flex;align-items:center;gap:5px;font-size:11.5px;color:var(--ink3);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.prm-gta{display:flex;flex-direction:column;align-items:flex-end;gap:7px}
.prm-fun{padding:10px 12px 8px}
.prm-fr{display:grid;grid-template-columns:150px minmax(0,1fr) 92px;align-items:center;gap:12px;padding:4px 6px;border-radius:8px;cursor:pointer}
.prm-fr:hover{background:var(--surface-alt)}
.prm-fr.on{background:var(--blue-soft,#E6F1FA);box-shadow:inset 0 0 0 1px var(--blue,#2563EB)}
.prm-fr.fin{margin-top:4px}
.prm-fr.fin+.prm-fr.fin{margin-top:0}
.prm-fl{font-size:12.5px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2}
.prm-fl small{display:block;font-size:10.5px;font-weight:500;color:var(--ink3)}
.prm-ft{position:relative;height:22px;background:var(--surface-alt);border-radius:6px;overflow:hidden;display:flex}
.prm-ft i{display:block;height:100%;background:linear-gradient(90deg,#00FFC9,#6DFFE0)}
.prm-fr.fin .prm-ft i{background:#00FFC9}
.prm-ft u{display:block;height:100%;background:repeating-linear-gradient(135deg,#FBC56E 0 4px,#FDE6BE 4px 8px);text-decoration:none}
.prm-fl small.pire{color:var(--red,#C12B33);font-weight:700}
.prm-fn{text-align:right;font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:14px;font-variant-numeric:tabular-nums;white-space:nowrap}
.prm-fn small{font-family:'Inter',sans-serif;font-weight:500;font-size:11.5px;color:var(--ink3);margin-left:6px;display:inline-block;min-width:34px}
.prm-leg{display:flex;align-items:center;gap:14px;font-size:11.5px;color:var(--ink3);padding:10px 6px 2px}
.prm-leg span{display:inline-flex;align-items:center;gap:6px}
.prm-leg i{width:12px;height:8px;border-radius:2px;display:inline-block}
.prm-leg i.g{background:#00FFC9}
.prm-leg i.u{background:repeating-linear-gradient(135deg,#FBC56E 0 3px,#FDE6BE 3px 6px)}
.prm-leg i.p{background:#D5DAE4}
.prm-leg i.e{background:var(--blue,#2563EB)}
.prm-exl{padding:2px 0 4px}
.prm-ex{display:grid;grid-template-columns:18px minmax(0,1fr) 92px;gap:10px;align-items:center;padding:9px 14px;border-top:1px solid var(--line2);cursor:pointer}
.prm-ex:first-child{border-top:0}
.prm-ex:hover{background:var(--surface-alt)}
.prm-ex.on{background:var(--blue-soft,#E6F1FA)}
.prm-rk{font-family:'Space Grotesk',sans-serif;font-weight:700;color:var(--ink3);font-size:13px}
.prm-en{font-size:13px;font-weight:650;color:var(--ink);display:flex;align-items:center;gap:7px;min-width:0;white-space:nowrap}
.prm-en .niv{font-size:10px;font-weight:700;color:var(--ink3);background:var(--line2);padding:1px 6px;border-radius:5px;letter-spacing:.03em}
.prm-ed{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--ink3);margin-top:4px;white-space:nowrap;min-width:0}
.prm-edt{overflow:hidden;text-overflow:ellipsis;min-width:0}
.prm-ed b{color:var(--violet,#7A4DD6);font-weight:650}
.prm-eb{height:5px;background:var(--surface-alt);border-radius:4px;margin-top:7px;overflow:hidden}
.prm-eb i{display:block;height:100%;background:#FBB24A;border-radius:4px}
.prm-ec{text-align:right}
.prm-ec b{display:block;font-family:'Space Grotesk',sans-serif;font-size:17px;line-height:1.1}
.prm-ec span{font-size:11px;color:var(--ink3);white-space:nowrap}
.prm-enl{overflow:hidden;text-overflow:ellipsis}
.prm-mob{display:inline-flex;align-items:center;gap:3px;font-size:10.5px;font-weight:700;color:var(--ink2);background:var(--line2);padding:1px 7px;border-radius:99px}
.prm-sg{display:inline-flex;align-items:center;font-size:10.5px;font-weight:700;padding:1px 8px;border-radius:99px;white-space:nowrap;letter-spacing:0}
.prm-sg.bloque{background:var(--red-soft,#FDECEC);color:var(--red,#C12B33)}
.prm-sg.ecriture{background:var(--violet-soft,#F0E9FB);color:var(--violet,#7A4DD6)}
.prm-sg.lassitude{background:var(--orange-soft,#FCF0DC);color:var(--orange,#B26B00)}
.prm-sg.entree{background:var(--line2);color:var(--ink3)}
.prm-sg.neutre{background:var(--line2);color:var(--ink2)}
.prm-why{margin-bottom:16px !important}
.prm-why3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.prm-who3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line2)}
.prm-whot{padding:14px 18px 16px}
.prm-why3>div,.prm-who3>div{padding:14px 18px 16px;border-left:1px solid var(--line2);min-width:0}
.prm-why3>div:first-child,.prm-who3>div:first-child{border-left:0}
@media(max-width:1200px){.prm-why3,.prm-who3{grid-template-columns:1fr}.prm-why3>div,.prm-who3>div{border-left:0;border-top:1px solid var(--line2)}}
.prm-wt{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3);margin-bottom:10px;display:flex;align-items:center;gap:6px}
.prm-sr{display:grid;grid-template-columns:118px minmax(0,1fr) 40px;align-items:center;gap:10px;padding:6px 0;font-size:12px;border-bottom:1px solid var(--line2)}
.prm-sr:last-child{border-bottom:0}
.prm-sr .prm-sg{justify-self:start}
.prm-srd{color:var(--ink2);line-height:1.35}
.prm-sr b{text-align:right;font-family:'Space Grotesk',sans-serif;font-size:14px}
.prm .pal-row .k{width:150px;flex-basis:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.prm .pal-row .v{width:44px;flex-basis:44px;font-size:12.5px}
.prm .pal-row{padding:4px 0}
.prm-cit{font-size:12px;color:var(--ink2);font-style:italic;line-height:1.5;margin-top:8px;padding-left:10px;border-left:2px solid var(--line)}
.prm-cit span{font-style:normal;color:var(--ink3);margin-left:4px;font-size:11.5px}
.prm-cpt{font-size:11.5px;font-weight:650;color:var(--ink2);margin:2px 0 4px}
.prm-cpt~.prm-cpt{margin-top:12px}
.prm-cp{display:grid;grid-template-columns:86px minmax(0,1fr) 46px 32px;gap:8px;align-items:center;font-size:12px;padding:3px 0}
.prm-cp .k{color:var(--ink2)}
.prm-cpb{height:8px;background:var(--surface-alt);border-radius:4px;overflow:hidden}
.prm-cpb i{display:block;height:100%;background:#9DB8F5;border-radius:4px}
.prm-cp b{text-align:right;font-family:'Space Grotesk',sans-serif;font-size:13px;white-space:nowrap}
.prm-cp b.prm-max{color:var(--blue,#2563EB)}
.prm-cp .n{text-align:right;font-size:11px;color:var(--ink3)}
.prm-src td{cursor:pointer}
.prm tr.prm-sel td{background:var(--blue-soft,#E6F1FA)}
.prm-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px;vertical-align:0}
.prm-dot.s-session{background:#F59E0B}.prm-dot.s-linkedin{background:#2563EB}.prm-dot.s-partage{background:#00FFC9}.prm-dot.s-direct{background:#8A91A3}.prm-dot.s-mail{background:#7A4DD6}
.prm-mb{display:inline-block;width:46px;height:6px;border-radius:3px;background:var(--surface-alt);margin-right:8px;vertical-align:1px;overflow:hidden}
.prm-mb i{display:block;height:100%;background:#00FFC9}
.prm-days{display:flex;align-items:stretch;gap:3px;height:120px;margin-top:14px;padding:0 2px}
.prm-day{flex:1;display:flex;flex-direction:column;justify-content:flex-end;min-width:0}
.prm-dc{display:flex;flex-direction:column;border-radius:3px 3px 0 0;overflow:hidden;min-height:2px}
.prm-dc i{display:block;min-height:1px}
.prm-dc i.f{background:#00FFC9}.prm-dc i.p{background:#D5DAE4}.prm-dc i.e{background:var(--blue,#2563EB)}
.prm-day em{font-style:normal;font-size:10px;color:var(--ink3);height:14px;margin-top:4px;text-align:center;white-space:nowrap}
.prm-day:hover .prm-dc{filter:brightness(.94)}
.prm-hm{display:grid;grid-template-columns:34px repeat(12,minmax(0,1fr));gap:3px;align-items:center}
.prm-hm .h{font-size:10px;color:var(--ink3);white-space:nowrap}
.prm-hm .d{font-size:11px;color:var(--ink2)}
.prm-hm .c{height:20px;border-radius:4px;box-shadow:inset 0 0 0 1px var(--line2)}
.prm-apps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px}
.prm-app{display:grid;grid-template-columns:18px 1fr auto;grid-template-rows:auto auto;column-gap:7px;align-items:center;padding:10px 12px;border:1px solid var(--line2);border-radius:10px;color:var(--ink2)}
.prm-app span{font-size:12px;font-weight:600}
.prm-app b{font-family:'Space Grotesk',sans-serif;font-size:16px;color:var(--ink);white-space:nowrap}
.prm-app em{grid-column:1/4;font-style:normal;font-size:11px;color:var(--ink3);margin-top:3px}
.prm-who{margin-bottom:16px !important}
.prm-pol{display:flex;height:30px;border-radius:8px;overflow:hidden;font-size:11.5px;font-weight:700}
.prm-pol span{display:flex;align-items:center;justify-content:center;white-space:nowrap;overflow:hidden;min-width:0}
.prm-pol .aimant{background:#FCD48A;color:#5A3A00}
.prm-pol .hybride{background:linear-gradient(90deg,#FCD48A,#9FFFEA);color:var(--ink2)}
.prm-pol .machine{background:#9FFFEA;color:var(--ink2)}
.prm-mx{display:grid;grid-template-columns:76px repeat(6,minmax(0,1fr));gap:5px;align-items:stretch}
.prm-mx .g{font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink3);text-align:center;padding-bottom:2px}
.prm-mx .p{font-size:11px;font-weight:700;color:var(--ink2);display:flex;align-items:center;gap:5px}
.prm-mx .p::before{content:"";width:8px;height:8px;border-radius:50%}
.prm-mx .p.aimant::before{background:#F59E0B}.prm-mx .p.hybride::before{background:linear-gradient(90deg,#F59E0B,#00FFC9)}.prm-mx .p.machine::before{background:#00FFC9}
.prm-mc{border-radius:8px;padding:7px 9px 8px;min-height:84px;display:flex;flex-direction:column;gap:5px;cursor:pointer;box-shadow:inset 0 0 0 1px var(--line2);min-width:0}
.prm-mch{display:flex;align-items:baseline;justify-content:space-between;gap:6px;min-width:0}
.prm-mc span{font-size:12px;font-weight:650;line-height:1.2;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.prm-mc b{font-family:'Space Grotesk',sans-serif;font-size:17px;color:var(--ink);line-height:1;flex:none}
.prm-mc em{font-style:normal;font-size:11px;line-height:1.35;color:var(--ink2);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.prm-mxn{font-size:11.5px;color:var(--ink3);margin-top:8px;font-style:italic}
.prm-arq{margin:2px 0 12px}
.prm-arq b{font-family:'Space Grotesk',sans-serif;font-size:15px;color:var(--ink)}
.prm-arq p{margin:4px 0 3px;font-size:13px;line-height:1.5;color:var(--ink);padding-left:10px;border-left:2px solid var(--accent,#00FFC9)}
.prm-arq span{font-size:11px;color:var(--ink3)}
.prm-kvd{display:block;font-size:11.5px;color:var(--ink3);font-weight:400;margin-top:1px}
.prm-mc:hover{box-shadow:inset 0 0 0 1.5px var(--ink3)}
.prm-mc.prm-best{box-shadow:inset 0 0 0 2px var(--ink3,#8A91A3)}
.prm-mc.on{box-shadow:inset 0 0 0 2px var(--blue,#2563EB)}
.prm-hist{position:relative;display:flex;align-items:flex-end;gap:2px;height:120px;border-bottom:1px solid var(--line)}
.prm-hist span{flex:1;background:#D5DAE4;border-radius:3px 3px 0 0;min-height:1px}
.prm-hist span.au{background:#00FFC9}
.prm-thr{position:absolute;top:-4px;bottom:0;border-left:2px dashed var(--blue,#2563EB)}
.prm-thr em{position:absolute;left:6px;top:0;font-style:normal;font-size:10.5px;font-weight:700;color:var(--blue,#2563EB);white-space:nowrap;background:var(--surface);padding:0 3px}
.prm-ax{display:flex;justify-content:space-between;font-size:10px;color:var(--ink3);margin-top:3px}
.prm-fi{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.prm-fis{font-size:11.5px;color:var(--ink3);margin-left:4px}
.prm-pl .dshh{padding:8px 12px}
.prm-segs button span{font-weight:500;opacity:.7;margin-left:3px}
.prm-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--blue,#2563EB);background:var(--blue-soft,#E6F1FA);color:var(--blue,#2563EB);border-radius:99px;padding:2px 9px;font-size:11.5px;font-weight:650;cursor:pointer}
.prm-search{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:8px;padding:0 9px;height:28px;color:var(--ink3);background:var(--surface)}
.prm-search input{border:0 !important;outline:0;box-shadow:none !important;padding:0 !important;height:24px !important;min-height:0 !important;font:inherit;font-size:12.5px;width:150px;background:none !important;color:var(--ink)}
.prm-tb td{height:31px;padding:4px 7px}
.prm-tb th{padding:5px 7px}
.prm-tb tbody tr{cursor:pointer}
.prm-tb .c{text-align:center}
.prm-q{color:var(--ink3);font-variant-numeric:tabular-nums}
.prm-anon{color:var(--ink3);font-style:italic}
.prm-ap{color:var(--ink3);margin-right:8px;display:inline-flex;vertical-align:-2px}
.prm-arc{max-width:180px;overflow:hidden;text-overflow:ellipsis}
.prm-pg{display:inline-flex;gap:2px;vertical-align:middle;margin-right:7px}
.prm-pg i{width:9px;height:6px;border-radius:2px;background:var(--line)}
.prm-pg i.ok{background:#00FFC9}.prm-pg i.stop{background:#F59E0B}.prm-pg i.cur{background:var(--blue,#2563EB)}
.prm-pg i.m{width:6px;margin-left:2px}
.prm-parti{font-size:11.5px;color:var(--ink3)}
.prm-pd{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:7px;vertical-align:1px}
.prm-pd.aimant{background:#F59E0B}.prm-pd.hybride{background:linear-gradient(90deg,#F59E0B,#00FFC9)}.prm-pd.machine{background:#00FFC9}
.prm-pot{font-family:'Space Grotesk',sans-serif;font-weight:700}
.prm-pot.au{background:#BFFFF2;padding:1px 7px;border-radius:6px}
/* V2 du test (14/10/2026) : bascule V1 · V2 de l'en-tête, pics, puce V2 sur un Golden Ticket de l'autre version */
.prm-vers button span{font-size:11px;color:var(--ink3);margin-left:3px}
.prm-vers button.on span{color:inherit;opacity:.75}
.prm-pics{font-size:11.5px;font-weight:600;color:var(--ink2);white-space:nowrap}
.prm-v2{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.04em;color:var(--ink2);background:#FFF1D6;border-radius:5px;padding:0 5px;margin-right:2px}
.prm-susp{font-size:10.5px;font-weight:700;color:var(--red,#C12B33)}
.prm-ct{display:inline-grid;place-items:center;width:24px;height:22px;border-radius:6px}
.prm-ct.todo{background:#FFF1D6;color:#B26B00}.prm-ct.fait{background:#BFFFF2;color:var(--ink2)}.prm-ct.bin{background:var(--violet-soft,#F0E9FB);color:var(--violet,#7A4DD6)}
.prm-more{text-align:center;padding:10px 0 2px}
.prm-foot{font-size:11.5px;color:var(--ink3);padding:8px 2px 2px}
#prmDrw{width:min(540px,94vw)}
#prmDrw .prm-gold{background:#FFFAF0;margin:0 -18px;padding:15px 18px}
#prmDrw .prm-gold h4{color:#B26B00}
#prmDrw .prm-gb{display:flex;justify-content:flex-end;margin-top:8px}
.prm-polb{display:flex;height:24px;border-radius:7px;overflow:hidden;font-size:11px;font-weight:700;margin-bottom:8px}
.prm-polb span{display:flex;align-items:center;justify-content:center;white-space:nowrap;overflow:hidden}
.prm-polb .aimant{background:#FCD48A;color:#5A3A00}.prm-polb .machine{background:#9FFFEA;color:var(--ink2)}
.prm-db{display:grid;grid-template-columns:160px minmax(0,1fr) 30px;gap:10px;align-items:center;font-size:12.5px;padding:3px 0}
.prm-db .k{color:var(--ink2);white-space:nowrap}
.prm-core{display:inline-block;width:7px;height:7px;border-radius:2px;background:#00FFC9;margin-right:7px;vertical-align:1px}
.prm-core.non{background:transparent}
.prm-dleg{display:flex;gap:16px;font-size:11px;color:var(--ink3);margin-top:8px}
.prm-dleg span{display:inline-flex;align-items:center}
.prm-dleg em{display:inline-block;width:0;height:11px;border-left:1.5px dashed var(--ink3);margin-right:7px;opacity:.7}
.prm-db b{text-align:right;font-family:'Space Grotesk',sans-serif}
.prm-db.s{grid-template-columns:110px minmax(0,1fr);font-size:12px}
.prm-dt{position:relative;height:8px;background:var(--surface-alt);border-radius:4px;overflow:visible;display:block}
.prm-dt i{display:block;height:100%;border-radius:4px}
.prm-dt em{position:absolute;top:-3px;bottom:-3px;border-left:1.5px dashed var(--ink3);opacity:.6}
.prm-2c{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.prm-mot{margin-bottom:10px}
.prm-mot span{display:block;font-size:11px;color:var(--ink3);margin-bottom:3px}
.prm-mot p{margin:0;font-size:13px;color:var(--ink);line-height:1.5;padding-left:10px;border-left:2px solid var(--line)}
.prm-tl{font-size:12px}
.prm-tln{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3);margin:10px 0 3px}
.prm-tln:first-child{margin-top:0}
.prm-tlr{display:grid;grid-template-columns:minmax(0,1fr) 110px 56px;gap:10px;align-items:center;padding:2px 0}
.prm-tlr .l{color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.prm-tlr .t{text-align:right;font-variant-numeric:tabular-nums;color:var(--ink2)}
.prm-tlr .t.lent{color:var(--orange,#B26B00);font-weight:700}
.prm-tlr.prm-x .l{color:var(--red,#C12B33);font-weight:700}
.prm-tlb{position:relative;height:6px;background:var(--surface-alt);border-radius:3px}
.prm-tlb i{display:block;height:100%;background:#00FFC9;border-radius:3px}
.prm-tlb i.lent{background:#F59E0B}
.prm-tlb em{position:absolute;top:-3px;bottom:-3px;border-left:1.5px solid var(--ink3);opacity:.5}
.dsh-tabs .prm-tabico{display:inline-flex;margin-right:6px;color:#F59E0B}
.prm .prm-srcb,.prm .prm-maj{display:inline-flex;align-items:center;gap:6px}
.prm-sub a{color:inherit;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:2px}
.prm .acc-seg{margin-left:0}
.prm-reps summary{list-style:none;cursor:pointer}
.prm-reps summary::-webkit-details-marker{display:none}
.prm-reps summary h4::after{content:" ▾";color:var(--ink3);font-weight:400}
.prm-reps[open] summary h4::after{content:" ▴"}
.prm-reps td{font-size:12px;padding:4px 6px;vertical-align:top}
.prm-chr{font-size:10px;font-weight:700;color:var(--orange,#B26B00);background:var(--orange-soft,#FCF0DC);padding:0 5px;border-radius:5px}
#prmDrw .prm-gb .st{display:inline-flex;align-items:center;gap:5px}

/* ===================================================== VOLET : BLOC « FACTURATION » (15/10/2026)
   La vie de la facture en cinq étapes (brouillon Qonto, émise, envoyée, échéance, réglée), un
   seul bouton vert : celui de l'étape en cours. Fait : menthe à 25 %, encre ink2. En cours : cerclé
   d'encre, cœur menthe. Échue : rouge doux, comme la relance « à faire ». */
.dsh .fb h4 .st{margin-left:auto;text-transform:none;letter-spacing:0;font-size:11px}
.dsh .fb-steps{list-style:none;margin:4px 0 8px;padding:0}
.dsh .fb-step{position:relative;display:grid;grid-template-columns:22px minmax(0,1fr) auto;column-gap:10px;align-items:start;padding:0 0 12px}
.dsh .fb-step::before{content:"";position:absolute;left:10.25px;top:23px;bottom:1px;border-left:1.5px solid var(--line2)}
.dsh .fb-step:last-child{padding-bottom:2px}
.dsh .fb-step:last-child::before{display:none}
.dsh .fb-dot{width:22px;height:22px;border-radius:99px;display:grid;place-items:center;background:var(--surface);border:1.5px dashed var(--line);color:var(--ink3);box-sizing:border-box}
.dsh .fb-step.done .fb-dot{background:#BFFFF2;border:0;color:var(--ink2,#4A5163)}
.dsh .fb-step.cur .fb-dot{border:1.5px solid var(--ink,#141925)}
.dsh .fb-step.cur .fb-dot i{width:8px;height:8px;border-radius:99px;background:var(--accent,#00FFC9);box-shadow:0 0 0 1px var(--ink,#141925)}
/* .dsh .late (une date échue du tableau, rouge et grasse) peignait toute l'étape : seul son libellé est rouge. */
.dsh .fb-step.late{color:var(--ink2);font-weight:400}
.dsh .fb-step.late .fb-dot{background:var(--red-soft,#FDECEC);border:0;color:var(--red,#C12B33)}
.dsh .fb-l{font-size:13px;line-height:22px;color:var(--ink3)}
.dsh .fb-step.done .fb-l{color:var(--ink2)}
.dsh .fb-step.cur .fb-l{color:var(--ink);font-weight:650}
.dsh .fb-step.late .fb-l{color:var(--red,#C12B33);font-weight:650}
.dsh .fb-m{font-size:11.5px;color:var(--ink3);line-height:1.45}
.dsh .fb-r{font-size:11.5px;color:var(--ink3);line-height:22px;white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums}
.dsh .fb-a{grid-column:2 / 4;margin-top:8px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.dsh .fb-a .pr,.dsh .fb-a .gh{display:inline-flex;align-items:center;gap:6px;text-decoration:none}
.dsh .fb-step .fac-pause{grid-column:2 / 4}
.dsh .fb-fil{grid-column:2 / 4;margin-top:5px;display:flex;flex-direction:column}
.dsh .fb-fil:empty{display:none}
.dsh .fb-fil a,.dsh .fb-fil .fb-ligne{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--ink2);text-decoration:none;padding:3px 6px;margin:0 -6px;border-radius:6px}
.dsh .fb-fil a:hover{background:var(--surface-alt)}
.dsh .fb-fil .dt{color:var(--ink3);font-variant-numeric:tabular-nums;flex:0 0 34px}
.dsh .fb-fil svg{flex:0 0 auto;color:var(--ink3)}
.dsh .fb-fil .in{padding-left:18px}
.dsh .fb-fil .in .who{color:var(--violet,#7A4DD6)}
.dsh .fb-fil .pj{font-size:10px;font-weight:700;color:var(--ink3);border:1px solid var(--line);border-radius:5px;padding:0 4px;line-height:14px}
.dsh .fb-fil .ext{margin-left:auto;display:inline-flex}
.dsh .fb-lnk{color:var(--ink2);text-decoration:none;border-bottom:1px dashed var(--ink3);font-weight:600;display:inline-flex;align-items:center;gap:4px}
.dsh .fb-ttc{color:var(--ink3);font-weight:400}
/* L'échéance proposée, comme sur la maquette validée : une ligne neutre, sa date et « Prendre le … ». Le .q du
   panneau des mails prenait ici le style de citation violette du volet (.dsh .q, « Message à Théo »). */
.dsh .fb .fac-ep{margin:4px 0 2px;justify-content:space-between;gap:10px;padding:5px 6px 5px 10px;background:var(--surface-alt);border:1px solid var(--line2);color:var(--ink2)}
.dsh .fb .fac-ep .q,.dsh .fb .fac-pause .q{background:none;border:0;border-radius:0;padding:0;margin:0;color:inherit;font-size:inherit;line-height:inherit}
.dsh .fb .fac-pause{margin:6px 0 0;padding:5px 6px 5px 10px;border:1px solid var(--line2);justify-content:space-between;gap:10px}
.dsh .fb .fac-ep .pr{white-space:nowrap;flex:0 0 auto}
.dsh .fb-sub{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink3);font-weight:700;margin:14px 0 6px;padding-top:12px;border-top:1px solid var(--line2)}
.dsh .fb-soc .t{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;color:var(--ink)}
.dsh .fb-soc .t .gh,.dsh .fb-soc .t .pr{display:inline-flex;align-items:center;gap:5px}
.dsh .fb-soc .fb-m{margin-top:1px}
.dsh .fb-soc .fb-manque{color:var(--orange,#B26B00)}
.dsh .fb-ct{color:var(--violet,#7A4DD6)}
.dsh .fb-to{margin-top:9px;font-size:13px;color:var(--ink);display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.dsh .fb-to .k{font-size:12px;color:var(--ink2)}
.dsh .fb-warn{background:var(--orange-soft,#FCF0DC);border-radius:9px;padding:8px 10px;margin-top:9px;font-size:12px;color:var(--ink2);line-height:1.5}
.dsh .fb-warn .h{display:flex;align-items:center;gap:6px;color:var(--orange,#B26B00);font-weight:650}
.dsh .fb-warn .gh{margin-top:7px}
.dsh .fb-hint{margin-top:12px;font-size:11.5px;color:var(--ink3)}
.dsh-menu .fb-menu-ic{display:inline-flex;align-items:center;gap:8px}
.dsh-menu .fb-menu-ic svg{color:var(--ink3)}
.dsh-menu button[data-v="__hd"]{pointer-events:none;padding-top:8px;padding-bottom:2px}
.dsh-menu .fb-menu-hd{font-size:10px;text-transform:uppercase;letter-spacing:.06em;font-weight:600;color:var(--ink3)}
