
:root{
  --bg:#020413;
  --panel:#07081e;
  --panel2:#0a0d29;
  --pink:#ff2bb8;
  --pink-soft:#ff79d7;
  --cyan:#00d7ff;
  --yellow:#ffd21c;
  --green:#28ef3f;
  --text:#f8f8ff;
  --muted:#b8b5c6;
  --line:#ff2bb8;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:#02030d;color:var(--text);font-family:Arial,Helvetica,sans-serif}
body{
  background:
    radial-gradient(circle at 7% 0%,rgba(255,43,184,.15),transparent 23%),
    radial-gradient(circle at 86% 8%,rgba(0,215,255,.10),transparent 24%),
    linear-gradient(180deg,#020310 0,#05051a 56%,#02030d 100%);
  overflow-x:auto;
}
body:before{
  content:"";position:fixed;inset:0;pointer-events:none;opacity:.22;
  background-image:
    radial-gradient(circle at 13% 13%,#ff2bb8 0 1px,transparent 2px),
    radial-gradient(circle at 82% 20%,#00d7ff 0 1px,transparent 2px),
    radial-gradient(circle at 56% 4%,#ffd21c 0 1px,transparent 2px);
  background-size:90px 90px,125px 125px,150px 150px;
}
.page-shell{width:min(1536px,100%);min-width:1180px;margin:0 auto;position:relative;min-height:100vh}
.page-shell:after{
  content:"";position:fixed;left:0;right:0;bottom:0;height:135px;pointer-events:none;opacity:.55;
  background:
    linear-gradient(rgba(255,43,184,.48) 1px,transparent 1px),
    linear-gradient(90deg,rgba(0,215,255,.35) 1px,transparent 1px);
  background-size:52px 28px;
  transform:perspective(330px) rotateX(66deg) translateY(68px);
  transform-origin:center bottom;
}
.header{
  height:142px;display:grid;grid-template-columns:390px 1fr 420px;align-items:center;gap:18px;
  padding:10px 18px 12px;border-bottom:1px solid rgba(0,215,255,.42);
  background:linear-gradient(180deg,rgba(2,3,15,.98),rgba(4,4,18,.96));
  position:relative;z-index:5;
}
.brand-area{height:100%;position:relative;display:flex;align-items:center}
.brand-logo{width:365px;max-height:132px;object-fit:contain;object-position:left center;display:block}
.header-deco{position:absolute;left:420px;top:0;width:250px;height:100px;object-fit:cover;opacity:.75;mix-blend-mode:screen;pointer-events:none}
.nav{height:58px;border:1px solid rgba(255,43,184,.55);border-radius:6px;overflow:hidden;display:grid;grid-template-columns:repeat(5,1fr);box-shadow:0 0 20px rgba(255,43,184,.14)}
.nav-item{
  background:rgba(6,7,24,.92);color:#fff;border:0;border-right:1px solid #591251;
  font-weight:700;cursor:pointer;font-size:14px;padding:0 10px;
}
.nav-item:last-child{border-right:0}
.nav-item.active,.nav-item:hover{background:linear-gradient(180deg,#2a0d30,#08091e);box-shadow:inset 0 -3px var(--pink);color:#ffb6e7}

.profile{
  height:96px;border:1px solid var(--pink);border-radius:9px;display:grid;grid-template-columns:64px 1fr 58px;align-items:center;
  gap:12px;padding:10px 12px;background:linear-gradient(135deg,rgba(19,6,33,.96),rgba(6,8,25,.96));
  box-shadow:0 0 18px rgba(255,43,184,.30);
}
.avatar-wrap{width:58px;height:58px;display:flex;align-items:center;justify-content:center}
.avatar-ring{
  width:58px;height:58px;border-radius:50%;padding:3px;
  background:linear-gradient(135deg,var(--pink),var(--cyan));
  flex:0 0 58px;
}
.avatar{
  width:100%;height:100%;border-radius:50%;display:grid;place-items:center;
  background:linear-gradient(145deg,#192853,#07101f);
  font-size:20px;font-weight:900;
}
.profile-copy{min-width:0}
.profile-name{font-size:19px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.crown{color:var(--yellow);margin-left:7px}
.vote-line{display:flex;align-items:baseline;gap:5px;margin-top:8px;white-space:nowrap}
.vote-line strong{font-size:24px;color:#13efad}
.vote-line span{font-weight:700}
.vote-line em{font-style:normal;font-size:13px;margin-left:4px}
.profile-action{
  width:46px;height:46px;border:1px solid var(--pink);background:#12061a;color:#ff7bd4;border-radius:6px;
  font-size:22px;cursor:pointer;box-shadow:0 0 12px rgba(255,43,184,.22)
}

.content-layout{display:grid;grid-template-columns:265px 1fr;gap:18px;padding:26px 18px 12px;position:relative;z-index:2}
.sidebar{display:flex;flex-direction:column;gap:20px}
.side-panel{border:1px solid var(--pink);border-radius:9px;background:rgba(6,7,25,.95);overflow:hidden;box-shadow:0 0 16px rgba(255,43,184,.17)}
.side-title{padding:14px 16px;color:#ff87da;font-weight:900;font-size:17px;border-bottom:1px solid #5c155d}
.family-btn,.console-btn{display:block;width:100%;text-align:left;color:#fff;border:0;background:transparent;cursor:pointer}
.family-btn{padding:13px 16px;font-weight:800;border-bottom:1px solid #241f3b;font-size:14px}
.family-btn:hover{background:#12142a}
.console-list{display:none}
.console-list.open{display:block}
.console-btn{padding:10px 15px 10px 42px;color:#eee;font-size:14px}
.console-btn.active{background:linear-gradient(90deg,#7b126d,#231139);color:#ffb8e9}
.community-panel{padding-bottom:8px}
.community-panel a{display:flex;align-items:center;gap:11px;padding:8px 16px;color:#fff;text-decoration:none;font-size:14px}
.community-panel a span{width:18px;color:var(--pink)}
.community-panel a:hover{color:#ff93de}

.main{min-width:0}
.page{display:none}
.page.active{display:block}

.top-panel{
  min-height:168px;border:1px solid var(--pink);border-radius:9px;background:rgba(6,7,25,.95);
  padding:14px 94px 12px 18px;position:relative;box-shadow:0 0 16px rgba(255,43,184,.15);
}
.top-heading{text-align:center;font-size:25px;font-weight:900;margin-bottom:8px;text-shadow:0 0 10px rgba(255,255,255,.08)}
.top-heading span{color:var(--yellow);margin:0 6px}
.top-grid{display:grid;grid-template-columns:repeat(3,1fr)}
.top-card{display:grid;grid-template-columns:54px 102px 1fr;gap:14px;align-items:center;padding:8px 18px;border-right:1px solid #8d145d}
.top-card:last-child{border-right:0}
.rank{font-size:50px;font-weight:900;color:var(--yellow);text-shadow:0 0 13px var(--yellow)}
.top-card:nth-child(2) .rank{color:var(--cyan);text-shadow:0 0 13px var(--cyan)}
.top-card:nth-child(3) .rank{color:var(--pink);text-shadow:0 0 13px var(--pink)}
.mini-cover{width:102px;height:102px;border:1px solid #425e8c;border-radius:4px;overflow:hidden;background:#10142f;display:grid;place-items:center;text-align:center;font-size:11px}
.mini-cover img{width:100%;height:100%;object-fit:cover}
.top-card strong{font-size:19px}
.badge{display:inline-block;border:1px solid var(--pink);color:#ff72d0;padding:2px 6px;border-radius:4px;margin-top:6px;font-size:12px}
.top-votes{color:var(--yellow);font-weight:800;margin-top:8px}
.top-full-btn{
  position:absolute;right:-1px;top:51px;width:73px;height:94px;border:1px solid var(--pink);background:#12071a;color:#ff7fd7;
  border-radius:6px;font-weight:800;line-height:1.25;cursor:pointer
}

.catalog-panel{
  margin-top:16px;border:1px solid var(--pink);border-radius:9px;background:rgba(6,7,25,.96);padding:14px;
  box-shadow:0 0 17px rgba(255,43,184,.15)
}
.catalog-panel.standalone{margin-top:0}
.catalog-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:14px}
.catalog-title-wrap{display:flex;align-items:center;gap:10px;position:relative}
.platform-icon{font-size:34px;color:var(--cyan);text-shadow:0 0 11px var(--cyan)}
.catalog-title-wrap h1{margin:0;font-size:31px;color:#ff2bb8;text-shadow:0 0 11px rgba(255,43,184,.45)}
.tiny-deco{color:#ff49c6;font-size:30px;transform:rotate(-10deg);margin-left:8px}
.catalog-title-wrap:after{
  content:"";height:2px;width:380px;background:linear-gradient(90deg,#ff2bb8,#00d7ff,transparent);margin-left:10px;
  box-shadow:0 0 8px rgba(0,215,255,.4)
}
.catalog-tools{display:flex;gap:10px;align-items:center}
.search-box{height:38px;border:1px solid #3a4677;border-radius:5px;display:flex;align-items:center;background:#05071a}
.search-box input{width:240px;background:transparent;border:0;outline:none;color:#fff;padding:0 12px;font-size:13px}
.search-box span{padding:0 12px;color:#ddd;font-size:20px}
.search-box.wide{width:380px}.search-box.wide input{width:100%}
.filter-btn{height:38px;border:1px solid var(--pink);background:#110719;color:#ff74d1;border-radius:5px;padding:0 18px;font-weight:800;cursor:pointer}

.cards-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}
.game-card{
  border:1px solid #1f86c2;border-radius:7px;overflow:hidden;background:#090b24;position:relative;contain:layout paint style;
  transition:transform .12s linear,border-color .12s linear
}
.game-card:hover{transform:translateY(-3px);border-color:var(--pink)}
.cover{height:126px;background:linear-gradient(145deg,#19285b,#090b22);overflow:hidden;display:grid;place-items:center;text-align:center;font-weight:900}
.cover img{width:100%;height:100%;object-fit:cover;display:block}
.game-body{padding:10px 11px 10px;background:linear-gradient(180deg,#0d102d,#090b22)}
.game-title{font-size:16px;font-weight:900;line-height:1.15;min-height:37px}
.game-meta{font-size:12px;color:#d4cedc;margin-top:6px}
.vote-row{display:flex;justify-content:space-between;color:#ff64cb;font-size:12px;margin-top:7px}
.vote-btn,.done-btn{width:100%;height:34px;border:1px solid var(--pink);border-radius:4px;background:#13071a;color:#ff7dd5;font-weight:900;margin-top:8px;cursor:pointer}
.vote-btn.voted{background:#661351;color:#fff}
.done-btn{border-color:#2de18d;color:#7bf1b9}

.ranking-list{display:flex;flex-direction:column;gap:8px}
.rank-line{display:grid;grid-template-columns:60px 1fr 110px;gap:12px;padding:13px;border:1px solid #282d5a;border-radius:6px;background:#090b24}
.rank-line b{color:var(--yellow)}
.muted{color:var(--muted)}
.hidden{display:none}
.about{line-height:1.6}

.footer{
  min-height:48px;display:grid;grid-template-columns:1fr 1.4fr 1fr;align-items:center;padding:0 18px 8px;font-size:12px;color:#aaa5bb;
  position:relative;z-index:2
}
.footer strong{text-align:center;color:#eee;font-size:14px}

@media(max-width:1280px){
  .page-shell{min-width:1100px}
  .header{grid-template-columns:300px 1fr 330px}
  .brand-logo{width:300px}
  .cards-grid{grid-template-columns:repeat(5,1fr)}
  .top-card{grid-template-columns:44px 82px 1fr}
  .mini-cover{width:82px;height:82px}
}

/* =========================
   V3.1 — header transparent + logo néon intégré
   ========================= */
.header{
  background:transparent !important;
  border-bottom:1px solid rgba(0,215,255,.24) !important;
  box-shadow:none !important;
  overflow:visible;
}
.brand-area{
  overflow:visible;
  height:142px;
}
.brand-logo{
  width:390px;
  max-height:138px;
  object-fit:contain;
  object-position:left center;
  filter:
    drop-shadow(0 0 5px rgba(255,80,205,.70))
    drop-shadow(0 0 13px rgba(255,28,183,.40))
    drop-shadow(0 0 18px rgba(255,210,28,.15));
}
.header-deco{
  opacity:.72;
  mix-blend-mode:screen;
  filter:
    drop-shadow(0 0 8px rgba(255,43,184,.35))
    drop-shadow(0 0 11px rgba(0,215,255,.22));
}

/* Keep the nav and profile as functional HTML, but let the global background show through. */
.nav{
  background:rgba(5,5,22,.50) !important;
  backdrop-filter:blur(5px);
}
.nav-item{
  background:rgba(5,6,24,.62) !important;
}
.nav-item.active,.nav-item:hover{
  background:linear-gradient(180deg,rgba(62,9,57,.72),rgba(7,7,28,.68)) !important;
}
.profile{
  background:linear-gradient(135deg,rgba(26,7,40,.67),rgba(5,8,27,.70)) !important;
  backdrop-filter:blur(5px);
}

/* Avatar never squashes when logged in. */
.avatar-wrap{
  width:58px !important;
  min-width:58px !important;
  height:58px !important;
  flex:0 0 58px !important;
}
.avatar-ring{
  width:58px !important;
  min-width:58px !important;
  height:58px !important;
  flex:0 0 58px !important;
  aspect-ratio:1/1;
}
.avatar{
  width:52px !important;
  height:52px !important;
  min-width:52px !important;
  min-height:52px !important;
  aspect-ratio:1/1;
}
.profile-copy{
  min-width:0;
  overflow:hidden;
}
.profile-name{
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
}

/* =========================
   V3.2 — logos constructeurs + header allégé
   ========================= */
.header-deco{display:none!important}

.family-btn{
  display:flex!important;
  align-items:center;
  gap:10px;
  min-height:46px;
}
.maker-logo{
  display:inline-block;
  flex:0 0 auto;
  object-fit:contain;
  vertical-align:middle;
}
.maker-playstation{
  width:28px;
  height:24px;
}
.maker-nintendo{
  width:62px;
  height:22px;
}
.maker-xbox{
  width:27px;
  height:27px;
}
.maker-sega{
  width:50px;
  height:22px;
}
.maker-pc{
  width:25px;
  height:25px;
  display:inline-grid;
  place-items:center;
  color:#00d7ff;
  border:1px solid #00d7ff;
  border-radius:3px;
  font-size:13px;
}

/* V3.3 — sidebar plateformes en texte uniquement */
.family-btn{
  display:block!important;
  padding-left:16px!important;
}
.maker-logo,.maker-pc{
  display:none!important;
}

/* V3.4 — PC ouvre directement son catalogue */
.family-btn.active{
  background:linear-gradient(90deg,#7b126d,#231139);
  color:#ffb8e9;
}

/* V3.5 — liens communauté réels */
.community-panel a{
  cursor:pointer;
}
.community-panel a:focus-visible{
  outline:1px solid #ff2bb8;
  outline-offset:-2px;
  color:#ff93de;
}

/* V3.6 — recherche globale dans le header */
.header{
  grid-template-columns:330px minmax(500px,1fr) 230px 350px!important;
  gap:12px!important;
}
.brand-logo{
  width:320px!important;
}
.global-search{
  width:230px;
  height:42px;
  justify-self:center;
  border-color:rgba(0,215,255,.55);
  box-shadow:0 0 10px rgba(0,215,255,.10);
}
.global-search input{
  width:185px!important;
}
@media(max-width:1280px){
  .header{
    grid-template-columns:270px minmax(440px,1fr) 200px 300px!important;
  }
  .brand-logo{width:260px!important}
  .global-search{width:200px}
  .global-search input{width:155px!important}
}

/* V3.8 — tri A→Z + jaquettes frontales propres */
.cover{
  height:220px!important;
  padding:7px!important;
  background:#050714!important;
}
.cover img{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center!important;
  background:#050714!important;
}
.mini-cover{
  background:#050714!important;
}
.mini-cover img{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
}
.cover-missing{
  display:grid!important;
  place-items:center!important;
  color:#8f8aa2!important;
  font-size:12px!important;
  text-align:center!important;
  padding:12px!important;
}

/* V3.9 — bouton Top complet corrigé */
.top-panel{
  padding-right:128px!important;
}
.top-full-btn{
  right:12px!important;
  top:54px!important;
  width:102px!important;
  height:92px!important;
  padding:8px 7px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:4px!important;
  line-height:1.18!important;
  font-size:12px!important;
  text-align:center!important;
  white-space:normal!important;
  overflow:hidden!important;
}
.top-full-btn .top-plus{
  display:block;
  font-size:25px;
  line-height:20px;
  color:#ffd21c;
  font-weight:900;
  text-shadow:0 0 8px rgba(255,210,28,.55);
}

/* V3.20 — année + genre sur les vignettes */
.game-info{
  margin-top:7px!important;
  min-height:18px;
  color:#aaa6b7!important;
  font-size:12px!important;
  font-weight:700;
  letter-spacing:.15px;
  line-height:1.25;
}


/* V3.22 — ouverture/fermeture fluide des sous-menus plateformes */
.console-list{
  display:grid!important;
  grid-template-rows:0fr;
  opacity:0;
  transform:translateY(-6px);
  overflow:hidden;
  visibility:hidden;
  transition:
    grid-template-rows .28s ease,
    opacity .20s ease,
    transform .28s ease,
    visibility 0s linear .28s;
}

/* Wrapper implicite : les boutons restent dans le flux pendant l'animation */
.console-list > *{
  min-height:0;
}

.console-list.open{
  grid-template-rows:1fr;
  opacity:1;
  transform:translateY(0);
  visibility:visible;
  transition:
    grid-template-rows .30s ease,
    opacity .22s ease .04s,
    transform .30s ease,
    visibility 0s linear 0s;
}

/* Le max-height permet aussi une transition fiable avec la structure actuelle */
.console-list{
  max-height:0;
}
.console-list.open{
  max-height:520px;
}

@media (prefers-reduced-motion: reduce){
  .console-list,
  .console-list.open{
    transition:none!important;
    transform:none!important;
  }
}


/* V3.23 — animation accordéon réellement visible */
.console-list{
  display:block!important;
  max-height:0!important;
  opacity:0!important;
  overflow:hidden!important;
  transform:translateY(-8px)!important;
  visibility:hidden;
  transition:
    max-height .28s cubic-bezier(.4,0,.2,1),
    opacity .20s ease,
    transform .28s cubic-bezier(.4,0,.2,1),
    visibility 0s linear .28s!important;
}

.console-list.open{
  max-height:520px!important;
  opacity:1!important;
  transform:translateY(0)!important;
  visibility:visible;
  transition:
    max-height .30s cubic-bezier(.4,0,.2,1),
    opacity .22s ease .03s,
    transform .30s cubic-bezier(.4,0,.2,1),
    visibility 0s!important;
}

/* Fermeture jouée sur le DOM existant avant son retrait */
.console-list.closing{
  max-height:0!important;
  opacity:0!important;
  transform:translateY(-8px)!important;
  visibility:visible!important;
}


/* V3.26 — vraie connexion Twitch (prototype local) */
.avatar-ring{
  position:relative;
  overflow:hidden;
}
.avatar-img{
  width:100%!important;
  height:100%!important;
  min-width:100%!important;
  min-height:100%!important;
  object-fit:cover!important;
  border-radius:50%;
  display:block;
}
.avatar-img.hidden,
.avatar.hidden{
  display:none!important;
}
.twitch-status{
  margin-top:2px;
  color:#a9a4b7;
  font-size:11px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.profile-action{
  font-size:12px;
  font-weight:900;
  min-width:46px;
}
.profile.connected .profile-action{
  font-size:21px;
}


/* =========================
   V3.30 — Twitch corrigé
   ========================= */
.profile{
  grid-template-columns:58px minmax(0,1fr) 78px!important;
}
.profile-action{
  min-width:78px!important;
  width:78px!important;
  height:46px!important;
  padding:0 8px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:clip!important;
  font-size:11px!important;
  line-height:1!important;
  letter-spacing:.02em;
  flex:0 0 78px!important;
}
.profile.connected .profile-action{
  min-width:46px!important;
  width:46px!important;
  flex-basis:46px!important;
  padding:0!important;
  font-size:25px!important;
  font-family:"Segoe UI Symbol","Arial Unicode MS",Arial,sans-serif!important;
  color:#ff7bd4!important;
}
#buildVersion{
  color:#00d7ff;
  margin-left:8px;
  font-size:11px;
}


/* V3.31 — Top vide + vote sans rechargement des jaquettes */
.top-empty{
  grid-column:1/-1;
  min-height:92px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:7px;
  text-align:center;
  color:#aaa6b7;
}
.top-empty strong{
  color:#ff7bd4;
  font-size:16px;
}
.top-empty span{
  font-size:12px;
}
.top-empty.full{
  min-height:140px;
}


/* V3.32 — vote directement depuis le Top */
.top-card-copy{
  min-width:0;
}
.top-vote-btn{
  margin-top:8px;
  min-width:76px;
  height:28px;
  padding:0 10px;
  border:1px solid var(--pink);
  border-radius:4px;
  background:#13071a;
  color:#ff7dd5;
  font-size:11px;
  font-weight:900;
  cursor:pointer;
}
.top-vote-btn:hover{
  background:#35102e;
}
.top-vote-btn.voted,
.top-list-vote-btn.voted{
  background:#661351;
  color:#fff;
}

.rank-line{
  grid-template-columns:54px minmax(0,1fr) 105px 92px!important;
  align-items:center;
}
.top-list-vote-btn{
  width:88px;
  height:32px;
  border:1px solid var(--pink);
  border-radius:4px;
  background:#13071a;
  color:#ff7dd5;
  font-size:11px;
  font-weight:900;
  cursor:pointer;
}
.top-list-vote-btn:hover{
  background:#35102e;
}


/* V3.34 — accueil */
.home-intro{margin:0 0 22px;padding:24px 26px;border:1px solid rgba(255,105,205,.28);border-radius:8px;background:linear-gradient(135deg,rgba(18,8,28,.92),rgba(8,14,26,.9));box-shadow:0 0 26px rgba(255,72,190,.06)}
.home-intro-kicker{margin-bottom:7px;color:#ff7bd4;font-size:11px;font-weight:900;letter-spacing:.14em}
.home-intro h2{margin:0 0 9px;color:#fff;font-size:24px;line-height:1.15}
.home-intro p{max-width:920px;margin:0;color:#b9b4c6;font-size:13px;line-height:1.65}.home-intro p strong{color:#fff}
.home-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:18px}
.home-steps>div{display:flex;align-items:center;gap:10px;min-height:54px;padding:9px 11px;border:1px solid rgba(0,215,255,.16);border-radius:6px;background:rgba(4,9,18,.52)}
.home-steps b{color:#00d7ff;font-size:16px}.home-steps span{color:#ded9e7;font-size:11px;font-weight:800;line-height:1.3}
@media(max-width:900px){.home-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.home-steps{grid-template-columns:1fr}.home-intro{padding:18px}.home-intro h2{font-size:20px}}


/* V3.37 — accueil & Top stable */
.home-intro-kicker{display:none!important}


/* V3.48 — conserver le losange bleu gauche, retirer uniquement la décoration rose droite */
.console-head::after,
.console-heading::after,
.console-title-wrap::after,
.console-section-title::after {
  content: none !important;
  display: none !important;
}


/* V3.52 — À propos Seed */
.about-panel{
  padding:32px;
  border:1px solid rgba(255,40,180,.7);
  border-radius:12px;
  background:rgba(7,8,27,.9);
}
.about-profile{
  display:flex;
  align-items:center;
  gap:34px;
  max-width:1080px;
  margin:0 auto;
}
.about-avatar{
  width:270px;
  height:270px;
  flex:0 0 270px;
  object-fit:cover;
  border-radius:18px;
  border:2px solid #ff2db2;
  box-shadow:0 0 24px rgba(255,45,178,.3),0 0 12px rgba(0,220,255,.2);
}
.about-copy{
  flex:1;
}
.about-copy h1{
  margin:0 0 20px;
  font-size:32px;
}
.about-copy p{
  margin:0 0 16px;
  font-size:16px;
  line-height:1.65;
}
.about-thanks{
  margin-top:22px !important;
  font-weight:800;
  color:#ff74d1;
}
@media(max-width:800px){
  .about-profile{flex-direction:column;text-align:center}
  .about-avatar{width:min(270px,80vw);height:min(270px,80vw);flex-basis:auto}
}


/* V3.55 — évite le flash de l'interface non initialisée pendant un refresh */
body.app-booting .page-shell{
  opacity:0;
  visibility:hidden;
}
body:not(.app-booting) .page-shell{
  opacity:1;
  visibility:visible;
  transition:opacity .14s ease;
}


/* V3.60 — badge abonné Twitch */
.profile-name{
  display:flex;
  align-items:center;
  gap:6px;
}
.subscriber-badge{
  width:22px;
  height:22px;
  object-fit:contain;
  image-rendering:auto;
  flex:0 0 22px;
  filter:drop-shadow(0 0 5px rgba(255,70,190,.32));
  cursor:help;
}


/* V3.65 — médiathèque MES VIDÉOS */
.videos-panel{min-height:520px}
.videos-intro{text-align:center;margin:-2px 0 24px}
.videos-toolbar{
  display:flex;
  flex-direction:column;
  gap:16px;
  margin-bottom:28px;
}
.video-categories{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}
.video-category{
  min-height:46px;
  border:1px solid #384472;
  border-radius:6px;
  background:#080a1d;
  color:#c9cde3;
  font-weight:900;
  letter-spacing:.4px;
  cursor:pointer;
  transition:.16s ease;
}
.video-category:hover{
  border-color:#9c46dc;
  color:#fff;
  transform:translateY(-1px);
}
.video-category.active{
  border-color:var(--pink);
  color:#ff79d3;
  background:linear-gradient(180deg,rgba(255,42,178,.12),rgba(15,7,31,.96));
  box-shadow:0 0 16px rgba(255,45,178,.13);
}
.videos-filters{
  display:flex;
  gap:12px;
  align-items:center;
}
.video-search{
  height:42px;
  flex:1;
  display:flex;
  align-items:center;
  border:1px solid #394573;
  border-radius:6px;
  background:#05071a;
  overflow:hidden;
}
.video-search span{
  padding-left:14px;
  color:#aeb5db;
  font-size:21px;
}
.video-search input{
  width:100%;
  height:100%;
  border:0;
  outline:0;
  background:transparent;
  color:#fff;
  padding:0 14px 0 9px;
  font-size:14px;
}
.video-year-wrap{
  height:42px;
  display:flex;
  align-items:center;
  gap:9px;
  padding:0 10px 0 14px;
  border:1px solid #394573;
  border-radius:6px;
  background:#05071a;
}
.video-year-wrap span{
  color:#939aba;
  font-size:11px;
  font-weight:900;
}
.video-year-wrap select{
  border:0;
  outline:0;
  background:#0b0d23;
  color:#fff;
  padding:6px 8px;
  border-radius:4px;
  font-weight:800;
}
.video-year-section{margin:0 0 34px}
.video-year-heading{
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:15px;
}
.video-year-heading span{
  color:#64ddff;
  font-size:24px;
  font-weight:1000;
  text-shadow:0 0 12px rgba(55,205,255,.2);
}
.video-year-heading i{
  height:1px;
  flex:1;
  background:linear-gradient(90deg,rgba(53,210,255,.55),rgba(255,45,178,.16),transparent);
}
.video-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}
.video-card{
  min-width:0;
  overflow:hidden;
  border:1px solid #2f385f;
  border-radius:8px;
  background:#080a1d;
  box-shadow:0 8px 20px rgba(0,0,0,.18);
  transition:transform .15s ease,border-color .15s ease;
}
.video-card:hover{
  transform:translateY(-2px);
  border-color:#7d45b0;
}
.video-thumb{
  position:relative;
  display:block;
  aspect-ratio:16/9;
  overflow:hidden;
  background:#03040d;
}
.video-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.video-thumb-placeholder{
  width:100%;
  height:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  background:
    radial-gradient(circle at 30% 30%,rgba(255,42,178,.14),transparent 40%),
    radial-gradient(circle at 70% 70%,rgba(40,207,255,.12),transparent 42%),
    #060719;
  color:#677096;
}
.video-thumb-placeholder span{font-size:36px;color:#ff53c3}
.video-thumb-placeholder small{font-size:9px;font-weight:900;letter-spacing:1px}
.video-type{
  position:absolute;
  left:9px;
  bottom:9px;
  padding:4px 7px;
  border-radius:4px;
  background:rgba(3,4,13,.9);
  border:1px solid rgba(255,65,185,.55);
  color:#ff7ad4;
  font-size:9px;
  font-weight:1000;
}
.video-card-body{padding:13px}
.video-card-meta{
  min-height:18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  color:#8f97b9;
  font-size:10px;
  font-weight:800;
}
.video-platform{
  color:#65dfff;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.video-card h3{
  margin:7px 0 13px;
  min-height:42px;
  color:#fff;
  font-size:15px;
  line-height:1.35;
}
.video-youtube-btn{
  height:34px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--pink);
  border-radius:5px;
  background:#13071a;
  color:#ff7dd5;
  font-size:11px;
  font-weight:1000;
  text-decoration:none;
}
.video-youtube-btn:hover{
  background:#220a29;
  box-shadow:0 0 14px rgba(255,45,178,.12);
}
.videos-empty{
  min-height:210px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:7px;
  border:1px dashed #343d68;
  border-radius:8px;
  color:#7e86aa;
  text-align:center;
}
.videos-empty strong{color:#c8cce1;font-size:17px}
.videos-empty span{font-size:13px}

@media(max-width:1000px){
  .video-categories{grid-template-columns:repeat(2,minmax(0,1fr))}
  .video-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:650px){
  .videos-filters{flex-direction:column;align-items:stretch}
  .video-year-wrap{justify-content:space-between}
  .video-grid{grid-template-columns:1fr}
  .video-categories{grid-template-columns:1fr 1fr}
}

.video-extra{font-size:12px;color:#c8c2dc;margin-top:-2px;margin-bottom:7px}
.video-status{display:inline-block;width:max-content;font-size:11px;font-weight:900;text-transform:uppercase;
letter-spacing:.4px;padding:4px 7px;border:1px solid rgba(255,46,180,.55);border-radius:4px;
color:#ffd3f2;background:rgba(255,46,180,.08);margin-bottom:9px}


/* V3.67 — filtres/statuts vidéos */
.video-search-stack{
  flex:1;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.video-status-filters{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.video-status-filter{
  border:1px solid #3b446e;
  border-radius:999px;
  background:#080a1d;
  color:#c8cce1;
  padding:7px 12px;
  font-size:11px;
  font-weight:1000;
  cursor:pointer;
  transition:.15s ease;
}
.video-status-filter:hover{
  transform:translateY(-1px);
}
.video-status-filter.status-progress{
  border-color:rgba(255,208,64,.55);
  color:#ffd84f;
}
.video-status-filter.status-done{
  border-color:rgba(57,214,120,.55);
  color:#55e596;
}
.video-status-filter.status-cancelled{
  border-color:rgba(255,82,103,.55);
  color:#ff6b7d;
}
.video-status-filter.active.status-progress{
  background:rgba(255,208,64,.16);
  box-shadow:0 0 12px rgba(255,208,64,.12);
}
.video-status-filter.active.status-done{
  background:rgba(57,214,120,.16);
  box-shadow:0 0 12px rgba(57,214,120,.12);
}
.video-status-filter.active.status-cancelled{
  background:rgba(255,82,103,.16);
  box-shadow:0 0 12px rgba(255,82,103,.12);
}

.video-status{
  display:inline-block;
  width:max-content;
  font-size:11px;
  font-weight:1000;
  text-transform:uppercase;
  letter-spacing:.4px;
  padding:4px 7px;
  border-radius:4px;
  margin-bottom:9px;
}

/* Statuts colorés */
.video-card .video-status{
  border:1px solid #465177;
  color:#dfe3f2;
  background:rgba(100,110,150,.08);
}
.video-card .video-status:is(:where(*)){
  /* neutral base only */
}

.video-status.status-done{
  border-color:rgba(57,214,120,.58);
  color:#57e99a;
  background:rgba(57,214,120,.11);
}
.video-status.status-cancelled{
  border-color:rgba(255,82,103,.6);
  color:#ff7182;
  background:rgba(255,82,103,.11);
}
.video-status.status-progress{
  border-color:rgba(255,208,64,.62);
  color:#ffda57;
  background:rgba(255,208,64,.11);
}

@media(max-width:650px){
  .video-search-stack{width:100%}
  .video-status-filters{justify-content:center}
}


/* V3.68 — sous-navigation épurée des vidéos JEUX VIDÉO */
.video-kind-nav{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:5px;
  padding:4px;
  width:max-content;
  max-width:100%;
  margin:-4px auto 2px;
  border:1px solid #293254;
  border-radius:999px;
  background:rgba(5,7,24,.76);
}
.video-kind-nav.hidden{display:none}
.video-kind{
  border:0;
  border-radius:999px;
  background:transparent;
  color:#7f87a8;
  padding:7px 13px;
  font-size:10px;
  font-weight:1000;
  letter-spacing:.45px;
  cursor:pointer;
  white-space:nowrap;
  transition:.15s ease;
}
.video-kind:hover{color:#d6d9e8}
.video-kind.active{
  color:#69e3ff;
  background:rgba(53,210,255,.09);
  box-shadow:inset 0 0 0 1px rgba(53,210,255,.22);
}
.video-console{
  display:inline-flex;
  align-items:center;
  max-width:140px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#69e3ff;
  border:1px solid rgba(53,210,255,.28);
  background:rgba(53,210,255,.07);
  border-radius:999px;
  padding:2px 6px;
  font-size:9px;
  font-weight:1000;
}

@media(max-width:650px){
  .video-kind-nav{
    width:100%;
    overflow-x:auto;
    justify-content:flex-start;
    border-radius:7px;
  }
}


/* V3.69 — filtres réservés aux jeux vidéo + LIVE/OFF */
.video-status-filters.hidden{display:none}

.video-mode{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:2px 7px;
  font-size:9px;
  font-weight:1000;
  letter-spacing:.35px;
}
.video-mode.mode-live{
  color:#ff6678;
  border:1px solid rgba(255,74,96,.38);
  background:rgba(255,74,96,.08);
}
.video-mode.mode-off{
  color:#69e3ff;
  border:1px solid rgba(53,210,255,.32);
  background:rgba(53,210,255,.07);
}


/* V3.71 — navigation MES VIDÉOS plus compacte */
.video-categories{
  display:grid;
  grid-template-columns:repeat(5, minmax(0, 1fr));
  gap:8px;
}
.video-category{
  min-width:0;
  padding:10px 8px;
  font-size:11px;
}

/* Recherche et année parfaitement alignées */
.videos-filters{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  align-items:stretch;
  gap:10px;
}
.videos-filters .search-wrap,
.videos-filters .video-search,
.videos-filters input{
  height:100%;
  min-height:42px;
}
.videos-filters .year-filter,
.videos-filters .video-year-wrap{
  align-self:stretch;
  min-height:42px;
  display:flex;
  align-items:center;
}

/* Le bloc de statuts reste sur sa propre ligne sous la recherche */
.video-status-filters{
  grid-column:1 / -1;
}

@media(max-width:800px){
  .video-categories{
    grid-template-columns:repeat(5, minmax(105px,1fr));
    overflow-x:auto;
  }
}


/* V3.72 — catégories MES VIDÉOS sans icônes */
.video-category{
  font-size:13px;
  font-weight:1000;
  letter-spacing:.35px;
}


/* =========================================================
   V3.78 — RESPONSIVE MOBILE / TABLETTE
   ========================================================= */

html, body {
  max-width: 100%;
  overflow-x: hidden;
}

img, video, iframe {
  max-width: 100%;
  height: auto;
}

* {
  box-sizing: border-box;
}

.site-shell,
.site-wrapper,
.wrapper,
.container,
.main,
main,
.content,
.page,
.catalog-panel,
.standalone,
.home-layout,
.top-layout,
header,
.site-header {
  max-width: 100%;
}

@media (max-width: 1100px) {
  body { min-width: 0 !important; }

  .site-shell,
  .site-wrapper,
  .wrapper,
  .container {
    width: 100% !important;
    min-width: 0 !important;
    padding-left: 14px !important;
    padding-right: 14px !important;
  }

  header,
  .site-header,
  .header-inner,
  .topbar {
    width: 100% !important;
    min-width: 0 !important;
  }

  .header-inner,
  .topbar,
  header .inner {
    gap: 12px !important;
  }

  .brand,
  .logo-wrap,
  .site-logo-wrap {
    flex: 0 1 280px !important;
    min-width: 0 !important;
  }

  .brand img,
  .site-logo,
  .logo {
    max-width: 260px !important;
    width: 100% !important;
    height: auto !important;
  }

  .main-nav,
  nav.main-nav,
  .nav {
    min-width: 0 !important;
    flex-wrap: wrap !important;
  }
}

@media (max-width: 800px) {
  body {
    min-width: 0 !important;
    width: 100% !important;
  }

  .site-shell,
  .site-wrapper,
  .wrapper,
  .container {
    width: 100% !important;
    margin: 0 auto !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  header,
  .site-header {
    padding-top: 10px !important;
  }

  .header-inner,
  .topbar,
  header .inner {
    display: grid !important;
    grid-template-columns: 1fr !important;
    width: 100% !important;
    gap: 10px !important;
    align-items: center !important;
  }

  .brand,
  .logo-wrap,
  .site-logo-wrap {
    width: 100% !important;
    max-width: 100% !important;
    display: flex !important;
    justify-content: center !important;
    flex: none !important;
  }

  .brand img,
  .site-logo,
  .logo {
    width: min(70vw, 300px) !important;
    max-width: 300px !important;
    height: auto !important;
    object-fit: contain !important;
  }

  .main-nav,
  nav.main-nav,
  .nav {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  .main-nav::-webkit-scrollbar,
  nav.main-nav::-webkit-scrollbar,
  .nav::-webkit-scrollbar {
    display: none;
  }

  .nav-item {
    flex: 0 0 auto !important;
    min-width: 118px !important;
    padding: 12px 14px !important;
    font-size: 12px !important;
    white-space: nowrap !important;
  }

  .header-search,
  .search-box,
  .global-search,
  .twitch-card,
  .user-card,
  .account-card {
    width: 100% !important;
    max-width: 100% !important;
  }

  .home-layout,
  .layout,
  .content-layout,
  .main-grid {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    min-width: 0 !important;
    gap: 12px !important;
  }

  aside,
  .sidebar,
  .left-sidebar {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    order: 2;
  }

  .main-content,
  .content,
  main > .content,
  .page-wrap {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    order: 1;
  }

  .platform-panel ul,
  .platform-list,
  .platforms-list {
    display: flex !important;
    overflow-x: auto !important;
    gap: 6px !important;
    padding: 8px !important;
    scrollbar-width: none;
  }

  .platform-panel li,
  .platform-item {
    flex: 0 0 auto !important;
    min-width: 120px !important;
  }

  #homeIntro,
  .intro-panel,
  .hero-panel,
  .home-intro {
    width: 100% !important;
    max-width: 100% !important;
  }

  #homeIntro .steps,
  .steps,
  .intro-steps {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 8px !important;
  }

  .top3,
  .top-games,
  .podium,
  .top-list {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  .game-grid,
  .games-grid,
  .catalog-grid,
  .catalogue-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }

  .game-card,
  .card {
    min-width: 0 !important;
  }

  .game-card img,
  .cover,
  .game-cover {
    width: 100% !important;
    object-fit: cover !important;
  }

  .video-categories {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .video-kind-nav {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    justify-content: flex-start !important;
    scrollbar-width: none;
  }

  .video-kind {
    flex: 0 0 auto !important;
  }

  .videos-filters {
    display: grid !important;
    grid-template-columns: 1fr !important;
    width: 100% !important;
    gap: 8px !important;
  }

  .video-search-stack,
  .video-search,
  .video-year-wrap {
    width: 100% !important;
    max-width: 100% !important;
  }

  .video-year-wrap {
    justify-content: space-between !important;
  }

  .video-status-filters {
    grid-column: 1 !important;
    justify-content: flex-start !important;
  }

  .video-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }

  .top-heading {
    font-size: clamp(24px, 7vw, 34px) !important;
  }

  h1 {
    font-size: clamp(24px, 7vw, 34px) !important;
  }

  h2 {
    font-size: clamp(20px, 5.5vw, 28px) !important;
  }

  h1, h2, h3, p, span, button, a {
    overflow-wrap: anywhere;
  }
}

@media (max-width: 520px) {
  .site-shell,
  .site-wrapper,
  .wrapper,
  .container {
    padding-left: 7px !important;
    padding-right: 7px !important;
  }

  .brand img,
  .site-logo,
  .logo {
    width: min(78vw, 270px) !important;
  }

  .nav-item {
    min-width: 104px !important;
    padding: 11px 10px !important;
    font-size: 11px !important;
  }

  #homeIntro .steps,
  .steps,
  .intro-steps {
    grid-template-columns: 1fr !important;
  }

  .game-grid,
  .games-grid,
  .catalog-grid,
  .catalogue-grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 7px !important;
  }

  .game-card h3,
  .game-card .title {
    font-size: 13px !important;
  }

  .video-categories {
    grid-template-columns: 1fr 1fr !important;
    gap: 6px !important;
  }

  .video-category {
    padding: 9px 5px !important;
    font-size: 11px !important;
  }

  .video-grid {
    grid-template-columns: 1fr !important;
  }

  .video-status-filters {
    display: flex !important;
    overflow-x: auto !important;
    flex-wrap: nowrap !important;
    scrollbar-width: none;
  }

  .video-status-filter {
    flex: 0 0 auto !important;
  }
}

@media (max-height: 520px) and (orientation: landscape) {
  .brand img,
  .site-logo,
  .logo {
    width: min(34vw, 220px) !important;
  }

  .header-inner,
  .topbar,
  header .inner {
    grid-template-columns: auto 1fr !important;
    align-items: center !important;
  }

  .brand,
  .logo-wrap,
  .site-logo-wrap {
    width: auto !important;
    justify-content: flex-start !important;
  }

  .nav-item {
    min-width: 105px !important;
    padding: 10px 11px !important;
  }

  .video-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}


/* =========================================================
   V3.79 — responsive ciblé sur la vraie structure du site
   ========================================================= */

@media (max-width: 800px) {
  .page-shell{
    width:100% !important;
    min-width:0 !important;
    margin:0 !important;
  }

  .header{
    height:auto !important;
    min-height:0 !important;
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:10px !important;
    padding:10px !important;
  }

  .brand-area{
    height:auto !important;
    justify-content:center !important;
  }

  .brand-logo{
    width:min(72vw,250px) !important;
    max-height:none !important;
    object-position:center !important;
  }

  .nav{
    width:100% !important;
    height:54px !important;
    display:grid !important;
    grid-template-columns:repeat(5,minmax(0,1fr)) !important;
    overflow:visible !important;
  }

  .nav-item{
    min-width:0 !important;
    width:auto !important;
    padding:4px 3px !important;
    font-size:9px !important;
    line-height:1.15 !important;
    white-space:normal !important;
  }

  .global-search{
    width:100% !important;
    height:40px !important;
    justify-self:stretch !important;
  }

  .global-search input{
    width:calc(100% - 40px) !important;
  }

  .profile{
    width:100% !important;
    height:72px !important;
    grid-template-columns:50px 1fr 46px !important;
    gap:8px !important;
    padding:7px 9px !important;
  }

  .avatar-wrap,
  .avatar-ring{
    width:48px !important;
    height:48px !important;
  }

  .profile-name{font-size:15px !important}
  .vote-line{margin-top:3px !important}
  .vote-line strong{font-size:18px !important}
  .vote-line em{font-size:10px !important}
  .profile-action{width:40px !important;height:40px !important}

  .content-layout{
    display:flex !important;
    flex-direction:column !important;
    gap:12px !important;
    padding:12px 8px !important;
  }

  .main{
    width:100% !important;
    min-width:0 !important;
    order:1 !important;
  }

  .sidebar{
    width:100% !important;
    order:2 !important;
  }

  .home-intro{
    width:100% !important;
    margin:0 0 12px !important;
    padding:16px !important;
  }

  .home-intro h2{
    font-size:21px !important;
    line-height:1.18 !important;
  }

  .home-intro p{
    max-width:none !important;
    font-size:12px !important;
    line-height:1.5 !important;
  }

  .home-steps{
    grid-template-columns:1fr !important;
    gap:7px !important;
    margin-top:12px !important;
  }

  .home-steps>div{
    min-height:48px !important;
  }

  .top-panel{
    width:100% !important;
    min-height:0 !important;
    padding:12px !important;
  }

  .top-heading{
    font-size:20px !important;
    margin-bottom:10px !important;
  }

  .top-grid{
    grid-template-columns:1fr !important;
  }

  .top-card{
    grid-template-columns:42px 78px minmax(0,1fr) !important;
    gap:9px !important;
    padding:9px 4px !important;
    border-right:0 !important;
    border-bottom:1px solid rgba(141,20,93,.55) !important;
  }

  .top-card:last-child{
    border-bottom:0 !important;
  }

  .rank{font-size:36px !important}

  .mini-cover{
    width:78px !important;
    height:78px !important;
  }

  .top-card strong{
    font-size:15px !important;
  }

  .top-full-btn{
    position:static !important;
    width:100% !important;
    height:42px !important;
    margin-top:10px !important;
  }

  .catalog-panel{
    width:100% !important;
    margin-top:12px !important;
  }

  .cards-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:8px !important;
  }

  .cover{
    height:170px !important;
  }

  .game-body{
    padding:8px !important;
  }

  .game-title{
    font-size:13px !important;
    min-height:31px !important;
  }

  .game-meta,
  .vote-row{
    font-size:10px !important;
  }

  .side-panel{
    width:100% !important;
  }

  .side-title{
    font-size:14px !important;
    padding:11px 12px !important;
  }

  .family-btn{
    padding:11px 12px !important;
    font-size:13px !important;
  }

  .community-panel a{
    padding:7px 12px !important;
    font-size:12px !important;
  }
}

@media (max-width: 420px) {
  .brand-logo{
    width:min(76vw,225px) !important;
  }

  .nav{
    height:50px !important;
  }

  .nav-item{
    font-size:8px !important;
  }

  .cards-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }

  .cover{
    height:150px !important;
  }
}

/* Téléphone en paysage : header compact sur deux lignes */
@media (orientation: landscape) and (max-height: 520px) and (max-width: 1000px) {
  .page-shell{
    min-width:0 !important;
    width:100% !important;
  }

  .header{
    height:auto !important;
    display:grid !important;
    grid-template-columns:220px minmax(0,1fr) !important;
    gap:8px 12px !important;
    padding:8px 10px !important;
  }

  .brand-area{
    grid-column:1 !important;
    grid-row:1 !important;
    justify-content:center !important;
  }

  .brand-logo{
    width:200px !important;
    max-height:95px !important;
  }

  .nav{
    grid-column:2 !important;
    grid-row:1 !important;
    height:52px !important;
    width:100% !important;
    display:grid !important;
    grid-template-columns:repeat(5,minmax(0,1fr)) !important;
  }

  .nav-item{
    font-size:9px !important;
    min-width:0 !important;
    padding:3px !important;
    white-space:normal !important;
  }

  .global-search{
    grid-column:1 !important;
    grid-row:2 !important;
    width:100% !important;
    height:38px !important;
  }

  .profile{
    grid-column:2 !important;
    grid-row:2 !important;
    width:100% !important;
    height:58px !important;
    grid-template-columns:42px 1fr 40px !important;
    padding:5px 8px !important;
  }

  .avatar-wrap,
  .avatar-ring{
    width:40px !important;
    height:40px !important;
  }

  .profile-name{font-size:13px !important}
  .vote-line strong{font-size:16px !important}
  .profile-action{width:34px !important;height:34px !important}

  .content-layout{
    padding:10px !important;
  }

  .home-intro{
    padding:14px 16px !important;
  }

  .home-steps{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }

  .top-grid{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  }

  .top-card{
    grid-template-columns:32px 58px minmax(0,1fr) !important;
    gap:6px !important;
    border-right:1px solid #8d145d !important;
    border-bottom:0 !important;
  }

  .top-card:last-child{border-right:0 !important}
  .rank{font-size:28px !important}
  .mini-cover{width:58px !important;height:58px !important}
  .top-card strong{font-size:12px !important}

  .cards-grid{
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  }

  .cover{
    height:150px !important;
  }
}


/* =========================================================
   V3.82 — MOBILE DRAWER + TWITCH PROFILE FIX
   ========================================================= */

@media (max-width: 1000px) {
  /* Keep Twitch card contents inside the card */
  .profile{
    overflow:hidden !important;
  }

  .profile-action{
    position:static !important;
    right:auto !important;
    flex:0 0 auto !important;
    max-width:100% !important;
  }

  .profile > *{
    min-width:0 !important;
  }

  .profile .profile-info,
  .profile-info{
    min-width:0 !important;
    overflow:hidden !important;
  }

  .profile-name,
  .profile-sub,
  .vote-line{
    max-width:100% !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    white-space:nowrap !important;
  }

  /* Mobile menu button */
  .mobile-sidebar-toggle{
    display:flex !important;
    align-items:center;
    justify-content:center;
    gap:7px;
    width:calc(100% - 16px);
    margin:10px 8px 0;
    min-height:42px;
    border:1px solid #ff2db2;
    border-radius:7px;
    background:linear-gradient(180deg, rgba(255,45,178,.10), rgba(8,8,25,.95));
    color:#ff85d8;
    font-weight:1000;
    font-size:12px;
    letter-spacing:.5px;
    cursor:pointer;
    position:relative;
    z-index:40;
  }

  .mobile-sidebar-backdrop{
    display:none;
    position:fixed;
    inset:0;
    background:rgba(0,0,10,.62);
    backdrop-filter:blur(2px);
    z-index:98;
  }

  .mobile-sidebar-backdrop.open{
    display:block;
  }

  /* Sidebar becomes off-canvas drawer */
  .sidebar{
    position:fixed !important;
    top:0 !important;
    left:0 !important;
    bottom:0 !important;
    width:min(82vw,330px) !important;
    max-width:330px !important;
    height:100dvh !important;
    overflow-y:auto !important;
    z-index:99 !important;
    padding:18px 12px 24px !important;
    margin:0 !important;
    background:
      radial-gradient(circle at 20% 10%, rgba(255,40,185,.13), transparent 30%),
      #080719 !important;
    border-right:1px solid rgba(255,45,178,.55) !important;
    box-shadow:14px 0 40px rgba(0,0,0,.46) !important;
    transform:translateX(-105%) !important;
    transition:transform .22s ease !important;
    order:initial !important;
  }

  .sidebar.open{
    transform:translateX(0) !important;
  }

  .sidebar::before{
    content:"MENU";
    display:block;
    color:#ff7bd3;
    font-size:18px;
    font-weight:1000;
    margin:0 4px 14px;
    letter-spacing:.5px;
  }

  body.mobile-menu-open{
    overflow:hidden !important;
  }
}

/* Desktop: preserve original sidebar and hide mobile trigger */
@media (min-width:1001px) {
  .mobile-sidebar-toggle,
  .mobile-sidebar-backdrop{
    display:none !important;
  }
}

/* Portrait tweak: more room for Twitch profile */
@media (max-width:800px) {
  .profile{
    grid-template-columns:58px minmax(0,1fr) 86px !important;
    padding:8px 10px !important;
    gap:8px !important;
  }

  .profile-action{
    width:78px !important;
    height:46px !important;
    font-size:12px !important;
  }
}

/* Landscape phone: compact but fully contained */
@media (orientation:landscape) and (max-height:520px) and (max-width:1000px) {
  .profile{
    grid-template-columns:48px minmax(0,1fr) 92px !important;
  }

  .profile-action{
    width:86px !important;
    height:40px !important;
    font-size:11px !important;
  }

  .mobile-sidebar-toggle{
    width:auto !important;
    min-width:120px !important;
    margin:8px 10px 0 !important;
  }
}


/* =========================================================
   V3.83 — avatar parfaitement rond + menu mobile fiable
   ========================================================= */

@media (max-width:1000px) {
  .avatar-wrap{
    width:58px !important;
    height:58px !important;
    min-width:58px !important;
    min-height:58px !important;
    max-width:58px !important;
    max-height:58px !important;
    flex:0 0 58px !important;
    aspect-ratio:1 / 1 !important;
    display:block !important;
  }

  .avatar-ring{
    position:relative !important;
    width:58px !important;
    height:58px !important;
    min-width:58px !important;
    min-height:58px !important;
    max-width:58px !important;
    max-height:58px !important;
    aspect-ratio:1 / 1 !important;
    border-radius:50% !important;
    overflow:hidden !important;
    clip-path:circle(50% at 50% 50%) !important;
    flex:none !important;
  }

  .avatar,
  .avatar-img{
    position:absolute !important;
    inset:3px !important;
    width:calc(100% - 6px) !important;
    height:calc(100% - 6px) !important;
    min-width:0 !important;
    min-height:0 !important;
    max-width:none !important;
    max-height:none !important;
    aspect-ratio:1 / 1 !important;
    object-fit:cover !important;
    object-position:center !important;
    border-radius:50% !important;
    clip-path:circle(50% at 50% 50%) !important;
  }

  .mobile-sidebar-toggle{
    pointer-events:auto !important;
    touch-action:manipulation !important;
    cursor:pointer !important;
  }

  .mobile-sidebar-backdrop{
    pointer-events:none;
  }

  .mobile-sidebar-backdrop.open{
    pointer-events:auto;
  }
}

@media (orientation:landscape) and (max-height:520px) and (max-width:1000px) {
  .avatar-wrap,
  .avatar-ring{
    width:52px !important;
    height:52px !important;
    min-width:52px !important;
    min-height:52px !important;
    max-width:52px !important;
    max-height:52px !important;
    flex-basis:52px !important;
  }
}


/* =========================================================
   V3.84 — menu mobile réellement au-dessus + bouton power
   ========================================================= */

@media (max-width:1000px) {
  /* Force a top-level visual layer for the drawer. */
  .mobile-sidebar-backdrop{
    z-index:2147483000 !important;
  }

  .sidebar{
    z-index:2147483001 !important;
    pointer-events:auto !important;
    isolation:isolate !important;
    opacity:1 !important;
    filter:none !important;
    backdrop-filter:none !important;
  }

  .sidebar.open{
    z-index:2147483001 !important;
    pointer-events:auto !important;
    opacity:1 !important;
  }

  .sidebar *,
  .sidebar a,
  .sidebar button{
    pointer-events:auto !important;
    position:relative;
    z-index:2;
  }

  /* Ensure the dark overlay itself never dims the drawer. */
  .sidebar .side-panel,
  .sidebar .platform-panel,
  .sidebar .community-panel{
    opacity:1 !important;
    filter:none !important;
    background:#080819 !important;
  }

  /* Restore a proper round power button. */
  .profile-action{
    width:54px !important;
    height:54px !important;
    min-width:54px !important;
    min-height:54px !important;
    max-width:54px !important;
    max-height:54px !important;
    aspect-ratio:1 / 1 !important;
    padding:0 !important;
    border-radius:50% !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    overflow:visible !important;
    font-family:Arial, Helvetica, sans-serif !important;
  }

  .profile-action .power-symbol{
    display:block !important;
    color:#ff72d0 !important;
    font-family:Arial, Helvetica, sans-serif !important;
    font-size:29px !important;
    line-height:1 !important;
    font-weight:400 !important;
    transform:none !important;
  }
}

@media (orientation:landscape) and (max-height:520px) and (max-width:1000px) {
  .profile-action{
    width:46px !important;
    height:46px !important;
    min-width:46px !important;
    min-height:46px !important;
    max-width:46px !important;
    max-height:46px !important;
  }

  .profile-action .power-symbol{
    font-size:25px !important;
  }
}


/* =========================================================
   V3.85 — vrai drawer mobile indépendant + icône power CSS
   ========================================================= */

@media (max-width:1000px) {
  /* Hide the old sidebar entirely on mobile: it only serves as data source. */
  .sidebar{
    display:none !important;
  }

  .mobile-drawer-backdrop{
    display:block;
    position:fixed;
    inset:0;
    z-index:999998;
    background:rgba(0,0,12,.72);
    backdrop-filter:blur(3px);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .18s ease, visibility .18s ease;
  }

  .mobile-drawer-backdrop.open{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
  }

  .mobile-drawer{
    display:block;
    position:fixed;
    top:0;
    left:0;
    bottom:0;
    width:min(84vw,330px);
    height:100dvh;
    z-index:999999;
    overflow-y:auto;
    padding:0 12px 24px;
    background:
      radial-gradient(circle at 20% 10%,rgba(255,45,178,.15),transparent 34%),
      #070719;
    border-right:1px solid rgba(255,45,178,.65);
    box-shadow:18px 0 45px rgba(0,0,0,.55);
    transform:translateX(-105%);
    transition:transform .20s ease;
    pointer-events:auto;
  }

  .mobile-drawer.open{
    transform:translateX(0);
  }

  .mobile-drawer-head{
    position:sticky;
    top:0;
    z-index:3;
    min-height:62px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin:0 -12px 12px;
    padding:0 16px;
    background:rgba(7,7,25,.98);
    border-bottom:1px solid rgba(255,45,178,.35);
  }

  .mobile-drawer-head strong{
    color:#ff79d1;
    font-size:18px;
    letter-spacing:.5px;
  }

  .mobile-drawer-head button{
    width:38px;
    height:38px;
    border:1px solid rgba(255,45,178,.55);
    border-radius:50%;
    background:#0b0b20;
    color:#ff79d1;
    font-size:25px;
    line-height:1;
  }

  .mobile-drawer-content{
    position:relative;
    z-index:2;
    opacity:1 !important;
    filter:none !important;
  }

  .mobile-drawer-content .side-panel,
  .mobile-drawer-content .platform-panel,
  .mobile-drawer-content .community-panel{
    display:block !important;
    width:100% !important;
    opacity:1 !important;
    filter:none !important;
    background:#080819 !important;
  }

  .mobile-drawer-content button,
  .mobile-drawer-content a{
    pointer-events:auto !important;
  }

  body.mobile-menu-open{
    overflow:hidden !important;
  }

  /* Remove any old mobile drawer/backdrop visuals. */
  #mobileSidebarBackdrop{
    display:none !important;
  }

  /* Reliable CSS-drawn power icon. */
  .profile-action{
    position:relative !important;
    width:54px !important;
    height:54px !important;
    min-width:54px !important;
    min-height:54px !important;
    max-width:54px !important;
    max-height:54px !important;
    border-radius:50% !important;
    padding:0 !important;
    overflow:visible !important;
  }

  .power-icon-css{
    position:relative;
    display:block;
    width:24px;
    height:24px;
    border:2px solid #ff71cf;
    border-top-color:transparent;
    border-radius:50%;
  }

  .power-icon-css::before{
    content:"";
    position:absolute;
    left:50%;
    top:-6px;
    width:2px;
    height:13px;
    background:#ff71cf;
    border-radius:2px;
    transform:translateX(-50%);
  }
}

@media (min-width:1001px) {
  .mobile-drawer,
  .mobile-drawer-backdrop{
    display:none !important;
  }
}


/* V3.86 — true power icon */
.profile-action .power-svg{
  width:28px !important;
  height:28px !important;
  display:block !important;
  fill:none !important;
  stroke:#ff72d0 !important;
  stroke-width:2.1 !important;
  stroke-linecap:round !important;
  stroke-linejoin:round !important;
}

@media (orientation:landscape) and (max-height:520px) and (max-width:1000px){
  .profile-action .power-svg{
    width:24px !important;
    height:24px !important;
  }
}


/* =========================================================
   V3.87 — mobile polish
   ========================================================= */

@media (max-width:1000px) {

  /* Power button: icon drawn entirely with CSS */
  .profile-action{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    border-radius:50% !important;
  }

  .power-logo{
    position:relative !important;
    display:block !important;
    width:28px !important;
    height:28px !important;
    border:3px solid #ff72d0 !important;
    border-top-color:transparent !important;
    border-radius:50% !important;
    box-sizing:border-box !important;
  }

  .power-logo::before{
    content:"" !important;
    position:absolute !important;
    left:50% !important;
    top:-7px !important;
    width:3px !important;
    height:16px !important;
    background:#ff72d0 !important;
    border-radius:3px !important;
    transform:translateX(-50%) !important;
  }

  /* Prevent the top button label from escaping its box */
  .top-full-btn{
    min-height:48px !important;
    height:auto !important;
    padding:8px 12px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    text-align:center !important;
    line-height:1.15 !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    font-size:11px !important;
  }

  /* Console titles and catalogue title on one line */
  .console-title,
  .platform-title,
  .subplatform-title,
  .catalog-title,
  .catalogue-title,
  .catalog-panel .top-heading{
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
  }

  .catalog-panel .top-heading,
  .catalog-title,
  .catalogue-title{
    font-size:clamp(22px, 6vw, 34px) !important;
  }
}

/* Very narrow phones: shrink just enough to preserve one line */
@media (max-width:420px){
  .catalog-panel .top-heading,
  .catalog-title,
  .catalogue-title{
    font-size:21px !important;
    letter-spacing:.2px !important;
  }

  .top-full-btn{
    font-size:10px !important;
  }
}


/* =========================================================
   V3.88 — targeted fixes using the site's actual selectors
   ========================================================= */

/* The icon is now injected by renderUser(), so it cannot be overwritten. */
.profile-action .power-svg{
  display:block !important;
  width:27px !important;
  height:27px !important;
  fill:none !important;
  stroke:#ff72d0 !important;
  stroke-width:2.25 !important;
  stroke-linecap:round !important;
  stroke-linejoin:round !important;
  flex:none !important;
}

/* Actual catalogue / selected-console title element. */
#consoleTitle,
.catalog-title-wrap h1{
  white-space:nowrap !important;
  word-break:normal !important;
  overflow-wrap:normal !important;
  text-overflow:clip !important;
  line-height:1.05 !important;
}

/* Actual platform submenu buttons. */
.console-btn{
  white-space:nowrap !important;
  word-break:normal !important;
  overflow-wrap:normal !important;
}

@media (max-width:800px){
  #consoleTitle,
  .catalog-title-wrap h1{
    font-size:clamp(18px,5.4vw,25px) !important;
  }

  .catalog-title-wrap{
    flex-wrap:nowrap !important;
    min-width:0 !important;
  }

  .catalog-title-wrap:after{
    min-width:28px !important;
    width:auto !important;
    flex:1 1 auto !important;
    margin-left:7px !important;
  }

  .console-btn{
    font-size:12px !important;
  }

  .profile-action{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
  }
}

@media (max-width:420px){
  #consoleTitle,
  .catalog-title-wrap h1{
    font-size:18px !important;
  }
}


/* =========================================================
   V3.89 — PC final choice + Twitch button states
   ========================================================= */

/* Connected: true circular power button */
#profileBox.connected .profile-action{
  width:54px !important;
  height:54px !important;
  min-width:54px !important;
  min-height:54px !important;
  max-width:54px !important;
  max-height:54px !important;
  flex:0 0 54px !important;
  aspect-ratio:1 / 1 !important;
  border-radius:50% !important;
  padding:0 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}

/* Disconnected: rectangular CTA with explicit wording */
#profileBox:not(.connected) .profile-action{
  width:auto !important;
  min-width:170px !important;
  max-width:none !important;
  height:46px !important;
  min-height:46px !important;
  padding:0 15px !important;
  flex:0 0 auto !important;
  aspect-ratio:auto !important;
  border-radius:7px !important;
  font-size:11px !important;
  font-weight:1000 !important;
  line-height:1.1 !important;
  white-space:nowrap !important;
  color:#ff7bd4 !important;
}

@media (max-width:520px){
  #profileBox:not(.connected) .profile-action{
    min-width:158px !important;
    padding:0 11px !important;
    font-size:10px !important;
  }

  #profileBox.connected .profile-action{
    width:52px !important;
    height:52px !important;
    min-width:52px !important;
    min-height:52px !important;
    max-width:52px !important;
    max-height:52px !important;
    flex-basis:52px !important;
  }
}


/* V3.90 — compact disconnected login button */
#profileBox:not(.connected) .profile-action{
  width:132px !important;
  min-width:132px !important;
  max-width:132px !important;
  height:46px !important;
  padding:0 10px !important;
  flex:0 0 132px !important;
  box-sizing:border-box !important;
  border-radius:7px !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-align:center !important;
}

@media (max-width:520px){
  #profileBox:not(.connected) .profile-action{
    width:128px !important;
    min-width:128px !important;
    max-width:128px !important;
    flex-basis:128px !important;
    font-size:11px !important;
  }
}


/* =========================================================
   V3.91 — bouton login contenu + TOP COMPLET mobile propre
   ========================================================= */

@media (max-width: 520px){

  /* Laisse suffisamment de place au bouton dans la carte profil */
  #profileBox:not(.connected){
    grid-template-columns: 58px minmax(0,1fr) 118px !important;
    gap: 8px !important;
    padding: 8px 10px !important;
    overflow: hidden !important;
  }

  #profileBox:not(.connected) .profile-action{
    width: 112px !important;
    min-width: 112px !important;
    max-width: 112px !important;
    flex: 0 0 112px !important;
    height: 44px !important;
    padding: 0 8px !important;
    margin: 0 !important;
    justify-self: end !important;
    align-self: center !important;
    box-sizing: border-box !important;
    border-radius: 7px !important;
    font-size: 10px !important;
    white-space: nowrap !important;
  }

  /* TOP COMPLET : une vraie ligne structurée et lisible */
  #fullTop{
    width: 100% !important;
  }

  #fullTop .rank-line{
    display: grid !important;
    grid-template-columns: 42px minmax(0,1fr) auto !important;
    grid-template-areas:
      "rank title votes"
      "rank console button" !important;
    align-items: center !important;
    column-gap: 10px !important;
    row-gap: 8px !important;

    width: 100% !important;
    min-width: 0 !important;
    padding: 14px 12px !important;
    box-sizing: border-box !important;
  }

  #fullTop .rank-line > b{
    grid-area: rank !important;
    align-self: center !important;
    font-size: 18px !important;
    white-space: nowrap !important;
  }

  #fullTop .rank-line > span{
    grid-area: title !important;
    display: block !important;
    min-width: 0 !important;
    width: 100% !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    line-height: 1.2 !important;
    font-size: 15px !important;
  }

  /* Le badge console reste horizontal */
  #fullTop .rank-line .badge{
    grid-area: console !important;
    display: inline-flex !important;
    width: max-content !important;
    max-width: 100% !important;
    white-space: nowrap !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    padding: 3px 7px !important;
    font-size: 10px !important;
    line-height: 1 !important;
  }

  #fullTop .rank-line > strong{
    grid-area: votes !important;
    white-space: nowrap !important;
    font-size: 14px !important;
    justify-self: end !important;
  }

  #fullTop .top-list-vote-btn{
    grid-area: button !important;
    width: 106px !important;
    min-width: 106px !important;
    height: 42px !important;
    justify-self: end !important;
    white-space: nowrap !important;
  }
}

/* Téléphones un peu plus larges : encore plus confortable */
@media (min-width: 521px) and (max-width: 800px){
  #profileBox:not(.connected){
    grid-template-columns: 58px minmax(0,1fr) 132px !important;
  }

  #profileBox:not(.connected) .profile-action{
    width: 124px !important;
    min-width: 124px !important;
    max-width: 124px !important;
    flex-basis: 124px !important;
    justify-self: end !important;
  }

  #fullTop .rank-line{
    grid-template-columns: 48px minmax(0,1fr) 120px !important;
  }

  #fullTop .rank-line > span{
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
  }

  #fullTop .rank-line .badge{
    white-space: nowrap !important;
  }
}


/* =========================================================
   V3.92 — sous-menu MES VIDÉOS sans scroll horizontal mobile
   ========================================================= */

@media (max-width: 800px){
  .video-kind-nav{
    display:grid !important;
    grid-template-columns:repeat(3, minmax(0,1fr)) !important;
    width:100% !important;
    max-width:100% !important;
    overflow:visible !important;
    gap:6px !important;
    padding:6px !important;
    border-radius:8px !important;
  }

  .video-kind{
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    padding:9px 4px !important;
    font-size:9px !important;
    line-height:1.1 !important;
    white-space:normal !important;
    text-align:center !important;
  }
}

@media (max-width: 420px){
  .video-kind{
    font-size:8px !important;
    padding:8px 3px !important;
  }
}


/* =========================================================
   V3.93 — vrai sous-menu vidéo mobile 3 + 2, sans slider
   ========================================================= */

@media (max-width: 800px){

  #videoKindNav.video-kind-nav,
  .video-kind-nav{
    display:grid !important;
    grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
    grid-auto-flow:row !important;

    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;

    overflow:visible !important;
    overflow-x:visible !important;
    overflow-y:visible !important;

    justify-content:stretch !important;
    align-items:stretch !important;

    gap:6px !important;
    padding:6px !important;
    margin:10px 0 12px !important;

    border-radius:8px !important;
    box-sizing:border-box !important;
  }

  #videoKindNav .video-kind,
  .video-kind-nav .video-kind{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;

    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    flex:none !important;

    padding:9px 4px !important;
    margin:0 !important;

    font-size:9px !important;
    line-height:1.1 !important;
    text-align:center !important;

    white-space:normal !important;
    word-break:normal !important;
    overflow-wrap:anywhere !important;

    box-sizing:border-box !important;
  }
}

@media (max-width: 420px){
  #videoKindNav .video-kind,
  .video-kind-nav .video-kind{
    font-size:8px !important;
    padding:8px 3px !important;
  }
}


/* =========================================================
   V3.94 — iPad / tablette portrait
   ========================================================= */

/* iPad portrait and similar tablets */
@media (min-width: 801px) and (max-width: 1100px){

  html, body{
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    overflow-x:hidden !important;
  }

  .page-shell{
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    margin:0 !important;
  }

  /* Header: logo on top, nav full width, then search/profile */
  .header{
    width:100% !important;
    height:auto !important;
    min-height:0 !important;

    display:grid !important;
    grid-template-columns:minmax(0, 1fr) minmax(310px, 0.9fr) !important;
    grid-template-areas:
      "brand brand"
      "nav nav"
      "search profile" !important;

    gap:10px 12px !important;
    padding:12px 16px !important;
    box-sizing:border-box !important;
  }

  .brand-area{
    grid-area:brand !important;
    width:100% !important;
    height:auto !important;
    justify-content:center !important;
  }

  .brand-logo{
    width:280px !important;
    max-width:34vw !important;
    height:auto !important;
    max-height:none !important;
    object-position:center !important;
  }

  .nav{
    grid-area:nav !important;
    width:100% !important;
    height:58px !important;
    display:grid !important;
    grid-template-columns:repeat(5, minmax(0,1fr)) !important;
    overflow:hidden !important;
  }

  .nav-item{
    min-width:0 !important;
    width:auto !important;
    padding:6px 8px !important;
    font-size:13px !important;
    line-height:1.1 !important;
    white-space:normal !important;
    text-align:center !important;
  }

  .global-search{
    grid-area:search !important;
    width:100% !important;
    height:48px !important;
    min-width:0 !important;
  }

  .profile{
    grid-area:profile !important;
    width:100% !important;
    min-width:0 !important;
    height:74px !important;
    overflow:hidden !important;
  }

  /* iPad portrait also uses the drawer */
  .mobile-sidebar-toggle{
    display:flex !important;
    width:calc(100% - 32px) !important;
    margin:12px 16px 0 !important;
  }

  .sidebar{
    display:none !important;
  }

  .mobile-drawer,
  .mobile-drawer-backdrop{
    display:block;
  }

  .mobile-drawer{
    width:min(48vw, 360px) !important;
    max-width:360px !important;
  }

  /* Main content uses all tablet width */
  .content-layout{
    width:100% !important;
    min-width:0 !important;
    display:block !important;
    padding:14px 16px 20px !important;
    box-sizing:border-box !important;
  }

  .main{
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
  }

  .home-intro,
  .top-panel,
  .catalog-panel,
  .videos-panel,
  .about-panel{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
  }

  /* Home intro: 2x2 steps fits iPad portrait much better */
  .home-steps{
    grid-template-columns:repeat(2, minmax(0,1fr)) !important;
    gap:10px !important;
  }

  /* Top 3 stays horizontal, but with narrower internal columns */
  .top-grid{
    grid-template-columns:repeat(3, minmax(0,1fr)) !important;
  }

  .top-card{
    min-width:0 !important;
    grid-template-columns:38px 76px minmax(0,1fr) !important;
    gap:8px !important;
    padding:10px 8px !important;
  }

  .mini-cover{
    width:76px !important;
    height:76px !important;
  }

  .top-card strong{
    font-size:14px !important;
    line-height:1.15 !important;
  }

  /* Catalogue: 4 columns in portrait tablet instead of desktop overflow */
  .cards-grid,
  .game-grid,
  .games-grid,
  .catalog-grid,
  .catalogue-grid{
    grid-template-columns:repeat(4, minmax(0,1fr)) !important;
    gap:10px !important;
  }

  .cover{
    height:205px !important;
  }

  .game-title{
    font-size:14px !important;
  }

  /* TOP COMPLET */
  #fullTop .rank-line{
    width:100% !important;
    min-width:0 !important;
    grid-template-columns:50px minmax(0,1fr) 110px 110px !important;
    gap:10px !important;
  }

  #fullTop .rank-line > span{
    min-width:0 !important;
    white-space:normal !important;
    word-break:normal !important;
    overflow-wrap:normal !important;
  }

  /* MES VIDEOS */
  .video-categories{
    grid-template-columns:repeat(5, minmax(0,1fr)) !important;
    gap:8px !important;
  }

  #videoKindNav.video-kind-nav,
  .video-kind-nav{
    display:grid !important;
    grid-template-columns:repeat(5, minmax(0,1fr)) !important;
    gap:6px !important;
    overflow:visible !important;
    width:100% !important;
  }

  .video-kind{
    min-width:0 !important;
    width:100% !important;
    font-size:10px !important;
    padding:9px 4px !important;
  }

  .videos-filters{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) 150px !important;
    gap:10px !important;
    align-items:start !important;
  }

  .video-search-stack{
    min-width:0 !important;
  }

  .video-grid{
    grid-template-columns:repeat(3, minmax(0,1fr)) !important;
    gap:12px !important;
  }

  /* About page */
  .about-profile{
    grid-template-columns:280px minmax(0,1fr) !important;
    gap:28px !important;
    align-items:center !important;
  }

  .about-avatar{
    width:260px !important;
    height:260px !important;
    object-fit:cover !important;
  }
}

/* iPad landscape / larger tablet: keep desktop spirit but avoid edge clipping */
@media (min-width: 1101px) and (max-width: 1400px){

  .page-shell{
    width:100% !important;
    max-width:100% !important;
    margin:0 !important;
  }

  .header{
    padding-left:18px !important;
    padding-right:18px !important;
    gap:10px !important;
  }

  .brand-logo{
    max-width:245px !important;
  }

  .content-layout{
    padding-left:14px !important;
    padding-right:14px !important;
    gap:16px !important;
  }

  .sidebar{
    width:220px !important;
    flex:0 0 220px !important;
  }

  .main{
    min-width:0 !important;
  }

  .cards-grid,
  .game-grid,
  .games-grid,
  .catalog-grid,
  .catalogue-grid{
    grid-template-columns:repeat(5, minmax(0,1fr)) !important;
  }

  .video-grid{
    grid-template-columns:repeat(3, minmax(0,1fr)) !important;
  }
}


/* =========================================================
   V3.95 — iPad portrait drawer + profile containment
   ========================================================= */

/* iPad portrait / medium tablets */
@media (min-width:801px) and (max-width:1100px){

  /* Keep profile card fully inside viewport */
  .profile{
    grid-template-columns:58px minmax(0,1fr) 136px !important;
    gap:10px !important;
    padding:8px 10px !important;
    box-sizing:border-box !important;
    overflow:hidden !important;
  }

  #profileBox:not(.connected) .profile-action{
    width:128px !important;
    min-width:128px !important;
    max-width:128px !important;
    flex:0 0 128px !important;
    height:46px !important;
    padding:0 10px !important;
    justify-self:end !important;
    box-sizing:border-box !important;
    border-radius:8px !important;
    white-space:nowrap !important;
    font-size:11px !important;
  }

  /* Proper BulbiSeed mobile menu button */
  .mobile-sidebar-toggle{
    appearance:none !important;
    -webkit-appearance:none !important;

    display:flex !important;
    align-items:center !important;
    justify-content:center !important;

    width:calc(100% - 32px) !important;
    min-height:48px !important;
    margin:12px 16px 0 !important;
    padding:0 16px !important;

    background:
      linear-gradient(180deg, rgba(255,45,178,.10), rgba(8,8,25,.97)) !important;
    color:#ff80d5 !important;

    border:1px solid #ff2db2 !important;
    border-radius:8px !important;

    font-size:14px !important;
    font-weight:1000 !important;
    letter-spacing:.5px !important;

    box-shadow:none !important;
    cursor:pointer !important;
    pointer-events:auto !important;
    touch-action:manipulation !important;
    position:relative !important;
    z-index:30 !important;
  }

  /* Fully enable the REAL drawer at iPad width */
  .mobile-drawer-backdrop{
    display:block !important;
    position:fixed !important;
    inset:0 !important;
    z-index:999998 !important;
    background:rgba(0,0,12,.72) !important;
    backdrop-filter:blur(3px) !important;
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
    transition:opacity .18s ease, visibility .18s ease !important;
  }

  .mobile-drawer-backdrop.open{
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
  }

  .mobile-drawer{
    display:block !important;
    position:fixed !important;
    top:0 !important;
    left:0 !important;
    bottom:0 !important;

    width:min(52vw,380px) !important;
    max-width:380px !important;
    height:100dvh !important;

    z-index:999999 !important;
    overflow-y:auto !important;

    padding:0 14px 26px !important;
    margin:0 !important;

    background:
      radial-gradient(circle at 20% 10%,rgba(255,45,178,.16),transparent 34%),
      #070719 !important;
    border-right:1px solid rgba(255,45,178,.7) !important;
    box-shadow:18px 0 45px rgba(0,0,0,.55) !important;

    transform:translateX(-105%) !important;
    transition:transform .20s ease !important;

    pointer-events:auto !important;
  }

  .mobile-drawer.open{
    transform:translateX(0) !important;
  }

  .mobile-drawer-head{
    position:sticky !important;
    top:0 !important;
    z-index:3 !important;
    min-height:66px !important;

    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;

    margin:0 -14px 14px !important;
    padding:0 18px !important;

    background:rgba(7,7,25,.98) !important;
    border-bottom:1px solid rgba(255,45,178,.4) !important;
  }

  .mobile-drawer-head strong{
    color:#ff79d1 !important;
    font-size:19px !important;
  }

  .mobile-drawer-head button{
    appearance:none !important;
    -webkit-appearance:none !important;
    width:40px !important;
    height:40px !important;
    border:1px solid rgba(255,45,178,.6) !important;
    border-radius:50% !important;
    background:#0b0b20 !important;
    color:#ff79d1 !important;
    font-size:26px !important;
  }

  .mobile-drawer-content,
  .mobile-drawer-content *{
    pointer-events:auto !important;
  }

  .mobile-drawer-content .side-panel,
  .mobile-drawer-content .platform-panel,
  .mobile-drawer-content .community-panel{
    display:block !important;
    width:100% !important;
    opacity:1 !important;
    filter:none !important;
    background:#080819 !important;
  }

  body.mobile-menu-open{
    overflow:hidden !important;
  }
}

/* iPad landscape / tablets around 1180-1400px:
   profile button must remain inside the top bar. */
@media (min-width:1101px) and (max-width:1400px){

  .header{
    grid-template-columns:minmax(220px,auto) minmax(460px,1fr) minmax(210px,.65fr) minmax(280px,.85fr) !important;
    width:100% !important;
    max-width:100% !important;
    box-sizing:border-box !important;
    overflow:hidden !important;
  }

  .profile{
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    grid-template-columns:52px minmax(0,1fr) 116px !important;
    gap:8px !important;
    padding:7px 9px !important;
    box-sizing:border-box !important;
    overflow:hidden !important;
  }

  #profileBox:not(.connected) .profile-action{
    width:108px !important;
    min-width:108px !important;
    max-width:108px !important;
    flex:0 0 108px !important;
    height:44px !important;
    padding:0 8px !important;
    justify-self:end !important;
    font-size:10px !important;
    white-space:nowrap !important;
  }

  .profile-name{
    font-size:14px !important;
  }

  .profile-sub{
    font-size:10px !important;
  }
}


/* =========================================================
   V3.96 — profile alignment + search icon + pull-to-refresh
   ========================================================= */

/* Keep native browser pull-to-refresh available when supported. */
html, body{
  overscroll-behavior-y:auto !important;
  -webkit-overflow-scrolling:touch;
}

/* Search icon is always pinned to the right edge of the field. */
.global-search{
  position:relative !important;
  display:block !important;
  min-width:0 !important;
  overflow:hidden !important;
}

.global-search input{
  width:100% !important;
  height:100% !important;
  padding-right:48px !important;
  box-sizing:border-box !important;
}

.global-search > span{
  position:absolute !important;
  top:50% !important;
  right:16px !important;
  left:auto !important;
  transform:translateY(-50%) !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:24px !important;
  height:24px !important;
  margin:0 !important;
  pointer-events:none !important;
  z-index:2 !important;
}

/* Connected profile: stable inner alignment at every responsive size. */
#profileBox.connected{
  display:grid !important;
  align-items:center !important;
  box-sizing:border-box !important;
  overflow:hidden !important;
}

#profileBox.connected .avatar-wrap{
  justify-self:center !important;
  align-self:center !important;
}

#profileBox.connected .profile-copy{
  min-width:0 !important;
  align-self:center !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  gap:2px !important;
}

#profileBox.connected .profile-name{
  display:flex !important;
  align-items:center !important;
  gap:6px !important;
  min-width:0 !important;
  line-height:1.05 !important;
  white-space:nowrap !important;
}

#profileBox.connected .twitch-status{
  line-height:1.05 !important;
  margin:1px 0 0 !important;
  white-space:nowrap !important;
}

#profileBox.connected .vote-line{
  display:flex !important;
  align-items:baseline !important;
  gap:7px !important;
  margin-top:2px !important;
  white-space:nowrap !important;
}

#profileBox.connected .profile-action{
  justify-self:center !important;
  align-self:center !important;
}

/* Phone */
@media (max-width:800px){
  #profileBox.connected{
    grid-template-columns:58px minmax(0,1fr) 58px !important;
    gap:10px !important;
    padding:8px 12px !important;
    min-height:78px !important;
  }

  #profileBox.connected .profile-name{
    font-size:16px !important;
  }

  #profileBox.connected .twitch-status{
    font-size:11px !important;
  }

  #profileBox.connected .vote-line strong{
    font-size:22px !important;
  }

  #profileBox.connected .vote-line em{
    font-size:10px !important;
  }
}

/* iPad portrait / tablet */
@media (min-width:801px) and (max-width:1100px){
  #profileBox.connected{
    grid-template-columns:58px minmax(0,1fr) 58px !important;
    gap:12px !important;
    padding:8px 14px !important;
    min-height:78px !important;
  }

  #profileBox.connected .profile-name{
    font-size:16px !important;
  }

  #profileBox.connected .twitch-status{
    font-size:10px !important;
  }

  #profileBox.connected .vote-line strong{
    font-size:22px !important;
  }

  #profileBox.connected .vote-line em{
    font-size:10px !important;
  }
}

/* iPad landscape / compact desktop */
@media (min-width:1101px) and (max-width:1400px){
  #profileBox.connected{
    grid-template-columns:52px minmax(0,1fr) 52px !important;
    gap:9px !important;
    padding:7px 10px !important;
    min-height:66px !important;
  }

  #profileBox.connected .avatar-wrap,
  #profileBox.connected .avatar-ring{
    width:48px !important;
    height:48px !important;
    min-width:48px !important;
    min-height:48px !important;
  }

  #profileBox.connected .profile-name{
    font-size:13px !important;
  }

  #profileBox.connected .twitch-status{
    font-size:9px !important;
  }

  #profileBox.connected .vote-line strong{
    font-size:18px !important;
  }

  #profileBox.connected .vote-line em{
    font-size:9px !important;
  }

  #profileBox.connected .profile-action{
    width:46px !important;
    height:46px !important;
    min-width:46px !important;
    min-height:46px !important;
    max-width:46px !important;
    max-height:46px !important;
    flex-basis:46px !important;
  }
}


