/* =============================================
   纯欲天国 · 内置CSS v5（标准标签级联·终极兼容）
   ✨ 核心升级：输出模板已全标准标签化（div/span/p/details），
      本CSS同时支持 类名路径 + 纯标签级联路径：
      - 平台保留class → .ui-frame 路径命中
      - 平台剥离class → div>details 标签级联命中
      选项自带内联样式兜底，即使class全被剥离也保持布局
   ⚠ 不用:has()（平台不支持）不用:root变量（平台覆盖失效）
   色值全部写死，文字显式声明+!important
   ============================================= */

/* ===== 危险区域：隐藏平台默认背景 ===== */
[class*="bg-[#F1CBCB]"],[class*="bg-[#c9e1e9]"],[class*="bg-[#f1cbcb]"]{display:none!important}

/* ===== 根容器：类名路径 + 标签级联路径 ===== */
.ui-frame,
.markdown-body .ui-frame{
  background:hsl(280,15%,15%)!important;
  border:1px solid rgba(255,107,149,0.18)!important;
  border-radius:16px!important;
  box-shadow:0 4px 24px rgba(0,0,0,.25)!important;
  color:hsl(280,8%,93%)!important;
  padding:18px!important;
  margin:12px auto!important;
  max-width:800px!important;
  font-size:15px!important;
  line-height:1.75!important;
  font-family:'Noto Serif SC','Source Han Serif SC','STSong','Microsoft YaHei',serif!important;
  letter-spacing:.02em!important;
  transition:border-color .3s ease,box-shadow .3s ease!important
}
.ui-frame:hover,
.markdown-body .ui-frame:hover{
  border-color:rgba(255,107,149,0.35)!important;
  box-shadow:0 6px 30px rgba(0,0,0,.3),0 0 18px rgba(255,107,149,0.08)!important
}

/* ===== 文字显式声明（严禁依赖继承，防平台默认灰字） ===== */
.ui-frame p,.markdown-body p,
.ui-frame span,.markdown-body span,
.ui-frame li,.markdown-body li,
.ui-frame td,.markdown-body td,
.ui-frame th,.markdown-body th,
.ui-frame div,.markdown-body div{
  color:hsl(280,8%,93%)!important
}
.ui-frame h1,.ui-frame h2,.ui-frame h3,
.markdown-body h1,.markdown-body h2,.markdown-body h3{
  color:hsl(280,8%,93%)!important;
  border-bottom:1px solid hsl(280,15%,28%)!important;
  padding-bottom:6px!important;
  font-weight:700!important
}
.ui-frame strong,.markdown-body strong{color:hsl(345,50%,68%)!important;font-weight:700!important}
.ui-frame em,.markdown-body em{color:hsl(345,40%,80%)!important}
.ui-frame a,.markdown-body a{
  color:hsl(345,50%,68%)!important;
  text-decoration:none!important;
  border-bottom:1px dashed rgba(255,107,149,0.4)!important
}
.ui-frame a:hover,.markdown-body a:hover{border-bottom-style:solid!important}

/* ===== 聊天气泡（类名+属性模糊+纯标签级联） ===== */
.markdown-body [class*="bg-gray-100/90"].relative.inline-block,
.markdown-body [class*="bg-gray-100\\/90"].relative.inline-block,
.ui-frame [class*="bg-gray-100/90"].relative.inline-block,
[class*="bg-gray-100"][class*="relative"][class*="inline-block"],
.ui-frame,.ui-bubble{
  background:hsl(280,15%,15%)!important;
  border:1px solid rgba(255,107,149,0.18)!important;
  border-radius:16px!important;
  box-shadow:0 4px 24px rgba(0,0,0,.25),0 0 0 1px rgba(255,107,149,0.08)!important;
  color:hsl(280,8%,93%)!important;
  padding:18px!important;
  font-size:15px!important;
  line-height:1.75!important;
  transition:border-color .3s ease,box-shadow .3s ease!important
}
.markdown-body [class*="bg-gray-100/90"].relative.inline-block:hover,
.ui-frame [class*="bg-gray-100/90"].relative.inline-block:hover,
[class*="bg-gray-100"][class*="relative"][class*="inline-block"]:hover,
.ui-frame:hover,.ui-bubble:hover{
  border-color:rgba(255,107,149,0.35)!important;
  box-shadow:0 6px 30px rgba(0,0,0,.3),0 0 0 1px rgba(255,107,149,0.08),0 0 18px rgba(255,107,149,0.08)!important
}
/* 气泡内文字再保一层 */
.markdown-body [class*="bg-gray-100"] p,
.ui-frame [class*="bg-gray-100"] p,
.ui-frame p,.ui-bubble p{
  color:hsl(280,8%,93%)!important
}

