/*
 * 永念 · 九套祭拜首页公共界面（Kiro）
 * 统一：字体角色、品牌比例、右栏单层按钮结构、底部操作结构、导航结构、交互状态逻辑、内容区秩序。
 * 按模板适配：底色、文字色、细边与强调色（见文末三组 token）。
 * 不改：场景图、遗像与信息区、对联牌匾、祭品与落位、烟雾、火焰、右栏整列坐标与热区、功能顺序、业务逻辑。
 *
 * 选择器前缀说明：既有样式里有大量模板专用规则（最高约 0,6,1），
 * 这里用重复类名提高特异性，避免 !important 污染场景与祭品层。
 */

/* ========== 默认 token（= C 组 05 白花永念，已人工确认的浅色基准） ========== */
body:has(.visit.redwood-visit) {
  --k-surface: #f4f0e8;       /* 公共界面底色 */
  --k-paper: #fbf9f4;         /* 按钮 / 轻底面 / 卡片 */
  --k-hover: #ffffff;         /* 次级按钮悬停底 */
  --k-press: #ebe3d5;         /* 按压底 */
  --k-ink: #37312a;           /* 主文字 */
  --k-ink-strong: #2a251f;    /* 悬停 / 选中文字 */
  --k-muted: #655b4e;         /* 次要文字 */
  --k-accent: #6b5236;        /* 播放激活态、选中短线、强调线 */
  --k-accent-hover: #5a442c;
  --k-accent-press: #48361f;
  --k-on-accent: #fffdf8;     /* 强调底上的文字 */
  --k-line: #d3c7b5;          /* 控件细边 */
  --k-line-strong: #9a8566;   /* 悬停 / 按压细边、品牌分隔线 */
  --k-hair: #e3dacb;          /* 分区发丝线 */
  --k-tint-1: rgba(107, 82, 54, .06);  /* 导航悬停 */
  --k-tint-2: rgba(107, 82, 54, .12);  /* 导航按压 */
  --k-focus: #2a251f;         /* 键盘焦点环 */
  --k-rail-bg: rgba(252, 250, 245, .95);
  --k-rail-line: #b9a78c;
  --k-rail-ink: #37312a;
  --k-rail-hover-bg: #ffffff;
  --k-rail-press-bg: #ebe3d5;
  --k-rail-active-line: #6b5236;
  --k-rail-active-ink: #2a251f;
  --k-ui: "Microsoft YaHei UI", "Microsoft YaHei", "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", system-ui, sans-serif;
  --k-serif: "Memorial Serif", "Noto Serif SC", "Songti SC", serif;
  background: var(--k-surface);
  color: var(--k-ink);
}
html:has(.visit.redwood-visit) { background: var(--k-html, #f4f0e8); }

/* ========== 1. 顶部品牌 ========== */
html body:has(.visit.redwood-visit) .top {
  background: var(--k-surface);
  border: 0;
  box-shadow: none;
  align-items: center;
  box-sizing: border-box;
}
html body:has(.visit.redwood-visit) .top .brand {
  display: inline-flex;
  align-items: center;
  gap: 0;
  color: var(--k-ink);
  font: 400 30px/36px var(--k-serif);
  letter-spacing: 6px;
  text-decoration: none;
  text-shadow: none;
}
html body:has(.visit.redwood-visit) .top .brand span {
  display: inline-flex;
  align-items: center;
  margin: 0 0 0 8px;
  color: var(--k-muted);
  font: 500 13px/18px var(--k-ui);
  letter-spacing: 3px;
}
html body:has(.visit.redwood-visit) .top .brand span::before {
  content: "";
  display: block;
  width: 1px; height: 16px;
  margin-right: 14px;
  background: var(--k-line-strong);
}
@media (max-width: 699px) {
  /* 外框高度保持原值：01 为 72，其余为 112；场景起点不动 */
  html body:has(.visit.redwood-visit) .top {
    height: 112px; min-height: 112px;
    padding: 0 16px; justify-content: center; align-items: center;
  }
  html body:has(.visit.redwood-visit:not(.scenic-visit)) .top { height: 72px; min-height: 72px; }
}
@media (min-width: 700px) {
  /* 外框高度保持 106；品牌左缘与场景画框左缘对齐 */
  html body:has(.visit.redwood-visit) .top {
    height: 106px; min-height: 106px;
    padding: 0; justify-content: flex-start;
  }
  /* 中间宽度安全边距：.top 最大 1280 居中，左缘 = max(0, (父宽 − 1280)/2)。
     左内边距补足到品牌距视口左缘至少 32px：父宽 ≥ 1344 时为 0（1440 → 品牌 x=80 不变，1366 → 跟随场景左缘），
     父宽 ≤ 1280 时为 32（1024 → x=32），中间线性过渡，无跳位。 */
  html body:has(.visit.redwood-visit) .top { padding-left: clamp(0px, calc(32px - (100% - 1280px) / 2), 32px); }
  html body:has(.visit.redwood-visit) .top .brand { font-size: 32px; line-height: 38px; letter-spacing: 7px; }
  html body:has(.visit.redwood-visit) .top .brand span { font-size: 14px; letter-spacing: 3px; }
}

/* ========== 2. 右栏：单一视觉面 ========== */
.visit.redwood-visit .ritual-rail > .retired-offering-slot { flex: 0 0 44px; width: 44px; height: 44px; pointer-events: none; }
/* 视觉面画在按钮自身：3px 透明边框 + padding-box 底色 + 1px 内描边；旧 ::before/::after 底板清除。
   热区 44×44 / 44×56 与整列坐标沿用各模板已确认值。 */
html body .visit.redwood-visit.redwood-visit.redwood-visit .ritual-rail button {
  border: 3px solid transparent;
  border-radius: 7px;
  padding: 0;
  background: var(--k-rail-bg);
  background-clip: padding-box;
  box-shadow: inset 0 0 0 1px var(--k-rail-line);
  color: var(--k-rail-ink);
  outline: 0;
  filter: none;
  transition: background-color .12s ease, box-shadow .12s ease, color .12s ease;
  -webkit-tap-highlight-color: transparent;
}
html body .visit.redwood-visit.redwood-visit.redwood-visit .ritual-rail button::before,
html body .visit.redwood-visit.redwood-visit.redwood-visit .ritual-rail button::after {
  content: none !important;
  display: none !important;
}
html body .visit.redwood-visit.redwood-visit.redwood-visit .ritual-rail button .rail-glyph {
  font: 500 14px/16px var(--k-ui);
  letter-spacing: 1px;
  margin: 0 -1px 0 0;
  color: var(--k-rail-ink);
  text-shadow: none;
}
html body .visit.redwood-visit.redwood-visit.redwood-visit .ritual-rail button[data-product="annual"] .rail-glyph { line-height: 17px; }
@media (min-width: 700px) {
  html body .visit.redwood-visit.redwood-visit.redwood-visit .ritual-rail button .rail-glyph { font-size: 15px; line-height: 17px; }
  html body .visit.redwood-visit.redwood-visit.redwood-visit .ritual-rail button[data-product="annual"] .rail-glyph { line-height: 18px; }
}
@media (hover: hover) {
  html body .visit.redwood-visit.redwood-visit.redwood-visit .ritual-rail button:hover {
    background-color: var(--k-rail-hover-bg);
    box-shadow: inset 0 0 0 1px var(--k-rail-active-line);
  }
  html body .visit.redwood-visit.redwood-visit.redwood-visit .ritual-rail button:hover .rail-glyph { color: var(--k-rail-active-ink); }
}
html body .visit.redwood-visit.redwood-visit.redwood-visit .ritual-rail button:active {
  background-color: var(--k-rail-press-bg);
  box-shadow: inset 0 0 0 1px var(--k-rail-active-line);
}
html body .visit.redwood-visit.redwood-visit.redwood-visit .ritual-rail button:active .rail-glyph { color: var(--k-rail-active-ink); }
html body .visit.redwood-visit.redwood-visit.redwood-visit .ritual-rail button:focus-visible {
  outline: 2px solid var(--k-focus);
  outline-offset: -2px;   /* 落在 3px 透明边内，不压邻项 */
}

/* 右栏中间宽度收纳（既有问题的最小修复）：冻结值 left:95.9375% 在场景宽 < 1083px 时右缘超出画框。
   这里只给整列加上限“画框宽 − 44px”：场景宽 ≥ 1083（含 1440 / 1366）取原值不变；1024 时整列左移 2.4px，右缘贴齐画框。
   手机（≤699）沿用原百分比，不受影响。不改按钮尺寸、间距、文字。 */
@media (min-width: 700px) {
  html body .visit.redwood-visit.redwood-visit.redwood-visit .ritual-rail { left: min(95.9375%, calc(100% - 44px)); }
}

/* ========== 3. 底部三项操作：默认同级，音乐播放时激活 ========== */
html body .visit.redwood-visit.redwood-visit.redwood-visit .shrine-tools {
  background: var(--k-surface);
  border: 0;
  box-shadow: none;
  box-sizing: border-box;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
}
html body .visit.redwood-visit.redwood-visit.redwood-visit .shrine-tools > button {
  box-sizing: border-box;
  height: 44px; min-height: 44px;
  margin: 0;
  padding: 0 8px;
  border: 1px solid var(--k-line);
  border-radius: 6px;
  background: var(--k-paper);
  box-shadow: none;
  color: var(--k-ink);
  font: 500 14px/20px var(--k-ui);
  letter-spacing: .5px;
  text-shadow: none;
  white-space: nowrap;
  transition: background-color .12s ease, border-color .12s ease, color .12s ease;
  -webkit-tap-highlight-color: transparent;
}
html body .visit.redwood-visit.redwood-visit.redwood-visit .shrine-tools > button::before,
html body .visit.redwood-visit.redwood-visit.redwood-visit .shrine-tools > button::after { content: none !important; }
html body .visit.redwood-visit.redwood-visit.redwood-visit .shrine-tools > button[hidden] { display: none !important; }
@media (hover: hover) {
  html body .visit.redwood-visit.redwood-visit.redwood-visit .shrine-tools > button:hover {
    background: var(--k-hover); border-color: var(--k-line-strong); color: var(--k-ink-strong);
  }
}
html body .visit.redwood-visit.redwood-visit.redwood-visit .shrine-tools > button:active {
  background: var(--k-press); border-color: var(--k-line-strong); color: var(--k-ink-strong);
}
/* 播放激活态：仅在音乐实际播放时（aria-pressed=true）出现 */
html body .visit.redwood-visit.redwood-visit.redwood-visit .shrine-tools > #music[aria-pressed="true"] {
  background: var(--k-accent); border-color: var(--k-accent); color: var(--k-on-accent);
}
@media (hover: hover) {
  html body .visit.redwood-visit.redwood-visit.redwood-visit .shrine-tools > #music[aria-pressed="true"]:hover {
    background: var(--k-accent-hover); border-color: var(--k-accent-hover); color: var(--k-on-accent);
  }
}
html body .visit.redwood-visit.redwood-visit.redwood-visit .shrine-tools > #music[aria-pressed="true"]:active {
  background: var(--k-accent-press); border-color: var(--k-accent-press); color: var(--k-on-accent);
}
html body .visit.redwood-visit.redwood-visit.redwood-visit .shrine-tools > button:focus-visible {
  outline: 2px solid var(--k-focus);
  outline-offset: 2px;
}
@media (max-width: 699px) {
  html body .visit.redwood-visit.redwood-visit.redwood-visit .shrine-tools { height: 56px; min-height: 56px; padding: 6px 12px; }
  html body .visit.redwood-visit.redwood-visit.redwood-visit .shrine-tools > button:not([hidden]) { flex: 1 1 0; min-width: 0; }
}
@media (min-width: 700px) {
  html body .visit.redwood-visit.redwood-visit.redwood-visit .shrine-tools { height: 72px; min-height: 72px; padding: 14px 40px; gap: 12px; }
  html body .visit.redwood-visit.redwood-visit.redwood-visit .shrine-tools > button:not([hidden]) { flex: 0 0 168px; width: 168px; }
}

