/* Feuille commune à tous les écrans : jetons (:root), coque, composants partagés.
   Les règles propres à un écran sont dans static/css/<écran>.css, chargées après
   celle-ci par les seules pages de l'écran (base.html, page_assets). */
:root{
  /* H2 — Design system HODAS. Toute valeur de couleur, de rayon, de police ou
     d'anneau de focus passe par un jeton déclaré ici ; docs/DESIGN_SYSTEM.md en
     donne l'usage et /outils/design-system le rendu. Les jetons historiques
     (--navy … --shadow-soft) restent les noms de référence de la marque. */

  /* Marque */
  --navy:#162953;
  --navy-2:#1f3971;
  --navy-deep:#122345;
  --slate:#71869f;
  --sky:#7794bb;
  --beige:#ede3d2;
  --gold-accent:#c5a76c;
  --mist:#dfe2df;
  --accent:#4f79c7;

  /* Neutres : du blanc (0) au texte principal (--ink) */
  --paper:#ffffff;
  --gray-25:#fbfcfd;
  --gray-50:#f7f9fb;
  --gray-75:#f3f5f7;
  --gray-100:#eef1f5;
  --gray-150:#e9edf1;
  --gray-200:#e5e9ed;
  --line:#dce2e7;
  --gray-300:#d9e0ea;
  --line-dark:#cbd3dc;
  --gray-350:#cdd6de;
  --gray-400:#b9c6d8;
  --gray-450:#9eb0c8;
  --gray-500:#9aa7b4;
  --gray-550:#8a97a8;
  --muted:#626e7d;
  --gray-600:#66758c;
  --gray-650:#5b6d82;
  --gray-700:#4a5a70;
  --gray-750:#44546a;
  --gray-800:#39485b;
  --gray-850:#26364b;
  --ink:#1d2a3b;

  /* États : texte, fond, bordure */
  --success:#26704f;
  --success-strong:#1e7a46;
  --success-bg:#e9f4ee;
  --success-border:#d5e6dc;
  --success-line:#bedeca;
  --danger:#aa3f48;
  --danger-strong:#c0392b;
  --danger-bg:#f9e8ea;
  --danger-border:#edd5d8;
  --danger-line:#e8bbc0;
  --warning:#9b6b20;
  --warning-strong:#8a6417;
  --warning-bg:#fff4df;
  --warning-bg-strong:#fff0cf;
  --warning-line:#ead098;
  --warning-accent:#d9a441;
  /* Graphiques : une teinte par poche de patrimoine (fiche client). */
  --chart-hodas:#34549b;
  --chart-real-estate:#5b93e0;
  --chart-external:#cf9a3c;
  --chart-business:#2f9a86;

  /* Canaux d'échange (F3, écran Interactions) */
  --channel-visio:#2f8f83;
  --channel-visio-bg:#e6f3f1;
  --channel-email:#6c5fc7;
  --channel-email-bg:#efedfb;

  /* Rôles : à préférer aux teintes brutes dans les nouveaux composants */
  --surface:var(--paper);
  --surface-subtle:var(--gray-25);
  --surface-muted:var(--gray-50);
  --surface-sunken:var(--gray-100);
  --border-default:var(--line);
  --border-input:var(--gray-350);
  --text-default:var(--ink);
  --text-strong:var(--gray-850);
  --text-secondary:var(--gray-800);
  --text-muted:var(--muted);
  --text-faint:var(--gray-500);

  /* Typographie */
  --font-sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --font-serif:Georgia,"Times New Roman",serif;
  --font-mono:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;
  --text-2xs:8.5px;
  --text-xs:9.5px;
  --text-sm:10.5px;
  --text-md:11.5px;
  --text-base:12px;
  --text-lg:13px;
  --text-xl:15px;
  --text-2xl:18px;
  --text-3xl:21px;
  --text-display:30px;--text-input-touch:16px;

  /* Rayons */
  --radius-2xs:4px;
  --radius-xs:6px;
  --radius-sm:8px;
  --radius-md:10px;
  --radius-lg:12px;
  --radius-xl:15px;
  --radius-2xl:18px;
  --radius-pill:999px;

  /* Espacements (grille de 4 px) */
  --space-1:4px;
  --space-2:8px;
  --space-3:12px;
  --space-4:16px;
  --space-5:20px;
  --space-6:24px;
  --space-8:32px;

  /* Ombres et focus */
  --shadow:0 15px 38px rgba(22,41,83,.09);
  --shadow-soft:0 8px 22px rgba(22,41,83,.06);
  --focus-ring:0 0 0 3px rgba(119,148,187,.17);
  --shadow-button:0 4px 12px rgba(22,41,83,.12);

  /* Commandes : champs, listes et boutons alignés sur la même hauteur */
  --control-height:42px;
  --control-height-sm:36px;
  /* Jauges d'objectifs (Reporting, Objectifs) : teintes douces, demandées le 06.10.2026. */
  --gauge-ok:#8fc4a6;--gauge-warn:#e9cf98;--gauge-ko:#dfa9ad;--gauge-track:#f0f2f5;
  --gold-ink:#8a6d2f;
  --success-soft-line:#9cc3b0;
}
*{box-sizing:border-box}
html{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--gray-75)}
body{margin:0;background:linear-gradient(135deg,var(--gray-50) 0%,var(--gray-75) 70%,var(--gray-75) 100%);min-height:100vh}
a{color:var(--navy-2);text-decoration:none}
button,input,select,textarea{font:inherit}
button{color:inherit}
.app-shell{min-height:100vh;display:grid;grid-template-columns:274px minmax(0,1fr)}
.sidebar{position:sticky;top:0;height:100vh;background:linear-gradient(180deg,var(--navy) 0%,var(--navy-deep) 100%);color:var(--paper);padding:24px 18px 18px;display:flex;flex-direction:column;z-index:30;box-shadow:8px 0 30px rgba(22,41,83,.12)}
.sidebar-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.brand{display:flex;align-items:center;gap:12px;color:var(--paper);min-width:0}
.brand img{width:50px;height:50px;border-radius:50%;object-fit:cover;background:var(--paper);box-shadow:0 0 0 3px rgba(237,227,210,.14)}
.brand strong,.brand small{display:block}
.brand strong{font-family:var(--font-serif);font-size:22px;letter-spacing:.11em;line-height:1}
.brand small{margin-top:5px;color:var(--beige);font-size:var(--text-2xs);letter-spacing:.34em}
.sidebar-close{display:none;background:none;border:0;color:var(--paper);font-size:29px;line-height:1;cursor:pointer}
.sidebar-label{margin:31px 12px 8px;color:var(--gray-450);font-size:var(--text-xs);font-weight:800;letter-spacing:.18em;text-transform:uppercase}
.sidebar nav{display:grid;gap:5px}
.sidebar nav a{display:flex;align-items:center;gap:12px;color:var(--line-dark);padding:11px 12px;border-radius:var(--radius-md);font-size:var(--text-lg);font-weight:600;transition:.18s ease}
.sidebar nav a svg{width:19px;height:19px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.sidebar nav a:hover{background:rgba(255,255,255,.07);color:var(--paper);transform:translateX(2px)}
.sidebar nav a.active{background:linear-gradient(90deg,rgba(237,227,210,.20),rgba(119,148,187,.13));color:var(--paper);box-shadow:inset 3px 0 0 var(--beige)}
.sidebar-bottom{margin-top:auto;padding:18px 8px 0;border-top:1px solid rgba(255,255,255,.13)}
/* Menu utilisateur (V71) : le nom du conseiller devient le point d'accès aux
   paramètres personnels, plutôt qu'une liste de liens dans la barre latérale. */
.user-menu{position:relative}
.user-chip{display:flex;align-items:center;gap:10px;width:100%;min-width:0;padding:7px 8px;border:1px solid transparent;border-radius:var(--radius-md);background:none;text-align:left;font:inherit;cursor:pointer;transition:.18s ease}
.user-chip:hover{background:rgba(255,255,255,.07)}
.user-chip[aria-expanded="true"]{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.18)}
.user-chip:focus-visible{outline:2px solid var(--beige);outline-offset:2px}
.user-chip>span{display:grid;place-items:center;width:34px;height:34px;flex:0 0 auto;border-radius:50%;background:var(--beige);color:var(--navy);font-weight:800}
.user-chip div{min-width:0;flex:1 1 auto}
.user-chip strong,.user-chip small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.user-chip strong{font-size:var(--text-md);font-weight:700;color:var(--paper)}
.user-chip small{font-size:var(--text-sm);color:var(--gray-450);margin-top:2px}
.user-chip-caret{width:15px;height:15px;flex:0 0 auto;fill:none;stroke:var(--gray-450);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .18s ease}
.user-chip[aria-expanded="true"] .user-chip-caret{transform:rotate(180deg)}
.user-menu-panel{position:absolute;left:0;right:0;bottom:calc(100% + 7px);z-index:40;display:grid;gap:2px;padding:6px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper);box-shadow:0 16px 38px rgba(12,26,48,.28)}
.user-menu-panel a,.user-menu-panel button{display:flex;align-items:center;gap:9px;width:100%;padding:9px 10px;border:0;border-radius:var(--radius-sm);background:none;color:var(--ink);font:inherit;font-size:var(--text-md);font-weight:650;text-align:left;cursor:pointer;transition:.15s ease}
.user-menu-panel svg{width:16px;height:16px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.user-menu-panel a:hover,.user-menu-panel button:hover{background:var(--gray-100);color:var(--navy)}
.user-menu-panel a:focus-visible,.user-menu-panel button:focus-visible{outline:2px solid var(--navy);outline-offset:-2px}
.user-menu-panel form{margin:4px 0 0;padding-top:5px;border-top:1px solid var(--line)}
.user-menu-panel form button{color:var(--danger)}
.version{display:block;margin-top:9px;padding-left:8px;color:var(--slate);font-size:var(--text-xs)}

/* Écrans « Mon compte » et « Sécurité du compte ». */
.sidebar-overlay{display:none}
.content{padding:30px 36px 0;min-width:0}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}
.topbar-left{display:flex;align-items:center;gap:14px;min-width:0}
.topbar h1{font-family:var(--font-serif);color:var(--navy);font-size:var(--text-display);line-height:1.15;margin:3px 0 0;font-weight:500}
.eyebrow{margin:0;color:var(--slate);font-size:var(--text-sm);font-weight:800;letter-spacing:.15em;text-transform:uppercase}
.topbar-actions{display:flex;align-items:center;gap:10px}
.security-badge{display:inline-flex;align-items:center;gap:7px;background:var(--success-bg);color:var(--success);border:1px solid var(--success-border);border-radius:var(--radius-pill);padding:7px 11px;font-size:var(--text-md);font-weight:700;white-space:nowrap}
.fy-chip{display:inline-flex;align-items:center;padding:6px 11px;border:1px solid var(--gold-accent);border-radius:var(--radius-pill);background:var(--paper);color:var(--gold-ink);font-size:var(--text-sm);font-weight:500;text-decoration:none;white-space:nowrap}
.fy-chip:hover{border-color:var(--navy);color:var(--navy)}
.security-badge>span{width:7px;height:7px;border-radius:50%;background:var(--success);box-shadow:0 0 0 3px rgba(38,112,79,.12)}
.menu-button{display:none;border:0;background:var(--paper);border-radius:var(--radius-md);padding:10px;box-shadow:var(--shadow-soft);cursor:pointer}
.menu-button span{display:block;width:20px;height:2px;background:var(--navy);margin:4px 0}
.primary,.button-secondary,.button-ghost,.button-danger{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--gray-300);border-radius:var(--radius-lg);padding:10px 16px;min-height:var(--control-height);font-size:var(--text-lg);font-weight:750;cursor:pointer;transition:.18s ease;text-decoration:none;line-height:1.2;box-shadow:0 3px 10px rgba(22,41,83,.04)}
.primary{background:var(--navy);border-color:var(--navy);color:var(--paper);box-shadow:var(--shadow-button)}
.primary:hover{background:var(--navy-2);border-color:var(--navy-2);transform:translateY(-1px)}
.button-secondary{background:var(--gray-50);border-color:var(--gray-300);color:var(--navy)}
.button-secondary:hover{background:var(--gray-100);border-color:var(--gray-350);transform:translateY(-1px)}
.button-ghost{background:var(--paper);border-color:var(--gray-300);color:var(--navy)}
.button-ghost:hover{background:var(--gray-50);border-color:var(--gray-350);transform:translateY(-1px)}
.button-danger{background:var(--danger-bg);border-color:var(--danger-border);color:var(--danger)}
.button-danger:hover{background:var(--danger-bg);transform:translateY(-1px)}
.small-button{padding:8px 12px;min-height:var(--control-height-sm);font-size:var(--text-base)}
.flash{padding:12px 14px;border-radius:var(--radius-md);margin-bottom:16px;font-size:var(--text-base);font-weight:650;border:1px solid transparent}
.flash.success{background:var(--success-bg);color:var(--success);border-color:var(--success-border)}
.flash.error{background:var(--danger-bg);color:var(--danger);border-color:var(--danger-border)}
.flash.warning{background:var(--warning-bg);color:var(--warning-strong);border-color:var(--warning-line)}
.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:18px}
.metric-card,.card{background:rgba(255,255,255,.97);border:1px solid rgba(220,226,231,.95);border-radius:var(--radius-xl);box-shadow:var(--shadow)}
.metric-card{position:relative;overflow:hidden;padding:18px 19px;min-height:128px}
.metric-card::before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--navy)}
.metric-card.sky::before{background:var(--sky)}
.metric-card.slate::before{background:var(--slate)}
.metric-card.beige::before{background:var(--gold-accent)}
.metric-card span,.metric-card small{display:block;color:var(--muted);font-size:var(--text-md)}
.metric-card strong{display:block;color:var(--navy);font-size:24px;line-height:1.1;margin:12px 0 8px;letter-spacing:-.02em}
.metric-card small{font-size:var(--text-sm);line-height:1.35}
.metric-icon{position:absolute;right:16px;top:15px;width:31px;height:31px;border-radius:var(--radius-md);display:grid;place-items:center;background:var(--gray-100);color:var(--navy)}
.metric-icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.card{padding:21px}
.card+.card{margin-top:18px}
.card-title{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:14px}
.card-title h2,.card h2{font-family:var(--font-serif);color:var(--navy);font-size:var(--text-3xl);font-weight:500;margin:4px 0 0}
.card-title>a{font-size:var(--text-md);font-weight:800;color:var(--navy-2)}
.card-subtitle{margin:7px 0 0;color:var(--muted);font-size:var(--text-md);line-height:1.5}
.grid-2{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:18px}
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.grid-form-list{display:grid;grid-template-columns:minmax(300px,365px) minmax(0,1fr);gap:18px;align-items:start}
.narrow{max-width:760px}
.table-wrap{overflow:auto;border-radius:var(--radius-md);border:1px solid var(--gray-150)}
table{width:100%;border-collapse:collapse;font-size:var(--text-base);background:var(--paper)}
th{text-align:left;color:var(--muted);font-weight:750;padding:10px 11px;border-bottom:1px solid var(--line);background:var(--gray-50);white-space:nowrap;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.04em}
td{padding:13px 11px;border-bottom:1px solid var(--gray-100);vertical-align:middle}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover{background:var(--gray-25)}
td strong,td small{display:block}
td strong{color:var(--gray-850)}
td small{color:var(--muted);font-size:var(--text-sm);line-height:1.45;margin-top:3px}
.num{text-align:right;white-space:nowrap}
.empty{text-align:center!important;color:var(--muted);padding:28px!important;font-style:italic}
.positive{color:var(--success)!important}.negative{color:var(--danger)!important}
.tag,.status-pill{display:inline-flex;align-items:center;border-radius:var(--radius-pill);padding:5px 9px;font-size:var(--text-xs);font-weight:800;white-space:nowrap}
.tag{background:var(--gray-100);color:var(--navy-2)}
.status-pill{background:var(--gray-100);color:var(--gray-650)}
.status-idee{background:var(--gray-100);color:var(--gray-650)}
.status-brouillon{background:var(--warning-bg);color:var(--warning-strong)}
.status-pret{background:var(--gray-150);color:#315d91}
.status-publie{background:var(--success-bg);color:var(--success)}
.status-sponsorise{background:#f4ebf7;color:#79518a}
.status-recycler{background:var(--beige);color:#8b6045}
.status-finaliser{background:var(--beige);color:#9a5b26}
.status-programme{background:var(--gray-300);color:#2f5aa8}
.status-archive{background:var(--gray-75);color:var(--muted)}
.stack-form{display:grid;gap:14px}
.stack-form.compact{gap:12px}
.stack-form label{display:grid;gap:6px;color:var(--gray-800);font-size:var(--text-md);font-weight:750}
.stack-form input,.stack-form select,.stack-form textarea{width:100%;padding:10px 11px;border:1px solid var(--gray-350);border-radius:var(--radius-sm);background:var(--paper);color:var(--ink);outline:none;transition:.15s ease}
.stack-form textarea{min-height:115px;resize:vertical;line-height:1.45}
.stack-form input:focus,.stack-form select:focus,.stack-form textarea:focus{border-color:var(--sky);box-shadow:var(--focus-ring)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.form-row.three{grid-template-columns:repeat(3,1fr)}
.actions{display:flex;justify-content:flex-end;gap:9px;align-items:center}
.danger-link{background:none;border:0;color:var(--danger);font-size:var(--text-sm);font-weight:700;cursor:pointer;padding:5px}
.bar-list{display:grid;gap:14px}
.bar-item{display:grid;gap:7px}
.bar-head{display:flex;justify-content:space-between;align-items:flex-end;gap:10px;font-size:var(--text-md)}
.bar-head strong{color:var(--gray-850);font-size:var(--text-md)}
.bar-head span{color:var(--muted);font-size:var(--text-sm)}
.bar-track{height:8px;background:var(--gray-100);border-radius:var(--radius-pill);overflow:hidden}
.bar-track svg{display:block;width:100%;height:100%}
.bar-track rect{fill:var(--sky)}
.bar-item:nth-child(2n) .bar-track rect{fill:var(--slate)}
.bar-item:nth-child(3n) .bar-track rect{fill:var(--navy-2)}
.kpi-inline{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.kpi-inline span{background:var(--gray-75);border-radius:var(--radius-sm);padding:7px 9px;font-size:var(--text-sm);color:var(--gray-650)}
.kpi-inline strong{color:var(--navy);margin-left:4px}
.hero-card{position:relative;overflow:hidden;background:linear-gradient(125deg,var(--navy),var(--navy-2));color:var(--paper);border:0}
.hero-card::after{content:"";position:absolute;width:240px;height:240px;border-radius:50%;right:-90px;top:-130px;border:45px solid rgba(237,227,210,.08)}
.hero-card .eyebrow{color:var(--gray-400)}.hero-card h2{color:var(--paper)}.hero-card p{position:relative;z-index:1;color:var(--gray-300);max-width:760px;line-height:1.6;font-size:var(--text-base)}
.hero-card .button-secondary{position:relative;z-index:1}
.dashboard-split{display:grid;grid-template-columns:minmax(0,1fr) 370px;gap:18px;margin-top:18px}
.quick-list{display:grid;gap:8px}
.quick-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px;border:1px solid var(--gray-200);border-radius:var(--radius-md);background:var(--gray-25)}
.quick-item strong{display:block;font-size:var(--text-md);color:var(--gray-850)}.quick-item small{display:block;font-size:var(--text-sm);color:var(--muted);margin-top:3px}
.quick-item .date-box{min-width:47px;text-align:center;background:var(--beige);border-radius:var(--radius-sm);padding:6px;color:var(--navy);font-size:var(--text-sm);font-weight:800}
.report-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}
.report-context{display:flex;gap:8px;flex-wrap:wrap}
.report-section{margin-top:18px}
.report-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.report-bar-table{display:grid;gap:12px}
.report-bar-row{display:grid;grid-template-columns:minmax(130px,1fr) minmax(170px,1.3fr) 100px;gap:12px;align-items:center}
.report-bar-row .label strong{display:block;font-size:var(--text-md)}.report-bar-row .label small{display:block;color:var(--muted);font-size:var(--text-sm);margin-top:2px}
.report-bar-row .amount{text-align:right;font-size:var(--text-md);font-weight:750;color:var(--navy)}
.report-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}
.report-meta article{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-md);padding:14px}
.report-meta span{display:block;color:var(--muted);font-size:var(--text-sm)}.report-meta strong{display:block;color:var(--navy);font-size:var(--text-2xl);margin-top:8px}
.back-link{display:inline-flex;align-items:center;gap:6px;color:var(--slate);font-size:var(--text-md);font-weight:700;margin-bottom:10px}
.social-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:18px}
.social-layout{display:grid;grid-template-columns:minmax(300px,370px) minmax(0,1fr);gap:18px;align-items:start}
.social-filter{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px}
.social-filter a{padding:7px 10px;border-radius:var(--radius-pill);background:var(--gray-100);color:var(--gray-650);font-size:var(--text-sm);font-weight:750}
.social-filter a.active{background:var(--navy);color:var(--paper)}
.social-list{display:grid;gap:11px}
.social-card{border:1px solid var(--gray-200);border-radius:var(--radius-lg);background:var(--paper);padding:15px;box-shadow:var(--shadow-soft)}
.tool-callout{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-bottom:18px}.tool-callout h2{margin-bottom:8px}.tool-callout p{margin:0;max-width:760px}.tool-launch{white-space:nowrap}
.muted{color:var(--muted);line-height:1.6}
footer{padding:25px 4px;color:var(--gray-550);font-size:var(--text-xs)}
@media(max-width:1180px){.metrics{grid-template-columns:repeat(2,1fr)}.dashboard-split,.grid-2,.report-grid{grid-template-columns:1fr}.social-summary{grid-template-columns:repeat(3,1fr)}.report-meta{grid-template-columns:repeat(2,1fr)}}
@media(max-width:980px){.app-shell{grid-template-columns:230px minmax(0,1fr)}.content{padding:26px 24px 0}.grid-form-list,.social-layout{grid-template-columns:1fr}}@media(max-width:980px){.social-summary{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){body.sidebar-open{overflow:hidden}.app-shell{display:block}.sidebar{position:fixed;left:0;top:0;width:285px;transform:translateX(-105%);transition:.2s ease}.sidebar-open .sidebar{transform:translateX(0)}.sidebar-overlay{position:fixed;inset:0;background:rgba(10,22,43,.45);z-index:25}.sidebar-open .sidebar-overlay{display:block}.sidebar-close,.menu-button{display:block}.content{padding:19px 14px 0}.topbar{align-items:flex-start}.topbar h1{font-size:25px}.security-badge{display:none}.metrics{grid-template-columns:1fr 1fr}.metric-card{min-height:118px;padding:16px}.metric-card strong{font-size:20px}.grid-3{grid-template-columns:1fr}.form-row,.form-row.three{grid-template-columns:1fr}.report-bar-row{grid-template-columns:minmax(100px,1fr) minmax(100px,1fr);}.report-bar-row .amount{grid-column:2}}@media(max-width:760px){.topbar-actions .button-ghost{display:none}}
@media(max-width:480px){.metrics,.social-summary,.report-meta{grid-template-columns:1fr}.topbar{margin-bottom:18px}.topbar h1{font-size:23px}.card{padding:17px}.report-bar-row{display:block}.report-bar-row .bar-track{margin:8px 0}.report-bar-row .amount{text-align:left}}@media(max-width:480px){.status-pill{margin-top:8px}}
@media print{body{background:var(--paper)}.sidebar,.sidebar-overlay,.menu-button,.security-badge,.page-actions,.topbar-actions,.flash,footer,.no-print{display:none!important}.app-shell{display:block}.content{padding:0}.topbar{margin-bottom:18px}.topbar h1{font-size:25px}.card,.metric-card,.social-card{box-shadow:none;break-inside:avoid}.metrics{grid-template-columns:repeat(4,1fr)}.report-grid{grid-template-columns:1fr 1fr}.table-wrap{overflow:visible}table{font-size:var(--text-sm)}}

/* V4 — outils, enveloppes et valorisations centralisées */
[hidden]{display:none!important}
.checkbox-line{display:flex!important;align-items:center;gap:9px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--gray-50);cursor:pointer}
.checkbox-line input{width:auto!important;margin:0;accent-color:var(--navy)}
.checkbox-line span{line-height:1.35}
.prominent-check{background:var(--gray-100);border-color:var(--gray-300);color:var(--navy)!important}
.disabled-field{opacity:.55}
.manual-muted{opacity:.72}
.form-note{margin:0;color:var(--muted);font-size:var(--text-sm);line-height:1.45}
.form-note a{font-weight:750}
.row-actions{display:flex;justify-content:flex-end;align-items:center;gap:5px;white-space:nowrap}
.row-actions form{margin:0}
.positions-layout{margin-top:18px}
.valuation-form{display:grid;gap:14px}
.valuation-actions{display:flex;justify-content:space-between;align-items:center;gap:18px}
.valuation-actions span{color:var(--muted);font-size:var(--text-sm);line-height:1.45}
.tools-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px}
.tool-hero{margin-bottom:0}
.tool-card{display:flex;flex-direction:column;align-items:flex-start;min-height:255px}
.tool-card p:not(.eyebrow){color:var(--muted);font-size:var(--text-md);line-height:1.6;max-width:620px}
.tool-card .button-link{margin-top:auto}
.tool-card-muted{background:linear-gradient(145deg,var(--paper),var(--gray-75))}
.tool-icon{width:48px;height:48px;border-radius:var(--radius-lg);display:grid;place-items:center;background:var(--beige);color:var(--navy);margin-bottom:18px}
.tool-icon svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.account-help{margin-top:-4px}

@media(max-width:980px){.tools-grid{grid-template-columns:1fr}.valuation-actions{align-items:flex-start;flex-direction:column}.valuation-actions .primary{width:100%}}
@media(max-width:760px){.row-actions{align-items:flex-end;flex-direction:column}}

/* V5 — documents, PNB et reporting paramétrable */
.edit-doc-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,.82fr);gap:18px;align-items:start}
.document-upload-form{padding-bottom:16px;border-bottom:1px solid var(--line)}
.document-list{display:grid;gap:9px;margin-top:15px}
.document-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 12px;border:1px solid var(--gray-200);border-radius:var(--radius-md);background:var(--gray-25)}
.document-row strong{display:block;color:var(--navy);font-size:var(--text-md)}
.document-row span{display:block;color:var(--muted);font-size:var(--text-xs);margin-top:4px;word-break:break-word}
.report-filter-card{margin-bottom:18px}
.report-filter-form{display:grid;grid-template-columns:1.2fr 1fr 1fr .8fr .8fr auto;gap:10px;align-items:end}
.report-filter-form label{display:grid;gap:6px;color:var(--gray-800);font-size:var(--text-sm);font-weight:750}
.report-filter-form input,.report-filter-form select{width:100%;padding:9px 10px;border:1px solid var(--gray-350);border-radius:var(--radius-sm);background:var(--paper);color:var(--ink)}
.report-filter-form button{height:var(--control-height);white-space:nowrap}
.metrics-five{grid-template-columns:repeat(5,minmax(0,1fr))}
.bar-negative .bar-track rect,.timeline-bar.negative .timeline-track rect{fill:var(--danger)}
.timeline-bars{display:grid;grid-template-columns:repeat(var(--timeline-month-count,12),minmax(58px,72px));gap:10px;align-items:end;min-height:235px;overflow-x:auto;padding:10px 2px 8px;justify-content:start}
.timeline-bar{display:grid;grid-template-rows:auto 150px auto;gap:7px;min-width:54px;text-align:center}
.timeline-value{font-size:var(--text-xs);font-weight:750;color:var(--navy);white-space:nowrap;transform:rotate(-24deg);transform-origin:center}
.timeline-track{height:150px;border-radius:8px 8px 2px 2px;background:var(--gray-100);overflow:hidden}
.timeline-track svg{display:block;width:100%;height:100%}
.timeline-track rect{fill:var(--sky)}
.timeline-bar:nth-child(2n) .timeline-track rect{fill:var(--slate)}
.timeline-bar:nth-child(3n) .timeline-track rect{fill:var(--navy-2)}
.timeline-bar strong{font-size:var(--text-xs);color:var(--gray-650)}
@media(max-width:1250px){.metrics-five{grid-template-columns:repeat(3,1fr)}.report-filter-form{grid-template-columns:repeat(3,1fr)}}
@media(max-width:980px){.edit-doc-layout{grid-template-columns:1fr}.report-filter-form{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.metrics-five{grid-template-columns:1fr 1fr}.report-filter-form{grid-template-columns:1fr}.document-row{align-items:flex-start;flex-direction:column}}
@media(max-width:480px){.metrics-five{grid-template-columns:1fr}}

/* V6 — partage HODAS/Sève, rendez-vous et objectifs */
.valuation-section{margin-top:18px}
.meeting-card{display:grid;grid-template-columns:72px minmax(0,1fr);gap:15px;padding:14px;border:1px solid var(--gray-200);border-radius:var(--radius-lg);background:var(--gray-25)}
.meeting-date{border-radius:var(--radius-md);background:var(--navy);color:var(--paper);display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:88px;padding:9px;text-align:center}
.meeting-date strong{font-size:25px;line-height:1}.meeting-date span{font-size:var(--text-xs);color:var(--beige);margin-top:5px}.meeting-date small{font-size:var(--text-sm);margin-top:6px}
.meeting-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.meeting-head h3{font-family:var(--font-serif);color:var(--navy);font-size:17px;font-weight:500;margin:0}.meeting-head p{color:var(--muted);font-size:var(--text-sm);margin:5px 0 0}
.meeting-summary{color:var(--gray-700);font-size:var(--text-md);line-height:1.55;white-space:pre-line;margin:11px 0 0;max-height:100px;overflow:hidden}
.meeting-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.meeting-meta span{font-size:var(--text-xs);background:var(--gray-100);color:var(--gray-600);padding:5px 8px;border-radius:var(--radius-pill)}
.status-planifie{background:var(--gray-150);color:#315d91}.status-realise{background:var(--success-bg);color:var(--success)}.status-annule{background:var(--danger-bg);color:var(--danger)}
.objective-list{display:grid;gap:18px}.objective-card{margin:0!important}.goal-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-top:16px}.goal-item{padding:12px;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-md)}.goal-head{display:grid;gap:6px}.goal-head span{font-size:var(--text-xs);color:var(--muted);font-weight:750}.goal-head strong{font-size:var(--text-md);color:var(--navy)}.goal-track{height:8px;background:var(--gray-200);border-radius:var(--radius-pill);overflow:hidden;margin:10px 0 7px}.goal-track svg{width:100%;height:100%;display:block}.goal-track rect{fill:var(--navy-2)}.goal-item:nth-child(2) rect{fill:var(--sky)}.goal-item:nth-child(3) rect{fill:var(--slate)}.goal-item:nth-child(4) rect{fill:var(--gold-accent)}.goal-item:nth-child(5) rect{fill:var(--success)}.goal-item small{font-size:var(--text-xs);color:var(--muted)}.objective-note{margin-top:14px}
.metrics-six{grid-template-columns:repeat(6,minmax(0,1fr))}.report-grid-three{grid-template-columns:repeat(3,minmax(0,1fr))}.report-filter-form-six{grid-template-columns:1.15fr 1fr 1fr 1fr .8fr .8fr auto}
@media(max-width:1400px){.metrics-six{grid-template-columns:repeat(3,1fr)}.goal-grid{grid-template-columns:repeat(3,1fr)}.report-grid-three{grid-template-columns:1fr 1fr}.report-filter-form-six{grid-template-columns:repeat(4,1fr)}}
@media(max-width:980px){.goal-grid{grid-template-columns:1fr 1fr}.report-grid-three{grid-template-columns:1fr}.report-filter-form-six{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.report-filter-form-six{grid-template-columns:1fr}.meeting-card{grid-template-columns:1fr}.meeting-date{min-height:auto;display:grid;grid-template-columns:auto auto auto;justify-content:start;gap:8px}.meeting-date strong{font-size:var(--text-2xl)}.meeting-date span,.meeting-date small{margin:0;align-self:center}.meeting-head{display:block}.meeting-head .status-pill{margin-top:8px}.goal-grid,.metrics-six{grid-template-columns:1fr}}

/* V7 — catégories produits, rendement cible, fin de rémunération et patrimoine extérieur */
.product-groups{display:grid;gap:18px;min-width:0}
.product-summary-card{background:linear-gradient(135deg,var(--paper),var(--gray-50))}
.product-category-card{padding:0;overflow:hidden}
.product-category-card>.card-title{padding:18px 20px 14px;margin:0;border-bottom:1px solid var(--line)}
.product-category-card>.empty{padding:18px 20px;margin:0}
.product-category-card table{margin:0}
.muted-row{background:var(--gray-50);color:var(--gray-600)}
.muted-row strong,.muted-row a{color:var(--gray-700)}
.status-pill.status-active{background:var(--success-bg);color:var(--success)}
.status-pill.status-ended{background:var(--gray-75);color:var(--muted)}
.status-editor{display:grid;gap:10px;padding:13px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--gray-50)}
.summary-strip{display:flex;flex-wrap:wrap;gap:10px;padding:12px;border-radius:var(--radius-md);background:var(--beige);color:var(--navy);font-size:var(--text-md)}
.summary-strip span{flex:1;min-width:180px}
.report-meta-five{grid-template-columns:repeat(5,1fr)}
.report-meta-six{grid-template-columns:repeat(6,1fr)}
.report-filter-form-six{grid-template-columns:1.1fr .8fr 1fr 1fr 1fr .8fr .8fr auto}
@media(max-width:1400px){.report-meta-five,.report-meta-six{grid-template-columns:repeat(3,1fr)}.report-filter-form-six{grid-template-columns:repeat(4,1fr)}}
@media(max-width:980px){.report-meta-five,.report-meta-six{grid-template-columns:repeat(2,1fr)}.report-filter-form-six{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.report-meta-five,.report-meta-six,.report-filter-form-six{grid-template-columns:1fr}}

/* V8 — périmètres, tris, partenaires et charges */
.scope-switcher{display:inline-flex;align-items:center;padding:3px;background:var(--gray-150);border:1px solid var(--line);border-radius:var(--radius-md);white-space:nowrap}
.scope-switcher a{padding:6px 9px;border-radius:var(--radius-xs);color:var(--gray-600);font-size:var(--text-sm);font-weight:800}
.scope-switcher a.active{background:var(--navy);color:var(--paper);box-shadow:0 3px 9px rgba(22,41,83,.16)}
.space-switcher{margin-right:8px}
.scope-switcher-secondary a{padding:4px 7px;font-size:var(--text-xs);font-weight:700}
.scope-switcher-secondary a.active{background:var(--gray-600);box-shadow:none}
.sortable-table th[role="button"]{cursor:pointer;padding-right:25px;position:relative;user-select:none}
.sortable-table th[role="button"]::after{content:"↕";position:absolute;right:8px;color:var(--gray-500);font-size:var(--text-md)}
.sortable-table th[aria-sort="ascending"]::after{content:"↑";color:var(--navy)}
.sortable-table th[aria-sort="descending"]::after{content:"↓";color:var(--navy)}
.form-section{display:grid;gap:12px;padding:14px;border:1px solid var(--line);background:var(--gray-50);border-radius:var(--radius-md)}
.form-section h3{font-family:var(--font-serif);color:var(--navy);font-size:17px;font-weight:500;margin:0}
.expenses-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:18px}
.expenses-grid>.card{margin:0}
.compact-filter{grid-template-columns:minmax(180px,280px) auto;justify-content:start}
.mini-list{display:grid;gap:8px;margin-top:15px}
.mini-list>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 10px;padding:10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--gray-25)}
.mini-list strong{color:var(--navy);font-size:var(--text-md)}.mini-list span{color:var(--muted);font-size:var(--text-xs)}.mini-list a{grid-column:2;grid-row:1/3;align-self:center;font-size:var(--text-sm);font-weight:800}
@media(max-width:1200px){.topbar{align-items:flex-start}.topbar-actions{flex-wrap:wrap;justify-content:flex-end}.expenses-grid{grid-template-columns:1fr}}
@media(max-width:760px){.scope-switcher{order:3;width:100%;justify-content:stretch}.scope-switcher a{flex:1;text-align:center}.compact-filter{grid-template-columns:1fr}.topbar-actions{display:none}}