/* ===== NPC台词（大小写不敏感+class兜底+内联style兼容） ===== */
.markdown-body p[style*="color:" i][style*="2957a2" i],
.ui-frame p[style*="color:" i][style*="2957a2" i],
.markdown-body p[style*="#2957a2" i],
.ui-frame p[style*="#2957a2" i],
.markdown-body .npc-speech,
.ui-frame .npc-speech{
  color:hsl(345,70%,82%)!important;
  font-style:italic!important;
  border-left:3px solid rgba(255,107,149,0.5)!important;
  padding:6px 0 6px 14px!important;
  margin:10px 0!important;
  background:linear-gradient(90deg,rgba(73,38,47,0.5),transparent)!important;
  border-radius:0 6px 6px 0!important
}

/* ===== 折叠状态栏：类名路径 ===== */
.ui-frame details,.markdown-body details{
  background:hsl(280,15%,15%)!important;
  border:1px solid hsl(280,15%,28%)!important;
  border-radius:12px!important;
  margin:10px 0!important;
  overflow:hidden!important;
  display:block!important;
  transition:border-color .2s ease,box-shadow .2s ease!important
}
.ui-frame details[open],.markdown-body details[open]{
  border-color:rgba(255,107,149,0.45)!important;
  box-shadow:0 0 22px rgba(255,107,149,0.08)!important
}
.ui-frame details summary,.markdown-body details summary{
  background:hsl(280,15%,20%)!important;
  color:hsl(280,8%,93%)!important;
  padding:10px 14px 10px 34px!important;
  display:block!important;
  position:relative!important;
  border-bottom:1px solid hsl(280,15%,28%)!important;
  cursor:pointer!important;
  font-weight:600!important;
  font-size:14px!important;
  list-style:none!important;
  user-select:none!important;
  min-height:44px!important;
  transition:background .2s ease!important
}
.ui-frame details summary:hover,.markdown-body details summary:hover{background:hsl(280,15%,26%)!important}
.ui-frame details summary::before,.markdown-body details summary::before{
  content:'▶'!important;
  position:absolute!important;
  left:14px!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  color:hsl(345,50%,68%)!important;
  font-size:10px!important;
  transition:transform .25s cubic-bezier(.4,0,.2,1)!important
}
.ui-frame details[open] summary::before,.markdown-body details[open] summary::before{transform:translateY(-50%) rotate(90deg)!important}
.ui-frame details summary::-webkit-details-marker,.markdown-body details summary::-webkit-details-marker{display:none!important}
.ui-frame details>*:not(summary),.markdown-body details>*:not(summary){
  padding:14px!important;
  background:rgba(30,24,33,.2)!important
}

