/* ==========================================================================
 * 杏林江湖 · 融入系统皮肤 v1（2026-10-10）
 * --------------------------------------------------------------------------
 * 【为什么有这一份】江湖 12 页原来是"自带皮肤的外挂页"：自己一套米黄底
 *   （#efe9d9）+ 棕红字（#8a2f1d）+ 宋体，与系统纸色（--paper / --ink /
 *   --green）是两套东西，进到站里像另一套系统；顶层打开还会被 jh.html
 *   音乐壳套一层 iframe，更显突兀。
 * 【口径】本文件只统一**外壳**：底色 / 字体 / 顶栏 / 江湖导航 / 卡片 / 按钮 /
 *   表单 / 底栏间距。各页业务样式（舆图地标、科举题面、书院书架、采药山径…）
 *   原样保留 —— 老地图本身该有质感，但页面外壳必须是这个系统的。
 * 【用法】<html class="jbt-jh">，且本文件排在所有内联 <style> 之后加载
 *   （后加载者胜，靠 html.jbt-jh 提升权重，不去动各页原有内联）。
 * ========================================================================== */

/* ---- 一 · 底色与字：米黄/宋体 → 系统纸色/系统字 ---- */
html.jbt-jh body {
  background: var(--paper);
  color: var(--ink);
  font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
html.jbt-jh .wrap {
  max-width: 680px; margin: 0 auto; padding: 12px 14px 98px;
}

/* ---- 二 · 顶栏：改用系统 header.top 后，压掉各页内联那条 flex .top ---- */
html.jbt-jh header.top { display: block; margin-bottom: 0; }
html.jbt-jh header.top .brand { font-size: 26px; letter-spacing: 6px; }
html.jbt-jh header.top .brand a { color: inherit; text-decoration: none; }
html.jbt-jh header.top .brand a.jh-back { opacity: .55; font-size: 22px; letter-spacing: 0; }

/* ---- 三 · 江湖内页导航条（12 页共用；横向可滑，当前页高亮） ---- */
.jh-nav {
  display: flex; gap: 7px; overflow-x: auto;
  max-width: 680px; margin: 0 auto; padding: 2px 14px 10px;
  -webkit-overflow-scrolling: touch; scrollbar-width: none;
}
.jh-nav::-webkit-scrollbar { display: none; }
.jh-nav a {
  flex: 0 0 auto; text-decoration: none; white-space: nowrap;
  font-size: 13.5px; letter-spacing: 1px; line-height: 1;
  padding: 7px 14px; border-radius: 999px;
  border: 1px solid var(--line); background: var(--face-3); color: var(--ink-light);
}
.jh-nav a.on {
  background: var(--green); border-color: var(--green);
  color: #F7F5EF; font-weight: 700;
}
html[data-theme="night"] .jh-nav a { background: #201C17; border-color: #332C24; color: #A89F8C; }
html[data-theme="night"] .jh-nav a.on { background: #3F6B58; border-color: #3F6B58; color: #F7F5EF; }

/* ---- 四 · 卡片 / 分区：统一到系统卡片 ---- */
html.jbt-jh .card,
html.jbt-jh section.card {
  background: var(--card); border: 1px solid var(--line);
  border-radius: 12px; padding: 13px 14px; margin-top: 10px;
}
html.jbt-jh .card h2 { color: var(--green); font-size: 16px; letter-spacing: 1px; }
html.jbt-jh .hint,
html.jbt-jh .disclaimer { color: var(--ink-light); }
html.jbt-jh .disclaimer { font-size: 12px; text-align: center; line-height: 1.75; margin-top: 14px; }

/* ---- 五 · 按钮 / 表单：棕红 → 系统深绿（ghost 仍是描边绿） ---- */
html.jbt-jh .btn {
  background: var(--green); border: 1px solid var(--green);
  color: #F7F5EF; border-radius: 8px; font-family: inherit; letter-spacing: 1px;
}
html.jbt-jh .btn.ghost { background: transparent; color: var(--green); }
/* 【V24.15 按钮特异性夺回】style.css「V5.2 全站小抛光」的六连 :not() 纸感按钮
 * （特异性 0,6,1）一直压过上面 0,2,1 的绿钮规则 → 江湖页「接 诊 / 张 榜 / 提交」
 * 全被刷成纸色渐变条，绿钮从没生效过。这里用同链再加 .btn（0,7,1）夺回。 */
html.jbt-jh button:not(.primary):not(.on):not(.jt-seg-btn):not(.jt-dot):not(.am-dot):not(.jt-mem).btn {
  background: var(--green); border-color: var(--green); color: #F7F5EF;
}
html.jbt-jh button:not(.primary):not(.on):not(.jt-seg-btn):not(.jt-dot):not(.am-dot):not(.jt-mem).btn.ghost {
  background: transparent; border-color: var(--line); color: var(--green);
}
/* 【V24.15 夜版】绿底实心钮夜版压深（夜版 --green 提亮后铺底太浅，米白字 ~3.2:1） */
html[data-theme="night"] button:not(.primary):not(.on):not(.jt-seg-btn):not(.jt-dot):not(.am-dot):not(.jt-mem).btn {
  background: #2E6355; border-color: #2E6355;
}
html.jbt-jh input,
html.jbt-jh textarea,
html.jbt-jh select {
  border-color: var(--line); border-radius: 8px;
  background: var(--face-3); color: var(--ink); font-family: inherit;
}
html.jbt-jh input:focus,
html.jbt-jh textarea:focus,
html.jbt-jh select:focus { outline: none; border-color: var(--green); }

/* ---- 六 · chips：登录态等小徽片，改纸色描边 ---- */
html.jbt-jh .chip { background: var(--face-3); border-color: var(--line); color: var(--ink-light); }
html.jbt-jh .chip b, html.jbt-jh .chip a { color: var(--green); }

/* ---- 七 · 各页顶部原来那排「‹ 返回今天 / 悬赏榜 / 我的」小链接：收进卡片，不再裸挂 ---- */
html.jbt-jh .nav { font-size: 13px; }
html.jbt-jh .nav a { color: var(--green); border-bottom: 0; margin-left: 12px; text-decoration: none; }

/* ---- 八 · 油印小字（toast / 提示）走系统色 ---- */
html.jbt-jh #toast { background: #3B3226; color: #F5ECD7; }

/* ---- 九 · 底栏间距兜底（原 html.jbt-own-skin 那份的替代；底栏本体走 style.css） ---- */
html.jbt-jh body { padding-bottom: 0; }
html.jbt-jh::after { content: none; }
/* 【2026-10-11 午修】画卷页并入系统外壳后自带底栏（约 45px 高、z90），但画卷
 * 场景被 JS 写死 100vh、对话框(.dlg)/场景切换钮(.scnnav)绝对定位在场景底部 →
 * 全被底栏压住：对话显示不全、选项点不了（用户手机实测截图）。
 * 场景图继续铺满屏（图延伸到底栏后面，观感自然），只把浮层抬到底栏之上。 */
html.jbt-jh body.jbt-hasbar .dlg { bottom: 52px; }
/* 【V23.31 错位修复】画卷页页内 .scnnav 多带 top:112px，这里又设 bottom:58px
 * → top/bottom 同时锁定把整条垂直拉抻到屏幕中部；style.css 的 button{flex:1}
 * 又把两颗按钮各撑成半屏白条（采药/道观/置业/书院/寺院五页同病）。
 * 收口：hasbar 时 top 归 auto（只贴底），按钮收回自身宽度。 */
html.jbt-jh body.jbt-hasbar .scnnav { bottom: 58px; top: auto; }
html.jbt-jh body.jbt-hasbar #toast { bottom: 64px; }

/* ---- 十 · 各页标题：棕红 → 系统深绿（只动文字色；画卷里的招牌/匾额是内容，不受影响） ---- */
html.jbt-jh h1, html.jbt-jh h2 { color: var(--green); }

/* ---- 十一 · 画卷页（书院/采药/置业/寺院/道观/武馆/酒楼）HUD 融合 ----
 * 画卷本身是"江湖的世界"，棕红金保留；HUD（场景切换按钮 / 状态 chips）是页面
 * 框架 —— 框架必须是这个系统的。 */
html.jbt-jh .scnnav button {
  background: var(--face-3); border: 1px solid var(--line); color: var(--ink);
  border-radius: 999px; font-family: inherit;
  /* V23.31：style.css button{flex:1;letter-spacing:4px;padding:11px} 会把切景钮撑成
   * 半屏大白条——画卷页一律收回紧凑小钮（各页页内 .scnnav button 同名规则同口径） */
  flex: 0 0 auto; padding: 5px 15px; font-size: .76rem; letter-spacing: 2px;
}
html.jbt-jh .scnnav button:active { transform: scale(.97); }
html.jbt-jh .hud .chip,
html.jbt-jh .bgm-chip { background: var(--face-3); border-color: var(--line); color: var(--ink-light); }

/* ---- 十二 · 弹窗（sheet）与行条（row）：各页通用命名，统一纸卡 ---- */
html.jbt-jh .sheet { background: var(--card); border-color: var(--line); border-radius: 12px; }
html.jbt-jh .sheet h2 { color: var(--green); }
html.jbt-jh .row { border-bottom-color: var(--line); }
html.jbt-jh .row .nm b { color: var(--ink); }
html.jbt-jh .row .nm span { color: var(--ink-light); }
html.jbt-jh .gifttag { color: var(--ochre); border-color: var(--line); }

/* ==========================================================================
 * 十三 · W4-08（2026-10-10 晚）：页头与系统一致
 * --------------------------------------------------------------------------
 * 普通页（悬赏/酒楼/论坛/名迹/科举外的图页）由 nav.js 注入系统标准
 * <header class="top">；这些页不引 style.css，故页头样式在此自足（同款同值）。
 * 画卷沉浸页注入 .jh-topbar：叠加在画卷上，不占高度、不改各页 JS。
 * ========================================================================== */
html.jbt-jh header.top {
  display: block; padding: 20px 14px 6px; text-align: left;
  background: linear-gradient(180deg, var(--face-1, #f4eee1), rgba(244, 238, 225, 0));
}
html.jbt-jh header.top .topbar {
  display: flex; align-items: center; justify-content: space-between;
  max-width: 680px; margin: 0 auto; gap: 10px;
}
html.jbt-jh header.top .brand,
html.jbt-jh .jh-brand {
  font-family: "Kaiti SC", KaiTi, STKaiti, serif;
  font-size: 21px; letter-spacing: 6px; color: var(--green);
  display: inline-flex; align-items: center; gap: 8px; text-align: left;
}
html.jbt-jh .jh-brand .brand-seal { width: 26px; height: 26px; flex: 0 0 auto; }
html.jbt-jh header.top .sub { max-width: 680px; margin: 4px auto 0; }

/* 画卷沉浸页：叠加式页头（半透明墨底 + 米金品牌字，融入画卷不破构图） */
html.jbt-jh .jh-topbar {
  position: fixed; top: 0; left: 0; right: 0; z-index: 25;
  display: flex; align-items: center;
  padding: 8px 14px calc(8px);
  background: linear-gradient(180deg, rgba(13, 10, 5, .66), rgba(13, 10, 5, 0));
  pointer-events: none;
}
html.jbt-jh .jh-topbar .jh-brand {
  pointer-events: auto; font-size: 17px; letter-spacing: 5px;
  color: #e9dfc8; text-decoration: none; text-shadow: 0 1px 4px rgba(0, 0, 0, .6);
}
html.jbt-jh .jh-topbar .brand-seal { width: 22px; height: 22px; }

/* 画卷页 HUD / 科举右上浮窗：给叠加页头让位（原 top:10px / .8em 会撞车） */
html.jbt-jh .hud { top: 46px !important; }
html.jbt-jh .top-controls { top: 3.2em !important; }
/* 置业页景名匾（pan 外的 UI 层，原 top:12/8px 固定在容器顶，会被品牌头压住） */
html.jbt-jh .plaque { top: 52px !important; }

/* ver.js 版本行：在 overflow:hidden 的游戏页没有文档流可排，会浮到页面顶上
   与品牌头叠字（2026-10-10 深夜巡检抓到，科举/六贤/寺院/道观/武馆均中）—— 沉浸页收掉 */
html[data-jh-immersive] .ver-line { display: none !important; }

/* ---- 十四 · 酒楼输入区被底栏挡住（创始人 2026-10-10 晚反馈）：整体抬到底栏之上 ----
 * 底栏 .jbt-tabs 高约 64px + safe-area；.bar（输入栏）原 bottom:0、.acts（动作条）原 bottom:58px。 */
html.jbt-jh .bar { bottom: calc(64px + env(safe-area-inset-bottom)) !important; }
html.jbt-jh .acts { bottom: calc(122px + env(safe-area-inset-bottom)) !important; }
/* 【2026-10-10 创始人调整】点单/递话收窄、输入框拉长：
   根因＝style.css 并壳后带进来的全局 `button { flex:1 }` 把酒楼两个按钮拉成三等分。
   这里收回到「按钮只占内容宽」，#txt 的 flex:1 自然吃满剩余宽度。 */
html.jbt-jh .bar .btn { flex: 0 0 auto; padding: 9px 14px; }

/* ==========================================================================
 * 十五 · W4-07：设置里关掉「江湖」后，江湖页只留一张卡（数据照旧在记）
 *   nav.js 挂 html[data-jh-off="1"] 并注入 .jbt-jh-off；其余 body 直属子元素全收起。
 * ========================================================================== */
html[data-jh-off="1"] body > *:not(.jbt-jh-off):not(.jbt-tabs):not(script):not(style):not(link) { display: none !important; }
html[data-jh-off="1"] body { background: var(--paper, #f4eee1) !important; }
html[data-jh-off] .jbt-jh-off {
  position: fixed; inset: 0; z-index: 80;
  display: flex; align-items: center; justify-content: center;
  background: var(--paper, #f4eee1); padding: 20px;
}
html[data-jh-off] .jbt-jh-off .jho-box {
  max-width: 430px; width: 100%; padding: 26px 22px;
  background: var(--card, #fffdf8); border: 1px solid var(--line, #e3d9c6);
  border-radius: 14px; text-align: center; line-height: 1.9;
  color: var(--ink, #2b2118);
}
html[data-jh-off] .jbt-jh-off .jho-box b { font-size: 17px; letter-spacing: 1px; }
html[data-jh-off] .jbt-jh-off .jho-box p { margin: 10px 0 16px; color: var(--ink-light, #6b5b4a); font-size: 13.5px; }
html[data-jh-off] .jbt-jh-off .jho-box a {
  display: inline-block; margin: 0 5px; padding: 11px 18px; border-radius: 10px;
  background: var(--green, #4E6E52); color: #F3EFE6; text-decoration: none; font-size: 14.5px;
}
html[data-jh-off] .jbt-jh-off .jho-box a.jho-home { background: transparent; color: var(--green, #4E6E52); border: 1px solid var(--green, #4E6E52); }
html[data-theme="night"] .jbt-jh-off { background: #1B1712; }
html[data-theme="night"] .jbt-jh-off .jho-box { background: #201C17; border-color: #332C24; color: #E8E0D0; }
html[data-theme="night"] .jbt-jh-off .jho-box a.jho-home { color: #A8C5B2; border-color: #3F6B58; }
