/* 全局主题色与排版基线 */
:root{
  /* ── 间距档位（4px 栅格，全站唯一间距真源）──────────────────────────
     字号（--tier1..4）与配色（--zr/--bz/--zw…）之外，间距另立五档 token；
     按"语义层级"取值，不按位置逐条补值，同一类关系全站只有一个值：
       --sp-1  4px  紧邻：控件内小元素之间、标签与数值、行内 chip、说明段与其所属表
       --sp-2  8px  同组：模块之间、卡片之间、表单行之间、说明段与其后内容块之间
       --sp-3 12px  组间：模块标题与内容之间、模块内不同内容块之间
       --sp-4 16px  区块间：页面大区块、区块与页脚
       --sp-5 24px  页面级：页头与内容区
     注：1~2px 的 margin 属行内基线微调（文字对齐），不属布局间距，保留裸值不入档；
         交互控件（.btn/input/select/th/td/.tag 等）的 padding 属元件尺寸而非布局间距，同样不入档；
         ≥32px 的大留白（如 .lq-shake 的 40px、.cz-duan 给朱砂印章留的 72px）属元件尺寸或功能性定位，
         超出 5 档范围，亦保留。 */
  --sp-1:4px;
  --sp-2:8px;
  --sp-3:12px;
  --sp-4:16px;
  --sp-5:24px;
  --paper:#ffffff;
  --paper2:#faf9f6;
  --ink:#1a1a1a;
  --ink2:#52525a;
  --line:#ddd8cf;
  --gold:#c9952a;
  --gold2:#a67c28;
  --red:#b84a3a;
  --red2:#9e3d2f;
  --card:#ffffff;
  --shadow:0 1px 6px rgba(0,0,0,.08);
  --gold-bg:#fbf7f0;
  /* 视觉层级规范：标题四级递减字号，色统一 gold2，不另立字体体系。
     层级：① 模块(.mod-title 17) ＞ ② 小节主题(.rel-title 16) ＞ ③ 子块(.det-h 14) ＞ ④ 卡片内标签(.info-box h4 / .life-card h5 13) */
  --tier1:17px; --tier2:16px; --tier3:14px; --tier4:13px;
  --title:var(--gold2);
  --nav:#1e1e1e;
  --nav-text:#f0ece0;
  /* 万年历日历色阶 */
  --cal-hover:#ecebe5;
  --cal-selected:#e2e0d8;
  --cal-zhai:var(--cal-selected);
  /* 辅助色 */
  --green:#2e7d32;          /* 宜、吉、幸运 */
  --brown:#a0522d;          /* 五黄土星等深棕 */
  --gold-brown:#8a6d1f;     /* 飞星2/8、太乙标注 */
  --special-bg:#f3e7d3;     /* sd-special背景 */
  --special-text:#8a5a00;   /* sd-special文字 */
  --special-border:#d8b46a; /* sd-special边框 */
  --font:'Noto Serif SC','Noto Sans Symbols 2','Noto Sans Symbols','Noto Emoji','Noto Serif','Noto Sans Devanagari','Source Han Serif SC','Songti SC','STSong','SimSun',serif;  /* 全站主字体：思源宋体自托管分片＋符号补全子集，见 assets/fonts/，随站交付不依赖访客系统 */
  --font-serif:'Noto Serif SC','Noto Sans Symbols 2','Noto Sans Symbols','Noto Emoji','Noto Serif','Noto Sans Devanagari','Source Han Serif SC','Songti SC','STSong','SimSun',serif;  /* 经典衬线真源，与主字体同族 */
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  font-family:var(--font);
  background:var(--paper);
  color:var(--ink);
  line-height:1.7;
  /* Windows 用系统默认次像素(ClearType)渲染中文，Mac 用灰度；不强制 antialiased(会让 Windows 中文发虚) */
  -webkit-font-smoothing:auto;
  text-rendering:optimizeLegibility;
}
a{color:inherit;text-decoration:none}
/* 下拉：闭合态不改、不包壳 —— 各页 .field select、.ai-form select、.dt-month 等各有
   主题（边框色、底色、字色、圆角 10px 或 0），保留原生 select 即天然同貌，零复制、零冲突、不动布局。
   （若用 span 包壳 + button 复制样式，会被页面按钮规则串改：.dt-head button
   的 width:26px、height:26px 特异性 (0,1,1) 压过 .sel-btn (0,1,0)，把月份下拉压成 26px。）
   只在 mousedown 阶段由 app.js 拦下原生展开（原生列表由浏览器进程绘制，取不到页面自托管的思源宋体，
   只能落系统字体，而 Windows 自带中文字体均为商业字体、不可免费商用），改弹页面内自绘列表 .sel-list。 */
select{font-family:inherit}
/* data-native 逃生路径才会用到原生列表；这里只 inherit，不指名任何商业字体。 */
select option{font-family:inherit}
/* 自绘列表：挂在 body 上 + position:fixed，故不受任何祖先 overflow 裁剪（若挂在 .dt-modal 内，
   被 overflow:auto 裁剪且溢出 182px）。边框色、底色、字色、圆角、字体由 app.js 取所属 select 的
   计算值，故与该页控件同貌；此处只写兜底值。 */
.sel-list{position:fixed;z-index:100000;margin:0;padding:2px 0;
  max-height:52vh;max-width:92vw;overflow:auto;overscroll-behavior:contain;
  background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:0;box-shadow:none;
  font-family:var(--font);font-size:14px;line-height:1.7;box-sizing:border-box}
.sel-opt{display:flex;align-items:center;height:var(--sel-opt-h,32px);padding:0 12px;cursor:pointer;white-space:nowrap;font-family:inherit;box-sizing:border-box}
.sel-opt:hover{background:var(--tk-tint,var(--gold-bg))}
/* 选中项：取当前页主体色 --tk（由 .dtm-* 类带出，见 app.js 自绘列表），无主题页回落 --red。
   不再写死 --red——选中项须随各页主体色；
   字重 400 与弹框选中态同口径——层级靠颜色区分，不靠加粗。 */
.sel-opt.on{color:var(--tk,var(--red));font-weight:400}
.wrap{max-width:1080px;margin:0 auto;padding:0 var(--sp-4)}

/* top bar */
.topbar{
  background:#1c1a17;
  color:var(--nav-text);
  position:relative;z-index:40;
}
.topbar .wrap{display:flex;align-items:center;gap:var(--sp-4);height:62px}
/* 顶栏与首页「目录册页」同语言：墨黑、朱砂点缀、宋体题签、下划线代替药丸 */
/* 品牌锁排：朱印 + 双行题字（中文题签 / 拉丁刻印），印与字等高咬合 */
.brand{display:flex;align-items:center;gap:11px}
.brand .seal{width:36px;height:36px;flex:none;display:block}
.brand .seal img{display:block;width:100%;height:100%}
.brand .wordmark{display:flex;flex-direction:column;gap:3px;line-height:1}
.brand .wordmark b{font-family:var(--font-serif);font-weight:400;font-size:19px;letter-spacing:.32em;text-indent:.06em;color:#f0ece0}
.brand .wordmark i{font-style:normal;font-size:8px;font-weight:400;letter-spacing:.42em;color:#7d776b;
  font-family:'Helvetica Neue',Arial,sans-serif}
.nav{margin-left:auto;display:flex;gap:var(--sp-3);align-items:center}
.nav .nav-link{position:relative;padding:var(--sp-2) 2px;font-size:13.5px;letter-spacing:.08em;color:#c6c0b2;transition:color .15s;white-space:nowrap;border-radius:0}
.nav .nav-link::after{content:'';position:absolute;left:0;right:0;bottom:-2px;height:2px;background:transparent;transition:background .15s}
.nav .nav-link:hover{background:none;color:#f0ece0}
.nav .nav-link.active{background:none;color:#f0ece0;font-weight:400}
.nav .nav-link.active::after{background:#a5321f}
.nav-group{position:relative}
.nav-top{background:none;border:none;color:#c6c0b2;font-family:inherit;font-size:13.5px;letter-spacing:.08em;cursor:pointer;position:relative;
  padding:var(--sp-2) 2px;border-radius:0;white-space:nowrap;display:flex;align-items:center;gap:5px;transition:color .15s}
.nav-top::after{content:'';position:absolute;left:0;right:0;bottom:-2px;height:2px;background:transparent;transition:background .15s}
.nav-top:hover{background:none;color:#f0ece0}
.nav-group.has-active .nav-top{color:#f0ece0;font-weight:400}
.nav-group.has-active .nav-top::after{background:#a5321f}
.nav-top .caret{font-size:9px;opacity:.6}
.nav-menu{display:none;position:absolute;top:100%;right:0;margin-top:var(--sp-2);min-width:150px;
  background:#25221e;border:1px solid rgba(255,255,255,.12);border-radius:0;padding:var(--sp-1);z-index:50;
  box-shadow:0 14px 32px rgba(0,0,0,.45);flex-direction:column;gap:1px}
.nav-group:hover .nav-menu,.nav-group.open .nav-menu{display:flex}
.nav-menu a{padding:var(--sp-2) var(--sp-3);border-radius:0;font-size:13.5px;letter-spacing:.05em;color:#c6c0b2;white-space:nowrap;transition:background .12s,color .12s}
.nav-menu a:hover{background:rgba(255,255,255,.07);color:#f0ece0}
.nav-menu a.active{background:none;color:#cf6a4d;font-weight:400}
/* 顶栏两枚按钮同款同形：同高 30px、直角、无描边（⚙ AI 与 ☰ 只留字形与满填态），宽度随内容。
   无描边必须写 border:0 终值：button 不写 border 会回落浏览器默认的 2px outset 边框。 */
.ai-gear{display:inline-flex;align-items:center;height:30px;padding:0 12px;background:none;
  color:#c6c0b2;border:0;border-radius:0;
  font-size:12.5px;letter-spacing:.1em;font-family:inherit;cursor:pointer;white-space:nowrap;transition:all .15s}
.ai-gear:hover{background:#a5321f;color:#f5efe2}
.menu-btn{display:none;align-items:center;justify-content:center;height:30px;padding:0 12px;background:none;
  color:#c6c0b2;border:0;border-radius:0;font-size:14px;line-height:1;
  cursor:pointer;transition:all .15s}
.menu-btn:hover{background:#a5321f;color:#f5efe2}

/* hero */
.hero{text-align:center;padding:var(--sp-5) 0 var(--sp-2)}
.hero .slogan{font-size:15px;color:var(--gold2);letter-spacing:6px}

/* today card */
.today-card{
  background:var(--paper2);border:1px solid var(--line);border-radius:0;
  box-shadow:var(--shadow);padding:var(--sp-4);margin:var(--sp-3) 0;
}
.home .today-card{background:var(--card)}
.today-top{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-4);justify-content:center}
.big-date{text-align:center;min-width:100px}
.big-date .d{font-size:40px;font-weight:700;color:var(--red);line-height:1}
.big-date .ym{font-size:14px;color:var(--ink2);margin-top:var(--sp-1)}
.big-date .wk{font-size:13px;color:var(--ink2)}
.lunar-info{text-align:center}
.lunar-info .ln{font-size:18px;font-weight:700}
.lunar-info .zodiac{font-size:13px;color:var(--ink2);margin-top:var(--sp-1)}

/* ganzhi pillars ： 四柱始终同一排（均分可收缩，移动端也不换行） */
.pillars{display:flex;gap:var(--sp-2);justify-content:center;flex-wrap:nowrap;width:100%;margin-top:var(--sp-1)}
.pillar{
  flex:1 1 0;min-width:0;
  background:var(--card);border:1px solid var(--line);border-radius:0;
  padding:var(--sp-2) var(--sp-1);text-align:center;
}
.pillar .lbl{font-size:11px;color:var(--ink2);margin-bottom:var(--sp-1)}
.pillar .gz{font-size:22px;font-weight:700;color:var(--ink);letter-spacing:1px}
.pillar .wx{font-size:11px;color:var(--gold2);margin-top:2px}

/* module grid */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--sp-3);grid-auto-rows:1fr}
.grid .mod{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;box-sizing:border-box;margin-bottom:0}
.grid .mod:hover{transform:translateY(-3px);border-color:var(--gold);box-shadow:0 6px 18px rgba(168,120,31,.12)}
.mod .ic{
  width:48px;height:48px;margin:0 auto var(--sp-1);border-radius:0;
  background:linear-gradient(135deg,#a8781f,#7d5a15);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:700;
}
.mod .nm{font-size:13px;font-weight:600;line-height:1.25;color:var(--ink);margin:0 auto;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mod.soon .ic{background:linear-gradient(135deg,#c0bbb0,#a8a29e)}
.mod.soon .nm{color:var(--ink2)}
/* 手机端：一排 3 个排盘工具（图标 + 小字名称） */
@media(max-width:640px){
  .grid{grid-template-columns:repeat(3,1fr);gap:var(--sp-2)}
  .grid .mod{padding:var(--sp-3) var(--sp-1)}
  .mod .ic{width:40px;height:40px;font-size:19px;border-radius:0;margin-bottom:var(--sp-1)}
  .mod .nm{font-size:12px}
}

/* generic page */
/* 精简边框三层+内层四模块：去外层 .page 框（与 body 同质）、.mod-head 仅留底色+金色左线（去全框）。响应式下少 2-3 层叠加挤压。 */
/* 间距单一来源：footer 顶部 padding(var(--sp-4)=16px) 已承担「内容→免责声明」的间隙，
   故 .page 底部 padding 归零，避免与 footer 顶部 padding 叠加成双倍（万年历等通用 .page 页曾出现 28px 空隙）。
   首页等 .hm-page 已显式 padding:0 24px，与此一致。 */
.page{background:transparent;padding:var(--sp-3) var(--sp-4) 0;margin:0;color:var(--ink)}
/* 全站 .info-box 高级卡片语言（对齐历法页/首页模块）：纯白底 + 细边 + 圆角 + 极淡阴影，克制不厚重。
   特殊语义变体（.q-quant/.nayin-box/.info-grid.base-info .info-box 等）以更特异性规则保留透明，不受本规则影响；
   历法页 .cal-page .info-box 更特异，依旧白卡语言，本规则不冲突。 */
.page .info-box{
  background:var(--card);border:1px solid var(--line);border-radius:0;
  box-shadow:var(--shadow);
}
.page h1{font-size:23px;margin-bottom:var(--sp-1);font-weight:400}
.page .lead{color:var(--ink2);font-size:14px;margin-bottom:var(--sp-4)}
/* 题下竖线：排布全站一致，各页只换线色（--line 在页级段已重定义为本页线色） */
.page .lead::after{content:'';display:block;width:1px;height:26px;margin:var(--sp-3) auto 0;background:var(--line)}

/* form */
/* ===== 输入框宽度规则（顶层，全站唯一口径；页面级不得重定义下列同值项） =====
   一、总则：控件宽度即其最大值 ＝ 内容宽 ＋ 左侧间距 ＋ 右侧间距 ＋ 边框 2px。
   内容宽取该控件「允许输入的最长内容」之实测宽（非当前值、非字形墨迹、非控件固有宽）；
   左右间距恒等，统一取 14 至 16px（与日期框同档，各类控件不得各取一档）；禁随字段伸展、禁铺满。
   二、定宽族（内容形态固定者取下列值，页面级禁改）：
   1. 文本日期框 yyyy-mm-dd：内容 64.3px，取 96px；
   2. 时间框 HH:MM：内容 40px（五字符占宽，Chrome 分段控件内钟点、分隔、分钟三段实测占位 36.1px，按字形向上取整），取 72px；
   3. 原生日期框 type="date"：控件固有宽，取 129px，禁收 96px；
   4. 姓名栏（2 至 3 汉字）：取 96px，与同行的日期框等宽；
   5. 农历年（4 位数字）：取 76px；
   6. 出生地三级下拉：最长项 新疆维吾尔自治区，取 137px，省、市、区县三级同值；
   7. 经度与纬度（可选，数字或短文本）：取 96px，与日期框、姓名栏同值（最长内容为 -179.99 一类七字符）；时区（数字）：取 64px；
   8. 姓名学联名模式“适用对象”下拉：最长项 龙凤胎（男先），取 130px（文字墨迹 81.83px，右余 17.5px）；
   三、下拉族（默认适用）：select 一律 width:auto，宽度由最长选项自然定出（浏览器另计原生箭头位）。
   🔴 input 禁用 width:auto：其缺省会落到浏览器默认约 147px 而失控，输入类一律走定宽族给值。
   四、定宽族（输入类，须显式给值）：除第二段已列者，其余按承载内容定值，逐类登记于宽度表。
   五、网格族：成组排列的控件（六爻数字格、梅花数字格、风水九星格、罗盘二十四山格、姓名学五行格）
   按格宽统一定值，不按内容，登记于表。
   六、整行族（占满整行者，须在表内登记，禁以 width:100% 隐式铺满）：
   检索框、AI 输入框、长文本问题框，min-width:0，宽度上限由所在容器给出。
   七、验收三条（须同时满足）：
   ① 两侧余量 ≥ 2px；② 两侧余量差 ≤ 1px；③ 左右间距落在 14 至 16px 档内。下拉族只验①。
   ===== */
/* 姓名学联名模式“适用对象”下拉：按顶层规则第二段第 8 条取 130px。
   该项文案为 龙凤胎（男先）与 龙凤胎（女先），最长选项文字墨迹 81.83px；
   130px 下自文字右缘到原生箭头尚余 17.5px（DSF6 像素扫描实测），故不随最长选项自然定宽。
   同行的联名法下拉不随同收窄：其最长选项 拆字合名（单字名）在 130px 下被切，仍取自然宽 163px。 */
#nmTwinKind{width:130px}
.form-row{display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:flex-end;margin-bottom:var(--sp-4)}
.field{display:flex;flex-direction:column;gap:var(--sp-1);min-width:0}
.field label{font-size:13px;color:var(--ink2)}
/* 全站控件同高 30px：input 与 select 原生高度不同，显式等高才与按钮、日期图标盒上下沿齐平 */
.field input,.field select{
  height:30px;padding:4px 12px;border:1px solid var(--line);border-radius:0;
  background:var(--card);font-size:13px;font-family:inherit;color:var(--ink);
  line-height:1.35;box-sizing:border-box;
}
/* form-row内字段紧凑自适应，min-width限制最小宽度，max-width防止过宽 */
.form-row .field{flex:0 0 auto;width:auto;min-width:70px}
.form-row .field input,.form-row .field select{width:auto;max-width:100%;display:inline-block}
/* 日期文本输入：宽 96px 按顶层规则第 1 条，去除浏览器 size=20 默认内在宽度带来的右侧空白 */
.form-row .field input[type="text"].dt-input{width:96px}
/* 万年历等日历页：字段固定155px；日期框按内容自适应（96px，见上条 .dt-input），其余 input 随字段铺满 */
.cal-page .form-row .field{flex:0 0 auto;width:155px}
.cal-page .form-row .field input{width:auto}
.cal-page .form-row .field input[type="text"].dt-input{width:96px;flex:0 0 96px}
.btn{
  height:30px;padding:0 16px;border:1px solid transparent;border-radius:0;cursor:pointer;
  background:var(--red);color:#fff;font-size:13px;font-weight:400;
  font-family:inherit;transition:.2s;max-width:100%;box-sizing:border-box;line-height:1.35;
}
.btn:hover{background:var(--red2)}
.btn.gold{background:var(--red)}
.btn.gold:hover{background:var(--red2)}

/* 历法页：今天按钮与年月标题改用红色。盒尺寸由通用段 .btn 给出，本页只改色 */
.cal-page .btn.gold{background:var(--red)}
.cal-page .btn.gold:hover{background:var(--red2)}
.cal-page .cal-title{color:var(--red)}

/* result table */
.bazi-table{width:100%;border-collapse:collapse;margin-top:var(--sp-3);text-align:center}
.bazi-table th,.bazi-table td{border:1px solid var(--line);padding:10px 6px;font-size:var(--tier4);color:var(--ink)}
.bazi-table th{background:var(--paper2);color:var(--gold2);font-weight:400}
.bazi-table .gan{font-size:28px;font-weight:700;color:var(--ink)}
.bazi-table .zhi{font-size:28px;font-weight:600;color:var(--ink)}
.bazi-table .small{font-size:12px;color:var(--ink);line-height:1.4}
.bazi-table td:first-child{font-weight:400;color:var(--gold2);background:var(--paper2);text-align:center}
.bazi-table th:first-child{text-align:center}
.bazi-table td.small:first-child{font-size:13px}
.wx-mu{color:#5DC336}.wx-huo{color:#F65352}.wx-tu{color:#A07040}
.wx-jin{color:#D4A017}.wx-shui{color:#4190FA}
/* 空亡：虚灰色，示空亡空设、力量虚浮，不与五行色混 */
.bazi-table .kong-cell{color:#9aa0a6}
/* 八字页四柱表 8 列（4柱+大运/流年/流月/流日）：8 个数据列等宽且字体一致（沿用原样式），仅第一列（行标签"四柱"列）去粗 */
.bazi-table.equal8{table-layout:fixed;width:100%}
.bazi-table.equal8 th:first-child,.bazi-table.equal8 td:first-child{width:9%;padding-left:4px;padding-right:4px;font-weight:400}
/* 行标签列写死 9% 在 320 档只有 24px，装不下两字（四柱、主星、天干、地支、藏干）而被挤成各占一行：
   窄屏改按内容定宽，标签不折行，其余列分剩余空间 */
@media(max-width:640px){
  .bazi-table.equal8{table-layout:auto}
  .bazi-table.equal8 th:first-child,.bazi-table.equal8 td:first-child{width:auto;white-space:nowrap}
}
/* 基础信息四柱表：表头行/行标签列去深色背景（与全站量化四柱 .qtab、人生议题 .stab 统一为透明仅留边框）。
   仅作用于八字页基础信息模块，合婚页四柱表保持原样；金字文字颜色保留。 */
#mod-base .bazi-table th{background:transparent}
#mod-base .bazi-table td:first-child{background:transparent}

/* 量化四柱：含量表 + 进度条 */
.qtab{width:100%;border-collapse:collapse;margin:var(--sp-1) 0 var(--sp-3);font-size:13px}
.qtab caption{padding:2px 0 var(--sp-1);text-align:left;font-weight:600;color:var(--gold2);font-size:13px;caption-side:top}
.qtab th,.qtab td{border:1px solid var(--line);padding:5px 7px;text-align:center;color:var(--ink);vertical-align:middle}
.qtab thead th{font-weight:400;color:var(--gold2)}
.qtab td.lbl{text-align:center;font-weight:400;color:var(--gold2);white-space:nowrap}
.qtab td.num{font-variant-numeric:tabular-nums}
.qtab .pct{color:#8a7f66;font-size:12px}
.qtab .ss-tip{cursor:pointer}
.qtab td.lbl.tip{cursor:pointer}
/* 长文表格（易理象数等）：窄屏改内容自适应宽度并横向滚动，避免 fixed 均分挤压 */
.qtab-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;margin:var(--sp-1) 0 var(--sp-3)}
.qtab-scroll>.qtab{margin:0}
/* 五行旺衰：恢复为圆角背景框（旺相休囚死配色） */
.qtab .st{display:inline-block;padding:1px var(--sp-2);border-radius:0;font-size:12px}
.q-sum{font-size:12px;color:#8a7f66;margin:var(--sp-1) 0 var(--sp-2);font-weight:600}
.qbar{position:relative;height:9px;border-radius:0;overflow:hidden;min-width:48px}
.qbar>i{position:absolute;left:0;top:0;bottom:0;border-radius:0;display:block}
/* 五行背景色（与 .wx-* 文字色对应） */
.bg-mu{background:#5DC336}.bg-huo{background:#F65352}.bg-tu{background:#A07040}.bg-jin{background:#D4A017}.bg-shui{background:#4190FA}
.bg-yin{background:#8e7cc3}.bg-yang{background:#e0a96d}
.bg-sheng{background:#5DC336}.bg-ke{background:#F65352}
/* 量化表标签配色：覆盖 .qtab td.lbl 默认金色，使五行/阴阳/十神/六亲/生克按语义上色 */
.qtab td.lbl.wx-mu,.qtab th.wx-mu{color:#5DC336}
.qtab td.lbl.wx-huo,.qtab th.wx-huo{color:#F65352}
.qtab td.lbl.wx-tu,.qtab th.wx-tu{color:#A07040}
.qtab td.lbl.wx-jin,.qtab th.wx-jin{color:#D4A017}
.qtab td.lbl.wx-shui,.qtab th.wx-shui{color:#4190FA}
.qtab td.lbl.q-yin{color:#7b68ae}
.qtab td.lbl.q-yang{color:#c0772b}
.qtab td.lbl.q-sheng{color:#5DC336}
.qtab td.lbl.q-ke{color:#F65352}
@media(max-width:640px){
  .qtab .qbar{min-width:30px;height:8px}
  .qtab caption{font-size:12px}
  /* 五行量化与旺衰的 7 列表格在窄屏下收紧间距，避免横向溢出 */
  .qtab.wxq th,.qtab.wxq td{padding:3px 2px}
  .qtab.wxq .qbar{min-width:26px}
  .qtab.wxq .pct{font-size:11px}
  /* 响应式通用化：窄屏量化表改 fixed 布局，列均分、内容折行，整页不再横向滚动（与 .bazi-table 移动端策略一致） */
  .qtab{table-layout:fixed}.qtab th,.qtab td{padding:3px 2px;word-break:break-word;overflow-wrap:anywhere}
  .qtab td.lbl{white-space:normal}
  /* prose 表格脱离 fixed 均分：按内容自适应、未超宽即撑满，超宽则横向滚动 */
  .qtab-scroll>.qtab{table-layout:auto;width:auto;min-width:100%}
}
/* 易理象数：子块散文间距与页面同节奏（裸 .ly-zh-p 8px 段距连续多段偏大，收至 4px，对齐 .zh-pd 紧凑模式）；
   表格复用站点参考表（.stab/纳音）同款适距与对齐：padding 6px 9px、数据列居中、末列长文左对齐、顶对齐；
   移动端豁免 .qtab 的 3px2px 收紧（否则比参考表更贴边框，差别明显） */
#mod-yili .zr-mod-b .ly-zh-p{margin:var(--sp-1) 0 0}
.yili-tbl th,.yili-tbl td{padding:6px 9px;vertical-align:top;text-align:center;line-height:1.8}
/* 首列是短标签，居中；其余列皆为内容列，一律左对齐。对齐禁按列序写死，换列后即失准 */
.yili-tbl td:not(:first-child){text-align:left}
/* 库藏列：桌面隐藏 <br> 拼成"水水库"一排；仅移动端换行成两行 */
.yili-tbl td:nth-child(2) br{display:none}
/* 仅移动端：易理表列多，收紧横向留白并限宽随内容，避免文字距边框过宽、列被拉宽；桌面端维持 .qtab 默认撑满宽，不受影响 */
@media(max-width:640px){
  .yili-tbl{min-width:0;width:auto}
  .yili-tbl th,.yili-tbl td{padding:5px 4px}
  .yili-tbl td:nth-child(2) br{display:inline}
  /* 五行阶段表：五行列（首列）与能量列（末列）不因窄屏折行（五行 2 字、能量含小数点数字一整段） */
  .yili-tier th:nth-child(1),.yili-tier td:nth-child(1){white-space:nowrap}
  .yili-tier th:nth-child(3),.yili-tier td:nth-child(3){white-space:nowrap}
}

.info-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--sp-3);margin-top:var(--sp-3)}
/* 三方四正会照（三合派）：标题+内容一排 */
.info-box.sanhe-line{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);margin:0}
.info-box.sanhe-line .sh-name{font-weight:700;color:var(--gold2);white-space:nowrap;flex-shrink:0}
.info-box.sanhe-line .sh-b{font-size:13px;color:var(--ink);flex:1;min-width:0;line-height:1.5}
/* 四化飞星：标题+内容一排，自适应宽度 */
.lqkj-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--sp-2);margin-top:var(--sp-2)}
.lqkj-grid .info-box.lqkj-line{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);margin:0}
.lqkj-grid .lq-h{font-weight:700;color:#fff;border-radius:0;padding:1px var(--sp-2);font-size:13px;white-space:nowrap;flex-shrink:0}
.lqkj-grid .lq-b{font-size:13px;color:var(--ink);flex:1;min-width:0;line-height:1.5}
.lqkj-grid .info-box.lqkj-line.lq-禄 .lq-h{background:#2e8b57}
.lqkj-grid .info-box.lqkj-line.lq-权 .lq-h{background:#b8860b}
.lqkj-grid .info-box.lqkj-line.lq-科 .lq-h{background:#2b6cb0}
.lqkj-grid .info-box.lqkj-line.lq-忌 .lq-h{background:var(--red)}
.info-grid.base-info{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
/* 基础信息四块（农历 / 生肖星座二十八宿 / 命宫胎元身宫 / 节气）：去背景色、去阴影，仅留边框，弱化色块噪音 */
.info-grid.base-info .info-box{background:transparent;box-shadow:none}
.info-grid.mh-top{grid-template-columns:repeat(3,1fr)}
/* 梅花易数：分类专项占断卡片（恢复原格式） */
.mh-cat-wrap{margin-top:var(--sp-3)}
.mh-cat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-2)}
.mh-cat-card{background:var(--paper2);border:1px solid var(--line);border-radius:0;padding:var(--sp-2) var(--sp-3)}
.mh-cat-card h5{font-size:13px;color:var(--ink);margin:0 0 var(--sp-1)}
.mh-cat-card p{font-size:12.5px;line-height:1.7;color:var(--ink);margin:0}
.info-grid.xlr-result{grid-template-columns:repeat(2,1fr)}
.info-box{background:var(--paper2);border-top:2px solid var(--gold);border-radius:0;padding:var(--sp-3) var(--sp-3)}
/* 量化四柱：外层大边框去掉背景色，仅留边框（内部折叠子项已与页面同色） */
.info-box.q-quant{background:transparent;margin-top:var(--sp-3)}
.info-box h4{font-size:var(--tier4);font-weight:700;color:var(--title);margin-bottom:var(--sp-1);line-height:1.35}
.info-box .yi{color:var(--green)}.info-box .ji{color:#F65352}
/* 速览全局：基础信息模块顶部一屏速览卡片（命局关键结论一眼可见，弱化色彩噪音）。
   桌面端各项均分卡片宽度（flex:1 1 0）填满整行，标题与内容同一行；内容长则在项内换行。
   移动端窄屏以 flex-wrap 自然换行（见下 media 块）。 */
.overview-card{display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-4);margin:var(--sp-3) 0 var(--sp-1);padding:var(--sp-2) var(--sp-3);background:var(--card);border:1px solid var(--line);border-radius:0}
.overview-card .ov-item{display:flex;flex-direction:row;align-items:baseline;gap:var(--sp-1);flex:1 1 0;min-width:0}
.overview-card .ov-k{font-size:12px;color:var(--ink2);letter-spacing:1px;flex:0 0 auto;white-space:nowrap}
.overview-card .ov-v{font-size:14px;font-weight:400;color:var(--gold2);line-height:1.3;min-width:0;word-break:break-word}
@media (max-width:560px){
  .dy-list{grid-template-columns:1fr !important}
  .dy-row{flex-wrap:wrap;gap:var(--sp-1) var(--sp-2);padding:var(--sp-2) var(--sp-3)}
  .dy-star{flex-basis:100%;text-align:left !important;margin-top:2px}
  .palace-detail{grid-template-columns:1fr !important}
  .zp-yun-grid{grid-template-columns:1fr !important}
  /* 手机端紧凑化：基础信息卡片（农历/生肖/命宫/节气）内容与表格内容（td 13px/lh1.4）对齐。
     必须用 #mod-base 提级：基线 .info-box p{13.5px}（文件后部 246 行）同特异性会覆盖此处的 13px，
     提级后 (1,1,1) > (0,1,1) 才真正生效 */
  #mod-base .info-box{padding:var(--sp-2) var(--sp-3)}  /* 基础信息区 info-box padding 定制（圆角/边框随基础规则） */
  #mod-base .info-box h4{font-size:12px;margin-bottom:var(--sp-1);line-height:1.3}
  #mod-base .info-box p{font-size:13px;line-height:1.4}
  /* 节气框（.jq）：手机端再缩一号（11px），当令/下一节各一行紧凑排布，少占空间 */
  #mod-base .info-box p.jq{font-size:11px;line-height:1.35}
  #mod-base .info-box .gua-sub{font-size:11px;line-height:1.4}
  .bazi-table td.small .tip{line-height:1.2}.overview-card{gap:var(--sp-1) var(--sp-2);padding:var(--sp-2) var(--sp-3);margin:var(--sp-2) 0 2px;border-radius:0}.overview-card .ov-item{flex:1 1 auto;white-space:nowrap;gap:var(--sp-1)}
  .overview-card .ov-k{font-size:11px;letter-spacing:.5px}.overview-card .ov-v{font-size:13px;line-height:1.25}
}
.info-box.yi{border-top:2px solid var(--green)}.info-box.yi h4{color:var(--gold2)}
.info-box.ji{border-top:2px solid var(--red)}.info-box.ji h4{color:var(--gold2)}
.info-box p{font-size:14px;line-height:1.95;color:var(--ink)}
.info-box .gua-sub{font-size:12px;line-height:1.65;color:var(--ink2)}
/* 太乙 详细版推演：去除所有粗体（含格局栏 dt/dd），统一常规字重 */
.ty-derive .dr dt,.ty-derive .dr dd{font-weight:400}
/* 综合判断段落（六爻等解读模块复用） */
.ly-zh-p{font-size:13.5px;line-height:1.85;color:var(--ink);margin:var(--sp-2) 0 0}
.ly-zh-p:first-of-type{margin-top:var(--sp-1)}

/* 九宫飞星 ： 改用流体方形格子，手机端自动收缩不溢出 */
.fei-wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-4);margin-top:var(--sp-3);justify-items:center}
.fei-block{flex:0 0 auto;width:100%;max-width:240px}
.fei-cap{font-size:var(--tier4);font-weight:400;color:var(--gold2);margin-bottom:var(--sp-2);text-align:center}
.fei-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:var(--sp-1);
  width:100%;max-width:240px;aspect-ratio:1/1}
.fei-cell{border:1px solid var(--line);border-radius:0;display:flex;flex-direction:column;
  align-items:center;justify-content:center;background:var(--paper2);line-height:1.2;
  min-width:0;overflow:hidden;padding:2px}
/* 宫位数按盘面档位定：桌面四列（≥901px）盘面被压到约 208px、格内偏挤，此档 18px；
   两列档（641–900）22px；单列档（≤640）20px */
.fei-n{font-size:18px;font-weight:700}
@media(max-width:900px){.fei-n{font-size:22px}}
@media(max-width:640px){.fei-n{font-size:20px}}
.fei-t{font-size:12px;margin-top:1px}
.fei-w{font-size:11px;color:var(--ink2);margin-top:1px}
.fei-1{color:#4190FA}.fei-2{color:var(--gold-brown)}.fei-3{color:#5DC336}.fei-4{color:#5DC336}
.fei-5{color:var(--brown)}.fei-6{color:#b8860b}.fei-7{color:#b8860b}.fei-8{color:var(--gold-brown)}.fei-9{color:#F65352}

.notice{background:var(--paper2);border:1px solid var(--line);border-radius:0;padding:var(--sp-3) var(--sp-3);
  font-size:13px;color:var(--ink);margin-top:var(--sp-4)}
.notice-bottom{margin-top:var(--sp-4);text-align:left;font-weight:400}
/* 八字联动横幅：从八字页跳转进入时在页面顶部显示命盘背景信息 */
.bazi-link-banner{margin:var(--sp-2) 0 var(--sp-3);padding:var(--sp-2) var(--sp-3);border:1px solid var(--gold);border-radius:0;background:var(--paper2);font-size:12.5px;line-height:1.7;color:var(--ink)}
.bazi-link-banner b{color:var(--gold2);font-weight:700}
.xz-note{font-size:12px;color:var(--ink2);margin-top:var(--sp-1);line-height:1.5}
/* 参考折叠模块（二级折叠区统一形制，样板是紫微斗数页的参考折叠件 zw-ref：
   收起态上下两线夹住题名，展开态只留上线；题名随墨档宋体） */
.mh-ref{margin-top:var(--sp-4);border:0;border-top:1px solid var(--line);border-radius:0;padding:var(--sp-3) 0;background:transparent;text-align:left}
.mh-ref:not([open]){border-bottom:1px solid var(--line)}
.mh-ref summary{cursor:pointer;font-family:var(--font-serif);font-weight:400;color:var(--gold2);font-size:var(--tier3);letter-spacing:.1em;line-height:1.5}
.mh-ref table{width:100%;border-collapse:collapse;margin-top:var(--sp-2)}
.mh-ref th,.mh-ref td{border:1px solid var(--line);padding:6px 8px;font-size:var(--tier4);text-align:center}
.mh-ref th{background:var(--paper);color:var(--gold2)}
.mh-method{font-size:12px;color:var(--ink2);margin-top:var(--sp-2);line-height:1.85}
/* 小六壬：掌诀指图折叠（二级折叠区统一形制，同 .mh-ref） */
.xlr-ref-d{margin-top:var(--sp-4);border:0;border-top:1px solid var(--line);border-radius:0;padding:var(--sp-3) 0;background:transparent;text-align:left}
.xlr-ref-d:not([open]){border-bottom:1px solid var(--line)}
.xlr-ref-d>summary{list-style:none;cursor:pointer;font-family:var(--font-serif);font-weight:400;color:var(--gold2);font-size:var(--tier3);letter-spacing:.1em;line-height:1.5;display:block}
.xlr-ref-d>summary::-webkit-details-marker{display:none}
.xlr-ref-d>summary::after{content:" ▾";color:var(--ink2);font-size:12px;font-weight:400}
.xlr-ref-d[open]>summary::after{content:" ▴"}

/* calendar */
.cal-title{font-weight:700;font-size:1.05rem;margin:var(--sp-1) 0 var(--sp-2);text-align:center;color:var(--gold2)}
/* 万年历 翻月/翻年 导航：标题居中、箭头分列两侧，桌面与手机均保持一行 */
.cal-nav{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);margin:var(--sp-1) 0 var(--sp-2)}
.cal-nav-grp{display:flex;gap:var(--sp-1);flex:0 0 auto}
.cal-nav .cal-title{flex:1 1 auto;margin:0}
.nav-btn{width:30px;height:30px;border:1px solid transparent;background:transparent;color:var(--gold2);
  border-radius:0;font-family:inherit;font-size:17px;line-height:1;cursor:pointer;transition:.15s;padding:0}
.nav-btn:hover{border-color:var(--gold);background:var(--gold);color:#fff}
.data-export-target{display:block}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--sp-2) var(--sp-2);
  padding:0;border:0;border-radius:0;background:transparent;margin-top:var(--sp-4)}
/* 详情区淡入（日期切换/排盘完成后） */
@keyframes fadeInUp{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
#dayDetail,#out,.detail-anim{animation:fadeInUp .3s ease}
/* 结果区与其后紧邻的一块（二级折叠区、附加功能面板）之间取区块间档 --sp-4，
   与结果区之前的区块边界同值，使结果区前后两侧节奏对称。
   二级折叠区彼此之间同取 --sp-4（四之 12），与一级折叠区 section.mod 的
   margin-bottom 同值：两条按位置分工，同一元素只可能命中一条，不构成叠加。 */
#out + *{margin-top:var(--sp-4)}
/* 结果区带快速翻查导航时不短于一屏的旧方案（#out.has-nav{min-height:100vh}）已废弃：
   min-height 拉伸的空白落在 #out 流内末尾（结尾免责语之后），把下方"关联数术 深入分析"板块推远，
   免责语与该板块之间出现整屏级大间距。短内容时吸顶导航行程不足的代价由页面下方
   "关联数术"/附加功能/页脚等长内容兜底（页面仍可滚动），两害相权取其轻。 */
/* 骨架屏：日历加载占位（6行×7列灰块） */
.skeleton-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--sp-2) var(--sp-2);padding:var(--sp-3);border:1px solid var(--line);border-radius:0;background:var(--card)}
.sk-cell{min-height:58px;border-radius:0;background:linear-gradient(100deg,#f0efe9 40%,#f8f7f2 50%,#f0efe9 60%);background-size:200% 100%;animation:skShimmer 1.4s infinite}
@keyframes skShimmer{0%{background-position:100% 0}100%{background-position:-100% 0}}
.sk-cell.wd{min-height:22px}
.cal-grid .wd{text-align:center;font-size:13px;color:var(--ink2);padding:var(--sp-1) 0;font-weight:700}
.cal-cell{background:transparent;border:1px solid transparent;border-radius:0;
  min-height:64px;min-width:0;padding:var(--sp-1);display:flex;flex-direction:column;position:relative;
  align-items:center;justify-content:center;text-align:center;cursor:pointer;transition:.15s}
.cal-cell:hover{background:var(--cal-hover)}
/* 周末日期红字（页级覆写会换为各自朱砂色） */
.cal-cell.weekend .sd-num{color:#F65352;font-weight:700}
/* 日历格角标：五历页共用一套四角定位——同一字号、同一行高、同一内缩。
   四角分工：左上＝节日、斋、吉、殊，右上＝节气、圣诞，左下＝休、班，右下＝纪念日。
   行高一律取 1，行盒即字号，左右角标同现时字顶同高（行高 normal 会让字在行盒内下沉）。 */
.cal-cell .jq-mark,.cal-cell .fest-mark,.cal-cell .mem-mark,.cal-cell .rest-mark,.cal-cell .mk{
  position:absolute;top:var(--sp-1);font-size:9px;line-height:1;font-weight:700}
.cal-cell .jq-mark{right:var(--sp-1);color:#3c7a3c}
/* 节日角标：窄屏隐去节日名后由它顶替，红色「节」与右上的节气角标（节、气）靠色相区分 */
.cal-cell .fest-mark{left:var(--sp-1);display:none;color:var(--red)}
/* 今日：颜色由各页主题段给定终值（黛青/藏蓝/袈裟金/玄青/藏红），本站只保文字转白的兜底 */
.cal-cell.today{color:#fff}
/* .slot 是格内节气与节日的共用槽（万年历、老黄历两页以 slot-jq 与 slot-fest 分色），
   取色规则带页前缀且在本条之后（如 slot-jq 与 slot-fest 分取绿与红），
   故本条一律用 !important 兜底，避免节日色压在今日实色底上相冲 */
.cal-cell.today .sd,.cal-cell.today .ld,.cal-cell.today .festival,.cal-cell.today .slot,
.cal-cell.today .jq-mark,.cal-cell.today .fest-mark,.cal-cell.today .mem-mark,
.cal-cell.today .rest-mark,.cal-cell.today .mk,.cal-cell.today .sd-num{color:#fff!important}
.cal-cell.other{opacity:.4}
/* 日历色标由角标 .mk-* 取代（左上「斋、吉、殊」、右上「诞、节」）：色标条带在纸本语言下与「线、字优先」冲突，已撤 */
.cal-cell .sd{font-size:18px;line-height:1}
.cal-cell .sd-num{line-height:1}
.cal-cell .ld{font-size:11.5px;color:rgba(30,31,36,.5);line-height:1.2;margin-top:var(--sp-1);max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal-cell .festival{font-size:11px;color:var(--gold2);line-height:1.2;margin-top:2px;max-width:100%;width:100%;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ziwei board：融合本站黑金色卡片语言 */
.zw-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:var(--sp-1)}
.zp-v{--major:var(--gold2);--text:var(--ink);--green:var(--gold2);--border:var(--line);
  --lu:#d4380d;--quan:#2f54eb;--ke:#237804;--ji:#000;}
.zp-v .zw-board{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(4,1fr);
  gap:var(--sp-1);max-width:580px;margin:var(--sp-2) auto var(--sp-1);position:relative;aspect-ratio:1/1;
  padding:0;background:transparent;border:none;border-radius:0;box-shadow:none}
.zp-v .zw-links{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:4;display:block;background:transparent}
.zp-v .zw-pal{background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:0;box-shadow:var(--shadow);
  padding:var(--sp-2) var(--sp-2);display:flex;flex-direction:column;justify-content:flex-start;
  min-height:0;min-width:0;overflow:hidden;position:relative;transition:background .15s}
.zp-v .zw-pal:hover{background:var(--cal-hover)}
/* 宫名沉底（参考站形态）铁律：星曜 order:1 占满上方，宫名 order:2 沉底。DOM 顺序 head 在前，必须用 order 翻转 */
.zp-v .zw-pal .zw-stars{order:1;display:flex;flex-direction:column;align-items:flex-start;gap:0;line-height:1.3;flex:1;min-height:0}
.zp-v .zw-pal .zw-head{order:2;margin-top:auto;display:flex;justify-content:space-between;align-items:baseline;gap:var(--sp-1);flex-shrink:0;line-height:1.15}
/* 本站黑金色系：宫名/干支/主星大字=金、亮度=金半透、次星/辅曜=墨灰 */
.zp-v .zw-pal .zw-pname{font-weight:bold;color:var(--gold2);font-size:14px;white-space:nowrap;line-height:1.1}
.zp-v .zw-pal .zw-gz{font-size:12px;color:var(--gold2);white-space:nowrap;font-weight:600;line-height:1.1}
.zp-v .zw-pal .zw-major{font-size:15px;font-weight:bold;color:var(--gold2);line-height:1.25}
.zp-v .zw-pal .zw-major .major{white-space:nowrap}
.zp-v .zw-pal .zw-major i{font-style:normal;font-size:10.5px;font-weight:600;color:var(--gold2);opacity:.55;margin-left:1px}
.zp-v .zw-pal .zw-minor{font-size:12.5px;color:#55504a;line-height:1.3;white-space:normal;word-break:break-all}
.zp-v .zw-pal .zw-adj{font-size:11.5px;color:#6e6963;line-height:1.4;white-space:normal;word-break:break-all}
/* 空宫"主星虚"：站内墨灰，正常可读 */
.zp-v .zw-pal .vmajor{color:#6e6963;font-weight:normal;font-size:12px}
/* 四化徽章沿用彩色底白字，与站内四化配色一致 */
.zp-v .zw-pal .zw-major em,.zp-v .zw-pal .zw-minor em{font-style:normal;font-size:9.5px;font-weight:600;
  color:#fff;border-radius:0;padding:0 var(--sp-1);margin-left:1px;vertical-align:1px;line-height:1.55;display:inline-block}
.zp-v .zw-pal .zw-em-禄{background:var(--lu)}
.zp-v .zw-pal .zw-em-权{background:var(--quan)}
.zp-v .zw-pal .zw-em-科{background:var(--ke)}
.zp-v .zw-pal .zw-em-忌{background:var(--ji)}
.zp-v .zw-center{grid-column:2/4;grid-row:2/4;background:var(--card);color:var(--ink);z-index:3;border:1px solid var(--line);border-radius:0;box-shadow:var(--shadow);
  padding:var(--sp-2) var(--sp-3);display:flex;flex-direction:column;justify-content:center;gap:2px;line-height:1.3;overflow:hidden;min-height:0}
.zp-v .zw-center .zw-ct{width:100%;table-layout:auto;border-collapse:collapse;font-size:12px;line-height:1.5}
.zp-v .zw-center .zw-ct td{padding:0 4px;vertical-align:middle;overflow:hidden}
.zp-v .zw-center .zw-ct td.k{white-space:nowrap;color:var(--gold2);text-align:right;font-weight:600;width:17%}
.zp-v .zw-center .zw-ct td.v{color:var(--ink);text-align:left;width:33%;word-break:break-all;overflow-wrap:anywhere}
/* 宽行（八字/阳历/农历/时辰）：标签与 .k 同列同宽右对齐（列位一致，视觉上与命主/命宫/生肖对齐成一竖列），
   值跨三列左对齐；标签列对齐由结构保证（同列 17%），值列宽余 83% 不易折行 */
.zp-v .zw-center .zw-ct td.wk{white-space:nowrap;color:var(--gold2);text-align:right;font-weight:600;width:17%}
.zp-v .zw-center .zw-ct td.wv{color:var(--ink);text-align:left;width:83%;white-space:normal;word-break:break-all;overflow-wrap:anywhere}
.zp-v .zw-center .zw-ct-head{display:flex;gap:var(--sp-2);justify-content:center;align-items:baseline;margin-bottom:1px}
.zp-v .zw-center .zw-ct-head span{font-weight:bold;color:var(--gold2);font-size:13px;white-space:nowrap}
/* 三方四正/化禄/化忌：本站暖色浅 tint，纯背景不加边框不盖字 */
.zp-v .zw-3he{background:#f4f7f0}
.zp-v .zw-hua-lu{background:#fdf4ee}
.zp-v .zw-hua-ji{background:#f8f7f5}
/* 交互态：金/暖浅 tint（本站色系），纯背景不加边框不盖字 */
.zp-v .zw-pal.zw-focused{background:#f1ecdd;z-index:3}
.zp-v .zw-pal.zw-rel{background:#f2f6ee;z-index:2}
.zp-v .zw-pal.zw-focused.zw-rel{background:#e6e0cf}
.zw-ref{margin-top:var(--sp-4);border:0;border-top:1px solid var(--line);border-radius:0;padding:var(--sp-3) 0;background:transparent;text-align:left}
.zw-ref summary{cursor:pointer;font-family:var(--font-serif);font-weight:400;color:var(--gold2);font-size:var(--tier3);letter-spacing:.1em;line-height:1.5}
.zw-legend{font-size:12.5px;color:var(--ink2);line-height:1.85;margin-bottom:var(--sp-2)}
.zw-legend b{color:var(--gold2)}
.zw-pal-mean{width:100%;border-collapse:collapse;margin-top:var(--sp-1)}
.zw-pal-mean th,.zw-pal-mean td{border:1px solid var(--line);padding:5px 8px;font-size:var(--tier4);text-align:left}
.zw-pal-mean th{background:transparent;color:var(--gold2);font-weight:400}
.zw-pal-mean td:first-child{font-weight:400}
/* 四化 / 禄权科忌 */
.lqkj-wrap{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-2)}
.lqkj{font-size:14px;font-weight:700;padding:var(--sp-1) var(--sp-3);border-radius:0;border:1px solid var(--line);background:var(--card)}
.lq-禄{color:#2e8b57;border-color:#2e8b57}
.lq-权{color:#b8860b;border-color:#b8860b}
.lq-科{color:#2b6cb0;border-color:#2b6cb0}
.lq-忌{color:var(--red);border-color:var(--red)}
/* 四化飞星卡片颜色 */
.info-box.lq-禄{border-top:2px solid #2e8b57}.info-box.lq-禄 h4{color:#2e8b57}
.info-box.lq-权{border-top:2px solid #b8860b}.info-box.lq-权 h4{color:#b8860b}
.info-box.lq-科{border-top:2px solid #2b6cb0}.info-box.lq-科 h4{color:#2b6cb0}
.info-box.lq-忌{border-top:2px solid var(--red)}.info-box.lq-忌 h4{color:var(--red)}
.ji-notice{background:#fdecea;border:2px solid var(--red);border-radius:0;padding:var(--sp-2) var(--sp-3);margin:var(--sp-2) 0;color:var(--red);font-weight:700;font-size:14px}
/* 大限（大运）列表 */
/* 大限（大运）：电脑端3列、框宽充足、星曜完整显示（不截断），不过长不留大空白 */
/* 列数随容器自适应，列宽下限取单行内容的最小宽度，行内容不会撑破列、也不横向溢出 */
.dy-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:var(--sp-2);margin-top:var(--sp-2)}
.dy-row{display:flex;align-items:center;gap:var(--sp-2);background:transparent;border:1px solid var(--line);border-radius:0;padding:var(--sp-2) var(--sp-3);font-size:13px;font-weight:400}
.dy-row b{font-weight:400}
.dy-name{font-weight:400;color:var(--gold2);white-space:nowrap;flex-shrink:0}
.dy-gz{font-weight:400;color:var(--red);font-size:15px;flex-shrink:0}
.dy-star{color:var(--ink2);font-size:12px;flex:1;min-width:0;text-align:right;line-height:1.4}
.dy-age{color:var(--ink2);font-size:12px;white-space:nowrap;flex-shrink:0}
.dy-mean{color:var(--gold-brown);font-size:11.5px;white-space:nowrap;flex-shrink:0;font-weight:400}
@media(max-width:560px){.dy-mean{white-space:normal}}
/* 紫微十二宫逐宫详断：桌面2列（内容多，2列更舒展） */
.palace-detail{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-3);margin-top:var(--sp-2)}
.palace-detail .info-box{margin:0;background:var(--card);border:1px solid var(--line);border-radius:0;padding:var(--sp-3) var(--sp-3);box-shadow:var(--shadow)}
.palace-detail .info-box h4{font-size:var(--tier4);font-weight:400;color:var(--gold2);margin-bottom:var(--sp-1);line-height:1.35}
.palace-detail .ly-zh-p{font-size:13px;line-height:1.75;color:var(--ink);margin:0 0 var(--sp-1)}
.palace-detail .ly-zh-p b{color:var(--gold2);font-weight:400}
.palace-detail .ly-zh-p .sch-tag{color:var(--gold2);font-weight:400;font-style:normal}
.palace-detail .ly-zh-p.sub{padding-left:var(--sp-2);font-size:12.5px;color:var(--ink);margin:0 0 var(--sp-1);line-height:1.7}
.palace-detail .ly-rel{margin-top:2px}
.palace-detail .ly-rel .ly-zh-p.sub{padding-left:var(--sp-2);font-size:12.5px;color:var(--ink);margin:0 0 var(--sp-1)}
/* 紫微本命定盘（一眼看懂的重点结论） */
.zp-ding{background:var(--card);border:1px solid var(--line);border-radius:0;box-shadow:var(--shadow);padding:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-1)}
.zp-ding .dp-top{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap;margin-bottom:var(--sp-3)}
.dp-badge{font-weight:400;font-size:14px;color:#fff;border-radius:0;padding:var(--sp-1) var(--sp-3);letter-spacing:1px}
.dp-badge.dp-0{background:var(--red)}
.dp-badge.dp-1{background:#b8860b}
.dp-badge.dp-2{background:#8a8580}
.dp-badge.dp-3{background:#6b6f76}
.dp-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-3)}
.dp-cell{background:transparent;border:none;padding:0;line-height:1.7}
.dp-cell b{display:block;color:var(--gold2);font-size:12px;margin-bottom:2px}
.dp-cell span{font-size:13px;color:var(--ink)}
.dp-cell.dp-wide{grid-column:1/-1}
.dp-cell i{font-style:normal;font-weight:700;margin-right:var(--sp-1)}
.dp-cell i.dp-禄{color:#2e8b57}.dp-cell i.dp-权{color:#b8860b}.dp-cell i.dp-科{color:#2b6cb0}.dp-cell i.dp-忌{color:var(--red)}
/* 紫微流年（今年运势） */
.zp-liunian{line-height:1.9}
.zp-liunian .ly-zh-p b{color:var(--gold2);font-weight:400}
.zp-liunian b.ln-禄{color:#2e8b57;font-weight:400}.zp-liunian b.ln-权{color:#b8860b;font-weight:400}.zp-liunian b.ln-科{color:#2b6cb0;font-weight:400}.zp-liunian b.ln-忌{color:var(--red);font-weight:400}
.zp-liunian .ly-zh-p.sub{color:var(--ink);font-size:13px;line-height:1.7;margin:2px 0 0;font-weight:400}
/* 综合判断：段落间距紧凑（与页面一致） */
.zh-pd .ly-zh-p{font-size:13.5px;line-height:1.75;margin:var(--sp-1) 0 0}
.zh-pd .ly-zh-p b{color:var(--gold-brown);font-weight:700}
.zh-pd b{color:var(--gold2);font-weight:400}
/* 大运/流年/流月/流日 日期选择器 */
.yf-picker{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;margin:var(--sp-2) 0 var(--sp-2)}
.yf-picker label{font-size:13px;color:var(--gold2);font-weight:400}
.yf-picker input[type=date]{height:30px;font-size:13px;padding:0 10px;border:1px solid var(--line);border-radius:0;background:var(--card);color:var(--ink)}
.yf-picker .btn{background:var(--gold2);color:#fff;border:none;border-radius:0;padding:0 16px;font-size:13px;cursor:pointer;font-weight:700}
.yf-picker .btn:hover{background:var(--red)}
.yf-hint{font-size:12px;color:var(--ink2)}
.zp-yunout .ly-zh-p{font-size:13px;line-height:1.8;color:var(--ink)}
.zp-yunout + .sub-note,.zp-ding .sub-note{font-size:12px;color:var(--ink2);line-height:1.7;margin-top:var(--sp-1)}
/* 长生/博士等吉凶色（对齐八字 .yi绿/.ji红）：endpoint 需 .zp-yun-tbl 内定义 */
.zp-yunout .yi,.zp-yun-tbl .yi{color:var(--green);font-weight:400}
.zp-yunout .ji,.zp-yun-tbl .ji{color:#F65352;font-weight:400}
/* 大运/流年/流月/流日 推算结果表格（统一为全站 .stab 风格：细边框、金棕表头、table-layout:auto 自适应） */
.zp-yunout .zp-dayun-line{font-size:13px;color:var(--gold-brown);font-weight:700;margin:var(--sp-1) 0 var(--sp-2)}
.zp-yun-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-2)}
.zp-yun-tbl{width:100%;table-layout:auto;border-collapse:collapse;margin:var(--sp-1) 0 var(--sp-3);font-size:13px;background:var(--card)}
.zp-yun-tbl caption{font-size:13px;font-weight:400;color:var(--gold2);padding:var(--sp-1) var(--sp-2);text-align:left;background:transparent;border:none}
.zp-yun-tbl th,.zp-yun-tbl td{border:1px solid var(--line);padding:6px 9px;vertical-align:top;text-align:left;line-height:1.8;word-break:normal;overflow-wrap:anywhere}
.zp-yun-tbl th{font-weight:400;white-space:nowrap;text-align:center;color:var(--gold2);font-size:var(--tier4);background:transparent}
.zp-yun-tbl td.lbl{font-weight:400;color:var(--gold2);white-space:normal;word-break:keep-all;overflow-wrap:anywhere}
/* 十二宫行标签是两字定名（命宫、兄弟、夫妻、财帛），窄屏列被压到 13px 时 overflow-wrap:anywhere 会把两字拆成各占一行：标签改不折行，按内容定宽 */
@media(max-width:640px){
  .zp-yun-tbl td.lbl{white-space:nowrap;overflow-wrap:normal}
}
.zp-ding .zp-yunout,.zp-ding .zp-yun-tbl{background:transparent}
.zp-yun-tbl th.lqk,.zp-yun-tbl td.lqk{text-align:left}.zp-yun-tbl tr+tr{border-top:1px solid var(--line)}

footer{text-align:center;color:var(--ink2);font-size:12px;padding:var(--sp-4) 0 var(--sp-5)}
/* 页脚注记随页主题：--foot-ink 由各页主题段按需指定（历法五页为本页主色深档），无则回落本页强调色 --gold2 */
footer .dis{color:var(--foot-ink,var(--gold2));font-size:12px;margin-top:0}
footer .os-link{color:var(--foot-ink,var(--gold2));text-decoration:none;border-bottom:1px dotted currentColor;cursor:pointer}
footer .os-link:hover{color:var(--red)}
footer .ref{margin-top:var(--sp-2);color:var(--foot-ink,var(--gold2));font-size:12px;line-height:1.8}
footer .ref a{color:var(--foot-ink,var(--gold2));text-decoration:none;border-bottom:1px dotted currentColor}
footer .ref a:hover{color:var(--red)}
/* 算法与数据来源（开源参考） */

/* ===== 八字增强 UI ===== */
.tip{cursor:pointer;color:var(--red2)}
.tip:hover{color:var(--red);background:rgba(168,120,31,.12)}
/* 表格内 .tip 显式声明字号 + 紧凑行高：神煞行多行堆叠容易撑高单元格，显式锁字号防继承跑偏，紧凑行高让多行排布与单行视觉对齐 */
.bazi-table td.small .tip{font-size:12px;line-height:1.25}
.bazi-table td.small .tip+.tip{margin-left:0}
/* 纳音五行色：.tip 本身已设颜色，必须加 .tip.wx-* 才能覆盖 */
.tip.wx-mu,.tip.wx-mu:hover{color:#5DC336}
.tip.wx-huo,.tip.wx-huo:hover{color:#F65352}
.tip.wx-tu,.tip.wx-tu:hover{color:#A07040}
.tip.wx-jin,.tip.wx-jin:hover{color:#D4A017}
.tip.wx-shui,.tip.wx-shui:hover{color:#4190FA}
/* 神煞吉凶分类着色（复用系统色：吉=绿/凶=红/中性=墨灰） */
.tip.sha-ji{color:#1f7a3d}
.tip.sha-xiong{color:#F65352}
.tip.sha-neutral{color:var(--ink2)}
/* 喜忌交参句内的"喜""忌"字标：次级墨灰，不可点（不用 .tip，免带 cursor） */
.sha-axis{color:var(--ink2)}
.sex-m{color:#3a6ea5}
.sex-f{color:#b23a6e}
.opts .field{flex:0 0 auto;min-width:120px}
.field.chk{flex-direction:row;align-items:center;gap:var(--sp-1);min-width:auto}
/* 勾选框回原生尺寸：排除 .field input 的 30px 等高与内距，与"真太阳时校正"同款 13×13 */
.field.chk input{width:auto;height:auto;padding:0}
.sub-note{font-size:12px;color:var(--ink2);margin-top:var(--sp-1);line-height:1.5;font-weight:normal}
/* info-box 内 .info-box p{color:var(--ink)} 特异性(0,1,1)高于 .sub-note(0,1,0)，此处提级保证补充说明浅色不被覆盖 */
.info-box .sub-note{color:var(--ink2)}
/* 说明是上方内容的附属件：上距只由 .sub-note 的基础档 4px 提供一处，与下一块的块间 8px 拉开层级。
   故紧跟说明的前一件（表、表容器、滚动容器、选择块）底距一律归零，不与说明上距叠加。
   .tbl-wrap 与 .qtab-scroll 建了 BFC，表自身上下距会被容器吞下成为看不见的鬼影距，
   使表到说明的距离比说明到下一块还宽；带 :has(> table) 的一支用于压过各页以页类限定的表规则 */
.dyn-block:has(+ .sub-note),.qtab-scroll:has(+ .sub-note),table.stab:has(+ .sub-note){margin-bottom:0}
/* 表容器：限宽不撑破版面，宽表由容器横向滚动兜底。排布全站一致，页面段只写本页线与底距 */
.tbl-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.tbl-wrap:has(> table):has(+ .sub-note) > table{margin-bottom:0}
/* 月历一览（佛历/道历当月列表）：浅灰轻量文字，与顶部判定卡片区分层级 */
.info-box .cal-month-list{color:var(--ink2);font-size:12.5px;line-height:1.7}
/* 强提示（旺衰阈值敏感性 / 学术取舍等）：色块强调但不加粗，遵守“总结性文案禁粗体”约定 */
.warn-note{display:block;margin-top:var(--sp-1);padding:var(--sp-1) var(--sp-2);
  background:rgba(168,120,31,.08);color:#7a5b12;font-size:12px;line-height:1.55;border-radius:0}

/* 出生地分组 */
.birth-group{display:flex;flex-wrap:wrap;gap:var(--sp-3) var(--sp-4);align-items:flex-end;
  flex:1 1 100%;padding:var(--sp-3) var(--sp-4);background:var(--paper2);
  border:1px solid var(--line);border-radius:0}
.birth-group .group-label{width:100%;font-size:13px;font-weight:400;color:var(--gold2)}
.birth-group .field{flex:1 1 140px;min-width:120px;margin:0}
/* 经度框只填数字，不给它跟省市区一样的伸展额度 */
.birth-group .field:has(#bLng){max-width:200px}
.opts{display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:stretch;margin-bottom:var(--sp-2);flex-direction:column}
/* 选项行：字段与按钮同为一行内相邻控件，横向间距取与 .form-row 同一档 --sp-3。
   行内字段间距全站只此一档（.form-row 与 .birth-group.compact 皆 12px），本行取 --sp-4
   即在同一页之内与上下两行读作两值。 */
.opts-row{display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:flex-end}
.opts-row .field{min-width:160px}
.opts-row .field.chk{align-self:flex-end;padding-bottom:var(--sp-2);min-width:auto}
.opts-row .btn{flex:0 0 auto;align-self:flex-end}
.ts-box{font-size:12px;color:var(--ink2);margin-top:var(--sp-1);line-height:1.5}
.ts-box b{color:var(--red2)}

/* 五行统计条（默认单行不换行；.single 强制单行） */
.wxbar{display:flex;gap:var(--sp-2);flex-wrap:wrap;margin-top:var(--sp-3)}
.wxbar.single{flex-wrap:nowrap}
.wxbar .wx{background:var(--paper2);border:1px solid var(--line);border-radius:0;padding:var(--sp-2) var(--sp-1);min-width:62px;flex:1;text-align:center}
.wxbar.single .wx{min-width:0;flex:1}
.wxbar .wx .nm{font-size:14px;font-weight:700}
.wxbar .wx .ct{font-size:24px;font-weight:700;margin:2px 0}
.wxbar .wx .st{font-size:12px;padding:1px var(--sp-2);border-radius:0;display:inline-block}
.st-旺{background:var(--red);color:#fff}
.st-相{background:#e08e0b;color:#fff}
.st-休{background:#7a8a99;color:#fff}
.st-囚{background:#5a6b7a;color:#fff}
.st-死{background:#34495e;color:#fff}

/* 五行统计表（替代双 wxbar 行，更紧凑，保留五行上色与五行旺衰扁平图标） */

/* 关系 chips ： 每个 pill 文字不换行，手机端整块移动而非从中间截断色块 */
/* 天干关系 / 地支关系：两块的纵向间距与下方"量化四柱"对齐（统一 12px），手机端自适应 */
.rel-wrap{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-1)}
.rel-title.rel-gap{margin-top:var(--sp-3)}
/* 标题带随行元素（徽标、说明件）时取横排：排布只此一处，页面段不再覆写 */
.rel-title.rel-inline{display:flex;align-items:center;gap:var(--sp-2)}
.rel{font-size:13px;padding:var(--sp-1) var(--sp-3);border-radius:0;border:1px solid var(--line);background:var(--card);cursor:pointer;white-space:nowrap;flex:0 0 auto}
.rel.long{flex:0 0 auto;text-align:center}
.rel.he{background:#eaf6ee;border-color:#bcdcc6;color:#1f7a3d}
.rel.sheng{background:#eef4fb;border-color:#c3d6ec;color:#2b6cb0}
.rel.ke{background:#fbeeee;border-color:#ecc3c3;color:var(--red)}
.rel.chong{background:#fdeede;border-color:#eccfa3;color:#a05a00}
.rel.xing{background:#f3e2ee;border-color:#dcc0d0;color:#8e2b6b}
.rel.hai{background:#f0e9f7;border-color:#d3c3ec;color:#5a2b8e}
.rel.anhe{background:#eef0f2;border-color:#cfd4da;color:#4a5560}   /* 暗合：隐秘、中性 */
.rel.gchong{background:#fdecea;border-color:#e6a8a0;color:var(--red)}   /* 天干相冲 */
.rel.zheng{background:#fff5e0;border-color:#e8cf94;color:#9a6f08}   /* 争合/妒合 */
.rel.bihe{background:#f7f0e3;border-color:#d8c69a;color:#8a6d3b}   /* 比和/比肩：同气帮扶 */
@media(max-width:540px){.rel-wrap{gap:var(--sp-3) var(--sp-2);line-height:2}.rel{padding:var(--sp-1) var(--sp-2)}}
/* 结果区小节标题：视觉层级第二级，字号取 --tier2，须严格大于第三级 .det-h 的 --tier3。
   上距取区块档 --sp-4，与排盘页结果区顶层模块间距同值，不取页面级档 --sp-5；
   标题与内容之间的间隙由下方块自身的 margin-top 承担，两条不叠加 */
.rel-title{font-size:var(--tier2);font-family:var(--font-serif);font-weight:400;color:var(--title);margin:var(--sp-4) 0 var(--sp-1);letter-spacing:.2em}
.gz-sec{font-size:13px;font-weight:600;color:var(--gold2);margin:2px 0 var(--sp-1)}
.gz-sec-2{margin-top:var(--sp-2)}
.fold-block>summary.rel-title{list-style:none;cursor:pointer;font-family:var(--font-serif);font-weight:400;color:var(--gold2);font-size:var(--tier3);letter-spacing:.1em;line-height:1.5;display:flex;align-items:center;gap:var(--sp-1);margin:0}
.fold-block>summary.rel-title::-webkit-details-marker{display:none}
.fold-block{margin-top:var(--sp-4);border:0;border-top:1px solid var(--line);border-radius:0;padding:var(--sp-3) 0;background:transparent;transition:max-height .35s ease,opacity .25s ease}
.fold-block:not([open]){border-bottom:1px solid var(--line)}
.fold-block>summary.rel-title::before{content:'▸';color:var(--gold2);font-size:12px;line-height:1}
.fold-block[open]>summary.rel-title::before{content:'▾'}

/* 大运/流年/流月/流日：标签置于每排上方，节省横向空间 */
.dyn{margin-top:var(--sp-2)}
.dyn-block{display:flex;flex-direction:column;align-items:stretch;gap:var(--sp-1);margin:var(--sp-2) 0}
.dyn-label{font-size:13px;font-weight:700;color:var(--gold2);padding-left:2px;margin:0;background:transparent;border:none}
.dyn-row{display:flex;flex-wrap:wrap;gap:var(--sp-2);flex:1}
.dyn-btn{font-size:13px;padding:var(--sp-1) var(--sp-2);border-radius:0;border:1px solid var(--line);background:var(--card);cursor:pointer;transition:.15s;text-align:center;min-width:46px;line-height:1.3}
.dyn-btn:hover{background:#f1e7cf}
.dyn-btn.active{background:var(--red);color:#fff;border-color:transparent;font-weight:700;box-shadow:0 2px 8px rgba(231,76,60,.35)}
.dyn-btn .g{font-size:13px;font-weight:400;display:block;line-height:1.16;letter-spacing:1px}
.dyn-btn .tg{font-size:12px;color:var(--gold2);display:inline;line-height:1.16}
.dyn-btn .tz{font-size:12px;color:var(--ink2);display:inline;line-height:1.16;margin-left:1px}
.dyn-btn.active .tg{color:#fff}.dyn-btn.active .tz{color:#fff}
.dyn-btn .cs{font-size:11px;color:var(--ink2);display:block;line-height:1.16}
.dyn-btn.active .cs{color:#fff}
.dyn-btn.lr{min-width:46px;padding:var(--sp-1) var(--sp-2)}
.dyn-btn.lr .g{font-size:12px}
/* 卡片式信息：dy-top（年/月/日）、dy-age（岁数）、tg（十神简称，单字）、cs（十二运）；统一供大运、流年、流月、流日 */
.dyn-btn .dy-top{font-size:11px;color:var(--gold2);display:block;margin-bottom:1px}.dyn-btn .dy-age{font-size:10px;color:var(--ink2);display:block;margin-bottom:1px}
.dyn-btn.active .dy-top{color:#fff}.dyn-btn.active .dy-age{color:#fff}
.dyn-btn .ss-compact{display:block;font-size:10px;color:var(--ink2);line-height:1.25;margin-top:1px}
.dyn-btn.active .ss-compact{color:#fff}
.dyn-btn .ss-compact .ssg,.dyn-btn .ss-compact .ssz{display:block}
.dyn-btn .xy{font-size:9px;color:var(--ink2);display:block;line-height:1.25;margin-top:2px}
.dyn-btn.active .xy{color:#fff}
/* 选中态：干支被五行配色引擎包了 .wx-* 文字色，需强制转白，否则红底上仍显原色 */
.dyn-btn.active .wx-mu,.dyn-btn.active .wx-huo,.dyn-btn.active .wx-tu,.dyn-btn.active .wx-jin,.dyn-btn.active .wx-shui{color:#fff}
.dyn-detail{background:transparent;border:1px solid var(--line);border-radius:0;padding:var(--sp-3);margin-top:var(--sp-2)}
.mh-ref .dyn-detail{border:none;background:transparent;padding:0;margin-top:var(--sp-2)}
.dyn-detail h4{color:var(--red2);margin:var(--sp-2) 0 var(--sp-1)}
.dyn-detail h4:first-child{margin-top:0}
.dyn-detail b{font-weight:400}
/* 一生运势曲线图 */
.yun-chart-wrap{margin-top:var(--sp-2)}
/* 曲线下钻面包屑：一生、流月、流日 */
.yun-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-1);margin:var(--sp-2) 0 var(--sp-1);font-size:13px}
.yun-crumbs .yc-item{color:var(--gold2);cursor:default;padding:2px var(--sp-1);border-radius:0}
.yun-crumbs .yc-item[data-lv="0"],.yun-crumbs .yc-item[data-lv="1"]{cursor:pointer}
.yun-crumbs .yc-item[data-lv="0"]:hover,.yun-crumbs .yc-item[data-lv="1"]:hover{background:var(--gold-bg);text-decoration:underline}
.yun-crumbs .yc-item.yc-cur{background:var(--gold-bg);font-weight:700}
.yun-crumbs .yc-sep{color:var(--ink2)}
.yun-chart-box{width:100%;overflow-x:auto;background:var(--card);border:1px solid var(--line);border-radius:0;padding:var(--sp-2) 0}
.yun-grid{stroke:var(--line);stroke-width:0.5;stroke-dasharray:3,3}
.yun-axis{stroke:var(--ink2);stroke-width:1}
.yun-axis-label{font-size:11px;fill:var(--ink2);text-anchor:end}
.yun-axis-label.y{text-anchor:end}
.yun-boundary{stroke:var(--line);stroke-width:0.5;stroke-dasharray:2,2}
.yun-boundary-text{font-size:10px;fill:var(--ink2);text-anchor:end}
.yun-boundary-text.gz{fill:var(--gold2);font-weight:700}
.yun-line{stroke-linecap:round;stroke-linejoin:round}
.yun-line.dayun{stroke-dasharray:none}
.yun-dot{cursor:pointer}
.yun-legend{display:flex;flex-wrap:wrap;gap:var(--sp-3);margin:var(--sp-2) 0 var(--sp-1);justify-content:center}
.yun-legend-item{display:inline-flex;align-items:center;gap:var(--sp-1);font-size:13px;color:var(--ink)}
.yun-legend-item i{display:inline-block;width:18px;height:3px;border-radius:0}.yun-chart{display:block;width:100%;min-width:900px;height:auto;max-height:360px}
.yun-tick{stroke:var(--ink2);stroke-width:1}
.yun-tick.minor{stroke:var(--line);stroke-width:0.8}
.yun-tick-label{font-size:10px;fill:var(--ink2)}
.yun-cross{stroke:#8a6d3b;stroke-width:1;stroke-dasharray:4,3;pointer-events:none}
.yun-pt{pointer-events:none;stroke:#fff;stroke-width:1.2}
/* 移动端：允许横向滚动图表容器，点按定位十字线 */
#yunHit{touch-action:pan-x pan-y}
.yun-mobile-hint{display:none;font-size:12px;color:var(--ink2);text-align:center;margin:var(--sp-1) 0}
.yun-tip{display:none;position:absolute;z-index:30;background:var(--paper2);color:var(--ink);font-size:12px;line-height:1.55;padding:var(--sp-2) var(--sp-2);border-radius:0;border:1px solid var(--line);box-shadow:0 4px 16px rgba(60,45,15,.18);white-space:normal;min-width:160px;max-width:300px;box-sizing:border-box}
.yun-tip-head{font-weight:700;margin-bottom:var(--sp-1);border-bottom:1px solid var(--line);padding-bottom:var(--sp-1);word-break:break-word}
.yun-tip-ge{color:var(--ink2);font-weight:400;font-size:11px}
.yun-tip-row{display:flex;align-items:center;gap:var(--sp-1);margin:var(--sp-1) 0;flex-wrap:wrap}
.yun-tip-tag{display:inline-flex;align-items:center;justify-content:center;color:#fff;font-size:10px;line-height:1;padding:2px var(--sp-1);border-radius:0;white-space:nowrap;flex:0 0 auto}
.yun-tip-shen{color:var(--ink2);font-size:11px;word-break:break-word}
.yun-tip-score{margin-left:auto;font-weight:700;font-size:13px;flex:0 0 auto;color:var(--gold2)}
.yun-tip-reason{font-size:11px;color:var(--ink2);margin:1px 0 1px 0;padding-left:2px;word-break:break-word}
.yun-algo{margin-top:var(--sp-2);color:var(--ink2);line-height:1.7}
#yunChartWrap{position:relative}
@media(max-width:760px){
  .yun-chart-box{overflow-x:auto;-webkit-overflow-scrolling:touch;overflow-y:hidden;scrollbar-width:thin}
  .yun-chart{min-width:720px;width:auto;max-height:340px}
  .yun-legend{gap:var(--sp-2)}
  .yun-legend-item{font-size:12px}
  .yun-mobile-hint{display:block}
  .yun-tip{font-size:11px;padding:var(--sp-1) var(--sp-2);min-width:0;max-height:36vh;overflow:auto;position:static;z-index:1;max-width:none;margin:var(--sp-1) 0 var(--sp-2);box-shadow:0 2px 8px rgba(60,45,15,.1)}
  .yun-tip-head{font-size:12px}
  .yun-tip-tag{font-size:9px}
  .yun-tip-shen{font-size:10px}
}
@media(max-width:540px){
  .yun-chart{max-height:260px}
}
.det-h{font-size:var(--tier4);font-family:var(--font-serif);font-weight:400;color:var(--title);margin:var(--sp-3) 0 var(--sp-1);letter-spacing:.2em}
.det-h .det-sub{color:var(--ink2)}
.det-row{border:1px solid var(--line);border-radius:0;background:transparent;padding:var(--sp-3) var(--sp-4);font-size:13.5px;line-height:1.85;color:var(--ink);margin-bottom:var(--sp-2)}
.det-row:last-of-type{margin-bottom:0}
.det-row .ft{color:var(--red)}
.sk-wrap{display:flex;flex-direction:column;gap:var(--sp-2)}
/* 与命局关系：每排2框，自动折行 */
.sk-wrap.rel-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-2);align-items:start}
/* 各流派解读：每排2框，6框分3排；顶部对齐，卡片按内容高度、不拉伸成大空框 */
/* margin-top 取页面同类模块间距（score/hex/ss/bk-box 内 .sub-note 的下间距 10px），拉开前言与卡片网格的间距 */
.sk-wrap.school-grid{display:grid;grid-template-columns:1fr;gap:var(--sp-2);align-items:start;margin-top:var(--sp-2)}
.sk-block.sk-head{border:none;padding:0 0 var(--sp-1);border-radius:0;background:transparent}
/* 大运流年关系色块：去边框背景，只保留字体颜色；干/支分行，允许折行防撑破 */
.sk-block .rel{background:transparent;border:none;padding:0;margin:0 2px;cursor:pointer;white-space:normal;word-break:break-all}
.sk-block .rel-row{display:flex;flex-direction:column;gap:var(--sp-1) 0;width:100%;align-items:flex-start}
.sk-block .rel-g,.sk-block .rel-z{display:block;width:100%;white-space:normal}
.sk-block .rel-sep{display:none}
.sk-block .rel.he{color:#1f7a3d}
.sk-block .rel.sheng{color:#4190FA}
.sk-block .rel.ke{color:#F65352}
.sk-block .rel.chong{color:#a05a00}
.sk-block .rel.xing{color:#8e2b6b}
.sk-block .rel.hai{color:#5a2b8e}
.sk-block .rel.anhe{color:#4a5560}
.sk-block .rel.gchong{color:#F65352}
.sk-block .rel.zheng{color:#9a6f08}
.sk-block .rel.bihe{color:#8a6d3b}
@media(max-width:540px){
  .sk-block{padding:var(--sp-3) var(--sp-3);line-height:1.7}
  .sk-wrap.rel-grid{grid-template-columns:1fr}
  .sk-block .rel{margin:0 2px}
  .sk-block .rel-row{display:flex;flex-direction:column;gap:var(--sp-1) 0;width:100%;align-items:flex-start}
  .sk-block .rel-g,.sk-block .rel-z{display:block;width:100%;white-space:normal}
  .sk-block .rel-sep{display:none}
}

/* 各流派解读：本命基调总览 + 每所选干支一张子表，避免选满大运、流年、流月、流日后的多列挤压。
   每张表仅 2 列，table-layout:fixed 固定占比 + 自动换行（不横向滚动）。 */
table.yun-tbl.sk-base,table.yun-tbl.sk-sub{table-layout:fixed;width:100%;min-width:0;border-collapse:collapse}
table.yun-tbl.sk-base th,table.yun-tbl.sk-base td,
table.yun-tbl.sk-sub th,table.yun-tbl.sk-sub td{white-space:normal;word-break:break-word;overflow-wrap:anywhere;vertical-align:top;line-height:1.55;padding:6px 8px;text-align:left}
table.yun-tbl.sk-base thead th,table.yun-tbl.sk-sub thead th{background:var(--card);color:var(--ink2);font-weight:400;white-space:nowrap;text-align:center}
/* 列宽：流派列限 9em（≈9 汉字，够长流派名、不因过窄自挤），名字列居中，内容列占余宽左对齐 */
table.yun-tbl.sk-base th.sk-c-name,table.yun-tbl.sk-base td.sk-c-name,
table.yun-tbl.sk-sub th.sk-c-name,table.yun-tbl.sk-sub td.sk-c-name{width:9em;max-width:9em;min-width:9em;text-align:center}
table.yun-tbl.sk-base th.sk-c-base,table.yun-tbl.sk-base td.sk-c-base{width:auto}
table.yun-tbl.sk-sub th.sk-c-read,table.yun-tbl.sk-sub td.sk-c-read{width:auto}.sk-block{font-size:13px;line-height:1.7;padding:var(--sp-3) var(--sp-4);border:1px solid var(--line);border-radius:0;background:transparent;margin-top:var(--sp-2)}
.sc-classic{margin-top:var(--sp-2);font-size:12.5px;color:var(--ink2);line-height:1.7}
@media(max-width:640px){
  table.yun-tbl.sk-base,table.yun-tbl.sk-sub{font-size:12px;line-height:1.5}
  table.yun-tbl.sk-base td,table.yun-tbl.sk-base thead th,
  table.yun-tbl.sk-sub td,table.yun-tbl.sk-sub thead th{padding:6px 6px}
}

/* 所选干支详情 / 与命局关系 / 所选干支间关系：复用 .yun-tbl 框架（与"各流派解读"同框架）。
   数据列布局要点（detail）：table-layout:auto（覆盖 .yun-tbl 基类 fixed）+ 数据列 25% + padding 4px。
   fixed 布局下窄屏列宽被 .mh-ref td 的 8px 左右 padding 压缩到内容区 33px、4 汉字放不下，
   且 nowrap 长神煞名会撑宽单列压缩其余列；auto+anywhere（下方 td word-break）让 min-content 退化为单字、
   列宽稳定为 25%，内容区约 57px > 4 汉字 48px，超 4 字自动换行、不撑列。
   rel/pairrel 保持 fixed + width:auto 均分（原设计，不受影响） */
table.yun-tbl.detail{table-layout:auto;width:100%;min-width:0}
table.yun-tbl.rel,table.yun-tbl.pairrel{table-layout:fixed;width:100%;min-width:0}
table.yun-tbl.detail th,table.yun-tbl.detail td,
table.yun-tbl.rel th,table.yun-tbl.rel td,
table.yun-tbl.pairrel th,table.yun-tbl.pairrel td{white-space:normal;word-break:break-word;overflow-wrap:anywhere;vertical-align:top;line-height:1.6;text-align:left}
table.yun-tbl.detail thead th,table.yun-tbl.rel thead th,table.yun-tbl.pairrel thead th{white-space:nowrap;text-align:center}
table.yun-tbl.detail th:nth-child(1),table.yun-tbl.detail td:nth-child(1){width:64px;white-space:nowrap}
table.yun-tbl.rel th:nth-child(1),table.yun-tbl.rel td:nth-child(1){width:64px}
table.yun-tbl.pairrel th:nth-child(1),table.yun-tbl.pairrel td:nth-child(1){width:30%;text-align:center}
table.yun-tbl.detail th:nth-child(n+2),table.yun-tbl.detail td:nth-child(n+2),
table.yun-tbl.rel th:nth-child(n+2),table.yun-tbl.rel td:nth-child(n+2),
table.yun-tbl.pairrel th:nth-child(n+2),table.yun-tbl.pairrel td:nth-child(n+2){width:25%}
table.yun-tbl.detail td,table.yun-tbl.detail th{padding:6px 4px}
/* 干支详情表：全部行居中对齐（覆盖上方 detail/rel/pairrel 共用 text-align:left；运势行也居中） */
table.yun-tbl.detail th,table.yun-tbl.detail td{text-align:center}
/* 小运列（.has-xy）：所选干支详情、与命局干支关系、所选干支间关系三表在小运在场时各多一列
   （列序 大运、小运、流年、流月、流日），数据列由 4 变 5，须按五列收窄，
   否则 5×25%（detail）与 5×21.75%（rel-matrix）超出表宽、首列被挤没。
   三表皆由 bazi-core 按小运在场与否动态给出该类，小运缺位时回落基类的四列宽度。 */
table.yun-tbl.has-xy.detail th:nth-child(n+2),table.yun-tbl.has-xy.detail td:nth-child(n+2){width:20%}
table.yun-tbl.has-xy.rel-matrix th:nth-child(n+2),table.yun-tbl.has-xy.rel-matrix td:nth-child(n+2){width:17.4%}
/* 关系 chip：去背景色块与边框，仅保留文字颜色与点击弹出；关系类型仍按色区分 */
table.yun-tbl.rel td .rel,table.yun-tbl.pairrel td .rel{
  border:none;background:none;padding:0;margin:0 var(--sp-1) 0 0;
  white-space:normal;word-break:break-all;display:inline;cursor:pointer;line-height:1.6}
table.yun-tbl.rel td .rel.he,table.yun-tbl.pairrel td .rel.he{color:#1f7a3d}
table.yun-tbl.rel td .rel.sheng,table.yun-tbl.pairrel td .rel.sheng{color:#4190FA}
table.yun-tbl.rel td .rel.ke,table.yun-tbl.pairrel td .rel.ke{color:#F65352}
table.yun-tbl.rel td .rel.chong,table.yun-tbl.pairrel td .rel.chong{color:#a05a00}
table.yun-tbl.rel td .rel.xing,table.yun-tbl.pairrel td .rel.xing{color:#8e2b6b}
table.yun-tbl.rel td .rel.hai,table.yun-tbl.pairrel td .rel.hai{color:#5a2b8e}
table.yun-tbl.rel td .rel.anhe,table.yun-tbl.pairrel td .rel.anhe{color:#4a5560}
table.yun-tbl.rel td .rel.gchong,table.yun-tbl.pairrel td .rel.gchong{color:#F65352}
table.yun-tbl.rel td .rel.zheng,table.yun-tbl.pairrel td .rel.zheng{color:#9a6f08}
table.yun-tbl.rel td .rel.bihe,table.yun-tbl.pairrel td .rel.bihe{color:#8a6d3b}
table.yun-tbl.rel td .rel.spec-he,table.yun-tbl.pairrel td .rel.spec-he{color:#1f7a3d}
table.yun-tbl.rel td .rel.spec-chong,table.yun-tbl.pairrel td .rel.spec-chong{color:#F65352}
/* 所选干支间关系：relHTML 的干/支结构在表内纵向堆叠 */
table.yun-tbl.pairrel td .rel-row,table.yun-tbl.rel-matrix td .rel-row{display:block}
table.yun-tbl.pairrel td .rel-g,table.yun-tbl.pairrel td .rel-z,
table.yun-tbl.rel-matrix td .rel-g,table.yun-tbl.rel-matrix td .rel-z{display:block;white-space:normal}
table.yun-tbl.pairrel td .rel-sep,table.yun-tbl.rel-matrix td .rel-sep{display:none}
/* 所选干支间关系：矩阵（横轴＝纵轴＝大运/流年/流月/流日；去 .yun-scroll 包裹，fixed 布局 + min-width:0 保证手机端不横向滚动） */
table.yun-tbl.rel-matrix{table-layout:fixed;width:100%;min-width:0;border-collapse:collapse}
table.yun-tbl.rel-matrix th,table.yun-tbl.rel-matrix td{white-space:normal;word-break:break-word;overflow-wrap:anywhere;vertical-align:top;line-height:1.5;text-align:left}
table.yun-tbl.rel-matrix thead th{background:var(--card);color:var(--gold2);font-weight:400;white-space:nowrap;text-align:center}
table.yun-tbl.rel-matrix tbody th{background:transparent;color:var(--ink2);font-weight:400;text-align:center;white-space:nowrap}
table.yun-tbl.rel-matrix th.mx-corner{width:13%;text-align:center;color:var(--gold2);font-size:var(--tier4)}
table.yun-tbl.rel-matrix th:nth-child(n+2),table.yun-tbl.rel-matrix td:nth-child(n+2){width:21.75%}
table.yun-tbl.rel-matrix tbody th b{color:var(--ink);font-weight:400}
table.yun-tbl.rel-matrix .mx-diag,table.yun-tbl.rel-matrix .mx-none,table.yun-tbl.rel-matrix .mx-mirror{text-align:center;color:var(--ink2);font-size:18px;vertical-align:middle}
table.yun-tbl.rel-matrix .mx-mirror{background:transparent}
table.yun-tbl.rel-matrix td .rel-g,table.yun-tbl.rel-matrix td .rel-z{font-size:12px}
/* 关系 chip 配色（含矩阵）；去背景色块与边框，仅保留文字颜色与点击弹出 */
table.yun-tbl.rel td .rel,table.yun-tbl.pairrel td .rel,table.yun-tbl.rel-matrix td .rel{
  border:none;background:none;padding:0;margin:0 var(--sp-1) 0 0;
  white-space:normal;word-break:break-all;display:inline;cursor:pointer;line-height:1.6}
table.yun-tbl.rel td .rel.he,table.yun-tbl.pairrel td .rel.he,table.yun-tbl.rel-matrix td .rel.he{color:#1f7a3d}
table.yun-tbl.rel td .rel.sheng,table.yun-tbl.pairrel td .rel.sheng,table.yun-tbl.rel-matrix td .rel.sheng{color:#4190FA}
table.yun-tbl.rel td .rel.ke,table.yun-tbl.pairrel td .rel.ke,table.yun-tbl.rel-matrix td .rel.ke{color:#F65352}
table.yun-tbl.rel td .rel.chong,table.yun-tbl.pairrel td .rel.chong,table.yun-tbl.rel-matrix td .rel.chong{color:#a05a00}
table.yun-tbl.rel td .rel.xing,table.yun-tbl.pairrel td .rel.xing,table.yun-tbl.rel-matrix td .rel.xing{color:#8e2b6b}
table.yun-tbl.rel td .rel.hai,table.yun-tbl.pairrel td .rel.hai,table.yun-tbl.rel-matrix td .rel.hai{color:#5a2b8e}
table.yun-tbl.rel td .rel.anhe,table.yun-tbl.pairrel td .rel.anhe,table.yun-tbl.rel-matrix td .rel.anhe{color:#4a5560}
table.yun-tbl.rel td .rel.gchong,table.yun-tbl.pairrel td .rel.gchong,table.yun-tbl.rel-matrix td .rel.gchong{color:#F65352}
table.yun-tbl.rel td .rel.zheng,table.yun-tbl.pairrel td .rel.zheng,table.yun-tbl.rel-matrix td .rel.zheng{color:#9a6f08}
table.yun-tbl.rel td .rel.bihe,table.yun-tbl.pairrel td .rel.bihe,table.yun-tbl.rel-matrix td .rel.bihe{color:#8a6d3b}
table.yun-tbl.rel td .rel.spec-he,table.yun-tbl.pairrel td .rel.spec-he,table.yun-tbl.rel-matrix td .rel.spec-he{color:#1f7a3d}
table.yun-tbl.rel td .rel.spec-chong,table.yun-tbl.pairrel td .rel.spec-chong,table.yun-tbl.rel-matrix td .rel.spec-chong{color:#F65352}
/* 关系矩阵内干、支两组各以顿号分隔，故撤掉 chip 自身右外边距：否则 4px 间隙落在顿号之前，
   排成“己甲合化土 、甲己相克”，顿号被推离前一条关系。 */
table.yun-tbl.rel-matrix td .rel{margin-right:0}

/* 弹窗 */
.modal-mask{position:fixed;inset:0;background:rgba(30,20,10,.45);display:none;align-items:center;justify-content:center;z-index:100;padding:var(--sp-4)}
.modal-mask.show{display:flex}
.modal{background:var(--card);max-width:440px;width:100%;border-radius:0;border:2px solid var(--gold);box-shadow:0 10px 40px rgba(0,0,0,.3);padding:var(--sp-5);position:relative;max-height:80vh;overflow:auto}
/* 说明弹窗（点击文字弹出的说明、历史、宫位详情）边框取本页主体色：dtm-* 由 app.js 依页面主题类附加，
   弹窗挂 body 下、不在页容器内，故不能用页类后代选择器收口；此处只改 border-color，保留 .modal 的 2px 宽度。
   .modal.ai-cfg（后出，border:0）与 .dt-modal（后出，1px 主题细线）各自覆盖，不受本行影响。 */
.modal[class*="dtm-"]{border-color:var(--tk)}
.modal .close{position:absolute;top:10px;right:14px;font-size:22px;cursor:pointer;color:var(--ink2)}
.tip-title{color:var(--red);font-size:18px;margin-bottom:var(--sp-2)}
#aiCfgMask .tip-title{color:var(--gold2);font-size:15px;font-weight:400}
.tip-body{font-size:14px;line-height:1.8;color:var(--ink)}
.tip-body.tip-nayin{margin-top:var(--sp-2);padding-top:var(--sp-2);border-top:1px solid var(--line);color:var(--ink2);font-size:13px}

/* ===== 共享日期/时间选择器（自建弹层，响应式模式也可弹出） ===== */
/* 隐藏原生日历/时钟指示器：它在设备模拟模式下会被压制无法弹出，改由自建图标触发 */
input[type="text"].dt-input::-webkit-calendar-picker-indicator,
input[type="time"].dt-input::-webkit-calendar-picker-indicator{display:none;opacity:0;pointer-events:none}
input[type="text"].dt-input::-moz-calendar-picker-indicator,
input[type="time"].dt-input::-moz-calendar-picker-indicator{display:none}
.dt-wrap{position:relative;display:flex;align-items:center;gap:var(--sp-2);flex:1 1 auto;min-width:0;height:30px;box-sizing:border-box}
.field .dt-wrap{width:100%}
.dt-wrap input{flex:1 1 auto;min-width:0;height:100%}
/* 日期框：定宽 96px，按顶层规则第二段（内容 + 左右间距 + 边框） */
.dt-wrap input[type="text"].dt-input{flex:0 0 96px;width:96px}
/* 时间框：定宽 72px，按顶层规则第二段（HH:MM 内容 + 左右间距 + 边框） */
.dt-wrap input[type="time"]{flex:0 0 72px;width:72px}
/* 日期与时间框内文字居中：框宽按内容定，居中使两侧留白恒等 */
input[type="text"].dt-input,input[type="time"].dt-input{text-align:center}
/* 图标外框与输入框等高：.dt-wrap 与全站控件同取 30px，
   input 取 height:100%，图标同为 100% 使二者上下沿齐平；box-sizing 让 1px 边框计入高度内 */
.dt-ic{flex:0 0 auto;cursor:pointer;font-size:16px;user-select:none;height:100%;box-sizing:border-box;
  background:var(--tk-tint,var(--gold-bg));border:1px solid var(--tk-line,var(--line));border-radius:0;
  padding:var(--sp-1) var(--sp-1);display:flex;align-items:center;justify-content:center;transition:.15s}
/* 日期图标盒的三档色（常态淡底、悬停满填、按下深档）一律经 --tk-* 取本页主题色：图标自身无页面上下文，
   由 app.js 给 .dt-wrap 派发 dtm-* 标识带出这三档令牌，未配色页回落到同一套 --gold 系重指 */
.dt-ic:hover{border-color:var(--tk,var(--gold));background:var(--tk,var(--gold));color:#fff}
.dt-ic:active{border-color:var(--tk2,var(--gold2));background:var(--tk2,var(--gold2));color:#fff}
/* 弹框容器：直角纸面（同特异性下源序在后，覆盖 .modal 基础层的 16px 圆角与重投影）。
   border-width/color 兜底为 1px 中性线，主题段再按 --tk 覆盖，避免未配色时落回 2px 金边。 */
/* padding-top 由 24 提到 32：为右上角的关闭 × 让出一条专属带（24 不够，× 会压到头部行右端的 » 上） */
.dt-modal{max-width:340px;padding-top:32px;border-radius:0;border-width:1px;border-color:var(--line);box-shadow:none}
/* 关闭 ×：置于弹框右上角，不与年份箭头平行。
   细节：22×22 字号 19，上 6px 右 12px 留边（不贴角、不悬空），落在这条 32px 顶部带内，
   与下方头部行留 4px 净距；» 的 margin-right 再让出 6px，水平也不相交，故不会误触。 */
.dt-modal > .close{top:6px;right:var(--sp-3);width:22px;height:22px;font-size:19px;line-height:22px;text-align:center}
.dt-modal > .close:hover{background:var(--tk-tint,var(--gold-bg));color:var(--tk-ink,var(--ink))}
.dt-head{display:flex;align-items:center;justify-content:center;gap:var(--sp-1);margin-bottom:var(--sp-2);flex-wrap:nowrap}
/* 头部箭头：纯字符（同本页年月导航 .nav-btn 语言），无框无底无圆角，悬停才给淡底 */
/* padding 须显式归零：bazi.html 内联有裸 button{padding:6px 18px}，会污染本共享弹框的头部按钮，
   在 border-box 下把 26px 宽撑成 36px，致头部溢出。显式 padding:0 使各页头部按钮同尺寸。 */
.dt-head button{background:none;border:0;border-radius:0;width:26px;height:26px;padding:0;font-size:16px;line-height:1;cursor:pointer;font-family:inherit;flex:0 0 auto;color:var(--ink2);transition:background .15s,color .15s}
.dt-head button:hover{background:var(--tk-tint,var(--gold-bg));color:var(--tk,var(--gold))}
/* 年步进推至两端、月步进夹住年月控件居中，使两组语义在视觉上分开 */
.dt-head button[data-act="y-"]{margin-right:auto}
/* 右端留白给右上角 × 让位（避免与 » 相邻误触，见 .dt-modal > .close） */
.dt-head button[data-act="y+"]{margin-left:auto;margin-right:var(--sp-4)}
/* 年份框隐去原生上下箭头：该箭头占内容区右侧约 13px，使数字与箭头的间隙只剩约 4px，
   远比数字与左侧边框的约 9px 窄，观感偏挤。年月步进已由左右四键承担，箭头冗余。 */
/* 年/月控件与步进钮同为 26px 高，使整行等高：头部行不再被输入框撑到 33px 而让按钮居中下沉 3.5px，
   × 与 » 才能在同一水平线上（× 的 top 就是内容区顶部）。padding 归零、行高收紧以在 26px 内居中。 */
.dt-year{width:66px;height:26px;text-align:center;padding:0 var(--sp-1);line-height:1.1;border:1px solid var(--line);border-radius:0;font-size:13px;font-weight:400;font-family:inherit;background:var(--card);color:var(--ink);flex:0 0 auto;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}
.dt-year::-webkit-outer-spin-button,.dt-year::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
/* 月份框按内容定宽：写死 84px 会在「9月」与箭头间留 20 余像素空白。width:auto 让浏览器按最宽选项「12月」+ 原生箭头 + 内边距
   算出自然宽（实测 61px）；min-width 给 64px 的下限，既留出 3px 呼吸、又在字体回落变宽时自动撑开不裁字。
   text-align:center 让选中文本在可见区域居中（Chrome 现代版本支持 select 上的 text-align）。
   字号字重取 13px/400，与全站检索行
   .field input、.field select 同口径：年月控件与页面日期输入框同为输入控件，须同一字级。

   同口径扩至整张弹框：
   .dt-title（17/700）、.dt-week span（12/700）、.dt-cell（15）、.dt-cell.today（700）、.dt-opt（15）、
   .dt-opt.on —— 全部统一到 13px/400。区分层级靠背景色（today 满填 / on 红底），不靠字重。 */
.dt-month{width:auto;min-width:64px;height:26px;padding:0 var(--sp-1);border:1px solid var(--line);border-radius:0;font-size:13px;font-weight:400;font-family:inherit;background:var(--card);color:var(--ink);flex:0 0 auto;cursor:pointer;text-align:center}
.dt-title{font-size:13px;font-weight:400}
.dt-week{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--sp-1);margin-bottom:var(--sp-1)}
.dt-week span{text-align:center;font-size:13px;color:var(--ink2);font-weight:400}
.dt-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--sp-1)}
/* 日期格：无框无底无圆角（首页「线而非框」语言），仅靠 hover 淡底与今日满填区分 */
.dt-cell{background:none;border:0;border-radius:0;min-height:36px;display:flex;align-items:center;justify-content:center;font-size:13px;cursor:pointer}
.dt-cell:hover{background:var(--tk-tint,var(--gold-bg))}
/* 空白位须显式压过 .dt-cell 的底色与悬停底（故 .dt-cell 与主题段都不写空白位底色） */
.dt-cell.empty,.dt-cell.empty:hover{background:none;border:0;cursor:default}
/* 今日格：满填为状态标记，悬停再深一档，字色恒白，不因悬停让位给淡底 */
.dt-cell.today{background:var(--red);color:#fff}
.dt-cell.today:hover{background:var(--red2);color:#fff}
.dt-time{display:flex;gap:var(--sp-2);max-height:300px}
.dt-col{flex:1;overflow:auto;max-height:300px;border:1px solid var(--line);border-radius:0;background:var(--tk-tint,var(--gold-bg))}
.dt-col::-webkit-scrollbar{width:6px}
.dt-col::-webkit-scrollbar-thumb{background:var(--line);border-radius:0}
.dt-opt{text-align:center;padding:var(--sp-2) 0;font-size:13px;cursor:pointer;border-bottom:1px solid var(--line)}
.dt-opt:hover{background:var(--gold);color:var(--nav)}
.dt-opt.on{background:var(--red);color:#fff}
@media(max-width:420px){.dt-modal{max-width:92vw}.dt-cell{min-height:34px;font-size:13px}}

.bazi-table .zhu{background:var(--paper2);color:var(--gold2);font-weight:400}
/* 纳音分析模块：去除内部各子模块背景色，保持与本命分析其他模块一致的扁平风格 */
.nayin-wrap .info-box.nayin-box{background:transparent;border:none;padding:0;box-shadow:none}
.nayin-wrap .info-box.nayin-box.nayin-bd{border:1px solid var(--line);border-radius:0;padding:var(--sp-3)}
.nayin-wrap .bazi-table th{background:transparent}
.nayin-wrap .bazi-table td:first-child{background:transparent}
/* 纳音分析模块：关系表与人生议题 .stab 表格一致（13px / 6px 9px / 行高1.8），数据列居中、末列“传统释义”长文左对齐 */
.nayin-rel{margin-top:var(--sp-1)}
.nayin-rel th,.nayin-rel td{padding:6px 9px;font-size:13px;vertical-align:top;text-align:center}
.nayin-rel td:last-child{text-align:left}
.nayin-rel th{text-align:center;background:var(--paper2);color:var(--gold2);font-weight:400}
.nayin-rel td.small{line-height:1.8;font-size:13px}
/* 纳音模块内部小标题：与“量化四柱” caption 同款（13px / gold2），不用 .rel-title 的 16px */
.nayin-h{font-size:13px;font-weight:600;color:var(--gold2);margin:var(--sp-4) 0 var(--sp-1);letter-spacing:.2px}
.nayin-wrap>.nayin-h:first-child{margin-top:var(--sp-1)}
/* 手机端：纳音关系表“传统释义”列加宽，其余列收窄，避免释义被压成多行碎段 */
@media(max-width:560px){
  .nayin-rel{table-layout:fixed;width:100%}
  .nayin-rel th,.nayin-rel td{padding:5px 2px}
  .nayin-rel th:nth-child(1),.nayin-rel td:nth-child(1){width:12%}
  .nayin-rel th:nth-child(2),.nayin-rel td:nth-child(2){width:18%}
  .nayin-rel th:nth-child(3),.nayin-rel td:nth-child(3){width:9%}
  .nayin-rel th:nth-child(4),.nayin-rel td:nth-child(4){width:13%}
  .nayin-rel th:nth-child(5),.nayin-rel td:nth-child(5){width:8%}
  .nayin-rel th:nth-child(6),.nayin-rel td:nth-child(6){width:40%}
  .nayin-rel td.small{line-height:1.45}
}
/* 四柱纳音无纯罗列表（与基础表纳音列合一）；综合参考仅保留分析判断 */
.nayin-bd .ly-zh-p:first-child{margin-top:0}

/* 万年历/佛历/道历：今日恒为红色；选中用偏暗暖沙色块（比 hover 深，非红色系）
   hover --cal-hover(#ecebe5) → 选中 #d5c5ae */
.cal-cell.selected:not(.today){background:#d5c5ae;border-color:transparent}.cal-cell .festival+.ld{display:none}
/* 日历格槽位分层：节气、节日各占一固定槽，同日可并存，互不顶掉；
   任一槽有内容时隐藏农历日，保持每格最多两行文字。休班标为左下角标，不占文字行。 */
.cal-cell .slot{font-size:11px;line-height:1.2;margin-top:2px;max-width:100%;width:100%;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal-cell .slot-jq{color:#2c6e2c}
.cal-cell .slot-fest{color:var(--gold2)}
/* 仅两槽皆满时隐藏农历日；单槽时保留（万年历主题要求农历日恒现） */
.cal-cell .slot-jq~.slot-fest~.ld{display:none}
/* 休班标：与另三枚角标同一处理——只给字色、不给底色，不加边框圆角，落左下角。
   休＝法定假（节日红轴），班＝调休补班（黛青次墨，与周末红数字相互区别） */
.cal-cell .rest-mark{top:auto;bottom:var(--sp-1);left:var(--sp-1);display:none}
.cal-cell .rest-mark.on{display:block}
.cal-cell .rest-mark.rest{color:var(--red)}
.cal-cell .rest-mark.work{color:#4d6a70}
/* 纪念日角标：落右下角，窄屏隐去纪念日名后由它顶替（桌面端名字在节日槽，角标不再重复）。
   取墨色与左上的节庆朱砂分色；两枚同为朱砂时只靠角位相辨，扫读易混。 */
.cal-cell .mem-mark{top:auto;right:var(--sp-1);bottom:var(--sp-1);display:none;color:var(--ink2)}
/* 斋日格不铺底色：与节庆格同处置，「线、字优先」由角标逐日点出（照各页主题段 .cal-cell.zhai 透明覆写） */
.cal-cell.zhai{background:transparent}

/* 附加功能面板（页尾收束件）：低频工具区，默认收起成一行，上下细线夹出，
   下边线承担内容到免责声明之间的收束。题名与状态字同取注文级 12px（规则档四之 9），
   形制全站在此定终值，页面段只写线色与题色。 */
.ai-block{margin-top:var(--sp-4);border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0;background:transparent;overflow:hidden}
.ai-head{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);background:transparent;font-size:12px;cursor:pointer;list-style:none}
.ai-block[open] .ai-head{border-bottom:1px solid var(--line)}
.ai-head::-webkit-details-marker{display:none}
.ai-head::after{content:'▾';font-size:12px;line-height:1;transition:transform .15s}
.ai-block:not([open]) .ai-head::after{transform:rotate(-90deg)}
/* 带 .ai-block 是为压过页面里 h3 通配（民俗页 .ms-page h3 例外）：共享件字号字重只在通用段定终值 */
.ai-block .ai-head h3{font-size:12px;font-weight:400;color:var(--gold2);font-family:var(--font-serif);letter-spacing:.1em;margin:0}
.ai-head .ai-status{font-size:12px;color:var(--ink2);margin-left:auto;min-width:0}
.ai-head .ai-status.is-configured{color:var(--green)}
/* 访问者地理位置（IP 定位）：置于页脚免责声明之下，居中。未取到时保持隐藏，
   故默认 display:none，由脚本取数成功再加 .on；窄屏下收缩省略。 */
footer .geo-foot{display:none;align-items:center;justify-content:center;gap:4px;margin-top:var(--sp-2);font-size:12px;color:var(--foot-ink,var(--gold2));max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
footer .geo-foot.on{display:flex}
footer .geo-foot svg{flex:none;width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linejoin:round}
.ai-body{padding:var(--sp-3) var(--sp-4)}
.ai-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center}
.ai-actions .btn{font-weight:400;font-size:13px;padding:0 12px;line-height:1.35}
.btn.soft{background:var(--gold-bg);color:var(--ink);border:1px solid var(--line)}
.btn.soft:hover{background:var(--card);border-color:var(--gold)}
/* 输出区：去四边描边，只留一条顶线（去框改线）；左右内边距归零，与 .ai-body 左对齐 */
.ai-out{font-size:14px;line-height:1.9;margin-top:var(--sp-2);color:var(--ink);
  border:0;border-top:1px solid var(--line);border-radius:0;padding:var(--sp-3) 0;min-height:20px;background:transparent}
.ai-out.show{display:block}
/* 多模型标签栏 */
.ai-tabs{display:flex;gap:var(--sp-1);flex-wrap:wrap;margin:var(--sp-2) 0 0}
.ai-tab{padding:var(--sp-1) var(--sp-3);border:1px solid var(--line);border-radius:0;background:var(--gold-bg);font-size:13px;font-weight:400;color:var(--ink2);cursor:pointer;font-family:inherit;border-bottom:none}
.ai-tab:hover{border-color:var(--gold);color:var(--gold)}
.ai-tab.active{background:var(--gold);border-color:var(--gold);color:#fff;border-bottom:none;box-shadow:none}
.ai-tab.active:hover{background:var(--gold2);border-color:var(--gold2);color:#fff}
.ai-pane{display:none}.ai-pane.active{display:block}
.ai-pane .ai-out{display:block;border-radius:0}
.ai-chat{display:flex;flex-direction:column;gap:var(--sp-1);max-height:420px;overflow-y:auto;padding-right:var(--sp-1)}
.ai-bubble{padding:var(--sp-2) var(--sp-3);border-radius:0;font-size:13px;line-height:1.6;margin:var(--sp-1) 0}
.ai-bubble.user{background:var(--gold-bg);border:1px solid var(--gold);color:var(--ink);align-self:flex-end;max-width:85%}
/* 对话输入 */
.ai-follow input{background:var(--card)}
/* 模型列表（配置弹窗内） */
.ai-model-row{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) 0;font-size:13px;border-bottom:1px dotted var(--line);min-height:32px}
.ai-model-row:hover{background:var(--gold-bg)}
.ai-model-name{flex:1;color:var(--ink);word-break:break-all;line-height:1.4;min-width:0}
.ai-model-chk{flex:0 0 14px;width:14px;height:14px;min-width:14px;cursor:pointer;margin:0;accent-color:var(--cfg-accent,var(--gold))}
.ai-model-del{flex:0 0 auto;font-size:11px;background:none;border:1px solid var(--red);color:var(--red);border-radius:0;cursor:pointer;padding:2px var(--sp-2);white-space:nowrap}
.ai-model-del:hover{background:var(--red);color:#fff}
.ai-tip{font-size:12px;color:var(--ink2);margin-top:var(--sp-2)}
@media(max-width:540px){
  .ai-model-row{gap:var(--sp-3);padding:var(--sp-2) 0;min-height:40px}
  .ai-model-chk{flex:0 0 18px;width:18px;height:18px;min-width:18px}
  .ai-model-name{font-size:14px;word-break:break-word}
  .ai-model-del{font-size:13px;padding:var(--sp-1) var(--sp-3)}
  #aiModelList{max-height:220px}
}
.ai-bubble.assistant{background:var(--card);border:1px solid var(--line);color:var(--ink);align-self:flex-start;width:100%}
.ai-follow select{background:var(--card);font-family:inherit}
/* 格局分析：喜用神 */
.an-block{margin-top:var(--sp-2)}
.an-plain{margin-top:var(--sp-2)}
.an-row.an-yun{border:none;padding:0;border-radius:0;background:transparent;margin-bottom:0}
.an-row{display:block;padding:var(--sp-3) var(--sp-3);border:1px solid var(--line);border-radius:0;background:transparent;margin-bottom:var(--sp-3)}
.an-row:last-child{margin-bottom:0}
.an-k{display:block;color:var(--gold2);font-weight:700;font-size:14px;margin:0 0 var(--sp-1);padding:0}
.an-v{display:block;min-width:0;font-size:13.5px;line-height:1.85;color:var(--ink)}
.an-block b{font-weight:400}
.an-quote .an-v{font-size:13px}
.an-pai{display:grid;grid-template-columns:1fr;gap:var(--sp-2);margin:var(--sp-2) 0}
.an-p{border:1px solid var(--line);border-radius:0;background:transparent;padding:var(--sp-3) var(--sp-3);margin:0;font-size:13.5px;line-height:1.85;color:var(--ink);text-align:justify;text-justify:inter-character}
.an-p.an-full{grid-column:1/-1}
.an-p b{color:var(--red2)}
/* 五法交叉结论：边框与前 5 个流派卡一致，仅靠前导加粗标题区分 */
/* an-k：小模块标题（life-card 风格），标题后不带冒号 */
/* 评分依据列表 */
.basis{margin:var(--sp-1) 0 2px;padding-left:var(--sp-4)}
.basis li{font-size:13px;line-height:1.7;color:var(--ink2)}
/* 结构病药（病药派，结构失衡） */
.an-struct{background:transparent}
.struct-note{font-weight:400;color:var(--ink);margin-bottom:var(--sp-1);font-size:13px}
.struct-item{font-size:13px;line-height:1.7;margin:var(--sp-1) 0}
.sd-tag{display:inline-block;font-size:12px;font-weight:400;padding:0 var(--sp-1);border-radius:0;margin-right:var(--sp-1);vertical-align:middle}
.sd-病{background:#fdecea;color:var(--red);border:1px solid #e6b0aa}
.sd-药{background:#eafaf1;color:#1e8449;border:1px solid #a9dfbf}
.sd-special{background:var(--special-bg);color:var(--special-text);border:1px solid var(--special-border)}
.sd-凶{background:#fdecea;color:var(--red);border:1px solid #e6b0aa}
.sd-吉{background:#eafaf1;color:#1e8449;border:1px solid #a9dfbf}
.sd-中{background:#eef3fb;color:#2e5fa3;border:1px solid #b9cde8}
/* 扶抑、三得 芯片 */
.de-row{margin-top:var(--sp-1);display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-1)}
.de-chip{display:inline-block;font-size:12px;padding:1px var(--sp-2);border-radius:0;border:1px solid #ccc}
.de-on{background:#eafaf1;color:#1e8449;border-color:#a9dfbf}
.de-off{background:#f4f4f4;color:#999;border-color:#ddd}
/* 扶抑用神：喜 / 忌 分组，每个十神类别独立色块、自动分段换行 */
.fu-wrap{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-1);margin:var(--sp-1) 0}
.fu-tag{flex:0 0 auto;font-weight:400;margin-right:2px}
.fu-pill{display:inline-block;padding:var(--sp-1) var(--sp-3);border-radius:0;font-size:13px;line-height:1.6;white-space:nowrap}
.fu-xi{background:#eaf6ee;border:1px solid #bcdcc6;color:#1f7a3d}
.fu-ji{background:#fbeeee;border:1px solid #ecc3c3;color:var(--red)}
.fu-xi-tag{color:#1f7a3d}
.fu-ji-tag{color:#F65352}
.fu-de-tag{color:var(--ink2)}
/* 旺衰评分：公式前置 + 可折叠明细 */
.wf-formula{font-size:13.5px;line-height:1.9;color:var(--ink);margin-bottom:var(--sp-1)}
.wf-formula b{color:var(--gold2);font-weight:700}
/* 综合用神合成（五法共识，高亮主结论） */
/* 综合用神：与常规 an-row 同款，无边框 */
.synth-top{font-size:13.5px;font-weight:400;margin-bottom:var(--sp-1)}
.synth-top b{font-size:14px;font-weight:400}
.synth-conflict{font-size:12.5px;color:var(--red);background:#fbeeee;border:1px solid #ecc3c3;border-radius:0;padding:var(--sp-1) var(--sp-2);margin:var(--sp-1) 0;line-height:1.5}
/* 岁运引动表格：对齐“四柱”风格（深金表头 + 暖色边框），移动端横向滚动避免拉长 */
.an-yun{margin:2px 0}
.yun-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.yun-tbl{border-collapse:collapse;width:100%;min-width:540px;margin-top:var(--sp-1);font-size:13px;background:transparent;table-layout:fixed}
.yun-tbl th{background:transparent;color:var(--gold2);padding:8px 6px;text-align:center;font-weight:400;border:1px solid var(--line)}
.yun-tbl td{border:1px solid var(--line);padding:6px 7px;vertical-align:top;font-size:13px}
.yun-tbl .yun-key{font-size:12px;color:var(--ink2);line-height:1.42}
.yun-light{text-align:center;font-weight:400;border-radius:0}
.yun-吉,.yun-凶,.yun-中,.yun-平{background:transparent;color:var(--ink)}
.ge-cheng{color:#1f7a3d}
.ge-bian{color:#9a6b00}
.ge-po{color:#F65352}
/* 列宽：大运/起运岁/吉凶 窄，关键引动占主宽，避免挤压 */
.yun-tbl th:nth-child(1),.yun-tbl td:nth-child(1){width:38px;padding:6px 3px;white-space:nowrap;text-align:center}
.yun-tbl th:nth-child(2),.yun-tbl td:nth-child(2){width:50px;padding:6px 3px;white-space:nowrap;text-align:center}
.yun-tbl th:nth-child(3),.yun-tbl td:nth-child(3){width:16%}
.yun-tbl th:nth-child(4),.yun-tbl td:nth-child(4){width:42%}
.yun-tbl th:nth-child(5),.yun-tbl td:nth-child(5){width:38px;padding:6px 3px;white-space:nowrap;text-align:center}
/* 岁运引动：用 auto 布局，使大运/起运岁/吉凶三列真正按内容收缩（只比字符略宽）。
   fixed 布局下 5 列均有显式宽，表格宽于列宽之和时多余宽度被按比例摊回窄列，导致“改了没效果”。
   此处用 width:1% + nowrap 让三列收缩到内容，关键引动（第4列）用 width:auto 吃掉剩余宽度。 */
/* 岁运引动：fixed 布局 + 显式百分比，四列强制按比分配、内容折行，
   彻底杜绝手机端横向滑动；大运/吉凶两列等宽窄列，关键引动吃主宽，用忌居中可换行。 */
table.yun-tbl.yd{table-layout:fixed}
table.yun-tbl.yd th:nth-child(1),table.yun-tbl.yd td:nth-child(1){width:19%;padding:6px 4px;text-align:center;line-height:1.35;word-break:break-word;overflow-wrap:anywhere} /* 大运（干支/岁数/年份三行；加宽至 19% 容纳"约 XXXX–XXXX 年"，并允许 word-break 防撑出框外） */
.yun-age{font-size:12px;color:var(--ink2);line-height:1.3} /* 大运内岁数：浅色缩小，与关键引动列正文同调 */
table.yun-tbl.yd th:nth-child(2),table.yun-tbl.yd td:nth-child(2){width:15%;white-space:normal;word-break:break-word;text-align:center;line-height:1.5} /* 用忌：居中可换行 */
table.yun-tbl.yd th:nth-child(3),table.yun-tbl.yd td:nth-child(3){width:53%;white-space:normal;word-break:break-word;overflow-wrap:anywhere} /* 关键引动：主宽 */
table.yun-tbl.yd th:nth-child(4),table.yun-tbl.yd td:nth-child(4){width:13%;padding:6px 4px;text-align:center} /* 吉凶：与大运列同宽 */
.yd-extra{display:inline;font-size:12px;line-height:1.5;color:var(--ink2)}
.yd-life{display:inline;font-size:12px;line-height:1.55;color:var(--gold2)}
.ev-jx{text-align:center;font-weight:400;color:var(--gold2)}
.yun-tbl .yun-gz{font-weight:400;color:var(--ink);line-height:1.35}
.yun-empty td{background:transparent;color:var(--ink2);font-size:var(--tier4);text-align:center}
/* 手机端：所有运势表缩小字号与间距 */
@media(max-width:640px){
  .yun-tbl .yun-key{font-size:11px}
}
/* 岁运引动（手机端）：整表收进视口、禁横向滑动（百分比列宽已保证不溢出），窄列允许折行兜底 */
@media(max-width:640px){
  table.yun-tbl.yd th:nth-child(1),table.yun-tbl.yd td:nth-child(1),
  table.yun-tbl.yd th:nth-child(2),table.yun-tbl.yd td:nth-child(2),
  table.yun-tbl.yd th:nth-child(4),table.yun-tbl.yd td:nth-child(4){
    white-space:normal;word-break:break-word;overflow-wrap:anywhere
  }
}

.life-card{border:1px solid var(--line);border-radius:0;background:transparent;padding:var(--sp-3) var(--sp-3);margin:0}
.life-card h5{font-size:var(--tier4);font-weight:700;color:var(--title);margin:0 0 var(--sp-1)}
.life-card p{font-size:13.5px;line-height:1.85;color:var(--ink)}
/* 十神宫位：子标题与纳音小标题同形，但本卡片内去掉半粗、收紧段距，符合同框间距标准 */
.shishen-card .nayin-h{font-weight:400;margin:var(--sp-2) 0 var(--sp-1)}
.core-box{display:flex;flex-direction:column;gap:var(--sp-4);margin-top:var(--sp-1)}
/* 宜忌选择：后天补救：复用纳音表的紧凑表格样式（与 .nayin-rel 一致：12px/居中/表头 paper2+金/末列左对齐），
   此处仅补项目列窄列金字、宜绿忌红，视觉与前文纳音表格统一 */
.remedy{margin-top:var(--sp-2)}
.remedy-tbl{width:100%;border-collapse:collapse;font-size:13px;margin-top:var(--sp-2)}
.remedy-tbl th,.remedy-tbl td{border:1px solid var(--line);padding:6px 9px;line-height:1.8;vertical-align:top;text-align:center;font-size:13px;word-break:break-word;overflow-wrap:anywhere;background:transparent}
.remedy-tbl td:last-child{text-align:left}
.remedy-tbl th{background:transparent;color:var(--gold2);font-weight:400}
.remedy-tbl td.lbl{width:4.5em;min-width:4.5em;max-width:4.5em;font-weight:400;color:var(--gold2);white-space:nowrap;text-align:center;vertical-align:top;background:transparent}
.remedy-tbl td.lbl.rem-good{color:#2b8a3e}
.remedy-tbl td.lbl.rem-bad{color:var(--red)}
.remedy-box .rem-yi{padding-left:var(--sp-2)}
.remedy-box .rem-ji{padding-left:var(--sp-2)}
/* 响应式：部分表单允许字段 2 列排列 */
@media(max-width:600px){
  .form-row.r2 .field{flex:1 1 48%}
  /* r3: 性别/子时/按钮保持单排，不强制分两列 */
  .form-row.r3 .field{flex:0 0 auto}
  .form-row.r3 #bSex{min-width:40px !important;max-width:80px !important}
  .form-row.r3 #bZi{min-width:100px !important}
  .form-row.r3 .btn{flex:0 0 auto}
}
.ai-copy-tip{position:fixed;left:50%;bottom:32px;transform:translateX(-50%) translateY(20px);
  background:rgba(40,28,16,.92);color:#fff;padding:var(--sp-2) var(--sp-4);border-radius:0;font-size:13px;
  box-shadow:0 6px 20px rgba(0,0,0,.3);opacity:0;pointer-events:none;transition:.25s;z-index:999}
.ai-copy-tip.show{opacity:1;transform:translateX(-50%) translateY(0)}
/* AI 配置弹窗表单 */
.ai-form{display:flex;flex-direction:column;gap:var(--sp-3)}
.ai-form label{font-size:13px;color:var(--ink2);display:flex;flex-direction:column;gap:var(--sp-1);min-width:0}
.ai-form input,.ai-form select{height:30px;padding:0 10px;border:1px solid var(--line);border-radius:0;background:var(--card);font-size:14px;font-family:inherit;color:var(--ink);line-height:1.35;width:100%;max-width:100%;min-width:0}
.ai-form .row{display:flex;gap:var(--sp-2);align-items:flex-end}
.ai-form .row label{flex:1}
.ai-form .row button{flex:0 0 auto}

/* ═══ AI 配置弹窗（多模型管理）：墨黑头部、朱砂题签、分节编号 ═══ */
/* 定边靠墨黑头部与深投影，不设描边：浅描边夹在墨头与暗遮罩之间会读成一道白线框 */
/* 弹窗强调色：按类收口。弹窗由 ai.js 挂到 body 下，不在 .page 内，页面主体色不可继承，
   故在本类上声明一支弹窗自己的强调色，全弹窗只此一处定义，其余规则一律引用。 */
.modal.ai-cfg{--cfg-accent:#a5321f;--cfg-accent-line:rgba(165,50,31,.4);--cfg-accent-deep:#7e2418;
  max-width:600px;border:0;border-radius:0;padding:0;overflow:auto;
  box-shadow:0 24px 64px rgba(28,26,23,.28)}
.ai-cfg .ai-form{gap:0}
.ai-cfg-head{position:sticky;top:0;z-index:2;background:#1c1a17;color:#f0ece0;padding:11px 76px 10px 26px}
.ai-cfg-head > .close{position:absolute;top:50%;right:18px;transform:translateY(-50%);padding:4px;
  color:rgba(240,236,224,.65);font-size:20px;line-height:1;transition:color .15s;cursor:pointer}
.ai-cfg-head > .close:hover{color:#fff}
.ai-cfg-head h3{margin:0;font-family:var(--font-serif);font-weight:400;font-size:17px;letter-spacing:.16em;display:flex;align-items:center;gap:10px}
.ai-cfg-head h3 i{flex:1;height:1px;background:rgba(240,236,224,.18);min-width:10px}
.ai-cfg-head h3 em{font-style:normal;font-size:11px;letter-spacing:.22em;color:#8a8478;font-family:inherit;white-space:nowrap}
.ai-cfg-head p{margin:3px 0 0;font-size:11.5px;line-height:1.6;color:#9a9488;letter-spacing:.02em}
.ai-sec{padding:18px 26px 6px;display:flex;flex-direction:column;gap:var(--sp-3)}
.ai-sec-t{font-size:13.5px;letter-spacing:.12em;color:var(--ink);font-weight:600;display:flex;align-items:center;gap:9px}
.ai-sec-no{font-family:var(--font-serif);font-weight:400;font-size:12px;color:var(--cfg-accent);
  border:1px solid var(--cfg-accent-line);border-radius:0;padding:1px 5px;letter-spacing:.1em}
.ai-sec-note{margin-left:auto;font-size:11.5px;font-weight:400;color:#a09a8e;letter-spacing:.03em}
.ai-enc{font-size:12px;color:var(--ink2);display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:-6px}
.ai-enc .btn.soft{padding:3px 10px;font-size:12px;font-weight:400}
/* 说明折叠：无底色块，纯文字层级 */
.ai-help{font-size:12px;color:#8a8478;padding:2px 0 4px}
.ai-help summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:7px;color:var(--cfg-accent);letter-spacing:.05em;font-size:12px}
.ai-help summary::before{content:'＋';font-size:11px;line-height:1}
.ai-help[open] summary::before{content:'－'}
.ai-help summary::-webkit-details-marker{display:none}
.ai-help summary:hover{color:var(--cfg-accent-deep)}
.ai-help p{margin:6px 0 0 18px;line-height:1.85;color:#8a8478}
.ai-help code{background:transparent;border:none;border-bottom:1px dotted #c2bcae;border-radius:0;padding:0;font-size:11.5px;color:#6f6a63}
.modal.ai-cfg .ai-actions{justify-content:space-between;margin:16px 26px 0;padding:14px 0 0;border-top:1px solid #efe9db;flex-wrap:wrap;gap:10px}
.modal.ai-cfg .ai-act-main,.modal.ai-cfg .ai-act-file{display:flex;flex-wrap:wrap;gap:10px}
.modal.ai-cfg .ai-actions .btn{font-weight:400;font-size:13px;padding:0 14px;border-radius:0}
.modal.ai-cfg .btn.soft{background:var(--card);border:1px solid var(--line);color:var(--ink2)}
.modal.ai-cfg .btn.soft:hover{border-color:var(--cfg-accent);color:var(--cfg-accent);background:var(--card)}
.ai-saved{padding-bottom:30px}
#aiModelList{max-height:190px;overflow-y:auto;border:1px solid #eee8da;border-radius:0;background:var(--card);padding:0 12px}
.modal.ai-cfg .ai-model-row{border-bottom:1px solid #f4efe4}
.modal.ai-cfg .ai-model-row:last-child{border-bottom:none}
.ai-cfg .ai-tip{margin-top:0;min-height:0}
.modal.ai-cfg .btn{border-radius:0}
@media(max-width:640px){
  .modal.ai-cfg{max-height:92vh;overflow-y:auto}
  .ai-cfg-head{padding:9px 60px 9px 18px}
  .ai-cfg-head h3{font-size:15px;gap:8px}
  .ai-cfg-head > .close{right:14px}
  .ai-sec{padding:14px 18px 2px}
  .ai-saved{padding-bottom:44px}
  .modal.ai-cfg .ai-actions{margin:12px 18px 0}
}

/* 出生地紧凑组：省、市、区县、经度与真太阳时勾选项同排，合婚、八字、择日、六爻等页共用 */
/* 纵向内边距取 --sp-2（8px），站内带边框容器纵向一律此档；横向留 --sp-4（16px），保持纵向小于横向的比例 */
.birth-group.compact{gap:var(--sp-2) var(--sp-3);padding:var(--sp-2) var(--sp-4)}
.birth-group.compact .field{flex:0 1 140px;min-width:60px;max-width:140px;margin:0}
/* 出生地组内的手填经纬度：定宽族 96px，不随组宽伸展 */
.birth-group.compact .field input[type="text"]{width:96px}
.birth-group.compact .field.hh-lng{flex:0 0 96px;min-width:96px;max-width:96px}
.birth-group.compact .field.hh-true{flex:0 0 auto;min-width:auto;width:auto}
/* 标题独占一行（width:100% 的 flex 项），与下方字段的间距由容器 row-gap（--sp-2）单独承担；
   此处不可再给 margin-bottom——否则与 row-gap 叠加成 16px（实测双倍），
   与 .hh-card 作用域（margin:0）及窄屏 media（margin:0）的 8px 口径都不一致 */
.birth-group.compact .group-label{width:100%;margin:0}
/* 出生地三级下拉宽度统一（仅桌面 641+；紧凑组 compact）：省/市/区县三框一律 7 个汉字宽
   （实测 7 字 option 自然宽 137px＝内容 91＋内边距 24＋边框 2＋下拉箭头 20，不裁切），
   三框等宽左对齐成列；字段框随控件收缩（.field 列容器默认拉伸，width:auto 防空洞）。
   长地名闭合态在框内截断、展开下拉列表可见全文。窄屏 ≤640 仍走上方 media 的流式布局 */
@media (min-width:641px){
  .birth-group.compact .field{flex:0 0 auto;width:auto;min-width:0;max-width:none}
  .birth-group.compact .field select{width:137px;align-self:flex-start}
}
/* 评分总览框、专项条目与进度条：合婚、星盘、紫微、姓名学四页共用，纸本目录语言（去框改线、零投影） */
.hh-total{position:relative;text-align:center;margin:0 auto var(--sp-4);max-width:360px;padding:var(--sp-4) 0;
  background:transparent;border:0;border-top:1px solid var(--line);border-radius:0;box-shadow:none}
.hh-total::before{content:'';position:absolute;top:-1px;left:50%;transform:translateX(-50%);width:76px;height:2px;background:var(--gold2)}
.hh-total-cap{font-size:12px;font-weight:400;letter-spacing:2px;color:var(--gold2);margin-bottom:var(--sp-2)}
.hh-total-score{font-size:17px;font-weight:400;letter-spacing:1px;line-height:1.2;margin-bottom:var(--sp-3);color:var(--score-col,inherit)}
.hh-total-score b{color:inherit;font-size:40px;font-weight:400;line-height:1;letter-spacing:1px;vertical-align:-3px}
.hh-total-num{font-size:52px;font-weight:400;line-height:1}
.hh-total-num span{font-size:20px;color:var(--ink2);font-weight:400}
.hh-total-lv{font-size:17px;font-weight:400;margin-top:var(--sp-2);padding-top:var(--sp-2);border-top:1px solid var(--line);letter-spacing:1px;color:var(--score-col,inherit)}
/* 星盘页运势分析框：紧凑版（.hh-total-xz，仅星盘页使用） */
.hh-total-xz{padding:var(--sp-3) var(--sp-4) var(--sp-3)}
.hh-total-xz .hh-total-num{font-size:42px}
.hh-total-xz .hh-total-lv{margin-top:var(--sp-1);padding-top:var(--sp-2);font-size:16px}
.hh-items{display:grid;gap:0}
.hh-item{padding:var(--sp-3) 0;background:transparent;border:0;border-top:1px solid var(--line);border-radius:0;box-shadow:none}
.hh-item:last-child{border-bottom:1px solid var(--line)}
.hh-item-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--sp-2)}
.hh-name{font-weight:400;font-size:13px;color:var(--gold2)}
.hh-score{font-size:14px;color:var(--gold2);font-weight:400}
.hh-bar{height:6px;background:var(--gold-bg);border-radius:0;overflow:hidden}
.hh-bar-in{height:100%;background:var(--bar-col,var(--gold));border-radius:0}
.hh-desc{font-size:13px;color:var(--ink2);margin-top:var(--sp-2);line-height:1.7}
/* 综合建议模块：上下细线夹出，内一张行式结论表（总体判断、亮点、短板、相处之道）；
   标签列淡染取本页深档，分隔全部由表格线条承担 */
.hh-adv{position:relative;margin-top:var(--sp-4);padding:var(--sp-4) 0;background:transparent;
  border-top:1px solid var(--line);border-radius:0;box-shadow:none}
.hh-adv::before{content:'';position:absolute;top:-1px;left:50%;transform:translateX(-50%);width:120px;height:1px;background:var(--gold2)}
.hh-adv-cap{font-size:var(--tier2);font-weight:400;letter-spacing:4px;text-indent:4px;color:var(--gold2);text-align:center;margin-bottom:var(--sp-3)}
.hh-adv-box{border-top:1px solid var(--line);overflow:hidden}
.hh-adv-tbl{width:100%;border-collapse:collapse;font-size:var(--tier4);line-height:1.8}
.hh-adv-tbl th{width:150px;padding:10px 14px;text-align:left;vertical-align:top;background:transparent;color:var(--gold2);font-weight:400}
.hh-adv-tbl td{padding:10px 14px;color:var(--ink);vertical-align:top}
.hh-adv-tbl tr+tr th,.hh-adv-tbl tr+tr td{border-top:1px solid var(--line)}
/* 段头（亮点、短板、相处之道）与正文同号，层级靠字距与墨档色区分；取 tier4 会比正文小一档，读着像注脚 */
.hh-adv-tbl .hh-adv-sec td{padding:7px 14px 5px;color:var(--gold2);font-size:var(--tier3);font-weight:400;letter-spacing:2px;border-top:1px solid var(--line)}
/* 等级词后接句号再接判语，断句由标点承担，故不留右间距 */
.hh-adv-lv{font-size:15px;font-weight:400}
.hh-adv-pill{display:inline-block;border-radius:0;padding:1px var(--sp-2);font-size:12px;line-height:1.7;color:#fff;white-space:nowrap}
.hh-adv-pill-g{background:var(--hh)}
.hh-adv-pill-d{background:var(--hh-deep)}
@media(max-width:640px){
  /* 出生地窄屏：省、市、区县流式占满首行，经度与真太阳时校正跟随其后同排；
     容不下时按字段自然换行，不写死列位。经度定宽 96px，不铺满。
     行内横向间距取移动端更小档 --sp-2，与全站表单行在窄屏的取值同档（第八节：移动端间距取更小档）；
     三等分的扣除量随该档走，故格宽算式里的间距一并取 --sp-2，两处不得各行其是。 */
  .birth-group.compact{display:flex;flex-wrap:wrap;gap:var(--sp-2)}
  .birth-group.compact .group-label{width:100%;margin:0}
  .birth-group.compact .field{flex:1 1 calc((100% - var(--sp-2)*2)/3);min-width:0;margin:0;width:auto;max-width:none}
  /* 三级下拉随三等分走，不按最长选项撑开，省市区恒在一行 */
  .birth-group.compact .field select{width:100%;min-width:0}
  /* 手填经纬度恒 96px，不随三等分伸展 */
  .birth-group.compact .field:has(input[type="text"]){flex:0 0 96px;min-width:96px;max-width:96px}
  .birth-group.compact .field.hh-lng{flex:0 0 96px;min-width:96px;max-width:96px}
  .birth-group.compact .field.hh-true{flex:0 0 auto;min-width:auto;width:auto}
  .hh-adv{padding:var(--sp-3) 0}
  .hh-adv-tbl th{width:92px;padding:8px 10px}
  .hh-adv-tbl td{padding:8px 10px}
}
@media(max-width:900px){
  .fei-wrap{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:640px){
  /* 窄屏同守间距单一来源：左右仍 16px，上下间隙交给 footer 顶部 padding，底部归零 */
  .page{padding:var(--sp-4) var(--sp-4) 0}
  .info-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--sp-2)}
  .info-grid.mh-top,
  .info-grid.xlr-result,
  .info-grid.mh-ti{grid-template-columns:1fr}
  .fei-wrap{grid-template-columns:1fr;gap:var(--sp-3);justify-items:center}
  .dyn-btn{min-width:42px;padding:var(--sp-1) var(--sp-2)}
  /* 大运/流年/流月：手机端参考问真八字式卡片横向滚动 */
  .dyn-block{margin:var(--sp-2) 0;gap:var(--sp-1);align-items:stretch}
  .dyn-label{font-size:12px;font-weight:700;color:var(--gold2);background:transparent;border:none;padding:0;margin:0;writing-mode:horizontal-tb;letter-spacing:0}
  .dyn-row{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:var(--sp-1);gap:var(--sp-1);align-items:stretch}
  /* 逐行按类收口，不按行 id 列举：dyn-row 内任何按钮行（大运/流年/小运/流月）都同口径，新增行不必再登记 */
  .dyn-row .dyn-btn{min-width:38px;padding:var(--sp-1) var(--sp-1);font-size:11px;border-radius:0;gap:0}
  .dyn-row .dyn-btn .g{font-size:11px;letter-spacing:0;white-space:nowrap}
  .dyn-row .dyn-btn .dy-top{font-size:9px}
  .dyn-row .dyn-btn .dy-age{font-size:9px}
  .dyn-row .dyn-btn .tg{font-size:10px}
  .dyn-row .dyn-btn .tz{font-size:10px;margin-left:1px}
  .dyn-row .dyn-btn .cs{font-size:9px}
  /* 流日：固定 3 行网格；列数由 JS 根据当月天数动态设置 */
  #lrs{display:grid;grid-template-columns:repeat(var(--lr-cols,10),minmax(0,1fr));gap:var(--sp-1)}
  #lrs .dyn-btn.lr{min-width:0;padding:var(--sp-1) 1px;font-size:9px}
  #lrs .dyn-btn.lr .g{font-size:10px;letter-spacing:0;white-space:nowrap}
  #lrs .dyn-btn.lr .dy-top{font-size:9px}
  #lrs .dyn-btn.lr .tg{font-size:9px}
  #lrs .dyn-btn.lr .tz{font-size:9px;margin-left:1px}
  #lrs .dyn-btn.lr .cs{font-size:9px}
  .bazi-table .gan,.bazi-table .zhi{font-size:22px}
  /* 窄屏：四柱表按自适应布局（table-layout:fixed + 100% 宽），列自动均分、内容折行，不横向滚动；
     平板（641–1024px）沿用 >640px 的 width:100% 流体布局，随屏宽自然伸缩，适配各型手机与平板 */
  .bazi-table{table-layout:fixed;width:100%}.bazi-table th,.bazi-table td{padding:8px 3px;font-size:13px;word-break:break-word;overflow-wrap:anywhere;vertical-align:middle}
  /* 首列（标签）略宽，其余四柱等宽均分 */
  .bazi-table th:first-child,.bazi-table td:first-child{width:50px}
  .form-row{gap:var(--sp-2)}
  /* 移动端非日历页：字段紧凑，最大160px */
  .form-row .field{flex:0 0 auto;width:auto;min-width:70px}
  .form-row .field input,.form-row .field select{width:auto;max-width:100%;box-sizing:border-box;display:inline-block}
  /* 移动端日历页：保持155px紧凑宽度；日期框仍按内容 96px（与桌面一致） */
  .cal-page .form-row .field{width:155px}
  .cal-page .form-row .field input{width:auto}
  .cal-page .form-row .field input[type="text"].dt-input{width:96px;flex:0 0 96px}
  .ai-chat{max-height:480px}#aiCfgForm .ai-actions{gap:var(--sp-3)!important}#aiCfgForm .ai-actions > div{gap:var(--sp-3)!important}
  /* 万年历/老黄历/佛历/道历/藏历：手机端日历自适应，防止撑破容器 */
  .cal-grid{gap:var(--sp-1) var(--sp-1);width:100%;max-width:100%;box-sizing:border-box;padding:var(--sp-2)}
  .cal-grid .wd{font-size:12px;padding:var(--sp-1) 0}
  /* 格高与角标带：上下内边距各取 --sp-3，恰是一条角标带的高度（内缩 --sp-1 加字号 8px）；
     余下 40px 供数字与农历日两行居中，与上下两条角标带各留约 4px 净空，角标不再贴字。
     五历页共用此一值，格高一律 64px，不再各页分叉。 */
  .cal-cell{padding:var(--sp-3) var(--sp-1);min-height:64px;aspect-ratio:auto;min-width:0}
  .cal-cell .sd{font-size:15px;line-height:1}
  /* 窄屏角标只缩字号，四角内缩与桌面同值，跨视口、跨页面位置恒等 */
  .cal-cell .jq-mark,.cal-cell .fest-mark,.cal-cell .mem-mark,.cal-cell .rest-mark,.cal-cell .mk{font-size:8px}
  /* 农历日字号须留出三字位：佛历、道历、藏历日名作佛十九、道十九、藏十八三字，
     格内可用宽 28.7px，10px 恰溢出 1.3px 被截成残句；9px 三字 27px，尚余 1.7px */
  .cal-cell .ld{font-size:9px;line-height:1.15;margin-top:var(--sp-1)}
  .cal-cell .festival{font-size:9.5px;line-height:1.15;margin-top:2px;width:100%;text-align:center}
  /* 窄屏格内只留数字、农历日与角标：节日名与节气名一律隐去（角标已示其类），
     节日改由左上红色「节」点出，纪念日由右下「纪」点出，休班角标让到左下，右上仍归节气。
     格宽仅 43px，两槽文字换行会把整行格子撑高，故不再给槽位任何排版。 */
  .cal-cell .slot{display:none}
  /* 桌面为「节气名＋节日名」双槽日隐去农历日让位，窄屏两槽皆隐，农历日须回来 */
  .cal-cell .slot-jq~.slot-fest~.ld{display:block}
  .cal-cell .fest-mark,.cal-cell .mem-mark{display:block}
  .cal-nav{margin:var(--sp-1) 0 var(--sp-2);gap:var(--sp-1)}
  .cal-nav-grp{gap:var(--sp-1)}
}
@media(max-width:420px){
  .info-grid{grid-template-columns:1fr}
  .fei-wrap{grid-template-columns:1fr}
  /* 超窄屏：四柱表进一步压缩，确保 320–420px 各型号不撑破 */
  .bazi-table th,.bazi-table td{padding:6px 2px}
  .bazi-table .gan,.bazi-table .zhi{font-size:18px}
  .bazi-table th:first-child,.bazi-table td:first-child{width:42px}
  /* 月历标题 19px 加字距要 125px，320 视口里被两侧按钮挤到 95px，末字 月 掉到下一行：窄屏让标题独占一行 */
  .cal-nav{flex-wrap:wrap}
  .cal-nav .cal-title{flex:1 1 100%;order:-1}
}


/* 大六壬 天地盘：宫格与四课/三传完全同款，白底+细边+10px 圆角+阴影，hover 整宫变色，无金框 */
.lr-board{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(4,1fr);gap:var(--sp-2);
  width:100%;max-width:480px;aspect-ratio:1/1;margin:var(--sp-2) auto;min-width:0}
.lr-cell{border:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none;
  display:flex;flex-direction:column;justify-content:center;gap:1px;min-width:0;min-height:0;
  padding:var(--sp-1) 2px;text-align:center;transition:background .15s}
.lr-cell:hover{background:var(--gold-bg)}
.lr-jiang{font-size:11px;color:var(--gold2);min-height:14px;line-height:1.2}
.lr-tian{font-size:22px;font-weight:700;color:var(--ink);line-height:1.15}
.lr-di{font-size:13px;color:var(--ink2);line-height:1.2}
.lr-center{border:1px solid var(--line);border-radius:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:var(--sp-1);font-size:13px;background:transparent;box-shadow:none;padding:var(--sp-1) var(--sp-2);min-width:0;min-height:0;overflow:hidden}
.lr-center > div{line-height:1.5}
.lr-center .lr-ke{border:none;background:transparent;padding:0;min-width:0}
.lr-center-ke{color:var(--gold2);font-weight:700;font-size:13.5px;line-height:1.4}
.lr-kes{display:flex;justify-content:center;gap:var(--sp-2);flex-wrap:wrap}
.lr-ke{border:0;border-top:1px solid var(--line);border-radius:0;padding:var(--sp-2);text-align:center;background:transparent;
  box-shadow:none;min-width:56px;transition:background .15s}
.lr-ke:hover{background:var(--gold-bg)}
.lr-ke-u{font-size:20px;font-weight:700;color:var(--ink)}
.lr-ke-d{font-size:16px;color:var(--ink2);border-top:1px solid var(--line);margin-top:var(--sp-1);padding-top:var(--sp-1)}
.lr-ke-l{font-size:11px;color:var(--gold2);margin-top:var(--sp-1)}
.lr-chuans{display:flex;flex-direction:column;gap:var(--sp-2);max-width:340px;margin:0 auto}
.lr-chuan{display:flex;align-items:center;gap:var(--sp-3);border:0;border-top:1px solid var(--line);border-radius:0;
  padding:var(--sp-2) var(--sp-3);background:transparent;box-shadow:none;transition:background .15s}
.lr-chuan:last-child{border-bottom:1px solid var(--line)}
.lr-chuan:hover{background:var(--gold-bg)}
.lr-chuan-l{font-size:13px;color:var(--gold2);flex:0 0 44px;font-weight:600}
.lr-chuan-z{font-size:24px;font-weight:700;color:var(--ink);flex:0 0 34px}
.lr-chuan-j{font-size:13px;color:var(--ink2)}
.lr-chuan-yq{font-size:12px;color:var(--gold2);margin-left:auto}
.lr-ke-rel{font-size:11px;margin-top:var(--sp-1)}
.lr-rel-ke{color:var(--red)}
.lr-rel-ping{color:var(--ink2)}
.lr-lei{margin-top:var(--sp-2);text-align:left}
.lr-lei p{font-size:13px;line-height:1.85}
.lr-lei b{color:var(--gold2)}
.lr-jx,.lr-bifa{margin-top:var(--sp-4);border:0;border-top:1px solid var(--line);border-radius:0;padding:var(--sp-3) 0;background:transparent;text-align:left}
.lr-jx:not([open]),.lr-bifa:not([open]){border-bottom:1px solid var(--line)}
.lr-jx summary,.lr-bifa summary{cursor:pointer;font-family:var(--font-serif);font-weight:400;color:var(--gold2);font-size:var(--tier3);letter-spacing:.1em;line-height:1.5}
.lr-jx-tbl{width:100%;border-collapse:collapse;margin-top:var(--sp-2)}
.lr-jx-tbl th,.lr-jx-tbl td{border:1px solid var(--line);padding:5px 7px;font-size:var(--tier4);text-align:center}
.lr-jx-tbl th{background:var(--paper);color:var(--gold2)}
.lr-jx-tbl .lr-ji{color:var(--green);font-weight:700}
.lr-jx-tbl .lr-xiong{color:var(--red);font-weight:700}

/* 大六壬 移动端 */
@media(max-width:640px){
  .lr-board{max-width:100%;gap:var(--sp-1)}
  .lr-cell{border-radius:0;padding:2px 1px}
  .lr-tian{font-size:18px}
  .lr-di{font-size:11.5px}
  .lr-jiang{font-size:10px;min-height:12px}
  .lr-center{font-size:11.5px;padding:var(--sp-1) var(--sp-1);gap:1px}
  .lr-center-ke{font-size:12px}
  .lr-kes{gap:var(--sp-1)}
  .lr-ke{min-width:48px;padding:var(--sp-1) var(--sp-2)}
  .lr-ke-u{font-size:17px}
  .lr-ke-d{font-size:14px}
  .lr-chuan{gap:var(--sp-2);padding:var(--sp-2) var(--sp-2)}
  .lr-chuan-z{font-size:20px;flex:0 0 28px}
}

/* 择日（zr- / jz- 类名由 zeri.html 使用）。间距取 4px 栅格档位 --sp-1..5（4/8/12/16/24）；
   卡片去框改线：不留白底与四边描边，只以上接细线分块；分数取宋体常规字重，等级靠字号与文字分档，不靠颜色。
   卡内四列＝名次、日期、神煞、分数，神煞列右贴分数，避免日期与分数之间留出空段 */
.zr-list{display:grid;gap:var(--sp-2)}
.zr-card{display:grid;grid-template-columns:18px auto 1fr auto;align-items:center;gap:var(--sp-2) var(--sp-3);border:0;border-top:1px solid var(--line);border-radius:0;padding:var(--sp-2) 0;background:transparent}
.zr-card > .jz-verdict,.zr-card > .jz-detail{grid-column:1/-1}
.jz-verdict{grid-column:1/-1;font-size:12px;margin-top:var(--sp-1);font-weight:400;line-height:1.5}
.zr-card.zr-hd{border-top-color:var(--gold)}
.zr-rank{grid-column:1;grid-row:1;color:var(--gold);font-size:16px}
.zr-date{grid-column:2;grid-row:1;min-width:0}
.zr-sol{font-size:15px;font-weight:400;line-height:1.3}
.zr-sol span{font-size:12px;color:var(--ink2);font-weight:400}
.zr-lun{font-size:12px;color:var(--ink2);line-height:1.3}
.zr-tags{grid-column:3;grid-row:1;min-width:0;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--sp-1) var(--sp-3);align-items:baseline;padding-right:var(--sp-2)}
.zr-tag{font-size:11.5px;color:var(--ink2);line-height:1.4}
.zr-tag.gold{color:var(--gold-brown)}
.zr-score{grid-column:4;grid-row:1;display:flex;align-items:baseline;justify-content:flex-end;gap:var(--sp-2);text-align:right;font-family:var(--font-serif);font-size:22px;font-weight:400;line-height:1.2;white-space:nowrap;min-width:34px}
.zr-grade{font-size:11px;line-height:1.1;font-weight:400;color:var(--ink2)}
.zr-score.score-high{color:var(--gold2)}
.jz-h{margin:0 0 var(--sp-3);font-size:var(--tier4);color:var(--gold2);font-weight:400}
.jz-note-h{font-size:12px;font-weight:400;color:var(--gold2);margin-bottom:var(--sp-2)}
.mh-ref .sub-note{margin:2px 0}
.zr-tag.jz-good{color:var(--green)}
.zr-tag.jz-bad{color:var(--red)}
.zr-tag.jz-strong{color:var(--gold-brown)}
/* 坐山字段：180px（电脑端与移动端统一） */
#shan,select#shan{min-width:180px;width:180px}
.zr-w{display:inline-block;margin-top:var(--sp-2);font-size:12px;color:var(--gold2)}

/* 精择吉日：可折叠模块（.zr-mod 亦被 bazi / xingming 页复用，故间距调整一律走 .page-zeri 作用域） */
.zr-mod{border:1px solid var(--line);border-radius:0;background:var(--paper);margin:var(--sp-2) 0;padding:0;overflow:hidden}
.zr-quant{background:transparent}
.zr-mod>summary{list-style:none;cursor:pointer;padding:var(--sp-2) var(--sp-3);font-weight:700;color:var(--gold2);font-size:var(--tier3);display:flex;align-items:center;gap:var(--sp-2);user-select:none}
/* 折叠标题整段包 span：只让 ▾ 箭头与标题间有 gap，标题内部字（含五行色内嵌 span）再不产生字间间隙 */
.zr-mod>summary>.zr-t{display:flex;align-items:center;gap:0;white-space:nowrap}
.zr-mod>summary::-webkit-details-marker{display:none}
.zr-mod>summary::before{content:'▾';font-size:12px;color:var(--gold);transition:transform .15s}
.zr-mod:not([open])>summary::before{transform:rotate(-90deg)}
.zr-mod>summary:hover{background:var(--gold-bg)}
.zr-mod-n{flex:0 0 auto;width:22px;height:22px;line-height:22px;text-align:center;border-radius:50%;background:var(--gold);color:#fff;font-size:12px}
.zr-mod-b{padding:var(--sp-1) var(--sp-3) var(--sp-3);border-top:1px solid var(--line)}
.jz-detail{margin-top:var(--sp-1);width:100%;border:0;border-top:1px solid var(--line);border-radius:0;background:transparent;padding:var(--sp-2) 0 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:var(--sp-1) var(--sp-3)}
.jz-detail .ly-zh-p{margin:0;line-height:1.5}
.jz-detail .ly-zh-p:last-child{margin:0}

/* 塔罗 */
.tr-spread{display:flex;gap:var(--sp-3);flex-wrap:wrap;justify-content:center}
.tr-stats{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-4);justify-content:center;margin:var(--sp-2) 0 var(--sp-1);font-size:13px;color:var(--ink)}
.tr-stats b{color:var(--gold2);font-weight:400}
.tr-card{flex:1 1 160px;max-width:200px;border:1px solid var(--line);border-radius:0;overflow:hidden;background:var(--paper2)}

/* 雷诺曼 */
.leno-row{display:flex;gap:var(--sp-2);flex-wrap:wrap;justify-content:center;margin-bottom:var(--sp-4)}
.leno-9{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-2);max-width:420px;margin:0 auto var(--sp-4)}
.leno-card{border:1px solid var(--line);border-radius:0;padding:var(--sp-3) var(--sp-2);text-align:center;background:var(--paper2);flex:1 1 110px;max-width:150px}
.leno-9 .leno-card{max-width:none}
.leno-pos{font-size:11px;color:var(--ink2)}
.leno-em{font-size:34px;line-height:1.3}
.leno-name{font-size:15px;font-weight:800;color:var(--red2)}
.leno-k{font-size:12px;color:var(--ink2);margin-top:var(--sp-1);line-height:1.5}
.leno-lead{color:var(--gold2);font-weight:400}
@media(max-width:560px){
  .leno-9{gap:var(--sp-1)}
  .leno-9 .leno-card{padding:var(--sp-2) var(--sp-1)}
  .leno-9 .leno-em{font-size:26px}
  .leno-9 .leno-name{font-size:13px}
  .leno-9 .leno-k{font-size:11px}
}


@media(max-width:1080px){
  /* 窄屏导航：顶栏右下方下拉卡片（桌面端下拉的窄屏形态），不通栏铺开、不占满屏。
     一级条目与组名两列网格，组展开时整行铺开、子项同为两列；高度按视口封顶，超出滚动。
     当前分类的朱红下划线与当前页面的朱红文字一律沿用通用段既有规则，此处只作版面与尺寸适配。 */
  .nav{display:none;position:absolute;top:62px;left:auto;right:var(--sp-4);
    width:min(calc(100% - var(--sp-4) * 2),420px);
    grid-template-columns:repeat(2,minmax(0,1fr));gap:2px var(--sp-1);
    padding:var(--sp-2);background:#25221e;border:1px solid rgba(255,255,255,.12);
    box-shadow:0 14px 32px rgba(0,0,0,.45);z-index:30;
    max-height:calc(100vh - 74px);overflow-y:auto;overscroll-behavior:contain}
  .nav.open{display:grid;animation:fadeInUp .18s ease}
  /* 一级条目与组名同形同高（触屏 36px）；caret 由 space-between 顶到格右端 */
  .nav .nav-link,.nav-top{display:flex;align-items:center;justify-content:space-between;
    min-height:36px;padding:0 var(--sp-2);font-size:14px}
  .nav-group{position:static;display:flex;flex-direction:column}
  .nav-group.open{grid-column:1/-1}
  .nav-top .caret{font-size:11px;opacity:.75;transition:transform .18s}
  .nav-group.open .caret{transform:rotate(180deg)}
  /* 子项：整行两列，靠左缩进分层 */
  .nav-menu{position:static;display:none;grid-template-columns:repeat(2,minmax(0,1fr));
    gap:1px var(--sp-1);min-width:0;margin:0 0 var(--sp-2);padding:0 0 0 var(--sp-3);
    background:transparent;border:0;box-shadow:none}
  .nav-group:hover .nav-menu{display:none}
  .nav-group.open .nav-menu{display:grid}
  .nav-menu a{padding:6px var(--sp-2)}
  /* AI 入口与导航同列一条：满宽、左对齐，不另占顶栏一位 */
  .ai-gear{grid-column:1/-1;justify-content:flex-start;height:auto;min-height:36px;
    margin-top:var(--sp-1);padding:0 var(--sp-2);border:0;font-size:14px}
  .menu-btn{display:inline-flex;margin-left:auto}
  .big-date .d{font-size:48px}
  .zp-v .zw-board{font-size:13px;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(4,1fr);width:100%;max-width:580px}
  .zp-v .zw-pal{font-size:12px}
  .zp-v .zw-pal .zw-major{font-size:15px}
  .zp-v .zw-pal .zw-minor{font-size:12.5px}
  .zp-v .zw-pal .zw-adj{font-size:11.5px}
  .zp-v .zw-pal .zw-gz{font-size:12px}
  .zp-v .zw-center{font-size:12px}
  .zp-v .zw-center .zw-ct{font-size:12px}
  /* 标签高度由行盒决定：.dyn-block 是纵向 flex，flex-basis 在此即标签高度，不可当作定宽使用 */
  .dyn-label{font-size:12px}
}

/* 手机端：完整十二宫表格一体（不拆卡片），宽度自适应屏宽；字级保持可读 */
@media(max-width:560px){
  .zp-v .zw-board{display:grid;grid-template-columns:repeat(4,1fr);
    grid-template-rows:repeat(4,1fr);gap:1px;width:100%;max-width:100%;min-width:0;margin:0 auto;overflow:hidden;aspect-ratio:1/1}
  .zp-v .zw-pal{min-height:0;padding:2px var(--sp-1);font-size:10px}
  .zp-v .zw-pal .zw-head{padding-bottom:1px;margin-bottom:1px;gap:2px}
  .zp-v .zw-pal .zw-pname{font-size:10px}
  .zp-v .zw-pal .zw-gz{font-size:8.5px}
  .zp-v .zw-pal .zw-major{font-size:11px;line-height:1.25}
  .zp-v .zw-pal .zw-major i{font-size:8px}
  .zp-v .zw-pal .zw-major em,.zp-v .zw-pal .zw-minor em{font-size:8px;padding:0 2px}
  .zp-v .zw-pal .zw-minor{font-size:9.5px}
  .zp-v .zw-pal .zw-adj{font-size:9px}
  .zp-v .zw-center{padding:var(--sp-1) var(--sp-1);font-size:10px;gap:2px}
  .zp-v .zw-center .zw-ct-head{font-size:10px;gap:var(--sp-1)}
  .zp-v .zw-center .zw-ct{font-size:8.5px;line-height:1.35}
  .zp-v .zw-center .zw-ct td{padding:0 1px}
  .zp-v .zw-center .zw-ct td.k{width:auto}
}


/* ===== 到顶、到底：右侧边缘吸附的翻页指示 =====
   整块无框、无底、无投影，只留本页主色字符；贴右缘垂直居中，未滚动或页面不足一屏时整体不出现，
   到达顶端或底端时对应那枚淡出。底色取页面纸色，窄屏压到正文上时也不透字。
   控件挂在 body 下取不到页内变量，故 app.js 按页把 --gold、--gold2、--paper 抄到自身：
   每页箭头都是该页主体色，页面只须在自己的令牌块里把全站强调令牌族落到本页色族。 */
.scroll-jump{position:fixed;right:0;top:50%;transform:translateY(-50%);z-index:60;
  display:flex;flex-direction:column;align-items:center;gap:var(--sp-1);background:var(--paper);
  opacity:0;visibility:hidden;transition:opacity .18s,visibility .18s}
.scroll-jump.show{opacity:1;visibility:visible}
.sj-btn{font:inherit;font-size:16px;line-height:1;cursor:pointer;
  border:0;border-radius:0;background:transparent;color:var(--gold2);
  padding:var(--sp-2) var(--sp-1);outline:none;transition:color .15s}
.sj-btn:hover{color:var(--gold)}
.sj-btn:focus{outline:none}
.sj-btn:disabled{opacity:.35;cursor:default}
@media(max-width:640px){
  .sj-btn{font-size:13px;padding:var(--sp-1) 2px}
}
.mod-head{display:flex;align-items:center;justify-content:flex-start;gap:var(--sp-2);cursor:pointer;user-select:none;
  background:transparent;border-top:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0;
  box-shadow:none;padding:var(--sp-2) 0;margin:var(--sp-4) 0 var(--sp-3);transition:.15s}
.mod-head:hover{background:var(--gold-bg);box-shadow:none}
/* 模块head八卦图标：咖金色卦象 + 极浅米圆底，作模块视觉锚点（本命按性别乾/坤，其余固定卦象） */
.gua-ico{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;
  width:22px;height:22px;border-radius:0;background:#f6efda;color:var(--gold2);
  font-size:15px;line-height:1}
.mod-caret{display:inline-block;color:var(--gold);font-size:13px;line-height:1;transition:transform .2s ease}
.mod.collapsed .mod-caret{transform:rotate(-90deg)}
.mod-title{font-size:var(--tier1);font-weight:400;color:var(--ink);letter-spacing:.6px}
.mod-sub{font-size:12px;color:var(--ink2);margin-left:2px}
/* 模块序号：题头内的圆形序号（一、二、三…），与 .mod-caret 同级排在题头首部 */
.mod-n{flex:0 0 auto;width:22px;height:22px;line-height:22px;text-align:center;border-radius:50%;background:var(--gold);color:#fff;font-size:12px}
.mod-body{overflow:visible;text-align:left}
.mod.collapsed .mod-body{display:none}
.mod,.mod-body,.mod-head{text-align:left}.mod{background:var(--card);border:1px solid var(--line);border-radius:0;padding:var(--sp-4) var(--sp-3);text-align:center;cursor:pointer;transition:.2s;box-shadow:var(--shadow);margin-bottom:var(--sp-4)}
.mod:last-child{margin-bottom:0}
/* bazi 四大模块 section.mod：去外层卡片框（border/背景/阴影/大 padding），把版面让给内容，一层层框占空间且移动端挤压。
   仅命中 <section class="mod">（bazi/hehun 可折叠模块容器），不影响首页 .grid 的 <a class="mod"> 工具卡；
   mod-head 白卡标题保留为模块唯一视觉锚点（其间距随 .mod-head 既有规则，桌面/移动各自compact）。
   @media screen 使其不干扰 @media print 的 .mod 分隔框。 */
@media screen{
  section.mod{background:transparent;border:none;border-radius:0;padding:0;box-shadow:none}
}

/* 佛历详情卡片：桌面 5 列一排（圣诞/斋期/二十八宿/杨公忌/节气 占满一排）；手机端 2 列配对 */
.fo-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--sp-2)}
/* 道历详情卡片：桌面 4 列一排（圣诞/吉忌/斋醮/节气 占满一排）；手机端 2 列 */
.dao-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-2);margin-top:var(--sp-3)}
/* 万年历详情卡片：桌面 5 列（公历/农历/干支/生肖星座/五行 占满一排）；手机端 2 列 + 五行满宽 + 宜忌竖排 */
.wnl-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--sp-2)}
/* 万年历页卡片统一语言（仅 .cal-page 作用域，避免影响全站 .info-box/.today-card）：
   today-card / 信息卡统一 纯白底 + 细边 + 14px 圆角 + 轻阴影，与日历格同框；
   信息卡以顶部 2px 色条作语义标签（金=纳音节气节日、绿=宜、红=忌），高级且克制 */
.page.cal-page .today-card,
.cal-page .today-card{
  background:var(--card);border:1px solid var(--line);border-radius:0;
  box-shadow:var(--shadow);padding:var(--sp-4) var(--sp-4);
}
.cal-page .page > .form-row{margin-bottom:var(--sp-2)}
.page.cal-page .info-box,
.cal-page .info-box{
  background:var(--card);border:1px solid var(--line);border-top:2px solid var(--gold);
  border-radius:0;box-shadow:var(--shadow);padding:var(--sp-3) var(--sp-4);
}
/* 历法页卡片顶部 2px 色条语义标签：普通信息卡=咖金（基础规则已设）、宜/吉=绿、忌/凶=红 */
.cal-page .info-box.yi{border-top:2px solid var(--green)}
.cal-page .info-box.ji{border-top:2px solid var(--red)}
/* 三框一排（佛历第二排）：占满整行；手机端竖叠 */
.cal-row4{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-2);margin-top:var(--sp-3)}
/* 两框并排（佛历文书/宿曜、道历文书/胎神、当月一览 等）；手机端竖叠 */
.row-2{display:flex;gap:var(--sp-3);margin-top:var(--sp-3)}
.row-2 > .info-box{flex:1 1 0;min-width:0}
/* 详情卡片默认左对齐 */
.info-box h4,.info-box p{text-align:left}
@media(max-width:640px){
  .info-box .gua-sub{font-size:11px}.fo-grid{grid-template-columns:repeat(2,1fr)}
  .dao-grid{grid-template-columns:repeat(2,1fr)}
  .wnl-grid{grid-template-columns:repeat(2,1fr)}
  .wnl-grid .info-box.wuxing{grid-column:1/-1}
  .wnl-yiji{flex-direction:column}
  .cal-row4{grid-template-columns:repeat(2,1fr)}
  .cal-row4 > .info-box:nth-child(5),.cal-row4 > .info-box:nth-child(6){grid-column:1/-1}
  .row-2{flex-direction:column;gap:var(--sp-2)}
}
/* ===== 八字：四柱干支输入 + 断事 ===== */
.gz-mini{display:inline-flex;gap:var(--sp-1)}
.gz-g,.gz-z{padding:var(--sp-1) 2px}
#fPillar .field{display:flex;align-items:center;gap:var(--sp-1);flex-wrap:wrap}
.ds-gz{color:var(--gold2);font-weight:400;margin-right:var(--sp-1)}
.ds-box .ly-zh-p{margin:0 0 var(--sp-1);line-height:1.8}
.ds-box .ly-zh-p:last-child{margin-bottom:0}
.dyn-static{display:flex;flex-wrap:wrap;gap:var(--sp-2)}
.dyn-static-item{display:inline-flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-2);border:1px solid var(--line);border-radius:0;background:var(--card)}
.dyn-static-item .g{font-weight:600}
.dyn-static-item .ss{font-size:11px;color:var(--ink2)}
.tend{color:var(--gold2)}
.lab-gold{color:var(--gold2);font-weight:400}
.suffix{font-size:12px;color:var(--ink2);font-weight:400}
/* 四柱模式：候选出生时间确认面板 */
.confirm-box{border:1px solid var(--gold);background:var(--paper2);border-radius:0;padding:var(--sp-3) var(--sp-3);margin:0 0 var(--sp-3);}
.confirm-h{font-weight:600;color:var(--gold2);font-size:16px;margin:0 0 var(--sp-1);}
.confirm-tb{width:100%;border-collapse:collapse;margin-top:var(--sp-2);font-size:14px;}
.confirm-tb th,.confirm-tb td{border:1px solid var(--line);padding:6px 8px;text-align:left;vertical-align:middle;}
/* 八字排盘所有表格：第一列统一居中 */
.confirm-tb th:first-child,.confirm-tb td:first-child{text-align:center}
.nayin-rel td:first-child{text-align:center}
.yun-tbl.sk-base td.sk-c-name,.yun-tbl.sk-sub td.sk-c-name{text-align:center}
.yun-tbl.detail td:first-child{text-align:center}
.yun-tbl.rel td:first-child{text-align:center}
.confirm-tb th{background:var(--card);color:var(--ink2);}
.confirm-tb td .btn{padding:0 12px;font-size:13px}

/* ===== 运势事件分析表（大运事件 / 流年事件） ===== */
.yun-ev-title{font-size:13px;color:var(--gold2);margin:var(--sp-3) 0 var(--sp-1)}
table.yun-tbl.yun-ev{table-layout:fixed;width:100%;min-width:0}
table.yun-tbl.yun-ev th,table.yun-tbl.yun-ev td{white-space:normal;word-break:break-word;overflow-wrap:anywhere;vertical-align:top;line-height:1.6;text-align:left}
table.yun-tbl.yun-ev thead th{white-space:nowrap;text-align:center}
table.yun-tbl.yun-ev th:nth-child(1),table.yun-tbl.yun-ev td:nth-child(1){width:18%}
table.yun-tbl.yun-ev th:nth-child(2),table.yun-tbl.yun-ev td:nth-child(2){width:56px;text-align:center;white-space:nowrap}
table.yun-tbl.yun-ev th:nth-child(3),table.yun-tbl.yun-ev td:nth-child(3){width:44px;text-align:center}
table.yun-tbl.yun-ev th:nth-child(4),table.yun-tbl.yun-ev td:nth-child(4){width:auto}
table.yun-tbl.yun-ev .ev-period{font-weight:400;color:var(--gold2);white-space:normal;text-align:center;line-height:1.2}
table.yun-tbl.yun-ev .ev-y{display:block;line-height:1.2}
table.yun-tbl.yun-ev .ev-age{display:block;margin-top:0;line-height:1.2;white-space:normal}
table.yun-tbl.yun-ev .ev-result{text-align:center;font-weight:400}
table.yun-tbl.yun-ev tr.cur td.ev-period{background:rgba(168,120,31,.14)}
table.yun-tbl.yun-ev .ev-coping{font-size:12px;line-height:1.55;color:var(--ink2)}
@media(max-width:640px){
  table.yun-tbl.yun-ev th:nth-child(2),table.yun-tbl.yun-ev td:nth-child(2){width:56px}
  table.yun-tbl.yun-ev th:nth-child(3),table.yun-tbl.yun-ev td:nth-child(3){width:40px}
  /* 时间段列在手机端拆成两行：年份一行、岁数一行 */
  table.yun-tbl.yun-ev .ev-period .ev-age{display:block;margin-top:0;white-space:normal}
}
.confirm-banner{background:var(--paper2);border:1px solid var(--line);border-radius:0;padding:var(--sp-2) var(--sp-3);margin:0 0 var(--sp-3);font-size:14px;}

/* ===== 八字扩展模块：透明评分 / 终身卦 / 称骨 / 十神定位 / 百科 ===== */
.score-box{background:transparent}
.score-box .sub-note{margin:var(--sp-1) 0 var(--sp-2);}
.score-tbl{width:100%;border-collapse:collapse;font-size:14px;margin:var(--sp-1) 0 var(--sp-2);}
.score-tbl th,.score-tbl td{border:1px solid var(--line);padding:6px 8px;text-align:center;vertical-align:middle;}
.score-tbl th{background:var(--card);color:var(--ink2);font-weight:600;}
.score-tbl td.yun-gz{font-weight:400;color:var(--ink);white-space:nowrap;}
.sc-num{font-weight:700;font-size:15px;}
.sc-tag{font-weight:700;white-space:nowrap;}
.sc-up{color:#1a7f37;}
.sc-down{color:var(--red);}
.sc-flat{color:var(--ink2);}
.hex-card{border:0;border-radius:0;background:transparent;padding:0;margin:var(--sp-1) 0 var(--sp-3)}
.hex-h{font-size:13px;font-weight:400;color:var(--gold2);margin:2px 0 var(--sp-1);}
.hex-row{display:flex;flex-direction:column;gap:var(--sp-1);}
.hex-name{font-size:14px;}
.hex-name b{font-weight:400}
.hex-name .hx{font-size:18px;letter-spacing:2px;color:var(--gold2);}
.hex-meta{font-size:13px;color:var(--ink2);}
.hex-mean{font-size:13px;color:var(--ink);line-height:1.5;}
.hex-tbl .hx{font-size:16px;letter-spacing:1px;color:var(--gold2);}
.hex-tbl .hex-mean{text-align:left;line-height:1.4;}
.cg-tbl{width:auto;min-width:240px;}
.cg-total{margin:var(--sp-2) 0 var(--sp-1);font-size:15px;}
.cg-total b{color:var(--gold2);font-size:17px;}
.cg-verdict{font-size:13px;color:var(--ink);line-height:1.6;background:var(--paper2);border:1px solid var(--line);border-radius:0;padding:var(--sp-2) var(--sp-2);}
.cg-verdict b{color:var(--gold2);}
.ss-box .sub-note{margin:var(--sp-1) 0 var(--sp-2);}
.ss-pos{border:1px solid var(--line);border-radius:0;padding:var(--sp-2) var(--sp-2);margin:var(--sp-1) 0;background:var(--paper2);}
.ss-head{font-size:14px;margin-bottom:var(--sp-1);}
.ss-head b{color:var(--gold2);}
.ss-body{font-size:13px;color:var(--ink);line-height:1.5;}
.bk-box .sub-note{margin:var(--sp-1) 0 var(--sp-2);}

/* ===== 八字：手机端表单紧凑布局 ===== */
@media(max-width:640px){
  .bazi-top,
  .bazi-pillar{margin-bottom:var(--sp-3)}
  .bazi-top .field{gap:var(--sp-1);min-width:0}
}

/* ===== 导出工具条（图片 / 打印 / PDF） ===== */
.export-bar{display:flex;gap:var(--sp-2);flex-wrap:wrap;margin:0 0 var(--sp-3);padding:var(--sp-2) var(--sp-3);background:var(--paper2);border:1px solid var(--line);border-radius:0}
.export-bar .btn{margin:0}

/* 岁运引动 / 流年事件 长表：桌面与手机统一直接展开（不再折叠），由 .yun-scroll 提供横向滚动 */

/* ===== 打印 / 存PDF 样式 ===== */
.exp-title{display:none}
/* 打印页边距：统一留白，避免浏览器默认边距过窄/不对称的差异 */
@page{margin:14mm 12mm}
@media print{
  /* 配色转灰：在打印作用域内重定义主题令牌为中性灰，整页去暖色（分页安全，不会破坏多页分页）；
     五行/干支的 .wx-* 文字色为硬编码常量、不受变量影响，保留为极轻量的色标（几乎不耗墨），
     以维持金木水火土的可辨读；完全去色可在本作用域内定义 .wx-mu/.wx-huo/.wx-tu/.wx-jin/.wx-shui。 */
  :root{
    --gold:#6b6b6b; --gold2:#333; --red:#5a5a5a; --paper:#f3f3f3; --paper2:#eaeaea;
    --line:#cfcfcf; --card:#fff; --ink:#1c1c1c; --ink2:#444;
  }
  /* 页级令牌块把 --line/--ink 重指到本页族，源序在打印段之后会压过上面的中性灰；
     此处用 .wrap .page 提高一级特异性，保证打印时正文与线色仍为中性灰 */
  .wrap .page{--line:#cfcfcf;--ink:#1c1c1c}
  html{ -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  /* 隐藏与排盘结论无关的页面元素 */
  #topbar,#footer,.form-row,.opts,.notice,#exportBar,.scroll-jump,.dyn,.modal-mask,
  #dateNote,#kongAxisNote,#pillarNote,#formErr,.lead,.export-bar,
  #pageTitle,#aiMount{display:none !important}
  .data-export-hide{display:none !important}
  .exp-title{display:block !important;font-size:20px;font-weight:700;text-align:center;margin:0 0 var(--sp-3);color:var(--ink)}
  body{background:var(--card) !important}
  .wrap,.page{max-width:none;margin:0;padding:0}
  /* 打印时展开全部模块与 details，确保整页完整输出 */
  .mod.collapsed .mod-body{display:block !important}
  /* 整模块不设 break-inside:avoid：本命分析等较长模块可顺页流动，避免被整体推到下一页、造成顶部（天干/地支关系）独占一页的空白浪费；
     仅内层小框（info-box 等）保留断页保护，避免单框被拦腰截断 */
  .mod{margin:0 0 var(--sp-3);border:1px solid var(--line);border-radius:0;overflow:visible}
  .mod-head{break-after:avoid;cursor:default}
  details:not([open]) > *:not(summary){display:block !important}
  details > summary{display:none !important}
  .info-box,.life-card,.rem-block,.nayin-box,.zr-mod-b{break-inside:avoid}
  .yun-scroll{overflow:visible !important}
  .info-grid.base-info{break-inside:avoid}
  a[href]:after{content:""}
  /* 打印精简：去掉内层装饰框（各流派解读 / 纳音 / 核心解读 / 量化 / 宜忌 等）的四角包围线框，
     避免框线过密、影响打印美观；仅保留三大模块（.mod）的轻量分隔。
     数据表格的网格线保留，以保证可读性。 */
  .info-box,.nayin-box,.life-card,.zr-mod,.rem-block{
    border:none !important;background:transparent !important;border-radius:0 !important;
    box-shadow:none !important;
  }
  .zr-mod-b{border-top:none !important;padding-top:var(--sp-2) !important;background:transparent !important}
  /* 关系标签（天干/地支关系 chips）在打印中去除圆角边框，仅作浅色文字，降低密集感 */
  .rel{border:1px solid #e7e0cf !important;background:transparent !important;border-radius:0 !important;padding:2px var(--sp-2) !important}
  /* 分页保护：标题不孤尾（避免标题落在页尾而正文跳下一页）、表格行与列表项不被拦腰截断 */
  .rel-title,.mod-head,h2,h3,h4,caption,.dy-name,.fei-cap,.mh-cat-title,.cal-title{break-after:avoid}
  tr,li,.rel{break-inside:avoid}
}

/* ===== 手机端正文/标题层级统一 =====
 * 手机端沿用全站字号四档：模块标题 tier1 17 > 折叠题名 tier2 16 > 小节标题 tier3 14 > 标注 tier4 13；
 * 正文在窄屏降到 13px/行高1.6 以对齐表格，卡片 padding 12px 10px。 */
@media(max-width:640px){
  .det-h{font-size:var(--tier4);margin:var(--sp-3) 0 var(--sp-1)}
  .info-box p,.ly-zh-p,.det-row,.an-v,.an-p,.ds-box .ly-zh-p{font-size:13px;line-height:1.6}
  .info-box{padding:var(--sp-3) var(--sp-2)}
  .mod-head{padding:var(--sp-2) 0;margin:var(--sp-4) 0 var(--sp-2);flex-wrap:wrap}
  /* 移动端：模块标题不被副标题挤压截断（"二、本命分析"等完整一行不孤字）；
     副标题（五行旺衰 格局喜用… / 事业财运 婚姻感情…）换行到标题下一行独占，不挤标题 */
  .mod-title{flex-shrink:0;white-space:nowrap;letter-spacing:.3px}
  .mod-sub{flex:1 0 100%;margin-left:0;margin-top:2px;font-size:11px;line-height:1.45}
}
/* ===== 择日卡片：移动端紧凑化（年份月日 + 农历干支同行，缩小分数、tags）=====
   间距同样归入 4px 栅格档位 --sp-1..5；移动端取更小档（4/8），1~2px 的行内基线微调保留 */
@media(max-width:640px){
  .zr-list{gap:var(--sp-1)}
  .zr-card{grid-template-columns:14px 1fr 38px;padding:var(--sp-2) var(--sp-2);gap:var(--sp-1) var(--sp-2)}
  .zr-rank{grid-column:1;grid-row:1;font-size:14px}
  .zr-date{grid-column:2;grid-row:1;display:flex;flex-wrap:wrap;gap:1px var(--sp-2);align-items:baseline}
  .zr-sol{font-size:13.5px;line-height:1.25}
  .zr-sol span{font-size:11px;margin-left:2px}
  .zr-lun{font-size:11px;line-height:1.25;flex:0 0 auto}
  .zr-tags{grid-column:1/-1;grid-row:2;justify-content:flex-start;padding-right:0;gap:var(--sp-1);margin-top:0}
  .zr-tag{font-size:10.5px;line-height:1.4}
  .zr-score{grid-column:3;grid-row:1;display:flex;align-items:center;justify-content:flex-end;gap:var(--sp-1);font-size:20px;line-height:1.1}
  .zr-score .zr-grade{font-size:10.5px;margin-top:1px}
  .jz-verdict{grid-column:1/-1;grid-row:4;font-size:11.5px;margin-top:var(--sp-1);line-height:1.4}
  .jz-detail{grid-column:1/-1;grid-row:3;margin-top:var(--sp-1);padding:var(--sp-1) var(--sp-2)}
  .jz-detail .ly-zh-p{font-size:11.5px;margin:0 0 var(--sp-1)}
  .jz-h{font-size:var(--tier4);margin:0 0 var(--sp-2)}
  /* 坐山 180px 在移动端与电脑端一致（窄屏自动换行） */
  #shan{min-width:180px;width:180px}
  .form-row .field:has(#shan){flex:0 0 180px;min-width:180px;width:180px}
}
/* ===== 命局断事表（stab-ds，仅八字页命局断事卡使用，类名唯一不影响其他页面）=====
 * 项目列宽由 bazi-core.js setupMingJuCol 按真实汉字渲染宽测量后 inline !important 覆盖，
 * 此处为兜底默认（JS 未执行时的基础宽度）：电脑端 4em、响应式 ≤760px 2em。
 * table-layout:fixed 保证列宽严格生效（.stab 默认 auto 时单元格 width 会被内容撑开）。 */
table.stab.stab-ds{table-layout:fixed !important}
table.stab.stab-ds th:first-child,table.stab.stab-ds td.lbl{width:4em !important;max-width:4em !important;white-space:normal}
@media (max-width:760px){
  table.stab.stab-ds th:first-child,table.stab.stab-ds td.lbl{width:2em !important;max-width:2em !important;white-space:normal}
}

/* ===== 移动端：表格列宽与对齐精调 =====
   ① 各流派解读"流派"列长名固定换行（.sk-b 移动端 block）给解读列留位，桌面 inline 单行；
   ② 宜忌表项目列 ≤3 汉字宽，加宽内容列；
   ③ 岁运引动大运表：大运/用忌 ≤5em、吉凶 ≤3em，关键引动占余宽，去 540px min-width 消横向滚动条。 */

@media(max-width:640px){
  .sk-b{display:block;white-space:nowrap}
  /* 各流派解读流派列：宽 5em(容纳最长固定换行段完整一行)，去掉 break-word/anywhere 防段内乱折；
     sk-b 固定换行每段完整(nowrap)，不再额外断行，解读列留足空间 */
  table.yun-tbl.sk-sub th.sk-c-name,table.yun-tbl.sk-sub td.sk-c-name{width:5em;max-width:5em;min-width:5em;word-break:normal;overflow-wrap:normal;white-space:normal}
  .remedy-tbl td.lbl{width:3em;min-width:3em;max-width:3em;padding:6px 2px}
  table.yun-tbl.yd{min-width:0}
  table.yun-tbl.yd th:nth-child(1),table.yun-tbl.yd td:nth-child(1){width:5em}
  table.yun-tbl.yd th:nth-child(2),table.yun-tbl.yd td:nth-child(2){width:5em}
  table.yun-tbl.yd th:nth-child(3),table.yun-tbl.yd td:nth-child(3){width:auto}
  table.yun-tbl.yd th:nth-child(4),table.yun-tbl.yd td:nth-child(4){width:3em}
}

/* ============ 圆盘通用件（万年历 节气/经络、老黄历 时辰/二十八宿、佛历 二十七宿/月相 六盘共用） ============
   骨架、尺寸、字号一律在此定；颜色全部走 --wheel-* 令牌，各页只在主题段覆写令牌，不重写规则
   （对齐站内主题令牌覆写式，新增页加盘时只需给自己的 .page-X 补一组令牌）。
   环带自外向内：外侧标签 → 弧带 → 外圈 → 刻度 → 内圈标签 → 内界圈 → 盘心；指针只走盘心与内界圈之间。
   圆盘只用于「天然成环」的数据（时辰、星宿、方位、月相）：盘的价值＝循环序列＋当前定位＋分布一眼可见；
   方阵（如洛书九宫）与单值（如建除值日）不成环，不入此件。
   字号三档由修饰类给（.w-lab 12.5 / .w-lab-lg 13 / .w-lab-xl 14），不改基类，免动已落地的万年历两盘。 */
.wheel{display:block;width:100%;max-width:400px;height:auto;margin:0 auto;font-family:var(--wheel-serif,var(--font-serif));
  /* 🔴 盘内只有 .w-hit 可交互，其余（弧、刻度、圈线、指针、盘心字、内外圈字）一律不接事件。
     否则文字会吞掉落在字上的点击：文字元素无 onclick，点在自己看得见的那个字上反而毫无反应
     （Chrome 按文字包围盒命中，内圈 13px 字的盒子正好压在命中环带上；外圈字与 r=182/120 圈线同病）。 */
  pointer-events:none}
.wheel .w-ring{fill:none;stroke:var(--wheel-line,#c9c9c9);stroke-width:1}
.wheel .w-core{fill:var(--wheel-core,#fff);stroke:var(--wheel-line,#c9c9c9);stroke-width:1}
/* 带水位的盘心：圆内不铺底只留线框，填色全交给 .w-fill 那条自底往上涨的淡底水位，水位以上透明 */
.wheel .w-core-hollow{fill:none;stroke:var(--wheel-line,#c9c9c9);stroke-width:1}
.wheel .w-fill{fill:var(--wheel-core,#fff);stroke:none}
.wheel .w-tick{stroke:var(--wheel-line,#c9c9c9);stroke-width:1}
.wheel .w-tick-j{stroke:var(--wheel-arc,#666);stroke-width:1.6}
.wheel .w-arc{fill:none;stroke:var(--wheel-arc,#666);stroke-width:3;stroke-opacity:.22;stroke-linecap:butt}
/* 实色弧：只给常显档位用（佛历斋日盘的所查之日，与随点选走的 .w-arc-cur 可并存于同一圈）。
   仍是同一支主体色，只把密度从 .22 提到 1，与当前查看态的 .w-arc-cur（4px）以粗细分档，
   一色三重（淡 3px、实 3px、当前 4px），不引第二支色。 */
.wheel .w-arc-solid{stroke-opacity:1}
.wheel .w-arc-b{stroke-width:4}
.wheel .w-arc-cur{stroke:var(--wheel-cur,#333);stroke-width:4;stroke-opacity:1}
.wheel .w-needle{stroke:var(--wheel-cur,#333);stroke-width:1.5;stroke-linecap:butt}
.wheel .w-dot{fill:var(--wheel-cur,#333)}
.wheel .w-c1{font-size:22px;font-weight:400;letter-spacing:.1em;fill:var(--wheel-deep,#333);text-anchor:middle;dominant-baseline:central}
.wheel .w-c2{font-size:12.5px;letter-spacing:.08em;fill:var(--wheel-ink2,#666);text-anchor:middle;dominant-baseline:central}
.wheel .w-c3{font-size:11.5px;letter-spacing:.08em;fill:var(--wheel-ink2,#666);opacity:.8;text-anchor:middle;dominant-baseline:central}
.wheel .w-lab{font-size:12.5px;fill:var(--wheel-ink,#444);text-anchor:middle;dominant-baseline:central}
.wheel .w-lab-lg{font-size:13px}
.wheel .w-lab-xl{font-size:14px}
/* 🔴 全盘的字重只有两处加粗：盘内的「节」（.w-lab-j）与选中态（.w-lab-cur）。其余一切字、
   连同盘下的详情条，一律不加粗，加粗多了就压不住版面，破全站克制的纸本调。 */
.wheel .w-lab-j{font-weight:700;fill:var(--wheel-deep,#333)}
/* 当令/选中字：.w-lab-j 在前、.w-lab-cur 在后，两者同特异度时由源序决定，确保选中态压过「节」的加重；
   经络名等自带内联 fill 的角色不受此处 fill 影响（内联声明恒胜样式表），只取到字重。 */
.wheel .w-lab-cur{font-weight:700;fill:var(--wheel-cur,#333)}
.wheel .w-tag{font-size:12px;text-anchor:middle;dominant-baseline:central}
/* 可点扇区：透明热区，覆盖整个环带（含弧带），命中即改盘心与盘下详情。
   不用 <title> 提示：手机端无 hover，且提示样式不受控。
   选中态本身不铺色块：照万年历经络圆盘的做法，靠加粗弧与加粗字示选中，铺色块会盖住刻度与弧带，
   也显脏。.w-sel 只留给鼠标悬停，作「此处可点」的提示。
   🔴 .w-sel 的外沿须与 .w-hit 相同（各页的「内界圈 到 弧带外沿」），悬停着色才是诚实的命中预览。
   ⚠ 不可把底色直接填在热区上：热区跨到弧带，填色会盖住弧色。故拆成两条：热区只负责命中，
   .w-sel 只负责着色，且 .w-sel 须紧跟在 .w-hit 之后，靠相邻兄弟选择器随悬停显隐。 */
.wheel .w-hit{fill:transparent;cursor:pointer;pointer-events:all}
.wheel .w-hit:focus{outline:none}
.wheel .w-sel{fill:none;pointer-events:none}
/* 🔴 悬停高亮＝主体色本身，取与弧带同一个令牌（--wheel-arc）、同一密度（.w-arc 的 .22），
   故各页高亮恒等于本页主体色，不必也不许各页另写一个 rgba。
   不写死颜色的好处：换页主题色时高亮自动跟随，不会再漂。 */
.wheel .w-hit:hover+.w-sel{fill:var(--wheel-arc,#666);fill-opacity:.22}
/* 盘区容器：电脑端两列并排，移动端单列堆叠；标题下接 88px 短线收束（页头 h1 骨架） */
.wheel-wheels{margin-top:var(--sp-4);padding-top:var(--sp-4);display:grid;grid-template-columns:1fr 1fr;
  gap:var(--sp-5);border:0;background:transparent}
/* 单盘占整行（通用件是两列网格）：只此一处定单列，页面段不再覆写 */
.wheel-wheels.single{grid-template-columns:1fr}
.wheel-block{text-align:center}
.wheel-block h4{font-family:var(--wheel-serif,var(--font-serif));font-weight:400;font-size:13px;letter-spacing:.2em;
  text-indent:.2em;color:var(--wheel-h4,#444);margin:0 0 var(--sp-3);line-height:1.5}
.wheel-block h4::after{content:'';display:block;width:88px;height:1px;background:var(--wheel-line,#c9c9c9);margin:var(--sp-2) auto 0}
/* 盘下详情条：点扇区后显示该格细目。不用浮层，全站纸本语言零投影零圆角，浮层会破语言；
   盘下置一条随点击更新的细目，信息量再大也只是把这条撑高。
   🔴 详情条内一律不加粗（故不设 .wheel-detail b）：盘内的加粗只留给「节」与选中态两处，
   说明文字用粗体压不住版面、反破全站克制的纸本调。
   吉凶、五行等强调一律走色（.wd-g / .wd-x 与页内内联色），不走字重。 */
.wheel-detail{margin-top:var(--sp-3);padding-top:var(--sp-2);border-top:1px solid var(--wheel-line,#c9c9c9);
  font-size:12.5px;line-height:1.8;letter-spacing:.04em;color:var(--wheel-ink,#444);text-align:center}
.wheel-detail .wd-g{color:var(--wheel-good,#3f7a1f)}
.wheel-detail .wd-x{color:var(--wheel-bad,#b23b2e)}
.wheel-detail .wd-br{display:block;height:0;width:0}
@media(max-width:640px){
  .wheel-wheels{grid-template-columns:1fr;gap:var(--sp-4)}
  .wheel{max-width:320px}
}

/* ===== 首页 目录（仅 index.html 的 .hm-page 作用域） =====
   一种红、两级灰、一条线：红只做点缀（卷次二字与悬停），不做装饰；
   条目是目录里的行，不是卡片。
   全站强调令牌族在本页落到朱砂族：右侧直达箭头等共享件随本页取色，不漏出全站鎏金。 */
.hm-page{max-width:820px;margin:0 auto;padding:0 var(--sp-5) 0;text-rendering:optimizeLegibility;
  --gold:#a5321f;--gold2:#8a2a1a;--gold-brown:#8a2a1a;--foot-ink:#6f6a63}

/* 一级标题：站名与定位供检索与读屏，视觉题字由顶栏承担，故不占版面 */
.hm-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* 卷首 */
.hm-head{text-align:center;padding:var(--sp-5) 0 var(--sp-4)}
.hm-motto{display:inline-block;font-family:var(--font-serif);font-size:12.5px;letter-spacing:.5em;text-indent:.5em;
  color:#8a8478;padding:4px 0;border-top:1px solid #d8d1c2;border-bottom:1px solid #d8d1c2}
.hm-today{margin-top:var(--sp-4)}
.hm-solar{font-size:12px;letter-spacing:.3em;text-indent:.3em;color:#8a8478}
.hm-lunar-big{font-family:var(--font-serif);font-size:42px;font-weight:400;color:#1c1a17;
  letter-spacing:.18em;text-indent:.18em;line-height:1.35;margin-top:6px}
.hm-gz{font-family:var(--font-serif);font-size:15px;letter-spacing:.14em;text-indent:.14em;
  color:#57503f;margin-top:10px;display:flex;justify-content:center;gap:18px}
.hm-gz i{font-style:normal;font-size:11px;color:#b3ac9e;letter-spacing:.2em;margin-right:2px}
.hm-extra{font-size:12px;color:#8a8478;margin-top:10px;letter-spacing:.05em;min-height:18px}
.hm-head::after{content:'';display:block;width:1px;height:36px;background:#d8d1c2;margin:var(--sp-5) auto 0}

/* 分类卷次 */
.hm-cat{margin-bottom:var(--sp-5)}
.hm-cat:last-child{margin-bottom:0}
.hm-cat-h{display:flex;align-items:center;gap:14px;margin-bottom:2px;font-weight:400;font-size:inherit}
/* 卷次作竖标：二字竖排、右侧一道细线分隔，高度与正文行高同值故不撑高标题行 */
.hm-cat-h .num{writing-mode:vertical-rl;text-orientation:upright;flex:none;height:32px;
  font-family:var(--font-serif);font-size:12px;color:#a5321f;letter-spacing:.22em;
  line-height:1;text-align:center;border-right:1px solid #e6dfd0;padding-right:8px}
.hm-cat-h .nm{font-family:var(--font-serif);font-size:19px;font-weight:400;letter-spacing:.35em;color:#1c1a17}
.hm-cat-h .en{font-size:9.5px;letter-spacing:.24em;color:#9a9487;text-transform:uppercase}
.hm-cat-h .cnt{margin-left:auto;font-size:11px;color:#6f6a63;letter-spacing:.15em}

/* 条目：目录行，非卡片 */
.hm-list{columns:2;column-gap:56px;list-style:none}
.hm-list li{break-inside:avoid}
.hm-tool{display:flex;align-items:baseline;gap:10px;
  padding:11px 0;border-bottom:1px solid #efe9db;text-decoration:none;transition:border-color .15s}
.hm-idx{font-family:var(--font-serif);font-size:11px;color:#6f6a63;width:20px;flex:none;
  font-variant-numeric:tabular-nums}
.hm-nm{font-family:var(--font-serif);font-size:15.5px;font-weight:400;color:#1c1a16;
  letter-spacing:.08em;flex:none;transition:color .15s}
.hm-line{flex:1;border-bottom:none;height:1px;align-self:center;min-width:12px;
  background-image:linear-gradient(90deg,currentColor 1px,transparent 1px);
  background-size:5px 1px;background-repeat:repeat-x;color:#c9c2b2;
  transition:color .15s}
.hm-de{font-size:11.5px;color:#6f6a63;white-space:nowrap;flex:none;letter-spacing:.02em}
.hm-tool:hover .hm-nm{color:#a5321f}
.hm-tool:hover .hm-line{color:#a5321f}

/* 尾线：卷首「横线夹题」的镜像收束，目录末行之后一条 184px 短横线，色与卷首题签线同取 #d8d1c2 */
.hm-page::after{content:'';display:block;width:184px;height:1px;
  background:#d8d1c2;margin:var(--sp-5) auto 0}

/* 页脚：注记色由 app.js 把 .page 上的本页深档桥接到 #footer，不重指深档的三页（首页、开源页、说明页）各自声明墨灰 */
#footer .os-link{border-bottom-color:#c4beb2}

/* 移动端 */
@media(max-width:640px){
  .hm-page{padding:0 var(--sp-4) 0}
  .hm-head{padding:var(--sp-4) 0 var(--sp-3)}
  .hm-lunar-big{font-size:32px}
  .hm-gz{font-size:13px;gap:12px}
  .hm-head::after{height:26px;margin-top:var(--sp-4)}
  .hm-list{columns:1}
  /* 移动端保持同一内容结构（编号 名称 点线 小注），仅引导点加密一档 */
  .hm-line{background-size:4px 1px}
  .hm-de{font-size:12.5px}
  .hm-cat-h .en{display:none}
}

/* ===== 万年历页 黛青主题（仅 wannianli.html 的 .page-wnl 作用域） =====
   语言对齐首页「纸本目录」：整页零圆角、零投影、零渐变，只留细线与实色块；
   配色收敛为黛青（青瓷）单色轴，不再引鎏金等点缀色；宜绿/忌红等语义色保留；
   老黄历/佛历/道历（同用 .cal-page）不受影响。 */
.page-wnl{
  --wnl:#175a63;        /* 黛青主色 */
  --wnl2:#0f454d;       /* 黛青深：hover/标题重音 */
  --wnl-deep:#12333a;   /* 墨黛：大标题字色 */
  --wnl-ink:#2b454d;    /* 墨青灰：正文字色（比纯黑柔和、与主题同族） */
  --wnl-ink2:#4d6a70;   /* 墨青灰次级字：卷首说明、农历日、副注、AI 状态字 */
  --wnl-line:#cfe0e0;   /* 黛青浅线 */
  --wnl-tint:#f3f8f8;   /* 青瓷淡底 */
  --wnl-serif:var(--font-serif);   /* 卷首宋体：随全站主字体 */
  --foot-ink:var(--wnl2);   /* 页脚注记：本页主色深档 */
  /* 全站强调令牌族在本页一律落到黛青族：表格加粗、年月导航钮、折叠框标题、右侧直达箭头等
     共享规则由此一次对齐，不会漏出全站鎏金 */
  --gold:var(--wnl);
  --gold2:var(--wnl2);
  --gold-brown:var(--wnl2);
  --gold-bg:var(--wnl-tint);
  /* 圆盘令牌（双圆盘区：节气圆盘 + 经络圆盘）：骨架与尺寸走通用件 .wheel，此处只绑本页色。
     不设上边线：上方字段流末行自带下边线，再划一条两线几乎贴在一起，显得多余。
     两盘制式统一：弧用主体色，字按五行色（与纳音上色同源，季名与经名皆然）；
     当令与选中色（加粗弧、指针、圆点、内圈选中字）同取本页主体色，与 --wheel-arc 同源；
     一色两重（弧 .22 淡、加粗弧实色 4px）即可分出当前与其余，不再引第二支色。
     注：日历格的「节/气」角标（.jq-mark / .slot-jq）取 #1f7a68，是格内小字，与圆盘无涉。 */
  --wheel-serif:var(--wnl-serif);
  --wheel-line:var(--wnl-line);
  --wheel-arc:var(--wnl);
  --wheel-ink:var(--wnl-ink);
  --wheel-deep:var(--wnl-deep);
  --wheel-ink2:var(--wnl-ink2);
  --wheel-cur:var(--wnl);
  --wheel-core:var(--wnl-tint);
  --wheel-h4:var(--wnl2);
  /* 吉凶两色：本页盘面暂未按吉凶上色，令牌备于此，盘上一旦出现吉凶字与详情吉项即有本页取值，
     不至回落到通用兜底色 */
  --wheel-good:var(--green);
  --wheel-bad:var(--red);
  --line:var(--wnl-line);--ink:var(--wnl-ink)
}

/* ===== 周公解梦页（zhougong.html）月夜银青主题 =====
   梦=夜与月：黛夜主色 + 月华银点缀 + 月晕淡底。语义色（吉绿凶红）保留；
   不动 --red（全局 .btn.gold 底色为 var(--red)，重定向会污染凶徽标），按钮走作用域覆盖。 */
.page-zg{
  --zg:#3d5a74;        /* 月夜青主色：按钮、强调 */
  --zg2:#26394c;       /* 深夜青：hover、小标题（对白底 5.4:1 达 AA，修小字发虚） */
  --zg-deep:#1f2d3b;   /* 夜墨：大标题字色 */
  --zg-ink:#2f3a45;    /* 墨灰：正文字色（对白底 4.9:1 达 AA） */
  --zg-ink2:#4f5d6b;   /* 次级字色：卷首说明、副注、标注 */
  --zg-line:#d4dee6;   /* 月晕浅线 */
  --zg-tint:#f0f4f8;   /* 月晕淡底 */
  --zg-serif:var(--font-serif);  /* 卷首宋体：页头与题名 */
  --gold:var(--zg);
  --gold2:var(--zg2);
  --gold-bg:var(--zg-tint);
  --gold-brown:var(--zg2);
  --line:var(--zg-line);--ink:var(--zg-ink)
}

/* ===== 老黄历页 朱红 主题（仅 laohuangli.html 的 .page-lhl 作用域） =====
   语言对齐首页纸本目录：整页零圆角、零投影、零渐变，只留细线与实色块，页底一律白；
   主体色只有朱红一支，页内一切色都从它派生：
     主色 #ab2b37（色相 354 度）
     深档 #8a212c、墨档 #4a171c ＝ 同色相压暗两档，供 hover 与大标题取用
     浅线、纸淡底 ＝ 同色相提到 86% 与 95% 明度（与样板页同档）
     正文与次级字 ＝ 同族暖墨灰，只降饱和不加色相
   主色取朱红即历书通行主色：黄纸之上朱墨双色套印，墨印正文、朱印吉忌与批注，
   黄是纸不是墨，页面主体色落朱。红带已有藏历枣红 7 度、择日砖红 8 度，
   故取 354 度绛红，与二者分居色相环零度两侧；白字对比 6.7:1，作今日格与按钮实底。
   宜绿、忌红、周末红、节气青等语义色保留；佛历与道历同用 .cal-page 不受影响。 */
.page-lhl{
  --lhl:#ab2b37;        /* 朱红主色 */
  --lhl2:#8a212c;       /* 深朱：hover 与强调 */
  --lhl-deep:#4a171c;   /* 朱墨：大标题字色 */
  --lhl-ink:#443133;    /* 朱墨灰：正文字色（比纯黑柔和、与主题同族） */
  --lhl-ink2:#6d4f51;   /* 朱批同族暖灰：注记、副文、农历日等次级文字（降饱和，不另立色相） */
  --lhl-line:#e8ced1;   /* 朱批浅线：主色同色相，明度 86% */
  --lhl-tint:#faebec;   /* 朱批纸淡底：主色同色相，明度 95% */
  --foot-ink:var(--lhl2);   /* 页脚注记：本页主色深档 */
  /* 全站强调令牌族在本页一律落到朱红族：表格加粗、年月导航钮、折叠框标题、右侧直达箭头等
     共享规则由此一次对齐，不会漏出全站鎏金 */
  --gold:var(--lhl);
  --gold2:var(--lhl2);
  --gold-brown:var(--lhl2);
  --gold-bg:var(--lhl-tint);
  --lhl-serif:var(--font-serif);   /* 卷首宋体：随全站主字体 */


  /* 圆盘令牌（通用件 .wheel 用）：弧带与当令、选中态都用主体色朱红；
     吉凶两色另走 --wheel-good/--wheel-bad，只用于时辰盘的扇区与详情字。 */
  --wheel-serif:var(--lhl-serif);
  --wheel-line:var(--lhl-line);
  --wheel-arc:var(--lhl);
  --wheel-ink:var(--lhl-ink);
  --wheel-deep:var(--lhl-deep);
  --wheel-ink2:var(--lhl-ink2);
  --wheel-cur:var(--lhl);
  --wheel-core:var(--lhl-tint);
  --wheel-h4:var(--lhl2);
  --wheel-good:var(--green);
  --wheel-bad:var(--red);--line:var(--lhl-line);--ink:var(--lhl-ink)}

/* ===== 佛历页 袈裟金、檀褐 主题（仅 foli.html 的 .page-foli 作用域） =====
   语言对齐首页「纸本目录」：整页零圆角、零投影、零渐变，只留细线与实色块；
   配色独立换为 袈裟金（深琥珀）主色 + 檀褐/朱砂点缀，佛经古卷与僧衣意象；
   斋日格佛经纸底、佛诞金字加深；宜绿/忌红、周末红等语义色保留；
   万年历/老黄历/道历不受影响。 */
.page-foli{
  --foli:#9c6f24;          /* 袈裟金主色 */
  --foli2:#7a571c;         /* 深琥珀：hover/强调 */
  --foli-deep:#4d3a15;     /* 墨檀：大标题字色 */
  --foli-ink:#4a4030;      /* 檀墨灰：正文字色（比纯黑柔和、暖调同族） */
  --foli-ink2:#6b5c42;     /* 檀褐次级字：卷首说明、农历日、副注、AI 状态字 */
  --foli-cinnabar:#a63a2e; /* 朱砂：周末红与焦点圈 */
  --foli-line:#e3d9c3;     /* 檀浅线 */
  --foli-tint:#faf6ea;     /* 佛经纸淡底 */
  --foli-serif:var(--font-serif);   /* 卷首宋体：随全站主字体 */
  --foot-ink:var(--foli2); /* 页脚注记：本页主色深档 */
  /* 全站强调令牌族在本页一律落到袈裟金族：表格加粗、年月导航钮、折叠框标题、右侧直达箭头等
     共享规则由此一次对齐，不会漏出全站鎏金 */
  --gold:var(--foli);
  --gold2:var(--foli2);
  --gold-brown:var(--foli2);
  --gold-bg:var(--foli-tint);


  /* 圆盘令牌（通用件 .wheel 用）：弧带与「当令/选中」都用袈裟金主色。
     吉凶两色走 --wheel-good/--wheel-bad，用于二十七宿盘的宿名与盘心。 */
  --wheel-serif:var(--foli-serif);
  --wheel-line:var(--foli-line);
  --wheel-arc:var(--foli);
  --wheel-ink:var(--foli-ink);
  --wheel-deep:var(--foli-deep);
  --wheel-ink2:var(--foli-ink2);
  --wheel-cur:var(--foli);
  --wheel-core:var(--foli-tint);
  --wheel-h4:var(--foli2);
  --wheel-good:var(--green);
  --wheel-bad:var(--red);--line:var(--foli-line);--ink:var(--foli-ink)}

/* ===== 道历页 玄青、紫炁 主题（仅 daoli.html 的 .page-daoli 作用域） =====
   与前三页同构的高级卡片语言，配色独立换为 玄青（玄门尚玄）主色 + 紫炁点缀（紫炁东来）；
   宜绿/忌红、节气绿等语义色保留 */
.page-daoli{
  --dao:#3a3f52;           /* 玄青主色 */
  --dao2:#2c3040;          /* 深玄青：hover/强调 */
  --dao-deep:#232734;      /* 玄墨：大标题字色 */
  --dao-ink:#363b47;       /* 玄墨灰：正文字色（比纯黑柔和、与主题同族） */
  --dao-ink2:#555a68;      /* 玄青次级字：卷首说明、农历日、副注、AI 状态字 */
  --dao-serif:var(--font-serif);   /* 卷首宋体：随全站主字体 */
  --dao-purple:#6b4d8a;    /* 紫炁：本页第二点缀色，只留九宫飞星折叠三角一处 */
  --dao-line:#d4d6dd;      /* 玄青浅线 */
  --dao-tint:#f3f4f7;      /* 玄青淡底 */
  --foot-ink:var(--dao2);  /* 页脚注记：本页主色深档 */
  /* 全站强调令牌族在本页一律落到玄青族：表格加粗、年月导航钮、折叠框标题、右侧直达箭头等
     共享规则由此一次对齐，不会漏出全站鎏金 */
  --gold:var(--dao);
  --gold2:var(--dao2);
  --gold-brown:var(--dao2);
  --gold-bg:var(--dao-tint);

  /* 圆盘令牌（双圆盘区：十二时辰吉凶盘 + 圣诞圆盘）：骨架与尺寸走通用件 .wheel，此处只绑本页色；
     吉凶两色供时辰盘外圈时辰名与盘心吉凶字的 fill:var(--wheel-good) 与 fill:var(--wheel-bad) 取用 */
  --wheel-serif:var(--dao-serif);
  --wheel-line:var(--dao-line);
  --wheel-arc:var(--dao);
  --wheel-ink:var(--dao-ink);
  --wheel-deep:var(--dao-deep);
  --wheel-ink2:var(--dao-ink2);
  --wheel-cur:var(--dao);
  --wheel-core:var(--dao-tint);
  --wheel-h4:var(--dao2);
  --wheel-good:var(--green);
  --wheel-bad:var(--red);
  --line:var(--dao-line);--ink:var(--dao-ink)
}

/* ============ 顶层规则（全站生效，各页勿再逐处重复定义） ============ */
/* 1) 表格与说明卡内所有黑色加粗强调（<b>/<strong>）一律不加粗、统一暗金色 */
table b,table strong,.sub-note b,.sub-note strong,.note-vedic b,.note-vedic strong,.house-box b{font-weight:400;color:var(--gold2)}
/* 2) 页面可见文案严禁使用全角竖线（U+FF5C）与斜杠作分隔符，新增文案一律用顿号、分号或括号替代 */

/* ===== 择日页 朱批、素笺 主题（仅 zeri.html 的 .page-zeri 作用域） =====
   与万年历等五页同用「纸本目录」语言：整页零圆角、零投影、零渐变，只留细线与实色块。
   主体色只有朱批红一支，页内一切色都从它派生：
     主色 #a8402e（色相 8°）
     深档 #8a3322、墨档 #4d2318 ＝ 同色相压暗两档，供 hover、大标题、表头字取用
     浅线、纸淡底 ＝ 同色相提到 86% 与 95% 明度（与样板页同档，见各页 --*-line / --*-tint）
     正文与次级字 ＝ 同族暖墨灰，只降饱和不加色相
   宜绿忌红等语义色保留 */
.page-zeri{
  --zr:#a8402e;          /* 朱批红主色 */
  --zr2:#8a3322;         /* 深朱批：hover 与强调 */
  --zr-deep:#4d2318;     /* 朱墨：大标题与表头字色 */
  --zr-ink:#463a30;      /* 朱墨灰：正文字色 */
  --zr-line:#e8d2ce;     /* 朱批浅线：主色同色相，明度 86% */
  --zr-tint:#faedeb;     /* 朱批纸淡底：主色同色相，明度 95% */

  /* 全站强调令牌在本页一律落到朱批红族：表格加粗、年月导航钮、折叠框标题、.zr-* 卡面等共享规则
     由此一次对齐，不必逐条覆写，也不会漏出全站鎏金 */
  --gold:var(--zr);
  --gold2:var(--zr2);
  --gold-brown:var(--zr2);
  --gold-bg:var(--zr-tint);
  --zr-ink2:#705751;     /* 朱批同族暖灰次级字：卷首说明、副注、AI 状态字 */
  --ink2:var(--zr-ink2);   /* 全站次级字令牌在本页一并落到本页次级字档 */
  --zr-serif:var(--font-serif);   /* 卷首宋体：随全站主字体 */
  --foot-ink:var(--zr2);--line:var(--zr-line);--ink:var(--zr-ink)}
/* ===== 皇极经世页 绛帐 主题（仅 huangji.html 的 .page-hj 作用域） =====
   与万年历、老黄历、佛历、道历、藏历、择日同用「纸本目录」语言：整页零圆角、零投影、零渐变，只留细线与实色块。
   主体色只有绛色一支（邵雍绛帐传薪），页内一切色都从它派生：
     主色 #8c3548（色相 345°）
     深档 #70293a、墨档 #451a26 ＝ 同色相压暗两档，供 hover、大标题、表头字取用
     浅线 #e3d1d6、纸淡底 #faf1f3 ＝ 同色相提到 86% 与 95% 明度
     正文与次级字 ＝ 同族暖墨灰，只降饱和不加色相
   宜绿忌红等语义色保留 */
.page-hj{
  --hj:#8c3548;          /* 绛色主色 */
  --hj2:#70293a;         /* 深绛：hover 与强调 */
  --hj-deep:#451a26;     /* 绛墨：大标题与表头字色 */
  --hj-ink:#42333a;      /* 绛墨灰：正文字色 */
  --hj-ink2:#6f5a62;     /* 次级字色：绛族暖灰（降饱和，不另立色相） */
  --hj-line:#e3d1d6;     /* 绛浅线：主色同色相，明度 86% */
  --hj-tint:#faf1f3;     /* 绛纸淡底：主色同色相，明度 95% */
  --hj-serif:var(--font-serif);

  /* 全站强调令牌在本页一律落到绛族：表格加粗、折叠框标题、圆盘字色等共享规则
     由此一次对齐，不必逐条覆写，也不会漏出全站鎏金 */
  --gold:var(--hj);
  --gold2:var(--hj2);
  --gold-brown:var(--hj2);
  --gold-bg:var(--hj-tint);
  --foot-ink:var(--hj2);

  /* 圆盘令牌（元会运世定位盘）：骨架、尺寸、字号走通用件 .wheel，此处只绑本页色。
     三环的弧、刻度、圈线一律绛族；当前三段的加粗弧与盘心字取绛墨，盘心淡底取绛纸，
     环名取绛墨灰，与页面其余各处同一支绛色，不引第二色。 */
  --wheel-serif:var(--hj-serif);
  --wheel-line:var(--hj-line);
  --wheel-arc:var(--hj);
  --wheel-cur:var(--hj);
  --wheel-core:var(--hj-tint);
  --wheel-ink:var(--hj-ink);
  --wheel-ink2:var(--hj-ink2);
  --wheel-deep:var(--hj-deep);
  --wheel-h4:var(--hj2);
  --wheel-good:var(--green);
  --wheel-bad:var(--red);--line:var(--hj-line);--ink:var(--hj-ink)}

/* ===== 八字排盘页：松青、命木 主题（仅 bazi.html 的 .wrap.page-bazi 作用域）=====
   一支松青（154 度色相）走全页，六档同色相派生：主色 31% 明度、深档 hover 与强调、
   墨档给大标题与表头、正文字取松墨灰、次级字只降饱和不另立色相、
   浅线与纸淡底 ＝ 同色相分别提到 84% 与 96% 明度。
   语言：零圆角、零投影、零渐变，白卡一律改上下细线（纸本目录）；
   语义色（宜绿忌红、五行五色、吉凶）原样保留，不随主题走。 */
.page-bazi{
  --bz:#356b54;          /* 松青主色 */
  --bz2:#285443;         /* 深松青：hover 与强调 */
  --bz-deep:#1c3a2d;     /* 松墨：大标题与表头字色 */
  --bz-ink:#33413a;      /* 松墨灰：正文字色 */
  --bz-ink2:#5c6e63;     /* 次级字色：松族暖灰（降饱和，不另立色相） */
  --bz-line:#ceded7;     /* 松浅线：主色同色相，明度 84% */
  --bz-tint:#eff5f3;     /* 松纸淡底：主色同色相，明度 96% */
  --bz-serif:var(--font-serif);

  /* 全站中性次级字色 --ink2 在本页一并落到松族灰：表单标签、模块副标题、图例等共享件
     都挂这一档，不在此收口就会在松青页上混进一支冷灰 */
  --ink2:var(--bz-ink2);

  /* 全站强调令牌在本页一律落到松青族：表格加粗、折叠框标题、圆盘字色、
     右侧到顶箭头等共享件由此一次对齐，不必逐条覆写，也不会漏出全站鎏金 */
  --gold:var(--bz);
  --gold2:var(--bz2);
  --gold-brown:var(--bz2);
  --gold-bg:var(--bz-tint);
  --foot-ink:var(--bz2);

  /* 圆盘令牌（量化四柱圆盘、十二长生盘）：骨架、尺寸、字号走通用件 .wheel，此处只绑本页色 */
  --wheel-serif:var(--bz-serif);
  --wheel-line:var(--bz-line);
  --wheel-arc:var(--bz);
  --wheel-cur:var(--bz);
  --wheel-core:var(--bz-tint);
  --wheel-ink:var(--bz-ink);
  --wheel-ink2:var(--bz-ink2);
  --wheel-deep:var(--bz-deep);
  --wheel-h4:var(--bz2);
  --wheel-good:var(--green);
  --wheel-bad:var(--red);--line:var(--bz-line);--ink:var(--bz-ink)}
/* ===== 日期选择弹框按页面主题着色（dtm-* 由 app.js 依据 .wrap 主题类自动附加） =====
   弹框挂 body 下、无主题上下文，故按页给主题变量；未列页面回退全局默认 */
.dtm-wnl{--tk:#175a63;--tk2:#0f454d;--tk-ink:#2b454d;--tk-line:#cfe0e0;--tk-tint:#f3f8f8}
.dtm-lhl{--tk:#ab2b37;--tk2:#8a212c;--tk-ink:#443133;--tk-line:#e8ced1;--tk-tint:#faebec}
.dtm-foli{--tk:#9c6f24;--tk2:#7a571c;--tk-ink:#4a4030;--tk-line:#e3d9c3;--tk-tint:#faf6ea}
.dtm-daoli{--tk:#3a3f52;--tk2:#2c3040;--tk-ink:#363b47;--tk-line:#d4d6dd;--tk-tint:#f3f4f7}
.dtm-zeri{--tk:#a8402e;--tk2:#8a3322;--tk-ink:#463a30;--tk-line:#e8d2ce;--tk-tint:#faedeb}
.dtm-hh{--tk:#8d3488;--tk2:#70296b;--tk-ink:#453044;--tk-line:#e6d1e5;--tk-tint:#f7eef6}
.dtm-bazi{--tk:#356b54;--tk2:#285443;--tk-ink:#33413a;--tk-line:#ceded7;--tk-tint:#eff5f3}
.dtm-hj{--tk:#8c3548;--tk2:#70293a;--tk-ink:#42333a;--tk-line:#e3d1d6;--tk-tint:#faf1f3}
.dtm-zl{--tk:#8f2f22;--tk2:#6f2318;--tk-ink:#4a4038;--tk-line:#e9d1ce;--tk-tint:#fbecea}
.dtm-zw{--tk:#5a3a7e;--tk2:#483064;--tk-ink:#3c3444;--tk-line:#dbd2e6;--tk-tint:#f4eff8}
/* 容器：须写 [class*="dtm-"]（它含容器自身）——dtm-* 由 app.js 加在 .modal 自身，
   后代选择器 .dtm-x .modal 永不匹配，原写法致 2px 金边长期未被主题覆盖。
   本段只写色：有无边框、圆角、间距等骨架一律在基础层 .dt-* 定义。 */
.dt-modal[class*="dtm-"]{border:1px solid var(--tk-line);color:var(--tk-ink)}
[class*="dtm-"] .close{color:var(--tk-ink)}
/* 头部箭头：骨架与悬停淡底在基础层，此处只给常态字色（悬停沿用同色，反馈落在淡底） */
[class*="dtm-"] .dt-head button{color:var(--tk)}
[class*="dtm-"] .dt-year,[class*="dtm-"] .dt-month{background:var(--card);border:1px solid var(--tk-line);color:var(--tk-ink)}
/* 星期行与日期格 */
[class*="dtm-"] .dt-week span{color:var(--tk)}
[class*="dtm-"] .dt-cell{color:var(--tk-ink)}
/* 今日格：主色满填为状态标记，悬停再深一档，字色恒白，不因悬停让位给淡底 */
[class*="dtm-"] .dt-cell.today{background:var(--tk);color:#fff}
[class*="dtm-"] .dt-cell.today:hover{background:var(--tk2);color:#fff}
/* 时间选择列与选项 */
[class*="dtm-"] .dt-col{border:1px solid var(--tk-line)}
[class*="dtm-"] .dt-opt{color:var(--tk-ink);border-bottom:1px solid var(--tk-line)}
[class*="dtm-"] .dt-opt:hover{background:var(--tk);color:#fff}
[class*="dtm-"] .dt-opt.on{background:var(--tk);color:#fff}

/* ===== 铁板神数页 玄铁主题（tieban.html，.page-tieban 作用域）=====
   全页只有一个主体色：玄铁（铁板淬火之色）。黄铜只作单点标记（算珠），色相与主色相去 180 度。
   本页细则写在文末页级样式 tieban 段，此处只放令牌。 */
.page-tieban{
  --tie:#3e4a5c;         /* 玄铁主色 */
  --tie2:#303a49;        /* 深玄铁：hover 与强调 */
  --tie-deep:#222b37;    /* 墨铁：大标题与表头字色 */
  --tie-ink:#35404d;     /* 铁墨灰：正文字色 */
  --tie-ink2:#55636f;    /* 次级字色：卷首说明、副注、图例 */
  --tie-line:#d3dae2;    /* 银灰线：主色同色相，明度 86% */
  --tie-tint:#eef1f6;    /* 冷银纸底：主色同色相，明度 95% */
  --tie-brass:#a87832;   /* 黄铜点缀（算珠） */
  --tie-serif:var(--font-serif);

  /* 全站中性次级字色在本页一并落到铁族灰：副注、图例、AI 状态字等共享件由此一次对齐 */
  --ink2:var(--tie-ink2);

  /* 全站强调令牌在本页一律落到玄铁族：表格加粗、折叠框标题、到顶箭头等共享件由此对齐 */
  --gold:var(--tie);
  --gold2:var(--tie2);
  --gold-brown:var(--tie2);
  --gold-bg:var(--tie-tint);
  --foot-ink:var(--tie2);
  --line:var(--tie-line);--ink:var(--tie-ink)
}

/* ===== dtm-tieban（玄铁、黄铜）弹框主题 ===== */
.dtm-tieban{--tk:#3e4a5c;--tk2:#303a49;--tk-ink:#35404d;--tk-line:#d3dae2;--tk-tint:#eef1f6}

/* ===== 二十八宿页 鎏金观星 主题（xingxiu.html，.page-xx 作用域） =====
   页面保持全站统一的浅色形态，配色与玄夜鎏金星图同族呼应：
   主按钮与强调取夜穹靛蓝（星图穹顶夜幕），表头、引用与面板头取淡金雾底，
   结果宿名与次按钮取鎏金（星图鎏金刻线）；金底一律配深墨字（白字对比不足）。
   四象标签（青龙绿、玄武蓝、白虎灰、朱雀红）与宜忌吉凶语义色、星图诸色保留；
   鎏金两档（--xx-gold／--xx-star）已撤：宿名原取鎏金，色相 38 度与靛蓝主色相冲，改取深档 --xx2 */
.page-xx{
  --xx:#2c3e5d;          /* 夜穹靛蓝主色：主按钮、强调 */
  --xx2:#1f2d47;         /* 深靛：hover与强调 */
  --xx-deep:#22304d;     /* 深靛墨：大标题与输入文字 */
  --xx-ink:#3a4356;      /* 蓝灰墨：正文字色 */
  --xx-line:#d7dfe9;     /* 月晕浅线（冷调，与靛蓝同族） */
  --xx-tint:#eef2f8;     /* 月晕靛底：表头、引用、面板头（冷调统一） */
  --xx-ink2:#4f5a6d;  /* 次级字色：卷首说明、副注、标注 */
  --xx-serif:var(--font-serif);  /* 卷首宋体：页头与题名 */
  /* 示意星图（.xx-sky）：夜幕三档、星野与刻线、宿名七曜、今日值宿、四象色；色值只在此处，图内不写死 */
  --sk-night1:#0a1424; --sk-night2:#16263c; --sk-night3:#2c3e5d;
  --sk-star:#cfe0f4; --sk-dot:#eef4ff; --sk-ring:#d4b276; --sk-ring2:#96b4d7; --sk-link:#d6b67e;
  --sk-name:#9db1c9; --sk-yao:#7f93ac; --sk-cur:#ecc57c; --sk-c2:#8ea2ba; --sk-c3:#7f93ac;
  --sk-青龙:#6ec893; --sk-玄武:#7fa8e0; --sk-白虎:#c3cbd4; --sk-朱雀:#e08a76;
  /* 圆盘令牌：示意星图只借通用件的容器与图注形制（.wheel-block 与 .wheel-detail），盘面本身走上面的 --sk-* 夜幕色，
     故此处照样板页口径把 --wheel-* 绑到本页色，弧与主色同源、当令取深档、吉凶取全站语义色 */
  --wheel-serif:var(--xx-serif);
  --wheel-line:var(--xx-line);
  --wheel-arc:var(--xx);
  --wheel-cur:var(--xx2);
  --wheel-ink:var(--xx-ink);
  --wheel-deep:var(--xx-deep);
  --wheel-ink2:var(--xx-ink2);
  --wheel-core:var(--xx-tint);
  --wheel-good:var(--green);
  --wheel-bad:var(--red);
  --gold2:var(--xx2); --gold:var(--xx); --gold-brown:var(--xx2); --gold-bg:var(--xx-tint);
  --line:var(--xx-line);--ink:var(--xx-ink)
}


/* 日期弹框主题（字面量，dt-input 弹框经页面主题类派发 dtm-xx） */
.dtm-xx{--tk:#2c3e5d;--tk2:#1f2d47;--tk-ink:#3a4356;--tk-line:#d7dfe9;--tk-tint:#eef2f8}

/* ===== 移动端滚动表列宽契约（≤640px）=====
   口径取 IBM Carbon、Ant Design、MUI 的横向滚动数据列表：列宽按内容定、有上限防无限延长，
   表宽＝各列之和，超出容器由容器横向滚动兜底。
   三条硬约束：① 列宽按内容（width:max-content），短语列就是短语宽，严禁给列强加最小宽撑出空白；
   ② 单列上限按容器可用宽动态取（app.js 量出容器实宽写进 --xj-cap，量不到时回落 min(70vw,22em)），
   长文列撞上限后换行，严禁任何列超屏宽；
   ③ 表宽不得小于容器（min-width:100%），内容窄于容器时铺满，严禁把表压缩成窄条。
   🔴 首列严禁冻结（禁 position:sticky）：横滑时首列压在内容上、实底遮住表体，
   滚动条一动即见重影，行标识由内容自身承担。
   窄屏禁写全列 nowrap、表级硬 min-width、列级硬 min-width 三项（三者即超宽与空白的成因）。
   作用域只认横向滚动容器 .tbl-hs：页内已有容器由 app.js 在窄屏挂名、无容器的表由 app.js 补一层，
   宽屏一律除名或解包，故通用区不写任何页级类名，列宽契约的落点只有这一层。 */
@media(max-width:640px){
  /* 单元格内容层：列宽上限的实际落点（Chrome 忽略列级 max-width），由 app.js 在窄屏给单元格内容套此层。
     上限优先取 app.js 量出的容器可用宽（--xj-cap），量不到时才回落静态值；
     下限 3em 防列被压到每行的字只剩一个、把表堆高（禁单字换行的最后一道兜底）。
     下限不再抬高：列宽本就按内容取，短列已等于自身内容宽，抬高只给一至三字列白加宽、白添横滑，不减行高。 */
  .xj-tc{min-width:3em;max-width:var(--xj-cap,min(70vw,22em))}
  /* 末行孤字（折行后末行只剩一字）只出在撞上限的长文格，故断行策略只给这批格（.xj-tc-pretty，
     由 app.js 按格宽已等于上限逐格判定）：列宽按容器实宽取后，长文列的折行点随列宽移动，末行剩
     一字须由断行策略消掉；不能靠收窄列宽，收窄等于把行高加回去。
     不给全列：未撞上限的格列宽由自身内容宽定，套上断行策略会把该值压到下限，整列跟着变窄。 */
  .xj-tc-pretty{text-wrap:pretty}
  /* 容器须显式取满宽：补的这层若落在 flex 或 grid 容器里会按内容收缩（实测紫微 .zw-ct 被收成 28px），
     表再按 100% 取宽即跟着缩，故此处先钉住容器宽度，由表的内容宽决定是否出滚动条 */
  .tbl-hs{width:100%;max-width:100%;min-width:0;overflow-x:auto;-webkit-overflow-scrolling:touch}
  body .page .tbl-hs table:not(.tbl-kv){table-layout:auto;width:max-content;min-width:100%;max-width:none}
  /* 列宽只按内容：页级按 100% 表宽配的百分比、定宽与封顶（如藏历 .zl-tbl 的 width:100%;max-width:100%）
     在 max-content 表宽下会把短列同比例撑宽或压窄，故 width、min-width、max-width 三项一并归零，
     表宽只由各列内容宽之和决定，超出容器由容器横向滚动兜底。
     甲型键值表（.tbl-kv）不入本条：此类表无横滑需求，走下方键值表分支 */
  body .page .tbl-hs table:not(.tbl-kv) th:nth-child(n),
  body .page .tbl-hs table:not(.tbl-kv) td:nth-child(n){white-space:normal;word-break:normal;overflow-wrap:break-word;width:auto;min-width:0}
  /* 甲型键值表（app.js 窄屏标 .tbl-kv：无表头行、每行首格是属性名、列数不超过三）：
     表取满容器宽、键列（th 定名）单行按内容定宽且不吃上限、值列吃上限折行，表宽即容器宽、无横滑。
     键列若也吃上限，容器容不下两倍键宽时键名被压折行（实测占星三要素 320 档键名断成两行）。
     同族键值表（同一模块内并排的多张键值表）要求键列齐平：键列宽由页级给统一 em 值即可，
     本分支不写 width，页级定宽不被上面数据表条目的 width:auto 归零 */
  body .page .tbl-hs table.tbl-kv{width:100%;max-width:100%;min-width:0}
  body .page .tbl-hs table.tbl-kv th:first-child{white-space:nowrap}
  body .page .tbl-hs table.tbl-kv th:first-child .xj-tc{max-width:none;min-width:0}
}

/* ===== 页级样式：xingming（page-nm）=====
   黛墨、青玉主题：青玉主色（--nm）配青灰墨正文，令牌与本页细则同段，令牌块见本段首条。
   日期弹框主题见本段 .dtm-nm。 */
.page-nm{
  --nm:#3d8b7d;
  --nm2:#2e7264;
  --nm-deep:#1f4f44;
  --nm-ink:#3a4a45;
  --nm-ink2:#6d8a80;
  --nm-line:#c8e3da;
  --nm-tint:#f2faf7;
  --nm-serif:var(--font-serif);
  --gold2:var(--nm2);
  --gold:var(--nm);
  --gold-brown:var(--nm2);
  --gold-bg:var(--nm-tint);
  --ink2:var(--nm-ink2);
  --foot-ink:var(--nm2);
  --wheel-serif:var(--nm-serif);
  --wheel-line:var(--nm-line);
  --wheel-arc:var(--nm);
  --wheel-ink:var(--nm-ink);
  --wheel-deep:var(--nm-deep);
  --wheel-ink2:var(--nm-ink2);
  --wheel-cur:var(--nm);
  --wheel-core:var(--nm-tint);
  --wheel-h4:var(--nm2);
  --wheel-good:var(--green);
  --wheel-bad:var(--red);
  --line:var(--nm-line);--ink:var(--nm-ink)
}

/* 页头：标题上下各一条本页浅线夹题，卷首说明居中宽字距、下一道竖线收束（规则第三条，七页同式） */
.page-nm .page h1{color:var(--nm-deep);font-family:var(--nm-serif);font-size:23px;
  letter-spacing:.3em;text-indent:.3em;text-align:center;line-height:1.3}
.page-nm .page h1::before{content:'';display:block;width:88px;height:1px;background:var(--nm-line);margin:0 auto var(--sp-3)}
.page-nm .page h1::after{content:'';display:block;width:88px;height:1px;background:var(--nm-line);margin:var(--sp-3) auto 0}
.page-nm .page .lead{color:var(--nm-ink2);text-align:center;font-size:12.5px;letter-spacing:.22em;text-indent:.22em;margin-top:var(--sp-3)}
.page-nm .page .lead::after{background:var(--nm-line)}
/* 层级二的色由通用段 var(--title) 承担（本页 --gold2 已重指 --nm2），层级三取本页墨档 */
.page-nm .det-h{color:var(--nm-deep)}
.page-nm .ly-zh-p{color:var(--nm-ink)}
.page-nm .sub-note{color:var(--nm-ink2)}
.page-nm .mh-method{color:var(--nm-ink2)}
/* 注记与提示：上下各一条细线夹出、透明底（规则第二条收束件，八字、择日两页同式） */
.page-nm .notice{color:var(--nm-ink);border:0;border-top:1px solid var(--nm-line);border-bottom:1px solid var(--nm-line);background:transparent;border-radius:0}

/* 表单与出生信息组 */
.page-nm .field label{color:var(--nm2);font-weight:400}
/* 复选框标签（真太阳时校正）不作强调，与铁板页 .page-tieban .field.chk label 同口径 */
.page-nm .field.chk label{font-weight:400}
.page-nm .field input,.page-nm .field select{border-color:var(--nm-line);background:var(--card);color:var(--nm-deep);transition:border-color .15s,box-shadow .15s}
.page-nm .field input:focus,.page-nm .field select:focus{border-color:var(--nm);outline:none}
.page-nm .nm-wxrow select{color:var(--nm-deep)}
.page-nm .group-label{color:var(--nm2)}
/* 提交行：第二名时辰（联名模式显示）与开始分析按钮同排流式排列 */
.page-nm .nm-go-row{display:flex;flex:1 1 100%;flex-wrap:wrap;align-items:center;gap:var(--sp-3) var(--sp-4)}
.page-nm .nm-go-row .btn{margin:0}
.page-nm .nm-go-row .nm-b2{flex-direction:row;align-items:center;gap:var(--sp-2);min-width:auto;max-width:none}
.page-nm .nm-go-row .nm-b2 label{white-space:nowrap;color:var(--nm-ink2)}
/* 出生地组：去淡底与四边描边，上下各一条细线夹出（八字、铁板两页同式） */
.page-nm .birth-group,.page-nm .birth-group.compact{background:transparent;border:0;border-top:1px solid var(--nm-line);border-radius:0;box-shadow:none;padding:var(--sp-3) 0}
/* 窄屏题头到上线收到移动端更小档 --sp-2；本块排在基条之后，同权重下由后位取终值 */
@media(max-width:640px){.page-nm .birth-group,.page-nm .birth-group.compact{padding-top:var(--sp-2)}}

/* 按钮：黛墨实底，无投影；btn-ghost 为描边次级 */
.page-nm .btn{background:var(--nm);color:#fff;box-shadow:none}
.page-nm .btn:hover{background:var(--nm2)}
.page-nm .btn-ghost{background:var(--card);border:1px solid var(--nm);color:var(--nm2);box-shadow:none}
.page-nm .btn-ghost:hover{background:var(--nm-tint)}

/* 折叠件 section.mod 由通用段定形，页面段只定题头线色、题字色与序号圆点色（21.11）；
   底部「八十一数理速查全表」「补充说明」是 .mh-ref 说明框，不在此列，维持原样。 */
.page-nm .mod-head{border-color:var(--nm-line)}
.page-nm .mod-title{color:var(--nm2)}
.page-nm .mod-n{background:var(--nm);color:#fff}
/* 结果区首块：联名推荐名单前的说明段，透明底上下细线，边框由首块自己承担（21.11） */
.page-nm .nm-lead{background:transparent;border-top:1px solid var(--nm-line);border-radius:0;padding:var(--sp-2) 0;margin:0 0 var(--sp-3)}
.page-nm .nm-lead .ly-zh-p{margin:0}

/* 表格：铺满容器、合并边框、字号取 13px 档；表头与行标签同取本页纸淡底（规则第八条） */
.page-nm .xlr-table{width:100%;max-width:100%;border-collapse:collapse;font-size:13px}
.page-nm .xlr-table th,.page-nm .xlr-table td{border:1px solid var(--nm-line);padding:6px 9px;text-align:left;vertical-align:top;font-weight:400}
.page-nm .xlr-table th{background:var(--nm-tint);color:var(--nm2);white-space:nowrap;text-align:center}
.page-nm .xlr-table td{color:var(--nm-ink)}
.page-nm .nm-note-tbl th{padding-right:var(--sp-4)}
.page-nm .nm-note-tbl td{line-height:1.8}
/* 姓氏与字义两表首列是名目字，取居中 */
.page-nm .xlr-table.nm-left td:first-child{text-align:center}

/* 参考折叠框（mh-ref）：形制与题名由通用段给出，本页只补线色与表头淡底 */
.page-nm .mh-ref{border-color:var(--nm-line)}
.page-nm .mh-ref summary{color:var(--nm2)}
.page-nm .mh-ref th,.page-nm .mh-ref td{border-color:var(--nm-line)}
.page-nm .mh-ref th{background:var(--nm-tint);color:var(--nm-deep);font-weight:400}
.page-nm .mh-ref td{background:transparent;color:var(--nm-ink)}

/* 数格（lr-ke）：并列条目卡只画一条上线，不留底色与投影（规则第二条，铁板条文九类同式）；
   卡内 .lr-ke-d 的上线承担「字」与「笔画」之间的分隔，两线相距远超 12px，不叠成重线 */
.page-nm .lr-ke{background:transparent;border:0;border-top:1px solid var(--nm-line);border-radius:0;box-shadow:none}
/* 悬停淡底取本页浅色系令牌 --gold-bg（本页已重指 --nm-tint），不引全局纸色与纯白 */
.page-nm .lr-ke:hover{background:var(--gold-bg)}
/* 三运三行：去白瓷与投影，只留顶线、末条补底线（规则第二条：线只画一条；
   行距由 padding 承担，相邻线距不小于 12px） */
.page-nm .nm-chuans{gap:0;max-width:none}
.page-nm .nm-chuans .lr-chuan{background:transparent;border:0;border-top:1px solid var(--nm-line);
  border-radius:0;box-shadow:none;padding:var(--sp-3) 0}
.page-nm .nm-chuans .lr-chuan:last-child{border-bottom:1px solid var(--nm-line)}
.page-nm .nm-chuans .lr-chuan:hover{background:var(--nm-tint)}
/* 取数卡按框宽等分铺满，长名模式取数卡较多时换行；卡间列距 16px、
   行距 12px（不小于规则第二条的相邻平行线最小间距），使各卡的上线读作分栏而非断线 */
.page-nm .mod-body .lr-kes{gap:var(--sp-3) var(--sp-4);justify-content:stretch;flex-wrap:wrap}
.page-nm .mod-body .lr-kes .lr-ke{flex:1 1 0;min-width:0}
/* 取数卡主字：通用件取全站墨色，本页须落回页内色族，否则整片卡主字为页外黑 */
.page-nm .lr-ke-u{color:var(--nm2)}
.page-nm .lr-ke-l{color:var(--nm)}
.page-nm .lr-ke-d{color:var(--nm-ink);border-top-color:var(--nm-line)}
/* 悬停反馈见上：取数卡与三运行各有一条，皆本页色系 */
/* 吉凶档字色走站内 .luck-吉/.luck-凶 体系，此处不得覆盖（吉绿/凶红） */

/* 标签与高亮：标签随通用件 .zr-tag 的形态（无框无底），只取本页色
   （规则第二条：底能去则去；纯白不作卡内标签底） */
.page-nm .zr-tag{color:var(--nm-ink)}
.page-nm .zr-tag.nm-tag{color:var(--nm2)}
.page-nm .zr-tag.nm-tag-soft{color:var(--nm2)}
.page-nm .zr-tag.nm-tag-warn{color:var(--red)}

/* 综合评分：总分卡沿用合婚 hh-total，去四边框（顶线由 ::before 的 76px 收束线承担，不再叠一条满宽线）；
   六维分项改走圆盘（wheel 通用件，令牌见本段 --wheel-*），故本页不再有 hh-item 分项条 */
.page-nm .hh-total{border:0;background:transparent;box-shadow:none}
.page-nm .hh-total::before{background:var(--nm2)}
.page-nm .hh-total-cap{color:var(--nm2)}
.page-nm .hh-total-score b{text-shadow:none}
.page-nm .hh-total-lv{border-top:1px dashed var(--nm-line)}
/* 单盘居整行（通用件 .wheel-wheels 是两列网格，本页只有一张六维盘） */
.page-nm .wheel-wheels{margin-top:var(--sp-3);padding-top:var(--sp-3)}

/* 附加功能面板：上下细线夹出、透明底（规则第四节第 9 组，与合婚页同口径） */
.page-nm .ai-block{border:0;border-top:1px solid var(--nm-line);border-bottom:1px solid var(--nm-line);border-radius:0;background:transparent;color:var(--nm-ink);box-shadow:none}
.page-nm .ai-head{background:transparent;border-bottom-color:var(--nm-line)}
.page-nm .ai-head h3{color:var(--nm2);font-family:var(--nm-serif);font-weight:400}
.page-nm .ai-head .ai-status{color:var(--nm-ink2)}
/* 面板内只有两档：AI 解析走 .page-nm .btn 的主体色实底，配置模型与 .btn.soft 同档为素笺次按钮 */
.page-nm .ai-block .btn{border-radius:0}
.page-nm .ai-block .btn.gold,.page-nm .ai-block .btn.soft{background:var(--nm-tint);border-color:var(--nm-line);color:var(--nm-ink);box-shadow:none}
.page-nm .ai-block .btn.gold:hover,.page-nm .ai-block .btn.soft:hover{background:var(--card);border-color:var(--nm);color:var(--nm2)}
.page-nm .ai-block .ai-out,.page-nm .ai-block .ai-bubble.user,.page-nm .ai-block .ai-bubble.assistant,.page-nm .ai-block .ai-model-name{color:var(--nm-ink)}
.page-nm .ai-block input,.page-nm .ai-block select{color:var(--nm-ink)}
.page-nm .ai-tab:hover{border-color:var(--nm);color:var(--nm2)}
.page-nm .ai-tab.active{background:var(--nm);border-color:var(--nm);color:#fff}
.page-nm .ai-tab.active:hover{background:var(--nm2);border-color:var(--nm2);color:#fff}
.page-nm .ai-bubble.user{background:var(--nm-tint);border-color:var(--nm)}
.page-nm .ai-bubble.assistant{border-color:var(--nm-line)}
.page-nm .ai-model-row:hover{background:var(--nm-tint)}
.page-nm .ai-tip{color:var(--nm-ink2)}

/* 日期弹框主题 */
.dtm-nm{--tk:#3d8b7d;--tk2:#2e7264;--tk-ink:#3a4a45;--tk-line:#c8e3da;--tk-tint:#f2faf7}

/* 本页专属件：大六壬四课卡（lr-kes/lr-ke）与三传行（lr-chuans/lr-chuan）、合婚页总分卡 hh-total、
   六维评分盘（wheel 通用件）、推荐卡 nm-gen-*、字义字源 nm-word-*。以下为补充规则，
   每条选择器只出现一次、终值直接书写，色一律取本页 --nm-* 令牌。 */

/* 模块内子节：数理格局、音形避忌、字义字源等合并模块一律以 .nm-sub-sec 包 .det-h 分节，
   分节间距由通用段 .det-h 的 --sp-3 单独承担，本页不再叠加容器上距（第十条：间距只有一个来源） */
/* 三列以上的数据表不得被压成单字列：最小宽保底、由所在容器横向滚动兜底。两列键值表不在此列 */
.page-nm .mod-body,.page-nm .nm-sub-sec{overflow-x:auto;-webkit-overflow-scrolling:touch}
.page-nm .xlr-table:has(tr>*:nth-child(3)){min-width:560px}
/* 印象标签行：标签名取主体色（与 .hh-name、.lr-chuan-l 同档），层级靠色不靠字重与框 */
.page-nm .nm-imp-k{color:var(--nm2)}
/* 印象标签行：其后即为分节题，间距由 .det-h 的 --sp-3 单独承担，本行不再带下距 */
.page-nm .nm-imp-p{margin:0;font-size:12px}
.page-nm .nm-tag-imp{color:var(--nm-ink)}
/* 字义块：以一条上虚线分组，不留底色（满块淡底压住小字，读来不清）；
   外层推荐卡的上线在整行之前，与本行相距一个信息行，不构成重线 */
.page-nm .nm-word-card{margin:0 0 var(--sp-3);padding:var(--sp-2) 0 0;border:0;border-top:1px dashed var(--nm-line);border-radius:0;background:transparent;display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--sp-1) var(--sp-3)}
.page-nm .nm-word-t{font-size:var(--tier2);color:var(--nm2)}
.page-nm .nm-word-d{color:var(--nm-ink)}
.page-nm .nm-word-s{font-size:12px;color:var(--nm-ink2)}
/* 字义字源合观表：跟在单字表之后，同式样表格；词列与寓意列定宽，其余自适应 */
.page-nm .nm-word-tbl{margin-top:var(--sp-3)}
.page-nm .nm-word-tbl th{white-space:nowrap}
.page-nm .nm-word-tbl thead th.nm-word-term{width:88px}
.page-nm .nm-word-tbl thead th.nm-word-mean{width:44%}
.page-nm .nm-word-tbl .nm-word-s{display:block;margin-top:2px}
/* 页内显隐与辅助行：JS 只切换 nm-hide 类，样式单一来源在此 */
.page-nm .nm-hide{display:none}
.page-nm .nm-shu-line{font-size:13px}
/* 典出标记：只以主体色小字标出，不单独画框（规则第二条：并列小件不逐件加框） */
.page-nm .nm-word-jd{display:inline-block;padding:1px var(--sp-1);border:0;font-size:12px;color:var(--nm2)}
.page-nm .nm-heat-p{font-size:12px;color:var(--red2)}
.page-nm .nm-pager{display:flex;align-items:center;justify-content:center;gap:var(--sp-3);margin-top:var(--sp-3)}
.page-nm .nm-pg-info{font-size:13px;color:var(--nm-ink2)}
.page-nm .nm-fav-bar{margin-bottom:var(--sp-2);padding:var(--sp-1) var(--sp-2);background:var(--nm-tint);border-radius:0;font-size:13px}
.page-nm .nm-fav-btn{font-size:12px;padding:2px var(--sp-2);margin-left:var(--sp-1)}
.page-nm .nm-fav-btn.nm-fav-on{background:var(--nm2);color:#fff;border-color:var(--nm2)}
.page-nm .nm-word-sm{margin:0 0 var(--sp-1);padding:var(--sp-2);font-size:12px}
.page-nm .nm-word-sm .nm-word-t{font-size:var(--tier3)}

/* 取数卡吉凶档小字注：字号归四档第四级，吉凶由 .luck-吉/.luck-凶 承担，
 * 层次靠色不靠字重，故不另写 font-weight */
.page-nm .lr-ke .nm-jx{display:block;margin-top:var(--sp-1)}
.page-nm .nm-jx{font-size:var(--tier4)}
/* 三运大字（吉、半、凶）取本页主体色；字号与字重由通用件 .lr-chuan-z 给，
 * 三运行通栏铺满区块内容宽 */
.page-nm .nm-chuans .lr-chuan-z{color:var(--nm2)}
.page-nm .nm-chuans .lr-chuan-j{flex:1;line-height:1.7}
/* 综合评分卡：分项圆盘在前、总分卡收窄下距 */
.page-nm .nm-total.hh-total-xz .hh-total-score{margin-bottom:var(--sp-2)}
/* 分类数标签：择日页 zr-tag 同款胶囊，字号随通用件 .zr-tag，此处只收卡内左右内距 */
.page-nm .nm-cls{margin-top:var(--sp-1);display:flex;gap:var(--sp-1);flex-wrap:wrap;justify-content:center}
.page-nm .nm-tag{padding:1px var(--sp-2)}
/* 历史记录行：与紧邻其上的联动提示行同取紧邻档 --sp-1 */
.page-nm #nmHist{margin:var(--sp-1) 2px var(--sp-1)}
.page-nm #nmHist a{color:var(--nm2);text-decoration:none;border-bottom:1px dashed var(--nm2);margin-right:2px}
.page-nm #nmHist .nm-hist-clr{color:var(--nm-ink2);border-bottom:1px dashed var(--nm-ink2);font-size:12px}
/* 八字联动提示行 */
.page-nm #linkLine{margin:var(--sp-1) 2px 0}
/* 表单控件宽度：按内容定宽，禁铺满 */
.page-nm #nmXing{width:100px}
.page-nm #nmMing{width:96px}
.page-nm #nmLong{width:170px}
.page-nm #nmCmp{width:110px}
.page-nm #nmAvoid{width:130px}
.page-nm #nmBzPos{width:78px}
.page-nm #nmBeizi{width:44px}
.page-nm #nmSex{width:90px}
/* 字辈字段：提示语独占一行，名首字下拉与字辈输入框同行在后；
   宽度须显式定值（wrap 容器 max-content 按不换行累计会虚高约一倍，右侧留大片空白） */
.page-nm #fBeizi{flex:0 0 132px;width:132px;flex-direction:row;flex-wrap:wrap;align-items:center;gap:var(--sp-1);max-width:none}
.page-nm #fBeizi label{flex:0 0 100%;white-space:normal}
.page-nm #fAvoid{max-width:none}
.page-nm #fGenWx{max-width:none}
/* 起名推荐卡：网格铺排，卡面沿用站内卡底与线色 */
.page-nm .nm-gen-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:var(--sp-3) var(--sp-4);margin-top:var(--sp-4)}
/* 起名推荐卡：网格并列条目卡，每卡只画一条上线（规则第二条，铁板条文九类同式），
   底色与投影一律不留；卡内字义块与两名小框改取淡底实色块分组 */
.page-nm .nm-gen-card{border:0;border-top:1px solid var(--nm-line);border-radius:0;background:transparent;padding:var(--sp-2) 0;display:flex;flex-direction:column;gap:var(--sp-1)}
.page-nm .nm-gen-top{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-1)}
.page-nm .nm-gen-name{font-size:var(--tier3);color:var(--nm2);white-space:nowrap}
.page-nm .nm-gen-py{font-size:12px;color:var(--nm-ink2)}
.page-nm .nm-gen-row{font-size:var(--tier4);color:var(--nm-ink)}
.page-nm .nm-gen-note{font-size:12px;color:var(--nm-ink2)}
.page-nm .nm-gen-yi{font-size:12px;color:var(--nm-ink);line-height:1.6;border-top:1px dashed var(--nm-line);padding-top:var(--sp-1);overflow-wrap:anywhere}
.page-nm .nm-gen-btn{font-size:12px;padding:var(--sp-1) var(--sp-2);border-radius:0;border:1px solid var(--nm2);background:transparent;color:var(--nm2);cursor:pointer;white-space:nowrap}
.page-nm .nm-gen-btn:hover{background:var(--nm-tint)}
/* 联名推荐名单：字号、颜色、背景、按钮位置、分页一律复用起名推荐的 .nm-gen-* 系列，
 * 只在一卡装两名这一处结构差异上做局部调整，不自造第二套视觉。
 * 标题（summary）→首卡的间距同 .nm-gen-grid：zr-mod-b 的 padding-top 4px + 本行 margin-top 16px。 */
.page-nm .nm-gen-grid.nm-twin-list{grid-template-columns:repeat(auto-fill,minmax(360px,1fr))}
.page-nm .nm-twin-card{gap:var(--sp-2)}
/* 卡头为两名之间的关系（成语名、合体字、共用字、排行字、同义对仗），
 * 一律取页面主体色 var(--nm2)（本页解析为 --nm2 青玉色），不用 --ink 黑字；
 * 字号 ≤ 折叠框标题（.zr-mod>summary = --tier3 = 14px），不与章节标题争层级 */
.page-nm .nm-twin-idiom{font-size:14px;font-weight:400;color:var(--nm2)}
.page-nm .nm-twin-pair{display:flex;align-items:stretch;gap:var(--sp-2);flex-wrap:wrap}
/* 每名一框＝一张卡内小框，与外层同名小框并列，两框之间由 ＋ 分隔，故不留底色也不画线 */
.page-nm .nm-twin-one{flex:1 1 160px;min-width:0;padding:var(--sp-2) 0;background:transparent;border-top:0}
/* 一卡两名，名字须让位给右侧两个按钮：按钮行允许折行，字号由基础条给，不抢章节层级 */
.page-nm .nm-twin-one .nm-gen-top{flex-wrap:wrap;row-gap:var(--sp-1)}
.page-nm .nm-twin-join{align-self:center;font-size:var(--tier3);color:var(--nm2)}
/* 指名贬义成语时的界面提醒取本页警示红：自动择优不列贬义条目，指名保留者须在此注明 */
.page-nm .nm-twin-warn{color:var(--red)}
/* 名卦卦符取本页主体色：通用件 .hex-name .hx 取全站鎏金，本页为单色轴，须落到本页色族 */
.page-nm .hex-name{font-size:var(--tier3)}
.page-nm .hex-name .hx{font-size:18px;letter-spacing:2px;color:var(--nm2)}
/* 每名一框的操作按钮（详排全析、收藏），与起名推荐名单同款 */
.page-nm .nm-twin-act{display:flex;flex-wrap:wrap;gap:var(--sp-2)}
/* 联名法的指定字词行：下拉与输入框行内并排。
 * 选择器须带 #fTwinFix 与页类双层：本字段位于 .form-row 内，
 *   .form-row .field input/select（0, 2, 1）会压过 .nm-twin-shared-row>input（0, 1, 1），
 *   使 max-width 失效、输入框按 size 属性撑宽，整行折成三层。
 * 宽度：下拉按内容自适应（约 4 字）；输入框宽度由 syncTwinFix 按联名法取定值
 *   （成语 145px、合体字 120px、共用字 4.5em、排行字与同义字各 115px），不随字段伸缩，见 xingming.html。 */
.page-nm #fTwinFix .nm-twin-shared-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--sp-2)}
.page-nm #fTwinFix .nm-twin-shared-row>select,.page-nm #fTwinFix .nm-twin-shared-row>input{flex:0 0 auto;min-width:0;max-width:none;height:30px;padding:4px 12px;font-size:13px;line-height:1.35;border-radius:0;border:1px solid var(--nm-line);background:var(--card);color:var(--nm-deep);box-sizing:border-box}
.page-nm #fTwinFix .nm-twin-shared-row>select{width:auto}
.page-nm #fTwinFix .nm-twin-shared-row>input{width:100%;letter-spacing:.05em}
/* 详排页返回推荐名单条位间距 */
.page-nm .nm-back-link{font-size:13px;color:var(--nm2);text-decoration:none}
.page-nm .nm-back-link:hover{text-decoration:underline}
/* 五行输出配额选择器：五行各一小选框，与推荐数量框同款式，空间不足自然换行 */
.page-nm .nm-wxrow{display:flex;gap:var(--sp-1);flex-wrap:wrap}
.page-nm .nm-wxrow .wx{display:flex;flex-direction:column;gap:2px;align-items:center;font-size:12px;color:var(--nm-ink2)}
.page-nm .nm-wxrow .wx label{white-space:nowrap}
.page-nm .nm-wxrow .wx select{width:52px;height:30px;padding:0 6px;font-size:13px}
/* 输出区静态样式 */
.page-nm .nm-center{text-align:center}
/* 原 .nm-mt6（6px），归一到 4px 栅格后改档位命名，与 --sp-1 对应 */
.page-nm .nm-mt-1{margin-top:var(--sp-1)}
.page-nm .nm-dim{color:var(--nm-ink2)}
/* 速查表命中行：只作暗金着色，不叠字重——高亮靠色不靠字重，与本页其余强调一致 */
.page-nm .nm-hl{color:var(--nm2)}
.page-nm .nm-td-l{text-align:left}
/* 避讳与字辈核查行：与同位置的 .ly-zh-p、相邻的 .nm-hits 同取同组档 --sp-2 */
.page-nm .nm-guard-p{margin:var(--sp-2) 0 0}
.page-nm .nm-hits{margin-top:var(--sp-2)}
.page-nm .nm-link-s{font-size:12px}
/* 出生日期框：按内容加左右对称间距定 96px（日期组件 .dt-wrap 为 flex，亦禁其伸展） */
.page-nm #fBirth .field input[type="text"].dt-input{width:96px;flex:0 0 96px}
.page-nm .nm-suppl{margin-top:var(--sp-2);background:transparent}
/* 异常堆栈（仅在分析抛错时出现）：等宽直排、限高可滚，取本页警示红 */
.page-nm .nm-err{text-align:left;font-size:var(--tier4);color:var(--red2);white-space:pre-wrap;max-height:300px;overflow:auto}

/* 移动端 */
@media(max-width:640px){
  /* 表单字段流式自适应：一律「按内容定宽、绝不拉伸铺满」——
   * 字段 flex-grow 归 0（不参与剩余空间分配），输入框 width:auto（跟随自身内容与桌面定宽），
   * 容器 flex-wrap 让字段像文字一样流式排布，能放几个放几个。 */
  .page-nm .form-row{gap:var(--sp-2)}
  /* 出生地组上线与上方控件底的净距须为 12px（第二条：相邻平行线不得小于 12 像素）：
     本行在窄屏的 row-gap 给 8px，余下 4px 由本组自带的顶距补足，两处相加恰为 12px */
  .page-nm .birth-group{margin-top:var(--sp-1)}
  .page-nm .form-row>.field{flex:0 1 auto;width:auto;min-width:0;max-width:100%;margin:0}
  .page-nm .form-row>.field>input,
  .page-nm .form-row>.field>select{width:auto;min-width:0;max-width:100%}
  .page-nm .form-row>.field.chk{flex:0 0 auto;min-width:0}
  .page-nm .form-row>.field.chk>input{width:auto}
  /* 子时算法：选项文案长（晚子时（23点归次日）），移动端最小 100、内容自适应、跟随父级 max-width:100%，不另设上限 */
  .page-nm .form-row #nmBZi{width:auto;min-width:100px}
  /* 字辈字：名首字下拉与字辈输入框同行在后，两框皆按内容宽，
   * 字段宽度回到 auto 由两者相加决定，不沿用桌面 132px 定值把框撑长 */
  .page-nm .form-row #fBeizi{flex:0 0 auto;width:144px;max-width:100%}
  .page-nm .form-row #fBeizi #nmBzPos{width:auto;min-width:64px}
  .page-nm .form-row #fBeizi #nmBeizi{width:auto;min-width:44px;max-width:64px}
  /* 五行配额一行五框：按内容排，不铺满 */
  .page-nm .nm-wxrow{gap:var(--sp-2)}
  .page-nm .nm-wxrow .wx{flex:0 1 auto;min-width:0}
  .page-nm .nm-wxrow .wx select{width:auto;min-width:0}
  /* 推荐名单窄屏单列：311px 下分两列会把卡压到 148px，名字与字义两行都排不下；
     联名卡一卡装两名，同样必须单列，否则两名挤在一起读不出关系 */
  .page-nm .nm-gen-grid{grid-template-columns:1fr}
  .page-nm .nm-gen-grid.nm-twin-list{grid-template-columns:1fr}
  /* 名字恒单行（字号与单行由基础条给）；装不下时详排按钮自动折到名字下方，名字与按钮互不挤压 */
  .page-nm .nm-gen-top{flex-wrap:wrap;row-gap:var(--sp-1)}
  /* 五格取数卡信息量最大（数、断语、宫位、五行、吉凶各一行），窄屏按两列入行：
     按零基准等分会被压到不足断语在 keep-all 下的最小片段，文字溢到邻卡上 */
  .page-nm .mod-body .lr-kes.nm-ge-kes .lr-ke{flex:1 1 calc(50% - 8px);max-width:calc(50% - 8px)}
  /* 字义字源表：窄屏收窄词列与寓意列 */
  .page-nm .nm-word-tbl thead th.nm-word-term{width:64px}
  .page-nm .nm-word-tbl thead th.nm-word-mean{width:38%}
  /* 两字徽章与吉凶标签不折行（写成两个单字各占一行属排版事故） */
  .page-nm .zr-tag,.page-nm .nm-jx{white-space:nowrap}
  /* 表首列不折行：内容区被压到十几像素时两字键名（天格、总格）被拆成两个单字 */
  .page-nm .xlr-table td:first-child{white-space:nowrap}
  /* 五格断语与郡望列举按标点整段换行，末字不再独占一行 */
  .page-nm .lr-ke-d,.page-nm .xlr-table td{word-break:keep-all}
}

/* 窄屏表单：字辈与五行配额两组字段流 */
@media (max-width:600px){
  /* 字辈字段为 label+下拉+输入框横排，r2 的 48% 两列宽装不下会把输入框顶出框外，独占整行；
     字辈字段定基准宽，可与名字字数同行；下拉 84px 保三字不截断，输入框 44px 单字宽 */
  .page-nm #fBeizi{flex:1 1 140px}
  .page-nm #nmBzPos{width:84px}
  .page-nm #nmBeizi{width:44px}
  .page-nm #fBeizi input{flex:0 0 44px;min-width:0;width:44px}
  /* 五行配额组整行：r2 的 48% 半行宽只装得下 3 个选框，折成多行撑高页面 */
  .page-nm #fGenWx{flex:1 1 100%}
  /* 名字字数/推荐数量：字段与下拉均按内容自适应定宽，摆脱 48% 半行，可与字辈字同排 */
  .page-nm #fGenLen,.page-nm #fGenCnt{flex:0 0 auto;width:auto;max-width:none}
  .page-nm #nmGenLen{width:72px}
  .page-nm #nmGenCnt{width:80px}
}

/* 打印 */
@media print{
  .page-nm .mod,.page-nm .info-box,.page-nm .mh-ref,.page-nm .xlr-table{background:var(--card) !important;box-shadow:none !important;border-color:var(--line) !important}
}


/* ===== 占星术页 午夜蓝、星银 主题（xingzhan.html，.page-xz 作用域） =====
   对齐其余主题页，配色独立换为 午夜蓝（深空星图）主色 + 星银点缀；
   上升点红为占星标准符号色保留，吉凶语义色保留；按钮无彩色晕染 */
.page-xz{
  --xz:#2f4a75;
  --xz2:#243b5e;
  --xz-deep:#182943;
  --xz-ink:#36414f;
  --xz-silver:#8a97ab;
  --xz-line:#ccd6e3;
  --xz-tint:#eef3f9;
  --xz-hl:#f7fafc;  /* 提示淡底：表内当前行与指向行，比纸淡底更浅一档 */
  --xz-ink2:#4f5b6d;  /* 次级字色：卷首说明、副注、标注 */
  --xz-serif:var(--font-serif);  /* 卷首宋体：页头与题名 */
  /* 圆盘令牌：星盘线弧取主色，宫号与星座行星按墨色三档分深浅，当令（上升）取重档 */
  --wheel-line:var(--xz-line);
  --wheel-arc:var(--xz);
  --wheel-cur:var(--xz);
  --wheel-ink:var(--xz-ink);
  --wheel-ink2:var(--xz-ink2);
  --wheel-deep:var(--xz-deep);
  --wheel-core:var(--xz-tint);
  --wheel-h4:var(--xz2);
  --wheel-serif:var(--xz-serif);
  --wheel-good:var(--green);
  --wheel-bad:var(--red);
  --gold2:var(--xz2);
  --gold:var(--xz);
  --gold-brown:var(--xz2);
  --gold-bg:var(--xz-tint);
  --line:var(--xz-line);--ink:var(--xz-ink)
}

/* 日期弹框主题 */
.dtm-xz{--tk:#2f4a75;--tk2:#243b5e;--tk-ink:#36414f;--tk-line:#ccd6e3;--tk-tint:#eef3f9}

/* ===== 七政四余页 曜石、鎏金 主题（qizheng.html，.page-qz 作用域） =====
   对齐其余主题页，配色独立换为 曜石黑紫（古星图夜幕）主色 + 鎏金（七政化曜金线）点缀；
   旺蓝/陷红/乐绿/闲褐等庙旺语义色与命红线、身线蓝保留；按钮无彩色晕染 */
.page-qz{
  --qz:#3b3054;
  --qz2:#2d2440;
  --qz-deep:#1d1730;
  --qz-ink:#3a3547;
  --qz-line:#d8d2e2;
  --qz-tint:#f3f1f8;
  --qz-hl:#f9f8fc;  /* 提示淡底：表内当前行与指向行，比纸淡底更浅一档 */
  --qz-ink2:#584f6d;  /* 次级字色：卷首说明、副注、标注 */
  --qz-serif:var(--font-serif);  /* 卷首宋体：页头与题名 */
  /* 圆盘令牌：星盘线弧取主色，宫号与星曜按墨色三档分深浅，当令取重档 */
  --wheel-line:var(--qz-line);
  --wheel-arc:var(--qz);
  --wheel-cur:var(--qz);
  --wheel-ink:var(--qz-ink);
  --wheel-ink2:var(--qz-ink2);
  --wheel-deep:var(--qz-deep);
  --wheel-core:var(--qz-tint);
  --wheel-h4:var(--qz2);
  --wheel-serif:var(--qz-serif);
  --wheel-good:var(--green);
  --wheel-bad:var(--red);
  /* 十一曜庙旺六档：星曜字色即庙旺，色值只在此处（盘内 class 取用，不写在行内） */
  --qz-庙:var(--green);
  --qz-旺:#1b6fa8;
  --qz-乐:#2e7d32;
  --qz-平:#5a4632;
  --qz-闲:#8a6d2f;
  --qz-陷:#b3261e;
  --gold2:var(--qz2);
  --gold:var(--qz);
  --gold-brown:var(--qz2);
  --gold-bg:var(--qz-tint);
  --line:var(--qz-line);--ink:var(--qz-ink)
}


/* 日期弹框主题（字面量，弹框在 body 下不依赖页内变量） */
.dtm-qz{--tk:#3b3054;--tk2:#2d2440;--tk-ink:#3a3547;--tk-line:#d8d2e2;--tk-tint:#f3f1f8}

/* ===== 奇门遁甲页 玄圭、洛书 主题（qimen.html，.page-qm 作用域） =====
   对齐其余主题页，配色独立换为 玄圭墨青（洛书九宫古玉）主色 + 洛书朱砂点缀；
   九宫吉凶语义色（吉绿/凶红/中平灰）、阴阳兵旗徽章、值符金/值使绿锚定全部保留；按钮无彩色晕染 */
.page-qm{
  --qm:#2d4f5c;
  --qm2:#213b45;
  --qm-deep:#172d36;
  --qm-ink:#33424a;
  --qm-cinnabar:#a8402e;
  --qm-line:#ccd9dc;
  --qm-tint:#eef4f5;
  --qm-ink2:#4f656d;  /* 次级字色：卷首说明、副注、标注 */
  --qm-serif:var(--font-serif);  /* 卷首宋体：页头与题名 */
  --gold2:var(--qm2);
  --gold:var(--qm);
  --gold-brown:var(--qm2);
  --gold-bg:var(--qm-tint);
  --line:var(--qm-line);--ink:var(--qm-ink)
}


/* 日期弹框主题（字面量） */
.dtm-qm{--tk:#26424d;--tk2:#1b333c;--tk-ink:#33424a;--tk-line:#ccd9dc;--tk-tint:#eef4f5}



/* ===== 大六壬页 桦木、式盘 主题（daliuren.html，.page-dlr 作用域） =====
   内容量较轻的页面，装饰密度收敛：保留变量、基础配色、交互必需（hover、弹框），删细粒度面板与装饰层 */
.page-dlr{
  --dlr:#6b4e33;
  --dlr2:#543c28;
  --dlr-deep:#3a2919;
  --dlr-ink:#443a30;
  --dlr-brass:#a87832;
  --dlr-line:#e4dacd;
  --dlr-tint:#f7f2ea;
  --dlr-ink2:#6d5e4f;  /* 次级字色：卷首说明、副注、标注 */
  --dlr-serif:var(--font-serif);  /* 卷首宋体：页头与题名 */
  --gold2:var(--dlr2);
  --gold:var(--dlr);
  --gold-brown:var(--dlr2);
  --gold-bg:var(--dlr-tint);
  --line:var(--dlr-line);--ink:var(--dlr-ink)
}


/* 日期弹框主题（字面量） */
.dtm-dlr{--tk:#6b4e33;--tk2:#543c28;--tk-ink:#443a30;--tk-line:#ddd0c0;--tk-tint:#f7f2ea}


/* ===== 测字页 碑帖赭 主题（cezi.html，.page-cz 作用域） =====
   测字拆字、碑帖翰墨之象：碑拓赭主色 + 鎏金点缀 + 宣纸淡底 */
.page-cz{
  --cz:#7d5638;          /* 碑拓赭主色 */
  --cz2:#61432a;         /* 深赭：hover、强调 */
  --cz-deep:#3b2b1b;     /* 墨赭：大标题字色 */
  --cz-ink:#453a2e;      /* 墨灰：正文字色 */
  --cz-gold:#b8923e;     /* 鎏金点缀 */
  --cz-line:#e3d5c2;     /* 宣纸浅线 */
  --cz-tint:#f7f0e4;     /* 宣纸淡底 */
  --cz-ink2:#6d5c4f;  /* 次级字色：卷首说明、副注、标注 */
  --cz-serif:var(--font-serif);  /* 卷首宋体：页头与题名 */
  --gold2:var(--cz2);
  --gold:var(--cz);
  --gold-brown:var(--cz2);
  --gold-bg:var(--cz-tint);
  --line:var(--cz-line);--ink:var(--cz-ink)
}


/* ============ 测字页（cezi.html）.cz- 规范段 ============ */
/* 字象总览：结果区首块，透明底加上下细线（21.11），三区布局：大字、元数据、评级 */
/* 左：大字（楷体、衬底框、角标拼音） */
/* 中：元数据网格（两列、标签小字暗金、值正文） */
/* 右：评级区（徽章+分数+可视化条） */
/* 评级明细：四行权重条（名称+分数+条+说明悬浮） */
/* 拆解/模块卡通用：部件徽章与标签 */
/* 行文内嵌的字框与前后文字留出呼吸空隙（添笔成字、摘字等句式）；字组容器内走 gap 不另加外距 */
/* 行文内联的徽标（活拆、摘字、假借行）：与前后文字留缝；cz-chai-row 为 flex 已有 gap，排除防叠加 */
/* 断曰：楷体居中、引号装饰 */
/* 断曰印：朱砂方章：红底白字、内嵌白文环、微倾钤盖之态 */
/* 卦象符号 */
/* 卦象区行距：同组各条断语间留 6px */
/* 次级注文：12px 素色，用于评级抬头、活拆说明 */
/* 页首使用提示：贴表单下沿收紧上距 */
.cz-sub-note{margin:var(--sp-1) 2px 0}
/* 拆解正文与附属句格行（取格、底本、双句格、观梅、活拆、摘字） */
/* 拆解卡内以虚线分节（假借转注、活拆变象、摘字）：以 .cz-chai 自身为分节单元 */
/* 主断徽章：赭色淡底区别于其余描边式标签 */
/* 底本测例说明段：13px 素色，1.7 行高 */
/* 数理口径与相字十法底注：12px 素色 */
/* 十法说明表：13px 全宽，法名首列定宽 */
/* 页末免责注记：与末模块留 10px */
/* 校验提示：与表单留 12px */
/* 观梅字象行、活拆行、摘字行共用 14px 正文；其内标签留缝由 .cz-chai div>.cz-tag 承担 */

/* ===== 太乙神数页 紫微垣、天青 主题（taiyi.html，.page-ty 作用域） =====
   太乙居紫微垣（天帝之星）：天青蓝紫主色 + 垣墙银金点缀；
   十六宫神将（太乙金/文臣绿/武臣赤）、八门吉凶、九宫分野语义色保留；轻内容页装饰密度收敛 */
.page-ty{
  --ty:#3d4d7a;
  --ty2:#303d63;
  --ty-deep:#212b47;
  --ty-ink:#383d4d;
  --ty-silver:#8e9aad;
  --ty-line:#ccd2e0;
  --ty-tint:#eef1f7;
  --ty-ink2:#4f576d;  /* 次级字色：卷首说明、副注、标注 */
  --ty-serif:var(--font-serif);  /* 卷首宋体：页头与题名 */
  --ink:var(--ty-ink);
  --ink2:var(--ty-ink2);
  --gold2:var(--ty2);
  --gold:var(--ty);
  --gold-brown:var(--ty2);
  --gold-bg:var(--ty-tint);
  --line:var(--ty-line)
}


/* 日期弹框主题（字面量） */
.dtm-ty{--tk:#3d4d7a;--tk2:#303d63;--tk-ink:#3b4152;--tk-line:#ccd2e0;--tk-tint:#eef1f7}


/* 底本测例：整模块折叠、默认关闭 */
/* 底本测例、相字十法说明折叠卡：二级折叠区统一形制（同 .mh-ref：收起态上下两线、展开态只留上线） */
.cz-fold{margin:var(--sp-4) 0 0;border:0;border-top:1px solid var(--cz-line);border-radius:0;padding:var(--sp-3) 0;background:transparent;overflow:hidden}
.cz-fold:not([open]){border-bottom:1px solid var(--cz-line)}
.cz-fold>summary{list-style:none;cursor:pointer;font-family:var(--font-serif);font-weight:400;color:var(--cz2);font-size:var(--tier3);letter-spacing:.1em;line-height:1.5;display:flex;align-items:center;gap:var(--sp-2);user-select:none}
.cz-fold>summary::-webkit-details-marker{display:none}
.cz-fold>summary::before{content:'▾';font-size:12px;color:var(--cz-gold);transition:transform .15s}
.cz-fold[open]>summary::before{transform:rotate(180deg)}
.cz-case-table td{border-bottom:1px dashed var(--line);padding:8px;vertical-align:top;color:var(--ink)}
.cz-case-table .cz-zi{font-family:var(--font-serif);font-size:22px;color:var(--gold2);text-align:center;white-space:nowrap}
/* 周易经文速查（页内折叠卡）：外框与另两折叠卡同构，卦卡线色取页内宣纸线 */
.cz-jwref{text-align:left}
.cz-jwref .jw-item{border-color:var(--cz-line)}
/* ===== 周易经文速查共享组件（六爻、梅花、测字、铁板四处共用，jingwen-ref.js 渲染） =====
   六十四卦卡：卦画、卦名、宫位、卦辞，展开见彖传、大象与六爻爻辞（含小象）；顶部按卦名与经文关键字检索 */
.jw-search{display:flex;align-items:center;gap:var(--sp-2);margin-top:var(--sp-2)}
.jw-input{flex:1;min-width:0;padding:var(--sp-1) var(--sp-2);border:1px solid var(--line);border-radius:0;background:var(--card,#fff);color:var(--ink);font-size:13px;font-family:inherit;line-height:1.35}
.jw-input:focus{border-color:var(--gold2);outline:none}
.jw-count{font-size:12px;color:var(--ink2);white-space:nowrap}
.jw-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--sp-2);margin-top:var(--sp-2)}
.jw-item{border:1px solid var(--line);border-radius:0;padding:var(--sp-2) var(--sp-2);background:transparent;cursor:pointer;transition:box-shadow .15s}
.jw-item:hover{border-color:var(--gold2)}
.jw-item.jw-open{box-shadow:0 2px 10px rgba(0,0,0,.08)}
.jw-top{display:flex;align-items:center;gap:var(--sp-2)}
.jw-sym{font-size:var(--tier1);line-height:1.2}
.jw-name{font-size:var(--tier3);color:var(--gold2)}
.jw-palace{font-size:12px;color:var(--ink2);margin-left:auto}
.jw-ci{font-size:12px;color:var(--ink2);line-height:1.45;margin-top:var(--sp-1)}
.jw-detail{display:none;margin-top:var(--sp-1);padding-top:var(--sp-1);border-top:1px dashed var(--line)}
.jw-open .jw-detail{display:block}
.jw-row{display:flex;gap:var(--sp-1);font-size:12px;color:var(--ink2);line-height:1.5;margin:2px 0}
.jw-n{flex:none;min-width:2.5em;color:var(--gold2)}
.jw-t{flex:1;min-width:0}
.jw-xx{display:block;font-style:normal;opacity:.75}
@media(max-width:640px){
  .jw-grid{grid-template-columns:repeat(2,1fr)}
  .jw-item{padding:var(--sp-2) var(--sp-2)}
}

/* 日期弹框主题（字面量） */
.dtm-ly{--tk:#9c5f24;--tk2:#7a4a1a;--tk-ink:#463a2c;--tk-line:#e8d9c2;--tk-tint:#fbf3e7}


/* ============================================================
 * 民俗占法页（minsu.html）：全部规则限定 .ms-page 作用域，
 * 避免与其他页冲突；徽标与卡片沿页面通例素色。
 * ============================================================ */
/* 农历年（数字框）：按四位数年份定 76px（含数字步进器的最小不裁切宽，60px 会裁切年份）；
   .field 为 flex 列容器，align-self:flex-start 使其不随字段拉伸 */
/* 四模块头卡 */
/* 徽标 */
/* 犯月判定行 */
/* 歌诀块 */
/* 本命佛卡 */
/* 本命佛内附注去框化：仅用细分隔线分节，避免外层框内再套多个小框 */
/* 八星结果行 */
/* 附注卡 */
/* 错误提示 */
/* 移动端：键值表首列定宽，长表横滚由 .ms-tbl-wrap 承载 */
/* ===== 梅花易数页 梅花、宫粉 主题（meihua.html，.page-mh 作用域） =====
   梅花易数以观梅起卦、体用生克为核心，主题取宫粉梅花色（宫粉主色、深梅强调、梅墨标题、梅粉淡底），
   与站内其他页面主题色区分；五行语义色与吉凶 luck 色保留 */


/* 日期弹框主题（字面量） */
.dtm-mh{--tk:#b34a6d;--tk2:#8e3350;--tk-ink:#483641;--tk-line:#ecdbe2;--tk-tint:#fbf1f5}

/* ===== 小六壬页 掌诀、苍青 主题（xiaoliuren.html，.page-xlr 作用域） =====
   小六壬以掐指掌诀、六宫流转为核心，主题取东方青龙之苍青色（苍青主色、深苍青强调、青墨标题、青纸淡底），
   与站内其他页面主题色区分；六神吉凶 luck 色与五行语义色保留 */
.page-xlr{
  --xlr:#4f7047;          /* 苍青主色 */
  --xlr2:#3c5a38;         /* 深苍青：hover与强调 */
  --xlr-deep:#2a3b26;     /* 青墨：大标题字色 */
  --xlr-ink:#3c4438;      /* 青灰墨：正文字色 */
  --xlr-blossom:#8aa03f;  /* 青黄点缀（装饰用） */
  --xlr-line:#d3e2cf;     /* 青浅线 */
  --xlr-tint:#f1f5e9;     /* 青纸淡底 */
  --xlr-ink2:#556d4f;  /* 次级字色：卷首说明、副注、标注 */
  --xlr-serif:var(--font-serif);  /* 卷首宋体：页头与题名 */
  --gold2:var(--xlr2); --gold:var(--xlr); --gold-brown:var(--xlr2); --gold-bg:var(--xlr-tint);
  --line:var(--xlr-line);--ink:var(--xlr-ink)
}


/* 日期弹框主题（字面量） */
.dtm-xlr{--tk:#4f7047;--tk2:#3c5a38;--tk-ink:#3c4438;--tk-line:#dbe2cf;--tk-tint:#f1f5e9}

/* ===== 灵签页 金符、签纸 主题（lingqian.html，.page-lq 作用域） =====
   灵签以庙堂求签、黄纸签文、签筒签诗为核心，主题取庙签金符色（符黄主色、深符黄强调、签墨标题、签纸淡底），
   与站内其他页面主题色区分；签级吉凶取全站语义二值色 */
.page-lq{
  --lq:#7f6c1a;          /* 符黄主色 */
  --lq2:#665613;         /* 深符黄：hover与强调 */
  --lq-deep:#453a10;     /* 签墨：大标题字色 */
  --lq-ink:#47422f;      /* 签墨灰：正文字色 */
  --lq-line:#e8e2c9;     /* 签纸浅线 */
  --lq-tint:#f9f5e7;     /* 签纸淡底 */
  --lq-ink2:#6d684f;  /* 次级字色：卷首说明、副注、标注 */
  --lq-serif:var(--font-serif);  /* 卷首宋体：页头与题名 */
  --foot-ink:var(--lq2);  /* 页脚注记：本页主色深档 */
  --gold2:var(--lq2); --gold:var(--lq); --gold-brown:var(--lq2); --gold-bg:var(--lq-tint);
  --line:var(--lq-line);--ink:var(--lq-ink)
}


/* 日期弹框主题（字面量） */
.dtm-lq{--tk:#7f6c1a;--tk2:#665613;--tk-ink:#47422f;--tk-line:#e4dcbe;--tk-tint:#f9f5e7}

/* ===== 塔罗牌页 玄紫、星芒 主题（tarot.html，.page-tr 作用域） =====
   塔罗以玄秘抽牌、牌阵牌义为核心，主题取塔罗牌面玄紫（card 牌名用 #3a2c4d 玄紫系，页内本就同族）
   作主色：玄紫主色、深玄紫强调、玄墨标题、玄灰墨正文、星芒亮紫点缀；
   与站内其他页面主题色区分（紫微斗数偏红紫、七政四余偏靛黑，均不同）；
   牌面奶油金底与逆位紫、正逆绿红语义色保留 */
.page-tr{
  --tr:#4a3a8a;          /* 玄紫主色 */
  --tr2:#3a2d6e;         /* 深玄紫：hover与强调 */
  --tr-deep:#241c4a;     /* 玄墨：大标题字色 */
  --tr-ink:#37334a;      /* 玄灰墨：正文字色 */
  --tr-starlight:#9a86c4;/* 星芒亮紫（装饰用） */
  --tr-line:#ddd6e8;     /* 玄紫浅线 */
  --tr-tint:#f3f0f9;     /* 玄紫淡底 */
  --tr-ink2:#554f6d;  /* 次级字色：卷首说明、副注、标注 */
  --tr-serif:var(--font-serif);  /* 卷首宋体：页头与题名 */
  --gold2:var(--tr2); --gold:var(--tr); --gold-brown:var(--tr2); --gold-bg:var(--tr-tint);
  --line:var(--tr-line);--ink:var(--tr-ink)
}


/* 日期弹框主题（字面量，本页无日期输入，按全站口径一并提供） */
.dtm-tr{--tk:#4a3a8a;--tk2:#3a2d6e;--tk-ink:#37334a;--tk-line:#ddd6e8;--tk-tint:#f3f0f9}

/* ===== 五运六气页 竹青、杏林 主题（yunqi.html，.page-yq 作用域） =====
   运气学说出自《黄帝内经》，医家称杏林、青囊，主题取竹青主色
   （竹青主色、深竹青强调、竹墨标题、青灰墨正文、竹纸淡底），
   与站内近邻色区分：苍绿（小六壬 103°）、松灰绿（阴宅 110°）、松绿（八字 155°）各距二十度以上；
   客主加临相得不相得的行底为语义色淡档，随本页令牌族给出 */
.page-yq{
  --yq:#357247;            /* 竹青主色 */
  --yq2:#275737;           /* 深竹青：hover与强调 */
  --yq-deep:#1d3f27;       /* 竹墨：大标题字色 */
  --yq-ink:#3c4a40;        /* 青灰墨：正文字色 */
  --yq-line:#d6e6da;       /* 竹青浅线 */
  --yq-tint:#f1f7f3;       /* 竹纸淡底 */
  --yq-ink2:#586d60;       /* 次级字色：卷首说明、副注、标注 */
  --yq-serif:var(--font-serif);  /* 卷首宋体：页头与题名 */
  --yq-good-bg:rgba(46,125,50,.07);   /* 相得行淡底：语义绿淡档 */
  --yq-bad-bg:rgba(184,74,58,.07);    /* 不相得行淡底：语义红淡档 */
  /* 圆盘令牌（通用件 .wheel 用）：弧带、指针与选中态一律取主体色竹青，
     盘心填色取本页纸淡底，吉凶二值另走全站 --green / --red（客气六步盘与客主加临盘共用） */
  --wheel-serif:var(--yq-serif);
  --wheel-line:var(--yq-line);
  --wheel-arc:var(--yq);
  --wheel-ink:var(--yq-ink);
  --wheel-deep:var(--yq-deep);
  --wheel-ink2:var(--yq-ink2);
  --wheel-cur:var(--yq);
  --wheel-core:var(--yq-tint);
  --wheel-h4:var(--yq2);
  --wheel-good:var(--green);
  --wheel-bad:var(--red);
  --gold2:var(--yq2); --gold:var(--yq); --gold-brown:var(--yq2); --gold-bg:var(--yq-tint);
  --ink2:var(--yq-ink2);   /* 全站次级字令牌在本页一并落到本页次级字档 */
  --line:var(--yq-line);--ink:var(--yq-ink)
}

/* 日期弹框主题（字面量，本页无日期输入，按全站口径一并提供） */
.dtm-yq{--tk:#357247;--tk2:#275737;--tk-ink:#3c4a40;--tk-line:#d6e6da;--tk-tint:#f1f7f3}

/* ===== 手相页 紫棠、檀柱 主题（shouxiang.html，.page-sx 作用域） =====
   手相以观掌纹形色为核心，主题取紫棠主色（紫棠主色、深紫棠强调、棠墨标题、紫灰墨正文、棠纸淡底），
   与站内近邻色区分：深紫（七政 262°）、紫红（合婚 303°）各距十七度以上；
   掌纹三线取全站语义色（红＝天纹、墨＝人纹、绿＝地纹），吉凶计分沿用语义二值色 */
.page-sx{
  --sx:#6b4a7d;            /* 紫棠主色 */
  --sx2:#573a68;           /* 深紫棠：hover与强调 */
  --sx-deep:#362342;       /* 棠墨：大标题字色 */
  --sx-ink:#463c50;        /* 紫灰墨：正文字色 */
  --sx-line:#ddd3e4;       /* 紫棠浅线 */
  --sx-tint:#f5f0f8;       /* 棠纸淡底 */
  --sx-ink2:#635670;       /* 次级字色：卷首说明、副注、标注 */
  --sx-serif:var(--font-serif);  /* 卷首宋体：页头与题名 */
  --gold2:var(--sx2); --gold:var(--sx); --gold-brown:var(--sx2); --gold-bg:var(--sx-tint);
  --ink2:var(--sx-ink2);   /* 全站次级字令牌在本页一并落到本页次级字档 */
  --line:var(--sx-line);--ink:var(--sx-ink)
}

/* 日期弹框主题（字面量，本页无日期输入，按全站口径一并提供） */
.dtm-sx{--tk:#6b4a7d;--tk2:#573a68;--tk-ink:#463c50;--tk-line:#ddd3e4;--tk-tint:#f5f0f8}

/* ===== 面相页 梅紫、檀柱 主题（mianxiang.html，.page-mian 作用域） =====
   面相与手相为相术双页，同取紫族而分居色相环两侧：手相紫棠 279°、本页梅紫 324°，
   与站内近邻色区分：藕荷绛紫（合婚 303°）距 21°、绛朱（民俗 357°）距 33°、帝星紫（紫微 275°）距 49°；
   十二宫位标点取吉凶计分语义二值色，五官线条取本页次级字档 */
.page-mian{
  --mian:#7c4666;            /* 梅紫主色 */
  --mian2:#623751;           /* 深梅紫：hover与强调 */
  --mian-deep:#481e37;       /* 梅墨：大标题字色 */
  --mian-ink:#46353f;        /* 梅灰墨：正文字色 */
  --mian-line:#e4d3dd;       /* 梅紫浅线 */
  --mian-tint:#f6eff3;       /* 梅纸淡底 */
  --mian-ink2:#705164;       /* 次级字色：卷首说明、副注、标注 */
  --mian-serif:var(--font-serif);  /* 卷首宋体：页头与题名 */
  --gold2:var(--mian2); --gold:var(--mian); --gold-brown:var(--mian2); --gold-bg:var(--mian-tint);
  --ink2:var(--mian-ink2);   /* 全站次级字令牌在本页一并落到本页次级字档 */
  --line:var(--mian-line);--ink:var(--mian-ink)
}

/* 日期弹框主题（字面量，本页无日期输入，按全站口径一并提供） */
.dtm-mian{--tk:#7c4666;--tk2:#623751;--tk-ink:#46353f;--tk-line:#e4d3dd;--tk-tint:#f6eff3}

/* ===== 雷诺曼卡页 苔青、苜蓿 主题（lenormand.html，.page-ln 作用域） =====
   雷诺曼以 36 张直白预言卡、四叶草苜蓿小幸运为记，主题取苔青（四叶草绿）主色，
   与站内其他页面主题色区分（八字松青、姓名玉青、小六壬苍青均不同族）；
   牌名编号按古典牌面墨印改深墨（传统法系牌名黑体铅印，非红），牌面 emoji 图保留 */
.page-ln{
  --ln:#6b7a2c;          /* 苔青主色（四叶草绿） */
  --ln2:#55641f;         /* 深苔青：hover与强调 */
  --ln-deep:#353f12;     /* 苔墨：大标题字色 */
  --ln-ink:#3d4330;      /* 苔灰墨：正文字色 */
  --ln-accent:#9aa83f;   /* 嫩芽亮绿（装饰用） */
  --ln-line:#e0e4c8;     /* 苔青浅线 */
  --ln-tint:#f6f7ea;     /* 苔纸淡底 */
  --ln-ink2:#676d4f;  /* 次级字色：卷首说明、副注、标注 */
  --ln-serif:var(--font-serif);  /* 卷首宋体：页头与题名 */
  --gold2:var(--ln2); --gold:var(--ln); --gold-brown:var(--ln2); --gold-bg:var(--ln-tint);
  --line:var(--ln-line);--ink:var(--ln-ink)
}


/* 日期弹框主题（字面量，本页无日期输入，按全站口径一并提供） */
.dtm-ln{--tk:#6b7a2c;--tk2:#55641f;--tk-ink:#3d4330;--tk-line:#e0e4c8;--tk-tint:#f6f7ea}

/* ===== 民俗占法页 绛朱主题（minsu.html，.page-ms 作用域） =====
   民俗以称骨、犯月、本命佛、号码吉凶四法为体，主题取绛朱（朱批印泥、绛纸朱印）主色，
   与站内其他页面主题色区分（择日朱批偏素笺暖米、皇极绛帐偏深、本页绛朱为印泥正红族）；
   吉凶语义色（宜绿/凶红徽标）保留；已有 .ms-page 段（本文件前部）结构规则不动，仅变量与配色随本段覆写 */
.page-ms{
  --ms:#b23a3f;          /* 绛朱主色 */
  --ms2:#7a2529;         /* 深绛朱：hover/强调（对白底 5.7:1 达 AA，修小字发虚） */
  --ms-deep:#48181c;     /* 朱墨：大标题字色 */
  --ms-ink:#3d3234;      /* 朱灰墨：正文字色（对白底 5.4:1 达 AA，修小字发虚） */
  --ms-line:#e6d3d6;     /* 绛浅线 */
  --ms-tint:#fbf2f3;     /* 绛纸淡底 */
  --ms-ink2:#6d4f50;  /* 次级字色：卷首说明、副注、标注 */
  --ms-serif:var(--font-serif);  /* 卷首宋体：页头与题名 */
  /* 残留金色变量重映射：页内 var(--gold2)/var(--gold)（含生成内容）随主题换绛朱 */
  --gold2:var(--ms2); --gold:var(--ms); --gold-brown:var(--ms2); --gold-bg:var(--ms-tint);
  /* 全站次级字令牌在本页一并落到本页次级字档（与择日、八字、铁板等样板页同口径） */
  --ink2:var(--ms-ink2);
  --line:var(--ms-line);--ink:var(--ms-ink)
}

/* 页头：朱墨标题、绛灰墨正文 */

/* 日期弹框主题（字面量，弹框挂 body 下不依赖页内变量） */
.dtm-ms{--tk:#b23a3f;--tk2:#8f2c31;--tk-ink:#46383a;--tk-line:#ecd9dc;--tk-tint:#fbf2f3}


/* ===== 太岁生肖页 岁星青 主题（taisui.html，.page-ts 作用域） =====
   全部规则限定 .page-ts 作用域，避免与八字页 .ts-box、择日页 .page-zeri .ts-tbl 冲突。
   小字号文字取 --ts-ink（加深墨色）与 --ts-gold（随主题取岁星青），修小字发虚。 */
.page-ts{--ts:#2f6e40;--ts2:#265a34;--ts-deep:#1d3f28;--ts-ink:#33403a;--ts-gold:#2f6e40;--ts-line:#d5e2d8;--ts-tint:#eff5f0;--gold2:var(--ts2);--gold:var(--ts);--gold-brown:var(--ts2);--gold-bg:var(--ts-tint)
  --ts-ink2:#4f6d57;  /* 次级字色：卷首说明、副注、标注 */
  --ts-serif:var(--font-serif);  /* 卷首宋体：页头与题名 */;--line:var(--ts-line);--ink:var(--ts-ink)}

/* 附加功能面板（基础款） */

/* 日期弹框主题（字面量） */
.dtm-ts{--tk:#2f6e40;--tk2:#265a34;--tk-ink:#33403a;--tk-line:#d5e2d8;--tk-tint:#eff5f0}

/* ===== 阳宅风水页 罗盘黛青、罗针金 主题（fengshui.html，.page-fs 作用域） =====
   阳宅堪舆以罗盘定向、宅运布局为核心：罗盘面石青底、分金刻线黄铜色，
   主题取罗盘黛蓝主色（宅盘底）+ 罗针金点缀（分金刻线），淡底青瓷雾、浅线月晕青；
   与站内 23 页主题色区分（太乙靛蓝偏紫 224°、二十八宿夜穹偏藏蓝 219°，本页青灰蓝 198° 偏灰绿）；
   紫白九星吉凶色（fei-* 与八宅绿红徽章）保留 */
.page-fs{
  --fs:#3a5a6e;          /* 罗盘黛蓝主色 */
  --fs2:#2d485a;         /* 深黛蓝：hover与强调 */
  --fs-deep:#1f3340;     /* 宅盘墨：大标题字色 */
  --fs-ink:#3a4450;      /* 青灰墨：正文字色（对白底 9.4:1） */
  --fs-line:#d3dfe4;     /* 月晕青浅线 */
  --fs-tint:#eef4f6;     /* 青瓷雾淡底 */
  --fs-ink2:#4f626d;  /* 次级字色：卷首说明、副注、标注 */
  --fs-serif:var(--font-serif);  /* 卷首宋体：页头与题名 */
  --gold2:var(--fs2); --gold:var(--fs); --gold-brown:var(--fs2); --gold-bg:var(--fs-tint);
  /* 圆盘令牌（五层各一盘 + 综合罗盘）：骨架与尺寸走通用件 .wheel，此处只绑本页色。
     阳宅盘圈层多于他页（综合盘五圈），显示尺寸相应放大，免字挤；令牌与取角规则不改。 */
  --wheel-serif:var(--fs-serif);
  --wheel-line:var(--fs-line);
  --wheel-arc:var(--fs);
  --wheel-ink:var(--fs-ink);
  --wheel-deep:var(--fs-deep);
  --wheel-ink2:var(--fs-ink2);
  --wheel-cur:var(--fs);
  --wheel-core:var(--fs-tint);
  --wheel-h4:var(--fs2);
  --wheel-good:var(--green);
  --wheel-bad:var(--red);
  --line:var(--fs-line);--ink:var(--fs-ink);--ink2:var(--fs-ink2)
}


/* 日期弹框主题（字面量；本页日期框走 dt-input 弹层） */
.dtm-fs{--tk:#3a5a6e;--tk2:#2d485a;--tk-ink:#3a4450;--tk-line:#d3dfe4;--tk-tint:#eef4f6}

/* ===== 阴宅风水页 玄壤、碑银 主题（fengshui-yin.html，.page-fy 作用域） =====
   阴宅堪舆以葬地玄壤、碑石山向为核心：主题取玄壤墨青主色（墓草山色苔碑青灰，色相约110°，
   与阳宅罗盘蓝198°、岁星青136°、松青155°均不同族）+ 碑石银点缀（碑石月色）；
   内联 sub-note 纯黑陷阱同阳宅页，覆盖升特异性处理；凶煞红、吉义绿语义色保留 */
.page-fy{
  --fy:#4a5a48;          /* 玄壤墨青主色 */
  --fy2:#3a4938;         /* 深玄壤：hover与强调 */
  --fy-deep:#28321f;     /* 玄壤墨：大标题字色 */
  --fy-ink:#3b4238;      /* 壤灰墨：正文字色（对白底 9.6:1） */
  --fy-silver:#7f909e;   /* 碑石银点缀：次按钮底 */
  --fy-line:#d6ddd4;     /* 山岚浅线 */
  --fy-tint:#f0f4ef;     /* 夜山雾淡底 */
  --fy-ink2:#536d4f;  /* 次级字色：卷首说明、副注、标注 */
  --fy-serif:var(--font-serif);  /* 卷首宋体：页头与题名 */
  --gold2:var(--fy2); --gold:var(--fy); --gold-brown:var(--fy2); --gold-bg:var(--fy-tint);
  /* 圆盘令牌（五盘）：骨架与尺寸走通用件 .wheel，此处只绑本页色 */
  --wheel-serif:var(--fy-serif);
  --wheel-line:var(--fy-line);
  --wheel-arc:var(--fy);
  --wheel-ink:var(--fy-ink);
  --wheel-deep:var(--fy-deep);
  --wheel-ink2:var(--fy-ink2);
  --wheel-cur:var(--fy);
  --wheel-core:var(--fy-tint);
  --wheel-h4:var(--fy2);
  --wheel-good:var(--green);
  --wheel-bad:var(--red);
  --line:var(--fy-line);--ink:var(--fy-ink)
}


/* 日期弹框主题（字面量） */
.dtm-fy{--tk:#4a5a48;--tk2:#3a4938;--tk-ink:#3b4238;--tk-line:#d6ddd4;--tk-tint:#f0f4ef}


/* ===== 河洛理数页 墨玉青、古铜金 主题（heluo.html，.page-hl 作用域） =====
   河图为数之本、洛书为数之用，主题取墨玉青主色（青石著数）；古铜金作唯一点缀色，
   与主色相差一百三十五度，只落元堂徽标与当前行强调，不参与纸与线的配色。
   本段只放令牌，本页规则一律在文末的页级样式 heluo 段；弹框主题见 .dtm-hl 段。 */
.page-hl{
  --hl:#2d5f5d;          /* 墨青主色：按钮实底、选中态 */
  --hl2:#214544;         /* 深墨青：hover 与强调 */
  --hl-deep:#1c3b3a;     /* 墨玉：大标题与表头字色 */
  --hl-ink:#31403f;      /* 青灰墨：正文字色 */
  --hl-ink2:#4f6d6c;     /* 次级字色：卷首说明、副注、子注 */
  --hl-brass:#8a6a1e;    /* 古铜金：元堂徽标与当前行强调 */
  --hl-line:#d3e0de;     /* 墨青浅线 */
  --hl-tint:#eef4f3;     /* 墨青淡底 */
  --hl-serif:var(--font-serif);

  /* 全站强调令牌在本页一律落到墨青族：表格加粗、折叠框标题、经文检索与 AI 面板
     一类共享件由此一次对齐，不必逐条覆写，也不会漏出全站鎏金 */
  --gold:var(--hl);
  --gold2:var(--hl2);
  --gold-brown:var(--hl2);
  --gold-bg:var(--hl-tint);
  --ink2:var(--hl-ink2);
  --foot-ink:var(--hl2);
  --line:var(--hl-line);--ink:var(--hl-ink)
}

/* 河洛页日期弹框主题（app.js 按页面主题类自动挂 dtm-hl） */
.dtm-hl{--tk:#2d5f5d;--tk2:#214544;--tk-ink:#31403f;--tk-line:#d3e0de;--tk-tint:#eef4f3}

/* ===== 藏历页 藏红、赭墨 主题（仅 zangli.html 的 .page-zl 作用域） =====
   与万年历、老黄历、佛历、道历同用「纸本目录」语言：整页零圆角、零投影、零渐变，只留细线与实色块。
   配色独立换为藏地赭红（寺院墙）主色 + 金顶暗金点缀；宜绿忌红的语义色保留。 */
.page-zl{
  --zl:#8f2f22;            /* 藏红主色 */
  --zl2:#6f2318;           /* 深赭：hover 与强调 */
  --zl-deep:#4b1a12;       /* 墨赭：大标题字色 */
  --zl-ink:#4a4038;        /* 赭墨灰：正文字色 */
  --zl-ink2:#6b5a4e;       /* 赭墨灰次级字：卷首说明、农历日、副注、AI 状态字 */
  --zl-gold:#8a6a1e;       /* 金顶暗金：小字亦达对比度 AA */
  --zl-line:#e9d1ce;       /* 赭浅线 */
  --zl-tint:#fbecea;       /* 淡赭底 */
  --zl-serif:var(--font-serif);
  --foot-ink:var(--zl2);   /* 页脚注记：本页主色深档 */
  /* 全站强调令牌族在本页一律落到藏红族：表格加粗、年月导航钮、折叠框标题、右侧直达箭头等
     共享规则由此一次对齐，不会漏出全站鎏金；金顶暗金另走 --zl-gold，两者不混 */
  --gold:var(--zl);
  --gold2:var(--zl2);
  --gold-brown:var(--zl2);
  --gold-bg:var(--zl-tint);

  /* 圆盘令牌（通用件 .wheel 用）：弧带与「选中」同取藏红主色；
     异常提示字走 --wheel-cur，吉凶两色走 --wheel-good/--wheel-bad */
  --wheel-serif:var(--zl-serif);
  --wheel-line:var(--zl-line);
  --wheel-arc:var(--zl);
  --wheel-ink:var(--zl-ink);
  --wheel-deep:var(--zl-deep);
  --wheel-ink2:var(--zl-ink2);
  --wheel-cur:var(--zl);
  --wheel-core:var(--zl-tint);
  --wheel-h4:var(--zl2);
  --wheel-good:var(--green);
  --wheel-bad:var(--red);--line:var(--zl-line);--ink:var(--zl-ink)}

/* ===== 页级样式：bazi（page-bazi）===== */
/* 本页移除 body 独有覆盖，统一走 assets/style.css 全局布局，使顶栏全幅、内容区居中见下方 .wrap 规则。 */
/* 四柱干支模式：年/月/日/时 双字迷你下拉横向留 8px（而非 2px），避免干支文字贴左；高度与全站控件同为 30px */
.page-bazi #fPillar .gz-mini select{padding:0 8px;font-size:13px;line-height:1.35}
/* 确认面板：表头 th 去默认粗体；框体线色与去底见本段确认框规则。
   面板标题属区块标题，与 info-box h4 同级同组件，字色取深松青而非正文灰 */
.page-bazi .confirm-h{font-weight:400;color:var(--bz2)}

/* 候选表字体缩到 12px（与底部 .sub-note 补充说明一致，覆盖 style.css 的 14px），节约空间 */
.page-bazi .confirm-tb{font-size:12px}
.page-bazi .confirm-tb th,.page-bazi .confirm-tb td{font-size:12px;padding:5px 8px}
.page-bazi .confirm-tb td .btn{font-size:13px}
/* 已确认出生时间横幅：文字与“更改”按钮同行（flex nowrap），避免手机端按钮掉到第二行 */
.page-bazi .confirm-banner{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:nowrap;color:var(--bz-ink)}
.page-bazi .confirm-banner .btn{flex:0 0 auto}
/* 候选确认框（未确认）与确认横幅（已确认）都落在 #out 首位。同位的 section.mod 能靠内部首行的外边距折叠出上间距，
   confirm 系列自身首行无外边距，不补则与上方表单末行贴死，故此处补一份与全站同值的 --sp-4。 */
.page-bazi #out>.confirm-box,.page-bazi #out>.confirm-banner{margin-top:var(--sp-4)}
/* 出生地分组：底色与上下细线由本页出生地分组规则给出，此处不再另设 */

/* 移动端：确认横幅字号随本页正文档收至 13px；控件盒尺寸由通用段给出，窄屏不另覆写 */
@media (max-width:640px){
  .page-bazi .confirm-banner{font-size:13px}
}
/* 出生地模块（省份/城市/区县/经度/真太阳时整组）：独立组件，只在公历/农历模式显示，四柱/已存一律不呈现。 单条 CSS 声明式控制（不依赖 JS 时序），body 模式类由 bazi-app.js 的 toggleBaziMode 维护。 */
body:where(.bz-root):not(.mode-date):not(.mode-lunar) #birthGroup{display:none}
.page-bazi .subnote{font-size:12px;color:var(--bz-ink2);margin:var(--sp-1) 0 var(--sp-3);line-height:1.7}
.page-bazi .subnote.err{color:var(--red)}
/* 已存列表说明：与上方列表拉开距离 */
.page-bazi #savedPanel .sub-note{margin-top:var(--sp-2)}
/* 一生运势四小节题（事业财运、婚姻感情、性格健康、家庭子女）：小节主题档，字号取四档令牌 */
.page-bazi .m-h{font-size:var(--tier2);margin:var(--sp-4) 0 var(--sp-1);color:var(--gold2)}
.page-bazi table.otab{width:100%;border-collapse:collapse;margin:var(--sp-1) 0 var(--sp-2);background:var(--card);font-size:13px}
.page-bazi table.otab th,.page-bazi table.otab td{border:1px solid var(--bz-line);padding:6px 8px;vertical-align:top;text-align:left}
.page-bazi table.otab th{background:var(--bz-tint);font-weight:400;white-space:nowrap;text-align:center;font-size:12px}
.page-bazi table.otab td.lbl{background:transparent;font-weight:400;white-space:nowrap;text-align:center;color:var(--bz-deep)}
.page-bazi table.otab td{line-height:1.7}
.page-bazi .xi{color:var(--red);font-weight:bold}
.page-bazi .ji{color:var(--bz2);font-weight:400}
/* 表格样式：透明无底色、仅留边框，与站内"量化四柱"一致。 列宽完全自适应（table-layout:auto），表格按各列内容字数自动分配宽度，首列短标签（组合/分类/项目/宫位十神…）自然取整词宽、整词显示，不写死任何 px/em，也不按字数加收窄类锁定列宽； 内容需换行时按字符自然断行（不强行 1 字孤行、也不锁单字宽）。 字体/间距与 .qtab 对齐：13px、padding 5px7px、行高 1.7、表下距 14px。 */
.page-bazi table.stab{width:100%;table-layout:auto;border-collapse:collapse;margin:var(--sp-1) 0 var(--sp-3);font-size:13px}
.page-bazi table.stab th,.page-bazi table.stab td{border:1px solid var(--bz-line);padding:6px 9px;vertical-align:top;text-align:left;line-height:1.8;word-break:normal;overflow-wrap:anywhere}
.page-bazi table.stab th{font-weight:400;white-space:nowrap;text-align:center;color:var(--gold2)}
.page-bazi table.stab td.lbl{font-weight:400;color:var(--gold2)}
.page-bazi table.stab td.nowrap{white-space:nowrap}
/* 6.2 五行行业对照：table-layout:auto 下“五行”“宜忌”两列按内容（各 2 字）自然取宽，行业列占余宽，不写死列宽。 */
.page-bazi table.stab-inds{table-layout:auto}
/* 古籍断语表(stab-a2)：断语列(第1列)占余宽、内容长时自然换行；出处列(第2列)按内容量取整条单行宽，上限取可用宽一半，由脚本写入内联宽度。 */
.page-bazi #mod-yiti table.stab-a2{table-layout:fixed;width:100%}
.page-bazi #mod-yiti table.stab-a2 th:first-child,.page-bazi #mod-yiti table.stab-a2 td:first-child{white-space:normal;word-break:break-word;overflow-wrap:anywhere}
.page-bazi #mod-yiti table.stab-a2 th:nth-child(2),.page-bazi #mod-yiti table.stab-a2 td:nth-child(2){white-space:normal;word-break:break-word;overflow-wrap:anywhere}
@media (max-width:760px){
  .page-bazi table.stab th,.page-bazi table.stab td{padding:2px 4px}
  /* 表头短标签（五行/宜忌/组合/分类/项目…）不换行，避免被压成单字成行 */
  .page-bazi table.stab th{white-space:nowrap}
  /* 普通表：首列固定为 2 个汉字宽（写死，含留白），长内容列占余宽。 首列换行规则按字数判定（JS 在 layoutYitiTables 加类）：≤2 字（日主/五行/宜忌/组合/分类…）整词不折； ≥3 字（宫位十神/祖辈宫/六亲身心…）在 2 字宽处自然折行（每行 ≥2 字，不出现单字成行）。 */
  /* 列宽方案（table-layout:auto，border-box 计宽）： 非最后一列均为短标签列（五行/宜忌/组合/分类/项目/宫位十神/维度/层级…），固定 3em（=总宽 3 汉字上限，含留白）。 2 字标签整词放下不折、不单字孤行；4 字标签（如宫位十神）在 3em 内自然折行（每行 ≥2 字）。 最后一列是长文本内容列，不锁宽（width:auto），随屏幕自适应，避免内容长时表格被无限拉高/撑破。 对 2 列表（第 1 列短、第 2 列自适应）与 3/4 列表（前面列短、最后列自适应）同时成立。 */
  .page-bazi #mod-yiti table.stab:not(.stab-a2){table-layout:auto !important}
  /* 短标签列（非末列，含表头 th）：border-box 固定 3em（=总宽 3 汉字上限）。 内容区 = 3em - padding(8px) ÷ 11px ≈ 2.3~2.5 字，足够 2 字整词放下（不折叠成 1 字/行）； 4 字标签（宫位十神）在 3em 内自然折为“2+2”；min-width=3em 防止 auto 布局把列压窄 <2 字。 */
  /* 短标签列（非末列，含表头）：默认整词单行（nowrap）不折、无单字孤行； 列宽由 JS(layoutYitiTables) 按本列最长词字数决定并内联写入（≤3 字整词、≥4 字在 2.6em 内折 2+2）。 末列（长文本内容列）不锁宽自适应。stab-ssd（十神经典断语"组合"列）除外，另行换行规则。 */
  .page-bazi #mod-yiti table.stab:not(.stab-a2):not(.stab-cy):not(.stab-ssd) td:not(:last-child),.page-bazi #mod-yiti table.stab:not(.stab-a2):not(.stab-cy):not(.stab-ssd) th:not(:last-child){box-sizing:content-box !important;white-space:nowrap !important;word-break:normal !important;overflow-wrap:break-word !important}
  /* 十神经典断语表(stab-ssd)："组合"列固定 4 字内容宽（border-box 计宽，含两端 padding+border）， 超过 4 字即折行（4+2、4+3…），避免长断语名撑宽挤压"判定"列内容空间。 宽度 = 4.2em（4 字内容 + 0.2em 渲染余量） + 10px（左右 padding 8px + border 间距 2px）； 未预留两端间距会导致 4 字词在 3~3.5 字处提前折行（实测 3 字换行），此处显式计入。 */
  .page-bazi #mod-yiti table.stab-ssd td:first-child,.page-bazi #mod-yiti table.stab-ssd th:first-child{white-space:normal !important;word-break:break-all !important;overflow-wrap:anywhere !important;box-sizing:border-box !important;width:calc(4.2em + 10px) !important;min-width:calc(4.2em + 10px) !important;max-width:calc(4.2em + 10px) !important}
  /* 职业方向与宜忌表"方向"列(第3列)：电脑端 nowrap 写死，移动端允许换行、最低 5 字宽、约 4 字折行（覆盖上方通用列 nowrap） */
  .page-bazi #mod-yiti table.stab-cy th:nth-child(3),.page-bazi #mod-yiti table.stab-cy td:nth-child(3){white-space:normal !important;width:auto;min-width:5em;word-break:break-all !important;overflow-wrap:anywhere !important}
  /* 最后一列（长文本内容列）：不锁宽、自适应；禁用 overflow-wrap:anywhere（会制造单字孤行），用 break-word 不撑破。 */
  .page-bazi #mod-yiti table.stab:not(.stab-a2) td:last-child,.page-bazi #mod-yiti table.stab:not(.stab-a2) th:last-child{width:auto !important;word-break:normal !important;overflow-wrap:break-word !important}
  /* 方向列（6.1 职业方向与宜忌）：响应式下允许换行，不 nowrap 撑宽。 */
  .page-bazi table.stab td.nowrap{width:auto;white-space:normal}
}
.page-bazi .sub-h{font-size:var(--tier4);color:var(--gold2);margin:var(--sp-2) 0 2px;font-weight:400}
/* 表格内 <b> 一律常规字重（干支/数值等去除粗体） */
.page-bazi .stab b,.page-bazi .otab b,.page-bazi .bazi-table b,.page-bazi .yun-tbl b,.page-bazi .nayin-rel b,.page-bazi .qtab b{font-weight:400}
/* 八字页内容区：居中限宽 1080px（与其他排盘工具一致），两端留白；宽表（四柱/大运/流年）由 .tbl-wrap{overflow-x:auto} 横向滚动兜底，不撑破页面 */
.wrap.page-bazi{max-width:1080px;margin:0 auto;padding:0 var(--sp-2)}
@media (max-width:900px){
  /* 必须归零 body 横向 padding：内联 body{padding:8px 12px} 在桌面端生效，移动端若不重置会叠加到 .wrap+.page 之外， 导致每侧多出 12px 空白（40px vs 其它工具 28px）。归零后与其他排盘工具一致。 */
  body:where(.bz-root){max-width:none;margin:0;padding:0}
  .wrap.page-bazi{max-width:none;margin:0;padding:0 var(--sp-3)}
  .page-bazi .page{margin:0;padding:var(--sp-4)}
  .page-bazi .opts-row{padding:0;gap:var(--sp-2)}
  .page-bazi .form-row{padding:0;gap:var(--sp-2);margin-bottom:var(--sp-2)}
  /* 本页窄屏的表单行行内间距取 --sp-2，出生地组内的行内间距随之同档，
     同一页之内不再并存 8 与 12 两值；组内三等分的扣除量在 ≤640 段随档走。 */
  .page-bazi .birth-group,.page-bazi .birth-group.compact{gap:var(--sp-2)}
  .page-bazi .yun-tbl th,.page-bazi .yun-tbl td{padding:3px 4px}
  .page-bazi .mod-head{margin-top:var(--sp-3)}
  
  /* 移动端：去掉外层边框与内边距、圆角，表格贴边全宽 */
  .page-bazi .zr-mod-b{padding:var(--sp-1) var(--sp-1) var(--sp-2);background:transparent}
  .page-bazi .dyn-detail{border:none;border-radius:0;padding:var(--sp-2);background:transparent}
  .page-bazi details.fld{border:none;border-radius:0;margin:var(--sp-1) 0 var(--sp-2);background:transparent}
  .page-bazi details.fld summary{padding:var(--sp-1) var(--sp-2);background:transparent;border-radius:0}
  .page-bazi details.fld .fld-body{padding:var(--sp-1) var(--sp-2)}
}
/* 已存八字面板：透底无框、极简（与站点"无包裹框、无背景色"一致） */
.page-bazi #savedPanel{margin:var(--sp-2) 0 var(--sp-1)}
.page-bazi .saved-head{display:flex;align-items:baseline;gap:var(--sp-2);font-size:13px;color:var(--bz-deep);font-weight:400;margin:var(--sp-1) 0 var(--sp-1)}
.page-bazi .saved-tip{font-weight:normal;color:var(--bz-ink2);font-size:12px}
.page-bazi .saved-list{display:table;width:100%;border-collapse:collapse;font-size:13px}
.page-bazi .saved-list .sr{display:table-row}
.page-bazi .saved-list .sc{display:table-cell;padding:var(--sp-1) var(--sp-1);border-bottom:1px solid var(--bz-line);vertical-align:middle}
.page-bazi .saved-list .sc-name{min-width:48px;color:var(--bz-ink);white-space:nowrap}
.page-bazi .saved-list .sc-sex{min-width:36px;color:var(--bz-ink2);text-align:center;white-space:nowrap}
.page-bazi .saved-list .sc-info{color:var(--bz-ink2)}
.page-bazi .saved-list .sc-act{text-align:right;white-space:nowrap}
.page-bazi .saved-list .sr-head .sc{color:var(--bz-ink2);font-weight:400;border-bottom:1px solid var(--bz-line)}
.page-bazi .saved-list .btn-pai{font-size:12px;height:30px;padding:0 6px;line-height:1.4;cursor:pointer;border:1px solid var(--bz-line);background:transparent;color:var(--bz2);border-radius:0}
.page-bazi .saved-list .btn-pai:hover{background:var(--bz-tint);border-color:var(--bz);color:var(--bz2)}
.page-bazi .saved-list .btn-del{font-size:12px;height:30px;padding:0 5px;line-height:1.4;cursor:pointer;border:1px solid var(--bz-line);background:transparent;color:var(--bz-ink2);border-radius:0;margin-left:var(--sp-1)}
.page-bazi .saved-list .btn-del:hover{background:#fff0ee;color:var(--red);border-color:#e6a0a0}
/* 顶部输入行：字段与控件均按内容自适应（见下）。行内横向间距不在此声明，交回 .form-row 通用终值 --sp-3；
   窄屏 ≤900 由下方 .page-bazi .form-row 段收回 --sp-2。
   下距取 --sp-3：本行下方紧邻 .opts，其首子即带上线的出生地组，该上线与上排控件的 1px 下边框是一对
   相邻平行线，间距须与全站该处一致为 12px，第二条判据的下限亦为 12px。 */
.page-bazi .bazi-top{display:flex;flex-wrap:nowrap;align-items:flex-end;margin-bottom:var(--sp-3)}

/* 顶部控件按内容自适应：.field 是 flex 列容器，子控件默认被拉伸到字段宽，故以 align-self:flex-start 回到内容宽。 select 取最长选项宽（width:auto 即浏览器自适应）；姓名、农历年为文本/数字框，width:auto 会回落浏览器默认 size=20 约 170px，故按内容显式定宽（姓名 96px 与全站日期框同口径、农历年 76px 为四位数年份＋数字步进器的最小不裁切宽）。 */
.page-bazi .bazi-top .field#fName input{width:96px;align-self:flex-start}
.page-bazi .bazi-top .field#fLunarY input{width:76px;align-self:flex-start}
/* 出生时间：宽度由顶层规则统一（72px），字段收缩后不另定宽 */
/* 农历模式（桌面）：8 项贴内容自适应占一排（flex:0 0 auto），不拥挤； 闰月勾选框复用 .field.chk 现成样式（与"真太阳时校正"同款），不设固定宽 */
.mode-lunar:where(.bz-root) .bazi-top{flex-wrap:nowrap}
.mode-lunar:where(.bz-root) .bazi-top .field{flex:0 0 auto;width:auto;min-width:0;margin:0}

.mode-lunar:where(.bz-root) .bazi-top .field#fLunarLeap label{white-space:nowrap}
/* 闰月勾选框与 select 视觉居中（照搬 style.css .opts-row .field.chk 的 padding-bottom 补偿） */
.mode-lunar:where(.bz-root) .bazi-top .field#fLunarLeap{align-self:flex-end;padding-bottom:var(--sp-2);flex:0 0 auto}
/* 顶部行控件高度与全站一致（30px，通用段给出）：input 与 select 原生高度不同，通用段显式等高后本页无须再定高。
   日期框在 .dt-wrap 内（含 📅 图标），宽度由 .dt-wrap 与 .dt-input 的定宽规则给出 */
.page-bazi .bazi-top .field select{width:auto;align-self:flex-start}
/* 顶部字段随控件内容收缩（flex:0 0 auto），整行位置自适应排列、间距统一由 gap 承担； 控件自身宽度见上：select 取最长选项、姓名 96、农历年 76、公历日期与出生时间由 .dt-wrap（图标＋输入框）自然定约 139px。 */
.page-bazi .bazi-top .field{flex:0 0 auto;width:auto;margin:0;min-width:0}
/* 641-970px：农历各项贴内容自适应，一行放不下自然换行。间距不在此声明：641-900 由 ≤900 段收回 --sp-2，
   901-970 沿用 .form-row 通用终值 --sp-3，与公历模式同档。 */
@media(min-width:641px) and (max-width:970px){
  .mode-lunar:where(.bz-root) .bazi-top{display:flex;flex-wrap:wrap;align-items:flex-end}
  .mode-lunar:where(.bz-root) .bazi-top .field{flex:0 0 auto;min-width:0;max-width:none}
  /* 出生时间图标布局：图标与输入框同行；输入框宽度由顶层规则统一定 72px */
  .mode-lunar:where(.bz-root) .bazi-top .field#fTime .dt-wrap{display:flex;flex-direction:row;align-items:center;gap:var(--sp-1)}
}
/* 四柱模式布局（电脑端）：bazi-flow 与其内三层包裹、检索跨度组一律转 display:contents，
   全部字段（输入方式、性别、姓名、年月日时柱、检索跨度与起止年、排盘、保存）汇入同一 flex 流，
   控件一律按内容定宽、不随屏宽伸缩，放不下整项自然换行，故宽屏一行排完。
   窄屏改栅格按格宽伸缩，见下方同名段（≤640）。 */
.mode-pillar:where(.bz-root) .bazi-flow{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--sp-3)}
.mode-pillar:where(.bz-root) .bazi-flow>.bazi-top,
.mode-pillar:where(.bz-root) .bazi-flow>#fPillar,
.mode-pillar:where(.bz-root) .bazi-flow>.opts,
.mode-pillar:where(.bz-root) .bazi-flow .opts-row,
.mode-pillar:where(.bz-root) .bazi-flow .span-group{display:contents}
.mode-pillar:where(.bz-root) .bazi-flow .field{flex:0 0 auto;width:auto;margin:0;min-width:0}
.mode-pillar:where(.bz-root) .bazi-flow .gz-mini{display:flex;gap:4px;width:auto}
.mode-pillar:where(.bz-root) .bazi-flow .gz-mini select{width:auto;min-width:0}
/* 跨度取最长选项自然宽；起止年是一对（4px 中缝，与四柱的干支对同构），单框按五字符（四位年份加负号）定值 */
.mode-pillar:where(.bz-root) .bazi-flow .span-years{display:flex;gap:4px;align-items:flex-end;flex:0 0 auto}
.mode-pillar:where(.bz-root) .bazi-flow .span-field select{width:auto}
.mode-pillar:where(.bz-root) .bazi-flow .span-field input[type=number]{width:calc(5ch + 32px);-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}
.mode-pillar:where(.bz-root) .bazi-flow .span-field input[type=number]::-webkit-outer-spin-button,
.mode-pillar:where(.bz-root) .bazi-flow .span-field input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.mode-pillar:where(.bz-root) .bazi-flow .opts-row .btn{margin:0}
/* 窄屏（≤640）：公历、农历、已存三模式顶部行按内容定宽、靠左流式排，放不下整项换行。
   四柱模式顶部行已由上方 .bazi-flow 统一转为 display:contents 汇入流式行，故此处以 body:not(.mode-pillar) 排除。 */
@media(max-width:640px){
  /* 四柱模式窄屏：改 4 等份栅格，控件宽随格宽伸缩、行行填满，行序与电脑端一致。
     每两格一组：输入方式＋性别＋姓名、年柱＋月柱、日柱＋时柱、检索跨度＋起止年、排盘＋保存。
     年柱、起止年这类“一对控件”的组内各占一半、中缝 4px，故单个干支框与单个年份框恒等宽。 */
  .mode-pillar:where(.bz-root) .bazi-flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-2);align-items:end}
  .mode-pillar:where(.bz-root) .bazi-flow .field,
  .mode-pillar:where(.bz-root) .bazi-flow #fPillar .field{flex-direction:column;align-items:stretch;flex-wrap:nowrap;gap:var(--sp-1);width:auto;min-width:0;margin:0}
  .mode-pillar:where(.bz-root) .bazi-flow .field input,
  .mode-pillar:where(.bz-root) .bazi-flow .field select,
  .mode-pillar:where(.bz-root) .bazi-flow .span-field input[type=number],
  .mode-pillar:where(.bz-root) .bazi-flow .span-field select,
  .mode-pillar:where(.bz-root) .bazi-flow .field#fName input{width:100%;max-width:none}
  .mode-pillar:where(.bz-root) .bazi-flow .gz-mini,
  .mode-pillar:where(.bz-root) .bazi-flow .span-years{display:flex;gap:4px;width:100%}
  .mode-pillar:where(.bz-root) .bazi-flow .gz-mini select{flex:1 1 0;width:auto;min-width:0}
  .mode-pillar:where(.bz-root) .bazi-flow .span-years .field{flex:1 1 0;min-width:0}
  /* 跨度下拉左右各留 8px（与干支下拉同档），可选字区随格宽伸缩：375 及以上可容最长选项
     “魏晋南北朝 220-589”（墨迹 116.4px），360 下该条末字略切 6px；当前选中项“近代 1864-2103”（89.5px）320 起皆完整 */
  .mode-pillar:where(.bz-root) .bazi-flow .span-field select{padding-left:8px;padding-right:8px}
  .mode-pillar:where(.bz-root) .bazi-flow .field#fName,
  .mode-pillar:where(.bz-root) .bazi-flow #fPillar .field,
  .mode-pillar:where(.bz-root) .bazi-flow .span-field,
  .mode-pillar:where(.bz-root) .bazi-flow .span-years,
  .mode-pillar:where(.bz-root) .bazi-flow .opts-row .btn{grid-column:span 2}
  /* 公历/农历窄屏：流式定宽（与桌面同口径：select 自适应、姓名 96、农历年 76、出生时间见顶层规则 72） */
  .mode-date:where(.bz-root) .bazi-top,.mode-lunar:where(.bz-root) .bazi-top{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--sp-2)}
  /* 已存模式（body 无模式类）同入流式：顶部行与公历/农历同口径，两框之间不留空档 */
  .mode-date:where(.bz-root) .bazi-top .field,.mode-lunar:where(.bz-root) .bazi-top .field,body:where(.bz-root):not(.mode-date):not(.mode-lunar):not(.mode-pillar) .bazi-top .field{flex:0 0 auto;width:auto;min-width:0}
  /* 通用段 .opts-row .field 有 160px 保底，320 视口下两个字段就撑破行，此处按模式收回 */
  .mode-date:where(.bz-root) .opts-row .field,.mode-lunar:where(.bz-root) .opts-row .field{min-width:0}
  .mode-date:where(.bz-root) .bazi-top .field select,.mode-lunar:where(.bz-root) .bazi-top .field select,body:where(.bz-root):not(.mode-date):not(.mode-lunar):not(.mode-pillar) .bazi-top .field select{width:auto;align-self:flex-start}
  body:where(.bz-root):not(.mode-date):not(.mode-lunar):not(.mode-pillar) .bazi-top{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--sp-2)}
  .mode-date:where(.bz-root) .bazi-top .field#fName input,.mode-lunar:where(.bz-root) .bazi-top .field#fName input{width:96px;align-self:flex-start}
  .mode-lunar:where(.bz-root) .bazi-top .field#fLunarY input{width:76px;align-self:flex-start}
  .mode-lunar:where(.bz-root) .bazi-top .field#fTime .dt-wrap{display:flex;flex-direction:row;align-items:center;gap:var(--sp-1)}
  /* 农历窄屏压缩定宽：内容均两字，缩框使 农历年+农历月+闰月+农历日+出生时间 能并入两排
     （行1 输入方式72/性别55/姓名96/农历年76；行2 农历月72/闰月43/农历日68/出生时间112，时间框 72px 由顶层规则定） */
  .mode-lunar:where(.bz-root) .bazi-top .field#cMode select{width:72px}
  .mode-lunar:where(.bz-root) .bazi-top .field#cSex select{width:55px}
  .mode-lunar:where(.bz-root) .bazi-top .field#fLunarM select{width:72px}
  .mode-lunar:where(.bz-root) .bazi-top .field#fLunarD select{width:68px}
}
/* 窄屏选项行：公历/农历模式一致，行1 子时+空亡 各半；行2 排盘+保存 各半（真太阳时校正已移入出生地框）。 style.css .opts-row .field{min-width:160px} 会撑破 4 列 grid，必须 min-width:0 重置。 lunar 必须与 date 同规则，否则 mode-lunar 无 mode-date class，opts-row 回退 style.css 默认乱排）
   窄屏列宽仅 155.5px，子时选项墨迹 131.5、空亡 130，超出通用段 12px 横向内边距的内容区（129.5）。
   本档把 select 横向内边距收到 6px，让出 12px，文字居中显示无截断；高度仍由通用段给 30px。 */
@media(max-width:640px){
  .mode-date:where(.bz-root) .opts-row,.mode-lunar:where(.bz-root) .opts-row{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-2);align-items:end}
  .mode-date:where(.bz-root) .opts-row .field#bZiField,.mode-lunar:where(.bz-root) .opts-row .field#bZiField{grid-column:1 / span 2}
  .mode-date:where(.bz-root) .opts-row .field#bKongField,.mode-lunar:where(.bz-root) .opts-row .field#bKongField{grid-column:3 / span 2}
  .mode-date:where(.bz-root) .opts-row .field select,.mode-lunar:where(.bz-root) .opts-row .field select{padding:0 6px}
  .mode-date:where(.bz-root) .opts-row .btn,.mode-lunar:where(.bz-root) .opts-row .btn{grid-column:1 / span 2;width:auto;min-width:0;margin:0;justify-self:stretch}
  /* 保存钮不另加左外边距：本行间距只由栅格 gap 一处给（--sp-2），
     加外边距会与 gap 叠加成 12px，同行之内读作两值，且该钮左缘与上排 空亡基准 的左缘错开 */
  .mode-date:where(.bz-root) .opts-row .btn.btn-ghost,.mode-lunar:where(.bz-root) .opts-row .btn.btn-ghost{grid-column:3 / span 2}
}
/* 关联数术：折叠框去白瓷卡改上下细线；条目去四边框改项间细线，标题取松墨宋体宽字距 */
.page-bazi .bazi-linkage{margin:0;background:transparent;border:0;border-top:1px solid var(--bz-line);border-radius:0;padding:var(--sp-3) 0}
.page-bazi .bazi-linkage summary{font-size:var(--tier3);color:var(--bz-deep);font-family:var(--bz-serif);font-weight:400;letter-spacing:.2em;cursor:pointer}
.page-bazi .bazi-linkage[open] summary{margin-bottom:var(--sp-1)}
/* 结果区内的二级折叠框（所选干支详情、终身卦流年卦）：形制由通用段给出，本页只补线色与题色；
   关联数术块是页尾收束件，自带上下细线，不在其列 */
.page-bazi .mh-ref:not(.bazi-linkage){border-color:var(--bz-line)}
/* 终身卦流年卦题头：随墨松青深档 */
.page-bazi #hexWrap .mh-ref>summary{color:var(--bz-deep)}
/* 终身卦流年卦表：共享件默认取全站中性 --line，本页未重绑该令牌，此处落到本页线色 */
.page-bazi #hexWrap .mh-ref th,.page-bazi #hexWrap .mh-ref td{border-color:var(--bz-line)}
.page-bazi .link-list{display:flex;flex-direction:column;gap:0;margin-top:var(--sp-1)}
.page-bazi .link-item{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) 0;border:0;border-bottom:1px solid var(--bz-line);border-radius:0;cursor:pointer;transition:background .15s;text-decoration:none;font-size:13px}
.page-bazi .link-item:last-child{border-bottom:0}
.page-bazi .link-item:hover{background:var(--bz-tint)}
.page-bazi .link-item .li-ico{font-size:15px;flex:none;line-height:1}
.page-bazi .link-item .li-name{color:var(--bz2);font-weight:400;font-family:var(--bz-serif);letter-spacing:.05em;white-space:nowrap;flex:none}
.page-bazi .link-item .li-desc{color:var(--bz-ink2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}
.page-bazi .link-item .li-tag{font-size:11px;color:var(--bz2);white-space:nowrap;flex:none;margin-left:auto;background:var(--bz-tint);padding:1px var(--sp-1);border-radius:0;line-height:1.5}
@media(max-width:540px){
  .page-bazi .link-item .li-desc{display:none}
}

/* 页头：卷首式（上下细线夹题、末尾竖线收束，与藏历、择日、皇极经世同骨架） */
.page-bazi .page h1{color:var(--bz-deep);font-family:var(--bz-serif);font-size:23px;
  letter-spacing:.3em;text-indent:.3em;text-align:center;line-height:1.3}
.page-bazi .page h1::before{content:'';display:block;width:88px;height:1px;background:var(--bz-line);margin:0 auto var(--sp-3)}
.page-bazi .page h1::after{content:'';display:block;width:88px;height:1px;background:var(--bz-line);margin:var(--sp-3) auto 0}
.page-bazi .page .lead{color:var(--bz-ink2);text-align:center;font-size:12.5px;letter-spacing:.22em;text-indent:.22em;margin-top:var(--sp-3)}
.page-bazi .page .lead::after{background:var(--bz-line)}

/* 表单控件描边：全站通用件给的是棕褐 --line，本页一律换松浅线；聚焦只换线色，不外扩光环 */
.page-bazi input,.page-bazi select,.page-bazi textarea{border-color:var(--bz-line);transition:border-color .15s;color:var(--bz-ink)}
.page-bazi input:focus,.page-bazi select:focus,.page-bazi textarea:focus{border-color:var(--bz);outline:none}
.page-bazi .field input,.page-bazi .field select,.page-bazi .field textarea{background:var(--card)}

/* 按钮：只有两档。全站 .btn 基色是朱红 --red，不写兜底规则页内所有非 .gold 的 .btn
   （导航行、动态拼接出来的按钮）就漏出页面外色 */
.page-bazi .btn,.page-bazi .btn.gold{background:var(--bz);border-color:var(--bz);color:#fff;box-shadow:none}
.page-bazi .btn:hover,.page-bazi .btn.gold:hover{background:var(--bz2);color:#fff;box-shadow:none}
.page-bazi .page > .form-row .btn.gold{border-radius:0;padding:5px 14px;margin-bottom:0}
.page-bazi .ai-block .btn{border-radius:0}
/* 出生地分组：去卡改线，只留一条上线与深松青标签。纵向内边距取 --sp-2（站内带边框容器统一档），
   下内边距归零，与下方子时算法行的间隙只由 .opts 的行距承担 */
.page-bazi .birth-group,.page-bazi .birth-group.compact{background:transparent;border:0;border-top:1px solid var(--bz-line);padding:var(--sp-3) 0 0}
/* 窄屏题头到上线收到移动端更小档 --sp-2；本块排在基条之后，同权重下由后位取终值 */
@media(max-width:640px){.page-bazi .birth-group,.page-bazi .birth-group.compact{padding-top:var(--sp-2)}}
.page-bazi .birth-group .group-label{color:var(--bz2)}
/* 次按钮档：保存按钮与 AI 面板的配置模型、soft 同属一档（松纸淡底＋松浅线），
   与主色实底的排盘、AI 解析明确区分；全页只有两档，无第三档 */
.page-bazi .btn-ghost,.page-bazi .ai-block .btn.gold,.page-bazi .ai-block .btn.soft{background:var(--bz-tint);border:1px solid var(--bz-line);color:var(--bz-ink)}
.page-bazi .btn-ghost:hover,.page-bazi .ai-block .btn.gold:hover,.page-bazi .ai-block .btn.soft:hover{background:var(--card);border-color:var(--bz);color:var(--bz2)}

/* 模块题头：上下两条细线与直角透底由通用段给出，本页只定线色与下距；折叠框本体与题头一律透底 */
.page-bazi .mod-head{border-top-color:var(--bz-line);border-bottom-color:var(--bz-line);margin-bottom:var(--sp-3)}
.page-bazi .mod-head .mod-sub{color:var(--bz-ink2)}
.page-bazi .mod-caret{color:var(--bz)}
/* 模块卦符图标：去米色圆底与描边，只留一枚深松青卦象，不与题头的两条细线争焦点 */
.page-bazi .gua-ico{background:transparent;border:0;color:var(--bz2)}
.page-bazi .mod-title,.page-bazi .zr-mod>summary{color:var(--bz2)}
.page-bazi .zr-mod{border:0;border-radius:0;background:transparent;margin:var(--sp-2) 0}
.page-bazi .zr-mod>summary{border-radius:0;padding:var(--sp-2) 0;font-family:var(--bz-serif);font-weight:400;letter-spacing:.1em}
/* 二级折叠的分隔线只归收起态：收起的题头下留一条细线作条目分界，展开后题头与正文之间不画线。
   通用件的正文块自带 border-top，与本页题头底线在展开态正好叠成两像素的粗线，故一并去掉正文块顶线。 */
.page-bazi .zr-mod:not([open])>summary{border-bottom:1px solid var(--bz-line)}
.page-bazi .zr-mod-b{border-top:none}
.page-bazi .zr-mod>summary:hover{color:var(--bz)}
.page-bazi .zr-mod>summary::before{color:var(--bz)}
.page-bazi .sub-note,.page-bazi .subnote{color:var(--bz-ink2)}

/* 四柱表：表头松青染、正文松墨灰、首列松青 */
.page-bazi .bazi-table th{background:var(--bz-tint);color:var(--bz2)}
.page-bazi .bazi-table td:first-child{background:var(--bz-tint);color:var(--bz2)}
.page-bazi .bazi-table th,.page-bazi .bazi-table td{border-color:var(--bz-line)}
.page-bazi .bazi-table .gan,.page-bazi .bazi-table .zhi,.page-bazi .bazi-table .small{color:var(--bz-ink)}

/* 说明框与确认框：去白瓷面、去投影、去渐变，改上下细线夹出；宜忌两色仍由顶线承担 */
.page-bazi .info-box,.page-bazi .confirm-box{
  background:transparent;border:0;border-top:1px solid var(--bz-line);
  border-radius:0;box-shadow:none;
}
.page-bazi .info-box.yi{border-top-color:var(--green)}
.page-bazi .info-box.ji{border-top-color:var(--red)}
.page-bazi .info-box h4{color:var(--bz2);font-family:var(--bz-serif);font-weight:400;letter-spacing:.2em;border-bottom:1px solid var(--bz-line);padding-bottom:var(--sp-2);margin-bottom:var(--sp-2)}
.page-bazi .info-box p:not(.yi):not(.ji){color:var(--bz-ink)}
.page-bazi .confirm-box{border-color:var(--bz-line)}

/* 小节标题（喜用神、大运流年等动态标签行）：随墨松青、宋体宽字距。
   缺此规则时本页 .rel-title 会回落到全站默认的鎏金 700 粗 */
.page-bazi .rel-title{color:var(--bz-deep)}
.page-bazi .ly-zh-p{color:var(--bz-ink)}

/* 子块标题（各大运整体倾向、各流派解读格局、流年事件、所选干支详情等）：共享件默认取全站鎏金 700 粗，
   本页随墨松青宋体宽字距，与 .rel-title 同族 */
.page-bazi .det-h{color:var(--bz-deep)}

/* 核心解读内小模块（袁天罡称骨、命局断事、十神宫位）：不留框线，分块只靠段距；
   共享件 .life-card 默认带四边描边、内缩与全站鎏金题头，本页不复用其默认值。
   卡已无可见盒子，内缩属纯间距，与 .core-box 的 gap 叠成双来源，故一并归零 */
.page-bazi .life-card{border:0;border-radius:0;background:transparent;padding:0}
.page-bazi .life-card h5{color:var(--bz2);font-family:var(--bz-serif);font-weight:400;letter-spacing:.2em}
/* 卡内表格不留上下外边距：模块间距只由 .core-box 的 gap 一处提供，标题到内容只由 h5 的下距一处提供 */
.page-bazi .core-box table.stab{margin:0}

/* 附加功能面板：去框改线，上下各一条细线夹出（面板是页尾元素，
   下边线收束内容与页脚免责声明，不可省）；对话区圆角一并归零 */
.page-bazi .ai-block{
  border:0;border-top:1px solid var(--bz-line);border-bottom:1px solid var(--bz-line);border-radius:0;
  background:transparent;color:var(--bz-ink);box-shadow:none;
}
.page-bazi .ai-head{background:transparent;border-bottom-color:var(--bz-line)}
.page-bazi .ai-head h3{color:var(--bz2);font-family:var(--bz-serif);font-weight:400}
.page-bazi .ai-head .ai-status{color:var(--bz-ink2)}
.page-bazi .ai-tab{border-radius:0}
.page-bazi .ai-pane .ai-out{border-radius:0}
.page-bazi .ai-bubble{border-radius:0}
.page-bazi .ai-tab:hover{border-color:var(--bz);color:var(--bz2)}
.page-bazi .ai-tab.active{background:var(--bz);border-color:var(--bz);color:#fff}
.page-bazi .ai-tab.active:hover{background:var(--bz2);border-color:var(--bz2);color:#fff}
.page-bazi .ai-bubble.user{background:var(--bz-tint);border-color:var(--bz)}
.page-bazi .ai-bubble.assistant{border-color:var(--bz-line)}
.page-bazi .ai-model-row:hover{background:var(--bz-tint)}
.page-bazi .ai-block .ai-out,.page-bazi .ai-block .ai-bubble.user,.page-bazi .ai-block .ai-bubble.assistant,.page-bazi .ai-block .ai-model-name{color:var(--bz-ink)}
.page-bazi .ai-block input,.page-bazi .ai-block select{color:var(--bz-ink)}
.page-bazi .ai-tip{color:var(--bz-ink2)}

/* 打印：恢复素底与中性线 */
@media print{
  .page-bazi .info-box,.page-bazi .confirm-box,.page-bazi .ai-block{background:var(--card) !important;box-shadow:none !important;border-color:var(--line) !important}
  .page-bazi .mod-head,.page-bazi .zr-mod>summary,.page-bazi .ts-box,.page-bazi .birth-group,.page-bazi .bz-info{border-color:var(--line) !important}
}
/* 八字页 stab/otab 系表格（古籍断语/量化四柱等主力表）同步松青 */
.page-bazi table.stab th,.page-bazi table.otab th{background:var(--bz-tint);color:var(--bz2);border-color:var(--bz-line)}
.page-bazi table.stab td,.page-bazi table.otab td{color:var(--bz-ink);border-color:var(--bz-line)}
.page-bazi .confirm-tb th{font-weight:400;background:var(--bz-tint);color:var(--bz2)}
.page-bazi .confirm-tb td{color:var(--bz-ink);border-color:var(--bz-line)}
.page-bazi .notice{color:var(--bz-ink);background:transparent;border:0;border-top:1px solid var(--bz-line);border-bottom:1px solid var(--bz-line)}
/* ② 提示词默认字色：全局 .tip 为朱红 var(--red2)，在本页与语义红混淆；降为深松青。
   默认态用 :where 零特异性——低于 .tip.sha-ji/.tip.sha-xiong/.tip.wx-* 等语义规则，不破坏必须上色字；
   悬停态全局 .tip:hover 会把字染回朱红，此处同特异性(0,2,0)且靠后，覆盖为深松青+松青淡底 */
.page-bazi :where(.tip){color:var(--bz2)}
.page-bazi .tip:hover{color:var(--bz2);background:var(--bz-tint)}
/* ③ 卷首带（时间摘要行 ts-box）：不画线，数值取深松青（不与"凶"的朱红混淆）。
   🔴 本块是 .mod-body 的首块，上方紧邻 .mod-head 的下边线，此处再画上线即成双线，
   纸本目录只画一条线的判据即针对此形，故只留 .mod-head 那一条。 */
.page-bazi .ts-box{background:transparent;border:0;
  border-radius:0;box-shadow:none;padding:var(--sp-3) 0;margin-top:0;text-align:center;color:var(--bz-ink2);letter-spacing:.04em}
.page-bazi .ts-box b{color:var(--bz2)}
/* ④ 流派解读卡/公式/结构派内显式 var(--ink)/var(--red2)：归松墨灰 / 深松青 */
.page-bazi .an-v,.page-bazi .an-p,.page-bazi .wf-formula,.page-bazi .struct-note,.page-bazi .struct-item{color:var(--bz-ink)}
.page-bazi .an-p b,.page-bazi .wf-formula b{color:var(--bz2);font-weight:400}
/* ④b 数据表正文：bazi-table/qtab 基字色 var(--ink) 纯黑 → 松墨灰；表头/行标签维持深松青（语义标签类更高特异性，不受影响） */
.page-bazi .bazi-table td,.page-bazi .qtab th,.page-bazi .qtab td{color:var(--bz-ink)}
.page-bazi .qtab thead th,.page-bazi .qtab td.lbl{color:var(--bz2)}
/* ④c 运势曲线图例/浮层/卦辞卡/评分表：显式 var(--ink) 纯黑 → 松墨灰 */
.page-bazi .yun-legend-item,.page-bazi .yun-tip,.page-bazi .hex-mean,.page-bazi .score-tbl td.yun-gz{color:var(--bz-ink)}
/* ⑤ 量化四柱表：数字纯黑归松墨灰；占比/汇总 #8a7f66 暖灰 → 灰松（与辅注同层） */
.page-bazi .qtab td.num{color:var(--bz-ink)}
.page-bazi .qtab .pct,.page-bazi .q-sum{color:var(--bz-ink2)}
/* ⑥ 表单标签：随 --bz-ink2 重挂归灰松，无需单独覆盖 */
/* ⑦ 大运/流年时间轴按钮：激活态朱红底与页面松青主题相冲，换松青主色；悬停浅底、去投影；
   按钮 UA 默认不继承正文字色（黑），显式给松墨灰 */
.page-bazi .dyn-btn{color:var(--bz-ink)}
.page-bazi .dyn-btn.active{background:var(--bz);color:#fff;box-shadow:none}
.page-bazi .dyn-btn.active .tg,.page-bazi .dyn-btn.active .tz{color:#fff}
.page-bazi .dyn-btn:hover{background:var(--bz-tint)}
/* ⑧ 三得芯片未中态：#999 太浅，归灰松，保持与已中态(绿)的语义对比 */
.page-bazi .de-off{color:var(--bz-ink2)}
/* ⑨ 四柱表日主格"元男/元女"：性别蓝/粉为点缀色，属非必须上色 → 归松墨灰 */
.page-bazi .sex-m,.page-bazi .sex-f{color:var(--bz-ink)}
/* ⑩ 强提示块（学术取舍等）：原赭金底 #7a5b12，改上下细线夹出，不铺底色 */
.page-bazi .warn-note{background:transparent;border:0;border-top:1px solid var(--bz-line);border-bottom:1px solid var(--bz-line);color:var(--bz2)}

/* 基础信息字段流：农历、生肖、星座、二十八宿、命宫、胎元、身宫、命卦、当令、下一节
   与命局速览（日主、格局、喜用、身强身弱、旺衰评分）并为一条双栏字段流（与老黄历、道历同构）。
   键取深松青、值取松墨灰，项间一条浅线；项内分段符电脑端为 0.9em 空格间隙，窄屏改整行换行
   （三垣三段一行放得下，自带 bz-oneline 留一行）。
   本段前接四柱表，故自带顶线。 */
.page-bazi .bz-info{margin-top:var(--sp-3);columns:2;column-gap:var(--sp-5);font-size:14px;border-top:1px solid var(--bz-line)}
.page-bazi .bz-i{display:flex;gap:var(--sp-3);padding:var(--sp-2) 0;border-bottom:1px solid var(--bz-line);break-inside:avoid;page-break-inside:avoid}
.page-bazi .bz-i>.k{flex:0 0 88px;color:var(--bz2);letter-spacing:.5px}
.page-bazi .bz-i>.v{flex:1;min-width:0;color:var(--bz-ink);line-height:1.7}
.page-bazi .bz-i>.v.yi{color:var(--green)}
.page-bazi .bz-i>.v.ji{color:var(--red)}
.page-bazi .bz-info .bz-br{display:inline-block;width:.9em}
/* 名与值绑成一个不可断行的整体（原子行内盒）：窄屏放不下时只在 bz-br 分段符处折行 */
.page-bazi .bz-info .bz-seg{display:inline-block;white-space:nowrap}
/* 移动端：字段流退单栏，分段符改整行换行。
   🔴 本段必须排在 .page-bazi .bz-info 主定义之后：两处特异性相同（皆 .page-bazi .bz-info），
   同权重下后者胜，故退单栏若排在主定义之前，columns:2 会把 columns:1 整个盖掉（老黄历、万年历同此序）。 */
@media(max-width:640px){
  .page-bazi .bz-info{columns:1}
  /* 窄屏单栏，标签栏收到 72px（最长标签三垣 命卦约 62px），值栏多出 16px */
  .page-bazi .bz-i>.k{flex:0 0 72px}
  .page-bazi .bz-info .bz-br{display:block;height:0;width:0}
  /* 三垣三段（命宫、胎元、身宫）都是两字干支，窄屏一行放得下：该字段自带 bz-oneline，
     分段符退回桌面的 0.9em 间隔，三段同处一行；节气等超出屏宽的字段仍按上一条整行换行。 */
  .page-bazi .bz-info .bz-i.bz-oneline .bz-br{display:inline-block;width:.9em}
  .page-bazi .ts-box{letter-spacing:0}
  /* 窄屏选项行行距收到 --sp-2；出生地组的内边距与桌面同值，由本页出生地分组规则给出 */
  .page-bazi .opts{gap:var(--sp-2)}
}
/* 双盘（量化四柱圆盘、十二长生盘）并排于本命分析内，紧随其所呈现的量化数据。
   本段接在模块正文首行，不加顶线：纸本语言里线只归条目分界，不归留白。 */
.page-bazi .wheel-wheels{border-top:0;margin-top:0;padding-top:0}
/* 盘上语义色不另立：五行只着字色，且走降调五值（bazi-core.js 的 BZ_WX_TONE，与经络盘同值）；
   弧一概主体色（--wheel-arc），定量由弧长承担。故本页对圆盘只删一处顶线，盘内规则一概不覆写。 */

/* 底部免责声明：上下细线夹一段说明，与页尾留白同族（纸本目录口径，底色透明不留块） */
.page-bazi .notice-bottom{color:var(--bz-ink);background:transparent;border:0;border-top:1px solid var(--bz-line);border-bottom:1px solid var(--bz-line);border-radius:0;padding:var(--sp-3) 0}


/* ===== 页级样式：cezi（page-cz）===== */
/* 检索行：下边距收至 8px，与铁板、皇极等排盘页同款节奏 */
.page-cz .page > .form-row{margin-bottom:var(--sp-2)}
.page-cz .page h1{color:var(--cz-deep);font-family:var(--cz-serif);font-size:23px;letter-spacing:.3em;text-indent:.3em;text-align:center;line-height:1.3}/* 页头细线：上下各一条 88px 夹题，卷首说明末尾 26px 竖线收束（规则档第三条） */
.page-cz .page h1::before{content:'';display:block;width:88px;height:1px;background:var(--cz-line);margin:0 auto var(--sp-3)}
.page-cz .page h1::after{content:'';display:block;width:88px;height:1px;background:var(--cz-line);margin:var(--sp-3) auto 0}
.page-cz .page .lead::after{background:var(--cz-line)}

.page-cz .page .lead{color:var(--cz-ink2);text-align:center;font-size:12.5px;letter-spacing:.22em;text-indent:.22em;margin-top:var(--sp-3)}
.page-cz .rel-title{color:var(--cz2)}
.page-cz .sub-note{color:var(--cz-ink2)}
.page-cz .field label{color:var(--cz2);font-weight:400}
.page-cz .field input,.page-cz .field select{border-color:var(--cz-line);background:var(--card);color:var(--cz-deep);transition:border-color .15s,box-shadow .15s}
/* 所测之字（一字）：收窄至单字内容宽度并多展一字，由输入框本身占据标签段留白，避免与后项间隔过大 */
.page-cz .field input.cz-char-input{width:108px}
.page-cz .field input:focus,.page-cz .field select:focus{border-color:var(--cz);outline:none}
.page-cz .btn{background:var(--cz);border-color:var(--cz);color:#fff;box-shadow:none}
.page-cz .btn:hover{background:var(--cz2);border-color:var(--cz2);color:#fff}
.page-cz .info-box{background:transparent;border:0;border-top:1px solid var(--cz-line);border-radius:0;box-shadow:none;padding:0}
.page-cz .ai-block{
  border:0;border-top:1px solid var(--cz-line);border-bottom:1px solid var(--cz-line);border-radius:0;
  background:transparent;color:var(--cz-ink);box-shadow:none;
}
.page-cz .ai-head{background:transparent;border-bottom-color:var(--cz-line)}
.page-cz .ai-block .btn,.page-cz .ai-block .btn.gold{box-shadow:none}
.page-cz .ai-block .btn{background:var(--cz);color:#fff}
.page-cz .ai-block .btn:hover{background:var(--cz2)}
.page-cz .ai-block .btn.gold,.page-cz .ai-block .btn.soft{background:var(--cz-tint);border-color:var(--cz-line);color:var(--cz-ink);box-shadow:none}
.page-cz .ai-block .btn.gold:hover,.page-cz .ai-block .btn.soft:hover{background:var(--card);border-color:var(--cz);color:var(--cz2)}
.page-cz .ai-block .ai-out,.page-cz .ai-block .ai-bubble.user,.page-cz .ai-block .ai-bubble.assistant,.page-cz .ai-block .ai-model-name,.page-cz .ai-block input,.page-cz .ai-block select{color:var(--cz-ink)}
.page-cz .ai-head h3{color:var(--cz2)}
.page-cz .ai-head .ai-status{color:#8a7350}
.page-cz .ai-tab:hover{border-color:var(--cz);color:var(--cz2)}

.cz-head{position:relative;margin-top:var(--sp-4);border-top:1px solid var(--cz-line);border-radius:0;
  padding:var(--sp-4) 0;display:flex;gap:var(--sp-5);align-items:stretch;
  background:transparent;box-shadow:none}
.cz-bigwrap{display:flex;flex-direction:column;align-items:center;gap:var(--sp-1);flex-shrink:0}
.cz-big{font-family:var(--font-serif);font-size:88px;line-height:1.1;width:120px;text-align:center;
  padding:var(--sp-2) var(--sp-1);border:1px solid var(--cz-line);border-radius:0;background:var(--paper2);
  box-shadow:none}
.cz-py{font-size:15px;color:var(--gold2);letter-spacing:1px}
.cz-meta{flex:1;display:grid;grid-template-columns:repeat(2,minmax(130px,1fr));gap:var(--sp-2) var(--sp-4);align-content:center;
  padding:var(--sp-1) 0;border-left:1px dashed var(--line);padding-left:var(--sp-5)}
.cz-meta>div{font-size:13.5px;line-height:1.5;display:flex;align-items:baseline;gap:var(--sp-1)}
.cz-em{color:var(--gold2);font-weight:400;flex-shrink:0;min-width:58px}
.cz-grade{width:230px;flex-shrink:0;display:flex;flex-direction:column;gap:var(--sp-2);justify-content:center}
.cz-lv{font-size:34px;font-weight:400;color:var(--cz2);font-family:var(--font-serif);line-height:1.2}
.cz-lv small{font-size:13px;color:var(--ink2);font-family:var(--font)}
.cz-gbar{height:7px;border-radius:0;background:var(--cz-tint);overflow:hidden}
.cz-gbar i{display:block;height:100%;border-radius:0;background:var(--cz);box-shadow:none}
.cz-score{margin:2px 0 0;padding:0;list-style:none}
.cz-score li{margin:var(--sp-1) 0;font-size:12px;color:var(--ink2);display:grid;
  grid-template-columns:58px 30px 1fr;gap:var(--sp-2);align-items:center}
.cz-score li b{color:var(--gold2);font-weight:400}
.cz-score .bar{height:5px;border-radius:0;background:var(--cz-tint);overflow:hidden}
.cz-score .bar i{display:block;height:100%;border-radius:0;background:var(--cz)}
.page-cz .cz-chai{margin:0;padding:var(--sp-2) 0;border-bottom:1px solid var(--cz-line)}
.cz-chai-row{display:flex;gap:var(--sp-2);align-items:baseline;flex-wrap:wrap;margin:2px 0 var(--sp-1)}
.cz-parts{display:inline-flex;gap:var(--sp-1);flex-wrap:wrap}
.cz-chai .cz-part{margin:0 var(--sp-2)}
.cz-parts .cz-part{margin:0}
.cz-part{font-family:var(--font-serif);font-size:21px;padding:2px var(--sp-2);border:1px solid var(--cz-line);
  border-radius:0;background:var(--cz-tint);box-shadow:none}
.cz-tag{font-size:12px;color:var(--gold2);border:1px solid var(--cz-line);border-radius:0;padding:1px var(--sp-2);background:var(--cz-tint)}
.cz-chai div:not(.cz-chai-row)>.cz-tag{margin:0 var(--sp-1)}
.cz-luck{font-size:12px;border-radius:0;padding:1px var(--sp-2)}
.cz-luck.ji{color:var(--green);border:1px solid var(--green);background:rgba(46,139,87,.06)}
.cz-luck.ping{color:var(--ink2);border:1px solid var(--line)}
.cz-luck.xiong{color:#c0392b;border:1px solid #c0392b;background:rgba(192,57,43,.05)}
.cz-note-yi{font-size:12px;color:var(--ink2);margin:var(--sp-1) 0 var(--sp-1);line-height:1.7}
/* 断曰：整块即一条，与拆字拆解、康熙数理、梅花字占、时辰外应四块同形制，上下两线夹住断语 */
.page-cz .info-box.cz-duan{border:0;border-top:1px solid var(--cz-line);border-bottom:1px solid var(--cz-line);padding:var(--sp-2) var(--sp-3) var(--sp-2) 72px}
.cz-duan{font-family:var(--font-serif);font-size:17px;line-height:2;position:relative}
.cz-duan::before{content:'断';position:absolute;left:20px;top:50%;transform:translateY(-50%) rotate(-4deg);
  width:38px;height:38px;line-height:38px;text-align:center;font-size:19px;color:#fff;background:#b03a2e;
  border-radius:0;font-family:var(--font-serif);
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.92),inset 0 0 0 3px #b03a2e}
.cz-gua-sym{font-size:32px;font-family:var(--font-serif);color:var(--gold2);margin-right:2px}
.page-cz .cz-p{margin:0;padding:var(--sp-2) 0;border-bottom:1px solid var(--cz-line)}
.cz-note-s{font-size:12px;color:var(--ink2)}
.cz-line{font-size:14px}
.cz-line-s{font-size:13px;margin-top:var(--sp-1)}
.cz-line-t{margin-top:var(--sp-1)}
.page-cz .info-box>.cz-note-yi{margin:0;padding:var(--sp-2) 0;border-bottom:1px solid var(--cz-line)}
.page-cz .info-box>.notice{border:0;border-bottom:1px solid var(--cz-line);background:transparent;padding:var(--sp-2) 0;margin:0}
.cz-tag-main{background:var(--cz-tint)}
.cz-case-note{margin:0 0 var(--sp-2);font-size:13px;color:var(--ink2);line-height:1.7}
.cz-foot-note{margin:var(--sp-2) 0 0;font-size:12px;color:var(--ink2)}
/* 相字十法例数：名与数成组的条目流，桌面一行五组，窄屏一行两组（照灵签逐项解签 .lq-fens 的条目流形制） */
.cz-sf-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--sp-1) var(--sp-4);font-size:var(--tier4)}
.cz-sf-i{display:flex;gap:var(--sp-1);min-width:0;color:var(--ink2);line-height:1.7}
.cz-sf-i b{font-weight:400;color:var(--cz2)}
@media(max-width:640px){.cz-sf-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
.cz-case-table th.cz-case-zi{width:40px}
.cz-tail-note{margin-top:var(--sp-2)}
.cz-err{margin-top:var(--sp-3)}

@media(max-width:640px){
  .cz-head{flex-direction:column;align-items:center;padding:var(--sp-4) 0}
  .cz-big{font-size:68px;width:96px}
  .cz-meta{border-left:0;padding-left:0;grid-template-columns:repeat(2,1fr);width:100%}
  .cz-grade{width:100%}
  .cz-lv{font-size:28px}
  .cz-lv small{display:inline}
}
.cz-fold>.info-box{margin:0;border:0;border-radius:0;background:transparent;padding:var(--sp-2) 0 0}
.cz-case-table{width:100%;border-collapse:collapse;font-size:13.5px;line-height:1.7}
.cz-case-table th{text-align:left;color:var(--gold2);font-weight:400;border-bottom:1px solid var(--line);padding:6px 8px;font-size:13px}
/* ===== 页级样式：daliuren（page-dlr）===== */
/* 大六壬 综合判断表：细边框网格，第一列标签 2 字宽防拆分 */
.page-dlr .lr-bh-tbl{width:100%;border-collapse:collapse;margin-top:var(--sp-1)}
.page-dlr .lr-bh-tbl th,.page-dlr .lr-bh-tbl td{border:1px solid var(--dlr-line);padding:6px 9px;font-size:13px;line-height:1.8;text-align:left;vertical-align:top}
.page-dlr .lr-bh-tbl th{background:var(--dlr-tint);color:var(--dlr2);font-weight:400;white-space:nowrap;min-width:2em;text-align:center}
.page-dlr .lr-bh-tbl td{color:var(--dlr-ink)}
/* 综合判断吉凶栏：吉字绿色、凶字红色（与天将表 .lr-ji/.lr-xiong 同色） */
.page-dlr .lr-bh-tbl .jx-ji{color:var(--green)}
.page-dlr .lr-bh-tbl .jx-xiong{color:var(--red)}
/* 十二天将吉凶象意卡片、笔画法说明卡：页面段只写线色，形制与字号由通用段给出 */
.page-dlr .lr-jx,.page-dlr .lr-bifa{border-color:var(--dlr-line)}
/* 毕法赋断语表、流派解读表：键列 4 字宽，表头取本页纸淡底 */
.page-dlr .lr-bifa-tbl,.page-dlr .lr-school-tbl{width:100%;border-collapse:collapse;margin-top:var(--sp-2)}
.page-dlr .lr-bifa-tbl th,.page-dlr .lr-bifa-tbl td,.page-dlr .lr-school-tbl th,.page-dlr .lr-school-tbl td{border:1px solid var(--dlr-line);padding:6px 9px;font-size:13px;line-height:1.8;text-align:left;vertical-align:top}
.page-dlr .lr-bifa-tbl th,.page-dlr .lr-school-tbl th{background:var(--dlr-tint);color:var(--dlr2);font-weight:400;white-space:nowrap;min-width:4em;text-align:center}
.page-dlr .lr-bifa-tbl td,.page-dlr .lr-school-tbl td{color:var(--dlr-ink)}
@media (max-width:600px){
  .page-dlr .lr-bifa-tbl th{white-space:normal;min-width:0;text-align:left;width:8em;max-width:9em;word-break:break-word}
}
/* 本命年干支框按标签“本命年（选填）”的宽度定 92px，预填“如：庚午”四字在其内不换行 */
.page-dlr .field input.lr-w-gz{width:92px}
.page-dlr #infoLine{margin:var(--sp-1) 2px 0}
.page-dlr .page > .form-row{margin-bottom:var(--sp-2)}



.page-dlr .mod-head{border-top-color:var(--dlr-line);border-bottom-color:var(--dlr-line)}
.page-dlr .page h1{color:var(--dlr-deep);font-family:var(--dlr-serif);font-size:23px;letter-spacing:.3em;text-indent:.3em;text-align:center;line-height:1.3}/* 页头细线：上下各一条 88px 夹题，卷首说明末尾 26px 竖线收束（规则档第三条） */
.page-dlr .page h1::before{content:'';display:block;width:88px;height:1px;background:var(--dlr-line);margin:0 auto var(--sp-3)}
.page-dlr .page h1::after{content:'';display:block;width:88px;height:1px;background:var(--dlr-line);margin:var(--sp-3) auto 0}
.page-dlr .page .lead::after{background:var(--dlr-line)}

.page-dlr .page .lead{color:var(--dlr-ink2);text-align:center;font-size:12.5px;letter-spacing:.22em;text-indent:.22em;margin-top:var(--sp-3)}
.page-dlr .rel-title{color:var(--dlr2)}
.page-dlr .ly-zh-p{color:var(--dlr-ink)}
.page-dlr .sub-note{color:var(--dlr-ink2)}
.page-dlr .notice{color:var(--dlr-ink);border:1px solid var(--dlr-line);background:var(--dlr-tint);border-radius:0}
.page-dlr .mh-method{color:#7d6f5f}

.page-dlr .field label{color:var(--dlr2);font-weight:400}
.page-dlr .field input,.page-dlr .field select{border-color:var(--dlr-line);background:var(--card);color:var(--dlr-deep)}
.page-dlr .field input:focus,.page-dlr .field select:focus{border-color:var(--dlr);outline:none}
.page-dlr .group-label{color:var(--dlr2)}

.page-dlr .btn{background:var(--dlr);color:#fff}
.page-dlr .btn:hover{background:var(--dlr2)}
.page-dlr .btn-ghost{background:var(--card);border:1px solid var(--dlr);color:var(--dlr2)}
.page-dlr .btn-ghost:hover{background:var(--dlr-tint)}

/* 课盘与表格：统一淡染 + hover 变暗，一层装饰 */
.page-dlr .lr-board{border-color:var(--dlr-line)}
.page-dlr .lr-cell{border-color:var(--dlr-line)}
.page-dlr .lr-tian{color:var(--dlr-deep)}
.page-dlr .lr-jiang{color:var(--dlr-brass)}
.page-dlr .lr-ke,.page-dlr .lr-ke:last-child{border-color:var(--dlr-line)}
.page-dlr .lr-ke-u{color:var(--dlr2)}
.page-dlr .lr-ke-l{color:var(--dlr)}
.page-dlr .lr-ke-d{color:var(--dlr-ink);border-top-color:var(--dlr-line)}
.page-dlr .lr-chuan,.page-dlr .lr-chuan:last-child{border-color:var(--dlr-line)}
.page-dlr .lr-chuan-z{color:var(--dlr2)}
/* 说明框：本页 .info-box 只作模块体首块，上线会与 .mod-head 下线相隔 --sp-3 形成双线，故只去白瓷面与投影、不画线 */
.page-dlr .info-box{background:transparent;border:0;border-radius:0;box-shadow:none}
.page-dlr .info-box p{color:var(--dlr-ink)}

/* 表格：一条通配淡染 */
.page-dlr .lr-jx-tbl th{background:var(--dlr-tint);color:var(--dlr2);border-color:var(--dlr-line)}
.page-dlr .lr-jx-tbl td{color:var(--dlr-ink);border-color:var(--dlr-line)}

/* 折叠模块标题 */
.page-dlr .mod-title{color:var(--dlr2)}
.page-dlr .gua-ico{background:transparent;border:0;color:var(--dlr2)}

/* 附加功能面板（基础款） */
.page-dlr .ai-block{border:0;border-top:1px solid var(--dlr-line);border-bottom:1px solid var(--dlr-line);border-radius:0;background:transparent;color:var(--dlr-ink);box-shadow:none}
.page-dlr .ai-head{background:transparent;border-bottom-color:var(--dlr-line)}
.page-dlr .ai-head h3{color:var(--dlr2)}
.page-dlr .ai-block .btn{background:var(--dlr);color:#fff}
.page-dlr .ai-block .btn:hover{background:var(--dlr2)}
.page-dlr .ai-block .btn.gold,.page-dlr .ai-block .btn.soft{background:var(--dlr-tint);border-color:var(--dlr-line);color:var(--dlr-ink);box-shadow:none}
.page-dlr .ai-block .btn.gold:hover,.page-dlr .ai-block .btn.soft:hover{background:var(--card);border-color:var(--dlr);color:var(--dlr2)}
.page-dlr .ai-block .ai-out,.page-dlr .ai-block .ai-bubble.user,.page-dlr .ai-block .ai-bubble.assistant,.page-dlr .ai-block .ai-model-name,.page-dlr .ai-block input,.page-dlr .ai-block select{color:var(--dlr-ink)}
.page-dlr .ai-tab.active{background:var(--dlr);border-color:var(--dlr);color:#fff}
.page-dlr .ai-bubble.user{background:var(--dlr-tint);border-color:var(--dlr)}
.page-dlr .ai-bubble.assistant{border-color:var(--dlr-line)}
/* 大六壬：天地盘中心格定位、流派小注、类神补充说明 */
.page-dlr .lr-center-mid{grid-column:2/4;grid-row:2/4}
.page-dlr .lr-lei-sub{margin-top:var(--sp-1)}
/* 移动端 */
@media(max-width:640px){
  .page-dlr .info-box,.page-dlr .lr-ke,.page-dlr .lr-cell{box-shadow:none}
  .page-dlr .form-row.r2{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-2)}
  .page-dlr .form-row.r2 .field{flex:1 1 calc(50% - 5px);min-width:0}
  .page-dlr .form-row.r2 .field:nth-last-child(-n+3){flex:0 1 auto}
  .page-dlr .form-row.r2 .btn{flex:1 1 auto;align-self:flex-end;min-width:120px}
}
/* 打印 */
@media print{
  .page-dlr .info-box,.page-dlr .lr-jx-tbl,.page-dlr .lr-bh-tbl,.page-dlr .lr-bifa-tbl{background:var(--card) !important;box-shadow:none !important;border-color:var(--line) !important}
}
/* ===== 页级样式：daoli（page-daoli）===== */
/* 页头：卷首式（对齐首页 .hm-head 骨架：上下细线夹题、末尾竖线收束）。
   居中宋体 23px + 上下 88px 细线 + lead 12.5px 宽字距 + lead 下 26px 竖线，与历法其余各页同语言。 */
.page-daoli .page h1{color:var(--dao-deep);font-family:var(--font-serif);font-size:23px;
  letter-spacing:.3em;text-indent:.3em;text-align:center;line-height:1.3}
.page-daoli .page h1::before{content:'';display:block;width:88px;height:1px;background:var(--dao-line);margin:0 auto var(--sp-3)}
.page-daoli .page h1::after{content:'';display:block;width:88px;height:1px;background:var(--dao-line);margin:var(--sp-3) auto 0}
.page-daoli .page .lead{color:var(--dao-ink2);text-align:center;font-size:12.5px;letter-spacing:.22em;text-indent:.22em;margin-top:var(--sp-3)}
.page-daoli .page .lead::after{background:var(--dao-line)}

/* 日期检索行：去卡片改线，居中成一条查询带（对齐首页卷首干支行的居中 flex 骨架），
   零圆角、零投影、零渐变。 */
.page-daoli .page > .form-row{
  background:none;border:0;border-radius:0;
  padding:0;margin-top:var(--sp-2);margin-bottom:0;box-shadow:none;
  align-items:center;justify-content:center;
}
/* 字段由竖排转横排：标签与控件同行。控件宽度仍由 .dt-input 的 96px 定宽决定，不随容器伸展 */
.page-daoli .page > .form-row .field{flex:0 0 auto;width:auto;max-width:none;
  flex-direction:row;align-items:center;gap:var(--sp-2)}
/* 控件与全站同高 30px（通用段给出），内边距横向取 10px，宽度仍守 96px 定宽 */
.page-daoli .page > .form-row .field .dt-wrap{width:auto}
.page-daoli .page > .form-row .field label{color:var(--dao2);font-weight:400;margin:0;white-space:nowrap}
.page-daoli .page > .form-row .field input{border-color:var(--dao-line);border-radius:0;padding:4px 10px;
  transition:border-color .15s,box-shadow .15s}
.page-daoli .page > .form-row .field input:focus{border-color:var(--dao);outline:none}
/* "今天"按钮：玄青实色直角，无投影；检索行已 align-items:center，撤销 .cal-page 的 2px 底部补偿 */
.page-daoli .page > .form-row .btn.gold{background:var(--dao);border-radius:0;padding:5px 14px;box-shadow:none;margin-bottom:0}
.page-daoli .page > .form-row .btn.gold:hover{background:var(--dao2)}
/* 全页按钮兜底：未单列的按钮一律实底白字，不落回全站鎏金 */
.page-daoli .btn,.page-daoli .btn.gold{background:var(--dao);border-color:var(--dao);color:#fff;box-shadow:none}
.page-daoli .btn:hover,.page-daoli .btn.gold:hover{background:var(--dao2);color:#fff;box-shadow:none}

/* 年月导航：标题换宋体加字距（与页头同族）；箭头钮去框去底成纯字符，悬停只给玄青淡底 */
.page-daoli .cal-nav{margin:var(--sp-3) 0 var(--sp-2)}
.page-daoli .cal-title{color:var(--dao-deep);font-family:var(--font-serif);font-weight:400;font-size:19px;letter-spacing:.2em;text-indent:.2em;padding:0 var(--sp-2)}
.page-daoli .nav-btn{background:transparent;border-color:transparent;color:var(--dao);border-radius:0}
.page-daoli .nav-btn:hover{background:var(--dao-tint);border-color:transparent;color:var(--dao2);box-shadow:none}
.page-daoli .nav-btn:focus-visible{border-color:var(--dao);outline:none}

/* 日历面板：去四周框改线（首页骨架为线不为框），只留星期行下一条线；内边距归零让格网贴齐容器。 */
.page-daoli .cal-grid .wd{color:var(--dao);font-family:var(--font-serif);font-weight:400;
  letter-spacing:.12em;border-bottom:1px solid var(--dao-line);padding-bottom:var(--sp-1)}
/* 今日：玄青实色直角块，无投影；主位由满填承担，不靠阴影 */
.page-daoli .cal-cell.today{background:var(--dao);box-shadow:none}
.page-daoli .cal-cell.today.zhai{background:var(--dao)}
/* 🔴 节庆格不铺底色（照佛历 .page-foli .cal-cell.zhai 同一处置）：
   节庆日不靠面积抢眼，改由左上右上的两枚单字角标逐日点出，与「去框改线」的线、字优先一致。
   底色只留给三种态：今日（实色）、选中（淡染 + 细描）、悬停。
   通用层的 .cal-cell.zhai 纸底与 .cal-cell.today.zhai 实色须一并归位，否则会漏回来。 */
.page-daoli .cal-cell.zhai{background:transparent}
/* 神仙圣诞名较长（如财帛星君文财神增福相公李诡祖圣诞），折行会把整行格子撑高、格高不齐，
   故与另四页同取单行省略号；全名由点格后的圣诞圆盘详情条给全，信息不丢。 */
.page-daoli .cal-cell .festival{color:var(--red);font-weight:400}
/* 选中：玄青淡染 + 玄青细描；hover 不落今日格（白字不可读），今日格悬停加深 */
.page-daoli .cal-cell.selected:not(.today){background:var(--dao-tint);border-color:var(--dao)}
.page-daoli .cal-cell:hover:not(.today){background:#e9e9ef}
.page-daoli .cal-cell.today:hover{background:var(--dao2)}
/* 格内极简口径（对齐万年历、老黄历、佛历三条）：
   ① 直角、抬高到 64，与另三页同高；
   ② 节日与农历日**并存**不互相顶掉（全局 .festival+.ld{display:none} 会让节日那天看不到「道八月廿五」，
      万年历、老黄历、佛历均已显式打开）；
   ③ 节日名改朱砂红、周末日期红、农历日墨灰——与万年历同一组三条色轴。
   （左上角小色条不在此处取消：道历与佛历共用第 481 行那条「宗教节日格去左条色标」的规则，已归零。） */
.page-daoli .cal-cell .festival+.ld{display:block}
.page-daoli .cal-cell .ld{color:var(--dao-ink2)}
.page-daoli .cal-cell.weekend .sd-num{color:var(--red)}
/* 两枚单字角标（照佛历 .mk 同一套写法）：左上「吉」＝道教吉日（三会、三元、八节、
   八会、五腊、天赦），右上「诞」＝神仙圣诞（判据＝节日名含「诞」，照佛历 .mk-d；本库节日总表里另有
   三会日的会名与下降、成道日，那些不带「诞」字，见 daoli.html cell() 注）。
   盒模型由通用段的四角规则统一给出，本页只定落角与字色。
   🔴 两字与圣诞圆盘外圈的「诞」与「吉」同判据，同一天在格上与盘上读到同一个字。
   色：右「诞」取主体色（同佛历 .mk-d 取 --foli）；左「吉」取朱砂（同佛历 .mk-z 落朱砂，且与本页
   节日名同一支红，不引第二色）。 */
.page-daoli .cal-cell .mk-j{left:var(--sp-1);color:var(--red)}
.page-daoli .cal-cell .mk-d{right:var(--sp-1);color:var(--dao)}

/* 详情区卷首带：上下细线夹出（对齐首页 .hm-head 上下线骨架），无框无底、零圆角零投影。 */
.page-daoli .today-card{
  position:relative;overflow:hidden;
  background:transparent;
  border:0;border-top:1px solid var(--dao-line);border-bottom:1px solid var(--dao-line);
  border-radius:0;
  box-shadow:none;
  padding:var(--sp-4) 0;
}
/* 卷首竖排居中：公历小字在上、日期大字在下，再接道历与农历（对齐首页卷首的次第） */
.page-daoli .today-top{flex-direction:column;gap:var(--sp-3)}
.page-daoli .big-date{display:flex;flex-direction:column-reverse;align-items:center}
.page-daoli .big-date .d{color:var(--dao);font-family:var(--font-serif);font-weight:400;font-size:42px}
.page-daoli .big-date .ym{font-size:12.5px;letter-spacing:.2em;text-indent:.2em;color:var(--dao-ink2)}
.page-daoli .lunar-info .ln{color:var(--dao-deep);font-family:var(--font-serif);font-weight:400;
  font-size:22px;letter-spacing:.14em;text-indent:.14em}
.page-daoli .lunar-info .zodiac{font-size:12px;letter-spacing:.06em;color:var(--dao-ink2);margin-top:var(--sp-2)}

/* 信息卡：本页不使用 .info-box（整月清单一览由「圣诞圆盘」承担），故不覆写 .info-box。 */
.page-daoli .sub-note{color:var(--dao-ink2)}

/* 道历基础信息：分栏字段流（形态对齐老黄历、万年历、佛历）；
   宜忌通栏、余项双栏；项内分段符电脑端为 0.9em 间隙、移动端整行换行。
   黄道黑道并入值神建除（两者同出 getDayTianShenLuck()，不另占一行，与老黄历同例）。 */
.page-daoli .dao-info{margin-top:var(--sp-3);columns:2;column-gap:var(--sp-5);
  font-size:14px;border-top:1px solid var(--dao-line)}
.page-daoli .dao-i{display:flex;gap:var(--sp-3);padding:var(--sp-2) 0;border-bottom:1px solid var(--dao-line);
  break-inside:avoid;page-break-inside:avoid}
.page-daoli .dao-i.wide{column-span:all}
.page-daoli .dao-i>.k{flex:0 0 88px;color:var(--dao2);letter-spacing:.5px}
.page-daoli .dao-i>.v{flex:1;min-width:0;color:var(--dao-ink);line-height:1.7}
.page-daoli .dao-i>.v.yi{color:var(--green)}
/* 「戊日」项的值自带内层 <span class="ji">（警示文案）。全局本无裸 .ji 色规则（只有 .info-box .ji、
   .dao-tbl td.ji 等带作用域的），改造前它躺在无类的 <td> 里，故那句警示从未着过色；
   改字段流后仍须自持一条，否则继续继承墨色。 */
.page-daoli .dao-i>.v.ji,.page-daoli .dao-i .ji{color:var(--red)}
.page-daoli .dao-info .dao-br{display:inline-block;width:.9em}
/* 纳音干支五行项整体不拆行，折行只发生在项与项之间 */
.page-daoli .ngw{white-space:nowrap}

/* 当月道历圣诞一览：同一份数据改由「圣诞圆盘」承担（见下双盘段），故本页不再有清单块样式。 */

/* 时辰吉凶：改由「十二时辰吉凶盘」承担（同一份数据按真实时长分角，点扇区看该时辰的吉凶、值神与宜事），
   故本页不再有时辰表样式。 */

/* 九宫飞星：折叠块去卡片化，标题行即纯文字行（对齐老黄历），
   九宫格去底色、去圆角，格线取本页细线 */
.page-daoli .fold-block>summary.rel-title{margin-top:0}
.page-daoli .fold-block>summary.rel-title::before{color:var(--dao-purple)}
.page-daoli .fei-block{background:transparent;border:none;box-shadow:none}
.page-daoli .fei-cell{background:transparent;border-color:var(--dao-line);border-radius:0}
.page-daoli .fei-cap{color:var(--dao2);font-family:var(--font-serif);font-weight:400}
/* 小节标题：随玄墨字色，并补上宋体宽字距（对齐老黄历、万年历、佛历同一口径）。
   缺后三项时，本页新引入的 .rel-title 会回落到全站默认的鎏金 700 粗，即为配色泄漏。 */
.page-daoli .rel-title{color:var(--dao-deep)}

/* 双圆盘区（十二时辰吉凶盘 + 圣诞圆盘）：骨架与尺寸走通用件 .wheel/.wheel-wheels，令牌见本页主题块。
   两盘制式与老黄历、万年历、佛历一致：弧带为主体色 .22 淡线，加粗弧为主体色实色，主体色只给选中的那一段；
   时辰盘外圈时辰名按吉凶着色，圣诞圆盘外圈只标「诞」与「吉」单字、不着吉凶色（神仙圣诞无吉凶之分）。 */

/* 附加功能面板（.ai-block）：去框改线，上下各一条线夹出（与卷首带 .today-card 同款）。
   面板是页尾元素，下边线承担「内容到免责声明」的收束，不可省，去下边线会露出 .ai-body 的
   12px 底内边距，底部空白比有下框线的页面多 12px。 */
.page-daoli .ai-block{
  border:0;border-top:1px solid var(--dao-line);border-bottom:1px solid var(--dao-line);border-radius:0;
  background:transparent;color:var(--dao-ink);
  box-shadow:none;
}
.page-daoli .ai-head{
  background:transparent;
  border-bottom-color:var(--dao-line);
}
.page-daoli .ai-head h3{color:var(--dao2);font-family:var(--font-serif);font-weight:400}
.page-daoli .ai-head .ai-status{color:var(--dao-ink2)}
/* 按钮语义：AI 解析=玄青实底主按钮，全面板唯一强调色；配置模型与 soft 同档=玄青描边次按钮。
   原「配置模型」为紫炁实底（面板内第二块实底色），随本页去卡片化一并归位（对齐另三页同一条）。 */
.page-daoli .ai-block .btn{background:var(--dao);border-radius:0}
.page-daoli .ai-block .btn:hover{background:var(--dao2)}
.page-daoli .ai-block .btn.gold,.page-daoli .ai-block .btn.soft{background:var(--dao-tint);border-color:var(--dao-line);color:var(--dao-ink)}
.page-daoli .ai-block .btn.gold:hover,.page-daoli .ai-block .btn.soft:hover{background:var(--card);border-color:var(--dao);color:var(--dao2)}
.page-daoli .ai-tab{border-radius:0}
.page-daoli .ai-block .ai-out,.page-daoli .ai-block .ai-bubble.user,.page-daoli .ai-block .ai-bubble.assistant,.page-daoli .ai-block .ai-model-name{color:var(--dao-ink)}
.page-daoli .ai-block input,.page-daoli .ai-block select{color:var(--dao-ink)}
.page-daoli .ai-tab:hover{border-color:var(--dao);color:var(--dao2)}
.page-daoli .ai-tab.active{background:var(--dao);border-color:var(--dao);color:#fff}
.page-daoli .ai-tab.active:hover{background:var(--dao2);border-color:var(--dao2);color:#fff}
.page-daoli .ai-bubble.user{background:var(--dao-tint);border-color:var(--dao)}
.page-daoli .ai-bubble.assistant{border-color:var(--dao-line)}
.page-daoli .ai-model-row:hover{background:var(--dao-tint)}
.page-daoli .ai-tip{color:var(--dao-ink2)}

/* 手机端：卷首字号回退一档，字段流转单栏、分段符由 0.9em 间隙改整行换行；
   角标与节日行的处置照佛历。 */
@media(max-width:640px){
  .page-daoli .big-date .d{font-size:36px}
  .page-daoli .lunar-info .ln{font-size:19px}
  .page-daoli .dao-info{columns:1}
  /* 值按标点整段换行，末字不再独占一行（吉神宜趋一类的顿号列举最容易掉一个单字到下一行） */
  .page-daoli .dao-i>.v{word-break:keep-all}
  /* 窄屏单栏，标签栏收到 72px（最长标签四字约 58px），值栏多出 16px */
  .page-daoli .dao-i>.k{flex:0 0 72px}
  .page-daoli .dao-info .dao-br{display:block;height:0;width:0}
  /* -oneline 字段按段装箱：分段符作行内间隙，段按可用宽度入行。
     段（.dao-s）自成不可断行的行内盒，折行只落在段与段之间。 */
  .page-daoli .dao-info .dao-i.dao-oneline .dao-br{display:inline-block;width:.5em}
  .page-daoli .dao-info .dao-i.dao-oneline .dao-s{display:inline-block}
  /* 手机端隐去节日行（同佛历口径）：格宽 43px 放不下汉字，本页节日名更长
     （如「财帛星君文财神增福相公李诡祖圣诞」十四字），一律被截成带省略号的残句，比不显示更难看。
     隐去后每格只剩日期、道历日与吉诞两角标。全名改由点开取：点该格即选中，圣诞圆盘详情条逐日给
     「逢<神仙圣诞全名>；道教吉日：…」，比格内一行首名更全；道教吉日另由左角标「吉」先点出。
     注意 .festival+.ld 是相邻选择器，按 DOM 次序匹配，与本行是否显示无关，道历日不受影响。 */
  .page-daoli .cal-cell .festival{display:none}
}

/* 打印：恢复素底，去装饰与阴影（卷首带与面板本就是细线，打印只须把线色归一） */
@media print{
  .page-daoli .today-card,.page-daoli .ai-block,.page-daoli .fold-block{background:var(--card) !important;box-shadow:none !important;border-color:var(--line) !important}
  .page-daoli .cal-grid .wd{border-bottom-color:var(--line)}
}

/* ===== 页级样式：fengshui（page-fs）===== */
/* 风水页：九宫盘格取透明底加细边，悬停整宫变色；中宫另以淡底加主色边与八宫区分 */
/* 正文采用全站正文字体（13.5px 深色 ink），区分补充说明的 12px 浅灰 */
/* 说明段一律取本页次级墨，不落全站中性灰黑，与全站他页"说明取 --x-ink2"同一口径。
   🔴 此处只给字号行距、不再写 color：本段原带 color:var(--ink) 且多一层 .page，特异度高过
   .fs-t-red 一类修饰类，会把红字压成墨色；颜色交给上面 0-2-0 那条，修饰类方能生效。 */
.page-fs .sub-note{color:var(--fs-ink2)}
.page-fs .page .sub-note{font-size:13.5px;line-height:1.85;margin-top:var(--sp-2)}
.page-fs .fs-row{display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:flex-end}
/* 所在地组：去框改线（透明底、四边归零只留上细线），线色取本页浅线；排布交通用段，窄屏不覆写共享件宽度。
   上距须本页自给，且只能取 --sp-3：本组上方紧邻 .fs-row，而 .fs-row 无下外边距（通用段 .form-row 才带），
   组自身原也无上距，两处皆零则顶线贴上排控件。取 --sp-2（8px）仍不合格，因第二条判据定“页内任取两条
   相邻平行线，间距不得小于 12 像素”，上方控件的 1px 下边框与本组 1px 顶线正是这样一对相邻平行线；
   故取组间档 --sp-3（12px），合间距规范“模块内不同内容块之间”一档，恰达 12 像素下限。 */
.page-fs .birth-group,.page-fs .birth-group.compact{background:transparent;border:0;border-top:1px solid var(--fs-line);padding:var(--sp-3) 0;margin-top:var(--sp-3)}
/* 窄屏题头到上线收到移动端更小档 --sp-2；本块排在基条之后，同权重下由后位取终值 */
@media(max-width:640px){.page-fs .birth-group,.page-fs .birth-group.compact{padding-top:var(--sp-2)}}
.page-fs .fs-zibai-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:34px 40px;margin-top:var(--sp-3)}
.page-fs .fs-zibai{background:transparent}
.page-fs .fs-board-title{color:var(--gold2);text-align:center;font-size:14px;line-height:1.7;margin-bottom:var(--sp-2)}
/* 盘面文字按段断行，不在字与字之间拆断；盘面标题（含括注的长题）不在此列，
   按正文流式自适应换行，否则只能断在全角空格处，括注整段落到第二行 */
@media(max-width:640px){
  .page-fs .fs-cell .fs-gua{word-break:keep-all}
}
.page-fs .fs-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:var(--sp-2);width:100%;max-width:340px;aspect-ratio:1/1;margin:0 auto;min-width:0}
.page-fs .fs-cell{border:1px solid var(--fs-line);border-radius:0;background:transparent;box-shadow:none;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--sp-1);min-width:0;min-height:0;padding:var(--sp-2) var(--sp-2);text-align:center;transition:background .15s}
.page-fs .fs-cell:hover{background:var(--cal-hover)}
.page-fs .fs-cell .fs-star{font-size:27px;font-weight:700;line-height:1.05;letter-spacing:.5px}
.page-fs .fs-cell .fs-sname{font-size:13.5px;font-weight:600;line-height:1.2;opacity:.95}
.page-fs .fs-cell .fs-dir{font-size:12.5px;line-height:1.2;color:var(--ink2)}
.page-fs .fs-cell .fs-gua{font-size:11px;line-height:1.2;color:var(--ink2);opacity:.65}
/* 紫白飞星颜色：调用全站已有 fei-1..fei-9（style.css，老黄历/道历同款），星色依飞星本身 */
/* 吉凶徽标：宫格内以文字标注吉凶，三要、六事各宫沿用 */
.page-fs .fs-badge{font-size:11px;font-weight:400;line-height:1.2;margin:var(--sp-1) auto 0;padding:var(--sp-1) 0 0;border-top:1px solid var(--line);text-align:center;width:40%;white-space:nowrap}

.page-fs .fs-badge-g{color:var(--green)}
.page-fs .fs-badge-r{color:var(--red)}
.page-fs .fs-hint{color:var(--fs-ink2);font-size:12px;line-height:1.6;margin-top:var(--sp-2)}
/* 正文加粗一律暗金（标题非 b 不受影响；带类或内联色者按自身色） */
.page-fs b{color:var(--gold2)}
/* 警示语：整句警告按线条模式排，一条一行以细线分隔，透明底、无四边描边 */
.page-fs .fs-warn{margin-top:var(--sp-2);border-top:1px solid var(--line)}
.page-fs .fs-warn i{display:block;padding:var(--sp-2) 0;border-bottom:1px solid var(--line);font-style:normal;color:var(--fs-ink2);font-size:12.5px;line-height:1.7}
/* 金锁玉关二十四山输入区：紧凑单行卦组，桌面2列、窄屏1列，行内山名+选择器 */
.page-fs .jsy-24{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-2);margin-top:var(--sp-2)}
.page-fs .jsy-grp{display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-2);align-items:center;border:0;border-top:1px solid var(--line);border-radius:0;padding:var(--sp-2) 0;background:transparent;box-shadow:none;min-width:0}
.page-fs .jsy-grp:nth-last-child(2),.page-fs .jsy-grp:nth-last-child(3){border-bottom:1px solid var(--line)}
.page-fs .jsy-gua{display:flex;align-items:baseline;gap:var(--sp-1);font-size:13px;color:var(--gold2);white-space:nowrap}
.page-fs .jsy-gua i{font-style:normal;font-size:11px;font-weight:400;color:var(--ink2)}
.page-fs .jsy-shan{display:inline-flex;align-items:center;gap:var(--sp-1);font-size:12.5px;white-space:nowrap}
.page-fs .jsy-shan span{color:var(--gold2)}
.page-fs .jsy-shan select,.page-fs .jsy-x select{width:54px;height:30px;padding:0 2px;box-sizing:border-box;font-family:inherit;font-size:12px;border:1px solid var(--line);border-radius:0;background:var(--card);color:var(--ink)}
.page-fs .jsy-q{height:30px;padding:0 var(--sp-1);box-sizing:border-box;font-family:inherit;font-size:12px;border:1px solid var(--line);border-radius:0;background:var(--card);color:var(--ink)}
.page-fs .jsy-x{display:inline-flex;align-items:center;gap:var(--sp-1);font-size:12.5px;color:var(--ink2);white-space:nowrap}
.page-fs .jsy-24 .btn{grid-column:1/-1;justify-self:start;margin-top:var(--sp-1)}
@media(max-width:760px){
  .page-fs .jsy-24{grid-template-columns:1fr}
  .page-fs .jsy-grp:nth-last-child(3){border-bottom:0}
}
/* 形煞自检核对行（与阴宅页峦头自检同款） */
.page-fs .xl-row{display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-3);align-items:center;border:0;border-top:1px solid var(--fs-line);border-radius:0;background:transparent;box-shadow:none;padding:var(--sp-2) var(--sp-3);margin-top:var(--sp-2)}
.page-fs .xl-nm{color:var(--gold2);font-size:13.5px;font-weight:600;width:82px;flex:0 0 auto}
.page-fs .xl-d{flex:1 1 210px;font-size:12.5px;line-height:1.55;min-width:0}
.page-fs .xl-d b{font-weight:400;color:var(--gold2)}
.page-fs .xl-d i{font-style:normal;color:var(--ink2)}
.page-fs .xl-row select{height:30px;padding:0 2px;box-sizing:border-box;font-family:inherit;font-size:12px;border:1px solid var(--line);border-radius:0;background:var(--card);color:var(--ink);flex:0 0 auto}
/* 峦头精断行：独立布局（不借形煞自检的定宽行），字段随内容自适应、窄屏整组换行不重叠 */
.page-fs .lt-row{display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-3);align-items:center;border:0;border-top:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none;padding:var(--sp-2) var(--sp-3);margin-top:var(--sp-2)}
.page-fs .lt-row select,.page-fs .lt-row input[type=number]{height:30px;padding:0 4px;box-sizing:border-box;font-family:inherit;font-size:12px;border:1px solid var(--line);border-radius:0;background:var(--card);color:var(--ink);flex:0 0 auto;width:auto}
.page-fs .lt-row select.lt-type{min-width:104px}
.page-fs .lt-row input[type=number]{width:72px;padding:0 6px}
.page-fs .lt-f{display:inline-flex;align-items:center;gap:var(--sp-1);font-size:12.5px;color:var(--gold2);white-space:nowrap;flex:0 0 auto}
@media(max-width:640px){
  .page-fs .xl-nm{width:100%}
  /* 表单行与条目行的行内横向间距取移动端更小档 --sp-2，与全站表单行窄屏取值同档；
     条目行的上下内距属控件内小元素档，仍留 --sp-1 */
  .page-fs .fs-row{gap:var(--sp-2)}
  .page-fs .lt-row,.page-fs .xl-row{gap:var(--sp-1) var(--sp-2)}
  /* 说明段独占一行后折行，末行只剩一字：断行策略交浏览器按语义调整断点 */
  .page-fs .xl-d{text-wrap:pretty}
}
.page-fs .fs-mean-tbl{width:100%;border-collapse:collapse;margin:var(--sp-3) 0 0;font-size:13px}
.page-fs .fs-mean-tbl th,.page-fs .fs-mean-tbl td{border:1px solid var(--line);padding:6px 10px;text-align:left;background:transparent}
.page-fs .fs-mean-tbl th{background:var(--paper);color:var(--gold2);font-weight:400;white-space:nowrap}
.page-fs .fs-mean-tbl td.lbl-1{color:var(--gold2);font-weight:400;white-space:nowrap}
.page-fs .s-gold{color:var(--gold2)}
/* 方位布置表列宽：空间窄、宜忌宽，避免不均 */
.page-fs .fs-lay-tbl td:nth-child(1){width:12%;white-space:nowrap}
.page-fs .fs-lay-tbl td:nth-child(2){width:10%;white-space:nowrap}
.page-fs .fs-lay-tbl td:nth-child(3){width:15%;white-space:nowrap}
.page-fs .fs-lay-tbl td:nth-child(4){width:14%;white-space:nowrap}
.page-fs .fs-lay-tbl td:nth-child(5){width:22%}
.page-fs .fs-lay-tbl td:nth-child(6){width:27%}
@media(max-width:640px){
  .page-fs .fs-lay-tbl td:nth-child(2){white-space:normal}
}
/* 本体吉凶列(col3)保持 nowrap 单行 */
/* 宽表格横向滚动：多列表在窄屏出现底部滚动条而非挤压，桌面自适应 */
.page-fs .fs-tbl-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:var(--sp-3) 0 0}
.page-fs .fs-tbl-scroll .fs-mean-tbl{margin-top:0}
.page-fs .fs-xk{display:flex;flex-wrap:wrap;gap:var(--sp-5);justify-content:center;margin-top:var(--sp-3)}
.page-fs .fs-xk .fs-xk-board{flex:0 0 auto;width:300px;max-width:100%}
.page-fs .fs-xk .fs-grid{width:100%;max-width:300px;aspect-ratio:1/1;gap:var(--sp-2);margin:0 auto}
.page-fs .fs-xk .fs-cell{padding:var(--sp-1) 2px;gap:2px}
.page-fs .fs-xk .fs-star{font-size:23px}
.page-fs .fs-xk .fs-dir{font-size:11.5px}
.page-fs .fs-xk .fs-gua{font-size:10.5px}
.page-fs .fs-title-left{text-align:left}
.page-fs .fs-inp-w130{width:130px}
.page-fs .fs-inp-w120{width:120px}
.page-fs .fs-inp-w100{width:100px}
.page-fs .fs-inp-w90{width:90px}
/* 上边距档位原子类：按 4px 栅格分四档，与 :root 的 --sp-1..4 一一对应 */
.page-fs .fs-mt-1{margin-top:var(--sp-1)}
.page-fs .fs-mt-2{margin-top:var(--sp-2)}
.page-fs .fs-mt-3{margin-top:var(--sp-3)}
.page-fs .fs-mt-4{margin-top:var(--sp-4)}
.page-fs .fs-bordertop{margin-top:var(--sp-4);border-top:1px solid var(--line);padding-top:var(--sp-3)}
.page-fs .fs-bordertop-s{margin-top:var(--sp-2);border-top:1px solid var(--line);padding-top:var(--sp-2)}
.page-fs .fs-t-red{color:var(--red)}
.page-fs .fs-t-green{color:var(--green)}
.page-fs .fs-t-gold{color:var(--gold2)}
.page-fs .fs-t-ink2{color:var(--ink2)}
.page-fs .fs-t-red-b{color:var(--red);font-weight:700}
.page-fs .fs-t-gold-b{color:var(--gold2);font-weight:600}
.page-fs .fs-t-gold-bs{color:var(--gold2);font-weight:700}
.page-fs .fs-score{font-size:15px;color:var(--gold2)}
.page-fs .fs-src{color:var(--gold2);margin-top:var(--sp-1)}
.page-fs .fs-ib{display:block;color:var(--ink2)}
.page-fs .fs-ib-mt{display:block;color:var(--ink2);margin-top:var(--sp-1)}
.page-fs .fs-hua-i{display:block;color:var(--ink2)}
.page-fs .fs-row0{opacity:.45}
/* 综合罗盘专有两笔：天心十道是四正的读盘十字，坐向轴是坐度至朝度的直径线。
   两笔都压在各圈环名之下（天心十道取月晕青浅线、坐向轴取罗盘黛蓝虚线），
   只此盘用，不并入通用件 .wheel，免得其余各盘跟着多出十字与轴线 */
.page-fs .fs-zj-cross{fill:none;stroke:var(--fs-line);stroke-width:1}
.page-fs .fs-zj-axis{fill:none;stroke:var(--fs);stroke-width:1;stroke-dasharray:4 3;stroke-opacity:.55}
/* 峦头三因子精断走线条模式：不用表格方框，项间以细线分隔；
   强度另出一根细线，按界体满分 25 取比例，故线条长短可直接比；
   线色取吉凶二值（凶红吉绿），平与不论回落主体色 */
.page-fs .fs-lt{margin-top:var(--sp-3);border-top:1px solid var(--line)}
.page-fs .fs-lt-i{padding:var(--sp-2) 0;border-bottom:1px solid var(--line)}
.page-fs .fs-lt-h{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2) var(--sp-3)}
.page-fs .fs-lt-n{color:var(--gold2);font-size:13.5px}
.page-fs .fs-lt-j{font-size:12.5px}
.page-fs .fs-lt-s{margin-left:auto;color:var(--fs-ink2);font-size:12.5px;white-space:nowrap}
.page-fs .fs-lt-bar{height:3px;flex:1 1 60px;max-width:150px;background:var(--fs-line)}
.page-fs .fs-lt-bar i{display:block;height:100%}
.page-fs .fs-lt-bad i{background:var(--red)}
.page-fs .fs-lt-good i{background:var(--green)}
.page-fs .fs-lt-flat i{background:var(--fs)}
.page-fs .fs-lt-f{margin-top:var(--sp-2);color:var(--fs-ink2);font-size:12.5px;line-height:1.75}
.page-fs .fs-lt-v{color:var(--ink)}
.page-fs .fs-lt-x{color:var(--gold2)}
.page-fs .fs-lt-m{margin-top:var(--sp-1);color:var(--ink);font-size:13px;line-height:1.75}
.page-fs .fs-lt-hua{margin-left:var(--sp-2);color:var(--fs-ink2);font-size:12.5px}
/* 金锁玉关二十四山：同走线条模式，按八卦分八段，段内三山逐行，不用表格方框 */
.page-fs .fs-jsy{margin-top:var(--sp-3);border-top:1px solid var(--line)}
.page-fs .fs-jsy-g{padding:var(--sp-1) 0 var(--sp-2);border-bottom:1px solid var(--line)}
.page-fs .fs-jsy-gh{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--sp-3);padding-bottom:var(--sp-1)}
.page-fs .fs-jsy-gn{color:var(--gold2);font-size:13.5px}
.page-fs .fs-jsy-gf,.page-fs .fs-jsy-gs{color:var(--fs-ink2);font-size:12px;white-space:nowrap}
.page-fs .fs-jsy-gc{margin-left:auto;color:var(--fs-ink2);font-size:11.5px;white-space:nowrap}
.page-fs .fs-jsy-i{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--sp-1) var(--sp-2);padding-left:var(--sp-4);font-size:12.5px;line-height:1.7}
.page-fs .fs-jsy-sn{color:var(--ink);font-weight:700;min-width:3.4em}
.page-fs .fs-jsy-sv,.page-fs .fs-jsy-sp{color:var(--fs-ink2);font-size:12px;white-space:nowrap}
.page-fs .fs-jsy-j{font-size:12px;white-space:nowrap}
.page-fs .fs-jsy-m{color:var(--fs-ink2);flex:1 1 auto;font-size:12px}
@media(max-width:640px){
  .page-fs .fs-zibai-grid{grid-template-columns:1fr;gap:var(--sp-5)}
  .page-fs .fs-zibai{padding:0}
  .page-fs .fs-grid{max-width:310px;gap:var(--sp-2)}
  .page-fs .fs-cell{padding:var(--sp-1) 2px;gap:2px}
  .page-fs .fs-cell .fs-star{font-size:23px}
  .page-fs .fs-cell .fs-sname{font-size:12px}
}



.page-fs .page h1{color:var(--fs-deep);font-family:var(--fs-serif);font-size:23px;letter-spacing:.3em;text-indent:.3em;text-align:center;line-height:1.3}/* 页头细线：上下各一条 88px 夹题，卷首说明末尾 26px 竖线收束（规则档第三条） */
.page-fs .page h1::before{content:'';display:block;width:88px;height:1px;background:var(--fs-line);margin:0 auto var(--sp-3)}
.page-fs .page h1::after{content:'';display:block;width:88px;height:1px;background:var(--fs-line);margin:var(--sp-3) auto 0}
.page-fs .page .lead::after{background:var(--fs-line)}

.page-fs .page .lead{color:var(--fs-ink2);text-align:center;font-size:12.5px;letter-spacing:.22em;text-indent:.22em;margin-top:var(--sp-3)}
.page-fs .mod-title{color:var(--fs2)}
.page-fs .rel-title{color:var(--fs2)}
.page-fs .mod-head{border-top-color:var(--fs-line);border-bottom-color:var(--fs-line)}
.page-fs .mod-caret{color:var(--fs)}
.page-fs .gua-ico{background:var(--fs-tint);color:var(--fs2);border:1px solid var(--fs-line)}

.page-fs .field label{color:var(--fs2);font-weight:400}
.page-fs .field input,.page-fs .field select{border-color:var(--fs-line);background:var(--card);color:var(--fs-deep)}
/* 聚焦态不限定 .field 祖先：本页控件有落在 .field 内的，也有直接落在行内的（形煞自检、金锁玉关等处），
   一律在此收口，凡聚焦只改边色、不出外环 */
.page-fs input:focus,.page-fs select:focus,.page-fs textarea:focus{border-color:var(--fs);outline:none}

/* 主按钮：罗盘黛蓝实底 + 柔和投影；次按钮罗针金 */
.page-fs .btn{background:var(--fs);border-color:var(--fs);color:#fff;box-shadow:none}
.page-fs .btn:hover{background:var(--fs2);border-color:var(--fs2);color:#fff;box-shadow:none}
.page-fs .btn.gold{background:var(--fs);color:#fff}
.page-fs .btn-ghost{background:transparent;border:1px solid var(--fs);color:var(--fs2)}
.page-fs .btn-ghost:hover{background:var(--fs-tint)}

/* 砂水行与形煞行：月晕青描边、透明底 */
.page-fs .jsy-grp,.page-fs .xl-row{border-color:var(--fs-line)}
.page-fs .jsy-gua,.page-fs .jsy-shan span,.page-fs .xl-nm,.page-fs .xl-d b,.page-fs b{color:var(--fs2)}

/* 附加功能面板（基础款） */
.page-fs .ai-block{
  border:0;border-top:1px solid var(--fs-line);border-bottom:1px solid var(--fs-line);border-radius:0;
  background:transparent;color:var(--fs-ink);box-shadow:none;
}
.page-fs .ai-head{background:transparent;border-bottom-color:var(--fs-line)}
.page-fs .ai-head h3{color:var(--fs2)}
/* AI 面板状态字与提示：全站共享件，通用段取 --ink2，本页取本页次级字色，与页内其余次级文本同源 */
.page-fs .ai-head .ai-status{color:var(--fs-ink2)}
.page-fs .ai-tip{color:var(--fs-ink2)}
/* 模块副标题：通用段取 --ink2，本页以本页次级字色收口，与页内其余次级文本同源 */
.page-fs .mod-sub{color:var(--fs-ink2)}
.page-fs .ai-block .btn{background:var(--fs);color:#fff;box-shadow:none}
.page-fs .ai-block .btn:hover{background:var(--fs2)}
.page-fs .ai-block .btn.gold,.page-fs .ai-block .btn.soft{background:var(--fs-tint);border-color:var(--fs-line);color:var(--fs-ink);box-shadow:none}
.page-fs .ai-block .btn.gold:hover,.page-fs .ai-block .btn.soft:hover{background:var(--card);border-color:var(--fs);color:var(--fs2)}
.page-fs .ai-block .ai-out,.page-fs .ai-block .ai-bubble.user,.page-fs .ai-block .ai-bubble.assistant,.page-fs .ai-block .ai-model-name,.page-fs .ai-block input,.page-fs .ai-block select{color:var(--fs-ink)}
.page-fs .ai-tab.active{background:var(--fs);border-color:var(--fs);color:#fff}
.page-fs .ai-bubble.user{background:var(--fs-tint);border-color:var(--fs)}
.page-fs .ai-bubble.assistant{border-color:var(--fs-line)}
/* 打印：题头去淡底，描边转中性灰 */
@media print{
  .page-fs .mod-head{background:var(--card) !important;box-shadow:none !important;border-color:var(--line) !important}
}
/* 阳宅页综合诊断（.page-fs）：结论卡、病点清单、层徽标、调整卡。
   形制与阴宅页（.page-fy）那套总判定同族：上边线承担分界、无方框无底色、字色只在
   吉凶二值语义色与墨档之间取，故只把颜色令牌换成阳宅的 --fs 系，不再另造一套形制。
   段标记只两种形态（主题段、页级样式段），族内小标题取本形态，不与段标记同形。 */
.page-fs .fs-verdict{border:0;border-top:1px solid var(--fs-line);border-radius:0;background:transparent;box-shadow:none;padding:var(--sp-3) 0 0;margin-top:var(--sp-3)}
.page-fs .fv-top{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--sp-2)}
.page-fs .fv-label{font-size:12.5px;color:var(--fs-ink2)}
.page-fs .fv-status{font-size:21px;font-weight:700;letter-spacing:2px}
.page-fs .fs-verdict.st-bad .fv-status{color:var(--red)}
.page-fs .fs-verdict.st-warn .fv-status{color:var(--fs2)}
.page-fs .fs-verdict.st-ok .fv-status{color:var(--green)}
.page-fs .fv-why{font-size:13.5px;color:var(--fs-ink)}
.page-fs .fv-act{font-size:12.5px;color:var(--fs-ink2);margin-top:var(--sp-1);line-height:1.7}
.page-fs .fv-note{font-size:12px;color:var(--fs-ink2);margin-top:var(--sp-2);line-height:1.7}
/* 病点清单表：fixed 布局按列定宽（层与检查项 118、层分 70、档 64），断要列占余宽流式折行；
   移动端由 app.js 兜底（.tbl-hs 横滚、.xj-tc 内容层封顶），本段不另打 per-table 补丁。 */
.page-fs .fs-tbl-fixed{table-layout:fixed}
.page-fs .fs-nowrap{white-space:nowrap}
.page-fs .fs-w118{width:118px}
.page-fs .fs-w70px{width:70px}
.page-fs .fs-w64px{width:64px}
.page-fs .fs-pad-l18{padding-left:var(--sp-4)}
.page-fs .fs-row-veto{background:rgba(158,61,47,.07)}
.page-fs .fs-row-hi{background:rgba(46,125,50,.07)}
.page-fs .fs-bg-paper{background:var(--fs-tint)}
.page-fs .fs-jump{cursor:pointer;color:var(--gold2)}
.page-fs .fs-score-hi{color:var(--green)}
.page-fs .mod-score{margin-left:auto;flex:0 0 auto;font-size:12.5px;font-weight:600;color:var(--fs-ink2);white-space:nowrap}
.page-fs .mod-score.s-hi{color:var(--green)}
.page-fs .mod-score.s-low{color:var(--red)}
.page-fs .scbar{height:6px;border-radius:0;background:var(--fs-tint);margin-top:var(--sp-1);overflow:hidden;max-width:96px}
.page-fs .scbar i{display:block;height:100%;border-radius:0}
.page-fs .scbar i.b-hi{background:var(--green)}
.page-fs .scbar i.b-mid{background:var(--fs2)}
.page-fs .scbar i.b-low{background:var(--red)}
/* 宫位↔房间映射：一行小输入，选填；窄屏折行 */
.page-fs .fs-room-note{font-size:12px}
.page-fs .fs-room-row{display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-3);align-items:center}
/* 房间行的行内横向间距取移动端更小档 --sp-2（上下内距仍留 --sp-1）；
   本块排在基条之后，同权重下由后位取终值 */
@media(max-width:640px){
  .page-fs .fs-room-row{gap:var(--sp-1) var(--sp-2)}
}
.page-fs .fs-room-i{display:inline-flex;align-items:center;gap:var(--sp-1);font-size:12.5px;white-space:nowrap}
.page-fs .fs-room-i label{color:var(--gold2)}
.page-fs .fs-room-i input{width:76px;height:30px;padding:0 var(--sp-1);box-sizing:border-box;font-family:inherit;font-size:12px;border:1px solid var(--line);border-radius:0;background:var(--card);color:var(--ink)}
/* ===== 页级样式：fengshui-yin（page-fy）===== */
/* 风水页共用：正文采用全站正文字体（13.5px）；副注取本页次级字色，与全站各页页级次级字色口径一致，
   同页隔壁 .page-fs 亦同。星曜、五行色标（fei-*、wx-*）按语义色走，不归本页令牌。 */
/* 罗经立向盘（三盘三针）：圈数多于他盘（周天刻度、正兼向带、三盘三针三环、百二十分金共六层），
   440 骨架可用径向仅 104 单位而六层需 183 单位，装不下，故本盘另立 528 骨架（外圈 246、盘心 56）。
   盘径不追满栏：七层盘层厚与字号互为制约，骨架放大只是等比放大，字号压不下来；要字细、内圈小，
   只能把显示宽收住。罗盘属整盘判读仪器，窄屏取容器满宽一眼看全，不设横向滚动。 */
.page-fy .wheel-luo{max-width:560px}
.page-fy .page .sub-note{color:var(--fy-ink2);font-size:13.5px;line-height:1.85;margin-top:var(--sp-2)}
.page-fy .mod-sub{color:var(--fy-ink2)}
.page-fy .fs-row{display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:flex-end}
/* 所在地组：去框改线（透明底、四边归零只留上细线），线色取本页浅线；排布交通用段，窄屏不覆写共享件宽度。
   上距须本页自给，同阳宅页：上方 .fs-row 无下外边距，两处皆零则顶线贴上排控件；且取 --sp-3 而非 --sp-2，
   因第二条判据定“相邻平行线间距不得小于 12 像素”，上方控件的 1px 下边框与本组 1px 顶线即一对相邻平行线。 */
.page-fy .birth-group,.page-fy .birth-group.compact{background:transparent;border:0;border-top:1px solid var(--fy-line);padding:var(--sp-3) 0;margin-top:var(--sp-3)}
/* 窄屏题头到上线收到移动端更小档 --sp-2；本块排在基条之后，同权重下由后位取终值 */
@media(max-width:640px){.page-fy .birth-group,.page-fy .birth-group.compact{padding-top:var(--sp-2)}}
.page-fy .fs-board-title{color:var(--gold2);text-align:center;font-size:14px;line-height:1.7;margin-bottom:var(--sp-2)}
.page-fy .fs-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:var(--sp-2);width:100%;max-width:340px;aspect-ratio:1/1;margin:0 auto;min-width:0}
.page-fy .fs-cell{border:1px solid var(--fy-line);border-radius:0;background:transparent;box-shadow:none;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--sp-1);min-width:0;min-height:0;padding:var(--sp-2) var(--sp-2);text-align:center;transition:background .15s}
.page-fy .fs-cell:hover{background:var(--cal-hover)}
.page-fy .fs-cell .fs-star{font-size:27px;font-weight:700;line-height:1.05;letter-spacing:.5px}
.page-fy .fs-cell .fs-dir{font-size:12.5px;line-height:1.2;color:var(--fy-ink2)}
.page-fy .fs-cell .fs-gua{font-size:11px;line-height:1.2;color:var(--fy-ink2);opacity:.65}
.page-fy .fs-xk{display:flex;flex-wrap:wrap;gap:var(--sp-5);justify-content:center;margin-top:var(--sp-3)}
.page-fy .fs-xk .fs-xk-board{flex:0 0 auto;width:300px;max-width:100%}
.page-fy .fs-xk .fs-grid{width:100%;max-width:300px;aspect-ratio:1/1;gap:var(--sp-2);margin:0 auto}
.page-fy .fs-xk .fs-cell{padding:var(--sp-1) 2px;gap:2px}
.page-fy .fs-xk .fs-star{font-size:23px}
.page-fy .fs-xk .fs-dir{font-size:11.5px}
.page-fy .fs-xk .fs-gua{font-size:10.5px}
.page-fy .fs-mean-tbl{width:100%;border-collapse:collapse;margin:var(--sp-3) 0 0;font-size:13px}
.page-fy .fs-mean-tbl th,.page-fy .fs-mean-tbl td{border:1px solid var(--fy-line);padding:6px 10px;text-align:left;background:transparent}
.page-fy .fs-mean-tbl th{background:var(--paper);color:var(--gold2);border-bottom:1px solid var(--fy-line);font-weight:400;white-space:nowrap}
.page-fy .fs-mean-tbl td.lbl-1{color:var(--gold2);font-weight:400;white-space:nowrap}
.page-fy .s-gold{color:var(--gold2)}
/* 宽表格横向滚动：多列表窄屏出滚动条而非挤压 */
.page-fy .fs-tbl-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:var(--sp-3) 0 0}
.page-fy .fs-tbl-scroll .fs-mean-tbl{margin-top:0}
.page-fy .fs-badge-g{color:var(--green)}
.page-fy .fs-badge-r{color:var(--red)}
/* 正文加粗一律暗金（标题非 b 不受影响；带类/内联色者按自身色） */
.page-fy b{color:var(--gold2)}
.page-fy .fs-hint{font-size:12px;color:var(--fy-ink2);line-height:1.6;margin-top:var(--sp-2)}
/* 穴场形峦自检：行式选择（上相/下相对照 + 单选） */
.page-fy .xl-row{display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-3);align-items:center;border:0;border-top:1px solid var(--fy-line);border-radius:0;background:transparent;box-shadow:none;padding:var(--sp-2) var(--sp-3);margin-top:var(--sp-2)}
.page-fy .xl-nm{color:var(--gold2);font-size:13.5px;font-weight:600;width:82px;flex:0 0 auto}
.page-fy .xl-d{flex:1 1 210px;font-size:12.5px;line-height:1.55;min-width:0}
.page-fy .xl-d b{font-weight:400;color:var(--gold2)}
.page-fy .xl-d i{font-style:normal;color:var(--fy-ink2)}
.page-fy .xl-row select{height:30px;padding:0 2px;box-sizing:border-box;font-family:inherit;font-size:12px;border:1px solid var(--fy-line);border-radius:0;background:var(--card);color:var(--fy-ink);flex:0 0 auto}
/* 补龙逐支/相主逐干并排表：桌面自适应屏宽（不出底部滚动条），窄屏单列 */
.page-fy .bl-two-tbl{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3);margin-top:var(--sp-3);min-width:0}
.page-fy .bl-two-tbl>div{min-width:0}
.page-fy .bl-two-tbl .fs-mean-tbl{margin-top:0;width:100%;table-layout:fixed}
.page-fy .bl-two-tbl .fs-mean-tbl th,.page-fy .bl-two-tbl .fs-mean-tbl td{word-break:break-all;white-space:normal}
@media(max-width:640px){
  .page-fy .bl-two-tbl{grid-template-columns:1fr}
}
@media(max-width:640px){
  .page-fy .fs-grid{max-width:310px;gap:var(--sp-2)}
  .page-fy .fs-cell{padding:var(--sp-1) 2px;gap:2px}
  .page-fy .fs-cell .fs-star{font-size:23px}
  .page-fy .xl-nm{width:100%}
  /* 表单行与条目行的行内横向间距取移动端更小档 --sp-2，与全站表单行窄屏取值同档；
     条目行的上下内距属控件内小元素档，仍留 --sp-1 */
  .page-fy .fs-row{gap:var(--sp-2)}
  .page-fy .xl-row{gap:var(--sp-1) var(--sp-2)}
  /* 说明段独占一行后折行，末行只剩一字：断行策略交浏览器按语义调整断点 */
  .page-fy .xl-d{text-wrap:pretty}
}
/* 页顶结论卡与步骤条：主线“避凶选吉”的总览，与底部总判定表同源联动 */
.page-fy .fs-verdict{border:0;border-top:1px solid var(--fy-line);border-radius:0;background:transparent;box-shadow:none;padding:var(--sp-3) 0 0;margin-top:var(--sp-3)}
.page-fy .fv-top{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--sp-2)}
.page-fy .fv-label{font-size:12.5px;color:var(--fy-ink2)}
.page-fy .fv-status{font-size:21px;font-weight:700;letter-spacing:2px}
.page-fy .fs-verdict.st-bad .fv-status{color:var(--red)}
.page-fy .fs-verdict.st-warn .fv-status{color:var(--fy2)}
.page-fy .fs-verdict.st-ok .fv-status{color:var(--green)}
.page-fy .fv-why{font-size:13.5px;color:var(--fy-ink)}
.page-fy .fv-act{font-size:12.5px;color:var(--fy-ink2);margin-top:var(--sp-1);line-height:1.7}
.page-fy .fv-note{font-size:12px;color:var(--fy-ink2);margin-top:var(--sp-2);line-height:1.7}
/* 综合判定表：fixed 布局按列定宽（步骤118、得分70、等级64），要点列自适应换行分段，桌面窄屏都不出横向滚动 */
.page-fy #fvCard .fs-mean-tbl{min-width:0}
.page-fy #fvCard .fs-mean-tbl th:nth-child(4),.page-fy #fvCard .fs-mean-tbl td:nth-child(4){white-space:normal;overflow-wrap:break-word}
.page-fy .fv-rec{font-size:13px;color:var(--gold2);margin-top:var(--sp-2);line-height:1.7}
/* 静态知识参考（fs-ref）：二级折叠区统一形制（同 .mh-ref），页面段只写线色 */
.page-fy details.fs-ref{border:0;border-top:1px solid var(--fy-line);border-radius:0;background:transparent;box-shadow:none;margin-top:var(--sp-4);padding:var(--sp-3) 0}
.page-fy details.fs-ref:not([open]){border-bottom:1px solid var(--fy-line)}
.page-fy details.fs-ref>summary{color:var(--gold2);cursor:pointer;list-style:none;font-family:var(--font-serif);font-weight:400;font-size:var(--tier3);letter-spacing:.1em;line-height:1.5}
.page-fy details.fs-ref>summary::-webkit-details-marker{display:none}
.page-fy details.fs-ref>summary:before{content:'▸';margin-right:var(--sp-2)}
.page-fy details.fs-ref[open]>summary:before{content:'▾'}
.page-fy .fs-title-left{text-align:left}
.page-fy .fs-inp-w130{width:130px}
.page-fy .fs-inp-w120{width:120px}
.page-fy .fs-inp-w100{width:100px}
.page-fy .fs-inp-w90{width:90px}
/* 上边距档位原子类：按 4px 栅格分档，与 :root 的 --sp-2..4 一一对应 */
.page-fy .fs-mt-2{margin-top:var(--sp-2)}
.page-fy .fs-mt-3{margin-top:var(--sp-3)}
.page-fy .fs-mt-4{margin-top:var(--sp-4)}
.page-fy .fs-bordertop{margin-top:var(--sp-4);border-top:1px solid var(--fy-line);padding-top:var(--sp-3)}
.page-fy .fs-bordertop-s{margin-top:var(--sp-2);border-top:1px solid var(--fy-line);padding-top:var(--sp-2)}
.page-fy .fs-t-red{color:var(--red)}
.page-fy .fs-t-green{color:var(--green)}
.page-fy .fs-t-gold{color:var(--gold2)}
.page-fy .fs-t-ink2{color:var(--fy-ink2)}
.page-fy .fs-t-ink{color:var(--fy-ink)}
.page-fy .fs-score{font-size:15px;color:var(--gold2)}
.page-fy .fs-row0{opacity:.45}
.page-fy .fs-calbg{background:var(--cal-hover)}
.page-fy .fs-tbl-fixed{table-layout:fixed}
.page-fy .fs-nowrap{white-space:nowrap}
.page-fy .fs-pad-l18{padding-left:var(--sp-4)}
.page-fy .fs-bg-paper{background:var(--paper)}
.page-fy .fs-w118{width:118px}
.page-fy .fs-w70px{width:70px}
.page-fy .fs-w64px{width:64px}
.page-fy .fs-w1pct{white-space:nowrap;width:1%}
.page-fy .fs-fv-status{font-size:16px}
.page-fy .fs-jump{cursor:pointer;color:var(--gold2)}
.page-fy .fs-row-veto{background:rgba(158,61,47,.07)}
.page-fy .fs-row-hi{background:rgba(46,125,50,.07)}
.page-fy .fs-row-paper{background:var(--paper)}
.page-fy .fs-score-hi{color:var(--green)}
.page-fy .fs-th-w90{width:90px}
.page-fy .fs-th-w70{width:70px}
.page-fy .fs-th-w130{width:130px}



.page-fy .page h1{color:var(--fy-deep);font-family:var(--fy-serif);font-size:23px;letter-spacing:.3em;text-indent:.3em;text-align:center;line-height:1.3}/* 页头细线：上下各一条 88px 夹题，卷首说明末尾 26px 竖线收束（规则档第三条） */
.page-fy .page h1::before{content:'';display:block;width:88px;height:1px;background:var(--fy-line);margin:0 auto var(--sp-3)}
.page-fy .page h1::after{content:'';display:block;width:88px;height:1px;background:var(--fy-line);margin:var(--sp-3) auto 0}
.page-fy .page .lead::after{background:var(--fy-line)}
.page-fy .page .lead{color:var(--fy-ink2);text-align:center;font-size:12.5px;letter-spacing:.22em;text-indent:.22em;margin-top:var(--sp-3)}
.page-fy .mod-title{color:var(--fy2)}
.page-fy .rel-title{color:var(--fy2)}
.page-fy .mod-head{border-top-color:var(--fy-line);border-bottom-color:var(--fy-line)}
.page-fy .mod-caret{color:var(--fy)}
.page-fy .gua-ico{background:var(--fy-tint);color:var(--fy2);border:1px solid var(--fy-line)}
/* 模块头分数徽标：八步各自评分与最终分就地显示（两分制的分项分），与页末综合判定同源。
   靠右排（margin-left:auto）；未评取本页次级字色、达标吉绿、未达标凶红，不上第三支色相。 */
.page-fy .mod-score{margin-left:auto;flex:0 0 auto;font-size:12.5px;font-weight:600;color:var(--fy-ink2);white-space:nowrap}
.page-fy .mod-score.s-hi{color:var(--green)}
.page-fy .mod-score.s-low{color:var(--red)}
/* 综合判定得分条：长度=分数，颜色分档（绿上格/浅绿可用/金慎/红短板），首屏可挑 */
.page-fy .scbar{height:6px;border-radius:0;background:var(--fy-tint);margin-top:var(--sp-1);overflow:hidden;max-width:96px}
.page-fy .scbar i{display:block;height:100%;border-radius:0}
/* 得分条三档：高档取吉绿、中档取本页主体色深档、低档取凶红，三档均取语义色令牌 */
.page-fy .scbar i.b-hi{background:var(--green)}
.page-fy .scbar i.b-mid{background:var(--fy2)}
.page-fy .scbar i.b-low{background:var(--red)}

.page-fy .field label{color:var(--fy2);font-weight:400}
.page-fy .field input,.page-fy .field select{border-color:var(--fy-line);background:var(--card);color:var(--fy-deep)}
/* 聚焦态不限定 .field 祖先：峦头自检等处的下拉直接落在行内，一并在此收口 */
.page-fy input:focus,.page-fy select:focus,.page-fy textarea:focus{border-color:var(--fy);outline:none}

/* 主按钮：玄壤墨青实底 + 柔和投影；配置模型碑石银 */
.page-fy .btn{background:var(--fy);border-color:var(--fy);color:#fff;box-shadow:none}
.page-fy .btn:hover{background:var(--fy2);border-color:var(--fy2);color:#fff;box-shadow:none}
.page-fy .btn.gold{background:var(--fy);color:#fff}
.page-fy .btn-ghost{background:transparent;border:1px solid var(--fy);color:var(--fy2)}
.page-fy .btn-ghost:hover{background:var(--fy-tint)}

/* 附加功能面板（基础款） */
.page-fy .ai-block{
  border:0;border-top:1px solid var(--fy-line);border-bottom:1px solid var(--fy-line);border-radius:0;
  background:transparent;color:var(--fy-ink);box-shadow:none;
}
.page-fy .ai-head{background:transparent;border-bottom-color:var(--fy-line)}
.page-fy .ai-head h3{color:var(--fy2)}
/* AI 面板状态字：全站共享件，通用段取 --ink2，本页取本页次级字色，与页内其余次级文本同源 */
.page-fy .ai-head .ai-status{color:var(--fy-ink2)}
.page-fy .ai-tip{color:var(--fy-ink2)}
.page-fy .ai-block .btn{background:var(--fy);color:#fff;box-shadow:none}
.page-fy .ai-block .btn:hover{background:var(--fy2)}
.page-fy .ai-block .btn.gold,.page-fy .ai-block .btn.soft{background:var(--fy-tint);border-color:var(--fy-line);color:var(--fy-ink);box-shadow:none}
.page-fy .ai-block .btn.gold:hover,.page-fy .ai-block .btn.soft:hover{background:var(--card);border-color:var(--fy);color:var(--fy2)}
.page-fy .ai-block .ai-out,.page-fy .ai-block .ai-bubble.user,.page-fy .ai-block .ai-bubble.assistant,.page-fy .ai-block .ai-model-name,.page-fy .ai-block input,.page-fy .ai-block select{color:var(--fy-ink)}
.page-fy .ai-tab.active{background:var(--fy);border-color:var(--fy);color:#fff}
.page-fy .ai-bubble.user{background:var(--fy-tint);border-color:var(--fy)}
.page-fy .ai-bubble.assistant{border-color:var(--fy-line)}
/* 打印：题头去淡底，描边转中性灰 */
@media print{
  .page-fy .mod-head{background:var(--card) !important;box-shadow:none !important;border-color:var(--line) !important}
}
/* ===== 页级样式：foli（page-foli）===== */
/* 页头：卷首式（对齐首页 .hm-head 骨架：上下细线夹题、末尾竖线收束） */
.page-foli .page h1{color:var(--foli-deep);font-family:var(--foli-serif);font-size:23px;
  letter-spacing:.3em;text-indent:.3em;text-align:center;line-height:1.3}
.page-foli .page h1::before{content:'';display:block;width:88px;height:1px;background:var(--foli-line);margin:0 auto var(--sp-3)}
.page-foli .page h1::after{content:'';display:block;width:88px;height:1px;background:var(--foli-line);margin:var(--sp-3) auto 0}
.page-foli .page .lead{color:var(--foli-ink2);text-align:center;font-size:12.5px;letter-spacing:.22em;text-indent:.22em;margin-top:var(--sp-3)}
.page-foli .page .lead::after{background:var(--foli-line)}

/* 日期检索行：居中成一条查询带（对齐首页卷首干支行的居中 flex 骨架），去全宽底线（页头竖线已收束） */
.page-foli .page > .form-row{
  background:none;border:0;border-radius:0;
  padding:0;margin-top:var(--sp-2);margin-bottom:0;box-shadow:none;
  align-items:center;justify-content:center;
}
/* 字段由竖排转横排：标签与控件同行。控件宽度仍由 .dt-input 的 96px 定宽决定，不随容器伸展 */
.page-foli .page > .form-row .field{flex:0 0 auto;width:auto;max-width:none;
  flex-direction:row;align-items:center;gap:var(--sp-2)}
/* 控件与全站同高 30px（通用段给出），内边距横向取 10px，宽度仍守 96px 定宽 */
.page-foli .page > .form-row .field .dt-wrap{width:auto}
.page-foli .page > .form-row .field label{color:var(--foli2);font-weight:400;margin:0;white-space:nowrap}
.page-foli .page > .form-row .field input{border-color:var(--foli-line);border-radius:0;padding:4px 10px;
  transition:border-color .15s,box-shadow .15s}
.page-foli .page > .form-row .field input:focus{border-color:var(--foli);outline:none}
/* "今天"按钮：袈裟金实色直角，无投影（仅检索行，不动 AI 面板按钮）；检索行已 align-items:center，撤销 .cal-page 的 2px 底部补偿 */
.page-foli .page > .form-row .btn.gold{background:var(--foli);border-radius:0;padding:5px 14px;box-shadow:none;margin-bottom:0}
.page-foli .page > .form-row .btn.gold:hover{background:var(--foli2)}
/* 全页按钮兜底：未单列的按钮一律实底白字，不落回全站鎏金 */
.page-foli .btn,.page-foli .btn.gold{background:var(--foli);border-color:var(--foli);color:#fff;box-shadow:none}
.page-foli .btn:hover,.page-foli .btn.gold:hover{background:var(--foli2);color:#fff;box-shadow:none}

/* 年月导航：标题换宋体加字距（与页头同族）；箭头钮去框去底成纯字符，悬停只给檀纸淡底 */
.page-foli .cal-nav{margin:var(--sp-3) 0 var(--sp-2)}
.page-foli .cal-title{color:var(--foli-deep);font-family:var(--foli-serif);font-weight:400;font-size:19px;letter-spacing:.2em;text-indent:.2em;padding:0 var(--sp-2)}
.page-foli .nav-btn{background:transparent;border-color:transparent;color:var(--foli);border-radius:0}
.page-foli .nav-btn:hover{background:var(--foli-tint);border-color:transparent;color:var(--foli2);box-shadow:none}
.page-foli .nav-btn:focus-visible{border-color:var(--foli);outline:none}

/* 日历面板：去四周框改线（首页骨架为线不为框），只留星期行下一条线；内边距归零让格网贴齐容器 */
.page-foli .cal-grid .wd{color:var(--foli);font-family:var(--foli-serif);font-weight:400;
  letter-spacing:.12em;border-bottom:1px solid var(--foli-line);padding-bottom:var(--sp-1)}
/* 今日：袈裟金实色直角块，无投影；主位由满填承担，不靠阴影 */
.page-foli .cal-cell.today{background:var(--foli);box-shadow:none}
/* 今日恰逢斋日时，同权重的 .zhai 透明规则在后会把今日实色顶掉，故以四类名权重压回实色 */
.page-foli .cal-cell.today.zhai{background:var(--foli)}
/* 选中：佛经纸淡染 + 袈裟金细描；hover 不落今日格（白字不可读），今日格悬停加深 */
.page-foli .cal-cell.selected:not(.today){background:var(--foli-tint);border-color:var(--foli)}
.page-foli .cal-cell:hover:not(.today){background:#f4eedd}
.page-foli .cal-cell.today:hover{background:var(--foli2)}
/* 斋日标识：左上角单字「斋」，不铺底色。
   斋日不靠面积抢眼，由角标逐日点出，与「去框改线」的线、字优先一致；
   通用层的 .cal-cell.zhai 纸底与 .cal-cell.today.zhai 红底须一并置回透明与实色，否则会漏回来。 */
.page-foli .cal-cell.zhai{background:transparent}
/* 角标只有两个单字：斋（斋日）、诞（圣诞）。盒模型由通用段的四角规则统一给出，本页只定落角与字色。
   斋只认日斋，三长斋月是整月斋期不逐日打标；诞认名含「诞」者（佛菩萨圣诞与诸神诞同表，一并标）。 */
.page-foli .cal-cell .mk-z{left:var(--sp-1);color:var(--foli-cinnabar)}
.page-foli .cal-cell .mk-d{right:var(--sp-1);color:var(--foli)}
.page-foli .cal-cell .festival{color:var(--foli2);font-weight:400}
/* 佛历日恒显（对齐万年历口径：节日与农历日并存，不互相顶掉） */
.page-foli .cal-cell .festival+.ld{display:block}
.page-foli .cal-cell .ld{color:var(--foli-ink2)}
.page-foli .cal-cell.weekend .sd-num{color:var(--foli-cinnabar)}
.page-foli .cal-cell:not(.weekend):not(.today) .sd-num{color:var(--foli-ink)}

/* 详情区卷首带：上下细线夹出（对齐首页 .hm-head 上下线骨架），无框无底 */
.page-foli .today-card{
  position:relative;overflow:hidden;
  background:transparent;
  border:0;border-top:1px solid var(--foli-line);border-bottom:1px solid var(--foli-line);
  border-radius:0;
  box-shadow:none;
  padding:var(--sp-4) 0;
}
/* 卷首竖排居中：公历小字在上、日期大字在下，再接佛历与农历（对齐首页卷首的次第） */
.page-foli .today-top{flex-direction:column;gap:var(--sp-3)}
.page-foli .big-date{display:flex;flex-direction:column-reverse;align-items:center}
.page-foli .big-date .d{color:var(--foli);font-family:var(--foli-serif);font-weight:400;font-size:42px}
.page-foli .big-date .ym{font-size:12.5px;letter-spacing:.2em;text-indent:.2em;color:var(--foli-ink2)}
.page-foli .lunar-info .ln{color:var(--foli-deep);font-family:var(--foli-serif);font-weight:400;
  font-size:22px;letter-spacing:.14em;text-indent:.14em}
.page-foli .lunar-info .zodiac{font-size:12px;letter-spacing:.06em;color:var(--foli-ink2);margin-top:var(--sp-2)}

/* 小节标题：本页无鎏金，标题须随墨檀色、宋体宽字距（对齐万年历、老黄历同一口径）。
   缺此规则时，本页新引入的 .rel-title 会回落到全站默认的鎏金 700 粗，即为配色泄漏。 */
.page-foli .rel-title{color:var(--foli-deep)}
/* 基础信息：分栏字段流（形态对齐万年历、老黄历）；
   六项一律同档入流，不作通栏，通栏横排只留给万年历、老黄历的宜忌（宜忌本身即一条长横排），
   佛历的斋期与宿曜吉凶歌都只是一句小项，通栏会破掉分栏节奏；
   项内分段符电脑端为 0.9em 间隙、移动端整行换行。 */
.page-foli .foli-info{margin-top:var(--sp-3);columns:2;column-gap:var(--sp-5);
  font-size:14px;border-top:1px solid var(--foli-line)}
.page-foli .foli-i{display:flex;gap:var(--sp-3);padding:var(--sp-2) 0;border-bottom:1px solid var(--foli-line);
  break-inside:avoid;page-break-inside:avoid}
.page-foli .foli-i>.k{flex:0 0 88px;color:var(--foli2);letter-spacing:.5px}
.page-foli .foli-i>.v{flex:1;min-width:0;color:var(--foli-ink);line-height:1.7}
.page-foli .foli-i>.v.yi{color:var(--green)}
.page-foli .foli-info .foli-br{display:inline-block;width:.9em}

/* 本页不覆写 .info-box：斋期与圣诞节庆在详情区各有专条，日期格又能逐日点看，整月清单属重复罗列。
   取数函数 monthFestList、monthZhaiList 仍留给 AI 提词的当月小节。 */
.page-foli .sub-note{color:var(--foli-ink2)}

/* 附加功能面板（.ai-block）：去框改线，上下各一条线夹出（与卷首带 .today-card 同款）；
   面板是页尾元素，下边线承担「内容→免责声明」的收束，不可省——去下边线会露出 .ai-body 的
   12px 底内边距，底部空白比有下框线的页面多 12px（仅 page-foli 作用域，他页不动） */
.page-foli .ai-block{
  border:0;border-top:1px solid var(--foli-line);border-bottom:1px solid var(--foli-line);border-radius:0;
  background:transparent;color:var(--foli-ink);
  box-shadow:none;
}
.page-foli .ai-head{
  background:transparent;
  border-bottom-color:var(--foli-line);
}
.page-foli .ai-head h3{color:var(--foli2);font-family:var(--foli-serif);font-weight:400}
.page-foli .ai-head .ai-status{color:var(--foli-ink2)}
/* 按钮语义：AI 解析=袈裟金实底主按钮，全面板唯一强调色；配置模型与 soft 同档=描边次按钮（面板内不再有第二块实底色） */
.page-foli .ai-block .btn{background:var(--foli);border-radius:0}
.page-foli .ai-block .btn:hover{background:var(--foli2)}
.page-foli .ai-block .btn.gold,.page-foli .ai-block .btn.soft{background:var(--foli-tint);border-color:var(--foli-line);color:var(--foli-ink)}
.page-foli .ai-block .btn.gold:hover,.page-foli .ai-block .btn.soft:hover{background:var(--card);border-color:var(--foli);color:var(--foli2)}
/* 对话区（配置模型后出现）：标签页/气泡随主题换色，圆角归零与本页一致 */
.page-foli .ai-tab{border-radius:0}
.page-foli .ai-pane .ai-out{border-radius:0}
.page-foli .ai-bubble{border-radius:0}
.page-foli .ai-tab:hover{border-color:var(--foli);color:var(--foli2)}
.page-foli .ai-tab.active{background:var(--foli);border-color:var(--foli);color:#fff}
.page-foli .ai-tab.active:hover{background:var(--foli2);border-color:var(--foli2);color:#fff}
.page-foli .ai-bubble.user{background:var(--foli-tint);border-color:var(--foli)}
.page-foli .ai-bubble.assistant{border-color:var(--foli-line)}
.page-foli .ai-model-row:hover{background:var(--foli-tint)}
.page-foli .ai-tip{color:var(--foli-ink2)}
.page-foli .ai-block .ai-out,.page-foli .ai-block .ai-bubble.user,.page-foli .ai-block .ai-bubble.assistant,.page-foli .ai-block .ai-model-name{color:var(--foli-ink)}
.page-foli .ai-block input,.page-foli .ai-block select{color:var(--foli-ink)}

/* 手机端：卷首字号回退一档；字段流转单栏，分段符由 0.9em 间隙改整行换行 */
@media(max-width:640px){
  .page-foli .big-date .d{font-size:36px}
  .page-foli .lunar-info .ln{font-size:19px}
  .page-foli .foli-info{columns:1}
  .page-foli .foli-info .foli-br{display:block;height:0;width:0}
  /* 手机端隐去节日行：格宽 43px 放不下汉字，七字以上的名一律被截成「龙树…」这类
     带省略号的残句，比不显示更难看。隐去后每格只剩日期、佛历日与斋诞两角标，疏密也松下来。
     节日名仍在详情区「圣诞节庆」逐日可看，斋日与圣诞另由角标点出，故不是丢信息而是改由点开取。
     注意 .festival+.ld 是相邻选择器，按 DOM 次序匹配，与本行是否显示无关，佛历日不受影响。 */
  .page-foli .cal-cell .festival{display:none}
}

/* 打印：恢复素底、去阴影 */
@media print{
  .page-foli .cal-grid,.page-foli .today-card{background:var(--card) !important;box-shadow:none !important;border-color:var(--line) !important}
  .page-foli .cal-grid .wd{border-bottom-color:var(--line)}
}

/* ===== 页级样式：hehun（page-hh）===== */
/* 主体色取 H304 藕荷绛紫，落在紫微与梅花两页之间七十二度的空档上；旧暖金与佛历同相，故换。
   六档由主色按同色相推得，浅线与纸淡底同样出自本页色相，不借别页字面量 */
.page-hh{
  --hh:#8d3488;          /* 藕荷绛紫主色 */
  --hh2:#70296b;         /* 深藕：hover、强调、标签字 */
  --hh-deep:#481945;     /* 藕墨：大标题与小节标题 */
  --hh-ink:#453044;      /* 藕墨灰：正文字色 */
  --hh-ink2:#6f4d6d;     /* 次级字色：卷首说明、分值、子注 */
  --hh-line:#e6d1e5;     /* 藕荷浅线 */
  --hh-tint:#f7eef6;     /* 藕荷纸淡底 */
  --hh-alt:#b847b0;      /* 第二人标记：主色同相提亮二十个明度点，守全页单一色相 */
  --hh-serif:var(--font-serif);
  --gold:var(--hh);
  --gold2:var(--hh2);
  --gold-brown:var(--hh2);
  --gold-bg:var(--hh-tint);
  --ink2:var(--hh-ink2);
  --foot-ink:var(--hh2);

  /* 圆盘令牌（通用件 .wheel 用）：扇面取主色，选中弧取墨档。
     合婚只论得分率不论吉凶，故吉凶两色并归本页色轴，不落全局绿红 */
  --wheel-serif:var(--hh-serif);
  --wheel-line:var(--hh-line);
  --wheel-arc:var(--hh);
  --wheel-ink:var(--hh-ink);
  --wheel-deep:var(--hh-deep);
  --wheel-ink2:var(--hh-ink2);
  --wheel-cur:var(--hh);
  --wheel-core:var(--hh-tint);
  --wheel-h4:var(--hh2);
  --wheel-good:var(--green);
  --wheel-bad:var(--red);
  --line:var(--hh-line);--ink:var(--hh-ink)
}
/* 卷首式页头：上下各一条八十八像素细线夹题，卷首说明居中宽字距，末尾竖线收束 */
.page-hh .page h1{color:var(--hh-deep);font-family:var(--hh-serif);font-size:23px;
  letter-spacing:.3em;text-indent:.3em;text-align:center;line-height:1.3}
.page-hh .page h1::before{content:'';display:block;width:88px;height:1px;background:var(--hh-line);margin:0 auto var(--sp-3)}
.page-hh .page h1::after{content:'';display:block;width:88px;height:1px;background:var(--hh-line);margin:var(--sp-3) auto 0}
.page-hh .page .lead{color:var(--hh-ink2);text-align:center;font-size:12.5px;letter-spacing:.22em;text-indent:.22em;margin-top:var(--sp-3)}
.page-hh .page .lead::after{background:var(--hh-line)}
/* 双方生辰输入：两卡并排，去框改线，顶线分隔；性别色为同相深浅两档，不另立色相 */
.page-hh .hehun-forms{display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:var(--sp-3);margin:var(--sp-2) 0 var(--sp-3)}
.page-hh .hh-card{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2) var(--sp-3);
  padding:var(--sp-3) 0;width:fit-content;max-width:100%;
  background:transparent;border:0;border-top:1px solid var(--hh-line);border-radius:0;box-shadow:none}
.page-hh .hh-card .form-row{justify-content:flex-start;margin:0}
/* 卡内出生地组：排布与题头形态走通用段，此处只定本页顶距与题字色 */
.page-hh .hh-card .birth-group.compact{margin-top:var(--sp-1)}
.page-hh .hh-card .birth-group.compact .group-label{color:var(--hh2)}
.page-hh .hh-card h3{margin:0;font-size:var(--tier2);flex:0 0 auto;font-weight:400}
.page-hh .hh-card h3 .hh-sex-ico{margin-left:var(--sp-1)}
.page-hh .hh-card .field.hh-sex{flex:0 0 auto;width:auto}
/* 性别下拉按内容自适应，字段框随控件收缩，不留空洞 */
.page-hh .hh-card .field.hh-sex select{width:auto;align-self:flex-start}
.page-hh .hh-card.male h3{color:var(--hh2)}
.page-hh .hh-card.female h3{color:var(--hh-alt)}
.page-hh .hh-card .field label{color:var(--hh2);font-weight:400}
/* 表单控件描边随本页浅线；聚焦只换描边色，不绘外扩环 */
.page-hh .page input,.page-hh .page select,.page-hh .page textarea{border-color:var(--hh-line)}
.page-hh .page input:focus,.page-hh .page select:focus,.page-hh .page textarea:focus{border-color:var(--hh);outline:none}
/* 按钮兜底须带页类实权重：全站 .btn 与 .btn.gold 的底色同为朱红（0-2-0），
   :where() 会把页类权重归零而压不过，故此两条不套 :where */
.page-hh .btn,.page-hh .btn.gold{background:var(--hh);border-color:var(--hh);color:#fff;box-shadow:none}
.page-hh .btn:hover,.page-hh .btn.gold:hover{background:var(--hh2);color:#fff;box-shadow:none}
.page-hh .page > .form-row .btn.gold{border-radius:0;padding:0 var(--sp-4);margin-bottom:0}
/* 出生地组去框改线：白底四边描边改透明底加顶线，框内留白随之归零，三级下拉与经度仍同排 */
.page-hh .birth-group{background:transparent;border:0;border-top:1px solid var(--hh-line)}
/* compact 组上下内距取 --sp-3：本组上线既是分块线，其上距（由上一行 margin-bottom 给 12px）与下距
   （题头到线的距离）同为 12px，与全站该处一致。 */
.page-hh .birth-group.compact{padding:var(--sp-3) 0}
/* 窄屏题头到上线收到移动端更小档 --sp-2；本块排在基条之后，同权重下由后位取终值 */
@media(max-width:640px){.page-hh .birth-group,.page-hh .birth-group.compact{padding-top:var(--sp-2)}}
/* 日期图标框：底色与描边随本页（见通用段 .dt-ic），此处只定字形色 */
.page-hh .dt-ic{color:var(--hh-ink)}
.page-hh .hh-actions{justify-content:center}
/* 结果区：小节标题随墨档宋体宽字距，副注退到次级字色 */
.page-hh .hh-result{margin-top:var(--sp-2);color:var(--hh-ink)}
.page-hh .det-h{color:var(--hh-deep)}
.page-hh .det-sub{color:var(--hh-ink2);font-weight:400;letter-spacing:0}
/* 双方四柱：两表并排，各压一条顶线；表头淡染取本页纸淡底 */
.page-hh .hh-charts{display:flex;gap:var(--sp-4);flex-wrap:wrap;justify-content:center;margin-bottom:var(--sp-3)}
.page-hh .hh-chart{flex:1 1 300px;min-width:260px;overflow-x:auto;padding:var(--sp-3) 0;
  background:transparent;border:0;border-top:1px solid var(--hh-line);border-radius:0;box-shadow:none}
.page-hh .hh-chart-title{font-size:14px;font-weight:400;color:var(--hh-deep);text-align:center;letter-spacing:.2em;text-indent:.2em;margin-bottom:var(--sp-2)}
.page-hh .bazi-table th{background:var(--hh-tint);color:var(--hh-deep);font-weight:400}
/* 柱名单元另有 0-2-0 的 .zhu 规则压着上一条，同特异性补一条才盖得住 */
.page-hh .bazi-table .zhu{background:var(--hh-tint);color:var(--hh-deep);font-weight:400}
.page-hh .bazi-table td{color:var(--hh-ink)}
/* 行标签列（四柱、主星等）另有 paper2 淡底，随表头一并换本页纸淡底 */
.page-hh .bazi-table td:first-child{background:var(--hh-tint);color:var(--hh2)}
.page-hh .bazi-table th,.page-hh .bazi-table td{border-color:var(--hh-line)}
.page-hh .bazi-table .gan,.page-hh .bazi-table .zhi,.page-hh .bazi-table .small{color:var(--hh-ink)}
/* 综合分：数字与等第由数据按五行色内联着色，属语义色；容器线条已由共享件给出 */
.page-hh .hh-total{color:var(--hh-ink);border-color:var(--hh-line)}
.page-hh .hh-total-cap{color:var(--hh-ink2)}
.page-hh .hh-total-lv{border-top-color:var(--hh-line)}
/* 评分条目：项名取深档，分值退到次级字色，避免与项名同为深紫而分不出层级 */
.page-hh .hh-item,.page-hh .hh-item:last-child{border-color:var(--hh-line)}
.page-hh .hh-name{color:var(--hh2);font-weight:400}
.page-hh .hh-score{color:var(--hh-ink2)}
.page-hh .hh-desc{color:var(--hh-ink)}
.page-hh .hh-adv{border-color:var(--hh-line)}
.page-hh .hh-adv-box,.page-hh .hh-adv-tbl th,.page-hh .hh-adv-tbl td{border-color:var(--hh-line)}
/* 行间线与分组行线由 tr+tr 给出（0-2-1），须同特异性才盖得住 */
.page-hh .hh-adv-tbl tr+tr th,.page-hh .hh-adv-tbl tr+tr td,
.page-hh .hh-adv-tbl .hh-adv-sec td{border-color:var(--hh-line)}
.page-hh .hh-adv-tbl td{color:var(--hh-ink)}
/* 合婚两盘：六维与专项。得分率由弧带浓淡表达，盘心与盘下详情随点选走；
   标题、容器、详情条一律取通用件 .wheel-block h4 与 .wheel-wheels 与 .wheel-detail，本页不另起一套 */
/* 盘心名称最长八个字（日干夫妻主星），通用件 22px 会撑出盘心圈，本页压一档。
   通用件 .wheel .w-c1 是 0-2-0，故此处带页类实权重，不套 :where */
.page-hh .wheel .w-c1{font-size:17px;letter-spacing:.04em}
/* 盘下详情的题名走深档，与分值说明分层次；详情条内一律不加粗，故只走色 */
.page-hh .wheel-detail .wd-t{color:var(--hh-deep)}
.page-hh .notice{color:var(--hh-ink)}
/* 日主标记与八字联动提示 */
.page-hh .hh-rm{color:var(--hh2);font-weight:400}
.page-hh .hh-frombazi{margin:var(--sp-2) 0;color:var(--hh-ink2)}
/* 附加功能面板：上下细线夹出，题头与页签随本页色族 */
.page-hh .ai-block{border:0;border-top:1px solid var(--hh-line);border-bottom:1px solid var(--hh-line);
  border-radius:0;background:transparent;color:var(--hh-ink);box-shadow:none}
.page-hh .ai-head{background:transparent;border-bottom-color:var(--hh-line)}
.page-hh .ai-head h3{color:var(--hh2);font-family:var(--hh-serif);font-weight:400}
.page-hh .ai-head .ai-status{color:var(--hh-ink2)}
.page-hh .ai-block .btn{border-radius:0}
.page-hh .ai-block .btn.gold,.page-hh .ai-block .btn.soft{background:var(--hh-tint);border-color:var(--hh-line);color:var(--hh-ink)}
.page-hh .ai-block .btn.gold:hover,.page-hh .ai-block .btn.soft:hover{background:var(--card);border-color:var(--hh);color:var(--hh2)}
.page-hh .ai-tab{border-radius:0}
.page-hh .ai-pane .ai-out{border-radius:0}
.page-hh .ai-bubble{border-radius:0}
.page-hh .ai-tab:hover{border-color:var(--hh);color:var(--hh2)}
.page-hh .ai-tab.active{background:var(--hh);border-color:var(--hh);color:#fff}
.page-hh .ai-tab.active:hover{background:var(--hh2);border-color:var(--hh2);color:#fff}
.page-hh .ai-bubble.user{background:var(--hh-tint);border-color:var(--hh)}
.page-hh .ai-bubble.assistant{border-color:var(--hh-line)}
.page-hh .ai-model-row:hover{background:var(--hh-tint)}
.page-hh .ai-block input,.page-hh .ai-block select{color:var(--hh-ink)}
.page-hh .ai-tip{color:var(--hh-ink2)}
@media(max-width:640px){
  .page-hh .hehun-forms{flex-direction:column;align-items:center}
  .page-hh .hh-card{width:100%;max-width:360px;gap:var(--sp-1) var(--sp-2)}
  .page-hh .hh-charts{gap:var(--sp-3)}
  .page-hh .hh-chart{min-width:0}
  /* 窄屏性别下拉随字段铺满，桌面按内容收缩的规则在两列流式里会留空洞 */
  .page-hh .hh-card .field.hh-sex select{width:100%;align-self:stretch}
  /* 出生地组上线与上方控件底的净距须为 12px（第二条：相邻平行线不得小于 12 像素）：
     卡片在窄屏的 row-gap 给 4px，余下 8px 由本组自带的顶距补足，两处相加恰为 12px */
  .page-hh .hh-card .birth-group.compact{margin-top:var(--sp-2)}
}


/* ===== 页级样式：heluo（page-hl）===== */
/* 卷首式页头：上下各一条八十八像素细线夹题，卷首说明居中宽字距，末尾竖线收束 */
.page-hl .page h1{color:var(--hl-deep);font-family:var(--hl-serif);font-size:23px;
  letter-spacing:.3em;text-indent:.3em;text-align:center;line-height:1.3}
.page-hl .page h1::before{content:'';display:block;width:88px;height:1px;background:var(--hl-line);margin:0 auto var(--sp-3)}
.page-hl .page h1::after{content:'';display:block;width:88px;height:1px;background:var(--hl-line);margin:var(--sp-3) auto 0}
.page-hl .page .lead{color:var(--hl-ink2);text-align:center;font-size:12.5px;letter-spacing:.22em;text-indent:.22em;margin-top:var(--sp-3)}
.page-hl .page .lead::after{background:var(--hl-line)}
.page-hl .sub-note{color:var(--hl-ink2)}
/* 检索行：排盘页口径，字段竖排左起，只收一句下间距，不居中成查询带 */
.page-hl .mod-body>.form-row{margin-bottom:var(--sp-2)}
/* 表单控件描边随本页浅线；聚焦只换描边色，不绘外扩环 */
.page-hl .field input,.page-hl .field select{border-color:var(--hl-line);background:var(--card);color:var(--hl-deep)}
.page-hl .field input:focus,.page-hl .field select:focus{border-color:var(--hl);outline:none}
.page-hl .field label{color:var(--hl2);font-weight:400}
/* 模块题头：骨架与间距由通用段定形，此处只定线色 */
.page-hl .mod-head{border-top-color:var(--hl-line);border-bottom-color:var(--hl-line)}
.page-hl .mod-title{color:var(--hl2)}
.page-hl .mod-head .mod-sub{color:var(--hl-ink2)}
.page-hl .mod-caret{color:var(--hl)}
/* 按钮兜底：全站 .btn 与 .btn.gold 的底色同为朱红，须带页类实权重压住，并同条给出字色 */
.page-hl .btn,.page-hl .btn.gold{background:var(--hl);border-color:var(--hl);color:#fff;box-shadow:none}
.page-hl .btn:hover,.page-hl .btn.gold:hover{background:var(--hl2);border-color:var(--hl2);color:#fff}
.page-hl .mod-body>.form-row .btn.gold{border-radius:0;padding:0 var(--sp-4);margin-bottom:0}
/* 盘面头行：层级高于数据表 */
.page-hl .hl-bazi-line{color:var(--hl-deep);font-weight:600;margin:var(--sp-2) 0;font-size:var(--tier3)}
/* 数据结论：由纸淡底实色块承担边界，不另画四边描边 */
.page-hl .hl-sum-line{color:var(--hl-deep);background:var(--hl-tint);border:0;border-radius:0;padding:var(--sp-2) var(--sp-3);margin:var(--sp-2) 0;font-size:13px}
/* 三级题头取墨档，字号、字距与间距由通用段定形 */
/* 日期图标框：底色与描边随本页（见通用段 .dt-ic），此处只定字形色 */
.page-hl .dt-ic{color:var(--hl-ink)}
.page-hl .det-h{color:var(--hl-deep)}
.page-hl .hl-err{color:var(--red2);margin:var(--sp-2) 0}
/* 白话解读段：虚线上边与事实短注区隔，字色取正文字档，与副注的次级字分出层级 */
.page-hl .hl-jd{border-top:1px dashed var(--hl-line);margin-top:var(--sp-2);padding-top:var(--sp-2);color:var(--hl-ink);font-size:13px;line-height:1.75}
.page-hl .hl-zz{color:var(--hl-brass)}
/* 经文检索折叠框：形制与题名由通用段给出，本页只补线色与题色 */
.page-hl .mh-ref{border-color:var(--hl-line)}
.page-hl .mh-ref>summary{color:var(--hl2)}
/* 经文检索共用件：描边随本页浅线，展开态不绘投影 */
.page-hl .jw-input,.page-hl .jw-item{border-color:var(--hl-line)}
.page-hl .jw-detail{border-top-color:var(--hl-line)}
.page-hl .jw-item.jw-open{box-shadow:none}
/* 命卦卡：卦辞取楷体衬线，小号楷体在 Windows 发虚，故不落 13px */
.page-hl .hl-gua-card{margin:var(--sp-2) 0}
.page-hl .hl-gua-card h4{font-size:var(--tier4);color:var(--hl-deep);margin-bottom:var(--sp-1)}
.page-hl .hl-gci{font-family:var(--hl-serif);font-size:15px;color:var(--hl-ink2);margin:var(--sp-1) 0}
.page-hl .hl-yao-tbl td:first-child{width:4.5em;color:var(--hl2)}
/* 表格：虚线行线加淡底表头；容器不画线，边界由表框承担，长表由 wrap 横滚 */
.page-hl .hl-tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:var(--sp-2) 0}
.page-hl .hl-tbl{border-collapse:collapse;width:100%;max-width:100%;font-size:13px}
.page-hl .hl-tbl th{background:var(--hl-tint);color:var(--hl-deep);font-weight:600;text-align:left;padding:7px 10px;border-bottom:1px solid var(--hl-line);white-space:nowrap}
.page-hl .hl-tbl td{padding:7px 10px;border-bottom:1px dashed var(--hl-line);color:var(--hl-ink)}
.page-hl .hl-tbl tr.hl-cur td{background:var(--hl-tint);color:var(--hl-deep)}
/* 元堂标记取古铜金点缀色。该格只出现在 tr.hl-cur 行内，而当前行单元格另有一条 0-3-2
   的墨档字色压着，故本条的第二个选择器按同档写足，点缀色才真正落得上 */
.page-hl .hl-tag,.page-hl .hl-tbl tr.hl-cur td.hl-tag{color:var(--hl-brass);font-weight:600;white-space:nowrap}
/* 附加功能面板：上下细线夹出，下边线承担与免责声明之间的收束；零圆角、零渐变、零投影 */
.page-hl .ai-block{border:0;border-top:1px solid var(--hl-line);border-bottom:1px solid var(--hl-line);
  border-radius:0;background:transparent;color:var(--hl-ink);box-shadow:none}
.page-hl .ai-head{background:transparent;border-bottom-color:var(--hl-line)}
.page-hl .ai-head h3{color:var(--hl2);font-family:var(--hl-serif);font-weight:400}
.page-hl .ai-head .ai-status{color:var(--hl-ink2)}
.page-hl .ai-block .btn{border-radius:0}
.page-hl .ai-block .btn.gold,.page-hl .ai-block .btn.soft{background:var(--hl-tint);border-color:var(--hl-line);color:var(--hl-ink)}
.page-hl .ai-block .btn.gold:hover,.page-hl .ai-block .btn.soft:hover{background:var(--card);border-color:var(--hl);color:var(--hl2)}
.page-hl .ai-tab{border-radius:0}
.page-hl .ai-pane .ai-out{border-radius:0}
.page-hl .ai-bubble{border-radius:0}
.page-hl .ai-tab:hover{border-color:var(--hl);color:var(--hl2)}
.page-hl .ai-tab.active{background:var(--hl);border-color:var(--hl);color:#fff}
.page-hl .ai-tab.active:hover{background:var(--hl2);border-color:var(--hl2);color:#fff}
.page-hl .ai-bubble.user{background:var(--hl-tint);border-color:var(--hl)}
.page-hl .ai-bubble.assistant{border-color:var(--hl-line)}
.page-hl .ai-model-row:hover{background:var(--hl-tint)}
.page-hl .ai-block input,.page-hl .ai-block select{color:var(--hl-ink)}
.page-hl .ai-tip{color:var(--hl-ink2)}
@media(max-width:640px){
  /* 长表在窄屏逐格收紧并放开表头换行，表宽一律随内容，不写死 min-width */
  .page-hl .hl-tbl th,.page-hl .hl-tbl td{padding:var(--sp-1) var(--sp-2)}
  .page-hl .hl-tbl th{white-space:normal}
  /* 卦辞楷体在窄屏再降一档，避免长句把卦卡撑出屏 */
  .page-hl .hl-gci{font-size:14px}
}
@media print{
  .page-hl .hl-tbl th,.page-hl .mod-head{background:var(--card) !important;color:var(--ink) !important;border-color:var(--line) !important}
  .page-hl .hl-tbl tr.hl-cur td{background:var(--card) !important}
}


/* ===== 页级样式：huangji（page-hj）===== */
/* 页头：卷首式（上下细线夹题、末尾竖线收束，与藏历、择日同骨架） */
.page-hj .page h1{color:var(--hj-deep);font-family:var(--hj-serif);font-size:23px;
  letter-spacing:.3em;text-indent:.3em;text-align:center;line-height:1.3}
.page-hj .page h1::before{content:'';display:block;width:88px;height:1px;background:var(--hj-line);margin:0 auto var(--sp-3)}
.page-hj .page h1::after{content:'';display:block;width:88px;height:1px;background:var(--hj-line);margin:var(--sp-3) auto 0}
.page-hj .page .lead{color:var(--hj-ink2);text-align:center;font-size:12.5px;letter-spacing:.22em;text-indent:.22em;margin-top:var(--sp-3)}
.page-hj .page .lead::after{background:var(--hj-line)}

/* 日期检索行：居中成一条查询带，去卡片（无底无框无影） */
.page-hj .page > .form-row{
  background:none;border:0;border-radius:0;
  padding:0;margin-top:var(--sp-2);margin-bottom:0;box-shadow:none;
  align-items:center;justify-content:center;
}
/* 字段由竖排转横排：标签与控件同行。日期框宽仍由 .dt-input 的 96px 定宽决定，不随容器伸展 */
.page-hj .page > .form-row .field{flex:0 0 auto;width:auto;max-width:none;
  flex-direction:row;align-items:center;gap:var(--sp-2)}
.page-hj .page > .form-row .field .dt-wrap{width:auto}
.page-hj .page > .form-row .field label{color:var(--hj2);font-weight:400;margin:0;white-space:nowrap}
/* 年份框与下拉同本页线色，横向内边距取 10px，高度与日期框同由通用段给 30px */
.page-hj .page > .form-row .field input,.page-hj .page > .form-row .field select{
  border-color:var(--hj-line);border-radius:0;padding:4px 10px;transition:border-color .15s}
.page-hj .page > .form-row .field input:focus,.page-hj .page > .form-row .field select:focus{
  border-color:var(--hj);outline:none}
/* 推演按钮：绛色实底直角，无投影（仅检索行，不动 AI 面板按钮） */
.page-hj .page > .form-row .btn.gold{border-radius:0;padding:5px 14px;margin-bottom:0}
.page-hj .page > .form-row .btn.gold:hover{background:var(--hj2)}

/* 表单控件描边：全站通用件给的是棕褐 --line，本页一律换绛浅线；聚焦时只换线色，不外扩光环 */
.page-hj input,.page-hj select,.page-hj textarea{border-color:var(--hj-line);transition:border-color .15s}
.page-hj input:focus,.page-hj select:focus,.page-hj textarea:focus{border-color:var(--hj);outline:none}
/* 按钮底色：全站 .btn 基色是朱红 --red，本页一律落绛族（含导航行与动态生成的按钮）；
   AI 面板的次档按钮由更高特异性的 .ai-block 规则改回绛纸淡底 */
.page-hj .btn,.page-hj .btn.gold{background:var(--hj);border-color:var(--hj);color:#fff;box-shadow:none}
.page-hj .btn:hover,.page-hj .btn.gold:hover{background:var(--hj2);color:#fff;box-shadow:none}

/* 小节标题：随墨绛色、宋体宽字距。缺此规则时本页 .rel-title 会回落到全站默认的鎏金 700 粗 */
.page-hj .rel-title{color:var(--hj-deep)}

/* 定位总览：上下细线夹出的卷首带（与藏历详情带同款），大行为宋体绛墨定位句 */
.page-hj .hj-over{
  background:transparent;border:0;border-top:1px solid var(--hj-line);
  border-radius:0;box-shadow:none;padding:var(--sp-4) 0;text-align:center;
}
.page-hj .hj-over .big{color:var(--hj-deep);font-family:var(--hj-serif);font-weight:400;
  font-size:19px;line-height:1.7;letter-spacing:.04em}
.page-hj .hj-over .big b{color:var(--hj);font-weight:400}
/* 定位字段流：键绛色、值墨灰，行间一条浅线（与藏历 .zl-info 同制式）。
   卷首带的下边线即本段的顶线，此处不再另划一条，免得两线相距 12px 读作重线 */
.page-hj .hj-info{margin-top:var(--sp-3);columns:2;column-gap:var(--sp-5);font-size:14px;border-top:1px solid var(--hj-line)}
.page-hj .hj-i{display:flex;gap:var(--sp-3);padding:var(--sp-2) 0;border-bottom:1px solid var(--hj-line);break-inside:avoid;page-break-inside:avoid}
.page-hj .hj-i>.k{flex:0 0 88px;color:var(--hj2);letter-spacing:.5px}
.page-hj .hj-i>.v{flex:1;min-width:0;color:var(--hj-ink);line-height:1.7}

/* 皇极尺：分段条。未到段留白、已过段绛浅线填实、当前段绛色满填——
   三档只差明度不换色相，主位由实色块承担，不靠阴影 */
.page-hj .hj-ruler{margin:var(--sp-2) 0}
.page-hj .hj-ruler-row{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-2)}
.page-hj .hj-ruler-lab{flex:0 0 96px;font-size:12.5px;text-align:right;white-space:nowrap;color:var(--hj2)}
.page-hj .hj-ruler-bar{flex:1;display:flex;gap:2px;min-width:0}
.page-hj .hj-seg{flex:1;height:13px;border:1px solid var(--hj-line);border-radius:0;min-width:0}
.page-hj .hj-seg.past{background:var(--hj-line)}
.page-hj .hj-seg.cur{background:var(--hj);border-color:var(--hj2)}
.page-hj .hj-ruler-cap{flex:0 0 210px;font-size:12px;color:var(--hj-ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* 元会运世定位盘的本会扇面：自盘心到会弧铺一层极淡绛色，
   把中环三十运与内环十二世一并罩进来，嵌套关系由这一块底色点出，不加第二支色 */
.page-hj .hj-wedge{fill:var(--hj);fill-opacity:.1;pointer-events:none}

/* 卦气盘：分三组，每组一条组头，组头压绛浅线，组名绛墨、组内通则墨灰；
   组内卦卡等宽三列、卡宽恒定，故三组左右对齐。卦卡去白瓷面（无底无影）只留绛浅线，
   当运那枚以绛纸淡底与绛色描边点出。卡内居中，标题两行（本卡定位行 + 卦名行），
   爻画绛色，判据与卦辞同口径墨灰，多行两端对齐而末行居中 */
.page-hj .hj-gua-group{margin-top:var(--sp-4)}
/* 组头不画线：分界交由下方首行卦卡的顶线承担，避免组头下线叠卦卡顶线成重线 */
.page-hj .hj-gua-head{display:flex;align-items:baseline;gap:var(--sp-3);flex-wrap:wrap;
  padding-bottom:var(--sp-1);margin-bottom:var(--sp-2)}
.page-hj .hj-gua-t{font-size:13px;color:var(--hj2);letter-spacing:1px}
.page-hj .hj-gua-note{font-size:11.5px;color:var(--hj-ink2);line-height:1.6}
.page-hj .hj-gua-wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-2)}
/* 卦卡只画顶线一条：组内条目口径，上下行之间、左右列之间不得出现第二条线 */
.page-hj .hj-gua-col{padding:var(--sp-2) var(--sp-3);text-align:center;min-width:0;
  border:0;border-top:1px solid var(--hj-line);border-radius:0;background:transparent;box-shadow:none}
.page-hj .hj-gua-col.big{background:var(--hj-tint);border-color:var(--hj)}
.page-hj .hj-gua-col h4{margin:0 0 var(--sp-1);font-size:14px;font-weight:400;color:var(--hj2)}
.page-hj .hj-gua-lab{display:block;font-size:11.5px;font-weight:400;color:var(--hj-ink2);letter-spacing:1px;margin-bottom:2px}
.page-hj .hj-gua-nm{display:block;font-size:15px;font-weight:600}
.page-hj .hj-gua-badge{font-size:11px;font-weight:400;color:var(--hj)}
.page-hj .hj-gua-col .ci{font-size:11.5px;color:var(--hj-ink2);margin-top:var(--sp-1);line-height:1.6;
  text-align:justify;text-align-last:center}
.page-hj .hj-yao{display:flex;gap:var(--sp-1);justify-content:center;margin:2.5px 0}
.page-hj .hj-yao .y{height:9px;border-radius:0;flex:none;background:var(--hj2)}
.page-hj .hj-yao .y.yang{width:46px}
.page-hj .hj-yao .y.yin{width:21.5px}

/* 数据表（元会运世表、术语速查、白话解读、大事锚点、原书逐年表共用一套制式）：
   表头绛纸淡底配墨绛字，正文墨灰，绛浅线描格；首列收窄不折行，正文列可折行 */
.page-hj .hj-np{width:100%;border-collapse:collapse;margin-top:var(--sp-2);font-size:13px}
.page-hj .hj-np th,.page-hj .hj-np td{
  border:1px solid var(--hj-line);padding:5px 8px;text-align:left;vertical-align:top;
  line-height:1.7;font-weight:400;color:var(--hj-ink);overflow-wrap:anywhere;
}
.page-hj .hj-np th{background:var(--hj-tint);color:var(--hj-deep);white-space:nowrap}
.page-hj .hj-np:not(.hj-chron) th:first-child,.page-hj .hj-np:not(.hj-chron) td:first-child{width:1%;white-space:nowrap}
.page-hj .hj-np-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
/* 术语速查：分组行绛染，术语名列收窄 */
.page-hj .hj-gloss-g{background:var(--hj-tint);color:var(--hj2);letter-spacing:.5px}
.page-hj .hj-term-nm{white-space:nowrap;width:1%}
/* 原书逐年表：固定布局三列，colgroup 显式定宽，单元格强制可折行 */
.page-hj .hj-chron{table-layout:fixed}
.page-hj .hj-chron td{white-space:normal;min-width:0}
.page-hj .hj-chron col.c1{width:26%}
.page-hj .hj-chron col.c2{width:14%}

/* 折叠参考块（hj-ref）：二级折叠区统一形制（同 .mh-ref：收起态上下两线、展开态只留上线） */
.page-hj details.hj-ref{margin-top:var(--sp-4);text-align:left;background:transparent;border:0;border-top:1px solid var(--hj-line);border-radius:0;box-shadow:none;padding:var(--sp-3) 0;overflow-x:auto;-webkit-overflow-scrolling:touch}
.page-hj details.hj-ref:not([open]){border-bottom:1px solid var(--hj-line)}
.page-hj details.hj-ref summary{cursor:pointer;font-family:var(--font-serif);font-weight:400;font-size:var(--tier3);letter-spacing:.1em;line-height:1.5;color:var(--hj2)}
.page-hj details.hj-ref summary:hover{color:var(--hj)}

/* 大事锚点三档着色：本世绛纸淡底、本运淡绛、同会绛字；图例字取深绛 */
.page-hj .hj-np tr.hj-row-shi td{background:var(--hj-tint)}
.page-hj .hj-np tr.hj-row-yun td{background:#f7edf0}
.page-hj .hj-np tr.hj-row-hui td{color:var(--hj2)}
.page-hj .hj-mark{color:var(--hj2)}

/* 按钮行（原书逐年表的翻运与过滤） */
.page-hj .hj-nav{display:flex;gap:var(--sp-2);flex-wrap:wrap;margin:var(--sp-2) 0}
.page-hj .hj-nav .btn{padding:0 12px;font-size:12.5px}

/* 正文说明与小注：次级字统一绛族暖灰 */
.page-hj .ly-zh-p,.page-hj .notice{color:var(--hj-ink)}
.page-hj .sub-note{color:var(--hj-ink2)}

/* 检索行下的口径小注与定位行 */
.page-hj .hj-hint-line{margin:var(--sp-2) 2px 0}
.page-hj .hj-info-line{margin:var(--sp-1) 2px var(--sp-2)}

/* 年份直达框：按「内容 + 左右对称间距」定 104px（占位提示 2026 前2357 字形约 77px，左右各约 13px） */
.page-hj #yInput{width:104px}

/* 附加功能面板：去框改线，上下各一条线夹出（与卷首带 .hj-over 同款）；
   面板是页尾元素，下边线承担「内容→免责声明」的收束，不可省 */
.page-hj .ai-block{
  border:0;border-top:1px solid var(--hj-line);border-bottom:1px solid var(--hj-line);border-radius:0;
  background:transparent;color:var(--hj-ink);box-shadow:none;
}
.page-hj .ai-head{background:transparent;border-bottom-color:var(--hj-line)}
.page-hj .ai-head h3{color:var(--hj2);font-family:var(--hj-serif);font-weight:400}
.page-hj .ai-head .ai-status{color:var(--hj-ink2)}
/* 按钮两档：AI 解析＝绛色实底主按钮，全面板唯一强调色；配置模型与 soft 同档＝绛纸淡底描边次按钮 */
.page-hj .ai-block .btn{border-radius:0}
.page-hj .ai-block .btn.gold,.page-hj .ai-block .btn.soft{background:var(--hj-tint);border-color:var(--hj-line);color:var(--hj-ink)}
.page-hj .ai-block .btn.gold:hover,.page-hj .ai-block .btn.soft:hover{background:var(--card);border-color:var(--hj);color:var(--hj2)}
/* 对话区：标签页与气泡随主题换色，圆角归零与本页一致 */
.page-hj .ai-tab,.page-hj .ai-pane .ai-out,.page-hj .ai-bubble{border-radius:0}
.page-hj .ai-tab:hover{border-color:var(--hj);color:var(--hj2)}
.page-hj .ai-tab.active{background:var(--hj);border-color:var(--hj);color:#fff}
.page-hj .ai-tab.active:hover{background:var(--hj2);border-color:var(--hj2);color:#fff}
.page-hj .ai-bubble.user{background:var(--hj-tint);border-color:var(--hj)}
.page-hj .ai-bubble.assistant{border-color:var(--hj-line)}
.page-hj .ai-model-row:hover{background:var(--hj-tint)}
.page-hj .ai-tip{color:var(--hj-ink2)}
.page-hj .ai-block .ai-out,.page-hj .ai-block .ai-bubble.user,.page-hj .ai-block .ai-bubble.assistant,.page-hj .ai-block .ai-model-name{color:var(--hj-ink)}
.page-hj .ai-block input,.page-hj .ai-block select{color:var(--hj-ink)}

/* 窄屏：尺容量说明与尺名收窄；卦卡降为两列，一格独占一行太费纵向空间。
   组内张数为奇数时（爻变推演组三张）末张单独成行，令其跨满两格再居中收窄为一格宽：
   宽度与其余各卡相同，只是居中，仍读作同一套卡片 */
@media(max-width:900px){
  .page-hj .hj-ruler-cap{display:none}
  .page-hj .hj-ruler-lab{flex-basis:64px}
  .page-hj .hj-gua-wrap{grid-template-columns:repeat(2,1fr)}
  .page-hj .hj-gua-col:last-child:nth-child(odd){grid-column:1 / -1;justify-self:center;width:calc(50% - var(--sp-2)/2)}
}
@media(max-width:640px){
  /* 原书逐年表列宽走全站契约（按内容定宽）：固定布局下按 100% 表宽配的百分比，
     在 max-content 表宽下会把首列同比例撑宽成空白（实测 40% 落到 224px 而内容只需 91px），故一律归零 */
  .page-hj .hj-chron col.c1,.page-hj .hj-chron col.c2{width:auto}
  /* 定位总览字段流退单栏：326px 视口下双栏各 151px、88px 键列吃完后值列只剩 51px，
     五行长值把字段流堆到 814px 高；单栏后键列收到 56px（最长键名值年卦约 44px） */
  .page-hj .hj-info{columns:1;column-gap:0}
  .page-hj .hj-i>.k{flex:0 0 56px}
}
@media(max-width:560px){
  .page-hj .hj-over .big{font-size:16.5px}
  .page-hj .hj-np th,.page-hj .hj-np td{padding:4px 5px}
}

/* 打印：恢复素底、去阴影，细线转中性灰 */
@media print{
  .page-hj .hj-over,.page-hj details.hj-ref,.page-hj .ai-block{background:transparent !important;box-shadow:none !important;border-color:var(--line) !important}
  .page-hj .hj-gua-col,
  .page-hj .hj-np th,.page-hj .hj-np td,.page-hj .hj-seg{border-color:var(--line) !important}
  .page-hj .hj-np th{background:var(--card) !important;color:var(--ink) !important}
}

/* ===== 页级样式：laohuangli（page-lhl）===== */
/* 页头：卷首式（对齐首页 .hm-head 骨架：上下细线夹题、末尾竖线收束） */
.page-lhl .page h1{color:var(--lhl-deep);font-family:var(--lhl-serif);font-size:23px;
  letter-spacing:.3em;text-indent:.3em;text-align:center;line-height:1.3}
.page-lhl .page h1::before{content:'';display:block;width:88px;height:1px;background:var(--lhl-line);margin:0 auto var(--sp-3)}
.page-lhl .page h1::after{content:'';display:block;width:88px;height:1px;background:var(--lhl-line);margin:var(--sp-3) auto 0}
.page-lhl .page .lead{color:var(--lhl-ink2);text-align:center;font-size:12.5px;letter-spacing:.22em;text-indent:.22em;margin-top:var(--sp-3)}
.page-lhl .page .lead::after{background:var(--lhl-line)}

/* 检索行：居中成一条查询带（对齐首页卷首干支行的居中 flex 骨架），去全宽底线（页头竖线已收束） */
.page-lhl .page > .form-row{
  background:none;border:0;border-radius:0;
  padding:0;margin-top:var(--sp-2);margin-bottom:0;box-shadow:none;
  align-items:center;justify-content:center;
}
/* 字段由竖排转横排：标签与控件同行。控件宽度仍由 .dt-input 的 96px 定宽决定，不随容器伸展 */
.page-lhl .page > .form-row .field{flex:0 0 auto;width:auto;max-width:none;
  flex-direction:row;align-items:center;gap:var(--sp-2)}
.page-lhl .page > .form-row .field .dt-wrap{width:auto}
.page-lhl .page > .form-row .field label{color:var(--lhl2);font-weight:400;margin:0;white-space:nowrap}
.page-lhl .page > .form-row .field input{border-color:var(--lhl-line);border-radius:0;padding:4px 10px;
  transition:border-color .15s,box-shadow .15s}
.page-lhl .page > .form-row .field input:focus{border-color:var(--lhl);outline:none}
/* "今天"按钮：藏蓝实色直角，无投影；检索行已 align-items:center，撤销 .cal-page 的 2px 底部补偿 */
.page-lhl .page > .form-row .btn.gold{background:var(--lhl);border-radius:0;padding:5px 14px;box-shadow:none;margin-bottom:0}
.page-lhl .page > .form-row .btn.gold:hover{background:var(--lhl2)}
/* 全页按钮兜底：未单列的按钮一律实底白字，不落回全站鎏金 */
.page-lhl .btn,.page-lhl .btn.gold{background:var(--lhl);border-color:var(--lhl);color:#fff;box-shadow:none}
.page-lhl .btn:hover,.page-lhl .btn.gold:hover{background:var(--lhl2);color:#fff;box-shadow:none}

/* 年月导航：标题换宋体加字距（与页头同族）；箭头钮去框去底成纯字符，悬停只给淡底 */
.page-lhl .cal-nav{margin:var(--sp-3) 0 var(--sp-2)}
.page-lhl .cal-title{color:var(--lhl-deep);font-family:var(--lhl-serif);font-weight:400;font-size:19px;letter-spacing:.2em;text-indent:.2em;padding:0 var(--sp-2)}
.page-lhl .nav-btn{background:transparent;border-color:transparent;color:var(--lhl);border-radius:0}
.page-lhl .nav-btn:hover{background:var(--lhl-tint);border-color:transparent;color:var(--lhl2);box-shadow:none}
.page-lhl .nav-btn:focus-visible{border-color:var(--lhl);outline:none}

/* 日历面板：去四周框改线（首页骨架为线不为框），只留星期行下一条线；内边距归零让格网贴齐容器 */
.page-lhl .cal-grid .wd{color:var(--lhl);font-family:var(--lhl-serif);font-weight:400;
  letter-spacing:.12em;border-bottom:1px solid var(--lhl-line);padding-bottom:var(--sp-1)}
/* 今日：藏蓝实色直角块，无投影；主位由满填承担，不靠阴影 */
.page-lhl .cal-cell.today{background:var(--lhl);box-shadow:none}
.page-lhl .cal-cell.today.zhai{background:var(--lhl)}
.page-lhl .cal-cell.selected:not(.today){background:var(--lhl-tint);border-color:var(--lhl)}
.page-lhl .cal-cell:hover:not(.today){background:#f6dadd}
.page-lhl .cal-cell.today:hover{background:var(--lhl2)}
/* 格内色轴收敛为三条（口径对齐万年历）：节日朱砂（喜庆）、节气青（自然节点）、农历次墨（正文）；
   槽位分层后节气与节日各占一槽，互不顶掉，农历日恒显。节气与节日一律取全站语义色，本页不再另设覆写 */
.page-lhl .cal-cell .slot-fest{color:var(--red)}
.page-lhl .cal-cell .ld{color:var(--lhl-ink2)}
/* 左上角小色条（全局 .cal-cell::before）属装饰性色标，极简口径下取消：节气由角标承载、节日由红字承载 */

/* 详情区卷首带：上下细线夹出（对齐首页 .hm-head 上下线骨架），无框无底 */
.page-lhl .today-card{
  position:relative;overflow:hidden;
  background:transparent;
  border:0;border-top:1px solid var(--lhl-line);border-bottom:1px solid var(--lhl-line);
  border-radius:0;
  box-shadow:none;
  padding:var(--sp-4) 0;
}
/* 卷首竖排居中：公历小字在上、日期大字在下，再接农历（对齐首页卷首的公历转农历次第） */
.page-lhl .today-top{flex-direction:column;gap:var(--sp-3)}
.page-lhl .big-date{display:flex;flex-direction:column-reverse;align-items:center}
.page-lhl .big-date .d{color:var(--lhl);font-family:var(--font-serif);font-size:42px}
.page-lhl .big-date .ym{font-size:12.5px;letter-spacing:.2em;text-indent:.2em;color:var(--lhl-ink2)}
.page-lhl .lunar-info .ln{color:var(--lhl-deep);font-family:var(--font-serif);font-weight:400;
  font-size:22px;letter-spacing:.14em;text-indent:.14em}
.page-lhl .lunar-info .zodiac{font-size:12px;letter-spacing:.06em;color:var(--lhl-ink2);margin-top:var(--sp-2)}
.page-lhl .rel-title{color:var(--lhl-deep)}
/* 九宫飞星折叠三角：取本页主体色朱红 */
.page-lhl .fold-block>summary.rel-title::before{color:var(--lhl)}
/* 信息块去框改线（首页骨架为线不为框）：标题宋体加字距，下接一条细线作分隔；宜/忌语义由标题字色承载 */
.page-lhl .info-box{
  background:transparent;
  border:0;border-radius:0;
  box-shadow:none;padding:0;
}
.page-lhl .info-box h4,.page-lhl .info-box.yi h4,.page-lhl .info-box.ji h4{font-family:var(--lhl-serif);font-weight:400;letter-spacing:.2em;
  color:var(--lhl2);border-bottom:1px solid var(--lhl-line);padding-bottom:6px;margin-bottom:var(--sp-2)}
/* 清零 .cal-page 给宜/忌两块的 2px 顶条，全页只保留下线一种线 */
.page-lhl .info-box.yi,.page-lhl .info-box.ji{border-top:0}
.page-lhl .info-box.yi h4{color:var(--green)}
.page-lhl .info-box.ji h4{color:var(--red)}
/* 九宫飞星：去卡片框，随全局 .fold-block 的线语言（顶距同全站二级折叠区 --sp-4） */
.page-lhl .fold-block>summary.rel-title{margin-top:0}
.page-lhl .fei-block{background:transparent;border:none;box-shadow:none}
.page-lhl .fei-cell{background:transparent;border-color:var(--lhl-line);border-radius:0}
.page-lhl .fei-cap{color:var(--lhl2);font-family:var(--lhl-serif);font-weight:400}
.page-lhl .sub-note{color:var(--lhl-ink2)}

/* 老黄历基础信息：分栏字段流（宜忌通栏、余项双栏）；
   值列宽收短后读起来不再是一条条密排横线，同时仍守纸本语言（藏蓝标签、字段间细线、零圆角）。 */
.page-lhl .lhl-info{margin-top:var(--sp-3);columns:2;column-gap:var(--sp-5);
  font-size:14px;border-top:1px solid var(--lhl-line)}
.page-lhl .lhl-i{display:flex;gap:var(--sp-3);padding:var(--sp-2) 0;border-bottom:1px solid var(--lhl-line);
  break-inside:avoid;page-break-inside:avoid}
.page-lhl .lhl-i.wide{column-span:all}
.page-lhl .lhl-i>.k{flex:0 0 88px;color:var(--lhl2);letter-spacing:.5px}
.page-lhl .lhl-i>.v{flex:1;min-width:0;color:var(--lhl-ink);line-height:1.7}
.page-lhl .lhl-i>.v.yi{color:var(--green)}
.page-lhl .lhl-i>.v.ji{color:var(--red)}
/* 分段符：电脑端为 0.9em 空格间隙（内容一行流式、装不下自然换行）；移动端为整行换行 */
.page-lhl .lhl-info .lhl-br{display:inline-block;width:.9em}
/* 纳音干支五行项整体不拆行，折行只发生在项与项之间 */
.page-lhl .ngw{white-space:nowrap}
@media(max-width:640px){
  .page-lhl .lhl-info{columns:1}
  /* 值按标点整段换行，末字不再独占一行（吉神宜趋一类的顿号列举最容易掉一个单字到下一行） */
  .page-lhl .lhl-i>.v{word-break:keep-all}
  /* 窄屏单栏，标签栏不必再占 88px：收到 72px（最长标签四字约 58px），值栏多出 16px */
  .page-lhl .lhl-i>.k{flex:0 0 72px}
  .page-lhl .lhl-info .lhl-br{display:block;height:0;width:0}
  /* -oneline 字段按段装箱：分段符作行内间隙，段按可用宽度入行。
     段（.lhl-s）自成不可断行的行内盒，折行只落在段与段之间。 */
  .page-lhl .lhl-info .lhl-i.lhl-oneline .lhl-br{display:inline-block;width:.5em}
  .page-lhl .lhl-info .lhl-i.lhl-oneline .lhl-s{display:inline-block}
}

/* 附加功能面板：去框改线，上下各一条线夹出（与卷首带 .today-card 同款）；面板是页尾元素，下边线承担「内容→免责声明」的收束，不可省——去下边线会露出 .ai-body 的 12px 底内边距，底部空白比有下框线的页面多 12px */
.page-lhl .ai-block{
  border:0;border-top:1px solid var(--lhl-line);border-bottom:1px solid var(--lhl-line);border-radius:0;
  background:transparent;color:var(--lhl-ink);
  box-shadow:none;
}
.page-lhl .ai-head{
  background:transparent;
  border-bottom-color:var(--lhl-line);
}
.page-lhl .ai-head h3{color:var(--lhl2);font-family:var(--lhl-serif);font-weight:400}
.page-lhl .ai-head .ai-status{color:var(--lhl-ink2)}
/* 按钮语义：AI 解析=藏蓝实底主按钮，全面板唯一强调色；配置模型与 soft 同档=描边次按钮（面板内不再有第二块实底色） */
.page-lhl .ai-block .btn{background:var(--lhl);border-radius:0}
.page-lhl .ai-block .btn:hover{background:var(--lhl2)}
.page-lhl .ai-block .btn.gold,.page-lhl .ai-block .btn.soft{background:var(--lhl-tint);border-color:var(--lhl-line);color:var(--lhl-ink)}
.page-lhl .ai-block .btn.gold:hover,.page-lhl .ai-block .btn.soft:hover{background:var(--card);border-color:var(--lhl);color:var(--lhl2)}
.page-lhl .ai-tab{border-radius:0}
.page-lhl .ai-tab:hover{border-color:var(--lhl);color:var(--lhl2)}
.page-lhl .ai-tab.active{background:var(--lhl);border-color:var(--lhl);color:#fff}
.page-lhl .ai-tab.active:hover{background:var(--lhl2);border-color:var(--lhl2);color:#fff}
.page-lhl .ai-bubble{border-radius:0}
.page-lhl .ai-bubble.user{background:var(--lhl-tint);border-color:var(--lhl)}
.page-lhl .ai-bubble.assistant{border-color:var(--lhl-line)}
.page-lhl .ai-model-row:hover{background:var(--lhl-tint)}
.page-lhl .ai-tip{color:var(--lhl-ink2)}
.page-lhl .ai-block .ai-out,.page-lhl .ai-block .ai-bubble.user,.page-lhl .ai-block .ai-bubble.assistant,.page-lhl .ai-block .ai-model-name{color:var(--lhl-ink)}
.page-lhl .ai-block input,.page-lhl .ai-block select{color:var(--lhl-ink)}
@media(max-width:640px){
  .page-lhl .big-date .d{font-size:36px}
  .page-lhl .lunar-info .ln{font-size:19px}
}
@media print{
  .page-lhl .cal-grid .wd{border-bottom-color:var(--lhl-line)}
}

/* ===== 页级样式：lenormand（page-ln）===== */
.page-ln .btn,.page-ln .btn.gold{background:var(--ln);border-color:var(--ln);color:#fff;box-shadow:none}
/* 牌阵扩展样式：点击详批、八宫箱阵、大全景宫位盘（基础 leno-* 样式在 style.css） */
.page-ln .leno-card{border-color:var(--ln-line);cursor:pointer;transition:background .15s}
.page-ln .leno-card:hover{background:var(--cal-hover)}
.page-ln .leno-k2{font-size:12px;color:var(--ln-ink);margin-top:var(--sp-1);line-height:1.5}
/* 断行落在顿号与逗号处，末字不再独占一行 */
.page-ln .leno-hint{font-size:12px;color:var(--ln2);margin-top:2px;word-break:keep-all}
/* 九宫与大全景：行高取齐，避免个别格多一点内容就整行拔高、格线对不齐 */
.page-ln .leno-9{grid-auto-rows:1fr}
/* 八宫箱阵：上排 1-4，下排 8-5（右→左落位，镜像两两垂直相对） */
.page-ln .leno-box{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-2);max-width:640px;margin:0 auto var(--sp-4)}
.page-ln .leno-box .leno-card{max-width:none}
/* 大全景：6×6 宫位盘；砖块背景与其他模式统一用全站纸色，时区信息由综合判断表承载 */
.page-ln .leno-gt{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:1fr;gap:var(--sp-2);max-width:1000px;margin:0 auto var(--sp-3)}
.page-ln .gt-tile{border:1px solid var(--ln-line);border-radius:0;background:var(--paper2);text-align:center;padding:var(--sp-2) var(--sp-1);cursor:pointer;transition:background .15s}
.page-ln .gt-tile:hover{background:var(--cal-hover)}
.page-ln .gt-h{font-size:11px;color:var(--ln2);line-height:1.5}
.page-ln .gt-em{font-size:30px;line-height:1.45}
.page-ln .gt-n{font-size:12.5px;font-weight:700;color:var(--ln-deep);line-height:1.5}
.page-ln .gt-k2{font-size:11px;color:var(--ln-ink);line-height:1.5;margin-top:1px}
.page-ln .gt-tile.sig{border-color:var(--ln);background:var(--ln-tint)}
.page-ln .gt-badge{display:inline-block;font-size:9.5px;background:var(--ln);color:#fff;border-radius:0;padding:0 4px;line-height:1.5;margin-top:1px}
/* 位×牌合断与结构读法 */
.page-ln .leno-combo{font-size:12px;color:var(--ln2);line-height:1.6;margin-bottom:2px}
.page-ln .leno-struct{margin-top:var(--sp-2);font-size:12.5px;color:var(--ln-ink);line-height:1.8}
.page-ln .leno-struct b{color:var(--ln2);font-weight:400}
/* 综合判断表格：项目｜解读 两列 */
/* 雷诺曼综合判断表：与塔罗综合判断表同款，参考历法页基础信息表的线条模式 */
.page-ln .ln-table{width:100%;border-collapse:collapse;margin-top:var(--sp-2);font-size:13px;border-top:1px solid var(--ln-line)}
.page-ln .ln-table th,.page-ln .ln-table td{border:0;border-bottom:1px solid var(--ln-line);padding:7px 9px;text-align:left;line-height:1.75;vertical-align:top}
.page-ln .ln-table thead th{background:transparent;color:var(--ln2);font-weight:400;white-space:nowrap}
.page-ln .ln-table td.k{width:110px;color:var(--ln2)}
/* 牌面详批弹窗 */
#lnMask{position:fixed;inset:0;background:rgba(32,38,12,.55);display:none;align-items:center;justify-content:center;z-index:99;padding:var(--sp-3)}
#lnMask.on{display:flex}
.ln-modal{position:relative;background:var(--paper2);max-width:640px;width:100%;max-height:86vh;overflow:auto;border:1px solid var(--ln-line);border-radius:0;padding:var(--sp-4);box-shadow:none}
.page-ln .lm-close{position:absolute;top:8px;right:12px;font-size:26px;line-height:1;color:var(--ink2);cursor:pointer;padding:4px}
.page-ln .lm-close:hover{color:var(--ln2)}
.page-ln .lm-head{display:flex;gap:var(--sp-3);align-items:flex-start}
.page-ln .lm-em{width:96px;height:96px;flex:0 0 96px;display:flex;align-items:center;justify-content:center;font-size:52px;border-radius:0;background:var(--ln-tint);border:1px solid var(--ln-line);box-shadow:none}
.page-ln .lm-b h3{margin:0 0 var(--sp-1);color:var(--ln-deep);font-size:20px}
.page-ln .lm-en{font-size:12px;color:var(--ink2);font-style:italic;font-weight:400}
.page-ln .lm-tags{display:flex;flex-wrap:wrap;gap:var(--sp-1);margin-bottom:var(--sp-2)}
.page-ln .lm-tags span{font-size:11px;border:1px solid var(--ln-line);border-radius:0;padding:1px 8px;color:var(--ln-ink);background:var(--ln-tint)}
.page-ln .lm-b p{margin:0 0 var(--sp-1);font-size:13px;line-height:1.7}
.page-ln .lm-kw b,.page-ln .lm-core b,.page-ln .lm-time b,.page-ln .lm-person b{color:var(--ln2);font-weight:400}
.page-ln .lm-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-2);margin-top:var(--sp-3)}
.page-ln .lm-dom{border:1px solid var(--ln-line);border-radius:0;padding:var(--sp-2) var(--sp-3);background:var(--paper)}
.page-ln .lm-dom h4{margin:0 0 2px;font-size:13px;color:var(--ln2);font-weight:700}
.page-ln .lm-dom p{margin:0;font-size:12.5px;line-height:1.7}
.page-ln .lm-pos{margin-top:var(--sp-3);font-size:12.5px;color:var(--ln-ink);line-height:1.7}
.page-ln .lm-pos b{color:var(--ln2);font-weight:400}
@media(max-width:760px){
  /* 表单竖排：牌阵、指标牌、所问之事、抽牌各占一行，随页宽自适应（容器 .wrap 限宽，不超过桌面版宽） */
  .page-ln .page > .form-row{flex-direction:column;align-items:stretch}
  .page-ln .page > .form-row .field{flex:1 1 100%;width:100%;min-width:0;max-width:none}
  .page-ln .page > .form-row .field input,.page-ln .page > .form-row .field select{width:100%;max-width:none}
  /* 抽牌钮占满一行：列向容器里 flex-basis 即主轴（高），写百分比会盖掉 .btn 的 30px 定高，故取 auto */
  .page-ln .page > .form-row .btn{flex:0 0 auto;width:100%}
  .page-ln .leno-box{grid-template-columns:repeat(2,1fr)}
  /* 大全景移动端：3 列放大砖块 */
  .page-ln .leno-gt{grid-template-columns:repeat(3,1fr)}
  .page-ln .gt-tile{padding:var(--sp-1) 2px}
  .page-ln .gt-h{font-size:9.5px}
  .page-ln .gt-em{font-size:26px}
  .page-ln .gt-n{font-size:11px}
  .page-ln .gt-k2{font-size:10px}
  .page-ln .lm-head{flex-direction:column}
  .page-ln .lm-em{width:72px;height:72px;flex-basis:72px;font-size:40px}
  .page-ln .lm-grid{grid-template-columns:1fr}
  .page-ln .ln-table th,.page-ln .ln-table td{padding:5px 6px}
  .page-ln .ln-table td.k{width:72px}
  /* 统计行的断行落在分号与顿号处，末字不再独占一行 */
  .page-ln .ln-table td{word-break:keep-all}
}
@media print{
  #lnMask{display:none!important}
  .page-ln .leno-card,.page-ln .gt-tile{page-break-inside:avoid}
}



.page-ln .page h1{color:var(--ln-deep);font-family:var(--ln-serif);font-size:23px;letter-spacing:.3em;text-indent:.3em;text-align:center;line-height:1.3}/* 页头细线：上下各一条 88px 夹题，卷首说明末尾 26px 竖线收束（规则档第三条） */
.page-ln .page h1::before{content:'';display:block;width:88px;height:1px;background:var(--ln-line);margin:0 auto var(--sp-3)}
.page-ln .page h1::after{content:'';display:block;width:88px;height:1px;background:var(--ln-line);margin:var(--sp-3) auto 0}
.page-ln .page .lead::after{background:var(--ln-line)}

.page-ln .page .lead{color:var(--ln-ink2);text-align:center;font-size:12.5px;letter-spacing:.22em;text-indent:.22em;margin-top:var(--sp-3)}
.page-ln .rel-title{color:var(--ln2)}
.page-ln .ly-zh-p{color:var(--ln-ink)}
.page-ln .sub-note{color:var(--ln-ink2)}
.page-ln .tr-stats{color:var(--ln-ink)}

/* 抽牌表单行：只写本页墨色与控件描边。排布与间距属共享件共性，页面段不写 */
.page-ln .page > .form-row .field label{color:var(--ln2);font-weight:400}
.page-ln .page > .form-row .field input,.page-ln .page > .form-row .field select{border-color:var(--ln-line);transition:border-color .15s}
.page-ln .page > .form-row .field input:focus,.page-ln .page > .form-row .field select:focus{border-color:var(--ln);outline:none}
/* 抽牌（.btn.gold）苔青实底主按钮 */
.page-ln .page > .form-row .btn.gold{background:var(--ln);border-color:var(--ln);box-shadow:none}
.page-ln .page > .form-row .btn.gold:hover{background:var(--ln2);border-color:var(--ln2);box-shadow:none}
.page-ln .leno-name{color:var(--ln-deep)}
.page-ln .leno-pos{color:var(--ln2)}
.page-ln .leno-k{color:var(--ln-ink)}

/* 综合判断信息框：去框改线，顶线一条淡苔青 */
.page-ln .info-box{background:transparent;border:0;border-top:1px solid var(--ln-line);border-radius:0;box-shadow:none}
.page-ln .info-box h4{color:var(--ln2);letter-spacing:.5px}
.page-ln .info-box p{color:var(--ln-ink)}

/* 附加功能面板（基础款） */
.page-ln .ai-block{
  border:0;border-top:1px solid var(--ln-line);border-bottom:1px solid var(--ln-line);border-radius:0;
  background:transparent;color:var(--ln-ink);box-shadow:none;
}
.page-ln .ai-head{background:transparent;border-bottom-color:var(--ln-line)}
.page-ln .ai-head h3{color:var(--ln2)}
.page-ln .ai-block .btn{background:var(--ln);color:#fff}
.page-ln .ai-block .btn:hover{background:var(--ln2)}
.page-ln .ai-block .btn.gold,.page-ln .ai-block .btn.soft{background:var(--ln-tint);border-color:var(--ln-line);color:var(--ln-ink);box-shadow:none}
.page-ln .ai-block .btn.gold:hover,.page-ln .ai-block .btn.soft:hover{background:var(--card);border-color:var(--ln);color:var(--ln2)}
.page-ln .ai-block .ai-out,.page-ln .ai-block .ai-bubble.user,.page-ln .ai-block .ai-bubble.assistant,.page-ln .ai-block .ai-model-name,.page-ln .ai-block input,.page-ln .ai-block select{color:var(--ln-ink)}
.page-ln .ai-tab.active{background:var(--ln);border-color:var(--ln);color:#fff}
.page-ln .ai-bubble.user{background:var(--ln-tint);border-color:var(--ln)}
.page-ln .ai-bubble.assistant{border-color:var(--ln-line)}
/* 打印：恢复素底 */
@media print{
  .page-ln .leno-card,.page-ln .info-box,.page-ln .page > .form-row{background:var(--card) !important;box-shadow:none !important;border-color:var(--line) !important}
}
/* ===== 页级样式：lingqian（page-lq）===== */
/* 灵签：签条、签诗、逐项解签与签种典故（本页结构样式的唯一来源） */
.page-lq .page h1{color:var(--lq-deep);font-family:var(--lq-serif);font-size:23px;letter-spacing:.3em;text-indent:.3em;text-align:center;line-height:1.3}
.page-lq .page h1::before{content:'';display:block;width:88px;height:1px;background:var(--lq-line);margin:0 auto var(--sp-3)}
.page-lq .page h1::after{content:'';display:block;width:88px;height:1px;background:var(--lq-line);margin:var(--sp-3) auto 0}
.page-lq .page .lead{color:var(--lq-ink2);text-align:center;font-size:12.5px;letter-spacing:.22em;text-indent:.22em;margin-top:var(--sp-3)}
.page-lq .page .lead::after{background:var(--lq-line)}

/* 求签行：字段竖排流式，分界线由结果区首块的顶线承担 */
.page-lq .page > .form-row{margin-bottom:var(--sp-2)}
.page-lq .page > .form-row .field label{color:var(--lq2);font-weight:400}
.page-lq .page > .form-row .field input,.page-lq .page > .form-row .field select{border-color:var(--lq-line)}
.page-lq input:focus,.page-lq select:focus,.page-lq textarea:focus{border-color:var(--lq);outline:none}

/* 按钮两档：页内一律主色实底，附加功能面板内为淡底描边次按钮 */
.page-lq .btn,.page-lq .btn.gold{background:var(--lq);border-color:var(--lq);color:#fff;box-shadow:none}
.page-lq .btn:hover,.page-lq .btn.gold:hover{background:var(--lq2);border-color:var(--lq2);color:#fff;box-shadow:none}
.page-lq .page > .form-row .btn.gold{border-radius:0;padding:5px 14px;margin-bottom:0}
.page-lq .ai-block .btn{border-radius:0}
.page-lq .ai-block .btn.gold,.page-lq .ai-block .btn.soft{background:var(--lq-tint);border-color:var(--lq-line);color:var(--lq-ink);box-shadow:none}
.page-lq .ai-block .btn.gold:hover,.page-lq .ai-block .btn.soft:hover{background:var(--card);border-color:var(--lq);color:var(--lq2)}

/* 结果区首块：签条满栏，上下细线夹出，承担检索行到签文的收束。
   天头地脚取 --sp-4（比签条内相邻块的同组档 --sp-3 大一级），签文居中成诗体：
   整块不另限宽，限宽只落在签诗自身，避免窄签条与满栏解签的宽窄断裂。 */
.page-lq .lq-slip{padding:var(--sp-5) 0;border-top:1px solid var(--lq-line);border-bottom:1px solid var(--lq-line)}
.page-lq .lq-head{text-align:center;margin-bottom:var(--sp-3)}
.page-lq .lq-no{font-family:var(--lq-serif);font-size:var(--tier2);font-weight:400;color:var(--lq-deep);letter-spacing:.3em;text-indent:.3em;line-height:1.5}
.page-lq .lq-lv{font-family:var(--lq-serif);font-size:var(--tier3);font-weight:400;letter-spacing:.3em;text-indent:.3em;line-height:1.5;margin-top:var(--sp-1)}
/* 签级吉凶取全站语义二值，中平一档取主色深档 */
.page-lq .lv-ji{color:var(--green)}
.page-lq .lv-ping{color:var(--lq2)}
.page-lq .lv-xiong{color:var(--red)}
.page-lq .lq-poem{max-width:min(100%,34em);margin:0 auto;font-family:var(--lq-serif);font-size:var(--tier1);font-weight:400;line-height:2.2;letter-spacing:.18em;text-indent:.18em;text-align:center;color:var(--lq-deep)}
.page-lq .lq-lian{break-inside:avoid;page-break-inside:avoid}
.page-lq .lq-lian + .lq-lian{margin-top:var(--sp-2)}
.page-lq .lq-gu{max-width:min(100%,34em);margin:var(--sp-3) auto 0;text-align:center;font-size:var(--tier4);color:var(--lq-ink2);letter-spacing:.1em;text-indent:.1em;line-height:1.8}
.page-lq .lq-shake{text-align:center;font-family:var(--lq-serif);font-size:var(--tier1);color:var(--lq2);letter-spacing:.2em;text-indent:.2em;line-height:1.8;padding:var(--sp-5) 0;animation:lqshake .3s infinite}
@keyframes lqshake{0%,100%{transform:translateX(-4px)}50%{transform:translateX(4px)}}

/* 解曰：签条内的分块，题名走三级题头、正文随注文档，与签诗同轴居中。
   与逐项解签的分界由签条底线承担（第二条：分界只画一条，不上下各画一条夹住题名） */
.page-lq .det-h{color:var(--lq2);text-align:center}
.page-lq .lq-jie{max-width:min(100%,34em);margin:0 auto;font-size:13px;color:var(--lq-ink);line-height:1.9;text-align:center}
.page-lq .lq-jie p{margin:0 0 var(--sp-2)}
.page-lq .lq-jie p:last-child{margin-bottom:0}

/* 逐项解签：键值成对流，双栏入列 */
.page-lq .rel-title{color:var(--lq-deep);font-family:var(--lq-serif);font-weight:400;letter-spacing:.2em}
.page-lq .lq-info{margin-top:var(--sp-3);columns:2;column-gap:var(--sp-5);font-size:var(--tier3);border-top:1px solid var(--lq-line)}
.page-lq .lq-i{display:flex;gap:var(--sp-3);padding:var(--sp-2) 0;border-bottom:1px solid var(--lq-line);break-inside:avoid;page-break-inside:avoid}
.page-lq .lq-i>.k{flex:0 0 88px;color:var(--lq2);letter-spacing:.5px}
.page-lq .lq-i>.v{flex:1;min-width:0;color:var(--lq-ink);line-height:1.7}

/* 签种典故：二级折叠区，收起态上下夹线、展开态只留上线 */
.page-lq .lq-ref{margin-top:var(--sp-4);border-top:1px solid var(--lq-line);padding:var(--sp-3) 0;text-align:left}
.page-lq .lq-ref:not([open]){border-bottom:1px solid var(--lq-line)}
.page-lq .lq-ref summary{cursor:pointer;font-family:var(--lq-serif);font-weight:400;color:var(--lq2);font-size:var(--tier4);letter-spacing:.1em;line-height:1.5}
.page-lq .lq-ref-b{margin-top:var(--sp-2);font-size:var(--tier4);color:var(--lq-ink);line-height:1.8}
.page-lq .sub-note{color:var(--lq-ink2);margin-top:var(--sp-3)}

/* 附加功能面板：上下细线夹出 */
.page-lq .ai-block{border-top-color:var(--lq-line);border-bottom-color:var(--lq-line);color:var(--lq-ink);box-shadow:none}
.page-lq .ai-head{border-bottom-color:var(--lq-line)}
.page-lq .ai-head h3{color:var(--lq2)}
.page-lq .ai-head .ai-status{color:var(--lq-ink2)}
.page-lq .ai-block .ai-out,.page-lq .ai-block .ai-bubble.user,.page-lq .ai-block .ai-bubble.assistant,.page-lq .ai-block .ai-model-name,.page-lq .ai-block input,.page-lq .ai-block select{color:var(--lq-ink)}
.page-lq .ai-tip{color:var(--lq-ink2)}
/* 对话区（配置模型后出现）：圆角归零、随主题换色 */
.page-lq .ai-tab{border-radius:0}
.page-lq .ai-pane .ai-out{border-radius:0}
.page-lq .ai-bubble{border-radius:0}
.page-lq .ai-tab:hover{border-color:var(--lq);color:var(--lq2)}
.page-lq .ai-tab.active{background:var(--lq);border-color:var(--lq);color:#fff}
.page-lq .ai-tab.active:hover{background:var(--lq2);border-color:var(--lq2);color:#fff}
.page-lq .ai-bubble.user{background:var(--lq-tint);border-color:var(--lq)}
.page-lq .ai-bubble.assistant{border-color:var(--lq-line)}
.page-lq .ai-model-row:hover{background:var(--lq-tint)}
@media(max-width:640px){
  .page-lq .lq-info{columns:1}
  .page-lq .lq-info .lq-i>.k{flex:0 0 72px}
  .page-lq .lq-poem{line-height:1.9}
}
@media print{
  .page-lq .lq-slip,.page-lq .lq-info,.page-lq .lq-i,.page-lq .lq-ref{border-color:var(--line) !important}
}
/* ===== 页级样式：liuyao（page-ly）===== */
/* 六爻页样式：令牌、页头、表单、爻图、标签、表格、动画、弹层（亮暗双主题） */
.page-ly{--ly:#9c5f24;/* 琥珀铜主色（五帝钱受光面） */
  --ly2:#7a4a1a;/* 深铜：hover与强调 */
  --ly-deep:#4a2c10;/* 铜墨：大标题字色 */
  --ly-ink:#463a2c;/* 铜灰墨：正文字色 */
  --ly-brass:#c8802e;/* 亮铜点缀（装饰用） */
  --ly-line:#e8d9c2;/* 铜浅线 */
  --ly-tint:#fbf3e7;/* 铜纸淡底 */
  --ly-ink2:#6d5e4f;  /* 次级字色：卷首说明、副注、标注 */
  --ly-serif:var(--font-serif);  /* 卷首宋体：页头与题名 */
  --gold2:var(--ly2);--gold:var(--ly);--gold-brown:var(--ly2);--gold-bg:var(--ly-tint);--line:var(--ly-line);--ink:var(--ly-ink)}
.page-ly .page{--ly-neutral:#5d6d7e;--ly-warn:#8a6d3b;--ly-bad:#b84a3a}
/* 页头：字号与对齐交给 style.css 页面主题（.page-ly） */
.page-ly .ly-lead-ways{margin:var(--sp-2) 0 2px}
/* 七种起卦法：键值条按历法页基础信息条的线条模式，键列定宽、逐条下线、末条去线 */
.page-ly .ly-lead-tbl{display:block}
.page-ly .ly-lead-row{display:flex;gap:var(--sp-3);align-items:baseline;padding:var(--sp-1) 0;border-bottom:1px solid var(--ly-line)}
.page-ly .ly-lead-row:last-child{border-bottom:0}
.page-ly .ly-lead-n{flex:0 0 88px;font-weight:400;color:var(--ly2);font-size:var(--tier4);white-space:nowrap;line-height:1.5}
.page-ly .ly-lead-d{flex:1;min-width:0;font-size:var(--tier4);color:var(--ly-ink2);line-height:1.5;word-break:break-word;overflow-wrap:break-word}
.page-ly h3.rel-title{margin:var(--sp-4) 0 var(--sp-2)}
.page-ly details.mh-ref{border-color:var(--ly-line)}
.page-ly details.mh-ref > summary{cursor:pointer;user-select:none}
.page-ly details.mh-ref > summary:hover{color:var(--gold)}
/* 表单与操作 */
.page-ly .form-row .ly-q-field{flex:0 0 auto;min-width:0;max-width:none;width:auto}
.page-ly .form-row .ly-q-field input{width:220px;max-width:100%}
.page-ly .ly-time-row{flex:1 1 100%;display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-3);align-items:flex-end;padding:var(--sp-2) 0;background:transparent;border:0;border-top:1px solid var(--ly-line);border-radius:0;margin-top:2px;min-width:0;box-sizing:border-box}
.page-ly .ly-time-row .field{flex:0 0 auto;min-width:0;margin:0}
.page-ly .ly-time-row .ly-tf-btn .btn{font-size:var(--tier4);white-space:nowrap;width:auto;min-width:0;margin:0}
.page-ly .ly-actions{display:flex;gap:var(--sp-2);align-items:flex-end;flex:1 1 auto;min-width:0;max-width:100%;flex-wrap:wrap}
.page-ly .ly-actions .btn{flex:0 0 auto;width:auto;min-width:0;display:inline-flex;align-items:center;justify-content:center}
/* 摇卦起卦用全站主按钮，其余操作为描边幽灵按钮 */
.page-ly .page .ly-time-row .ly-tf-btn .btn,.page-ly .page .ly-actions .btn:not(#lyCastBtn),.page-ly .page #lyStepField .ly-num-row .btn{background:transparent;border:1px solid var(--line);color:var(--ink2)}
.page-ly .page .ly-time-row .ly-tf-btn .btn:hover,.page-ly .page .ly-actions .btn:not(#lyCastBtn):hover,.page-ly .page #lyStepField .ly-num-row .btn:hover{border-color:var(--gold);color:var(--ink);background:var(--gold-bg)}
/* 变卦口径：两枚小字勾选上下叠放为一处（不加框、不加说明字） */
.page-ly .ly-bo-row{display:flex;flex-direction:column;gap:2px;align-items:flex-start;min-width:0;align-self:flex-end}
.page-ly .ly-bo{display:inline-flex;align-items:center;gap:var(--sp-1);font-size:var(--tier4);color:var(--ink2);font-weight:400;margin:0;white-space:nowrap;line-height:1.4;cursor:pointer}
.page-ly .ly-num-row{display:flex;align-items:center;gap:var(--sp-1);flex-wrap:wrap;min-width:0}
.page-ly .ly-num-inputs{display:flex;gap:var(--sp-1);flex:0 0 auto}
.page-ly #lyNumField .ly-num-inputs input{width:34px;text-align:center;padding:0 4px;font-size:var(--tier4);border:1px solid var(--line);border-radius:0;background:var(--card);font-family:inherit;box-sizing:border-box}
.page-ly #lyBaoShuField .ly-num-inputs input{width:52px;max-width:52px;text-align:center;padding:0 4px;font-size:var(--tier4);border:1px solid var(--line);border-radius:0;background:var(--card);font-family:inherit;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis}
.page-ly #lySpecField .ly-num-inputs input{width:28px;max-width:28px;text-align:center;padding:0 2px;font-size:var(--tier4);border:1px solid var(--line);border-radius:0;background:var(--card);font-family:inherit;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis}
.page-ly .ly-num-tip{font-size:var(--tier4);line-height:1.4;white-space:normal;color:var(--ink2);margin:0;min-width:0}
/* 起卦方式附属字段与控件：内容自适应，不撑满行 */
.page-ly .form-row .ly-sel-field{flex:0 1 auto;min-width:0;max-width:none}
/* 提升特异性压过全局 .form-row .field input{width:auto} */
.page-ly .form-row .field input.ly-name-input{width:130px}
.page-ly .ly-step-btn{height:30px}
.page-ly .ly-step-clear{background:var(--red);color:#fff;border-color:transparent}
.page-ly .ly-chk-native{width:auto;height:auto}
.page-ly .ly-zi-field{flex:0 0 auto;min-width:0;margin:0}
.page-ly .ly-multi-label{font-size:var(--tier4);display:inline-flex;align-items:center;gap:var(--sp-1);margin:0;cursor:pointer}
/* 历史记录弹层挂 body，不在 .page-ly 内，样式与令牌一律收口在弹层自身类上，主色取 dtm-ly 主题令牌 */
.modal.ly-hist-modal{max-width:560px}
.modal.ly-hist-modal .ly-hist-empty{padding:var(--sp-3);color:var(--tk-ink,var(--ink2));font-size:var(--tier4);text-align:center}
.modal.ly-hist-modal .ly-hist-foot{margin-top:var(--sp-2);font-size:var(--tier4);color:#999}
.modal.ly-hist-modal .ly-hist-q{color:#999;font-size:var(--tier4)}
.modal.ly-hist-modal .ly-hist-act-btn{font-size:var(--tier4);padding:2px var(--sp-2);height:auto;line-height:1.5}
.modal.ly-hist-modal .ly-hist-del-btn{font-size:var(--tier4);padding:2px var(--sp-1);height:auto;line-height:1.5}
.page-ly .ly-multi-del-btn{font-size:var(--tier4);padding:1px var(--sp-2);height:auto;line-height:1.5}
.page-ly .ly-grade-badge{display:inline-block;padding:1px var(--sp-1);border-radius:0;color:#fff;font-size:var(--tier4);font-weight:400;margin-right:var(--sp-1);vertical-align:1px}
.page-ly .ly-wx-svg{width:100%;max-width:300px;margin:0 auto;display:block}
.page-ly .ly-wx-svg-wrap{padding:var(--sp-1) 2px;text-align:center}
.page-ly .ly-ref-note{font-size:var(--tier4)}
.page-ly .ly-ref-p{font-size:var(--tier4);color:var(--ink2);line-height:1.6;margin:var(--sp-1) 0;font-weight:400}
.page-ly .ly-ref-h4{margin:var(--sp-2) 0 var(--sp-1);font-size:var(--tier4);color:var(--gold2);font-weight:400}
.page-ly .ly-th-time{width:80px}
.page-ly .ly-najia-td{line-height:1.95}
.page-ly .ly-left{text-align:left}
/* 爻图：六爻行高一致，标签区单行渐隐（完整内容见悬停提示） */
/* 卦象板上游是带行线的起卦信息表，末行下线已承担分隔，此处不得再画上边线（否则双线） */
.page-ly .yao-board{display:flex;gap:var(--sp-5);flex-wrap:wrap;justify-content:center;margin-top:var(--sp-4);background:transparent;border:0;border-radius:0;padding:var(--sp-4) var(--sp-5);box-shadow:none}
.page-ly .yao-board.ly-sub{margin-top:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--ly-line);border-radius:0;box-shadow:none}
.page-ly .yao-board.ly-sub .yao-line{min-height:0;margin:var(--sp-1) 0}
.page-ly .yao-board.ly-sub .yao-sym{width:64px}
.page-ly .yao-board.ly-sub .yb{width:30px;height:9px}
.page-ly .yao-board.ly-sub .yb.gap{width:30px}
.page-ly .yao-board.ly-sub .yb.gap span{width:11px;height:9px}
.page-ly .yao-col{text-align:center}
.page-ly .yao-col h4{margin-bottom:var(--sp-2);padding-bottom:var(--sp-2);border-bottom:1px solid var(--ly-line,var(--line));color:var(--gold2);font-size:var(--tier3);font-weight:400;letter-spacing:2px}
.page-ly .yao-board .yao-col .yao-line:last-child{margin-bottom:0}
.page-ly .yao-line{display:flex;align-items:center;gap:var(--sp-1);margin:var(--sp-1) 0;font-size:var(--tier3);justify-content:center;min-height:34px}
.page-ly .yao-line .god,.page-ly .yao-line .sy,.page-ly .yao-line .gz,.page-ly .yao-line .yao-tag{line-height:1.4}
.page-ly .yao-line.ly-yue{background:rgba(255,246,224,.5)}
.page-ly .yao-line.ly-ri{background:rgba(234,241,255,.5)}
.page-ly .yao-tag{font-size:var(--tier4);color:var(--red);width:22px;text-align:center;flex:0 0 22px}
.page-ly .god{width:28px;font-size:var(--tier4);color:var(--ly-ink2);text-align:center;flex:0 0 28px}
.page-ly .sy{width:16px;font-size:var(--tier4);font-weight:400;color:var(--gold2);text-align:center;flex:0 0 16px}
.page-ly .qin{width:30px;font-size:var(--tier4);color:var(--gold2);font-weight:400;text-align:center;flex:0 0 30px;white-space:nowrap;line-height:1.4}
.page-ly .qin.ly-yong{color:var(--red);text-decoration:underline;background:color-mix(in srgb,var(--gold) 16%,transparent);border-radius:0;padding:0 var(--sp-1)}
.page-ly .qin.ly-yong2{color:var(--red);opacity:.62;text-decoration:underline dotted}
.page-ly .gz{width:30px;font-size:var(--tier4);color:var(--ly-ink2);text-align:center;flex:0 0 30px}
.page-ly .yao-sym{display:flex;gap:var(--sp-1);width:112px;justify-content:center}
/* 爻符：阳爻实画、阴爻断画同取本页主体色 */
.page-ly .yb{width:42px;height:12px;background:var(--ly);border-radius:0}
.page-ly .yb.gap{background:transparent;border:none;width:42px;display:flex;justify-content:space-between}
.page-ly .yb.gap span{width:17px;height:12px;background:var(--ly);border-radius:0}
.page-ly .ly-tags{display:flex;align-items:center;gap:var(--sp-1);flex-wrap:nowrap;justify-content:flex-start;width:120px;flex:0 0 120px;overflow:hidden;white-space:nowrap;max-height:34px;-webkit-mask-image:linear-gradient(90deg,#000 82%,transparent);mask-image:linear-gradient(90deg,#000 82%,transparent)}
@media (min-width:641px){
  .page-ly .yao-board .yao-col + .yao-col{border-left:1px solid var(--line);padding-left:var(--sp-5);margin-left:var(--sp-3)}
}
/* 爻位标签：凶红 / 警示金褐 / 中性灰蓝 / 临日月金，统一描边式 */
.page-ly .ly-tag{display:inline-block;padding:0 var(--sp-1);border:0;border-bottom:1px solid;border-radius:0;font-size:var(--tier4);font-weight:400;margin-left:var(--sp-1);line-height:1.55;background:transparent}
.page-ly .ly-tag-po,.page-ly .ly-tag-rp,.page-ly .ly-tag-js,.page-ly .ly-tag-tui{color:var(--ly-bad);border-color:color-mix(in srgb,var(--ly-bad) 45%,transparent)}
.page-ly .ly-tag-mu,.page-ly .ly-tag-jin,.page-ly .ly-tag-cs,.page-ly .ly-tag-ys{color:var(--ly-warn);border-color:color-mix(in srgb,var(--ly-warn) 45%,transparent)}
.page-ly .ly-tag-kong,.page-ly .ly-tag-an,.page-ly .ly-tag-ht,.page-ly .ly-tag-fu{color:var(--ly-neutral);border-color:color-mix(in srgb,var(--ly-neutral) 42%,transparent)}
.page-ly .ly-tag-yue,.page-ly .ly-tag-ri{color:var(--gold2);border-color:color-mix(in srgb,var(--gold2) 50%,transparent)}
/* 表格：线条模式，只留行线与容器顶线，左右与竖线一律不画（同历法页基础信息条） */
.page-ly .ly-cat-tbl{width:100%;border-collapse:collapse;margin-top:var(--sp-1);border-top:1px solid var(--ly-line)}
.page-ly .ly-cat-tbl th,.page-ly .ly-cat-tbl td{border:0;border-bottom:1px solid var(--ly-line);padding:9px 11px;font-size:var(--tier4);text-align:left;line-height:1.68;vertical-align:top;word-break:break-word}
.page-ly .ly-cat-tbl th{background:transparent;color:var(--ly2);letter-spacing:1px;white-space:nowrap;font-weight:400}
.page-ly .ly-cat-tbl tr.ly-cur{background:var(--ly-tint)}
/* 键值型表：键列取历法页基础信息条的同款定宽 */
.page-ly .ly-zh-tbl th,.page-ly .ly-info-tbl th{width:88px}
/* 表间距修饰类须排在 .ly-cat-tbl 之后：同特异性下源序决定胜负，写在前面会被基线的 sp-1 吃掉 */
.page-ly .ly-tbl-gap{margin-top:var(--sp-2)}
.page-ly .ly-tbl-gap-lg{margin-top:var(--sp-3)}
/* 断卦流程引导：步骤列自适应内容宽（width:1%+nowrap），说明列占满剩余空间 */
.page-ly .ly-guide-tbl td:nth-child(1){white-space:nowrap;color:var(--gold2);text-align:center;width:1%}
.page-ly .ly-guide-tbl th:nth-child(1){white-space:nowrap;width:1%}
.page-ly .ly-guide-tbl td:nth-child(2){white-space:normal;word-break:break-word;overflow-wrap:break-word;text-align:left}
/* 铜钱摇卦动画：三枚传世黄铜钱悬浮，投影衬托 */
/* 摇卦铜钱动画层挂 body，不在 .page-ly 内，故不带页前缀 */
.ly-coins{position:fixed;left:50%;top:44%;transform:translate(-50%,-50%);z-index:999;display:flex;gap:var(--sp-5);padding:var(--sp-4) var(--sp-4)}
.ly-coin{width:66px;height:66px;border-radius:50%;overflow:hidden;filter:drop-shadow(0 5px 10px rgba(0,0,0,.42));animation:lyCoinToss .55s cubic-bezier(.45,0,.55,1) infinite alternate}
.ly-coin svg{display:block;width:100%;height:100%}
@keyframes lyCoinToss{from{transform:translateY(0) rotateY(0deg)}
to{transform:translateY(-30px) rotateY(180deg)}}
/* 五行图例：中文五行对应站内专属色 */
.page-ly .ly-wx-fill{fill:currentColor}
.page-ly .ly-wx-fill.wx-mu{color:#5DC336}
.page-ly .ly-wx-fill.wx-huo{color:#F65352}
.page-ly .ly-wx-fill.wx-tu{color:#A07040}
.page-ly .ly-wx-fill.wx-jin{color:#D4A017}
.page-ly .ly-wx-fill.wx-shui{color:#4190FA}
/* 连占对比卡片 */
.page-ly .ly-multi-card{border:2px solid var(--gold);border-radius:0;padding:var(--sp-3) var(--sp-3);margin-top:var(--sp-3);background:var(--card);box-shadow:var(--shadow)}
.page-ly .ly-multi-head{display:flex;align-items:center;gap:var(--sp-2);padding-bottom:var(--sp-2);margin-bottom:var(--sp-2);border-bottom:1px dashed var(--gold)}
.page-ly .ly-multi-no{font-size:var(--tier4);font-weight:400;color:var(--gold2);white-space:nowrap}
.page-ly .ly-multi-info{flex:1 1 auto;min-width:0;font-size:var(--tier4);color:var(--ink2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* 历史记录弹层头部：六爻与梅花两处弹层同名共用，挂 body，主色与线色取 dtm-* 主题令牌 */
.modal .ly-hist-head{display:flex;align-items:baseline;gap:var(--sp-2);font-size:var(--tier3);color:var(--tk2,var(--gold2));font-weight:400;margin:0 0 var(--sp-2);padding-bottom:var(--sp-1);border-bottom:1px solid var(--tk-line,var(--line))}
/* 历史记录弹层表体：表头与记录行同列宽，末行去线 */
.modal.ly-hist-modal .ly-hist-hd,.modal.ly-hist-modal .ly-hist-row{display:flex;gap:var(--sp-1);align-items:center;font-size:var(--tier4);padding:var(--sp-1) 0;border-bottom:1px solid var(--tk-line,var(--line))}
.modal.ly-hist-modal .ly-hist-hd{color:var(--ink2);font-weight:400}
.modal.ly-hist-modal .ly-hc{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.modal.ly-hist-modal .ly-hc-t{flex:0 0 110px;min-width:0;color:var(--ink2)}
.modal.ly-hist-modal .ly-hc-c{flex:0 0 60px;text-align:center;color:var(--ink)}
.modal.ly-hist-modal .ly-hc-g{flex:1 1 auto;min-width:0;color:var(--ink2)}
.modal.ly-hist-modal .ly-hc-a{flex:0 0 72px;text-align:right;white-space:nowrap;display:flex;gap:var(--sp-1);align-items:center;justify-content:flex-end}
/* 移动端 */
@media(max-width:640px){
  .page-ly #lyNumField .ly-num-inputs input{width:30px;padding:0 2px}
  .page-ly #lySpecField .ly-num-inputs input{width:26px;padding:0 2px}
  .page-ly .form-row .ly-q-field{flex:0 0 auto;width:auto;max-width:100%;min-width:0}
  .page-ly #lyNumField>label,.page-ly #lyBaoShuField>label,.page-ly #lySpecField>label,.page-ly #lyStepField>label{white-space:nowrap;margin:0;flex:0 0 auto}
  /* 数字/报数/指定输入框：固定窄宽、不拉伸，与起卦方式并排 */
  .page-ly #lyNumField .ly-num-inputs,.page-ly #lyBaoShuField .ly-num-inputs,.page-ly #lySpecField .ly-num-inputs{flex:0 0 auto;min-width:0}
  .page-ly #lyNumField .ly-num-inputs input,.page-ly #lySpecField .ly-num-inputs input{flex:0 0 auto;width:26px;max-width:26px;min-width:0}
  .page-ly #lyBaoShuField .ly-num-inputs input{flex:0 0 auto;width:38px;max-width:38px;min-width:0;padding:0 2px}
  .page-ly .ly-num-tip{display:none;font-size:var(--tier4)}
  .page-ly #lyStepField .ly-num-row{flex:1 1 auto}
  .page-ly .form-row .ly-q-field input{width:170px;max-width:100%;min-width:0}
  .page-ly .ly-time-row{gap:var(--sp-1) var(--sp-2)}
  .page-ly .ly-time-row #lyDate{width:96px}
  .page-ly .yao-board{flex-direction:column;gap:var(--sp-3);align-items:center;padding:var(--sp-3) var(--sp-4)}
  .page-ly .yao-board.ly-sub{flex-direction:row;gap:var(--sp-1);align-items:flex-start;justify-content:center}
  .page-ly .yao-board.ly-sub .yao-col{flex:0 1 auto;width:auto;max-width:none}
  .page-ly .yao-board.ly-sub .yao-line{gap:0}
  .page-ly .yao-board.ly-sub .yao-sym{width:64px}
  .page-ly .yao-board.ly-sub .yb{width:24px;height:9px}
  .page-ly .yao-board.ly-sub .yb.gap{width:24px}
  .page-ly .yao-board.ly-sub .yb.gap span{width:9px;height:9px}
  .page-ly .yao-col{flex:1 1 auto;width:100%;max-width:520px}
  .page-ly .yao-line{gap:2px;font-size:var(--tier4);margin:var(--sp-1) 0;justify-content:center}
  .page-ly .yao-sym{width:92px;gap:2px}
  .page-ly .yb{width:34px;height:11px}
  .page-ly .yb.gap{width:34px}
  .page-ly .yb.gap span{width:13px;height:11px}
  .page-ly .god,.page-ly .qin,.page-ly .sy,.page-ly .gz{font-size:var(--tier4);white-space:nowrap}
  .page-ly .yao-tag{font-size:var(--tier4)}
  .page-ly .ly-tag{font-size:var(--tier4);padding:1px var(--sp-1);margin-left:var(--sp-1)}
  .page-ly .ly-cat-tbl th,.page-ly .ly-cat-tbl td{padding:7px;line-height:1.55}
  /* 多列参考表窄屏列宽走全站契约（下限 7em、上限 min(70vw,22em)），由折叠区横向滚动兜底 */
  .page-ly details.mh-ref{overflow-x:auto;-webkit-overflow-scrolling:touch}
  /* 起卦方式说明窄屏按站内标签一行、说明一行的堆叠写法，说明列得满宽（并排时 320 视口只剩 156px，13 字说明要 169px） */
  .page-ly .ly-lead-row{display:block}
  .page-ly .ly-lead-n{display:block;margin-bottom:2px}
}
@media(max-width:420px){
  .page-ly .ly-zh-tbl th,.page-ly .ly-info-tbl th{width:72px}
  .page-ly .ly-cat-ref{min-width:420px}
  /* 断卦流程引导：步骤列自适应内容宽，说明列占满剩余空间 */
  .page-ly .ly-guide-tbl td:nth-child(1){width:1%;white-space:nowrap;padding-left:4px;padding-right:4px}
  .page-ly .ly-guide-tbl td:nth-child(2){white-space:normal;word-break:break-word;overflow-wrap:break-word;text-align:left}
}
/* 变卦口径勾选：窄屏文字放宽换行，仍保持上下叠放 */
@media(max-width:640px){
  .page-ly .ly-bo-row{flex:1 1 100%}
  .page-ly .ly-bo{white-space:normal}
  /* 出生地组上线与上方控件底的净距须为 12px（第二条：相邻平行线不得小于 12 像素）：
     外层表单行在窄屏的 row-gap 给 8px，余下 4px 由本组自带的顶距补足，两处相加恰为 12px */
  .page-ly .birth-group{margin-top:var(--sp-1)}
}
.page-ly .page > .form-row{margin-bottom:var(--sp-2)}



.page-ly .page h1{color:var(--ly-deep);font-family:var(--ly-serif);font-size:23px;letter-spacing:.3em;text-indent:.3em;text-align:center;line-height:1.3}/* 页头细线：上下各一条 88px 夹题，卷首说明末尾 26px 竖线收束（规则档第三条） */
.page-ly .page h1::before{content:'';display:block;width:88px;height:1px;background:var(--ly-line);margin:0 auto var(--sp-3)}
.page-ly .page h1::after{content:'';display:block;width:88px;height:1px;background:var(--ly-line);margin:var(--sp-3) auto 0}
.page-ly .page .lead{color:var(--ly-ink2);text-align:center;font-size:12.5px;letter-spacing:.22em;text-indent:.22em;margin-top:var(--sp-3)}
.page-ly .page .lead::after{background:var(--ly-line)}
.page-ly .rel-title{color:var(--ly2)}
.page-ly .ly-zh-p{color:var(--ly-ink)}
.page-ly .sub-note{color:var(--ly-ink2)}
.page-ly .notice{color:var(--ly-ink);border:1px solid var(--ly-line);background:var(--ly-tint);border-radius:0}
.page-ly .ly-lead-more summary{color:var(--ly2)}

.page-ly .field label{color:var(--ly2);font-weight:400}
.page-ly .field input,.page-ly .field select{border-color:var(--ly-line);background:var(--card);color:var(--ly-deep)}
.page-ly .field input:focus,.page-ly .field select:focus{border-color:var(--ly);outline:none}
.page-ly .group-label{color:var(--ly2)}

.page-ly .btn{background:var(--ly)}
.page-ly .btn:hover{background:var(--ly2)}
.page-ly .btn-ghost{background:var(--card);border:1px solid var(--ly);color:var(--ly2)}
.page-ly .btn-ghost:hover{background:var(--ly-tint)}

/* 当地分组框：铜纸淡底卡片（对齐他页 birth-group 惯例） */
.page-ly .birth-group,.page-ly .birth-group.compact{background:transparent;border:0;border-top:1px solid var(--ly-line);border-radius:0;box-shadow:none;padding:var(--sp-3) 0}
/* 窄屏题头到上线收到移动端更小档 --sp-2；本块排在基条之后，同权重下由后位取终值 */
@media(max-width:640px){.page-ly .birth-group,.page-ly .birth-group.compact{padding-top:var(--sp-2)}}
/* 勾选行标签（真太阳时校正）不加粗，对齐铁板页与姓名页口径 */
.page-ly .field.chk label{font-weight:400}

/* 附加功能面板（基础款） */
.page-ly .ai-block{border:0;border-top:1px solid var(--ly-line);border-bottom:1px solid var(--ly-line);border-radius:0;background:transparent;color:var(--ly-ink);box-shadow:none}
.page-ly .ai-head{background:transparent;border-bottom-color:var(--ly-line)}
.page-ly .ai-head h3{color:var(--ly2)}
.page-ly .ai-block .btn{background:var(--ly);color:#fff}
.page-ly .ai-block .btn:hover{background:var(--ly2)}
.page-ly .ai-block .btn.gold,.page-ly .ai-block .btn.soft{background:var(--ly-tint);border-color:var(--ly-line);color:var(--ly-ink);box-shadow:none}
.page-ly .ai-block .btn.gold:hover,.page-ly .ai-block .btn.soft:hover{background:var(--card);border-color:var(--ly);color:var(--ly2)}
.page-ly .ai-block .ai-out,.page-ly .ai-block .ai-bubble.user,.page-ly .ai-block .ai-bubble.assistant,.page-ly .ai-block .ai-model-name,.page-ly .ai-block input,.page-ly .ai-block select{color:var(--ly-ink)}
.page-ly .ai-tab.active{background:var(--ly);border-color:var(--ly);color:#fff}
.page-ly .ai-bubble.user{background:var(--ly-tint);border-color:var(--ly)}
.page-ly .ai-bubble.assistant{border-color:var(--ly-line)}
/* 打印：恢复素底 */
@media print{
  .page-ly .ly-cat-tbl th{background:var(--card) !important;border-color:var(--line) !important}
}
/* ===== 页级样式：meihua（page-mh）===== */
.page-mh{--mh:#913b58;/* 宫粉梅主色 */
  --mh2:#7a2e48;/* 深梅：hover与强调 */
  --mh-deep:#431928;/* 梅墨：大标题字色 */
  --mh-ink:#483641;/* 梅灰墨：正文字色 */
  --mh-blossom:#d4778f;/* 亮梅粉点缀（装饰用） */
  --mh-line:#e6d0d9;/* 梅浅线 */
  --mh-tint:#fbf1f5;/* 梅粉淡底 */
  --mh-ink2:#6d4f59;  /* 次级字色：卷首说明、副注、标注 */
  --mh-serif:var(--font-serif);  /* 卷首宋体：页头与题名 */
  --gold2:var(--mh2);--gold:var(--mh);--gold-brown:var(--mh2);--gold-bg:var(--mh-tint);--line:var(--mh-line);--ink:var(--mh-ink)}
.page-mh h3.rel-title{margin:var(--sp-4) 0 var(--sp-2)}
.page-mh details.mh-ref{border-color:var(--mh-line)}
.page-mh details.mh-ref > summary{cursor:pointer;user-select:none}
.page-mh details.mh-ref > summary:hover{color:var(--gold)}
.page-mh .form-row .ly-q-field{flex:0 0 auto;min-width:0;max-width:none;width:auto}
.page-mh .form-row .ly-q-field input{width:168px;max-width:100%}
/* 起卦方式附属字段：内容自适应，不撑满行 */
/* 起卦方式对应的输入组：默认不占位，选中的那组才排出来（显隐走 .is-on，不由 JS 写内联 display） */
.page-mh .form-row .mh-sel-field{display:none;flex:0 1 auto;min-width:0;max-width:none}
.page-mh .form-row .mh-sel-field.is-on{display:flex}
/* 输入宽须高于 style.css 的 .form-row .field input{width:auto}，否则回落浏览器默认约170px */
.page-mh .form-row .field input.mh-num-input{width:52px}
.page-mh .form-row .field input.mh-char-input{width:72px}
.page-mh .form-row .field input.mh-name-input{width:88px}
.page-mh .form-row .field input.mh-ying-input{width:240px}
.page-mh .mh-zi-field{flex:0 0 auto;min-width:0;margin:0}
.page-mh .mh-multi-label{font-size:var(--tier4);display:inline-flex;align-items:center;gap:var(--sp-1);margin:0;cursor:pointer}
.page-mh .mh-true-tip{font-size:var(--tier4);color:var(--mh-ink2)}
.page-mh .mh-yao-sub{font-size:var(--tier4);color:var(--mh-ink2);margin-top:var(--sp-1)}
/* 历史记录弹层挂 body，不在 .page-mh 内，样式收口在弹层自身类上 */
.modal.mh-hist-modal .mh-hist-empty{padding:var(--sp-3);color:var(--tk-ink,var(--ink2));font-size:var(--tier4);text-align:center}
.modal.mh-hist-modal .mh-hist-row{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) 0;border-bottom:1px solid var(--tk-line,var(--line))}
.modal.mh-hist-modal .mh-hist-row .mh-hist-t{flex:1;font-size:var(--tier4)}
.modal.mh-hist-modal .mh-hist-row .btn{height:30px;font-size:var(--tier4)}
.page-mh .mh-group-gap{margin-top:var(--sp-3)}
.page-mh .mh-chk-native{width:auto;height:auto}
.modal.mh-hist-modal{max-width:560px}
.page-mh .ly-time-row{flex:1 1 100%;display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-3);align-items:flex-end;padding:var(--sp-2) 0;background:transparent;border:0;border-bottom:1px solid var(--mh-line);border-radius:0;margin-top:2px;min-width:0;box-sizing:border-box}
.page-mh .ly-time-row .field{flex:0 0 auto;min-width:0;margin:0}
.page-mh .ly-time-row .ly-tf-btn .btn{font-size:var(--tier4);white-space:nowrap;width:auto;min-width:0;margin:0}
.page-mh .ly-actions{display:flex;gap:var(--sp-2);align-items:flex-end;flex:1 1 auto;min-width:0;max-width:100%;flex-wrap:wrap}
.page-mh .ly-actions .btn{flex:0 0 auto;width:auto;min-width:0;display:inline-flex;align-items:center;justify-content:center}
.page-mh .page .ly-time-row .ly-tf-btn .btn,.page-mh .page .ly-actions .btn:not(#mhCastBtn){background:transparent;border:1px solid var(--line);color:var(--ink2)}
.page-mh .page .ly-time-row .ly-tf-btn .btn:hover,.page-mh .page .ly-actions .btn:not(#mhCastBtn):hover{border-color:var(--gold);color:var(--ink);background:var(--gold-bg)}
.page-mh .ly-num-row{display:flex;align-items:center;gap:var(--sp-1);flex-wrap:wrap;min-width:0}
.page-mh .ly-num-inputs{display:flex;gap:var(--sp-1);flex:0 0 auto}
.page-mh .ly-num-inputs input{text-align:center;padding:0 4px;font-size:var(--tier4);border:1px solid var(--line);border-radius:0;background:var(--card);font-family:inherit;box-sizing:border-box}
/* 表格：线条模式，只留行线与容器顶线，左右与竖线一律不画（与六爻同口径，同历法页基础信息条） */
.page-mh .ly-cat-tbl{width:100%;border-collapse:collapse;margin-top:var(--sp-1);border-top:1px solid var(--mh-line)}
.page-mh .ly-cat-tbl th,.page-mh .ly-cat-tbl td{border:0;border-bottom:1px solid var(--mh-line);padding:9px 11px;font-size:var(--tier4);text-align:left;line-height:1.68;vertical-align:top;word-break:break-word}
.page-mh .ly-cat-tbl th{background:transparent;color:var(--mh2);letter-spacing:1px;white-space:nowrap;font-weight:400}
/* 表间距修饰类须排在 .ly-cat-tbl 之后：同特异性下源序决定胜负，写在前面会被基线的 sp-1 吃掉 */
.page-mh .mh-tbl-gap{margin-top:var(--sp-2)}
.page-mh .mh-tbl-gap-lg{margin-top:var(--sp-3)}
.page-mh .ly-cat-tbl tr.ly-cur{background:var(--mh-tint)}
/* 键值型表：键列取历法页基础信息条的同款定宽 */
.page-mh .ly-zh-tbl th{width:88px}
.page-mh .ly-multi-card{border:2px solid var(--mh-line,var(--line));border-radius:0;padding:var(--sp-3) var(--sp-3);margin-top:var(--sp-3);background:var(--card);box-shadow:var(--shadow)}
.page-mh .ly-multi-card h3.rel-title:first-child{margin-top:0}
.page-mh .ly-multi-card .yao-board{padding:var(--sp-2) var(--sp-3);gap:var(--sp-3)}
.page-mh .ly-multi-card .yao-col{flex:0 1 auto;width:auto}
.page-mh .ly-multi-card .yb{width:22px;height:7px}
.page-mh .ly-multi-card .yb.gap{width:22px}
.page-mh .ly-multi-card .yb.gap span{width:9px;height:7px}
/* 梅花独有：分类占断表列宽 */
.page-mh .mh-cat-tbl th:first-child{white-space:nowrap;width:4em}
.page-mh .mh-judge-tbl th:first-child{white-space:nowrap;width:6em}
.page-mh .mh-info-tbl th:first-child{white-space:nowrap;width:6em}
/* 旺衰五行量化表：六列均分铺满容器；窄屏由 .mh-tbl-wrap 横滚兜底，不撑破页面。
   此表不可挂 .ly-zh-tbl：键值表的 th 定宽 88px 在 table-layout:fixed 下逐列生效，
   六列即 528px，窄屏会把整页顶出横向滚动。 */
.page-mh .mh-tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.page-mh .mh-wang-tbl{width:100%;table-layout:fixed}
.page-mh .mh-wang-tbl th,.page-mh .mh-wang-tbl td{padding:3px 8px;font-size:var(--tier4);text-align:center;white-space:nowrap}
.page-mh .mh-wang-tbl th{background:transparent;color:var(--mh2);font-weight:400}
.page-mh .mh-wang-cur{background:var(--mh-tint);font-weight:400}
.page-mh .wang-note{margin-top:var(--sp-2);font-size:var(--tier4);color:var(--mh-ink2);line-height:1.6}
/* 爻图：梅花卦画为纯爻条（无六亲/神煞侧列），采用紧凑秀气的卦画式布局 */
/* 卦象板上游是带行线的起卦信息表（末行为体用），末行下线已承担分隔，此处不得再画上边线（否则双线） */
.page-mh .yao-board{display:flex;gap:var(--sp-4);flex-wrap:wrap;justify-content:center;margin-top:var(--sp-3);background:transparent;border:0;border-radius:0;padding:var(--sp-3) var(--sp-4);box-shadow:none}
.page-mh .yao-col{text-align:center}
.page-mh .yao-col h4{margin:0 0 var(--sp-1);padding-bottom:var(--sp-1);border-bottom:1px solid var(--mh-line,var(--line));color:var(--gold2);font-size:var(--tier4);font-weight:400;letter-spacing:1px}
.page-mh .yao-line{display:flex;align-items:center;justify-content:center;margin:2px 0;min-height:18px}
.page-mh .yao-line.ly-gap{margin-top:var(--sp-2)}
.page-mh .yao-sym{display:flex;gap:var(--sp-1);width:auto;justify-content:center}
/* 爻符：阳爻实画、阴爻断画同取本页主体色 */
.page-mh .yb{width:28px;height:9px;background:var(--mh);border-radius:0}
.page-mh .yb.gap{background:transparent;border:none;width:28px;display:flex;justify-content:space-between}
.page-mh .yb.gap span{width:12px;height:9px;background:var(--mh);border-radius:0}
@media (min-width:641px){
  .page-mh .yao-board .yao-col + .yao-col{border-left:1px solid var(--mh-line,var(--line));padding-left:var(--sp-4);margin-left:var(--sp-2)}
}
@media(max-width:640px){
  .page-mh .yao-board{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-2) var(--sp-3);margin-top:var(--sp-3);background:transparent;border:0;border-radius:0;padding:var(--sp-3);box-shadow:none}
  .page-mh .yao-col{width:auto;max-width:none;min-width:0}
  .page-mh .yao-col h4{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:var(--tier4)}
  .page-mh .yao-line{margin:1px 0;min-height:15px}
  .page-mh .yao-line.ly-gap{margin-top:var(--sp-1)}
  .page-mh .yao-sym{gap:var(--sp-1)}
  .page-mh .yb{width:24px;height:8px}
  .page-mh .yb.gap{width:24px}
  .page-mh .yb.gap span{width:10px;height:8px}
}
.page-mh .notice{color:var(--mh-ink2);border:1px solid var(--mh-line,var(--line));background:var(--mh-tint,var(--paper2));border-radius:0;padding:var(--sp-2) var(--sp-3);margin-top:var(--sp-3);line-height:1.7}
.page-mh .xz-note{border:1px solid var(--mh-line,var(--line));border-radius:0;padding:var(--sp-2) var(--sp-3);margin-top:var(--sp-2);font-size:var(--tier4);line-height:1.6;background:var(--card)}
.page-mh .xz-note b{color:var(--gold2)}
.page-mh .mh-method{color:var(--mh-ink2);font-size:var(--tier4);line-height:1.7;margin-top:var(--sp-2)}
/* 八卦类象全表 */
.page-mh .mh-tri-wrap{overflow-x:auto;margin-top:var(--sp-2)}
.page-mh .mh-tri-tbl{table-layout:auto;width:100%}
.page-mh .mh-tri-tbl th,.page-mh .mh-tri-tbl td{padding:6px 8px;font-size:var(--tier4);text-align:center;vertical-align:middle;line-height:1.5}
.page-mh .mh-tri-tbl th{white-space:nowrap;font-weight:400;color:var(--mh2)}
.page-mh .mh-tri-tbl td{white-space:normal;word-break:break-word}
.page-mh .mh-tri-tbl td:first-child{white-space:nowrap}
@media(max-width:640px){
  .page-mh .ly-time-row{gap:var(--sp-1) var(--sp-2)}
  .page-mh .ly-time-row #mDate{width:96px}
  .page-mh .ly-time-row #mTime{width:86px}
  .page-mh .form-row .field input.mh-num-input{width:38px}
  .page-mh .ly-cat-tbl th,.page-mh .ly-cat-tbl td{padding:7px;line-height:1.55}
  .page-mh .mh-wang-tbl th,.page-mh .mh-wang-tbl td{padding:4px 3px}
  .page-mh .ly-actions .btn{max-width:88px;white-space:nowrap;overflow:hidden}
  .page-mh .mh-cat-tbl th:first-child,.page-mh .mh-judge-tbl th:first-child,.page-mh .mh-info-tbl th:first-child{width:calc(4em + 12px);min-width:calc(4em + 12px);max-width:calc(4em + 12px);padding-left:4px;padding-right:4px}
  .page-mh .mh-cat-tbl th,.page-mh .mh-cat-tbl td,.page-mh .mh-judge-tbl td,.page-mh .mh-info-tbl td{padding:7px 6px;line-height:1.55;word-break:break-word}
  .page-mh .mh-cat-tbl th{white-space:normal;letter-spacing:0}
  .page-mh .mh-tri-tbl{table-layout:auto;width:max-content}
  .page-mh .mh-tri-tbl th,.page-mh .mh-tri-tbl td{padding:6px 7px;text-align:center;white-space:nowrap}
  .page-mh .mh-tri-tbl td:first-child{white-space:nowrap}
  .page-mh .mh-tri-tbl td:last-child{white-space:normal;word-break:break-word;min-width:96px;text-align:left}
  .page-mh .mh-tri-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
}
/* 历史弹层：口径与六爻页同名类一致，边框随本页梅粉主题 */
.modal.mh-hist-modal .ly-hist-list > div{border-bottom:1px solid var(--tk-line,var(--line))}
.page-mh .page > .form-row{margin-bottom:var(--sp-2)}



.page-mh .page h1{color:var(--mh-deep);font-family:var(--mh-serif);font-size:23px;letter-spacing:.3em;text-indent:.3em;text-align:center;line-height:1.3}/* 页头细线：上下各一条 88px 夹题，卷首说明末尾 26px 竖线收束（规则档第三条） */
.page-mh .page h1::before{content:'';display:block;width:88px;height:1px;background:var(--mh-line);margin:0 auto var(--sp-3)}
.page-mh .page h1::after{content:'';display:block;width:88px;height:1px;background:var(--mh-line);margin:var(--sp-3) auto 0}
.page-mh .page .lead::after{background:var(--mh-line)}

.page-mh .page .lead{color:var(--mh-ink2);text-align:center;font-size:12.5px;letter-spacing:.22em;text-indent:.22em;margin-top:var(--sp-3)}
.page-mh .rel-title{color:var(--mh2)}
.page-mh .ly-zh-p{color:var(--mh-ink)}
.page-mh .sub-note{color:var(--mh-ink2)}

.page-mh .field label{color:var(--mh2);font-weight:400}
.page-mh .field input,.page-mh .field select{border-color:var(--mh-line);background:var(--card);color:var(--mh-deep)}
.page-mh .field input:focus,.page-mh .field select:focus{border-color:var(--mh);outline:none}
.page-mh .group-label{color:var(--mh2)}
.page-mh .field.chk label{font-weight:400}

.page-mh .btn{background:var(--mh)}
.page-mh .btn:hover{background:var(--mh2)}
.page-mh .btn-ghost{background:var(--card);border:1px solid var(--mh);color:var(--mh2)}
.page-mh .btn-ghost:hover{background:var(--mh-tint)}

/* 当地分组框：梅粉淡底卡片（对齐六爻页口径） */
.page-mh .birth-group,.page-mh .birth-group.compact{background:transparent;border:0;border-top:1px solid var(--mh-line);border-radius:0;box-shadow:none;padding:var(--sp-3) 0}
/* 窄屏题头到上线收到移动端更小档 --sp-2；本块排在基条之后，同权重下由后位取终值 */
@media(max-width:640px){.page-mh .birth-group,.page-mh .birth-group.compact{padding-top:var(--sp-2)}}

/* 附加功能面板（基础款） */
.page-mh .ai-block{border:0;border-top:1px solid var(--mh-line);border-bottom:1px solid var(--mh-line);border-radius:0;background:transparent;color:var(--mh-ink);box-shadow:none}
.page-mh .ai-head{background:transparent;border-bottom-color:var(--mh-line)}
.page-mh .ai-head h3{color:var(--mh2)}
.page-mh .ai-block .btn{background:var(--mh);color:#fff}
.page-mh .ai-block .btn:hover{background:var(--mh2)}
.page-mh .ai-block .btn.gold,.page-mh .ai-block .btn.soft{background:var(--mh-tint);border-color:var(--mh-line);color:var(--mh-ink);box-shadow:none}
.page-mh .ai-block .btn.gold:hover,.page-mh .ai-block .btn.soft:hover{background:var(--card);border-color:var(--mh);color:var(--mh2)}
.page-mh .ai-block .ai-out,.page-mh .ai-block .ai-bubble.user,.page-mh .ai-block .ai-bubble.assistant,.page-mh .ai-block .ai-model-name,.page-mh .ai-block input,.page-mh .ai-block select{color:var(--mh-ink)}
.page-mh .ai-tab.active{background:var(--mh);border-color:var(--mh);color:#fff}
.page-mh .ai-bubble.user{background:var(--mh-tint);border-color:var(--mh)}
.page-mh .ai-bubble.assistant{border-color:var(--mh-line)}
/* 打印：恢复素底 */
@media print{
  .page-mh .ly-cat-tbl th,.page-mh .mh-wang-tbl th,.page-mh .birth-group{background:var(--card) !important;border-color:var(--line) !important}
}
/* ===== 页级样式：minsu（page-ms）===== */

.page-ms .page h1{color:var(--ms-deep);font-family:var(--ms-serif);font-size:23px;letter-spacing:.3em;text-indent:.3em;text-align:center;line-height:1.3}/* 页头细线：上下各一条 88px 夹题，卷首说明末尾 26px 竖线收束（规则档第三条） */
.page-ms .page h1::before{content:'';display:block;width:88px;height:1px;background:var(--ms-line);margin:0 auto var(--sp-3)}
.page-ms .page h1::after{content:'';display:block;width:88px;height:1px;background:var(--ms-line);margin:var(--sp-3) auto 0}
.page-ms .page .lead::after{background:var(--ms-line)}

.page-ms .page .lead{color:var(--ms-ink2);text-align:center;font-size:12.5px;letter-spacing:.22em;text-indent:.22em;margin-top:var(--sp-3)}
.page-ms .rel-title{color:var(--ms2)}
.page-ms .ly-zh-p{color:var(--ms-ink)}
.page-ms .sub-note{color:var(--ms-ink2)}

/* 表单：标签深绛加粗、绛线描边白底控件、聚焦绛色光圈 */
.page-ms .field label{color:var(--ms2);font-weight:400}
.page-ms .field input,.page-ms .field select{border-color:var(--ms-line);background:var(--card);color:var(--ms-deep)}
.page-ms .field input:focus,.page-ms .field select:focus{border-color:var(--ms);outline:none}
/* 模块内表单行：模块内不加底色（对齐全站 .form-row 无底色口径） */
.page-ms .page > .form-row{background:transparent}
/* 主按钮（称骨/查犯月/查本命佛/测号码）绛朱实底 */
.page-ms .btn,.page-ms .btn.gold{background:var(--ms);border-color:var(--ms);color:#fff;box-shadow:none}
.page-ms .btn:hover,.page-ms .btn.gold:hover{background:var(--ms2);border-color:var(--ms2);color:#fff;box-shadow:none}


/* 模块题头（section.mod）：绛纸淡底带 + 深绛题字（对齐全站 .mod-head：无顶部饰条、外壳无框） */
.page-ms .mod-head{border-top-color:var(--ms-line);border-bottom-color:var(--ms-line)}
.page-ms .mod-title,.page-ms .mod-caret{color:var(--ms2)}
.page-ms .mod-sub{color:var(--ms-ink2)}
/* 参考折叠（八十一数理/称骨歌/败子歌/八星配对）：去框内底色，对齐其他页 details 素底口径 */
.page-ms details.mh-ref{border-color:var(--ms-line)}

/* 结果区：表格绛染表头、卡片/附注/本命佛绛线，值字深绛 */
.page-ms .ms-tbl th{background:transparent;color:var(--ms2);border-bottom:1px solid var(--ms-line)}
.page-ms .ms-tbl td{color:var(--ms-ink);border-color:var(--ms-line)}
.page-ms .ms-buddha,.page-ms .ms-note{border-color:var(--ms-line)}
.page-ms .ms-card-v,.page-ms .ms-bx-pair,.page-ms .ms-buddha-name{color:var(--ms2)}

/* 结果区：模块内去底色，仅保留描边/字级/首列/徽章，与其他页模块内素底口径一致 */
/* 结果卡：绛线描边（底色回归 .ms-page 既有 paper2，无投影） */
.page-ms .ms-card{border-color:var(--ms-line)}
.page-ms .ms-card-gold{border-color:var(--ms)}
.page-ms .ms-card-k{font-size:13px;font-weight:600;color:var(--ms2)}
.page-ms .ms-card-s{font-size:11px;color:var(--ms-ink)}
/* 首列标签（分项/骨重表、数理表、八星表）深绛半粗强调，纠正 .ms-c0 被 .ms-tbl td 压盖 */
.page-ms .ms-tbl td.ms-c0{color:var(--ms2);font-weight:700}
/* 歌诀卡：朱墨正文（原鎏金 2.8:1 对比不足），底色/结构不动 */
.page-ms .ms-verse{color:var(--ms-deep);font-size:13px;line-height:1.9}
.page-ms .ms-verse>div{color:var(--ms2);font-weight:600;font-size:13px}
/* 吉/凶徽章：填色淡底 + 语义文字色；吉凶徽章去内边框，只保留背景色块（无则保留线） */
.page-ms .ms-badge.ms-ok{border:0;color:#154021;background:#eef6ef}
.page-ms .ms-badge.ms-warn{border:0;color:#70251c;background:#fbeceb}
.page-ms .ms-badge.ms-plain{border-color:var(--ms-line);color:var(--ms2);background:transparent}
/* 长表横滚淡出提示：表尾右缘渐隐，暗示可横向滚动（移动端表格被截断像坏了的问题） */
.page-ms .ms-tbl-wrap{position:relative}
/* 三世书三表由脚本插入，无 .ms-tbl-wrap 包裹：列多被压会把三字宫位挤成单字，补最小宽并由该容器横滚兜底 */
#msSanshiBody{overflow-x:auto;-webkit-overflow-scrolling:touch}
#msSanshiBody .ms-tbl{min-width:520px}
/* 三世书三表的宫位与位次都是短定名（十二宫、十一宫），列窄时不得拆成单字 */
#msSanshiBody .ms-tbl th,#msSanshiBody .ms-tbl td{white-space:nowrap}
/* 卡片值里的日期是短串，年字后的空格断点会把末字甩到下一行：整段不折行 */
.page-ms .ms-card-v{font-size:20px;font-weight:700;color:var(--ms2);line-height:1.3;white-space:nowrap}
.page-ms .ms-tbl-wrap::after{content:'';position:absolute;top:0;right:0;bottom:0;width:22px;pointer-events:none;background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.9))}

/* 附加功能面板（基础款，色换绛朱；题名与内距由通用段终值承担，页面段只写线色与题色） */
.page-ms .ai-block{
  border:0;border-top:1px solid var(--ms-line);border-bottom:1px solid var(--ms-line);border-radius:0;
  background:transparent;color:var(--ms-ink);box-shadow:none;
}
.page-ms .ai-head{background:transparent;border-bottom-color:var(--ms-line)}
.page-ms .ai-head h3{color:var(--ms2)}
.page-ms .ai-block .btn{background:var(--ms);color:#fff}
.page-ms .ai-block .btn:hover{background:var(--ms2)}
.page-ms .ai-block .btn,.page-ms .ai-block .btn.gold{box-shadow:none}
.page-ms .ai-block .btn.gold,.page-ms .ai-block .btn.soft{background:var(--ms-tint);border-color:var(--ms-line);color:var(--ms-ink);box-shadow:none}
.page-ms .ai-block .btn.gold:hover,.page-ms .ai-block .btn.soft:hover{background:var(--card);border-color:var(--ms);color:var(--ms2)}
.page-ms .ai-block .ai-out,.page-ms .ai-block .ai-bubble.user,.page-ms .ai-block .ai-bubble.assistant,.page-ms .ai-block .ai-model-name,.page-ms .ai-block input,.page-ms .ai-block select{color:var(--ms-ink)}
.page-ms .ai-tab.active{background:var(--ms);border-color:var(--ms);color:#fff}
.page-ms .ai-bubble.user{background:var(--ms-tint);border-color:var(--ms)}
.page-ms .ai-bubble.assistant{border-color:var(--ms-line)}
/* 打印：恢复素底 */
@media print{
  .page-ms .ms-tbl th,.page-ms .mod-head,.page-ms .info-box,.page-ms .page > .form-row{background:var(--card) !important;box-shadow:none !important;border-color:var(--line) !important}
}

.ms-page #msCnYear{width:76px;align-self:flex-start}
.ms-page .ms-tbl-wrap{margin-top:var(--sp-2);overflow-x:auto}
.ms-page .ms-tbl{width:100%;border-collapse:collapse;font-size:13px;line-height:1.6}
.ms-page .ms-tbl th{text-align:left;color:var(--ms2);font-weight:400;border-bottom:1px solid var(--ms-line);padding:6px 8px;font-size:13px;white-space:nowrap}
.ms-page .ms-tbl td{color:var(--ms-ink);padding:6px 8px;border-bottom:1px solid var(--ms-line);vertical-align:top}
.ms-page .ms-c0{white-space:nowrap;color:var(--ms2)}
.ms-page .ms-bad{color:#70251c}
.ms-page .ms-good{color:#154021}
.ms-page .ms-muted{color:var(--ms-ink2)}
.ms-page .ms-cards{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin:var(--sp-2) 0}
.ms-page .ms-card{flex:1 1 150px;min-width:140px;border:0;border-radius:0;padding:var(--sp-1) var(--sp-2) var(--sp-1) 0;background:transparent}
.ms-page .ms-card-k{font-size:12px;color:var(--ms-ink2)}
.ms-page .ms-card-v{font-size:15px;font-weight:400;color:var(--ms2);line-height:1.4}
.ms-page .ms-card-s{font-size:12px;color:var(--ms-ink2)}
.ms-page .ms-card-gold{border-color:var(--ms2)}
.ms-page .ms-card-gold .ms-card-v{font-size:15px} /* 四柱值字数多，字号略小于其余卡值 */
.ms-page .ms-badge{display:inline-block;padding:2px var(--sp-2);border-radius:0;border:1px solid var(--ms-line);font-size:12px;margin:0 var(--sp-1) var(--sp-1) 0;background:transparent}
.ms-page .ms-badge.ms-ok{border-color:#154021;color:#154021}
.ms-page .ms-badge.ms-plain{color:var(--ms-ink)}
.ms-page .ms-judge{border:0;border-top:1px solid var(--ms-line);border-radius:0;padding:var(--sp-2) 0 0;margin:var(--sp-2) 0 0;background:transparent;color:var(--ms-ink);font-size:13px}
.ms-page .ms-judge-row{display:flex;gap:var(--sp-2);padding:var(--sp-1) 0;border-bottom:1px solid var(--ms-line);align-items:baseline}
.ms-page .ms-judge-row:last-child{border-bottom:0}
.ms-page .ms-judge-k{flex:0 0 5.5em;color:var(--ms-ink);white-space:nowrap}
.ms-page .ms-verse{margin:var(--sp-2) 0;padding:0;border:0;background:transparent;border-radius:0;line-height:1.9;color:var(--ms-deep);font-size:14px}
.ms-page .ms-verse>div{font-weight:400;color:var(--ms2);font-size:13px;margin-bottom:2px}
.ms-page h3{font-weight:600;color:var(--ms2);font-size:var(--tier4);margin:var(--sp-3) 0 var(--sp-1)}
.ms-page .ms-buddha{border:0;border-top:1px solid var(--ms-line);border-radius:0;padding:var(--sp-2) 0 0;margin:var(--sp-2) 0 0;background:transparent}
.ms-page .ms-buddha-name{font-weight:400;color:var(--ms2);font-size:15px}
.ms-page .ms-buddha-mantra{font-size:14px;line-height:1.9}
.ms-page .ms-buddha-py{color:var(--ms-ink);font-size:12px}
.ms-page .ms-buddha .ms-note{border:0;background:transparent;padding:var(--sp-2) 0 0;margin-top:var(--sp-2);border-top:1px solid var(--ms-line);border-radius:0}
.ms-page .ms-bx-row{display:flex;gap:var(--sp-2);flex-wrap:wrap;align-items:baseline;padding:var(--sp-1) 0;border-bottom:1px solid var(--ms-line)}
.ms-page .ms-bx-row:last-child{border-bottom:0}
.ms-page .ms-bx-pair{font-weight:400;color:var(--ms2);font-size:14px;white-space:nowrap}
.ms-page .ms-note{margin:var(--sp-2) 0 0;padding:0;border:0;border-radius:0;background:transparent;font-size:12px;color:var(--ms-ink);line-height:1.8}
.ms-page .ms-provenance{margin:var(--sp-2) 0 0;padding:var(--sp-1) 0 0;border-top:1px solid var(--ms-line);font-size:12px;color:var(--ms-ink);line-height:1.8}
.ms-page .ms-disclaimer{margin:var(--sp-2) 0 0;padding:var(--sp-1) 0 0;border-top:1px solid var(--ms-line);font-size:12px;color:var(--ms-ink);line-height:1.8}
.ms-page .ms-err{color:#70251c;padding:var(--sp-2) 0}
@media (max-width:640px){
  .ms-page .ms-cards{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-1);margin:var(--sp-2) 0}
  .ms-page .ms-card{min-width:0;padding:var(--sp-2) var(--sp-2);border-radius:0}
  .ms-page .ms-card-k{font-size:11px}
  .ms-page .ms-card-v{font-size:16px;line-height:1.25}
  .ms-page .ms-card-s{font-size:11px}
  .ms-page .ms-card-gold{grid-column:1 / -1}
  .ms-page .ms-card-gold .ms-card-v{font-size:13px}
  .ms-page .ms-tbl-wrap{overflow-x:auto}
  .ms-page .ms-tbl{min-width:520px}
  .ms-page .ms-judge-k{flex:0 0 4em}
}
/* ===== 页级样式：opensource（page-os）===== */
/* 开源页：版权页式设计：墨色纸面、文武线、朱砂一点 */
.page-os .ospage{max-width:920px;margin:0 auto;padding:var(--sp-2) var(--sp-1) 0;--foot-ink:#6f6a63;
  --gold:#b03a2e;--gold2:#8f2a20;--gold-brown:#8f2a20}
.page-os .os-hero{padding:var(--sp-5) var(--sp-2) var(--sp-4);border-top:3px solid #2b2724;position:relative}
.page-os .os-hero::before{content:'';position:absolute;top:5px;left:0;right:0;border-top:1px solid #2b2724;opacity:.5}
.page-os .os-eyebrow{font-size:12px;letter-spacing:.42em;color:#b03a2e;margin-bottom:var(--sp-2)}
.page-os .ospage h1{font-family:var(--font-serif);font-size:23px;font-weight:600;letter-spacing:.08em;margin:0 0 var(--sp-3);color:var(--ink)}
.page-os .os-lead{font-size:14px;line-height:2.05;color:#6f6a63;max-width:640px;margin:0 0 var(--sp-4)}
.page-os .os-stats{display:flex;border-top:1px solid #e8e3da}
.page-os .os-stat{flex:1;padding:var(--sp-3) var(--sp-2) var(--sp-2);display:flex;flex-direction:column;gap:2px}
.page-os .os-stat+.os-stat{border-left:1px solid #e8e3da}
.page-os .os-stat b{font-family:var(--font-serif);font-size:22px;font-weight:600;color:var(--ink)}
.page-os .os-stat b i{font-style:normal;font-size:12px;color:var(--ink2);margin-left:3px;letter-spacing:.1em}
.page-os .os-stat span{font-size:12px;color:var(--ink2);letter-spacing:.22em}
/* 权重分布 */
.page-os .os-sec{display:flex;align-items:baseline;gap:var(--sp-3);margin:var(--sp-5) 0 var(--sp-3)}
.page-os .os-sec b{font-family:var(--font-serif);font-size:19px;font-weight:600;letter-spacing:.14em;color:var(--ink)}
.page-os .os-sec span{font-size:12px;color:var(--ink2)}
.page-os .os-sec::after{content:'';flex:1;border-top:1px solid #e8e3da}
.page-os .os-bar{display:flex;height:12px;gap:2px;margin:0 0 var(--sp-2)}
.page-os .os-bar span{height:100%;min-width:3px;border-radius:0;transition:filter .15s}
.page-os .os-bar span:hover{filter:brightness(1.15)}
.page-os .os-legend{display:flex;flex-wrap:wrap;gap:2px var(--sp-4);font-size:12px;color:var(--ink2);margin:0 0 var(--sp-1)}
.page-os .os-legend i{display:inline-block;width:8px;height:8px;border-radius:0;margin-right:6px;vertical-align:0}
/* 筛选页签：文字加朱砂下划 */
.page-os .os-tabs{display:flex;gap:var(--sp-4);margin:0 0 var(--sp-1);border-bottom:1px solid #e8e3da}
.page-os .os-tab{background:none;border:none;padding:0 2px 10px;font-family:inherit;font-size:14px;letter-spacing:.15em;color:var(--ink2);cursor:pointer;position:relative}
.page-os .os-tab:hover{color:var(--ink)}
.page-os .os-tab.on{color:#b03a2e}
.page-os .os-tab.on::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:2px;background:#b03a2e}
/* 窄屏页签：标签整词不折行（折成两行会把 30px 撑到 50px），间距收紧一档，仍放不下时整行横滑兜底 */
@media (max-width:640px){
  .page-os .os-tabs{gap:var(--sp-2);flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .page-os .os-tab{flex:0 0 auto;white-space:nowrap}
}
/* 条目：书籍索引式行排 */
.page-os .os-list{display:grid}
.page-os .os-card{display:grid;grid-template-columns:76px 1fr;gap:var(--sp-4);padding:var(--sp-4) var(--sp-2);border-bottom:1px solid #e8e3da;transition:background .15s}
.page-os .os-card:hover{background:#fbf9f3}
.page-os .os-side{text-align:right;padding-top:2px}
.page-os .os-num{font-family:var(--font-serif);font-size:24px;color:var(--ink);line-height:1;display:block;transition:color .15s}
.page-os .os-num i{font-style:normal;font-size:11px;color:var(--ink2);margin-left:2px;letter-spacing:.08em}
.page-os .os-mini{display:block;height:3px;border-radius:0;background:#e9e4d8;margin-top:9px;overflow:hidden}
.page-os .os-mini i{display:block;height:100%;background:#4a443c}
.page-os .os-card:hover .os-num{color:#b03a2e}
.page-os .os-top{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.page-os .os-name{font-size:16px;font-weight:700;color:var(--ink);margin:0}
.page-os .os-tag{font-size:10.5px;letter-spacing:.2em;color:var(--ink2);white-space:nowrap}
.page-os .os-tag.in{color:#b03a2e}
.page-os .os-tag.ext{color:#55697a}
.page-os .os-lic{font-size:11px;color:var(--ink2);border:1px solid #e3ddcf;border-radius:0;padding:1px 7px;margin-left:auto;white-space:nowrap}
.page-os .os-row{font-size:13.5px;line-height:2;color:#6f6a63;margin:8px 0 0}
.page-os .os-note{font-size:12px;line-height:1.9;color:var(--ink2);margin-top:6px}
.page-os .os-link{color:var(--ink);text-decoration:none;border-bottom:1px solid #d8d2c6;transition:color .15s,border-color .15s}
.page-os .os-link:hover{color:#b03a2e;border-color:#b03a2e}
.page-os .os-link::after{content:' ↗';font-size:11px}
.page-os #footer .os-link::after{content:''}
/* 凡例：版权页收尾 */
.page-os .os-colophon{margin-top:var(--sp-5);border-top:3px double #2b2724;padding-top:var(--sp-3)}
.page-os .os-ct{font-size:12px;letter-spacing:.42em;color:#b03a2e;margin-bottom:var(--sp-2)}
.page-os .os-colophon p{margin:0 0 6px;font-size:13px;line-height:2.1;color:#6f6a63}
.page-os .os-empty{grid-column:1/-1;text-align:center;color:var(--ink2);font-size:13px;padding:var(--sp-4)}
@media(max-width:640px){
  .page-os .os-hero{padding:var(--sp-4) var(--sp-1) var(--sp-3)}
  .page-os .ospage h1{font-size:23px}
  .page-os .os-card{grid-template-columns:1fr;gap:var(--sp-2)}
  .page-os .os-side{display:flex;align-items:baseline;gap:8px;text-align:left}
  .page-os .os-mini{flex:1;margin-top:0;align-self:center}
  .page-os .os-lic{margin-left:0}
}
@media print{
  .page-os .os-tabs{display:none}
  .page-os .os-card{break-inside:avoid}
}


/* ===== 页级样式：qimen（page-qm）===== */
.page-qm .qi-board{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-2);max-width:560px;margin:var(--sp-4) auto;animation:qiFade .3s ease}
.page-qm .qi-cell{border:1px solid var(--qm-line);background:transparent;border-radius:0;min-height:150px;padding:var(--sp-2);position:relative;font-size:12px;line-height:1.5;cursor:pointer;transition:border-color .2s,background .15s,opacity .2s}
.page-qm .qi-cell .gname{color:var(--gold2);font-weight:700;font-size:13px}
.page-qm .qi-cell .gdir{color:var(--ink2);font-size:11px;margin-left:var(--sp-1)}
.page-qm .qi-cell .tp{font-size:24px;font-weight:700;text-align:center;margin:2px 0 1px;line-height:1}
.page-qm .qi-cell .dp{text-align:center;color:var(--ink2);font-size:12px;margin-bottom:var(--sp-1)}
.page-qm .qi-cell .row{display:flex;justify-content:space-between;gap:var(--sp-1);padding:1px 0}
.page-qm .qi-cell .row .k{color:var(--ink2)}
.page-qm .qi-cell .xing{color:#5b3a8c;font-weight:600}
.page-qm .qi-cell .men-ji,.modal.qi-gong-modal .men-ji{color:#1b7a34;font-weight:600}
.page-qm .qi-cell .men-xiong,.modal.qi-gong-modal .men-xiong{color:#b3261e;font-weight:600}
.page-qm .qi-cell .shen-ji,.modal.qi-gong-modal .shen-ji{color:#1b6fa8}
.page-qm .qi-cell .shen-xiong,.modal.qi-gong-modal .shen-xiong{color:var(--special-text)}
.page-qm .qi-cell .an{color:#777}
/* 十干克应走：小字灰，两端对齐，移动端可换行 */
/* 克应短句：断行落在顿号与逗号处，末字不再独占一行；超长串仍由 overflow-wrap 兜底 */
.page-qm .qi-cell .ky{margin-top:var(--sp-1);font-size:11px;color:var(--ink2);line-height:1.5;border-top:1px dashed var(--line);padding-top:var(--sp-1);word-break:keep-all;overflow-wrap:anywhere}
/* 格局出处小标 */
.page-qm .g-src{display:block;font-style:normal;font-size:10px;color:var(--ink2);opacity:.7;margin-top:1px;font-weight:300}
.page-qm .qi-badge{position:absolute;top:6px;right:6px;display:flex;flex-direction:column;gap:var(--sp-1);align-items:flex-end}
.page-qm .qi-badge span{font-size:10px;padding:1px var(--sp-1);border-radius:0;line-height:1.4}
/* 徽章：宫内 .qi-badge 内与宫位详情弹层内两处使用，弹层挂 body 下无 .page-qm 上下文，故两套选择器并列书写 */
.page-qm .b-zf,.modal.qi-gong-modal .b-zf{background:var(--red);color:#fff}
.page-qm .b-zs,.modal.qi-gong-modal .b-zs{background:var(--green);color:#fff}
.page-qm .b-kw,.modal.qi-gong-modal .b-kw{background:#555;color:#fff}
.page-qm .b-ym,.modal.qi-gong-modal .b-ym{background:#1565c0;color:#fff}
/* 值符/值使宫格锚定：金/绿描边 + 内侧微光，突出断事枢轴 */
.page-qm .qi-cell.cell-zf{border-color:var(--gold)}
.page-qm .qi-cell.cell-zs{border-color:#2e8b57}
/* 排盘过渡：九宫盘逐格淡入浮现 */
@keyframes qiFade{from{opacity:0;transform:translateY(4px)}
to{opacity:1;transform:none}}
/* 宫格联动高亮：点击弹层时选中宫描边、其余降虚 */
.page-qm .qi-cell.qi-sel{border-color:var(--qm)}
.page-qm .qi-cell.qi-dim{opacity:.5}
/* 宫位详情弹层挂到 body，不在 .page-qm 容器内，页级后代选择器永不匹配，令牌与版式一律收口在弹层自身类上 */
.modal.qi-gong-modal{max-width:460px;
  --qm2:#213b45;--qm-ink:#33424a;--qm-line:#ccd9dc;--qm-ink2:#4f656d}
/* 头部：宫名宋体主体色，方位与五行次级，徽章行靠右；右留一档间距给关闭 × */
.modal.qi-gong-modal .qi-modal-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--sp-1) var(--sp-2);
  padding-right:var(--sp-5);padding-bottom:var(--sp-2);border-bottom:1px solid var(--qm-line)}
.modal.qi-gong-modal .qi-g-name{font-family:var(--font-serif);font-size:var(--tier2);font-weight:400;color:var(--qm2);letter-spacing:.1em}
.modal.qi-gong-modal .qi-g-sub{font-size:var(--tier4);color:var(--qm-ink2)}
.modal.qi-gong-modal .qm-badge-row{display:inline-flex;gap:var(--sp-1);margin-left:auto}
/* 弹层徽章无 .qi-badge 外壳，尺寸在此单独给，与宫内 .qi-badge span 同值 */
.modal.qi-gong-modal .qm-badge-row span{font-size:10px;padding:1px var(--sp-1);border-radius:0;line-height:1.4}
/* 分组：细上线 + 题头条 + 两列键值网格 */
.modal.qi-gong-modal .qi-g-sec{margin-top:var(--sp-3);padding-top:var(--sp-2);border-top:1px solid var(--qm-line)}
/* 首组紧贴头部，其上边线由头部下边线承担，免成双线 */
.modal.qi-gong-modal .qi-modal-head + .qi-g-sec{border-top:0;padding-top:0}
.modal.qi-gong-modal .qi-g-sec-t{font-size:var(--tier4);color:var(--qm2);letter-spacing:.1em;margin-bottom:var(--sp-1)}
.modal.qi-gong-modal .qi-mp-grid{display:grid;grid-template-columns:auto 1fr;gap:var(--sp-1) var(--sp-3);font-size:var(--tier4);line-height:1.75}
.modal.qi-gong-modal .qi-mp-grid .mk{color:var(--qm-ink2);white-space:nowrap}
/* 白话解读：整段落，不进键值网格 */
.modal.qi-gong-modal .qi-g-plain{font-size:var(--tier4);line-height:1.8;color:var(--qm-ink);margin-top:var(--sp-1)}
/* 脚注：本宫聚合 */
.modal.qi-gong-modal .qi-mp-note{margin-top:var(--sp-3);padding-top:var(--sp-2);border-top:1px dashed var(--qm-line);font-size:12px;color:var(--qm-ink2);line-height:1.75}
.modal.qi-gong-modal .qi-mp-src{color:var(--qm-ink2);font-size:11px}
/* 宫位吉凶字：上色文字，无背景条 */
.page-qm .qi-jx-txt{font-size:12px;font-weight:700;margin-top:var(--sp-1);text-align:center}
.page-qm .qi-jx-txt.da_ji{color:var(--green)}
.page-qm .qi-jx-txt.xiao_ji{color:#66bb6a}
.page-qm .qi-jx-txt.ping{color:#9e9e9e}
.page-qm .qi-jx-txt.xiao_xiong{color:#ef6c4d}
.page-qm .qi-jx-txt.da_xiong{color:var(--red)}
.page-qm .qi-legend{font-size:12px;color:var(--ink2);text-align:center;margin:var(--sp-2) 0 0;line-height:1.7}
.page-qm .qi-legend b{color:var(--ink)}
/* 底部补充说明：无边框浅色小字 */
.page-qm .qm-note{font-size:12px;color:var(--qm-ink2);margin-top:var(--sp-4);line-height:1.7}
/* 表单：干支输入贴合二字内容、只读向山弱化底色（提升特异性以压过 .form-row .field input 的 width:auto） */
.page-qm .form-row .field input.qi-w-gz{width:80px}
.page-qm .form-row .field input.qi-in-ro{width:70px;background:var(--paper2);color:var(--ink2)}
/* 术语速查折叠框：与页面底色齐平，不加卡片底 */
.page-qm .qm-gloss-ref{border-color:var(--qm-line)}
.page-qm .page > .form-row{margin-bottom:var(--sp-2)}
/* 白话解读：两列，标签列金色不换行，内容列自动换行 */
.page-qm .qm-plain-tb{width:100%;border-collapse:collapse;margin-top:var(--sp-1)}
.page-qm .qm-plain-tb th,.page-qm .qm-plain-tb td{font-size:var(--tier4);line-height:1.85;vertical-align:top;text-align:left;word-break:break-word;font-weight:400;border:1px solid var(--line);padding:6px 10px;background:transparent}
.page-qm .qm-plain-tb th{color:var(--gold2);white-space:nowrap}
/* 术语速查：两列，术语列不换行，解释列自动换行 */
.page-qm .qm-gloss{width:100%;border-collapse:collapse;margin-top:var(--sp-1);table-layout:fixed}
.page-qm .qm-gloss th,.page-qm .qm-gloss td{font-size:var(--tier4);line-height:1.8;vertical-align:top;text-align:left;word-break:break-word;font-weight:400;border:1px solid var(--line);padding:4px 8px;background:transparent}
.page-qm .qm-gloss th:first-child,.page-qm .qm-gloss td:first-child{white-space:nowrap;width:80px}
.page-qm .qm-gloss th:first-child{color:var(--gold2)}
/* 奇门表格：基础信息/格局/综合判断 通用，列宽按内容最大宽度自适应 */
.page-qm .qm-tbl{width:100%;border-collapse:collapse;margin-top:var(--sp-2);table-layout:auto}
/* 三列以上的数据表不得被压成单字列：最小宽保底、由模块体横向滚动兜底。
   两列键值表不在此列，仍随屏流式（:has 只挑出含第三列的表） */
.page-qm .mod-body{overflow-x:auto;-webkit-overflow-scrolling:touch}
.page-qm .qm-tbl:has(tr>*:nth-child(3)){min-width:600px}
.page-qm .qm-tbl th,.page-qm .qm-tbl td{border:1px solid var(--line);padding:8px 11px;font-size:13px;line-height:1.68;text-align:left;vertical-align:top;white-space:normal;word-break:break-word}
.page-qm .qm-tbl th{background:var(--paper);color:var(--gold2);border-color:var(--qm-line);font-weight:400}
/* 电脑端：综合判断第一列（标签）4字内不换行（总体/用神定位等一行） */
.page-qm .qm-tbl.zh-tbl th{white-space:nowrap}
.page-qm .qm-link-head{display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-3);align-items:baseline}
.page-qm .qm-lh-it{white-space:nowrap;display:inline-block}
/* td 内 flex 容器：单独 div 承载，避免 display:flex 直接打在 td 上与 border-collapse 冲突产生粗边框 */
.page-qm .qm-tbl td .qm-link-head{margin:-2px 0}
/* 八字联动解读表：移动端 th 不卡 55px，短标签不换行 */
.page-qm .qm-tbl.zh-tbl.link-th th{white-space:nowrap;min-width:auto;width:auto;padding:6px 8px}
/* 格局表：吉凶列窄，断语/出处列宽（按内容最大宽自适应） */
.page-qm .qm-tbl.geju .col-jx{width:1%;white-space:nowrap;text-align:center}
.page-qm .qm-tbl.geju .col-ge{white-space:nowrap}
.page-qm .qm-tbl.geju .col-cy{width:auto}
.page-qm .qm-tbl.geju .col-sc{width:auto}
/* 格局表吉凶色：吉绿凶红（本站用色），直接命中 td 上的类 */
.page-qm .qm-tbl.geju td.qi-ji{color:var(--green);font-weight:600}
.page-qm .qm-tbl.geju td.qi-xiong{color:var(--red);font-weight:600}
.page-qm .qm-src{color:var(--ink2);font-size:12px}
/* 宫格 hover/点击反馈：悬停背景变暗（同大六壬天地盘） */
.page-qm .qi-cell:hover{background:var(--cal-hover)}
.page-qm .qi-cell:active{transform:scale(.98)}
@media(max-width:640px){
  .page-qm .qi-board{gap:var(--sp-1);max-width:100%}
  .page-qm .qi-cell{min-height:auto;padding:var(--sp-2) var(--sp-1);font-size:11px}
  .page-qm .qi-cell .tp{font-size:20px}
  .page-qm .qi-cell .dp{font-size:11px}
  .page-qm .qi-cell .ky{font-size:10px}
  .page-qm .g-src{font-size:9px}
  .page-qm .qi-badge span{font-size:9px}
  /* 移动端键值表首列一律按内容定宽且不折行：写死 55px 与 43px 会把三字术语拆成单字 */
  .page-qm .qm-tbl.zh-tbl th{width:auto;min-width:0;max-width:none;white-space:nowrap}
  .page-qm .qm-plain-tb th{width:auto;min-width:0;max-width:none;white-space:nowrap}
  /* 表头与首列不折行：内容区只剩 26px 时两字表头（九星、八门）与两字宫位（巽宫、离宫）卡在临界值被拆成两个单字 */
  .page-qm .qm-tbl th,.page-qm .qm-tbl td:first-child{white-space:nowrap}
  /* 断语按标点整段换行，末字不再独占一行 */
  .page-qm .qm-tbl td{word-break:keep-all}
  .page-qm .qm-gloss{table-layout:auto}
  .page-qm .qm-gloss th:first-child,.page-qm .qm-gloss td:first-child{width:auto;white-space:nowrap}
}



.page-qm .mod-title{color:var(--qm2)}
.page-qm .gua-ico{background:transparent;border:0;color:var(--qm2)}

.page-qm .mod-head{border-top-color:var(--qm-line);border-bottom-color:var(--qm-line)}
.page-qm .page h1{color:var(--qm-deep);font-family:var(--qm-serif);font-size:23px;letter-spacing:.3em;text-indent:.3em;text-align:center;line-height:1.3}/* 页头细线：上下各一条 88px 夹题，卷首说明末尾 26px 竖线收束（规则档第三条） */
.page-qm .page h1::before{content:'';display:block;width:88px;height:1px;background:var(--qm-line);margin:0 auto var(--sp-3)}
.page-qm .page h1::after{content:'';display:block;width:88px;height:1px;background:var(--qm-line);margin:var(--sp-3) auto 0}
.page-qm .page .lead::after{background:var(--qm-line)}

.page-qm .page .lead{color:var(--qm-ink2);text-align:center;font-size:12.5px;letter-spacing:.22em;text-indent:.22em;margin-top:var(--sp-3)}
.page-qm .rel-title{color:var(--qm2)}
.page-qm .ly-zh-p{color:var(--qm-ink)}
.page-qm .sub-note{color:var(--qm-ink2)}
.page-qm .notice{color:var(--qm-ink);border:1px solid var(--qm-line);background:var(--qm-tint);border-radius:0}
.page-qm .mh-method{color:#5f7378}

.page-qm .field label{color:var(--qm2);font-weight:400}
.page-qm .field input,.page-qm .field select{border-color:var(--qm-line);background:var(--card);color:var(--qm-deep);transition:border-color .15s,box-shadow .15s}
.page-qm .field input:focus,.page-qm .field select:focus{border-color:var(--qm);outline:none}
.page-qm .group-label{color:var(--qm2)}

.page-qm .btn{background:var(--qm);color:#fff;box-shadow:none}
.page-qm .btn:hover{background:var(--qm2)}
.page-qm .btn-ghost{background:var(--card);border:1px solid var(--qm);color:var(--qm2);box-shadow:none}
.page-qm .btn-ghost:hover{background:var(--qm-tint)}
.page-qm .qm-tbl td{color:var(--qm-ink);border-color:var(--qm-line)}
.page-qm table.qm-tbl th{color:var(--qm2)}

/* 附加功能面板 */
.page-qm .ai-block{border:0;border-top:1px solid var(--qm-line);border-bottom:1px solid var(--qm-line);border-radius:0;background:transparent;color:var(--qm-ink);box-shadow:none}
.page-qm .ai-head{background:transparent;border-bottom-color:var(--qm-line)}
.page-qm .ai-head h3{color:var(--qm2)}
.page-qm .ai-head .ai-status{color:#5f7378}
.page-qm .ai-block .btn{background:var(--qm);color:#fff;box-shadow:none}
.page-qm .ai-block .btn:hover{background:var(--qm2)}
.page-qm .ai-block .btn.gold,.page-qm .ai-block .btn.soft{background:var(--qm-tint);border-color:var(--qm-line);color:var(--qm-ink);box-shadow:none}
/* 奇门：等级徽章（评分条、综合判断）与表下注记、盘面细节限宽 */
.page-qm .qm-badge{display:inline-block;padding:1px var(--sp-2);border-radius:0;color:#fff;font-size:12px;font-weight:400;margin-right:var(--sp-1)}
.page-qm .qm-tbl-sm{font-size:12px}
.page-qm .qm-rel-xiong{color:var(--red)}
.page-qm .qm-rel-ji{color:var(--gold2)}
.page-qm .qm-wx-wang{color:var(--green)}
.page-qm .qm-wx-ruo{color:var(--red)}
.page-qm .qm-wx-ping{color:var(--ink2)}
.page-qm .ai-block .btn.gold:hover,.page-qm .ai-block .btn.soft:hover{background:var(--card);border-color:var(--qm);color:var(--qm2)}
.page-qm .ai-block .ai-out,.page-qm .ai-block .ai-bubble.user,.page-qm .ai-block .ai-bubble.assistant,.page-qm .ai-block .ai-model-name{color:var(--qm-ink)}
.page-qm .ai-block input,.page-qm .ai-block select{color:var(--qm-ink)}
.page-qm .ai-tab:hover{border-color:var(--qm);color:var(--qm2)}
.page-qm .ai-tab.active{background:var(--qm);border-color:var(--qm);color:#fff}
.page-qm .ai-tab.active:hover{background:var(--qm2);border-color:var(--qm2);color:#fff}
.page-qm .ai-bubble.user{background:var(--qm-tint);border-color:var(--qm)}
.page-qm .ai-bubble.assistant{border-color:var(--qm-line)}
.page-qm .ai-model-row:hover{background:var(--qm-tint)}
.page-qm .ai-tip{color:#5f7378}
/* 移动端 */
@media(max-width:640px){
  .page-qm .info-box{box-shadow:none}
}
/* 打印 */
@media print{
  .page-qm .info-box,.page-qm .qm-tbl{background:var(--card) !important;box-shadow:none !important;border-color:var(--line) !important}
}
/* ===== 页级样式：qizheng（page-qz）===== */
/* 七政四余页规范样式表：每条规则唯一，终值直写 */
/* 表单行：字段按控件宽度依次流式排布，容器变窄即自然换行，不写死列位与列宽 */
.page-qz .qz-row-inputs .field{flex:0 0 auto;min-width:0}
.page-qz .qz-form .field input,.page-qz .qz-form .field select{box-sizing:border-box;max-width:100%;min-width:0}
/* 下距取 --sp-3：本行下方紧邻出生地组，其上线与上排控件的 1px 下边框是一对相邻平行线，
   间距全站统一为 12px，第二条判据的下限亦为 12px。 */
.page-qz .qz-row-inputs{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--sp-2) var(--sp-3);margin-bottom:var(--sp-3)}
.page-qz .qz-form .f-tz input{width:64px}
.page-qz .qz-btns{display:flex;gap:var(--sp-3);align-items:flex-end}
.page-qz .qz-chk{display:inline-flex;align-items:center;gap:var(--sp-1);margin:2px 0 var(--sp-2);font-size:13px;color:var(--qz-ink2);cursor:pointer;user-select:none}
.page-qz .qz-chk input{width:auto;margin:0}
.page-qz .qz-rel2{display:none;padding:var(--sp-2) 0 0;border:0;border-top:1px dashed var(--qz-line);margin-bottom:var(--sp-2)}
.page-qz .qz-rel2.open{display:block}
/* 表格 */
.page-qz table.qz-tbl{width:100%;border-collapse:collapse;font-size:13px;margin:var(--sp-1) 0}
.page-qz .qz-tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.page-qz table.qz-tbl th,.page-qz table.qz-tbl td{border:1px solid var(--qz-line);padding:7px 9px;text-align:left}
.page-qz table.qz-tbl th{background:var(--qz-tint);color:var(--qz-deep);font-weight:400;white-space:nowrap}
.page-qz table.qz-tbl td{color:var(--qz-ink)}
.page-qz table.qz-tbl td .el{font-size:12px;color:var(--qz-ink2)}
.page-qz .dg-庙{color:var(--green);font-weight:700}
.page-qz .dg-旺{color:#1b6fa8;font-weight:700}
.page-qz .dg-乐{color:#2e7d32}
.page-qz .dg-平{color:var(--qz-ink2)}
.page-qz .dg-闲{color:#8a6d2f}
.page-qz .dg-陷{color:#b3261e;font-weight:700}
.page-qz .yu-tag{display:inline-block;font-size:10px;border:0;border-radius:0;padding:0 var(--sp-1);background:var(--qz-tint);color:var(--qz-ink2);margin-left:var(--sp-1)}
.page-qz .qz-t{display:inline-block;color:var(--qz2);font-weight:400;margin-bottom:2px}
.page-qz .qz-vedic b,.page-qz .qz-house-box b,.page-qz .qz-house-box strong{font-weight:400;color:var(--qz2)}
/* 中式星盘：十二宫按地支方位（午上子下、卯左酉右），黄经映射屏幕角 θ=(135−λ) 自顶端顺时针 */
/* 星盘：几何与半径全随通用件（440 见方、盘心 220，外圈两字体系），容器复用通用件 .wheel-block，
   本段只绑颜色令牌与本页专属的两条线（宫界分界线、身度虚线），不再自造圈线、字级与盘幅 */
.page-qz .wheel-block{margin:var(--sp-4) 0}
/* 外圈十二宫名：默认取次级字色（浅），选中态才由 .w-lab-cur 转主体色，故此处须排除选中态免得压过它 */
.page-qz .qz-wheel .w-lab:not(.w-lab-cur){fill:var(--qz-ink2)}
/* 宫界分界线：星盘的宫格由分界定，与落在宫中点的刻度是两回事，故另出一条长线连到外圈线 */
.page-qz .qz-wheel .qz-gline{stroke:var(--wheel-line);stroke-width:1}
.page-qz .qz-wheel .qz-gline.ming{stroke:var(--wheel-cur);stroke-width:2.2}
/* 十一曜字号：与曜带三档的 13 档距相配，十四像素半高 7，档间仍留一像素不叠字 */
.page-qz .qz-wheel .pl{font-size:14px;font-weight:400}
.page-qz .qz-wheel .shen-line{stroke:var(--wheel-arc);stroke-width:1.6;stroke-dasharray:4 3}
.page-qz .qz-wheel .ming-tag{fill:var(--wheel-cur);font-size:9.5px}
/* 十一曜字色即庙旺：六档各取一支令牌，写在类上而不写在行内（行内属性会被本段规则盖掉） */
.page-qz .qz-庙{fill:var(--qz-庙)}
.page-qz .qz-旺{fill:var(--qz-旺)}
.page-qz .qz-乐{fill:var(--qz-乐)}
.page-qz .qz-平{fill:var(--qz-平)}
.page-qz .qz-闲{fill:var(--qz-闲)}
.page-qz .qz-陷{fill:var(--qz-陷)}
/* 命宫极淡扇面：点人盘十二宫自命宫起算这层关系，不编码量值，取主体色 .1 淡而不铺实块 */
.page-qz .qz-ming-box{fill:var(--wheel-arc);fill-opacity:.1}
/* 十二宫格 */
.page-qz .qz-house-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--sp-2);margin-top:var(--sp-2)}
.page-qz .qz-house-box{border:1px solid var(--qz-line);border-radius:0;padding:var(--sp-2) var(--sp-3)}
.page-qz .qz-house-box h4{color:var(--qz2);font-size:13px;margin-bottom:var(--sp-1)}
.page-qz .qz-house-box .el{font-size:12px;color:var(--qz-ink2)}
.page-qz .qz-house-box .row{font-size:12.5px;line-height:1.65}
/* 键值表 */
.page-qz table.qz-tri{table-layout:fixed}
.page-qz table.qz-tri th:first-child{width:11em;white-space:nowrap}
.page-qz table.qz-tri td{white-space:normal;word-break:break-word}
.page-qz table.qz-syn{margin:0 0 var(--sp-3)}
.page-qz table.qz-syn th:first-child{width:6.5em;white-space:nowrap}
.page-qz table.qz-syn td{line-height:1.8;white-space:normal;word-break:break-word}
/* 说明文字与徽标 */
.page-qz .qz-vedic{font-size:13px;line-height:1.8}
.page-qz .note-vedic{border:1px solid var(--qz-line);border-radius:0;padding:var(--sp-3) var(--sp-3);font-size:13px;line-height:1.7;color:var(--qz-ink)}
/* 本盘指向徽标：本页深档描边小标签 */
.page-qz .qz-here{color:var(--qz2);display:inline-block;font-size:11px;padding:0 var(--sp-1);border:1px solid var(--qz2);border-radius:0;margin-left:var(--sp-1);white-space:nowrap}
.page-qz .qz-ji{color:#b3261e}
/* 现行大限行：提示淡底，比表头纸淡底更浅一档 */
.page-qz table.qz-xian-tbl tr.cur td{background:var(--qz-hl)}
.page-qz table.qz-xian-tbl td.age{white-space:nowrap;color:var(--qz-ink2);font-size:12px}
/* 控制条（流年盘、择时） */
.page-qz .qz-tr-bar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--sp-2) var(--sp-3);margin:var(--sp-2) 0 var(--sp-3)}
.page-qz .qz-tr-bar .field{flex:0 0 auto}
.page-qz .qz-tr-bar .field .dt-wrap{width:auto;flex:0 0 auto}
.page-qz .qz-tr-bar .field .dt-ic{display:none}
.page-qz .qz-tr-bar .field .qz-year{width:90px}
.page-qz .qz-inline{flex-direction:row;align-items:center;gap:var(--sp-2)}
.page-qz .qz-inline label{white-space:nowrap}
/* 移动端：长表横向滚动，键值表折行 */
@media(max-width:640px){
  /* 长表（非键值表、非短三列表）列宽走全站契约，由容器横向滚动 */
  .page-qz table.qz-tri td,.page-qz table.qz-syn td{overflow-wrap:break-word}
  /* 输入行的行内横向间距取移动端更小档 --sp-2，与全站表单行窄屏取值同档 */
  .page-qz .qz-row-inputs{gap:var(--sp-2)}
}



.page-qz .page h1{color:var(--qz-deep);font-family:var(--qz-serif);font-size:23px;letter-spacing:.3em;text-indent:.3em;text-align:center;line-height:1.3}/* 页头细线：上下各一条 88px 夹题，卷首说明末尾 26px 竖线收束（规则档第三条） */
.page-qz .page h1::before{content:'';display:block;width:88px;height:1px;background:var(--qz-line);margin:0 auto var(--sp-3)}
.page-qz .page h1::after{content:'';display:block;width:88px;height:1px;background:var(--qz-line);margin:var(--sp-3) auto 0}
.page-qz .page .lead::after{background:var(--qz-line)}

.page-qz .page .lead{color:var(--qz-ink2);text-align:center;font-size:12.5px;letter-spacing:.22em;text-indent:.22em;margin-top:var(--sp-3)}
.page-qz .rel-title{color:var(--qz2)}
.page-qz .ly-zh-p{color:var(--qz-ink)}
.page-qz .sub-note{color:var(--qz-ink2)}
.page-qz .notice{color:var(--qz-ink);border:1px solid var(--qz-line);background:var(--qz-tint);border-radius:0}
.page-qz .mh-method{color:var(--qz-ink2)}

.page-qz .field label{color:var(--qz2);font-weight:400}
.page-qz .field input,.page-qz .field select{border-color:var(--qz-line);background:var(--card);color:var(--qz-deep);transition:border-color .15s,box-shadow .15s}
.page-qz .field input:focus,.page-qz .field select:focus{border-color:var(--qz);outline:none}
.page-qz .group-label{color:var(--qz2)}
.page-qz .birth-group,.page-qz .birth-group.compact{background:transparent;border:0;border-top:1px solid var(--qz-line);border-radius:0;box-shadow:none;padding:var(--sp-3) 0}
/* 窄屏题头到上线收到移动端更小档 --sp-2；本块排在基条之后，同权重下由后位取终值 */
@media(max-width:640px){.page-qz .birth-group,.page-qz .birth-group.compact{padding-top:var(--sp-2)}}

.page-qz .btn{background:var(--qz);color:#fff;box-shadow:none}
.page-qz .btn:hover{background:var(--qz2)}
.page-qz .btn-ghost{background:var(--card);border:1px solid var(--qz);color:var(--qz2);box-shadow:none}
.page-qz .btn-ghost:hover{background:var(--qz-tint)}

/* 模块折叠框（mod）：题头淡底带 + 深曜石标题；透明内容底 */
.page-qz .mod-head{border-top-color:var(--qz-line);border-bottom-color:var(--qz-line)}
.page-qz .mod-caret{color:var(--qz)}
.page-qz .mod-title{color:var(--qz2)}
.page-qz .mod-sub{color:var(--qz-ink2)}
.page-qz .gua-ico{background:transparent;border:0;color:var(--qz2)}

/* 导航卡：导航项取本页主色、无框无底 */

/* 附加功能面板 */
/* 附加功能面板：上下双线收束，透明底不作卡 */
.page-qz .ai-block{border:0;border-top:1px solid var(--qz-line);border-bottom:1px solid var(--qz-line);
  border-radius:0;background:transparent;color:var(--qz-ink);box-shadow:none}
.page-qz .ai-head{background:transparent;border-bottom-color:var(--qz-line)}
.page-qz .ai-head h3{color:var(--qz2);font-family:var(--qz-serif);font-weight:400}
.page-qz .ai-head .ai-status{color:var(--qz-ink2)}
.page-qz .ai-block .btn{background:var(--qz);color:#fff;box-shadow:none}
.page-qz .ai-block .btn:hover{background:var(--qz2)}
.page-qz .ai-block .btn.gold,.page-qz .ai-block .btn.soft{background:var(--qz-tint);border-color:var(--qz-line);color:var(--qz-ink);box-shadow:none}
.page-qz .ai-block .btn.gold:hover,.page-qz .ai-block .btn.soft:hover{background:var(--card);border-color:var(--qz);color:var(--qz2)}
.page-qz .ai-block .ai-out,.page-qz .ai-block .ai-bubble.user,.page-qz .ai-block .ai-bubble.assistant,.page-qz .ai-block .ai-model-name{color:var(--qz-ink)}
.page-qz .ai-block input,.page-qz .ai-block select{color:var(--qz-ink)}
.page-qz .ai-tab:hover{border-color:var(--qz);color:var(--qz2)}
.page-qz .ai-tab.active{background:var(--qz);border-color:var(--qz);color:#fff}
.page-qz .ai-tab.active:hover{background:var(--qz2);border-color:var(--qz2);color:#fff}
.page-qz .ai-bubble.user{background:var(--qz-tint);border-color:var(--qz)}
.page-qz .ai-bubble.assistant{border-color:var(--qz-line)}
.page-qz .ai-model-row:hover{background:var(--qz-tint)}
.page-qz .ai-tip{color:#6f6a80}
/* 移动端 */
@media(max-width:640px){
  .page-qz .mod,.page-qz .info-box{box-shadow:none}
}

/* 打印 */
@media print{
  .page-qz .mod,.page-qz .info-box,.page-qz .qz-tbl{background:var(--card) !important;box-shadow:none !important;border-color:var(--line) !important}
}
/* ===== 页级样式：shuoming（page-sm）===== */
/* ═══ 文档页：全站纸本谱系（一种红、两级灰、一条线）+ 文档站三段式骨架 ═══ 左：卷/工具/模块树 + 检索；中：正文（980 上限内单栏）；右：本页目录（随滚动高亮）。 */
.page-sm{--dk-ink:#1c1a17;--dk-body:#2b2825;--dk-mute:#8a8478;--dk-mute2:#6f6a63;--dk-line:#e6dfd0;--dk-line2:#efe9db;--dk-red:#a5321f;--dk-bg:#fff;/* 文档页无 .page 容器：页脚注记与右侧直达箭头的取色桥接都取不到页内变量，故在本页令牌块显式声明 --foot-ink 与全站强调令牌族；取值同首页与开源页的朱砂族 */ --foot-ink:#6f6a63;--gold:#a5321f;--gold2:#8a2a1a;--gold-brown:#8a2a1a;--gold-bg:#fcfaf6}
.page-sm .doc-layout{display:grid;grid-template-columns:264px minmax(0,1fr) 200px;gap:0;max-width:1420px;margin:0 auto;padding:0 var(--sp-5);align-items:start}
/* ── 左栏 ── */
.page-sm .df-side{position:sticky;top:14px;align-self:start;max-height:calc(100vh - 28px);overflow:auto;padding:22px 18px 40px 0;border-right:1px solid var(--dk-line);scrollbar-width:thin}
.page-sm .df-brand{font-family:var(--font-serif);font-size:15px;letter-spacing:.26em;text-indent:.26em;color:var(--dk-ink)}
.page-sm .df-brand i{display:block;font-style:normal;font-size:10px;letter-spacing:.2em;text-indent:.2em;color:var(--dk-mute);margin-top:5px}
.page-sm .df-seek{margin:16px 0 6px;position:relative}
.page-sm .df-seek input{width:100%;height:30px;padding:0 26px 0 9px;border:1px solid var(--dk-line);border-radius:0;background:#fcfaf6;font-family:var(--font);font-size:12.5px;color:var(--dk-ink);outline:none}
.page-sm .df-seek input:focus{border-color:#cbb9a8;background:var(--card)}
.page-sm .df-seek kbd{position:absolute;right:6px;top:8px;font-family:var(--font);font-size:9.5px;color:var(--dk-mute);letter-spacing:.06em}
.page-sm .df-stat{font-size:10.5px;color:var(--dk-mute);letter-spacing:.08em;margin:8px 0 14px}
.page-sm .df-hits{max-height:44vh;overflow:auto;margin:2px 0 10px;display:none}
.page-sm .df-hits.on{display:block}
.page-sm .df-hit{display:block;padding:7px 8px;border-bottom:1px dotted var(--dk-line2);font-size:12px;line-height:1.6;color:var(--dk-body)}
.page-sm .df-hit:hover{background:#faf7f1}
.page-sm .df-hit b{font-family:var(--font-serif);font-weight:400;color:var(--dk-red);font-size:12.5px}
.page-sm .df-hit em{font-style:normal;color:var(--dk-mute2);font-size:10.5px;display:block;margin-top:2px}
.page-sm .df-hit mark{background:#fdf0d8;color:inherit;padding:0 1px}
.page-sm .nv-cat{font-family:var(--font-serif);font-size:11px;letter-spacing:.24em;text-indent:.24em;color:var(--dk-red);margin:16px 0 4px;padding-bottom:5px;border-bottom:1px solid var(--dk-line2)}
.page-sm .nv-tool{display:flex;align-items:baseline;gap:8px;padding:6px 0 6px 10px;font-size:13px;color:var(--dk-ink);border-left:2px solid transparent;text-decoration:none}
.page-sm .nv-tool span{font-family:var(--font-serif);letter-spacing:.05em}
.page-sm .nv-tool i{font-style:normal;font-size:10px;color:#b3ac9e;margin-left:auto}
.page-sm .nv-tool:hover{color:var(--dk-red)}
.page-sm .nv-tool.on{border-left-color:var(--dk-red);background:#faf7f1}
.page-sm .nv-tool.on span{color:var(--dk-red)}
.page-sm .nv-mods{display:none;margin:0 0 4px 12px;padding-left:10px;border-left:1px dotted var(--dk-line)}
.page-sm .nv-tool.on + .nv-mods{display:block}
.page-sm .nv-mods a{display:block;padding:3.5px 0;font-size:11.5px;color:var(--dk-mute2);text-decoration:none;line-height:1.5}
.page-sm .nv-mods a:hover{color:var(--dk-red)}
.page-sm .nv-mods a.on{color:var(--dk-red)}
/* ── 正文 ── */
.page-sm .df-main{padding:22px 0 60px 46px;min-width:0}
.page-sm .df-top h1{font-family:var(--font-serif);font-size:23px;font-weight:400;letter-spacing:.24em;text-indent:.24em;color:var(--dk-ink)}
.page-sm .df-top .df-why{font-size:12.5px;line-height:1.95;color:var(--dk-mute2);margin-top:10px;max-width:720px;text-align:justify}
.page-sm .df-top::after{content:'';display:block;width:100%;height:1px;background:var(--dk-line);margin:20px 0 6px}
.page-sm .df-cat{margin-top:26px}
.page-sm .df-cath{font-family:var(--font-serif);font-size:12.5px;font-weight:400;letter-spacing:.3em;text-indent:.3em;color:var(--dk-mute);padding-bottom:7px;border-bottom:1px solid var(--dk-line)}
.page-sm .df-tool{padding:20px 0 8px;border-bottom:1px dotted var(--dk-line)}
.page-sm .df-tool:last-child{border-bottom:none}
.page-sm .df-h2{font-family:var(--font-serif);font-size:21px;font-weight:400;letter-spacing:.13em;color:var(--dk-ink);scroll-margin-top:14px}
.page-sm .df-meta{font-size:10.5px;color:#a59e90;letter-spacing:.07em;margin:5px 0 2px}
.page-sm .df-go{margin-left:14px;color:var(--dk-mute2);border-bottom:1px dotted #c9c2b2}
.page-sm .df-go:hover{color:var(--dk-red);border-bottom-color:var(--dk-red)}
.page-sm .df-mod{font-family:var(--font-serif);font-size:var(--tier1);font-weight:400;letter-spacing:.08em;color:var(--dk-red);margin:18px 0 6px;padding-left:9px;border-left:2px solid #ddcec2;scroll-margin-top:14px}
.page-sm .df-b{padding:2px 0 10px}
.page-sm .df-b.flash{background:#fdf6e6}
.page-sm .df-k{display:inline-block;font-size:10px;letter-spacing:.12em;color:#9a9487;border:1px solid var(--dk-line);padding:1px 6px;margin-bottom:4px}
.page-sm .df-sub{display:inline-block;font-size:10px;letter-spacing:.06em;color:var(--dk-mute2);border:1px dashed var(--dk-line);padding:1px 6px;margin:0 0 4px 6px}
.page-sm .df-p,.page-sm .df-in{font-size:13.5px;line-height:2;color:var(--dk-body);text-align:justify}
.page-sm .df-in p,.page-sm .df-in div,.page-sm .df-in span,.page-sm .df-in li,.page-sm .df-in td,.page-sm .df-in th{font-size:inherit;line-height:1.95;text-align:justify}
.page-sm .df-in h3,.page-sm .df-in h4,.page-sm .df-in h5{font-family:var(--font-serif);font-weight:400;letter-spacing:.07em;color:var(--dk-ink);margin:12px 0 5px}
.page-sm .df-in h3{font-size:var(--tier2)}
.page-sm .df-in h4{font-size:var(--tier3)}
.page-sm .df-in h5{font-size:var(--tier4)}
/* 折叠体（.df-fold）内的小标题在折叠题名 .df-fold-h（tier3）之下，再降一档 */
.page-sm h4.hl-sub-h{font-size:var(--tier4)}
.page-sm .df-in table{border-collapse:collapse;width:100%;margin:10px 0;font-size:12.5px}
.page-sm .df-in th,.page-sm .df-in td{border:1px solid var(--dk-line);padding:6px 9px;text-align:left;vertical-align:top;line-height:1.8}
.page-sm .df-in th{background:#faf7f1;color:#4a4438;font-weight:400;letter-spacing:.04em}
.page-sm .df-in a{color:var(--dk-red);border-bottom:1px dotted currentColor}
.page-sm .df-fold,.page-sm .df-in .df-fold{border:1px solid var(--dk-line);background:#fcfaf6;padding:12px 15px;margin:12px 0}
.page-sm .df-fold-h{font-family:var(--font-serif);font-size:14px;font-weight:400;letter-spacing:.1em;color:var(--dk-ink);margin:0 0 6px}
.page-sm .df-in .sub-note,.page-sm .df-in .note,.page-sm .df-in .info-box,.page-sm .df-in .lead{border:none;background:none;padding:0;margin:6px 0;color:inherit;font-size:inherit}
/* 工具页同源文字里的强调 b/strong 随本页朱砂：全局 .sub-note b 等规则取 --gold2，会把全站鎏金带进纸本页 */
.page-sm .df-in .sub-note b,.page-sm .df-in .sub-note strong,.page-sm .df-in .note b,.page-sm .df-in .note strong,.page-sm .df-in .info-box b,.page-sm .df-in .info-box strong,.page-sm .df-in .lead b,.page-sm .df-in .lead strong{color:var(--dk-red)}
/* ── 右栏本页目录 ── */
.page-sm .df-rail{position:sticky;top:22px;align-self:start;display:flex;flex-direction:column;min-height:calc(100vh - 84px);padding:26px 0 14px 18px;border-left:1px solid var(--dk-line);max-height:calc(100vh - 28px);overflow:hidden;font-size:11.5px}
/* 滚动的只是目录本体：短目录时贴住本栏下缘，长目录随栏滚动 */
.page-sm .df-railbody{flex:1;min-height:0;overflow:auto;scrollbar-width:thin}
.page-sm .df-rail b{display:block;font-family:var(--font-serif);font-size:11px;font-weight:400;letter-spacing:.2em;color:var(--dk-mute);margin-bottom:8px}
.page-sm .df-rail a{display:block;padding:3px 0 3px 8px;color:var(--dk-mute2);line-height:1.55;border-left:2px solid transparent}
.page-sm .df-rail a:hover{color:var(--dk-red)}
.page-sm .df-rail a.on{color:var(--dk-red);border-left-color:var(--dk-red)}
/* 底部快速直达由全站共用的右侧吸附件承担，本页只留目录本体 */
.page-sm .df-foot{margin-top:26px;padding-top:14px;border-top:1px solid var(--dk-line);font-size:11px;color:var(--dk-mute);letter-spacing:.06em}
.page-sm .df-pn{display:flex;justify-content:space-between;gap:16px;margin-top:14px;padding-top:10px;border-top:1px dotted var(--dk-line)}
.page-sm .df-pn a{font-size:11.5px;letter-spacing:.06em;color:var(--dk-mute2);border-bottom:1px dotted #c9c2b2;padding-bottom:1px}
.page-sm .df-pn a:hover{color:var(--dk-red);border-bottom-color:var(--dk-red)}
/* ── 窄屏 ── */
.page-sm .df-openbtn{display:none}
@media(max-width:1180px){
  .page-sm .doc-layout{grid-template-columns:250px minmax(0,1fr)}
  .page-sm .df-rail{display:none}
}
@media(max-width:900px){
  .page-sm .doc-layout{display:block;padding:0 var(--sp-4)}
  .page-sm .df-side{position:static;max-height:none;border-right:none;padding:14px 0 6px;border-bottom:1px solid var(--dk-line)}
  .page-sm .df-side.collapsed .nv-cat,.page-sm .df-side.collapsed .nv-tool,.page-sm .df-side.collapsed .nv-mods{display:none}
  .page-sm .df-main{padding:16px 0 40px}
  .page-sm .df-openbtn{display:inline-flex;align-items:center;justify-content:center;height:30px;box-sizing:border-box;margin-top:8px;font-size:11.5px;letter-spacing:.14em;color:var(--dk-mute2);border:1px solid var(--dk-line);padding:0 10px;background:none;font-family:var(--font)}
  .page-sm .df-in table{display:block;overflow-x:auto}
}


/* ===== 页级样式：taisui（page-ts）===== */
/* 检索行：下边距收至 8px，与铁板、皇极等排盘页同款节奏 */
.page-ts .mod-body > .form-row{margin-bottom:var(--sp-2)}
/* 生肖运程模块移动端：表格横向滚动，避免数据列被挤压（与 .ts-fold 同款口径） */
@media (max-width:640px){
  .page-ts #tsmod-fortune .ts-tbl{width:auto;max-width:none}
  .page-ts #tsmod-fortune .ts-tbl th,.page-ts #tsmod-fortune .ts-tbl td{white-space:nowrap}
  .page-ts #tsmod-fortune .ts-tbl .ts-c0{white-space:nowrap;text-align:center}
}



.page-ts .page h1{color:var(--ts-deep);font-family:var(--ts-serif);font-size:23px;letter-spacing:.3em;text-indent:.3em;text-align:center;line-height:1.3}/* 页头细线：上下各一条 88px 夹题，卷首说明末尾 26px 竖线收束（规则档第三条） */
.page-ts .page h1::before{content:'';display:block;width:88px;height:1px;background:var(--ts-line);margin:0 auto var(--sp-3)}
.page-ts .page h1::after{content:'';display:block;width:88px;height:1px;background:var(--ts-line);margin:var(--sp-3) auto 0}
.page-ts .page .lead::after{background:var(--ts-line)}

.page-ts .page .lead{color:var(--ts-ink2);text-align:center;font-size:12.5px;letter-spacing:.22em;text-indent:.22em;margin-top:var(--sp-3)}
.page-ts .sub-note{color:var(--ts-ink2)}

.page-ts .field label{color:var(--ts2);font-weight:400}
.page-ts .field input,.page-ts .field select{border-color:var(--ts-line);background:var(--card);color:var(--ts-deep)}
.page-ts .field input:focus,.page-ts .field select:focus{border-color:var(--ts);outline:none}

/* 主按钮（查询犯太岁/查询年月日生/仪轨）岁星青实底，去投影 */
.page-ts .btn{background:var(--ts);border-color:var(--ts);color:#fff;box-shadow:none}
.page-ts .btn:hover{background:var(--ts2);border-color:var(--ts2);color:#fff;box-shadow:none}

/* 表格：虚线行线 + 透明表头（对齐站内 ms-tbl/ts-tbl 口径），首列干支去楷体衬线防小字发虚 */
.page-ts .ts-tbl th{background:transparent;text-align:left;font-weight:400;font-size:13px;white-space:nowrap;color:var(--ts2);border-bottom:1px solid var(--ts-line);padding:6px 8px}
.page-ts .ts-tbl td{padding:7px 8px;vertical-align:top;color:var(--ts-ink);border-bottom:1px solid var(--ts-line)}
.page-ts .ts-tbl .ts-c0{font-family:inherit;font-weight:700;white-space:nowrap;color:var(--ts2)}
.page-ts .ts-card-gold{border-color:var(--ts)}
/* 头卡主值（干支大字）：走站内大字档（宋体 400/22px，同五历页 .lunar-info .ln），不越页头 23px */
.page-ts .ts-card-v{font-family:var(--font-serif);font-size:22px;font-weight:400;color:var(--ts2);margin:2px 0}
.page-ts .mod-title{color:var(--ts2)}

.page-ts .mod-head{border-top-color:var(--ts-line);border-bottom-color:var(--ts-line)}
.page-ts .mod-caret{color:var(--ts)}
.page-ts .mod-sub{color:#54635a}
.page-ts .ai-block{
  border:0;border-top:1px solid var(--ts-line);border-bottom:1px solid var(--ts-line);border-radius:0;
  background:transparent;color:var(--ts-ink);box-shadow:none;
}
.page-ts .ai-head{background:transparent;border-bottom-color:var(--ts-line)}
.page-ts .ai-head h3{color:var(--ts2)}
.page-ts .ai-block .btn{background:var(--ts);color:#fff;box-shadow:none}
.page-ts .ai-block .btn:hover{background:var(--ts2)}
.page-ts .ai-block .btn.gold,.page-ts .ai-block .btn.soft{background:var(--ts-tint);border-color:var(--ts-line);color:var(--ts-ink);box-shadow:none}
.page-ts .ai-block .btn.gold:hover,.page-ts .ai-block .btn.soft:hover{background:var(--card);border-color:var(--ts);color:var(--ts2)}
.page-ts .ai-block .ai-out,.page-ts .ai-block .ai-bubble.user,.page-ts .ai-block .ai-bubble.assistant,.page-ts .ai-block .ai-model-name,.page-ts .ai-block input,.page-ts .ai-block select{color:var(--ts-ink)}
.page-ts .ai-tab.active{background:var(--ts);border-color:var(--ts);color:#fff}
.page-ts .ai-bubble.user{background:var(--ts-tint);border-color:var(--ts)}
.page-ts .ai-bubble.assistant{border-color:var(--ts-line)}
/* 打印：恢复素底 */
@media print{
  .page-ts .ts-tbl th,.page-ts .mod-title{background:var(--card) !important;color:var(--ink) !important;border-color:var(--line) !important}
}

.page-ts .ts-field-date{min-width:0}
/* 时辰选择框：按最长选项自然定宽，不设显式宽度 */
.page-ts .ts-field-hour select{width:auto;min-width:0}
.page-ts .ts-tbl-wrap{margin-top:var(--sp-2);overflow-x:auto}
.page-ts .ts-tbl{width:100%;border-collapse:collapse;font-size:13px;line-height:1.6}
.page-ts .ts-tbl .ts-ming{color:var(--ink2);font-size:12px}
.page-ts .ts-fold .ts-tbl-wrap{margin-top:var(--sp-2)}
.page-ts .ts-head-cards{display:flex;gap:var(--sp-3);flex-wrap:wrap;margin-top:var(--sp-2);margin-bottom:var(--sp-4)}
.page-ts .ts-card{flex:1;min-width:200px;border:0;border-top:1px solid var(--ts-line);border-radius:0;padding:var(--sp-2) var(--sp-3);background:transparent}
.page-ts .ts-card-k{font-size:12px;color:var(--ink2)}
.page-ts .ts-card-s{font-size:12px;color:var(--ink2)}
.page-ts .ts-judge{margin-top:0;border-top:1px solid var(--ts-line);padding-top:var(--sp-1)}
.page-ts .ts-judge-row{display:flex;gap:var(--sp-2);align-items:baseline;flex-wrap:wrap;margin-bottom:var(--sp-1);font-size:var(--tier4)}
.page-ts .ts-judge-k{flex:none;font-size:12px;color:var(--ink2);min-width:3em}
.page-ts .ts-badge{display:inline-block;padding:2px var(--sp-2);border-radius:0;font-size:13px;border:1px solid}
.page-ts .ts-badge.ts-bad{color:var(--red2);border-color:var(--red2)}
.page-ts .ts-badge.ts-good{color:#1f6b2c;border-color:#1f6b2c}
.page-ts .ts-badge.ts-ok{color:var(--ink2);border-color:var(--line)}
.page-ts .ts-err{color:var(--red2);font-size:13px;margin-top:var(--sp-2)}
.page-ts .ts-ys-head,.page-ts .ts-year-head{font-family:var(--font-serif);font-weight:400;font-size:var(--tier3);color:var(--ts2);margin:var(--sp-3) 0 var(--sp-1);letter-spacing:.2em}
.page-ts .ts-ys-sub{font-size:12px;color:var(--ink2);margin-left:var(--sp-2)}
.page-ts .ts-ys-note{font-size:12.5px;color:var(--ts-ink);line-height:1.7;margin-bottom:var(--sp-2)}
.page-ts .ts-ys-tbl td{color:var(--ts-ink)}
.page-ts .ts-tbl tr.ts-row-bad td{background:rgba(184,74,58,.07)}
.page-ts .ts-tbl tr.ts-row-good td{background:rgba(46,125,50,.07)}
.page-ts .ts-bio-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:var(--sp-2);margin-top:var(--sp-2)}
/* 星君传记卡：去框改线，二级折叠件形制（同 .mh-ref：收起态上下两线夹题名、展开态只留上线） */
.page-ts details.ts-bio{border:0;border-top:1px solid var(--ts-line);border-radius:0;background:transparent}
.page-ts details.ts-bio:not([open])>summary{border-bottom:1px solid var(--ts-line)}
.page-ts details.ts-bio>summary{list-style:none;cursor:pointer;font-size:var(--tier3);padding:var(--sp-2) 0;display:flex;align-items:baseline;gap:2px var(--sp-2);flex-wrap:wrap;position:relative;padding-right:var(--sp-5)}
.page-ts details.ts-bio>summary::-webkit-details-marker{display:none}
.page-ts details.ts-bio>summary::after{content:'▾';font-size:12px;color:var(--ts);position:absolute;right:0;top:10px;transition:transform .15s}
.page-ts details.ts-bio:not([open])>summary::after{transform:rotate(-90deg)}
.page-ts details.ts-bio[open]{padding-bottom:var(--sp-1)}
/* summary 统一两行：第一行干支与星君名独占一行，第二行朝代、籍贯、生肖相、持物独占一行 */
.page-ts .ts-bio-line1{display:block;flex:1 1 100%;padding-right:0}
.page-ts .ts-bio-line1 .ts-bio-gz{margin-right:var(--sp-2)}
.page-ts .ts-bio-tag{display:block;flex:1 1 auto;font-size:12px;color:var(--ink2);padding-right:0}
.page-ts .ts-bio-gz{font-family:var(--font-serif);font-size:16px;color:var(--ts-gold);white-space:nowrap}
/* 星君名：summary 的 UA 默认粗体压回 400，取主题色（对齐星宿页去粗口径） */
.page-ts .ts-bio-name{font-size:var(--tier4);font-weight:400;color:var(--ts-gold)}
.page-ts .ts-bio-body{padding:0;border-top:1px solid var(--ts-line)}
.page-ts .ts-bio-sui{margin-top:var(--sp-2)}
.page-ts .ts-bio-sui .ts-bio-body{padding-top:var(--sp-1)}
.page-ts .ts-bio-meta{font-size:12px;color:var(--ink2);line-height:1.7;margin:var(--sp-1) 0 var(--sp-1)}
.page-ts .ts-bio-text{font-size:13px;line-height:1.9;color:var(--ts-ink);margin:var(--sp-1) 0 var(--sp-2)}
.page-ts .ts-alt{font-size:11.5px;color:var(--ink2)}
/* 仪轨 6 框固定 2 排、每排 3 框；窄屏降为 2 列再 1 列 */
.page-ts .ts-ritual-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-2);margin-top:var(--sp-2)}
.page-ts .ts-ritual{border:0;border-top:1px solid var(--ts-line);border-radius:0;padding:var(--sp-2) var(--sp-3);background:transparent}
.page-ts .ts-ritual-t{font-size:var(--tier4);color:var(--ts-gold);margin-bottom:var(--sp-1)}
.page-ts .ts-ritual p{font-size:12.5px;line-height:1.75;color:var(--ts-ink);margin:0}
.page-ts .ts-card-note{margin-top:var(--sp-2);padding-top:var(--sp-2);border-top:1px solid var(--ts-line);font-size:12px;color:var(--ink2);line-height:1.6}
@media (max-width:640px){
  .page-ts .ts-head-cards{flex-direction:column}
  .page-ts .ts-card{min-width:0}
  .page-ts .ts-ritual-grid{grid-template-columns:repeat(2,1fr)}
  /* 星君总表：移动端按内容定宽、单元格单行，列宽自适应文字，超宽由 wrap 横滚，免挤压 */
  .page-ts .ts-fold table.ts-tbl{width:auto;max-width:none}
  .page-ts .ts-fold table.ts-tbl th,
  .page-ts .ts-fold table.ts-tbl td{white-space:nowrap}
}
@media (max-width:420px){
  .page-ts .ts-ritual-grid{grid-template-columns:1fr}
}
/* ===== 页级样式：taiyi（page-ty）===== */
/* 信息框与参考折叠卡：去白卡描边，只留一条顶线作分界（口径同 tieban、ziwei、zeri 五页） */
.page-ty .info-box{background:transparent;border:0;border-top:1px solid var(--ty-line);border-radius:0;box-shadow:none}
.page-ty .mh-ref{border-color:var(--ty-line)}
/* 十六宫神将盘：电脑端每排两张居中（限宽防拉伸），手机堆叠 */
.page-ty .ty16-wrap{display:grid;grid-template-columns:minmax(0,980px);justify-content:center;gap:var(--sp-3);margin-top:var(--sp-2)}
/* 左盘右表：盘面左、解读表右，整体居中；盘面明显放大，表格限宽不再撑满 */
.page-ty .ty16-pair{display:flex;gap:var(--sp-5);align-items:flex-start;justify-content:center;flex-wrap:wrap}
.page-ty .ty16-gridbox{flex:0 0 460px;width:460px;max-width:100%}
.page-ty .ty16-lutable{flex:0 1 460px;width:460px;max-width:460px;min-width:0}
.page-ty .ty16-lutable table{margin-top:0;width:100%}
@media(max-width:1040px){
  .page-ty .ty16-gridbox{flex-basis:400px;width:400px}
}
.page-ty .ty16-card{border:0;border-top:1px solid var(--ty-line);background:transparent;padding:var(--sp-3) 0;min-width:0;border-radius:0}
.page-ty .ty16-card .ty-sub{text-align:center;font-size:12px;color:var(--ink2);margin-bottom:var(--sp-1)}
.page-ty .ty16-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-2);max-width:520px;margin:0 auto}
.page-ty .ty16-cell{border:1px solid var(--line);border-radius:0;padding:var(--sp-3) var(--sp-1);background:var(--paper);color:var(--ty-ink);min-height:88px;text-align:center;font-size:13px;line-height:1.35;transition:background .15s;display:flex;flex-direction:column;justify-content:center;align-items:center}
.page-ty .ty16-cell:hover{background:var(--cal-hover)}
.page-ty .ty16-cell b{color:var(--gold2);display:block;font-size:16px;font-weight:400;margin-bottom:var(--sp-1)}
.page-ty .ty16-cell .sg{display:block;line-height:1.55}
/* 太乙、文昌、始击三神所临之宫：各铺一色，悬停加深一档 */
.page-ty .ty16-cell.ty{background:#f5e6c8;border-color:var(--line);color:var(--ink)}
.page-ty .ty16-cell.ty:hover{background:#e8d6b2}
.page-ty .ty16-cell.wc{background:#dae8f6;border-color:var(--line)}
.page-ty .ty16-cell.wc:hover{background:#c9dcf2}
.page-ty .ty16-cell.sh{background:#f0e2dc;border-color:var(--line)}
.page-ty .ty16-cell.sh:hover{background:#e0d0c6}
/* 太乙八门：九宫格，按方位布列，底色随门之吉凶 */
.page-ty .ty-door-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-2);max-width:460px;margin:0 auto}
.page-ty .ty-dcell{border:1px solid var(--line);border-radius:0;padding:var(--sp-3) var(--sp-1);background:var(--paper);text-align:center;min-height:92px;font-size:12.5px;line-height:1.35;transition:background .15s;display:flex;flex-direction:column;justify-content:center;align-items:center}
.page-ty .ty-dcell:hover{background:var(--cal-hover)}
.page-ty .ty-dcell .gp{display:block;color:var(--ink2);font-size:12px}
.page-ty .ty-dcell .dn{display:block;font-size:20px;margin-top:2px}
.page-ty .ty-dcell .jj{display:block;font-size:12px;margin-top:2px;color:var(--ink2)}
.page-ty .ty-dcell.mid{color:var(--ink2)}
.page-ty .ty-dcell.mid .dn{font-size:16px;color:var(--ink2)}
/* 太乙所临之宫：金底，与十六宫神将盘太乙宫同色 */
.page-ty .ty-dcell.tyhere{background:#f5e6c8}
.page-ty .ty-dcell.tyhere:hover{background:#e8d6b2}
/* 八门吉凶四档：等级靠门名与吉凶文字、字色分档，不铺实色块 */
.page-ty .d-jj3{color:#2f7a35}
.page-ty .d-jj2{color:#5c8a3c}
.page-ty .d-xj2{color:#b06a2a}
.page-ty .d-xj3{color:#c0392b}
.page-ty .ty-flow{display:flex;flex-wrap:wrap;gap:2px var(--sp-4)}
/* 八门：九宫格与值使表并排，盘面左、表右，居中分列同十六宫 */
.page-ty .ty-door-h{font-size:14px;color:var(--gold2);margin:0 0 var(--sp-1)}
.page-ty .ty-door-pair{display:flex;gap:var(--sp-5);align-items:flex-start;justify-content:center;flex-wrap:wrap;margin:0 0 var(--sp-4)}
.page-ty .ty-door-gridbox{flex:0 0 460px;width:460px;max-width:100%}
.page-ty .ty-door-gridbox .ty-door-grid{margin:0 auto;max-width:460px}
.page-ty .ty-door-tb{flex:0 1 460px;width:460px;max-width:460px;min-width:0;margin-top:0}
.page-ty .ty-door-tb tr.ty-three td{color:var(--gold2)}
.page-ty .ty-door-gridbox .ty-sub{margin-bottom:var(--sp-1)}
@media(max-width:1040px){
  .page-ty .ty-door-gridbox{flex-basis:400px;width:400px}
  .page-ty .ty-door-gridbox .ty-door-grid{max-width:400px}
}
/* 九宫分野（九州）表 */
.page-ty .ty-np{width:100%;border-collapse:collapse;margin-top:var(--sp-2);font-size:13px}
.page-ty .ty-np th,.page-ty .ty-np td{border:1px solid var(--line);padding:5px 8px;text-align:left;line-height:1.6}
.page-ty .ty-np td:first-child,.page-ty .ty-np th:first-child{white-space:nowrap;width:1%}
.page-ty .ty-np th{background:transparent;color:var(--gold2);border-color:var(--ty-line,#ccd2e0);font-weight:400;white-space:nowrap}
.page-ty .ty-np td{color:var(--ink);border-color:var(--ty-line,#ccd2e0);background:transparent}
/* 太乙所落之宫：金底标识，与十六宫神将盘、太乙八门同色 */
.page-ty .ty-np tr.ty-hit td{background:#f5e6c8}
/* 详细版推演：表格形式 */
.page-ty .ty-derive{margin-top:var(--sp-3);padding:2px 0}
.page-ty .ty-derive h4{font-size:14px;color:var(--gold2);margin:0 0 var(--sp-1)}
/* 参考详解表（神将/格局/主客算）：内容列左对齐，行高舒适 */
.page-ty .mh-ref table th{white-space:nowrap}
.page-ty .mh-ref table td{text-align:left;line-height:1.6}
.page-ty .mh-ref table td:first-child,.page-ty .mh-ref table th:first-child{white-space:nowrap}
/* 神将详解、格局详解、主客算说明三框无背景色 */
.page-ty details.ty-ref{background:transparent}
.page-ty details.ty-ref table th{background:transparent}
/* 移动端：表单、十六宫、八门、表格 */
@media(max-width:760px){
  .page-ty .ty16-wrap{grid-template-columns:1fr}
}
/* 窄屏：盘与表上下堆叠、各自占满一行（盘面居中，表格全宽） */
@media(max-width:900px){
  .page-ty .ty16-pair,.page-ty .ty-door-pair{flex-direction:column;align-items:stretch}
  .page-ty .ty16-gridbox,.page-ty .ty-door-gridbox{width:100%;flex-basis:auto}
  .page-ty .ty16-lutable,.page-ty .ty-door-tb{width:100%;flex-basis:auto;max-width:none}
}
@media(max-width:640px){
  .page-ty .form-row{gap:var(--sp-2)}
  .page-ty #dInput{max-width:140px;width:100%}
  .page-ty .ty16-cell{min-height:66px;font-size:12px;padding:var(--sp-2) var(--sp-1)}
  .page-ty .ty-np th,.page-ty .ty-np td{padding:4px 5px}
  /* 阵形表六个表头全 nowrap 时最小宽 331，320 视口只有 256：表头不换行（一让表头换行就满屏单字），改由模块体横向滚动兜底 */
  .page-ty .mod-body{overflow-x:auto}
  /* 阵形表列多，窄屏列宽走全站契约，由模块体横滚兜底，不再把两字州名压成单字 */
  /* 值按标点整段换行，末字不再独占一行 */
  .page-ty .ty-np td{word-break:keep-all}
  .page-ty .ty-dcell{min-height:70px;padding:var(--sp-2) var(--sp-1)}
  .page-ty .ty-dcell .dn{font-size:17px}
}
/* 提交后信息行紧贴表单 */
.page-ty #infoLine{margin:var(--sp-1) 2px 0}
.page-ty .page > .form-row{margin-bottom:var(--sp-2)}



.page-ty .ty-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-1);max-width:420px;margin:var(--sp-2) auto}
.page-ty .ty-cell{border:1px solid var(--ty-line);border-radius:0;padding:var(--sp-2) var(--sp-1);text-align:center;background:transparent;min-height:70px}
.page-ty .ty-cell.ty-center{background:var(--ty-tint)}
.page-ty .ty-cell.ty-main{border:2px solid var(--ty);background:var(--ty-tint);color:var(--ty-deep)}
.page-ty .ty-cell.ty-main .ty-gn,.page-ty .ty-cell.ty-main .ty-fx,.page-ty .ty-cell.ty-main .ty-mark{color:var(--ty-deep)}
.page-ty .ty-gn{font-size:15px;font-weight:700}
.page-ty .ty-fx{font-size:11px;color:var(--ty-ink2)}
.page-ty .ty-mark{font-size:12px;color:var(--red2);font-weight:700;margin-top:var(--sp-1);min-height:16px}
.page-ty .ty-16{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-1)}
.page-ty .ty-16c{border:1px solid var(--ty-line);border-radius:0;padding:var(--sp-2) var(--sp-1);background:transparent;text-align:center;font-size:12px}
.page-ty .ty-16c b{display:block;font-size:14px;color:var(--red2)}
.page-ty .ty-16c span{color:var(--ty-ink2)}
.page-ty .ty-16c i{display:block;color:var(--ty2);font-style:normal;font-size:11px;margin-top:2px}

.page-ty .mod-head{border-top-color:var(--ty-line);border-bottom-color:var(--ty-line)}
.page-ty .page h1{color:var(--ty-deep);font-family:var(--ty-serif);font-size:23px;letter-spacing:.3em;text-indent:.3em;text-align:center;line-height:1.3}/* 页头细线：上下各一条 88px 夹题，卷首说明末尾 26px 竖线收束（规则档第三条） */
.page-ty .page h1::before{content:'';display:block;width:88px;height:1px;background:var(--ty-line);margin:0 auto var(--sp-3)}
.page-ty .page h1::after{content:'';display:block;width:88px;height:1px;background:var(--ty-line);margin:var(--sp-3) auto 0}
.page-ty .page .lead::after{background:var(--ty-line)}

.page-ty .page .lead{color:var(--ty-ink2);text-align:center;font-size:12.5px;letter-spacing:.22em;text-indent:.22em;margin-top:var(--sp-3)}
.page-ty .rel-title{color:var(--ty2)}
.page-ty .ly-zh-p{color:var(--ty-ink)}
.page-ty .sub-note{color:var(--ty-ink2)}
.page-ty .notice{color:var(--ty-ink);border:1px solid var(--ty-line);background:var(--ty-tint);border-radius:0}
.page-ty .mh-method{color:var(--ty-ink2)}

.page-ty .field label{color:var(--ty2);font-weight:400}
.page-ty .field input,.page-ty .field select{border-color:var(--ty-line);background:var(--card);color:var(--ty-deep)}
.page-ty .field input:focus,.page-ty .field select:focus{border-color:var(--ty);outline:none}
.page-ty .group-label{color:var(--ty2)}

.page-ty .btn{background:var(--ty);color:#fff}
.page-ty .btn:hover{background:var(--ty2)}
.page-ty .btn-ghost{background:var(--card);border:1px solid var(--ty);color:var(--ty2)}
.page-ty .btn-ghost:hover{background:var(--ty-tint)}

.page-ty .info-box p{color:var(--ty-ink)}

/* 折叠模块标题 */
.page-ty .mod-title{color:var(--ty2)}
.page-ty .gua-ico{background:transparent;border:0;color:var(--ty2)}

/* 附加功能面板（基础款） */
.page-ty .ai-block{border:0;border-top:1px solid var(--ty-line);border-bottom:1px solid var(--ty-line);border-radius:0;background:transparent;color:var(--ty-ink);box-shadow:none}
.page-ty .ai-head{background:transparent;border-bottom-color:var(--ty-line)}
.page-ty .ai-head h3{color:var(--ty2)}
.page-ty .ai-block .btn{background:var(--ty);color:#fff}
.page-ty .ai-block .btn:hover{background:var(--ty2)}
.page-ty .ai-block .btn.gold,.page-ty .ai-block .btn.soft{background:var(--ty-tint);border-color:var(--ty-line);color:var(--ty-ink);box-shadow:none}
.page-ty .ai-block .btn.gold:hover,.page-ty .ai-block .btn.soft:hover{background:var(--card);border-color:var(--ty);color:var(--ty2)}
.page-ty .ai-block .ai-out,.page-ty .ai-block .ai-bubble.user,.page-ty .ai-block .ai-bubble.assistant,.page-ty .ai-block .ai-model-name,.page-ty .ai-block input,.page-ty .ai-block select{color:var(--ty-ink)}
.page-ty .ai-tab.active{background:var(--ty);border-color:var(--ty);color:#fff}
.page-ty .ai-bubble.user{background:var(--ty-tint);border-color:var(--ty)}
.page-ty .ai-bubble.assistant{border-color:var(--ty-line)}
/* 移动端 */
@media(max-width:640px){
  .page-ty .info-box{box-shadow:none}
}
/* 打印 */
@media print{
  .page-ty .info-box{background:var(--card) !important;box-shadow:none !important;border-color:var(--line) !important}
}
/* 太乙：模块内小分隔标题间距收敛（≤模块间 20px，保持内紧外松层次） */
.page-ty #out .mod-body h3.rel-title{margin-top:var(--sp-3)}
/* 太乙：神将落宫解读小节（盘下方） */
.page-ty .ty-lu-box{margin-top:var(--sp-2);border-top:1px dashed var(--ty-line,#ccd2e0);padding-top:var(--sp-1)}
.page-ty .ty-lu{font-size:12px;line-height:1.7;color:var(--ty-ink,#3b4152)}
.page-ty .ty-lu b{color:var(--ty2,#303d63)}
.page-ty .ty16-gridbox .ty16-grid{max-width:460px;margin:0 auto}.page-ty .ty16-head{display:flex;align-items:baseline;gap:var(--sp-3);justify-content:flex-start;flex-wrap:wrap;margin-bottom:var(--sp-1)}
.page-ty .ty16-head h4{margin:0;text-align:left;font-size:var(--tier3);color:var(--ty2)}
.page-ty .ty16-head .ty-sub{text-align:left;margin-bottom:0;font-size:12px;color:var(--ty-ink2)}
@media(max-width:1040px){.page-ty .ty16-gridbox .ty16-grid{max-width:400px}}
@media(max-width:900px){
  .page-ty .ty16-pair{flex-direction:column;align-items:stretch}
  .page-ty .ty16-gridbox{width:100%;flex-basis:auto}
  .page-ty .ty16-gridbox .ty16-grid{max-width:460px}
  .page-ty .ty16-lutable{width:100%;flex-basis:auto;max-width:none}
}
/* 太乙：盘下说明小字（图例、据典注、分野注、积年体系说明） */
.page-ty .ty-note{font-size:12px;color:var(--ink2);margin-top:var(--sp-1);line-height:1.6}
.page-ty .ty-note-tight{margin-top:2px}
.page-ty .ty-legend b{font-weight:700}
.page-ty .ty-legend .lg-ty{color:#8f6a2d}
.page-ty .ty-legend .lg-wc{color:#2b6cb0}
.page-ty .ty-legend .lg-sh{color:#c0392b}
.page-ty .ty-legend .lg-js{color:#6b4fa0}
.page-ty .ty-legend .lg-zhu{color:#3a7a5a}
.page-ty .ty-legend .lg-ke{color:#7a5a3a}
.page-ty .ty-legend .lg-shen{color:#a07040}
.page-ty .ty-legend .lg-tj{color:#c9a24a}
/* 太乙：神将落宫表内之辰名着色、宫表首格换行 */
.page-ty .ty-shen-c{font-weight:400}
.page-ty .ty-lu-lab{white-space:nowrap}
.page-ty .ty-lu-name{white-space:nowrap}
.page-ty .ty-lu-scale{font-size:11px;color:var(--ink2)}
.page-ty .ty-lu-det{line-height:1.9}
.page-ty .ty-np .ty-g-split{background:var(--paper);color:var(--gold2)}
.page-ty .ty-np .ty-g-key{white-space:nowrap;width:1%}
/* 太乙：主客门吉凶与五行生克之判定着色 */
.page-ty .ty-j-jix{color:var(--gold2)}
.page-ty .ty-j-xiong{color:var(--red2)}
.page-ty .ty-note-inline{color:var(--ink2);font-size:12px}
.page-ty .ty-np-scale thead th:first-child{width:90px}
.page-ty .ty-np-gong thead th:first-child{width:64px}
/* ===== 页级样式：tarot（page-tr）===== */
.page-tr .btn,.page-tr .btn.gold{background:var(--tr);border-color:var(--tr);color:#fff;box-shadow:none}
/* 牌阵扩展样式：真实牌图卡面、凯尔特十字布局（基础 tr-* 样式在 style.css） */
.page-tr .tr-face{position:relative}
.page-tr .tr-img{width:100%;display:block;border-radius:0;box-shadow:none}
.page-tr .tr-card.rev .tr-img{transform:rotate(180deg)}
.page-tr .tr-badge{position:absolute;top:12px;right:14px;font-size:10px;color:#3a2c4d;background:rgba(255,248,230,.88);border-radius:0;padding:1px 6px;line-height:1.5}
.page-tr .tr-num{position:absolute;top:10px;left:14px;font-size:12px;color:var(--gold2);font-weight:700;background:rgba(255,248,230,.88);border-radius:0;padding:0 5px}
.page-tr .tr-court{position:absolute;top:10px;left:50px;font-size:20px;line-height:1.4;color:#3a2c4d;background:rgba(255,248,230,.88);border-radius:0;padding:0 6px}
.page-tr .tr-name{font-size:17px;font-weight:800;margin:var(--sp-2) 0 0;color:#3a2c4d}
.page-tr .tr-combo{font-size:12px;color:var(--gold2);line-height:1.6;margin-bottom:2px;word-break:keep-all}
/* 牌义短句断行落在顿号与逗号处，末字不再独占一行 */
.page-tr .tr-core{color:var(--ink);word-break:keep-all}
.page-tr .tr-meta{font-size:11px;color:var(--ink2);margin-top:var(--sp-1);line-height:1.6;word-break:keep-all}
.page-tr .tr-sym{font-size:44px;line-height:1.6;color:#3a2c4d;display:inline-block;padding:14px 0}
.page-tr .tr-card.rev .tr-sym{transform:rotate(180deg)}
/* 凯尔特十字框架：牌面按塔罗原比例（11:20）完整显示，不再裁条；交汇牌横置叠于十字中轴。 十字区 6 张：纵列 冠冕→交汇→现状→根源、横列 过去→现状→未来；右柱 4 张竖排 */
.page-tr .cx-frame{--cxw:140px;display:grid;grid-template-columns:repeat(4,var(--cxw));grid-template-rows:repeat(4,auto);gap:var(--sp-3);justify-content:center}
.page-tr .tr-tile{width:100%;border:1px solid var(--line);border-radius:0;overflow:hidden;background:var(--paper2);cursor:pointer}
.page-tr .tt-pos{text-align:center;font-size:11px;padding:var(--sp-1) 2px;font-weight:700;line-height:1.3}
.page-tr .tt-face{position:relative;padding:var(--sp-2) var(--sp-1);text-align:center;background:var(--paper2);box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;gap:2px}
.page-tr .tr-tile.rev .tt-face{background:var(--tr-tint)}
.page-tr .tt-img{width:100%;height:auto;aspect-ratio:11/20;object-fit:cover;border-radius:0;box-shadow:none}
.page-tr .tr-tile.rev .tt-img{transform:rotate(180deg)}
/* 交汇牌：横置（旋转90°）悬浮于十字中轴，占满三列宽度，牌面完整不裁切 */

.page-tr .cx-crosser .tt-face{width:var(--cxw);aspect-ratio:1/1;flex:none;padding:0}
.page-tr .cx-crosser .tt-img{position:absolute;top:50%;left:50%;width:var(--cxw);height:auto;transform:translate(-50%,-50%) rotate(90deg);margin:0}
.page-tr .tr-tile.rev.cx-crosser .tt-img{transform:translate(-50%,-50%) rotate(270deg)}
.page-tr .cx-crosser .tt-name{position:absolute;bottom:2px;left:50%;transform:translateX(-50%);background:rgba(255,248,230,.9);border-radius:0;padding:0 4px;z-index:1;white-space:nowrap}
.page-tr .cx-crosser .tt-num,.page-tr .cx-crosser .tt-en,.page-tr .cx-crosser .tt-ori{display:none}
.page-tr .tt-name{font-size:12px;font-weight:700;color:#3a2c4d;line-height:1.25}
.page-tr .tt-en{font-size:9px;color:var(--ink2);font-style:italic}
.page-tr .tt-ori{font-size:10.5px;font-weight:700}
.page-tr .tr-tile.rev .tt-ori{color:#8e44ad}
.page-tr .tr-tile:not(.rev) .tt-ori{color:var(--green)}
.page-tr .tt-num{position:absolute;top:3px;left:5px;font-size:9px;color:var(--gold2);font-weight:700;background:rgba(255,248,230,.88);border-radius:0;padding:0 3px}
.page-tr .tt-court{position:absolute;top:3px;left:38px;font-size:14px;line-height:1.4;color:#3a2c4d;background:rgba(255,248,230,.88);border-radius:0;padding:0 4px}
.page-tr .tt-sym{font-size:24px;line-height:1;color:#3a2c4d}
.page-tr .tr-tile.rev .tt-sym{transform:rotate(180deg)}
.page-tr .cx-above{grid-column:2;grid-row:1}
.page-tr .cx-crosser{grid-column:1/span 3;grid-row:2;overflow:visible;background:none;border:none;display:flex;flex-direction:column;align-items:center;justify-content:center}
.page-tr .cx-past{grid-column:1;grid-row:3}
.page-tr .cx-mid{grid-column:2;grid-row:3}
.page-tr .cx-future{grid-column:3;grid-row:3}
.page-tr .cx-below{grid-column:2;grid-row:4}
.page-tr .cx-staff{grid-column:4;grid-row:1/span 4;display:flex;flex-direction:column;justify-content:center;gap:var(--sp-2)}
/* 十张详断表：位次 / 牌 / 牌义与位义 */
/* 凯尔特十字详断表：与综合判断表同款（仅顶线与逐行下线） */
.page-tr .cx-detail{width:100%;border-collapse:collapse;margin-top:var(--sp-4);font-size:13px;border-top:1px solid var(--line)}
.page-tr .cx-detail th,.page-tr .cx-detail td{border:0;border-bottom:1px solid var(--line);padding:7px 9px;text-align:left;line-height:1.65;vertical-align:top}
.page-tr .cx-detail thead th{background:transparent;color:var(--gold2);font-weight:400;white-space:nowrap}
.page-tr .cx-detail tbody tr{cursor:pointer}
.page-tr .cx-detail .cx-p{color:var(--gold2);text-align:center;white-space:nowrap;font-weight:700;width:72px}
.page-tr .cx-detail .cx-c{font-weight:400;width:150px}
.page-tr .cx-detail .cx-o{font-weight:400;font-size:12px;margin-left:var(--sp-1)}
.page-tr .cx-detail .cx-o.r{color:#8e44ad}
.page-tr .cx-detail .cx-en{font-size:11px;color:var(--ink2);font-style:italic;font-weight:400}
.page-tr .cx-detail .cx-d{font-size:12px;color:var(--ink2)}
/* 综合判断表格：项目｜解读 两列（体例对齐雷诺曼 ln-table，色用塔罗主题线色与金字） */
/* 塔罗综合判断表：参考历法页基础信息表的线条模式（仅顶线与逐行下线，键列取定宽） */
.page-tr .tr-table{width:100%;border-collapse:collapse;margin-top:var(--sp-2);font-size:13px;border-top:1px solid var(--line)}
.page-tr .tr-table th,.page-tr .tr-table td{border:0;border-bottom:1px solid var(--line);padding:7px 9px;text-align:left;line-height:1.75;vertical-align:top}
.page-tr .tr-table thead th{background:transparent;color:var(--gold2);font-weight:400;white-space:nowrap}
.page-tr .tr-table td.k{width:110px;color:var(--gold2)}
.page-tr .cx-dg{margin-top:var(--sp-1);font-size:12.5px;color:var(--ink2);line-height:1.7}
.page-tr .cx-dg b{color:var(--gold2);font-weight:400}
/* 牌面详批弹窗 */
#trMask{position:fixed;inset:0;background:rgba(20,12,32,.58);display:none;align-items:center;justify-content:center;z-index:99;padding:var(--sp-3)}
#trMask.on{display:flex}
.tr-modal{position:relative;background:var(--paper2);max-width:680px;width:100%;max-height:86vh;overflow:auto;border-radius:0;padding:var(--sp-4);box-shadow:0 12px 40px rgba(0,0,0,.3)}
.page-tr .tm-close{position:absolute;top:8px;right:12px;font-size:26px;line-height:1;color:var(--ink2);cursor:pointer;padding:4px}
.page-tr .tm-close:hover{color:var(--gold2)}
.page-tr .tm-head{display:flex;gap:var(--sp-3);align-items:flex-start}
.page-tr .tm-img{width:150px;flex:0 0 150px;border-radius:0;box-shadow:0 2px 10px rgba(42,32,56,.2)}
.page-tr .tm-img.rev{transform:rotate(180deg)}
.page-tr .tm-b h3{margin:0 0 var(--sp-1);color:#3a2c4d;font-size:20px}
.page-tr .tm-en{font-size:12px;color:var(--ink2);font-style:italic;font-weight:400}
.page-tr .tm-tags{display:flex;flex-wrap:wrap;gap:var(--sp-1);margin-bottom:var(--sp-2)}
.page-tr .tm-tags span{font-size:11px;border:1px solid var(--line);border-radius:0;padding:1px 8px;color:var(--ink2)}
.page-tr .tm-b p{margin:0 0 var(--sp-1);font-size:13px;line-height:1.7}
.page-tr .tm-kw b,.page-tr .tm-core b,.page-tr .tm-time b{color:var(--gold2);font-weight:400}
.page-tr .tm-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-2);margin-top:var(--sp-3)}
.page-tr .tm-dom{border:1px solid var(--line);border-radius:0;padding:var(--sp-2) var(--sp-3);background:var(--paper)}
.page-tr .tm-dom h4{margin:0 0 2px;font-size:13px;color:var(--gold2);font-weight:700}
.page-tr .tm-dom p{margin:0;font-size:12.5px;line-height:1.7}
.page-tr .tm-pos{margin-top:var(--sp-3);font-size:12.5px;color:var(--ink2);line-height:1.7}
.page-tr .tm-pos b{color:var(--gold2);font-weight:400}
@media(max-width:760px){
  /* 十字格宽随视口收敛：3 列加两条间距不得超出内容宽（内容宽为视口减 64） */
  .page-tr .cx-frame{--cxw:min(108px,calc((100vw - 80px)/3));grid-template-columns:repeat(3,var(--cxw));gap:var(--sp-2)}
  .page-tr .cx-staff{grid-column:1/-1;grid-row:5;display:grid;grid-template-columns:repeat(2,var(--cxw));gap:var(--sp-2);justify-content:center}
  .page-tr .tt-face{padding:var(--sp-1)}
  .page-tr .tt-name{font-size:11px}
  .page-tr .tt-en{font-size:8.5px}
  .page-tr .tt-ori{font-size:10px}
  .page-tr .tt-pos{font-size:10px;padding:var(--sp-1) 2px}
  .page-tr .tt-num{font-size:8px;top:2px;left:3px}
  .page-tr .tt-court{font-size:12px;top:1px;left:3px}
  .page-tr .cx-detail{font-size:12px;margin-top:var(--sp-3)}
  .page-tr .cx-detail th,.page-tr .cx-detail td{padding:5px 6px}
  .page-tr .cx-detail .cx-c{white-space:normal;width:96px}
  .page-tr .tr-table th,.page-tr .tr-table td{padding:5px 6px}
  /* 项目名不折行：78px 减去左右内边距后放不下六个字，末字会落单行，故定名列不折、列宽由内容定 */
  .page-tr .tr-table td.k{width:auto;white-space:nowrap}
  /* 窄屏牌面每行两张：上限取半宽，避免落单的那张被撑到与同行两张不同宽 */
  .page-tr .tr-card{flex:1 1 46%;max-width:calc(50% - var(--sp-3)/2)}
  /* 移动端表单：牌阵、所问之事、洗牌抽牌各占一行，控件随页面宽度自适应铺满（容器 .wrap 已限电脑端最大宽，不会超宽） */
  .page-tr .page > .form-row{gap:var(--sp-2)}
  .page-tr .page > .form-row .field{flex:1 1 100%;min-width:0;max-width:none}
  .page-tr .page > .form-row .field select,.page-tr .page > .form-row .field input{width:100%}
  .page-tr .page > .form-row .btn{flex:1 1 100%}
  .page-tr .tr-name{font-size:15px}
  .page-tr .tr-sym{font-size:30px}
  .page-tr .tr-mean{font-size:12.5px;padding:var(--sp-2)}
  .page-tr .tr-pos{font-size:12px;padding:var(--sp-1)}
  .page-tr .tm-head{flex-direction:column}
  .page-tr .tm-img{width:130px;flex:none}
  .page-tr .tm-grid{grid-template-columns:1fr}
}
@media print{
  #trMask{display:none!important}
  .page-tr .tr-card,.page-tr .tr-tile{page-break-inside:avoid}
}



.page-tr .page h1{color:var(--tr-deep);font-family:var(--tr-serif);font-size:23px;letter-spacing:.3em;text-indent:.3em;text-align:center;line-height:1.3}/* 页头细线：上下各一条 88px 夹题，卷首说明末尾 26px 竖线收束（规则档第三条） */
.page-tr .page h1::before{content:'';display:block;width:88px;height:1px;background:var(--tr-line);margin:0 auto var(--sp-3)}
.page-tr .page h1::after{content:'';display:block;width:88px;height:1px;background:var(--tr-line);margin:var(--sp-3) auto 0}
.page-tr .page .lead::after{background:var(--tr-line)}

.page-tr .page .lead{color:var(--tr-ink2);text-align:center;font-size:12.5px;letter-spacing:.22em;text-indent:.22em;margin-top:var(--sp-3)}
.page-tr .rel-title{color:var(--tr2)}
.page-tr .ly-zh-p{color:var(--tr-ink)}
.page-tr .sub-note{color:var(--tr-ink2)}
.page-tr .tr-stats{color:var(--tr-ink)}

/* 抽牌表单行：只写本页墨色与控件描边。排布与间距属共享件共性，页面段不写（曾在此处写
   justify-content:center 与 margin-bottom:0，使控件脱离页面左基线、并把表单与牌面间 24px 抹掉） */
.page-tr .page > .form-row .field label{color:var(--tr2);font-weight:400}
.page-tr .page > .form-row .field input,.page-tr .page > .form-row .field select{border-color:var(--tr-line);transition:border-color .15s}
.page-tr .page > .form-row .field input:focus,.page-tr .page > .form-row .field select:focus{border-color:var(--tr);outline:none}
/* 洗牌抽牌（.btn.gold）玄紫实底主按钮 */
.page-tr .page > .form-row .btn.gold{background:var(--tr);border-color:var(--tr);box-shadow:none}
.page-tr .page > .form-row .btn.gold:hover{background:var(--tr2);border-color:var(--tr2);box-shadow:none}

/* 牌卡：玄紫描边、牌名与位次条随玄紫（牌面纸色，逆位取玄紫淡底） */
.page-tr .tr-card,.page-tr .tr-tile{border-color:var(--tr-line)}
.page-tr .tr-name,.page-tr .tr-sym,.page-tr .tt-sym,.page-tr .tt-name,.page-tr .tt-court,.page-tr .tr-court{color:var(--tr-deep)}
.page-tr .tr-pos,.page-tr .tt-pos{background:var(--tr2);color:#e8d9a0}
.page-tr .cx-detail td{border-color:var(--tr-line)}

/* 综合判断 info-box：白瓷面 + 玄紫顶条 */
.page-tr .info-box{
  background:radial-gradient(120% 130% at 50% -30%,rgba(74,58,138,.08),rgba(255,255,255,0) 55%),#fff;
  border:1px solid var(--tr-line);border-top:2px solid var(--tr);border-radius:0;
  box-shadow:0 8px 20px rgba(36,28,74,.08),0 1px 2px rgba(36,28,74,.04),inset 0 1px 0 #fff;
}
.page-tr .info-box h4{color:var(--tr2);letter-spacing:.5px}
.page-tr .info-box p{color:var(--tr-ink)}

/* 附加功能面板（基础款） */
.page-tr .ai-block{
  border:0;border-top:1px solid var(--tr-line);border-bottom:1px solid var(--tr-line);border-radius:0;
  background:transparent;color:var(--tr-ink);box-shadow:none;
}
.page-tr .ai-head{background:transparent;border-bottom-color:var(--tr-line)}
.page-tr .ai-head h3{color:var(--tr2)}
.page-tr .ai-block .btn{background:var(--tr);color:#fff}
.page-tr .ai-block .btn:hover{background:var(--tr2)}
.page-tr .ai-block .btn.gold,.page-tr .ai-block .btn.soft{background:var(--tr-tint);border-color:var(--tr-line);color:var(--tr-ink);box-shadow:none}
.page-tr .ai-block .btn.gold:hover,.page-tr .ai-block .btn.soft:hover{background:var(--card);border-color:var(--tr);color:var(--tr2)}
.page-tr .ai-block .ai-out,.page-tr .ai-block .ai-bubble.user,.page-tr .ai-block .ai-bubble.assistant,.page-tr .ai-block .ai-model-name,.page-tr .ai-block input,.page-tr .ai-block select{color:var(--tr-ink)}
.page-tr .ai-tab.active{background:var(--tr);border-color:var(--tr);color:#fff}
.page-tr .ai-bubble.user{background:var(--tr-tint);border-color:var(--tr)}
.page-tr .ai-bubble.assistant{border-color:var(--tr-line)}
/* 打印：恢复素底 */
@media print{
  .page-tr .info-box,.page-tr .tr-card,.page-tr .tr-tile,.page-tr .page > .form-row,.page-tr .cx-detail thead th{background:var(--card) !important;box-shadow:none !important;border-color:var(--line) !important}
}

.tr-pos{background:linear-gradient(180deg,#2a2038,#3a2c4d);color:#e8d9a0;text-align:center;font-size:13px;padding:var(--sp-1);font-weight:700}
.tr-face{padding:var(--sp-3) var(--sp-2);text-align:center;background:var(--paper2)}
.tr-card.rev .tr-face{background:var(--tr-tint)}
.tr-badge{font-size:11px;color:var(--ink2)}
.tr-name{font-size:19px;font-weight:800;margin:var(--sp-1) 0;color:#3a2c4d}
.tr-en{font-size:11px;color:var(--ink2);font-style:italic}
.tr-ori{font-size:12px;margin-top:var(--sp-1);font-weight:700}
.tr-card.rev .tr-ori{color:#8e44ad}.tr-card:not(.rev) .tr-ori{color:var(--green)}
.tr-mean{padding:var(--sp-3);font-size:13px;line-height:1.7;color:var(--ink)}
/* ===== 页级样式：tieban（page-tieban）===== */

/* 铁板神数：卷首式页头、检索行、考刻、条文、大运、河洛卦象、折叠框、附加面板 */

/* 卷首式页头：上下各一条 88px 细线夹题，卷首说明末尾一条 26px 竖线收束 */
.page-tieban .page h1{color:var(--tie-deep);font-family:var(--tie-serif);font-size:23px;letter-spacing:.3em;text-indent:.3em;text-align:center;line-height:1.3}
.page-tieban .page h1::before{content:'';display:block;width:88px;height:1px;background:var(--tie-line);margin:0 auto var(--sp-3)}
.page-tieban .page h1::after{content:'';display:block;width:88px;height:1px;background:var(--tie-line);margin:var(--sp-3) auto 0}
.page-tieban .page .lead{color:var(--tie-ink2);text-align:center;font-size:12.5px;letter-spacing:.22em;text-indent:.22em;margin-top:var(--sp-3)}
.page-tieban .page .lead::after{background:var(--tie-line)}

/* 检索行：排盘页口径，字段保持标签在上的竖排，只收一句下间距。
   下距取 --sp-3：本行下方紧邻出生地组，其上线与上排控件的 1px 下边框是一对相邻平行线，
   间距全站统一为 12px，第二条判据的下限亦为 12px。 */
.page-tieban .page > .form-row{margin-bottom:var(--sp-3)}
.page-tieban .field label{color:var(--tie2);font-weight:400}
.page-tieban .field input,.page-tieban .field select{border-color:var(--tie-line);background:var(--card);color:var(--tie-deep)}
.page-tieban input:focus,.page-tieban select:focus,.page-tieban textarea:focus{border-color:var(--tie);outline:none}
/* 出生地组：与八字排盘页同构，去框改线只留上下两条细线；三级下拉 137px 与经度框 96px 由全站 .birth-group.compact 承担 */
.page-tieban .birth-group,.page-tieban .birth-group.compact{background:transparent;border:0;border-top:1px solid var(--tie-line);border-radius:0;box-shadow:none;padding:var(--sp-3) 0;margin-bottom:var(--sp-2)}
/* 窄屏题头到上线收到移动端更小档 --sp-2；本块排在基条之后，同权重下由后位取终值 */
@media(max-width:640px){.page-tieban .birth-group,.page-tieban .birth-group.compact{padding-top:var(--sp-2)}}
.page-tieban .birth-group .group-label{color:var(--tie2)}
.page-tieban .field.chk label{cursor:pointer}

/* 按钮：全页两档。页内一切 .btn 先落玄铁实底，面板内的主次两档再同档归一 */
.page-tieban .btn,.page-tieban .btn.gold{background:var(--tie);border-color:var(--tie);color:#fff;box-shadow:none}
.page-tieban .btn:hover,.page-tieban .btn.gold:hover{background:var(--tie2);color:#fff;box-shadow:none}
.page-tieban .page > .form-row .btn.gold{border-radius:0;padding:var(--sp-1) var(--sp-3);margin-bottom:0}

/* 小节标题：随墨档、宋体、宽字距；缺这条会回落到全站鎏金 700 粗。
   字号与模块上距由通用段 .rel-title 给；紧跟说明行时把说明的上距补到 --sp-2 */
.page-tieban .rel-title{color:var(--tie-deep)}
.page-tieban #out h3.rel-title + .sub-note{margin-top:var(--sp-2)}

/* 表格：一条通配淡染，单元格描边是本页唯一保留的四边小件。
   包表的容器（基础信息 .tb-lead、八刻表 .ke-wrap）一律不画线，边界由表框承担 */
.page-tieban .tb-tb{width:100%;border-collapse:collapse;margin-top:var(--sp-2);font-size:var(--tier4)}
.page-tieban .tb-tb th,.page-tieban .tb-tb td{border:1px solid var(--tie-line);padding:5px 8px;text-align:left;line-height:1.6;font-weight:400}
.page-tieban .tb-tb th{background:var(--tie-tint);color:var(--tie-deep);white-space:nowrap}
.page-tieban .tb-tb td{background:transparent;color:var(--tie-ink)}
.page-tieban .tb-tb td:first-child,.page-tieban .tb-tb th:first-child{white-space:nowrap;width:1%}
.page-tieban .tb-tb td.tb-group{color:var(--tie2);white-space:normal;width:auto}
.page-tieban .tb-read td:first-child{color:var(--tie2)}
/* 真典断语表：断语列占余宽随文折行，出处列宽按内容量取后由页内脚本写入 */
.page-tieban table.tb-cite{table-layout:fixed}
.page-tieban table.tb-cite th:first-child,.page-tieban table.tb-cite td:first-child{white-space:normal;word-break:break-word;overflow-wrap:anywhere;width:auto}
.page-tieban table.tb-cite th:nth-child(2),.page-tieban table.tb-cite td:nth-child(2){white-space:normal;word-break:break-word;overflow-wrap:anywhere}
.page-tieban .tb-flow{display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-4)}
.page-tieban .tb-prose{font-size:var(--tier4);line-height:1.9;margin:var(--sp-1) 0}
.page-tieban .cite{font-size:12px;color:var(--ink2)}
.page-tieban .gold-b{color:var(--tie2);font-weight:400}
.page-tieban .sub-note,.page-tieban .tb-note{color:var(--ink2)}
.page-tieban .tb-note{margin-top:var(--sp-1)}
/* 提示与说明框：提示是收束件，上下两条线夹出；说明框只有上边线 */
.page-tieban .notice{background:var(--tie-tint);border:0;border-top:1px solid var(--tie-line);border-bottom:1px solid var(--tie-line);border-radius:0;box-shadow:none;color:var(--tie-ink)}
.page-tieban .info-box{background:transparent;border:0;border-top:1px solid var(--tie-line);border-radius:0;box-shadow:none;color:var(--tie-ink)}

/* 考刻：四问一行流式排；八刻表列宽随内容，过宽时由容器横向滚动；命中行以淡底点出 */
.page-tieban .ke-quiz{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-3);margin:var(--sp-2) 0 var(--sp-1)}
.page-tieban .ke-quiz select{max-width:170px}
.page-tieban .ke-wrap{overflow-x:auto;margin-top:var(--sp-1)}
.page-tieban tr.ke-best td{color:var(--tie-deep);background:var(--tie-tint)}
.page-tieban .ke-star{border:0;border-top:1px solid var(--tie-brass);padding:var(--sp-2) 0;margin:var(--sp-3) 0 0;line-height:1.9;font-size:var(--tier4)}
.page-tieban .ke-adopt{padding:var(--sp-1) var(--sp-2);font-size:12px}
.page-tieban .hit-yes{color:var(--green);font-weight:400}

/* 表题：一句组内通则压在表上方，字号同表体，细则另起一行 */
.page-tieban .tb-cap{color:var(--tie2);font-size:var(--tier4);margin-top:var(--sp-2)}
.page-tieban .tb-cap .tb-cap-note{display:block;color:var(--tie-ink2);font-size:12px;line-height:1.7;margin-top:var(--sp-1)}

/* 条文九类：一卡一类，桌面三列并排，序号与条文同行、白话另起一行 */
.page-tieban .tw-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-3) var(--sp-5);margin-top:var(--sp-2)}
.page-tieban .tw-card{border:0;border-top:1px solid var(--tie-line);padding:var(--sp-2) 0;min-width:0;font-size:var(--tier4);line-height:1.7}
.page-tieban .tw-k{color:var(--tie2);font-family:var(--tie-serif);letter-spacing:.1em;margin-right:var(--sp-2)}
.page-tieban .tw-no{color:var(--ink2);margin-right:var(--sp-2)}
.page-tieban .tw-wen{font-size:var(--tier3);color:var(--tie-ink)}
.page-tieban .tw-bai{display:block;font-size:12px;color:var(--ink2);margin-top:var(--sp-1)}

/* 大运八步：两列并列，现行运以淡底点出 */
.page-tieban .dy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-2);margin-top:var(--sp-2)}
.page-tieban .dy-card{border:0;border-top:1px solid var(--tie-line);border-radius:0;padding:var(--sp-2) 0;background:transparent;box-shadow:none;font-size:var(--tier4);line-height:1.7;min-width:0}
.page-tieban .dy-card.cur{border-top-color:var(--tie);background:var(--tie-tint)}
.page-tieban .dy-card b{color:var(--tie2);font-weight:400;font-size:var(--tier3)}
.page-tieban .dy-card .dy-no{font-size:12px;color:var(--ink2)}
/* 流年表：今年行只以淡底区分，不另加标记 */
.page-tieban tr.ly-cur td{background:var(--tie-tint);color:var(--tie-deep)}

/* 河洛卦象：爻画取元素当前色，动爻落主色 */
.page-tieban .gua-fig{display:inline-flex;flex-direction:column;gap:var(--sp-1);margin-left:var(--sp-2);vertical-align:top}
.page-tieban .gua-yao{display:flex;align-items:center;font-size:12px;color:var(--ink2)}
.page-tieban .gua-yao .bar{height:3px;border-radius:0;background:currentColor}
.page-tieban .gua-yao .bar-yang{width:56px}
.page-tieban .gua-yao .bar-yin{width:26px}
.page-tieban .gua-yao .bar-yin + .bar-yin{margin-left:var(--sp-1)}
.page-tieban .gua-yao .yao-lab{margin-left:var(--sp-2)}
.page-tieban .gua-yao.dong{color:var(--tie)}

/* 折叠框：去白瓷卡，只留一条顶线承担与上方的分界（与择日页 .mh-ref 同口径） */
.page-tieban details.mh-ref{border-color:var(--tie-line)}
.page-tieban .mh-ref summary{cursor:pointer;color:var(--tie2)}
.page-tieban details.mh-ref table th,.page-tieban details.mh-ref table td{border-color:var(--tie-line)}
.page-tieban details.mh-ref table th{background:var(--tie-tint);color:var(--tie-deep)}
.page-tieban details.mh-ref table td{background:transparent}

/* 附加功能面板：上下细线夹出，下边线承担到免责声明的收束 */
.page-tieban .ai-block{border:0;border-top:1px solid var(--tie-line);border-bottom:1px solid var(--tie-line);border-radius:0;background:transparent;color:var(--tie-ink);box-shadow:none}
.page-tieban .ai-head{background:transparent;border-bottom-color:var(--tie-line)}
.page-tieban .ai-head h3{color:var(--tie2);font-family:var(--tie-serif);font-weight:400}
.page-tieban .ai-block .btn{border-radius:0}
.page-tieban .ai-block .btn.gold,.page-tieban .ai-block .btn.soft{background:var(--tie-tint);border-color:var(--tie-line);color:var(--tie-ink)}
.page-tieban .ai-block .btn.gold:hover,.page-tieban .ai-block .btn.soft:hover{background:var(--card);border-color:var(--tie);color:var(--tie2)}
.page-tieban .ai-tab{border-radius:0}
.page-tieban .ai-pane .ai-out{border-radius:0}
.page-tieban .ai-bubble{border-radius:0}
.page-tieban .ai-tab:hover{border-color:var(--tie);color:var(--tie2)}
.page-tieban .ai-tab.active{background:var(--tie);border-color:var(--tie);color:#fff}
.page-tieban .ai-tab.active:hover{background:var(--tie2);border-color:var(--tie2);color:#fff}
.page-tieban .ai-bubble.user{background:var(--tie-tint);border-color:var(--tie)}
.page-tieban .ai-bubble.assistant{border-color:var(--tie-line)}
.page-tieban .ai-model-row:hover{background:var(--tie-tint)}
.page-tieban .ai-block input,.page-tieban .ai-block select{color:var(--tie-ink)}

@media(max-width:1024px){
  .page-tieban .tw-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px){
  .page-tieban .dy-grid,.page-tieban .tw-grid{grid-template-columns:1fr}
  .page-tieban .tb-tb th,.page-tieban .tb-tb td{padding:4px 5px}
  .page-tieban .ke-quiz select{max-width:100%}
  /* 起课问答行的行内横向间距取移动端更小档 --sp-2，与全站表单行窄屏取值同档 */
  .page-tieban .ke-quiz{gap:var(--sp-2)}
  /* 折叠框内的说明表：窄屏放不下十一字的步骤名，两列改标签在上、说明在下，标签压淡底作行首 */
  .page-tieban details.mh-ref .tb-tb,.page-tieban details.mh-ref .tb-tb tbody,
  .page-tieban details.mh-ref .tb-tb tr,.page-tieban details.mh-ref .tb-tb td{display:block;width:auto}
  .page-tieban details.mh-ref .tb-tb td:first-child{background:var(--tie-tint);color:var(--tie2);border-bottom:0}
  .page-tieban details.mh-ref .tb-tb td+td{border-top:0}
  .page-tieban details.mh-ref .tb-tb tr+tr td:first-child{border-top:0}
  /* 出生地组的字段宽度与流式换行由全站 .birth-group.compact 窄屏规则承担，此处只收日期框定宽 */
  .page-tieban .birth-group .field label{white-space:nowrap}
  .page-tieban #dInput{width:96px}
}
@media print{
  .page-tieban .tb-tb th,.page-tieban .tb-tb td{background:var(--card);border-color:var(--line);color:var(--ink)}
}


/* ===== 页级样式：wannianli（page-wnl）===== */
/* 页头：卷首式（对齐首页 .hm-head 骨架：上下细线夹题、末尾竖线收束） */
.page-wnl .page h1{color:var(--wnl-deep);font-family:var(--wnl-serif);font-size:23px;
  letter-spacing:.3em;text-indent:.3em;text-align:center;line-height:1.3}
/* 标题上下各一条 88px 细线（首页以线夹题记，此处夹站名），线宽随字不铺满版面 */
.page-wnl .page h1::before{content:'';display:block;width:88px;height:1px;background:var(--wnl-line);margin:0 auto var(--sp-3)}
.page-wnl .page h1::after{content:'';display:block;width:88px;height:1px;background:var(--wnl-line);margin:var(--sp-3) auto 0}
.page-wnl .page .lead{color:var(--wnl-ink2);text-align:center;font-size:12.5px;letter-spacing:.22em;text-indent:.22em;margin-top:var(--sp-3)}
/* 页头末尾竖线收束（首页 .hm-head::after 同款） */
.page-wnl .page .lead::after{background:var(--wnl-line)}

/* 日期检索行：居中成一条查询带（对齐首页卷首干支行的居中 flex 骨架），去全宽底线（页头竖线已收束） */
.page-wnl .page > .form-row{
  background:none;border:0;border-radius:0;
  padding:0;margin-top:var(--sp-2);margin-bottom:0;box-shadow:none;
  align-items:center;justify-content:center;
}
/* 字段由竖排转横排：标签与控件同行。控件宽度仍由 .dt-input 的 96px 定宽决定，不随容器伸展 */
.page-wnl .page > .form-row .field{flex:0 0 auto;width:auto;max-width:none;
  flex-direction:row;align-items:center;gap:var(--sp-2)}
/* 控件与全站同高 30px（通用段给出），内边距横向取 10px，宽度仍守 96px 定宽 */
.page-wnl .page > .form-row .field .dt-wrap{width:auto}
.page-wnl .page > .form-row .field label{color:var(--wnl2);font-weight:400;margin:0;white-space:nowrap}
.page-wnl .page > .form-row .field input{border-color:var(--wnl-line);border-radius:0;padding:4px 10px;
  transition:border-color .15s,box-shadow .15s}
.page-wnl .page > .form-row .field input:focus{border-color:var(--wnl);outline:none}
/* "今天"按钮：黛青实色直角，无投影；检索行已 align-items:center，撤销 .cal-page 的 2px 底部补偿 */
.page-wnl .page > .form-row .btn.gold{background:var(--wnl);border-radius:0;padding:5px 14px;box-shadow:none;margin-bottom:0}
.page-wnl .page > .form-row .btn.gold:hover{background:var(--wnl2)}
/* 全页按钮兜底：未单列的按钮一律实底白字，不落回全站鎏金 */
.page-wnl .btn,.page-wnl .btn.gold{background:var(--wnl);border-color:var(--wnl);color:#fff;box-shadow:none}
.page-wnl .btn:hover,.page-wnl .btn.gold:hover{background:var(--wnl2);color:#fff;box-shadow:none}

/* 年月导航：标题换宋体加字距（与页头同族）；箭头钮去框去底成纯字符，悬停只给青瓷淡底 */
.page-wnl .cal-nav{margin:var(--sp-3) 0 var(--sp-2)}
.page-wnl .cal-title{color:var(--wnl-deep);font-family:var(--wnl-serif);font-weight:400;font-size:19px;letter-spacing:.2em;text-indent:.2em;padding:0 var(--sp-2)}
.page-wnl .nav-btn{background:transparent;border-color:transparent;color:var(--wnl);border-radius:0}
.page-wnl .nav-btn:hover{background:var(--wnl-tint);border-color:transparent;color:var(--wnl2);box-shadow:none}
.page-wnl .nav-btn:focus-visible{border-color:var(--wnl);outline:none}

/* 日历面板：去四周框改线（首页骨架为线不为框），只留星期行下一条线；内边距归零让格网贴齐容器 */
.page-wnl .cal-grid .wd{color:var(--wnl);font-family:var(--wnl-serif);font-weight:400;
  letter-spacing:.12em;border-bottom:1px solid var(--wnl-line);padding-bottom:var(--sp-1)}
/* 今日：黛青实色直角块，无投影；主位由满填承担，不靠阴影 */
.page-wnl .cal-cell.today{background:var(--wnl);box-shadow:none}
.page-wnl .cal-cell.today.zhai{background:var(--wnl)}
/* 选中：青瓷淡染 + 黛青细描（原棕褐色换青瓷） */
.page-wnl .cal-cell.selected:not(.today){background:var(--wnl-tint);border-color:var(--wnl)}
/* hover 不落在今日格上：否则同特异性后来覆盖黛青底，白字配浅底不可读；今日格悬停改加深黛青 */
.page-wnl .cal-cell:hover:not(.today){background:#e7f0f0}
.page-wnl .cal-cell.today:hover{background:var(--wnl2)}
/* 格内色轴收敛为三条：节日红（喜庆）、节气青碧（自然节点）、农历墨灰（正文）。
   左上角小色条（全局 .cal-cell::before）属装饰性色标，本页取消：节气由右上「节/气」角标承载，
   节日由红字承载，窄屏红字隐去后由左上红色「节」角标承载，信息不丢 */
.page-wnl .cal-cell::before{display:none}
.page-wnl .cal-cell .jq-mark{color:#1f7a68}
.page-wnl .cal-cell .slot-jq{color:#1f7a68}
.page-wnl .cal-cell .slot-fest{color:var(--red)}
.page-wnl .cal-cell .ld{color:var(--wnl-ink2)}
.page-wnl .cal-cell.weekend .sd-num{color:var(--red)}

/* 详情区卷首带：上下细线夹出（对齐首页 .hm-head 上下线骨架），无框无底 */
.page-wnl .today-card{
  position:relative;overflow:hidden;
  background:transparent;
  border:0;border-top:1px solid var(--wnl-line);border-bottom:1px solid var(--wnl-line);
  border-radius:0;
  box-shadow:none;
  padding:var(--sp-4) 0;
}
/* 卷首竖排居中：公历小字在上、日期大字在下，再接农历（对齐首页卷首的公历转农历次第） */
.page-wnl .today-top{flex-direction:column;gap:var(--sp-3)}
.page-wnl .big-date{display:flex;flex-direction:column-reverse;align-items:center}
.page-wnl .big-date .d{color:var(--wnl);font-family:var(--wnl-serif);font-weight:400;font-size:42px}
.page-wnl .big-date .ym{font-size:12.5px;letter-spacing:.2em;text-indent:.2em;color:var(--wnl-ink2)}
.page-wnl .lunar-info .ln{color:var(--wnl-deep);font-family:var(--wnl-serif);font-weight:400;
  font-size:22px;letter-spacing:.14em;text-indent:.14em}
.page-wnl .lunar-info .zodiac{font-size:12px;letter-spacing:.06em;color:var(--wnl-ink2);margin-top:var(--sp-2)}

/* 日历格日期数字同步墨青灰；周末红/今日白不受影响 */
.page-wnl .cal-cell:not(.weekend):not(.today) .sd-num{color:var(--wnl-ink)}
.page-wnl .sub-note{color:var(--wnl-ink2)}
/* 小节标题：本页无鎏金，标题须随墨黛色、宋体宽字距（对齐老黄历同一口径）。
   缺此规则时，本页新引入的 .rel-title 会回落到全站默认的鎏金 700 粗，即为配色泄漏。 */
.page-wnl .rel-title{color:var(--wnl-deep)}
/* 基础信息：分栏字段流（形态对齐老黄历）；纳音、节气、时令、节日双栏，宜忌通栏；
   项内分段符电脑端为 0.9em 间隙、移动端整行换行。 */
.page-wnl .wnl-info{margin-top:var(--sp-3);columns:2;column-gap:var(--sp-5);
  font-size:14px;border-top:1px solid var(--wnl-line)}
.page-wnl .wnl-i{display:flex;gap:var(--sp-3);padding:var(--sp-2) 0;border-bottom:1px solid var(--wnl-line);
  break-inside:avoid;page-break-inside:avoid}
.page-wnl .wnl-i.wide{column-span:all}
.page-wnl .wnl-i>.k{flex:0 0 88px;color:var(--wnl2);letter-spacing:.5px}
.page-wnl .wnl-i>.v{flex:1;min-width:0;color:var(--wnl-ink);line-height:1.7}
.page-wnl .wnl-i>.v.yi{color:var(--green)}
.page-wnl .wnl-i>.v.ji{color:var(--red)}
.page-wnl .wnl-info .wnl-br{display:inline-block;width:.9em}
/* 纳音干支五行项整体不拆行，折行只发生在项与项之间 */
.page-wnl .ngw{white-space:nowrap}

/* 附加功能面板：去框改线，上下各一条线夹出（与卷首带 .today-card 同款）；面板是页尾元素，下边线承担「内容→免责声明」的收束，不可省——去下边线会露出 .ai-body 的 12px 底内边距，底部空白比有下框线的页面多 12px（仅 page-wnl 作用域，他页不动） */
.page-wnl .ai-block{
  border:0;border-top:1px solid var(--wnl-line);border-bottom:1px solid var(--wnl-line);border-radius:0;
  background:transparent;color:var(--wnl-ink);
  box-shadow:none;
}
.page-wnl .ai-head{
  background:transparent;
  border-bottom-color:var(--wnl-line);
}
.page-wnl .ai-head h3{color:var(--wnl2);font-family:var(--wnl-serif);font-weight:400}
.page-wnl .ai-head .ai-status{color:var(--wnl-ink2)}
/* 按钮语义：AI 解析=黛青实底主按钮，全面板唯一强调色；配置模型与 soft 同档=青瓷描边次按钮（面板内不再有第二块实底色） */
.page-wnl .ai-block .btn{background:var(--wnl);border-radius:0}
.page-wnl .ai-block .btn:hover{background:var(--wnl2)}
.page-wnl .ai-block .btn.gold,.page-wnl .ai-block .btn.soft{background:var(--wnl-tint);border-color:var(--wnl-line);color:var(--wnl-ink)}
.page-wnl .ai-block .btn.gold:hover,.page-wnl .ai-block .btn.soft:hover{background:var(--card);border-color:var(--wnl);color:var(--wnl2)}
/* 对话区（配置模型后出现）：标签页/气泡随主题换色，圆角归零与本页一致 */
.page-wnl .ai-tab{border-radius:0}
.page-wnl .ai-pane .ai-out{border-radius:0}
.page-wnl .ai-bubble{border-radius:0}
.page-wnl .ai-tab:hover{border-color:var(--wnl);color:var(--wnl2)}
.page-wnl .ai-tab.active{background:var(--wnl);border-color:var(--wnl);color:#fff}
.page-wnl .ai-tab.active:hover{background:var(--wnl2);border-color:var(--wnl2);color:#fff}
.page-wnl .ai-bubble.user{background:var(--wnl-tint);border-color:var(--wnl)}
.page-wnl .ai-bubble.assistant{border-color:var(--wnl-line)}
.page-wnl .ai-model-row:hover{background:var(--wnl-tint)}
.page-wnl .ai-tip{color:var(--wnl-ink2)}
.page-wnl .ai-block .ai-out,.page-wnl .ai-block .ai-bubble.user,.page-wnl .ai-block .ai-bubble.assistant,.page-wnl .ai-block .ai-model-name{color:var(--wnl-ink)}
.page-wnl .ai-block input,.page-wnl .ai-block select{color:var(--wnl-ink)}

/* 手机端：卷首字号回退一档，信息块间距收紧 */
@media(max-width:640px){
  .page-wnl .big-date .d{font-size:36px}
  .page-wnl .lunar-info .ln{font-size:19px}
  /* 窄屏：字段流转单栏，分段符由 0.9em 间隙改整行换行 */
  .page-wnl .wnl-info{columns:1}
  .page-wnl .wnl-info .wnl-br{display:block;height:0;width:0}
}

/* 打印：恢复素底、去阴影（info-box 已有全局打印规则，此处补面板与大卡） */
@media print{
  .page-wnl .cal-grid,.page-wnl .today-card{background:var(--card) !important;box-shadow:none !important}
  .page-wnl .cal-grid .wd{border-bottom-color:var(--line)}
  .page-wnl .wheel-wheels{background:transparent !important}
}


.page-wnl .wnl-yiji{display:flex;gap:var(--sp-2);grid-column:1/-1;margin-top:var(--sp-3)}
.page-wnl .wnl-yiji .info-box{flex:1;min-width:0}
/* ===== 页级样式：xiaoliuren（page-xlr）===== */
/* 检索行：下边距收至 8px，与铁板、皇极等排盘页同款节奏 */
.page-xlr .page > .form-row{margin-bottom:var(--sp-2)}
/* 小六壬页内视觉定制：掌诀区结构样式在 style.css .xlr-*，此处仅补本页结果卡的版式 */
.page-xlr .xlr-ref .mh-ref{background:transparent}
.page-xlr .xlr-ref .mh-method{margin-bottom:var(--sp-1)}
.page-xlr .today-card{background:transparent;border:0;border-top:1px solid var(--xlr-line);border-bottom:1px solid var(--xlr-line);border-radius:0;box-shadow:none}
.page-xlr .today-card .today-top>div{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:var(--sp-2)}
.page-xlr .today-card .xlr-result-name{margin:0}
.page-xlr .today-card .zodiac{color:var(--ink2);font-size:12px;white-space:nowrap;margin:0}
.page-xlr .xlr-num-input{width:80px}
.page-xlr .xlr-char-input{width:150px}
.page-xlr .xlr-line-note{margin:var(--sp-1) 2px 0}
.page-xlr .xlr-alt-note{color:var(--ink2);font-size:11px}
.page-xlr .xlr-rel-note{color:var(--ink2);font-size:12px}
.page-xlr .xlr-result-host{flex:1}
.page-xlr .xlr-result-luck{font-size:15px;opacity:.85}



/* 小六壬：排盘流程、掌诀图、六宫总览与占类专断（结构样式唯一来源，页面内不再重复定义） */
.page-xlr .luck-吉{color:var(--green)}
.page-xlr .luck-凶{color:var(--red)}
.page-xlr .xlr-flow{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:var(--sp-1);margin:var(--sp-2) 0}
.page-xlr .xlr-step{text-align:center}
.page-xlr .xlr-step-lbl{font-size:12px;color:var(--xlr-ink2);margin-bottom:var(--sp-1)}
.page-xlr .xlr-gong{border:1px solid var(--xlr-line);border-radius:0;padding:var(--sp-2) var(--sp-3);background:transparent;box-shadow:none;min-width:96px;transition:background .15s}
.page-xlr .xlr-gong:hover{background:var(--gold-bg)}
.page-xlr .xlr-name{font-size:20px;font-weight:700}
.page-xlr .xlr-meta{font-size:11px;color:var(--xlr-ink2);margin-top:var(--sp-1)}
.page-xlr .xlr-arrow{font-size:20px;color:var(--xlr2)}
.page-xlr .xlr-result-name{font-size:26px;font-weight:700}
.page-xlr .xlr-ref{margin:var(--sp-2) 0 var(--sp-1)}
.page-xlr .xlr-ref-grid{display:flex;flex-direction:column;gap:var(--sp-2)}
.page-xlr .xlr-palm-wrap{display:flex;justify-content:center;margin-bottom:var(--sp-2)}
.page-xlr .xlr-palm{display:inline-flex;flex-direction:column;align-items:center;gap:var(--sp-2)}
.page-xlr .xlr-palm-cap{font-size:13px;color:var(--xlr-ink2);line-height:1.5;margin-top:var(--sp-1)}
.page-xlr .xlr-palm-fingers{display:flex;gap:var(--sp-2);align-items:flex-start}
.page-xlr .xlr-palm-col{display:flex;flex-direction:column;gap:var(--sp-1);align-items:stretch}
.page-xlr .xlr-palm-finger{font-size:11px;color:var(--xlr2);text-align:center;font-weight:400}
.page-xlr .xlr-palm-cell{border:1px solid var(--xlr-line);border-radius:0;background:transparent;box-shadow:none;padding:var(--sp-3) var(--sp-2);display:flex;flex-direction:column;align-items:center;gap:2px;min-width:60px;min-height:96px;transition:background .15s}
.page-xlr .xlr-palm-cell:hover{background:var(--gold-bg)}
.page-xlr .xlr-palm-num{font-size:11px;color:var(--xlr-ink2);line-height:1.2}
.page-xlr .xlr-palm-nm{font-size:16px;font-weight:700;line-height:1.25;border-top:1px solid var(--xlr-line);margin:var(--sp-1) auto 0;padding-top:var(--sp-2);width:62%;text-align:center}
.page-xlr .xlr-palm-seg{font-size:10px;color:var(--xlr-ink2);line-height:1.2;margin-top:var(--sp-1)}
/* 表格：线条模式，只留行线与容器顶线，左右与竖线一律不画（同历法页基础信息条） */
.page-xlr .xlr-table-wrap{overflow-x:auto;max-width:100%}
.page-xlr .xlr-table{width:100%;border-collapse:collapse;font-size:13px;border-top:1px solid var(--xlr-line)}
.page-xlr .xlr-table th,.page-xlr .xlr-table td{border:0;border-bottom:1px solid var(--xlr-line);padding:6px 8px;text-align:left}
.page-xlr .xlr-table th{background:transparent;color:var(--xlr2);font-weight:400}
.page-xlr .xlr-table td{color:var(--xlr-ink)}
/* 合参合断：键值表，键列取历法页基础信息条的同款定宽；th 不上底色，与基础信息表同款 */
.page-xlr .xlr-hecan-tbl tbody th{white-space:nowrap;width:88px}
.page-xlr .xlr-table .xlr-hecan-td{text-align:left;font-weight:400;line-height:1.8}
.page-xlr .xlr-hecan-tbl th{font-weight:400;color:var(--xlr2);vertical-align:top}
@media(max-width:600px){
  .page-xlr .xlr-palm-fingers{gap:var(--sp-2)}
  .page-xlr .xlr-palm-nm{width:auto}
  .page-xlr .xlr-table th,.page-xlr .xlr-table td{padding:5px 4px}
  .page-xlr .xlr-table th{white-space:nowrap;min-width:3.2em}
  .page-xlr .xlr-table .xlr-hecan-td{white-space:normal;word-break:break-word}
  .page-xlr .xlr-table-wrap table{width:max-content;min-width:100%}
  .page-xlr .xlr-table-wrap{padding-bottom:var(--sp-4)}
}
.page-xlr .xlr-section{margin-top:var(--sp-4)}
.page-xlr .xlr-section>h4{margin:0 0 var(--sp-2);font-size:15px;color:var(--xlr-ink)}
.page-xlr .xlr-hecan{border:0;border-top:1px solid var(--xlr-line);border-radius:0;padding:var(--sp-2) 0;background:transparent;box-shadow:none;margin-top:var(--sp-3);font-size:13px;line-height:1.6}
.page-xlr .xlr-hecan .hc-row{display:flex;gap:var(--sp-2);flex-wrap:wrap;margin-top:var(--sp-1)}
.page-xlr .xlr-hecan .hc-pill{border-radius:0;padding:var(--sp-1) var(--sp-2);font-size:12px;border:1px solid var(--xlr-line);background:transparent}
.page-xlr .xlr-math{border:0;border-top:1px solid var(--xlr-line);border-radius:0;padding:var(--sp-2) 0;background:transparent;box-shadow:none;margin-top:var(--sp-3);font-size:13px;line-height:1.8}
.page-xlr .xlr-math code{background:var(--xlr-tint);padding:1px var(--sp-1);border-radius:0;color:var(--red2);font-weight:700}
.page-xlr .xlr-note{font-size:12px;color:var(--xlr-ink2);margin-top:var(--sp-1)}

.page-xlr .page h1{color:var(--xlr-deep);font-family:var(--xlr-serif);font-size:23px;letter-spacing:.3em;text-indent:.3em;text-align:center;line-height:1.3}/* 页头细线：上下各一条 88px 夹题，卷首说明末尾 26px 竖线收束（规则档第三条） */
.page-xlr .page h1::before{content:'';display:block;width:88px;height:1px;background:var(--xlr-line);margin:0 auto var(--sp-3)}
.page-xlr .page h1::after{content:'';display:block;width:88px;height:1px;background:var(--xlr-line);margin:var(--sp-3) auto 0}
.page-xlr .page .lead::after{background:var(--xlr-line)}

.page-xlr .page .lead{color:var(--xlr-ink2);text-align:center;font-size:12.5px;letter-spacing:.22em;text-indent:.22em;margin-top:var(--sp-3)}
.page-xlr .rel-title{color:var(--xlr2)}
.page-xlr .sub-note{color:var(--xlr-ink2)}
.page-xlr .notice{color:var(--xlr-ink);border:1px solid var(--xlr-line);background:var(--xlr-tint)}
.page-xlr .xz-note{border:1px solid var(--xlr-line)}

.page-xlr .field label{color:var(--xlr2);font-weight:400}
.page-xlr .field input,.page-xlr .field select{border-color:var(--xlr-line);background:var(--card);color:var(--xlr-deep)}
.page-xlr .field input:focus,.page-xlr .field select:focus{border-color:var(--xlr);outline:none}

.page-xlr .btn{background:var(--xlr)}
.page-xlr .btn:hover{background:var(--xlr2)}


/* 附加功能面板（基础款） */
.page-xlr .ai-block{border:0;border-top:1px solid var(--xlr-line);border-bottom:1px solid var(--xlr-line);border-radius:0;background:transparent;color:var(--xlr-ink);box-shadow:none}
.page-xlr .ai-head{background:transparent;border-bottom-color:var(--xlr-line)}
.page-xlr .ai-head h3{color:var(--xlr2)}
.page-xlr .ai-block .btn{background:var(--xlr);color:#fff}
.page-xlr .ai-block .btn:hover{background:var(--xlr2)}
.page-xlr .ai-block .btn.gold,.page-xlr .ai-block .btn.soft{background:var(--xlr-tint);border-color:var(--xlr-line);color:var(--xlr-ink);box-shadow:none}
.page-xlr .ai-block .btn.gold:hover,.page-xlr .ai-block .btn.soft:hover{background:var(--card);border-color:var(--xlr);color:var(--xlr2)}
.page-xlr .ai-block .ai-out,.page-xlr .ai-block .ai-bubble.user,.page-xlr .ai-block .ai-bubble.assistant,.page-xlr .ai-block .ai-model-name,.page-xlr .ai-block input,.page-xlr .ai-block select{color:var(--xlr-ink)}
.page-xlr .ai-tab.active{background:var(--xlr);border-color:var(--xlr);color:#fff}
.page-xlr .ai-bubble.user{background:var(--xlr-tint);border-color:var(--xlr)}
.page-xlr .ai-bubble.assistant{border-color:var(--xlr-line)}
/* 打印：恢复素底 */
@media print{
  .page-xlr .xlr-table th,.page-xlr .xlr-hecan-tbl th{background:var(--card) !important}
}
/* ===== 页级样式：xingxiu（page-xx）===== */
/* 三列以上的数据表不得被压成单字列：最小宽保底，由 .xx-tbl-wrap 横向滚动兜底。两列表不在此列 */
.page-xx .xx-tbl:has(tr>*:nth-child(3)){min-width:560px}
/* 检索行：下边距收至 8px，与铁板、皇极等排盘页同款节奏 */
.page-xx .mod .form-row{margin-bottom:var(--sp-2)}
.page-xx .page h1{color:var(--xx-deep);font-family:var(--xx-serif);font-size:23px;letter-spacing:.3em;text-indent:.3em;text-align:center;line-height:1.3}/* 页头细线：上下各一条 88px 夹题，卷首说明末尾 26px 竖线收束（规则档第三条） */
.page-xx .page h1::before{content:'';display:block;width:88px;height:1px;background:var(--xx-line);margin:0 auto var(--sp-3)}
.page-xx .page h1::after{content:'';display:block;width:88px;height:1px;background:var(--xx-line);margin:var(--sp-3) auto 0}
.page-xx .page .lead::after{background:var(--xx-line)}

.page-xx .page .lead{color:var(--xx-ink2);text-align:center;font-size:12.5px;letter-spacing:.22em;text-indent:.22em;margin-top:var(--sp-3)}
.page-xx .sub-note{color:var(--xx-ink2)}
/* 模块题名上方补一条通栏上线：三个查询模块是裸 h2.mod-title，没有 .mod-head，缺了全站一级模块题头那条长横线。
   原写 .page-xx .mod{border-color} 属死规则，section.mod 已被去框，只给 border-color 不显线，故改挂在题名上 */
.page-xx .mod>.mod-title{border-top:1px solid var(--xx-line);padding-top:var(--sp-2)}

.page-xx .field label{color:var(--xx2)}
.page-xx .field input,.page-xx .field select{border-color:var(--xx-line);background:var(--card);color:var(--xx-deep)}
.page-xx .field input:focus,.page-xx .field select:focus{border-color:var(--xx);outline:none}

/* 主按钮（推算本命宿、演禽）夜穹靛蓝实底 */
.page-xx .btn,.page-xx .btn.gold{background:var(--xx);border-color:var(--xx);color:#fff;box-shadow:none}
.page-xx .btn:hover,.page-xx .btn.gold:hover{background:var(--xx2);border-color:var(--xx2);color:#fff;box-shadow:none}

/* ── 本页私有件：宿位表、结果卡、标签徽标、示意星图 ──
   原先分作三处（主题段、通用段、页级段）且无页类权重，现按规则档第十一条并入本段，一律带 .page-xx 实权重。
   四象与吉凶的语义色块按第 1.4 条保留，只收字号、间距与键列定宽。 */
/* 宿位表：一条通配淡染（规则档第八条），首列与表头居中，长文列给最小宽由 .xx-tbl-wrap 横滚兜底 */
.page-xx .xx-tbl-wrap{margin-top:var(--sp-2);overflow-x:auto}
.page-xx .xx-tbl{width:100%;border-collapse:collapse;font-size:var(--tier3);line-height:1.7}
.page-xx .xx-tbl th,.page-xx .xx-tbl td{border:1px solid var(--xx-line);padding:6px 9px;vertical-align:top;text-align:left;color:var(--xx-ink)}
/* 宫次分野表的国、州两列是二字定名：自动布局下被长文列压到一个字宽而折成两行，定名不折行，宽度由横滚兜底 */
.page-xx .xx-tbl:has(tr>*:nth-child(5)):not(:has(tr>*:nth-child(6))) td:nth-child(3),.page-xx .xx-tbl:has(tr>*:nth-child(5)):not(:has(tr>*:nth-child(6))) td:nth-child(4){white-space:nowrap}
.page-xx .xx-tbl thead th{background:var(--xx-tint);color:var(--xx2);font-weight:400;text-align:center;white-space:nowrap}
.page-xx .xx-tbl .xx-c0{text-align:center;white-space:nowrap}
.page-xx .xx-tbl .xx-tag{white-space:nowrap}
.page-xx .xx-tbl .xx-song-cell,.page-xx .xx-tbl .xx-note-cell{color:var(--xx-ink2);font-size:var(--tier4);line-height:1.6}
.page-xx .xx-tbl .xx-song-cell{min-width:14em}
.page-xx .xx-tbl .xx-note-cell{min-width:10em}
.page-xx .xx-tbl .xx-yi{color:var(--green)}
.page-xx .xx-tbl .xx-ji{color:var(--red)}
.page-xx .xx-fold .xx-tbl-wrap{margin-top:var(--sp-2)}
/* 日期字段按内容定宽：定死 170px 会比内容所需的 135px 多出一段空白，图标右缘不贴边（规则档 0.5） */
.page-xx .xx-field-date{flex:0 0 auto}
/* 标签徽标：吉凶与四象为语义色，保留色块；字重统一 400，与页内加粗收敛同口径 */
.page-xx .xx-tag{display:inline-block;padding:1px var(--sp-2);border-radius:0;font-size:12px;line-height:1.6;vertical-align:middle;font-weight:400}
.page-xx .xx-tag-yao,.page-xx .xx-tag-qiyuan{background:var(--gold-bg);color:var(--gold2)}
.page-xx .xx-tag-xiang{background:#f1f1ee;color:var(--xx-ink2)}
.page-xx .xx-luck-j{background:rgba(46,125,50,.12);color:var(--green)}
.page-xx .xx-luck-x{background:rgba(184,74,58,.12);color:var(--red)}
.page-xx .xx-luck-m{background:rgba(58,67,86,.14);color:var(--xx2)}
.page-xx .xx-青龙{background:rgba(46,125,50,.14);color:#1f6b2c}
.page-xx .xx-玄武{background:rgba(37,99,160,.14);color:#235f9b}
.page-xx .xx-白虎{background:rgba(120,120,120,.16);color:#555}
.page-xx .xx-朱雀{background:rgba(184,74,58,.14);color:var(--red)}
/* 结果卡（本命宿、演禽、本日值宿）：去框改线只留顶线；键值行键列定宽 88px，与全站甲型键值表同口径 */
.page-xx .xx-card{margin-top:var(--sp-2);border:0;border-top:1px solid var(--xx-line);border-radius:0;background:transparent;box-shadow:none;padding:var(--sp-3) 0}
/* 卡内行线：题名行与每个键值行各压一条细线，与站内有行线的键值表同貌；行盒约 30px，线距远超 12px 判据 */
.page-xx .xx-card-h{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-2);margin-bottom:var(--sp-2);padding-bottom:var(--sp-1);border-bottom:1px solid var(--xx-line)}
.page-xx .xx-card-row{display:flex;gap:var(--sp-2);padding:var(--sp-1) 0;font-size:var(--tier3);line-height:1.6}
/* 行线只给卡内的键值行：今日太阳一行借 .xx-card-row 单独用在折叠区里，那里不压线 */
.page-xx .xx-card .xx-card-row{border-bottom:1px solid var(--xx-line)}
/* 卡内最后一行不压线：否则会与下一张卡的顶线或歌诀的虚线挨成两条 */
.page-xx .xx-card .xx-card-row:last-child{border-bottom:0}
.page-xx .xx-card-row span{color:var(--xx-ink2);min-width:88px;flex:none}
/* 值串断行落在顿号与分号处，末字不再独占一行 */
.page-xx .xx-card-row b{font-weight:400;color:var(--xx2);word-break:keep-all}
/* 歌诀：次级墨色 13px，上距 12px 与上方键值行分野，不另压线 */
.page-xx .xx-card-song{margin-top:var(--sp-3);color:var(--xx-ink2);font-size:var(--tier4);line-height:1.7}
.page-xx .xx-quote{margin-top:var(--sp-2);background:var(--xx-tint);border-radius:0;padding:var(--sp-2) var(--sp-3);font-size:var(--tier4);color:var(--xx-ink2);line-height:1.8}
.page-xx .xx-empty{margin-top:var(--sp-2);color:var(--xx-ink2);font-size:var(--tier3)}
.page-xx .xx-z3j-item{padding:2px 0}
.page-xx .xx-z3j-item .xx-tag{margin-right:var(--sp-1)}
.page-xx .xx-sun-row{margin-bottom:var(--sp-2)}
/* 宿名取主色深档：原取鎏金点缀，色相落在 30 至 60 度区间，与靛蓝主色相冲（配色铁律第 1.4 条） */
.page-xx .xx-xname{font-size:17px;font-weight:400;color:var(--xx2)}
/* 示意星图：画布与站内圆盘通用件同制式（440 见方、盘心 220），几何走 assets/wheel.js；
   容器挂 .wheel 类，故骨架元素（盘缘、盘心圈、刻度、宿名、盘心三行）走通用件 .w-* 规则，
   字族与色值按本页玄夜鎏金主题特化——夜幕底色以 clipPath 限制在盘内圆，圆外留纸本白底，
   圆形图版嵌入纸页（古籍星图语言），鎏金细圈收束图版外缘。 */
.page-xx .xx-sky{display:block;margin:var(--sp-3) auto 0;max-width:480px;width:100%;height:auto;border-radius:0;box-shadow:none}
/* 夜幕与散星、连金线、今日值宿高亮：色值与鎏金细节 */
.page-xx .xx-sky .sk-n1{stop-color:var(--sk-night1)}
.page-xx .xx-sky .sk-n2{stop-color:var(--sk-night2)}
.page-xx .xx-sky .sk-n3{stop-color:var(--sk-night3)}
.page-xx .xx-sky .sk-star{fill:var(--sk-star)}
.page-xx .xx-sky .sk-link{stroke:var(--sk-link);stroke-opacity:.42;stroke-width:1;fill:none}
.page-xx .xx-sky .sk-dot{fill:var(--sk-dot)}
.page-xx .xx-sky .sk-dot.is-today{fill:var(--sk-cur)}
.page-xx .xx-sky .sk-today-ring{stroke:var(--sk-cur)}
.page-xx .xx-sky .sk-today-star{fill:var(--sk-cur)}
/* 骨架元素走通用件 .w-* 形制 + 星图色：盘缘鎏金、内界圈冷蓝虚线、盘心圈、夜空底；与全站令牌对齐 */
.page-xx .xx-sky .w-ring{fill:none;stroke:var(--sk-ring);stroke-width:1.4;stroke-opacity:.7}
.page-xx .xx-sky .w-ring-in{stroke:var(--sk-ring2);stroke-opacity:.32;stroke-dasharray:2 5;fill:none}
.page-xx .xx-sky .w-core{fill:var(--sk-night1);stroke:var(--sk-ring);stroke-width:1;stroke-opacity:.5}
.page-xx .xx-sky .w-tick{stroke:var(--sk-ring);stroke-opacity:.5;stroke-width:1}
.page-xx .xx-sky .w-tick-j{stroke:var(--sk-ring);stroke-opacity:.95;stroke-width:1.6}
.page-xx .xx-sky .w-lab{font-size:13px;fill:var(--sk-name);font-family:var(--wheel-serif);letter-spacing:.04em}
.page-xx .xx-sky .w-lab.sk-xt{font-size:13px;letter-spacing:.32em}
.page-xx .xx-sky .w-lab.is-today{font-weight:700;fill:var(--sk-cur)}
.page-xx .xx-sky .w-c1{font-size:22px;letter-spacing:.18em;fill:var(--sk-cur);font-family:var(--wheel-serif)}
.page-xx .xx-sky .w-c2{font-size:12px;letter-spacing:.12em;fill:var(--sk-c2);font-family:var(--wheel-serif)}
.page-xx .xx-sky .w-c3{font-size:11px;letter-spacing:.3em;fill:var(--sk-c3);opacity:.8;font-family:var(--wheel-serif)}
/* 四象与今日值宿色：图内弧线、象名、宿点晕与图例色点同取一支，靠 currentColor 传导，故只写 color */
.page-xx .sk-青龙{color:var(--sk-青龙)}
.page-xx .sk-玄武{color:var(--sk-玄武)}
.page-xx .sk-白虎{color:var(--sk-白虎)}
.page-xx .sk-朱雀{color:var(--sk-朱雀)}
.page-xx .sk-cur{color:var(--sk-cur)}
/* 图注与图例：沿用通用件 .wheel-detail 的形制，色点取正圆 */
.page-xx .xx-sky-note{margin:0;font-size:12.5px;line-height:1.7;letter-spacing:.04em}
.page-xx .xx-sky-legend{margin:var(--sp-1) 0 0;font-size:12px;line-height:1.8}
.page-xx .xx-sky-legend .sk-lg{margin:0 var(--sp-2);white-space:nowrap}
.page-xx .xx-sky-legend .sk-lg::before{content:'';display:inline-block;width:8px;height:8px;border-radius:50%;background:currentColor;margin-right:4px;vertical-align:middle}
/* 容器别称与页类同在一个元素上，走附加形式，不可写作后代 */
.xx-page:where(.page-xx) .mod-title{color:var(--gold2)}
/* 窄屏：表与结果卡收字号，键列定宽降一档 */
@media(max-width:640px){
  .page-xx .xx-tbl{font-size:var(--tier4)}
  .page-xx .xx-tbl th,.page-xx .xx-tbl td{padding:5px 5px}
  .page-xx .xx-tbl .xx-c0{white-space:normal}
  .page-xx .xx-tbl .xx-song-cell,.page-xx .xx-tbl .xx-note-cell{font-size:12px}
  .page-xx .xx-card-row span{min-width:72px}
  /* 窄屏盘面收缩，图上字按同比例提一档，免得宿名缩到 8px 以下读不清 */
  .page-xx .xx-sky .w-lab{font-size:15px}
  .page-xx .xx-sky .w-c1{font-size:24px}
  .page-xx .xx-sky .w-c2,.page-xx .xx-sky .w-c3{font-size:13px}
  .page-xx .xx-sky-legend .sk-lg{margin:0 var(--sp-1)}
}

/* 折叠资料框：形制与题名由通用段给出，本页只补线色与表头淡底 */
.page-xx .mh-ref{border-color:var(--xx-line)}
.page-xx .mh-ref th{background:var(--xx-tint);color:var(--xx2)}

/* 附加功能面板（基础款） */
.page-xx .ai-block{
  border:0;border-top:1px solid var(--xx-line);border-bottom:1px solid var(--xx-line);border-radius:0;
  background:transparent;color:var(--xx-ink);box-shadow:none;
}
.page-xx .ai-head{background:transparent;border-bottom-color:var(--xx-line)}
.page-xx .ai-head h3{color:var(--xx2)}
.page-xx .ai-block .btn{background:var(--xx);color:#fff;box-shadow:none}
.page-xx .ai-block .btn:hover{background:var(--xx2)}
.page-xx .ai-block .btn.gold,.page-xx .ai-block .btn.soft{background:var(--xx-tint);border-color:var(--xx-line);color:var(--xx-ink);box-shadow:none}
.page-xx .ai-block .btn.gold:hover,.page-xx .ai-block .btn.soft:hover{background:var(--card);border-color:var(--xx);color:var(--xx2)}
.page-xx .ai-block .ai-out,.page-xx .ai-block .ai-bubble.user,.page-xx .ai-block .ai-bubble.assistant,.page-xx .ai-block .ai-model-name,.page-xx .ai-block input,.page-xx .ai-block select{color:var(--xx-ink)}
.page-xx .ai-tab.active{background:var(--xx);border-color:var(--xx);color:#fff}
.page-xx .ai-bubble.user{background:var(--xx-tint);border-color:var(--xx)}
.page-xx .ai-bubble.assistant{border-color:var(--xx-line)}
/* 打印：恢复素底 */
@media print{
  .page-xx .xx-tbl th,.page-xx .mh-ref th{background:var(--card) !important;border-color:var(--line) !important}
}

/* ===== 页级样式：xingzhan（page-xz）===== */
/* 表单行：字段按控件宽度依次流式排布，容器变窄即自然换行，不写死列位与列宽 */
.page-xz .xz-row-inputs .field{flex:0 0 auto;min-width:0}
.page-xz .xz-form .field input,.page-xz .xz-form .field select{box-sizing:border-box;max-width:100%;min-width:0}
/* 下距取 --sp-3：本行下方紧邻出生地组，其上线与上排控件的 1px 下边框是一对相邻平行线，
   间距全站统一为 12px，第二条判据的下限亦为 12px。 */
.page-xz .xz-row-inputs{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--sp-2) var(--sp-3);margin-bottom:var(--sp-3)}
.page-xz .xz-form .f-tz input{width:64px}
.page-xz .xz-btns{display:flex;gap:var(--sp-3);align-items:flex-end}
/* 双人合盘入口：勾选行与折叠的第二人资料区，同主表单字段宽度 */
.page-xz .xz-rel-chk{display:inline-flex;align-items:center;gap:var(--sp-1);margin:2px 0 var(--sp-2);font-size:13px;color:var(--xz-ink2);cursor:pointer;user-select:none}
.page-xz .xz-rel-chk input{width:auto;margin:0}
.page-xz .xz-rel2{padding:var(--sp-2) var(--sp-2) 0;border:1px dashed var(--xz-line);border-radius:0}
/* 核心解读表：每部分一张独立表，项目列窄、正文行距放宽 */
.page-xz table.xz-syn{margin:0 0 var(--sp-3)}
.page-xz table.xz-syn th:first-child{width:96px;white-space:nowrap}
.page-xz table.xz-syn tbody tr:first-child th{font-weight:700}
.page-xz table.xz-syn td{line-height:1.8}
.page-xz table.xz-syn b{color:var(--xz2);font-weight:400}
/* 大运说明文字：与表格字体一致，重点词取本页深档不加粗 */
.page-xz .xz-vedic{font-size:13px;line-height:1.8}
.page-xz .xz-vedic b{color:var(--xz2);font-weight:400}
.page-xz .xz-vedic b.hit{color:var(--red2)}
/* 现行大运行：提示淡底，比表头纸淡底更浅一档 */
.page-xz .xz-vedic tr.cur td{background:var(--xz-hl)}
/* Dosha 判定列：定宽居中，判定词单行显示 */
.page-xz table.xz-dosha th:nth-child(2),.page-xz table.xz-dosha td:nth-child(2){width:56px;min-width:56px;white-space:nowrap;text-align:center}
.page-xz .wheel-wrap{display:flex;justify-content:center;margin:var(--sp-4) 0}
/* 落星盘单盘占满栏宽：套 .wheel-wheels 会被压成半栏，故只给 .wheel-block 自身节奏 */
.page-xz .wheel-block{margin:var(--sp-4) 0}
.page-xz .xz-wheel{width:min(420px,92vw);height:auto}
.page-xz .xz-wheel line{stroke:var(--wheel-line);stroke-width:1}
.page-xz .xz-wheel .ring{stroke:var(--wheel-arc);fill:none;stroke-width:1.4}
.page-xz .xz-wheel .ring2{stroke:var(--wheel-line);fill:none;stroke-width:.8}
.page-xz .xz-wheel .hnum{fill:var(--wheel-ink2);font-size:11px;font-weight:400}
.page-xz .xz-wheel .sgn{fill:var(--wheel-deep);font-size:15px;font-weight:400}
.page-xz .xz-wheel .pl{fill:var(--wheel-ink);font-size:13px;font-weight:400}
.page-xz .xz-wheel .asc{stroke:var(--wheel-cur);stroke-width:2.2}
.page-xz .xz-wheel .asc-t{fill:var(--wheel-cur);font-size:10px;font-weight:400}
.page-xz table.xz-tbl{width:100%;border-collapse:collapse;font-size:13px;margin:var(--sp-1) 0}
/* 表格容器：表格宽于容器时横向滚动 */
.page-xz .xz-tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.page-xz table.xz-tbl th,.page-xz table.xz-tbl td{border:1px solid var(--xz-line);padding:7px 9px;text-align:left}
.page-xz table.xz-tbl th{background:var(--xz-tint);color:var(--xz-deep);font-weight:400;white-space:nowrap}
.page-xz table.xz-tbl td{color:var(--xz-ink)}
.page-xz table.xz-tbl td .el{font-size:11px;color:var(--xz-ink2)}
.page-xz .dg-庙{color:var(--green);font-weight:700}
.page-xz .dg-旺{color:#1b6fa8;font-weight:700}
.page-xz .dg-平{color:var(--xz-ink2)}
.page-xz .dg-弱,.page-xz .dg-落{color:#b3261e;font-weight:700}
.page-xz .house-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:var(--sp-2);margin-top:var(--sp-2)}
.page-xz .house-box{color:var(--xz-ink);border:0;border-top:1px solid var(--xz-line);border-radius:0;padding:var(--sp-2) 0 0}
.page-xz .house-box h4{color:var(--xz2);font-size:13px;margin-bottom:var(--sp-1)}
.page-xz .house-box .pls{color:var(--xz-ink);font-size:12px}
.page-xz .house-box .el{color:var(--xz-ink2);font-size:12px}
.page-xz .sect{margin-top:var(--sp-4)}
.page-xz .asp-row{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-1)}
.page-xz .asp-chip{font-size:12px;padding:var(--sp-1) var(--sp-2);border-radius:0;border:1px solid var(--xz-line);background:transparent}
.page-xz .asp-chip b{color:var(--red2)}
.page-xz .note-vedic{border:1px solid var(--xz-line);border-radius:0;padding:var(--sp-3) var(--sp-3);font-size:13px;line-height:1.7;color:var(--xz-ink)}
/* 三要素：三张独立表竖排，项目列定宽不换行；12em=156px ≥ 最长键列单行内容（↑上升 151px），
   桌面与窄屏同值，跨 640 断口首列宽度无缝衔接 */
.page-xz .tri{margin-top:var(--sp-2)}
.page-xz .xz-tri{margin-bottom:var(--sp-3)}
.page-xz table.xz-tri th:first-child{width:12em;white-space:nowrap}
/* 定位星链与相位表格：链条列允许折行但不加宽，说明列浅色小字 */
.page-xz table.xz-disp td:nth-child(4){min-width:120px}
.page-xz table.xz-disp td .el{white-space:normal}
/* 本盘指向徽标：本页深档描边小标签 */
.page-xz .xz-here{color:var(--xz2);display:inline-block;font-size:11px;padding:0 var(--sp-1);border:1px solid var(--xz2);border-radius:0;margin-left:var(--sp-1);white-space:nowrap}
/* 相位名：本页深档常规体 */
.page-xz table.xz-asp td.asp-name{color:var(--xz2)}
/* 指向性锚点：本盘对应行取提示淡底，与现行大运行同一体系 */
.page-xz table.xz-vedic-tbl tr.here td{background:var(--xz-hl)}
/* 尊贵列不换行（九曜表第5列、D9 表第4列、星体表第4列） */
.page-xz table.xz-vedic-tbl td:nth-child(5),.page-xz table.xz-vedic-tbl th:nth-child(5){white-space:nowrap}
.page-xz table.xz-d9 td:nth-child(4),.page-xz table.xz-d9 th:nth-child(4){white-space:nowrap}
.page-xz table.xz-planet td:nth-child(4),.page-xz table.xz-planet th:nth-child(4){white-space:nowrap}
/* 星体落座主表：星体、星座、元素、宫位、赤纬列单行显示，说明列占余下宽度 */
.page-xz table.xz-planet-main th:nth-child(1),.page-xz table.xz-planet-main td:nth-child(1),.page-xz table.xz-planet-main th:nth-child(2),.page-xz table.xz-planet-main td:nth-child(2),.page-xz table.xz-planet-main th:nth-child(3),.page-xz table.xz-planet-main td:nth-child(3),.page-xz table.xz-planet-main th:nth-child(5),.page-xz table.xz-planet-main td:nth-child(5),.page-xz table.xz-planet-main th:nth-child(6),.page-xz table.xz-planet-main td:nth-child(6){white-space:nowrap}
/* 对照类表（合盘与行运）：首列与标注单行的单元格保持一行 */
.page-xz table.xz-trtbl th:first-child,.page-xz table.xz-trtbl td:first-child,.page-xz table.xz-trtbl td.trt-nowrap{white-space:nowrap}
.page-xz .xz-1ln{white-space:nowrap}
/* 印度占星表：本盘指向列内容行距略收，通识列次级字色 */
.page-xz table.xz-vedic-tbl td .el{font-size:12px;color:var(--xz-ink2)}
/* 九曜表桌面端自适应：首列（星体、主曜等导航列）不换行，内容列随内容分配 */
.page-xz table.xz-vedic-tbl td:first-child,.page-xz table.xz-vedic-tbl th:first-child{white-space:nowrap}
.page-xz table.xz-vedic-tbl td:nth-child(2),.page-xz table.xz-vedic-tbl th:nth-child(2){white-space:nowrap}
.page-xz table.xz-vedic-tbl td:nth-child(3),.page-xz table.xz-vedic-tbl th:nth-child(3){white-space:nowrap}
/* 移动端表格：除键值表外的长表按内容定宽、单元格单行，由容器横向滚动； 三要素与速览类键值表填满视口，首列定宽、内容列折行 */
@media(max-width:640px){
  /* 十二宫格阵：桌面 minmax(230px,1fr) 在手机 326px 容器只排得下一列，12 个两行小格竖排近千像素；
     窄屏把最小列宽收到 124px，320 至 390 档均排两列、640 档排四列，桌面规则不动。 */
  .page-xz .house-grid{grid-template-columns:repeat(auto-fit,minmax(124px,1fr))}
  /* 长表（非键值表、非短三列表）列宽走全站契约，由容器横向滚动 */
  /* 短三列表（大运/副运/三级副运/年份轴）：与桌面端同逻辑，width:100% 填满父容器，各列自适应 */
  .page-xz table.xz-tbl.xz-fit{width:100%;max-width:100%;table-layout:auto}
  .page-xz table.xz-tbl.xz-fit th,.page-xz table.xz-tbl.xz-fit td{white-space:nowrap}
  /* 三要素三表（甲型键值表，app.js 标 .tbl-kv）：固定布局，首列统一 12em（156px，≥最长键列
     单行内容），三表首列齐平，与桌面同值 */
  .page-xz table.xz-tri{table-layout:fixed}
  .page-xz table.xz-tri th:first-child{width:12em;white-space:nowrap}
  .page-xz table.xz-tri td{white-space:normal;word-break:break-word}
  /* 速览与综合判断：首列 6.5em，内容列折行 */
  .page-xz table.xz-syn th:first-child{width:6.5em;white-space:nowrap}
  .page-xz table.xz-syn td{white-space:normal;word-break:break-word}
  /* 主要相位含义列：列宽 5em=5 个汉字位，border-box 下含左右 padding，4 字加顿号单行放下、 更长文字在此宽度内折行，列宽恒定不随内容伸缩 */
  .page-xz table.xz-asp.xz-tbl td:nth-child(5){white-space:normal;width:5em;max-width:5em;word-break:break-word}
  .page-xz table.xz-asp.xz-tbl th:nth-child(5){width:5em;max-width:5em}
  .page-xz table.xz-asp.xz-tbl td:nth-child(4){white-space:nowrap}
  /* 星体一/相位/星体二 三列单行定宽，防含义列被压缩 */
  .page-xz table.xz-asp.xz-tbl th:nth-child(1),.page-xz table.xz-asp.xz-tbl td:nth-child(1),.page-xz table.xz-asp.xz-tbl th:nth-child(2),.page-xz table.xz-asp.xz-tbl td:nth-child(2),.page-xz table.xz-asp.xz-tbl th:nth-child(3),.page-xz table.xz-asp.xz-tbl td:nth-child(3){white-space:nowrap}
}
/* 行运区：日期输入条与按钮排一行，表格沿用 .xz-tbl 通用样式 */
.page-xz .xz-tr-bar{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-3);align-items:flex-end;margin:var(--sp-2) 0 var(--sp-1)}
.page-xz .xz-tr-bar .btn{padding:0 14px}
/* 时间线日期列窄而紧凑 */
.page-xz table.xz-trtbl td.trt-date{white-space:nowrap;color:var(--xz-ink2);font-size:12px}
.page-xz .xz-tr h4{color:var(--xz2);font-size:13px;font-weight:400;margin:var(--sp-3) 0 2px}
/* 运势分析日运要点表：项目列单行显示，星象与读数列按内容分配宽度 */
.page-xz table.xz-fttbl th:first-child,.page-xz table.xz-fttbl td:first-child{white-space:nowrap}



.page-xz .page h1{color:var(--xz-deep);font-family:var(--xz-serif);font-size:23px;letter-spacing:.3em;text-indent:.3em;text-align:center;line-height:1.3}/* 页头细线：上下各一条 88px 夹题，卷首说明末尾 26px 竖线收束（规则档第三条） */
.page-xz .page h1::before{content:'';display:block;width:88px;height:1px;background:var(--xz-line);margin:0 auto var(--sp-3)}
.page-xz .page h1::after{content:'';display:block;width:88px;height:1px;background:var(--xz-line);margin:var(--sp-3) auto 0}
.page-xz .page .lead::after{background:var(--xz-line)}

.page-xz .page .lead{color:var(--xz-ink2);text-align:center;font-size:12.5px;letter-spacing:.22em;text-indent:.22em;margin-top:var(--sp-3)}
.page-xz .rel-title{color:var(--xz2)}
.page-xz .ly-zh-p{color:var(--xz-ink)}
.page-xz .sub-note{color:var(--xz-ink2)}
.page-xz .notice{color:var(--xz-ink);border:1px solid var(--xz-line);background:var(--xz-tint);border-radius:0}
.page-xz .mh-method{color:var(--xz-ink2)}

.page-xz .field label{color:var(--xz2);font-weight:400}
.page-xz .field input,.page-xz .field select{border-color:var(--xz-line);background:var(--card);color:var(--xz-deep);transition:border-color .15s,box-shadow .15s}
.page-xz .field input:focus,.page-xz .field select:focus{border-color:var(--xz);outline:none}
.page-xz .group-label{color:var(--xz2)}
.page-xz .birth-group,.page-xz .birth-group.compact{background:transparent;border:0;border-top:1px solid var(--xz-line);border-radius:0;box-shadow:none;padding:var(--sp-3) 0}
/* 窄屏题头到上线收到移动端更小档 --sp-2；本块排在基条之后，同权重下由后位取终值 */
@media(max-width:640px){.page-xz .birth-group,.page-xz .birth-group.compact{padding-top:var(--sp-2)}}

.page-xz .btn{background:var(--xz);color:#fff;box-shadow:none}
.page-xz .btn:hover{background:var(--xz2)}
.page-xz .btn-ghost{background:var(--card);border:1px solid var(--xz);color:var(--xz2);box-shadow:none}
.page-xz .btn-ghost:hover{background:var(--xz-tint)}

/* 模块折叠框（mod）：透明底，题头文字深午夜蓝 */
.page-xz .mod-head{border-top-color:var(--xz-line);border-bottom-color:var(--xz-line)}
.page-xz .mod-caret{color:var(--xz)}
.page-xz .mod-title{color:var(--xz2)}
.page-xz .mod-sub{color:var(--xz-ink2)}
.page-xz .gua-ico{background:transparent;border:0;color:var(--xz2)}

/* 合婚复用卡（hh-*）换午夜蓝 */
.page-xz .hh-total{color:var(--xz-ink);border-top-color:var(--xz-line);border-bottom-color:var(--xz-line)}
.page-xz .hh-total-cap{color:var(--xz2)}
.page-xz .hh-total-score b{text-shadow:none}
.page-xz .hh-total-lv{border-top:1px dashed rgba(47,74,117,.32)}
.page-xz .hh-item{border-top-color:var(--xz-line)}
.page-xz .hh-name{color:var(--xz2)}
.page-xz .hh-score{color:var(--xz2)}
.page-xz .hh-bar{background:var(--xz-tint)}
.page-xz .hh-desc{color:var(--xz-ink2)}
.page-xz .hh-adv-tbl td{color:var(--xz-ink)}

/* 附加功能面板：上下双线收束，透明底不作卡 */
.page-xz .ai-block{border:0;border-top:1px solid var(--xz-line);border-bottom:1px solid var(--xz-line);
  border-radius:0;background:transparent;color:var(--xz-ink);box-shadow:none}
.page-xz .ai-head{background:transparent;border-bottom-color:var(--xz-line)}
.page-xz .ai-head h3{color:var(--xz2);font-family:var(--xz-serif);font-weight:400}
.page-xz .ai-head .ai-status{color:var(--xz-ink2)}
.page-xz .ai-block .btn{background:var(--xz);color:#fff;box-shadow:none}
.page-xz .ai-block .btn:hover{background:var(--xz2)}
.page-xz .ai-block .btn.gold,.page-xz .ai-block .btn.soft{background:var(--xz-tint);border-color:var(--xz-line);color:var(--xz-ink);box-shadow:none}
.page-xz .ai-block .btn.gold:hover,.page-xz .ai-block .btn.soft:hover{background:var(--card);border-color:var(--xz);color:var(--xz2)}
.page-xz .ai-block .ai-out,.page-xz .ai-block .ai-bubble.user,.page-xz .ai-block .ai-bubble.assistant,.page-xz .ai-block .ai-model-name{color:var(--xz-ink)}
.page-xz .ai-block input,.page-xz .ai-block select{color:var(--xz-ink)}
.page-xz .ai-tab:hover{border-color:var(--xz);color:var(--xz2)}
.page-xz .ai-tab.active{background:var(--xz);border-color:var(--xz);color:#fff}
.page-xz .ai-tab.active:hover{background:var(--xz2);border-color:var(--xz2);color:#fff}
.page-xz .ai-bubble.user{background:var(--xz-tint);border-color:var(--xz)}
.page-xz .ai-bubble.assistant{border-color:var(--xz-line)}
.page-xz .ai-model-row:hover{background:var(--xz-tint)}
.page-xz .ai-tip{color:#66788e}

/* 移动端 */
@media(max-width:640px){
  .page-xz .mod,.page-xz .info-box,.page-xz .hh-item,.page-xz .tw-card{box-shadow:none}
  /* 输入行与真太阳时校正条的行内横向间距取移动端更小档 --sp-2，与全站表单行窄屏取值同档 */
  .page-xz .xz-row-inputs,.page-xz .xz-tr-bar{gap:var(--sp-2)}
}

/* 打印 */
@media print{
  .page-xz .mod,.page-xz .info-box,.page-xz .hh-total,.page-xz .hh-item{background:var(--card) !important;box-shadow:none !important;border-color:var(--line) !important}
}
/* 运势分析：评分卡内的小字标注（日期行、维度权重说明），降一级字色作注脚 */
.xz-cap{font-size:12px;opacity:.72}
.xz-cap-blk{font-size:12px;opacity:.72;margin-bottom:var(--sp-1)}
/* 运势分析：分项条组与说明段承接在小节标题之后的上距，当日评分卡与日期栏拉开 */
.xz-tr h4 + .hh-items{margin-top:var(--sp-2)}
.xz-tr .hh-items + p{margin-top:var(--sp-2)}
.xz-tr .hh-total-xz{margin-top:var(--sp-3)}
/* 排盘前置校验的警示注记：本页强调色，压过 .sub-note 的次级字色 */
.page-xz .sub-note.xz-warn{color:var(--gold2)}
/* ===== 页级样式：zangli（page-zl）===== */
/* 页头：卷首式（上下细线夹题、末尾竖线收束，与佛历、道历同骨架） */
.page-zl .page h1{color:var(--zl-deep);font-family:var(--zl-serif);font-size:23px;
  letter-spacing:.3em;text-indent:.3em;text-align:center;line-height:1.3}
.page-zl .page h1::before{content:'';display:block;width:88px;height:1px;background:var(--zl-line);margin:0 auto var(--sp-3)}
.page-zl .page h1::after{content:'';display:block;width:88px;height:1px;background:var(--zl-line);margin:var(--sp-3) auto 0}
.page-zl .page .lead{color:var(--zl-ink2);text-align:center;font-size:12.5px;letter-spacing:.22em;text-indent:.22em;margin-top:var(--sp-3)}
.page-zl .page .lead::after{background:var(--zl-line)}

/* 日期检索行：居中成一条查询带，去卡片（无底无框无影） */
.page-zl .page > .form-row{
  background:none;border:0;border-radius:0;
  padding:0;margin-top:var(--sp-2);margin-bottom:0;box-shadow:none;
  align-items:center;justify-content:center;
}
/* 字段由竖排转横排：标签与控件同行。控件宽度仍由 .dt-input 的 96px 定宽决定，不随容器伸展 */
.page-zl .page > .form-row .field{flex:0 0 auto;width:auto;max-width:none;
  flex-direction:row;align-items:center;gap:var(--sp-2)}
.page-zl .page > .form-row .field .dt-wrap{width:auto}
.page-zl .page > .form-row .field label{color:var(--zl2);font-weight:400;margin:0;white-space:nowrap}
.page-zl .page > .form-row .field input,.page-zl .page > .form-row .field select{
  border-color:var(--zl-line);border-radius:0;padding:4px 10px;transition:border-color .15s,box-shadow .15s}
.page-zl .page > .form-row .field input:focus,.page-zl .page > .form-row .field select:focus{
  border-color:var(--zl);outline:none}
/* "今天"按钮：藏红实色直角，无投影（仅检索行，不动 AI 面板按钮） */
.page-zl .page > .form-row .btn.gold{background:var(--zl);border-radius:0;padding:5px 14px;box-shadow:none;margin-bottom:0}
.page-zl .page > .form-row .btn.gold:hover{background:var(--zl2)}
/* 全页按钮兜底：未单列的按钮一律实底白字，不落回全站鎏金 */
.page-zl .btn,.page-zl .btn.gold{background:var(--zl);border-color:var(--zl);color:#fff;box-shadow:none}
.page-zl .btn:hover,.page-zl .btn.gold:hover{background:var(--zl2);color:#fff;box-shadow:none}

/* 年月导航：标题换宋体加字距；箭头钮去框去底成纯字符，悬停只给淡赭底 */
.page-zl .cal-nav{margin:var(--sp-3) 0 var(--sp-2)}
.page-zl .cal-title{color:var(--zl-deep);font-family:var(--zl-serif);font-weight:400;font-size:19px;letter-spacing:.2em;text-indent:.2em;padding:0 var(--sp-2)}
.page-zl .nav-btn{background:transparent;border-color:transparent;color:var(--zl);border-radius:0}
.page-zl .nav-btn:hover{background:var(--zl-tint);border-color:transparent;color:var(--zl2);box-shadow:none}
.page-zl .nav-btn:focus-visible{border-color:var(--zl);outline:none}

/* 日历面板：去四周框改线，只留星期行下一条线；内边距归零让格网贴齐容器 */
.page-zl .cal-grid .wd{color:var(--zl);font-family:var(--zl-serif);font-weight:400;
  letter-spacing:.12em;border-bottom:1px solid var(--zl-line);padding-bottom:var(--sp-1)}
/* 今日：藏红实色直角块，无投影；主位由满填承担，不靠阴影 */
.page-zl .cal-cell.today{background:var(--zl);box-shadow:none}
/* 选中：淡赭染 + 藏红细描；hover 不落今日格（白字不可读），今日格悬停加深 */
.page-zl .cal-cell.selected:not(.today){background:var(--zl-tint);border-color:var(--zl)}
.page-zl .cal-cell:hover:not(.today){background:#f3e8dc}
.page-zl .cal-cell.today:hover{background:var(--zl2)}
/* 角标：殊（每月固定殊胜日）居左上、节（年内固定节日）居右上。
   全站角标同制式（9px 粗体、只给字色不给底色），本页亦然——不铺底不描边，
   殊胜日与节日由角标逐日点出，比整格淡赭底更合「线、字优先」。 */
.page-zl .cal-cell .mk-s{left:var(--sp-1);color:var(--zl)}
.page-zl .cal-cell .mk-f{right:var(--sp-1);color:var(--zl-gold)}
.page-zl .cal-cell .festival{color:var(--zl2);font-weight:400}
/* 藏历日恒显（对齐佛历口径：节日与藏历日并存，不互相顶掉） */
.page-zl .cal-cell .festival+.ld{display:block}
.page-zl .cal-cell .ld{color:var(--zl-ink2)}
.page-zl .cal-cell.weekend:not(.today) .sd-num{color:var(--zl)}
.page-zl .cal-cell:not(.weekend):not(.today) .sd-num{color:var(--zl-ink)}

/* 详情区卷首带：上下细线夹出，无框无底 */
.page-zl .today-card{
  background:transparent;
  border:0;border-top:1px solid var(--zl-line);border-bottom:1px solid var(--zl-line);
  border-radius:0;
  box-shadow:none;
  padding:var(--sp-4) 0;
}
/* 卷首竖排居中：公历小字在上、日期大字在下，再接藏历与农历 */
.page-zl .today-top{flex-direction:column;gap:var(--sp-3)}
.page-zl .big-date{display:flex;flex-direction:column-reverse;align-items:center}
.page-zl .big-date .d{color:var(--zl);font-family:var(--zl-serif);font-weight:400;font-size:42px}
.page-zl .big-date .ym{font-size:12.5px;letter-spacing:.2em;text-indent:.2em;color:var(--zl-ink2)}
.page-zl .lunar-info .ln{color:var(--zl-deep);font-family:var(--zl-serif);font-weight:400;
  font-size:22px;letter-spacing:.14em;text-indent:.14em}
.page-zl .lunar-info .zodiac{font-size:12px;letter-spacing:.06em;color:var(--zl-ink2);margin-top:var(--sp-2)}

/* 小节标题：随墨赭色、宋体宽字距（与佛历、道历同一口径）。
   缺此规则时本页的 .rel-title 会回落到全站默认的鎏金 700 粗，即为配色泄漏。 */
.page-zl .rel-title{color:var(--zl-deep)}
/* 基础信息：双栏字段流。
   本日殊胜由「殊胜日圆盘」承担、本月重日缺日由「重日缺日盘」承担，两项不入字段流——
   同一份数据在盘上能一眼看出全月分布，字段流再列一遍即是重复。 */
.page-zl .zl-info{margin-top:var(--sp-3);columns:2;column-gap:var(--sp-5);
  font-size:14px;border-top:1px solid var(--zl-line)}
.page-zl .zl-i{display:flex;gap:var(--sp-3);padding:var(--sp-2) 0;border-bottom:1px solid var(--zl-line);
  break-inside:avoid;page-break-inside:avoid}
.page-zl .zl-i>.k{flex:0 0 88px;color:var(--zl2);letter-spacing:.5px}
.page-zl .zl-i>.v{flex:1;min-width:0;color:var(--zl-ink);line-height:1.7}
.page-zl .zl-i>.v.yi{color:var(--green)}
.page-zl .zl-i>.v.ji{color:var(--red)}
.page-zl .zl-info .zl-br{display:inline-block;width:.9em}

.page-zl .sub-note{color:var(--zl-ink2)}

/* 折叠框内小节与表格 */
.page-zl .zl-sub-h{font-size:var(--tier4);font-weight:400;color:var(--zl-deep);margin:var(--sp-3) 0 var(--sp-2)}
.page-zl .zl-tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 0 var(--sp-2)}
.page-zl .zl-tbl{font-size:13px;border-collapse:collapse;width:100%;max-width:100%}
.page-zl .zl-tbl th,.page-zl .zl-tbl td{border:1px solid var(--zl-line);padding:6px 9px;text-align:left;vertical-align:top;font-weight:400}
.page-zl .zl-tbl th{background:var(--zl-tint);color:var(--zl-deep);white-space:nowrap}
.page-zl .zl-tbl td{color:var(--zl-ink)}
.page-zl .zl-note{color:var(--zl-ink);margin:var(--sp-3) 0 0}
/* 流派说明块内间距：只由上一元素的下边距提供，块内首元素不带 上边距 */
.page-zl #zlDocBody > :first-child{margin-top:0}
.page-zl #zlDocBody .sub-note{margin:0 0 var(--sp-2)}
.page-zl .zl-yanlag-tbl th:nth-child(1),.page-zl .zl-yanlag-tbl td:nth-child(1){width:6em;white-space:nowrap}
.page-zl .zl-doc-tbl th:nth-child(1),.page-zl .zl-doc-tbl td:nth-child(1){width:7em}
.page-zl .zl-doc-tbl td:nth-child(2){white-space:nowrap}
.page-zl .zl-doc-tbl td:nth-child(4){white-space:nowrap;text-align:center}
.page-zl .zl-losar-tbl th:first-child,.page-zl .zl-losar-tbl td:first-child{text-align:left}

/* 附加功能面板（.ai-block）：去框改线，上下各一条线夹出（与卷首带 .today-card 同款）；
   面板是页尾元素，下边线承担「内容→免责声明」的收束，不可省 */
.page-zl .ai-block{
  border:0;border-top:1px solid var(--zl-line);border-bottom:1px solid var(--zl-line);border-radius:0;
  background:transparent;color:var(--zl-ink);
  box-shadow:none;
}
.page-zl .ai-head{
  background:transparent;
  border-bottom-color:var(--zl-line);
}
.page-zl .ai-head h3{color:var(--zl2);font-family:var(--zl-serif);font-weight:400}
.page-zl .ai-head .ai-status{color:var(--zl-ink2)}
/* 按钮语义：AI 解析=藏红实底主按钮，全面板唯一强调色；配置模型与 soft 同档=描边次按钮 */
.page-zl .ai-block .btn{background:var(--zl);border-radius:0}
.page-zl .ai-block .btn:hover{background:var(--zl2)}
.page-zl .ai-block .btn.gold,.page-zl .ai-block .btn.soft{background:var(--zl-tint);border-color:var(--zl-line);color:var(--zl-ink)}
.page-zl .ai-block .btn.gold:hover,.page-zl .ai-block .btn.soft:hover{background:var(--card);border-color:var(--zl);color:var(--zl2)}
/* 对话区（配置模型后出现）：标签页/气泡随主题换色，圆角归零与本页一致 */
.page-zl .ai-tab{border-radius:0}
.page-zl .ai-pane .ai-out{border-radius:0}
.page-zl .ai-bubble{border-radius:0}
.page-zl .ai-block input,.page-zl .ai-block select{color:var(--zl-ink)}
.page-zl .ai-tab:hover{border-color:var(--zl);color:var(--zl2)}
.page-zl .ai-tab.active{background:var(--zl);border-color:var(--zl);color:#fff}
.page-zl .ai-tab.active:hover{background:var(--zl2);border-color:var(--zl2);color:#fff}
.page-zl .ai-bubble.user{background:var(--zl-tint);border-color:var(--zl)}
.page-zl .ai-bubble.assistant{border-color:var(--zl-line)}
.page-zl .ai-model-row:hover{background:var(--zl-tint)}
.page-zl .ai-tip{color:var(--zl-ink2)}
.page-zl .ai-block .ai-out,.page-zl .ai-block .ai-bubble.user,.page-zl .ai-block .ai-bubble.assistant,.page-zl .ai-block .ai-model-name{color:var(--zl-ink)}

/* 流派说明折叠框：随全局 .fold-block 的线语言，去白瓷卡 */
.page-zl .fold-block>summary.rel-title{margin-top:0}
.page-zl .fold-block>summary.rel-title::before{color:var(--zl)}

@media(max-width:640px){
  .page-zl .big-date .d{font-size:36px}
  .page-zl .lunar-info .ln{font-size:19px}
  .page-zl .zl-info{columns:1}
  /* 窄屏单栏，标签栏收到 72px（最长标签四字约 58px），值栏多出 16px */
  .page-zl .zl-i>.k{flex:0 0 72px}
  .page-zl .zl-info .zl-br{display:block;height:0;width:0}
  /* -oneline 字段按段装箱：分段符作行内间隙，段按可用宽度入行。
     段（.zl-s）自成不可断行的行内盒，折行只落在段与段之间。 */
  .page-zl .zl-info .zl-i.zl-oneline .zl-br{display:inline-block;width:.5em}
  .page-zl .zl-info .zl-i.zl-oneline .zl-s{display:inline-block}
  /* 手机端隐去节日行：格宽放不下汉字，长名会被截成带省略号的残句。
     角标仍逐日点出殊胜与节日，全名由点格后的字段流与盘下详情条给。 */
  .page-zl .cal-cell .festival{display:none}
  .page-zl .zl-tbl td:nth-child(3){min-width:16em}
  .page-zl .zl-losar-tbl{width:auto;max-width:100%}
  .page-zl .zl-losar-tbl td:nth-child(3){white-space:nowrap;min-width:0}
}

/* 打印：恢复素底、去阴影 */
@media print{
  .page-zl .cal-grid,.page-zl .today-card{background:var(--card) !important;box-shadow:none !important;border-color:var(--line) !important}
  .page-zl .cal-grid .wd{border-bottom-color:var(--line)}
}


/* ===== 页级样式：zhougong（page-zg）===== */

.page-zg .page h1{color:var(--zg-deep);font-family:var(--zg-serif);font-size:23px;letter-spacing:.3em;text-indent:.3em;text-align:center;line-height:1.3}
.page-zg .page h1::before{content:'';display:block;width:88px;height:1px;background:var(--zg-line);margin:0 auto var(--sp-3)}
.page-zg .page h1::after{content:'';display:block;width:88px;height:1px;background:var(--zg-line);margin:var(--sp-3) auto 0}
.page-zg .page .lead{color:var(--zg-ink2);text-align:center;font-size:12.5px;letter-spacing:.22em;text-indent:.22em;margin-top:var(--sp-3);line-height:1.7}
.page-zg .page .lead::after{background:var(--zg-line)}
.page-zg .sub-note{color:var(--zg-ink2)}
.page-zg .btn{background:var(--zg);border-color:var(--zg);color:#fff;box-shadow:none}
.page-zg .btn:hover{background:var(--zg2);border-color:var(--zg2);color:#fff;box-shadow:none}
.page-zg .btn.soft{background:var(--zg-tint);border-color:var(--zg-line);color:var(--zg-ink)}
.page-zg .btn.soft:hover{background:var(--card);border-color:var(--zg);color:var(--zg2)}
.page-zg .ai-block{
  border:0;border-top:1px solid var(--zg-line);border-bottom:1px solid var(--zg-line);border-radius:0;
  background:transparent;color:var(--zg-ink);box-shadow:none;
}
.page-zg .ai-head{background:transparent;border-bottom-color:var(--zg-line)}
.page-zg .ai-block .btn,.page-zg .ai-block .btn.gold{box-shadow:none}
.page-zg .ai-block .btn{background:var(--zg);color:#fff}
.page-zg .ai-block .btn:hover{background:var(--zg2)}
.page-zg .ai-block .btn.gold,.page-zg .ai-block .btn.soft{background:var(--zg-tint);border-color:var(--zg-line);color:var(--zg-ink);box-shadow:none}
.page-zg .ai-block .btn.gold:hover,.page-zg .ai-block .btn.soft:hover{background:var(--card);border-color:var(--zg);color:var(--zg2)}
.page-zg .ai-block .ai-out,.page-zg .ai-block .ai-bubble.user,.page-zg .ai-block .ai-bubble.assistant,.page-zg .ai-block .ai-model-name,.page-zg .ai-block input,.page-zg .ai-block select{color:var(--zg-ink)}
.page-zg .ai-head h3{color:var(--zg2)}
.page-zg .ai-head .ai-status{color:var(--zg-ink2)}
.page-zg .ai-tab:hover{border-color:var(--zg);color:var(--zg2)}

/* 周公解梦页（zhougong.html）专属样式：零圆角、零投影、零白卡，色与线一律取 --zg 族 */
.zg-poem{font-family:var(--font);font-size:var(--tier2);line-height:1.9;text-align:center;color:var(--zg2);background:transparent;border:0;border-top:1px solid var(--zg-line);border-radius:0;box-shadow:none;padding:var(--sp-3) 0;margin:var(--sp-4) 0 var(--sp-3)}
.zg-search{display:flex;gap:var(--sp-2);margin:var(--sp-1) 0 var(--sp-2)}
.page-zg .zg-search input{flex:1;min-width:0;height:30px;padding:0 12px;font-size:var(--tier4);line-height:1.35;box-sizing:border-box;border-width:1px;border-style:solid;border-radius:0;background:var(--card);color:var(--zg-deep);transition:border-color .15s}
/* 页内控件描边取月晕浅线（规则档补 2），色由本条终值给出，宽与样式由控件自身承担 */
.page-zg input,.page-zg select,.page-zg textarea{border-color:var(--zg-line)}
.page-zg .zg-search input:focus{outline:none;border-color:var(--zg)}
.page-zg .zg-count{font-size:var(--tier4);color:var(--zg-ink2);margin:var(--sp-2) 0 var(--sp-1)}
.zg-empty{font-size:var(--tier3);color:var(--zg-ink2);margin:var(--sp-3) 0 var(--sp-1)}
.zg-empty b{color:var(--zg-ink);font-weight:600}
.zg-loose{font-size:var(--tier4);color:var(--zg-ink2);margin:var(--sp-3) 0 var(--sp-1);padding-top:var(--sp-2);border-top:1px solid var(--zg-line)}
.zg-tip{display:block;margin-top:var(--sp-1);color:var(--zg2)}
.zg-mtip{margin-top:var(--sp-2)}
.zd-dup{font-size:12px;color:var(--zg-ink2);margin-top:var(--sp-1);padding-top:var(--sp-1);border-top:1px solid var(--zg-line)}
/* 快捷梦象签：方角细边加淡底，悬停转主色边 */
.zg-tip-q{font:inherit;font-size:var(--tier4);color:var(--zg2);background:var(--zg-tint);border:1px solid var(--zg-line);border-radius:0;padding:2px var(--sp-3);margin:2px var(--sp-1) 2px 0;cursor:pointer;transition:border-color .15s}
.zg-tip-q:hover{border-color:var(--zg)}
/* 占辞卡：去框改线，只留一条顶线分隔相邻条目 */
.zg-card{background:transparent;border:0;border-top:1px solid var(--zg-line);border-radius:0;box-shadow:none;padding:var(--sp-2) 0;margin:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--sp-1) var(--sp-2)}
.zg-card-top{display:flex;align-items:baseline;gap:var(--sp-2);flex:0 0 auto;margin-bottom:0}
.page-zg .zg-cat-chip{font-size:12px;color:var(--zg-ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* 吉凶徽标：方角细边加淡底，吉凶二色与站内通行本一致 */
.zg-badge{font-style:normal;font-size:12px;font-weight:700;padding:2px var(--sp-2);border:1px solid currentColor;border-radius:0;flex-shrink:0}
.zg-badge.zg-j{color:#154021;background:#eef6ef}
.zg-badge.zg-x{color:#70251c;background:#fbeceb}
.zg-badge.zg-jian{color:var(--zg2);background:var(--zg-tint);border-color:var(--zg-line)}
.page-zg .zg-entry{font-size:var(--tier3);line-height:1.8;color:var(--zg-ink);flex:1 1 auto;min-width:0}
/* 断梦的对照行与原书两见标注独占一行，不与类名占辞同排 */
.page-zg .zg-card>.zd-dui,.page-zg .zg-card>.zd-dup{flex:1 1 100%}
.zg-img{font-weight:700;color:var(--zg2)}
.page-zg .zg-omen{color:var(--zg-ink2);margin-left:var(--sp-2)}
.zg-nav{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin:var(--sp-1) 0 var(--sp-3)}
/* 分类签：方角细线透明底，悬停淡底、选中项主色边加淡底 */
.zg-chip{font:inherit;font-size:var(--tier4);height:30px;border:1px solid var(--zg-line);border-radius:0;background:transparent;padding:0 var(--sp-3);color:var(--zg-ink);cursor:pointer;transition:background .15s}
.zg-chip:hover{background:var(--cal-hover)}
.zg-chip b{color:var(--zg2);font-weight:700;margin-left:2px}
.zg-chip.on{border-color:var(--zg);background:var(--zg-tint);color:var(--zg2)}
.zg-cat-h{font-size:var(--tier2);color:var(--zg2);margin:var(--sp-3) 0 var(--sp-1)}
.zg-sub{margin:var(--sp-1) 0 var(--sp-3)}
.zg-sub-h{font-size:var(--tier4);color:var(--zg-ink2);margin:var(--sp-3) 0 var(--sp-1)}
.zg-stats{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin:var(--sp-1) 0 var(--sp-3)}
/* 考据统计：去框改线，只留顶线，左右内缩并归 gap */
.page-zg .zg-stat{background:transparent;border:0;border-top:1px solid var(--zg-line);border-radius:0;box-shadow:none;padding:var(--sp-2) 0;font-size:var(--tier4);color:var(--zg-ink2)}
.zg-stat b{font-size:20px;font-weight:700;margin-right:var(--sp-1)}
.zg-stat.zg-sj b{color:#154021}
.zg-stat.zg-sx b{color:#70251c}
.zg-stat.zg-sjian b{color:var(--zg2)}
.zg-note p{font-size:var(--tier3);line-height:1.8;color:var(--zg-ink2);margin:var(--sp-2) 0}
/* 用字说明表：格子与配色由 .mh-ref 统一，本页仅去折叠框底色、限定说明列左对齐 */
.page-zg .mh-ref{background:transparent}
.zg-notes-tbl td:nth-child(2){text-align:left;line-height:1.8}
/* 折叠表对齐：表头与第一列居中、其余靠左；桌面端首列不换行，移动端自然换行 */
.page-zg .mh-ref th{text-align:center}
.page-zg .mh-ref td:first-child{text-align:center}
.page-zg .mh-ref td:not(:first-child){text-align:left}
@media(min-width:641px){.page-zg .mh-ref td:first-child{white-space:nowrap}}
@media(max-width:640px){.page-zg .mh-ref td:first-child{white-space:normal}}
/* 理论、考据、凡例三张折叠表的名目列是短定名：窄屏随长文列一起换行会折成单字，故名目不折行、
   表宽给保底，超出部分由折叠框横滚兜底（用字说明表的说明列仍按上条自然换行） */
.page-zg details.mh-ref{overflow-x:auto}
@media(max-width:640px){
  .page-zg .zg-fold-tbl td:first-child{white-space:nowrap}
  .page-zg .zg-notes-tbl td:first-child{white-space:nowrap}
}
/* 断梦秘书：同名异文标签与通行本对照行 */
.zd-tag{font-style:normal;font-size:11px;font-weight:700;color:var(--zg2);background:var(--zg-tint);border:1px solid var(--zg-line);border-radius:0;padding:2px var(--sp-2);flex-shrink:0}
.zd-dui{font-size:var(--tier4);line-height:1.7;color:var(--zg-ink);border-left:3px solid var(--zg);padding-left:var(--sp-2);margin-top:var(--sp-2)}
.zd-dui b{color:var(--zg2)}
/* 页内除 h1 外的加粗与题名统一夜青（层级规范：标题色统一 --zg2） */
.page-zg .mod-title{color:var(--zg2)}
.page-zg .zg-note b{color:var(--zg2)}
/* 分类浏览与断梦条目：桌面两栏条流，条目内类名与占辞同行，短句不再独占一行 */
@media(min-width:641px){
  .page-zg .zg-sub{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--sp-5);align-items:start}
  .page-zg .zg-sub-h{grid-column:1 / -1}
}
@media (max-width:640px){
  .zg-entry .zg-omen{display:block;margin-left:0;font-size:13px}
  .zg-chip{font-size:12.5px}
  .zg-stat b{font-size:17px}
}
/* 打印：题头与折叠框去淡底，描边转中性灰 */
@media print{
  .page-zg .mh-ref,.page-zg .ai-block{
    background:var(--card) !important;box-shadow:none !important;border-color:var(--line) !important}
}
/* ===== 页级样式：zeri（page-zeri）===== */
/* ── 择日页间距 ──────────────────────────────────────────────────────── 档位 --sp-1..5（4/8/12/16/24，4px 栅格）已提升为全站 token，定义在 assets/style.css 的 :root， 此处不再重复定义，全页直接继承。语义分工见 style.css :root 注释。 注：1~2px 的 margin 属行内基线微调（文字对齐），不属布局间距，保留原值不入档。 */
/* 模式切换（择事、造命）：两模式模块整组显隐。[hidden] 须显式声明，否则 .form-row 的 display:flex 等会压过 UA 默认 */
.page-zeri .zr-mod[hidden],.page-zeri .zm-parent[hidden],.page-zeri .zm-block[hidden]{display:none !important}
/* 模式切换钮（择事、造命）：整条居中，与年月导航 .nav-btn 同一语言——纯字符、无框无底；
   未选中取朱批红，选中项以实底朱批标示当前模式。line-height 显式写 1.2，避免继承正文 1.7 使按钮偏高 */
.page-zeri .zr-mode-switch{display:flex;justify-content:center;gap:var(--sp-4);margin:var(--sp-3) 0 var(--sp-2)}
.page-zeri .zr-mode-btn{font:inherit;font-size:13px;line-height:1.2;height:30px;cursor:pointer;padding:0 var(--sp-3);
  border:0;border-radius:0;background:transparent;color:var(--zr);transition:.15s}
.page-zeri .zr-mode-btn:hover{background:var(--zr-tint);color:var(--zr2)}
.page-zeri .zr-mode-btn.active{background:var(--zr);color:#fff}
.page-zeri .zr-mode-btn.active:hover{background:var(--zr2);color:#fff}
.page-zeri .zm-hours-wrap{margin:0 0 var(--sp-3)}
.page-zeri .zm-hours-head{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;margin-bottom:var(--sp-2)}
/* 可用时辰题头：标签取本页主体色并缩至 12.5px，避免落回全站金字；同时覆盖 .zm-hours-head 内同名标签（该处无自有规则，会随继承放大） */
.page-zeri .group-label{color:var(--zr2);font-size:12.5px}
.page-zeri .zm-hours{display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-3)}
/* 时辰勾选：纯复选框加文字，无外框无底色。选中态由文字主题色与原生勾选表达，字重保持常规（12 项同时加粗会撑动字宽致整排抖动）；未选中淡化至 .55，靠亮度区分；项间距 12px，整块高约 34px。accent-color 取本页主题色 */
.page-zeri .zm-hr{display:inline-flex;align-items:center;gap:var(--sp-1);padding:2px 0;font-size:12.5px;line-height:1.4;color:var(--zr-ink);opacity:.55;cursor:pointer;user-select:none;transition:opacity .15s}
.page-zeri .zm-hr input{margin:0;accent-color:var(--zr)}
.page-zeri .zm-hr:hover{opacity:.85}
/* 勾选高亮的真源是 checkbox 的 checked：:has() 供现代内核，.on 供不认 :has() 的旧内核，两者同出 checked */
.page-zeri .zm-hr:has(input:checked),
.page-zeri .zm-hr.on{color:var(--zr2);opacity:1}
/* 时辰快捷钮：与导航钮同一语言，纯字符无框无底 */
.page-zeri .btn-mini{padding:3px var(--sp-1);border:0;border-radius:0;background:transparent;color:var(--zr);
  font:inherit;font-size:12px;cursor:pointer}
.page-zeri .btn-mini:hover{color:var(--zr2)}
/* 家长信息：两方各自选性别（支持男男、女女等组合），性别只决定六亲星取用（男家长取偏财、女家长取正印），
   不影响生肖、相主、喜用补益、纳音诸项；两卡全宽堆叠，单卡一排放下全部 8 个字段 */
.page-zeri .zm-parents{display:grid;grid-template-columns:1fr;gap:var(--sp-3);margin:0}
/* 家长信息（.zm-parent）：去框改线，上接一条细线作分隔；家长序号题头取深朱批，层级靠字色不靠字重 */
.page-zeri .zm-parent{padding:var(--sp-2) 0 0;border:0;border-top:1px solid var(--zr-line);border-radius:0;min-width:0}
.page-zeri .zm-parent-h{font-size:13px;font-weight:400;color:var(--zr2);margin-bottom:var(--sp-2)}
/* 性别下拉并入出生信息同一 .form-row，宽度取内容宽（min 64px）：省市县三级下拉统一 115px，此处同宽会在选项右侧留大片空白 */
.page-zeri .zm-parent .form-row .field.zm-sex select{width:auto;min-width:64px}
.page-zeri .zm-parent .form-row{margin-bottom:0;gap:var(--sp-2)}
/* 真太阳时校正复选框：单行 8 字段宽和 844px 加 7 处间距 56px 为 900px，容器 972px 余量 72px，可容于首行。复选框高 22px、无 label 堆叠，垂直对齐交给 .form-row 的 align-items */
.page-zeri .zm-parent .form-row>.field.chk{flex:0 0 auto;min-width:0}
/* 家长出生地（真太阳时经度校正）：与出生日期、出生时间同排一个 .form-row，不设分隔线、不另起区， 由 .form-row 既有 flex-wrap 流式换行。字段宽度一律走站内既有规则 （.form-row .field{flex:0 0 auto;min-width:70px}），此处不拉伸、不加宽； 仅把手动经度按 .dt-input 同款"内容适配"口径收窄至 96px，避免数字框默认约 166px 留下大片空白 */
.page-zeri .zm-parent .form-row .field input[type="number"]{width:96px}
/* 家长出生地三级下拉定宽 115px：select 固有宽由最宽 option 撑定（省份长名恒 150px，城市区县随所选省在 85 至 189px 浮动），三者参差故定宽取齐；select 自然宽约为 59 + 13×(字数-1) */
.page-zeri .zm-parent .form-row .field select{width:115px;align-self:flex-start}
/* 造命排盘行与上方宝宝出生地框的间距由统一样式承担：模块内直接子元素一律 margin-bottom:var(--sp-3)，出生地框的下边距即排盘行的上间距，不另补值 */
/* 造命排盘行：桌面端（≥641px）太岁勾选与排盘按钮同排一行、标签不折行。 移动端不设任何规则，保持 .form-row 既有换行排布 */
@media(min-width:641px){
  .page-zeri .zm-run-row{flex-wrap:nowrap;align-items:center;gap:var(--sp-3)}
  .page-zeri .zm-run-row>.field.chk{flex:0 0 auto;align-self:center;max-width:none;min-width:0}
  .page-zeri .zm-run-row>.field.chk label{white-space:nowrap}
}
/* 视图切换行下边距取 12px：大于卡间 8px，切换行与首张卡片层次分明 */
.page-zeri .zm-tabs{display:flex;gap:var(--sp-4);margin:0 0 var(--sp-3);flex-wrap:wrap}
/* 视图切换钮（整体排名、每日最优时辰）：与顶部模式切换钮 .zr-mode-btn 同款——无框无底、常态朱批字、选中朱批实底白字；
   层级靠底色不靠字重 */
.page-zeri .zm-tab{font:inherit;font-size:13px;line-height:1.2;cursor:pointer;padding:var(--sp-1) var(--sp-3);border:0;border-radius:0;background:transparent;color:var(--zr);transition:.15s}
.page-zeri .zm-tab:hover{background:var(--zr-tint);color:var(--zr2)}
.page-zeri .zm-tab.active{background:var(--zr);color:#fff;font-weight:400}
.page-zeri .zm-tab.active:hover{background:var(--zr2);color:#fff}
.page-zeri .zm-layers{display:flex;flex-wrap:wrap;gap:var(--sp-1);margin-top:var(--sp-1)}
/* .zr-card 为 4 列网格，仅 .jz-verdict/.jz-detail 声明了跨列；造命卡片新增元素须同样跨全列，否则会被塞进单列 */
.page-zeri .zr-card > .zm-layers,.page-zeri .zr-card > .zm-dy,.page-zeri .zr-card > .zm-detail{grid-column:1/-1}
/* 分项芯片：素笺淡底托出层名，不加框、不加粗 */
.page-zeri .zm-layer{font-size:11.5px;padding:1px var(--sp-2);border-radius:0;background:var(--zr-tint);color:var(--zr-ink)}
/* 评分明细按精择吉日的口径直接铺开，复用 .jz-detail 绿框，四层各占一列。行距由 .jz-detail 的 grid gap 控制，层块自身 margin 归零 */
.page-zeri .zm-detail{margin-top:var(--sp-1)}
.page-zeri .zm-detail .zm-lb{margin:0;line-height:1.5}
.page-zeri .zm-lb{margin:var(--sp-1) 0 0;font-size:12.5px;line-height:1.7}
/* 层标题独占一行（.zm-lt display:block）：层名独占一行、条目自下一行起排，条目归属不随内容宽度漂移；层级靠字色不靠字重 */
.page-zeri .zm-lb .zm-lt{display:block;color:var(--zr2);font-weight:400;margin-bottom:var(--sp-1)}
.page-zeri .zm-lb .zm-li{display:inline-block;margin-right:var(--sp-3)}
/* 家长缘分按家长分组：组标题独占一行，组内每条一行（条目已去掉家长一/二前缀，靠分组边界表达归属，逐条再冠称谓只会满屏重复）。其余三层不带 .zm-grp/.blk，仍是层内一行内联排列 */
.page-zeri .zm-lb .zm-grp{display:block;margin-top:var(--sp-1);color:var(--zr2);font-weight:400}
.page-zeri .zm-lb .zm-li.blk{display:block;margin-right:0;padding-left:var(--sp-2)}
.page-zeri .zm-dy{font-size:12.5px;line-height:1.7}
.page-zeri .zm-gs{color:var(--red)}

/* 页头：卷首式（对齐首页 .hm-head 骨架：上下细线夹题、末尾竖线收束） */
.page-zeri .page h1{color:var(--zr-deep);font-family:var(--font-serif);font-size:23px;
  letter-spacing:.3em;text-indent:.3em;text-align:center;line-height:1.3}
.page-zeri .page h1::before{content:'';display:block;width:88px;height:1px;background:var(--zr-line);margin:0 auto var(--sp-3)}
.page-zeri .page h1::after{content:'';display:block;width:88px;height:1px;background:var(--zr-line);margin:var(--sp-3) auto 0}
.page-zeri .page .lead{color:var(--ink2);text-align:center;font-size:12.5px;letter-spacing:.22em;text-indent:.22em;margin-top:var(--sp-3)}
.page-zeri .page .lead::after{background:var(--zr-line)}

/* 折叠模块（zr-mod）：去框改线，题头上下两条细线夹出（收起态底线归 summary，展开态底线由正文块顶线承担，
   两态都成两线夹题名，与 section.mod 的 .mod-head 同口径）；模块间距取 --sp-4，与一级折叠区 .mod 同值，
   免相邻两条平行线不足 12px；标题取宋体宽字距，序号只留朱批字符不着圆底 */
.page-zeri .zr-mod{
  background:transparent;border:0;border-top:1px solid var(--zr-line);border-radius:0;box-shadow:none;
  position:relative;overflow:hidden;margin:var(--sp-4) 0;
}
.page-zeri .zr-mod>summary{padding:var(--sp-3) 0;color:var(--zr2);font-family:var(--font-serif);
  font-weight:400;font-size:var(--tier3);letter-spacing:.2em}
.page-zeri .zr-mod:not([open])>summary{border-bottom:1px solid var(--zr-line)}
.page-zeri .zr-mod>summary:hover{color:var(--zr)}
.page-zeri .zr-mod>summary::before{color:var(--zr)}
.page-zeri .zr-mod-n{width:auto;height:auto;line-height:inherit;background:transparent;color:var(--zr)}
.page-zeri .zr-mod-b .ly-zh-p{color:var(--zr-ink)}
.page-zeri .zr-mod-b{border-top:1px solid var(--zr-line);color:var(--zr-ink);padding:var(--sp-3) 0}
.page-zeri .zr-mod-b > *{margin-top:0;margin-bottom:var(--sp-3)}
/* 容器首子元素的外边距会"穿透"（margin collapsing）叠加到容器上：如 #zmOut 无内边距时，
   其内 p.notice 的 margin-top 会顶到 #zmOut 外，使"标题→首元素"多出 16px（实测 29px）。
   故模块内每个容器的首子元素 margin-top 一并归零，间距只由容器 padding 与上一元素 margin-bottom 决定 */
.page-zeri .zr-mod-b > * > :first-child{margin-top:0}
/* 说明段属"同组"：段与段之间 8px（--sp-2），比内容块之间的 12px 更紧，形成从属层级 */
.page-zeri .zr-mod-b > .sub-note{margin:0 2px var(--sp-2)}
.page-zeri .zr-mod-b > *:last-child{margin-bottom:0}
.page-zeri .ts-tbl + .sub-note{margin-top:var(--sp-2)}
.page-zeri .jz-h + .sub-note{margin:0 0 var(--sp-3)}
.page-zeri .form-row > .btn{flex:0 0 auto}
.page-zeri .form-row > .field.chk{flex:0 0 auto;align-self:flex-end}
.page-zeri #xiOut{margin-top:0}
/* 站内共有类（.form-row / .field / .birth-group / .lead / .ai-* 等）在择日页内一并归位，
   否则本页会出现"自有规则入档、共有规则游离"的半套标准。仅 .page-zeri 作用域，不动其他页 */
.page-zeri .form-row{gap:var(--sp-3)}
.page-zeri .field{gap:var(--sp-1)}
/* 字段名＝「键」，取深朱批（与样板页字段流同口径）；输入框内文字取朱墨 */
.page-zeri .field label{color:var(--zr2);font-weight:400}
.page-zeri .birth-group.compact{margin-top:0;gap:var(--sp-2) var(--sp-3);
  background:transparent;border:0;border-top:1px solid var(--zr-line);padding:var(--sp-3) 0 0}
/* 窄屏题头到上线收到移动端更小档 --sp-2；本块排在基条之后，同权重下由后位取终值 */
@media(max-width:640px){.page-zeri .birth-group,.page-zeri .birth-group.compact{padding-top:var(--sp-2)}}
.page-zeri .birth-group.compact .group-label{color:var(--zr2);letter-spacing:.5px}
.page-zeri .lead{margin-bottom:var(--sp-4)}
.page-zeri .ai-head,.page-zeri .ai-actions{gap:var(--sp-2)}
/* .ly-zh-p 基础规则是 margin:8px 0 0（--sp-2），但 .ly-zh-p:first-of-type{margin-top:6px}（style.css:367）
   特异性更高，使结果区"造命判定规则说明"内的首段游离在档位外；本页统一回 8px，
   于是该折叠块内所有段落间距一致 */
.page-zeri .ly-zh-p:first-of-type{margin-top:var(--sp-2)}
.page-zeri h1{margin-bottom:var(--sp-2)}
.page-zeri .zr-good{color:var(--green)}
.page-zeri .zr-bad{color:var(--red)}
.page-zeri .zr-mini{font-size:12px;color:var(--ink2)}
/* 吉凶判定：吉取宜绿、凶取忌红，平与未分级落正文墨色，不逐档另设色 */
.page-zeri .jz-verdict.v-daji,.page-zeri .jz-verdict.v-zhongji{color:var(--green)}
.page-zeri .jz-verdict.v-xiong,.page-zeri .jz-verdict.v-daxiong{color:var(--red)}

/* 表单控件描边：全站通用件给的是棕褐 --line，本页一律换朱批浅线；聚焦时只换线色，不外扩光环 */
.page-zeri input,.page-zeri select,.page-zeri textarea{border-color:var(--zr-line);transition:border-color .15s}
.page-zeri input:focus,.page-zeri select:focus,.page-zeri textarea:focus{border-color:var(--zr);outline:none}
.page-zeri .btn,.page-zeri .btn.gold{background:var(--zr);border-color:var(--zr);color:#fff;box-shadow:none}
.page-zeri .btn:hover,.page-zeri .btn.gold:hover{background:var(--zr2);color:#fff;box-shadow:none}

/* 吉日候选（①黄道吉日与④精择吉日通用）：细线取本页朱批浅线；仅上吉档以上（zr-hd）顶线转朱批以示重要 */
.page-zeri .zr-card,.page-zeri .jz-detail{border-top-color:var(--zr-line)}
.page-zeri .zr-card.zr-hd{border-top-color:var(--zr)}
.page-zeri .zr-score.score-high{color:var(--zr)}

/* 吉凶说明/喜用神 info-box：去框改线，标题下接一条细线作分隔，宜/忌语义由标题字色承载 */
.page-zeri .info-box{
  background:transparent;
  border:0;border-radius:0;
  box-shadow:none;padding:0;
}
.page-zeri .info-box h4{color:var(--zr2);font-family:var(--zr-serif);font-weight:400;letter-spacing:.2em;
  border-bottom:1px solid var(--zr-line);padding-bottom:var(--sp-2);margin-bottom:var(--sp-2)}
.page-zeri .info-box.yi h4{color:var(--green)}
.page-zeri .info-box.ji h4{color:var(--red)}
.page-zeri .info-box p:not(.yi):not(.ji){color:var(--zr-ink)}

/* 用字说明折叠表（mh-ref）：形制与题名由通用段给出，本页只补线色与表头素笺底 */
.page-zeri .mh-ref{border-color:var(--zr-line)}
.page-zeri .mh-ref summary{color:var(--zr2)}
.page-zeri .mh-ref th,.page-zeri .mh-ref td{border-color:var(--zr-line)}
.page-zeri .mh-ref th{background:var(--zr-tint);color:var(--zr-deep);font-weight:400}
.page-zeri .mh-ref td{background:transparent}

/* AI 面板：去框改线，上下各接一条细线；按钮只两档——朱批实底主按钮（.btn），
   素笺纸底次按钮（.btn.gold 与 .btn.soft 同款），与样板页同口径 */
.page-zeri .ai-block{border:0;border-top:1px solid var(--zr-line);border-bottom:1px solid var(--zr-line);
  border-radius:0;background:transparent;color:var(--zr-ink);box-shadow:none}
.page-zeri .ai-head{
  background:transparent;
  border-bottom-color:var(--zr-line);
}
.page-zeri .ai-head h3{color:var(--zr2);font-family:var(--font-serif);font-weight:400}
.page-zeri .ai-head .ai-status{color:var(--ink2)}
.page-zeri .ai-block .btn{background:var(--zr)}
.page-zeri .ai-block .btn:hover{background:var(--zr2)}
.page-zeri .ai-block .btn.gold,.page-zeri .ai-block .btn.soft{background:var(--zr-tint);border-color:var(--zr-line);color:var(--zr-ink)}
.page-zeri .ai-block .btn.gold:hover,.page-zeri .ai-block .btn.soft:hover{background:var(--card);border-color:var(--zr);color:var(--zr2)}
.page-zeri .ai-block .ai-out,.page-zeri .ai-block .ai-bubble.user,.page-zeri .ai-block .ai-bubble.assistant,.page-zeri .ai-block .ai-model-name{color:var(--zr-ink)}
.page-zeri .ai-block input,.page-zeri .ai-block select{color:var(--zr-ink)}
.page-zeri .ai-tab:hover{border-color:var(--zr);color:var(--zr2)}
.page-zeri .ai-tab.active{background:var(--zr);border-color:var(--zr);color:#fff}
.page-zeri .ai-tab.active:hover{background:var(--zr2);border-color:var(--zr2);color:#fff}
.page-zeri .ai-bubble.user{background:var(--zr-tint);border-color:var(--zr)}
.page-zeri .ai-bubble.assistant{border-color:var(--zr-line)}
.page-zeri .ai-model-row:hover{background:var(--zr-tint)}
.page-zeri .ai-tip{color:var(--ink2)}

/* 提示条（.notice）：去框改线，上下各接一条细线，底色去除 */
.page-zeri .notice{background:transparent;border:0;border-top:1px solid var(--zr-line);border-bottom:1px solid var(--zr-line);
  border-radius:0;padding:var(--sp-2) 0;color:var(--zr-ink)}

/* 模块③真太岁方位：文字标题 + 描边表格（无折叠框） */
.page-zeri .ts-title{font-size:14px;font-weight:400;color:var(--zr2);font-family:var(--font-serif);letter-spacing:.2em;
  margin:var(--sp-1) 0 var(--sp-2)}
.page-zeri .ts-tbl{width:100%;border-collapse:collapse;font-size:13px}
.page-zeri .ts-tbl th{background:var(--zr-tint);color:var(--zr-deep);font-weight:400;padding:7px 10px;border:1px solid var(--zr-line);text-align:center}
.page-zeri .ts-tbl td{color:var(--zr-ink);padding:7px 10px;border:1px solid var(--zr-line);text-align:center}

/* 窄屏表单间距：本页表单行与模式切换钮的桌面档为 --sp-3 与 --sp-4，
   窄屏一并取移动端更小档 --sp-2，与全站表单行窄屏取值同档；
   出生地组内的行内横向间距随之下档，组内与组外不再并存两值 */
@media(max-width:640px){
  .page-zeri .form-row{gap:var(--sp-2)}
  .page-zeri .zr-mode-switch{gap:var(--sp-2)}
  .page-zeri .birth-group.compact{gap:var(--sp-2)}
}

/* 打印：细线与纸底转中性灰 */
@media print{
  .page-zeri .zr-mod,.page-zeri .zr-card,.page-zeri .info-box,.page-zeri .mh-ref,.page-zeri .ai-block{border-color:var(--line) !important;box-shadow:none !important}
  .page-zeri .mh-ref th,.page-zeri .ts-tbl th{background:var(--card) !important;color:var(--ink) !important}
  .page-zeri .mh-ref th,.page-zeri .mh-ref td,.page-zeri .ts-tbl th,.page-zeri .ts-tbl td{border-color:var(--line) !important}
}


/* ===== 页级样式：ziwei（page-zw）=====
   主色取帝星之紫（色相 268 度），六档同色相派生：深档 hover 与强调、墨档给大标题与表头、
   正文字取紫墨灰、次级字只降饱和不另立色相、浅线与纸淡底提到 86% 与 95% 明度。
   语言：零圆角、零投影、零渐变，白瓷卡一律改上下细线（纸本目录）；
   四化（禄权科忌）与喜忌为语义色，不随主题走。 */
.page-zw{
  --zw:#5a3a7e;          /* 帝星紫主色 */
  --zw2:#483064;         /* 深紫：hover、强调、标签字 */
  --zw-deep:#332347;     /* 玄紫：大标题与表头字色 */
  --zw-ink:#3c3444;      /* 紫墨灰：正文字色 */
  --zw-ink2:#60566e;     /* 次级字色：卷首说明、副注、图例 */
  --zw-line:#dbd2e6;     /* 紫浅线 */
  --zw-tint:#f4eff8;     /* 紫纸淡底 */
  --zw-tint2:#ebe2f2;    /* 紫淡底深一档：盘上点选态 */
  --zw-serif:var(--font-serif);
  --ink2:var(--zw-ink2);
  --gold:var(--zw);
  --gold2:var(--zw2);
  --gold-brown:var(--zw2);
  --gold-bg:var(--zw-tint);
  --foot-ink:var(--zw2);
  --line:var(--zw-line);--ink:var(--zw-ink)
}
/* 卷首式页头：上下各一条八十八像素细线夹题，卷首说明居中宽字距，末尾竖线收束 */
.page-zw .page h1{color:var(--zw-deep);font-family:var(--zw-serif);font-size:23px;
  letter-spacing:.3em;text-indent:.3em;text-align:center;line-height:1.3}
.page-zw .page h1::before{content:'';display:block;width:88px;height:1px;background:var(--zw-line);margin:0 auto var(--sp-3)}
.page-zw .page h1::after{content:'';display:block;width:88px;height:1px;background:var(--zw-line);margin:var(--sp-3) auto 0}
.page-zw .page .lead{color:var(--zw-ink2);text-align:center;font-size:12.5px;letter-spacing:.22em;text-indent:.22em;margin-top:var(--sp-3)}
.page-zw .page .lead::after{background:var(--zw-line)}
/* 检索行：字段标签在控件上方，与八字、合婚两页同口径；下距取 --sp-3 使表单区紧凑且与全站一致。
   本行下方紧邻出生地组，其上线与上排控件的 1px 下边框是一对相邻平行线，间距全站统一为 12px，
   第二条判据的下限亦为 12px。 */
.page-zw .page > .form-row{margin-bottom:var(--sp-3)}
/* 表单控件描边随本页浅线；聚焦只换描边色，不绘外扩环 */
.page-zw input,.page-zw select,.page-zw textarea{border-color:var(--zw-line);color:var(--zw-ink)}
.page-zw input:focus,.page-zw select:focus,.page-zw textarea:focus{border-color:var(--zw);outline:none}
/* 按钮只有两档：兜底取主色实底（全站 .btn 基色是朱红，不写这条页内动态按钮会漏出页面外色） */
.page-zw .btn,.page-zw .btn.gold{background:var(--zw);border-color:var(--zw);color:#fff;box-shadow:none}
.page-zw .btn:hover,.page-zw .btn.gold:hover{background:var(--zw2);color:#fff;box-shadow:none}
/* 日期图标框：底色与描边随本页（见通用段 .dt-ic），此处只定字形色 */
.page-zw .dt-ic{color:var(--zw-ink)}
.page-zw .ai-block .btn{border-radius:0}
.page-zw .ai-block .btn.gold,.page-zw .ai-block .btn.soft{background:var(--zw-tint);border-color:var(--zw-line);color:var(--zw-ink)}
.page-zw .ai-block .btn.gold:hover,.page-zw .ai-block .btn.soft:hover{background:var(--card);border-color:var(--zw);color:var(--zw2)}
/* 出生地分组：去框改线，只留一条顶线，三级下拉与经度仍同排 */
.page-zw .birth-group{background:transparent;border:0;
  border-top:1px solid var(--zw-line);border-radius:0;padding:var(--sp-3) 0;margin-bottom:var(--sp-2)}
/* 窄屏题头到上线收到移动端更小档 --sp-2；本块排在基条之后，同权重下由后位取终值 */
@media(max-width:640px){.page-zw .birth-group,.page-zw .birth-group.compact{padding-top:var(--sp-2)}}
/* 组标题独占一行：第二人检索行的组标题不在 .birth-group 内，排布须自带 */
.page-zw .birth-group .group-label{color:var(--zw2)}
.page-zw .zw-rel2 .group-label{width:100%;margin:0;color:var(--zw2)}
/* 双人合盘：勾选行随正文，第二人资料块的显隐走类切换 */
.page-zw .zw-rel-chk{display:inline-flex;align-items:center;gap:var(--sp-1);
  margin:var(--sp-1) 0 var(--sp-2);font-size:13px;color:var(--zw-ink);cursor:pointer;user-select:none}
.page-zw .zw-rel-chk input{width:auto;margin:0;accent-color:var(--zw)}
.page-zw .zw-rel2{display:none}
.page-zw .zw-rel2.is-on{display:block}
/* 结果区首块＝十二宫盘。排盘页不以单日为轴，不设卷首带，由盘的上下细线承担与表单区的分界 */
.page-zw #out > .zp-v{margin-top:var(--sp-4);padding:var(--sp-3) 0;border-top:1px solid var(--zw-line)}
/* 十二宫盘：宫格与中宫去白瓷面与投影，只留细线；字色随本页色族，四化徽章仍走语义色 */
.page-zw .zp-v{--major:var(--zw2);--text:var(--zw-ink);--border:var(--zw-line)}
.page-zw .zp-v .zw-pal,.page-zw .zp-v .zw-center{background:transparent;border-color:var(--zw-line);color:var(--zw-ink);box-shadow:none}
.page-zw .zp-v .zw-pal:hover{background:var(--zw-tint)}
.page-zw .zp-v .zw-pal .zw-minor,.page-zw .zp-v .zw-pal .vmajor{color:var(--zw-ink)}
.page-zw .zp-v .zw-pal .zw-adj{color:var(--zw-ink2)}
.page-zw .zp-v .zw-center .zw-ct td.k,.page-zw .zp-v .zw-center .zw-ct td.wk{color:var(--zw2)}
.page-zw .zp-v .zw-center .zw-ct td.v,.page-zw .zp-v .zw-center .zw-ct td.wv{color:var(--zw-ink)}
/* 盘上常显档位：三方四正取纸淡底，化禄化忌落宫取语义淡底；点选态再深一档，并由描边转主色点出 */
.page-zw .zp-v .zw-pal.zw-3he{background:var(--zw-tint)}
.page-zw .zp-v .zw-pal.zw-hua-lu{background:#eef6ee}
.page-zw .zp-v .zw-pal.zw-hua-ji{background:#fbeeec}
.page-zw .zp-v .zw-pal.zw-rel{background:var(--zw-tint)}
.page-zw .zp-v .zw-pal.zw-focused{background:var(--zw-tint2);border-color:var(--zw)}
/* 折叠模块：题头上下细线夹出，去白瓷面与投影；卦符只留一枚字，不与题头的线争焦点 */
.page-zw #out .mod-head{border:0;
  border-top:1px solid var(--zw-line);border-bottom:1px solid var(--zw-line);
  border-radius:0;box-shadow:none;padding:var(--sp-2) 0;margin:var(--sp-4) 0 var(--sp-3)}
.page-zw #out .mod-caret{color:var(--zw)}
.page-zw #out .mod-title{color:var(--zw2)}
.page-zw #out .mod-sub{color:var(--zw-ink2)}
.page-zw #out .gua-ico{background:transparent;border:0;color:var(--zw2)}
.page-zw #out .mod-body h3.rel-title{margin-top:var(--sp-4)}
.page-zw #out .mod-body > h3.rel-title:first-child{margin-top:0}
/* 定盘卡与说明框：去白瓷面、去渐变与投影，改上下细线夹出；宜忌两色仍由顶线承担 */
/* 定盘卡、流年卡与运程卡内部就是一张表：表框已承担边界，容器再画上下线会与表顶线叠成重线，故整块去线 */
.page-zw .info-box.zp-ding,.page-zw .info-box.zp-liunian,.page-zw .info-box.zp-yunout{
  background:transparent;border:0;border-radius:0;box-shadow:none;padding:0}
.page-zw .info-box{background:transparent;border:0;border-top:1px solid var(--zw-line);
  border-radius:0;box-shadow:none}
.page-zw .info-box.yi{border-top-color:var(--green)}
.page-zw .info-box.ji{border-top-color:var(--red)}
.page-zw .info-box h4{color:var(--zw2);font-family:var(--zw-serif);font-weight:400;letter-spacing:.2em;border-bottom:1px solid var(--zw-line);padding-bottom:var(--sp-2);margin-bottom:var(--sp-2)}
.page-zw .palace-detail .info-box{background:transparent;border:0;
  border-top:1px solid var(--zw-line);border-radius:0;box-shadow:none;padding:var(--sp-3) 0}
.page-zw .palace-detail .info-box h4{color:var(--zw2);font-weight:400}
.page-zw .zp-yun-tbl{background:transparent}
.page-zw .zp-yun-tbl th,.page-zw .zp-yun-tbl td{border-color:var(--zw-line)}
/* 行间线只留一条：单元格边框已给出行线，通用件再叠一条 tr+tr 会成 2 像素的粗线 */
.page-zw .zp-yun-tbl tr+tr{border-top:0}
.page-zw .zp-yun-tbl th{background:var(--zw-tint);color:var(--zw-deep);font-weight:400}
.page-zw .zp-yun-tbl td{color:var(--zw-ink)}
/* 合盘表：表头同档淡染，明细列放行内换行，满分注退到次级字色 */
.page-zw .zw-hp-tbl th,.page-zw .zw-hp-tbl td{border-color:var(--zw-line)}
.page-zw .zw-hp-tbl th{background:var(--zw-tint);color:var(--zw-deep);font-weight:400;white-space:nowrap}
.page-zw .zw-hp-tbl td{color:var(--zw-ink);white-space:nowrap}
.page-zw .zw-hp-tbl td.zw-hp-det{white-space:normal;overflow-wrap:anywhere}
.page-zw .zw-hp-max{color:var(--zw-ink2);font-size:12px;font-weight:400;margin-left:var(--sp-1);white-space:nowrap}
.page-zw .zw-hp-total .hh-adv-lv{margin-left:var(--sp-2)}
/* 综合论断卡沿用合婚件：线色随本页浅线，徽章底色随本页主色与墨档（通用件取的是合婚令牌，本页未定义） */
.page-zw .hh-adv{border-color:var(--zw-line)}
.page-zw .hh-adv-box,.page-zw .hh-adv-tbl th,.page-zw .hh-adv-tbl td{border-color:var(--zw-line)}
.page-zw .hh-adv-tbl tr+tr th,.page-zw .hh-adv-tbl tr+tr td,
.page-zw .hh-adv-tbl .hh-adv-sec td{border-color:var(--zw-line)}
.page-zw .hh-adv-tbl td{color:var(--zw-ink)}
.page-zw .hh-adv-pill-g{background:var(--zw)}
.page-zw .hh-adv-pill-d{background:var(--zw-deep)}
/* 大限列表与运程文字：行线随本页浅线，宫名与干支取深紫，岁数与星曜退到次级字色 */
.page-zw .dy-row{background:transparent;border:0;border-top:1px solid var(--zw-line);border-radius:0}
.page-zw .dy-name,.page-zw .dy-gz{color:var(--zw2)}
.page-zw .dy-star,.page-zw .dy-age{color:var(--zw-ink2)}
.page-zw .ly-zh-p,.page-zw .ly-zh-p.sub,.page-zw .palace-detail .ly-zh-p,.page-zw .palace-detail .ly-zh-p.sub{color:var(--zw-ink)}
.page-zw .sub-note,.page-zw .yf-hint{color:var(--zw-ink2)}
.page-zw .yf-picker label{color:var(--zw2)}
.page-zw .lqkj-grid .lq-b{color:var(--zw-ink)}
/* 断语内的语义字：宫义名取深紫，注解取次级字色，喜用忌神保留绿红两色 */
.page-zw .zw-key{color:var(--zw2)}
.page-zw .zw-note{color:var(--zw-ink2);font-size:12px}
.page-zw .zw-xi{color:var(--green)}
.page-zw .zw-ji{color:var(--red)}
.page-zw .info-box p{color:var(--zw-ink)}
.page-zw .yf-picker input{border-color:var(--zw-line)}
.page-zw .zw-jx{display:inline-block;padding:0 var(--sp-2);border-radius:0;color:#fff;
  font-size:12px;font-weight:400;line-height:1.7;margin-right:var(--sp-1)}
/* 参考折叠：上下细线夹出，题名随墨档宋体 */
.page-zw .zw-ref{margin-top:var(--sp-4);padding:var(--sp-3) 0;background:transparent;border:0;
  border-top:1px solid var(--zw-line);border-radius:0}
/* 收起态补一条底线：展开后内部表格自带单元格线，收起时下方无内容才需要收束 */
.page-zw .zw-ref:not([open]){border-bottom:1px solid var(--zw-line)}
.page-zw .zw-ref summary{color:var(--zw-deep);font-family:var(--zw-serif);
  font-size:var(--tier3);font-weight:400;letter-spacing:.1em}
.page-zw .zw-legend{color:var(--zw-ink2)}
.page-zw .zw-legend b{color:var(--zw2)}
.page-zw .zw-pal-mean th,.page-zw .zw-pal-mean td{border-color:var(--zw-line);color:var(--zw-ink)}
.page-zw .zw-pal-mean th{background:var(--zw-tint);color:var(--zw-deep);font-weight:400}
.page-zw table th{color:var(--zw-deep);font-weight:400}
.page-zw table td{color:var(--zw-ink)}
.page-zw .rel-title{color:var(--zw-deep)}
.page-zw .notice{color:var(--zw-ink);background:transparent;border:0;
  border-top:1px solid var(--zw-line);border-bottom:1px solid var(--zw-line)}
/* 附加功能面板：上下细线夹出，题头与页签随本页色族 */
.page-zw .ai-block{border:0;border-top:1px solid var(--zw-line);border-bottom:1px solid var(--zw-line);
  border-radius:0;background:transparent;color:var(--zw-ink);box-shadow:none}
.page-zw .ai-head{background:transparent;border-bottom-color:var(--zw-line)}
.page-zw .ai-head h3{color:var(--zw2);font-family:var(--zw-serif);font-weight:400}
.page-zw .ai-head .ai-status{color:var(--zw-ink2)}
.page-zw .ai-tab{border-radius:0}
.page-zw .ai-pane .ai-out{border-radius:0}
.page-zw .ai-bubble{border-radius:0}
.page-zw .ai-tab:hover{border-color:var(--zw);color:var(--zw2)}
.page-zw .ai-tab.active{background:var(--zw);border-color:var(--zw);color:#fff}
.page-zw .ai-tab.active:hover{background:var(--zw2);border-color:var(--zw2);color:#fff}
.page-zw .ai-bubble.user{background:var(--zw-tint);border-color:var(--zw)}
.page-zw .ai-bubble.assistant{border-color:var(--zw-line)}
.page-zw .ai-model-row:hover{background:var(--zw-tint)}
.page-zw .ai-block .ai-out,.page-zw .ai-block .ai-bubble.user,
.page-zw .ai-block .ai-bubble.assistant,.page-zw .ai-block .ai-model-name{color:var(--zw-ink)}
.page-zw .ai-block input,.page-zw .ai-block select{color:var(--zw-ink)}
.page-zw .ai-tip{color:var(--zw-ink2)}
@media(max-width:640px){
  /* 合盘各表首列：表头长句在窄屏被 nowrap 撑到两百余像素，把右侧分值挤成窄条，故窄屏放开换行并左对齐 */
  .page-zw .zw-hp-tbl th,.page-zw .zw-hp-total .zp-yun-tbl th{white-space:normal;text-align:left}
  /* 双人合盘勾选行：整行说明文字长，窄屏独占一行随文字折行，复选框不被挤到文字中间 */
  .page-zw .zw-rel-chk{display:flex}
  .page-zw .zp-yun-tbl th,.page-zw .zp-yun-tbl td{padding:var(--sp-1) var(--sp-2)}
  /* 正文与大运表的值按标点整段换行，末字不再独占一行 */
  .page-zw .ly-zh-p,.page-zw .zp-yun-tbl td{word-break:keep-all}
  .page-zw .zw-hp-tbl td{white-space:normal}
  .page-zw .zw-hp-max{display:block;margin-left:0;margin-top:var(--sp-1)}
}
@media print{
  .page-zw .zp-ding,.page-zw .info-box,.page-zw .notice,.page-zw .ai-block{
    background:var(--card) !important;box-shadow:none !important;border-color:var(--line) !important}
}


/* ===== 页级样式：dianji（page-dj）===== */
.page-dj .page{--dj-ink:#3c3630;--dj-ink2:#7a7268;--dj-line:#e8e3da;--dj-red:#a03020;--foot-ink:#7a7268;--gold:#a03020;--gold2:#8a2a1a;--gold-brown:#8a2a1a;--gold-bg:#faf7f1;--red:#a03020}
.page-dj .dj-hero{padding:calc(var(--sp-5) + 4px) var(--sp-2) var(--sp-4);border-top:3px solid #2b2724;position:relative}
.page-dj .dj-hero::before{content:'';position:absolute;top:5px;left:0;right:0;border-top:1px solid #2b2724;opacity:.5}
.page-dj .dj-eyebrow{font-size:12px;letter-spacing:.42em;color:var(--dj-red);margin-bottom:var(--sp-2)}
.page-dj h1{font-family:var(--font-serif);font-size:23px;font-weight:600;letter-spacing:.12em;color:var(--ink);margin:0 0 var(--sp-3)}
.page-dj .dj-lead{font-size:14px;line-height:2.05;color:var(--dj-ink2);max-width:800px;margin:0 0 var(--sp-4)}
.page-dj .dj-note{font-size:12.5px;line-height:1.95;color:var(--dj-ink2);border-left:2px solid #d8d0c0;padding:var(--sp-2) var(--sp-3);margin:0 0 var(--sp-2);max-width:820px}
.page-dj .dj-sec{display:flex;align-items:baseline;gap:var(--sp-3);margin:var(--sp-5) 0 var(--sp-3)}
.page-dj .dj-sec b{font-family:var(--font-serif);font-size:19px;font-weight:600;letter-spacing:.14em;color:var(--ink);white-space:nowrap}
.page-dj .dj-sec span{font-size:12px;color:var(--ink2)}
.page-dj .dj-sec::after{content:'';flex:1;border-top:1px solid var(--dj-line)}
.page-dj table.dj-tbl{width:100%;border-collapse:collapse;font-size:13px;line-height:1.7}
.page-dj table.dj-tbl th{text-align:left;color:var(--dj-ink2);font-weight:600;font-size:var(--tier4);letter-spacing:.1em;padding:var(--sp-2) var(--sp-3);border-bottom:2px solid var(--dj-line);white-space:nowrap}
.page-dj table.dj-tbl td{padding:var(--sp-2) var(--sp-3);border-bottom:1px solid #f0ece4;vertical-align:top;color:var(--dj-ink)}
.page-dj table.dj-tbl tr:hover td{background:#faf7f1}
.page-dj .dj-book{font-weight:600;color:var(--ink)}
.page-dj .dj-grade{display:inline-block;min-width:22px;text-align:center;font-size:12px;border:1px solid var(--dj-line);border-radius:0;padding:0 var(--sp-1)}
.page-dj .dj-grade.a{color:#1c6b3c;border-color:#1c6b3c}
.page-dj .dj-grade.b{color:#9a7b3f;border-color:#c0a878}
.page-dj .dj-grade.c{color:#a03020;border-color:#c98a7a}
.page-dj a.dj-dl{color:#29648f;text-decoration:none;border-bottom:1px dotted #8fb4ce;white-space:nowrap}
.page-dj a.dj-dl:hover{color:#164a6b;border-bottom-style:solid}
.page-dj .dj-caveat{font-size:12px;color:var(--dj-red)}
.page-dj .dj-caveat::before{content:'注：'}
@media (max-width:760px){
  .page-dj .dj-hero{padding:var(--sp-4) var(--sp-1) var(--sp-3)}
  .page-dj table.dj-tbl{font-size:12px}
  .page-dj table.dj-tbl th,.page-dj table.dj-tbl td{padding:var(--sp-1) var(--sp-2)}
}


/* ===== 页级样式：yunqi（page-yq）===== */
/* 页头：卷首式，上下各一条 88px 细线夹题，卷首说明末尾 26px 竖线收束（规则档第三条） */
.page-yq .page h1{color:var(--yq-deep);font-family:var(--yq-serif);font-size:23px;letter-spacing:.3em;text-indent:.3em;text-align:center;line-height:1.3}
.page-yq .page h1::before{content:'';display:block;width:88px;height:1px;background:var(--yq-line);margin:0 auto var(--sp-3)}
.page-yq .page h1::after{content:'';display:block;width:88px;height:1px;background:var(--yq-line);margin:var(--sp-3) auto 0}
.page-yq .page .lead{color:var(--yq-ink2);text-align:center;font-size:12.5px;letter-spacing:.22em;text-indent:.22em;margin-top:var(--sp-3)}
.page-yq .page .lead::after{background:var(--yq-line)}
/* 模块标题条：通用段定形，页面段只定线色 */
.page-yq .mod-head{border-top-color:var(--yq-line);border-bottom-color:var(--yq-line)}
/* 字段与按钮 */
.page-yq .field label{color:var(--yq2);font-weight:400}
.page-yq .field select{border-color:var(--yq-line);background:var(--card);color:var(--yq-deep)}
.page-yq .field select:focus{border-color:var(--yq);outline:none}
.page-yq .btn{background:var(--yq)}
.page-yq .btn:hover{background:var(--yq2)}
/* 表格：线条模式，行线取本页浅线，表头不上底色 */
.page-yq .yq-tbl-wrap{margin-top:var(--sp-2);overflow-x:auto}
.page-yq .yq-tbl{width:100%;border-collapse:collapse;font-size:13px;line-height:1.6;border-top:1px solid var(--yq-line)}
.page-yq .yq-tbl th{background:var(--yq-tint);text-align:left;font-weight:400;white-space:nowrap;color:var(--yq2);border:0;border-bottom:1px solid var(--yq-line);padding:6px 9px}
.page-yq .yq-tbl td{border:0;border-bottom:1px solid var(--yq-line);padding:6px 9px;vertical-align:top;color:var(--yq-ink)}
.page-yq .yq-tbl .yq-c0{white-space:nowrap;color:var(--yq-ink2)}
.page-yq .yq-tbl tr.yq-good td{background:var(--yq-good-bg)}
.page-yq .yq-tbl tr.yq-good td:last-child{color:var(--green)}
.page-yq .yq-tbl tr.yq-bad td{background:var(--yq-bad-bg)}
.page-yq .yq-tbl tr.yq-bad td:last-child{color:var(--red)}
.page-yq .yq-head{color:var(--yq-deep);font-family:var(--yq-serif);font-weight:400;letter-spacing:.2em;margin:var(--sp-2) 0 var(--sp-1)}
.page-yq .yq-ov{font-size:13px;color:var(--yq-ink2);margin:var(--sp-1) 0 var(--sp-2)}
.page-yq .yq-err{color:var(--red);font-size:13px}
.page-yq .sub-note{color:var(--yq-ink2)}
.page-yq .info-box{background:transparent;border:0;border-top:1px solid var(--yq-line);border-radius:0;box-shadow:none}
.page-yq .info-box h4{color:var(--yq2);font-family:var(--yq-serif);font-weight:400;letter-spacing:.2em}
.page-yq .info-box p{color:var(--yq-ink)}
/* AI 面板（基础款） */
.page-yq .ai-block{border:0;border-top:1px solid var(--yq-line);border-bottom:1px solid var(--yq-line);border-radius:0;background:transparent;color:var(--yq-ink);box-shadow:none}
.page-yq .ai-head{background:transparent;border-bottom-color:var(--yq-line)}
.page-yq .ai-head h3{color:var(--yq2)}
.page-yq .ai-block .btn{background:var(--yq);color:#fff}
.page-yq .ai-block .btn:hover{background:var(--yq2)}
.page-yq .ai-block .btn.gold,.page-yq .ai-block .btn.soft{background:var(--yq-tint);border-color:var(--yq-line);color:var(--yq-ink);box-shadow:none}
.page-yq .ai-block .btn.gold:hover,.page-yq .ai-block .btn.soft:hover{background:var(--card);border-color:var(--yq);color:var(--yq2)}
.page-yq .ai-block .ai-out,.page-yq .ai-block .ai-bubble.user,.page-yq .ai-block .ai-bubble.assistant,.page-yq .ai-block .ai-model-name,.page-yq .ai-block input,.page-yq .ai-block select{color:var(--yq-ink)}
.page-yq .ai-tab.active{background:var(--yq);border-color:var(--yq);color:#fff}
.page-yq .ai-bubble.user{background:var(--yq-tint);border-color:var(--yq)}
.page-yq .ai-bubble.assistant{border-color:var(--yq-line)}
/* 移动端：三列以上表格保底横滚，内距收窄 */
@media(max-width:640px){
  .page-yq .yq-tbl th,.page-yq .yq-tbl td{padding:5px 4px}
  .page-yq .yq-tbl th{white-space:nowrap}
  .page-yq .yq-tbl-wrap table{width:max-content;min-width:100%}
  .page-yq .yq-tbl-wrap{padding-bottom:var(--sp-4)}
}
/* 打印：恢复素底 */
@media print{
  .page-yq .yq-tbl th{background:var(--card) !important}
  .page-yq .yq-tbl tr.yq-good td,.page-yq .yq-tbl tr.yq-bad td{background:transparent}
}

/* ===== 页级样式：shouxiang（page-sx）===== */
/* 页头：卷首式，上下各一条 88px 细线夹题，卷首说明末尾 26px 竖线收束（规则档第三条） */
.page-sx .page h1{color:var(--sx-deep);font-family:var(--sx-serif);font-size:23px;letter-spacing:.3em;text-indent:.3em;text-align:center;line-height:1.3}
.page-sx .page h1::before{content:'';display:block;width:88px;height:1px;background:var(--sx-line);margin:0 auto var(--sp-3)}
.page-sx .page h1::after{content:'';display:block;width:88px;height:1px;background:var(--sx-line);margin:var(--sp-3) auto 0}
.page-sx .page .lead{color:var(--sx-ink2);text-align:center;font-size:12.5px;letter-spacing:.22em;text-indent:.22em;margin-top:var(--sp-3)}
.page-sx .page .lead::after{background:var(--sx-line)}
/* 模块标题条：通用段定形，页面段只定线色 */
.page-sx .mod-head{border-top-color:var(--sx-line);border-bottom-color:var(--sx-line)}
/* 字段与按钮 */
.page-sx .field label{color:var(--sx2);font-weight:400}
.page-sx .field select,.page-sx .field input{border-color:var(--sx-line);background:var(--card);color:var(--sx-deep)}
.page-sx .field select:focus,.page-sx .field input:focus{border-color:var(--sx);outline:none}
.page-sx .btn{background:var(--sx)}
.page-sx .btn:hover{background:var(--sx2)}
/* 条文卡与表格：去框改线，行线取本页浅线 */
.page-sx .info-box{background:transparent;border:0;border-top:1px solid var(--sx-line);border-radius:0;box-shadow:none;padding:var(--sp-2) 0 0}
.page-sx .info-box h4{color:var(--sx2);font-family:var(--sx-serif);font-weight:400;letter-spacing:.2em}
.page-sx .info-box p{line-height:1.7}
.page-sx .qtab-scroll{overflow-x:auto}
.page-sx .qtab{width:100%;border-collapse:collapse;font-size:13px;border-top:1px solid var(--sx-line)}
.page-sx .qtab th,.page-sx .qtab td{border:0;border-bottom:1px solid var(--sx-line);padding:6px 9px;text-align:left;vertical-align:top;color:var(--sx-ink)}
.page-sx .qtab th{background:var(--sx-tint);font-weight:400;color:var(--sx2);white-space:nowrap}
.page-sx .qtab .lbl{white-space:nowrap;color:var(--sx-ink2)}
.page-sx .sx-note{font-size:12px;color:var(--sx-ink2);margin:var(--sp-1) 0}
.page-sx .mod-body>.form-row{margin-top:var(--sp-2)}
.page-sx .qtab .field{align-items:flex-start}
.page-sx .qtab .field select{width:auto}
.page-sx .qtab td.vmd{vertical-align:middle}
.page-sx .qtab .nw{white-space:nowrap}
.page-sx .sx-dis{font-size:12px;color:var(--sx-ink2);text-align:center;margin-top:var(--sp-4)}
/* 掌图：底图取公有领域古籍原图，居中限宽，图注取本页次级字 */
.page-sx figure.sx-fig{display:block;width:min(400px,100%);margin:var(--sp-2) auto}
.page-sx figure.sx-fig img{display:block;width:100%;height:auto;background:var(--card);border:1px solid var(--sx-line)}
.page-sx figure.sx-fig figcaption{margin-top:var(--sp-2);font-size:12px;line-height:1.7;color:var(--sx-ink2);text-align:center}
/* 掌中九宫示意图（本站自绘内联 SVG，类名承载表现，仿通用件 .wheel 之约定，便于主题随页色走） */
.page-sx figure.sx-fig svg.sx-jg{display:block;width:100%;height:auto;background:var(--card);border:1px solid var(--sx-line)}
.sx-jg{font-family:var(--sx-serif);font-size:16px;color:var(--sx-ink)}
.sx-jg .jg-skin{fill:#fff;stroke:var(--sx-ink);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.sx-jg .jg-rings{fill:none;stroke:var(--sx-ink);stroke-width:1.6;stroke-linecap:round}
.sx-jg .jg-grid{fill:none;stroke:#b6a3c8;stroke-width:1.5;stroke-dasharray:7 5}
.sx-jg .jg-gong{font-size:24px;fill:var(--sx-deep);text-anchor:middle}
.sx-jg .jg-ming-t{font-size:20px;fill:var(--sx2);text-anchor:middle}
/* 八丘示意图与九宫图共用手形、指环与虚线类，丘名标注另设两级：丘名主标与第一/第二序号 */
.sx-jg .jg-hill-t{font-size:14px;fill:var(--sx-deep);text-anchor:middle}
.sx-jg .jg-hill-n{font-size:12px;fill:var(--sx-ink2);text-anchor:middle}
/* 三大主线图实线与辅助线图虚线：同用手形底图，主线取紫棠实笔细于轮廓，辅助线取次级字色虚线，参照线取本页浅线 */
.sx-jg .jg-line{fill:none;stroke:var(--sx2);stroke-width:1.5;stroke-linecap:round}
.sx-jg .jg-aline{fill:none;stroke:var(--sx-ink2);stroke-width:1.5;stroke-linecap:round;stroke-dasharray:5 4}
.sx-jg .jg-refline{fill:none;stroke:#b6a3c8;stroke-width:1.5;stroke-linecap:round}
/* 图对：自绘图与文献原件并排比对，两图等高（同版面比 contained），窄屏纵叠跟随；面相行版面比随 mian01 原件 760:888 */
.page-sx .sx-figrow,.page-mian .sx-figrow{display:flex;gap:var(--sp-2);justify-content:center;align-items:flex-start}
.page-sx .sx-figrow .sx-fig,.page-mian .sx-figrow .mian-fig{flex:1 1 0;width:auto;max-width:50%;margin:0}
.page-sx .sx-figrow .sx-fig svg,.page-sx .sx-figrow .sx-fig img,.page-mian .sx-figrow .mian-fig svg,.page-mian .sx-figrow .mian-fig img{width:100%;height:auto;aspect-ratio:560/672;object-fit:contain}
.page-mian .sx-figrow .mian-fig svg,.page-mian .sx-figrow .mian-fig img{aspect-ratio:760/888}
.page-mian .sx-figrow .mian-fig svg.sx-jg{display:block;background:var(--card);border:1px solid var(--mian-line)}
@media(max-width:640px){
  .page-sx .sx-figrow,.page-mian .sx-figrow{flex-direction:column;align-items:center}
  .page-sx .sx-figrow .sx-fig,.page-mian .sx-figrow .mian-fig{width:min(400px,100%);max-width:100%}
  .page-sx .sx-figrow .sx-fig svg,.page-sx .sx-figrow .sx-fig img,.page-mian .sx-figrow .mian-fig svg,.page-mian .sx-figrow .mian-fig img{aspect-ratio:auto}
}
/* AI 面板（基础款） */
.page-sx .ai-block{border:0;border-top:1px solid var(--sx-line);border-bottom:1px solid var(--sx-line);border-radius:0;background:transparent;color:var(--sx-ink);box-shadow:none}
.page-sx .ai-head{background:transparent;border-bottom-color:var(--sx-line)}
.page-sx .ai-head h3{color:var(--sx2)}
.page-sx .ai-block .btn{background:var(--sx);color:#fff}
.page-sx .ai-block .btn:hover{background:var(--sx2)}
.page-sx .ai-block .btn.gold,.page-sx .ai-block .btn.soft{background:var(--sx-tint);border-color:var(--sx-line);color:var(--sx-ink);box-shadow:none}
.page-sx .ai-block .btn.gold:hover,.page-sx .ai-block .btn.soft:hover{background:var(--card);border-color:var(--sx);color:var(--sx2)}
.page-sx .ai-block .ai-out,.page-sx .ai-block .ai-bubble.user,.page-sx .ai-block .ai-bubble.assistant,.page-sx .ai-block .ai-model-name,.page-sx .ai-block input,.page-sx .ai-block select{color:var(--sx-ink)}
.page-sx .ai-tab.active{background:var(--sx);border-color:var(--sx);color:#fff}
.page-sx .ai-bubble.user{background:var(--sx-tint);border-color:var(--sx)}
.page-sx .ai-bubble.assistant{border-color:var(--sx-line)}
/* 移动端：表格保底横滚，内距收窄 */
@media(max-width:640px){
  .page-sx .qtab th,.page-sx .qtab td{padding:5px 4px}
  .page-sx .qtab th{white-space:nowrap}
  .page-sx .qtab-scroll table{width:max-content;min-width:100%}
  .page-sx .qtab-scroll{padding-bottom:var(--sp-4)}
}
/* 打印：恢复素底 */
@media print{
  .page-sx .qtab th{background:var(--card) !important}
}

/* ===== 页级样式：mianxiang（page-mian）===== */
/* 页头：卷首式，与手相页同制式，只换本页令牌 */
.page-mian .page h1{color:var(--mian-deep);font-family:var(--mian-serif);font-size:23px;letter-spacing:.3em;text-indent:.3em;text-align:center;line-height:1.3}
.page-mian .page h1::before{content:'';display:block;width:88px;height:1px;background:var(--mian-line);margin:0 auto var(--sp-3)}
.page-mian .page h1::after{content:'';display:block;width:88px;height:1px;background:var(--mian-line);margin:var(--sp-3) auto 0}
.page-mian .page .lead{color:var(--mian-ink2);text-align:center;font-size:12.5px;letter-spacing:.22em;text-indent:.22em;margin-top:var(--sp-3)}
.page-mian .page .lead::after{background:var(--mian-line)}
/* 模块标题条：通用段定形，页面段只定线色 */
.page-mian .mod-head{border-top-color:var(--mian-line);border-bottom-color:var(--mian-line)}
/* 字段与按钮 */
.page-mian .field label{color:var(--mian2);font-weight:400}
.page-mian .field select,.page-mian .field input{border-color:var(--mian-line);background:var(--card);color:var(--mian-deep)}
.page-mian .field select:focus,.page-mian .field input:focus{border-color:var(--mian);outline:none}
.page-mian .btn{background:var(--mian)}
.page-mian .btn:hover{background:var(--mian2)}
/* 条文卡与表格：去框改线，行线取本页浅线 */
.page-mian .info-box{background:transparent;border:0;border-top:1px solid var(--mian-line);border-radius:0;box-shadow:none;padding:var(--sp-2) 0 0}
.page-mian .info-box h4{color:var(--mian2);font-family:var(--mian-serif);font-weight:400;letter-spacing:.2em}
.page-mian .info-box p{line-height:1.7}
.page-mian .qtab-scroll{overflow-x:auto}
.page-mian .qtab{width:100%;border-collapse:collapse;font-size:13px;border-top:1px solid var(--mian-line)}
.page-mian .qtab th,.page-mian .qtab td{border:0;border-bottom:1px solid var(--mian-line);padding:6px 9px;text-align:left;vertical-align:top;color:var(--mian-ink)}
.page-mian .qtab th{background:var(--mian-tint);font-weight:400;color:var(--mian2);white-space:nowrap}
.page-mian .qtab .lbl{white-space:nowrap;color:var(--mian-ink2)}
.page-mian .mian-note{font-size:12px;color:var(--mian-ink2);margin:var(--sp-1) 0}
.page-mian .mod-body>.form-row{margin-top:var(--sp-2)}
.page-mian .qtab .field{align-items:flex-start}
.page-mian .qtab .field select{width:auto}
.page-mian .qtab td.vmd{vertical-align:middle}
.page-mian .qtab .nw{white-space:nowrap}
.page-mian .mian-dis{font-size:12px;color:var(--mian-ink2);text-align:center;margin-top:var(--sp-4)}
/* 面相图：底图取公有领域古籍原图，居中限宽，图注取本页次级字 */
.page-mian figure.mian-fig{display:block;width:min(400px,100%);margin:var(--sp-2) auto}
.page-mian figure.mian-fig img{display:block;width:100%;height:auto;background:var(--card);border:1px solid var(--mian-line)}
.page-mian figure.mian-fig figcaption{margin-top:var(--sp-2);font-size:12px;line-height:1.7;color:var(--mian-ink2);text-align:center}
/* 十二宫自绘图：面相页作用域，jg 类取本页梅紫变量（手相页 sx 变量不在本页生效，须逐项落到 mian 档） */
.page-mian .sx-jg{font-family:var(--mian-serif);color:var(--mian-ink)}
.page-mian .sx-jg .jg-skin{fill:#fff;stroke:var(--mian-ink);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.page-mian .sx-jg .jg-hill-t{font-size:14px;fill:var(--mian-deep);text-anchor:middle;paint-order:stroke;stroke:#fff;stroke-width:4;stroke-linejoin:round}
/* 十二宫自绘人脸图：勾线五官与巾冠、瞳仁（梅紫墨系统内取色） */
.page-mian .sx-jg .jg-feat{fill:none;stroke:var(--mian-ink);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.page-mian .sx-jg .jg-feat2{fill:none;stroke:var(--mian-ink);stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round;opacity:.8}
.page-mian .sx-jg .jg-hair{fill:var(--mian-deep)}
.page-mian .sx-jg .jg-iris{fill:var(--mian-deep)}
.page-mian .sx-jg .jg-glint{fill:#fff}
/* AI 面板（基础款） */
.page-mian .ai-block{border:0;border-top:1px solid var(--mian-line);border-bottom:1px solid var(--mian-line);border-radius:0;background:transparent;color:var(--mian-ink);box-shadow:none}
.page-mian .ai-head{background:transparent;border-bottom-color:var(--mian-line)}
.page-mian .ai-head h3{color:var(--mian2)}
.page-mian .ai-block .btn{background:var(--mian);color:#fff}
.page-mian .ai-block .btn:hover{background:var(--mian2)}
.page-mian .ai-block .btn.gold,.page-mian .ai-block .btn.soft{background:var(--mian-tint);border-color:var(--mian-line);color:var(--mian-ink);box-shadow:none}
.page-mian .ai-block .btn.gold:hover,.page-mian .ai-block .btn.soft:hover{background:var(--card);border-color:var(--mian);color:var(--mian2)}
.page-mian .ai-block .ai-out,.page-mian .ai-block .ai-bubble.user,.page-mian .ai-block .ai-bubble.assistant,.page-mian .ai-block .ai-model-name,.page-mian .ai-block input,.page-mian .ai-block select{color:var(--mian-ink)}
.page-mian .ai-tab.active{background:var(--mian);border-color:var(--mian);color:#fff}
.page-mian .ai-bubble.user{background:var(--mian-tint);border-color:var(--mian)}
.page-mian .ai-bubble.assistant{border-color:var(--mian-line)}
/* 移动端：表格保底横滚，内距收窄 */
@media(max-width:640px){
  .page-mian .qtab th,.page-mian .qtab td{padding:5px 4px}
  .page-mian .qtab th{white-space:nowrap}
  .page-mian .qtab-scroll table{width:max-content;min-width:100%}
  .page-mian .qtab-scroll{padding-bottom:var(--sp-4)}
}
/* 打印：恢复素底 */
@media print{
  .page-mian .qtab th{background:var(--card) !important}
}


/* ===== 深色主题：各页色系令牌（程序化生成：同色相、按角色翻明度，勿手工逐值编辑；调色改上方生成器规则） ===== */
@media (prefers-color-scheme: dark){
  html .modal.ai-cfg {
    --cfg-accent:#dc5944;
    --cfg-accent-deep:#e5d4d2;
  }
  html .wrap .page {
    --line:#cfcfcf;
    --ink:#454545;
  }
  html .page-wnl {
    --wnl:#2696a5;
    --wnl2:#2199ab;
    --wnl-deep:#d4e0e3;
    --wnl-ink:#cbd4d7;
    --wnl-ink2:#9ba9ac;
    --wnl-line:#404e4e;
    --wnl-tint:#212b2b;
  }
  html .page-zg {
    --zg:#5a83a8;
    --zg2:#4b7197;
    --zg-deep:#d7dbe0;
    --zg-ink:#cdd1d5;
    --zg-ink2:#9ca3aa;
    --zg-line:#3f4850;
    --zg-tint:#1f262d;
  }
  html .page-lhl {
    --lhl:#d45460;
    --lhl2:#d34857;
    --lhl-deep:#e3d4d5;
    --lhl-ink:#d4cece;
    --lhl-ink2:#ab9c9d;
    --lhl-line:#533c3e;
    --lhl-tint:#321b1c;
  }
  html .page-foli {
    --foli:#d39b3f;
    --foli2:#d19735;
    --foli-deep:#e3ded3;
    --foli-ink:#d6d2cd;
    --foli-ink2:#aea698;
    --foli-cinnabar:#d2695e;
    --foli-line:#534c3c;
    --foli-tint:#322c1a;
  }
  html .page-daoli {
    --dao:#5c6482;
    --dao2:#5a6282;
    --dao-deep:#d9dade;
    --dao-ink:#ced0d4;
    --dao-ink2:#9fa1a8;
    --dao-purple:#9476b3;
    --dao-line:#44454b;
    --dao-tint:#22242a;
  }
  html .page-zeri {
    --zr:#d16957;
    --zr2:#d2604a;
    --zr-deep:#e3d7d4;
    --zr-ink:#d5d1cd;
    --zr-line:#533f3c;
    --zr-tint:#321e1b;
    --zr-ink2:#ab9f9c;
  }
  html .page-hj {
    --hj:#be546b;
    --hj2:#bd4c67;
    --hj-deep:#e2d5d8;
    --hj-ink:#d4ced1;
    --hj-ink2:#a89ea2;
    --hj-line:#4f4044;
    --hj-tint:#2f1d21;
  }
  html .page-bazi {
    --bz:#50a27f;
    --bz2:#4ca080;
    --bz-deep:#d6e0dc;
    --bz-ink:#cfd4d1;
    --bz-ink2:#9fa7a2;
    --bz-line:#414e48;
    --bz-tint:#222b28;
  }
  html .page-tieban {
    --tie:#5f718d;
    --tie2:#5d708d;
    --tie-deep:#d8dbdf;
    --tie-ink:#cdd1d5;
    --tie-ink2:#9da4a9;
    --tie-line:#41474e;
    --tie-tint:#20252c;
    --tie-brass:#d1a565;
  }
  html .page-xx {
    --xx:#466394;
    --xx2:#415f95;
    --xx-deep:#d6d9e1;
    --xx-ink:#cdd0d5;
    --xx-line:#3e4651;
    --xx-tint:#1e252e;
    --xx-ink2:#9ca1ab;
  }
  html .page-nm {
    --nm:#60b9a9;
    --nm2:#56bba6;
    --nm-deep:#d5e2df;
    --nm-ink:#cfd4d2;
    --nm-ink2:#9ea9a5;
    --nm-line:#3d524b;
    --nm-tint:#1e2f28;
  }
  html .page-xz {
    --xz:#466faf;
    --xz2:#436eaf;
    --xz-deep:#d5dae2;
    --xz-ink:#cdd1d5;
    --xz-silver:#8a97ab;
    --xz-line:#3e4651;
    --xz-tint:#1d252f;
    --xz-hl:#212d35;
    --xz-ink2:#9ca2ab;
  }
  html .page-qz {
    --qz:#5f4e88;
    --qz2:#5f4c88;
    --qz-deep:#d9d6e0;
    --qz-ink:#d0ced4;
    --qz-line:#46404e;
    --qz-tint:#24202d;
    --qz-hl:#272334;
    --qz-ink2:#a09cab;
  }
  html .page-qm {
    --qm:#487e93;
    --qm2:#457c91;
    --qm-deep:#d6dee1;
    --qm-ink:#cdd2d5;
    --qm-cinnabar:#d3705f;
    --qm-line:#414b4d;
    --qm-tint:#212a2b;
    --qm-ink2:#9ca7ab;
  }
  html .page-dlr {
    --dlr:#a2764d;
    --dlr2:#a0724c;
    --dlr-deep:#e1dbd6;
    --dlr-ink:#d5d1ce;
    --dlr-brass:#d1a565;
    --dlr-line:#51493e;
    --dlr-tint:#2f281e;
    --dlr-ink2:#aba39c;
  }
  html .page-cz {
    --cz:#b27d54;
    --cz2:#af794c;
    --cz-deep:#e1dbd6;
    --cz-ink:#d5d1cd;
    --cz-gold:#d4b97e;
    --cz-line:#53493b;
    --cz-tint:#31291c;
    --cz-ink2:#aba29c;
  }
  html .page-ty {
    --ty:#5b71ad;
    --ty2:#566cad;
    --ty-deep:#d6d9e1;
    --ty-ink:#cecfd4;
    --ty-silver:#8e9aad;
    --ty-line:#40444f;
    --ty-tint:#1f242d;
    --ty-ink2:#9ca0ab;
  }
  html .page-xlr {
    --xlr:#74a069;
    --xlr2:#6b9e64;
    --xlr-deep:#d9ded8;
    --xlr-ink:#d0d3cf;
    --xlr-blossom:#b5c873;
    --xlr-line:#434f3f;
    --xlr-tint:#292d1f;
    --xlr-ink2:#9fab9c;
  }
  html .page-lq {
    --lq:#c3a628;
    --lq2:#c5a625;
    --lq-deep:#e4e1d2;
    --lq-ink:#d5d4cd;
    --lq-line:#544f3a;
    --lq-tint:#322d1b;
    --lq-ink2:#aba89c;
  }
  html .page-tr {
    --tr:#6e5bba;
    --tr2:#6753b9;
    --tr-deep:#d7d5e2;
    --tr-ink:#cfcdd5;
    --tr-starlight:#9a86c4;
    --tr-line:#453e50;
    --tr-tint:#241e2e;
    --tr-ink2:#9f9cab;
  }
  html .page-yq {
    --yq:#4faa6a;
    --yq2:#4aa468;
    --yq-deep:#d6e1d9;
    --yq-ink:#cfd3d0;
    --yq-line:#404f44;
    --yq-tint:#212b25;
    --yq-ink2:#9ea8a2;
  }
  html .page-sx {
    --sx:#956faa;
    --sx2:#9268ab;
    --sx-deep:#dcd7e0;
    --sx-ink:#d1ced4;
    --sx-line:#49404f;
    --sx-tint:#281f2d;
    --sx-ink2:#a39da9;
  }
  html .page-mian {
    --mian:#aa6990;
    --mian2:#a7628c;
    --mian-deep:#e1d5dc;
    --mian-ink:#d4ced2;
    --mian-line:#4f4049;
    --mian-tint:#2c2127;
    --mian-ink2:#ab9ca5;
  }
  html .page-ln {
    --ln:#a0b642;
    --ln2:#9eba3a;
    --ln-deep:#e0e3d3;
    --ln-ink:#d2d5ce;
    --ln-accent:#c1cc77;
    --ln-line:#4f523c;
    --ln-tint:#2e2f1e;
    --ln-ink2:#a8ab9c;
  }
  html .page-ms {
    --ms:#cf6d71;
    --ms2:#c7484e;
    --ms-deep:#e2d4d5;
    --ms-ink:#d3cfd0;
    --ms-line:#503f41;
    --ms-tint:#301c1e;
    --ms-ink2:#ab9c9c;
  }
  html .page-ts {
    --ts:#47a761;
    --ts2:#47a962;
    --ts-deep:#d6e1d9;
    --ts-ink:#cfd3d1;
    --ts-gold:#4aae65;
    --ts-line:#424d44;
    --ts-tint:#222b23;
    --ts-ink2:#9caba0;
  }
  html .page-fs {
    --fs:#5686a3;
    --fs2:#5284a5;
    --fs-deep:#d6dce0;
    --fs-ink:#ced1d4;
    --fs-line:#404b4f;
    --fs-tint:#20292c;
    --fs-ink2:#9ca5ab;
  }
  html .page-fy {
    --fy:#6f876c;
    --fy2:#6c8869;
    --fy-deep:#dbdfd8;
    --fy-ink:#d0d3cf;
    --fy-silver:#7f909e;
    --fy-line:#454b44;
    --fy-tint:#242a23;
    --fy-ink2:#9eab9c;
  }
  html .page-hl {
    --hl:#479693;
    --hl2:#45918f;
    --hl-deep:#d6e0e0;
    --hl-ink:#ced4d3;
    --hl-ink2:#9cabaa;
    --hl-brass:#d2a331;
    --hl-line:#424d4b;
    --hl-tint:#222a29;
  }
  html .page-zl {
    --zl:#cf4634;
    --zl2:#cb402c;
    --zl-deep:#e4d5d3;
    --zl-ink:#d4d1ce;
    --zl-ink2:#aaa29c;
    --zl-gold:#d2a331;
    --zl-line:#543e3b;
    --zl-tint:#331c19;
  }
  html .page-hh {
    --hh:#c053b9;
    --hh2:#bd4cb5;
    --hh-deep:#e2d4e1;
    --hh-ink:#d5cdd4;
    --hh-ink2:#ac9bab;
    --hh-line:#513e50;
    --hh-tint:#2d1f2c;
    --hh-alt:#d289cc;
  }
  html .page-ly {
    --ly:#d3883f;
    --ly2:#d38231;
    --ly-deep:#e5dbd2;
    --ly-ink:#d6d1cc;
    --ly-brass:#dfac73;
    --ly-line:#564a39;
    --ly-tint:#342919;
    --ly-ink2:#aba39c;
  }
  html .page-mh {
    --mh:#be607f;
    --mh2:#c0587c;
    --mh-deep:#e2d5d9;
    --mh-ink:#d4ced2;
    --mh-blossom:#d4778f;
    --mh-line:#513e46;
    --mh-tint:#311c24;
    --mh-ink2:#ab9ca1;
  }
  html .page-os .ospage {
    --foot-ink:#d2d1d0;
  }
  html .page-zw {
    --zw:#8258b2;
    --zw2:#7f56ae;
    --zw-deep:#dbd6e0;
    --zw-ink:#d1ced4;
    --zw-ink2:#a29ea9;
    --zw-line:#463e51;
    --zw-tint:#271f2e;
    --zw-tint2:#ebe2f2;
  }
}

/* ===== 深色主题补漏：单行与续行令牌规则（.dtm-* 日期选择器主题族、说明/典籍/六爻盘/开源页/奇门弹层） ===== */
@media (prefers-color-scheme: dark){
  html .dtm-wnl {
    --tk:#19a28f66b8;
    --tk2:#2450b8c7e0;
    --tk-ink:#5bf84c3c4764;
    --tk-line:#1e7f19491949;
    --tk-tint:#10c7d1bd1b;
  }
  html .dtm-lhl {
    --tk:#72b198b17d2;
    --tk2:#933234c2090;
    --tk-ink:#4bc957935656;
    --tk-line:#178520431f41;
    --tk-tint:#ac213201291;
  }
  html .dtm-foli {
    --tk:#6bddeb19e3;
    --tk2:#8ea12d02380;
    --tk-ink:#49f14fe5596b;
    --tk-line:#177d1a3e204b;
    --tk-tint:#aa7ccc133b;
  }
  html .dtm-daoli {
    --tk:#12d211bbd9a;
    --tk2:#1a0a18791236;
    --tk-ink:#569e53b74cbe;
    --tk-line:#1d4e1cad1a7a;
    --tk-tint:#1056fa3d8c;
  }
  html .dtm-zeri {
    --tk:#7991687191d;
    --tk2:#9661ee6231a;
    --tk-ink:#4ae9524c5873;
    --tk-line:#17851eeb2043;
    --tk-tint:#ac212021320;
  }
  html .dtm-hh {
    --tk:#9401761a0b;
    --tk2:#c5e200fdc1;
    --tk-ink:#4b2a58324bc9;
    --tk-line:#18501f7818a7;
    --tk-tint:#c6e1174cfd;
  }
  html .dtm-bazi {
    --tk:#1566b1af7d;
    --tk2:#1daaea61473;
    --tk-ink:#56104d4c51ae;
    --tk-line:#1e4119871b98;
    --tk-tint:#108dd55e68;
  }
  html .dtm-hj {
    --tk:#96917381434;
    --tk2:#c5e200f1b58;
    --tk-ink:#4d06565651fd;
    --tk-line:#18f21ed61d33;
    --tk-tint:#ba3123f10c7;
  }
  html .dtm-zl {
    --tk:#6de177419b3;
    --tk2:#887206023d4;
    --tk-ink:#4ca7523d56b5;
    --tk-line:#174a1f78207e;
    --tk-tint:#a33129113af;
  }
  html .dtm-zw {
    --tk:#10a115f4aa4;
    --tk2:#16c71da7ec1;
    --tk-ink:#51ae56854cd7;
    --tk-line:#1c3d1f59186f;
    --tk-tint:#ea311abc37;
  }
  html .dtm-tieban {
    --tk:#133510d5d45;
    --tk2:#1a85170611c8;
    --tk-ink:#5862523d4afa;
    --tk-line:#1e611c0e1967;
    --tk-tint:#1116f7accc;
  }
  html .dtm-xx {
    --tk:#15a511a6ac4;
    --tk2:#1e651899dd5;
    --tk-ink:#58bd54334a9f;
    --tk-line:#1f671c481861;
    --tk-tint:#11d9f86c09;
  }
  html .dtm-nm {
    --tk:#164fa59c7f;
    --tk2:#1f40d3410eb;
    --tk-ink:#56154d475008;
    --tk-line:#1fd417f41a94;
    --tk-tint:#120abd8e2b;
  }
  html .dtm-xz {
    --tk:#16c611bf9be;
    --tk2:#1f9d181fcb9;
    --tk-ink:#588152804adb;
    --tk-line:#1f6a1c5a185e;
    --tk-tint:#1247f3fb9b;
  }
  html .dtm-qz {
    --tk:#11cf1457c0d;
    --tk2:#18391c051033;
    --tk-ink:#540656f34c69;
    --tk-line:#1c8b1e821946;
    --tk-tint:#ff01144c9e;
  }
  html .dtm-qm {
    --tk:#154edecb05;
    --tk2:#1e151273e16;
    --tk-ink:#585c4fa54b00;
    --tk-line:#1e241a7c19a4;
    --tk-tint:#10c0da6d22;
  }
  html .dtm-dlr {
    --tk:#ad7107015a7;
    --tk2:#ea616d71daa;
    --tk-ink:#4b6b51ae57f1;
    --tk-line:#18461b841f82;
    --tk-tint:#bd1e381211;
  }
  html .dtm-ty {
    --tk:#156512b8b32;
    --tk2:#1d8f19cfed8;
    --tk-ink:#579a54834bc2;
    --tk-line:#1ed81d1218f0;
    --tk-tint:#1174fc7c6e;
  }
  html .dtm-ly {
    --tk:#6bd107919e3;
    --tk2:#872163423f6;
    --tk-ink:#4966510b59f6;
    --tk-line:#166a1abd215e;
    --tk-tint:#9f6df213ec;
  }
  html .dtm-mh {
    --tk:#a0716d61291;
    --tk2:#c40205519ef;
    --tk-ink:#4c7e56de5087;
    --tk-line:#18261fa21c8d;
    --tk-tint:#b1112d1fb7;
  }
  html .dtm-xlr {
    --tk:#1263cde13b9;
    --tk2:#19fa11431b23;
    --tk-ink:#52da4e2b5531;
    --tk-line:#1b1b18e71ee1;
    --tk-tint:#e12c54118e;
  }
  html .dtm-lq {
    --tk:#62d9f61a4c;
    --tk2:#7a4d3c24a9;
    --tk-ink:#4a4c4d5f5910;
    --tk-line:#16e418ff20e4;
    --tk-tint:#ac2c9e1320;
  }
  html .dtm-tr {
    --tk:#14131693a11;
    --tk2:#1b8e1f1ed51;
    --tk-ink:#5609585c4b00;
    --tk-line:#1ca61f4b187d;
    --tk-tint:#ff011eebf4;
  }
  html .dtm-yq {
    --tk:#15d7ab0128d;
    --tk2:#1e39e1918d9;
    --tk-ink:#55794de3534e;
    --tk-line:#1ed318f51d5c;
    --tk-tint:#10d8d0af93;
  }
  html .dtm-sx {
    --tk:#f2c1441c66;
    --tk2:#14a81c431033;
    --tk-ink:#51ae56de4c7e;
    --tk-line:#1b611eca18fe;
    --tk-tint:#e4f117ac68;
  }
  html .dtm-mian {
    --tk:#c0d1495f87;
    --tk2:#10401c2d14f7;
    --tk-ink:#4ca956b350cb;
    --tk-line:#18fe1eca1b61;
    --tk-tint:#cfd10e5eaa;
  }
  html .dtm-ln {
    --tk:#bd9917176f;
    --tk2:#fdeb042153;
    --tk-ink:#4f784bae57ae;
    --tk-line:#18f017c22006;
    --tk-tint:#c4cbd11211;
  }
  html .dtm-ms {
    --tk:#891183b1794;
    --tk2:#b03218c2069;
    --tk-ink:#4da555b75490;
    --tk-line:#17db1fed1ea7;
    --tk-tint:#b4012a211d0;
  }
  html .dtm-ts {
    --tk:#165da201310;
    --tk2:#1ec3d911a22;
    --tk-ink:#55c94d93515d;
    --tk-line:#1e1b19ad1d15;
    --tk-tint:#108dd551004;
  }
  html .dtm-fs {
    --tk:#14fef2db8a;
    --tk2:#1d3d14c4f1e;
    --tk-ink:#577852354be4;
    --tk-line:#1eca1ab318fe;
    --tk-tint:#1116ddeccc;
  }
  html .dtm-fy {
    --tk:#1193e8f11f3;
    --tk2:#184d136018f5;
    --tk-ink:#52df4eb454a8;
    --tk-line:#1cad1a7a1d4e;
    --tk-tint:#fb7da6103c;
  }
  html .dtm-hl {
    --tk:#15a5ac7b36;
    --tk2:#1d91ea9f13;
    --tk-ink:#56804cdc4d81;
    --tk-line:#1dfd19cb1a70;
    --tk-tint:#1070d72df2;
  }
  html .page-ly .page {
    --ly-neutral:#12ae106fe0d;
    --ly-warn:#a2deb01678;
    --ly-bad:#86216661870;
  }
  html .page-sm {
    --dk-ink:#4e1f50f8553d;
    --dk-body:#ef61018113a;
    --dk-mute:#39ab3b113ddd;
    --dk-mute2:#3df53f73418b;
    --dk-line:#18311a8c1f97;
    --dk-line2:#e6b13741f33;
    --dk-red:#5d817d31acc;
    --dk-bg:#ff0ff0ff0;
    --foot-ink:#4f9b515553c1;
    --gold:#5d817d31acc;
    --gold2:#7bb209824bd;
    --gold-brown:#5d617b41aae;
    --gold-bg:#c34eb113ac;
  }
  html .page-dj .page {
    --dj-ink:#4da551ae55b7;
    --dj-ink2:#3d403f794240;
    --dj-line:#19111b151eb7;
    --dj-red:#61a17f81a86;
    --foot-ink:#4eca515c5492;
    --gold:#61a17f81a86;
    --gold2:#7bb209824bd;
    --gold-brown:#5d617b41aae;
    --gold-bg:#c66ec2137a;
    --red:#61a17f81a86;
  }
  html .zp-v {
    --lu:#2c6181a1dfb;
    --quan:#1d43183c3b7;
    --ke:#16cb1fa1e62;
    --ji:#45ba45ba45ba;
  }
  html .page-os .ospage {
    --gold:#75e17b61960;
    --gold2:#8c5215023be;
    --gold-brown:#696183a19f9;
  }
  html .modal.qi-gong-modal {
    --qm2:#1d9112cdea9;
    --qm-ink:#585c4fa54b00;
    --qm-line:#1e241a7c19a4;
    --qm-ink2:#44c23d6a3abe;
  }
}
/* ===== 深色主题：全局令牌（跟随系统 prefers-color-scheme；各页色系变体见上方生成块） ===== */
:root{color-scheme:light}
@media (prefers-color-scheme: dark){
  :root{
    color-scheme:dark;
    --paper:#17171a;
    --paper2:#1d1c20;
    --ink:#e6e1d6;
    --ink2:#a39e93;
    --line:#37363c;
    --gold:#d4a43c;
    --gold2:#c9a04a;
    --red:#c65a48;
    --red2:#d4715f;
    --card:#222126;
    --shadow:0 1px 6px rgba(0,0,0,.45);
    --gold-bg:#262319;
    --nav:#101012;
    --nav-text:#e8e4da;
    --cal-hover:#2a2930;
    --cal-selected:#34333b;
    --green:#4caf5e;
    --brown:#c07a4a;
    --gold-brown:#c2a04a;
    --special-bg:#2e2718;
    --special-text:#d4b06a;
    --special-border:#8a7440;
    /* 轮盘缺省：页面未自定义 --wheel-* 时的深色值 */
    --wheel-line:#6f6e75;
    --wheel-core:#26252a;
    --wheel-arc:#8a8990;
    --wheel-cur:#c9c0ae;
    --wheel-deep:#e6e1d6;
    --wheel-ink:#c9c9c9;
    --wheel-ink2:#8a8990;
  }
}
/* ===== 深色主题：规则级硬编码色覆写 =====
   对象是不走向页令牌的直写色：首页 .hm- 目录、禄权科与五行关系语义色、民俗吉badge、
   说明文档悬停、塔罗页底牌名。奶油小签上的深字（签底不动则字不动）保持原值。 */
@media (prefers-color-scheme: dark){
  .lq-禄,.dp-cell i.dp-禄,.zp-liunian b.ln-禄,.info-box.lq-禄 h4{color:#4fae7c}
  .lq-权,.dp-cell i.dp-权,.zp-liunian b.ln-权,.info-box.lq-权 h4{color:#d4a43c}
  .lq-科,.dp-cell i.dp-科,.zp-liunian b.ln-科,.info-box.lq-科 h4{color:#5f9be0}
  .lq-禄{border-color:#4fae7c}.lq-权{border-color:#d4a43c}.lq-科{border-color:#5f9be0}
  .info-box.lq-禄{border-top-color:#4fae7c}.info-box.lq-权{border-top-color:#d4a43c}.info-box.lq-科{border-top-color:#5f9be0}
  .dp-badge.dp-1{background:#d4a43c}
  .fei-6,.fei-7{color:#d4a43c}
  .tip.sha-ji{color:#57b873}
  .rel.he{background:#1d2b21;border-color:#2f4a38;color:#57b873}
  .rel.sheng{background:#1c2735;border-color:#31506e;color:#5f9be0}
  .rel.ke{background:#2f1d1d;border-color:#5a3030}
  .rel.bihe{background:#2b2519;border-color:#5a4e2e;color:#c2a04a}
  .sk-block .rel.he{color:#57b873}
  .sk-block .rel.bihe{color:#c2a04a}
  .sk-block .rel.chong{color:#c89040}
  .page-ms .ms-badge.ms-ok{border-color:#57b873;color:#57b873;background:transparent}
  .page-ms .ms-good{color:#57b873}
  .page-sm .df-hit:hover{background:#232226}
  .page-sm .nv-tool.on{background:#232226}
  .page-tr .tr-name,.page-tr .tr-sym,.page-tr .tt-name{color:#b9a8d8}
  .hm-motto{color:#a39e93;border-top-color:#3a383c;border-bottom-color:#3a383c}
  .hm-solar,.hm-extra{color:#a39e93}
  .hm-lunar-big{color:#e6e1d6}
  .hm-gz{color:#b5ad9c}
  .hm-gz i{color:#7f7a70}
  .hm-head::after{background:#3a383c}
  .hm-cat-h .num{color:#d06a57;border-right-color:#3a383c}
  .hm-cat-h .nm{color:#e6e1d6}
  .hm-cat-h .en{color:#7d7870}
  .hm-cat-h .cnt{color:#8d887e}
  .hm-tool{border-bottom-color:#2e2d31}
  .hm-idx,.hm-de{color:#8d887e}
  .hm-nm{color:#e6e1d6}
  .hm-line{color:#55524a}
  .hm-tool:hover .hm-nm,.hm-tool:hover .hm-line{color:#d06a57}
  .hm-page::after{background:#3a383c}
  #footer .os-link{border-bottom-color:#55524a}
  html .hm-page{--gold:#d06a57;--gold2:#b85c4a;--gold-brown:#b85c4a;--foot-ink:#8d887e}
}