/* =========================================================
   V3.97 — 4 onglets principaux + iPad native overscroll
   ========================================================= */

/* There are now four main navigation tabs. */
.nav{
  grid-template-columns:repeat(4, minmax(0,1fr)) !important;
}

/* Explicitly do not trap vertical overscroll on touch devices.
   Safari/iPadOS ultimately decides whether its native pull-to-refresh is available. */
@supports (-webkit-touch-callout: none){
  html, body{
    overscroll-behavior-y:auto !important;
    touch-action:pan-x pan-y !important;
  }

  body:not(.mobile-menu-open){
    position:static !important;
    overflow-y:auto !important;
    height:auto !important;
  }
}


/* =========================================================
   V4.00 — desktop login card containment
   ========================================================= */
@media (min-width:1401px){
  #profileBox{
    box-sizing:border-box !important;
    overflow:hidden !important;
    min-width:0 !important;
  }

  #profileBox:not(.connected){
    display:grid !important;
    grid-template-columns:58px minmax(0,1fr) minmax(118px,134px) !important;
    align-items:center !important;
    gap:12px !important;
    padding:12px 14px !important;
  }

  #profileBox:not(.connected) .avatar-wrap{
    justify-self:center !important;
  }

  #profileBox:not(.connected) .profile-copy{
    min-width:0 !important;
  }

  #profileBox:not(.connected) .profile-action{
    position:static !important;
    justify-self:end !important;
    width:100% !important;
    min-width:0 !important;
    max-width:134px !important;
    box-sizing:border-box !important;
    margin:0 !important;
    padding-left:10px !important;
    padding-right:10px !important;
    white-space:nowrap !important;
  }
}


