/* Minimal, app-like dark UI. */
:root{
  --bg:#0a0a0f;
  --card:#101018;
  --card2:#0f0f15;
  --text:#ffffff;
  --muted:#b7b7c4;
  --muted2:#8b8b99;
  --accent:#ff2d55;
  --stroke:rgba(255,255,255,.08);
  --shadow:0 12px 30px rgba(0,0,0,.45);
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji";
  background: radial-gradient(1100px 600px at 50% -10%, rgba(255,45,85,.18), transparent 60%),
              radial-gradient(900px 600px at 20% 0%, rgba(0,170,255,.14), transparent 55%),
              var(--bg);
  color:var(--text);
}
.screen{
  max-width:720px;
  margin:0 auto;
  padding:26px 18px 34px;
}
.topbar{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:10px 0 16px;
}
.brand{
  display:flex;
  align-items:center;
  gap:12px;
}
.brandText{
  display:flex;
  flex-direction:column;
  align-items:center;
}
.brandLogoLink{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.04);
  box-shadow:0 10px 22px rgba(0,0,0,.35);
}
.brandLogo{
  width:28px;
  height:28px;
  border-radius:8px;
}
.brandTitle{
  font-weight:800;
  letter-spacing:.06em;
  text-align:center;
  font-size:22px;
}
.brandSub{
  text-align:center;
  margin-top:6px;
  color:var(--muted);
  font-size:14px;
}
.brandSub.onAir{
  color:#ffffff;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.brandSub.onAir::before{
  content:"";
  display:inline-block;
  width:9px;
  height:9px;
  margin-right:8px;
  border-radius:999px;
  background:var(--accent);
  box-shadow:0 0 0 0 rgba(255,45,85,.75);
  animation:onAirPulse 1s infinite;
}
@keyframes onAirPulse{
  0%{ transform:scale(1); opacity:1; box-shadow:0 0 0 0 rgba(255,45,85,.75); }
  70%{ transform:scale(1); opacity:1; box-shadow:0 0 0 10px rgba(255,45,85,0); }
  100%{ transform:scale(1); opacity:1; box-shadow:0 0 0 0 rgba(255,45,85,0); }
}
.brandSite{
  margin-top:4px;
  font-size:12px;
  color:rgba(255,255,255,.78);
  text-decoration:none;
  font-weight:800;
  letter-spacing:.06em;
}
.brandSite:hover{ text-decoration:underline; }
.card{
  background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01));
  border:1px solid var(--stroke);
  border-radius:18px;
  box-shadow:var(--shadow);
  padding:14px;
  overflow:hidden;
}
.card + .card{margin-top:14px}
.cardLive{display:none}
.cardHeader{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:12px;
}
.pill{
  background:rgba(255,45,85,.16);
  border:1px solid rgba(255,45,85,.35);
  color:#ffd1da;
  font-weight:800;
  letter-spacing:.12em;
  font-size:11px;
  padding:6px 10px;
  border-radius:999px;
}
.liveTitle{
  font-weight:800;
  font-size:16px;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.liveBody,.npBody{
  display:flex;
  gap:12px;
}
.cover{
  width:150px;
  height:150px;
  border-radius:16px;
  object-fit:cover;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.08);
}
.meta{min-width:0;flex:1}
.line{
  color:var(--muted);
  font-size:15px;
  line-height:1.25;
  margin:3px 0;
  overflow:hidden;
  text-overflow:ellipsis;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
}
.line#liveTitoloCanzone{
  margin-top:12px; /* spazio tra argomento e brano */
}
.line.strong{color:var(--text);font-weight:800}
.npHeader{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  margin-bottom:12px;
}
.npLabel{color:var(--muted2);font-weight:700;font-size:11px;letter-spacing:.14em}
.npInOnda{color:var(--muted);font-weight:700;font-size:11px;letter-spacing:.08em}
.npTitle{
  font-weight:900;
  letter-spacing:.01em;
  font-size:20px;
  line-height:1.2;
  margin-top:2px;
  text-transform:uppercase;
  overflow:hidden;
  text-overflow:ellipsis;
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
}
.npAlbum{
  margin-top:6px;
  color:var(--muted);
  font-size:14px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.npNext{
  margin-top:14px;
  font-size:14px;
  color:var(--muted);
  display:flex;
  flex-direction:column;
  gap:6px;
}
.npNextLabel{color:var(--muted2);font-weight:800;letter-spacing:.08em}
.npNextValue{
  color:var(--muted);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.controls{
  display:flex;
  gap:12px;
  margin-top:18px;
}

.social{
  display:flex;
  gap:10px;
  margin-top:12px;
}
.sbtn{
  flex:1;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:12px 12px;
  border-radius:14px;
  text-decoration:none;
  color:#fff;
  border:1px solid rgba(255,255,255,.10);
  background:linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.04));
  box-shadow:0 10px 22px rgba(0,0,0,.30);
  font-weight:900;
  letter-spacing:.08em;
  font-size:12px;
}
.sbtn:active{ transform:scale(.99); }
.sicon{
  width:30px;
  height:30px;
  border-radius:10px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight:900;
  letter-spacing:.04em;
  background:rgba(0,0,0,.28);
  border:1px solid rgba(255,255,255,.10);
}
.sbtnWa{ background:linear-gradient(180deg, rgba(37,211,102,.35), rgba(255,255,255,.04)); }
.sbtnIg{ background:linear-gradient(180deg, rgba(255,45,85,.28), rgba(255,255,255,.04)); }
.sbtnTg{ background:linear-gradient(180deg, rgba(0,136,204,.32), rgba(255,255,255,.04)); }
.sbtnDl{ background:linear-gradient(180deg, rgba(255,255,255,.14), rgba(255,45,85,.10)); }
.stext{ white-space:nowrap; }

