/* ==========================================================
   Mayotte Musique — Premium Liquid Glass
   Thème jour/nuit (dark & light) COMPLET
   Fichier à remplacer entièrement dans assets/style.css
   ========================================================== */

/* -------------------- Variables & thèmes -------------------- */
:root{
  /* Couleurs de base (mode sombre par défaut) */
  --bg:#07090d;               /* fond profond */
  --bg-2:#0b0e14;
  --fg:#f5f7fb;               /* texte principal */
  --muted:#b9bfcc;            /* texte secondaire */

  /* Accents “tropical premium” */
  --accent:#19d27c;           /* vert lagon */
  --accent-600:#12b369;
  --accent2:#2a7de1;          /* bleu océan */
  --accent2-600:#1f66ba;

  /* Verre (glassmorphism) */
  --glass-bg: rgba(255,255,255,.06);
  --glass-stroke: rgba(255,255,255,.18);
  --glass-blur: 22px;
  --glass-sat: 140%;

  /* Ombres */
  --shadow-1: 0 4px 14px rgba(0,0,0,.35);
  --shadow-2: 0 18px 48px rgba(0,0,0,.5);
  --inner-1:  0 10px 28px rgba(0,0,0,.35) inset;

  /* Rayons & layout */
  --radius: 16px;
  --radius-lg: 22px;
  --container: 1120px;
  --gap: 18px;

  /* Police */
  --font: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;

  /* Transitions */
  --t-fast: .15s cubic-bezier(.2,.8,.2,1);
  --t-med:  .25s cubic-bezier(.2,.8,.2,1);
}

/* Thème clair : overrides quand data-theme="light" sur <html> */
:root[data-theme="light"]{
  --bg:#f5f7fb;
  --bg-2:#e8edf7;
  --fg:#121421;
  --muted:#5f6677;

  --glass-bg: rgba(255,255,255,.9);
  --glass-stroke: rgba(180,190,210,.9);
  --glass-blur: 18px;
  --glass-sat: 130%;

  --shadow-1: 0 4px 14px rgba(15,35,70,.18);
  --shadow-2: 0 18px 40px rgba(10,25,60,.25);
  --inner-1:  0 10px 24px rgba(0,0,0,.10) inset;
}

/* -------------------- Reset / Base -------------------- */
*{ box-sizing: border-box; }
html,body{ margin:0; padding:0; height:100%; }

html, body{
  min-height:100%;
  background: var(--bg-2);
  color: var(--fg);
  font-family: var(--font);
  overflow-x:hidden;
}

img{ max-width:100%; height:auto; display:block; }
button,input,select,textarea{ font:inherit; color:inherit; background:none; border:none; }
:focus{ outline:none; }
:focus-visible{
  box-shadow: 0 0 0 3px rgba(42,125,225,.35);
  border-radius: 10px;
}