/* =========================================================
   V4.01 — guest profile: no fake avatar
   ========================================================= */
#profileBox:not(.connected) .avatar-wrap{
  display:none !important;
}

#profileBox:not(.connected){
  box-sizing:border-box !important;
  overflow:hidden !important;
}

/* Desktop */
@media (min-width:1401px){
  #profileBox:not(.connected){
    display:grid !important;
    grid-template-columns:minmax(0,1fr) minmax(118px,134px) !important;
    align-items:center !important;
    gap:16px !important;
    padding:12px 14px 12px 18px !important;
  }

  #profileBox:not(.connected) .profile-copy{
    min-width:0 !important;
    justify-self:start !important;
    align-self:center !important;
    text-align:left !important;
  }

  #profileBox:not(.connected) .profile-name{
    white-space:nowrap !important;
    line-height:1.1 !important;
  }

  #profileBox:not(.connected) .twitch-status{
    white-space:nowrap !important;
    line-height:1.1 !important;
    margin-top:4px !important;
  }
}

/* Tablet / phone: same principle, with room for the button. */
@media (max-width:1400px){
  #profileBox:not(.connected){
    display:grid !important;
    grid-template-columns:minmax(0,1fr) minmax(110px,132px) !important;
    align-items:center !important;
    gap:12px !important;
    padding-left:16px !important;
    padding-right:12px !important;
  }

  #profileBox:not(.connected) .profile-copy{
    min-width:0 !important;
    justify-self:start !important;
    text-align:left !important;
  }

  #profileBox:not(.connected) .profile-action{
    position:static !important;
    justify-self:end !important;
    width:100% !important;
    min-width:0 !important;
    max-width:132px !important;
    box-sizing:border-box !important;
    margin:0 !important;
    white-space:nowrap !important;
  }
}


