/* ===== OPNR OS — CSS modules Phases 2-3-4 (v16) ===== */

/* --- ventilation --- */
/* ventilation (Phase 2) */
.ven-layout { display: grid; grid-template-columns: 292px 1fr; gap: 16px; align-items: start; margin-top: 16px; }
.ven-col { min-width: 0; }
.ven-listh { font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: #8a8175; margin: 0 2px 8px; }
.ven-cmdlist { display: flex; flex-direction: column; gap: 8px; }
.ven-cmdcard { text-align: left; background: #fff; border: 1px solid #e6e0d4; border-radius: 12px; padding: 11px 13px; cursor: pointer; transition: border-color .15s, box-shadow .15s, transform .12s; display: flex; flex-direction: column; gap: 5px; font: inherit; }
.ven-cmdcard:hover { border-color: var(--tenku); transform: translateY(-1px); }
.ven-cmdcard.active { border-color: var(--brick); box-shadow: inset 3px 0 0 var(--brick); }
.ven-cmdcard .top { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.ven-cmdcard .top .mono { font-size: 12px; color: #4a5a62; font-variant-numeric: tabular-nums; }
.ven-cmdcard b { font-size: 13.5px; color: #1e2629; }
.ven-cmdcard .mat { font-size: 12px; color: #6b6357; }
.ven-cmdcard .meta { display: flex; justify-content: space-between; font-size: 11px; color: #8a8175; margin-top: 1px; }

.ven-labcell { display: flex; flex-direction: column; gap: 4px; min-width: 188px; }
.ven-sel { width: 100%; padding: 7px 9px; border: 1px solid #d9d2c4; border-radius: 8px; background: #fff; font: inherit; font-size: 12.5px; color: #1e2629; cursor: pointer; transition: border-color .15s; }
.ven-sel:focus { outline: none; border-color: var(--tenku); box-shadow: 0 0 0 2px rgba(47,137,172,0.14); }
.ven-sel.sm { font-size: 12px; padding: 6px 8px; }
.ven-sel.mod { border-color: var(--tenku); background: #eef5f8; }
.ven-sel:disabled { background: #f3f0e9; color: #6b6357; cursor: default; opacity: .85; }
.ven-tag { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; color: #6b6357; }
.ven-tag.mod { color: var(--tenku); font-weight: 600; }

.ven-suggest { display: flex; gap: 12px; align-items: flex-start; background: #fbf6ea; border: 1px solid #ecdcae; border-radius: 12px; padding: 12px 14px; margin: 0 0 16px; }
.ven-suggest .ic { font-size: 19px; line-height: 1.2; }
.ven-suggest div { flex: 1; font-size: 12.5px; line-height: 1.5; color: #4a5a62; }
.ven-suggest b { color: #8a6a12; }
.ven-suggest .pd-btn { flex-shrink: 0; align-self: center; }

.ven-recap { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin: 16px 0 4px; }
.ven-recap .cell { background: #f7f4ec; border: 1px solid #ece6da; border-radius: 10px; padding: 11px 13px; }
.ven-recap .cell span { display: block; font-size: 11px; color: #6b6357; margin-bottom: 4px; }
.ven-recap .cell b { font-size: 19px; color: #1e2629; }

.ven-acts { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 16px; }

@media (max-width: 940px) {
  .ven-layout { grid-template-columns: 1fr; }
  .ven-recap { grid-template-columns: repeat(2, 1fr); }
  .ven-suggest { flex-wrap: wrap; }
}

/* --- expedition --- */
/* Module expédition — préfixe exp- */
.exp-head { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; }
.exp-head .pd-btn { flex:0 0 auto; white-space:nowrap; }

.exp-window { background:linear-gradient(180deg,#fff,#faf8f2); border:1px solid #e6e0d3; border-radius:14px; padding:16px 18px; margin:14px 0 4px; }
.exp-win-t { display:flex; align-items:center; gap:10px; font-size:13px; color:#1e2629; }
.exp-win-t b { font-size:14px; }
.exp-win-steps { display:flex; gap:10px; margin:14px 0 8px; }
.exp-win-step { flex:1; position:relative; padding-left:20px; }
.exp-win-step .d { position:absolute; left:0; top:3px; width:12px; height:12px; border-radius:50%; background:#fff; border:2px solid #cfc7b6; }
.exp-win-step.done .d { background:#2f7d4f; border-color:#2f7d4f; }
.exp-win-step.cur .d { background:#b58a1a; border-color:#b58a1a; box-shadow:0 0 0 4px rgba(181,138,26,.16); }
.exp-win-step em { display:block; font-style:normal; font-weight:700; font-size:13px; color:#1e2629; }
.exp-win-step small { color:#7c766a; font-size:11.5px; }
.exp-win-note { margin:2px 0 0; font-size:12px; color:#7c766a; line-height:1.5; }

.exp-envoi { padding:0; overflow:hidden; margin-bottom:12px; }
.exp-envoi-head { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:14px 16px; cursor:pointer; }
.exp-envoi.open .exp-envoi-head { border-bottom:1px solid #ece7db; }
.exp-envoi-head:hover { background:#faf8f2; }
.exp-labo { display:flex; align-items:center; gap:12px; min-width:0; }
.exp-labo-ic { width:34px; height:34px; flex:0 0 auto; display:grid; place-items:center; border-radius:9px; background:#eef3f5; color:#2f89ac; font-size:16px; }
.exp-labo b { font-size:14.5px; color:#1e2629; }
.exp-sub { display:block; font-size:12px; color:#7c766a; margin-top:1px; }
.exp-head-r { display:flex; align-items:center; gap:8px; flex:0 0 auto; }
.exp-arr { color:#b0a894; font-size:15px; width:14px; text-align:center; }

.exp-body { padding:14px 16px 16px; animation:pdRowIn .28s ease; }
.exp-group { margin:0 0 12px; font-size:12.5px; color:#5b5648; background:#f3f0e9; border-left:3px solid #2f89ac; padding:8px 12px; border-radius:0 8px 8px 0; }
.pd-cardh.sm { font-size:11.5px; text-transform:uppercase; letter-spacing:.4px; color:#8a8371; margin:14px 0 8px; }
.exp-samples td, .exp-samples th { vertical-align:middle; }
.exp-bc { display:inline-block; width:26px; height:12px; margin-right:7px; vertical-align:middle; border-radius:1px;
  background:repeating-linear-gradient(90deg,#1e2629 0 1px,#fff 1px 2px,#1e2629 2px 4px,#fff 4px 5px,#1e2629 5px 6px,#fff 6px 8px); }

.exp-doc { border:1px solid #e6e0d3; border-radius:12px; background:#fff; padding:0 0 12px; overflow:hidden; }
.exp-doc-h { display:flex; justify-content:space-between; align-items:center; padding:10px 14px; background:#1e2629; color:#f3f0e9; font-size:12.5px; }
.exp-doc-brand { font-weight:700; letter-spacing:.3px; }
.exp-doc-meta { font-size:11.5px; color:#7c766a; padding:9px 14px 4px; }
.exp-doc .pd-table.sm { margin:0; }
.exp-doc-foot { margin:10px 14px 0; font-size:12px; color:#8a5a17; background:#fbf3df; border-radius:8px; padding:7px 10px; display:flex; align-items:center; gap:7px; }
.exp-doc-foot.ok { color:#2f7d4f; background:#eaf5ee; }
.exp-hint { display:block; font-size:11px; color:#9a9384; padding:7px 14px 0; line-height:1.5; }
.exp-ship { display:grid; grid-template-columns:1fr 1fr; gap:10px 16px; padding:12px 14px 4px; }
.exp-ship > div span { display:block; font-size:11px; color:#9a9384; }
.exp-ship > div b { display:block; font-size:13px; color:#1e2629; }
.exp-ship > div small { color:#7c766a; font-size:11px; }
.exp-track { margin:10px 14px 0; font-size:12px; padding:8px 11px; border-radius:8px; background:#eef3f5; color:#2f89ac; }
.exp-track.pending { background:#f3f0e9; color:#7c766a; }

.exp-gate { display:flex; justify-content:space-between; align-items:center; gap:14px; margin-top:16px; padding:13px 15px; border:1px dashed #d8b96a; border-radius:11px; background:#fbf6e8; }
.exp-gate b { display:block; font-size:13px; color:#1e2629; }
.exp-gate span { font-size:12px; color:#7c766a; }
.exp-gate .pd-btn { flex:0 0 auto; }

.exp-actions { display:flex; flex-wrap:wrap; gap:9px; margin-top:14px; }
.exp-actions .pd-btn { flex:0 0 auto; }

.exp-bordmodal { max-width:640px; }
.exp-bord { border:1px solid #e6e0d3; border-radius:12px; overflow:hidden; margin:4px 0 6px; }
.exp-bord-top { display:flex; justify-content:space-between; align-items:center; padding:12px 14px; background:#1e2629; color:#f3f0e9; }
.exp-bord-top small { display:block; font-size:11px; color:#b0a894; margin-top:2px; }
.exp-bord-tr { font-weight:700; font-size:13px; background:#c89020; padding:5px 11px; border-radius:7px; }
.exp-bord-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; padding:13px 14px; border-bottom:1px solid #ece7db; }
.exp-bord-grid span { display:block; font-size:11px; color:#9a9384; }
.exp-bord-grid b { display:block; font-size:13px; color:#1e2629; }
.exp-bord-grid small { color:#7c766a; font-size:11px; }
.exp-bord .pd-table.sm { margin:0 14px; width:calc(100% - 28px); }
.exp-labels { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; padding:4px 14px 14px; }
.exp-label { border:1px solid #e6e0d3; border-radius:9px; padding:9px; text-align:center; background:#fff; }
.exp-label .exp-bc.big { width:100%; height:26px; margin:0 0 6px; }
.exp-label .mono { font-size:11px; display:block; }
.exp-label small { display:block; font-size:10.5px; color:#7c766a; margin-top:2px; }

@media (max-width:720px){
  .exp-head { flex-direction:column; }
  .exp-win-steps { flex-direction:column; gap:8px; }
  .exp-ship, .exp-bord-grid, .exp-labels { grid-template-columns:1fr; }
  .pd-cols2 { grid-template-columns:1fr; }
}

/* --- suivi-labo --- */
.sui-controls { display: flex; gap: 10px; align-items: center; }
.sui-alerts { display: flex; flex-direction: column; gap: 8px; margin-bottom: 18px; }
.sui-alert { display: flex; align-items: center; gap: 12px; background: #fff; border: 1px solid rgba(200,144,32,0.28); border-left: 3px solid var(--brick); border-radius: 12px; padding: 11px 14px; animation: pdFeedIn 0.4s var(--ease) both; }
.sui-alert.ano { border-color: rgba(181,138,26,0.32); border-left-color: #b58a1a; }
.sui-alert .ic { font-size: 16px; line-height: 1; }
.sui-alert .tx { flex: 1; min-width: 0; }
.sui-alert .tx b { display: block; font-size: 13px; color: #1e2629; }
.sui-alert .tx em { font-style: normal; font-size: 11.5px; color: #8a97a0; }
.sui-flag { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 11px; font-weight: 600; border-radius: 8px; padding: 6px 8px; margin: 6px 0 2px; }
.sui-flag.ret { background: rgba(200,144,32,0.08); color: var(--brick); }
.sui-flag.ano { background: rgba(181,138,26,0.1); color: #8a6d10; }
.sui-flag.done { background: rgba(60,140,90,0.09); color: #2f7d4f; }
.sui-flag button { margin-left: auto; }
.sui-kbtn { border: 0; border-radius: 8px; padding: 5px 9px; font-size: 11px; font-weight: 600; cursor: pointer; background: #1e2629; color: #fff; font-family: var(--font-body); }
.sui-kbtn:hover { background: var(--brick); }
.sui-prog { display: flex; gap: 5px; align-items: center; }
.sui-dot { width: 9px; height: 9px; border-radius: 50%; background: #d9dfe1; display: inline-block; }
.sui-dot.on { background: var(--tenku); }
.sui-dot.cur { box-shadow: 0 0 0 3px rgba(47,137,172,0.18); }
.pd-kanban .pd-kcol-h.te { color: var(--tenku); }
.sui-ts { display: block; font-size: 10px; color: #8a97a0; margin-top: 3px; }
.sui-ctrl { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 4px 0 8px; }
.sui-check { font-size: 12.5px; font-weight: 600; color: #8a97a0; background: #f3f0e9; border-radius: 8px; padding: 6px 10px; }
.sui-check.on { color: #2f7d4f; background: rgba(60,140,90,0.1); }
.sui-actline { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }

/* --- resultats --- */
/* ===== Module resultats (Phase 3) — préfixe res- ===== */
.res-rate { display: grid; grid-template-columns: 1.15fr 1fr; gap: 24px; align-items: start; }
@media (max-width: 760px) { .res-rate { grid-template-columns: 1fr; } }
.res-rate-big { font-family: var(--font-display); font-weight: 900; font-size: 54px; line-height: 1; color: var(--tenku); margin: 4px 0 2px; }
.res-rate-lead { font-size: 13px; color: #4a5a62; line-height: 1.55; margin: 8px 0 0; }
.res-rate-lead b { color: #1e2629; }
.res-cmp { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 12.5px; color: #6a7a82; margin-top: 12px; }
.res-cmp b { color: #1e2629; font-weight: 700; }
.res-arrow { color: var(--brick); font-weight: 700; }
.res-gaugerow { display: flex; justify-content: space-between; align-items: baseline; font-size: 12px; color: #8a97a0; margin-bottom: 6px; }
.res-gaugerow b { color: #1e2629; font-size: 13px; }

/* confiance en table */
.res-conf { display: flex; align-items: center; gap: 9px; min-width: 120px; }
.res-conf .mono { font-size: 12.5px; width: 34px; }
.res-confbar { flex: 1; min-width: 60px; }
.res-nc { color: var(--brick); font-weight: 700; font-size: 12px; }

/* barre de confiance en tête de détail */
.res-conftop { display: flex; align-items: center; gap: 12px; background: #fff; border: 1px solid rgba(0,0,0,0.06); border-radius: 12px; padding: 12px 16px; margin-bottom: 16px; flex-wrap: wrap; }
.res-conftop > span { font-size: 12px; color: #6a7a82; }
.res-conftop b { font-family: var(--font-display); font-weight: 900; font-size: 18px; color: var(--tenku); }

/* aperçu du rapport labo brut */
.res-doc { background: #fbfaf7; border: 1px solid rgba(0,0,0,0.1); border-radius: 10px; padding: 18px; box-shadow: inset 0 1px 0 rgba(255,255,255,0.6); }
.res-doc-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; border-bottom: 2px solid #1e2629; padding-bottom: 10px; margin-bottom: 10px; }
.res-doc-head b { font-family: var(--font-display); font-weight: 900; font-size: 16px; text-transform: uppercase; letter-spacing: 0.02em; }
.res-doc-head span { display: block; color: #8a97a0; font-size: 11px; margin-top: 3px; }
.res-doc-iso { border: 1px solid rgba(0,0,0,0.25); border-radius: 6px; padding: 3px 8px; font-size: 10px; color: #4a5a62; white-space: nowrap; letter-spacing: 0.03em; }
.res-doc-meta { color: #6a7a82; font-size: 11.5px; margin-bottom: 12px; line-height: 1.5; }
.res-doc-tbl { width: 100%; border-collapse: collapse; }
.res-doc-tbl th { text-align: left; font-size: 10px; text-transform: uppercase; letter-spacing: 0.04em; color: #8a97a0; border-bottom: 1px solid rgba(0,0,0,0.15); padding: 6px 8px; }
.res-doc-tbl td { padding: 8px; border-bottom: 1px solid rgba(0,0,0,0.06); font-size: 12.5px; color: #2b3238; }
.res-doc-tbl td.v { font-weight: 700; }
.res-doc-tbl td.v { background: rgba(47,137,172,0.12); border-radius: 4px; }
.res-doc-foot { margin-top: 12px; font-size: 10.5px; color: #9aa6ad; font-style: italic; line-height: 1.4; }

/* lignes d'extraction à valider */
.res-line { border: 1px solid rgba(0,0,0,0.09); border-radius: 12px; padding: 13px 15px; margin-bottom: 11px; transition: border-color 0.2s, background 0.2s; }
.res-line:last-child { margin-bottom: 0; }
.res-line.ok { border-color: rgba(47,125,79,0.45); background: rgba(47,125,79,0.05); }
.res-line.nc { border-color: rgba(200,144,32,0.35); }
.res-line-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; margin-bottom: 10px; }
.res-line-name { font-weight: 700; font-size: 14.5px; color: #1e2629; }
.res-line-code { font-size: 11px; color: #8a97a0; margin-top: 2px; font-family: var(--font-mono, monospace); }
.res-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 16px; margin-bottom: 11px; }
@media (max-width: 520px) { .res-grid { grid-template-columns: 1fr; } }
.res-cell span { display: block; font-size: 10.5px; text-transform: uppercase; letter-spacing: 0.03em; color: #8a97a0; margin-bottom: 2px; }
.res-cell b { font-size: 14.5px; color: #1e2629; }
.res-line-act { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.res-line-act .pd-hint { margin: 0; }
.res-line-act .pd-btn.sm { margin-top: 0; }
.res-valok { color: #2f7d4f; font-weight: 700; font-size: 12.5px; white-space: nowrap; }
.res-flag { background: rgba(181,138,26,0.1); border: 1px solid rgba(181,138,26,0.3); border-radius: 10px; padding: 11px 13px; font-size: 12.5px; color: #6e560f; line-height: 1.5; margin-bottom: 11px; }
.res-flag b { color: #4f3d09; }

/* conclusion */
.res-concl { width: 100%; min-height: 104px; border: 1px solid rgba(0,0,0,0.15); border-radius: 10px; padding: 12px 14px; font-family: var(--font-body); font-size: 13.5px; line-height: 1.55; color: #1e2629; background: #fff; resize: vertical; }
.res-concl:focus { outline: none; border-color: var(--tenku); box-shadow: 0 0 0 3px rgba(47,137,172,0.12); }
.res-concl[readonly] { background: #faf8f3; color: #4a5a62; }

/* bandeau revue + barre d'action */
.res-review { display: flex; align-items: center; gap: 14px; background: rgba(181,138,26,0.08); border: 1px solid rgba(181,138,26,0.32); border-radius: 12px; padding: 13px 16px; margin-bottom: 16px; }
.res-review .t b { display: block; font-size: 13.5px; color: #4f3d09; }
.res-review .t span { display: block; font-size: 12px; color: #6a7a82; margin-top: 3px; line-height: 1.45; }
.res-actionbar { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.res-actionbar .pd-hint { margin: 0; }

/* --- bulletins --- */
/* --- Module bulletins (préfixe bul-) --- */
.bul-genbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px solid #eae5da}
.bul-genbar .hint{flex:1;min-width:220px}
.bul-selrow{background:rgba(47,137,172,.07)}
.bul-selrow b{color:var(--tenku)}
.bul-radio{display:inline-block;width:15px;height:15px;border-radius:50%;border:2px solid #c7bfae;vertical-align:middle;transition:.15s}
.bul-radio.on{border-color:var(--tenku);background:radial-gradient(circle,var(--tenku) 0 42%,#fff 46%)}
.bul-ncrow{background:rgba(200,144,32,.05)}

/* document bulletin */
.bul-doc{background:#fff;border:1px solid #e6e0d4;border-radius:12px;padding:24px 26px;margin:16px 0;box-shadow:0 10px 30px -18px rgba(30,38,41,.35);animation:pdFeedIn .4s ease both}
.bul-dochead{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding-bottom:16px;border-bottom:2px solid #1e2629}
.bul-doclogo{font-size:20px;font-weight:600;color:#1e2629;line-height:1.1}
.bul-doclogo .k{font-family:serif;color:var(--brick);margin-right:4px}
.bul-doclogo b{color:var(--tenku)}
.bul-doclogo em{display:block;font-style:normal;font-size:11px;font-weight:400;color:#8a8577;margin-top:4px;letter-spacing:.02em}
.bul-docref{text-align:right;display:flex;flex-direction:column;gap:2px}
.bul-docref span{font-size:11px;color:#8a8577}
.bul-docref b{font-size:15px;color:#1e2629}
.bul-docmeta{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;padding:16px 0;margin-bottom:6px;border-bottom:1px solid #eee7db}
.bul-docmeta span{display:block;font-size:11px;color:#8a8577;margin-bottom:3px;text-transform:uppercase;letter-spacing:.04em}
.bul-docmeta b{font-size:14px;color:#1e2629}

/* conclusion */
.bul-conc{margin-top:14px;border-radius:10px;padding:14px 16px;border:1px solid}
.bul-conc.ok{background:rgba(47,125,79,.07);border-color:rgba(47,125,79,.28)}
.bul-conc.nc{background:rgba(200,144,32,.07);border-color:rgba(200,144,32,.28)}
.bul-conc-h{display:flex;align-items:center;gap:8px;font-weight:600;font-size:13px;color:#1e2629;margin-bottom:6px}
.bul-conc.ok .bul-conc-h{color:var(--green,#2f7d4f)}
.bul-conc.nc .bul-conc-h{color:var(--brick)}
.bul-conc p{margin:0;font-size:13px;line-height:1.5;color:#3a423f}

/* annexe rapport labo */
.bul-annex{display:flex;align-items:center;gap:12px;margin-top:12px;padding:12px 14px;background:#f7f4ec;border:1px dashed #cfc7b6;border-radius:10px}
.bul-annex-ic{font-size:20px}
.bul-annex b{display:block;font-size:13px;color:#1e2629}
.bul-annex span{font-size:12px;color:#78736a}

/* bloc validation / envoi gaté */
.bul-validate{background:#fff;border:1px solid #e6e0d4;border-radius:12px;padding:18px 20px;margin-top:16px}
.bul-val-h{font-weight:600;font-size:14px;color:#1e2629;margin-bottom:12px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.bul-check{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;background:var(--kome,#f3f0e9);border:1px solid #e6e0d4;border-radius:9px;cursor:pointer;font-size:13px;color:#2a322f;line-height:1.4}
.bul-check input{width:17px;height:17px;margin-top:1px;accent-color:var(--tenku);cursor:pointer;flex:0 0 auto}
.bul-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.pd-screen .pd-btn[disabled]{opacity:.45;cursor:not-allowed;filter:grayscale(.3);pointer-events:none}
@media(max-width:720px){.bul-docmeta{grid-template-columns:repeat(2,1fr)}.bul-dochead{flex-direction:column}.bul-docref{text-align:left}}

/* --- facturation --- */
/* Facturation (fac-) — panneau fuite de CA + interface Pennylane */
.fac-leak{border:1px solid rgba(200,144,32,.35);background:linear-gradient(180deg,rgba(200,144,32,.07),rgba(200,144,32,.02));border-radius:14px;padding:18px 20px;margin:0 0 18px;box-shadow:0 1px 0 rgba(200,144,32,.06)}
.fac-leak.ok{border-color:rgba(47,125,79,.35);background:linear-gradient(180deg,rgba(47,125,79,.08),rgba(47,125,79,.02))}
.fac-leakhead{display:flex;gap:20px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap}
.fac-leaktitle{display:flex;align-items:center;gap:9px;font-weight:700;font-size:16px;color:#1e2629}
.fac-dot{width:9px;height:9px;border-radius:50%;background:var(--brick,#c89020);box-shadow:0 0 0 0 rgba(200,144,32,.5);animation:facPulse 1.8s infinite}
@keyframes facPulse{0%{box-shadow:0 0 0 0 rgba(200,144,32,.45)}70%{box-shadow:0 0 0 8px rgba(200,144,32,0)}100%{box-shadow:0 0 0 0 rgba(200,144,32,0)}}
.fac-leaksub{margin:7px 0 0;max-width:560px;font-size:12.5px;line-height:1.5;color:#5b6b70}
.fac-leakfig{text-align:right;flex-shrink:0}
.fac-fignum{font-size:30px;font-weight:800;letter-spacing:-.5px;color:var(--brick,#c89020);line-height:1}
.fac-leak.ok .fac-fignum{color:var(--brick,#c89020)}
.fac-figlbl{margin-top:4px;font-size:12px;color:#5b6b70}
.fac-figlbl b{color:#1e2629}
.fac-leaklist{margin:15px 0 0;border-top:1px solid rgba(200,144,32,.16);display:grid;gap:1px;background:rgba(200,144,32,.10);border-radius:9px;overflow:hidden}
.fac-leakrow{display:grid;grid-template-columns:1fr auto 120px auto;gap:14px;align-items:center;padding:10px 14px;background:#fff}
.fac-lr-main{display:flex;flex-direction:column;gap:1px;min-width:0}
.fac-lr-main b{font-size:13px;color:#1e2629}
.fac-lr-main span{font-size:11.5px;color:#5b6b70;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fac-lr-meta{display:flex;align-items:center;gap:8px}
.fac-lr-eur{text-align:right;font-size:13.5px;color:#1e2629}
.fac-mono{font-variant-numeric:tabular-nums;font-family:ui-monospace,"SFMono-Regular",Menlo,monospace;font-size:11.5px;color:#5b6b70}
.fac-lr-eur.fac-mono{color:#1e2629;font-size:13.5px}
.fac-leakfoot{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:14px;flex-wrap:wrap}
.fac-leakfoot .pd-hint{margin:0;max-width:520px}
.fac-calc{color:#1e2629}
.fac-calc em{font-style:normal;font-size:10px;color:var(--tenku,#2f89ac);background:rgba(47,137,172,.1);padding:1px 6px;border-radius:20px;margin-left:4px}
.fac-rendu{font-size:11px;color:#8a969a}
.fac-act{text-align:right;white-space:nowrap}
.fac-listhead{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.fac-listhead .fac-pn{margin-left:0}
.fac-listhead .pd-btn{margin-left:auto}
.fac-pn{font-size:11px;font-weight:500;color:#5b6b70;background:#f3f0e9;padding:3px 10px;border-radius:20px;display:inline-flex;align-items:center;gap:7px;text-transform:none}
.fac-chipn{font-style:normal;font-size:10.5px;font-weight:600;opacity:.55;margin-left:2px}
.fac-live{color:var(--vert,#2f7d4f);font-size:10px;font-weight:600}
@media (max-width:720px){.fac-leakrow{grid-template-columns:1fr auto;grid-auto-rows:auto}.fac-lr-meta,.fac-lr-eur{grid-column:2}.fac-leakfig{text-align:left}}

/* --- portail --- */
/* Portail client (module portail) */
.por-toggle { flex: 0 0 auto; }

/* Chrome distinct de l'espace client */
.por-clientbar {
  display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap;
  margin: 4px 0 18px; padding: 14px 18px; border-radius: 14px;
  background: linear-gradient(100deg, #2f89ac 0%, #235d73 60%, #1e2629 130%);
  color: #f3f0e9; box-shadow: 0 6px 22px rgba(30, 38, 41, .18);
}
.por-cbtitle { font-size: 16px; letter-spacing: .2px; display: flex; align-items: center; gap: 9px; }
.por-cbtitle b { font-weight: 700; }
.por-cbdot {
  width: 26px; height: 26px; border-radius: 8px; display: inline-flex; align-items: center; justify-content: center;
  background: rgba(243, 240, 233, .16); font-size: 14px;
}
.por-cbx { opacity: .55; font-weight: 400; }
.por-cbactions { display: flex; align-items: center; gap: 10px; }
.por-cbsel { font-size: 12.5px; color: rgba(243, 240, 233, .82); display: flex; align-items: center; }
.por-cbsel select {
  background: rgba(243, 240, 233, .12); color: #fff; border: 1px solid rgba(243, 240, 233, .3);
  border-radius: 8px; padding: 6px 10px; font: inherit; font-size: 12.5px; cursor: pointer;
}
.por-cbsel select option { color: #1e2629; }

/* Barre d'actions client */
.por-cta {
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
  margin: 0 0 18px; padding: 14px 16px; background: #fff; border: 1px solid #e7e1d5; border-radius: 12px;
}
.por-hint, .por-note { color: #7a746a; font-size: 12.5px; line-height: 1.5; }
.por-cta .por-hint { flex: 1 1 220px; min-width: 180px; }

.por-cols { align-items: start; }
@media (max-width: 900px) { .por-cols { grid-template-columns: 1fr; } }

.por-actcell { text-align: right; white-space: nowrap; }
.por-wait { color: #9a9386; font-size: 12px; font-style: italic; }

/* Bulletins */
.por-bul {
  display: flex; align-items: center; gap: 12px; padding: 11px 4px; border-bottom: 1px solid #efe9dd;
}
.por-bul:last-of-type { border-bottom: 0; }
.por-bulic { font-size: 20px; flex: 0 0 auto; }
.por-bulmeta { flex: 1 1 auto; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.por-bulmeta b { font-size: 13.5px; }
.por-bulmeta span { color: #7a746a; font-size: 12px; }

.por-foot {
  display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap;
  margin-top: 16px; padding: 12px 16px; border: 1px dashed #d9d2c4; border-radius: 12px;
}
.por-foot > span { color: #7a746a; font-size: 12.5px; }

.por-principle { margin-top: 16px; }
.por-principle .pd-btn { margin-top: 14px; }

/* Modale de dépôt */
.por-modal { max-width: 560px; }
.por-modalcl {
  float: right; font-size: 12px; font-weight: 600; color: #2f89ac;
  background: rgba(47, 137, 172, .1); padding: 3px 10px; border-radius: 20px;
}
.por-cat { display: flex; flex-direction: column; gap: 6px; margin: 4px 0 4px; }
.por-catitem {
  display: grid; grid-template-columns: 22px 84px 1fr auto; align-items: center; gap: 10px;
  padding: 9px 12px; border: 1px solid #e7e1d5; border-radius: 9px; cursor: pointer; transition: background .15s, border-color .15s;
}
.por-catitem:hover { background: #faf7f0; }
.por-catitem input { accent-color: #2f89ac; width: 16px; height: 16px; cursor: pointer; }
.por-catitem:has(input:checked) { border-color: #2f89ac; background: rgba(47, 137, 172, .06); }
.por-catcode {
  font-family: ui-monospace, "SF Mono", Menlo, monospace; font-size: 11.5px; font-weight: 600; color: #b58a1a;
  background: rgba(181, 138, 26, .1); padding: 3px 7px; border-radius: 6px; text-align: center;
}
.por-catlabel { font-size: 13px; }
.por-catprice { text-align: right; font-size: 13px; }
.por-catdevis { font-size: 11.5px; color: #7a746a; font-style: italic; }
.por-cattotalbar {
  display: flex; align-items: center; justify-content: space-between; margin: 10px 0 2px;
  padding: 10px 12px; background: #f3f0e9; border-radius: 9px; font-size: 13px;
}
.por-cattotalbar [data-cattotal] { font-weight: 700; font-size: 15px; }
.por-note {
  margin: 8px 0 4px; padding: 10px 12px; background: rgba(47, 137, 172, .06);
  border-left: 3px solid #2f89ac; border-radius: 0 8px 8px 0;
}

/* --- veille --- */
/* Veille réglementaire — classes vei-* */
.vei-head { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; }
.vei-head .pd-live { flex:none; margin-top:4px; }

.vei-feed { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; margin-top:14px; }
@media (max-width:900px){ .vei-feed { grid-template-columns:1fr; } }

.vei-card {
  display:block; width:100%; text-align:left; cursor:pointer;
  background:#fff; border:1px solid #e5ded0; border-left:4px solid #c9c0ae;
  border-radius:12px; padding:14px 16px; font:inherit; color:inherit;
  transition:transform .12s ease, box-shadow .12s ease, border-color .12s ease;
  animation:pdFeedIn .3s ease both;
}
.vei-card:hover { transform:translateY(-2px); box-shadow:0 8px 22px rgba(30,38,41,.10); border-left-color:#8a8272; }
.vei-card.g-br { border-left-color:#c89020; }
.vei-card.g-am { border-left-color:#b58a1a; }
.vei-card.g-te { border-left-color:#2f89ac; }
.vei-card.g-gy { border-left-color:#c9c0ae; }

.vei-card-top { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:8px; }
.vei-ref { font-size:12px; color:#6b6a63; }
.vei-date { font-size:12px; color:#8a8272; margin-left:auto; }
.vei-prod { font-weight:700; font-size:15px; line-height:1.3; margin-bottom:5px; }
.vei-danger { font-size:13px; color:#c89020; margin-bottom:11px; }

.vei-card-foot { display:flex; align-items:center; justify-content:space-between; gap:8px; padding-top:10px; border-top:1px solid #f0ebe0; }
.vei-foot-r { display:flex; align-items:center; gap:8px; }
.vei-foot-r .arr { color:#b0a894; font-size:16px; }
.vei-cli-tag { font-size:12px; font-weight:600; color:#2f89ac; background:#e8f0f3; padding:3px 9px; border-radius:20px; }
.vei-cli-tag.off { color:#8a8272; background:#f3f0e9; font-weight:500; }

.vei-chip-cli.active { background:#2f89ac; border-color:#2f89ac; color:#fff; }

.vei-tags { display:flex; gap:8px; flex-wrap:wrap; margin:2px 0 16px; }

.vei-ia-note { font-size:12px; font-weight:500; color:#b58a1a; margin-left:8px; }
.vei-resume { font-size:14px; line-height:1.6; color:#2f3a3e; margin:2px 0 14px; }

.vei-field { display:flex; justify-content:space-between; align-items:baseline; gap:12px; padding:10px 0; border-top:1px solid #f0ebe0; }
.vei-field span { font-size:13px; color:#6b6a63; }
.vei-field b { font-size:13px; text-align:right; }

.vei-clients { display:flex; flex-direction:column; gap:8px; margin-bottom:16px; }
.vei-clirow { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:10px 12px; background:#f7f4ec; border:1px solid #ece5d6; border-radius:9px; }
.vei-clirow b { font-size:14px; }
.vei-clirow span { font-size:12px; color:#6b6a63; }

.vei-action { margin-top:4px; }

/* --- pilotage --- */
/* Pilotage (Phase 4) — classes préfixées pil- */
.pil-hint { display: block; font-size: 11.5px; color: #8a97a0; margin-top: 12px; line-height: 1.5; }

/* Bandeau objectif direction */
.pil-goal { background: linear-gradient(135deg, #1e2629, #2b3a40); color: #fff; border-radius: 16px; padding: 20px 22px; margin-bottom: 20px; }
.pil-goal-head b { display: block; font-family: var(--font-display); font-weight: 900; font-size: 19px; }
.pil-goal-head span { display: block; font-size: 12.5px; color: rgba(255,255,255,0.68); margin-top: 4px; }
.pil-goalbar { position: relative; height: 12px; border-radius: 99rem; background: rgba(255,255,255,0.12); margin: 22px 0 30px; overflow: visible; }
.pil-goalbar-f, .pil-goalbar-g { position: absolute; left: 0; top: 0; height: 100%; border-radius: 99rem; }
.pil-goalbar-g { background: rgba(79,195,232,0.4); z-index: 1; animation: pdGauge 1s var(--ease) both; }
.pil-goalbar-f { background: var(--tenku-hot); z-index: 2; animation: pdGauge 0.9s var(--ease) both; }
.pil-goalbar-mark { position: absolute; top: -4px; width: 2px; height: 20px; background: var(--brick-hot); z-index: 3; }
.pil-goalbar-mark em { position: absolute; left: 6px; top: 20px; font-size: 10.5px; font-style: normal; color: rgba(255,255,255,0.85); white-space: nowrap; }
.pil-goal-legend { display: flex; gap: 20px; flex-wrap: wrap; font-size: 11.5px; color: rgba(255,255,255,0.72); }
.pil-goal-legend i { display: inline-block; width: 9px; height: 9px; border-radius: 3px; margin-right: 6px; vertical-align: middle; }
.pil-goal-legend .d1 { background: var(--tenku-hot); }
.pil-goal-legend .d2 { background: rgba(79,195,232,0.5); }
.pil-goal-legend .d3 { background: var(--brick-hot); }

/* Vue fiabilité labos */
.pil-labrow { display: grid; grid-template-columns: 26px minmax(150px, 1.3fr) 1.4fr 1.4fr; align-items: center; gap: 16px; padding: 14px 6px; border-bottom: 1px solid rgba(0,0,0,0.06); cursor: pointer; transition: background 0.15s; animation: pdRowIn 0.4s var(--ease) both; }
.pil-labrow:last-child { border-bottom: 0; }
.pil-labrow:hover { background: #faf8f3; }
.pil-rank { font-family: var(--font-display); font-weight: 900; font-size: 17px; color: var(--tenku); text-align: center; }
.pil-labname b { font-size: 14px; }
.pil-metric { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 10px; }
.pil-metric em { grid-column: 1 / -1; font-size: 10.5px; font-style: normal; color: #8a97a0; margin-bottom: 2px; }
.pil-metric .pd-gauge { flex: 1; }
.pil-metric b { font-size: 13px; font-variant-numeric: tabular-nums; min-width: 42px; text-align: right; }
@media (max-width: 760px) { .pil-labrow { grid-template-columns: 22px 1fr; } .pil-metric { grid-column: 1 / -1; } }

/* Gauges à libellé (créneau + charge) */
.pil-clab { display: grid; grid-template-columns: minmax(120px, 1fr) 1.6fr auto; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid rgba(0,0,0,0.05); }
.pil-clab:last-of-type { border-bottom: 0; }
.pil-clab > span { font-size: 13px; font-weight: 600; color: #1e2629; }
.pil-clab b { font-size: 13px; font-variant-numeric: tabular-nums; min-width: 40px; text-align: right; }
.pil-sub2 { display: block; font-size: 11px; font-weight: 400; font-style: normal; color: #8a97a0; margin-top: 2px; }

/* Gros chiffre créneau */
.pil-bigstat { display: flex; flex-direction: column; }
.pil-big { display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; margin-bottom: 14px; }
.pil-big b { font-family: var(--font-display); font-weight: 900; font-size: 52px; line-height: 1; color: #1e2629; }
.pil-target { font-size: 12.5px; font-weight: 700; }
.pil-target.ok { color: #2f7d4f; }
.pil-target.warn { color: var(--brick); }

/* Sparkline */
.pil-spark { margin: 18px 0 6px; }
.pil-sparksvg { width: 100%; height: 62px; display: block; }
.pil-spark-x { display: flex; justify-content: space-between; margin-top: 6px; font-size: 10.5px; color: #8a97a0; }

/* Vue CA par client */
.pil-cabar { display: grid; grid-template-columns: minmax(110px, 1fr) 2fr auto; align-items: center; gap: 12px; padding: 8px 0; }
.pil-caname { font-size: 13px; font-weight: 600; color: #1e2629; }
.pil-catrack { height: 14px; border-radius: 99rem; background: #eee9df; overflow: hidden; }
.pil-cafill { height: 100%; border-radius: 99rem; background: linear-gradient(90deg, var(--tenku), var(--tenku-hot)); animation: pdGauge 0.9s var(--ease) both; }
.pil-cabar b { font-size: 13px; font-variant-numeric: tabular-nums; min-width: 66px; text-align: right; }

/* Vue fuite de CA */
.pil-leak { display: flex; justify-content: space-between; align-items: center; gap: 18px; flex-wrap: wrap; background: rgba(200,144,32,0.06); border: 1px solid rgba(200,144,32,0.28); border-radius: 14px; padding: 18px 20px; margin-bottom: 16px; }
.pil-leak-k { display: block; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: var(--brick); }
.pil-leak b { display: block; font-family: var(--font-display); font-weight: 900; font-size: 38px; line-height: 1.05; color: var(--brick); margin: 4px 0; }
.pil-leak em { display: block; font-size: 12px; font-style: normal; color: #6a7a82; }
.pil-leak-act { display: flex; gap: 10px; flex-wrap: wrap; }
.pil-done { opacity: 0.5; }
.pil-done td { text-decoration: line-through; }
.pil-done td:last-child { text-decoration: none; }

/* ===== responsive modules : grilles 2 colonnes -> 1 colonne sur mobile ===== */
@media (max-width: 720px) {
  .ven-layout, .ven-recap, .exp-ship, .res-grid, .vei-feed { grid-template-columns: 1fr !important; }
  .pil-clab, .pil-cabar { grid-template-columns: 1fr auto !important; }
}

/* fix ordre-source : la sidebar mobile doit battre les règles de base .pd-sidescroll/.pd-navphase (styles.css l.1151+) */
@media (max-width: 720px) {
  .pd-side { flex-direction: row; align-items: center; gap: 6px; padding: 8px 12px; overflow-x: auto; overflow-y: hidden; }
  .pd-sidescroll { flex-direction: row; overflow-x: auto; overflow-y: hidden; margin: 0; padding: 0 2px; gap: 6px; align-items: center; }
  .pd-navphase { display: none; }
  .pd-navitem { white-space: nowrap; width: auto; flex: 0 0 auto; }
}

/* fix ordre-source : bouton Fermer compact sur mobile (bat .pd-close base l.963) */
@media (max-width: 720px) {
  .pd-close { font-size: 0; padding: 7px 10px; top: 9px; right: 10px; z-index: 340; }
  .pd-close::before { content: '✕'; font-size: 13px; }
  .pd-side { padding-right: 46px; }
}

/* fix : bloc « Écarts BC / facture » + codes presta + couleurs KPI facturation (classes jamais stylées) */
.fac-ec { border: 1px solid rgba(181,138,26,.4); background: linear-gradient(180deg, rgba(181,138,26,.08), rgba(181,138,26,.02)); border-radius: 14px; padding: 16px 20px; margin: 0 0 18px; }
.fac-ec.ok { border-color: rgba(47,125,79,.35); background: linear-gradient(180deg, rgba(47,125,79,.08), rgba(47,125,79,.02)); }
.fac-echead { display: flex; align-items: center; gap: 9px; font-weight: 700; font-size: 15px; color: #1e2629; }
.fac-echead .fac-dot { background: #b58a1a; }
.fac-ecsub { margin: 7px 0 12px; max-width: 620px; font-size: 12.5px; line-height: 1.5; color: #5b6b70; }
.fac-ecrow { display: grid; grid-template-columns: 1.5fr auto auto auto; align-items: center; gap: 12px 24px; padding: 13px 0; border-top: 1px solid rgba(0,0,0,.08); }
.fac-ec-main b { display: block; font-size: 14px; color: #1e2629; }
.fac-ec-main span { display: block; font-size: 12px; color: #6a7a82; margin-top: 2px; }
.fac-ec-fig { text-align: right; font-variant-numeric: tabular-nums; font-weight: 700; color: #1e2629; font-size: 14px; white-space: nowrap; }
.fac-ec-fig em { display: block; font-style: normal; font-weight: 400; font-size: 11px; color: #8a97a0; margin-top: 3px; }
.fac-ec-delta { font-variant-numeric: tabular-nums; font-weight: 800; color: #b58a1a; font-size: 15px; margin-bottom: 6px; }
.fac-code { display: inline-block; font-variant-numeric: tabular-nums; font-size: 10.5px; font-weight: 600; color: var(--tenku,#2f89ac); background: rgba(47,137,172,.1); border-radius: 6px; padding: 2px 7px; letter-spacing: .02em; }
.fac-lr-codes { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 6px; }
.fac-kte .v { color: var(--tenku,#2f89ac); }
.fac-kam .v { color: #9a7400; }
.fac-kbr .v { color: var(--brick,#c89020); }
.fac-kgr .v { color: #2f7d4f; }
@media (max-width: 720px) { .fac-ecrow { grid-template-columns: 1fr 1fr; gap: 8px 14px; } .fac-ec-fig, .fac-ec-delta { text-align: left; } .fac-ec-main { grid-column: 1 / -1; } }

/* ===== Vue entreprise (Phase 1) ===== */
.ent-hero { display: flex; justify-content: space-between; align-items: center; gap: 20px; background: linear-gradient(135deg, #1e2629, #263238); color: #f3f0e9; border-radius: 16px; padding: 22px 26px; margin-bottom: 20px; flex-wrap: wrap; }
.ent-hero-l { display: flex; gap: 16px; align-items: center; min-width: 0; }
.ent-logo { width: 56px; height: 56px; border-radius: 14px; background: var(--brick,#c89020); color: #fff; display: grid; place-items: center; font-family: var(--font-display); font-weight: 900; font-size: 20px; flex-shrink: 0; }
.ent-name { font-family: var(--font-display); font-weight: 900; font-size: 22px; text-transform: uppercase; letter-spacing: -.01em; }
.ent-act { font-size: 12.5px; color: #aebbc0; margin: 2px 0 8px; }
.ent-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.ent-chip { font-size: 11px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.12); border-radius: 99rem; padding: 3px 10px; color: #cdd8dc; }
.ent-hero-r { text-align: right; flex-shrink: 0; }
.ent-ca-lbl { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: #8ea1a8; }
.ent-ca { display: block; font-family: var(--font-display); font-weight: 900; font-size: 30px; color: #fff; line-height: 1.1; }
.ent-ca-sub { display: block; font-size: 11.5px; color: #8ea1a8; }

.ent-gauge-wrap { margin-bottom: 16px; }
.ent-gauge-head { display: flex; justify-content: space-between; font-size: 13px; color: #4a5a62; margin-bottom: 6px; }
.ent-gauge-head b { color: #1e2629; font-weight: 800; }
.ent-gauge { height: 10px; border-radius: 99rem; background: #eee9df; overflow: hidden; }
.ent-gauge-f { height: 100%; border-radius: 99rem; background: #2f7d4f; animation: pdGauge .9s var(--ease) both; }
.ent-gauge-sub { display: block; font-size: 11.5px; color: #8a97a0; margin-top: 6px; }

.ent-facts { display: flex; flex-direction: column; }
.ent-fact-row { display: grid; grid-template-columns: 14px 1.4fr 1fr auto; align-items: center; gap: 12px; width: 100%; text-align: left; background: transparent; border: 0; border-top: 1px solid rgba(0,0,0,.06); padding: 11px 0; cursor: pointer; font: inherit; }
.ent-fact-row:first-child { border-top: 0; }
.ent-fact-row:hover { background: rgba(0,0,0,.02); }
.ent-fdot { width: 10px; height: 10px; border-radius: 50%; }
.ent-flabel { font-size: 13.5px; color: #1e2629; font-weight: 600; }
.ent-flabel em { display: block; font-style: normal; font-weight: 400; font-size: 11px; color: #8a97a0; margin-top: 2px; }
.ent-ftrack { height: 8px; border-radius: 99rem; background: #f0ece3; overflow: hidden; }
.ent-ffill { display: block; height: 100%; border-radius: 99rem; }
.ent-fval { font-variant-numeric: tabular-nums; font-weight: 700; color: #1e2629; white-space: nowrap; }
.ent-fdot.gr, .ent-ffill.gr { background: #2f7d4f; } .ent-fdot.am, .ent-ffill.am { background: #b58a1a; }
.ent-fdot.br, .ent-ffill.br { background: var(--brick,#c89020); } .ent-fdot.te, .ent-ffill.te { background: var(--tenku,#2f89ac); }
.ent-alert { margin-top: 12px; background: rgba(200,144,32,.1); color: var(--brick,#c89020); border-radius: 10px; padding: 9px 13px; font-size: 12.5px; font-weight: 600; }

.ent-funnel { display: flex; flex-direction: column; gap: 2px; }
.ent-fun-row { display: grid; grid-template-columns: 130px 1fr 32px; align-items: center; gap: 12px; width: 100%; text-align: left; background: transparent; border: 0; padding: 8px 0; cursor: pointer; font: inherit; }
.ent-fun-row:hover { background: rgba(0,0,0,.02); }
.ent-fun-label { font-size: 12.5px; color: #4a5a62; }
.ent-fun-track { height: 14px; border-radius: 5px; background: #f0ece3; overflow: hidden; }
.ent-fun-fill { display: block; height: 100%; border-radius: 5px; animation: pdBar .7s var(--ease) both; transform-origin: left; }
.ent-fun-fill.br { background: var(--brick,#c89020); } .ent-fun-fill.gr { background: #2f7d4f; } .ent-fun-fill.bl { background: var(--blue-tenku,#4fc3e8); } .ent-fun-fill.am { background: #b58a1a; } .ent-fun-fill.te { background: var(--tenku,#2f89ac); } .ent-fun-fill.gy { background: #9aa7ac; }
.ent-fun-n { font-variant-numeric: tabular-nums; font-weight: 800; color: #1e2629; text-align: right; }

.ent-vol { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; margin-bottom: 16px; }
.ent-volc { background: #fff; border: 1px solid rgba(0,0,0,.06); border-radius: 14px; padding: 16px; }
.ent-volc b { display: block; font-family: var(--font-display); font-weight: 900; font-size: 22px; color: #1e2629; line-height: 1; }
.ent-volc span { display: block; font-size: 12px; color: #1e2629; margin-top: 7px; }
.ent-volc em { display: block; font-style: normal; font-size: 11px; color: #8a97a0; margin-top: 2px; }
@media (max-width: 900px) { .ent-vol { grid-template-columns: repeat(2, 1fr); } }

.ent-cli { display: grid; grid-template-columns: minmax(120px, 1.2fr) 2fr auto; align-items: center; gap: 14px; padding: 9px 0; border-top: 1px solid rgba(0,0,0,.05); }
.ent-cli:first-of-type { border-top: 0; }
.ent-cli-n { font-size: 13.5px; font-weight: 600; color: #1e2629; }
.ent-cli-n em { display: block; font-style: normal; font-size: 11px; color: #8a97a0; font-weight: 400; margin-top: 1px; }
.ent-cli-track { height: 10px; border-radius: 99rem; background: #f0ece3; overflow: hidden; }
.ent-cli-fill { display: block; height: 100%; border-radius: 99rem; background: linear-gradient(90deg, var(--tenku,#2f89ac), var(--brick,#c89020)); animation: pdBar .8s var(--ease) both; transform-origin: left; }
.ent-cli-ca { font-variant-numeric: tabular-nums; font-weight: 700; color: #1e2629; white-space: nowrap; }
@media (max-width: 720px) { .ent-fact-row { grid-template-columns: 12px 1fr auto; } .ent-fact-row .ent-ftrack { display: none; } .ent-fun-row { grid-template-columns: 110px 1fr 28px; } .ent-cli { grid-template-columns: 1fr auto; } .ent-cli .ent-cli-track { display: none; } }

/* ===== Référentiel labos — CRUD ===== */
.pd-modal3 { display: grid; grid-template-columns: 1fr 78px 96px; gap: 10px; }
.lab-panel-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 12px; flex-wrap: wrap; }
.lab-acts { display: flex; gap: 8px; }
.lab-acts .pd-btn.sm { margin-top: 0; }
.lab-trow.hidden { display: none; }
.pd-btn.danger { background: var(--brick,#c89020); color: #fff; }
.pd-btn.danger:hover { background: #a13a2a; }
.pd-btn.danger.ghost { background: transparent; color: var(--brick,#c89020); border: 1px solid rgba(200,144,32,.4); }
.pd-btn.danger.ghost:hover { background: rgba(200,144,32,.08); }
@media (max-width: 720px) { .pd-modal3 { grid-template-columns: 1fr 1fr; } }

/* ===== Clients — fiche ===== */
.cli-facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.cli-fact { background: #faf8f3; border-radius: 10px; padding: 10px 12px; }
.cli-fact span { display: block; font-size: 11px; color: #8a97a0; text-transform: uppercase; letter-spacing: .04em; }
.cli-fact b { font-size: 14px; color: #1e2629; }
@media (max-width: 720px) { .cli-facts { grid-template-columns: 1fr 1fr; } }

/* ===== Tests & prix (mise en concurrence) ===== */
.tst-banner { display: flex; gap: 14px; align-items: flex-start; background: linear-gradient(180deg, rgba(47,137,172,.09), rgba(47,137,172,.02)); border: 1px solid rgba(47,137,172,.3); border-radius: 14px; padding: 14px 18px; margin: 4px 0 18px; }
.tst-b-ic { font-size: 22px; line-height: 1.1; }
.tst-banner b { color: #1e2629; }
.tst-banner > div > span { display: block; font-size: 12.5px; color: #4a5a62; line-height: 1.5; margin-top: 3px; }
.tst-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 14px; }
.tst-card { background: #fff; border: 1px solid rgba(0,0,0,.06); border-radius: 14px; padding: 16px 18px; }
.tst-chead { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 12px; }
.tst-chead b { font-size: 14.5px; color: #1e2629; }
.tst-fam { font-variant-numeric: tabular-nums; font-size: 10.5px; font-weight: 600; color: var(--tenku,#2f89ac); background: rgba(47,137,172,.1); border-radius: 6px; padding: 2px 7px; margin-left: 6px; }
.tst-nb { font-size: 11px; color: #8a97a0; margin-left: 6px; }
.tst-chead .pd-btn.sm { margin-top: 0; flex-shrink: 0; }
.tst-offers { display: flex; flex-direction: column; gap: 6px; }
.tst-off { display: grid; grid-template-columns: 1fr auto auto auto; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 9px; background: #faf8f3; }
.tst-off.win { background: rgba(47,125,79,.1); box-shadow: inset 0 0 0 1px rgba(47,125,79,.3); }
.tst-lab { font-size: 13px; color: #1e2629; font-weight: 600; }
.tst-off.win .tst-lab { color: #2f7d4f; }
.tst-lab em { font-style: normal; font-weight: 700; font-size: 10px; text-transform: uppercase; letter-spacing: .04em; color: #2f7d4f; background: rgba(47,125,79,.15); border-radius: 99rem; padding: 1px 7px; margin-left: 4px; }
.tst-delta { font-size: 11.5px; color: #b06a3a; font-variant-numeric: tabular-nums; }
.tst-price { font-variant-numeric: tabular-nums; font-weight: 800; color: #1e2629; }
.tst-off.win .tst-price { color: #2f7d4f; }
.tst-x { background: transparent; border: 0; color: #b6c2c7; font-size: 13px; cursor: pointer; padding: 2px 4px; border-radius: 6px; }
.tst-x:hover { color: var(--brick,#c89020); background: rgba(200,144,32,.08); }
.tst-none { font-size: 12.5px; color: #8a97a0; padding: 8px 4px; }
.tst-save { margin-top: 10px; font-size: 12px; color: #2f7d4f; background: rgba(47,125,79,.08); border-radius: 8px; padding: 7px 11px; }
.tst-save b { color: #2f7d4f; }
.tst-mrow { align-items: center; margin-bottom: 8px; }
.tst-mrow label { color: #1e2629; font-size: 13px; }

/* ===== Équipe — gestion des membres ===== */
.tm-svcgroup { margin-bottom: 20px; }
.tm-svchead { font-size: 11.5px; text-transform: uppercase; letter-spacing: .06em; color: #8a8175; font-weight: 700; margin: 0 0 10px; display: flex; align-items: center; gap: 8px; }
.tm-svchead span { background: rgba(0,0,0,.06); border-radius: 99rem; padding: 1px 8px; font-size: 11px; color: #6a7a82; }
.tm-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(272px, 1fr)); gap: 12px; }
.tm-card { display: flex; align-items: center; gap: 12px; background: #fff; border: 1px solid rgba(0,0,0,.06); border-radius: 14px; padding: 12px 14px; transition: box-shadow .15s, transform .12s; }
.tm-card:hover { box-shadow: 0 8px 22px -14px rgba(0,0,0,.3); transform: translateY(-1px); }
.tm-avatar { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; color: #fff; font-weight: 700; font-size: 14px; flex-shrink: 0; overflow: hidden; background: #1e2629; }
.tm-avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tm-avatar.br { background: var(--brick,#c89020); } .tm-avatar.bl { background: var(--tenku,#2f89ac); } .tm-avatar.am { background: #b58a1a; } .tm-avatar.gr { background: #2f7d4f; } .tm-avatar.te { background: #3f8a9c; }
.tm-avatar.xl { width: 74px; height: 74px; font-size: 24px; }
.tm-info { flex: 1; min-width: 0; }
.tm-info b { display: block; font-size: 14px; color: #1e2629; }
.tm-titre { display: block; font-size: 12px; color: #6a7a82; }
.tm-svc { display: block; font-size: 11px; color: #8a97a0; margin-top: 1px; }
.tm-acts { display: flex; gap: 3px; flex-shrink: 0; }
.tm-a { background: transparent; border: 0; cursor: pointer; font-size: 13px; color: #9aa7ac; padding: 5px 7px; border-radius: 8px; }
.tm-a:hover { background: #f3f0e9; color: #1e2629; }
.tm-a.del:hover { color: var(--brick,#c89020); background: rgba(200,144,32,.08); }
.tm-photo-edit { display: flex; align-items: center; gap: 16px; margin: 4px 0 14px; }
.tm-photo-btns { display: flex; flex-direction: column; gap: 7px; align-items: flex-start; }
.tm-photo-btns .pd-btn.sm { margin-top: 0; }
.tm-photo-hint { font-size: 11px; color: #8a97a0; }

/* Équipe — multi-pôles */
.tm-multi { display: block; font-size: 10.5px; color: var(--tenku,#2f89ac); font-weight: 600; margin-top: 3px; }
.tm-checks { display: flex; flex-direction: column; gap: 9px; margin: 2px 0 4px; }
.tm-check { display: flex; align-items: center; gap: 9px; font-size: 13.5px; color: #1e2629; cursor: pointer; }
.tm-check input { width: 16px; height: 16px; flex-shrink: 0; accent-color: var(--brick,#c89020); }

/* ══════════════════════════════════════════════════════════════
   sml- · Simulation v2 — le poste de vente
   Cadran, courbes qui se dessinent, facture re-tarifée, mode pitch.
   Animations CSS uniquement (compositor-friendly).
   ══════════════════════════════════════════════════════════════ */
.sml-wrap { display: flex; flex-direction: column; gap: 14px; }

/* ── bandeau de saisie compact ── */
.sml-form { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; background: #fff; border: 1px solid rgba(0,0,0,.06); border-radius: 14px; padding: 14px 16px; }
.sml-form .f { display: flex; flex-direction: column; gap: 5px; flex: 1; min-width: 120px; }
.sml-form .f.sm { flex: 0 0 92px; }
.sml-form label { font-size: 10.5px; text-transform: uppercase; letter-spacing: .08em; color: #8a97a0; font-weight: 600; }
.sml-form input, .sml-form select { border: 1px solid rgba(0,0,0,.14); border-radius: 9px; padding: 8px 10px; font-size: 13.5px; font-family: inherit; color: #1e2629; background: #fff; width: 100%; }
.sml-enedis { display: inline-flex; align-items: center; gap: 6px; border: 1px solid rgba(47,137,172,.4); color: #2f89ac; background: rgba(47,137,172,.06); border-radius: 9px; padding: 8px 12px; font-size: 12.5px; font-weight: 600; cursor: pointer; white-space: nowrap; }
.sml-enedis:hover { background: rgba(47,137,172,.12); }
.sml-enedis.busy { color: #8a97a0; border-color: rgba(0,0,0,.15); background: #f4f1e9; cursor: wait; }
.sml-calc { background: var(--brick,#c89020); color: #fff; border: 0; border-radius: 10px; padding: 11px 22px; font-size: 14px; font-weight: 700; cursor: pointer; font-family: inherit; }
.sml-calc:hover { filter: brightness(1.06); }

/* ── HERO : l'impact facture ── */
.sml-hero { position: relative; overflow: hidden; display: grid; grid-template-columns: 210px 1fr auto; gap: 22px; align-items: center; background: linear-gradient(135deg,#10181d 0%,#182731 100%); border-radius: 16px; padding: 20px 26px; color: #f3f0e9; }
.sml-hero .bolt { position: absolute; right: 190px; top: -12px; height: 130%; opacity: .9; pointer-events: none; }
.sml-hero .bolt path { stroke: #ffc848; stroke-width: 2.5; fill: none; filter: drop-shadow(0 0 6px rgba(255,200,72,.8)); stroke-dasharray: 340; animation: smlBolt 5s ease-out infinite; }
@keyframes smlBolt { 0% { stroke-dashoffset: 340; opacity: 0; } 6% { opacity: 1; } 14% { stroke-dashoffset: 0; opacity: .95; } 22% { opacity: .25; } 26% { opacity: .9; } 34% { opacity: 0; } 100% { stroke-dashoffset: 0; opacity: 0; } }
.sml-hero .hv { font-family: var(--font-display); font-weight: 900; font-size: clamp(40px,5vw,56px); line-height: 1; color: #ffc848; text-shadow: 0 0 24px rgba(255,200,72,.35); }
.sml-hero .hk { font-size: 12px; text-transform: uppercase; letter-spacing: .14em; color: #9fb4bc; margin-bottom: 8px; }
.sml-hero .hsub { font-size: 13.5px; color: #bdc8cc; margin-top: 8px; }
.sml-hero .hsub b { color: #8fe3ff; font-weight: 600; }
.sml-badge-pct { display: inline-block; background: rgba(79,195,232,.14); border: 1px solid rgba(79,195,232,.4); color: #8fe3ff; border-radius: 99px; padding: 5px 13px; font-size: 14px; font-weight: 700; margin-top: 10px; animation: smlPop .5s cubic-bezier(.2,1.6,.4,1) both; animation-delay: .9s; }
@keyframes smlPop { from { transform: scale(.4); opacity: 0; } to { transform: scale(1); opacity: 1; } }

/* cadran (jauge) */
.sml-dial { width: 210px; }
.sml-dial .needle { transform-origin: 105px 100px; transition: transform 1.4s cubic-bezier(.2,1.5,.35,1); }
.sml-dial .arcfill { stroke-dasharray: 264; transition: stroke-dashoffset 1.4s cubic-bezier(.4,0,.2,1); filter: drop-shadow(0 0 5px rgba(255,200,72,.55)); }
.sml-dial text { font-family: var(--font-body); }

/* ── grille cartes résultat ── */
.sml-grid { display: grid; grid-template-columns: 1fr 1.25fr; gap: 14px; align-items: stretch; }
.sml-card { background: #fff; border: 1px solid rgba(0,0,0,.06); border-radius: 14px; padding: 18px; }
.sml-card h4 { margin: 0 0 3px; font-size: 13px; text-transform: uppercase; letter-spacing: .1em; color: #1e2629; }
.sml-card .cs { font-size: 12px; color: #8a97a0; margin-bottom: 12px; }

/* barres avant/après */
.sml-bars { display: flex; gap: 26px; align-items: flex-end; justify-content: center; padding: 8px 4px 0; }
.sml-bar { display: flex; flex-direction: column; align-items: center; gap: 7px; width: 96px; }
.sml-bar .track { position: relative; width: 100%; height: 150px; display: flex; align-items: flex-end; background: #f4f1e9; border-radius: 10px; overflow: hidden; }
.sml-bar .fill { width: 100%; border-radius: 10px 10px 0 0; transform-origin: bottom; animation: smlGrow 1s cubic-bezier(.2,1.2,.4,1) both; transition: height .5s cubic-bezier(.4,0,.2,1); }
.sml-bar.now .fill { background: linear-gradient(180deg,#c26a6a,#b05f60); animation-delay: .15s; }
.sml-bar.new .fill { background: linear-gradient(180deg,#4fc3e8,#2f89ac); animation-delay: .4s; }
@keyframes smlGrow { from { transform: scaleY(0); } to { transform: scaleY(1); } }
.sml-bar .bv { font-family: var(--font-display); font-weight: 900; font-size: 19px; color: #1e2629; }
.sml-bar .bk { font-size: 11px; color: #8a97a0; text-transform: uppercase; letter-spacing: .06em; }
.sml-save-chip { align-self: center; background: rgba(47,122,69,.1); border: 1px solid rgba(47,122,69,.35); color: #2f7a45; border-radius: 99px; padding: 6px 14px; font-size: 13px; font-weight: 700; animation: smlPop .5s cubic-bezier(.2,1.6,.4,1) both; animation-delay: 1.1s; }

/* ticket facture */
.sml-ticket { margin-top: 14px; border: 1px dashed rgba(0,0,0,.18); border-radius: 12px; padding: 13px 15px; background: #fcfaf5; font-size: 13px; }
.sml-ticket .tl { display: flex; justify-content: space-between; padding: 4px 0; color: #4a5560; opacity: 0; animation: smlLine .45s ease-out forwards; }
.sml-ticket .tl:nth-child(2) { animation-delay: .25s; } .sml-ticket .tl:nth-child(3) { animation-delay: .4s; }
.sml-ticket .tl:nth-child(4) { animation-delay: .55s; } .sml-ticket .tl:nth-child(5) { animation-delay: .7s; }
@keyframes smlLine { from { opacity: 0; transform: translateX(-8px); } to { opacity: 1; transform: none; } }
.sml-ticket .tl.strike b { text-decoration: line-through; color: #b05f60; }
.sml-ticket .tl.total { border-top: 1px solid rgba(0,0,0,.12); margin-top: 4px; padding-top: 8px; color: #1e2629; font-weight: 600; }
.sml-ticket .tl.total b { color: #2f7a45; font-size: 15px; }

/* projection : toggle + chart */
.sml-toggle { display: inline-flex; background: #f0ece1; border-radius: 9px; padding: 3px; gap: 2px; }
.sml-toggle button { border: 0; background: transparent; border-radius: 7px; padding: 6px 13px; font-size: 12px; font-weight: 600; color: #6b7780; cursor: pointer; font-family: inherit; }
.sml-toggle button.active { background: #fff; color: #1e2629; box-shadow: 0 1px 4px rgba(0,0,0,.1); }
.sml-chart svg { width: 100%; height: auto; display: block; }
.sml-draw { stroke-dasharray: 1400; stroke-dashoffset: 1400; animation: smlDraw 1.6s ease-out forwards; }
.sml-draw.d2 { animation-delay: .35s; }
@keyframes smlDraw { to { stroke-dashoffset: 0; } }
.sml-fade { opacity: 0; animation: smlFade .8s ease-out forwards; animation-delay: 1.3s; }
@keyframes smlFade { to { opacity: 1; } }
.sml-reveal { clip-path: inset(0 100% 0 0); animation: smlReveal 1.4s cubic-bezier(.4,0,.2,1) forwards; }
.sml-reveal.d2 { animation-delay: .3s; }
@keyframes smlReveal { to { clip-path: inset(0 0 0 0); } }
.sml-legend { display: flex; gap: 16px; font-size: 11.5px; color: #6b7780; margin-top: 8px; flex-wrap: wrap; }
.sml-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 5px; vertical-align: -1px; }

/* slider live */
.sml-live { display: flex; align-items: center; gap: 14px; background: #fff; border: 1px solid rgba(0,0,0,.06); border-radius: 14px; padding: 12px 18px; flex-wrap: wrap; }
.sml-live label { font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: #8a97a0; font-weight: 600; white-space: nowrap; }
.sml-live input[type=range] { flex: 1; min-width: 160px; accent-color: var(--brick,#c89020); }
.sml-live .lv { font-family: var(--font-display); font-weight: 900; font-size: 16px; color: #1e2629; min-width: 96px; text-align: right; }
.sml-live select { border: 1px solid rgba(0,0,0,.14); border-radius: 9px; padding: 7px 10px; font-size: 12.5px; font-family: inherit; }

/* bandeau hypothèses + CTA */
.sml-foot { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.sml-hyp { flex: 1; min-width: 260px; font-size: 11.5px; color: #8a97a0; line-height: 1.55; }
.sml-cta-pitch { background: #10181d; color: #ffc848; border: 1px solid rgba(255,200,72,.5); border-radius: 10px; padding: 12px 20px; font-size: 13.5px; font-weight: 700; cursor: pointer; font-family: inherit; white-space: nowrap; }
.sml-cta-pitch:hover { background: #182731; }
.sml-cta-go { background: var(--brick,#c89020); color: #fff; border: 0; border-radius: 10px; padding: 12px 20px; font-size: 13.5px; font-weight: 700; cursor: pointer; font-family: inherit; white-space: nowrap; }

/* ── MODE PITCH · plein écran client ── */
.sml-pitch { position: fixed; inset: 0; z-index: 380; background: radial-gradient(120% 90% at 50% 10%, #0c1620 0%, #06080b 60%); color: #f3f0e9; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 40px 20px; overflow: hidden; }
.sml-pitch::before { content: ""; position: absolute; inset: 0; background-image: radial-gradient(circle, rgba(79,195,232,.12) 1px, transparent 1px); background-size: 42px 42px; opacity: .5; pointer-events: none; }
.sml-pitch .pv { opacity: 0; animation: smlPv .8s cubic-bezier(.2,1,.4,1) forwards; }
.sml-pitch .pv1 { animation-delay: .2s; } .sml-pitch .pv2 { animation-delay: 1.3s; }
.sml-pitch .pv3 { animation-delay: 2.4s; } .sml-pitch .pv4 { animation-delay: 3.3s; }
.sml-pitch .pv5 { animation-delay: 3.9s; }
@keyframes smlPv { from { opacity: 0; transform: translateY(26px) scale(.96); } to { opacity: 1; transform: none; } }
.sml-pitch .pk { font-size: clamp(13px,1.6vw,17px); text-transform: uppercase; letter-spacing: .22em; color: #9fb4bc; margin: 18px 0 6px; }
.sml-pitch .pnow { font-family: var(--font-display); font-weight: 900; font-size: clamp(34px,5vw,58px); color: #c26a6a; text-decoration: line-through; text-decoration-thickness: 4px; text-decoration-color: rgba(255,200,72,.85); }
.sml-pitch .pnew { font-family: var(--font-display); font-weight: 900; font-size: clamp(38px,5.6vw,64px); color: #8fe3ff; text-shadow: 0 0 30px rgba(79,195,232,.4); }
.sml-pitch .pgain { position: relative; font-family: var(--font-display); font-weight: 900; font-size: clamp(64px,11vw,150px); line-height: 1; color: #ffc848; text-shadow: 0 0 50px rgba(255,200,72,.5); animation: smlPv .8s cubic-bezier(.2,1,.4,1) forwards, smlGlow 2.6s ease-in-out 3.2s infinite; }
@keyframes smlGlow { 0%,100% { text-shadow: 0 0 40px rgba(255,200,72,.4); } 50% { text-shadow: 0 0 90px rgba(255,200,72,.85); } }
.sml-pitch .pgain .zap { position: absolute; top: -18%; height: 130%; opacity: .95; }
.sml-pitch .pgain .zap.l { left: -70px; } .sml-pitch .pgain .zap.r { right: -70px; transform: scaleX(-1); }
.sml-pitch .pgain .zap path { stroke: #ffc848; stroke-width: 3; fill: none; filter: drop-shadow(0 0 8px rgba(255,200,72,.9)); stroke-dasharray: 300; animation: smlBolt 3.4s ease-out 2.6s infinite; }
.sml-pitch .psub { font-size: clamp(15px,2vw,21px); color: #bdc8cc; margin-top: 14px; }
.sml-pitch .psub b { color: #f3f0e9; }
.sml-pitch .pbtns { display: flex; gap: 14px; margin-top: 38px; flex-wrap: wrap; justify-content: center; }
.sml-pitch .sign { background: #ffc848; color: #10181d; border: 0; border-radius: 12px; padding: 16px 34px; font-size: 17px; font-weight: 800; cursor: pointer; font-family: inherit; box-shadow: 0 0 34px rgba(255,200,72,.35); }
.sml-pitch .sign:hover { transform: translateY(-2px); box-shadow: 0 0 50px rgba(255,200,72,.55); }
.sml-pitch .back { background: transparent; color: #9fb4bc; border: 1px solid rgba(159,180,188,.35); border-radius: 12px; padding: 16px 26px; font-size: 15px; font-weight: 600; cursor: pointer; font-family: inherit; }
.sml-pitch .pfoot { position: absolute; bottom: 18px; left: 0; right: 0; font-size: 11px; color: #5c6b74; letter-spacing: .06em; }

@media (max-width: 1040px) { .sml-grid { grid-template-columns: 1fr; } .sml-hero { grid-template-columns: 1fr; text-align: center; } .sml-dial { margin: 0 auto; } .sml-hero .bolt { display: none; } }

/* ── animations transverses : entrée d'écran en cascade ── */
.pd-screen-in .pd-card, .pd-screen-in .pd-kpi, .pd-screen-in .pd-mini,
.pd-screen-in .sml-hero, .pd-screen-in .sml-form, .pd-screen-in .sml-live {
  animation: pdCardIn .55s cubic-bezier(.2,1,.4,1) both;
}
.pd-screen-in .pd-kpi:nth-child(2), .pd-screen-in .pd-mini:nth-child(2) { animation-delay: .07s; }
.pd-screen-in .pd-kpi:nth-child(3), .pd-screen-in .pd-mini:nth-child(3) { animation-delay: .14s; }
.pd-screen-in .pd-kpi:nth-child(4) { animation-delay: .21s; }
.pd-screen-in .pd-cols2 > div:nth-child(2) .pd-card, .pd-screen-in .sml-grid > .sml-card:nth-child(2) { animation-delay: .12s; }
@keyframes pdCardIn { from { opacity: 0; transform: translateY(14px) scale(.985); } to { opacity: 1; transform: none; } }
.pd-gauge-f { animation: pdGaugeGrow 1s cubic-bezier(.2,1,.4,1) both; transform-origin: left; }
@keyframes pdGaugeGrow { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@media (prefers-reduced-motion: reduce) { .pd-screen-in .pd-card, .pd-screen-in .pd-kpi, .pd-screen-in .pd-mini, .pd-gauge-f { animation: none !important; } }
