/* ============================================================
   pages.css — 四大主页面 + 子页面专属样式
   ============================================================ */

/* ============ 排盘页（移植 v17 源文件规则：星枢时鉴 Logo + 核心排盘卡） ============ */
/* 源文件规则：整页内容垂直居中，上下留白近似等比（1:1.25 微偏下，底部贴近 Tab 不悬空） */
.pan-page { height: 100%; display: flex; flex-direction: column; }
.pan-page::before { content: ""; flex: 1 0 2px; }
.pan-page::after { content: ""; flex: 1.25 0 2px; }

/* 排版改造：解除 340px 限宽，与全站其他页面同宽（容器宽 − 左右各 14px），框宽统一才显规整；
   边框/圆角与全站卡片统一令牌（1px var(--gold-400) / var(--radius)），同页各框边界语言一致 */
.pan-card { position: relative; background: var(--bg-card); border: 1px solid var(--gold-400); border-radius: var(--radius); padding: 22px 20px; margin: 0 auto; width: 100%; box-shadow: 0 6px 24px rgba(0,0,0,0.4), inset 0 1px 0 rgba(248,237,190,0.25), inset 0 0 0 1px rgba(138,109,28,0.35); }
.pan-card::before, .pan-card::after { content: ""; position: absolute; width: 32px; height: 16px; background-image: var(--cloud-deco); background-size: contain; background-repeat: no-repeat; opacity: .42; pointer-events: none; }
.pan-card::before { top: 10px; left: 12px; }
.pan-card::after { bottom: 10px; right: 12px; transform: rotate(180deg); }

/* 性别/历法两行按钮统一为等宽两列，行高一致，左右边缘对齐，消除错落感 */
.pan-gender { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 12px; }
.pan-gender__btn { height: 46px; border-radius: 23px; border: 1.5px solid var(--gold-400); background: rgba(212,175,55,0.06); color: var(--text-main); font-size: var(--fs-base); font-weight: var(--fw-semi); cursor: pointer; transition: all .15s; }
.pan-gender__btn.on { color: var(--text-on-gold); background: linear-gradient(180deg, var(--gold-200), var(--gold-400)); border-color: var(--gold-300); box-shadow: 0 2px 8px rgba(212,175,55,0.3); }
.pan-input { flex: 1; height: 46px; padding: 0 12px; background: var(--bg-control); border: 1px solid var(--gold-500); border-radius: 8px; font-size: var(--fs-md); color: var(--text-main); display: flex; align-items: center; }
.pan-input:focus { border-color: var(--gold-300); outline: none; }
.pan-tip { font-size: var(--fs-xs); color: var(--text-sub); line-height: var(--lh-snug); }
.pan-tip--warn { color: var(--cinnabar-text); font-weight: var(--fw-medium); }

/* 出生地：省市区选择器入口 */
.pan-region { display: flex; align-items: center; gap: 6px; cursor: pointer; }
.pan-region__text { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pan-region__text--empty { color: var(--text-sub); }

/* 选择器底部拉起遮罩 */
.picker-mask { position: fixed; inset: 0; z-index: 200; background: var(--bg-mask); display: flex; align-items: flex-end; opacity: 0; transition: opacity .22s ease; }
.picker-mask.show { opacity: 1; }

/* 省市区选择器：底部拉起面板 */
.rgp-panel { display: flex; flex-direction: column; width: 100%; height: 280px; background: var(--bg-card); border-top: 1px solid var(--gold-400); border-radius: 16px 16px 0 0; overflow: hidden; box-shadow: 0 -6px 28px rgba(0,0,0,0.55), inset 0 1px 0 rgba(248,237,190,0.18); transform: translateY(100%); transition: transform .26s cubic-bezier(.22,.61,.36,1); padding-bottom: env(safe-area-inset-bottom); }
.picker-mask.show .rgp-panel { transform: translateY(0); }
.rgp-topbar { display: flex; align-items: center; justify-content: space-between; padding: 8px 10px 0; }
.rgp-topbar__close { width: 30px; height: 30px; line-height: 30px; text-align: center; font-size: var(--fs-lg); color: var(--text-sub); cursor: pointer; }
.rgp-search { margin: 4px 10px 8px; background: var(--bg-control); border: 1px solid var(--gold-500); border-radius: 20px; padding: 0 5px 0 14px; height: 34px; display: flex; align-items: center; gap: 8px; }
/* 确定按钮：置于搜索框内右侧（原顶栏迁入），右侧留白收紧 */
.rgp-search__ok { flex: none; padding: 0 20px; height: 26px; line-height: 26px; border-radius: 13px; background: linear-gradient(180deg, var(--gold-200), var(--gold-400)); color: var(--text-on-gold); font-size: var(--fs-md); font-weight: var(--fw-semi); cursor: pointer; }
.rgp-search__input { flex: 1; border: none; background: transparent; font-size: var(--fs-md); color: var(--text-main); outline: none; }
.rgp-search__input::placeholder { color: var(--text-sub); }
.rgp-body { flex: 1; min-height: 0; overflow: hidden; display: flex; flex-direction: column; }
.rgp-cols { flex: 1; display: flex; overflow: hidden; border-top: 1px solid rgba(212,175,55,0.18); }
/* 三级等宽三列（省/市/区县）。区县名普遍长于省市名（如
   「双江拉祜族佤族布朗族傣族自治县」），故列宽收窄后字号降一级、
   内边距收窄，并统一 ellipsis 截断，避免撑破列宽把三列挤成两列半。 */
.rgp-col { width: 33.333%; overflow-y: auto; -webkit-overflow-scrolling: touch; background: rgba(14,18,30,0.5); }
.rgp-col--city { background: transparent; }
.rgp-col--area { background: rgba(14,18,30,0.5); }
.rgp-col__item { padding: 9px 10px; font-size: var(--fs-sm); color: var(--text-sub); cursor: pointer; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rgp-col__item--active { color: var(--gold-200); font-weight: var(--fw-semi); background: rgba(212,175,55,0.10); }
.rgp-results__item { display: flex; align-items: center; justify-content: space-between; padding: 9px 16px; border-bottom: 1px solid rgba(212,175,55,0.10); cursor: pointer; }
.rgp-results__city { font-size: var(--fs-md); color: var(--text-main); }
.rgp-results__prov { font-size: var(--fs-sm); color: var(--text-sub); }
.rgp-results__empty { text-align: center; color: var(--text-sub); font-size: var(--fs-md); padding: 30px 0; }

/* 生辰行：日期+时辰合一，点击开滚轮选择器 */
.pan-birth { display: flex; align-items: center; justify-content: space-between; gap: 8px; cursor: pointer; }
.pan-birth__time { color: var(--gold-200); }
.pan-birth__time--empty { color: var(--text-sub); }

/* 生辰滚轮选择器：底部拉起面板 */
.dtp-panel { width: 100%; background: var(--bg-card); border-top: 1px solid var(--gold-400); border-radius: 16px 16px 0 0; padding: 12px 14px calc(12px + env(safe-area-inset-bottom)); box-shadow: 0 -6px 28px rgba(0,0,0,0.55), inset 0 1px 0 rgba(248,237,190,0.18); transform: translateY(100%); transition: transform .26s cubic-bezier(.22,.61,.36,1); }
.picker-mask.show .dtp-panel { transform: translateY(0); }
.dtp-query { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.dtp-query__input { flex: 1; min-width: 0; height: 34px; border: 1px solid var(--gold-500); border-radius: 8px; background: var(--bg-control); padding: 0 10px; font-size: var(--fs-md); color: var(--text-main); }
.dtp-query__input::placeholder { color: var(--text-sub); }
.dtp-query__input:focus { outline: none; border-color: var(--gold-300); }
.dtp-query__btn { height: 34px; padding: 0 14px; border: 1px solid var(--gold-400); border-radius: 8px; background: rgba(212,175,55,0.08); color: var(--gold-200); font-size: var(--fs-md); cursor: pointer; flex: none; }
.dtp-toolbar { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; gap: 8px; }
.dtp-tabs { display: flex; border: 1px solid var(--gold-500); border-radius: 8px; overflow: hidden; flex: none; }
.dtp-tabs__item { padding: 4px 12px; font-size: var(--fs-md); color: var(--text-sub); cursor: pointer; }
.dtp-tabs__item--active { color: var(--text-on-gold); background: linear-gradient(180deg, var(--gold-200), var(--gold-400)); font-weight: var(--fw-semi); }
.dtp-toolbar__btns { display: flex; align-items: center; gap: 6px; }
.dtp-toolbar__today { width: 30px; height: 28px; border: 1px solid var(--gold-500); border-radius: 8px; background: rgba(212,175,55,0.06); color: var(--text-sub); font-size: var(--fs-sm); cursor: pointer; }
.dtp-toolbar__nohour { height: 28px; padding: 0 8px; border: 1px solid var(--gold-500); border-radius: 8px; background: rgba(212,175,55,0.06); color: var(--text-sub); font-size: var(--fs-sm); cursor: pointer; white-space: nowrap; }
.dtp-toolbar__ok { height: 28px; padding: 0 16px; border: none; border-radius: 8px; background: linear-gradient(180deg, var(--gold-200), var(--gold-400)); color: var(--text-on-gold); font-size: var(--fs-md); font-weight: var(--fw-semi); cursor: pointer; }
.dtp-wheels { position: relative; }
.dtp-band { position: absolute; left: 0; right: 0; top: 54px; height: 32px; background: rgba(212,175,55,0.12); border-top: 1px solid rgba(212,175,55,0.5); border-bottom: 1px solid rgba(212,175,55,0.5); border-radius: 6px; pointer-events: none; z-index: 1; }
#dtpCols { display: flex; position: relative; z-index: 2; }
.dtp-col { flex: 1; height: 140px; overflow-y: scroll; scroll-snap-type: y mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
.dtp-col::-webkit-scrollbar { display: none; }
.dtp-col__pad { height: 54px; }
.dtp-col__item { height: 32px; line-height: 32px; text-align: center; font-size: var(--fs-base); color: var(--text-sub); scroll-snap-align: center; }

.pan-toggle { width: 44px; height: 24px; border-radius: 12px; border: 1.5px solid var(--gold-500); background: var(--ink-900); position: relative; cursor: pointer; transition: background .15s; flex: none; }
.pan-toggle.on { background: linear-gradient(180deg, var(--gold-300), var(--gold-400)); border-color: var(--gold-300); }
.pan-toggle__knob { position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: var(--text-main); transition: transform .15s; box-shadow: 0 1px 3px rgba(0,0,0,0.3); }
.pan-toggle.on .pan-toggle__knob { transform: translateX(20px); }

.pan-btn { width: 100%; height: 50px; border-radius: 25px; border: none; background: linear-gradient(180deg, rgba(255,255,255,0.35) 0%, rgba(255,255,255,0) 42%), linear-gradient(180deg, var(--gold-200) 0%, var(--gold-300) 46%, var(--gold-500) 52%, var(--gold-400) 100%); color: var(--text-on-gold); font-size: var(--fs-xl); font-weight: var(--fw-bold); letter-spacing: var(--ls-title); cursor: pointer; box-shadow: 0 4px 12px rgba(0,0,0,0.4), inset 0 1px 0 rgba(255,255,255,0.55), inset 0 -1px 0 rgba(92,73,19,0.6); transition: transform .12s, filter .12s; }
.pan-btn:active { transform: scale(0.98); filter: brightness(1.08); }

/* ============ 工具页：宫格（v17 源文件紧凑尺寸） ============ */
/* 排版改造：格子由裸排改为淡金框小卡，列间距 2→8px，每个工具边界清晰、版面规整 */
/* 单屏固定填充：整页 flex 列布局，工具卡弹性占据横幅与说明卡之间的全部剩余空间，
   宫格在卡内垂直居中——说明卡下方不再留大片空白，页面不「挂顶」 */
.tool-page { height: 100%; display: flex; flex-direction: column; }
.tool-page > * { flex: none; }
/* flex-grow 让高屏时空余空间归工具卡（宫格垂直居中，说明卡不挂底留白）；
   不设 min-height:0——矮屏时卡片不得小于宫格自然高，否则两行宫格会溢出卡外、
   与下方「使用说明」卡重叠，且溢出不计入 Fit 的 scrollHeight 测量会逃过压缩判定。
   让卡片撑到内容高，Fit.fitMain 自会走 fit-tight/fit-mini/等比缩放兜底 */
.tool-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px 8px;
}
.tool-cell {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 9px;
    padding: 16px 4px 14px;
    position: relative;
    cursor: pointer;
    border: 1px solid var(--frame-line);
    border-radius: var(--radius-sm);
    background: var(--bg-item);
}
.tool-cell__ico {
    width: 56px; height: 56px;
    display: grid; place-items: center;
    border-radius: 50%;
    color: var(--gold-300);
    border: 1px solid var(--gold-400);
    background:
        radial-gradient(circle at 50% 32%, rgba(248,237,190,0.18), rgba(212,175,55,0.04) 55%, rgba(0,0,0,0.15)),
        linear-gradient(180deg, var(--ink-600), var(--ink-700));
    box-shadow:
        0 3px 8px rgba(0,0,0,0.35),
        inset 0 1px 0 rgba(248,237,190,0.25),
        inset 0 -1px 0 rgba(92,73,19,0.5);
}
.tool-cell__ico svg { width: 28px; height: 28px; }
.tool-cell__ico--spin svg { animation: spin-slow 20s linear infinite; }
.tool-cell__name { font-size: var(--fs-sm); line-height: var(--lh-tight); color: var(--text-main); letter-spacing: var(--ls-base); }
.tool-cell__hot {
    position: absolute; top: -7px; right: 4px;
    font-size: var(--fs-2xs); color: var(--text-on-gold); font-weight: var(--fw-medium);
    background: linear-gradient(180deg, var(--gold-200), var(--gold-400));
    border-radius: 7px; padding: 0 5px; height: 14px; line-height: 14px;
}
/* 订单小按钮 */
.btn--sm { height: 30px; padding: 0 12px; font-size: var(--fs-sm); }
.order-actions { width: 100%; }
/* ============ 报告阅读版式（书卷式：封面 + 卷次章节 + 进度条/目录抽屉/回顶） ============ */
/* 封面卡：印章图标 + 引题 + 报告名宋体大字 + 金饰线 + 卷/字/时长统计 */
.rp-cover {
    position: relative; text-align: center; padding: 24px 18px 18px;
    overflow: hidden;
    background:
        radial-gradient(120% 70% at 50% -10%, rgba(212,175,55,0.14) 0%, rgba(212,175,55,0) 60%),
        var(--bg-card);
}
.rp-cover__seal {
    width: 46px; height: 46px; margin: 0 auto 10px;
    display: grid; place-items: center;
    border-radius: 50%;
    border: 1px solid rgba(212,175,55,0.55);
    background: radial-gradient(circle at 50% 38%, rgba(212,175,55,0.18), rgba(212,175,55,0.03) 70%);
    box-shadow: 0 0 14px rgba(220,184,74,0.22), inset 0 1px 0 rgba(252,244,210,0.3);
}
.rp-cover__seal svg { width: 23px; height: 23px; color: var(--gold-200); }
.rp-cover__kicker { font-size: var(--fs-xs); letter-spacing: 4px; color: var(--text-sub); margin-bottom: 6px; }
.rp-cover__title { font-family: var(--font-serif); font-size: 24px; line-height: var(--lh-tight); font-weight: var(--fw-semi); letter-spacing: var(--ls-title); color: var(--gold-100); text-shadow: 0 0 12px rgba(220,184,74,0.3), 0 1px 0 rgba(0,0,0,0.4); }
.rp-cover__rule { display: flex; align-items: center; justify-content: center; gap: 7px; margin: 12px auto 12px; }
.rp-cover__rule i { width: 52px; height: 1px; background: linear-gradient(90deg, transparent, rgba(220,184,74,0.7)); }
.rp-cover__rule i:last-child { transform: scaleX(-1); }
.rp-cover__rule b { width: 7px; height: 7px; transform: rotate(45deg); background: linear-gradient(135deg, var(--gold-200), var(--gold-400)); box-shadow: 0 0 8px rgba(220,184,74,0.55); }
.rp-cover__stats { display: flex; align-items: center; justify-content: center; gap: 12px; }
.rp-cover__stat { font-size: var(--fs-xs); color: var(--text-sub); letter-spacing: var(--ls-base); white-space: nowrap; }
.rp-cover__stat b { color: var(--gold-200); font-weight: var(--fw-semi); font-size: var(--fs-md); margin-right: 2px; font-variant-numeric: tabular-nums; }
.rp-cover__stats i { width: 1px; height: 11px; background: rgba(212,175,55,0.28); }
.rp-cover__meta { margin-top: 10px; font-size: var(--fs-xs); line-height: var(--lh-snug); color: var(--text-sub); letter-spacing: var(--ls-base); }
/* v10：封面卡默认收起一半——统计与生成时间折叠，点卡展开；仅作为信息折叠，
   标题/分隔线等装饰保留，收起态约占原高一半 */
.rp-cover__more { display: grid; grid-template-rows: 1fr; transition: grid-template-rows .3s ease, opacity .25s ease; opacity: 1; }
.rp-cover--fold .rp-cover__more { grid-template-rows: 0fr; opacity: 0; }
.rp-cover__more > * { overflow: hidden; min-height: 0; }
/* 折叠时统计/生成时间的上方间距一并清零（间距在 stats/meta 的 margin 上，
   包在 more 里依然占高，须连同内容一起压掉才算真收起） */
.rp-cover--fold .rp-cover__stats { margin-top: 0; }
.rp-cover--fold .rp-cover__meta { margin-top: 0; }
.rp-cover__hint { display: flex; align-items: center; justify-content: center; gap: 5px; margin-top: 8px; font-size: var(--fs-3xs); color: var(--text-faint); letter-spacing: var(--ls-base); }
.rp-cover__hint .mini-ico { width: 11px; height: 11px; color: var(--gold-300); transition: transform .25s; }
.rp-cover--fold .rp-cover__hint .mini-ico { transform: rotate(-90deg); }
.rp-cover--fold { cursor: pointer; }
/* 内嵌渲染位（排盘页报告区等）使用的弱化元信息行 */
.rp-meta { text-align: center; font-size: var(--fs-xs); line-height: var(--lh-snug); color: var(--text-sub); letter-spacing: var(--ls-tight); margin: 2px 0 12px; }
/* ===== A4 AI 生成合成内容显式标识（《标识办法》第四条 / GB 45438-2025） =====
   标识条必须与正文有足够视觉区隔：独立成条 + 标签胶囊 + 虚线描边，
   但收敛装饰权重，不与章节标题抢视觉焦点。 */
.rp-aimark { margin: 2px 0 12px; padding: 9px 12px 8px; border: 1px dashed rgba(212,175,55,0.34); border-radius: 10px; background: linear-gradient(180deg, rgba(212,175,55,0.07), rgba(212,175,55,0.03)); }
.rp-aimark__tag { display: inline-block; padding: 2px 9px; border-radius: 999px; border: 1px solid rgba(212,175,55,0.5); background: rgba(212,175,55,0.13); font-size: var(--fs-xs); line-height: 1.6; color: var(--gold-100); letter-spacing: var(--ls-base); }
.rp-aimark__txt { margin-top: 6px; font-size: var(--fs-xs); line-height: 1.75; color: var(--text-sub); text-align: justify; }
.rp-aimark__meta { margin-top: 5px; font-size: var(--fs-xs); line-height: 1.6; color: var(--text-faint); letter-spacing: var(--ls-tight); word-break: break-all; }

/* v10：合规标识默认收起为胶囊（details），点 tag 展开全文与编号 */
details.rp-aimark { padding: 8px 12px; }
details.rp-aimark > summary.rp-aimark__tag { list-style: none; cursor: pointer; margin: 0; }
details.rp-aimark > summary.rp-aimark__tag::-webkit-details-marker { display: none; }
details.rp-aimark > summary.rp-aimark__tag::after { content: " ▸"; font-size: var(--fs-3xs); color: var(--gold-300); }
details.rp-aimark[open] > summary.rp-aimark__tag::after { content: " ▾"; }
/* 大模型产出的报告标识更醒目一档：内容整份由生成式 AI 写成，是法规直接约束的形态 */
.rp-aimark--ai { border-color: rgba(212,175,55,0.58); background: linear-gradient(180deg, rgba(212,175,55,0.11), rgba(212,175,55,0.05)); }
/* 合成图片的贴身提示（正缘画像）：紧跟图片下方，图片被单独截屏转发时提示随图一起走 */
.rp-aimark--img { margin: 8px 0 0; padding: 5px 8px; text-align: center; font-size: var(--fs-xs); line-height: 1.6; color: var(--text-faint); }
/* 章节卡：比 gc-card 更素——细描边、弱底、无角花，长报告多卡不累眼；
   顶部留 62px 为吸顶导航让出定位空间（JS 平滑跳转 / 手工锚点都不被遮） */
.rp-ch { position: relative; margin-bottom: 14px; padding: 16px 17px 15px; border: 1px solid rgba(192,156,48,0.38); border-radius: var(--radius); background: var(--bg-card); box-shadow: 0 4px 16px rgba(0,0,0,0.34), inset 0 1px 0 rgba(252,244,210,0.12); scroll-margin-top: 62px; }
.rp-ch--flush { padding-top: 14px; }
/* 章首：卷次印（壹/贰/叁…）+ 宋体卷名 + 右侧渐隐金线 */
.rp-ch__h { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.rp-ch__no {
    flex: none; width: 27px; height: 27px; display: grid; place-items: center;
    border-radius: 50%;
    border: 1px solid rgba(212,175,55,0.6);
    background: radial-gradient(circle at 50% 35%, rgba(212,175,55,0.2), rgba(212,175,55,0.04) 75%);
    box-shadow: inset 0 1px 0 rgba(252,244,210,0.28), 0 0 8px rgba(220,184,74,0.18);
}
.rp-ch__no b { font-family: var(--font-serif); font-style: normal; font-weight: var(--fw-semi); font-size: var(--fs-sm); color: var(--gold-100); line-height: 1; }
.rp-ch__mark { flex: none; width: 8px; height: 8px; transform: rotate(45deg); background: linear-gradient(135deg, var(--gold-100), var(--gold-400)); box-shadow: 0 0 8px rgba(220,184,74,0.6); }
.rp-ch__t { font-family: var(--font-serif); font-size: var(--fs-xl); line-height: var(--lh-tight); font-weight: var(--fw-semi); letter-spacing: var(--ls-wide); color: var(--gold-100); text-shadow: 0 1px 0 rgba(0,0,0,0.4); }
.rp-ch__h::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, rgba(212,175,55,0.5), rgba(212,175,55,0.06) 70%, transparent); }
/* 段落：两端对齐 + 宽松行高 + 段间距；章节正文直接段落首行缩进两字（古籍版式，
   长文分段一目了然）。子块（lyg-txt/条文卡）内段落不缩进，保持卡片内紧凑 */
.rp-ch__b { min-width: 0; }
.rp-p { margin: 0 0 12px; font-size: var(--fs-base); line-height: 2; letter-spacing: 0.3px; color: var(--text-main); text-align: justify; overflow-wrap: anywhere; }
.rp-p:last-child { margin-bottom: 0; }
.rp-ch__b > .rp-p { text-indent: 2em; }
/* 合婚评分徽标：吸在章首右侧（发丝线自然落在标题与徽标之间） */
.rp-ch__h .rp-score { margin-left: auto; }
.rp-score { flex: none; display: inline-flex; align-items: center; padding: 3px 11px; border-radius: 999px; border: 1px solid var(--gold-400); background: linear-gradient(180deg, rgba(212,175,55,0.2), rgba(212,175,55,0.08)); box-shadow: inset 0 1px 0 rgba(252,244,210,0.25); }
.rp-score em { font-style: normal; font-size: var(--fs-md); line-height: var(--lh-none); font-weight: var(--fw-bold); color: var(--gold-100); letter-spacing: 0.5px; }

/* ---------- 阅读进度条（贴在吸顶导航下沿，滚动容器为 .overlay） ---------- */
.rp-progress {
    position: fixed; top: 50px; left: 50%; transform: translateX(-50%);
    width: 100%; max-width: 640px; height: 2px; z-index: 52;
    background: rgba(212,175,55,0.08); pointer-events: none;
}
.rp-progress i { display: block; height: 100%; width: 0; background: linear-gradient(90deg, var(--gold-400), var(--gold-200)); box-shadow: 0 0 8px rgba(220,184,74,0.55); }

/* ---------- 悬浮操作：目录 / 回顶（正文超过一屏才出现） ---------- */
.rp-fab {
    position: fixed; z-index: 53;
    right: max(14px, calc(50vw - 306px));
    bottom: calc(18px + env(safe-area-inset-bottom));
    display: flex; flex-direction: column; align-items: flex-end; gap: 9px;
    opacity: 0; transform: translateY(10px); pointer-events: none;
    transition: opacity .22s ease, transform .22s ease;
}
.rp-fab.is-on { opacity: 1; transform: none; pointer-events: auto; }
.rp-fab__btn {
    display: inline-flex; align-items: center; gap: 5px;
    height: 36px; padding: 0 13px;
    border-radius: 999px;
    border: 1px solid rgba(212,175,55,0.55);
    background: linear-gradient(180deg, rgba(14,18,30,0.92), rgba(9,12,19,0.94));
    color: var(--gold-200); font-size: var(--fs-xs); letter-spacing: var(--ls-base);
    box-shadow: 0 4px 14px rgba(0,0,0,0.45), inset 0 1px 0 rgba(252,244,210,0.2);
    -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
}
.rp-fab__btn:active { transform: scale(0.95); }
.rp-fab__btn svg { width: 15px; height: 15px; }
.rp-fab__btn--top {
    width: 38px; padding: 0; justify-content: center;
    opacity: 0; transform: translateY(6px); pointer-events: none;
    transition: opacity .2s ease, transform .2s ease;
}
.rp-fab__btn--top.is-show { opacity: 1; transform: none; pointer-events: auto; }

/* ---------- 章节目录抽屉（右侧滑入） ---------- */
.rp-toc-mask {
    position: fixed; inset: 0; z-index: 54;
    background: var(--bg-mask);
    opacity: 0; pointer-events: none; transition: opacity .22s ease;
}
.rp-toc-mask.is-show { opacity: 1; pointer-events: auto; }
.rp-toc {
    position: fixed; z-index: 55; top: 0; right: 0; bottom: 0;
    width: min(80vw, 308px);
    display: flex; flex-direction: column;
    background:
        radial-gradient(130% 50% at 100% 0%, rgba(212,175,55,0.12), rgba(212,175,55,0) 55%),
        linear-gradient(180deg, #0b0e17 0%, #05060d 100%);
    border-left: 1px solid rgba(212,175,55,0.4);
    box-shadow: -10px 0 34px rgba(0,0,0,0.5);
    transform: translateX(102%);
    transition: transform .26s cubic-bezier(.22,.61,.36,1);
}
.rp-toc.is-open { transform: translateX(0); }
.rp-toc__hd {
    flex: none; height: 52px; padding: 0 12px 0 16px;
    display: flex; align-items: center; justify-content: space-between;
    border-bottom: 1px solid rgba(212,175,55,0.22);
    font-family: var(--font-serif); font-size: var(--fs-lg); letter-spacing: var(--ls-title);
    color: var(--gold-100);
}
.rp-toc__hd > span { display: inline-flex; align-items: center; gap: 7px; }
.rp-toc__hd .mini-ico { width: 16px; height: 16px; }
.rp-toc__x { width: 32px; height: 32px; display: grid; place-items: center; border: none; background: none; color: var(--text-faint); }
.rp-toc__x:active { color: var(--gold-200); }
.rp-toc__x svg { width: 17px; height: 17px; }
.rp-toc__list { flex: 1; overflow-y: auto; padding: 6px 8px calc(20px + env(safe-area-inset-bottom)); }
.rp-toc__item {
    position: relative;
    width: 100%; display: flex; align-items: center; gap: 10px;
    padding: 12px 10px; text-align: left;
    border: none; background: none; border-radius: var(--radius-sm);
    color: var(--text-sub); font-size: var(--fs-md);
    border-bottom: 1px solid rgba(158,166,184,0.08);
}
.rp-toc__item:active { background: rgba(212,175,55,0.07); }
.rp-toc__item.is-active { color: var(--gold-100); background: linear-gradient(90deg, rgba(212,175,55,0.13), rgba(212,175,55,0.02)); }
.rp-toc__item.is-active::before {
    content: ""; position: absolute; left: 0; top: 9px; bottom: 9px; width: 2px;
    border-radius: 1px; background: linear-gradient(180deg, var(--gold-200), var(--gold-400));
    box-shadow: 0 0 6px rgba(220,184,74,0.6);
}
.rp-toc__no {
    flex: none; width: 24px; height: 24px; display: grid; place-items: center;
    font-family: var(--font-serif); font-size: var(--fs-xs); color: var(--gold-300);
    border: 1px solid rgba(212,175,55,0.4); border-radius: 50%;
}
.rp-toc__item.is-active .rp-toc__no { color: var(--gold-100); border-color: var(--gold-300); background: rgba(212,175,55,0.14); }
.rp-toc__t { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rp-toc__gov { flex: none; width: 14px; height: 14px; color: var(--gold-500); }
.rp-toc__item.is-active .rp-toc__gov { color: var(--gold-300); }

/* ---------- 卷尾：金线菱花 + 全文完 ---------- */
.rp-end { text-align: center; padding: 20px 0 6px; }
.rp-end__rule { display: flex; align-items: center; justify-content: center; gap: 10px; }
.rp-end__rule i { width: 64px; height: 1px; background: linear-gradient(90deg, transparent, rgba(212,175,55,0.55)); }
.rp-end__rule i:last-child { transform: scaleX(-1); }
.rp-end__diamond { width: 6px; height: 6px; transform: rotate(45deg); background: linear-gradient(135deg, var(--gold-200), var(--gold-400)); box-shadow: 0 0 7px rgba(220,184,74,0.5); }
.rp-end__txt { margin-top: 10px; font-family: var(--font-serif); font-size: var(--fs-md); letter-spacing: 6px; text-indent: 6px; color: var(--gold-200); }
.rp-end__sub { margin-top: 6px; font-size: var(--fs-xs); color: var(--text-faint); letter-spacing: var(--ls-base); }

/* 旧类归并入新版式（紫微渲染器等仍输出 report-section-h / report-wrap） */
.report-wrap { line-height: var(--lh-loose); font-size: var(--fs-base); letter-spacing: 0.4px; color: var(--text-main); white-space: pre-wrap; overflow-wrap: anywhere; text-align: justify; }
.report-section-h { display: flex; align-items: center; gap: 8px; margin: 20px 0 10px; font-family: var(--font-serif); font-size: var(--fs-lg); line-height: var(--lh-tight); color: var(--gold-200); font-weight: var(--fw-semi); letter-spacing: var(--ls-wide); }
.report-section-h::before { content: ""; flex: none; width: 7px; height: 7px; transform: rotate(45deg); background: linear-gradient(135deg, var(--gold-200), var(--gold-500)); box-shadow: 0 0 6px rgba(220,184,74,0.5); }
.report-section-h::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, rgba(212,175,55,0.45), transparent); }
.report-section-h:first-child { margin-top: 2px; }

/* ===== v3 道系解读成品页（报告首章 kind=doubao_interpret） ===== */
.ai-interpret__notice { text-align: center; font-size: var(--fs-xs); color: var(--text-faint); line-height: 1.8; padding: 9px 12px; border: 1px dashed rgba(212,175,55,0.32); border-radius: 10px; background: rgba(212,175,55,0.05); margin: 2px 0 14px; }
.ai-interpret__cover { text-align: center; font-family: var(--font-serif); font-size: 19px; line-height: 1.75; color: var(--gold-100); font-weight: var(--fw-semi); letter-spacing: var(--ls-base); margin: 2px 0 16px; padding: 0 6px; text-shadow: 0 0 12px rgba(220,184,74,0.28); }
.ai-interpret__cover::before, .ai-interpret__cover::after { content: ""; display: block; width: 64px; height: 1px; margin: 10px auto 0; background: linear-gradient(90deg, transparent, rgba(220,184,74,0.6), transparent); }
.ai-interpret__cover::before { margin: 0 auto 10px; }
.ai-interpret__headline { font-family: var(--font-serif); font-size: var(--fs-lg); line-height: var(--lh-snug); color: var(--gold-100); font-weight: var(--fw-semi); letter-spacing: var(--ls-base); margin: 2px 0 8px; }
.ai-interpret__chips { display: flex; flex-wrap: wrap; gap: 7px; margin: 8px 0 12px; }
.ai-interpret__chip { font-size: var(--fs-xs); padding: 4px 11px; border-radius: 999px; background: rgba(212,175,55,0.1); color: var(--gold-200); border: 1px solid rgba(212,175,55,0.34); letter-spacing: 0.5px; }
.ai-interpret__bullets { margin: 8px 0 10px; padding: 0; list-style: none; }
.ai-interpret__bullets li { position: relative; margin: 6px 0; padding-left: 16px; font-size: var(--fs-sm); line-height: 1.9; color: var(--text-sub); }
.ai-interpret__bullets li::before { content: ""; position: absolute; left: 2px; top: 0.85em; width: 5px; height: 5px; transform: rotate(45deg) translateY(-50%); background: var(--gold-400); }
.ai-interpret__dao { margin: 12px 0; padding: 10px 13px; font-size: var(--fs-sm); line-height: 1.9; color: var(--gold-200); border-left: 3px solid var(--gold-400); border-radius: 0 8px 8px 0; background: linear-gradient(90deg, rgba(212,175,55,0.12), rgba(212,175,55,0.03)); }
.ai-interpret__dao--essence { font-weight: var(--fw-semi); color: var(--gold-100); }
.ai-interpret__term { position: relative; font-size: var(--fs-xs); line-height: 1.7; color: var(--text-faint); margin: 5px 0; padding-left: 14px; }
.ai-interpret__term::before { content: "❖"; position: absolute; left: 0; top: 0; font-size: 9px; color: var(--gold-500); }
.ai-interpret__footer { margin-top: 18px; font-size: var(--fs-xs); color: var(--text-faint); line-height: 1.8; text-align: center; border-top: 1px solid rgba(212,175,55,0.18); padding-top: 12px; }

/* ============ 档案页（v17 源文件紧凑尺寸） ============ */
.archive-card {
    display: flex; align-items: center; gap: 12px;
    padding: var(--card-pad);
    margin-bottom: var(--card-gap);
    border: 1px solid var(--gold-400);
    border-radius: var(--radius);
    background: var(--bg-card);
    box-shadow: 0 3px 12px rgba(0,0,0,0.35), inset 0 1px 0 rgba(248,237,190,0.18);
    cursor: pointer;
}
.avatar {
    width: 44px; height: 44px; flex: none;
    border-radius: 50%;
    display: grid; place-items: center;
    color: var(--gold-300);
    border: 1px solid var(--gold-400);
    background: radial-gradient(circle at 50% 30%, rgba(212,175,55,0.2), var(--ink-900));
    box-shadow: inset 0 1px 0 rgba(248,237,190,0.25);
}
.avatar svg { width: 26px; height: 26px; }
.avatar--sm { width: 48px; height: 48px; }
.archive-card__body { flex: 1; min-width: 0; }
.archive-card__name { font-size: var(--fs-lg); line-height: var(--lh-tight); color: var(--gold-100); font-weight: var(--fw-semi); display: flex; align-items: center; gap: 8px; }
.archive-card__meta { font-size: var(--fs-sm); line-height: var(--lh-snug); color: var(--text-sub); margin: 4px 0 6px; }
.archive-card__tags { display: flex; gap: 6px; flex-wrap: wrap; }
.archive-card__ops { display: flex; flex-direction: column; gap: 8px; flex: none; }
.icon-btn {
    width: 30px; height: 30px;
    display: grid; place-items: center;
    border-radius: 50%;
    border: 1px solid var(--gold-500);
    color: var(--gold-200);
    background: rgba(212,175,55,0.06);
}
.icon-btn svg { width: 16px; height: 16px; }

/* 排版改造：虚线改实线描金边框，与全站按钮/卡片的边界语言统一 */
.add-archive {
    display: flex; align-items: center; justify-content: center; gap: 8px;
    width: 100%; height: 54px;
    margin-bottom: var(--card-gap);
    border: 1px solid var(--gold-400);
    border-radius: var(--radius);
    color: var(--gold-200);
    background: rgba(212,175,55,0.06);
    box-shadow: inset 0 1px 0 rgba(248,237,190,0.18);
    font-size: var(--fs-lg); letter-spacing: var(--ls-wide);
    cursor: pointer;
}
.add-archive svg { width: 18px; height: 18px; }

/* 档案页同页固定显示：档案列表/解读历史两个动态区限高 + 框内滚动，
   保证页面总高可控（档案再多也不会把解读历史挤出屏外），全部信息同页可达。
   限高值随单屏适配级别递减（fit-tight / fit-mini 见 layout.css）。
   整页 flex 列布局：档案列表区弹性占据横幅/新增按钮与解读历史卡之间的全部剩余空间，
   空态框在列表区内撑满居中——空档案时页面下方不再大片留白，内容始终铺满一屏 */
.arc-page { height: 100%; display: flex; flex-direction: column; }
.arc-page > * { flex: none; }
.arc-page #archiveList { flex: 1 1 auto; min-height: 150px; max-height: none; display: flex; flex-direction: column; }
.arc-page #archiveList > .archive-card { flex: none; }
.arc-page #archiveList > .gc-card { flex: 1 1 auto; display: flex; flex-direction: column; margin-bottom: 0; }
.arc-page #archiveList > .gc-card .empty { flex: 1 1 auto; display: flex; flex-direction: column; align-items: center; justify-content: center; }
#archiveList { max-height: 250px; margin-bottom: var(--card-gap); overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
/* 容器自身已带与下卡统一的 --card-gap 间距，内部最后一框不再重复留距（避免双倍间距） */
#archiveList .archive-card:last-child,
#archiveList .gc-card:last-child { margin-bottom: 0; }
#archiveHistory { max-height: 164px; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
/* 框内滚动条：细金条，与全站金色描边语言协调 */
#archiveList::-webkit-scrollbar,
#archiveHistory::-webkit-scrollbar { width: 3px; }
#archiveList::-webkit-scrollbar-thumb,
#archiveHistory::-webkit-scrollbar-thumb { background: rgba(212,175,55,0.35); border-radius: 2px; }
#archiveList::-webkit-scrollbar-track,
#archiveHistory::-webkit-scrollbar-track { background: transparent; }

/* 时间线 */
.timeline__item {
    position: relative;
    padding: 0 0 16px 20px;
    border-left: 1px solid rgba(212,175,55,0.3);
    margin-left: 6px;
}
.timeline__item:last-child { padding-bottom: 2px; }
.timeline__item::before {
    content: "";
    position: absolute; left: -5px; top: 3px;
    width: 9px; height: 9px; border-radius: 50%;
    background: var(--gold-300);
    box-shadow: 0 0 0 3px rgba(212,175,55,0.18);
}
.timeline__time { font-size: var(--fs-sm); line-height: var(--lh-snug); color: var(--text-sub); font-variant-numeric: tabular-nums; }
.timeline__text { font-size: var(--fs-base); line-height: var(--lh-snug); color: var(--text-main); margin-top: 2px; }

/* ============ 我的页（v17 源文件紧凑尺寸） ============ */
/* 排版改造：用户区由裸排改为描金卡片，与下方 VIP/统计/服务卡同一边界语言 */
.mine-page { height: 100%; display: flex; flex-direction: column; }
.mine-page > * { flex: none; }
/* 单屏固定填充：整页 flex 列布局，「我的服务」卡弹性占据页尾剩余空间，
   服务行在卡内均分拉高——底部不再留白，行目标更高更易点。
   不设 min-height:0：矮屏时卡片须保持五行服务的自然总高（行可以均分拉高、
   不得压缩到内容以下而溢出卡外），超高由 Fit.fitMain 统一等比缩放 */
.mine-page > .gc-card:last-child { flex: 1 1 auto; display: flex; flex-direction: column; }
.mine-page > .gc-card:last-child .gc-list__item { flex: 1 1 auto; }
.mine-user {
    display: flex; align-items: center; gap: 12px;
    padding: 14px 16px;
    margin-bottom: var(--card-gap);
    border: 1px solid var(--gold-400);
    border-radius: var(--radius);
    background: var(--bg-card);
    box-shadow: 0 4px 14px rgba(0,0,0,0.35), inset 0 1px 0 rgba(252,244,210,0.22);
}
.mine-user__info { flex: 1; min-width: 0; }
.mine-user__name { font-size: var(--fs-xl); line-height: var(--lh-tight); color: var(--gold-100); font-weight: var(--fw-semi); letter-spacing: var(--ls-base); display: flex; align-items: center; gap: 8px; }
.vip-badge {
    display: inline-flex; align-items: center; gap: 3px;
    height: 20px; padding: 0 8px;
    font-size: var(--fs-xs); line-height: var(--lh-none); letter-spacing: var(--ls-base);
    border-radius: 10px;
    color: var(--text-on-gold); font-weight: var(--fw-semi);
    background: linear-gradient(180deg, var(--gold-100), var(--gold-400));
    box-shadow: 0 1px 4px rgba(0,0,0,0.3);
}
.vip-badge svg { width: 12px; height: 12px; }
.mine-user__id { font-size: var(--fs-sm); line-height: var(--lh-snug); color: var(--text-sub); margin-top: 5px; }

.vip-banner {
    position: relative;
    border-radius: var(--radius);
    padding: 13px;
    margin-bottom: 10px;
    overflow: hidden;
    border: 1px solid var(--gold-400);
    background:
        linear-gradient(120deg, rgba(212,175,55,0.22), rgba(212,175,55,0.05) 55%, rgba(0,0,0,0.15)),
        linear-gradient(180deg, var(--ink-600), var(--ink-800));
    box-shadow: 0 4px 14px rgba(0,0,0,0.4), inset 0 1px 0 rgba(248,237,190,0.25);
}
.vip-banner__cloud { position: absolute; right: 8px; bottom: 4px; color: var(--gold-400); opacity: .5; }
.vip-banner__cloud svg { width: 70px; height: 33px; }
.vip-banner__t { font-size: var(--fs-lg); line-height: var(--lh-tight); color: var(--gold-100); font-weight: var(--fw-semi); letter-spacing: var(--ls-wide); display: flex; align-items: center; gap: 7px; }
.vip-banner__t svg { width: 19px; height: 19px; color: var(--gold-200); }
.vip-banner__d { font-size: var(--fs-md); line-height: var(--lh-snug); color: var(--text-main); margin: 4px 0 9px; }

/* 我的页横幅：紧凑单行卡（图标+标题+到期 ｜ 右侧按钮），上下缩小 */
#mineVipBanner {
    display: flex; align-items: center; gap: 12px;
    padding: 14px 16px; margin-bottom: var(--card-gap);
}
#mineVipBanner .vip-banner__info { flex: 1; min-width: 0; }
#mineVipBanner .vip-banner__t { font-size: var(--fs-md); letter-spacing: var(--ls-base); }
#mineVipBanner .vip-banner__t svg { width: 17px; height: 17px; }
#mineVipBanner .vip-banner__d { font-size: var(--fs-xs); margin: 3px 0 0; }
#mineVipBanner .vip-banner__btn { flex: none; width: auto; height: 36px; padding: 0 16px; border-radius: 18px; font-size: var(--fs-sm); white-space: nowrap; letter-spacing: var(--ls-base); }

/* 我的页：排版改造后统一走全站卡片间距令牌（16px 内边距 / 12px 卡距），
   原「紧凑覆盖」五规则删除——同页 3 种卡片 padding 并存是杂乱根源之一 */
.mine-page .vip-banner { margin-bottom: var(--card-gap); }

.stat-row { display: flex; text-align: center; }
.stat-row__item { flex: 1; padding: 4px 0; }
.stat-row__item + .stat-row__item { border-left: 1px solid rgba(212,175,55,0.2); }
.stat-row .v { font-size: var(--fs-2xl); line-height: var(--lh-tight); color: var(--gold-200); font-weight: var(--fw-semi); }
.stat-row .k { font-size: var(--fs-sm); line-height: var(--lh-tight); color: var(--text-sub); margin-top: 4px; }
/* 我的页统计卡：与全站卡片内边距统一 */
.mine-page .mine-stat { padding: 14px 16px; margin-bottom: var(--card-gap); }

/* ---------- 我的页三框减法（用户反馈：三个框太重、整页密密麻麻太丑） ----------
   仅作用于 .mine-page，整块可独立回退：
   1) 用户卡 / 会员横幅 / 统计卡（含下方服务卡）统一为细金描边 + 单层轻投影，
      原 1px 亮金边 + 多层厚投影三框摞在一起发闷；
   2) 去掉统计卡竖杠分隔与祥云角花（竖杠与多余装饰已多次确认为减分项）；
   3) 压缩三框纵向内边距与统计数字尺寸，给页面让出呼吸空间。 */
.mine-page .mine-user,
.mine-page .vip-banner,
.mine-page .gc-card {
    border-color: rgba(212,175,55,0.30);
    box-shadow: 0 2px 10px rgba(0,0,0,0.28);
}
.mine-page .gc-card::before,
.mine-page .gc-card::after { display: none; }
.mine-page .stat-row__item + .stat-row__item { border-left: none; }

.mine-page .mine-user { padding: 11px 14px; }

/* 会员横幅极简化（用户明确要求）：只保留标题一行——
   「开通会员，全功能解锁」（会员态为有效期文案），描述句与开通按钮视觉去除
   （DOM 保留，JS setText 照常填充不报错）；整框淡化：无投影、极淡金底、细边；
   整行带 data-action 可点进会员页，右侧 CSS 画一枚小箭头暗示可点；
   会员态长文案单行省略，保证横幅恒为一行高 */
.mine-page #mineVipBanner {
    height: 46px;
    padding: 0 14px;
    gap: 10px;
    border-color: rgba(212,175,55,0.18);
    background: rgba(212,175,55,0.06);
    box-shadow: none;
    cursor: pointer;
}
.mine-page #mineVipBanner .vip-banner__d,
.mine-page #mineVipBanner .vip-banner__btn { display: none; }
.mine-page #mineVipBanner .vip-banner__t {
    font-size: var(--fs-md);
    letter-spacing: var(--ls-base);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.mine-page #mineVipBanner .vip-banner__t svg { width: 16px; height: 16px; flex: none; }
