/* ============================================================
 * 醉千年术数工作台 · 报告引擎样式
 * ============================================================
 * 两块内容：
 *   ① 界面层（.rp-fab / .rp-modal）—— 常驻在工具页里，屏幕可见
 *   ② 文档层（.rp-doc 及其子元素）—— 报告本体，屏幕预览与 A4 打印共用
 *
 * 所有颜色都带 var(--accent, 兜底) 形式：
 *   白标改色时只需改 CSS 变量，报告自动跟着变。
 * ============================================================ */

/* ---------------- ① 界面层：导出按钮 ---------------- */
.rp-fab{
  position:fixed; right:18px; bottom:22px; z-index:2147483000;
  display:flex; align-items:center; gap:7px;
  padding:10px 17px 10px 14px; border:1px solid rgba(201,176,140,.42); border-radius:2px;
  background:rgba(16,13,9,.86); color:#f0dcb8;
  font:600 13.5px/1 "Songti SC","STSong","SimSun",serif;
  letter-spacing:.14em; cursor:pointer;
  box-shadow:0 10px 30px rgba(0,0,0,.55); /* taste-skill-ignore 浮签是 sticky 浮层，规则允许 */
  transition:transform .18s ease, box-shadow .18s ease, opacity .18s ease;
  -webkit-tap-highlight-color:transparent;
}
.rp-fab:hover{ transform:translateY(-2px); border-color:rgba(201,176,140,.7); background:rgba(24,20,14,.92); box-shadow:0 14px 34px rgba(0,0,0,.62); } /* taste-skill-ignore 同上 */
.rp-fab:active{ transform:translateY(0); }
.rp-fab[hidden]{ display:none !important; }
.rp-fab svg{ width:16px; height:16px; flex:none; }
@media (max-width:520px){
  .rp-fab{ right:12px; bottom:14px; padding:9px 14px; font-size:13px; }
  .rp-fab .rp-fab-txt{ display:none; }
}