/* ===== 折叠状态栏：纯标签级联路径（class被剥离时兜底） ===== */
.markdown-body div>details,
.markdown-body div details{
  background:hsl(280,15%,15%)!important;
  border:1px solid hsl(280,15%,28%)!important;
  border-radius:12px!important;
  margin:10px 0!important;
  overflow:hidden!important;
  display:block!important
}
.markdown-body div>details[open]{
  border-color:rgba(255,107,149,0.45)!important;
  box-shadow:0 0 22px rgba(255,107,149,0.08)!important
}
.markdown-body div>details summary{
  background:hsl(280,15%,20%)!important;
  color:hsl(280,8%,93%)!important;
  padding:10px 14px 10px 34px!important;
  display:block!important;
  position:relative!important;
  border-bottom:1px solid hsl(280,15%,28%)!important;
  cursor:pointer!important;
  font-weight:600!important;
  font-size:14px!important;
  list-style:none!important;
  user-select:none!important;
  min-height:44px!important
}
.markdown-body div>details summary:hover{background:hsl(280,15%,26%)!important}
.markdown-body div>details summary::before{
  content:'▶'!important;
  position:absolute!important;
  left:14px!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  color:hsl(345,50%,68%)!important;
  font-size:10px!important;
  transition:transform .25s cubic-bezier(.4,0,.2,1)!important
}
.markdown-body div>details[open] summary::before{transform:translateY(-50%) rotate(90deg)!important}
.markdown-body div>details summary::-webkit-details-marker{display:none!important}

/* ===== 头部信息（ui-hd类名+首div级联） ===== */
.ui-frame .ui-hd,.markdown-body .ui-hd{
  display:block!important;
  font-size:12px!important;
  color:hsl(280,6%,68%)!important;
  text-align:center!important;
  padding:8px 0 16px!important;
  letter-spacing:.06em!important;
  border-bottom:1px solid hsl(280,15%,28%)!important;
  margin-bottom:16px!important
}
/* class被剥离时：.ui-frame>div:first-of-type 兜底 */
.ui-frame>div:first-of-type{
  display:block!important;
  font-size:12px!important;
  color:hsl(280,6%,68%)!important;
  text-align:center!important;
  padding:8px 0 16px!important;
  letter-spacing:.06em!important;
  border-bottom:1px solid hsl(280,15%,28%)!important;
  margin-bottom:16px!important
}

/* ===== 剧情分支选项：类名路径（div/span通吃）+ 纯标签路径 ===== */
.ui-frame .ui-options-wrapper,
.markdown-body .ui-options-wrapper{
  display:flex!important;
  flex-direction:column!important;
  gap:8px!important;
  padding:0!important;
  margin:12px 0!important
}
.ui-frame .ui-option,
.markdown-body .ui-option,
.ui-options-wrapper>div,
.ui-options-wrapper>span,
p[t="选项"]>span{
  display:block!important;
  background:hsl(280,15%,20%)!important;
  border:1px solid hsl(280,15%,28%)!important;
  border-radius:10px!important;
  padding:12px 16px!important;
  margin-bottom:8px!important;
  cursor:pointer!important;
  font-size:14px!important;
  color:hsl(280,8%,93%)!important;
  min-height:44px!important;
  transition:all .25s cubic-bezier(.4,0,.2,1)!important;
  position:relative!important;
  overflow:hidden!important
}
.ui-frame .ui-option:hover,
.markdown-body .ui-option:hover,
.ui-options-wrapper>div:hover,
.ui-options-wrapper>span:hover,
p[t="选项"]>span:hover{
  background:hsl(280,15%,26%)!important;
  border-color:rgba(255,107,149,0.4)!important;
  transform:translateX(3px)!important;
  box-shadow:0 2px 12px rgba(255,107,149,0.08)!important
}
.ui-frame .ui-option::before,
.markdown-body .ui-option::before,
.ui-options-wrapper>div::before,
.ui-options-wrapper>span::before,
p[t="选项"]>span::before{
  content:'◆'!important;
  color:hsl(345,50%,68%)!important;
  margin-right:8px!important;
  font-size:8px!important;
  vertical-align:middle!important
}

