/* ═══════════════════════════════════════════
   NTR互动文学引擎 · 完整CSS v6.1
   ═══════════════════════════════════════════ */

/* ===== A. 顶部信息栏 ===== */

story-header {
  display: block;
  width: 100%;
  margin: 0 0 18px 0;
  padding: 16px 22px;
  border-radius: 14px;
  background: linear-gradient(135deg, #1c2440, #2b2146 55%, #312747) !important;
  border: 1px solid rgba(164, 205, 255, 0.38) !important;
  box-shadow: 0 8px 24px rgba(31, 42, 68, 0.22), inset 0 0 0 1px rgba(255, 255, 255, 0.04) !important;
  position: relative;
  overflow: hidden;
}

story-header::before {
  content: '';
  position: absolute;
  top: -50%;
  left: -25%;
  width: 60%;
  height: 200%;
  background: radial-gradient(ellipse, rgba(143, 183, 255, 0.09), transparent 68%);
  pointer-events: none;
}

story-header p {
  margin: 0;
  color: #f6f8ff !important;
  font-size: 0.96em;
  font-weight: 650 !important;
  letter-spacing: 0.4px;
  line-height: 1.6;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.35) !important;
}

.is-assistant .rili-markdown-renderer story-header,
.is-assistant .rili-markdown-renderer story-header p {
  color: #f4f7ff !important;
}

/* ===== B. 正文区域 ===== */

