
/*
 * 《让你氪金修仙没让你包养女剑仙》页面与消息美化 v1.17.1
 * v1.17.0：收紧主线阶段绿灯扫描，补全S0—S9进入、推进、退出与物品推荐条件。
 * 目标：类酒馆平台自定义 CSS；仅HTML+CSS，不使用酒馆宏、JavaScript或DOM脚本。
 * 立绘接口：基础仙衣与4套换装×24表情共120个组合，由消息正则写入<img src>。
 * v1.1.0：修复深色背景黑字；重做四色动态读条；强化五项建议按钮。
 * v1.2.0：整体改为浅色高对比主题；正文整楼强制可读；进度改用原生meter值。
 * v1.4.0：兼容新旧CSS混载；data-value纯CSS读条；新增玩家、系统与心声卡片；扩大建议按钮钩子。
 * v1.5.0：立绘接口扩展为24种主导状态；进度条CSS保持不变。
 * v1.6.0：移除重复立绘补丁；24种立绘改为data-portrait直连URL，逐轮独立显示。
 * v1.6.1：扩大立绘框并改为完整半身取景；透明区域增加实体浅玉灰底色。
 * v1.6.2：移除立绘上方的白色渐变遮罩；画像层改为原图直出与单层背景参数。
 * v1.6.3：仅更新24种立绘的图片URL，其他CSS保持不变。
 * v1.7.0：新增女仆装、猫耳、裸体围裙、旗袍、萌螈cos五套服装×24表情接口；支持data-outfit与衣橱面板。
 * v1.8.0：适配next-themes原生.dark标记；追加作者设计的夜间配色，不反色、不改写图片。
 * v1.9.0：写入女仆、猫耳、裸体围裙、旗袍四套服装各24张实际立绘；删除未提供素材的萌螈cos槽。
 * v1.10.0：立绘展示层统一改为纯白底色；夜间模式同步保留白色画布与深色角色名。
 * v1.11.0：统一基础仙衣与四套换装的肖像触发。
 * v1.16.0：强化李清然原作人设、关系阶段差异、将门身世与人物驱动检查。
 * v1.15.0：新增关键物品剧情路由、宽触发词、秋华剑独立条目与获得状态约束。
 * v1.14.3：修复素弦剑获取、关键持有、长期成长与秋华剑区分路线。
 * v1.14.2：移除火毒永久仪表及专用配色；火毒保留为前期伤势与治疗事件。
 * v1.14.1：system-text保留真实换行；细化正文镜头、句式、对白与场景节拍规则。
 * v1.12.0：修复酒馆实机白屏与肖像变量依赖。
 */

:root {
  --kx-night: #f5f1e8;
  --kx-ink: #263b38;
  --kx-panel: rgba(255, 254, 249, 0.97);
  --kx-panel-soft: rgba(237, 247, 243, 0.94);
  --kx-line: rgba(46, 122, 106, 0.24);
  --kx-line-bright: rgba(42, 134, 114, 0.52);
  --kx-jade: #4cae97;
  --kx-jade-deep: #277d6b;
  --kx-gold: #aa8036;
  --kx-gold-soft: #c9a457;
  --kx-text: #263b38;
  --kx-text-soft: #455f5a;
  --kx-muted: #687d78;
  --kx-danger: #df5a73;
  --kx-warn: #d89132;
  --kx-spirit: #398ec8;
  --kx-bond: #b85ab3;
  --kx-radius: 18px;
  --kx-shadow: 0 18px 48px rgba(58, 77, 70, 0.16);
  --kx-portrait-placeholder: "立绘接口\A等待配置图片";

}

/* ---------- 页面底色与基础字体 ---------- */

html,
body {
  color: var(--kx-text);
  background:
    radial-gradient(circle at 12% 4%, rgba(91, 170, 151, 0.18), transparent 34%),
    radial-gradient(circle at 88% 18%, rgba(210, 176, 103, 0.16), transparent 30%),
    linear-gradient(160deg, #f8f6ef 0%, #eef6f2 46%, #f7f1e7 100%);
  background-attachment: fixed;
  font-family: "Noto Sans SC", "Microsoft YaHei", "PingFang SC", system-ui, sans-serif;
}

/* 日历平台会把body映射到.custom-styles；禁止在此设置min-height。 */
::selection {
  color: #17352f;
  background: rgba(133, 211, 192, 0.58);
}

/* ---------- 顶栏 ---------- */

#customized-model-selector,
#customized-opening-statement-selector {
  color: var(--kx-text) !important;
  -webkit-text-fill-color: var(--kx-text) !important;
  background: rgba(255, 254, 249, 0.96) !important;
  border: 1px solid var(--kx-line) !important;
  border-radius: 12px !important;
  box-shadow: inset 0 1px #fff, 0 8px 22px rgba(68, 94, 85, 0.12);
  backdrop-filter: blur(14px);
}

#header-setting-button {
  color: #77551f !important;
  -webkit-text-fill-color: #77551f !important;
  background: #fffaf0 !important;
  border: 1px solid rgba(170, 128, 54, 0.34) !important;
  border-radius: 12px !important;
  transition: transform 0.18s ease, border-color 0.18s ease, background 0.18s ease;
}

#header-setting-button:hover {
  transform: translateY(-1px);
  border-color: var(--kx-gold) !important;
  background: #f7ecd5 !important;
}

/* ---------- 消息头像与气泡 ---------- */

#customized-question-avatar,
#customized-answer-avatar {
  overflow: hidden;
  border: 1px solid var(--kx-line-bright) !important;
  border-radius: 50% !important;
  box-shadow: 0 0 0 3px rgba(71, 148, 132, 0.13), 0 8px 22px rgba(63, 83, 76, 0.16);
}

#customized-answer-avatar {
  border-color: rgba(170, 128, 54, 0.62) !important;
  box-shadow: 0 0 0 3px rgba(199, 161, 84, 0.12), 0 8px 22px rgba(63, 83, 76, 0.16);
}

#customized-question-content,
#customized-answer-content {
  box-sizing: border-box;
  color: var(--kx-text) !important;
  font-weight: 400;
  line-height: 1.82;
  overflow-wrap: anywhere;
  border: 1px solid var(--kx-line) !important;
  box-shadow: 0 12px 34px rgba(59, 82, 74, 0.13);
  backdrop-filter: blur(12px);
}

#customized-question-content {
  background: linear-gradient(145deg, #e5f3ef, #dcece8) !important;
  border-radius: 18px 5px 18px 18px !important;
}

#customized-answer-content {
  background:
    linear-gradient(135deg, rgba(210, 176, 103, 0.1), transparent 38%),
    linear-gradient(145deg, #fffef9, #f6f2e9) !important;
  border-radius: 5px 18px 18px 18px !important;
}

#customized-question-content,
#customized-question-content *,
#customized-answer-content,
#customized-answer-content * {
  color: var(--kx-text) !important;
  -webkit-text-fill-color: var(--kx-text) !important;
}

#customized-question-content strong,
#customized-answer-content strong {
  color: #74531f !important;
  -webkit-text-fill-color: #74531f !important;
}

#customized-question-content a,
#customized-answer-content a {
  color: #17735f !important;
  -webkit-text-fill-color: #17735f !important;
}

#customized-answer-content p {
  margin: 0.62em 0;
}

#customized-answer-content blockquote {
  margin: 0.85em 0;
  padding: 0.65em 0.9em;
  color: #334e49 !important;
  -webkit-text-fill-color: #334e49 !important;
  background: rgba(90, 160, 143, 0.1);
  border-left: 3px solid var(--kx-jade-deep);
  border-radius: 0 10px 10px 0;
}

/* ---------- 单条消息操作按钮 ---------- */

#customized-reload-button,
#customized-edit-button,
#customized-resend-button,
#customized-delete-button,
#customized-create-image-button,
#customized-create-audio-button,
#customized-branch-and-share-button,
#customized-prompt-log-button {
  color: #536c67 !important;
  -webkit-text-fill-color: #536c67 !important;
  background: rgba(249, 252, 249, 0.94) !important;
  border: 1px solid rgba(74, 139, 125, 0.2) !important;
  border-radius: 9px !important;
  transition: color 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
}

