.voice-panel {
  margin: 12px auto 4px; padding: 14px 18px; max-width: 980px;
  border: 1px solid #496359; border-radius: 16px; background: #19362f;
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
}
.voice-panel[hidden], .voice-panel button[hidden], .voice-speaking-label[hidden] { display: none; }
.voice-info { display: grid; gap: 6px; min-width: 0; }
.voice-info strong { color: #f0ce72; font-size: 12px; letter-spacing: 1px; }
.voice-status { color: #d2dfd5; font-size: 13px; line-height: 1.4; }
.voice-controls { display: flex; flex-wrap: wrap; gap: 8px; flex-shrink: 0; }
.voice-controls .button { min-height: 44px; padding: 10px 14px; font-size: 11px; }
.voice-speaking .squad-portrait, .voice-speaking .portrait-ring {
  outline: 3px solid #8fe0ae; outline-offset: 4px; border-radius: 20px;
}
.squad-portrait { position: relative; }
.voice-speaking-label {
  position: absolute; top: -5px; right: -5px; z-index: 2;
  display: grid; place-items: center; width: 22px; height: 22px;
  border-radius: 50%; background: #19362f; color: #a1efbf;
  border: 1px solid #8fe0ae; pointer-events: none;
}
.voice-speaking-label svg { width: 14px; height: 14px; }
@media (max-width: 700px) {
  .voice-panel { margin: 10px 14px; padding: 13px; flex-direction: column; align-items: stretch; gap: 10px; }
  .voice-controls { flex-shrink: 1; }
  .voice-controls .button { flex: 1; font-size: 12px; }
}
@media (max-width: 600px) {
  body[data-screen="game"] .voice-panel { margin: 4px 10px; padding: 5px 8px; gap: 4px; }
  body[data-screen="game"] .voice-info { display: flex; align-items: center; gap: 8px; }
  body[data-screen="game"] .voice-info strong { font-size: 9px; white-space: nowrap; }
  body[data-screen="game"] .voice-status { font-size: 10px; }
  body[data-screen="game"] .voice-controls { flex-wrap: nowrap; gap: 5px; }
  body[data-screen="game"] .voice-controls .button { padding: 6px; font-size: 10px; }
}
