/* =========================================================
   动态现实世界 · 超详细版
   现实档案卡片 / 小说阅读页
   - 正文固定 14px，首行缩进两格，紧凑易读
   - 辅助信息最小 12.5px
   - 适配主规则的自定义标签与嵌套 details 结构
   ========================================================= */
:root {
  --rw-page: #e9e6df;
  --rw-paper: #fffdf8;
  --rw-paper-warm: #fff9ef;
  --rw-ink: #2d2a27;
  --rw-muted: #716b63;
  --rw-faint: #928b82;
  --rw-line: rgba(91, 80, 65, 0.20);
  --rw-line-strong: rgba(91, 80, 65, 0.32);
  --rw-shadow: rgba(53, 44, 34, 0.10);
  --rw-shadow-soft: rgba(53, 44, 34, 0.055);
  --rw-slate: #596d80;
  --rw-slate-deep: #395166;
  --rw-slate-soft: #e5edf2;
  --rw-slate-head: #d4e0e8;
  --rw-gold: #9a7134;
  --rw-gold-deep: #76501d;
  --rw-gold-soft: #fff0d2;
  --rw-gold-head: #f0d6a2;
  --rw-green: #657a56;
  --rw-green-deep: #49623c;
  --rw-green-soft: #e7efdf;
  --rw-green-head: #d3e2c7;
  --rw-purple: #756681;
  --rw-purple-deep: #594666;
  --rw-purple-soft: #eee7f1;
  --rw-purple-head: #ddd1e4;
  --rw-rose: #97645b;
  --rw-rose-deep: #74453e;
  --rw-rose-soft: #f5e2dc;
  --rw-rose-head: #e8c8be;
  --rw-teal: #477d78;
  --rw-teal-deep: #2f615d;
  --rw-teal-soft: #dcefeb;
  --rw-teal-head: #c5e1db;
  --rw-radius-lg: 14px;
  --rw-radius-md: 10px;
  --rw-radius-sm: 7px;
  --rw-font: "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", system-ui, sans-serif;
  --rw-serif: "Songti SC", "STSong", "SimSun", serif;
  --rw-mono: "Cascadia Mono", "SFMono-Regular", Consolas, monospace;
}
*,
*::before,
*::after {
  box-sizing: border-box;
}
html {
  background: var(--rw-page);
}
body {
  max-width: 1000px;
  margin: 0 auto;
  padding: 18px 16px 42px;
  color: var(--rw-ink);
  background:
    radial-gradient(circle at 8% 0%, rgba(255, 255, 255, 0.78), transparent 28rem),
    radial-gradient(circle at 100% 18%, rgba(232, 220, 196, 0.38), transparent 27rem),
    linear-gradient(155deg, #f1eee7 0%, var(--rw-page) 55%, #e4e2dc 100%);
  font-family: var(--rw-font);
  font-size: 13px;
  line-height: 1.64;
  word-break: break-word;
  overflow-wrap: anywhere;
}
settings,
intent-check,
time,
txt,
panel,
character,
card,
recommend,
scene,
info,
lb,
l,
choice {
  display: block;
}
/* =========================================================
   公共外层卡片与章节条
   ========================================================= */
settings,
intent-check,
time,
txt,
panel,
character,
card,
recommend {
  position: relative;
  width: 100%;
  margin: 0 0 12px;
  border: 2px solid var(--rw-line-strong);
  border-radius: var(--rw-radius-lg);
  background: var(--rw-paper);
  box-shadow: 0 9px 24px rgba(53, 44, 34, 0.16), 0 2px 6px rgba(53, 44, 34, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.94);
  overflow: hidden;
}
settings::before,
intent-check::before,
time::before,
txt::before,
panel::before,
character::before,
card::before,
recommend::before {
  display: block;
  position: relative;
  min-height: 39px;
  padding: 9px 14px 8px 38px;
  border-bottom: 1px solid var(--rw-line);
  color: var(--rw-slate-deep);
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.64), rgba(255, 255, 255, 0.08)),
    var(--rw-slate-head);
  font-size: 13px;
  font-weight: 850;
  letter-spacing: 0.08em;
  line-height: 1.5;
}
settings::after,
intent-check::after,
time::after,
txt::after,
panel::after,
character::after,
card::after,
recommend::after {
  position: absolute;
  top: 13px;
  left: 15px;
  width: 11px;
  height: 11px;
  border: 2px solid currentColor;
  border-radius: 50%;
  content: "";
  opacity: 0.72;
}
settings::before { content: "系统设置"; }
intent-check::before { content: "玩家意图检查"; }
time::before { content: "本轮时间"; }
txt::before { content: "正文"; }
panel::before { content: "事件与角色动态"; }
character::before { content: "人物档案"; }
card::before { content: "关系与认知记录"; }
recommend::before { content: "后续行动"; }
/* =========================================================
   settings：系统开关
   ========================================================= */