/* Calque gradient global */
body::before{
  content:"";
  position:fixed; inset:0;
  z-index:-2; pointer-events:none;
  background:
    radial-gradient(1200px 1200px at 82% -12%, rgba(42,125,225,.23), transparent 60%),
    radial-gradient(1000px 1000px at -10% 92%, rgba(25,210,124,.22), transparent 55%),
    linear-gradient(180deg, #06080c 0%, #0b0e14 100%);
}

/* Calque blobs doux */
body::after{
  content:"";
  position:fixed; inset:0;
  z-index:-1; pointer-events:none;
  background:
    radial-gradient(closest-side, rgba(42,125,225,.32), transparent 68%) 78% -8% / 52vw 52vw no-repeat,
    radial-gradient(closest-side, rgba(25,210,124,.30), transparent 68%) -6% 92% / 52vw 52vw no-repeat;
  filter: blur(60px);
  opacity:.48;
}

/* Sections transparentes (laisse voir le fond) */
.band,
#hero,
.about,
.legal,
#featured{ background: transparent !important; }

/* -------------------- Structure -------------------- */
.container{
  width:100%;
  max-width:var(--container);
  margin:0 auto;
  padding:0 18px;
  position:relative;
  z-index:1;
}
.band{ padding: 48px 0; }

/* -------------------- Composant “Verre” générique -------------------- */
.glass{
  background: var(--glass-bg);
  -webkit-backdrop-filter: saturate(var(--glass-sat)) blur(var(--glass-blur));
  backdrop-filter: saturate(var(--glass-sat)) blur(var(--glass-blur));
  border: 1px solid var(--glass-stroke);
  border-radius: var(--radius);
  box-shadow: var(--shadow-1);
  position:relative;
}
.glass::before{
  /* Liseré glossy interne subtil */
  content:"";
  position:absolute; inset:0;
  border-radius: inherit;
  pointer-events:none;
  background:
    linear-gradient(180deg, rgba(255,255,255,.28), rgba(255,255,255,.08));
  opacity:.12;
  mix-blend-mode: screen;
}

/* Cartes par défaut */
.card{
  background: var(--glass-bg);
  -webkit-backdrop-filter: saturate(var(--glass-sat)) blur(var(--glass-blur));
  backdrop-filter: saturate(var(--glass-sat)) blur(var(--glass-blur));
  border: 1px solid var(--glass-stroke);
  border-radius: var(--radius);
  box-shadow: var(--shadow-1);
  padding:20px;
}

/* -------------------- Hero -------------------- */
#hero{
  min-height:62vh;
  display:grid;
  place-items:center;
  text-align:center;
  position:relative;
}
#hero .overlay{
  width:clamp(280px, 86vw, 980px);
  padding: 46px 28px;
  border-radius: var(--radius-lg);
  background: linear-gradient(180deg, rgba(255,255,255,.12), rgba(255,255,255,.04));
  -webkit-backdrop-filter: saturate(160%) blur(24px);
  backdrop-filter: saturate(160%) blur(24px);
  border: 1px solid rgba(255,255,255,.18);
  box-shadow: var(--shadow-2);
  position:relative;
  transition: transform var(--t-med), box-shadow var(--t-med);
}
#hero .overlay:hover{
  transform: translateY(-2px);
  box-shadow: 0 26px 64px rgba(0,0,0,.55);
}
#hero h1{
  margin:0 0 8px; font-weight:800;
  letter-spacing:.2px;
  font-size: clamp(2rem, 3.8vw, 3.2rem);
}
#hero p{
  margin:0 0 14px; color:var(--muted);
  font-size: clamp(1rem, 1.6vw, 1.15rem);
}

/* CTA capsule */
.cta{
  display:inline-flex; align-items:center; gap:10px;
  margin-top:16px; padding: 12px 20px;
  border-radius:999px; font-weight:700; color:#fff;
  background: linear-gradient(90deg, var(--accent), var(--accent2));
  border:1px solid rgba(255,255,255,.22);
  box-shadow: 0 6px 20px rgba(25,210,124,.35), 0 12px 36px rgba(42,125,225,.35);
  transition: transform var(--t-fast), filter var(--t-fast), box-shadow var(--t-fast);
  text-decoration:none;
}
.cta:hover{
  transform: translateY(-1px) scale(1.03);
  filter: brightness(1.06);
}
.cta:active{
  transform: translateY(0) scale(.99);
}

/* -------------------- Typo & liens -------------------- */
h2{ font-size:1.9rem; margin:0 0 10px; }
h3{ font-size:1.35rem; margin:0 0 12px; }
h4{ font-size:1.05rem; margin:0; }
a{ color:var(--accent2); text-decoration:none; }
a:hover{ text-decoration:underline; }
.muted{ color:var(--muted); }
.sr-only{
  position:absolute!important; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

/* -------------------- Upload -------------------- */
#upload .card{ overflow:hidden; }
#uploadForm{ display:grid; gap:12px; }
#uploadForm label{ font-weight:600; }

#uploadForm input[type="text"],
#uploadForm input[type="file"],
#uploadForm select{
  width:100%;
  padding: 12px 14px;
  border-radius:12px;
  color:var(--fg);
  border:1px solid rgba(255,255,255,.18);
  background: linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,.03));
  -webkit-backdrop-filter: blur(10px) saturate(130%);
  backdrop-filter: blur(10px) saturate(130%);
  transition: box-shadow var(--t-fast), border-color var(--t-fast);
}
#uploadForm input::file-selector-button{
  margin-right:10px; padding:8px 10px; border-radius:10px; cursor:pointer; color:#fff;
  background: linear-gradient(90deg, var(--accent2), var(--accent));
  border:1px solid rgba(255,255,255,.22);
}
#uploadForm input:focus-within,
#uploadForm input:focus,
#uploadForm select:focus{
  border-color: rgba(255,255,255,.32);
  box-shadow: 0 0 0 4px rgba(42,125,225,.2);
}

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:10px 16px; border-radius:999px; font-weight:700; color:#fff; cursor:pointer;
  background: linear-gradient(90deg, var(--accent2), var(--accent));
  border:1px solid rgba(255,255,255,.22);
  box-shadow: var(--shadow-1);
  transition: transform var(--t-fast), filter var(--t-fast);
}
.btn:hover{
  transform: translateY(-1px) scale(1.02);
  filter: brightness(1.05);
}
.btn:disabled{ opacity:.6; cursor:not-allowed; }

