/* Reproductor PRO /tienda - una sola barra horizontal */
.bottom-demo-player{
  left:0 !important;
  right:0 !important;
  bottom:0 !important;
  width:auto !important;
  height:82px !important;
  min-height:82px !important;
  max-height:82px !important;
  padding:10px 42px 10px 10px !important;
  border-radius:0 !important;
  background:rgba(2,4,7,.985) !important;
  border:0 !important;
  border-top:1px solid rgba(255,255,255,.10) !important;
  box-shadow:0 -10px 34px rgba(0,0,0,.32) !important;
  overflow:hidden !important;
  grid-template-columns:58px minmax(150px,235px) minmax(140px,1fr) 38px 38px !important;
  grid-template-rows:1fr !important;
  column-gap:10px !important;
  align-items:center !important;
}
.bottom-demo-player:not(.show){display:none !important;}
.bottom-demo-player.show{display:grid !important;}

.bottom-demo-info{display:contents !important;}
.bottom-demo-header,.bottom-demo-header-controls{display:contents !important;}

.bottom-demo-cover{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
  position:static !important;
  grid-column:1 !important;
  grid-row:1 !important;
  width:58px !important;
  height:58px !important;
  min-width:58px !important;
  min-height:58px !important;
  border-radius:8px !important;
  overflow:hidden !important;
  background:#111 !important;
  align-self:center !important;
}
.bottom-demo-cover img{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
}

.bottom-demo-meta{
  display:flex !important;
  grid-column:2 !important;
  grid-row:1 !important;
  min-width:0 !important;
  flex-direction:column !important;
  justify-content:center !important;
  gap:4px !important;
  overflow:hidden !important;
}
.bottom-demo-title{
  display:block !important;
  padding:0 !important;
  margin:0 !important;
  color:#fff !important;
  font-size:15px !important;
  line-height:1.1 !important;
  font-weight:800 !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}
.bottom-demo-artist{
  display:block !important;
  margin:0 !important;
  padding:0 !important;
  color:rgba(255,255,255,.72) !important;
  font-size:12px !important;
  line-height:1.1 !important;
  font-weight:600 !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}
