.voice-speakers { position: fixed; z-index: 40; top: max(104px, env(safe-area-inset-top)); right: max(18px, env(safe-area-inset-right)); display: grid; gap: 7px; max-height: 50vh; overflow: hidden; pointer-events: none; }
.voice-speakers[hidden] { display: none; }
.voice-speaker { position: relative; display: flex; align-items: center; gap: 12px; padding: 7px 11px; border: 1px solid #b1d6ee16; border-left: 3px solid var(--speaker-color); border-radius: 7px; background: linear-gradient(110deg, #102330f5, #06121ef0 65%); box-shadow: 0 3px 15px #0005, inset 0 1px #ffffff09; color: #edfaff; }
.voice-speaker::after { content: ''; position: absolute; right: 8px; top: 6px; width: 3px; height: 3px; border-radius: 50%; background: var(--speaker-color); opacity: calc(.3 + var(--voice-energy, 0) * .7); box-shadow: 0 0 7px var(--speaker-color); }
.voice-speaker span { max-width: 110px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: 700 12px/1.3 system-ui, sans-serif; }
.voice-speaker-identity { display: grid; gap: 4px; min-width: 58px; max-width: 110px; }
.voice-speaker-identity small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--speaker-color); opacity: .8; font: 600 8px/1.2 system-ui, sans-serif; letter-spacing: .05em; text-transform: uppercase; }
.voice-speaker canvas { width: 180px; height: 44px; }
.arena-voice { position: absolute; z-index: 42; top: 12px; left: 12px; display: flex; gap: 6px; flex-wrap: wrap; max-width: calc(100% - 24px); }
.arena-voice button { min-height: 44px; padding: 8px 12px; border: 1px solid #87d6e766; border-radius: 6px; color: #edfaff; background: #06121ee6; font: 700 11px/1.2 system-ui, sans-serif; cursor: pointer; }
.arena-voice button[aria-pressed="true"] { border-color: #6beba7; color: #a5ffcf; }
.arena-voice button:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.arena-voice p { flex-basis: 100%; margin: 0; max-width: 340px; color: #edfaff; font: 12px/1.4 system-ui, sans-serif; background: #06121ee6; border-radius: 4px; padding: 5px 8px; }
.arena-voice p[hidden] { display: none; }
.stage > .voice-speakers { position: absolute; top: 76px; left: 12px; right: auto; }
@media (max-width: 600px) {
  .voice-speakers { top: max(104px, env(safe-area-inset-top)); left: 10px; right: auto; max-width: calc(100vw - 20px); }
  .voice-speaker { gap: 7px; padding: 5px 8px; }
  .voice-speaker span { max-width: 90px; font-size: 11px; }
  .voice-speaker canvas { width: 110px; height: 34px; }
}
