/* The hidden attribute wins over any display rule below (a styled button is inline-block). */
[hidden] { display: none !important; }
:root {
  --bg: #f7f5f0; --fg: #1d1b18; --muted: #6b665d; --line: #d9d3c7;
  --accent: #2d6a4f; --accent-fg: #ffffff; --error: #a4161a;
  --meter-low: #2d6a4f; --meter-mid: #b08900; --meter-high: #a4161a;
  --panel: #ffffff;
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root {
    --bg: #15171a; --fg: #ebe7df; --muted: #a39e94; --line: #34373c;
    --accent: #74c69d; --accent-fg: #0f1a14; --error: #ff8a8a; --panel: #1c1f23;
    --meter-low: #74c69d; --meter-mid: #e9c46a; --meter-high: #ff8a8a;
    color-scheme: dark;
  }
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--bg); color: var(--fg);
  font: 16px/1.5 system-ui, -apple-system, "Segoe UI", sans-serif; }
main { max-width: 60rem; margin: 0 auto; padding: 1.5rem 1rem 3rem; }
h1 { font-size: 1.6rem; margin: 0; }
h2 { font-size: 1.3rem; margin: 1.5rem 0 .5rem; }
h3 { font-size: 1rem; margin: 1rem 0 .4rem; color: var(--muted); font-variant-caps: all-small-caps;
  letter-spacing: .04em; }
.tagline, .quiet { color: var(--muted); }
.error { color: var(--error); }
.error:empty { display: none; }
a { color: var(--accent); }
.button, button { display: inline-block; font: inherit; padding: .5rem .9rem; border-radius: .4rem;
  border: 1px solid var(--accent); background: var(--accent); color: var(--accent-fg);
  text-decoration: none; cursor: pointer; }
.button + .button { margin-left: .5rem; }
#mute[aria-pressed="true"] { background: transparent; color: var(--accent); }
#mute[aria-pressed="true"] { box-shadow: inset 0 0 0 2px var(--accent); }
input { font: inherit; padding: .45rem .6rem; border: 1px solid var(--line); border-radius: .4rem;
  background: var(--panel); color: var(--fg); min-width: 0; }
.row { display: flex; gap: .5rem; align-items: center; }
.row input { flex: 1; }
:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }
.controls { display: flex; gap: .75rem; align-items: center; flex-wrap: wrap; }
.columns { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 1.5rem; }
@media (max-width: 40rem) { .columns { grid-template-columns: 1fr; } .button + .button { margin: .5rem 0 0; } }
ul { list-style: none; padding: 0; margin: 0; }
.players > li { margin-bottom: .6rem; }
.player-name { font-weight: 600; }
.channel { display: grid; grid-template-columns: minmax(0, 8rem) 1fr; gap: .5rem; align-items: center;
  font-size: .9rem; color: var(--muted); }
.meter { height: .5rem; background: var(--line); border-radius: .25rem; overflow: hidden; position: relative; }
.meter .level { position: absolute; inset: 0 auto 0 0; width: 0; background: var(--meter-low);
  transition: width 60ms linear; }
.meter .peak { position: absolute; top: 0; bottom: 0; width: 2px; left: 0; background: var(--fg); opacity: .6; }
.out { font-style: italic; }
.listeners li { display: inline; }
.listeners li:not(:last-child)::after { content: ", "; }
.log { list-style: none; padding: .5rem; margin: 0 0 .5rem; height: 22rem; overflow-y: auto;
  background: var(--panel); border: 1px solid var(--line); border-radius: .4rem; }
.log li { margin: .15rem 0; overflow-wrap: anywhere; }
.log .from { font-weight: 600; }
.log .kind-listener .from { color: var(--accent); }
.log .kind-bot, .log .kind-system { color: var(--muted); font-style: italic; }
.log .kind-notice { color: var(--error); }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0);
  white-space: nowrap; }
@media (prefers-reduced-motion: reduce) { .meter .level { transition: none; } }
