.mic-wrap{flex-direction:column;flex-shrink:0;align-items:center;display:inline-flex;position:relative}.mic-btn{border:1px solid var(--line);cursor:pointer;color:#dc2626;background:#fff;border-radius:8px;justify-content:center;align-items:center;padding:7px 10px;transition:background .12s,border-color .12s,color .12s,box-shadow .12s;display:inline-flex}.mic-btn.mic-state-idle:hover{color:#b91c1c;background:#fef2f2;border-color:#fca5a5}.mic-btn.mic-state-recording{color:#dc2626;background:#fef2f2;border-color:#dc2626;animation:1.2s ease-in-out infinite mic-pulse}@keyframes mic-pulse{0%,to{box-shadow:0 0 rgba(220,38,38,.35)}50%{box-shadow:0 0 0 5px rgba(220,38,38,0)}}.mic-btn.mic-state-recording:hover{background:#fee2e2}.mic-btn.mic-state-transcribing{color:var(--ink-4);cursor:not-allowed;opacity:.75}.mic-spinner{animation:.75s linear infinite mic-spin}@keyframes mic-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.mic-error-tip{background:var(--ink);color:#fff;white-space:nowrap;z-index:300;pointer-events:none;border-radius:6px;padding:5px 9px;font-size:11px;animation:.12s mic-fade-in;position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%)}.mic-error-tip:before{content:"";border:5px solid transparent;border-bottom-color:var(--ink);position:absolute;bottom:100%;left:50%;transform:translate(-50%)}@keyframes mic-fade-in{0%{opacity:0;transform:translate(-50%)translateY(4px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@media (max-width:640px){.mic-error-tip{white-space:normal;text-align:center;width:max-content;max-width:60vw}}