settings {
  padding: 0 12px 12px;
  --accent: var(--rw-slate);
  --accent-deep: var(--rw-slate-deep);
  --item-bg: var(--rw-slate-soft);
}
settings::before {
  margin: 0 -12px;
}
settings span {
  display: inline-flex;
  align-items: center;
  min-height: 27px;
  margin: 9px 6px 0 0;
  padding: 4px 10px;
  border: 1px solid rgba(57, 81, 102, 0.25);
  border-radius: 999px;
  color: var(--rw-slate-deep);
  background: linear-gradient(180deg, rgba(255,255,255,0.78), rgba(255,255,255,0.16)), var(--rw-slate-soft);
  font-size: 12.5px;
  font-weight: 750;
  line-height: 1.35;
}
/* =========================================================
   lb：字段-内容小卡片
   ========================================================= */
lb {
  display: grid;
  grid-template-columns: 94px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  margin: 0 0 7px;
  padding: 8px 10px;
  border: 1px solid var(--accent, var(--rw-slate));
  border-left: 3px solid var(--accent, var(--rw-slate));
  border-radius: 4px;
  color: var(--rw-ink);
  background: var(--item-bg, var(--rw-slate-soft));
  box-shadow: none;
  font-size: 13px;
  line-height: 1.64;
}
lb:last-child {
  margin-bottom: 0;
}
lb > b {
  display: block;
  padding-top: 1px;
  color: var(--accent-deep, var(--rw-slate-deep));
  font-size: 12.5px;
  font-weight: 850;
  line-height: 1.52;
  white-space: nowrap;
}
/* =========================================================
   l：结构化换行块
   ========================================================= */
l {
  margin: 0 0 6px;
}
l:last-child {
  margin-bottom: 0;
}
/* =========================================================
   intent-check：紫灰审阅卡
   ========================================================= */
intent-check {
  --accent: var(--rw-purple);
  --accent-deep: var(--rw-purple-deep);
  --item-bg: var(--rw-purple-soft);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
  border-color: rgba(117, 102, 129, 0.30);
  background: linear-gradient(145deg, rgba(255,255,255,0.70), rgba(255,255,255,0.10)), var(--rw-purple-soft);
  padding: 0 12px 12px;
}
intent-check::before {
  grid-column: 1 / -1;
  margin: 0 -12px;
  color: var(--rw-purple-deep);
  background: linear-gradient(90deg, rgba(255,255,255,0.65), rgba(255,255,255,0.06)), var(--rw-purple-head);
}
intent-check::after {
  color: var(--rw-purple-deep);
}
intent-check > lb:first-of-type {
  grid-column: 1 / -1;
}
/* =========================================================
   time：蓝色双时间卡
   ========================================================= */
time {
  --accent: var(--rw-slate);
  --accent-deep: var(--rw-slate-deep);
  --item-bg: var(--rw-slate-soft);
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
  padding: 0 12px 12px;
}
time::before {
  grid-column: 1 / -1;
  margin: 0 -12px;
}
time::after {
  color: var(--rw-slate-deep);
}
time lb {
  margin: 0;
  font-family: var(--rw-mono);
  font-size: 12.5px;
}
/* =========================================================
   txt：小说正文，阅读优先
   ========================================================= */