.mine-page #mineVipBanner::after {
    content: ""; flex: none;
    width: 8px; height: 8px;
    border-right: 1.5px solid var(--gold-300);
    border-top: 1.5px solid var(--gold-300);
    transform: rotate(45deg);
    opacity: .75;
}
.mine-page #mineVipBanner:active { background: rgba(212,175,55,0.11); }

.mine-page .mine-stat { padding: 8px 14px; }
.mine-page .stat-row__item { padding: 2px 0; }
.mine-page .stat-row .v { font-size: var(--fs-xl); }
.mine-page .stat-row .k { margin-top: 3px; }

/* 右上角设置键：由 18px 暗金裸图标改为鎏金圆形按钮，清晰可点、不淡化（仅我的页用户卡） */
.mine-page .mine-user > .gc-list__arrow {
    width: 36px; height: 36px; flex: none;
    display: grid; place-items: center;
    border-radius: 50%;
    color: var(--gold-200);
    border: 1px solid rgba(220,184,74,0.55);
    background: radial-gradient(circle at 50% 35%, rgba(212,175,55,0.22), rgba(212,175,55,0.04));
    box-shadow: inset 0 1px 0 rgba(248,237,190,0.25);
}
.mine-page .mine-user > .gc-list__arrow svg { width: 20px; height: 20px; }

/* 我的服务：5 个独立描边小框在压缩态下挤成一团，改为无框 hairline 分行——
   行仍随卡片弹性拉高，文字垂直居中、行间留白充足；压缩态只减行距不显挤。
   作用域仅限我的页，其他页面的小框列表不变；整块可独立回退 */
.mine-page > .gc-card:last-child .gc-list__item {
    padding: 13px 8px;
    margin-bottom: 0;
    border: none;
    border-radius: 0;
    background: none;
    border-bottom: 1px solid rgba(212,175,55,0.14);
}
.mine-page > .gc-card:last-child .gc-list__item:last-child { border-bottom: none; }
.mine-page .gc-list__item .gc-list__arrow { color: var(--gold-300); }