/* ========== 4. 九项导航 ========== */
html body .visit.redwood-visit.redwood-visit.redwood-visit .visit-bottom-nav {
  background: var(--k-surface);
  border: 0;
  box-shadow: inset 0 -1px 0 var(--k-hair);
  backdrop-filter: none;
}
html body .visit.redwood-visit.redwood-visit.redwood-visit .visit-content-tabs { scroll-padding-inline: 12px; }
html body .visit.redwood-visit.redwood-visit.redwood-visit .visit-content-tabs > :is(button, a) {
  position: relative;
  box-sizing: border-box;
  height: 60px; min-height: 60px;
  display: flex; align-items: center; justify-content: center;
  padding: 0 14px 2px;
  border: 0; border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: var(--k-muted);
  font: 400 14px/20px var(--k-ui);
  letter-spacing: .5px;
  text-decoration: none;
  text-shadow: none;
  white-space: nowrap;
  transition: color .12s ease, background-color .12s ease;
  -webkit-tap-highlight-color: transparent;
}
html body .visit.redwood-visit.redwood-visit.redwood-visit .visit-content-tabs > button[aria-selected="true"] {
  color: var(--k-ink-strong);
  font-weight: 700;
}
html body .visit.redwood-visit.redwood-visit.redwood-visit .visit-content-tabs > button[aria-selected="true"]::after {
  content: "";
  position: absolute;
  left: 50%; bottom: 9px;
  width: 20px; height: 2px; margin-left: -10px;
  border-radius: 1px;
  background: var(--k-accent);
}
/* 家属管理：仍在最后；短竖线与访客栏目区分 */
html body .visit.redwood-visit.redwood-visit.redwood-visit .visit-content-tabs > .visit-family-entry { color: var(--k-muted); }
html body .visit.redwood-visit.redwood-visit.redwood-visit .visit-content-tabs > .visit-family-entry::before {
  content: "";
  position: absolute;
  left: 0; top: 50%;
  width: 1px; height: 16px; margin-top: -8px;
  background: var(--k-line);
}
@media (hover: hover) {
  html body .visit.redwood-visit.redwood-visit.redwood-visit .visit-content-tabs > :is(button, a):hover {
    color: var(--k-ink-strong);
    background: var(--k-tint-1);
  }
}
html body .visit.redwood-visit.redwood-visit.redwood-visit .visit-content-tabs > :is(button, a):active {
  color: var(--k-ink-strong);
  background: var(--k-tint-2);
}
html body .visit.redwood-visit.redwood-visit.redwood-visit .visit-content-tabs > :is(button, a):focus-visible {
  outline: 2px solid var(--k-focus);
  outline-offset: -6px;
  border-radius: 8px;
}
@media (max-width: 699px) {
  html body .visit.redwood-visit.redwood-visit.redwood-visit .visit-content-tabs { padding: 0 4px; }
  html body .visit.redwood-visit.redwood-visit.redwood-visit .visit-content-tabs > :is(button, a) { flex: 0 0 auto; width: auto; min-width: 0; }
}
@media (min-width: 700px) {
  html body .visit.redwood-visit.redwood-visit.redwood-visit .visit-content-tabs { padding: 0 24px; }
  html body .visit.redwood-visit.redwood-visit.redwood-visit .visit-content-tabs > :is(button, a) { flex: 1 0 auto; font-size: 15px; padding: 0 10px 2px; }
  html body .visit.redwood-visit.redwood-visit.redwood-visit .visit-content-tabs > .visit-family-entry { flex: 0 0 auto; padding-inline: 20px; }
}

