.voice-modal[hidden] { display:none!important; }
.voice-modal { z-index:10080; }
.voice-card { width:min(360px,calc(100vw - 32px)); padding:24px; border-radius:16px; background:var(--bg,#fff); color:var(--text,#222); box-sizing:border-box; }
.voice-card h2 { margin:0 0 16px;font-size:20px; }
.voice-status { min-height:48px;line-height:1.6; }
.voice-note { font-size:12px;color:var(--text-dim,#777);margin:8px 0; }
.voice-preview { display:block;width:100%;max-width:100%; }
.voice-preview[hidden] { display:none; }
.voice-actions { display:flex;gap:12px;margin-top:20px; }
.voice-actions button { flex:1;padding:12px 8px;border:0;border-radius:8px;font:inherit;cursor:pointer;background:#ececec;color:#222; }
.voice-actions .voice-primary { background:#07a855;color:#fff; }
.voice-record { flex-shrink:0; }
.voice-bubble { min-width:170px;max-width:min(310px,70vw); }
.voice-line { display:flex;align-items:center;gap:6px; }
.voice-play,.voice-transcribe { border:0;background:none;color:inherit;cursor:pointer;font:inherit;padding:8px 0; }
.voice-play { white-space:nowrap; }
.voice-duration { margin-left:auto;white-space:nowrap;font-size:13px; }
.voice-progress { font-size:12px;white-space:nowrap; }
.voice-transcribe { font-size:13px;text-decoration:underline; }
.voice-transcript { padding-top:8px;border-top:1px solid #8884;white-space:pre-wrap;overflow-wrap:anywhere; }
.voice-transcript[hidden] { display:none; }
.voice-card button:disabled { opacity:.5;cursor:default; }

.row.mine .voice-note { color:rgba(255,255,255,.72); }