/* V4.02 — status filters are controlled by JS and must fully disappear */
#videoStatusFilters.hidden{
  display:none !important;
}


/* =========================================================
   V4.06 — dates précises + durée YouTube
   ========================================================= */
.video-date{
  color:#bfc3d9;
  white-space:nowrap;
}

.video-duration{
  display:block;
  margin:7px 0 6px;
  color:#68ddf5;
  font-size:11px;
  line-height:1.25;
  font-weight:800;
}

.video-duration[title]{
  cursor:help;
}

@media (max-width:800px){
  .video-duration{
    font-size:11px;
  }
}

/* V4.07 — léger rééquilibrage de la ligne Temps total / Durée */
.video-duration{
  margin-top: 3px;
  margin-bottom: 12px;
}

/* V4.15 — centrage du pied de page */
footer,
.site-footer{
  text-align: center;
}


/* V4.22 — macaron de sous-catégorie sur les vidéos Jeux vidéo */
.video-kind-badge{
  position:absolute;
  right:9px;
  bottom:9px;
  max-width:58%;
  padding:4px 7px;
  border-radius:4px;
  background:rgba(3,4,13,.92);
  font-size:9px;
  line-height:1;
  font-weight:1000;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  box-shadow:0 0 10px rgba(0,0,0,.22);
}
.video-kind-badge.kind-letsplay{
  color:#75e9ff;
  border:1px solid rgba(80,210,255,.72);
}
.video-kind-badge.kind-decouverte{
  color:#ff7ad4;
  border:1px solid rgba(255,65,185,.72);
}
.video-kind-badge.kind-tests{
  color:#ffd86a;
  border:1px solid rgba(255,203,73,.75);
}
.video-kind-badge.kind-sessions{
  color:#9cf58e;
  border:1px solid rgba(116,226,104,.74);
}
.video-kind-badge.kind-defis{
  color:#c69bff;
  border:1px solid rgba(161,108,255,.78);
}