/* ===== 记忆区表格 ===== */
.ui-frame table,.markdown-body table{
  width:100%!important;
  border-collapse:collapse!important;
  margin:10px 0!important;
  font-size:12px!important;
  border-radius:8px!important;
  overflow:hidden!important
}
.ui-frame thead,.markdown-body thead{background:hsl(280,15%,20%)!important}
.ui-frame th,.markdown-body th{
  color:hsl(345,50%,68%)!important;
  font-weight:600!important;
  padding:10px 12px!important;
  text-align:left!important;
  border-bottom:1px solid hsl(280,15%,28%)!important;
  font-size:11px!important;
  letter-spacing:.04em!important;
  text-transform:uppercase!important
}
.ui-frame td,.markdown-body td{
  color:hsl(280,8%,93%)!important;
  padding:10px 12px!important;
  border-bottom:1px solid hsla(280,15%,28%,.5)!important;
  vertical-align:top!important
}
.ui-frame tr:nth-child(even) td,.markdown-body tr:nth-child(even) td{background:hsla(280,15%,11%,.5)!important}
.ui-frame tr:hover td,.markdown-body tr:hover td{background:hsla(280,15%,26%,.4)!important}

/* ===== 代码块 ===== */
.ui-frame pre,.markdown-body pre{
  background:hsl(280,15%,15%)!important;
  border:1px solid hsl(280,15%,28%)!important;
  border-left:3px solid hsl(345,50%,68%)!important;
  border-radius:8px!important;
  padding:14px 16px!important;
  overflow-x:auto!important;
  font-size:13px!important
}
.ui-frame pre code,.markdown-body pre code{background:transparent!important;color:hsl(280,8%,93%)!important}
.ui-frame :not(pre)>code,.markdown-body :not(pre)>code{
  background:hsl(345,17.5%,18%)!important;
  color:hsl(345,40%,80%)!important;
  padding:2px 7px!important;
  border-radius:4px!important;
  font-size:13px!important
}

/* ===== 滚动条 ===== */
::-webkit-scrollbar{width:4px!important;height:4px!important}
::-webkit-scrollbar-track{background:hsl(280,15%,7%)!important}
::-webkit-scrollbar-thumb{background:hsl(345,17.5%,18%)!important;border-radius:8px!important}
::-webkit-scrollbar-thumb:hover{background:rgba(255,107,149,0.4)!important}

/* ===== 选区与占位符 ===== */
::selection{background:hsl(345,17.5%,18%)!important;color:hsl(345,40%,80%)!important}
::placeholder{color:hsl(280,5%,44%)!important;opacity:1!important}

/* ===== 平台输入框 ===== */
#ai-chat-input{
  background:hsl(280,15%,15%)!important;
  color:hsl(280,8%,93%)!important;
  caret-color:hsl(345,50%,68%)!important;
  border:1px solid hsl(280,15%,28%)!important;
  border-radius:12px!important;
  padding:14px 16px!important;
  font-size:15px!important;
  transition:border-color .2s ease,box-shadow .2s ease!important
}
#ai-chat-input:focus{
  border-color:rgba(255,107,149,0.5)!important;
  box-shadow:0 0 0 3px hsl(345,17.5%,18%)!important;
  outline:none!important
}
textarea.rc-textarea{
  background:hsl(280,15%,15%)!important;
  color:hsl(280,8%,93%)!important;
  border:1px solid hsl(280,15%,28%)!important
}

/* ===== 平台底部输入区 ===== */
#ai-chat-bottom-input{background:transparent!important}
.bg-gradient-to-t{background:hsl(280,15%,11%)!important}

/* ===== 发送按钮 ===== */
#ai-send-button{
  background:linear-gradient(135deg,hsl(345,50%,68%),hsl(345,50%,58%))!important;
  color:#fff!important;
  border-radius:10px!important;
  padding:10px 18px!important;
  font-weight:600!important;
  letter-spacing:.03em!important;
  transition:all .25s cubic-bezier(.4,0,.2,1)!important;
  box-shadow:0 4px 16px rgba(255,107,149,0.08)!important
}
#ai-send-button:hover{
  transform:translateY(-1px)!important;
  box-shadow:0 6px 22px rgba(255,107,149,.4)!important
}