/* ========== 5. 场景以下：连续底色，留白与发丝线分模块 ========== */
html body .visit.redwood-visit.redwood-visit.redwood-visit .v03-intro {
  margin: 0;
  border: 0; border-radius: 0;
  background: var(--k-surface);
  color: var(--k-ink);
  padding: 28px 20px 24px;
  box-shadow: inset 0 -1px 0 var(--k-hair);
}
html body .visit.redwood-visit.redwood-visit.redwood-visit .v03-intro h2 {
  margin: 0 0 14px;
  color: var(--k-ink);
  font: 400 22px/30px var(--k-serif);
  letter-spacing: 2px;
  text-shadow: none;
}
html body .visit.redwood-visit.redwood-visit.redwood-visit .v03-intro .entitlement {
  margin: 0 0 10px;
  padding: 10px 14px;
  border: 0;
  border-left: 3px solid var(--k-accent);
  border-radius: 0 4px 4px 0;
  background: var(--k-paper);
  color: var(--k-ink);
  font: 500 14px/22px var(--k-ui);
}
html body .visit.redwood-visit.redwood-visit.redwood-visit .v03-intro .entitlement:empty { display: none; }
html body .visit.redwood-visit.redwood-visit.redwood-visit .v03-intro .audio-note {
  margin: 0;
  color: var(--k-muted);
  font: 400 13px/21px var(--k-ui);
}
html body .visit.redwood-visit.redwood-visit.redwood-visit .v03-intro .audio-note:empty { display: none; }

