/* 录音播放器容器 */ .audio-player { display: flex; align-items: center; gap: 12px; padding: 14px 20px; background: linear-gradient(135deg, #f0f7ff 0%, #e3f2fd 100%); border-bottom: 1px solid #e1f5fe; flex-shrink: 0; } /* 播放器加载中状态 */ .audio-player-loading { background: linear-gradient(135deg, #f0f7ff 0%, #e3f2fd 100%); border-bottom: 1px solid #e1f5fe; justify-content: center; padding: 16px 20px; } .loading-content { display: flex; align-items: center; gap: 12px; } .loading-spinner { width: 20px; height: 20px; border: 2px solid #d0e8ff; border-top-color: #1890ff; border-radius: 50%; animation: spin 0.8s linear infinite; } @keyframes spin { to { transform: rotate(360deg); } } .loading-text { color: #666; font-size: 13px; } /* 播放器无录音文件状态 */ .audio-player-empty { background: linear-gradient(135deg, #f5f5f5 0%, #ebebeb 100%); border-bottom: 1px solid #e0e0e0; justify-content: center; padding: 16px 20px; } .empty-content { display: flex; align-items: center; gap: 8px; } .empty-icon { font-size: 18px; } .empty-text { color: #999; font-size: 13px; } /* 播放器错误状态 */ .audio-player-error { background: linear-gradient(135deg, #fff2f0 0%, #ffe7e3 100%); border-bottom: 1px solid #ffccc7; justify-content: center; padding: 16px 20px; } .audio-player-error .error-text { color: #ff4d4f; font-size: 13px; flex: 1; } /* 播放按钮 */ .audio-player .play-btn { font-size: 28px; color: #1890ff; padding: 0; transition: all 0.2s ease; cursor: pointer; } .audio-player .play-btn:hover { color: #40a9ff; transform: scale(1.1); } .audio-player .play-btn:active { transform: scale(0.95); } /* 进度条容器 */ .audio-player .progress-bar { flex: 1; height: 8px; background: #d0e8ff; border-radius: 4px; cursor: pointer; position: relative; overflow: hidden; } /* 进度填充 */ .audio-player .progress-fill { height: 100%; background: linear-gradient(90deg, #1890ff 0%, #40a9ff 100%); border-radius: 4px; transition: width 0.1s ease; position: relative; } /* 进度填充上的圆点 */ .audio-player .progress-fill::after { content: ''; position: absolute; right: -6px; top: 50%; transform: translateY(-50%); width: 12px; height: 12px; background: #1890ff; border-radius: 50%; box-shadow: 0 2px 4px rgba(24, 144, 255, 0.3); } /* 时间显示 */ .audio-player .time-display { font-size: 12px; color: #666; min-width: 85px; text-align: right; font-family: 'Monaco', 'Menlo', monospace; background: rgba(255, 255, 255, 0.6); padding: 4px 8px; border-radius: 4px; } /* 下载按钮 */ .audio-player .download-btn { font-size: 18px; color: #666; padding: 4px; transition: all 0.2s ease; cursor: pointer; } .audio-player .download-btn:hover { color: #1890ff; transform: scale(1.1); } .audio-player .download-btn:active { transform: scale(0.95); } .audio-player .download-btn:disabled { color: #ccc; cursor: not-allowed; } /* 响应式 */ @media (max-width: 480px) { .audio-player { padding: 12px 16px; gap: 10px; } .audio-player .play-btn { font-size: 24px; } .audio-player .time-display { min-width: 70px; font-size: 11px; } .audio-player .download-btn { font-size: 16px; } }