body {
  font-family: sans-serif;
  margin: 0;
  padding: 0;
  background: #fff;
  color: #000;
}

header, nav, aside, main, section {
  padding: 1em;
}

nav a {
  margin-right: 1em;
  text-decoration: none;
  color: darkgreen;
}

nav button {
  margin-left: 1em;
  padding: 0.5em;
}

#audio-player {
  background: #f0f0f0;
  border-top: 1px solid #ccc;
}

.waveform {
  display: flex;
  gap: 4px;
  margin-top: 10px;
}

.waveform span {
  display: block;
  width: 4px;
  height: 20px;
  background: green;
  animation: pulse 1s infinite ease-in-out;
}

.waveform span:nth-child(2) { animation-delay: 0.2s; }
.waveform span:nth-child(3) { animation-delay: 0.4s; }
.waveform span:nth-child(4) { animation-delay: 0.6s; }
.waveform span:nth-child(5) { animation-delay: 0.8s; }

@keyframes pulse {
  0%, 100% { transform: scaleY(1); }
  50% { transform: scaleY(2); }
}

#stream-info {
  background: #eef;
  padding: 1em;
  margin: 1em 0;
  border-left: 4px solid green;
}

#map iframe {
  width: 50%;
  border: none;
}

body.dark {
  background-color: #121212;
  color: #e0e0e0;
}

body.dark a {
  color: #90caf9;
}

body.dark #audio-player {
  background: #1e1e1e;
  border-color: #333;
}

body.dark #stream-info {
  background: #222;
  color: #ccc;
  border-left-color: lime;
}

@media (max-width: 600px) {
  nav {
    display: flex;
    flex-direction: column;
  }

  #audio-player {
    position: fixed;
    bottom: 0;
    width: 100%;
    z-index: 1000;
  }

  .waveform {
    justify-content: center;
  }
}