#customized-reload-button:hover,
#customized-edit-button:hover,
#customized-resend-button:hover,
#customized-delete-button:hover,
#customized-create-image-button:hover,
#customized-create-audio-button:hover,
#customized-branch-and-share-button:hover,
#customized-prompt-log-button:hover {
  color: #74531f !important;
  -webkit-text-fill-color: #74531f !important;
  border-color: rgba(170, 128, 54, 0.46) !important;
  transform: translateY(-1px);
}

/* ---------- 分页、底部工具条与输入框 ---------- */

#customized-pagination,
#ai-mod-button2 {
  color: #536c67 !important;
  -webkit-text-fill-color: #536c67 !important;
  background: rgba(255, 254, 249, 0.96) !important;
  border: 1px solid var(--kx-line) !important;
  border-radius: 15px !important;
  box-shadow: 0 12px 30px rgba(58, 82, 73, 0.13);
  backdrop-filter: blur(16px);
}

#ai-mod-button,
#customized-ai-summary-button,
#customized-flow-button,
#customized-comment-button,
#customized-scroll-to-bottom-button,
#toggle-sub-buttons,
[id^="customized-shortcut-command-button-"] {
  color: #526b66 !important;
  -webkit-text-fill-color: #526b66 !important;
  background: #edf6f2 !important;
  border: 1px solid rgba(63, 135, 120, 0.2) !important;
  border-radius: 10px !important;
}

#ai-mod-button:hover,
#customized-ai-summary-button:hover,
#customized-flow-button:hover,
#customized-comment-button:hover,
#customized-scroll-to-bottom-button:hover,
#toggle-sub-buttons:hover,
[id^="customized-shortcut-command-button-"]:hover {
  color: #1f544a !important;
  -webkit-text-fill-color: #1f544a !important;
  border-color: var(--kx-line-bright) !important;
  background: #dceee8 !important;
}

#ai-chat-input {
  color: var(--kx-text) !important;
  -webkit-text-fill-color: var(--kx-text) !important;
  caret-color: var(--kx-jade);
  background: rgba(255, 254, 249, 0.98) !important;
  border: 1px solid var(--kx-line) !important;
  border-radius: 16px !important;
  box-shadow: inset 0 1px #fff, 0 12px 34px rgba(58, 82, 73, 0.14);
}

#ai-chat-input:focus {
  border-color: var(--kx-line-bright) !important;
  outline: 2px solid rgba(76, 174, 151, 0.16) !important;
}

#ai-chat-input::placeholder {
  color: rgba(84, 108, 102, 0.68) !important;
  -webkit-text-fill-color: rgba(84, 108, 102, 0.68) !important;
}

#ai-send-button {
  color: #153b34 !important;
  -webkit-text-fill-color: #153b34 !important;
  background: linear-gradient(135deg, #ead7a4, #9ed8c9) !important;
  border: 0 !important;
  border-radius: 14px !important;
  box-shadow: 0 8px 24px rgba(69, 175, 152, 0.26);
  transition: filter 0.18s ease, transform 0.18s ease;
}

#ai-send-button:hover {
  filter: brightness(1.08);
  transform: translateY(-1px);
}

/* ---------- 李清然专属对白 ---------- */

lqr-dialogue,
lqr-thought,
lqr-name,
lqr-text,
player-dialogue,
player-name,
player-text,
system-dialogue,
system-name,
system-text {
  box-sizing: border-box;
}

lqr-dialogue {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 5px 12px;
  margin: 1em 0;
  padding: 13px 15px 14px 17px;
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(76, 174, 151, 0.13), transparent 54%),
    rgba(249, 253, 249, 0.94);
  border: 1px solid rgba(102, 216, 190, 0.27);
  border-left: 3px solid var(--lqr-accent, var(--kx-jade));
  border-radius: 4px 14px 14px 4px;
  box-shadow: 0 9px 24px rgba(57, 83, 74, 0.11);
}

lqr-dialogue::after {
  content: "清";
  position: absolute;
  right: -7px;
  bottom: -20px;
  color: rgba(170, 128, 54, 0.1);
  font-family: "STKaiti", "KaiTi", serif;
  font-size: 72px;
  line-height: 1;
  pointer-events: none;
}

lqr-name {
  z-index: 1;
  display: inline-flex;
  align-items: center;
  align-self: start;
  padding: 2px 8px;
  color: #785821 !important;
  -webkit-text-fill-color: #785821 !important;
  font-family: "STKaiti", "KaiTi", serif;
  font-size: 0.83em;
  letter-spacing: 0.1em;
  white-space: nowrap;
  background: rgba(217, 184, 109, 0.09);
  border: 1px solid rgba(217, 184, 109, 0.22);
  border-radius: 999px;
}

lqr-text {
  z-index: 1;
  display: block;
  color: #263b38 !important;
  -webkit-text-fill-color: #263b38 !important;
  font-size: 1.02em;
  line-height: 1.75;
}

lqr-dialogue[data-mood="critical"],
lqr-dialogue[data-mood="combat"] {
  --lqr-accent: var(--kx-danger);
}

lqr-dialogue[data-mood="wounded"],
lqr-dialogue[data-mood="guarded"] {
  --lqr-accent: var(--kx-warn);
}

lqr-dialogue[data-mood="happy"],
lqr-dialogue[data-mood="intimate"] {
  --lqr-accent: var(--kx-bond);
}

lqr-dialogue[data-mood="training"] {
  --lqr-accent: var(--kx-spirit);
}

/* ---------- 李清然心声、玩家对白与系统提示 ---------- */

lqr-thought {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 5px 12px;
  margin: 0.9em 0;
  padding: 12px 15px 13px 17px;
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(76, 174, 151, 0.09), transparent 58%),
    rgba(247, 251, 248, 0.9);
  border: 1px dashed var(--lqr-accent, var(--kx-jade));
  border-left: 3px solid var(--lqr-accent, var(--kx-jade));
  border-radius: 4px 14px 14px 4px;
  box-shadow: 0 7px 19px rgba(57, 83, 74, 0.08);
}

lqr-thought::after {
  content: "念";
  position: absolute;
  right: 5px;
  bottom: -13px;
  color: rgba(170, 128, 54, 0.08);
  -webkit-text-fill-color: rgba(170, 128, 54, 0.08);
  font-family: "STKaiti", "KaiTi", serif;
  font-size: 54px;
  line-height: 1;
  pointer-events: none;
}

lqr-thought lqr-text {
  color: #455f5a !important;
  -webkit-text-fill-color: #455f5a !important;
  font-style: italic;
}

lqr-thought[data-mood="critical"],
lqr-thought[data-mood="combat"] { --lqr-accent: var(--kx-danger); }
lqr-thought[data-mood="wounded"],
lqr-thought[data-mood="guarded"] { --lqr-accent: var(--kx-warn); }
lqr-thought[data-mood="happy"],
lqr-thought[data-mood="intimate"] { --lqr-accent: var(--kx-bond); }
lqr-thought[data-mood="training"] { --lqr-accent: var(--kx-spirit); }

player-dialogue {
  --player-accent: #398ec8;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 5px 12px;
  margin: 0.95em 0;
  padding: 12px 15px;
  background: linear-gradient(90deg, rgba(57, 142, 200, 0.12), rgba(248, 252, 255, 0.96));
  border: 1px solid rgba(57, 142, 200, 0.28);
  border-left: 4px solid var(--player-accent);
  border-radius: 4px 14px 14px 4px;
  box-shadow: 0 8px 21px rgba(47, 94, 124, 0.1);
}