.story-text {
  display: block;
  width: 100%;
  margin: 0 0 20px 0;
  padding: 20px 18px;
  background: linear-gradient(180deg, #ffffff, #fcfcff);
  border-radius: 14px;
  border: 1px solid rgba(200, 210, 230, 0.55);
  box-shadow: 0 4px 16px rgba(100, 120, 160, 0.07);
}

.story-text p {
  margin: 0 0 14px 0;
  color: #253044 !important;
  font-size: 1.02em;
  line-height: 1.92;
  letter-spacing: 0.2px;
  text-indent: 2em;
}

.story-text p:last-child {
  margin-bottom: 0;
}

.is-assistant .rili-markdown-renderer .story-text,
.is-assistant .rili-markdown-renderer .story-text p {
  color: #253044 !important;
}

/* ===== C. 状态栏 ===== */

status {
  display: block;
  width: 100%;
  margin: 20px 0 0 0;
  padding: 16px;
  background: linear-gradient(160deg, #141a2e, #1b2240 55%, #161d35);
  border-radius: 16px;
  border: 1px solid rgba(143, 183, 255, 0.24);
  box-shadow: 0 10px 30px rgba(15, 20, 40, 0.28);
}

.is-assistant .rili-markdown-renderer status,
.is-assistant .rili-markdown-renderer status p,
.is-assistant .rili-markdown-renderer status details,
.is-assistant .rili-markdown-renderer status details p {
  color: #eaf0ff !important;
}

status details {
  display: block;
  margin-bottom: 10px;
  border-radius: 11px;
  overflow: hidden;
  border: 1px solid rgba(154, 190, 255, 0.18);
  background: #151a2a !important;
}

status details:last-child {
  margin-bottom: 0;
}

status summary {
  display: block;
  padding: 12px 16px;
  cursor: pointer;
  color: #ffffff !important;
  font-weight: 800;
  font-size: 0.95em;
  letter-spacing: 0.3px;
  transition: background 0.2s;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.38) !important;
}

.is-assistant .rili-markdown-renderer status summary {
  color: #ffffff !important;
  opacity: 1 !important;
}

status summary:hover {
  filter: brightness(1.1);
}

status details:nth-of-type(1) summary {
  background: linear-gradient(135deg, #5577b0, #7d9bd2) !important;
}

status details:nth-of-type(2) summary {
  background: linear-gradient(135deg, #6862b8, #9888df) !important;
}

status details:nth-of-type(3) summary {
  background: linear-gradient(135deg, #528a9e, #6bb8c8) !important;
}

status details:nth-of-type(4) summary {
  background: linear-gradient(135deg, #756095, #ae8dcc) !important;
}

status details:nth-of-type(5) summary {
  background: linear-gradient(135deg, #8a7750, #c1aa6a) !important;
}

status details:nth-of-type(6) summary {
  background: linear-gradient(135deg, #437d77, #65b7ae) !important;
}

status details:nth-of-type(7) summary {
  background: linear-gradient(135deg, #5f6c7d, #91a0b4) !important;
}

status details > p {
  padding: 4px 16px;
  margin: 0;
  color: #eaf0ff !important;
  background: #151a2a !important;
  font-size: 0.9em;
  line-height: 1.85;
  border-bottom: 1px solid rgba(154, 190, 255, 0.07);
  opacity: 1 !important;
}

status details > p:last-child {
  border-bottom: none;
}

.is-assistant .rili-markdown-renderer status details > p {
  background: #151a2a !important;
  color: #eaf0ff !important;
  opacity: 1 !important;
}

.is-assistant .rili-markdown-renderer status strong,
status strong {
  color: #cfe0ff !important;
  font-weight: 800 !important;
  text-shadow: 0 0 8px rgba(143, 183, 255, 0.18) !important;
}

/* 行动建议按钮 */
status div[data-action] {
  display: block;
  margin: 6px 16px;
  padding: 11px 15px;
  border-radius: 9px;
  color: #f1f6ff !important;
  background: #1b2235 !important;
  border: 1px solid rgba(143, 183, 255, 0.2);
  cursor: pointer;
  font-size: 0.9em;
  transition: all 0.2s;
  opacity: 1 !important;
}

status div[data-action]:hover {
  color: #ffffff !important;
  background: #222b42 !important;
  border-color: rgba(143, 183, 255, 0.45);
  transform: translateX(3px);
}

/* ===== D. 微信组件 ===== */

wechat {
  display: block;
  max-width: 560px;
  margin: 20px auto;
  border-radius: 16px;
  overflow: hidden;
  background: #f5f5f5;
  border: 1px solid #e0e0e0;
  box-shadow: 0 6px 22px rgba(0, 0, 0, 0.09);
  color: #222 !important;
}

.is-assistant .rili-markdown-renderer wechat,
.is-assistant .rili-markdown-renderer wechat p,
.is-assistant .rili-markdown-renderer wechat-top p,
.is-assistant .rili-markdown-renderer wechat-bubble {
  color: #222 !important;
}

wechat-top {
  display: block;
  padding: 14px 18px;
  background: #ededed;
  border-bottom: 1px solid #ddd;
  text-align: center;
}

wechat-top p {
  margin: 0;
  color: #222 !important;
  font-weight: 700;
  font-size: 1em;
}

wechat-body {
  display: block;
  padding: 15px;
  max-height: 520px;
  overflow-y: auto;
}

wechat-date,
wechat-time {
  display: block;
  width: fit-content;
  margin: 10px auto;
  padding: 3px 10px;
  border-radius: 4px;
  color: #999 !important;
  background: rgba(0, 0, 0, 0.04);
  font-size: 0.78em;
}

.is-assistant .rili-markdown-renderer wechat-date,
.is-assistant .rili-markdown-renderer wechat-time {
  color: #999 !important;
}

wechat-msg {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  margin-bottom: 12px;
}

wechat-msg.left {
  flex-direction: row;
}

wechat-msg.right {
  flex-direction: row-reverse;
}

wechat-msg.system {
  justify-content: center;
}

wechat-avatar {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  flex-shrink: 0;
  border-radius: 6px;
  background: #ddd;
  font-size: 1.3em;
}

wechat-bubble {
  display: block;
  max-width: 72%;
  padding: 10px 13px;
  border-radius: 6px;
  background: #fff;
  color: #222 !important;
  font-size: 0.94em;
  line-height: 1.65;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
  position: relative;
}

wechat-msg.right wechat-bubble {
  background: #95ec69;
  color: #222 !important;
}

wechat-sys-text,
wechat-recall {
  display: block;
  width: fit-content;
  max-width: 80%;
  margin: 0 auto;
  padding: 4px 10px;
  border-radius: 4px;
  background: rgba(0, 0, 0, 0.04);
  color: #999 !important;
  font-size: 0.82em;
  text-align: center;
}

.is-assistant .rili-markdown-renderer wechat-sys-text,
.is-assistant .rili-markdown-renderer wechat-recall {
  color: #999 !important;
}

wechat-img {
  display: block;
  max-width: 100%;
  border-radius: 4px;
  overflow: hidden;
}

wechat-img img {
  display: block;
  max-width: 100%;
  height: auto;
}

/* ===== E. 平台组件美化 ===== */

/* 输入框 */
.chat-input-box,
.rili-chat-input-box {
  background: linear-gradient(135deg, #f9fafc, #ffffff) !important;
  border: 1px solid rgba(143, 183, 255, 0.28) !important;
  border-radius: 14px !important;
  box-shadow: 0 4px 18px rgba(100, 120, 160, 0.08) !important;
  transition: all 0.25s ease;
}

.chat-input-box:focus-within,
.rili-chat-input-box:focus-within {
  border-color: rgba(85, 119, 176, 0.55) !important;
  box-shadow: 0 6px 24px rgba(85, 119, 176, 0.15) !important;
}

.chat-input-box textarea,
.rili-chat-input-box textarea {
  color: #2c3e50 !important;
  font-size: 0.98em !important;
  line-height: 1.7 !important;
}

.chat-input-box textarea::placeholder,
.rili-chat-input-box textarea::placeholder {
  color: rgba(100, 120, 160, 0.45) !important;
}

/* 发送按钮 */
.chat-send-btn,
.rili-chat-send-btn {
  background: linear-gradient(135deg, #5577b0, #7d9bd2) !important;
  border: none !important;
  border-radius: 10px !important;
  color: #ffffff !important;
  font-weight: 700 !important;
  box-shadow: 0 4px 12px rgba(85, 119, 176, 0.25) !important;
  transition: all 0.2s ease;
}

.chat-send-btn:hover,
.rili-chat-send-btn:hover {
  background: linear-gradient(135deg, #6888c2, #8eacde) !important;
  box-shadow: 0 6px 18px rgba(85, 119, 176, 0.35) !important;
  transform: translateY(-1px);
}

.chat-send-btn:active,
.rili-chat-send-btn:active {
  transform: translateY(0);
  box-shadow: 0 2px 8px rgba(85, 119, 176, 0.2) !important;
}

/* 模组评论区 */
.mod-comment-item,
.rili-mod-comment-item,
.comment-item,
.rili-comment-item {
  background: linear-gradient(145deg, #f8f9fc, #ffffff) !important;
  border: 1px solid rgba(200, 210, 230, 0.4) !important;
  border-radius: 12px !important;
  padding: 14px 16px !important;
  margin-bottom: 12px !important;
  box-shadow: 0 3px 10px rgba(100, 120, 160, 0.06) !important;
  transition: all 0.2s ease;
}

.mod-comment-item:hover,
.rili-mod-comment-item:hover,
.comment-item:hover,
.rili-comment-item:hover {
  border-color: rgba(143, 183, 255, 0.5) !important;
  box-shadow: 0 5px 16px rgba(100, 120, 160, 0.12) !important;
  transform: translateY(-1px);
}

.mod-comment-author,
.rili-mod-comment-author,
.comment-author,
.rili-comment-author {
  color: #5577b0 !important;
  font-weight: 800 !important;
  font-size: 0.96em !important;
}

.mod-comment-content,
.rili-mod-comment-content,
.comment-content,
.rili-comment-content {
  color: #2c3e50 !important;
  font-size: 0.93em !important;
  line-height: 1.75 !important;
  margin-top: 6px !important;
}

.mod-comment-time,
.rili-mod-comment-time,
.comment-time,
.rili-comment-time {
  color: rgba(100, 120, 160, 0.65) !important;
  font-size: 0.82em !important;
  margin-top: 8px !important;
}

/* 评分星星 */
.mod-rating,
.rili-mod-rating,
.rating-stars,
.rili-rating-stars {
  filter: drop-shadow(0 1px 3px rgba(255, 193, 7, 0.35));
}

.mod-rating svg,
.rili-mod-rating svg,
.rating-stars svg,
.rili-rating-stars svg {
  fill: #ffc107 !important;
  transition: all 0.15s ease;
}

.mod-rating svg:hover,
.rili-mod-rating svg:hover,
.rating-stars svg:hover,
.rili-rating-stars svg:hover {
  fill: #ffb300 !important;
  transform: scale(1.12);
}

/* 回复按钮 */
.comment-reply-btn,
.rili-comment-reply-btn,
.mod-comment-reply-btn,
.rili-mod-comment-reply-btn {
  background: linear-gradient(135deg, #6888c2, #8eacde) !important;
  color: #ffffff !important;
  border: none !important;
  border-radius: 8px !important;
  padding: 6px 14px !important;
  font-size: 0.88em !important;
  font-weight: 700 !important;
  box-shadow: 0 2px 8px rgba(85, 119, 176, 0.2) !important;
  transition: all 0.2s ease;
}

.comment-reply-btn:hover,
.rili-comment-reply-btn:hover,
.mod-comment-reply-btn:hover,
.rili-mod-comment-reply-btn:hover {
  background: linear-gradient(135deg, #7999d3, #9fbdea) !important;
  box-shadow: 0 4px 12px rgba(85, 119, 176, 0.3) !important;
  transform: translateY(-1px);
}

/* ===== F. 滚动条美化 ===== */

wechat-body::-webkit-scrollbar,
.chat-messages::-webkit-scrollbar,
.rili-chat-messages::-webkit-scrollbar {
  width: 7px;
}

wechat-body::-webkit-scrollbar-track,
.chat-messages::-webkit-scrollbar-track,
.rili-chat-messages::-webkit-scrollbar-track {
  background: rgba(0, 0, 0, 0.03);
  border-radius: 10px;
}

wechat-body::-webkit-scrollbar-thumb,
.chat-messages::-webkit-scrollbar-thumb,
.rili-chat-messages::-webkit-scrollbar-thumb {
  background: rgba(143, 183, 255, 0.35);
  border-radius: 10px;
  transition: background 0.2s;
}

wechat-body::-webkit-scrollbar-thumb:hover,
.chat-messages::-webkit-scrollbar-thumb:hover,
.rili-chat-messages::-webkit-scrollbar-thumb:hover {
  background: rgba(85, 119, 176, 0.55);
}

/* ===== G. 响应式适配 ===== */

@media (max-width: 768px) {
  story-header {
    padding: 14px 16px;
  }
  
  .story-text {
    padding: 16px 14px;
  }
  
  .story-text p {
    font-size: 0.98em;
    line-height: 1.85;
  }
  
  status {
    padding: 12px;
  }
  
  status summary {
    padding: 10px 14px;
    font-size: 0.92em;
  }
  
  status details > p {
    padding: 4px 14px;
    font-size: 0.88em;
  }
  
  status div[data-action] {
    margin: 5px 14px;
    padding: 10px 13px;
    font-size: 0.88em;
  }
  
  wechat {
    max-width: 100%;
    margin: 16px 0;
  }
  
  wechat-body {
    max-height: 420px;
  }
  
  wechat-bubble {
    max-width: 78%;
    font-size: 0.92em;
  }
}
/* ═══════════════════════════════════════════
   APPEND PATCH v6.2
   修复：正文美化 / 消息美化 / 聊天框美化
   使用方式：只追加到现有CSS最末尾
   ═══════════════════════════════════════════ */

/* ===== 1. 正文美化修复：同时兼容 .story-text 与旧版 story-header 后的 div ===== */

.is-assistant .rili-markdown-renderer .story-text,
.is-assistant .rili-markdown-renderer story-header + div {
  display: block !important;
  width: 100% !important;
  margin: 0 0 20px 0 !important;
  padding: 20px 18px !important;
  background: linear-gradient(180deg, #ffffff, #fcfcff) !important;
  border-radius: 14px !important;
  border: 1px solid rgba(200, 210, 230, 0.55) !important;
  box-shadow: 0 4px 16px rgba(100, 120, 160, 0.07) !important;
  color: #253044 !important;
}

.is-assistant .rili-markdown-renderer .story-text p,
.is-assistant .rili-markdown-renderer story-header + div > p {
  margin: 0 0 14px 0 !important;
  color: #253044 !important;
  font-size: 1.02em !important;
  line-height: 1.92 !important;
  letter-spacing: 0.2px !important;
  text-indent: 2em !important;
  font-weight: 400 !important;
}

.is-assistant .rili-markdown-renderer .story-text p:last-child,
.is-assistant .rili-markdown-renderer story-header + div > p:last-child {
  margin-bottom: 0 !important;
}

/* ===== 2. 顶部栏强化：防止平台默认样式覆盖 ===== */

.is-assistant .rili-markdown-renderer story-header {
  display: block !important;
  width: 100% !important;
  margin: 0 0 18px 0 !important;
  padding: 16px 22px !important;
  border-radius: 14px !important;
  background: linear-gradient(135deg, #1c2440, #2b2146 55%, #312747) !important;
  border: 1px solid rgba(164, 205, 255, 0.38) !important;
  box-shadow: 0 8px 24px rgba(31, 42, 68, 0.22), inset 0 0 0 1px rgba(255, 255, 255, 0.04) !important;
  position: relative !important;
  overflow: hidden !important;
  color: #f4f7ff !important;
}

.is-assistant .rili-markdown-renderer story-header p {
  margin: 0 !important;
  color: #f6f8ff !important;
  font-size: 0.96em !important;
  font-weight: 650 !important;
  letter-spacing: 0.4px !important;
  line-height: 1.6 !important;
  text-indent: 0 !important;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.35) !important;
}

/* ===== 3. 微信消息结构修复：自定义标签全部强制块级化 ===== */

.is-assistant .rili-markdown-renderer wechat,
.is-assistant .rili-markdown-renderer wechat-top,
.is-assistant .rili-markdown-renderer wechat-body,
.is-assistant .rili-markdown-renderer wechat-date,
.is-assistant .rili-markdown-renderer wechat-time,
.is-assistant .rili-markdown-renderer wechat-msg,
.is-assistant .rili-markdown-renderer wechat-avatar,
.is-assistant .rili-markdown-renderer wechat-bubble,
.is-assistant .rili-markdown-renderer wechat-sys-text,
.is-assistant .rili-markdown-renderer wechat-recall,
.is-assistant .rili-markdown-renderer wechat-img,
.is-assistant .rili-markdown-renderer wechat-redpacket,
.is-assistant .rili-markdown-renderer wechat-transfer,
.is-assistant .rili-markdown-renderer wechat-voice {
  box-sizing: border-box !important;
  opacity: 1 !important;
}

.is-assistant .rili-markdown-renderer wechat {
  display: block !important;
  max-width: 560px !important;
  margin: 20px auto !important;
  border-radius: 16px !important;
  overflow: hidden !important;
  background: #f5f5f5 !important;
  border: 1px solid #e0e0e0 !important;
  box-shadow: 0 6px 22px rgba(0, 0, 0, 0.09) !important;
  color: #222222 !important;
  font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", Arial, sans-serif !important;
}

.is-assistant .rili-markdown-renderer wechat-top {
  display: block !important;
  padding: 14px 18px !important;
  background: #ededed !important;
  border-bottom: 1px solid #dddddd !important;
  text-align: center !important;
}

.is-assistant .rili-markdown-renderer wechat-top p {
  margin: 0 !important;
  color: #222222 !important;
  font-weight: 700 !important;
  font-size: 1em !important;
  line-height: 1.5 !important;
  text-indent: 0 !important;
}

.is-assistant .rili-markdown-renderer wechat-body {
  display: block !important;
  padding: 15px !important;
  max-height: 520px !important;
  overflow-y: auto !important;
  background: #f5f5f5 !important;
}

.is-assistant .rili-markdown-renderer wechat-date,
.is-assistant .rili-markdown-renderer wechat-time {
  display: block !important;
  width: fit-content !important;
  margin: 10px auto !important;
  padding: 3px 10px !important;
  border-radius: 4px !important;
  color: #999999 !important;
  background: rgba(0, 0, 0, 0.04) !important;
  font-size: 0.78em !important;
  line-height: 1.5 !important;
  text-align: center !important;
}

.is-assistant .rili-markdown-renderer wechat-msg {
  display: flex !important;
  align-items: flex-start !important;
  gap: 9px !important;
  margin: 0 0 12px 0 !important;
  width: 100% !important;
}

.is-assistant .rili-markdown-renderer wechat-msg.left {
  flex-direction: row !important;
  justify-content: flex-start !important;
}

.is-assistant .rili-markdown-renderer wechat-msg.right {
  flex-direction: row-reverse !important;
  justify-content: flex-start !important;
}

.is-assistant .rili-markdown-renderer wechat-msg.system {
  justify-content: center !important;
}

.is-assistant .rili-markdown-renderer wechat-avatar {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 38px !important;
  height: 38px !important;
  min-width: 38px !important;
  flex-shrink: 0 !important;
  border-radius: 6px !important;
  background: #dddddd !important;
  font-size: 1.3em !important;
  line-height: 1 !important;
}

.is-assistant .rili-markdown-renderer wechat-bubble {
  display: block !important;
  max-width: 72% !important;
  padding: 10px 13px !important;
  border-radius: 6px !important;
  background: #ffffff !important;
  color: #222222 !important;
  font-size: 0.94em !important;
  line-height: 1.65 !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06) !important;
  word-break: break-word !important;
  white-space: normal !important;
  text-indent: 0 !important;
}

.is-assistant .rili-markdown-renderer wechat-msg.right wechat-bubble {
  background: #95ec69 !important;
  color: #222222 !important;
}

.is-assistant .rili-markdown-renderer wechat-bubble p {
  margin: 0 !important;
  color: #222222 !important;
  line-height: 1.65 !important;
  text-indent: 0 !important;
}

.is-assistant .rili-markdown-renderer wechat-sys-text,
.is-assistant .rili-markdown-renderer wechat-recall {
  display: block !important;
  width: fit-content !important;
  max-width: 80% !important;
  margin: 0 auto !important;
  padding: 4px 10px !important;
  border-radius: 4px !important;
  background: rgba(0, 0, 0, 0.04) !important;
  color: #999999 !important;
  font-size: 0.82em !important;
  line-height: 1.5 !important;
  text-align: center !important;
}

/* ===== 4. 普通消息卡片修复：平台消息容器兜底美化 ===== */

.message-content .rili-markdown-renderer,
.chat-message .rili-markdown-renderer,
.rili-message .rili-markdown-renderer,
.is-assistant .rili-markdown-renderer {
  line-height: 1.78 !important;
}

.is-assistant {
  --append-patch-card-bg: #ffffff;
  --append-patch-card-text: #253044;
}

.is-assistant .rili-markdown-renderer > p {
  color: #253044 !important;
  line-height: 1.9 !important;
  font-size: 1.01em !important;
}

/* ===== 5. 聊天输入框修复：兼容多套平台类名与textarea结构 ===== */

.chat-input-box,
.rili-chat-input-box,
.chat-input-area,
.rili-chat-input-area,
.input-area,
.rili-input-area,
[class*="chat-input"],
[class*="ChatInput"],
[class*="input-box"],
[class*="InputBox"] {
  background: linear-gradient(135deg, #f9fafc, #ffffff) !important;
  border: 1px solid rgba(143, 183, 255, 0.32) !important;
  border-radius: 14px !important;
  box-shadow: 0 4px 18px rgba(100, 120, 160, 0.08) !important;
}

.chat-input-box:focus-within,
.rili-chat-input-box:focus-within,
.chat-input-area:focus-within,
.rili-chat-input-area:focus-within,
.input-area:focus-within,
.rili-input-area:focus-within,
[class*="chat-input"]:focus-within,
[class*="ChatInput"]:focus-within,
[class*="input-box"]:focus-within,
[class*="InputBox"]:focus-within {
  border-color: rgba(85, 119, 176, 0.58) !important;
  box-shadow: 0 6px 24px rgba(85, 119, 176, 0.16) !important;
}

textarea,
.chat-input-box textarea,
.rili-chat-input-box textarea,
.chat-input-area textarea,
.rili-chat-input-area textarea,
.input-area textarea,
.rili-input-area textarea,
[class*="chat-input"] textarea,
[class*="ChatInput"] textarea,
[class*="input-box"] textarea,
[class*="InputBox"] textarea {
  color: #2c3e50 !important;
  background: rgba(255, 255, 255, 0.96) !important;
  border: 1px solid rgba(143, 183, 255, 0.24) !important;
  border-radius: 12px !important;
  font-size: 0.98em !important;
  line-height: 1.7 !important;
  padding: 10px 12px !important;
  box-shadow: inset 0 1px 3px rgba(100, 120, 160, 0.06) !important;
  outline: none !important;
}

textarea:focus,
.chat-input-box textarea:focus,
.rili-chat-input-box textarea:focus,
.chat-input-area textarea:focus,
.rili-chat-input-area textarea:focus,
.input-area textarea:focus,
.rili-input-area textarea:focus,
[class*="chat-input"] textarea:focus,
[class*="ChatInput"] textarea:focus,
[class*="input-box"] textarea:focus,
[class*="InputBox"] textarea:focus {
  border-color: rgba(85, 119, 176, 0.58) !important;
  box-shadow: inset 0 1px 3px rgba(100, 120, 160, 0.06), 0 0 0 3px rgba(85, 119, 176, 0.1) !important;
}

textarea::placeholder,
.chat-input-box textarea::placeholder,
.rili-chat-input-box textarea::placeholder,
.chat-input-area textarea::placeholder,
.rili-chat-input-area textarea::placeholder,
.input-area textarea::placeholder,
.rili-input-area textarea::placeholder {
  color: rgba(100, 120, 160, 0.48) !important;
}

/* ===== 6. 发送按钮修复：兼容button与平台类名 ===== */

.chat-send-btn,
.rili-chat-send-btn,
.send-button,
.rili-send-button,
button[class*="send"],
button[class*="Send"],
[class*="send-btn"],
[class*="SendBtn"] {
  background: linear-gradient(135deg, #5577b0, #7d9bd2) !important;
  border: none !important;
  border-radius: 10px !important;
  color: #ffffff !important;
  font-weight: 700 !important;
  box-shadow: 0 4px 12px rgba(85, 119, 176, 0.25) !important;
  transition: all 0.2s ease !important;
}

.chat-send-btn:hover,
.rili-chat-send-btn:hover,
.send-button:hover,
.rili-send-button:hover,
button[class*="send"]:hover,
button[class*="Send"]:hover,
[class*="send-btn"]:hover,
[class*="SendBtn"]:hover {
  background: linear-gradient(135deg, #6888c2, #8eacde) !important;
  box-shadow: 0 6px 18px rgba(85, 119, 176, 0.35) !important;
  transform: translateY(-1px) !important;
}

/* ===== 7. 行动建议编号显示强化：防止平台把编号压扁 ===== */

.is-assistant .rili-markdown-renderer status div[data-action] {
  display: block !important;
  margin: 6px 16px !important;
  padding: 11px 15px !important;
  border-radius: 9px !important;
  color: #f1f6ff !important;
  background: #1b2235 !important;
  border: 1px solid rgba(143, 183, 255, 0.2) !important;
  cursor: pointer !important;
  font-size: 0.9em !important;
  line-height: 1.7 !important;
  transition: all 0.2s ease !important;
  opacity: 1 !important;
  text-indent: 0 !important;
}

.is-assistant .rili-markdown-renderer status div[data-action]:hover {
  color: #ffffff !important;
  background: #222b42 !important;
  border-color: rgba(143, 183, 255, 0.45) !important;
  transform: translateX(3px) !important;
}

/* ===== 8. 移动端补丁 ===== */

@media (max-width: 768px) {
  .is-assistant .rili-markdown-renderer .story-text,
  .is-assistant .rili-markdown-renderer story-header + div {
    padding: 16px 14px !important;
    border-radius: 12px !important;
  }

  .is-assistant .rili-markdown-renderer .story-text p,
  .is-assistant .rili-markdown-renderer story-header + div > p {
    font-size: 0.98em !important;
    line-height: 1.85 !important;
  }

  .is-assistant .rili-markdown-renderer story-header {
    padding: 14px 16px !important;
    border-radius: 12px !important;
  }

  .is-assistant .rili-markdown-renderer wechat {
    max-width: 100% !important;
    margin: 16px 0 !important;
    border-radius: 12px !important;
  }

  .is-assistant .rili-markdown-renderer wechat-body {
    max-height: 420px !important;
    padding: 12px !important;
  }

  .is-assistant .rili-markdown-renderer wechat-bubble {
    max-width: 78% !important;
    font-size: 0.92em !important;
  }

  .is-assistant .rili-markdown-renderer wechat-avatar {
    width: 34px !important;
    height: 34px !important;
    min-width: 34px !important;
  }

  .is-assistant .rili-markdown-renderer status div[data-action] {
    margin: 5px 14px !important;
    padding: 10px 13px !important;
    font-size: 0.88em !important;
  }
}
/* ═══════════════════════════════════════════
   APPEND PATCH v6.5
   目标：微信聊天改为截图式布局 / 头像稳定 / 昵称显示 / 正文说话分色增强
   仅追加到现有CSS最末尾
   ═══════════════════════════════════════════ */

/* ===== 1. 微信整体面板：截图式灰色聊天窗口 ===== */

.is-assistant .rili-markdown-renderer wechat,
wechat {
  display: block !important;
  max-width: 760px !important;
  width: min(100%, 760px) !important;
  margin: 22px auto !important;
  border-radius: 16px !important;
  overflow: hidden !important;
  background: #eeeeee !important;
  border: 1px solid rgba(0, 0, 0, 0.09) !important;
  box-shadow: 0 10px 30px rgba(20, 30, 50, 0.10) !important;
  color: #111827 !important;
  font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", Arial, sans-serif !important;
}

/* ===== 2. 微信顶部联系人栏 ===== */

.is-assistant .rili-markdown-renderer wechat-top,
wechat-top {
  display: block !important;
  padding: 18px 20px !important;
  background: #eeeeee !important;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08) !important;
  text-align: center !important;
}

.is-assistant .rili-markdown-renderer wechat-top p,
wechat-top p {
  margin: 0 !important;
  padding: 0 !important;
  color: #111827 !important;
  font-size: 1.08em !important;
  font-weight: 800 !important;
  line-height: 1.5 !important;
  text-indent: 0 !important;
  letter-spacing: 0.2px !important;
}

/* ===== 3. 微信消息主体 ===== */

.is-assistant .rili-markdown-renderer wechat-body,
wechat-body {
  display: block !important;
  padding: 22px 24px !important;
  background: #eeeeee !important;
  max-height: none !important;
  overflow: visible !important;
}

.is-assistant .rili-markdown-renderer wechat-time,
.is-assistant .rili-markdown-renderer wechat-date,
wechat-time,
wechat-date {
  display: block !important;
  width: fit-content !important;
  margin: 0 auto 18px auto !important;
  padding: 5px 10px !important;
  border-radius: 6px !important;
  background: #e1e1e1 !important;
  color: #9ca3af !important;
  font-size: 0.88em !important;
  line-height: 1.4 !important;
  text-align: center !important;
  text-indent: 0 !important;
}

/* ===== 4. 微信消息行：左右布局稳定 ===== */

.is-assistant .rili-markdown-renderer wechat-msg,
wechat-msg {
  display: flex !important;
  align-items: flex-start !important;
  gap: 12px !important;
  width: 100% !important;
  margin: 0 0 18px 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}

.is-assistant .rili-markdown-renderer wechat-msg.left,
wechat-msg.left {
  flex-direction: row !important;
  justify-content: flex-start !important;
}

.is-assistant .rili-markdown-renderer wechat-msg.right,
wechat-msg.right {
  flex-direction: row !important;
  justify-content: flex-end !important;
}

.is-assistant .rili-markdown-renderer wechat-msg.system,
wechat-msg.system {
  justify-content: center !important;
  align-items: center !important;
}

/* ===== 5. 微信头像：方形姓名首字头像 ===== */

.is-assistant .rili-markdown-renderer wechat-avatar,
wechat-avatar {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 46px !important;
  height: 46px !important;
  min-width: 46px !important;
  max-width: 46px !important;
  flex: 0 0 46px !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  font-size: 1.15em !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  color: #ffffff !important;
  text-indent: 0 !important;
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.10) !important;
}

.is-assistant .rili-markdown-renderer wechat-msg.left wechat-avatar,
wechat-msg.left wechat-avatar {
  background: linear-gradient(135deg, #7c6ee6, #684fc1) !important;
}

.is-assistant .rili-markdown-renderer wechat-msg.right wechat-avatar,
wechat-msg.right wechat-avatar {
  order: 2 !important;
  background: linear-gradient(135deg, #3f5f9f, #29457d) !important;
}

.is-assistant .rili-markdown-renderer wechat-avatar:empty::before,
wechat-avatar:empty::before {
  content: "人" !important;
}

/* ===== 6. 左侧昵称+气泡容器 ===== */

.is-assistant .rili-markdown-renderer wechat-content,
wechat-content {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  max-width: calc(100% - 70px) !important;
  min-width: 0 !important;
}

.is-assistant .rili-markdown-renderer wechat-name,
wechat-name {
  display: block !important;
  margin: 0 0 5px 0 !important;
  padding: 0 !important;
  color: #8b8f98 !important;
  font-size: 0.86em !important;
  line-height: 1.25 !important;
  text-indent: 0 !important;
  font-weight: 500 !important;
}

/* ===== 7. 微信气泡：白左绿右，截图式圆角 ===== */

.is-assistant .rili-markdown-renderer wechat-bubble,
wechat-bubble {
  display: block !important;
  max-width: 560px !important;
  padding: 13px 17px !important;
  border-radius: 8px !important;
  background: #ffffff !important;
  color: #111827 !important;
  font-size: 1em !important;
  font-weight: 500 !important;
  line-height: 1.72 !important;
  letter-spacing: 0.1px !important;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06) !important;
  word-break: break-word !important;
  white-space: normal !important;
  text-indent: 0 !important;
  position: relative !important;
}

.is-assistant .rili-markdown-renderer wechat-msg.left wechat-bubble,
wechat-msg.left wechat-bubble {
  border-top-left-radius: 4px !important;
}

.is-assistant .rili-markdown-renderer wechat-msg.right wechat-bubble,
wechat-msg.right wechat-bubble {
  order: 1 !important;
  background: #8bed62 !important;
  color: #111827 !important;
  border-top-right-radius: 4px !important;
  margin-left: 0 !important;
}

.is-assistant .rili-markdown-renderer wechat-bubble p,
wechat-bubble p {
  margin: 0 !important;
  padding: 0 !important;
  color: #111827 !important;
  line-height: 1.72 !important;
  text-indent: 0 !important;
  font-size: inherit !important;
}

/* ===== 8. 气泡小尖角 ===== */

.is-assistant .rili-markdown-renderer wechat-msg.left wechat-bubble::before,
wechat-msg.left wechat-bubble::before {
  content: "" !important;
  position: absolute !important;
  left: -7px !important;
  top: 12px !important;
  width: 0 !important;
  height: 0 !important;
  border-top: 7px solid transparent !important;
  border-bottom: 7px solid transparent !important;
  border-right: 8px solid #ffffff !important;
}

.is-assistant .rili-markdown-renderer wechat-msg.right wechat-bubble::after,
wechat-msg.right wechat-bubble::after {
  content: "" !important;
  position: absolute !important;
  right: -7px !important;
  top: 12px !important;
  width: 0 !important;
  height: 0 !important;
  border-top: 7px solid transparent !important;
  border-bottom: 7px solid transparent !important;
  border-left: 8px solid #8bed62 !important;
}

/* ===== 9. 系统消息 / 撤回 / 正在输入 ===== */

.is-assistant .rili-markdown-renderer wechat-sys-text,
.is-assistant .rili-markdown-renderer wechat-recall,
wechat-sys-text,
wechat-recall {
  display: block !important;
  width: fit-content !important;
  max-width: 80% !important;
  margin: 0 auto !important;
  padding: 5px 11px !important;
  border-radius: 6px !important;
  background: #e1e1e1 !important;
  color: #9ca3af !important;
  font-size: 0.84em !important;
  line-height: 1.5 !important;
  text-align: center !important;
  text-indent: 0 !important;
}

.is-assistant .rili-markdown-renderer wechat-typing,
wechat-typing {
  display: block !important;
  width: fit-content !important;
  margin: 8px auto !important;
  padding: 5px 11px !important;
  color: #9ca3af !important;
  font-size: 0.84em !important;
  text-align: center !important;
}

/* ===== 10. 红包 / 转账 / 语音 / 图片兼容截图式布局 ===== */

.is-assistant .rili-markdown-renderer wechat-redpacket,
wechat-redpacket {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  max-width: 360px !important;
  padding: 12px 14px !important;
  border-radius: 8px !important;
  background: linear-gradient(135deg, #fa9d3b, #e6542f) !important;
  box-shadow: 0 3px 10px rgba(230, 84, 47, 0.22) !important;
  color: #ffffff !important;
}

.is-assistant .rili-markdown-renderer wechat-transfer,
wechat-transfer {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  max-width: 360px !important;
  padding: 12px 14px !important;
  border-radius: 8px !important;
  background: linear-gradient(135deg, #4fa9e6, #3b7dd8) !important;
  box-shadow: 0 3px 10px rgba(59, 125, 216, 0.22) !important;
  color: #ffffff !important;
}

.is-assistant .rili-markdown-renderer redpacket-text,
.is-assistant .rili-markdown-renderer redpacket-label,
.is-assistant .rili-markdown-renderer transfer-amount,
.is-assistant .rili-markdown-renderer transfer-note,
.is-assistant .rili-markdown-renderer transfer-label,
redpacket-text,
redpacket-label,
transfer-amount,
transfer-note,
transfer-label {
  display: block !important;
  color: #ffffff !important;
  line-height: 1.5 !important;
  text-indent: 0 !important;
}

.is-assistant .rili-markdown-renderer wechat-voice,
wechat-voice {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  min-width: 140px !important;
  max-width: 260px !important;
  padding: 12px 15px !important;
  border-radius: 8px !important;
  background: #8bed62 !important;
}

.is-assistant .rili-markdown-renderer wechat-image,
wechat-image {
  display: block !important;
  max-width: 300px !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  background: #e8e8e8 !important;
  border: 1px solid #dddddd !important;
}

/* ===== 11. 修复旧结构：没有 wechat-content 时仍显示正常 ===== */

.is-assistant .rili-markdown-renderer wechat-msg.left > wechat-bubble,
wechat-msg.left > wechat-bubble {
  margin-top: 0 !important;
}

.is-assistant .rili-markdown-renderer wechat-msg.left > wechat-avatar + wechat-bubble,
wechat-msg.left > wechat-avatar + wechat-bubble {
  align-self: flex-start !important;
}

/* ===== 12. 正文说话人颜色增强 ===== */

.is-assistant .rili-markdown-renderer speaker-main,
.is-assistant .rili-markdown-renderer .speaker-main {
  color: #3f63c7 !important;
  font-weight: 900 !important;
  background: transparent !important;
  text-indent: 0 !important;
}

.is-assistant .rili-markdown-renderer speaker-female,
.is-assistant .rili-markdown-renderer .speaker-female {
  color: #d14f7b !important;
  font-weight: 900 !important;
  background: transparent !important;
  text-indent: 0 !important;
}

.is-assistant .rili-markdown-renderer speaker-third,
.is-assistant .rili-markdown-renderer .speaker-third {
  color: #7c4fd6 !important;
  font-weight: 900 !important;
  background: transparent !important;
  text-indent: 0 !important;
}

.is-assistant .rili-markdown-renderer speaker-system,
.is-assistant .rili-markdown-renderer .speaker-system {
  color: #6b7280 !important;
  font-weight: 800 !important;
  background: transparent !important;
  text-indent: 0 !important;
}

/* ===== 13. 移动端微信适配 ===== */

@media (max-width: 768px) {
  .is-assistant .rili-markdown-renderer wechat,
  wechat {
    max-width: 100% !important;
    margin: 16px 0 !important;
    border-radius: 12px !important;
  }

  .is-assistant .rili-markdown-renderer wechat-body,
  wechat-body {
    padding: 16px 12px !important;
  }

  .is-assistant .rili-markdown-renderer wechat-avatar,
  wechat-avatar {
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
    max-width: 40px !important;
    flex-basis: 40px !important;
    font-size: 1.05em !important;
  }

  .is-assistant .rili-markdown-renderer wechat-bubble,
  wechat-bubble {
    max-width: calc(100vw - 140px) !important;
    padding: 11px 14px !important;
    font-size: 0.95em !important;
    line-height: 1.65 !important;
  }

  .is-assistant .rili-markdown-renderer wechat-content,
  wechat-content {
    max-width: calc(100vw - 82px) !important;
  }

  .is-assistant .rili-markdown-renderer wechat-top,
  wechat-top {
    padding: 15px 16px !important;
  }

  .is-assistant .rili-markdown-renderer wechat-top p,
  wechat-top p {
    font-size: 1em !important;
  }
}
/* ===== 14. 正文说话人分色全局绝对霸权强化 ===== */
/* 确保任何层级下颜色都能生效，无需特定父级 */
speaker-main, .speaker-main { color: #3f63c7 !important; font-weight: 800 !important; }
speaker-female, .speaker-female { color: #d14f7b !important; font-weight: 800 !important; }
speaker-third, .speaker-third { color: #7c4fd6 !important; font-weight: 800 !important; }
speaker-system, .speaker-system { color: #6b7280 !important; font-weight: 800 !important; }
/* ═══════════════════════════════════════════
   APPEND PATCH v6.8
   目标：修复微信 / 传音玉简 / 古代书信 / 西幻水晶 / 末世通讯 / 文件形式兼容
   使用方式：只追加到现有CSS最末尾，不删除、不替换旧CSS
   注意：AI风月“内置CSS”中只放CSS；<world_context>与<chat_style_xxx>应放入世界书，不要放进CSS区
   ═══════════════════════════════════════════ */

/* ===== 0. 自定义通讯标签基础兜底：避免平台把未知标签当行内元素挤坏 ===== */

.is-assistant .rili-markdown-renderer wechat,
.is-assistant .rili-markdown-renderer wechat-top,
.is-assistant .rili-markdown-renderer wechat-body,
.is-assistant .rili-markdown-renderer wechat-content,
.is-assistant .rili-markdown-renderer wechat-name,
.is-assistant .rili-markdown-renderer wechat-date,
.is-assistant .rili-markdown-renderer wechat-time,
.is-assistant .rili-markdown-renderer wechat-msg,
.is-assistant .rili-markdown-renderer wechat-avatar,
.is-assistant .rili-markdown-renderer wechat-bubble,
.is-assistant .rili-markdown-renderer wechat-redpacket,
.is-assistant .rili-markdown-renderer wechat-transfer,
.is-assistant .rili-markdown-renderer wechat-voice,
.is-assistant .rili-markdown-renderer wechat-image,
.is-assistant .rili-markdown-renderer wechat-sys-text,
.is-assistant .rili-markdown-renderer wechat-recall,
.is-assistant .rili-markdown-renderer wechat-typing,
.is-assistant .rili-markdown-renderer jade-slip,
.is-assistant .rili-markdown-renderer jade-top,
.is-assistant .rili-markdown-renderer jade-body,
.is-assistant .rili-markdown-renderer jade-msg,
.is-assistant .rili-markdown-renderer jade-avatar,
.is-assistant .rili-markdown-renderer jade-text,
.is-assistant .rili-markdown-renderer jade-vision,
.is-assistant .rili-markdown-renderer jade-gift,
.is-assistant .rili-markdown-renderer jade-sys,
.is-assistant .rili-markdown-renderer jade-recall,
.is-assistant .rili-markdown-renderer letter,
.is-assistant .rili-markdown-renderer letter-header,
.is-assistant .rili-markdown-renderer letter-body,
.is-assistant .rili-markdown-renderer letter-footer,
.is-assistant .rili-markdown-renderer letter-note,
.is-assistant .rili-markdown-renderer crystal-comm,
.is-assistant .rili-markdown-renderer crystal-top,
.is-assistant .rili-markdown-renderer crystal-body,
.is-assistant .rili-markdown-renderer crystal-msg,
.is-assistant .rili-markdown-renderer crystal-avatar,
.is-assistant .rili-markdown-renderer crystal-bubble,
.is-assistant .rili-markdown-renderer crystal-gift,
.is-assistant .rili-markdown-renderer crystal-holo,
.is-assistant .rili-markdown-renderer crystal-charm,
.is-assistant .rili-markdown-renderer radio,
.is-assistant .rili-markdown-renderer radio-top,
.is-assistant .rili-markdown-renderer radio-body,
.is-assistant .rili-markdown-renderer radio-msg,
.is-assistant .rili-markdown-renderer wasteland-note,
.is-assistant .rili-markdown-renderer wasteland-ledger,
.is-assistant .rili-markdown-renderer wasteland-cam,
.is-assistant .rili-markdown-renderer wasteland-broadcast {
  box-sizing: border-box !important;
}

/* ===== 1. 微信 v6.8 终局修复：适配新结构 wechat-content / wechat-name / 头像 / 气泡 ===== */

.is-assistant .rili-markdown-renderer wechat,
wechat {
  display: block !important;
  width: min(100%, 760px) !important;
  max-width: 760px !important;
  margin: 22px auto !important;
  border-radius: 18px !important;
  overflow: hidden !important;
  background: #eeeeee !important;
  border: 1px solid rgba(15, 23, 42, 0.10) !important;
  box-shadow: 0 12px 34px rgba(15, 23, 42, 0.14) !important;
  color: #111827 !important;
  font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", Arial, sans-serif !important;
}

.is-assistant .rili-markdown-renderer wechat-top,
wechat-top {
  display: block !important;
  padding: 16px 18px !important;
  background: #f1f1f1 !important;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08) !important;
  text-align: center !important;
}

.is-assistant .rili-markdown-renderer wechat-top p,
wechat-top p {
  margin: 0 !important;
  padding: 0 !important;
  color: #111827 !important;
  font-size: 1.04em !important;
  font-weight: 850 !important;
  line-height: 1.45 !important;
  text-indent: 0 !important;
}

.is-assistant .rili-markdown-renderer wechat-body,
wechat-body {
  display: block !important;
  padding: 22px 24px !important;
  background: #eeeeee !important;
  max-height: none !important;
  overflow: visible !important;
}

.is-assistant .rili-markdown-renderer wechat-date,
.is-assistant .rili-markdown-renderer wechat-time,
wechat-date,
wechat-time {
  display: block !important;
  width: fit-content !important;
  max-width: 88% !important;
  margin: 0 auto 18px auto !important;
  padding: 5px 10px !important;
  border-radius: 6px !important;
  background: #dedede !important;
  color: #8b8f98 !important;
  font-size: 0.82em !important;
  line-height: 1.45 !important;
  text-align: center !important;
  text-indent: 0 !important;
}

.is-assistant .rili-markdown-renderer wechat-msg,
wechat-msg {
  display: flex !important;
  align-items: flex-start !important;
  width: 100% !important;
  gap: 12px !important;
  margin: 0 0 18px 0 !important;
  padding: 0 !important;
  clear: both !important;
}

.is-assistant .rili-markdown-renderer wechat-msg.left,
wechat-msg.left {
  flex-direction: row !important;
  justify-content: flex-start !important;
}

.is-assistant .rili-markdown-renderer wechat-msg.right,
wechat-msg.right {
  flex-direction: row !important;
  justify-content: flex-end !important;
}

.is-assistant .rili-markdown-renderer wechat-msg.system,
wechat-msg.system {
  justify-content: center !important;
  align-items: center !important;
}

.is-assistant .rili-markdown-renderer wechat-avatar,
wechat-avatar {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 46px !important;
  height: 46px !important;
  min-width: 46px !important;
  max-width: 46px !important;
  flex: 0 0 46px !important;
  border-radius: 9px !important;
  overflow: hidden !important;
  color: #ffffff !important;
  font-size: 1.12em !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  text-indent: 0 !important;
  box-shadow: 0 3px 8px rgba(15, 23, 42, 0.14) !important;
}

.is-assistant .rili-markdown-renderer wechat-msg.left wechat-avatar,
wechat-msg.left wechat-avatar {
  background: linear-gradient(135deg, #7c6ee6, #5746b8) !important;
  order: 0 !important;
}

.is-assistant .rili-markdown-renderer wechat-msg.right wechat-avatar,
wechat-msg.right wechat-avatar {
  background: linear-gradient(135deg, #3f5f9f, #233f78) !important;
  order: 2 !important;
}

.is-assistant .rili-markdown-renderer wechat-avatar:empty::before,
wechat-avatar:empty::before {
  content: "人" !important;
}

.is-assistant .rili-markdown-renderer wechat-content,
wechat-content {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  max-width: calc(100% - 64px) !important;
  min-width: 0 !important;
  order: 1 !important;
}

.is-assistant .rili-markdown-renderer wechat-name,
wechat-name {
  display: block !important;
  margin: 0 0 5px 0 !important;
  padding: 0 !important;
  color: #8b8f98 !important;
  font-size: 0.84em !important;
  line-height: 1.25 !important;
  font-weight: 600 !important;
  text-indent: 0 !important;
}

.is-assistant .rili-markdown-renderer wechat-bubble,
wechat-bubble {
  display: block !important;
  max-width: 560px !important;
  padding: 12px 16px !important;
  border-radius: 8px !important;
  background: #ffffff !important;
  color: #111827 !important;
  font-size: 0.98em !important;
  font-weight: 500 !important;
  line-height: 1.68 !important;
  letter-spacing: 0.05px !important;
  word-break: break-word !important;
  white-space: normal !important;
  text-indent: 0 !important;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.08) !important;
  position: relative !important;
}

.is-assistant .rili-markdown-renderer wechat-msg.left wechat-bubble,
wechat-msg.left wechat-bubble {
  background: #ffffff !important;
  color: #111827 !important;
  border-top-left-radius: 4px !important;
}

.is-assistant .rili-markdown-renderer wechat-msg.right wechat-bubble,
wechat-msg.right wechat-bubble {
  order: 1 !important;
  background: #8bed62 !important;
  color: #111827 !important;
  border-top-right-radius: 4px !important;
}

.is-assistant .rili-markdown-renderer wechat-msg.left wechat-bubble::before,
wechat-msg.left wechat-bubble::before {
  content: "" !important;
  position: absolute !important;
  left: -7px !important;
  top: 13px !important;
  width: 0 !important;
  height: 0 !important;
  border-top: 7px solid transparent !important;
  border-bottom: 7px solid transparent !important;
  border-right: 8px solid #ffffff !important;
}

.is-assistant .rili-markdown-renderer wechat-msg.right wechat-bubble::after,
wechat-msg.right wechat-bubble::after {
  content: "" !important;
  position: absolute !important;
  right: -7px !important;
  top: 13px !important;
  width: 0 !important;
  height: 0 !important;
  border-top: 7px solid transparent !important;
  border-bottom: 7px solid transparent !important;
  border-left: 8px solid #8bed62 !important;
}

.is-assistant .rili-markdown-renderer wechat-bubble p,
wechat-bubble p {
  margin: 0 !important;
  padding: 0 !important;
  color: #111827 !important;
  line-height: 1.68 !important;
  text-indent: 0 !important;
  font-size: inherit !important;
}

/* 微信特殊消息：红包 / 转账 / 语音 / 图片 / 撤回 */

.is-assistant .rili-markdown-renderer wechat-redpacket,
wechat-redpacket {
  display: flex !important;
  align-items: center !important;
  gap: 11px !important;
  width: min(360px, 100%) !important;
  padding: 12px 14px !important;
  border-radius: 9px !important;
  background: linear-gradient(135deg, #f6a23c, #e85d34) !important;
  color: #ffffff !important;
  box-shadow: 0 4px 12px rgba(232, 93, 52, 0.24) !important;
}

.is-assistant .rili-markdown-renderer wechat-transfer,
wechat-transfer {
  display: flex !important;
  align-items: center !important;
  gap: 11px !important;
  width: min(360px, 100%) !important;
  padding: 12px 14px !important;
  border-radius: 9px !important;
  background: linear-gradient(135deg, #4fa9e6, #3976d5) !important;
  color: #ffffff !important;
  box-shadow: 0 4px 12px rgba(57, 118, 213, 0.24) !important;
}

.is-assistant .rili-markdown-renderer redpacket-icon,
.is-assistant .rili-markdown-renderer transfer-icon,
redpacket-icon,
transfer-icon {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 36px !important;
  height: 36px !important;
  min-width: 36px !important;
  border-radius: 50% !important;
  background: rgba(255, 255, 255, 0.18) !important;
  color: #ffffff !important;
  font-size: 1.25em !important;
  text-indent: 0 !important;
}

.is-assistant .rili-markdown-renderer redpacket-info,
.is-assistant .rili-markdown-renderer transfer-info,
.is-assistant .rili-markdown-renderer redpacket-text,
.is-assistant .rili-markdown-renderer redpacket-label,
.is-assistant .rili-markdown-renderer transfer-amount,
.is-assistant .rili-markdown-renderer transfer-note,
.is-assistant .rili-markdown-renderer transfer-label,
redpacket-info,
transfer-info,
redpacket-text,
redpacket-label,
transfer-amount,
transfer-note,
transfer-label {
  display: block !important;
  color: #ffffff !important;
  line-height: 1.45 !important;
  text-indent: 0 !important;
}

.is-assistant .rili-markdown-renderer transfer-amount,
transfer-amount {
  font-size: 1.12em !important;
  font-weight: 900 !important;
}

.is-assistant .rili-markdown-renderer wechat-voice,
wechat-voice {
  display: flex !important;
  align-items: center !important;
  gap: 9px !important;
  min-width: 150px !important;
  max-width: 280px !important;
  padding: 12px 15px !important;
  border-radius: 9px !important;
  background: #8bed62 !important;
  color: #111827 !important;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.08) !important;
}

.is-assistant .rili-markdown-renderer voice-bar,
voice-bar {
  display: block !important;
  flex: 1 !important;
  height: 8px !important;
  border-radius: 999px !important;
  background: repeating-linear-gradient(90deg, rgba(17, 24, 39, 0.28) 0 3px, transparent 3px 7px) !important;
}

.is-assistant .rili-markdown-renderer wechat-image,
wechat-image {
  display: block !important;
  max-width: 320px !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  background: #e5e7eb !important;
  border: 1px solid #d1d5db !important;
  color: #374151 !important;
}

.is-assistant .rili-markdown-renderer image-placeholder,
image-placeholder {
  display: block !important;
  padding: 14px !important;
  color: #374151 !important;
  line-height: 1.6 !important;
  text-indent: 0 !important;
}

.is-assistant .rili-markdown-renderer wechat-sys-text,
.is-assistant .rili-markdown-renderer wechat-recall,
.is-assistant .rili-markdown-renderer wechat-typing,
wechat-sys-text,
wechat-recall,
wechat-typing {
  display: block !important;
  width: fit-content !important;
  max-width: 86% !important;
  margin: 8px auto 14px auto !important;
  padding: 5px 11px !important;
  border-radius: 6px !important;
  background: #dedede !important;
  color: #8b8f98 !important;
  font-size: 0.83em !important;
  line-height: 1.45 !important;
  text-align: center !important;
  text-indent: 0 !important;
}

/* ===== 2. 修仙传音玉简 jade-slip 美化 ===== */

.is-assistant .rili-markdown-renderer jade-slip,
jade-slip {
  display: block !important;
  width: min(100%, 760px) !important;
  max-width: 760px !important;
  margin: 22px auto !important;
  border-radius: 18px !important;
  overflow: hidden !important;
  background: radial-gradient(circle at top, rgba(129, 230, 217, 0.18), transparent 42%), linear-gradient(160deg, #0f1f2a, #142d38 52%, #101827) !important;
  border: 1px solid rgba(125, 249, 230, 0.38) !important;
  box-shadow: 0 12px 34px rgba(20, 184, 166, 0.18), inset 0 0 18px rgba(125, 249, 230, 0.08) !important;
  color: #e6fffb !important;
  font-family: "STKaiti", "KaiTi", "PingFang SC", "Microsoft YaHei", serif !important;
}

.is-assistant .rili-markdown-renderer jade-top,
jade-top {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 15px 18px !important;
  background: rgba(9, 30, 41, 0.72) !important;
  border-bottom: 1px solid rgba(125, 249, 230, 0.28) !important;
}

.is-assistant .rili-markdown-renderer jade-glow,
jade-glow {
  display: flex !important;
  width: 38px !important;
  height: 38px !important;
  min-width: 38px !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 50% !important;
  background: radial-gradient(circle, #a7fff3, #2dd4bf 58%, #0f766e) !important;
  box-shadow: 0 0 18px rgba(45, 212, 191, 0.80) !important;
  text-indent: 0 !important;
}

.is-assistant .rili-markdown-renderer jade-name,
jade-name {
  display: block !important;
  color: #e6fffb !important;
  font-size: 1.06em !important;
  font-weight: 900 !important;
  line-height: 1.35 !important;
  text-indent: 0 !important;
}

.is-assistant .rili-markdown-renderer jade-rank,
jade-rank {
  display: block !important;
  margin-left: auto !important;
  padding: 4px 10px !important;
  border-radius: 999px !important;
  background: rgba(45, 212, 191, 0.16) !important;
  border: 1px solid rgba(125, 249, 230, 0.26) !important;
  color: #99f6e4 !important;
  font-size: 0.82em !important;
  font-weight: 800 !important;
  text-indent: 0 !important;
}

.is-assistant .rili-markdown-renderer jade-body,
jade-body {
  display: block !important;
  padding: 20px 22px !important;
}

.is-assistant .rili-markdown-renderer jade-time,
jade-time {
  display: block !important;
  width: fit-content !important;
  margin: 0 auto 16px auto !important;
  padding: 4px 10px !important;
  border-radius: 999px !important;
  background: rgba(15, 118, 110, 0.30) !important;
  color: #ccfbf1 !important;
  font-size: 0.82em !important;
  text-indent: 0 !important;
}

.is-assistant .rili-markdown-renderer jade-msg,
jade-msg {
  display: flex !important;
  align-items: flex-start !important;
  gap: 11px !important;
  width: 100% !important;
  margin: 0 0 16px 0 !important;
}

.is-assistant .rili-markdown-renderer jade-msg.incoming,
jade-msg.incoming {
  justify-content: flex-start !important;
  flex-direction: row !important;
}

.is-assistant .rili-markdown-renderer jade-msg.outgoing,
jade-msg.outgoing {
  justify-content: flex-end !important;
  flex-direction: row !important;
}

.is-assistant .rili-markdown-renderer jade-msg.system,
jade-msg.system {
  justify-content: center !important;
}

.is-assistant .rili-markdown-renderer jade-avatar,
jade-avatar {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 42px !important;
  height: 42px !important;
  min-width: 42px !important;
  flex: 0 0 42px !important;
  border-radius: 50% !important;
  background: linear-gradient(135deg, #14b8a6, #0f766e) !important;
  color: #ffffff !important;
  font-size: 1.12em !important;
  font-weight: 900 !important;
  box-shadow: 0 0 14px rgba(45, 212, 191, 0.45) !important;
  text-indent: 0 !important;
}

.is-assistant .rili-markdown-renderer jade-msg.outgoing jade-avatar,
jade-msg.outgoing jade-avatar {
  order: 2 !important;
  background: linear-gradient(135deg, #a78bfa, #7c3aed) !important;
  box-shadow: 0 0 14px rgba(167, 139, 250, 0.45) !important;
}

.is-assistant .rili-markdown-renderer jade-text,
jade-text {
  display: block !important;
  max-width: 560px !important;
  padding: 12px 15px !important;
  border-radius: 12px !important;
  background: rgba(236, 253, 245, 0.10) !important;
  border: 1px solid rgba(153, 246, 228, 0.24) !important;
  color: #e6fffb !important;
  font-size: 0.98em !important;
  line-height: 1.72 !important;
  text-indent: 0 !important;
  box-shadow: inset 0 0 14px rgba(45, 212, 191, 0.06) !important;
}

.is-assistant .rili-markdown-renderer jade-msg.outgoing jade-text,
jade-msg.outgoing jade-text {
  order: 1 !important;
  background: rgba(167, 139, 250, 0.16) !important;
  border-color: rgba(196, 181, 253, 0.30) !important;
  color: #f5f3ff !important;
}

.is-assistant .rili-markdown-renderer jade-vision,
jade-vision,
.is-assistant .rili-markdown-renderer jade-gift,
jade-gift {
  display: block !important;
  max-width: 590px !important;
  padding: 14px 16px !important;
  border-radius: 14px !important;
  background: rgba(8, 47, 73, 0.46) !important;
  border: 1px solid rgba(125, 249, 230, 0.30) !important;
  color: #e0f2fe !important;
  box-shadow: inset 0 0 18px rgba(45, 212, 191, 0.08) !important;
}

.is-assistant .rili-markdown-renderer vision-icon,
.is-assistant .rili-markdown-renderer vision-desc,
.is-assistant .rili-markdown-renderer vision-warning,
.is-assistant .rili-markdown-renderer gift-icon,
.is-assistant .rili-markdown-renderer gift-info,
.is-assistant .rili-markdown-renderer gift-name,
.is-assistant .rili-markdown-renderer gift-note,
.is-assistant .rili-markdown-renderer gift-label,
vision-icon,
vision-desc,
vision-warning,
gift-icon,
gift-info,
gift-name,
gift-note,
gift-label {
  display: block !important;
  color: inherit !important;
  line-height: 1.68 !important;
  text-indent: 0 !important;
}

.is-assistant .rili-markdown-renderer jade-sys,
.is-assistant .rili-markdown-renderer jade-recall,
jade-sys,
jade-recall {
  display: block !important;
  width: fit-content !important;
  max-width: 86% !important;
  margin: 4px auto 12px auto !important;
  padding: 5px 11px !important;
  border-radius: 999px !important;
  background: rgba(148, 163, 184, 0.18) !important;
  color: #ccfbf1 !important;
  font-size: 0.84em !important;
  line-height: 1.5 !important;
  text-align: center !important;
  text-indent: 0 !important;
}

/* ===== 3. 古代宫廷 letter 美化 ===== */

.is-assistant .rili-markdown-renderer letter,
letter {
  display: block !important;
  width: min(100%, 740px) !important;
  max-width: 740px !important;
  margin: 22px auto !important;
  padding: 0 !important;
  border-radius: 16px !important;
  overflow: hidden !important;
  background: linear-gradient(135deg, #fff7e6, #f8ead0) !important;
  border: 1px solid rgba(146, 96, 45, 0.28) !important;
  box-shadow: 0 12px 30px rgba(120, 78, 35, 0.16) !important;
  color: #4b2e1f !important;
  font-family: "STKaiti", "KaiTi", "Songti SC", serif !important;
}

.is-assistant .rili-markdown-renderer letter.reply,
letter.reply {
  background: linear-gradient(135deg, #fff0f4, #fbe0e9) !important;
  border-color: rgba(190, 80, 112, 0.28) !important;
}

.is-assistant .rili-markdown-renderer letter.oral,
letter.oral {
  background: linear-gradient(135deg, #f5efe6, #eadcc8) !important;
  border-style: dashed !important;
}

.is-assistant .rili-markdown-renderer letter-header,
letter-header {
  display: block !important;
  padding: 16px 20px !important;
  background: rgba(120, 78, 35, 0.12) !important;
  border-bottom: 1px solid rgba(120, 78, 35, 0.16) !important;
  text-align: center !important;
}

.is-assistant .rili-markdown-renderer letter-type,
letter-type {
  display: block !important;
  color: #7c2d12 !important;
  font-size: 1.12em !important;
  font-weight: 900 !important;
  letter-spacing: 0.36em !important;
  line-height: 1.5 !important;
  text-indent: 0 !important;
}

.is-assistant .rili-markdown-renderer letter-route,
letter-route {
  display: block !important;
  margin-top: 5px !important;
  color: #8a5a2b !important;
  font-size: 0.9em !important;
  font-weight: 700 !important;
  line-height: 1.45 !important;
  text-indent: 0 !important;
}

.is-assistant .rili-markdown-renderer letter-body,
letter-body {
  display: block !important;
  padding: 22px 24px !important;
  background-image: linear-gradient(rgba(120, 78, 35, 0.045) 1px, transparent 1px) !important;
  background-size: 100% 2.2em !important;
}

.is-assistant .rili-markdown-renderer letter-text,
.is-assistant .rili-markdown-renderer letter-poem,
letter-text,
letter-poem {
  display: block !important;
  color: #4b2e1f !important;
  font-size: 1.02em !important;
  line-height: 2.1 !important;
  letter-spacing: 0.04em !important;
  text-indent: 2em !important;
}

.is-assistant .rili-markdown-renderer letter-poem,
letter-poem {
  margin-top: 14px !important;
  padding: 12px 16px !important;
  border-left: 4px solid rgba(124, 45, 18, 0.36) !important;
  background: rgba(255, 255, 255, 0.32) !important;
  text-indent: 0 !important;
  text-align: center !important;
}

.is-assistant .rili-markdown-renderer letter-footer,
letter-footer {
  display: block !important;
  padding: 14px 20px !important;
  background: rgba(120, 78, 35, 0.10) !important;
  border-top: 1px solid rgba(120, 78, 35, 0.16) !important;
  text-align: right !important;
}

.is-assistant .rili-markdown-renderer letter-sign,
.is-assistant .rili-markdown-renderer letter-seal,
.is-assistant .rili-markdown-renderer letter-date,
letter-sign,
letter-seal,
letter-date {
  display: block !important;
  color: #6b3f22 !important;
  line-height: 1.65 !important;
  font-weight: 700 !important;
  text-indent: 0 !important;
}

.is-assistant .rili-markdown-renderer letter-note,
letter-note {
  display: block !important;
  padding: 11px 18px !important;
  background: rgba(146, 96, 45, 0.10) !important;
  color: #7c4a25 !important;
  font-size: 0.9em !important;
  line-height: 1.7 !important;
  text-indent: 0 !important;
  border-top: 1px dashed rgba(120, 78, 35, 0.22) !important;
}

/* ===== 4. 西幻魔法通讯水晶 crystal-comm 美化 ===== */

.is-assistant .rili-markdown-renderer crystal-comm,
crystal-comm {
  display: block !important;
  width: min(100%, 760px) !important;
  max-width: 760px !important;
  margin: 22px auto !important;
  border-radius: 18px !important;
  overflow: hidden !important;
  background: radial-gradient(circle at top left, rgba(216, 180, 254, 0.26), transparent 40%), linear-gradient(155deg, #17132a, #231942 55%, #111827) !important;
  border: 1px solid rgba(216, 180, 254, 0.34) !important;
  box-shadow: 0 12px 34px rgba(88, 28, 135, 0.24), inset 0 0 20px rgba(216, 180, 254, 0.07) !important;
  color: #f5f3ff !important;
}

.is-assistant .rili-markdown-renderer crystal-top,
crystal-top {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 15px 18px !important;
  background: rgba(30, 27, 75, 0.78) !important;
  border-bottom: 1px solid rgba(216, 180, 254, 0.24) !important;
}

.is-assistant .rili-markdown-renderer crystal-glow,
crystal-glow {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 38px !important;
  height: 38px !important;
  min-width: 38px !important;
  border-radius: 50% !important;
  background: radial-gradient(circle, #f5d0fe, #a855f7 58%, #6b21a8) !important;
  box-shadow: 0 0 18px rgba(168, 85, 247, 0.82) !important;
  text-indent: 0 !important;
}

.is-assistant .rili-markdown-renderer crystal-name,
crystal-name {
  display: block !important;
  color: #f5f3ff !important;
  font-size: 1.06em !important;
  font-weight: 900 !important;
  line-height: 1.35 !important;
  text-indent: 0 !important;
}

.is-assistant .rili-markdown-renderer crystal-tag,
crystal-tag {
  display: block !important;
  margin-left: auto !important;
  padding: 4px 10px !important;
  border-radius: 999px !important;
  background: rgba(168, 85, 247, 0.18) !important;
  border: 1px solid rgba(216, 180, 254, 0.28) !important;
  color: #e9d5ff !important;
  font-size: 0.82em !important;
  font-weight: 800 !important;
  text-indent: 0 !important;
}

.is-assistant .rili-markdown-renderer crystal-body,
crystal-body {
  display: block !important;
  padding: 20px 22px !important;
}

.is-assistant .rili-markdown-renderer crystal-time,
crystal-time {
  display: block !important;
  width: fit-content !important;
  margin: 0 auto 16px auto !important;
  padding: 4px 10px !important;
  border-radius: 999px !important;
  background: rgba(88, 28, 135, 0.34) !important;
  color: #e9d5ff !important;
  font-size: 0.82em !important;
  text-indent: 0 !important;
}

.is-assistant .rili-markdown-renderer crystal-msg,
crystal-msg {
  display: flex !important;
  align-items: flex-start !important;
  gap: 11px !important;
  width: 100% !important;
  margin: 0 0 16px 0 !important;
}

.is-assistant .rili-markdown-renderer crystal-msg.them,
crystal-msg.them {
  justify-content: flex-start !important;
  flex-direction: row !important;
}

.is-assistant .rili-markdown-renderer crystal-msg.her,
crystal-msg.her {
  justify-content: flex-end !important;
  flex-direction: row !important;
}

.is-assistant .rili-markdown-renderer crystal-msg.system,
crystal-msg.system {
  justify-content: center !important;
}

.is-assistant .rili-markdown-renderer crystal-avatar,
crystal-avatar {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 42px !important;
  height: 42px !important;
  min-width: 42px !important;
  flex: 0 0 42px !important;
  border-radius: 12px !important;
  background: linear-gradient(135deg, #7c3aed, #4c1d95) !important;
  color: #ffffff !important;
  font-size: 1.12em !important;
  font-weight: 900 !important;
  text-indent: 0 !important;
  box-shadow: 0 0 14px rgba(168, 85, 247, 0.40) !important;
}

.is-assistant .rili-markdown-renderer crystal-msg.her crystal-avatar,
crystal-msg.her crystal-avatar {
  order: 2 !important;
  background: linear-gradient(135deg, #ec4899, #be185d) !important;
}

.is-assistant .rili-markdown-renderer crystal-bubble,
crystal-bubble {
  display: block !important;
  max-width: 560px !important;
  padding: 12px 15px !important;
  border-radius: 12px !important;
  background: rgba(245, 243, 255, 0.11) !important;
  border: 1px solid rgba(216, 180, 254, 0.24) !important;
  color: #f5f3ff !important;
  font-size: 0.98em !important;
  line-height: 1.72 !important;
  text-indent: 0 !important;
}

.is-assistant .rili-markdown-renderer crystal-msg.her crystal-bubble,
crystal-msg.her crystal-bubble {
  order: 1 !important;
  background: rgba(236, 72, 153, 0.16) !important;
  border-color: rgba(244, 114, 182, 0.28) !important;
}

.is-assistant .rili-markdown-renderer crystal-gift,
.is-assistant .rili-markdown-renderer crystal-holo,
.is-assistant .rili-markdown-renderer crystal-charm,
crystal-gift,
crystal-holo,
crystal-charm {
  display: block !important;
  max-width: 590px !important;
  padding: 14px 16px !important;
  border-radius: 14px !important;
  background: rgba(88, 28, 135, 0.32) !important;
  border: 1px solid rgba(216, 180, 254, 0.30) !important;
  color: #f5f3ff !important;
  box-shadow: inset 0 0 18px rgba(216, 180, 254, 0.08) !important;
}

.is-assistant .rili-markdown-renderer crystal-sys,
.is-assistant .rili-markdown-renderer crystal-recall,
crystal-sys,
crystal-recall {
  display: block !important;
  width: fit-content !important;
  max-width: 86% !important;
  margin: 4px auto 12px auto !important;
  padding: 5px 11px !important;
  border-radius: 999px !important;
  background: rgba(148, 163, 184, 0.18) !important;
  color: #e9d5ff !important;
  font-size: 0.84em !important;
  line-height: 1.5 !important;
  text-align: center !important;
  text-indent: 0 !important;
}

/* ===== 5. 末世废土通讯 radio / note / ledger / cam / broadcast 美化 ===== */

.is-assistant .rili-markdown-renderer radio,
.is-assistant .rili-markdown-renderer wasteland-note,
.is-assistant .rili-markdown-renderer wasteland-ledger,
.is-assistant .rili-markdown-renderer wasteland-cam,
.is-assistant .rili-markdown-renderer wasteland-broadcast,
radio,
wasteland-note,
wasteland-ledger,
wasteland-cam,
wasteland-broadcast {
  display: block !important;
  width: min(100%, 760px) !important;
  max-width: 760px !important;
  margin: 22px auto !important;
  border-radius: 14px !important;
  overflow: hidden !important;
  background: linear-gradient(155deg, #1f1f1f, #2b261f 55%, #181818) !important;
  border: 1px solid rgba(245, 158, 11, 0.30) !important;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.26) !important;
  color: #fef3c7 !important;
  font-family: "Microsoft YaHei", "PingFang SC", monospace !important;
}

.is-assistant .rili-markdown-renderer radio-top,
.is-assistant .rili-markdown-renderer note-header,
.is-assistant .rili-markdown-renderer ledger-header,
.is-assistant .rili-markdown-renderer cam-header,
.is-assistant .rili-markdown-renderer broadcast-header,
radio-top,
note-header,
ledger-header,
cam-header,
broadcast-header {
  display: block !important;
  padding: 14px 18px !important;
  background: rgba(120, 53, 15, 0.42) !important;
  border-bottom: 1px solid rgba(245, 158, 11, 0.22) !important;
  color: #fde68a !important;
}

.is-assistant .rili-markdown-renderer radio-icon,
.is-assistant .rili-markdown-renderer radio-freq,
.is-assistant .rili-markdown-renderer radio-signal,
.is-assistant .rili-markdown-renderer note-icon,
.is-assistant .rili-markdown-renderer note-type,
.is-assistant .rili-markdown-renderer ledger-icon,
.is-assistant .rili-markdown-renderer ledger-title,
.is-assistant .rili-markdown-renderer cam-icon,
.is-assistant .rili-markdown-renderer cam-location,
.is-assistant .rili-markdown-renderer cam-timestamp,
.is-assistant .rili-markdown-renderer broadcast-icon,
.is-assistant .rili-markdown-renderer broadcast-freq,
radio-icon,
radio-freq,
radio-signal,
note-icon,
note-type,
ledger-icon,
ledger-title,
cam-icon,
cam-location,
cam-timestamp,
broadcast-icon,
broadcast-freq {
  display: block !important;
  color: #fde68a !important;
  line-height: 1.55 !important;
  font-weight: 800 !important;
  text-indent: 0 !important;
}

.is-assistant .rili-markdown-renderer radio-body,
.is-assistant .rili-markdown-renderer note-body,
.is-assistant .rili-markdown-renderer ledger-body,
.is-assistant .rili-markdown-renderer cam-body,
.is-assistant .rili-markdown-renderer broadcast-body,
radio-body,
note-body,
ledger-body,
cam-body,
broadcast-body {
  display: block !important;
  padding: 18px 20px !important;
}

.is-assistant .rili-markdown-renderer radio-time,
radio-time {
  display: block !important;
  width: fit-content !important;
  margin: 0 auto 14px auto !important;
  padding: 4px 10px !important;
  border-radius: 999px !important;
  background: rgba(245, 158, 11, 0.14) !important;
  color: #fcd34d !important;
  font-size: 0.82em !important;
  text-indent: 0 !important;
}

.is-assistant .rili-markdown-renderer radio-msg,
radio-msg {
  display: block !important;
  margin: 0 0 14px 0 !important;
  padding: 12px 14px !important;
  border-radius: 10px !important;
  background: rgba(31, 41, 55, 0.68) !important;
  border: 1px solid rgba(245, 158, 11, 0.18) !important;
}

.is-assistant .rili-markdown-renderer radio-msg.out,
radio-msg.out {
  border-left: 4px solid #f59e0b !important;
}

.is-assistant .rili-markdown-renderer radio-msg.in,
radio-msg.in {
  border-left: 4px solid #84cc16 !important;
}

.is-assistant .rili-markdown-renderer radio-static,
radio-static {
  display: block !important;
  margin-bottom: 5px !important;
  color: #a3a3a3 !important;
  font-size: 0.84em !important;
  line-height: 1.5 !important;
  text-indent: 0 !important;
}

.is-assistant .rili-markdown-renderer radio-voice,
radio-voice {
  display: block !important;
  color: #fef3c7 !important;
  line-height: 1.75 !important;
  text-indent: 0 !important;
}

.is-assistant .rili-markdown-renderer note-text,
.is-assistant .rili-markdown-renderer note-detail,
.is-assistant .rili-markdown-renderer ledger-note,
.is-assistant .rili-markdown-renderer cam-desc,
.is-assistant .rili-markdown-renderer cam-note,
.is-assistant .rili-markdown-renderer broadcast-voice,
.is-assistant .rili-markdown-renderer broadcast-note,
note-text,
note-detail,
ledger-note,
cam-desc,
cam-note,
broadcast-voice,
broadcast-note {
  display: block !important;
  color: #fef3c7 !important;
  line-height: 1.75 !important;
  text-indent: 0 !important;
}

.is-assistant .rili-markdown-renderer note-footer,
.is-assistant .rili-markdown-renderer ledger-footer,
.is-assistant .rili-markdown-renderer cam-footer,
.is-assistant .rili-markdown-renderer broadcast-footer,
note-footer,
ledger-footer,
cam-footer,
broadcast-footer {
  display: block !important;
  padding: 12px 18px !important;
  background: rgba(0, 0, 0, 0.20) !important;
  border-top: 1px dashed rgba(245, 158, 11, 0.20) !important;
}

.is-assistant .rili-markdown-renderer ledger-entry,
ledger-entry {
  display: grid !important;
  grid-template-columns: 1fr 1.4fr 1.4fr 1fr !important;
  gap: 8px !important;
  padding: 10px 0 !important;
  border-bottom: 1px solid rgba(245, 158, 11, 0.16) !important;
}

.is-assistant .rili-markdown-renderer ledger-entry:last-child,
ledger-entry:last-child {
  border-bottom: none !important;
}

.is-assistant .rili-markdown-renderer entry-date,
.is-assistant .rili-markdown-renderer entry-item,
.is-assistant .rili-markdown-renderer entry-price,
.is-assistant .rili-markdown-renderer entry-status,
entry-date,
entry-item,
entry-price,
entry-status {
  display: block !important;
  color: #fef3c7 !important;
  line-height: 1.55 !important;
  text-indent: 0 !important;
  word-break: break-word !important;
}

/* ===== 6. 正文对白分色 v6.8 加固：自定义标签、类名、嵌套均可生效 ===== */

.is-assistant .rili-markdown-renderer speaker-main,
.is-assistant .rili-markdown-renderer .speaker-main,
speaker-main,
.speaker-main {
  color: #315fda !important;
  font-weight: 900 !important;
  text-shadow: 0 0 0 transparent !important;
  text-indent: 0 !important;
}

.is-assistant .rili-markdown-renderer speaker-female,
.is-assistant .rili-markdown-renderer .speaker-female,
speaker-female,
.speaker-female {
  color: #d63384 !important;
  font-weight: 900 !important;
  text-shadow: 0 0 0 transparent !important;
  text-indent: 0 !important;
}

.is-assistant .rili-markdown-renderer speaker-third,
.is-assistant .rili-markdown-renderer .speaker-third,
speaker-third,
.speaker-third {
  color: #7c3aed !important;
  font-weight: 900 !important;
  text-shadow: 0 0 0 transparent !important;
  text-indent: 0 !important;
}

.is-assistant .rili-markdown-renderer speaker-system,
.is-assistant .rili-markdown-renderer .speaker-system,
speaker-system,
.speaker-system {
  color: #64748b !important;
  font-weight: 850 !important;
  text-shadow: 0 0 0 transparent !important;
  text-indent: 0 !important;
}

/* ===== 7. 状态栏与正文小修：防止旧 div 误伤微信/通讯组件 ===== */

.is-assistant .rili-markdown-renderer story-header + div:not([data-action]):not(:has(wechat)):not(:has(jade-slip)):not(:has(letter)):not(:has(crystal-comm)):not(:has(radio)):not(:has(wasteland-note)):not(:has(wasteland-ledger)):not(:has(wasteland-cam)):not(:has(wasteland-broadcast)) {
  color: #253044 !important;
}

.is-assistant .rili-markdown-renderer .story-text wechat,
.is-assistant .rili-markdown-renderer .story-text jade-slip,
.is-assistant .rili-markdown-renderer .story-text letter,
.is-assistant .rili-markdown-renderer .story-text crystal-comm,
.is-assistant .rili-markdown-renderer .story-text radio,
.is-assistant .rili-markdown-renderer .story-text wasteland-note,
.is-assistant .rili-markdown-renderer .story-text wasteland-ledger,
.is-assistant .rili-markdown-renderer .story-text wasteland-cam,
.is-assistant .rili-markdown-renderer .story-text wasteland-broadcast {
  text-indent: 0 !important;
}

/* ===== 8. 移动端统一适配 ===== */

@media (max-width: 768px) {
  .is-assistant .rili-markdown-renderer wechat,
  wechat,
  .is-assistant .rili-markdown-renderer jade-slip,
  jade-slip,
  .is-assistant .rili-markdown-renderer letter,
  letter,
  .is-assistant .rili-markdown-renderer crystal-comm,
  crystal-comm,
  .is-assistant .rili-markdown-renderer radio,
  radio,
  .is-assistant .rili-markdown-renderer wasteland-note,
  wasteland-note,
  .is-assistant .rili-markdown-renderer wasteland-ledger,
  wasteland-ledger,
  .is-assistant .rili-markdown-renderer wasteland-cam,
  wasteland-cam,
  .is-assistant .rili-markdown-renderer wasteland-broadcast,
  wasteland-broadcast {
    width: 100% !important;
    max-width: 100% !important;
    margin: 16px 0 !important;
    border-radius: 12px !important;
  }

  .is-assistant .rili-markdown-renderer wechat-body,
  wechat-body,
  .is-assistant .rili-markdown-renderer jade-body,
  jade-body,
  .is-assistant .rili-markdown-renderer crystal-body,
  crystal-body,
  .is-assistant .rili-markdown-renderer radio-body,
  radio-body,
  .is-assistant .rili-markdown-renderer note-body,
  note-body,
  .is-assistant .rili-markdown-renderer ledger-body,
  ledger-body,
  .is-assistant .rili-markdown-renderer cam-body,
  cam-body,
  .is-assistant .rili-markdown-renderer broadcast-body,
  broadcast-body {
    padding: 16px 12px !important;
  }

  .is-assistant .rili-markdown-renderer wechat-avatar,
  wechat-avatar,
  .is-assistant .rili-markdown-renderer jade-avatar,
  jade-avatar,
  .is-assistant .rili-markdown-renderer crystal-avatar,
  crystal-avatar {
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    max-width: 38px !important;
    flex-basis: 38px !important;
    font-size: 1em !important;
  }

  .is-assistant .rili-markdown-renderer wechat-bubble,
  wechat-bubble,
  .is-assistant .rili-markdown-renderer jade-text,
  jade-text,
  .is-assistant .rili-markdown-renderer crystal-bubble,
  crystal-bubble {
    max-width: calc(100vw - 112px) !important;
    padding: 10px 13px !important;
    font-size: 0.94em !important;
    line-height: 1.64 !important;
  }

  .is-assistant .rili-markdown-renderer wechat-content,
  wechat-content {
    max-width: calc(100vw - 78px) !important;
  }

  .is-assistant .rili-markdown-renderer letter-body,
  letter-body {
    padding: 18px 16px !important;
  }

  .is-assistant .rili-markdown-renderer letter-text,
  .is-assistant .rili-markdown-renderer letter-poem,
  letter-text,
  letter-poem {
    font-size: 0.98em !important;
    line-height: 1.95 !important;
  }

  .is-assistant .rili-markdown-renderer ledger-entry,
  ledger-entry {
    display: block !important;
  }

  .is-assistant .rili-markdown-renderer entry-date,
  .is-assistant .rili-markdown-renderer entry-item,
  .is-assistant .rili-markdown-renderer entry-price,
  .is-assistant .rili-markdown-renderer entry-status,
  entry-date,
  entry-item,
  entry-price,
  entry-status {
    margin-bottom: 5px !important;
  }
}
/* ═══════════════════════════════════════════
   APPEND PATCH v6.9
   修复：角色说话颜色失效
   使用方式：只追加到现有CSS最末尾
   ═══════════════════════════════════════════ */

/* ===== 1. 角色对白标签强制块内着色：兼容自定义标签被平台重置 ===== */

.is-assistant .rili-markdown-renderer speaker-main,
.is-assistant .rili-markdown-renderer speaker-main *,
.rili-markdown-renderer speaker-main,
.rili-markdown-renderer speaker-main *,
speaker-main,
speaker-main * {
  color: #315fda !important;
  font-weight: 900 !important;
  text-indent: 0 !important;
  background: transparent !important;
}

.is-assistant .rili-markdown-renderer speaker-female,
.is-assistant .rili-markdown-renderer speaker-female *,
.rili-markdown-renderer speaker-female,
.rili-markdown-renderer speaker-female *,
speaker-female,
speaker-female * {
  color: #d63384 !important;
  font-weight: 900 !important;
  text-indent: 0 !important;
  background: transparent !important;
}

.is-assistant .rili-markdown-renderer speaker-third,
.is-assistant .rili-markdown-renderer speaker-third *,
.rili-markdown-renderer speaker-third,
.rili-markdown-renderer speaker-third *,
speaker-third,
speaker-third * {
  color: #7c3aed !important;
  font-weight: 900 !important;
  text-indent: 0 !important;
  background: transparent !important;
}

.is-assistant .rili-markdown-renderer speaker-system,
.is-assistant .rili-markdown-renderer speaker-system *,
.rili-markdown-renderer speaker-system,
.rili-markdown-renderer speaker-system *,
speaker-system,
speaker-system * {
  color: #64748b !important;
  font-weight: 850 !important;
  text-indent: 0 !important;
  background: transparent !important;
}

/* ===== 2. 兼容 class 写法：防止AI偶尔输出 class 而不是自定义标签 ===== */

.is-assistant .rili-markdown-renderer .speaker-main,
.is-assistant .rili-markdown-renderer .speaker-main *,
.rili-markdown-renderer .speaker-main,
.rili-markdown-renderer .speaker-main *,
.speaker-main,
.speaker-main * {
  color: #315fda !important;
  font-weight: 900 !important;
  text-indent: 0 !important;
  background: transparent !important;
}

.is-assistant .rili-markdown-renderer .speaker-female,
.is-assistant .rili-markdown-renderer .speaker-female *,
.rili-markdown-renderer .speaker-female,
.rili-markdown-renderer .speaker-female *,
.speaker-female,
.speaker-female * {
  color: #d63384 !important;
  font-weight: 900 !important;
  text-indent: 0 !important;
  background: transparent !important;
}

.is-assistant .rili-markdown-renderer .speaker-third,
.is-assistant .rili-markdown-renderer .speaker-third *,
.rili-markdown-renderer .speaker-third,
.rili-markdown-renderer .speaker-third *,
.speaker-third,
.speaker-third * {
  color: #7c3aed !important;
  font-weight: 900 !important;
  text-indent: 0 !important;
  background: transparent !important;
}

.is-assistant .rili-markdown-renderer .speaker-system,
.is-assistant .rili-markdown-renderer .speaker-system *,
.rili-markdown-renderer .speaker-system,
.rili-markdown-renderer .speaker-system *,
.speaker-system,
.speaker-system * {
  color: #64748b !important;
  font-weight: 850 !important;
  text-indent: 0 !important;
  background: transparent !important;
}

/* ===== 3. 修复正文段落强制颜色覆盖对白颜色的问题 ===== */

.is-assistant .rili-markdown-renderer .story-text p speaker-main,
.is-assistant .rili-markdown-renderer story-header + div > p speaker-main,
.story-text p speaker-main {
  color: #315fda !important;
}

.is-assistant .rili-markdown-renderer .story-text p speaker-female,
.is-assistant .rili-markdown-renderer story-header + div > p speaker-female,
.story-text p speaker-female {
  color: #d63384 !important;
}

.is-assistant .rili-markdown-renderer .story-text p speaker-third,
.is-assistant .rili-markdown-renderer story-header + div > p speaker-third,
.story-text p speaker-third {
  color: #7c3aed !important;
}

.is-assistant .rili-markdown-renderer .story-text p speaker-system,
.is-assistant .rili-markdown-renderer story-header + div > p speaker-system,
.story-text p speaker-system {
  color: #64748b !important;
}
/* ═══════════════════════════════════════════
   APPEND PATCH v7.0
   终局修复：微信聊天截图式美化强制恢复
   使用方式：只追加到现有CSS最末尾
   ═══════════════════════════════════════════ */

.is-assistant .rili-markdown-renderer wechat,
.rili-markdown-renderer wechat,
wechat {
  display: block !important;
  width: min(100%, 760px) !important;
  max-width: 760px !important;
  margin: 22px auto !important;
  padding: 0 !important;
  border-radius: 18px !important;
  overflow: hidden !important;
  background: #ededed !important;
  border: 1px solid rgba(15, 23, 42, 0.12) !important;
  box-shadow: 0 12px 34px rgba(15, 23, 42, 0.16) !important;
  color: #111827 !important;
  text-indent: 0 !important;
  font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", Arial, sans-serif !important;
}

.is-assistant .rili-markdown-renderer wechat *,
.rili-markdown-renderer wechat *,
wechat * {
  box-sizing: border-box !important;
  text-indent: 0 !important;
}

.is-assistant .rili-markdown-renderer wechat-top,
.rili-markdown-renderer wechat-top,
wechat-top {
  display: block !important;
  padding: 16px 18px !important;
  background: #f2f2f2 !important;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08) !important;
  text-align: center !important;
}

.is-assistant .rili-markdown-renderer wechat-top p,
.rili-markdown-renderer wechat-top p,
wechat-top p {
  margin: 0 !important;
  padding: 0 !important;
  color: #111827 !important;
  font-size: 1.04em !important;
  font-weight: 850 !important;
  line-height: 1.45 !important;
  text-indent: 0 !important;
}

.is-assistant .rili-markdown-renderer wechat-body,
.rili-markdown-renderer wechat-body,
wechat-body {
  display: block !important;
  padding: 22px 24px !important;
  background: #ededed !important;
  max-height: none !important;
  overflow: visible !important;
}

.is-assistant .rili-markdown-renderer wechat-time,
.is-assistant .rili-markdown-renderer wechat-date,
.rili-markdown-renderer wechat-time,
.rili-markdown-renderer wechat-date,
wechat-time,
wechat-date {
  display: block !important;
  width: fit-content !important;
  max-width: 88% !important;
  margin: 0 auto 18px auto !important;
  padding: 5px 10px !important;
  border-radius: 6px !important;
  background: #dedede !important;
  color: #8b8f98 !important;
  font-size: 0.82em !important;
  line-height: 1.45 !important;
  text-align: center !important;
}

.is-assistant .rili-markdown-renderer wechat-msg,
.rili-markdown-renderer wechat-msg,
wechat-msg {
  display: flex !important;
  align-items: flex-start !important;
  width: 100% !important;
  gap: 12px !important;
  margin: 0 0 18px 0 !important;
  padding: 0 !important;
  clear: both !important;
}

.is-assistant .rili-markdown-renderer wechat-msg.left,
.rili-markdown-renderer wechat-msg.left,
wechat-msg.left {
  flex-direction: row !important;
  justify-content: flex-start !important;
}

.is-assistant .rili-markdown-renderer wechat-msg.right,
.rili-markdown-renderer wechat-msg.right,
wechat-msg.right {
  flex-direction: row !important;
  justify-content: flex-end !important;
}

.is-assistant .rili-markdown-renderer wechat-avatar,
.rili-markdown-renderer wechat-avatar,
wechat-avatar {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 46px !important;
  height: 46px !important;
  min-width: 46px !important;
  max-width: 46px !important;
  flex: 0 0 46px !important;
  border-radius: 9px !important;
  overflow: hidden !important;
  color: #ffffff !important;
  font-size: 1.12em !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  box-shadow: 0 3px 8px rgba(15, 23, 42, 0.14) !important;
}

.is-assistant .rili-markdown-renderer wechat-msg.left wechat-avatar,
.rili-markdown-renderer wechat-msg.left wechat-avatar,
wechat-msg.left wechat-avatar {
  order: 0 !important;
  background: linear-gradient(135deg, #7c6ee6, #5746b8) !important;
}

.is-assistant .rili-markdown-renderer wechat-msg.right wechat-avatar,
.rili-markdown-renderer wechat-msg.right wechat-avatar,
wechat-msg.right wechat-avatar {
  order: 2 !important;
  background: linear-gradient(135deg, #3f5f9f, #233f78) !important;
}

.is-assistant .rili-markdown-renderer wechat-avatar:empty::before,
.rili-markdown-renderer wechat-avatar:empty::before,
wechat-avatar:empty::before {
  content: "人" !important;
}

.is-assistant .rili-markdown-renderer wechat-content,
.rili-markdown-renderer wechat-content,
wechat-content {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  max-width: calc(100% - 64px) !important;
  min-width: 0 !important;
  order: 1 !important;
}

.is-assistant .rili-markdown-renderer wechat-name,
.rili-markdown-renderer wechat-name,
wechat-name {
  display: block !important;
  margin: 0 0 5px 0 !important;
  padding: 0 !important;
  color: #8b8f98 !important;
  font-size: 0.84em !important;
  line-height: 1.25 !important;
  font-weight: 600 !important;
}

.is-assistant .rili-markdown-renderer wechat-bubble,
.rili-markdown-renderer wechat-bubble,
wechat-bubble {
  display: block !important;
  max-width: 560px !important;
  padding: 12px 16px !important;
  border-radius: 8px !important;
  background: #ffffff !important;
  color: #111827 !important;
  font-size: 0.98em !important;
  font-weight: 500 !important;
  line-height: 1.68 !important;
  letter-spacing: 0.05px !important;
  word-break: break-word !important;
  white-space: normal !important;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.08) !important;
  position: relative !important;
}

.is-assistant .rili-markdown-renderer wechat-msg.left wechat-bubble,
.rili-markdown-renderer wechat-msg.left wechat-bubble,
wechat-msg.left wechat-bubble {
  background: #ffffff !important;
  color: #111827 !important;
  border-top-left-radius: 4px !important;
}

.is-assistant .rili-markdown-renderer wechat-msg.right wechat-bubble,
.rili-markdown-renderer wechat-msg.right wechat-bubble,
wechat-msg.right wechat-bubble {
  order: 1 !important;
  background: #8bed62 !important;
  color: #111827 !important;
  border-top-right-radius: 4px !important;
}

.is-assistant .rili-markdown-renderer wechat-msg.left wechat-bubble::before,
.rili-markdown-renderer wechat-msg.left wechat-bubble::before,
wechat-msg.left wechat-bubble::before {
  content: "" !important;
  position: absolute !important;
  left: -7px !important;
  top: 13px !important;
  border-top: 7px solid transparent !important;
  border-bottom: 7px solid transparent !important;
  border-right: 8px solid #ffffff !important;
}

.is-assistant .rili-markdown-renderer wechat-msg.right wechat-bubble::after,
.rili-markdown-renderer wechat-msg.right wechat-bubble::after,
wechat-msg.right wechat-bubble::after {
  content: "" !important;
  position: absolute !important;
  right: -7px !important;
  top: 13px !important;
  border-top: 7px solid transparent !important;
  border-bottom: 7px solid transparent !important;
  border-left: 8px solid #8bed62 !important;
}

.is-assistant .rili-markdown-renderer wechat-bubble p,
.rili-markdown-renderer wechat-bubble p,
wechat-bubble p {
  margin: 0 !important;
  padding: 0 !important;
  color: #111827 !important;
  line-height: 1.68 !important;
  font-size: inherit !important;
  text-indent: 0 !important;
}

.is-assistant .rili-markdown-renderer wechat-sys-text,
.is-assistant .rili-markdown-renderer wechat-recall,
.is-assistant .rili-markdown-renderer wechat-typing,
.rili-markdown-renderer wechat-sys-text,
.rili-markdown-renderer wechat-recall,
.rili-markdown-renderer wechat-typing,
wechat-sys-text,
wechat-recall,
wechat-typing {
  display: block !important;
  width: fit-content !important;
  max-width: 86% !important;
  margin: 8px auto 14px auto !important;
  padding: 5px 11px !important;
  border-radius: 6px !important;
  background: #dedede !important;
  color: #8b8f98 !important;
  font-size: 0.83em !important;
  line-height: 1.45 !important;
  text-align: center !important;
}

.story-text wechat,
.story-text wechat p,
.story-text wechat-bubble,
.story-text wechat-bubble p {
  text-indent: 0 !important;
}

@media (max-width: 768px) {
  .is-assistant .rili-markdown-renderer wechat,
  .rili-markdown-renderer wechat,
  wechat {
    width: 100% !important;
    max-width: 100% !important;
    margin: 16px 0 !important;
    border-radius: 12px !important;
  }

  .is-assistant .rili-markdown-renderer wechat-body,
  .rili-markdown-renderer wechat-body,
  wechat-body {
    padding: 16px 12px !important;
  }

  .is-assistant .rili-markdown-renderer wechat-avatar,
  .rili-markdown-renderer wechat-avatar,
  wechat-avatar {
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    max-width: 38px !important;
    flex-basis: 38px !important;
    font-size: 1em !important;
  }

  .is-assistant .rili-markdown-renderer wechat-bubble,
  .rili-markdown-renderer wechat-bubble,
  wechat-bubble {
    max-width: calc(100vw - 112px) !important;
    padding: 10px 13px !important;
    font-size: 0.94em !important;
    line-height: 1.64 !important;
  }

  .is-assistant .rili-markdown-renderer wechat-content,
  .rili-markdown-renderer wechat-content,
  wechat-content {
    max-width: calc(100vw - 78px) !important;
  }
}
/* ═══════════════════════════════════════════
   APPEND PATCH v7.1
   修复：正文与微信聊天视觉未分离
   使用方式：只追加到现有CSS最末尾
   ═══════════════════════════════════════════ */

/* ===== 1. 微信独立成块：强制脱离正文视觉流 ===== */

.is-assistant .rili-markdown-renderer wechat,
.rili-markdown-renderer wechat,
wechat {
  display: block !important;
  width: min(100%, 760px) !important;
  max-width: 760px !important;
  margin: 26px auto !important;
  padding: 0 !important;
  border-radius: 18px !important;
  overflow: hidden !important;
  background: #ededed !important;
  border: 1px solid rgba(15, 23, 42, 0.14) !important;
  box-shadow: 0 14px 38px rgba(15, 23, 42, 0.18) !important;
  color: #111827 !important;
  text-indent: 0 !important;
  clear: both !important;
  position: relative !important;
  z-index: 2 !important;
  font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", Arial, sans-serif !important;
}

/* ===== 2. 如果AI错误地把wechat塞进.story-text里，也强制做视觉隔断 ===== */

.is-assistant .rili-markdown-renderer .story-text wechat,
.rili-markdown-renderer .story-text wechat,
.story-text wechat {
  display: block !important;
  width: calc(100% + 36px) !important;
  max-width: none !important;
  margin: 24px -18px !important;
  border-radius: 16px !important;
  text-indent: 0 !important;
  clear: both !important;
}

/* ===== 3. 微信前后制造明显断层，避免像普通正文卡片的一部分 ===== */

.is-assistant .rili-markdown-renderer wechat::before,
.rili-markdown-renderer wechat::before,
wechat::before {
  content: "微信聊天记录" !important;
  display: block !important;
  padding: 8px 14px !important;
  background: linear-gradient(135deg, #dcdcdc, #f3f3f3) !important;
  color: #6b7280 !important;
  font-size: 0.78em !important;
  font-weight: 800 !important;
  letter-spacing: 0.08em !important;
  text-align: center !important;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06) !important;
  text-indent: 0 !important;
}

/* ===== 4. 微信内部所有元素取消正文缩进影响 ===== */

.is-assistant .rili-markdown-renderer wechat *,
.rili-markdown-renderer wechat *,
wechat * {
  box-sizing: border-box !important;
  text-indent: 0 !important;
}

/* ===== 5. 微信顶部栏 ===== */

.is-assistant .rili-markdown-renderer wechat-top,
.rili-markdown-renderer wechat-top,
wechat-top {
  display: block !important;
  padding: 16px 18px !important;
  background: #f2f2f2 !important;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08) !important;
  text-align: center !important;
}

.is-assistant .rili-markdown-renderer wechat-top p,
.rili-markdown-renderer wechat-top p,
wechat-top p {
  margin: 0 !important;
  padding: 0 !important;
  color: #111827 !important;
  font-size: 1.04em !important;
  font-weight: 850 !important;
  line-height: 1.45 !important;
  text-indent: 0 !important;
}

/* ===== 6. 微信主体 ===== */

.is-assistant .rili-markdown-renderer wechat-body,
.rili-markdown-renderer wechat-body,
wechat-body {
  display: block !important;
  padding: 22px 24px !important;
  background: #ededed !important;
  max-height: none !important;
  overflow: visible !important;
}

.is-assistant .rili-markdown-renderer wechat-time,
.is-assistant .rili-markdown-renderer wechat-date,
.rili-markdown-renderer wechat-time,
.rili-markdown-renderer wechat-date,
wechat-time,
wechat-date {
  display: block !important;
  width: fit-content !important;
  max-width: 88% !important;
  margin: 0 auto 18px auto !important;
  padding: 5px 10px !important;
  border-radius: 6px !important;
  background: #dedede !important;
  color: #8b8f98 !important;
  font-size: 0.82em !important;
  line-height: 1.45 !important;
  text-align: center !important;
}

/* ===== 7. 消息行左右分离 ===== */

.is-assistant .rili-markdown-renderer wechat-msg,
.rili-markdown-renderer wechat-msg,
wechat-msg {
  display: flex !important;
  align-items: flex-start !important;
  width: 100% !important;
  gap: 12px !important;
  margin: 0 0 18px 0 !important;
  padding: 0 !important;
  clear: both !important;
}

.is-assistant .rili-markdown-renderer wechat-msg.left,
.rili-markdown-renderer wechat-msg.left,
wechat-msg.left {
  flex-direction: row !important;
  justify-content: flex-start !important;
}

.is-assistant .rili-markdown-renderer wechat-msg.right,
.rili-markdown-renderer wechat-msg.right,
wechat-msg.right {
  flex-direction: row !important;
  justify-content: flex-end !important;
}

/* ===== 8. 头像 ===== */

.is-assistant .rili-markdown-renderer wechat-avatar,
.rili-markdown-renderer wechat-avatar,
wechat-avatar {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 46px !important;
  height: 46px !important;
  min-width: 46px !important;
  max-width: 46px !important;
  flex: 0 0 46px !important;
  border-radius: 9px !important;
  overflow: hidden !important;
  color: #ffffff !important;
  font-size: 1.12em !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  box-shadow: 0 3px 8px rgba(15, 23, 42, 0.14) !important;
}

.is-assistant .rili-markdown-renderer wechat-msg.left wechat-avatar,
.rili-markdown-renderer wechat-msg.left wechat-avatar,
wechat-msg.left wechat-avatar {
  order: 0 !important;
  background: linear-gradient(135deg, #7c6ee6, #5746b8) !important;
}

.is-assistant .rili-markdown-renderer wechat-msg.right wechat-avatar,
.rili-markdown-renderer wechat-msg.right wechat-avatar,
wechat-msg.right wechat-avatar {
  order: 2 !important;
  background: linear-gradient(135deg, #3f5f9f, #233f78) !important;
}

.is-assistant .rili-markdown-renderer wechat-avatar:empty::before,
.rili-markdown-renderer wechat-avatar:empty::before,
wechat-avatar:empty::before {
  content: "人" !important;
}

/* ===== 9. 左侧昵称容器 ===== */

.is-assistant .rili-markdown-renderer wechat-content,
.rili-markdown-renderer wechat-content,
wechat-content {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  max-width: calc(100% - 64px) !important;
  min-width: 0 !important;
  order: 1 !important;
}

.is-assistant .rili-markdown-renderer wechat-name,
.rili-markdown-renderer wechat-name,
wechat-name {
  display: block !important;
  margin: 0 0 5px 0 !important;
  padding: 0 !important;
  color: #8b8f98 !important;
  font-size: 0.84em !important;
  line-height: 1.25 !important;
  font-weight: 600 !important;
}

/* ===== 10. 气泡 ===== */

.is-assistant .rili-markdown-renderer wechat-bubble,
.rili-markdown-renderer wechat-bubble,
wechat-bubble {
  display: block !important;
  max-width: 560px !important;
  padding: 12px 16px !important;
  border-radius: 8px !important;
  background: #ffffff !important;
  color: #111827 !important;
  font-size: 0.98em !important;
  font-weight: 500 !important;
  line-height: 1.68 !important;
  letter-spacing: 0.05px !important;
  word-break: break-word !important;
  white-space: normal !important;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.08) !important;
  position: relative !important;
}

.is-assistant .rili-markdown-renderer wechat-msg.left wechat-bubble,
.rili-markdown-renderer wechat-msg.left wechat-bubble,
wechat-msg.left wechat-bubble {
  background: #ffffff !important;
  color: #111827 !important;
  border-top-left-radius: 4px !important;
}

.is-assistant .rili-markdown-renderer wechat-msg.right wechat-bubble,
.rili-markdown-renderer wechat-msg.right wechat-bubble,
wechat-msg.right wechat-bubble {
  order: 1 !important;
  background: #8bed62 !important;
  color: #111827 !important;
  border-top-right-radius: 4px !important;
}

.is-assistant .rili-markdown-renderer wechat-msg.left wechat-bubble::before,
.rili-markdown-renderer wechat-msg.left wechat-bubble::before,
wechat-msg.left wechat-bubble::before {
  content: "" !important;
  position: absolute !important;
  left: -7px !important;
  top: 13px !important;
  border-top: 7px solid transparent !important;
  border-bottom: 7px solid transparent !important;
  border-right: 8px solid #ffffff !important;
}

.is-assistant .rili-markdown-renderer wechat-msg.right wechat-bubble::after,
.rili-markdown-renderer wechat-msg.right wechat-bubble::after,
wechat-msg.right wechat-bubble::after {
  content: "" !important;
  position: absolute !important;
  right: -7px !important;
  top: 13px !important;
  border-top: 7px solid transparent !important;
  border-bottom: 7px solid transparent !important;
  border-left: 8px solid #8bed62 !important;
}

.is-assistant .rili-markdown-renderer wechat-bubble p,
.rili-markdown-renderer wechat-bubble p,
wechat-bubble p {
  margin: 0 !important;
  padding: 0 !important;
  color: #111827 !important;
  line-height: 1.68 !important;
  font-size: inherit !important;
  text-indent: 0 !important;
}

/* ===== 11. 系统消息 ===== */

.is-assistant .rili-markdown-renderer wechat-sys-text,
.is-assistant .rili-markdown-renderer wechat-recall,
.is-assistant .rili-markdown-renderer wechat-typing,
.rili-markdown-renderer wechat-sys-text,
.rili-markdown-renderer wechat-recall,
.rili-markdown-renderer wechat-typing,
wechat-sys-text,
wechat-recall,
wechat-typing {
  display: block !important;
  width: fit-content !important;
  max-width: 86% !important;
  margin: 8px auto 14px auto !important;
  padding: 5px 11px !important;
  border-radius: 6px !important;
  background: #dedede !important;
  color: #8b8f98 !important;
  font-size: 0.83em !important;
  line-height: 1.45 !important;
  text-align: center !important;
}

/* ===== 12. 微信后的正文重新形成独立卡片视觉 ===== */

.is-assistant .rili-markdown-renderer wechat + .story-text,
.rili-markdown-renderer wechat + .story-text,
wechat + .story-text {
  margin-top: 24px !important;
}

/* ===== 13. 移动端适配 ===== */

@media (max-width: 768px) {
  .is-assistant .rili-markdown-renderer wechat,
  .rili-markdown-renderer wechat,
  wechat {
    width: 100% !important;
    max-width: 100% !important;
    margin: 18px 0 !important;
    border-radius: 12px !important;
  }

  .is-assistant .rili-markdown-renderer .story-text wechat,
  .rili-markdown-renderer .story-text wechat,
  .story-text wechat {
    width: calc(100% + 28px) !important;
    margin: 22px -14px !important;
  }

  .is-assistant .rili-markdown-renderer wechat-body,
  .rili-markdown-renderer wechat-body,
  wechat-body {
    padding: 16px 12px !important;
  }

  .is-assistant .rili-markdown-renderer wechat-avatar,
  .rili-markdown-renderer wechat-avatar,
  wechat-avatar {
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    max-width: 38px !important;
    flex-basis: 38px !important;
    font-size: 1em !important;
  }

  .is-assistant .rili-markdown-renderer wechat-bubble,
  .rili-markdown-renderer wechat-bubble,
  wechat-bubble {
    max-width: calc(100vw - 112px) !important;
    padding: 10px 13px !important;
    font-size: 0.94em !important;
    line-height: 1.64 !important;
  }

  .is-assistant .rili-markdown-renderer wechat-content,
  .rili-markdown-renderer wechat-content,
  wechat-content {
    max-width: calc(100vw - 78px) !important;
  }
}

/* ═══════════════════════════════════════════
   APPEND PATCH v7.2
   终极防御：正文防吞噬视觉剥离补丁
   作用：当 AI 犯蠢把正文段落塞进 wechat 内部时，强制用 CSS 将其伪装成独立正文卡片
   ═══════════════════════════════════════════ */

/* 针对被错误塞入微信内部的正文段落（排除顶部标题和气泡内部的 p） */
.is-assistant .rili-markdown-renderer wechat p:not(wechat-top p):not(wechat-bubble p),
.rili-markdown-renderer wechat p:not(wechat-top p):not(wechat-bubble p),
wechat p:not(wechat-top p):not(wechat-bubble p) {
  display: block !important;
  background: linear-gradient(180deg, #ffffff, #fcfcff) !important;
  padding: 16px 18px !important;
  margin: 16px -6px !important; /* 稍微突破微信内部 padding 形成独立卡片感 */
  border-radius: 12px !important;
  border: 1px solid rgba(200, 210, 230, 0.55) !important;
  color: #253044 !important;
  font-size: 1.02em !important;
  line-height: 1.92 !important;
  text-indent: 2em !important;
  box-shadow: 0 4px 16px rgba(100, 120, 160, 0.07) !important;
  clear: both !important;
}

/* 确保正文里的文字颜色不会被微信全局字体覆盖 */
.is-assistant .rili-markdown-renderer wechat p:not(wechat-top p):not(wechat-bubble p) *,
.rili-markdown-renderer wechat p:not(wechat-top p):not(wechat-bubble p) *,
wechat p:not(wechat-top p):not(wechat-bubble p) * {
  color: #253044 !important;
}