/* 阅读区 */
html body .visit.redwood-visit.redwood-visit.redwood-visit #visit-panel {
  box-sizing: border-box;
  width: 100%; max-width: none; align-self: stretch;
  margin: 0;
  border: 0; border-radius: 0; box-shadow: none;
  background: var(--k-surface);
  color: var(--k-ink);
  padding: 28px 20px 32px;
}
html body .visit.redwood-visit.redwood-visit.redwood-visit #visit-panel :is(h1, h2, h3, h4) {
  color: var(--k-ink);
  text-shadow: none;
}
html body .visit.redwood-visit.redwood-visit.redwood-visit #visit-panel h2 {
  margin: 0 0 14px;
  font: 400 22px/30px var(--k-serif);
  letter-spacing: 2px;
}
html body .visit.redwood-visit.redwood-visit.redwood-visit #visit-panel h2:not(:first-of-type) { margin-top: 32px; }
html body .visit.redwood-visit.redwood-visit.redwood-visit #visit-panel h3 { font-family: var(--k-serif); font-weight: 400; }
html body .visit.redwood-visit.redwood-visit.redwood-visit #visit-panel :is(p, .biography, li, dd) {
  color: var(--k-ink);
  font: 400 15px/27px var(--k-ui);
}
html body .visit.redwood-visit.redwood-visit.redwood-visit #visit-panel :is(small, .muted, time, dt, label, .audio-time, .audio-status, .video-duration) {
  color: var(--k-muted);
}
html body .visit.redwood-visit.redwood-visit.redwood-visit #visit-panel p.muted { color: var(--k-muted); }
html body .visit.redwood-visit.redwood-visit.redwood-visit #visit-panel p.reading-brand {
  margin: 0 0 6px;
  color: var(--k-muted);
  font: 400 13px/20px var(--k-ui);
  letter-spacing: 1px;
}
html body .visit.redwood-visit.redwood-visit.redwood-visit #visit-panel a:not(.button) { color: var(--k-accent); }
/* 卡片类：轻底，不加厚边与投影 */
html body .visit.redwood-visit.redwood-visit.redwood-visit #visit-panel :is(.media-card, .audio-card, .memorial-audio, .family-teaching, .comment, .event, .order, .grave-info > *, article) {
  background: var(--k-paper);
  border-color: var(--k-hair);
  box-shadow: none;
  color: var(--k-ink);
}
html body .visit.redwood-visit.redwood-visit.redwood-visit #visit-panel .family-teaching {
  border: 0;
  border-left: 3px solid var(--k-accent);
}
html body .visit.redwood-visit.redwood-visit.redwood-visit #visit-panel .timeline { border-color: var(--k-line); }
html body .visit.redwood-visit.redwood-visit.redwood-visit #visit-panel .timeline .entry::before { background: var(--k-accent); }
html body .visit.redwood-visit.redwood-visit.redwood-visit #visit-panel .timeline time { color: var(--k-accent); }
/* 页面内通用按钮、筛选标签、表单：统一到同一控件体系，不改结构 */
html body .visit.redwood-visit.redwood-visit.redwood-visit #visit-panel :is(button, .button, .file-trigger):not(.video-play):not([role="tab"]) {
  min-height: 40px;
  padding: 0 14px;
  border: 1px solid var(--k-line);
  border-radius: 6px;
  background: var(--k-paper);
  box-shadow: none;
  color: var(--k-ink);
  font: 500 14px/20px var(--k-ui);
  text-shadow: none;
}
@media (hover: hover) {
  html body .visit.redwood-visit.redwood-visit.redwood-visit #visit-panel :is(button, .button, .file-trigger):not(.video-play):not([role="tab"]):hover {
    background: var(--k-hover); border-color: var(--k-line-strong); color: var(--k-ink-strong);
  }
}
html body .visit.redwood-visit.redwood-visit.redwood-visit #visit-panel :is(button, .button):not(.video-play):active { background: var(--k-press); }
html body .visit.redwood-visit.redwood-visit.redwood-visit #visit-panel :is(button.selected, button[aria-pressed="true"], button.primary, .button.primary) {
  background: var(--k-accent); border-color: var(--k-accent); color: var(--k-on-accent);
}
html body .visit.redwood-visit.redwood-visit.redwood-visit #visit-panel .category-filter { gap: 8px; }
html body .visit.redwood-visit.redwood-visit.redwood-visit #visit-panel .category-filter button { font-weight: 400; }
html body .visit.redwood-visit.redwood-visit.redwood-visit #visit-panel .category-filter button.selected { font-weight: 500; }
html body .visit.redwood-visit.redwood-visit.redwood-visit #visit-panel :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]), textarea, select) {
  background: var(--k-paper);
  border: 1px solid var(--k-line);
  border-radius: 6px;
  box-shadow: none;
  color: var(--k-ink);
  font: 400 15px/22px var(--k-ui);
}
html body .visit.redwood-visit.redwood-visit.redwood-visit #visit-panel :is(input, textarea, select)::placeholder { color: var(--k-muted); opacity: 1; }
html body .visit.redwood-visit.redwood-visit.redwood-visit #visit-panel :is(button, .button, input, textarea, select, a):focus-visible {
  outline: 2px solid var(--k-focus); outline-offset: 2px;
}
html body .visit.redwood-visit.redwood-visit.redwood-visit #visit-panel :is(table, th, td) { border-color: var(--k-hair); color: var(--k-ink); background: transparent; }
html body .visit.redwood-visit.redwood-visit.redwood-visit #visit-panel .empty { color: var(--k-muted); }