.note{ font-size:.92rem; color:var(--muted); }
.status{
  margin-top:6px; padding:10px 12px; border-radius:12px;
  background: linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.03));
  border:1px dashed rgba(255,255,255,.22); color:var(--muted);
}
.status.ok{
  background: linear-gradient(180deg, rgba(25,210,124,.16), rgba(25,210,124,.08));
  color:#0b301f; /* lisible aussi en light */
  border-color: rgba(25,210,124,.35);
}
:root[data-theme="dark"] .status.ok{
  color:#c8ffe6;
}
.status.err{
  background: linear-gradient(180deg, rgba(255,75,92,.18), rgba(255,75,92,.08));
  color:#3b1519;
  border-color: rgba(255,75,92,.38);
}
:root[data-theme="dark"] .status.err{
  color:#ffd3d7;
}
.status.load{
  background: linear-gradient(180deg, rgba(42,125,225,.18), rgba(42,125,225,.08));
  color:#162447;
  border-color: rgba(42,125,225,.38);
}
:root[data-theme="dark"] .status.load{
  color:#cfe0ff;
}

/* -------------------- Catégories -------------------- */
fieldset.cats{
  border:1px solid var(--glass-stroke);
  border-radius:14px; padding:12px;
  background: var(--glass-bg);
  -webkit-backdrop-filter: blur(10px) saturate(130%);
  backdrop-filter: blur(10px) saturate(130%);
}
fieldset.cats legend{
  padding:0 6px; color:var(--muted); font-size:.95rem;
}
.chip-list{
  display:flex; flex-wrap:wrap; gap:8px; margin-top:8px;
}
.chip{
  appearance:none; cursor:pointer; user-select:none;
  border:1px solid rgba(255,255,255,.20);
  background: linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,.03));
  color:var(--fg);
  padding:8px 12px; border-radius:999px;
  transition: transform var(--t-fast), border-color var(--t-fast), box-shadow var(--t-fast);
  -webkit-backdrop-filter: blur(8px) saturate(130%);
  backdrop-filter: blur(8px) saturate(130%);
}
.chip:hover{
  transform: translateY(-1px);
  border-color: rgba(255,255,255,.34);
}
.chip.selected{
  border-color: transparent;
  background: linear-gradient(180deg, rgba(25,210,124,.24), rgba(25,210,124,.10));
  box-shadow: 0 6px 16px rgba(25,210,124,.28);
}

/* -------------------- Recherche -------------------- */
#search .card{ padding:16px; }
#searchInput{
  width:100%; padding:12px 14px; border-radius:12px; color:var(--fg);
  border:1px solid rgba(255,255,255,.18);
  background: linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,.03));
  -webkit-backdrop-filter: blur(10px) saturate(130%);
  backdrop-filter: blur(10px) saturate(130%);
}
#searchInput::placeholder{ color:#a6adba; }

/* -------------------- À la une -------------------- */
#featured .featured-card{
  background: var(--glass-bg);
  -webkit-backdrop-filter: saturate(var(--glass-sat)) blur(var(--glass-blur));
  backdrop-filter: saturate(var(--glass-sat)) blur(var(--glass-blur));
  border:1px solid var(--glass-stroke);
  border-radius: var(--radius-lg);
  padding:20px;
  box-shadow: var(--shadow-2);
}
#featured h4{
  font-size:1.28rem; margin:0 0 8px;
}
#featured .meta{
  margin:6px 0 12px; font-size:.96rem; color:var(--muted);
}
#featured .player{
  width:100%; aspect-ratio:16/9; border-radius:14px; background:#000;
  border:1px solid rgba(255,255,255,.14);
  box-shadow: var(--inner-1);
}

