/* ===== Base ===== */
* { box-sizing: border-box; }

:root{
  --bg: #000;
  --text: #f5f5f5;
  --muted: rgba(255,255,255,0.18);
  --accent: #0895d7;
  --danger: #e80202;
}

body, html {
  margin: 0;
  padding: 0;
  height: 100%;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, "Montserrat", sans-serif;
  display: flex;
  flex-direction: column;
  background: radial-gradient(1200px 800px at 50% 0%, rgba(8,149,215,0.12), transparent 55%),
              radial-gradient(900px 600px at 10% 20%, rgba(232,2,2,0.10), transparent 55%),
              var(--bg);
  color: var(--text);
}

/* Contenedor principal */
.container-fluid {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 30px 0;
}

/* Logo */
.logo {
  max-width: 400px;
  width: auto;
  height: auto;
  filter: drop-shadow(0 12px 30px rgba(0,0,0,0.55));
}

/* ===== SVG base ===== */
.icon { fill: currentColor; display: inline-block; vertical-align: middle; }

/* ===== Player button ultra moderno ===== */
.btn-player{
  position: relative;
  margin-top: 26px;
  width: 84px;
  height: 84px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.18);
  color: #fff;

  background:
    radial-gradient(circle at 20% 20%, #ff5a5a 0%, var(--danger) 55%, #8c0000 100%);

  display: grid;
  place-items: center;

  cursor: pointer;
  outline: none;

  box-shadow:
    0 18px 60px rgba(232,2,2,.35),
    inset 0 1px 0 rgba(255,255,255,.20);

  transform: translateZ(0);
  transition: transform .15s ease, box-shadow .2s ease, filter .2s ease;
}

.btn-player .icon-playstop{
  width: 34px;
  height: 34px;
  filter: drop-shadow(0 8px 16px rgba(0,0,0,.40));
  transition: transform .18s ease;
}

@media (hover:hover){
  .btn-player:hover{
    transform: translateY(-2px);
    filter: brightness(1.07);
    box-shadow:
      0 26px 80px rgba(232,2,2,.42),
      inset 0 1px 0 rgba(255,255,255,.24);
  }
}
.btn-player:active{
  transform: translateY(0) scale(.985);
}

/* Cuando está reproduciendo: cambia glow a azul */
.btn-player[aria-pressed="true"]{
  box-shadow:
    0 26px 90px rgba(8,149,215,.35),
    0 0 0 4px rgba(8,149,215,.14),
    inset 0 1px 0 rgba(255,255,255,.20);
}
.btn-player[aria-pressed="true"] .icon-playstop{ transform: scale(1.06); }

/* Play/Stop por aria-pressed */
.icon-playstop .icon-stop { display: none; }
#player[aria-pressed="true"] .icon-playstop .icon-play { display: none; }
#player[aria-pressed="true"] .icon-playstop .icon-stop { display: block; }

/* Ripple */
.btn-player{ overflow: hidden; }
.btn-player .ripple{
  position: absolute;
  width: 10px;
  height: 10px;
  border-radius: 999px;
  transform: translate(-50%, -50%);
  background: rgba(255,255,255,0.35);
  animation: ripple .6s ease-out forwards;
  pointer-events: none;
}
@keyframes ripple{
  from { opacity: .55; transform: translate(-50%, -50%) scale(1); }
  to   { opacity: 0;   transform: translate(-50%, -50%) scale(18); }
}

/* ===== Calidad ===== */
.player-quality-container { display:flex; flex-direction:column; align-items:center; }
.quality-wrapper { margin-top: 12px; display:flex; align-items:center; gap:8px; }

.quality-dropdown { position: relative; display: inline-block; }

.quality-dropdown select {
  appearance: none;
  -webkit-appearance: none;
  background: rgba(255,255,255,0.08);
  color: #fff;
  border: 1px solid rgba(255,255,255,0.12);
  padding: 10px 12px;
  padding-right: 34px;
  border-radius: 12px;
  font-size: 14px;
  cursor: pointer;
  backdrop-filter: blur(8px);
  box-shadow: 0 10px 30px rgba(0,0,0,.25);
}
.quality-dropdown .dropdown-icon{
  position:absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events:none;
  color:#fff;
  opacity:.9;
}

/* ===== Volumen ultra moderno ===== */
.volume-control-container {
  display: flex;
  align-items: center;
  margin-top: 22px;
  gap: 14px;
}

.volume-button{
  width: 42px;
  height: 42px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(255,255,255,0.06);
  color: #f5f5f5;
  display: grid;
  place-items: center;
  cursor: pointer;
  backdrop-filter: blur(8px);
  transition: transform .15s ease, background .15s ease, border-color .15s ease;
}
@media (hover:hover){
  .volume-button:hover{
    transform: translateY(-1px);
    background: rgba(255,255,255,0.10);
    border-color: rgba(255,255,255,0.18);
  }
}
.volume-button:active{ transform: translateY(0) scale(.98); }

