/* Module VIN : identification du véhicule, décodage par lot (style industriel GME : noir, bleu nuit, rouge) */
.vn-card { overflow: hidden; }
.vn-body { padding: 0 20px 18px; display: grid; gap: 12px; }
.vn-vin { display: inline-flex; font: 700 14px/1 'Barlow Semi Condensed', ui-monospace, monospace; letter-spacing: .08em; background: #0f1b33; color: #fff; border-radius: 6px; overflow: hidden; }
.vn-vin > * { padding: 5px 4px; text-decoration: none; font-style: normal; font-weight: 700; }
.vn-vin b { background: #d7141b; padding-left: 7px; } .vn-vin i { background: #1c3f86; } .vn-vin u { background: #3a4a6a; } .vn-vin em { background: #b45309; } .vn-vin s { background: #36507e; } .vn-vin span { padding-right: 7px; }
.vn-score { font: 700 13px Barlow, sans-serif; padding: 4px 10px; border-radius: 6px; border: 1px solid; }
.vn-lvl { display: inline-flex; align-items: center; gap: 4px; font-size: 11.5px; font-weight: 700; padding: 1px 7px; border-radius: 9px; border: 1px solid; white-space: nowrap; }
.vn-ok { background: #e3f6e8; color: #157a33; border-color: #b9e5c5; } .vn-warn { background: #fff4e5; color: #b45309; border-color: #fbd6a6; }
.vn-fiche { background: #e6eefb; color: #1d4ed8; border-color: #bcd0f5; } .vn-plate { background: #f1f2f6; color: #3d4a5f; border-color: #d5dae3; }
.vn-unk { background: #f0f2f6; color: #5d6779; border-color: #dde2ea; } .vn-bad { background: #fde8e8; color: #b91c1c; border-color: #f5b5b5; }
.vn-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 8px; }
.vn-cell { border: 1px solid #e3e7ef; border-radius: 10px; padding: 9px 11px; background: #fbfcfe; display: grid; gap: 3px; min-width: 0; }
.vn-lab { font-size: 11px; text-transform: uppercase; letter-spacing: .06em; color: #6b7588; font-weight: 700; }
.vn-val { font-size: 14px; color: #0f1b33; overflow-wrap: anywhere; } .vn-meta { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.vn-src { font-size: 11px; color: #56627a; cursor: help; border-bottom: 1px dotted #9aa3b2; }
.vn-none { color: #b45309; font-weight: 700; } .vn-cands { font-size: 11.5px; color: #6b7588; margin-top: 2px; }
.vn-issues { display: grid; gap: 4px; } .vn-issue { font-size: 12.5px; padding: 5px 9px; border-radius: 6px; background: #f0f2f6; color: #3a4660; }
.vn-issue.erreur { background: #fde8e8; color: #b91c1c; } .vn-issue.alerte { background: #fff4e5; color: #92400e; }
.vn-apply, .vn-obs { border-top: 1px dashed #dde2ea; padding-top: 10px; } .vn-apply h3, .vn-obs h3, .vn-det h3 { font: 700 14px Barlow, sans-serif; margin: 6px 0; color: #0f1b33; }
.vn-tab td, .vn-tab th { padding: 7px 10px; height: auto; vertical-align: top; } .vn-small { font-size: 11.5px; }
.vn-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }
.vn-chip { display: inline-flex; gap: 6px; align-items: center; font-size: 12px; padding: 4px 9px; border-radius: 14px; background: #eef2f9; color: #1c3f86; text-decoration: none; border: 1px solid #d6deec; }
.vn-chip b { color: #0f1b33; } .vn-chip i { font-style: normal; font-size: 10px; font-weight: 700; background: #1c3f86; color: #fff; padding: 0 5px; border-radius: 6px; }
.vn-det { display: grid; gap: 10px; } .vn-det pre { max-height: 260px; overflow: auto; background: #0b1120; color: #cfe3ff; font-size: 11.5px; padding: 10px; border-radius: 8px; }
.vn-srcbox { border: 1px solid #e3e7ef; border-radius: 8px; padding: 6px 10px; } .vn-srcbox summary { cursor: pointer; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.vn-notes { margin: 0; padding-left: 18px; font-size: 13px; display: grid; gap: 4px; } .vn-inl { margin-right: 8px; display: inline-flex; gap: 4px; align-items: center; }
.vn-kpis { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.vn-kpi { background: linear-gradient(160deg, #0f1b33, #16264a); color: #fff; border-radius: 12px; padding: 12px 14px; display: grid; gap: 2px; border-left: 3px solid #d7141b; }
.vn-kpi span { font-size: 11.5px; color: #aab6cc; text-transform: uppercase; letter-spacing: .05em; } .vn-kpi b { font: 700 24px Barlow, sans-serif; } .vn-kpi em { font-style: normal; font-size: 11.5px; color: #8f9bb3; }
.vn-run { display: flex; gap: 16px; justify-content: space-between; align-items: flex-start; flex-wrap: wrap; padding: 16px 20px; border-bottom: 1px solid #e3e7ef; }
.vn-chk { display: flex; gap: 8px; align-items: center; font-size: 13px; color: #3a4660; }
.vn-prog { position: relative; flex-basis: 100%; height: 30px; border-radius: 8px; background: #e8ecf3; overflow: hidden; display: flex; align-items: center; gap: 10px; padding-right: 6px; }
.vn-prog[hidden] { display: none; } .vn-prog i { position: absolute; inset: 0 auto 0 0; width: 0; background: linear-gradient(90deg, #1c3f86, #d7141b); transition: width .3s; }
.vn-prog span { position: relative; margin-left: 12px; font-weight: 700; color: #fff; text-shadow: 0 1px 2px rgba(0, 0, 0, .5); flex: 1; } .vn-prog button { position: relative; }
.vn-filters { gap: 6px; flex-wrap: wrap; align-items: center; padding: 12px 20px; }
.vn-fchip { border: 1px solid #d6deec; background: #fff; color: #3a4660; border-radius: 16px; padding: 5px 12px; font-size: 12.5px; cursor: pointer; }
.vn-fchip.on { background: #0f1b33; color: #fff; border-color: #0f1b33; }
.vn-srcs { display: grid; grid-template-columns: 1.4fr 1fr; gap: 24px; padding: 18px 20px; } .vn-srcs h3 { margin: 0 0 8px; font: 700 15px Barlow, sans-serif; }
@media (max-width: 860px) { .vn-srcs { grid-template-columns: 1fr; } .vn-run { flex-direction: column; } }

/* Décodage automatique dans le formulaire véhicule : panneau « Recommandé par l'ERP » */
.modal.wide:has(.vn-fwrap) { width: min(1120px, 100%); }
.vn-fwrap { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; align-items: start; }
.vn-fwrap:has(.vn-assist:not([hidden])) { grid-template-columns: minmax(0, 1fr) 380px; }
.vn-assist { background: linear-gradient(180deg, #0f1b33, #16264a); color: #fff; border-radius: 12px; padding: 14px; display: flex; flex-direction: column; gap: 8px; position: sticky; top: 0; }
.vn-assist[hidden] { display: none; }
.vn-ah { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; } .vn-ah b { font: 700 15px Barlow, Arial, sans-serif; } .vn-ah small { display: block; color: #aab6cc; font-size: 11.5px; margin-top: 2px; }
.vn-ascore { font: 700 12px Barlow, Arial, sans-serif; padding: 3px 9px; border-radius: 7px; background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .18); white-space: nowrap; }
.vn-arow { background: #fff; color: #0f1b33; border-radius: 9px; padding: 8px 10px; display: grid; grid-template-columns: 70px 1fr auto; gap: 3px 8px; align-items: center; border-left: 4px solid #9aa3b2; }
.vn-arow.ok { border-left-color: #2dbb57; } .vn-arow.warn { border-left-color: #f2a900; } .vn-arow.new { border-left-color: #2b6fe0; }
.vn-arow .k { font-size: 10.5px; text-transform: uppercase; letter-spacing: .06em; color: #6b7588; font-weight: 700; }
.vn-arow .v { font-size: 14px; font-weight: 700; overflow-wrap: anywhere; } .vn-arow .v em { font-style: normal; font-weight: 500; color: #6b7588; font-size: 11.5px; }
.vn-ameta { grid-column: 2 / 4; display: flex; gap: 6px; flex-wrap: wrap; align-items: center; font-size: 11px; color: #56627a; }
.vn-ameta span[title] { cursor: help; border-bottom: 1px dotted #9aa3b2; }
.vn-acmp { grid-column: 2 / 4; font-size: 11.5px; color: #b45309; font-weight: 600; }
.vn-apiste { grid-column: 2 / 4; font-size: 11.5px; color: #56627a; } .vn-apiste b { color: #0f1b33; }
.vn-amuted { color: #6b7588 !important; font-weight: 600 !important; font-size: 13px !important; }
.vn-ast { font-size: 10.5px; font-weight: 700; padding: 2px 7px; border-radius: 5px; white-space: nowrap; } .vn-ast.same { background: #e3f6e8; color: #157a33; }
.vn-abtn { font: 700 12px Barlow, Arial, sans-serif; border-radius: 7px; padding: 5px 10px; border: 1px solid #c9d3e6; background: #fff; color: #0f1b33; cursor: pointer; white-space: nowrap; }
.vn-abtn:hover { border-color: #0f1b33; } .vn-abtn.red { background: #d7141b; border-color: #d7141b; color: #fff; } .vn-abtn.ghost { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .35); }
.vn-afoot { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-top: 2px; } .vn-afoot small { color: #aab6cc; font-size: 11px; }
.vn-acode { height: 26px; width: 92px; border: 1px solid #c9d3e6; border-radius: 6px; padding: 0 7px; font: 700 12px ui-monospace, monospace; text-transform: uppercase; }
.vn-acodeinfo { grid-column: 2 / 4; font-size: 12px; padding: 5px 7px; border-radius: 6px; } .vn-acodeinfo.ok { background: #e3f6e8; color: #157a33; } .vn-acodeinfo.bad { background: #fff4e5; color: #b45309; }
.vn-spin { width: 10px; height: 10px; border: 2px solid rgba(255, 255, 255, .3); border-top-color: #fff; border-radius: 50%; display: inline-block; vertical-align: -1px; animation: vn-rot .8s linear infinite; }
@keyframes vn-rot { to { transform: rotate(360deg); } }
input.vn-hl-ok, select.vn-hl-ok { border-color: #9ad3ab !important; background: #f6fcf8 !important; }
input.vn-hl-warn, select.vn-hl-warn { border-color: #f3b766 !important; background: #fffaf2 !important; }
input.vn-hl-new, select.vn-hl-new { border-color: #9db6e6 !important; background: #f5f8fe !important; }
input.vn-hl-bad { border-color: #f5b5b5 !important; background: #fff8f8 !important; }
@media (max-width: 900px) { .vn-fwrap:has(.vn-assist:not([hidden])) { grid-template-columns: 1fr; } .vn-assist { position: static; } }

/* Pièces liées / Coller un texte (v1.62, components/vin-parts-text.js) */
.vp-acts { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.vp-acts .btn { white-space: nowrap; display: inline-flex; align-items: center; gap: 5px; }
.vp-wrap { display: flex; flex-direction: column; gap: 10px; }
.vp-head { font-size: 14px; }
.vp-none { color: #c26a00; font-weight: 700; }
.vp-tabs { margin: 0; overflow-y: hidden; flex-wrap: wrap; } /* v1.64 : plus d'ascenseur vertical parasite sur les onglets */
/* v1.64 : la table reste dans la fenêtre (réfs Dolibarr longues « VANNE_EGR___PARTIE_… » coupées, bouton « Au devis » visible) */
.vp-tab { width: 100%; }
.vp-tab td, .vp-tab th { font-size: 13px; vertical-align: middle; padding: 8px 10px; height: auto; }
.vp-tab th { white-space: normal; }
.vp-tab td { overflow-wrap: anywhere; }
.vp-tab td:last-child { text-align: right; }
.vp-tab .btn, .vp-tab .vp-src { white-space: nowrap; overflow-wrap: normal; }
.vp-h { margin: 12px 0 8px; font: 800 13.5px 'Barlow Condensed', 'Barlow', sans-serif; text-transform: uppercase; letter-spacing: .4px; color: #0f1b2f; }
.vp-note { font-size: 12.5px; margin: 4px 0 10px; }
.vp-empty { padding: 10px 0; margin: 0; }
.vp-small { font-size: 12px; }
.vp-stock { color: #1a8a3a; } .vp-stock.z { color: #b3121a; }
.vp-src { font-size: 11px; font-weight: 700; border-radius: 4px; padding: 1px 6px; white-space: nowrap; display: inline-block; }
.vp-src.fact { background: #e8f0fe; color: #1f63c9; } .vp-src.cat { background: #f2ecfe; color: #6a3fd1; }
.vp-src.decl { background: #eaf7ee; color: #15803d; } .vp-src.chk { background: #fff4e5; color: #b26a00; } .vp-src.txt { background: #fff1d6; color: #8a5a00; }
.vp-txt { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 820px) { .vp-txt { grid-template-columns: 1fr; } }
.vp-ta { min-height: 150px; width: 100%; resize: vertical; font-size: 13.5px; line-height: 1.45; }
.vp-found { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border: 1px solid #e3e8ef; border-radius: 8px; margin-bottom: 6px; background: #fafbfd; cursor: pointer; }
.vp-found input { width: 16px; height: 16px; flex: none; }
.vp-k { width: 92px; flex: none; color: #6b7688; font-size: 12.5px; }
.vp-v { flex: 1; font-weight: 700; min-width: 0; overflow-wrap: anywhere; }
.vp-opt { display: block; font-weight: 600; margin: 2px 0; }
.vp-st { font-size: 11.5px; text-align: right; max-width: 40%; }
.vp-st-new { color: #1f63c9; } .vp-st-same { color: #15803d; } .vp-st-diff { color: #c26a00; font-weight: 700; }
.vp-notes { margin-top: 8px; padding: 8px 10px; border-radius: 8px; background: #fff7e6; color: #8a5a00; font-size: 12.5px; display: flex; flex-direction: column; gap: 4px; }
.vp-learn { margin-top: 14px; border: 2px dashed #9fb3d6; border-radius: 10px; padding: 12px 14px; background: #f5f8fd; }
.vp-learn .vp-h { margin-top: 0; }
.vp-fill { margin-top: 8px; display: flex; flex-wrap: wrap; gap: 6px; max-height: 220px; overflow: auto; }
.vp-chip { display: inline-flex; align-items: center; gap: 5px; border: 1px solid #cfd6e0; border-radius: 14px; padding: 3px 10px; font-size: 12.5px; background: #fff; }
.vp-chip.has { opacity: .55; }
.vp-found .vp-v.vp-pl { font-weight: 500; font-size: 12.5px; }
/* formulaire véhicule › Coller un texte (components/vehicle-text-fill.js) */
.vtf { border: 1px dashed #9fb3d6; border-radius: 8px; padding: 8px 12px; background: #f7f9fd; }
.vtf summary { cursor: pointer; display: flex; align-items: center; gap: 6px; font-size: 13.5px; list-style: none; }
.vtf summary::-webkit-details-marker { display: none; }
.vtf[open] summary { margin-bottom: 8px; }
.vtf-ta { width: 100%; min-height: 70px; resize: vertical; font-size: 13px; }
.vtf-small { font-size: 12px; }
.vtf-ok, .vtf-info, .vtf-warn, .vtf-diff { font-size: 12.5px; margin-top: 6px; padding: 6px 8px; border-radius: 6px; }
.vtf-ok { background: #eaf7ee; color: #15703a; } .vtf-info { background: #eef3fb; color: #23417a; } .vtf-warn { background: #fff7e6; color: #8a5a00; }
.vtf-diff { background: #fff; border: 1px solid #f1c48a; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.vtf-diff-strong { background: #fff7e6; border: 1.5px solid #e08a00; color: #5a3a00; font-size: 13px; }
.field.vtf-hl input, .field.vtf-hl select { box-shadow: 0 0 0 3px rgba(31, 99, 201, .35); transition: box-shadow .3s; }

/* v1.66 — moteur d'identité véhicule (vi-) */
.vi-run { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; align-items: center; padding: 12px 14px; margin: 10px 0; border: 1px solid #d5dfee; border-radius: 10px; background: linear-gradient(180deg, #f7f9fd, #eef3fb); }
.vi-filters { gap: 6px; } .vi-filters em { font-style: normal; font-weight: 700; opacity: .7; margin-left: 3px; }
.vi-lvl { display: inline-block; font-size: 10.5px; font-weight: 800; letter-spacing: .3px; border-radius: 4px; padding: 1px 6px; white-space: nowrap; border: 1px solid transparent; }
.vi-l5 { background: #e3f6e8; color: #136b2e; border-color: #b9e5c5; } .vi-l4 { background: #e8f3ff; color: #1d4ed8; border-color: #bcd3f5; }
.vi-l3 { background: #fff4e5; color: #a24a07; border-color: #fbd6a6; } .vi-l2 { background: #f3f0ff; color: #5b3fc4; border-color: #d8cff7; }
.vi-l1 { background: #f1f2f6; color: #4b5565; border-color: #d5dae3; } .vi-conf { background: #fde8e8; color: #a3121a; border-color: #f5b8b8; }
.vi-cell { min-width: 150px; } .vi-pct { font-variant-numeric: tabular-nums; } .vi-big { font-size: 24px; }
.vi-mini { display: flex; gap: 4px; flex-wrap: wrap; margin: 4px 0; } .vi-mf { font-size: 10.5px; background: #eef2f8; border-radius: 3px; padding: 0 4px; color: #23417a; }
.vi-mf.vi-none { color: #9aa3b2; } .vi-why { padding: 2px 8px; font-size: 11.5px; }
.vi-eng { line-height: 1.5; } .vi-eng-l { font-size: 11px; color: #6b7688; display: block; }
.vi-bar { display: inline-block; width: 70px; height: 7px; background: #e6eaf1; border-radius: 4px; vertical-align: middle; overflow: hidden; } .vi-bar i { display: block; height: 100%; background: linear-gradient(90deg, #b3121a, #1f63c9); }
.vi-wrap { display: flex; flex-direction: column; gap: 12px; } .vi-head { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; font-size: 13px; }
.vi-global { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.vi-conflicts { background: #fdf0f0; border: 1.5px solid #e9a3a3; border-radius: 8px; padding: 8px 12px; color: #6d0f14; font-size: 13px; display: flex; flex-direction: column; gap: 4px; }
.vi-tab td { vertical-align: top; padding: 8px 10px; height: auto; font-size: 13px; } .vi-tab td { overflow-wrap: anywhere; }
.vi-det summary { cursor: pointer; color: #1f63c9; font-size: 12.5px; } .vi-cand { margin: 6px 0; padding: 6px 8px; border-left: 3px solid #1f63c9; background: #f8fafd; }
.vi-cand.vi-out { border-left-color: #c7cdd8; opacity: .85; } .vi-cand ul { margin: 4px 0 0 16px; padding: 0; font-size: 12px; } .vi-neg { color: #a3121a; }
.vi-rec { font-size: 10.5px; background: #eef2f8; border-radius: 3px; padding: 0 4px; } .vi-corr { font-size: 12.5px; margin: 4px 0 0 16px; }
.vi-batch { margin: 8px 0; padding: 10px 12px; border: 1px solid #d5dfee; border-radius: 10px; background: #fff; } .vi-bhead { display: flex; gap: 10px; align-items: center; justify-content: space-between; margin-bottom: 6px; }
.vi-batch .vn-prog { height: 8px; background: #e6eaf1; border-radius: 5px; overflow: hidden; display: block; } .vi-batch .vn-prog i { display: block; height: 100%; background: #1f63c9; transition: width .3s; }
.vi-phases { margin: 8px 0 0 18px; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 4px 16px; font-size: 12.5px; }
.vi-phases li span { display: block; color: #4b5565; font-size: 11.5px; }
.vi-weights { width: 100%; font-family: ui-monospace, monospace; font-size: 11.5px; min-height: 180px; }
.vi-tab td:first-child { white-space: nowrap; overflow-wrap: normal; }

/* Repère marché Algérie (v1.67) — préfixe mk- */
.mk-line { font-size: 12px; color: #1e3a5f; margin-top: 3px; }
.mk-box { margin-top: 12px; border: 1px solid #d9e1ec; border-left: 4px solid #1e3a5f; border-radius: 8px; padding: 10px 12px; background: #f8fafd; }
.mk-warn { font-size: 12.5px; background: #fff7e6; border: 1px solid #f1d39a; border-radius: 6px; padding: 6px 8px; margin: 6px 0; }
.mk-tab td, .mk-tab th { vertical-align: top; overflow-wrap: anywhere; }
.mk-gme { display: inline-block; font-size: 10px; font-weight: 700; color: #fff; background: #1e3a5f; border-radius: 4px; padding: 1px 5px; vertical-align: middle; }
.mk-rej td { opacity: .55; }
.mk-rejt { color: #b3261e; }
.mk-acts { white-space: nowrap; }
.mk-acts .btn { margin: 0 2px 2px 0; }
.mk-corr { gap: 8px; align-items: center; flex-wrap: wrap; margin: 8px 0; }
.mk-corr .input { flex: 1; min-width: 180px; }
.mk-parc { font-size: 12.5px; margin: 6px 0; }
@media (max-width: 820px) { .mk-acts { white-space: normal; } }
.mk-tab td:nth-child(2) { white-space: nowrap; }
.mk-tab .vi-bar { width: 60px; }
.mk-km { font-size: 13px; background: #fff; border: 1px solid #d9e1ec; border-radius: 6px; padding: 6px 8px; margin: 6px 0; }
.mk-km-warn { color: #9a3412; font-weight: 600; margin-top: 3px; }

/* ---- Onglet Marché (v1.70) : tableau de bord, préfixe mk- ---- */
.mk-hero { background: linear-gradient(160deg, #0f1b33, #16264a); color: #fff; border-radius: 12px; padding: 16px 18px; display: grid; gap: 12px; }
.mk-hero-top { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; align-items: flex-start; }
.mk-hero h3 { margin: 0; font: 700 15px var(--cond); letter-spacing: .08em; }
.mk-hero-src { font-size: 12px; color: #aab6cc; }
.mk-hero-acts { display: flex; gap: 8px; flex-wrap: wrap; }
.mk-btn-ghost { background: transparent; color: #fff; border: 1px solid rgba(255,255,255,.35); }
.mk-btn-ghost:hover { background: rgba(255,255,255,.08); }
.mk-hero-empty { background: rgba(255,255,255,.08); border-radius: 8px; padding: 10px 12px; font-size: 13px; }
.mk-kpis { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.mk-kpi { background: rgba(255,255,255,.06); border-radius: 10px; padding: 10px 12px; display: grid; gap: 2px; }
.mk-kpi b { font: 700 24px var(--cond); } .mk-kpi span { font-size: 11px; color: #aab6cc; text-transform: uppercase; letter-spacing: .05em; }
.mk-filters { display: flex; gap: 14px; flex-wrap: wrap; align-items: flex-end; padding: 12px 16px; }
.mk-filters label { display: grid; gap: 4px; font-size: 12px; color: var(--muted); min-width: 150px; }
.mk-filters .input { height: 34px; }
.mk-filters-note { margin-left: auto; align-self: center; }
.mk-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.mk-block { padding: 16px 18px; display: grid; gap: 10px; align-content: start; }
.mk-idee { display: flex; gap: 10px; align-items: baseline; } .mk-idee em { font: 700 10.5px var(--cond); letter-spacing: .1em; color: var(--red-text); font-style: normal; } .mk-idee b { font-size: 16px; }
.mk-big { font-size: 13.5px; margin: 0; } .mk-big b:first-child { font: 700 30px var(--cond); color: var(--red-text); margin-right: 6px; }
.mk-bars { display: flex; gap: 6px; align-items: flex-end; height: 150px; padding-top: 16px; }
.mk-bar { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; height: 100%; min-width: 0; }
.mk-bar i { display: block; width: 100%; background: #14223b; border-radius: 3px 3px 0 0; min-height: 3px; }
.mk-bar.wave i { background: var(--orange); } .mk-bar.red i { background: var(--red); }
.mk-bar-v { font-size: 10px; color: var(--muted); } .mk-bar-l { font-size: 10.5px; margin-top: 4px; color: var(--text-3); white-space: nowrap; } .mk-bar.wave .mk-bar-l, .mk-bar.red .mk-bar-l { font-weight: 700; color: var(--text); }
.mk-hbars { display: grid; gap: 6px; }
.mk-hbar { display: grid; grid-template-columns: 150px 1fr 56px; gap: 8px; align-items: center; font-size: 12.5px; }
.mk-hbar-t { background: #e9edf3; border-radius: 4px; height: 10px; overflow: hidden; } .mk-hbar-t i { display: block; height: 100%; background: #14223b; }
.mk-hbar.gme .mk-hbar-l { color: var(--red-text); font-weight: 700; } .mk-hbar.gme .mk-hbar-t i { background: var(--red); }
.mk-hbar b { text-align: right; font-size: 12.5px; }
.mk-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 8px; }
.mk-tile { background: #f4f6f9; border-radius: 8px; padding: 10px 12px; display: grid; gap: 2px; } .mk-tile.warm { background: #fff4e5; }
.mk-tile b { font: 700 20px var(--cond); } .mk-tile.warm b { color: #c05600; } .mk-tile span { font-size: 11.5px; color: var(--muted); }
.mk-seg { display: flex; height: 10px; border-radius: 5px; overflow: hidden; gap: 2px; } .mk-seg i { display: block; } .mk-seg .red { background: var(--red); } .mk-seg .orange { background: var(--orange); } .mk-seg .navy { background: #14223b; } .mk-seg .grey { background: #e9edf3; }
.mk-legend { display: flex; gap: 14px; flex-wrap: wrap; font-size: 11.5px; color: var(--muted); } .mk-legend i { display: inline-block; width: 9px; height: 9px; border-radius: 2px; margin-right: 5px; vertical-align: middle; }
.mk-legend .red { background: var(--red); } .mk-legend .orange { background: var(--orange); } .mk-legend .navy { background: #14223b; }
.mk-tab .r { text-align: right; } .mk-pareto td, .mk-pareto th { padding: 6px 8px; }
.mk-ok { color: #157a33; font-weight: 700; font-size: 12px; } .mk-todo { color: var(--red-text); font-weight: 700; font-size: 12px; }
.mk-neg { color: var(--red-text); font-weight: 700; } .mk-pos { color: #157a33; }
.mk-eng { display: grid; gap: 4px; } .mk-eng-h { display: flex; gap: 8px; align-items: center; }
.mk-chips { display: flex; flex-wrap: wrap; gap: 6px; } .mk-chip { background: #eef1f5; border-radius: 999px; padding: 3px 10px; font-size: 12px; } .mk-chip.more { color: var(--muted); }
.mk-note { font-size: 12px; background: #f4f6f9; border-left: 3px solid var(--blue); border-radius: 6px; padding: 8px 10px; } .mk-note.warn { border-left-color: var(--orange); background: #fff7e6; }
.mk-acts { display: flex; gap: 8px; flex-wrap: wrap; }
.mk-two { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.mk-foot { margin: 4px 0 0; } .mk-foot code { font-size: 11px; }
.mk-help ol { padding-left: 18px; } .mk-help li { margin: 6px 0; }
.mk-adv summary { cursor: pointer; font-weight: 700; padding: 10px 0; }
@media (max-width: 980px) { .mk-grid, .mk-two { grid-template-columns: 1fr; } .mk-hbar { grid-template-columns: 110px 1fr 50px; } .mk-filters-note { margin-left: 0; } }
.mk-block .table tr { height: auto; } .mk-block .table td, .mk-block .table th { padding: 7px 8px; font-size: 12.5px; }

/* ---- Moteur probable à la réception (v1.70), préfixe ep- — dans le volet sombre .vn-assist ---- */
.ep-panel { gap: 8px; }
.ep-head { display: flex; justify-content: space-between; gap: 8px; align-items: center; flex-wrap: wrap; }
.ep-head > div { display: flex; gap: 8px; align-items: baseline; } .ep-head b { font: 700 15px Barlow, Arial, sans-serif; }
.ep-tag { font: 700 9.5px var(--cond); letter-spacing: .1em; color: #ff6b70; }
.ep-badge { font-size: 11px; font-weight: 700; border-radius: 999px; padding: 3px 9px; }
.ep-badge.hint { background: #fff4e5; color: #b45309; } .ep-badge.ok { background: #e3f6e8; color: #157a33; } .ep-badge.warn { background: #fde8e8; color: #b3261e; }
.ep-intro { font-size: 12px; margin: 0; color: #c9d3e3; } .ep-intro b { color: #fff; } .ep-bad { color: #ffb4b4; font-weight: 600; }
.ep-row { display: grid; grid-template-columns: 1fr auto; gap: 4px 10px; align-items: center; border-radius: 9px; padding: 8px 10px; background: #fff; color: #0f1b33; border-left: 4px solid #9aa3b2; }
.ep-row.typed { border-left-color: #2dbb57; } .ep-row.direct { border-left-color: #2b6fe0; }
.ep-lbl { display: grid; } .ep-lbl b { font-size: 14px; } .ep-lbl small { font-size: 11px; color: #6b7588; }
.ep-bar { grid-column: 1 / 2; background: #e9edf3; border-radius: 4px; height: 8px; overflow: hidden; } .ep-bar i { display: block; height: 100%; background: #14223b; }
.ep-num { grid-column: 2 / 3; grid-row: 2; display: flex; gap: 6px; align-items: baseline; justify-content: flex-end; } .ep-num b { font: 700 17px var(--cond); } .ep-num small { font-size: 10.5px; color: #6b7588; white-space: nowrap; } .ep-parc { color: var(--blue); }
.ep-pick, .ep-chosen { grid-column: 2; grid-row: 1; justify-self: end; }
.ep-pick { font: 700 12px Barlow, Arial, sans-serif; border: 1px solid #c9d3e6; background: #fff; color: #0f1b33; border-radius: 7px; padding: 6px 10px; cursor: pointer; white-space: nowrap; }
.ep-pick.first { background: #0f1b33; color: #fff; border-color: #0f1b33; } .ep-pick:hover { filter: brightness(1.1); }
.ep-chosen { font-size: 11px; font-weight: 700; color: #157a33; }
.ep-tiles { display: grid; grid-template-columns: 1fr; gap: 6px; } .ep-tile { background: rgba(255,255,255,.07); border-radius: 8px; padding: 7px 10px; font-size: 11.5px; color: #c9d3e3; } .ep-tile b { display: inline; color: #fff; margin-right: 6px; } .ep-tile b::after { content: ' —'; }
.ep-km { font-size: 12px; background: #fff7e6; color: #7a4a00; border-left: 3px solid var(--orange); border-radius: 6px; padding: 8px 10px; } .ep-km.warn { background: #fde8e8; color: #8a1c1c; border-left-color: #b3261e; font-weight: 600; }
.ep-foot { font-size: 11.5px; color: #aab6cc; margin: 0; } .ep-foot b { color: #fff; }
