/* =========================================================
   Radio Djawoampo — player.css
   Lecteur audio global, fixé en bas de l'écran sur tout le site.
   - Desktop : barre complète (toutes les commandes)
   - Tablette : barre allégée
   - Mobile  : mini-lecteur + plein écran au toucher
   ========================================================= */
[hidden]{display:none!important}

.gplayer{
  position:fixed;left:0;right:0;bottom:0;z-index:700;
  background:linear-gradient(180deg,#10281a,#0a1b11);color:#fff;
  box-shadow:0 -6px 24px rgba(0,0,0,.25);
  padding-bottom:var(--safe-b);
}
.gplayer::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,var(--vert),var(--orange),var(--vert))}
body.admin-mode .gplayer{display:none}

.gp-bar{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,1.5fr) minmax(0,1fr);
  align-items:center;gap:1rem;height:var(--player-h);
  width:min(1400px,100%);margin:0 auto;padding:0 16px;
}

/* --- Infos du titre --- */
.gp-meta{display:flex;align-items:center;gap:.75rem;min-width:0;cursor:default}
.gp-cover{position:relative;width:54px;height:54px;border-radius:10px;flex-shrink:0;overflow:hidden;
  background:linear-gradient(135deg,var(--vert-fonce),var(--vert));display:flex;align-items:center;justify-content:center}