/* V9 - marché cible, import Google et lisibilité du reporting */
.bar-name-share{display:flex!important;align-items:baseline;justify-content:flex-start;gap:16px;flex-wrap:wrap}
.bar-name-share>strong{margin-right:4px}.bar-name-share>span{color:var(--muted);font-size:var(--text-md);white-space:nowrap}
.target-legend-positive{background:#e8f4d5;color:#46620b}.target-legend-negative{background:var(--danger-border);color:#9b155d}
.google-import-card{margin-bottom:18px}
.google-import-form{display:grid;grid-template-columns:minmax(170px,.7fr) minmax(260px,1.5fr) auto;gap:12px;align-items:end;margin-top:14px}
.google-import-form button{height:var(--control-height)}
@media(max-width:900px){.google-import-form{grid-template-columns:1fr}}

/* V10 — tableau de bord annuel, allocations AV/PER et IK automatiques */
.sidebar-dashboard-nav{padding-bottom:10px;margin-bottom:4px;border-bottom:1px solid rgba(255,255,255,.12)}
.dashboard-year-card{padding:14px 18px;margin-bottom:18px;background:linear-gradient(135deg,var(--paper),var(--gray-50))}
.dashboard-year-form{display:flex;align-items:end;gap:12px;flex-wrap:wrap}
.dashboard-year-form label{min-width:220px}.dashboard-year-form select{min-width:190px}
.filter-summary{align-self:center;margin-left:auto;padding:7px 11px;border-radius:var(--radius-pill);background:var(--beige);color:var(--navy);font-size:var(--text-sm);font-weight:800}
.bar-product-meta{display:grid;gap:7px;min-width:0;padding-right:18px}
.bar-product-meta>strong{display:block;line-height:1.25;color:var(--navy)}
.bar-product-meta>span{display:block;color:var(--muted);font-size:var(--text-sm);line-height:1.35}
.allocation-weight{width:100px!important;min-width:90px;text-align:right}
.allocation-total{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:var(--radius-md);background:var(--beige);color:var(--navy);font-weight:800}
.valuation-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:16px 0 0}
.valuation-actions span{font-size:var(--text-sm);color:var(--muted)}
.mileage-export-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:end}
.mileage-export-card .compact-filter{margin:0}
.prominent-check{padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--gray-50)}
.form-note{margin:0;color:var(--muted);font-size:var(--text-sm);line-height:1.45}
@media(max-width:900px){.mileage-export-card{grid-template-columns:1fr}.filter-summary{margin-left:0}.dashboard-year-form{align-items:stretch}.dashboard-year-form>*{width:100%}}

/* V11 — navigation dépliable, marché cible exclusif et KYC client */
.sidebar-nav-actions{display:flex;gap:6px;margin:20px 4px 8px;padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.12)}
.sidebar-nav-actions button{flex:1;border:1px solid rgba(255,255,255,.13);border-radius:var(--radius-xs);background:rgba(255,255,255,.05);color:var(--gray-400);padding:6px 5px;font-size:var(--text-2xs);font-weight:800;cursor:pointer}
.sidebar-nav-actions button:hover{background:rgba(255,255,255,.10);color:var(--paper)}
.sidebar-sections{display:grid;gap:8px;overflow-y:auto;min-height:0;padding-right:2px;margin-bottom:14px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.2) transparent}
.sidebar-section{border-top:1px solid rgba(255,255,255,.13);padding-top:5px}
.sidebar-section:last-child{border-bottom:1px solid rgba(255,255,255,.13);padding-bottom:7px}
.sidebar-section-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;border:0;background:transparent;color:var(--gray-450);padding:8px 10px;font-size:var(--text-xs);font-weight:850;letter-spacing:.16em;text-transform:uppercase;cursor:pointer}
.sidebar-section-toggle svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;transition:transform .18s ease}
.sidebar-section.collapsed .sidebar-section-toggle svg{transform:rotate(-90deg)}
.sidebar-section nav{max-height:520px;overflow:hidden;opacity:1;transition:max-height .22s ease,opacity .15s ease}
.sidebar-section.collapsed nav{max-height:0;opacity:0;pointer-events:none}
.sidebar-bottom{flex:0 0 auto}

.client-kyc-layout{display:grid;grid-template-columns:minmax(300px,.85fr) minmax(520px,1.15fr);gap:18px;align-items:start}
.client-kyc-layout>.card{margin:0}
.kyc-status-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;border-radius:var(--radius-md);margin-bottom:15px;border:1px solid var(--line)}
.kyc-status-banner strong,.kyc-status-banner span{display:block}.kyc-status-banner span{font-size:var(--text-sm);margin-top:3px;color:var(--muted)}
.kyc-status-ok{background:var(--success-bg);border-color:var(--success-line);color:var(--success)}
.kyc-status-update{background:var(--warning-bg);border-color:var(--warning-line);color:var(--warning)}
.kyc-status-ko{background:var(--danger-bg);border-color:var(--danger-line);color:var(--danger)}
.kyc-pill{display:inline-flex;align-items:center;gap:6px;border-radius:var(--radius-pill);padding:6px 10px;font-size:var(--text-xs);font-weight:850;white-space:nowrap}
.kyc-pill::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.kyc-pill.kyc-status-ok{background:var(--success-bg)}.kyc-pill.kyc-status-update{background:var(--warning-bg-strong)}.kyc-pill.kyc-status-ko{background:var(--danger-border)}
.kyc-report-card{border-left:4px solid var(--navy)}

@media(max-width:1050px){.client-kyc-layout{grid-template-columns:1fr}}@media(max-width:760px){.sidebar-nav-actions{margin-top:13px}}
.sidebar-sections{flex:1 1 auto}
.export-all-vehicles{display:grid;gap:3px;align-self:center;padding:8px 11px;border-radius:var(--radius-sm);background:var(--gray-100);min-width:210px}.export-all-vehicles strong{font-size:var(--text-md);color:var(--navy)}.export-all-vehicles span{font-size:var(--text-xs);color:var(--muted)}
/* Les champs des blocs KYC sont rattachés au formulaire par l'attribut `form=`
   et vivent donc hors de `.stack-form` : sans cette reprise ils perdaient tout
   le format HODAS (libellé, bordure, focus) et s'affichaient en champs bruts. */
.compliance-section input:not([type=checkbox]):not([type=radio]),.compliance-section select,.compliance-section textarea{width:100%;padding:10px 11px;border:1px solid var(--gray-350);border-radius:var(--radius-sm);background:var(--paper);color:var(--ink);font:inherit;outline:none;transition:.15s ease}
.compliance-section input:not([type=checkbox]):not([type=radio]):focus,.compliance-section select:focus,.compliance-section textarea:focus{border-color:var(--sky);box-shadow:var(--focus-ring)}
/* Lot KYC — conformité en blocs repliables + mini tableau de bord */
.compliance-progress-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.compliance-progress-head span{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.compliance-progress-head strong{font-size:var(--text-md);color:var(--navy)}
.compliance-progress-track{height:8px;border-radius:var(--radius-2xs);background:var(--gray-300);overflow:hidden}.compliance-progress-track svg{display:block;width:100%;height:8px}.compliance-progress-track rect{fill:var(--navy)}
/* Le titre du bloc porte lui-même l'état : vert quand tout est là, orange quand
   c'est en cours ou périmé, rouge quand il manque une pièce. */.switch-line{display:flex!important;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:white}.switch-line span{font-size:var(--text-sm);font-weight:700;color:var(--gray-750)}.switch-line input{width:34px;height:19px;accent-color:var(--navy);flex:0 0 auto}

/* V13 — repli fiable de la navigation */
.sidebar-sections{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  justify-content:flex-start;
  align-content:flex-start;
  gap:8px;
}
.sidebar-section{flex:0 0 auto;min-height:0}
.sidebar-section nav{max-height:none;overflow:visible;opacity:1;transition:opacity .14s ease}
.sidebar-section.collapsed nav{display:none;max-height:0;opacity:0;pointer-events:none}
.sidebar-section.collapsed{padding-bottom:0}

/* V13 — séparation lisible entre montant et pourcentage */
.bar-head>.num{display:flex;align-items:baseline;justify-content:flex-end;gap:12px;white-space:nowrap}
.bar-head>.num strong,.bar-head>.num span{display:inline-block;margin:0}

/* V13 — préparation du circuit documentaire */
.document-automation-hero{margin-bottom:18px}
.document-workflow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}
.document-workflow article{display:flex;align-items:flex-start;gap:11px;padding:14px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper);box-shadow:var(--shadow-soft)}
.document-workflow article>span{display:grid;place-items:center;flex:0 0 28px;height:28px;border-radius:50%;background:var(--navy);color:var(--paper);font-size:var(--text-md);font-weight:850}
.document-workflow strong,.document-workflow small{display:block}
.document-workflow strong{color:var(--navy);font-size:var(--text-md)}
.document-workflow small{margin-top:4px;color:var(--muted);font-size:var(--text-xs);line-height:1.45}
.regulatory-document-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:18px}
.regulatory-document-card{display:grid;grid-template-rows:auto 1fr auto;gap:15px;min-height:330px}
.regulatory-document-code{display:grid;place-items:center;width:54px;height:54px;border-radius:var(--radius-xl);background:linear-gradient(135deg,var(--navy),var(--navy-2));color:var(--paper);font-size:var(--text-lg);font-weight:900;letter-spacing:.06em}
.regulatory-document-card h2{margin:2px 0 9px}
.regulatory-document-card p:not(.eyebrow){color:var(--muted);font-size:var(--text-md);line-height:1.55}
.regulatory-document-card button[disabled]{cursor:not-allowed;opacity:.62}
.document-feature-list{display:grid;gap:8px;margin-top:16px}
.document-feature-list span{display:flex;align-items:flex-start;gap:8px;color:var(--gray-700);font-size:var(--text-sm);line-height:1.4}
.document-feature-list i{font-style:normal;color:var(--success);font-weight:850}
.roadmap-card{margin-top:18px}
.roadmap-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.roadmap-grid span{padding:11px 12px;border:1px solid var(--gray-200);border-radius:var(--radius-sm);background:var(--gray-50);color:var(--gray-700);font-size:var(--text-sm);font-weight:700}

@media(max-width:1050px){
  .document-workflow{grid-template-columns:repeat(2,minmax(0,1fr))}
  .regulatory-document-grid{grid-template-columns:1fr}
  .regulatory-document-card{min-height:0}
}
@media(max-width:680px){
  .document-workflow,.roadmap-grid{grid-template-columns:1fr}
  .bar-head>.num{gap:8px}
}


/* V14 — tableau de bord, produits et espacements */
.dashboard-split{grid-template-columns:repeat(2,minmax(0,1fr))}
.bar-label{display:grid;gap:6px;min-width:0;padding-right:14px}
.bar-label>strong,.bar-label>span{display:block}
.form-top-actions{justify-content:flex-end;margin:0 0 4px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.sri-column{width:66px;white-space:nowrap}
.target-status-column{width:112px;min-width:112px}
.product-category-card table td.target-status-column,.product-category-card table th.target-status-column{padding-left:8px;padding-right:8px}
@media(max-width:1180px){.dashboard-split{grid-template-columns:1fr}}

/* V15 — frais produits */
.form-fieldset { border: 1px solid var(--line, var(--gray-300)); border-radius:var(--radius-lg); padding: 14px; margin: 2px 0 10px; }
.form-fieldset legend { padding: 0 8px; color: var(--navy, var(--navy)); font-weight: 700; }
.form-row.three-columns { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 900px) { .form-row.three-columns { grid-template-columns: 1fr; } }

/* V16 — archives, documents et bibliothèques internes */
.page-heading-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px;flex-wrap:wrap}
.page-heading-actions .back-link{margin:0}
.yield-column{width:88px;min-width:88px;white-space:nowrap}
.documents-column{width:132px;min-width:132px}
.document-badges{display:flex;flex-wrap:wrap;gap:5px;align-items:center}
.document-badges a{display:inline-flex;align-items:center;justify-content:center;min-width:30px;padding:4px 6px;border-radius:var(--radius-xs);background:var(--gray-100);color:var(--navy);font-size:var(--text-2xs);font-weight:850;border:1px solid var(--gray-300)}
.document-badges a:hover{background:var(--beige)}
.muted-inline{color:var(--muted)}
.text-button{border:0;background:transparent;color:#315d83;font:inherit;font-weight:700;padding:2px 0;cursor:pointer}
.text-button:hover{text-decoration:underline}
.bar-label{display:flex!important;align-items:baseline;gap:10px!important;flex-wrap:wrap;padding-right:14px}
.bar-label>strong,.bar-label>span{display:inline-block!important}
.palette-grid{display:grid;grid-template-columns:repeat(6,minmax(100px,1fr));gap:12px}
.palette-grid article{border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden;background:var(--paper);display:grid}
.palette-grid article>span{height:72px;background:var(--swatch)}
.palette-grid strong,.palette-grid small{padding:7px 10px 0}
.palette-grid small{padding-top:0;padding-bottom:9px;color:var(--muted)}
.resource-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.resource-card{border:1px solid var(--line);border-radius:var(--radius-lg);padding:14px;background:var(--gray-25);display:flex;flex-direction:column;gap:7px}
.resource-card h3{margin:0;color:var(--navy);font-size:var(--text-xl)}
.resource-card p,.resource-card small{margin:0;color:var(--muted);word-break:break-word}
.resource-card .row-actions{margin-top:auto;padding-top:8px}
@media(max-width:1100px){.palette-grid{grid-template-columns:repeat(3,1fr)}.resource-card-grid{grid-template-columns:1fr}.documents-column{min-width:105px;width:105px}}
@media(max-width:760px){.palette-grid{grid-template-columns:repeat(2,1fr)}.page-heading-actions{align-items:flex-start}}


/* V16.2 — tableau produits compact et icône PNB en euros */
.metric-icon-currency{font-size:19px;font-weight:850;line-height:1;font-family:Inter,ui-sans-serif,system-ui,sans-serif}
.products-page-layout{grid-template-columns:minmax(270px,315px) minmax(0,1fr)}
.products-compact-table{table-layout:fixed;font-size:var(--text-sm)}
.products-compact-table th{padding:7px 6px;font-size:var(--text-2xs);letter-spacing:.025em}
.products-compact-table td{padding:8px 6px;line-height:1.25}
.products-compact-table td strong{font-size:var(--text-sm);line-height:1.25}
.products-compact-table td small{font-size:8.8px;line-height:1.3;margin-top:2px}
.products-compact-table .product-name-cell strong{font-size:var(--text-base);line-height:1.22}
.products-compact-table .product-name-cell a{display:block;overflow-wrap:anywhere}
.products-compact-table .status-pill{padding:4px 6px;font-size:var(--text-2xs)}
.products-compact-table .document-badges{gap:3px}
.products-compact-table .document-badges a{min-width:25px;padding:3px 4px;font-size:7.5px}
.products-compact-table .text-button{font-size:var(--text-2xs)}
.products-compact-table .compact-archive-button{margin-top:5px}
.products-compact-table .col-product{width:24%}
.products-compact-table .col-sri{width:4.5%}
.products-compact-table .col-target{width:8.5%}
.products-compact-table .col-yield{width:7%}
.products-compact-table .col-fees{width:9%}
.products-compact-table .col-valuation{width:10.5%}
.products-compact-table .col-assets{width:11%}
.products-compact-table .col-documents{width:8%}
.products-compact-table .col-pnb{width:10.5%}
.products-compact-table .col-status{width:7%}
.products-compact-table .sri-column,.products-compact-table .yield-column,.products-compact-table .target-status-column,.products-compact-table .documents-column{width:auto;min-width:0}
.products-compact-table .product-status-cell{white-space:normal}
@media(max-width:1250px){.products-page-layout{grid-template-columns:1fr}}@media(max-width:1250px){.products-compact-table{min-width:980px}}

/* V17 — allocations en pourcentage ou en parts, encours sous-jacents et arbitrages */
.allocation-units{width:120px!important;min-width:105px;text-align:right}
[data-allocation-input-mode="percentage"] .allocation-units-column,
[data-allocation-input-mode="units"] .allocation-percentage-column{display:none!important}
.allocation-form .hero-card{margin-bottom:0}

/* V19 — positions filtrées par catégorie et valorisation portée par les allocations AV / PER */
.allocation-calculated-units-column{min-width:105px}
.allocation-calculated-units{white-space:nowrap}
[data-allocation-input-mode="units"] .allocation-calculated-units-column{display:none!important}

/* V20 — frais produits et DCA */
.product-fees-cell{min-width:150px}
.product-fees-cell>span{display:block;white-space:nowrap;margin:2px 0}
.product-fees-cell>span small{display:inline;margin-left:5px}
.dca-amount-input,.dca-weight-input{min-width:92px}

/* V21 — frais lisibles et dossier patrimonial / espace client */
.product-fees-cell{font-weight:500;color:var(--gray-750)}
.product-fees-cell>span{font-weight:500}
.product-fees-cell>span small{font-size:7px;font-weight:850;letter-spacing:.08em;color:var(--slate);background:var(--gray-100);border-radius:var(--radius-xs);padding:2px 4px;vertical-align:1px}
.fee-report-line{display:block;margin-top:7px;color:var(--navy);font-size:var(--text-md);font-weight:500}
.fee-report-line small{font-size:var(--text-2xs);font-weight:850;letter-spacing:.08em;background:var(--gray-100);border-radius:var(--radius-xs);padding:2px 4px;color:var(--slate)}

.patrimony-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;background:linear-gradient(125deg,var(--gray-50),var(--paper))}
.patrimony-hero h2{margin:3px 0 7px}.patrimony-hero p:not(.eyebrow){margin:0;color:var(--muted);font-size:var(--text-md)}
.patrimony-kpis,.client-portal-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin:18px 0}
.patrimony-kpis article,.client-portal-kpis article{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);padding:14px;box-shadow:var(--shadow-soft)}
.patrimony-kpis span,.client-portal-kpis span{display:block;color:var(--muted);font-size:var(--text-xs)}.patrimony-kpis strong,.client-portal-kpis strong{display:block;color:var(--navy);font-size:var(--text-2xl);margin-top:7px}.patrimony-kpis small,.client-portal-kpis small{display:block;color:var(--muted);font-size:var(--text-2xs);margin-top:4px}
.client-subnav,.client-portal-tabs{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 20px;padding:0;background:transparent;border-radius:0}
.client-subnav a,.client-portal-tabs a{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:9px 15px;border-radius:var(--radius-lg);color:var(--gray-650);font-size:var(--text-base);font-weight:750;background:var(--gray-50);border:1px solid var(--gray-300);box-shadow:0 2px 6px rgba(22,41,83,.03)}
.client-subnav a:hover,.client-portal-tabs a:hover{background:var(--gray-100);color:var(--navy);border-color:var(--gray-350);transform:translateY(-1px)}
.patrimony-section{margin-top:18px;scroll-margin-top:88px}
.patrimony-editor{border:1px solid var(--gray-200);border-radius:var(--radius-md);background:var(--gray-50);margin:12px 0}
.patrimony-editor summary{cursor:pointer;padding:11px 13px;color:var(--navy);font-size:var(--text-sm);font-weight:800;list-style:none}
.patrimony-editor summary::-webkit-details-marker{display:none}.patrimony-editor[open] summary{border-bottom:1px solid var(--gray-200)}.patrimony-editor form{padding:13px}.patrimony-row-value{text-align:right;min-width:210px}.patrimony-row-value .row-actions{justify-content:flex-end;margin-top:6px}
.remuneration-installment[data-status="En retard"],.remuneration-installment[data-status="Écart à vérifier"]{border-left:3px solid var(--danger-strong)}
.remuneration-installment[data-status="Reçu"]{border-left:3px solid var(--success-strong)}
.remuneration-installment[data-status="À encaisser"]{border-left:3px solid #b9770e}
.remuneration-installment[data-bucket="retard"]{border-left:3px solid var(--danger-strong)}
.remuneration-installment[data-bucket="valide"]{border-left:3px solid var(--success-strong)}
.remuneration-installment[data-bucket="avenir"]{border-left:3px solid #b9770e}
.remuneration-partner-schedule{display:grid;gap:18px}
.remuneration-partner-block{display:grid;gap:8px}
.remuneration-partner-head{padding:8px 2px;border-bottom:2px solid var(--navy)}
.remuneration-partner-head strong{color:var(--navy);font-size:var(--text-base);font-weight:850}
.remuneration-partner-head span{display:block;color:var(--muted);font-size:var(--text-xs);margin-top:2px}
.partner-detail-grid .detail-kpi-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}
.partner-engagement-badge{display:inline-block;font-size:var(--text-xs);font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:2px 7px;border-radius:var(--radius-pill)}
.partner-engagement-badge.is-engaged{background:var(--success-bg);color:var(--success)}
.partner-engagement-badge.is-below{background:var(--danger-bg);color:var(--danger-strong)}
.partner-engagement-badge.is-unrated{background:var(--gray-100);color:var(--gray-650)}
.inline-form{display:flex;align-items:flex-end;gap:10px}
.inline-form label{display:grid;gap:4px}
.remuneration-filter-chips{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:12px}
.remuneration-filter-chips .filter-chip{padding:5px 12px;border:1px solid var(--line);border-radius:var(--radius-pill);font-size:var(--text-sm);font-weight:750;color:var(--gray-750);text-decoration:none;background:var(--paper)}
.remuneration-filter-chips .filter-chip.active{background:var(--navy);border-color:var(--navy);color:var(--paper)}.client-portal-panel{margin-top:18px}.client-portal-grid>.client-portal-panel{margin-top:0}.client-position-toolbar input,.client-position-toolbar select{min-height:38px}
.client-simple-list{display:grid;gap:2px}.client-simple-list>div{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--gray-100)}.client-simple-list>div:last-child{border-bottom:0}.client-simple-list strong{color:var(--navy);font-size:var(--text-sm)}.client-simple-list span{display:block;color:var(--muted);font-size:var(--text-xs);margin-top:3px}.client-simple-list>div>strong{white-space:nowrap}

@media(max-width:1250px){.patrimony-kpis,.client-portal-kpis{grid-template-columns:repeat(3,1fr)}}@media(max-width:900px){.patrimony-row-value{min-width:150px}}
@media(max-width:650px){.patrimony-kpis,.client-portal-kpis{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.patrimony-row-value{text-align:left;min-width:0}.patrimony-row-value .row-actions{justify-content:flex-start}}

/* V22 — dossier client, foyer, formulaires modernisés et placements détaillables */
select:not([multiple]){
  appearance:none;
  -webkit-appearance:none;
  border:1px solid var(--gray-350);
  border-radius:var(--radius-md);
  background-color:var(--paper);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23162953' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 10px center;
  background-size:14px;
  padding:9px 34px 9px 11px;
  min-height:var(--control-height);
  color:var(--ink);
  box-shadow:0 1px 2px rgba(22,41,83,.03);
  transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease;
}
select:not([multiple]):hover{border-color:var(--gray-400);background-color:var(--gray-25)}
select:not([multiple]):focus{outline:none;border-color:var(--sky);box-shadow:var(--focus-ring)}
input[type="file"]{border:1px solid var(--gray-350);border-radius:var(--radius-md);background:var(--paper);color:var(--muted);padding:5px;min-height:var(--control-height)}
input[type="file"]::file-selector-button{border:0;border-radius:var(--radius-xs);background:var(--beige);color:var(--navy);font-weight:800;padding:8px 11px;margin-right:9px;cursor:pointer}
.google-import-form label{display:grid;gap:6px;color:var(--gray-800);font-size:var(--text-sm);font-weight:750}
.google-import-form select,.google-import-form input[type="file"]{width:100%}

.client-owner-static{display:flex;flex-direction:column;justify-content:center;min-width:180px;max-width:150px;border-radius:var(--radius-md);padding:7px 11px;border:1px solid var(--line);background:var(--gray-75);line-height:1.15}
.client-owner-static span{font-size:var(--text-sm);font-weight:850;color:var(--navy)}
.client-owner-static small{font-size:var(--text-2xs);color:var(--muted);margin-top:3px}
.client-owner-static.owner-seve{background:var(--warning-bg);border-color:var(--beige)}.client-owner-static.owner-seve span{color:#745b2e}
.client-owner-static.owner-hodas{background:var(--gray-100);border-color:var(--gray-300)}
.client-file-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}
.client-file-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(330px,.85fr);gap:18px;margin-top:18px}
.allocation-support-list{display:grid;gap:0}.allocation-support-list>div{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--gray-100)}.allocation-support-list>div:last-child{border-bottom:0}.allocation-support-list strong{font-size:var(--text-xs);color:var(--navy)}.allocation-support-list span{display:block;font-size:var(--text-2xs);color:var(--muted);margin-top:2px}
.client-position-documents{margin-top:12px;padding-top:10px;border-top:1px solid var(--gray-150)}.client-position-documents>strong{font-size:var(--text-xs);color:var(--navy)}.client-position-documents>div{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}.client-position-documents a{font-size:var(--text-2xs);font-weight:700;padding:5px 7px;border-radius:var(--radius-xs);background:var(--gray-100);color:var(--navy)}

@media(max-width:1100px){.client-file-grid{grid-template-columns:1fr}.client-file-kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.client-owner-static{display:none}}@media(max-width:760px){.client-file-kpis{grid-template-columns:1fr 1fr}}

/* V23 — valorisations, formulaires internes scrollables, marketing visuel */
.sidebar-upload{display:flex;align-items:center;justify-content:center;gap:9px;margin:0 12px 12px;padding:10px 12px;border:1px solid rgba(255,255,255,.28);border-radius:var(--radius-md);color:var(--paper);font-size:var(--text-sm);font-weight:760;text-decoration:none}
.sidebar-upload svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8}
.sidebar-upload:hover,.sidebar-upload.active{background:rgba(119,148,187,.25)}
.sidebar-standalone{padding:0 6px 10px;margin:0 0 6px;border-bottom:1px solid rgba(255,255,255,.12)}
.sidebar-standalone a{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:var(--radius-md);color:var(--gray-300);font-size:var(--text-sm);font-weight:760;text-decoration:none}
.sidebar-standalone a svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8}
.sidebar-standalone a:hover,.sidebar-standalone a.active{background:rgba(119,148,187,.2);color:var(--paper)}.valuation-intro-card{position:sticky;top:12px;z-index:4}
.compact-link-card{margin-top:16px}
.marketing-groups{display:grid;gap:16px}.marketing-resource-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.visual-resource-card{padding:0;overflow:hidden}.resource-preview{display:block;height:155px;background:var(--gray-75);border-bottom:1px solid var(--gray-200)}.resource-preview img{width:100%;height:100%;object-fit:contain;background:var(--paper)}.resource-file-placeholder{height:120px;display:grid;place-items:center;background:linear-gradient(145deg,var(--gray-75),var(--gray-150));border-bottom:1px solid var(--gray-200)}.resource-file-placeholder span{font-size:var(--text-2xl);font-weight:850;color:var(--slate)}.resource-card-body{padding:12px}.resource-card-body h3{margin:0 0 5px}.resource-card-body p{word-break:break-word}.marketing-category{overflow:hidden}
[data-private-structure-field][hidden],[data-private-position-field][hidden]{display:none!important}
@media(max-width:1200px){.marketing-resource-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.marketing-resource-grid{grid-template-columns:1fr}.valuation-intro-card{position:static}}

/* V24 — conformité client, multi-upload KYC et enveloppes. */
.compliance-status-row,.client-compliance-pills{display:flex;flex-wrap:wrap;gap:6px;align-items:center}

/* V24 — conformité, enveloppes et corrections marketing */.marketing-resource-grid img{display:block;width:100%;height:180px;object-fit:contain;background:var(--gray-50)}.resource-preview{display:block;overflow:hidden;border-radius:12px 12px 0 0}.envelope-note{font-size:.78rem;color:var(--muted)}