player-name,
system-name {
  display: inline-flex;
  align-items: center;
  align-self: start;
  padding: 2px 8px;
  color: var(--player-accent, #287eb7) !important;
  -webkit-text-fill-color: var(--player-accent, #287eb7) !important;
  font-size: 0.82em;
  font-weight: 700;
  white-space: nowrap;
  border: 1px solid currentColor;
  border-radius: 999px;
}

player-text,
system-text {
  display: block;
  color: #263b38 !important;
  -webkit-text-fill-color: #263b38 !important;
  font-size: 1.01em;
  line-height: 1.72;
}

player-dialogue[data-tone="gentle"] { --player-accent: #389b83; }
player-dialogue[data-tone="firm"] { --player-accent: #7359b8; }
player-dialogue[data-tone="urgent"] { --player-accent: #d84d68; }
player-dialogue[data-tone="humorous"] { --player-accent: #b77923; }

system-dialogue {
  --system-accent: #aa8036;
  --player-accent: var(--system-accent);
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 5px 12px;
  margin: 0.95em 0;
  padding: 12px 15px;
  background:
    repeating-linear-gradient(135deg, rgba(170, 128, 54, 0.04) 0 9px, transparent 9px 18px),
    #fffaf0;
  border: 1px solid rgba(170, 128, 54, 0.32);
  border-left: 4px solid var(--system-accent);
  border-radius: 4px 14px 14px 4px;
  box-shadow: 0 8px 21px rgba(115, 86, 32, 0.1);
}

system-text {
  font-family: "Cascadia Mono", "SFMono-Regular", Consolas, "Microsoft YaHei", sans-serif;
  white-space: pre-line;
}

system-dialogue[data-kind="warning"],
system-dialogue[data-kind="error"] { --system-accent: #d44e60; }
system-dialogue[data-kind="trade"] { --system-accent: #b77923; }
system-dialogue[data-kind="success"] { --system-accent: #2d977c; }

/* ---------- 手机式综合状态栏 ---------- */

kx-phone,
kx-phone-frame,
kx-phone-top,
kx-portrait,
kx-portrait-copy,
kx-grid,
kx-cell,
kx-meters,
kx-meter,
kx-meter-head,
kx-track,
kx-track i,
kx-info {
  box-sizing: border-box;
}

kx-phone {
  display: block;
  width: min(100%, 500px);
  margin: 22px auto 16px;
  font-variant-numeric: tabular-nums;
}

kx-phone-frame {
  position: relative;
  display: block;
  padding: 13px 13px 15px;
  overflow: hidden;
  color: var(--kx-text) !important;
  -webkit-text-fill-color: var(--kx-text) !important;
  background:
    linear-gradient(145deg, rgba(91, 170, 151, 0.13), transparent 32%),
    linear-gradient(165deg, #fffef9, #f3eee2 72%);
  border: 2px solid rgba(170, 128, 54, 0.5);
  border-radius: 31px;
  box-shadow:
    inset 0 0 0 1px rgba(76, 174, 151, 0.09),
    inset 0 1px #fff,
    0 24px 58px rgba(59, 82, 74, 0.18);
}

kx-phone-frame::before {
  content: "";
  position: absolute;
  z-index: 4;
  top: 7px;
  left: 50%;
  width: 84px;
  height: 5px;
  transform: translateX(-50%);
  background: #c8d4cf;
  border: 1px solid rgba(67, 99, 91, 0.1);
  border-radius: 999px;
}

kx-phone-frame::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(105deg, transparent 16%, rgba(255, 255, 255, 0.3) 30%, transparent 44%);
}

kx-phone-top {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 7px 9px;
  color: var(--kx-muted) !important;
  -webkit-text-fill-color: var(--kx-muted) !important;
  font-size: 11px;
  letter-spacing: 0.08em;
}

kx-phone-top span {
  color: #785821 !important;
  -webkit-text-fill-color: #785821 !important;
  font-family: "STKaiti", "KaiTi", serif;
  font-size: 14px;
  letter-spacing: 0.12em;
}

kx-phone-top em {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-style: normal;
}

kx-portrait {
  position: relative;
  display: block;
  min-height: 320px;
  overflow: hidden;
  /* 白色画布位于所有立绘图片层下方，承接透明像素与 contain 留白。 */
  background-color: #fff;
  background-image: none;
  background-repeat: no-repeat;
  background-position: center bottom;
  background-size: contain;
  border: 1px solid rgba(56, 137, 119, 0.23);
  border-radius: 19px;
  box-shadow: inset 0 0 38px rgba(67, 92, 83, 0.12);
}

kx-portrait::before {
  content: "";
  position: absolute;
  inset: 0;
  display: grid;
  place-content: center;
  color: rgba(45, 82, 73, 0.42) !important;
  -webkit-text-fill-color: rgba(45, 82, 73, 0.42) !important;
  font-family: "STKaiti", "KaiTi", serif;
  font-size: 16px;
  line-height: 1.8;
  text-align: center;
  white-space: pre;
  letter-spacing: 0.12em;
}

kx-phone:not([data-portrait]) kx-portrait::before {
  content: var(--kx-portrait-placeholder);
}

kx-portrait-copy {
  position: absolute;
  z-index: 2;
  right: 16px;
  bottom: 14px;
  left: 16px;
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 12px;
}

kx-portrait-copy b {
  color: #2a4741 !important;
  -webkit-text-fill-color: #2a4741 !important;
  font-family: "STKaiti", "KaiTi", serif;
  font-size: 25px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-shadow: 0 2px 12px rgba(255, 255, 255, 0.82);
}

kx-portrait-copy span {
  max-width: 56%;
  padding: 3px 9px;
  overflow: hidden;
  color: #36534d !important;
  -webkit-text-fill-color: #36534d !important;
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
  background: rgba(255, 254, 249, 0.76);
  border: 1px solid rgba(64, 143, 126, 0.25);
  border-radius: 999px;
  backdrop-filter: blur(8px);
}

/* ---------- 立绘图片：URL由消息正则写入<img src>，CSS只负责画布与取景 ---------- */
kx-portrait > img.kx-portrait-image {
  position: absolute;
  z-index: 1;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center bottom;
}

kx-portrait > .kx-portrait-missing {
  position: absolute;
  z-index: 1;
  inset: 0;
  display: grid;
  place-items: center;
  color: rgba(45, 82, 73, 0.58) !important;
  -webkit-text-fill-color: rgba(45, 82, 73, 0.58) !important;
  font-family: "STKaiti", "KaiTi", serif;
  letter-spacing: 0.12em;
}

kx-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
  margin-top: 8px;
}

kx-cell {
  display: flex;
  min-width: 0;
  padding: 8px 10px;
  flex-direction: column;
  background: rgba(232, 244, 240, 0.88);
  border: 1px solid rgba(62, 139, 123, 0.17);
  border-radius: 10px;
}

kx-cell small,
kx-info small {
  color: var(--kx-muted) !important;
  -webkit-text-fill-color: var(--kx-muted) !important;
  font-size: 10px;
  letter-spacing: 0.08em;
}

kx-cell b {
  margin-top: 2px;
  overflow: hidden;
  color: #29443f !important;
  -webkit-text-fill-color: #29443f !important;
  font-size: 12px;
  font-weight: 550;
  text-overflow: ellipsis;
  white-space: nowrap;
}

kx-meters {
  display: grid;
  gap: 7px;
  margin: 10px 1px;
}

kx-meter {
  display: block;
  padding: 7px 9px 9px;
  background: rgba(255, 255, 252, 0.9);
  border: 1px solid rgba(73, 132, 120, 0.2);
  border-left: 3px solid var(--meter-color, var(--kx-jade));
  border-radius: 10px;
}

kx-meter-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 6px;
  color: var(--kx-text-soft) !important;
  -webkit-text-fill-color: var(--kx-text-soft) !important;
  font-size: 11.5px;
}

kx-meter-head strong {
  color: #304944 !important;
  -webkit-text-fill-color: #304944 !important;
  font-size: 11px;
  font-weight: 650;
}

kx-track {
  position: relative;
  display: block;
  height: 11px;
  overflow: hidden;
  background: #e5ece8;
  border: 1px solid rgba(67, 111, 101, 0.22);
  border-radius: 999px;
  box-shadow: inset 0 2px 4px rgba(68, 92, 84, 0.2);
}

kx-track::before {
  content: "";
  position: absolute;
  z-index: 2;
  inset: 0;
  pointer-events: none;
  background: repeating-linear-gradient(90deg, transparent 0 9%, rgba(50, 78, 70, 0.14) 9% 10%);
}

kx-track i {
  position: absolute;
  z-index: 1;
  inset: 0 auto 0 0;
  display: block;
  width: var(--kx-fill, 0%);
  height: 100%;
  overflow: hidden;
  transform-origin: left center;
  background:
    repeating-linear-gradient(135deg, rgba(255, 255, 255, 0.3) 0 7px, transparent 7px 14px),
    linear-gradient(90deg, var(--meter-dark, #277d6b), var(--meter-color, var(--kx-jade)));
  background-size: 20px 20px, 100% 100%;
  border-radius: inherit;
  box-shadow: 0 0 10px var(--meter-glow, rgba(76, 174, 151, 0.38));
  animation:
    kx-meter-reveal 0.9s cubic-bezier(0.2, 0.76, 0.24, 1) both,
    kx-meter-flow 0.85s linear 0.9s infinite;
}

kx-track[data-value="0"] { --kx-fill: 0%; }
kx-track[data-value="1"] { --kx-fill: 1%; }
kx-track[data-value="2"] { --kx-fill: 2%; }
kx-track[data-value="3"] { --kx-fill: 3%; }
kx-track[data-value="4"] { --kx-fill: 4%; }
kx-track[data-value="5"] { --kx-fill: 5%; }
kx-track[data-value="6"] { --kx-fill: 6%; }
kx-track[data-value="7"] { --kx-fill: 7%; }
kx-track[data-value="8"] { --kx-fill: 8%; }
kx-track[data-value="9"] { --kx-fill: 9%; }
kx-track[data-value="10"] { --kx-fill: 10%; }
kx-track[data-value="11"] { --kx-fill: 11%; }
kx-track[data-value="12"] { --kx-fill: 12%; }
kx-track[data-value="13"] { --kx-fill: 13%; }
kx-track[data-value="14"] { --kx-fill: 14%; }
kx-track[data-value="15"] { --kx-fill: 15%; }
kx-track[data-value="16"] { --kx-fill: 16%; }
kx-track[data-value="17"] { --kx-fill: 17%; }
kx-track[data-value="18"] { --kx-fill: 18%; }
kx-track[data-value="19"] { --kx-fill: 19%; }
kx-track[data-value="20"] { --kx-fill: 20%; }
kx-track[data-value="21"] { --kx-fill: 21%; }
kx-track[data-value="22"] { --kx-fill: 22%; }
kx-track[data-value="23"] { --kx-fill: 23%; }
kx-track[data-value="24"] { --kx-fill: 24%; }
kx-track[data-value="25"] { --kx-fill: 25%; }
kx-track[data-value="26"] { --kx-fill: 26%; }
kx-track[data-value="27"] { --kx-fill: 27%; }
kx-track[data-value="28"] { --kx-fill: 28%; }
kx-track[data-value="29"] { --kx-fill: 29%; }
kx-track[data-value="30"] { --kx-fill: 30%; }
kx-track[data-value="31"] { --kx-fill: 31%; }
kx-track[data-value="32"] { --kx-fill: 32%; }
kx-track[data-value="33"] { --kx-fill: 33%; }
kx-track[data-value="34"] { --kx-fill: 34%; }
kx-track[data-value="35"] { --kx-fill: 35%; }
kx-track[data-value="36"] { --kx-fill: 36%; }
kx-track[data-value="37"] { --kx-fill: 37%; }
kx-track[data-value="38"] { --kx-fill: 38%; }
kx-track[data-value="39"] { --kx-fill: 39%; }
kx-track[data-value="40"] { --kx-fill: 40%; }
kx-track[data-value="41"] { --kx-fill: 41%; }
kx-track[data-value="42"] { --kx-fill: 42%; }
kx-track[data-value="43"] { --kx-fill: 43%; }
kx-track[data-value="44"] { --kx-fill: 44%; }
kx-track[data-value="45"] { --kx-fill: 45%; }
kx-track[data-value="46"] { --kx-fill: 46%; }
kx-track[data-value="47"] { --kx-fill: 47%; }
kx-track[data-value="48"] { --kx-fill: 48%; }
kx-track[data-value="49"] { --kx-fill: 49%; }
kx-track[data-value="50"] { --kx-fill: 50%; }
kx-track[data-value="51"] { --kx-fill: 51%; }
kx-track[data-value="52"] { --kx-fill: 52%; }
kx-track[data-value="53"] { --kx-fill: 53%; }
kx-track[data-value="54"] { --kx-fill: 54%; }
kx-track[data-value="55"] { --kx-fill: 55%; }
kx-track[data-value="56"] { --kx-fill: 56%; }
kx-track[data-value="57"] { --kx-fill: 57%; }
kx-track[data-value="58"] { --kx-fill: 58%; }
kx-track[data-value="59"] { --kx-fill: 59%; }
kx-track[data-value="60"] { --kx-fill: 60%; }
kx-track[data-value="61"] { --kx-fill: 61%; }
kx-track[data-value="62"] { --kx-fill: 62%; }
kx-track[data-value="63"] { --kx-fill: 63%; }
kx-track[data-value="64"] { --kx-fill: 64%; }
kx-track[data-value="65"] { --kx-fill: 65%; }
kx-track[data-value="66"] { --kx-fill: 66%; }
kx-track[data-value="67"] { --kx-fill: 67%; }
kx-track[data-value="68"] { --kx-fill: 68%; }
kx-track[data-value="69"] { --kx-fill: 69%; }
kx-track[data-value="70"] { --kx-fill: 70%; }
kx-track[data-value="71"] { --kx-fill: 71%; }
kx-track[data-value="72"] { --kx-fill: 72%; }
kx-track[data-value="73"] { --kx-fill: 73%; }
kx-track[data-value="74"] { --kx-fill: 74%; }
kx-track[data-value="75"] { --kx-fill: 75%; }
kx-track[data-value="76"] { --kx-fill: 76%; }
kx-track[data-value="77"] { --kx-fill: 77%; }
kx-track[data-value="78"] { --kx-fill: 78%; }
kx-track[data-value="79"] { --kx-fill: 79%; }
kx-track[data-value="80"] { --kx-fill: 80%; }
kx-track[data-value="81"] { --kx-fill: 81%; }
kx-track[data-value="82"] { --kx-fill: 82%; }
kx-track[data-value="83"] { --kx-fill: 83%; }
kx-track[data-value="84"] { --kx-fill: 84%; }
kx-track[data-value="85"] { --kx-fill: 85%; }
kx-track[data-value="86"] { --kx-fill: 86%; }
kx-track[data-value="87"] { --kx-fill: 87%; }
kx-track[data-value="88"] { --kx-fill: 88%; }
kx-track[data-value="89"] { --kx-fill: 89%; }
kx-track[data-value="90"] { --kx-fill: 90%; }
kx-track[data-value="91"] { --kx-fill: 91%; }
kx-track[data-value="92"] { --kx-fill: 92%; }
kx-track[data-value="93"] { --kx-fill: 93%; }
kx-track[data-value="94"] { --kx-fill: 94%; }
kx-track[data-value="95"] { --kx-fill: 95%; }
kx-track[data-value="96"] { --kx-fill: 96%; }
kx-track[data-value="97"] { --kx-fill: 97%; }
kx-track[data-value="98"] { --kx-fill: 98%; }
kx-track[data-value="99"] { --kx-fill: 99%; }
kx-track[data-value="100"] { --kx-fill: 100%; }

kx-track i::after {
  content: "";
  position: absolute;
  z-index: 3;
  top: 0;
  bottom: 0;
  left: -38%;
  width: 32%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.72), transparent);
  transform: skewX(-18deg);
  pointer-events: none;
  animation: kx-meter-shine 1.75s ease-in-out 1.15s infinite;
}

kx-meter[data-kind="life"] {
  --meter-color: #ef6680;
  --meter-dark: #c93355;
  --meter-glow: rgba(223, 74, 108, 0.38);
}

kx-meter[data-kind="spirit"] {
  --meter-color: #56b8ee;
  --meter-dark: #287fb8;
  --meter-glow: rgba(46, 143, 202, 0.38);
}

kx-meter[data-kind="bond"] {
  --meter-color: #d179d5;
  --meter-dark: #a445a8;
  --meter-glow: rgba(177, 76, 181, 0.36);
}

@keyframes kx-meter-reveal {
  from { clip-path: inset(0 100% 0 0); }
  to { clip-path: inset(0 0 0 0); }
}

@keyframes kx-meter-flow {
  from { background-position: 0 0, 0 0; }
  to { background-position: 28px 0, 0 0; }
}

@keyframes kx-meter-shine {
  0%, 24% { left: -38%; opacity: 0; }
  38% { opacity: 0.95; }
  72%, 100% { left: 112%; opacity: 0; }
}

kx-info {
  display: grid;
  grid-template-columns: 80px minmax(0, 1fr);
  gap: 8px;
  padding: 8px 4px;
  border-top: 1px solid rgba(70, 137, 122, 0.15);
}

kx-info p {
  margin: 0 !important;
  color: #3c5550 !important;
  -webkit-text-fill-color: #3c5550 !important;
  font-size: 11.5px;
  line-height: 1.55;
}

kx-info.kx-goal {
  margin-top: 4px;
  padding: 10px;
  background: rgba(229, 207, 158, 0.2);
  border: 1px solid rgba(170, 128, 54, 0.23);
  border-radius: 11px;
}

/* ---------- 衣橱 ---------- */

.kx-wardrobe {
  margin-top: 9px;
  color: var(--kx-muted);
  background: rgba(246, 238, 248, 0.78);
  border: 1px solid rgba(173, 95, 156, 0.2);
  border-radius: 11px;
}

.kx-wardrobe summary {
  padding: 9px 11px;
  color: #7a3f69 !important;
  -webkit-text-fill-color: #7a3f69 !important;
  font-size: 11px;
  font-weight: 650;
  cursor: pointer;
  list-style-position: inside;
}

.kx-wardrobe p {
  margin: 0 !important;
  padding: 7px 11px;
  color: #4f4a58 !important;
  -webkit-text-fill-color: #4f4a58 !important;
  font-size: 11px;
  line-height: 1.58;
  border-top: 1px solid rgba(173, 95, 156, 0.13);
}

.kx-wardrobe b {
  margin-right: 0.45em;
  color: var(--kx-bond);
}
.kx-memory {
  margin-top: 9px;
  color: var(--kx-muted);
  background: rgba(236, 246, 242, 0.74);
  border: 1px solid rgba(58, 133, 116, 0.17);
  border-radius: 11px;
}

.kx-memory summary {
  padding: 9px 11px;
  color: #77551f !important;
  -webkit-text-fill-color: #77551f !important;
  font-size: 11px;
  cursor: pointer;
  list-style-position: inside;
}

.kx-memory p {
  margin: 0 !important;
  padding: 7px 11px;
  color: #465f59 !important;
  -webkit-text-fill-color: #465f59 !important;
  font-size: 11px;
  line-height: 1.55;
  border-top: 1px solid rgba(58, 133, 116, 0.12);
}

.kx-memory b {
  margin-right: 0.45em;
  color: var(--kx-jade);
}

/* ---------- 网站原生 suggested_questions 的候选样式钩子 ---------- */

#customized-answer-content [class*="suggested"] button,
#customized-answer-content [class*="suggestion"] button,
#customized-answer-content [class*="suggest-question"] button,
.suggested-question-button,
[id^="suggested-question-"] {
  box-sizing: border-box;
  width: 100%;
  min-height: 44px;
  padding: 10px 13px !important;
  color: #29443f !important;
  -webkit-text-fill-color: #29443f !important;
  font-weight: 600;
  line-height: 1.48;
  text-align: left;
  background:
    linear-gradient(90deg, rgba(76, 174, 151, 0.12), transparent 32%),
    #fffef9 !important;
  border: 1px solid rgba(60, 137, 120, 0.26) !important;
  border-left: 4px solid var(--kx-option-accent, var(--kx-jade)) !important;
  border-radius: 12px !important;
  box-shadow: 0 7px 18px rgba(58, 82, 73, 0.12), inset 0 1px #fff;
  transition: transform 0.18s ease, border-color 0.18s ease, filter 0.18s ease;
}

#customized-answer-content [class*="suggested"] button:nth-of-type(1),
#customized-answer-content [class*="suggestion"] button:nth-of-type(1),
#customized-answer-content [class*="suggest-question"] button:nth-of-type(1),
.suggested-question-button:nth-child(1) { --kx-option-accent: #65ddc2; }

#customized-answer-content [class*="suggested"] button:nth-of-type(2),
#customized-answer-content [class*="suggestion"] button:nth-of-type(2),
#customized-answer-content [class*="suggest-question"] button:nth-of-type(2),
.suggested-question-button:nth-child(2) { --kx-option-accent: #f09ab9; }

#customized-answer-content [class*="suggested"] button:nth-of-type(3),
#customized-answer-content [class*="suggestion"] button:nth-of-type(3),
#customized-answer-content [class*="suggest-question"] button:nth-of-type(3),
.suggested-question-button:nth-child(3) { --kx-option-accent: #72bfff; }

#customized-answer-content [class*="suggested"] button:nth-of-type(4),
#customized-answer-content [class*="suggestion"] button:nth-of-type(4),
#customized-answer-content [class*="suggest-question"] button:nth-of-type(4),
.suggested-question-button:nth-child(4) { --kx-option-accent: #f3bf63; }

#customized-answer-content [class*="suggested"] button:nth-of-type(5),
#customized-answer-content [class*="suggestion"] button:nth-of-type(5),
#customized-answer-content [class*="suggest-question"] button:nth-of-type(5),
.suggested-question-button:nth-child(5) { --kx-option-accent: #b89cf6; }

#customized-answer-content [class*="suggested"] button:hover,
#customized-answer-content [class*="suggestion"] button:hover,
#customized-answer-content [class*="suggest-question"] button:hover,
.suggested-question-button:hover,
[id^="suggested-question-"]:hover {
  color: #634617 !important;
  -webkit-text-fill-color: #634617 !important;
  border-color: rgba(170, 128, 54, 0.58) !important;
  transform: translateY(-1px);
  filter: brightness(1.09);
}

#customized-answer-content [class*="suggested"] button:focus-visible,
#customized-answer-content [class*="suggestion"] button:focus-visible,
#customized-answer-content [class*="suggest-question"] button:focus-visible,
.suggested-question-button:focus-visible,
[id^="suggested-question-"]:focus-visible {
  outline: 2px solid var(--kx-gold-soft) !important;
  outline-offset: 2px;
}

/* 扩展钩子：兼容按钮位于回答区外、或使用 role=button / 链接节点的平台。 */
:where([class*="suggested"], [class*="suggestion"], [class*="suggest-question"], [id*="suggested-question"], [id*="suggested_questions"]) {
  display: grid;
  gap: 8px;
}

:where([class*="suggested"], [class*="suggestion"], [class*="suggest-question"], [id*="suggested-question"], [id*="suggested_questions"])
:is(button, [role="button"], a),
:where([class*="suggested"], [class*="suggestion"], [class*="suggest-question"], [id*="suggested-question"], [id*="suggested_questions"])
:is(button, [role="button"], a) * {
  box-sizing: border-box;
  color: #29443f !important;
  -webkit-text-fill-color: #29443f !important;
}

:where([class*="suggested"], [class*="suggestion"], [class*="suggest-question"], [id*="suggested-question"], [id*="suggested_questions"])
:is(button, [role="button"], a) {
  width: 100%;
  min-height: 44px;
  padding: 10px 13px !important;
  font-weight: 650;
  line-height: 1.48;
  text-align: left;
  text-decoration: none !important;
  background: linear-gradient(90deg, color-mix(in srgb, var(--kx-option-accent, #4cae97) 13%, transparent), transparent 34%), #fffef9 !important;
  border: 1px solid rgba(60, 137, 120, 0.28) !important;
  border-left: 4px solid var(--kx-option-accent, #4cae97) !important;
  border-radius: 12px !important;
  box-shadow: 0 7px 18px rgba(58, 82, 73, 0.12), inset 0 1px #fff;
}

:where([class*="suggested"], [class*="suggestion"], [class*="suggest-question"], [id*="suggested-question"], [id*="suggested_questions"]) > :nth-child(1) { --kx-option-accent: #3db99d; }
:where([class*="suggested"], [class*="suggestion"], [class*="suggest-question"], [id*="suggested-question"], [id*="suggested_questions"]) > :nth-child(2) { --kx-option-accent: #d96b9d; }
:where([class*="suggested"], [class*="suggestion"], [class*="suggest-question"], [id*="suggested-question"], [id*="suggested_questions"]) > :nth-child(3) { --kx-option-accent: #459fe0; }
:where([class*="suggested"], [class*="suggestion"], [class*="suggest-question"], [id*="suggested-question"], [id*="suggested_questions"]) > :nth-child(4) { --kx-option-accent: #d99631; }
:where([class*="suggested"], [class*="suggestion"], [class*="suggest-question"], [id*="suggested-question"], [id*="suggested_questions"]) > :nth-child(5) { --kx-option-accent: #916bd2; }

/* 若平台未解析标签，至少让原始内容保持可读。 */
suggested_questions {
  display: block;
  margin: 14px 0 2px;
  padding: 11px 13px;
  color: var(--kx-muted);
  white-space: pre-line;
  background: rgba(255, 254, 249, 0.92);
  border: 1px solid var(--kx-line);
  border-radius: 12px;
}

/* ---------- 新旧CSS混载时的可读性硬锁 ---------- */

html body #customized-question-content {
  color: #263b38 !important;
  -webkit-text-fill-color: #263b38 !important;
  background: linear-gradient(145deg, #e5f3ef, #dcece8) !important;
  font-family: "Noto Sans SC", "Microsoft YaHei", "PingFang SC", system-ui, sans-serif !important;
}

html body #customized-answer-content {
  color: #263b38 !important;
  -webkit-text-fill-color: #263b38 !important;
  background: linear-gradient(135deg, rgba(210, 176, 103, 0.1), transparent 38%), linear-gradient(145deg, #fffef9, #f6f2e9) !important;
  font-family: "Noto Sans SC", "Microsoft YaHei", "PingFang SC", system-ui, sans-serif !important;
}

html body #customized-answer-content kx-phone-frame {
  background: linear-gradient(145deg, rgba(91, 170, 151, 0.13), transparent 32%), linear-gradient(165deg, #fffef9, #f3eee2 72%) !important;
}

html body #customized-answer-content kx-cell { background: rgba(232, 244, 240, 0.92) !important; }
html body #customized-answer-content kx-meter { background: rgba(255, 255, 252, 0.96) !important; }
html body #customized-answer-content kx-track { background: #e5ece8 !important; }
html body #customized-answer-content lqr-dialogue,
html body #customized-answer-content lqr-thought { background-color: rgba(249, 253, 249, 0.96) !important; }
html body #customized-answer-content player-dialogue { background-color: #f8fcff !important; }
html body #customized-answer-content system-dialogue { background-color: #fffaf0 !important; }

/* ---------- 整楼可读性锁之后恢复语义色 ---------- */

html body #customized-answer-content lqr-name {
  color: #785821 !important;
  -webkit-text-fill-color: #785821 !important;
}

html body #customized-answer-content lqr-dialogue lqr-text {
  color: #294b43 !important;
  -webkit-text-fill-color: #294b43 !important;
}

html body #customized-answer-content lqr-thought lqr-text {
  color: #49645e !important;
  -webkit-text-fill-color: #49645e !important;
}

html body #customized-answer-content player-name {
  color: var(--player-accent, #287eb7) !important;
  -webkit-text-fill-color: var(--player-accent, #287eb7) !important;
}

html body #customized-answer-content player-text {
  color: #28526d !important;
  -webkit-text-fill-color: #28526d !important;
}

html body #customized-answer-content system-name {
  color: var(--system-accent, #8c641f) !important;
  -webkit-text-fill-color: var(--system-accent, #8c641f) !important;
}

html body #customized-answer-content system-text {
  color: #6a4d20 !important;
  -webkit-text-fill-color: #6a4d20 !important;
}

html body #customized-answer-content kx-phone-top span,
html body #customized-answer-content .kx-memory summary,
html body #customized-answer-content .kx-wardrobe summary {
  color: #785821 !important;
  -webkit-text-fill-color: #785821 !important;
}

html body #customized-answer-content kx-cell small,
html body #customized-answer-content kx-info small,
html body #customized-answer-content kx-meter-head {
  color: #5a716c !important;
  -webkit-text-fill-color: #5a716c !important;
}

html body #customized-answer-content kx-meter-head strong,
html body #customized-answer-content kx-cell b,
html body #customized-answer-content kx-info p {
  color: #29443f !important;
  -webkit-text-fill-color: #29443f !important;
}

/* ---------- 窄屏 ---------- */

@media (max-width: 600px) {
  #customized-question-content,
  #customized-answer-content {
    line-height: 1.72;
    border-radius: 14px !important;
  }

  kx-phone {
    width: 100%;
    margin: 18px auto 12px;
  }

  kx-phone-frame {
    padding: 11px;
    border-radius: 25px;
  }

  kx-portrait {
    min-height: 260px;
  }

  kx-portrait-copy b {
    font-size: 21px;
  }

  kx-grid {
    gap: 6px;
  }

  kx-info {
    grid-template-columns: 70px minmax(0, 1fr);
  }

  lqr-dialogue,
  lqr-thought,
  player-dialogue,
  system-dialogue {
    grid-template-columns: 1fr;
    padding: 12px 13px;
  }

  lqr-name,
  player-name,
  system-name {
    justify-self: start;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
  }
}

/* ---------- next-themes 夜间主题 1/3：页面、消息与输入 ----------
 * 仅匹配平台原生 .dark 标记；不使用实时反色、图片滤镜或系统深色媒体查询。
 */
body:is(.dark *) {
  --kx-night: #101318;
  --kx-ink: #e6e2d9;
  --kx-panel: rgba(24, 28, 34, 0.97);
  --kx-panel-soft: rgba(29, 37, 40, 0.95);
  --kx-line: rgba(117, 180, 163, 0.25);
  --kx-line-bright: rgba(111, 205, 181, 0.5);
  --kx-jade: #70cbb4;
  --kx-jade-deep: #55b89f;
  --kx-gold: #d2ad66;
  --kx-gold-soft: #e1c27f;
  --kx-text: #e6e2d9;
  --kx-text-soft: #c5cbc6;
  --kx-muted: #9aa6a2;
  --kx-danger: #f0758a;
  --kx-warn: #e3a653;
  --kx-spirit: #68b5ea;
  --kx-bond: #da80cf;
  --kx-shadow: 0 18px 48px rgba(0, 0, 0, 0.34);
  color: var(--kx-text);
  background:
    radial-gradient(circle at 12% 4%, rgba(63, 138, 121, 0.16), transparent 34%),
    radial-gradient(circle at 88% 18%, rgba(167, 126, 55, 0.12), transparent 30%),
    linear-gradient(160deg, #0e1115 0%, #12191a 46%, #17140f 100%);
}

*:is(.dark *)::selection {
  color: #f4f0e7;
  background: rgba(69, 142, 125, 0.72);
}

#customized-model-selector:is(.dark *),
#customized-opening-statement-selector:is(.dark *) {
  color: #e6e2d9 !important;
  -webkit-text-fill-color: #e6e2d9 !important;
  background: rgba(24, 29, 33, 0.98) !important;
  border-color: rgba(111, 205, 181, 0.26) !important;
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.05), 0 8px 22px rgba(0, 0, 0, 0.26);
}

#header-setting-button:is(.dark *) {
  color: #e0c180 !important;
  -webkit-text-fill-color: #e0c180 !important;
  background: #211d17 !important;
  border-color: rgba(210, 173, 102, 0.36) !important;
}

#header-setting-button:hover:is(.dark *) {
  color: #f0d69d !important;
  -webkit-text-fill-color: #f0d69d !important;
  background: #2b2419 !important;
}

#customized-question-content:is(.dark *),
#customized-answer-content:is(.dark *) {
  color: #e6e2d9 !important;
  -webkit-text-fill-color: #e6e2d9 !important;
  border-color: rgba(111, 205, 181, 0.22) !important;
  box-shadow: 0 12px 34px rgba(0, 0, 0, 0.3);
}

#customized-question-content:is(.dark *) {
  color: #e6e2d9 !important;
  -webkit-text-fill-color: #e6e2d9 !important;
  background: linear-gradient(145deg, #172724, #14201f) !important;
}

#customized-answer-content:is(.dark *) {
  color: #e6e2d9 !important;
  -webkit-text-fill-color: #e6e2d9 !important;
  background:
    linear-gradient(135deg, rgba(189, 145, 67, 0.09), transparent 38%),
    linear-gradient(145deg, #181c21, #201d18) !important;
}

#customized-question-content *:is(.dark *),
#customized-answer-content *:is(.dark *) {
  color: #e6e2d9 !important;
  -webkit-text-fill-color: #e6e2d9 !important;
}

#customized-question-content strong:is(.dark *),
#customized-answer-content strong:is(.dark *) {
  color: #e2c27e !important;
  -webkit-text-fill-color: #e2c27e !important;
}

#customized-question-content a:is(.dark *),
#customized-answer-content a:is(.dark *) {
  color: #7bd5bd !important;
  -webkit-text-fill-color: #7bd5bd !important;
}

#customized-answer-content blockquote:is(.dark *) {
  color: #cdd4cf !important;
  -webkit-text-fill-color: #cdd4cf !important;
  background: rgba(83, 154, 138, 0.12);
  border-left-color: #55b89f;
}

#customized-reload-button:is(.dark *),
#customized-edit-button:is(.dark *),
#customized-resend-button:is(.dark *),
#customized-delete-button:is(.dark *),
#customized-create-image-button:is(.dark *),
#customized-create-audio-button:is(.dark *),
#customized-branch-and-share-button:is(.dark *),
#customized-prompt-log-button:is(.dark *) {
  color: #b8c2be !important;
  -webkit-text-fill-color: #b8c2be !important;
  background: rgba(27, 34, 36, 0.96) !important;
  border-color: rgba(111, 205, 181, 0.2) !important;
}

#customized-pagination:is(.dark *),
#ai-mod-button2:is(.dark *) {
  color: #b8c2be !important;
  -webkit-text-fill-color: #b8c2be !important;
  background: rgba(20, 25, 29, 0.97) !important;
  border-color: rgba(111, 205, 181, 0.22) !important;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.3);
}

#ai-mod-button:is(.dark *),
#customized-ai-summary-button:is(.dark *),
#customized-flow-button:is(.dark *),
#customized-comment-button:is(.dark *),
#customized-scroll-to-bottom-button:is(.dark *),
#toggle-sub-buttons:is(.dark *),
[id^="customized-shortcut-command-button-"]:is(.dark *) {
  color: #c4ceca !important;
  -webkit-text-fill-color: #c4ceca !important;
  background: #1c2927 !important;
  border-color: rgba(111, 205, 181, 0.2) !important;
}

#ai-chat-input:is(.dark *) {
  color: #ece8df !important;
  -webkit-text-fill-color: #ece8df !important;
  caret-color: #70cbb4;
  background: rgba(17, 21, 25, 0.99) !important;
  border-color: rgba(111, 205, 181, 0.28) !important;
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.04), 0 12px 34px rgba(0, 0, 0, 0.32);
}

#ai-chat-input:is(.dark *)::placeholder {
  color: #84918d !important;
  -webkit-text-fill-color: #84918d !important;
}

