/* 语音：输入框旁的 🎤、录音提示条、配音播放器、朗读按钮 */
.mic-btn {
  width: 38px; height: 38px; border-radius: 50%; border: 0; display: grid; place-items: center; flex-shrink: 0;
  background: transparent; color: var(--muted); transition: background .2s, color .2s, transform .12s;
}
.mic-btn:hover { background: var(--hover); color: var(--text); }
.mic-btn:active { transform: scale(.9); }
.mic-btn.rec { background: #e5484d; color: #fff; animation: mic-pulse 1.4s ease-out infinite; }
.mic-btn.busy { color: var(--accent); cursor: default; }
@keyframes mic-pulse {
  0% { box-shadow: 0 0 0 0 rgba(229, 72, 77, .45); }
  100% { box-shadow: 0 0 0 12px rgba(229, 72, 77, 0); }
}
.composer.recording { border-color: color-mix(in srgb, #e5484d 55%, var(--border)); }

.rec-tip { display: flex; align-items: center; gap: 8px; padding: 2px 4px 6px; font-size: 13px; color: var(--muted); }
.rec-tip[hidden] { display: none; }
.rec-dot { width: 8px; height: 8px; border-radius: 50%; background: #e5484d; flex-shrink: 0; animation: rec-blink 1s infinite; }
@keyframes rec-blink { 50% { opacity: .25; } }

/* 配音结果：播放器 + 右边的下载（不像图片那样浮在上面） */
.gen-media:has(.is-audio) { grid-template-columns: minmax(0, 480px); }
.gen-item.is-audio { display: flex; align-items: center; gap: 8px; padding: 6px 10px 6px 6px; }
.gen-audio { flex: 1; min-width: 0; height: 40px; display: block; }
.gen-item.is-audio .gen-dl { position: static; flex-shrink: 0; background: var(--active); color: var(--text); backdrop-filter: none; }
.gen-item.is-audio .gen-dl:hover { background: var(--border); }
.msg .actions .icon-btn.playing { color: var(--accent); background: var(--hover); }

@media (prefers-reduced-motion: reduce) {
  .mic-btn.rec, .rec-dot { animation: none; }
}
@media (max-width: 820px) {
  .mic-btn { width: 40px; height: 40px; }
}