.bottom-demo-artist .artist-secret-link{color:inherit;text-decoration:none;cursor:pointer;}
.bottom-demo-artist .artist-secret-link:hover,
.bottom-demo-artist .artist-secret-link:focus-visible{color:#7de8ff;outline:none;}

.bottom-demo-pro{
  display:block !important;
  grid-column:3 !important;
  grid-row:1 !important;
  width:100% !important;
  min-width:0 !important;
  margin:0 !important;
  align-self:center !important;
}
.bottom-demo-controls-row{display:block !important;position:static !important;}
.bottom-demo-wave-wrap{display:block !important;width:100% !important;min-width:0 !important;}
.bottom-demo-wave{
  display:block !important;
  width:100% !important;
  height:48px !important;
  border-radius:2px !important;
  background:#020305 !important;
  overflow:hidden !important;
  position:relative !important;
  cursor:pointer !important;
  outline:none !important;
  box-shadow:none !important;
}

/* Feedback inmediato mientras se preparan los peaks de una pista sin caché. */
.bottom-demo-wave.is-loading::before{
  content:"" !important;
  position:absolute !important;
  left:50% !important;
  top:50% !important;
  width:12px !important;
  height:12px !important;
  margin-left:-52px !important;
  margin-top:-6px !important;
  border:2px solid rgba(255,255,255,.18) !important;
  border-top-color:rgba(255,255,255,.86) !important;
  border-radius:50% !important;
  background:transparent !important;
  transform:none !important;
  animation:bottomDemoWaveSpin .72s linear infinite !important;
  z-index:3 !important;
  pointer-events:none !important;
}
.bottom-demo-wave.is-loading::after{
  content:"Cargando demo…" !important;
  display:block !important;
  position:absolute !important;
  left:50% !important;
  top:50% !important;
  transform:translate(-30px,-50%) !important;
  color:rgba(255,255,255,.72) !important;
  font-size:10px !important;
  line-height:1 !important;
  font-weight:700 !important;
  letter-spacing:.15px !important;
  white-space:nowrap !important;
  z-index:3 !important;
  pointer-events:none !important;
  animation:bottomDemoWavePulse 1.15s ease-in-out infinite !important;
}
.bottom-demo-wave.is-error::before{
  content:"" !important;
  position:absolute !important;
  left:0 !important;
  right:0 !important;
  top:50% !important;
  height:1px !important;
  background:rgba(255,255,255,.10) !important;
  transform:translateY(-50%) !important;
  z-index:0 !important;
}
.bottom-demo-wave.is-error::after{display:none !important;content:none !important;}
@keyframes bottomDemoWaveSpin{to{transform:rotate(360deg);}}
@keyframes bottomDemoWavePulse{0%,100%{opacity:.62;}50%{opacity:1;}}

.bottom-demo-wave:focus-visible{box-shadow:0 0 0 2px rgba(121,231,255,.25) !important;}
.bottom-demo-wave wave{background:#020305 !important;}
.bottom-demo-time-row{
  display:flex !important;
  justify-content:space-between !important;
  gap:10px !important;
  margin-top:2px !important;
  color:rgba(255,255,255,.50) !important;
  font-size:9px !important;
  line-height:1 !important;
  font-variant-numeric:tabular-nums !important;
}

.bottom-demo-control{
  position:static !important;
  width:38px !important;
  height:38px !important;
  border-radius:999px !important;
  border:0 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  align-self:center !important;
  cursor:pointer !important;
  z-index:5 !important;
  transition:transform .16s ease,opacity .16s ease,background .16s ease !important;
}
.bottom-demo-control.main{
  grid-column:4 !important;
  grid-row:1 !important;
  background:#fff !important;
  color:#05080d !important;
}
.bottom-demo-control.ghost{
  grid-column:5 !important;
  grid-row:1 !important;
  background:rgba(255,255,255,.07) !important;
  color:#fff !important;
  border:1px solid rgba(255,255,255,.08) !important;
}
.bottom-demo-control:hover{transform:translateY(-1px);}
.bottom-demo-control:active{transform:scale(.97);}

.bottom-demo-player audio,
.bottom-demo-player iframe{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  opacity:0 !important;
  pointer-events:none !important;
  left:-9999px !important;
}
.bottom-demo-close{
  position:absolute !important;
  right:4px !important;
  top:4px !important;
  width:22px !important;
  height:22px !important;
  border-radius:999px !important;
  background:rgba(255,255,255,.055) !important;
  color:rgba(255,255,255,.72) !important;
  border:1px solid rgba(255,255,255,.06) !important;
  z-index:8 !important;
  font-size:14px !important;
}
.demo-play-hint{display:none !important;}

@media (max-width:700px){
  .bottom-demo-player{
    height:70px !important;
    min-height:70px !important;
    max-height:70px !important;
    padding:8px 28px 8px 8px !important;
    grid-template-columns:46px minmax(78px,115px) minmax(70px,1fr) 32px 32px !important;
    column-gap:6px !important;
  }
  .bottom-demo-cover{width:46px !important;height:46px !important;min-width:46px !important;min-height:46px !important;border-radius:7px !important;}
  .bottom-demo-title{font-size:12px !important;}
  .bottom-demo-artist{font-size:10px !important;}
  .bottom-demo-control{width:32px !important;height:32px !important;}
  .bottom-demo-wave{height:38px !important;}
  .bottom-demo-time-row{font-size:8px !important;}
  .bottom-demo-close{right:3px !important;top:3px !important;width:20px !important;height:20px !important;font-size:12px !important;}
  .bottom-demo-wave.is-loading::before{margin-left:-46px !important;}
  .bottom-demo-wave.is-loading::after{font-size:9px !important;transform:translate(-24px,-50%) !important;}
}

@media (max-width:480px){
  .bottom-demo-player{
    grid-template-columns:42px minmax(60px,90px) minmax(50px,1fr) 30px 30px !important;
    column-gap:4px !important;
  }
  .bottom-demo-cover{width:42px !important;height:42px !important;min-width:42px !important;min-height:42px !important;}
  .bottom-demo-control{width:30px !important;height:30px !important;font-size:11px !important;}
  .bottom-demo-wave{height:34px !important;}
  .bottom-demo-wave.is-loading::before{width:10px !important;height:10px !important;margin-left:-39px !important;margin-top:-5px !important;}
  .bottom-demo-wave.is-loading::after{font-size:8px !important;transform:translate(-20px,-50%) !important;}
}