:root { color-scheme: light; }
html, body { height: 100%; }
body {
  margin: 0;
  background: #fff;
  color: #111;
  font: 16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
}

/* Monster unten rechts */
.bg-monster {
  position: fixed;
  right: 0;
  bottom: 0;
  width: min(42vw, 100%);
  height: auto;
  opacity: 1;
  pointer-events: none;
  user-select: none;
  z-index: 0;
}

.wrap {
  max-width: 1120px;
  margin: 24px auto 56px;
  padding: 0 16px;
  position: relative;
  z-index: 1;
}

/* Video */
.video {
  width: 100%;
  aspect-ratio: 16/9;
  background: #000;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 6px 24px rgba(0,0,0,.08);
}

.card {
  background: transparent;
  border: 0px solid #e8e8ea;
  border-radius: 12px;
  padding: 16px;
  box-shadow: 0 4px 18px rgba(0,0,0,.05);
}

.stack { display: grid; gap: 16px; }

.btn {
  border: 0;
  border-radius: 9999px;
  padding: 18px 28px;
  font-size: 18px;
  font-weight: 800;
  background: #111;
  color: #fff;
  cursor: pointer;
}
.btn.stop { background: #e11; }

/* Großer runder Start/Stop-Button mit Icon + EQ */
.btn.btn-round{
  display: inline-flex;
  align-items: center;
  gap: 12px;
  border-radius: 9999px;
  padding: 18px 26px;
  font-size: 18px;
  font-weight: 800;
  background: #111;
  color: #fff;
  line-height: 1;
}

.btn.btn-round i{
  font-size: 20px;
}

/* Equalizer-Bildchen neben dem Label */
.eq{
  height: 18px;
  width: auto;
  display: inline-block;
}

/* Standard: animiertes EQ aus, flaches an */
.eq-anim{ display: none; }
.eq-flat{ display: inline-block; }

/* Playing-Zustand: Button wird rot, Icon/Label/EQ wechseln */
.btn.btn-round.is-playing{
  background: #e11;
}

.btn.btn-round.is-playing .eq-anim{ display: inline-block; }
.btn.btn-round.is-playing .eq-flat{ display: none; }

.muted { font-size: 13px; opacity: .7; }

/* Header */
.header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  background: #fff;
  border-bottom: 1px solid #e8e8ea;
  position: sticky;
  top: 0;
  z-index: 10;
}
.logo { font-size: 20px; font-weight: 800; letter-spacing: 0.5px; }

/* Now Playing */
.nowplaying {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  padding: 28px;
  border-radius: 14px;
  background: radial-gradient(120% 120% at 0% 0%, #fff, #fff);
  color: #111;
}
.np-meta { flex: 1; min-width: 0; }
.np-label { font-size: 13px; letter-spacing: .08em; opacity: .65; margin-bottom: 8px; }
.np-title { font-size: clamp(22px, 3.6vw, 34px); font-weight: 800; line-height: 1.15; margin: 2px 0 6px; }
.np-artist { font-size: clamp(14px, 2vw, 18px); opacity: .8; }
.np-cover img {
  width: clamp(120px, 22vw, 200px);
  height: clamp(120px, 22vw, 200px);
  border-radius: 10px;
  object-fit: cover;
  box-shadow: 0 10px 30px rgba(0,0,0,.35);
}
@media (max-width: 720px) {
  .nowplaying { flex-direction: column; align-items: flex-start; }
  .np-cover img { width: 160px; height: 160px; }
}

/* Tracks Grid */
.tracks-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill,minmax(320px,1fr));
  gap: 14px;
}
.track {
  display:flex; gap:10px; padding:10px; border:1px solid #eee; border-radius:10px;
  align-items:center;
}
.track img { width:64px; height:64px; border-radius:8px; object-fit:cover; }
.track .t-meta { flex:1; min-width:0; }
.track .t-title { font-weight:700; line-height:1.2; }
.track .t-artist { font-size:13px; opacity:.75; }
.track .t-price { font-size:12px; opacity:.7; }
.track .t-btn { white-space:nowrap; }

/* Pay Modal */
.pay-modal {
  position: fixed; inset:0; background: rgba(0,0,0,.5);
  display: grid; place-items: center; z-index: 20;
}
.pay-dialog {
  width:min(92vw,480px); background:#fff; color:#111; border-radius:12px;
  padding:16px; position:relative; box-shadow:0 10px 40px rgba(0,0,0,.25);
}
.pay-close {
  position:absolute; top:8px; right:10px; border:0; background:transparent;
  font-size:22px; cursor:pointer;
}
.pay-title { font-weight:800; font-size:18px; text-align:center; margin:4px 0 8px; }
.bolt11 { display:block; max-height:120px; overflow:auto; word-break:break-all; font-size:12px;
  padding:8px; background:#f7f7f8; border-radius:8px; }
  
/* Modal default unsichtbar, sichtbar ohne [hidden] */
  .pay-modal[hidden] { display: none !important; }
  .pay-modal { display: grid; }