/* Wrapper À la une + playlist */
.featured-wrap{
  display:grid;
  grid-template-columns: 1fr minmax(260px, 330px);
  gap:18px;
  align-items:start;
}
@media(max-width:920px){
  .featured-wrap{ grid-template-columns: 1fr; }
}

.swipe-hint{
  font-size:.9rem; opacity:.8; margin-top:6px;
}

/* ✅ PATCH À LA UNE FULLSCREEN (sans changer ton design) */
#featured .featured-card{
  /* garde ton style, mais empêche l’écrasement */
  display:flex;
  flex-direction:column;
  min-height: min(86vh, 920px);
}

/* La vidéo prend une vraie hauteur “plein écran” */
#featured .featured-card .player{
  /* on neutralise l'aspect-ratio pour pouvoir prendre la hauteur */
  aspect-ratio: auto;
  flex: 1 1 auto;

  /* hauteur type plein écran (desktop) */
  height: clamp(280px, 70vh, 78vh);

  /* pour éviter le “noir” visuel si le conteneur avait 0px */
  display:block;
  background:#000;

  /* si tu veux éviter de couper l’image : contain
     si tu veux remplir en coupant un peu : cover */
  object-fit: contain;
}

/* Mobile : encore plus “plein écran” */
@media (max-width: 720px){
  #featured .featured-card{
    min-height: 92vh;
    padding: 16px;
  }
  #featured .featured-card .player{
    height: clamp(260px, 74vh, 84vh);
  }
}

/* -------------------- Grille vidéos -------------------- */
#feed .grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: var(--gap);
  align-items:start;
}
#feed .empty{
  text-align:center; color:var(--muted); padding:24px 12px;
}
#feed .empty.hidden{ display:none; }

.video-card{
  background: var(--glass-bg);
  -webkit-backdrop-filter: saturate(var(--glass-sat)) blur(var(--glass-blur));
  backdrop-filter: saturate(var(--glass-sat)) blur(var(--glass-blur));
  border:1px solid var(--glass-stroke);
  border-radius: var(--radius);
  box-shadow: var(--shadow-1);
  padding:12px;
  transition: transform var(--t-fast), box-shadow var(--t-fast);
  overflow:hidden;
}
.video-card:hover{
  transform: translateY(-2px);
  box-shadow: 0 18px 40px rgba(0,0,0,.45);
}
.video-card .title{
  margin:0; font-size:1rem; line-height:1.25;
}
.video-card .meta{
  font-size:.86rem; color:var(--muted);
  display:flex; flex-wrap:wrap; align-items:center; gap:6px;
}
.video-card .meta .sep{ opacity:.6; }
.video-card .meta .views{ white-space:nowrap; }

.video-card .player{
  width:100%; aspect-ratio:16/9; object-fit:cover;
  border-radius:12px; background:#000;
  border:1px solid rgba(255,255,255,.14);
  box-shadow: var(--inner-1);
  margin-top:8px;
}

/* Badges catégories */
.video-card .badges{
  display:flex; flex-wrap:wrap; gap:6px; margin-top:10px;
}
.video-card .badge{
  font-size:.75rem; padding:4px 10px;
  border-radius:999px; white-space:nowrap;
  border:1px solid rgba(255,255,255,.18);
  background: linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,.03));
}

/* -------------------- Tag cloud & filtres (si présents) -------------------- */
#tagCloud{
  display:flex; flex-wrap:wrap; gap:8px;
  margin:10px 0;
}
#tagCloud .tag{
  appearance:none; cursor:pointer;
  border-radius:999px;
  padding:4px 10px;
  border:1px solid rgba(255,255,255,.22);
  background: linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,.03));
  color:var(--fg);
  -webkit-backdrop-filter: blur(8px) saturate(130%);
  backdrop-filter: blur(8px) saturate(130%);
  transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}
#tagCloud .tag:hover{
  transform: translateY(-1px);
  border-color: rgba(255,255,255,.34);
}
#tagCloud .tag.on{
  border-color: transparent;
  background: linear-gradient(180deg, rgba(25,210,124,.24), rgba(25,210,124,.10));
  box-shadow: 0 6px 16px rgba(25,210,124,.28);
}

#activeFilters{
  display:flex; flex-wrap:wrap; gap:8px;
  margin:10px 0 0;
}
#activeFilters.hidden{ display:none; }

