/* ===========================================================
   大宋人生 · 青瓷雅韵 v1
   主色：粉青 / 梅子青 / 汝窑天青 / 冰裂墨灰
   字体：仿宋为主，楷体为辅
   =========================================================== */


/* ============ 〇、AI回复卡片（青瓷釉面） ============ */

.group.is-assistant > div:first-child,
[class*="is-assistant"],
div[class*="bg-card"] {
  background:
    radial-gradient(ellipse at 12% 0%, rgba(122, 158, 145, 0.18) 0%, transparent 35%),
    radial-gradient(ellipse at 88% 100%, rgba(94, 134, 124, 0.14) 0%, transparent 40%),
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240' viewBox='0 0 240 240'><g fill='none' stroke='%23527a6e' stroke-width='0.4' opacity='0.18'><path d='M0,60 Q60,40 120,60 T240,60'/><path d='M0,120 Q60,100 120,120 T240,120'/><path d='M0,180 Q60,160 120,180 T240,180'/><path d='M30,0 L50,30 L20,50 L40,80 L10,100'/><path d='M150,20 L180,50 L160,80 L190,110'/><path d='M70,140 L100,170 L80,200 L110,230'/></g></svg>"),
    linear-gradient(168deg, #d8e4dc 0%, #b9cfc3 50%, #9ebcae 100%) !important;
  border: 1px solid #6e9085 !important;
  border-radius: 6px !important;
  box-shadow:
    inset 0 0 0 1px rgba(232, 240, 234, 0.55),
    inset 0 0 50px rgba(60, 90, 80, 0.10),
    0 4px 18px rgba(50, 80, 70, 0.20) !important;
  color: #1f2e29 !important;
  padding: 22px 26px !important;
  position: relative;
  font-family: "FangSong", "STFangsong", "STKaiti", "KaiTi", serif !important;
}

/* 用户消息卡片（梅子青） */
.group.is-user > div:first-child,
[class*="is-user"],
[class*="bg-secondary"] {
  background:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'><g fill='none' stroke='%23365a4e' stroke-width='0.5' opacity='0.15'><circle cx='30' cy='30' r='18'/><circle cx='30' cy='30' r='10'/><circle cx='130' cy='130' r='22'/><circle cx='130' cy='130' r='12'/></g></svg>"),
    linear-gradient(180deg, #a8c4b6 0%, #7ea597 100%) !important;
  border: 1px solid #486b5f !important;
  border-radius: 6px !important;
  color: #1a2925 !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.25),
    0 2px 6px rgba(50, 80, 70, 0.18) !important;
  font-family: "FangSong", "STFangsong", "STKaiti", serif !important;
}

/* 内部文本强制覆盖 */
.rili-markdown-renderer,
.rili-markdown-renderer * {
  color: #1f2e29 !important;
  font-family: "FangSong", "STFangsong", "STKaiti", "KaiTi", serif !important;
}

[class*="is-assistant"] div,
[class*="is-assistant"] p,
[class*="bg-card"] div,
[class*="bg-card"] p {
  background-color: transparent !important;
}


/* ============ 一、top / bottom 容器 ============ */

top, bottom {
  display: block;
  margin: 0;
  padding: 0;
  background: transparent;
  border: none;
  box-shadow: none;
  color: #2a3d36;
  font-family: "FangSong", "STFangsong", "STKaiti", serif;
  line-height: 1.95;
}


/* ============ 二、正文区 text（青瓷信笺 + 冰裂纹） ============ */

text {
  display: block;
  margin: 18px 0;
  padding: 28px 32px;
  background:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='300' height='300' viewBox='0 0 300 300'><g fill='none' stroke='%23456a5e' stroke-width='0.35' opacity='0.22'><path d='M0,40 L80,90 L40,160 L120,200 L80,280'/><path d='M150,0 L200,70 L160,140 L240,180 L210,260'/><path d='M250,30 L290,100 L240,170 L300,230'/><path d='M30,180 L90,220 L60,290'/></g></svg>"),
    repeating-linear-gradient(
      0deg,
      transparent 0px,
      transparent 36px,
      rgba(70, 105, 95, 0.05) 36px,
      rgba(70, 105, 95, 0.05) 37px
    ),
    linear-gradient(180deg, #e6efe8 0%, #c9dcd0 100%);
  border-top: 2px solid #527a6e;
  border-bottom: 2px solid #527a6e;
  border-left: 1px solid rgba(70, 105, 95, 0.45);
  border-right: 1px solid rgba(70, 105, 95, 0.45);
  border-radius: 3px;
  box-shadow:
    inset 0 0 28px rgba(70, 105, 95, 0.10),
    0 2px 10px rgba(50, 80, 70, 0.14);
  font-family: "FangSong", "STFangsong", "STKaiti", "KaiTi", serif;
  color: #1f2e29;
  font-size: 16px;
  line-height: 2.05;
  letter-spacing: 0.06em;
  text-align: justify;
  position: relative;
}

/* 朱砂印章："宋" */
text::after {
  content: "宋";
  position: absolute;
  top: 14px;
  right: 18px;
  width: 42px;
  height: 42px;
  display: flex;
  align-items: center;
  justify-content: center;
  background:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 42 42'><path d='M2,2 L40,2 L40,40 L2,40 Z' fill='none' stroke='%23a82828' stroke-width='1.5'/><path d='M5,5 L37,5 L37,37 L5,37 Z' fill='none' stroke='%23a82828' stroke-width='0.6' opacity='0.5'/></svg>"),
    linear-gradient(135deg, #b8332a 0%, #8a1f1b 100%);
  background-size: cover;
  color: #f0e6d0;
  font-family: "STKaiti", "KaiTi", serif;
  font-size: 24px;
  font-weight: bold;
  border-radius: 3px;
  box-shadow:
    inset 0 0 4px rgba(255, 255, 255, 0.2),
    2px 2px 5px rgba(0, 0, 0, 0.3);
  transform: rotate(-4deg);
  opacity: 0.92;
  z-index: 2;
}


/* ============ 三、details 折叠区 ============ */

details {
  margin: 0;
  padding: 0;
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
  position: relative;
}

details + details {
  border-top: 1px dashed rgba(70, 105, 95, 0.45);
  margin-top: 4px;
  padding-top: 4px;
}

details summary {
  padding: 12px 4px 12px 26px;
  background: transparent;
  color: #2c5448;
  font-family: "STKaiti", "KaiTi", "FangSong", serif;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.18em;
  cursor: pointer;
  list-style: none;
  user-select: none;
  position: relative;
  border: none;
  transition: color 0.25s ease, letter-spacing 0.25s ease;
}

details summary::-webkit-details-marker { display: none; }
details summary::marker { content: ""; }

/* 章首：莲花 SVG 点缀 */
details summary::before {
  content: "";
  position: absolute;
  left: 2px;
  top: 50%;
  transform: translateY(-50%);
  width: 16px;
  height: 16px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M8,2 Q10,5 8,8 Q6,5 8,2 M8,8 Q11,7 14,8 Q11,9 8,8 M8,8 Q9,11 8,14 Q7,11 8,8 M8,8 Q5,9 2,8 Q5,7 8,8' fill='%232c5448' opacity='0.85'/><circle cx='8' cy='8' r='1.2' fill='%23a82828'/></svg>");
  background-size: contain;
  background-repeat: no-repeat;
  transition: transform 0.4s ease;
}

details[open] summary::before {
  transform: translateY(-50%) rotate(180deg);
}

details summary:hover {
  color: #1c4438;
  letter-spacing: 0.22em;
}

details > *:not(summary) {
  padding: 6px 8px 14px 24px;
  margin-left: 8px;
  border-left: 1px solid rgba(70, 105, 95, 0.30);
  color: #2a3d36;
  font-size: 14.5px;
  line-height: 1.95;
  font-family: "FangSong", "STKaiti", serif;
}

details:not([open]) > *:not(summary) {
  border-left: none;
}


/* ============ 四、表格 ============ */

details table {
  width: 100%;
  border-collapse: collapse;
  margin: 10px 0;
  background: rgba(232, 240, 234, 0.45);
  border-top: 2px solid #527a6e;
  border-bottom: 2px solid #527a6e;
  font-family: "FangSong", "STKaiti", serif;
  font-size: 13.5px;
}

details table thead tr {
  background: transparent;
  border-bottom: 1px solid #527a6e;
}

details table th {
  padding: 9px 10px;
  text-align: left;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: #2c5448;
  font-family: "STKaiti", "KaiTi", serif;
  font-size: 14px;
  border-right: 1px dashed rgba(70, 105, 95, 0.3);
}

details table th:last-child { border-right: none; }

details table td {
  padding: 8px 10px;
  border-top: 1px dotted rgba(70, 105, 95, 0.25);
  border-right: 1px dashed rgba(70, 105, 95, 0.18);
  color: #2a3d36;
}

details table td:last-child { border-right: none; }

details table tbody tr:hover {
  background: rgba(70, 105, 95, 0.08);
}


/* ============ 五、文风状态标签 ============ */

hb-status, cq-status, fy-status {
  display: inline-block;
  padding: 2px 11px;
  margin: 0 3px;
  border-radius: 2px;
  font-family: "STKaiti", "KaiTi", serif;
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: 0.1em;
  border: 1px solid;
  transition: all 0.25s ease;
}

hb-status[status="on"],
cq-status[status="on"],
fy-status[status="on"] {
  background: linear-gradient(135deg, #5a8578 0%, #365a4e 100%);
  color: #eef5ef;
  border-color: #244038;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

hb-status[status="off"],
cq-status[status="off"],
fy-status[status="off"] {
  background: transparent;
  color: #6b8a7f;
  border-color: #8aa89d;
  border-style: dashed;
  opacity: 0.7;
}


/* ============ 六、顶部导航栏 ============ */

.app-header,
header[class*="header"],
nav[class*="nav"],
[class*="top-bar"],
[class*="navbar"] {
  background:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='60' viewBox='0 0 200 60'><g fill='none' stroke='%23c8d8d0' stroke-width='0.5' opacity='0.25'><path d='M0,30 Q50,15 100,30 T200,30'/><path d='M0,45 Q50,55 100,45 T200,45'/></g></svg>"),
    linear-gradient(180deg, #2c5448 0%, #365a4e 50%, #2c5448 100%) !important;
  border-bottom: 2px solid #8aa89d !important;
  box-shadow:
    0 1px 0 rgba(232, 240, 234, 0.3) inset,
    0 2px 8px rgba(20, 40, 32, 0.25) !important;
  color: #eef5ef !important;
}

.app-header *,
header[class*="header"] *,
[class*="navbar"] * {
  color: #eef5ef !important;
  font-family: "STKaiti", "KaiTi", serif !important;
  letter-spacing: 0.08em;
}


/* ============ 七、底部输入栏 ============ */

.input-container,
.chat-input-area,
[class*="input-bar"],
[class*="footer-input"],
[class*="chat-footer"] {
  background:
    linear-gradient(180deg, #dbe7df 0%, #b9cfc3 100%) !important;
  border-top: 2px solid #527a6e !important;
  box-shadow: 0 -2px 8px rgba(50, 80, 70, 0.15) !important;
  padding: 10px 12px !important;
}

textarea,
input[type="text"],
[class*="chat-input"] textarea {
  background: rgba(240, 247, 242, 0.92) !important;
  border: 1px solid #6e9085 !important;
  border-radius: 3px !important;
  color: #1f2e29 !important;
  font-family: "FangSong", "STKaiti", serif !important;
  font-size: 15px !important;
  line-height: 1.85 !important;
  padding: 9px 13px !important;
  box-shadow: inset 0 1px 3px rgba(50, 80, 70, 0.10) !important;
  transition: border-color 0.25s ease, box-shadow 0.25s ease !important;
}

textarea:focus,
input[type="text"]:focus {
  border-color: #2c5448 !important;
  box-shadow:
    inset 0 1px 3px rgba(50, 80, 70, 0.12),
    0 0 0 2px rgba(82, 122, 110, 0.20) !important;
  outline: none !important;
}


/* ============ 八、按钮（青瓷釉色） ============ */

button,
[class*="btn"],
[class*="button"] {
  background: linear-gradient(180deg, #c8dcd0 0%, #9ebcae 100%) !important;
  border: 1px solid #527a6e !important;
  border-radius: 3px !important;
  color: #1f3d34 !important;
  font-family: "STKaiti", "KaiTi", serif !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: 0.12em !important;
  padding: 6px 14px !important;
  cursor: pointer;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.45),
    0 1px 2px rgba(50, 80, 70, 0.20) !important;
  transition: all 0.25s ease !important;
  position: relative;
}

button:hover,
[class*="btn"]:hover,
[class*="button"]:hover {
  background: linear-gradient(180deg, #b8d0c4 0%, #82a597 100%) !important;
  border-color: #365a4e !important;
  color: #14302a !important;
  transform: translateY(-1px);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.45),
    0 3px 6px rgba(50, 80, 70, 0.25) !important;
}

button:active,
[class*="btn"]:active {
  transform: translateY(0);
  box-shadow: inset 0 1px 3px rgba(50, 80, 70, 0.25) !important;
}

button[type="submit"],
[class*="send-btn"],
[class*="submit"],
[class*="primary"] {
  background: linear-gradient(180deg, #5a8578 0%, #365a4e 100%) !important;
  border-color: #244038 !important;
  color: #eef5ef !important;
}

button[type="submit"]:hover,
[class*="send-btn"]:hover,
[class*="primary"]:hover {
  background: linear-gradient(180deg, #6a9588 0%, #406a5a 100%) !important;
  color: #fff !important;
}

/* AI操作按钮强制保持可见 */
.group .md\:opacity-0 {
  opacity: 1 !important;
}

.bg-muted.rounded.flex {
  background: rgba(200, 220, 208, 0.45) !important;
  border: 1px solid rgba(82, 122, 110, 0.35) !important;
  border-radius: 4px !important;
  backdrop-filter: blur(3px);
}

.bg-muted.rounded.flex button {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 4px 6px !important;
}

.bg-muted.rounded.flex button:hover {
  background: rgba(82, 122, 110, 0.15) !important;
  transform: none !important;
}

.bg-muted.rounded.flex button svg.lucide {
  color: #2c5448 !important;
  stroke: #2c5448 !important;
}


/* ============ 九、Token消耗信息 ============ */

.text-xs.font-mono.text-muted-foreground {
  color: rgba(44, 84, 72, 0.75) !important;
  font-family: "FangSong", serif !important;
  letter-spacing: 0.05em;
}


/* ============ 十、页码 ============ */

[class*="pagination"],
[class*="page-nav"] {
  display: flex !important;
  justify-content: center;
  align-items: center;
  gap: 6px;
  padding: 12px 0 !important;
  background: transparent !important;
}

[class*="pagination"] button,
[class*="pagination"] a,
[class*="page-item"] {
  min-width: 32px !important;
  height: 32px !important;
  padding: 0 10px !important;
  background: linear-gradient(180deg, #e0ece4 0%, #b9cfc3 100%) !important;
  border: 1px solid #8aa89d !important;
  color: #1f3d34 !important;
  font-family: "STKaiti", "KaiTi", serif !important;
  font-size: 13px !important;
  border-radius: 2px !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
}

[class*="pagination"] [class*="active"],
[class*="page-item"][class*="active"] {
  background: linear-gradient(180deg, #5a8578 0%, #2c5448 100%) !important;
  border-color: #244038 !important;
  color: #eef5ef !important;
  font-weight: 700;
  box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.2) !important;
}


/* ============ 十一、评论区 ============ */

[class*="comment"],
[class*="comments-area"] {
  background:
    linear-gradient(180deg, rgba(216, 228, 220, 0.55) 0%, rgba(185, 207, 195, 0.40) 100%) !important;
  border: 1px solid #8aa89d !important;
  border-radius: 3px !important;
  padding: 14px 16px !important;
  margin: 10px 0 !important;
  font-family: "FangSong", "STKaiti", serif !important;
}

[class*="comment-item"],
[class*="comment-card"] {
  background: rgba(240, 247, 242, 0.50) !important;
  border-bottom: 1px dashed rgba(70, 105, 95, 0.3) !important;
  padding: 10px 4px !important;
  color: #2a3d36 !important;
}

[class*="comment-item"]:last-child { border-bottom: none !important; }

[class*="comment"] [class*="username"],
[class*="comment"] [class*="author"] {
  color: #2c5448 !important;
  font-family: "STKaiti", "KaiTi", serif !important;
  font-weight: 700;
  letter-spacing: 0.08em;
}

[class*="comment"] [class*="time"],
[class*="comment"] [class*="date"] {
  color: #6b8a7f !important;
  font-size: 11px !important;
  font-family: "FangSong", serif !important;
}


/* ============ 十二、强调文本 ============ */

[class*="message"] strong,
[class*="msg-item"] strong,
[class*="is-assistant"] strong,
.rili-markdown-renderer strong {
  color: #8a1f1b !important;
  font-weight: 700;
  letter-spacing: 0.04em;
}


/* ============ 十三、加载动画（居中浮层 + 随机词句） ============ */

/* 隐藏原生加载点 */
.flex.gap-2.w-full.h-full.items-center.justify-center > span {
  display: none !important;
}

/* 居中容器 */
.flex.gap-2.w-full.h-full.items-center.justify-center {
  position: fixed !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
  width: 340px !important;
  min-height: 130px !important;
  background:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='340' height='130' viewBox='0 0 340 130'><g fill='none' stroke='%23527a6e' stroke-width='0.4' opacity='0.30'><path d='M10,20 L60,55 L30,90 L80,115'/><path d='M250,15 L290,50 L260,85 L310,110'/><path d='M150,5 L180,40 L140,75'/></g></svg>"),
    linear-gradient(155deg, rgba(232, 240, 234, 0.96) 0%, rgba(185, 207, 195, 0.96) 100%) !important;
  border: 1px solid #527a6e !important;
  border-radius: 6px !important;
  box-shadow:
    inset 0 0 0 1px rgba(232, 240, 234, 0.55),
    0 8px 32px rgba(20, 40, 32, 0.35) !important;
  padding: 18px 22px !important;
  z-index: 9999 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 14px !important;
  backdrop-filter: blur(6px) !important;
}

/* 顶部：莲花旋转 SVG */
.flex.gap-2.w-full.h-full.items-center.justify-center::before {
  content: "";
  display: block;
  width: 36px;
  height: 36px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 36'><g fill='none' stroke='%232c5448' stroke-width='1.2' stroke-linecap='round'><path d='M18,4 Q22,12 18,18 Q14,12 18,4'/><path d='M18,18 Q26,14 32,18 Q26,22 18,18'/><path d='M18,18 Q22,26 18,32 Q14,26 18,18'/><path d='M18,18 Q10,22 4,18 Q10,14 18,18'/><path d='M18,18 Q24,8 28,8 M18,18 Q12,8 8,8 M18,18 Q24,28 28,28 M18,18 Q12,28 8,28' opacity='0.55'/></g><circle cx='18' cy='18' r='2.5' fill='%238a1f1b'/></svg>");
  background-size: contain;
  background-repeat: no-repeat;
  animation: lotus-spin 3.8s linear infinite;
  flex-shrink: 0;
}

@keyframes lotus-spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* 下方：随机诗词文本（24 帧轮播 + 负值随机起点） */
.flex.gap-2.w-full.h-full.items-center.justify-center::after {
  content: "";
  display: block;
  width: 100%;
  height: 48px;
  line-height: 24px;
  font-family: "STKaiti", "KaiTi", "FangSong", serif;
  font-size: 14px;
  font-weight: 600;
  color: #1f3d34;
  text-align: center;
  letter-spacing: 0.08em;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.4);
  white-space: pre-line;
  overflow: hidden;
  /* 用负 delay 让每次加载从不同帧开始，造就"随机"感 */
  animation:
    song-poem 48s steps(1) infinite,
    song-poem-random 0.001s steps(1) 1;
}

/* 用第二个 animation 在加载瞬间偏移起始点 —— 通过 animation-delay 的随机化 */
.flex.gap-2.w-full.h-full.items-center.justify-center {
  animation: random-seed 1ms steps(1) 1;
}

@keyframes random-seed {
  to { /* placeholder，实际靠 ::after 的负 delay */ }
}

/* 真正的随机：用一个长周期 + 让用户每次加载浏览器自动按当前时间切到不同帧 */
@keyframes song-poem {
  0%, 4.16%      { content: "靖康耻，犹未雪。\A 臣子恨，何时灭！"; }
  4.17%, 8.33%   { content: "壮志饥餐胡虏肉，\A 笑谈渴饮匈奴血"; }
  8.34%, 12.5%   { content: "叫我赵构，\A 不要叫我完颜构！"; }
  12.51%, 16.66% { content: "出杭州站走两步至城站\A 七路至岳坟，赠秦𤞏一掌"; }
  16.67%, 20.83% { content: "官家有诏，\A 死后不得惊扰百姓"; }
  20.84%, 25%    { content: "我大宋没钱了！\A （骗你的）"; }
  25.01%, 29.16% { content: "醉里挑灯看剑，\A 梦回吹角连营"; }
  29.17%, 33.33% { content: "欲买桂花同载酒，\A 终不似，少年游"; }
  33.34%, 37.5%  { content: "预备唱！狼烟起，江山北望，\A 龙旗卷马长嘶剑气如霜"; }
  37.51%, 41.66% { content: "金风玉露一相逢，\A 便胜人间无数"; }
  41.67%, 45.83% { content: "两情若是久长时，\A 又岂在朝朝暮暮"; }
  45.84%, 50%    { content: "此去经年，\A 应是良辰好景虚设"; }
  50.01%, 54.16% { content: "蓦然回首，那人却在，\A 灯火阑珊处"; }
  54.17%, 58.33% { content: "问君能有几多愁？\A 恰似一江春水向东流"; }
  58.34%, 62.5%  { content: "大江东去，浪淘尽，\A 千古风流人物 —— 苏轼"; }
  62.51%, 66.66% { content: "了却君王天下事，\A 赢得生前身后名 —— 辛弃疾"; }
  66.67%, 70.83% { content: "王师北定中原日，\A 家祭无忘告乃翁 —— 陆游"; }
  70.84%, 75%    { content: "浊酒一杯家万里，\A 燕然未勒归无计 —— 范仲淹"; }
  75.01%, 79.16% { content: "三十功名尘与土，\A 八千里路云和月 —— 岳飞"; }
  79.17%, 83.33% { content: "寻寻觅觅，冷冷清清，\A 凄凄惨惨戚戚 —— 李清照"; }
  83.34%, 87.5%  { content: "无可奈何花落去，\A 似曾相识燕归来 —— 晏殊"; }
  87.51%, 91.66% { content: "庭院深深深几许，\A 杨柳堆烟，帘幕无重数 —— 欧阳修"; }
  91.67%, 95.83% { content: "叶上初阳干宿雨，水面清圆，\A 一一风荷举 —— 周邦彦"; }
  95.84%, 100%   { content: "二十四桥仍在，波心荡，\A 冷月无声 —— 姜夔"; }
}

/* 流式光标（毛笔尖） */
[class*="streaming"]::after,
[class*="typing-cursor"] {
  content: "▎";
  display: inline-block;
  color: #2c5448;
  font-weight: bold;
  animation: brush-blink 1s steps(2) infinite;
  margin-left: 2px;
}

@keyframes brush-blink {
  0%, 50% { opacity: 1; }
  51%, 100% { opacity: 0; }
}


/* ============ 十四、滚动条 ============ */

::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

::-webkit-scrollbar-track {
  background: rgba(185, 207, 195, 0.35);
  border-radius: 4px;
}

::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, #8aa89d 0%, #527a6e 100%);
  border-radius: 4px;
  border: 1px solid rgba(50, 80, 70, 0.25);
}

::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(180deg, #5a8578 0%, #2c5448 100%);
}


/* ============ 十五、标签页 ============ */

[class*="tab-item"],
[class*="tabs"] [class*="item"] {
  background: linear-gradient(180deg, #d4e3da 0%, #9ebcae 100%) !important;
  border: 1px solid #8aa89d !important;
  border-bottom: none !important;
  border-radius: 4px 4px 0 0 !important;
  color: #1f3d34 !important;
  font-family: "STKaiti", "KaiTi", serif !important;
  padding: 8px 16px !important;
  letter-spacing: 0.1em;
}

[class*="tab-item"][class*="active"],
[class*="tabs"] [class*="active"] {
  background: linear-gradient(180deg, #5a8578 0%, #2c5448 100%) !important;
  color: #eef5ef !important;
  border-color: #244038 !important;
  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.2) !important;
}


/* ============ 十六、移动端适配 ============ */

@media (max-width: 768px) {
  .group.is-assistant > div:first-child,
  [class*="is-assistant"],
  [class*="bg-card"] {
    padding: 14px 14px !important;
  }

  text {
    padding: 20px 18px;
    font-size: 15px;
    line-height: 1.95;
  }

  text::after {
    width: 34px;
    height: 34px;
    font-size: 20px;
    top: 10px;
    right: 12px;
  }

  details summary {
    font-size: 15px;
    padding: 10px 4px 10px 22px;
    letter-spacing: 0.14em;
  }

  details > *:not(summary) {
    padding: 6px 6px 12px 20px;
    font-size: 13.5px;
  }

  details table { font-size: 12.5px; }
  details table th,
  details table td { padding: 6px 7px; }
  details table th { font-size: 13px; }

  /* 移动端加载动画缩小 */
  .flex.gap-2.w-full.h-full.items-center.justify-center {
    width: 280px !important;
    min-height: 115px !important;
    padding: 14px 16px !important;
  }

  .flex.gap-2.w-full.h-full.items-center.justify-center::after {
    font-size: 13px;
    line-height: 22px;
    height: 44px;
  }

  .flex.gap-2.w-full.h-full.items-center.justify-center::before {
    width: 30px;
    height: 30px;
  }
}
