/* ============================================================
   Pronos IA — app.css
   « Neural Command Center » : void noir + énergie IA violet→cyan,
   signaux pari vert/rouge réservés aux barres de prédiction.
   Mobile-first 360–430px, 60fps, reduced-motion respecté.
   ============================================================ */

:root{
  /* Fond / surfaces */
  --void:#0A0A0F;
  --void-2:#0E0E16;
  --surface:rgba(255,255,255,.04);
  --surface-2:rgba(255,255,255,.07);
  --stroke:rgba(255,255,255,.10);
  --stroke-strong:rgba(255,255,255,.18);

  /* Énergie IA (signature) */
  --ia-violet:#7C3AED;
  --ia-cyan:#06B6D4;
  --ia-glow:rgba(124,58,237,.55);

  /* Signaux pari (réservés aux barres / verdicts) */
  --win:#00FF88;
  --loss:#FF3366;
  --even:#FFB800;

  /* Texte */
  --text:#EDEDF5;
  --dim:#9A9AB0;
  --faint:#62627A;

  --radius:20px;
  --radius-sm:14px;
  --nav-h:68px;

  --ease:cubic-bezier(.22,1,.36,1);
}

/* ============================================================
   ============================================================ */
/* Le brain log et la feuille auth restent volontairement sombres (effet console / contraste) */
/* Renforcement lisibilité thème clair */
/* Renforcement supplémentaire visibilité thème clair */

/* Renforcement contraste thème clair sur composants à couleur codée en dur */

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0}
body{
  background:var(--void);
  color:var(--text);
  font-family:'Inter',system-ui,sans-serif;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  /* Halo d'ambiance IA en haut */
  background-image:
    radial-gradient(900px circle at 50% -8%, rgba(124,58,237,.18), transparent 55%),
    radial-gradient(700px circle at 88% 6%, rgba(6,182,212,.10), transparent 50%);
  background-attachment:fixed;
}
.mono{font-family:'JetBrains Mono',monospace}

/* ---------------- App shell ---------------- */
.app{max-width:480px;margin:0 auto;min-height:100vh;position:relative}
.view{display:none;padding:14px 16px calc(var(--nav-h) + 28px)}
.view.active{display:block;animation:viewIn .5s var(--ease)}
@keyframes viewIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* ---------------- Top bar ---------------- */
.topbar{
  position:sticky;top:0;z-index:40;
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 16px 10px;
  background:linear-gradient(180deg, rgba(10,10,15,.92), rgba(10,10,15,.55) 70%, transparent);
  backdrop-filter:blur(8px);
}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:-.02em}
.brand .spark{
  width:30px;height:30px;border-radius:9px;flex-shrink:0;
  background:conic-gradient(from 180deg, var(--ia-violet), var(--ia-cyan), var(--ia-violet));
  box-shadow:0 0 18px var(--ia-glow);
  position:relative;
}
.brand .spark::after{
  content:"";position:absolute;inset:5px;border-radius:6px;background:var(--void);
}
.brand small{display:block;font-size:.62rem;font-weight:600;color:var(--dim);letter-spacing:.18em;text-transform:uppercase}
.brand b{font-size:1.02rem;line-height:1}
.topbar .winrate{
  text-align:right;font-family:'JetBrains Mono',monospace;
}
.topbar .winrate .v{font-size:1.05rem;font-weight:700;color:var(--win)}
.topbar .winrate small{display:block;font-size:.58rem;color:var(--faint);letter-spacing:.12em;text-transform:uppercase}

/* ============================================================
   IA CORE — la signature
   ============================================================ */
.ia-core{
  position:relative;
  margin:6px auto 18px;
  width:min(340px,86vw);
  aspect-ratio:1;
  display:grid;place-items:center;
}
/* Anneau orbital des derniers pronos (SVG injecté en JS) */
.ia-orbit{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.ia-orbit .seg{transition:stroke .4s, opacity .4s}

/* Halo pulsant derrière le robot */
.ia-aura{
  position:absolute;width:62%;aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle, var(--ia-glow), transparent 68%);
  filter:blur(6px);
  animation:auraPulse 3.4s var(--ease) infinite;
}
@keyframes auraPulse{0%,100%{transform:scale(.92);opacity:.55}50%{transform:scale(1.06);opacity:.9}}

/* Battement de cœur réaliste pour l'Oracle du profil (double pulsation) */
@keyframes heartBeat{
  0%   {transform:scale(1)}
  14%  {transform:scale(1.18)}
  28%  {transform:scale(1)}
  42%  {transform:scale(1.12)}
  56%  {transform:scale(1)}
  100% {transform:scale(1)}
}
@keyframes heartGlow{
  0%,100%{opacity:.5;transform:scale(.9)}
  14%{opacity:1;transform:scale(1.15)}
  42%{opacity:.85;transform:scale(1.05)}
}
#view-profile .ia-core{animation:heartBeat 1.6s ease-in-out infinite}
#view-profile .ia-aura{
  animation:heartGlow 1.6s ease-in-out infinite;
  width:90%;
  background:radial-gradient(circle, rgba(255,60,90,.55), rgba(124,58,237,.3) 50%, transparent 70%);
  filter:blur(10px);
}

/* Avatar (Lottie ou fallback SVG) */
.ia-avatar{
  position:relative;z-index:2;width:54%;aspect-ratio:1;
  display:grid;place-items:center;
}
.ia-avatar svg{width:100%;height:100%;overflow:visible}

/* Badge niveau */
.ia-badge{
  position:absolute;z-index:3;bottom:8%;left:50%;transform:translateX(-50%);
  display:flex;align-items:center;gap:8px;white-space:nowrap;
  padding:7px 14px;border-radius:999px;
  background:rgba(14,14,22,.82);border:1px solid var(--stroke-strong);
  backdrop-filter:blur(10px);box-shadow:0 8px 30px rgba(0,0,0,.5);
}
.ia-badge .lvl{
  font-family:'JetBrains Mono',monospace;font-weight:700;font-size:.82rem;
  background:linear-gradient(90deg,var(--ia-violet),var(--ia-cyan));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.ia-badge .title{font-size:.7rem;color:var(--dim);font-weight:600}

/* Barre XP sous le core */
.ia-xp{width:min(300px,80vw);margin:0 auto 6px}
.ia-xp .bar{height:7px;border-radius:99px;background:var(--surface-2);overflow:hidden;border:1px solid var(--stroke)}
.ia-xp .fill{height:100%;width:0;border-radius:99px;
  background:linear-gradient(90deg,var(--ia-violet),var(--ia-cyan));
  box-shadow:0 0 12px var(--ia-glow);transition:width 1s var(--ease)}
.ia-xp .meta{display:flex;justify-content:space-between;margin-top:6px;
  font-family:'JetBrains Mono',monospace;font-size:.64rem;color:var(--faint)}

/* Phrase de l'IA */
.ia-say{text-align:center;min-height:1.3em;margin:8px 16px 4px;color:var(--dim);
  font-size:.86rem;font-style:italic}
.ia-say b{color:var(--text);font-style:normal}

/* ---------------- Brain Log console ---------------- */
.brain{
  margin:14px 0 4px;border-radius:var(--radius-sm);overflow:hidden;
  border:1px solid rgba(6,182,212,.22);
  background:linear-gradient(180deg, rgba(2,10,12,.9), rgba(2,6,10,.96));
}
.brain-head{display:flex;align-items:center;gap:8px;padding:9px 12px;
  border-bottom:1px solid rgba(6,182,212,.16);font-family:'JetBrains Mono',monospace;
  font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ia-cyan)}
.brain-head .dot{width:8px;height:8px;border-radius:50%;background:var(--ia-cyan);
  box-shadow:0 0 8px var(--ia-cyan);animation:blink 1.4s infinite}