/* V4.24 — recherche générale : jeux à voter + vidéos */
.global-video-results{
  margin-top:18px;
}
.global-video-results.hidden{
  display:none !important;
}
.global-video-results .video-grid{
  padding-top:4px;
}
.global-video-empty{
  grid-column:1 / -1;
  padding:24px 8px;
  text-align:center;
}


/* V4.26 — nouvelles sous-catégories vidéo */
.video-kind-nav{
  flex-wrap:wrap;
  overflow:visible;
}
.video-kind-badge.kind-avisreact{
  color:#ff9ee2;
  border:1px solid rgba(255,126,214,.75);
}
.video-kind-badge.kind-bestof{
  color:#ffcf57;
  border:1px solid rgba(255,198,64,.8);
}
.video-kind-badge.kind-collection{
  color:#9be7ff;
  border:1px solid rgba(98,211,255,.8);
}


/* V4.30 — catégories principales Mes vidéos : 3 par ligne */
.video-categories{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
@media(max-width:700px){
  .video-categories{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:430px){
  .video-categories{
    grid-template-columns:1fr;
  }
}


/* V4.33 — Plateaux Télé / Twitch */
#plateauSeasonFilters{
  margin-top:8px;
  flex-wrap:wrap;
}
#plateauSeasonFilters .plateau-season{
  border-color:#6b43a8;
}
#plateauSeasonFilters .plateau-season.active{
  color:#d8b6ff;
  border-color:#9147ff;
  background:rgba(145,71,255,.16);
  box-shadow:0 0 12px rgba(145,71,255,.14);
}
.video-year-wrap.hidden{
  display:none !important;
}


/* V4.58 footer centering */
.footer{display:flex;justify-content:center;text-align:center;}
.footer > span{width:100%;text-align:center;}
.footer > span:empty{display:none;}


/* =========================================================
   V4.60 — FIX navigation catégories / sous-catégories MES VIDÉOS
   Mobile + tablette
   ========================================================= */

/* Priorité absolue à l'état piloté par JavaScript :
   un sous-menu marqué .hidden ne doit jamais être forcé visible
   par les media queries responsive. */
#videoKindNav.hidden,
#cinemaKindNav.hidden,
#irlKindNav.hidden,
#tcgKindNav.hidden,
#fictionKindNav.hidden,
.video-kind-nav.hidden {
  display: none !important;
}

/* Les sous-menus réellement actifs restent interactifs. */
.video-kind-nav:not(.hidden) {
  pointer-events: auto !important;
}

.video-kind-nav:not(.hidden) .video-kind {
  pointer-events: auto !important;
  touch-action: manipulation;
}

/* Sur mobile : grille propre uniquement pour LE sous-menu actif. */
@media (max-width: 800px) {
  #videoKindNav:not(.hidden),
  #cinemaKindNav:not(.hidden),
  #irlKindNav:not(.hidden),
  #tcgKindNav:not(.hidden),
  #fictionKindNav:not(.hidden) {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    grid-auto-flow: row !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: visible !important;
    gap: 6px !important;
    padding: 6px !important;
    margin: 10px 0 12px !important;
    box-sizing: border-box !important;
  }
}

/* Très petit écran : 2 colonnes pour éviter les libellés écrasés. */
@media (max-width: 430px) {
  #videoKindNav:not(.hidden),
  #cinemaKindNav:not(.hidden),
  #irlKindNav:not(.hidden),
  #tcgKindNav:not(.hidden),
  #fictionKindNav:not(.hidden) {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

/* Tablette portrait : seul le sous-menu actif est affiché. */
@media (min-width: 801px) and (max-width: 1100px) {
  #videoKindNav:not(.hidden),
  #cinemaKindNav:not(.hidden),
  #irlKindNav:not(.hidden),
  #tcgKindNav:not(.hidden),
  #fictionKindNav:not(.hidden) {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  }
}


/* =========================================================
   V4.61 — filtres Saison uniquement dans IRL > Plateaux Télé
   ========================================================= */

/* Priorité absolue au masquage piloté par app.js.
   Évite que les media queries mobiles en display:flex !important
   rendent ces boutons visibles partout. */
#plateauSeasonFilters.hidden{
  display:none !important;
}

/* Quand app.js retire .hidden, les boutons s'affichent normalement. */
#plateauSeasonFilters:not(.hidden){
  display:flex !important;
}


/* =========================================================
   V4.63 — Page LA PIAULE
   ========================================================= */

.lapiaule-page{
  border:1px solid rgba(255,45,178,.72);
  border-radius:10px;
  background:rgba(5,6,24,.92);
  overflow:hidden;
  box-shadow:0 0 22px rgba(255,45,178,.08);
}

.lapiaule-hero{
  width:100%;
  background:#03040c;
  border-bottom:1px solid rgba(0,210,255,.28);
}

.lapiaule-cover{
  display:block;
  width:100%;
  height:auto;
  max-height:520px;
  object-fit:cover;
  object-position:center;
}

.lapiaule-intro{
  padding:28px 32px 24px;
  text-align:center;
}

.lapiaule-intro h1{
  margin:0 0 16px;
  color:#fff;
  font-size:34px;
  font-weight:1000;
  letter-spacing:.8px;
}

.lapiaule-intro p{
  max-width:980px;
  margin:0 auto;
  color:#c8c4d2;
  font-size:16px;
  line-height:1.75;
}

.lapiaule-episodes{
  padding:0 32px 32px;
}

.lapiaule-section-title{
  display:flex;
  align-items:center;
  gap:16px;
  margin:10px 0 20px;
}

.lapiaule-section-title h2{
  margin:0;
  color:#ff65cb;
  font-size:25px;
  white-space:nowrap;
}

.lapiaule-section-title span{
  height:2px;
  flex:1;
  background:linear-gradient(90deg,#ff31bc,#1ed9ff,transparent);
}

.lapiaule-spotify-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}

.lapiaule-spotify-card{
  min-width:0;
  padding:10px;
  border:1px solid rgba(44,78,132,.65);
  border-radius:10px;
  background:#08091d;
}

.lapiaule-spotify-card iframe{
  display:block;
  width:100%;
  border:0;
  border-radius:10px;
}

.lapiaule-empty{
  grid-column:1/-1;
  padding:28px 18px;
  border:1px dashed rgba(255,45,178,.42);
  border-radius:10px;
  text-align:center;
  color:#aaa7b7;
}

.lapiaule-empty strong{
  display:block;
  margin-bottom:6px;
  color:#fff;
  font-size:17px;
}

.lapiaule-empty p{
  margin:0;
}

/* La nouvelle navigation contient désormais bien 5 entrées sur mobile. */
@media (max-width:800px){
  .nav{
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
  }

  .lapiaule-page{
    border-radius:8px;
  }

  .lapiaule-cover{
    max-height:none;
    object-fit:contain;
  }

  .lapiaule-intro{
    padding:20px 16px 18px;
  }

  .lapiaule-intro h1{
    font-size:27px;
    margin-bottom:12px;
  }

  .lapiaule-intro p{
    font-size:14px;
    line-height:1.65;
    text-align:left;
  }

  .lapiaule-episodes{
    padding:0 16px 22px;
  }

  .lapiaule-section-title h2{
    font-size:20px;
  }

  .lapiaule-spotify-grid{
    grid-template-columns:1fr;
    gap:12px;
  }
}

