from pathlib import Path

css = r'''/* =========================================================
   黑袍纠察队·血色镜像｜酒馆通用版 CSS
   The Boys · Blood Mirror Universal Tavern CSS

   适配目标：
   - SillyTavern / 酒馆类聊天界面
   - 普通 Markdown / AI聊天网站
   - 正文小说阅读区：浅色纸面 + 深色文字
   - 状态栏 details：黑红蓝 Vought 档案终端风
   - 表格：横向滑动 + 强制亮字
   - 记忆区：嵌套 details 才局部滚动
   - 手机端：不卡宽、不强制整页横向滑动

   使用方法：
   整段复制到自定义 CSS。
   如果某个网站没吃到样式，把该网站消息正文容器 class 加进第 1 节 :where() 即可。
========================================================= */


/* =========================
   0. 主题变量
========================= */

:root {
  --bm-black: #05070c;
  --bm-deep: #090d16;
  --bm-panel: rgba(10, 15, 26, 0.94);
  --bm-panel-soft: rgba(17, 24, 39, 0.88);

  --bm-paper: #fff8ed;
  --bm-paper-2: #f3eadc;
  --bm-paper-text: #191511;

  --bm-red: #e32635;
  --bm-red2: #8f111d;
  --bm-red-soft: rgba(227, 38, 53, 0.22);

  --bm-blue: #1e6dff;
  --bm-blue2: #0a2e67;
  --bm-blue-soft: rgba(30, 109, 255, 0.22);

  --bm-gold: #f2c14e;
  --bm-green: #30e6a6;
  --bm-purple: #a88cff;

  --bm-text: #eef3ff;
  --bm-muted: #aeb8cf;
  --bm-dim: #748096;
  --bm-line: rgba(255, 255, 255, 0.12);

  --bm-radius-lg: 18px;
  --bm-radius-md: 14px;
  --bm-radius-sm: 10px;

  --bm-font:
    "Microsoft YaHei",
    "PingFang SC",
    "Noto Sans SC",
    Arial,
    sans-serif;

  --bm-serif:
    "Noto Serif SC",
    "Source Han Serif SC",
    "Songti SC",
    "SimSun",
    serif;
}


/* =========================
   1. 通用正文容器识别
   酒馆 + 普通网页 + Markdown
========================= */

:where(
  #chat,
  #chat .mes,
  #chat .mes_block,
  #chat .mes_text,
  .mes,
  .mes_block,
  .mes_text,
  .message-content,
  .message-body,
  .message,
  .chat-message,
  .chat-content,
  .assistant-message,
  .bot-message,
  .ai-response,
  .response-content,
  .markdown-body,
  .prose,
  article,
  main,
  #customized-answer-content,
  #customized-question-content
) {
  box-sizing: border-box;
  font-family: var(--bm-font);
  line-height: 1.75;
  word-break: break-word;
}


/* =========================
   2. 页面底色：Vought 红蓝暗纹
   如果不想影响全站背景，可以删除 body 这段
========================= */

body {
  background:
    radial-gradient(circle at 10% 15%, rgba(30, 109, 255, 0.12), transparent 28%),
    radial-gradient(circle at 90% 8%, rgba(227, 38, 53, 0.12), transparent 30%),
    linear-gradient(180deg, #05070c 0%, #090d16 48%, #030409 100%) !important;
  color: var(--bm-text);
}

/* 酒馆主聊天区轻微暗化，不强行破坏布局 */
:where(#chat, .chat, .chat-container) {
  background:
    radial-gradient(circle at 8% 0%, rgba(30, 109, 255, 0.08), transparent 34%),
    radial-gradient(circle at 92% 10%, rgba(227, 38, 53, 0.08), transparent 34%),
    transparent;
}


/* =========================
   3. 酒馆消息气泡：低侵入
========================= */

:where(.mes, .message, .chat-message) {
  border-radius: var(--bm-radius-lg);
}

:where(#chat .mes) {
  position: relative;
  margin-block: 10px;
}

/* AI / 角色消息外层暗色边缘 */
:where(.mes[is_user="false"], .assistant-message, .bot-message, .message.assistant) {
  border: 1px solid rgba(255, 255, 255, 0.10);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.035), transparent 30%),
    rgba(5, 7, 12, 0.34);
  box-shadow: 0 10px 28px rgba(0,0,0,0.18);
}

/* 用户消息略偏蓝 */
:where(.mes[is_user="true"], .user-message, .message.user) {
  border: 1px solid rgba(30, 109, 255, 0.18);
  background:
    linear-gradient(135deg, rgba(30, 109, 255, 0.08), transparent 32%),
    rgba(5, 7, 12, 0.24);
}


/* =========================
   4. 正文小说阅读区：白底黑字
   避免一段一个卡片，保持连续小说排版
========================= */

:where(
  .mes_text,
  .message-content,
  .message-body,
  .chat-content,
  .assistant-message,
  .bot-message,
  .ai-response,
  .response-content,
  .markdown-body,
  #customized-answer-content .markdown-body
) {
  color: var(--bm-paper-text) !important;
}

/* 只有正文内容区做纸面，不强制整个酒馆 UI 变白 */
:where(
  #customized-answer-content .markdown-body,
  .markdown-body,
  .prose
) {
  background:
    linear-gradient(180deg, #fffaf1 0%, #f8efe2 100%);
  color: var(--bm-paper-text) !important;
  border-radius: var(--bm-radius-lg);
  padding: 18px 18px 22px;
  box-shadow:
    0 10px 28px rgba(82, 44, 18, 0.12),
    inset 0 0 0 1px rgba(94, 54, 26, 0.08);
}

/* 不使用全屏扫描线伪元素，减少网站 bug */
:where(.markdown-body, .prose)::before,
:where(.markdown-body, .prose)::after,
#customized-answer-content .markdown-body::before,
#customized-answer-content .markdown-body::after {
  display: none !important;
  content: none !important;
}

/* 正文段落：连续阅读，不做卡片 */
:where(
  .mes_text,
  .message-content,
  .message-body,
  .chat-content,
  .markdown-body,
  .prose,
  #customized-answer-content .markdown-body
) > p {
  display: block !important;
  margin: 0 0 1.05em 0 !important;
  padding: 0 !important;

  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  overflow: visible !important;

  color: var(--bm-paper-text) !important;
  font-family: var(--bm-serif) !important;
  font-size: 16px !important;
  line-height: 1.92 !important;
  letter-spacing: 0.015em !important;
  text-align: left !important;
  text-indent: 2em !important;
}

/* 防止旧版段落扫光残留 */
:where(.markdown-body, .prose, .mes_text) > p::before,
:where(.markdown-body, .prose, .mes_text) > p::after,
#customized-answer-content .markdown-body > p::before,
#customized-answer-content .markdown-body > p::after {
  display: none !important;
  content: none !important;
}

/* 正文加粗/斜体 */
:where(.markdown-body, .prose, .mes_text) > p strong,
#customized-answer-content .markdown-body > p strong {
  color: #9b111e !important;
  font-weight: 900 !important;
  text-shadow: none !important;
}

:where(.markdown-body, .prose, .mes_text) > p em,
#customized-answer-content .markdown-body > p em {
  color: #5b3a12 !important;
  font-style: normal !important;
  font-weight: 700 !important;
}

/* 正文标题 */
:where(.markdown-body, .prose, .mes_text) > :where(h1, h2, h3, h4),
#customized-answer-content .markdown-body > :where(h1, h2, h3, h4) {
  color: #15110e !important;
  background: transparent !important;
  border: none !important;
  text-shadow: none !important;
  margin: 1.2em 0 0.65em !important;
  font-family: var(--bm-font) !important;
  font-weight: 900 !important;
}

/* 正文列表 */
:where(.markdown-body, .prose, .mes_text) > :where(ul, ol),
#customized-answer-content .markdown-body > :where(ul, ol) {
  color: var(--bm-paper-text) !important;
  background: transparent !important;
  margin: 0.7em 0 1em 1.2em !important;
  padding-left: 1.2em !important;
}

:where(.markdown-body, .prose, .mes_text) > :where(ul, ol) li,
#customized-answer-content .markdown-body > :where(ul, ol) li {
  color: var(--bm-paper-text) !important;
  line-height: 1.8 !important;
}

/* 正文引用块 */
:where(.markdown-body, .prose, .mes_text) > blockquote,
#customized-answer-content .markdown-body > blockquote {
  margin: 1em 0 !important;
  padding: 12px 14px !important;
  color: #2a2119 !important;
  background: #fff4df !important;
  border-left: 4px solid #b3192a !important;
  border-radius: 0 10px 10px 0 !important;
  box-shadow: none !important;
}


/* =========================
   5. details 状态栏：暗色档案面板
========================= */

details {
  position: relative;
  box-sizing: border-box;
  margin: 14px 0;
  padding: 0;
  border-radius: var(--bm-radius-lg);
  border: 1px solid rgba(255,255,255,0.13);
  background:
    linear-gradient(135deg, rgba(255,255,255,0.055), transparent 28%),
    linear-gradient(180deg, rgba(10, 15, 26, 0.96), rgba(4, 6, 12, 0.94));
  color: var(--bm-text) !important;
  box-shadow:
    0 16px 38px rgba(0,0,0,0.42),
    inset 0 0 0 1px rgba(255,255,255,0.035);
  overflow: hidden !important;
  isolation: isolate;
  transition:
    transform .22s ease,
    filter .22s ease,
    border-color .22s ease,
    box-shadow .22s ease;
}

/* 打开后正常展开，不把整个面板变成滚动小窗 */
details[open] {
  max-height: none !important;
  overflow: hidden !important;
}

details:hover {
  transform: translateY(-2px);
  filter: brightness(1.04);
  border-color: rgba(255,255,255,0.22);
}

details::before {
  content: "";
  position: absolute;
  inset: -1px;
  z-index: -1;
  border-radius: inherit;
  background:
    linear-gradient(120deg, rgba(30,109,255,.42), transparent 28%, transparent 66%, rgba(227,38,53,.48)),
    radial-gradient(circle at 8% 0%, rgba(30,109,255,.24), transparent 32%),
    radial-gradient(circle at 92% 100%, rgba(227,38,53,.26), transparent 35%);
  opacity: 0.46;
}

/* 面板扫光 */
details::after {
  content: "";
  position: absolute;
  top: 0;
  left: -46%;
  width: 42%;
  height: 100%;
  pointer-events: none;
  background:
    linear-gradient(
      100deg,
      transparent,
      rgba(255,255,255,0.075),
      rgba(227,38,53,0.08),
      transparent
    );
  transform: skewX(-18deg);
  opacity: 0;
}

details:hover::after {
  animation: bmPanelSweep 1.25s ease forwards;
}

@keyframes bmPanelSweep {
  0% { left: -50%; opacity: 0; }
  18% { opacity: 1; }
  100% { left: 120%; opacity: 0; }
}


/* =========================
   6. summary 标题栏
========================= */

details > summary {
  position: relative !important;
  top: auto !important;
  z-index: 10;
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 48px;
  padding: 13px 48px 13px 18px;
  cursor: pointer;
  list-style: none;
  user-select: none;
  color: #fff !important;
  font-family: var(--bm-font);
  font-size: 15px;
  font-weight: 900;
  letter-spacing: 0.06em;
  background:
    linear-gradient(90deg, rgba(227,38,53,0.24), rgba(30,109,255,0.13) 46%, rgba(255,255,255,0.04)),
    linear-gradient(180deg, rgba(255,255,255,0.10), rgba(255,255,255,0.025));
  border-bottom: 1px solid rgba(255,255,255,0.12);
  text-shadow: 0 0 10px rgba(227,38,53,0.35);
}

details > summary::-webkit-details-marker {
  display: none;
}

/* summary 左侧标签 */
details > summary::before {
  content: "VOUGHT";
  flex: 0 0 auto;
  padding: 4px 7px 4px 8px;
  border-radius: 999px;
  color: #06101f;
  background: linear-gradient(90deg, #f2f6ff, #8fb5ff);
  font-size: 10px;
  line-height: 1;
  letter-spacing: 0.12em;
  box-shadow: 0 0 12px rgba(30,109,255,.45);
}

/* summary 右侧箭头 */
details > summary::after {
  content: "";
  position: absolute;
  right: 18px;
  top: 50%;
  width: 10px;
  height: 10px;
  border-right: 2px solid rgba(255,255,255,.88);
  border-bottom: 2px solid rgba(255,255,255,.88);
  transform: translateY(-64%) rotate(45deg);
  transition: transform .24s ease, border-color .24s ease, filter .24s ease;
  filter: drop-shadow(0 0 6px rgba(227,38,53,.45));
}

details[open] > summary::after {
  transform: translateY(-30%) rotate(225deg);
  border-color: var(--bm-red);
}


/* =========================
   7. 状态栏模块按顺序自动贴标签
   1 思维链 / 2 当前情况 / 3 主角信息 / 4 NPC信息
   5 势力动态 / 6 世界线偏移 / 7 关系网络 / 8 记忆区 / 9 行动推荐
========================= */

details:nth-of-type(1) > summary::before {
  content: "SCAN";
  background: linear-gradient(90deg, #ff4655, #ffd2d7);
  color: #240407;
}

details:nth-of-type(1) {
  border-color: rgba(227,38,53,.32);
  background:
    radial-gradient(circle at 92% 12%, rgba(227,38,53,.16), transparent 30%),
    linear-gradient(180deg, rgba(18,9,15,.96), rgba(5,6,12,.94));
}

details:nth-of-type(2) > summary::before {
  content: "TIME";
  background: linear-gradient(90deg, #f2c14e, #fff2b7);
  color: #1b1200;
}

details:nth-of-type(2) strong {
  color: var(--bm-gold) !important;
}

details:nth-of-type(3) > summary::before {
  content: "ID";
  background: linear-gradient(90deg, #7db2ff, #eef5ff);
  color: #06101f;
}

details:nth-of-type(3) {
  background:
    radial-gradient(circle at 8% 12%, rgba(30,109,255,.18), transparent 28%),
    linear-gradient(180deg, rgba(10,16,30,.96), rgba(5,7,13,.95));
}

details:nth-of-type(4) > summary::before {
  content: "NPC";
  background: linear-gradient(90deg, #ff3145, #ffb1ba);
  color: #240306;
}

details:nth-of-type(4) {
  border-color: rgba(227,38,53,.42);
  background:
    radial-gradient(circle at 88% 20%, rgba(227,38,53,.22), transparent 32%),
    linear-gradient(180deg, rgba(20,8,14,.96), rgba(5,6,12,.95));
  box-shadow:
    0 16px 42px rgba(0,0,0,.46),
    0 0 32px rgba(227,38,53,.16);
}

details:nth-of-type(4) > summary {
  animation: bmDangerBreath 2.8s ease-in-out infinite;
}

@keyframes bmDangerBreath {
  0%, 100% { text-shadow: 0 0 8px rgba(227,38,53,.28); }
  50% { text-shadow: 0 0 18px rgba(227,38,53,.78); }
}

details:nth-of-type(5) > summary::before {
  content: "VNN";
  background: linear-gradient(90deg, #30e6a6, #caffef);
  color: #001b12;
}

details:nth-of-type(5) {
  border-color: rgba(48,230,166,.24);
  background:
    radial-gradient(circle at 12% 16%, rgba(48,230,166,.14), transparent 30%),
    linear-gradient(180deg, rgba(8,20,18,.96), rgba(4,7,12,.95));
}

details:nth-of-type(5) > summary {
  background:
    linear-gradient(90deg, rgba(48,230,166,.18), rgba(30,109,255,.13), rgba(255,255,255,.035));
}

details:nth-of-type(6) > summary::before {
  content: "DEV";
  background: linear-gradient(90deg, #ff1f34, #f2c14e);
  color: #210000;
}

details:nth-of-type(6) {
  border-color: rgba(227,38,53,.52);
  background:
    radial-gradient(circle at 92% 18%, rgba(227,38,53,.24), transparent 30%),
    linear-gradient(180deg, rgba(23,8,13,.97), rgba(5,6,12,.95));
}

details:nth-of-type(7) > summary::before {
  content: "NET";
  background: linear-gradient(90deg, #a88cff, #f1eaff);
  color: #130824;
}

details:nth-of-type(7) {
  background:
    radial-gradient(circle at 18% 18%, rgba(168,140,255,.18), transparent 28%),
    linear-gradient(180deg, rgba(15,13,30,.96), rgba(5,7,13,.95));
}

details:nth-of-type(8) > summary::before {
  content: "MEM";
  background: linear-gradient(90deg, #53677e, #d6e2f0);
  color: #05090e;
}

details:nth-of-type(8) {
  border-color: rgba(154,163,184,.24);
  background:
    linear-gradient(180deg, rgba(19,25,34,.97), rgba(5,7,13,.96));
}

details:nth-of-type(9) > summary::before,
details:last-of-type > summary::before {
  content: "ACT";
  background: linear-gradient(90deg, #e32635, #ffffff);
  color: #1d0205;
}

details:nth-of-type(9),
details:last-of-type {
  border-color: rgba(242,193,78,.32);
  background:
    radial-gradient(circle at 92% 22%, rgba(242,193,78,.16), transparent 30%),
    linear-gradient(180deg, rgba(19,16,9,.97), rgba(5,7,13,.95));
}


/* =========================
   8. 状态栏内部文字强制亮色
========================= */

details,
details * {
  color: var(--bm-text) !important;
}

details p,
details li,
details div,
details span,
details section,
details article,
details small {
  color: rgba(240,244,255,.90) !important;
  font-family: var(--bm-font);
  line-height: 1.75;
  text-indent: 0 !important;
}

details p {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0.65em 0 !important;
  font-size: 14px !important;
}

details strong,
details b {
  color: #ffffff !important;
  font-weight: 900;
  text-shadow:
    0 0 10px rgba(30,109,255,.24),
    0 0 12px rgba(227,38,53,.18);
}

details em,
details i {
  color: var(--bm-gold) !important;
  font-style: normal;
  font-weight: 800;
}

details a {
  color: #8fb5ff !important;
  text-decoration: none;
  border-bottom: 1px solid rgba(143,181,255,.36);
}

details hr {
  border: 0 !important;
  height: 1px !important;
  margin: 18px 0 !important;
  background:
    linear-gradient(90deg, transparent, rgba(227,38,53,.7), rgba(30,109,255,.45), transparent) !important;
}


/* =========================
   9. 表格：只让表格横向滑动
========================= */

details table {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 14px 0 18px !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  white-space: nowrap !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  border-radius: var(--bm-radius-md) !important;
  border: 1px solid rgba(255,255,255,.14) !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.075), rgba(255,255,255,.025)) !important;
  box-shadow:
    0 8px 24px rgba(0,0,0,.30),
    inset 0 0 0 1px rgba(255,255,255,.035) !important;
}

details table thead,
details table tbody,
details table tr {
  width: 100% !important;
}

details th {
  padding: 10px 12px !important;
  border-bottom: 1px solid rgba(255,255,255,.16) !important;
  background:
    linear-gradient(90deg, rgba(227,38,53,.38), rgba(30,109,255,.24)) !important;
  color: #ffffff !important;
  font-family: var(--bm-font) !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  letter-spacing: .04em !important;
  text-align: left !important;
  white-space: nowrap !important;
}

details td {
  padding: 10px 12px !important;
  border-bottom: 1px solid rgba(255,255,255,.09) !important;
  background: rgba(6, 9, 16, 0.82) !important;
  color: rgba(241,245,255,.94) !important;
  font-family: var(--bm-font) !important;
  font-size: 13px !important;
  line-height: 1.65 !important;
  vertical-align: top !important;
  white-space: normal !important;
  min-width: 92px !important;
}

details tr:nth-child(even) td {
  background: rgba(17, 23, 37, 0.78) !important;
}

details tr:hover td {
  background: rgba(227, 38, 53, 0.16) !important;
  color: #fff !important;
}

/* 主要势力当前态势 */
details:nth-of-type(5) table th {
  background:
    linear-gradient(90deg, rgba(48,230,166,.34), rgba(30,109,255,.25)) !important;
  color: #ffffff !important;
}

details:nth-of-type(5) table td {
  color: rgba(232,255,247,.96) !important;
  background: rgba(5,18,17,.86) !important;
}

/* 世界线偏移 */
details:nth-of-type(6) table th {
  background:
    linear-gradient(90deg, rgba(227,38,53,.46), rgba(242,193,78,.22)) !important;
}

details:nth-of-type(6) table td {
  color: rgba(255,236,238,.96) !important;
  background: rgba(24,7,12,.86) !important;
}

/* 记忆区表格 */
details:nth-of-type(8) table {
  max-height: 46vh !important;
  overflow: auto !important;
}

details:nth-of-type(8) table th {
  color: #ffffff !important;
  background:
    linear-gradient(90deg, rgba(83,103,126,.48), rgba(154,163,184,.26)) !important;
}

details:nth-of-type(8) table td {
  color: rgba(231,238,247,.96) !important;
  background: rgba(10,14,20,.88) !important;
}


/* =========================
   10. 记忆区：嵌套 details 才局部滚动
========================= */

details:nth-of-type(8)[open] {
  max-height: none !important;
  overflow: hidden !important;
}

details:nth-of-type(8) details {
  margin: 12px 0 18px;
  border-radius: var(--bm-radius-md);
  background:
    linear-gradient(180deg, rgba(255,255,255,.055), rgba(255,255,255,.02));
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.04);
}

details:nth-of-type(8) details[open] {
  max-height: 62vh !important;
  overflow-y: auto !important;
  overflow-x: auto !important;
}


/* =========================
   11. 行动推荐
========================= */

details:last-of-type :where(ol, ul) {
  list-style: none !important;
  padding-left: 0 !important;
  margin: 12px 0 14px !important;
  display: grid;
  gap: 10px;
}

details:last-of-type :where(ol, ul) li,
details:nth-of-type(9) > p {
  position: relative;
  margin: 0;
  padding: 10px 12px 10px 42px !important;
  border-radius: 12px;
  border: 1px solid rgba(242,193,78,.18);
  background:
    linear-gradient(90deg, rgba(242,193,78,.12), rgba(227,38,53,.08), transparent);
  color: rgba(255,246,222,.94) !important;
  font-weight: 800;
  transition:
    transform .2s ease,
    background .2s ease,
    border-color .2s ease;
}

details:last-of-type :where(ol, ul) li::before,
details:nth-of-type(9) > p::before {
  content: "ACT";
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  padding: 2px 5px;
  border-radius: 999px;
  color: #1d0205;
  background: linear-gradient(90deg, #e32635, #ffffff);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .08em;
}

details:last-of-type :where(ol, ul) li:hover,
details:nth-of-type(9) > p:hover {
  background:
    linear-gradient(90deg, rgba(227,38,53,.18), rgba(242,193,78,.14), transparent);
  border-color: rgba(242,193,78,.36);
  transform: translateX(2px);
}


/* =========================
   12. 代码块 / 记忆文本
========================= */

details code,
code {
  color: #ff8790 !important;
  background: rgba(227, 38, 53, 0.12) !important;
  border: 1px solid rgba(227, 38, 53, 0.25) !important;
  border-radius: 6px;
  padding: 2px 5px;
  font-family:
    "Consolas",
    "Menlo",
    "Monaco",
    "Microsoft YaHei",
    monospace;
}

details pre,
pre {
  max-width: 100%;
  overflow: auto;
  padding: 12px;
  border-radius: var(--bm-radius-md);
  background: rgba(5, 8, 14, 0.92) !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  color: rgba(240,244,255,.94) !important;
}

details pre code,
pre code {
  background: transparent !important;
  border: none !important;
  color: inherit !important;
}


/* =========================
   13. 输入框 / 底部按钮：酒馆通用
========================= */

:where(
  #send_form,
  #send_textarea,
  #chat_message,
  textarea,
  input[type="text"],
  input[type="search"],
  input:not([type]),
  [contenteditable="true"]
) {
  border-radius: var(--bm-radius-md) !important;
}

:where(
  #send_textarea,
  #chat_message,
  textarea,
  input[type="text"],
  input[type="search"],
  input:not([type]),
  [contenteditable="true"]
) {
  color: #f3f6ff !important;
  background:
    linear-gradient(180deg, rgba(17,24,39,.94), rgba(5,7,12,.94)) !important;
  border: 1px solid rgba(255,255,255,.16) !important;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.035),
    0 0 18px rgba(30,109,255,.10) !important;
  outline: none !important;
}

:where(
  #send_textarea,
  #chat_message,
  textarea,
  input[type="text"],
  input[type="search"],
  input:not([type]),
  [contenteditable="true"]
):focus {
  border-color: rgba(227,38,53,.46) !important;
  box-shadow:
    0 0 0 3px rgba(227,38,53,.12),
    0 0 22px rgba(30,109,255,.16) !important;
}

:where(
  #send_but,
  #send_button,
  .send-button,
  button,
  input[type="button"],
  input[type="submit"],
  [role="button"],
  .menu_button,
  .drawer-toggle
) {
  border-radius: 999px !important;
  border: 1px solid rgba(255,255,255,.16) !important;
  background:
    linear-gradient(135deg, rgba(227,38,53,.28), rgba(30,109,255,.22)),
    rgba(5,7,12,.86) !important;
  color: #ffffff !important;
  font-family: var(--bm-font);
  font-weight: 800;
  box-shadow:
    0 8px 18px rgba(0,0,0,.22),
    inset 0 0 0 1px rgba(255,255,255,.04);
  transition:
    transform .2s ease,
    filter .2s ease,
    box-shadow .2s ease;
}

:where(
  #send_but,
  #send_button,
  .send-button,
  button,
  input[type="button"],
  input[type="submit"],
  [role="button"],
  .menu_button,
  .drawer-toggle
):hover {
  transform: translateY(-1px);
  filter: brightness(1.1);
  box-shadow:
    0 10px 22px rgba(0,0,0,.28),
    0 0 18px rgba(227,38,53,.18);
}


/* =========================
   14. 滚动条
========================= */

:where(details, table, pre, .mes_text, #chat)::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

:where(details, table, pre, .mes_text, #chat)::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: linear-gradient(180deg, var(--bm-red), var(--bm-blue));
}

:where(details, table, pre, .mes_text, #chat)::-webkit-scrollbar-track {
  background: rgba(255,255,255,.055);
}


/* =========================
   15. 链接 / 图片兜底
========================= */

a {
  color: #497cff;
  text-decoration: none;
  border-bottom: 1px dashed rgba(30,109,255,.35);
}

details a {
  color: #8fb5ff !important;
}

a:hover {
  color: #b3192a;
}

img {
  max-width: 100%;
  height: auto;
  border-radius: var(--bm-radius-md);
}


/* =========================
   16. 手机端适配
========================= */

@media (max-width: 760px) {
  :where(
    .mes_text,
    .message-content,
    .message-body,
    .chat-content,
    .markdown-body,
    .prose,
    #customized-answer-content .markdown-body
  ) > p {
    font-size: 15px !important;
    line-height: 1.82 !important;
    text-indent: 2em !important;
    margin-bottom: 0.95em !important;
  }

  :where(.markdown-body, .prose) {
    padding: 14px 13px 18px !important;
    border-radius: 14px !important;
  }

  details {
    margin: 11px 0;
    border-radius: 14px;
  }

  details > summary {
    min-height: 46px;
    padding: 12px 42px 12px 13px;
    font-size: 14px;
    letter-spacing: .035em;
  }

  details > summary::before {
    font-size: 9px;
    padding: 4px 6px;
    letter-spacing: .08em;
  }

  details > *:not(summary) {
    margin-left: 12px;
    margin-right: 12px;
  }

  details p,
  details li,
  details td,
  details th {
    font-size: 13px !important;
    line-height: 1.68 !important;
  }

  details table {
    display: block !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    white-space: nowrap !important;
  }

  details th,
  details td {
    min-width: 96px !important;
    padding: 9px 10px !important;
    font-size: 12.5px !important;
  }

  details:nth-of-type(8) details[open] {
    max-height: 68vh !important;
    overflow-y: auto !important;
    overflow-x: auto !important;
  }

  :where(#send_textarea, #chat_message, textarea) {
    font-size: 14px !important;
  }
}


/* =========================
   17. 减少动画偏好
========================= */

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation: none !important;
    transition: none !important;
  }
}


/* =========================
   18. 可选：强制状态栏白字补丁
   如果网站主题把小字压黑，这段保留在最底部
========================= */

details,
details * {
  color: #eef3ff !important;
}

details summary,
details summary * {
  color: #ffffff !important;
}

details table,
details table *,
details th,
details td {
  color: rgba(241,245,255,.94) !important;
}

details th {
  color: #ffffff !important;
}

details strong,
details b {
  color: #ffffff !important;
}

details em,
details i {
  color: var(--bm-gold) !important;
}