/* ============ 会员套餐（精简选择卡：角标 / 价格在上 / 档名在下；权益明细收进下方对比折叠卡） ============ */
.plan-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; margin: 12px 0; }
.plan {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    text-align: center;
    padding: 17px 8px 13px;
    border-radius: var(--radius-sm);
    border: 1px solid var(--gold-500);
    background: var(--bg-card);
    position: relative;
    cursor: pointer;
    transition: border-color .15s ease, box-shadow .15s ease, background .15s ease, transform .12s ease;
}
.plan:active { transform: scale(0.98); }
.plan.on {
    border-color: var(--gold-200);
    box-shadow: 0 0 0 1px var(--gold-300), 0 0 14px rgba(212,175,55,0.25);
    background: linear-gradient(180deg, rgba(212,175,55,0.16), var(--ink-700));
}
/* 价格：¥ 小字基线对齐，数字最大做视觉焦点 */
.plan__price {
    display: flex; align-items: baseline; justify-content: center;
    margin: 7px 0 8px;
    font-size: var(--fs-2xl); line-height: 1; color: var(--gold-100); font-weight: var(--fw-bold);
    font-variant-numeric: tabular-nums;
}
.plan__sym { font-size: var(--fs-sm); font-weight: var(--fw-semi); color: var(--gold-300); margin-right: 2px; }
.plan__name { font-size: var(--fs-lg); line-height: var(--lh-tight); color: var(--gold-200); font-weight: var(--fw-medium); letter-spacing: var(--ls-base); white-space: nowrap; }
.plan__flag {
    position: absolute; top: -8px; left: 50%; transform: translateX(-50%);
    font-size: var(--fs-2xs); line-height: var(--lh-tight); color: var(--text-on-gold); font-weight: var(--fw-semi);
    background: linear-gradient(180deg, var(--gold-100), var(--gold-400));
    border-radius: 8px; padding: 1px 8px; white-space: nowrap;
}
/* 会员期内同档/更低档置灰（不可重复购买，仅可升级） */
.plan--disabled {
    opacity: 0.42; cursor: not-allowed; filter: grayscale(0.5);
    border-color: var(--ink-500); box-shadow: none;
}
.plan--disabled.on { border-color: var(--ink-500); box-shadow: none; background: linear-gradient(180deg, var(--ink-600), var(--ink-800)); }