#ai-send-button:is(.dark *) {
  color: #10211e !important;
  -webkit-text-fill-color: #10211e !important;
  background: linear-gradient(135deg, #c9a85f, #70c7b0) !important;
}

/* ---------- next-themes 夜间主题 2/3：角色、玩家与系统话语卡 ---------- */
lqr-dialogue:is(.dark *),
lqr-thought:is(.dark *) {
  color: #e7e4dc !important;
  -webkit-text-fill-color: #e7e4dc !important;
  background-color: rgba(23, 31, 31, 0.97) !important;
  border-color: color-mix(in srgb, var(--lqr-accent, #70cbb4) 62%, #222b2c) !important;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.28);
}

lqr-name:is(.dark *) {
  color: var(--lqr-accent, #70cbb4) !important;
  -webkit-text-fill-color: var(--lqr-accent, #70cbb4) !important;
  background: rgba(112, 203, 180, 0.08);
}

lqr-text:is(.dark *),
lqr-thought lqr-text:is(.dark *) {
  color: #e0e4df !important;
  -webkit-text-fill-color: #e0e4df !important;
}

player-dialogue:is(.dark *) {
  color: #d7e5ee !important;
  -webkit-text-fill-color: #d7e5ee !important;
  background-color: #16232c !important;
  border-color: color-mix(in srgb, var(--player-accent, #68b5ea) 60%, #24323b) !important;
}

player-name:is(.dark *) {
  color: var(--player-accent, #68b5ea) !important;
  -webkit-text-fill-color: var(--player-accent, #68b5ea) !important;
  background: rgba(104, 181, 234, 0.09);
}

player-text:is(.dark *) {
  color: #d7e5ee !important;
  -webkit-text-fill-color: #d7e5ee !important;
}

system-dialogue:is(.dark *) {
  color: #e7d8b8 !important;
  -webkit-text-fill-color: #e7d8b8 !important;
  background-color: #272117 !important;
  border-color: color-mix(in srgb, var(--system-accent, #d2ad66) 62%, #352b1d) !important;
}

system-name:is(.dark *) {
  color: var(--system-accent, #d2ad66) !important;
  -webkit-text-fill-color: var(--system-accent, #d2ad66) !important;
  background: rgba(210, 173, 102, 0.09);
}

system-text:is(.dark *) {
  color: #e7d8b8 !important;
  -webkit-text-fill-color: #e7d8b8 !important;
}

/* ---------- next-themes 夜间主题 3/3：手机状态栏、衣橱与建议 ---------- */
kx-phone-frame:is(.dark *) {
  color: #e6e2d9 !important;
  -webkit-text-fill-color: #e6e2d9 !important;
  background: linear-gradient(180deg, rgba(23, 29, 33, 0.99), rgba(18, 23, 27, 0.99)) !important;
  border-color: rgba(210, 173, 102, 0.42) !important;
  box-shadow: 0 22px 56px rgba(0, 0, 0, 0.42), inset 0 0 0 1px rgba(112, 203, 180, 0.08) !important;
}

kx-phone-frame:is(.dark *)::before {
  border-color: rgba(112, 203, 180, 0.2);
}

kx-phone-top:is(.dark *) {
  color: #e6e2d9 !important;
  -webkit-text-fill-color: #e6e2d9 !important;
  background: rgba(29, 40, 40, 0.86);
  border-color: rgba(112, 203, 180, 0.18);
}

kx-phone-top span:is(.dark *) {
  color: #e0c180 !important;
  -webkit-text-fill-color: #e0c180 !important;
}

kx-phone-top em:is(.dark *),
kx-cell small:is(.dark *),
kx-info small:is(.dark *),
kx-meter-head:is(.dark *) {
  color: #9eaaa6 !important;
  -webkit-text-fill-color: #9eaaa6 !important;
}

kx-portrait:is(.dark *) {
  color: #36534d !important;
  -webkit-text-fill-color: #36534d !important;
  background-color: #fff !important;
  border-color: rgba(112, 203, 180, 0.2);
  box-shadow: inset 0 0 38px rgba(0, 0, 0, 0.24);
}

kx-portrait-copy b:is(.dark *) {
  color: #2a4741 !important;
  -webkit-text-fill-color: #2a4741 !important;
  text-shadow: 0 2px 12px rgba(255, 255, 255, 0.82);
}

kx-portrait-copy span:is(.dark *) {
  color: #d0d8d3 !important;
  -webkit-text-fill-color: #d0d8d3 !important;
  background: rgba(16, 21, 24, 0.78);
  border-color: rgba(112, 203, 180, 0.22);
}

kx-cell:is(.dark *) {
  color: #dde3df !important;
  -webkit-text-fill-color: #dde3df !important;
  background: rgba(27, 38, 37, 0.92) !important;
  border-color: rgba(112, 203, 180, 0.15);
}

kx-cell b:is(.dark *),
kx-meter-head strong:is(.dark *),
kx-info p:is(.dark *) {
  color: #dde3df !important;
  -webkit-text-fill-color: #dde3df !important;
}

kx-meter:is(.dark *) {
  color: #dde3df !important;
  -webkit-text-fill-color: #dde3df !important;
  background: rgba(25, 30, 34, 0.97) !important;
  border-color: rgba(112, 203, 180, 0.18);
}

kx-track:is(.dark *) {
  color: #dde3df !important;
  -webkit-text-fill-color: #dde3df !important;
  background: #11171a !important;
  border-color: rgba(154, 176, 168, 0.22);
  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.48);
}

kx-info:is(.dark *) {
  border-top-color: rgba(112, 203, 180, 0.13);
}

kx-info.kx-goal:is(.dark *) {
  color: #e6e2d9 !important;
  -webkit-text-fill-color: #e6e2d9 !important;
  background: rgba(174, 132, 58, 0.12);
  border-color: rgba(210, 173, 102, 0.22);
}

.kx-wardrobe:is(.dark *) {
  color: #b2b9b6;
  background: rgba(47, 29, 45, 0.78);
  border-color: rgba(218, 128, 207, 0.22);
}

.kx-wardrobe summary:is(.dark *) {
  color: #e2a3d9 !important;
  -webkit-text-fill-color: #e2a3d9 !important;
}

.kx-wardrobe p:is(.dark *) {
  color: #dbd4dd !important;
  -webkit-text-fill-color: #dbd4dd !important;
  border-top-color: rgba(218, 128, 207, 0.14);
}

.kx-memory:is(.dark *) {
  color: #aeb8b4;
  background: rgba(24, 39, 36, 0.78);
  border-color: rgba(112, 203, 180, 0.18);
}

.kx-memory summary:is(.dark *) {
  color: #dfc184 !important;
  -webkit-text-fill-color: #dfc184 !important;
}

.kx-memory p:is(.dark *) {
  color: #d3dad6 !important;
  -webkit-text-fill-color: #d3dad6 !important;
  border-top-color: rgba(112, 203, 180, 0.12);
}

#customized-answer-content [class*="suggested"] button:is(.dark *),
#customized-answer-content [class*="suggestion"] button:is(.dark *),
#customized-answer-content [class*="suggest-question"] button:is(.dark *),
.suggested-question-button:is(.dark *),
[id^="suggested-question-"]:is(.dark *) {
  color: #dfe5e1 !important;
  -webkit-text-fill-color: #dfe5e1 !important;
  background: linear-gradient(90deg, rgba(112, 203, 180, 0.08), transparent 32%), #191e22 !important;
  border-color: rgba(112, 203, 180, 0.24) !important;
  box-shadow: 0 7px 18px rgba(0, 0, 0, 0.26), inset 0 1px rgba(255, 255, 255, 0.04);
}

suggested_questions:is(.dark *) {
  color: #aeb8b4;
  -webkit-text-fill-color: #aeb8b4;
  background: #181d21;
  border-color: rgba(112, 203, 180, 0.2);
}

/* 最终可读性锁：有背景的自定义组件在夜间均显式指定文字色，避免灰底黑字。 */
html body #customized-question-content:is(.dark *),
html body #customized-answer-content:is(.dark *),
html body #customized-answer-content *:is(.dark *) {
  color: #e6e2d9 !important;
  -webkit-text-fill-color: #e6e2d9 !important;
}

html body #customized-answer-content kx-phone-frame:is(.dark *) {
  color: #e6e2d9 !important;
  -webkit-text-fill-color: #e6e2d9 !important;
  background: linear-gradient(180deg, rgba(23, 29, 33, 0.99), rgba(18, 23, 27, 0.99)) !important;
}

html body #customized-answer-content kx-cell:is(.dark *) {
  color: #dde3df !important;
  -webkit-text-fill-color: #dde3df !important;
  background: rgba(27, 38, 37, 0.92) !important;
}

html body #customized-answer-content kx-meter:is(.dark *) {
  color: #dde3df !important;
  -webkit-text-fill-color: #dde3df !important;
  background: rgba(25, 30, 34, 0.97) !important;
}

html body #customized-answer-content kx-track:is(.dark *) {
  color: #dde3df !important;
  -webkit-text-fill-color: #dde3df !important;
  background: #11171a !important;
}

html body #customized-answer-content lqr-dialogue:is(.dark *),
html body #customized-answer-content lqr-thought:is(.dark *) {
  color: #e7e4dc !important;
  -webkit-text-fill-color: #e7e4dc !important;
  background-color: rgba(23, 31, 31, 0.97) !important;
}

html body #customized-answer-content player-dialogue:is(.dark *) {
  color: #d7e5ee !important;
  -webkit-text-fill-color: #d7e5ee !important;
  background-color: #16232c !important;
}

html body #customized-answer-content system-dialogue:is(.dark *) {
  color: #e7d8b8 !important;
  -webkit-text-fill-color: #e7d8b8 !important;
  background-color: #272117 !important;
}

html body #customized-answer-content lqr-name:is(.dark *) {
  color: var(--lqr-accent, #70cbb4) !important;
  -webkit-text-fill-color: var(--lqr-accent, #70cbb4) !important;
}

html body #customized-answer-content lqr-dialogue lqr-text:is(.dark *),
html body #customized-answer-content lqr-thought lqr-text:is(.dark *) {
  color: #e0e4df !important;
  -webkit-text-fill-color: #e0e4df !important;
}

html body #customized-answer-content player-name:is(.dark *) {
  color: var(--player-accent, #68b5ea) !important;
  -webkit-text-fill-color: var(--player-accent, #68b5ea) !important;
}

html body #customized-answer-content player-text:is(.dark *) {
  color: #d7e5ee !important;
  -webkit-text-fill-color: #d7e5ee !important;
}

html body #customized-answer-content system-name:is(.dark *) {
  color: var(--system-accent, #d2ad66) !important;
  -webkit-text-fill-color: var(--system-accent, #d2ad66) !important;
}

html body #customized-answer-content system-text:is(.dark *) {
  color: #e7d8b8 !important;
  -webkit-text-fill-color: #e7d8b8 !important;
}

html body #customized-answer-content kx-phone-top span:is(.dark *),
html body #customized-answer-content .kx-memory summary:is(.dark *) {
  color: #dfc184 !important;
  -webkit-text-fill-color: #dfc184 !important;
}

html body #customized-answer-content .kx-wardrobe summary:is(.dark *) {
  color: #e2a3d9 !important;
  -webkit-text-fill-color: #e2a3d9 !important;
}

html body #customized-answer-content kx-cell small:is(.dark *),
html body #customized-answer-content kx-info small:is(.dark *),
html body #customized-answer-content kx-meter-head:is(.dark *) {
  color: #9eaaa6 !important;
  -webkit-text-fill-color: #9eaaa6 !important;
}

html body #customized-answer-content kx-meter-head strong:is(.dark *),
html body #customized-answer-content kx-cell b:is(.dark *),
html body #customized-answer-content kx-info p:is(.dark *) {
  color: #dde3df !important;
  -webkit-text-fill-color: #dde3df !important;
}
