*{box-sizing:border-box;}

html,body{
  margin:0;
  padding:0;
  min-height:100%;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  background:#000;
  color:#f5f5f5;
}

body{
  min-height:100vh;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:clamp(24px, 5vw, 48px);
  padding:clamp(24px, 6vw, 64px) 16px;
}

/* ================= Loghi in alto ================= */
.brand-logos{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:clamp(14px, 3vw, 24px);
  width:100%;
  max-width:900px;
}
.brand-logos img{
  display:block;
  height:auto;
  max-width:100%;
}
.logo-professionecasa{width:clamp(300px, 70vw, 640px);}
.logo-oneradio{width:clamp(150px, 26vw, 240px);}

/* ================= Contenitore player ================= */
.showroom-grid{
  display:flex;
  justify-content:center;
  width:100%;
  max-width:640px;
}
.showroom-card{
  display:flex;
  flex-direction:column;
  align-items:center;
  width:100%;
}

/* ================= Widget: struttura ================= */
.player-widget{
  position:relative;
  width:100%;
  max-width:440px;
  height:196px;
  display:flex;
  overflow:hidden;
  --accent:#ff3b30;
  --accent-soft: rgba(255,59,48,.35);
}

.cover-wrap{
  position:relative;
  flex:none;
  background:radial-gradient(circle at 50% 45%, var(--accent-soft), #0a0a0a 70%);
  transition:background .6s ease;
}
.cover{
  width:100%;height:100%;object-fit:cover;display:block;
  opacity:0;
  transition:opacity .5s ease;
}
.cover.loaded{opacity:1;}
.cover-fallback{
  position:absolute;inset:0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  pointer-events:none;
  font-size:34px;
  color:rgba(255,255,255,.55);
  text-shadow:0 2px 10px var(--accent-soft);
}
.cover-fallback::after{
  content:"cover non disponibile";
  font-size:9px;
  letter-spacing:.4px;
  text-transform:uppercase;
  text-shadow:none;
  color:rgba(255,255,255,.3);
}
.cover-fallback-logo{
  display:none;
  max-width:65%;max-height:55%;
  object-fit:contain;
  filter:drop-shadow(0 2px 10px var(--accent-soft));
}
.cover-fallback.has-logo .cover-fallback-logo{display:block;}
.cover-fallback.has-logo .cover-fallback-note{display:none;}
.cover-fallback.has-logo::after{content:none;}

.info{
  flex:1;
  min-width:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:6px;
}

.brand-row{
  display:flex;align-items:center;gap:8px;
  margin-bottom:2px;
  max-width:100%;
  flex-shrink:0;
}
.status-row{flex-shrink:0;}
.brand-row.hidden{display:none;}
.brand-logo{
  height:22px;width:auto;max-width:150px;
  object-fit:contain;display:none;flex:none;
  filter:drop-shadow(0 1px 3px rgba(0,0,0,.5));
}
.brand-logo.loaded{display:block;}
.brand-name{
  font-size:12px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  text-shadow:0 1px 3px rgba(0,0,0,.5);
}
.brand-name:empty{display:none;}

.status-badge{
  display:inline-flex;align-items:center;gap:5px;
  font-size:10px;font-weight:700;letter-spacing:.5px;
  border-radius:20px;padding:3px 8px;
}
.status-dot{width:6px;height:6px;border-radius:50%;background:currentColor;}

.song-title{font-size:16px;font-weight:700;line-height:1.25;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.song-artist{font-size:12px;margin-top:1px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

.eq{
  display:flex;align-items:flex-end;gap:2px;height:18px;
  flex-shrink:0;
}
.eq span{
  flex:1;min-width:2px;border-radius:2px 2px 0 0;
  height:10%;transition:height .12s linear;
}

.controls{
  display:flex;align-items:center;gap:8px;
  flex-shrink:0;
}
.btn-play,.btn-stop{
  border:none;border-radius:50%;cursor:pointer;
  display:flex;align-items:center;justify-content:center;flex:none;
  transition:transform .15s ease, filter .15s ease;
}
.btn-play:hover,.btn-stop:hover{filter:brightness(1.15);}
.btn-play:active,.btn-stop:active{transform:scale(.94);}
.btn-play:focus-visible,.btn-stop:focus-visible,.volume:focus-visible{outline:2px solid #fff;outline-offset:2px;}
.cover-fallback[hidden]{display:none;}
.btn-play{width:34px;height:34px;font-size:13px;}
.btn-stop{width:28px;height:28px;font-size:11px;}
.volume{flex:1;min-width:0;}

/* ================================================================
   SKIN Default: card scura arrotondata, cover quadrata a sx
   ================================================================ */
.skin-default{
  border-radius:16px;
  background:linear-gradient(160deg, #141414, #050505);
  box-shadow:0 20px 40px rgba(0,0,0,.5), 0 0 0 1px rgba(255,255,255,.08);
}
.skin-default .cover-wrap{width:196px;}
.skin-default .info{padding:14px 18px;}
.skin-default .song-title,.skin-default .brand-name{color:#f5f5f5;}
.skin-default .song-artist{color:rgba(245,245,245,.6);}
.skin-default .status-badge{
  color:#7ee787;background:rgba(126,231,135,.1);border:1px solid rgba(126,231,135,.35);
}
.skin-default .status-badge.off{color:#8e8e93;background:rgba(142,142,147,.1);border-color:rgba(142,142,147,.3);}
.skin-default .eq span{background:linear-gradient(to top, var(--accent), rgba(255,255,255,.5));}
.skin-default .btn-play{background:var(--accent);color:#fff;box-shadow:0 4px 12px var(--accent-soft);}
.skin-default .btn-stop{background:rgba(255,255,255,.12);color:#fff;}
.skin-default .volume{accent-color:var(--accent);}

/* ================= Responsive ================= */
@media (prefers-reduced-motion:reduce){
  .eq span,.cover,.cover-wrap{transition:none;}
}
@media (max-width:480px){
  .player-widget{height:auto;flex-direction:column;}
  .skin-default .cover-wrap{width:100%;height:auto;aspect-ratio:1/1;max-height:320px;}
}