@layer modules{
/* ════════ Complément « Business » - proposition commerciale, devis & potentiel ════════
   Réutilise les tokens de 01-tokens.css (--card, --line, --accent, --mut…). */

.biz{ display:grid; grid-template-columns:212px 1fr; gap:var(--sp-18); align-items:start; }
@media (max-width:720px){ .biz{ grid-template-columns:1fr; } }

/* ── Mode solo : compléments séparés (pas de rail latéral) ── */
.biz-solo{ display:flex; flex-direction:column; gap:0; min-height:0; }
.biz-solo > .biz-head{ margin-bottom:0; }

/* ── Onglets internes CRM (Fiche client | Documents) ── */
.biz-crm-tabs{
  display:flex; gap:0; border-bottom:1px solid var(--line);
  margin-bottom:var(--sp-20); padding:0 var(--sp-2);
}
.biz-crm-tab{
  display:inline-flex; align-items:center; gap:var(--sp-6);
  padding:var(--sp-10) var(--sp-18); border:none; background:none;
  color:var(--mut); font:inherit; font-size:var(--fs-md); cursor:pointer;
  border-bottom:2px solid transparent; margin-bottom:-1px;
  transition:.12s;
}
.biz-crm-tab:hover{ color:var(--txt); }
.biz-crm-tab.on{ color:var(--accent); border-bottom-color:var(--accent); font-weight:var(--fw-strong); }
.biz-crm-tab svg{ width:14px; height:14px; opacity:.7; }
.biz-crm-tab.on svg{ opacity:1; }

/* ── Navigation par étapes (proposition) ── */
.biz-steps-layout{ display:grid; grid-template-columns:186px 1fr; gap:var(--sp-16); align-items:start; }
@media(max-width:640px){ .biz-steps-layout{ grid-template-columns:1fr; } }

.biz-steps-nav{
  position:sticky; top:8px; display:flex; flex-direction:column; gap:var(--sp-1);
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  padding:var(--sp-6); overflow:hidden;
}

.biz-step-btn{
  display:flex; align-items:center; gap:var(--sp-10); width:100%; text-align:left;
  padding:var(--sp-8) var(--sp-10); border:none; border-radius:var(--radius-sm);
  background:none; color:var(--mut); font:inherit; font-size:var(--fs-sm); cursor:pointer;
  transition:.12s; position:relative;
}
.biz-step-btn:hover{ background:var(--card2); color:var(--txt); }
.biz-step-btn.on{ background:color-mix(in srgb,var(--accent) 8%,var(--card2)); color:var(--txt); font-weight:var(--fw-strong); }
.biz-step-btn.on::before{
  content:''; position:absolute; left:0; top:4px; bottom:4px;
  width:3px; background:var(--accent); border-radius:0 var(--radius-xs) var(--radius-xs) 0;
}

.biz-step-num{
  width:22px; height:22px; flex-shrink:0; display:flex; align-items:center; justify-content:center;
  border:1.5px solid var(--line2); border-radius:50%; font-size:var(--fs-xs); font-weight:var(--fw-bold);
  color:var(--mut2); transition:.15s; flex-shrink:0;
}
.biz-step-btn.on .biz-step-num{ border-color:var(--accent); color:var(--accent); background:color-mix(in srgb,var(--accent) 8%,transparent); }
.biz-step-num.done{ background:var(--ok); border-color:var(--ok); color:var(--on-solid); font-size:var(--fs-2xs); }
.biz-step-lbl{ font-size:var(--fs-sm); line-height:1.3; }

.biz-step-ttc{
  margin-top:var(--sp-4); padding:var(--sp-8) var(--sp-12); border-top:1px solid var(--line2);
  font-size:var(--fs-xs); color:var(--mut);
}
.biz-step-ttc b{ display:block; font-size:var(--fs-lg); font-weight:var(--fw-bold); color:var(--accent); margin-top:var(--sp-2); font-variant-numeric:tabular-nums; }

.biz-step-body{ min-width:0; display:flex; flex-direction:column; gap:var(--sp-14); }
.biz-step-footer{ display:flex; align-items:center; justify-content:space-between; gap:var(--sp-8); padding:var(--sp-12) 0 var(--sp-2); border-top:1px solid var(--line2); margin-top:var(--sp-4); }

/* ── Barre d'actions (proposition) ── */
.biz-proposal-actions{ display:flex; align-items:center; justify-content:flex-end; gap:var(--sp-8); padding:var(--sp-2) 0 var(--sp-12); }
.biz-pdf-btn{
  display:inline-flex; align-items:center; gap:var(--sp-6);
  padding:var(--sp-8) var(--sp-18); border-radius:var(--radius-sm);
  background:var(--card); color:var(--txt); border:1px solid var(--line);
  font:500 13px/1 inherit; cursor:pointer; transition:.15s;
}
.biz-pdf-btn svg{ opacity:.7; transition:.15s; }
.biz-pdf-btn:hover{ border-color:var(--accent); color:var(--accent); background:color-mix(in srgb,var(--accent) 5%,var(--card)); }
.biz-pdf-btn:hover svg{ opacity:1; }

/* ── Boutons nav étapes (footer) ── */
.biz-foot-prev,.biz-foot-next{
  display:inline-flex; align-items:center; gap:var(--sp-6);
  padding:var(--sp-8) var(--sp-16); border-radius:var(--radius-sm);
  font:inherit; font-size:var(--fs-md); cursor:pointer; transition:.12s; white-space:nowrap;
}
.biz-foot-prev{ background:none; border:1px solid var(--line); color:var(--mut2); }
.biz-foot-prev:hover{ background:var(--card2); color:var(--txt); border-color:var(--line); }
.biz-foot-next{ background:var(--accent); color:var(--on-solid); border:none; font-weight:var(--fw-strong); }
.biz-foot-next:hover{ filter:brightness(1.08); }

/* ── Dots de progression ── */
.biz-foot-dots{ display:flex; align-items:center; gap:var(--sp-4); }
.biz-foot-dot{ width:6px; height:6px; border-radius:50%; background:var(--line2); transition:.22s; }
.biz-foot-dot.on{ background:var(--accent); width:18px; border-radius:var(--radius-xs); }
.biz-foot-dot.done{ background:var(--ok); }

/* ── Textarea conditions ── */
.biz-cond-ta{ width:100%; background:var(--card); color:var(--txt); border:1px solid var(--line);
  border-radius:var(--radius-sm); padding:var(--sp-8) var(--sp-10); font:inherit; font-size:var(--fs-md); line-height:1.6;
  resize:vertical; min-height:160px; }
.biz-cond-ta:focus{ outline:none; border-color:var(--accent); box-shadow:var(--focus); }

/* ── Description ligne chiffrage ── */
.biz-ch-poste-cell{ display:flex; flex-direction:column; gap:var(--sp-2); padding-top:var(--sp-4)!important; padding-bottom:var(--sp-4)!important; height:auto!important; }
.biz-ch-poste-cell>input:first-child{ width:100%; }
.biz-ch-desc{ background:transparent; border:1px solid transparent; border-radius:var(--radius-sm);
  padding:var(--sp-2) var(--sp-6); font:inherit; font-size:var(--fs-xs); color:var(--mut); width:100%;
  transition:border-color .1s,background .1s; }
.biz-ch-desc:hover{ border-color:var(--line); background:var(--card2); }
.biz-ch-desc:focus{ outline:none; border-color:var(--accent); background:color-mix(in srgb,var(--accent) 4%,var(--card)); }
.biz-ch-desc::placeholder{ opacity:.35; }

/* ── Rail de navigation ── */
.biz-rail{ display:flex; flex-direction:column; gap:var(--sp-4); position:sticky; top:8px; }
.biz-rail-inner{ display:flex; flex-direction:column; gap:var(--sp-4); }
.biz-rail-sep{ border:none; border-top:1px solid var(--line2); margin:var(--sp-6) var(--sp-2); }

/* ── Toggle de mode ── */
.biz-mode-row{ display:flex; gap:var(--sp-4); margin-bottom:var(--sp-4); }
.biz-mode-btn{ flex:1; display:flex; flex-direction:column; align-items:center; gap:var(--sp-2); padding:var(--sp-8) var(--sp-4);
  border:1px solid var(--line); border-radius:var(--radius-sm); background:none; color:var(--mut);
  font:inherit; font-size:var(--fs-xs); cursor:pointer; transition:.12s; line-height:var(--lh-tight); text-align:center; }
.biz-mode-btn:hover{ background:var(--card2); color:var(--txt); }
.biz-mode-btn.on{ background:var(--card2); color:var(--txt); border-color:var(--accent); font-weight:var(--fw-strong); }
.biz-mode-ic{ font-size:var(--fs-base); display:flex; align-items:center; justify-content:center; }

/* ── Boutons nav sections ── */
.biz-nav-btn{ display:flex; align-items:center; gap:var(--sp-8); width:100%; text-align:left;
  padding:var(--sp-8) var(--sp-10); border:1px solid transparent; border-radius:var(--radius-sm);
  background:none; color:var(--mut); font:inherit; font-size:var(--fs-md); cursor:pointer; transition:.12s; }
.biz-nav-btn:hover{ background:var(--card2); color:var(--txt); }
.biz-nav-btn.on{ background:var(--card2); color:var(--txt); border-color:var(--line); font-weight:var(--fw-strong); }
.biz-nav-ic{ display:flex; align-items:center; justify-content:center; font-size:var(--fs-base); color:var(--accent); opacity:.9; }

/* ── Panneau principal ── */
.biz-main{ min-width:0; display:flex; flex-direction:column; gap:var(--sp-14); }
.biz-loading{ display:flex; align-items:center; gap:var(--sp-8); color:var(--mut); padding:var(--sp-24) var(--sp-4); }
.biz-spin{ width:14px; height:14px; border:2px solid var(--line); border-top-color:var(--accent);
  border-radius:50%; display:inline-block; animation:bizspin .7s linear infinite; }
@keyframes bizspin{ to{ transform:rotate(360deg); } }

/* ── En-tête de section ── */
/* <header> est fixé en haut de l'écran par le socle (03-layout.css : la barre de
   l'app). L'en-tête de section Business n'est pas cette barre : on le remet dans
   le flux, sinon il se superpose au bandeau Hdplio. */
.biz-head{ position:static; z-index:auto; display:flex; align-items:flex-start; justify-content:space-between; gap:var(--sp-14); }
.biz-head-t h2{ margin:0; font-size:var(--fs-lg); }
.biz-head-t p{ margin:var(--sp-2) 0 0; color:var(--mut); font-size:var(--fs-sm); max-width:62ch; }
.biz-emit{ display:flex; align-items:center; gap:var(--sp-6); font-size:var(--fs-sm); color:var(--mut); white-space:nowrap; }
.biz-emit span{ color:var(--mut2); }
.biz-emit select{ background:var(--card); color:var(--txt); border:1px solid var(--line);
  border-radius:var(--radius-sm); padding:var(--sp-4) var(--sp-8); font:inherit; font-size:var(--fs-sm); }
.biz-emit.warn{ color:var(--warn); text-decoration:none; }
.biz-emit.warn:hover{ text-decoration:underline; }

/* ── Barre d'outils ── */
.biz-toolbar{ display:flex; align-items:center; gap:var(--sp-8); flex-wrap:wrap;
  padding:var(--sp-10) var(--sp-12); border:1px solid var(--line); border-radius:var(--radius); background:var(--card2); }
.biz-brief{ flex:1; min-width:180px; background:var(--card); color:var(--txt); border:1px solid var(--line);
  border-radius:var(--radius-sm); padding:var(--sp-6) var(--sp-10); font:inherit; font-size:var(--fs-sm); }
.biz-gen-status{ font-size:var(--fs-sm); color:var(--mut); min-width:60px; }

/* ── Cartes / blocs ── */
.biz-block{ border:1px solid var(--line); border-radius:var(--radius); background:var(--card); padding:var(--sp-16) var(--sp-18);
  box-shadow:0 1px 4px color-mix(in srgb,var(--txt) 5%,transparent); }
.biz-block-t{ margin:0 0 var(--sp-14); font-size:var(--fs-2xs); text-transform:uppercase; letter-spacing:.06em; color:var(--mut2);
  padding-bottom:var(--sp-10); border-bottom:1px solid var(--line); display:flex; align-items:center; gap:var(--sp-6); }
.biz-block-t::before{ content:''; display:inline-block; width:3px; height:13px; background:var(--accent);
  border-radius:var(--radius-xs); opacity:.7; flex-shrink:0; }

/* ── Tableau de bord - cartes ── */
.biz-cards{ display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:var(--sp-12); }
.biz-card{ border:1px solid var(--line); border-radius:var(--radius); background:var(--card); padding:var(--sp-14) var(--sp-14); }
.biz-card.ok{ border-color:color-mix(in srgb,var(--ok) 45%,var(--line)); }
.biz-card-h{ font-size:var(--fs-xs); text-transform:uppercase; letter-spacing:.04em; color:var(--mut2); margin-bottom:var(--sp-8); }
.biz-card-b{ display:flex; flex-direction:column; gap:var(--sp-4); font-size:var(--fs-md); }
.biz-card-b b{ font-size:var(--fs-lg); }
.biz-card-b .muted{ color:var(--mut); }
.biz-card-b .mono{ font-family:var(--font-mono); font-size:var(--fs-xs); color:var(--mut); }
.biz-card-acts{ display:flex; gap:var(--sp-6); margin-top:var(--sp-8); flex-wrap:wrap; }
.biz-upd{ font-size:var(--fs-xs); color:var(--mut2); padding-left:var(--sp-2); }

/* ── Jauge de score ── */
.biz-gauge{ display:flex; align-items:center; gap:var(--sp-8); --gc:var(--ok); }
.biz-gauge.lo{ --gc:var(--err); } .biz-gauge.mid{ --gc:var(--warn); } .biz-gauge.hi{ --gc:var(--ok); }
.biz-gauge-bar{ flex:1; min-width:70px; height:8px; background:var(--card2); border-radius:var(--radius-pill); overflow:hidden; }
.biz-gauge-bar i{ display:block; height:100%; background:var(--gc); border-radius:var(--radius-pill); transition:width .25s; }
.biz-gauge b{ font-size:var(--fs-base); color:var(--gc); } .biz-gauge small{ color:var(--mut); font-weight:var(--fw-regular); }
.biz-score-row{ display:flex; align-items:center; gap:var(--sp-14); }
.biz-score-row .biz-range{ flex:1; }
.biz-score-out{ font-size:var(--fs-lg); font-weight:var(--fw-bold); min-width:2.4ch; text-align:right; }

/* ── Formulaires ── */
.biz-form{ display:flex; flex-direction:column; gap:var(--sp-12); }
.biz-two{ display:grid; grid-template-columns:1fr 1fr; gap:var(--sp-12); }
@media (max-width:640px){ .biz-two{ grid-template-columns:1fr; } }
.biz-field{ display:flex; flex-direction:column; gap:var(--sp-4); }
.biz-field>label{ font-size:var(--fs-sm); font-weight:var(--fw-strong); color:var(--txt); }
.biz-field>label small{ font-weight:var(--fw-regular); color:var(--mut); }
.biz-field textarea,.biz-field input:not([type=checkbox]):not([type=range]){ width:100%; background:var(--card); color:var(--txt);
  border:1px solid var(--line); border-radius:var(--radius-sm); padding:var(--sp-6) var(--sp-10); font:inherit; font-size:var(--fs-md); }
.biz-field textarea{ resize:vertical; line-height:var(--lh-normal); }
.biz-field textarea:focus,.biz input:focus,.biz-field input:focus{ outline:none; border-color:var(--accent); box-shadow:var(--focus); }
.biz-ta-auto{ resize:none; overflow:hidden; min-height:80px; }

/* ── Éditeur de liste (Objectifs / Livrables) ── */
.biz-list-editor{ gap:var(--sp-6); }
.biz-li-body{ display:flex; flex-direction:column; gap:var(--sp-4); border:1px solid var(--line); border-radius:var(--radius-sm);
  background:var(--card); padding:var(--sp-6) var(--sp-8); min-height:44px; }
.biz-li-row{ display:grid; grid-template-columns:16px 1fr 22px; align-items:center; gap:var(--sp-4); }
.biz-li-bullet{ width:6px; height:6px; border-radius:50%; background:var(--accent); margin:0 auto; flex-shrink:0; }
.biz-li-input{ background:transparent; border:none; outline:none; color:var(--txt); font:inherit; font-size:var(--fs-md);
  padding:var(--sp-2) 0; width:100%; }
.biz-li-input:focus{ color:var(--txt); }
.biz-li-del{ background:none; border:none; color:var(--mut); font-size:var(--fs-base); cursor:pointer; padding:0 var(--sp-2);
  line-height:var(--lh-flat); border-radius:var(--radius-xs); transition:color .15s; }
.biz-li-del:hover{ color:var(--err,#e55); }
.biz-li-add{ background:none; border:1px dashed var(--line); border-radius:var(--radius-sm); color:var(--mut);
  font:inherit; font-size:var(--fs-sm); cursor:pointer; padding:var(--sp-4) var(--sp-10); text-align:left; margin-top:var(--sp-2);
  transition:border-color .15s,color .15s; }
.biz-li-add:hover{ border-color:var(--accent); color:var(--accent); }
.biz-li-empty{ font-size:var(--fs-sm); padding:var(--sp-4) 0; }

/* ── Options de paiement - éditeur compact ── */
.biz-po-header{ display:flex; align-items:center; justify-content:space-between; gap:var(--sp-8); flex-wrap:wrap; }
.biz-po-header>label{ font-size:var(--fs-sm); font-weight:var(--fw-strong); color:var(--txt); }
.biz-po-presets{ display:flex; flex-wrap:wrap; gap:var(--sp-4); }
.biz-po-presets .mini{ font-size:var(--fs-xs); }
.biz-po-rows{ display:flex; flex-direction:column; gap:var(--sp-2); margin-top:var(--sp-8); }
.biz-po-row{ display:grid; grid-template-columns:18px 1fr auto 22px; align-items:center; gap:var(--sp-8);
  padding:var(--sp-6) var(--sp-10); border:1px solid var(--line); border-radius:var(--radius-sm); background:var(--card2);
  transition:border-color .12s; }
.biz-po-row:hover{ border-color:color-mix(in srgb,var(--accent) 35%,var(--line)); }
.biz-po-row-idx{ font-size:var(--fs-xs); color:var(--mut2); text-align:right; user-select:none;
  font-variant-numeric:tabular-nums; }
.biz-po-row-label{ background:transparent; border:none; border-bottom:1px solid var(--line2);
  color:var(--txt); font:600 13px/1 inherit; outline:none; padding:var(--sp-2) 0; min-width:0; }
.biz-po-row-label:focus{ border-bottom-color:var(--accent); }
.biz-po-row-meta{ display:flex; gap:var(--sp-8); align-items:center; flex-shrink:0; }
.biz-po-row-meta label{ display:flex; align-items:center; gap:var(--sp-4); font-size:var(--fs-xs); color:var(--mut);
  white-space:nowrap; }
.biz-po-row-meta input{ background:var(--card); color:var(--txt); border:1px solid var(--line);
  border-radius:var(--radius-sm); padding:var(--sp-2) var(--sp-4); font:inherit; font-size:var(--fs-sm);
  text-align:right; width:46px; }
.biz-po-row-meta input:focus{ outline:none; border-color:var(--accent); }
.biz-po-row-del{ background:none; border:none; color:var(--mut); font-size:var(--fs-base); cursor:pointer;
  padding:0 var(--sp-2); border-radius:var(--radius-xs); line-height:var(--lh-flat); }
.biz-po-row-del:hover{ color:var(--err); }

.biz-range{ width:100%; accent-color:var(--accent); }
.biz-link-hint{ font-size:var(--fs-md); color:var(--mut); display:flex; align-items:center; gap:var(--sp-10); }

/* ── Split Devis + Destinataire côte à côte ── */
.biz-devis-split{ display:grid; grid-template-columns:1fr 1fr; gap:var(--sp-14); }
.biz-devis-split>.biz-block{ margin:0; }
@media (max-width:760px){ .biz-devis-split{ grid-template-columns:1fr; } }

/* ── Métadonnées devis + client ── */
.biz-meta,.biz-cli{ display:grid; gap:var(--sp-10); }
.biz-meta{ grid-template-columns:1.2fr 1fr .85fr .85fr; align-items:end; }
.biz-meta--compact{ grid-template-columns:1fr 1fr; }
.biz-cli{ grid-template-columns:1fr 1fr; }
.biz-cli--compact{ grid-template-columns:1fr; }
.biz-cli--compact .biz-cli-addr{ grid-column:unset; }
@media (max-width:640px){ .biz-meta,.biz-cli{ grid-template-columns:1fr; } }
.biz-meta label,.biz-cli label{ display:flex; flex-direction:column; gap:var(--sp-4); font-size:var(--fs-xs); font-weight:var(--fw-strong); color:var(--txt); }
.biz-cli label:last-child{ grid-column:1 / -1; }
.biz-cli--compact label:last-child{ grid-column:unset; }
.biz-meta input,.biz-cli input{ background:var(--card); color:var(--txt); border:1px solid var(--line);
  border-radius:var(--radius-sm); padding:var(--sp-6) var(--sp-8); font:inherit; font-size:var(--fs-md); font-weight:var(--fw-regular); }
.biz-meta-note{ grid-column:1 / -1; font-size:var(--fs-sm); color:var(--mut); }
.biz-meta-note b{ color:var(--txt); }
.biz-devise-sel{ background:var(--card); color:var(--txt); border:1px solid var(--line);
  border-radius:var(--radius-sm); padding:var(--sp-6) var(--sp-8); font:inherit; font-size:var(--fs-md); width:100%; cursor:pointer; }
.biz-devise-sel:focus{ outline:none; border-color:var(--accent); }

/* ── Tableau de chiffrage ── */
.biz-block--pricing{ padding:0; overflow:hidden; border-top:3px solid var(--accent); }
.biz-block--pricing .biz-block-header{ padding:var(--sp-12) var(--sp-18) var(--sp-10);
  background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 7%,var(--card2)),var(--card2));
  border-bottom:1px solid var(--line); margin:0; }
.biz-chiffr-inner{ padding:0 var(--sp-18) var(--sp-18); }

.biz-chiffr-wrap{ overflow-x:auto; margin:0 -4px; }
.biz-chiffr{ width:100%; border-collapse:collapse; font-size:var(--fs-md); min-width:520px; }
.biz-chiffr thead{ position:sticky; top:0; background:var(--card); z-index:1; }
.biz-chiffr th{ text-align:left; color:var(--mut2); font-weight:var(--fw-strong); font-size:var(--fs-2xs);
  letter-spacing:.06em; text-transform:uppercase;
  padding:var(--sp-8) var(--sp-8) var(--sp-8); border-bottom:2px solid var(--line); background:var(--card2); }
.biz-chiffr th:nth-child(6){ text-align:right; }
.biz-chiffr td{ padding:var(--sp-2) var(--sp-4); border-bottom:1px solid color-mix(in srgb,var(--line2) 60%,transparent);
  vertical-align:middle; height:44px; }
.biz-chiffr input{ width:100%; background:transparent; color:var(--txt);
  border:1px solid transparent; border-radius:var(--radius-sm);
  padding:var(--sp-6) var(--sp-8); font:inherit; font-size:var(--fs-md);
  transition:border-color .1s, background .1s; }
.biz-chiffr input:hover{ border-color:var(--line); background:var(--card2); }
.biz-chiffr input:focus{ outline:none; border-color:var(--accent);
  background:color-mix(in srgb,var(--accent) 4%,var(--card));
  box-shadow:var(--focus); }
.biz-chiffr tr[data-ci]:hover td{ background:color-mix(in srgb,var(--accent) 3%,var(--card2)); }
.biz-chiffr tr[data-ci]:focus-within td{ background:color-mix(in srgb,var(--accent) 6%,var(--card2)); }

/* Numéro de ligne */
.biz-ch-num{ color:var(--mut2); font-size:var(--fs-xs); font-variant-numeric:tabular-nums;
  text-align:right; padding:0 var(--sp-8) 0 var(--sp-4); width:28px; user-select:none; }
th.biz-ch-num{ font-size:var(--fs-2xs); }

/* Colonnes fixes */
.biz-chiffr th:nth-child(3),.biz-chiffr td:nth-child(3){ width:64px; }
.biz-chiffr th:nth-child(4),.biz-chiffr td:nth-child(4){ width:80px; }
.biz-chiffr th:nth-child(5),.biz-chiffr td:nth-child(5){ width:90px; }

.biz-ch-line{ white-space:nowrap; text-align:right; padding-right:var(--sp-12);
  font-variant-numeric:tabular-nums; font-weight:var(--fw-strong); color:var(--txt); min-width:80px; }
.biz-ch-empty td{ color:var(--mut); text-align:center; padding:var(--sp-20) var(--sp-12); font-style:italic; }
.biz-x{ background:none; border:none; color:var(--mut2); cursor:pointer; font-size:var(--fs-base); line-height:var(--lh-flat);
  padding:var(--sp-2) var(--sp-6); border-radius:var(--radius-sm); transition:.1s; }
.biz-x:hover{ color:var(--err); background:color-mix(in srgb,var(--err) 10%,transparent); }

/* Bouton + Ligne */
.biz-add-row{ display:flex; align-items:center; gap:var(--sp-6); width:100%;
  color:var(--mut); font:500 12.5px/1 inherit; cursor:pointer;
  background:none; border:1px dashed var(--line);
  border-radius:var(--radius-sm); padding:var(--sp-8) var(--sp-12); margin-top:var(--sp-8);
  transition:color .12s, border-color .12s, background .12s; }
.biz-add-row:hover{ color:var(--accent); border-color:var(--accent);
  background:color-mix(in srgb,var(--accent) 5%,transparent); }

/* ── Bloc totaux ── */
.biz-totals-wrap{ margin-top:var(--sp-18); padding-top:var(--sp-16); border-top:1px solid var(--line); }
.biz-totals{ width:360px; max-width:100%; margin-left:auto; font-size:var(--fs-md); margin-bottom:var(--sp-10); }
.biz-tot-row{ display:flex; align-items:center; justify-content:space-between; gap:var(--sp-10); padding:var(--sp-4) 0; color:var(--mut); }
.biz-tot-row b{ color:var(--txt); font-variant-numeric:tabular-nums; min-width:80px; text-align:right; }
.biz-tot-row input{ width:52px; background:var(--card2); color:var(--txt); border:1px solid var(--line);
  border-radius:var(--radius-sm); padding:var(--sp-2) var(--sp-6); font:inherit; font-size:var(--fs-sm); text-align:right; }
.biz-tot-row input:focus{ outline:none; border-color:var(--accent); }

/* TTC - bannière accentuée */
.biz-ttc-card{ display:flex; align-items:center; justify-content:space-between;
  padding:var(--sp-14) var(--sp-18); margin-left:auto;
  width:360px; max-width:100%;
  background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 13%,var(--card2)),color-mix(in srgb,var(--accent) 6%,var(--card)));
  border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));
  border-radius:var(--radius); margin-top:var(--sp-4); }
