/* 语音转文字 — 浮动麦克风按钮 */
#voice-input-btn {
    position: fixed;
    z-index: 9998;
    display: flex;
    align-items: center;
    gap: 3px;
    padding: 4px 9px;
    border: 1px solid rgba(245, 175, 25, .55);
    border-radius: 16px;
    background: rgba(30, 26, 18, .92);
    color: #f5af19;
    font-size: 14px;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 2px 10px rgba(0, 0, 0, .45);
    backdrop-filter: blur(4px);
}
#voice-input-btn:hover { background: rgba(52, 44, 28, .95); }
#voice-input-btn .vi-sec {
    font-size: 11px;
    font-family: ui-monospace, Consolas, monospace;
    color: #ffd479;
}
#voice-input-btn.recording {
    border-color: #e05252;
    color: #ff8080;
    animation: vi-pulse 1.2s ease-in-out infinite;
}
#voice-input-btn.busy { opacity: .6; cursor: wait; }
@keyframes vi-pulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(224, 82, 82, .5); }
    50% { box-shadow: 0 0 0 7px rgba(224, 82, 82, 0); }
}
.vi-toast {
    position: fixed;
    top: 18px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 9999;
    padding: 8px 18px;
    border-radius: 8px;
    background: rgba(30, 26, 18, .95);
    border: 1px solid rgba(245, 175, 25, .5);
    color: #ffd479;
    font-size: 13px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, .5);
}
.vi-toast.err { border-color: rgba(224, 82, 82, .6); color: #ff9c9c; }