txt {
  border-color: rgba(154, 113, 52, 0.28);
  background:
    radial-gradient(circle at 15% 8%, rgba(255,255,255,0.88), transparent 24rem),
    linear-gradient(180deg, #fffdf8 0%, var(--rw-paper-warm) 100%);
  box-shadow: 0 7px 20px rgba(91, 67, 31, 0.08), inset 0 1px 0 rgba(255,255,255,0.9);
  padding: 0 22px 21px;
}
txt::before {
  margin: 0 -22px;
  color: var(--rw-gold-deep);
  background:
    linear-gradient(90deg, rgba(255,255,255,0.68), rgba(255,255,255,0.08)),
    var(--rw-gold-head);
}
txt::after {
  color: var(--rw-gold-deep);
}
txt p {
  margin: 0 0 0.52em;
  color: var(--rw-ink);
  font-family: var(--rw-serif);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.82;
  letter-spacing: 0.012em;
  text-align: justify;
  text-indent: 2em;
}
txt p:first-of-type {
  margin-top: 13px;
}
txt p:last-child {
  margin-bottom: 0;
}
/* =========================================================
   details：通用折叠结构
   ========================================================= */
details {
  display: block;
}
details > summary {
  display: block;
  position: relative;
  min-height: 39px;
  padding: 9px 13px 8px 34px;
  color: var(--rw-slate-deep);
  border: 1px solid rgba(57, 81, 102, 0.22);
  border-radius: var(--rw-radius-md);
  background: linear-gradient(180deg, rgba(255,255,255,0.72), rgba(255,255,255,0.10)), var(--rw-slate-soft);
  cursor: pointer;
  font-size: 13px;
  font-weight: 850;
  letter-spacing: 0.025em;
  line-height: 1.55;
  list-style: none;
  transition: background 0.16s ease, border-color 0.16s ease;
}
details > summary::-webkit-details-marker {
  display: none;
}
details > summary::before {
  position: absolute;
  top: 10px;
  left: 13px;
  color: currentColor;
  content: "▸";
  font-size: 14px;
  font-weight: 900;
  line-height: 1.45;
}
details[open] > summary::before {
  content: "▾";
}
details > summary:hover {
  border-color: rgba(57, 81, 102, 0.38);
}
/* =========================================================
   panel：目标与事件，绿色语义
   ========================================================= */
panel {
  --accent: var(--rw-green);
  --accent-deep: var(--rw-green-deep);
  --item-bg: var(--rw-green-soft);
  border-color: rgba(101, 122, 86, 0.28);
  background: linear-gradient(145deg, rgba(255,255,255,0.72), rgba(255,255,255,0.08)), var(--rw-green-soft);
  padding: 0 12px 12px;
}
panel::before {
  margin: 0 -12px;
  color: var(--rw-green-deep);
  background: linear-gradient(90deg, rgba(255,255,255,0.68), rgba(255,255,255,0.08)), var(--rw-green-head);
}
panel::after {
  color: var(--rw-green-deep);
}
panel > details {
  margin-top: 9px;
}
panel > details > summary,
panel details details > summary {
  color: var(--rw-green-deep);
  border-color: rgba(73, 98, 60, 0.25);
  background: linear-gradient(180deg, rgba(255,255,255,0.72), rgba(255,255,255,0.10)), var(--rw-green-soft);
}
panel details details {
  margin: 8px 0 0;
  padding: 0 0 0 8px;
  border-left: 1px dashed rgba(73, 98, 60, 0.35);
}
panel details[open] > summary {
  margin-bottom: 8px;
}
panel details[open] > lb,
panel details details[open] > lb {
  margin-left: 8px;
  margin-right: 2px;
}
panel lb > b:first-child {
  color: var(--rw-green-deep);
}
/* =========================================================
   character：人物档案，蓝灰主卡
   ========================================================= */
character {
  border-color: rgba(89, 109, 128, 0.30);
  background: linear-gradient(145deg, rgba(255,255,255,0.74), rgba(255,255,255,0.08)), #f2f6f8;
  padding: 0 12px 12px;
}
character::before {
  margin: 0 -12px;
}
character::after {
  color: var(--rw-slate-deep);
}
character > details {
  margin-top: 10px;
  padding: 0 9px 9px;
  border: 1px solid rgba(89, 109, 128, 0.28);
  border-radius: var(--rw-radius-lg);
  background: rgba(255,255,255,0.56);
  box-shadow: 0 3px 9px rgba(57, 81, 102, 0.055), inset 0 1px 0 rgba(255,255,255,0.8);
}
character > details > summary {
  margin: 0 -9px;
  border-color: transparent;
  border-radius: var(--rw-radius-lg) var(--rw-radius-lg) 0 0;
  color: var(--rw-slate-deep);
  background: linear-gradient(90deg, rgba(255,255,255,0.72), rgba(255,255,255,0.08)), var(--rw-slate-head);
}
character > details[open] > summary {
  margin-bottom: 9px;
  border-bottom: 1px solid rgba(57, 81, 102, 0.22);
}
/* scene / info 在角色档案中均为独立信息区 */
character scene,
character info,
character > details > details {
  display: block;
  margin: 0 0 9px;
  border: 1px solid rgba(89, 109, 128, 0.22);
  border-radius: var(--rw-radius-md);
  overflow: hidden;
}
character scene,
character info {
  --accent: var(--rw-slate);
  --accent-deep: var(--rw-slate-deep);
  --item-bg: var(--rw-slate-soft);
  padding: 0 8px 8px;
  background: linear-gradient(145deg, rgba(255,255,255,0.65), rgba(255,255,255,0.10)), var(--rw-slate-soft);
}
character scene::before,
character info::before {
  display: block;
  margin: 0 -8px 8px;
  padding: 8px 11px;
  color: var(--rw-slate-deep);
  border-bottom: 1px solid rgba(57, 81, 102, 0.20);
  background: var(--rw-slate-head);
  font-size: 12.5px;
  font-weight: 850;
  letter-spacing: 0.05em;
}
character scene::before { content: "场景信息"; }
character info::before { content: "基础信息"; }
character scene lb,
character info lb {
  margin-bottom: 6px;
}
character > details > details > summary {
  border: 0;
  border-radius: 0;
}
character > details > details[open] > summary {
  margin-bottom: 8px;
  border-bottom: 1px solid var(--rw-line);
}
/* 人格 / 模拟偏向：紫灰 */
character details.personality {
  --accent: var(--rw-purple);
  --accent-deep: var(--rw-purple-deep);
  --item-bg: var(--rw-purple-soft);
  border-color: rgba(117, 102, 129, 0.30);
  background: linear-gradient(145deg, rgba(255,255,255,0.66), rgba(255,255,255,0.08)), var(--rw-purple-soft);
}
character details.personality > summary {
  color: var(--rw-purple-deep);
  background: linear-gradient(90deg, rgba(255,255,255,0.70), rgba(255,255,255,0.08)), var(--rw-purple-head);
}
/* 私密信息：柔和玫瑰灰 */
character details.sexual {
  --accent: var(--rw-rose);
  --accent-deep: var(--rw-rose-deep);
  --item-bg: var(--rw-rose-soft);
  border-color: rgba(151, 100, 91, 0.30);
  background: linear-gradient(145deg, rgba(255,255,255,0.66), rgba(255,255,255,0.08)), var(--rw-rose-soft);
}
character details.sexual > summary {
  color: var(--rw-rose-deep);
  background: linear-gradient(90deg, rgba(255,255,255,0.70), rgba(255,255,255,0.08)), var(--rw-rose-head);
}
/* 心理信息：蓝紫色 */
character details.mind {
  --accent: var(--rw-purple);
  --accent-deep: var(--rw-purple-deep);
  --item-bg: #e8edf5;
  border-color: rgba(89, 102, 130, 0.28);
  background: linear-gradient(145deg, rgba(255,255,255,0.66), rgba(255,255,255,0.08)), #e8edf5;
}
character details.mind > summary {
  color: #475d78;
  background: linear-gradient(90deg, rgba(255,255,255,0.70), rgba(255,255,255,0.08)), #d3deeb;
}
/* 财务信息：绿色 */
character details.finance {
  --accent: var(--rw-green);
  --accent-deep: var(--rw-green-deep);
  --item-bg: var(--rw-green-soft);
  border-color: rgba(101, 122, 86, 0.30);
  background: linear-gradient(145deg, rgba(255,255,255,0.66), rgba(255,255,255,0.08)), var(--rw-green-soft);
}
character details.finance > summary {
  color: var(--rw-green-deep);
  background: linear-gradient(90deg, rgba(255,255,255,0.70), rgba(255,255,255,0.08)), var(--rw-green-head);
}
character > details > details[open] > lb {
  margin-left: 8px;
  margin-right: 8px;
}
/* 人格信息中为连续 span 的情况 */
character details.personality span {
  display: inline-flex;
  align-items: center;
  min-height: 27px;
  margin: 0 0 7px 8px;
  padding: 3px 8px;
  border: 1px solid rgba(89, 70, 102, 0.20);
  border-radius: 999px;
  color: var(--rw-purple-deep);
  background: rgba(255,255,255,0.52);
  font-size: 12.5px;
  font-weight: 700;
  line-height: 1.35;
}
/* =========================================================
   card：关系网与已知信息，青绿色
   ========================================================= */
card {
  --accent: var(--rw-teal);
  --accent-deep: var(--rw-teal-deep);
  --item-bg: var(--rw-teal-soft);
  border-color: rgba(71, 125, 120, 0.28);
  background: linear-gradient(145deg, rgba(255,255,255,0.72), rgba(255,255,255,0.08)), var(--rw-teal-soft);
  padding: 0 12px 12px;
}
card::before {
  margin: 0 -12px;
  color: var(--rw-teal-deep);
  background: linear-gradient(90deg, rgba(255,255,255,0.68), rgba(255,255,255,0.08)), var(--rw-teal-head);
}
card::after {
  color: var(--rw-teal-deep);
}
card > details {
  margin-top: 9px;
}
card details > summary {
  color: var(--rw-teal-deep);
  border-color: rgba(47, 97, 93, 0.24);
  background: linear-gradient(180deg, rgba(255,255,255,0.72), rgba(255,255,255,0.10)), var(--rw-teal-soft);
}
card details[open] > summary {
  margin-bottom: 8px;
}
card details details {
  margin: 8px 0 0 8px;
  padding-left: 8px;
  border-left: 1px dashed rgba(47, 97, 93, 0.35);
}
card details details[open] {
  padding-bottom: 1px;
}
card l {
  margin: 0 0 6px;
}
card l:last-child {
  margin-bottom: 0;
}
card details[open] > :not(summary):not(details) {
  display: block;
  margin: 0 8px 7px;
  padding: 8px 10px;
  border: 1px solid rgba(47, 97, 93, 0.20);
  border-left: 4px solid var(--rw-teal);
  border-radius: var(--rw-radius-sm);
  background: rgba(255,255,255,0.45);
  font-size: 13px;
  line-height: 1.62;
}
/* =========================================================
   recommend：三张差异化选项卡
   ========================================================= */
recommend {
  border-color: rgba(154, 113, 52, 0.29);
  background: linear-gradient(145deg, rgba(255,255,255,0.72), rgba(255,255,255,0.08)), #fff7e7;
  padding: 0 12px 12px;
}
recommend::before {
  margin: 0 -12px;
  color: var(--rw-gold-deep);
  background: linear-gradient(90deg, rgba(255,255,255,0.68), rgba(255,255,255,0.08)), var(--rw-gold-head);
}
recommend::after {
  color: var(--rw-gold-deep);
}
recommend choice {
  --choice: var(--rw-gold);
  --choice-deep: var(--rw-gold-deep);
  --choice-bg: var(--rw-gold-soft);
  position: relative;
  margin-top: 9px;
  padding: 10px 12px 10px 14px;
  border: 1px solid color-mix(in srgb, var(--choice) 32%, transparent);
  border-left: 4px solid var(--choice);
  border-radius: var(--rw-radius-md);
  color: var(--rw-ink);
  background: linear-gradient(145deg, rgba(255,255,255,0.72), rgba(255,255,255,0.08)), var(--choice-bg);
  box-shadow: 0 2px 7px rgba(78, 57, 25, 0.05), inset 0 1px 0 rgba(255,255,255,0.72);
  font-size: 13px;
  line-height: 1.64;
}
recommend choice:nth-of-type(2) {
  --choice: var(--rw-slate);
  --choice-deep: var(--rw-slate-deep);
  --choice-bg: var(--rw-slate-soft);
}
recommend choice:nth-of-type(3) {
  --choice: var(--rw-green);
  --choice-deep: var(--rw-green-deep);
  --choice-bg: var(--rw-green-soft);
}
recommend choice > b {
  display: inline-flex;
  align-items: center;
  min-height: 23px;
  margin-bottom: 6px;
  padding: 2px 8px;
  border: 1px solid color-mix(in srgb, var(--choice) 34%, transparent);
  border-radius: 999px;
  color: var(--choice-deep);
  background: rgba(255,255,255,0.54);
  font-size: 12.5px;
  font-weight: 900;
  letter-spacing: 0.025em;
}
recommend choice > l {
  margin: 0 0 5px;
}
recommend choice > l:last-child {
  margin-bottom: 0;
}
/* =========================================================
   统一视觉层级：区域框 → 展开卡片 → lb 装饰框
   ========================================================= */
settings,
time,
character {
  --area-bg: #edf2f5;
  --area-border: #8a9aa8;
  --area-head: var(--rw-slate-head);
  --accent: var(--rw-slate);
  --accent-deep: var(--rw-slate-deep);
  --item-bg: var(--rw-slate-soft);
  --item-border: #8a9aa8;
  --item-accent: #596d80;
}
intent-check {
  --area-bg: #f1ebf3;
  --area-border: #9b8aa5;
  --area-head: var(--rw-purple-head);
  --accent: var(--rw-purple);
  --accent-deep: var(--rw-purple-deep);
  --item-bg: var(--rw-purple-soft);
  --item-border: #9b8aa5;
  --item-accent: #756681;
}
txt,
recommend {
  --area-bg: #fff8e9;
  --area-border: #b99051;
  --area-head: var(--rw-gold-head);
  --accent: var(--rw-gold);
  --accent-deep: var(--rw-gold-deep);
  --item-bg: var(--rw-gold-soft);
  --item-border: #b99051;
  --item-accent: #9a7134;
}
panel {
  --area-bg: #edf4e8;
  --area-border: #829573;
  --area-head: var(--rw-green-head);
  --accent: var(--rw-green);
  --accent-deep: var(--rw-green-deep);
  --item-bg: var(--rw-green-soft);
  --item-border: #829573;
  --item-accent: #657a56;
}
card {
  --area-bg: #e8f4f1;
  --area-border: #66958f;
  --area-head: var(--rw-teal-head);
  --accent: var(--rw-teal);
  --accent-deep: var(--rw-teal-deep);
  --item-bg: var(--rw-teal-soft);
  --item-border: #66958f;
  --item-accent: #477d78;
}
settings,
intent-check,
time,
txt,
panel,
character,
card,
recommend {
  border: 1px solid var(--area-border);
  background: var(--area-bg);
  box-shadow: 0 1px 3px rgba(53, 44, 34, 0.10);
}
settings::before,
intent-check::before,
time::before,
txt::before,
panel::before,
character::before,
card::before,
recommend::before {
  border-bottom: 1px solid var(--area-border);
  color: var(--accent-deep);
  background: linear-gradient(90deg, rgba(255,255,255,0.58), rgba(255,255,255,0.08)), var(--area-head);
}
settings::after,
intent-check::after,
time::after,
txt::after,
panel::after,
character::after,
card::after,
recommend::after {
  color: var(--accent-deep);
}
panel details,
character details,
card details {
  padding: 0;
  border: 0;
  border-radius: var(--rw-radius-md);
  background: transparent;
  box-shadow: none;
  overflow: visible;
}
body panel details details,
body card details details {
  margin-left: 0;
  padding-left: 0;
  border-left: 0;
}
body character > details {
  padding: 0;
  background: transparent;
  box-shadow: none;
}
body panel details > summary,
body character details > summary,
body character details[class] > summary,
body card details > summary {
  margin: 0;
  border: 1px solid var(--accent);
  border-radius: var(--rw-radius-md);
  color: var(--accent-deep);
  background: linear-gradient(180deg, rgba(255,255,255,0.82), rgba(255,255,255,0.30)), var(--item-bg);
  box-shadow: none;
}
body panel details[open],
body character details[open],
body card details[open] {
  padding: 0 8px 8px;
  border: 1px solid var(--accent);
  border-radius: var(--rw-radius-md);
  background: var(--rw-paper);
  box-shadow: 0 3px 9px rgba(53, 44, 34, 0.10);
  overflow: hidden;
}
body panel details[open] > summary,
body character details[open] > summary,
body character details[class][open] > summary,
body card details[open] > summary {
  margin: 0 -8px 8px;
  border: 0;
  border-bottom: 1px solid var(--accent);
  border-radius: var(--rw-radius-md) var(--rw-radius-md) 0 0;
  background: linear-gradient(180deg, rgba(255,255,255,0.70), rgba(255,255,255,0.14)), var(--item-bg);
}
body panel details[open] > details,
body character details[open] > details,
body card details[open] > details {
  margin-left: 0;
  margin-right: 0;
}
lb {
  border: 1px solid var(--item-border, var(--accent, var(--rw-slate)));
  border-left: 3px solid var(--item-accent, var(--accent, var(--rw-slate)));
  border-radius: 4px;
  background: var(--item-bg, var(--rw-slate-soft));
  box-shadow: none;
}
body settings lb,
body intent-check lb,
body time lb,
body panel lb,
body character lb,
body card lb,
body recommend lb {
  border: 1px solid var(--item-border, var(--accent, var(--rw-slate))) !important;
  border-left: 3px solid var(--item-accent, var(--accent, var(--rw-slate))) !important;
  background: var(--item-bg, var(--rw-slate-soft)) !important;
  outline: 1px solid var(--item-border, var(--accent, var(--rw-slate))) !important;
  outline-offset: -1px !important;
  box-shadow: none !important;
}
body intent-check lb:first-of-type {
  grid-column: 1 / -1;
}
body time {
  grid-template-columns: 1fr;
}
/* =========================================================
   小状态的视觉强调
   ========================================================= */
lb > b:first-child:is(:not([class])) {
  text-shadow: 0 1px 0 rgba(255,255,255,0.55);
}
::selection {
  color: #3d2d17;
  background: rgba(207, 163, 89, 0.35);
}
/* =========================================================
   PC：宽屏中信息卡片更紧凑地并列
   ========================================================= */
@media (min-width: 820px) {
  intent-check {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
  }
  intent-check::before {
    grid-column: 1 / -1;
  }
  intent-check::after {
    top: 13px;
  }
  intent-check lb {
    margin: 0;
  }
  body intent-check lb:first-of-type {
    grid-column: 1 / -1;
  }
  recommend {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px;
  }
  recommend::before {
    grid-column: 1 / -1;
  }
  recommend::after {
    top: 13px;
  }
  recommend choice {
    margin-top: 0;
  }
}
/* =========================================================
   手机端：完整展示，紧凑但不压缩正文
   ========================================================= */
@media (max-width: 768px) {
  body {
    padding: 9px 8px 28px;
    font-size: 13px;
    line-height: 1.60;
  }
  settings,
  intent-check,
  time,
  txt,
  panel,
  character,
  card,
  recommend {
    margin-bottom: 12px;
    border-width: 1px;
    border-radius: 11px;
    box-shadow: 0 1px 3px rgba(53, 44, 34, 0.10);
  }
  settings::before,
  intent-check::before,
  time::before,
  txt::before,
  panel::before,
  character::before,
  card::before,
  recommend::before {
    min-height: 37px;
    padding: 8px 11px 8px 32px;
    font-size: 12.5px;
  }
  settings::after,
  intent-check::after,
  time::after,
  txt::after,
  panel::after,
  character::after,
  card::after,
  recommend::after {
    top: 12px;
    left: 12px;
    width: 10px;
    height: 10px;
  }
  lb {
    grid-template-columns: 76px minmax(0, 1fr);
    gap: 7px;
    margin-bottom: 6px;
    padding: 7px 8px;
    font-size: 13px;
    line-height: 1.60;
  }
  lb > b {
    font-size: 12.5px;
  }
  time {
    grid-template-columns: 1fr;
    gap: 6px;
    padding: 0 8px 8px;
  }
  time::before {
    margin: 0 -8px;
  }
  txt {
    padding: 0 13px 14px;
  }
  txt::before {
    margin: 0 -13px;
  }
  txt p {
    margin-bottom: 0.48em;
    font-size: 14px;
    line-height: 1.78;
    text-align: left;
  }
  txt p:first-of-type {
    margin-top: 10px;
  }
  settings,
  intent-check,
  panel,
  character,
  card,
  recommend {
    padding-left: 8px;
    padding-right: 8px;
    padding-bottom: 8px;
  }
  settings::before,
  intent-check::before,
  panel::before,
  character::before,
  card::before,
  recommend::before {
    margin-left: -8px;
    margin-right: -8px;
  }
  settings span {
    width: 100%;
    margin: 7px 0 0;
    white-space: normal;
  }
  details > summary {
    min-height: 38px;
    padding: 8px 10px 8px 30px;
    font-size: 12.5px;
  }
  details > summary::before {
    top: 9px;
    left: 11px;
  }
  panel > details,
  card > details,
  character > details {
    margin-top: 8px;
  }
  panel details details,
  card details details {
    margin-left: 5px;
    padding-left: 5px;
  }
  panel details[open] > lb,
  panel details details[open] > lb,
  character > details > details[open] > lb {
    margin-left: 5px;
    margin-right: 5px;
  }
  character > details {
    padding: 0 7px 7px;
    border-radius: 10px;
  }
  character > details > summary {
    margin-left: -7px;
    margin-right: -7px;
  }
  character > details[open] > summary {
    margin-bottom: 7px;
  }
  character scene,
  character info,
  character > details > details {
    margin-bottom: 7px;
  }
  character scene,
  character info {
    padding: 0 6px 6px;
  }
  character scene::before,
  character info::before {
    margin-left: -6px;
    margin-right: -6px;
    margin-bottom: 6px;
    padding: 7px 9px;
  }
  character details.personality span {
    margin-left: 6px;
    margin-bottom: 6px;
  }
  card details[open] > :not(summary):not(details) {
    margin-left: 5px;
    margin-right: 5px;
    padding: 7px 8px;
  }
  recommend choice {
    margin-top: 8px;
    padding: 9px 10px;
  }
}
@media (max-width: 390px) {
  lb {
    grid-template-columns: 1fr;
    gap: 3px;
  }
  lb > b {
    padding-bottom: 3px;
    border-bottom: 1px dashed color-mix(in srgb, var(--accent, var(--rw-slate)) 32%, transparent);
  }
  character details.personality span {
    display: flex;
    margin-right: 6px;
  }
}
/* =========================================================
   最终布局与 lb 线框规则
   ========================================================= */
intent-check {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 7px !important;
}
intent-check::before {
  grid-column: 1 / -1 !important;
}
intent-check > lb:first-child {
  grid-column: 1 / -1 !important;
}
time {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 8px !important;
}
time::before {
  grid-column: 1 / -1 !important;
}
lb {
  display: grid !important;
  grid-template-columns: 94px minmax(0, 1fr) !important;
  border: 1px solid var(--item-border, var(--accent, var(--rw-slate))) !important;
  border-left: 3px solid var(--item-accent, var(--accent, var(--rw-slate))) !important;
  border-radius: 4px !important;
  background: var(--item-bg, var(--rw-slate-soft)) !important;
  outline: 1px solid var(--item-border, var(--accent, var(--rw-slate))) !important;
  outline-offset: -1px !important;
  box-shadow: none !important;
}
recommend {
  display: block !important;
}
recommend choice {
  display: block !important;
  width: 100%;
  margin-top: 9px !important;
}