/* V25 — détail allocation client et formulaire KYC compact */
.allocation-performance-list{display:grid;gap:8px}
.allocation-performance-row{display:grid!important;grid-template-columns:minmax(230px,1.8fr) repeat(4,minmax(105px,.72fr));gap:12px;align-items:center;padding:10px 0!important;border-bottom:1px solid var(--gray-100)}
.allocation-performance-row:last-child{border-bottom:0}
.allocation-fund-identity strong{font-size:var(--text-sm);color:var(--navy)}
.allocation-fund-identity span{display:block;font-size:var(--text-2xs);color:var(--muted);margin-top:2px}
.allocation-fund-metric{text-align:right;min-width:0}
.allocation-fund-metric span{display:block;font-size:7.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:2px}
.allocation-fund-metric strong{display:block;font-size:9.3px;color:var(--navy);white-space:nowrap}
.allocation-fund-metric small{display:block;font-size:var(--text-2xs);margin-top:2px;color:var(--muted)}
.allocation-fund-metric.positive strong,.allocation-fund-metric.positive small{color:var(--success)}
.allocation-fund-metric.negative strong,.allocation-fund-metric.negative small{color:var(--danger)}
.compact-top-save{padding:9px 14px;font-size:.76rem;white-space:nowrap}
@media(max-width:1200px){.allocation-performance-row{grid-template-columns:minmax(200px,1.5fr) repeat(2,minmax(110px,1fr))}.allocation-fund-metric.performance-metric{grid-column:auto}}
@media(max-width:760px){.allocation-performance-row{grid-template-columns:1fr 1fr}.allocation-fund-identity{grid-column:1/-1}.allocation-fund-metric{text-align:left}}@media(max-width:760px){.compact-top-save{width:100%}}

/* V27 — prêts amortissables, co-emprunteurs et immobilier net de dette */
.patrimony-kpis{grid-template-columns:repeat(auto-fit,minmax(145px,1fr))}
.patrimony-real-estate-title{align-items:flex-start}.patrimony-real-estate-summary{display:grid;grid-template-columns:repeat(3,auto);gap:6px 14px;text-align:right;align-items:end}.patrimony-real-estate-summary span{font-size:var(--text-2xs);color:var(--muted)}.patrimony-real-estate-summary span strong{display:block;margin-top:2px;color:var(--navy);font-size:var(--text-md)}.patrimony-real-estate-summary .net-real-estate strong{font-size:var(--text-lg)}.patrimony-real-estate-summary small{grid-column:1/-1;font-size:var(--text-2xs);color:var(--muted)}
.shared-debt-box{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--gray-50);padding:12px}.shared-debt-box h3{margin:2px 0 0;font-size:var(--text-base);color:var(--navy)}
@media(max-width:900px){.patrimony-real-estate-title{flex-direction:column}.patrimony-real-estate-summary{text-align:left;grid-template-columns:1fr 1fr 1fr}}
@media(max-width:620px){.patrimony-real-estate-summary{grid-template-columns:1fr}.patrimony-real-estate-summary small{grid-column:auto}}

/* V28 — comptes externes par parts et fiche fiscale importable */
.external-valuation-box{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--gray-50);padding:12px}.external-valuation-box h3{margin:2px 0 0;font-size:var(--text-base);color:var(--navy)}
.tax-sheet-card{scroll-margin-top:88px}.tax-sheet-title{align-items:flex-start}.tax-import-box{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(220px,.7fr);gap:12px;margin:12px 0 16px;padding:12px;border:1px solid var(--line);border-radius:var(--radius-lg);background:linear-gradient(135deg,var(--gray-50),var(--paper))}
.tax-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.tax-form-column{border:1px solid var(--line);border-radius:var(--radius-lg);padding:13px;background:var(--gray-25)}.tax-form-column h3{font-size:var(--text-base);color:var(--navy);margin:0 0 10px}
@media(max-width:980px){.tax-import-box,.tax-form-grid{grid-template-columns:1fr}}@media(max-width:980px){.external-valuation-box .three-columns{grid-template-columns:1fr}}
.tax-sheet-card{padding:0!important;overflow:hidden}.tax-sheet-summary{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px;cursor:pointer;list-style:none}.tax-sheet-summary::-webkit-details-marker{display:none}.tax-sheet-summary h2{margin:2px 0 4px}.tax-sheet-summary p{margin:0}.tax-sheet-summary-metrics{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:var(--text-2xs)}.tax-sheet-summary-metrics span{display:flex;flex-direction:column;align-items:flex-end}.tax-sheet-summary-metrics strong{font-size:var(--text-md);color:var(--navy);margin-top:2px}.tax-sheet-summary-metrics b{font-size:var(--text-2xl);color:var(--navy);transition:transform .18s ease}.tax-sheet-card[open] .tax-sheet-summary-metrics b{transform:rotate(180deg)}.tax-sheet-body{padding:0 18px 18px;border-top:1px solid var(--gray-200)}.tax-sheet-body>.card-title{margin-top:14px}
@media(max-width:700px){.tax-sheet-summary{align-items:flex-start;flex-direction:column}.tax-sheet-summary-metrics span{align-items:flex-start}}

/* V29 — profil investisseur, simulateurs et portail documentaire. */.profile-radar{display:grid;grid-template-columns:minmax(300px,430px) minmax(220px,1fr);gap:22px;align-items:center}.profile-radar svg{width:100%;max-width:430px;height:auto;margin:auto}.profile-radar text{font-size:9px;fill:var(--muted);font-family:Arial,sans-serif}.radar-ring{fill:none;stroke:var(--gray-200);stroke-width:1}.radar-ring-3,.radar-ring-4{fill:var(--warning-bg-strong)}.radar-ring-5{fill:var(--warning-bg-strong)}.radar-ring-6,.radar-ring-7{fill:var(--danger-border)}.radar-axis{stroke:var(--gray-300);stroke-width:1}.profile-radar [data-radar-value]{fill:rgba(201,154,46,.62);stroke:var(--warning-accent);stroke-width:2}.simulator-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.simulator-workbench{margin-top:18px}.simulator-form{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);gap:20px;align-items:start}.simulator-inputs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.simulator-results{display:grid;gap:10px;position:sticky;top:18px}.simulator-results article{padding:14px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--gray-25)}.simulator-results span{display:block;color:var(--muted);font-size:var(--text-xs)}.simulator-results strong{display:block;color:var(--navy);font-size:19px;margin-top:4px}.simulator-results small{display:block;color:var(--slate);font-size:var(--text-2xs);margin-top:3px}.portal-document-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.portal-document-list{display:grid;gap:7px}.portal-document-list a{display:flex;justify-content:space-between;gap:10px;padding:7px 8px;border-radius:var(--radius-sm);background:var(--paper);border:1px solid var(--gray-200);color:var(--navy);text-decoration:none;font-size:var(--text-xs)}.portal-document-list a span{color:var(--muted);font-size:var(--text-2xs)}.portal-upload-form{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}

/* La palette doit montrer la couleur dans tout le pavé supérieur, indépendamment des variables CSS. */
.palette-grid article>span{display:block;height:82px;border-bottom:1px solid rgba(0,0,0,.06)}

@media(max-width:1100px){.simulator-card-grid{grid-template-columns:repeat(2,1fr)}.simulator-form{grid-template-columns:1fr}.simulator-results{position:static}.profile-radar{grid-template-columns:1fr}.portal-document-grid{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.simulator-card-grid,.simulator-inputs,.portal-document-grid{grid-template-columns:1fr}.profile-radar text{font-size:8px}}

.tax-sheet-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.tax-sheet-actions .tag{margin-left:2px}
@media(max-width:760px){.tax-sheet-title{flex-direction:column}.tax-sheet-actions{justify-content:flex-start}}

/* V31 - Editeur DER et espace client */
.regulatory-card-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;align-self:center}.der-edit-table-wrap{overflow-x:auto}

/* V31 — espace client, questionnaires et palette */
.palette-grid .palette-swatch{display:block;height:86px;border-bottom:1px solid rgba(0,0,0,.08)}
.palette-grid .palette-swatch-1{background:var(--navy)}
.palette-grid .palette-swatch-2{background:var(--navy-2)}
.palette-grid .palette-swatch-3{background:var(--slate)}
.palette-grid .palette-swatch-4{background:var(--sky)}
.palette-grid .palette-swatch-5{background:var(--beige)}
.palette-grid .palette-swatch-6{background:color-mix(in srgb,var(--sky) 12%,var(--paper))}
.client-portal-overview-grid>.client-portal-panel{margin-top:0;min-width:0}
.portal-half-card .profile-radar{grid-template-columns:minmax(230px,.95fr) minmax(180px,.75fr);gap:14px}
.patrimony-pie-layout{display:grid;grid-template-columns:minmax(210px,.9fr) minmax(210px,1.1fr);gap:20px;align-items:center;min-height:285px}
.pie-segment{fill:none;stroke-width:18;transform:rotate(-90deg);transform-origin:60px 60px;stroke-linecap:butt}
.pie-color-1{stroke:var(--navy)}.pie-color-2{stroke:var(--sky)}.pie-color-3{stroke:var(--warning-accent)}.pie-color-4{stroke:var(--slate)}.portal-signed-questionnaires{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.portal-signed-questionnaires>strong{display:block;margin-bottom:8px;color:var(--navy);font-size:var(--text-sm)}.questionnaire-save{width:100%;margin-top:14px}.questionnaire-history-actions{min-width:250px}.questionnaire-history-actions .small-button{white-space:nowrap}@media(max-width:1180px){.portal-half-card .profile-radar{grid-template-columns:minmax(260px,430px) minmax(220px,1fr)}}
@media(max-width:760px){.patrimony-pie-layout,.portal-half-card .profile-radar{grid-template-columns:1fr}}

/* V32 — LCB-FT interne, patrimoine interactif et rapports d'adéquation */.pie-debt-real-estate{stroke:var(--gray-500)}.pie-debt-other{stroke:var(--line-dark)}
.suitability-home-grid{grid-template-columns:330px minmax(0,1fr)}.client-profile-snapshot-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0}.suitability-risk-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.document-timing-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.document-timing-grid label{padding:11px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--gray-25)}.document-timing-grid label>span{font-size:var(--text-xs);color:var(--navy);font-weight:850}.document-timing-grid label:last-child{grid-template-columns:1fr 170px;align-items:end}.suitability-history-actions{min-width:180px}[data-suitability-add-row]{margin-top:4px}
@media(max-width:1180px){.suitability-home-grid{grid-template-columns:1fr}.suitability-risk-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.client-profile-snapshot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.client-profile-snapshot-grid,.suitability-risk-grid,.document-timing-grid{grid-template-columns:1fr}.document-timing-grid label:last-child{grid-template-columns:1fr}}


/* V33 — rapport d'adéquation harmonisé */
.suitability-editor input:not([type="checkbox"]):not([type="radio"]):focus,.suitability-editor select:focus,.suitability-editor textarea:focus{border-color:var(--sky);box-shadow:var(--focus-ring)}
.suitability-person-fields[hidden],[data-suitability-panel][hidden]{display:none!important}.document-toggle{display:flex!important;align-items:center;gap:8px!important;align-self:center}.document-toggle input{width:auto!important}.document-toggle span{font-size:var(--text-sm);color:var(--navy);font-weight:850}.signed-report-section input[type="file"]{padding:8px;background:var(--gray-25)}

/* V35 — espace client net, identité physique, lettre de mission et risques */
.portal-half-card .profile-radar{grid-template-columns:1fr;gap:10px;align-content:start}
.patrimony-pie-layout{grid-template-columns:minmax(150px,185px) minmax(0,1fr);gap:13px;min-height:0;align-items:center}.letter-mission-editor input:focus,.letter-mission-editor select:focus,.letter-mission-editor textarea:focus{border-color:var(--sky);box-shadow:var(--focus-ring)}.mission-type-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:14px}.checkbox-card{display:flex!important;align-items:center!important;gap:8px!important;padding:10px 11px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--gray-25);color:var(--navy)!important;font-weight:800!important}.checkbox-card input{width:auto!important;flex:0 0 auto}@media(max-width:1350px){.patrimony-pie-layout{grid-template-columns:150px minmax(0,1fr)}}@media(max-width:1120px){.portal-half-card .profile-radar{grid-template-columns:minmax(230px,.8fr) minmax(220px,1fr)}}@media(max-width:1120px){.patrimony-pie-layout{grid-template-columns:minmax(170px,220px) minmax(0,1fr)}}@media(max-width:1120px){.mission-type-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.portal-half-card .profile-radar,.patrimony-pie-layout,.mission-type-grid{grid-template-columns:1fr}}

/* V36 — allocation du rapport, lettre de mission et documents client. */
.letter-duration-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:end}
.client-portal-docs .portal-document-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:760px){.letter-duration-row,.client-portal-docs .portal-document-grid{grid-template-columns:1fr}}

/* V37 — Assistant de rendez-vous / transcription audio */
.edit-doc-side{display:grid;gap:18px;min-width:0}
.client-task-list{display:grid;gap:8px}
.client-task-row{display:grid;grid-template-columns:auto 1fr;gap:9px;align-items:start;padding:10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--gray-25)}
.client-task-row form{margin:0}
.client-task-row strong{display:block;font-size:var(--text-sm);color:var(--navy)}
.client-task-row span,.client-task-row small{display:block;font-size:var(--text-xs);color:var(--muted);margin-top:3px;line-height:1.4}@media(max-width:700px){.meeting-recorder-actions>*{width:100%}}

/* V40 — lecture rendez-vous, profil client et champs IA harmonisés. */
.client-detail-profile-card .profile-radar{grid-template-columns:minmax(430px,1.45fr) minmax(280px,.55fr)}
.client-detail-profile-card .profile-radar svg{max-width:650px}
.client-detail-patrimony-card{margin-top:16px}.meeting-detail-grid>.card{margin:0}.meeting-card[data-meeting-detail-url]{cursor:pointer}.meeting-card[data-meeting-detail-url]:hover{border-color:var(--gray-400);box-shadow:0 3px 12px rgba(15,36,68,.05)}.meeting-head h3 a{color:inherit;text-decoration:none}.meeting-head h3 a:hover{text-decoration:underline}
@media(max-width:980px){.client-detail-profile-card .profile-radar,.client-detail-patrimony-card .patrimony-pie-layout{grid-template-columns:1fr}}

/* V41 — référentiel dynamique, agrégateur réglementaire et responsive renforcé. */
*,*::before,*::after{box-sizing:border-box}
.content,.content>*,.card,.form-row>*{min-width:0;max-width:100%}
.page-heading-actions,.topbar,.topbar-actions,.row-actions,.actions{flex-wrap:wrap}
.row-actions{white-space:normal}
.client-profile-patrimony-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:stretch;margin-bottom:16px}
.client-profile-patrimony-row>.card,.client-profile-patrimony-row .patrimony-pie-card{height:100%;margin:0}
.client-profile-patrimony-row .client-detail-profile-card .profile-radar{grid-template-columns:1fr;gap:8px}
.client-profile-patrimony-row .client-detail-profile-card .profile-radar svg{max-width:360px;max-height:250px;margin-inline:auto}
.client-profile-patrimony-row .client-detail-patrimony-card{margin:0;min-width:0}
.questionnaire-auto-profile-note{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px;border:1px solid var(--gray-300);border-radius:var(--radius-sm);background:var(--gray-50)}.questionnaire-result-radar .profile-radar-legend{display:none}
.regulatory-signature-aggregator{margin-bottom:18px}.regulatory-client-picker{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:10px;align-items:end}.regulatory-client-picker label{display:grid;gap:5px;color:var(--navy);font-size:var(--text-xs);font-weight:750}.regulatory-client-picker select{width:100%}
.regulatory-package-form{display:grid;gap:12px;margin-top:16px;padding-top:15px;border-top:1px solid var(--line)}.regulatory-package-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.regulatory-package-head>div{display:grid;gap:3px}.regulatory-package-head strong{color:var(--navy);font-size:var(--text-base)}.regulatory-package-head span{color:var(--muted);font-size:var(--text-xs)}
.regulatory-package-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.regulatory-package-grid>label,.regulatory-package-missing{display:flex;align-items:flex-start;gap:9px;padding:11px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--gray-25);min-width:0}.regulatory-package-grid input{width:auto;margin-top:2px;accent-color:var(--navy)}.regulatory-package-grid span{display:grid;gap:3px;min-width:0}.regulatory-package-grid strong{color:var(--navy);font-size:var(--text-xs);overflow-wrap:anywhere}.regulatory-package-grid small{color:var(--muted);font-size:var(--text-2xs);line-height:1.35;overflow-wrap:anywhere}.regulatory-package-missing{display:grid;gap:3px;opacity:.6}
.asset-class-create-form,.asset-class-edit-form{min-width:0}.asset-class-create-form input,.asset-class-create-form textarea,.asset-class-edit-form input,.asset-class-edit-form textarea{min-width:0;width:100%}
/* Courbe d'évolution du patrimoine. */
.evolution-legend-item{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-xs);color:var(--gray-750)}
.evolution-legend-item i{width:9px;height:9px;border-radius:var(--radius-2xs);flex:0 0 auto}
.evolution-legend-item strong{color:var(--navy);font-weight:800}
.evolution-legend-item small{color:var(--muted);font-size:var(--text-2xs)}
.evolution-legend-item{border:0;background:transparent;cursor:pointer;padding:4px;border-radius:var(--radius-xs)}
.evolution-legend-item[aria-pressed="false"]{opacity:.45;text-decoration:line-through}
.evolution-legend-item:focus-visible{outline:2px solid var(--navy)}
.evolution-event{fill:#a5563d;stroke:var(--paper);stroke-width:1.5}
/* I9 — composant commun des courbes (static/hodas_chart.js) : filets pleins, jamais pointillés */
.hc-grid-line{stroke:var(--gray-200);stroke-width:1}
.hc-grid-line.hc-zero{stroke:var(--gray-550);stroke-width:1.2}
.hc-axis{stroke:var(--gray-550);stroke-width:1}
.hc-axis-tick{stroke:var(--gray-550);stroke-width:1}
.hc-axis-label{fill:var(--muted);font-size:var(--text-md);font-family:inherit}
.hc-observed{stroke:var(--paper);stroke-width:1}
.hc-sight{stroke:var(--navy);stroke-width:1}
.hc-tooltip-event{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;padding:4px 0;border-top:1px solid var(--line)}
.hc-tooltip-event span{color:var(--navy)}
.hc-tooltip-event b{font-weight:400;color:var(--navy);text-align:right;white-space:nowrap}
.hc-tooltip-event b.is-in{color:var(--success-strong)}
.hc-tooltip-event b.is-out{color:var(--danger)}
.hc-tooltip-event em{grid-column:1;font-style:normal;color:var(--slate);font-size:var(--text-xs)}
.evolution-cursor{stroke:var(--slate);stroke-width:1;stroke-dasharray:3 3;pointer-events:none}
/* Import d'un dossier signé : même grille que le sélecteur de client au-dessus,
   avec une colonne dédiée au fichier. Sans classe dédiée les trois contrôles se
   retrouvaient collés sur une seule ligne, libellés compris. */
.regulatory-signed-import .card-title{margin-bottom:14px}
/* Intitulés, champs et aide sur trois lignes communes (subgrid) : la ligne d'aide
   sous « Client » ne décale plus les champs, et le bouton reste centré sur la
   zone de dépôt. */
.regulatory-signed-form{display:grid;grid-template-columns:minmax(240px,1fr) minmax(240px,1fr) auto;grid-template-rows:auto auto auto;gap:5px 12px;align-items:start}
.regulatory-signed-form label{display:grid;grid-row:span 3;grid-template-rows:subgrid;color:var(--navy);font-size:var(--text-xs);font-weight:750;min-width:0}
.regulatory-signed-form label select{align-self:center}
.regulatory-signed-form>button{grid-row:2;grid-column:3;align-self:center}
.regulatory-signed-form label small{display:block;color:var(--muted);font-size:var(--text-2xs);font-weight:600;line-height:1.35}
.regulatory-signed-form select,.regulatory-signed-form input[type=file]{width:100%;padding:9px 11px;border:1px solid var(--gray-350);border-radius:var(--radius-sm);background:var(--paper);color:var(--ink);font:inherit}
.regulatory-signed-form input[type=file]{padding:7px 9px;font-size:var(--text-xs)}
.regulatory-signed-form select:focus,.regulatory-signed-form input[type=file]:focus{border-color:var(--sky);box-shadow:var(--focus-ring);outline:none}
.regulatory-signed-import .form-note{margin-top:12px}
@media(max-width:1100px){.regulatory-signed-form{grid-template-columns:1fr;grid-template-rows:none;gap:12px}.regulatory-signed-form label{grid-row:auto;grid-template-rows:none;gap:5px}.regulatory-signed-form>button{grid-row:auto;grid-column:auto;width:100%}}@media(max-width:1250px){.regulatory-package-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1050px){.client-profile-patrimony-row{grid-template-columns:1fr}}@media(max-width:900px){.regulatory-package-grid{grid-template-columns:1fr}.regulatory-client-picker{grid-template-columns:1fr}.regulatory-client-picker button{width:100%}}
@media(max-width:760px){.topbar-actions{display:flex!important;width:100%;justify-content:flex-start}.topbar-actions .button-ghost{display:inline-flex}.content{width:100%;overflow-x:hidden}.table-wrap{max-width:100%;overflow-x:auto}.questionnaire-auto-profile-note,.regulatory-package-head{align-items:stretch;flex-direction:column}.questionnaire-auto-profile-note .button-secondary,.regulatory-package-head .primary{width:100%}}
.asset-class-manager-intro{margin-bottom:16px}.asset-class-create-form{display:grid;grid-template-columns:minmax(150px,1fr) repeat(3,minmax(120px,.65fr)) minmax(220px,1.5fr) auto;gap:9px;align-items:end}.asset-class-create-form label,.asset-class-edit-form label{display:grid;gap:5px;color:var(--navy);font-size:var(--text-xs);font-weight:750}.asset-class-list{display:grid;gap:10px}.asset-class-row{display:flex;gap:10px;align-items:end}.asset-class-risks-field textarea{min-height:58px;resize:vertical}.asset-class-row>form:last-child{padding-bottom:9px}
@media(max-width:1350px){.asset-class-create-form,.asset-class-edit-form{grid-template-columns:repeat(3,minmax(0,1fr))}.asset-class-risks-field{grid-column:span 2}}
@media(max-width:760px){.asset-class-create-form,.asset-class-edit-form{grid-template-columns:1fr}.asset-class-risks-field{grid-column:auto}.asset-class-row{align-items:stretch;flex-direction:column}.asset-class-row>form:last-child{padding:0}}

/* V42 — listes pleine largeur et formulaires de création en fenêtre. */
.list-only-layout{display:grid;gap:16px;min-width:0}.list-page-actions{margin-bottom:0}.hodas-modal{width:min(760px,calc(100vw - 32px));max-height:calc(100vh - 40px);overflow:auto;border:0;border-radius:var(--radius-2xl);padding:0;background:transparent;box-shadow:0 24px 80px rgba(12,30,64,.28)}.hodas-modal.wide-modal{width:min(920px,calc(100vw - 32px))}.hodas-modal::backdrop{background:rgba(9,25,52,.48);backdrop-filter:blur(2px)}.hodas-modal>.card{margin:0;border-radius:var(--radius-2xl)}.modal-close-row{position:sticky;top:8px;z-index:6;display:flex;justify-content:flex-end;height:0;padding:0 10px}.icon-close{display:grid;place-items:center;width:36px;height:36px;border:0;border-radius:50%;background:var(--navy);color:white;font-size:24px;line-height:1;cursor:pointer}.modal-heading{padding:28px 28px 0;background:white}.modal-form{padding:20px 28px 28px;background:white}.hodas-modal .card{box-shadow:none;border:0}.hodas-modal .card>form:last-child{margin-bottom:0}
.client-filter-form{display:grid;grid-template-columns:minmax(190px,1.4fr) repeat(5,minmax(130px,1fr)) auto;gap:10px;align-items:end}.compact-filter-card{margin-bottom:0}.client-filter-form label{min-width:0}.client-filter-form input,.client-filter-form select{width:100%;min-width:0}
.meeting-relations-fields{display:grid;gap:14px;padding:14px;border:1px solid var(--line);border-radius:var(--radius-xl);background:var(--gray-25)}.meeting-relations-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.8fr);gap:14px}.meeting-client-picker,.participant-option-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px;margin-top:6px}.compact-check-card{padding:10px 12px;min-height:auto}.compact-check-card span{display:grid;gap:2px}.compact-check-card small{font-size:var(--text-md);color:var(--muted);font-weight:500}.field-label{display:block;color:var(--navy);font-weight:750;margin-bottom:4px}.meeting-participant-picker{display:grid;gap:8px}.participant-option[hidden]{display:none!important}
.asset-class-card-list{display:grid;gap:12px}.asset-class-card{position:relative}.asset-class-fields{grid-template-columns:80px minmax(170px,1.1fr) minmax(150px,.8fr) minmax(150px,.8fr) minmax(170px,.9fr) minmax(260px,1.5fr);align-items:start}.asset-class-risks-field{grid-column:auto}.asset-class-delete-form{position:absolute;right:22px;bottom:22px}
@media(max-width:1300px){.client-filter-form{grid-template-columns:repeat(3,minmax(160px,1fr)) auto}.asset-class-fields{grid-template-columns:repeat(3,minmax(0,1fr))}.asset-class-risks-field{grid-column:span 2}.asset-class-delete-form{position:static;margin-top:8px}.meeting-relations-grid{grid-template-columns:1fr}}
@media(max-width:760px){.hodas-modal,.hodas-modal.wide-modal{width:calc(100vw - 16px);max-height:calc(100vh - 16px)}.client-filter-form{grid-template-columns:1fr}.asset-class-fields{grid-template-columns:1fr}.asset-class-risks-field{grid-column:auto}.meeting-client-picker,.participant-option-grid{grid-template-columns:1fr}.modal-heading{padding:22px 18px 0}.modal-form{padding:16px 18px 22px}}

/* V43 — filtres harmonisés et sélecteur multiple de participants. */
.list-filter-card{margin:0 0 18px;padding:18px 20px;box-shadow:var(--shadow-soft)}
.list-filter-card .card-title{align-items:center;margin-bottom:12px}
.list-filter-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;align-items:end}.list-filter-form .filter-search-field{grid-column:span 2}
.list-filter-form label{display:grid;gap:6px;min-width:0;color:var(--gray-800);font-size:var(--text-md);font-weight:750}
.list-filter-form input,.list-filter-form select{width:100%;min-width:0;height:var(--control-height);padding:9px 11px;border:1px solid var(--gray-350);border-radius:var(--radius-sm);background-color:var(--paper);color:var(--ink);font:inherit;outline:none;transition:.15s ease;box-shadow:none}
.list-filter-form input:focus,.list-filter-form select:focus{border-color:var(--sky);box-shadow:var(--focus-ring)}
.list-filter-form select{padding-right:34px}
.filter-search-field input{padding-left:34px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2371869f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.35-4.35'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:11px center}

.multi-select-dropdown{position:relative;width:100%}
.multi-select-dropdown>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:var(--control-height);padding:10px 12px;border:1px solid var(--gray-350);border-radius:var(--radius-sm);background:var(--paper);color:var(--ink);font-size:var(--text-base);font-weight:650;cursor:pointer}
.multi-select-dropdown>summary::-webkit-details-marker{display:none}
.multi-select-dropdown[open]>summary{border-color:var(--sky);box-shadow:0 0 0 3px rgba(119,148,187,.12)}
.multi-select-chevron{color:var(--slate);font-size:16px;transition:transform .15s ease}.multi-select-dropdown[open] .multi-select-chevron{transform:rotate(180deg)}
.multi-select-panel{position:absolute;z-index:45;left:0;right:0;top:calc(100% + 6px);padding:10px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:0 16px 36px rgba(22,41,83,.16);max-height:330px;overflow:auto}
.multi-select-search{display:grid;gap:5px;margin-bottom:8px;color:var(--gray-800);font-size:var(--text-sm);font-weight:750}.multi-select-search input{width:100%;padding:9px 10px;border:1px solid var(--gray-350);border-radius:var(--radius-sm);outline:none}.multi-select-search input:focus{border-color:var(--sky);box-shadow:0 0 0 3px rgba(119,148,187,.12)}
.participant-option-list{display:grid;gap:4px}.multi-select-option{display:flex;align-items:flex-start;gap:9px;padding:9px 10px;border-radius:var(--radius-sm);cursor:pointer}.multi-select-option:hover{background:var(--gray-75)}.multi-select-option input{margin-top:2px}.multi-select-option span{display:grid;gap:2px}.multi-select-option strong{font-size:var(--text-md);color:var(--navy)}.multi-select-option small{font-size:var(--text-sm);color:var(--muted)}.multi-select-empty{margin:8px 0;padding:12px!important}

@media(max-width:1250px){.list-filter-form{grid-template-columns:repeat(3,minmax(180px,1fr))}.filter-search-field{grid-column:span 2}}
@media(max-width:800px){.list-filter-card{padding:15px}.list-filter-form{grid-template-columns:1fr}.list-filter-form .filter-search-field{grid-column:auto}.multi-select-panel{position:static;margin-top:6px;box-shadow:var(--shadow-soft)}}

/* V44 — rendez-vous : sélection unique des participants et formulaire modal */
.compact-relations-grid{grid-template-columns:minmax(0,420px)}
@media(max-width:760px){.compact-relations-grid{grid-template-columns:1fr}}

/* V48 — fiches partenaires */
.table-primary-link{color:var(--navy,var(--navy));text-decoration:none}.table-primary-link:hover{text-decoration:underline}
.partner-detail-grid{grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);align-items:start}
.partner-detail-grid .detail-hero-card{grid-column:1 / -1}
.detail-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:20px}
.detail-kpi-grid>div,.detail-list>div{border:1px solid var(--border,var(--gray-300));border-radius:var(--radius-xl);padding:12px 14px;background:var(--paper)}
.detail-kpi-grid span,.detail-list span{display:block;color:var(--muted,var(--gray-600));font-size:.72rem;text-transform:uppercase;letter-spacing:.055em;margin-bottom:5px}
.detail-kpi-grid strong,.detail-list strong{color:var(--navy,var(--navy))}
.partner-score-list strong{font-size:1.05rem}.partner-documents-layout{align-items:start}.form-card-narrow{max-width:980px;margin-inline:auto}
@media(max-width:900px){.partner-detail-grid{grid-template-columns:1fr}.detail-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.detail-kpi-grid{grid-template-columns:1fr}}