@media (max-width:430px){
  .nav-item{
    font-size:8px!important;
  }

  .lapiaule-intro h1{
    font-size:24px;
  }
}


/* =========================================================
   V4.64 — NAV en une ligne + recherche centrée + Spotify
   ========================================================= */

/* Menu principal : toutes les entrées sur une seule ligne */
.nav{
  display:grid !important;
  grid-template-columns:repeat(6,minmax(0,1fr)) !important;
  width:100% !important;
  min-width:0 !important;
}

.nav-item{
  min-width:0 !important;
  white-space:nowrap !important;
  padding-left:10px !important;
  padding-right:10px !important;
}

/* Recherche générale sous le menu, centrée */
.topbar{
  align-items:start !important;
}

.global-search,
.search-wrap,
.search-box{
  max-width:720px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

/* Cas où la recherche est dans le header principal */
.header-search,
#globalSearch{
  width:100% !important;
  max-width:720px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

/* LA PIAULE */
.lapiaule-intro{
  padding-top:26px !important;
}

.lapiaule-spotify-grid{
  grid-template-columns:1fr !important;
}

.lapiaule-spotify-show{
  width:100%;
  padding:12px;
  border:1px solid rgba(44,78,132,.72);
  border-radius:12px;
  background:linear-gradient(180deg,rgba(15,18,40,.96),rgba(5,6,24,.96));
  box-shadow:0 0 20px rgba(0,210,255,.08);
  box-sizing:border-box;
}

.lapiaule-spotify-show iframe{
  display:block;
  width:100%;
  min-height:600px;
  border:0;
  border-radius:10px;
  background:#121212;
}

/* Desktop : nav + recherche sous la nav */
@media (min-width:1001px){
  .top{
    display:grid !important;
    grid-template-columns:auto minmax(0,1fr) auto !important;
    grid-template-areas:
      "logo nav profile"
      "logo search profile" !important;
    column-gap:14px !important;
    row-gap:10px !important;
    align-items:center !important;
  }

  .brand,
  .logo-wrap{
    grid-area:logo !important;
  }

  .nav{
    grid-area:nav !important;
  }

  .profile-box,
  #profileBox{
    grid-area:profile !important;
  }

  .global-search,
  .search-wrap,
  .header-search{
    grid-area:search !important;
    width:100% !important;
    max-width:720px !important;
    justify-self:center !important;
  }
}

/* Mobile / tablette : six entrées tiennent sur une seule ligne */
@media (max-width:1000px){
  .nav{
    grid-template-columns:repeat(6,minmax(0,1fr)) !important;
    overflow:visible !important;
  }

  .nav-item{
    font-size:clamp(7px,2.1vw,11px) !important;
    padding:10px 3px !important;
    letter-spacing:-.1px !important;
  }

  .lapiaule-spotify-show{
    padding:8px;
  }

  .lapiaule-spotify-show iframe{
    min-height:560px;
    height:560px;
  }
}

@media (max-width:430px){
  .nav-item{
    font-size:7px !important;
  }

  .lapiaule-spotify-show iframe{
    min-height:520px;
    height:520px;
  }
}


/* =========================================================
   V4.65 — CORRECTION HEADER RÉEL
   Logo | navigation
        | recherche + profil
   ========================================================= */

@media (min-width:1001px){

  .header{
    width:100% !important;
    max-width:100% !important;
    height:auto !important;
    min-height:150px !important;

    display:grid !important;
    grid-template-columns:300px minmax(0,1fr) 330px !important;
    grid-template-areas:
      "brand nav nav"
      "brand search profile" !important;

    gap:10px 16px !important;
    align-items:center !important;

    padding:10px 18px 14px !important;
    box-sizing:border-box !important;
    overflow:visible !important;
  }

  .brand-area{
    grid-area:brand !important;
    width:100% !important;
    height:100% !important;
    min-width:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
  }

  .brand-logo{
    width:280px !important;
    max-width:100% !important;
    height:auto !important;
    max-height:135px !important;
    object-fit:contain !important;
    object-position:left center !important;
  }

  /* Les 5 menus restent TOUS sur une seule ligne */
  .nav{
    grid-area:nav !important;
    width:100% !important;
    max-width:100% !important;
    height:58px !important;

    display:grid !important;
    grid-template-columns:repeat(5,minmax(0,1fr)) !important;

    overflow:hidden !important;
    min-width:0 !important;
    justify-self:stretch !important;
  }

  .nav-item{
    min-width:0 !important;
    width:auto !important;
    padding:0 8px !important;
    white-space:nowrap !important;
    font-size:13px !important;
  }

  /* Recherche sous le menu et centrée */
  .global-search{
    grid-area:search !important;

    width:min(100%,720px) !important;
    max-width:720px !important;
    height:46px !important;

    justify-self:center !important;
    align-self:center !important;

    margin:0 !important;
    min-width:0 !important;
  }

  .global-search input{
    width:100% !important;
    min-width:0 !important;
  }

  /* Profil reste entièrement visible à droite */
  .profile,
  #profileBox{
    grid-area:profile !important;

    width:100% !important;
    max-width:330px !important;
    min-width:0 !important;
    height:74px !important;

    justify-self:end !important;
    box-sizing:border-box !important;
    overflow:hidden !important;
  }
}

/* Tablette / mobile : il n'y a que 5 entrées, pas 6 */
@media (max-width:1000px){
  .nav{
    grid-template-columns:repeat(5,minmax(0,1fr)) !important;
  }
}

/* Desktop plus étroit : réduit légèrement le logo/profil sans casser le menu */
@media (min-width:1001px) and (max-width:1250px){
  .header{
    grid-template-columns:240px minmax(0,1fr) 285px !important;
    gap:8px 12px !important;
  }

  .brand-logo{
    width:225px !important;
  }

  .nav-item{
    font-size:11px !important;
    padding:0 5px !important;
  }

  .profile,
  #profileBox{
    max-width:285px !important;
  }
}


/* =========================================================
   V4.66 — HEADER RECONSTRUIT
   Structure indépendante des anciens grids
   ========================================================= */

@media (min-width:1001px){

  .header.header-v466{
    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;

    width:100% !important;
    max-width:100% !important;
    height:auto !important;
    min-height:155px !important;

    padding:10px 18px 14px !important;
    gap:24px !important;

    overflow:visible !important;
    box-sizing:border-box !important;
  }

  .header-v466 > .brand-area{
    flex:0 0 300px !important;
    width:300px !important;
    min-width:300px !important;
    height:135px !important;

    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
  }

  .header-v466 .brand-logo{
    display:block !important;
    width:285px !important;
    max-width:285px !important;
    height:auto !important;
    max-height:130px !important;
    object-fit:contain !important;
    object-position:left center !important;
  }

  .header-v466 .header-controls{
    flex:1 1 auto !important;
    min-width:0 !important;

    display:flex !important;
    flex-direction:column !important;
    gap:10px !important;

    visibility:visible !important;
    opacity:1 !important;
    overflow:visible !important;
  }

  .header-v466 .nav{
    position:static !important;
    inset:auto !important;
    transform:none !important;

    display:grid !important;
    grid-template-columns:repeat(5,minmax(0,1fr)) !important;

    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    height:58px !important;

    margin:0 !important;
    visibility:visible !important;
    opacity:1 !important;
    overflow:hidden !important;
  }

  .header-v466 .nav-item{
    display:block !important;
    min-width:0 !important;
    width:auto !important;
    padding:0 10px !important;

    font-size:13px !important;
    white-space:nowrap !important;
    text-align:center !important;

    visibility:visible !important;
    opacity:1 !important;
  }

  .header-v466 .header-lower{
    display:grid !important;
    grid-template-columns:minmax(300px,720px) 330px !important;
    justify-content:end !important;
    align-items:center !important;
    gap:18px !important;

    width:100% !important;
    min-width:0 !important;
  }

  .header-v466 .global-search{
    position:relative !important;
    inset:auto !important;
    transform:none !important;

    display:flex !important;
    width:100% !important;
    max-width:720px !important;
    min-width:0 !important;
    height:46px !important;

    margin:0 auto !important;
    justify-self:center !important;

    visibility:visible !important;
    opacity:1 !important;
  }

  .header-v466 .global-search input{
    width:100% !important;
    min-width:0 !important;
    padding-right:46px !important;
  }

  .header-v466 .profile,
  .header-v466 #profileBox{
    position:static !important;
    inset:auto !important;
    transform:none !important;

    display:grid !important;
    width:330px !important;
    max-width:330px !important;
    min-width:0 !important;
    height:74px !important;

    margin:0 !important;
    justify-self:end !important;

    visibility:visible !important;
    opacity:1 !important;
    overflow:hidden !important;
  }
}

/* Desktop intermédiaire */
@media (min-width:1001px) and (max-width:1250px){
  .header.header-v466{
    gap:14px !important;
  }

  .header-v466 > .brand-area{
    flex-basis:230px !important;
    width:230px !important;
    min-width:230px !important;
  }

  .header-v466 .brand-logo{
    width:220px !important;
    max-width:220px !important;
  }

  .header-v466 .header-lower{
    grid-template-columns:minmax(250px,1fr) 285px !important;
    gap:12px !important;
  }

  .header-v466 .profile,
  .header-v466 #profileBox{
    width:285px !important;
    max-width:285px !important;
  }

  .header-v466 .nav-item{
    font-size:11px !important;
    padding:0 5px !important;
  }
}

/* Mobile : on conserve le responsive vertical qui fonctionnait déjà */
@media (max-width:1000px){
  .header.header-v466{
    display:grid !important;
    grid-template-columns:1fr !important;
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    gap:10px !important;
    padding:10px !important;
  }

  .header-v466 > .brand-area{
    width:100% !important;
    height:auto !important;
    justify-content:center !important;
  }

  .header-v466 .header-controls{
    display:contents !important;
  }

  .header-v466 .nav{
    display:grid !important;
    grid-template-columns:repeat(5,minmax(0,1fr)) !important;
    width:100% !important;
    height:54px !important;
    visibility:visible !important;
    opacity:1 !important;
  }

  .header-v466 .header-lower{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:10px !important;
    width:100% !important;
  }

  .header-v466 .global-search,
  .header-v466 .profile,
  .header-v466 #profileBox{
    width:100% !important;
    max-width:100% !important;
    visibility:visible !important;
    opacity:1 !important;
  }
}


/* =========================================================
   V4.67 — HEADER FINAL + LISTE COMPLÈTE LA PIAULE
   ========================================================= */

@media (min-width:1001px){
  .header.header-v467{
    display:block !important;
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    padding:10px 18px 14px !important;
    box-sizing:border-box !important;
    overflow:visible !important;
  }

  .header-v467 .header-main-row{
    display:grid !important;
    grid-template-columns:290px minmax(0,1fr) 330px !important;
    gap:18px !important;
    align-items:center !important;
    width:100% !important;
    min-width:0 !important;
  }

  .header-v467 .brand-area{
    width:290px !important;
    min-width:290px !important;
    height:125px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
  }

  .header-v467 .brand-logo{
    width:270px !important;
    max-width:270px !important;
    height:auto !important;
    max-height:120px !important;
    object-fit:contain !important;
  }

  .header-v467 .nav{
    position:static !important;
    transform:none !important;
    display:grid !important;
    grid-template-columns:repeat(5,minmax(0,1fr)) !important;
    width:100% !important;
    max-width:none !important;
    height:58px !important;
    min-width:0 !important;
    margin:0 !important;
    visibility:visible !important;
    opacity:1 !important;
    overflow:hidden !important;
  }

  .header-v467 .nav-item{
    width:auto !important;
    min-width:0 !important;
    padding:0 7px !important;
    font-size:12px !important;
    white-space:nowrap !important;
    text-align:center !important;
  }

  .header-v467 .profile,
  .header-v467 #profileBox{
    position:static !important;
    transform:none !important;
    display:grid !important;
    width:330px !important;
    max-width:330px !important;
    height:74px !important;
    margin:0 !important;
    visibility:visible !important;
    opacity:1 !important;
    overflow:hidden !important;
  }

  .header-v467 .header-search-row{
    display:flex !important;
    justify-content:center !important;
    align-items:center !important;
    width:100% !important;
    margin-top:10px !important;
  }

  .header-v467 .global-search{
    position:relative !important;
    transform:none !important;
    display:flex !important;
    width:min(720px,70vw) !important;
    max-width:720px !important;
    height:46px !important;
    margin:0 auto !important;
    visibility:visible !important;
    opacity:1 !important;
  }

  .header-v467 .global-search input{
    width:100% !important;
    min-width:0 !important;
  }
}

@media (min-width:1001px) and (max-width:1250px){
  .header-v467 .header-main-row{
    grid-template-columns:220px minmax(0,1fr) 285px !important;
    gap:12px !important;
  }
  .header-v467 .brand-area{width:220px !important;min-width:220px !important;}
  .header-v467 .brand-logo{width:210px !important;max-width:210px !important;}
  .header-v467 .profile,
  .header-v467 #profileBox{width:285px !important;max-width:285px !important;}
  .header-v467 .nav-item{font-size:10px !important;padding:0 4px !important;}
}

@media (max-width:1000px){
  .header.header-v467{
    display:block !important;
    padding:10px !important;
  }

  .header-v467 .header-main-row{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:10px !important;
  }

  .header-v467 .brand-area{
    width:100% !important;
    height:auto !important;
    justify-content:center !important;
  }

  .header-v467 .nav{
    display:grid !important;
    grid-template-columns:repeat(5,minmax(0,1fr)) !important;
    width:100% !important;
    height:54px !important;
  }

  .header-v467 .profile,
  .header-v467 #profileBox{
    width:100% !important;
    max-width:100% !important;
  }

  .header-v467 .header-search-row{
    display:flex !important;
    width:100% !important;
    justify-content:center !important;
    margin-top:10px !important;
  }

  .header-v467 .global-search{
    width:100% !important;
    max-width:100% !important;
  }
}

/* La Piaule : player compact + vraie liste d'épisodes */
.lapiaule-player-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:10px;
  color:#fff;
}

.lapiaule-player-head strong{
  color:#ff69cf;
  font-size:14px;
  letter-spacing:.5px;
}

.lapiaule-player-head a{
  color:#70dfff;
  text-decoration:none;
  font-size:12px;
}

.lapiaule-spotify-show iframe{
  height:352px !important;
  min-height:352px !important;
}


/* =========================================================
   V4.68 — HEADER HTML FIXÉ
   ========================================================= */

.header.header-v468{
  position:relative !important;
  width:100% !important;
  max-width:100% !important;
  height:auto !important;
  min-height:0 !important;
  padding:10px 18px 14px !important;
  margin:0 !important;
  box-sizing:border-box !important;
  overflow:visible !important;
}

.header-v468 .header-main-row{
  width:100% !important;
  display:grid !important;
  grid-template-columns:290px minmax(0,1fr) 330px !important;
  gap:18px !important;
  align-items:center !important;
  box-sizing:border-box !important;
}

.header-v468 .brand-area{
  position:static !important;
  width:290px !important;
  min-width:290px !important;
  height:125px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
}

.header-v468 .brand-logo{
  position:static !important;
  display:block !important;
  width:270px !important;
  max-width:270px !important;
  height:auto !important;
  max-height:120px !important;
  object-fit:contain !important;
  transform:none !important;
}

.header-v468 .nav{
  position:static !important;
  inset:auto !important;
  transform:none !important;
  display:grid !important;
  grid-template-columns:repeat(5,minmax(0,1fr)) !important;
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
  height:58px !important;
  margin:0 !important;
  overflow:hidden !important;
  visibility:visible !important;
  opacity:1 !important;
}

.header-v468 .nav-item{
  min-width:0 !important;
  width:auto !important;
  padding:0 7px !important;
  white-space:nowrap !important;
  font-size:12px !important;
  text-align:center !important;
}

.header-v468 .profile,
.header-v468 #profileBox{
  position:static !important;
  inset:auto !important;
  transform:none !important;
  display:grid !important;
  width:330px !important;
  max-width:330px !important;
  min-width:0 !important;
  height:74px !important;
  margin:0 !important;
  overflow:hidden !important;
  visibility:visible !important;
  opacity:1 !important;
}

.header-v468 .header-search-row{
  display:flex !important;
  justify-content:center !important;
  align-items:center !important;
  width:100% !important;
  margin-top:10px !important;
}

.header-v468 .global-search{
  position:relative !important;
  inset:auto !important;
  transform:none !important;
  display:flex !important;
  width:min(720px,70vw) !important;
  max-width:720px !important;
  min-width:280px !important;
  height:46px !important;
  margin:0 auto !important;
  visibility:visible !important;
  opacity:1 !important;
}

.header-v468 .global-search input{
  width:100% !important;
  min-width:0 !important;
}

/* Mobile/tablette */
@media(max-width:1000px){
  .header.header-v468{
    padding:10px !important;
  }

  .header-v468 .header-main-row{
    grid-template-columns:1fr !important;
    gap:10px !important;
  }

  .header-v468 .brand-area{
    width:100% !important;
    min-width:0 !important;
    height:auto !important;
    justify-content:center !important;
  }

  .header-v468 .brand-logo{
    width:min(420px,80vw) !important;
    max-width:100% !important;
    max-height:none !important;
  }

  .header-v468 .nav{
    grid-template-columns:repeat(5,minmax(0,1fr)) !important;
    height:54px !important;
  }

  .header-v468 .nav-item{
    font-size:clamp(7px,2.1vw,11px) !important;
    padding:0 3px !important;
  }

  .header-v468 .profile,
  .header-v468 #profileBox{
    width:100% !important;
    max-width:100% !important;
  }

  .header-v468 .global-search{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
  }
}

@media(min-width:1001px) and (max-width:1250px){
  .header-v468 .header-main-row{
    grid-template-columns:220px minmax(0,1fr) 285px !important;
    gap:12px !important;
  }
  .header-v468 .brand-area{
    width:220px !important;
    min-width:220px !important;
  }
  .header-v468 .brand-logo{
    width:210px !important;
    max-width:210px !important;
  }
  .header-v468 .profile,
  .header-v468 #profileBox{
    width:285px !important;
    max-width:285px !important;
  }
  .header-v468 .nav-item{
    font-size:10px !important;
    padding:0 4px !important;
  }
}


/* =========================================================
   V4.69 — HEADER ISOLÉ DES ANCIENNES RÈGLES
   ========================================================= */

.bulbi-header-v469,
.bulbi-header-v469 *{
  box-sizing:border-box;
}

.bulbi-header-v469{
  position:relative !important;
  display:block !important;
  width:100% !important;
  height:auto !important;
  min-height:0 !important;
  margin:0 !important;
  padding:10px 18px 14px !important;
  overflow:visible !important;
  transform:none !important;
  inset:auto !important;
  border-bottom:1px solid rgba(0,215,255,.24);
}

.bulbi-header-main-v469{
  position:relative !important;
  display:grid !important;
  grid-template-columns:290px minmax(0,1fr) 330px !important;
  align-items:center !important;
  gap:18px !important;
  width:100% !important;
  height:auto !important;
  min-height:125px !important;
  margin:0 !important;
  padding:0 !important;
  transform:none !important;
}

.bulbi-brand-v469{
  position:static !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  width:290px !important;
  height:125px !important;
  min-width:290px !important;
  margin:0 !important;
  padding:0 !important;
  transform:none !important;
}

.bulbi-logo-v469{
  position:static !important;
  display:block !important;
  width:270px !important;
  max-width:270px !important;
  height:auto !important;
  max-height:120px !important;
  margin:0 !important;
  object-fit:contain !important;
  object-position:left center !important;
  transform:none !important;
  filter:
    drop-shadow(0 0 5px rgba(255,80,205,.70))
    drop-shadow(0 0 13px rgba(255,28,183,.40))
    drop-shadow(0 0 18px rgba(255,210,28,.15));
}