/* ---------------- 专属报告：页面内预览 ---------------- */
.rp-live-report[hidden]{display:none!important}
.rp-live-meta{margin:10px 0 14px;padding:10px 13px;border-radius:8px;background:var(--panel2,#f3eee5);font-size:12px;line-height:1.8}
.rp-live-section{margin:12px 0;padding:16px 18px;border:1px solid var(--line,#e3dac9);border-radius:10px;background:var(--panel,#fffdf8);color:inherit}
.rp-live-section h2{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:16px;line-height:1.55}
.rp-live-section p{margin:9px 0;font-size:14px;line-height:1.85}
.rp-live-section .rp-live-lead{font-weight:600}
.rp-live-no{flex:none;color:var(--accent,#8a4b2a);font-size:12px}
.rp-live-grade{margin-left:auto;color:var(--txt-dim,#7a7163);font-size:12px;font-weight:400}
.rp-live-advice{margin:9px 0 0;padding-left:22px;font-size:14px;line-height:1.85}
.rp-live-table-wrap{overflow:auto;margin-top:10px}
.rp-live-table{width:100%;border-collapse:collapse;font-size:12px}
.rp-live-table th,.rp-live-table td{padding:7px 8px;border-bottom:1px solid var(--line,#e3dac9);text-align:left;white-space:nowrap}
.rp-live-table th{font-weight:700}
/* 通用表（十神表、流年表）：允许换行，不写死列宽 */
.rp-live-table-wide{table-layout:auto}
.rp-live-table-wide th,.rp-live-table-wide td{white-space:normal;vertical-align:top;line-height:1.75}
.rp-live-table-wide td:first-child{white-space:nowrap}
.rp-live-note{margin:8px 0 0;font-size:11.5px;line-height:1.8;color:var(--txt-dim,#7a7163)}
/* 问答块：引路解惑 */
.rp-live-qa{margin:12px 0 0;display:flex;flex-direction:column;gap:10px}
.rp-live-qa-item{padding:11px 14px;border-left:3px solid var(--accent,#8a4b2a);border-radius:0 8px 8px 0;background:var(--panel2,#f3eee5)}
.rp-live-q{font-weight:700;font-size:13px;line-height:1.7}
.rp-live-a{margin-top:5px;font-size:13px;line-height:1.9}
.rp-live-error{padding:12px;border-radius:8px;background:#fff0ed;color:#9b3020}

/* 个人专属报告：折叠章节、章节导语与段落级本地追问 */
.rp-live-details{padding:0;overflow:hidden}
.rp-live-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 12px;align-items:center;padding:14px 18px;cursor:pointer;list-style:none}
.rp-live-summary::-webkit-details-marker{display:none}
.rp-live-summary::after{content:'＋';grid-column:2;grid-row:1/3;color:var(--txt-dim,#7a7163);font-size:16px}
.rp-live-details[open]>.rp-live-summary::after{content:'−'}
.rp-live-summary-title{font-size:16px;font-weight:700;line-height:1.5}
.rp-live-deck{grid-column:1;color:var(--txt-dim,#7a7163);font-size:13px;line-height:1.6}
.rp-live-summary .rp-live-grade{grid-column:2;grid-row:1;margin:0}
.rp-live-section-body{padding:0 18px 16px}
.rp-live-flow-label{margin:12px 0 5px;color:var(--txt-dim,#7a7163);font-size:11px;letter-spacing:.08em}
.rp-live-basis{display:flex;gap:9px;margin:7px 0 11px;padding:8px 10px;border-left:2px solid var(--accent,#8a4b2a);background:var(--panel2,#f3eee5);font-size:11px;line-height:1.75}
.rp-live-basis b{flex:none}
.rp-live-basis span{min-width:0}
.rp-live-boundary{display:flex;gap:10px;margin-top:12px;padding:10px 12px;border-left:2px solid var(--accent,#8a4b2a);background:var(--panel2,#f3eee5);font-size:12px;line-height:1.8}
.rp-live-boundary b{flex:none}
.rp-live-boundary span{min-width:0}
.rp-live-para{margin:7px 0 11px}
.rp-live-para>p{margin:0}
.rp-paragraph-ask{margin-top:4px;padding:2px 0;border:0;background:transparent;color:var(--accent,#8a4b2a);font:inherit;font-size:11px;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.rp-paragraph-ask:hover,.rp-paragraph-ask:focus-visible{color:var(--txt,#211d17)}
.rp-live-inquiry{margin-top:8px;padding:10px 12px;background:var(--panel2,#f3eee5);border-radius:6px}
.rp-live-inquiry[hidden]{display:none!important}
.rp-live-inquiry-h{margin-bottom:7px;font-size:12px;font-weight:700}
.rp-live-inquiry-actions{display:flex;flex-wrap:wrap;gap:6px}
.rp-live-inquiry-actions button{padding:5px 9px;border:1px solid var(--line,#e3dac9);border-radius:4px;background:var(--panel,#fffdf8);color:inherit;font:inherit;font-size:11px;cursor:pointer}
.rp-live-inquiry-actions button:hover,.rp-live-inquiry-actions button:focus-visible{border-color:var(--accent,#8a4b2a);outline:2px solid transparent}
.rp-live-inquiry-answer{margin-top:8px;font-size:13px;line-height:1.8}
.rp-inquiry-result>p{margin:5px 0}
.rp-inquiry-result ul{margin:5px 0;padding-left:20px}
.rp-inquiry-result .rp-live-note{margin-top:7px}
@media print{
  .rp-paragraph-ask,.rp-live-inquiry,.rp-noprint{display:none!important}
  .rp-live-details:not([open])>.rp-live-section-body{display:block!important}
}

/* ---------------- ② 界面层：预览弹窗 ---------------- */
.rp-modal{
  position:fixed; inset:0; z-index:2147483100;
  display:flex; flex-direction:column;
  background:rgba(6,5,4,.86); backdrop-filter:blur(4px);
  font:14px/1.6 "PingFang SC","Microsoft YaHei",system-ui,sans-serif;
}
.rp-modal[hidden]{ display:none !important; }
.rp-bar{
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  padding:10px 14px; background:#12100d; border-bottom:1px solid rgba(201,176,140,.20);
  box-shadow:0 2px 14px rgba(0,0,0,.5); /* taste-skill-ignore 工具条是 sticky bar，规则允许 */
}
.rp-bar .rp-h{ font-family:"Songti SC","STSong","SimSun",serif; font-weight:600; font-size:15px;
  color:#f0dcb8; letter-spacing:.16em; margin-right:6px; }
.rp-bar label{ color:#9a9080; font-size:12px; display:flex; align-items:center; gap:5px; }
.rp-bar input{
  width:130px; padding:5px 9px; border:1px solid rgba(201,176,140,.24); border-radius:2px;
  font:13px/1.4 inherit; color:#efe6d4; background:rgba(255,246,228,.05);
}
.rp-bar input:focus{ outline:1px solid rgba(201,176,140,.65); outline-offset:0; border-color:transparent; }
.rp-sp{ flex:1 1 auto; }
.rp-btn{
  padding:7px 15px; border-radius:2px; cursor:pointer; white-space:nowrap;
  border:1px solid rgba(201,176,140,.30); background:transparent; color:#cbbfa8;
  font:600 13px/1.2 inherit; letter-spacing:.03em;
  transition:background .15s ease, border-color .15s ease, color .15s ease;
}
.rp-btn:hover{ background:rgba(201,176,140,.10); border-color:rgba(201,176,140,.55); color:#f0dcb8; }
.rp-btn.pri{ background:#82271e; border-color:rgba(240,220,184,.22); color:#f8e8cd; }
.rp-btn.pri:hover{ filter:brightness(1.08); }
.rp-btn[disabled]{ opacity:.5; cursor:not-allowed; }
.rp-stage{ flex:1 1 auto; overflow:auto; padding:22px 12px 40px; background:#0e0c09; }
.rp-frame{
  display:block; width:100%; max-width:830px; margin:0 auto;
  border:1px solid rgba(201,176,140,.18); border-radius:2px; background:#fff;
  box-shadow:0 24px 70px rgba(0,0,0,.66); /* taste-skill-ignore 纸面浮在暗底上，投影是「这是一张纸」的唯一线索 */
}
.rp-tip{ color:#8b8272; text-align:center; font-size:12px; padding:10px 0 0; letter-spacing:.08em; }
.rp-toast{
  position:fixed; left:50%; bottom:34px; transform:translateX(-50%) translateY(10px);
  background:rgba(16,13,9,.96); color:#f0dcb8; border:1px solid rgba(201,176,140,.32);
  padding:9px 17px; border-radius:2px; letter-spacing:.08em;
  font-size:13px; opacity:0; pointer-events:none; transition:opacity .2s ease, transform .2s ease;
  z-index:2147483200;
}
.rp-toast.on{ opacity:1; transform:translateX(-50%) translateY(0); }

/* iOS 长图浮层：a[download] 在 iOS 上不落地，只能铺出来让用户长按存相册 */
.rp-imgmask{
  position:fixed; inset:0; z-index:2147483300;
  display:flex; flex-direction:column; background:rgba(8,6,4,.94);
}
.rp-imgmask-bar{
  flex:none; display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:12px 14px; color:#f0dcb8; font-size:13px; letter-spacing:.04em;
  background:#12100d; border-bottom:1px solid rgba(201,176,140,.24);
  padding-bottom:calc(12px + env(safe-area-inset-bottom, 0px) * 0);
}
.rp-imgmask-bar button{
  flex:none; padding:6px 14px; border-radius:2px; cursor:pointer;
  border:1px solid rgba(201,176,140,.4); background:transparent; color:#f0dcb8; font-size:13px;
  -webkit-appearance:none; appearance:none;
}
.rp-imgmask-body{
  flex:1 1 auto; overflow:auto; -webkit-overflow-scrolling:touch;
  padding:10px; text-align:center;
}
.rp-imgmask-body img{ max-width:100%; height:auto; display:block; margin:0 auto; background:#fffdf8; }

/* ============================================================
 * ③ 文档层：报告本体
 * ============================================================ */
.rp-doc{
  margin:0; padding:0;
  background:#f0ece2;
  color:#2b2620;
  font:14px/1.78 "PingFang SC","Microsoft YaHei","Hiragino Sans GB",system-ui,sans-serif;
  -webkit-print-color-adjust:exact; print-color-adjust:exact;
  --rp-ink:#17140f;
  --rp-dim:#6e6656;
  --rp-line:#ded5c3;
  --rp-accent:#9c2b23;
  --rp-gold:#8a6a2f;
  --rp-paper:#fbf9f3;
  /* 宿主工具页可能是暗色主题（--panel/--line 为深色），报告文档里一律改回宣纸色。
     否则 .rp-live-section 这类「页面预览 / 报告正文」共用的卡片会变成深底深字。
     注意只覆盖报告文档内部，工具页上的 .rp-live-report 预览仍用页面自己的 --panel。 */
  --panel:#fffdf8; --panel2:#f3eee5; --line:#e3dac9; --txt-dim:#78705f;
}
.rp-sheet{
  width:794px; margin:0 auto; background:var(--rp-paper);
  box-sizing:border-box; padding:0 0 26px;
  position:relative;
}

/* ---- 封面 ---- */
.rp-cover{
  position:relative; box-sizing:border-box;
  /* 底部留 96px：页脚是 absolute 贴底（bottom:52px，高约 27px），
     留 56px 会让落款与双印压在页码上。 */
  min-height:1040px; padding:64px 56px 96px;
  /* 封面就是一张纸。原来的径向渐变 + 罗盘暗纹是「中式模板」的典型做法，
     拿掉之后，抬头、正文、落款自己会立住。 */
  background:var(--rp-paper);
  border-bottom:1px solid var(--rp-line);
  display:flex; flex-direction:column;
  overflow:hidden;
}
/* 版框：古籍一叶四周的边线，这里是报告的外框 */
.rp-cover::before{content:none}
.rp-cover::after{
  content:""; position:absolute; inset:26px;
  border:1px solid var(--rp-line); pointer-events:none;
}
/* 封面里除水印外的子元素抬到版框之上。页脚必须排除：
   它是 position:absolute 贴底定位，被这条规则改成 relative 后会掉进 flex 流，
   结果压在落款与双印上、页码还被裁到版心外。 */
.rp-cover > *:not(.rp-wm):not(.rp-pagefoot){ position:relative; z-index:2; }

.rp-seal{
  width:56px; height:56px; flex:none; box-sizing:border-box;
  display:flex; align-items:center; justify-content:center;
  border:2px solid var(--rp-accent); border-radius:4px;
  color:var(--rp-accent); font:700 27px/1 "Songti SC","SimSun",serif;
  letter-spacing:0;
}
/* 封面整体居中：品牌行、标题、副题、分隔线、参数表都在中轴上。
   letter-spacing 会在最后一个字后留空，使居中视觉左偏，用 padding-left 补回来。 */
.rp-brandline{ display:flex; align-items:center; justify-content:center; gap:14px; }
.rp-brand-txt{ padding-left:.12em; text-align:center; }
.rp-brand-txt .bn{ font:600 17px/1.3 "Songti SC","SimSun",serif; letter-spacing:.12em; color:var(--rp-ink); }
.rp-brand-txt .bs{ font-size:11px; letter-spacing:.22em; color:var(--rp-dim); margin-top:3px; }

.rp-cover-mid{ flex:1 1 auto; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:34px 0 26px; }
.rp-kicker{
  font-size:11px; letter-spacing:.42em; color:var(--rp-gold);
  text-transform:uppercase; margin-bottom:16px; text-align:center; padding-left:.42em;
}
.rp-title{
  margin:0; font:600 40px/1.32 "Songti SC","SimSun","Noto Serif CJK SC",serif;
  letter-spacing:.10em; color:var(--rp-ink); text-align:center; padding-left:.10em;
}
.rp-title-en{
  margin:14px 0 0; font:400 12px/1.5 Georgia,"Times New Roman",serif;
  letter-spacing:.24em; color:var(--rp-dim); text-transform:uppercase;
  text-align:center; padding-left:.24em;
}
.rp-hr{ display:flex; align-items:center; justify-content:center; gap:10px; margin:26px 0 0; }
.rp-hr i{ flex:none; width:44px; height:1px; background:var(--rp-gold); opacity:.7; }
.rp-hr em{ font-style:normal; font-size:11px; letter-spacing:.3em; color:var(--rp-gold); padding-left:.3em; }

.rp-cover-meta{ margin:34px auto 0; border-collapse:collapse; font-size:13px; }
.rp-cover-meta th{
  text-align:left; font-weight:400; color:var(--rp-dim);
  letter-spacing:.16em; padding:7px 22px 7px 0; white-space:nowrap; vertical-align:top;
}
.rp-cover-meta td{ padding:7px 0; color:var(--rp-ink); border-bottom:1px dotted var(--rp-line); min-width:280px; }
.rp-cover-bottom{margin-top:auto;display:flex;flex-direction:column;align-items:flex-end;gap:10px;position:relative;z-index:2}
.rp-cover-foot{
  width:100%;margin-top:0;padding-top:18px;border-top:1px solid var(--rp-line);
  font-size:11px;color:var(--rp-dim);letter-spacing:.06em;line-height:1.9;
}
.rp-seal-pair{display:flex;align-items:flex-end;justify-content:flex-end;gap:10px;height:70px}
.rp-seal-img{display:block;height:66px;width:auto;max-width:70px;object-fit:contain;image-rendering:auto}
.rp-seal-img.tian{height:68px;max-width:42px}
.rp-exclusive-fab[hidden]{display:none!important}

/* 引路层：怎么用这份报告（读的顺序 / 常见误读 / 立刻可做） */
.rp-guide-lead{
  margin:0 0 4px;padding:11px 14px;border-radius:0 7px 7px 0;
  border-left:3px solid var(--rp-accent,#8a4b2a);
  background:rgba(169,130,46,.07);
  font-size:12.5px;line-height:1.88;
}
.rp-guide-order,.rp-guide-misread,.rp-guide-actions{
  margin:0 0 8px;padding-left:24px;font-size:12.5px;line-height:1.9;
}
.rp-guide-order li,.rp-guide-misread li,.rp-guide-actions li{
  padding-left:4px;margin:0 0 7px;break-inside:avoid;
}
.rp-guide-misread li::marker{color:var(--rp-accent,#8a4b2a)}

/* 专属报告方法与依据附录 */
.rp-method-appendix{margin-top:28px;padding-top:18px;border-top:1px solid var(--rp-line)}
.rp-method-intro{margin:0 0 14px;color:var(--rp-dim);font-size:12px;line-height:1.85}
.rp-method-steps{margin:0 0 20px;padding-left:24px;font-size:12.5px;line-height:1.9}
.rp-method-steps li{padding-left:4px;margin:0 0 7px;break-inside:avoid}
.rp-method-subtitle{margin:18px 0 9px;font:600 14px/1.6 "Songti SC","SimSun",serif;color:var(--rp-ink)}
.rp-source-list{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.rp-source-item{padding:10px 12px;border:1px solid var(--rp-line);border-radius:7px;background:rgba(169,130,46,.025);break-inside:avoid}
.rp-source-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;font-size:12px;line-height:1.6}
.rp-source-grade{white-space:nowrap;color:var(--rp-gold);font:600 10px/1.6 Georgia,serif}
.rp-source-type{margin-top:2px;color:var(--rp-accent);font-size:10px;letter-spacing:.04em}
.rp-source-hold{display:inline-block;margin-top:6px;padding:3px 9px;border:1px solid rgba(169,130,46,.42);
  border-radius:7px;background:rgba(169,130,46,.07);color:var(--rp-gold);font-size:10px;line-height:1.65;
  text-decoration:none;break-inside:avoid;max-width:100%}
a.rp-source-hold:hover{border-color:var(--rp-gold);background:rgba(169,130,46,.14)}
.rp-source-hold.is-missing{border-style:dashed;border-color:rgba(120,120,120,.4);background:transparent;color:var(--rp-dim)}
.rp-source-base{margin:16px 0 0;padding-top:11px;border-top:1px dashed var(--rp-line);color:var(--rp-dim);font-size:10.5px;line-height:1.85}
.rp-source-base a{color:var(--rp-gold);text-decoration:none}
.rp-source-item p{margin:5px 0 0;color:var(--rp-dim);font-size:11px;line-height:1.75}
.rp-method-limits{margin:0;padding-left:22px;color:var(--rp-dim);font-size:11.5px;line-height:1.8}
.rp-method-limits li{margin-bottom:4px;break-inside:avoid}

/* ---- 正文区块 ---- */
.rp-body{ padding:44px 56px 0; }
.rp-sec{ margin:0 0 34px; }
.rp-sec > h2{
  margin:0 0 16px; padding-left:12px; border-left:3px solid var(--rp-accent);
  font:600 19px/1.4 "Songti SC","SimSun",serif; letter-spacing:.10em; color:var(--rp-ink);
}
.rp-sec > h2 .en{
  display:block; font:400 10px/1.6 Georgia,serif; letter-spacing:.24em;
  color:var(--rp-dim); text-transform:uppercase; margin-top:2px;
}
.rp-kv{ width:100%; border-collapse:collapse; font-size:13px; }
.rp-kv th{
  width:118px; text-align:left; font-weight:400; color:var(--rp-dim);
  padding:7px 14px 7px 0; border-bottom:1px solid var(--rp-line); vertical-align:top;
  letter-spacing:.06em;
}
.rp-kv td{ padding:7px 0; border-bottom:1px solid var(--rp-line); color:var(--rp-ink); }
.rp-kv tr:nth-child(even) td, .rp-kv tr:nth-child(even) th{ background:rgba(169,130,46,.035); }

/* 正文里夹带的工具原始内容：统一收敛字号与间距，避免过密 */
.rp-clone{ font-size:13.5px; }
/* 图表与表格不跨页：切一半的图比换页更难看。表头在跨页时重复。 */
.rp-clone table, .rp-clone img, .rp-clone figure, .rp-clone svg{
  break-inside:avoid; page-break-inside:avoid;
}
.rp-clone thead{ display:table-header-group; }
.rp-clone tr{ break-inside:avoid; page-break-inside:avoid; }
/* 分页容器：JS 按 A4 高度切好，每页底部一条页码。
   高度 = A4 的 1122px 减去 .rp-body 的 16mm 顶部留白（约 60px），
   否则每页会溢出一点点，PDF 就多出空白页。 */
.rp-page{ position:relative; box-sizing:border-box; min-height:1062px; padding-bottom:44px; }
.rp-pagefoot{
  position:absolute; left:0; right:0; bottom:0;
  display:flex; justify-content:space-between; align-items:baseline;
  font-size:10.5px; letter-spacing:.1em; color:#8b8170;
  border-top:1px solid #ddd3c0; padding-top:7px;
}
.rp-pagefoot .pf-brand{ letter-spacing:.16em; }
.rp-pagefoot .pf-no{ font-variant-numeric:tabular-nums; }
/* 封面页脚要避开封面的 56px 内边距。
   z-index 要压过双印（封面子元素统一 z-index:2），否则右下角页码会被印章盖住。 */
.rp-cover .rp-pagefoot{ left:56px; right:56px; bottom:52px; z-index:3; }
/* ---- 手机阅读版（流式单栏） ----
   窄屏不再按 A4 分页缩放（390px 下 14px 正文会被压到 6.4px），
   改成整份报告一栏到底：页块高度放开、隐藏页码、目录去掉页码。
   类名由 report.js 的 syncFlow() 按视口宽度挂到 body 上，不重建文档。
   打印时由下面的 @media print 复位成 A4，导出不受影响。 */
.rp-doc.rp-flow{ font-size:15.5px; line-height:1.86; }
.rp-doc.rp-flow .rp-sheet{ width:auto; max-width:none; margin:0; padding:0 0 14px; }
.rp-doc.rp-flow .rp-cover{ min-height:0; padding:26px 18px 22px; }
.rp-doc.rp-flow .rp-cover::after{ inset:8px; }
.rp-doc.rp-flow .rp-cover-mid{ padding:18px 0 12px; }
.rp-doc.rp-flow .rp-title{ font-size:25px; line-height:1.36; letter-spacing:.06em; }
.rp-doc.rp-flow .rp-title-en{ font-size:11px; }
.rp-doc.rp-flow .rp-cover-meta{ display:block; width:100%; margin-top:16px; font-size:12.5px; }
/* 封面参数表在手机上改成「标签 … 值」的行式列表：
   A4 版是两列带底色的表格，窄屏照搬会出现一块灰底压在文字上。 */
.rp-doc.rp-flow .rp-cover-meta tbody,
.rp-doc.rp-flow .rp-cover-meta tr{ display:block; }
.rp-doc.rp-flow .rp-cover-meta tr{
  display:flex; align-items:baseline; gap:12px;
  padding:7px 0; border-bottom:1px dotted var(--rp-line);
}
.rp-doc.rp-flow .rp-cover-meta th,
.rp-doc.rp-flow .rp-cover-meta td{
  background:none; border:0; padding:0; min-width:0; white-space:normal;
}
.rp-doc.rp-flow .rp-cover-meta th{ flex:none; letter-spacing:.08em; }
.rp-doc.rp-flow .rp-cover-meta td{ flex:1 1 auto; text-align:right; }
.rp-doc.rp-flow .rp-body{ padding:10px 0 0; }
.rp-doc.rp-flow .rp-page{ min-height:0; padding:12px 14px 16px; }
.rp-doc.rp-flow .rp-live-section-body{ padding:0 4px 12px; }
.rp-doc.rp-flow .rp-page + .rp-page{ border-top:1px solid var(--rp-line); }
.rp-doc.rp-flow .rp-pagefoot{ display:none; }
.rp-doc.rp-flow .rp-live-section{ padding:14px 14px; }
.rp-doc.rp-flow .rp-live-section h2{ font-size:18px; }
.rp-doc.rp-flow .rp-live-section p,
.rp-doc.rp-flow .rp-live-advice,
.rp-doc.rp-flow .rp-live-para{ font-size:15.5px; line-height:1.9; }
.rp-doc.rp-flow .rp-live-table{ font-size:12.5px; }
.rp-doc.rp-flow .rp-live-table th,
.rp-doc.rp-flow .rp-live-table td{ padding:8px 7px; }
/* 目录：手机上没有「第几页」，页码与点线一起去掉，只留可点的标题 */
.rp-doc.rp-flow .rp-toc-p,
.rp-doc.rp-flow .rp-toc-d{ display:none; }
.rp-doc.rp-flow .rp-toc-list li{ padding:9px 0; border-bottom:1px solid rgba(128,128,128,.16); }
.rp-doc.rp-flow .rp-toc-t{ max-width:none; }
/* 月份条在窄屏放宽一点，指头好点 */
.rp-doc.rp-flow .rp-strip-i{ padding:9px 0; font-size:13px; }

@media print{
  .rp-page{ break-after:page; page-break-after:always; }
  .rp-page:last-child{ break-after:auto; page-break-after:auto; }
}
.rp-clone .card, .rp-clone .panel, .rp-clone section{
  break-inside:avoid; page-break-inside:avoid;
  margin-bottom:14px;
}
.rp-clone details{break-inside:auto;page-break-inside:auto;margin-bottom:14px}
.rp-clone .rp-live-summary{cursor:default}
.rp-clone .rp-live-summary::after{content:none}
.rp-clone .rp-live-summary .rp-live-grade{margin-left:auto}
.rp-clone .rp-live-section-body{padding-top:8px}
/* 分页器把长节正文摊平到 .rp-page 后，补回原本 body 的左右内边距与底部留白，
   否则摊平后的段落会比同节其它页宽一截。 */
.rp-live-body-child{padding-left:18px;padding-right:18px}
.rp-live-body-last{padding-bottom:16px}
.rp-clone h3, .rp-clone h4{ font-family:"Songti SC","SimSun",serif; letter-spacing:.04em; }
.rp-clone table{ max-width:100%; }
.rp-clone img{ max-width:100%; height:auto; }
.rp-clone input, .rp-clone select, .rp-clone textarea, .rp-clone button{ display:none !important; }
.rp-empty{ color:var(--rp-dim); font-size:13px; padding:10px 0; }
/* 收尾的「说明与边界」：从正文尾节挪出来，放在方法附录之后 */
.rp-tail-sec{ margin-top:10px; padding-top:24px; border-top:1px solid var(--rp-line); }
.rp-tail-sec > h2{ border-left-color:var(--rp-gold); }
.rp-tail-sec p{
  margin:0 0 10px; font-size:12.5px; line-height:1.95;
  color:var(--rp-dim); text-align:justify;
}
.rp-tail-sec p strong{ color:var(--rp-ink); font-weight:600; }

/* ---- 免责 ---- */
.rp-note{
  margin:0 56px; padding:18px 20px; box-sizing:border-box;
  background:#faf6ec; border:1px solid var(--rp-line); border-radius:3px;
}
.rp-note h3{
  margin:0 0 8px; font:600 13px/1.5 "Songti SC","SimSun",serif;
  letter-spacing:.14em; color:var(--rp-accent);
}
.rp-note p{ margin:0; font-size:11.5px; line-height:1.95; color:#6d6558; text-align:justify; }

/* ---- 页脚 ---- */
.rp-foot{
  margin:26px 56px 0; padding-top:14px; border-top:1px solid var(--rp-line);
  display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap;
  font-size:11px; color:var(--rp-dim); letter-spacing:.06em;
}
.rp-foot .r{ text-align:right; }

/* ---- 目录 ---- */
.rp-toc{margin:0 0 6px}
.rp-toc-list{list-style:none;margin:8px 0 0;padding:0}
.rp-toc-list li{display:flex;align-items:baseline;gap:6px;padding:5px 0;font-size:13px;line-height:1.7;cursor:pointer}
.rp-toc-list li:hover .rp-toc-t{text-decoration:underline;text-underline-offset:3px}
.rp-toc-t{flex:0 1 auto;max-width:78%}
.rp-toc-d{flex:1 1 auto;border-bottom:1px dotted rgba(128,128,128,.45);transform:translateY(-3px)}
.rp-toc-p{flex:none;min-width:1.8em;text-align:right;opacity:.75;font-variant-numeric:tabular-nums}

/* ---- 大运时间轴 ---- */
.rp-tl{display:flex;gap:4px;margin:12px 0 4px}
.rp-tl-i{flex:1 1 0;min-width:0;text-align:center;padding:7px 2px;border-radius:7px;
  border:1px solid var(--rp-line,#e3dac9);background:rgba(169,130,46,.03)}
.rp-tl-i .rp-tl-age{display:block;font-size:10px;opacity:.7;line-height:1.5}
.rp-tl-i .rp-tl-gz{display:block;font-size:13px;font-weight:600;letter-spacing:.04em}
.rp-tl-i.is-shun{border-color:rgba(138,75,42,.45);background:rgba(138,75,42,.07)}
.rp-tl-i.is-zhi{opacity:.72}
.rp-tl-i.is-now{outline:2px solid rgba(138,75,42,.6);outline-offset:1px}

/* ---- 月份条（流年卡里的十二个月） ---- */
.rp-strip{margin:10px 0 2px}
.rp-strip-h{font-size:11px;opacity:.65;margin-bottom:5px;letter-spacing:.02em}
.rp-strip-row{display:flex;gap:3px}
.rp-strip-i{flex:1 1 0;min-width:0;padding:6px 0;border-radius:6px;cursor:pointer;
  font:inherit;font-size:12px;line-height:1.3;color:inherit;
  border:1px solid var(--rp-line,#e3dac9);background:transparent;
  -webkit-appearance:none;appearance:none}
.rp-strip-i.is-good{border-color:rgba(138,75,42,.5);background:rgba(138,75,42,.09);font-weight:600}
.rp-strip-i.is-bad{border-color:rgba(90,110,130,.4);background:rgba(90,110,130,.08);opacity:.8}
.rp-strip-i.is-flat{opacity:.62}
.rp-strip-i.is-on{outline:2px solid rgba(138,75,42,.55);outline-offset:1px}
.rp-strip-tip{margin-top:6px;font-size:12px;line-height:1.65;opacity:.85;min-height:0}
.rp-strip-tip:empty{display:none}

/* ---- 四柱详解表 ---- */
.rp-pillars{margin:10px 0 2px}
.rp-pillars .rp-pillar-t{font-weight:600;white-space:nowrap}

/* ---- 术语小抄（附录表） ---- */
.rp-glossary{margin-top:16px}
.rp-glossary .rp-gloss-t{white-space:nowrap;font-weight:600;width:7.5em}

/* ---- 折叠卡（逐年、逐项） ---- */
.rp-fold-item{margin:7px 0;padding:9px 12px;border:1px solid var(--rp-line,#e3dac9);border-radius:8px;background:rgba(169,130,46,.02)}
.rp-fold-h{cursor:pointer;font-size:13px;font-weight:600;line-height:1.6;list-style:none}
.rp-fold-h::-webkit-details-marker{display:none}
.rp-fold-h::before{content:'▸';display:inline-block;width:1.1em;opacity:.55}
.rp-fold-item[open] .rp-fold-h::before{content:'▾'}
.rp-fold-body p{margin:8px 0 0;font-size:13px;line-height:1.85}

/* ---- 条形图（五行占比这类「一眼看比例」的数据） ---- */
.rp-bars-wrap{margin:10px 0 4px;break-inside:avoid}
.rp-bars{margin:0}
.rp-bar-row{display:flex;align-items:center;gap:8px;margin:5px 0;font-size:12px;line-height:1.6}
.rp-bar-k{flex:none;width:2.4em;color:var(--rp-ink,#2b2620)}
.rp-bar-track{flex:1 1 auto;height:9px;border-radius:5px;background:rgba(138,75,42,.10);overflow:hidden}
.rp-bar-fill{display:block;height:100%;border-radius:5px;background:rgba(138,75,42,.42)}
.rp-bar-fill.is-xi{background:rgba(138,75,42,.72)}
.rp-bar-fill.is-ji{background:rgba(120,120,120,.34)}
.rp-bar-v{flex:none;width:3.4em;text-align:right;opacity:.75}

/* ---- 水印 ----
 * 屏幕：绝对定位于封面内（跟着封面走，永远看得见）
 * 打印：改成 fixed —— Chrome 会在每一页重复绘制 */
.rp-wm{
  position:absolute; inset:0; pointer-events:none; z-index:5; overflow:hidden;
  display:flex; align-items:center; justify-content:center;
}
/* 水印：打印时 position:fixed，Chrome 每页重复。文字是「醉千年 · 天衍台」，
   字号要留够旋转后的宽度，否则被 .rp-wm 的 overflow:hidden 裁掉两端。 */
.rp-wm span{
  font:700 46px/1 "Songti SC","SimSun",serif; letter-spacing:.26em;
  color:rgba(138,75,42,.12); transform:rotate(-24deg); white-space:nowrap;
  text-align:center;
}
.rp-wm.trial span{ color:rgba(169,59,50,.13); font-size:52px; }

/* ============================================================
 * ④ 打印：A4 分页
 * ============================================================ */
@page{ size:A4; margin:0; }

@media print{
  /* 手机阅读版只是屏幕上的排版；打印/存 PDF 一律回到 A4 分页 */
  .rp-doc.rp-flow{ font-size:14px; line-height:1.78; }
  .rp-doc.rp-flow .rp-sheet{ width:794px; margin:0 auto; padding:0 0 26px; }
  .rp-doc.rp-flow .rp-cover{ min-height:1040px; padding:64px 56px 96px; }
  .rp-doc.rp-flow .rp-cover::after{ inset:26px; }
  .rp-doc.rp-flow .rp-cover-mid{ padding:34px 0 26px; }
  .rp-doc.rp-flow .rp-title{ font-size:40px; letter-spacing:.10em; }
  .rp-doc.rp-flow .rp-cover-meta{ margin-top:34px; font-size:13px; }
  .rp-doc.rp-flow .rp-body{ padding:44px 56px 0; }
  .rp-doc.rp-flow .rp-page{ min-height:1062px; padding:0 0 44px; }
  .rp-doc.rp-flow .rp-live-section-body{ padding:0 18px 16px; }
  .rp-doc.rp-flow .rp-page + .rp-page{ border-top:0; }
  .rp-doc.rp-flow .rp-pagefoot{ display:flex; }
  .rp-doc.rp-flow .rp-toc-p,
  .rp-doc.rp-flow .rp-toc-d{ display:block; }
  .rp-doc.rp-flow .rp-live-section p,
  .rp-doc.rp-flow .rp-live-advice,
  .rp-doc.rp-flow .rp-live-para{ font-size:14px; line-height:1.85; }
  .rp-doc.rp-flow .rp-live-section h2{ font-size:16px; }
  html, body{ background:#fff !important; margin:0 !important; padding:0 !important; }
  .rp-doc{ background:#fff; }
  /* 分页后每页已固定 1062px 高（含 44px 页脚区）。
     这里不能再给 sheet 加底部 padding，否则整叠内容会被顶高约 53px，
     最后多出一张没有页码的溢出页。 */
  .rp-sheet{ width:210mm; margin:0; padding:0; box-shadow:none; }
  /* 手机预览会把 body 等比缩放，打印必须复位，否则 PDF 会缩成一角 */
  body{ zoom:1 !important; }
  .rp-cover{ min-height:297mm; padding:24mm 20mm 18mm; page-break-after:always; break-after:page; }
  .rp-body{ padding:16mm 20mm 0; }
  .rp-sec{ break-inside:auto; }
  .rp-sec > h2{ break-after:avoid; }
  .rp-note{ margin:0 20mm; break-inside:avoid; }
  .rp-foot{ margin:10mm 20mm 0; }
  .rp-clone .card, .rp-clone table, .rp-clone .panel{ break-inside:avoid; }
  /* 打印时隐藏界面层，避免带进 PDF */
  .rp-fab, .rp-modal, .rp-bar, .rp-toast{ display:none !important; }
  /* 水印改成 fixed：Chrome 会在每一页重复绘制，长报告也不会只在首页有水印 */
  .rp-wm{ position:fixed; inset:0; }
}

/* ============================================================
 * 玄台对齐（2026-10-27）
 * ------------------------------------------------------------
 * 报告沿用同一套语言：方角、色阶分层、朱砂一点。
 * ============================================================ */

/* 界面层按钮：去掉胶囊与投影 */
.rp-fab{
  border-radius:2px !important;
  box-shadow:none !important;
  font-family:"Songti SC","STSong","SimSun",serif !important;
  letter-spacing:.12em !important;
  padding:11px 18px !important;
}
.rp-fab:hover{ transform:none !important; filter:brightness(.92); box-shadow:none !important; }
.rp-fab:active{ transform:translateY(1px) !important; }

/* 专属报告按钮（工具页右下角） */
.rp-exclusive-fab{
  border-radius:2px !important;
  box-shadow:none !important;
  background:var(--accent,#9c2b23) !important;
  color:#fbf7ee !important;
  font-family:"Songti SC","STSong","SimSun",serif !important;
  letter-spacing:.1em !important;
}
.rp-exclusive-fab:hover{ filter:brightness(.92); transform:none !important; }

/* 页面内预览：去掉每节一圈边框，改成一节一张纸 */
.rp-live-section{
  border:none !important;
  border-radius:2px !important;
  background:var(--panel,#fbf9f3) !important;
  box-shadow:none !important;
}
.rp-live-meta{ border-radius:2px !important; }
.rp-live-table th{ background:var(--panel2,#f0ece1); }
.rp-live-qa-item{ border-radius:0 2px 2px 0 !important; }
.rp-guide-lead{ border-radius:0 2px 2px 0 !important; }
.rp-modal,.rp-modal *{ --rp-radius:2px; }
