.spotify-rsemap-player {
  --sr-gold:#d4a45a;
  --sr-wine:#8d2727;
  --sr-olive:#707050;
  --sr-cream:#f7f2e8;
  --sr-white:#fff;
  --sr-dark:#222;
  box-sizing:border-box;
  width:100%;
  padding:clamp(18px,3vw,30px);
  border-radius:22px;
  background:var(--sr-cream);
  color:var(--sr-dark);
  box-shadow:0 12px 34px rgba(0,0,0,.08);
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
.spotify-rsemap-player * { box-sizing:border-box; }
.spotify-rsemap-header {
  display:flex;
  align-items:center;
  gap:22px;
  padding:20px;
  margin-bottom:20px;
  border-radius:18px;
  background:var(--sr-white);
}
.spotify-rsemap-header img { width:130px; height:auto; flex:0 0 auto; }
.spotify-rsemap-header h2 {
  margin:0;
  color:var(--sr-wine);
  font-size:clamp(2rem,5vw,3.5rem);
  line-height:1.05;
}
.spotify-rsemap-overline {
  margin:0 0 5px;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-weight:700;
}
.spotify-rsemap-tools {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-bottom:20px;
}
.spotify-rsemap-tools input {
  width:min(100%,320px);
  min-height:44px;
  padding:10px 13px;
  border:2px solid var(--sr-olive);
  border-radius:10px;
  background:#fff;
}
.spotify-rsemap-tools button,
.spotify-rsemap-actions button,
.spotify-rsemap-actions a {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:9px 15px;
  border:1px solid var(--sr-olive);
  border-radius:999px;
  background:#fff;
  color:#111;
  text-decoration:none;
  cursor:pointer;
  font:inherit;
}
.spotify-rsemap-episodes { display:grid; gap:18px; }
.spotify-rsemap-episodes.spotify-rsemap-list { grid-template-columns:1fr; }
.spotify-rsemap-episodes.spotify-rsemap-grid {
  grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));
}
.spotify-rsemap-card {
  display:grid;
  grid-template-columns:190px minmax(0,1fr);
  overflow:hidden;
  min-height:190px;
  border:1px solid rgba(0,0,0,.1);
  border-radius:17px;
  background:#fff;
  box-shadow:0 7px 22px rgba(0,0,0,.06);
}
.spotify-rsemap-grid .spotify-rsemap-card {
  display:block;
}
.spotify-rsemap-card > img {
  display:block;
  width:100%;
  height:100%;
  min-height:190px;
  object-fit:cover;
  background:#eee;
}
.spotify-rsemap-grid .spotify-rsemap-card > img {
  height:auto;
  min-height:0;
  aspect-ratio:1/1;
}
.spotify-rsemap-body {
  display:flex;
  min-width:0;
  flex-direction:column;
  justify-content:center;
  padding:20px;
}
.spotify-rsemap-card time {
  color:var(--sr-olive);
  font-size:.9rem;
  font-weight:700;
}
.spotify-rsemap-card h3 {
  margin:.35em 0 .65em;
  font-size:clamp(1.15rem,2vw,1.45rem);
  line-height:1.25;
}
.spotify-rsemap-card h3 a { color:var(--sr-wine); }
.spotify-rsemap-card audio { width:100%; margin:8px 0 12px; }
.spotify-rsemap-actions { display:flex; flex-wrap:wrap; gap:8px; }
.spotify-rsemap-status { min-height:1.5em; }
.spotify-rsemap-high-contrast {
  --sr-cream:#000;
  --sr-white:#000;
  --sr-dark:#fff;
  --sr-wine:#ffdf00;
  --sr-olive:#fff;
}
.spotify-rsemap-high-contrast a { color:#ffdf00!important; }
.spotify-rsemap-error { padding:14px; border-left:4px solid #b32d2e; background:#fff1f1; }
@media (max-width:680px) {
  .spotify-rsemap-header { align-items:flex-start; flex-direction:column; }
  .spotify-rsemap-card { grid-template-columns:110px minmax(0,1fr); min-height:140px; }
  .spotify-rsemap-card > img { min-height:140px; }
  .spotify-rsemap-body { padding:15px; }
}
@media (max-width:460px) {
  .spotify-rsemap-card { display:block; }
  .spotify-rsemap-card > img { height:auto; min-height:0; aspect-ratio:16/9; }
}