.gp-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.gp-cover img.is-logo{object-fit:contain;background:#fff;padding:2px}
.gp-cover-ico{width:26px;height:26px;opacity:.95}
.gp-eq{position:absolute;left:0;right:0;bottom:0;height:40%;display:none;gap:3px;align-items:flex-end;justify-content:center;padding-bottom:5px;background:linear-gradient(0deg,rgba(0,0,0,.55),transparent)}
.gp-eq i{width:4px;background:var(--orange);border-radius:2px;height:30%;animation:eq 1s ease-in-out infinite}
.gp-eq i:nth-child(2){animation-delay:.15s}.gp-eq i:nth-child(3){animation-delay:.3s}.gp-eq i:nth-child(4){animation-delay:.45s}
.gplayer.is-playing .gp-eq{display:flex}
.gp-text{display:flex;flex-direction:column;min-width:0;line-height:1.25}
.gp-badge{align-self:flex-start;font-size:.6rem;font-weight:800;letter-spacing:.05em;padding:.1rem .45rem;border-radius:4px;background:rgba(255,255,255,.14);margin-bottom:.2rem;white-space:nowrap}
.gp-badge.live{background:#dc2626}
.gp-badge.fallback{background:var(--orange)}
.gp-badge.media{background:var(--vert)}
.gp-text strong{font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gp-text span:not(.gp-badge){font-size:.76rem;color:#a9c9b5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* --- Commandes --- */
.gp-center{display:flex;flex-direction:column;align-items:center;gap:.2rem;min-width:0}
.gp-controls{display:flex;align-items:center;justify-content:center;gap:.3rem}
.gp-btn{position:relative;width:38px;height:38px;border-radius:50%;border:none;background:transparent;color:#d7e9de;display:inline-flex;align-items:center;justify-content:center;transition:background .15s,color .15s;flex-shrink:0}
.gp-btn .ico{width:22px;height:22px}
.gp-btn:hover:not(:disabled){background:rgba(255,255,255,.1);color:#fff}
.gp-btn:disabled{opacity:.3;cursor:default}
.gp-btn.on{color:var(--orange)}
.gp-btn.on::after{content:"";position:absolute;width:4px;height:4px;border-radius:50%;background:var(--orange);transform:translateY(15px)}
.gp-play{position:relative;width:48px;height:48px;border-radius:50%;border:none;background:var(--orange);color:#fff;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 4px 14px rgba(240,130,30,.4);transition:transform .12s,background .15s;margin:0 .2rem}
.gp-play:hover{background:#ff9535}
.gp-play:active{transform:scale(.93)}
.gp-play .ico{width:28px;height:28px}
.gp-spinner{position:absolute;inset:-3px;border-radius:50%;border:3px solid transparent;border-top-color:#fff;display:none;animation:spin .8s linear infinite}
.gplayer.is-loading .gp-spinner{display:block}
@keyframes spin{to{transform:rotate(360deg)}}

/* --- Barre de progression --- */
.gp-timeline{display:flex;align-items:center;gap:.55rem;width:100%;max-width:560px}
.gp-time{font-size:.7rem;color:#a9c9b5;font-variant-numeric:tabular-nums;min-width:36px;text-align:center;white-space:nowrap}
.gplayer.is-live .gp-time#gpCur{color:#ff8a8a;font-weight:800;min-width:auto}
.gp-timeline input[type=range],.gp-vol input[type=range]{
  -webkit-appearance:none;appearance:none;flex:1;height:5px;border-radius:5px;outline:none;cursor:pointer;
  background:linear-gradient(90deg,var(--orange) var(--p,0%),rgba(255,255,255,.2) var(--p,0%));
}
.gp-timeline input[type=range]:disabled{cursor:default;background:rgba(255,255,255,.15)}
.gplayer.is-live .gp-timeline input[type=range]:disabled{background:repeating-linear-gradient(90deg,rgba(220,38,38,.75) 0 6px,transparent 6px 10px)}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:#fff;border:none;box-shadow:0 1px 4px rgba(0,0,0,.4)}
input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:#fff;border:none}
.gp-timeline input:disabled::-webkit-slider-thumb{opacity:0}
.gp-timeline input:disabled::-moz-range-thumb{opacity:0}

/* --- Partie droite --- */
.gp-right{display:flex;align-items:center;justify-content:flex-end;gap:.35rem;min-width:0}
.gp-live{display:inline-flex;align-items:center;gap:.4rem;border:1.5px solid #ef4444;background:transparent;color:#fff;font-weight:800;font-size:.72rem;padding:.4rem .75rem;border-radius:50px;white-space:nowrap}
.gp-live .dot{background:#ef4444}
.gplayer.is-live .gp-live{background:#dc2626;border-color:#dc2626}
.gplayer.is-live .gp-live .dot{background:#fff;animation:livepulse 1.6s infinite}
.gp-vol{display:flex;align-items:center;gap:.2rem}
.gp-vol input{width:92px;flex:none}
.gp-expand{display:none}
.gp-mini-progress{display:none}
.gp-sheet-head{display:none}

/* --- File d'attente (popover au-dessus du lecteur) --- */
.gp-queue{position:absolute;right:16px;bottom:100%;width:min(380px,calc(100vw - 32px));max-height:min(60vh,480px);overflow-y:auto;
  background:#112a1c;border:1px solid rgba(255,255,255,.1);border-radius:14px;box-shadow:0 -10px 30px rgba(0,0,0,.35);margin-bottom:8px}
.gp-queue-head{display:flex;align-items:center;justify-content:space-between;padding:.6rem .6rem .6rem 1rem;border-bottom:1px solid rgba(255,255,255,.08);position:sticky;top:0;background:#112a1c;z-index:1}
.gp-queue ul{list-style:none;padding:.3rem}
.gp-queue li button{width:100%;display:flex;align-items:center;gap:.7rem;background:transparent;border:none;color:#e6f2ea;padding:.55rem .6rem;border-radius:10px;text-align:left}
.gp-queue li button:hover{background:rgba(255,255,255,.07)}
.gp-queue li.current button{background:rgba(240,130,30,.18)}
.gp-queue li.current .q-title{color:var(--orange)}
.gp-queue .q-num{width:32px;height:32px;border-radius:8px;background:rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;font-size:.78rem;font-weight:800;flex-shrink:0}
.gp-queue .q-num.live{background:#dc2626}
.gp-queue .q-txt{min-width:0;display:flex;flex-direction:column}
.gp-queue .q-title{font-size:.86rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gp-queue .q-sub{font-size:.72rem;color:#9fbfab;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gp-queue .q-empty{padding:1rem;font-size:.82rem;color:#9fbfab;text-align:center}
.gp-queue .q-sep{font-size:.66rem;text-transform:uppercase;letter-spacing:.06em;color:#7fa18c;padding:.6rem .6rem .2rem;font-weight:800}

/* ---------- Tablette ---------- */
@media (max-width:999px){
  .gp-bar{grid-template-columns:minmax(0,1fr) auto auto;gap:.8rem}
  .gp-opt{display:none}
  .gp-timeline{width:240px}
  .gp-vol input{display:none}
}

/* ---------- Mobile : mini-lecteur ---------- */
@media (max-width:699px){
  .gp-bar{grid-template-columns:minmax(0,1fr) auto auto;gap:.4rem;padding:0 10px 0 12px}
  .gp-meta{cursor:pointer}
  .gp-cover{width:44px;height:44px;border-radius:8px}
  .gp-cover-ico{width:22px;height:22px}
  .gp-text strong{font-size:.86rem}
  .gp-badge{font-size:.55rem;margin-bottom:.1rem}
  .gp-timeline,.gp-controls>.gp-btn{display:none}
  .gp-play{width:44px;height:44px;margin:0}
  .gp-play .ico{width:26px;height:26px}
  .gp-right>*{display:none}
  .gp-right>.gp-expand{display:inline-flex}
  .gp-mini-progress{display:block;position:absolute;left:0;right:0;top:0;height:3px;background:rgba(255,255,255,.12)}
  .gp-mini-progress span{display:block;height:100%;width:0;background:var(--orange);transition:width .3s linear}
  .gplayer.is-live .gp-mini-progress span{width:100%!important;background:#dc2626}
  .gplayer::before{display:none}
  .gp-queue{right:8px;left:8px;width:auto}

  /* ---- Plein écran ---- */
  .gplayer.expanded{top:0;z-index:1200;display:flex;flex-direction:column;overflow-y:auto;
    background:linear-gradient(180deg,#1b4d31 0%,#0d2417 55%,#08170e 100%)}
  .gplayer.expanded .gp-mini-progress{display:none}
  .gplayer.expanded .gp-sheet-head{display:flex;align-items:center;gap:.5rem;padding:calc(.6rem + env(safe-area-inset-top,0px)) .8rem .4rem;font-size:.8rem;font-weight:700;color:#cfe3d6;text-transform:uppercase;letter-spacing:.05em}
  .gplayer.expanded .gp-sheet-head span:first-of-type{flex:1;text-align:center}
  .gp-sheet-spacer{width:38px}
  .gplayer.expanded .gp-bar{display:flex;flex-direction:column;height:auto;gap:1.3rem;padding:1rem 22px 1.2rem;flex-shrink:0}
  .gplayer.expanded .gp-meta{flex-direction:column;text-align:center;gap:1rem;width:100%;cursor:default}
  .gplayer.expanded .gp-cover{width:min(66vw,280px);height:min(66vw,280px);border-radius:20px;box-shadow:0 18px 40px rgba(0,0,0,.4)}
  .gplayer.expanded .gp-cover-ico{width:38%;height:38%}
  .gplayer.expanded .gp-eq{height:30%}
  .gplayer.expanded .gp-eq i{width:7px}
  .gplayer.expanded .gp-text{align-items:center;width:100%}
  .gplayer.expanded .gp-badge{align-self:center;font-size:.66rem}
  .gplayer.expanded .gp-text strong{font-size:1.25rem;white-space:normal}
  .gplayer.expanded .gp-text span:not(.gp-badge){font-size:.88rem;white-space:normal}
  .gplayer.expanded .gp-center{width:100%;gap:.9rem;flex-direction:column-reverse}
  .gplayer.expanded .gp-timeline{display:flex;width:100%;max-width:none}
  .gplayer.expanded .gp-time{font-size:.78rem}
  .gplayer.expanded .gp-controls{width:100%;justify-content:space-between;gap:0}
  .gplayer.expanded .gp-controls>.gp-btn{display:inline-flex;width:44px;height:44px}
  .gplayer.expanded .gp-controls>.gp-btn .ico{width:26px;height:26px}
  .gplayer.expanded .gp-play{width:70px;height:70px}
  .gplayer.expanded .gp-play .ico{width:38px;height:38px}
  .gplayer.expanded .gp-right{width:100%;justify-content:space-between;gap:.8rem}
  .gplayer.expanded .gp-right>*{display:inline-flex}
  .gplayer.expanded .gp-right>.gp-expand,.gplayer.expanded .gp-right>#gpQueueBtn{display:none}
  .gplayer.expanded .gp-vol{flex:1}
  .gplayer.expanded .gp-vol input{display:block;flex:1;width:auto}
  .gplayer.expanded .gp-live{padding:.55rem 1rem;font-size:.8rem}
  .gplayer.expanded .gp-queue{display:block!important;position:static;width:auto;max-height:none;margin:0 12px calc(16px + var(--safe-b));background:rgba(255,255,255,.05);box-shadow:none;overflow:visible}
  .gplayer.expanded .gp-queue-head{background:#0d2417}
  .gplayer.expanded #gpQueueClose{display:none}
}


