/* chat.css — 新消息气泡与工具栏新增按钮（源文件行 1032-1090，保持原顺序） */
  /* ===== 新消息气泡（带头像+名称） ===== */
  .msg-wrapper{
    display:flex;gap:8px;max-width:85%;align-items:flex-start;animation:msgIn .2s;
  }
  .msg-wrapper.me{align-self:flex-end;flex-direction:row-reverse}
  .msg-wrapper.them{align-self:flex-start;flex-direction:row}
  .msg-avatar{
    width:36px;height:36px;border-radius:50%;flex-shrink:0;
    display:flex;align-items:center;justify-content:center;
    font-size:14px;font-weight:700;color:#fff;
    margin-top:2px;
  }
  .msg-body{display:flex;flex-direction:column;min-width:60px;max-width:100%}
  .msg-name{
    font-size:11px;font-weight:600;color:var(--text-dim);
    margin-bottom:3px;padding:0 4px;white-space:nowrap;
  }
  .msg-wrapper.me .msg-name{text-align:right;color:rgba(74,158,255,.9)}
  .msg-wrapper.them .msg-name{text-align:left;color:#7eb8ff}
  .msg-bubble{
    padding:10px 14px;border-radius:16px;font-size:14px;
    line-height:1.5;word-break:break-word;position:relative;
    display:inline-block;min-width:40px;
  }
  .msg-wrapper.me .msg-bubble{background:var(--primary);color:#fff;border-bottom-right-radius:4px}
  .msg-wrapper.them .msg-bubble{background:var(--surface);color:var(--text);border-bottom-left-radius:4px}
  .msg-bubble .time{font-size:10px;opacity:.6;margin-top:2px;text-align:right}
  .msg-bubble .status-line{
    display:flex;align-items:center;justify-content:flex-end;
    gap:4px;margin-top:2px;font-size:10px;opacity:.8;
  }
  .msg-bubble .status-line .time{font-size:10px;opacity:.7;margin:0}
  .msg-bubble.image-msg{padding:6px;background:transparent}
  .msg-bubble.image-msg img{max-width:280px;border-radius:12px;display:block;cursor:pointer;box-shadow:0 4px 12px rgba(0,0,0,.3)}
  .msg-bubble.file-msg{display:flex;align-items:center;gap:12px;padding:12px 16px;min-width:220px}
  .msg-bubble.file-msg .file-icon{font-size:28px;flex-shrink:0}
  .msg-bubble.file-msg .file-info{flex:1;min-width:0}
  .msg-bubble.file-msg .file-name{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .msg-bubble.file-msg .file-size{font-size:11px;opacity:.8;margin-top:2px}
  .msg-bubble.file-msg .file-action{
    padding:6px 12px;border-radius:16px;border:none;
    background:rgba(255,255,255,.2);color:inherit;
    font-size:12px;font-weight:600;cursor:pointer;flex-shrink:0;
  }
  .msg-bubble.voice-msg{display:flex;align-items:center;gap:10px;padding:10px 14px;min-width:160px}
  .voice-play{
    width:34px;height:34px;border-radius:50%;border:none;
    background:rgba(255,255,255,.2);color:inherit;
    display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;
  }
  .msg-wrapper.me .voice-play{background:rgba(255,255,255,.25)}
  .msg-wrapper.them .voice-play{background:rgba(74,158,255,.2);color:var(--primary)}
  .waveform{display:flex;align-items:center;gap:2px;height:24px;flex:1}
  .wave-bar{width:2px;background:rgba(255,255,255,.5);border-radius:1px;transition:background .1s}
  .wave-bar.active{background:#fff}
  .msg-wrapper.them .wave-bar{background:rgba(255,255,255,.35)}
  .msg-wrapper.them .wave-bar.active{background:var(--primary)}
  .voice-duration{font-size:12px;opacity:.7;flex-shrink:0;min-width:24px}

