/* 声镜页面：沿用 content.css 的文章卡片，只补充录音控件、指标和曲线 */
.voice-panel { margin-bottom: 22px; }
.voice-panel h2 { margin-top: 0; }
.voice-panel[hidden] { display: none; }
#voice-result { scroll-margin-top: 110px; }
.voice-privacy { padding: 10px 14px; border-radius: 12px; background: var(--qx-mist); }
.voice-prompt { font-size: 1.05rem; }
.voice-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin: 18px 0 8px; }
.voice-actions .button { border: 0; cursor: pointer; min-width: 9em; }
.voice-actions .button:disabled { opacity: .6; cursor: default; }
.voice-actions .button.is-recording { background: #b4685a; }
.voice-upload { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px; color: var(--qx-muted); font-size: .95rem; }
.voice-upload input { max-width: 100%; font-size: 14px; }
.voice-status { min-height: 1.8em; color: var(--qx-muted); margin: 6px 0 0; }
.voice-muted { color: var(--qx-muted); }
.voice-feel { font-size: 1.05rem; color: var(--qx-pine); }
.voice-warn { margin: 0 0 12px; padding: 10px 14px 10px 32px; border-radius: 12px; background: #fbf1e6; color: #7a5a35; }
.voice-metrics { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px; margin: 14px 0; }
.voice-metric { padding: 10px 12px; border: 1px solid var(--qx-border); border-radius: 12px; background: #fffefa; }
.voice-metric span { display: block; color: var(--qx-muted); font-size: .82rem; }
.voice-metric strong { display: block; color: var(--qx-pine); font-size: 1.1rem; font-variant-numeric: tabular-nums; }
.voice-canvas { display: block; width: 100%; height: 160px; border: 1px solid var(--qx-border); border-radius: 12px; background: #fffefa; }
.voice-result-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.voice-result-actions button, .voice-history-clear { padding: 8px 14px; border: 1px solid var(--qx-border); border-radius: 999px; background: #fcfaf5; color: var(--qx-pine); font: inherit; font-size: .9rem; cursor: pointer; }
.voice-table-wrap { overflow-x: auto; }
.voice-table { border-collapse: collapse; width: 100%; font-size: .9rem; font-variant-numeric: tabular-nums; }
.voice-table th, .voice-table td { border-bottom: 1px solid var(--qx-border); padding: 6px 8px; text-align: left; white-space: nowrap; }
.voice-table th { color: var(--qx-muted); font-weight: 500; }
.voice-history-clear { margin-top: 12px; }