/* 提示与页脚 */
html body .visit.redwood-visit.redwood-visit.redwood-visit .notice {
  margin: 0;
  border: 0; border-radius: 0;
  background: var(--k-surface);
  color: var(--k-muted);
  font: 400 13px/22px var(--k-ui);
  padding: 18px 20px;
  box-shadow: inset 0 1px 0 var(--k-hair);
}
html body .visit.redwood-visit.redwood-visit.redwood-visit .notice :is(p, span, small) { color: var(--k-muted); }
html body .visit.redwood-visit.redwood-visit.redwood-visit .notice :is(button, a.button) {
  min-height: 44px;
  border: 1px solid var(--k-line);
  border-radius: 6px;
  background: var(--k-paper);
  box-shadow: none;
  color: var(--k-ink);
  font: 500 14px/20px var(--k-ui);
}
html body .visit.redwood-visit.redwood-visit.redwood-visit .notice :is(button, a):focus-visible { outline: 2px solid var(--k-focus); outline-offset: 2px; }
html body .visit.redwood-visit.redwood-visit.redwood-visit .notice a { color: var(--k-accent); }
html body:has(.visit.redwood-visit) footer {
  background: var(--k-surface);
  color: var(--k-muted);
  border: 0;
  box-shadow: inset 0 1px 0 var(--k-hair);
  font: 400 12px/20px var(--k-ui);
}
html body:has(.visit.redwood-visit) footer :is(span, p) { color: var(--k-muted); }
html body:has(.visit.redwood-visit) footer a { color: var(--k-ink); }