.filter-chip{
  display:inline-flex; align-items:center; gap:6px;
  padding:4px 10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.22);
  background: linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,.03));
}
.filter-chip .x{
  cursor:pointer;
  width:20px; height:20px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.22);
  background:transparent;
}
.btn-clear{
  margin-left:auto;
  appearance:none; cursor:pointer;
  border-radius:999px;
  padding:4px 10px;
  border:1px solid rgba(255,255,255,.22);
  background: linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,.03));
}

/* -------------------- Légal & Footer -------------------- */
.legal p{ color:var(--muted); }

.footer{
  border-top:1px solid rgba(255,255,255,.14);
  padding:22px 0; color:var(--muted); text-align:center;
  background: linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,.00));
}

/* -------------------- Modales (dialog) -------------------- */
dialog{
  border:none; padding:0; width:min(880px,92vw);
  color:var(--fg); border-radius: var(--radius-lg);
  background: linear-gradient(180deg, rgba(255,255,255,.14), rgba(255,255,255,.06));
  -webkit-backdrop-filter: saturate(160%) blur(24px);
  backdrop-filter: saturate(160%) blur(24px);
  border:1px solid rgba(255,255,255,.20);
  box-shadow: var(--shadow-2);
}
dialog::backdrop{
  background: rgba(0,0,0,.55);
  -webkit-backdrop-filter: blur(2px);
  backdrop-filter: blur(2px);
}
dialog article{
  display:flex; flex-direction:column; max-height:80vh;
}
dialog header{
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 18px; border-bottom:1px solid rgba(255,255,255,.16);
}
dialog .x{
  width:36px; height:36px; cursor:pointer; border-radius:10px;
  border:1px solid rgba(255,255,255,.22);
  background: linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,.04));
  color:#e8eaf1;
}
dialog .scroll{
  padding:16px 18px; overflow:auto;
}
dialog footer{
  padding:12px 18px 18px; display:flex; justify-content:flex-end;
}

/* -------------------- Accessibilité / Fallback -------------------- */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){
  .glass, .card, #hero .overlay, dialog,
  fieldset.cats, #searchInput, .chip,
  .video-card, .video-card .badge,
  .featured-card, .playlist-panel,
  .theme-toggle, .lang-toggle{
    background: rgba(20,22,28,.92) !important;
  }
}

/* iOS fix : pas d’attachment fixed sur fonds d’images custom */
.parallax{ background-attachment: scroll !important; }

/* -------------------- Responsive -------------------- */
@media (max-width: 720px){
  .band{ padding: 36px 0; }
  #hero{ min-height:56vh; }
}

/* -------------------- Motion Safe -------------------- */
@media (prefers-reduced-motion: reduce){
  *{ animation:none !important; transition:none !important; }
  body::after{ opacity:.35; filter: blur(40px); }
}

/* -------------------- Partage -------------------- */
.sharebar{
  display:flex; flex-wrap:wrap; gap:8px; margin-top:10px;
}
.sharebtn{
  appearance:none; cursor:pointer; user-select:none;
  border:1px solid rgba(255,255,255,.22);
  background: linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,.03));
  color:var(--fg); padding:8px 12px; border-radius:999px; font-weight:600;
  -webkit-backdrop-filter: blur(8px) saturate(130%);
  backdrop-filter: blur(8px) saturate(130%);
  transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease;
  text-decoration:none; display:inline-flex; align-items:center; gap:6px;
}
.sharebtn:hover{
  transform: translateY(-1px);
  border-color: rgba(255,255,255,.34);
}
.sharebtn.ghost{ opacity:.9; }

/* Boutons d’actions sous les cartes */
.shareactions{
  margin-top:8px; display:flex; gap:8px; flex-wrap:wrap;
}

/* Toast copié */
.toastmm{
  position: fixed; left: 50%; bottom: 22px; transform: translateX(-50%) translateY(16px);
  background: rgba(20,22,28,.9); color:#fff; padding:10px 14px; border-radius:12px;
  border:1px solid rgba(255,255,255,.18);
  opacity:0; pointer-events:none; transition: opacity .18s ease, transform .18s ease;
  box-shadow: 0 10px 28px rgba(0,0,0,.35);
  z-index: 9999;
}
.toastmm.on{
  opacity:1; transform: translateX(-50%) translateY(0);
}