.bulbi-nav-v469{
  position:static !important;
  display:grid !important;
  grid-template-columns:repeat(5,minmax(0,1fr)) !important;
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
  height:58px !important;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
  transform:none !important;
  visibility:visible !important;
  opacity:1 !important;
  border:1px solid rgba(255,43,184,.55);
  border-radius:6px;
  box-shadow:0 0 20px rgba(255,43,184,.14);
}

.bulbi-nav-v469 > .nav-item{
  position:static !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-width:0 !important;
  width:auto !important;
  height:100% !important;
  margin:0 !important;
  padding:0 7px !important;
  transform:none !important;
  visibility:visible !important;
  opacity:1 !important;
  white-space:nowrap !important;
  font-size:12px !important;
  text-align:center !important;
}

.bulbi-profile-v469{
  position:static !important;
  inset:auto !important;
  transform:none !important;
  display:grid !important;
  width:330px !important;
  max-width:330px !important;
  min-width:0 !important;
  height:74px !important;
  margin:0 !important;
  visibility:visible !important;
  opacity:1 !important;
  overflow:hidden !important;
}

.bulbi-search-row-v469{
  position:static !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  height:auto !important;
  margin:10px 0 0 !important;
  padding:0 !important;
  transform:none !important;
}

.bulbi-search-v469{
  position:relative !important;
  display:flex !important;
  align-items:center !important;
  width:min(720px,70vw) !important;
  max-width:720px !important;
  min-width:280px !important;
  height:46px !important;
  margin:0 auto !important;
  padding:0 !important;
  transform:none !important;
  visibility:visible !important;
  opacity:1 !important;
  overflow:hidden !important;
  border:1px solid rgba(0,215,255,.55);
  border-radius:5px;
  background:#050717;
  box-shadow:0 0 10px rgba(0,215,255,.10);
}

.bulbi-search-v469 input{
  display:block !important;
  flex:1 1 auto !important;
  width:100% !important;
  min-width:0 !important;
  height:100% !important;
  margin:0 !important;
  padding:0 46px 0 14px !important;
  border:0 !important;
  outline:0 !important;
  background:transparent !important;
  color:#fff !important;
  font:inherit !important;
}

.bulbi-search-v469 > span{
  position:absolute !important;
  right:14px !important;
  top:50% !important;
  transform:translateY(-50%) !important;
  color:#fff !important;
  pointer-events:none !important;
}

/* Desktop intermédiaire */
@media(min-width:1001px) and (max-width:1250px){
  .bulbi-header-main-v469{
    grid-template-columns:220px minmax(0,1fr) 285px !important;
    gap:12px !important;
  }
  .bulbi-brand-v469{
    width:220px !important;
    min-width:220px !important;
  }
  .bulbi-logo-v469{
    width:210px !important;
    max-width:210px !important;
  }
  .bulbi-profile-v469{
    width:285px !important;
    max-width:285px !important;
  }
  .bulbi-nav-v469 > .nav-item{
    font-size:10px !important;
    padding:0 4px !important;
  }
}

/* Mobile/tablette */
@media(max-width:1000px){
  .bulbi-header-v469{
    padding:10px !important;
  }

  .bulbi-header-main-v469{
    grid-template-columns:1fr !important;
    min-height:0 !important;
    gap:10px !important;
  }

  .bulbi-brand-v469{
    width:100% !important;
    min-width:0 !important;
    height:auto !important;
    justify-content:center !important;
  }

  .bulbi-logo-v469{
    width:min(420px,80vw) !important;
    max-width:100% !important;
    max-height:none !important;
  }

  .bulbi-nav-v469{
    grid-template-columns:repeat(5,minmax(0,1fr)) !important;
    height:54px !important;
  }

  .bulbi-nav-v469 > .nav-item{
    font-size:clamp(7px,2.1vw,11px) !important;
    padding:0 3px !important;
  }

  .bulbi-profile-v469{
    width:100% !important;
    max-width:100% !important;
  }

  .bulbi-search-v469{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
  }
}