/* V49 — Fiche patrimoniale : outil + réintégration IA. */
.patrimonial-import-list{display:grid;gap:12px}
.patrimonial-import-row{display:grid;grid-template-columns:32px minmax(0,1fr);gap:12px;padding:16px;border:1px solid var(--border,var(--gray-300));border-radius:var(--radius-xl);background:var(--paper)}
.patrimonial-import-check{padding-top:4px}
.patrimonial-import-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.patrimonial-import-head>div{display:grid;gap:3px}.patrimonial-import-head span{font-size:.85rem;color:var(--muted,var(--gray-600))}
.patrimonial-import-values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}
.patrimonial-import-values>div{padding:10px 12px;border-radius:var(--radius-lg);background:var(--gray-50);display:grid;gap:4px;min-width:0}
.patrimonial-import-values span,.patrimonial-import-source>span{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted,var(--gray-600));font-weight:700}
.patrimonial-import-values strong{overflow-wrap:anywhere}
.patrimonial-import-source{margin-top:12px}.patrimonial-import-source blockquote{margin:6px 0 0;padding:10px 12px;border-left:3px solid #d7c7a8;background:var(--paper);border-radius:0 10px 10px 0}.patrimonial-import-source small{display:block;margin-top:6px;color:var(--muted,var(--gray-600))}
.client-contact-summary,.client-portal-contact{display:block;margin-top:5px;overflow-wrap:anywhere}@media(max-width:980px){.patrimonial-import-values{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.patrimonial-import-values{grid-template-columns:1fr}.patrimonial-import-head{flex-direction:column}}

/* V50 — arbitrage d'allocation et avis d'impôt IA. */
.arbitrage-target-table input {
  min-width: 92px;
  width: 100%;
  box-sizing: border-box;
}
.arbitrage-new-supports {
  display: grid;
  gap: 10px;
  margin: 14px 0;
}
.arbitrage-new-support-row {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) minmax(130px, 180px) auto;
  gap: 12px;
  align-items: end;
  padding: 12px;
  border: 1px solid var(--line, var(--gray-300));
  border-radius:var(--radius-xl);
  background: var(--paper);
}
.arbitrage-new-support-row label,
.arbitrage-new-support-row select,
.arbitrage-new-support-row input { min-width: 0; width: 100%; box-sizing: border-box; }
.arbitrage-metrics {
  display: grid;
  grid-template-columns: repeat(5, minmax(130px, 1fr));
  gap: 10px;
  margin-top: 16px;
}
.arbitrage-metrics article {
  padding: 12px 14px;
  border: 1px solid var(--line, var(--gray-300));
  border-radius:var(--radius-xl);
  background: var(--paper);
}
.arbitrage-metrics span { display: block; font-size: .76rem; color: var(--muted, var(--muted)); margin-bottom: 4px; }
.arbitrage-saved-metrics {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  align-items: center;
  margin-top: 12px;
  padding: 10px 12px;
  border-radius:var(--radius-lg);
  background: rgba(237,227,210,.55);
  font-size: .82rem;
}
.tax-declarant-map { margin: 4px 0 18px; }
.tax-declarant-map .tag.warning { background: rgba(198, 124, 33, .14); color: #8a5410; }
.tax-ai-review-group { margin-bottom: 18px; }
.tax-ai-target-select {
  display: grid;
  gap: 4px;
  margin: 10px 0 0;
  max-width: 320px;
  font-size:var(--text-2xs);
  font-weight: 700;
  color: var(--navy);
}
.tax-ai-review-list { display: grid; gap: 12px; }
.tax-ai-review-item {
  display: grid;
  grid-template-columns: auto minmax(180px, .7fr) minmax(220px, 1fr) minmax(220px, 1.2fr);
  gap: 12px;
  align-items: start;
  padding: 14px;
  border: 1px solid var(--line, var(--gray-300));
  border-radius:var(--radius-xl);
  background: var(--paper);
}
@media (max-width: 1180px) {
  .arbitrage-metrics { grid-template-columns: repeat(3, minmax(130px, 1fr)); }
  .tax-ai-review-item { grid-template-columns: auto 1fr 1fr; }
  .tax-ai-review-item > :last-child { grid-column: 2 / -1; }
}
@media (max-width: 760px) {
  .arbitrage-new-support-row,
  .tax-ai-review-item,
  .arbitrage-metrics { grid-template-columns: 1fr; }
  .tax-ai-review-item > :last-child { grid-column: auto; }
}
.tax-ai-review-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 14px;
  align-items: start;
  padding: 14px;
  border: 1px solid var(--line, var(--gray-300));
  border-radius:var(--radius-xl);
  background: var(--paper);
}
.tax-ai-review-main { min-width: 0; }
.tax-ai-review-main .patrimonial-import-values { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); }
@media (max-width: 760px) {
  .tax-ai-review-row { grid-template-columns: 1fr; }
}
.patrimony-flow-summary{display:flex;gap:18px;flex-wrap:wrap;text-align:right;align-items:flex-end}.patrimony-flow-summary span{font-size:var(--text-2xs);color:var(--muted)}.patrimony-flow-summary strong{display:block;margin-top:2px;color:var(--navy);font-size:var(--text-base)}.patrimony-subsection{margin-top:16px;padding-top:14px;border-top:1px solid var(--gray-200)}.real-estate-charge-box,.credit-details-box{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--gray-50);padding:12px}.real-estate-charge-box h3,.credit-details-box h3{margin:2px 0 0;font-size:var(--text-base);color:var(--navy)}
@media(max-width:760px){.patrimony-flow-summary{text-align:left}.patrimony-flow-summary span{min-width:140px}}

/* V51 — impression de la vue client au format HODAS */
@media print{
  @page{size:A4 portrait;margin:13mm 12mm 15mm}}@media print{
  .client-space-preview-page .client-portal-hero{grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:14px 16px;border-radius:var(--radius-md);box-shadow:none;background:var(--navy)!important;break-inside:avoid}.client-space-preview-page .client-portal-hero h2{font-size:20px}.client-space-preview-page .client-portal-hero p:not(.eyebrow){font-size:var(--text-2xs)}.client-space-preview-page .client-portal-total{min-width:185px}.client-space-preview-page .client-portal-total strong{font-size:20px}.client-space-preview-page .client-portal-total span,.client-space-preview-page .client-portal-total small{font-size:7.5px}}@media print{.client-space-preview-page .client-portal-panel{margin-top:8px;padding:10px!important;border-radius:var(--radius-sm);box-shadow:none!important;break-inside:avoid;page-break-inside:avoid}}

/* V52 — Simulateurs HODAS détaillés */

/* Groupes de champs du panneau de saisie. */
.sim-check{display:flex;align-items:center;gap:9px;color:var(--gray-700);font-size:var(--text-sm);font-weight:700;cursor:pointer;padding:4px 0}
.sim-check input{width:16px;height:16px;accent-color:var(--navy);cursor:pointer}
.sim-hint{margin:8px 0 0;color:var(--muted);font-size:var(--text-xs);line-height:1.55}

/* V53 — Arbitrages, historique et leads */
.arbitrage-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;background:linear-gradient(135deg,var(--navy),var(--navy-2));color:var(--paper)}.arbitrage-hero h2,.arbitrage-hero p{color:var(--paper)}.arbitrage-hero .eyebrow{color:var(--gray-300)}.arbitrage-hero-total{min-width:170px;padding:13px 17px;border:1px solid rgba(255,255,255,.22);border-radius:var(--radius-lg);text-align:right;background:rgba(255,255,255,.08)}.arbitrage-hero-total span{display:block;font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.08em;color:var(--gray-300)}.arbitrage-hero-total strong{display:block;margin-top:3px;font-size:23px;color:var(--paper)}
.arbitrage-wizard{display:grid;gap:16px}.arbitrage-stepper{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:2px 0}.arbitrage-stepper button{display:grid;grid-template-columns:34px 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;text-align:left;padding:12px 14px;border:1px solid var(--gray-300);border-radius:var(--radius-lg);background:var(--paper);color:var(--gray-600);cursor:pointer}.arbitrage-stepper button>span{grid-row:1/3;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--gray-100);color:var(--slate);font-weight:900}.arbitrage-stepper button strong{font-size:var(--text-md);color:var(--navy)}.arbitrage-stepper button small{font-size:var(--text-2xs);color:var(--muted)}.arbitrage-stepper button.active{border-color:var(--sky);box-shadow:0 5px 16px rgba(22,41,83,.08);background:var(--gray-50)}.arbitrage-stepper button.active>span{background:var(--navy);color:var(--paper)}
.arbitrage-step[hidden]{display:none!important}.arbitrage-stage-table input{width:105px;text-align:right}.arbitrage-step-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:16px;padding-top:14px;border-top:1px solid var(--gray-200)}.arbitrage-step-footer>span{font-size:var(--text-xs);color:var(--muted)}.arbitrage-live-balance,.arbitrage-final-total{min-width:150px;padding:9px 12px;border-radius:var(--radius-md);background:var(--gray-100);text-align:right}.arbitrage-live-balance span,.arbitrage-final-total span{display:block;font-size:var(--text-2xs);color:var(--muted)}.arbitrage-live-balance strong,.arbitrage-final-total strong{display:block;margin-top:2px;color:var(--navy);font-size:17px}.arbitrage-comparison-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:0 0 16px}.arbitrage-comparison-grid article{padding:13px;border:1px solid var(--gray-200);border-radius:var(--radius-md);background:var(--gray-25)}.arbitrage-comparison-grid span{display:block;font-size:var(--text-2xs);color:var(--muted)}.arbitrage-comparison-grid strong{display:block;margin-top:5px;color:var(--navy);font-size:var(--text-base)}.arbitrage-comparison-grid b{font-weight:850}.arbitrage-operation-card{margin-top:16px;padding:16px;border:1px solid var(--gray-200);border-radius:var(--radius-lg);background:var(--gray-25)}.arbitrage-operation-card .card-title{margin-bottom:10px}
.arbitrage-history-list{display:grid;gap:12px}.arbitrage-history-list.compact{gap:9px}.arbitrage-history-card{padding:15px;border:1px solid var(--gray-200);border-radius:var(--radius-lg);background:var(--paper)}.arbitrage-history-card.is-highlighted{border-color:var(--sky);box-shadow:0 0 0 3px rgba(127,151,187,.14)}.arbitrage-history-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.arbitrage-history-head>div:first-child{display:grid;gap:3px}.arbitrage-history-head strong{color:var(--navy);font-size:var(--text-md)}.arbitrage-history-head span{font-size:var(--text-2xs);color:var(--muted)}.arbitrage-history-movements{display:grid;grid-template-columns:1fr 1fr .8fr;gap:10px;margin-top:12px;padding-top:11px;border-top:1px solid var(--gray-100)}.arbitrage-history-movements>div{display:grid;align-content:start;gap:4px}.arbitrage-history-movements>div>span{font-size:7.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--slate);font-weight:850}.arbitrage-history-movements strong{font-size:var(--text-xs);color:var(--navy-2)}.arbitrage-history-movements strong small,.arbitrage-history-movements small{font-size:7.5px;color:var(--muted);font-weight:500}.arbitrage-history-note{margin:10px 0 0;padding:8px 10px;border-radius:var(--radius-sm);background:var(--gray-50);color:var(--gray-650);font-size:var(--text-2xs)}
.lead-hero-actions{display:flex;gap:8px;align-items:center}.lead-contact-link{word-break:break-word}
@media(max-width:900px){.arbitrage-comparison-grid{grid-template-columns:1fr 1fr}.arbitrage-history-movements{grid-template-columns:1fr}.arbitrage-history-head{flex-direction:column}.arbitrage-hero{align-items:flex-start;flex-direction:column}.arbitrage-hero-total{text-align:left}}
@media(max-width:650px){.arbitrage-stepper{grid-template-columns:1fr}.arbitrage-step-footer{align-items:stretch;flex-direction:column}.arbitrage-step-footer .row-actions{width:100%;flex-direction:column}.arbitrage-step-footer .row-actions>*{width:100%}.arbitrage-comparison-grid{grid-template-columns:1fr}.arbitrage-stage-table input{width:90px}}

/* V54 — arbitrage en parts / pourcentage et formulaires HODAS. */
.arbitrage-wizard .arbitrage-stage-table input.hodas-number-input,
.arbitrage-wizard .arbitrage-operation-card input,
.arbitrage-wizard .arbitrage-operation-card select,
.arbitrage-wizard .arbitrage-operation-card textarea,
.arbitrage-wizard .arbitrage-add-support select{
  width:100%;min-width:0;padding:9px 10px;border:1px solid var(--gray-350);border-radius:var(--radius-sm);background:var(--paper);color:var(--ink);outline:none;box-shadow:none;transition:.15s ease
}
.arbitrage-wizard .arbitrage-stage-table input.hodas-number-input:focus,
.arbitrage-wizard .arbitrage-operation-card input:focus,
.arbitrage-wizard .arbitrage-operation-card select:focus,
.arbitrage-wizard .arbitrage-operation-card textarea:focus,
.arbitrage-wizard .arbitrage-add-support select:focus{border-color:var(--sky);box-shadow:var(--focus-ring)}
.arbitrage-wizard .arbitrage-stage-table input.hodas-number-input{width:116px;height:36px;text-align:right;font-variant-numeric:tabular-nums;font-weight:700;color:var(--navy)}
.arbitrage-percent-input{position:relative;display:inline-flex;align-items:center;min-width:116px}
.arbitrage-percent-input input{padding-right:29px!important}
.arbitrage-percent-input>span{position:absolute;right:10px;color:var(--slate);font-size:var(--text-sm);font-weight:750;pointer-events:none}
.arbitrage-dual-table th,.arbitrage-dual-table td{vertical-align:middle}
.arbitrage-dual-table td.num strong{font-variant-numeric:tabular-nums}
.arbitrage-dual-table td.num small{font-size:var(--text-2xs);text-align:right}
.arbitrage-warning{padding:11px 13px;margin-bottom:13px;border:1px solid var(--warning-bg-strong);border-left:4px solid var(--gold-accent);border-radius:var(--radius-sm);background:var(--warning-bg);color:#6d5a34;font-size:var(--text-sm);line-height:1.45}
.arbitrage-live-balance small{display:block;margin-top:3px;color:var(--muted);font-size:7.5px}
.arbitrage-add-support{display:grid;grid-template-columns:minmax(250px,1fr) minmax(300px,1.25fr) auto;gap:12px;align-items:end;margin-top:14px;padding:14px 15px;border:1px dashed var(--line-dark);border-radius:var(--radius-lg);background:var(--gray-50)}
.arbitrage-add-support>div{display:grid;gap:3px}.arbitrage-add-support>div>strong{font-size:var(--text-sm);color:var(--navy)}.arbitrage-add-support>div>small{font-size:var(--text-2xs);color:var(--muted)}
.arbitrage-add-support label{display:grid;gap:6px;color:var(--gray-800);font-size:var(--text-sm);font-weight:750}
.arbitrage-new-row{background:var(--gray-25)}.arbitrage-new-row:hover{background:var(--gray-50)}.arbitrage-remove-new{display:block;margin-top:4px;padding:0;font-size:var(--text-2xs)}
.arbitrage-operation-card{background:linear-gradient(180deg,var(--gray-25) 0%,var(--gray-50) 100%)}
.arbitrage-operation-card label{display:grid;gap:6px;color:var(--gray-800);font-size:var(--text-sm);font-weight:750}
.arbitrage-operation-card textarea{min-height:92px;resize:vertical;line-height:1.45}
.arbitrage-auto-amounts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0}
.arbitrage-auto-amounts article{padding:13px 14px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--paper);box-shadow:0 5px 14px rgba(22,41,83,.035)}
.arbitrage-auto-amounts span,.arbitrage-auto-amounts strong,.arbitrage-auto-amounts small{display:block}
.arbitrage-auto-amounts span{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.055em;color:var(--slate);font-weight:800}
.arbitrage-auto-amounts strong{margin-top:6px;color:var(--navy);font-size:var(--text-xl);font-variant-numeric:tabular-nums}
.arbitrage-auto-amounts small{margin-top:4px;color:var(--muted);font-size:7.5px;line-height:1.35}
@media(max-width:1100px){.arbitrage-add-support{grid-template-columns:1fr 1fr}.arbitrage-add-support>button{grid-column:2}.arbitrage-auto-amounts{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.arbitrage-add-support{grid-template-columns:1fr}.arbitrage-add-support>button{grid-column:auto;width:100%}.arbitrage-auto-amounts{grid-template-columns:1fr}.arbitrage-wizard .arbitrage-stage-table input.hodas-number-input,.arbitrage-percent-input{width:100px;min-width:100px}}

/* V55 — arbitrage pré-trade : poids libéré, montant à replacer et workflow brouillon/finalisation. */
.arbitrage-title-with-balance{align-items:flex-start;gap:18px}
.arbitrage-reduce-balance{min-width:190px;padding:11px 14px;background:linear-gradient(145deg,var(--gray-75),var(--gray-100));border:1px solid var(--gray-300)}
.arbitrage-reduce-balance small b{color:var(--navy);font-weight:850}
.arbitrage-replace-dashboard{display:grid;grid-template-columns:repeat(2,minmax(130px,1fr));gap:8px;min-width:420px}
.arbitrage-replace-dashboard article{padding:10px 12px;border:1px solid var(--gray-300);border-radius:var(--radius-md);background:var(--gray-50);text-align:right}
.arbitrage-replace-dashboard span,.arbitrage-replace-dashboard strong{display:block}
.arbitrage-replace-dashboard span{font-size:7.5px;text-transform:uppercase;letter-spacing:.045em;color:var(--slate);font-weight:800}
.arbitrage-replace-dashboard strong{margin-top:3px;color:var(--navy);font-size:var(--text-xl);font-variant-numeric:tabular-nums}
.arbitrage-replace-dashboard .is-emphasis{background:var(--gray-100);border-color:var(--gray-350)}
.arbitrage-replace-dashboard .is-amount{background:linear-gradient(145deg,var(--navy),var(--navy-2));border-color:var(--navy)}
.arbitrage-replace-dashboard .is-amount span{color:var(--gray-300)}.arbitrage-replace-dashboard .is-amount strong{color:var(--paper)}
.arbitrage-draft-note{display:flex;gap:12px;align-items:flex-start;margin-top:16px;padding:12px 14px;border:1px solid var(--gray-300);border-left:4px solid var(--sky);border-radius:var(--radius-md);background:var(--gray-50)}
.arbitrage-draft-note strong{white-space:nowrap;color:var(--navy);font-size:var(--text-sm)}.arbitrage-draft-note span{color:var(--gray-600);font-size:var(--text-xs);line-height:1.5}
.arbitrage-status{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border-radius:var(--radius-pill);font-size:7.5px;font-weight:850;text-transform:uppercase;letter-spacing:.04em}
.arbitrage-status.is-draft{background:var(--warning-bg-strong);color:var(--warning-strong);border:1px solid var(--warning-line)}.arbitrage-status.is-final{background:var(--success-bg);color:var(--success);border:1px solid var(--success-line)}
.arbitrage-finalize-form{display:inline-flex;margin:0}
@media(max-width:1100px){.arbitrage-title-with-balance{flex-direction:column}.arbitrage-replace-dashboard{width:100%;min-width:0}}
@media(max-width:700px){.arbitrage-replace-dashboard{grid-template-columns:1fr 1fr}.arbitrage-draft-note{flex-direction:column}.arbitrage-reduce-balance{width:100%;text-align:left}}

/* V61 — leads : potentiel commercial, multi-produits et import/export */
.compliance-progress-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px;font-size:var(--text-sm);color:var(--navy)}
.compliance-progress-head strong{font-size:var(--text-lg)}
.compliance-progress-track{height:8px;border-radius:var(--radius-pill);background:var(--gray-100);overflow:hidden}@media (max-width: 720px){.client-main-nav a,.client-portal-tabs a,.button-secondary,.button-ghost,.primary,.button-danger{width:100%}}


/* V63 — harmonisation fiche client */
.client-file-kpis{margin:18px 0 14px}
.client-file-grid{align-items:stretch}
.client-file-grid>.card{height:100%}
.client-simple-list>div,.relationship-list>article,.arbitrage-history-card{padding-block:12px}
.client-arbitrage-history-card .card-title,
.arbitrage-history-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap}

/* V64 — alignements fiche client, arbitrages et vue allocation */
.client-file-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;width:100%}
.client-file-grid>.card{min-width:0;height:100%;display:flex;flex-direction:column}
.client-file-grid>.card>.client-simple-list,.client-file-grid>.card>.relationship-list{flex:1}
.client-file-grid .card-title{min-height:58px;align-items:flex-start}
.client-file-kpis{width:100%;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.client-file-kpis>article{min-width:0}
.arbitrage-draft-actions{position:relative}
.arbitrage-draft-actions>summary{list-style:none;cursor:pointer;border:1px solid var(--gray-300);border-radius:var(--radius-md);background:var(--gray-50);color:var(--navy);padding:8px 11px;font-size:var(--text-md);font-weight:800}
.arbitrage-draft-actions>summary::-webkit-details-marker{display:none}
.arbitrage-draft-action-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:20;min-width:210px;padding:9px;border:1px solid var(--gray-300);border-radius:var(--radius-lg);background:var(--paper);box-shadow:0 14px 30px rgba(22,41,83,.14);display:grid;gap:7px}
.arbitrage-draft-action-menu form,.arbitrage-draft-action-menu button{width:100%}
@media(max-width:1100px){
  .client-file-grid{grid-template-columns:1fr}}
@media(max-width:700px){
  .client-file-kpis,.allocation-view-kpis{grid-template-columns:1fr 1fr}}@media(max-width:700px){
  .arbitrage-draft-action-menu{position:static;margin-top:7px;box-shadow:none}
}

/* V67 — immobilier : prix d'achat et historique des valorisations */
.real-estate-list .real-estate-asset-card{display:grid!important;grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr);gap:14px 24px;align-items:start}
.real-estate-value-meta{display:flex;gap:14px;flex-wrap:wrap;margin-top:9px}.real-estate-value-meta span{font-size:var(--text-sm);color:var(--muted)}.real-estate-value-meta span strong{display:inline;color:var(--navy);font-size:var(--text-md);margin-left:3px}
@media(max-width:850px){.real-estate-list .real-estate-asset-card{grid-template-columns:1fr}}

/* ================= Anonymiseur de documents =================
   Deux colonnes : liste des éléments détectés à gauche, aperçu du document
   masqué à droite. Charte HODAS, aucune couleur importée. */
.anonymizer-form input[type=file]{padding:9px 10px;border:1px dashed var(--line-dark);border-radius:var(--radius-sm);background:var(--gray-25);width:100%}

/* ==================================================================
   V68 — Suivi, échéances et registres de conformité
   ================================================================== */

/* Cloche de suivi : <details> natif, donc aucun script requis. */
.followup-bell{position:relative}
.followup-bell>summary{display:inline-flex;align-items:center;gap:7px;list-style:none;cursor:pointer;padding:7px 12px;border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--paper);color:var(--navy);font-size:var(--text-md);font-weight:750;white-space:nowrap}
.followup-bell>summary::-webkit-details-marker{display:none}
.followup-bell>summary:hover{border-color:var(--line-dark);background:var(--gray-50)}
.followup-bell>summary svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.followup-bell[open]>summary{border-color:var(--navy-2);box-shadow:0 0 0 3px rgba(31,57,113,.10)}
.followup-badge{display:inline-flex;align-items:center;justify-content:center;min-width:19px;height:19px;padding:0 5px;border-radius:var(--radius-pill);font-size:var(--text-sm);font-weight:850;color:var(--paper);background:var(--warning)}
.followup-badge.is-late{background:var(--danger)}
.followup-panel{position:absolute;right:0;top:calc(100% + 8px);z-index:60;width:min(400px,86vw);padding:14px;border:1px solid var(--line);border-radius:var(--radius-xl);background:var(--paper);box-shadow:0 18px 44px rgba(22,41,83,.18)}
.followup-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.followup-panel-head h3{margin:3px 0 0;font-size:var(--text-lg);color:var(--navy)}
.followup-panel-counts{display:grid;gap:4px;justify-items:end}
.followup-chip{padding:3px 8px;border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:800;background:var(--gray-100);color:var(--slate);white-space:nowrap}
.followup-chip.severity-late{background:var(--danger-bg);color:var(--danger)}
.followup-chip.severity-soon{background:var(--warning-bg);color:var(--warning)}
.followup-panel-list{display:grid;gap:2px;margin:8px 0;max-height:min(52vh,380px);overflow-y:auto}
.followup-panel-row{display:flex;align-items:flex-start;gap:9px;padding:9px 8px;border-radius:var(--radius-sm);text-decoration:none;color:inherit}
.followup-panel-row:hover{background:var(--gray-50)}
.followup-panel-text{display:grid;gap:2px;min-width:0}
.followup-panel-text strong{font-size:var(--text-md);color:var(--navy);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.followup-panel-text small{font-size:var(--text-xs);color:var(--muted)}
.followup-dot{flex:0 0 auto;width:7px;height:7px;margin-top:4px;border-radius:50%;background:var(--slate)}
.followup-panel-row.severity-late .followup-dot{background:var(--danger)}
.followup-panel-row.severity-soon .followup-dot{background:var(--warning)}
.followup-panel-row.severity-info .followup-dot{background:var(--sky)}
.followup-panel-link{display:block;padding-top:9px;border-top:1px solid var(--line);font-size:var(--text-sm);font-weight:750;color:var(--navy-2)}
.followup-panel-note{margin:0 0 8px;font-size:var(--text-sm);color:var(--muted)}
.sidebar-count{margin-left:auto;padding:1px 7px;border-radius:var(--radius-pill);background:var(--danger);color:var(--paper);font-size:var(--text-xs);font-weight:850}

/* Écran de suivi */
.followup-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}
.followup-kpi{display:grid;gap:3px;margin:0!important;border-left:4px solid var(--line-dark)}
.followup-kpi span{font-size:var(--text-xs);color:var(--muted);font-weight:750}
.followup-kpi strong{font-size:26px;color:var(--navy);line-height:1.1}
.followup-kpi small{font-size:var(--text-xs);color:var(--slate)}
.followup-kpi.severity-late{border-left-color:var(--danger)}
.followup-kpi.severity-soon{border-left-color:var(--warning)}
.followup-kpi.severity-info{border-left-color:var(--sky)}
.followup-group{margin-bottom:16px}
.followup-source{display:block;color:var(--slate);font-size:var(--text-xs)}
.followup-row-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.followup-snooze-form{display:flex;align-items:center;gap:6px}
.followup-snooze-form select{padding:5px 8px;font-size:var(--text-sm)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* Vue KYC & conformité : blocs repliables, regroupement par client. */
details.followup-group>summary{cursor:pointer;list-style:none;align-items:center}
details.followup-group>summary::-webkit-details-marker{display:none}
/* En-tête aligné : titre à gauche, pastille et chevron groupés à droite, centrés
   verticalement et à la même place d'un bloc à l'autre. */
details.followup-group>summary>.tag{margin-left:auto;flex:0 0 auto;min-width:34px;text-align:center}
details.followup-group:not([open])>summary{margin-bottom:0}
details.followup-group>summary::after{content:"";flex:0 0 auto;width:8px;height:8px;margin:0 8px 0 6px;border-right:2px solid var(--navy-2);border-bottom:2px solid var(--navy-2);transform:rotate(-45deg);transition:transform .18s ease}
details.followup-group[open]>summary::after{transform:rotate(45deg)}
.followup-kpi.severity-late strong{color:var(--danger)}
a.followup-kpi{text-decoration:none}

/* Pastilles d'état de revue, partagées avec la fiche client. */
.review-ok{background:var(--success-bg);border-color:var(--success-line);color:var(--success)}
.review-soon{background:var(--warning-bg);border-color:var(--warning-line);color:var(--warning)}
.review-late{background:var(--danger-bg);border-color:var(--danger-line);color:var(--danger)}
.review-none{background:var(--gray-75);border-color:var(--line);color:var(--slate)}
.review-paused{background:var(--gray-75);border-color:var(--line);color:var(--muted)}
.status-pill.severity-late{background:var(--danger-bg);color:var(--danger)}

/* Fiche client — bloc de suivi */
.review-confirmations{border:1px solid var(--line);border-radius:var(--radius-md);padding:12px 13px}
.review-confirmations legend{padding:0 6px;font-size:var(--text-xs);font-weight:800;color:var(--muted)}

/* Registres de conformité */
.field-help{display:block;margin-top:4px;font-size:var(--text-xs);color:var(--muted);font-weight:500}
.wide-modal{max-width:min(920px,94vw)}

@media(max-width:1100px){
  .followup-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){
  .followup-row-actions{justify-content:flex-end}
  .followup-panel{position:fixed;left:12px;right:12px;top:64px;width:auto}
}

/* ================= V68 — alignement des cartes dans les grilles =================
   `.card + .card { margin-top: 18px }` (ligne 87) sert à espacer les cartes
   empilées dans le flux normal de la page. Dès qu'un conteneur passe en
   `display:grid`, cette marge s'ajoute au `gap` du conteneur : la 2e carte
   (et les suivantes) descendent de 18 px, dépassent leur ligne de grille et ne
   sont donc plus alignées avec la carte voisine. Trois conteneurs avaient déjà
   été rustinés au cas par cas (`.expenses-grid`, `.client-kyc-layout`,
   `.meeting-detail-grid`) ; on neutralise ici la marge pour tous les conteneurs
   qui gèrent déjà leur propre espacement via `gap`. */
.anonymizer-workspace>.card,
.arbitrage-wizard>.card,
.assistant-review-form>.card,
.assistant-review-grid>.card,
.client-file-grid>.card,
.client-kyc-layout>.card,
.client-portal-grid>.card,
.client-profile-patrimony-row>.card,
.dashboard-split>.card,
.der-editor-form>.card,
.detail-grid>.card,
.edit-doc-layout>.card,
.edit-doc-side>.card,
.expenses-grid>.card,
.followup-kpis>.card,
.grid-2>.card,
.grid-form-list>.card,
.list-only-layout>.card,
.marketing-groups>.card,
.meeting-detail-grid>.card,
.objective-list>.card,
.patrimonial-tool-grid>.card,
.product-groups>.card,
.questionnaire-layout>.card,
.regulatory-document-grid>.card,
.report-grid>.card,
.social-layout>.card,
.tools-grid>.card,
.two-column-layout>.card,
.valuation-category-stack>.card{margin-top:0}

/* `.detail-grid` (fiche partenaire) et `.two-column-layout` (lettres de mission)
   étaient utilisés dans les gabarits sans jamais être déclarés en CSS : les
   `grid-template-columns` posés par `.partner-detail-grid` et
   `.suitability-home-grid` restaient sans effet et les cartes s'empilaient sur
   toute la largeur au lieu de former deux colonnes. */
.detail-grid,
.two-column-layout{display:grid;gap:18px;align-items:start;margin-top:18px;min-width:0}

/* ================= Recherche globale =================
   Barre unique dans l'en-tête : clients, produits, procédures, simulateurs et
   écrans. Palette HODAS, panneau de résultats groupés navigable au clavier. */
.global-search{position:relative;flex:1 1 260px;min-width:0;max-width:520px;display:flex;align-items:center;gap:9px;padding:0 12px;height:var(--control-height);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--paper);box-shadow:var(--shadow-soft);transition:.16s ease}
.global-search:focus-within{border-color:var(--sky);box-shadow:var(--focus-ring)}
.global-search-icon{width:17px;height:17px;flex:0 0 auto;fill:none;stroke:var(--slate);stroke-width:1.8;stroke-linecap:round}
.global-search input{flex:1;min-width:0;border:0;background:transparent;color:var(--ink);font-size:var(--text-base);outline:none}
.global-search input::placeholder{color:var(--gray-500)}
.global-search input::-webkit-search-cancel-button{cursor:pointer}
.global-search-shortcut{flex:0 0 auto;padding:3px 7px;border:1px solid var(--line);border-radius:var(--radius-xs);background:var(--gray-50);color:var(--slate);font-family:inherit;font-size:var(--text-xs);font-weight:750;letter-spacing:.02em}
.global-search:focus-within .global-search-shortcut{display:none}