.biz-ttc-label{ font-size:var(--fs-md); font-weight:var(--fw-strong); color:var(--txt); }
.biz-ttc-amt{ font-size:var(--fs-xl); font-weight:var(--fw-bold); color:var(--accent); font-variant-numeric:tabular-nums; letter-spacing:var(--ls-tight); }

/* ── Brouillon IA ── */
.biz-draft{ border:1px solid var(--line); border-radius:var(--radius); background:var(--card); }
.biz-draft>summary{ cursor:pointer; padding:var(--sp-8) var(--sp-12); font-size:var(--fs-sm); color:var(--mut); }
.biz-draft pre{ margin:0; padding:0 var(--sp-14) var(--sp-14); white-space:pre-wrap; font-size:var(--fs-sm); line-height:1.55; color:var(--txt); }

/* ── Status pills ── */
.biz-status-pill{ display:inline-flex; align-items:center; padding:var(--sp-2) var(--sp-8); border-radius:var(--radius-modal); font-size:var(--fs-xs); font-weight:var(--fw-strong); white-space:nowrap; }
.biz-st-draft   { background:color-mix(in srgb,var(--mut) 14%,transparent); color:var(--mut); border:1px solid color-mix(in srgb,var(--mut) 30%,transparent); }
.biz-st-sent    { background:color-mix(in srgb,var(--accent) 14%,transparent); color:var(--accent); border:1px solid color-mix(in srgb,var(--accent) 30%,transparent); }
.biz-st-read    { background:color-mix(in srgb,var(--warn) 14%,transparent); color:var(--warn); border:1px solid color-mix(in srgb,var(--warn) 30%,transparent); }
.biz-st-signed  { background:color-mix(in srgb,var(--ok) 14%,transparent); color:var(--ok); border:1px solid color-mix(in srgb,var(--ok) 30%,transparent); }
.biz-st-invoiced{ background:color-mix(in srgb,var(--accent2) 14%,transparent); color:var(--accent2); border:1px solid color-mix(in srgb,var(--accent2) 30%,transparent); }

