:root{
  color-scheme:light;
  --page:#f5f2ea; --surface:#fcfcfb; --head:#efece2; --line:#e3ded2; --line-soft:#eeeae0;
  --ink:#13201e; --ink2:#566360; --muted:#6f7a77;
  --brand:#0e5a52; --edge:#2a9d8b; --brand-ink:#ffffff; --brand-soft:#dcebe8; --ctrl-border:#c9c3b4;
  --good:#006300; --bad:#c62f2f; --warn-bg:#fbf0dc; --warn-ink:#8a4f05; --live:#b45309;
  --grid:#e1e0d9; --axis:#c3c2b7; --pin-bg:#e1eeeb; --hi-ink:#006300;
  --s1:#2a78d6; --s2:#eb6834; --s3:#1baf7a; --s4:#eda100; --s5:#e87ba4; --s6:#008300; --s7:#4a3aa7;
  --serif:"Newsreader",Georgia,serif; --sans:"Instrument Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
}
@media (prefers-color-scheme:dark){
  :root:where(:not([data-theme="light"])){
    color-scheme:dark;
    --page:#0d0d0d; --surface:#1a1a19; --head:#222220; --line:#2c2c2a; --line-soft:#252523;
    --ink:#f3f1ea; --ink2:#c3c2b7; --muted:#a09e96;
    --brand:#5cc2b3; --edge:#c4f0e8; --brand-ink:#0d0d0d; --brand-soft:#1f3a36; --ctrl-border:#3e3e3b;
    --good:#0ca30c; --bad:#ec6a6a; --warn-bg:#3a2d12; --warn-ink:#f1c36b; --live:#f59e42;
    --grid:#2c2c2a; --axis:#383835; --pin-bg:#1b2f2c; --hi-ink:#4fd16b;
    --s1:#3987e5; --s2:#d95926; --s3:#199e70; --s4:#c98500; --s5:#d55181; --s6:#008300; --s7:#9085e9;
  }
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --page:#0d0d0d; --surface:#1a1a19; --head:#222220; --line:#2c2c2a; --line-soft:#252523;
  --ink:#f3f1ea; --ink2:#c3c2b7; --muted:#a09e96;
  --brand:#5cc2b3; --edge:#c4f0e8; --brand-ink:#0d0d0d; --brand-soft:#1f3a36; --ctrl-border:#3e3e3b;
  --good:#0ca30c; --bad:#ec6a6a; --warn-bg:#3a2d12; --warn-ink:#f1c36b; --live:#f59e42;
  --grid:#2c2c2a; --axis:#383835; --pin-bg:#1b2f2c; --hi-ink:#4fd16b;
  --s1:#3987e5; --s2:#d95926; --s3:#199e70; --s4:#c98500; --s5:#d55181; --s6:#008300; --s7:#9085e9;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--page);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.4}
a{color:var(--brand);text-decoration:none}
button,input,select{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.num{font-variant-numeric:tabular-nums}
sup{font-size:.68em;line-height:0;vertical-align:baseline;position:relative;top:-.45em}

header.top{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px;padding:8px 32px;background:var(--surface);border-bottom:1px solid var(--line)}
.logo{display:flex;align-items:center;gap:10px;color:var(--ink);flex-shrink:0}
.logo .mark{display:block;flex-shrink:0}
.logo .lab{color:var(--brand)}
.logo b{font-family:var(--serif);font-size:22px;font-weight:600;letter-spacing:-.01em;white-space:nowrap}
.top-right{display:flex;align-items:center;gap:12px;flex-shrink:0}
/* min-width:0 : sans ca, un flex-item ne retrecit jamais sous la largeur de son contenu, donc le nav
   (6 liens) forcerait le header entier a deborder plutot que de laisser de la place aux boutons de droite.
   Avec min-width:0 + overflow-x:auto (ajoute en media query mobile ci-dessous), le nav devient une
   bande qui defile horizontalement si les liens ne tiennent pas, au lieu de faire deborder toute la page. */
.nav{display:flex;gap:4px;margin-right:auto;margin-left:24px;min-width:0}
.nav a{position:relative;padding:8px 14px;border-radius:10px;color:var(--ink2);font-weight:600;white-space:nowrap;flex-shrink:0}
.nav a:hover{background:var(--head)}
.nav a[aria-current]{background:var(--brand-soft);color:var(--brand)}
.pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:4px 10px;border-radius:999px;white-space:nowrap}
.pill.warn{background:var(--warn-bg);color:var(--warn-ink)}
.pill.open{background:var(--brand-soft);color:var(--brand)}
.pill.idle{background:var(--head);color:var(--ink2)}
.icon-btn{min-height:40px;min-width:40px;border:1px solid var(--ctrl-border);background:var(--surface);border-radius:10px;cursor:pointer}

main{max-width:1280px;margin:0 auto;padding:36px 32px 48px}
h1{margin:0;font-family:var(--serif);font-weight:500;font-size:40px;line-height:1.08;letter-spacing:-.02em}
.sub{margin:8px 0 0;color:var(--ink2);font-size:16px}
.head-row{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}
.bilan-head-actions{display:flex;gap:10px;flex-wrap:wrap}
.fresh{display:flex;align-items:center;gap:8px;color:var(--ink2);font-size:14px}
.dot{width:8px;height:8px;border-radius:50%;background:var(--good)}
.dot.old{background:#fab219}
.dot.pulse{animation:pulse 1.2s ease-out 2}
@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--good) 55%,transparent)}100%{box-shadow:0 0 0 10px transparent}}
@media (prefers-reduced-motion:reduce){.dot.pulse{animation:none}}
.head-side{display:flex;flex-direction:column;align-items:flex-end;gap:8px}

.filters{display:flex;align-items:center;flex-wrap:wrap;gap:12px 20px;margin:24px 0 16px}
.seg{display:inline-flex;gap:4px;padding:4px;background:var(--surface);border:1px solid var(--ctrl-border);border-radius:12px}
.seg button{min-height:36px;padding:0 14px;border:0;border-radius:8px;background:transparent;color:var(--ink);cursor:pointer;font-weight:500;white-space:nowrap}
.seg button:hover{background:var(--head)}
.seg button[aria-pressed="true"]{background:var(--brand);color:var(--brand-ink);font-weight:600}
/* Filtre des championnats (page Matchs) : replié par défaut sur « Toutes les compétitions » (sinon,
   avec beaucoup de championnats suivis, le filtre à lui seul occupe toute la page). Un clic sur le
   résumé déplie un panneau qui regroupe les championnats par pays/zone, avec leur drapeau. */
.league-picker{position:relative}
.league-picker>summary{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;background:var(--surface);border:1px solid var(--ctrl-border);border-radius:10px;color:var(--ink);font-weight:500;cursor:pointer;list-style:none;user-select:none}
.league-picker>summary::-webkit-details-marker{display:none}
.league-picker>summary::after{content:"▾";margin-left:2px;color:var(--ink2);font-size:12px}
.league-picker[open]>summary::after{content:"▴"}
.league-picker .lp-value{color:var(--ink2);font-weight:400}
.league-picker .count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--brand);color:var(--brand-ink);font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}
.league-picker .count-badge[hidden]{display:none}   /* la règle ci-dessus (display:inline-flex) est aussi précise que [hidden] : sans ceci, le badge resterait visible et vide */
.league-picker .league-groups{position:absolute;top:calc(100% + 6px);left:0;z-index:20;display:flex;flex-direction:column;min-width:320px;max-width:min(560px,90vw);max-height:70vh;overflow:auto;padding:6px 14px;background:var(--surface);border:1px solid var(--ctrl-border);border-radius:12px;box-shadow:0 6px 24px rgba(0,0,0,.16)}
/* Une « sous-section » par pays : l'étiquette passe seule sur sa ligne (au lieu de partager la ligne
   avec les boutons) et un filet sépare chaque pays du suivant, pour que le regroupement saute aux yeux
   même quand le panneau est étroit. */
.league-groups .zone{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:10px 0;border-top:1px solid var(--line-soft)}
.league-groups .zone:last-child{padding-bottom:8px}
.league-groups>.seg{margin-top:8px}   /* le bouton « Toutes », avant le premier filet de pays */
.league-groups .zone-label{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink2)}
.league-groups .seg{flex-wrap:wrap}
@media (max-width:520px){
  .league-picker .league-groups{left:auto;right:0;min-width:280px}
}
.field{display:flex;align-items:center;gap:8px;color:var(--ink2);font-size:14px}
.field select,.field input[type=search],.field input[type=number]{min-height:44px;padding:0 12px;background:var(--surface);border:1px solid var(--ctrl-border);border-radius:10px;color:var(--ink)}
.field input[type=search]{width:220px}
.field input[type=number]{width:96px}
.check{display:flex;align-items:center;gap:8px;color:var(--ink2);font-size:14px;cursor:pointer;min-height:44px}
.check input{width:18px;height:18px;accent-color:var(--brand)}
.spacer{flex:1}

.card{background:var(--surface);border:1px solid var(--line);border-radius:16px;overflow:hidden}
.grid{display:grid;align-items:center;gap:16px;padding:14px 24px}
.thead{background:var(--head);border-bottom:1px solid var(--line);font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2)}
.r{text-align:right}
a.row{color:var(--ink);border-bottom:1px solid var(--line-soft)}
a.row:last-child{border-bottom:0}
a.row:hover{background:var(--head)}
.teams{font-size:16px;font-weight:600}
.when{color:var(--ink2);font-size:13px;margin-top:2px}
.up{color:var(--good);font-weight:600}
.down{color:var(--bad);font-weight:600}
.flat{color:var(--ink2)}
.dash{color:var(--muted)}
.empty{padding:40px 24px;text-align:center;color:var(--ink2)}
.notes{margin:20px 4px 0;color:var(--ink2);font-size:13px;line-height:1.55}
.notes p{margin:0 0 8px}
/* (07/10/2026) message de prévention : centré, détaché des explications, couleur de la marque */
.notes .rg{margin:22px auto 0;padding-top:14px;border-top:1px solid var(--line);max-width:80ch;text-align:center;text-wrap:balance;color:var(--brand);font-weight:500}
.err{padding:16px 20px;border:1px solid var(--bad);border-radius:12px;color:var(--ink);background:var(--surface);margin:24px 0}

.back{display:inline-block;margin-bottom:16px;font-weight:500}
.detail .grid{grid-template-columns:minmax(0,2fr) minmax(0,1.5fr) repeat(4,minmax(0,1fr)) minmax(0,.7fr)}
.bk{display:flex;align-items:center;gap:10px;font-weight:600;min-width:0}
.key{width:12px;height:0;border-top:3px solid;border-radius:2px;flex:none}
.tag{display:inline-block;margin-left:0;font-size:12px;font-weight:500;color:var(--ink2)}
.tag.real{color:var(--brand)}
.section{margin-top:24px}
.section h2{font-family:var(--serif);font-weight:500;font-size:24px;margin:0 0 12px;letter-spacing:-.01em}
.chart-card{padding:20px 20px 12px}
.legend{display:flex;flex-wrap:wrap;gap:8px 8px;margin-bottom:8px}
.legend button,.chips button{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:0 12px;border:1px solid var(--ctrl-border);border-radius:999px;background:var(--surface);cursor:pointer;font-size:14px}
.legend button[aria-pressed="false"],.chips button[aria-pressed="false"]{opacity:.45}
.legend .key{width:14px}
.plot{position:relative}
.plot svg{display:block;width:100%;overflow:visible;touch-action:pan-y}
.plot svg text{font-family:var(--sans)}
.tip{position:absolute;pointer-events:none;z-index:3;min-width:180px;padding:10px 12px;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 6px 24px rgba(0,0,0,.16);font-size:13px}
.tip .t{color:var(--ink2);margin-bottom:6px}
.tip .l{display:flex;align-items:center;gap:8px;padding:2px 0}
.tip .l .key{width:12px}
/* Logo facultatif d'un bookmaker, à côté du trait coloré. N'apparaît que si le fichier existe dans site/logos/
   (sinon l'image se retire toute seule au chargement : rien ne change visuellement). */
.blogo{height:18px;width:auto;max-width:64px;object-fit:contain;flex:none;border-radius:2px;vertical-align:middle}
.legend .blogo{height:15px;max-width:54px}
.tip .l .blogo{height:13px;max-width:46px}
/* certains logos (texte fin ou nom long) restent illisibles à la taille standard : agrandis un peu plus */
.blogo[src*="/logos/pinnacle"],.blogo[src*="/logos/unibet"],.blogo[src*="/logos/betfair"]{height:24px;max-width:90px}
.legend .blogo[src*="/logos/pinnacle"],.legend .blogo[src*="/logos/unibet"],.legend .blogo[src*="/logos/betfair"]{height:19px;max-width:74px}
.tip .l .blogo[src*="/logos/pinnacle"],.tip .l .blogo[src*="/logos/unibet"],.tip .l .blogo[src*="/logos/betfair"]{height:16px;max-width:62px}
.tip .l b{font-size:14px;min-width:38px;text-align:right}
.tip .l span{color:var(--ink2)}
details.twin{margin-top:8px}
details.twin summary{cursor:pointer;color:var(--ink2);font-size:14px;padding:8px 0}
.twin .scroll{max-height:320px;overflow:auto;border:1px solid var(--line);border-radius:10px}
.twin table{width:100%;border-collapse:collapse;font-size:13px}
.twin th,.twin td{padding:6px 10px;text-align:right;border-bottom:1px solid var(--line-soft);white-space:nowrap}
.twin th:first-child,.twin td:first-child{text-align:left}
.twin th{position:sticky;top:0;background:var(--head);font-weight:600}

/* liste : un tableau par match, une ligne par bookmaker, 1 / N / 2 dans chaque case */
.list{display:flex;flex-direction:column;gap:16px}
.pick{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;margin:0 0 12px}
.pick-l{color:var(--ink2);font-size:14px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips button.ghost{border-style:dashed;color:var(--ink2)}
.chips button.locked{opacity:.5;cursor:not-allowed;color:var(--ink2)}
.market-tabs{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0 14px}
.market-tab{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:150px;padding:10px 16px;border:1px solid var(--ctrl-border);border-radius:12px;background:var(--surface);cursor:pointer;text-align:left}
.market-tab b{font-size:15px}
.market-tab span{font-size:12px;color:var(--ink2)}
.market-tab[aria-pressed="true"]{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 8%,var(--surface))}
.market-tab[aria-pressed="true"] b{color:var(--brand)}
.ou-check{min-height:auto}
.legend-note{margin:0 0 12px;color:var(--ink2);font-size:13px}
.legend-note .v{padding:1px 4px;border-radius:6px}
.swipe{display:none}
.scroller{overflow-x:auto}
.mtable{min-width:600px}
.past .mtable{min-width:900px}
.brow{display:grid;grid-template-columns:minmax(232px,1.5fr) minmax(0,1fr) minmax(0,1fr) minmax(64px,.55fr);gap:0 12px;align-items:stretch;padding:0;background:var(--surface);border-top:1px solid var(--line-soft)}
.past .brow{grid-template-columns:minmax(232px,1.5fr) minmax(0,1fr) minmax(0,1fr) minmax(64px,.55fr) minmax(0,1fr) minmax(0,1.5fr)}
.brow>*{padding-top:7px;padding-bottom:7px}
.brow>:first-child{padding-left:20px}
.brow>:last-child{padding-right:20px}
/* barre verticale entre les blocs Ouverture | Actuelle | TRJ (| Clôture | CLV pour les matchs terminés) */
.brow>:nth-child(n+2){border-left:1px solid var(--ctrl-border);margin-left:-6px;padding-left:6px}
.brow.off>:nth-child(n+2){border-left:0;margin-left:0;padding-left:0}
.brow.off>.wait{margin-left:0}
.mhead{background:var(--head);border-top:0}
.mhead>*{padding-top:4px;padding-bottom:10px}

.wait2{grid-column:span 2;color:var(--muted);text-align:center;align-self:center}
.bname,.gh0{position:sticky;left:0;z-index:1;background:inherit}
.mbar{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;padding:14px 20px 8px;background:var(--head)}
.mbar .when{margin:0}
.mbar .teams{color:var(--ink)}
.mbar .otag{margin-left:0}
.more{font-size:13px;font-weight:500;white-space:nowrap}
.gh{text-align:center;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2)}
.gh.gh0{text-align:left;align-self:end}
.hint{margin-left:auto;color:var(--muted);font-size:12px}
.gh .sub{margin-top:2px;font-weight:500;letter-spacing:0;text-transform:none;font-size:10.5px;line-height:1.25}
.trio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;align-content:center;text-align:center;font-size:14px}
.trio .v{padding:1px 4px;border-radius:6px;white-space:nowrap}
.v.hi{color:var(--hi-ink);background:color-mix(in srgb,var(--good) 15%,transparent)}
/* cote périmée (voir STALE_NOTE dans app.js / mark_stale côté collecteur) : marché suspendu ou retiré chez
   ce bookmaker au dernier passage du robot - grisée et distincte, jamais mêlée aux cotes à jour */
.v.stale{color:var(--muted);font-style:italic;background:color-mix(in srgb,var(--muted) 12%,transparent);cursor:help}
.bname{display:flex;align-items:center;gap:10px;min-width:0;white-space:nowrap}
.refTag{margin-left:4px;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--brand)}
.netTag{margin-left:4px;padding:0 6px;border:1px solid var(--ctrl-border);border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink2);cursor:help}
.trjc{display:flex;align-items:center;justify-content:center;font-size:14px}
.trjc .v{padding:1px 4px;border-radius:6px;white-space:nowrap}
.v.arb{background:var(--good);color:var(--surface);font-weight:700}
.brow.best{background:color-mix(in srgb,var(--brand) 7%,var(--surface));font-weight:600;border-top:1px solid var(--line)}
.star{flex:none;width:18px;text-align:center;color:var(--brand)}
/* trait coloré sous la meilleure cote : un vrai soulignement (text-decoration), que le navigateur cale
   toujours sur un pixel entier - meme epaisseur partout, quel que soit le bookmaker ou le zoom - et qui ne
   depasse pas la largeur du nombre. */
.v.b{text-decoration:underline;text-decoration-color:var(--bk);text-decoration-thickness:2px;text-underline-offset:4px;text-decoration-skip-ink:none}
.brow.off .bname{opacity:.65}
.wait{grid-column:2/-1;align-self:center;color:var(--muted);font-style:italic;font-size:13px;padding-right:20px}
.mblock .brow:last-child{border-bottom:0}

/* page Value */
.vparams{display:flex;align-items:center;flex-wrap:wrap;gap:12px 20px;margin:24px 0 12px}
.vtable .mtable{min-width:1100px}
.vrow{display:grid;grid-template-columns:minmax(168px,1.8fr) minmax(110px,1.1fr) 118px minmax(62px,.6fr) minmax(72px,.65fr) minmax(84px,.7fr) minmax(96px,.8fr) minmax(68px,.6fr) minmax(96px,.8fr) 120px;gap:0 12px;align-items:center;padding:10px 20px;background:var(--surface);border-top:1px solid var(--line-soft)}
.vrow.vhead{background:var(--head);border-top:0;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2)}
.rr{text-align:right}
.ctr{text-align:center}
.vkelly,.vclv{text-align:center}
/* « Values passées » : une colonne de plus (Clôture juste), compensée par la date de détection sur 2 lignes */
.vrow.vpast{grid-template-columns:minmax(168px,1.8fr) minmax(110px,1.1fr) 118px minmax(62px,.6fr) minmax(72px,.65fr) minmax(84px,.7fr) minmax(96px,.8fr) minmax(66px,.6fr) minmax(70px,.6fr) minmax(96px,.8fr) 92px}
.vdet{display:inline-block;line-height:1.3;text-align:center}
.vsort-btn{background:none;border:0;padding:0;margin:0;font:inherit;color:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:4px}
.rr .vsort-btn{margin-left:auto}
.ctr .vsort-btn{margin:0 auto}
.vsort-btn:hover{color:var(--ink)}
.vsort-btn.active{color:var(--brand)}
.vsort-arrow{font-size:10px}
.vmatch{display:flex;flex-direction:column;min-width:0;position:sticky;left:0;z-index:1;background:inherit}
.vmatch .teams{font-size:15px}
.vbold{font-weight:700}
.vedge{color:var(--hi-ink);font-weight:700}
.vwarn{display:inline-block;padding:1px 8px;border-radius:999px;background:var(--warn-bg);color:var(--warn-ink);font-size:12px;font-weight:600;cursor:help}
.vnote{font-size:13px;text-align:center}
.vbilan{display:flex;justify-content:center}
.vbilan-btn{min-height:30px;padding:0 12px;font-size:13px;white-space:nowrap}

@media (max-width:820px){
  header.top{padding:8px 16px}
  main{padding:24px 16px 40px}
  h1{font-size:30px}
  .field input[type=search]{width:100%}
  .field{flex:1 1 100%}.field select{flex:1}
  .thead{display:none}
  .grid{padding:14px 16px;gap:8px 12px}
  .detail .grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .detail .grid>:nth-child(1){grid-column:1/-1}
  .detail .grid>:nth-child(2){grid-column:1/-1}
  .r{text-align:left}
  .swipe{display:block}
  .mtable,.past .mtable{min-width:0;width:max-content}
  .brow{grid-template-columns:172px 132px 132px 76px}
  .past .brow{grid-template-columns:172px 132px 132px 76px 132px 200px}
  .vtable .mtable{min-width:0;width:max-content}
  .vrow{grid-template-columns:150px 112px 124px 60px 70px 80px 100px 68px 100px 124px;padding:9px 16px}
  .vrow.vpast{grid-template-columns:150px 112px 124px 60px 70px 80px 100px 70px 76px 100px 100px}
  /* Avec plusieurs liens, le nav peut ne plus tenir sur une ligne a cette largeur : au lieu de laisser
     deborder tout le header (barre de defilement horizontale sur toute la page), le nav lui-meme
     devient une bande qui se fait glisser du doigt, comme les tableaux larges ailleurs sur le site. */
  .nav{margin-left:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .nav::-webkit-scrollbar{display:none}
  .logo b{font-size:19px}
  .logo{gap:8px}
  .top-right{gap:8px}
  .nav a{padding:8px 10px}
  .refTag,.netTag{display:none}
  .bname{white-space:normal;line-height:1.25}
  .head-side{align-items:flex-start}
  .hint{margin-left:0}
  .brow>:first-child{padding-left:16px}
  .mbar{padding:12px 16px 6px}
  [data-l]::before{content:attr(data-l);display:block;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2);font-weight:600}
  .chart-card{padding:14px 10px 8px}
  .top-right .pill{display:none}
  .spacer{display:none}
}

@media (max-width:520px){
  .logo b{display:none}
  .nav{margin-left:2px;gap:0}
  .nav a{padding:8px 9px}
  /* A cette largeur, meme retreci, le nav (6 liens) ne tient plus a cote du logo et du bloc de droite
     (connexion/theme) : on le fait passer sur sa propre ligne, sous le logo/bloc de droite, plutot que
     de le laisser coupe/defiler en silence a cote d'eux — les liens restent ainsi visibles d'un coup d'oeil. */
  header.top{flex-wrap:wrap;row-gap:6px}
  .logo{order:1}
  .top-right{order:2}
  .nav{order:3;flex:1 1 100%;margin-left:0}
}

/* page Opening */
.ogroups{margin:-8px 0 16px}
.ogroups .pick-l{flex:1 1 100%;margin-bottom:-6px}
.plan{margin-left:8px;padding:1px 7px;border-radius:999px;background:var(--warn-bg);color:var(--warn-ink);font-size:11px;font-weight:600;white-space:nowrap}
.ogroups>div{max-width:100%}
.ogroups .seg{max-width:100%;overflow-x:auto}
.olist{overflow:hidden}
.orow{display:grid;grid-template-columns:minmax(220px,2.3fr) minmax(150px,1.2fr) minmax(200px,1.7fr) minmax(130px,1fr);gap:8px 16px;align-items:center;padding:12px 24px;border-top:1px solid var(--line-soft);background:var(--surface)}
.orow.ohead{background:var(--head);border-top:0;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2);padding-top:10px;padding-bottom:10px}
.ogroup{padding:10px 24px;background:var(--head);border-top:1px solid var(--line);font-family:var(--serif);font-size:17px;font-weight:600;color:var(--ink)}
.olist .ohead+.ogroup{border-top:0}
.omatch{min-width:0}
.omatch .teams{display:block;overflow-wrap:anywhere}
a.teams{color:var(--ink)}
a.teams:hover{color:var(--brand);text-decoration:underline}
.oflag{font-size:15px}
.otag{display:inline-block;margin-left:8px;padding:0 8px;border:1px solid var(--ctrl-border);border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.03em;color:var(--ink2);white-space:nowrap}
.okick{color:var(--ink2);font-size:14px}
.oprices{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:15px}
.op{display:inline-flex;align-items:baseline;gap:6px}
.op i{font-style:normal;font-size:12px;font-weight:600;color:var(--ink2)}
.op b{font-weight:700}
.oage{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;font-size:14px;color:var(--ink2);cursor:help}
@media (max-width:820px){
  .orow{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px 16px}
  .orow.ohead{display:none}
  .omatch{grid-column:1/-1}
  .oprices{grid-column:1/-1;flex-wrap:nowrap;gap:14px}
  .ogroup{padding:10px 16px}
  .otag{margin-left:6px}
}

/* page Boosts (cotes boostées) - préfixe bx pour ne pas se mélanger avec .brow/.bname de la page Matchs */
.bxstatus{display:flex;flex-wrap:wrap;gap:8px}
.bxsrc{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid var(--ctrl-border);border-radius:999px;background:var(--surface);font-size:12px;font-weight:600;color:var(--ink);cursor:help;white-space:nowrap}
.bxsrc i{font-style:normal;font-weight:500;color:var(--ink2)}
.bxsrc.ok i{color:var(--good)}
.bxsrc.ko{border-color:var(--bad)}
.bxsrc.ko i,.bxsrc.ko:not(:has(i)){color:var(--bad)}
.bxsrc.soon{color:var(--ink2)}
.bxrow{display:grid;grid-template-columns:minmax(122px,.7fr) minmax(220px,2.4fr) minmax(222px,auto) minmax(88px,.55fr) minmax(125px,.95fr) minmax(135px,1fr) minmax(84px,auto);gap:8px 16px;align-items:center;padding:12px 24px;border-top:1px solid var(--line-soft);background:var(--surface)}
.bxrow.ohead{background:var(--head);border-top:0;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2);padding-top:10px;padding-bottom:10px}
.bxbook{display:flex;align-items:center;justify-content:center;min-width:0}
.bxrow .ctr,.bilan-row .ctr,.vrow .ctr{text-align:center}
.vbook{display:flex;align-items:center;justify-content:center;min-width:0}   /* page Value : logo seul, centré sous « Bookmaker » */
/* Étiquette blanche du logo (pages Boosts et Bilan) : les fichiers de site/logos/ sont le nom du bookmaker en
   petit, centré dans une grande marge vide. L'image est agrandie (hauteur 38px) et l'étiquette, plus petite,
   n'en montre que le centre : le nom paraît ~2x plus grand. Fond blanc : lisible aussi en thème sombre. */
.logo-tag{display:inline-flex;align-items:center;justify-content:center;flex:none;width:116px;height:28px;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:6px}
.logo-tag .blogo,.logo-tag .blogo[src]{height:38px;max-width:none;width:auto;border-radius:0}
.logo-tag .bxname{font-size:13px;font-weight:700;color:#13201e}
.bxmain{display:flex;align-items:center;gap:12px;min-width:0}
.bxtext{min-width:0}
.bxsport{flex:none;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:var(--head);font-size:19px;line-height:1;cursor:help}
.bxbet{display:block;font-weight:600;overflow-wrap:anywhere}
.bxpick{font-weight:500;color:var(--ink2)}
/* cote habituelle | flèche | cote boostée | hausse : même taille de chiffres, sur une ligne, colonnes fixes */
.bxodds{display:grid;grid-template-columns:54px 22px 54px 74px;align-items:center;column-gap:6px;font-size:16px;white-space:nowrap}
.bxbefore{justify-self:end;color:var(--muted)}
.bxarrow{justify-self:center;color:var(--ink2)}
.bxafter{justify-self:start;font-weight:700;color:var(--brand)}
.bxgain{justify-self:start;padding:1px 7px;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-size:12px;font-weight:700}
/* entête « Cote » centré sur la flèche : même grille, texte posé au milieu de la case de la flèche */
.bxodds-head{font-size:12px}
.bxhc{position:relative;height:1em}
.bxhc span{position:absolute;left:50%;top:0;transform:translateX(-50%)}
.bxstake{font-size:16px}
.bxlink{flex-basis:100%;font-size:13px;font-weight:600;white-space:nowrap;cursor:pointer}
.bxlink:hover{text-decoration:underline}
.bxrow.ended .bxafter{color:var(--ink2)}
.bxrow.ended .bxgain{background:var(--head);color:var(--ink2)}
.bxrow .vbilan{justify-self:end}
.bxsection{margin:32px 4px 12px;font-family:var(--serif);font-weight:500;font-size:24px;letter-spacing:-.01em}
.bxsection .sub{display:inline;margin:0;font-family:var(--sans);font-size:14px}
@media (max-width:820px){
  .bxrow{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px 16px}
  .bxrow.ohead{display:none}
  .bxbook{grid-column:1/-1;justify-content:flex-start}
  .bxmain{grid-column:1/-1}
  .bxodds{grid-column:1/-1;justify-content:start}
  .bxstatus{flex:1 1 100%}
  .bxrow .vbilan{justify-self:start}
}
/* Bilan : type de pari (étiquette sous le match) + filtres Période / Type de pari */
.bitype{margin-left:8px}
.bitype.boost{border-color:var(--brand);color:var(--brand)}
.bilan-filters{margin:16px 0}
.bilan-filters .pick{margin:0}
/* (07/10/2026) 4 filtres : sur téléphone, les boutons passent à la ligne au lieu de déborder de l'écran */
.bilan-filters .seg{flex-wrap:wrap;max-width:100%}
.bilan-filters .seg button{padding:0 12px}

/* pastilles rouges du menu + encadré Alertes */
.nbadge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;margin-left:6px;padding:0 5px;border-radius:999px;background:#d92d20;color:#fff;font-size:11px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums;vertical-align:middle}
.alerts{display:flex;flex-direction:column;gap:4px;margin:20px 0 4px;padding:10px 20px}
.arow{display:flex;align-items:center;flex-wrap:wrap;gap:6px 16px}
.atitle{font-family:var(--serif);font-size:17px;font-weight:600}
.abtn{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:0 14px;border:1px solid var(--ctrl-border);border-radius:10px;background:var(--surface);color:var(--ink);cursor:pointer;font-weight:500;text-decoration:none;line-height:1.2}
.abtn:hover{background:var(--head)}
.abtn-primary{background:var(--brand);border-color:var(--brand);color:var(--brand-ink);font-weight:600}
.abtn-primary:hover{background:color-mix(in srgb,var(--brand) 88%,black)}
.astat{font-size:13px;color:var(--ink2)}
.astat.ok{color:var(--good)}
.astat.warn{padding:2px 10px;border-radius:8px;background:var(--warn-bg);color:var(--warn-ink)}
.alerts .seg{max-width:100%;overflow-x:auto}
@media (max-width:520px){
  .nbadge{position:absolute;top:-2px;right:-3px;margin:0;min-width:16px;height:16px;font-size:10px;padding:0 4px}
}
/* 8e couleur de bookmaker (bet365) : rouge, validée pour le daltonisme sur fond clair et sombre */
:root{--s8:#c02a4b}
@media (prefers-color-scheme:dark){:root:where(:not([data-theme="light"])){--s8:#d1405c}}
:root[data-theme="dark"]{--s8:#d1405c}
/* (16/10/2026) 9e couleur de bookmaker, propre au basket : PokerStars (magenta) */
:root{--s9:#a8329a}
@media (prefers-color-scheme:dark){:root:where(:not([data-theme="light"])){--s9:#d55fc6}}
:root[data-theme="dark"]{--s9:#d55fc6}
/* Statuts particuliers du Bilan : Remboursé (bleu clair) et Cash Out (orange clair) */
:root{--info-ink:#1f6fb2;--cashout-ink:#b56a12}
@media (prefers-color-scheme:dark){:root:where(:not([data-theme="light"])){--info-ink:#7ab8f0;--cashout-ink:#f0a84f}}
:root[data-theme="dark"]{--info-ink:#7ab8f0;--cashout-ink:#f0a84f}
/* Doré : cotes boostées à mise max 10 € et encadré d'activation des alertes Discord (page Boosts), 29/09/2026 */
:root{--gold:#c9a227;--gold-ink:#86610c;--gold-soft:#fbf3d9;--gold-line:#e6cd83}
@media (prefers-color-scheme:dark){:root:where(:not([data-theme="light"])){--gold:#d8b243;--gold-ink:#ecca62;--gold-soft:#2a2310;--gold-line:#6e5a22}}
:root[data-theme="dark"]{--gold:#d8b243;--gold-ink:#ecca62;--gold-soft:#2a2310;--gold-line:#6e5a22}
/* Comptes (connexion / inscription) */
.acct{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--ink2)}
.acct-name{white-space:nowrap}
a.acct-name{color:var(--ink);text-decoration:none}
a.acct-name:hover{color:var(--brand);text-decoration:underline}
/* En-tete sur ecran moyen (821 a 1250 px) : depuis l'ajout de l'onglet « Boosts », menu + badge « Version beta »
   + « Bonjour ... » + Deconnexion ne tiennent plus cote a cote et se chevauchaient (constate a 1100 px). On
   cache le badge (comme deja sur mobile), on resserre le menu, et au pire le menu defile au lieu de chevaucher. */
@media (max-width:1400px){   /* 1250 avant l'onglet « Surebets » (30/09/2026) */
  .top-right .pill{display:none}
  .nav{margin-left:12px;overflow-x:auto;scrollbar-width:none}
  .nav::-webkit-scrollbar{display:none}
  .nav a{padding:8px 11px}
}
/* En dessous de 1100 px, le menu passe sur sa propre ligne sous le logo (comme deja sur telephone) : tous les
   onglets restent visibles d'un coup d'oeil au lieu d'etre en partie caches dans une bande qui defile. */
@media (max-width:1200px){   /* 1100 avant l'onglet « Surebets » (30/09/2026) */
  header.top{flex-wrap:wrap;row-gap:6px}
  .logo{order:1}
  .top-right{order:2}
  .nav{order:3;flex:1 1 100%;margin-left:0}
}
/* page Mon compte */
.compte-card{max-width:560px}
.compte-infos{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;margin:0 0 8px;font-size:14px}
.compte-infos dt{color:var(--ink2);font-weight:600}
.compte-infos dd{margin:0;overflow-wrap:anywhere}
.compte-h2{margin:22px 0 10px;padding-top:18px;border-top:1px solid var(--line-soft);font-family:var(--serif);font-size:19px;font-weight:600}
.compte-discord{display:flex;flex-direction:column;gap:10px}
.compte-txt{margin:0;font-size:14px;line-height:1.5;color:var(--ink)}
.compte-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}
.acct-card{max-width:420px;margin:32px auto;padding:28px 26px}
.acct-title{margin:0 0 18px;font-family:var(--serif);font-size:22px;font-weight:600;color:var(--ink)}
.acct-form{display:flex;flex-direction:column;gap:14px}
.acct-field{flex-direction:column;align-items:stretch;gap:6px}
.acct-field input{min-height:44px;padding:0 12px;background:var(--surface);border:1px solid var(--ctrl-border);border-radius:10px;color:var(--ink);font-size:15px}
/* (15/10/2026) mot de passe : bouton « Afficher / Masquer » dans le champ + ligne d'aide */
.pw-wrap{position:relative;display:flex}
.pw-wrap input{flex:1;min-width:0;padding-right:92px}
.pw-eye{position:absolute;right:5px;top:50%;transform:translateY(-50%);min-height:34px;padding:0 10px;border:0;border-radius:7px;background:var(--head);color:var(--ink2);font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.pw-eye:hover{color:var(--ink)}
.pw-eye:focus-visible{outline:2px solid var(--brand);outline-offset:1px}
.pw-hint{font-size:12.5px;color:var(--ink2);min-height:0}
.pw-hint:empty{display:none}
.pw-hint.ok{color:var(--good)}
.pw-hint.bad{color:var(--bad,#c0392b)}
.cpt-pwform{max-width:420px;gap:12px}
.cpt-pwbtns{display:flex;flex-wrap:wrap;gap:8px}
.acct-msg{margin:0;font-size:13px}
/* (18/10/2026) Turnstile : vide (invisible) le plus souvent ; la case n'apparaît que si Cloudflare a un doute */
.ts-box:empty{display:none}
.ts-box{min-height:0;max-width:100%;overflow:hidden}
.acct-msg.err{padding:0;border:0;background:none;color:var(--bad);margin:0}
.acct-switch{margin:4px 0 0;font-size:14px;color:var(--ink2)}
/* Value : bandeau d'incitation « N values supplémentaires détectées » (plan Gratuit) */
.vteaser{display:flex;align-items:center;justify-content:space-between;gap:12px 16px;flex-wrap:wrap;
  margin:0 0 18px;padding:14px 18px;border:1px solid var(--brand);border-radius:10px;background:var(--brand-soft);
  color:var(--ink);font-size:14px}
.vteaser .abtn-primary{white-space:nowrap}
/* Value : « Values en cours » / « Values passées » */
.vsub{margin:0 0 10px;font-family:var(--serif);font-weight:500;font-size:19px;letter-spacing:-.01em;color:var(--ink)}
.vpassed{margin-top:28px;padding-top:16px;border-top:1px solid var(--line)}
.vpassed summary{cursor:pointer;list-style:none;font-family:var(--serif);font-weight:500;font-size:19px;letter-spacing:-.01em;color:var(--ink)}
.vpassed summary::-webkit-details-marker{display:none}
.vpassed summary::before{content:"▸ ";color:var(--ink2);font-family:var(--sans)}
.vpassed[open] summary::before{content:"▾ "}
.vpassed-note{margin:8px 0 12px;color:var(--ink2);font-size:13px}
.vmore{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 12px;margin-top:14px;color:var(--ink2);font-size:13px}
.vmore span{margin-right:4px}
.vtable-past{opacity:.85}
.vrow.vpast .vmatch .teams{color:var(--ink2)}
.acct-switch a{color:var(--ink)}

/* Bilan des values (journal manuel) */
.bilan-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:20px 0}
.stat-tile{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px 18px}
.stat-label{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2)}
.stat-value{margin-top:6px;font-family:var(--serif);font-size:24px;font-weight:600;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.stat-value.up{color:var(--good)}
.stat-value.down{color:var(--bad)}
.stat-sub{margin-top:2px;font-size:12px;color:var(--ink2)}
/* encart « Cotes boostées » du Bilan : CB 10 € / CB 20-50 € */
.bcb{width:fit-content;max-width:100%;margin:-8px 0 20px;padding:10px 16px}
.bcb-head{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2);margin-bottom:4px}
.bcb-row{display:grid;grid-template-columns:92px 64px 150px 116px 126px 112px;gap:4px 14px;align-items:baseline;font-size:14px;color:var(--ink2);padding:5px 0;font-variant-numeric:tabular-nums}
.bcb-row + .bcb-row{border-top:1px solid var(--line-soft)}
.bcb-row b{color:var(--ink);font-weight:600;white-space:nowrap}
.bcb-row b.up{color:var(--good)} .bcb-row b.down{color:var(--bad)}
.bcb-name{font-family:var(--serif);font-size:16px}
@media (max-width:760px){.bcb{width:auto}.bcb-row{grid-template-columns:repeat(2,minmax(0,1fr))}.bcb-name{grid-column:1/-1}}
.bilan-row.bihead .biwrap{white-space:normal;line-height:1.25}
.bilan-row [data-l="CLV"]{white-space:nowrap}
@media (min-width:900px){.bilan-stats{grid-template-columns:repeat(5,minmax(0,1fr))}}
.bilan-chart .plot svg{width:100%;height:auto;display:block}
.chart-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px;margin:0 0 14px}
.chart-head b{font-family:var(--serif);font-size:17px;font-weight:600;color:var(--ink)}
.chart-head span{font-size:13px;color:var(--ink2)}
.chart-toggle{margin-left:auto;min-height:30px;padding:0 12px;font-size:13px;white-space:nowrap}
/* Graphique du Bilan : gain réel, gain espéré (edge / CLV) et zone de chance */
.blegend{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:13px;color:var(--ink2);margin:-4px 0 6px}
.blegend span{display:inline-flex;align-items:center;gap:6px}
.bkey{display:inline-block;width:20px;height:0;border-top:2.5px solid var(--brand)}
.bkey.k-ev{border-top:2px dashed var(--s1)}
.bkey.k-evc{border-top:2px dashed var(--s2)}
.bkey.k-b1,.bkey.k-b2{height:11px;border:0;border-radius:3px;background:var(--s1);opacity:.28}
.bkey.k-b2{opacity:.13}
.bread{display:flex;flex-wrap:wrap;gap:2px 16px;font-size:13px;color:var(--ink2);min-height:20px;margin-bottom:6px}
.bread b{color:var(--ink);font-weight:600;white-space:nowrap}
.bread b.up{color:var(--good)} .bread b.down{color:var(--bad)}
.bread-n{color:var(--muted)}
.bilan-chart .bband1{fill:var(--s1);opacity:.16}
.bilan-chart .bband2{fill:var(--s1);opacity:.08}
.bilan-chart .bline-ev{fill:none;stroke:var(--s1);stroke-width:2;stroke-dasharray:6 5}
.bilan-chart .bline-evc{fill:none;stroke:var(--s2);stroke-width:2;stroke-dasharray:6 5}
.bilan-chart .bdot-real{fill:var(--brand);stroke:var(--surface)}
.bilan-chart .bdot-ev{fill:var(--s1);stroke:var(--surface)}
.bilan-chart .bdot-evc{fill:var(--s2);stroke:var(--surface)}
.bfaq-list{border-top:1px solid var(--line-soft);margin-top:10px;padding-top:4px}
.bfaq summary{cursor:pointer;font-size:14px;font-weight:600;color:var(--ink);padding:7px 0}
.bfaq p{margin:0 0 8px;font-size:14px;color:var(--ink2);max-width:75ch}
.bilan-form-card{max-width:none;margin:20px 0}
.bilan-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}
.bilan-note{grid-column:1/-1}
.bilan-form-actions{display:flex;gap:10px;margin-top:18px}
.bilan-table{margin:20px 0}
.bilan-table .scroller{overflow-x:auto}
.bilan-table .mtable{min-width:1185px}
/* ordre : Modifier, Match, Issue, Bookmaker, Cote, Mise, Edge, CLV, Résultat, Gain/perte */
.bilan-row{display:grid;grid-template-columns:72px minmax(170px,1.7fr) minmax(104px,1.2fr) minmax(116px,.5fr) minmax(64px,.5fr) minmax(80px,.6fr) minmax(71px,.52fr) minmax(72px,.52fr) minmax(84px,.55fr) minmax(96px,.8fr) minmax(92px,.75fr);gap:0 12px;align-items:center;padding:10px 20px;background:var(--surface);border-top:1px solid var(--line-soft)}
.bilan-row.bihead{background:var(--head);border-top:0;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2);white-space:nowrap}
.bilan-match{display:flex;flex-direction:column;gap:2px;min-width:0}
.bilan-row .bname{position:static;white-space:normal;line-height:1.25}
/* bookmaker : logo seul (nom en repli s'il n'y a pas de logo) ; bouton Modifier compact */
.bilan-book{display:flex;align-items:center;justify-content:center;min-width:0}
.bilan-edit{min-height:30px;padding:0 10px;font-size:13px}
/* issue jouée : le libellé d'une cote boostée peut être long -> 3 lignes max, texte complet au survol */
.bilan-issue{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;line-height:1.3;overflow-wrap:anywhere}
.bilan-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-start}
.status-rembourse{font-weight:700;color:var(--info-ink)}
.status-cashout{font-weight:700;color:var(--cashout-ink)}
.status-cashout-amt{margin-top:2px;font-size:13px;color:var(--cashout-ink)}
.bilan-recap{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px 20px;padding:14px 16px;background:var(--sunk);border-radius:12px}
.bilan-recap-row{display:flex;flex-direction:column;gap:2px}
.bilan-recap-l{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2);font-weight:600}
.bilan-recap-note{margin:12px 0 0;font-size:13px;color:var(--ink2)}
@media (max-width:820px){
  .bilan-fields{grid-template-columns:1fr}
  .bilan-table .mtable{min-width:0;width:auto}   /* cartes à la largeur de l'écran (max-content les étirait sur un long libellé de cote boostée) */
  .bilan-row{grid-template-columns:repeat(2,minmax(0,1fr));padding:10px 16px;gap:6px 12px}
  .bilan-book{flex-direction:column;align-items:flex-start}   /* téléphone : libellé « Bookmaker » au-dessus du logo */
  .bilan-row.bihead{display:none}
  .bilan-row .bilan-match{grid-column:1/-1}
  .bilan-actions{grid-column:1/-1;justify-content:flex-start;margin-top:2px}
}

/* encart "alertes Discord" de la page Boosts */
.dcta{display:flex;gap:12px;align-items:center;margin:0 0 14px;padding:12px 16px;border:1px solid color-mix(in srgb,var(--brand) 28%,var(--line));background:color-mix(in srgb,var(--brand-soft) 70%,var(--surface));border-radius:12px;font-size:14px;line-height:1.45;color:var(--ink)}
.dcta-ic{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;background:var(--brand);color:var(--brand-ink)}
.dcta-ic svg{display:block}
.dcta-txt{min-width:0}
.dcta-txt a{font-weight:600;text-decoration:underline;text-underline-offset:2px}
.dcta.on .dcta-ic{background:var(--surface);color:var(--brand);border:1px solid color-mix(in srgb,var(--brand) 35%,var(--line))}

/* ---- page Freebets (conversion de freebets, plan Pro) */
.fb-settings{padding:14px 18px;display:flex;flex-direction:column;gap:14px;margin-bottom:18px}
.fb-settings .field{flex-direction:column;align-items:flex-start;gap:6px}
.fb-settings .field > span:first-child{font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2)}
.fb-row{display:flex;flex-wrap:wrap;gap:12px 22px;align-items:flex-end}
.fb-row + .fb-row{align-items:flex-start}
.fb-settings .seg{flex-wrap:wrap}
.fb-inp{display:inline-flex;align-items:center;gap:6px}
.fb-inp input{width:90px}
.fb-inp i{font-style:normal;color:var(--ink2);font-weight:600}
.fb-books{flex:1 1 360px}
.fb-chips{display:flex;flex-wrap:wrap;gap:6px}
.fb-chips button{height:32px;padding:0 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink2);font:600 13.5px var(--sans);cursor:pointer}
.fb-chips button[aria-pressed="true"]{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}
.fb-chips button[aria-pressed="true"]::before{content:"✓ "}
.fb-grid{display:grid;grid-template-columns:minmax(300px,400px) minmax(0,1fr);gap:18px;align-items:start}
.fb-list-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}
.fb-list{display:flex;flex-direction:column;gap:8px;max-height:calc(100vh - 140px);overflow-y:auto;padding-right:2px}
.fb-opp{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;text-align:left;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer}
.fb-opp:hover{border-color:color-mix(in srgb,var(--brand) 45%,var(--line))}
.fb-opp.on{border:2px solid var(--brand);padding:9px 11px;box-shadow:0 4px 14px color-mix(in srgb,var(--brand) 14%,transparent)}
.fb-rank{width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--head);color:var(--ink2);font-weight:700;font-size:12.5px}
.fb-opp.on .fb-rank{background:var(--brand);color:var(--brand-ink)}
.fb-opp-txt{display:flex;flex-direction:column;min-width:0}
.fb-opp-txt b{font-weight:600;font-size:14px;overflow-wrap:anywhere}
.fb-opp-txt small{color:var(--muted);font-size:12.5px}
.fb-opp-num{display:flex;flex-direction:column;align-items:flex-end;gap:3px;font-size:13.5px;white-space:nowrap}
.fb-rate{display:inline-block;white-space:nowrap;font-weight:700;padding:2px 8px;border-radius:7px;background:color-mix(in srgb,var(--good) 13%,var(--surface));color:var(--good)}
.fb-rate.big{font-size:26px;padding:4px 12px;border-radius:10px}
.fb-card{overflow:hidden}
.fb-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding:16px 18px}
.fb-head h2{margin:0;font-family:var(--serif);font-weight:500;font-size:22px;letter-spacing:-.01em}
.fb-head .sub{margin-top:3px}
.fb-table{width:100%;border-collapse:collapse;font-size:14px;min-width:620px}
.fb-table th{padding:9px 14px;text-align:left;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2);background:var(--head)}
.fb-table td{padding:10px 14px;border-top:1px solid var(--line-soft);vertical-align:middle}
.fb-table .rr{text-align:right;white-space:nowrap}
.fb-table .fb-i{color:var(--muted)}
.fb-sub{display:block;color:var(--muted);font-size:12px}
.fb-type{display:inline-block;font-size:12px;font-weight:700;padding:2px 8px;border-radius:6px}
.fb-type.fb{background:var(--warn-bg);color:var(--warn-ink)}
.fb-type.lay{background:#f8c7cf;color:#8a1d33}
.fb-type.cash{background:var(--brand-soft);color:var(--brand)}
.fb-warn{margin:0;padding:10px 18px;background:var(--warn-bg);color:var(--warn-ink);font-size:13.5px}
.fb-sum{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:10px 16px;align-items:center;padding:12px 18px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--good) 6%,var(--surface))}
.fb-sum > div{display:flex;flex-direction:column;min-width:0}
.fb-sum .lbl{font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2)}
.fb-sum b{font-size:18px}
.fb-sum small{color:var(--muted);font-size:12px}
.fb-good{color:var(--good)}
.fb-actions{align-items:flex-end}
.fb-note{margin:0;padding:10px 18px 14px;color:var(--muted);font-size:12.5px}
.fb-lock{padding:20px 22px;display:flex;flex-direction:column;gap:12px;align-items:flex-start;max-width:46rem}
@media (max-width:900px){
  .fb-grid{grid-template-columns:minmax(0,1fr)}
  .fb-grid > #fb-detail{order:-1}
  .fb-list{max-height:60vh}
  .fb-sum{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* CB 10 € (page Boosts) : liseré doré à gauche, fond doré léger, étoile devant le pari, mise en pastille dorée */
.bxrow.cb10{background:linear-gradient(90deg,var(--gold-soft),var(--surface) 70%);box-shadow:inset 4px 0 0 var(--gold)}
.bxrow.cb10.ended{box-shadow:inset 4px 0 0 var(--gold-line)}
.cb10-star{color:var(--gold)}
.cb10-stake{display:inline-block;padding:2px 9px;border-radius:999px;background:var(--gold-soft);border:1px solid var(--gold-line);color:var(--gold-ink);font-weight:700}
/* Encadré « Reçois les cotes boostées avec les notifications sur Discord » : bandeau doré (pas une fois relié) */
.dcta:not(.on){background:var(--gold-soft);border-color:var(--gold-line)}
.dcta:not(.on) .dcta-ic{background:var(--gold);color:#fff}
.dcta:not(.on) .dcta-txt a{color:var(--gold-ink)}
/* Cadenas de l'onglet Freebets (plan Gratuit) */
/* (28/10/2026, choix de Nico) « pastille dorée » : cadenas plein dans un petit rond doré */
.nav-lock{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin-left:6px;vertical-align:-3px;border-radius:50%;background:var(--gold-soft);border:1px solid var(--gold-line);color:var(--gold-ink)}
.nav-lock svg{display:block}

/* Liens Discord et X dans l'entete (logos officiels a deposer dans site/img/ : discord.png et x.png ; sans eux,
   le lien s'affiche en texte « Discord » / « X »). Masques sur petit ecran pour ne pas surcharger l'entete. */
.soc{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:40px;min-height:40px;padding:0 9px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink2);font-weight:600;font-size:13px;text-decoration:none;white-space:nowrap}
.soc:hover{border-color:var(--ink2);color:var(--ink)}
.soc img{display:block;width:20px;height:20px;object-fit:contain}
.soc-x img{width:18px;height:18px}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .soc-x img{filter:invert(1)}}
:root[data-theme="dark"] .soc-x img{filter:invert(1)}
.soc-bar{display:inline-flex;gap:8px;align-items:center}
@media (max-width:1400px){.soc-bar{display:none}}   /* sinon l'entete deborde sur le menu : le pied de page les garde */
/* pied de page de l'application : liens Discord et X, visibles sur toutes les pages et tous les ecrans */
.app-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px 10px;padding:28px 16px calc(28px + env(safe-area-inset-bottom,0px));font-size:13.5px;color:var(--ink2)}
.app-foot > span{margin-right:4px}

/* Bilan : saisie guidée (30/09/2026) - aide sous « Match », emplacements ligne/issue, repère « auto » */
.bilan-slot{display:contents}
.bilan-hint{font-size:12.5px;line-height:1.35;color:var(--muted);min-height:1em}
.bilan-hint.ok{color:var(--good)}
.bauto{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;vertical-align:1px;cursor:help}
@media (min-width:700px){.bilan-fields .bilan-match-field{grid-column:span 2}}

/* Value : « Edge minimum » / « Fraction Kelly » cliquables -> explication en bas de page (30/09/2026) */
.vterm{all:unset;display:inline-flex;align-items:center;gap:6px;cursor:pointer;color:inherit;text-decoration:underline dotted;text-underline-offset:3px}
.vterm:hover{color:var(--brand)}
.vterm:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:4px}
.vterm-i{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;background:var(--brand-soft);color:var(--brand);font-size:11px;font-weight:700;text-decoration:none}
@keyframes noteflash{0%{background:var(--gold-soft,var(--brand-soft))}100%{background:transparent}}
.note-flash{animation:noteflash 2.2s ease-out;border-radius:8px}
@media (prefers-reduced-motion:reduce){.note-flash{animation:none;outline:2px solid var(--brand);outline-offset:4px}}
/* Bilan : pop-up « pari déjà ajouté aujourd'hui » (30/09/2026) */
.bdup-dialog{width:min(440px,calc(100vw - 32px));padding:26px 24px 22px;border:1px solid var(--line);border-radius:16px;background:var(--surface);color:var(--ink);box-shadow:0 24px 60px rgba(0,0,0,.28);text-align:center}
.bdup-dialog::backdrop{background:rgba(10,20,18,.55)}
.bdup-dialog h2{margin:10px 0 6px;font-family:var(--serif);font-size:22px;line-height:1.2}
.bdup-dialog p{margin:6px 0;color:var(--ink2)}
.bdup-icon{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--warn-bg);color:var(--warn-ink);font-size:24px;font-weight:800}
.bdup-card{display:flex;flex-direction:column;gap:3px;margin:12px 0;padding:12px 14px;border-radius:12px;background:var(--warn-bg);color:var(--ink);text-align:left}
.bdup-card .bdup-meta{color:var(--warn-ink);font-size:13.5px;font-variant-numeric:tabular-nums}
.bdup-dialog .bdup-q{color:var(--ink);font-weight:600}
.bdup-actions{display:flex;gap:10px;justify-content:center;margin-top:16px;flex-wrap:wrap}

/* Coche « Afficher les cotes d'ouverture » décochée (30/09/2026) : une colonne de moins dans les tableaux
   (l'Over/Under et le « But par équipe » règlent leur grille directement dans le code, voir ouGridStyle) */
.no-open .brow{grid-template-columns:minmax(232px,1.5fr) minmax(0,1fr) minmax(64px,.55fr)}
.past.no-open .brow{grid-template-columns:minmax(232px,1.5fr) minmax(0,1fr) minmax(64px,.55fr) minmax(0,1fr) minmax(0,1.5fr)}
.no-open .mtable{min-width:420px}
.past.no-open .mtable{min-width:700px}
@media (max-width:820px){
  .no-open .brow{grid-template-columns:172px 132px 76px}
  .past.no-open .brow{grid-template-columns:172px 132px 76px 132px 200px}
  .no-open .mtable,.past.no-open .mtable{min-width:0}
}

/* Alignements demandés par Nico (30/09/2026) : colonnes centrées sous leur titre */
.orow .ctr{text-align:center}
.orow .oprices,.orow .oage{justify-content:center}          /* page Opening : cotes d'ouverture et « Ouverture » */
.bxrow .bxstake{text-align:center}                           /* page Boosts : mise max */
.bxrow .vbilan{justify-self:center}                          /* page Boosts : bouton « Ajouter » sous « Bilan » */
@media (max-width:820px){
  .orow .oprices,.orow .oage{justify-content:flex-start}
  .bxrow .bxstake{text-align:left}
  .bxrow .vbilan{justify-self:start}
}

/* Page Value, compte Gratuit : lignes « value Pro » dorées et floutées (30/09/2026) */
.vrow.prorow{background:linear-gradient(90deg,var(--gold-soft) 0 18%,var(--surface) 75%);box-shadow:inset 4px 0 0 var(--gold)}
.vrow.prorow .pro-blur{white-space:nowrap}
.vrow.prorow .vmatch{background:var(--gold-soft)}
.pro-blur{filter:blur(5px);opacity:.7;user-select:none;pointer-events:none}
.vmatch .pro-blur{display:block}
.pro-pill{display:inline-block;padding:2px 9px;border-radius:999px;background:var(--gold-soft);border:1px solid var(--gold-line);color:var(--gold-ink);font-size:12px;font-weight:700;white-space:nowrap}
.vedge.pro-edge{color:var(--gold-ink)}
.abtn.pro-btn{background:var(--gold);border-color:var(--gold);color:#1a1405;font-weight:700;text-decoration:none;display:inline-flex;align-items:center}
.abtn.pro-btn:hover{background:color-mix(in srgb,var(--gold) 88%,black)}
.vsub-note{font-family:var(--sans);font-size:14px;font-weight:500;color:var(--ink2)}
.vsub-pro{color:var(--gold-ink);font-weight:700}

/* Page Surebets (plan Pro, 30/09/2026) : tableau compact + calculateur de mises à droite */
.sb-count{margin-top:4px;font-size:14px;font-weight:600;color:var(--ink)}
.sb-settings{margin-top:18px}
.sb-grid{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:18px;align-items:start}
.sb-table{max-height:calc(100vh - 120px);overflow-y:auto}
.sb-row{display:grid;grid-template-columns:96px minmax(150px,1.3fr) minmax(110px,1fr) minmax(220px,2fr) 28px;gap:0 14px;align-items:center;width:100%;padding:12px 18px;border:0;border-top:1px solid var(--line-soft);background:var(--surface);color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.sb-row:hover{background:color-mix(in srgb,var(--brand) 4%,var(--surface))}
.sb-row.on{background:color-mix(in srgb,var(--brand) 9%,var(--surface));box-shadow:inset 4px 0 0 var(--brand)}
.sb-row:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}
.sb-head{position:sticky;top:0;z-index:1;border-top:0;background:var(--head);cursor:default;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2);padding-top:10px;padding-bottom:10px}
.sb-head:hover{background:var(--head)}
.sb-c-match{display:flex;flex-direction:column;min-width:0}
.sb-c-match b{font-weight:600;overflow-wrap:anywhere}
.sb-c-match small{color:var(--ink2);font-size:12.5px}
.sb-c-mk{font-size:14px;color:var(--ink)}
.sb-c-odds{display:flex;flex-wrap:wrap;gap:6px}
.sb-c-go{justify-self:end;color:var(--muted);font-size:20px}
.sb-trj{display:inline-block;padding:3px 9px;border-radius:999px;background:var(--good);color:#fff;font-weight:700;font-size:14px;font-variant-numeric:tabular-nums;white-space:nowrap}
.sb-trj.near{background:var(--head);color:var(--ink2);border:1px solid var(--line)}
.sb-trj.sus{background:var(--warn-bg);color:var(--warn-ink);border:1px solid color-mix(in srgb,var(--warn-ink) 40%,transparent)}
.sb-row.near .sb-c-match b,.sb-row.near .sb-c-mk{color:var(--ink2)}
.sb-odd{display:inline-flex;align-items:baseline;gap:5px;padding:3px 8px;border:1px solid var(--line);border-radius:8px;background:var(--surface);font-size:13px;white-space:nowrap}
.sb-odd i{font-style:normal;color:var(--ink2);font-size:12px}
.sb-odd .sb-bk{color:var(--ink2);font-size:12px}
.sb-age{font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.sb-age::before{content:"· "}
.sb-age.old{color:var(--warn-ink);font-weight:600}
.sb-c-odds > .sb-age{align-self:center}
.sb-c-odds > .sb-age::before{content:"relevée il y a "}
/* calculateur */
.sb-panel{position:sticky;top:12px;padding:16px 18px;display:flex;flex-direction:column}
.sb-panel.empty{padding:32px 20px}
.sb-p-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px}
.sb-p-head h2{margin:0;font-family:var(--serif);font-weight:500;font-size:22px;line-height:1.2}
.sb-p-head h2 a{color:inherit;text-decoration:none}
.sb-p-head h2 a:hover{text-decoration:underline}
.sb-p-sub{margin:2px 0 0;color:var(--ink2);font-size:13px}
.sb-p-head .sb-trj{font-size:17px;padding:4px 11px}
.sb-p-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--line-soft);font-size:14px}
.sb-p-row .seg button{min-height:34px}
.sb-p-row input[type=number]{width:96px;min-height:40px;padding:0 10px;background:var(--surface);border:1px solid var(--ctrl-border);border-radius:10px;color:var(--ink);font:inherit}
.sb-legs{display:flex;flex-direction:column;gap:8px;padding:10px 0;border-top:1px solid var(--line-soft)}
.sb-leg{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 10px;border-radius:10px;background:var(--page)}
.sb-leg-l{display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-width:0;font-size:14px}
.sb-leg-sub{display:block;color:var(--muted);font-size:12px}
.sb-leg-sub.old{color:var(--warn-ink)}
.sb-leg-r{display:flex;flex-direction:column;align-items:flex-end;white-space:nowrap}
.sb-leg-r b{font-size:17px}
.sb-leg-r small{color:var(--muted);font-size:12px}
.sb-p-sum b{font-size:16px}
.sb-good{color:var(--good)} .sb-bad{color:var(--bad)}
.sb-warn{margin:10px 0 0;padding:10px 12px;border-radius:10px;background:var(--warn-bg);color:var(--warn-ink);font-size:13px;line-height:1.45}
.sb-warn.soft{background:var(--head);color:var(--ink2)}
.sb-p-actions{display:flex;justify-content:flex-end;margin-top:12px}
/* compte Gratuit : lignes dorées floutées (TRJ et fraîcheur visibles), calculateur remplacé par l'encart Pro */
.sb-row.prorow{cursor:default;background:linear-gradient(90deg,var(--gold-soft) 0 22%,var(--surface) 80%);box-shadow:inset 4px 0 0 var(--gold)}
.sb-row.prorow .pro-blur{display:block;white-space:nowrap}
.sb-row.prorow .sb-c-odds .pro-blur{display:inline-flex}
.sb-row.prorow .sb-c-go{justify-self:end;font-size:13px}
.sb-row.prorow .abtn{white-space:nowrap}
.sb-row.prorow{grid-template-columns:96px minmax(150px,1.3fr) minmax(90px,.8fr) minmax(220px,2fr) auto}
.sb-lock{gap:10px;align-items:flex-start;background:linear-gradient(180deg,var(--gold-soft),var(--surface) 70%);border-color:var(--gold-line)}
.sb-lock p{margin:0;color:var(--ink2);font-size:14px;line-height:1.5}
.sb-lock .sb-lock-t{color:var(--gold-ink);font-weight:700;font-size:16px}
@media (max-width:1000px){
  .sb-grid{grid-template-columns:minmax(0,1fr)}
  .sb-panel{position:static}
  .sb-table{max-height:none;overflow:visible}
}
@media (max-width:760px){
  .sb-head{display:none}
  .sb-row,.sb-row.prorow{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"trj match go" "mk mk mk" "odds odds odds";gap:6px 12px;padding:12px 14px}
  .sb-c-trj{grid-area:trj}.sb-c-match{grid-area:match}.sb-c-go{grid-area:go}.sb-c-mk{grid-area:mk;font-size:13px;color:var(--ink2)}.sb-c-odds{grid-area:odds}
}
.sb-p-gain{display:flex;flex-direction:column;align-items:flex-end}
.sb-p-gain small{color:var(--muted);font-size:12px}

/* Page privée « Bilan CB 20 € / 50 € » (30/09/2026) */
.cbs-private{margin-top:4px;font-size:14px;color:var(--gold-ink);font-weight:600}
.cbs-break{margin:0 0 16px}
.cbs-break .up{color:var(--good);font-weight:600}.cbs-break .down{color:var(--bad);font-weight:600}
.cbs-table{margin-top:8px}
.cbs-in{min-width:1080px}
.cbs-row{display:grid;grid-template-columns:92px 124px minmax(170px,1.4fr) minmax(180px,1.6fr) 104px 64px 190px 88px;gap:0 12px;align-items:center;padding:10px 18px;border-top:1px solid var(--line-soft);background:var(--surface);font-size:14px}
.cbs-head{background:var(--head);border-top:0;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2)}
.cbs-row .rr{text-align:right}
.cbs-row.pending{background:color-mix(in srgb,var(--warn-bg) 35%,var(--surface))}
.cbs-when{font-size:12.5px;color:var(--ink2)}
.cbs-ev{display:flex;gap:8px;align-items:center;min-width:0}
.cbs-ev > span{display:flex;flex-direction:column;min-width:0}
.cbs-ev b{font-weight:600;overflow-wrap:anywhere}
.cbs-ev small,.cbs-bet small{color:var(--ink2);font-size:12px}
.cbs-bet{display:flex;flex-direction:column;overflow-wrap:anywhere}
.cbs-before{color:var(--muted);font-size:12.5px}
.cbs-stake{display:inline-block;padding:1px 8px;border-radius:999px;font-weight:700;font-size:12.5px;background:var(--brand-soft);color:var(--brand)}
.cbs-stake.s50{background:var(--gold-soft);color:var(--gold-ink);border:1px solid var(--gold-line)}
.cbs-resbox{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px}
.cbs-res{min-height:34px;padding:0 8px;border:1px solid var(--ctrl-border);border-radius:8px;background:var(--surface);color:var(--ink);font:inherit;font-size:13.5px}
.cbs-hint{flex-basis:100%;font-size:11.5px;color:var(--muted)}
.cbs-hint.ok{color:var(--good)}
.cbs-row .up{color:var(--good);font-weight:600}.cbs-row .down{color:var(--bad);font-weight:600}
#cbs-msg:empty{display:none}
.sb-calc{display:flex;flex-direction:column}
.cbs-break .cbs-group td{padding-top:12px;padding-bottom:6px;background:var(--head);font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2)}
.cbs-raised{display:block;font-size:11.5px;color:var(--good);font-weight:600;white-space:nowrap}
.cbs-raised-box{margin:0 0 12px;padding:10px 16px}
.cbs-raised-box summary{cursor:pointer;font-weight:600;color:var(--ink)}
.cbs-raised-box ul{margin:8px 0 2px;padding-left:18px;font-size:13.5px;line-height:1.6;color:var(--ink2)}
.cbs-raised-box small{color:var(--muted)}

/* ---------------------------------------------------------------- tennis (02/10/2026) : liste compacte de la page Matchs */
.sport-seg .seg button{font-weight:600}
.tn-list{margin-bottom:16px}
.tn-row{display:grid;grid-template-columns:76px minmax(190px,1.6fr) minmax(128px,1fr) minmax(128px,1fr) 78px 84px 84px 22px;align-items:center;gap:10px;padding:10px 18px;border-top:1px solid var(--line-soft);background:var(--surface);cursor:pointer}
.tn-row:hover{background:color-mix(in srgb,var(--brand) 4%,var(--surface))}
.tn-row:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}
.tn-row.open{background:color-mix(in srgb,var(--brand) 6%,var(--surface))}
.tn-head{cursor:default;border-top:0;background:var(--head);font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2);padding-top:9px;padding-bottom:9px}
.tn-head:hover{background:var(--head)}
.tn-head .ctr{text-align:center}
.tn-group{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;padding:9px 18px;border-top:1px solid var(--line);background:var(--page);font-weight:700}
.tn-group .otag{margin-left:0}
.tn-group .when{margin:0;font-weight:500}
.tn-time b{display:block;font-size:15px}
.tn-time small{color:var(--ink2);font-size:12px}
.tn-players{display:flex;flex-direction:column;gap:2px;min-width:0}
.tn-players .tn-n{font-weight:600;overflow-wrap:anywhere}
.tn-line{color:var(--ink2);font-size:12px}
.tn-best{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:38px;padding:4px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.tn-best b{font-size:16px}
.tn-best.off{justify-content:center}
.tn-bk{display:inline-flex;align-items:center;gap:6px;min-width:0;color:var(--ink2);font-size:12px}
.tn-bk .tn-bkname{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:80px}
.tn-bk .tn-more{font-size:11px;color:var(--ink3,var(--ink2))}
.tn-bk .blogo{height:14px;max-width:44px}
.tn-bk .blogo[src*="/logos/pinnacle"],.tn-bk .blogo[src*="/logos/unibet"],.tn-bk .blogo[src*="/logos/betfair"]{height:17px;max-width:60px}
.tn-trj .trjc{justify-content:center}
.tn-mv{text-align:center;font-size:13px}
.tn-chev{color:var(--ink2);text-align:center}
.tn-detail{padding:4px 18px 16px;border-top:1px solid var(--line-soft);background:var(--page)}
.tn-detail .mblock{margin:0}
.tn-detail .mbar{background:var(--head)}
@media (max-width:900px){
  .tn-head{display:none}
  .tn-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"time time" "pl pl" "b1 b2" "trj trj" "m1 m2";gap:8px 10px;padding:12px 16px}
  .tn-row>.tn-time{grid-area:time;display:flex;gap:8px;align-items:baseline}
  .tn-row>.tn-time::before{display:none}
  .tn-row>.tn-players{grid-area:pl}
  .tn-row>:nth-child(3){grid-area:b1}
  .tn-row>:nth-child(4){grid-area:b2}
  .tn-row>.tn-trj{grid-area:trj;display:flex;align-items:center;gap:8px}
  .tn-row>.tn-mv:nth-of-type(6){grid-area:m1}
  .tn-row>.tn-mv:nth-of-type(7){grid-area:m2}
  .tn-row>.tn-mv{text-align:left}
  .tn-row>.tn-chev{display:none}
  .tn-detail{padding:4px 8px 12px}
}
/* tennis réservé au plan Pro (02/10/2026) : bouton « Tennis 🔒 » et carte d'appel au Pro */
.seg button.seg-pro{color:var(--gold-ink)}
.seg button.seg-pro:hover{background:color-mix(in srgb,var(--gold) 14%,transparent)}
.tn-pro{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:22px 24px;border-color:color-mix(in srgb,var(--gold) 55%,var(--line));background:color-mix(in srgb,var(--gold) 7%,var(--surface))}
.tn-pro h2{margin:0;font-size:20px}
.tn-pro p{margin:0;color:var(--ink2);max-width:62ch}
/* match qui vient de changer de place dans le tri TRJ (changement de ligne) : bref surlignage */
.tn-row.tn-moved{animation:tnMoved 1.4s ease-out}
@keyframes tnMoved{0%,35%{background:color-mix(in srgb,var(--gold) 28%,var(--surface))}100%{background:color-mix(in srgb,var(--brand) 6%,var(--surface))}}
@media (prefers-reduced-motion:reduce){.tn-row.tn-moved{animation:none}}
/* ---- Page Matchs football : vue compacte (02/10/2026) - même esprit que la liste tennis (.tn-*) ---- */
.fr-list{margin-bottom:16px}
.fr-row{display:grid;align-items:center;gap:10px;padding:10px 18px;border-top:1px solid var(--line-soft);background:var(--surface);cursor:pointer}
.fr-row.n3{grid-template-columns:84px minmax(160px,1.4fr) repeat(3,minmax(104px,1fr)) 76px repeat(3,minmax(62px,72px)) 18px}
.fr-row.n2{grid-template-columns:84px minmax(180px,1.6fr) repeat(2,minmax(124px,1fr)) 78px repeat(2,96px) 18px}
.fr-row:hover{background:color-mix(in srgb,var(--brand) 4%,var(--surface))}
.fr-row:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}
.fr-row.open{background:color-mix(in srgb,var(--brand) 6%,var(--surface))}
.fr-row.fr-head{cursor:default;border-top:0;background:var(--head);font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2);padding-top:9px;padding-bottom:9px}
.fr-row.fr-head:hover{background:var(--head)}
.fr-head .ctr{text-align:center}
.fr-time b{display:block;font-size:15px}
.fr-time small{color:var(--ink2);font-size:12px;white-space:nowrap}
.fr-teams{display:flex;flex-direction:column;gap:1px;min-width:0}
.fr-teams .fr-n{font-weight:600;overflow-wrap:anywhere}
.fr-lg{color:var(--ink2);font-size:12px}
.fr-line{color:var(--ink)}
.fr-trj .trjc{justify-content:center}
.fr-mv{text-align:center;font-size:13px}
.fr-chev{color:var(--ink2);text-align:center}
.fr-row.locked{cursor:default}
.fr-row.locked:hover{background:var(--surface)}
.fr-lock{grid-column:3 / -3;text-align:center;color:var(--gold-ink);font-weight:600;background:var(--gold-soft);border:1px solid var(--gold-line);border-radius:10px;padding:8px}
.fr-pro{grid-column:-3 / -1;justify-self:end}
.fr-detail{padding:4px 18px 16px;border-top:1px solid var(--line-soft);background:var(--page)}
.fr-detail .mblock{margin:0}
.fr-detail .mbar{background:var(--head)}
.fr-row.tn-moved{animation:tnMoved 1.4s ease-out}
@media (prefers-reduced-motion:reduce){.fr-row.tn-moved{animation:none}}
@media (max-width:900px){
  .fr-head{display:none}
  .fr-row{padding:12px 16px;gap:8px 10px}
  .fr-row.n2{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"time time" "tm tm" "b1 b2" "trj trj" "m1 m2"}
  .fr-row.n3{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-areas:"time time time" "tm tm tm" "b1 b2 b3" "trj trj trj" "m1 m2 m3"}
  .fr-row>.fr-time{grid-area:time;display:flex;gap:8px;align-items:baseline}
  .fr-row>.fr-teams{grid-area:tm}
  .fr-b1{grid-area:b1}.fr-b2{grid-area:b2}.fr-b3{grid-area:b3}
  .fr-m1{grid-area:m1}.fr-m2{grid-area:m2}.fr-m3{grid-area:m3}
  .fr-row>.fr-trj{grid-area:trj;display:flex;align-items:center;gap:8px}
  .fr-row>.fr-mv{text-align:left}
  .fr-row>.fr-chev{display:none}
  .fr-row.n3 .tn-best{flex-direction:column;align-items:flex-start;gap:2px;padding:4px 8px}
  .fr-row.locked{grid-template-areas:"time time time" "tm tm tm" "lk lk lk" "pro pro pro"}
  .fr-lock{grid-area:lk}.fr-pro{grid-area:pro;justify-self:start}
  .fr-detail{padding:4px 8px 12px}
}
/* listes compactes (foot, tennis) : flèche du mouvement en couleur (vert = cote en hausse, rouge = en baisse) */
.mv-up{color:var(--good)}
.mv-down{color:var(--bad)}
/* page Matchs (foot et tennis), 02/10/2026 : ligne 1 = sport, compétitions, période ... « sans cote » ;
   ligne 2 = « Rechercher » calé à droite, puis « cotes d'ouverture » sous « sans cote » */
.filters.f-grid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 20px;align-items:center}
.f-grid .f-main{display:flex;align-items:center;flex-wrap:wrap;gap:12px 20px}
.f-grid .f-empty{grid-column:2;grid-row:1}
.f-grid .f-search{grid-column:1;grid-row:2;justify-self:end}
.f-grid .f-open{grid-column:2;grid-row:2}
@media (max-width:900px){
  .filters.f-grid{grid-template-columns:minmax(0,1fr)}
  .f-grid .f-empty,.f-grid .f-search,.f-grid .f-open{grid-column:1;grid-row:auto;justify-self:start}
}
/* pastilles « meilleure cote » des listes compactes (foot, tennis) : étiquette logo comme sur Value / Boosts,
   un peu plus petite pour tenir dans la pastille (02/10/2026) */
.tn-best{padding:4px 6px 4px 10px;gap:6px}
.tn-best .logo-tag{width:104px;height:26px}
.tn-best .logo-tag .blogo,.tn-best .logo-tag .blogo[src]{height:36px;max-width:none;width:auto;border-radius:0}
.fr-row.n3 .tn-best .logo-tag{width:88px;height:24px}
.fr-row.n3 .tn-best .logo-tag .blogo,.fr-row.n3 .tn-best .logo-tag .blogo[src]{height:33px}
.fr-row.n3{grid-template-columns:84px minmax(150px,1.1fr) repeat(3,minmax(136px,1fr)) 72px repeat(3,minmax(58px,68px)) 18px}
@media (max-width:900px){
  .fr-row.n3 .tn-best .logo-tag{width:84px;height:22px}
  .fr-row.n3 .tn-best .logo-tag .blogo,.fr-row.n3 .tn-best .logo-tag .blogo[src]{height:30px}
  .fr-row.n3{grid-template-columns:repeat(3,minmax(0,1fr))}
}
/* ---- En-tête des pages Matchs foot / tennis (02/10/2026, piste A) : sport + recherche, marchés, barre d'outils + menu Options */
.hbar{display:flex;align-items:center;flex-wrap:wrap;gap:12px 16px;margin:24px 0 14px}
.hsearch{flex:1 1 320px;max-width:520px;display:flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;background:var(--surface);border:1px solid var(--ctrl-border);border-radius:10px;cursor:text}
.hsearch:focus-within{outline:2px solid var(--brand);outline-offset:1px}
.hsearch-i{font-size:14px;opacity:.7}
.hsearch input{flex:1;min-width:0;border:0;background:none;font:inherit;color:var(--ink);outline:none;padding:10px 0}
.htool{position:relative;display:flex;align-items:center;flex-wrap:wrap;gap:10px 12px;margin:12px 0 12px;padding:10px 12px;background:var(--surface);border:1px solid var(--line);border-radius:14px}
.htool .pick-l{margin:0}
.hsep{width:1px;align-self:stretch;min-height:28px;background:var(--line)}
.opts{position:relative}
.opts>summary{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border:1px solid var(--brand);border-radius:10px;color:var(--brand);font-weight:600;cursor:pointer;list-style:none;user-select:none;background:var(--surface)}
.opts>summary::-webkit-details-marker{display:none}
.opts>summary::after{content:"▾";font-size:12px}
.opts[open]>summary::after{content:"▴"}
.opts .count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--brand);color:var(--brand-ink);font-size:12px;font-weight:700}
.opts .count-badge[hidden]{display:none}
.opts-panel{position:absolute;right:0;top:calc(100% + 8px);z-index:30;width:min(420px,calc(100vw - 32px));display:flex;flex-direction:column;gap:4px;padding:14px 16px;background:var(--surface);border:1px solid var(--ctrl-border);border-radius:14px;box-shadow:0 12px 32px rgba(0,0,0,.18)}
.opts-h{font-weight:700;margin-bottom:2px}
.opts-panel .check{min-height:36px}
.opts-l{margin-top:6px;color:var(--ink2);font-size:13px}
.opts-panel .chips{gap:6px}
/* (15/10/2026) bookmakers obligatoires (page Matchs) */
.opts-help{margin:2px 0 6px;font-size:12.5px;color:var(--ink2);line-height:1.4}
.chips .bchip{display:inline-flex;align-items:stretch;border:1px solid var(--ctrl-border);border-radius:999px;background:var(--surface);overflow:hidden}
.chips .bchip button{opacity:1;border:0;border-radius:0;min-height:36px;background:transparent;color:var(--ink);font:inherit;font-size:14px;cursor:pointer}
.chips .bchip .bchip-n{display:inline-flex;align-items:center;gap:8px;padding:0 10px 0 12px}
.chips .bchip .bchip-s{padding:0 10px;border-left:1px solid var(--line-soft);color:var(--ink2);font-size:15px}
.chips .bchip .bchip-s:hover{color:var(--brand)}
.chips .bchip.off{opacity:.45}
.chips .bchip.off .bchip-n{padding-right:12px}
.chips .bchip.must{border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand)}
.chips .bchip.must .bchip-s{background:var(--brand);color:var(--brand-ink)}
.chips .bchip button:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}
.best-must{margin-left:6px;font-size:11.5px;font-weight:600;color:var(--ink2)}
.opts-comm{margin-top:8px;padding-top:10px;border-top:1px solid var(--line-soft)}
@media (max-width:900px){
  .hsearch{max-width:none;flex-basis:100%}
  .hsep{display:none}
  .htool .spacer{display:none}
  .opts{position:static}
  .opts-panel{left:0;right:0;width:auto}
}
.hgrp{display:inline-flex;align-items:center;gap:8px}
/* Bilan CB 20/50 € (page privée) : l'émoji du sport est un menu pour corriger le sport (02/10/2026) */
.cbs-sport{position:relative;cursor:pointer}
.cbs-sport:hover,.cbs-sport:focus-within{outline:2px solid var(--brand);outline-offset:1px}
.cbs-sport.manual::after{content:"";position:absolute;right:-1px;bottom:-1px;width:9px;height:9px;border-radius:50%;background:var(--brand);border:2px solid var(--surface)}
.cbs-sport-sel{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;font-size:16px}
/* Bilan public : émoji du sport (modifiable) devant le match + tableau « Bilan par sport » (02/10/2026) */
.bilan-match.bilan-match-sp{display:flex;flex-direction:row;align-items:center;gap:10px;min-width:0}
.bilan-match-t{display:flex;flex-direction:column;min-width:0}
.bilan-sports>summary{cursor:pointer;padding:12px 16px;font-weight:600}
.bilan-sports[open]>summary{border-bottom:1px solid var(--line-soft)}
/* Bilan CB : CB 25 € (Unibet, 02/10/2026) + pastille de mise corrigeable */
.cbs-stake.s25{background:color-mix(in srgb,var(--info-ink) 14%,var(--surface));color:var(--info-ink)}
.cbs-stake-pick{position:relative;cursor:pointer}
.cbs-stake-pick::after{content:" ▾";font-size:10px;opacity:.7}
.cbs-stake-pick:hover,.cbs-stake-pick:focus-within{outline:2px solid var(--brand);outline-offset:1px}
/* Accueil masqué une fois connecté (le logo ValueLab y mène) (05/10/2026) */
.nav a[hidden]{display:none}
.priv-links{display:flex;flex-wrap:wrap;gap:8px}

/* Conversion de freebets : réglages par bookmaker « ⚙ Réglages » (05/10/2026) */
.fb-settings{overflow:visible}
.fbk-anchor{position:relative}
.fb-chips button{display:inline-flex;align-items:center;gap:6px}
.fbk-nb{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 4px;border-radius:999px;border:2px solid var(--good);color:var(--good);background:var(--surface);font:800 11px/1 var(--sans);font-variant-numeric:tabular-nums}
.fbk-nb[hidden],.fbk-panel[hidden]{display:none}
.fbk-btn{display:inline-flex;align-items:center;gap:6px;margin-left:10px;padding:3px 10px;min-height:28px;border:1px solid var(--brand);border-radius:999px;background:var(--surface);color:var(--brand);font:600 12.5px var(--sans);letter-spacing:0;text-transform:none;cursor:pointer;vertical-align:middle}
.fbk-btn:hover,.fbk-btn[aria-expanded="true"]{background:var(--brand-soft)}
.fbk-panel{position:absolute;left:0;top:calc(100% + 6px);z-index:30;width:min(520px,calc(100vw - 32px));display:flex;flex-direction:column;gap:8px;padding:12px 14px;background:var(--surface);border:1px solid var(--ctrl-border);border-radius:14px;box-shadow:0 12px 32px rgba(0,0,0,.18);color:var(--ink)}
.fbk-h{display:flex;justify-content:space-between;align-items:center;gap:10px}
.fbk-x{border:0;background:transparent;color:var(--ink2);font-size:14px;cursor:pointer;min-width:32px;min-height:32px;border-radius:8px}
.fbk-x:hover{background:var(--head)}
.fbk-scroll{overflow-x:auto}
.fbk-table{width:100%;border-collapse:collapse}
.fbk-table th{font-size:12px;color:var(--ink2);text-align:left;font-weight:600;padding:4px}
.fbk-table td{padding:5px 4px;border-top:1px solid var(--line-soft)}
.fbk-table .c{text-align:center}
.fbk-table input[type=checkbox]{width:18px;height:18px;accent-color:var(--brand)}
.fbk-table input[type=number]{width:84px;min-height:36px;padding:0 10px;border:1px solid var(--ctrl-border);border-radius:9px;background:var(--surface);color:var(--ink);font:inherit}
.fbk-empty{color:var(--ink2);font-size:13px}
.fbk-eur{display:inline-flex;align-items:center;gap:4px}
.fbk-eur i{font-style:normal;color:var(--ink2);font-size:13px}
.fbk-table .fbk-eur input[type=number]{width:72px}
.fb-chip-bal{margin-left:6px;font-weight:500;font-size:12.5px;color:var(--ink2);font-variant-numeric:tabular-nums}
.fb-chips button[aria-pressed="true"] .fb-chip-bal{color:var(--brand)}
.fbk-help{margin:0;color:var(--muted);font-size:12px;line-height:1.45}
.fbk-f{padding-top:8px;border-top:1px solid var(--line-soft)}
.fbk-reset{border:0;background:transparent;padding:0;color:var(--brand);font:600 13px var(--sans);cursor:pointer}
@media (max-width:600px){.fbk-panel{left:-8px;width:calc(100vw - 48px);padding:12px 10px}.fbk-table th,.fbk-table td{padding:5px 3px}.fbk-table th{font-size:11.5px}.fbk-table input[type=number],.fbk-table .fbk-eur input[type=number]{width:56px;padding:0 6px}}
/* Freebets : badge des conversions avec un match de tennis (risque d'abandon, 06/10/2026) */
.fb-tn-risk{display:inline-block;margin-left:6px;padding:0 6px;border-radius:999px;background:var(--warn-bg);color:var(--warn-ink);font-size:11.5px;font-weight:600;white-space:nowrap}

/* Bilan des values (page privée, 06/10/2026) */
.vb-sync{margin:0 0 12px;padding:10px 14px;border-radius:12px;background:var(--brand-soft);color:var(--brand);font-weight:600;font-size:14px}
.vb-breaks{display:flex;flex-direction:column}
#vb-msg:empty{display:none}
.vb-break > summary{cursor:pointer;padding:12px 18px;font-weight:700;list-style-position:inside}
.vb-break td:first-child{white-space:nowrap}
.vb-in{min-width:1240px}
.vb-row{display:grid;grid-template-columns:84px minmax(190px,1.5fr) minmax(150px,1.2fr) 112px 84px 64px 84px 72px 190px 84px 64px;gap:0 12px;align-items:center;padding:10px 18px;border-top:1px solid var(--line-soft);background:var(--surface);font-size:14px}
.vb-row.vb-head{background:var(--head);border-top:0;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2)}
.vb-row .rr{text-align:right}.vb-row .ctr{text-align:center}
.vb-row.pending{background:color-mix(in srgb,var(--warn-bg) 35%,var(--surface))}
.vb-row.deleted{opacity:.55}
.vb-row .up{color:var(--good);font-weight:600}.vb-row .down{color:var(--bad);font-weight:600}
.vb-when{display:flex;flex-direction:column;font-size:12.5px;color:var(--ink2)}
.vb-ev,.vb-bet{display:flex;flex-direction:column;min-width:0;overflow-wrap:anywhere}
.vb-ev b{font-weight:600}
.vb-ev small,.vb-bet small,.vb-row .rr small{display:block;color:var(--ink2);font-size:12px;font-weight:400}
.vb-del{min-height:32px;padding:0 10px;font-size:13px}
.bauto.vb-auto1{background:var(--warn-bg);color:var(--warn-ink)}

/* Bandeau « relie ton compte Discord » pour un compte Pro non relié (07/10/2026) */
.dnudge-wrap{max-width:1280px;margin:0 auto;padding:0 32px}
.dnudge-wrap:empty{display:none}
.dnudge-wrap .dnudge{margin:20px 0 0;flex-wrap:wrap}
.dnudge .dcta-ic{font-size:17px}
.dnudge .dcta-txt{flex:1 1 320px}
.dnudge-act{display:flex;gap:8px;flex-wrap:wrap}
@media (max-width:820px){.dnudge-wrap{padding:0 16px}}
.vb-btns{display:flex;gap:8px;flex-wrap:wrap}
.vb-sync.err{background:var(--warn-bg);color:var(--warn-ink)}
.vb-sync-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.vb-sync details{margin-top:6px;font-weight:400}
.vb-sync ul{margin:6px 0 0;padding-left:18px;font-size:13px}
.vb-x{border:0;background:transparent;color:inherit;cursor:pointer;font-size:14px;min-width:28px;min-height:28px}

/* Mon compte : encart Discord simplifié (07/10/2026) */
.dintro{display:flex;flex-direction:column;gap:10px}
.dperks{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr));gap:10px}
.dperk{padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.dperk.on{border-color:var(--brand);background:var(--brand-soft)}
.dperk b{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:14px}
.dperk-you{margin-left:auto;padding:1px 8px;border-radius:999px;background:var(--brand);color:var(--brand-ink);font-size:11px;font-weight:700}
.dperk ul{margin:6px 0 0;padding-left:18px;font-size:13.5px;line-height:1.5;color:var(--ink)}
/* Bilan : détail par edge / marché / sport (07/10/2026) */
.bilan-breaks{display:flex;flex-direction:column}
.bilan-breaks .bilan-sports td:first-child{white-space:nowrap}
.bilan-row .bauto{white-space:nowrap}
/* (07/10/2026) nom de match cliquable dans le Bilan : léger soulignement pour le repérer */
.bilan-row a.teams{text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px}
.bilan-row a.teams:hover{text-decoration-color:currentColor}
/* (07/10/2026) « auto » prévu : pari en attente que le robot réglera, pastille en contour (pas encore réglé) */
.bauto.bauto-next{background:transparent;box-shadow:inset 0 0 0 1px var(--brand)}

/* (07/10/2026) CLV « en cours » : match pas encore commencé, valeur provisoire — orange, jamais en gras */
.clv-live{color:var(--live);font-weight:400;cursor:help}
.clv-live .num,.clv-live.num{font-weight:400}
.clv-live-ico{margin-right:4px;font-size:12px;opacity:.9}
.stat-live{display:block;margin-top:2px}

/* ===== (08/10/2026) Bilan standard, version A « tableau de bord épuré » ===== */
.bilan-filters2{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:18px 0 14px}
.bf-chip{display:inline-flex;align-items:center;gap:4px;min-height:36px;padding:0 4px 0 12px;border:1px solid var(--ctrl-border);border-radius:999px;background:var(--surface);font-size:13.5px;font-weight:600;color:var(--ink);cursor:pointer}
.bf-chip select{border:0;background:transparent;color:var(--ink2);font:inherit;font-weight:500;padding:4px 6px;cursor:pointer;max-width:150px}
.bf-chip:focus-within{outline:2px solid var(--brand);outline-offset:2px}
.bf-chip select:focus{outline:none}
.bf-chip.on{border-color:var(--brand);background:var(--brand-soft)}
.bf-chip.on select{color:var(--brand);font-weight:600}
.bf-reset{border:0;background:none;padding:6px 4px;color:var(--brand);font:inherit;font-size:13.5px;font-weight:600;text-decoration:underline;cursor:pointer}
.bilan-top{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:stretch}
.bilan-top>.card{margin:0;min-width:0}
.bkpis{display:flex;flex-direction:column;justify-content:space-between;gap:14px;padding:18px 20px}
.bkpis-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 24px}
.bkpi-l{font-size:11.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.bkpi-v{margin-top:4px;font:500 30px/1.15 var(--serif);font-variant-numeric:tabular-nums;color:var(--ink)}
.bkpi-v.up{color:var(--good)}.bkpi-v.down{color:var(--bad)}
.bkpi-s{margin-top:2px;font-size:12.5px;color:var(--ink2)}
.bkpis-foot{padding-top:10px;border-top:1px solid var(--line-soft);font-size:12.5px;color:var(--muted)}
.bchart-compact{padding:16px 18px 10px}
.bchart-compact .chart-head{margin-bottom:6px}
.bchart-compact .blegend{margin-bottom:4px}
.bchart-compact .bread{margin:6px 0 0;font-size:12px}
.bilan-ana{margin:14px 0 0}
.bilan-ana>summary{display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:0 14px;border:1px solid var(--ctrl-border);border-radius:10px;background:var(--surface);font-weight:600;cursor:pointer;list-style:none}
.bilan-ana>summary::-webkit-details-marker{display:none}
.bilan-ana>summary::after{content:"▾";color:var(--muted);margin-left:4px}
.bilan-ana[open]>summary::after{content:"▴"}
.bilan-ana>summary span{color:var(--muted);font-weight:500}
.bilan-ana-in{display:flex;flex-direction:column;gap:12px;margin-top:12px}
.bilan-ana-in .bcb{margin:0}
.bilan-sec{display:flex;align-items:center;gap:10px;margin:24px 0 10px;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2)}
.bilan-sec-n{padding:1px 8px;border-radius:999px;background:var(--head);font-size:12px;letter-spacing:0;color:var(--ink2)}
.bilan-sec-line{flex:1;height:1px;background:var(--line)}
.bilan-sec+.bilan-table{margin-top:0}
@media (max-width:900px){.bilan-top{grid-template-columns:1fr}}
@media (max-width:480px){.bilan-ana>summary span{display:none}.bkpi-v{font-size:24px}.bkpis-grid{gap:14px 16px}.bf-chip select{max-width:120px}}
/* (08/10/2026) graphique du Bilan en grand */
.bzoom-btn{margin-left:auto;min-height:30px;padding:0 10px;font-size:12.5px}
.bzoom{width:min(1800px,calc(100vw - 32px));max-width:none;max-height:calc(100vh - 32px);padding:0;border:1px solid var(--line);border-radius:16px;background:var(--surface);color:var(--ink);box-shadow:0 24px 70px -20px rgba(0,0,0,.45)}
.bzoom::backdrop{background:rgba(19,32,30,.55)}
.bzoom-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px;border-bottom:1px solid var(--line-soft)}
.bzoom-bar b{font:600 18px var(--serif)}
.bzoom-n{color:var(--ink2);font-size:13.5px}
.bzoom-bar .abtn{white-space:nowrap;flex-shrink:0}
.bzoom-chart .chart-card{padding-top:14px}
.bzoom-chart .chart-card{border:0;box-shadow:none;margin:0}
@media (max-width:600px){.bzoom{width:calc(100vw - 12px);max-height:calc(100vh - 12px)}.bzoom-bar{padding:10px 14px}}
/* (08/10/2026) bilan privé des values, présentation version A */
.vb-chips{display:contents}
.vb-filters .hsearch{margin-left:auto}
.vb-reglages{margin:0 0 14px}
.vb-reglages .fb-settings{margin:12px 0 0}
.bilan-table.cbs-table{margin-top:0}
@media (max-width:700px){.vb-filters .hsearch{margin-left:0;flex:1 1 100%}}
/* (08/10/2026) nettoyage du bilan privé */
.vb-clean{gap:10px}
.vb-clean-rule{display:flex;align-items:flex-start;gap:10px;margin:0;font-size:14px;line-height:1.45}
.vb-clean-rule input{margin-top:3px;flex-shrink:0}
.vb-clean-n{color:var(--brand);white-space:nowrap}
.vb-clean-rule small{color:var(--muted)}
.vb-clean .bf-reset{align-self:flex-start;padding-left:0}
.vb-excl{color:var(--warn-ink)!important;font-weight:600!important}
/* (08/10/2026) Sélection ValueLab : onglets de la page Value */
.vtabs{display:flex;gap:4px;margin:0 0 18px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
.vtabs::-webkit-scrollbar{display:none}
.vtabs button{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 16px;margin-bottom:-1px;border:0;border-bottom:3px solid transparent;background:none;color:var(--ink2);font:600 15px var(--sans);white-space:nowrap;cursor:pointer}
.vtabs button:hover{color:var(--ink)}
.vtabs button[aria-selected="true"]{color:var(--brand);border-bottom-color:var(--brand)}
.vtabs button:focus-visible{outline:2px solid var(--brand);outline-offset:-2px;border-radius:8px 8px 0 0}
.vtab-n:not(:empty){min-width:22px;padding:1px 7px;border-radius:999px;background:var(--head);color:var(--ink2);font-size:12px;font-variant-numeric:tabular-nums;text-align:center}
.vtabs button[aria-selected="true"] .vtab-n:not(:empty){background:var(--brand);color:var(--brand-ink)}
/* résumé du bilan en tête de l'onglet */
.sel-sum{display:flex;align-items:center;gap:18px 24px;flex-wrap:wrap;padding:16px 20px}
.sel-sum-g{flex:1 1 560px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px 24px}
.sel-sum-i .bkpi-v{font-size:24px}
.sel-sum>.abtn{white-space:nowrap}
.sel-sec-note{font-weight:500;letter-spacing:0;text-transform:none;color:var(--muted)}
.bilan-sec .sel-all{min-height:32px;padding:0 12px;font-size:12.5px;letter-spacing:0;text-transform:none}
/* carte d'un pari en cours */
.selc-list{position:relative;display:flex;flex-direction:column;gap:10px}
.selc{display:grid;grid-template-columns:4px minmax(0,1fr) auto;gap:0 16px;align-items:stretch;margin:0}
.selc-bar{background:var(--edge)}
.selc-in{display:flex;flex-direction:column;gap:6px;min-width:0;padding:14px 0}
.selc-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.selc-top .teams{font-size:16px}
.selc-tag{padding:2px 9px;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-size:12px;font-weight:700;white-space:nowrap}
.selc-meta{color:var(--ink2);font-size:13px}
.selc-kv{display:flex;align-items:center;flex-wrap:wrap;gap:6px 16px;font-size:14.5px}
.selc-kv .logo-tag{width:96px;height:24px}
.selc-note{padding:8px 12px;border-radius:10px;background:var(--head);color:var(--ink);font-size:13.5px;line-height:1.45}
.selc-rt{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:6px;padding:14px 18px 14px 0;font-size:12.5px;text-align:right}
.selc-state{padding:3px 10px;border-radius:999px;font-size:12.5px;font-weight:600;white-space:nowrap}
.selc-state.ok{background:color-mix(in srgb,var(--good) 12%,var(--surface));color:var(--good)}
.selc-state.down{background:var(--warn-bg);color:var(--warn-ink)}
.selc-state.gone{background:var(--head);color:var(--muted)}
.selc-state.rise{background:color-mix(in srgb,var(--bad) 13%,var(--surface));color:var(--bad)}
.selc-locked .selc-bar{background:var(--line)}
/* membres gratuits : cartes floutées, offre Pro par-dessus */
.selc-list.locked{min-height:230px}
.selc-list.locked>.selc{opacity:.75}
.sel-lock-layer{position:absolute;inset:0;z-index:2;padding:14px 12px;pointer-events:none}
.sel-lock{position:sticky;top:16px;margin:0 auto;pointer-events:auto;width:min(460px,100%);display:flex;flex-direction:column;align-items:center;gap:8px;padding:22px 24px;text-align:center;box-shadow:0 18px 50px -18px rgba(0,0,0,.35)}
.sel-lock-i{font-size:26px;line-height:1}
.sel-lock b{font:600 18px var(--serif)}
.sel-lock p{margin:0 0 6px;color:var(--ink2);font-size:14px;line-height:1.5;text-wrap:balance}
/* tableaux (derniers réglés, mois par mois, historique) */
.sel-table{margin:0}
.sel-table .teams{display:block;font-size:14.5px}
.sel-table .when{display:block;font-size:12.5px;white-space:nowrap}
.sel-table td:first-child b{display:block}
.sel-table td:nth-child(2){min-width:110px}
.sel-table .logo-tag{width:96px;height:24px}
/* formulaire d'ajout : publication (administrateur) */
.selpub{grid-column:1/-1;display:flex;flex-direction:column;gap:12px;margin-top:14px;padding:14px 16px;border:1px solid var(--gold-line);border-radius:12px;background:var(--gold-soft)}
.selpub-toggle{display:flex;align-items:flex-start;gap:10px;cursor:pointer}
.selpub-toggle input{width:18px;height:18px;margin-top:2px;flex-shrink:0;accent-color:var(--brand)}
.selpub-toggle span{display:flex;flex-direction:column;gap:2px}
.selpub-toggle small{color:var(--ink2);font-size:13px}
.selpub-fields{display:grid;grid-template-columns:minmax(160px,220px) minmax(0,1fr);gap:12px 14px}
.selpub-fields input[type=number]{width:100%}
.bsel-star{margin-right:4px;font-size:13px}
.teams-w{display:inline}
@media (max-width:820px){
  .sel-sum-g{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sel-sum>.abtn{flex:1 1 100%;justify-content:center}
}
@media (max-width:600px){
  .selc{grid-template-columns:4px minmax(0,1fr);gap:0 12px}
  .selc-rt{grid-column:2;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:6px 10px;padding:0 14px 14px 0;text-align:left}
  .selc-in{padding:12px 14px 8px 0}
  .selpub-fields{grid-template-columns:1fr}
  .vtabs button{padding:0 12px;font-size:14px}
}
#sel-body{margin-top:14px}
/* (09/10/2026) pastille dorée ★ de la Sélection ValueLab : à gauche de « Value » (la rouge du Détecteur reste à droite) */
.nbadge.nbadge-sel{margin:0 6px 0 0;background:var(--gold);color:#2b1d00;gap:2px}
@media (max-width:520px){
  .nbadge.nbadge-sel{position:absolute;top:-2px;left:-3px;right:auto;margin:0}
}
/* (09/10/2026) compteur rouge des nouvelles values sur l'onglet « Détecteur » */
.vtabs button .vtab-n-red:not(:empty),.vtabs button[aria-selected="true"] .vtab-n-red:not(:empty){background:#d92d20;color:#fff}
/* (09/10/2026) page Value : choix Sélection ValueLab / Détecteur en 2 cartes (version A) */
.vtabs.vmode{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:6px 0 18px;border-bottom:0;overflow:visible}
.vtabs.vmode .vm-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;min-height:0;margin:0;padding:16px 18px;text-align:left;white-space:normal;border:1.5px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;transition:border-color .15s,background .15s}
.vtabs.vmode .vm-card:hover{border-color:var(--ctrl-border)}
.vtabs.vmode .vm-card:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:14px}
.vtabs.vmode .vm-ic{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--head);color:var(--muted)}
.vtabs.vmode .vm-txt{display:flex;flex-direction:column;gap:3px;min-width:0}
.vtabs.vmode .vm-txt b{font:600 18px var(--serif);color:var(--ink2)}
.vtabs.vmode .vm-txt small{color:var(--ink2);font-size:13px;line-height:1.35}
.vtabs.vmode .vm-n{display:flex;flex-direction:column;align-items:flex-end;gap:4px;color:var(--ink2);font-size:12.5px;white-space:nowrap}
.vtabs.vmode .vm-n b{font:500 24px/1 var(--serif);color:var(--ink);font-variant-numeric:tabular-nums}
.vtabs.vmode .vm-new:empty{display:none}
.vtabs.vmode .vm-new{padding:2px 8px;border-radius:999px;background:#d92d20;color:#fff;font-weight:700;font-size:11.5px}
.vtabs.vmode .vm-card[aria-selected="true"] .vm-txt b{color:var(--ink)}
.vtabs.vmode .vm-sel[aria-selected="true"]{border-color:var(--gold);background:var(--gold-soft);box-shadow:0 0 0 1px var(--gold) inset}
.vtabs.vmode .vm-sel[aria-selected="true"] .vm-ic{background:var(--gold);color:#2b1d00}
.vtabs.vmode .vm-det[aria-selected="true"]{border-color:var(--brand);background:var(--brand-soft);box-shadow:0 0 0 1px var(--brand) inset}
.vtabs.vmode .vm-det[aria-selected="true"] .vm-ic{background:var(--brand);color:var(--brand-ink)}
.vdet-count{margin:0 0 12px}
@media (max-width:600px){
  .vtabs.vmode{grid-template-columns:1fr;gap:8px}
  .vtabs.vmode .vm-card{padding:12px 14px;gap:12px}
  .vtabs.vmode .vm-ic{width:38px;height:38px}
  .vtabs.vmode .vm-txt b{font-size:16px}
  .vtabs.vmode .vm-txt small{font-size:12.5px}
  .vtabs.vmode .vm-n b{font-size:20px}
}
/* (09/10/2026) paris en cours : filtre par période + tri */
.self-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin:-2px 0 12px}
.self-seg{max-width:100%;overflow-x:auto;scrollbar-width:none}
.self-seg::-webkit-scrollbar{display:none}
.self-n{margin-left:6px;padding:0 6px;border-radius:999px;background:var(--head);color:var(--ink2);font-size:11.5px;font-weight:600;font-variant-numeric:tabular-nums}
.self-seg button[aria-pressed="true"] .self-n{background:rgba(255,255,255,.25);color:inherit}
.self-sort select{max-width:230px}
/* (09/10/2026) menu « Trier » du Bilan et du Bilan des values : à droite du titre de la 1re section */
.bilan-sec .bf-sort{text-transform:none;letter-spacing:0;font-size:13.5px;color:var(--ink);flex:none}
@media (max-width:600px){.bilan-sec.with-sort{flex-wrap:wrap}.bilan-sec.with-sort .bf-sort{flex:1 1 100%}}
.self-s{display:none}
@media (max-width:600px){
  .self-sort{width:100%}.self-sort select{max-width:none;flex:1}
  .self-seg{display:grid;grid-template-columns:repeat(5,1fr);width:100%;overflow:visible}
  .self-seg button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:46px;padding:4px 2px;font-size:13px}
  .self-l{display:none}.self-s{display:inline}
  .self-n{margin-left:0}
}

/* ---------------------------------------------------------------- page Messages (08/10/2026) : questions posées depuis la bulle */
.sup{display:grid;grid-template-columns:340px minmax(0,1fr);gap:16px;margin-top:18px;align-items:start}
.sup-filter{display:flex;gap:6px;padding:12px;border-bottom:1px solid var(--line-soft);flex-wrap:wrap}
.sup-filter button{height:30px;padding:0 11px;display:inline-flex;align-items:center;gap:6px;border-radius:999px;border:1px solid var(--line);background:var(--surface);font:600 13px var(--sans);color:var(--ink2);cursor:pointer}
.sup-filter button[aria-pressed="true"]{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}
.sup-filter i{font-style:normal;font-size:11px;background:var(--bad);color:#fff;border-radius:999px;padding:1px 6px}
.sup-filter i.muted{background:var(--head);color:var(--ink2)}
.sup-undo{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:10px 12px 4px;padding:9px 12px;border-radius:10px;background:var(--pin-bg);color:var(--ink);font-size:13px}
.sup-undo button{border:0;background:none;color:var(--brand);font:700 13px var(--sans);cursor:pointer;padding:0;flex:none}
.sup-it{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;padding:12px 14px;border:0;border-bottom:1px solid var(--line-soft);background:none;text-align:left;font:inherit;color:inherit;width:100%;cursor:pointer;align-items:start}
.sup-it:hover{background:var(--head)}
.sup-it.on{background:var(--pin-bg);box-shadow:inset 3px 0 0 var(--brand)}
.sup-av{width:28px;height:28px;border-radius:50%;background:var(--brand-soft);color:var(--brand);display:grid;place-items:center;font:600 13px var(--serif)}
.sup-it-t b{font-size:14px}
.sup-it-t small{display:block;color:var(--ink2);font-size:12.5px;margin-top:2px;line-height:1.35}
.sup-it-r{font-size:12px;color:var(--muted);white-space:nowrap;text-align:right}
.sup-st{display:inline-block;margin-top:5px;font-size:10.5px;font-weight:700;padding:2px 7px;border-radius:999px;background:var(--head);color:var(--ink2)}
.sup-st.new{background:var(--bad);color:#fff}
.sup-st.ok{background:var(--brand-soft);color:var(--brand)}
.sup-empty{padding:22px 14px;color:var(--muted);text-align:center;font-size:14px}
.sup-none{padding:40px 20px;text-align:center;color:var(--muted)}
.sup-th-h{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:16px 18px;border-bottom:1px solid var(--line-soft);flex-wrap:wrap}
.sup-th-h h2{margin:0;font:600 22px var(--serif);overflow-wrap:anywhere}
.sup-th-h .sub{font-size:13.5px;margin-top:3px;overflow-wrap:anywhere}
.sup-acts{display:flex;gap:8px;flex-wrap:wrap}
.sup-ctx{display:flex;flex-wrap:wrap;gap:6px;padding:10px 18px;border-bottom:1px solid var(--line-soft);background:var(--head)}
.sup-chip{font-size:12.5px;padding:3px 9px;border-radius:999px;background:var(--surface);border:1px solid var(--line);color:var(--ink2)}
.sup-chip b{color:var(--ink)}
.sup-chip.pro{background:var(--gold);border-color:transparent;color:#1a1405;font-weight:700}
.sup-msgs{display:flex;flex-direction:column;gap:10px;padding:18px}
.sup-day{align-self:center;font-size:12px;color:var(--muted);font-weight:600}
.sup-msg{max-width:86%;padding:10px 12px;border-radius:14px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}
.sup-msg.them{align-self:flex-start;background:var(--head);border-bottom-left-radius:5px}
.sup-msg.me{align-self:flex-end;background:var(--brand);color:var(--brand-ink);border-bottom-right-radius:5px}
.sup-meta{display:block;margin-top:5px;font-size:11.5px;opacity:.75}
.sup-rep{padding:14px 18px 18px;border-top:1px solid var(--line-soft);display:flex;flex-direction:column;gap:10px}
.sup-l{font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2)}
.sup-ta{width:100%;min-height:110px;border:1px solid var(--ctrl-border);border-radius:12px;padding:10px 12px;background:var(--surface);color:var(--ink);font:15px/1.45 var(--sans);resize:vertical;box-sizing:border-box}
.sup-ta:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}
.sup-row{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.sup-opts{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;color:var(--ink2)}
.sup-ck{display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.sup-ck input{width:17px;height:17px;accent-color:var(--brand);margin:0}
.sup-note{margin:0;font-size:13px;color:var(--ink2)}
@media (max-width:900px){.sup{grid-template-columns:1fr}}

/* ---------------------------------------------------------------- page Membres (09/10/2026) */
.mb-bar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin:18px 0 12px}
.mb-filter{padding:0;border:0}
.mb-search{flex:1;max-width:420px;min-width:220px;height:40px;padding:0 12px;border:1px solid var(--ctrl-border);border-radius:10px;background:var(--surface);color:var(--ink);font:inherit}
.mb-search:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}
.mb-undo{margin:0 0 12px}
.mb-table{width:100%;border-collapse:collapse;font-size:14px}
.mb-table th{font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2);text-align:left;padding:10px 12px;background:var(--head);white-space:nowrap}
.mb-table td{padding:10px 12px;border-top:1px solid var(--line-soft);vertical-align:middle;white-space:nowrap}
.mb-table td b{display:block;font-size:14.5px}
.mb-table .rr{text-align:right}
.mb-table tr.is-pro td{background:color-mix(in srgb,var(--gold-soft) 45%,transparent)}
.mb-mail{color:var(--ink2);font-size:12.5px}
.mb-muted{color:var(--muted)}
.mb-pill{display:inline-block;font-size:12px;font-weight:700;padding:3px 9px;border-radius:999px;background:var(--head);color:var(--ink2)}
.mb-pill.pro{background:var(--gold);color:#1a1405}
.mb-src{display:block;margin-top:3px;font-size:11.5px;color:var(--muted)}
.mb-end{display:inline-flex;align-items:center;gap:6px}
.mb-date{height:34px;padding:0 8px;border:1px solid var(--ctrl-border);border-radius:8px;background:var(--surface);color:var(--ink);font:inherit}
.mb-x{border:0;background:none;color:var(--muted);cursor:pointer;font-size:13px;padding:4px}
.sup-plan{min-height:28px;padding:0 10px;font-size:12.5px}

/* changement de plan sans rechargement (09/10/2026) */
.plan-toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:950;background:var(--ink);color:var(--surface);padding:12px 18px;border-radius:12px;font-size:14.5px;box-shadow:0 10px 30px rgba(0,0,0,.25);max-width:calc(100vw - 32px)}

/* ---------------------------------------------------------------- page « Labo » : calcul des mises (10/10/2026) */
.lb-page{margin-top:22px}
.lb{--lb-fb:#b7791f;--lb-lay:#b4234a;--lb-lay-soft:#fbe3ea;--lb-lay-ink:#7a1733;padding:22px 24px;display:flex;flex-direction:column;gap:16px;overflow:visible}
:root[data-theme="dark"] .lb{--lb-fb:#d99a3a;--lb-lay:#e0577a;--lb-lay-soft:#3a1822;--lb-lay-ink:#f2a6b9}
@media (prefers-color-scheme:dark){:root:where(:not([data-theme="light"])) .lb{--lb-fb:#d99a3a;--lb-lay:#e0577a;--lb-lay-soft:#3a1822;--lb-lay-ink:#f2a6b9}}
.lb .good{color:var(--good)}.lb .bad{color:var(--bad)}.lb .zero{color:var(--ink2)}
.lb-l{font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2)}
.lb-f{display:flex;flex-direction:column;gap:6px}
.lb-top{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;padding-bottom:16px;border-bottom:1px solid var(--line)}
.lb-set{display:flex;flex-wrap:wrap;gap:14px 22px;align-items:flex-end}
.lb-in{display:inline-flex;align-items:center;gap:5px;height:38px;padding:0 10px;border:1px solid var(--ctrl-border);border-radius:10px;background:var(--surface)}
.lb-in:focus-within{border-color:var(--brand);outline:2px solid var(--brand);outline-offset:1px}
.lb-in input{border:0;background:transparent;width:100%;min-width:0;font-weight:600;font-variant-numeric:tabular-nums;outline:none;text-align:right;color:var(--ink);padding:0}
.lb-in.wide input{text-align:left;font-weight:500}
.lb-in i{font-style:normal;color:var(--ink2);font-weight:600}
.lb-in.w54{width:68px}.lb-in.w62{width:74px}.lb-in.w70{width:82px}.lb-in.w96{width:112px}.lb-in.w220{width:230px}
.lb-in.off{opacity:.45}
.lb-in.ref{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}
.lb-in.fb{background:var(--warn-bg);border-color:color-mix(in srgb,var(--lb-fb) 55%,var(--ctrl-border))}
.lb-seg button{min-height:30px;padding:0 12px;font-size:14px}
.lb-selw{position:relative;display:inline-block}
.lb-selw::after{content:"▾";position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--ink2);font-size:11px;pointer-events:none}
.lb-sel{appearance:none;-webkit-appearance:none;min-width:230px;height:38px;padding:0 34px 0 12px;border:1px solid var(--ctrl-border);border-radius:10px;background:var(--surface);color:var(--ink);font-weight:600;cursor:pointer}
.lb-res{display:grid;grid-template-columns:auto auto;align-items:center;justify-items:end;gap:4px 10px;text-align:right}
.lb-res .lb-l,.lb-res small{grid-column:1 / -1}
.lb-res small{color:var(--ink2);font-size:13px;max-width:420px}
.lb-big{font-family:var(--serif);font-size:38px;font-weight:600;line-height:1;font-variant-numeric:tabular-nums}
.lb-pct{font-size:15px;font-weight:700;padding:3px 9px;border-radius:999px;background:color-mix(in srgb,currentColor 12%,transparent)}
.lb-meter-w:empty{display:none}
.lb-meter{display:flex;flex-direction:column;gap:7px;padding:12px 16px 10px;border-radius:12px;background:var(--warn-bg);border:1px solid color-mix(in srgb,var(--lb-fb) 30%,var(--line))}
.lb-meter-t{display:flex;justify-content:space-between;font-size:14px;font-weight:600}
.lb-meter-t b{font-size:16px}
.lb-meter-b{position:relative;height:10px;border-radius:5px;background:color-mix(in srgb,var(--line) 70%,var(--surface));margin-bottom:12px}
.lb-meter-b i{display:block;height:100%;border-radius:5px;background:linear-gradient(90deg,var(--lb-fb),var(--good))}
.lb-mark{position:absolute;top:-3px;width:2px;height:16px;background:var(--ink2);opacity:.6}
.lb-mark em{position:absolute;top:17px;left:50%;transform:translateX(-50%);font-style:normal;font-size:10.5px;font-weight:700;color:var(--ink2);white-space:nowrap}
/* tableau */
.lb-table{display:flex;flex-direction:column}
.lb-row{display:grid;grid-template-columns:minmax(170px,1.5fr) 140px 214px 84px 124px 86px 52px minmax(120px,1fr);gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line-soft)}
.lb-row.c{grid-template-columns:minmax(180px,1.4fr) 140px 200px 84px 84px 120px 86px 52px minmax(96px,.8fr)}
.lb-row.c .lb-side button{padding:6px 8px}
.lb-th{padding:0 0 8px;font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2);white-space:nowrap}
.lb .rr{text-align:right}.lb .ctr{display:flex;justify-content:center;align-items:center}
.lb-iss{display:flex;align-items:center;gap:8px;min-width:0}
.lb-iss>.lb-in{flex:1;min-width:0}
.lb-n{width:24px;height:24px;border-radius:50%;background:var(--head);display:inline-grid;place-items:center;font-size:12.5px;font-weight:700;color:var(--ink2);flex:none}
.lb-del{flex:none;width:24px;height:24px;margin-right:-4px;border:0;border-radius:6px;background:none;color:var(--ink2);cursor:pointer;font-size:12px}
.lb-del:hover{background:var(--head);color:var(--bad)}
.lb-bkw{position:relative;display:inline-block}
.lb-book{display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 8px 0 4px;border:1px solid var(--ctrl-border);border-radius:10px;background:var(--surface);color:var(--ink);cursor:pointer}
.lb-book .logo-tag{transform:scale(.86);transform-origin:left center;margin-right:-10px}
.lb-book-ph{min-width:96px;padding-left:8px;text-align:left;color:var(--ink2);font-weight:600}
.lb-caret{color:var(--ink2);font-size:11px}
.lb-bmenu{position:absolute;top:44px;left:0;z-index:30;display:flex;flex-direction:column;gap:2px;padding:6px;min-width:160px;border-radius:12px;background:var(--surface);border:1px solid var(--line);box-shadow:0 16px 40px rgba(0,0,0,.16)}
.lb-bopt{display:flex;align-items:center;padding:5px 6px;border:0;border-radius:8px;background:none;cursor:pointer;color:var(--ink)}
.lb-bopt:hover,.lb-bopt.on{background:var(--brand-soft)}
.lb-bopt-none{padding:9px 10px;font-weight:600;color:var(--ink2)}
.lb-side{display:inline-flex;padding:3px;gap:2px;border:1px solid var(--ctrl-border);border-radius:10px;background:var(--surface)}
.lb-side button{white-space:nowrap;border:0;background:none;border-radius:7px;padding:6px 10px;font-weight:600;font-size:13px;color:var(--ink2);cursor:pointer}
.lb-side button:hover{background:var(--head)}
.lb-side button.lb-on-back{background:var(--brand);color:var(--brand-ink)}
.lb-side button.lb-on-fb{background:var(--lb-fb);color:#fff}
.lb-side button.lb-on-lay{background:var(--lb-lay);color:#fff}
.lb-check,.lb-radio{width:22px;height:22px;margin:0;accent-color:var(--brand);cursor:pointer}
.lb-help{position:relative;display:inline-grid;place-items:center;width:17px;height:17px;margin-left:5px;padding:0;border:0;border-radius:50%;background:var(--ink2);color:var(--surface);font-size:11px;font-weight:800;letter-spacing:0;text-transform:none;cursor:help;vertical-align:1px}
.lb-tip{display:none;position:absolute;top:26px;right:-12px;z-index:30;width:290px;padding:10px 12px;border-radius:10px;background:var(--ink);color:var(--surface);font-size:13px;font-weight:500;line-height:1.45;text-align:left;white-space:normal;box-shadow:0 12px 30px rgba(0,0,0,.2)}
.lb-help:hover .lb-tip,.lb-help:focus .lb-tip{display:block}
.lb-odd,.lb-com,.lb-stake{display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.lb-odd small,.lb-com small,.lb-stake small{font-size:11.5px;color:var(--ink2);white-space:nowrap}
.lb-odd small.lb-conv{color:var(--lb-lay);font-weight:600}
.lb-stake small.fbt{color:var(--lb-fb);font-weight:600}
.lb-stake small.lay{color:var(--lb-lay);font-weight:600}
.lb-gain{display:flex;flex-direction:column;align-items:flex-end}
.lb-gain b{font-size:16px;font-variant-numeric:tabular-nums}
.lb-gain small{font-size:12px;color:var(--ink2)}
.lb-row.no-d .lb-iss input{color:var(--ink2)}
.lb-add{align-self:flex-start;margin:10px 0 2px;border:1px dashed var(--ctrl-border);background:none;border-radius:10px;padding:9px 14px;color:var(--brand);font-weight:600;cursor:pointer}
.lb-tot{border-bottom:0;background:var(--head);border-radius:12px;padding:10px 0;margin-top:8px}
.lb-tot-l{display:flex;flex-direction:column;padding-left:14px;font-weight:700}
.lb-tot-l small{font-weight:500;color:var(--ink2);font-size:12px}
.lb-hints{display:flex;flex-direction:column;gap:8px}
.lb-hints:empty{display:none}
.lb-hint{margin:0;padding:9px 14px;border-radius:10px;background:var(--head);color:var(--ink2);font-size:13.5px;line-height:1.45}
.lb-hint b{color:var(--ink)}
.lb-hint.lay{background:var(--lb-lay-soft);color:var(--lb-lay-ink)}.lb-hint.lay b{color:var(--lb-lay-ink)}
.lb-hint.fb{background:var(--warn-bg);color:var(--warn-ink)}.lb-hint.fb b{color:var(--warn-ink)}
.lb-foot{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;padding-top:6px}
.lb-opts{display:flex;flex-direction:column;gap:10px}
.lb-opt{display:flex;align-items:center;gap:10px;font-size:14.5px;cursor:pointer}
.lb-acts{display:flex;gap:8px;flex-wrap:wrap}
/* écran moyen : le tableau défile à l'horizontale plutôt que d'écraser les colonnes */
@media (max-width:1240px) and (min-width:761px){
  html:not(.lb-mini) .lb{padding:20px}
  html:not(.lb-mini) .lb-row{grid-template-columns:minmax(130px,1fr) 128px 190px 76px 112px 80px 48px minmax(96px,.8fr);gap:8px;min-width:900px}
  html:not(.lb-mini) .lb-row.c{grid-template-columns:minmax(120px,1fr) 128px 190px 76px 84px 112px 80px 48px minmax(92px,.8fr);min-width:990px}
  html:not(.lb-mini) .lb-side button{padding:6px 8px;font-size:12.5px}
  html:not(.lb-mini) .lb-table{overflow-x:auto;padding-bottom:6px}
  html:not(.lb-mini) .lb-bmenu{position:fixed;top:auto;left:auto}
}
/* téléphone : une carte par issue */
@media (max-width:760px){
  html:not(.lb-mini) .lb{padding:16px 14px}
  html:not(.lb-mini) .lb-set,html:not(.lb-mini) .lb-f:first-child,html:not(.lb-mini) .lb-in.w220,html:not(.lb-mini) .lb-selw,html:not(.lb-mini) .lb-sel{width:100%}
  html:not(.lb-mini) .lb-res{justify-items:start;text-align:left;grid-template-columns:auto 1fr}
  html:not(.lb-mini) .lb-th{display:none}
  html:not(.lb-mini) .lb-row,html:not(.lb-mini) .lb-row.c{grid-template-columns:1fr 1fr;grid-template-areas:"iss iss" "bk bk" "sd sd" "odd stake" "com com" "d r" "gain gain";gap:10px 12px;padding:14px;border:1px solid var(--line);border-radius:14px;margin-bottom:10px;background:var(--surface)}
  html:not(.lb-mini) .lb-row>.lb-iss{grid-area:iss}html:not(.lb-mini) .lb-row>.lb-bk{grid-area:bk}html:not(.lb-mini) .lb-row>.lb-sd{grid-area:sd}html:not(.lb-mini) .lb-row>.lb-odd{grid-area:odd}html:not(.lb-mini) .lb-row>.lb-com{grid-area:com}html:not(.lb-mini) .lb-row>.lb-stake{grid-area:stake}html:not(.lb-mini) .lb-row>.lb-d{grid-area:d}html:not(.lb-mini) .lb-row>.lb-r{grid-area:r}html:not(.lb-mini) .lb-row>.lb-gain{grid-area:gain}
  html:not(.lb-mini) .lb-bk{display:flex;align-items:center;justify-content:space-between}
  html:not(.lb-mini) .lb-sd .lb-side{display:flex}html:not(.lb-mini) .lb-sd .lb-side button{flex:1;padding:8px}
  html:not(.lb-mini) .lb-odd,html:not(.lb-mini) .lb-stake,html:not(.lb-mini) .lb-com{align-items:stretch}
  html:not(.lb-mini) .lb-odd .lb-in,html:not(.lb-mini) .lb-stake .lb-in,html:not(.lb-mini) .lb-com .lb-in{width:100%}
  html:not(.lb-mini) .lb-row [data-l]::before{content:attr(data-l);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2)}
  html:not(.lb-mini) .lb-d,html:not(.lb-mini) .lb-r{justify-content:flex-start !important;gap:10px}
  html:not(.lb-mini) .lb-d::before,html:not(.lb-mini) .lb-r::before{order:2}
  html:not(.lb-mini) .lb-gain{flex-direction:row;justify-content:space-between;align-items:baseline;padding-top:8px;border-top:1px solid var(--line-soft)}
  html:not(.lb-mini) .lb-tot,html:not(.lb-mini) .lb-tot.c{grid-template-columns:1fr auto;grid-template-areas:"lbl lbl" "stake r";background:var(--head);border:0}
  html:not(.lb-mini) .lb-tot .lb-tot-l{grid-area:lbl !important;padding-left:0}html:not(.lb-mini) .lb-tot .lb-stake{grid-area:stake}html:not(.lb-mini) .lb-tot .lb-r{grid-area:r}
  html:not(.lb-mini) .lb-tot .lb-stake .lb-in{width:100%}
  html:not(.lb-mini) .lb-tot>span:empty{display:none}
  html:not(.lb-mini) .lb-tip{right:-10px}
  html:not(.lb-mini) .lb-acts{width:100%}html:not(.lb-mini) .lb-acts .abtn{flex:1}
}
/* Labo : origine importée, boutons d'ouverture dans Surebets / Freebets, fenêtre détachée (10/10/2026) */
.lb-src{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:-4px 0 0;padding:9px 12px 9px 14px;border-radius:10px;background:var(--brand-soft);color:var(--ink2);font-size:13.5px}
.lb-src b{color:var(--brand)}
.lb-src-x{flex:none;width:28px;height:28px;border:0;border-radius:8px;background:none;color:var(--ink2);cursor:pointer}
.lb-src-x:hover{background:var(--surface)}
.sb-p-actions{gap:8px;flex-wrap:wrap}
.fb-sum .fb-actions{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:8px;justify-content:flex-end}
@media (max-width:1100px){.fb-sum .fb-actions{grid-column:1 / -1;flex-wrap:wrap}}
.lb-open-d{min-width:40px;padding:0 10px;font-size:16px}
html.lb-mini header.top,html.lb-mini .app-foot,html.lb-mini #dnudge,html.lb-mini .qb-root{display:none !important}
html.lb-mini main{padding:0 10px 16px}
html.lb-mini .lb-page{margin-top:0}
.lb-mini-top{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:8px;margin:0 -10px 10px;padding:10px 12px;background:var(--surface);border-bottom:1px solid var(--line)}
.lb-mini-top b{font-family:var(--serif);font-size:20px}
.lb-mini-top span{color:var(--ink2);font-size:13px;margin-right:auto}
.lb-full{min-height:32px;padding:0 10px}


/* (10/10/2026, demande de Nico) fenêtre détachée : tableau compact sur une ligne par issue, texte plus petit */
html.lb-mini body{font-size:13px}
html.lb-mini main{padding:0 10px 12px;max-width:none}
html.lb-mini .lb-mini-top{padding:7px 12px;margin-bottom:8px}
html.lb-mini .lb-mini-top b{font-size:17px}
html.lb-mini .lb{padding:10px 12px;gap:10px;border-radius:12px}
html.lb-mini .lb-l{font-size:10px}
html.lb-mini .lb-top{flex-wrap:nowrap;align-items:flex-end;gap:12px;padding-bottom:10px}
html.lb-mini .lb-set{flex-wrap:nowrap;gap:8px;min-width:0;flex:1}
html.lb-mini .lb-f{gap:3px;min-width:0}
html.lb-mini .lb-f:first-child{flex:1}
html.lb-mini .lb-in{height:30px;padding:0 7px;border-radius:8px;gap:3px}
html.lb-mini .lb-in input{font-size:13px}
html.lb-mini .lb-in.w220{width:100%;min-width:110px}
html.lb-mini .lb-seg{padding:2px;gap:2px;border-radius:9px}
html.lb-mini .lb-seg button{min-height:24px;padding:0 8px;font-size:12.5px}
html.lb-mini .lb-sel{min-width:0;width:150px;height:30px;font-size:12.5px;padding:0 24px 0 8px;border-radius:8px}
html.lb-mini .lb-selw::after{right:8px}
html.lb-mini .lb-res{gap:0 6px;flex:none}
html.lb-mini .lb-big{font-size:24px}
html.lb-mini .lb-pct{font-size:11.5px;padding:2px 7px}
html.lb-mini .lb-res small{font-size:11px;max-width:220px}
html.lb-mini .lb-src{padding:5px 8px 5px 10px;font-size:11.5px;margin:0}
html.lb-mini .lb-src-x{width:22px;height:22px}
html.lb-mini .lb-meter{padding:6px 10px 4px;gap:4px;border-radius:9px}
html.lb-mini .lb-meter-t{font-size:12px}.lb-mini .lb-meter-t b{font-size:13px}
html.lb-mini .lb-meter-b{height:7px;margin-bottom:11px}
html.lb-mini .lb-mark{height:12px}.lb-mini .lb-mark em{top:12px;font-size:9.5px}
html.lb-mini .lb-table{overflow-x:auto}
html.lb-mini .lb-row{grid-template-columns:minmax(120px,1fr) 104px 128px 64px 86px 28px 28px 74px;gap:6px;padding:5px 0;min-width:660px}
html.lb-mini .lb-row.c{grid-template-columns:minmax(110px,1fr) 104px 128px 64px 58px 86px 28px 28px 74px;min-width:720px}
html.lb-mini .lb-th{font-size:9.5px;padding:0 0 4px;letter-spacing:.04em}
html.lb-mini .lb-help{display:none}
html.lb-mini .lb-iss{gap:5px}
html.lb-mini .lb-n{width:18px;height:18px;font-size:10.5px}
html.lb-mini .lb-iss .lb-in input{font-size:12.5px}
html.lb-mini .lb-book{height:30px;padding:0 4px 0 2px;border-radius:8px;gap:2px}
html.lb-mini .lb-book .logo-tag{transform:scale(.68);margin:0 -18px 0 0}
html.lb-mini .lb-book-ph{min-width:70px;font-size:12px;padding-left:4px}
html.lb-mini .lb-bmenu .logo-tag{transform:scale(.8);transform-origin:left center}
html.lb-mini .lb-side{padding:2px;gap:1px;border-radius:8px}
html.lb-mini .lb-side button{padding:4px 6px;font-size:11.5px;border-radius:6px}
html.lb-mini .lb-side .lb-l1{display:none}
html.lb-mini .lb-side .lb-l2{display:inline}
html.lb-mini .lb-odd small,html.lb-mini .lb-com small,html.lb-mini .lb-stake small{font-size:10px}
html.lb-mini .lb-com small,html.lb-mini .lb-stake small.fbt{display:none}
html.lb-mini .lb-check,html.lb-mini .lb-radio{width:17px;height:17px}
html.lb-mini .lb-gain b{font-size:13px}
html.lb-mini .lb-gain small{display:none}
html.lb-mini .lb-del{width:18px;height:18px;font-size:10px}
html.lb-mini .lb-add{margin:6px 0 0;padding:5px 10px;font-size:12px}
html.lb-mini .lb-tot{padding:5px 0;margin-top:5px;border-radius:9px}
html.lb-mini .lb-tot-l{padding-left:10px;font-size:12.5px}
html.lb-mini .lb-tot-l small{font-size:10.5px}
html.lb-mini .lb-hints{gap:5px}
html.lb-mini .lb-hint{padding:5px 10px;font-size:11.5px;border-radius:8px}
html.lb-mini .lb-foot{padding-top:0;gap:8px;align-items:center}
html.lb-mini .lb-opts{flex-direction:row;flex-wrap:wrap;gap:6px 14px}
html.lb-mini .lb-opt{font-size:12px;gap:6px}
html.lb-mini .lb-opt .lb-in{height:26px}
html.lb-mini .lb-acts .abtn{min-height:28px;padding:0 10px;font-size:12.5px}
.lb-side .lb-l2{display:none}
.lb [data-l]::before{content:none}   /* les libellés de colonne au-dessus des champs : seulement sur téléphone (cartes) */
html.lb-mini .lb-odd .lb-in,html.lb-mini .lb-com .lb-in,html.lb-mini .lb-stake .lb-in{width:100%}
html.lb-mini .lb-th .lb-l1{display:none}
html.lb-mini .lb-th .lb-l2{display:inline}
html.lb-mini .lb-th .ctr,html.lb-mini .lb-th .rr{white-space:nowrap}
.lb .lb-l2{display:none}
html.lb-mini .lb .lb-l1{display:none}
html.lb-mini .lb .lb-l2{display:inline}

/* (10/10/2026, demande de Nico) fenêtre détachée : colonnes plus étroites, texte plus petit, en-têtes centrés */
html.lb-mini body{font-size:12.5px}
html.lb-mini .lb-row{grid-template-columns:136px 86px 118px 58px 76px 26px 26px 66px;justify-content:space-between;gap:6px;min-width:620px}
html.lb-mini .lb-row.c{grid-template-columns:124px 86px 118px 58px 50px 76px 26px 26px 66px;min-width:670px}
html.lb-mini .lb-tot,html.lb-mini .lb-tot.c{min-width:0}
html.lb-mini .lb-th>span{justify-content:center;text-align:center;display:flex;align-items:center}
html.lb-mini .lb-gain{align-items:center}
html.lb-mini .lb-gain b{font-size:12.5px}
html.lb-mini .lb-in{height:28px;padding:0 6px}
html.lb-mini .lb-in input,html.lb-mini .lb-iss .lb-in input{font-size:12.5px}
html.lb-mini .lb-stake .lb-in i{font-size:11px}
html.lb-mini .lb-book{height:28px;width:100%;justify-content:space-between}
html.lb-mini .lb-book .logo-tag{transform:scale(.58);margin:0 -40px 0 -20px}
html.lb-mini .lb-bkw{display:block}
html.lb-mini .lb-side button{padding:4px 5px;font-size:11px}
html.lb-mini .lb-big{font-size:18px}
html.lb-mini .lb-pct{font-size:10.5px;padding:1px 6px}
html.lb-mini .lb-res .lb-l{font-size:9.5px}
html.lb-mini .lb-res small{font-size:10.5px}
html.lb-mini .lb-l{font-size:9.5px}
html.lb-mini .lb-seg button{font-size:12px}
html.lb-mini .lb-sel{font-size:12px;width:140px}
html.lb-mini .lb-src,html.lb-mini .lb-hint{font-size:11px}
html.lb-mini .lb-meter-t{font-size:11.5px}
html.lb-mini .lb-tot-l{font-size:12px}
html.lb-mini .lb-opt{font-size:11.5px}
html.lb-mini .lb-acts .abtn{font-size:12px;min-height:26px}
html.lb-mini .lb-mini-top b{font-size:16px}
html.lb-mini .lb-mini-top span{font-size:12px}
html.lb-mini .lb-book{padding:0 4px}
html.lb-mini .lb-book .logo-tag{transform:none;margin:0;width:66px;height:17px;border-radius:4px}
html.lb-mini .lb-book .logo-tag .blogo,html.lb-mini .lb-book .logo-tag .blogo[src]{height:23px}
html.lb-mini .lb-book .logo-tag .bxname{font-size:10.5px}

/* (10/10/2026, demande de Nico) Freebets : « Mes freebets » sur 2 lignes de 3, « Je couvre chez » sur 3 lignes de 3
   au centre, « Nombre de paris » sur 2 lignes à droite */
.fb-row.fb-row-bk{display:grid;grid-template-columns:auto auto auto;justify-content:space-between;gap:12px 28px}
.fb-row-bk .fb-books{flex:none}
.fb-row-bk .fb-chips{display:grid;grid-template-columns:repeat(3,max-content);gap:6px}
.fb-row-bk .fb-np{grid-template-columns:repeat(4,max-content)}
@media (max-width:900px){.fb-row.fb-row-bk{grid-template-columns:1fr;justify-content:stretch}.fb-row-bk .fb-chips{display:flex;flex-wrap:wrap}}

/* (10/10/2026) bilan CB : 4 filtres (Catégorie, Bookmaker, Sport, Statut) sur une seule ligne */
.cbs-filters .fb-row{gap:12px 16px}
.cbs-filters .seg button{padding:0 10px}

/* (10/10/2026) Détecteur, version 1 validée par Nico : réglages résumés sur une ligne + tableau plus lisible */
.vset{margin:0 0 18px;padding:10px 14px}
.vset-bar{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px}
.vset-bar #vsport .seg{flex-wrap:wrap}
.vset-sum{display:flex;flex-wrap:wrap;gap:6px 8px}
.vset-chip{display:inline-flex;align-items:center;gap:4px;min-height:30px;padding:0 11px;border:0;border-radius:999px;background:var(--head);color:var(--ink2);font-size:13.5px;cursor:pointer}
.vset-chip b{color:var(--ink);font-weight:600}
.vset-chip:hover{background:var(--brand-soft)}
.vset-btn{margin-left:auto;min-height:34px}
.vset-btn[aria-expanded="true"]{background:var(--brand-soft);border-color:var(--brand);color:var(--brand)}
.vset-panel{margin-top:12px;padding-top:12px;border-top:1px solid var(--line-soft)}
.vset-panel .vparams{margin:0 0 12px}
.vset-panel .pick{margin:0}
.vrow.vhead{font-size:11.5px}
.vissue{display:flex;flex-direction:column;min-width:0}
.vsub-l{display:block;color:var(--muted);font-size:12px;line-height:1.3;font-weight:400}
.vcote{font-weight:700;font-size:17px}
.vfair,.vref > span{font-size:15.5px;font-weight:500;color:var(--ink)}
.vref{display:flex;flex-direction:column;align-items:flex-end}
.vedge-c{display:flex;flex-direction:column;align-items:flex-end;gap:5px}
.vedge-pill{display:inline-flex;align-items:center;height:24px;padding:0 9px;border-radius:999px;font-size:13px;font-weight:700;color:var(--hi-ink);background:color-mix(in srgb,var(--good) 10%,transparent)}
.vedge-pill.md{background:color-mix(in srgb,var(--good) 16%,transparent)}
.vedge-pill.hi{background:color-mix(in srgb,var(--good) 24%,transparent)}
.vedge-pill.pro{color:var(--gold-ink);background:color-mix(in srgb,var(--gold) 18%,transparent)}
.vedge-bar{display:block;width:84px;height:4px;border-radius:2px;background:var(--line)}
.vedge-bar i{display:block;height:100%;border-radius:2px;background:var(--edge)}
.vrow .vkelly{text-align:right}
.vdet2{display:flex;flex-direction:column;align-items:flex-start;gap:2px;font-size:14px}
.vdet2 .vwarn{margin-bottom:2px}
.vrow .vbilan{gap:6px}
.vbilan-sel{min-width:34px;padding:0 8px}
.vrow .vclv{text-align:right}
.vrow .vclv{white-space:nowrap}
.vrow.vhead .vsort-btn{text-transform:inherit;letter-spacing:inherit}
/* (10/10/2026, demandes de Nico) Détecteur : cote à la même taille que la cote juste et Pinnacle (en gras), colonnes
   Match, Pari, Pinnacle, Mise et Détectée centrées, « Réglages » en vert ValueLab, étoile de la Sélection dorée */
.vrow .vcote{font-size:15.5px;font-weight:700}
.vrow .vmatch,.vrow .vissue,.vrow .vdet2{align-items:center;text-align:center}
.vrow .vref{align-items:center;text-align:center}
.vrow .vkelly{text-align:center}
.vset-btn{color:var(--brand);border-color:var(--brand);font-weight:600}
.vtabs.vmode .vm-sel[aria-selected="false"] .vm-ic{background:var(--gold-soft);color:var(--gold)}
/* (10/10/2026) graphiques des bilans : choix de la période + infobulle au survol */
.bper{margin:0 0 8px}
.bper button{min-height:28px;padding:0 10px;font-size:12.5px}
.btip{position:absolute;z-index:3;transform:translate(12px,-50%);min-width:170px;max-width:240px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:0 6px 18px rgba(0,0,0,.12);font-size:12.5px;line-height:1.35;pointer-events:none}
.btip.left{transform:translate(calc(-100% - 12px),-50%)}
.btip.below{transform:translate(12px,8px)}
.btip.left.below{transform:translate(calc(-100% - 12px),8px)}
.btip-d{color:var(--muted);font-size:11.5px}
.btip-m{font-weight:600;color:var(--ink);margin-top:2px}
.btip-i{color:var(--ink2)}
.btip-r,.btip-c{display:flex;justify-content:space-between;gap:10px;margin-top:3px}
.btip-c{padding-top:4px;border-top:1px solid var(--line-soft);color:var(--ink2)}
.btip b.up{color:var(--good)}.btip b.down{color:var(--bad)}
.sb-liq{color:var(--brand)}
.selc-state.live{background:color-mix(in srgb,var(--s1) 14%,var(--surface));color:var(--s1)}   /* (10/10/2026) « Match en cours » en bleu */
.selc-state.wait{background:var(--head);color:var(--ink2)}   /* (11/10/2026) « Résultat en attente » */
/* (10/10/2026, demande de Nico) logos Pinnacle et Unibet agrandis (peu lisibles à côté des autres), surtout en affichage compact */
.blogo[src*="/logos/pinnacle"],.blogo[src*="/logos/unibet"]{height:28px;max-width:104px}
.legend .blogo[src*="/logos/pinnacle"],.legend .blogo[src*="/logos/unibet"]{height:22px;max-width:86px}
.tn-bk .blogo[src*="/logos/pinnacle"],.tn-bk .blogo[src*="/logos/unibet"]{height:20px;max-width:70px}
.logo-tag .blogo[src*="/logos/pinnacle"],.logo-tag .blogo[src*="/logos/unibet"]{transform:scale(1.25)}
/* (10/10/2026) Application installable (PWA) : encart « Installer ValueLab » (téléphone), bouton d'en-tête (ordinateur) */
.pwa-sheet{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:950;max-width:520px;margin:0 auto;padding:14px 14px 12px;border:1px solid var(--line);border-radius:16px;background:var(--surface);color:var(--ink);box-shadow:0 10px 30px rgba(0,0,0,.18);animation:pwain .25s ease-out}
.pwa-sheet.desk{top:72px;bottom:auto;left:auto;right:24px;width:360px;margin:0}
@keyframes pwain{from{transform:translateY(12px);opacity:0}to{transform:none;opacity:1}}
@media (prefers-reduced-motion:reduce){.pwa-sheet,.pwa-arrow{animation:none}}
.pwa-top{display:flex;gap:12px;align-items:flex-start}
.pwa-ic{width:46px;height:46px;border-radius:12px;flex:none;box-shadow:0 1px 3px rgba(0,0,0,.15)}
.pwa-t{flex:1;min-width:0}
.pwa-t b{display:block;font-family:var(--serif);font-size:18px;font-weight:600;line-height:1.2}
.pwa-t p{margin:3px 0 0;font-size:13.5px;line-height:1.35;color:var(--ink2)}
.pwa-x{border:0;background:none;color:var(--muted);font-size:18px;line-height:1;padding:2px 4px;cursor:pointer}
.pwa-perks{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 0;padding:0;list-style:none}
.pwa-perks li{padding:3px 9px;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-size:12.5px;font-weight:600}
.pwa-act{display:flex;gap:8px;margin-top:12px}
.pwa-act button{flex:1;min-height:42px;border-radius:10px;font:600 15px var(--sans);cursor:pointer}
.pwa-act .go{border:0;background:var(--brand);color:var(--brand-ink)}
.pwa-act .later{border:1px solid var(--line);background:transparent;color:var(--ink2);font-weight:500}
.pwa-steps{margin:12px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}
.pwa-steps li{display:flex;align-items:center;gap:10px;font-size:14px}
.pwa-steps .n{flex:none;width:24px;height:24px;border-radius:50%;background:var(--brand);color:var(--brand-ink);display:grid;place-items:center;font-size:12.5px;font-weight:700}
.pwa-steps .kbd{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border:1px solid var(--line);border-radius:7px;background:var(--head);font-weight:600;white-space:nowrap;vertical-align:middle}
.pwa-steps svg{width:16px;height:16px;color:#0a84ff}
.pwa-arrow{position:fixed;left:50%;bottom:calc(2px + env(safe-area-inset-bottom,0px));z-index:951;transform:translateX(-50%);color:var(--brand);font-size:22px;line-height:1;animation:pwab 1.2s ease-in-out infinite}
@keyframes pwab{50%{transform:translate(-50%,4px)}}
html.pwa-open .qb-btn{display:none}
.pwa-hbtn{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 12px;border:1px solid var(--brand);border-radius:9px;background:transparent;color:var(--brand);font:600 13.5px var(--sans);cursor:pointer;white-space:nowrap}
.pwa-hbtn svg{width:15px;height:15px}
.pwa-hbtn:hover{background:var(--brand-soft)}
@media (max-width:820px){.pwa-hbtn{display:none}}

/* liste d'attente du Pro (11/10/2026) : page Membres */
.mb-wl-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line-soft)}
.mb-wl-head .sub{margin:0}
.mb-wl-tag{color:var(--brand);font-weight:600}
.mb-sent{color:var(--good);font-weight:600;font-size:13px}
/* e-mail d'ouverture du Pro (page Membres > Liste d'attente) */
.mbm{border-bottom:1px solid var(--line-soft)}
.mbm > summary{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 14px;cursor:pointer;font-weight:600;font-size:14.5px}
.mbm-sum{font-weight:400;font-size:13px;color:var(--ink2)}
.mbm-body{padding:4px 14px 16px;display:flex;flex-direction:column;gap:10px}
.mbm-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px}
.mbm-f{display:flex;flex-direction:column;gap:5px;font-size:12.5px;font-weight:600;color:var(--ink2)}
.mbm-f.wide,.mbm-f:first-child{grid-column:1/-1}
.mbm-in{width:100%;min-height:38px;padding:8px 10px;border:1px solid var(--ctrl-border);border-radius:9px;background:var(--surface);color:var(--ink);font-family:inherit;font-size:14px;font-weight:400;line-height:1.45}
textarea.mbm-in{resize:vertical}
.mbm-in:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}
.mbm-hint{margin:0;font-size:12.5px;color:var(--ink2)}
.mbm-acts{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.mbm-acts .abtn-primary{margin-left:auto}
.mbm-note{margin:0;font-size:13.5px}
.mbm-note:empty{display:none}
.mbm-note.ok{color:var(--good)}
.mbm-note.err{color:var(--bad)}
.mbm-prev{width:100%;height:560px;border:1px solid var(--line);border-radius:12px;background:#f5f2ea}
@media (max-width:640px){.mbm-grid{grid-template-columns:minmax(0,1fr)}.mbm-acts .abtn-primary{margin-left:0}}

/* page « Mon compte » refaite (11/10/2026) : en-tete + une rubrique par ligne */
.card.cpt{max-width:760px;margin:32px auto;padding:0;overflow:hidden}
.cpt-head{display:flex;align-items:center;gap:16px;padding:24px 28px;border-bottom:1px solid var(--line-soft)}
.cpt-av{flex:none;width:52px;height:52px;border-radius:999px;background:var(--brand);color:var(--brand-ink);display:inline-flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:24px;font-weight:600}
.cpt-id{flex:1;min-width:0}
.cpt-id h1{margin:0;font-family:var(--serif);font-size:26px;font-weight:600;line-height:1.15}
.cpt-id p{margin:4px 0 0;font-size:14px;color:var(--ink2);overflow-wrap:anywhere}
.cpt-plan{flex:none;padding:5px 14px;border-radius:999px;background:var(--head);color:var(--ink2);font-size:13px;font-weight:700}
.cpt-plan.pro{background:var(--gold);color:#1a1405}
.cpt-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px 28px;align-items:center;padding:20px 28px;border-bottom:1px solid var(--line-soft)}
.cpt-row:last-child{border-bottom:0}
.cpt-row[hidden]{display:none}
.cpt-l h2{margin:0 0 6px;font-family:var(--serif);font-size:18px;font-weight:600}
.cpt-d p{margin:0;font-size:14px;line-height:1.5;color:var(--ink)}
.cpt-d p + p{margin-top:4px}
.cpt-d .cpt-muted,.cpt-muted{color:var(--ink2);font-size:13.5px}
.cpt-ok{color:var(--good)}
.cpt-warn{color:var(--warn-ink,#8a4f05)}
.cpt-err{color:var(--bad,#c0392b)}
.cpt-a{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.cpt-a:empty{display:none}
@media (max-width:640px){
  .card.cpt{margin:16px auto}
  .cpt-head{padding:20px 18px;gap:12px}
  .cpt-av{width:44px;height:44px;font-size:20px}
  .cpt-id h1{font-size:21px}
  .cpt-row{grid-template-columns:minmax(0,1fr);padding:18px}
  .cpt-a{justify-content:flex-start}
}

/* nouvelle version du site (11/10/2026) : bandeau « Actualiser » en haut de l'écran */
.updbar{position:fixed;top:0;left:0;right:0;z-index:1000;background:#0e5a52;color:#fff;padding-top:env(safe-area-inset-top,0px);box-shadow:0 10px 30px -18px rgba(0,0,0,.6);animation:updin .35s ease-out}
.updbar-in{max-width:1280px;margin:0 auto;padding:10px 32px;display:flex;align-items:center;gap:14px;font-size:14.5px;line-height:1.4}
.updbar-ic{flex:none;width:30px;height:30px;border-radius:999px;background:rgba(255,255,255,.16);display:inline-flex;align-items:center;justify-content:center;font-size:17px;font-weight:700}
.updbar-t{flex:1;min-width:0}
.updbar-t b{font-weight:700}
.updbar-a{display:flex;gap:8px;flex:none}
.updbar-go{border:0;border-radius:9px;background:#fff;color:#0e5a52;font:inherit;font-weight:700;padding:8px 16px;cursor:pointer}
.updbar-go:hover{background:#eef6f4}
.updbar-later{border:1px solid rgba(255,255,255,.45);border-radius:9px;background:transparent;color:#fff;font:inherit;font-weight:600;padding:8px 14px;cursor:pointer}
.updbar-later:hover{background:rgba(255,255,255,.1)}
.updbar button:focus-visible{outline:2px solid #fff;outline-offset:2px}
@keyframes updin{from{transform:translateY(-100%)}to{transform:none}}
@media (prefers-reduced-motion:reduce){.updbar{animation:none}}
@media (max-width:820px){
  .updbar-in{padding:10px 16px;flex-wrap:wrap;gap:8px 12px}
  .updbar-t{flex:1 1 calc(100% - 44px)}
  .updbar-a{width:100%}
  .updbar-a button{flex:1}
}

/* ---------------------------------------------------------------- Prédicteur (12/10/2026) : 3e carte de la page Value, admins
   seulement. Accent violet « laboratoire » distinct du doré (Sélection) et du vert (Détecteur). */
:root{--pred:#5b4bb5;--pred-soft:color-mix(in srgb,var(--pred) 11%,var(--surface));--pred-ink:#fff}
.vtabs.vmode.three{grid-template-columns:1fr 1fr 1fr}
/* (19/10/2026) administrateur : 4e carte « Mouvements Pinnacle » */
.vtabs.vmode.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.vtabs.vmode.five{grid-template-columns:repeat(5,minmax(0,1fr))}
/* 5 cartes (admin) : cartouches compacts - titre + compteur sur une ligne, sous-titre court en dessous */
.vtabs.vmode.five .vm-card{grid-template-columns:auto 1fr;grid-template-areas:"ic txt" "ic n";gap:2px 12px;padding:12px 14px}
.vtabs.vmode.five .vm-ic{grid-area:ic;width:38px;height:38px;align-self:center}
.vtabs.vmode.five .vm-txt{grid-area:txt;gap:1px}
.vtabs.vmode.five .vm-txt b{font-size:16px;line-height:1.2}
.vtabs.vmode.five .vm-txt small{font-size:12px;line-height:1.3}
.vtabs.vmode.five .vm-n{grid-area:n;flex-direction:row;align-items:baseline;gap:6px;justify-content:flex-start;margin-top:4px}
.vtabs.vmode.five .vm-n b{font-size:20px}
@media (max-width:1240px){.vtabs.vmode.four{grid-template-columns:1fr 1fr}}
@media (max-width:1100px){.vtabs.vmode.five{grid-template-columns:1fr 1fr}}
.vtabs.vmode .vm-card[hidden]{display:none}
.vtabs.vmode .vm-pred[aria-selected="false"] .vm-ic{background:var(--pred-soft);color:var(--pred)}
.vtabs.vmode .vm-pred[aria-selected="true"]{border-color:var(--pred);background:var(--pred-soft);box-shadow:0 0 0 1px var(--pred) inset}
.vtabs.vmode .vm-pred[aria-selected="true"] .vm-ic{background:var(--pred);color:var(--pred-ink)}
.pred-intro{margin:-6px 0 12px}
.pred-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
.pred-tab{padding:7px 14px;border:1.5px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink2);font:inherit;font-size:13.5px;font-weight:600;cursor:pointer}
.pred-tab:hover{border-color:var(--ctrl-border)}
.pred-tab[aria-selected="true"]{border-color:var(--pred);background:var(--pred);color:var(--pred-ink)}
.pred-tab:focus-visible{outline:2px solid var(--pred);outline-offset:2px}
.pred-set{margin-bottom:12px}
.pred-set .field input{width:76px}
.pred-set .field select{font:inherit;font-size:14px;padding:5px 8px;border:1px solid var(--ctrl-border);border-radius:8px;background:var(--surface);color:var(--ink)}
.pred-stamp{margin-left:auto;font-size:12.5px;color:var(--muted)}
.pred-sub{margin:0 0 10px}
.pred-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:0 0 10px;font-size:13.5px;color:var(--ink2)}
.pred-f select{font:inherit;font-size:13.5px;padding:4px 8px;border:1px solid var(--ctrl-border);border-radius:8px;background:var(--surface);color:var(--ink);max-width:220px}
.pred-table{margin:0 0 14px}
.pred-table .fb-table{min-width:980px}
.pred-table .fb-table td{white-space:nowrap}
.pred-table .fb-table td:first-child{white-space:normal;min-width:190px}
.pred-table .teams{display:block;font-size:14.5px;color:var(--ink);text-decoration:none}
.pred-table .teams:hover{text-decoration:underline}
.pred-table .when{display:block;font-size:12.5px;color:var(--ink2);white-space:nowrap}
.pred-table .vedge-c{justify-content:flex-end}
.pred-break .fb-table{min-width:720px}
.pred-conf{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.pred-conf.hi{background:color-mix(in srgb,var(--good) 13%,var(--surface));color:var(--good)}
.pred-conf.md{background:var(--warn-bg);color:var(--warn-ink)}
.pred-conf.lo{background:var(--head);color:var(--muted)}
.pred-unk{font-size:12px;color:var(--muted)}
.pred-st{display:inline-block;margin-left:2px;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600}
.pred-st.ok{background:color-mix(in srgb,var(--good) 13%,var(--surface));color:var(--good)}
.pred-st.ko{background:color-mix(in srgb,var(--bad) 12%,var(--surface));color:var(--bad)}
.pred-st.wait{background:var(--head);color:var(--muted)}
.pred-eo{font-size:12.5px;font-weight:600}
.pred-best{font-size:12px;color:var(--muted);font-weight:400}
.pred-nopin{color:var(--muted);font-size:13px}
.pred-pin{font-variant-numeric:tabular-nums}
.pred-dlt{margin-left:8px;padding:1px 7px;border-radius:999px;font-size:12px;font-weight:600}
.pred-dlt.near{background:color-mix(in srgb,var(--good) 12%,var(--surface));color:var(--good)}
.pred-dlt.mid{background:var(--warn-bg);color:var(--warn-ink)}
.pred-dlt.far{background:color-mix(in srgb,var(--bad) 12%,var(--surface));color:var(--bad)}
.pred-row-pin td{color:var(--ink2)}
.pred-kpis{margin-bottom:12px}
.pred-kpis .bkpis-grid{grid-template-columns:repeat(4,1fr)}
.pred-names,.pred-params{padding:16px 20px;margin:0 0 14px}
.pred-names h3{margin:0 0 6px;font:600 17px var(--serif)}
.pred-names p{margin:6px 0;font-size:13.5px;line-height:1.5}
.pred-params summary{cursor:pointer;font-weight:600;color:var(--ink2)}
.pred-params-in{display:grid;grid-template-columns:1fr 1fr;gap:14px 24px;margin-top:12px;font-size:13.5px}
.pred-params-in ul{margin:6px 0 0;padding-left:18px;line-height:1.55}
@media (max-width:900px){.vtabs.vmode.three,.vtabs.vmode.four,.vtabs.vmode.five{grid-template-columns:1fr}.pred-kpis .bkpis-grid{grid-template-columns:1fr 1fr}.pred-params-in{grid-template-columns:1fr}.pred-stamp{margin-left:0;width:100%}}
.pred-two{font-variant-numeric:tabular-nums;font-size:12.5px;line-height:1.35}
.pred-two span{display:block;white-space:nowrap}
.pred-two .pred-mk::before{content:"forces ";color:var(--muted)}
.pred-two .pred-xg::before{content:"xG ";color:var(--muted)}
.pred-books{white-space:nowrap}
.pred-bk{display:inline-block;margin-right:6px;vertical-align:middle;opacity:.75}
.pred-bk.best{opacity:1}
.pred-bk.best .logo-tag{outline:2px solid var(--pred);outline-offset:2px;border-radius:4px}
.pred-pin{display:flex;flex-direction:column;gap:2px;line-height:1.3}
.pred-pin-raw{font-weight:600}
.pred-pin-fair{font-size:12.5px;color:var(--ink2)}
.pred-details-in{margin-top:12px}
.pred-details-in>*{margin-bottom:12px}
.sb-verif{display:inline-block;margin-left:8px;padding:1px 7px;border-radius:999px;font-size:11.5px;font-weight:600;background:var(--warn-bg);color:var(--warn-ink);white-space:nowrap}
.sb-verif.ok{background:color-mix(in srgb,var(--good) 13%,var(--surface));color:var(--good)}

/* (13/10/2026) Sélection : nom du bookmaker de la cote affichée, en bulle au survol de la pastille */
.selc-state[data-bk]{position:relative;cursor:default}
.selc-state[data-bk]:hover::after,.selc-state[data-bk]:focus-visible::after{content:attr(data-bk);position:absolute;right:0;bottom:calc(100% + 6px);z-index:5;
  padding:4px 10px;border-radius:8px;background:var(--ink);color:var(--surface);font-size:12.5px;font-weight:700;white-space:nowrap;box-shadow:0 4px 14px rgba(0,0,0,.18)}

/* (13/10/2026) Prédicteur : barre de réglages en boutons segmentés */
.pred-set{display:flex;flex-direction:column;gap:12px;padding:14px 18px;margin-bottom:14px}
.pred-ctrls{display:flex;flex-wrap:wrap;gap:12px 28px;align-items:flex-end}
.pred-segf{display:flex;flex-direction:column;gap:6px}
.pred-segl{font-size:11.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.pred-seg{display:inline-flex;flex-wrap:wrap;border:1.5px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surface)}
.pred-seg button{padding:7px 12px;border:0;border-right:1px solid var(--line);background:transparent;color:var(--ink2);font:inherit;font-size:13.5px;font-weight:600;cursor:pointer}
.pred-seg button:last-child{border-right:0}
.pred-seg button:hover{background:var(--head)}
.pred-seg button[aria-pressed="true"]{background:var(--pred);color:var(--pred-ink)}
.pred-seg button:focus-visible{outline:2px solid var(--pred);outline-offset:-2px}
.pred-sel{font:inherit;font-size:13.5px;padding:7px 10px;border:1.5px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);min-width:180px;max-width:100%}
.pred-setfoot{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;padding-top:10px;border-top:1px solid var(--line-soft)}
.pred-setfoot .pred-stamp{margin-left:0;flex:1}

/* grilles Prédicteur (Values pressenties, Matchs à venir) : jamais de défilement horizontal */
.pg{padding:0;overflow:hidden;margin-bottom:14px}
.pg-row{display:grid;align-items:center;gap:0 14px;padding:12px 18px;border-top:1px solid var(--line-soft)}
.pg-row:first-child{border-top:0}
.pg-head{background:var(--head);font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2);padding-block:10px}
.pg-c{min-width:0}
.pg-c.ctr{text-align:center;justify-self:center}
.pg-match .teams{display:block;font-weight:600;font-size:14.5px;color:var(--ink);text-decoration:none;line-height:1.3}
.pg-match .teams:hover{text-decoration:underline}
.pg-match .when{display:block;font-size:12.5px;color:var(--ink2);margin-top:2px}
.pg-big{font-size:16px;font-variant-numeric:tabular-nums}
.pg-issue{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:8px;background:var(--head);font-size:14px}
.pg .vedge-c{justify-content:center}
.pv{grid-template-columns:minmax(160px,1.5fr) 48px 288px repeat(5,minmax(72px,.7fr))}
.pred-bk-grid{display:grid;grid-template-columns:repeat(3,max-content);gap:6px 8px;align-items:center}
.pred-bk-grid .pred-bk{margin:0}
.pred-bk-grid .logo-tag{width:88px;height:26px;justify-content:center}
.pred-bk-grid .blogo{max-width:100%;height:auto}

.pm{grid-template-columns:minmax(200px,1.6fr) repeat(3,minmax(118px,1fr))}
.pm-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:6px}
.pm-anj{font-size:12.5px;color:var(--muted)}
.pm .pred-unk{font-size:12px;color:var(--muted);padding:1px 8px;border-radius:999px;background:var(--head)}
.pm-box{display:grid;gap:3px;justify-self:stretch;padding:8px 12px;border-radius:10px;background:var(--head);border:1.5px solid transparent}
.pm-line{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.pm-lab{font-size:12px;color:var(--muted)}
.pm-odd{font-size:17px;font-variant-numeric:tabular-nums;color:var(--ink)}
.pm-odd.none{color:var(--muted);font-weight:400}
.pm-dlt{min-height:18px;text-align:center;font-size:12.5px;font-weight:700;font-variant-numeric:tabular-nums}
.pm-box.near{border-color:color-mix(in srgb,var(--good) 45%,transparent)}.pm-box.near .pm-dlt{color:var(--good)}
.pm-box.mid{border-color:color-mix(in srgb,var(--warn-ink) 45%,transparent)}.pm-box.mid .pm-dlt{color:var(--warn-ink)}
.pm-box.far{border-color:color-mix(in srgb,var(--bad) 50%,transparent)}.pm-box.far .pm-dlt{color:var(--bad)}
.pm-k.near{color:var(--good)}.pm-k.mid{color:var(--warn-ink)}.pm-k.far{color:var(--bad)}

@media (max-width:1080px){
  .pv.pg-head{display:none}
  .pv{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px 12px}
  .pv .pg-match{grid-column:1/-2}
  .pv .pred-books{grid-column:1/-1}
  .pv .pg-c[data-l]:not([data-l=""])::before{content:attr(data-l);display:block;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-bottom:3px}
}
@media (max-width:900px){
  .pg-head{display:none}
  .pv{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 12px}
  .pv .pg-match{grid-column:1/-2}
  .pv .pred-books{grid-column:1/-1}
  .pv .pg-c[data-l="Issue"]{justify-self:end;text-align:right}
  .pv .pg-c[data-l]:not([data-l=""])::before{content:attr(data-l);display:block;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-bottom:3px}
  .pv .pg-c.ctr{justify-self:start;text-align:left}
  .pv .pg .vedge-c,.pv .vedge-c{justify-content:flex-start}
  .pm{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 8px}
  .pm .pg-match{grid-column:1/-1}
  .pm .pm-box::before{content:attr(data-l);text-align:center;font-size:12px;font-weight:700;color:var(--ink2)}
  .pm-box{padding:6px 8px}
  .pm-odd{font-size:15.5px}
}

/* (14/10/2026) Prédicteur : jugement contre l'ouverture Pinnacle, référence modèle + bookmakers ANJ */
.pred-ohead{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin:4px 0 10px}
.pred-ohead h3{margin:0;font:600 19px var(--serif);color:var(--ink)}
.po{grid-template-columns:minmax(150px,1.4fr) 64px 84px repeat(3,minmax(84px,.8fr)) 84px 84px 120px}
.po-iss{display:flex;flex-direction:column;align-items:center;gap:1px}
.po-iss small{font-size:11.5px;font-weight:600}
.po-over{color:var(--warn-ink)}.po-under{color:#3d6fb6}
.po-v{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12.5px;font-weight:700;background:var(--head);color:var(--muted)}
.po-v.up{background:color-mix(in srgb,var(--good) 14%,var(--surface));color:var(--good)}
.po-v.mid{background:var(--warn-bg);color:var(--warn-ink)}
.po-v.down{background:color-mix(in srgb,var(--bad) 12%,var(--surface));color:var(--bad)}
.pv-ref{display:block;font-size:11.5px;color:var(--muted);margin-top:1px}
.pm-anj-l .pm-odd2{font-size:14px;color:var(--ink2);font-variant-numeric:tabular-nums}
@media (max-width:1000px){
  .po.pg-head{display:none}
  .po{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 10px}
  .po .pg-match{grid-column:1/-2}
  .po .pg-c[data-l]::before{content:attr(data-l);display:block;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}
}

/* (15/10/2026) Prédicteur, Matchs à venir : absences */
.pm-abs{margin-top:8px}
.abs-tog{display:inline-flex;align-items:center;gap:5px;padding:3px 10px 3px 8px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}
.abs-tog:hover{border-color:var(--ink2)}
.abs-tog:focus-visible{outline:2px solid var(--accent, #4f46e5);outline-offset:2px}
.abs-dot{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;font-size:11px;font-weight:700}
.abs-dot.abs-q{background:transparent;border:1px dashed var(--abs-bless);color:var(--abs-bless-txt)}
.abs-body{display:none;gap:6px;margin-top:8px}
.pm-abs.open .abs-body{display:grid}
.abs-team{display:flex;flex-wrap:wrap;align-items:center;gap:4px}
.abs-tl{font-size:12.5px;font-weight:700;color:var(--ink);margin-right:4px}
.abs-n{display:inline-block;padding:0 8px;border-radius:999px;font-size:12px;font-weight:600;line-height:21px;border:1px solid transparent;cursor:help;white-space:nowrap}
.abs-susp{background:var(--abs-susp);color:#fff}
.abs-bless{background:var(--abs-bless);color:#fff}
.abs-malad{background:var(--abs-malad);color:#3d2f00}
.abs-autre{background:var(--head);color:var(--ink2);border-color:var(--line)}
.abs-n.q{background:transparent;border-style:dashed;border-color:currentColor}
.abs-n.q.abs-susp{color:var(--abs-susp-txt)}.abs-n.q.abs-bless{color:var(--abs-bless-txt)}.abs-n.q.abs-malad{color:var(--abs-malad-txt)}
.abs-n.reg{font-weight:800;box-shadow:inset 0 0 0 1.5px rgba(0,0,0,.18)}
:root{--abs-susp:#d42a20;--abs-bless:#e8590c;--abs-malad:#f5c400;--abs-susp-txt:#b42318;--abs-bless-txt:#b84300;--abs-malad-txt:#7a6200}
@media (prefers-color-scheme:dark){:root:where(:not([data-theme="light"])){--abs-susp:#e5483d;--abs-bless:#f06f1c;--abs-malad:#f5c400;--abs-susp-txt:#ff8d84;--abs-bless-txt:#ffa45c;--abs-malad-txt:#f5d34a}}
:root[data-theme="dark"]{--abs-susp:#e5483d;--abs-bless:#f06f1c;--abs-malad:#f5c400;--abs-susp-txt:#ff8d84;--abs-bless-txt:#ffa45c;--abs-malad-txt:#f5d34a}
/* (15/10/2026) Prédicteur, Bilan : grille sans défilement horizontal */
.pb{grid-template-columns:minmax(150px,1.4fr) 40px 270px 84px 92px 156px 72px 96px 96px}
.pb .pred-eo{white-space:nowrap}
.pb-sub{display:block;font-size:11.5px;color:var(--muted);margin-top:2px;font-weight:400}
.pb-conf{display:block;margin-top:5px}
.pb .pg-c.up b,.pb b.up{color:var(--good)}.pb .pg-c.down b,.pb b.down{color:var(--bad)}.pb .pg-c.flat b{color:var(--ink2)}
.pb .pred-st{font-size:11px}
@media (max-width:1240px){
  .pb.pg-head{display:none}
  .pb{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 12px}
  .pb .pg-match{grid-column:1/-2}
  .pb .pred-books{grid-column:1/-1}
  .pb .pg-c[data-l]:not([data-l=""])::before{content:attr(data-l);display:block;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-bottom:3px}
}
@media (max-width:560px){
  .pb{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pb .pg-match{grid-column:1/-1}
  .pb .pg-c.ctr{justify-self:start;text-align:left}
}
.pred-miss{color:var(--warn-ink)}

/* (15/10/2026, option A) Matchs à venir : écart marché / modèle (vert = marché au-dessus, bleu = en dessous) */
:root{--gx-up:#13753b;--gx-up-bg:#e3f2e7;--gx-up-bg2:#c7e8d0;--gx-up-line:#9fd3b0;--gx-dn:#2559a8;--gx-dn-bg:#e5edf8;--gx-dn-bg2:#cddcf2;--gx-dn-line:#a9c0e6}
@media (prefers-color-scheme:dark){:root:where(:not([data-theme="light"])){--gx-up:#2f9d5b;--gx-up-bg:#16281d;--gx-up-bg2:#1d3a27;--gx-up-line:#2c5e3c;--gx-dn:#4a82d6;--gx-dn-bg:#172133;--gx-dn-bg2:#1d2d49;--gx-dn-line:#2f4c7a}}
:root[data-theme="dark"]{--gx-up:#2f9d5b;--gx-up-bg:#16281d;--gx-up-bg2:#1d3a27;--gx-up-line:#2c5e3c;--gx-dn:#4a82d6;--gx-dn-bg:#172133;--gx-dn-bg2:#1d2d49;--gx-dn-line:#2f4c7a}
.pm-gap{min-height:22px;display:flex;justify-content:center;align-items:center;margin-top:2px}
.gx-tag{font-size:12.5px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--muted);padding:1px 10px;border-radius:999px;white-space:nowrap}
.pm-box.gx-up{background:var(--gx-up-bg);border-color:var(--gx-up-line)}
.pm-box.gx-up2{background:var(--gx-up-bg2);border-color:var(--gx-up)}
.pm-box.gx-dn{background:var(--gx-dn-bg);border-color:var(--gx-dn-line)}
.pm-box.gx-dn2{background:var(--gx-dn-bg2);border-color:var(--gx-dn)}
.pm-box.gx-up .gx-tag,.pm-box.gx-up2 .gx-tag{background:var(--gx-up);color:#fff;font-weight:700}
.pm-box.gx-dn .gx-tag,.pm-box.gx-dn2 .gx-tag{background:var(--gx-dn);color:#fff;font-weight:700}
.gx-src{display:inline-block;margin-top:6px;font-size:11.5px;color:var(--ink2);background:var(--head);border-radius:999px;padding:1px 9px}
.gx-k{display:inline-block;padding:0 8px;border-radius:999px;color:#fff;font-weight:700;font-size:12px}.gx-k.up{background:var(--gx-up)}.gx-k.dn{background:var(--gx-dn)}

/* (15/10/2026) Prédicteur : filtre « Compétitions » à choix multiples */
.pred-comp-btn{display:inline-flex;align-items:center;gap:10px;min-width:190px;justify-content:space-between;padding:7px 12px;border:1.5px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font:inherit;font-size:13.5px;font-weight:600;cursor:pointer}
.pred-comp-btn:hover{background:var(--head)}
.pred-comp-btn.on{border-color:var(--pred);color:var(--pred)}
.pred-comp-btn:focus-visible,.pred-comp-chip:focus-visible,.pred-comp-q:focus-visible{outline:2px solid var(--pred);outline-offset:2px}
.pred-comp-car{font-size:12px;color:var(--muted)}
.pred-comp-panel{flex-basis:100%;display:grid;gap:12px;padding:14px 16px;border:1.5px solid var(--line);border-radius:12px;background:var(--page)}
.pred-comp-quick{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.pred-comp-q,.pred-comp-close{padding:5px 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink2);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}
.pred-comp-q:hover,.pred-comp-close:hover{background:var(--head)}
.pred-comp-close{margin-left:auto}
.pred-comp-group{display:grid;gap:6px}
.pred-comp-gl{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.pred-comp-chips{display:flex;flex-wrap:wrap;gap:6px}
.pred-comp-chip{display:inline-flex;align-items:center;gap:7px;padding:5px 6px 5px 12px;border:1.5px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);font:inherit;font-size:13px;font-weight:500;cursor:pointer}
.pred-comp-chip:hover{border-color:var(--ink2)}
.pred-comp-chip[aria-pressed="true"]{background:var(--pred);border-color:var(--pred);color:var(--pred-ink);font-weight:600}
.pred-comp-n{display:inline-grid;place-items:center;min-width:22px;height:20px;padding:0 6px;border-radius:999px;background:var(--head);color:var(--ink2);font-size:11.5px;font-weight:700;font-variant-numeric:tabular-nums}
.pred-comp-chip[aria-pressed="true"] .pred-comp-n{background:rgba(255,255,255,.22);color:var(--pred-ink)}
.pred-comp-hint{margin:0;font-size:12.5px;color:var(--ink2)}
/* (15/10/2026, version 3) modèle habillé de la marge : ligne « Meilleure » et nom du bookmaker */
.pm-box .pm-best .pm-lab{display:inline-flex;align-items:center;gap:5px}
.pm-box .pm-best .pm-odd2{font-size:14px;font-weight:600;color:var(--ink2);font-variant-numeric:tabular-nums}
.gx-bk{display:inline-block;padding:0 6px;border-radius:5px;background:var(--ink);color:var(--surface);font-size:10.5px;font-weight:700;line-height:17px;white-space:nowrap}
@media (max-width:640px){.pm-best-l{display:none}}
/* (15/10/2026) Matchs à venir : l'EDGE colore la case ; l'écart modèle / marché est écrit à côté */
.pm-box .pm-gap{flex-wrap:wrap;gap:4px 8px}
.gx-ecart{font-size:12px;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.gx-ecart.up{color:var(--gx-up)}.gx-ecart.dn{color:var(--gx-dn)}
.pm-box .gx-tag.gx-edge{background:transparent;color:var(--ink2);border:1px solid var(--line);font-weight:700}
.pm-box .gx-tag.gx-edge.on{background:var(--gx-up);border-color:var(--gx-up);color:#fff}
/* (15/10/2026) Fiabilité : suivi expérimental « Désaccord modèle / marché » */
.pred-xp{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--warn-ink);background:var(--warn-bg);border-radius:999px;padding:2px 10px}
.pdis{grid-template-columns:minmax(150px,1.5fr) repeat(6,minmax(70px,.8fr))}
.pdis .pg-c.up b,.pdis .pg-c.up{color:var(--good)}.pdis .pg-c.down b,.pdis .pg-c.down{color:var(--bad)}
@media (max-width:900px){
  .pdis.pg-head{display:none}
  .pdis{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
  .pdis .pg-match{grid-column:1/-1}
  .pdis .pg-c[data-l]::before{content:attr(data-l);display:block;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}
}
/* (15/10/2026) onglet « Bilan modèle » et Fiabilité réunie */
.pred-osrc{font-size:13px;color:var(--ink2)}
.pred-h3{margin:18px 0 10px;font:600 19px var(--serif);color:var(--ink)}
.pdl{grid-template-columns:minmax(170px,1.6fr) 44px 70px 90px 92px 100px 110px 104px 110px}
.pdl.unk{opacity:.6}
.pdl .pg-c.up b{color:var(--good)}.pdl .pg-c.down b{color:var(--bad)}.pdl .pg-c.flat b{color:var(--ink2)}
.pdl .pb-sub.up{color:var(--good)}.pdl .pb-sub.down{color:var(--bad)}
@media (max-width:1100px){
  .pdl.pg-head{display:none}
  .pdl{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
  .pdl .pg-match{grid-column:1/-1}
  .pdl .pg-c[data-l]::before{content:attr(data-l);display:block;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}
  .pdl .pg-c.ctr{justify-self:start;text-align:left}
}
@media (max-width:520px){.pdl{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* (15/10/2026) Bilan modèle : une ligne par match, encadré « Comment ça marche » */
.pred-how{padding:12px 18px;margin-bottom:14px}
.pred-how summary{cursor:pointer;font-weight:700;color:var(--ink)}
.pred-how ol{margin:10px 0 2px;padding-left:20px;display:grid;gap:6px;color:var(--ink2);font-size:13.5px;max-width:980px}
.pdm{grid-template-columns:minmax(170px,1.3fr) repeat(3,minmax(150px,1fr)) 110px 100px;align-items:stretch}
.pdm.pg-head{align-items:center}
.pdm.unk{opacity:.6}
.pdm-cell{display:grid;gap:2px;align-content:start;padding:7px 10px;border-radius:10px;background:var(--head);font-size:12.5px}
.pdm-cell.off{display:flex;align-items:center;justify-content:center;background:transparent;border:1px dashed var(--line)}
.pdm-cell.bet{background:var(--gx-up-bg);border:1.5px solid var(--gx-up-line)}
.pdm-l{display:flex;justify-content:space-between;align-items:baseline;gap:6px}
.pdm-l > span:first-child{color:var(--muted)}
.pdm-l b{font-size:14.5px;font-variant-numeric:tabular-nums}
.pdm-close{font-size:11.5px;color:var(--ink2);font-variant-numeric:tabular-nums}
.pdm-bet{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;margin-top:3px;padding-top:4px;border-top:1px solid var(--gx-up-line);font-size:12px}
.pdm-bet .up{color:var(--good);font-weight:700}.pdm-bet .down{color:var(--bad);font-weight:700}
.pdm .pg-c.ctr{align-self:center}
.pdm .pg-c.flat b{color:var(--ink2)}
@media (max-width:1100px){
  .pdm.pg-head{display:none}
  .pdm{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .pdm .pg-match{grid-column:1/-1}
  .pdm .pg-c[data-l]::before{content:attr(data-l);display:block;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}
  .pdm .pg-c.ctr{justify-self:start;text-align:left}
}
@media (max-width:560px){.pdm{grid-template-columns:1fr}}
/* (15/10/2026) blocs repliables du Prédicteur, lecture automatique du Bilan value */
.pred-fold{margin:14px 0}
.pred-fold > summary{display:flex;align-items:baseline;gap:12px;cursor:pointer;list-style:none;padding:10px 16px;border:1.5px solid var(--line);border-radius:12px;background:var(--surface)}
.pred-fold > summary::-webkit-details-marker{display:none}
.pred-fold > summary::before{content:"▸";color:var(--muted);font-size:13px}
.pred-fold[open] > summary::before{content:"▾"}
.pred-fold[open] > summary{margin-bottom:10px}
.pred-fold-t{font:600 17px var(--serif);color:var(--ink)}
.pred-fold-h{font-size:12.5px;color:var(--muted)}
.pred-fold-bar{display:flex;justify-content:flex-end;margin-bottom:10px}
.pred-read{padding:12px 18px;margin-bottom:14px;font-size:14px;color:var(--ink);border-left:4px solid var(--pred)}

/* (16/10/2026) Opening : barre de filtres sur une seule ligne (Sport, Période, Compétitions, Trier, Rechercher, Alertes).
   Les menus « Compétitions » et « Alertes » reprennent le menu à choix multiples du Prédicteur (.pred-comp-*),
   aux couleurs de la marque. */
.opbar{--pred:var(--brand);--pred-ink:var(--brand-ink);display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 16px;margin:24px 0 16px;padding:12px 16px}
.opbar>div:empty{display:none}
.opf{display:flex;flex-direction:column;gap:6px;min-width:0}
.opl{font-size:11.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.opbar .pred-comp-btn{min-height:46px;min-width:150px;border:1px solid var(--ctrl-border)}
.opbar .seg button{padding:0 12px}
.opbar .pred-comp-btn.on{border-color:var(--brand);color:var(--brand)}
.opbar .pred-comp-btn.open{background:var(--head)}
.opf-q{flex:1 1 140px;max-width:280px}
.opf-q input{min-height:46px;padding:0 12px;background:var(--surface);border:1px solid var(--ctrl-border);border-radius:10px;color:var(--ink);font:inherit;width:100%;box-sizing:border-box}
.opf-q input:focus-visible{outline:2px solid var(--brand);outline-offset:1px}
.opbar .op-bell{min-width:0}
.op-bell>span:first-child{display:inline-flex;align-items:center;gap:8px}
.op-bell-i{font-size:14px}
#opanel,#bpanel{flex-basis:100%}
#opanel:empty,#bpanel:empty{display:none}
.op-alert-t{font-size:13px;font-weight:600;color:var(--ink2);margin-right:6px}
@media (max-width:700px){
  .opbar{gap:12px 14px}
  .opf-q{flex-basis:100%;max-width:none}
  .opbar .pred-comp-btn{min-width:150px}
}
/* (16/10/2026) pastille rouge des nouvelles values pressenties sur l'onglet « Values pressenties » du Prédicteur */
.pred-tab-new{display:inline-grid;place-items:center;min-width:20px;height:20px;margin-left:7px;padding:0 6px;border-radius:999px;background:#d92d20;color:#fff;font-size:11.5px;font-weight:700;font-variant-numeric:tabular-nums;vertical-align:1px}
/* (16/10/2026) page Boosts : barre de filtres (.opbar, comme l'Opening) ; état des bookmakers seulement en cas de souci */
.bxwarn{margin:-4px 0 14px}
.bxwarn:empty{display:none}
/* (16/10/2026) tableau des boosts : passe en cartes dès que la largeur ne suffit plus pour ses 7 colonnes (avant : seulement
   sous 820 px, et entre 820 et 1200 px les colonnes « Détection » et « Bilan » sortaient du cadre) */
@media (max-width:1200px){
  .bxrow{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px 16px}
  .bxrow.ohead{display:none}
  .bxbook{grid-column:1/-1;justify-content:flex-start}
  .bxmain{grid-column:1/-1}
  .bxodds{grid-column:1/-1;justify-content:start}
  .bxrow .vbilan{justify-self:start}
  .bxrow .bxstake{text-align:left}
}
@media (min-width:821px) and (max-width:1200px){
  .bxrow{grid-template-columns:minmax(230px,1.5fr) repeat(4,minmax(0,1fr))}
  .bxbook,.bxodds{grid-column:auto}
  .bxmain{grid-column:span 4}
}

/* (13/10/2026, version 1 validée par Nico) page Freebets : barre de filtres (.opbar comme l'Opening), anneaux de taux,
   bandeau vert en tête du plan de mise */
.fbbar{margin:18px 0 18px}
#fbpanel{flex-basis:100%}
#fbpanel:empty{display:none}
.fbbar .fb-inp input{width:84px;min-height:46px;padding:0 12px;background:var(--surface);border:1px solid var(--ctrl-border);border-radius:10px;color:var(--ink);font:inherit;font-weight:600}
.fbbar .fb-inp input:focus-visible{outline:2px solid var(--brand);outline-offset:1px}
.fbbar .seg button{padding:0 11px}
.fb-dd-t{display:inline-flex;align-items:center;gap:8px}
.fb-sumrow{display:none}
#fbpanel-fb .fbk-table{max-width:640px}
/* anneau du taux */
.fb-ring{--p:80;--c:#8fe0d2;--bg:rgba(255,255,255,.18);--hole:var(--brand);position:relative;display:inline-grid;place-items:center;flex:none;width:78px;height:78px;border-radius:50%;
  background:conic-gradient(var(--c) calc(var(--p) * 1%),var(--bg) 0)}
.fb-ring::after{content:"";position:absolute;inset:8px;border-radius:50%;background:var(--hole)}
.fb-ring b{position:relative;z-index:1;color:#fff;font-size:17px;font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.fb-ring b small{font-size:.62em;font-weight:600;margin-left:1px}
.fb-ring.sm{--c:var(--brand);--bg:var(--line);--hole:var(--surface);width:54px;height:54px}
.fb-ring.sm::after{inset:5px}
.fb-ring.sm b{color:var(--ink);font-size:12.5px}
.fb-opp.on .fb-ring.sm{--hole:color-mix(in srgb,var(--brand-soft) 55%,var(--surface))}
/* liste de gauche */
.fb-opp{gap:12px}
.fb-opp.on{background:color-mix(in srgb,var(--brand-soft) 55%,var(--surface))}
.fb-opp-txt b{font-size:13.5px}
.fb-opp-txt .fb-rank{width:20px;height:20px;margin-right:6px;font-size:11px;vertical-align:1px}
.fb-gain{color:var(--good);font-size:15px}
.fb-opp-num small{color:var(--muted);font-size:11.5px;font-weight:500}
/* bandeau vert du plan de mise */
.fb-head{padding-bottom:4px}
.fb-band{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:16px;align-items:center;margin:8px 14px 14px;padding:14px 16px;border-radius:14px;background:#0e5a52;color:#fff}
.fb-band-k{display:grid;grid-template-columns:repeat(3,minmax(0,auto));gap:8px 24px;justify-content:start}
.fb-band-k > div{display:flex;flex-direction:column;min-width:0}
.fb-band-k span{font-size:12px;color:#cfe9e4}
.fb-band-k b{font-size:21px;font-weight:700;white-space:nowrap;letter-spacing:-.01em}
.fb-band-k small{font-size:11.5px;color:#cfe9e4}
.fb-band-gain{color:#8fe0d2}
.fb-band-acts{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;max-width:260px}
.fb-band-acts .abtn{background:transparent;border-color:rgba(255,255,255,.55);color:#fff}
.fb-band-acts .abtn:hover{background:rgba(255,255,255,.12)}
.fb-band-acts .abtn-primary{background:#fff;border-color:#fff;color:#0e5a52}
.fb-band-acts .abtn-primary:hover{background:#e6f3f0}
.fb-band-acts .abtn:focus-visible{outline:2px solid #fff;outline-offset:2px}
@media (max-width:1180px){
  .fb-band{grid-template-columns:auto minmax(0,1fr)}
  .fb-band-acts{grid-column:1/-1;justify-content:flex-start;max-width:none}
}
@media (max-width:700px){
  .fb-band-k{grid-template-columns:1fr 1fr}
  .fb-band .fb-ring{width:64px;height:64px}
  .fb-band .fb-ring b{font-size:14px}
  /* téléphone : la barre se replie en une ligne de résumé */
  .fb-sumrow{display:flex;flex-wrap:wrap;gap:6px;align-items:center;flex-basis:100%}
  .fb-sumrow .vset-btn{margin-left:auto}
  .fbbar:not(.fb-open) > .opf,.fbbar:not(.fb-open) > div[id^="fb-dd-"],.fbbar:not(.fb-open) > #fbpanel{display:none}
  .fbbar .seg{flex-wrap:wrap}
}
/* (13/10/2026) téléphone : chaque pari du plan de mise devient une petite carte (le tableau défilait de côté) */
@media (max-width:700px){
  .fb-card .scroller{overflow:visible}
  .fb-table{min-width:0}
  .fb-table thead{display:none}
  .fb-table,.fb-table tbody{display:block}
  .fb-table tr{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:6px 10px;align-items:center;padding:12px 14px;border-top:1px solid var(--line-soft)}
  .fb-table td{display:block;padding:0;border:0}
  .fb-table .fb-i{grid-row:1/3;align-self:start}
  .fb-table .fb-pari{grid-column:2/3}
  .fb-table .fb-bk{grid-column:3/4;grid-row:1}
  .fb-table .fb-ty{grid-column:3/4;grid-row:2;justify-self:end}
  .fb-table td.rr{grid-column:2/-1;display:flex;justify-content:space-between;gap:10px;text-align:left}
  .fb-table td.rr::before{content:attr(data-l);color:var(--ink2);font-size:12.5px}
  .fb-table td.rr .fb-sub{display:inline;margin-left:6px}
  .fb-table .logo-tag{width:96px}
}

/* ===================== (13/10/2026) saisies manuelles (boosts, promos) et page « Promos » ===================== */
/* barre et bouton flottant réservés aux administrateurs */
.adm-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin:14px 0 0}
.adm-note{font-size:12.5px;color:var(--muted)}
.adm-fab{display:none}
@media (max-width:700px){
  .adm-fab{display:grid;place-items:center;position:fixed;right:16px;bottom:calc(84px + env(safe-area-inset-bottom, 0px));z-index:40;width:56px;height:56px;border:0;border-radius:50%;
    background:var(--brand);color:var(--brand-ink);font-size:28px;line-height:1;box-shadow:0 8px 22px rgba(14,90,82,.38);cursor:pointer}
}
/* volet de saisie : par le bas sur téléphone, centré sur ordinateur */
html.sheet-open{overflow:hidden}
html.sheet-open .qb-btn,html.sheet-open .qb-panel,html.sheet-open .adm-fab{display:none}
.sheet-wrap{position:fixed;inset:0;z-index:960;display:flex;align-items:flex-end;justify-content:center}
.sheet-dim{position:absolute;inset:0;background:rgba(10,20,18,.42)}
.sheet{position:relative;width:100%;max-width:560px;max-height:92vh;display:flex;flex-direction:column;background:var(--surface);color:var(--ink);
  border-radius:22px 22px 0 0;box-shadow:0 -12px 34px rgba(0,0,0,.22);padding:8px 16px calc(14px + env(safe-area-inset-bottom, 0px))}
@media (min-width:701px){ .sheet-wrap{align-items:center} .sheet{border-radius:20px;max-height:88vh} .sheet-grab{display:none} }
.sheet-grab{width:42px;height:5px;border-radius:9px;background:var(--line);margin:2px auto 8px;flex:none}
.sheet-h{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:4px 0 8px;flex:none}
.sheet-h b{display:block;font-size:18px}
.sheet-h span{font-size:12.5px;color:var(--muted)}
.sheet-x{border:0;background:var(--head);color:var(--ink2);width:36px;height:36px;border-radius:50%;font-size:15px;cursor:pointer;flex:none}
.sheet-body{overflow-y:auto;overscroll-behavior:contain;margin:0 -16px;padding:0 16px 4px}
/* formulaires */
.mf{display:flex;flex-direction:column}
.mf-l{display:block;margin:12px 0 6px;font-size:11.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.mf input[type=text],.mf input[type=url],.mf input[type=time],.mf input[type=datetime-local],.mf textarea{width:100%;box-sizing:border-box;min-height:48px;padding:0 12px;border:1px solid var(--ctrl-border);
  border-radius:12px;background:var(--surface);color:var(--ink);font:inherit;font-size:16px}
.mf textarea{padding:10px 12px;min-height:96px;resize:vertical}
.mf input:focus-visible,.mf textarea:focus-visible{outline:2px solid var(--brand);outline-offset:1px}
.mf-chips{display:flex;flex-wrap:wrap;gap:6px}
.mf-chip{min-height:40px;padding:0 14px;border:1.5px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);font:inherit;font-size:14px;font-weight:600;cursor:pointer}
.mf-chips.sm .mf-chip{min-height:34px;padding:0 11px;font-size:13px}
.mf-chip[aria-pressed="true"]{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}
.mf-chip:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.mf-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.mf-row input[type=time]{width:120px}
/* (18/10/2026) promo : compétitions et sports choisis pour « Match ou compétition » */
.pf-cats{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:6px}
.pf-cat{display:inline-flex;align-items:center;gap:4px;min-height:34px;padding:2px 4px 2px 12px;border-radius:999px;background:var(--brand-soft);border:1.5px solid var(--brand);color:var(--brand);font-weight:600;font-size:14px}
.pf-cat button{display:grid;place-items:center;width:28px;height:28px;border:0;border-radius:50%;background:transparent;color:var(--brand);font:inherit;font-size:13px;cursor:pointer}
.pf-cat button:hover,.pf-cat button:focus-visible{background:color-mix(in srgb,var(--brand) 14%,transparent)}
.pf-cats-n{flex-basis:100%;color:var(--ink2);font-size:12.5px}
.pf-quick{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px}
.pf-quick-l{color:var(--muted);font-size:12.5px;margin-right:2px}
.pf-qc{min-height:32px;padding:3px 11px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;font-size:13px;cursor:pointer}
.pf-qc.sp{font-weight:600}
.pf-qc:hover,.pf-qc:focus-visible{border-color:var(--brand);color:var(--brand)}
.mf-sug-i .pf-add{color:var(--brand);font-weight:700}
.mf-sug{display:flex;flex-direction:column;margin-top:4px;border-radius:12px;overflow:hidden}
.mf-sug:empty{display:none}
.mf-sug-i{display:flex;justify-content:space-between;gap:10px;align-items:center;min-height:44px;padding:6px 12px;border:1px solid var(--line);border-top:0;background:var(--surface);color:var(--ink);font:inherit;font-size:14px;text-align:left;cursor:pointer}
.mf-sug-i:first-child{border-top:1px solid var(--line);border-radius:12px 12px 0 0}
.mf-sug-i:last-child{border-radius:0 0 12px 12px}
.mf-sug-i:only-child{border-radius:12px}
.mf-sug-i:hover,.mf-sug-i:focus-visible{background:var(--brand-soft)}
.mf-sug-i small{color:var(--muted);white-space:nowrap}
.mf-ok{margin:8px 0 0;font-size:13.5px;color:var(--good);font-weight:600}
.mf-link{margin-left:8px;border:0;background:transparent;color:var(--brand);font:inherit;font-weight:700;text-decoration:underline;cursor:pointer;padding:0}
.mf-odds{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:end}
.mf-odds input{text-align:center;font-weight:700;font-size:18px !important;font-variant-numeric:tabular-nums}
.mf-pct{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:78px;min-height:48px;border-radius:12px;background:var(--brand-soft);color:var(--brand)}
.mf-pct b{font-size:17px}
.mf-pct b.mf-pct-0{color:var(--muted)}
.mf-pct small{font-size:10.5px;color:var(--ink2)}
.mf-other input{width:86px !important;min-height:40px !important;text-align:center}
.mf-val input{width:110px !important;font-weight:700;text-align:center}
.mf-cond{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.mf-cond label{display:flex;flex-direction:column;gap:4px}
.mf-cond label.wide{grid-column:1/-1}
.mf-cond small{font-size:12px;color:var(--ink2)}
.mf-paste{margin-top:14px;border:1px dashed var(--ctrl-border);border-radius:12px;padding:8px 12px}
.mf-paste summary{cursor:pointer;font-weight:600;color:var(--brand);min-height:30px;display:flex;align-items:center}
.mf-paste[open] summary{margin-bottom:8px}
.mf-hint{margin:8px 0 0;font-size:13px;color:var(--ink2)}
.mf-okt{color:var(--good);font-weight:600}
.mf-warn{color:var(--warn-ink);font-weight:600}
/* (18/10/2026) saisie d'une promo : départ (capture / à la main / reprise), lecture, formulaire en 3 blocs (site/app.js, openPromoForm) */
.sheet.pf-wide{max-width:1060px}
.pf-desk{display:inline}.pf-touch{display:none}
p.pf-desk{display:block}
@media (hover:none) and (pointer:coarse){ .pf-desk,p.pf-desk{display:none} .pf-touch{display:inline} }
.pf-drop{position:relative;display:grid;justify-items:center;gap:6px;margin-top:4px;padding:26px 18px;text-align:center;border:2px dashed var(--edge);border-radius:16px;
  background:color-mix(in srgb,var(--brand-soft) 45%,var(--surface))}
.pf-drop svg{width:44px;height:44px;fill:none;stroke:var(--brand);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.pf-drop h3{margin:4px 0 0;font:500 21px/1.2 var(--serif)}
.pf-drop p{margin:0;font-size:14px;color:var(--ink2)}
.pf-drop kbd{display:inline-block;padding:1px 7px;border:1px solid var(--ctrl-border);border-bottom-width:2px;border-radius:6px;font:600 12.5px var(--sans);background:var(--surface);color:var(--ink)}
.pf-drop .pf-pick{margin-top:8px;min-height:44px}
.pf-drop .pf-hint{font-size:12.5px;color:var(--muted);margin-top:4px}
@media (hover:none) and (pointer:coarse){ .pf-drop .pf-pick{width:100%;min-height:52px;background:var(--brand);border-color:var(--brand);color:var(--brand-ink);font-size:15.5px} }
.pf-drop-over{display:none}
.pf-dragging .pf-drop{border-style:solid;border-color:var(--brand);background:var(--brand-soft)}
.pf-dragging .pf-drop>*:not(.pf-drop-over){visibility:hidden}
.pf-dragging .pf-drop .pf-drop-over{display:grid;place-items:center;position:absolute;inset:0;visibility:visible;font:500 21px/1.2 var(--serif);color:var(--ink)}
.sheet.pf-dragging:not(:has(.pf-drop))::after{content:"Lâche la capture pour la lire";position:absolute;inset:10px;z-index:5;display:grid;place-items:center;border:2px dashed var(--brand);
  border-radius:16px;background:color-mix(in srgb,var(--brand-soft) 88%,transparent);font:500 22px/1.2 var(--serif);color:var(--ink)}
.pf-or{display:flex;align-items:center;gap:12px;margin:16px 0;color:var(--muted);font-size:13px}
.pf-or::before,.pf-or::after{content:"";flex:1;height:1px;background:var(--line)}
.pf-manual{width:100%;min-height:48px}
.pf-recent{margin-top:16px;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.pf-recent-h{padding:9px 14px;font-size:11.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);background:var(--head)}
.pf-rc{display:flex;align-items:center;gap:10px;padding:9px 14px;border-top:1px solid var(--line-soft);font-size:14px}
.pf-bk{flex:none;display:inline-flex;align-items:center;min-height:26px;padding:0 9px;border:1px solid var(--line);border-radius:8px;font-weight:700;font-size:12.5px;white-space:nowrap}
.pf-rc-t{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pf-rc-t small{color:var(--muted)}
.pf-rc-b{flex:none;min-height:34px;padding:0 10px;font-size:13px}
@media (max-width:520px){ .pf-rc-l{display:none} }
/* lecture */
.pf-scan{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:22px;align-items:center;padding:6px 0 10px}
.pf-shot{position:relative;border-radius:14px;overflow:hidden;border:1px solid var(--line);background:var(--head);max-height:62vh}
.pf-shot img{display:block;width:100%;height:auto}
.pf-beam{display:none}
.pf-shot.scanning .pf-beam{display:block;position:absolute;left:0;right:0;height:56px;top:-10%;border-bottom:2px solid #7ff0dc;
  background:linear-gradient(180deg,transparent,rgba(42,157,139,.28) 70%,rgba(127,240,220,.75) 97%,transparent);box-shadow:0 6px 18px rgba(127,240,220,.45);animation:pf-sweep 2.2s ease-in-out infinite alternate}
.pf-shot.scanning::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(127,240,220,.10),transparent 55%);pointer-events:none}
@keyframes pf-sweep{from{top:-10%}to{top:94%}}
@media (prefers-reduced-motion:reduce){ .pf-shot.scanning .pf-beam{animation:none;top:42%} }
.pf-scan-r h3{margin:0;font:500 22px/1.2 var(--serif)}
.pf-steps{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:10px}
.pf-steps li{display:flex;align-items:center;gap:10px;font-size:14.5px}
.pf-steps .pf-ic{flex:none;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;border:2px solid var(--line)}
.pf-steps li.wait{color:var(--muted)}
.pf-steps li.run .pf-ic{border:2.5px solid var(--brand-soft);border-top-color:var(--brand);animation:pf-spin .9s linear infinite}
.pf-steps li.ok .pf-ic{border-color:var(--brand);background:var(--brand);color:var(--brand-ink)}
.pf-steps li.ok .pf-ic::before{content:"✓"}
@keyframes pf-spin{to{transform:rotate(360deg)}}
.pf-bar{height:6px;margin-top:16px;border-radius:6px;background:var(--line-soft);overflow:hidden}
.pf-bar i{display:block;width:0;height:100%;border-radius:6px;background:var(--brand);transition:width .3s}
.pf-cancel{margin:12px 0 0}
.pf-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
@media (max-width:700px){ .pf-scan{grid-template-columns:1fr;gap:14px} .pf-shot{max-height:38vh} }
/* formulaire */
.pf .pf-ver{display:grid;grid-template-columns:320px minmax(0,1fr);gap:22px;align-items:start}
.pf-side{position:sticky;top:0;display:grid;gap:10px}
.pf-cap-h{display:flex;justify-content:space-between;align-items:center;font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.pf-cap-h .mf-link{letter-spacing:0;text-transform:none;font-size:13px}
.pf-cap{display:block;width:100%;padding:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--head);cursor:zoom-in}
.pf-cap img{display:block;width:100%;height:auto;max-height:46vh;object-fit:contain}
.pf-prev-h{margin-top:4px}
.pf-prev{pointer-events:none}
.pf-prev .pr-card{box-shadow:none}
.pf-nobook{display:inline-flex;align-items:center;min-height:30px;padding:0 10px;border-radius:999px;background:var(--warn-bg);color:var(--warn-ink);font-size:12.5px;font-weight:700}
@media (max-width:900px){
  .pf .pf-ver{grid-template-columns:1fr;gap:10px}
  .pf-side{position:static}
  .pf-cap img{max-height:120px;object-fit:cover;object-position:top}
  .pf-prev,.pf-prev-h{display:none}
}
.pf-ok{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;padding:9px 12px;border-radius:12px;background:var(--brand-soft);font-size:14px}
.pf-ok b{color:var(--brand)}
.pf-ok-w{color:var(--warn-ink);font-weight:600}
.pf-ok-g{color:var(--good);font-weight:600}
.pf-ok .pf-again{margin-left:auto;min-height:32px;padding:0 10px;font-size:13px}
.pf-tpl{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.pf-tp{display:grid;gap:2px;padding:9px 12px;text-align:left;border:1.5px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);font:inherit;cursor:pointer}
.pf-tp b{font-size:14px}
.pf-tp small{font-size:12px;line-height:1.3;color:var(--muted)}
.pf-tp[aria-pressed="true"]{border-color:var(--brand);background:var(--brand-soft)}
.pf-blk{margin-top:12px;padding:10px 14px 14px;border:1px solid var(--line);border-radius:14px}
.pf-blk-h{display:flex;align-items:center;gap:8px;font-weight:700;font-size:15px}
.pf-num{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--brand);color:var(--brand-ink);font-size:12px}
.pf .pf-l{display:flex;align-items:center;gap:8px}
.pf-mk{font-size:10.5px;font-weight:600;letter-spacing:.02em;text-transform:none;border-radius:999px;padding:1px 7px}
.pf-mk:empty{display:none}
.pf-mk.read{color:var(--brand);background:var(--brand-soft)}
.pf-mk.todo{color:var(--warn-ink);background:var(--warn-bg);font-weight:700}
.pf-need input,.pf-need .mf-chip,.pf-need textarea{border-color:color-mix(in srgb,var(--warn-ink) 55%,var(--line))}
.pf-val{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.pf .pf-val input{width:96px;font-weight:700;font-size:16px;text-align:center}
.pf-seg{gap:0;flex-wrap:nowrap}
.pf-seg .mf-chip{border-radius:0;margin-left:-1.5px}
.pf-seg .mf-chip:first-child{border-radius:10px 0 0 10px;margin-left:0}
.pf-seg .mf-chip:last-child{border-radius:0 10px 10px 0}
.pf-mis{margin-top:10px;padding:10px 12px 12px;border:1px solid var(--line);border-radius:12px;background:var(--head)}
.pf-mis-h{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:700;color:var(--brand)}
.pf-sent{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;font-size:15px}
.pf-w{color:var(--ink2)}
.pf-wb{font-weight:600;color:var(--ink)}
.pf-verb{min-height:40px;padding:0 30px 0 12px;border:1.5px solid var(--brand);border-radius:10px;background:var(--surface);color:var(--brand);font-weight:700;font-size:15px}
.mf.pf input.pf-n{width:60px;min-height:40px;padding:0 6px;text-align:center;font-weight:700}
.mf.pf .pf-verb{width:auto}
.pf-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px 10px}
.pf-prec{display:grid;gap:0;margin-top:2px}
.pf-prec .mf-l{margin-top:8px}
.pf-found{color:var(--good);font-weight:700}
.pf-others{border-style:dashed;color:var(--brand)}
.pf-more{margin-top:12px}
.pf-miss:empty{display:none}
.pf-miss{margin-top:12px;padding:10px 12px;border-radius:12px;background:var(--warn-bg);color:var(--warn-ink);font-size:14px;line-height:1.45}
.pf-foot{position:sticky;bottom:-4px;z-index:2;display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin:12px -16px 0;padding:10px 16px;
  border-top:1px solid var(--line);background:var(--surface)}
.pf-sp{flex:1}
.pf-scope{display:flex;align-items:center;gap:8px}
.pf-scope small{color:var(--muted);font-size:12.5px}
.pf-foot .pf-go{min-height:48px;padding:0 22px;font-size:15px}
.pf-foot .mf-reset{margin:0;width:auto;min-height:40px}
.sheet:not(.pf-wide) .pf-foot .pf-cancel-b{display:none}
.pf-foot .pf-go{white-space:nowrap}
@media (max-width:600px){ .pf-foot .pf-cancel-b{display:none} .pf-foot .pf-go{flex:1;padding:0 14px} .pf-scope small,.pf-lg{display:none} }
.pf-lb{position:absolute;inset:0;z-index:20;display:grid;place-items:center;gap:8px;padding:16px;background:rgba(10,20,18,.82);cursor:zoom-out}
.pf-lb img{max-width:100%;max-height:86vh;border-radius:10px}
.pf-lb span{color:#fff;font-size:13px}
.mf-err{margin:10px 0 0;color:var(--bad);font-weight:600;font-size:13.5px}
.mf-err:empty{display:none}
.mf-go{position:sticky;bottom:0;margin-top:14px;min-height:52px;font-size:16px;width:100%;justify-content:center}
/* « Mes saisies » */
.ms-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin:2px 0 10px}
.ms-add{display:flex;gap:6px}
.ms-list{display:flex;flex-direction:column;gap:8px}
.ms-it{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.ms-it.cb10{background:linear-gradient(90deg,var(--gold-soft),var(--surface) 70%);box-shadow:inset 4px 0 0 var(--gold)}
.ms-t{display:flex;justify-content:space-between;align-items:center;gap:8px}
.ms-k{font-size:12px;font-weight:700;color:var(--ink2)}
.ms-it b{font-size:14px;font-weight:600}
.ms-it small{color:var(--muted);font-size:12.5px}
.ms-acts{display:flex;gap:6px;margin-top:4px}
.ms-btn{flex:1;min-height:38px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink2);font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.ms-btn.ms-rm{color:var(--bad)}
/* actions sur un boost saisi à la main (page Boosts, admins) */
.bx-own{display:flex;gap:6px;margin-top:4px}
.bx-own button{border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink2);font:inherit;font-size:12px;font-weight:600;padding:3px 8px;cursor:pointer}
.bx-own button.rm{color:var(--bad)}
/* message éphémère */
.vl-toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom, 0px));transform:translateX(-50%);z-index:970;padding:12px 18px;border-radius:12px;background:var(--ink);color:var(--page);font-weight:600;box-shadow:0 8px 24px rgba(0,0,0,.25);transition:opacity .4s}
.vl-toast.out{opacity:0}
/* page Promos */
.pr-grp{display:flex;align-items:baseline;gap:10px;margin:22px 2px 10px}
.pr-grp h2{margin:0;font-family:var(--serif);font-weight:500;font-size:22px;letter-spacing:-.01em}
.pr-grp span{color:var(--muted);font-size:13px}
.pr-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
@media (max-width:1050px){ .pr-cards{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:640px){ .pr-cards{grid-template-columns:minmax(0,1fr)} }
.pr-card{display:flex;flex-direction:column;gap:8px;padding:14px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.pr-card.done{opacity:.55}
.pr-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pr-h .logo-tag{width:96px;height:26px}
.pr-ty{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:999px;font-size:11.5px;font-weight:700;white-space:nowrap}
.pr-ty.rb{background:#e8eefb;color:#2a5bb8}.pr-ty.fb{background:var(--gold-soft);color:var(--gold-ink)}.pr-ty.gx{background:color-mix(in srgb,var(--good) 13%,var(--surface));color:var(--good)}
.pr-ty.ms{background:#efe6fb;color:#6a3fb3}.pr-ty.jc{background:#fde8ef;color:#a63462}.pr-ty.ot{background:var(--head);color:var(--ink2)}
.pr-ty.wb{background:var(--brand-soft);color:var(--brand)}
:root[data-theme="dark"] .pr-ty.rb{background:#1d2a45;color:#9fbcf3} :root[data-theme="dark"] .pr-ty.ms{background:#2c2142;color:#c6a9f2} :root[data-theme="dark"] .pr-ty.jc{background:#40202d;color:#f0a3c0}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .pr-ty.rb{background:#1d2a45;color:#9fbcf3} :root:not([data-theme="light"]) .pr-ty.ms{background:#2c2142;color:#c6a9f2} :root:not([data-theme="light"]) .pr-ty.jc{background:#40202d;color:#f0a3c0} }
.pr-edit{margin-left:auto;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink2);cursor:pointer;min-width:32px;min-height:30px}
.pr-v{font-size:24px;font-weight:800;letter-spacing:-.01em;color:var(--brand);font-variant-numeric:tabular-nums}
.pr-v small{font-size:13px;font-weight:600;color:var(--ink2)}
.pr-title{margin:0;font-weight:600;font-size:14.5px;overflow-wrap:anywhere}
.pr-tags{display:flex;flex-wrap:wrap;gap:5px}
.pr-tags span{padding:2px 8px;border-radius:7px;background:var(--head);font-size:12px;color:var(--ink2)}
.pr-f{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding-top:9px;border-top:1px solid var(--line-soft);font-size:12.5px}
.pr-end{font-weight:700}
.pr-end.hot{color:var(--bad)}
.pr-done{min-height:34px;padding:0 10px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink2);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}
.pr-done.on{background:var(--brand-soft);border-color:var(--brand);color:var(--brand)}
.pr-link{color:var(--brand);font-weight:700;text-decoration:none}
.pr-link:hover{text-decoration:underline}

/* (13/10/2026) promos lues automatiquement : description courte (3 lignes au plus) */
.pr-desc{margin:0;font-size:13px;color:var(--ink2);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.pr-edit{font:inherit;font-size:12px;font-weight:600;padding:0 8px}

/* (13/10/2026) promos lues automatiquement : « ✎ » (corriger) + « Masquer » côte à côte ; bouton « Rétablir » du volet */
.pr-own{margin-left:auto;display:flex;gap:6px;flex-shrink:0}
.pr-own .pr-edit{margin-left:0}
.mf-reset{width:100%;justify-content:center;margin-top:8px;min-height:44px}
/* (13/10/2026, demandes de Nico) logos découpés au ras du dessin (Betclic, NetBet, Vbet en SVG) : au lieu d'une hauteur
   fixe (faite pour les logos à marge transparente), on les fait TENIR dans l'étiquette, quelle que soit la taille du
   fichier : jamais coupés, jamais plus larges que l'étiquette. Pourcentage = part de la hauteur de l'étiquette. */
.logo-tag .blogo[src*="/logos/betclic"],.logo-tag .blogo[src*="/logos/netbet"],.logo-tag .blogo[src*="/logos/vbet"]{
  height:auto!important;width:auto!important;max-width:84%!important;object-fit:contain;transform:none!important}
.logo-tag .blogo[src*="/logos/betclic"]{max-height:82%!important}
.logo-tag .blogo[src*="/logos/netbet"]{max-height:46%!important}
.logo-tag .blogo[src*="/logos/vbet"]{max-height:92%!important;max-width:94%!important}

/* (13/10/2026) étapes d'un défi : liste à cocher mentale, toutes à réussir */
.pr-steps{border-radius:9px;background:var(--head);padding:8px 10px}
.pr-steps p{margin:0 0 4px;font-size:12px;font-weight:700;color:var(--ink2)}
.pr-steps ul{margin:0;padding:0;list-style:none;display:grid;gap:3px}
.pr-steps li{font-size:13px;color:var(--ink);padding-left:18px;position:relative}
.pr-steps li::before{content:"✓";position:absolute;left:2px;color:var(--brand);font-weight:700}
.pr-steps li small{color:var(--ink2);font-size:12px}

/* (14/10/2026, option 1 validée par Nico) fiche des conditions d'une promo : 6 cases fixes (Type, Moment, Mise mini,
   Cote mini, Formule, Dates) ; plusieurs paris / offres : une ligne chacun, cote dans une colonne à droite.
   Cote en bleu, mise en gris ardoise : jamais confondues, et aucune n'est verte (le vert = le gain). */
:root{--pc-odd:#1f5fae;--pc-odd-bg:#e7effa;--pc-stake:#334155}
@media (prefers-color-scheme:dark){:root:where(:not([data-theme="light"])){--pc-odd:#8cb8f2;--pc-odd-bg:#1a2a40;--pc-stake:#cbd5e1}}
:root[data-theme="dark"]{--pc-odd:#8cb8f2;--pc-odd-bg:#1a2a40;--pc-stake:#cbd5e1}
.pr-cnd{display:grid;gap:8px}
.pc-t{display:flex;align-items:center;gap:8px;font-weight:600;font-size:13.5px;color:var(--ink)}
.pc-ic{flex:none;width:26px;height:26px;border-radius:8px;background:var(--head);display:grid;place-items:center;font-size:14px}
.pc-fiche{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow:hidden}
.pc-f{display:grid;grid-template-columns:20px minmax(0,1fr);column-gap:7px;padding:7px 9px;border-top:1px solid var(--line);border-left:1px solid var(--line);align-content:start}
.pc-f:nth-child(odd){border-left:0}
.pc-f:nth-child(-n+2){border-top:0}
.pc-i{grid-row:span 2;font-size:14px;line-height:1.3}
.pc-k{font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.pc-v{font-weight:700;font-size:13px;color:var(--ink);line-height:1.3}
.pc-v small{font-weight:500;color:var(--ink2);font-size:11.5px}
.pc-f.odd .pc-v{color:var(--pc-odd)} .pc-f.stake .pc-v{color:var(--pc-stake)}
.pc-na{color:var(--muted);font-weight:500}
.pc-adm{color:var(--warn-ink,#8a4f05);font-weight:600;font-size:12px;border-bottom:1px dashed currentColor}
.pc-obj{border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow:hidden}
.pc-hd{display:grid;grid-template-columns:minmax(0,1fr) 58px 58px;column-gap:8px;padding:5px 10px 5px 40px;background:var(--head);font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.pc-hd span:nth-child(n+2){text-align:center}
.pc-ob{display:grid;grid-template-columns:22px minmax(0,1fr) 58px 58px;column-gap:8px;row-gap:1px;padding:7px 10px;border-top:1px solid var(--line);align-items:center}
.pc-m{grid-column:3;grid-row:1 / span 2;justify-self:center;font-weight:700;color:var(--pc-stake);background:var(--head);border-radius:999px;padding:3px 8px;font-size:12.5px;white-space:nowrap}
.pc-fiche.pc-one{grid-template-columns:1fr}
.pc-t small{font-weight:500;color:var(--ink2)}
.pc-hd + .pc-ob{border-top:0}
.pc-n{width:22px;height:22px;border-radius:50%;background:var(--brand-soft);color:var(--brand);font-weight:700;font-size:12px;display:grid;place-items:center;grid-row:span 2;align-self:start}
.pc-w{font-weight:700;font-size:13px;color:var(--ink)}
.pc-s{grid-column:2;font-size:11.5px;color:var(--ink2)}
.pc-c{grid-column:4;grid-row:1 / span 2;justify-self:center;font-weight:700;color:var(--pc-odd);background:var(--pc-odd-bg);border-radius:999px;padding:3px 8px;font-size:12.5px;white-space:nowrap}
.pc-o{margin:0;font-size:12.5px;color:var(--ink2)}
.mf-steps{display:grid;gap:8px}
.mf-step{display:grid;gap:6px;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--head)}
.mf-step-h{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center}
.mf-step-r{display:grid;grid-template-columns:110px 1fr;gap:8px}
.mf-step input{min-height:40px!important}

/* (14/10/2026) formulaire promo guidé par le type : encadré « Le pari à réaliser » / une case par mission */
.mf-box{margin-top:12px;border:1px solid var(--line);border-radius:14px;background:var(--head);padding:4px 12px 12px}
.mf-box-h{display:flex;justify-content:space-between;align-items:center;margin-top:8px;font-size:13px;font-weight:700;color:var(--brand)}
.mf-mis{background:var(--surface)}
.mf-n{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--brand-soft);color:var(--brand);font-size:12px;margin-right:6px}
.mf-rm{color:var(--bad)}
.mf-add{width:100%;margin-top:10px;min-height:44px;border-radius:12px;border:1.5px dashed var(--brand);background:transparent;color:var(--brand);font:inherit;font-weight:700;cursor:pointer}
.mf-picked{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:46px;padding:6px 12px;border-radius:12px;background:var(--surface);border:1.5px solid var(--brand)}
.mf-picked b{display:block;font-size:14px}.mf-picked small{display:block;color:var(--ink2);font-size:12px}
.mf-pick input{width:100%}
.mf-sug-i small{margin-left:2px}
/* (14/10/2026) partage sur X (@Promo_des_Books) */
.pr-x{font-weight:800}
.pr-x.done{color:var(--good);border-color:color-mix(in srgb,var(--good) 40%,var(--line))}
.x-img{display:block;width:100%;height:auto;border-radius:12px;border:1px solid var(--line)}
.x-txt{margin-top:6px}
.x-cnt{margin:4px 0 0;text-align:right;font-size:12.5px;color:var(--muted)}
.x-cnt.over{color:var(--bad);font-weight:700}
.x-more{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.x-more .abtn{flex:1;justify-content:center;text-decoration:none}
.x-txt{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid var(--ctrl-border);border-radius:12px;background:var(--surface);color:var(--ink);font:inherit;font-size:14px;line-height:1.45;resize:vertical}
/* (14/10/2026) archives : promos terminées (30 jours) */
.pr-card.ended{background:color-mix(in srgb,var(--surface) 70%,var(--head))}
.pr-card.ended .pr-v,.pr-card.ended .pr-title{opacity:.75}
.pr-card.ended .pr-end{color:var(--muted)}
/* (14/10/2026) jeu concours : la question */
.pc-q{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:8px 10px}
.pc-q p{margin:2px 0 0;font-weight:700;font-size:14px;color:var(--ink)}

/* (15/10/2026, version A validée par Nico) pages Boosts et Promos : barre résumé + « ⚙ Réglages » (comme Value) */
.sbar{--pred:var(--brand);--pred-ink:var(--brand-ink);margin:24px 0 16px;padding:0}
.sb-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;padding:10px 14px}
.sb-sum{display:flex;flex-wrap:wrap;gap:6px 8px;flex:1 1 360px;min-width:0}
.sb-chip.on{background:var(--brand-soft);color:var(--brand)}
.sb-chip.on b{color:var(--brand)}
.sb-q{flex:0 1 230px;min-width:0;min-height:36px;padding:0 12px;border:1px solid var(--ctrl-border);border-radius:10px;background:var(--surface);color:var(--ink);font:inherit;font-size:14px}
.sb-gearbox{margin-left:auto}
.sb-gear{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.sb-n{display:inline-grid;place-items:center;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:var(--brand);color:var(--brand-ink);font-size:11px;font-weight:700}
.sb-panel{border-top:1px solid var(--line);padding:4px 16px 14px}
.sb-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:4px 26px}
.sb-col{display:grid;gap:4px;align-content:start;min-width:0}
.sb-grp{display:grid;gap:7px;align-content:start;margin-top:12px;min-width:0}
.sb-l{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.sb-grp .seg{flex-wrap:wrap;max-width:100%;justify-self:start}
.sb-grp .seg button{min-height:32px;padding:0 12px}
.sb-sub{margin-top:2px}
.sb-tog{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;font-size:14px;cursor:pointer}
.sb-sw{appearance:none;-webkit-appearance:none;flex-shrink:0;position:relative;width:38px;height:22px;margin:0;border-radius:999px;background:var(--ctrl-border);cursor:pointer;transition:background .15s}
.sb-sw::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:left .15s}
.sb-sw:checked{background:var(--brand)}
.sb-sw:checked::after{left:19px}
.sb-foot{grid-column:1/-1;display:flex;align-items:center;flex-wrap:wrap;gap:10px 18px;margin-top:16px;padding-top:12px;border-top:1px dashed var(--line)}
.sb-note{margin-right:auto;font-size:12.5px;color:var(--ink2)}
.sb-reset{padding:6px 0;border:0;background:none;color:var(--brand);font:inherit;font-weight:600;cursor:pointer}
.sb-car{color:var(--muted);font-size:12px;transition:transform .15s}
[aria-expanded="true"]>.sb-car{transform:rotate(180deg)}
@media (prefers-reduced-motion:reduce){.sb-sw,.sb-sw::after,.sb-car{transition:none}}
/* affichage « Compact » des boosts : une ligne par boost, le détail s'ouvre en touchant la ligne */
.bxclist{padding:0;overflow:hidden}
.bxc-wrap+.bxc-wrap{border-top:1px solid var(--line-soft)}
.bxc{display:grid;grid-template-columns:118px minmax(0,1fr) auto 16px;gap:14px;align-items:center;width:100%;padding:9px 18px;border:0;background:var(--surface);color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.bxc:hover{background:var(--head)}
.bxc.cb10{background:linear-gradient(90deg,var(--gold-soft),var(--surface) 60%);box-shadow:inset 4px 0 0 var(--gold)}
.bxc.ended{opacity:.7}
.bxc-bk .logo-tag{width:110px;height:26px}
.bxc-t{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}
.bxc-t small{color:var(--ink2);font-size:13px}
.bxc-o{white-space:nowrap;font-size:13px}
.bxc-o s{margin-right:6px;color:var(--muted)}
.bxc-o b{font-size:15.5px;color:var(--brand)}
.bxc-wrap>.bxrow{border-top:1px dashed var(--line)}
/* affichage « Liste compacte » des promos */
.prl-list{padding:0;overflow:hidden}
.prl-wrap+.prl-wrap{border-top:1px solid var(--line-soft)}
.prl{display:grid;grid-template-columns:100px auto minmax(0,1fr) auto auto 16px;gap:12px;align-items:center;width:100%;padding:9px 18px;border:0;background:var(--surface);color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.prl:hover{background:var(--head)}
.prl.done{opacity:.55}
.prl.ended{background:color-mix(in srgb,var(--surface) 70%,var(--head))}
.prl-bk .logo-tag{width:96px;height:24px}
.prl-t{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600}
.prl-v{font-weight:700;color:var(--brand);white-space:nowrap}
.prl-e{font-size:12.5px;color:var(--ink2);white-space:nowrap}
.prl-wrap>.pr-card{margin:0 12px 12px}
@media (max-width:640px){
  .sb-chip.def{display:none}
  .sb-sum:empty{display:none}
  .sb-sum{flex-basis:100%}
  .sb-q{flex:1 1 150px}
  .sb-gearbox{margin-left:0}
  .sb-panel{padding:2px 12px 12px}
  .sb-note{flex-basis:100%}
  .sb-see{margin-left:auto}
  .bxc{grid-template-columns:96px minmax(0,1fr) auto;gap:10px;padding:9px 12px}
  .bxc .sb-car{display:none}
  .bxc-bk .logo-tag,.prl-bk .logo-tag{width:94px;height:24px}
  .bxc-bk .logo-tag .blogo,.prl-bk .logo-tag .blogo{height:30px}
  .bxc-t{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
  .prl{grid-template-columns:96px minmax(0,1fr) auto;grid-template-areas:"bk t v" "bk ty e";gap:4px 10px;padding:9px 12px}
  .prl-bk{grid-area:bk}
  .prl .pr-ty{grid-area:ty;justify-self:start}
  .prl-t{grid-area:t;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.prl-v{grid-area:v;justify-self:end}.prl-e{grid-area:e;justify-self:end}
  .prl .sb-car{display:none}
}
.sb-panel[hidden]{display:none}

/* (16/10/2026, version 4 validée par Nico) page « Défis » : promotions à gauche (défis dépliés dans la carte),
   paris proposés à droite ; téléphone : liste, puis écran des paris */
.df-head{align-items:flex-end}
.df-tot{display:flex;gap:22px;flex-wrap:wrap;font-size:12.5px;color:var(--ink2)}
.df-tot div{display:grid;justify-items:end;gap:1px}
.df-tot b{font-size:20px;font-variant-numeric:tabular-nums;color:var(--ink)}
.df .neg,.df-tot .neg{color:var(--bad)} .df .pos,.df-tot .pos{color:var(--good)} .df-tot .fin,.df .fin{color:var(--good)}
.df .fbv{color:var(--gold-ink)}
.df-help{margin:0;font-size:12.5px;color:var(--ink2)}
.df-cf{display:inline-flex;align-items:center;gap:6px}
.df-cf input{width:80px;min-height:36px;padding:0 10px;border:1px solid var(--ctrl-border);border-radius:10px;background:var(--surface)}
.df-grid{display:grid;grid-template-columns:340px minmax(0,1fr);gap:16px;align-items:start}
.df-colh{font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin:2px 2px 8px}
.df-list{display:grid;gap:8px;align-content:start}
/* carte d'une promotion */
.df-pr{background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.df-pr.on{border-color:var(--brand);box-shadow:0 0 0 1.5px var(--brand)}
.df-pr.fin{opacity:.72}
.df-hd{display:grid;gap:7px;width:100%;padding:10px 12px 0;border:0;background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.df-hd:hover{background:color-mix(in srgb,var(--brand) 3%,var(--surface))}
.df-r1{display:flex;align-items:center;gap:8px}
.df-r1 .pr-ty{margin-left:auto}
.df-r1 .logo-tag{width:96px;height:26px}
.df-r1 .logo-tag .blogo,.df-r1 .logo-tag .blogo[src]{height:34px}
.df-n{display:none;font-weight:800;color:var(--muted);font-size:13px}
.df-ok{font-size:11.5px;font-weight:700;color:var(--good);white-space:nowrap}
.df-t{font-weight:600;font-size:14px;line-height:1.3}
.df-r2{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--ink2);flex-wrap:wrap}
.df-lvl{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.df-lvl b{font-size:15px;color:var(--ink)}
.df-end{margin-left:auto;font-weight:600;white-space:nowrap}
.df-end.hot{color:var(--bad)}
.df-dots{display:inline-flex;gap:3px;margin-left:2px}
.df-dots i{width:9px;height:9px;border-radius:50%;background:var(--head);border:1.5px solid var(--ctrl-border)}
.df-dots i.w{background:var(--good);border-color:var(--good)}
.df-fig{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:2px -12px 0;border-top:1px solid var(--line-soft)}
.df-fc{display:grid;padding:6px 12px;border-right:1px solid var(--line-soft);min-width:0}
.df-fc:last-child{border-right:0;background:color-mix(in srgb,var(--good) 8%,transparent)}
.df-fc small{font-size:9.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.df-fc b{font-size:13.5px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* défis d'une promotion (dépliés dans la carte) */
.df-subs{border-top:1px solid var(--line);background:color-mix(in srgb,var(--head) 45%,var(--surface))}
.df-cap{padding:8px 12px 2px;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.df-sub{display:grid;grid-template-columns:22px minmax(0,1fr) auto auto;gap:9px;align-items:center;width:100%;padding:8px 12px;border:0;border-top:1px solid var(--line-soft);background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.df-cap+.df-sub{border-top:0}
.df-sub:hover{background:color-mix(in srgb,var(--brand) 5%,transparent)}
.df-sub.on{background:var(--brand-soft);box-shadow:inset 3px 0 0 var(--brand)}
.df-sub.done{color:var(--ink2)}
.df-em{font-size:15px;text-align:center}
.df-sn{min-width:0}
.df-sn b{display:block;font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.df-sn small{display:block;color:var(--ink2);font-size:12px}
.df-sp{font-weight:700;font-size:13px}
.df-ss{font-size:11.5px;font-weight:700;white-space:nowrap}
.df-ss.ok{color:var(--good)} .df-ss.go{color:var(--warn-ink)} .df-ss.wait{color:var(--brand)} .df-ss.todo{color:var(--muted)}
/* panneau des paris */
.df-op{padding:0;overflow:hidden}
.df-empty{padding:28px 20px;color:var(--ink2)}
.df-oph{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid var(--line)}
.df-back{display:none}
.df-tt{display:grid;gap:2px;margin-right:auto;min-width:0}
.df-tt b{font-family:var(--serif);font-weight:500;font-size:22px;line-height:1.15}
.df-tt span{font-size:13px;color:var(--ink2)}
.df-sw{display:inline-flex;align-items:center;gap:10px;padding:7px 11px;border:1px solid var(--line);border-radius:12px;background:var(--surface);cursor:pointer;font-weight:700;font-size:13.5px}
.df-sw small{display:block;font-weight:500;font-size:11.5px;color:var(--ink2)}
.df-rules{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:9px 16px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--head) 40%,var(--surface))}
.df-chip{font-size:12.5px;font-weight:600;padding:2px 10px;border-radius:999px;background:var(--surface);border:1px solid var(--line);color:var(--ink2);white-space:nowrap}
.df-chip.fb{background:var(--gold-soft);border-color:var(--gold-line);color:var(--gold-ink)}
.df-chip.warn{background:var(--warn-bg);border-color:transparent;color:var(--warn-ink)}
.df-link{font-size:12.5px;font-weight:600;margin-left:4px}
.df-upd{margin-left:auto;font-size:12px;color:var(--muted)}
.df-warn{margin:10px 16px 0;padding:8px 12px;border-radius:10px;background:var(--warn-bg);color:var(--warn-ink);font-size:13px}
.df-prog{display:flex;align-items:center;gap:8px;padding:10px 16px;font-size:13px;color:var(--ink2);border-bottom:1px solid var(--line-soft)}
.df-prog b{font-size:15px;color:var(--ink)}
.df-adj{margin-left:auto;display:inline-flex;gap:4px}
.df-ab{width:30px;height:28px;border:1px solid var(--ctrl-border);border-radius:8px;background:var(--surface);cursor:pointer;font-weight:700;color:var(--ink2)}
.df-ab:disabled{opacity:.4;cursor:default}
.df-done,.df-none{margin:0;padding:18px 16px;color:var(--ink2);font-size:14px}
.df-done{color:var(--good);font-weight:600}
.df-block{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:16px}
.df-block p{margin:0;color:var(--ink2);flex:1 1 260px}
.df-tw{overflow-x:auto}
.df-tbl{width:100%;border-collapse:collapse;font-size:13.5px}
.df-tbl th{font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-align:left;padding:9px 10px;border-bottom:1px solid var(--line);font-weight:700;white-space:nowrap}
.df-tbl td{padding:10px;border-bottom:1px solid var(--line-soft);vertical-align:middle;font-variant-numeric:tabular-nums}
.df-tbl .r{text-align:right}
.df-tbl td small{display:block;color:var(--ink2);font-size:12px}
.df-row{cursor:pointer}
.df-row:hover td{background:color-mix(in srgb,var(--brand) 3%,var(--surface))}
.df-row.sel td,.df-row.open td,.df-act.sel td,.df-act.open td{background:color-mix(in srgb,var(--brand) 7%,var(--surface))}
.df-pk{width:28px;padding-right:0}
.df-rad{display:inline-block;width:18px;height:18px;border-radius:50%;border:2px solid var(--ctrl-border);background:var(--surface);vertical-align:middle}
.df-row.sel .df-rad,.df-row.open .df-rad{border-color:var(--brand);background:var(--brand);box-shadow:inset 0 0 0 3px var(--surface)}
.df-best{display:inline-block;margin-top:3px;font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--brand);background:var(--brand-soft);padding:1px 7px;border-radius:999px}
.df-leg{display:grid;gap:3px;min-width:0}
.df-legs{display:grid;gap:6px}
.df-l1{display:flex;align-items:center;gap:7px;white-space:nowrap}
.df-l1 .logo-tag{width:74px;height:22px}
.df-l1 .logo-tag .blogo,.df-l1 .logo-tag .blogo[src]{height:30px}
.df-l1 .logo-tag .bxname{font-size:11.5px}
.df-l1 b{font-size:13px}
.df-l2{font-size:12.5px;color:var(--ink2);white-space:nowrap}
.df-l2 small{display:inline;font-size:12px}
.df-o{display:inline-block;padding:0 6px;border-radius:5px;background:color-mix(in srgb,var(--s1) 14%,var(--surface));color:var(--s1);font-weight:700}
.df-o.l{background:color-mix(in srgb,var(--s5) 18%,var(--surface));color:color-mix(in srgb,var(--s5) 60%,var(--ink))}
.df-cost{font-weight:700;font-size:14.5px;white-space:nowrap}
.df-cost.neg{color:var(--bad)} .df-cost.pos{color:var(--good)} .df-cost.zero{color:var(--ink2)}
.df-act{display:none}
.df-act.sel,.df-act.open{display:table-row}
.df-act td{padding:0 10px 10px}
.df-actbar{display:flex;align-items:center;gap:10px 14px;flex-wrap:wrap;border:1px solid color-mix(in srgb,var(--brand) 25%,var(--line));background:var(--surface);border-radius:10px;padding:7px 10px;font-size:13px}
.df-when{color:var(--warn-ink);font-weight:600;margin-right:auto}
.df-pb{display:inline-flex;align-items:center;gap:7px;font-weight:700;white-space:nowrap;cursor:pointer}
.df-pb input{width:18px;height:18px;accent-color:var(--good);margin:0}
.df-lab{min-height:30px;padding:0 11px;font-size:12.5px}
.df-opf{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:9px 16px 12px;font-size:12.5px;color:var(--muted)}
/* paris enregistrés (en attente du résultat, historique) */
.df-pends{display:grid;gap:8px;padding:12px 16px 0}
.df-att{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:9px 12px;display:grid;gap:6px}
.df-att.pend{border-color:color-mix(in srgb,var(--brand) 40%,var(--line));background:color-mix(in srgb,var(--brand) 5%,var(--surface))}
.df-at1{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:10px;align-items:center}
.df-ati{font-weight:800;text-align:center}
.df-atm b{display:block;font-size:13.5px}
.df-atm small{color:var(--ink2);font-size:12px}
.df-atc{font-weight:700;white-space:nowrap}
.df-atc.neg{color:var(--bad)} .df-atc.pos{color:var(--good)} .df-atc.zero{color:var(--ink2)}
.df-atl{font-size:12.5px;color:var(--ink2);padding-left:32px}
.df-atb{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding-left:32px}
.df-atq{font-size:12.5px;color:var(--ink2);margin-right:auto}
.df-rb{min-height:30px;padding:0 11px;border:1px solid var(--ctrl-border);border-radius:9px;background:var(--surface);cursor:pointer;font-weight:600;font-size:12.5px;color:var(--ink)}
.df-rb.w[aria-pressed="true"]{background:var(--good);border-color:var(--good);color:#fff}
.df-rb.l[aria-pressed="true"]{background:var(--bad);border-color:var(--bad);color:#fff}
.df-rb.x{border-color:transparent;color:var(--muted)}
.df-hist{padding:4px 16px 14px}
.df-hist summary{cursor:pointer;font-size:13px;font-weight:600;color:var(--ink2);padding:8px 0}
.df-hist .df-att{margin-top:6px}
.df-hist .df-atb .df-rb{min-height:26px;font-size:12px}
@media (max-width:900px){
  .df-grid{grid-template-columns:minmax(0,1fr)}
  .df-grid.phone-op .df-list{display:none}
  .df-grid:not(.phone-op) .df-op{display:none}
  .df-back{display:inline-flex;order:-1;min-height:32px;padding:0 10px}
  .df-oph{padding:10px 12px}
  .df-tt{flex-basis:100%}
  .df-tt b{font-size:19px}
  .df-sw{width:100%}
  .df-rules,.df-prog{padding-left:12px;padding-right:12px}
  .df-upd{margin-left:0}
  .df-tot{gap:14px;width:100%;justify-content:space-between}
  .df-tot div{justify-items:start}
  .df-tot b{font-size:17px}
  /* tableau -> lignes empilées */
  .df-tbl thead{display:none}
  .df-tbl,.df-tbl tbody{display:block}
  .df-row{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:4px 8px;padding:10px 12px;border-bottom:1px solid var(--line-soft)}
  .df-row td{display:block;padding:0;border:0;background:transparent!important}
  .df-row td:nth-child(2){grid-column:2/3}
  .df-row td:nth-child(5){grid-column:3/4;grid-row:1}
  .df-row td:nth-child(3),.df-row td:nth-child(4){grid-column:2/4}
  .df-row.sel,.df-row.open{background:color-mix(in srgb,var(--brand) 7%,var(--surface))}
  .df-act.sel,.df-act.open{display:block}
  .df-act td{display:block;padding:0 12px 10px;border:0}
  .df-when{flex-basis:100%}
  .df-pends,.df-hist{padding-left:12px;padding-right:12px}
  .df-atl,.df-atb{padding-left:0}
  .df-n{display:inline}
}

/* (16/10/2026) promos : nombre de sélections d'un combiné */
.pc-cb{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:999px;background:#efe6fb;color:#6a3fb3;font-size:12px;font-weight:700;white-space:nowrap}
:root[data-theme="dark"] .pc-cb{background:#2c2142;color:#c6a9f2}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .pc-cb{background:#2c2142;color:#c6a9f2}}
.pc-c small{font-size:11px;color:var(--ink2)}
/* (16/10/2026) Défis : combinés couverts sélection par sélection sur Betfair, bandeau « À faire » */
.df-chip.cb{background:#efe6fb;border-color:transparent;color:#6a3fb3}
:root[data-theme="dark"] .df-chip.cb{background:#2c2142;color:#c6a9f2}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .df-chip.cb{background:#2c2142;color:#c6a9f2}}
.df-crow td{vertical-align:top}
.df-crow td small{white-space:nowrap}
.df-tl{display:grid;gap:5px;min-width:0}
.df-st{display:grid;grid-template-columns:auto minmax(0,1fr);gap:1px 8px;align-items:start;font-size:12.5px;border:1px solid var(--line-soft);border-radius:9px;padding:5px 8px;background:var(--surface)}
.df-st small{grid-column:2;white-space:normal!important}
.df-w{font-size:10.5px;font-weight:800;color:var(--brand-ink);background:var(--ink);border-radius:6px;padding:2px 6px;white-space:nowrap;align-self:start}
.df-w.later{background:var(--gold);color:#2b1d00}
.df-cls{display:grid;gap:6px;padding-left:32px}
.df-cl{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:8px;align-items:start;border-top:1px dashed var(--line);padding-top:6px}
.df-cl.lost{opacity:.65}
.df-cl small{display:block;color:var(--ink2);font-size:12px}
.df-clb{display:inline-flex;gap:4px}
.df-clb .df-rb{min-height:26px;padding:0 9px}
.df-todo{margin-top:6px;padding:7px 9px;border-radius:9px;background:var(--gold-soft);border:1px solid var(--gold-line);color:var(--ink);font-size:12.5px;display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.df-todo .df-pb{margin-left:auto}
.df-todos{display:grid;gap:8px;margin:0 0 14px}
.df-todo-i{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;width:100%;padding:10px 14px;border:1px solid var(--gold-line);border-radius:12px;background:var(--gold-soft);color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.df-todo-i b{display:block;font-size:14px}
.df-todo-i small{display:block;color:var(--ink2);font-size:12.5px}
.df-go{font-size:20px;color:var(--muted)}
/* menus regroupés : cartes-onglets en haut des pages Marché et Promos & Défis (mêmes que la page Value) */
.vtabs.vmode.subnav .vm-card{text-decoration:none}
.vtabs.vmode.subnav .vm-ic{font-size:21px}
@media (max-width:600px){
  .vtabs.vmode.subnav{grid-template-columns:1fr 1fr}
  .vtabs.vmode.subnav .vm-card{grid-template-columns:auto 1fr;padding:10px 12px;gap:10px}
  .vtabs.vmode.subnav .vm-txt small,.vtabs.vmode.subnav .vm-n{display:none}
  .vtabs.vmode.subnav .vm-ic{width:32px;height:32px;font-size:17px}
}
@media (max-width:900px){
  .df-cls{padding-left:0}
  .df-crow td small{white-space:normal}
}
/* (16/10/2026) tableau des paris : tient dans la largeur, sans barre de défilement */
.df-tbl{table-layout:fixed}
.df-c0{width:30px}.df-c1{width:26%}.df-c2{width:25%}.df-c4{width:96px}
.df-tbl td{overflow-wrap:anywhere}
.df-l1,.df-l2,.df-tbl td small,.df-crow td small{white-space:normal}
.df-l1{flex-wrap:wrap;row-gap:3px}
.df-cmb{display:block;font-size:13px;margin:2px 0 1px}
.df-tw{overflow-x:visible}
@media (max-width:900px){.df-tbl{table-layout:auto}}
.df-st{grid-template-columns:minmax(0,1fr)}
.df-st .df-w{justify-self:start}
.df-st small{grid-column:1}

/* (16/10/2026, version A validée par Nico) combinés : liste courte + feuille de route */
.df-clist{display:grid}
.df-citem{border-bottom:1px solid var(--line-soft)}
.df-citem.sel{background:color-mix(in srgb,var(--brand) 6%,var(--surface))}
.df-crow2{display:grid;grid-template-columns:22px minmax(0,1fr) auto auto;gap:12px;align-items:center;width:100%;padding:11px 16px;border:0;background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.df-crow2:hover{background:color-mix(in srgb,var(--brand) 4%,transparent)}
.df-crow2.sel .df-rad{border-color:var(--brand);background:var(--brand);box-shadow:inset 0 0 0 3px var(--surface)}
.df-cn{min-width:0}
.df-cn b{display:block;font-size:14px}
.df-cn small{display:block;color:var(--ink2);font-size:12px}
.df-cn .df-best{margin-top:4px}
.df-ct{font-size:13px;font-weight:700;color:var(--ink2);white-space:nowrap}
.df-cc{display:grid;justify-items:end;text-align:right}
.df-cc small{font-size:11.5px;color:var(--ink2);white-space:nowrap}
.df-plan{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;padding:2px 16px 14px}
.df-ph{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.df-stp{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:start;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:9px 12px}
.df-stp.later{border-style:dashed}
.df-nb{width:28px;height:28px;border-radius:50%;background:var(--ink);color:var(--page);display:grid;place-items:center;font-weight:800;font-size:13px}
.df-stp.later .df-nb{background:var(--gold);color:#2b1d00}
.df-stx{display:grid;gap:2px;min-width:0}
.df-when2{font-size:10.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--brand)}
.df-stp.later .df-when2{color:var(--warn-ink)}
.df-stx b{font-size:14px}
.df-sd{font-size:12.5px;color:var(--ink2)}
.df-sd b{color:var(--ink)}
.df-scen{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:12px;color:var(--ink2);padding:2px 2px 0}
.df-sl{font-weight:700;color:var(--muted)}
.df-sc{white-space:nowrap;padding:1px 8px;border-radius:999px;background:var(--surface);border:1px solid var(--line-soft)}
.df-sc b.neg{color:var(--bad)} .df-sc b.pos,.df-sc b.zero{color:var(--good)}
@media (max-width:900px){
  .df-crow2{grid-template-columns:22px minmax(0,1fr) auto;padding:10px 12px}
  .df-ct{display:none}
  .df-plan{padding:2px 12px 12px}
  .df-stp{grid-template-columns:26px minmax(0,1fr)}
  .df-stp .df-pb{grid-column:2}
  .df-sc{white-space:normal}
}
/* (16/10/2026) « Ce qui peut se passer » : un cas par ligne, un peu plus grand */
.df-scen{display:grid;grid-template-columns:minmax(0,1fr);gap:4px;font-size:13.5px;color:var(--ink2);padding:6px 12px 8px;background:var(--surface);border:1px solid var(--line-soft);border-radius:12px;max-width:560px}
.df-scen .df-sl{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}
.df-scen .df-sc{display:flex;justify-content:space-between;gap:12px;white-space:normal;padding:3px 0;border:0;border-top:1px dashed var(--line-soft);border-radius:0;background:transparent}
.df-scen .df-sl+.df-sc{border-top:0}
.df-scen .df-sc b{white-space:nowrap;font-size:14px}
.pred-comp-q.on{background:var(--brand-soft);border-color:var(--brand);color:var(--brand)}

/* (15/10/2026) Freebets : matchs exclus 30 min */
.fbx-search{display:flex;flex-direction:column;gap:6px;margin-top:6px}
.fbx-search input{min-height:40px;padding:0 12px;border:1px solid var(--ctrl-border);border-radius:10px;background:var(--surface);color:var(--ink);font:inherit;font-size:14px;width:100%;box-sizing:border-box}
.fbx-sug:empty{display:none}
.fbx-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.fbx-list li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line-soft);border-radius:10px}
.fbx-n{display:flex;flex-direction:column;min-width:0}
.fbx-n b{overflow-wrap:anywhere}
.fbx-n small{color:var(--ink2);font-size:12.5px}
.fbx-t{font-size:13px;color:var(--ink2);white-space:nowrap}
/* (17/10/2026) boutons « Exclure 30 min » : un match par ligne, calés à droite de l'en-tête */
.fbx-quick{display:flex;flex-direction:column;align-items:flex-end;gap:5px;margin-left:auto;flex-shrink:0;max-width:50%;font-size:12px;color:var(--muted)}
.fbx-quick > span{font-weight:600;letter-spacing:.02em}
.fbx-quick .fbx-btn{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:28px}
.fbx-btn{display:inline-flex;align-items:center;gap:4px;min-height:30px;padding:0 10px;border:1px solid var(--ctrl-border);border-radius:999px;background:var(--surface);color:var(--ink);font:inherit;font-size:12.5px;cursor:pointer}
.fbx-btn:hover{border-color:var(--bad,#c0392b);color:var(--bad,#c0392b)}
@media (max-width:560px){.fbx-list li{grid-template-columns:minmax(0,1fr) auto}.fbx-list li .fbx-t{grid-column:1}
  .fbx-sug .mf-sug-i{flex-direction:column;align-items:flex-start;gap:2px}}

/* (16/10/2026) plan Premium + page Abonnement (Stripe) */
.cpt-plan.premium{background:var(--brand);color:var(--brand-ink)}
.mb-pill.premium{background:var(--brand);color:var(--brand-ink)}
.mb-seg{display:inline-flex;flex-wrap:nowrap}
.mb-seg button{font-size:12.5px;padding:0 10px;min-height:32px}
.pay-note{margin:0 0 10px;padding:10px 14px;border-radius:12px;background:var(--brand-soft);color:var(--ink);font-size:14px;line-height:1.45}
.pay-note.warn{background:#fdf0dc;color:#5b3a06}
.pay-admin{display:flex;flex-direction:column;gap:8px;margin:0 0 14px}
.pay-admin .abtn{align-self:flex-start}
.pay-log{margin:0;padding:10px 14px 10px 30px;border-radius:12px;background:var(--surface);border:1px solid var(--line-soft);font-size:13px;color:var(--ink2);line-height:1.6}
.pay-per{display:flex;justify-content:center;margin:6px 0 18px}
.pay-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:stretch}
.pay-card{display:flex;flex-direction:column;gap:10px;padding:22px 22px 20px;margin:0;cursor:default;border:1px solid var(--line-soft);transition:border-color .15s,box-shadow .15s}
.pay-card.best{cursor:pointer}
.pay-card:not(:first-child){cursor:pointer}
.pay-card.on{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand) inset}
.pay-ch{display:flex;align-items:center;justify-content:space-between;gap:8px}
.pay-ch h2{margin:0;font-family:var(--serif);font-size:26px;font-weight:600}
.pay-best,.pay-mine{font-size:12px;font-weight:700;padding:3px 10px;border-radius:999px;background:var(--brand-soft);color:var(--brand);white-space:nowrap}
.pay-mine{background:var(--gold);color:#1a1405}
.pay-tag{margin:0;color:var(--ink2);font-size:14px}
.pay-price{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 6px;padding:6px 0 10px;border-bottom:1px solid var(--line-soft)}
.pay-price b{font-family:var(--serif);font-size:40px;font-weight:600;line-height:1;font-variant-numeric:tabular-nums}
.pay-price span{color:var(--ink2);font-size:15px}
.pay-price small{flex-basis:100%;color:var(--ink2);font-size:13px}
.pay-feat{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;flex:1}
.pay-feat li{position:relative;padding-left:24px;font-size:14.5px;line-height:1.4}
.pay-feat li::before{content:"✓";position:absolute;left:0;top:0;color:var(--brand);font-weight:800}
.pay-feat li.base{font-weight:700}
.pay-soon{margin-left:8px;font-size:11.5px;font-weight:700;padding:1px 8px;border-radius:999px;background:var(--head);color:var(--ink2)}
.pay-card .abtn{align-self:stretch;justify-content:center}
.pay-recap{margin-top:18px;padding:22px;display:flex;flex-direction:column;gap:12px;max-width:720px}
.pay-recap h2{margin:0;font-family:var(--serif);font-size:22px;font-weight:600}
.pay-sum{margin:0;font-size:16px}
.pay-sum b{font-size:20px;font-variant-numeric:tabular-nums}
.pay-sum s{color:var(--ink2)}
.pay-code{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.pay-code input{min-height:40px;padding:0 12px;border:1px solid var(--ctrl-border);border-radius:10px;background:var(--surface);color:var(--ink);font:inherit;font-size:14px;text-transform:uppercase;width:200px;max-width:100%}
.pay-code-ok{margin:0;color:var(--good);font-weight:600;font-size:14px}
.pay-oks{display:flex;flex-direction:column;gap:8px}
.pay-ok-line{display:grid;grid-template-columns:22px minmax(0,1fr);gap:8px;align-items:start;font-size:14px;line-height:1.45;cursor:pointer}
.pay-ok-line input{width:18px;height:18px;margin-top:1px;accent-color:var(--brand)}
.pay-go{align-self:flex-start;min-height:46px;font-size:15px}
.pay-fine{margin:0;font-size:12.5px}
.pay-thanks{padding:26px;display:flex;flex-direction:column;gap:12px;max-width:640px}
.pay-ok{margin:0;font-family:var(--serif);font-size:24px;color:var(--good)}
@media (max-width:900px){.pay-cards{grid-template-columns:minmax(0,1fr)}.pay-per .seg{flex-wrap:wrap}}
.pay-go:disabled{opacity:.45;cursor:not-allowed}

/* (17/10/2026) carte dorée « Réservé au plan … » hors colonne (Freebets) et Surebets verrouillés */
.plan-lock{padding:20px 22px;display:flex;flex-direction:column;max-width:46rem}
.plan-lock .abtn.pro-btn{margin-top:4px}
#sb-page.sb-locked .sb-settings,#sb-page.sb-locked #sb-list,#sb-page.sb-locked .notes > p:not(.rg){display:none}
#sb-page.sb-locked .sb-grid{grid-template-columns:minmax(0,1fr)}
#sb-page.sb-locked .sb-panel{position:static}
#sb-page.sb-locked .sb-grid{margin-top:16px}
@media (max-width:560px){.fb-head{flex-wrap:wrap}.fbx-quick{max-width:100%}}

/* (17/10/2026) page Abonnement, version B (façon Campus) : une ligne par formule, offres annuelle et mensuelle côte à côte */
.pay-rows{display:flex;flex-direction:column;gap:16px;margin-top:14px}
#pay-body > .rg{text-align:center;max-width:720px;margin-inline:auto}
.pay-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:22px;padding:22px;margin:0;border:1px solid var(--line-soft)}
.pay-row.on{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand) inset}
.pay-rl{display:flex;flex-direction:column;gap:10px}
.pay-offers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:stretch;padding-top:10px}
.pay-offer{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;padding:22px 14px 16px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.pay-offer.an{border:2px solid var(--brand);background:color-mix(in srgb,var(--brand-soft) 35%,var(--surface))}
.pay-offer p{margin:0}
.pay-flag{position:absolute;top:-11px;left:50%;transform:translateX(-50%);font-size:12px;font-weight:800;padding:3px 12px;border-radius:999px;background:var(--gold);color:#1a1405;white-space:nowrap}
.pay-on{font-weight:700;font-size:14px;color:var(--ink2)}
.pay-op b{font-family:var(--serif);font-size:38px;font-weight:600;line-height:1.1;font-variant-numeric:tabular-nums}
.pay-op i{font-style:normal;color:var(--ink2);margin-left:3px}
.pay-os{font-size:14px;font-variant-numeric:tabular-nums}
.pay-os s{color:var(--muted);margin-right:4px}
.pay-oe{font-size:12.5px;color:var(--good);font-weight:600;min-height:1.4em}
.pay-offer:not(.an) .pay-oe{color:var(--muted);font-weight:500}
.pay-offer .abtn{margin-top:auto;align-self:stretch;justify-content:center}
.pay-cur{margin-top:auto !important;padding-top:10px;font-weight:700;color:var(--good);font-size:14px}
.pay-free{margin:0;padding:12px 16px;border-radius:12px;background:var(--head);font-size:13.5px;color:var(--ink2);display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}
.pay-free b{color:var(--ink)}
.pay-recap{margin-inline:auto}
@media (max-width:900px){.pay-row{grid-template-columns:minmax(0,1fr);padding:18px}}
@media (max-width:420px){.pay-offers{gap:8px}.pay-offer{padding:20px 8px 12px}.pay-op b{font-size:30px}}

/* ---- Page Matchs basket (16/10/2026) : mêmes lignes que la vue compacte du football (.fr-row), groupées par compétition ---- */
@media (min-width:901px){
  /* Vainqueur : en-têtes « Domicile / Extérieur » plus longs que « 1 / 2 » */
  .fr-row.n2.bk-ml{grid-template-columns:84px minmax(150px,1.4fr) repeat(2,minmax(136px,1fr)) 78px repeat(2,118px) 18px}
}
/* bouton du sport sous cadenas mais affiché (écran « Réservé au plan Premium ») : texte lisible sur le fond plein */
.seg button.seg-pro[aria-pressed="true"],.seg button.seg-pro[aria-pressed="true"]:hover{background:var(--brand);color:var(--brand-ink)}
/* choix de la ligne de points (jusqu'à 9 lignes) : défile sur téléphone au lieu d'être coupé */
.bk-lines{min-width:0;max-width:100%}
.bk-lines .seg{max-width:100%;overflow-x:auto;scrollbar-width:thin}
.bk-lines .seg button{flex:0 0 auto}
@media (max-width:600px){
  .bk-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .bk-tabs .market-tab{min-width:0;padding:8px 10px}
}

/* ---- Promos perso (16/10/2026) : badges « Perso » / « Personnalisée », boutons Personnaliser / Supprimer */
.pr-perso{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;white-space:nowrap;
  background:color-mix(in srgb,var(--brand) 12%,var(--surface));color:var(--brand);border:1px solid color-mix(in srgb,var(--brand) 35%,transparent)}
.pr-perso.cu{background:color-mix(in srgb,var(--gold) 16%,var(--surface));color:var(--gold-ink);border-color:var(--gold-line)}
.prl-t .pr-perso{margin-left:6px;vertical-align:1px}
.pr-edit.pr-cu{white-space:nowrap}
.pr-edit.pr-del{color:var(--bad)}
.pr-edit.pr-pub{color:var(--brand);font-weight:700}
.mf-orig{margin:0 0 6px;padding:8px 10px;border-radius:10px;background:var(--head)}
/* (16/10/2026) logo PokerStars : beaucoup de marge noire dans le fichier -> agrandi 2,5 fois, sans déborder
   (l'étiquette blanche .logo-tag et la boîte .blogo-crop coupent ce qui dépasse) */
.logo-tag .blogo[src*="/logos/pokerstars"]{transform:scale(2.5)}
.blogo-crop{display:inline-flex;align-items:center;justify-content:center;flex:none;overflow:hidden;width:46px;height:18px;border-radius:3px;vertical-align:middle;background:#000}
.blogo-crop[hidden]{display:none}
.blogo-crop .blogo{height:18px;max-width:none;transform:scale(2.5)}
.legend .blogo-crop{width:40px;height:15px}.legend .blogo-crop .blogo{height:15px}
.tip .l .blogo-crop{width:34px;height:13px}.tip .l .blogo-crop .blogo{height:13px}
/* (16/10/2026) page Défis : 3 façons de couvrir (Équilibré · Gagnant ou remboursé · Perdant ou remboursé) */
.df-modes{display:flex;flex-direction:column;gap:4px;max-width:100%;margin-left:auto}
.df-modes .seg{flex-wrap:wrap;max-width:100%}
.df-modes .seg button{min-height:32px;padding:0 10px;font-size:13px}
.df-modes small{font-size:11.5px;color:var(--ink2);max-width:46ch}
@media (max-width:900px){.df-modes{width:100%;margin-left:0}}
/* ---- page Middles (16/10/2026, admins) ---- */
.md-link{align-self:flex-start;white-space:nowrap}
.md-tabs{margin:18px 0 0}
.md-bar .md-wide{flex:1 1 100%}
.md-bar .fb-inp input{width:84px;min-height:42px;padding:0 10px;background:var(--surface);border:1px solid var(--ctrl-border);border-radius:10px;color:var(--ink);font:inherit;font-weight:600}
.md-chips .pred-comp-chip{padding:5px 12px}
.md-chips button{min-height:32px}
.md-list{margin-bottom:16px;overflow:hidden}
.md-row{display:grid;grid-template-columns:minmax(150px,1.1fr) minmax(150px,1fr) minmax(240px,1.6fr) 104px 104px 116px 96px 92px 18px;gap:12px;align-items:center;
  padding:10px 16px;border-top:1px solid var(--line-soft);background:var(--surface);cursor:pointer}
.md-row:hover{background:color-mix(in srgb,var(--brand) 4%,var(--surface))}
.md-row.open{background:color-mix(in srgb,var(--brand) 6%,var(--surface))}
.md-row.md-head{cursor:default;border-top:0;background:var(--head);font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2);padding-top:9px;padding-bottom:9px}
.md-row.md-head .r{text-align:right}
.md-m,.md-f,.md-n,.md-p{display:flex;flex-direction:column;gap:2px;min-width:0}
.md-m b{overflow-wrap:anywhere}
.md-m small,.md-f small,.md-n small,.md-p small{color:var(--ink2);font-size:12px}
.md-n,.md-p{text-align:right;align-items:flex-end}
.md-n b,.md-p b{font-size:15px}
.md-fam{font-weight:700}
.md-same{align-self:flex-start;margin-top:2px;padding:1px 8px;border-radius:999px;font-size:11px;font-weight:700;background:var(--warn-bg);color:var(--warn-ink)}
.md-legs{display:flex;flex-direction:column;gap:6px;min-width:0}
.md-leg{display:flex;align-items:center;gap:8px;min-width:0}
.md-leg .logo-tag{width:84px;height:24px}
.md-leg .logo-tag .blogo,.md-leg .logo-tag .blogo[src]{height:32px}
.md-ll{display:flex;flex-direction:column;min-width:0}
.md-ll b{font-size:13px;font-weight:600;overflow-wrap:anywhere}
.md-ll small{font-size:12px;color:var(--ink2)}
.md-o{font-weight:700;color:var(--ink)}
.md-chev{color:var(--ink2);text-align:center}
.md-det{padding:12px 16px 16px;border-top:1px solid var(--line-soft);background:var(--page);display:grid;gap:10px}
.md-dh{font-size:13px;color:var(--ink2)}
.md-sc{width:100%;border-collapse:collapse;font-size:13.5px;background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.md-sc th,.md-sc td{padding:8px 10px;border-top:1px solid var(--line-soft);text-align:left}
.md-sc th{border-top:0;background:var(--head);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2)}
.md-sc .r{text-align:right;white-space:nowrap}
.md-sc tr.jack td{background:color-mix(in srgb,var(--good) 9%,var(--surface));font-weight:700}
.md-sc tr.rare td{color:var(--ink2);font-style:italic}
.md-warn{margin:0;padding:8px 10px;border-radius:10px;background:var(--warn-bg);color:var(--warn-ink);font-size:13px}
.md-warn.soft{background:var(--head);color:var(--ink2)}
.md-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin:0 0 14px}
.md-kpi{display:flex;flex-direction:column;gap:3px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface);min-width:0}
.md-kpi small{font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.md-kpi b{font-size:22px}
.md-kpi span{font-size:12px;color:var(--ink2)}
.md-tables{display:grid;grid-template-columns:1fr;gap:14px;margin-bottom:14px}
.md-tw{padding:0;overflow:hidden}
.md-th{margin:0;padding:12px 16px;font-size:17px;border-bottom:1px solid var(--line)}
.md-bt{width:100%;min-width:640px;border-collapse:collapse;font-size:13.5px}
.md-bt th,.md-bt td{padding:8px 12px;border-top:1px solid var(--line-soft);text-align:left}
.md-bt th{border-top:0;background:var(--head);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2)}
.md-bt .r{text-align:right;white-space:nowrap}
.md-bt td small{display:block;color:var(--ink2);font-size:12px}
.md-row.md-btr{grid-template-columns:minmax(150px,1.1fr) minmax(150px,1fr) minmax(220px,1.5fr) 96px 96px 120px 100px 96px;cursor:default}
.md-res{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:700;background:var(--head);color:var(--ink2);white-space:nowrap}
.md-res.jk{background:color-mix(in srgb,var(--good) 15%,var(--surface));color:var(--good)}
.md-res.one{background:color-mix(in srgb,var(--bad) 10%,var(--surface));color:var(--bad)}
.md-more{margin:0;padding:10px 16px;color:var(--ink2);font-size:13px}
@media (max-width:1100px){.md-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:900px){
  .md-row.md-head{display:none}
  .md-row,.md-row.md-btr{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;padding:12px 14px}
  .md-row>.md-m,.md-row>.md-f,.md-row>.md-legs{grid-column:1 / -1}
  .md-row>.md-chev{display:none}
  .md-n,.md-p{text-align:left;align-items:flex-start}
  .md-n[data-l]::before,.md-p[data-l]::before{content:attr(data-l);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2);font-weight:600}
  .md-det{padding:10px 10px 14px}
  .md-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .md-bar .fb-inp input{width:70px}
}
.md-moref summary{cursor:pointer;font-size:13px;font-weight:700;color:var(--brand);display:inline-flex;align-items:center;gap:8px}
.md-moref[open]{display:grid;gap:10px}
.md-bar .seg{flex-wrap:wrap;max-width:100%}

/* (18/10/2026) Middles : lien depuis la page Surebets, « Cote min. par pari » et « Même bookmaker : Exclure » */
.md-h1row{display:flex;align-items:center;gap:8px 16px;flex-wrap:wrap}
.md-h1row .md-link{align-self:center}
.md-bar .md-sel{min-height:42px;padding:0 10px;background:var(--surface);border:1px solid var(--ctrl-border);border-radius:10px;color:var(--ink);font-weight:600;cursor:pointer}
.md-bar .md-sel:focus-visible{outline:2px solid var(--brand);outline-offset:1px}
.md-tg{display:inline-flex;align-items:center;gap:8px;min-height:42px;font-size:14px;font-weight:600;cursor:pointer}

/* (18/10/2026) Middles : bilans par famille (ligne Total) et bilan Kelly fictif */
.md-th small{display:block;margin-top:2px;font-family:inherit;font-size:12.5px;font-weight:400;color:var(--ink2)}
.md-bt tr.md-tot td{font-weight:700;background:var(--head)}
.md-kpis.md-k8{grid-template-columns:repeat(4,minmax(0,1fr))}
.md-kpis.md-k8 + .chart-card{margin:0 0 14px}
@media (max-width:640px){.md-kpis.md-k8{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* (18/10/2026) Middles : « + Bilan » dans « En direct », fenêtre d'ajout et onglet « Mon bilan » */
.mdb-addc{display:flex;flex-direction:column;align-items:center;gap:3px}
.mdb-addc small{font-size:11.5px;color:var(--ink2);white-space:nowrap}
.mdb-add{min-height:34px;padding:0 12px;font-size:13px;font-weight:700;border-color:var(--brand);color:var(--brand);white-space:nowrap}
.md-dh small{font-size:12.5px}
.mbd{display:grid;gap:14px;padding-bottom:6px}
.mbd-match{display:flex;flex-direction:column;gap:2px;font-size:13px;color:var(--ink2)}
.mbd-match>b{font-size:15.5px;color:var(--ink)}
.mbd-legs{display:grid;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.mbd-lh,.mbd-leg{display:grid;grid-template-columns:minmax(0,1fr) 96px 86px;gap:10px;align-items:center;padding:8px 12px}
.mbd-lh{background:var(--head);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2)}
.mbd-leg{border-top:1px solid var(--line-soft)}
.mbd-lh .r,.mbd-leg .r{text-align:right}
.mbd-p{display:flex;align-items:center;gap:8px;min-width:0;font-size:13.5px;font-weight:600}
.mbd-p .logo-tag{width:76px;height:22px;flex:none}
.mbd-p .logo-tag .blogo,.mbd-p .logo-tag .blogo[src]{height:30px}
.mbd .fb-inp input{width:76px;min-height:38px;padding:0 8px;background:var(--surface);border:1px solid var(--ctrl-border);border-radius:9px;color:var(--ink);font:inherit;font-weight:700}
.mbd-tot{display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:6px 12px;align-items:center}
.mbd-tot .fb-inp input{width:104px}
.mbd-tot small{grid-column:1 / -1;font-size:12.5px;color:var(--ink2)}
.linkbtn{border:0;background:none;padding:0;color:var(--brand);font:inherit;font-weight:700;cursor:pointer;text-decoration:underline}
.mbd-out{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.mbd-out>div{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.mbd-out small{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.mbd-out b{font-size:16px}
.mbd-real{display:flex;align-items:center;gap:12px;cursor:pointer}
.mbd-real span{display:flex;flex-direction:column}
.mbd-real small{font-size:12.5px;color:var(--ink2)}
.mbd-act{display:flex;justify-content:flex-end}
.mbd-act .abtn{min-height:44px;padding:0 20px}
.md-row.mdb-row{grid-template-columns:minmax(150px,1.1fr) minmax(130px,.9fr) minmax(250px,1.6fr) 100px 112px 132px 96px 30px;cursor:default}
.md-list>.md-th{border-bottom:0}
.mdb-kind{align-self:flex-start;margin-top:3px;padding:1px 8px;border-radius:999px;font-size:11px;font-weight:700;background:var(--head);color:var(--ink2)}
.mdb-kind.real{background:color-mix(in srgb,var(--brand) 14%,var(--surface));color:var(--brand)}
.mdb-res{font:inherit;font-size:12.5px;font-weight:700;padding:5px 8px;border:1px solid var(--ctrl-border);border-radius:999px;background:var(--surface);color:var(--ink2);cursor:pointer}
.mdb-res.jk{border-color:var(--good);color:var(--good)}
.mdb-res.one{border-color:color-mix(in srgb,var(--bad) 50%,var(--line));color:var(--bad)}
.mdb-del{width:28px;height:28px;border:0;border-radius:50%;background:transparent;color:var(--muted);cursor:pointer;font-size:13px}
.mdb-del:hover{background:var(--head);color:var(--bad)}
@media (max-width:900px){
  .md-row>.mdb-addc{grid-column:1 / -1;flex-direction:row;justify-content:space-between}
  .md-row>.mdb-addc .mdb-add{flex:1;min-height:40px}
  .md-row.mdb-row{position:relative;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;padding:12px 14px}
  .md-bar #mdb-bank{width:92px}
  .md-row.mdb-row>.mdb-del{position:absolute;top:8px;right:8px}
}
@media (max-width:520px){ .mbd-out{grid-template-columns:repeat(2,minmax(0,1fr))} .mbd-lh,.mbd-leg{grid-template-columns:minmax(0,1fr) 82px 74px;padding:8px 10px} .mbd .fb-inp input{width:66px} .mbd .mbd-tot .fb-inp input{width:104px} }
.mbd-act .abtn[disabled]{opacity:.45;cursor:not-allowed}

/* (17/10/2026) Surebets : menu « ⚙️ Réglages » (marchés par sport, bookmakers ★ obligatoires, commission Betfair) */
.sb-opts .opts-panel{width:min(560px,calc(100vw - 32px));gap:8px;max-height:min(70vh,640px);overflow-y:auto}
.sb-optg{display:flex;flex-direction:column;gap:6px}
.sb-optg .opts-l{margin-top:2px}
.sb-opth{margin-top:8px;padding-top:10px;border-top:1px solid var(--line-soft)}
@media (max-width:900px){.sb-settings{position:relative}.sb-opts .opts-panel{left:12px;right:12px;width:auto}}

/* (17/10/2026) administration : onglets Membres / Robots, page « État des robots » */
.adm-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 14px}
.adm-tabs a{position:relative;display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 14px;border:1.5px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink2);font-weight:600;font-size:14px}
.adm-tabs a[aria-current="page"]{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}
.adm-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#d92d20;margin-left:6px;vertical-align:middle;flex:none}
.rbt-alert{margin:0 0 10px;padding:11px 14px;border-radius:12px;background:color-mix(in srgb,var(--bad) 12%,var(--surface));font-size:14px;line-height:1.45}
.rbt-alert b{color:var(--bad)}
.rbt-list{padding:4px 16px}
.rbt-row{display:grid;grid-template-columns:132px minmax(0,1fr) auto;gap:4px 14px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line-soft)}
.rbt-row:last-child{border-bottom:0}
.rbt-st{display:inline-flex;align-items:center;justify-self:start;min-height:26px;padding:0 10px;border-radius:999px;font-size:12.5px;font-weight:700;white-space:nowrap}
.rbt-st.ok{background:color-mix(in srgb,var(--good) 13%,var(--surface));color:var(--good)}
.rbt-st.warn{background:var(--warn-bg);color:var(--warn-ink)}
.rbt-st.late{background:var(--warn-bg);color:var(--warn-ink)}
.rbt-st.err{background:color-mix(in srgb,var(--bad) 13%,var(--surface));color:var(--bad)}
.rbt-st.unk{background:var(--head);color:var(--ink2)}
.rbt-main{min-width:0}
.rbt-main b{font-size:14.5px}
.rbt-main small{display:block;color:var(--muted);font-size:12.5px;overflow-wrap:anywhere}
.rbt-main small.rbt-err{color:var(--bad)}
.rbt-ticks{display:flex;gap:2px;margin-top:6px}
.rbt-ticks i{display:block;flex:0 1 7px;height:14px;border-radius:2px;background:var(--line)}
.rbt-ticks i.t-ok{background:var(--good)}.rbt-ticks i.t-warn{background:#d98a00}.rbt-ticks i.t-err{background:var(--bad)}
.rbt-when{text-align:right;font-size:13px;color:var(--ink2);font-variant-numeric:tabular-nums;white-space:nowrap}
.rbt-when small{display:block;color:var(--muted);font-size:12px}
.rbt-when a{font-size:12.5px;font-weight:600}
@media (max-width:640px){ .rbt-row{grid-template-columns:1fr} .rbt-when{text-align:left} }
.rbt-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}
@media (max-width:900px){ .rbt-grid{grid-template-columns:1fr} }
.rbt-card{padding:14px 16px}
.rbt-card h3{margin:0 0 10px;font-size:15px}
/* (25/10/2026) page Robots : temps de calcul (CPU) */
.rbt-cpu{margin-top:14px}
.rbt-cpu-meta{margin:0 0 10px;font-size:13px;color:var(--ink2);line-height:1.45}
.rbt-cpu-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 12px}
.rbt-cpu-tile{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:10px;background:var(--head);min-width:0}
.rbt-cpu-tile .k{font-size:12px;color:var(--muted);font-weight:600}
.rbt-cpu-tile .v{font-size:20px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}
.rbt-cpu-tile small{font-size:12px;color:var(--muted)}
.rbt-cpu-tile.bad .v{color:var(--bad)}.rbt-cpu-tile.good .v{color:var(--good)}.rbt-cpu-tile.warn small{color:var(--warn-ink)}
.rbt-cpu-hours{margin:0 0 10px}
.rbt-cpu-hours .rbt-ticks i{flex:1 1 0;height:16px}
.rbt-cpu-hours small{display:flex;justify-content:space-between;margin-top:4px;font-size:11.5px;color:var(--muted)}
.rbt-cpu-h{margin:14px 0 4px;font-size:14px}
.rbt-cpu-crons{display:flex;flex-direction:column}
.rbt-cpu-cron{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,260px);gap:6px 16px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line-soft)}
.rbt-cpu-cron:last-child{border-bottom:0}
.rbt-cpu-gauge{min-width:0}
.rbt-cpu-gauge small{display:block;font-size:12.5px;color:var(--ink2);font-variant-numeric:tabular-nums}
.rbt-cpu-gauge small.rbt-err{color:var(--bad);font-weight:600}.rbt-cpu-gauge small.ok{color:var(--good)}
.rbt-cpu-bar{position:relative;display:block;height:10px;margin:2px 0 5px;border-radius:6px;background:var(--line-soft)}
.rbt-cpu-bar i{position:absolute;left:0;top:0;bottom:0;border-radius:6px}
.rbt-cpu-bar i.max{background:color-mix(in srgb,var(--brand) 30%,transparent)}
.rbt-cpu-bar i.avg{background:var(--brand)}
.rbt-cpu-bar.warm i.max{background:color-mix(in srgb,#d98a00 45%,transparent)}
.rbt-cpu-bar.hot i.avg{background:var(--bad)}.rbt-cpu-bar.hot i.max{background:color-mix(in srgb,var(--bad) 35%,transparent)}
.rbt-cpu-bar b{position:absolute;top:-3px;bottom:-3px;width:2px;margin-left:-1px;background:var(--ink);border-radius:1px}
.rbt-cpu-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin:10px 0 0;font-size:12px;color:var(--muted)}
.rbt-cpu-legend .lg{display:inline-block;width:14px;height:8px;border-radius:3px;margin-left:6px}
.rbt-cpu-legend .lg:first-child{margin-left:0}
.rbt-cpu-legend .lg.avg{background:var(--brand)}.rbt-cpu-legend .lg.max{background:color-mix(in srgb,var(--brand) 30%,transparent)}.rbt-cpu-legend .lg.lim{width:2px;height:12px;background:var(--ink)}
@media (max-width:700px){.rbt-cpu-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.rbt-cpu-cron{grid-template-columns:minmax(0,1fr)}}
.rbt-q{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px 14px;align-items:center;font-size:14px}
.rbt-q .k{font-weight:700}
.rbt-q small{display:block;color:var(--muted);font-size:12.5px}
.rbt-meter{display:block;height:8px;border-radius:6px;background:var(--line-soft);overflow:hidden}
.rbt-meter i{display:block;height:100%;border-radius:6px;background:var(--brand)}
.rbt-meter.warm i{background:#d98a00}.rbt-meter.hot i{background:var(--bad)}
.rbt-note{margin:12px 0 0;font-size:13px;color:var(--ink2)}
/* (27/10/2026) relevé réel des clés de cotes */
.rbt-qs{display:flex;flex-direction:column;gap:14px;margin:0 0 14px;padding:0 0 14px;border-bottom:1px solid var(--line-soft)}
.rbt-qb{display:flex;flex-direction:column;gap:4px;min-width:0}
.rbt-qh{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:14px}
.rbt-qp{font-size:12.5px;color:var(--ink2);font-variant-numeric:tabular-nums;white-space:nowrap}
.rbt-qv{margin:2px 0 0;font-size:14px;color:var(--ink2);font-variant-numeric:tabular-nums}
.rbt-qv b{color:var(--ink)}
.rbt-qb small,.rbt-qr{display:block;color:var(--muted);font-size:12.5px;font-variant-numeric:tabular-nums}
.rbt-qr.warn{color:var(--warn-ink)}
.rbt-qc{display:flex;flex-direction:column;gap:2px;margin:2px 0 0;font-size:13px;color:var(--ink2);font-variant-numeric:tabular-nums}
.rbt-qc p{margin:0}.rbt-qc b{color:var(--ink)}
.rbt-qc .ok{color:var(--good)}.rbt-qc .bad{color:var(--bad);font-weight:600}
p.rbt-qc.muted{color:var(--muted);font-size:12.5px}
.rbt-qd h4{margin:0 0 6px;font-size:13.5px}
.rbt-qd small{display:block;margin-top:6px;color:var(--muted);font-size:12px}
.rbt-qt{width:100%;border-collapse:collapse;font-size:13px}
.rbt-qt th{text-align:left;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:5px 6px;border-bottom:1px solid var(--line)}
.rbt-qt td{padding:5px 6px;border-bottom:1px solid var(--line-soft)}
.rbt-qt .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.rbt-qt tfoot td{font-weight:700;border-top:1px solid var(--line);border-bottom:0}
.rbt-qt tr.muted td{color:var(--muted)}
.rbt-note.warn{color:var(--warn-ink)}
.rbt-note.top{margin:0 0 12px}
.rbt-tbl{width:100%;border-collapse:collapse;font-size:13px}
.rbt-tbl th{text-align:left;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:6px 8px;border-bottom:1px solid var(--line)}
.rbt-tbl td{padding:7px 8px;border-bottom:1px solid var(--line-soft);vertical-align:top}
.rbt-tbl td.nw{white-space:nowrap}
.rbt-more{display:block;margin:8px 0 0;padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink2);font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.rbt-more:hover{background:var(--head);color:var(--ink)}
@media (max-width:640px){
  .rbt-tbl thead{display:none}
  .rbt-tbl tr{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 10px;padding:8px 0;border-bottom:1px solid var(--line-soft)}
  .rbt-tbl td{border:0;padding:0}
  .rbt-tbl td:last-child{grid-column:1/-1;color:var(--ink2)}
}

/* (17/10/2026) page « Statistiques » (admin) */
.sts-head{align-items:flex-end}
.sts-ctrl{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.sts-nav{display:flex;gap:6px}
.sts-nav .abtn{min-width:40px;font-size:18px}
.sts-nav .abtn[disabled]{opacity:.4;cursor:not-allowed}
.sts-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin:16px 0 14px}
.sts-tile{display:grid;gap:2px;align-content:start;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.sts-tile .k{font-size:12.5px;color:var(--ink2)}
.sts-tile .v{font:600 26px/1.15 var(--sans)}
.sts-tile .d{font-size:12.5px;color:var(--muted)}
.sts-tile.hero{background:var(--brand-soft);border-color:transparent}
.sts-tile.hero .v{font-size:34px}
.sts-up{color:var(--good);font-weight:600}.sts-down{color:var(--bad);font-weight:600}.sts-eq{color:var(--muted);font-weight:600}
.sts-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
@media (max-width:900px){ .sts-grid{grid-template-columns:1fr} }
.sts-card{padding:14px 16px;min-width:0}
.sts-card h3{margin:0;font-size:15px}
.sts-sub{margin:2px 0 10px;font-size:12.5px;color:var(--muted)}
.sts-h4{margin:14px 0 4px;font-size:13px}
.sts-svg{display:block;width:100%;height:auto;overflow:visible}
.sts-svg text{font:11.5px var(--sans);fill:var(--muted)}
.sts-svg text.sts-lab{fill:var(--ink);font-weight:600}
.sts-svg .sts-grid{stroke:var(--grid);stroke-width:1}
.sts-svg .sts-bar{fill:var(--s1);opacity:.5}
.sts-svg .sts-bar.on{opacity:1}
.sts-svg .sts-l1{fill:none;stroke:var(--s1);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.sts-svg .sts-l2{fill:none;stroke:var(--s7);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.sts-svg circle.sts-l1{fill:var(--s1);stroke:var(--surface)}.sts-svg circle.sts-l2{fill:var(--s7);stroke:var(--surface)}
.sts-legend{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12.5px;color:var(--ink2);margin-top:6px}
.sts-legend i{display:inline-block;vertical-align:middle;margin-right:6px}
.sts-legend i.ln{width:14px;height:3px;border-radius:2px}
.sts-legend i.sq{width:10px;height:10px;border-radius:3px}
.sts-stack{display:flex;gap:2px;height:22px;border-radius:6px;overflow:hidden;margin:6px 0 8px}
.sts-stack span{display:block;height:100%}
.sts-tbl{width:100%;border-collapse:collapse;font-size:13.5px}
.sts-tbl th{text-align:left;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:700;padding:6px 8px;border-bottom:1px solid var(--line)}
.sts-tbl td{padding:7px 8px;border-bottom:1px solid var(--line-soft)}
.sts-tbl .r{text-align:right;white-space:nowrap}
.sts-mcell{width:38%}
.sts-meter{display:block;height:8px;border-radius:6px;background:var(--line-soft);overflow:hidden;min-width:50px}
.sts-meter i{display:block;height:100%;border-radius:6px;background:var(--brand)}
.sts-foot{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:4px 0 20px}
.sts-foot p{flex-basis:100%;margin:4px 0 0;font-size:12.5px}
.sts-note{font-size:13px;color:var(--ink2)}

/* (19/10/2026) Sélection ValueLab dans le Détecteur et les Middles : ligne dorée (comme les CB 10 €) + petit logo */
.sel-pill{display:inline-flex;align-items:center;gap:4px;margin-top:3px;padding:1px 8px 1px 6px;border-radius:999px;background:var(--gold-soft);border:1px solid var(--gold-line);color:var(--gold-ink);font-size:11.5px;font-weight:700;white-space:nowrap;line-height:1.5}
.sel-pill .vl-mark{flex:none;color:var(--gold)}
.vrow.selrow{background:linear-gradient(90deg,var(--gold-soft) 0 20%,var(--surface) 78%);box-shadow:inset 4px 0 0 var(--gold)}
.vrow.selrow .vmatch{background:var(--gold-soft)}
.vrow .vsel-taken{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;text-align:center;line-height:1.3}
.vrow .vsel-taken small{font-size:12px;color:var(--gold-ink)}
.vrow .vsel-taken .vsel-now{color:var(--muted)}
.md-row.selrow{background:linear-gradient(90deg,var(--gold-soft),var(--surface) 70%);box-shadow:inset 4px 0 0 var(--gold)}
.md-row.selrow:hover{background:linear-gradient(90deg,var(--gold-soft),var(--sunk) 70%)}
.md-row .md-m .sel-pill{align-self:flex-start}
.mdb-in b{color:var(--gold-ink);font-size:13.5px}
/* (19/10/2026) Middles : onglet « Alertes » */
.mda-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin:16px 0 12px}
.mda-top .sub{margin:0;flex:1 1 320px}
.mda-rule{padding:0;margin-bottom:10px;overflow:hidden}
.mda-rule.off .mda-t,.mda-rule.off .mda-n{opacity:.55}
.mda-h{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:12px 16px;padding:12px 16px}
.mda-t{all:unset;cursor:pointer;display:flex;flex-direction:column;gap:2px;min-width:0}
.mda-t:focus-visible{outline:2px solid var(--brand);outline-offset:3px;border-radius:6px}
.mda-t b{font-size:15.5px}
.mda-t small{color:var(--ink2);font-size:12.5px}
.mda-ch{display:flex;gap:6px}
.mda-tag{font-size:11.5px;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--sunk);color:var(--ink2);white-space:nowrap}
.mda-n{display:flex;flex-direction:column;align-items:center;min-width:74px}
.mda-n b{font-size:20px;color:var(--muted)}
.mda-n.on b{color:var(--brand)}
.mda-n small{font-size:11px;color:var(--muted);white-space:nowrap}
.mda-body{display:grid;gap:12px;padding:4px 16px 16px;border-top:1px solid var(--line-soft)}
.mda-body .opf{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.mda-name input{max-width:360px}
.mda-nums{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px 16px}
.mda-nums .opf{margin-top:0}
.mda-cb{display:flex;align-items:center;gap:8px;font-size:14.5px}
.mda-hits{background:var(--sunk);border-radius:12px;padding:10px 12px;display:grid;gap:6px;font-size:14px}
.mda-hit{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px}
.mda-hit small{color:var(--ink2)}
.mda-act{display:flex;justify-content:flex-end}
.mda-del{color:var(--alert)}
@media (max-width:640px){ .mda-h{grid-template-columns:auto minmax(0,1fr) auto} .mda-ch{grid-column:2 / -1;grid-row:2} }
/* (19/10/2026) Nouveau boost : lecture d'une capture (compte administrateur) */
.mb-scan{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px;margin-bottom:6px;border:2px dashed var(--edge);border-radius:14px;background:color-mix(in srgb,var(--brand-soft) 45%,var(--surface))}
.mb-scan>svg{width:34px;height:34px;color:var(--brand)}
.mb-scan.over{border-style:solid;border-color:var(--brand);background:var(--brand-soft)}
.mb-scan.busy,.mb-scan.done,.mb-scan.err{border-style:solid;border-color:var(--line);background:var(--surface)}
.mb-scan.done{border-color:var(--edge)}
.mb-scan-t{display:flex;flex-direction:column;gap:2px;min-width:0}
.mb-scan-t b{font-size:15px}
.mb-scan-t small{font-size:12.5px;color:var(--ink2)}
.mb-shot{width:64px;max-height:92px;border-radius:10px}
.mb-shot img{width:64px;height:auto}
.mda-body .fb-inp input,.mda-name input{min-height:42px;padding:0 10px;background:var(--surface);border:1px solid var(--ctrl-border);border-radius:10px;color:var(--ink);font:inherit;font-weight:600}
.mda-body .fb-inp input{width:84px}
.mda-name input{width:100%;max-width:360px;font-weight:500}
.mda-body .fb-inp input:focus-visible,.mda-name input:focus-visible{outline:2px solid var(--brand);outline-offset:1px}
.mda-cb input{width:18px;height:18px;accent-color:var(--brand)}
.nbadge.nbadge-md{margin:0 6px 0 0;background:var(--brand);color:var(--brand-ink)}
/* (22/10/2026, maquette validee par Nico) trois points dores sous « Freebets » : optimisations restantes (comptes Gratuit) */
.nav a .fbo-dots{position:absolute;left:50%;bottom:2px;transform:translateX(-50%);display:flex;gap:3px;pointer-events:none}
.nav a .fbo-dots i{display:block;width:5px;height:5px;border-radius:50%;background:var(--gold)}
.nav a .fbo-dots i.off{background:transparent;border:1.2px solid var(--gold);box-sizing:border-box;opacity:.7}
@media (max-width:520px){ .nbadge.nbadge-md{position:absolute;top:-2px;left:-3px;right:auto;margin:0} }
.mda-tag.off{text-decoration:line-through;opacity:.6}
.mda-warn{color:var(--warn-ink)}
.mda-nums{align-items:end}
.mda-body .md-sel{min-height:42px;padding:0 10px;background:var(--surface);border:1px solid var(--ctrl-border);border-radius:10px;color:var(--ink);font:inherit;font-weight:600;max-width:160px}
.mda-body .md-tg{display:inline-flex;align-items:center;gap:8px;min-height:42px;font-weight:600}
.md-link{position:relative}
/* (19/10/2026) Value > Mouvements Pinnacle */
.pmv-bar{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:flex-end;padding:12px 16px;margin:14px 0}
.pmv-bar .opf{display:flex;flex-direction:column;gap:6px}
.pmv-bar .seg{max-width:100%;overflow-x:auto}
.pmv-list{padding:0;overflow:hidden}
.pmv-row{display:grid;grid-template-columns:minmax(170px,1.5fr) minmax(130px,1.1fr) minmax(170px,1.1fr) 92px minmax(190px,1.4fr) 92px;gap:0 14px;align-items:center;padding:11px 18px;border-top:1px solid var(--line-soft)}
.pmv-row:first-child{border-top:0}
.pmv-row.pmv-hd{font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:var(--head)}
.pmv-m,.pmv-i{display:flex;flex-direction:column;gap:2px;min-width:0}
.pmv-m .teams{font-weight:700;color:var(--ink);text-decoration:none}
.pmv-row small{color:var(--ink2);font-size:12px}
.pmv-o{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px}
.pmv-o s{color:var(--muted)}.pmv-o b{font-size:16px}
.pmv-a{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:999px;font-size:12.5px;font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}
.pmv-a.dn{background:var(--brand-soft);color:var(--brand)}.pmv-a.up{background:var(--warn-bg);color:var(--warn-ink)}
.pmv-p{font-weight:700}
.pmv-anj{display:flex;flex-wrap:wrap;gap:5px 8px;align-items:center}
.pmv-bk{display:inline-flex;align-items:center;gap:6px}
.pmv-bk b{font-size:14px}
.pmv-tag{font-size:11.5px;font-weight:700;padding:2px 8px;border-radius:999px;white-space:nowrap}
.pmv-tag.late{background:var(--gold-soft);color:var(--gold-ink);border:1px solid var(--gold-line)}
.pmv-tag.ok{background:var(--sunk);color:var(--muted)}
.pmv-tag.val{background:color-mix(in srgb,var(--good) 13%,var(--surface));color:var(--good)}
@media (max-width:900px){
  .pmv-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px 12px}
  .pmv-row.pmv-hd{display:none}
  .pmv-m,.pmv-anj{grid-column:1/-1}
  .pmv-row [data-l]::before{content:attr(data-l);display:block;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-bottom:3px;width:100%}
}
.pmv-bk .logo-tag{min-width:0;width:auto;height:24px;padding:0 8px}
.pmv-bk .logo-tag img{max-height:16px}
/* (19/10/2026) Concours : page membre et administration */
.cc-box{margin-top:18px}
.cc-card{max-width:720px;display:grid;gap:14px;padding:20px 22px}
.cc-when{margin:0;font-weight:600;color:var(--brand)}
.cc-lots{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
.cc-lot{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.cc-lot.prem{border-color:var(--brand);background:color-mix(in srgb,var(--brand-soft) 55%,var(--surface))}
.cc-lot small{font-size:11.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.cc-lot b{font-family:var(--serif);font-weight:500;font-size:21px}
.cc-acts{display:flex;flex-wrap:wrap;gap:10px}
.cc-form{display:grid;gap:10px}
.cc-form input[type=text]{min-height:44px;padding:0 12px;border:1px solid var(--ctrl-border);border-radius:10px;background:var(--surface);color:var(--ink);font:inherit;max-width:320px}
.cc-cb{display:flex;align-items:flex-start;gap:10px;font-size:15px;line-height:1.4}
.cc-cb input{margin-top:2px;flex:none}
.cc-btn{justify-self:start;min-height:46px;padding:0 24px}
.cc-ok{margin:0;padding:10px 14px;border-radius:10px;background:color-mix(in srgb,var(--good) 12%,var(--surface));color:var(--good);font-weight:600}
.cc-warn{margin:0;padding:10px 14px;border-radius:10px;background:var(--warn-bg);color:var(--warn-ink)}
@media (max-width:520px){.cc-lots{grid-template-columns:1fr}}
.cca-set{padding:16px 18px;margin-bottom:14px}
.cca-row{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:flex-end}
.cca-row .opf{display:flex;flex-direction:column;gap:6px}
.cca-row input{min-height:42px;padding:0 10px;border:1px solid var(--ctrl-border);border-radius:10px;background:var(--surface);color:var(--ink);font:inherit}
.cca-tw{flex:1 1 280px}.cca-tw input{width:100%}
.cca-acts{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-top:12px}
.cca-state{color:var(--ink2);font-size:14px}
.cca-lots{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:14px 0}
@media (max-width:760px){.cca-lots{grid-template-columns:1fr}}
.cca-lot{padding:16px 18px;display:grid;gap:10px;align-content:start}
.cca-lot h3{margin:0;font-size:17px}
.cca-lot.won{border-color:var(--good)}
.cca-who{display:flex;flex-direction:column;gap:2px}
.cca-who small{color:var(--ink2)}
.cca-help{margin:6px 0 0;color:var(--ink2);font-size:14px}
.cca-list{padding:0 0 6px;overflow:hidden}
.cca-list .md-th{padding:14px 18px 0}
.cca-new{display:inline-block;padding:1px 8px;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-weight:700;font-size:12px}

/* (18/10/2026) Bilan de la sélection : note admin sur les compétitions à compléter */
.sel-compnote{margin:0 0 10px;padding:9px 12px;border-radius:10px;background:var(--warn-bg);color:var(--warn-ink);font-size:13px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.sel-compnote p{margin:0;flex:1 1 260px}
.sel-fix{flex-basis:100%;display:grid;gap:8px;margin-top:4px}
.sel-fix-row{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto minmax(90px,auto);gap:8px;align-items:center;padding:8px 10px;border-radius:10px;background:var(--surface);color:var(--ink)}
.sel-fix-m{display:flex;flex-direction:column;min-width:0}.sel-fix-m b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sel-fix-m small{color:var(--muted)}
.sel-fix-row input{min-height:40px;min-width:0;padding:0 10px;border:1px solid var(--ctrl-border);border-radius:9px;background:var(--surface);color:var(--ink);font:inherit}
.sel-fix-st{font-size:12.5px;color:var(--good)}
.sel-fix-acts{display:flex;justify-content:flex-end}
@media (max-width:640px){.sel-fix-row{grid-template-columns:1fr auto}.sel-fix-m{grid-column:1 / -1}.sel-fix-st{grid-column:1 / -1}}

/* (18/10/2026) Détecteur : « Mes règles de la Sélection » (administrateur) */
/* (19/10/2026) Middles : pastille « Nouveau » + bouton « Voir les nouveaux » */
.md-row .md-m .md-new{align-self:flex-start;font-size:11px;padding:2px 8px;margin-top:2px}
.md-newbtn{margin-left:8px;font:inherit;font-size:12px;font-weight:600;color:var(--brand);background:var(--brand-soft);border:0;border-radius:999px;padding:2px 10px;cursor:pointer}
.md-newbtn[aria-pressed="true"]{background:var(--brand);color:#fff}
.md-newbtn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
/* (19/10/2026) « Mes règles » du Détecteur : bouton, lignes écartées (écran B), fenêtre (écran A), bilan (écran C) */
.vset-btns{display:flex;gap:8px;margin-left:auto}
.rg-btn.on{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}
.rg-btn{gap:4px}
.rg-btn b{font-weight:600}
.rg-imp:empty{display:none}
.rg-outbtn{margin-left:8px;font:inherit;font-size:12px;font-weight:600;color:var(--brand);background:var(--brand-soft);border:0;border-radius:999px;padding:2px 10px;cursor:pointer}
.rg-outbtn[aria-pressed="true"]{background:var(--brand);color:var(--brand-ink)}
.rg-outbtn:focus-visible,.rg-chip:focus-visible,.rg-pk:focus-visible,.rg-quick:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.vrow.vrow-out>div:not(.vmatch),.vrow.vrow-out .vmatch>:not(.rg-why){opacity:.45}
.rg-why{align-self:flex-start;display:inline-block;margin-top:3px;font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--warn-bg);color:var(--warn-ink);white-space:nowrap}
.rg{display:flex;flex-direction:column;gap:12px;padding-bottom:6px}
.rg-master{display:flex;align-items:flex-start;gap:12px;padding:12px;border-radius:12px;background:var(--head);cursor:pointer}
.rg-master span{display:flex;flex-direction:column;gap:2px}
.rg-master small,.rg-t small{color:var(--ink2);font-size:12px}
.rg-lab{margin:0;font-size:11.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink2)}
.rg-presets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.rg-pk{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;padding:9px 12px;border:1.5px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);font:inherit;cursor:pointer}
.rg-pk small{color:var(--ink2);font-size:11.5px}
.rg-pk[aria-pressed="true"]{border-color:var(--brand);background:var(--brand-soft)}
.rg-pk:disabled{opacity:.6;cursor:not-allowed}
.rg-rows{display:flex;flex-direction:column}
.rg-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px 12px;align-items:start;padding:11px 0;border-top:1px solid var(--line-soft)}
.rg-row .sb-sw{margin-top:1px}
.rg-t{display:flex;flex-direction:column;gap:4px;min-width:0}
.rg-row.off .rg-t>:not(b){opacity:.55}
.rg-imp{font-size:12px;color:var(--ink2);white-space:nowrap;padding-top:2px}
.rg-imp.cut{color:var(--bad);font-weight:600}
.rg-inl{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;font-size:13px;color:var(--ink2)}
.rg-num{width:68px;min-height:32px;padding:0 8px;border:1px solid var(--ctrl-border);border-radius:8px;background:var(--surface);color:var(--ink);font:inherit;font-size:13px;text-align:center}
.rg-chips{display:flex;flex-wrap:wrap;gap:6px}
.rg-chip{padding:4px 10px;border:1.5px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink2);font:inherit;font-size:12.5px;cursor:pointer}
.rg-chip[aria-pressed="true"]{border-color:var(--brand);background:var(--brand-soft);color:var(--brand);font-weight:600}
.rg-chip:disabled,.rg-quick:disabled,.rg-num:disabled{cursor:not-allowed;opacity:.7}
.rg-quicks{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}
.rg-quick{padding:0;border:0;background:none;color:var(--brand);font:inherit;font-size:12.5px;font-weight:600;text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.rg-sim{padding:12px 14px;border-radius:12px;background:var(--head);font-size:13px}
.rg-sim-t{font-size:13.5px}
.rg-stats{display:flex;flex-wrap:wrap;gap:8px 22px;margin:8px 0 4px}
.rg-stats>div{display:flex;flex-direction:column;gap:1px}
.rg-k{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink2)}
.rg-v{font-family:var(--serif);font-size:20px;font-weight:600;font-variant-numeric:tabular-nums}
.rg-v.up{color:var(--good)} .rg-v.down{color:var(--bad)}
.rg-note{margin:4px 0 0;font-size:12px;color:var(--ink2)}
.rg-lock{margin:0;padding:12px 14px;border-radius:12px;background:var(--head);font-size:13px;color:var(--ink2)}
.rg-lock a{color:var(--brand);font-weight:600}
.rg-acts{display:flex;justify-content:flex-end;gap:8px;position:sticky;bottom:0;padding:10px 0 2px;background:var(--surface)}
.rg-trnote td{font-size:12px;color:var(--ink2);white-space:normal}
@media (max-width:560px){
  .rg-presets{grid-template-columns:minmax(0,1fr)}
  .rg-row{grid-template-columns:auto minmax(0,1fr)}
  .rg-imp{grid-column:2}
  .vset-btns{margin-left:0}
}
/* (19/10/2026) alertes values privées sur Discord (Réglages du Détecteur) */
.rg-dm{flex-basis:100%;margin-top:12px;padding:12px 14px;border-radius:12px;background:var(--head)}
.rg-dm-l{display:flex;align-items:flex-start;gap:12px}
.rg-dm-l label{display:flex;flex-direction:column;gap:2px;cursor:pointer}
.rg-dm-l small{color:var(--ink2);font-size:12.5px}
.rg-dm-l a{color:var(--brand);font-weight:600}
.rg-dm-l .sb-sw:disabled{opacity:.5;cursor:not-allowed}
.rg-dm-err{margin:8px 0 0;font-size:12.5px;color:var(--bad)}
/* (19/10/2026) fenêtre « Réglages » du Détecteur : 3 onglets (Values, Mes règles, Alertes) */
.vset-bar .vset-btn{margin-left:auto;gap:6px}
.vs-n{min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--brand);color:var(--brand-ink);font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}
.vset-chip.on{background:var(--brand-soft);color:var(--brand)}
.vset-chip.on b{color:var(--brand)}
.vs{display:flex;flex-direction:column;gap:12px}
.vs-tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:1;background:var(--surface)}
.vs-tabs button{display:inline-flex;align-items:center;gap:6px;padding:9px 12px;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;background:none;color:var(--ink2);font:inherit;font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap}
.vs-tabs button[aria-selected="true"]{color:var(--brand);border-bottom-color:var(--brand)}
.vs-tabs button:focus-visible{outline:2px solid var(--brand);outline-offset:-2px;border-radius:6px}
.vs-tag{font-style:normal;font-size:11px;font-weight:600;background:var(--brand-soft);color:var(--brand);border-radius:99px;padding:1px 7px}
.vs-panel{display:flex;flex-direction:column;gap:10px}
.vs-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px 14px}
.vs-field{display:flex;flex-direction:column;gap:4px}
.vs-l{font-size:13px;color:var(--ink2);font-weight:500}
.vs-field input{min-height:38px;padding:0 10px;border:1px solid var(--ctrl-border);border-radius:9px;background:var(--surface);color:var(--ink);font:inherit;font-size:14px;max-width:100%}
.vs-field small{color:var(--muted);font-size:11.5px}
.vs-panel .rg-lab{margin-top:4px}
.vs-check{margin:2px 0 0}
.vs .rg-dm{margin-top:0}
@media (max-width:560px){ .vs-tabs button{padding:9px 9px;font-size:13.5px} }
/* (19/10/2026) Prédicteur > Fiabilité : carte « Apprentissage automatique » */
.pml-list{display:flex;flex-direction:column;margin-top:6px}
.pml-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:2px 14px;padding:8px 0;border-top:1px solid var(--line-soft);font-size:13.5px}
.pml-row.off{opacity:.55}
.pml-d{font-variant-numeric:tabular-nums}
.pml-d small{color:var(--ink2);font-size:12px}
/* (19/10/2026, maquette validée par Nico) flèche de tendance du Détecteur (administrateurs) */
.vrow .vcote{display:flex;align-items:center;justify-content:flex-end;gap:5px;white-space:nowrap}
.vtrend{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:5px;font-size:10px;line-height:1;cursor:help;flex:none}
.vtrend.down{background:var(--brand-soft);color:var(--good)}
.vtrend.up{background:var(--warn-bg);color:var(--warn-ink)}
.vtrend:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.vtrend-tip{position:fixed;z-index:60;max-width:280px;padding:9px 12px;border-radius:9px;background:#14201e;color:#f3f1ea;font-size:13px;line-height:1.4;box-shadow:0 8px 24px rgba(0,0,0,.22);pointer-events:none}
.vtrend-tip b{color:#fff}
.vtrend-ic.down{color:#7fd88a}.vtrend-ic.up{color:#f1c36b}
.vtrend-sum{display:inline-block;margin-left:6px;padding:2px 10px;border-radius:999px;background:var(--head);color:var(--ink2);font-size:13px}
.vtrend-sum.off{color:var(--muted)}
.vtrend-note{margin-top:8px}
/* Mouvements Pinnacle : une ligne par bookmaker affiché, avec son délai habituel */
.pmv-anj{flex-direction:column;align-items:stretch;gap:6px}
.pmv-bkl{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}
.pmv-late{color:var(--ink2);font-size:12px}
/* bloc « Retards par bookmaker » */
.pmv-rt{margin:18px 0 0;padding:16px 18px;display:flex;flex-direction:column;gap:10px}
.pmv-rt-h{margin:0;font-size:19px}
.pmv-rt .sub{margin:0}
.pmv-rt-lg{flex-wrap:wrap;max-width:100%}
.pmv-rt-tab{border:1px solid var(--line-soft);border-radius:12px;overflow:hidden}
.pmv-rt-row{display:grid;grid-template-columns:minmax(140px,1.2fr) minmax(170px,1.4fr) 110px minmax(120px,1fr) 100px;gap:0 14px;align-items:center;padding:10px 16px;border-top:1px solid var(--line-soft);font-variant-numeric:tabular-nums}
.pmv-rt-row:first-child{border-top:0}
.pmv-rt-hd{font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:var(--head)}
.pmv-rt-hd > div:nth-child(n+3),.pmv-rt-med,.pmv-rt-nv,.pmv-rt-n{text-align:right}
.pmv-rt-b{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pmv-rt-h1{display:flex;align-items:center;gap:10px}
.pmv-rt-bar{display:block;flex:0 1 130px;height:6px;border-radius:3px;background:var(--line)}
.pmv-rt-bar i{display:block;height:100%;border-radius:3px;background:var(--brand)}
.pmv-rt-m{display:none}
@media (max-width:700px){
  .pmv-rt{padding:14px}
  .pmv-rt-hd{display:none}
  .pmv-rt-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"b med" "h1 nv";gap:4px 10px;padding:11px 14px}
  .pmv-rt-b{grid-area:b;font-size:16px}
  .pmv-rt-med{grid-area:med;font-size:16px}
  .pmv-rt-h1{grid-area:h1}
  .pmv-rt-nv{grid-area:nv}
  .pmv-rt-n,.pmv-rt-bar{display:none}
  .pmv-rt-h1,.pmv-rt-nv{color:var(--ink2);font-size:13px;gap:0}
  .pmv-rt-m{display:inline}
}
/* (19/10/2026) flèche de tendance sur les paris de la Sélection (administrateurs) */
.selc-odd{display:inline-flex;align-items:center;gap:6px}
.vtrend.flat{background:var(--head);color:var(--muted);font-size:14px}
/* (19/10/2026, maquette v2 validée par Nico) parcours d'arrivée : fenêtre sur la page, plein écran sur téléphone */
.acc-ov{position:fixed;inset:0;z-index:80;background:radial-gradient(120% 90% at 50% 0%,#17786d 0%,#0e5a52 55%,#0a4640 100%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:16px;overflow-y:auto}
.acc-brand{font-family:var(--serif);font-size:28px;font-weight:600;color:#fff;letter-spacing:-.01em}.acc-brand span{color:#a8e6dc}
.acc-seg button[disabled]{opacity:.45;cursor:not-allowed}
.acc-pro{margin-left:5px;font-size:10.5px;font-weight:700;letter-spacing:.04em;color:var(--gold-ink);background:var(--gold-soft);border-radius:999px;padding:1px 6px;vertical-align:1px}
.acc-sheet{background:var(--surface);color:var(--ink);border-radius:20px;width:100%;max-width:440px;max-height:calc(100vh - 100px);overflow-y:auto;padding:18px 20px 16px;display:flex;flex-direction:column;gap:10px;box-shadow:0 18px 48px rgba(0,0,0,.25)}
.acc-sheet h2{font-family:var(--serif);font-weight:500;font-size:27px;line-height:1.12;margin:2px 0 0;letter-spacing:-.01em}
.acc-sheet > p{margin:0;color:var(--ink2);font-size:14.5px;line-height:1.45}
.acc-sheet > p b{color:var(--ink)}
.acc-bar{display:flex;align-items:center;justify-content:space-between}
.acc-dots{display:flex;gap:6px}.acc-dots i{width:22px;height:5px;border-radius:3px;background:var(--line)}.acc-dots i.on{background:var(--brand)}
.acc-skip{border:0;background:none;color:var(--ink2);text-decoration:underline;text-underline-offset:3px;font:inherit;font-size:13.5px;cursor:pointer;padding:6px}
.acc-goal,.acc-opt{display:flex;gap:12px;align-items:flex-start;text-align:left;width:100%;border:1.5px solid var(--line);border-radius:14px;padding:12px;background:var(--surface);color:var(--ink);font:inherit;cursor:pointer}
.acc-goal.on{border-color:var(--brand);background:color-mix(in srgb,var(--brand-soft) 45%,var(--surface))}
.acc-goal:focus-visible,.acc-bk:focus-visible,.acc-tg:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.acc-ic{width:38px;height:38px;border-radius:10px;background:var(--brand-soft);display:grid;place-items:center;font-size:19px;flex:none}
.acc-gt{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.acc-gt b{font-size:15px}.acc-gt small{color:var(--ink2);font-size:12.8px;line-height:1.35}
.acc-ex{align-self:flex-start;margin-top:5px;font-size:12px;font-weight:600;color:var(--brand);background:var(--brand-soft);border-radius:999px;padding:3px 9px}
.acc-ck{width:20px;height:20px;border-radius:6px;border:1.5px solid var(--ctrl-border);flex:none;display:grid;place-items:center;font-size:12px;color:#fff}
.acc-goal.on .acc-ck{background:var(--brand);border-color:var(--brand)}
.acc-books{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.acc-bk{display:flex;align-items:center;gap:9px;border:1.5px solid var(--line);border-radius:12px;padding:10px 12px;font:inherit;font-weight:600;font-size:14.5px;background:var(--surface);color:var(--ink);cursor:pointer}
.acc-bk i{width:18px;height:18px;border-radius:5px;border:1.5px solid var(--ctrl-border);display:grid;place-items:center;font-style:normal;font-size:12px;color:#fff;flex:none}
.acc-bk.on{border-color:var(--brand);background:var(--brand-soft)}.acc-bk.on i{background:var(--brand);border-color:var(--brand)}
.acc-lab{font-size:13.5px!important;font-weight:600;color:var(--ink)!important;margin-top:4px!important}.acc-lab span{font-weight:400;color:var(--muted)}
.acc-fb{display:flex;align-items:center;gap:8px}
.acc-fb select{flex:1;min-width:0;font:inherit;font-size:14.5px;padding:9px 10px;border:1.5px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink)}
.acc-amt{display:inline-flex;align-items:center;border:1.5px solid var(--line);border-radius:10px;background:var(--surface);padding:0 10px}
.acc-amt input{width:64px;border:0;background:none;font:inherit;font-weight:600;font-size:15px;padding:9px 0;color:var(--ink)}
.acc-amt.wide{display:flex}.acc-amt.wide input{flex:1;width:auto}
.acc-amt i{font-style:normal;color:var(--muted)}
.acc-x{border:0;background:none;color:var(--muted);font-size:15px;cursor:pointer;padding:6px}
.acc-add{align-self:flex-start;border:0;background:none;color:var(--brand);font:inherit;font-weight:600;font-size:13.5px;cursor:pointer;padding:2px 0}
.acc-note,.acc-small{font-size:12.5px!important;color:var(--muted)!important}
.acc-note{background:var(--head);border-radius:10px;padding:8px 11px}
.acc-opt{cursor:default;align-items:center}
.acc-opt.col{flex-direction:column;align-items:stretch;gap:8px}
.acc-seg{display:flex}.acc-seg button{flex:1}
.acc-tg{width:42px;height:24px;border-radius:12px;background:var(--ctrl-border);border:0;position:relative;flex:none;cursor:pointer}
.acc-tg::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:left .15s}
.acc-tg.on{background:var(--brand)}.acc-tg.on::after{left:21px}
.acc-lnk{font-size:13px;font-weight:600;color:var(--brand);border:1.5px solid var(--brand);border-radius:999px;padding:5px 11px;white-space:nowrap;text-decoration:none}
.acc-acts{display:flex;gap:10px;margin-top:6px}
.acc-acts .abtn{flex:1;min-height:46px;font-size:15.5px;font-weight:700;justify-content:center}
.acc-acts .acc-back{flex:.55}
.acc-acts .abtn[disabled]{opacity:.45;cursor:not-allowed}
.acc-rg{font-size:11px!important;color:var(--muted)!important;text-align:center}
@media (max-width:520px){
  .acc-ov{justify-content:flex-start;padding:calc(14px + env(safe-area-inset-top,0px)) 12px calc(14px + env(safe-area-inset-bottom,0px));gap:10px}
  .acc-brand{font-size:24px}
  .acc-sheet{max-height:none;padding:16px 16px 14px}
}
@media (prefers-reduced-motion:reduce){.acc-tg::after{transition:none}}
/* (19/10/2026) optimiseur de freebets gratuit */
.fbo-quota{display:flex;align-items:center;gap:7px;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:7px 13px;font-size:13.5px}
.fbo-quota:empty{display:none}
.fbo-quota i{width:10px;height:10px;border-radius:50%;background:var(--line)}.fbo-quota i.on{background:var(--brand)}
.fbo-admin{margin:0 0 12px;font-size:13.5px;color:var(--warn-ink);background:var(--warn-bg);border-radius:10px;padding:8px 12px}
.fbo-grid{display:grid;grid-template-columns:minmax(260px,330px) minmax(0,1fr);gap:18px;align-items:start;margin-top:14px}
.fbo-form{display:flex;flex-direction:column;gap:14px;padding:16px}
.fbo-form .opf{display:flex;flex-direction:column;gap:6px}
.fbo-form select{font:inherit;font-size:15px;padding:9px 10px;border:1.5px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink)}
.fbo-chips{display:flex;flex-wrap:wrap;gap:6px}
.fbo-chip{border:1.5px solid var(--line);border-radius:999px;padding:6px 11px;font:inherit;font-size:13.5px;font-weight:600;background:var(--surface);color:var(--ink);cursor:pointer}
.fbo-chip.on{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}
.fbo-small{color:var(--muted);font-size:12.5px;line-height:1.35}
.fbo-go{flex-direction:column;min-height:52px;font-weight:700;justify-content:center}
.fbo-go small{font-weight:500;font-size:12px;opacity:.85}
.fbo-card{padding:16px;display:flex;flex-direction:column;gap:12px}
.fbo-top{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.fbo-big{font-family:var(--serif);font-size:46px;line-height:1;color:var(--brand);white-space:nowrap}
.fbo-sum{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.fbo-sum b{font-size:18px}.fbo-sum small{color:var(--ink2);font-size:13px}
.fbo-badge{font-size:12px;font-weight:700;background:var(--brand-soft);color:var(--brand);border-radius:999px;padding:4px 10px;white-space:nowrap}
.fbo-note{margin:0;font-size:13px;color:var(--ink2);line-height:1.45}
.fbo-pro{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:14px;border:1px solid var(--gold-line);background:linear-gradient(90deg,var(--gold-soft),var(--surface));border-radius:14px;padding:14px 16px}
.fbo-pro-big{font-family:var(--serif);font-size:36px;color:var(--gold-ink);line-height:1;white-space:nowrap}
.fbo-pro > div:nth-child(2){display:flex;flex-direction:column;gap:2px;flex:1;min-width:200px}
.fbo-pro small{color:var(--ink2);font-size:13px}
.fbo-quota-end{padding:18px}.fbo-quota-end h2{font-family:var(--serif);font-weight:500;margin:0 0 6px}
@media (max-width:900px){.fbo-grid{grid-template-columns:1fr}}
.fbo-form .opf[hidden]{display:none}
.acc-amt:focus-within{border-color:var(--brand)}
.acc-amt input:focus,.acc-amt input:focus-visible{outline:none;box-shadow:none;border:0}
/* (19/10/2026) page Membres : suppression de comptes (propriétaire du site) */
.mb-bulk{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 14px;padding:12px 16px;border-bottom:1px solid var(--line-soft);font-size:14px;color:var(--ink2)}
.abtn.mb-del{border-color:var(--bad);color:var(--bad)}
.mb-delx{border:1px solid var(--line);background:var(--surface);border-radius:8px;width:32px;height:32px;cursor:pointer;font-size:15px;line-height:1}
.mb-delx:hover{border-color:var(--bad);background:color-mix(in srgb,var(--bad) 10%,var(--surface))}
.mb-delx[disabled]{opacity:.4;cursor:default}
.acc-seg button{padding-inline:6px;min-width:0}
.acc-seg .acc-pro{display:block;margin:2px auto 0;width:max-content}
/* (19/10/2026) optimiseur gratuit : soldes freebet par bookmaker (logo, solde, ★ obligatoire), Pinnacle / Betfair grisés */
.fbo-bals{display:flex;flex-direction:column;gap:6px}
.fbo-bal{display:flex;align-items:stretch;border:1.5px solid var(--ctrl-border);border-radius:12px;background:var(--surface);overflow:hidden;min-height:44px;transition:background .15s,border-color .15s}
.fbo-bal button{border:0;background:transparent;color:inherit;font:inherit;cursor:pointer}
.fbo-bal-n{flex:1;min-width:0;display:flex;align-items:center;gap:8px;padding:0 10px;font-size:14px;font-weight:600;text-align:left;color:var(--ink)}
.fbo-ck{flex:none;display:inline-grid;place-items:center;width:18px;height:18px;border:1.5px solid var(--ctrl-border);border-radius:5px;font-style:normal;font-size:12px;font-weight:800;line-height:1;background:var(--surface)}
.fbo-bal .acc-amt{align-self:center;margin-right:6px;padding:0 8px;border-width:1px}
.fbo-bal .acc-amt input{width:58px;padding:6px 0;font-size:14px;text-align:right}
.fbo-bal-s{padding:0 12px;border-left:1px solid var(--line-soft)!important;font-size:15px;color:var(--ink2)}
/* (19/10/2026, demande de Nico) bookmaker coché = solde utilisé dans l'optimisation : vert ValueLab */
.fbo-bal.sel{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}
.fbo-bal.sel .fbo-bal-n{color:var(--brand-ink)}
.fbo-bal.sel .fbo-ck{background:var(--brand-ink);border-color:var(--brand-ink);color:var(--brand)}
.fbo-bal.sel .blogo{background:#fff;border-radius:4px;padding:2px 4px;height:22px}
.fbo-bal.sel .key{border-color:var(--brand-ink)!important}
.fbo-bal.sel .acc-amt{border-color:transparent}
.fbo-bal.sel .fbo-bal-s{color:var(--brand-ink);opacity:.7;border-left-color:color-mix(in srgb,var(--brand-ink) 30%,transparent)!important}
.fbo-bal.sel .fbo-bal-s:hover{opacity:1}
.fbo-bal.sel.must .fbo-bal-s{opacity:1;background:var(--gold);color:#1a1405}
.fbo-bal:not(.sel) .fbo-bal-n:hover .fbo-ck{border-color:var(--brand)}
.fbo-bal button:focus-visible{outline:2px solid var(--brand-ink);outline-offset:-3px}
.fbo-bal:not(.sel) button:focus-visible{outline-color:var(--brand)}
@media (prefers-reduced-motion:reduce){.fbo-bal{transition:none}}
.fbo-form .sb-tog{margin-top:6px;font-weight:600}
.fbo-chip.fbo-chip-pro{opacity:.55;cursor:not-allowed;display:inline-flex;align-items:center;gap:6px;border-style:dashed}
.fbo-chip-pro .acc-pro{margin:0}
.fbo-res-wrap{display:flex;flex-direction:column}
#fbo-res > .fbo-pro{margin:0 0 14px}
.fbo-rest{background:var(--brand-soft);border-radius:10px;padding:8px 12px;color:var(--ink)}
/* (19/10/2026) Défis : 📌 épingler une promotion en haut de la liste */
.df-pr{position:relative}
.df-pr .df-r1{padding-right:32px}
.df-pin{position:absolute;top:9px;right:9px;width:28px;height:28px;display:grid;place-items:center;border:1px solid transparent;border-radius:8px;background:transparent;font-size:14px;line-height:1;cursor:pointer;filter:grayscale(1);opacity:.35;transition:opacity .15s,filter .15s}
.df-pr:hover .df-pin,.df-pin:focus-visible{opacity:.8}
.df-pin:hover{background:var(--surface-2,color-mix(in srgb,var(--ink) 6%,transparent))}
.df-pin.on{filter:none;opacity:1;background:var(--gold-soft);border-color:var(--gold-line)}
.df-pin:focus-visible{outline:2px solid var(--brand);outline-offset:1px}
.df-pr.pinned:not(.on){border-color:var(--gold-line)}
@media (hover:none){.df-pin{opacity:.55}}
@media (prefers-reduced-motion:reduce){.df-pin{transition:none}}
/* (20/10/2026) fiche match : onglet ⚽ Buteurs (Premium) */
.sc-tab b{display:inline-flex;align-items:center;gap:6px}
.sc-prem{font-size:10px;font-weight:700;letter-spacing:.02em;color:var(--gold-ink);background:var(--gold-soft);border-radius:999px;padding:1px 7px}
.sc-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:6px 0 14px}
.sc-search{flex:1 1 220px;max-width:320px;min-width:0;border:1px solid var(--ctrl-border);border-radius:10px;padding:8px 12px;font:inherit;background:var(--surface);color:var(--ink)}
.sc-thr{display:inline-flex;align-items:center;gap:4px;font-size:13.5px;color:var(--ink2)}
.sc-thr-in{width:58px;border:1px solid var(--ctrl-border);border-radius:8px;padding:5px 6px;font:inherit;text-align:right;background:var(--surface);color:var(--ink)}
.sc-card{padding:0;overflow:hidden}
.sc-table{width:100%;border-collapse:collapse;font-size:13.5px}
.sc-table th{padding:9px 8px;font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--ink2);background:var(--head);text-align:center;white-space:nowrap}
.sc-table th:first-child,.sc-table td:first-child{text-align:left;padding-left:14px}
.sc-table th.sc-lh{color:#a1242f;background:color-mix(in srgb,#fde2e4 70%,var(--head))}
.sc-table td{padding:8px;border-top:1px solid var(--line-soft);text-align:center;white-space:nowrap}
.sc-table td.na{color:var(--muted)}
.sc-j b{display:block;white-space:normal}
.sc-j small{color:var(--muted);font-size:11.5px}
.sc-val{background:#fff1c2;color:#7a5400;font-weight:800;border-radius:6px;padding:2px 6px}
.sc-best b{font-weight:800}
.sc-bk{font-size:11px;font-weight:700;color:var(--ink2)}
.sc-ref{color:var(--ink2)}
.sc-gap{font-weight:700;color:var(--muted)}.sc-gap.pos{color:var(--ink2)}.sc-gap.up{color:#0b7a3b}
.sc-lay{background:#fde2e4;color:#a1242f;font-weight:700}
.sc-trj{font-weight:700}.sc-trj.ok{color:#0b7a3b}
.sc-leg{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12px;color:var(--ink2);margin:10px 2px 0}
.sc-k{display:inline-block;width:12px;height:12px;border-radius:3px;vertical-align:-2px;margin-right:5px}
.sc-k.val{background:#fff1c2}.sc-k.lay{background:#fde2e4}
.sc-note{font-size:12.5px;color:var(--ink2);line-height:1.45;margin:8px 2px 0;max-width:900px}
.sc-lock{padding:18px}
@media (prefers-color-scheme:dark){:root:where(:not([data-theme="light"])) .sc-val{background:#4a3a0e;color:#ffd977}:root:where(:not([data-theme="light"])) .sc-lay,:root:where(:not([data-theme="light"])) .sc-k.lay{background:#4a1f25;color:#ffb3bc}:root:where(:not([data-theme="light"])) .sc-k.val{background:#4a3a0e}}
:root[data-theme="dark"] .sc-val{background:#4a3a0e;color:#ffd977}
:root[data-theme="dark"] .sc-lay,:root[data-theme="dark"] .sc-k.lay{background:#4a1f25;color:#ffb3bc}
:root[data-theme="dark"] .sc-k.val{background:#4a3a0e}
/* téléphone : chaque joueur devient une petite carte (pas de défilement de côté) */
@media (max-width:760px){
  .sc-wrap{overflow:visible}
  .sc-table thead{display:none}
  .sc-table,.sc-table tbody{display:block}
  .sc-table tr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 10px;padding:12px 14px;border-top:1px solid var(--line-soft)}
  .sc-table td{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:0;border:0;text-align:left;white-space:normal}
  .sc-table td::before{content:attr(data-l);font-size:11px;color:var(--muted)}
  .sc-table td:first-child{grid-column:1/-1;padding-left:0}
  .sc-table td:first-child::before{content:none}
  .sc-thr{flex-wrap:wrap}
}
/* (20/10/2026, v2) page Matchs, onglet ⚽ Buteurs : une ligne par match */
.scl-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px}
.sc-bar2{margin-top:-6px}
.sc-th-bk{padding-top:6px;padding-bottom:6px}
.sc-bklogo .logo-tag{width:78px;height:24px;border-color:var(--line-soft)}
.sc-bklogo .logo-tag .blogo,.sc-bklogo .logo-tag .blogo[src]{height:30px}
.sc-bklogo .logo-tag .bxname{font-size:11.5px}
.sc-bklogo.sm{display:inline-block;vertical-align:middle;margin-left:4px}
.sc-bklogo.sm .logo-tag{width:58px;height:20px}
.sc-bklogo.sm .logo-tag .blogo,.sc-bklogo.sm .logo-tag .blogo[src]{height:24px}
.sc-bklogo.sm .logo-tag .bxname{font-size:10.5px}
.sc-prob{color:var(--ink2);font-weight:600}
tr.sc-dim td{color:var(--muted)}
tr.sc-dim .sc-j b,tr.sc-dim .sc-best b{color:var(--ink2);font-weight:600}
tr.sc-dim .sc-gap{color:var(--muted);font-weight:500}
.scl-list{padding:0;overflow:hidden}
.scl-row{display:grid;grid-template-columns:minmax(200px,1fr) minmax(300px,1.5fr) minmax(160px,.8fr) 28px;gap:8px 18px;align-items:center;width:100%;padding:12px 14px;border:0;border-top:1px solid var(--line-soft);background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.scl-row:first-child{border-top:0}
.scl-head{cursor:default;padding:9px 14px;font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--ink2);background:var(--head)}
.scl-head .ctr{text-align:center}
.scl-row:not(.scl-head):hover{background:color-mix(in srgb,var(--brand) 5%,var(--surface))}
.scl-row:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}
.scl-m b{display:block;font-size:15px}.scl-m small{display:block;color:var(--muted);font-size:11.5px}
/* 3 buteurs : grille à colonnes fixes (nom · cote · logo · %), centrée dans sa colonne */
.scl-top{display:grid;grid-template-columns:minmax(120px,200px) 44px 62px 40px;gap:4px 8px;align-items:center;justify-content:center;width:100%}
.scl-p{display:contents}
.scl-pn{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
.scl-pc{font-size:13.5px;text-align:right}
.scl-top .sc-bklogo.sm{margin:0;display:flex;justify-content:center}
.scl-top .sc-bklogo.sm .logo-tag{width:58px}
.scl-pp{color:var(--muted);font-size:11.5px;text-align:right}
.scl-bl{display:flex;flex-direction:column;gap:2px}
.scl-bl b{font-size:16px}.scl-bl small{color:var(--muted);font-size:11.5px}
.scl-none{color:var(--muted)}
.scl-go{color:var(--muted);font-size:18px;text-align:right}
@media (max-width:900px){
  .scl-head{display:none}
  .scl-row{grid-template-columns:minmax(0,1fr);gap:10px}
  .scl-top{justify-content:start}
  .scl-go{display:none}
  .scl-top::before,.scl-bl::before{font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
  .scl-top::before{content:"Buteurs les plus probables";grid-column:1/-1}.scl-bl::before{content:"TRJ Back/Lay"}
}
/* (20/10/2026) Buteurs : menu Options (bookmakers + ★) */
.sc-opts>summary{min-height:38px;padding:0 12px;font-size:14px}
.sc-bar .spacer{flex:1}
.scl-bar .spacer{flex:1}
/* (21/10/2026, demande de Nico) la barre Buteurs occupe toute la ligne : « Options » au bout a droite, comme sur le 1X2 */
.htool #scl-bar{flex:1 1 320px}
.scl-bar .sc-opts .opts-panel{right:0;left:auto}

/* ===== (21/10/2026) Value > Buteurs : modele apprenant (admins) ===== */
.vtabs.vmode .vm-scv[aria-selected="false"] .vm-ic{background:var(--brand-soft);color:var(--brand)}
.vtabs.vmode .vm-scv[aria-selected="true"]{border-color:var(--brand);background:var(--brand-soft);box-shadow:0 0 0 1px var(--brand) inset}
.vtabs.vmode .vm-scv[aria-selected="true"] .vm-ic{background:var(--brand);color:var(--brand-ink)}
.scv-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin:10px 0 4px}
.scv-head .scv-tabs{max-width:100%;overflow-x:auto}
.scv-stamp{color:var(--ink2);font-size:13px}
.scv-head .vset-chip{margin-left:auto}
.scv-bar{margin-top:12px}
.scv-table td{white-space:normal}
.scv-table .scv-m{min-width:180px}
.scv-table .scv-m .teams{display:block;font-weight:600}
.scv-table .scv-m small,.scv-pl small{display:block;color:var(--ink2);font-size:12px;white-space:nowrap}
.scv-pl{min-width:170px}
.scv-best{white-space:nowrap}
.scv-best b{margin-right:4px}
.scv-ref{white-space:nowrap}
.scv-ref-l{display:block;color:var(--muted);font-size:11.5px}
.scv-chk{display:block;margin-top:3px;font-size:11px}
tr.scv-val,tr.scv-val td{background:color-mix(in srgb,var(--good) 9%,var(--surface))}
.scv-matches{display:flex;flex-direction:column;gap:12px}
.scv-match{padding:0;overflow:hidden}
.scv-match>summary{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;padding:12px 16px;cursor:pointer;list-style:none}
.scv-match>summary::-webkit-details-marker{display:none}
.scv-match[open]>summary{border-bottom:1px solid var(--line-soft)}
.scv-mt .teams{font-weight:600}
.scv-mt small,.scv-lam small,.scv-n{color:var(--ink2);font-size:12.5px}
.scv-mt small{display:block}
.scv-lam{margin-left:auto}
.scv-match .sc-note{padding:8px 16px;margin:0}
.scv-kp{margin:12px 0 6px}
.scv-h3{font:600 16px var(--serif);margin:16px 0 8px}
.scv-how{margin:4px 0 0;padding-left:20px;color:var(--ink2);font-size:14px;line-height:1.5}
.scv-how li{margin:4px 0}
.scv-recent{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}
.scv-rc{padding:10px 12px;border:1px solid var(--line-soft);border-radius:10px}
.scv-rc-h b{font-weight:600}
.scv-rc-p{display:flex;flex-wrap:wrap;gap:4px 6px;margin:6px 0 4px}
.scv-rp{font-size:12px;padding:2px 8px;border-radius:999px;background:var(--sunk);color:var(--ink2)}
.scv-rp.hit{background:color-mix(in srgb,var(--good) 14%,var(--surface));color:var(--good);font-weight:600}
.scv-rc small{color:var(--muted);font-size:12px}
.scv-pos{color:var(--good)}.scv-neg{color:var(--bad)}
.scv-notes{margin:6px 0 0;padding-left:18px;color:var(--ink2);font-size:13px}
.scv-sec{margin-top:14px}
.sc-table th.scv-left,.sc-table td.scv-left{text-align:left}
.scv-table td.sc-gap,.scv-table td.num{white-space:nowrap}
@media (max-width:900px){
  .scv-head .vset-chip{margin-left:0}
  .scv-lam{margin-left:0;width:100%}
}

/* ===== (21/10/2026, demande de Nico) matchs favoris (page Matchs) ===== */
.fav-btn{display:inline-grid;place-items:center;width:26px;height:26px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--muted);font-size:17px;line-height:1;cursor:pointer;transition:color .15s,background .15s}
.fav-btn:hover{background:var(--sunk);color:var(--gold-ink)}
.fav-btn.on{color:var(--gold)}
.fav-btn:focus-visible{outline:2px solid var(--brand);outline-offset:1px}
.fr-teams{position:relative;padding-left:28px}
.fr-teams .fav-btn{position:absolute;left:-2px;top:50%;transform:translateY(-50%)}
.mbar .fav-btn{margin-right:-4px}
.scl-m .fav-btn{float:left;margin:1px 6px 0 -4px}
.fav-filter{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 12px;border:1px solid var(--ctrl-border);border-radius:999px;background:var(--surface);color:var(--ink);font:inherit;font-size:13.5px;font-weight:600;cursor:pointer}
.fav-filter i{font-style:normal;font-weight:500;color:var(--muted)}
.fav-filter.on{border-color:var(--gold);background:var(--gold-soft);color:var(--gold-ink)}
.fav-filter.on i{color:var(--gold-ink)}
.fav-filter:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
/* page Membres : optimiseur freebet */
.mb-fbo b{font-weight:600}
/* Value > Buteurs : onglet Matchs lisible, Rapprochement */
.scv-lamtxt{margin:0;padding:10px 16px 4px;color:var(--ink2);font-size:13.5px}
.scv-lamtxt b{color:var(--ink);font-weight:600}
.scv-lamtxt small{color:var(--muted)}
.scv-n .pmv-tag{margin-left:8px}
.scv-empty{padding:0}
.scv-empty>summary{padding:12px 16px;cursor:pointer;color:var(--ink2);font-size:13.5px}
.scv-empty .scv-notes{padding:0 16px 12px 34px}
.scv-badge{display:inline-block;min-width:18px;margin-left:6px;padding:1px 6px;border-radius:999px;background:#d92d20;color:#fff;font-style:normal;font-size:11px;font-weight:700;text-align:center}
.scv-allist{display:flex;flex-direction:column;gap:10px}
.scv-alrow{display:grid;grid-template-columns:minmax(200px,1fr) minmax(240px,1.3fr) auto;gap:8px 14px;align-items:center;padding:10px 12px;border:1px solid var(--line-soft);border-radius:10px}
.scv-alhint{display:block;margin-top:4px;color:var(--ink2);font-size:12px;line-height:1.35}
.scv-alb{display:flex;gap:6px;align-items:center}
.scv-alig.on{border-color:var(--gold);background:var(--gold-soft);color:var(--gold-ink)}
.scv-aln small{display:block;color:var(--muted);font-size:12px}
.scv-alc{display:flex;flex-direction:column;gap:6px;min-width:0}
.scv-alsel,.scv-alin{width:100%;min-height:36px;padding:6px 10px;border:1px solid var(--ctrl-border);border-radius:8px;background:var(--surface);color:var(--ink);font:inherit;font-size:13.5px}
.scv-almsg{padding:8px 12px;border-radius:8px;background:var(--brand-soft);color:var(--ink)}
@media (max-width:900px){
  .scv-alrow{grid-template-columns:1fr}
}
.mb-th-fbo{line-height:1.2}
.mb-fbo{display:inline-block;line-height:1.2}.mb-fbo b{font-size:15px}.mb-fbo .mb-src{white-space:nowrap}
.scv-match>summary{display:grid;grid-template-columns:minmax(200px,1fr) auto 18px;align-items:center}
.scv-match>summary .scv-n{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;justify-content:flex-end;text-align:right}
.scv-bestv{color:var(--ink)}
.scv-chev{color:var(--muted);text-align:right}
.scv-match[open] .scv-chev{transform:rotate(180deg);display:inline-block}
.scv-match.has-val>summary{background:color-mix(in srgb,var(--good) 7%,var(--surface))}
.scv-ut{color:var(--muted)}
.scv-alo{color:var(--ink2);font-size:13px}
@media (max-width:900px){.scv-match>summary{grid-template-columns:1fr 18px}.scv-match>summary .scv-n{grid-column:1/-1;justify-content:flex-start;text-align:left}}

/* ===== (21/10/2026, maquette validee par Nico) bande « optimisations de freebets offertes » (Matchs, Value, Boosts) ===== */
#fbo-band:empty{display:none}
.fbb{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:10px 0 14px;padding:9px 14px;border-radius:12px;background:var(--gold-soft);border:1px solid var(--gold-line);font-size:14px;color:var(--ink)}
.fbb-ic{font-size:16px}
.fbb-t b{font-weight:700}
.fbb-cnt{display:inline-flex;gap:4px;vertical-align:middle;margin-left:4px}
.fbb-cnt i{display:inline-block;width:13px;height:13px;border-radius:50%;background:var(--gold);border:1.5px solid var(--gold-ink)}
.fbb-cnt i.off{background:transparent}
.fbb-go{color:var(--brand);font-weight:700;text-decoration:none;white-space:nowrap}
.fbb-go:hover{text-decoration:underline}
.fbb-x{margin-left:auto;border:0;background:none;color:var(--muted);font:inherit;font-size:16px;cursor:pointer;padding:2px 6px;border-radius:6px}
.fbb-x:hover{background:var(--sunk);color:var(--ink)}
@media (max-width:640px){.fbb{gap:6px 10px;font-size:13.5px}.fbb-go{white-space:normal}}

/* ===== (22/10/2026) Middles : simulateur de mise ===== */
.md-sim{margin:0 0 14px}
.md-sim .sub{margin:2px 0 10px;font-size:13.5px}
.md-sim-bar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 16px;margin:0 0 12px}
.md-sim-bar .abtn{min-height:40px}
.md-sim-t td small{display:block;color:var(--muted);font-size:12px}
.md-sim-t td,.md-sim-t th{white-space:nowrap}
.md-sim-verdict{margin:12px 0 6px;padding:10px 14px;border-radius:10px;background:var(--brand-soft);font-size:14px;line-height:1.5}

/* ===== (24/10/2026) bandeau d'information temporaire (maintenance, incident) ===== */
.site-notice{display:flex;align-items:center;gap:12px;max-width:1280px;margin:12px auto 0;padding:10px 16px;border-radius:12px;background:var(--gold-soft);border:1px solid var(--gold-line);color:var(--ink);font-size:14px;line-height:1.4;box-sizing:border-box;width:calc(100% - 64px)}
.site-notice-ic{flex:none;font-size:17px}
.site-notice-t{flex:1;min-width:0}
.site-notice-t b{font-weight:700}
.site-notice-x{flex:none;border:0;background:none;color:var(--muted);font:inherit;font-size:16px;cursor:pointer;padding:2px 6px;border-radius:6px}
.site-notice-x:hover{background:var(--sunk);color:var(--ink)}
@media (max-width:640px){.site-notice{width:calc(100% - 32px);font-size:13.5px;align-items:flex-start}}

/* ---- COMBAT (26/10/2026) : MMA et boxe (Premium), mêmes lignes que le basket ; marché « Méthode » en grille ---- */
.fr-row.cb-mvrow{grid-template-columns:84px minmax(150px,1.1fr) minmax(0,3fr) 18px}
.cb-mvw{display:flex;flex-direction:column;gap:8px;min-width:0}
.cb-mvg{display:grid;gap:6px 8px;align-items:center;min-width:0}
.cb-mvh{font-size:11.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink2);text-align:center}
.cb-mvn{font-weight:600;font-size:13.5px;overflow-wrap:anywhere}
.cb-mvx{display:grid;grid-template-columns:minmax(70px,auto) minmax(0,1fr);gap:8px;align-items:center;max-width:360px}
.cb-mvg .tn-best,.cb-mvx .tn-best{min-width:0}
.cb-mvg .tn-best .logo-tag,.cb-mvx .tn-best .logo-tag{width:88px;height:24px}
.cb-mvg .tn-best .logo-tag .blogo,.cb-mvg .tn-best .logo-tag .blogo[src],.cb-mvx .tn-best .logo-tag .blogo,.cb-mvx .tn-best .logo-tag .blogo[src]{height:33px}
.cb-mvt{width:100%;border-collapse:collapse;font-size:14px}
.cb-mvt th{text-align:left;font-size:11.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink2);padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
.cb-mvt td{padding:8px 10px;border-bottom:1px solid var(--line-soft);white-space:nowrap}
.cb-mvt .r{text-align:right}
.cb-mvt td.best{color:var(--good);font-weight:700}
.cb-mvt tr.stale td{color:var(--muted)}
.cb-mvt .bk{display:inline-flex;align-items:center;gap:8px}
@media (min-width:901px){
  .cb-tabs{flex-wrap:wrap}
}
@media (max-width:900px){
  .fr-row.cb-mvrow{grid-template-columns:minmax(0,1fr);grid-template-areas:"time" "tm" "mv"}
  .fr-row.cb-mvrow>.cb-mvw{grid-area:mv}
  .cb-mvg .tn-best,.cb-mvx .tn-best{flex-direction:column;align-items:flex-start;gap:2px;padding:4px 6px}
  .cb-mvg .tn-best .logo-tag,.cb-mvx .tn-best .logo-tag{width:72px;height:20px}
  .cb-mvg .tn-best .logo-tag .blogo,.cb-mvg .tn-best .logo-tag .blogo[src],.cb-mvx .tn-best .logo-tag .blogo,.cb-mvx .tn-best .logo-tag .blogo[src]{height:27px}
  .cb-mvh{font-size:10.5px;letter-spacing:.02em}
}
@media (max-width:600px){
  .cb-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}
}
/* (26/10/2026) 4 sports dans le choix du sport (Combat en plus) : sur téléphone, 2 × 2 au lieu de déborder */
@media (max-width:520px){
  .sport-seg{max-width:100%;min-width:0}
  .sport-seg .seg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
  .sport-seg .seg button{white-space:nowrap}
}
/* (27/10/2026) page Robots : sous-onglets + « Sources des cotes » (maquette validée par Nico) */
.rbt-sub2{display:flex;gap:18px;border-bottom:1px solid var(--line);margin:0 0 14px;overflow-x:auto}
.rbt-sub2 a{padding:8px 2px;color:var(--ink2);font-weight:600;font-size:14.5px;text-decoration:none;white-space:nowrap}
.rbt-sub2 a[aria-current="page"]{color:var(--brand);box-shadow:inset 0 -2px 0 var(--brand)}
.src-step{margin:0 0 12px;padding:9px 12px;border:1px solid var(--line);border-radius:12px;background:var(--brand-soft);color:var(--ink);font-size:13.5px}
.src-gg{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin:0 0 12px}
.src-g{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px 14px;min-width:0}
.src-gh{display:flex;justify-content:space-between;gap:10px;font-size:14px}.src-gh span{color:var(--ink2);font-size:12.5px;font-variant-numeric:tabular-nums}
.src-m{position:relative;display:block;height:8px;border-radius:6px;background:var(--line-soft);margin:8px 0 6px}
.src-m s{display:block;height:100%;border-radius:6px;background:var(--brand)}
.src-m.warm s{background:#d98a00}.src-m.hot s{background:var(--bad)}
.src-m u{position:absolute;top:-4px;bottom:-4px;width:2px;margin-left:-1px;background:var(--ink);border-radius:1px}
.src-g p{margin:0;font-size:13px;color:var(--ink2);font-variant-numeric:tabular-nums}.src-g p b{color:var(--ink)}
.src-pre{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 12px;font-size:13.5px;color:var(--ink2)}
.src-pre button{padding:5px 11px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);font:inherit;font-weight:600;font-size:13px;cursor:pointer}
.src-pre button:hover{background:var(--head)}
.src-sp{background:var(--surface);border:1px solid var(--line);border-radius:14px;margin:0 0 12px;overflow:hidden}
.src-sp header{display:flex;justify-content:space-between;align-items:center;gap:10px 14px;flex-wrap:wrap;padding:10px 14px;background:var(--head);border-bottom:1px solid var(--line)}
.src-spn{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}.src-spn b{font-size:15.5px}.src-spn small{color:var(--muted);font-size:12.5px;font-variant-numeric:tabular-nums}
.src-ico{font-size:17px}
.src-prem{padding:1px 8px;border-radius:999px;background:var(--gold-soft);color:var(--gold-ink);border:1px solid var(--gold-line);font-size:11.5px;font-weight:700}
.src-new{padding:1px 8px;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-size:11.5px;font-weight:700}
.src-spc{display:flex;gap:8px 14px;align-items:center;flex-wrap:wrap;font-size:12.5px;color:var(--ink2)}
.src-lab{display:inline-flex;align-items:center;gap:6px}
.src-lab select{font:inherit;font-weight:600;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:3px 6px}
.src-seg{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--surface)}
.src-seg button{padding:3px 10px;border:0;background:none;font:inherit;font-size:12.5px;font-weight:600;color:var(--ink2);cursor:pointer}
.src-seg button+button{border-left:1px solid var(--line)}
.src-seg button.cur.on{background:var(--good);color:#fff}.src-seg button.cur.test{background:var(--warn-bg);color:var(--warn-ink)}.src-seg button.cur.off{background:var(--head);color:var(--ink)}
.src-tb{width:100%;border-collapse:collapse;font-size:13.5px;table-layout:fixed}
.src-tb th{text-align:left;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:7px 12px;border-bottom:1px solid var(--line)}
.src-tb th:nth-child(1){width:28%}.src-tb th:nth-child(2),.src-tb th:nth-child(3){width:60px}.src-tb th:nth-child(5){width:26%}
.src-tb td{padding:8px 12px;border-bottom:1px solid var(--line-soft);vertical-align:middle;overflow-wrap:anywhere}
.src-tb tr:last-child td{border-bottom:0}
.src-tb .c{text-align:center}.src-tb .mu{color:var(--ink2);font-size:12.8px}
.src-tb tr.chg td{background:var(--gold-soft)}
.src-ck{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border-radius:6px;border:1.5px solid var(--ctrl-border);background:var(--surface);color:#fff;font:700 13px/1 var(--sans);cursor:pointer;vertical-align:middle}
.src-ck.on{background:var(--brand);border-color:var(--brand)}
.src-ck.na{border-style:dashed;color:var(--muted);background:var(--head);cursor:default}
.src-ck:focus-visible,.src-seg button:focus-visible{outline:2px solid var(--edge);outline-offset:2px}
.src-leg{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:10px 0 0;font-size:12.5px;color:var(--ink2)}
.src-leg .src-ck{width:18px;height:18px;font-size:11px;cursor:default}
.src-chg{display:inline-block;width:14px;height:14px;background:var(--gold-soft);border:1px solid var(--gold-line);border-radius:3px}
.src-note{margin:8px 0 12px;font-size:12.5px;color:var(--muted);max-width:90ch}
.src-hist p{margin:0 0 6px;font-size:13px;color:var(--ink2)}.src-hist p b{color:var(--ink)}
.src-bar{position:static;z-index:5;display:flex;justify-content:space-between;align-items:center;gap:10px 14px;flex-wrap:wrap;padding:12px 14px;margin-top:14px;background:var(--surface);border:1px solid var(--line);border-radius:14px}
.src-bar.on{position:sticky;bottom:10px;border-color:var(--gold-line);box-shadow:0 6px 18px rgba(19,32,30,.12)}
.src-bar p{margin:0;font-size:13.5px}.src-bar p small{display:block;color:var(--ink2);font-size:12.5px;font-variant-numeric:tabular-nums}
.src-btns{display:flex;gap:8px}
.src-btns button{min-height:36px;padding:0 14px;border-radius:10px;font:inherit;font-weight:700;font-size:13.5px;cursor:pointer;border:1px solid var(--ctrl-border);background:var(--surface);color:var(--ink)}
.src-btns .btn-pri{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}
.src-btns button:disabled{opacity:.5;cursor:default}
@media (max-width:700px){
  .src-gg{grid-template-columns:1fr}
  .src-tb thead{display:none}
  .src-tb,.src-tb tbody{display:block}
  .src-tb tr{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:4px 10px;align-items:center;padding:9px 12px;border-bottom:1px solid var(--line-soft)}
  .src-tb tr:last-child{border-bottom:0}
  .src-tb td{padding:0;border:0}
  .src-tb td.c{display:flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;color:var(--muted)}
  .src-tb td.c::before{content:attr(data-l)}
  .src-tb td.src-bk{display:none}
  .src-tb td.src-rd{grid-column:1/-1;font-size:12px;color:var(--muted)}
}
.src-over{color:var(--bad);font-weight:600}
.src-detail{margin:0 0 12px}
.src-dh{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 10px}
.src-dh h3{margin:0}.src-dh .rbt-more{margin:0}
.rbt-notes{margin:10px 0 14px}.rbt-notes .warn{color:var(--warn-ink)}

/* (28/10/2026) encart « Sois prévenu de chaque CB 10 € » (page Boosts) : bouton Activer + croix */
.dcta-push .dcta-txt{flex:1}
.dcta-btn{flex-shrink:0;white-space:nowrap}
.dcta-x{flex-shrink:0;border:0;background:none;color:var(--ink2);font-size:15px;line-height:1;padding:6px;cursor:pointer;border-radius:8px}
.dcta-x:hover{background:color-mix(in srgb,var(--ink) 8%,transparent)}
.dcta-x:focus-visible{outline:2px solid var(--brand);outline-offset:1px}
@media (max-width:560px){.dcta-push{flex-wrap:wrap}.dcta-push .dcta-txt{flex:1 1 calc(100% - 90px)}.dcta-push .dcta-btn{margin-left:46px}}

/* (28/10/2026) page « Promos & Défis » verrouillée : carte dorée de la même largeur que celle des Surebets */
.pd-lock{max-width:660px;margin-top:14px}

/* (28/10/2026, choix de Nico : version A « vitrine ») page fermée d'un plan Pro ou Premium (planLockCard) */
.pl-vitrine{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);overflow:hidden;border-color:var(--gold-line);max-width:1000px;padding:0}
.pl-main{padding:30px 32px;display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.pl-medal{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f6e7b0,#d9b13e);color:#5a420a;box-shadow:inset 0 -2px 0 rgba(0,0,0,.08)}
.pl-tag{margin:2px 0 0;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--gold-ink)}
.pl-main h2{margin:0;font-family:var(--serif);font-size:28px;font-weight:500;line-height:1.2;text-wrap:balance}
.pl-lead{margin:0;color:var(--ink2);font-size:14.5px;line-height:1.5}
.pl-ticks,.pl-inc{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.pl-ticks li,.pl-inc li{display:flex;gap:10px;align-items:flex-start;color:var(--ink2);font-size:14.5px;line-height:1.45}
.pl-tick{flex-shrink:0;margin-top:1px;color:var(--brand)}
.pl-cta{margin-top:6px}
.abtn.pl-btn{padding:11px 20px;border-radius:11px;font-size:15px}
.pl-side{padding:28px;display:flex;flex-direction:column;justify-content:center;gap:12px;background:linear-gradient(160deg,var(--gold-soft),color-mix(in srgb,var(--gold-soft) 70%,var(--gold-line)));border-left:1px solid var(--gold-line)}
.pl-eyebrow{margin:0;font-size:12.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--gold-ink)}
.pl-big{margin:0;font-family:var(--serif);font-size:56px;line-height:1;color:var(--gold-ink)}
.pl-big-l{margin:0;color:var(--gold-ink);font-weight:600}
.pl-mini{display:flex;justify-content:space-between;gap:12px;padding:10px 14px;border-radius:12px;font-size:14px;background:color-mix(in srgb,var(--surface) 70%,transparent);border:1px solid var(--gold-line)}
.pl-mini b{color:var(--gold-ink)}
.pl-inc li{color:var(--ink)}
.pl-inc .pl-tick{color:var(--gold-ink)}
@media (max-width:760px){
  .pl-vitrine{grid-template-columns:minmax(0,1fr)}
  .pl-main{padding:22px 20px}
  .pl-main h2{font-size:24px}
  .pl-side{padding:20px;border-left:0;border-top:1px solid var(--gold-line)}
  .pl-big{font-size:44px}
}
.head-row + .pl-vitrine{margin-top:14px}

/* (28/10/2026) « Vérifier ce surebet » : état sous le TRJ, bouton du calculateur, résultat avant / maintenant */
.sb-c-trj{display:flex;flex-direction:column;align-items:flex-start;gap:5px}
.sb-p-trj{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0}
.sbv-chip{display:inline-block;font-size:11.5px;font-weight:600;line-height:1.3;padding:2px 8px;border-radius:999px;background:var(--head);color:var(--muted);white-space:nowrap}
.sbv-chip.ok{background:color-mix(in srgb,var(--good) 13%,var(--surface));color:var(--good)}
.sbv-chip.busy{background:var(--gold-soft);color:var(--gold-ink)}
.sbv-chip.gone{background:var(--head);color:var(--muted)}
.sb-row.sbv-gone{opacity:.55;filter:grayscale(1)}
.sb-row.sbv-gone .sb-trj{text-decoration:line-through}
.sbv{display:flex;flex-direction:column;gap:8px;margin:14px 0 4px}
.abtn.sbv-btn{justify-content:center;width:100%;min-height:44px;font-weight:700}
.sbv-hint{margin:0;font-size:12.5px;color:var(--muted)}
.sbv-err{margin:0;font-size:13px;color:var(--bad)}
.sbv-res{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--surface)}
.sbv-ban{margin:0 0 8px;padding:8px 12px;border-radius:10px;font-weight:700;font-size:13.5px}
.sbv-ban.ok{background:color-mix(in srgb,var(--good) 12%,var(--surface));color:var(--good)}
.sbv-ban.gone{background:color-mix(in srgb,var(--bad) 10%,var(--surface));color:var(--bad)}
.sbv-tbl{width:100%;border-collapse:collapse;font-size:13px}
.sbv-tbl th,.sbv-tbl td{padding:6px 4px;border-bottom:1px solid var(--line-soft);text-align:left}
.sbv-tbl th{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.sbv-tbl .r{text-align:right}
.sbv-tbl td.dn,.sbv-tbl td.gone{color:var(--bad);font-weight:700}
.sbv-tbl td.up{color:var(--good);font-weight:700}

/* (28/10/2026) promos « Nouveau » (depuis la dernière visite) : étiquette, carte soulignée, groupe en haut de page */
.pr-new{display:inline-flex;align-items:center;font-size:11.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:3px 9px;border-radius:999px;background:var(--bad);color:#fff}
.pr-card.new{border-color:color-mix(in srgb,var(--bad) 45%,var(--line));box-shadow:inset 4px 0 0 var(--bad)}
.pr-grp-new h2{color:var(--bad)}
.pr-seen{margin-left:auto;border:1px solid var(--line);background:var(--surface);color:var(--ink2);font:inherit;font-size:13px;font-weight:600;padding:6px 12px;border-radius:9px;cursor:pointer}
.pr-seen:hover{background:var(--head)}
.prl-new{margin-right:8px;font-size:10.5px;padding:2px 7px;vertical-align:1px}