/* Masquer la taille et le séparateur "•" partout */
.size, .sep { display: none !important; }

/* Masquer la 2e ligne "meta" (le sous-titre) qui peut contenir le nom de fichier */
#featured .featured-card > .meta + .meta { display: none !important; }   /* bloc À la une */
.video-card > .meta:nth-of-type(2) { display: none !important; }         /* cartes du feed */

/* Si un jour tu ajoutes une classe .original_name, on la cache aussi */
.original_name { display: none !important; }

/* -------------------- Logo & Brand (Liquid Glass) -------------------- */
.brand{
  position: fixed; top: 14px; left: 14px; z-index: 999;
  display: inline-flex; align-items: center; gap: 10px;
  padding: 8px 12px; border-radius: 999px; text-decoration: none;
  color: var(--fg);
  background: var(--glass-bg);
  -webkit-backdrop-filter: saturate(var(--glass-sat)) blur(var(--glass-blur));
  backdrop-filter: saturate(var(--glass-sat)) blur(var(--glass-blur));
  border: 1px solid var(--glass-stroke);
  box-shadow: var(--shadow-1);
  transition: transform var(--t-fast), filter var(--t-fast), box-shadow var(--t-fast);
}
.brand:hover{
  transform: translateY(-1px); filter: brightness(1.05);
}
.brand img{
  display:block; width:28px; height:28px; border-radius: 8px;
}
.brand span{
  font-weight: 700; letter-spacing: .2px;
}

/* Logo dans le hero */
.logo-hero{
  display:block;
  width:72px; height:72px; margin: 0 auto 10px;
  border-radius: 16px;
  background: rgba(255,255,255,.06);
  padding: 6px;
  -webkit-backdrop-filter: saturate(140%) blur(14px);
  backdrop-filter: saturate(140%) blur(14px);
  border: 1px solid rgba(255,255,255,.18);
  box-shadow: var(--shadow-1);
}

/* -------------------- Bouton mode jour/nuit -------------------- */
.theme-toggle{
  position: fixed;
  top: 14px;
  right: 20px; /* près du bord droit */
  z-index: 999;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 999px;
  border: 1px solid var(--glass-stroke);
  background: var(--glass-bg);
  -webkit-backdrop-filter: saturate(var(--glass-sat)) blur(var(--glass-blur));
  backdrop-filter: saturate(var(--glass-sat)) blur(var(--glass-blur));
  box-shadow: var(--shadow-1);
  cursor: pointer;
  transition: transform var(--t-fast), filter var(--t-fast), box-shadow var(--t-fast);
}
.theme-toggle .icon{
  font-size: 0.95rem;
}
.theme-toggle:hover{
  transform: translateY(-1px);
  filter: brightness(1.05);
}

/* -------------------- Bouton langue (drapeau, discret) -------------------- */
.lang-toggle{
  position: fixed;
  top: 14px;
  right: 60px; /* à gauche du bouton thème */
  z-index: 999;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 999px;
  border: 1px solid var(--glass-stroke);
  background: var(--glass-bg);
  -webkit-backdrop-filter: saturate(var(--glass-sat)) blur(var(--glass-blur));
  backdrop-filter: saturate(var(--glass-sat)) blur(var(--glass-blur));
  box-shadow: var(--shadow-1);
  cursor: pointer;
  text-decoration: none;
}
.lang-toggle img{
  width: 16px;
  height: auto;
  border-radius:3px;
  display:block;
}

/* -------------------- Playlist panel -------------------- */
.playlist-panel{
  background: var(--glass-bg);
  -webkit-backdrop-filter: saturate(140%) blur(22px);
  backdrop-filter: saturate(140%) blur(22px);
  border:1px solid var(--glass-stroke);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-1);
  padding:16px;
}
.playlist-panel h4{ margin:0 0 10px; }