/* ── Liste de documents (mode CRM) ── */
.biz-doc-filters{ display:flex; gap:var(--sp-6); flex-wrap:wrap; margin-bottom:var(--sp-10); }
.biz-doc-row{ display:flex; align-items:center; gap:var(--sp-12); padding:var(--sp-10) var(--sp-14); border-bottom:1px solid var(--line2); }
.biz-doc-row:last-child{ border-bottom:none; }
.biz-doc-main{ display:flex; align-items:center; gap:var(--sp-10); flex:1; min-width:0; }
.biz-doc-type-ic{ font-size:var(--fs-lg); flex-shrink:0; display:flex; align-items:center; }
.biz-doc-info{ min-width:0; }
.biz-doc-info strong{ display:block; font-size:var(--fs-md); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.biz-doc-meta{ font-size:var(--fs-xs); color:var(--mut); }
.biz-doc-acts{ display:flex; align-items:center; gap:var(--sp-6); flex-shrink:0; flex-wrap:wrap; }
.biz-st-select{ background:var(--card); color:var(--txt); border:1px solid var(--line); border-radius:var(--radius-sm);
  padding:var(--sp-4) var(--sp-6); font:inherit; font-size:var(--fs-xs); cursor:pointer; }

/* ── Éditeur de document ── */
.biz-doc-editor-status{ display:flex; align-items:center; gap:var(--sp-8); flex-wrap:wrap; padding:var(--sp-8) 0; }
.biz-section-heading{ width:100%; background:var(--card); color:var(--txt); border:1px solid var(--line);
  border-radius:var(--radius-sm); padding:var(--sp-6) var(--sp-10); font:600 14px/1 inherit; margin-bottom:var(--sp-6); }
.biz-text-section{ border:1px solid var(--line2); border-radius:var(--radius-sm); padding:var(--sp-12); margin-bottom:var(--sp-10); background:var(--card2); }
.biz-text-section textarea{ width:100%; background:var(--card); color:var(--txt); border:1px solid var(--line);
  border-radius:var(--radius-sm); padding:var(--sp-8) var(--sp-10); font:inherit; font-size:var(--fs-md); resize:vertical; }

/* ── Vide ── */
.biz-empty{ text-align:center; padding:var(--sp-28) var(--sp-16); color:var(--mut); font-size:var(--fs-md); }

/* ── Portail client ── */
.biz-portal-create{ display:flex; flex-direction:column; gap:var(--sp-10); }
.biz-portal-doc-list{ display:flex; flex-direction:column; gap:var(--sp-6); padding:var(--sp-10); background:var(--card2);
  border:1px solid var(--line); border-radius:var(--radius-sm); }
.biz-portal-doc-check{ display:flex; align-items:center; gap:var(--sp-8); font-size:var(--fs-md); cursor:pointer; }
.biz-portal-doc-check input{ accent-color:var(--accent); }

.biz-portal-card{ border:1px solid var(--line); border-radius:var(--radius); background:var(--card); padding:var(--sp-14) var(--sp-16);
  margin-bottom:var(--sp-10); display:flex; flex-direction:column; gap:var(--sp-8); }
.biz-portal-card:last-child{ margin-bottom:0; }
.biz-portal-revoked{ opacity:.55; }
.biz-portal-card-head{ display:flex; align-items:center; gap:var(--sp-10); justify-content:space-between; }
.biz-portal-card-head strong{ font-size:var(--fs-base); }
.biz-portal-meta{ display:flex; gap:var(--sp-12); flex-wrap:wrap; font-size:var(--fs-sm); color:var(--mut); }
.biz-portal-meta span{ display:inline-flex; align-items:center; gap:var(--sp-2); }
.biz-portal-url{ display:flex; gap:var(--sp-6); align-items:center; flex-wrap:wrap; }
.biz-url-field{ flex:1; min-width:160px; background:var(--card2); color:var(--mut); border:1px solid var(--line);
  border-radius:var(--radius-sm); padding:var(--sp-6) var(--sp-8); font:inherit; font-size:var(--fs-sm); font-family:var(--font-mono); }
.btn.mini{ display:inline-flex; align-items:center; padding:var(--sp-4) var(--sp-12); border-radius:var(--radius-sm);
  font:600 12px/1 inherit; border:1px solid var(--line); background:var(--card2); color:var(--txt);
  cursor:pointer; text-decoration:none; transition:.1s; }
.btn.mini:hover{ background:var(--card); border-color:var(--accent); }
.mini.err{ color:var(--err); border-color:color-mix(in srgb,var(--err) 40%,var(--line)); }
.mini.err:hover{ background:color-mix(in srgb,var(--err) 10%,var(--card)); }

.biz-portal-comments{ border-top:1px solid var(--line2); margin-top:var(--sp-4); }
.biz-portal-comments>summary{ cursor:pointer; font-size:var(--fs-sm); color:var(--mut); padding:var(--sp-6) 0; }
.biz-portal-comment{ padding:var(--sp-8) 0; border-bottom:1px solid var(--line2); font-size:var(--fs-sm); }
.biz-portal-comment:last-child{ border-bottom:none; }
.biz-portal-comment b{ color:var(--txt); }
.biz-portal-comment p{ color:var(--mut); margin-top:var(--sp-2); }

/* ── En-tête carte chiffrage ── */
.biz-block-header{ display:flex; align-items:center; justify-content:space-between; gap:var(--sp-12); }
.biz-chiffr-pill{ display:flex; align-items:center; gap:var(--sp-4);
  font-size:var(--fs-sm); font-weight:var(--fw-medium); color:var(--mut);
  padding:var(--sp-4) var(--sp-12) var(--sp-4) var(--sp-10);
  background:var(--card);
  border:1px solid color-mix(in srgb,var(--accent) 25%,var(--line));
  border-radius:var(--radius-modal); white-space:nowrap; }
.biz-chiffr-pill b{ font-size:var(--fs-base); font-weight:var(--fw-bold); color:var(--accent); font-variant-numeric:tabular-nums; }

/* ── Cellule actions (dup + delete) ── */
.biz-ch-acts{ display:flex; align-items:center; gap:var(--sp-2); padding:0 var(--sp-4); width:52px; }
.biz-dup{ background:none; border:none; color:var(--mut2); cursor:pointer; font-size:var(--fs-md); line-height:var(--lh-flat);
  padding:var(--sp-2) var(--sp-4); border-radius:var(--radius-sm); opacity:0; transition:opacity .1s, color .1s; }
.biz-chiffr tr[data-ci] td{ transition:background .08s; }
.biz-chiffr tr[data-ci]:hover .biz-dup,
.biz-chiffr tr[data-ci]:focus-within .biz-dup{ opacity:1; }
.biz-dup:hover{ color:var(--accent); background:color-mix(in srgb,var(--accent) 12%,transparent); }

/* ── Options de paiement - grille 3 cartes ── */
.biz-pay-opts{ margin-top:var(--sp-18); padding-top:var(--sp-14); border-top:1px solid var(--line2); }
.biz-pay-opts-head{ font-size:var(--fs-2xs); text-transform:uppercase; letter-spacing:.07em;
  color:var(--mut2); margin-bottom:var(--sp-10); font-weight:var(--fw-strong); }
.biz-pay-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(120px,1fr)); gap:var(--sp-8); }
@media(max-width:440px){ .biz-pay-grid{ grid-template-columns:1fr; } }
.biz-pay-card{ display:flex; flex-direction:column; gap:var(--sp-2);
  padding:var(--sp-10) var(--sp-12);
  background:var(--card2);
  border:1px solid var(--line);
  border-radius:var(--radius); }
