/* ═══════════ VOICE OVERLAY ═══════════ */
.voice-overlay{
  position:fixed;inset:0;z-index:500;
  display:flex;flex-direction:column;justify-content:flex-end;
  animation:fadeIn .15s ease;
}
.voice-bg{position:absolute;inset:0;z-index:0;background:rgba(0,0,0,.55);backdrop-filter:blur(8px)}
.voice-semicircle{
  position:relative;z-index:1;width:200%;left:-50%;height:280px;
  border-radius:50% 50% 0 0;background:linear-gradient(180deg,#faf7f2,#f0ebe0);
  border-top:1px solid rgba(180,160,130,.2);box-shadow:0 -8px 40px rgba(0,0,0,.15);
  display:flex;flex-direction:column;align-items:center;padding-top:28px;
  transition:background .3s;
}
.voice-semicircle::before,.voice-semicircle::after{
  content:"";position:absolute;top:0;height:280px;width:50%;
  opacity:0;transition:opacity .2s;pointer-events:none;
}
.voice-semicircle::before{left:0;border-radius:50% 0 0 0;background:linear-gradient(135deg,rgba(220,38,38,.10),transparent 50%)}
.voice-semicircle::after{right:0;border-radius:0 50% 0 0;background:linear-gradient(225deg,rgba(59,130,246,.10),transparent 50%)}
.voice-semicircle.cancel::before{opacity:1}
.voice-semicircle.text::after{opacity:1}
.voice-semicircle.cancel .voice-arc-inner{transform:translateX(-18%)}
.voice-semicircle.text .voice-arc-inner{transform:translateX(18%)}

.voice-arc-inner{display:flex;flex-direction:column;align-items:center;gap:16px;transition:transform .25s cubic-bezier(.22,1,.36,1)}
.voice-wave{display:flex;align-items:center;gap:3px;height:44px}
.voice-wave .bar{width:4px;border-radius:2px;background:var(--text-primary);animation:waveAnim .8s infinite}
.voice-wave .bar:nth-child(1){height:14px;animation-delay:0s}
.voice-wave .bar:nth-child(2){height:24px;animation-delay:.08s}
.voice-wave .bar:nth-child(3){height:34px;animation-delay:.16s}
.voice-wave .bar:nth-child(4){height:26px;animation-delay:.24s}
.voice-wave .bar:nth-child(5){height:18px;animation-delay:.32s}
.voice-wave .bar:nth-child(6){height:30px;animation-delay:.40s}
.voice-wave .bar:nth-child(7){height:22px;animation-delay:.48s}
.voice-wave .bar:nth-child(8){height:28px;animation-delay:.56s}
.voice-wave .bar:nth-child(9){height:12px;animation-delay:.64s}
@keyframes waveAnim{0%,100%{transform:scaleY(.25);opacity:.4}50%{transform:scaleY(1.6);opacity:1}}
.voice-hint{font-size:16px;font-weight:600;color:var(--text-secondary);letter-spacing:1px;transition:color .2s}
.voice-semicircle.cancel .voice-hint{color:var(--danger)}
.voice-semicircle.text .voice-hint{color:#2563eb}
.voice-zone-labels{display:flex;justify-content:space-between;width:320px;margin-top:4px}
.zone-label{font-size:12px;font-weight:500;color:var(--text-muted);text-align:center;line-height:1.5;width:64px;padding:8px 0;border-radius:var(--r-sm);transition:all .2s}
.zone-label.active{transform:scale(1.18);font-weight:700}
.zone-label.cancel.active{color:var(--danger);background:rgba(220,38,38,.08)}
.zone-label.send.active{color:var(--accent);background:var(--accent-soft)}
.zone-label.text.active{color:#2563eb;background:rgba(59,130,246,.08)}
