:root{
  --noir:#050505; --noir2:#111111; --noir3:#1c1c1c; --rouge:#E31C3D; --rouge-vif:#ff4d68; --rouge-sombre:#a3172f;
  --blanc:#F2F0EC; --argent:rgba(242,240,236,0.5); --line:rgba(255,59,92,0.15);
  --commune:#cdf2e1; --commune-fond:#1c5f40;
  --peucommune:#b7d1f2; --peucommune-fond:#1c395f;
  --rare:#cfb7f1; --rare-fond:#371c5f;
  --ultrarare:#f294bb; --ultrarare-fond:#5f1c37;
  --legendaire:#fdb756; --legendaire-fond:#5f431c;
}

.zone-reveal{
  display:flex;
  gap:1.4rem;
  margin-top:2.5rem;
  perspective:1200px;
  flex-wrap:wrap;
  justify-content:center;
  align-items:center;
}

.carte-flip{
  width:170px;
  height:265px;
  cursor:pointer;
  position:relative;
  transition:transform .25s ease, filter .25s ease;
}

.carte-flip:hover{
  transform:translateY(-8px) scale(1.025);
}

.flip-inner{
  position:relative;
  width:100%;
  height:100%;
  transition:transform .6s cubic-bezier(.2,.75,.2,1);
  transform-style:preserve-3d;
}

.carte-flip.revelee .flip-inner{
  transform:rotateY(180deg);
}

.flip-face{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  backface-visibility:hidden;
  border-radius:14px;
  overflow:hidden;
}

.flip-back{
  background:var(--noir2);
  border:1px solid rgba(255,255,255,.14);
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.04),
    0 0 0 1px rgba(0,0,0,.9);
}

.flip-back img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.flip-front{
  transform:rotateY(180deg);
  position:relative;
  display:flex;
  border-radius:13px;
  border:1px solid rgba(255,255,255,.42) !important;
  box-shadow:
    0 2px 5px rgba(0,0,0,0.55),
    0 8px 14px rgba(0,0,0,0.4),
    inset 0 1px 0 rgba(255,255,255,0.15),
    inset 0 0 0 1px rgba(255,255,255,.10),
    inset 0 -18px 30px rgba(0,0,0,.42) !important;
  outline:1px solid rgba(255,255,255,.055);
  outline-offset:-5px;
}

.perfo{
  width:9px;
  flex-shrink:0;
  align-self:stretch;
  background-image:radial-gradient(circle,#030303 2px,transparent 2.3px);
  background-size:100% 13px;
  background-position:center 5px;
  background-repeat:repeat-y;
  background-color:#252525;
  box-shadow:inset -1px 0 rgba(255,255,255,.08);
}

.colonne-centrale{
  flex:1;
  display:flex;
  flex-direction:column;
  min-width:0;
  position:relative;
}

.affiche{
  flex:1;
  position:relative;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:
    inset 0 1px rgba(255,255,255,.10),
    inset 0 -1px rgba(0,0,0,.25);
}

.affiche::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg,
    rgba(0,0,0,.04) 45%,
    rgba(0,0,0,.38) 100%);
  box-shadow:inset 0 0 28px rgba(0,0,0,.55);
}

.affiche img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}

.badge-niveau{
  position:absolute;
  top:8px;
  left:8px;
  z-index:12;
  width:23px;
  height:23px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:'Space Grotesk',sans-serif;
  font-weight:800;
  font-size:.56rem;
  color:#080808;
  border:1px solid rgba(255,255,255,.5);
  box-shadow:
    0 2px 8px rgba(0,0,0,.55),
    inset 0 1px 2px rgba(255,255,255,.5);
}

.infos{
  padding:.6rem .65rem .7rem;
  border-top:1px solid rgba(255,255,255,.1);
  position:relative;
  z-index:11;
}