.biz-pay-card:hover{ border-color:color-mix(in srgb,var(--accent) 40%,var(--line));
  background:color-mix(in srgb,var(--accent) 4%,var(--card2)); }
.biz-pay-c-badge{ display:inline-flex; align-items:center; width:fit-content;
  font-size:var(--fs-2xs); font-weight:var(--fw-bold); letter-spacing:.02em;
  padding:var(--sp-2) var(--sp-6); border-radius:var(--radius); margin-bottom:var(--sp-2);
  background:color-mix(in srgb,var(--ok) 14%,transparent);
  color:var(--ok); }
.biz-pay-c-label{ font-size:var(--fs-xs); color:var(--mut); font-weight:var(--fw-medium); }
.biz-pay-c-amt{ font-size:var(--fs-base); font-weight:var(--fw-bold); color:var(--txt);
  font-variant-numeric:tabular-nums; letter-spacing:-.01em; margin-top:var(--sp-2); }
.biz-pay-c-det{ font-size:var(--fs-2xs); color:var(--mut2); font-variant-numeric:tabular-nums; }

/* ── Barre multi-propositions (sélection/gestion des devis du projet) ── */
.biz-props-bar{ display:flex; align-items:center; gap:var(--sp-10); justify-content:space-between;
  flex-wrap:wrap; margin:var(--sp-2) 0 var(--sp-12); padding-bottom:var(--sp-12); border-bottom:1px solid var(--line2); }