.global-search-panel{position:absolute;top:calc(100% + 8px);left:0;right:0;z-index:40;max-height:min(72vh,560px);overflow-y:auto;padding:7px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper);box-shadow:0 20px 46px rgba(22,41,83,.16)}
.global-search-group{padding:4px 0}
.global-search-group+.global-search-group{border-top:1px solid var(--gray-100);margin-top:4px}
.global-search-group>p{margin:6px 10px 5px;color:var(--slate);font-size:var(--text-xs);font-weight:850;letter-spacing:.14em;text-transform:uppercase}
.global-search-item{border-radius:var(--radius-sm)}
.global-search-item.is-active{background:var(--gray-75);box-shadow:inset 2px 0 0 var(--gold-accent)}
.global-search-hit{display:flex;align-items:center;gap:12px;width:100%;padding:8px 10px;border-radius:var(--radius-sm);color:inherit;text-decoration:none;cursor:pointer;transition:.12s ease}
.global-search-hit:hover{background:var(--gray-75)}
.global-search-hit strong{display:block;color:var(--ink);font-size:var(--text-base);font-weight:500;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.global-search-hit strong mark{background:none;color:inherit;text-decoration:underline;text-decoration-color:var(--gold-accent);text-underline-offset:3px}
.global-search-hit small{display:block;margin-top:2px;color:var(--muted);font-size:var(--text-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.global-search-hit>div{flex:1;min-width:0}
.global-search-glyph,.global-search-avatar{flex:0 0 30px;height:30px;display:grid;place-items:center;border:1px solid var(--line);background:var(--paper);color:var(--navy);font-size:var(--text-md)}
.global-search-glyph{border-radius:var(--radius-sm)}
.global-search-glyph.is-gold{border-color:var(--gold-accent);color:var(--gold-ink)}
.global-search-avatar{border-radius:var(--radius-pill);color:var(--slate);font-size:var(--text-xs);letter-spacing:.04em}
.global-search-enter{flex:0 0 auto;padding:2px 7px;border:1px solid var(--line);border-radius:var(--radius-xs);background:var(--gray-50);color:var(--slate);font-family:inherit;font-size:var(--text-xs);opacity:0;transition:.12s ease}
.global-search-item.is-active .global-search-hit:not(:hover) .global-search-enter,.global-search-hit.is-active .global-search-enter{opacity:1}
.global-search-chips{display:none;flex-wrap:wrap;gap:6px;padding:0 10px 9px 52px}
.global-search-item.is-active .global-search-chips{display:flex}
.global-search-chip{padding:5px 11px;border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--paper);color:var(--ink);font-size:var(--text-sm);text-decoration:none;white-space:nowrap;transition:.12s ease}
.global-search-chip:hover{border-color:var(--slate)}
.global-search-chip.is-active{border-color:var(--navy);box-shadow:inset 0 0 0 1px var(--navy)}
.global-search-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 14px;margin:6px -7px -7px;padding:9px 16px;border-top:1px solid var(--gray-100);color:var(--muted);font-size:var(--text-xs)}
.global-search-keys{display:flex;flex-wrap:wrap;gap:6px 14px}
.global-search-keys kbd{margin-right:5px;padding:1px 5px;border:1px solid var(--line);border-radius:var(--radius-2xs);background:var(--gray-50);color:var(--slate);font-family:inherit;font-size:var(--text-xs)}
.global-search-clear{border:0;background:none;padding:0;color:var(--slate);font:inherit;font-size:var(--text-xs);cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.global-search-clear:hover{color:var(--navy)}
@media(max-width:700px),(pointer:coarse){.global-search-keys,.global-search-enter{display:none}.global-search-foot:not(:has(.global-search-clear)){display:none}.global-search-foot{justify-content:flex-end}.global-search-chip{padding:8px 13px;font-size:var(--text-base)}.global-search-chips{padding-left:10px}}
.global-search-empty,.global-search-status{padding:22px 14px;text-align:center;color:var(--muted);font-size:var(--text-md);line-height:1.6}
.global-search-empty strong{display:block;color:var(--ink);margin-bottom:4px;font-size:var(--text-base)}

@media(max-width:1200px){.global-search-shortcut{display:none}}
@media(max-width:900px){.global-search{max-width:none;flex-basis:180px}.global-search input{font-size:var(--text-base)}}
@media(max-width:760px){
  .topbar{flex-wrap:wrap}
  .global-search{order:3;flex:1 1 100%;max-width:none;margin-top:4px}
}
@media print{.global-search{display:none!important}}

/* --- barre de configuration --- */
.rp-field{display:grid;gap:5px;min-width:0}
.rp-field>span{color:var(--slate);font-size:var(--text-xs);font-weight:800;letter-spacing:.11em;text-transform:uppercase}
.rp-field select,.rp-field input{padding:8px 10px;border:1px solid var(--gray-350);border-radius:var(--radius-sm);background-color:var(--paper);color:var(--ink);font-size:var(--text-base);outline:none;max-width:220px}
.rp-field select:focus,.rp-field input:focus{border-color:var(--sky);box-shadow:var(--focus-ring)}
.rp-field.rp-metric select{font-weight:750;color:var(--navy)}
.rp-bar-spacer{flex:1 1 auto}
.rp-chart-types{display:inline-flex;border:1px solid var(--gray-350);border-radius:var(--radius-sm);overflow:hidden}
.rp-chart-types button{padding:8px 10px;border:0;background:var(--paper);color:var(--slate);cursor:pointer;font-size:var(--text-md);font-weight:700;display:grid;place-items:center}
.rp-chart-types button+button{border-left:1px solid var(--gray-200)}
.rp-chart-types button[aria-pressed="true"]{background:var(--navy);color:var(--paper)}
.rp-chart-types svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.rp-toggle{display:inline-flex;align-items:center;gap:8px;color:var(--navy-2);font-size:var(--text-md);font-weight:750;cursor:pointer;white-space:nowrap;padding-bottom:8px}
.rp-toggle input{width:15px;height:15px;accent-color:var(--navy);cursor:pointer}
.rp-more{border:1px solid var(--gray-300);background:var(--gray-50);border-radius:var(--radius-sm);padding:8px 12px;color:var(--navy);font-size:var(--text-md);font-weight:750;cursor:pointer}
.rp-more[aria-expanded="true"]{background:var(--navy);color:var(--paper);border-color:var(--navy)}

/* --- rangée de filtres avancés, repliable --- */
.rp-filters{display:none;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px 14px;padding:14px 16px;background:var(--gray-25);border:1px solid var(--line);border-radius:var(--radius-lg)}
.rp-filters.is-open{display:grid}
.rp-filters .rp-field select{max-width:none;width:100%}
.rp-filters-actions{grid-column:1/-1;display:flex;gap:8px}

/* --- vignettes KPI --- */
.rp-kpi{position:relative;padding:15px 16px 12px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper);box-shadow:var(--shadow-soft);cursor:pointer;transition:.15s ease;overflow:hidden}
.rp-kpi:hover{border-color:var(--gray-400);transform:translateY(-1px)}
.rp-kpi.is-active{border-color:var(--navy);box-shadow:0 0 0 2px rgba(22,41,83,.12)}
.rp-kpi>span{display:block;color:var(--slate);font-size:var(--text-sm);font-weight:750}
.rp-kpi>strong{display:block;margin-top:6px;font-family:var(--font-serif);color:var(--navy);font-size:22px;font-weight:500;line-height:1.1}
.rp-kpi-delta{display:inline-flex;align-items:center;gap:3px;margin-top:6px;font-size:var(--text-sm);font-weight:800;border-radius:var(--radius-pill);padding:2px 7px}
.rp-kpi-delta.up{background:var(--success-bg);color:var(--success)}

.rp-kpi-delta.down{background:var(--danger-bg);color:var(--danger)}
.rp-kpi-delta.flat{background:var(--gray-100);color:var(--muted)}
.rp-kpi-spark{position:absolute;right:0;bottom:0;width:82px;height:34px;opacity:.5}
.rp-kpi-spark svg{width:100%;height:100%;display:block}
.rp-kpi-spark path{fill:none;stroke:var(--sky);stroke-width:2}

/* moteur de graphique */
.rp-chart{width:100%;display:block;overflow:visible}
.rp-chart .grid-line{stroke:var(--gray-100);stroke-width:1}
.rp-chart .axis-label{fill:var(--muted);font-size:var(--text-xs)}
.rp-chart .series-line{fill:none;stroke:var(--navy-2);stroke-width:2.4;stroke-linejoin:round;stroke-linecap:round}
.rp-chart .series-line.is-compare{stroke:var(--gray-400);stroke-dasharray:5 4;stroke-width:2}
.rp-chart .series-area{fill:url(#rpArea);opacity:.85}
.rp-chart .series-dot{fill:var(--navy-2)}
.rp-chart .bar{fill:var(--sky)}
.rp-chart .bar.is-compare{fill:var(--gray-300)}
.rp-chart .bar:hover,.rp-chart .bar.is-hover{fill:var(--navy-2)}
.rp-chart .bar-negative{fill:#d8a0a4}
.rp-chart .donut-seg{stroke:var(--paper);stroke-width:2}
.rp-chart .hover-guide{stroke:var(--line-dark);stroke-width:1;stroke-dasharray:3 3}
.rp-chart-empty{padding:40px 16px;text-align:center;color:var(--muted);font-size:var(--text-md)}
.rp-chart-legend{display:flex;flex-wrap:wrap;gap:14px;padding:0 18px 14px;color:var(--muted);font-size:var(--text-sm)}
.rp-chart-legend span{display:inline-flex;align-items:center;gap:6px}
.rp-chart-legend i{width:12px;height:3px;border-radius:var(--radius-2xs);background:var(--navy-2)}
.rp-chart-legend i.compare{background:var(--gray-400)}

/* tooltip (position via CSSOM, pas de style inline en HTML) */
.rp-tooltip{position:absolute;pointer-events:none;z-index:5;background:var(--navy);color:var(--paper);border-radius:var(--radius-sm);padding:7px 10px;font-size:var(--text-md);line-height:1.5;box-shadow:0 10px 24px rgba(22,41,83,.28);opacity:0;transition:opacity .1s ease;white-space:nowrap}
.rp-tooltip.is-visible{opacity:1}
.rp-tooltip b{display:block;font-size:var(--text-sm);color:var(--gray-400);font-weight:700}

/* --- répartition + objectifs côte à côte --- */
.rp-panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:10px}
.rp-panel-head select{padding:6px 9px;border:1px solid var(--gray-350);border-radius:var(--radius-xs);background-color:var(--paper);font-size:var(--text-md);color:var(--navy-2);font-weight:700;outline:none}
.rp-break-row{display:grid;grid-template-columns:minmax(90px,1.1fr) minmax(0,2fr) minmax(70px,auto);gap:10px;align-items:center;font-size:var(--text-md)}
.rp-break-row>span:first-child{color:var(--ink);font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rp-break-track{height:12px;border-radius:var(--radius-xs);background:var(--gray-100);overflow:hidden}
.rp-break-fill{height:100%;border-radius:var(--radius-xs);background:linear-gradient(90deg,var(--sky),var(--navy));min-width:2px}
.rp-break-row>b{text-align:right;color:var(--navy);font-variant-numeric:tabular-nums;font-weight:750}
.rp-break-row small{color:var(--muted);font-weight:600}
.rp-obj-card{border:1px solid var(--line);border-left:3px solid var(--beige);border-radius:var(--radius-md);padding:12px 14px;background:var(--gray-25)}
.rp-obj-card.is-current{border-left-color:var(--navy)}
.rp-obj-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:8px}
.rp-obj-head strong{color:var(--navy);font-size:var(--text-base)}
.rp-obj-head span{color:var(--muted);font-size:var(--text-xs)}
.rp-obj-line{display:grid;grid-template-columns:minmax(80px,auto) minmax(0,1fr) minmax(96px,auto);gap:9px;align-items:center;font-size:var(--text-sm);padding:4px 0}
.rp-obj-line>span:first-child{color:var(--muted)}
.rp-obj-line>b{text-align:right;color:var(--ink);font-variant-numeric:tabular-nums}
.rp-obj-bar{height:9px;border-radius:var(--radius-xs);background:var(--gray-100);overflow:hidden;position:relative}
.rp-obj-bar i{position:absolute;left:0;top:0;bottom:0;border-radius:var(--radius-xs);background:linear-gradient(90deg,var(--sky),var(--navy))}
.rp-obj-bar.ahead i{background:linear-gradient(90deg,#8fc4a6,var(--success))}
.rp-obj-bar.behind i{background:linear-gradient(90deg,#e0b48f,var(--warning))}
.rp-obj-pace{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--navy);opacity:.55}

/* --- vues sauvegardées --- */
.rp-views{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.rp-view-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--gray-300);border-radius:var(--radius-pill);background:var(--gray-50);color:var(--navy-2);font-size:var(--text-md);font-weight:700;cursor:pointer}
.rp-view-chip:hover{border-color:var(--sky)}
.rp-view-chip.is-active{background:var(--navy);color:var(--paper);border-color:var(--navy)}
.rp-view-chip button{border:0;background:none;color:inherit;cursor:pointer;font-size:var(--text-lg);line-height:1;opacity:.6;padding:0}
.rp-view-chip button:hover{opacity:1}@media(max-width:760px){
  .rp-field select,.rp-field input{max-width:none;width:100%}
  .rp-bar-spacer{display:none}}
@media print{
  .rp-bar,.rp-filters,.rp-more,.rp-views,.rp-chart-types,.rp-toggle{display:none!important}}

/* ================= V70 — Réseaux sociaux : pipeline + calendrier éditorial ================= */

.social-filters{display:flex;flex-wrap:wrap;gap:10px;align-items:end;margin-bottom:16px;padding:14px;background:var(--gray-50);border:1px solid var(--line);border-radius:var(--radius-lg)}
.social-filters label{display:flex;flex-direction:column;gap:4px;font-size:var(--text-sm);color:var(--muted);font-weight:700}
.social-filters label span{text-transform:uppercase;letter-spacing:.03em}
.social-filters input,.social-filters select{padding:7px 9px;border:1px solid var(--line);border-radius:var(--radius-sm);font-size:var(--text-base);background:var(--paper)}

/* Calendrier éditorial */
@media print{.social-tabs,.social-filters,.social-actions,.social-detail-danger,.edito-cal-head a{display:none!important}}

/* Échéances documentaires (V71). */
.review-horizon.review-late{color:var(--danger)}
.review-horizon.review-soon{color:var(--warning-strong)}
.review-horizon.review-ok{color:var(--success)}

/* S1 : journal des données sortantes (écran d'audit). */
.egress-target{display:block;margin-top:2px;color:var(--muted);font-size:var(--text-xs);word-break:break-all}

/* D4 — composant partagé de détention */
.holders-editor .holder-row{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}
/* Brouillons de position issus d'un rapport d'adéquation signé */
.position-drafts-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.position-drafts-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--gray-25)}.position-drafts-list li>div:first-child{display:grid;gap:2px}.position-drafts-list small{color:var(--muted)}

/* H2 — Design system : tons des pastilles, aide de champ, page de référence (/tools/design-system). */
.status-pill.tone-neutral{background:var(--gray-100);color:var(--gray-650)}
.status-pill.tone-info{background:var(--gray-100);color:var(--navy-2)}
.status-pill.tone-success{background:var(--success-bg);color:var(--success)}
.status-pill.tone-warning{background:var(--warning-bg);color:var(--warning)}
.status-pill.tone-danger{background:var(--danger-bg);color:var(--danger)}
.stack-form .field-help{color:var(--text-muted);font-size:var(--text-sm);font-weight:500;line-height:1.45}
.ds-swatch{height:56px;border-radius:var(--radius-md);border:1px solid var(--border-default)}
.ds-radius{height:56px;background:var(--surface-muted);border:1px solid var(--border-input)}
/* Liseré doré des cartes d'import Gemini et d'export kilométrique (décision du 29.09) :
   même construction que .metric-card, droit et rogné par l'arrondi de la carte. */
.google-import-card,.mileage-export-card{position:relative;overflow:hidden}
.google-import-card::before,.mileage-export-card::before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--gold-accent)}
/* Zone de dépôt des fichiers (app.js, docs/specs/DEPOT_FICHIERS.md) : on y glisse le
   fichier, ou on clique pour ouvrir le sélecteur. Le vrai champ couvre toute la zone. */
.file-picker{position:relative;display:flex;align-items:center;gap:12px;width:100%;min-height:76px;padding:12px 14px;border:1.5px dashed var(--gray-350);border-radius:var(--radius-md);background:var(--gray-25);color:var(--muted);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:border-color .15s,background-color .15s}
.file-picker:hover{border-color:var(--sky);background:var(--paper)}
.file-picker:focus-within{border-color:var(--sky);box-shadow:var(--focus-ring)}
.file-picker.is-dragover{border-color:var(--sky);border-style:solid;background:color-mix(in srgb,var(--sky) 12%,var(--paper))}
.file-picker-icon{flex:0 0 auto;display:grid;place-items:center;width:40px;height:40px;border-radius:var(--radius-pill);background:var(--beige);color:var(--navy)}
.file-picker.is-dragover .file-picker-icon{background:var(--sky);color:var(--paper)}
.file-picker-text{display:flex;flex-direction:column;gap:2px;min-width:0}
.file-picker-prompt{color:var(--navy);font-size:var(--text-base);font-weight:700;line-height:1.3}
.file-picker.is-large{min-height:132px;justify-content:center;flex-direction:column;text-align:center}
.file-picker.is-large .file-picker-text{align-items:center}
.file-picker.is-large .file-picker-icon{width:48px;height:48px}
.file-picker-browse{color:var(--muted);font-weight:500}
.file-picker-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);font-weight:650}
.file-picker-name::before{content:"✓ ";color:var(--success)}
.file-picker.has-file{border-style:solid;border-color:var(--success-border);background:var(--success-bg)}
.file-picker-hint{font-size:var(--text-xs);color:var(--muted)}
.file-picker-error{font-size:var(--text-xs);color:var(--danger-strong);font-weight:650}
.file-picker input[type="file"]{position:absolute;inset:0;width:100%;height:100%;min-height:0;margin:0;padding:0;border:0;opacity:0;cursor:pointer}
[data-file-drop].is-dragover{outline:2px dashed var(--sky);outline-offset:2px;background:color-mix(in srgb,var(--sky) 12%,var(--paper))}
/* Cartes d'import Gemini et d'export kilométrique : champs et bouton à la même hauteur,
   ombre du bouton adoucie, note détachée des champs et texte secondaire plus contrasté. */
.google-import-card .card-subtitle,.google-import-card .form-note,.mileage-export-card .card-subtitle,.mileage-export-card .export-all-vehicles span{color:var(--gray-650)}
.google-import-card .form-note{margin:var(--space-3) 0 0;font-size:var(--text-sm)}
.mileage-export-card{margin-bottom:18px}

/* H3 — Harmonisation : champs de saisie à la hauteur des listes et des boutons. */
:where(.stack-form,.report-filter-form,.list-filter-form,.client-filter-form,.google-import-form) input:where(:not([type=checkbox],[type=radio],[type=file],[type=hidden],[type=range],[type=color])){min-height:var(--control-height)}

/* H8 — Mobile : mêmes composants qu'au bureau, adaptés au doigt et à l'écran étroit. */
.rp-panel-head{flex-wrap:wrap}.rp-panel-head select{max-width:100%;min-width:0}
.rp-field select,.rp-panel-head select{padding-right:34px}
.modal-heading h2{font-family:var(--font-serif);color:var(--navy);font-size:var(--text-3xl);font-weight:500;margin:4px 0 0}
@media(max-width:980px){.grid-form-list,.social-layout{grid-template-columns:minmax(0,1fr)}}
@media(max-width:760px){
  /* 16 px minimum : en dessous, Safari sur iPhone zoome la page à chaque saisie. Plancher
     d'accessibilité volontairement prioritaire sur les tailles propres à chaque formulaire. */
  input:where(:not([type=checkbox],[type=radio],[type=range],[type=color],[type=hidden],[type=submit],[type=button])),select,textarea{font-size:var(--text-input-touch)!important}
  .hodas-modal,.hodas-modal.wide-modal{width:calc(100vw - 16px);max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px)}
  .sidebar-section-toggle,.sidebar-nav-actions button,.evolution-legend-item,.rp-view-save,.rp-more{min-height:var(--control-height-sm)}
  .sidebar-close{min-width:var(--control-height-sm);min-height:var(--control-height-sm)}
}
/* H5 — panneau latéral : une section de la fiche modifiée sans quitter le dossier.
   Même <dialog class="hodas-modal"> que les fenêtres, ancré à droite sur toute la hauteur. */
.hodas-modal.side-panel{width:min(560px,100vw);max-width:100vw;height:100dvh;max-height:100dvh;margin:0 0 0 auto;border-radius:0;background:var(--surface);animation:side-panel-in .18s ease-out}
.side-panel .modal-heading{padding-right:56px}
.side-panel .modal-form{display:grid;gap:14px}
.side-panel .modal-form h3{margin:8px 0 0}
.side-panel .modal-form>a.button-secondary{justify-self:start}
.side-panel-actions{position:sticky;bottom:0;display:flex;justify-content:flex-end;gap:10px;margin:0 -28px -28px;padding:14px 28px;border-top:1px solid var(--line);background:var(--surface)}
@keyframes side-panel-in{from{transform:translateX(24px);opacity:0}to{transform:none;opacity:1}}
@media(prefers-reduced-motion:reduce){.hodas-modal.side-panel{animation:none}}
@media(max-width:760px){
  .hodas-modal.side-panel{width:100vw;max-width:100vw;max-height:100dvh}
  .side-panel-actions{margin:0 -18px -22px;padding:12px 18px}
}
/* T21 — propositions du registre des entreprises (fiche personne morale). */
.siren-lookup{display:grid;gap:var(--space-2);margin:4px 0 8px}
.siren-lookup-result{display:grid;gap:var(--space-2);padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--gray-50)}
.siren-lookup-result[hidden]{display:none}
.siren-lookup-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}
.siren-lookup-table th,.siren-lookup-table td{padding:6px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.siren-lookup-error{color:var(--danger)}
/* Société complétée par son SIREN (29.10.2026) : recherche à la création, fiche du registre,
   bloc « Registre des entreprises » de l'identité, mises en garde de doublon. Réutilisé partout. */
.registry-search{position:relative}
.registry-search-results{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--paper);box-shadow:0 14px 34px rgba(22,41,83,.12);overflow:hidden}
.registry-search-results[hidden]{display:none}
.registry-option{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;width:100%;padding:10px 14px;border:0;border-bottom:1px solid var(--gray-100);background:var(--paper);color:var(--ink);font:inherit;font-size:var(--text-base);text-align:left;cursor:pointer}
.registry-option:last-child{border-bottom:0}
.registry-option:hover,.registry-option:focus-visible{background:var(--gray-50);box-shadow:inset 2px 0 0 var(--gold-accent);outline:0}
.registry-option small{color:var(--muted);font-size:var(--text-sm)}
.registry-option .registry-option-side{text-align:right}
.registry-card{display:grid;gap:6px;padding:14px 16px;border:1px solid var(--line);border-left:2px solid var(--gold-accent);border-radius:var(--radius-md);background:var(--paper)}
.registry-card.is-saved{border-left-color:var(--navy)}
.registry-card[hidden]{display:none}
.registry-card-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 14px}
.registry-card-head h3{margin:0;font-family:var(--font-serif);font-weight:400;font-size:var(--text-2xl);color:var(--navy)}
.registry-card-head small{color:var(--muted)}
.registry-eyebrow{margin:8px 0 2px;color:var(--slate);font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase}
.registry-rows{display:grid;grid-template-columns:22px minmax(110px,150px) minmax(0,1fr);font-size:var(--text-base)}
.registry-rows.is-plain{grid-template-columns:minmax(110px,150px) minmax(0,1fr)}
.registry-rows.is-leaders{grid-template-columns:22px minmax(0,1fr) auto}
.registry-rows>*{padding:6px 4px;border-bottom:1px solid var(--gray-100)}
.registry-rows .registry-key{color:var(--muted)}
.registry-rows input[type=checkbox],.registry-rows input[type=radio]{margin:2px 0 0;accent-color:var(--navy)}
.registry-source{color:var(--muted);font-size:var(--text-sm)}
.registry-figures{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);border-radius:var(--radius-md)}
.registry-figures>div{padding:9px 12px;border-left:1px solid var(--line)}
.registry-figures>div:first-child{border-left:0}
.registry-figures span{display:block;color:var(--slate);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase}
.registry-figures strong{display:block;margin-top:2px;font-family:var(--font-serif);font-weight:400;font-size:var(--text-2xl);color:var(--navy)}
.registry-figures small{color:var(--muted);font-size:var(--text-sm)}
.registry-link{color:var(--navy);border-bottom:1px solid var(--gold-accent);text-decoration:none;white-space:nowrap}
.registry-link:hover{color:var(--navy-2)}
button.registry-link{padding:0;border-top:0;border-left:0;border-right:0;background:none;font:inherit;cursor:pointer}
.registry-pill{display:inline-block;margin-left:6px;padding:1px 9px;border:1px solid var(--warning-line);border-radius:var(--radius-pill);color:var(--warning);font-size:var(--text-sm)}
.registry-warning{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;border-left:2px solid var(--warning);background:var(--paper);color:var(--warning);font-size:var(--text-base)}
.registry-ok{padding:6px 12px;border-left:2px solid var(--success);color:var(--success);font-size:var(--text-base)}
.registry-warnings{display:grid;gap:6px}
.registry-warnings:empty{display:none}
.registry-manual{display:grid;gap:var(--space-2)}
.registry-manual summary{cursor:pointer;color:var(--navy);font-size:var(--text-sm)}
button.kyc-pill{font:inherit;cursor:pointer}
@media(max-width:760px){.registry-figures{grid-template-columns:1fr}.registry-figures>div{border-left:0;border-top:1px solid var(--line)}.registry-figures>div:first-child{border-top:0}.registry-rows{grid-template-columns:22px minmax(0,1fr)}.registry-rows .registry-value{grid-column:2}.registry-rows.is-plain{grid-template-columns:1fr}.registry-option{grid-template-columns:1fr}.registry-option .registry-option-side{text-align:left}}
/* T10 : exposition consolidée, couverture affichée à côté de chaque indicateur. */
.exposure-card h3{margin:0 0 4px;font-size:var(--text-sm)}.exposure-coverage{display:block;margin-bottom:8px;color:var(--muted)}.exposure-coverage.is-partial{color:var(--warning-strong);font-weight:600}.exposure-warning{padding:8px 10px;border:1px solid var(--warning-line);border-radius:var(--radius-sm);background:var(--warning-bg);color:var(--warning-strong);font-size:var(--text-sm)}
.page-tabs{display:inline-flex;flex-wrap:wrap;gap:4px;padding:4px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--gray-100);margin-bottom:16px}
.page-tabs button{border:0;border-radius:var(--radius-sm);background:transparent;color:var(--slate);padding:8px 13px;font-size:var(--text-xs);font-weight:850;cursor:pointer}
.page-tabs button.is-active{background:var(--navy);color:var(--paper);box-shadow:0 4px 12px rgba(22,41,83,.18)}
@media(max-width:720px){.page-tabs{display:flex}}

/* Fiche position : indicateurs (capital investi, SCPI détenue en direct) */
.flash-toast{position:fixed;right:24px;bottom:24px;z-index:1000;max-width:min(420px,calc(100vw - 32px));margin:0;box-shadow:0 10px 30px rgba(15,23,42,.18);transition:opacity .3s ease,transform .3s ease}
.flash-toast.is-leaving{opacity:0;transform:translateY(8px);pointer-events:none}
@media (max-width:640px){.flash-toast{left:16px;right:16px;bottom:16px}}
/* Marché cible proposé automatiquement */

/* Fiche position, détention et allocation (06.10.2026) : une seule barre d'onglets, une colonne pleine
   largeur et des champs plus aérés. Les onglets-liens prennent l'aspect des onglets-boutons. */
.page-tabs a{display:inline-flex;align-items:center;border-radius:var(--radius-sm);color:var(--slate);padding:8px 13px;font-size:var(--text-xs);font-weight:850;text-decoration:none}
.page-tabs a:hover,.page-tabs button:hover{color:var(--navy);background:var(--paper)}
.page-tabs a.is-active,.page-tabs a.is-active:hover,.page-tabs button.is-active:hover{background:var(--navy);color:var(--paper);box-shadow:0 4px 12px rgba(22,41,83,.18)}
.page-tabs.sub-tabs{background:transparent;border-color:transparent;padding:0;gap:6px;margin-bottom:18px}
.page-tabs.sub-tabs button{border:1px solid var(--line);background:var(--paper)}
.page-tabs.sub-tabs button.is-active{border-color:var(--navy);background:var(--navy);color:var(--paper)}
.position-sheet.edit-doc-layout{grid-template-columns:minmax(0,1fr)}

/* Onglet « Contrats » (06.10.2026) : quatre onglets en tête de page, compteur des contrats à traiter. */
.position-drafts-list li.empty{justify-content:center;color:var(--muted)}
[data-contracts-todo-badge]{cursor:pointer}
#a-completer .inline-form{align-items:center}
#a-completer .inline-form input{min-height:var(--control-height);padding:10px 11px;border:1px solid var(--gray-350);border-radius:var(--radius-sm);background:var(--paper);color:var(--ink);outline:none}
#a-completer .inline-form input:focus{border-color:var(--sky);box-shadow:var(--focus-ring)}
#ecarts td .status-pill{display:flex;width:max-content;margin-top:6px}
#ecarts td.row-actions{white-space:nowrap}
.status-pill.tone-muted,.status-pill.tone-neutral{background:var(--gray-100);color:var(--navy-2)}
/* Listes de contrats (Portefeuille et fiche client, _contract_list.html) : composants communs
   des listes dynamiques (ui.stat_tiles, ui.quick_filters, ui.avatar, .list-row), traits fins,
   chiffres en poids normal. */
.contract-list .list-row,.contract-list .dynamic-list-head{grid-template-columns:minmax(0,2.3fr) minmax(0,1.3fr) minmax(0,1fr) minmax(0,.9fr) minmax(0,1fr) minmax(0,.9fr) 18px}
.contract-list .list-row-status{grid-column:6;grid-row:1}
.contract-list .list-row:hover .list-row-status,.contract-list .list-row:focus-within .list-row-status{display:block}
.contract-list .list-row-chevron{grid-column:7;grid-row:1}
.contract-list .list-row .num strong,.contract-list-amount{color:var(--navy);font-weight:400;font-variant-numeric:tabular-nums}
.contract-list .contract-list-amount.positive{color:var(--success)}.contract-list .contract-list-amount.negative{color:var(--danger)}
.contract-list .list-row-link{font-weight:500}
.contract-list .list-row>div,.contract-list .list-row-who>div{min-width:0}
.contract-list .list-row small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.contract-list .list-row small.contract-list-holders{white-space:normal}
.contract-list .list-row.state-a_completer,.contract-list .list-row.state-ecart{box-shadow:inset 2px 0 0 var(--gold-accent)}
.contract-list .list-row.state-termine,.contract-list .list-row.state-archive{opacity:.72}
.contract-list-toggle{border:0;background:none;padding:0;font:inherit;text-align:left;cursor:pointer}
.contract-list-count{white-space:nowrap;margin-left:6px;padding:0 7px;border-radius:var(--radius-pill);background:var(--gray-100);color:var(--navy-2);font-size:var(--text-xs);font-weight:500}
.contract-list-chevron{display:inline-block;transition:transform .15s ease}
.contract-list-toggle[aria-expanded="true"] .contract-list-chevron{transform:rotate(180deg)}
/* Compte-titres : le compteur « N lignes » déplie l'aperçu au-dessus du lien qui couvre la ligne. */
button.contract-list-count{position:relative;z-index:2}
.contract-list-insurer{color:var(--ink)}
.contract-list-date.is-stale{color:var(--warning)}
.contract-list-lines{grid-column:1/-1;position:relative;z-index:1;display:grid;margin:4px 0 0 49px;border-top:1px solid var(--gray-150)}
.contract-list-lines[hidden]{display:none}
.contract-list-line{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,1fr) minmax(0,1fr) 18px;gap:14px;align-items:center;padding:8px 0;border-bottom:1px solid var(--gray-150);color:var(--ink);text-decoration:none;font-size:var(--text-sm)}
.contract-list-line:last-child{border-bottom:0}
.contract-list-line:hover .contract-list-line-name{text-decoration:underline}
.contract-list-new{margin-left:auto}
.contract-list-foot{flex-wrap:wrap}.contract-list-foot span:nth-child(2){flex:1 1 320px;text-align:center}
@media(max-width:820px){.contract-list .list-row{grid-template-columns:1fr 1fr;row-gap:8px}.contract-list .list-row-who{grid-column:1/-1}.contract-list .list-row-status,.contract-list .list-row-chevron{grid-column:auto;grid-row:auto}.contract-list-lines{margin-left:0}}
/* Fiche contrat (lot 2) : en-tête, courbe valorisation / montant investi, détention, journal. */
#rapprochement h3{margin:16px 0 8px;font-size:var(--text-lg);color:var(--navy)}

