/* ════════════════════════════════════════════════════════════
   46. 聊天窗口外观(T175 Dida,原名 MaMa):助手声明 view: messenger 时,对话页像聊天软件。
   只在 body.messenger-chat 下生效(agent-view.js 按声明切换);流式、续接、存档与普通对话页同一套。
   一次连续开口一个气泡;过程不显示,进行中三个点后只留最新注脚,正文接上即清空。
   颜色只用主题原色派生(同效果图 2026-10-15_mama_chat_window),不另选色值。
   ════════════════════════════════════════════════════════════ */
body.messenger-chat {
  --messenger-ai-bg: color-mix(in srgb, var(--theme-surface) 82%, var(--theme-primary) 6%);
  --messenger-gap: 6px;
}
:root[data-theme="light"] body.messenger-chat {
  --messenger-ai-bg: color-mix(in srgb, var(--theme-primary) 5%, var(--theme-bg));
}

/* 唯一对话:没有别的话题可换 */
body.single-conversation-chat #chat-view .topbar-title-wrap { display: none; }
/* 助手声明提醒只通过自然对话表达；设置中的自动化记录仍可查看。 */
body.hide-watch-ui #chat-view .topbar-watch,
body.hide-watch-ui #chat-view .event-banner.is-watch-card,
body.hide-watch-ui #chat-view .event-banner.is-watch-source { display: none; }

/* 顶栏只留头像和名字;临时模式、语音通话、模型名、任务模式都不适用 */
body.messenger-chat #btn-temp-mode,
body.messenger-chat #chat-view .topbar-sep,
body.messenger-chat #btn-voice-conversation,
body.messenger-chat #chat-agent-model,
body.messenger-chat #btn-task-mode-toggle { display: none; }

/* 回答:按已存的开口边界包气泡,段落/列表/链接在同一气泡内;插话保持用户消息 */
body.messenger-chat #chat-view .msg-ai { margin-bottom: 18px; }
body.messenger-chat #chat-view .msg-ai-reply .msg-ai-content {
  display: flex; flex-direction: column; align-items: flex-start; gap: var(--messenger-gap);
  max-width: none; line-height: 1.55;
}
body.messenger-chat #chat-view .msg-ai-reply .msg-ai-utterance {
  margin: 0; max-width: min(82%, 640px); box-sizing: border-box;
  padding: 9px 14px; border-radius: 20px;
  background: var(--messenger-ai-bg); color: var(--text-main);
}
body.messenger-chat #chat-view .msg-ai-utterance > :first-child { margin-top: 0; }
body.messenger-chat #chat-view .msg-ai-utterance > :last-child { margin-bottom: 0; }
body.messenger-chat #chat-view .msg-ai-content > .msg-interjection { align-self: stretch; }
/* 气泡里不出文档样式(A19、§17.4):标题按加粗正文显示,分隔线不画 */
body.messenger-chat #chat-view .msg-ai-utterance :is(h1, h2, h3, h4, h5, h6) {
  display: block; margin: 0 0 4px; padding: 0; border: 0;
  font-size: inherit; line-height: inherit; letter-spacing: normal; font-weight: 600; color: var(--text-bright);
}
body.messenger-chat #chat-view .msg-ai-utterance :is(h1, h2, h3, h4, h5, h6)::before { content: none; }
body.messenger-chat #chat-view .msg-ai-utterance hr { display: none; }

/* 站内链接(查记录给出的“那段对话”)做成气泡里的小按钮,点了在站内跳过去 */
body.messenger-chat #chat-view .msg-ai-content a[href*="/m/?c="] {
  display: inline-flex; align-items: center; gap: 2px; margin: 4px 0 2px;
  padding: 3px 11px; border: 0; border-radius: 14px;
  font-size: 14px; line-height: 1.5; color: var(--text-bright); text-decoration: none;
  background: color-mix(in srgb, var(--theme-primary) 8%, transparent);
}
/* 盖掉全站链接的下划线动画(05-messages .msg-ai-content a::after),改成一个“›” */
body.messenger-chat #chat-view .msg-ai-content a[href*="/m/?c="]::after {
  content: "\203A"; position: static; width: auto; height: auto; margin-left: 3px;
  background: none; transform: none; opacity: 0.7; transition: none;
}