.biz-props-chips{ display:flex; align-items:center; gap:var(--sp-6); flex-wrap:wrap; min-width:0; }
.biz-prop-chip{ display:inline-flex; flex-direction:column; align-items:flex-start; gap:var(--sp-1);
  padding:var(--sp-6) var(--sp-12); border-radius:var(--radius-sm); background:var(--card);
  border:1px solid var(--line); cursor:pointer; transition:.12s; max-width:210px; }
.biz-prop-chip:hover{ border-color:var(--accent); }
.biz-prop-chip.on{ border-color:var(--accent); background:color-mix(in srgb,var(--accent) 8%,var(--card)); }
.biz-prop-chip-t{ font-size:var(--fs-sm); font-weight:var(--fw-strong); color:var(--txt);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:186px; }
.biz-prop-chip-amt{ font-size:var(--fs-xs); color:var(--mut); font-variant-numeric:tabular-nums; }
.biz-prop-chip.on .biz-prop-chip-amt{ color:var(--accent); }
.biz-prop-add{ display:inline-flex; align-items:center; gap:var(--sp-6); padding:var(--sp-6) var(--sp-12);
  border-radius:var(--radius-sm); background:none; border:1px dashed var(--line);
  color:var(--mut2); cursor:pointer; font:600 12.5px/1 inherit; transition:.12s; }
.biz-prop-add:hover{ border-color:var(--accent); color:var(--accent); border-style:solid; }
.biz-prop-add svg{ width:14px; height:14px; }
.biz-props-acts{ display:flex; align-items:center; gap:var(--sp-4); }
.biz-prop-act{ display:inline-flex; align-items:center; justify-content:center;
  width:30px; height:30px; border-radius:var(--radius-sm); background:var(--card);
  border:1px solid var(--line); color:var(--mut2); cursor:pointer; transition:.12s; }
.biz-prop-act svg{ width:15px; height:15px; }
.biz-prop-act:hover{ color:var(--txt); border-color:var(--accent); }
.biz-prop-act.danger:hover{ color:var(--err); border-color:var(--err); }
.biz-prop-act:disabled{ opacity:.4; cursor:not-allowed; }

}