/* ============ 会员权益对比（折叠展开：逐档陈列长段权益，行间细分隔线） ============ */
.vip-cmp { display: flex; flex-direction: column; }
.vip-cmp__item { padding: 11px 0; border-bottom: 1px solid var(--ink-line); }
.vip-cmp__item:first-child { padding-top: 2px; }
.vip-cmp__item:last-child { border-bottom: none; padding-bottom: 2px; }
.vip-cmp__h { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
.vip-cmp__flag {
    flex: none; font-size: var(--fs-2xs); line-height: 1.7;
    padding: 0 8px; border-radius: 999px;
    color: var(--gold-100); background: rgba(212,175,55,0.12);
    border: 1px solid rgba(212,175,55,0.42);
}
.vip-cmp__name {
    flex: 1; min-width: 0;
    font-family: var(--font-serif); font-size: var(--fs-lg); letter-spacing: var(--ls-base);
    color: var(--gold-100); font-weight: var(--fw-semi); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.vip-cmp__price {
    flex: none; font-size: var(--fs-lg); font-weight: var(--fw-bold);
    color: var(--gold-200); font-variant-numeric: tabular-nums;
}
.vip-cmp__d {
    margin: 0; font-size: var(--fs-md); line-height: var(--lh-base);
    color: var(--text-main); text-align: justify; overflow-wrap: anywhere;
}
/* 推荐档（年卡）：角标实心金胶囊，与套餐卡「推荐」选中态呼应 */
.vip-cmp__item.is-rec .vip-cmp__flag {
    color: var(--text-on-gold); border-color: transparent;
    background: linear-gradient(180deg, var(--gold-200), var(--gold-400));
}

/* 额度可见性（第二十六条）：已用/总额度、单日上限、重置日 */
.quota-rows { display: flex; flex-direction: column; gap: 6px; }
.quota-row {
    display: flex; justify-content: space-between; align-items: baseline; gap: 10px;
    font-size: var(--fs-sm); line-height: var(--lh-snug); color: var(--text-main);
    padding-bottom: 6px; border-bottom: 1px dashed rgba(220,184,74,0.16);
}
.quota-row:last-child { border-bottom: none; padding-bottom: 0; }
.quota-row b { color: var(--gold-100); font-weight: var(--fw-semi); font-variant-numeric: tabular-nums; }
.right-list { font-size: var(--fs-md); color: var(--text-main); line-height: var(--lh-loose); }
.right-list li { display: flex; gap: 8px; align-items: flex-start; }
.right-list svg { width: 14px; height: 14px; color: var(--gold-300); flex: none; margin-top: 5px; }

/* ============ 分销中心（v17 源文件紧凑尺寸） ============ */
.earn-card {
    text-align: center;
    padding: 16px 14px;
    border-radius: var(--radius);
    border: 1px solid var(--gold-400);
    background: linear-gradient(160deg, rgba(212,175,55,0.18), var(--ink-800));
    box-shadow: inset 0 1px 0 rgba(248,237,190,0.22);
    margin-bottom: 10px;
}
.earn-card__v { font-size: var(--fs-4xl); line-height: var(--lh-tight); font-weight: var(--fw-bold); color: var(--gold-100); }
.earn-card__v small { font-size: var(--fs-base); font-weight: var(--fw-semi); color: var(--gold-200); }
.earn-card__k { font-size: var(--fs-sm); line-height: var(--lh-tight); color: var(--text-sub); letter-spacing: var(--ls-wide); }
.invite-link {
    display: flex; gap: 8px; align-items: center;
    background: var(--ink-900);
    border: 1px solid var(--gold-500);
    border-radius: var(--radius-sm);
    padding: 4px 4px 4px 12px;
    font-size: var(--fs-sm); color: var(--text-sub);
}
.invite-link span { flex: 1; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.invite-link button {
    flex: none; height: 34px; padding: 0 16px;
    border: none; border-radius: 6px;
    color: var(--text-on-gold); font-weight: var(--fw-semi); font-size: var(--fs-md);
    background: linear-gradient(180deg, var(--gold-200), var(--gold-400));
}

/* ============ 命盘详情 ============ */
.detail-section-h {
    display: flex; align-items: center; gap: 8px;
    font-size: var(--fs-lg); line-height: var(--lh-tight); color: var(--gold-100); font-weight: var(--fw-bold);
    margin: 4px 0 9px; letter-spacing: var(--ls-base);
}
.detail-section-h::after { content:""; flex:1; height:1px; background: linear-gradient(90deg, rgba(212,175,55,0.5), transparent); }
.detail-text { font-size: var(--fs-base); line-height: var(--lh-loose); color: var(--text-main); }
.detail-text + .detail-text { margin-top: 8px; }
.lock-tip {
    display: flex; align-items: center; justify-content: center; gap: 7px;
    margin-top: 12px;
    font-size: var(--fs-md); color: var(--gold-200);
}
.lock-tip svg { width: 15px; height: 15px; }

/* 结果弹层轻提示 toast */
.toast {
    position: fixed;
    left: 50%; top: 45%;
    transform: translate(-50%,-50%);
    z-index: 99;
    background: rgba(11,14,22,0.92);
    border: 1px solid var(--gold-400);
    color: var(--gold-100);
    padding: 11px 20px;
    border-radius: var(--radius-sm);
    font-size: var(--fs-base);
    letter-spacing: var(--ls-base);
    box-shadow: 0 6px 20px rgba(0,0,0,0.5);
    opacity: 0;
    pointer-events: none;
    transition: opacity .2s;
}
.toast.show { opacity: 1; }
/* 推广卡片副标题 */
.earn-card__sub { font-size: var(--fs-sm); line-height: var(--lh-snug); color: var(--text-sub); margin-top: 6px; letter-spacing: var(--ls-tight); }
/* 会员支付协议（排版改造）：勾选行居中、说明段左对齐，
   原整段 12px 居中使多行法律文本边缘参差，改造后字号 +1、左对齐可读 */
.pay-agreement { margin: 12px 2px 0; font-size: var(--fs-sm); line-height: var(--lh-base); color: var(--text-sub); }
.pay-agreement__check { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 4px; }
.pay-agreement__note { margin-top: 6px; text-align: left; }
/* 支付方式分段器高度 */
.pay-channel span { height:38px; line-height:38px; font-size: var(--fs-base); }

/* 报告等待页：付款后不再整页刷新返回原界面，改为等待报告渲染完成后直接跳转解读报告。
   沿用支付弹层同一套深绿描金视觉；z-index 高于 .pay-sheet-mask(200) 以覆盖支付层 */
.wait-mask {
    position: fixed; inset: 0; z-index: 210;
    background: var(--bg-mask-strong);
    display: flex; align-items: center; justify-content: center;
    opacity: 0; transition: opacity .22s ease;
}
.wait-mask.show { opacity: 1; }
.wait-box {
    position: relative;
    display: flex; flex-direction: column; align-items: center; gap: 13px;
    min-width: 216px; padding: 26px 22px;
    background: linear-gradient(180deg, #0b0e17 0%, #05060d 100%);
    border: 1px solid var(--gold-400); border-radius: 16px;
    box-shadow: 0 10px 34px rgba(0,0,0,0.55), inset 0 1px 0 rgba(248,237,190,0.18);
}
/* 等待页关闭钮：关闭只是收起遮罩（服务端继续生成、完成自动存档），不是取消订单 */
.wait-close {
    position: absolute; top: 7px; right: 9px;
    width: 28px; height: 28px; padding: 0; border: none; border-radius: 50%;
    background: transparent; color: var(--text-sub);
    font-size: 20px; line-height: 1; cursor: pointer;
}
.wait-close:active { color: var(--gold-200); }
.wait-spin {
    width: 34px; height: 34px; border-radius: 50%;
    border: 2px solid rgba(212,175,55,0.22);
    border-top-color: var(--gold-300);
    animation: wait-rot .9s linear infinite;
}
@keyframes wait-rot { to { transform: rotate(360deg); } }
.wait-text {
    font-size: var(--fs-base); color: var(--gold-200);
    font-weight: var(--fw-semi); letter-spacing: var(--ls-title); text-align: center;
}
.wait-sub {
    font-size: var(--fs-xs); color: var(--text-sub);
    line-height: var(--lh-snug); text-align: center;
}

/* 底部支付弹层 */
.pay-sheet-mask {
    position: fixed; inset: 0; z-index: 200;
    background: rgba(6,9,15,0.62);
    display: flex; align-items: flex-end;
    opacity: 0; transition: opacity .22s ease;
}
.pay-sheet-mask.show { opacity: 1; }
.pay-sheet {
    width: 100%;
    background: linear-gradient(180deg, #0b0e17 0%, #05060d 100%);
    border-top: 1px solid var(--gold-400);
    border-radius: 16px 16px 0 0;
    padding: 20px 18px calc(20px + env(safe-area-inset-bottom));
    box-shadow: 0 -6px 28px rgba(0,0,0,0.55), inset 0 1px 0 rgba(248,237,190,0.18);
    transform: translateY(100%); transition: transform .24s ease;
}
.pay-sheet-mask.show .pay-sheet { transform: translateY(0); }
.pay-sheet__title {
    text-align:center; font-size: var(--fs-lg); line-height: var(--lh-tight); letter-spacing: var(--ls-title);
    color:var(--gold-200); font-weight: var(--fw-semi); margin-bottom:12px;
}
.pay-sheet__goods {
    display:flex; justify-content:space-between; align-items:center;
    font-size: var(--fs-base); color:var(--text-main);
    padding: 10px 12px; border:1px solid var(--gold-500);
    border-radius:var(--radius-sm); background:rgba(212,175,55,0.06);
}
.pay-sheet__goods b { color:var(--gold-100); font-size: var(--fs-xl); font-weight: var(--fw-bold); }
.pay-sheet__tip { text-align:center; font-size: var(--fs-xs); line-height: var(--lh-snug); color:var(--text-sub); margin-top:10px; }

/* ============================================================
   v16 排盘链路组件：基本排盘 / 基本信息 / 专业细盘 / 报告入口
   【底色约定】本节内部分组件为纸色浅底（--paper 系列），其余沿用墨绿卡片深底。
   --text-main / --text-sub 是专为深底设计的浅色，放到 #faf6ec 上对比度只剩 1.2~2.5:1（几乎不可见），
   所以浅底元素一律改用 --paper-main / --paper-sub / --paper-faint / --paper-gold（均 ≥ 4.5:1）。
   ============================================================ */
/* 命主概要（乾/坤 + 农历|公历 + 基本信息按钮）——卡片为深底 */
.basic-head { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.basic-head__text { display:flex; flex-direction:column; gap:4px; min-width:0; }
.basic-head__line { font-size: var(--fs-lg); line-height: var(--lh-tight); font-weight: var(--fw-semi); color:var(--text-main); }
.basic-head__line--sub { font-size: var(--fs-sm); line-height: var(--lh-snug); font-weight: var(--fw-regular); color:var(--text-sub); }
/* 基本信息按钮：墨绿底配鎏金描边，与全站主题统一 */
.basic-head__btn { flex:none; padding:6px 14px; border-radius:16px; border:1px solid var(--gold-400); background:var(--ink-600); font-size: var(--fs-sm); line-height: var(--lh-tight); color: var(--gold-100); }
/* 保存 / 分享 */
.result-actions { display:flex; gap:10px; margin-top:12px; }
.result-actions__save { flex:2; }
/* 排盘后自动存档成功，按钮翻「已存入档案」并禁用：鎏金实心底+高光会读成「还能点」，
   故去阴影压透明度，与 .ly-btn:disabled 同口径，避免全站禁用态两套写法 */
.result-actions__save:disabled { opacity:.5; cursor:not-allowed; filter:none; transform:none; box-shadow:none; text-shadow:none; }
.result-actions__share { flex:1; }
/* 专业细盘入口：改入墨绿+鎏金 palette（原 slate 蓝灰跳色） */
.pro-entry-btn { display:block; width:100%; margin-top:12px; padding:12px 0; border:1px solid var(--gold-400); border-radius:12px; background: var(--bg-control); color: var(--gold-100); font-size: var(--fs-base); line-height: var(--lh-tight); font-weight: var(--fw-semi); letter-spacing: var(--ls-wide); box-shadow: inset 0 1px 0 rgba(252,244,210,0.18); }
/* 报告解读付费入口（纸色暖底） */
.result-paid-entry { display:flex; justify-content:space-between; align-items:center; margin-top:12px; padding:13px 16px; border-radius:12px; background: var(--paper-warm); border:1px solid var(--paper-edge); color: var(--paper-accent); font-size: var(--fs-base); line-height: var(--lh-tight); font-weight: var(--fw-semi); }
.result-paid-entry__arrow { font-size: var(--fs-xl); }
/* 命盘表格卡片：内边距收窄（原 13px），配合资料条压缩把整框顶进首屏。
   表格是满框内容，内边距收窄后卡片四角祥云角花（top:6px）与格子重叠由 4px 增至 8px，
   会压在「流年」表头上，故此卡不绘角花（其余卡片保留） */
.gc-card.pro-table-card { padding:8px 9px; }
.gc-card.pro-table-card::before, .gc-card.pro-table-card::after { display:none; }
/* 干支规则框表格（表头未选中时为深底，格子为浅底） */
.gz-table { display:flex; }
.gz-table__corner { width:34px; flex:none; }
.gz-table__cols { flex:1; overflow-x:auto; }
.gz-table__table { width:100%; border-collapse:collapse; table-layout:fixed; }
/* 行内边距收窄（原表头 6px、格子 5px）：细盘 10 行叠起来很高，
   每行省 4~6px 累积可观，压缩后首屏能完整容纳整个命盘框（含神煞行） */
.gz-th { padding:3px 0; font-size: var(--fs-sm); line-height: var(--lh-tight); font-weight: var(--fw-medium); color:var(--text-sub); cursor:pointer; }
.gz-th--active { background: var(--paper-alt); color: var(--paper-main); font-weight: var(--fw-bold); border-radius:6px 6px 0 0; }
.gz-td { padding:3px 2px; text-align:center; background: var(--paper); border:1px solid var(--paper-line); vertical-align:middle; cursor:pointer; }
.gz-td--active { background: var(--paper-alt); }
/* 多值行（藏干/副星/神煞）顶对齐：各列项数不等时，跨列同一序号的项落在同一水平线上 */
.gz-td--top { vertical-align:top; }
.gz-char { display:inline-block; font-family: var(--font-serif); font-size: var(--fs-3xl); line-height: var(--lh-tight); font-weight: var(--fw-bold); }
.gz-char--mid { font-size: var(--fs-lg); margin:0 1px; }
/* 藏干格：只排藏干字，十神一律归独立「副星」行（基本排盘与专业细盘同一套规则），
   两组信息不再叠在同一格内；多藏干纵向排列、每个独占一行。
   原叠字用的 .gz-cg__item / .gz-cg__god 已随之删除 */
.gz-cg { display:flex; flex-direction:column; align-items:center; gap:2px; }
/* 副星格：后端 dz_god 藏干十神，与 cg 等长、逐行与藏干对齐；
   地支多藏三个（如寅甲丙戊、申庚壬戊）时一律纵向排列、每项独占一行，不横向堆叠 */
.gz-fx { display:flex; flex-direction:column; align-items:center; gap:1px; }
.gz-fx__item { font-size: var(--fs-2xs); line-height: var(--lh-snug); color: var(--paper-main); white-space:nowrap; }
.gz-text { display:inline-block; margin:1px; font-size: var(--fs-sm); line-height: var(--lh-tight); color: var(--paper-main); }
/* 神煞格：每个神煞独占一行（block），去掉胶囊底与横向 margin，避免窄列内折行堆叠 */
.gz-ss { display:block; font-size: var(--fs-2xs); line-height: var(--lh-snug); color: var(--paper-gold); }
/* 基本信息行列表（奇数行为纸色浅底，偶数行沿用卡片深底） */
.info-card { display:flex; flex-direction:column; }
.info-row { display:flex; align-items:flex-start; padding:10px 14px; }
.info-row--alt { background: var(--paper); }
.info-row__label { flex:none; width:110px; font-size: var(--fs-md); line-height: var(--lh-snug); color:var(--text-sub); }
.info-row__value { flex:1; font-size: var(--fs-md); line-height: var(--lh-snug); font-weight: var(--fw-medium); color:var(--text-main); word-break:break-all; }
.info-row--alt .info-row__label { color: var(--paper-sub); }
.info-row--alt .info-row__value { color: var(--paper-main); }
/* 专业细盘头部资料条 + 胎命身开关（span 式，.on 状态）
   本体即 .gc-card，故用复合选择器提高特异性覆盖其 padding/margin：
   上下内边距 13→6px、两行间距 4→2px、公历行行高收紧、下间距 10→6px，
   目的是把下方命盘大框整体上移，保证首屏不滚动就能看到神煞行 */
.gc-card.pro-head { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:6px 13px; margin-bottom:6px; }
.pro-head__text { display:flex; flex-direction:column; gap:2px; }
.pro-head__line { font-size: var(--fs-lg); line-height: var(--lh-tight); font-weight: var(--fw-semi); color:var(--text-main); }
.pro-head__line--sub { font-size: var(--fs-sm); line-height: var(--lh-tight); font-weight: var(--fw-regular); color:var(--text-sub); }
.pro-head__switch { display:flex; align-items:center; gap:6px; flex:none; cursor:pointer; }
.pro-head__switch-label { font-size: var(--fs-sm); line-height: var(--lh-none); color:var(--text-sub); }
.pro-head__switch-ui { position:relative; width:34px; height:18px; border-radius:9px; background: var(--paper-line); transition:background .2s; }
.pro-head__switch-ui::after { content:''; position:absolute; top:2px; left:2px; width:14px; height:14px; border-radius:50%; background:#fff; transition:transform .2s; }
/* 原引用未定义的 --primary，靠 fallback #8b4513（马鞍棕，脱离色板）生效；改为鎏金激活态 */
.pro-head__switch-ui.on { background: var(--gold-400); }
.pro-head__switch-ui.on::after { transform:translateX(16px); }
/* 原局关系 / 岁运提示（卡片深底；落入流月详情浅底时由下方规则改色） */
.pro-line__row { font-size: var(--fs-md); line-height: var(--lh-base); color:var(--text-main); margin-top:4px; }
/* 分区标题（可折叠箭头） */
.pro-section-title { display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; font-size: var(--fs-lg); line-height: var(--lh-tight); font-weight: var(--fw-bold); color:var(--gold-100); cursor:pointer; letter-spacing: var(--ls-base); }
.pro-section-title__arrow { font-size: var(--fs-xs); font-weight: var(--fw-regular); color:var(--text-sub); }
/* 十二长生（日主临四柱）：cs-line / cs-cell。原「补充信息」框、独立「空亡」框已按需求移除——空亡并入干支表格「空亡」行，.pro-info-* / .gz-tag 死样式随之删除 */
.cs-line { display:flex; gap:8px; }
.cs-cell { flex:1; display:flex; flex-direction:column; align-items:center; gap:2px; padding:6px 2px; border-radius:8px; background: var(--paper); border:1px solid var(--paper-line); }
.cs-cell__name { font-size: var(--fs-xs); line-height: var(--lh-tight); color: var(--paper-sub); }
.cs-cell__val { font-size: var(--fs-base); line-height: var(--lh-tight); font-weight: var(--fw-bold); color: var(--paper-gold); }
/* 大运 / 流年 / 流月 格子带（浅底、可点选；格子一律给手型光标提示可点） */
.band-scroll { display:flex; gap:6px; overflow-x:auto; padding-bottom:4px; }
.band-cell { flex:none; width:64px; display:flex; flex-direction:column; align-items:center; gap:2px; padding:6px 2px; border-radius:8px; background: var(--paper); border:1px solid var(--paper-line); cursor:pointer; }
.band-cell--active { background: var(--paper-alt); border-color: var(--paper-edge); }
.band-cell__age { font-size: var(--fs-xs); line-height: var(--lh-tight); color: var(--paper-sub); }
.band-cell__year { font-size: var(--fs-2xs); line-height: var(--lh-tight); color: var(--paper-faint); white-space:nowrap; }
.band-cell__gz { display:flex; gap:2px; font-size: var(--fs-xl); line-height: var(--lh-tight); font-weight: var(--fw-bold); }
.band-cell__ss { padding:0 5px; border-radius:7px; background: var(--paper-chip); font-size: var(--fs-2xs); line-height: var(--lh-snug); color: var(--paper-gold); }
/* 流月详情：整块纸色浅底，内部行文字一律转深色 */
.liuyue-detail { display:flex; flex-direction:column; gap:4px; margin-top:8px; padding:8px 10px; border-radius:8px; background: var(--paper); }
.liuyue-detail .pro-line__row { color: var(--paper-main); }
/* 五行能量条（卡片深底 + 纸色轨道） */
.wx-bar { display:flex; align-items:center; gap:8px; margin:6px 0; }
.wx-bar__name { flex:none; width:18px; font-size: var(--fs-base); line-height: var(--lh-none); font-weight: var(--fw-bold); }
.wx-bar__track { flex:1; height:8px; border-radius:4px; background: var(--paper-track); overflow:hidden; }
/* B5：五行能量条渲染时从 0 生长到目标宽度（内联 style 宽度为终值，keyframes 只定起点） */
@keyframes wxGrow { from { width: 0; } }
.wx-bar__fill { height:100%; border-radius:4px; animation: wxGrow .55s ease both; }
.wx-bar__num { flex:none; width:76px; font-size: var(--fs-xs); line-height: var(--lh-none); color:var(--text-sub); text-align:right; }
/* 神煞框（四柱/大运/流年，严格照图）：竖排列表，每行「干支标签在最前 + 同一排平铺该项神煞」，
   不再是「上排格子 + 下方面板」。干支标签沿用格子带的纸色圆角块与选中态，
   视觉与上方大运/流年格子带一致（两处共享选中态，高亮必须能对上）；
   神煞在卡片深底上用浅字，同排平铺、放不下自动换行，故整行顶对齐 */
.ss-list { display:flex; flex-direction:column; gap:6px; }
.ss-item { display:flex; align-items:flex-start; gap:8px; cursor:pointer; }
.ss-item__gz { flex:none; min-width:48px; display:flex; justify-content:center; gap:2px; padding:5px 6px; border-radius:8px; background: var(--paper); border:1px solid var(--paper-line); font-size: var(--fs-lg); line-height: var(--lh-tight); font-weight: var(--fw-bold); }
.ss-item--active .ss-item__gz { background: var(--paper-alt); border-color: var(--paper-edge); }
/* 上内边距 5px 对齐干支标签的内边距，使神煞首行文字与干支齐平 */
.ss-item__ss { flex:1; min-width:0; display:flex; flex-wrap:wrap; gap:2px 8px; padding-top:5px; font-size: var(--fs-md); line-height: var(--lh-snug); color:var(--text-main); }
.ss-item__tag { white-space:nowrap; }

/* ============ 六爻起盘 ============
   布局按用户提供的截图复刻：配置行（左标题 + 右值 + 右箭头）、
   带上下细线的居中标题、横排三枚铜钱、六爻列表（六爻在上、一爻在下）、底部双层描边主操作条。
   配色一律取 theme.css 变量，沿用全站墨绿国潮主题，不引入截图的米白棕金。 */
/* —— 起卦配置行 —— */
.ly-cfg { display:flex; flex-direction:column; }
.ly-cfg__row {
    display:flex; align-items:center; gap:10px;
    min-height:42px; padding:4px 0;
    border-bottom:1px solid var(--ink-line);
}
.ly-cfg__row--last { border-bottom:none; }
.ly-cfg__label { flex:none; display:flex; align-items:center; font-size:var(--fs-base); line-height:var(--lh-none); color:var(--gold-200); letter-spacing:var(--ls-base); white-space:nowrap; }
.ly-cfg__value {
    flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
    text-align:right; font-size:var(--fs-base); line-height:var(--lh-snug); color:var(--text-main);
}
/* 姓名输入框（选填）：与下拉同一视觉口径——透明底、无边框、右对齐；
   行尾不放 chevron，免得让用户误以为这一行也是点开选择 */
.ly-cfg__input {
    flex:1; min-width:0; padding:0; border:none; background:transparent;
    text-align:right; font-size:var(--fs-base); line-height:var(--lh-snug);
    color:var(--text-main); letter-spacing:var(--ls-base);
}
.ly-cfg__input::placeholder { color:var(--text-faint); }
.ly-cfg__input:focus { outline:none; }
.ly-cfg__arrow { flex:none; width:14px; display:grid; place-items:center; color:var(--gold-500); pointer-events:none; }
.ly-cfg__arrow svg { width:14px; height:14px; display:block; }
/* 卦式单选（截图口径）：未选为空心金圈灰字，选中为金色实底白勾亮字 */
.ly-modes { flex:1; min-width:0; display:flex; justify-content:flex-end; gap:16px; }
.ly-mode { display:inline-flex; align-items:center; gap:6px; font-size:var(--fs-base); line-height:var(--lh-none); color:var(--text-faint); cursor:pointer; }
.ly-mode__dot { position:relative; flex:none; width:16px; height:16px; border-radius:50%; border:1px solid var(--gold-500); background:transparent; }
.ly-mode.on { color:var(--gold-100); font-weight:var(--fw-medium); }
.ly-mode.on .ly-mode__dot { background:linear-gradient(180deg, var(--gold-200), var(--gold-400)); border-color:var(--gold-300); }
.ly-mode.on .ly-mode__dot::after {
    content:""; position:absolute; left:4px; top:4px; width:6px; height:3px;
    border-left:1.6px solid #ffffff; border-bottom:1.6px solid #ffffff;
    transform:rotate(-45deg);
}
/* —— 起卦台：标题细线 / 铜钱 / 六爻列表 —— */
.ly-hd { text-align:center; padding:4px 0 2px; }
.ly-hd::before, .ly-hd::after {
    content:""; display:block; height:1px;
    background:linear-gradient(90deg, transparent, rgba(212,175,55,0.55), transparent);
}
.ly-hd::before { margin-bottom:9px; }
.ly-hd::after { margin-top:9px; }
.ly-hd span { font-size:var(--fs-lg); line-height:var(--lh-tight); color:var(--gold-100); font-weight:var(--fw-semi); letter-spacing:var(--ls-wide); }
.ly-coins { display:flex; justify-content:center; gap:18px; padding:10px 0 4px; }
/* 仿古铜钱（圆形方孔、正反两面）：容器做 3D 翻转载体，两面各自完整绘制、
   背对背贴合（backface-visibility:hidden），rotateY(180deg) 换面。
   字面：乾隆通宝四字环绕方孔（上乾下隆右通左宝，传统对读）；
   背面：光背仿满文双弧。 */
.ly-coin {
    position:relative; flex:none; width:54px; height:54px;
    transform-style:preserve-3d; -webkit-transform-style:preserve-3d;
}
.ly-coin__f {
    position:absolute; inset:0; border-radius:50%;
    border:1px solid var(--gold-700, #6f4d10);
    /* 铜色层次：左上高光 → 面铜色 → 边缘氧化暗铜，模拟磨损不均的铸币 */
    background:
        radial-gradient(circle at 33% 26%, rgba(255,248,220,.55) 0%, rgba(255,248,220,0) 40%),
        radial-gradient(circle at 32% 30%, #f4dd97 0%, #d8ab43 46%, #ab7f28 74%, #7d5716 100%);
    box-shadow:0 3px 9px rgba(0,0,0,0.45), inset 0 1px 2px rgba(255,255,255,0.5), inset 0 -2px 5px rgba(60,42,8,0.6);
    backface-visibility:hidden; -webkit-backface-visibility:hidden;
}
/* 外郭：币缘内一圈凸起环边（亮上沿 + 暗下沿，铸币外圈的立体质感） */
.ly-coin__f::before {
    content:""; position:absolute; inset:3px; border-radius:50%;
    border:1px solid rgba(101,69,12,.5);
    box-shadow:inset 0 1px 0 rgba(255,248,220,.6), inset 0 -1px 1px rgba(74,49,7,.4);
}
/* 中央方孔（内郭）：孔沿凸起一圈亮边，内凹深黑 */
.ly-coin__f::after {
    content:""; position:absolute; left:50%; top:50%; width:14px; height:14px; margin:-8px 0 0 -8px;
    background:var(--ink-900); border:1px solid #7b5613; border-radius:2px;
    box-shadow:0 0 0 1px rgba(248,230,160,.55), inset 0 1px 3px rgba(0,0,0,0.9);
}
.ly-coin__f--bei { transform:rotateY(180deg); }
.ly-coin--bei { transform:rotateY(180deg); }
/* 字面四字：环绕方孔的上/右/下/左。
   清钱「乾隆通宝」为楷体对读（上乾下隆、右通左宝），故币文用系统楷体而非宋体，
   不加粗（合成粗体会糊成一团），靠上亮下暗双投影做「铸字凸起」的浮雕感，
   与币面同为铜色而不是印刷黑字。系统本地字体不发起网络请求，符合 CSP。 */
.ly-coin__ch {
    position:absolute; font-style:normal; font-size:11px; line-height:1;
    font-family:"KaiTi","STKaiti","Kaiti SC","STSong","SimSun","Songti SC",var(--font-serif);
    color:#6c480f; font-weight:400; letter-spacing:0;
    text-shadow:0 -1px 0 rgba(255,247,218,.5), 0 1px 0 rgba(72,46,6,.5);
}
.ly-coin__ch--t { left:50%; top:5px; transform:translateX(-50%); }
.ly-coin__ch--b { left:50%; bottom:5px; transform:translateX(-50%); }
.ly-coin__ch--r { right:5px; top:50%; transform:translateY(-50%); }
.ly-coin__ch--l { left:5px; top:50%; transform:translateY(-50%); }
/* 背面仿满文：方孔左右两道短竖弧 */
.ly-coin__ms {
    position:absolute; top:50%; width:3px; height:16px; margin-top:-8px;
    border-radius:2px; background:linear-gradient(180deg, #7a5a1c, #5c3d0f);
    box-shadow:inset 0 1px 0 rgba(255,246,214,0.4);
}
.ly-coin__ms--l { left:11px; transform:rotate(-8deg); }
.ly-coin__ms--r { right:11px; transform:rotate(8deg); }
/* 摇卦翻转：抛起 + 竖直翻面。zi 落字面（两整圈回 0°）、bei 落背面（两圈半停 180°），
   both 定格结束帧；动画结束后由静态类接管，无缝衔接。
   时长 .72s 与 page-logic.js lyShake 的 760ms 落定时长配套，改动需同步。 */
@keyframes ly-spin-zi {
    0%   { transform:translateY(0) rotateY(0deg); }
    35%  { transform:translateY(-20px) rotateY(360deg); }
    70%  { transform:translateY(-5px) rotateY(540deg); }
    100% { transform:translateY(0) rotateY(720deg); }
}
@keyframes ly-spin-bei {
    0%   { transform:translateY(0) rotateY(0deg); }
    35%  { transform:translateY(-20px) rotateY(450deg); }
    70%  { transform:translateY(-5px) rotateY(630deg); }
    100% { transform:translateY(0) rotateY(900deg); }
}
.ly-coin--spin-zi  { animation:ly-spin-zi .72s ease-in-out both; }
.ly-coin--spin-bei { animation:ly-spin-bei .72s ease-in-out both; }
.ly-coin--spin-zi:nth-child(2), .ly-coin--spin-bei:nth-child(2) { animation-delay:.05s; }
.ly-coin--spin-zi:nth-child(3), .ly-coin--spin-bei:nth-child(3) { animation-delay:.1s; }
.ly-yaos { display:flex; flex-direction:column; }
/* 摇动起卦未开始时的幽灵六爻区：整块隐身占位、高度与可见时一致，
   起卦台自此为固定框，摇卦过程爻行逐行填入、框体不跳动（用户截图口径） */
.ly-yaos--ghost { visibility:hidden; }
.ly-yao {
    display:grid; grid-template-columns:38px 44px 74px minmax(0,1fr);
    gap:8px; align-items:center; padding:8px 2px;
    border-bottom:1px solid var(--ink-line);
}
.ly-yao:last-child { border-bottom:none; }
.ly-yao__pos { font-size:var(--fs-base); line-height:var(--lh-none); color:var(--gold-200); font-weight:var(--fw-medium); letter-spacing:var(--ls-base); }
/* 爻象名禁换行：44px 列宽放不下 15px×3 的「待指定」，一换行空爻行就比实爻行高 15px，
   每摇一爻起卦台就缩 15px——这正是起卦框跟随跳动、六爻下方留白不协调的根因 */
.ly-yao__type { font-size:var(--fs-md); line-height:var(--lh-none); color:var(--text-main); white-space:nowrap; }
/* 爻块：阳爻一整块、阴爻断为两块（与截图一致） */
.ly-yao__gua, .lyg-c-gua { display:flex; align-items:center; gap:5px; }
.ly-bar {
    flex:1; min-width:0; height:9px; border-radius:2px;
    background:var(--text-main);
    box-shadow:inset 0 1px 0 rgba(255,255,255,0.28), 0 1px 2px rgba(0,0,0,0.35);
}
.ly-bar--void { background:transparent; border:1px dashed var(--gold-500); box-shadow:none; }
.ly-dong { flex:none; width:12px; font-size:var(--fs-2xs); line-height:var(--lh-none); color:var(--gold-200); font-weight:var(--fw-bold); }
/* 动爻（老阴/老阳）用亮金块突出，与普通爻区分 */
.ly-yao--dong .ly-bar, .lyg-row--dong .ly-bar { background:var(--gold-200); }
.ly-yao__note { font-size:var(--fs-sm); line-height:var(--lh-none); color:var(--text-sub); text-align:right; }
.ly-yao--void .ly-yao__type, .ly-yao--void .ly-yao__note { color:var(--text-faint); }
.ly-yao--tap { cursor:pointer; }
.ly-yao--tap:active { background:rgba(212,175,55,0.07); }
/* 手动指定未选行（截图口径）：爻位名 + 浅字「请选择」+ 金色右箭头，三列布局 */
.ly-yao--pick { grid-template-columns:44px minmax(0,1fr) 20px; }
.ly-yao__picktext { font-size:var(--fs-base); line-height:var(--lh-none); color:var(--text-faint); letter-spacing:var(--ls-base); }
.ly-yao__chev { display:grid; place-items:center; color:var(--gold-500); }
.ly-yao__chev svg { width:15px; height:15px; display:block; }
/* 配置项左侧铜钱小图标（截图口径：标签前带太极/铜钱小图标） */
.ly-cfg__ico { flex:none; width:15px; height:15px; margin-right:5px; color:var(--gold-300); }
/* 事项未填时弱化（截图「请选择」为浅字） */
.ly-cfg__value--empty { color:var(--text-faint); }
/* 铜钱区可点（摇动起卦时点击铜钱即摇卦，见截图「点击铜钱…开始摇卦」） */
.ly-coins[data-action] { cursor:pointer; }
.ly-coins[data-action]:active .ly-coin { filter:brightness(1.12); }
/* —— 手动指定选卦弹窗（图五）：遮罩 + 居中弹窗，与问卦弹窗同一语言 —— */
.lyp-mask {
    position:fixed; inset:0; z-index:200;
    background:var(--bg-mask);
    display:flex; align-items:center; justify-content:center; padding:24px;
    opacity:0; transition:opacity .22s ease;
}
.lyp-mask.show { opacity:1; }
.lyp-modal {
    position:relative; width:100%; max-width:320px; padding:18px 16px 16px;
    background:linear-gradient(180deg, #0b0e17 0%, #05060d 100%);
    border:1px solid var(--gold-400); border-radius:var(--radius);
    box-shadow:0 10px 34px rgba(0,0,0,0.55), inset 0 1px 0 rgba(248,237,190,0.18);
    transform:scale(.94); transition:transform .22s ease;
}
.lyp-mask.show .lyp-modal { transform:scale(1); }
.lyp-modal__x {
    position:absolute; right:8px; top:8px; width:28px; height:28px;
    display:grid; place-items:center; cursor:pointer; color:var(--gold-300);
}
.lyp-modal__x svg { width:16px; height:16px; display:block; }
.lyp-modal__title {
    text-align:center; margin-bottom:6px;
    font-size:var(--fs-lg); line-height:var(--lh-tight); color:var(--gold-100);
    font-weight:var(--fw-bold); letter-spacing:var(--ls-title);
}
.lyp-opt {
    display:flex; align-items:center; gap:12px;
    padding:12px 10px; margin-top:8px;
    border:1px solid var(--ink-line); border-radius:var(--radius-sm);
    background:rgba(212,175,55,0.05); cursor:pointer;
    transition:border-color .15s ease, background .15s ease;
}
.lyp-opt:active { background:rgba(212,175,55,0.12); }
/* 当前已选中的爻象：金色描边高亮 */
.lyp-opt.on { border-color:var(--gold-300); background:rgba(212,175,55,0.14); }
.lyp-opt__type { flex:none; width:34px; font-size:var(--fs-md); line-height:var(--lh-none); color:var(--gold-200); font-weight:var(--fw-medium); letter-spacing:var(--ls-base); }
.lyp-opt__gua { flex:1; min-width:0; display:flex; align-items:center; gap:6px; }
.lyp-opt__gua .ly-bar { max-width:64px; }
.lyp-opt__note { flex:none; font-size:var(--fs-sm); line-height:var(--lh-none); color:var(--text-sub); }
/* 底部主操作条：深底 + 外粗内细双层描边 + 白色加粗居中（按截图） */
.ly-btn {
    display:block; width:100%; height:46px; margin-top:12px;
    background:linear-gradient(180deg, var(--ink-600), var(--ink-900));
    border:2px solid var(--gold-400); border-radius:6px;
    box-shadow:inset 0 0 0 1px rgba(248,237,190,0.4), 0 3px 10px rgba(0,0,0,0.4);
    color:#ffffff; font-size:var(--fs-xl); line-height:var(--lh-none);
    font-weight:var(--fw-bold); letter-spacing:var(--ls-title);
    cursor:pointer; transition:transform .12s ease, filter .12s ease;
}
.ly-btn:active { transform:scale(.985); filter:brightness(1.15); }
.ly-note { font-size:var(--fs-sm); line-height:var(--lh-base); color:var(--text-sub); }
.ly-note + .ly-note { margin-top:6px; }

/* ============ 六爻起盘页：固定一屏显示（Fit.fitSub 逐级降级） ============
   弹层不滚动（overlay--fixed），超高时先压间距/尺寸（ly-tight）再压更狠（ly-mini），
   最后才整体等比缩放。压缩幅度与主页面 fit-tight/fit-mini 同体系，观感一致。 */
.overlay--fixed { overflow-y: hidden; }
.ly-page.ly-tight .ly-cfg__row { min-height: 36px; }
.ly-page.ly-tight .ly-hd::before { margin-bottom: 6px; }
.ly-page.ly-tight .ly-hd::after { margin-top: 6px; }
.ly-page.ly-tight .ly-coins { padding: 6px 0 2px; gap: 14px; }
.ly-page.ly-tight .ly-coin { width: 46px; height: 46px; }
.ly-page.ly-tight .ly-yao { padding: 5px 2px; }
.ly-page.ly-tight .ly-btn { height: 42px; margin-top: 8px; }
.ly-page.ly-tight .lock-tip { margin-top: 8px; }
.ly-page.ly-mini .ly-cfg__row { min-height: 32px; }
.ly-page.ly-mini .ly-hd::before { margin-bottom: 4px; }
.ly-page.ly-mini .ly-hd::after { margin-top: 4px; }
.ly-page.ly-mini .ly-coins { padding: 4px 0 0; gap: 12px; }
.ly-page.ly-mini .ly-coin { width: 40px; height: 40px; }
.ly-page.ly-mini .ly-coin__ch { font-size: 8px; }
.ly-page.ly-mini .ly-yao { padding: 3px 2px; }
.ly-page.ly-mini .ly-btn { height: 38px; margin-top: 6px; font-size: var(--fs-lg); }
.ly-page.ly-mini .lock-tip { margin-top: 6px; font-size: var(--fs-sm); }

/* —— 卦象详解 —— */
.lyg-hero { text-align:center; padding:2px 0 12px; }
.lyg-hero__name { font-size:var(--fs-3xl); line-height:var(--lh-tight); font-weight:var(--fw-bold); color:var(--gold-100); letter-spacing:var(--ls-title); }
.lyg-hero__sub { display:flex; justify-content:center; gap:8px; margin-top:9px; }
.lyg-kv {
    display:flex; align-items:baseline; justify-content:space-between; gap:12px;
    padding:7px 0; border-bottom:1px solid var(--ink-line);
    font-size:var(--fs-md); line-height:var(--lh-snug);
}
.lyg-kv:last-of-type { border-bottom:none; }
.lyg-kv span { flex:none; color:var(--text-sub); }
.lyg-kv b { min-width:0; text-align:right; color:var(--text-main); font-weight:var(--fw-regular); }
/* —— 起卦信息折叠卡：默认收起，点标题条展开 ——
   四柱与神煞行已按用户要求从页面移除，原 .lyg-sz / .lyg-ss 样式一并删掉，不留死代码。 */
.ly-info__bar { display:flex; align-items:center; justify-content:space-between; gap:10px; cursor:pointer; }
.ly-info__t { display:flex; align-items:center; gap:6px; font-size:var(--fs-md); line-height:var(--lh-none); color:var(--gold-200); font-weight:var(--fw-semi); letter-spacing:var(--ls-wide); }
.ly-info__act { flex:none; display:inline-flex; align-items:center; gap:5px; font-size:var(--fs-xs); line-height:var(--lh-none); color:var(--text-sub); }
.ly-info__act b { font-weight:var(--fw-regular); }
/* chevron 用两段边框拼出向下箭头，卡片展开时翻转向上（open 类由 lyInfoToggle 同时加到卡片上）*/
.ly-info__chev { position:relative; flex:none; width:8px; height:8px; }
.ly-info__chev::after {
    content:""; position:absolute; left:1px; top:1px; width:5px; height:5px;
    border-right:1.4px solid var(--gold-400); border-bottom:1.4px solid var(--gold-400);
    transform:rotate(45deg); transition:transform .2s ease;
}
.ly-info.open .ly-info__chev::after { transform:rotate(225deg); }
.ly-info__body { display:none; margin-top:4px; }
.ly-info__body.open { display:block; }
/* 爻位表：六神 / 伏神 / 六亲 / 卦爻 / 世应。
   变卦无六神也无伏神（--noshen），本卦有伏神时多一列（--fu）；
   --noshen 写在 --fu 之后，保证同时命中时以变卦的三列为准 */
.lyg-tbl { margin-top:10px; border:1px solid rgba(212,175,55,0.28); border-radius:var(--radius-sm); overflow:hidden; }
.lyg-row {
    display:grid; grid-template-columns:36px minmax(0,1fr) 84px 26px;
    gap:5px; align-items:center; padding:7px 8px;
    border-bottom:1px solid var(--ink-line);
}
.lyg-row:last-child { border-bottom:none; }
.lyg-tbl--fu .lyg-row { grid-template-columns:36px minmax(0,1fr) 84px minmax(0,1fr) 26px; }
.lyg-tbl--noshen .lyg-row { grid-template-columns:minmax(0,1fr) 84px 26px; }
.lyg-row--hd { background:rgba(212,175,55,0.10); padding:6px 8px; font-size:var(--fs-xs); line-height:var(--lh-none); color:var(--gold-200); letter-spacing:var(--ls-base); }
.lyg-row--dong { background:rgba(212,175,55,0.07); }
.lyg-c-shen { font-size:var(--fs-sm); line-height:var(--lh-snug); color:var(--celadon); white-space:nowrap; }
.lyg-c-fu { font-size:var(--fs-sm); line-height:var(--lh-snug); color:var(--text-sub); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.lyg-c-qin { font-size:var(--fs-md); line-height:var(--lh-snug); color:var(--text-main); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.lyg-c-gua .ly-bar { height:8px; }
.lyg-c-sy { font-size:var(--fs-md); line-height:var(--lh-none); color:var(--gold-200); font-weight:var(--fw-bold); text-align:center; }
.lyg-row--hd .lyg-c-gua { justify-content:center; }
.lyg-txt { margin-top:12px; padding:12px 14px; border:1px solid rgba(158,166,184,0.16); border-radius:10px; background:var(--bg-item); }
.lyg-txt__h { display:flex; align-items:center; gap:6px; font-family:var(--font-serif); font-size:var(--fs-md); line-height:var(--lh-none); color:var(--gold-200); font-weight:var(--fw-semi); letter-spacing:var(--ls-wide); margin-bottom:8px; }
.lyg-txt__h::after { content:""; flex:1; height:1px; background:linear-gradient(90deg, rgba(212,175,55,0.4), transparent); }
.lyg-txt__b { font-size:var(--fs-base); line-height:1.95; letter-spacing:0.3px; color:var(--text-main); }
.lyg-txt__b .rp-p { margin-bottom:9px; }
.lyg-txt__b .rp-p:last-child { margin-bottom:0; }
/* 占事解读：页面只展示用户问的那一类，因此常态就是高亮态（--on 由渲染层恒加） */
.lyg-topic { margin-top:10px; padding:9px 10px; border:1px solid var(--ink-line); border-radius:var(--radius-sm); background:rgba(212,175,55,0.04); }
.lyg-topic--on { border-color:var(--gold-400); background:rgba(212,175,55,0.12); box-shadow:inset 0 1px 0 rgba(248,237,190,0.18); }
/* 头部两枚标签：黄底「所问之事」+ 深绿底事项名，与截图一致 */
.lyg-topic__h { display:flex; align-items:center; gap:8px; margin-bottom:7px; }
.lyg-topic__h em { flex:none; font-style:normal; font-size:var(--fs-2xs); line-height:var(--lh-snug); color:var(--text-on-gold); background:linear-gradient(180deg, var(--gold-200), var(--gold-400)); border-radius:7px; padding:1px 6px; letter-spacing:var(--ls-base); }
.lyg-topic__h b { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:var(--fs-xs); line-height:var(--lh-snug); font-weight:var(--fw-regular); color:var(--gold-100); background:rgba(11,14,22,0.55); border:1px solid var(--gold-500); border-radius:7px; padding:1px 8px; letter-spacing:var(--ls-base); }
/* 手打自由文本时无法归入六类，六类全列，靠小标题区分 */
.lyg-topic__t { font-size:var(--fs-md); line-height:var(--lh-none); color:var(--gold-200); font-weight:var(--fw-semi); letter-spacing:var(--ls-wide); margin:9px 0 5px; }
.lyg-topic__h + .lyg-topic__t { margin-top:0; }
.lyg-topic__b { font-size:var(--fs-base); line-height:var(--lh-loose); color:var(--text-main); }

/* ============================================================
   六爻「请填写问卦之事」弹窗
   结构照用户截图复刻（标题 + 右上关闭 + 输入框 + 快速填写六标签 + 保存），
   配色沿用全站墨绿描金，不照搬截图的米白棕金。
   遮罩层级与支付弹层一致(200)，低于报告等待层(210)。
   ============================================================ */
.lyq-mask {
    position:fixed; inset:0; z-index:200;
    background:var(--bg-mask);
    display:flex; align-items:center; justify-content:center; padding:24px;
    opacity:0; transition:opacity .22s ease;
}
.lyq-mask.show { opacity:1; }
.lyq-modal {
    position:relative; width:100%; max-width:320px; padding:18px 16px 16px;
    background:linear-gradient(180deg, #0b0e17 0%, #05060d 100%);
    border:1px solid var(--gold-400); border-radius:var(--radius);
    box-shadow:0 10px 34px rgba(0,0,0,0.55), inset 0 1px 0 rgba(248,237,190,0.18);
    transform:scale(.94); transition:transform .22s ease;
}
.lyq-mask.show .lyq-modal { transform:scale(1); }
.lyq-modal__x {
    position:absolute; right:8px; top:6px; width:28px; height:28px;
    display:grid; place-items:center; cursor:pointer;
    font-size:var(--fs-md); line-height:var(--lh-none); color:var(--gold-300);
}
.lyq-modal__title {
    text-align:center; margin-bottom:14px;
    font-size:var(--fs-lg); line-height:var(--lh-tight); color:var(--gold-100);
    font-weight:var(--fw-bold); letter-spacing:var(--ls-title);
}
.lyq-modal__input {
    display:block; width:100%; height:42px; padding:0 11px;
    background:rgba(11,14,22,0.55); border:1px solid var(--gold-500); border-radius:var(--radius-sm);
    font-size:var(--fs-base); line-height:var(--lh-snug); color:var(--text-main); letter-spacing:var(--ls-base);
}
.lyq-modal__input::placeholder { color:var(--text-faint); }
.lyq-modal__input:focus { outline:none; border-color:var(--gold-300); }
.lyq-modal__quick { margin-top:14px; }
.lyq-modal__qt { margin-bottom:9px; font-size:var(--fs-xs); line-height:var(--lh-none); color:var(--gold-200); letter-spacing:var(--ls-base); }
/* 六标签 2行3列，与截图一致；选中态用金底深字，与卦式单选的选中语言呼应 */
.lyq-modal__tags { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.lyq-tag {
    height:34px; display:grid; place-items:center; cursor:pointer;
    background:rgba(212,175,55,0.07); border:1px solid var(--ink-line); border-radius:var(--radius-sm);
    font-size:var(--fs-base); line-height:var(--lh-none); color:var(--text-main); letter-spacing:var(--ls-base);
    transition:border-color .15s ease, background .15s ease, color .15s ease;
}
.lyq-tag.on {
    background:linear-gradient(180deg, var(--gold-200), var(--gold-400));
    border-color:var(--gold-300); color:var(--text-on-gold); font-weight:var(--fw-medium);
}
.lyq-modal__save {
    display:block; width:100%; height:42px; margin-top:16px;
    background:linear-gradient(180deg, var(--gold-200), var(--gold-400));
    border:1px solid var(--gold-300); border-radius:var(--radius-sm);
    font-size:var(--fs-md); line-height:var(--lh-none); color:var(--text-on-gold);
    font-weight:var(--fw-bold); letter-spacing:var(--ls-title); cursor:pointer;
    transition:transform .12s ease, filter .12s ease;
}
.lyq-modal__save:active { transform:scale(.985); filter:brightness(1.08); }

/* ============================================================
   正缘画像：历史排盘选盘列表 / 报告头像 / 配额用尽提示框
   配色沿用全站墨绿描金；弹框层级 220，高于报告等待层(210)，
   因为等待页失败后才会弹框，被等待层盖住就等于没提示。
   ============================================================ */
.zy-desc {
    margin-bottom:10px;
    font-size:var(--fs-sm); line-height:var(--lh-base); color:var(--text-sub); letter-spacing:var(--ls-tight);
}
.zy-list { display:flex; flex-direction:column; gap:8px; }
.zy-item {
    display:flex; align-items:center; gap:10px;
    padding:10px 12px; cursor:pointer;
    background:rgba(11,14,22,0.42);
    border:1px solid var(--ink-line); border-radius:var(--radius-sm);
    transition:border-color .15s ease, background .15s ease;
}
.zy-item.on {
    background:rgba(212,175,55,0.09);
    border-color:var(--gold-300);
}
.zy-item__body { flex:1; min-width:0; }
.zy-item__name {
    display:flex; align-items:center; gap:6px;
    font-size:var(--fs-base); line-height:var(--lh-snug); color:var(--gold-100); font-weight:var(--fw-semi);
    /* 姓名来自用户输入，超长时省略号收尾，不能挤掉右侧选中态 */
    overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.zy-item__meta {
    margin-top:3px;
    font-size:var(--fs-xs); line-height:var(--lh-snug); color:var(--text-sub); letter-spacing:var(--ls-tight);
    overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.zy-item__right { flex:none; display:flex; align-items:center; }
/* 未解读：圆形单选钮，选中态填金，与卦式单选同一套视觉语言 */
.zy-radio {
    width:18px; height:18px; border-radius:50%;
    border:1px solid var(--gold-500); background:rgba(11,14,22,0.5);
}
.zy-item.on .zy-radio {
    border-color:var(--gold-300);
    background:radial-gradient(circle, var(--gold-200) 0 46%, transparent 50%);
}
.zy-badge {
    padding:2px 8px; border-radius:10px;
    border:1px solid rgba(127,179,160,0.6); background:rgba(127,179,160,0.1);
    font-size:var(--fs-2xs); line-height:var(--lh-none); color:var(--celadon);
}
.ly-btn:disabled { opacity:.5; cursor:not-allowed; filter:none; transform:none; }

/* 报告里的正缘头像：接口回 250×250 JPEG 的 base64 data URI，等比居中展示 */
.report-portrait { display:flex; justify-content:center; margin:10px 0 4px; }
.report-portrait img {
    width:170px; height:170px; object-fit:cover;
    border:1px solid var(--gold-500); border-radius:var(--radius-sm);
    box-shadow:0 4px 16px rgba(0,0,0,0.4);
}

/* 阻断式提示框（配额用尽等必须让用户看清并确认的场景） */
.alert-mask {
    position:fixed; inset:0; z-index:220;
    background:rgba(6,9,15,0.7);
    display:flex; align-items:center; justify-content:center; padding:28px;
    opacity:0; transition:opacity .22s ease;
}
.alert-mask.show { opacity:1; }
.alert-box {
    width:100%; max-width:300px; padding:20px 18px 18px;
    background:linear-gradient(180deg, #0b0e17 0%, #05060d 100%);
    border:1px solid var(--gold-400); border-radius:var(--radius);
    box-shadow:0 10px 34px rgba(0,0,0,0.55), inset 0 1px 0 rgba(248,237,190,0.18);
    transform:scale(.94); transition:transform .22s ease;
}
.alert-mask.show .alert-box { transform:scale(1); }
.alert-box__title {
    text-align:center; margin-bottom:10px;
    font-size:var(--fs-lg); line-height:var(--lh-tight); color:var(--gold-100);
    font-weight:var(--fw-bold); letter-spacing:var(--ls-title);
}
.alert-box__text {
    margin-bottom:16px;
    font-size:var(--fs-base); line-height:var(--lh-loose); color:var(--text-main);
    letter-spacing:var(--ls-base); text-align:center; white-space:pre-line;
}
/* A6：双按钮确认框（page-logic.confirmBox）的按钮行。纵向排列而不是并排：撤回后果文案
   往往三四行，弹框宽度只有 300px，两个中文按钮并排会被挤成两行而看起来像错位。 */
.alert-box__ops { display:flex; flex-direction:column; gap:10px; }

/* ============================================================
   A6：隐私授权管理（views.consents + page-logic.fillConsents）
   每项授权一张卡：标题 + 状态标签、用途、撤回后果、留痕元信息、动作按钮。
   沿用 gc-card 外壳，只补内部排版，不另造一套卡片风格。
   ============================================================ */
.cs-item__hd {
    display:flex; align-items:center; justify-content:space-between; gap:8px;
    margin-bottom:8px;
}
.cs-item__t {
    font-size:var(--fs-lg); line-height:var(--lh-tight); color:var(--gold-100);
    font-weight:var(--fw-semi); letter-spacing:var(--ls-base);
}
.cs-item__p, .cs-item__e {
    font-size:var(--fs-md); line-height:var(--lh-loose); color:var(--text-main);
    letter-spacing:var(--ls-base);
}
/* 撤回后果用次要色：它是“告知”而不是标题，不能比授权名称更抢眼 */
.cs-item__e { margin-top:6px; color:var(--text-sub); }
.cs-item__m { margin-top:8px; font-size:var(--fs-sm); color:var(--text-sub); }
.cs-item__btn { margin-top:12px; width:100%; }

/* ============================================================
   A7：晋升进度（业绩为主、人数为辅）+ 规则变更公示条
   两项门槛各一行：名称、当前/门槛数值、进度条。
   达标用金色、未达标用青瓷色而不用警示红：未达标是进度而不是错误，
   把它涂成红色会让用户误以为自己的推广资格出了问题。
   ============================================================ */
.pm-row { margin-top:10px; }
.pm-row__hd {
    display:flex; align-items:baseline; justify-content:space-between; gap:8px;
    font-size:var(--fs-sm); line-height:var(--lh-snug);
}
.pm-row__k { color:var(--text-sub); letter-spacing:var(--ls-base); }
.pm-row__v { color:var(--text-main); font-weight:var(--fw-medium); }
.pm-row__v--ok { color:var(--celadon); }
.pm-bar {
    height:6px; margin-top:5px; border-radius:3px; overflow:hidden;
    background:rgba(212,175,55,0.16);
}
.pm-bar__i {
    display:block; height:100%; border-radius:3px;
    background:linear-gradient(90deg, var(--gold-300), var(--gold-100));
    transition:width .3s ease;
}
.pm-bar__i--wait { background:rgba(212,175,55,0.55); }
.pm-note { margin-top:10px; font-size:var(--fs-xs); color:var(--text-sub); line-height:var(--lh-loose); }
/* 规则变更公示条：描金浅底，比普通卡片更醒目但不报错色（公示不是警告） */
.rn-box {
    margin:0 0 12px; padding:12px 14px; border-radius:12px;
    border:1px solid rgba(248,237,190,0.28); background:rgba(248,237,190,0.06);
}
.rn-box__t {
    font-size:var(--fs-md); color:var(--gold-100); font-weight:var(--fw-semi);
    letter-spacing:var(--ls-base); margin-bottom:6px;
}
.rn-box__d { font-size:var(--fs-sm); color:var(--text-sub); line-height:var(--lh-loose); }
.rn-box__btn { margin-top:10px; width:100%; }

/* ============================================================
   紫微斗数全量盘（reports.chapters[0].raw 专用渲染器，views.js 的 zwRawHtml）
   产品口径「展示全部返回数据」：逐键成行、空值也占行，不做任何裁剪；
   大限轮次/长列表用原生 details 折叠控制首屏体量。配色沿用墨绿描金。
   选盘列表复用 .zy-* 既有类，不另定义。
   ============================================================ */
.zw-kv__row {
    display:flex; gap:8px; padding:4px 2px;
    border-bottom:1px dashed rgba(127,179,160,0.14);
    font-size:var(--fs-xs); line-height:var(--lh-snug);
}
.zw-kv__k { flex:none; min-width:7.5em; color:var(--text-sub); letter-spacing:var(--ls-tight); }
.zw-kv__v { flex:1; min-width:0; color:var(--text-main); word-break:break-all; }
/* 空槽归并行：接口固定槽位里没坐星/没四化的键名清单，弱化显示不抢视线 */
.zw-kv__row--empty .zw-kv__k,
.zw-kv__row--empty .zw-kv__v { color:var(--text-sub); opacity:.72; }

/* ============================================================
   紫微棋盘命盘·浅色纸面版（版式逐块对照产品截图）
   白纸+细灰边+黑字保证小字号可读；盘体最小宽 680，
   窄屏宁可横向滚动也不把星名挤到读不了。
   ============================================================ */
/* 排版整改：盘体层级重做——外卡（rp-ch）→ 深底盘纸 → 浅一档宫格 → 命宫/身宫高亮 →
   深色中宫烫金（菱形中宫视觉）。宫格之间留出真间隙并加圆角，12 宫不再糊成一整块 */
.zw-tabs { display:flex; gap:8px; margin-bottom:14px; }
.zw-tabs__b {
    flex:1; padding:9px 0;
    font-size:var(--fs-sm); color:var(--text-sub); letter-spacing:var(--ls-tight);
    background:rgba(11,14,22,.42); border:1px solid var(--ink-line); border-radius:var(--radius-sm);
}
.zw-tabs__b.on { color:var(--text-on-gold); background:linear-gradient(180deg, var(--gold-200), var(--gold-400)); border-color:var(--gold-300); font-weight:var(--fw-semi); }
/* 盘面：深色沉底盘纸（比宫格暗一档，宫格自然浮起）；四边留出方位标签带（标签贴内外缘绝对定位）；
   细金边弱化为发丝线，与外层 rp-ch 形成卡中卡但不争抢 */
.zw-paper { position:relative; padding:20px 14px; background:rgba(7,10,17,0.72); border:1px solid rgba(212,175,55,0.22); border-radius:10px; overflow-x:auto; }
.zw-dir { position:absolute; font-size:var(--fs-3xs); line-height:1.2; color:var(--text-faint); letter-spacing:1px; }
.zw-dir--top { top:5px; transform:translateX(-50%); }
.zw-dir--bottom { bottom:5px; transform:translateX(-50%); }
.zw-dir--left { left:5px; transform:translateY(-50%); writing-mode:vertical-rl; }
.zw-dir--right { right:5px; transform:translateY(-50%); writing-mode:vertical-rl; }
/* minmax(0,1fr) 去掉列宽的内容下限：窄屏四列才能真缩进视口，
   否则宫格 min-content 会把盘体撑出横滚 */
.zw-board { display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:5px; min-width:660px; }
.zw-board__slot { display:flex; min-height:150px; }
.zw-board__center { display:flex; }
.zw-slot {
    flex:1; min-width:0; display:flex; flex-direction:column; gap:3px; padding:8px 9px;
    background:linear-gradient(160deg, rgba(38,46,72,0.22) 0%, rgba(16,20,32,0.95) 100%);
    border:1px solid rgba(158,166,184,0.14); border-radius:5px; color:var(--text-main);
}
.zw-slot--ming { background:linear-gradient(160deg, rgba(34,42,66,0.85) 0%, rgba(20,24,38,0.98) 100%); border-color:var(--gold-400); }
.zw-slot--shen { background:linear-gradient(160deg, rgba(44,52,78,0.55) 0%, rgba(20,24,38,0.95) 100%); border-color:var(--cinnabar); }
.zw-slot__stars { display:flex; flex-wrap:wrap; gap:3px 7px; align-items:flex-start; }
.zw-st { display:inline-flex; flex-direction:column; align-items:center; line-height:1.3; }
.zw-st b { font-size:14px; font-weight:600; color:var(--text-main); }
.zw-st--main b { color:var(--cinnabar-text); }
.zw-st--luck b { color:var(--gold-200); }
.zw-st--sha b { color:var(--text-main); font-weight:700; }
.zw-st i { font-style:normal; font-size:var(--fs-3xs); color:var(--text-faint); }
/* 四化徽章：禄权科忌四色，未知字符走灰底（宁显示不吞） */
.zw-sihua { margin-top:2px; padding:1px 4px; border-radius:3px; font-style:normal; font-size:var(--fs-3xs); line-height:1.3; color:var(--text-on-gold); }
.zw-sihua--lu { background:var(--celadon); }
.zw-sihua--quan { background:var(--gold-500); }
.zw-sihua--ke { background:var(--gold-300); }
.zw-sihua--ji { background:var(--cinnabar); color:var(--text-main); }
.zw-sihua--x { background:var(--ink-500); color:var(--text-sub); }
.zw-slot__desc { font-size:var(--fs-3xs); line-height:1.5; color:var(--text-faint); }
/* 底部神煞/长生区：与星曜区之间用发丝横线断开；大限数字下架后只剩左右两块，
   用 space-between 贴两边，不再挤在左侧 */
.zw-slot__btm { margin-top:auto; padding-top:5px; border-top:1px solid rgba(158,166,184,0.10); display:flex; align-items:flex-end; justify-content:space-between; gap:6px; font-size:var(--fs-3xs); line-height:1.6; color:var(--text-sub); word-break:break-all; }
.zw-slot__shen { flex:none; }
.zw-slot__cs { flex:none; text-align:right; }
.zw-slot__extra { font-size:var(--fs-3xs); color:var(--text-sub); word-break:break-all; }
.zw-slot__foot { display:flex; justify-content:flex-end; align-items:baseline; gap:8px; margin-top:5px; }
.zw-slot__name { font-size:14px; font-weight:700; color:var(--cinnabar-text); }
.zw-slot__zhi { font-size:14px; font-weight:700; color:var(--text-main); }
/* 中宫：盘中之盘——比宫格再沉一档的深底 + 细金边，与外圈宫格明暗对调，中心聚焦 */
.zw-center {
    flex:1; min-width:0; display:flex; flex-direction:column; gap:6px; padding:12px 10px;
    overflow:auto; background:rgba(6,9,15,0.92); border:1px solid rgba(212,175,55,0.35); border-radius:6px; color:var(--text-main);
}
.zw-center__t { text-align:center; font-size:18px; font-weight:700; letter-spacing:3px; color:var(--gold-200); }
.zw-center__row { text-align:center; font-size:13px; color:var(--text-main); }
.zw-center__row--sub { color:var(--text-sub); }
.zw-pillars { display:flex; justify-content:center; gap:16px; margin:4px 0; }
.zw-pillars__c { display:flex; flex-direction:column; align-items:center; }
.zw-pillars__c b { font-size:16px; font-weight:600; line-height:1.3; }
.zw-pillars__c i { font-style:normal; font-size:var(--fs-3xs); color:var(--text-faint); margin-top:1px; }
/* 四柱干支五行着色：沿用深底五行高光色，保证墨绿底上可读 */
.wx-m { color:var(--wx-mu-glow); }
.wx-h { color:var(--wx-huo-glow); }
.wx-t { color:var(--wx-tu-glow); }
.wx-j { color:var(--wx-jin-glow); }
.wx-s { color:var(--wx-shui-glow); }
.zw-kv2 { display:grid; grid-template-columns:auto 1fr auto 1fr; gap:5px 10px; font-size:var(--fs-2xs); }
.zw-kv2__k { color:var(--text-faint); }
.zw-kv2__v { color:var(--text-main); word-break:break-all; }
/* 长值横跨整行（起运/交运/时差），避免双列里折行把中宫撑高 */
.zw-kv2__v--wide { grid-column:2 / -1; }
.zw-legend { display:flex; align-items:center; justify-content:center; gap:8px; margin-top:2px; font-size:var(--fs-2xs); color:var(--text-sub); }
.zw-band { display:flex; gap:8px; margin-top:14px; }
/* 标签列照截图：黑体标题+紫色解析胶囊，不再加底色框 */
.zw-band__t {
    flex:none; width:46px; display:flex; flex-direction:column;
    align-items:center; justify-content:center; gap:5px;
}
.zw-band__t b { font-size:var(--fs-sm); font-weight:700; color:var(--text-main); }
.zw-band__chip {
    padding:2px 9px; border-radius:10px;
    background:linear-gradient(180deg, var(--gold-200), var(--gold-400)); color:var(--text-on-gold); font-style:normal; font-size:var(--fs-3xs); line-height:1.4;
}
.zw-band__cells { flex:1; display:flex; gap:7px; overflow-x:auto; }
.zw-band__c {
    flex:none; min-width:60px; padding:6px 8px; text-align:center;
    font-size:var(--fs-2xs); color:var(--text-sub);
    background:rgba(22,27,42,0.55); border:1px solid rgba(158,166,184,0.14); border-radius:6px;
}
.zw-band__c b { display:block; font-size:13px; font-weight:600; color:var(--text-main); }
.zw-band__c i { display:block; font-style:normal; font-size:var(--fs-3xs); color:var(--text-faint); margin-top:1px; }
.zw-band__c.on { border-color:var(--gold-400); background:var(--paper-alt); }
/* 折叠兜底块（空槽清单/原始 JSON）仍走深色主题 */
.zw-fold {
    margin-top:14px; padding:10px 12px;
    background:rgba(11,14,22,0.32);
    border:1px solid var(--ink-line); border-radius:var(--radius-sm);
}
.zw-fold > summary {
    cursor:pointer; font-size:var(--fs-sm); color:var(--gold-100); font-weight:var(--fw-semi);
}
.zw-pre {
    max-height:320px; overflow:auto; margin-top:8px; padding:8px;
    background:rgba(6,9,15,0.6); border-radius:var(--radius-sm);
    font-size:var(--fs-2xs); line-height:1.5; color:var(--celadon);
    white-space:pre-wrap; word-break:break-all;
}
/* 窄屏自适应：取消盘体最小宽，整盘 4×4 + 中宫同页放下不横滚；
   字号整体收一档但保持白底高对比，仍可读 */
@media (max-width:719px) {
    .zw-paper { padding:10px 9px; overflow-x:visible; }
    .zw-board { min-width:0; gap:2px; }
    .zw-board__slot { min-height:0; }
    .zw-dir { font-size:9px; letter-spacing:0; }
    .zw-slot { padding:3px 4px; gap:1px; }
    .zw-slot__stars { gap:1px 4px; }
    .zw-st b { font-size:10.5px; }
    .zw-st i { font-size:8.5px; }
    .zw-sihua { padding:0 2px; font-size:9px; }
    .zw-slot__desc { font-size:8.5px; line-height:1.3; }
    .zw-slot__btm { gap:3px; font-size:8.5px; line-height:1.3; padding-top:2px; }
    .zw-slot__extra { font-size:8.5px; }
    .zw-slot__foot { gap:4px; margin-top:1px; }
    .zw-slot__name { font-size:10.5px; }
    .zw-slot__zhi { font-size:10.5px; }
    /* 中宫：标题/时间/四柱/kv 全部收紧；kv 保持双列（勿退回单列，16 行会撑爆中宫），
       长值走 .zw-kv2__v--wide 整行 */
    .zw-center { padding:5px 6px; gap:1px; }
    .zw-center__t { font-size:13px; letter-spacing:1px; }
    .zw-center__row { font-size:10px; line-height:1.3; }
    .zw-pillars { gap:8px; margin:1px 0; }
    .zw-pillars__c b { font-size:12px; }
    .zw-pillars__c i { font-size:8.5px; margin-top:0; }
    .zw-kv2 { grid-template-columns:auto 1fr auto 1fr; gap:1px 6px; font-size:9.5px; line-height:1.35; }
    .zw-legend { gap:4px; font-size:9.5px; margin-top:1px; }
    .zw-tabs { gap:5px; margin-bottom:8px; }
    .zw-tabs__b { padding:6px 0; font-size:11px; }
    .zw-band { gap:4px; margin-top:6px; }
    .zw-band__cells { gap:4px; }
    .zw-band__c { min-width:44px; padding:3px 4px; font-size:9.5px; }
    .zw-band__c b { font-size:10.5px; }
    .zw-band__c i { font-size:8.5px; }
    .zw-band__t { width:32px; gap:2px; }
    .zw-band__t b { font-size:10.5px; }
    .zw-band__chip { padding:1px 5px; font-size:8.5px; }
}

/* ============================================================
   双人合婚·对比排盘（v21 合婚，免费双人排盘页）
   左右双盘并列 + 重要参数对照表，视觉沿用墨绿/鎏金/五行色板。
   干支五行色用深底版 --wx-*-glow；表格描边用低饱和鎏金，避免抢戏。
   ============================================================ */
.hh-cmp { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.hh-side {
    background: var(--bg-card);
    border: 1px solid var(--gold-500);
    border-radius: var(--radius-sm);
    padding: 10px 8px 8px;
    overflow: hidden;
    box-shadow: inset 0 1px 0 rgba(248,237,190,0.12);
}
.hh-side__hd {
    display: flex; align-items: baseline; justify-content: space-between; gap: 6px;
    padding-bottom: 6px; margin-bottom: 6px;
    border-bottom: 1px solid rgba(212,175,55,0.3);
}
.hh-side__name {
    font-size: var(--fs-md); font-weight: var(--fw-semi); color: var(--gold-200);
    letter-spacing: var(--ls-base); line-height: var(--lh-tight);
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.hh-side__sex { font-size: var(--fs-2xs); color: var(--text-sub); flex: none; }
.hh-side__date { font-size: var(--fs-xs); line-height: var(--lh-snug); color: var(--text-sub); }
.hh-side__date b { color: var(--text-main); font-weight: var(--fw-regular); }
/* 四柱纵列：表头 / 天干(五行色) / 天干十神 / 地支 / 长生衰旺 */
.hh-pillars { display: grid; grid-template-columns: repeat(4,1fr); gap: 3px; margin-top: 8px; text-align: center; }
.hh-pillars__h { font-size: var(--fs-2xs); color: var(--gold-200); letter-spacing: var(--ls-wide); line-height: var(--lh-tight); padding-bottom: 3px; border-bottom: 1px solid rgba(212,175,55,0.22); }
.hh-pillars__gan { font-size: var(--fs-xl); line-height: var(--lh-tight); font-weight: var(--fw-bold); padding-top: 4px; }
.hh-pillars__god { font-size: var(--fs-2xs); line-height: var(--lh-tight); color: var(--text-sub); min-height: 12px; }
.hh-pillars__zhi { font-size: var(--fs-lg); line-height: var(--lh-tight); font-weight: var(--fw-semi); color: var(--text-main); }
.hh-pillars__cs { font-size: var(--fs-2xs); line-height: var(--lh-tight); color: var(--celadon); min-height: 12px; }
/* 重要参数对照表：参数 | 男方 | 女方（关系判断属付费解读，免费页不放解析列） */
.hh-tbl { width: 100%; border-collapse: collapse; }
.hh-tbl th, .hh-tbl td {
    padding: 7px 6px; text-align: center;
    border: 1px solid rgba(212,175,55,0.22);
    font-size: var(--fs-sm); line-height: var(--lh-snug);
    word-break: break-all;
}
.hh-tbl thead th {
    background: linear-gradient(180deg, rgba(212,175,55,0.2), rgba(212,175,55,0.06));
    color: var(--gold-200); font-weight: var(--fw-medium);
    letter-spacing: var(--ls-wide); font-size: var(--fs-xs);
}
.hh-tbl tbody th { color: var(--text-sub); font-weight: var(--fw-regular); background: rgba(248,237,190,0.03); }
.hh-tbl tbody td { color: var(--text-main); }

/* ============================================================
   MLT 三工具：神煞速查 / 择吉黄历 / 每日时运（mingli-tools.js）
   基类复用 .gc-card / .seg / .btn / .empty / .form-control（components.css）；
   语义色：吉=青瓷 --celadon，凶=朱砂 --cinnabar-text，中性=鎏金 --gold-*。
   五行色由 JS 行内 style 注入（wxTextColor/glow），此处不重复定义。
   ============================================================ */
/* ---- 共用 ---- */
.mlt-note { margin-top: 10px; font-size: var(--fs-xs); line-height: var(--lh-snug); color: var(--text-sub); }
.mlt-gate__desc { margin-top: 6px; font-size: var(--fs-sm); line-height: var(--lh-base); color: var(--text-sub); }
.mlt-seg { margin-bottom: 12px; }

/* ---- 神煞：表格模式（行=层级，列=层级|干支|神煞），取代原六列纵表 ---- */
.mlt-tb { width: 100%; border-collapse: collapse; table-layout: fixed; }
.mlt-tb th, .mlt-tb td { padding: 10px 8px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--ink-line); }
.mlt-tb thead th {
    padding: 9px 8px; font-size: var(--fs-sm); font-weight: var(--fw-semi); letter-spacing: var(--ls-wide);
    color: var(--gold-100); background: linear-gradient(180deg, rgba(212,175,55,0.18), rgba(212,175,55,0.05));
    border-bottom: 1px solid var(--gold-500);
}
.mlt-tb thead th:nth-child(1), .mlt-tb tbody th { width: 52px; }
.mlt-tb thead th:nth-child(2), .mlt-tb__gz { width: 64px; }
.mlt-tb tbody th { font-size: var(--fs-md); font-weight: var(--fw-semi); color: var(--gold-100); }
.mlt-tb tbody tr:last-child th, .mlt-tb tbody tr:last-child td { border-bottom: none; }
.mlt-tb__gz { white-space: nowrap; }
.mlt-tb__gz span { font-size: var(--fs-2xl); font-weight: var(--fw-bold); line-height: 1.1; font-family: var(--font-serif); }
.mlt-tb__gz span + span { margin-left: 3px; }
.mlt-tb__list { display: flex; flex-wrap: wrap; gap: 6px; align-content: flex-start; }
.mlt-tb__ss {
    font-size: var(--fs-sm); line-height: 1; color: var(--gold-200); cursor: pointer;
    padding: 5px 9px; border-radius: 6px; border: 1px solid rgba(212,175,55,0.3); background: rgba(212,175,55,0.07);
}
.mlt-tb__ss--bad { color: var(--cinnabar-text); border-color: rgba(181,72,60,0.55); background: rgba(181,72,60,0.1); }
.mlt-tb__none { font-size: var(--fs-sm); color: var(--text-faint); }

/* ---- 神煞：搜索 + 分类 chips ---- */
.mlt-search { margin-bottom: 12px; }

/* ---- 神煞：字典列表 ---- */
.mlt-sslist { display: flex; flex-direction: column; }
.mlt-ss { display: flex; align-items: center; gap: 10px; padding: 12px 2px; border-bottom: 1px solid var(--ink-line); cursor: pointer; }
.mlt-ss:last-child { border-bottom: none; }
.mlt-ss__nm { flex: none; min-width: 72px; font-size: var(--fs-lg); font-weight: var(--fw-bold); color: var(--gold-100); font-family: var(--font-serif); }
.mlt-ss__nm--bad { color: var(--cinnabar-text); }
.mlt-ss__mid { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 5px; }
.mlt-ss__where { font-size: var(--fs-sm); line-height: var(--lh-snug); color: var(--text-sub); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mlt-ss__where--more { color: var(--gold-200); }
/* 抽屉内后端出处注释行 */
.mlt-occ { display: flex; flex-direction: column; gap: 8px; }
.mlt-occ__row { display: flex; gap: 10px; align-items: baseline; font-size: var(--fs-sm); line-height: var(--lh-snug); }
.mlt-occ__l { flex: none; min-width: 84px; color: var(--gold-100); }
.mlt-occ__g { flex: none; color: var(--text-sub); }
.mlt-occ__p { flex: 1; min-width: 0; color: var(--text-sub); }

/* ---- 神煞：详情底部抽屉（body 级，position:fixed 不受 .overlay transform 影响） ---- */
.mlt-mask { position: fixed; inset: 0; z-index: 60; background: var(--bg-mask); opacity: 0; transition: opacity .24s ease; }
.mlt-mask.show { opacity: 1; }
.mlt-sheet {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 61; margin: 0 auto; max-width: 640px;
    max-height: 78vh; overflow-y: auto; padding: 10px 16px calc(18px + env(safe-area-inset-bottom, 0px));
    background: var(--bg-card);
    border: 1px solid var(--gold-400); border-bottom: none; border-radius: 16px 16px 0 0;
    box-shadow: 0 -6px 28px rgba(0,0,0,0.5), inset 0 1px 0 rgba(248,237,190,0.2);
    transform: translateY(100%); transition: transform .28s cubic-bezier(.22,.61,.36,1);
}
.mlt-sheet.show { transform: translateY(0); }
.mlt-sheet__grab { width: 38px; height: 4px; border-radius: 2px; background: var(--gold-500); margin: 2px auto 12px; }
.mlt-sheet__h { font-size: var(--fs-xl); font-weight: var(--fw-bold); color: var(--gold-100); letter-spacing: var(--ls-wide); margin-bottom: 10px; }
.mlt-sheet__sec { margin-bottom: 12px; }
.mlt-sheet__sec h4 { font-size: var(--fs-xs); color: var(--gold-200); letter-spacing: var(--ls-wide); margin-bottom: 5px; font-weight: var(--fw-semi); }
.mlt-sheet__sec p { font-size: var(--fs-md); line-height: var(--lh-base); color: var(--text-main); }

/* ---- 择吉：命主卡 + 择事条 ---- */
.mlt-who { font-size: var(--fs-md); line-height: var(--lh-loose); color: var(--text-sub); }
.mlt-who b { color: var(--text-main); font-weight: var(--fw-semi); }
/* 择事条目：去框改文字行，选中项仅以下划金线标识，消除一排胶囊的碎片感 */
.mlt-events { display: flex; flex-wrap: wrap; gap: 4px 16px; }
.mlt-event {
    padding: 6px 2px; font-size: var(--fs-sm); line-height: var(--lh-none); cursor: pointer;
    color: var(--text-faint); border: none; background: none; border-bottom: 1px solid transparent;
}
.mlt-event.on {
    color: var(--gold-100); font-weight: var(--fw-semi); border: none; background: none;
    border-bottom: 1px solid var(--gold-300);
}

/* ---- 择吉：吉日榜 ---- */
.mlt-rank { display: flex; align-items: center; gap: 10px; padding: 10px 2px; cursor: pointer; border-bottom: 1px solid var(--ink-line); }
.mlt-rank:last-child { border-bottom: none; }
.mlt-rank__k {
    flex: none; width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center;
    font-size: var(--fs-sm); font-weight: var(--fw-bold); color: var(--text-on-gold);
    background: linear-gradient(180deg, var(--gold-200), var(--gold-400));
}
.mlt-rank__m { flex: 1; min-width: 0; }
.mlt-rank__t { font-size: var(--fs-lg); color: var(--text-main); line-height: var(--lh-snug); font-weight: var(--fw-semi); }
.mlt-rank__t small { font-size: var(--fs-xs); color: var(--text-sub); font-weight: var(--fw-regular); }
.mlt-rank__r { font-size: var(--fs-sm); color: var(--text-sub); line-height: var(--lh-snug); margin-top: 3px; }
.mlt-rank__s { flex: none; font-size: var(--fs-2xl); font-weight: var(--fw-bold); color: var(--celadon); font-variant-numeric: tabular-nums; }

/* ---- 择吉：月历 ---- */
.mlt-calhead { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.mlt-calnav {
    flex: none; width: 30px; height: 30px; display: grid; place-items: center; cursor: pointer;
    font-size: 20px; line-height: 1; color: var(--gold-200); border: 1px solid var(--gold-500); border-radius: 50%;
}
.mlt-calnav:active { background: rgba(212,175,55,0.15); }
.mlt-ym { text-align: center; font-size: var(--fs-lg); font-weight: var(--fw-semi); color: var(--gold-100); letter-spacing: var(--ls-base); }
.mlt-ym small { display: block; font-size: var(--fs-2xs); color: var(--text-faint); font-weight: var(--fw-regular); letter-spacing: 0; margin-top: 2px; }
.mlt-weekrow { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; margin-bottom: 6px; padding-bottom: 6px; border-bottom: 1px solid var(--ink-line); }
.mlt-weekrow div { text-align: center; font-size: var(--fs-sm); font-weight: var(--fw-semi); color: var(--gold-200); letter-spacing: var(--ls-base); }
/* 月历：去小框，改为无边框网格；吉凶用建星字着色区分，今天/选中仅金色高亮。
   字号整体上调：日期 15px / 农历 10px / 建星 11px 加粗，解决「完全看不清楚」 */
.mlt-cal { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
.mlt-day {
    position: relative; min-height: 60px; padding: 7px 2px; border-radius: var(--radius-sm); overflow: hidden;
    display: flex; flex-direction: column; align-items: center; gap: 3px; cursor: pointer;
    border: none; background: none;
}
.mlt-day--empty { cursor: default; }
.mlt-day__d { font-size: var(--fs-lg); font-weight: var(--fw-bold); color: var(--text-main); line-height: var(--lh-none); font-variant-numeric: tabular-nums; }
.mlt-day__l { font-size: var(--fs-3xs); color: var(--text-sub); line-height: var(--lh-none); }
.mlt-day__jx { font-size: var(--fs-2xs); font-weight: var(--fw-bold); line-height: var(--lh-none); color: var(--text-faint); }
.mlt-day--ji .mlt-day__jx { color: var(--celadon); }
.mlt-day--xiong .mlt-day__jx { color: var(--cinnabar-text); }
.mlt-day--today { background: rgba(212,175,55,0.1); }
.mlt-day--today .mlt-day__d { color: var(--gold-100); }
.mlt-day--sel { background: linear-gradient(180deg, rgba(212,175,55,0.26), rgba(212,175,55,0.1)); box-shadow: inset 0 0 0 1px rgba(220,184,74,0.55); }
.mlt-day--sel .mlt-day__d { color: var(--gold-100); }
.mlt-day--avoid { opacity: 0.5; }
.mlt-day--rec { background: rgba(127,179,160,0.08); }
.mlt-day__pm { position: absolute; top: 3px; right: 4px; font-size: var(--fs-3xs); font-weight: var(--fw-bold); line-height: 1; color: var(--celadon); }
.mlt-day--avoid .mlt-day__pm { color: var(--cinnabar-text); }
.mlt-day__sc { position: absolute; bottom: 3px; right: 4px; font-size: var(--fs-3xs); line-height: 1; color: var(--gold-200); font-variant-numeric: tabular-nums; }

/* ---- 择吉/时运：当日详情（干支竖列 + 信息分行对齐）+ 宜忌 + 吉凶神煞 ---- */
.mlt-dd { display: flex; align-items: stretch; gap: 14px; }
.mlt-dd__gz {
    flex: none; display: flex; flex-direction: column; justify-content: center; align-items: center;
    width: 56px; border-right: 1px solid var(--ink-line); padding-right: 13px;
}
.mlt-dd__gz span { font-size: 34px; font-weight: var(--fw-bold); line-height: 1.15; font-family: var(--font-serif); }
.mlt-dd__meta { flex: 1; min-width: 0; font-size: var(--fs-md); line-height: 1.8; color: var(--text-sub); }
.mlt-dd__score { flex: none; align-self: center; text-align: center; padding: 0; border: none; background: none; }
.mlt-dd__score b { display: block; font-size: var(--fs-3xl); font-weight: var(--fw-bold); line-height: var(--lh-none); font-variant-numeric: tabular-nums; }
.mlt-dd__score div { font-size: var(--fs-3xs); color: var(--text-faint); margin-top: 3px; }
.mlt-dd__score--good { color: var(--celadon); }
.mlt-dd__score--bad { color: var(--cinnabar-text); }
.mlt-dd__score--flat { color: var(--gold-200); }
/* 警示条：去框，仅左侧一道红边 */
.mlt-veto {
    margin-top: 12px; padding: 2px 0 2px 10px; font-size: var(--fs-md); line-height: var(--lh-snug);
    color: var(--cinnabar-text); border-left: 2px solid var(--cinnabar);
}
.mlt-line { margin-top: 10px; font-size: var(--fs-md); line-height: var(--lh-base); color: var(--text-sub); }
.mlt-rt { color: var(--celadon); }
.mlt-rb { color: var(--cinnabar-text); }
/* 宜忌两栏：去框改纯文字，仅标题着色区分宜/忌 */
.mlt-yiji { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 16px; margin-top: 14px; }
.mlt-yiji__b { font-size: var(--fs-md); line-height: var(--lh-base); color: var(--text-main); }
.mlt-yiji__b h5 { font-size: var(--fs-lg); font-weight: var(--fw-bold); margin-bottom: 6px; letter-spacing: var(--ls-base); }
.mlt-yiji__b--yi h5 { color: var(--celadon); }
.mlt-yiji__b--ji h5 { color: var(--cinnabar-text); }
/* 吉神凶煞：去胶囊改文字串，颜色区分吉凶，消除一堆小框 */
.mlt-gods { margin-top: 14px; font-size: var(--fs-sm); line-height: var(--lh-loose); }
.mlt-god, .mlt-sha { border: none; background: none; padding: 0; }
.mlt-god { color: var(--celadon); }
.mlt-god + .mlt-god::before { content: " · "; color: var(--text-faint); }
.mlt-sha { color: var(--cinnabar-text); }
.mlt-gods .mlt-god + .mlt-sha::before, .mlt-gods .mlt-sha + .mlt-sha::before, .mlt-gods .mlt-sha + .mlt-god::before { content: " · "; color: var(--text-faint); }
.mlt-pick { margin-top: 10px; font-size: var(--fs-md); line-height: var(--lh-base); color: var(--text-sub); }
.mlt-pick b { color: var(--gold-200); font-weight: var(--fw-semi); }

/* ============================================================
   分销系统（三页跳转：我的团队 / 排行榜 / 提现）
   视觉沿用墨绿鎏金主题：卡片复用 .gc-card / .earn-card，
   本块只补页面骨架、底部三页导航、排行榜与规则排版
   ============================================================ */
/* overlay-inner 默认把短内容垂直居中（margin:auto），分销三页内容长且需挂顶排布，
   覆盖 .sub-nav + * 的 margin-top:auto 与末元素 margin-bottom:auto */
.overlay-inner > .dist-page { margin-top: 0; }
/* 同优先级覆盖 .overlay-inner > :last-child 的 margin-bottom:auto，保证 dock 沉底 */
.overlay-inner > .dist-dock { margin: 4px -14px -28px; }
.dist-page__foot {
    font-size: var(--fs-xs); line-height: var(--lh-loose);
    color: var(--text-faint); text-align: center;
    padding: 2px 8px 4px;
}
/* 底部三页导航：sticky 吸附在弹层滚动容器底部（弹层 .overlay 带 transform，
   position:fixed 会相对它定位且随内容滚动，故用 sticky 稳妥满宽吸附） */
.dist-dock {
    position: sticky; bottom: 0; z-index: 20;
    display: flex;
    margin: 4px -14px -28px;
    padding: 8px 0 calc(8px + env(safe-area-inset-bottom));
    background: linear-gradient(180deg, rgba(10,14,22,.92), var(--ink-900) 46%);
    border-top: 1px solid var(--gold-400);
    box-shadow: 0 -4px 16px rgba(0,0,0,.45), inset 0 1px 0 rgba(248,237,190,.16);
}
.dist-dock__item {
    flex: 1; display: flex; flex-direction: column;
    align-items: center; justify-content: center; gap: 3px;
    color: var(--text-faint); font-size: var(--fs-xs);
    line-height: var(--lh-none); letter-spacing: var(--ls-wide);
    transition: color .15s;
}
.dist-dock__item svg { width: 22px; height: 22px; transition: transform .15s, filter .15s; }
.dist-dock__item.on { color: var(--gold-200); text-shadow: 0 0 8px rgba(212,175,55,.5); }
.dist-dock__item.on svg { transform: scale(1.1); filter: drop-shadow(0 0 5px rgba(212,175,55,.5)); }
.dist-dock__item:active { opacity: .75; }

/* ---------- 排行榜：我的本月战绩 ---------- */
.rk-mine { padding: 14px; }
.rk-mine__top { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.rk-mine__left { min-width: 0; }
.rk-mine__k { font-size: var(--fs-sm); color: var(--text-sub); letter-spacing: var(--ls-wide); }
.rk-mine__v {
    font-size: var(--fs-2xl); font-weight: var(--fw-bold); color: var(--gold-100);
    line-height: var(--lh-tight); margin-top: 4px; font-variant-numeric: tabular-nums;
}
.rk-mine__right { flex: none; display: flex; flex-direction: column; gap: 6px; }
.rk-mine__line {
    display: flex; align-items: baseline; justify-content: flex-end; gap: 8px;
    font-size: var(--fs-sm); color: var(--text-sub); white-space: nowrap;
}
.rk-mine__line b { font-size: var(--fs-lg); font-weight: var(--fw-semi); color: var(--gold-200); font-variant-numeric: tabular-nums; }
.rk-mine__note {
    margin-top: 12px; padding-top: 10px;
    border-top: 1px solid rgba(212,175,55,.18);
    font-size: var(--fs-xs); line-height: var(--lh-loose); color: var(--text-sub);
}
/* ---------- 排行榜：榜单行 ---------- */
.rk-row { display: flex; align-items: center; gap: 12px; padding: 9px 4px; border-bottom: 1px solid rgba(212,175,55,.1); }
.rk-row:last-child { border-bottom: none; }
.rk-row--me {
    background: rgba(212,175,55,.08);
    border: 1px solid rgba(212,175,55,.35); border-bottom-color: rgba(212,175,55,.35);
    border-radius: var(--radius-sm); padding-left: 9px; padding-right: 9px;
}
.rk-no {
    flex: none; width: 30px; height: 30px; border-radius: 50%;
    display: grid; place-items: center;
    font-size: var(--fs-sm); font-weight: var(--fw-bold); font-variant-numeric: tabular-nums;
    color: var(--text-faint); background: rgba(255,255,255,.04);
    border: 1px solid rgba(212,175,55,.28);
}
.rk-no--1 {
    color: #3a2c08; border-color: var(--gold-200);
    background: linear-gradient(180deg, var(--gold-100), var(--gold-300));
    box-shadow: 0 0 10px rgba(212,175,55,.45);
}
.rk-no--2 { color: #10241c; border-color: #cdd8db; background: linear-gradient(180deg,#eef2f4,#a9bcc0); }
.rk-no--3 { color: #3a2410; border-color: #d0a06b; background: linear-gradient(180deg,#ebc99f,#b07f46); }
.rk-row__body { flex: 1; min-width: 0; }
.rk-row__name { font-size: var(--fs-base); color: var(--text-main); display: flex; align-items: center; gap: 6px; }
.rk-row__me-tag { flex: none; }
.rk-row__meta { font-size: var(--fs-xs); color: var(--text-sub); margin-top: 3px; font-variant-numeric: tabular-nums; }
.rk-row__award {
    flex: none; font-size: var(--fs-base); font-weight: var(--fw-semi);
    color: var(--gold-200); font-variant-numeric: tabular-nums; white-space: nowrap;
}
.rk-row__award--zero { color: var(--text-faint); font-size: var(--fs-xs); font-weight: var(--fw-normal); }
.rk-tip { margin-top: 10px; font-size: var(--fs-xs); line-height: var(--lh-loose); color: var(--text-sub); }
/* ---------- 排行榜：奖金档位 / 月度阶梯 ---------- */
.rk-tier {
    display: flex; align-items: center; justify-content: space-between; gap: 8px;
    padding: 9px 2px; font-size: var(--fs-sm);
    border-bottom: 1px dashed rgba(212,175,55,.14);
}
.rk-tier:last-child { border-bottom: none; }
.rk-tier__range { flex: none; min-width: 84px; color: var(--text-main); font-weight: var(--fw-medium); }
.rk-tier__cond { flex: 1; text-align: center; color: var(--text-sub); font-size: var(--fs-xs); }
.rk-tier__reward { flex: none; color: var(--gold-200); font-weight: var(--fw-semi); font-variant-numeric: tabular-nums; white-space: nowrap; }
.rk-tier-h {
    font-size: var(--fs-sm); font-weight: var(--fw-semi);
    color: var(--gold-200); letter-spacing: var(--ls-wide);
    margin: 14px 0 2px;
}
.rk-tier-h:first-child { margin-top: 2px; }
/* ---------- 分销规则全文 ---------- */
.rule-sec { padding: 11px 0; border-bottom: 1px solid rgba(212,175,55,.1); }
.rule-sec:last-child { border-bottom: none; }
.rule-sec__t {
    display: flex; align-items: center; gap: 7px;
    font-size: var(--fs-lg); font-weight: var(--fw-bold);
    color: var(--gold-100); letter-spacing: var(--ls-base); margin-bottom: 6px;
}
.rule-sec__t::before {
    content: ""; flex: none; width: 3px; height: 15px; border-radius: 2px;
    background: linear-gradient(180deg, var(--gold-200), var(--gold-400));
}
.rule-sec__d { font-size: var(--fs-md); line-height: var(--lh-loose); color: var(--text-main); white-space: pre-wrap; }
/* ---------- 提现页：三余额横排 ---------- */
.wd-bal {
    margin-top: 10px; padding-top: 10px;
    border-top: 1px solid rgba(212,175,55,.18);
    display: flex; font-size: var(--fs-sm); color: var(--text-sub);
}
.wd-bal span { flex: 1; text-align: center; }
.wd-bal span + span { border-left: 1px solid rgba(212,175,55,.2); }
.wd-bal b { margin-left: 3px; color: var(--gold-200); font-weight: var(--fw-semi); font-variant-numeric: tabular-nums; }

/* ============================================================
   分销三页 · 折叠卡 + 同屏紧凑布局（二次排版）
   折叠交互统一走「.is-collapsed 状态类 + CSS」，JS 只切类
   ============================================================ */
.dist-page { display: flex; flex-direction: column; }
/* 内容不足一屏时 .dist-page 吃掉剩余高度，保证 dock 始终钉在视口底部 */
.overlay-inner > .dist-page { margin-top: 0; flex: 1 1 auto; }
/* ---------- 通用折叠卡 ---------- */
.acc-head {
    display: flex; align-items: center; gap: 8px;
    cursor: pointer; user-select: none; -webkit-tap-highlight-color: transparent;
    position: relative;
}
/* 展开态头部下一道极淡金色发丝线；折叠态不显示，卡内更干净 */
.acc-head::after {
    content: ""; position: absolute; left: 0; right: 0; bottom: -7px;
    height: 1px; background: linear-gradient(90deg, rgba(212,175,55,.4), rgba(212,175,55,0));
}
.acc-card.is-collapsed .acc-head::after { display: none; }
.acc-head__t {
    flex: none; display: flex; align-items: center; gap: 8px;
    font-size: var(--fs-lg); line-height: var(--lh-tight);
    letter-spacing: var(--ls-base); color: var(--gold-100);
    font-weight: var(--fw-semi); text-shadow: 0 0 10px rgba(220,184,74,.35);
}
.acc-head__t .mini-ico { width: 17px; height: 17px; color: var(--gold-300); }
.acc-head__t .tag { font-weight: var(--fw-normal); }
.acc-sum {
    flex: 1; min-width: 0; text-align: right;
    font-size: var(--fs-xs); color: var(--text-sub);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    font-variant-numeric: tabular-nums;
}
.acc-chev {
    flex: none; display: grid; place-items: center;
    width: 20px; height: 20px; color: var(--gold-300);
    transition: transform .2s ease;
}
.acc-chev svg { width: 16px; height: 16px; }
.acc-card:not(.is-collapsed) .acc-chev { transform: rotate(90deg); }
.acc-card.is-collapsed .acc-body { display: none; }
.acc-body { margin-top: 12px; }

/* ---------- 我的团队：整页同屏紧凑 ---------- */
.dist-page--team .earn-card { padding: 12px 14px; margin-bottom: 8px; }
.dist-page--team .earn-card__v { font-size: var(--fs-2xl); }
.dist-page--team .earn-card__k { font-size: var(--fs-xs); }
.dist-page--team .earn-card__sub { margin-top: 4px; font-size: var(--fs-xs); }
.dist-page--team .gc-card { padding: 12px 14px; margin-bottom: 8px; }
.dist-page--team .gc-card__title { margin-bottom: 8px; font-size: var(--fs-base); }
.dist-page--team .gc-card__title .mini-ico { width: 16px; height: 16px; }
.dist-page--team .stat-row__item { padding: 2px 0; }
.dist-page--team .stat-row .v { font-size: var(--fs-xl); }
.dist-page--team .stat-row .k { font-size: var(--fs-xs); margin-top: 2px; }
.dist-page--team .empty { padding: 14px 14px 12px; font-size: var(--fs-sm); }
.dist-page--team .empty svg { width: 28px; height: 28px; margin-bottom: 6px; }
.dist-page--team .invite-link button { height: 30px; padding: 0 14px; font-size: var(--fs-sm); }
.dist-invite-btns { margin-top: 8px; }
.dist-invite-btns .btn { height: 38px; font-size: var(--fs-base); letter-spacing: var(--ls-base); }
.dist-page--team .acc-head__t { font-size: var(--fs-base); }
.dist-page--team .acc-head__t .mini-ico { width: 16px; height: 16px; }
.dist-page--team .dist-page__foot { margin-top: 2px; padding-top: 2px; }

/* ---------- 排行榜：本月战绩折叠卡紧凑（榜单卡保持展开，进入即见完整榜单） ---------- */
.dist-page--rank .gc-card { margin-bottom: 8px; }
.rk-mine.acc-card { padding: 12px 14px; }
.rk-mine .acc-body { margin-top: 10px; }
.rk-mine .acc-head__t { font-size: var(--fs-base); }
.rk-mine .acc-head__t .mini-ico { width: 16px; height: 16px; }

/* ---------- 提现：顶部余额卡上下收缩，提现信息框整屏完整可见 ---------- */
.dist-page--wd .gc-card { margin-bottom: 8px; }
.earn-card--sm { padding: 9px 14px 10px; margin-bottom: 8px; }
.earn-card--sm .earn-card__k { font-size: var(--fs-xs); }
.earn-card--sm .earn-card__v { font-size: var(--fs-2xl); }
.earn-card--sm .wd-bal { margin-top: 7px; padding-top: 7px; font-size: var(--fs-xs); }
.dist-page--wd .form-item { margin-bottom: 10px; }
.dist-page--wd .form-item label { margin-bottom: 6px; font-size: var(--fs-sm); }
.dist-page--wd .form-control { height: 42px; }
.dist-page--wd .seg span { height: 36px; line-height: 36px; }
.dist-page--wd .gc-card .btn { height: 44px; font-size: var(--fs-base); }
.dist-page--wd #wdHint { margin-top: 8px; line-height: var(--lh-snug); }

/* ---- 时运：主题 hero ---- */
.mlt-hero { text-align: center; }
.mlt-hero__date { font-size: var(--fs-sm); color: var(--text-sub); letter-spacing: var(--ls-base); }
.mlt-hero__gz { display: flex; justify-content: center; gap: 8px; font-size: 48px; font-weight: var(--fw-bold); line-height: var(--lh-none); margin: 10px 0; font-family: var(--font-serif); }
.mlt-hero__tag {
    display: inline-block; font-size: var(--fs-md); font-weight: var(--fw-semi); color: var(--gold-200); letter-spacing: var(--ls-wide);
    border: none; background: none; padding: 0;
}
.mlt-hero__desc { margin-top: 12px; font-size: var(--fs-md); line-height: var(--lh-loose); color: var(--text-sub); text-align: left; }

/* ---- 时运：评分条 ---- */
.mlt-score { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.mlt-score__l { flex: none; width: 64px; font-size: var(--fs-md); color: var(--text-sub); }
.mlt-score__bar { flex: 1; height: 8px; border-radius: 4px; background: rgba(11,14,22,0.6); overflow: hidden; box-shadow: inset 0 1px 2px rgba(0,0,0,0.4); }
.mlt-score__fill { display: block; height: 100%; border-radius: 4px; }
.mlt-score__fill--good { background: linear-gradient(90deg, #5fa88a, var(--celadon)); }
.mlt-score__fill--flat { background: linear-gradient(90deg, var(--gold-400), var(--gold-200)); }
.mlt-score__fill--bad { background: linear-gradient(90deg, #a8503f, var(--cinnabar-text)); }
.mlt-score__n { flex: none; width: 30px; text-align: right; font-size: var(--fs-lg); font-weight: var(--fw-bold); color: var(--text-main); font-variant-numeric: tabular-nums; }

/* ---- 时运：流日对四柱作用（去小框改列表行，行间细分隔线） ---- */
.mlt-relgrid { display: flex; flex-direction: column; }
.mlt-rel { padding: 11px 0; border-bottom: 1px solid var(--ink-line); background: none; }
.mlt-rel:last-child { border-bottom: none; }
.mlt-rel__top { display: flex; justify-content: space-between; align-items: baseline; gap: 6px; margin-bottom: 6px; }
.mlt-rel__top span:first-child { font-size: var(--fs-md); color: var(--gold-100); font-weight: var(--fw-semi); }
.mlt-rel__mean { font-size: var(--fs-2xs); color: var(--text-sub); }
.mlt-rel__r { font-size: var(--fs-lg); font-weight: var(--fw-bold); line-height: var(--lh-snug); }
.mlt-rel__r--good { color: var(--celadon); }
.mlt-rel__r--bad { color: var(--cinnabar-text); }
.mlt-rel__r--ping { color: var(--gold-200); }
.mlt-rel__txt { font-size: var(--fs-sm); line-height: var(--lh-base); color: var(--text-sub); margin-top: 3px; }

/* ---- 时运：分项运势 + 开运锦囊（去小框改列表行） ---- */
.mlt-luck4 { display: flex; flex-direction: column; }
.mlt-lk { padding: 11px 0; border-bottom: 1px solid var(--ink-line); background: none; }
.mlt-lk:last-child { border-bottom: none; }
.mlt-lk__t { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 5px; }
.mlt-lk__t span:first-child { font-size: var(--fs-lg); color: var(--text-main); font-weight: var(--fw-semi); }
.mlt-lk__v { font-size: var(--fs-md); font-weight: var(--fw-bold); font-variant-numeric: tabular-nums; }
.mlt-lk__v--up { color: var(--celadon); }
.mlt-lk__v--down { color: var(--cinnabar-text); }
.mlt-lk__v--flat { color: var(--gold-200); }
.mlt-lk__d { font-size: var(--fs-sm); line-height: var(--lh-base); color: var(--text-sub); }
.mlt-tips { display: flex; flex-direction: column; }
.mlt-tip { display: flex; align-items: baseline; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--ink-line); background: none; }
.mlt-tip:last-child { border-bottom: none; }
.mlt-tip__k { flex: none; width: 96px; font-size: var(--fs-sm); color: var(--gold-200); letter-spacing: var(--ls-base); }
.mlt-tip__v { flex: 1; font-size: var(--fs-md); line-height: var(--lh-snug); color: var(--text-main); }

/* ---- 时运：十二时辰 ---- */
.mlt-hours { display: flex; flex-direction: column; }
.mlt-hour { display: flex; align-items: center; gap: 10px; padding: 9px 2px; border-bottom: 1px solid var(--ink-line); }
.mlt-hour:last-child { border-bottom: none; }
.mlt-hour--now { background: rgba(212,175,55,0.08); border-radius: var(--radius-sm); }
.mlt-hour__t { flex: none; width: 56px; font-size: var(--fs-xs); line-height: var(--lh-tight); color: var(--text-sub); text-align: center; font-variant-numeric: tabular-nums; }
.mlt-hour__gz { flex: none; width: 36px; font-size: var(--fs-2xl); font-weight: var(--fw-bold); line-height: var(--lh-none); font-family: var(--font-serif); }
.mlt-hour__god { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.mlt-hour__g1 { font-size: var(--fs-md); color: var(--text-main); }
.mlt-hour__g2 { font-size: var(--fs-xs); color: var(--text-sub); }
.mlt-hour__mark { flex: none; font-size: var(--fs-sm); font-weight: var(--fw-bold); line-height: var(--lh-none); padding: 0; border: none; background: none; }
.mlt-hour__mark--ji { color: var(--celadon); }
.mlt-hour__mark--xiong { color: var(--cinnabar-text); }
.mlt-hour__mark--ping { color: var(--gold-200); }

/* ---- 窄屏自适应：宜忌两栏降一栏；rel/luck/tips 已是单列列表，无需再降 ---- */
@media (max-width: 380px) {
    .mlt-yiji { grid-template-columns: 1fr; }
    .mlt-hero__gz { font-size: 40px; }
    .mlt-day { min-height: 54px; }
    .mlt-day__d { font-size: var(--fs-md); }
    .mlt-day__l { font-size: 10px; }
    .mlt-day__jx { font-size: var(--fs-3xs); }
}

/* ============================================================
   全站精修：统一交互反馈 / 焦点态 / 长文页节奏 / 选中色 / 文本规范
   只做增量打磨，不改动既有版式骨架
   ============================================================ */

/* 子页弹层：iOS 惯性滚动（不在容器上设 scroll-behavior:smooth——
   路由切换时 Router 会把 scrollTop 复位为 0，容器级平滑会让复位变成动画；
   报告页目录跳转由 JS 显式指定 behavior:'smooth'） */
.overlay { -webkit-overflow-scrolling: touch; }
@media (prefers-reduced-motion: reduce) {
    .rp-fab, .rp-toc, .rp-toc-mask, .rp-progress i { transition: none; }
}

/* 文本选中：鎏金底 + 暖象牙字，深底上克制而明确 */
::selection { background: rgba(220,184,74,0.30); color: #fbf3da; }

/* 键盘焦点可见态（鼠标/触屏不触发）：细金描边 + 柔光晕，可访问性与精致感兼得 */
.btn:focus-visible,
.form-control:focus-visible,
.seg span:focus-visible,
.gc-list__item:focus-visible,
.invite-link button:focus-visible,
.rp-fab__btn:focus-visible,
.rp-toc__item:focus-visible,
.rp-toc__x:focus-visible,
.acc-head:focus-visible {
    outline: 2px solid rgba(220,184,74,0.65);
    outline-offset: 1px;
}
.form-control:focus-visible { outline-offset: 0; }

/* 可点列表行 / 分段控件：统一按压反馈与过渡，消除「点了没反应」的生硬感 */
.gc-list__item { transition: background .15s ease, border-color .15s ease, transform .12s ease; }
.gc-list__item:active {
    transform: scale(0.994);
    border-color: rgba(212,175,55,0.42);
    background: linear-gradient(160deg, rgba(32,40,62,0.46), rgba(12,16,26,0.58));
}
.seg span { transition: color .15s ease, background .15s ease; }
.sub-nav__back, .sub-nav__close { transition: opacity .12s ease; }
.sub-nav__back:active, .sub-nav__close:active { opacity: .55; }
.invite-link button { transition: filter .12s ease, transform .12s ease; }
.invite-link button:active { transform: scale(0.97); filter: brightness(1.08); }

/* 协议/说明类长文页：章节之间留出明确气口，标题层级更清楚 */
.overlay-inner .gc-card > .detail-section-h:not(:first-child) { margin-top: 18px; }
.detail-text { letter-spacing: 0.2px; }

/* ============================================================
   排版升级：光学居中 / 数字对齐 / 标签对齐（纯增量，不动版式骨架）
   ============================================================ */

/* 带字距的居中文字，尾部会多出一个字距，视觉重心偏左半个字距；
   text-indent 补回半档，标题/主按钮/底栏文字才真正落在中轴上（单行元素专用） */
.sub-nav__title { text-indent: calc(var(--ls-title) / 2); }
.pan-btn { text-indent: calc(var(--ls-title) / 2); }
.rp-cover__title { text-indent: calc(var(--ls-title) / 2); }
.rp-cover__kicker { text-indent: 2px; }
.zw-center__t { text-indent: 1.5px; }
.tab-item, .dist-dock__item { text-indent: calc(var(--ls-wide) / 2); }

/* 价格/余额类数字：等宽数字 + 基线对齐，多档价格上下排列时位数对得齐 */
.plan__price, .vip-cmp__price, .wd-bal b { font-variant-numeric: tabular-nums; }

/* 会员对比卡：档名与价格基线对齐（同一行文字元素，胶囊角标仍随中轴） */
.vip-cmp__h { align-items: baseline; }
.vip-cmp__flag { align-self: center; }

/* 信息行：标签与多行值首行基线对齐，不再因 flex-start 产生上落差 */
.info-row { align-items: baseline; }

/* 六爻/额度等键值行：标签与值统一基线，长说明换行后左缘整齐 */
.quota-row, .lyg-kv { align-items: baseline; }

/* ============================================================
   v3 深邃星空 × 鎏金星盘 —— 视觉增强（纯增量，不改版式/钩子）
   1) 用户星盘图系列接入：排盘品牌印 / 工具箱星盘 / 会员卡星芒 / 报告星轨
   2) 星盘组件：圆印 + 呼吸光晕 + 虚线圈 + 刻度外环（参考深邃星空版）
   3) 衬线展示体用于品牌名与章节名，星图馆级质感
   ============================================================ */
/* —— 展示衬线体：卡片章节名 —— */
.gc-card__title { font-family: var(--font-display); letter-spacing: var(--ls-wide); }

/* —— 品牌印：排盘页 Logo 星盘圆印 —— */
.pan-logo__ico--img {
    background-image: var(--img-astrolabe);
    background-size: 168%;
    background-position: center;
    border-radius: 50%;
    border: 1px solid rgba(247,236,208,0.55);
    box-shadow: 0 0 14px rgba(203,164,78,0.28), 0 0 26px rgba(116,124,150,0.18), inset 0 0 10px rgba(0,0,0,0.5);
}

/* —— 展示衬线体：卡片章节名 —— */
.gc-card__title { font-family: var(--font-display); letter-spacing: var(--ls-wide); }

/* —— 会员中心子页：星芒会员卡主视觉（用户 bg-vip 图，虚空底融合） —— */
.overlay-inner .vip-banner {
    position: relative;
    min-height: 124px;
    display: flex; flex-direction: column; justify-content: center;
    padding: 18px 16px;
    border-color: rgba(203,164,78,0.45);
    background:
        linear-gradient(90deg, rgba(6,8,14,0.95) 0%, rgba(8,10,17,0.74) 42%, rgba(8,10,17,0.30) 72%),
        var(--img-vip) right center / cover no-repeat,
        linear-gradient(180deg, var(--ink-600), var(--ink-800));
    box-shadow: 0 8px 26px rgba(2,3,8,0.55), inset 0 1px 0 rgba(247,236,208,0.16);
}
.overlay-inner .vip-banner .vip-banner__cloud { display: none; }
.overlay-inner .vip-banner .vip-banner__d { max-width: 62%; }
.overlay-inner .vip-banner .vip-banner__t { font-family: var(--font-display); font-size: var(--fs-2xl); letter-spacing: var(--ls-wide); }

/* —— 报告封面：顶部星轨横幅（用户 bg-banner 图，虚空收底） —— */
.rp-cover {
    position: relative;
    background-image:
        radial-gradient(120% 70% at 50% -10%, rgba(203,164,78,0.14) 0%, rgba(203,164,78,0) 60%),
        linear-gradient(180deg, rgba(7,9,15,0.15) 0%, rgba(7,9,15,0.95) 78%),
        var(--img-banner);
    background-size: auto, auto, 100% auto;
    background-position: center, center, center top;
    background-repeat: no-repeat;
}

/* —— 工具宫格：圆印虚空玻璃 + 金内辉 —— */
.tool-cell { transition: transform .14s ease, border-color .14s ease, box-shadow .14s ease; }
.tool-cell:active { transform: scale(0.97); border-color: rgba(203,164,78,0.5); }
.tool-cell__ico {
    background:
        radial-gradient(circle at 50% 32%, rgba(240,220,152,0.20), rgba(203,164,78,0.05) 52%, rgba(2,3,8,0.30)),
        linear-gradient(180deg, var(--ink-600), var(--ink-700));
}

/* —— 主操作金钮统一金色投影（开始排盘/确认支付） —— */
.pan-btn { box-shadow: 0 5px 16px rgba(0,0,0,0.45), 0 0 14px rgba(203,164,78,0.24), inset 0 1px 0 rgba(255,255,255,0.55), inset 0 -1px 0 rgba(92,73,19,0.6); }

/* —— 套餐卡选中态加金色描边光 —— */
.plan.on { box-shadow: 0 0 0 1px var(--gold-300), 0 0 18px rgba(203,164,78,0.30), inset 0 1px 0 rgba(247,236,208,0.18); }

/* —— 干支大字：衬线 + 微金描边光，星图盘面感 —— */
.gz-char { filter: drop-shadow(0 0 5px rgba(203,164,78,0.18)); }

/* —— 命盘表头选中：鎏金小字加亮 —— */
.gz-th--active { color: var(--gold-200); text-shadow: 0 0 8px rgba(203,164,78,0.35); }

/* ============================================================
   v4 · 深邃星空全新界面（2026-09）
   · 排盘：参考稿星盘仪式流（halo + 缓转星盘 + 刻度双环 + 金线眉题）
   · 工具：市场成熟 App 结构（核心大入口 + 双列宫格 + 须知卡）
   · 档案：主操作卡 + 分区列表；我的：星图头像 + 会员 + 数据 + 服务
   · 仅新增 pv4/tv4/av4/mv4 命名空间；旧类名全部保留（JS 事件契约不变）
   ============================================================ */

/* ---------------- 排盘页 · 起盘仪式 ---------------- */
.pv4.pan-page { justify-content: flex-start; padding: 12px 14px 8px; }
.pv4.pan-page::before, .pv4.pan-page::after { content: none; }
.pv4-ritual {
    display: flex; flex-direction: column; align-items: center;
    text-align: center; margin-bottom: 12px;
}
.pv4-compass { position: relative; width: 116px; height: 116px; flex: none; margin: 0 auto 10px; }
.pv4-compass__disc {
    position: absolute; inset: 0; border-radius: 50%; z-index: 1;
    background-image: var(--img-astrolabe);
    background-size: cover; background-position: center;
    border: 1px solid rgba(247,236,208,0.5);
    box-shadow: 0 0 30px rgba(203,164,78,0.22), 0 0 70px rgba(116,124,150,0.14), inset 0 0 26px rgba(0,0,0,0.5);
    animation: pv4-spin 80s linear infinite;
}
.pv4-compass__halo {
    position: absolute; inset: -32px; border-radius: 50%; z-index: 0;
    background: radial-gradient(circle, rgba(203,164,78,0.16) 0%, rgba(120,110,170,0.10) 46%, transparent 68%);
    animation: pv4-breathe 6s ease-in-out infinite;
}
.pv4-compass__r1 {
    position: absolute; inset: -11px; border-radius: 50%; z-index: 2; pointer-events: none;
    border: 1px dashed rgba(203,164,78,0.34);
    animation: pv4-spin-rev 120s linear infinite;
}
.pv4-compass__r2 {
    position: absolute; inset: -21px; border-radius: 50%; z-index: 2; pointer-events: none;
    border: 1px solid rgba(203,164,78,0.16);
    animation: pv4-spin 160s linear infinite;
}
.pv4-compass__r2::before {
    content: ""; position: absolute; inset: 5px; border-radius: 50%;
    background: repeating-conic-gradient(rgba(203,164,78,0.5) 0deg 0.6deg, transparent 0.6deg 6deg);
    -webkit-mask: radial-gradient(circle, transparent 62%, #000 63%, #000 66%, transparent 67%);
    mask: radial-gradient(circle, transparent 62%, #000 63%, #000 66%, transparent 67%);
}
@keyframes pv4-spin { to { transform: rotate(360deg); } }
@keyframes pv4-spin-rev { to { transform: rotate(-360deg); } }
@keyframes pv4-breathe { 0%,100% { opacity: .55; transform: scale(.96); } 50% { opacity: 1; transform: scale(1.05); } }

.pv4-title {
    font-family: var(--font-serif); font-weight: 600;
    font-size: 25px; line-height: 1.2; letter-spacing: 2px; color: var(--text-main);
}
.pv4-sub { margin-top: 4px; font-size: 11.5px; letter-spacing: 2px; color: var(--text-faint); }
.pan-gender__btn.on { color: var(--text-on-gold); background: linear-gradient(180deg, var(--gold-200), var(--gold-400)); border-color: var(--gold-300); box-shadow: 0 3px 10px rgba(203,164,78,0.28), inset 0 1px 0 rgba(255,250,230,0.5); }
.pan-birth__time { color: var(--gold-200); font-weight: 600; }

/* 金色胶囊主钮 */
.pv4-btn {
    width: 100%; height: 46px; margin-top: 2px; border: none; border-radius: 999px;
    cursor: pointer;
    font-family: var(--font-serif); font-size: 16px; font-weight: 600;
    letter-spacing: 5px; text-indent: 5px; color: var(--text-on-gold);
    background: linear-gradient(180deg, #F3E2B0 0%, var(--gold-300) 45%, var(--gold-500) 100%);
    box-shadow: 0 6px 18px rgba(203,164,78,0.28), inset 0 1px 0 rgba(255,250,230,0.6), inset 0 -2px 6px rgba(92,73,19,0.4);
    transition: transform .12s;
}
.pv4-btn:active { transform: translateY(1px) scale(0.995); }
.pv4-foot { margin: 9px auto 0; text-align: center; font-size: 10.5px; line-height: 1.7; color: var(--text-faint); max-width: 78%; padding: 0 10px; }

/* ---------------- 工具页 · 核心入口 + 宫格 ---------------- */
.tv4 { padding: 14px 14px 4px; }
/* v5：页内大标题并入顶栏，仅保留顶栏标题下的小字说明 */
.tv4-subline {
    margin: 2px 2px 13px;
    font-size: 12.5px; letter-spacing: 1px; line-height: 1.5;
    color: var(--text-sub);
}

/* 核心入口：与下方宫格同一种「圆印+名称」纵向语言（旧版横排大卡+金边发光与宫格割裂）；
   仅靠名称大半档+描述小字保留「核心」层级，边框/底色/圆角全部与 .tv4-cell 一致 */
.tv4-feature {
    position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 7px; padding: 13px 6px 11px; margin-bottom: 10px;
    border-radius: 14px; cursor: pointer;
    border: 1px solid rgba(190,196,214,0.12);
    background: linear-gradient(165deg, rgba(28,31,43,0.6), rgba(12,13,20,0.72));
    transition: transform .12s, border-color .15s, background .15s;
}
.tv4-feature:active {
    transform: scale(0.99);
    border-color: rgba(203,164,78,0.45);
    background: linear-gradient(165deg, rgba(203,164,78,0.1), rgba(12,13,20,0.82));
}
.tv4-feature__name {
    font-family: var(--font-serif); font-size: 15px; font-weight: 600;
    letter-spacing: 2px; line-height: 1.3; color: var(--text-main);
}
.tv4-feature__desc { font-size: 10.5px; letter-spacing: 0.5px; color: var(--text-sub); text-align: center; }

.tv4-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.tv4-cell {
    gap: 7px; padding: 13px 6px 11px;
    border-radius: 14px;
    border: 1px solid rgba(190,196,214,0.12);
    background: linear-gradient(165deg, rgba(28,31,43,0.6), rgba(12,13,20,0.72));
    transition: border-color .15s, background .15s;
}
.tv4-cell:active {
    border-color: rgba(203,164,78,0.45);
    background: linear-gradient(165deg, rgba(203,164,78,0.1), rgba(12,13,20,0.82));
}
.tv4-cell .tool-cell__ico { width: 44px; height: 44px; }
.tv4-cell .tool-cell__ico svg { width: 22px; height: 22px; }

/* v5：须知去大框，仅留淡文字 */
.tv4-note {
    margin-top: 12px; padding: 2px 4px 0;
    border: none; border-radius: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none; -webkit-backdrop-filter: none;
}
.tv4-note__t { display: flex; align-items: center; gap: 6px; font-size: 12.5px; letter-spacing: 2px; color: var(--gold-200); }
.tv4-note p { margin-top: 6px; font-size: 11.5px; line-height: 1.75; color: var(--text-sub); }
/* v4 页面内通用卡：去除旧祥云角花与空态虚线框，贴合极简星空玻璃 */
.tv4 .gc-card::before, .tv4 .gc-card::after,
.av4 .gc-card::before, .av4 .gc-card::after { display: none; }
.tv4 .empty, .av4 .empty {
    border: none;
    background: transparent;
    color: var(--text-faint);
}

/* ---------------- 档案页 · 主操作 + 分区 ---------------- */
.av4 { padding: 14px 14px 4px; }
/* v5：主操作改为实线独立按键框（与表单控件同语言） */
.av4-add {
    height: auto; padding: 13px 14px; margin-bottom: 14px;
    justify-content: flex-start; gap: 12px;
    border-radius: 14px;
    border: 1px solid rgba(203,164,78,0.42);
    background: linear-gradient(165deg, rgba(203,164,78,0.09), rgba(14,15,23,0.5));
    box-shadow: none;
    font-size: 15px; letter-spacing: 2px; color: var(--gold-100);
}
.av4-add:active { border-color: var(--gold-300); }
.av4-add__ico {
    width: 36px; height: 36px; flex: none; border-radius: 50%;
    display: grid; place-items: center;
    background: linear-gradient(180deg, var(--gold-200), var(--gold-400));
    color: var(--text-on-gold);
    box-shadow: 0 3px 10px rgba(203,164,78,0.3);
}
.av4-add__ico svg { width: 18px; height: 18px; }
.av4-add__body { flex: 1; display: flex; flex-direction: column; align-items: flex-start; gap: 1px; }
.av4-add__body b {
    font-family: var(--font-serif); font-size: 15px; font-weight: 600;
    letter-spacing: 2px; color: var(--gold-100);
}
.av4-add__body small { font-size: 10.5px; letter-spacing: 1px; color: var(--text-faint); }
.av4-add__go { flex: none; font-size: 20px; line-height: 1; color: var(--gold-500); }

.av4-sect {
    display: flex; align-items: center; gap: 9px;
    margin: 0 2px 9px;
    font-size: 12px; letter-spacing: 3px; color: var(--gold-300);
}
.av4-sect::before {
    content: ""; width: 4px; height: 4px; border-radius: 50%;
    background: var(--gold-400); box-shadow: 0 0 6px rgba(203,164,78,0.7);
}
.av4-sect::after {
    content: ""; flex: 1; height: 1px;
    background: linear-gradient(90deg, rgba(203,164,78,0.35), transparent);
}
.av4 #archiveList .archive-card {
    border: 1px solid rgba(190,196,214,0.12);
    border-radius: 13px;
    padding: 12px 13px;
    background: linear-gradient(165deg, rgba(28,31,43,0.55), rgba(12,13,20,0.75));
    box-shadow: 0 4px 14px rgba(0,0,0,0.3);
}
/* 空态时去掉外层 gc-card 描金边，只留内部空态发丝框，避免双层框 */
.av4 #archiveList > .gc-card {
    border: none; background: transparent; box-shadow: none;
    backdrop-filter: none; -webkit-backdrop-filter: none; padding: 0;
}
.av4 #archiveList .archive-card:active { border-color: rgba(203,164,78,0.4); }
.av4 .archive-card .avatar { width: 40px; height: 40px; }
.av4 .archive-card .avatar svg { width: 22px; height: 22px; }
/* v5：历史区去大框，时间线改为独立描边行（去竖轨/金点） */
.av4-hist {
    padding: 0;
    border: none; background: transparent; box-shadow: none;
    backdrop-filter: none; -webkit-backdrop-filter: none;
}
.av4-hist::before, .av4-hist::after { display: none; }
.av4 .timeline__item {
    margin: 0 0 8px;
    padding: 10px 13px;
    border-left: none;
    border: 1px solid rgba(190,196,214,0.14);
    border-radius: 12px;
    background: linear-gradient(165deg, rgba(28,31,43,0.5), rgba(12,13,20,0.62));
}
.av4 .timeline__item::before { display: none; }
.av4 .timeline__item:last-child { padding-bottom: 10px; margin-bottom: 0; }
.av4-hist #archiveHistory { margin-bottom: 8px; }
.av4-hist__btn {
    width: 100%; height: 36px; margin-top: 2px; font-size: 12px;
    border-radius: 12px;
}

/* ---------------- 我的页 · 星图头像 + 会员 + 数据 + 服务 ---------------- */
/* v5：头像/档案头像统一为与背景搭配的鎏金星盘 */
.avatar--disc {
    background: var(--img-astrolabe) center/cover no-repeat;
    border-color: rgba(232,204,140,0.6);
    box-shadow: 0 0 12px rgba(203,164,78,0.25), inset 0 0 6px rgba(0,0,0,0.55);
}
.avatar--disc svg { display: none; }

/* v5：用户区去大框（信息直接落于星空） */
.mv4-profile {
    border: none;
    background: transparent;
    box-shadow: none;
    padding: 6px 2px 10px;
}
.mv4-avatar { position: relative; width: 54px; height: 54px; flex: none; }
.mv4-avatar .avatar {
    width: 50px; height: 50px; margin: 2px;
    background: radial-gradient(circle at 50% 28%, rgba(203,164,78,0.28), var(--ink-900));
}
.mv4-avatar .avatar.avatar--disc {
    background: var(--img-astrolabe) center/cover no-repeat;
}
.mv4-avatar .avatar svg { width: 27px; height: 27px; }
.mv4-avatar__ring {
    position: absolute; inset: 0; border-radius: 50%; pointer-events: none;
    border: 1px dashed rgba(203,164,78,0.4);
    animation: pv4-spin 40s linear infinite;
}
.mv4-avatar__ring::after {
    content: ""; position: absolute; top: -2px; left: 50%;
    width: 5px; height: 5px; border-radius: 50%;
    background: var(--gold-200); box-shadow: 0 0 8px rgba(232,204,140,0.8);
}
.mv4-setting {
    width: 34px; height: 34px; border-radius: 50%; flex: none;
    display: grid; place-items: center;
    background: rgba(190,196,214,0.08); border: 1px solid rgba(190,196,214,0.14);
}
.mv4-setting svg { width: 17px; height: 17px; }
/* v5：会员条轻量独立按键框（去掉重渐变卡感） */
.mv4 .vip-banner {
    border-color: rgba(203,164,78,0.38);
    background: radial-gradient(120% 170% at 0% 0%, rgba(203,164,78,0.13), transparent 60%),
                linear-gradient(180deg, rgba(26,29,41,0.72), rgba(14,16,24,0.78));
    box-shadow: none;
}

/* v5：统计卡去大框，三个独立描边小框 */
.mv4-stat {
    border: none; background: transparent; box-shadow: none;
    backdrop-filter: none; -webkit-backdrop-filter: none;
    padding: 0;
}
.mv4 .stat-row { gap: 10px; }
.mv4 .stat-row__item {
    padding: 11px 4px 10px;
    border-radius: 13px;
    border: 1px solid rgba(203,164,78,0.24);
    background: linear-gradient(180deg, rgba(26,29,41,0.66), rgba(13,15,23,0.72));
}
.mv4 .stat-row__item + .stat-row__item { border-left: 1px solid rgba(203,164,78,0.24); }

.mv4-card {
    padding: 0;
    border: none; background: transparent; box-shadow: none;
    backdrop-filter: none; -webkit-backdrop-filter: none;
}
/* v5：服务行由卡内发丝行改回独立描边按键框 */
.mv4-card .gc-list__item {
    padding: 12px 13px;
    margin-bottom: 9px;
    border: 1px solid rgba(203,164,78,0.2);
    border-radius: 13px;
    background: linear-gradient(165deg, rgba(28,31,43,0.5), rgba(12,13,20,0.62));
}
.mv4-card .gc-list__item:last-child { margin-bottom: 0; }
.mv4-foot {
    margin-top: auto; padding: 8px 0 2px;
    text-align: center; font-size: 10.5px; letter-spacing: 2px; color: var(--text-faint);
}

/* ---------------- v4 单屏适配降级（与 layout.css fit-tight/fit-mini 同级） ---------------- */
.page-enter.fit-tight .pv4-ritual { margin-bottom: 8px; }
.page-enter.fit-tight .pv4-compass { width: 96px; height: 96px; }
.page-enter.fit-tight .pv4-title { font-size: 22px; }
.page-enter.fit-tight .pv4-btn { height: 42px; }

.page-enter.fit-mini .pv4-ritual { margin-bottom: 6px; }
.page-enter.fit-mini .pv4-compass { width: 80px; height: 80px; margin-bottom: 6px; }
.page-enter.fit-mini .pv4-compass__halo { inset: -22px; }
.page-enter.fit-mini .pv4-compass__r1 { inset: -8px; }
.page-enter.fit-mini .pv4-compass__r2 { inset: -15px; }
.page-enter.fit-mini .pv4-title { font-size: 20px; }
.page-enter.fit-mini .pv4-sub { font-size: 10.5px; }
.page-enter.fit-mini .pv4-btn { height: 40px; }
.page-enter.fit-mini .pv4-foot { margin-top: 6px; }

.page-enter.fit-tight .tv4-feature { padding: 11px 6px 9px; margin-bottom: 10px; }
.page-enter.fit-tight .tv4-grid { gap: 8px; }
.page-enter.fit-tight .tv4-cell { padding: 10px 6px 9px; }
.page-enter.fit-mini .tv4-feature { padding: 9px 6px 8px; margin-bottom: 8px; gap: 5px; }
.page-enter.fit-mini .tv4-feature .tool-cell__ico { width: 40px; height: 40px; }
.page-enter.fit-mini .tv4-feature__desc { display: none; }
.page-enter.fit-mini .tv4-cell .tool-cell__ico { width: 38px; height: 38px; }
.page-enter.fit-mini .tv4-note { margin-top: 9px; padding: 10px 12px; }
.page-enter.fit-mini .tv4-note p { font-size: 11px; line-height: 1.6; }

.page-enter.fit-mini .mv4-avatar { width: 46px; height: 46px; }
.page-enter.fit-mini .mv4-avatar .avatar { width: 42px; height: 42px; }
.page-enter.fit-mini .mv4-card .gc-list__item { padding: 9px 4px; }

@media (prefers-reduced-motion: reduce) {
    .pv4-compass__disc, .pv4-compass__r1, .pv4-compass__r2,
    .pv4-compass__halo, .mv4-avatar__ring { animation: none; }
}

/* ============================================================
   v6 · 排盘页极简三行式（参考成熟命理 App）
   姓名+性别一行 / 出生时间 / 出生地点（可选），发丝线分行；
   历法切换、晚子时、真太阳时全部收进时间选择器渐进披露
   ============================================================ */
.pv4.pv4--lite {
    justify-content: flex-start;
    padding: 8px 20px 10px;
}
.pv4--lite .pv4-ritual { margin-bottom: 16px; }
.pv4--lite .pv4-compass { width: 94px; height: 94px; margin-bottom: 8px; }
.pv4--lite .pv4-compass__halo { inset: -24px; }
.pv4--lite .pv4-compass__r1 { inset: -9px; }
.pv4--lite .pv4-compass__r2 { inset: -16px; }
.pv4--lite .pv4-title { font-size: 22px; letter-spacing: 3px; }
.pv4--lite .pv4-sub { margin-top: 5px; font-size: 11px; letter-spacing: 2px; }

.pl-form { flex: 1 1 auto; display: flex; flex-direction: column; min-height: 0; }

/* 发丝线行：label 左、值/输入右 */
.pl-row {
    display: flex; align-items: center; gap: 10px;
    min-height: 52px; padding: 0 2px;
    border-bottom: 1px solid rgba(203,164,78,0.18);
}
.pl-row--link { cursor: pointer; }
.pl-row--link:active .pl-label { color: var(--gold-200); }
.pl-label {
    flex: none; font-size: 15.5px; font-weight: 600; letter-spacing: 1px;
    color: var(--gold-100); white-space: nowrap;
}
.pl-opt { font-style: normal; font-size: 12px; font-weight: 400; color: var(--text-faint); margin-left: 3px; letter-spacing: 0; }
.pl-input {
    flex: 1 1 auto; min-width: 0; height: 100%;
    border: none; background: transparent; padding: 0;
    font-size: 14.5px; color: var(--text-main); text-align: right;
}
.pl-input::placeholder { color: var(--text-faint); }
.pl-input:focus { outline: none; }

/* 性别：行尾胶囊分段（男/女） */
.pl-gender {
    flex: none; display: flex; align-items: center; gap: 2px;
    padding: 3px; border-radius: 999px;
    border: 1px solid rgba(203,164,78,0.38);
    background: rgba(13,15,23,0.55);
}
.pl-gender__btn {
    height: 32px; min-width: 50px; padding: 0 15px;
    border: none; border-radius: 999px; background: transparent;
    font-size: 13.5px; letter-spacing: 3px; text-indent: 3px;
    color: var(--text-sub); cursor: pointer;
}
.pl-gender__btn.on {
    color: var(--text-on-gold); font-weight: 600;
    background: linear-gradient(180deg, var(--gold-200), var(--gold-400));
    box-shadow: 0 2px 8px rgba(203,164,78,0.32), inset 0 1px 0 rgba(255,250,230,0.5);
}

/* 值列：历法小徽标 + 日期 + 时辰 */
.pl-value {
    flex: 1 1 auto; min-width: 0;
    display: flex; align-items: center; justify-content: flex-end; gap: 2px;
    font-size: 14px; color: var(--text-main);
    white-space: nowrap; overflow: hidden;
}
/* 子 span 需可收缩并省略号截断：否则窄屏下日期/时辰被硬裁切且无提示 */
.pl-value > span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.pl-value.pan-region__text--empty { color: var(--text-faint); }
#fTimeText.pan-birth__time { color: var(--gold-200); font-weight: 600; letter-spacing: 1px; }
#fTimeText.pan-birth__time--empty { color: var(--text-faint); font-weight: 400; }
.pl-cal {
    font-style: normal; margin-right: 9px; padding: 3px 7px;
    font-size: 10px; line-height: 1; border-radius: 5px; letter-spacing: 1px;
    color: var(--gold-200);
    border: 1px solid rgba(203,164,78,0.45);
    background: rgba(203,164,78,0.08);
}
.pl-sep { font-style: normal; margin: 0 7px; color: var(--text-faint); }
.pl-go { flex: none; margin-left: 3px; font-size: 21px; line-height: 1; color: var(--gold-500); }

/* 主钮沉底（与参考稿一致：三行在上、按钮在下） */
.pl-btn { margin-top: auto; }
.pl-foot { margin-top: 12px; }

/* 时间选择器底部：高级选项（晚子时仅 23 点出现；真太阳时常驻） */
.dtp-opts { display: flex; gap: 8px; margin-top: 10px; }
.dtp-opt {
    flex: 1 1 0; min-width: 0;
    display: flex; align-items: center; justify-content: space-between; gap: 8px;
    padding: 8px 11px; border-radius: 11px;
    border: 1px solid rgba(190,196,214,0.14);
    background: rgba(20,22,32,0.5);
}
.dtp-opt__txt {
    display: flex; flex-direction: column; gap: 2px;
    font-size: 13px; letter-spacing: 1px; color: var(--text-main);
}
.dtp-opt__txt em { font-style: normal; font-size: 10.5px; letter-spacing: 0; color: var(--text-faint); }
.dtp-opt .pan-tip { font-size: 10.5px; line-height: 1.4; color: var(--text-faint); }

/* 小屏降级：行更紧、星盘更小 */
.page-enter.fit-tight .pl-row { min-height: 47px; }
.page-enter.fit-tight .pl-label { font-size: 14.5px; }
.page-enter.fit-tight .pl-btn { margin-top: auto; }
.page-enter.fit-mini .pl-row { min-height: 43px; }
.page-enter.fit-mini .pl-label { font-size: 14px; }
.page-enter.fit-mini .pl-gender__btn { min-width: 44px; padding: 0 12px; }
.page-enter.fit-mini .pl-value { font-size: 13px; }
.page-enter.fit-mini .pl-foot { margin-top: 9px; }

/* ============================================================
   v7 · 全站布局精修：空间节奏 / 密度分级 / 区块呼吸 / 对齐统一
   依据 586×622 视口实测：排盘残留金边卡、工具须知被裁 49px、
   档案空态霸占 282px 顶出历史、我的服务行侧压 4px 且溢出 52px
   ============================================================ */

/* ---------- 排盘：彻底拆除 .pan-card 残留金边卡 + 祥云角花 ---------- */
/* 注意：.page-enter 与 .pv4--lite 在同一元素，选择器不可加空格 */
.page-enter.pv4--lite .pl-form.pan-card {
    border: none; background: transparent; box-shadow: none;
    border-radius: 0; padding: 0; margin: 0;
}
.page-enter.pv4--lite .pl-form.pan-card::before,
.page-enter.pv4--lite .pl-form.pan-card::after { content: none; }
.pv4--lite .pl-input { padding-right: 6px; }
.pv4--lite .pl-row .pl-gender { margin-left: 4px; }
.pv4--lite .pl-btn { padding-top: 0; }

/* ---------- 工具：顶句居中 + 纵向压缩，整页同屏固定显示 ---------- */
/* 顶栏留白由 .app-view 的 14px 统一提供，页内不再叠加，消除顶部双重留白 */
.tv4 { padding: 2px 14px 6px; }
.tv4-subline { margin: 0 2px 10px; text-align: center; }
.tv4-feature { padding: 10px 6px 8px; margin-bottom: 9px; }
.tv4-feature .tool-cell__ico { width: 42px; height: 42px; }
.tv4-feature .tool-cell__ico svg { width: 21px; height: 21px; }
.tv4-feature__name { line-height: 1.3; }
/* 宫格只伸不缩：高屏时行距均分剩余空间（整页铺满不留底部空白），
   矮屏时保持内容高度，交给 fit-tight/fit-mini 逐级降级 */
.tool-page .tv4-grid { flex: 1 0 auto; align-content: space-between; }
.tv4-grid { gap: 8px; }
.tv4-cell { gap: 5px; padding: 9px 6px 8px; }
.tv4-cell .tool-cell__ico { width: 36px; height: 36px; }
.tv4-cell .tool-cell__ico svg { width: 18px; height: 18px; }
.tv4-note { margin-top: 9px; padding: 0 2px; }
.tv4-note__t { font-size: 12px; letter-spacing: 2px; }
.tv4-note p { margin-top: 4px; font-size: 10.5px; line-height: 1.55; }
.page-enter.fit-tight .tv4-feature { padding: 9px 6px 7px; }
.page-enter.fit-tight .tv4-cell { padding: 8px 6px 7px; }
.page-enter.fit-mini .tv4-note { margin-top: 7px; padding: 0 2px; }

/* ---------- 档案：空态回归自然高度，历史区不被顶出屏 ---------- */
.av4-add { padding: 11px 14px; margin-bottom: 13px; }
.av4-add__ico { width: 34px; height: 34px; }
.av4-add__ico svg { width: 17px; height: 17px; }
.av4 #archiveList { flex: 0 1 auto; min-height: 0; margin-bottom: 2px; }
.av4 #archiveList > .gc-card { flex: none; }
.av4 #archiveList > .gc-card .empty {
    flex: none; justify-content: center;
    padding: 34px 0 30px;
}
.av4-hist { margin-top: 4px; }

/* ---------- 我的：区块间拉开呼吸，行内收紧不挤边 ---------- */
.mv4-profile { padding: 2px 2px 10px; }
.mv4 .vip-banner { margin-top: 2px; margin-bottom: 12px; }
.mv4-stat { margin-bottom: 12px; }
.mv4 .stat-row__item { padding: 10px 4px 9px; }
.mv4 .av4-sect { margin-bottom: 8px; }
.mv4-card .gc-list__item { padding: 8px 13px; margin-bottom: 7px; }
.mv4-card .gc-list__name { line-height: 1.3; }
.mv4-card .gc-list__desc { margin-top: 2px; line-height: 1.35; }
.page-enter.fit-tight .mv4 .vip-banner { margin-bottom: 10px; }
.page-enter.fit-tight .mv4-stat { margin-bottom: 9px; }
.page-enter.fit-tight .mv4 .av4-sect { margin-bottom: 7px; }
.page-enter.fit-tight .mv4-card .gc-list__item { padding: 7px 12px; margin-bottom: 6px; }
.page-enter.fit-mini .mv4-profile { padding-bottom: 8px; }
.page-enter.fit-mini .mv4 .vip-banner { margin-top: 0; margin-bottom: 9px; }
.page-enter.fit-mini .mv4-stat { margin-bottom: 9px; }
.page-enter.fit-mini .mv4 .av4-sect { margin-bottom: 6px; }
/* 覆盖 v4 旧规则（9px 4px 导致文字贴边） */
.page-enter.fit-mini .mv4-card .gc-list__item { padding: 6px 12px; margin-bottom: 5px; }
.mv4-foot { padding: 4px 0 2px; }

/* ---------- 时间选择器：底部高级选项紧凑化，防小屏挤压滚轮 ---------- */
.dtp-opts { gap: 8px; margin-top: 8px; }
.dtp-opt { padding: 7px 10px; }
.dtp-opt__txt { font-size: 12.5px; }
.dtp-opt__txt em { font-size: 10px; }

/* ============================================================
   v8 · 真太阳时移回主页（出生地点下方弱提示行）；五行穿搭入口
   ============================================================ */
/* 开关行：视觉弱于三条主行，无发丝线，小字说明 + 右置开关 */
.pl-switchrow {
    display: flex; align-items: center; justify-content: space-between;
    gap: 12px; padding: 8px 2px 1px;
}
.pl-switchrow__txt { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.pl-switchrow__txt > span {
    font-size: 13px; letter-spacing: 1px; color: var(--text-sub);
}
.pl-switchrow__txt .pan-tip {
    font-size: 10.5px; line-height: 1.4; color: var(--text-faint);
}
/* 加出开关行后，排盘仪式区与行高微收，保证按钮不溢出 */
.pv4--lite .pv4-ritual { margin-bottom: 13px; }
.page-enter.fit-tight .pl-switchrow { padding-top: 6px; }
.page-enter.fit-mini .pl-switchrow { padding: 4px 2px 0; }
.page-enter.fit-mini .pl-switchrow__txt > span { font-size: 12.5px; }
.page-enter.fit-mini .pl-switchrow__txt .pan-tip { font-size: 10px; }

/* 弹层仅晚子时时：单选项自然占满整行 */
.dtp-opts #nightZiRow { flex: 1 1 auto; }

/* ============================================================
   v9 · 专业细盘与解读文字排版升级
   干支大字与十神小字拉开两级以上；详情标签淡金小框；段落呼吸感
   ============================================================ */
/* —— 命盘表格：干支 26px 压阵，十神 11px 退居辅助，表头再小半档 —— */
.gz-char { font-size: 26px; }
/* 藏干必须明显小于天干/地支：本块 .gz-char 的 26px 在同特异性下覆盖了前面 --mid 的 16px，
   导致藏干与天干同大（实测截图反馈）；在此重申小字号，靠级联顺序取胜 */
.gz-char--mid { font-size: 14px; }
.gz-god { display:inline-block; font-size: var(--fs-3xs); line-height: var(--lh-tight); color: var(--paper-sub); letter-spacing: 1px; }
.gz-th { font-size: var(--fs-xs); letter-spacing: 2px; }

/* —— 详情行：标签小框 + 值胶囊，全页一套金色款式（不再按底色换色，避免两种风格混排） —— */
.pro-kv-row { display:flex; flex-wrap:wrap; gap:5px 16px; align-items:flex-start; }
.pro-kv { display:inline-flex; align-items:baseline; gap:8px; min-width:0; }
.pro-kv__k { flex:none; font-style:normal; font-size:var(--fs-3xs); line-height:1; letter-spacing:1px; color:var(--gold-200); padding:3px 7px; border:1px solid rgba(212,175,55,.26); border-radius:5px; background:rgba(212,175,55,.06); }
.pro-kv__v { min-width:0; font-size:var(--fs-md); line-height:var(--lh-snug); color:var(--text-main); }
.pro-kv__v--chips { display:flex; flex-wrap:wrap; gap:4px 5px; }
.liuyue-detail__title { font-size:var(--fs-lg); line-height:var(--lh-tight); font-weight:var(--fw-bold); color:var(--paper-gold); letter-spacing:var(--ls-base); }

/* 详情行留白：原 4px 太挤 */
.pro-line__row { margin-top: 8px; }
.liuyue-detail { gap: 8px; padding: 11px 12px; }

/* —— 神煞列表：神煞名淡金小胶囊，行间留白加大 —— */
.ss-list { gap: 10px; }
.ss-item__ss { gap: 5px 6px; padding-top: 3px; }
.ss-item__tag { padding:2px 8px; border:1px solid rgba(212,175,55,.22); border-radius:5px; background:rgba(212,175,55,.05); font-size:var(--fs-sm); line-height:var(--lh-snug); color:var(--gold-200); }

/* —— 解读报告与规则长文：字号、行距、段距同步放开 —— */
.rp-p { font-size: var(--fs-lg); line-height: 2.15; letter-spacing: .4px; margin-bottom: 15px; }
.rp-ch { padding: 19px 18px 17px; }
.rp-ch__h { margin-bottom: 14px; }
.detail-text { font-size: var(--fs-md); line-height: 2; letter-spacing: .3px; }
.detail-text + .detail-text { margin-top: 10px; }

