/* Affectation économique (EA) — styles additifs (coûts fournisseurs + net Débours). */
.ea-row-btn { margin-left: 4px; }

/* Overlay panneau */
.ea-ov { position: fixed; inset: 0; background: rgba(0,0,0,.42); display: flex; align-items: flex-start; justify-content: center; z-index: 9999; padding: 4vh 12px; overflow: auto; }
.ea-ov-box { background: var(--bg, #fff); color: var(--fg, #111); width: min(720px, 96vw); border: 1px solid var(--border, #ccc); border-radius: 10px; box-shadow: 0 12px 40px rgba(0,0,0,.25); }
.ea-ov-head { display: flex; align-items: center; justify-content: space-between; padding: 12px 16px; border-bottom: 1px solid var(--border, #e3e3e3); }
.ea-ov-close { border: none; background: transparent; font-size: 1.05rem; cursor: pointer; }
.ea-ov-body { padding: 14px 16px; }

.ea-loading, .ea-muted { color: var(--muted, #777); }
.ea-err { color: var(--red-dark, #b00020); }

.ea-sec { border: 1px solid var(--border, #e3e3e3); border-radius: 8px; padding: 10px 12px; margin-bottom: 12px; }
.ea-sec-ttl { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; font-weight: 600; }

/* Badges d'état (couverture / verdict) */
.ea-badge, .ea-nr-badge { font-size: .74rem; padding: 2px 8px; border-radius: 999px; border: 1px solid var(--border, #ccc); }
.ea-full, .ea-nr-resolved_manual, .ea-nr-auto { background: #e6f4ea; color: #137333; border-color: #a8dab5; }
.ea-partial, .ea-nr-manual { background: #fef7e0; color: #a56300; border-color: #fde293; }
.ea-none, .ea-nr-a_verifier { background: #fce8e6; color: #b00020; border-color: #f5b5ad; }

/* Écran net Débours */
.ea-nr-head { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.ea-nr-src { color: var(--muted, #777); font-size: .8rem; }
.ea-nr-source, .ea-nr-line, .ea-nr-avoir { display: flex; align-items: center; gap: 8px; margin: 6px 0; flex-wrap: wrap; }
.ea-nr-lid { min-width: 180px; }
.ea-nr-net, .ea-nr-proof, .ea-nr-target { padding: 4px 6px; border: 1px solid var(--border, #ccc); border-radius: 6px; }
.ea-nr-ledger { color: var(--muted, #555); font-size: .82rem; }
.ea-nr-ledger.ea-nr-err { color: var(--red-dark, #b00020); }
.ea-nr-sum { margin: 10px 0; padding: 8px 10px; background: var(--bg-alt, #f6f6f6); border-radius: 6px; font-size: .86rem; }
.ea-nr-errors { color: var(--red-dark, #b00020); margin: 6px 0; padding-left: 18px; }
.ea-nr-actions { display: flex; gap: 8px; margin-top: 10px; }
.ea-nr-banner { padding: 8px 10px; border-radius: 6px; margin: 8px 0; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.ea-nr-ok { background: #e6f4ea; color: #137333; }
.ea-nr-warn { background: #fef7e0; color: #a56300; }
.ea-nr-err { background: #fce8e6; color: #b00020; }
.ea-nr-ro { color: var(--muted, #777); font-style: italic; }

/* ═══ Provider Costs — ventilation à DEUX montants Services / Débours (V7.7.3) ═══ */
.ea-pc-panel { font-size: .92rem; }
.ea-pc-loading { color: var(--muted, #777); padding: 6px 0; }

/* En-tête : réf shipment · total · statut — éléments espacés (jamais collés) */
.ea-pc-head { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; padding-bottom: 10px; margin-bottom: 12px; border-bottom: 1px solid var(--border, #e3e3e3); }
.ea-pc-ref { font-weight: 600; font-size: 1rem; }
.ea-pc-amt { margin-left: auto; font-variant-numeric: tabular-nums; font-weight: 600; }
.ea-pc-badge { font-size: .74rem; padding: 2px 10px; border-radius: 999px; border: 1px solid var(--border, #ccc); white-space: nowrap; }
.ea-pc-full { background: #e6f4ea; color: #137333; border-color: #a8dab5; }
.ea-pc-partial { background: #fef7e0; color: #a56300; border-color: #fde293; }
.ea-pc-none { background: #fce8e6; color: #b00020; border-color: #f5b5ad; }
.ea-pc-stale { font-size: .76rem; color: #a56300; }

/* Les deux cases alignées horizontalement (desktop) → empilées sur petit écran */
.ea-pc-split { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 4px 0 14px; }
.ea-pc-box { display: flex; flex-direction: column; gap: 6px; background: var(--bg-alt, #f6f8fa); border: 1px solid var(--border, #e3e3e3); border-radius: 8px; padding: 12px 14px; position: relative; }
.ea-pc-box-lbl { font-size: .8rem; color: var(--muted, #555); font-weight: 600; letter-spacing: .02em; }
.ea-pc-box-in { font-size: 1.15rem; font-variant-numeric: tabular-nums; padding: 8px 42px 8px 10px; border: 1px solid var(--border, #ccc); border-radius: 6px; width: 100%; box-sizing: border-box; text-align: right; }
.ea-pc-box-in:disabled { background: #eee; color: #666; }
.ea-pc-box-cur { position: absolute; right: 22px; bottom: 20px; font-size: .78rem; color: var(--muted, #888); pointer-events: none; }
@media (max-width: 560px) { .ea-pc-split { grid-template-columns: 1fr; } }

/* Total affecté + écart */
.ea-pc-totals { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; font-size: .88rem; padding: 8px 10px; background: var(--bg-alt, #f6f6f6); border-radius: 6px; }
.ea-pc-tot { font-weight: 600; font-variant-numeric: tabular-nums; }
.ea-pc-ecart { font-variant-numeric: tabular-nums; }
.ea-pc-ecart.ok { color: #137333; }
.ea-pc-ecart.ko { color: #b00020; font-weight: 600; }

.ea-pc-warn { color: var(--red-dark, #b00020); margin: 8px 0; font-size: .85rem; }
.ea-pc-ro { color: var(--muted, #777); font-style: italic; margin-top: 10px; }
.ea-pc-muted { color: var(--muted, #777); font-size: .84rem; margin: 4px 0; }

/* V7.8.4 — bloc récapitulatif (haut de section) */
.ea-pc-recap { background: var(--bg-alt, #f3f6fb); border: 1px solid var(--border, #dfe6f0); border-left: 4px solid var(--accent, #2f6fb0); border-radius: 8px; padding: 10px 12px; margin: 0 0 12px; }
.ea-pc-recap-multi { font-size: .8rem; font-weight: 600; color: var(--accent-dark, #1c4e82); margin-bottom: 8px; }
.ea-pc-recap-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 18px; }
.ea-pc-kv { display: flex; flex-direction: column; gap: 1px; font-size: .84rem; min-width: 0; }
.ea-pc-k { font-size: .72rem; color: var(--muted, #667); text-transform: uppercase; letter-spacing: .03em; }
.ea-pc-vv { font-weight: 600; color: var(--text, #223); word-break: break-word; }
@media (max-width: 560px) { .ea-pc-recap-grid { grid-template-columns: 1fr; } }

/* V7.8.4 — récap Débours (lecture seule) dans la grille Services/Débours */
.ea-pc-box-ro { background: #eef3ee; }
.ea-pc-box-sum { font-size: 1.15rem; font-variant-numeric: tabular-nums; font-weight: 600; padding: 8px 10px; }

/* V7.8.4 — ventilation des débours par code catalogue */
.ea-pc-deb { border: 1px dashed var(--border, #d7ddd7); border-radius: 8px; padding: 10px 12px; margin: 0 0 12px; background: #fafcfa; }
.ea-pc-deb-h { font-size: .8rem; font-weight: 700; color: var(--muted, #456); letter-spacing: .02em; margin-bottom: 8px; }
.ea-pc-deb-row { display: flex; align-items: center; gap: 8px; margin: 6px 0; flex-wrap: wrap; }
.ea-pc-deb-row .ea-pc-box-cur { position: static; right: auto; bottom: auto; font-size: .78rem; color: var(--muted, #888); }
.ea-pc-deb-code { flex: 1 1 220px; min-width: 160px; padding: 7px 8px; border: 1px solid var(--border, #ccc); border-radius: 6px; font-size: .9rem; background: #fff; }
.ea-pc-deb-code:disabled { background: #eee; color: #666; }
.ea-pc-deb-amt { width: 140px; text-align: right; font-variant-numeric: tabular-nums; padding: 7px 8px; border: 1px solid var(--border, #ccc); border-radius: 6px; font-size: .95rem; }
.ea-pc-deb-amt:disabled { background: #eee; color: #666; }
.ea-pc-deb-rest, .ea-pc-deb-rm { border: 1px solid var(--border, #ccc); background: #fff; border-radius: 6px; padding: 6px 9px; cursor: pointer; font-size: .8rem; }
.ea-pc-deb-rest:hover, .ea-pc-deb-rm:hover { background: #f0f0f0; }
.ea-pc-deb-rm { color: #b00020; font-weight: 700; }
.ea-pc-deb-add { margin-top: 8px; display: flex; gap: 8px; flex-wrap: wrap; }
.ea-pc-deb-addbtn { border: 1px solid var(--accent, #2f6fb0); color: var(--accent, #2f6fb0); background: #fff; border-radius: 6px; padding: 7px 12px; cursor: pointer; font-size: .84rem; font-weight: 600; }
.ea-pc-deb-addbtn:hover { background: #eef4fb; }
.ea-pc-deb-addrest { border-color: #137333; color: #137333; }
.ea-pc-deb-addrest:hover { background: #eef7f0; }

/* Actions */
.ea-pc-actions { display: flex; gap: 8px; margin-top: 14px; flex-wrap: wrap; }
.ea-pc-actions button { padding: 7px 14px; border: 1px solid var(--border, #ccc); border-radius: 6px; background: var(--bg, #fff); cursor: pointer; }
.ea-pc-actions button:disabled { opacity: .5; cursor: not-allowed; }
.ea-pc-confirm { background: #137333 !important; color: #fff; border-color: #137333 !important; }
.ea-pc-revoke { color: #b00020; }

/* Bannières (erreur / conflit) */
.ea-pc-banner { padding: 10px 12px; border-radius: 6px; margin: 8px 0; }
.ea-pc-banner-error { background: #fce8e6; color: #b00020; display: flex; justify-content: space-between; gap: 8px; align-items: center; }
.ea-pc-banner-conflict { background: #fff4e5; border: 1px solid #fde293; color: #7a4b00; }
.ea-pc-cf-msg { font-weight: 600; margin-bottom: 8px; }
.ea-pc-cf-cmp { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 8px 0; }
.ea-pc-cf-col { background: #fff; border: 1px solid var(--border, #e3e3e3); border-radius: 6px; padding: 8px 10px; font-size: .84rem; }
.ea-pc-cf-h { font-weight: 600; margin-bottom: 4px; }
.ea-pc-cf-ack { display: flex; align-items: center; gap: 6px; margin: 8px 0; font-size: .85rem; }
.ea-pc-cf-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.ea-pc-cf-actions button { padding: 6px 12px; border: 1px solid var(--border, #ccc); border-radius: 6px; background: #fff; cursor: pointer; }
.ea-pc-cf-actions button:disabled { opacity: .5; cursor: not-allowed; }

/* ── Aperçu mapping par shipment (V7.7.3) — lecture seule, isolé ── */
.ea-map-launch { margin: 8px 0; padding: 6px 12px; border: 1px solid var(--border, #ccc); border-radius: 8px; background: var(--bg-alt, #f6f6f6); cursor: pointer; font-weight: 600; }
.ea-map-warn { background: #fef7e0; color: #7a5b00; border: 1px solid #fde293; border-radius: 6px; padding: 8px 10px; margin-bottom: 10px; font-size: .84rem; }
.ea-map-loading, .ea-map-src { color: var(--muted, #777); font-size: .82rem; }
.ea-map-err { color: var(--red-dark, #b00020); }
.ea-map-tbl { width: 100%; border-collapse: collapse; margin: 6px 0; }
.ea-map-tbl th, .ea-map-tbl td { padding: 6px 10px; border-bottom: 1px solid var(--border, #e3e3e3); font-size: .9rem; }
.ea-map-l { text-align: left; }
.ea-map-r { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.ea-map-muted { color: var(--muted, #999); font-style: italic; }
.ea-map-aq { color: #a56300; font-weight: 600; }
.ea-map-tot { font-weight: 600; }
.ea-map-tbl tfoot .ea-map-sum td { border-top: 2px solid var(--border, #bbb); font-weight: 700; background: var(--bg-alt, #f6f6f6); }
.ea-map-cons { margin-top: 8px; font-size: .84rem; padding: 6px 10px; border-radius: 6px; }
.ea-map-cons.ok { background: #e6f4ea; color: #137333; }
.ea-map-cons.bad { background: #fce8e6; color: #b00020; }
@media (max-width: 640px){ .ea-map-tbl th, .ea-map-tbl td { padding: 4px 6px; font-size: .82rem; } }

/* ── V7.8 — Rapprochement Débours client (ea-rebill-ui.js) ───────────────────────────── */
.ea-rb-panel{margin-top:10px;padding:10px 12px;border:1px solid #d9d3c6;border-radius:9px;background:#fbfaf7}
.ea-rb-title{font-size:.82rem;font-weight:700;color:#2d4a63;margin-bottom:6px}
.ea-rb-loading,.ea-rb-empty{font-size:.8rem;color:#6b7785;padding:4px 0}
.ea-rb-ro{font-size:.78rem;color:#8a5a00;font-style:italic;padding:4px 0}
.ea-rb-status{display:flex;flex-wrap:wrap;gap:8px 16px;margin:4px 0 8px;padding:6px 8px;background:#fff;border:1px solid #e7e1d4;border-radius:7px}
.ea-rb-kv{display:flex;flex-direction:column;min-width:96px}
.ea-rb-kv .ea-rb-k{font-size:.62rem;text-transform:uppercase;letter-spacing:.03em;color:#8a93a0}
.ea-rb-kv .ea-rb-v{font-size:.84rem;font-weight:700;font-variant-numeric:tabular-nums;color:#1f2c37}
.ea-rb-kv.ok .ea-rb-v{color:#167a4a}
.ea-rb-kv.warn .ea-rb-v{color:#b9770b}
.ea-rb-table{width:100%;border-collapse:collapse;margin:4px 0 8px;font-size:.78rem}
.ea-rb-table th{text-align:left;background:#f2efe8;padding:4px 7px;font-size:.66rem;text-transform:uppercase;letter-spacing:.02em;color:#6b7785;border-bottom:1px solid #d9d3c6}
.ea-rb-table td{padding:4px 7px;border-bottom:1px solid #eee}
.ea-rb-table td.ea-rb-num{text-align:right;font-variant-numeric:tabular-nums}
.ea-rb-table tr.ea-rb-stale td{background:#fff6e6;color:#8a5a00}
.ea-rb-revoke{font-size:.72rem;padding:2px 8px;border:1px solid #d99;border-radius:6px;background:#fff;color:#b23b3b;cursor:pointer}
.ea-rb-form{margin-top:6px;padding:8px 10px;border:1px dashed #cfc9ba;border-radius:8px;background:#fff}
.ea-rb-form-h{font-size:.76rem;font-weight:700;color:#33414f;margin-bottom:6px}
.ea-rb-fld{display:flex;flex-direction:column;gap:3px;margin-bottom:7px}
.ea-rb-lbl{font-size:.68rem;font-weight:600;color:#6b7785}
.ea-rb-in{font-size:.84rem;padding:5px 8px;border:1px solid #d9d3c6;border-radius:7px;background:#fff;max-width:420px}
.ea-rb-hint{font-size:.72rem;color:#2d4a63;background:#eef4fb;border:1px solid #cfe0ec;border-radius:6px;padding:4px 8px;margin:2px 0 7px;max-width:420px}
.ea-rb-actions{display:flex;gap:8px;margin-top:6px}
.ea-rb-actions button{font-size:.8rem;font-weight:600;padding:6px 14px;border-radius:7px;border:1px solid #d9d3c6;background:#fff;cursor:pointer}
.ea-rb-actions .ea-rb-confirm{background:#167a4a;border-color:#167a4a;color:#fff}
.ea-rb-banner{display:flex;align-items:center;gap:10px;justify-content:space-between;padding:6px 10px;border-radius:7px;margin:4px 0;font-size:.8rem}
.ea-rb-banner-error{background:#fdeeee;border:1px solid #eecccc;color:#b23b3b}
.ea-rb-banner-ok{background:#eef7f1;border:1px solid #bfe0cd;color:#167a4a}
.ea-rb-banner-warn{background:#fff6e6;border:1px solid #e6cf99;color:#8a5a00}
.ea-rb-table tr.ea-rb-redundant td{background:#fff6e6}
.ea-rb-banner button{font-size:.72rem;padding:2px 10px;border:1px solid currentColor;border-radius:6px;background:transparent;color:inherit;cursor:pointer}

/* ── V7.8.3 — indicateur d'affectation économique (Provider Costs) ───────────────────── */
.ea-aff-ind{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-left:5px;border-radius:50%;
  font-size:10px;font-weight:800;line-height:1;vertical-align:middle;cursor:help;border:1px solid transparent;user-select:none}
.ea-aff-green{background:#e6f4ec;color:#167a4a;border-color:#bfe0cd}
.ea-aff-orange{background:#fff3db;color:#b9770b;border-color:#f0d9a8}
.ea-aff-gray{background:#f0f0ee;color:#8a93a0;border-color:#dcdcd6}
.ea-aff-red{background:#fdeeee;color:#b23b3b;border-color:#eecccc}
.ea-aff-loading{background:#eef1f4;color:#9aa6b2;border-color:#e0e4e8}

/* ── V7.8.3 — Contrôle de refacturation des débours (panneau) ────────────────────────── */
.ea-dc{font-size:.84rem;color:#1f2c37}
.ea-dc-note{font-size:.78rem;color:#5b6b7b;background:#eef4fb;border:1px solid #cfe0ec;border-radius:7px;padding:7px 10px;margin-bottom:8px}
.ea-dc-tabs{display:flex;gap:6px;margin-bottom:8px}
.ea-dc-tab{padding:4px 12px;border:1px solid #d9d3c6;border-radius:16px;background:#fff;cursor:pointer;font-size:.8rem;color:#33414f}
.ea-dc-tab.active{background:#167a4a;border-color:#167a4a;color:#fff;font-weight:600}
.ea-dc-loading,.ea-dc-empty{color:#6b7785;padding:10px 2px}
.ea-dc-err{color:#b23b3b;background:#fdeeee;border:1px solid #eecccc;border-radius:7px;padding:8px 10px}
.ea-dc-sum{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.ea-dc-pill{font-size:.72rem;font-weight:700;padding:2px 9px;border-radius:12px;border:1px solid #e0e0da;background:#fafaf7}
.ea-dc-tbl{width:100%;border-collapse:collapse;font-size:.8rem}
.ea-dc-tbl th{background:#f2efe8;padding:5px 8px;font-size:.66rem;text-transform:uppercase;letter-spacing:.02em;color:#6b7785;border-bottom:1px solid #d9d3c6}
.ea-dc-tbl td{padding:5px 8px;border-bottom:1px solid #eee;vertical-align:top}
.ea-dc-l{text-align:left}
.ea-dc-r{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.ea-dc-desc{color:#5b6b7b;max-width:16rem}
.ea-dc-rem{color:#b9770b;font-weight:700}
.ea-dc-badge{display:inline-block;font-size:.7rem;font-weight:700;padding:2px 8px;border-radius:10px;border:1px solid}
.ea-dc-ok{color:#167a4a;background:#e6f4ec;border-color:#bfe0cd}
.ea-dc-warn{color:#b9770b;background:#fff3db;border-color:#f0d9a8}
.ea-dc-todo{color:#2a5a9a;background:#eef4fb;border-color:#cfe0ec}
.ea-dc-muted{color:#6b7785;background:#f0f0ee;border-color:#dcdcd6}
.ea-dc-bad{color:#b23b3b;background:#fdeeee;border-color:#eecccc}
.ea-dc-cons{margin-top:8px;font-size:.76rem;padding:6px 10px;border-radius:7px}
.ea-dc-cons.ok{color:#167a4a;background:#e6f4ec;border:1px solid #bfe0cd}
.ea-dc-cons.bad{color:#b23b3b;background:#fdeeee;border:1px solid #eecccc}

/* V7.8.4.1 — barre d'outils (filtre restant + export) */
.ea-dc-tools{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px}
/* V7.8.4.6 — barre de filtres sur UNE ligne : [Déclarés] [Tous] ☐ Restant… · Export à droite. */
.ea-dc-filterbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:8px 0 10px}
.ea-dc-filterbar .ea-dc-tab{margin:0}
.ea-dc-filter{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;color:#33414f;cursor:pointer;white-space:nowrap}
.ea-dc-filter .ea-dc-cbx{width:16px;height:16px;min-width:16px;min-height:16px;margin:0;flex:0 0 auto;accent-color:#167a4a;cursor:pointer}
.ea-dc-filter .ea-dc-filter-lbl{line-height:16px}
.ea-dc-filterbar .ea-dc-export{margin-left:auto}
.ea-dc-export{border:1px solid #167a4a;color:#167a4a;background:#fff;border-radius:7px;padding:6px 12px;cursor:pointer;font-size:.8rem;font-weight:700}
.ea-dc-export:hover{background:#e6f4ec}
@media (max-width:640px){
  .ea-dc-filterbar .ea-dc-export{margin-left:0}
  .ea-dc-filter{white-space:normal}
}
.ea-dc-flash{font-size:.76rem;padding:6px 10px;border-radius:7px;margin-bottom:8px}
.ea-dc-flash-ok{color:#167a4a;background:#e6f4ec;border:1px solid #bfe0cd}
.ea-dc-flash-warn{color:#b9770b;background:#fff3db;border:1px solid #f0d9a8}

/* V7.8.4.1 — indicateurs (KPI) en tête de tableau */
.ea-dc-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:10px}
.ea-dc-kpi{background:#f6f8fa;border:1px solid #e3e3e3;border-left:4px solid #9aa7b4;border-radius:8px;padding:9px 12px}
.ea-dc-kpi-v{font-size:1.05rem;font-weight:800;font-variant-numeric:tabular-nums;color:#1f2c37}
.ea-dc-kpi-k{font-size:.68rem;text-transform:uppercase;letter-spacing:.02em;color:#6b7785;margin-top:2px}
.ea-dc-kpi-ok{border-left-color:#167a4a}
.ea-dc-kpi-rem{border-left-color:#b9770b}
.ea-dc-kpi-rem .ea-dc-kpi-v{color:#b9770b}
.ea-dc-kpi-todo{border-left-color:#2a5a9a}
.ea-dc-kpi-todo .ea-dc-kpi-v{color:#2a5a9a}
@media (max-width:640px){.ea-dc-kpis{grid-template-columns:repeat(2,1fr)}}

/* V7.8.4.1 — accès direct à la facture fournisseur */
.ea-dc-open{border:1px solid #cfd6dd;background:#fff;border-radius:6px;padding:3px 9px;cursor:pointer;font-size:.74rem;color:#2a5a9a;white-space:nowrap}
.ea-dc-open:hover{background:#eef4fb}
.ea-dc-open:disabled{opacity:.45;cursor:default}

/* V7.8.3 — marge supplémentaire dans le rapprochement débours */
.ea-rb-marge-pos{color:#167a4a;font-weight:700}
.ea-rb-marge-neg{color:#b23b3b;font-weight:700}
.ea-rb-kv.ok .ea-rb-v{color:#167a4a}
.ea-rb-kv.warn .ea-rb-v{color:#b9770b}

/* ===== V7.8.4.2 — Évolution rapprochement : fenêtre élargie + préremplissage + gain/commission ===== */
/* Fenêtre élargie — appliquée UNIQUEMENT aux panneaux Rapprochement/Contrôle débours (classe ajoutée
   par ea-integration). N'affecte aucune autre fenêtre ERP (hors EA). */
/* V7.8.4.3 — fenêtre élargie : 95 % de la largeur disponible, maximum 1500 px (EA uniquement). */
.ea-ov-box.ea-ov-wide { width: min(1500px, 95vw); max-width: 95vw; }
.ea-ov-box.ea-ov-wide .ea-ov-body { max-height: 86vh; overflow: auto; }
/* Conteneur de défilement horizontal interne : le tableau garde une largeur lisible et défile dans la fenêtre. */
.ea-dc-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; width: 100%; }
.ea-dc-scroll .ea-dc-tbl { min-width: 940px; }
@media (max-width: 720px) { .ea-ov-box.ea-ov-wide { width: 95vw; } .ea-dc-scroll .ea-dc-tbl { min-width: 820px; } }

/* Disponible par code débours (multi-codes) */
.ea-rb-codes { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin:2px 0 8px; }
.ea-rb-codes-h { font-size:.7rem; color:#6b7785; font-weight:700; text-transform:uppercase; letter-spacing:.02em; }
.ea-rb-chip { font-size:.72rem; font-weight:700; font-variant-numeric:tabular-nums; padding:2px 9px; border-radius:12px; border:1px solid #e0e0da; background:#fafaf7; }
.ea-rb-chip.rem { color:#b9770b; border-color:#f0d9a8; background:#fff6e6; }
.ea-rb-chip.ok { color:#167a4a; border-color:#bfe0cd; background:#edf7f0; }

/* Panneau gain économique & commission (analytique) */
.ea-rb-gain { margin:8px 0 10px; border:1px solid #cfe0ec; border-left:4px solid #2a5a9a; border-radius:8px; background:#f5f9fd; padding:9px 12px; }
.ea-rb-gain-h { font-size:.76rem; font-weight:800; text-transform:uppercase; letter-spacing:.02em; color:#1c4e82; margin-bottom:7px; }
.ea-rb-gain-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:8px 12px; }
.ea-rb-gkv { display:flex; flex-direction:column; min-width:120px; }
.ea-rb-gk { font-size:.64rem; text-transform:uppercase; letter-spacing:.02em; color:#6b7785; }
.ea-rb-gv { font-size:.92rem; font-weight:800; font-variant-numeric:tabular-nums; color:#1f2c37; }
.ea-rb-gkv.ok .ea-rb-gv { color:#167a4a; }
.ea-rb-gkv.warn .ea-rb-gv { color:#b9770b; }
.ea-rb-gkv.muted .ea-rb-gv { color:#8a93a0; font-weight:700; }
.ea-rb-gain-indic { font-size:.74rem; color:#2d4a63; margin-top:8px; }
.ea-rb-gain-warn { font-size:.74rem; color:#b9770b; margin-top:6px; }
.ea-rb-gain-foot { font-size:.68rem; color:#8a93a0; font-style:italic; margin-top:6px; }
@media (max-width:860px){ .ea-rb-gain-grid{ grid-template-columns:repeat(2,1fr); } }

/* Indice « net non résolu » */
.ea-rb-hint.warn { color:#8a5a00; background:#fff6e6; border-color:#f0d9a8; }

/* V7.8.4.3 — spinner du Dashboard (exercice fiscal en chargement) */
@keyframes erpAcctGateSpin{to{transform:rotate(360deg)}}

/* ── V7.8.4.10.1 — Fiche compacte des allocations confirmées entièrement rapprochées ── */
.ea-rb-done{ display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin:10px 0 2px; padding:10px 12px; background:#eef4ea; border:1px solid #cbd9c3; border-radius:8px; }
.ea-rb-done-badge{ font-weight:700; color:#2a4a1e; }
.ea-rb-done-badge.ok{ color:#2a7a2a; }
.ea-rb-done-txt{ color:#444; font-size:.9rem; }
.ea-rb-detailsbtn{ margin-left:auto; padding:5px 12px; border:1px solid #bcd2b0; background:#fff; border-radius:6px; cursor:pointer; font-size:.88rem; color:#2a4a1e; }
.ea-rb-detailsbtn:hover{ background:#f3f7f0; }

/* ── V7.8.4.10.1 — Fiche compacte de la ventilation (affectation confirmée) ── */
.ea-pc-summary{ margin:8px 0; padding:10px 12px; background:#f6faf3; border:1px solid #cfe0c4; border-radius:8px; }
.ea-pc-summary-bar{ display:flex; align-items:center; gap:10px; margin-top:8px; }
.ea-pc-done-badge{ font-weight:700; color:#2a7a2a; }
.ea-pc-detailsbtn{ margin-left:auto; padding:5px 12px; border:1px solid #bcd2b0; background:#fff; border-radius:6px; cursor:pointer; font-size:.88rem; color:#2a4a1e; }
.ea-pc-detailsbtn:hover{ background:#eef4ea; }

/* V7.8.4.14d — Résolution Net Débours : case « justificatif interne » NORMALE (15×15) et EN LIGNE à gauche
   du libellé. DURCISSEMENT (14d) : la règle globale `input,select,textarea{width:100%; min-height:42px;
   padding:…; border:…}` (02-layout.css) s'applique aussi aux cases → case déformée/énorme si on ne RÉINITIALISE
   pas AUSSI min-height, padding et border. Sélecteur TRÈS spécifique (.ea-nr .ea-nr-internal
   input.ea-nr-internal-cb[type="checkbox"], spécificité 0,4,1) + !important pour battre toute règle globale,
   sans toucher les autres cases de l'ERP (préfixe .ea-nr-internal). */
.ea-nr-internal{ display:flex; align-items:center; gap:6px; margin:8px 0; flex-wrap:wrap; }
.ea-nr-internal-lbl{ display:inline-flex; align-items:center; gap:6px; margin:0; cursor:pointer; font-size:.9rem; line-height:1.3; }
.ea-nr .ea-nr-internal input.ea-nr-internal-cb[type="checkbox"],
.ea-nr-internal input.ea-nr-internal-cb[type="checkbox"]{
  -webkit-appearance:checkbox !important; appearance:checkbox !important;
  width:15px !important; height:15px !important;
  min-width:15px !important; max-width:15px !important; min-height:15px !important; max-height:15px !important;
  margin:0 !important; padding:0 !important; border:1px solid #8a8a8a !important; border-radius:3px !important;
  flex:0 0 auto !important; display:inline-block !important; vertical-align:middle !important;
  background:#fff !important; box-shadow:none !important; box-sizing:border-box !important;
  accent-color:#2a4a1e; cursor:pointer; }
.ea-nr-internal-txt{ line-height:1.3; }
.ea-nr-internal-ok{ flex-basis:100%; font-size:.8rem; color:#2a7a2a; margin-left:21px; }
.ea-nr-internal-no{ flex-basis:100%; font-size:.8rem; color:#b23b3b; margin-left:21px; }
.ea-nr-justif{ font-weight:650; font-size:.9rem; color:#2a4a1e; }
.ea-nr-justif.ea-nr-err{ color:#b23b3b; font-weight:600; }
.ea-nr-justif-hint{ font-size:.78rem; color:var(--muted,#777); }

/* R15.4 (B) — panneau de rapprochement Débours MULTI-LIGNES (lot atomique) — additif */
.ea-rb-hint.warn{color:#8a5a00;background:#fff6e6;border-color:#e6cf99}
.ea-rb-batch{margin-top:10px;padding:8px 10px;border:1px solid #cfd8e3;border-radius:8px;background:#f6f9fd}
.ea-rb-batch-head{display:flex;align-items:center;justify-content:space-between}
.ea-rb-batch-toggle{font-size:.78rem;font-weight:700;color:#2d4a63;background:transparent;border:none;cursor:pointer;padding:2px 0}
.ea-rb-batch-table{width:100%;border-collapse:collapse;margin:6px 0;font-size:.76rem}
.ea-rb-batch-table th{text-align:left;background:#eaf0f8;padding:4px 7px;font-size:.64rem;text-transform:uppercase;letter-spacing:.02em;color:#5a6b7d;border-bottom:1px solid #cfd8e3}
.ea-rb-batch-table td{padding:4px 7px;border-bottom:1px solid #e6ecf3;vertical-align:top}
.ea-rb-batch-table td.ea-rb-num{text-align:right;font-variant-numeric:tabular-nums}
.ea-rb-batch-tot{display:flex;flex-wrap:wrap;gap:8px 20px;margin:6px 0;padding:6px 8px;background:#fff;border:1px solid #e0e6ee;border-radius:7px;font-size:.8rem;font-weight:700;font-variant-numeric:tabular-nums}
.ea-rb-batch-tot .ea-rb-kv{flex-direction:row;min-width:0}
.ea-rb-batch-tot .ea-rb-kv.ok{color:#167a4a}
.ea-rb-batch-tot .ea-rb-kv.warn{color:#b23b3b}
.ea-rb-batch-results{margin:6px 0;padding:6px 8px;background:#fff;border:1px solid #e0e6ee;border-radius:7px;font-size:.76rem}