#volumeControl{
  appearance: none;
  -webkit-appearance: none;
  width: min(320px, 70vw);
  height: 10px;

  /* JS actualiza porcentaje real */
  background: linear-gradient(to right, var(--accent) 80%, rgba(255,255,255,0.18) 80%);

  border-radius: 999px;
  outline: none;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.10);
}

/* thumb iOS/Chrome */
#volumeControl::-webkit-slider-thumb{
  -webkit-appearance: none;
  width: 18px;
  height: 18px;
  border-radius: 999px;
  background: #fff;
  border: 3px solid rgba(8,149,215,0.75);
  box-shadow: 0 10px 30px rgba(8,149,215,0.25);
  cursor: pointer;
}

/* Firefox */
#volumeControl::-moz-range-thumb{
  width: 18px;
  height: 18px;
  border-radius: 999px;
  background: #fff;
  border: 3px solid rgba(8,149,215,0.75);
  box-shadow: 0 10px 30px rgba(8,149,215,0.25);
  cursor: pointer;
}

/* ===== Redes (glass + lift) ===== */
.redes ul{
  list-style:none;
  display:flex;
  margin-top: 34px;
  justify-content:center;
  align-items:center;
  gap: 14px;
  padding:0;
}

.redes a.social{
  width: 48px;
  height: 48px;
  display:inline-flex;
  justify-content:center;
  align-items:center;
  border-radius: 16px;
  color: #f5f5f5;
  text-decoration:none;

  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.12);
  backdrop-filter: blur(10px);

  box-shadow: 0 12px 30px rgba(0,0,0,.30);
  transition: transform .15s ease, background .15s ease, border-color .15s ease, box-shadow .15s ease;
}
@media (hover:hover){
  .redes a.social:hover{
    transform: translateY(-2px);
    background: rgba(255,255,255,0.11);
    border-color: rgba(255,255,255,0.20);
    box-shadow: 0 18px 44px rgba(0,0,0,.35);
  }
}
.redes a.social:active{ transform: translateY(0) scale(.985); }

/* ===== Instalación ===== */
.descargas{ margin-top: 20px; text-align:center; }

#downloadBtn{
  display:inline-flex;
  align-items:center;
  gap: 10px;
  padding: 10px 14px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(255,255,255,0.06);
  color: #fff;
  cursor:pointer;
  backdrop-filter: blur(10px);
  box-shadow: 0 12px 30px rgba(0,0,0,.28);
  transition: transform .15s ease, background .15s ease, border-color .15s ease, opacity .15s ease;
}
@media (hover:hover){
  #downloadBtn:hover{
    transform: translateY(-1px);
    background: rgba(255,255,255,0.10);
    border-color: rgba(255,255,255,0.20);
  }
}
#downloadBtn:active{ transform: translateY(0) scale(.99); }

.download-icon{ display:none; color: #f60004; }
#downloadBtn[data-platform="desktop"]  .download-icon--desktop { display:inline-block; }
#downloadBtn[data-platform="android"]  .download-icon--android { display:inline-block; }
#downloadBtn[data-platform="apple"]    .download-icon--apple   { display:inline-block; }
#downloadBtn[data-platform="windows"]  .download-icon--windows { display:inline-block; }
#downloadBtn:not([data-platform]) .download-icon--desktop { display:inline-block; }

.download-text{ font-size: 1rem; color: rgba(255,255,255,0.92); user-select:none; }

/* ===== Footer ===== */
#footer{
  background-color: transparent;
  color: rgba(231,231,231,0.95);
  text-align:center;
  padding: 20px 0;
  font-size: 15px;
  font-weight: 600;
  width: 100%;
  flex-shrink: 0;
}

/* ===== Banner instalación ===== */
#install-banner{
  display:none;
  position:fixed;
  bottom:0; left:0; right:0;
  background-color:#d50815 !important;
  color:#f3f3f3;
  padding:16px;
  text-align:center;
  z-index:1000;
  box-shadow: 0 -10px 30px rgba(0,0,0,0.45);
}
#install-banner p{ margin: 0; font-size: 14px; }
#install-button, #dismiss-button{
  background-color:#fff;
  color:#111;
  border:none;
  padding: 8px 16px;
  font-size: 12px;
  cursor:pointer;
  border-radius: 10px;
  margin: 10px 6px 0;
}

/* ===== Update popup ===== */
#updatePopup{
  display:none;
  position:fixed;
  bottom:20px;
  left:50%;
  transform: translateX(-50%);
  padding: 10px 14px;
  background: rgba(0,120,135,0.94);
  color:#fff;
  border-radius: 14px;
  box-shadow: 0 18px 60px rgba(0,0,0,0.35);
  z-index:1001;
  backdrop-filter: blur(10px);
}
#reloadButton{
  margin-left: 10px;
  background: rgba(255,255,255,0.18);
  color:#fff;
  border: 1px solid rgba(255,255,255,0.20);
  padding: 6px 10px;
  border-radius: 12px;
  cursor:pointer;
}
/* Centrado óptico: que NO se mueva al alternar Play/Stop */
.btn-player .icon-playstop .icon-play,
.btn-player .icon-playstop .icon-stop {
  transform: translateY(-3.5px);
  transform-origin: 50% 50%;
}