/* ————— 全局字体与背景 ————— */
body, html {
  font-family: 'Noto Serif SC', 'Songti SC', 'Source Han Serif SC', serif;
}
.overflow-hidden { overflow: visible; }

/* ————— 平台顶部栏 ————— */
.sticky.w-full.top-0.flex.items-center.px-2.h-16.bg-white\/80.text-base.font-medium.text-gray-900.border-b-\[0\.5px\].border-b-gray-100.backdrop-blur-md.z-20,
.sticky.w-full.flex.items-center.text-base.text-gray-900.border-b-gray-100.backdrop-blur-md {
  background: linear-gradient(180deg, #faf7f2 0%, #f0e8dd 100%) !important;
  border-bottom: 1px solid #d4c8b8 !important;
  box-shadow: 0 2px 8px rgba(58,47,40,0.06) !important;
  height: 2.8rem;
}

/* ————— 模型选择器 ————— */
.group.flex.items-center.px-2.h-8.rounded-lg.bg-gray-100.justify-between.hover\:bg-gray-200.cursor-pointer,
#ai-model-selector [data-state="closed"] .group.flex.items-center.justify-between.cursor-pointer {
  background: linear-gradient(135deg, #ede4d2 0%, #d4c8b8 100%) !important;
  color: #3a2f28 !important;
  border: 1px solid #a67c52 !important;
  border-radius: 4px !important;
  box-shadow: 
    0 1px 3px rgba(58,47,40,0.15),
    inset 0 1px 0 rgba(255,255,255,0.5) !important;
  font-family: 'Noto Serif SC', serif !important;
  transition: all 0.25s ease;
  letter-spacing: 0.4px;
}
.group.flex.items-center.px-2.h-8.rounded-lg.bg-gray-100.justify-between.hover\:bg-gray-200.cursor-pointer:hover,
#ai-model-selector [data-state="closed"] .group.flex.items-center.justify-between.cursor-pointer:hover {
  background: linear-gradient(135deg, #e0d0b0 0%, #c8b898 100%) !important;
  transform: translateY(-1px);
  box-shadow: 0 3px 8px rgba(58,47,40,0.2);
}
.group.flex.items-center.px-2.h-8.rounded-lg.bg-gray-100.justify-between.hover\:bg-gray-200.cursor-pointer.\!bg-gray-200,
#ai-model-selector [data-state="open"] .group.flex.items-center.justify-between.cursor-pointer {
  background: linear-gradient(135deg, #5a4a3d 0%, #3a2f28 100%) !important;
  color: #faf7f2 !important;
  border: 1px solid #2a1f18 !important;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.3) !important;
}

/* 设置下拉菜单 */
.absolute.z-40.text-gray-700.right-0.mt-6.w-48.bg-white.border.border-gray-200.rounded-lg.shadow-lg.py-2 {
  background: #faf7f2 !important;
  color: #3a2f28 !important;
  border: 1px solid #d4c8b8 !important;
  border-radius: 4px !important;
  box-shadow: 0 6px 20px rgba(58,47,40,0.15) !important;
}
.px-4.py-2.hover\:bg-indigo-100.cursor-pointer.font-normal.text-sm:hover {
  background: #ede4d2 !important;
  color: #3a2f28 !important;
}

/* ————— 输入框 ————— */
.mx-auto .bg-white.border-\[1\.5px\].border-gray-200.rounded-xl.mb-2,
.p-\[5\.5px\].max-h-\[150px\].bg-white.border-\[1\.5px\].border-gray-200.rounded-xl.overflow-y-auto.mb-2 {
  background: linear-gradient(180deg, #fefdfa 0%, #faf7f2 100%) !important;
  border: 1px solid #d4c8b8 !important;
  border-radius: 4px !important;
  box-shadow: 
    0 2px 10px rgba(58,47,40,0.06),
    inset 0 1px 2px rgba(255,255,255,0.6) !important;
  padding: 2px !important;
  transition: border-color 0.3s, box-shadow 0.3s;
}
.mx-auto .bg-white.border-\[1\.5px\].border-gray-200.rounded-xl.mb-2:focus-within,
.p-\[5\.5px\].max-h-\[150px\].bg-white.border-\[1\.5px\].border-gray-200.rounded-xl.overflow-y-auto.mb-2:focus-within {
  border-color: #a67c52 !important;
  box-shadow: 
    0 4px 16px rgba(166,124,82,0.15),
    inset 0 1px 2px rgba(255,255,255,0.6) !important;
}
#ai-chat-input,
.rc-textarea.appearance-none.resize-none {
  background: transparent !important;
  color: #3a2f28 !important;
  font-family: 'Noto Serif SC', 'Songti SC', serif !important;
  font-size: 14px !important;
  line-height: 1.75 !important;
}
#ai-chat-input::placeholder { color: #a89787 !important; font-style: italic; }

/* 字数统计 */
.flex.items-center.px-1.h-5.rounded-md.bg-gray-100.text-xs.font-medium.text-gray-500 {
  background: #ede4d2 !important;
  color: #6a5a4d !important;
  border: 1px solid #d4c8b8;
  border-radius: 2px !important;
}
.mx-1.w-\[1px\].h-4.bg-black.opacity-5 {
  background: #a89787;
  opacity: 0.4;
}

/* 发送按钮 */
#ai-send-button,
.cursor-pointer.group.flex.items-center.justify-center.w-8.h-8.rounded-lg.hover\:bg-\[#EBF5FF\],
div[data-state="closed"] .group.flex.items-center.cursor-pointer[id="ai-send-button"],
div[data-state="open"] .group.flex.items-center.cursor-pointer[id="ai-send-button"] {
  background: linear-gradient(135deg, #a67c52 0%, #8a6242 100%) !important;
  border: 1px solid #7a5a3a !important;
  border-radius: 4px !important;
  box-shadow: 
    0 2px 5px rgba(58,47,40,0.25),
    inset 0 1px 0 rgba(255,255,255,0.2) !important;
  transition: all 0.2s ease;
}
#ai-send-button:hover,
.cursor-pointer.group.flex.items-center.justify-center.w-8.h-8.rounded-lg.hover\:bg-\[#EBF5FF\]:hover {
  background: linear-gradient(135deg, #b88e64 0%, #9a7252 100%) !important;
  transform: translateY(-1px);
  box-shadow: 0 4px 10px rgba(166,124,82,0.3) !important;
}
.w-5.h-5.text-gray-300.group-hover\:text-primary-600 {
  color: #faf7f2 !important;
}

/* 输出中按钮 */
.group.flex.items-center.justify-center.w-8.h-8.rounded-full.bg-black.cursor-pointer {
  background: linear-gradient(135deg, #5a4a3d, #3a2f28) !important;
  border-radius: 50% !important;
  border: 1px solid #2a1f18;
  position: relative;
}
.group.flex.items-center.justify-center.w-8.h-8.rounded-full.bg-black.cursor-pointer::before {
  content: '';
  position: absolute;
  inset: 6px;
  border: 2px solid #c8907c;
  border-top-color: transparent;
  border-radius: 50%;
  animation: spinLoad 1.2s linear infinite;
}
@keyframes spinLoad { to { transform: rotate(360deg); } }

/* ————— 底部背景 ————— */
.bg-gradient-to-t.from-white.via-white.to-transparent.absolute.w-full.bottom-0.left-0.right-0.pb-4 {
  background: linear-gradient(180deg, transparent 0%, #faf7f2 30%, #f0e8dd 100%) !important;
  border-top: 1px solid #d4c8b8;
  padding-bottom: 0 !important;
  box-shadow: 0 -2px 12px rgba(58,47,40,0.05);
}

/* ————— 快捷指令按钮 ————— */
.flex.items-center.gap-2.pb-2.overflow-x-auto button:nth-child(n) {
  background: linear-gradient(135deg, #ede4d2, #d4c8b8) !important;
  color: #3a2f28 !important;
  border: 1px solid #a67c52 !important;
  border-radius: 3px !important;
  font-family: 'Noto Serif SC', serif !important;
  font-size: 12px !important;
  box-shadow: 0 1px 3px rgba(58,47,40,0.12);
  transition: all 0.2s;
}
.flex.items-center.gap-2.pb-2.overflow-x-auto button:nth-child(n):hover {
  transform: translateY(-1px);
  box-shadow: 0 3px 6px rgba(58,47,40,0.18);
}

/* ————— 分页 ————— */
.py-0.w-full.flex.justify-center.items-center.MuiBox-root.css-0,
.relative.bg-red .w-full.flex.justify-center.items-center.MuiBox-root.css-0 {
  background: transparent;
  background-image: linear-gradient(90deg, transparent, #d4c8b8 40%, #d4c8b8 60%, transparent);
  padding: 2px 0;
  font-family: 'Noto Serif SC', serif;
}
.MuiButtonBase-root.MuiPaginationItem-root {
  background: #ede4d2 !important;
  color: #3a2f28 !important;
  border: 1px solid #c8b898 !important;
}
.MuiPaginationItem-page:hover { background: #d4c8b8 !important; }
.Mui-selected {
  background: #a67c52 !important;
  color: #faf7f2 !important;
  border-color: #7a5a3a !important;
}

/* ————— 用户提问区（简约信笺卡） ————— */
.inline-block.bg-gray-100\/90:not(.chat-answer-container .bg-gray-100\/90) {
  display: block !important;
  position: relative;
  background: linear-gradient(135deg, #f5e8dc 0%, #ede4d2 100%) !important;
  border: 1px solid #d4c8b8 !important;
  border-radius: 3px 14px 3px 14px !important;
  padding: 12px 16px !important;
  color: #3a2f28 !important;
  font-family: 'Noto Serif SC', 'Songti SC', serif !important;
  font-size: 13.5px !important;
  line-height: 1.75 !important;
  box-shadow: 
    0 2px 8px rgba(58,47,40,0.08),
    inset 0 1px 0 rgba(255,255,255,0.4);
  overflow: visible !important;
}
.inline-block.bg-gray-100\/90:not(.chat-answer-container .bg-gray-100\/90)::before {
  content: '✍';
  position: absolute;
  top: -10px;
  left: 14px;
  width: 20px;
  height: 20px;
  background: #a67c52;
  color: #faf7f2;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  box-shadow: 0 2px 4px rgba(58,47,40,0.2);
}

/* AI回答容器背景透明 */
.chat-answer-container .bg-gray-100\/90 {
  background: transparent !important;
}
.rounded-b-2xl, .rounded-tr-2xl { border-radius: 0 !important; }
.border-t-2.border-\[\#F1CBCB\].border-r-0.border-b-0.border-l-0,
.border-t-2.border-\[\#C9E1E9\].border-r-0.border-b-0,
.group .border-t-2 { border: none !important; }
.absolute.flex.justify-end.gap-1.-top-3\.5.-right-3\.5,
.group .clip-path-triangle-right,
#Rectangle\ 1 { display: none !important; }
.group .-right-2.top-0 { transform: scaleX(1); right: 5px; }

/* ============================================================
   1. 状态栏 shu  ——  日程卡 + 手机通知栏气息
   ============================================================ */
.shu {
  position: relative;
  margin: 12px 4px 18px;
  padding: 0;
  background: linear-gradient(180deg, #fefdfa 0%, #faf7f2 100%);
  border: 1px solid #d4c8b8;
  border-radius: 3px;
  box-shadow: 
    0 4px 16px rgba(58,47,40,0.08),
    inset 0 1px 0 rgba(255,255,255,0.8);
  font-size: 13px;
  color: #3a2f28;
  overflow: hidden;
  font-family: 'Noto Serif SC', serif;
}
/* 顶部三色带（对应"婚姻/独立/情人"三线并置） */
.shu::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, #7a8a7c 0%, #7a8a7c 33%, #a67c52 33%, #a67c52 66%, #c8907c 66%, #c8907c 100%);
}
/* 右上角信息装饰点 */
.shu::after {
  content: '';
  position: absolute;
  top: 12px; right: 14px;
  width: 6px; height: 6px;
  border-radius: 50%;
  background: #c8907c;
  box-shadow: 
    0 0 0 3px rgba(200,144,124,0.15),
    -12px 0 0 -2px #a67c52,
    -12px 0 0 1px rgba(166,124,82,0.15);
  animation: shuPulse 2.5s ease-in-out infinite;
}
@keyframes shuPulse {
  0%, 100% { box-shadow: 0 0 0 3px rgba(200,144,124,0.15), -12px 0 0 -2px #a67c52, -12px 0 0 1px rgba(166,124,82,0.15); }
  50% { box-shadow: 0 0 0 5px rgba(200,144,124,0.05), -12px 0 0 -2px #a67c52, -12px 0 0 1px rgba(166,124,82,0.05); }
}

.shu-hd {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  padding: 12px 16px 10px;
  border-bottom: 1px dashed #d4c8b8;
  background: linear-gradient(90deg, rgba(240,232,221,0.5), transparent);
}
.shu-mm {
  padding: 3px 11px;
  background: linear-gradient(135deg, #3a2f28, #5a4a3d);
  color: #faf7f2;
  border-radius: 20px;
  font-size: 12px;
  letter-spacing: 0.5px;
  box-shadow: 0 1px 3px rgba(58,47,40,0.3);
}
.shu-dt {
  font-family: 'Noto Sans SC', sans-serif;
  font-size: 12.5px;
  color: #5a4a3d;
  font-weight: 500;
  letter-spacing: 0.3px;
  margin-left: auto;
}

.shu-md {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 10px 16px;
  border-bottom: 1px dashed #d4c8b8;
}
.shu-ssn {
  padding: 3px 10px;
  background: #f5e8dc;
  color: #a67c52;
  font-size: 11.5px;
  border-radius: 2px;
  border-left: 3px solid #c8907c;
  font-weight: 500;
}
.shu-wth {
  padding: 3px 10px;
  background: #ecf1ec;
  color: #5a6a5d;
  font-size: 11.5px;
  border-radius: 2px;
  border-left: 3px solid #7a8a7c;
}
.shu-wc {
  padding: 3px 10px;
  background: #eff1ec;
  color: #6a665a;
  font-size: 11.5px;
  border-radius: 2px;
  border-left: 3px solid #8a897a;
}

.shu-loc {
  padding: 10px 16px 4px;
  font-size: 13px;
  color: #3a2f28;
  font-weight: 500;
  letter-spacing: 0.2px;
}
.shu-loc::before {
  content: '';
  display: inline-block;
  width: 4px; height: 12px;
  background: linear-gradient(180deg, #a67c52, #c8907c);
  margin-right: 8px;
  vertical-align: -1px;
  border-radius: 1px;
}

.shu-imp {
  padding: 4px 16px 12px;
  font-size: 12px;
  color: #7a6a5d;
  font-style: italic;
  line-height: 1.65;
  border-bottom: 1px dashed #d4c8b8;
}

.shu-zc, .shu-xc {
  padding: 7px 16px;
  font-size: 12px;
  color: #3a2f28;
  background: rgba(255,255,255,0.4);
}
.shu-zc {
  border-bottom: 1px solid #ede4d2;
  font-weight: 500;
}
.shu-xc {
  color: #7a6a5d;
  font-size: 11.5px;
  font-style: italic;
  position: relative;
  background: repeating-linear-gradient(
    90deg,
    rgba(255,255,255,0.4) 0 6px,
    rgba(240,232,221,0.4) 6px 12px
  );
}

/* ============================================================
   2. 叙事区 zwx  ——  信笺书页
   ============================================================ */
.zwx {
  position: relative;
  margin: 20px 2px;
  padding: 26px 14px 22px 22px;
  background: linear-gradient(180deg, #fefdfa 0%, #faf7f2 100%);
  border: 1px solid #e5dccf;
  border-radius: 2px;
  color: #2c2419;
  font-size: 0.95em;
  line-height: 1.9;
  text-align: justify;
  font-family: 'Noto Serif SC', 'Songti SC', serif;
  box-shadow: 
    0 3px 14px rgba(58,47,40,0.07),
    inset 0 0 60px rgba(212,200,184,0.12);
  letter-spacing: 0.35px;
  word-break: break-word;
}
/* 左侧装饰线 */
.zwx::before {
  content: '';
  position: absolute;
  top: 14px; bottom: 14px;
  left: 8px;
  width: 2px;
  background: linear-gradient(180deg, #c8907c 0%, #a67c52 50%, #7a8a7c 100%);
  opacity: 0.35;
  border-radius: 1px;
}
/* 起始装饰 */
.zwx::after {
  content: '❖';
  position: absolute;
  top: 8px; left: 16px;
  color: #c8907c;
  font-size: 10px;
  opacity: 0.5;
}
/* 首行缩进 & 段落间距 */
.zwx > p,
.zwx > * {
  text-indent: 2em;
  margin: 0 0 0.65em 0;
}
.zwx > p:last-child,
.zwx > div:last-child { margin-bottom: 0; }

.zwx div[style] {
  margin: 6px auto !important;
  position: relative;
  text-indent: 0 !important;
}

/* 记忆闪回片段 —— 若AI用 em/i/blockquote 包裹 */
.zwx em, .zwx i, .zwx blockquote {
  display: block;
  margin: 14px 8px 14px 4px;
  padding: 12px 16px;
  background: linear-gradient(135deg, #f5e8dc 0%, #ede0cc 100%);
  border-left: 3px solid #c8907c;
  color: #6a5a4d;
  font-style: italic;
  text-indent: 0;
  border-radius: 0 2px 2px 0;
  font-size: 0.95em;
  line-height: 1.75;
  box-shadow: inset 0 0 20px rgba(200,144,124,0.05);
  position: relative;
}
.zwx em::before, .zwx i::before, .zwx blockquote::before {
  content: '◈ 记忆闪回';
  display: block;
  font-size: 10px;
  color: #a67c52;
  font-style: normal;
  letter-spacing: 2px;
  margin-bottom: 6px;
  opacity: 0.8;
}

/* 强调 */
.zwx strong, .zwx b {
  color: #8a6242;
  font-weight: 600;
  background: linear-gradient(180deg, transparent 70%, rgba(200,144,124,0.2) 70%);
  padding: 0 2px;
}

/* ============================================================
   3. 记忆区 jyq  ——  日记本折叠
   ============================================================ */
.jyq {
  margin: 20px 2px;
  font-family: 'Noto Sans SC', 'Noto Serif SC', sans-serif;
}
.jyq-sec {
  background: linear-gradient(180deg, #faf7f2 0%, #f5f0e8 100%);
  border: 1px solid #d4c8b8;
  border-radius: 3px;
  overflow: hidden;
  box-shadow: 0 2px 10px rgba(58,47,40,0.06);
}
.jyq-sec > summary {
  padding: 11px 16px;
  background: linear-gradient(90deg, #ede4d2, #f5f0e8);
  color: #3a2f28;
  font-size: 13px;
  cursor: pointer;
  list-style: none;
  border-bottom: 1px solid #d4c8b8;
  user-select: none;
  letter-spacing: 0.5px;
  position: relative;
}
.jyq-sec > summary::-webkit-details-marker,
.jyq-sec > summary::marker { display: none; }
.jyq-sec > summary::before {
  content: '▸';
  display: inline-block;
  margin-right: 10px;
  color: #a67c52;
  transition: transform 0.3s;
  font-size: 11px;
}
.jyq-sec[open] > summary::before { transform: rotate(90deg); }
.jyq-sec > summary::after {
  content: '';
  position: absolute;
  right: 16px; top: 50%;
  width: 40px; height: 1px;
  background: linear-gradient(90deg, transparent, #a67c52);
  transform: translateY(-50%);
}

.jyq-sub {
  margin: 10px 12px;
  background: rgba(255,255,255,0.55);
  border: 1px dashed #d4c8b8;
  border-radius: 2px;
  overflow: hidden;
}
.jyq-sub > summary {
  padding: 7px 14px;
  font-size: 12px;
  color: #5a4a3d;
  cursor: pointer;
  list-style: none;
  background: rgba(240,232,221,0.4);
  letter-spacing: 0.4px;
}
.jyq-sub > summary::-webkit-details-marker,
.jyq-sub > summary::marker { display: none; }
.jyq-sub > summary::before {
  content: '›';
  display: inline-block;
  margin-right: 8px;
  color: #a67c52;
  font-size: 13px;
  transition: transform 0.25s;
}
.jyq-sub[open] > summary::before { transform: rotate(90deg); }

/* 记忆表格美化 */
.jyq table {
  width: 100%;
  border-collapse: collapse;
  margin: 4px 0;
  background: transparent;
  font-size: 12px;
}
.jyq thead th {
  background: linear-gradient(180deg, #e5dccf, #d4c8b8);
  color: #3a2f28;
  padding: 7px 10px;
  font-weight: 600;
  text-align: left;
  border-bottom: 2px solid #a67c52;
  font-size: 11px;
  letter-spacing: 0.5px;
  text-transform: none;
}
.jyq tbody td {
  padding: 6px 10px;
  border-bottom: 1px solid #ede4d2;
  color: #3a2f28;
  vertical-align: top;
  line-height: 1.55;
  font-size: 11.5px;
}
.jyq tbody tr:nth-child(even) { background: rgba(250,247,242,0.5); }
.jyq tbody tr:hover { background: rgba(200,144,124,0.06); }
.jyq tbody td:first-child {
  color: #a67c52;
  font-family: 'Courier New', monospace;
  font-size: 10.5px;
  font-weight: 600;
}

/* ============================================================
   4. PC信息 pci  ——  情感仪表盘
   ============================================================ */
.pci { margin: 20px 2px; }
.pci-sec {
  background: linear-gradient(180deg, #faf7f2 0%, #f0e8dd 100%);
  border: 1px solid #d4c8b8;
  border-radius: 3px;
  overflow: hidden;
  box-shadow: 0 3px 14px rgba(58,47,40,0.08);
}
.pci-sec > summary {
  padding: 13px 18px;
  background: linear-gradient(135deg, #3a2f28 0%, #5a4a3d 100%);
  color: #faf7f2;
  font-size: 14px;
  cursor: pointer;
  list-style: none;
  letter-spacing: 2px;
  position: relative;
  user-select: none;
}
.pci-sec > summary::-webkit-details-marker,
.pci-sec > summary::marker { display: none; }
.pci-sec > summary::before {
  content: '❖';
  margin-right: 10px;
  color: #c8907c;
  animation: pciGlow 3s ease-in-out infinite;
}
@keyframes pciGlow {
  0%, 100% { text-shadow: 0 0 3px rgba(200,144,124,0.4); }
  50% { text-shadow: 0 0 10px rgba(200,144,124,0.8); }
}

.pci-hgc, .pci-bgc {
  padding: 14px 16px;
}
.pci-hgc { border-bottom: 1px dashed #d4c8b8; }

.pci-hgd, .pci-bgd {
  font-size: 11px;
  color: #7a6a5d;
  margin-bottom: 10px;
  letter-spacing: 3px;
  text-transform: uppercase;
  position: relative;
  padding-left: 22px;
}
.hdt::before {
  content: '❤︎';
  position: absolute;
  left: 0; top: -2px;
  color: #c8907c;
  font-size: 14px;
  animation: heartBeat 1.8s ease-in-out infinite;
}
@keyframes heartBeat {
  0%, 100% { transform: scale(1); }
  15% { transform: scale(1.15); }
  30% { transform: scale(1); }
  45% { transform: scale(1.1); }
}
.bgt::before {
  content: '⚠';
  position: absolute;
  left: 0; top: -2px;
  color: #b8735a;
  font-size: 14px;
}

.pci-fv {
  margin-bottom: 10px;
  padding: 9px 12px;
  background: rgba(255,255,255,0.55);
  border-radius: 2px;
  border-left: 3px solid #c8907c;
  transition: transform 0.2s;
}
.pci-fv:last-child { margin-bottom: 0; }
.pci-fv:hover {
  transform: translateX(2px);
  background: rgba(255,255,255,0.75);
}
.pci-fv-hd {
  font-size: 12px;
  color: #3a2f28;
  margin-bottom: 6px;
  font-weight: 500;
  letter-spacing: 0.3px;
}
.pci-fv-bar {
  height: 7px;
  background: #e5dccf;
  border-radius: 4px;
  overflow: hidden;
  position: relative;
  box-shadow: inset 0 1px 2px rgba(58,47,40,0.2);
}
.pci-fv-prg {
  height: 100%;
  background: linear-gradient(90deg, #d4a08c 0%, #c8907c 50%, #b8735a 100%);
  border-radius: 4px;
  transition: width 0.8s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 
    0 0 6px rgba(200,144,124,0.4),
    inset 0 1px 0 rgba(255,255,255,0.3);
  position: relative;
}
.pci-fv-prg::after {
  content: '';
  position: absolute;
  top: 0; right: 0; bottom: 0;
  width: 8px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.5));
  animation: shineFlow 2.5s ease-in-out infinite;
}
@keyframes shineFlow {
  0%, 100% { opacity: 0.5; }
  50% { opacity: 1; }
}
.pci-fv-txt {
  font-size: 11px;
  color: #5a4a3d;
  margin-top: 5px;
  letter-spacing: 0.3px;
}
.pci-fv-chg {
  font-size: 10.5px;
  color: #a67c52;
  font-style: italic;
  margin-top: 3px;
}

/* 曝光风险 */
.pci-pfx {
  padding: 10px 12px;
  background: linear-gradient(90deg, rgba(255,245,240,0.7), rgba(255,255,255,0.4));
  border-left: 3px solid #b8735a;
  border-radius: 2px;
}
.pct {
  font-size: 12px;
  color: #3a2f28;
  padding: 4px 0;
  display: flex;
  align-items: center;
  gap: 8px;
}
.fxd {
  display: inline-block;
  padding: 2px 9px;
  background: linear-gradient(135deg, #b8735a, #a06550);
  color: #faf7f2;
  border-radius: 2px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 1px;
  box-shadow: 0 1px 3px rgba(184,115,90,0.4);
}

/* ============================================================
   5. NPC信息 npcs  ——  情感档案
   ============================================================ */
.npcs { margin: 20px 2px; }
.npcs-sec {
  background: #faf7f2;
  border: 1px solid #d4c8b8;
  border-radius: 3px;
  overflow: hidden;
  box-shadow: 0 3px 14px rgba(58,47,40,0.08);
}
.npcs-sec > summary {
  padding: 13px 18px;
  background: linear-gradient(135deg, #5a6a5d 0%, #7a8a7c 100%);
  color: #faf7f2;
  font-size: 14px;
  cursor: pointer;
  list-style: none;
  letter-spacing: 2px;
  user-select: none;
}
.npcs-sec > summary::-webkit-details-marker,
.npcs-sec > summary::marker { display: none; }

.npc-crd {
  margin: 10px 12px;
  background: #fefdfa;
  border: 1px solid #d4c8b8;
  border-radius: 2px;
  overflow: hidden;
  transition: box-shadow 0.3s;
}
.npc-crd:hover { box-shadow: 0 4px 12px rgba(58,47,40,0.1); }

/* 陆知行（第一个）—— 灰绿·稳重 */
.npc-crd:nth-of-type(1) {
  border-left: 3px solid #7a8a7c;
}
.npc-crd:nth-of-type(1) > summary::before {
  background: radial-gradient(circle at 30% 30%, #9aab9c, #5a6a5d);
  box-shadow: 0 0 4px rgba(122,138,124,0.5);
}
.npc-crd:nth-of-type(1) .npc-fv-prg {
  background: linear-gradient(90deg, #9aab9c 0%, #7a8a7c 50%, #5a6a5d 100%);
  box-shadow: 0 0 6px rgba(122,138,124,0.4);
}

/* 沈亦洲（第二个）—— 脏粉·热烈 */
.npc-crd:nth-of-type(2) {
  border-left: 3px solid #c8907c;
}
.npc-crd:nth-of-type(2) > summary::before {
  background: radial-gradient(circle at 30% 30%, #e0a898, #a86e5c);
  box-shadow: 0 0 4px rgba(200,144,124,0.5);
}
.npc-crd:nth-of-type(2) .npc-fv-prg {
  background: linear-gradient(90deg, #e0a898 0%, #c8907c 50%, #a86e5c 100%);
  box-shadow: 0 0 6px rgba(200,144,124,0.4);
}

.npc-crd > summary {
  padding: 11px 14px;
  background: linear-gradient(90deg, #f0e8dd 0%, transparent 60%);
  color: #3a2f28;
  font-size: 13px;
  cursor: pointer;
  list-style: none;
  border-bottom: 1px solid #ede4d2;
  position: relative;
  font-weight: 600;
  letter-spacing: 0.4px;
  user-select: none;
}
.npc-crd > summary::-webkit-details-marker,
.npc-crd > summary::marker { display: none; }
.npc-crd > summary::before {
  content: '';
  display: inline-block;
  width: 9px; height: 9px;
  border-radius: 50%;
  margin-right: 11px;
  vertical-align: middle;
}
.npc-crd > summary::after {
  content: '›';
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  color: #a67c52;
  font-size: 16px;
  transition: transform 0.3s;
}
.npc-crd[open] > summary::after {
  transform: translateY(-50%) rotate(90deg);
}

.npc-fv {
  padding: 11px 14px;
  border-bottom: 1px dashed #ede4d2;
}
.npc-fv-hd {
  font-size: 11.5px;
  color: #5a4a3d;
  margin-bottom: 6px;
  letter-spacing: 0.3px;
}
.npc-fv-bar {
  height: 7px;
  background: #e5dccf;
  border-radius: 4px;
  overflow: hidden;
  box-shadow: inset 0 1px 2px rgba(58,47,40,0.2);
}
.npc-fv-prg {
  height: 100%;
  border-radius: 4px;
  transition: width 0.8s cubic-bezier(0.4, 0, 0.2, 1);
  position: relative;
}
.npc-fv-prg::after {
  content: '';
  position: absolute;
  top: 0; right: 0; bottom: 0;
  width: 8px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.5));
  animation: shineFlow 2.5s ease-in-out infinite;
}
.npc-fv-txt {
  font-size: 11px;
  color: #5a4a3d;
  margin-top: 5px;
}
.npc-fv-chg {
  font-size: 10.5px;
  color: #7a6a5d;
  font-style: italic;
  margin-top: 3px;
}

.npc-sub {
  border-top: 1px dashed #ede4d2;
}
.npc-sub:first-of-type { border-top: none; }
.npc-sub > summary {
  padding: 8px 14px;
  background: rgba(240,232,221,0.25);
  font-size: 12px;
  color: #3a2f28;
  cursor: pointer;
  list-style: none;
  letter-spacing: 0.5px;
  user-select: none;
}
.npc-sub > summary::-webkit-details-marker,
.npc-sub > summary::marker { display: none; }
.npc-sub > summary::before {
  content: '❋';
  display: inline-block;
  margin-right: 8px;
  color: #a67c52;
  font-size: 10px;
  transition: transform 0.3s;
}
.npc-sub[open] > summary::before { transform: rotate(180deg); }

.npc-lst {
  list-style: none;
  padding: 8px 14px 10px;
  margin: 0;
}
.npc-lst li {
  padding: 5px 10px 5px 12px;
  font-size: 11.5px;
  color: #3a2f28;
  border-left: 2px solid #ede4d2;
  margin-bottom: 5px;
  line-height: 1.6;
  background: rgba(255,255,255,0.3);
  transition: all 0.2s;
  border-radius: 0 2px 2px 0;
}
.npc-lst li:last-child { margin-bottom: 0; }
.npc-lst li:hover {
  border-left-color: #c8907c;
  background: rgba(200,144,124,0.06);
  transform: translateX(2px);
}
.npc-lst li strong {
  color: #8a6242;
  font-weight: 600;
}
.npc-tag {
  display: inline-block;
  padding: 1px 7px;
  background: linear-gradient(135deg, #ede4d2, #d4c8b8);
  color: #8a6242;
  font-size: 10px;
  border-radius: 2px;
  margin-right: 8px;
  font-family: 'Noto Sans SC', sans-serif;
  letter-spacing: 0.3px;
  border: 1px solid #c8b898;
}

/* ============================================================
   6. 下一步 xdt  ——  三差异化选项
   ============================================================ */
.xdt {
  margin: 11px 1px 6px;
}
.xd-hd {
  font-size: 14px;
  color: #3a2f28;
  padding: 4px 7px;
  margin-bottom: 6px;
  background: linear-gradient(90deg, rgba(200,144,124,0.1) 0%, rgba(122,138,124,0.06) 50%, transparent 100%);
  border-left: 3px solid #a67c52;
  letter-spacing: 2px;
  font-weight: 600;
  position: relative;
}
.xd-hd::after {
  content: '';
  position: absolute;
  bottom: -3px; left: 14px;
  width: 40px; height: 1px;
  background: linear-gradient(90deg, #a67c52, transparent);
}

/* pre 容器 —— 三选项外框 */
.zwx + .xdt pre,
.xdt ~ pre,
pre {
  position: relative;
  margin: 5px 0 !important;
  padding: 0 !important;
  background: transparent !important;
  overflow: visible !important;
  border: none !important;
}

/* A 选项 —— 灰绿·稳定/丈夫向 */
pre code[class*="language-A"] {
  display: block !important;
  padding: 14px 16px 14px 46px !important;
  background: linear-gradient(135deg, #f0f5f0 0%, #e5ecdf 100%) !important;
  border: 1px solid #b8c8ba !important;
  border-left: 4px solid #7a8a7c !important;
  border-radius: 2px !important;
  color: #3a4a3d !important;
  font-family: 'Noto Serif SC', 'Songti SC', serif !important;
  font-size: 13px !important;
  line-height: 1.75 !important;
  position: relative;
  box-shadow: 
    0 2px 8px rgba(122,138,124,0.15),
    inset 0 1px 0 rgba(255,255,255,0.5);
  white-space: pre-wrap !important;
  word-break: break-word !important;
  transition: all 0.25s;
}
pre code[class*="language-A"]::before {
  content: 'Ⅰ';
  position: absolute;
  left: 12px; top: 12px;
  width: 24px; height: 24px;
  background: linear-gradient(135deg, #9aab9c, #5a6a5d);
  color: #faf7f2;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: bold;
  font-family: 'Noto Sans SC', sans-serif;
  box-shadow: 0 2px 4px rgba(90,106,93,0.3);
  letter-spacing: 0;
}
pre code[class*="language-A"]:hover {
  box-shadow: 
    0 4px 14px rgba(122,138,124,0.25),
    inset 0 1px 0 rgba(255,255,255,0.6);
  transform: translateX(2px);
}

/* B 选项 —— 暖棕·独立/中立 */
pre code[class*="language-B"] {
  display: block !important;
  padding: 14px 16px 14px 46px !important;
  background: linear-gradient(135deg, #f5f0e8 0%, #ede4d2 100%) !important;
  border: 1px solid #d4c8b8 !important;
  border-left: 4px solid #a67c52 !important;
  border-radius: 2px !important;
  color: #3a2f28 !important;
  font-family: 'Noto Serif SC', 'Songti SC', serif !important;
  font-size: 13px !important;
  line-height: 1.75 !important;
  position: relative;
  box-shadow: 
    0 2px 8px rgba(166,124,82,0.15),
    inset 0 1px 0 rgba(255,255,255,0.5);
  white-space: pre-wrap !important;
  word-break: break-word !important;
  transition: all 0.25s;
}
pre code[class*="language-B"]::before {
  content: 'Ⅱ';
  position: absolute;
  left: 12px; top: 12px;
  width: 24px; height: 24px;
  background: linear-gradient(135deg, #c89870, #8a6242);
  color: #faf7f2;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: bold;
  font-family: 'Noto Sans SC', sans-serif;
  box-shadow: 0 2px 4px rgba(138,98,66,0.3);
  letter-spacing: 0;
}
pre code[class*="language-B"]:hover {
  box-shadow: 
    0 4px 14px rgba(166,124,82,0.25),
    inset 0 1px 0 rgba(255,255,255,0.6);
  transform: translateX(2px);
}

/* C 选项 —— 脏粉·热烈/情人向（保留复制功能） */
pre code[class*="language-C"] {
  display: block !important;
  padding: 14px 16px 14px 46px !important;
  background: linear-gradient(135deg, #faf0ec 0%, #f0d8ce 100%) !important;
  border: 1px solid #e0b8a8 !important;
  border-left: 4px solid #c8907c !important;
  border-radius: 2px !important;
  color: #4a2f28 !important;
  font-family: 'Noto Serif SC', 'Songti SC', serif !important;
  font-size: 13px !important;
  line-height: 1.75 !important;
  position: relative;
  box-shadow: 
    0 2px 8px rgba(200,144,124,0.2),
    inset 0 1px 0 rgba(255,255,255,0.5);
  white-space: pre-wrap !important;
  word-break: break-word !important;
  transition: all 0.25s;
}
pre code[class*="language-C"]::before {
  content: 'Ⅲ';
  position: absolute;
  left: 12px; top: 12px;
  width: 24px; height: 24px;
  background: linear-gradient(135deg, #e0a898, #a86e5c);
  color: #faf7f2;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: bold;
  font-family: 'Noto Sans SC', sans-serif;
  box-shadow: 0 2px 4px rgba(168,110,92,0.35);
  letter-spacing: 0;
}
pre code[class*="language-C"]:hover {
  box-shadow: 
    0 4px 14px rgba(200,144,124,0.3),
    inset 0 1px 0 rgba(255,255,255,0.6);
  transform: translateX(2px);
}

/* ————— 平台总结/复制按钮气泡 ————— */
pre .flex.justify-between.items-center.border-b .font-normal { display: none !important; }
.box-border.p-0\.5.flex.items-center.justify-center.rounded-md.bg-white.cursor-pointer {
  background: #faf7f2 !important;
  border: 1px solid #d4c8b8 !important;
  border-radius: 3px !important;
  box-shadow: 0 1px 3px rgba(58,47,40,0.08) !important;
}

/* ————— 滚动条 ————— */
::-webkit-scrollbar { width: 8px !important; height: 8px !important; }
::-webkit-scrollbar-track { background: rgba(212,200,184,0.15) !important; }
::-webkit-scrollbar-thumb {
  background: #a67c52 !important;
  border-radius: 3px !important;
  border: 1px solid #8a6242;
}
::-webkit-scrollbar-thumb:hover { background: #8a6242 !important; }
::-webkit-scrollbar:horizontal { display: none !important; }

/* ————— 淡入动画 ————— */
.shu, .zwx, .jyq, .pci, .npcs, .xdt {
  animation: fadeSlideIn 0.6s cubic-bezier(0.16, 1, 0.3, 1) both;
}
.zwx { animation-delay: 0.05s; }
.jyq { animation-delay: 0.1s; }
.pci { animation-delay: 0.15s; }
.npcs { animation-delay: 0.2s; }
.xdt { animation-delay: 0.25s; }
@keyframes fadeSlideIn {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

/* ============================================================
   移动端适配
   ============================================================ */
@media only screen and (max-width: 652px) {
  .shu {
    margin: 10px 0 14px;
    font-size: 12px;
  }
  .shu-hd { padding: 10px 12px 8px; gap: 6px; }
  .shu-mm { padding: 2px 9px; font-size: 11px; }
  .shu-dt { font-size: 11.5px; margin-left: 0; width: 100%; }
  .shu-md { padding: 8px 12px; gap: 6px; }
  .shu-ssn, .shu-wth, .shu-wc { font-size: 10.5px; padding: 2px 8px; }
  .shu-loc { padding: 8px 12px 4px; font-size: 12px; }
  .shu-imp { padding: 4px 12px 10px; font-size: 11px; }
  .shu-zc, .shu-xc { padding: 6px 12px; font-size: 11px; }

  .zwx {
    margin: 14px 0;
    padding: 20px 10px 18px 16px;
    font-size: 0.94em;
    line-height: 1.85;
  }
  .zwx::before { left: 6px; }
  .zwx em, .zwx i, .zwx blockquote {
    margin: 12px 2px;
    padding: 10px 12px;
    font-size: 0.92em;
  }

  .jyq, .pci, .npcs { margin: 14px 0; }
  .jyq-sec > summary,
  .pci-sec > summary,
  .npcs-sec > summary { padding: 10px 14px; font-size: 12.5px; }
  .jyq-sub { margin: 8px; }
  .jyq thead th, .jyq tbody td { padding: 5px 7px; font-size: 10.5px; }

  .pci-hgc, .pci-bgc { padding: 12px 14px; }
  .pci-fv, .npc-fv { padding: 8px 10px; }
  .pci-fv-hd, .npc-fv-hd { font-size: 11.5px; }
  .pci-fv-txt, .npc-fv-txt { font-size: 10.5px; }

  .npc-crd { margin: 8px 10px; }
  .npc-crd > summary { padding: 10px 12px; font-size: 12.5px; }
  .npc-lst { padding: 6px 12px 8px; }
  .npc-lst li { font-size: 11px; padding: 4px 8px 4px 10px; }

  .xdt { margin: 18px 0 10px; }
  .xd-hd { font-size: 13px; letter-spacing: 1.5px; }
  pre code[class*="language-A"],
  pre code[class*="language-B"],
  pre code[class*="language-C"] {
    padding: 12px 12px 12px 42px !important;
    font-size: 12.5px !important;
  }
  pre code[class*="language-A"]::before,
  pre code[class*="language-B"]::before,
  pre code[class*="language-C"]::before {
    width: 22px; height: 22px;
    font-size: 12px;
    left: 10px; top: 10px;
  }

  .inline-block.bg-gray-100\/90:not(.chat-answer-container .bg-gray-100\/90) {
    padding: 10px 12px !important;
    font-size: 12.5px !important;
  }

  ::-webkit-scrollbar { display: none !important; }
}