@media (max-width: 699px) {
  html body .visit.redwood-visit.redwood-visit.redwood-visit .v03-intro .entitlement { font-size: 13px; line-height: 21px; padding: 10px 12px; }
}
@media (min-width: 700px) {
  /* 正文阅读宽度 880，模块与操作区共用居中轴 */
  html body .visit.redwood-visit.redwood-visit.redwood-visit :is(.v03-intro, #visit-panel, .notice) {
    padding-left: max(40px, calc((100% - 880px) / 2));
    padding-right: max(40px, calc((100% - 880px) / 2));
  }
  html body .visit.redwood-visit.redwood-visit.redwood-visit .v03-intro { padding-top: 36px; padding-bottom: 28px; }
  html body .visit.redwood-visit.redwood-visit.redwood-visit #visit-panel { padding-top: 36px; padding-bottom: 40px; }
}

/* =====================================================================
   三组 token
   ===================================================================== */

/* ---------- A 深色暖调：深炭 / 暖木 / 低饱和铜褐，细边减轻 ---------- */
/* 01 红木宗祠：场景已华丽，界面只用深炭暖木，不加金边 */
body:has(.visit.redwood-visit:not(.scenic-visit)) {
  --k-html: #201814;
  --k-surface: #201814;
  --k-paper: #2b211b;
  --k-hover: #352921;
  --k-press: #3e3027;
  --k-ink: #eee4d4;
  --k-ink-strong: #fbf4e8;
  --k-muted: #bcae99;
  --k-accent: #b8956a;
  --k-accent-hover: #c6a67c;
  --k-accent-press: #a8875e;
  --k-on-accent: #1d1814;
  --k-line: #463a30;
  --k-line-strong: #7a6652;
  --k-hair: #342b24;
  --k-tint-1: rgba(255, 244, 228, .05);
  --k-tint-2: rgba(255, 244, 228, .10);
  --k-focus: #f1e2c6;
  --k-rail-bg: rgba(29, 24, 20, .88);
  --k-rail-line: #6e5a46;
  --k-rail-ink: #f0e5d2;
  --k-rail-hover-bg: rgba(51, 42, 34, .96);
  --k-rail-press-bg: rgba(66, 54, 43, .98);
  --k-rail-active-line: #b8956a;
  --k-rail-active-ink: #fbf4e8;
}
/* 03 月洞清晖：月夜冷炭为底，月色暖白做强调，保持冷暖关系 */
body:has(.visit.scenic-visit-2) {
  --k-html: #181b1f;
  --k-surface: #181b1f;
  --k-paper: #22262b;
  --k-hover: #2b3036;
  --k-press: #323840;
  --k-ink: #e8e5dc;
  --k-ink-strong: #f8f5ec;
  --k-muted: #aaa8a0;
  --k-accent: #c9b083;
  --k-accent-hover: #d6c095;
  --k-accent-press: #b89f74;
  --k-on-accent: #181b1f;
  --k-line: #3a4047;
  --k-line-strong: #6b727a;
  --k-hair: #2a2f35;
  --k-tint-1: rgba(236, 240, 246, .05);
  --k-tint-2: rgba(236, 240, 246, .10);
  --k-focus: #efe6cf;
  --k-rail-bg: rgba(24, 27, 31, .86);
  --k-rail-line: #5c636b;
  --k-rail-ink: #ece8de;
  --k-rail-hover-bg: rgba(43, 48, 54, .96);
  --k-rail-press-bg: rgba(52, 58, 66, .98);
  --k-rail-active-line: #c9b083;
  --k-rail-active-ink: #f8f5ec;
}
/* 07 金堂长明：近黑底 + 克制旧金，只在激活与选中处出现金色 */
body:has(.visit.scenic-visit-6) {
  --k-html: #151311;
  --k-surface: #151311;
  --k-paper: #1f1c19;
  --k-hover: #29251f;
  --k-press: #312c25;
  --k-ink: #ece5d6;
  --k-ink-strong: #faf5ea;
  --k-muted: #b3a995;
  --k-accent: #c0a067;
  --k-accent-hover: #cdb07b;
  --k-accent-press: #ae8f59;
  --k-on-accent: #151311;
  --k-line: #3b342b;
  --k-line-strong: #6d5f47;
  --k-hair: #2a2620;
  --k-tint-1: rgba(250, 240, 220, .05);
  --k-tint-2: rgba(250, 240, 220, .10);
  --k-focus: #ecdcb6;
  --k-rail-bg: rgba(21, 19, 17, .88);
  --k-rail-line: #66573f;
  --k-rail-ink: #efe6d3;
  --k-rail-hover-bg: rgba(41, 37, 31, .96);
  --k-rail-press-bg: rgba(52, 46, 38, .98);
  --k-rail-active-line: #c0a067;
  --k-rail-active-ink: #faf5ea;
}