/* 回执(T187):你最后一句话下一行小字,只写服务器回的真实状态(已送达 / 已查看 / 未送达);
   对方在写只用一点一划,不写字。正文一出现就收起(由 turn-receipts.js 摘掉) */
body.messenger-chat #chat-view .turn-receipt { display: block; margin-top: -4px; }

/* 过程不显示:模型与用时、“用了 N 项能力”、过程记录、工具台 */
body.messenger-chat #chat-view .msg-ai-footer,
body.messenger-chat #chat-view .msg-ai-record,
body.messenger-chat #chat-view .turn-cap-entry,
body.messenger-chat #chat-view .turn-record,
body.messenger-chat #chat-view .tool-console { display: none; }

body.messenger-chat #chat-view .turn-act-note { display: none; }

/* 进行中:活动行只剩一个气泡,里面是一点一划按电码节奏闪(嘀、嗒、停,Dida 的标志,见 VISUAL_DESIGN_PRINCIPLES「Dida」);
   复用回响图标的元素:i 作点、第一个 b 作划,第二个 b 不用 */
body.messenger-chat #chat-view .turn-activity { margin-bottom: 18px; }
body.messenger-chat #chat-view .msg-ai:has(+ .turn-activity),
body.messenger-chat #chat-view .msg-ai:has(+ .thinking-row + .turn-activity) { margin-bottom: var(--messenger-gap); }
body.messenger-chat #chat-view .turn-act-row {
  pointer-events: none; margin-left: 0; min-height: 0; padding: 13px 16px;
  max-width: min(82%, 640px); border-radius: 20px; background: var(--messenger-ai-bg);
}
body.messenger-chat #chat-view .turn-act-row > :not(.turn-act-lead):not(.turn-messenger-note),
body.messenger-chat #chat-view .turn-act-lead > :not(.turn-echo) { display: none; }
body.messenger-chat #chat-view .turn-act-row:has(.turn-messenger-note:not([hidden])) { padding: 9px 14px 9px 16px; }
body.messenger-chat #chat-view .turn-messenger-note {
  min-width: 0; margin-left: 10px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  font-size: 13px; line-height: 1.4; color: var(--text-muted);
}
body.messenger-chat #chat-view .turn-messenger-note[hidden] { display: none; }
body.messenger-chat #chat-view .turn-act-lead { width: auto; height: auto; margin: 0; }
body.messenger-chat #chat-view .turn-echo { display: inline-flex; gap: 6px; width: auto; height: 6px; }
body.messenger-chat #chat-view .turn-echo i,
body.messenger-chat #chat-view .turn-echo b {
  position: static; width: 6px; height: 6px; margin: 0; border: 0; border-radius: 3px;
  background: var(--text-muted); opacity: 0.25; transform: none;
  animation: messengerDit 1.8s infinite;
}
body.messenger-chat #chat-view .turn-echo b { width: 18px; animation-name: messengerDah; }
body.messenger-chat #chat-view .turn-echo b + b { display: none; }
/* 节奏单位 0.15 秒:点亮 1、空 1、划亮 3、停 7,一轮 1.8 秒 */
@keyframes messengerDit { 0% { opacity: 0.25; } 1%, 8.3% { opacity: 1; } 10%, 100% { opacity: 0.25; } }
@keyframes messengerDah { 0%, 16.7% { opacity: 0.25; } 17.7%, 41.7% { opacity: 1; } 43.4%, 100% { opacity: 0.25; } }
@media (prefers-reduced-motion: reduce) {
  body.messenger-chat #chat-view .turn-echo i,
  body.messenger-chat #chat-view .turn-echo b { animation: none; opacity: 0.6; }
}