/* Listes dynamiques (ui.stat_tiles, ui.quick_filters, ui.avatar, .list-row) :
   référentiel des partenaires d'abord, puis liste des clients et pilotage. */
.list-page-lead{margin:0;color:var(--text-muted);font-size:var(--text-base)}
.stat-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.stat-tile{display:grid;gap:3px;align-content:start;text-align:left;font:inherit;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:14px 16px;box-shadow:var(--shadow-soft);color:var(--ink)}
button.stat-tile,a.stat-tile{cursor:pointer;text-decoration:none;transition:border-color .15s,transform .15s}button.stat-tile:hover,a.stat-tile:hover{border-color:var(--navy-2);transform:translateY(-1px)}
.stat-tile span{color:var(--text-muted);font-size:var(--text-sm);font-weight:600}
.stat-tile strong{color:var(--navy);font-size:var(--text-2xl);font-weight:700;line-height:1.15}
.stat-tile small{color:var(--text-muted);font-size:var(--text-xs);line-height:1.35}
.stat-tile.tone-danger{background:var(--danger-bg);border-color:var(--danger-border)}.stat-tile.tone-danger strong{color:var(--danger)}
.stat-tile.tone-warning{background:var(--warning-bg);border-color:var(--warning-line)}.stat-tile.tone-warning strong{color:var(--warning)}
.quick-filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:10px 12px}
.quick-filters-search{flex:1 1 260px;display:flex;align-items:center;gap:8px;border:1px solid var(--border-input);border-radius:var(--radius-md);padding:0 12px;background:var(--gray-25)}
.quick-filters-search input{flex:1;border:0;background:transparent;padding:9px 0;min-width:0;font:inherit;color:var(--ink);outline:0}
.quick-filters-search:focus-within{box-shadow:var(--focus-ring);border-color:var(--navy-2)}
.quick-filters-search small{color:var(--text-faint);font-size:var(--text-xs);white-space:nowrap}
.quick-filters-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.chip-filter{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);color:var(--navy);border-radius:var(--radius-pill);padding:7px 12px;font:inherit;font-size:var(--text-sm);font-weight:600;cursor:pointer;white-space:nowrap}
.chip-filter:hover{border-color:var(--navy-2)}
.chip-filter.is-active{background:var(--navy);border-color:var(--navy);color:var(--paper)}
.chip-count{font-size:var(--text-2xs);font-weight:700;background:var(--gray-100);color:var(--navy);border-radius:var(--radius-pill);padding:1px 7px}
.chip-filter.is-active .chip-count{background:rgba(255,255,255,.2);color:var(--paper)}
.chip-count.tone-danger{background:var(--danger);color:var(--paper)}.chip-count.tone-warning{background:var(--warning-accent);color:var(--paper)}
.chip-select select{border:1px solid var(--line);border-radius:var(--radius-pill);padding:7px 12px;font:inherit;font-size:var(--text-sm);font-weight:600;color:var(--navy);background:var(--surface)}
.avatar-initials{display:grid;place-items:center;width:38px;height:38px;flex:none;border-radius:50%;font-size:var(--text-sm);font-weight:700;letter-spacing:.02em;background:var(--beige);color:var(--warning-strong)}
.avatar-initials.avatar-pp{background:var(--gray-150);color:var(--navy-2)}.avatar-initials.avatar-muted{background:var(--gray-100);color:var(--text-muted)}
.dynamic-list{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-soft)}
.dynamic-list-foot{display:flex;justify-content:space-between;gap:12px;margin:-6px 4px 0;color:var(--text-muted);font-size:var(--text-sm)}
.list-row,.dynamic-list-head{display:grid;gap:14px;align-items:center;padding:0 18px}
.dynamic-list-head{padding-top:10px;padding-bottom:10px;background:var(--gray-25);border-bottom:1px solid var(--line)}
.dynamic-list-head>*{font:inherit;font-size:var(--text-2xs);letter-spacing:.08em;text-transform:uppercase;color:var(--slate);font-weight:700;background:none;border:0;padding:0;text-align:left}
.dynamic-list-head>.num{text-align:right}
.dynamic-list-head button{cursor:pointer}.dynamic-list-head button::after{content:" ↕";opacity:.45}
.dynamic-list-head button[aria-sort=ascending]::after{content:" ↑";opacity:1}.dynamic-list-head button[aria-sort=descending]::after{content:" ↓";opacity:1}
.list-row{position:relative;padding-top:12px;padding-bottom:12px;border-bottom:1px solid var(--gray-150);font-size:var(--text-base)}
.list-row:hover{background:var(--gray-25);box-shadow:inset 3px 0 0 var(--gold-accent)}
.list-row small{display:block;color:var(--text-muted);font-size:var(--text-xs);margin-top:2px}
.list-row small.inline{display:inline}
.list-row .num{text-align:right}.list-row .num strong{color:var(--navy);font-weight:700}
.list-row-who{display:flex;gap:11px;align-items:center;min-width:0}
.list-row-link{color:var(--ink);font-weight:700;font-size:var(--text-md);text-decoration:none}
.list-row-link::after{content:"";position:absolute;inset:0}
.list-row-link:focus-visible{outline:0}.list-row:focus-within{box-shadow:inset 0 0 0 2px var(--navy-2)}
.list-row-actions{position:relative;z-index:1;display:none;gap:6px;justify-content:flex-end}
.list-row:hover .list-row-actions,.list-row:focus-within .list-row-actions{display:flex}
.list-row:hover .list-row-status,.list-row:focus-within .list-row-status{display:none}
.list-row-chevron{color:var(--slate);text-align:right}
.partner-list .list-row,.partner-list .dynamic-list-head{grid-template-columns:minmax(0,2.1fr) minmax(0,1.2fr) minmax(0,1.2fr) minmax(0,1.25fr) minmax(0,1fr) minmax(0,.95fr) 18px}
/* Fiche client, lot 4 : liste des clients (traits fins, chiffres non gras, barre d'encours discrète). */
.client-list .list-row,.client-list .dynamic-list-head{grid-template-columns:minmax(0,2.2fr) minmax(0,1.35fr) minmax(0,.9fr) minmax(0,1fr) minmax(0,.8fr) minmax(0,1.6fr) 18px}
@media(max-width:1100px){.stat-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:860px){
  .dynamic-list-head{display:none}
  .partner-list .list-row,.client-list .list-row{grid-template-columns:1fr 1fr;row-gap:8px}}@media(max-width:860px){
  .list-row-actions{display:flex;justify-content:flex-start}.list-row:hover .list-row-status{display:block}
  .list-row .num{text-align:left}.list-row-chevron{display:none}
  .dynamic-list-foot{flex-direction:column}
}
@media(max-width:480px){.stat-tiles{grid-template-columns:1fr}}
.list-row[hidden],.dynamic-list [data-live-empty][hidden]{display:none}
.dynamic-list [data-live-empty]{padding:18px;margin:0}
.chip-select select{width:auto;min-height:0;height:auto;box-shadow:none;cursor:pointer}
.list-row-actions .small-button{white-space:nowrap}
.list-row:hover .list-row-chevron,.list-row:focus-within .list-row-chevron{visibility:hidden}
.chip-select select{appearance:auto;-webkit-appearance:menulist;background-image:none;padding:6px 10px;font-size:var(--text-sm)}
/* Poste de validation (proposition du 06.10.2026) : un seul cadre pour valider ce que la
   lecture automatique et l'IA ont préparé. Le document à gauche suit la ligne
   sélectionnée, chaque ligne porte un statut, la barre du bas dit ce qui sera écrit. */
.vs-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,340px);gap:18px;align-items:center;margin-bottom:14px}
.vs-head h2{margin:3px 0 4px;font-family:var(--font-serif);font-weight:400;font-size:var(--text-3xl);color:var(--ink);overflow-wrap:anywhere}
.vs-head p{margin:0;color:var(--muted);font-size:var(--text-base)}
.vs-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.vs-chip{display:inline-flex;align-items:center;border-radius:var(--radius-pill);padding:3px 10px;font-size:var(--text-sm);font-weight:800;background:var(--gray-100);color:var(--navy-2)}
.vs-chip.ok{background:var(--success-bg);color:var(--success)}
.vs-chip.warn{background:var(--warning-bg);color:var(--warning)}
.vs-progress-title{display:flex;justify-content:space-between;font-size:var(--text-base);font-weight:800;color:var(--navy);margin-bottom:6px}
.vs-progress-bar{display:flex;height:9px;border-radius:var(--radius-pill);overflow:hidden;background:var(--gray-100)}
.vs-progress-bar i{display:block;height:100%;transition:width .25s ease}
.vs-progress-legend{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:7px;font-size:var(--text-sm);color:var(--muted)}
.vs-progress-legend span::before{content:"";display:inline-block;width:8px;height:8px;border-radius:var(--radius-2xs);margin-right:5px;background:var(--vs-dot,var(--gray-200))}
.vs-c-verified{background:var(--success)}.vs-l-verified{--vs-dot:var(--success)}
.vs-c-ready{background:var(--success-line)}.vs-l-ready{--vs-dot:var(--success-line)}
.vs-c-decide{background:var(--warning-accent)}.vs-l-decide{--vs-dot:var(--warning-accent)}
.vs-c-missing{background:var(--gray-300)}.vs-l-missing{--vs-dot:var(--gray-300)}
.vs-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 14px;padding:10px 14px;border:1px solid var(--gray-300);border-radius:var(--radius-lg);background:var(--gray-50);color:var(--navy);font-size:var(--text-lg)}
.vs-banner.warn{border-color:var(--warning-line);background:var(--warning-bg);color:var(--warning-strong)}
.vs-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:14px;align-items:start}
.vs-split.vs-doc-hidden{grid-template-columns:minmax(0,1fr)}
.vs-split.vs-doc-hidden .vs-viewer{display:none}
.vs-viewer{position:sticky;top:14px;display:flex;flex-direction:column;height:calc(100vh - 150px);min-height:420px;border-radius:var(--radius-xl);background:var(--gray-700);padding:10px;color:var(--paper)}
.vs-viewer-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 4px 8px;font-size:var(--text-base);font-weight:700}
.vs-viewer-bar a{color:var(--paper);text-decoration:underline}
.vs-pagenav{display:flex;flex-wrap:wrap;gap:4px}
.vs-pagenav button{border:0;border-radius:var(--radius-xs);padding:3px 9px;background:rgba(255,255,255,.14);color:var(--paper);font-weight:800;cursor:pointer}
.vs-pagenav button[aria-current="true"]{background:var(--paper);color:var(--navy)}
.vs-pages{flex:1;overflow:auto;display:grid;gap:10px;align-content:start;scroll-behavior:smooth;border-radius:var(--radius-xs)}
.vs-page{position:relative;margin:0 auto;background:var(--paper);box-shadow:0 6px 16px rgba(0,0,0,.25)}
.vs-page canvas{display:block}
img.vs-page{display:block;max-width:100%;height:auto}
.vs-mark{position:absolute;border-radius:var(--radius-2xs);background:rgba(217,164,65,.30);outline:2px solid var(--warning-accent);pointer-events:none;transition:opacity .2s ease}
.vs-mark.soft{background:rgba(38,112,79,.12);outline:0}
.vs-viewer-empty{margin:auto;max-width:300px;text-align:center;color:var(--gray-100);font-size:var(--text-lg)}
.vs-panel{border:1px solid var(--line);border-radius:var(--radius-xl);background:var(--surface);overflow:hidden}
.vs-tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--surface-subtle)}
.vs-filter{display:flex;gap:3px;padding:3px;border-radius:var(--radius-md);background:var(--gray-100)}
.vs-filter button{border:0;border-radius:var(--radius-xs);padding:5px 11px;background:transparent;color:var(--muted);font-weight:750;cursor:pointer}
.vs-filter button[aria-pressed="true"]{background:var(--paper);color:var(--navy);box-shadow:0 1px 3px rgba(0,0,0,.08)}
.vs-tools small{color:var(--muted)}
.vs-group{padding:11px 14px 4px;color:var(--slate);font-size:var(--text-sm);font-weight:800;letter-spacing:.13em;text-transform:uppercase}
.vs-row{display:grid;grid-template-columns:22px minmax(120px,190px) minmax(0,1fr);gap:4px 12px;align-items:center;padding:9px 14px;border-top:1px solid var(--gray-200);outline:0;transition:background .15s ease}
.vs-row[hidden]{display:none}
.vs-row:focus-within,.vs-row.vs-selected{background:var(--gray-50)}
.vs-row.vs-selected{box-shadow:inset 3px 0 0 var(--warning-accent)}
.vs-row:focus-visible{box-shadow:inset 3px 0 0 var(--navy-2),var(--focus-ring)}
.vs-icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;font-size:var(--text-sm);font-weight:900;line-height:1}
.vs-icon::before{content:"✓"}
.vs-row[data-vs-state="ready"] .vs-icon{border:2px solid var(--success-line);color:var(--success)}
.vs-row[data-vs-state="verified"] .vs-icon{background:var(--success);color:var(--paper)}
.vs-row[data-vs-state="decide"] .vs-icon{background:var(--warning-accent);color:var(--paper)}
.vs-row[data-vs-state="decide"] .vs-icon::before{content:"!"}
.vs-row[data-vs-state="missing"] .vs-icon{border:2px dashed var(--gray-500);color:var(--gray-500)}
.vs-row[data-vs-state="missing"] .vs-icon::before{content:"?"}
.vs-row[data-vs-state="optional"] .vs-icon{border:2px dotted var(--gray-400)}
.vs-row[data-vs-state="optional"] .vs-icon::before{content:""}
.vs-label{min-width:0;font-weight:750;color:var(--ink);font-size:var(--text-lg)}
.vs-label small{display:block;margin-top:1px;color:var(--muted);font-weight:500;font-size:var(--text-sm)}
.vs-control{min-width:0;display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.vs-control>input,.vs-control>select{flex:1 1 160px;min-width:0;border:1px solid var(--border-input);border-radius:var(--radius-sm);padding:7px 10px;background:var(--paper);color:var(--navy);font-weight:650}
.vs-row[data-vs-state="ready"] .vs-control>input,.vs-row[data-vs-state="verified"] .vs-control>input{border-color:transparent;background:transparent;padding-left:0}
.vs-row[data-vs-state="ready"] .vs-control>input:focus,.vs-row[data-vs-state="verified"] .vs-control>input:focus{border-color:var(--border-input);background:var(--paper);padding-left:10px}
.vs-control .checkbox-line{flex-basis:100%;margin:0;font-size:var(--text-base)}
.vs-extra{grid-column:2/4}
.vs-cands{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px;padding:2px 0 4px}
.vs-cand{display:grid;gap:3px;text-align:left;border:1.5px solid var(--line);border-radius:var(--radius-md);padding:8px 10px;background:var(--paper);color:var(--ink);cursor:pointer;font-size:var(--text-base)}
.vs-cand:hover,.vs-cand:focus-visible{border-color:var(--navy-2)}
.vs-cand[aria-pressed="true"]{border-color:var(--navy-2);box-shadow:var(--focus-ring)}
.vs-cand b{display:flex;justify-content:space-between;gap:8px;color:var(--navy);font-size:var(--text-2xl)}
.vs-cand b kbd{align-self:flex-start}
.vs-cand small{color:var(--muted);font-size:var(--text-sm)}
.vs-diff{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-weight:650;color:var(--navy)}
.vs-diff s{color:var(--muted);font-weight:500}
.vs-choice{display:flex;flex-wrap:wrap;gap:6px}
.vs-choice label{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:var(--radius-sm);padding:5px 9px;font-size:var(--text-base);cursor:pointer;background:var(--paper)}
.vs-choice label:has(input:checked){border-color:var(--navy-2);box-shadow:var(--focus-ring)}
.vs-keys{padding:9px 14px;border-top:1px solid var(--line);background:var(--surface-subtle);color:var(--muted);font-size:var(--text-sm)}
.vs-panel kbd,.vs-keys kbd{display:inline-block;min-width:16px;border:1px solid var(--gray-500);border-bottom-width:2px;border-radius:var(--radius-2xs);padding:0 4px;background:var(--paper);color:var(--muted);font:800 var(--text-sm)/1.4 var(--font-sans);text-align:center}
.vs-dock{position:sticky;bottom:0;z-index:5;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;margin:14px 0 0;padding:12px 16px;border:1px solid var(--line);border-radius:var(--radius-lg);background:rgba(255,255,255,.97);box-shadow:0 -8px 22px rgba(22,41,83,.08)}
.vs-dock p{margin:0;color:var(--muted);font-size:var(--text-base)}
.vs-dock p b{color:var(--navy)}
.vs-dock-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-end}
.vs-dock .primary[aria-disabled="true"]{background:var(--gray-400);border-color:var(--gray-400);box-shadow:none;cursor:not-allowed;transform:none}
@media(max-width:1100px){.vs-split{grid-template-columns:minmax(0,1fr)}.vs-viewer{position:relative;top:0;height:60vh}.vs-head{grid-template-columns:minmax(0,1fr)}}
@media(max-width:720px){.vs-row{grid-template-columns:22px minmax(0,1fr)}.vs-control,.vs-extra{grid-column:1/3}.vs-dock{grid-template-columns:minmax(0,1fr)}}

/* Poste de validation, lot 2 : écrans à tableaux (synthèse, conditions, attestation, dossier signé…). */
.vs-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:0 0 14px}
.vs-kpi{display:grid;gap:2px;padding:12px 16px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface)}
.vs-kpi span{color:var(--muted);font-size:var(--text-base);font-weight:700}
.vs-kpi b{color:var(--navy);font-size:var(--text-3xl);font-weight:800;line-height:1.15;overflow-wrap:anywhere}
.vs-kpi small{color:var(--muted);font-size:var(--text-sm)}
.vs-kpi.warn b{color:var(--warning-strong)}
.vs-kpi.ok b{color:var(--success)}
.vs-panel .table-wrap,.vs-panel .table-scroll{margin:0;border:0;border-radius:0}
.vs-table{width:100%}
.vs-table th{white-space:nowrap}
.vs-table tr[data-vs-row]{outline:0;transition:background .15s ease}
.vs-table tr[data-vs-row][hidden]{display:none}
.vs-table tr[data-vs-row]>td:first-child{box-shadow:inset 3px 0 0 var(--vs-edge,transparent)}
.vs-table tr[data-vs-state="decide"]{--vs-edge:var(--warning-accent);background:var(--warning-bg)}
.vs-table tr[data-vs-state="missing"]{--vs-edge:var(--gray-400)}
.vs-table tr[data-vs-state="verified"]{--vs-edge:var(--success)}
.vs-table tr[data-vs-row].vs-selected,.vs-table tr[data-vs-row]:focus-within{background:var(--gray-50)}
.vs-table tr[data-vs-state="decide"].vs-selected{background:var(--warning-bg-strong)}
.vs-table tr[data-vs-row]:focus-visible>td:first-child{box-shadow:inset 3px 0 0 var(--navy-2)}
.vs-table td small{display:block;color:var(--muted);font-size:var(--text-sm)}
.vs-table td select,.vs-table td input:not([type=checkbox]){max-width:100%;border:1px solid var(--border-input);border-radius:var(--radius-sm);padding:6px 9px;background:var(--paper);color:var(--navy);font-weight:650}
.vs-table tr[data-vs-state="decide"] td select{border-color:var(--navy-2)}
.vs-num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.vs-neg{color:var(--danger);font-weight:750}
.vs-pos{color:var(--success);font-weight:750}
.vs-read{display:inline-flex;border-radius:var(--radius-pill);padding:2px 9px;font-size:var(--text-sm);font-weight:800;white-space:nowrap;background:var(--gray-100);color:var(--navy-2)}
.vs-read.ok{background:var(--success-bg);color:var(--success)}
.vs-read.warn{background:var(--warning-bg-strong);color:var(--warning-strong)}
/* « Supprimer » un document à valider (13.10.2026) : discret, gris-bleu, trait fin ; la
   couleur d'alerte n'apparaît qu'au survol. Liste de dépôt et en-tête des aperçus. */
.vs-discard{display:inline-flex;align-items:center;gap:5px;padding:4px 2px;border:0;background:none;color:var(--slate);font:inherit;font-size:var(--text-sm);font-weight:400;cursor:pointer;white-space:nowrap}
.vs-discard svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.vs-discard:hover,.vs-discard:focus-visible{color:var(--danger)}
.vs-discard:disabled{opacity:.5;cursor:default}
.vs-head .vs-discard{margin-top:8px}
.vs-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px 14px;padding:12px 16px}
.vs-fields label{display:grid;gap:4px;color:var(--muted);font-size:var(--text-sm);font-weight:700}
.vs-dock ul{margin:2px 0 0;padding-left:18px;color:var(--muted);font-size:var(--text-base)}
.vs-dock ul.text-warning{color:var(--warning-strong)}
/* Dossier signé : les pages en vignettes, colorées par document. */
.vs-seg-0{--vs-seg:var(--navy-2)}.vs-seg-1{--vs-seg:var(--success)}.vs-seg-2{--vs-seg:var(--warning-accent)}
.vs-seg-3{--vs-seg:var(--slate)}.vs-seg-4{--vs-seg:var(--gold-accent)}.vs-seg-5{--vs-seg:var(--danger-line)}
.vs-table tr[data-vs-segment]>td:first-child{box-shadow:inset 4px 0 0 var(--vs-seg,transparent)}
.vs-table tr[data-vs-segment].vs-dropped{opacity:.55}
@media(max-width:720px){.vs-kpi b{font-size:var(--text-2xl)}}

/* Relevé annuel des frais : sélecteur d'année compact, sans bouton de validation */
.inline-select{display:inline-flex;align-items:center;gap:8px;margin:0;font-weight:600;color:var(--ink);white-space:nowrap}
.inline-select select:not([multiple]){width:auto;min-height:var(--control-height-sm);padding-top:6px;padding-bottom:6px}

/* Fiche contrat v2 (validée le 06.10.2026) : barre du haut, carte d'identité à gauche,
   six onglets à droite, Vue d'ensemble avec À faire, répartition et derniers mouvements. */
.contract-nav-count{font-size:var(--text-xs);color:var(--muted);font-variant-numeric:tabular-nums;margin-right:var(--space-1)}

/* Suivi & conformité (lot 1 de la refonte des écrans de pilotage, 06.10.2026).
   Préfixe fb- : composants réutilisés par les lots suivants (cartes cliquables,
   puces de filtre, menus déroulants, rangées d'action, matrice). */
.fb-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:-12px 0 16px}
.fb-head .card-subtitle{margin:0}
.fb-head-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.fb-switch{display:inline-flex;gap:4px;padding:4px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft)}
.fb-switch a{padding:8px 14px;border-radius:var(--radius-md);font-weight:750;font-size:var(--text-lg);color:var(--gray-700);text-decoration:none;white-space:nowrap}
.fb-switch a:hover{background:var(--gray-75)}
.fb-switch a.is-active{background:var(--navy);color:var(--paper)}
.fb-menu{position:relative}
.fb-menu>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;white-space:nowrap}
.fb-menu>summary::-webkit-details-marker{display:none}
.fb-menu-list{position:absolute;right:0;top:calc(100% + 6px);z-index:40;min-width:240px;padding:6px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:0 16px 38px rgba(12,26,48,.22);display:grid;gap:2px}
.fb-menu-title{margin:6px 10px 2px;font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;font-weight:800;color:var(--slate)}
.fb-menu-list a,.fb-menu-list button{display:grid;gap:1px;width:100%;text-align:left;padding:8px 10px;border:0;border-radius:var(--radius-sm);background:none;font:inherit;font-weight:650;font-size:var(--text-lg);color:var(--ink);text-decoration:none;cursor:pointer}
.fb-menu-list a small{color:var(--muted);font-weight:500;font-size:var(--text-md)}
.fb-menu-list a:hover,.fb-menu-list button:hover{background:var(--gray-100)}
.fb-menu-list form{margin:0}
.fb-menu-list .is-danger{color:var(--danger)}

.fb-tiles{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:14px}
.fb-tile{display:grid;gap:2px;text-align:left;padding:14px 16px;background:var(--paper);border:1px solid var(--line);border-left:4px solid var(--line);border-radius:var(--radius-xl);box-shadow:var(--shadow-soft);color:var(--ink);text-decoration:none;font:inherit;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
.fb-tile:hover{transform:translateY(-1px);box-shadow:var(--shadow)}
.fb-tile span{font-size:var(--text-lg);font-weight:650;color:var(--gray-700)}
.fb-tile strong{font-size:var(--text-display);line-height:1.15;color:var(--navy)}
.fb-tile small{font-size:var(--text-md);color:var(--muted)}
.fb-tile.tone-danger{border-left-color:var(--danger)}.fb-tile.tone-danger strong{color:var(--danger)}
.fb-tile.tone-warning{border-left-color:var(--warning-accent)}
.fb-tile.tone-info{border-left-color:var(--sky)}
.fb-tile.tone-success{border-left-color:var(--success)}
.fb-tile[aria-pressed="true"]{background:var(--navy);border-color:var(--navy)}
.fb-tile[aria-pressed="true"] span,.fb-tile[aria-pressed="true"] strong,.fb-tile[aria-pressed="true"] small{color:var(--paper)}
.fb-tiles-kyc{grid-template-columns:1.5fr repeat(4,minmax(0,1fr))}
/* Point 12 : étapes du pipeline des prospects, sous la reprise de l’ancienne liste. */

.fb-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 12px;margin-bottom:16px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-xl);box-shadow:var(--shadow-soft)}
.fb-search{flex:0 1 280px;margin:0}
.fb-search input{width:100%;min-height:var(--control-height-sm);padding:7px 12px;border:1px solid var(--gray-350);border-radius:var(--radius-md);font:inherit;font-size:var(--text-lg);background:var(--paper)}
.fb-chips{display:flex;gap:6px;flex-wrap:wrap}
.fb-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:0;border-radius:var(--radius-pill);background:var(--gray-100);color:var(--navy);font:inherit;font-size:var(--text-lg);font-weight:700;text-decoration:none;cursor:pointer;white-space:nowrap}
.fb-chip b{font-weight:800;color:var(--gray-650)}
.fb-chip:hover{background:var(--gray-150)}
.fb-chip.is-active{background:var(--navy);color:var(--paper)}.fb-chip.is-active b{color:var(--paper)}
.fb-reset{font-size:var(--text-base);font-weight:700;color:var(--navy)}
.fb-rows{display:grid;gap:8px}
.fb-row{display:grid;grid-template-columns:12px minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:11px 14px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:0 3px 10px rgba(22,41,83,.04);transition:opacity .25s ease,transform .25s ease}
.fb-row.is-leaving{opacity:0;transform:translateX(12px)}
.fb-row-dot{width:10px;height:10px;border-radius:50%;background:var(--sky)}
.fb-row.severity-late .fb-row-dot{background:var(--danger)}
.fb-row.severity-soon .fb-row-dot{background:var(--warning-accent)}
.fb-row-text{display:grid;gap:2px;min-width:0}
.fb-row-text strong{font-size:var(--text-xl);color:var(--ink)}
.fb-row-text strong a{color:inherit;text-decoration:none}.fb-row-text strong a:hover{text-decoration:underline}
.fb-row-text span{font-size:var(--text-base);color:var(--muted)}
.fb-row-actions{display:flex;gap:6px;align-items:center}
.fb-row-actions form{margin:0}
.fb-row-actions .small-button{min-height:32px;padding:5px 10px}
.fb-row.is-compact{grid-template-columns:10px minmax(0,1fr);padding:10px 12px}
.fb-row.is-compact .fb-row-actions{grid-column:2;flex-wrap:wrap}
.fb-row[hidden],.fb-group[hidden]{display:none}
.fb-no-match{padding:16px}

.fb-side{display:grid;gap:14px}
.fb-side-card{padding:16px 18px}
.fb-side-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:12px}
.fb-side-head h2{margin:0;font-size:var(--text-xl);color:var(--ink)}
.fb-side-head small{color:var(--muted);font-size:var(--text-md)}
.fb-progress{display:block;height:7px;border-radius:var(--radius-pill);background:var(--gray-100);overflow:hidden}
.fb-progress i{display:block;height:100%;width:0;background:var(--navy-2);border-radius:inherit}
.fb-progress.tone-success i{background:var(--success)}
.fb-progress.tone-warning i{background:var(--warning-accent)}
.fb-progress.tone-danger i{background:var(--danger)}

/* Vue « Par client » : matrice et volet */
.fb-cell{min-width:44px;padding:5px 7px;border:0;border-radius:var(--radius-pill);font:inherit;font-size:var(--text-md);font-weight:800;cursor:pointer;white-space:nowrap}
.fb-cell:hover,.fb-cell.is-selected{outline:2px solid var(--navy);outline-offset:1px}
.tone-success.fb-cell,.fb-legend .tone-success,.fb-dot.tone-success{background:var(--success-bg);color:var(--success)}
.tone-warning.fb-cell{background:var(--warning-bg);color:var(--warning)}
.tone-danger.fb-cell{background:var(--danger-bg);color:var(--danger)}
.tone-muted.fb-cell{background:var(--gray-75);color:var(--gray-500)}
.fb-panel-title{margin:4px 0 0;font-size:var(--text-sm);letter-spacing:.1em;text-transform:uppercase;color:var(--slate)}
.fb-group-card{margin-top:16px}

/* Message « Annuler » après Traité / Reporter */
.fb-undo{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:1001;display:flex;align-items:center;gap:16px;padding:12px 18px;border-radius:var(--radius-lg);background:var(--navy);color:var(--paper);font-weight:700;box-shadow:0 14px 34px rgba(12,26,48,.3);max-width:calc(100vw - 32px)}
.fb-undo[hidden]{display:none}
.fb-undo button{border:0;background:none;color:var(--gold-accent);font:inherit;font-weight:800;cursor:pointer}

@media(max-width:1180px){.fb-tiles,.fb-tiles-kyc{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:720px){.fb-tiles,.fb-tiles-kyc{grid-template-columns:1fr 1fr}.fb-row{grid-template-columns:10px minmax(0,1fr)}}@media(max-width:720px){.fb-row-actions{grid-column:2;flex-wrap:wrap}}
/* Poste de validation, lot 3 : file « Documents à valider », suite et enchaînement. */
.vs-queue-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:0 0 12px;padding:8px 14px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);font-size:var(--text-sm);color:var(--muted)}
.vs-queue-label b{color:var(--navy)}
.vs-queue-dots{display:inline-flex;flex-wrap:wrap;gap:4px}
.vs-queue-dots i{display:block;width:18px;height:5px;border-radius:var(--radius-pill);background:var(--gray-150)}
.vs-queue-dots i.done{background:var(--success)}
.vs-queue-dots i.current{background:var(--navy)}
:is(.contract-split-list,.contract-supports-table,.support-panel) .support-dot{display:inline-block;width:9px;height:9px;margin-right:7px;border-radius:var(--radius-2xs);vertical-align:middle;background:var(--support-tone)}
.contract-split-list li,.contract-supports-table tr,.support-panel{--support-tone:var(--navy)}
:is(.contract-split-list,.contract-supports-table,.support-panel) .support-tone-1,.support-panel.support-tone-1{--support-tone:var(--sky)}
:is(.contract-split-list,.contract-supports-table,.support-panel) .support-tone-2,.support-panel.support-tone-2{--support-tone:var(--navy)}
:is(.contract-split-list,.contract-supports-table,.support-panel) .support-tone-3,.support-panel.support-tone-3{--support-tone:var(--gold-accent)}
:is(.contract-split-list,.contract-supports-table,.support-panel) .support-tone-4,.support-panel.support-tone-4{--support-tone:var(--success)}
:is(.contract-split-list,.contract-supports-table,.support-panel) .support-tone-5,.support-panel.support-tone-5{--support-tone:var(--warning-strong)}
:is(.contract-split-list,.contract-supports-table,.support-panel) .support-tone-6,.support-panel.support-tone-6{--support-tone:var(--gray-400)}