/* ===== 平台底部功能按钮 ===== */
.flex.items-center.gap-2.pb-2>button{
  background:hsl(280,15%,20%)!important;
  color:hsl(280,8%,93%)!important;
  border:1px solid hsl(280,15%,28%)!important;
  border-radius:8px!important;
  font-weight:600!important;
  font-size:12px!important;
  padding:7px 14px!important;
  min-height:36px!important;
  transition:all .2s cubic-bezier(.4,0,.2,1)!important;
  letter-spacing:.03em!important
}
.flex.items-center.gap-2.pb-2>button:hover{
  background:hsl(280,15%,26%)!important;
  border-color:rgba(255,107,149,0.4)!important;
  color:hsl(345,50%,68%)!important
}

/* ===== 评论区与评分 ===== */
div[class*="w-full"][class*="bg-white"][class*="bottom-0"]{
  background:hsl(280,15%,15%)!important;
  border-top:1px solid hsl(280,15%,28%)!important
}
.MuiRating-iconFilled svg{color:hsl(345,50%,68%)!important}
.MuiRating-iconEmpty svg{color:hsl(280,5%,44%)!important}
.MuiButton-containedPrimary{
  background:linear-gradient(135deg,hsl(345,50%,68%),hsl(345,50%,58%))!important;
  color:#fff!important;
  border-radius:8px!important;
  font-weight:600!important
}
.MuiButton-outlinedPrimary{border-color:hsl(345,50%,68%)!important;color:hsl(345,50%,68%)!important}

/* ===== 分页 ===== */
.MuiPaginationItem-root{
  background:hsl(280,15%,20%)!important;
  color:hsl(280,8%,93%)!important;
  border:1px solid hsl(280,15%,28%)!important;
  border-radius:8px!important
}
.MuiPaginationItem-root.Mui-selected{
  background:hsl(345,50%,68%)!important;
  color:#fff!important;
  border-color:hsl(345,50%,68%)!important
}

/* ===== 加载动画 ===== */
#customized-answer-content-loading-anim-container [class*="dot-flashing"],
#customized-answer-avatar-loading-anim-container [class*="dot-flashing"]{display:none!important}
.flex.items-center.justify-center.w-6.h-5{position:relative!important}
.flex.items-center.justify-center.w-6.h-5::before,
.flex.items-center.justify-center.w-6.h-5::after{
  content:''!important;
  position:absolute!important;
  width:6px!important;
  height:6px!important;
  border-radius:50%!important;
  background:hsl(345,50%,68%)!important;
  animation:cyBounce 1.2s ease-in-out infinite!important
}
.flex.items-center.justify-center.w-6.h-5::before{left:2px!important;animation-delay:0s!important}
.flex.items-center.justify-center.w-6.h-5::after{left:16px!important;animation-delay:.2s!important}
@keyframes cyBounce{
0%,100%{transform:translateY(0);opacity:.35}
50%{transform:translateY(-6px);opacity:1}
}

/* ===== 响应式 ===== */
@media(max-width:480px){
.markdown-body [class*="bg-gray-100"].relative.inline-block,
.ui-frame [class*="bg-gray-100"].relative.inline-block,
.ui-frame{
  padding:14px!important;
  font-size:14px!important;
  border-radius:12px!important
}
.ui-frame details summary,.markdown-body details summary{
  font-size:13px!important;
  padding:10px 12px 10px 30px!important
}
.ui-frame .ui-option,.markdown-body .ui-option,
.ui-options-wrapper>div,.ui-options-wrapper>span,p[t="选项"]>span{
  font-size:13px!important;
  padding:10px 14px!important
}
}

@media(prefers-reduced-motion:reduce){
*{animation-duration:.01ms!important;transition-duration:.01ms!important}
}