.es-voice-host{position:relative}
.es-voice-btn{
  width:38px;height:38px;min-width:38px;border:none;border-radius:50%;
  background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;cursor:pointer;
  display:flex;align-items:center;justify-content:center;padding:0;flex-shrink:0;
  touch-action:none;user-select:none;-webkit-user-select:none;
  box-shadow:0 6px 16px rgba(99,102,241,.28);
}
.es-voice-btn svg{width:18px;height:18px;pointer-events:none}
.es-voice-btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}
.es-voice-btn:hover:not(:disabled){filter:brightness(1.05)}
.es-voice-mask{
  position:absolute;inset:0;z-index:12;display:flex;align-items:flex-end;justify-content:center;
  background:linear-gradient(180deg,rgba(17,19,32,.18),rgba(17,19,32,.72));
  padding:0 16px 18px;pointer-events:none;
}
.es-voice-panel{
  width:100%;max-width:320px;border-radius:18px;padding:16px 18px 14px;
  background:rgba(20,16,36,.92);color:#fff;text-align:center;
  box-shadow:0 16px 40px rgba(0,0,0,.28);
  border:1px solid rgba(255,255,255,.08);
}
.es-voice-mask-cancel .es-voice-panel{background:rgba(127,29,29,.94)}
.es-voice-bars{display:flex;align-items:flex-end;justify-content:center;gap:5px;height:36px;margin-bottom:8px}
.es-voice-bars span{
  display:block;width:4px;border-radius:99px;background:#c4b5fd;min-height:8px;
  transition:height .08s linear;
}
.es-voice-mask-cancel .es-voice-bars span{background:#fecaca}
.es-voice-time{font-size:20px;font-weight:600;letter-spacing:.04em;font-variant-numeric:tabular-nums}
.es-voice-hint{margin-top:6px;font-size:12px;opacity:.8}
.es-voice-bubble{
  display:flex;align-items:center;gap:8px;min-width:92px;max-width:180px;
  padding:8px 12px;border:0;border-radius:16px;cursor:pointer;
  background:transparent;color:inherit;font:inherit;text-align:left;
}
.es-voice-bubble-icon{
  width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.18);flex-shrink:0;
}
.es-voice-bubble-icon svg{width:13px;height:13px}
.chat-msg-peer .es-voice-bubble-icon,
.fm-msg-peer .es-voice-bubble-icon,
.fc-msg-peer .es-voice-bubble-icon,
.rag-msg-bot .es-voice-bubble-icon,
.cs-msg-customer .es-voice-bubble-icon,
.cs-msg-ai .es-voice-bubble-icon,
.cs-msg-system .es-voice-bubble-icon{
  background:rgba(99,102,241,.12);color:#4f46e5;
}
.es-voice-wave{display:flex;align-items:flex-end;gap:3px;height:16px}
.es-voice-wave i{
  display:block;width:3px;border-radius:99px;background:currentColor;opacity:.85;
  animation:none;height:6px;
}
.es-voice-wave i:nth-child(1){height:7px}
.es-voice-wave i:nth-child(2){height:14px}
.es-voice-wave i:nth-child(3){height:9px}
.es-voice-playing .es-voice-wave i{animation:es-voice-eq 0.9s ease-in-out infinite}
.es-voice-playing .es-voice-wave i:nth-child(2){animation-delay:.12s}
.es-voice-playing .es-voice-wave i:nth-child(3){animation-delay:.24s}
.es-voice-dur{font-size:12px;font-weight:600;font-variant-numeric:tabular-nums;opacity:.92}
.es-voice-expired{font-size:11px;opacity:.7;margin-top:2px}
@keyframes es-voice-eq{
  0%,100%{transform:scaleY(.45)}
  50%{transform:scaleY(1)}
}
@media (prefers-reduced-motion: reduce){
  .es-voice-bars span,.es-voice-playing .es-voice-wave i{animation:none;transition:none}
}