.pl-actions{
  display:flex; gap:8px; flex-wrap:wrap; margin-bottom:10px;
}
.btn.small{
  padding:6px 10px; border-radius:999px; color:#fff; cursor:pointer;
  background: linear-gradient(90deg, var(--accent2), var(--accent));
  border:1px solid rgba(255,255,255,.22);
}
.pl-list{
  list-style: none; margin:0; padding:0;
  display:flex; flex-direction:column; gap:8px;
}
.pl-item{
  display:flex; align-items:center; justify-content:space-between; gap:6px;
  padding:8px 10px; border-radius:12px;
  border:1px solid rgba(255,255,255,.18);
  background: linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,.03));
}
.pl-item.drag{ opacity:.7; }
.pl-title{ font-size:.92rem; }
.pl-row{ display:flex; gap:6px; }
.mini{
  padding:5px 8px; border-radius:10px;
  border:1px solid rgba(255,255,255,.22);
}
.mini.danger{
  background: linear-gradient(180deg, rgba(255,80,80,.2), rgba(255,80,80,.08));
}

/* -------------------- Mobile ajustements -------------------- */
@media (max-width: 520px){
  .brand{
    padding: 7px 10px; gap:8px;
  }
  .brand span{ display:none; } /* on garde uniquement l’icône sur mobile étroit */
  .logo-hero{
    width:64px; height:64px; margin-bottom: 8px;
  }
  .theme-toggle{
    top: 10px;
    right: 14px;
    width: 30px;
    height: 30px;
  }
  .theme-toggle .icon{
    font-size: 0.9rem;
  }
  .lang-toggle{
    top: 10px;
    right: 50px;
    width: 26px;
    height: 26px;
  }
  .lang-toggle img{
    width: 14px;
  }
}

/* Playlist panel ordre sur mobile */
@media(max-width:920px){
  .playlist-panel{ order:2; }
}

/* Bloc mini vidéo de vérification */
.proof-block{
  margin-top: 8px;
  padding: 12px;
  border-radius: 14px;
  border: 1px dashed rgba(255,255,255,.25);
  background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.02));
}
.proof-block h4{
  margin: 0 0 6px;
  font-size: 0.98rem;
}
.proof-controls{
  display: grid;
  gap: 8px;
  margin-top: 6px;
}
.proof-video{
  width: 100%;
  max-height: 220px;
  border-radius: 12px;
  background: #000;
  border: 1px solid rgba(255,255,255,.2);
}
.proof-buttons{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.proof-buttons .btn.small{
  padding: 6px 10px;
}

/* -------------------- Drop surprise -------------------- */
fieldset.drop{
  border:1px solid var(--glass-stroke);
  border-radius:14px;
  padding:12px;
  background: var(--glass-bg);
  -webkit-backdrop-filter: blur(10px) saturate(130%);
  backdrop-filter: blur(10px) saturate(130%);
}
fieldset.drop legend{
  padding:0 6px;
  color:var(--muted);
  font-size:.95rem;
}
.drop-row{
  display:flex;
  gap:10px;
  align-items:flex-start;
  margin:8px 0 10px;
}
#dropGoal:disabled{
  opacity:.6;
  cursor:not-allowed;
}

.drop-card{
  background: var(--glass-bg);
  -webkit-backdrop-filter: saturate(var(--glass-sat)) blur(var(--glass-blur));
  backdrop-filter: saturate(var(--glass-sat)) blur(var(--glass-blur));
  border:1px solid var(--glass-stroke);
  border-radius: var(--radius);
  box-shadow: var(--shadow-1);
  padding:12px;
  overflow:hidden;
}
.drop-title{ margin:0; font-size:1rem; line-height:1.25; }
.drop-meta{ margin-top:6px; font-size:.86rem; color:var(--muted); display:flex; flex-wrap:wrap; gap:8px; }
.drop-progress{
  margin-top:10px;
  height:12px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.18);
  background: linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.03));
  overflow:hidden;
}
.drop-progress > i{
  display:block;
  height:100%;
  width:0%;
  background: linear-gradient(90deg, var(--accent2), var(--accent));
}
.drop-actions{
  margin-top:10px;
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
}
.drop-count{
  font-weight:700;
}

/* HERO — 2 boutons */
.cta-row{
  display:flex;
  gap:12px;
  justify-content:center;
  flex-wrap:wrap;
  margin-top:16px;
}

/* Variante “ghost” premium */
.cta.cta-ghost{
  background: linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,.03));
  color: var(--fg);
  border: 1px solid rgba(255,255,255,.22);
  box-shadow: 0 10px 28px rgba(0,0,0,.18);
}

:root[data-theme="light"] .cta.cta-ghost{
  box-shadow: 0 10px 28px rgba(10,25,60,.10);
}