.vs-queue-actions{display:inline-flex;gap:8px;margin-left:auto}@media(max-width:900px){.vs-queue-actions{margin-left:0}}

/* F3 (étape 7) — écran Interactions : fil de tous les dossiers, tuiles, semaine, rythme,
   dossiers silencieux et panneau « Note d'appel ». */
.interactions-page kbd,#call-note-panel kbd{display:inline-block;margin-left:6px;border:1px solid currentColor;border-radius:var(--radius-2xs);padding:0 5px;font:700 var(--text-2xs)/1.5 var(--font-sans);opacity:.8}
.ix-just-added{animation:ix-flash 1.6s ease-out}
@keyframes ix-flash{from{background:var(--warning-bg)}to{background:transparent}}
@media(prefers-reduced-motion:reduce){.ix-just-added{animation:none}}

/* Fiche partenaire (lot 2) : colonne d'identité fixe + onglets. .identity-rail est
   prévue pour être reprise par la fiche client (variante B). */
.partner-sheet{display:grid;grid-template-columns:290px minmax(0,1fr);gap:16px;align-items:start}
.identity-rail{position:sticky;top:16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-soft)}
.identity-rail-head{background:linear-gradient(160deg,var(--navy),var(--navy-2));color:var(--paper);padding:16px 18px}
.identity-rail-head .eyebrow{color:var(--gray-200)}
.identity-rail-head h2{font-family:var(--font-serif);font-weight:500;font-size:var(--text-2xl);margin:4px 0 6px;color:var(--paper)}
.identity-rail-head p{margin:2px 0;font-size:var(--text-sm);color:var(--gray-150);overflow-wrap:anywhere}
.identity-rail-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.identity-rail-chip{font:inherit;font-size:var(--text-xs);font-weight:600;color:var(--paper);background:transparent;border:1px solid rgba(255,255,255,.4);border-radius:var(--radius-sm);padding:4px 9px;cursor:pointer;text-decoration:none}
.identity-rail-chip:hover{background:rgba(255,255,255,.12)}
.identity-rail-block{padding:13px 18px;border-bottom:1px solid var(--gray-150)}
.identity-rail-block:last-child{border-bottom:0}
.identity-rail-block h3{margin:0 0 8px;font-size:var(--text-2xs);letter-spacing:.12em;text-transform:uppercase;color:var(--slate);font-weight:700}
.identity-rail-pills{display:flex;flex-wrap:wrap;gap:6px}
.kv-line{display:flex;justify-content:space-between;gap:10px;font-size:var(--text-sm);padding:3px 0}
.kv-line span{color:var(--text-muted)}.kv-line strong{color:var(--navy);font-weight:600;text-align:right}
.partner-sheet-main{min-width:0}
.partner-sheet-main .page-tabs{display:flex}
.tab-count{margin-left:6px;font-size:var(--text-2xs);background:var(--gray-150);color:var(--navy);border-radius:var(--radius-pill);padding:1px 7px}
.page-tabs button.is-active .tab-count{background:rgba(255,255,255,.2);color:var(--paper)}
.partner-sheet-grid>.card,.stack-panel>.card{margin:0}
.stack-panel{display:grid;gap:14px}
.partner-sheet-grid[hidden],.stack-panel[hidden]{display:none}
.todo-list{display:grid;gap:8px}
.todo-item{display:grid;grid-template-columns:28px 1fr auto;gap:10px;align-items:center;padding:9px 10px;border:1px solid var(--gray-150);border-radius:var(--radius-md)}
.todo-item strong{display:block;font-size:var(--text-sm)}.todo-item small{color:var(--text-muted);font-size:var(--text-xs)}
.todo-icon{width:28px;height:28px;border-radius:var(--radius-sm);display:grid;place-items:center;font-weight:700;background:var(--gray-100);color:var(--navy)}
.todo-item.tone-warning .todo-icon{background:var(--warning-bg);color:var(--warning)}
.todo-item.tone-success .todo-icon{background:var(--success-bg);color:var(--success)}
@media(max-width:860px){.partner-sheet{grid-template-columns:1fr}.identity-rail{position:static}}

/* Fiche client, lot 1 : barre d'actions à menus, répartition en barre 100 %,
   profil en réglettes. Couleurs des graphiques validées (une teinte par poche,
   toujours la même d'un écran à l'autre). */
.action-menu{position:relative}
.action-menu>summary{list-style:none;cursor:pointer;user-select:none}
.action-menu>summary::-webkit-details-marker{display:none}
.action-menu[open]>summary{border-color:var(--sky);box-shadow:0 0 0 3px rgba(119,148,187,.14)}
.action-menu-panel{position:absolute;right:0;top:calc(100% + 6px);z-index:30;min-width:240px;display:grid;gap:2px;padding:6px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper);box-shadow:0 16px 38px rgba(12,26,48,.18)}
.action-menu-panel a,.action-menu-panel button{display:flex;align-items:center;width:100%;padding:9px 11px;border:0;border-radius:var(--radius-sm);background:none;color:var(--ink);font:inherit;font-size:var(--text-md);font-weight:650;text-align:left;text-decoration:none;cursor:pointer}
.action-menu-panel a:hover,.action-menu-panel button:hover{background:var(--gray-100);color:var(--navy)}
.action-menu-panel a:focus-visible,.action-menu-panel button:focus-visible{outline:2px solid var(--navy);outline-offset:-2px}
.action-menu-panel .is-danger{margin-top:4px;border-top:1px solid var(--line);border-radius:0 0 var(--radius-sm) var(--radius-sm);color:var(--danger)}
.action-menu-panel.is-floating,[data-action-menu]>.is-floating{position:fixed;right:auto;bottom:auto;z-index:60;overflow-y:auto}
/* Parent à z-index d'un menu ouvert (cellule d'actions d'une ligne) : au premier plan, sinon les lignes suivantes recouvrent le panneau. */
.has-open-menu{z-index:60!important}

/* Revue enchaînée des partenaires (lot 3) : file à gauche, convention au centre, grille à droite. */
.review-station{display:grid;grid-template-columns:240px minmax(0,1fr) minmax(340px,420px);gap:16px;align-items:start}
.review-queue{display:grid;gap:6px;padding:18px 14px}
.review-queue h2,.review-form-head h2,.review-empty h2{margin:2px 0 8px;font-family:var(--font-serif);font-weight:400;font-size:var(--text-2xl);color:var(--ink)}
.review-queue-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 10px;border:1px solid transparent;border-radius:var(--radius-md);color:var(--ink);text-decoration:none}
.review-queue-item:hover{background:var(--surface-subtle)}
.review-queue-item.is-current{border-color:var(--navy);background:var(--surface-subtle);box-shadow:inset 3px 0 0 var(--navy)}
.review-queue-item b{display:block;font-weight:600;font-size:var(--text-md);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.review-queue-item small{display:block;font-size:var(--text-xs);color:var(--muted)}
.review-queue-item small.tone-danger{color:var(--danger-strong)}
.review-queue-item small.tone-warning{color:var(--warning-strong)}
.review-queue-chevron{color:var(--muted)}
.review-queue-note{margin:8px 2px 0;color:var(--muted);font-size:var(--text-xs)}
.review-station .vs-viewer{height:calc(100vh - 170px)}
.review-no-document{display:grid;gap:8px;align-content:start;padding:22px;border:1px dashed var(--line);border-radius:var(--radius-xl);background:var(--surface-subtle)}
.review-no-document h3{margin:0;color:var(--navy);font-size:var(--text-lg)}
.review-no-document p{margin:0;color:var(--muted);font-size:var(--text-base)}
.review-form{display:grid;gap:12px;padding:20px}
.review-form-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.review-form-head h2 a{color:inherit;text-decoration:none}
.review-criterion{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;margin:0;padding:0;border:0}
.review-criterion legend{float:left;padding:0;font-size:var(--text-base);font-weight:600;color:var(--ink)}
.review-criterion legend small{display:block;font-weight:400;font-size:var(--text-xs);color:var(--muted)}
.review-picks{display:flex;gap:4px}
.review-pick{position:relative;display:inline-grid;margin:0}
.review-pick input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.review-pick span{display:grid;place-content:center;width:32px;height:32px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper);color:var(--text-secondary);font-weight:600;font-size:var(--text-base)}
.review-pick input:checked+span{background:var(--navy);border-color:var(--navy);color:var(--paper)}
.review-pick input:focus-visible+span{box-shadow:var(--focus-ring)}
.review-result{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:baseline;padding:10px 12px;border-radius:var(--radius-md);background:var(--success-bg);color:var(--success-strong);font-weight:650;font-size:var(--text-base)}
.review-result small{font-weight:400;color:var(--muted);font-size:var(--text-xs)}
.review-result.is-below{background:var(--danger-bg);color:var(--danger-strong)}
.review-field{display:grid;gap:4px;font-size:var(--text-sm);color:var(--muted)}
.review-field small{font-size:var(--text-xs)}
.review-dates{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.review-convention{display:grid;gap:6px;padding:10px 12px;border-radius:var(--radius-md);background:var(--warning-bg)}
.review-proposal{margin:0;font-size:var(--text-sm);color:var(--warning-strong)}
.review-writes{display:grid;gap:4px;padding:12px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-subtle);font-size:var(--text-sm);color:var(--text-secondary)}
.review-writes b{color:var(--navy)}
.review-actions{display:flex;justify-content:flex-end;gap:8px}
.review-empty{display:grid;gap:10px;justify-items:start;max-width:560px}
.review-empty p{margin:0;color:var(--muted)}
.review-history td small{color:var(--muted)}
@media(max-width:1280px){.review-station{grid-template-columns:220px minmax(0,1fr)}.review-station .vs-viewer,.review-no-document{grid-column:1/-1;grid-row:2;height:60vh}}
@media(max-width:760px){.review-station{grid-template-columns:minmax(0,1fr)}.review-station .vs-viewer,.review-no-document{grid-row:auto}.review-dates{grid-template-columns:1fr}.review-criterion{grid-template-columns:1fr}}
.review-history tr:not(.review-history-note) td{border-bottom:0;padding-bottom:4px}
.review-history .review-history-note td{padding-top:0;color:var(--text-secondary);font-size:var(--text-sm)}
.review-result.is-empty{background:var(--surface-subtle);color:var(--muted)}

/* Fiche client, lot 2 : colonne d'identité (reprend .identity-rail de la fiche
   partenaire), repliable d'un clic ; onglets dans la page. */
.identity-rail-block h3 a{float:right;letter-spacing:0;text-transform:none;font-weight:700}
.tab-count.is-alert{background:var(--danger);color:var(--paper)}
/* Fiche client, lot 3 : variantes trésorerie et prospect de la vue d'ensemble. */
.treasury-maturity{display:grid;grid-template-columns:78px minmax(0,1fr) auto 64px;gap:12px;align-items:center;padding:10px 6px;border-bottom:1px solid var(--gray-150);font-size:var(--text-sm)}
.treasury-maturity:last-of-type{border-bottom:0}
.treasury-maturity small{display:block;color:var(--muted);font-size:var(--text-xs)}
.treasury-maturity .small-button{margin-top:6px}
.treasury-maturity>a{font-weight:700;white-space:nowrap}
.treasury-maturity.is-due{background:var(--warning-bg);border-radius:var(--radius-sm);border-bottom-color:transparent}
.support-term{background:var(--chart-hodas)}.support-euro{background:var(--chart-external)}.support-money{background:var(--chart-business)}.support-bond{background:var(--chart-real-estate)}.support-other{background:var(--slate)}
.kv-line.is-warning strong,.kv-line.is-warning span{color:var(--warning)}
@media(max-width:860px){.treasury-maturity{grid-template-columns:64px minmax(0,1fr) auto}.treasury-maturity>a{display:none}}

/* Charges et frais (lot 2 de la refonte des écrans de pilotage, 06.10.2026).
   Reprend les composants fb-* du lot 1 ; ex- ne porte que ce qui est propre à l'écran. */
.ex-amount{font-weight:800;color:var(--navy);white-space:nowrap}
.ex-more>summary{padding:4px 9px;min-height:28px;letter-spacing:.08em}
.ex-more .fb-menu-list{min-width:200px}

/* Panneau d'ajout */
.ex-sheet{position:fixed;inset:0;z-index:1200;display:flex;justify-content:flex-end}
.ex-sheet[hidden]{display:none}
.ex-sheet-backdrop{position:absolute;inset:0;background:rgba(12,26,48,.45)}
.ex-sheet-panel{position:relative;width:min(560px,100%);height:100%;overflow:auto;padding:22px 24px 40px;background:var(--paper);box-shadow:-18px 0 44px rgba(12,26,48,.22)}
.ex-sheet-panel h2{font-family:var(--font-serif);font-weight:500;font-size:var(--text-3xl);color:var(--ink);margin:4px 0 12px}
.ex-sheet-close{position:absolute;top:14px;right:16px;border:0;background:none;font-size:var(--text-3xl);line-height:1;color:var(--muted);cursor:pointer}
.ex-sheet-tabs{margin:0 0 16px}
.ex-sheet-tabs button{padding:8px 14px;border:0;border-radius:var(--radius-md);background:none;font:inherit;font-weight:750;font-size:var(--text-lg);color:var(--gray-700);cursor:pointer;white-space:nowrap}
.ex-sheet-tabs button.is-active{background:var(--navy);color:var(--paper)}
.ex-file{display:grid;gap:6px;padding:12px;border:1px dashed var(--line-dark);border-radius:var(--radius-md);background:var(--gray-25)}
.ex-file small{color:var(--muted);font-weight:500;line-height:1.45}

/* Import de trajets */@media(max-width:720px){.ex-sheet-panel{width:100%;padding:18px 16px 32px}}

/* Rémunérations (lot 3 de la refonte des écrans de pilotage, 06.10.2026).
   Reprend les composants fb-* et le volet ex-sheet ; rm- ne porte que ce qui est propre à l'écran. */
.rm-progress .tone-received,.rm-legend .tone-received::before{background:var(--success)}
.rm-progress .tone-late,.rm-legend .tone-late::before{background:var(--danger)}
.rm-progress .tone-due,.rm-legend .tone-due::before{background:var(--warning-accent)}
.rm-progress .tone-run,.rm-legend .tone-run::before{background:var(--gray-150)}
.rm-legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:8px;font-size:var(--text-md);color:var(--muted)}
.rm-legend span{display:inline-flex;align-items:center;gap:6px}
.rm-legend span::before{content:"";width:10px;height:10px;border-radius:var(--radius-2xs);background:var(--sky)}
.rm-legend .tone-accrued::before{background:var(--navy-2)}
.rm-legend .tone-received-soft::before{background:var(--success-border)}
.rm-add>summary.rm-add-chip{padding:6px 12px;border:1px dashed var(--gray-350);border-radius:var(--radius-pill);font-size:var(--text-lg);font-weight:700;color:var(--navy);background:var(--paper)}
.rm-add>summary.rm-add-chip:hover{background:var(--gray-75)}
.rm-add .fb-menu-list{left:0;right:auto}
.rm-note{margin:10px 0 0;font-size:var(--text-md);color:var(--muted)}
.rm-more>summary{cursor:pointer;margin-top:10px;font-weight:700;color:var(--navy);font-size:var(--text-base)}
.rm-undo-link{border:0;background:none;padding:0;font:inherit;font-size:var(--text-base);font-weight:700;color:var(--navy);text-decoration:underline;cursor:pointer}

/* Tableau de bord (lot 3 de la refonte des écrans de pilotage, 06.10.2026). */
.db-today-meeting{display:grid;gap:2px;text-align:right;font-size:var(--text-md);color:var(--mist)}
.db-today-meeting a{color:var(--paper);text-decoration:none}
.db-today-meeting strong{font-size:var(--text-lg)}
.db-today-assistants{display:flex;justify-content:flex-end;gap:12px;flex-wrap:wrap;margin-top:4px}
.db-today-meeting .db-today-assistants a{color:var(--gold-accent);font-weight:700}
.db-spark{position:absolute;right:16px;top:12px;width:96px;height:22px;overflow:visible}
.db-spark polyline{fill:none;stroke:var(--navy-2);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.db-spark.tone-success polyline{stroke:var(--success)}
.db-spark.tone-gold polyline{stroke:var(--gold-accent)}
.db-spark.tone-sky polyline{stroke:var(--sky)}

.db-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:16px;align-items:start;margin-bottom:16px}
.db-chart{position:relative;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:6px;align-items:end;height:200px;padding-bottom:22px}
.db-objective{position:absolute;left:0;right:0;height:0;border-top:2px dashed var(--gold-accent);margin-bottom:22px;pointer-events:none}
.rm-legend .tone-patrimonial::before{background:var(--navy-2)}
.rm-legend .tone-tresorerie::before{background:var(--success)}
.rm-legend .tone-objective::before{height:0;border-top:2px dashed var(--gold-accent);background:none;border-radius:0}

.db-lines{padding:16px 18px;display:grid;gap:14px}
.db-lines-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.db-lines-head a{font-size:var(--text-md);font-weight:700}
.db-lines-title{margin:0 0 6px;font-weight:750;color:var(--ink);font-size:var(--text-lg)}
.db-split{display:flex;height:18px;border-radius:var(--radius-pill);overflow:hidden;background:var(--gray-100)}
.db-split i{display:block;height:100%;width:0}
.db-split .tone-patrimonial{background:var(--navy-2)}
.db-split .tone-tresorerie{background:var(--success)}
.db-split-legend{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:6px 0 10px;font-size:var(--text-md);color:var(--gray-700)}
.db-split-legend span:last-child{text-align:right}
.db-split-legend b{color:var(--navy-2)}
.db-split-legend b.tone-tresorerie{color:var(--success)}
.db-ladder{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;align-items:end}
.db-ladder a{display:grid;gap:4px;justify-items:center;color:var(--muted);text-decoration:none;font-size:var(--text-md)}
.db-ladder a>span{display:flex;align-items:flex-end;width:100%;height:64px;border-bottom:2px solid var(--gray-150)}
.db-ladder i{display:block;width:100%;height:0;background:var(--success);border-radius:var(--radius-xs) var(--radius-xs) 0 0}

.db-bottom{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start}
.db-bottom>.card{margin:0}
.db-rank{padding:16px 18px}
.db-rank .fb-side-head a{font-size:var(--text-md);font-weight:700}
.db-rank-row{display:grid;gap:5px;margin-bottom:12px}
.db-rank-row>div{display:flex;justify-content:space-between;gap:10px;font-size:var(--text-lg)}
.db-rank-row span{color:var(--muted);white-space:nowrap;font-size:var(--text-md)}
.db-op{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--gray-150)}
.db-op>div{display:grid;gap:1px}
.db-op span{font-size:var(--text-md);color:var(--muted)}
.db-op .num{text-align:right}@media(max-width:1180px){.db-today-title,.db-today-meeting{grid-column:1/-1;text-align:left}}@media(max-width:1180px){.db-grid,.db-bottom{grid-template-columns:1fr}}@media(max-width:720px){.db-spark{width:90px}.db-chart{height:160px}}

/* Documents réglementaires (refonte du 06/10/2026) : parcours par client et listes des
   pièces. Couleurs de l'application en traits pleins et fins, chiffres sans gras. */
.reg-page,.reg-panel{--reg-ok:var(--success);--reg-ok-bg:var(--success-bg);--reg-ok-line:var(--success);--reg-wait:var(--warning);--reg-wait-bg:var(--warning-bg);--reg-wait-line:var(--warning-accent);
  --reg-todo:var(--danger);--reg-todo-bg:var(--danger-bg);--reg-todo-line:var(--danger);--reg-off:var(--slate);--reg-off-bg:var(--gray-150);--reg-info:var(--navy-2);--reg-info-bg:var(--gray-100);--reg-flow-on:var(--navy-2)}
@keyframes reg-flash{from{background:var(--reg-ok-bg)}to{background:transparent}}

.reg-panel .modal-heading h2{font-weight:400}
.reg-panel [data-reg-panel-body]{padding-bottom:28px;background:var(--surface)}
.reg-panel [data-reg-panel-body]>:not(.modal-heading){margin-left:28px;margin-right:28px}
.reg-panel .side-panel-actions{margin:12px -28px 0;padding:12px 28px;background:var(--surface)}@media(max-width:900px){
  .reg-panel [data-reg-panel-body]>:not(.modal-heading){margin-left:18px;margin-right:18px}
  .reg-panel .side-panel-actions{margin:12px -18px 0;padding:12px 18px}
}
/* Reporting (lot 4 de la refonte des écrans de pilotage, maquette m5 validée le 06.10.2026). */
.rp-seg{display:inline-flex;flex-wrap:wrap;gap:2px;padding:3px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper)}
.rp-seg button,.rp-seg summary{padding:7px 12px;border:0;border-radius:var(--radius-md);background:none;color:var(--gray-700);font:inherit;font-size:var(--text-lg);font-weight:700;cursor:pointer;white-space:nowrap}
.rp-seg button:hover,.rp-seg summary:hover{background:var(--gray-75)}
.rp-seg button.is-active{background:var(--navy);color:var(--paper)}
.rp-seg-sm button,.rp-seg-sm summary{padding:5px 10px;font-size:var(--text-md)}
.rp-menu-back{color:var(--navy)!important;font-weight:800!important}
.rp-menu-search{margin:4px 6px 6px;padding:7px 9px;border:1px solid var(--gray-350);border-radius:var(--radius-sm);font:inherit}
.rp-menu-values{display:grid;gap:2px}
.fb-menu-list button.is-active{background:var(--gray-100);color:var(--navy);font-weight:800}
.rp-month-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:9px 8px;border-bottom:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink);text-decoration:none}
a.rp-month-row:hover{background:var(--gray-75)}
.rp-month-row>div{display:grid;gap:1px;min-width:0}
.rp-month-row strong{color:var(--navy);font-size:var(--text-lg)}
.rp-month-row small{color:var(--muted);font-size:var(--text-md)}
.rp-month-row>b{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--navy)}
.rp-break-head{display:flex;justify-content:space-between;gap:10px}
.rp-break-head strong{color:var(--navy);font-size:var(--text-lg)}
.rp-break-head small{color:var(--gray-700);font-size:var(--text-md);font-variant-numeric:tabular-nums;white-space:nowrap}

.rp-obj-block{display:grid;gap:10px}
.rp-obj-block+.rp-obj-block{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.rp-obj-row{display:grid;gap:5px}
.rp-obj-top{display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:var(--text-lg)}
.rp-obj-top strong{color:var(--navy)}
.rp-obj-top>span{display:inline-flex;gap:8px;align-items:center;font-variant-numeric:tabular-nums;color:var(--gray-700)}
.rp-obj-track{position:relative;display:block;height:10px;border-radius:var(--radius-pill);background:var(--gray-100)}
.rp-obj-track i{position:absolute;left:0;top:0;bottom:0;border-radius:var(--radius-pill);background:var(--navy-2)}
.rp-obj-row.tone-success .rp-obj-track i{background:var(--success)}
.rp-obj-row.tone-warning .rp-obj-track i{background:var(--warning-accent)}
.rp-obj-row.tone-danger .rp-obj-track i{background:var(--danger)}
.rp-obj-mark{position:absolute;top:-4px;bottom:-4px;width:2px;margin-left:-1px;background:var(--navy)}
.rp-view-row{display:flex;align-items:center;gap:4px;border-radius:var(--radius-sm)}
.rp-view-row.is-active{background:var(--gray-100)}
.rp-view-row .rp-view-open{flex:1}
.rp-view-row .rp-view-del{width:auto!important;color:var(--muted)!important;font-size:var(--text-xl)!important}@media(max-width:760px){.rp-seg{width:100%}}
@media print{.rp4 .rp-toolbar,.rp-views-menu,.rp-chart-note,[data-rp-detail-more]{display:none!important}}

/* Reporting, lot 4 : rendu plus fin et plus sobre (Thomas, 06.10.2026). */
.rp-break-head strong,.rp-obj-top strong,.rp-month-row strong{font-weight:600}
.rp-obj-track{height:6px;background:var(--gauge-track)}
.rp-obj-track i{background:var(--sky)}
.rp-obj-row.tone-success .rp-obj-track i{background:var(--gauge-ok)}
.rp-obj-row.tone-warning .rp-obj-track i{background:var(--gauge-warn)}
.rp-obj-row.tone-danger .rp-obj-track i{background:var(--gauge-ko)}
.rp-obj-mark{top:-3px;bottom:-3px;width:1.5px;opacity:.45}
.rp-month-row>b{font-weight:500}

/* Pastille de date partagée (écrans Événements et Comptes rendus, refonte du 06/10/2026) :
   jour en gros, mois abrégé dessous, heure facultative ; variante à venir bleu clair. */
.date-chip{display:grid;justify-items:center;align-content:center;width:50px;min-height:48px;padding:4px 0;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--gray-25);line-height:1.1;text-align:center}
.date-chip b{font-size:var(--text-xl);color:var(--navy);font-weight:600}
.date-chip small{font-size:var(--text-2xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.date-chip.is-upcoming{background:var(--gray-100);border-color:var(--line-dark)}.date-chip.is-upcoming b{color:var(--navy-2)}

/* Écran Événements (refonte du 06/10/2026). */
.ev-person,.ev-note{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--paper)}
.ev-person>span,.ev-note>span{flex:1;display:grid;min-width:0}
.ev-person a:not(.small-button){font-size:var(--text-base);font-weight:700;color:var(--ink);text-decoration:none}
.ev-person small,.ev-note small{color:var(--muted);font-size:var(--text-sm)}

/* Objectifs (refonte validée le 06/10/2026) : bandeau « à traiter » repris du tableau de bord,
   jauges pleines aux couleurs de l'ancien écran (une par indicateur), repère du temps écoulé,
   volet ex-sheet. ob- ne porte que ce qui est propre à l'écran. */
.ob-card{padding:14px 18px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-xl);box-shadow:var(--shadow-soft);cursor:pointer;transition:border-color .15s ease}
.ob-card:hover{border-color:var(--gray-300)}
.ob-card[hidden]{display:none}@media(max-width:760px){
  .ob-card.is-compact .tag{display:none}
}

/* Documentation juridique (refonte du 06.10.2026, lot 1) : bibliothèque des procédures,
   politiques, pièces et modèles ; calendrier de conformité à droite. Couleurs de
   l'application, chiffres fins, pas de barre de couleur. */
.side-panel-actions form{margin:0 auto 0 0}
[data-legal-for][hidden]{display:none!important}

/* Écran Produits financiers (refonte du 06/10/2026) : liste groupée par classe d'actif,
   volet par produit, dépôt d'un DIC par glisser. Rendu fin : chiffres en demi-gras,
   jauges en traits pleins et fins, couleurs de l'application. */
.product-panel-body{padding:0 22px 4px;background:var(--paper)}
.product-panel-pills{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.product-panel-figures{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0 12px}
.product-panel-figures div{border:1px solid var(--line);border-radius:var(--radius-md);padding:10px 12px;background:var(--surface)}
.product-panel-figures span{display:block;font-size:var(--text-xs);color:var(--text-muted)}
.product-panel-figures b{display:block;font-size:var(--text-xl);font-weight:600;color:var(--navy);margin-top:2px}
.product-panel-figures small{color:var(--text-muted);font-size:var(--text-2xs)}
.product-panel-card{border:1px solid var(--line);border-radius:var(--radius-lg);padding:12px 14px;margin-bottom:12px;background:var(--surface)}
.product-panel-card h3{display:flex;justify-content:space-between;align-items:baseline;margin:0 0 8px;font-size:var(--text-2xs);letter-spacing:.12em;text-transform:uppercase;color:var(--slate)}
.product-panel-card h3 a{letter-spacing:0;text-transform:none;font-size:var(--text-sm);color:var(--navy);font-weight:600}@media(max-width:860px){
  .product-panel-figures{grid-template-columns:1fr}}

/* Fiche contrat v2, onglet Supports (lot B, 06.10.2026) : traits fins, chiffres non gras. */
.support-panel .support-dot{width:10px;height:10px}
.support-panel h2{font-weight:400}
.support-panel-tiles{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2);margin:0}
.support-panel-tiles div{padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-md)}
.support-panel-tiles dt{color:var(--muted);font-size:var(--text-sm)}
.support-panel-tiles dd{margin:2px 0 0;color:var(--ink);font-size:var(--text-lg);font-variant-numeric:tabular-nums}
.support-panel-moves{margin:0;padding:0;list-style:none}
.support-panel-moves li{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:var(--space-3);align-items:baseline;padding:10px 0;border-top:1px solid var(--gray-200)}
.support-panel-moves li:first-child{border-top:0}
.support-panel-moves span{color:var(--muted);font-size:var(--text-sm);font-variant-numeric:tabular-nums}
.support-panel-moves strong{display:block;font-size:var(--text-base);font-weight:600}
.support-panel-moves small{color:var(--muted);font-size:var(--text-sm)}
.support-panel-moves b{font-size:var(--text-base);font-weight:400;white-space:nowrap;font-variant-numeric:tabular-nums}
.support-panel .side-panel-actions .primary{margin-left:auto}

/* Écran Produits, lot 2 : file « À traiter » enchaînée (poste à 3 colonnes de la revue
   des partenaires). Critères en traits fins aux couleurs de l'application. */
.review-queue-item.is-done{opacity:.6}
.tm-label{font-size:var(--text-base);color:var(--ink)}

/* Sans gras (Thomas, 06/10) : aucune écriture en gras dans l'application.
   Règle centrale, prioritaire sur les poids écrits dans les blocs ci-dessus,
   les gabarits (strong, b, th) et les styles posés par les scripts.
   Seuls les titres de page et de bloc gardent un poids moyen (500).
   Les nouveaux blocs ajoutés plus bas n'ont pas à fixer de font-weight. */
:root{--weight-regular:400;--weight-title:500}
html body,html body *,html body *::before,html body *::after{font-weight:var(--weight-regular)!important}
html body :is(h1,h2,h3,.brand strong){font-weight:var(--weight-title)!important}

/* Lot 2 : fiche produit (maquette validée le 07.10.2026). Nature du produit en tête,
   sommaire à gauche, source de chaque valeur à côté du champ, barre d'enregistrement
   qui apparaît dès qu'un champ change. Traits fins, aucun aplat. */