/* V4.75.4 — La Piaule : styles consolidés (remplace les anciens blocs en conflit) */
.piaule-click-hint{margin:0 0 14px;color:#8f91a9;font-size:12px;}
.piaule-all-episodes{display:flex;flex-direction:column;gap:11px;margin-top:0;}
.piaule-episode-card{display:block;padding:0;overflow:hidden;border:1px solid rgba(47,74,132,.72);border-radius:10px;background:linear-gradient(90deg,rgba(12,13,36,.98),rgba(7,8,26,.95));transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;}
.piaule-episode-card:hover{transform:translateY(-1px);border-color:rgba(255,62,190,.7);box-shadow:0 0 18px rgba(255,43,176,.09);}
.piaule-episode-card.is-open{border-color:rgba(38,217,255,.55);box-shadow:0 0 22px rgba(38,217,255,.08);}
.piaule-episode-summary{box-sizing:border-box;width:100%;display:grid;grid-template-columns:92px minmax(0,1fr) 32px;align-items:center;gap:14px;padding:12px 14px;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer;font:inherit;}
.piaule-episode-index{display:none!important;}
.piaule-episode-thumb{width:92px;height:92px;display:block;object-fit:contain;background:#090a18;border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.28);}
.piaule-episode-info{display:flex;min-width:0;flex-direction:column;justify-content:center;}
.piaule-episode-title{display:block;margin:0 0 6px;color:#fff;font-size:15px;font-weight:900;line-height:1.25;}
.piaule-episode-meta{display:flex;align-items:center;gap:7px;margin:0 0 7px;color:#9694a7;font-size:11px;}
.piaule-episode-description{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;color:#c6c7d5;font-size:12px;line-height:1.45;}
.piaule-expand-icon{color:#ff69cf;font-size:25px;text-align:center;transition:transform .22s ease;}
.piaule-episode-card.is-open .piaule-expand-icon{transform:rotate(180deg);}
.piaule-episode-player{max-height:0;opacity:0;overflow:hidden;padding:0 14px 0 120px;transform:translateY(-7px);pointer-events:none;transition:max-height .42s cubic-bezier(.22,.61,.36,1),opacity .28s ease,transform .38s ease,padding .38s ease;}
.piaule-episode-card.is-open .piaule-episode-player{max-height:230px;opacity:1;padding:0 14px 14px 120px;transform:translateY(0);pointer-events:auto;}
.piaule-episode-player iframe{display:block;border-radius:12px;min-height:152px;background:#121212;}
.piaule-open-spotify{display:inline-block;margin-top:7px;color:#70dfff;text-decoration:none;font-size:11px;}
.piaule-season-title{display:flex;align-items:center;gap:10px;margin:7px 2px 1px;color:#7edfff;font-size:10px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;}
.piaule-season-title::before,.piaule-season-title::after{content:"";height:1px;flex:1;background:linear-gradient(90deg,transparent,rgba(77,190,255,.34));}
.piaule-season-title::after{background:linear-gradient(90deg,rgba(255,82,194,.34),transparent);}
.piaule-season-title span{white-space:nowrap;opacity:.82;}

@media(max-width:650px){
  .piaule-all-episodes{gap:8px;}
  .piaule-episode-card{min-height:0;border-radius:10px;}
  .piaule-episode-summary{
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    gap:10px!important;
    min-height:0!important;
    height:auto!important;
    padding:9px 10px!important;
  }
  .piaule-episode-thumb{
    flex:0 0 92px!important;
    width:92px!important;
    height:92px!important;
    object-fit:contain!important;
    margin:0!important;
  }
  .piaule-episode-info{
    flex:1 1 auto!important;
    min-width:0!important;
    align-self:center!important;
    margin:0!important;
    padding:0!important;
  }
  .piaule-episode-title{margin:0 0 4px!important;font-size:12px;line-height:1.18;}
  .piaule-episode-meta{margin:0 0 4px!important;font-size:9px;line-height:1.15;gap:5px;}
  .piaule-episode-description{margin:0!important;-webkit-line-clamp:1;font-size:10px;line-height:1.2;}
  .piaule-expand-icon{flex:0 0 18px!important;align-self:center!important;margin:0!important;font-size:18px;}
  .piaule-episode-player{padding-left:10px;padding-right:10px;}
  .piaule-episode-card.is-open .piaule-episode-player{padding:0 10px 10px;}
  .piaule-season-title{margin-top:6px;margin-bottom:0;}
}

/* V4.74 — administration Twitch */
.admin-access{position:absolute;right:22px;top:136px;z-index:20;border:1px solid rgba(255,73,190,.45);background:rgba(17,12,28,.9);color:#fff;border-radius:10px;padding:8px 13px;font-weight:800;font-size:11px;letter-spacing:.08em;cursor:pointer;box-shadow:0 0 18px rgba(255,45,180,.12)}
.admin-access:hover{border-color:#ff49be;box-shadow:0 0 20px rgba(255,45,180,.28)}
.admin-panel{max-width:1180px;margin:28px auto 70px;padding:0 22px}.admin-note{color:#aaa;margin:4px 0 18px}.admin-search{width:100%;height:46px;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:#11101a;color:#fff;padding:0 15px;font-size:15px;outline:none}.admin-search:focus{border-color:rgba(255,73,190,.65)}
.admin-columns{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:22px}.admin-columns h3{font-size:13px;letter-spacing:.09em;color:#eee;margin:0 0 10px}.admin-columns h3 small{color:#ff49be;font-size:11px}.admin-list{display:flex;flex-direction:column;gap:8px;max-height:62vh;overflow:auto;padding-right:4px}.admin-game-row{display:flex;align-items:center;justify-content:space-between;gap:14px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.08);border-radius:11px;padding:10px 11px}.admin-game-row>div{min-width:0}.admin-game-row strong{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-game-row span{display:block;color:#888;font-size:11px;margin-top:3px}.admin-game-row button{flex:0 0 auto;border-radius:8px;padding:8px 10px;font-size:10px;font-weight:800;cursor:pointer}.admin-stream{border:1px solid rgba(255,73,190,.45);background:rgba(255,73,190,.08);color:#ff75cb}.admin-restore{border:1px solid rgba(93,214,255,.38);background:rgba(93,214,255,.07);color:#8bddff}.admin-empty{color:#777;font-size:13px;padding:10px}
@media(max-width:850px){.admin-columns{grid-template-columns:1fr}.admin-access{position:static;display:block;margin:8px auto 0}.admin-access.hidden{display:none}}





/* V4.75.7 — iPad portrait : correction réelle de la carte Twitch */
@media (min-width:1001px) and (max-width:1100px) and (orientation:portrait){
  #profileBox.bulbi-profile-v469:not(.connected){
    grid-template-columns:minmax(0,1fr) 112px !important;
    gap:6px !important;
    padding:10px 8px 10px 12px !important;
  }

  #profileBox:not(.connected) .profile-copy{
    min-width:0 !important;
    width:100% !important;
    overflow:hidden !important;
  }

  #profileBox:not(.connected) .profile-name{
    display:block !important;
    min-width:0 !important;
    width:100% !important;
    overflow:hidden !important;
    white-space:nowrap !important;
    text-overflow:ellipsis !important;
    font-size:17px !important;
    line-height:1.1 !important;
  }

  #profileBox:not(.connected) #userName{
    display:block !important;
    min-width:0 !important;
    max-width:100% !important;
    overflow:hidden !important;
    white-space:nowrap !important;
    text-overflow:ellipsis !important;
  }

  #profileBox:not(.connected) .twitch-status{
    display:block !important;
    min-width:0 !important;
    max-width:100% !important;
    overflow:hidden !important;
    white-space:nowrap !important;
    text-overflow:ellipsis !important;
  }

  #profileBox:not(.connected) .profile-action{
    width:112px !important;
    min-width:112px !important;
    max-width:112px !important;
    padding:0 6px !important;
    font-size:10px !important;
    letter-spacing:0 !important;
  }
}

/* V4.76 TEST — lecteurs YouTube intégrés dans Mes vidéos */
.video-thumb.video-embed-toggle{border:0;padding:0;width:100%;text-align:left;cursor:pointer;font:inherit;color:inherit;background:transparent}
.video-card-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px}
.video-card-actions .video-youtube-btn{margin-top:0}
.video-external-btn{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 11px;border:1px solid rgba(255,255,255,.16);border-radius:9px;color:var(--muted);text-decoration:none;font-size:12px;font-weight:700;transition:.18s ease}
.video-external-btn:hover{color:#fff;border-color:rgba(255,255,255,.32)}
.video-embed-panel{grid-column:1/-1;max-height:0;opacity:0;overflow:hidden;padding:0 13px;transition:max-height .45s cubic-bezier(.22,.8,.22,1),opacity .28s ease,padding .45s cubic-bezier(.22,.8,.22,1)}
.video-embed-panel.open{max-height:760px;opacity:1;padding:0 13px 13px}
.video-embed-inner{position:relative;width:100%;aspect-ratio:16/9;border-radius:12px;overflow:hidden;background:#05070d;border:1px solid rgba(255,255,255,.1)}
.video-embed-inner iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
@media (prefers-reduced-motion:reduce){.video-embed-panel{transition:none}}

/* V4.76 TEST B — lecteur unique sous la rangée sélectionnée */
.video-card.is-playing{border-color:#d94fc7;box-shadow:0 0 0 1px rgba(217,79,199,.2),0 8px 20px rgba(0,0,0,.18)}
.video-row-player{grid-column:1/-1;min-width:0;max-height:0;opacity:0;overflow:hidden;transform:translateY(-5px);transition:max-height .38s cubic-bezier(.22,.8,.22,1),opacity .22s ease,transform .3s ease;margin:0}
.video-row-player.open{max-height:900px;opacity:1;transform:translateY(0);margin:2px 0 6px}
.video-row-player-inner{position:relative;width:100%;aspect-ratio:16/9;border-radius:10px;overflow:hidden;background:#03040d;border:1px solid #343c67;box-shadow:0 10px 28px rgba(0,0,0,.28)}
.video-row-player-inner iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
@media (prefers-reduced-motion:reduce){.video-row-player{transition:none}}

/* V4.76 TEST D — playlist visible */
.video-playlist-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(260px,.75fr);gap:12px;align-items:stretch}
.video-playlist-panel{min-height:0;max-height:100%;display:flex;flex-direction:column;border:1px solid #343c67;border-radius:10px;overflow:hidden;background:#080b18}
.video-playlist-head{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 14px;border-bottom:1px solid #292f51;font-size:.78rem;letter-spacing:.08em}.video-playlist-head span{color:#9ba5c8;font-size:.72rem;letter-spacing:0}
.video-playlist-items{overflow:auto;min-height:0;max-height:430px;padding:6px}
.video-playlist-item{width:100%;display:grid;grid-template-columns:92px minmax(0,1fr) 28px;gap:9px;align-items:center;padding:7px;border:0;border-radius:8px;background:transparent;color:#e9ecff;text-align:left;cursor:pointer}.video-playlist-item:hover,.video-playlist-item.active{background:#171d35}.video-playlist-item.active{outline:1px solid #59659b}
.video-playlist-item img{width:92px;aspect-ratio:16/9;object-fit:cover;border-radius:5px}.video-playlist-item span{font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.video-playlist-item b{color:#8d98c3;margin-right:5px}.video-playlist-item em{font-style:normal;text-align:center;opacity:.7}.video-playlist-empty{padding:18px;color:#9ba5c8;font-size:.8rem;line-height:1.45}
.video-youtube-api-player,.video-youtube-api-player iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
@media(max-width:800px){.video-playlist-layout{grid-template-columns:1fr}.video-playlist-items{max-height:320px}}


/* TEST J — sonde YouTube invisible utilisée pour calculer les durées */
.bulbi-yt-title-probe{
  position:fixed!important;
  left:-10000px!important;
  top:-10000px!important;
  width:200px!important;
  height:113px!important;
  opacity:.001!important;
  pointer-events:none!important;
  overflow:hidden!important;
}


/* TEST K — lecteur YouTube invisible servant uniquement à lire
   la première vidéo actuelle de chaque playlist. */
.bulbi-yt-cover-probe{
  position:fixed!important;
  left:-10000px!important;
  top:-10000px!important;
  width:200px!important;
  height:113px!important;
  opacity:.001!important;
  pointer-events:none!important;
  overflow:hidden!important;
}


/* V4.77 TEST — CMS vidéos Admin */
.admin-video-panel{margin-bottom:28px}
.admin-video-form{display:grid;gap:12px;margin:18px 0 26px}
.admin-video-form input,.admin-video-form select{
  width:100%;box-sizing:border-box;background:#10141c;border:1px solid rgba(255,255,255,.14);
  color:#fff;border-radius:10px;padding:12px 14px;font:inherit
}
.admin-video-form-row{display:grid;grid-template-columns:1fr 1fr auto;gap:10px}
.admin-video-add{border:0;border-radius:10px;padding:0 18px;font-weight:900;cursor:pointer;background:#ff3aa7;color:#fff}
.admin-video-message{min-height:18px;font-size:13px;color:#8fffcf}.admin-video-message.error{color:#ff7b9d}
.admin-video-list-title{margin:8px 0 12px}.admin-video-list{display:grid;gap:8px}
.admin-video-row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:12px 14px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:10px}
.admin-video-row>div:first-child{min-width:0}.admin-video-row strong{display:block}.admin-video-row span{display:block;margin-top:4px;opacity:.65;font-size:12px}
.admin-video-actions{display:flex;gap:7px;flex-shrink:0}.admin-video-actions button{border:1px solid rgba(255,255,255,.18);background:#161b25;color:#fff;border-radius:8px;padding:8px 10px;font-weight:800;cursor:pointer}
.admin-video-actions .admin-video-delete{border-color:rgba(255,80,110,.45);color:#ff829c}
@media(max-width:700px){.admin-video-form-row{grid-template-columns:1fr}.admin-video-add{padding:12px}.admin-video-row{align-items:flex-start;flex-direction:column}.admin-video-actions{width:100%}.admin-video-actions button{flex:1}}

/* V4.77.3 - navigation utilisable en nouvel onglet */
a.nav-item,a[data-video-category],a[data-video-kind],a[data-cinema-kind],a[data-irl-kind],a[data-tcg-kind],a[data-fiction-kind],a[data-plateau-season],a[data-video-status]{text-decoration:none;}

/* V4.77.6 — Mes votes sur l'accueil */
.home-my-votes{margin:22px 0 26px}
.home-my-votes .section-title-row{margin-bottom:12px}
.home-my-votes .section-title-row h2{margin:0;text-transform:uppercase}
.home-my-votes .section-title-row p{margin:4px 0 0;opacity:.62;font-size:12px}
.home-my-votes-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.home-my-vote-card{
  min-width:0;display:flex;align-items:center;gap:10px;padding:9px;
  background:rgba(12,16,25,.88);border:1px solid rgba(255,255,255,.09);border-radius:10px
}
.home-my-vote-cover{width:42px;height:56px;flex:0 0 auto;border-radius:6px;overflow:hidden;background:#111;display:flex;align-items:center;justify-content:center}
.home-my-vote-cover img{width:100%;height:100%;object-fit:cover}
.home-my-vote-cover.cover-missing{font-size:8px;line-height:1.1;text-align:center;padding:4px;opacity:.55}
.home-my-vote-copy{min-width:0;display:flex;flex-direction:column;gap:4px}
.home-my-vote-copy strong{font-size:12px;line-height:1.25;color:#fff;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.home-my-vote-copy span{font-size:10px;opacity:.58}
.home-my-votes-empty{grid-column:1/-1;padding:14px;border:1px dashed rgba(255,255,255,.12);border-radius:10px;opacity:.65;font-size:12px}
@media(max-width:1000px){.home-my-votes-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:650px){.home-my-votes-grid{grid-template-columns:1fr 1fr}}

/* V4.77.9 — retrait rapide d'un vote depuis l'accueil */
.home-my-vote-card{position:relative;padding-right:34px}
.home-my-vote-remove{
  position:absolute;top:7px;right:7px;width:22px;height:22px;padding:0;border:1px solid rgba(255,78,176,.55);
  border-radius:6px;background:rgba(8,10,18,.86);color:#ff4eb0;font-size:18px;font-weight:800;line-height:18px;
  display:flex;align-items:center;justify-content:center;cursor:pointer
}
.home-my-vote-remove:hover{background:#ff4eb0;color:#fff}
.home-my-vote-remove:disabled{opacity:.45;cursor:wait}

/* V4.78.2 — date toujours alignée à droite dans les cartes vidéo */
.video-card-meta .video-date{margin-left:auto}

/* V4.79.2 — recherche globale contextuelle */
.global-search-results{margin-bottom:22px}
.global-search-results.hidden{display:none!important}
.global-search-results .global-search-subtitle{font-size:20px;margin:18px 0 14px;text-align:left}
.global-search-results #globalVideoSearchBlock{margin-top:28px}


/* V4.79.3 — Présentation déplacée sur l'accueil */
.home-welcome-panel{
  margin-bottom:20px;
}
.home-welcome-panel .about-profile{
  max-width:none;
}
.home-welcome-panel .about-avatar{
  width:220px;
  height:220px;
  flex-basis:220px;
}
.home-welcome-panel .about-copy h1{
  margin-bottom:14px;
}
@media(max-width:800px){
  .home-welcome-panel .about-avatar{
    width:min(220px,72vw);
    height:min(220px,72vw);
    flex-basis:auto;
  }
}


/* V4.79.5 — accueil dernières vidéos + catégorie TOUT */
.home-latest-videos{margin:28px 0 34px}
.home-latest-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:14px}
.home-latest-heading h2{margin:0;text-transform:uppercase}
.home-latest-heading p{margin:4px 0 0;opacity:.62;font-size:12px}
.home-latest-all{border:1px solid #ff20b8;background:rgba(255,32,184,.06);color:#ff7ad7;border-radius:8px;padding:10px 13px;font-weight:800;cursor:pointer}
.home-latest-all:hover{background:rgba(255,32,184,.14)}
.home-latest-video-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:900px){.home-latest-video-grid{grid-template-columns:1fr 1fr}.home-latest-heading{align-items:flex-start;flex-direction:column}}
@media(max-width:620px){.home-latest-video-grid{grid-template-columns:1fr}}


/* V4.79.6 — accueil : news + Mes votes en colonne + TOUT centré */
.site-news-panel{
  margin:18px 0;border:1px solid #384472;border-radius:9px;background:rgba(6,7,25,.95);
  padding:18px 20px;box-shadow:0 0 16px rgba(79,112,255,.10)
}
.site-news-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid rgba(255,255,255,.09);padding-bottom:11px;margin-bottom:12px}
.site-news-heading h2{margin:0;font-size:21px;letter-spacing:.3px}.site-news-heading span{font-size:12px;opacity:.55;white-space:nowrap}
.site-news-panel h3{margin:0 0 9px;color:#ff79d3;font-size:16px}.site-news-panel ul{margin:0;padding-left:20px;line-height:1.65;color:#d7d9e8;font-size:13px}
.sidebar-my-votes{padding-bottom:8px}.sidebar-my-votes-grid{display:grid;gap:7px;padding:9px}
.sidebar-my-votes .home-my-vote-card{padding:7px 31px 7px 7px;gap:8px}.sidebar-my-votes .home-my-vote-cover{width:34px;height:46px}
.sidebar-my-votes .home-my-vote-copy strong{font-size:11px}.sidebar-my-votes .home-my-vote-copy span{font-size:9px}.sidebar-my-votes .home-my-vote-remove{top:50%;right:6px;transform:translateY(-50%);width:20px;height:20px;font-size:16px}
.sidebar-my-votes .home-my-votes-empty{padding:10px;font-size:11px}
.video-category-all-row{display:flex;justify-content:center;margin-bottom:10px}.video-category-all{width:min(320px,100%);display:flex;align-items:center;justify-content:center;text-decoration:none}
.video-categories{grid-template-columns:repeat(6,minmax(0,1fr))}
@media(max-width:1150px){.video-categories{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.site-news-heading{align-items:flex-start;flex-direction:column;gap:4px}.video-categories{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* V4.79.10 — fond global uniforme entre toutes les rubriques
   Le décor est fixé au viewport : sa teinte/position ne dépend plus de la hauteur
   du contenu de la page (Votes, Top, Vidéos, Piaule, etc.). */
html {
  background:#02030d;
}
body {
  background-color:#02030d !important;
  background-image:
    radial-gradient(circle at 7% 0%,rgba(255,43,184,.15),transparent 23%),
    radial-gradient(circle at 86% 8%,rgba(0,215,255,.10),transparent 24%),
    linear-gradient(180deg,#020310 0%,#05051a 56%,#02030d 100%) !important;
  background-repeat:no-repeat !important;
  background-size:100vw 100vh !important;
  background-attachment:fixed !important;
}
body::before {
  position:fixed !important;
}

/* V4.79.12 — encart de bienvenue compact, aligné sur la NEWS DU SITE */
.home-welcome-panel{
  padding:18px 20px;
  border-color:#384472;
  border-radius:9px;
  background:rgba(6,7,25,.95);
  box-shadow:0 0 16px rgba(79,112,255,.10);
}
.home-welcome-panel .about-profile{
  gap:20px;
  align-items:stretch;
}
.home-welcome-panel .about-avatar{
  width:220px;
  height:auto;
  min-height:220px;
  flex:0 0 220px;
  align-self:stretch;
}
.home-welcome-panel .about-copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.home-welcome-panel .about-copy h1{
  margin:0 0 11px;
  font-size:21px;
  line-height:1.2;
  letter-spacing:.3px;
}
.home-welcome-panel .about-copy p{
  margin:0 0 9px;
  font-size:13px;
  line-height:1.48;
}
.home-welcome-panel .about-thanks{
  margin-top:2px !important;
  margin-bottom:0 !important;
  font-size:13px;
}
@media(max-width:800px){
  .home-welcome-panel .about-profile{align-items:center}
  .home-welcome-panel .about-avatar{width:min(220px,72vw);height:min(220px,72vw);min-height:0;align-self:auto}
}

/* V4.79.14 — Live Twitch intégré à l'accueil */
.home-live-panel{margin:18px 0;border:1px solid #384472;border-radius:9px;background:rgba(6,7,25,.95);padding:18px 20px;box-shadow:0 0 16px rgba(79,112,255,.10)}
.home-live-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:13px}
.home-live-heading h2{margin:0;font-size:21px;letter-spacing:.3px}.home-live-heading p{margin:4px 0 0;color:#aeb4cc;font-size:12px}
.home-live-theatre{border:1px solid #ff20b8;background:rgba(255,32,184,.06);color:#ff7ad7;border-radius:8px;padding:9px 12px;font-size:11px;font-weight:800;cursor:pointer;letter-spacing:.04em}
.home-live-theatre:hover,.home-live-theatre[aria-pressed="true"]{background:rgba(255,32,184,.18);color:#fff}
.home-live-stage{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:12px;align-items:stretch}
.home-live-player-wrap{position:relative;min-width:0;aspect-ratio:16/9;background:#000;border-radius:8px;overflow:hidden}
#bulbiTwitchPlayer,#bulbiTwitchPlayer iframe{width:100%!important;height:100%!important;display:block}
.home-live-chat-wrap{min-width:0;border-radius:8px;overflow:hidden;background:#18181b;min-height:300px}
#bulbiTwitchChat{display:block;width:100%;height:100%;min-height:300px;border:0}
.home-live-offline{min-height:110px;border:1px dashed rgba(255,255,255,.15);border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:#aeb4cc;background:rgba(0,0,0,.14)}
.home-live-offline[hidden]{display:none!important}.home-live-offline strong{font-size:18px;color:#fff;letter-spacing:.06em}.home-live-offline span{font-size:12px}
.home-live-panel.is-offline .home-live-stage,.home-live-panel.is-offline .home-live-theatre{display:none}
body.bulbi-theatre-mode{overflow:hidden}
body.bulbi-theatre-mode .home-live-panel{position:fixed;inset:0;z-index:10000;margin:0;border:0;border-radius:0;padding:12px;background:#02030d;display:flex;flex-direction:column}
body.bulbi-theatre-mode .home-live-heading{flex:0 0 auto;margin-bottom:10px}
body.bulbi-theatre-mode .home-live-stage{flex:1;min-height:0;grid-template-columns:minmax(0,1fr) minmax(300px,24vw)}
body.bulbi-theatre-mode .home-live-player-wrap{height:100%;aspect-ratio:auto}
body.bulbi-theatre-mode .home-live-chat-wrap,#bulbiTwitchChat{height:100%}
@media(max-width:900px){.home-live-stage{grid-template-columns:1fr}.home-live-chat-wrap{height:420px}.home-live-heading{align-items:flex-start}.home-live-player-wrap{min-height:300px}}
@media(max-width:620px){.home-live-panel{padding:14px}.home-live-heading{flex-direction:column}.home-live-theatre{width:100%}.home-live-chat-wrap{height:360px}body.bulbi-theatre-mode .home-live-stage{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) 38vh}}

/* V4.79.15 — responsive Twitch + header tablette/mobile */
html,body{max-width:100%;overflow-x:hidden}
.home-live-panel,.home-live-stage,.home-live-player-wrap,.home-live-chat-wrap{max-width:100%;min-width:0}
#bulbiTwitchPlayer,#bulbiTwitchPlayer iframe,#bulbiTwitchChat{max-width:100%!important;min-width:0!important}

/* iPad/tablettes portrait : empêcher la carte Twitch du header de sortir de l'écran. */
@media (min-width:901px) and (max-width:1180px){
  .bulbi-header-main-v469{
    grid-template-columns:200px minmax(0,1fr) 245px !important;
    gap:10px !important;
  }
  .bulbi-brand-v469{width:200px!important;min-width:200px!important}
  .bulbi-logo-v469{width:195px!important;max-width:195px!important}
  .bulbi-profile-v469,
  #profileBox.bulbi-profile-v469{width:245px!important;max-width:245px!important;min-width:0!important}
  #profileBox.connected .profile-name{font-size:16px!important}
  #profileBox.connected .twitch-status{font-size:10px!important;white-space:nowrap!important}
}

/* Tablette : Twitch empilé et chat assez haut pour les consentements / fenêtres internes. */
@media (max-width:900px){
  .home-live-stage{display:grid!important;grid-template-columns:minmax(0,1fr)!important;width:100%!important;overflow:visible!important}
  .home-live-player-wrap{width:100%!important;min-height:0!important;aspect-ratio:16/9!important;overflow:hidden!important}
  .home-live-chat-wrap{width:100%!important;height:600px!important;min-height:600px!important;overflow:hidden!important}
  #bulbiTwitchChat{width:100%!important;height:600px!important;min-height:600px!important;border:0!important}
}

/* Téléphone portrait : aucun débordement horizontal et davantage de place au chat Twitch.
   Le clavier virtuel peut ainsi redimensionner la page sans que l'iframe soit coupée. */
@media (max-width:620px){
  .home-live-panel{width:100%!important;max-width:100%!important;margin:14px 0!important;padding:12px!important;overflow:visible!important}
  .home-live-stage{width:100%!important;max-width:100%!important;gap:12px!important;overflow:visible!important}
  .home-live-player-wrap{width:100%!important;max-width:100%!important;min-width:0!important;min-height:0!important;aspect-ratio:16/9!important}
  #bulbiTwitchPlayer,#bulbiTwitchPlayer iframe{width:100%!important;max-width:100%!important;height:100%!important;min-width:0!important}
  .home-live-chat-wrap{width:100%!important;max-width:100%!important;height:650px!important;min-height:650px!important;overflow:hidden!important}
  #bulbiTwitchChat{width:100%!important;max-width:100%!important;height:650px!important;min-height:650px!important}
  body.bulbi-theatre-mode .home-live-stage{grid-template-rows:minmax(180px,42vh) minmax(320px,1fr)!important;overflow:auto!important}
  body.bulbi-theatre-mode .home-live-chat-wrap,
  body.bulbi-theatre-mode #bulbiTwitchChat{height:100%!important;min-height:320px!important}
}


/* V4.79.16 — Twitch mobile : l'état OFFLINE doit toujours gagner sur les règles responsive. */
@media (max-width:900px){
  .home-live-panel.is-offline .home-live-stage{display:none!important}
  .home-live-panel.is-offline .home-live-theatre{display:none!important}
}

/* V4.79.17 — iPad portrait : catégories vidéos en grille régulière 3 x 2 */
@media (orientation:portrait) and (min-width:701px) and (max-width:1400px){
  #videosPage .video-categories{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:8px!important;
  }
  #videosPage .video-category{
    width:100%!important;
    min-width:0!important;
  }
}

/* V4.79.22 — accueil fusionné + live offline compact */
.home-welcome-news-panel{padding:18px 20px!important}
.home-welcome-news-panel .about-copy{display:block!important}
.home-welcome-news-panel .about-copy>h1{margin:0 0 14px!important;font-size:21px!important}
.welcome-news-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.09);padding:11px 0;margin-bottom:12px}
.welcome-news-heading h2{margin:0;font-size:17px;letter-spacing:.3px}.welcome-news-heading span{font-size:12px;opacity:.55;white-space:nowrap}
.home-welcome-news-panel h3{margin:0 0 9px;color:#ff79d3;font-size:16px}.home-welcome-news-panel ul{margin:0;padding-left:20px;line-height:1.65;color:#d7d9e8;font-size:13px}
.home-live-meta{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.home-live-meta p{margin:4px 0 0!important}.home-next-live strong{color:#ff79d3}.home-next-live{color:#d7d9e8!important}
.home-live-panel.is-offline{padding:13px 18px;margin:14px 0}
.home-live-panel.is-offline .home-live-heading{margin:0;align-items:center}.home-live-panel.is-offline .home-live-heading h2{font-size:18px}
.home-live-panel.is-offline .home-live-offline{min-height:0;border:0;background:transparent;display:flex;flex-direction:row;justify-content:flex-start;gap:8px;padding:8px 0 0;align-items:center}
.home-live-panel.is-offline .home-live-offline strong{font-size:13px;color:#ff79d3}.home-live-panel.is-offline .home-live-offline span{font-size:12px}
@media(max-width:700px){.welcome-news-heading{align-items:flex-start;flex-direction:column;gap:4px}.home-live-meta{display:block}.home-live-panel.is-offline .home-live-offline{align-items:flex-start;flex-direction:column;gap:3px}}


/* V4.79.23 — titre accueil centré + live offline simplifié */
.home-welcome-news-panel .about-copy>h1{
  text-align:center!important;
  color:#ff79d3!important;
}
.home-live-title-row{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
.home-live-title-row h2{margin:0!important}
.home-live-title-row #homeLiveStatusText{margin:0!important;font-size:12px}
.home-next-live{margin:6px 0 0!important;text-align:left!important}
.home-live-panel.is-offline .home-live-heading{align-items:flex-start!important}
@media(max-width:700px){
  .home-live-title-row{gap:8px}
  .home-live-title-row #homeLiveStatusText{font-size:11px}
}


/* V4.79.24 — accueil live hors ligne minimal */
.home-live-panel.is-offline{padding:20px 18px!important}
.home-live-panel.is-offline .home-live-heading{display:flex!important;justify-content:center!important;align-items:center!important;margin:0!important}
.home-live-panel.is-offline .home-next-live{width:100%;margin:0!important;text-align:center!important;font-size:20px!important;line-height:1.35;font-weight:600}
.home-live-panel.is-offline .home-next-live strong{color:#ff79d3;font-size:20px}
.home-live-panel:not(.is-offline) .home-next-live{display:none!important}
.home-live-panel:not(.is-offline) .home-live-heading{justify-content:flex-end!important}
@media(max-width:700px){
  .home-live-panel.is-offline .home-live-heading{display:flex!important;align-items:center!important}
  .home-live-panel.is-offline .home-next-live,.home-live-panel.is-offline .home-next-live strong{font-size:17px!important}
}


/* V4.79.26 — prochain live sur 3 lignes + programme libre */
.home-live-panel.is-offline .home-next-live{display:flex!important;flex-direction:column;align-items:center;gap:5px}
.home-live-panel.is-offline .home-next-live strong{font-size:17px!important;letter-spacing:.7px}
.home-live-panel.is-offline #homeNextLiveText{font-size:22px;font-weight:700;line-height:1.25}
.home-live-panel.is-offline .home-next-live-title{font-size:18px;font-weight:500;color:#d7d9e8;line-height:1.3}
.admin-next-live-fields{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(280px,1.3fr);gap:12px;margin-bottom:10px}
.admin-next-live-fields label{display:flex;flex-direction:column;gap:6px}
.admin-next-live-fields label>span{font-size:11px;font-weight:700;letter-spacing:.5px;opacity:.7}
.admin-next-live-fields input{width:100%;box-sizing:border-box}
@media(max-width:700px){
  .home-live-panel.is-offline #homeNextLiveText{font-size:19px}
  .home-live-panel.is-offline .home-next-live-title{font-size:16px}
  .admin-next-live-fields{grid-template-columns:1fr}
}

/* V4.79.27 — Top 3 parfaitement aligné */
@media(min-width:901px){
  .top-card{align-items:center!important}
  .top-card-copy{
    display:grid!important;
    grid-template-rows:24px 25px 28px 30px!important;
    align-content:center!important;
    align-items:center!important;
    min-width:0!important;
  }
  .top-card-copy>strong{
    display:block!important;
    font-size:16px!important;
    line-height:20px!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  .top-card-copy>br{display:none!important}
  .top-card-copy>.badge{justify-self:start!important;margin-top:0!important}
  .top-card-copy>.top-votes{margin-top:0!important;align-self:center!important}
  .top-card-copy>.top-vote-btn{margin-top:0!important;align-self:center!important;justify-self:start!important}
}


/* V4.79.30 — cartes vidéos alignées */
.video-card{display:flex;flex-direction:column}
.video-card-body{display:flex;flex-direction:column;flex:1}
.video-card h3{min-height:42px;margin-bottom:10px}
.video-card-info{min-height:34px;display:flex;align-items:center;margin-top:auto}
.video-card-info .video-duration,.video-card-info .video-status{margin:0!important}
.video-card-actions{margin-top:10px!important;min-height:38px;flex-wrap:nowrap!important}
.video-card-actions .video-youtube-btn,.video-card-actions .video-external-btn{min-height:38px;box-sizing:border-box;white-space:nowrap}
.video-external-btn{font-size:11px!important;font-weight:900!important}
@media(max-width:650px){.video-card-actions{flex-wrap:wrap!important}}

/* V4.79.31 — remontée manuelle des playlists */
.admin-video-actions .admin-video-bump{border-color:rgba(48,220,255,.55);color:#5ee8ff}
.admin-video-actions .admin-video-bump:disabled{opacity:.55;cursor:wait}


/* V4.79.35 — statut playlist sous le titre */
.video-card-status-row{min-height:28px;display:flex;align-items:flex-start;margin-top:-4px;margin-bottom:8px}
.video-card-status-row .video-status{margin:0!important}