/* ---------- B 自然木石：轻于场景，暖灰 / 灰绿 / 木石中性 ---------- */
/* 02 远山追思：雾山灰绿，比 05 更冷、更偏植物色 */
body:has(.visit.scenic-visit-1) {
  --k-html: #e4eae4;
  --k-surface: #e4eae4;
  --k-paper: #f2f6f1;
  --k-hover: #fafcf9;
  --k-press: #d6ded5;
  --k-ink: #2f3a31;
  --k-ink-strong: #222b24;
  --k-muted: #56645a;
  --k-accent: #4c6150;
  --k-accent-hover: #3f5243;
  --k-accent-press: #334437;
  --k-on-accent: #f7faf6;
  --k-line: #c3cdc2;
  --k-line-strong: #84927f;
  --k-hair: #d3dbd2;
  --k-tint-1: rgba(76, 97, 80, .07);
  --k-tint-2: rgba(76, 97, 80, .13);
  --k-focus: #222b24;
  --k-rail-bg: rgba(242, 246, 241, .94);
  --k-rail-line: #9eac9b;
  --k-rail-ink: #2f3a31;
  --k-rail-hover-bg: #fafcf9;
  --k-rail-press-bg: #d6ded5;
  --k-rail-active-line: #4c6150;
  --k-rail-active-ink: #222b24;
}
/* 04 竹影书堂：书堂木色 / 生宣色 + 竹青强调 */
body:has(.visit.scenic-visit-3) {
  --k-html: #e6dece;
  --k-surface: #e6dece;
  --k-paper: #f3eee3;
  --k-hover: #fbf8f1;
  --k-press: #d9cfbb;
  --k-ink: #3a3428;
  --k-ink-strong: #2b261d;
  --k-muted: #625949;
  --k-accent: #586843;
  --k-accent-hover: #4a5838;
  --k-accent-press: #3d492e;
  --k-on-accent: #faf8f1;
  --k-line: #cdc2ab;
  --k-line-strong: #918466;
  --k-hair: #d9cfbc;
  --k-tint-1: rgba(88, 104, 67, .07);
  --k-tint-2: rgba(88, 104, 67, .13);
  --k-focus: #2b261d;
  --k-rail-bg: rgba(243, 238, 227, .94);
  --k-rail-line: #ab9f84;
  --k-rail-ink: #3a3428;
  --k-rail-hover-bg: #fbf8f1;
  --k-rail-press-bg: #d9cfbb;
  --k-rail-active-line: #586843;
  --k-rail-active-ink: #2b261d;
}
/* 06 松山怀远：冷青石 + 松绿，组内最冷最沉 */
body:has(.visit.scenic-visit-5) {
  --k-html: #dee3df;
  --k-surface: #dee3df;
  --k-paper: #eef1ee;
  --k-hover: #f9faf9;
  --k-press: #d0d7d1;
  --k-ink: #2c342f;
  --k-ink-strong: #1f2622;
  --k-muted: #545f58;
  --k-accent: #3d5546;
  --k-accent-hover: #324739;
  --k-accent-press: #283a2e;
  --k-on-accent: #f5f8f6;
  --k-line: #bfc8c1;
  --k-line-strong: #7c8a80;
  --k-hair: #cfd6d0;
  --k-tint-1: rgba(61, 85, 70, .07);
  --k-tint-2: rgba(61, 85, 70, .13);
  --k-focus: #1f2622;
  --k-rail-bg: rgba(238, 241, 238, .94);
  --k-rail-line: #98a59b;
  --k-rail-ink: #2c342f;
  --k-rail-hover-bg: #f9faf9;
  --k-rail-press-bg: #d0d7d1;
  --k-rail-active-line: #3d5546;
  --k-rail-active-ink: #1f2622;
}
/* 09 庭院春晖：暖砂石 + 橄榄褐 */
body:has(.visit.scenic-visit-8) {
  --k-html: #ece5d9;
  --k-surface: #ece5d9;
  --k-paper: #f7f3eb;
  --k-hover: #fdfbf7;
  --k-press: #e0d7c6;
  --k-ink: #3b352c;
  --k-ink-strong: #2c271f;
  --k-muted: #665d4f;
  --k-accent: #6b5f3e;
  --k-accent-hover: #5b5033;
  --k-accent-press: #4b4229;
  --k-on-accent: #fbf9f3;
  --k-line: #d3c9b6;
  --k-line-strong: #978a6e;
  --k-hair: #e0d7c8;
  --k-tint-1: rgba(107, 95, 62, .07);
  --k-tint-2: rgba(107, 95, 62, .13);
  --k-focus: #2c271f;
  --k-rail-bg: rgba(247, 243, 235, .94);
  --k-rail-line: #ada28a;
  --k-rail-ink: #3b352c;
  --k-rail-hover-bg: #fdfbf7;
  --k-rail-press-bg: #e0d7c6;
  --k-rail-active-line: #6b5f3e;
  --k-rail-active-ink: #2c271f;
}