@keyframes blink{50%{opacity:.25}}
.brain-body{height:120px;overflow-y:auto;padding:10px 12px;
  font-family:'JetBrains Mono',monospace;font-size:.72rem;line-height:1.55;color:#7CFFCB}
.brain-body::-webkit-scrollbar{width:0}
.brain-line{opacity:0;animation:typeIn .35s var(--ease) forwards;display:flex;gap:8px}
.brain-line .t{color:#1f6b4a;flex-shrink:0}
.brain-line.is-think .m{color:#67E8F9}
.brain-line.is-scan  .m{color:var(--even)}
.brain-line.is-result .m{color:var(--win);font-weight:600}
.brain-line.is-error .m{color:var(--loss)}
@keyframes typeIn{from{opacity:0;transform:translateX(-6px)}to{opacity:1;transform:none}}

/* ============================================================
   MATCH CENTER
   ============================================================ */
.tabs{display:flex;gap:6px;padding:4px;margin:6px 0 14px;
  background:var(--surface);border:1px solid var(--stroke);border-radius:14px;position:relative}
.tab{flex:1;border:0;background:transparent;color:var(--dim);
  padding:10px 4px;border-radius:11px;font-weight:700;font-size:.82rem;
  cursor:pointer;transition:color .3s;position:relative;z-index:2;
  display:flex;align-items:center;justify-content:center;gap:6px}
.tab.active{color:var(--text)}
.tab .pip{width:7px;height:7px;border-radius:50%;background:var(--loss);
  box-shadow:0 0 8px var(--loss);animation:blink 1.1s infinite}
.tab-glider{position:absolute;z-index:1;top:4px;bottom:4px;border-radius:11px;
  background:var(--surface-2);border:1px solid var(--stroke-strong);
  transition:transform .45s var(--ease), width .45s var(--ease)}

/* Carte match */
.mcard{
  position:relative;border-radius:var(--radius);padding:15px 15px 16px;margin-bottom:12px;
  background:linear-gradient(180deg, var(--surface-2), var(--surface));
  border:1px solid var(--stroke);
  transition:transform .4s var(--ease), border-color .4s;
  overflow:hidden;
}
.mcard:active{transform:scale(.985)}
.mcard.pulse{animation:cardPulse 1.6s var(--ease)}
@keyframes cardPulse{0%,100%{border-color:var(--stroke)}40%{border-color:var(--ia-cyan);
  box-shadow:0 0 26px rgba(6,182,212,.25)}}

.mcard-top{display:flex;align-items:center;justify-content:space-between;
  font-size:.66rem;color:var(--faint);margin-bottom:13px;
  font-family:'JetBrains Mono',monospace;letter-spacing:.04em}
.mcard-top .lg{display:flex;align-items:center;gap:6px;text-transform:uppercase}
.mcard-top .live{display:flex;align-items:center;gap:5px;color:var(--loss);font-weight:700}
.mcard-top .live .pip{width:6px;height:6px;border-radius:50%;background:var(--loss);
  box-shadow:0 0 8px var(--loss);animation:blink 1s infinite}

.teams{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;margin-bottom:14px}
.team{display:flex;flex-direction:column;align-items:center;gap:7px;text-align:center}
.team .crest{width:46px;height:46px;border-radius:13px;object-fit:cover;
  background:var(--surface-2);border:1px solid var(--stroke);display:grid;place-items:center;
  font-weight:800;font-size:1.1rem;color:var(--dim)}
.team .nm{font-size:.8rem;font-weight:700;line-height:1.1;max-width:9ch}
.vs{font-family:'JetBrains Mono',monospace;color:var(--faint);font-size:.7rem}
.score{font-family:'JetBrains Mono',monospace;font-weight:800;font-size:1.5rem;letter-spacing:.04em}
.score .sep{color:var(--faint);margin:0 4px}

/* Barre de probabilité bet-style */
.prob{margin-top:2px}
.prob-bar{height:10px;border-radius:99px;overflow:hidden;display:flex;
  background:var(--void-2);border:1px solid var(--stroke);position:relative}
.prob-bar .h{height:100%;transition:width .9s var(--ease);position:relative}
.prob-bar .a{height:100%;transition:width .9s var(--ease)}
.prob-bar .h{background:linear-gradient(90deg, rgba(0,255,136,.35), var(--win))}
.prob-bar .a{background:linear-gradient(90deg, var(--loss), rgba(255,51,102,.35))}
.prob.is-even .h{background:linear-gradient(90deg, rgba(255,184,0,.3), var(--even))}
.prob.is-under .h{background:linear-gradient(90deg, rgba(255,51,102,.3), var(--loss))}
.prob-pct{display:flex;justify-content:space-between;margin-top:7px;
  font-family:'JetBrains Mono',monospace;font-size:.76rem;font-weight:700}
.prob-pct .ph{color:var(--win)} .prob-pct .pa{color:var(--dim)}
.prob.is-even .ph{color:var(--even)} .prob.is-under .ph{color:var(--loss)}

/* Ligne confiance + tendance + verdict */
.mcard-foot{display:flex;align-items:center;justify-content:space-between;margin-top:13px}
.conf{display:inline-flex;align-items:center;gap:7px;padding:5px 11px;border-radius:99px;
  font-family:'JetBrains Mono',monospace;font-size:.7rem;font-weight:700;
  background:rgba(124,58,237,.14);border:1px solid rgba(124,58,237,.3);color:#C4B5FD}
.trend{font-size:.7rem;font-weight:700;display:inline-flex;align-items:center;gap:3px;
  font-family:'JetBrains Mono',monospace}
.trend.up{color:var(--win)} .trend.down{color:var(--loss)} .trend.flat{color:var(--faint)}
.verdict{font-size:1.05rem}
.verdict.ok{filter:drop-shadow(0 0 6px var(--win))}
.verdict.ko{filter:drop-shadow(0 0 6px var(--loss));animation:blink 1.1s infinite}

.analyse-btn{margin-top:13px;width:100%;border:0;cursor:pointer;
  padding:11px;border-radius:12px;font-weight:700;font-size:.82rem;color:#E9D5FF;
  background:linear-gradient(90deg, rgba(124,58,237,.2), rgba(6,182,212,.2));
  border:1px solid rgba(124,58,237,.32);transition:transform .3s, filter .3s}
.analyse-btn:active{transform:scale(.98);filter:brightness(1.2)}

/* ---------------- Skeleton ---------------- */
.skeleton{border-radius:var(--radius);height:168px;margin-bottom:12px;
  background:linear-gradient(100deg, var(--surface) 30%, var(--surface-2) 50%, var(--surface) 70%);
  background-size:200% 100%;animation:shimmer 1.4s infinite;border:1px solid var(--stroke)}
@keyframes shimmer{from{background-position:200% 0}to{background-position:-200% 0}}

/* ---------------- Stats view ---------------- */
.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}
.stat-card{padding:16px;border-radius:var(--radius-sm);background:var(--surface);
  border:1px solid var(--stroke)}
.stat-card .n{font-family:'JetBrains Mono',monospace;font-size:1.7rem;font-weight:800}
.stat-card .l{font-size:.7rem;color:var(--dim);margin-top:3px}
.stat-card .n.win{color:var(--win)} .stat-card .n.ia{
  background:linear-gradient(90deg,var(--ia-violet),var(--ia-cyan));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.section-title{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--faint);margin:18px 2px 10px;font-weight:700}
.chart-wrap{padding:14px;border-radius:var(--radius-sm);background:var(--surface);
  border:1px solid var(--stroke);margin-bottom:16px}

/* ---------------- Modal analyse ---------------- */
.modal{position:fixed;inset:0;z-index:80;display:none;
  background:rgba(5,5,9,.72);backdrop-filter:blur(8px)}
.modal.open{display:block;animation:viewIn .3s var(--ease)}
.modal-sheet{position:absolute;left:0;right:0;bottom:0;max-width:480px;margin:0 auto;
  max-height:88vh;overflow-y:auto;border-radius:24px 24px 0 0;
  background:var(--void-2);border:1px solid var(--stroke-strong);
  padding:8px 16px calc(env(safe-area-inset-bottom) + 22px);
  animation:sheetUp .42s var(--ease)}
@keyframes sheetUp{from{transform:translateY(100%)}to{transform:none}}
.modal-grip{width:42px;height:5px;border-radius:99px;background:var(--stroke-strong);
  margin:8px auto 14px}

/* ---------------- Bottom nav ---------------- */
.nav{position:fixed;left:0;right:0;bottom:0;z-index:60;height:var(--nav-h);
  max-width:480px;margin:0 auto;
  display:flex;align-items:stretch;justify-content:space-around;
  padding-bottom:env(safe-area-inset-bottom);
  background:rgba(12,12,18,.86);backdrop-filter:blur(18px);
  border-top:1px solid var(--stroke)}
.nav-item{flex:1;border:0;background:transparent;color:var(--faint);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  cursor:pointer;position:relative;transition:color .3s;font-size:.6rem;font-weight:700}
.nav-item svg{width:23px;height:23px}
.nav-item.active{color:var(--text)}
.nav-item.active svg{filter:drop-shadow(0 0 7px var(--ia-glow))}
.nav-item.active::before{content:"";position:absolute;top:0;width:26px;height:3px;border-radius:99px;
  background:linear-gradient(90deg,var(--ia-violet),var(--ia-cyan));box-shadow:0 0 10px var(--ia-glow)}
.nav-item .badge{position:absolute;top:9px;right:calc(50% - 20px);min-width:16px;height:16px;
  padding:0 4px;border-radius:99px;background:var(--loss);color:#fff;font-size:.58rem;
  display:grid;place-items:center;font-weight:800;animation:pop .4s var(--ease)}
@keyframes pop{from{transform:scale(0)}to{transform:scale(1)}}

/* Ripple */
.ripple{position:absolute;border-radius:50%;transform:scale(0);pointer-events:none;
  background:rgba(255,255,255,.18);animation:ripple .6s var(--ease)}
@keyframes ripple{to{transform:scale(2.6);opacity:0}}

/* Install CTA */
.install-cta{margin:0 0 8px;padding:7px 11px;border-radius:var(--radius-sm);
  display:flex;align-items:center;gap:8px;
  background:linear-gradient(90deg, rgba(124,58,237,.16), rgba(6,182,212,.12));
  border:1px solid rgba(124,58,237,.3)}
.install-cta b{font-size:.76rem}.install-cta p{display:none}
.install-cta button{margin-left:auto;border:0;border-radius:8px;padding:6px 12px;
  font-weight:700;font-size:.74rem;color:#fff;cursor:pointer;
  background:linear-gradient(90deg,var(--ia-violet),var(--ia-cyan))}

.empty{text-align:center;color:var(--faint);padding:40px 20px;font-size:.86rem}

/* Pull to refresh */
.ptr{height:0;overflow:hidden;display:grid;place-items:center;color:var(--ia-cyan);
  font-family:'JetBrains Mono',monospace;font-size:.7rem;transition:height .2s}
.ptr.show{height:42px}
.ptr .spin{width:18px;height:18px;border:2px solid rgba(6,182,212,.3);
  border-top-color:var(--ia-cyan);border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.01ms !important;animation-iteration-count:1 !important;
    transition-duration:.01ms !important}
}

/* ============================================================
   Barre de sélection du sport (multi-sport)
   ============================================================ */
.sport-bar{
  display:flex;gap:8px;overflow-x:auto;padding:4px 2px 10px;
  scrollbar-width:none;-webkit-overflow-scrolling:touch;
}
.sport-bar::-webkit-scrollbar{display:none}
.sport-chip{
  flex:0 0 auto;padding:8px 14px;border-radius:999px;cursor:pointer;
  background:var(--surface-2,#14141f);color:var(--dim,#9a9ab0);
  border:1px solid var(--stroke,#23233a);font-size:.82rem;font-weight:600;
  white-space:nowrap;transition:all .2s var(--ease,ease);
}
.sport-chip:hover{color:var(--text,#fff)}
.sport-chip.active{
  background:linear-gradient(90deg,var(--ia-violet,#7C3AED),var(--ia-cyan,#06B6D4));
  color:#fff;border-color:transparent;
  box-shadow:0 4px 14px rgba(124,58,237,.35);
}

/* ============================================================
   RESPONSIVE — petits écrans (Android / mobiles étroits)
   ============================================================ */
@media (max-width: 430px) {
  /* Le conteneur principal ne doit jamais déborder */
  body, .app, .view { max-width: 100%; overflow-x: hidden; }

  /* Cartes match : padding et rayon adaptés */
  .mcard { padding: 14px 13px; border-radius: 16px; }

  /* Équipes : garder la grille mais réduire les écarts et tailles */
  .teams { gap: 6px; }
  .team .nm { font-size: .82rem; line-height: 1.15; word-break: break-word; }
  .score { font-size: 1.3rem; }

  /* Logos d'équipe plus compacts */
  .team .crest, .team img, .team svg { width: 42px; height: 42px; }

  /* Barre de probabilité et pourcentages */
  .prob-bar { height: 9px; }
  .prob-pct { font-size: .76rem; }

  /* Onglets Live / À venir / Terminés : tiennent sur la largeur */
  .tabs { gap: 4px; }
  .tab { padding: 9px 8px; font-size: .82rem; }

  /* Barre de sports : défilement horizontal fluide */
  .sport-bar { gap: 7px; padding-bottom: 8px; }
  .sport-chip { padding: 7px 12px; font-size: .8rem; }

  /* Hub IA : avatar et textes proportionnés */
  .ia-core { padding: 14px; }
  .ia-avatar { width: 110px; height: 110px; }

  /* Boutons d'action pleine largeur, faciles à toucher */
  .mcard .analyse-btn, .btn-block { width: 100%; }

  /* En-tête appli : pas de chevauchement du winrate */
  .topbar { padding: 12px 14px; }
  .topbar .wr { font-size: .9rem; }
}

/* Très petits écrans (< 360px) : on passe les équipes en pile si besoin */
@media (max-width: 340px) {
  .score { font-size: 1.15rem; }
  .team .nm { font-size: .76rem; }
}

/* Sécurité globale : aucune image ne dépasse son conteneur */
img { max-width: 100%; height: auto; }
* { -webkit-tap-highlight-color: transparent; }

/* ============================================================
   Marchés additionnels (buts, BTTS, cotes) sur les cartes
   ============================================================ */
.markets{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 2px}
.mk{font-size:.72rem;font-weight:600;padding:4px 9px;border-radius:8px;
  background:var(--surface-2,#14141f);border:1px solid var(--stroke,#23233a);
  color:var(--dim,#b8b8c8);white-space:nowrap}
.mk-score{background:rgba(124,58,237,.15);border-color:rgba(124,58,237,.4);color:#b9a6ff}
.mk-odd{background:rgba(6,182,212,.12);border-color:rgba(6,182,212,.35);color:#5fd5e8}
@media (max-width:430px){
  .mk{font-size:.68rem;padding:3px 7px}
}

/* ============================================================
   Compte utilisateur + Don café (page Profil)
   ============================================================ */
.account-zone{margin:8px 0 4px}
.acc-card{background:var(--surface-2,#14141f);border:1px solid var(--stroke,#23233a);
  border-radius:16px;padding:16px;margin-bottom:8px}
.acc-info{font-size:.9rem;line-height:1.5;margin-bottom:12px}
.acc-info span{color:var(--dim,#8a8aa0);font-size:.8rem}
.acc-actions{display:flex;gap:8px;flex-wrap:wrap}
.acc-btn{flex:1;min-width:130px;text-align:center;padding:11px 14px;border:none;border-radius:11px;
  background:linear-gradient(90deg,var(--violet,#7C3AED),var(--cyan,#06B6D4));color:#fff;
  font-weight:600;font-size:.85rem;cursor:pointer;text-decoration:none}
.acc-btn.ghost{background:transparent;border:1px solid var(--stroke,#23233a);color:var(--dim,#b8b8c8)}

.donate-box{background:var(--surface-2,#14141f);border:1px solid var(--stroke,#23233a);
  border-radius:16px;padding:16px;margin-bottom:8px}
.donate-txt{font-size:.86rem;color:var(--dim,#b8b8c8);margin:0 0 12px}
.donate-amounts{display:flex;gap:8px;margin-bottom:12px}
.amt{flex:1;padding:11px 0;border:1px solid var(--stroke,#23233a);border-radius:10px;
  background:#0d0d13;color:var(--text,#EAEAF2);font-weight:700;cursor:pointer;font-size:.9rem}
.amt.active{border-color:var(--green,#00FF88);background:rgba(0,255,136,.1);color:var(--green,#00FF88)}
.donate-input{width:100%;box-sizing:border-box;padding:11px 13px;border-radius:11px;
  border:1px solid var(--stroke,#23233a);background:#0d0d13;color:var(--text,#EAEAF2);
  font:inherit;margin-bottom:10px}
.donate-btn{width:100%;padding:13px;border:none;border-radius:12px;font-weight:700;
  background:var(--green,#00FF88);color:#001a0d;cursor:pointer;font-size:.92rem}
.donate-btn:disabled{opacity:.55;cursor:not-allowed}
.donate-hint{font-size:.82rem;text-align:center;margin:10px 0 0;min-height:1em}
.hidden{display:none}
#changePassBox{margin-top:12px}

/* ============================================================
   Café flottant + modale de don
   ============================================================ */
.cafe-fab{position:fixed;right:16px;bottom:84px;z-index:60;width:60px;height:60px;
  border:none;cursor:pointer;padding:0;background:none;
  animation:cafeFloat 2.8s ease-in-out infinite}
.cafe-fab img{width:100%;height:100%;display:block;object-fit:contain;
  filter:drop-shadow(0 4px 10px rgba(0,0,0,.4))}
@keyframes cafeFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
.cafe-fab:active{transform:scale(.92)}

.donate-modal{position:fixed;inset:0;z-index:120;background:rgba(0,0,0,.72);
  display:none;align-items:flex-end;justify-content:center}
.donate-modal.open{display:flex}
.donate-sheet{background:var(--surface,#14141f);border:1px solid var(--stroke,#23233a);
  position:relative;z-index:2;pointer-events:auto;
  border-radius:22px 22px 0 0;padding:24px 20px 30px;width:100%;max-width:480px;
  position:relative;animation:sheetUp .3s cubic-bezier(.4,0,.2,1)}
@keyframes sheetUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
.donate-close{position:absolute;top:16px;right:16px;background:none;border:none;
  color:var(--dim,#8a8aa0);font-size:1.1rem;cursor:pointer}
@media(min-width:560px){.donate-modal{align-items:center}.donate-sheet{border-radius:22px}}

/* ============================================================
   Feuille d'authentification (style modale, transparente)
   ============================================================ */
.auth-modal{background:rgba(8,8,14,.82)}
.auth-modal, .auth-sheet, .auth-sheet *{pointer-events:auto}
.auth-sheet{background:#16161f;
  border:1px solid rgba(255,255,255,.08)}
.auth-tabs{display:flex;gap:6px;background:rgba(0,0,0,.3);border-radius:13px;padding:5px;margin-bottom:16px}
.auth-tab{flex:1;padding:11px;border:none;background:none;color:var(--dim,#8a8aa0);
  font-weight:700;border-radius:10px;cursor:pointer;font-size:.92rem;transition:.2s}
.auth-tab.active{background:linear-gradient(90deg,#7C3AED,#06B6D4);color:#fff}
.auth-lead{color:var(--dim,#b8b8c8);font-size:.88rem;margin:0 0 16px;line-height:1.5}
.auth-err{background:rgba(255,51,102,.14);border:1px solid rgba(255,51,102,.4);
  color:#ff8fab;padding:11px;border-radius:11px;font-size:.85rem;margin-bottom:12px;text-align:center}
.auth-links{text-align:center;margin:14px 0 0}
.auth-links a{color:var(--cyan,#06B6D4);text-decoration:none;font-size:.85rem}

/* ============================================================
   FINITIONS PRODUCTION — fluidité, accessibilité, détails pro
   ============================================================ */
/* Transitions douces et cohérentes sur les éléments interactifs */
button, .nav-item, .tab, .sport-chip, .amt, .auth-tab, .mk {
  transition: transform .15s ease, background-color .2s ease, color .2s ease, border-color .2s ease;
}
button:active, .nav-item:active { transform: scale(.96); }

/* Focus clavier visible (accessibilité — qualité pro) */
a:focus-visible, button:focus-visible, input:focus-visible {
  outline: 2px solid var(--cyan, #06B6D4); outline-offset: 2px; border-radius: 6px;
}

/* Champs : focus net et agréable */
input:focus { outline: none; border-color: var(--violet, #7C3AED);
  box-shadow: 0 0 0 3px rgba(124,58,237,.15); }

/* Scrollbar discrète et raccord avec le thème */
* { scrollbar-width: thin; scrollbar-color: rgba(124,58,237,.4) transparent; }
*::-webkit-scrollbar { width: 7px; height: 7px; }
*::-webkit-scrollbar-thumb { background: rgba(124,58,237,.4); border-radius: 99px; }
*::-webkit-scrollbar-track { background: transparent; }

/* Apparition douce des cartes au chargement */
@keyframes fadeUp { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

/* Respect des préférences d'accessibilité : couper les animations si demandé */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .001ms !important; animation-iteration-count: 1 !important;
    transition-duration: .001ms !important; scroll-behavior: auto !important;
  }
}

/* Confort tactile : zones cliquables un peu plus grandes sur mobile */
@media (max-width: 430px) {
  .nav-item { padding-top: 8px; padding-bottom: 8px; }
  .donate-btn, .acc-btn, .auth-tab { min-height: 46px; }
}

/* ============================================================
   Outils Match Center (recherche + filtre) & Historique
   ============================================================ */
.match-tools{display:flex;gap:8px;margin:10px 0 14px}
.match-search{flex:1;padding:11px 14px;border-radius:12px;border:1px solid var(--stroke,#23233a);
  background:var(--surface-2,#14141f);color:var(--text,#EAEAF2);font:inherit;font-size:.88rem}
.match-search:focus{outline:none;border-color:var(--violet,#7C3AED)}
.conf-filter{padding:11px 14px;border-radius:12px;border:1px solid var(--stroke,#23233a);
  background:var(--surface-2,#14141f);color:var(--dim,#b8b8c8);font-weight:600;font-size:.82rem;
  cursor:pointer;white-space:nowrap}
.conf-filter.active{background:rgba(0,255,136,.12);border-color:var(--green,#00FF88);color:var(--green,#00FF88)}

.history-zone{margin:8px 0 4px}
.hist-item{background:var(--surface-2,#14141f);border:1px solid var(--stroke,#23233a);
  border-radius:12px;padding:12px 14px;margin-bottom:8px}
.hist-match{font-weight:600;font-size:.9rem}
.hist-vs{color:var(--dim,#8a8aa0);font-weight:400;font-size:.8rem}
.hist-meta{color:var(--dim,#b8b8c8);font-size:.82rem;margin-top:4px}
.hist-empty{color:var(--dim,#8a8aa0);font-size:.85rem;line-height:1.5}

/* Winrate par sport (page Stats) */
.sport-winrates{display:flex;flex-direction:column;gap:10px;margin-bottom:8px}
.swr-item{display:flex;align-items:center;gap:10px;font-size:.84rem}
.swr-name{width:92px;flex-shrink:0}
.swr-bar{flex:1;height:8px;border-radius:99px;background:var(--surface-2,#23233a);overflow:hidden}
.swr-fill{display:block;height:100%;border-radius:99px;transition:width .6s ease}
.swr-pct{width:46px;text-align:right;font-weight:700}
.swr-meta{width:52px;text-align:right;color:var(--dim,#8a8aa0);font-size:.76rem}

/* Profil : remonter le contenu (moins d'espace en haut) */
#view-profile{padding-top:0}
#view-profile .account-zone{margin-top:0}
#view-profile .section-title:first-of-type{margin-top:8px}

/* ============================================================
   Coupon combiné du jour (compact + carrousel)
   ============================================================ */
.coupon-card{background:linear-gradient(160deg,rgba(124,58,237,.12),rgba(6,182,212,.06));
  border:1px solid var(--stroke,#23233a);border-radius:14px;padding:10px 12px;margin:10px 0}
.coupon-head{display:flex;justify-content:space-between;align-items:center;
  font-weight:700;font-size:.82rem;margin-bottom:8px}
.coupon-conf{font-size:.72rem;color:var(--win,#00FF88);font-weight:700}
.coupon-body{overflow:hidden}
.coupon-track{display:flex;transition:transform .5s ease}
.coupon-slide{min-width:100%;box-sizing:border-box;padding:2px}
.coupon-slide-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:3px}
.coupon-num{font-size:.66rem;color:var(--dim,#8a8aa0);font-weight:700}
.coupon-match{font-weight:600;font-size:.82rem;line-height:1.2}
.coupon-cote{font-family:'JetBrains Mono',monospace;font-weight:700;color:var(--cyan,#06B6D4);font-size:.82rem}
.coupon-leg-sub{display:flex;justify-content:space-between;margin-top:3px;
  font-size:.68rem;color:var(--dim,#8a8aa0)}
.coupon-verdict{color:var(--win,#00FF88);font-weight:600}
.coupon-dots{display:flex;gap:5px;justify-content:center;margin:7px 0 0}
.coupon-dots span{width:5px;height:5px;border-radius:50%;background:var(--stroke-strong,#444)}
.coupon-dots span.on{background:var(--win,#00FF88);width:14px;border-radius:3px}
.coupon-total{display:flex;justify-content:space-between;align-items:center;
  margin-top:8px;padding-top:8px;border-top:1px solid var(--stroke,#23233a);font-weight:700;font-size:.78rem}
.coupon-total-val{font-family:'JetBrains Mono',monospace;font-size:1rem;color:var(--win,#00FF88)}
.coupon-empty{color:var(--dim,#8a8aa0);font-size:.8rem;text-align:center;padding:8px}

.coupon-flag{width:18px;height:18px;border-radius:50%;object-fit:cover;vertical-align:middle;margin:0 4px}
.coupon-match{display:flex;align-items:center;gap:4px;flex-wrap:wrap}

.coupon-crest{display:inline-flex;align-items:center;justify-content:center;
  width:18px;height:18px;border-radius:50%;flex-shrink:0;
  background:linear-gradient(135deg,#7C3AED,#06B6D4);color:#fff;
  font-size:.62rem;font-weight:700}
.coupon-teams{flex:1;font-size:.8rem;font-weight:600}

/* ============================================================
   THÈME CLAIR — complet, lisible, force les fonds sombres fixes
   ============================================================ */
body.light{
  --void:#F2F4F9; --void-2:#E8EBF2;
  --surface:#FFFFFF; --surface-2:#F7F8FC;
  --stroke:rgba(15,23,42,.10); --stroke-strong:rgba(15,23,42,.16);
  --text:#0F172A; --dim:#52607A; --faint:#8A95AB;
  --ia-glow:rgba(124,58,237,.14);
  background:#F2F4F9; color:#0F172A;
}
/* 1) Tous les fonds sombres fixes -> clairs */
body.light .mcard, body.light .stat-card, body.light .acc-card,
body.light .donate-sheet, body.light .hist-item, body.light .coupon-card,
body.light .chart-wrap, body.light .swr-item, body.light .modal-sheet,
body.light .install-cta{
  background:#FFFFFF !important; border-color:rgba(15,23,42,.10);
  box-shadow:0 1px 3px rgba(15,23,42,.06);
}
/* 2) Champs de saisie : fond clair + texte foncé (corrige foncé sur foncé) */
body.light input, body.light textarea, body.light select,
body.light .match-search, body.light .donate-input,
body.light .conf-filter, body.light .amt{
  background:#EEF1F7 !important; color:#0F172A !important;
  border-color:rgba(15,23,42,.16);
}
body.light input::placeholder, body.light textarea::placeholder,
body.light .match-search::placeholder{color:#8A95AB !important}
/* 3) Barres de navigation */
body.light .topbar, body.light .nav{
  background:rgba(255,255,255,.94) !important; border-color:rgba(15,23,42,.10);
}
/* 4) Textes : tout ce qui doit être foncé */
body.light, body.light .nm, body.light .lvl, body.light .title,
body.light .section-title, body.light .coupon-match, body.light .coupon-teams,
body.light .stat-card .n, body.light .n, body.light .hist-match,
body.light .swr-name, body.light .ia-say b{color:#0F172A}
/* 5) Textes secondaires (gris foncé lisible) */
body.light .l, body.light .lg, body.light .meta, body.light .ia-say,
body.light .coupon-num, body.light .swr-meta, body.light .hist-meta,
body.light .coupon-leg-sub, body.light .empty, body.light .donate-txt,
body.light .tab, body.light .acc-btn.ghost, body.light .conf-filter{color:#52607A}
body.light .tab.active{color:#0F172A}
/* 6) Le Brain Log et la feuille auth restent SOMBRES volontairement
      (effet console + cohérence), donc on garde leur texte clair) */
body.light .brain, body.light .brain-body{background:#0B0B12 !important;color:#9FE9CF}
body.light .brain-head{color:#9FE9CF}
body.light .auth-sheet{background:#16161f !important;color:#EAEAF2}
body.light .auth-lead{color:#b8b8c8}
body.light .auth-modal{background:rgba(15,23,42,.55)}
/* 7) Overlay des modales */
body.light .donate-modal{background:rgba(15,23,42,.45)}
/* 8) Boutons fond clair (acc-btn par défaut) restent lisibles */
body.light .acc-btn{color:#fff}

/* ============================================================
   THÈME CLAIR — corrections ciblées (visibilité onglets/boutons)
   ============================================================ */
/* Onglets sport (Foot, Basket…) : texte foncé lisible */
body.light .sport-chip{
  background:#FFFFFF !important; color:#0F172A !important;
  border-color:rgba(15,23,42,.14);
}
body.light .sport-chip.active{
  background:linear-gradient(90deg,#7C3AED,#06B6D4) !important; color:#fff !important;
}
/* Onglets Live/À venir/Terminés */
body.light .tab{color:#52607A !important}
body.light .tab.active{color:#0F172A !important}
/* Bouton « Voir l'analyse IA » : texte violet foncé lisible */
body.light .analyse-btn{
  color:#5B21B6 !important;
  background:linear-gradient(90deg, rgba(124,58,237,.14), rgba(6,182,212,.12)) !important;
  border-color:rgba(124,58,237,.35);
}
/* Chips marchés (1-0, 2 buts, -2.5, BTTS) */
body.light .mk{background:#EEF1F7 !important;color:#0F172A !important;border-color:rgba(15,23,42,.12)}
/* Confiance badge */
body.light .conf{color:#52607A !important}
/* Texte des noms d'équipes et ligues */
body.light .nm,body.light .lg{color:#0F172A !important}
body.light .mcard-top span{color:#52607A !important}
/* Verdict IA dans la modale (texte violet pâle -> foncé) */
body.light .modal .conf,body.light .modal .conf b{color:#0F172A !important}

/* ============================================================
   Badges Hot + série de réussites
   ============================================================ */
.hot-badge{background:linear-gradient(90deg,#FF6B35,#FF3366);color:#fff;
  font-size:.6rem;font-weight:800;padding:2px 7px;border-radius:99px;letter-spacing:.03em;
  animation:hotPulse 1.6s ease-in-out infinite}
@keyframes hotPulse{0%,100%{opacity:1}50%{opacity:.6}}
.streak-banner{margin:10px 0 0;padding:9px 14px;border-radius:12px;text-align:center;
  font-size:.84rem;background:linear-gradient(90deg,rgba(255,107,53,.15),rgba(255,51,102,.1));
  border:1px solid rgba(255,107,53,.3);color:var(--text)}
.streak-banner b{color:#FF6B35;font-size:1rem}
body.light .streak-banner{color:#0F172A}

/* ============================================================
   Forme des équipes (modale d'analyse)
   ============================================================ */
.form-zone{margin:0 0 14px}
.form-loading{color:var(--dim);font-size:.82rem;text-align:center;padding:10px}
.form-title{font-size:.88rem;font-weight:700;margin-bottom:10px;color:var(--text)}
.form-team{background:var(--surface-2,#14141f);border:1px solid var(--stroke,#23233a);
  border-radius:12px;padding:11px 13px;margin-bottom:8px}
.form-team-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:7px}
.form-team-name{font-weight:600;font-size:.85rem}
.form-dots{display:flex;gap:4px}
.form-dot{width:20px;height:20px;border-radius:6px;display:flex;align-items:center;justify-content:center;
  font-size:.66rem;font-weight:800;color:#fff}
.form-V{background:#00C46A}
.form-N{background:#FFB800;color:#1a1a1a}
.form-D{background:#FF3366}
.form-empty{color:var(--faint);font-size:.74rem}
.form-stats-row{display:flex;gap:10px;font-size:.76rem;color:var(--dim);align-items:center;flex-wrap:wrap}
.form-goals{margin-left:auto}
.form-pct{color:var(--win,#00FF88);font-weight:700}
.form-h2h{margin-top:10px;padding-top:10px;border-top:1px solid var(--stroke,#23233a)}
.form-sub{font-size:.78rem;color:var(--dim);margin-bottom:7px;font-weight:600}
.form-h2h-row{display:flex;justify-content:space-between;align-items:center;gap:8px;
  font-size:.78rem;padding:4px 0}
.form-h2h-row b{font-family:'JetBrains Mono',monospace;color:var(--cyan,#06B6D4)}
body.light .form-team{background:#F2F4F9 !important}
body.light .form-title,body.light .form-team-name{color:#0F172A}

/* ============================================================
   Favoris + Historique public
   ============================================================ */
.fav-star{background:none;border:none;cursor:pointer;font-size:1.05rem;color:var(--faint,#62627A);
  padding:0 2px;line-height:1;transition:transform .15s,color .2s}
.fav-star:active{transform:scale(1.3)}
.fav-star.on{color:#FFB800}

.public-history{display:flex;flex-direction:column;gap:6px}
.ph-row{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;
  background:var(--surface-2,#14141f);border:1px solid var(--stroke,#23233a);font-size:.82rem}
.ph-row.ph-ok{border-left:3px solid var(--win,#00FF88)}
.ph-row.ph-ko{border-left:3px solid var(--loss,#FF3366)}
.ph-icon{flex-shrink:0}
.ph-match{flex:1;font-weight:600}
.ph-verdict{color:var(--dim,#8a8aa0);font-size:.76rem;white-space:nowrap}
body.light .ph-row{background:#F2F4F9 !important;color:#0F172A}
body.light .ph-match{color:#0F172A}

/* Onglets de coupon (Sûr / Premium) */
.coupon-tabs{display:flex;gap:6px;margin-bottom:10px}
.coupon-tab{flex:1;padding:7px 10px;border-radius:9px;border:1px solid var(--stroke,#23233a);
  background:var(--surface-2,#14141f);color:var(--dim,#8a8aa0);font-size:.76rem;font-weight:700;cursor:pointer;transition:.18s}
.coupon-tab.active{background:linear-gradient(90deg,#7C3AED,#06B6D4);color:#fff;border-color:transparent}
body.light .coupon-tab{background:#EEF1F7 !important;color:#52607A}
body.light .coupon-tab.active{background:linear-gradient(90deg,#7C3AED,#06B6D4) !important;color:#fff}

/* Bannière promo */
.promo-banner{margin:0 0 12px;border-radius:16px;overflow:hidden;
  background:linear-gradient(120deg,#7C3AED 0%,#6366F1 45%,#06B6D4 100%);
  box-shadow:0 6px 20px rgba(124,58,237,.35);position:relative}
.promo-banner::before{content:"";position:absolute;inset:0;
  background:linear-gradient(120deg,transparent,rgba(255,255,255,.18),transparent);
  transform:translateX(-100%);animation:promoShine 3.5s ease-in-out infinite}
@keyframes promoShine{0%{transform:translateX(-100%)}60%,100%{transform:translateX(100%)}}
.promo-inner{display:flex;align-items:center;gap:12px;padding:14px 16px;position:relative;z-index:1}
.promo-msg{flex:1;color:#fff;font-weight:700;font-size:.9rem;line-height:1.3;
  text-shadow:0 1px 2px rgba(0,0,0,.2)}
.promo-code{background:rgba(255,255,255,.95);color:#5B21B6;font-weight:800;
  font-family:'JetBrains Mono',monospace;padding:6px 13px;border-radius:10px;
  font-size:.85rem;letter-spacing:.08em;box-shadow:0 2px 8px rgba(0,0,0,.15);white-space:nowrap}

/* ============================================================
   Carte Premium
   ============================================================ */
.premium-card{margin:14px 0;padding:18px;border-radius:18px;
  background:linear-gradient(135deg,#7C3AED 0%,#6366F1 50%,#06B6D4 100%);
  box-shadow:0 8px 24px rgba(124,58,237,.4);color:#fff;text-align:center;position:relative;overflow:hidden}
.premium-card::after{content:"";position:absolute;top:-50%;right:-30%;width:200px;height:200px;
  background:radial-gradient(circle,rgba(255,255,255,.15),transparent 70%);border-radius:50%}
.premium-head{font-size:1.1rem;font-weight:800;margin-bottom:6px}
.premium-txt{font-size:.84rem;opacity:.92;margin:0 0 14px;line-height:1.4;position:relative;z-index:1}
.premium-price{font-size:1.5rem;font-weight:800;margin-bottom:14px;font-family:'JetBrains Mono',monospace}
.premium-price span{font-size:.8rem;opacity:.8;font-weight:600}
.premium-btn{width:100%;padding:13px;border:0;border-radius:12px;cursor:pointer;
  background:#fff;color:#5B21B6;font-weight:800;font-size:.95rem;
  box-shadow:0 4px 12px rgba(0,0,0,.2);transition:transform .15s;position:relative;z-index:1}
.premium-btn:active{transform:scale(.97)}
.premium-active{background:linear-gradient(135deg,#059669,#06B6D4)}
.premium-badge{font-size:1.05rem;font-weight:800;margin-bottom:6px;letter-spacing:.03em}

/* Coupon premium verrouillé */
.coupon-locked{text-align:center;padding:18px 12px}
.coupon-lock-icon{font-size:2rem;margin-bottom:8px}
.coupon-lock-title{font-weight:700;font-size:.9rem;margin-bottom:4px}
.coupon-lock-cote{font-family:'JetBrains Mono',monospace;color:var(--cyan,#06B6D4);font-size:.85rem;margin-bottom:6px}
.coupon-lock-txt{color:var(--dim,#8a8aa0);font-size:.8rem;margin:0 0 12px}
.coupon-locked .premium-btn{width:auto;padding:10px 20px;display:inline-block}

/* ============================================================
   Bannière freemium (contenu verrouillé)
   ============================================================ */
.freemium-lock{margin:14px 0 4px;padding:18px 16px;border-radius:16px;text-align:center;
  background:linear-gradient(135deg,#7C3AED 0%,#6366F1 50%,#06B6D4 100%);
  box-shadow:0 8px 22px rgba(124,58,237,.35);color:#fff}
.fl-icon{font-size:1.8rem;margin-bottom:6px}
.fl-txt{font-size:.88rem;margin-bottom:14px;line-height:1.4}
.fl-txt b{font-weight:800}
.fl-btn{background:#fff;color:#5B21B6;border:0;border-radius:12px;padding:11px 22px;
  font-weight:800;font-size:.9rem;cursor:pointer;box-shadow:0 4px 12px rgba(0,0,0,.2);transition:transform .15s}
.fl-btn:active{transform:scale(.96)}

/* ============================================================
   Pronos du jour (top picks)
   ============================================================ */
.picks-card{background:var(--surface,#11111b);border:1px solid var(--stroke,#23233a);
  border-radius:16px;padding:14px;margin:12px 0}
.picks-head{font-weight:800;font-size:.95rem;margin-bottom:10px}
.picks-body{display:flex;flex-direction:column;gap:6px}
.pick-row{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:11px;
  background:var(--surface-2,#161622);border:1px solid var(--stroke,#23233a);cursor:pointer;
  transition:transform .12s}
.pick-row:active{transform:scale(.98)}
.pick-sport{font-size:1.1rem;flex-shrink:0}
.pick-info{flex:1;min-width:0}
.pick-match{font-weight:600;font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pick-verdict{font-size:.72rem;color:var(--win,#00FF88);font-weight:600;margin-top:2px}
.pick-conf{font-family:'JetBrains Mono',monospace;font-weight:800;font-size:.9rem;
  color:var(--cyan,#06B6D4);flex-shrink:0}
.pick-lock{margin-top:8px;padding:11px;border-radius:11px;text-align:center;cursor:pointer;
  background:linear-gradient(135deg,#7C3AED,#06B6D4);color:#fff;font-size:.82rem}
.pick-lock b{font-weight:800}
body.light .picks-card{background:#FFFFFF !important}
body.light .pick-row{background:#F2F4F9 !important}
body.light .pick-match{color:#0F172A}

/* Bouton WhatsApp flottant */
.wa-fab{position:fixed;right:16px;bottom:84px;z-index:60;width:56px;height:56px;
  border-radius:50%;background:linear-gradient(135deg,#25D366,#128C7E);
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 6px 20px rgba(37,211,102,.45);animation:waFloat 2.8s ease-in-out infinite;
  text-decoration:none}
@keyframes waFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.wa-fab:active{transform:scale(.92)}

/* ============================================================
   Cartes verrouillées (freemium : 75% flouté)
   ============================================================ */
.mcard-locked{position:relative;overflow:hidden}
.mcard-locked .teams,
.mcard-locked .prob,
.mcard-locked .markets,
.mcard-locked .mcard-foot,
.mcard-locked .analyse-btn{filter:blur(6px);pointer-events:none;user-select:none;opacity:.75}
.mcard-lock{position:absolute;inset:0;z-index:5;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:4px;cursor:pointer;
  background:linear-gradient(135deg,rgba(124,58,237,.25),rgba(6,182,212,.18))}
.mcard-lock-ico{font-size:1.6rem}
.mcard-lock-txt{font-weight:800;font-size:.8rem;color:#fff;
  background:linear-gradient(135deg,#7C3AED,#06B6D4);padding:4px 14px;border-radius:99px;
  box-shadow:0 4px 12px rgba(124,58,237,.4)}

/* Bannière "version gratuite" en haut */
.free-notice{display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:8px 14px;background:linear-gradient(90deg,#7C3AED,#06B6D4);color:#fff;
  font-size:.76rem;font-weight:600;cursor:pointer;position:sticky;top:0;z-index:70}
.free-notice-cta{font-weight:800;white-space:nowrap;background:rgba(255,255,255,.2);
  padding:3px 10px;border-radius:99px}

/* ============================================================
   Plans Premium (3 abonnements)
   ============================================================ */
.premium-wrap{margin:14px 0}
.premium-wrap .premium-head{font-size:1.15rem;font-weight:800;margin-bottom:4px}
.plan{position:relative;background:var(--surface,#11111b);border:1px solid var(--stroke,#23233a);
  border-radius:16px;padding:16px;margin-bottom:12px;transition:border-color .2s}
.plan-pop{border-color:#06B6D4;box-shadow:0 0 0 1px #06B6D4,0 8px 22px rgba(6,182,212,.2)}
.plan-badge{position:absolute;top:-10px;left:50%;transform:translateX(-50%);
  background:linear-gradient(90deg,#7C3AED,#06B6D4);color:#fff;font-size:.66rem;font-weight:800;
  padding:4px 14px;border-radius:99px;white-space:nowrap}
.plan-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;margin-top:4px}
.plan-name{font-weight:700;font-size:.92rem}
.plan-off{background:#FF3366;color:#fff;font-weight:800;font-size:.72rem;padding:3px 9px;border-radius:8px}
.plan-price{font-size:1.5rem;font-weight:800;font-family:'JetBrains Mono',monospace;margin-bottom:12px}
.plan-price span{font-size:.8rem;opacity:.7}
.plan-price s{font-size:.8rem;color:var(--faint,#62627A);margin-left:8px;font-weight:400}
.plan-btn{width:100%;padding:12px;border:0;border-radius:11px;cursor:pointer;font-weight:800;
  font-size:.92rem;color:#fff;background:linear-gradient(90deg,#7C3AED,#06B6D4);transition:transform .15s}
.plan-btn:active{transform:scale(.97)}
body.light .plan{background:#FFFFFF !important}
body.light .plan-name,body.light .plan-price{color:#0F172A}

/* ============================================================
   Générateur de coupons IA
   ============================================================ */
.gen-card{background:linear-gradient(160deg,rgba(124,58,237,.14),rgba(6,182,212,.06));
  border:1px solid var(--stroke,#23233a);border-radius:16px;padding:16px;margin:12px 0}
.gen-head{font-weight:800;font-size:.98rem;margin-bottom:4px}
.gen-sub{font-size:.78rem;color:var(--dim,#8a8aa0);margin:0 0 12px}
.gen-btn{width:100%;padding:13px;border:0;border-radius:12px;cursor:pointer;font-weight:800;
  font-size:.92rem;color:#fff;background:linear-gradient(90deg,#7C3AED,#06B6D4);
  transition:transform .15s,opacity .2s}
.gen-btn:active{transform:scale(.97)}
.gen-btn:disabled{opacity:.55;cursor:default}
.gen-msg{margin-top:12px;padding:11px;border-radius:10px;background:var(--surface-2,#161622);
  font-size:.82rem;color:var(--dim,#8a8aa0);text-align:center}
.gen-coupon{margin-top:14px;padding:12px;border-radius:12px;background:var(--surface-2,#161622);
  border:1px solid var(--stroke,#23233a)}
.gen-coupon .coupon-leg{padding:8px 0;border-bottom:1px solid rgba(255,255,255,.05)}
.gen-coupon .coupon-leg:last-of-type{border-bottom:0}
.gen-coupon .coupon-leg-top{display:flex;align-items:center;gap:9px}
body.light .gen-card{background:linear-gradient(160deg,rgba(124,58,237,.08),rgba(6,182,212,.04))}
body.light .gen-coupon,body.light .gen-msg{background:#F2F4F9 !important}

/* ============================================================
   RAFFINEMENTS PROFESSIONNELS (polish global)
   ============================================================ */
/* Cartes : ombres plus douces et profondes, transitions fluides */
.mcard{transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease}
.mcard:active{transform:scale(.99)}
.mcard:hover{border-color:var(--stroke-strong,rgba(255,255,255,.18))}

/* Boutons : meilleur feedback tactile partout */
button{transition:transform .12s ease, opacity .2s ease, filter .2s ease}
button:active{transform:scale(.97)}

/* Titres de section : plus aérés et hiérarchisés */
.section-title{font-size:.92rem;font-weight:800;letter-spacing:-.01em;
  margin:20px 0 12px;display:flex;align-items:center;gap:7px}

/* Barre de navigation : effet verre plus marqué */
.nav{backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4)}

/* Animations d'entrée douces pour les cartes */
@keyframes cardIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.mcard,.coupon-card,.gen-card,.picks-card,.premium-wrap,.plan{animation:cardIn .35s ease both}

/* Scrollbars discrètes (desktop) */
*::-webkit-scrollbar{width:6px;height:6px}
*::-webkit-scrollbar-thumb{background:var(--stroke-strong,rgba(255,255,255,.15));border-radius:3px}
*::-webkit-scrollbar-track{background:transparent}

/* Topbar : séparation plus nette */
.topbar{backdrop-filter:blur(18px) saturate(1.3);-webkit-backdrop-filter:blur(18px) saturate(1.3)}

/* Focus accessibilité (clavier) */
button:focus-visible,input:focus-visible,a:focus-visible{
  outline:2px solid var(--cyan,#06B6D4);outline-offset:2px}

/* Transitions de vue plus douces */
.view{animation:cardIn .3s ease both}

/* ============================================================
   Page Coupons dédiée
   ============================================================ */
.coupons-hero{padding:8px 0 4px;margin-bottom:6px}
.coupons-title{font-size:1.4rem;font-weight:800;margin:0;letter-spacing:-.02em}
.coupons-lead{font-size:.84rem;color:var(--dim,#8a8aa0);margin:4px 0 0}
.gen-history{margin-top:14px;display:flex;flex-direction:column;gap:12px}
.gen-coupon-tag{font-size:.72rem;font-weight:700;color:var(--cyan,#06B6D4);
  margin-bottom:8px;text-transform:uppercase;letter-spacing:.04em}

/* Navigation à 5 onglets : un peu plus serrée */
.nav-item{font-size:.62rem}
.nav-item svg{width:21px;height:21px}

/* ============================================================
   Filtres avancés (page Matchs)
   ============================================================ */
#filterToggle.active{background:linear-gradient(90deg,#7C3AED,#06B6D4);color:#fff;border-color:transparent}
.adv-filters{display:flex;flex-wrap:wrap;gap:10px;padding:14px;margin:0 0 12px;
  background:var(--surface,#11111b);border:1px solid var(--stroke,#23233a);border-radius:14px;
  animation:cardIn .25s ease both}
.adv-field{display:flex;flex-direction:column;gap:5px;flex:1;min-width:120px}
.adv-field span{font-size:.72rem;color:var(--dim,#8a8aa0);font-weight:600}
.adv-field select{padding:9px 11px;border-radius:10px;border:1px solid var(--stroke-strong,#333);
  background:var(--surface-2,#161622);color:var(--text,#ECECF4);font-size:.84rem;font:inherit}
.adv-field select:focus{outline:none;border-color:var(--cyan,#06B6D4)}
.adv-reset{align-self:flex-end;padding:9px 14px;border-radius:10px;border:1px solid var(--stroke,#23233a);
  background:transparent;color:var(--dim,#8a8aa0);font-weight:600;font-size:.8rem;cursor:pointer}
.adv-reset:active{transform:scale(.96)}
body.light .adv-filters{background:#FFFFFF !important}
body.light .adv-field select{background:#F2F4F9 !important;color:#0F172A}

/* ============================================================
   FAQ
   ============================================================ */
.faq-list{display:flex;flex-direction:column;gap:8px}
.faq-item{background:var(--surface-2,#161622);border:1px solid var(--stroke,#23233a);
  border-radius:12px;padding:0;overflow:hidden}
.faq-item summary{padding:13px 15px;cursor:pointer;font-weight:600;font-size:.86rem;
  list-style:none;display:flex;justify-content:space-between;align-items:center}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";font-size:1.2rem;color:var(--cyan,#06B6D4);font-weight:400}
.faq-item[open] summary::after{content:"−"}
.faq-item p{margin:0;padding:0 15px 14px;font-size:.82rem;color:var(--dim,#8a8aa0);line-height:1.55}
body.light .faq-item{background:#F2F4F9 !important}
body.light .faq-item summary{color:#0F172A}

/* ============================================================
   Alertes équipes favorites
   ============================================================ */
.fav-alerts{margin:10px 0 0;display:flex;flex-direction:column;gap:8px}
.fav-alert-title{font-size:.8rem;font-weight:700;color:#FFB800;margin-bottom:2px}
.fav-alert{display:flex;align-items:center;gap:11px;padding:11px 13px;border-radius:12px;cursor:pointer;
  background:linear-gradient(90deg,rgba(255,184,0,.12),rgba(124,58,237,.08));
  border:1px solid rgba(255,184,0,.25);transition:transform .12s}
.fav-alert:active{transform:scale(.98)}
.fav-alert-star{color:#FFB800;font-size:1.1rem;flex-shrink:0}
.fav-alert-info{flex:1;min-width:0}
.fav-alert-match{font-weight:600;font-size:.85rem}
.fav-alert-sub{font-size:.72rem;color:var(--dim,#8a8aa0);margin-top:2px}
body.light .fav-alert-match{color:#0F172A}

/* Stats détaillées par équipe (modale d'analyse) */
.form-detail-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-top:10px;
  padding-top:10px;border-top:1px solid var(--stroke,#23233a)}
.fd-item{text-align:center;display:flex;flex-direction:column;gap:2px}
.fd-item b{font-size:.92rem;font-weight:800;color:var(--cyan,#06B6D4);font-family:'JetBrains Mono',monospace}
.fd-item span{font-size:.6rem;color:var(--dim,#8a8aa0);line-height:1.1}
body.light .fd-item b{color:#7C3AED}
@media(max-width:380px){.form-detail-grid{grid-template-columns:repeat(3,1fr)}}

/* Infos floutées pour les gratuits */
.blur-info{filter:blur(4px);user-select:none;opacity:.7}
.form-locked-wrap{position:relative;border-radius:12px;overflow:hidden}
.form-blurred{filter:blur(7px);pointer-events:none;user-select:none;opacity:.6}
.form-lock-overlay{position:absolute;inset:0;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:8px;cursor:pointer;
  background:linear-gradient(135deg,rgba(124,58,237,.2),rgba(6,182,212,.15))}
.form-lock-ico{font-size:1.8rem}
.form-lock-txt{font-size:.82rem;font-weight:600;text-align:center;padding:0 20px}
.form-lock-btn{background:linear-gradient(135deg,#7C3AED,#06B6D4);color:#fff;border:0;
  border-radius:10px;padding:9px 18px;font-weight:700;font-size:.84rem;cursor:pointer}

/* ============================================================
   Bannières partenaires (bookmakers) — page Coupons, animées
   ============================================================ */
.partners-zone{margin-top:18px;display:flex;flex-direction:column;gap:12px}
.partners-title{font-size:.92rem;font-weight:800;margin-bottom:2px}
.partner-card{position:relative;overflow:hidden;display:flex;align-items:center;gap:12px;
  padding:14px 16px;border-radius:16px;cursor:pointer;
  background:linear-gradient(135deg,#1a1a2e,#16213e);
  border:1px solid rgba(124,58,237,.3);
  box-shadow:0 6px 18px rgba(0,0,0,.3);
  animation:partnerIn .5s ease both;transition:transform .18s}
.partner-card:active{transform:scale(.98)}
@keyframes partnerIn{from{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
/* Effet de brillance qui balaie en continu */
.partner-shine{position:absolute;top:0;left:-60%;width:50%;height:100%;
  background:linear-gradient(120deg,transparent,rgba(255,255,255,.18),transparent);
  transform:skewX(-20deg);animation:partnerShine 3.2s ease-in-out infinite}
@keyframes partnerShine{0%{left:-60%}50%{left:120%}100%{left:120%}}
.partner-logo{width:54px;height:54px;object-fit:contain;border-radius:10px;flex-shrink:0;background:rgba(255,255,255,.06);padding:4px}
.partner-name{font-size:1.05rem;font-weight:800;flex-shrink:0;color:#fff;
  background:linear-gradient(135deg,#7C3AED,#06B6D4);padding:10px 14px;border-radius:10px}
.partner-info{flex:1;min-width:0;z-index:1}
.partner-text{font-size:.84rem;font-weight:600;color:#fff;line-height:1.3}
.partner-code{font-size:.76rem;color:#FFB800;margin-top:4px}
.partner-code b{font-family:'JetBrains Mono',monospace;letter-spacing:.04em}
.partner-btn{flex-shrink:0;z-index:1;background:linear-gradient(135deg,#25D366,#1ea952);color:#fff;
  border:0;border-radius:10px;padding:10px 16px;font-weight:800;font-size:.82rem;cursor:pointer;
  box-shadow:0 4px 12px rgba(37,211,102,.35);animation:partnerPulse 2s ease-in-out infinite}
@keyframes partnerPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}
body.light .partner-card{background:linear-gradient(135deg,#EEF2FF,#F5F3FF) !important}
body.light .partner-text{color:#0F172A}

/* Indicateur de chargement du générateur */
.gen-loading{display:flex;align-items:center;gap:10px;justify-content:center;padding:16px;
  font-size:.84rem;color:var(--dim,#8a8aa0)}
.gen-spinner{width:18px;height:18px;border:2.5px solid var(--stroke,#23233a);
  border-top-color:var(--cyan,#06B6D4);border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* ============================================================
   Comparateur d'équipes + indice de forme
   ============================================================ */
.cmp-wrap{margin-top:16px;padding:14px;border-radius:14px;
  background:var(--surface-2,#161622);border:1px solid var(--stroke,#23233a)}
.cmp-title{font-weight:800;font-size:.9rem;margin-bottom:10px}
.cmp-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;gap:8px}
.cmp-team-h,.cmp-team-a{font-weight:700;font-size:.82rem;flex:1;min-width:0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cmp-team-a{text-align:right}
.cmp-vs{font-size:.72rem;font-weight:800;color:var(--cyan,#06B6D4);flex-shrink:0;
  padding:3px 9px;border-radius:8px;background:rgba(6,182,212,.12)}
.cmp-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:9px}
.cmp-val{font-family:'JetBrains Mono',monospace;font-weight:800;font-size:.86rem;
  min-width:48px;color:var(--text,#ECECF4)}
.cmp-row .cmp-val:last-child{text-align:right}
.cmp-label{font-size:.72rem;color:var(--dim,#8a8aa0);text-align:center;flex:1}
.cmp-formlabel{display:flex;justify-content:space-between;font-size:.68rem;
  color:var(--dim,#8a8aa0);margin-top:2px}
.cmp-bar{display:flex;height:7px;border-radius:4px;overflow:hidden;margin-top:5px;
  background:var(--stroke,#23233a);gap:2px}
.cmp-bar-h,.cmp-bar-a{height:100%;border-radius:3px;transition:width .6s ease;
  background:var(--faint,#4a4a5e)}
.cmp-bar-h.cmp-win{background:linear-gradient(90deg,#06B6D4,#7C3AED)}
.cmp-bar-a.cmp-win{background:linear-gradient(90deg,#7C3AED,#06B6D4)}
body.light .cmp-wrap{background:#F2F4F9 !important}
body.light .cmp-val{color:#0F172A}

/* ============================================================
   Cotes & probabilités + Score exact (modale)
   ============================================================ */
.odds-block,.score-block{margin-bottom:16px;padding:14px;border-radius:14px;
  background:var(--surface-2,#161622);border:1px solid var(--stroke,#23233a)}
.odds-title,.score-title{font-weight:800;font-size:.86rem;margin-bottom:10px}
.odds-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.odd-cell{text-align:center;padding:10px 6px;border-radius:11px;
  background:var(--surface,#11111b);border:1px solid var(--stroke,#23233a)}
.odd-cell.odd-hl{border-color:var(--cyan,#06B6D4);
  background:linear-gradient(160deg,rgba(6,182,212,.12),rgba(124,58,237,.08))}
.odd-label{font-size:.64rem;color:var(--dim,#8a8aa0);white-space:nowrap;overflow:hidden;
  text-overflow:ellipsis;margin-bottom:5px}
.odd-val{font-family:'JetBrains Mono',monospace;font-weight:800;font-size:1.05rem}
.odd-prob{font-size:.7rem;color:var(--cyan,#06B6D4);margin-top:2px}
.score-pred{display:flex;align-items:center;justify-content:center;gap:14px;margin:6px 0}
.score-team{flex:1;font-size:.8rem;font-weight:600;text-align:center;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.score-num{font-family:'JetBrains Mono',monospace;font-weight:800;font-size:1.7rem;
  color:#fff;background:linear-gradient(135deg,#7C3AED,#06B6D4);padding:6px 16px;border-radius:12px;flex-shrink:0}
.score-note{text-align:center;font-size:.68rem;color:var(--dim,#8a8aa0);margin-top:6px}
body.light .odds-block,body.light .score-block{background:#F2F4F9 !important}
body.light .odd-cell{background:#FFFFFF !important}
body.light .odd-val{color:#0F172A}

/* ============================================================
   Flou ciblé des infos sensibles (freemium) — v49
   On floute SEULEMENT la zone, pas toute la carte.
   ============================================================ */
.locked-info{filter:blur(7px)!important;user-select:none;pointer-events:none;opacity:.85;position:relative}
.mini-lock{display:inline-flex;align-items:center;gap:4px;cursor:pointer;
  font-size:.7rem;font-weight:800;color:#fff;
  background:linear-gradient(135deg,#7C3AED,#06B6D4);
  padding:5px 12px;border-radius:99px;margin:6px auto 0;width:fit-content;
  box-shadow:0 3px 10px rgba(124,58,237,.4)}
.mcard{position:relative}

/* Flou des valeurs sensibles (gratuits voient la structure, pas les chiffres) */
.free-blur{filter:blur(5px);user-select:none}
.form-premium-hint{margin:12px 0;padding:11px;border-radius:11px;text-align:center;cursor:pointer;
  font-size:.8rem;color:#fff;background:linear-gradient(135deg,#7C3AED,#06B6D4)}
.form-premium-hint b{font-weight:800}

/* 3 scores estimés (offensif / équilibré / défensif) */
.score3-row{display:flex;align-items:center;justify-content:space-between;
  padding:9px 12px;margin-bottom:6px;border-radius:10px;
  background:var(--surface,#11111b);border:1px solid var(--stroke,#23233a)}
.score3-label{font-size:.82rem;font-weight:600}
.score3-num{font-family:'JetBrains Mono',monospace;font-weight:800;font-size:1.1rem;
  color:#fff;background:linear-gradient(135deg,#7C3AED,#06B6D4);padding:3px 12px;border-radius:8px}
.score3-hint{margin:8px 0 4px;padding:9px;border-radius:9px;text-align:center;cursor:pointer;
  font-size:.76rem;color:#fff;background:linear-gradient(135deg,#7C3AED,#06B6D4)}
.score3-hint b{font-weight:800}
body.light .score3-row{background:#FFFFFF !important}
body.light .score3-label{color:#0F172A}

/* ============================================================
   Barre d'outils Matchs — responsive mobile (v49)
   ============================================================ */
.match-tools{display:flex;gap:7px;flex-wrap:wrap;align-items:center;margin-bottom:10px}
.match-tools .match-search{flex:1 1 100%;min-width:0;padding:10px 13px;font-size:.85rem}
.match-tools .conf-filter{flex:1 1 auto;white-space:nowrap;padding:9px 12px;font-size:.78rem;
  border-radius:10px;text-align:center}
@media(min-width:420px){
  .match-tools .match-search{flex:1 1 auto}
}
/* Filtres avancés : grille adaptée mobile */
.adv-filters{display:flex;flex-wrap:wrap;gap:8px}
.adv-filters .adv-field{flex:1 1 100%;min-width:0}
@media(min-width:420px){
  .adv-filters .adv-field{flex:1 1 calc(50% - 6px)}
}
.adv-filters .adv-field select{width:100%;box-sizing:border-box}

/* Partenaires : logo + nom ensemble (v49) */
.partner-brand{display:flex;flex-direction:column;align-items:center;gap:4px;flex-shrink:0;z-index:1}
.partner-brand .partner-logo{width:46px;height:46px;margin:0}
.partner-brand .partner-name{font-size:.78rem;padding:3px 8px;background:rgba(124,58,237,.3)}

/* ============================================================
   Bloc Insight : value bet + risque + fiabilité (crédibilité)
   ============================================================ */
.insight-block{margin-bottom:16px;padding:14px;border-radius:14px;
  background:var(--surface-2,#161622);border:1px solid var(--stroke,#23233a)}
.insight-chip{font-size:.8rem;font-weight:700;padding:8px 12px;border-radius:10px;margin-bottom:10px;text-align:center}
.insight-value{background:linear-gradient(135deg,#16a34a,#06B6D4);color:#fff}
.insight-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px}
.insight-label{font-size:.8rem;color:var(--dim,#8a8aa0)}
.insight-risk{font-size:.78rem;font-weight:800;padding:3px 12px;border-radius:99px}
.risk-low{background:rgba(22,163,74,.18);color:#22c55e}
.risk-mid{background:rgba(245,158,11,.18);color:#f59e0b}
.risk-high{background:rgba(239,68,68,.18);color:#ef4444}
.insight-meter{flex:1;max-width:140px;height:8px;border-radius:4px;background:var(--stroke,#23233a);overflow:hidden}
.insight-meter-fill{display:block;height:100%;border-radius:4px;
  background:linear-gradient(90deg,#7C3AED,#06B6D4);transition:width .6s ease}
body.light .insight-block{background:#F2F4F9 !important}

/* Anti-tremblement : pas d'animation d'entrée sur les cartes de match
   (le rafraîchissement live ne doit pas faire clignoter la liste) */
#matchList .mcard{animation:none}

/* ============================================================
   Calculateur de gains (page Coupons)
   ============================================================ */
.calc-card{margin-top:14px;padding:16px;border-radius:16px;
  background:linear-gradient(160deg,rgba(6,182,212,.10),rgba(124,58,237,.06));
  border:1px solid var(--stroke,#23233a)}
.calc-head{font-weight:800;font-size:.95rem;margin-bottom:12px}
.calc-row{display:flex;gap:10px;margin-bottom:12px}
.calc-field{flex:1;display:flex;flex-direction:column;gap:5px}
.calc-field span{font-size:.72rem;color:var(--dim,#8a8aa0);font-weight:600}
.calc-field input{padding:11px 12px;border-radius:10px;border:1px solid var(--stroke-strong,#333);
  background:var(--surface-2,#161622);color:var(--text,#ECECF4);font:inherit;font-weight:700;
  font-family:'JetBrains Mono',monospace}
.calc-field input:focus{outline:none;border-color:var(--cyan,#06B6D4)}
.calc-result{background:var(--surface,#11111b);border-radius:12px;padding:12px 14px}
.calc-line{display:flex;justify-content:space-between;align-items:center;padding:4px 0}
.calc-line span{font-size:.84rem;color:var(--dim,#8a8aa0)}
.calc-line b{font-family:'JetBrains Mono',monospace;font-weight:800;font-size:1rem}
#calcGain{color:var(--cyan,#06B6D4)}
body.light .calc-result{background:#FFFFFF !important}
body.light .calc-field input{background:#F2F4F9 !important;color:#0F172A}

/* Liste des avantages premium */
.premium-benefits{list-style:none;padding:0;margin:0 0 16px;display:flex;flex-direction:column;gap:7px}
.premium-benefits li{font-size:.84rem;font-weight:500;line-height:1.3;
  background:var(--surface-2,#161622);border:1px solid var(--stroke,#23233a);
  padding:9px 12px;border-radius:10px}
body.light .premium-benefits li{background:#F2F4F9 !important}

/* ============================================================
   Stats du jour (accueil) — crédibilité
   ============================================================ */
.today-stats{display:flex;gap:8px;margin:12px 0}
.ts-item{flex:1;text-align:center;padding:12px 6px;border-radius:13px;
  background:linear-gradient(160deg,rgba(124,58,237,.12),rgba(6,182,212,.06));
  border:1px solid var(--stroke,#23233a)}
.ts-item b{display:block;font-size:1.3rem;font-weight:800;font-family:'JetBrains Mono',monospace;
  background:linear-gradient(135deg,#7C3AED,#06B6D4);-webkit-background-clip:text;
  background-clip:text;-webkit-text-fill-color:transparent}
.ts-item span{font-size:.66rem;color:var(--dim,#8a8aa0);line-height:1.2;display:block;margin-top:3px}

/* ============================================================
   Placeholders neutres pour matchs verrouillés (gratuits)
   Pas de couleur visible = pas de fuite des probabilités.
   ============================================================ */
.score-lock{font-size:1.5rem;opacity:.6;display:flex;align-items:center;justify-content:center;min-width:60px}
.prob-locked{margin:10px 0}
.prob-locked-bar{height:8px;border-radius:4px;
  background:repeating-linear-gradient(45deg,var(--stroke,#23233a),var(--stroke,#23233a) 8px,var(--surface-2,#1a1a28) 8px,var(--surface-2,#1a1a28) 16px)}
.prob-locked-pct{display:flex;justify-content:space-between;margin-top:5px;opacity:.5;font-size:.78rem}
.mcard-foot-locked{display:flex;align-items:center;justify-content:space-between;margin-top:10px;gap:8px}
.conf-lock{font-size:.78rem;color:var(--dim,#8a8aa0);font-weight:600}
.analyse-locked{opacity:.85;background:linear-gradient(135deg,#7C3AED,#06B6D4)!important;color:#fff!important}

/* Avantages premium en accordéon FAQ */
.premium-benefits-faq{display:flex;flex-direction:column;gap:7px;margin-bottom:16px}
.pb-item{background:var(--surface-2,#161622);border:1px solid var(--stroke,#23233a);
  border-radius:11px;overflow:hidden}
.pb-item summary{padding:11px 13px;cursor:pointer;font-weight:600;font-size:.84rem;list-style:none;
  display:flex;justify-content:space-between;align-items:center}
.pb-item summary::-webkit-details-marker{display:none}
.pb-item summary::after{content:"+";color:var(--cyan,#06B6D4);font-size:1.1rem}
.pb-item[open] summary::after{content:"−"}
.pb-item p{margin:0;padding:0 13px 12px;font-size:.8rem;color:var(--dim,#8a8aa0);line-height:1.5}
body.light .pb-item{background:#F2F4F9 !important}

/* Sélecteur de stratégie du générateur (chips scrollables) */
.gen-strategy-label{font-size:.72rem;color:var(--dim,#8a8aa0);font-weight:600;margin-bottom:7px}
.gen-strategies{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px;margin-bottom:12px;
  scrollbar-width:none;-webkit-overflow-scrolling:touch}
.gen-strategies::-webkit-scrollbar{display:none}
.gen-strat{flex-shrink:0;padding:9px 16px;border-radius:11px;cursor:pointer;font-weight:700;
  font-size:.82rem;white-space:nowrap;border:1px solid var(--stroke,#23233a);
  background:var(--surface-2,#161622);color:var(--dim,#8a8aa0);transition:all .15s}
.gen-strat.active{background:linear-gradient(135deg,#7C3AED,#06B6D4);color:#fff;border-color:transparent}
.gen-strat:active{transform:scale(.96)}
body.light .gen-strat{background:#F2F4F9 !important}

/* Avantages premium : un seul accordéon déroulant */
.premium-benefits-single{margin-bottom:16px;background:var(--surface-2,#161622);
  border:1px solid var(--stroke,#23233a);border-radius:12px;overflow:hidden}
.premium-benefits-single summary{padding:13px 15px;cursor:pointer;font-weight:700;font-size:.86rem;
  list-style:none;display:flex;justify-content:space-between;align-items:center}
.premium-benefits-single summary::-webkit-details-marker{display:none}
.premium-benefits-single summary::after{content:"▼";font-size:.7rem;color:var(--cyan,#06B6D4);transition:transform .2s}
.premium-benefits-single[open] summary::after{transform:rotate(180deg)}
.premium-benefits-single ul{list-style:none;padding:0 15px 14px;margin:0;display:flex;flex-direction:column;gap:8px}
.premium-benefits-single li{font-size:.82rem;line-height:1.35}
body.light .premium-benefits-single{background:#F2F4F9 !important}

/* ============================================================
   Barre de dates scrollable (page Matchs)
   ============================================================ */
.date-bar{display:flex;gap:8px;overflow-x:auto;padding:4px 0 10px;margin-bottom:8px;
  scrollbar-width:none;-webkit-overflow-scrolling:touch}
.date-bar::-webkit-scrollbar{display:none}
.date-chip{flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:2px;
  padding:9px 14px;border-radius:13px;cursor:pointer;border:1px solid var(--stroke,#23233a);
  background:var(--surface-2,#161622);min-width:64px;transition:all .15s}
.date-chip.active{border-color:var(--cyan,#06B6D4);
  background:linear-gradient(160deg,rgba(6,182,212,.15),rgba(124,58,237,.1));
  box-shadow:0 0 0 1px var(--cyan,#06B6D4)}
.date-day{font-size:.62rem;font-weight:700;color:var(--dim,#8a8aa0);text-transform:uppercase;letter-spacing:.02em}
.date-chip.active .date-day{color:var(--cyan,#06B6D4)}
.date-num{font-size:.86rem;font-weight:800;font-family:'JetBrains Mono',monospace}
body.light .date-chip{background:#F2F4F9 !important}
body.light .date-num{color:#0F172A}

/* ============================================================
   Chat IA — bouton flottant + modale conversationnelle
   ============================================================ */
.ai-fab{position:fixed;right:16px;bottom:84px;z-index:60;width:56px;height:56px;
  border-radius:50%;border:0;cursor:pointer;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#7C3AED,#06B6D4);
  box-shadow:0 6px 20px rgba(124,58,237,.5);animation:aiFloat 2.8s ease-in-out infinite}
@keyframes aiFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.ai-fab:active{transform:scale(.92)}
.ai-chat-modal{position:fixed;inset:0;z-index:200;display:none;align-items:flex-end;justify-content:center;
  background:rgba(0,0,0,.5);backdrop-filter:blur(4px)}
.ai-chat-modal.open{display:flex}
.ai-chat-sheet{width:100%;max-width:600px;height:85vh;background:var(--bg,#0a0a12);
  border-radius:22px 22px 0 0;display:flex;flex-direction:column;overflow:hidden;
  animation:sheetUp .3s ease}
@keyframes sheetUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
.ai-chat-header{display:flex;align-items:center;justify-content:space-between;padding:16px;
  border-bottom:1px solid var(--stroke,#23233a);
  background:linear-gradient(135deg,rgba(124,58,237,.15),rgba(6,182,212,.08))}
.ai-chat-title{font-weight:800;font-size:1rem}
.ai-chat-close{background:none;border:0;color:var(--dim,#8a8aa0);font-size:1.3rem;cursor:pointer;padding:4px 8px}
.ai-chat-body{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}
.ai-msg{max-width:85%;padding:11px 14px;border-radius:14px;font-size:.88rem;line-height:1.45}
.ai-msg p{margin:0 0 8px}.ai-msg p:last-child{margin:0}
.ai-msg-bot{align-self:flex-start;background:var(--surface-2,#161622);
  border:1px solid var(--stroke,#23233a);border-bottom-left-radius:4px}
.ai-msg-user{align-self:flex-end;color:#fff;
  background:linear-gradient(135deg,#7C3AED,#06B6D4);border-bottom-right-radius:4px}
.ai-bullet{margin:3px 0}
.ai-typing{opacity:.6;letter-spacing:3px;animation:aiPulse 1s ease-in-out infinite}
@keyframes aiPulse{0%,100%{opacity:.4}50%{opacity:.9}}
.ai-chat-suggestions{display:flex;flex-wrap:wrap;gap:7px;padding:0 16px 10px}
.ai-sugg{font-size:.76rem;padding:7px 12px;border-radius:99px;cursor:pointer;
  border:1px solid var(--stroke-strong,#333);background:var(--surface-2,#161622);
  color:var(--text,#ECECF4)}
.ai-sugg:active{transform:scale(.96)}
.ai-chat-input{display:flex;gap:8px;padding:12px 16px;border-top:1px solid var(--stroke,#23233a);
  background:var(--surface,#11111b)}
.ai-chat-input input{flex:1;padding:12px 14px;border-radius:12px;border:1px solid var(--stroke-strong,#333);
  background:var(--surface-2,#161622);color:var(--text,#ECECF4);font:inherit;font-size:.9rem}
.ai-chat-input input:focus{outline:none;border-color:var(--cyan,#06B6D4)}
.ai-chat-send{width:46px;border:0;border-radius:12px;cursor:pointer;font-size:1.1rem;color:#fff;
  background:linear-gradient(135deg,#7C3AED,#06B6D4)}
.ai-chat-send:active{transform:scale(.94)}
body.light .ai-chat-sheet{background:#FFFFFF}
body.light .ai-msg-bot{background:#F2F4F9}

/* ============================================================
   Conteneurs riches dans le chat IA (style Claude)
   ============================================================ */
.aic-prono{margin:8px 0;padding:12px;border-radius:12px;
  background:linear-gradient(135deg,rgba(124,58,237,.15),rgba(6,182,212,.08));
  border:1px solid rgba(124,58,237,.3)}
.aic-prono-teams{font-weight:700;font-size:.9rem;margin-bottom:5px}
.aic-prono-teams span{color:var(--dim,#8a8aa0);font-weight:400;font-size:.78rem}
.aic-prono-verdict{color:var(--win,#00FF88);font-weight:700;font-size:.84rem;margin-bottom:6px}
.aic-prono-conf{font-size:.74rem;color:var(--dim,#8a8aa0);display:flex;align-items:center;gap:8px}
.aic-bar{flex:1;max-width:120px;height:6px;border-radius:3px;background:var(--stroke,#23233a);overflow:hidden}
.aic-bar span{display:block;height:100%;background:linear-gradient(90deg,#7C3AED,#06B6D4)}
.aic-coupon{margin:8px 0;padding:12px;border-radius:12px;
  background:var(--surface,#11111b);border:1px solid var(--stroke,#23233a)}
.aic-coupon-head{font-weight:800;font-size:.85rem;margin-bottom:8px}
.aic-coupon-leg{font-size:.8rem;padding:6px 0;border-bottom:1px solid rgba(255,255,255,.05)}
.aic-coupon-total{margin-top:8px;font-size:.84rem}
.aic-coupon-total b{font-family:'JetBrains Mono',monospace;color:var(--cyan,#06B6D4)}
.aic-stat{display:inline-flex;flex-direction:column;align-items:center;gap:2px;margin:6px 6px 6px 0;
  padding:10px 16px;border-radius:11px;background:linear-gradient(135deg,#7C3AED,#06B6D4);color:#fff}
.aic-stat b{font-size:1.2rem;font-family:'JetBrains Mono',monospace}
.aic-stat span{font-size:.66rem;opacity:.9}
.aic-info{margin:8px 0;padding:11px 13px;border-radius:11px;font-size:.82rem;
  background:rgba(255,184,0,.12);border:1px solid rgba(255,184,0,.3);color:var(--text,#ECECF4)}
body.light .aic-coupon{background:#FFFFFF !important}

/* ============================================================
   Pull-to-refresh (tirer pour rafraîchir)
   ============================================================ */
.ptr-indicator{position:fixed;top:0;left:50%;transform:translateX(-50%) translateY(0);
  z-index:150;opacity:0;transition:opacity .2s;width:40px;height:40px;border-radius:50%;
  background:var(--surface,#11111b);border:1px solid var(--stroke,#23233a);
  display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(0,0,0,.3)}
.ptr-spinner{width:18px;height:18px;border:2.5px solid var(--stroke,#23233a);
  border-top-color:var(--cyan,#06B6D4);border-radius:50%}
.ptr-indicator.ptr-active .ptr-spinner{animation:spin .7s linear infinite}

/* ============================================================
   Réactivité tactile globale + responsive (v56)
   ============================================================ */
/* Feedback tactile immédiat sur tous les éléments cliquables */
button, .nav-item, .sport-chip, .tab, .date-chip, .coupon-tab, .gen-strat,
.mcard, .fav-alert, .pick-row, .plan, .partner-card, a {
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}
/* Calculateur de gains responsive */
.calc-row{flex-wrap:wrap}
.calc-field{flex:1 1 calc(50% - 5px);min-width:120px}
@media(max-width:360px){
  .calc-field{flex:1 1 100%}
}
.calc-field input{width:100%;box-sizing:border-box}
.calc-result{box-sizing:border-box;width:100%}
.calc-line{flex-wrap:wrap;gap:4px}
.calc-line b{font-size:.92rem;word-break:break-word}
/* Empêcher les débordements horizontaux partout */
.view, .coupon-card, .gen-card, .calc-card, .premium-wrap, .mcard{
  max-width:100%;box-sizing:border-box}

/* ============================================================
   Cartes de match RÉELLES dans le chat IA (live, score, analyse)
   ============================================================ */
.ai-match-wrap{max-width:95%!important;padding:0!important;background:none!important;border:0!important}
.aim-card{padding:13px;border-radius:14px;
  background:linear-gradient(160deg,rgba(124,58,237,.12),rgba(6,182,212,.06));
  border:1px solid rgba(124,58,237,.3)}
.aim-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.aim-league{font-size:.68rem;font-weight:700;color:var(--dim,#8a8aa0);text-transform:uppercase;letter-spacing:.03em}
.aim-live{font-size:.68rem;font-weight:800;color:#ff5470;animation:aiPulse 1.2s infinite}
.aim-time{font-size:.68rem;color:var(--dim,#8a8aa0)}
.aim-teams{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.aim-team{flex:1;font-weight:700;font-size:.82rem;text-align:center}
.aim-score{font-family:'JetBrains Mono',monospace;font-weight:800;font-size:1.15rem;
  color:#fff;background:linear-gradient(135deg,#7C3AED,#06B6D4);padding:3px 12px;border-radius:8px;white-space:nowrap}
.aim-vs{font-size:.72rem;font-weight:700;color:var(--dim,#8a8aa0)}
.aim-prono{display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:8px 10px;border-radius:9px;background:var(--surface,#11111b);margin-bottom:10px}
.aim-verdict{font-size:.8rem;font-weight:700;color:var(--win,#00FF88)}
.aim-conf{font-size:.76rem;color:var(--dim,#8a8aa0);font-weight:600}
.aim-analyse{width:100%;padding:10px;border:0;border-radius:10px;cursor:pointer;
  font-weight:700;font-size:.82rem;color:#fff;background:linear-gradient(135deg,#7C3AED,#06B6D4)}
.aim-analyse:active{transform:scale(.97)}
body.light .aim-prono{background:#FFFFFF!important}

/* Entête contextuel des cartes de match dans le chat */
.ai-match-head{font-size:.74rem!important;color:var(--dim,#8a8aa0)!important;
  background:none!important;border:0!important;padding:4px 2px!important;font-weight:600}