/* Mobile-first tweaks */
@media (max-width: 420px) {
  .screen{ padding:18px 14px 24px; }
  .brandTitle{ font-size:18px; }
  .brandSub{ font-size:13px; }
  .brandSite{ font-size:11px; }
  .cover{ width:120px; height:120px; }
  .npTitle{ font-size:18px; }
  .line{ font-size:14px; }
  .controls{ gap:10px; }
  .btn{ padding:14px 14px; }
  .social{ flex-direction:column; }
  .sbtn{ justify-content:flex-start; padding:12px 12px; }
  .sicon{ width:28px; height:28px; border-radius:9px; }
}

@media (max-width: 340px) {
  .cover{ width:108px; height:108px; }
  .npTitle{ font-size:16px; }
}
.btn{
  appearance:none;
  border:none;
  border-radius:14px;
  padding:16px 16px;
  font-weight:900;
  letter-spacing:.08em;
  flex:1;
  cursor:pointer;
  transition: transform .05s ease, filter .15s ease;
  user-select:none;
}
.btn:active{transform:scale(.99)}
.btnPlay{
  background:linear-gradient(180deg, rgba(255,45,85,.98), rgba(255,45,85,.72));
  color:#fff;
}
.btnStop{
  background:linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,.05));
  border:1px solid rgba(255,255,255,.10);
  color:#fff;
}
.btn:disabled{opacity:.55;cursor:not-allowed;filter:grayscale(.2)}
.hint{
  margin-top:14px;
  color:var(--muted);
  font-size:13px;
  line-height:1.35;
  padding:10px 12px;
  border:1px dashed rgba(255,255,255,.14);
  border-radius:14px;
  background:rgba(255,255,255,.03);
}

/* Desktop / tablet: ancora più "app-like" grande. */
@media (min-width: 900px) {
  .screen{
    max-width: 980px;
    padding: 34px 22px 42px;
  }
  .cover{
    width: 190px;
    height: 190px;
    border-radius: 18px;
  }
  .npTitle{ font-size: 24px; }
  .line{ font-size: 16px; }
  .btn{ padding: 18px 18px; font-size: 14px; }
  .sbtn{ padding: 14px 14px; font-size: 13px; }
}