/* ---------- C 浅色轻盈 ---------- */
/* 05 白花永念：使用默认 token（象牙白，已确认） */
/* 08 云水归心：雾青灰，不用暖白 */
body:has(.visit.scenic-visit-7) {
  --k-html: #e2eaec;
  --k-surface: #e2eaec;
  --k-paper: #f1f5f6;
  --k-hover: #fafcfc;
  --k-press: #d3dfe2;
  --k-ink: #2b3c40;
  --k-ink-strong: #1f2f33;
  --k-muted: #4f6569;
  --k-accent: #3e6268;
  --k-accent-hover: #33545a;
  --k-accent-press: #29464b;
  --k-on-accent: #f5f9fa;
  --k-line: #bfcfd2;
  --k-line-strong: #78969b;
  --k-hair: #d0dcdf;
  --k-tint-1: rgba(62, 98, 104, .07);
  --k-tint-2: rgba(62, 98, 104, .13);
  --k-focus: #1f2f33;
  --k-rail-bg: rgba(241, 245, 246, .94);
  --k-rail-line: #97afb3;
  --k-rail-ink: #2b3c40;
  --k-rail-hover-bg: #fafcfc;
  --k-rail-press-bg: #d3dfe2;
  --k-rail-active-line: #3e6268;
  --k-rail-active-ink: #1f2f33;
}
