:root{--olive:#6E7645;--green:#2E7D4F;--plum:#973756;--ochre:#C98A2B;--red:#E50040;--ink:#1f2420;--mute:#6b6f68;--line:#e3e1d8;--bg:#f7f5ef;--card:#fff;
--top:#00B050;--fort:#92D050;--moyen:#FFC000;--faible:#FF4d4d}
*{box-sizing:border-box}body{margin:0;font:14px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ink);background:var(--bg)}
a{color:var(--plum);text-decoration:none}a:hover{text-decoration:underline}
header{background:#1d2a22;color:#f3efe2;padding:10px 20px;display:flex;align-items:center;gap:22px;flex-wrap:wrap}
header .brand{font-weight:700;letter-spacing:.5px}header .brand small{color:var(--ochre);font-weight:500;margin-left:6px}
header nav a{color:#e9e4d2;margin-right:14px;font-weight:500}header nav a.on{color:var(--ochre)}
.demo{background:var(--red);color:#fff;text-align:center;padding:5px;font-weight:600}
.warn{background:#fff4d6;border:1px solid #e9cf8a;padding:8px 12px;border-radius:8px;margin:10px 0}
main{max-width:1320px;margin:0 auto;padding:18px 20px 60px}
h1{font-size:22px;margin:4px 0 14px}h2{font-size:17px;margin:22px 0 10px}h3{font-size:15px;margin:14px 0 8px}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px 16px;margin-bottom:14px}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:14px}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px 14px}
.kpi b{display:block;font-size:22px}.kpi span{color:var(--mute);font-size:12px}
table{width:100%;border-collapse:collapse;background:var(--card)}th,td{padding:6px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
th{font-size:12px;color:var(--mute);font-weight:600;background:#faf9f4;position:sticky;top:0}td.r,th.r{text-align:right;white-space:nowrap}
tr:hover td{background:#fbfaf6}
.badge{display:inline-block;padding:1px 7px;border-radius:10px;font-size:11px;font-weight:600;white-space:nowrap}
.z-top{background:var(--top);color:#fff}.z-fort{background:var(--fort)}.z-moyen{background:var(--moyen)}.z-faible{background:var(--faible);color:#fff}.z-non_vendu{background:#ddd;color:#555}
.q-star{background:#6E7645;color:#fff}.q-plowhorse{background:#C98A2B;color:#fff}.q-puzzle{background:#973756;color:#fff}.q-dog{background:#E50040;color:#fff}
.ft-dclic{background:#2f6f4f;color:#fff}.ft-editee{background:#3c5a99;color:#fff}.ft-zelty{background:#7a6a2f;color:#fff}.ft-generique{background:#fff;border:1px dashed var(--ochre);color:#8a5c12}.ft-aucune{background:#eee;color:#777}
.mention{background:var(--ochre);color:#fff}
.mute{color:var(--mute)}.small{font-size:12px}.neg{color:var(--red)}.pos{color:#2f7a3a}
form.inline{display:inline}input,select,button{font:inherit}input[type=number],input[type=text]{padding:4px 6px;border:1px solid #cfccc0;border-radius:6px}
input.w6{width:72px}button,.btn{background:var(--olive);color:#fff;border:0;border-radius:6px;padding:6px 12px;cursor:pointer;display:inline-block}
.btn.alt,button.alt{background:#fff;color:var(--olive);border:1px solid var(--olive)}button.danger{background:var(--red)}
.flash{padding:8px 12px;border-radius:6px;margin-bottom:10px}.flash.ok{background:#e6f2e1}.flash.err{background:#fde3e3}
details.perim{background:#26362c;color:#eee;padding:6px 20px}details.perim summary{cursor:pointer;color:var(--ochre)}
details.perim label{display:inline-block;margin:6px 16px 6px 0;vertical-align:top}details.perim select{min-width:200px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media(max-width:900px){.grid2{grid-template-columns:1fr}}
.bar{height:8px;background:#eee;border-radius:4px;overflow:hidden}.bar i{display:block;height:100%;background:var(--olive)}
.tabs a{margin-right:10px}.tabs a.on{font-weight:700;color:var(--ink)}
svg text{font-family:system-ui,sans-serif}
.legend span{margin-right:12px}

/* ───── parcours guidé ───── */
:root{--v-pilier:#2E7D4F;--v-rentabiliser:#C47A12;--v-faire_connaitre:#973756;--v-questionner:#3D63B8}
nav.steps{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
nav.steps>a{padding:5px 10px;border-radius:16px}nav.steps>a.on{background:#3a4b40;color:#fff}
nav.steps i{font-style:normal;display:inline-block;width:18px;height:18px;line-height:18px;text-align:center;border-radius:50%;background:var(--ochre);color:#1d2a22;font-size:11px;font-weight:700;margin-right:3px}
details.expert{position:relative;margin-left:8px;color:#e9e4d2}details.expert summary{cursor:pointer;list-style:none;padding:5px 10px}
details.expert>div{position:absolute;right:0;top:32px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:6px;z-index:10;min-width:210px;box-shadow:0 6px 20px rgba(0,0,0,.12)}
details.expert>div a{display:block;color:var(--ink);padding:6px 10px;margin:0;border-radius:6px}details.expert>div a:hover{background:#f3f1ea;text-decoration:none}
.lead{font-size:16px;color:#3b3f38;max-width:860px}
.hero{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:14px 0}
.hero .kpi b{font-size:28px}
.etapes{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0}@media(max-width:900px){.etapes{grid-template-columns:1fr 1fr}}
.etape{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:6px;color:var(--ink)}
.etape:hover{text-decoration:none;border-color:var(--olive)}.etape .num{font-size:12px;color:var(--mute);font-weight:600;letter-spacing:.5px}
.etape h3{margin:0;font-size:17px}.etape p{margin:0;color:var(--mute);font-size:13px}.etape .st{margin-top:auto;font-size:13px;font-weight:600}
.st-ok{color:#2f7a3a}.st-attention{color:#a8670b}.st-bloquant{color:var(--red)}
.ctrl{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-top:1px solid var(--line)}.ctrl:first-child{border-top:0}
.ctrl .pastille{flex:none;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff}
.p-ok{background:#2f7a3a}.p-attention{background:#c98a2b}.p-bloquant{background:var(--red)}
.constats{list-style:none;padding:0;margin:0}.constats li{padding:10px 0 10px 30px;border-top:1px solid var(--line);position:relative;font-size:15px}
.constats li:first-child{border-top:0}.constats li:before{content:"→";position:absolute;left:6px;color:var(--ochre);font-weight:700}
.verdicts{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}@media(max-width:1100px){.verdicts{grid-template-columns:1fr 1fr}}
.vcol{background:#fff;border:1px solid var(--line);border-top:5px solid var(--c);border-radius:10px;padding:12px}
.vcol h3{margin:0;color:var(--c);display:flex;align-items:center;gap:8px}.vcol h3 .ic{width:24px;height:24px;border-radius:50%;background:var(--c);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:13px}
.vcol .sous{font-size:12px;color:var(--mute);margin:2px 0 6px}.vcol .cons{font-size:13px;background:#faf9f4;border-radius:6px;padding:6px 8px;margin-bottom:8px}
.plat{display:block;padding:7px 0;border-top:1px solid #f0eee6;color:var(--ink)}.plat:hover{text-decoration:none;background:#fbfaf6}
.plat b{font-weight:600}.plat span{display:block;font-size:12px;color:var(--mute)}
.vtag{display:inline-block;padding:1px 8px;border-radius:10px;font-size:11px;font-weight:700;color:#fff;background:var(--c)}
.levier{display:flex;gap:12px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fff;margin-bottom:8px;align-items:flex-start}
.levier.reco{border-color:var(--olive);box-shadow:0 0 0 1px var(--olive) inset}
.levier input{margin-top:4px;transform:scale(1.3)}.levier .t{font-weight:600}.levier .w{font-size:13px;color:var(--mute)}
.levier .g{margin-left:auto;text-align:right;min-width:120px;font-weight:700;font-size:16px}.levier .g small{display:block;font-weight:400;font-size:11px;color:var(--mute)}
.barre{display:flex;align-items:center;gap:8px;margin:4px 0}.barre .lab{width:170px;font-size:13px}.barre .bg{flex:1;height:16px;background:#f0eee6;border-radius:4px;position:relative}
.barre .bg i{position:absolute;left:0;top:0;bottom:0;border-radius:4px}.barre .val{width:170px;font-size:12px;text-align:right;color:var(--mute)}
.ba{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.ba .kpi b{font-size:26px}
.cta{display:inline-block;background:var(--olive);color:#fff;padding:10px 18px;border-radius:8px;font-weight:600}.cta:hover{text-decoration:none;opacity:.92}
@media print{header,details.perim,.demo,.noprint,form button{display:none!important}body{background:#fff}.card{break-inside:avoid}}

/* ───── triptyque carte / caisse / FT ───── */
table.tripty td{padding:8px 10px}table.tripty tr.fam td{background:#26362c;color:#f3efe2;font-weight:600;font-size:13px;padding:5px 10px}
.chip{display:inline-flex;align-items:center;gap:6px;margin:2px 4px 2px 0;padding:3px 4px 3px 9px;border-radius:14px;font-size:13px;background:#e8f1e6;border:1px solid #9cc49a}
.chip.auto{background:#fff;border:1px dashed #b98a2a}.chip.zelty{background:#f4efdf;border:1px solid #d9caa0}
.chip small{color:var(--mute);font-size:11px}.chip .x{border:0;background:transparent;color:#999;cursor:pointer;padding:0 4px;font-size:15px;line-height:1}
.chip .x:hover{color:var(--red)}.manque{color:var(--red);font-size:13px;font-weight:600;margin-right:6px}
table.tripty input.add{display:block;margin-top:4px;width:100%;max-width:330px;font-size:12px;border:1px solid #e0ddd2;background:#fdfcf8}
.kpi.f{cursor:pointer}.kpi.f:hover{border-color:var(--olive);text-decoration:none}a.kpi{color:var(--ink)}a.kpi:hover{text-decoration:none}
@keyframes flashrow{from{background:#fff4c2}to{background:transparent}}tr.flash-row td{animation:flashrow 1.6s ease-out}

/* ───── carte visuelle (calques) ───── */
.calques{display:flex;gap:16px;align-items:center;flex-wrap:wrap;position:sticky;top:0;z-index:4}
.legende{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:8px 14px;font-size:13px}
.legende .grad{display:inline-block;width:160px;height:12px;border-radius:3px}
.g-v{background:linear-gradient(90deg,#eef5f0,#2E7D4F)}.g-m{background:linear-gradient(90deg,#f6edf0,#973756)}
.legende .pill{padding:2px 10px;border-radius:10px;border-left:4px solid var(--c);background:color-mix(in srgb,var(--c) 18%,#fff)}
.legende .nv,.mp-cell.nv{background:repeating-linear-gradient(135deg,#f1efe8 0 6px,#e3e0d6 6px 8px)!important;color:#8a877c!important}
.legende .nv{padding:2px 10px;border-radius:10px}
.menu-pages{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}@media(max-width:1000px){.menu-pages{grid-template-columns:1fr}}
.menu-page{background:#f6f2e7;border:1px solid #d8d0b8;border-radius:6px;padding:18px 22px;box-shadow:0 2px 10px rgba(0,0,0,.06);font-family:Georgia,"Times New Roman",serif}
.mp-head{display:flex;justify-content:space-between;border-bottom:2px solid #1d2a22;padding-bottom:6px;margin-bottom:6px;font-family:system-ui,sans-serif;font-weight:700;letter-spacing:1px;background:none;color:var(--ink)}
.mp-sec{color:#b08a3e;font-size:19px;letter-spacing:.5px;text-transform:uppercase;margin:16px 0 6px;font-weight:700}
.mp-plat{display:flex;gap:10px;align-items:flex-start;padding:5px 0;border-bottom:1px dotted #d6cdb3}
.mp-nom{flex:1;font-weight:700;font-size:14px;text-transform:uppercase;letter-spacing:.3px}
.mp-desc{font-weight:400;text-transform:none;font-size:11.5px;color:#6b6656;letter-spacing:0}
.mp-prix{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end;max-width:58%}
.mp-cell{position:relative;display:flex;flex-direction:column;align-items:flex-end;min-width:74px;padding:3px 8px;border-radius:5px;color:var(--ink);
  font-family:system-ui,sans-serif;font-size:13px;line-height:1.25;border:1px solid transparent;transition:background .25s}
.mp-cell:hover{text-decoration:none;outline:2px solid #1d2a22}
.mp-cell .fmt{font-size:10px;color:inherit;opacity:.8;text-transform:uppercase}.mp-cell .num{font-size:10.5px;opacity:.85;white-space:nowrap}
.mp-cell .vic{position:absolute;top:-6px;left:-6px;font-style:normal;font-size:10px;width:16px;height:16px;border-radius:50%;display:none;align-items:center;justify-content:center;color:#fff}
.sans-chiffres .mp-cell .num{display:none}
[data-mode=verdict] .mp-cell{background:#fffdf7;border-left:5px solid #ccc}
[data-mode=verdict] .mp-cell .vic{display:flex}
[data-mode=verdict] .mp-cell[data-v=pilier]{background:color-mix(in srgb,#2E7D4F 22%,#fff);border-left-color:#2E7D4F}
[data-mode=verdict] .mp-cell[data-v=rentabiliser]{background:color-mix(in srgb,#C47A12 22%,#fff);border-left-color:#C47A12}
[data-mode=verdict] .mp-cell[data-v=faire_connaitre]{background:color-mix(in srgb,#973756 20%,#fff);border-left-color:#973756}
[data-mode=verdict] .mp-cell[data-v=questionner]{background:color-mix(in srgb,#3D63B8 20%,#fff);border-left-color:#3D63B8}
.mp-cell[data-v=pilier] .vic{background:#2E7D4F}.mp-cell[data-v=rentabiliser] .vic{background:#C47A12}
.mp-cell[data-v=faire_connaitre] .vic{background:#973756}.mp-cell[data-v=questionner] .vic{background:#3D63B8}
[data-mode=ft] .mp-cell{border-left:5px solid #ccc;background:#fffdf7}
[data-mode=ft] .mp-cell[data-ft=dclic]{background:color-mix(in srgb,#2E7D4F 20%,#fff);border-left-color:#2E7D4F}
[data-mode=ft] .mp-cell[data-ft=zelty]{background:color-mix(in srgb,#7a6a2f 20%,#fff);border-left-color:#7a6a2f}
[data-mode=ft] .mp-cell[data-ft=editee]{background:color-mix(in srgb,#3c5a99 20%,#fff);border-left-color:#3c5a99}
[data-mode=ft] .mp-cell[data-ft=generique]{background:color-mix(in srgb,#C47A12 18%,#fff);border-left-color:#C47A12;border-style:dashed}
[data-mode=ft] .mp-cell.nv{background:#fffdf7!important;color:var(--ink)!important}
.orig{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px}.orig img{width:100%;border:1px solid var(--line)}

/* ───── carte réelle avec calque ───── */
.menu-pages.reelle{grid-template-columns:repeat(2,minmax(0,1fr))}
.vr-page{background:#fff;border:1px solid var(--line);border-radius:8px;padding:10px;box-shadow:0 2px 10px rgba(0,0,0,.06)}
.vr-page .mp-head{margin:0 4px 8px}
.vr-wrap{position:relative;line-height:0}.vr-wrap img{width:100%;height:auto;display:block;border-radius:3px}
.vr-z{position:absolute;display:block;border-radius:3px;mix-blend-mode:multiply;transition:background .25s,box-shadow .2s;line-height:1.1}
.vr-z:hover{outline:2px solid #1d2a22;z-index:3;mix-blend-mode:normal;background-blend-mode:normal}
.vr-z .vr-tag{position:absolute;right:52px;top:50%;transform:translateY(-50%);white-space:nowrap;font:700 10px/1.2 system-ui,sans-serif;color:#fff;
  background:rgba(29,42,34,.88);padding:2px 6px;border-radius:4px;mix-blend-mode:normal;pointer-events:none;box-shadow:0 1px 3px rgba(0,0,0,.25)}
.vr-z.prix .vr-tag{right:0;top:100%;transform:none;margin:1px 0 0;font-size:9.5px;padding:1px 4px}
.vr-z.encart .vr-tag{top:6px;right:6px;transform:none}
.sans-chiffres .vr-z .vr-tag{display:none}.vr-z:hover .vr-tag{display:block!important;z-index:4}
.vr-z .vic{position:absolute;left:-7px;top:50%;transform:translateY(-50%);width:15px;height:15px;border-radius:50%;display:none;align-items:center;justify-content:center;
  color:#fff;font:700 9px system-ui;mix-blend-mode:normal}
[data-mode=ventes] .vr-z.nv,[data-mode=marge] .vr-z.nv,[data-mode=verdict] .vr-z.nv{background:repeating-linear-gradient(135deg,rgba(229,0,64,.30) 0 5px,rgba(229,0,64,.08) 5px 9px)}
[data-mode=verdict] .vr-z{background:rgba(0,0,0,.05)}[data-mode=verdict] .vr-z .vic{display:flex}
[data-mode=verdict] .vr-z[data-v=pilier]{background:rgba(46,125,79,.42)}[data-mode=verdict] .vr-z[data-v=rentabiliser]{background:rgba(196,122,18,.45)}
[data-mode=verdict] .vr-z[data-v=faire_connaitre]{background:rgba(151,55,86,.40)}[data-mode=verdict] .vr-z[data-v=questionner]{background:rgba(61,99,184,.42)}
.vr-z[data-v=pilier] .vic{background:#2E7D4F}.vr-z[data-v=rentabiliser] .vic{background:#C47A12}.vr-z[data-v=faire_connaitre] .vic{background:#973756}.vr-z[data-v=questionner] .vic{background:#3D63B8}
[data-mode=ft] .vr-z{background:rgba(0,0,0,.04)}
[data-mode=ft] .vr-z[data-ft=dclic]{background:rgba(46,125,79,.40)}[data-mode=ft] .vr-z[data-ft=zelty]{background:rgba(122,106,47,.42)}
[data-mode=ft] .vr-z[data-ft=editee]{background:rgba(60,90,153,.40)}[data-mode=ft] .vr-z[data-ft=generique]{background:rgba(196,122,18,.35);outline:1px dashed #C47A12}
@media(max-width:1000px){.menu-pages.reelle{grid-template-columns:1fr}}

.menu-pages.reelle.grand{grid-template-columns:1fr;max-width:1000px;margin:0 auto}
.menu-pages.reelle .vr-z .vr-tag{font-size:10px}
.menu-pages.reelle.grand .vr-z .vr-tag{font-size:12px}
/* contour coloré : reste lisible sur les fonds sombres (encart salades, cave à vins) */
[data-mode=verdict] .vr-z[data-v=pilier]{box-shadow:inset 0 0 0 2px #2E7D4F}[data-mode=verdict] .vr-z[data-v=rentabiliser]{box-shadow:inset 0 0 0 2px #C47A12}
[data-mode=verdict] .vr-z[data-v=faire_connaitre]{box-shadow:inset 0 0 0 2px #973756}[data-mode=verdict] .vr-z[data-v=questionner]{box-shadow:inset 0 0 0 2px #3D63B8}
.vr-z.nv{box-shadow:inset 0 0 0 2px rgba(229,0,64,.7)!important}

/* ---- Carte visuelle : 4 classes nettes (cœur / suivants / complément / traîne) + rangs + mise en lumière ---- */
:root{--q4:#1f6b40;--q3:#4f9a6a;--q2:#9cc9a8;--q1:#e3efe6;--m4:#7d2347;--m3:#b0567a;--m2:#d9a3b8;--m1:#f3e4ea}
.cl{padding:3px 10px;border-radius:10px;font-size:12px;margin-right:4px;display:inline-block}
.cl.q.c4{background:var(--q4);color:#fff}.cl.q.c3{background:var(--q3);color:#fff}.cl.q.c2{background:var(--q2)}.cl.q.c1{background:var(--q1)}
.cl.m.c4{background:var(--m4);color:#fff}.cl.m.c3{background:var(--m3);color:#fff}.cl.m.c2{background:var(--m2)}.cl.m.c1{background:var(--m1)}
/* carte reconstituée */
[data-mode=ventes] .mp-cell[data-cq="4"]{background:var(--q4);color:#fff}[data-mode=ventes] .mp-cell[data-cq="3"]{background:var(--q3);color:#fff}
[data-mode=ventes] .mp-cell[data-cq="2"]{background:var(--q2)}[data-mode=ventes] .mp-cell[data-cq="1"]{background:var(--q1)}
[data-mode=marge] .mp-cell[data-cm="4"]{background:var(--m4);color:#fff}[data-mode=marge] .mp-cell[data-cm="3"]{background:var(--m3);color:#fff}
[data-mode=marge] .mp-cell[data-cm="2"]{background:var(--m2)}[data-mode=marge] .mp-cell[data-cm="1"]{background:var(--m1)}
.mp-cell{position:relative}
/* carte réelle : aplats en multiply (le texte de la carte reste lisible) */
[data-mode=ventes] .vr-z[data-cq="4"]{background:rgba(31,107,64,.55);box-shadow:inset 0 0 0 3px #0f4a2a}
[data-mode=ventes] .vr-z[data-cq="3"]{background:rgba(79,154,106,.36);box-shadow:inset 0 0 0 2px #3c8458}
[data-mode=ventes] .vr-z[data-cq="2"]{background:rgba(156,201,168,.30);box-shadow:inset 0 0 0 1px #8dbb9a}
[data-mode=ventes] .vr-z[data-cq="1"]{background:rgba(200,215,205,.12);box-shadow:inset 0 0 0 1px #c3d3c8}
[data-mode=marge] .vr-z[data-cm="4"]{background:rgba(125,35,71,.50);box-shadow:inset 0 0 0 3px #5a1631}
[data-mode=marge] .vr-z[data-cm="3"]{background:rgba(176,86,122,.34);box-shadow:inset 0 0 0 2px #9a4568}
[data-mode=marge] .vr-z[data-cm="2"]{background:rgba(217,163,184,.30);box-shadow:inset 0 0 0 1px #cf93aa}
[data-mode=marge] .vr-z[data-cm="1"]{background:rgba(225,205,212,.12);box-shadow:inset 0 0 0 1px #dcc5cd}
[data-mode=marge] .vr-z[data-cm="0"].nv,[data-mode=ventes] .vr-z[data-cq="0"].nv{mix-blend-mode:multiply}
/* médaillons de rang */
.rk{display:inline-flex;align-items:center;justify-content:center;min-width:19px;height:19px;padding:0 4px;border-radius:10px;font:700 11px/1 system-ui,sans-serif;
  background:#1d2a22;color:#fff;border:2px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,.35)}
.vr-wrap .rk.flot,.mp-cell .rk{position:absolute;transform:translate(-60%,-50%);display:none;z-index:4;line-height:1}
.mp-cell .rk{left:0;top:50%}
.spotlight .rk.flot.eteint{display:none!important}
.vr-z{isolation:auto}
[data-mode=ventes] .rk.rq,[data-mode=marge] .rk.rm{display:inline-flex}
.legende .rk{position:static;transform:none;display:inline-flex;margin:0 2px}
/* mise en lumière */
.spotlight .vr-z.eteint{background:rgba(255,255,255,.72)!important;box-shadow:none!important;mix-blend-mode:normal}
.spotlight .vr-z.eteint .vr-tag,.spotlight .vr-z.eteint .vic{display:none!important}
.spotlight .mp-cell.eteint{opacity:.28}
.vr-z.pointe,.mp-cell.pointe{outline:3px solid #E50040;outline-offset:2px;z-index:5}
.calques .spot{display:inline-flex;gap:10px;align-items:center;margin-left:14px;padding-left:14px;border-left:1px solid var(--line)}
/* podium */
.podium .pod{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.podium h4{margin:0 0 6px;font-size:13px}
.podium ol{list-style:none;margin:0;padding:0;columns:1}
.podium li a{display:flex;align-items:center;gap:8px;padding:3px 4px;border-radius:5px;color:var(--ink);text-decoration:none;font-size:13px}
.podium li a:hover{background:#f4f1e8}
.podium li em{margin-left:auto;font-style:normal;color:var(--mute);font-variant-numeric:tabular-nums}
.podium .rk{border-color:transparent;box-shadow:none}
.podium .rk.c4{background:var(--q4)}.podium .rk.c3{background:var(--q3)}.podium .rk.c2{background:var(--q2);color:#1d2a22}.podium .rk.c1{background:var(--q1);color:#1d2a22}
.podium .pod-m .rk.c4{background:var(--m4)}.podium .pod-m .rk.c3{background:var(--m3)}.podium .pod-m .rk.c2{background:var(--m2)}.podium .pod-m .rk.c1{background:var(--m1)}
@media (max-width:760px){.podium .pod{grid-template-columns:1fr}}
@media print{.rk{print-color-adjust:exact;-webkit-print-color-adjust:exact}}
/* calque Alertes & Dérives */
[data-mode=alertes] .mp-cell{background:#fffdf7;border-left:5px solid #ccc}
[data-mode=alertes] .mp-cell[data-al=derive_achat]{background:color-mix(in srgb,#C47A12 24%,#fff);border-left-color:#C47A12}
[data-mode=alertes] .mp-cell[data-al=chute_ventes]{background:color-mix(in srgb,#E50040 22%,#fff);border-left-color:#E50040}
[data-mode=alertes] .mp-cell[data-al=fuite_caisse]{background:color-mix(in srgb,#3D63B8 22%,#fff);border-left-color:#3D63B8}
[data-mode=alertes] .mp-cell[data-al=marge_faible]{background:color-mix(in srgb,#973756 22%,#fff);border-left-color:#973756}
[data-mode=alertes] .mp-cell[data-al=ok]{background:color-mix(in srgb,#2E7D4F 15%,#fff);border-left-color:#2E7D4F}
[data-mode=alertes] .vr-z{background:rgba(0,0,0,.04)}
[data-mode=alertes] .vr-z[data-al=derive_achat]{background:rgba(196,122,18,.48);box-shadow:inset 0 0 0 2px #C47A12}
[data-mode=alertes] .vr-z[data-al=chute_ventes]{background:rgba(229,0,64,.45);box-shadow:inset 0 0 0 2px #E50040}
[data-mode=alertes] .vr-z[data-al=fuite_caisse]{background:rgba(61,99,184,.45);box-shadow:inset 0 0 0 2px #3D63B8}
[data-mode=alertes] .vr-z[data-al=marge_faible]{background:rgba(151,55,86,.42);box-shadow:inset 0 0 0 2px #973756}
[data-mode=alertes] .vr-z[data-al=ok]{background:rgba(46,125,79,.22);box-shadow:inset 0 0 0 1px #2E7D4F}

/* --- Cockpit Pilotage 30j (/pilotage) --- */
.pil-top{display:flex;align-items:center;gap:16px;margin-bottom:12px;flex-wrap:wrap}
.traj-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:14px}
.traj-card{background:var(--card);border:1px solid var(--line);border-left:5px solid var(--olive);border-radius:10px;padding:12px 16px}
.traj-card.risk{border-left-color:var(--red);background:#fff9f8}
.traj-card.gain{border-left-color:#2E7D4F;background:#f6fbf7}
.traj-kicker{font-size:11px;font-weight:800;letter-spacing:.05em;color:var(--mute);display:block;margin-bottom:4px}
.traj-val{font-size:24px;font-weight:800;line-height:1.15;margin-bottom:4px}
.traj-val small{font-size:13px;font-weight:600;color:var(--mute)}
.traj-sub{font-size:12px;color:var(--mute);line-height:1.35}

.pil-split{display:grid;grid-template-columns:56% 44%;gap:16px;align-items:start}
@media(max-width:1100px){.traj-grid,.pil-split{grid-template-columns:1fr}}
.pil-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 14px;margin-bottom:8px}
.pil-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:16px;background:#f0eee6;font-size:12px;font-weight:600;cursor:pointer}

/* Slider Page par Page de la Carte Visuelle */
.page-slider-bar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;background:#1d2a22;color:#f3efe2;padding:8px 12px;border-radius:10px;margin-bottom:10px}
.ps-nav{background:#324438;color:#fff;border:1px solid #4a6152;border-radius:6px;padding:6px 10px;font-size:12px;font-weight:700;cursor:pointer}
.ps-nav:hover{background:#435a4b}
.ps-tabs{display:flex;gap:6px;flex:1;justify-content:center;flex-wrap:wrap}
.ps-tab{background:#29392f;color:#d8d4c5;border:1px solid #3f5246;border-radius:7px;padding:5px 11px;font-size:12px;cursor:pointer;text-align:left;line-height:1.25;transition:all .15s}
.ps-tab b{display:block;font-size:12px;color:#fff}
.ps-tab small{font-size:11px;color:#b8b4a4}
.ps-tab.on{background:var(--ochre);color:#1d2a22;border-color:#e5a948;font-weight:700;box-shadow:0 2px 6px rgba(0,0,0,.25)}
.ps-tab.on b,.ps-tab.on small{color:#1d2a22;font-weight:700}

.pil-map{grid-template-columns:repeat(2,1fr);gap:12px}
.pil-map.slider-mode{grid-template-columns:1fr!important}
.pil-map.slider-mode .vr-z .vr-tag{font-size:11px;padding:2px 6px}
.mp-head-rich{background:#1d2a22;color:#f3efe2;padding:8px 12px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;font-size:12px}
.mp-head-rich .mp-title{font-weight:800;letter-spacing:.06em;font-size:13px;color:var(--ochre)}
.mp-head-rich .mp-kpis{display:flex;gap:12px;flex-wrap:wrap;font-weight:500}
.mp-head-rich .mp-kpis b{color:#fff}

.vr-z.decided,.mp-cell.decided{background:rgba(46,125,79,.42)!important;box-shadow:0 0 0 2px #1B5E20,inset 0 0 0 1px #fff!important}
.vr-z.decided .vr-tag{background:#1B5E20;color:#fff;opacity:1}
.spotlight .vr-z.pointe{background:rgba(229,0,64,.28)!important;box-shadow:0 0 0 3px #E50040,inset 0 0 0 2px #fff!important;mix-blend-mode:normal;z-index:10}
.spotlight .vr-z.pointe .vr-tag{display:inline-block!important;background:#E50040!important;color:#fff!important;opacity:1!important}
.spotlight .mp-cell.pointe{opacity:1!important;background:#fff0f3!important;outline:3px solid #E50040}

.pil-right{position:sticky;top:58px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px;max-height:calc(100vh - 74px);overflow-y:auto}
.pil-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:12px;background:#f0eee6;padding:4px;border-radius:8px}
.ptab{border:0;background:transparent;padding:8px 6px;border-radius:6px;font-size:12px;font-weight:700;color:var(--mute);cursor:pointer}
.ptab.on{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.1)}

/* Sélecteur de périmètre (Top 10, Top 20, 50% CA, 80% CA) */
.scope-bar{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:8px}
.scope-btn{background:#f0eee6;color:var(--ink);border:1px solid #d5d2c6;border-radius:6px;padding:5px 9px;font-size:12px;font-weight:600;cursor:pointer;transition:all .12s}
.scope-btn:hover{border-color:var(--olive);background:#e6e3d6}
.scope-btn.on{background:#1d2a22;color:#fff;border-color:#1d2a22}
.scope-kpi-box{background:#faf8f1;border:1px solid #e2dec9;border-left:4px solid var(--ochre);border-radius:7px;padding:8px 10px;margin-bottom:10px;font-size:12px;line-height:1.4}

.pcard{border:1px solid var(--line);border-radius:8px;padding:10px 12px;margin-bottom:9px;background:#fff;color:var(--ink);transition:border-color .15s,box-shadow .15s,background .15s}
.pcard:hover{border-color:var(--olive);box-shadow:0 2px 8px rgba(0,0,0,.06)}
.pcard.active-card{background:#f2f8f4!important;border:2px solid #2E7D4F!important;color:var(--ink)!important;box-shadow:0 3px 10px rgba(46,125,79,.15)}
.pcard-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px}
.pcard-title{font-weight:800;font-size:14px;color:var(--ink);text-decoration:none}
.pcard-title:hover{text-decoration:underline;color:var(--olive)}
.pcard-meta{font-size:12px;color:var(--mute);margin-bottom:4px}
.pcard-diag{font-size:12px;color:#333;background:#f8f6f0;padding:5px 8px;border-radius:5px;margin-bottom:8px}
.pcard-btns{display:flex;gap:6px;flex-wrap:wrap}

.act-btn{flex:1;min-width:135px;display:flex;justify-content:space-between;align-items:center;gap:6px;padding:7px 10px;border:1px solid #cbd5ce;border-radius:6px;background:#f7faf8;color:var(--ink);font-size:12px;cursor:pointer;transition:all .12s}
.act-btn:hover{border-color:#2E7D4F;background:#eef7f0;color:var(--ink)}
.act-btn b{color:#2E7D4F;white-space:nowrap}
.act-btn.on{background:#2E7D4F!important;border-color:#1b5e20!important;color:#fff!important;font-weight:600}
.act-btn.on span,.act-btn.on b{color:#fff!important}
.act-btn.ghost{flex:0 0 auto;min-width:auto;background:#f4f2ec;border-color:var(--line);color:var(--ink)}
.act-btn.ghost:hover{background:#e7e4da}

.mat-bars{background:#faf9f5;border:1px solid #ece9df;border-radius:6px;padding:6px 10px;margin:6px 0;font-size:12px}
.mat-row{display:flex;justify-content:space-between;padding:2px 0}

.sl-row{display:flex;flex-direction:column;gap:2px;margin-bottom:7px;font-size:12px}
.sl-row input[type=range]{width:100%;accent-color:var(--olive)}

.ft-box{background:#faf9f4;border:1px solid var(--line);border-radius:8px;padding:10px 12px;margin-top:10px}
.ft-edit-table input[type=text],.ft-edit-table input[type=number]{width:100%;padding:3px 5px;font-size:12px}

.pil-modal{position:fixed;inset:0;background:rgba(20,25,22,.55);z-index:100;display:flex;align-items:center;justify-content:center;padding:20px}
.pil-modal-box{background:#fff;border-radius:12px;max-width:780px;width:100%;max-height:85vh;overflow-y:auto;padding:20px 24px;box-shadow:0 12px 40px rgba(0,0,0,.25)}

/* ───────── Mode réunion : 3 écrans simples ───────── */
header nav.reunion-nav a{background:rgba(255,255,255,.08);color:#fff;font-weight:700;padding:8px 16px;border-radius:20px;margin-right:8px}
header nav.reunion-nav a.on{background:#C98A2B;color:#fff}
header nav.reunion-nav a.quitter{background:none;border:1px solid rgba(255,255,255,.3);font-weight:500;font-size:12px;margin-left:18px;color:#d8d2bd}
.r-head h1{font-size:30px;margin:6px 0 4px}.r-head .lead{font-size:16px;max-width:900px}
.r-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin:16px 0}
.r-kpis>div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 18px}
.r-kpis b{display:block;font-size:30px;line-height:1.15;font-variant-numeric:tabular-nums}.r-kpis span{color:var(--mute);font-size:13px}
.r-ctrl{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:22px;overflow:hidden;background:#f4f1e8}
.seg button{background:none;color:var(--ink);border:0;border-radius:0;padding:8px 16px;font-weight:600;font-size:14px}
.seg button.on{background:#1d2a22;color:#fff}
.r-leg{margin-left:auto}
.r-grid{display:grid;grid-template-columns:360px 1fr;gap:16px;align-items:start}
.r-podium{position:sticky;top:10px}
.r-podium .pod{display:block}.r-podium .pod>div{margin-bottom:14px}
.r-podium li a{cursor:default}
.r-pages{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.r-pages .vr-z{cursor:default}
.r-pages .vr-z.nr{background:none!important;box-shadow:inset 0 0 0 1px rgba(0,0,0,.18)!important;border:none}
.r-pages .vr-z.nr .vr-tag{display:none}
.r-pages .vr-z .vr-tag{display:none}.r-pages .vr-z:hover .vr-tag{display:block}
.r-next{margin-top:18px}.cta.ghost{background:none;color:var(--olive);border:1px solid var(--olive)}
@media (max-width:1100px){.r-grid{grid-template-columns:1fr}.r-podium{position:static}.r-pages{grid-template-columns:1fr}}
/* marché */
.r-blocs{display:flex;flex-direction:column;gap:6px}
.r-bloc{border:1px solid var(--line);border-radius:8px;padding:0}
.r-bloc summary{display:grid;grid-template-columns:200px 1fr 230px 190px;gap:14px;align-items:center;padding:10px 14px;cursor:pointer;list-style:none}
.r-bloc summary::-webkit-details-marker{display:none}
.r-bn{font-weight:700}
.r-bars{display:flex;flex-direction:column;gap:3px}
.r-bar{display:block;height:20px;border-radius:4px;position:relative;min-width:120px}
.r-bar i{position:absolute;left:8px;top:2px;font:600 12px/16px system-ui,sans-serif;font-style:normal;white-space:nowrap}
.r-bar.vous{background:#2E7D4F}.r-bar.vous i{color:#fff}
.r-bar.marche{background:#d9d4c4}.r-bar.marche i{color:#1d2a22}
.r-lect{font-weight:700;font-size:14px}.r-lect.eq{color:#2E7D4F}.r-lect.up{color:#9a5b0c}.r-lect.dn{color:#3D63B8}
.r-avis{font-size:13px}
.r-ex,.r-conc{width:100%;border-collapse:collapse;font-size:13px}
.r-ex{margin:0 14px 12px;width:calc(100% - 28px)}
.r-ex th,.r-ex td,.r-conc th,.r-conc td{padding:6px 8px;border-bottom:1px solid var(--line);text-align:left}
.r-ex .num,.r-conc .num{text-align:right;font-variant-numeric:tabular-nums}
@media (max-width:900px){.r-bloc summary{grid-template-columns:1fr}}
/* actions */
.r-gain{display:flex;align-items:center;gap:18px;background:#1d2a22;color:#fff;border-radius:14px;padding:18px 24px;margin:16px 0}
.r-gain b{font-size:42px;color:#9be0b4;font-variant-numeric:tabular-nums}.r-gain span{font-size:16px}.r-gain small{color:#c9c3ae}
.r-acts{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;margin-bottom:14px}
.r-act{position:relative;padding:18px 18px 14px 18px;margin:0;display:flex;flex-direction:column}
.r-act h3{margin:0 0 4px 40px;font-size:19px}.r-act .r-quoi{margin:0 0 10px 40px;color:var(--mute)}
.r-num{position:absolute;left:16px;top:16px;width:30px;height:30px;border-radius:50%;background:#C98A2B;color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center}
.r-pq{list-style:none;padding:0;margin:0 0 10px;font-size:14px}.r-pq li{padding:4px 0;border-bottom:1px dashed var(--line)}
.r-g{margin:auto 0 0;font-size:24px;font-weight:700;color:#2E7D4F}.r-g small{font-size:13px;color:var(--mute);font-weight:500}
.r-q li{margin-bottom:8px}
@media print{header nav.reunion-nav,.r-ctrl,.r-next{display:none}}
.r-podium li em{white-space:nowrap}

/* mode réunion v2 : fiche plat, écarts caisse, achats, avis */
.num.dn,.dn{color:#b3261e}.up{color:#2E7D4F}
.r-conc tr.tot td{border-top:2px solid var(--ink);font-weight:600}
.cl-fiche{cursor:pointer}.cl-fiche:hover td{background:#f6f3ea}
.r-pages .vr-z,.r-podium a{cursor:pointer!important}
.rf-voile{position:fixed;inset:0;background:rgba(20,24,20,.28);opacity:0;pointer-events:none;transition:opacity .2s;z-index:40}
.rf-panel{position:fixed;top:0;right:0;bottom:0;width:min(560px,100vw);background:#fff;box-shadow:-8px 0 30px rgba(0,0,0,.18);transform:translateX(105%);transition:transform .25s;z-index:41;overflow:auto;padding:18px 22px 30px}
body.rf-ouvert .rf-voile{opacity:1;pointer-events:auto}body.rf-ouvert .rf-panel{transform:none}
.rf-head{display:flex;align-items:flex-start;gap:10px}.rf-head h2{margin:2px 0 10px;font-size:22px}.rf-fam{color:var(--mute);font-size:12px;text-transform:uppercase;letter-spacing:.4px}
.rf-close{margin-left:auto;background:#f1eee4;color:var(--ink);border-radius:50%;width:32px;height:32px;padding:0}
.rf-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;margin-bottom:6px}
.rf-kpis>div{background:#f7f5ef;border-radius:8px;padding:8px 10px}.rf-kpis b{display:block;font-size:20px;font-variant-numeric:tabular-nums}.rf-kpis span{font-size:12px;color:var(--mute)}
.rf-panel h3{font-size:15px;margin:16px 0 6px}
.rf-calc,.rf-ft{width:100%;border-collapse:collapse;font-size:14px}
.rf-calc td,.rf-ft td,.rf-ft th{padding:5px 6px;border-bottom:1px solid var(--line);text-align:left}
.rf-calc .num,.rf-ft .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.rf-calc tr.tot td{font-weight:700;font-size:16px;border-top:2px solid var(--ink);border-bottom:0}
.rf-ft{font-size:13px}.rf-ft tr.sous td{color:var(--mute);font-size:12px;padding-left:18px}
.rf-src{padding:1px 6px;border-radius:8px;font-size:11px}.rf-src.ok{background:#e3efe6;color:#1f6b40}.rf-src.est{background:#fbeedd;color:#8a5c12}
.rf-mois{display:flex;gap:14px;align-items:flex-end;height:110px}
.rf-mois>div{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;font-size:12px;min-width:60px}
.rf-b{display:block;width:34px;background:#4f9a6a;border-radius:3px 3px 0 0;margin-bottom:3px}.rf-mois small{color:var(--mute)}
.rf-h{padding-left:18px;font-size:13px}.rf-h li{margin-bottom:4px}
.r-mat td{vertical-align:top}
.r-ratio{display:flex;align-items:center;gap:8px;min-width:170px}
.r-ratio-b{display:block;height:12px;border-radius:3px;max-width:110px;flex:0 0 auto}
.r-ratio-b.ok{background:#4f9a6a}.r-ratio-b.att{background:#d39a3a}.r-ratio-b.fort{background:#c0533f}
.r-topics{line-height:2.1}.r-tp{display:inline-block;background:#f1eee4;border-radius:14px;padding:0 10px;margin:0 4px 0 0;font-weight:600}.r-tp small{color:var(--mute);font-weight:500;font-size:11px}
.r-vig{background:#fbf3e6;border-left:4px solid #C47A12;padding:8px 12px;border-radius:6px;margin:8px 0 12px}
.r-vig blockquote{margin:6px 0 0;font-style:italic}
.r-verb{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px}
.r-verb h4{margin:0 0 4px}.r-verb p{margin:0 0 6px;font-size:13px;font-style:italic}
.r-conc .num{white-space:nowrap}
.r-pages .rk.flot.cache{display:none!important}
.r-podium{max-height:calc(100vh - 20px);overflow:auto}

/* mode réunion : achats ramenés au périmètre */
.seg a{display:inline-block;padding:8px 16px;font-weight:600;font-size:14px;color:var(--ink);text-decoration:none}
.seg a.on{background:#1d2a22;color:#fff}
.r-pl{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin:14px 0 8px}
.r-pl>div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 18px}
.r-pl .k{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.4px;color:var(--mute)}
.r-pl b{display:block;font-size:28px;margin:2px 0 4px;font-variant-numeric:tabular-nums}.r-pl b small{font-size:14px;font-weight:500}
.r-pl span{font-size:13px}
.r-concl{background:#1d2a22;color:#fff;border-radius:10px;padding:12px 18px;font-size:15px;margin:0 0 14px}
.r-concl:empty{display:none}
.r-perim td{vertical-align:top}.r-perim tr.grp td{background:#f4f1e8;font-weight:700;text-transform:uppercase;font-size:12px;letter-spacing:.4px}
.r-perim .rk{position:static;transform:none;display:inline-flex;border-color:transparent;box-shadow:none}
.r-perim .rk.c4,.r-mat .rk.c4{background:var(--q4)}.r-perim .rk.c3,.r-mat .rk.c3{background:var(--q3)}.r-perim .rk.c2,.r-mat .rk.c2{background:var(--q2);color:#1d2a22}.r-perim .rk.c1,.r-mat .rk.c1{background:var(--q1);color:#1d2a22}
.r-mat .rk{position:static;transform:none;display:inline-flex;min-width:16px;height:16px;font-size:10px;border:0;box-shadow:none}
.r-pp{display:inline-block;border-radius:10px;padding:1px 8px;margin:0 4px 3px 0;font-weight:600;white-space:nowrap}
.r-pp.ok{background:#e3efe6;color:#1f6b40}.r-pp.att{background:#fbeedd;color:#8a5c12}.r-pp.fort{background:#f8e1dc;color:#9b2c1c}
.r-mat tr.hors td{opacity:.5}
.r-src{display:inline-block;padding:0 7px;border-radius:8px;font-size:11px;font-weight:600;white-space:nowrap}
.r-src.ok{background:#e3efe6;color:#1f6b40}.r-src.fac{background:#e6ecf7;color:#2f4f8a}.r-src.est{background:#fbeedd;color:#8a5c12}

/* mode réunion : simulateur de marge */
.r-sim{border:2px solid #1d2a22}
.sim-res{display:flex;flex-wrap:wrap;gap:12px;align-items:stretch;margin:6px 0 12px}
.sim-res>div{background:#f7f5ef;border-radius:10px;padding:10px 16px;min-width:170px}
.sim-res>div.fl{background:none;display:flex;align-items:center;font-size:26px;min-width:0;padding:0}
.sim-res .k{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--mute)}
.sim-res b{display:block;font-size:26px;font-variant-numeric:tabular-nums}.sim-res span{font-size:13px}
.sim-glob{display:flex;flex-wrap:wrap;gap:14px;align-items:center;background:#faf8f2;border:1px solid var(--line);border-radius:8px;padding:8px 12px;margin-bottom:8px;font-size:13px}
.sim-glob select,.sim-glob input[type=number]{padding:3px 6px}
.sim-t input[type=number]{width:72px;text-align:right;padding:3px 6px;font-variant-numeric:tabular-nums}
.sim-t td{vertical-align:middle}.sim-t tr.grp td{background:#f4f1e8;font-weight:700;text-transform:uppercase;font-size:12px}
.sim-t .s-dm.up{color:#2E7D4F;font-weight:700}.sim-t .s-dm.dn{color:#b3261e;font-weight:700}
@media print{.sim-glob{display:none}}
.sim-t .s-cv{display:inline-block;min-width:118px;text-align:right;font-variant-numeric:tabular-nums;margin-right:6px}
.sim-t .s-cv s{color:var(--mute);font-weight:400}.sim-t .s-cv small{color:var(--mute);margin-left:2px}
.r-perim th.c-sys,.r-perim td.c-sys{background:#fbfaf6}
.r-perim tr.r-h2 th{background:none;border:0;padding-bottom:0}.r-perim tr.r-h2 th.c-sys{background:#efece2;text-align:center;font-size:12px;border-radius:6px 6px 0 0}
.r-perim td.c-sys.on{background:#e3efe6;font-weight:700}
.r-perim td.c-ret{border-left:2px solid var(--line)}
.r-ecs{display:inline-block;margin-left:4px;padding:0 6px;border-radius:8px;font-size:11px;font-weight:700;background:#f8e1dc;color:#9b2c1c;white-space:nowrap}
.r-uni{background:#f4f1e8;border-radius:8px;padding:8px 12px;margin:10px 0 4px}
.r-perim td:nth-child(2){min-width:170px}

/* mode réunion : modale fiche ↔ factures */
tr.r-clic{cursor:pointer}tr.r-clic:hover td{background:#f6f3ea!important}
.md-voile{position:fixed;inset:0;background:rgba(20,24,20,.4);opacity:0;pointer-events:none;transition:opacity .2s;z-index:50}
.md-box{position:fixed;left:50%;top:50%;transform:translate(-50%,-48%);width:min(1100px,94vw);max-height:88vh;overflow:auto;background:#fff;border-radius:14px;
  box-shadow:0 20px 60px rgba(0,0,0,.3);padding:20px 24px 24px;z-index:51;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}
body.md-ouvert .md-voile{opacity:1;pointer-events:auto}body.md-ouvert .md-box{opacity:1;pointer-events:auto;transform:translate(-50%,-50%)}
.md-head{display:flex;gap:12px;align-items:flex-start;margin-bottom:10px}.md-head h2{margin:2px 0 4px;font-size:22px}
.md-t td{vertical-align:top}.md-t tr.sous td{background:#fbfaf6;font-size:13px}.md-t tr.sous td:first-child{padding-left:22px}
.md-t tr.parent td{font-weight:600}
.rf-kpis .up b{color:#2E7D4F}.rf-kpis .dn b{color:#b3261e}
.md-vide{background:#faf8f2;border-radius:10px;padding:12px 16px}

/* page de connexion */
.cx-body{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#1d2a22;margin:0;padding:16px}
.cx-box{background:#fff;border-radius:14px;padding:28px 30px;width:min(380px,100%);box-shadow:0 20px 60px rgba(0,0,0,.35);display:flex;flex-direction:column;gap:8px}
.cx-marque{font-weight:700;letter-spacing:.6px;color:#C98A2B;font-size:13px}.cx-box h1{margin:0;font-size:24px}
.cx-box input[type=password]{padding:10px 12px;font-size:16px;border:1px solid var(--line);border-radius:8px}
.cx-box button{padding:10px;font-size:15px;font-weight:700;border-radius:8px;background:#1d2a22;margin-top:6px}
.cx-err{background:#f8e1dc;color:#9b2c1c;border-radius:6px;padding:6px 10px;margin:0}

.vitrine-note{margin-top:24px;text-align:center;opacity:.75}
.salon-deja{margin-top:8px;font-size:12px;color:#cbd5e1}.salon-deja a{color:#fcd34d;text-decoration:none}.salon-deja a:hover{text-decoration:underline}
.salon-deja summary{cursor:pointer;margin-top:4px}.salon-deja ul{margin:6px 0 0;padding-left:16px;max-height:200px;overflow:auto}.salon-deja li{margin-bottom:3px}
.salon-deja small{color:#94a3b8}

/* ───────── Univers : portail, espace adhérent, salon, atelier ───────── */
.u-tag{display:inline-block;margin-left:8px;padding:2px 10px;border-radius:12px;background:#2E7D4F;color:#fff;font-size:12px;font-weight:700;letter-spacing:.3px;vertical-align:2px}
.u-tag.salon{background:#b45309}.u-tag.atelier{background:#475569}
header.u-espace{background:#16302a}header.u-salon{background:#2b1d10}
nav.esp-nav a{background:rgba(255,255,255,.07);color:#eef2ee;font-weight:600;padding:7px 13px;border-radius:18px;margin:0 6px 6px 0;display:inline-block;font-size:14px;text-decoration:none}
nav.esp-nav a.on{background:#C98A2B;color:#fff}
nav a.u-switch,nav.esp-nav a.u-switch{background:none;border:1px solid rgba(255,255,255,.3);color:#d8d2bd;font-weight:500;font-size:12px;margin-left:10px}
.pt-head h1{font-size:34px;margin:10px 0 4px}
.pt-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-top:16px}
.pt-u{display:block;background:#fff;border:1px solid var(--line);border-top:6px solid #2E7D4F;border-radius:14px;padding:22px 22px 18px;color:var(--ink);text-decoration:none;transition:transform .15s,box-shadow .15s}
.pt-u:hover{transform:translateY(-3px);box-shadow:0 10px 30px rgba(0,0,0,.08)}
.pt-u.salon{border-top-color:#b45309}.pt-u.atelier{border-top-color:#475569}
.pt-u h2{margin:6px 0 8px;font-size:22px}.pt-u p{margin:0 0 14px;color:#4b5563}
.pt-k{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--mute)}.pt-ex{font-size:12px;font-weight:600;color:#2E7D4F}
.pt-u.salon .pt-ex{color:#b45309}.pt-u.atelier .pt-ex{color:#475569}
.e-head h1{font-size:28px;margin:6px 0 2px}.e-head .lead{margin:0 0 6px}
.e-alertes h2{font-size:18px}
.e-al{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:8px;color:var(--ink);text-decoration:none;border:1px solid var(--line);margin-bottom:6px}
.e-al:hover{background:#f7f5ef}.e-al small{color:var(--mute)}.e-go{margin-left:auto;color:var(--mute);font-size:18px}
.e-dot{flex:0 0 12px;height:12px;border-radius:50%;background:#94a3b8}
.e-al.fort .e-dot{background:#c0533f}.e-al.moyen .e-dot{background:#d39a3a}.e-al.info .e-dot{background:#3D63B8}.e-al.bon .e-dot{background:#2E7D4F}
.e-tuiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin-top:14px}
.e-t{display:block;background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px;color:var(--ink);text-decoration:none;transition:box-shadow .15s}
.e-t:hover{box-shadow:0 6px 18px rgba(0,0,0,.07)}.e-t h3{margin:6px 0 4px;font-size:17px}.e-t p{margin:0;font-size:13px;color:#4b5563}
.e-t.soon{opacity:.85;border-style:dashed}.e-ic{font-size:24px}
.e-bientot{display:inline-block;padding:1px 8px;border-radius:10px;background:#eef2ff;color:#3D63B8;font-size:11px;font-weight:700;vertical-align:2px}
.e-2col{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:14px}
.e-bars{display:flex;align-items:flex-end;gap:8px;height:200px;padding-top:10px;overflow-x:auto}
.e-bar{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;min-width:48px;font-size:11px}
.e-bar .b{display:block;width:30px;background:#9cc9a8;border-radius:4px 4px 0 0}.e-bar.per .b{background:#1f6b40}
.e-bar.part .b{background:repeating-linear-gradient(135deg,#d6e6da 0 5px,#eef5f0 5px 9px)}
.e-bar .v{font-weight:700;margin-bottom:2px}.e-bar .l{margin-top:4px;color:var(--mute)}.e-bar .p{color:#b45309;font-size:10px}
.e-sem{width:100%;border-collapse:collapse;font-size:14px}.e-sem td{padding:5px 6px}
.e-sem td.bar{width:45%}.e-sem td.bar span{display:block;height:14px;background:#9cc9a8;border-radius:3px}
.e-sem tr.fort td.bar span{background:#1f6b40}.e-sem tr.fort td{font-weight:700}.e-sem .num{text-align:right;font-variant-numeric:tabular-nums}
.e-plan{display:flex;flex-direction:column;gap:8px}
.e-act{display:flex;align-items:center;gap:14px;border:1px solid var(--line);border-radius:10px;padding:10px 14px}
.e-act .num{margin-left:auto;text-align:right}.e-n{width:28px;height:28px;border-radius:50%;background:#C98A2B;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;flex:0 0 28px}
.e-tot{margin:12px 0 0;font-size:16px}
.e-docs{list-style:none;padding:0;margin:0}.e-docs li{padding:8px 0;border-bottom:1px solid var(--line)}.e-docs li.soon{color:var(--mute)}
.e-chat{max-width:860px;display:flex;flex-direction:column;gap:8px}
.e-q{align-self:flex-end;background:#1d2a22;color:#fff;border-radius:14px 14px 2px 14px;padding:10px 14px;max-width:75%}
.e-r{align-self:flex-start;background:#fff;border:1px solid var(--line);border-radius:14px 14px 14px 2px;padding:10px 14px;max-width:85%;margin-bottom:6px}
.e-r a{font-size:13px;margin-left:4px}
.e-saisie{display:flex;gap:8px;margin-top:10px}.e-saisie input{flex:1;padding:10px 12px;border:1px solid var(--line);border-radius:8px}
.e-ft td{vertical-align:middle}

/* ───────── Plateforme : connexion, comptes, établissements ───────── */
header{position:relative}
.hd-compte{position:absolute;top:12px;right:20px;font-size:12px;color:#cbd5e1}.hd-compte a{color:#f3d9a8;text-decoration:none}.hd-compte a:hover{text-decoration:underline}
.cx-body{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#16302a;margin:0;padding:16px}
.cx-box{background:#fff;border-radius:14px;padding:28px 30px;width:min(380px,100%);box-shadow:0 20px 60px rgba(0,0,0,.35);display:flex;flex-direction:column;gap:8px}
.cx-marque{font-weight:700;letter-spacing:.6px;color:#C98A2B;font-size:13px}.cx-box h1{margin:0 0 4px;font-size:24px}
.cx-box label{font-size:13px;color:var(--mute);margin-top:4px}
.cx-box input{padding:10px 12px;font-size:16px;border:1px solid var(--line);border-radius:8px}
.cx-box button{padding:10px;font-size:15px;font-weight:700;border-radius:8px;background:#16302a;margin-top:8px}
.cx-err{background:#f8e1dc;color:#9b2c1c;border-radius:6px;padding:6px 10px;margin:0}
.adm-form{display:flex;flex-direction:column;gap:10px}.adm-form label{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:600}
.adm-form input[type=text],.adm-form input[type=email],.adm-form input[type=url],.adm-form input[type=password],.adm-form select{padding:8px 10px;border:1px solid var(--line);border-radius:6px;font-weight:400;font-size:14px}
.adm-form label.chk{flex-direction:row;align-items:center}.adm-form .btn{align-self:flex-start}
.adm-ligne{flex-direction:row;flex-wrap:wrap;align-items:flex-end}
.adm-acces{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12px}.adm-acces label{font-weight:400;flex-direction:row;display:inline-flex;gap:4px}
.niv{display:inline-block;padding:1px 9px;border-radius:10px;font-size:12px;font-weight:700;vertical-align:3px}
.niv.n0{background:#eef2f7;color:#475569}.niv.n1{background:#e6ecf7;color:#2f4f8a}.niv.n2{background:#fbeedd;color:#8a5c12}.niv.n3{background:#e3efe6;color:#1f6b40}

/* ── Espace adhérent : plusieurs établissements ── */
.u-sites{margin-left:10px;font-size:12px;color:inherit;opacity:.85;border:1px solid currentColor;border-radius:12px;padding:1px 8px;text-decoration:none}
.u-sites:hover{opacity:1}
.cmp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px;margin:16px 0}
.cmp-site{display:block;color:inherit;text-decoration:none;border-top:4px solid var(--accent,#973756)}
.cmp-site:hover{box-shadow:0 4px 18px rgba(0,0,0,.12)}
.cmp-site h3{margin:0 0 2px}
.cmp-site .cmp-k{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;margin:12px 0}
.cmp-site .cmp-k b{display:block;font-size:19px}
.cmp-site .cmp-k span{font-size:12px;opacity:.75}
.cmp-tab td,.cmp-tab th{padding:6px 10px}
.cmp-tab .best{font-weight:700;color:#1d7a46}
.cmp-tab .worst{color:#b3261e}
.mp-cell.vr-lite{cursor:pointer}
.spotlight .mp-cell.eteint{opacity:.28}
.nd{color:#b33a2e;font-style:italic;font-weight:600;font-size:.85em}
.erreurs-collecte{border:1px solid #f1b8b0;background:#fdf1ef;color:#7f1d1d;border-radius:10px;padding:12px 16px;margin:0 0 18px;font-size:13px}.erreurs-collecte ul{margin:6px 0 0;padding-left:18px}

/* ── Salon : Livre de recettes Baresto (Maquette éditoriale Fraunces + Inter) ── */
body.body-livre{background:#FFFFFF;color:#111111;font-family:'Inter',system-ui,-apple-system,sans-serif}
body.body-livre main{max-width:1380px;margin:0 auto;padding:0 48px 72px}
body.body-livre main header{background:transparent;color:inherit;padding:0}
@media(max-width:960px){body.body-livre main{padding:0 24px 48px}}
.lv-grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
@media(max-width:1120px){.lv-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.lv-grid-4{grid-template-columns:1fr}}
.lv-grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
@media(max-width:960px){.lv-grid-3{grid-template-columns:1fr}}
.lv-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
@media(max-width:860px){.lv-grid-2{grid-template-columns:1fr}}
header.u-salon{background:#FFFFFF;color:#111111;border-bottom:1px solid #E8E5DF;padding:18px 64px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}
@media(max-width:960px){header.u-salon{padding:16px 24px}}
header.u-salon .livre-brand{display:flex;align-items:center;gap:10px;font-weight:600;font-size:15px;letter-spacing:.02em;color:#111111;margin:0}
header.u-salon nav.livre-nav{display:flex;gap:22px;align-items:center;font-size:14px;margin:0}
header.u-salon nav.livre-nav a{background:none;color:#6B6861;font-weight:400;padding:6px 0;margin:0;border-radius:0;text-decoration:none;border:0}
header.u-salon nav.livre-nav a:hover{color:#C8471F}
header.u-salon nav.livre-nav a.on{color:#111111;font-weight:600;border-bottom:2px solid #111111}
header.u-salon nav.livre-nav a.u-switch{border:1px solid #E8E5DF;border-radius:999px;padding:5px 14px;color:#6B6861;font-size:13px}
header.u-salon .hd-compte{position:static;color:#6B6861}
header.u-salon .hd-compte a{color:#111111}
.lv-subbar{display:flex;justify-content:space-between;align-items:center;padding:18px 0;border-bottom:1px solid #E8E5DF;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.lv-back{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:#6B6861;font-size:14px;min-height:36px}
.lv-back:hover{color:#C8471F}
.lv-pills{display:flex;gap:6px;font-size:13px;flex-wrap:wrap;align-items:center}
.lv-pills a,.lv-pills button.lv-pill-btn{text-decoration:none;padding:0 14px;height:36px;display:inline-flex;align-items:center;gap:6px;border-radius:999px;color:#6B6861;background:transparent;border:1px solid transparent;font-family:inherit;font-size:13px;cursor:pointer;transition:all .15s}
.lv-pills a:hover,.lv-pills button.lv-pill-btn:hover{color:#111111;background:#F6F5F1;border-color:#E8E5DF}
.lv-pills a.on,.lv-pills a.active,.lv-pills button.lv-pill-btn.active{background:#111111;color:#FFFFFF;font-weight:600;border-color:#111111}
.lv-pills button.lv-pill-btn.open:not(.active){background:#F6F5F1;color:#111111;border-color:#111111;font-weight:600}
.lv-submenu-wrap{margin-bottom:32px;background:#FBF9F5;border:1px solid #E8E5DF;border-radius:14px;padding:12px 16px;transition:all .18s ease}
.lv-submenu-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.lv-submenu-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border-radius:10px;background:#FFFFFF;border:1px solid #E8E5DF;text-decoration:none;color:#111111;transition:all .15s}
.lv-submenu-item:hover{border-color:#C8471F;transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.05)}
.lv-submenu-item.current{background:#111111;color:#FFFFFF;border-color:#111111;box-shadow:0 4px 14px rgba(0,0,0,.12)}
.lv-submenu-item.current .lv-sub-code{color:#E6C27A !important}
.lv-submenu-item.current .lv-sub-desc{color:#D6D3CD !important}
.lv-grid-2col{display:grid;grid-template-columns:5fr 7fr;gap:80px;align-items:start}
@media(max-width:960px){.lv-grid-2col{grid-template-columns:1fr;gap:40px}}
.lv-books-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:20px}
@media(max-width:1100px){.lv-books-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}}
.lv-book-card{text-decoration:none;display:flex;flex-direction:column;gap:14px;min-height:250px;padding:22px 22px 22px 26px;border:1px solid #E8E5DF;border-left:6px solid #1E6B4A;border-radius:10px;box-sizing:border-box;color:#111111;background:#FFFFFF;transition:transform .15s,box-shadow .15s,border-color .15s}
.lv-book-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.06);color:#111111}
.lv-chap-row{display:grid;grid-template-columns:40px 1fr auto;gap:16px;align-items:center;text-decoration:none;padding:16px 0;border-bottom:1px solid #E8E5DF;min-height:44px;color:#111111;transition:padding-left .15s}
.lv-chap-row:hover{color:#C8471F;padding-left:4px}
.lv-chap-row.avenir{color:#8A8780}
.lv-chap-row.avenir:hover{color:#111111}
.lv-btn-pill{display:inline-flex;align-items:center;gap:12px;padding:0 22px;height:48px;background:#111111;color:#FFFFFF !important;border-radius:999px;text-decoration:none;font-weight:500;font-size:15px;border:0;cursor:pointer;transition:background .15s}
.lv-btn-pill:hover{background:#C8471F;color:#FFFFFF !important}
/* Charte Baresto 2025 : bordeaux identitaire, lie de vin au survol */
.lv-btn-pill.charte{background:#70150F}.lv-btn-pill.charte:hover{background:#973756}
.lv-btn-outline{display:inline-flex;align-items:center;gap:10px;padding:0 20px;height:44px;border:1px solid #111111;border-radius:999px;text-decoration:none;font-weight:500;font-size:14px;color:#111111;background:#FFFFFF;cursor:pointer;transition:all .15s}
.lv-btn-outline:hover{border-color:#C8471F;color:#C8471F}