.desc{
  font-family:'IBM Plex Mono',monospace;
  font-size:.55rem;
  color:rgba(255,255,255,.62);
  margin-bottom:.55rem;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.stats{
  display:flex;
  gap:.4rem;
}

.stat{
  flex:1;
  background:rgba(0,0,0,.34);
  border:1px solid rgba(255,255,255,.08);
  border-radius:6px;
  padding:.38rem .42rem;
  box-shadow:inset 0 1px rgba(255,255,255,.035);
}

.stat-label{
  font-family:'IBM Plex Mono',monospace;
  font-size:.48rem;
  color:rgba(255,255,255,.5);
  text-transform:uppercase;
  letter-spacing:.08em;
}

.stat-val{
  font-family:'Space Grotesk',sans-serif;
  font-weight:800;
  font-size:.78rem;
  color:#f2f0ec;
  letter-spacing:.02em;
}

.c-commune .affiche, .c-commune .infos{ background:var(--commune-fond); }
.c-commune .badge-niveau{ background:var(--commune); } .c-commune .stat-val{ color:var(--commune); }
.c-peu_commune .affiche, .c-peu_commune .infos{ background:var(--peucommune-fond); }
.c-peu_commune .badge-niveau{ background:var(--peucommune); } .c-peu_commune .stat-val{ color:var(--peucommune); }
.c-rare .affiche, .c-rare .infos{ background:var(--rare-fond); }
.c-rare .badge-niveau{ background:var(--rare); } .c-rare .stat-val{ color:var(--rare); }
.c-ultra_rare .affiche, .c-ultra_rare .infos{ background:var(--ultrarare-fond); }
.c-ultra_rare .badge-niveau{ background:var(--ultrarare); } .c-ultra_rare .stat-val{ color:var(--ultrarare); }
.c-legendaire .affiche, .c-legendaire .infos{ background:var(--legendaire-fond); }
.flip-front.c-commune{ box-shadow: 0 2px 5px rgba(0,0,0,0.55), 0 8px 14px rgba(0,0,0,0.4), inset 0 1px 0 rgba(255,255,255,0.15), inset 0 0 0 1px rgba(255,255,255,.10), inset 0 -18px 30px rgba(0,0,0,.42), 0 0 0 1.5px rgba(205,242,225,0.8) !important; }
.flip-front.c-peu_commune{ box-shadow: 0 2px 5px rgba(0,0,0,0.55), 0 8px 14px rgba(0,0,0,0.4), inset 0 1px 0 rgba(255,255,255,0.15), inset 0 0 0 1px rgba(255,255,255,.10), inset 0 -18px 30px rgba(0,0,0,.42), 0 0 0 1.5px rgba(183,209,242,0.8) !important; }
.flip-front.c-rare{ box-shadow: 0 2px 5px rgba(0,0,0,0.55), 0 8px 14px rgba(0,0,0,0.4), inset 0 1px 0 rgba(255,255,255,0.15), inset 0 0 0 1px rgba(255,255,255,.10), inset 0 -18px 30px rgba(0,0,0,.42), 0 0 0 1.5px rgba(207,183,241,0.8) !important; }
.flip-front.c-ultra_rare{ box-shadow: 0 2px 5px rgba(0,0,0,0.55), 0 8px 14px rgba(0,0,0,0.4), inset 0 1px 0 rgba(255,255,255,0.15), inset 0 0 0 1px rgba(255,255,255,.10), inset 0 -18px 30px rgba(0,0,0,.42), 0 0 0 1.5px rgba(242,148,187,0.85) !important; }
.flip-front.c-legendaire{ box-shadow: 0 2px 5px rgba(0,0,0,0.55), 0 8px 14px rgba(0,0,0,0.4), inset 0 1px 0 rgba(255,255,255,0.15), inset 0 0 0 1px rgba(255,255,255,.10), inset 0 -18px 30px rgba(0,0,0,.42), 0 0 0 1.5px rgba(253,183,86,0.9) !important; }

.c-legendaire .badge-niveau{ background:var(--legendaire); } .c-legendaire .stat-val{ color:var(--legendaire); }

.c-commune{
  border-color:rgba(205,242,225,.48) !important;
  box-shadow:
    0 0 0 1px rgba(205,242,225,.10),
    0 10px 28px rgba(0,0,0,.62),
    inset 0 0 18px rgba(205,242,225,.055) !important;
}

.c-peu_commune{
  border-color:rgba(183,209,242,.58) !important;
  box-shadow:
    0 0 0 1px rgba(183,209,242,.12),
    0 10px 28px rgba(0,0,0,.62),
    inset 0 0 20px rgba(110,170,255,.075) !important;
}

.c-rare{
  border-color:rgba(207,183,241,.72) !important;
  box-shadow:
    0 0 0 1px rgba(207,183,241,.16),
    0 0 22px rgba(145,90,220,.18),
    0 12px 30px rgba(0,0,0,.65),
    inset 0 0 24px rgba(150,100,230,.09) !important;
}

.c-ultra_rare{
  border-color:rgba(242,148,187,.78) !important;
  box-shadow:
    0 0 0 1px rgba(242,148,187,.18),
    0 0 28px rgba(220,55,125,.24),
    0 12px 32px rgba(0,0,0,.68),
    inset 0 0 28px rgba(225,55,125,.11) !important;
}

.c-legendaire{
  border-color:rgba(255,235,190,.88) !important;
  box-shadow:
    0 0 0 1px rgba(255,255,255,.22),
    0 0 32px rgba(255,205,105,.24),
    0 12px 34px rgba(0,0,0,.70),
    inset 0 0 30px rgba(255,215,130,.12) !important;
}

.flip-front::before{
  content:"";
  position:absolute;
  inset:3px;
  z-index:1;
  pointer-events:none;
  border-radius:11px;
  background:
    linear-gradient(
      135deg,
      rgba(255,255,255,.16) 0%,
      transparent 14%,
      rgba(255,255,255,.035) 31%,
      rgba(255,255,255,.10) 50%,
      rgba(255,255,255,.025) 67%,
      transparent 84%,
      rgba(255,255,255,.13) 100%
    );
  mix-blend-mode:screen;
}

.flip-front::after{
  content:"";
  position:absolute;
  inset:4px;
  z-index:1;
  pointer-events:none;
  border-radius:10px;
  background:
    repeating-linear-gradient(
      118deg,
      transparent 0px,
      transparent 6px,
      rgba(255,255,255,.018) 7px,
      transparent 8px
    ),
    linear-gradient(
      135deg,
      rgba(255,30,110,.055) 0%,
      transparent 22%,
      rgba(70,220,255,.055) 48%,
      transparent 73%,
      rgba(255,215,80,.05) 100%
    );
  mix-blend-mode:screen;
  opacity:.9;
}

.c-rare.flip-front::after{
  background:
    repeating-linear-gradient(
      118deg,
      transparent 0px,
      transparent 6px,
      rgba(255,255,255,.018) 7px,
      transparent 8px
    ),
    linear-gradient(
      135deg,
      rgba(170,100,255,.09),
      transparent 30%,
      rgba(80,210,255,.055) 52%,
      transparent 72%,
      rgba(255,120,210,.07)
    );
}

.c-ultra_rare.flip-front::after{
  background:
    repeating-linear-gradient(
      118deg,
      transparent 0px,
      transparent 6px,
      rgba(255,255,255,.018) 7px,
      transparent 8px
    ),
    linear-gradient(
      135deg,
      rgba(255,70,150,.10),
      transparent 27%,
      rgba(90,210,255,.065) 52%,
      transparent 72%,
      rgba(255,210,90,.075)
    );
}

.c-legendaire.flip-front::after{
  background:
    repeating-linear-gradient(
      118deg,
      transparent 0px,
      transparent 6px,
      rgba(255,255,255,.022) 7px,
      transparent 8px
    ),
    linear-gradient(
      135deg,
      rgba(255,220,120,.11),
      rgba(255,255,255,.035) 25%,
      rgba(190,220,255,.065) 50%,
      rgba(255,190,110,.09) 100%
    );
}

.flip-front .affiche,
.flip-front .infos{
  z-index:2;
}

.flip-front .badge-niveau{
  display:none !important;
}

.popup-overlay{
  position:fixed; inset:0; background:rgba(0,0,0,0.78);
  display:flex; align-items:center; justify-content:center; z-index:100; padding:1.5rem;
}
.popup-overlay.hidden{ display:none; }

.popup-carte{
  background:var(--noir2); border-radius:16px; max-width:420px; width:100%;
  overflow-y:auto; overflow-x:hidden; display:flex; flex-direction:column; max-height:90vh;
  box-shadow:0 24px 60px -12px rgba(0,0,0,0.7);
}

.popup-carte-lexique-wrap{ display:flex; gap:1.3rem; align-items:flex-start; width:100%; }
@media (max-width:600px){
  .popup-carte-lexique-wrap{ flex-direction:column; align-items:center; }
  .popup-carte-lexique-wrap .lexique-tcg{ width:100%; }
  .popup-carte-lexique-wrap .carte-tcg.grande{ --taille-carte:200px !important; width:200px !important; height:300px !important; flex-shrink:0 !important; aspect-ratio:unset !important; }
}

.popup-header{ display:flex; justify-content:flex-end; padding:0.5rem 0.5rem 0; }
.popup-close{ background:none; border:none; color:var(--argent); font-size:1.5rem; cursor:pointer; line-height:1; padding:0.3rem 0.6rem; }
.popup-close:hover{ color:var(--blanc); }

.popup-corps{ display:flex; gap:1.1rem; padding:0 1.2rem 1rem; overflow-y:auto; }
.popup-affiche{ width:140px; flex-shrink:0; aspect-ratio:2/3; border-radius:10px; overflow:hidden; position:relative; }
.popup-affiche img{ width:100%; height:100%; object-fit:contain; }

.popup-infos{ flex:1; min-width:0; }
.popup-rarete{ font-family:'IBM Plex Mono',monospace; font-size:0.68rem; font-weight:600; margin-bottom:0.4rem; text-transform:uppercase; letter-spacing:0.04em; }
.popup-titre{ font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:1.05rem; margin-bottom:0.2rem; line-height:1.25; }
.popup-desc{ font-family:'IBM Plex Mono',monospace; font-size:0.72rem; color:var(--argent); margin-bottom:0.7rem; }
.popup-numero{ font-family:'IBM Plex Mono',monospace; font-size:0.65rem; color:var(--argent); margin-bottom:0.7rem; }

.popup-stats{ display:flex; gap:0.5rem; }
.popup-stat{ flex:1; background:var(--noir); border-radius:8px; padding:0.5rem 0.6rem; }
.popup-stat-label{ font-family:'IBM Plex Mono',monospace; font-size:0.58rem; color:var(--argent); text-transform:uppercase; }
.popup-stat-val{ font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:0.95rem; }

.popup-actions{ padding:1rem 1.2rem 1.2rem; border-top:1px solid var(--line); }
.popup-actions label{ display:block; font-family:'IBM Plex Mono',monospace; font-size:0.7rem; color:var(--argent); margin-bottom:0.3rem; }
.popup-actions input{ width:100%; background:var(--noir); border:1px solid var(--line); color:var(--blanc); padding:0.5rem 0.7rem; border-radius:8px; font-size:0.85rem; margin-bottom:0.8rem; }
.popup-duree{ display:flex; gap:0.4rem; margin-bottom:0.9rem; }
.popup-duree button{ flex:1; background:var(--noir); border:1px solid var(--line); color:var(--argent); padding:0.4rem; border-radius:8px; font-family:'IBM Plex Mono',monospace; font-size:0.75rem; cursor:pointer; }
.popup-duree button.actif{ background:rgba(227,28,61,0.15); border-color:var(--rouge); color:var(--rouge); }
.popup-btn{ width:100%; padding:0.6rem; border-radius:100px; border:none; font-family:'IBM Plex Sans',sans-serif; font-weight:600; font-size:0.85rem; cursor:pointer; margin-bottom:0.5rem; }
.popup-btn-vendre{ background:var(--rouge); color:var(--blanc); }
.popup-btn-defausser{ background:var(--noir); color:var(--argent); border:1px solid var(--line); }
.popup-btn-encherir{ background:var(--rouge); color:var(--blanc); }
.popup-btn-annuler{ background:var(--noir); color:var(--rouge); border:1px solid var(--rouge); }

.grille-simple{ display:grid; grid-template-columns:repeat(auto-fill,minmax(130px,1fr)); gap:1rem; justify-items:center; }
.carte-vignette{ cursor:pointer; }
.carte-vignette .corps{ background:var(--noir2); border-radius:12px; overflow:hidden; position:relative; box-shadow:0 10px 22px -8px rgba(0,0,0,0.6); transition:transform 0.15s; }
.carte-vignette:hover .corps{ transform:translateY(-4px); }
.carte-vignette .affiche{ aspect-ratio:2/3; position:relative; overflow:hidden; display:flex; align-items:center; justify-content:center; }
.carte-vignette .affiche img{ width:100%; height:100%; object-fit:contain; }
.carte-vignette .badge-niveau{ position:absolute; top:6px; left:6px; z-index:3; width:20px; height:20px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:0.55rem; color:var(--noir); }
.carte-vignette .sous-info{ padding:0.4rem 0.5rem 0.5rem; font-family:'IBM Plex Mono',monospace; font-size:0.62rem; color:var(--argent); text-align:center; }
.carte-vignette.manquante .corps{ filter:grayscale(1); opacity:0.35; }

.carte-vignette.c-commune .affiche{ background:var(--commune-fond); }
.carte-vignette.c-commune .badge-niveau{ background:var(--commune); }
.carte-vignette.c-peu_commune .affiche{ background:var(--peucommune-fond); }
.carte-vignette.c-peu_commune .badge-niveau{ background:var(--peucommune); }
.carte-vignette.c-rare .affiche{ background:var(--rare-fond); }
.carte-vignette.c-rare .badge-niveau{ background:var(--rare); }
.carte-vignette.c-ultra_rare .affiche{ background:var(--ultrarare-fond); }
.carte-vignette.c-ultra_rare .badge-niveau{ background:var(--ultrarare); }
.carte-vignette.c-legendaire .affiche{ background:var(--legendaire-fond); }
.carte-vignette.c-legendaire .badge-niveau{ background:var(--legendaire); }

.popup-corps-2col{ display:flex; gap:1.3rem; padding:0.5rem 1.4rem 1rem; align-items:center; }
.popup-corps-carte{ display:flex; flex-direction:column; align-items:flex-start; flex-shrink:0; perspective:1200px; }
.popup-lexique{ flex:1; display:flex; flex-direction:column; gap:0.65rem; min-width:0; }
.popup-lexique-ligne{ display:flex; flex-direction:column; gap:0.15rem; }
.popup-lexique-label{ font-family:'IBM Plex Mono',monospace; font-size:0.62rem; color:var(--argent); text-transform:uppercase; letter-spacing:0.05em; }
.popup-lexique-val{ font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:0.92rem; color:var(--blanc); }

.badge-notif{ display:inline-flex; align-items:center; justify-content:center; min-width:16px; height:16px; padding:0 4px; background:var(--rouge); color:var(--blanc); border-radius:100px; font-size:0.62rem; font-weight:700; font-family:'IBM Plex Mono',monospace; float:right; margin-top:1px; }
.sidebar-recherche{ position:relative; margin:0.6rem 0; }
.sidebar-recherche input{ width:100%; background:var(--noir); border:1px solid var(--line); color:var(--blanc); padding:0.5rem 0.7rem; border-radius:8px; font-family:'IBM Plex Mono',monospace; font-size:0.75rem; }
.sidebar-resultats-joueur{ position:absolute; top:calc(100% + 4px); left:0; right:0; background:var(--noir2); border:1px solid var(--line); border-radius:8px; overflow:hidden; z-index:20; display:none; }
.sidebar-resultats-joueur.visible{ display:block; }
.sidebar-resultat-item{ padding:0.5rem 0.7rem; cursor:pointer; font-family:'IBM Plex Mono',monospace; font-size:0.75rem; }
.sidebar-resultat-item:hover{ background:rgba(255,255,255,0.05); }

.badge-wishlist{
  position:absolute; top:8px; right:8px; z-index:12;
  width:23px; height:23px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:rgba(227,28,61,0.9); color:#fff;
  font-size:0.9rem; line-height:1;
  border:1px solid rgba(255,255,255,.5);
  box-shadow:0 2px 8px rgba(0,0,0,.55), inset 0 1px 2px rgba(255,255,255,.3);
}

.badge-wishlist{
  position:absolute; top:8px; right:8px; z-index:12;
  width:23px; height:23px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:rgba(227,28,61,0.9); color:#fff;
  font-size:0.9rem; line-height:1;
  border:1px solid rgba(255,255,255,.5);
  box-shadow:0 2px 8px rgba(0,0,0,.55), inset 0 1px 2px rgba(255,255,255,.3);
}

.popup-titre-carte{
  font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:1.05rem;
  line-height:1.3; margin-bottom:0.8rem; word-wrap:break-word; overflow-wrap:break-word;
}

.popup-badge-possedee{
  display:inline-block; box-sizing:border-box; text-align:left;
  font-family:'IBM Plex Mono',monospace; font-size:0.55rem;
  color:var(--commune); background:rgba(205,242,225,0.08); border:1px solid rgba(205,242,225,0.2);
  padding:0.1rem 0.4rem; border-radius:4px; margin-bottom:0.4rem;
}
.popup-badge-non-possedee{
  display:inline-block; box-sizing:border-box; text-align:left;
  font-family:'IBM Plex Mono',monospace; font-size:0.55rem;
  color:var(--rouge); background:rgba(227,28,61,0.08); border:1px solid rgba(227,28,61,0.2);
  padding:0.1rem 0.4rem; border-radius:4px; margin-bottom:0.4rem;
}

/* Effet spécial révélation Légendaire */
.carte-flip.legendaire-reveal .flip-inner{
  transition:transform 3s cubic-bezier(.2,.75,.2,1) !important;
}
.flip-front.c-legendaire.holo-actif::before{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(
    100deg,
    transparent 0%,
    rgba(255,255,255,0.2) 45%,
    rgba(255,255,255,0.45) 50%,
    rgba(255,255,255,0.2) 55%,
    transparent 100%
  );
  mix-blend-mode:overlay;
  pointer-events:none;
  z-index:5;
  animation:balayageHoloLegendaire 2.6s ease-in-out infinite;
}
@keyframes balayageHoloLegendaire{
  0%{ transform:translateX(-120%); opacity:0; }
  8%{ opacity:1; }
  35%{ transform:translateX(120%); opacity:0; }
  100%{ transform:translateX(120%); opacity:0; }
}

/* Navigation mobile */
.mobile-nav{
  display:none;
  position:fixed; bottom:0; left:0; right:0; z-index:100;
  background:var(--noir2); border-top:1px solid var(--line);
  padding:0.5rem 0.3rem calc(0.5rem + env(safe-area-inset-bottom));
  justify-content:space-around; align-items:center;
}
.mobile-nav a, .mobile-nav button{
  display:flex; flex-direction:column; align-items:center; gap:0.15rem;
  color:var(--argent); text-decoration:none; background:none; border:none;
  font-family:'IBM Plex Mono',monospace; font-size:0.62rem; padding:0.3rem;
  cursor:pointer;
}
.mobile-nav a span:first-child, .mobile-nav button span:first-child{ display:flex; align-items:center; justify-content:center; }
.mobile-nav a svg, .mobile-nav button svg{ display:block; }
.mobile-nav a.actif{ color:var(--rouge); }

.mobile-drawer{
  display:none;
  position:fixed; inset:0; z-index:200;
  background:rgba(0,0,0,0.7);
}
.mobile-drawer.ouvert{ display:block; }
.mobile-drawer-contenu{
  position:absolute; bottom:0; left:0; right:0;
  background:var(--noir2); border-top:1px solid var(--line);
  border-radius:16px 16px 0 0;
  padding:1.5rem 1rem calc(1.5rem + env(safe-area-inset-bottom));
  display:flex; flex-direction:column; gap:0.3rem;
  max-height:70vh; overflow-y:auto;
}
.mobile-drawer-contenu a, .mobile-drawer-contenu span.desactive{
  display:flex; align-items:center; gap:0.8rem;
  color:var(--argent); text-decoration:none; font-family:'IBM Plex Mono',monospace;
  font-size:0.9rem; padding:0.8rem; border-radius:8px;
}
.drawer-icone{ display:flex; align-items:center; justify-content:center; width:20px; flex-shrink:0; }
.drawer-icone svg{ display:block; }
.mobile-drawer-contenu a.actif{ background:rgba(227,28,61,0.12); color:var(--rouge); }
.mobile-drawer-contenu span.desactive{ opacity:0.35; }

@media (max-width:768px){
  .mobile-nav{ display:flex; }
  body{ padding-bottom:70px; }
}

/* Barre de soldes mobile */
.mobile-soldes-bar{
  display:none;
  position:fixed; top:0; left:0; right:0; z-index:99;
  background:var(--noir2); border-bottom:1px solid var(--line);
  padding:0.5rem 1rem calc(0.5rem + env(safe-area-inset-top));
  justify-content:space-around; align-items:center;
}
.mobile-solde-item{
  display:flex; align-items:center; gap:0.3rem;
  font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:0.75rem; color:var(--blanc);
}
.mobile-solde-item img{ width:16px; height:16px; object-fit:contain; }
.mobile-btn-plus-packs{
  display:flex; align-items:center; justify-content:center;
  width:18px; height:18px; border-radius:50%; margin-left:0.2rem;
  background:linear-gradient(180deg, var(--rouge-vif), var(--rouge) 55%, var(--rouge-sombre));
  color:white; text-decoration:none; font-weight:800; font-size:0.85rem; line-height:1;
}

@media (max-width:768px){
  .mobile-soldes-bar{ display:flex; }
  body{ padding-top:40px; }
}

/* Étincelles pour nouvelle Légendaire dans la collection */
.carte-flip.legendaire-reveal .flip-front.c-legendaire.nouvelle-carte{
  border:2px solid #fff8dc !important;
  box-shadow:0 0 0 1px rgba(255,255,255,.08), 0 0 22px rgba(253,183,86,0.7), inset 0 0 0 1px rgba(255,255,255,.1) !important;
}
.etincelle-carte{
  position:absolute; width:14px; height:14px; z-index:20; pointer-events:none;
  clip-path: polygon(50% 0%, 61% 39%, 100% 50%, 61% 61%, 50% 100%, 39% 61%, 0% 50%, 39% 39%);
  animation: scintillerCarte 1.6s ease-in-out infinite;
  opacity:0;
}
.etincelle-carte.etincelle-commune{ background:radial-gradient(circle, #ffffff 0%, var(--commune) 40%, transparent 75%); }
.etincelle-carte.etincelle-peu_commune{ background:radial-gradient(circle, #ffffff 0%, var(--peucommune) 40%, transparent 75%); }
.etincelle-carte.etincelle-rare{ background:radial-gradient(circle, #ffffff 0%, var(--rare) 40%, transparent 75%); }
.etincelle-carte.etincelle-ultra_rare{ background:radial-gradient(circle, #ffffff 0%, var(--ultrarare) 40%, transparent 75%); }
.etincelle-carte.etincelle-legendaire{ background:radial-gradient(circle, #fffbe6 0%, var(--legendaire) 40%, transparent 75%); }
@keyframes scintillerCarte{
  0%, 100%{ opacity:0; transform:scale(0.3) rotate(0deg); }
  50%{ opacity:1; transform:scale(1.1) rotate(90deg); }
}
.etincelle-1{ top:-10px; left:5%; animation-delay:0s; }
.etincelle-2{ top:15%; right:-12px; width:10px; height:10px; animation-delay:0.4s; }
.etincelle-3{ bottom:20%; left:-14px; animation-delay:0.8s; }
.etincelle-4{ bottom:-10px; right:15%; width:18px; height:18px; animation-delay:1.1s; }
.etincelle-5{ top:40%; left:-8px; width:9px; height:9px; animation-delay:1.4s; }
.etincelle-6{ top:-8px; right:20%; width:11px; height:11px; animation-delay:0.6s; }

/* ===== NOUVELLE SIDEBAR (DA 2026) ===== */
.sidebar{
  width:265px; flex-shrink:0; background:var(--noir2); border-right:1px solid var(--line);
  padding:1.1rem 0.9rem; display:flex; flex-direction:column; position:sticky; top:0; height:100vh;
}
.sidebar .logo-sidebar-lien{ display:flex; justify-content:center; margin-bottom:0.8rem; padding:0 0.4rem; }
.sidebar .logo-sidebar-img{ height:105px; width:auto; display:block; }
.sidebar .logo span{ color:var(--rouge); }

.sidebar-soldes{ display:flex; flex-direction:column; gap:0.6rem; margin-bottom:1.2rem; }
.sidebar-solde-item{ background:linear-gradient(160deg, #111114, #0a0a0d); border:1px solid rgba(255,255,255,0.07); border-radius:10px; padding:0.7rem 0.5rem; display:flex; flex-direction:column; align-items:center; gap:0.4rem; position:relative; overflow:hidden; }
.sidebar-solde-item::before{ content:''; position:absolute; top:-50%; right:-20%; width:60px; height:60px; background:radial-gradient(circle, rgba(227,28,61,0.08), transparent 70%); pointer-events:none; }
.sidebar-solde-item img{ width:24px; height:24px; object-fit:contain; }
.sidebar-solde-item span{ font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:0.85rem; color:var(--blanc); }

.sidebar .nav-item{
  display:flex; align-items:center; gap:0.5rem; padding:0.16rem 0.8rem; border-radius:100px;
  color:var(--argent); text-decoration:none; font-weight:600; font-size:0.72rem; margin-bottom:0; position:relative;
}
.sidebar .nav-item svg{ width:16px; height:16px; }
.sidebar .nav-item svg{ flex-shrink:0; }
.sidebar .nav-item:hover{ background:rgba(255,255,255,0.03); color:var(--blanc); }
.sidebar .nav-item.actif{
  background:linear-gradient(135deg, #ff4d68, var(--rouge) 60%, #a3172f);
  color:white; box-shadow:0 4px 16px rgba(227,28,61,0.35), inset 0 1px 1px rgba(255,255,255,0.2);
}
.sidebar .nav-item.desactive{ opacity:0.3; cursor:not-allowed; }
.sidebar .badge-notif{ position:absolute; right:0.8rem; background:#ff4d68; color:white; font-size:0.62rem; font-weight:700; padding:0.1rem 0.4rem; border-radius:100px; min-width:16px; text-align:center; }

.sidebar .sidebar-bas{ margin-top:auto; padding-top:1rem; }
.sidebar .ligne-neon{ width:100%; height:2px; min-height:2px; flex-shrink:0; background:linear-gradient(90deg, transparent, var(--rouge), transparent); opacity:0.5; filter:blur(0.5px); margin-bottom:1rem; }
.sidebar .sidebar-bas a{ display:block; color:var(--argent); text-decoration:none; font-family:'IBM Plex Mono',monospace; font-size:0.75rem; padding:0.4rem; }

.badge-famille{
  position:absolute; bottom:8px; left:8px; z-index:12;
  width:28px; height:28px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:rgba(0,0,0,0.55);
  border:1px solid rgba(255,255,255,.3);
  box-shadow:0 2px 8px rgba(0,0,0,.5);
  color:var(--argent);
}
.badge-famille svg{ width:17px; height:17px; }
.c-commune .badge-famille{ color:var(--commune); }
.c-peu_commune .badge-famille{ color:var(--peucommune); }
.c-rare .badge-famille{ color:var(--rare); }
.c-ultra_rare .badge-famille{ color:var(--ultrarare); }
.c-legendaire .badge-famille{ color:var(--legendaire); }

.badge-secondaire{
  position:absolute; bottom:8px; right:8px; z-index:12;
  width:23px; height:23px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:rgba(0,0,0,0.55);
  border:1px solid rgba(255,255,255,.3);
  box-shadow:0 2px 8px rgba(0,0,0,.5);
  font-size:0.75rem;
}

.badge-exclusive{ display:none; }
.affiche:has(.badge-exclusive){
  box-shadow:0 0 0 2px var(--legendaire), 0 0 14px rgba(253,183,86,0.5);
}

.ligne-sort{ padding:0.5rem 0; border-bottom:1px solid var(--line); }
.ligne-sort-header{ display:flex; justify-content:space-between; align-items:center; font-size:0.72rem; font-family:'IBM Plex Mono',monospace; color:var(--argent); margin-bottom:0.2rem; }
.ligne-sort-tag{ font-size:0.6rem; padding:1px 6px; border-radius:100px; background:rgba(227,28,61,0.15); color:#ff4d68; }
.ligne-sort-nom{ font-weight:700; font-family:'Space Grotesk',sans-serif; font-size:0.85rem; color:var(--blanc); }
.ligne-sort-desc{ font-size:0.76rem; color:var(--argent); margin-top:0.15rem; }
.ligne-sort.exclusif{ background:rgba(253,183,86,0.05); margin:0.3rem -0.5rem; padding:0.5rem; border-radius:8px; }
.ligne-sort.exclusif .ligne-sort-tag{ background:rgba(253,183,86,0.2); color:var(--legendaire); }

.cadre-sorts{
  background:rgba(255,255,255,0.02); border:1px solid var(--line); border-radius:14px;
  padding:1rem 1.2rem; margin:0.8rem 1.5rem 0;
}
.cadre-sorts-titre{
  font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:0.78rem;
  color:var(--argent); text-transform:uppercase; letter-spacing:0.5px; margin-bottom:0.5rem;
}
.cadre-sorts .ligne-sort:last-child{ border-bottom:none; padding-bottom:0; }

/* ===================== NOUVELLE DA (en cours de migration, pas encore active) ===================== */
:root {
  --gold: #c79b4b;
  --gold-light: #e4c477;
}

.carte-tcg {
  --taille-carte: 170px;
  width: var(--taille-carte);
  aspect-ratio: 2/3;
  position: relative;
  border-radius: calc(var(--taille-carte) * 0.07);
  padding: calc(var(--taille-carte) * 0.017);
  box-shadow: 0 calc(var(--taille-carte) * 0.07) calc(var(--taille-carte) * 0.16) rgba(0,0,0,.6);
  overflow: hidden;
  isolation: isolate;
  cursor: pointer;
  transition: transform 0.15s;
}
.carte-tcg:hover { transform: translateY(-4px); }
.carte-tcg.exclusive {
  box-shadow: 0 0 0 2px var(--gold-light), 0 0 16px rgba(228,196,119,.6), 0 calc(var(--taille-carte) * 0.07) calc(var(--taille-carte) * 0.16) rgba(0,0,0,.6);
}
.carte-tcg.grande { cursor: default; margin-left: auto; margin-right: auto; }
.carte-tcg.grande:hover { transform: none; }

.carte-tcg .carte-inner { position: relative; width: 100%; height: 100%; overflow: hidden; border-radius: calc(var(--taille-carte) * 0.05); background: #171410; border: 1px solid rgba(255,255,255,.10); }
.carte-tcg .carte-inner::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(125deg, rgba(255,255,255,.09), transparent 18%, transparent 75%, rgba(255,255,255,.025)); z-index: 20; }

.badge-famille-seule {
  position: absolute; top: calc(var(--taille-carte) * 0.035); left: calc(var(--taille-carte) * 0.035); z-index: 5;
  width: calc(var(--taille-carte) * 0.13); height: calc(var(--taille-carte) * 0.13); border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: radial-gradient(circle at 35% 30%, #594a32, #1c1812 70%); border: 1px solid var(--gold);
  box-shadow: 0 3px 8px rgba(0,0,0,.6);
}

.header-complet { position: absolute; top: calc(var(--taille-carte) * 0.03); left: calc(var(--taille-carte) * 0.035); right: calc(var(--taille-carte) * 0.035); display: flex; align-items: center; justify-content: space-between; z-index: 10; }
.header-complet .family { width: calc(var(--taille-carte) * 0.094); height: calc(var(--taille-carte) * 0.094); display: grid; place-items: center; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #594a32, #1c1812 70%); border: 1px solid var(--gold); box-shadow: 0 5px 14px rgba(0,0,0,.6); }
.stats-header { display: flex; gap: calc(var(--taille-carte) * 0.018); }
.stats-header .stat { display: flex; align-items: center; gap: calc(var(--taille-carte) * 0.02); }
.stats-header .stat-icon { font-size: calc(var(--taille-carte) * 0.038); }
.stats-header .stat-value { font-size: calc(var(--taille-carte) * 0.044); font-weight: 950; color: var(--gold-light); }
.emplacement-vide { width: calc(var(--taille-carte) * 0.094); height: calc(var(--taille-carte) * 0.094); }

.carte-tcg .poster-zone { position: absolute; top: 0; left: 0; right: 0; overflow: hidden; background: #0e0d0b; }
.carte-tcg.mini .poster-zone { height: 100%; }
.carte-tcg.grande .poster-zone { height: 88%; }
.carte-tcg .poster-bg { position: absolute; inset: -30px; background-size: cover; background-position: center; filter: blur(22px); opacity: .38; transform: scale(1.15); }
.carte-tcg .poster-zone::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(0,0,0,.08) 40%, rgba(18,15,11,.25) 68%, #171410 100%); z-index: 2; }
.carte-tcg.mini .poster-zone::after { content: none; }
.carte-tcg .poster { position: absolute; z-index: 1; left: 13%; right: 13%; top: 8%; bottom: 2%; width: 74%; height: 90%; object-fit: contain; object-position: center; filter: drop-shadow(0 10px 18px rgba(0,0,0,.75)); }
.carte-tcg.mini .poster { position: static; width: 100%; height: 100%; object-fit: cover; filter: none; }

.carte-tcg .spells { position: absolute; top: 52%; left: 0; right: 0; bottom: 0; z-index: 15; padding: calc(var(--taille-carte) * 0.035) calc(var(--taille-carte) * 0.047); background: linear-gradient(to bottom, rgba(23,20,16,0) 0%, rgba(23,20,16,.3) 12%, rgba(23,20,16,.65) 28%, rgba(23,20,16,.92) 48%, rgba(23,20,16,1) 65%); display: flex; flex-direction: column; justify-content: flex-end; gap: calc(var(--taille-carte) * 0.03); }
.carte-tcg .spell { padding: calc(var(--taille-carte) * 0.015) 0; border-bottom: 1px solid rgba(199,155,75,.25); }
.carte-tcg .spell:last-child { border-bottom: none; padding-bottom: 0; }
.carte-tcg .spell-name { display: flex; align-items: center; gap: calc(var(--taille-carte) * 0.026); font-size: calc(var(--taille-carte) * 0.044); font-weight: 950; color: #eee4d3; }
.carte-tcg .spell-icon { width: calc(var(--taille-carte) * 0.07); height: calc(var(--taille-carte) * 0.07); flex: 0 0 auto; display: grid; place-items: center; border-radius: 50%; color: var(--gold-light); background: #292219; border: 1px solid #80612e; font-size: calc(var(--taille-carte) * 0.035); }
.carte-tcg .spell-description { margin-top: calc(var(--taille-carte) * 0.015); padding-left: calc(var(--taille-carte) * 0.097); font-size: calc(var(--taille-carte) * 0.032); line-height: 1.3; color: #b7aa96; }

.carte-tcg.commune { background: linear-gradient(135deg, #cdf2e1, #6fa88a 12%, #2d4a3a 30%, #16130f 55%, #3d6650 90%, #a5d9bc); }
.carte-tcg.peu_commune { background: linear-gradient(135deg, #b7d1f2, #5a80a8 12%, #253a55 30%, #16130f 55%, #355d85 90%, #8fb3d8); }
.carte-tcg.rare { background: linear-gradient(135deg, #cfb7f1, #8560a8 12%, #3a2555 30%, #16130f 55%, #5f3d85 90%, #b18fd8); }
.carte-tcg.ultra_rare { background: linear-gradient(135deg, #f294bb, #a84f78 12%, #552336 30%, #16130f 55%, #853d5f 90%, #d86fa0); }
.carte-tcg.legendaire { background: linear-gradient(135deg, #e1bd70, #745421 12%, #332516 30%, #16130f 55%, #8b682d 90%, #d5ae62); }

.carte-tcg.fragment-ticket { background: #0a0a0a; }
.carte-tcg.fragment-ticket .carte-inner { display: flex; flex-direction: column; background: #0a0a0a; }
.carte-tcg.fragment-ticket .poster-zone {
  position: static; height: auto; flex: 1 1 auto; background: #0a0a0a;
  display: flex; align-items: center; justify-content: center; padding: 12%;
}
.carte-tcg.fragment-ticket .poster-zone img {
  width: auto; height: auto; max-width: 100%; max-height: 100%; object-fit: contain; display: block;
  border: 2px solid #D4AF37; border-radius: 8px; box-shadow: 0 0 12px rgba(212,175,55,.3);
}
.carte-tcg.fragment-ticket .fragment-numero-footer {
  flex: 0 0 auto; text-align: center; padding: calc(var(--taille-carte) * 0.05) 0;
  font-family: 'Space Grotesk', sans-serif; font-weight: 800; font-size: calc(var(--taille-carte) * 0.14);
  color: #D4AF37; background: #0a0a0a; border-top: 1px solid rgba(212,175,55,.25);
}

/* Carte manquante (non possédée) — nouvelle DA */
.carte-tcg.manquante .poster-zone,
.carte-tcg.manquante .badge-famille-seule { opacity: 0.45; filter: grayscale(0.7); }
.carte-tcg.manquante:hover .poster-zone,
.carte-tcg.manquante:hover .badge-famille-seule { opacity: 0.7; }

/* Panneau d'infos dédié au popup nouvelle DA — mieux proportionné à la grande carte */
.lexique-tcg { flex:1; display:flex; flex-direction:column; gap:0.85rem; min-width:0; padding-top:0.3rem; }
.lexique-tcg-titre { font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:1.35rem; line-height:1.25; margin-bottom:0.3rem; word-wrap:break-word; color:#eee5d5; }
.lexique-tcg-ligne { display:flex; justify-content:space-between; align-items:flex-start; gap:0.75rem; padding-bottom:0.5rem; border-bottom:1px solid rgba(199,155,75,.2); }
.lexique-tcg-label { font-family:'IBM Plex Mono',monospace; font-size:0.75rem; color:#9d907c; text-transform:uppercase; letter-spacing:0.05em; flex-shrink:0; padding-top:0.2rem; }
.lexique-tcg-val { font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:1.05rem; color:#eee5d5; text-align:right; word-break:break-word; }

/* Teinte des badges famille selon la rareté réelle de la carte */
.carte-tcg.commune .badge-famille-seule, .carte-tcg.commune .family { color: var(--commune); border-color: var(--commune); }
.carte-tcg.peu_commune .badge-famille-seule, .carte-tcg.peu_commune .family { color: var(--peucommune); border-color: var(--peucommune); }
.carte-tcg.rare .badge-famille-seule, .carte-tcg.rare .family { color: var(--rare); border-color: var(--rare); }
.carte-tcg.ultra_rare .badge-famille-seule, .carte-tcg.ultra_rare .family { color: var(--ultrarare); border-color: var(--ultrarare); }
.carte-tcg.legendaire .badge-famille-seule, .carte-tcg.legendaire .family { color: var(--legendaire); border-color: var(--legendaire); }

/* Plus de place pour le 3e sort (signature) sur les 12 légendaires exclusives */
.carte-tcg.grande.exclusive .spells { top: 38%; }
.carte-tcg .spell-signature { border-color: rgba(228,196,119,.5); }
.carte-tcg .spell-signature .spell-name { color: var(--gold-light); }
.carte-tcg .spell-signature .spell-icon { background: linear-gradient(135deg, var(--gold-light), var(--gold)); color: #1c1812; border-color: #fff3d6; }

/* ===== Toast "quelqu'un attend un roll" ===== */
.conteneur-toasts-roll{ position:fixed; top:5.5rem; right:2rem; z-index:9999; display:flex; flex-direction:column; gap:0.6rem; align-items:flex-end; }
.toast-roll{
    display:flex; align-items:center; gap:0.8rem; background:var(--noir2); border:1px solid var(--line);
    border-radius:14px; padding:0.8rem 1.1rem; box-shadow:0 15px 35px -8px rgba(0,0,0,0.6);
    font-family:'Inter',sans-serif; font-size:0.82rem; color:var(--blanc); max-width:320px;
    animation:toastRollEntree 0.3s ease-out;
}
.toast-roll.sortie{ animation:toastRollSortie 0.25s ease-in forwards; }
@keyframes toastRollEntree{ from{ opacity:0; transform:translateX(30px); } to{ opacity:1; transform:translateX(0); } }
@keyframes toastRollSortie{ from{ opacity:1; transform:translateX(0); } to{ opacity:0; transform:translateX(30px); } }
.toast-roll-icone{ flex-shrink:0; width:34px; height:34px; border-radius:50%; background:rgba(227,28,61,0.15); display:flex; align-items:center; justify-content:center; }
.toast-roll-texte{ flex:1; line-height:1.35; }
.toast-roll-texte strong{ color:#e4c477; }
.toast-roll-lien{ color:var(--rouge-vif); text-decoration:none; font-weight:700; font-size:0.78rem; white-space:nowrap; }

/* Animation "vivante" du toast roll — léger zoom continu, discret */
.toast-roll{ animation:toastRollEntree 0.3s ease-out, toastRollPulse 2.2s ease-in-out 0.3s infinite; }
@keyframes toastRollPulse{
  0%, 100%{ transform:scale(1); }
  50%{ transform:scale(1.02); }
}

/* ===== Cartes de la sidebar : image à gauche, chiffre à côté, action intégrée à droite ===== */
.sidebar .sidebar-solde-item{
  position:relative !important; display:flex !important; flex-direction:row !important;
  align-items:center !important; justify-content:flex-start !important; text-align:left !important;
  gap:0.85rem !important; min-height:60px !important; padding:0 56px 0 1.1rem !important; overflow:hidden;
}
.sidebar .sidebar-solde-item img{ width:32px !important; height:32px !important; object-fit:contain; flex-shrink:0; margin:0 !important; }
.sidebar .sidebar-solde-item > span{ font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:1.1rem !important; color:var(--blanc); letter-spacing:0.01em; }

.btn-sidebar-action{
  position:absolute; right:0; top:0; bottom:0; width:48px; padding:0; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,0.02); border:none; border-left:1px solid rgba(255,255,255,0.07);
  border-radius:0; color:#ff4d68; transition:background 0.2s, color 0.2s;
}
.btn-sidebar-action:hover{ background:rgba(227,28,61,0.16); color:#fff; }
.btn-sidebar-action svg{ width:16px; height:16px; display:block; }

.menu-packs{
  position:fixed; z-index:9999; width:150px; padding:6px;
  background:linear-gradient(160deg, #141114, #0a0a0d);
  border:1px solid rgba(227,28,61,0.30); border-radius:14px;
  box-shadow:0 14px 40px rgba(0,0,0,0.65);
}
.menu-packs.hidden{ display:none; }
.menu-packs .menu-item{
  display:flex; align-items:center; gap:0.75rem; width:100%;
  padding:0.6rem 0.7rem; border:none; background:none; border-radius:10px;
  color:var(--blanc); font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:1rem;
  text-align:left; text-decoration:none; cursor:pointer;
}
.menu-packs .menu-item:hover{ background:rgba(227,28,61,0.16); }
.menu-packs .menu-item img{ width:24px; height:24px; object-fit:contain; flex-shrink:0; }
.menu-packs .menu-item svg{ width:22px; height:22px; flex-shrink:0; color:#ff4d68; }
.menu-packs .menu-sep{ height:1px; background:rgba(255,255,255,0.08); margin:4px 6px; }


@media (max-width:768px){ .btn-sidebar-action, .menu-packs{ display:none !important; } }

/* ===== Sidebar : titres de groupes (mode nav=2) ===== */
.nav-groupe-titre{
  font-family:'IBM Plex Mono',monospace; font-size:0.62rem; letter-spacing:0.16em; text-transform:uppercase;
  color:rgba(242,240,236,0.35); padding:0.95rem 0.7rem 0.3rem;
}
.nav-groupe-titre:first-child{ padding-top:0.2rem; }

/* ===== Sidebar nav=2 : on ne compacte QUE la liste des liens (haut de sidebar intact) ===== */
.sidebar:has(.nav-groupe-titre) .nav-item{ padding-top:0.26rem !important; padding-bottom:0.26rem !important; margin-bottom:0.05rem !important; }
.sidebar:has(.nav-groupe-titre) .nav-groupe-titre{ padding:0.5rem 0.7rem 0.1rem; }
.sidebar:has(.nav-groupe-titre) .nav-groupe-titre:first-child{ padding-top:0.05rem; }

@media (max-height:880px){
  .sidebar:has(.nav-groupe-titre) .nav-item{ padding-top:0.18rem !important; padding-bottom:0.18rem !important; }
  .sidebar:has(.nav-groupe-titre) .nav-groupe-titre{ padding:0.35rem 0.7rem 0.05rem; }
}
@media (max-height:800px){
  .sidebar:has(.nav-groupe-titre) .nav-item{ padding-top:0.1rem !important; padding-bottom:0.1rem !important; }
  .sidebar:has(.nav-groupe-titre) .nav-groupe-titre{ padding:0.25rem 0.7rem 0; }
}
@media (max-height:720px){
  .sidebar:has(.nav-groupe-titre) .nav-item{ padding-top:0.06rem !important; padding-bottom:0.06rem !important; font-size:0.72rem !important; }
}

/* ===== Sidebar nav=2 : cartes de soldes légèrement plus basses (logo et contenu intacts) ===== */
.sidebar:has(.nav-groupe-titre) .sidebar-solde-item{ min-height:52px !important; }
.sidebar:has(.nav-groupe-titre) .sidebar-soldes{ gap:0.45rem !important; margin-bottom:0.9rem !important; }

/* ===== Sidebar : entrée désactivée (Combat) alignée comme les autres liens ===== */
.sidebar .nav-item.desactive{
  display:flex !important; align-items:center; gap:0.5rem;
  padding-left:0.8rem !important; padding-right:0.8rem !important;
  font-size:0.72rem !important; font-weight:600;
}
.sidebar .nav-item.desactive svg{ width:16px; height:16px; flex-shrink:0; transform:scale(0.9); }

/* ===== Sidebar : titres de groupes plus présents ===== */
.sidebar .nav-groupe-titre{
  display:flex; align-items:center; gap:0.55rem;
  font-family:'IBM Plex Mono',monospace; font-size:0.72rem; font-weight:600;
  letter-spacing:0.14em; text-transform:uppercase;
  color:rgba(242,240,236,0.62);
}
.sidebar .nav-groupe-titre::after{
  content:''; flex:1; height:1px;
  background:linear-gradient(90deg, rgba(227,28,61,0.55), transparent);
}

/* ===== Sidebar : titres de groupes centrés entre deux filets ===== */
.sidebar .nav-groupe-titre{ justify-content:center; text-align:center; }
.sidebar .nav-groupe-titre::before,
.sidebar .nav-groupe-titre::after{
  content:''; flex:1; height:1px;
}
.sidebar .nav-groupe-titre::before{ background:linear-gradient(90deg, transparent, rgba(227,28,61,0.55)); }
.sidebar .nav-groupe-titre::after{ background:linear-gradient(90deg, rgba(227,28,61,0.55), transparent); }

/* >>> HOLO-EXCLUSIVES-START (v3) : holo sur .carte-tcg.exclusive, inclinaison 3D sur les autres cartes mini (souris) */
.carte-tcg { --holo-rx: 0deg; --holo-ry: 0deg; }
.carte-tcg.exclusive { --holo-px: 50%; --holo-py: 50%; }
.carte-tcg.exclusive .poster-zone::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; bottom: 0; z-index: 2; pointer-events: none;
  background-image:
    radial-gradient(circle at var(--holo-px) var(--holo-py), rgba(255,255,255,0.5), rgba(255,255,255,0) 50%),
    linear-gradient(115deg, rgba(255,0,150,0) 10%, rgba(255,0,150,0.85) 28%, rgba(255,230,0,0.85) 38%, rgba(0,255,200,0.85) 48%, rgba(0,140,255,0.85) 58%, rgba(160,0,255,0.8) 68%, rgba(160,0,255,0) 86%);
  background-size: 100% 100%, 300% 300%;
  background-position: 0 0, var(--holo-px) var(--holo-py);
  mix-blend-mode: screen;
  filter: brightness(0.85) contrast(1.35) saturate(1.1);
  opacity: 0.28;
  transition: opacity 0.25s;
  animation: holoDrift 7s ease-in-out infinite alternate;
}
.carte-tcg.exclusive.holo-active .poster-zone::before { animation: none; opacity: 0.85; }
.carte-tcg.exclusive.holo-active {
  transform: perspective(800px) rotateX(var(--holo-rx)) rotateY(var(--holo-ry)) translateY(-4px) scale(1.03);
  transition: transform 0.08s linear;
  will-change: transform;
}
.carte-tcg.exclusive.grande.holo-active {
  transform: perspective(900px) rotateX(var(--holo-rx)) rotateY(var(--holo-ry)) scale(1.02);
}
html body .carte-tcg.grande.tilt-active {
  transform: perspective(900px) rotateX(var(--holo-rx)) rotateY(var(--holo-ry)) scale(1.02);
  transition: transform 0.08s linear;
  will-change: transform;
}
.carte-tcg.mini.tilt-active {
  transform: perspective(800px) rotateX(var(--holo-rx)) rotateY(var(--holo-ry)) translateY(-4px) scale(1.03);
  transition: transform 0.08s linear;
  will-change: transform;
}
@keyframes holoDrift {
  from { background-position: 0 0, 10% 20%; }
  to { background-position: 0 0, 90% 80%; }
}
@media (prefers-reduced-motion: reduce) {
  .carte-tcg.exclusive .poster-zone::before { animation: none; }
}
/* <<< HOLO-EXCLUSIVES-END */

/* >>> POPUP-NOSCROLL-START : l'inclinaison de la carte ne doit jamais créer de scroll dans le popup */
.popup-corps-2col{ padding:1rem 1.4rem 1.5rem; overflow-y:clip; overflow-x:visible; }
.popup-carte-lexique-wrap{ padding-top:.8rem; padding-bottom:.8rem; overflow-y:clip; overflow-x:visible; }
/* <<< POPUP-NOSCROLL-END */

/* >>> FRAGMENT-GOLD-START : holo full gold sur les cartes fragments */
.carte-tcg.fragment-ticket { --holo-px: 50%; --holo-py: 50%; }
.carte-tcg.fragment-ticket .poster-zone { position: relative; }
.carte-tcg.fragment-ticket .poster-zone::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; bottom: 0; z-index: 2; pointer-events: none;
  background-image:
    radial-gradient(circle at var(--holo-px) var(--holo-py), rgba(255,244,190,0.55), rgba(255,244,190,0) 50%),
    linear-gradient(115deg, rgba(120,80,0,0) 10%, rgba(212,175,55,0.9) 28%, rgba(255,236,150,0.95) 40%, rgba(255,200,60,0.9) 52%, rgba(184,134,11,0.9) 64%, rgba(255,226,120,0.85) 74%, rgba(120,80,0,0) 90%);
  background-size: 100% 100%, 300% 300%;
  background-position: 0 0, var(--holo-px) var(--holo-py);
  mix-blend-mode: screen;
  filter: brightness(0.9) contrast(1.3) saturate(1.1);
  opacity: 0.07;
  transition: opacity 0.25s;
  animation: holoDrift 7s ease-in-out infinite alternate;
}
.carte-tcg.fragment-ticket.holo-active .poster-zone::before { animation: none; opacity: 0.3; }
.carte-tcg.fragment-ticket.holo-active {
  transform: perspective(800px) rotateX(var(--holo-rx)) rotateY(var(--holo-ry)) translateY(-4px) scale(1.03);
  transition: transform 0.08s linear;
  will-change: transform;
}
.carte-tcg.fragment-ticket.grande.holo-active {
  transform: perspective(900px) rotateX(var(--holo-rx)) rotateY(var(--holo-ry)) scale(1.02);
}
@media (prefers-reduced-motion: reduce) {
  .carte-tcg.fragment-ticket .poster-zone::before { animation: none; }
}
/* <<< FRAGMENT-GOLD-END */

/* >>> VERNIS-START : reflet vernis doux qui suit la souris (cartes normales uniquement) */
.carte-tcg:not(.exclusive):not(.fragment-ticket) .carte-inner::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 19;
  background-image:
    radial-gradient(circle at var(--holo-px, 50%) var(--holo-py, 50%), rgba(255,255,255,0.09), rgba(255,255,255,0) 52%),
    linear-gradient(115deg, rgba(255,255,255,0) 38%, rgba(255,255,255,0.035) 50%, rgba(255,255,255,0) 62%);
  background-size: 100% 100%, 260% 260%;
  background-position: 0 0, var(--holo-px, 50%) var(--holo-py, 50%);
  opacity: 0;
  transition: opacity 0.25s;
}
.carte-tcg.tilt-active:not(.exclusive):not(.fragment-ticket) .carte-inner::before { opacity: 1; }
/* <<< VERNIS-END */

/* >>> ELASTIC-START : retour élastique (ressort doux) de la carte quand la souris la quitte */
.carte-tcg {
  transition: transform 0.5s cubic-bezier(0.34, 1.6, 0.64, 1);
  transition: transform 0.6s linear(0, 0.069, 0.235, 0.445, 0.658, 0.845, 0.991, 1.09, 1.145, 1.163, 1.154, 1.128, 1.095, 1.06, 1.028, 1.004, 0.987, 0.977, 1);
}
@media (prefers-reduced-motion: reduce) {
  .carte-tcg { transition: transform 0.15s; }
}
/* <<< ELASTIC-END */

/* >>> ECLAIR-START : éclair de lumière quand une carte est révélée à l'ouverture d'un pack (intensité selon la rareté) */
.carte-flip .carte-tcg { --e-rgb: 255,236,150; --e-a: 0.4; --e-dur: 0.8s; --e-n: 1; }
.carte-flip .carte-tcg.commune { --e-rgb: 205,242,225; --e-a: 0.30; --e-dur: 0.8s; }
.carte-flip .carte-tcg.peu_commune { --e-rgb: 183,209,242; --e-a: 0.36; --e-dur: 0.85s; }
.carte-flip .carte-tcg.rare { --e-rgb: 207,183,241; --e-a: 0.46; --e-dur: 0.9s; }
.carte-flip .carte-tcg.ultra_rare { --e-rgb: 242,148,187; --e-a: 0.62; --e-dur: 1s; }
.carte-flip .carte-tcg.legendaire { --e-rgb: 253,183,86; --e-a: 0.78; --e-dur: 1.1s; --e-n: 2; }
.carte-flip .carte-tcg.exclusive { --e-rgb: 228,196,119; --e-a: 0.78; --e-dur: 1.1s; --e-n: 2; }

.carte-flip.revelee .carte-tcg::after {
  content: ""; position: absolute; inset: 0; z-index: 30; pointer-events: none;
  background-image: linear-gradient(105deg,
    rgba(255,255,255,0) 40%,
    rgba(var(--e-rgb), calc(var(--e-a) * 0.6)) 46%,
    rgba(255,255,255, var(--e-a)) 50%,
    rgba(var(--e-rgb), calc(var(--e-a) * 0.6)) 54%,
    rgba(255,255,255,0) 60%);
  background-size: 300% 100%;
  background-repeat: no-repeat;
  background-position: 100% 0;
  animation: eclairPasse var(--e-dur) ease-in-out 0.35s var(--e-n) both;
}
.carte-flip.revelee .carte-tcg.ultra_rare::before,
.carte-flip.revelee .carte-tcg.legendaire::before,
.carte-flip.revelee .carte-tcg.exclusive::before {
  content: ""; position: absolute; inset: 0; z-index: 29; pointer-events: none;
  background: radial-gradient(circle at 50% 45%, rgba(var(--e-rgb), 0.55), rgba(var(--e-rgb), 0) 70%);
  opacity: 0;
  animation: eclairFlash 0.9s ease-out 0.35s 1 both;
}
@keyframes eclairPasse { from { background-position: 100% 0; } to { background-position: 0% 0; } }
@keyframes eclairFlash { 0% { opacity: 0; } 30% { opacity: 1; } 100% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
  .carte-flip.revelee .carte-tcg::after,
  .carte-flip.revelee .carte-tcg::before { animation: none; }
}
/* <<< ECLAIR-END */

/* >>> ECLAIR-LEG-START : pour les légendaires et fragments, l'éclair attend la fin de leur séquence d'ouverture (3 s) */
.carte-flip.legendaire-reveal.revelee .carte-tcg::after { animation-delay: 3s; }
.carte-flip.legendaire-reveal.revelee .carte-tcg::before { animation-delay: 3s; }
/* <<< ECLAIR-LEG-END */

/* >>> ECLAIR-CARROUSEL-START : éclair à la première apparition d'une carte dans le carrousel d'ouverture */
.carte-tcg.eclair-reveal { --e-rgb: 255,236,150; --e-a: 0.15; --e-dur: 0.8s; --e-n: 1; --e-delay: 0.15s; }
.carte-tcg.eclair-reveal.commune { --e-rgb: 205,242,225; --e-a: 0.10; --e-dur: 0.8s; }
.carte-tcg.eclair-reveal.peu_commune { --e-rgb: 183,209,242; --e-a: 0.12; --e-dur: 0.85s; }
.carte-tcg.eclair-reveal.rare { --e-rgb: 207,183,241; --e-a: 0.16; --e-dur: 0.9s; }
.carte-tcg.eclair-reveal.ultra_rare { --e-rgb: 242,148,187; --e-a: 0.22; --e-dur: 1s; }
.carte-tcg.eclair-reveal.legendaire { --e-rgb: 253,183,86; --e-a: 0.30; --e-dur: 1.1s; --e-n: 2; }
.carte-tcg.eclair-reveal.exclusive { --e-rgb: 228,196,119; --e-a: 0.30; --e-dur: 1.1s; --e-n: 2; }
.carte-tcg.eclair-reveal.legendaire-pop { --e-delay: 0.6s; }

.carte-tcg.eclair-reveal::after {
  content: ""; position: absolute; inset: 0; z-index: 30; pointer-events: none;
  background-image: linear-gradient(var(--e-ang, 105deg),
    rgba(255,255,255,0) 40%,
    rgba(var(--e-rgb), calc(var(--e-a) * 0.6)) 46%,
    rgba(255,255,255, var(--e-a)) 50%,
    rgba(var(--e-rgb), calc(var(--e-a) * 0.6)) 54%,
    rgba(255,255,255,0) 60%);
  background-size: var(--e-size, 300% 100%);
  background-repeat: no-repeat;
  background-position: var(--e-from, 100% 0);
  animation: var(--e-anim, eclairPasse) var(--e-dur) ease-in-out var(--e-delay) var(--e-n) both;
}
.carte-tcg.eclair-reveal.ultra_rare::before,
.carte-tcg.eclair-reveal.legendaire::before,
.carte-tcg.eclair-reveal.exclusive::before {
  content: ""; position: absolute; inset: 0; z-index: 29; pointer-events: none;
  background: radial-gradient(circle at 50% 45%, rgba(var(--e-rgb), 0.22), rgba(var(--e-rgb), 0) 70%);
  opacity: 0;
  animation: eclairFlash 0.9s ease-out var(--e-delay) 1 both;
}
@media (prefers-reduced-motion: reduce) {
  .carte-tcg.eclair-reveal::after, .carte-tcg.eclair-reveal::before { animation: none; }
}

/* variantes de mouvement tirées au hasard à chaque carte */
.carte-tcg.eclair-v2 { --e-anim: eclairV2; --e-from: 0% 0; }
.carte-tcg.eclair-v3 { --e-anim: eclairV3; --e-ang: 175deg; --e-size: 100% 300%; --e-from: 0 100%; }
.carte-tcg.eclair-v4 { --e-anim: eclairV4; --e-ang: 175deg; --e-size: 100% 300%; --e-from: 0 0; }
.carte-tcg.eclair-v5 { --e-anim: eclairV5; --e-ang: 135deg; --e-size: 300% 300%; --e-from: 100% 100%; }
.carte-tcg.eclair-v6 { --e-anim: eclairV6; --e-ang: 225deg; --e-size: 300% 300%; --e-from: 0% 100%; }
@keyframes eclairV2 { from { background-position: 0% 0; } to { background-position: 100% 0; } }
@keyframes eclairV3 { from { background-position: 0 100%; } to { background-position: 0 0; } }
@keyframes eclairV4 { from { background-position: 0 0; } to { background-position: 0 100%; } }
@keyframes eclairV5 { from { background-position: 100% 100%; } to { background-position: 0% 0%; } }
@keyframes eclairV6 { from { background-position: 0% 100%; } to { background-position: 100% 0%; } }
/* <<< ECLAIR-CARROUSEL-END */

/* >>> CALME-OPENING-START : mouvement des cartes réduit uniquement dans la zone d'ouverture de pack */
#zone-reveal .carte-tcg { transition: transform 0.25s ease-out; }
#zone-reveal .carte-tcg.tilt-active,
#zone-reveal .carte-tcg.holo-active {
  transform: perspective(900px) rotateX(calc(var(--holo-rx) * 0.3)) rotateY(calc(var(--holo-ry) * 0.3)) scale(1.01);
}
/* <<< CALME-OPENING-END */

/* >>> POP-DOUX-START : pop des légendaires/fragments adouci (zone d'ouverture) + éclair légendaire sur les fragments */
@keyframes legendairePopDoux {
  0%   { transform: scale(1);    filter: none; }
  35%  { transform: scale(1.1);  filter: drop-shadow(0 0 16px rgba(253,183,86,0.6)); }
  65%  { transform: scale(1.03); filter: drop-shadow(0 0 10px rgba(253,183,86,0.35)); }
  100% { transform: scale(1);    filter: none; }
}
#zone-reveal .carte-tcg.legendaire-pop { animation: legendairePopDoux 1.4s ease-in-out; }

.carte-tcg.eclair-reveal.fragment-ticket { --e-rgb: 253,183,86; --e-a: 0.30; --e-dur: 1.1s; --e-n: 2; }
.carte-tcg.eclair-reveal.fragment-ticket::before {
  content: ""; position: absolute; inset: 0; z-index: 29; pointer-events: none;
  background: radial-gradient(circle at 50% 45%, rgba(var(--e-rgb), 0.22), rgba(var(--e-rgb), 0) 70%);
  opacity: 0;
  animation: eclairFlash 0.9s ease-out var(--e-delay) 1 both;
}
@media (prefers-reduced-motion: reduce) {
  #zone-reveal .carte-tcg.legendaire-pop { animation: none; }
  .carte-tcg.eclair-reveal.fragment-ticket::before { animation: none; }
}
/* <<< POP-DOUX-END */

/* ===== Sidebar nav=2 : cartes de soldes très légèrement réduites (logo intact) ===== */
.sidebar:has(.nav-groupe-titre) .sidebar-solde-item{ min-height:46px !important; padding-top:0.4rem !important; padding-bottom:0.4rem !important; }
.sidebar:has(.nav-groupe-titre) .sidebar-solde-item img{ width:28px !important; height:28px !important; }
.sidebar:has(.nav-groupe-titre) .sidebar-solde-item > span{ font-size:1rem !important; }
.sidebar:has(.nav-groupe-titre) .sidebar-soldes{ gap:0.35rem !important; margin-bottom:0.7rem !important; }

/* ===== Sidebar nav=2 : plus de scroll (logo intact, cartes à peine réduites) ===== */
.sidebar:has(.nav-groupe-titre){ padding-bottom:0.5rem !important; }
.sidebar:has(.nav-groupe-titre) .nav-groupe-titre{ padding-top:0.2rem !important; padding-bottom:0.05rem !important; }
.sidebar:has(.nav-groupe-titre) .nav-item{ margin-bottom:0 !important; }
.sidebar:has(.nav-groupe-titre) .sidebar-soldes{ margin-bottom:0.55rem !important; }
.sidebar:has(.nav-groupe-titre) .sidebar-solde-item{ min-height:44px !important; padding-top:0.35rem !important; padding-bottom:0.35rem !important; }

/* ===== SIDEBAR_V3 : sidebar cartes propre (remplace les anciens ajustements) ===== */
@media (min-width:769px){
body .sidebar.sidebar{overflow-y:auto;scrollbar-width:none;padding-bottom:.9rem !important}
body .sidebar.sidebar::-webkit-scrollbar{display:none}
body .sidebar.sidebar > *{flex-shrink:0}
body .sidebar.sidebar .logo-sidebar-lien{margin-bottom:1rem !important}
body .sidebar.sidebar .logo-sidebar-img{height:84px !important}
body .sidebar.sidebar .ligne-neon{display:none !important}
/* soldes : une seule carte, trois lignes */
body .sidebar.sidebar .sidebar-soldes{display:flex !important;flex-direction:column !important;gap:0 !important;margin:0 0 .5rem !important;background:linear-gradient(180deg,#17171d,#0e0e12);border:1px solid #2a2a31;border-radius:12px;overflow:hidden;box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
body .sidebar.sidebar .sidebar-solde-item{flex-direction:row !important;align-items:center !important;justify-content:flex-start !important;gap:.7rem !important;min-height:0 !important;padding:.5rem .6rem .5rem .8rem !important;background:none !important;border:0 !important;border-radius:0 !important;box-shadow:none !important}
body .sidebar.sidebar .sidebar-solde-item + .sidebar-solde-item{border-top:1px solid rgba(255,255,255,.06) !important}
body .sidebar.sidebar .sidebar-solde-item::before{display:none !important}
body .sidebar.sidebar .sidebar-solde-item img{width:24px !important;height:24px !important}
body .sidebar.sidebar .sidebar-solde-item > span{flex:1;font-size:.98rem !important;font-variant-numeric:tabular-nums}
body .sidebar.sidebar .btn-sidebar-action{flex:none;width:26px;height:26px;margin:0 !important;padding:0;display:flex;align-items:center;justify-content:center;border-radius:8px !important;border:1px solid #2a2a31 !important;background:#131317 !important;color:rgba(242,240,236,.7) !important;cursor:pointer;box-shadow:none !important;transition:border-color .15s,color .15s,background .15s}
body .sidebar.sidebar .btn-sidebar-action:hover{color:#fff !important;border-color:rgba(255,77,104,.55) !important;background:#1a1216 !important}
body .sidebar.sidebar .btn-sidebar-action svg{width:14px;height:14px}
/* navigation */
body .sidebar.sidebar .nav-groupe-titre{display:block !important;text-align:left !important;justify-content:flex-start !important;padding:.95rem .8rem .3rem !important;font:500 .64rem 'IBM Plex Mono',monospace !important;text-transform:uppercase;letter-spacing:.12em;color:rgba(242,240,236,.38) !important}
body .sidebar.sidebar .nav-groupe-titre::before,body .sidebar.sidebar .nav-groupe-titre::after{display:none !important;content:none !important}
body .sidebar.sidebar .nav-groupe-titre:first-child{padding-top:.2rem !important}
body .sidebar.sidebar .nav-item{position:relative;display:flex !important;align-items:center;gap:.7rem !important;padding:.46rem .8rem !important;margin:0 0 2px !important;border-radius:8px !important;font-size:.86rem !important;font-weight:600;color:rgba(242,240,236,.62);border:0 !important;background:none;box-shadow:none !important}
body .sidebar.sidebar .nav-item > span:first-child{display:flex;flex:none}
body .sidebar.sidebar .nav-item svg{width:16px !important;height:16px !important}
body .sidebar.sidebar .nav-item:hover{background:rgba(255,255,255,.04) !important;color:#F2F0EC !important}
body .sidebar.sidebar .nav-item.actif{background:rgba(227,28,61,.14) !important;color:#fff !important;box-shadow:inset 0 0 0 1px rgba(255,77,104,.28) !important}
body .sidebar.sidebar .nav-item.desactive{opacity:.35}
body .sidebar.sidebar .nav-item .badge-notif{position:absolute;right:.7rem;top:50%;transform:translateY(-50%)}
/* bas de sidebar : deconnexion */
body .sidebar.sidebar .sidebar-bas{margin-top:auto !important;padding-top:1rem !important}
body .sidebar.sidebar .sidebar-bas .lien-deco-out{display:flex;align-items:center;justify-content:center;gap:.55rem;padding:.65rem 1rem;border-radius:8px;background:#131317;border:1px solid #2a2a31;box-shadow:inset 0 1px 0 rgba(255,255,255,.06);color:rgba(242,240,236,.7);font:600 .86rem 'Inter',sans-serif;text-decoration:none;transition:border-color .15s,color .15s,background .15s}
body .sidebar.sidebar .sidebar-bas .lien-deco-out:hover{color:#fff;border-color:rgba(255,77,104,.55);background:#1a1216}
}

/* ===== SIDEBAR_V4 : soldes en hierarchie (MMDCOINS en grand, packs + bobines dessous) ===== */
@media (min-width:769px){
body .sidebar.sidebar .sidebar-soldes{display:grid !important;grid-template-columns:1fr 1fr;gap:6px !important;margin:0 0 .5rem !important;background:none !important;border:0 !important;border-radius:0 !important;box-shadow:none !important;overflow:visible !important}
body .sidebar.sidebar .sidebar-solde-item{min-width:0;gap:.35rem !important;padding:.42rem .4rem !important;background:#131317 !important;border:1px solid #2a2a31 !important;border-radius:10px !important;box-shadow:inset 0 1px 0 rgba(255,255,255,.04) !important}
body .sidebar.sidebar .sidebar-solde-item + .sidebar-solde-item{border-top:1px solid #2a2a31 !important}
body .sidebar.sidebar .sidebar-solde-item:first-child{grid-column:1 / -1;gap:.7rem !important;padding:.7rem .8rem !important;background:linear-gradient(180deg,#17171d,#0e0e12) !important;border-radius:12px !important}
body .sidebar.sidebar .sidebar-solde-item img{box-sizing:border-box;width:22px !important;height:22px !important;padding:2px;border-radius:7px;background:#17171d;border:1px solid #2a2a31;object-fit:contain}
body .sidebar.sidebar .sidebar-solde-item:first-child img{width:38px !important;height:38px !important;padding:6px;border-radius:10px}
body .sidebar.sidebar .sidebar-solde-item > span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.86rem !important;letter-spacing:-.01em}
body .sidebar.sidebar .sidebar-solde-item:first-child > span{font-size:1.35rem !important}
body .sidebar.sidebar .sidebar-solde-item .btn-sidebar-action{width:20px;height:20px;border-radius:6px !important}
body .sidebar.sidebar .sidebar-solde-item:first-child .btn-sidebar-action{width:26px;height:26px;border-radius:8px !important}
body .sidebar.sidebar .sidebar-solde-item .btn-sidebar-action svg{width:12px;height:12px}
}

/* ===== SIDEBAR_V5 : soldes "dashboard" (actions en coin, libelles, bouton rouge sur les coins) ===== */
@media (min-width:769px){
body .sidebar.sidebar .sidebar-soldes{gap:8px !important}
/* petites cases : icone + action en haut, chiffre dessous, libelle tout en bas */
body .sidebar.sidebar .sidebar-solde-item{display:grid !important;grid-template-columns:1fr auto;grid-template-areas:"ic act" "num num" "lab lab";align-items:center !important;row-gap:.35rem;column-gap:.4rem !important;padding:.6rem .65rem .65rem !important;border-radius:12px !important;background:linear-gradient(180deg,#17171d,#0e0e12) !important}
body .sidebar.sidebar .sidebar-solde-item img{grid-area:ic;width:30px !important;height:30px !important;padding:4px;border-radius:9px}
body .sidebar.sidebar .sidebar-solde-item > span{grid-area:num;font:700 1.2rem/1.1 'Space Grotesk',sans-serif !important;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
body .sidebar.sidebar .sidebar-solde-item::after{grid-area:lab;display:block;font:500 .62rem 'IBM Plex Mono',monospace;text-transform:uppercase;letter-spacing:.12em;color:rgba(242,240,236,.38)}
body .sidebar.sidebar .sidebar-solde-item:nth-child(2)::after{content:'Packs'}
body .sidebar.sidebar .sidebar-solde-item:nth-child(3)::after{content:'Bobines'}
body .sidebar.sidebar .sidebar-solde-item .btn-sidebar-action{grid-area:act;justify-self:end;width:26px;height:26px;border-radius:8px !important;background:rgba(255,255,255,.05) !important;border:1px solid #2a2a31 !important}
body .sidebar.sidebar .sidebar-solde-item .btn-sidebar-action svg{width:14px;height:14px}
/* case MMDCOINS : grande, icone a gauche, bouton rouge a droite */
body .sidebar.sidebar .sidebar-solde-item:first-child{grid-template-columns:auto 1fr auto;grid-template-areas:"ic lab act" "ic num act";column-gap:.6rem !important;row-gap:0 !important;padding:.75rem .7rem !important;border-radius:14px !important}
body .sidebar.sidebar .sidebar-solde-item:first-child img{width:38px !important;height:38px !important;padding:6px;border-radius:11px}
body .sidebar.sidebar .sidebar-solde-item:first-child > span{font-size:1.15rem !important}
body .sidebar.sidebar .sidebar-solde-item:first-child::after{content:'Solde';align-self:end}
body .sidebar.sidebar .sidebar-solde-item:first-child .btn-sidebar-action{width:30px;height:30px;border-radius:8px !important;border:0 !important;color:#fff !important;background:linear-gradient(180deg,#ff4d68,#e31c3d 55%,#a3172f) !important;box-shadow:inset 0 1px 1px rgba(255,255,255,.35),0 2px 0 #7a1022 !important}
body .sidebar.sidebar .sidebar-solde-item:first-child .btn-sidebar-action:hover{filter:brightness(1.08);background:linear-gradient(180deg,#ff4d68,#e31c3d 55%,#a3172f) !important}
body .sidebar.sidebar .sidebar-solde-item:first-child .btn-sidebar-action svg{width:16px;height:16px}
}

/* ===== SIDEBAR_V6 : soldes, une ligne par monnaie, bouton centre ===== */
@media (min-width:769px){
body .sidebar.sidebar .sidebar-soldes{display:flex !important;flex-direction:column !important;grid-template-columns:none !important;gap:6px !important;margin:0 0 .6rem !important;background:none !important;border:0 !important;box-shadow:none !important;overflow:visible !important}
body .sidebar.sidebar .sidebar-solde-item:not(#x){display:flex !important;flex-direction:row !important;align-items:center !important;justify-content:flex-start !important;grid-column:auto !important;gap:.75rem !important;min-height:54px;padding:.5rem .65rem .5rem .7rem !important;border-radius:12px !important;background:linear-gradient(180deg,#17171d,#0e0e12) !important;border:1px solid #2a2a31 !important;box-shadow:inset 0 1px 0 rgba(255,255,255,.05) !important}
body .sidebar.sidebar .sidebar-solde-item:not(#x)::before,body .sidebar.sidebar .sidebar-solde-item:not(#x)::after{content:none !important;display:none !important}
body .sidebar.sidebar .sidebar-solde-item:not(#x) img{grid-area:auto !important;flex:none;box-sizing:border-box;width:34px !important;height:34px !important;padding:5px !important;border-radius:10px !important;background:#1b1b21 !important;border:1px solid #2a2a31 !important;object-fit:contain}
body .sidebar.sidebar .sidebar-solde-item:not(#x) > span{grid-area:auto !important;flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:700 1.1rem/1 'Space Grotesk',sans-serif !important;letter-spacing:-.01em;font-variant-numeric:tabular-nums;color:#F2F0EC}
body .sidebar.sidebar .sidebar-solde-item:not(#x) .btn-sidebar-action{grid-area:auto !important;flex:none;align-self:center;width:30px !important;height:30px !important;margin:0 !important;padding:0;display:flex;align-items:center;justify-content:center;border-radius:8px !important;border:1px solid #2a2a31 !important;background:rgba(255,255,255,.05) !important;color:rgba(242,240,236,.75) !important;box-shadow:none !important;cursor:pointer;transition:border-color .15s,color .15s,background .15s}
body .sidebar.sidebar .sidebar-solde-item:not(#x) .btn-sidebar-action:hover{color:#fff !important;border-color:rgba(255,77,104,.6) !important;background:rgba(227,28,61,.16) !important;filter:none}
body .sidebar.sidebar .sidebar-solde-item:not(#x) .btn-sidebar-action svg{width:15px !important;height:15px !important;display:block}
}

/* ===== SIDEBAR_V7 : soldes epures (icones brutes, une carte, actions discretes) ===== */
@media (min-width:769px){
body .sidebar.sidebar .sidebar-soldes{display:flex !important;flex-direction:column !important;gap:0 !important;margin:0 0 .6rem !important;background:linear-gradient(180deg,#17171d,#0e0e12) !important;border:1px solid #2a2a31 !important;border-radius:14px !important;box-shadow:inset 0 1px 0 rgba(255,255,255,.05) !important;overflow:hidden !important}
body .sidebar.sidebar .sidebar-solde-item:not(#x){display:flex !important;align-items:center !important;gap:.8rem !important;min-height:52px;padding:.4rem .45rem .4rem .95rem !important;background:none !important;border:0 !important;border-radius:0 !important;box-shadow:none !important;transition:background .15s}
body .sidebar.sidebar .sidebar-solde-item:not(#x) + .sidebar-solde-item{border-top:1px solid rgba(255,255,255,.06) !important}
body .sidebar.sidebar .sidebar-solde-item:not(#x):hover{background:rgba(255,255,255,.025) !important}
body .sidebar.sidebar .sidebar-solde-item:not(#x) img{box-sizing:border-box;width:30px !important;height:30px !important;padding:0 !important;border:0 !important;border-radius:0 !important;background:none !important;object-fit:contain}
body .sidebar.sidebar .sidebar-solde-item:not(#x) .btn-sidebar-action{width:34px !important;height:34px !important;border:0 !important;border-radius:9px !important;background:transparent !important;color:rgba(242,240,236,.38) !important;box-shadow:none !important}
body .sidebar.sidebar .sidebar-solde-item:not(#x) .btn-sidebar-action:hover{color:#ff4d68 !important;background:rgba(255,255,255,.06) !important;border:0 !important}
body .sidebar.sidebar .sidebar-solde-item:not(#x) .btn-sidebar-action svg{width:17px !important;height:17px !important;stroke-width:2.2}
}

/* ===== SIDEBAR_V8 : soldes en pastilles (montant, icone, action collee) ===== */
@media (min-width:769px){
body .sidebar.sidebar .sidebar-soldes{display:flex !important;flex-direction:column !important;gap:6px !important;margin:0 0 .7rem !important;background:none !important;border:0 !important;border-radius:0 !important;box-shadow:none !important;overflow:visible !important}
body .sidebar.sidebar .sidebar-solde-item:not(#x){display:flex !important;align-items:center !important;gap:.6rem !important;height:46px;min-height:0 !important;padding:0 .3rem 0 .95rem !important;border-radius:11px !important;background:#131317 !important;border:1px solid #2a2a31 !important;box-shadow:inset 0 1px 0 rgba(255,255,255,.05) !important}
body .sidebar.sidebar .sidebar-solde-item:not(#x) + .sidebar-solde-item{border-top:1px solid #2a2a31 !important}
body .sidebar.sidebar .sidebar-solde-item:not(#x):hover{background:#131317 !important}
body .sidebar.sidebar .sidebar-solde-item:not(#x) > span{order:1;flex:1 1 auto;font:700 1.08rem/1 'Space Grotesk',sans-serif !important}
body .sidebar.sidebar .sidebar-solde-item:not(#x) img{order:2;width:26px !important;height:26px !important;padding:0 !important;border:0 !important;border-radius:0 !important;background:none !important;object-fit:contain}
body .sidebar.sidebar .sidebar-solde-item:not(#x) .btn-sidebar-action{order:3;width:34px !important;height:24px !important;margin-left:.1rem !important;border:0 !important;border-left:1px solid #2a2a31 !important;border-radius:0 !important;background:none !important;color:rgba(242,240,236,.55) !important;box-shadow:none !important}
body .sidebar.sidebar .sidebar-solde-item:not(#x) .btn-sidebar-action:hover{color:#ff4d68 !important;background:none !important;border:0 !important;border-left:1px solid #2a2a31 !important}
body .sidebar.sidebar .sidebar-solde-item:not(#x) .btn-sidebar-action svg{width:16px !important;height:16px !important;stroke-width:2.3}
}

/* ===== SIDEBAR_V9 : soldes = icone, montant, action (bouton remis dans le flux) ===== */
@media (min-width:769px){
body .sidebar.sidebar .sidebar-solde-item:not(#x){gap:.75rem !important;padding:0 .35rem 0 .9rem !important}
body .sidebar.sidebar .sidebar-solde-item:not(#x) img{order:1 !important;width:28px !important;height:28px !important}
body .sidebar.sidebar .sidebar-solde-item:not(#x) > span{order:2 !important;flex:1 1 auto;min-width:0}
body .sidebar.sidebar .sidebar-solde-item:not(#x) .btn-sidebar-action{order:3 !important;position:static !important;inset:auto !important;flex:none;width:36px !important;height:26px !important;margin:0 !important;display:flex !important;align-items:center;justify-content:center;border:0 !important;border-left:1px solid #2a2a31 !important;border-radius:0 !important;background:none !important}
body .sidebar.sidebar .sidebar-solde-item:not(#x) .btn-sidebar-action:hover{background:none !important;border:0 !important;border-left:1px solid #2a2a31 !important;color:#ff4d68 !important}
}
