body{
  margin:0;
  font-family:system-ui, Arial;
  background:#0b0b0b;
  color:#fff;
  -webkit-font-smoothing:antialiased;
}

/* =========================
   HEADER
========================= */

.app-header{
  padding:16px 10px;
  background:linear-gradient(90deg,#c8102e,#ffffff,#0033a0);
  position:sticky;
  top:0;
  z-index:100;
  box-shadow:0 6px 20px rgba(0,0,0,0.3);
}

.header-inner{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  max-width:1100px;
  margin:auto;
}

.header-logo{
  width:46px;
  height:46px;
  flex:0 0 46px;
  object-fit:cover;
  border-radius:12px;
  box-shadow:0 6px 18px rgba(0,0,0,0.35);
}

.header-text{
  text-align:center;
  min-width:0;
}

.header-text h1{
  margin:0;
  font-size:20px;
  font-weight:700;
  line-height:1.1;
  background:linear-gradient(90deg,#c8102e,#0033a0);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
}

.header-sub{
  font-size:12px;
  color:#000;
  margin-top:3px;
}

/* MOBILE HEADER */
@media (max-width:600px){
  .header-logo{
    width:34px;
    height:34px;
    flex:0 0 34px;
    border-radius:10px;
  }

  .header-text h1{ font-size:16px; }
  .header-sub{ font-size:11px; }
  .header-inner{ gap:10px; }
}

/* =========================
   GRID
========================= */

.container{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:14px;
  padding:14px;
  max-width:1100px;
  margin:auto;
}

@media (max-width:900px){
  .container{
    grid-template-columns:repeat(2, 1fr);
  }
}

/* =========================
   CARD
========================= */

.card{
  background:#161616;
  border-radius:14px;
  cursor:pointer;
  transition:.2s ease;
  border:1px solid rgba(255,255,255,0.06);
  height:170px;

  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;

  padding:10px;
  overflow:hidden;
}

.card:hover{
  transform:translateY(-3px);
  border-color:rgba(29,185,84,0.5);
  box-shadow:0 10px 25px rgba(0,0,0,0.4);
}

.card.active{
  outline:2px solid #1db954;
}

.card img{
  width:72px;
  height:72px;
  border-radius:50%;
  object-fit:cover;
  border:2px solid rgba(255,255,255,0.1);
  margin-bottom:8px;
}

.card .info{
  text-align:center;
  width:100%;
}

.card .name{
  font-size:13px;
  font-weight:600;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  padding:0 6px;
}

.card .sub{
  font-size:11px;
  opacity:.6;
  margin-top:3px;
}

.card .liveTitle{
  font-size:11px;
  margin-top:3px;
  color:#1db954;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

/* =========================
   FULLSCREEN
========================= */

.fullscreen{
  position:fixed;
  inset:0;
  display:none;
  align-items:center;
  justify-content:center;
  z-index:999;
}

.fullscreen.active{
  display:flex;
}

.bg{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  transform:scale(1.15);
  filter:blur(60px) brightness(0.3);
}

.overlay{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,0.75);
}

.content{
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
  padding:20px;
}

.content img{
  width:120px;   /* 🔥 kleiner gemaakt voor mobiel */
  height:120px;
  border-radius:18px;
  object-fit:cover;
}

.big{
  font-size:20px;
  font-weight:600;
  text-align:center;
}

.sub{
  font-size:13px;
  opacity:.7;
  text-align:center;
}

/* =========================
   CONTROLS
========================= */

.controls{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  justify-content:center;
}

button{
  border:none;
  color:#fff;
  padding:10px 16px;
  border-radius:50px;
  cursor:pointer;
  font-weight:600;
}

#playBtn{
  background:red;
  width:46px;
  height:46px;
  border-radius:50%;
}

#muteBtn{
  background:white;
  width:46px;
  height:46px;
  border-radius:50%;
  color:#000;
}

/* 🔥 SLIDER BLAUW */
input[type="range"]{
  width:140px;
  accent-color:#2196f3;
}

button:not(#playBtn):not(#muteBtn){
  background:linear-gradient(90deg,#c8102e,#f2f2f2,#0033a0);
  color:#000;
  transition:.2s;
}

button:not(#playBtn):not(#muteBtn):hover{
  transform:scale(1.05);
}

/* =========================
   LOADER
========================= */

.loader{
  display:none;
  position:absolute;
  inset:0;
  background:rgba(0,0,0,0.85);
  backdrop-filter:blur(10px);
  flex-direction:column;
  align-items:center;
  justify-content:center;
  z-index:999;
}

.spin{
  display:inline-block;
  animation:spin 1s linear infinite;
}

@keyframes spin{
  from{transform:rotate(0deg);}
  to{transform:rotate(360deg);}
}

/* =========================
   FOOTER
========================= */

.app-footer{
  padding:14px 10px;
  margin-top:30px;
  background:#111;
  border-top:1px solid rgba(255,255,255,0.08);
  text-align:center;
}

.footer-inner{
  max-width:1100px;
  margin:auto;
  display:flex;
  justify-content:center;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  font-size:13px;
  opacity:.85;
}

.app-footer a{
  color:#1db954;
  text-decoration:none;
  font-weight:600;
}

.footer-sep{
  opacity:.4;
}

/* =========================
   INSTALL POPUP (FIXED)
========================= */

.install-popup{
  display:none;
  position:fixed;
  inset:0;
  background:rgba(0,0,0,0.8); /* 🔥 donkerder gemaakt */
  backdrop-filter:blur(10px);
  z-index:99999;
  align-items:center;
  justify-content:center;
}

.install-box{
  background:#fff;
  color:#000;
  width:280px;
  max-width:90%;
  padding:18px;
  border-radius:16px;
  text-align:center;
  box-shadow:0 10px 30px rgba(0,0,0,0.4);
}

.install-box h3{
  margin:10px 0 5px;
  font-size:16px;
}

.install-box p{
  font-size:13px;
  opacity:.75;
}

.install-buttons{
  display:flex;
  gap:10px;
  justify-content:center;
  margin-top:15px;
}

.install-buttons button{
  padding:10px 14px;
  border:none;
  border-radius:10px;
  cursor:pointer;
  font-weight:600;
}

#installBtn{
  background:#1db954;
  color:#fff;
}

#closeInstall{
  background:#ddd;
  color:#000;
}

.install-spinner{
  font-size:24px;
  animation:spin 1s linear infinite;
  margin-bottom:5px;
}
.song{
  color:#1db954 !important;
  font-weight:600;
}

.live{
  color:#aaa !important;
}

/* 🔥 kleine animatie */
.fade{
  animation:fade .3s ease;
}

@keyframes fade{
  from{opacity:0; transform:translateY(4px);}
  to{opacity:1; transform:translateY(0);}
}
.fullscreen .liveTitle,
.fullscreen .song{
  color:#1db954 !important;
  -webkit-text-fill-color: initial !important;
}
.fullscreen .song{
  color:#1db954 !important;
  opacity:1 !important;
}