/* voice.css — 语音消息 / 录音覆盖层 / 导出提醒（源文件行 628-670，保持原顺序） */
  /* ===== 语音消息 ===== */
  .msg.voice{min-width:120px;padding:10px 14px;display:flex;align-items:center;gap:10px}
  .msg.voice .voice-play{
    width:32px;height:32px;border-radius:50%;border:none;
    background:rgba(255,255,255,.2);color:inherit;
    font-size:12px;cursor:pointer;flex-shrink:0;
    display:flex;align-items:center;justify-content:center;
  }
  .msg.voice .waveform{
    flex:1;display:flex;align-items:center;gap:2px;height:24px;
  }
  .msg.voice .wave-bar{
    flex:1;background:currentColor;opacity:.6;border-radius:1px;
    transition:opacity .1s;
  }
  .msg.voice .wave-bar.active{opacity:1}
  .msg.voice .voice-duration{font-size:11px;opacity:.8;flex-shrink:0;font-variant-numeric:tabular-nums}

  /* ===== 录音中覆盖提示 ===== */
  .recording-overlay{
    position:fixed;bottom:100px;left:50%;transform:translateX(-50%);
    background:var(--red);color:#fff;padding:14px 24px;border-radius:30px;
    display:none;align-items:center;gap:10px;z-index:1500;
    box-shadow:0 10px 30px rgba(231,76,60,.4);font-size:14px;font-weight:600;
  }
  .recording-overlay.show{display:flex}
  .recording-overlay .rec-indicator{
    width:12px;height:12px;border-radius:50%;background:#fff;
    animation:pulse 1s infinite;
  }
  .recording-overlay.cancel{background:#555}
  .recording-overlay .slide-cancel{
    font-size:12px;opacity:.8;margin-left:8px;
  }

  /* ===== 导出提醒弹窗 ===== */
  .export-remind-box{text-align:center}
  .export-remind-box .remind-icon{font-size:48px;margin-bottom:12px}
  .export-remind-box p{font-size:14px;color:var(--text-dim);line-height:1.6;margin-bottom:4px}
  .export-remind-box .time-left{font-size:18px;font-weight:700;color:var(--yellow);margin:8px 0}
  .export-remind-box .modal-actions{justify-content:center;gap:12px}
  .export-remind-box .modal-actions button{padding:10px 20px}