.pe-id{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;flex-wrap:wrap}
.pe-id h2{margin:0;font-family:var(--font-display,Georgia,serif);color:var(--navy)}
.pe-pills{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.pe-pills span{border:1px solid var(--line);border-radius:var(--radius-pill);padding:3px 10px;font-size:var(--text-xs);color:var(--gray-750)}
.pe-nature{text-align:right;display:grid;gap:6px;justify-items:end}
.pe-nature small{color:var(--muted);font-size:var(--text-xs)}
.pe-seg{display:inline-flex;border:1px solid var(--line);border-radius:var(--radius-md);padding:2px;gap:2px;background:var(--paper)}
.pe-seg label{position:relative;margin:0;cursor:pointer}
.pe-seg input{position:absolute;opacity:0;pointer-events:none}
.pe-seg span{display:block;padding:6px 14px;border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--muted)}
.pe-seg input:checked+span{background:var(--navy);color:var(--paper)}
.pe-seg input:focus-visible+span{outline:1px solid var(--navy-2,var(--navy));outline-offset:1px}
.pe-layout{display:grid;grid-template-columns:200px minmax(0,1fr);gap:22px;align-items:start;margin-top:16px}
.pe-nav{position:sticky;top:20px;display:flex;flex-direction:column;gap:2px;border-left:1px solid var(--line);padding-left:2px}
.pe-nav a{padding:7px 12px;font-size:var(--text-sm);color:var(--gray-700);text-decoration:none;border-left:2px solid transparent;margin-left:-3px}
.pe-nav a:hover{color:var(--navy)}
.pe-nav a.is-on{border-left-color:var(--navy);color:var(--navy)}
.pe-nav a small{color:var(--gray-500);margin-left:4px}
.pe-main,.pe-form{display:flex;flex-direction:column;gap:16px;min-width:0}
.pe-main>.card,.pe-form>.card{margin:0;scroll-margin-top:20px}
.pe-src{font-size:var(--text-sm);color:var(--gray-550);margin-left:6px;letter-spacing:0;text-transform:none;cursor:help}
.pe-src.is-dic{color:var(--success)}
.pe-src.is-warn{color:var(--gold-ink);border-bottom:1px solid var(--gold-accent)}
.pe-tag{display:inline-block;border:1px solid var(--line);border-radius:var(--radius-pill);padding:1px 8px;font-size:var(--text-2xs,11px);color:var(--gray-700);white-space:nowrap}
.pe-tag.is-gold{border-color:var(--gold-accent);color:var(--gold-ink)}
.pe-tag.is-ok{border-color:var(--success-soft-line);color:var(--success)}
.pe-years td:first-child{color:var(--navy)}
.pe-history{margin-top:12px}
.pe-history summary{cursor:pointer;color:var(--navy-2,var(--navy));font-size:var(--text-sm)}
.pe-collapse summary{display:flex;align-items:center;gap:12px;cursor:pointer;list-style:none}
.pe-collapse summary::-webkit-details-marker{display:none}
.pe-collapse summary::after{content:'⌄';margin-left:auto;color:var(--gray-500)}
.pe-collapse[open] summary{margin-bottom:14px}
.pe-collapse-title{font-family:var(--font-display,Georgia,serif);color:var(--navy);font-size:var(--text-lg,18px)}
.pe-off{display:none!important}
.pe-savebar{position:fixed;right:28px;top:96px;z-index:40;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-xl);box-shadow:0 14px 34px rgba(18,35,69,.16);padding:10px 12px 10px 18px;display:flex;gap:12px;align-items:center;font-size:var(--text-sm);color:var(--gray-750)}
.pe-savebar[hidden]{display:none}
.pe-savebar i{width:7px;height:7px;border-radius:50%;background:var(--gold-accent);display:inline-block;margin-right:6px;vertical-align:middle}
.pe-dic{border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:14px}
.pe-anchor{display:block;height:0}
@media (max-width:900px){.pe-layout{grid-template-columns:minmax(0,1fr)}.pe-nav{position:static;flex-direction:row;flex-wrap:wrap;border-left:0;border-bottom:1px solid var(--line)}.pe-nav a{border-left:0;border-bottom:2px solid transparent;margin:0 0 -1px}.pe-nav a.is-on{border-bottom-color:var(--navy)}.pe-nature{text-align:left;justify-items:start}.pe-savebar{left:16px;right:16px;top:auto;bottom:16px}}
.pe-form label:has(>.pe-srcs){position:relative}
.pe-srcs{position:absolute;top:0;right:0;display:inline-flex;gap:4px}
.pe-nowrap{white-space:nowrap}
.pe-link{border:0;background:none;padding:0;color:var(--navy-2,var(--navy));font:inherit;font-size:var(--text-sm);cursor:pointer;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px}
.pe-link:hover{text-decoration-color:var(--navy)}
.pe-announce{padding:12px 0;border-bottom:1px solid var(--line)}
.pe-announce:last-child{border-bottom:0}
.pe-announce .form-row{align-items:end}

/* Lot 3 : rémunération par enveloppe (fiche produit) et frais de conseil (fiche contrat).
   Lignes à filet fin, répartition HODAS / établissement en barre très fine. */
.pe-env{margin-top:18px}
.pe-env-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;border-bottom:1px solid var(--line);padding-bottom:5px}
.pe-sublegend{margin:0;font-size:var(--text-2xs,11px);letter-spacing:.12em;text-transform:uppercase;color:var(--slate)}
.pe-env-table{width:100%;border-collapse:collapse;font-size:var(--text-sm);margin-top:4px}
.pe-env-table th{text-align:left;font-size:var(--text-2xs,11px);color:var(--muted);padding:6px;border-bottom:1px solid var(--line);background:none;text-transform:none;letter-spacing:0}
.pe-env-table td{padding:8px 6px;border-bottom:1px solid var(--gray-150);vertical-align:top}
.pe-env-table td small{display:block;color:var(--muted);font-size:var(--text-xs)}
.pe-env-table .num{text-align:right;font-variant-numeric:tabular-nums}
.pe-env-table tr.is-default td{color:var(--gray-700)}

/* Lot 4 : Patrimoine et Comptes en onglets de la fiche client (maquettes p1, p2, p5,
   p6 validées le 07.10.2026). Lignes à filet fin, pastilles à contour, barre empilée
   très fine ; aucun aplat pastel, aucun bandeau plein. pt- : patrimoine, ac- : comptes. */
.side-panel .pt-form,.side-panel .ac-form{display:grid;gap:12px}
.pt-form .holder-row{align-items:end}
.pt-form [data-remove-holder]{border:0;padding:0 0 10px;background:none;box-shadow:none;color:var(--muted);font-size:var(--text-sm);text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px}
.pt-form [data-add-holder]{justify-self:start;border:0;padding:0;background:none;box-shadow:none;color:var(--navy);font-size:var(--text-md)}
.ac-form .form-row,.pt-form .form-row{align-items:start}

/* --- Girardin et valeur du relevé retenue (08.10.2026) --------------------------------- */
/* --- Fonds en euros : boosts multiples, frais UC / fonds €, marges temporaires (11.10.2026) --- */
.pe-yr{margin:6px 0 18px}
.pe-yr-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;padding:4px 0;border-bottom:1px solid var(--navy)}
.pe-yr-year{font-family:var(--font-serif);font-size:var(--text-2xl);color:var(--navy);font-weight:400}
.pe-yr-meta{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.pe-yr-meta small{color:var(--muted);font-size:var(--text-sm)}
.pe-yr-base{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:10px 4px;border-bottom:1px solid var(--line)}
.pe-yr-t{display:block;color:var(--ink)}
.pe-yr-s{display:block;color:var(--muted);font-size:var(--text-sm);margin-top:1px;line-height:1.4}
.pe-yr-right{display:flex;align-items:baseline;gap:24px}
.pe-yr-rate{font-variant-numeric:tabular-nums}
.pe-yr-acts{display:inline-flex;gap:12px;justify-content:flex-end}
.pe-boosts{width:100%;border-collapse:collapse;font-size:var(--text-base);background:none}
.pe-boosts th{font-size:var(--text-sm);color:var(--muted);font-weight:400;text-align:left;padding:6px 4px;border-bottom:1px solid var(--line);background:none;text-transform:none;letter-spacing:0}
.pe-boosts td{padding:9px 4px;border-bottom:1px solid var(--line);vertical-align:top}
.pe-boosts .num{text-align:right;font-variant-numeric:tabular-nums}
.pe-boosts .pe-tag{margin-left:4px;vertical-align:1px}
.pe-warn{border:1px solid var(--line);border-left:2px solid var(--gold-accent);border-radius:var(--radius-sm);padding:8px 12px;margin:10px 0 0;color:var(--gray-750);font-size:var(--text-md)}
.pe-warn.is-ok{border-left-color:var(--success)}
.pe-warn p{margin:0}
.pe-warn ul{margin:4px 0 0;padding-left:18px}
.pe-warn li+li{margin-top:3px}
.pe-split{width:100%;border-collapse:collapse;margin:4px 0;font-size:var(--text-base);background:none}
.pe-split th{font-size:var(--text-sm);color:var(--muted);font-weight:400;text-align:left;padding:6px 8px;border-bottom:1px solid var(--navy);background:none;text-transform:none;letter-spacing:0}
.pe-split td{padding:8px;border-bottom:1px solid var(--line);vertical-align:middle}
.pe-split td small{display:block;color:var(--muted);font-size:var(--text-xs)}
.pe-split input{width:100%;max-width:160px;padding:8px 10px;border:1px solid var(--gray-350);border-radius:var(--radius-sm);background:var(--paper);color:var(--ink);outline:none}
.pe-split input:focus{border-color:var(--sky);box-shadow:var(--focus-ring)}
.pe-env-table tr.is-retired td{color:var(--muted)}
.pe-env-table tr.is-retired td small{display:block}
@media (max-width:760px){.pe-yr-base{flex-direction:column;gap:6px}.pe-yr-right{gap:12px}}
.pe-yr-add{display:flex;gap:8px;flex-wrap:nowrap;align-items:flex-start}
.pe-yr-base{font-size:var(--text-base)}
.pe-boosts-wrap{overflow:auto}
.pe-boosts{table-layout:fixed;min-width:720px}
.pe-boosts th.num{text-align:right}
.pe-boosts th:nth-child(1){width:38%}.pe-boosts th:nth-child(2){width:17%}.pe-boosts th:nth-child(3){width:12%}
.pe-boosts th:nth-child(4){width:9%}.pe-boosts th:nth-child(5){width:10%}.pe-boosts th:nth-child(6){width:14%}

/* Private equity (11.10.2026) : jauges appelé / distribué de la carte, courbe d'investissement,
   chronologie des appels et distributions, volets de saisie. Traits et barres pleins et fins,
   marine pour les appels, or pour les distributions, gris-bleu pour la position nette ;
   le prévu en contour pointillé. */
.pe-row label,.pe-wide,.pe-seg-field{display:grid;gap:5px;font-size:var(--text-sm);color:var(--muted)}
.pe-seg{display:inline-flex;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;width:max-content}
.pe-seg label{display:block;margin:0;cursor:pointer}
.pe-seg input{position:absolute;opacity:0;pointer-events:none}
.pe-seg span{display:block;padding:8px 14px;font-size:var(--text-sm);color:var(--muted)}
.pe-seg input:checked+span{background:var(--navy);color:var(--paper)}
.pe-seg input:focus-visible+span{outline:2px solid var(--gold-accent);outline-offset:-2px}
.pe-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}

/* --- Machine learning (11.10.2026) : Informations techniques › Machine learning ---------- */

/* Suivi & conformité : libellé de chaque statut dans la carte Formation continue */
.fb-progress.tone-muted i{background:var(--sky)}

/* Correctifs du 16/10 : participants groupés (clients, contacts, partenaires) et puces retirables. */
.participant-group{margin:10px 10px 2px;font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;font-weight:500;color:var(--slate)}
.participant-group:first-child{margin-top:2px}
.participant-group[hidden]{display:none}
.participant-chips{display:flex;flex-wrap:wrap;gap:6px}
.participant-chips:empty{display:none}
.participant-chip{border:1px solid var(--line-dark);background:transparent;border-radius:var(--radius-pill);padding:3px 10px;font:inherit;font-size:var(--text-sm);font-weight:400;color:var(--navy);cursor:pointer}
.participant-chip::after{content:" ×";color:var(--slate)}
.participant-chip:hover{border-color:var(--navy)}
/* La liste des participants vit dans des formulaires .stack-form (label en grille) : la case
   reprend sa taille et se place à gauche du nom, au lieu d'une barre pleine largeur au-dessus. */
.stack-form .multi-select-option,.multi-select-option{display:flex;flex-direction:row;align-items:flex-start;gap:10px}
.multi-select-option input[type="checkbox"]{flex:0 0 auto;width:16px;height:16px;min-height:0;margin:3px 0 0;padding:0;box-shadow:none}
/* Correctifs du 16/10 : choix d'un partenaire avec saisie libre (fiche produit, pilotage). */
.partner-pick{display:grid;gap:8px;align-content:start}
/* Création rapide : nom et type côte à côte, trait fin à gauche (pas d'aplat). */
.partner-pick-new{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px 12px;border-left:1px solid var(--navy);padding-left:12px}
.partner-pick-new .form-note{grid-column:1/-1;margin:0}
@media (max-width:620px){.partner-pick-new{grid-template-columns:1fr}}

/* Fiche produit (21/10) : frais et rémunération au format du tableau du contrat, une ligne par frais. */
.pe-fee-list{display:grid;margin-top:6px}
.pe-fee-line{display:grid;grid-template-columns:minmax(0,1.9fr) 96px minmax(0,1fr) minmax(0,.95fr) 120px minmax(0,.9fr) 28px;gap:12px;align-items:center;padding:10px 2px;border-bottom:1px solid var(--line)}
.pe-fee-head{padding:0 2px 6px;font-size:var(--text-2xs,11px);color:var(--muted)}
.pe-fee-head span:nth-child(2),.pe-fee-head span:nth-child(5){text-align:right}
.pe-fee-t{display:block;color:var(--ink);font-size:var(--text-sm);font-weight:400}
.pe-fee-s{display:block;color:var(--muted);font-size:var(--text-xs);line-height:1.4}
.pe-fee-num{text-align:right;font-variant-numeric:tabular-nums;font-size:var(--text-sm)}
.pe-fee-line.is-retired .pe-fee-t{color:var(--muted)}
.pe-fee-cell{display:block;margin:0;font-weight:400}
.pe-fee-cell-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.pe-fee-line input.pe-fee-in{width:100%;min-height:0;height:32px;padding:4px 8px;font:inherit;font-size:var(--text-sm);text-align:right;border:1px solid var(--gray-300);border-radius:var(--radius-sm);background:var(--paper);color:var(--ink);box-shadow:none}
.pe-fee-line input.pe-fee-in:focus{outline:none;border-color:var(--sky);box-shadow:var(--focus-ring)}
.pe-fee-line input.pe-fee-in::placeholder{color:var(--gray-500)}
.pe-fee-line input.pe-fee-share{width:80px;margin-left:auto;display:block}
.pe-fee-line select.pe-fee-inline-sel{width:auto;min-height:0;height:auto;border-radius:0;background-position:right 2px center;background-size:10px;padding:0 16px 0 2px;border:0;border-bottom:1px solid var(--gray-300);background-color:transparent;box-shadow:none;font:inherit;font-size:var(--text-xs);color:var(--muted)}
.pe-fee-src{display:inline-block;margin-left:4px;padding:0 7px;border:1px solid var(--gray-300);border-radius:var(--radius-pill);font-size:var(--text-xs);color:var(--sky);white-space:nowrap;vertical-align:1px}
.pe-fee-t .pe-srcs{position:static;display:inline-flex}
.pe-fee-t .pe-src{font-size:var(--text-xs);margin-left:4px}
.pe-fee-menu{justify-self:end}
.pe-fee-menu>summary{color:var(--gray-500);font-size:var(--text-xl,20px);line-height:1;padding:0 4px}
.pe-fee-add .action-menu-panel button{display:block;font-weight:400}
.pe-fee-add .action-menu-panel small{display:block;color:var(--muted);font-size:var(--text-xs);font-weight:400}
.pe-fee-commission{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:0;padding:12px 0 2px;border-top:1px solid var(--line);font-size:var(--text-sm);color:var(--ink)}
.pe-fee-list+.pe-fee-commission{border-top:0}
.pe-fee-commission>span{min-width:130px;color:var(--navy)}
.pe-fee-commission label{margin:0;display:flex;align-items:center;gap:8px;font-weight:400;color:var(--gray-700)}
.pe-fee-commission select,.pe-fee-commission input{width:auto;height:32px;min-height:0;padding:4px 8px;font:inherit;font-size:var(--text-sm);border:1px solid var(--gray-300);border-radius:var(--radius-sm);background-color:var(--paper);color:var(--ink);box-shadow:none}
.pe-fee-commission select{padding-right:28px;background-position:right 8px center;background-size:12px}
.pe-fee-commission input[type=number]{width:80px;text-align:right}
.pe-fee-commission small{flex-basis:100%;color:var(--muted);font-size:var(--text-xs)}
.pe-ended-button i{display:inline-block;width:7px;height:7px;border-radius:50%;border:1px solid var(--gold-accent);margin-right:8px;vertical-align:1px}
#product-end{max-width:540px}
[data-end-dialog] input[type=date]{max-width:220px}
.pe-fee-line{grid-template-columns:minmax(0,1.7fr) 92px minmax(0,1.05fr) minmax(0,1fr) 112px minmax(0,1fr) 28px}
.pe-fee-line input.pe-fee-label{width:100%;min-height:0;height:auto;padding:0 0 1px;border:0;border-bottom:1px solid transparent;border-radius:0;background:transparent;box-shadow:none;font:inherit;font-size:var(--text-sm);color:var(--ink)}
.pe-fee-line input.pe-fee-label:hover,.pe-fee-line input.pe-fee-label:focus{outline:none;border-bottom-color:var(--gray-300)}
.pe-fee-line select.pe-fee-sel{width:100%;min-height:0;height:32px;padding:4px 26px 4px 8px;font:inherit;font-size:var(--text-sm);border:1px solid var(--gray-300);border-radius:var(--radius-sm);background-color:var(--paper);background-position:right 8px center;background-size:12px;color:var(--ink);box-shadow:none}
.pe-fee-line .pe-fee-share+.pe-fee-s{margin-top:3px;white-space:nowrap}
.pe-fee-remove{justify-self:end;padding:0 4px;border:0;background:none;color:var(--gray-500);font-size:var(--text-lg,18px);line-height:1;cursor:pointer;box-shadow:none}
.pe-fee-remove:hover{color:var(--navy)}
.pe-fee-warn{color:var(--gold-ink)}
.pe-fee-empty{margin:0;padding:14px 2px;border-bottom:1px solid var(--line);color:var(--muted);font-size:var(--text-sm)}
.pe-fee-total{grid-template-columns:minmax(0,1fr) auto}
.pe-fee-summary{text-align:right;font-size:var(--text-sm);color:var(--navy);font-variant-numeric:tabular-nums}
@media (max-width:760px){.pe-fee-line{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.pe-fee-line>*{min-width:0}.pe-fee-line>:first-child{grid-column:1/-1}.pe-fee-head{display:none}.pe-fee-num{text-align:left}.pe-fee-line input.pe-fee-share{margin-left:0}.pe-fee-line .pe-fee-cell-label{position:static;width:auto;height:auto;clip:auto;display:block;font-size:var(--text-2xs,11px);color:var(--muted)}.pe-fee-commission select{max-width:100%}.pe-fee-total{grid-template-columns:minmax(0,1fr)}.pe-fee-summary{text-align:left}.pe-fee-add summary{white-space:nowrap}}

/* Registre national des gels (idée 7, 29.10.2026) : écran, volet de décision, volet Contrôle
   de la fiche client. Traits fins : vert sans correspondance, ambre à examiner. */
.freeze-card{margin-top:18px}
.freeze-table td small,.freeze-card td small{display:block;color:var(--muted);font-size:var(--text-xs);margin-top:2px}
.freeze-row.is-a_examiner td:first-child{box-shadow:inset 2px 0 0 var(--warning)}
.freeze-row.is-confirmee td:first-child{box-shadow:inset 2px 0 0 var(--gold-accent)}
.freeze-strength{font-size:var(--text-sm);color:var(--warning)}.freeze-strength.is-forte{color:var(--warning-strong)}
.freeze-result{font-size:var(--text-sm)}.freeze-result.is-clear{color:var(--success)}.freeze-result.is-open{color:var(--warning)}
.freeze-dismissed{margin-top:14px;border-top:1px solid var(--line);padding-top:10px}
.freeze-dismissed summary{cursor:pointer;color:var(--slate);font-size:var(--text-sm)}
.freeze-compare{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:var(--radius-md);margin:6px 0 16px}
.freeze-compare>div{padding:12px 16px}.freeze-compare>div+div{border-left:1px solid var(--line)}
.freeze-compare dl,.freeze-facts{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:8px 0 0;font-size:var(--text-sm)}
.freeze-compare dt,.freeze-facts dt{color:var(--muted)}.freeze-compare dd,.freeze-facts dd{margin:0;text-align:right;color:var(--ink)}
.freeze-compare dd.is-missing{color:var(--warning)}
.freeze-decisions{flex-wrap:wrap}
.freeze-status{border-left:2px solid var(--success);padding:6px 12px;margin:4px 0 8px;color:var(--success);font-size:var(--text-sm)}
.freeze-status.is-open{border-left-color:var(--warning);color:var(--warning)}
.freeze-match-line{font-size:var(--text-sm);margin:4px 0;color:var(--warning)}
.freeze-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:10px 0 4px}
.freeze-link{font-size:var(--text-sm);color:var(--navy);border-bottom:1px solid var(--gold-accent);text-decoration:none}
.freeze-manual{margin-top:10px;border-top:1px solid var(--line);padding-top:8px}
.freeze-manual summary{cursor:pointer;color:var(--slate);font-size:var(--text-sm);margin-bottom:6px}
@media (max-width:720px){.freeze-compare{grid-template-columns:1fr}.freeze-compare>div+div{border-left:0;border-top:1px solid var(--line)}}
/* Suivi : constatation passée d'un produit structuré, réponse sur place (29.10.2026). */
.fb-row.has-structured .fb-row-actions{grid-column:2/-1;flex-wrap:wrap}
.fb-structured{display:flex;align-items:flex-end;gap:6px;flex-wrap:wrap}
.fb-structured label{display:flex;flex-direction:column;gap:2px;font-size:var(--text-xs);color:var(--muted)}
.fb-structured input{width:120px;padding:4px 6px}
@media (max-width:760px){.fb-structured{width:100%}.fb-structured label{flex:1 1 100%}.fb-structured input{width:100%}.fb-structured button{flex:1}}
/* Revue annuelle et jalons des clients (28.10.2026, idées 1 et 2) : écran de campagne, carte de
   la fiche client, carte du Suivi. Traits fins, aucun aplat, poids 500 au plus. */
.rv-kpis{display:grid;grid-template-columns:1.6fr repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}
.rv-kpi{display:grid;gap:3px;align-content:start;text-align:left;padding:14px 16px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-xl);font:inherit;color:var(--ink);cursor:pointer}
.rv-kpi.is-main{border-color:var(--navy);cursor:default}
.rv-kpi span{font-size:var(--text-lg);color:var(--muted)}
.rv-kpi strong{font-family:var(--font-serif);font-weight:400;font-size:var(--text-display);color:var(--navy);line-height:1.1}
.rv-kpi small{font-size:var(--text-base);color:var(--muted)}
.rv-kpi.is-on{border-color:var(--navy)}
.rv-progress{display:flex;height:4px;margin:8px 0 4px;background:var(--gray-100);border-radius:var(--radius-pill);overflow:hidden}
.rv-progress i{display:block;height:4px;width:0}
.rv-progress .is-done{background:var(--success)}.rv-progress .is-rdv{background:var(--navy)}.rv-progress .is-invite{background:var(--gold-accent)}
.rv-card{padding:16px 18px}
.rv-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.rv-bulk{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 12px;margin-bottom:12px;border:1px solid var(--navy);border-radius:var(--radius-lg);color:var(--navy);font-size:var(--text-lg)}
.rv-bulk[hidden]{display:none}
.rv-bulk span{margin-right:auto}
.rv-table{width:100%}
.rv-table td{vertical-align:middle}
.rv-table td small{display:block;color:var(--muted);font-size:var(--text-base);margin-top:2px}
.rv-table a:not(.primary):not(.button-secondary):not(.button-ghost){color:var(--navy);text-decoration:none}.rv-table a:not(.primary):not(.button-secondary):not(.button-ghost):hover{text-decoration:underline}
.rv-check{width:28px}
.rv-late{color:var(--danger)}
.rv-tags{max-width:220px}
.rv-client{min-width:150px}
.rv-client a{white-space:nowrap}
.rv-tag{display:inline-block;margin:2px 4px 2px 0;padding:1px 8px;border:1px solid var(--line);border-radius:var(--radius-xs);font-size:var(--text-base);color:var(--slate);white-space:nowrap}
.rv-tag.is-warn{border-color:var(--warning-accent);color:var(--warning)}
.rv-tag.is-late{border-color:var(--danger-line);color:var(--danger)}
.rv-pill{display:inline-flex;align-items:center;gap:6px;padding:2px 10px;border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--paper);color:var(--muted);font-size:var(--text-base);font-weight:400;white-space:nowrap}
.rv-pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.rv-pill.is-ok{border-color:var(--success-line);color:var(--success)}
.rv-pill.is-warn{border-color:var(--warning-accent);color:var(--warning)}
.rv-pill.is-late{border-color:var(--danger-line);color:var(--danger)}
.rv-pill.is-info{border-color:var(--gray-400);color:var(--navy-2)}
.rv-pill.is-gold{border-color:var(--gold-accent);color:var(--gold-ink)}
.rv-actions{text-align:right;white-space:nowrap}
.rv-actions>*{display:inline-flex;vertical-align:middle;margin-left:4px}
.rv-table th:last-child,.rv-table td:last-child{padding-right:4px}
.rv-actions form{margin:0}
.rv-panel{width:min(560px,100vw)}
.rv-panel [data-rv-panel-body]{padding-bottom:28px;background:var(--surface)}
.rv-panel [data-rv-panel-body]>:not(.modal-heading){margin-left:28px;margin-right:28px}
.rv-panel .side-panel-actions{margin:16px -28px 0;padding:12px 28px}
.rv-panel .modal-heading h2{font-weight:400}
.rv-panel form.rv-sections .side-panel-actions{margin:4px -28px 0}
.rv-sections{display:grid;gap:14px}
.rv-sections section{padding-top:12px;border-top:1px solid var(--line)}
.rv-sections section .eyebrow{margin-bottom:6px}
.rv-line{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:5px 0;font-size:var(--text-lg)}
.rv-line>span:first-child{min-width:0}
.rv-line small{display:block;color:var(--muted);font-size:var(--text-base)}
.rv-line a{color:var(--navy)}
.rv-num{text-align:right;white-space:nowrap}.rv-num small{display:inline;margin-left:4px}
.rv-empty{margin:0;color:var(--muted);font-size:var(--text-lg)}
.rv-check-line{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:var(--text-lg)}
.rv-check-line small{margin-left:auto;color:var(--muted);font-size:var(--text-base)}
.rv-panel .stack-form label{font-weight:500}
.rv-panel .stack-form label.rv-check-line{display:flex;gap:8px;font-size:var(--text-lg)}
.rv-panel .stack-form .rv-check-line input{width:auto;padding:0}
.rv-panel .stack-form label small{font-weight:400;color:var(--muted)}
.rv-panel .stack-form textarea{min-height:80px}
.rv-side-card{border-color:var(--navy)}
.rv-side-figure{margin:6px 0 0;color:var(--muted)}
.rv-side-figure strong{font-family:var(--font-serif);font-weight:400;font-size:var(--text-display);color:var(--navy);margin-right:6px}
.rv-side-legend{display:flex;flex-wrap:wrap;gap:4px 12px;margin:6px 0 12px;font-size:var(--text-base);color:var(--muted)}
.rv-side-open{display:flex;justify-content:center}
.rv-timeline{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));margin:30px 0 18px;border-top:1px solid var(--line-dark)}
.rv-timeline>div{position:relative;padding-top:10px;font-size:var(--text-base);color:var(--muted)}
.rv-timeline>div::before{content:"";position:absolute;top:-1px;left:0;height:7px;border-left:1px solid var(--line-dark)}
.rv-dot{position:absolute;top:-6px;width:11px;height:11px;margin-left:-5px;border-radius:50%;background:var(--paper);border:1.5px solid var(--navy)}
.rv-dot.is-entered{border-color:var(--gold-accent)}
.rv-add-row td{background:var(--gray-25)}
.rv-add-form{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.rv-add-form input[type="text"]{flex:1 1 220px}
.rv-add-form input[name="notes"]{flex:1 1 160px}
.rv-milestone-form{display:grid;gap:8px;min-width:260px;padding:12px}
@media (max-width:760px){
  .rv-kpis{grid-template-columns:1fr 1fr}.rv-kpis .is-main{grid-column:1/-1}
  .rv-kpi strong{font-size:var(--text-3xl)}
  .rv-toolbar .fb-chips{flex-wrap:nowrap;overflow-x:auto;width:100%}
  .rv-table thead{display:none}
  .rv-table tr[data-rv-row]{display:grid;grid-template-columns:24px 1fr auto;gap:4px 8px;padding:10px 0;border-bottom:1px solid var(--gray-100)}
  .rv-table tr[data-rv-row][hidden]{display:none}
  .rv-table tr[data-rv-row] td{border:0;padding:2px 0}
  .rv-table tr[data-rv-row] td:nth-child(3),.rv-table tr[data-rv-row] td:nth-child(5){display:none}
  .rv-client{min-width:0}.rv-client a{white-space:normal}
  .rv-table tr[data-rv-row] td:nth-child(4),.rv-table tr[data-rv-row] td:nth-child(6),.rv-table tr[data-rv-row] td:nth-child(7){grid-column:2/4;text-align:left}
  .rv-actions{white-space:normal;display:flex;gap:6px}.rv-actions>*{margin-left:0;flex:1 1 0;width:auto}
  .rv-timeline{grid-template-columns:repeat(3,minmax(0,1fr))}.rv-timeline>div:nth-child(n+4){display:none}
}
/* Traitements en arrière-plan et incidents (28/10/2026) : pastille de l'en-tête, bandeau, page. */
.background-chip{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--paper);color:var(--navy);font-size:var(--text-md);font-weight:500;white-space:nowrap;text-decoration:none}
.background-chip:hover{border-color:var(--line-dark);background:var(--gray-50)}
.background-chip-dot{width:7px;height:7px;border-radius:50%;background:var(--success)}
.background-chip.is-running .background-chip-dot{background:var(--gold-accent);animation:background-chip-pulse 1.4s ease-in-out infinite}
.background-chip.tone-warning{border-color:var(--warning-line);color:var(--warning)}
.background-chip.tone-warning .background-chip-dot{background:var(--warning)}
@keyframes background-chip-pulse{50%{opacity:.35}}
@media (prefers-reduced-motion:reduce){.background-chip.is-running .background-chip-dot{animation:none}}
.incident-banner{display:flex;align-items:center;gap:10px;margin:0 0 16px;padding:9px 14px;border:1px solid var(--warning-line);border-left:3px solid var(--warning);border-radius:var(--radius-md);background:var(--paper);color:var(--navy);font-size:var(--text-base);font-weight:400}
.incident-banner-mark{width:7px;height:7px;flex:0 0 auto;border-radius:50%;background:var(--warning)}
.incident-banner-text{flex:1;min-width:0}
.incident-banner a{color:var(--navy-2);font-weight:500;white-space:nowrap}
.background-task-line{margin:6px 0 0;font-size:var(--text-sm);color:var(--muted)}
.background-task-line.tone-warning{color:var(--warning)}
.background-task-line a{margin-left:6px;font-weight:500}
.background-list{display:grid;gap:0}
.background-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 0;border-top:1px solid var(--line)}
.background-row:first-child{border-top:0}
.background-row-main{display:grid;gap:3px;min-width:0}
.background-row-main strong{font-weight:500;color:var(--navy)}
.background-row-main small{color:var(--muted);font-size:var(--text-sm)}
.background-row-actions{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.background-row form{margin:0}
@media (max-width:760px){.background-row{flex-direction:column;align-items:flex-start}.incident-banner{flex-wrap:wrap}.background-chip{padding:6px 10px}}

/* Mode rendez-vous (29.10.2026) : sans menu latéral, un bandeau fin rappelle le mode. */
.app-shell.is-meeting-mode{grid-template-columns:minmax(0,1fr)}
.meeting-mode-start{margin:0}
.meeting-mode-start button{display:inline-flex;align-items:center;gap:6px}
.meeting-mode-start svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6}
.meeting-mode-banner{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;background:var(--paper);border:1px solid var(--line);border-top:2px solid var(--gold-accent);border-radius:var(--radius-lg);padding:10px 16px;margin:0 0 18px;font-size:var(--text-lg);color:var(--ink)}
.meeting-mode-dot{color:var(--gold-accent);font-size:var(--text-base)}
.meeting-mode-title{color:var(--navy)}
.meeting-mode-note{color:var(--muted)}
.meeting-mode-banner form{margin:0 0 0 auto;display:flex;align-items:center;gap:8px}
.meeting-mode-banner kbd{border:1px solid var(--line);border-radius:var(--radius-2xs);padding:1px 6px;font:inherit;font-size:var(--text-sm);color:var(--muted)}
@media(max-width:700px){.meeting-mode-note{flex-basis:100%;order:3}.meeting-mode-banner kbd{display:none}}
