/* mingtu.css · 由 split_frontend.py 自功能样张拆分，勿手改 */
:root{
  --bg:#eef5f1; --bg2:#e3ece7; --card:#ffffff; --card2:#f3f7f5; --card3:#e9efeb;
  --bd:#d6e4dc; --bd2:#c2d3c9;
  --t1:#1f2a24; --t2:#4f5d54; --t3:#8a958d; --t4:#aab4ad;
  --gold:#d4a857; --gold2:#b8893a;
  --mu:#4ade80; --huo:#f87171; --tu:#fbbf24; --jin:#aab4ad; --shui:#60a5fa;
  --xi:#34d399; --ji:#f87171; --ping:#94a3b8;
  --ease-out: cubic-bezier(0.23,1,0.32,1);
  --ease-in-out: cubic-bezier(0.77,0,0.175,1);
  --ease-drawer: cubic-bezier(0.32,0.72,0,1);
  --dur-press: 120ms;
  --dur-fast: 160ms;
  --dur-base: 220ms;
  --dur-slow: 400ms;
}
*{margin:0;padding:0;box-sizing:border-box}
body{
  background:var(--bg);
  color:var(--t1);
  font-family:"PingFang SC","Microsoft YaHei","Hiragino Sans GB",system-ui,sans-serif;
  font-size:15px; line-height:1.75;
  -webkit-font-smoothing:antialiased;
}
.wrap{max-width:1080px;margin:0 auto;padding:0 20px 100px}

/* ══════ 顶栏 ══════ */
.topbar{
  position:sticky;top:0;z-index:50;
  background:rgba(238,245,241,.92);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--bd);
}
.topbar-in{max-width:1080px;margin:0 auto;padding:14px 20px;display:flex;align-items:center;justify-content:space-between}
.brand{display:flex;align-items:center;gap:11px}
.seal{
  width:34px;height:34px;border-radius:7px;
  background:linear-gradient(145deg,#9e2b25,#6d1a16);
  display:flex;align-items:center;justify-content:center;
  font-size:17px;font-weight:700;color:#f5e6d3;letter-spacing:-1px;
  box-shadow:0 2px 10px rgba(158,43,37,.35);
}
.brand-t{font-size:16px;font-weight:600;letter-spacing:2px}
.brand-s{font-size:10px;color:var(--t3);letter-spacing:1px;margin-top:-2px}
.tabs{display:flex;gap:4px}
.tab{
  padding:6px 15px;border-radius:16px;font-size:12.5px;color:var(--t2);
  cursor:pointer;transition:color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out);border:1px solid transparent;
}
.tab:hover{color:var(--t1);background:var(--card2)}
.tab.on{color:#1a1a1a;background:var(--gold);font-weight:600}

/* ══════ P1-a2 · 顶栏窄屏适配（2026-09-25）══════
   成因：.topbar-in 是 flex 且**无 flex-wrap**，390px 竖屏下
   brand(~115) + 4 个 tab(~295) + #b2Chip(~130) 超出容器 ⇒ 顶栏横向溢出 77px。
   实测铁证：html.scrollWidth = 467 == #b2Chip.getBoundingClientRect().right。
   修法：flex-wrap 兜底（宁可换行，不可横滚）+ 窄屏缩字号 + 隐去副文案/uid。 ══════ */
@media(max-width:640px){
  .topbar-in{padding:10px 16px;gap:8px;flex-wrap:wrap;row-gap:6px}
  .seal{width:30px;height:30px;font-size:15px;border-radius:6px}
  .brand{gap:8px}
  .brand-t{font-size:14px;letter-spacing:1px}
  .brand-s{display:none}
  .tabs{gap:2px}
  .tab{padding:5px 10px;font-size:12px;border-radius:14px}
  .b2-chip{font-size:10.5px;padding:5px 9px;gap:5px;letter-spacing:0}
  .b2-chip-sub{display:none}
  .b2-chip .b2-uid{display:none}
  .b2-linkbtn{font-size:10.5px}
}

/* ══════ Hero ══════ */
.hero{padding:44px 0 26px;text-align:center}
.hero-badge{
  display:inline-flex;align-items:center;gap:7px;
  padding:5px 14px;border-radius:20px;
  background:rgba(212,168,87,.09);border:1px solid rgba(212,168,87,.22);
  font-size:11.5px;color:var(--gold);letter-spacing:1px;margin-bottom:18px;
}
.dot{width:5px;height:5px;border-radius:50%;background:var(--gold)}
.hero h1{font-size:30px;font-weight:800;letter-spacing:2px;margin-bottom:12px}
.hero h1 em{font-style:normal;color:var(--gold)}
.hero p{color:var(--t2);font-size:13.5px;max-width:620px;margin:0 auto;line-height:1.85}

/* 命主信息条 */
.owner{
  margin:26px auto 0;max-width:700px;
  background:var(--card);border:1px solid var(--bd);border-radius:12px;
  padding:16px 22px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
}
.owner-l{display:flex;align-items:center;gap:16px}
.avatar{
  width:46px;height:46px;border-radius:50%;
  background:linear-gradient(145deg,var(--shui),#1e40af);
  display:flex;align-items:center;justify-content:center;
  font-size:19px;font-weight:600;color:#fff;flex-shrink:0;
}
.owner-name{font-size:16px;font-weight:600}
.owner-meta{font-size:11.5px;color:var(--t3);margin-top:1px}
.owner-tags{display:flex;gap:7px;flex-wrap:wrap}
.otag{
  padding:4px 11px;border-radius:14px;font-size:11.5px;
  background:var(--card2);border:1px solid var(--bd2);color:var(--t2);
}
.otag.hl{background:rgba(212,168,87,.1);border-color:rgba(212,168,87,.3);color:var(--gold)}

/* ══════ 区块 ══════ */
.sec{margin-top:52px;scroll-margin-top:70px}
.sec-h{display:flex;align-items:baseline;gap:12px;margin-bottom:8px}
.sec-n{
  font-size:11px;color:var(--gold2);letter-spacing:2px;font-weight:600;
  padding:2px 8px;border:1px solid rgba(212,168,87,.28);border-radius:4px;flex-shrink:0;
}
.sec-t{font-size:22px;font-weight:800;letter-spacing:.5px}
/* ══════ 0.7.0-5e1 · 解读页「免费 / 收费」分区牌 ══════
   解读页现在同时承载免费内容（五法推导）与收费内容（AI 报告 + SKU），
   必须让用户在滚动到收费区**之前**就看见价签 —— 否则等于hidden收费。 */
.zone{
  display:flex;align-items:center;gap:10px;margin:34px 0 14px;
  padding:9px 14px;border-radius:8px;letter-spacing:.6px;
}
.zone-b{
  background:rgba(212,168,87,.10);border:1px solid rgba(212,168,87,.34);
}
.zone-p{
  background:linear-gradient(90deg,rgba(160,120,40,.20),rgba(212,168,87,.05));
  border:1px solid rgba(212,168,87,.52);
}
.zone-t{font-size:14.5px;font-weight:700;color:#8a6a1f}
.zone-p .zone-t{color:#6d5216}
.zone-d{font-size:12px;color:var(--t2);margin-left:auto;text-align:right;line-height:1.4}
.zone:first-of-type{margin-top:8px}
.sec-d{color:var(--t2);font-size:13.5px;margin-bottom:20px;padding-left:2px}

/* ══════ 五行色 ══════ */
.m{color:var(--mu)} .h{color:var(--huo)} .t{color:var(--tu)} .j{color:var(--jin)} .s{color:var(--shui)}

/* ══════ 命盘四柱 ══════ */
.pan-wrap{background:var(--card);border:1px solid var(--bd);border-radius:14px;overflow:hidden}
.pan-scroll{overflow-x:hidden}
table.pan{border-collapse:collapse;width:100%;table-layout:fixed}
table.pan th,table.pan td{
  border:1px solid var(--bd);padding:0;text-align:center;vertical-align:middle;
}
/* 表头行 */
table.pan thead th{
  background:var(--card2);padding:9px 6px;
  font-size:11.5px;font-weight:500;color:var(--t3);letter-spacing:2px;
}
table.pan thead th.k{color:var(--gold);letter-spacing:1px}
/* 标签列 */
table.pan td.lb{
  background:var(--card2);width:58px;padding:7px 4px;
  font-size:11px;color:var(--t3);letter-spacing:1px;
}
/* 单元格 */
table.pan td.cell{padding:9px 6px;background:var(--bg2)}
table.pan td.cell.now{background:rgba(212,168,87,.075)}
/* 干支大字 */
.gz{
  font-size:25px;font-weight:600;line-height:1.16;letter-spacing:1px;
  font-family:"Songti SC","SimSun",serif;
}
.gz .sm{font-size:13px;font-weight:400;margin-left:3px;opacity:.72;letter-spacing:0}
/* 十神小标 */
.shen{font-size:10.5px;color:var(--t3);margin-top:3px;letter-spacing:.5px}
/* 藏干 */
.cg{font-size:12px;line-height:1.62;font-family:"Songti SC","SimSun",serif}
.cg .cg-shen{font-size:9.5px;color:var(--t4);margin-left:2px}
/* 主星行 */
.zx{font-size:13.5px;padding:8px 6px;letter-spacing:1px}
.zx.day{color:var(--gold);font-weight:600}
/* 空单元格 */
.nil{color:var(--t4);font-size:15px}

/* 命盘脚注 */
.pan-foot{
  border-top:1px solid var(--bd);background:var(--card2);
  padding:12px 18px;display:flex;gap:26px;flex-wrap:wrap;
  font-size:11.5px;align-items:center;
}
.pf{display:flex;align-items:center;gap:7px}
.pf-k{color:var(--t4);letter-spacing:1px}
.pf-v{color:var(--t1)}
.pf-v b{color:var(--gold);font-weight:600}

/* ══════ P1-a · R7 命盘表手机竖屏标定（2026-09-25）══════
   成因：table.pan 原设 min-width:720px + .pan-scroll{overflow-x:auto}
   ⇒ 390px 竖屏只能看到 4 列（日期/流年/大运/年柱），月柱/日柱/时柱必须横向滑动。
   修法：table-layout:fixed + width:100% ⇒ 永不横向溢出（fixed 布局不会撑破容器）；
   字号按 350px 可用宽标定（.wrap padding 0 20px ⇒ 390-40=350px，标签列 44px 后每列约 51px）。
   参考基准：问真八字 7 列铺满全宽、零横滚（用户截图 2026-09-25）。 ══════ */
@media(max-width:640px){
  table.pan th:first-child{width:44px}
  table.pan thead th{padding:7px 2px;font-size:10.5px;letter-spacing:0}
  table.pan td.lb{padding:6px 2px;font-size:10px;letter-spacing:0}
  table.pan td.cell{padding:6px 2px}
  .gz{font-size:20px;letter-spacing:0}
  .zx{font-size:11.5px;padding:6px 2px;letter-spacing:0}
  .cg{font-size:11px;line-height:1.5}
  .cg .cg-shen{font-size:9px;margin-left:1px}
  .shen{font-size:9.5px;letter-spacing:0;margin-top:2px}
  .pan-foot{padding:10px 12px;gap:14px;font-size:11px}
}

/* ══════ 大运流年 ══════ */
.dy-wrap{background:var(--card);border:1px solid var(--bd);border-radius:14px;overflow:hidden}
/* 元信息条 */
.dy-meta{
  display:grid;grid-template-columns:repeat(4,1fr);
  border-bottom:1px solid var(--bd);background:var(--card2);
}
.dym{padding:12px 16px;border-right:1px solid var(--bd);text-align:center}
.dym:last-child{border-right:none}
.dym-k{font-size:10.5px;color:var(--t4);letter-spacing:2px;margin-bottom:4px}
.dym-v{font-size:13px;color:var(--t1);font-weight:500}
.dym-v em{font-style:normal;color:var(--gold)}
.dy-scroll{overflow-x:auto}
table.dy{border-collapse:collapse;width:100%;table-layout:fixed}
table.dy td{
  border:1px solid var(--bd);text-align:center;vertical-align:middle;
  padding:8px 4px;background:var(--bg2);
}
table.dy td.rl{
  background:var(--card2);width:66px;
  font-size:11px;color:var(--t3);letter-spacing:2px;
}
table.dy td.rl small{display:block;font-size:9px;color:var(--t4);letter-spacing:0;margin-top:2px}
/* 大运格 */
.dc{cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out);position:relative;padding:10px 4px}
.dc:hover{background:var(--card3)}
.dc.sel{background:rgba(212,168,87,.11);box-shadow:inset 0 0 0 1.5px rgba(212,168,87,.5)}
.dc.sel::after{
  content:"";position:absolute;left:50%;transform:translateX(-50%);
  bottom:-1px;width:0;height:0;
  border-left:6px solid transparent;border-right:6px solid transparent;
  border-bottom:7px solid var(--gold);
}
.dc-yr{font-size:10.5px;color:var(--t4);margin-bottom:5px;letter-spacing:.5px}
.dc-age{font-size:9.5px;color:var(--t4);margin-bottom:4px}
.dc-gz{font-size:20px;font-weight:600;line-height:1.2;font-family:"Songti SC","SimSun",serif}
.dc-sh{font-size:10px;color:var(--t3);margin-top:3px}
.dc-xj{font-size:9.5px;margin-top:4px;font-weight:600;letter-spacing:.5px}
.dc.isnow .dc-yr{color:var(--gold)}
.dc.isnow .dc-gz{font-size:21px}
/* 流年格 */
.yc{cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out);padding:9px 4px}
.yc:hover{background:var(--card3)}
.yc.sel{background:rgba(96,165,250,.13);box-shadow:inset 0 0 0 1.5px rgba(96,165,250,.55)}
.yc-yr{font-size:10px;color:var(--t4);margin-bottom:4px}
.yc-gz{font-size:16.5px;font-weight:600;font-family:"Songti SC","SimSun",serif;line-height:1.25}
.yc-sh{font-size:9.5px;color:var(--t3);margin-top:2px}
.yc-xj{font-size:9.5px;margin-top:3px;font-weight:600}
.yc.isnow .yc-yr{color:var(--gold)}
/* 流月格（独立 12 格表） */
.mc{cursor:pointer;padding:9px 3px;transition:background-color var(--dur-fast) var(--ease-out)}
.mc:hover{background:var(--card2)}
.mc.sel{background:rgba(184,134,11,.10);box-shadow:inset 0 0 0 1.5px rgba(184,134,11,.45)}
.mc-y{font-size:10.5px;color:var(--t3);margin-bottom:4px;letter-spacing:.5px}
.mc-jq{font-size:10px;color:var(--t3);margin-bottom:2px;letter-spacing:.5px}
.mc-rg{
  font-size:9.5px;color:var(--t4);margin-bottom:3px;
  font-variant-numeric:tabular-nums;letter-spacing:-.2px;
}
.mc-rg.x{color:#7a6a4a}          /* 跨入 2027 年的月份 */
.mc-rg b{color:var(--t3);font-weight:400}
.mc-dt{font-size:9px;color:var(--t4);margin-bottom:3px}
.mc-gz{font-size:16px;font-weight:600;font-family:"Songti SC","SimSun",serif;line-height:1.25}
.mc-xj{font-size:10.5px;margin-top:3px;font-weight:600}
.mc-ge{margin-top:4px}
.mc.isnow{background:rgba(212,168,87,.09)}
.mc.isnow .mc-y{color:var(--gold)}
.dy12{}                            /* min-width 已移除：fixed 布局自动适配任意宽度 */
.dy12 .mc{}                        /* 勿写死百分比：会与行标签列叠加导致溢出 */
/* 独立流月表容器 */
.mon-wrap{border-top:1px solid var(--bd)}
/* 十二宫底条 */
.sg-bar{
  border-top:1px solid var(--bd);background:var(--card2);
  padding:11px 18px;display:flex;gap:10px;flex-wrap:wrap;align-items:center;
}
.sg-lb{font-size:10.5px;color:var(--t4);letter-spacing:2px;margin-right:2px}
.sg{
  padding:3px 12px;border-radius:4px;font-size:12px;font-weight:600;
  font-family:"Songti SC","SimSun",serif;
}
.sg.w{background:rgba(248,113,113,.16);color:#f87171;border:1px solid rgba(248,113,113,.3)}
.sg.x{background:rgba(251,191,36,.14);color:#fbbf24;border:1px solid rgba(251,191,36,.28)}
.sg.r{background:rgba(74,222,128,.13);color:#4ade80;border:1px solid rgba(74,222,128,.26)}
.sg.q{background:rgba(96,165,250,.13);color:#60a5fa;border:1px solid rgba(96,165,250,.26)}
.sg.d{background:rgba(226,232,240,.1);color:#94a3b8;border:1px solid rgba(226,232,240,.2)}
.sg-note{font-size:10.5px;color:var(--t4);margin-left:auto}

/* 图例 */
.legend{display:flex;gap:20px;flex-wrap:wrap;margin-top:14px;padding:0 4px}
.lg{display:flex;align-items:center;gap:7px;font-size:11.5px;color:var(--t2)}
.lgi{width:22px;height:4px;border-radius:2px}
.lg-box{width:13px;height:13px;border-radius:3px}

/* ══════ P1-b · R8 三层时间轴手机竖屏标定（2026-09-25）══════
   成因：table.dy{min-width:900px} + .dy12{min-width:1060px} ⇒ 390px 竖屏必须左右滑；
        且格内信息比问真多 2 层（评分 + 建议短语）⇒ 去掉 min-width 后格宽仍不够。
   修法：fixed 布局自动均分 + 窄屏隐藏格内建议短语（已在即时解读区/走势图/面板副标题呈现）。
   宽度账（390px 视口 ⇒ .wrap 350px ⇒ 减边框 348px）：
        大运/流年：标签列 24px + 10 格 = 每格 32px（干支 14px 双字 28px ✓）
        流月：     标签列 24px + 12 格 = 每格 27px（干支 12px 双字 24px ✓） ══════ */
@media(max-width:640px){
  table.dy td{padding:5px 1px}
  table.dy td.rl{width:24px;padding:4px 0;font-size:9.5px;letter-spacing:0}
  table.dy td.rl small{display:none}
  /* 建议短语：窄屏移出格子（信息在 .qi 即时解读 / 走势图 / 面板副标题已呈现） */
  .dc-ge,.yc-ge,.mc-ge{display:none}
  /* 大运格 */
  .dc{padding:5px 1px}
  .dc-yr{font-size:8.5px;margin-bottom:2px;letter-spacing:0}
  .dc-age{font-size:8px;margin-bottom:2px}
  .dc-gz{font-size:14px;letter-spacing:0}
  .dc-sh{font-size:8.5px;margin-top:2px;letter-spacing:0}
  .dc-xj{font-size:8.5px;margin-top:2px;letter-spacing:0}
  .dc.isnow .dc-gz{font-size:15px}
  /* 流年格 */
  .yc{padding:5px 1px}
  .yc-yr{font-size:8.5px;margin-bottom:2px;letter-spacing:0}
  .yc-gz{font-size:14px;letter-spacing:0}
  .yc-sh{font-size:8.5px;margin-top:2px;letter-spacing:0}
  .yc-xj{font-size:8.5px;margin-top:2px;letter-spacing:0}
  /* 流月格（12 格，最窄） */
  .mc{padding:4px 0}
  .mc-y{font-size:8.5px;margin-bottom:2px;letter-spacing:0}
  .mc-gz{font-size:12px;letter-spacing:0}
  .mc-jq{font-size:8px;margin-bottom:1px;letter-spacing:0}
  .mc-rg{font-size:7.5px;margin-bottom:2px;letter-spacing:-.3px;line-height:1.25}
  .mc-xj{font-size:8.5px;margin-top:2px}
  .mc-dt{font-size:7.5px;margin-bottom:2px}
  /* 元信息条与底条在窄屏进一步压缩 */
  .dym{padding:9px 8px}
  .dym-k{letter-spacing:1px;margin-bottom:2px}
  .sg-bar{padding:9px 12px;gap:7px}
  .sg{padding:3px 9px;font-size:11.5px}
  .sg-note{margin-left:0;flex-basis:100%}
}

/* ══════ 走势图 ══════ */
.chart-card{
  background:var(--card);border:1px solid var(--bd);border-radius:14px;
  padding:20px 20px 16px;margin-top:16px;
}
.chart-h{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin-bottom:4px;flex-wrap:wrap}
.chart-t{font-size:16px;font-weight:700;letter-spacing:.5px}
.chart-t small{font-size:11.5px;color:var(--t3);font-weight:400;margin-left:8px;letter-spacing:0}
.chart-sub{font-size:11.5px;color:var(--t3);margin-bottom:14px}
.chart-scroll{/* P2-a：原 overflow-x:auto 已去掉（见下方 svg.chart 注释） */}
/* P2-a：去掉 min-width:760px。三张图改为「按容器真实宽度出图」
   （1 viewBox 单位 = 1 CSS px，几何由 JS 的 chartGeom() 计算）
   ⇒ 既不需要横滚，也不必把 1000 宽的 viewBox 压到 308px 让字号掉到 3.8px。 */
svg.chart{display:block;width:100%;height:auto}

/* ══════ 深度解读 ══════ */
.ai-wrap{
  background:var(--card);border:1px solid var(--bd);border-radius:14px;overflow:hidden;
}
.ai-head{
  background:linear-gradient(135deg,rgba(212,168,87,.11),rgba(212,168,87,.03));
  border-bottom:1px solid var(--bd);padding:16px 22px;
  display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
}
/* D5（0.4.2）· 关于「把分享按钮挤到标题同一行」—— 试过了，不做，原因留档以免反复:
   flex 的**换行判定用的是假定主尺寸**（flex-basis:auto ⇒ 内容宽 304px），
   flex-shrink 不参与换行决策 ⇒ 单靠 min-width:0 / flex-shrink 挤不动它。
   用 flex-basis:0 确实能同排，但实测 360/390 两档下副标题（内容宽 154px）会被压到
   152/182px 而**折成两行**；头部总共只省约 30px，却把一句完整的话拆开 ⇒ 净亏。
   三档实测：仅 ≥430px 时按钮自然与标题同排；360/390 上它独占一行（可接受）。 */
.ai-head-l{display:flex;align-items:center;gap:12px}
.ai-ic{
  width:36px;height:36px;border-radius:9px;flex-shrink:0;
  background:rgba(212,168,87,.15);border:1px solid rgba(212,168,87,.3);
  display:flex;align-items:center;justify-content:center;font-size:17px;
}
.ai-t{font-size:15px;font-weight:600;letter-spacing:1px}
.ai-s{font-size:11px;color:var(--t3);margin-top:1px}

/* 维度卡片 */
.dims{padding:6px 0}
.dim{border-bottom:1px solid var(--bd);padding:22px 22px}
.dim:last-child{border-bottom:none}
.dim-h{display:flex;align-items:center;gap:11px;margin-bottom:12px}
.dim-i{
  width:28px;height:28px;border-radius:7px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;font-size:14px;
  background:var(--card3);border:1px solid var(--bd2);
}
.dim-tt{font-size:16px;font-weight:700;letter-spacing:.5px}
.dim-tag{
  margin-left:auto;padding:3px 11px;border-radius:12px;font-size:11px;
  background:var(--card2);border:1px solid var(--bd2);color:var(--t2);
}
.dim-tag.xi{background:rgba(52,211,153,.11);border-color:rgba(52,211,153,.28);color:var(--xi)}
.dim-tag.ji{background:rgba(248,113,113,.11);border-color:rgba(248,113,113,.28);color:var(--ji)}
.dim-tag.ping{background:rgba(148,163,184,.1);border-color:rgba(148,163,184,.24);color:var(--ping)}
.dim-p{font-size:14.5px;color:#4f5a53;line-height:1.9;margin-bottom:12px}
.dim-p:last-child{margin-bottom:0}
.dim-p b{color:var(--gold);font-weight:600}
.dim-p .k{color:var(--t1);font-weight:600}

/* ══════ 格局态（得助 / 持平 / 假从 / 破格） ══════ */
.ge{
  display:inline-block;padding:2px 9px;border-radius:9px;
  font-size:10px;font-weight:600;letter-spacing:.5px;white-space:nowrap;
}
.ge-de{background:rgba(52,211,153,.15);color:#34d399;border:1px solid rgba(52,211,153,.34)}
.ge-ping{background:rgba(148,163,184,.13);color:#94a3b8;border:1px solid rgba(148,163,184,.28)}
.ge-jia{background:rgba(251,191,36,.14);color:#fbbf24;border:1px solid rgba(251,191,36,.32)}
.ge-po{background:rgba(248,113,113,.16);color:#f87171;border:1px solid rgba(248,113,113,.36)}
.ge-nm{color:var(--t4);background:rgba(63,63,76,.3);border:1px solid var(--bd2)}
.dc-ge,.yc-ge{margin-top:5px}

.ge-legend{display:flex;gap:15px;flex-wrap:wrap;margin-top:13px;justify-content:center}
.gl{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--t2)}
.gl-box{width:17px;height:11px;border-radius:2px}

.ge-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:15px}
.gc{background:var(--card2);border:1px solid var(--bd);border-radius:9px;padding:12px 14px}
.gc-h{font-size:11.5px;font-weight:600;margin-bottom:6px;display:flex;align-items:center;gap:6px}
.gc-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.gc-b{font-size:11px;color:var(--t3);line-height:1.72}

/* SVG 矢量条形图 */
.svg-bar{width:100%;height:auto;display:block;overflow:visible}

/* ══════ 可视化组件 ══════ */
.viz{
  background:var(--card2);border:1px solid var(--bd);border-radius:10px;
  padding:16px 18px;margin:14px 0 4px;
}
.viz-t{
  font-size:11px;color:var(--t4);letter-spacing:2px;margin-bottom:13px;
  display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;
}
.viz-t em{font-style:normal;color:var(--t3);letter-spacing:0;font-size:10.5px}

/* 横向能量条 */
.bar-row{display:flex;align-items:center;gap:11px;margin-bottom:9px}
.bar-row:last-child{margin-bottom:0}
.bar-lb{
  width:60px;flex-shrink:0;font-size:12px;text-align:right;
  display:flex;align-items:center;justify-content:flex-end;gap:5px;
}
.bar-lb b{font-family:"Songti SC","SimSun",serif;font-size:14px;font-weight:600}
.bar-tr{flex:1;height:15px;background:var(--bg);border-radius:8px;overflow:hidden;position:relative}
.bar-fl{height:100%;border-radius:8px;transition:width .6s ease}
.bar-v{width:64px;flex-shrink:0;font-size:10.5px;color:var(--t3);text-align:left}
.bar-v b{font-size:12px;font-weight:600}

/* 失衡标记 */
.bar-tr .mid{position:absolute;top:0;bottom:0;width:1px;background:var(--bd2)}
.flag{
  display:inline-block;padding:1px 7px;border-radius:9px;font-size:9.5px;
  margin-left:6px;vertical-align:middle;letter-spacing:.5px;
}
.flag.hi{background:rgba(248,113,113,.15);color:#f87171}
.flag.lo{background:rgba(96,165,250,.15);color:#60a5fa}
.flag.ok{background:rgba(52,211,153,.14);color:#34d399}

/* 雷达图 */
.radar-box{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.radar-legend{flex:1;min-width:190px}
.rl-row{display:flex;align-items:center;gap:9px;margin-bottom:8px;font-size:12px}
.rl-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.rl-nm{width:52px;color:var(--t2);flex-shrink:0}
.rl-v{color:var(--t1);font-weight:600;width:28px}
.rl-d{color:var(--t3);font-size:11px;line-height:1.6}

/* 双列匹配条 */
.match-row{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.match-row:last-child{margin-bottom:0}
.mt-lb{width:76px;flex-shrink:0;font-size:11.5px;color:var(--t2);text-align:right}
.mt-tr{flex:1;height:9px;background:var(--bg);border-radius:5px;overflow:hidden}
.mt-fl{height:100%;border-radius:5px}
.mt-pct{width:34px;flex-shrink:0;font-size:10.5px;color:var(--t3);text-align:right}

/* 阶段条 */
.phase-row{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.ph-lb{width:88px;flex-shrink:0;font-size:11.5px;color:var(--t2);text-align:right}
.ph-tr{flex:1;height:22px;background:var(--bg);border-radius:5px;position:relative;overflow:hidden}
.ph-fl{position:absolute;top:0;bottom:0;border-radius:5px;display:flex;align-items:center;justify-content:center}
.ph-fl span{font-size:10px;font-weight:600;color:#0a0a0e;letter-spacing:.5px}

/* 温度计 */
.temp{margin-bottom:11px}
.temp-h{display:flex;justify-content:space-between;font-size:11.5px;margin-bottom:5px}
.temp-h b{font-weight:600}
.temp-tr{height:7px;background:var(--bg);border-radius:4px;overflow:hidden}
.temp-fl{height:100%;border-radius:4px}

/* 社交分层 */
.layer{display:flex;align-items:center;gap:11px;margin-bottom:9px}
.layer-n{
  width:54px;height:54px;border-radius:50%;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-size:11px;text-align:center;line-height:1.3;font-weight:600;
}
.layer-c{flex:1}
.layer-t{font-size:12.5px;color:var(--t1);font-weight:600;margin-bottom:2px}
.layer-d{font-size:11.5px;color:var(--t2);line-height:1.65}

/* 三栏要点 */
.pts{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin:14px 0 4px}
.pt{background:var(--card2);border:1px solid var(--bd);border-radius:9px;padding:13px 15px}
.pt-k{font-size:10.5px;color:var(--t4);letter-spacing:1.5px;margin-bottom:6px}
.pt-v{font-size:13px;color:#4f5a53;line-height:1.72}

/* 解读正文 */
.quote{
  background:var(--card2);border-left:2px solid var(--gold2);border-radius:0 8px 8px 0;
  padding:14px 18px;margin:14px 0;font-size:13.5px;color:#4f5a53;line-height:1.95;
}
.quote b{color:var(--gold);font-weight:600}

/* 行动建议 */
.acts{margin-top:4px}
.act{
  display:flex;gap:12px;align-items:flex-start;
  padding:12px 0;border-bottom:1px dashed var(--bd);
}
.act:last-child{border-bottom:none}
.act-n{
  width:22px;height:22px;border-radius:50%;flex-shrink:0;margin-top:1px;
  background:rgba(212,168,87,.14);border:1px solid rgba(212,168,87,.3);
  display:flex;align-items:center;justify-content:center;
  font-size:11px;color:var(--gold);font-weight:600;
}
.act-c{flex:1}
.act-t{font-size:13.5px;color:var(--t1);font-weight:600;margin-bottom:3px}
.act-d{font-size:12.5px;color:var(--t2);line-height:1.78}

/* 切换面板 */
.sw-panel{display:none}
.sw-panel.on{display:block}

/* 提示条 */
.tip{
  display:flex;gap:10px;align-items:flex-start;
  background:rgba(96,165,250,.07);border:1px solid rgba(96,165,250,.2);
  border-radius:10px;padding:13px 16px;margin-top:16px;
  font-size:12.5px;color:#a8bed4;line-height:1.8;
}
.tip b{color:#8ab4e8}

/* ══════ 页脚 ══════ */
.foot{
  margin-top:60px;padding-top:26px;border-top:1px solid var(--bd);
  text-align:center;
}
.foot-brand{font-size:13px;color:var(--gold);letter-spacing:3px;margin-bottom:8px}
.foot-tx{font-size:11.5px;color:var(--t4);line-height:1.9;max-width:660px;margin:0 auto}
.warn-box{
  margin-top:18px;padding:13px 18px;border-radius:9px;
  background:rgba(248,113,113,.06);border:1px solid rgba(248,113,113,.18);
  font-size:11.5px;color:#8a7a7a;line-height:1.85;text-align:left;max-width:760px;margin:18px auto 0;
}

@media(max-width:760px){
  .hero h1{font-size:24px}
  .dy-meta{grid-template-columns:repeat(2,1fr)}
  .dym{border-bottom:1px solid var(--bd)}
  .pts{grid-template-columns:1fr}
  .owner{flex-direction:column;align-items:flex-start}
}

/* ══════════ 02c 即时解读区 ══════════ */
.qi{margin-top:22px;background:linear-gradient(180deg,var(--card2),var(--card));border:1px solid var(--bd);border-radius:10px;overflow:hidden}
.qi-h{display:flex;align-items:center;gap:10px;padding:11px 16px;border-bottom:1px solid var(--bd);background:var(--card3);flex-wrap:wrap}
.qi-badge{background:linear-gradient(135deg,#b8860b,#d4a844);color:#14100a;font-size:11.5px;font-weight:800;padding:3px 11px;border-radius:20px;letter-spacing:1px;box-shadow:0 0 12px rgba(184,134,11,.35)}
.qi-hint{color:var(--t2);font-size:11.5px;letter-spacing:.3px}
.qi-body{padding:16px 18px 18px}
.qi-k{display:inline-flex;align-items:center;gap:8px;background:var(--card3);border:1px solid var(--bd2);padding:4px 12px;border-radius:6px;font-size:12px;color:var(--t2);letter-spacing:.5px;margin-bottom:11px}
.qi-k b{color:var(--gold);font-size:12.5px;letter-spacing:1px}
.qi-title{font-size:16.5px;font-weight:800;color:var(--t1);line-height:1.4;margin:2px 0 6px}
.qi-title .gz{font-family:"Songti SC","SimSun",serif;letter-spacing:1px}
.qi-tags{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 12px}
.qi-tag{font-size:11px;padding:2.5px 10px;border-radius:20px;border:1px solid var(--bd2);color:var(--t2);background:var(--bg)}
.qi-tag.hl{color:var(--gold);border-color:rgba(184,134,11,.5);background:rgba(184,134,11,.08)}
.qi-tag.good{color:#34d399;border-color:rgba(52,211,153,.4);background:rgba(52,211,153,.06)}
.qi-tag.bad{color:#f87171;border-color:rgba(248,113,113,.4);background:rgba(248,113,113,.06)}
.qi-p{font-size:13.5px;line-height:1.95;color:var(--t2);margin:0 0 6px}
.qi-p b{color:var(--t1)}
.qi-ge{display:inline-block;font-size:11.5px;font-weight:700;padding:2px 10px;border-radius:4px;margin-left:2px;letter-spacing:.3px}
.qi-ge.ge-de{background:rgba(52,211,153,.12);color:#34d399;border:1px solid rgba(52,211,153,.4)}
.qi-ge.ge-ping{background:rgba(148,163,184,.12);color:#94a3b8;border:1px solid rgba(148,163,184,.35)}
.qi-ge.ge-jia{background:rgba(251,191,36,.12);color:#fbbf24;border:1px solid rgba(251,191,36,.4)}
.qi-ge.ge-po{background:rgba(248,113,113,.12);color:#f87171;border:1px solid rgba(248,113,113,.4)}
.qi-dv{border-left:2px solid rgba(184,134,11,.45);padding:9px 13px;background:var(--bg);border-radius:0 6px 6px 0;margin:12px 0 4px;font-size:13px;color:var(--t2);line-height:1.9}
.qi-dv b{color:var(--gold)}
.qi-go{margin-top:13px;text-align:right}
.qi-go button{background:transparent;border:1px solid var(--bd2);color:var(--t2);font-size:12px;padding:6px 16px;border-radius:6px;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),transform var(--dur-press) var(--ease-out);letter-spacing:.3px}
.qi-go button:hover{border-color:var(--gold);color:var(--gold)}
.qi-empty{color:var(--t3);font-size:13px;line-height:1.9;padding:4px 2px}
.qi-empty b{color:var(--t2)}
@media(max-width:760px){
  .qi-hint{display:none}
  .qi-body{padding:13px 13px 15px}
  .qi-title{font-size:15px}
}

/* ══════ s0 基础信息输入区 ══════ */
.s0{padding:28px 28px 24px;background:linear-gradient(180deg,#ffffff 0%,#f0f5f2 100%);border:1px solid var(--bd);border-radius:14px;margin-top:32px;position:relative;overflow:hidden}
.s0::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,var(--gold) 0%,var(--gold2) 100%)}
.s0-h{display:flex;align-items:baseline;gap:14px;margin-bottom:18px}
.s0-h-n{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;background:var(--gold);color:#1a1a23;font-weight:600;font-size:13px;font-family:"Songti SC",serif}
.s0-h-t{font-size:17px;color:var(--t1);font-weight:500}
.s0-h-s{font-size:12px;color:var(--t3)}
.s0-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:14px;align-items:end}
/* ══════ 0.7.0-5f0 · C 端「结果诱饵」区 ══════ */
.s0-teaser{margin-bottom:18px;}
.s0-teaser-t{font-size:19px;font-weight:700;line-height:1.45;color:var(--t1);margin:0 0 5px;letter-spacing:-.2px;}
.s0-teaser-s{font-size:12px;color:var(--t3);margin-bottom:12px;}
.s0-teaser-card{background:var(--card);border:1px solid var(--bd);border-radius:10px;padding:12px 13px;margin-bottom:9px;}
.s0-tz{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:11px;}
.s0-tz-c{text-align:center;}
.s0-tz-l{font-size:10px;color:var(--t3);margin-bottom:2px;}
.s0-tz-g{font-size:14px;font-weight:700;color:var(--t1);font-family:"Songti SC","SimSun",serif;letter-spacing:.5px;}
.s0-tz-bar{height:2px;border-radius:1px;margin-top:4px;}
.s0-tw-r{display:flex;align-items:center;gap:7px;margin-bottom:3px;}
.s0-tw-k{font-size:10.5px;color:var(--t2);width:12px;flex:none;}
.s0-tw-b{flex:1;height:4px;background:var(--card3);border-radius:2px;overflow:hidden;}
.s0-tw-b i{display:block;height:4px;border-radius:2px;}
.s0-tw-v{font-size:10.5px;color:var(--t3);width:22px;text-align:right;flex:none;}
.s0-teaser-hit{background:rgba(212,168,87,.10);border:1px solid rgba(184,134,11,.28);border-radius:10px;padding:11px 13px;margin-bottom:8px;}
.s0-teaser-hit-t{font-size:12.5px;font-weight:700;color:#8a6a1f;margin-bottom:3px;}
.s0-teaser-hit-d{font-size:12px;color:var(--t2);line-height:1.65;}
.s0-teaser-next{font-size:11.5px;color:var(--t3);text-align:center;padding-top:2px;}
.s0-fld{display:flex;flex-direction:column;gap:5px}
.s0-fld.col-2{grid-column:span 2}
.s0-fld.col-3{grid-column:span 3}
.s0-fld.col-4{grid-column:span 4}
.s0-fld.col-6{grid-column:span 6}
.s0-lbl{font-size:11.5px;color:var(--t3);letter-spacing:.5px}
.s0-inp,.s0-sel{height:36px;padding:0 12px;background:#eef4f0;border:1px solid var(--bd);border-radius:7px;color:var(--t1);font-size:13.5px;font-family:inherit;outline:none;transition:border-color var(--dur-fast) var(--ease-out)}
.s0-inp:focus,.s0-sel:focus{border-color:var(--gold)}
.s0-sel{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'><path fill='%239a9aa8' d='M6 8L0 0h12z'/></svg>");background-repeat:no-repeat;background-position:right 10px center;background-size:10px;padding-right:28px}
.s0-tabs{display:flex;gap:0;background:#eef4f0;border:1px solid var(--bd);border-radius:7px;overflow:hidden;height:36px;align-items:center}
.s0-tab{flex:1;text-align:center;padding:0 10px;font-size:12.5px;color:var(--t3);cursor:pointer;height:100%;display:flex;align-items:center;justify-content:center;transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),transform var(--dur-press) var(--ease-out)}
.s0-tab.active{background:var(--gold);color:#1a1a23;font-weight:500}
.s0-bz{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.s0-bz-col{display:flex;gap:4px}
.s0-bz-col select{flex:1;min-width:0}
.s0-bz-lbl{font-size:11px;color:var(--t3);margin-bottom:4px;text-align:center}
.s0-row{display:flex;align-items:center;gap:10px;margin-top:14px;padding-top:14px;border-top:1px dashed var(--bd)}
.s0-switch{position:relative;display:inline-flex;align-items:center;gap:8px;cursor:pointer;user-select:none}
.s0-switch input{position:absolute;opacity:0;width:0;height:0}
.s0-switch .sl{width:32px;height:18px;background:#dbe5df;border-radius:10px;position:relative;transition:background-color var(--dur-fast) var(--ease-out)}
.s0-switch .sl::before{content:"";position:absolute;left:2px;top:2px;width:14px;height:14px;background:var(--t3);border-radius:50%;transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),transform var(--dur-press) var(--ease-out)}
.s0-switch input:checked+.sl{background:var(--gold)}
.s0-switch input:checked+.sl::before{left:16px;background:#1a1a23}
.s0-switch span.tx{font-size:12.5px;color:var(--t2)}
.s0-btn{height:38px;padding:0 22px;background:var(--gold);color:#1a1a23;border:0;border-radius:8px;font-size:13.5px;font-weight:500;cursor:pointer;font-family:inherit;transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),transform var(--dur-press) var(--ease-out)}
.s0-btn:hover{background:#e0bb67}
.s0-btn:disabled{opacity:.5;cursor:not-allowed}
.s0-reset{height:38px;padding:0 16px;background:transparent;color:var(--t3);border:1px solid var(--bd);border-radius:8px;font-size:12.5px;cursor:pointer;font-family:inherit}
.s0-reset:hover{color:var(--t2);border-color:var(--bd2)}
.s0-mode-block{display:none}
.s0-mode-block.on{display:grid;grid-template-columns:repeat(12,1fr);gap:14px;align-items:end}
.s0-mode-block.col-12{grid-column:span 12}
.s0-msg{margin-top:12px;padding:10px 14px;background:#f871711a;border:1px solid #f8717140;color:#f87171;border-radius:7px;font-size:12.5px;display:none;opacity:0;transform:translateY(6px);transition:opacity var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out);transition-behavior:allow-discrete}
.s0-msg.show{display:block;opacity:1;transform:none}
.s0-msg.ok{background:#34d3991a;border-color:#34d39940;color:#34d399}
.s0-save{margin-top:12px;display:flex;gap:8px;flex-wrap:wrap}
.s0-save-btn{padding:5px 10px;background:var(--card2);border:1px solid var(--bd);border-radius:6px;color:var(--t2);font-size:11.5px;cursor:pointer}
.s0-save-btn.on{background:var(--gold);color:#1a1a23;border-color:var(--gold)}
/* P0-R4 · 年月日时分下拉（.s0-inp 提供尺寸/焦点态，.s0-sel 提供箭头）*/
.s0-inp.s0-sel{width:100%;min-width:0}
/* ══════════ P0-UI · 首屏单行选择字段 + 滚轮弹层（参考问真）══════════ */
/* 隐藏真值源：双保险（hidden 属性 + display:none），并确保不被栅格布局计入 */
.s0-src{display:none !important}
.s0-hint-l{display:block;font-size:11px;line-height:1.45;color:var(--t3);margin-top:2px}
/* 单行只读字段：外形对齐 .s0-inp（同高 36px / 同圆角 / 同字号），保证与「姓名」输入框齐平 */
.s0-pick{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;height:36px;padding:0 12px;background:#eef4f0;border:1px solid var(--bd);border-radius:7px;color:var(--t1);font-size:13.5px;font-family:inherit;text-align:left;cursor:pointer;transition:border-color var(--dur-fast) var(--ease-out)}
.s0-pick:hover{border-color:var(--bd2)}
.s0-pick:focus-visible{outline:2px solid var(--gold);outline-offset:1px}
.s0-pick .s0-pick-v{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.s0-pick .s0-pick-ar{flex:0 0 auto;width:7px;height:7px;border-right:1.5px solid var(--t3);border-bottom:1.5px solid var(--t3);transform:rotate(45deg) translate(-1px,-1px)}

/* 底部弹层 */
.mt-sheet{position:fixed;left:0;right:0;top:0;bottom:0;z-index:200;display:flex;flex-direction:column;justify-content:flex-end}
.mt-sheet[hidden]{display:none}
.mt-sheet-mask{position:absolute;left:0;right:0;top:0;bottom:0;background:rgba(16,20,18,.42)}
.mt-sheet-panel{position:relative;background:#fff;border-radius:14px 14px 0 0;padding-bottom:env(safe-area-inset-bottom,0);animation:mtSheetUp var(--dur-base) var(--ease-out)}
@keyframes mtSheetUp{from{transform:translateY(20px);opacity:.55}to{transform:none;opacity:1}}
.mt-sheet-bar{display:flex;align-items:center;gap:10px;height:50px;padding:0 12px;border-bottom:1px solid var(--bd)}
.mt-sheet-bar button{height:34px;padding:0 12px;border:0;background:transparent;font-family:inherit;font-size:14px;cursor:pointer;border-radius:8px}
.mt-sheet-cancel{color:var(--t3)}
.mt-sheet-title{flex:1;text-align:center;font-size:14px;color:var(--t1)}
.mt-sheet-ok{color:var(--gold);font-weight:500}

/* 滚轮：scroll-snap 对齐，容器高 216 = 6 格；上下各 90px padding 让首尾也能滚到中线 */
.mt-wheel-wrap{position:relative}
.mt-wheel{position:relative;display:flex;height:216px;padding:0 8px;overflow:hidden}
.mt-wheel::before,.mt-wheel::after{content:"";position:absolute;left:0;right:0;height:90px;pointer-events:none;z-index:2}
.mt-wheel::before{top:0;background:linear-gradient(180deg,#fff 58%,rgba(255,255,255,0))}
.mt-wheel::after{bottom:0;background:linear-gradient(0deg,#fff 58%,rgba(255,255,255,0))}
.mt-wheel-ind{position:absolute;left:10px;right:10px;top:90px;height:36px;border-top:1px solid #e8ece9;border-bottom:1px solid #e8ece9;pointer-events:none;z-index:3}
/* ⚠️ box-sizing 必须是 border-box（P0-5 实测）：
 *   用 content-box 时 height:216 是**内容盒**，再加 padding:90px 0 ⇒ clientHeight=396，
 *   而可见区只有 216（.mt-wheel overflow:hidden）⇒ scroll-snap 的 snapport 中心按 198 算、
 *   可滚动范围凭空少 180px ⇒ Chrome 把 scrollTop 从 index×36 吸附到 index×36−18，
 *   选中项落到高亮带下方 18px，且 5 列吸附时机不一致（看起来很"随机"）。
 *   判据见 tools/verify_s0_browser.js：.mt-col 的 clientHeight 必须 == 216。 */
.mt-col{flex:1;min-width:0;height:216px;overflow-y:scroll;scroll-snap-type:y mandatory;scrollbar-width:none;-ms-overflow-style:none;padding:90px 0;box-sizing:border-box;-webkit-overflow-scrolling:touch}
.mt-col::-webkit-scrollbar{display:none;width:0;height:0}
.mt-col-i{height:36px;line-height:36px;text-align:center;font-size:15px;color:var(--t3);scroll-snap-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .12s}
.mt-col-i.on{color:var(--t1);font-weight:500}

/* P0-UI · 原 6 列栅格下 col-2/3/4/6 一律 span 6 ⇒ 每个字段独占整行，
   5 个日期下拉被挤成 3 行。改为 2 列栅格 + col-12 跨 2 列 ⇒ 首屏输入区 10 行降到 6 行。
   同时修掉实机折行：「四柱直输」按 4 字宽给足 padding、「生成我的命途」不换行。 */
@media (max-width:720px){
  .s0{padding:16px 14px 14px;margin-top:8px}
  .s0-h{flex-wrap:wrap;gap:4px 10px;margin-bottom:10px}
  .s0-h-t{font-size:16px;white-space:nowrap}
  .s0-h-s{flex-basis:100%;font-size:11.5px;line-height:1.5}
  .s0-grid{grid-template-columns:repeat(2,1fr);gap:9px}
  .s0-fld.col-2,.s0-fld.col-3,.s0-fld.col-4,.s0-fld.col-6{grid-column:span 1}
  .s0-fld.col-12,.s0-mode-block.col-12,#blockBazi{grid-column:span 2}
  .s0-mode-block.on{grid-template-columns:repeat(2,1fr);gap:9px}
  .s0-m-full{grid-column:span 2}
  .s0-tabs{height:38px}
  .s0-tab{padding:0 4px;font-size:12px;white-space:nowrap}
  .s0-bz{grid-template-columns:repeat(2,1fr);gap:10px}
  .s0-row{flex-wrap:wrap;gap:8px;margin-top:10px;padding-top:10px}
  .s0-row>[style*="flex:1"]{display:none}
  .s0-btn{flex:1 1 100%;white-space:nowrap}
  .s0-reset{flex:0 0 auto;white-space:nowrap}
  .s0-row>div:last-child{flex-basis:100%;font-size:11px;line-height:1.5}
}


/* ══════ B1 · 合规弹窗 ══════ */
.consent-modal{position:fixed;inset:0;z-index:9999;background:rgba(8,8,12,.86);backdrop-filter:blur(8px);display:flex;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out),visibility var(--dur-base) var(--ease-out);align-items:center;justify-content:center;padding:20px}
.consent-modal.show{opacity:1;visibility:visible;transform:none}
html.b1-locked,html.b1-locked body{overflow:hidden}
.consent-card{max-width:560px;width:100%;background:#ffffff;border:1px solid #dbe5df;border-radius:14px;padding:24px 22px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 50px rgba(0,0,0,.5)}
.consent-h{display:flex;align-items:center;gap:10px;margin-bottom:14px;border-bottom:1px solid #dbe5df;padding-bottom:12px}
.consent-ic{font-size:22px}
.consent-t{font-size:18px;font-weight:600;letter-spacing:1px;color:#1f2a24}
.consent-p{font-size:13.5px;line-height:1.7;color:#5f6b63;margin:0 0 14px}
.consent-p strong{color:#b8893a}
.consent-list{list-style:none;padding:0;margin:0 0 14px}
.consent-list li{margin-bottom:10px}
.consent-row{display:flex;gap:10px;cursor:pointer;padding:10px 12px;border:1px solid #dbe5df;border-radius:8px;background:rgba(0,0,0,.02);transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
.consent-row:hover{background:rgba(0,0,0,.04)}
.consent-row input{display:none}
.consent-mark{width:18px;height:18px;min-width:18px;border:1.5px solid #4a4d56;border-radius:4px;display:inline-block;position:relative;margin-top:2px;background:#e7efea}
.consent-row input:checked + .consent-mark{background:#d4a857;border-color:#b8893a}
.consent-row input:checked + .consent-mark::after{content:"✓";color:#15171c;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:13px;font-weight:700;line-height:1}
.consent-tx{flex:1}
.consent-tt{font-size:14px;color:#1f2a24;font-weight:600;margin-bottom:4px}
.consent-ds{font-size:12.5px;color:#6b7a72;line-height:1.6}
.consent-ds strong{color:#b8893a}
.consent-links{display:flex;gap:16px;margin:12px 0 14px;font-size:12.5px}
.consent-links a{color:#60a5fa;cursor:pointer;text-decoration:none;border-bottom:1px dashed #60a5fa}
.consent-links a:hover{color:#93c5fd}
.consent-acts{display:flex;gap:10px;justify-content:flex-end;margin-top:14px}
.btn-disagree,.btn-agree{padding:9px 18px;border-radius:6px;font-size:13.5px;font-weight:600;cursor:pointer;border:none;transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out);font-family:inherit}
.btn-disagree{background:transparent;color:#6b7a72;border:1px solid #dbe5df}
.btn-disagree:hover{background:rgba(0,0,0,.04);color:#1f2a24}
.btn-agree{background:#d4a857;color:#15171c}
.btn-agree:hover:not(:disabled){background:#e2b85f}
.btn-agree:disabled{background:#dce5df;color:#6b7280;cursor:not-allowed}
.consent-tip{font-size:11.5px;color:#6b7280;margin:12px 0 0;line-height:1.6}
.consent-banner{display:none;align-items:center;gap:10px;flex-wrap:wrap;background:#fbf6e8;border-bottom:1px solid #e6d9b8;padding:10px 16px;font-size:12.5px;color:#6b5216;line-height:1.6;opacity:0;transform:translateY(-6px);transition:opacity var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out),display var(--dur-base) allow-discrete;transition-behavior:allow-discrete}
.consent-banner.show{display:flex;opacity:1;transform:none}
.consent-banner .cb-tx{flex:1;min-width:220px;cursor:pointer;border-bottom:1px dashed rgba(139,106,31,.45)}
.consent-banner .cb-ok{flex:none;border:1px solid #b8893a;background:#d4a857;color:#1f2a24;border-radius:999px;padding:5px 14px;font-size:12.5px;font-weight:600;cursor:pointer;font-family:inherit;transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
.consent-banner .cb-ok:hover{background:#e2b85f}
.consent-banner .cb-x{flex:none;border:none;background:none;color:#8a6a1f;font-size:18px;line-height:1;cursor:pointer;padding:2px 6px;font-family:inherit}
.b1-detail{position:fixed;inset:0;z-index:9998;background:rgba(8,8,12,.78);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:20px}
.b1-detail[hidden]{display:none}
.b1-detail-card{max-width:680px;width:100%;background:#ffffff;border:1px solid #dbe5df;border-radius:14px;max-height:88vh;overflow-y:auto}
.b1-h{display:flex;align-items:center;gap:10px;padding:18px 22px;border-bottom:1px solid #dbe5df;position:sticky;top:0;background:#ffffff;z-index:1}
.b1-ic{font-size:18px}
.b1-t{font-size:17px;font-weight:600;letter-spacing:1px;color:#1f2a24;flex:1}
.b1-close{background:transparent;border:none;color:#6b7a72;font-size:24px;cursor:pointer;line-height:1;padding:0 6px;font-family:inherit}
.b1-close:hover{color:#1f2a24}
.b1-body{padding:20px 26px;font-size:13.5px;line-height:1.8;color:#3d4a42}
.b1-body h4{color:#b8893a;font-size:14.5px;margin:18px 0 8px;font-weight:600;letter-spacing:.5px}
.b1-body h4:first-child{margin-top:0}
.b1-body p{margin:0 0 10px}
.b1-body ul{padding-left:22px;margin:0 0 10px}
.b1-body strong{color:#1f2a24}
.b1-act{margin-top:18px;padding-top:14px;border-top:1px solid #dbe5df}
.b1-danger{background:transparent;border:1px solid #7f1d1d;color:#f87171;padding:8px 16px;border-radius:6px;font-size:13px;cursor:pointer;font-weight:500;font-family:inherit}
.b1-danger:hover{background:rgba(248,113,113,.1);color:#fca5a5}
.b1-danger:disabled{opacity:.6;cursor:not-allowed}
.b1-tip{font-size:12px;color:#34d399;margin:8px 0 0}
.b1-footer{position:relative;background:#e7efea;border-top:1px solid #dbe5df;padding:14px 18px;margin-top:30px;font-size:11.5px;line-height:1.6;color:#6b7a72;text-align:center}
.b1-footer-row{max-width:1080px;margin:0 auto;display:flex;flex-direction:column;gap:6px;align-items:center}
.b1-ai-tag{display:inline-block;padding:3px 10px;border-radius:12px;background:rgba(96,165,250,.13);color:#60a5fa;border:1px solid rgba(96,165,250,.26);font-weight:500;letter-spacing:.5px}
.b1-disc{color:#6b7280;max-width:760px}
.b1-link{color:#60a5fa;text-decoration:none;border-bottom:1px dashed #60a5fa;font-size:12px}
.b1-link:hover{color:#93c5fd}
/* D5（0.4.2）：合规角标从 #aiTitle 内部移到 .ai-head 下，独占一整行。
   .ai-head 是 flex-wrap:wrap；flex-basis:100% 让角标自成一排，排在
   「✦ + 标题 + 副标题」那一行之下，不再插在标题与副标题之间。
   实测 .ai-head 内容宽 ≈346px、角标单行 ≈262px ⇒ 不再折成两行。 */
.ai-head > .qi-ai-tag{flex-basis:100%;margin-left:0}
.qi-ai-tag{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:10px;background:rgba(96,165,250,.13);color:#60a5fa;border:1px solid rgba(96,165,250,.26);font-size:10.5px;font-weight:500;letter-spacing:.5px;vertical-align:middle}
.ai-head-tag{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:10px;background:rgba(96,165,250,.13);color:#60a5fa;border:1px solid rgba(96,165,250,.26);font-size:11px;font-weight:500;letter-spacing:.5px}







/* __B2_CSS__ */
.b2-chip{margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-size:11.5px;line-height:1;padding:6px 11px;border-radius:999px;white-space:nowrap;border:1px solid;letter-spacing:.4px}
.b2-chip.user{background:rgba(46,160,67,.12);border-color:rgba(46,160,67,.45);color:#3fb950}
.b2-chip.anon{background:rgba(212,168,87,.10);border-color:rgba(212,168,87,.42);color:#b8893a}
.b2-chip.guest{background:rgba(139,148,158,.10);border-color:rgba(139,148,158,.4);color:#6b7a72}
.b2-chip .dot{width:6px;height:6px;border-radius:50%;background:currentColor;display:inline-block}
.b2-chip .b2-uid{font-family:ui-monospace,Consolas,monospace;opacity:.85;max-width:120px;overflow:hidden;text-overflow:ellipsis}
.b2-linkbtn{background:none;border:none;padding:0;margin:0;font-size:11.5px;color:inherit;text-decoration:underline;cursor:pointer;letter-spacing:.4px}
.b2-strip{display:none;background:linear-gradient(90deg,#2a2110,#33270f);border-bottom:1px solid rgba(212,168,87,.35);padding:8px 18px;font-size:12.5px;color:#8a6a1f;letter-spacing:.3px;opacity:0;transform:translateY(-6px);transition:opacity var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out);transition-behavior:allow-discrete}
.b2-strip.show{display:flex;align-items:center;gap:10px;flex-wrap:wrap;opacity:1;transform:none}
.b2-strip .b2-x{margin-left:auto;background:none;border:1px solid rgba(232,217,174,.4);color:#8a6a1f;border-radius:999px;font-size:11px;padding:2px 10px;cursor:pointer}
.b2-strip a.b2-mock{cursor:pointer;color:#8a6a1f;text-decoration:underline;font-weight:600}
.b2-tip{font-size:11.5px;color:#5f6b63;margin-top:8px;line-height:1.7;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.b2-tip b{color:#b8893a;font-weight:600}
.b2-spin{width:11px;height:11px;border:2px solid rgba(212,168,87,.35);border-top-color:#b8893a;border-radius:50%;display:inline-block;animation:b2spin .7s linear infinite;vertical-align:-2px}
@keyframes b2spin{to{transform:rotate(360deg)}}
/* __B2_CSS_END__ */

/* __B3_CSS__ */
.b3-chipbtn{background:none;border:none;color:inherit;font-size:11.5px;text-decoration:underline;cursor:pointer;letter-spacing:.4px;padding:0;margin:0 0 0 6px}
.b3-modal{position:fixed;inset:0;z-index:9000;background:rgba(8,8,12,.6);backdrop-filter:blur(3px);display:flex;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out),visibility var(--dur-base) var(--ease-out);align-items:center;justify-content:center;padding:18px}
.b3-modal.show{opacity:1;visibility:visible;transform:none}
.b3-card{width:min(540px,94vw);background:#ffffff;border:1px solid #dbe5df;border-radius:14px;max-height:84vh;overflow:auto;box-shadow:0 20px 50px rgba(0,0,0,.5)}
.b3-h{display:flex;align-items:center;gap:10px;padding:16px 18px;border-bottom:1px solid #dbe5df;position:sticky;top:0;background:#ffffff;z-index:2}
.b3-h .b3-t{font-size:16px;font-weight:600;color:#1f2a24;letter-spacing:.5px}
.b3-close{margin-left:auto;background:none;border:1px solid #dbe5df;color:#6b7a72;width:26px;height:26px;border-radius:8px;cursor:pointer;font-size:14px;line-height:1}
.b3-b{padding:14px 18px 18px}
.b3-row{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 16px;background:#eef3f0;border:1px solid #dde6e1;border-radius:10px;padding:12px 14px;margin:4px 0 14px;font-size:12.5px;line-height:1.8}
.b3-row .k{color:#6b7a72}
.b3-row .v{color:#3d4a42}
.b3-acts{display:flex;flex-direction:column;gap:10px}
.b3-act{display:flex;align-items:center;gap:12px;background:#e7efea;border:1px solid #dde6e1;border-radius:10px;padding:12px 14px;cursor:pointer;transition:border-color var(--dur-fast) var(--ease-out)}
.b3-act:hover{border-color:#b8893a}
.b3-act .ic{font-size:18px;width:26px;text-align:center}
.b3-act .tt{font-weight:600;color:#3d4a42;font-size:13.5px}
.b3-act .ds{color:#6b7a72;font-size:11.5px;margin-top:2px}
.b3-act .arr{margin-left:auto;color:#b8893a;font-size:16px}
.b3-editbar{position:fixed;top:0;left:0;right:0;z-index:9100;background:#fbf3e2;border-bottom:1px solid #d4a857;color:#8a6a1f;font-size:12.5px;padding:9px 14px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.b3-editbar .sp{display:inline-flex;align-items:center;gap:6px}
.b3-ebtn{border-radius:999px;padding:5px 14px;border:1px solid #d4a857;color:#8a6a1f;background:transparent;cursor:pointer;font-size:12px}
.b3-ebtn.primary{background:#d4a857;color:#221a09;border-color:#b8893a;font-weight:600}
.b3-ebtn.danger{color:#ff7b72;border-color:#ff7b72}
.b3-toast{position:fixed;left:50%;bottom:46px;transform:translateX(-50%);z-index:9500;background:#eef3f0;border:1px solid #d4a857;color:#1f2a24;padding:10px 18px;border-radius:999px;font-size:13px;box-shadow:0 10px 30px rgba(0,0,0,.4);opacity:0;visibility:hidden;transform:translateX(-50%) translateY(8px);transition:opacity var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out),visibility var(--dur-base) var(--ease-out);max-width:88vw;text-align:center}
.b3-toast.show{opacity:1;visibility:visible;transform:translateX(-50%)}
/* __B3_CSS_END__ */

/* __B4_CSS__ */
/* 0.4.2：B4 交互式深度解读已退役，上面 8 条 B4 规则随之删除。
   仅保留 .b4-out / .b4-out.show —— 它已是 **B8 八维报告的容器框**（#b4Out 唯一持有者），
   类名沿用了历史前缀，不要再按「B4 的东西」删。 */
.b4-out{margin:10px 0 4px;border:1px solid rgba(212,168,87,.4);border-left:3px solid #d4a857;border-radius:10px;background:rgba(212,168,87,.06);padding:12px 14px;white-space:pre-wrap;line-height:1.85;font-size:13.5px;color:#3d4a42;display:none;opacity:0;transform:translateY(6px);transition:opacity var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out);transition-behavior:allow-discrete}
.b4-out.show{display:block;opacity:1;transform:none}
/* __B4_CSS_END__ */

/* __B5_CSS__ */
.b5-lock{position:relative;opacity:.4;filter:grayscale(.75);cursor:pointer}
.b5-lock::after{content:'🔒';position:absolute;top:5px;right:5px;font-size:11px;opacity:.95}
.b5-hint{margin:8px 0 0;font-size:11.5px;color:#b8893a;letter-spacing:.3px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.b5-hint .b5-hint-lk{margin-left:auto;background:none;border:1px solid rgba(212,168,87,.5);color:#8a6a1f;border-radius:999px;padding:3px 12px;font-size:11px;cursor:pointer}
.b5-sku{margin:16px 0 4px;border:1px solid rgba(212,168,87,.42);border-radius:12px;background:linear-gradient(180deg,rgba(212,168,87,.09),rgba(212,168,87,.02));padding:14px 16px}
.b5-sku-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.b5-sku-t{font-size:15px;font-weight:600;color:#8a6a1f;letter-spacing:.6px}
.b5-price{margin-left:auto;font-size:20px;font-weight:700;color:#8a6a1f}
.b5-price small{font-size:11px;font-weight:400;color:#6b7a72;margin-left:6px;letter-spacing:0}
/* 0.7.0-5f0 · 试运营划线价：原价划掉 + 现价 ¥0 */
.b5-price s{color:#B4B2A9;font-weight:400;font-size:14px;margin-right:6px;}
.b5-price b{color:#854F0B;}
.b5-excerpt{margin:10px 0 6px;padding:10px 12px;border-left:3px solid #d4a857;background:rgba(212,168,87,.06);border-radius:0 8px 8px 0;font-size:13px;line-height:1.8;color:#3d4a42}
.b5-excerpt .b5-ex-t{display:block;font-size:11px;color:#b8893a;letter-spacing:.5px;margin-bottom:3px}
.b5-toc{margin:8px 0 4px;padding:0;list-style:none}
.b5-toc li{display:flex;align-items:center;gap:9px;padding:7px 0;border-bottom:1px dashed rgba(212,168,87,.16);font-size:13px;color:#3d4a42}
.b5-toc li:last-child{border-bottom:none}
.b5-toc li .n{width:20px;height:20px;flex:0 0 20px;border-radius:6px;background:rgba(212,168,87,.14);color:#8a6a1f;font-size:11px;display:flex;align-items:center;justify-content:center}
.b5-toc li .b5-lk{margin-left:auto;font-size:11px;color:#6b7a72}
.b5-toc li.free .b5-lk{color:#b8893a}
.b5-skel{height:9px;border-radius:5px;background:linear-gradient(90deg,#23262e,#2c3038,#23262e);margin:7px 0;opacity:.5}
.b5-skel.w70{width:70%}
.b5-skel.w50{width:50%}
.b5-cta{width:100%;margin-top:12px;border-radius:999px;padding:11px 16px;border:1px solid #d4a857;background:#d4a857;color:#221a09;font-size:14px;font-weight:600;cursor:pointer;letter-spacing:.5px}
.b5-cta:hover{background:#e0b75f}
.b5-dis{margin-top:10px;font-size:11px;line-height:1.75;color:#6b7a72}
/* 0.7.0-5a3 · SKU-B/A 解锁后内容渲染区样式（补缺） */
.b5-sku-body{margin:12px 0 4px;padding:0;transition:opacity .25s ease}
.b5-sku-body.b5-locked{opacity:.5;filter:blur(.3px);min-height:48px;display:flex;align-items:center;justify-content:center;background:rgba(212,168,87,.04);border:1px dashed rgba(212,168,87,.32);border-radius:8px}
.b5-sku-body-empty{font-size:12px;color:#8a7a6a;padding:10px;text-align:center;letter-spacing:.4px}
.b5-sku-body:not(.b5-locked){opacity:1;filter:none}
.b5-sec{margin:10px 0 6px;padding:8px 0 6px;border-top:1px dashed rgba(212,168,87,.20)}
.b5-sec:first-child{border-top:none;padding-top:2px}
.b5-sec-t{margin:0 0 4px;font-size:13.5px;font-weight:600;color:#8a6a1f;letter-spacing:.3px;display:flex;align-items:baseline;gap:6px}
.b5-sec-n{display:inline-block;width:18px;height:18px;line-height:18px;text-align:center;border-radius:5px;background:rgba(212,168,87,.18);color:#8a6a1f;font-size:11px;flex:0 0 18px}
.b5-sec-b{font-size:13px;line-height:1.95;color:#3d4a42;letter-spacing:.2px}
.b5-dis-rendered{margin-top:6px}

/* ══════════════════════════════════════════════════════════════════
   0.7.0-5b1 · SKU 正文层（LLM 逐字生成 + 流年/流月图形化）
   ------------------------------------------------------------------
   排版目标 = 「小白看得懂」：正文按短行长 + 行高 2.0 + 段间留白，
   术语靠小节标题分级；图形一律**自带一行说明**（b5-graph-s），
   不让用户对着色块猜含义。
   颜色沿用全站命理口径：得力 = --xi（青绿）/ 承压 = --ji（珊瑚红）/ 中性 = --ping。
   ⚠️ 与 A 股「涨红跌绿」相反，此处不得套用行情配色。
   ══════════════════════════════════════════════════════════════════ */
.b5-doc-head{margin:2px 0 12px;padding:10px 12px;border-radius:8px;background:rgba(212,168,87,.07);border:1px solid rgba(212,168,87,.22)}
.b5-doc-title{font-size:14px;font-weight:600;color:#8a6a1f;letter-spacing:.3px}
/* 0.7.0-5b4 · 作用域行：明写「本次解读锁定 丙午年（2026）· 财年」/「甲戌大运 · 2021–2030 年 · 庚运 · 第 4 步 / 共 9 步」
   配色沿用 doc-head 的金调，但加深一档以与标题拉开层级；窄屏允许换行不截断（信息不能被省略）。 */
.b5-doc-scope{margin-top:5px;font-size:12px;line-height:1.65;color:#6b4f0d;word-break:break-word}
.b5-scope-k{display:inline-block;margin-right:5px;padding:1px 6px;border-radius:4px;background:rgba(212,168,87,.22);color:#7a5a10;font-size:11px;font-weight:600}
/* ── 0.7.0-5c1 · 事实校验降级态──
   触发路径：服务端 verifyFacts 判出事实错误 → 重试耗尽 → 返回
   「本篇部分数据待校准，请联系客服」占位文案（degraded=true）。
   ⭐ 为什么必须**独立版式**而不是复用 .b5-sec / .b5-doc：
     降级文案里没有 @@N 分节符 ⇒ 走正常分节渲染会得到「6 节全空」，
     用户看到的是一片空白（会以为页面坏了），而不是「数据待校准」——
     **空白比错误更伤信任**。所以给它一块独立、明确、有行动指引的卡片。*/
.b5-degraded{margin:12px 0;padding:16px 18px;border-radius:10px;
  background:linear-gradient(180deg,#fdf6ec,#fbf1e0);
  border:1px solid rgba(212,168,87,.45);color:#5c4a2e;font-size:14px;line-height:1.85}
.b5-degraded-act{margin-top:10px;padding-top:10px;border-top:1px dashed rgba(212,168,87,.5);
  font-size:12.5px;color:#8a7a6a}
.b5-degraded .b5-doc-actions{margin-top:12px}
.b5-doc-status{margin-top:4px;font-size:11.5px;line-height:1.7;color:#8a7a6a;min-height:14px}
.b5-spin{display:inline-block;width:10px;height:10px;margin-right:5px;border-radius:50%;border:2px solid rgba(212,168,87,.3);border-top-color:#d4a857;animation:b5spin .8s linear infinite;vertical-align:-1px}
@keyframes b5spin{to{transform:rotate(360deg)}}

/* ── 图形容器 ── */
.b5-graphs{margin:6px 0 16px}
.b5-graph{margin:10px 0;padding:10px 12px;border-radius:10px;background:#fff;border:1px solid var(--bd)}
.b5-graph-t{font-size:12.5px;font-weight:600;color:#5a6a60;letter-spacing:.4px}
.b5-graph-s{margin:3px 0 10px;font-size:11px;line-height:1.7;color:var(--t3)}

/* ── 能量条（大运 / 流年 / 分季 共用） ── */
.b5-lad-bar,.b5-ys-bar,.b5-sea-bar{height:5px;border-radius:3px;background:var(--card3);overflow:hidden}
.b5-lad-bar i,.b5-ys-bar i,.b5-sea-bar i{display:block;height:100%;border-radius:3px;background:var(--ping);transition:width .3s ease}
.b5-lad.pos .b5-lad-bar i,.b5-ys.pos .b5-ys-bar i,.b5-sea.pos .b5-sea-bar i{background:var(--xi)}
.b5-lad.neg .b5-lad-bar i,.b5-ys.neg .b5-ys-bar i,.b5-sea.neg .b5-sea-bar i{background:var(--ji)}

/* ── ① 大运阶梯 ── */
.b5-ladder{display:flex;gap:6px;overflow-x:auto;padding:2px 0 6px;-webkit-overflow-scrolling:touch}
.b5-lad{flex:0 0 74px;padding:7px 6px 6px;border-radius:8px;background:var(--card2);border:1px solid transparent;text-align:center}
.b5-lad.isnow{background:rgba(212,168,87,.13);border-color:rgba(212,168,87,.5)}
.b5-lad-gz{font-size:15px;font-weight:600;letter-spacing:1px;line-height:1.2}
.b5-lad-yr{font-size:9.5px;color:var(--t3);margin-top:2px;letter-spacing:.2px}
.b5-lad-tg{font-size:10px;color:var(--t2);margin:2px 0 5px}
.b5-lad-sc{font-size:10px;color:var(--t3);margin-top:3px}

/* ── ② 流年色带 ── */
.b5-yearstrip{display:flex;gap:6px;overflow-x:auto;padding:2px 0 6px;-webkit-overflow-scrolling:touch}
.b5-ys{flex:0 0 62px;padding:7px 6px 6px;border-radius:8px;background:var(--card2);border:1px solid transparent;text-align:center}
.b5-ys.isnow{background:rgba(212,168,87,.13);border-color:rgba(212,168,87,.5)}
.b5-ys-y{font-size:11px;color:var(--t2);font-weight:600}
.b5-ys-now{display:block;font-size:8.5px;color:#8a6a1f;font-weight:400;letter-spacing:.5px}
.b5-ys-gz{font-size:14px;font-weight:600;letter-spacing:1px;margin:2px 0 1px;line-height:1.2}
.b5-ys-tg{font-size:9.5px;color:var(--t3);margin-bottom:5px}
.b5-ys-sc{font-size:9.5px;color:var(--t3);margin-top:3px}

/* ── ③ 流月热力格 ── */
.b5-heat{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.b5-hm{padding:7px 4px 6px;border-radius:8px;background:var(--card2);border:1px solid transparent;text-align:center}
.b5-hm.mid{background:rgba(212,168,87,.13);border-color:rgba(212,168,87,.35)}
.b5-hm.hot{background:rgba(212,168,87,.3);border-color:rgba(184,137,58,.7)}
.b5-hm-m{font-size:10.5px;color:var(--t2);font-weight:600}
.b5-hm-gz{font-size:14px;font-weight:600;letter-spacing:1px;line-height:1.25;margin:1px 0}
.b5-hm-lv{font-size:8.5px;color:var(--t3);letter-spacing:.3px}
.b5-hm-dots{margin-top:4px;height:6px;display:flex;gap:2px;justify-content:center}
.b5-hm-dots i{width:5px;height:5px;border-radius:50%;background:var(--bd2)}
.b5-hm-dots i.root{background:#7bbf9d}
.b5-hm-dots i.year{background:var(--gold)}
.b5-hm-dots i.mon{background:#8fa8c8}
.b5-hm-empty{font-size:11.5px;color:var(--t3);text-align:center;padding:12px 0}

/* ── ④ 分季 ── */
.b5-season{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.b5-sea{padding:8px 6px 6px;border-radius:8px;background:var(--card2);text-align:center}
.b5-sea-n{font-size:13px;font-weight:600;color:var(--t1)}
.b5-sea-ms{font-size:9.5px;color:var(--t3);margin:1px 0 6px}
.b5-sea-sc{font-size:10px;color:var(--t3);margin-top:3px}

/* ── ⑤ 五行喜忌条 ── */
.b5-wuxing{display:flex;flex-direction:column;gap:7px}
.b5-wx{display:flex;align-items:center;gap:8px}
.b5-wx-k{flex:0 0 16px;font-size:13px;font-weight:700;text-align:center}
.b5-wx-bar{flex:1 1 auto;height:8px;border-radius:4px;background:var(--card3);overflow:hidden}
.b5-wx-bar i{display:block;height:100%;border-radius:4px}
.b5-wx-v{flex:0 0 34px;font-size:10.5px;color:var(--t3);text-align:right}
.b5-wx-tag{flex:0 0 auto;font-size:9.5px;padding:1px 6px;border-radius:9px;letter-spacing:.3px}
.b5-wx-tag.xi{background:rgba(52,211,153,.16);color:#1f8a63}
.b5-wx-tag.ji{background:rgba(248,113,113,.16);color:#b14444}
.b5-wx-tag.mid{background:var(--card3);color:var(--t3)}

/* ── 正文与骨架 ── */
.b5-sec-b{font-size:13.5px;line-height:2.0;color:#39443d;letter-spacing:.2px}
.b5-sec-empty{font-size:12px;color:var(--t3);letter-spacing:.3px}
.b5-skel{margin:2px 0}
.b5-skel i{display:block;height:9px;border-radius:5px;margin:7px 0;background:linear-gradient(90deg,var(--card3) 25%,var(--card2) 37%,var(--card3) 63%);background-size:400% 100%;animation:b5skel 1.4s ease infinite}
.b5-skel i:nth-child(2){width:88%}
.b5-skel i:nth-child(3){width:62%}
@keyframes b5skel{0%{background-position:100% 0}100%{background-position:0 0}}

/* ── 页脚动作条 ── */
.b5-doc-foot{margin-top:14px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.b5-doc-note{font-size:10.5px;line-height:1.6;color:var(--t3);flex:1 1 160px}
.b5-regen{flex:0 0 auto;padding:7px 14px;border-radius:18px;border:1px solid rgba(212,168,87,.5);background:rgba(212,168,87,.1);color:#8a6a1f;font-size:12px;cursor:pointer;transition:background var(--dur-fast) var(--ease-out)}
.b5-regen:hover{background:rgba(212,168,87,.2)}
/* __B5_CSS_END__ */

/* __B6_CSS__ */
.b6-share{border-radius:999px;padding:6px 14px;border:1px solid #d4a857;color:#8a6a1f;background:rgba(212,168,87,.10);cursor:pointer;font-size:12px;letter-spacing:.4px}
.b6-share:hover{background:rgba(212,168,87,.22)}
.b6-share.top{font-size:11.5px;text-decoration:underline;border:none;background:none;padding:0;margin-left:8px;color:inherit;cursor:pointer}
.b6-prev{width:100%;max-width:320px;margin:0 auto;display:block;border-radius:10px;border:1px solid #dbe5df}
.b6-tip{text-align:center;font-size:12px;color:#6b7a72;margin:10px 0 4px}
.b6-linkrow{display:flex;gap:8px;margin-top:12px}
.b6-link{flex:1;min-width:0;background:#eef3f0;border:1px solid #dde6e1;border-radius:8px;color:#3d4a42;font-size:12px;padding:8px 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.b6-copy{border-radius:8px;padding:8px 14px;border:1px solid #d4a857;color:#8a6a1f;background:transparent;cursor:pointer;font-size:12px;white-space:nowrap}
.b6-dl{display:block;text-align:center;margin-top:10px;color:#60a5fa;font-size:12.5px;text-decoration:none}
/* __B6_CSS_END__ */
/* __B7_CSS__ */
/* 无新样式（埋点本身不可见）；空标记保证 B6/B7 钩子统一管理 */

/* __B7_CSS_END__ */

/* ══ P0 · 动效正确性（2026-09-16） ══ */
.s0-btn:active,.s0-reset:active,.consent-row:active,.btn-disagree:active,.btn-agree:active,
.b3-act:active,.b2-strip .b2-x:active,.b3-close:active,.b1-close:active,
.b3-chipbtn:active,.b2-linkbtn:active,.b1-danger:active,.b3-ebtn:active,
.b2-ebtn:active,.tab:active,.dc:active,.yc:active,.mc:active,.s0-save-btn:active,.qi-go button:active{
  transform:scale(.97);
}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* __B8_CSS__ */
/* B8 · s4「八维报告」：时段选择器 + AI 报告排版 + 等待期反馈
   配色沿用东方律政浅色皮（--gold 真金 / --t1..t4 墨阶 / --xi 顺 / --ji 逆）。
   命名注意：.mt-seg-* 与既有的 .mt-lb/.mt-tr/.mt-fl（五行占比条）**不是同一功能**，
   仅是前缀相似，勿合并重构。 */

/* ── 时段选择：只保留「当前 + 下一个」 ── */
.seg-tabs{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 14px}
.mt-seg{flex:1 1 210px;min-width:170px;font-family:inherit;text-align:left;cursor:pointer;
  display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"lb gz sc" "sub sub sub";
  gap:3px 8px;padding:10px 12px;border-radius:10px;border:1px solid var(--bd);background:var(--card);
  transition:border-color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out),transform var(--dur-press) var(--ease-out)}
.mt-seg:hover{border-color:var(--bd2);background:var(--card2)}
.mt-seg.on{border-color:var(--gold);background:rgba(212,168,87,.10);box-shadow:inset 0 0 0 1px rgba(212,168,87,.26)}
.mt-seg-lb{grid-area:lb;align-self:center;font-size:11px;letter-spacing:.4px;color:var(--gold2);
  padding:1px 7px;border-radius:999px;border:1px solid rgba(212,168,87,.45);background:rgba(212,168,87,.08)}
.mt-seg-gz{grid-area:gz;font-size:16px;font-weight:600;color:var(--t1);font-family:"Songti SC","SimSun",serif;letter-spacing:.5px}
.mt-seg-sc{grid-area:sc;align-self:center;font-size:13px;font-weight:600;color:var(--t3);font-variant-numeric:tabular-nums}
.mt-seg-sc.good{color:var(--xi)}
.mt-seg-sc.bad{color:var(--ji)}
.mt-seg-sub{grid-area:sub;font-size:11.5px;color:var(--t3);line-height:1.5}

/* ── 空态（尚未生成报告） ── */
.rep-empty{margin:4px 0 0;padding:26px 20px;border:1px dashed var(--bd2);border-radius:12px;
  background:linear-gradient(180deg,var(--card2),var(--card));text-align:center}
.rep-empty-ic{font-size:22px;line-height:1;color:var(--gold)}
.rep-empty-t{margin:8px 0 6px;font-size:16px;font-weight:600;color:var(--t1);
  font-family:"Songti SC","SimSun",serif;letter-spacing:.5px}
.rep-empty-d{max-width:620px;margin:0 auto;font-size:13px;color:var(--t2);line-height:1.85;text-align:left}
.rep-empty-n{max-width:620px;margin:10px auto 0;font-size:12px;color:var(--t3);line-height:1.7;text-align:left}
.mt-empty-act{margin-top:16px;display:flex;flex-direction:column;align-items:center;gap:8px}
.mt-empty-hint{min-height:1em;font-size:11.5px;color:var(--t4)}

/* ── 按钮 ── */
.mt-btn{appearance:none;font-family:inherit;font-size:13.5px;letter-spacing:.4px;cursor:pointer;
  border-radius:999px;padding:9px 22px;color:#fff;border:1px solid var(--gold2);
  background:linear-gradient(180deg,var(--gold),var(--gold2));
  transition:filter var(--dur-fast) var(--ease-out),transform var(--dur-press) var(--ease-out)}
.mt-btn:hover{filter:brightness(1.06)}
.mt-btn:disabled{opacity:.6;cursor:wait;filter:none}
.mt-btn.ghost{color:var(--gold2);background:transparent;border-color:var(--gold)}
.mt-btn.ghost:hover{background:rgba(212,168,87,.12)}

/* ── 等待期反馈：转圈 + 阶段文案 + 秒数 + 进度条 ── */
.mt-wait{padding:22px 20px;border:1px solid rgba(212,168,87,.38);border-radius:12px;
  background:rgba(212,168,87,.06);text-align:center}
.mt-wait-top{display:flex;align-items:center;justify-content:center;gap:9px;font-size:14px;color:var(--t1)}
.mt-spin{width:14px;height:14px;flex-shrink:0;border-radius:50%;
  border:2px solid rgba(212,168,87,.28);border-top-color:var(--gold);animation:mtSpin .8s linear infinite}
@keyframes mtSpin{to{transform:rotate(360deg)}}
.mt-bar{margin:14px auto 0;max-width:420px;height:6px;border-radius:999px;background:var(--bd);overflow:hidden}
.mt-bar-in{height:100%;width:0;border-radius:999px;
  background:linear-gradient(90deg,var(--gold2),var(--gold));transition:width .3s linear}
.mt-wait-sub{margin-top:10px;font-size:12.5px;color:var(--t2)}
.mt-wait-sub b{color:var(--gold2);font-variant-numeric:tabular-nums}
.mt-wait-tip{margin-top:5px;font-size:11.5px;color:var(--t4)}

/* ── 报告正文 ── */
.mt-rep-tag{display:inline-block;margin-bottom:8px;padding:2px 10px;border-radius:10px;
  font-size:11px;letter-spacing:.3px;color:var(--gold2);
  border:1px solid rgba(212,168,87,.42);background:rgba(212,168,87,.08)}
.mt-rep-head{margin:2px 0 10px;padding-bottom:8px;border-bottom:1px solid var(--gold);
  font-size:17px;font-weight:600;color:var(--t1);font-family:"Songti SC","SimSun",serif;letter-spacing:.5px}
.mt-rep-lead{margin:0 0 12px;padding:10px 12px;border-left:3px solid var(--gold);
  border-radius:0 8px 8px 0;background:rgba(212,168,87,.06);font-size:13.5px;color:var(--t2);line-height:1.9}
.mt-rep-sec{margin:0 0 12px;padding:12px 14px;border:1px solid var(--bd);border-radius:10px;background:var(--card)}
.mt-rep-h{display:flex;align-items:center;gap:8px;margin-bottom:7px;font-size:14.5px;font-weight:600;color:var(--t1)}
.mt-rep-no{flex-shrink:0;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;
  border-radius:50%;font-size:12px;font-weight:600;color:#fff;background:var(--gold2)}
.mt-rep-b{font-size:13.5px;color:var(--t2);line-height:1.95}
/* ══ 0.4.3 · 报告卡尾部行动条（生成分享图 + 有用/没用反馈）══════════════
   为什么在报告卡**外面**：B8 的 setOut() 每次渲染都执行 o.innerHTML = html，
   流式阶段 onDelta 还会反复重建整段 ⇒ 放在 #b4Out 内的按钮必被抹掉。
   ⚠️ .rep-act[hidden] 必须显式写 display:none —— 作者样式里的 display:flex
      会盖掉 UA 的 [hidden]{display:none}，否则「隐藏」形同虚设（这是常见坑）。
   窄屏时由 flex-wrap 自动换行：分享按钮在左、反馈组在右（margin-left:auto）。 */
.rep-act{margin:8px 0 2px;padding:10px 12px;border:1px solid var(--bd);border-radius:10px;
  background:var(--card);display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.rep-act[hidden]{display:none}
.mt-fb{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto}
.mt-fb-q{font-size:12.5px;color:var(--t2)}
.mt-fb-btn{border-radius:999px;padding:5px 12px;border:1px solid var(--bd);background:transparent;
  color:var(--t2);font-size:12px;cursor:pointer;font-family:inherit;transition:border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
.mt-fb-btn:hover{border-color:var(--gold);color:var(--t1)}
.mt-fb-btn[disabled]{opacity:.55;cursor:default}
.mt-fb-thanks{font-size:12.5px;color:var(--gold2)}
.mt-rep-act{margin-top:6px;display:flex;justify-content:center}
.mt-rep-disc{margin-top:12px;padding-top:10px;border-top:1px dashed var(--bd);
  font-size:11.5px;color:var(--t3);line-height:1.7}
.mt-caret{display:inline-block;width:7px;height:15px;margin-left:2px;vertical-align:-2px;
  background:var(--gold);animation:mtBlink 1s steps(2,start) infinite}
@keyframes mtBlink{to{visibility:hidden}}
.mt-streaming{box-shadow:0 0 0 1px rgba(212,168,87,.22)}

/* ── 流月窗口卡 / 错误态 ── */
.mt-win{margin:8px 0;padding:10px 12px;border:1px solid var(--bd);border-radius:10px;background:var(--card)}
.mt-win-h{margin-bottom:4px;font-size:13px;font-weight:600}
.mt-win-b{font-size:12.5px;color:var(--t2);line-height:1.8}
.mt-err{margin-top:14px;padding:12px 14px;border:1px solid rgba(248,113,113,.42);border-radius:10px;
  background:rgba(248,113,113,.07);font-size:13px;color:#b03030;
  display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}

/* ── 手机 ── */
@media (max-width:560px){
  .mt-seg{flex:1 1 100%;min-width:0}
  .mt-rep-sec{padding:11px 12px}
  .mt-rep-head{font-size:16px}
}
/* __B8_CSS_END__ */

/* ══════ 补五行折叠模块（0.5.0-P2 · 甲案：只描述缺的五行，默认收起）══════
 * 位置：s1 本命速览 → panFoot 之后。默认收起 ⇒ 不增首屏高度（#s0 已 775→563px）。
 * 纯展示层：不进 AI prompt / 不改评分 / 不随时间变化。 */
.wxf{margin-top:12px;border:1px solid var(--bd);border-radius:8px;background:var(--card2);overflow:hidden}
.wxf-s{cursor:pointer;list-style:none;display:flex;align-items:center;gap:6px;padding:12px 14px;font-size:14px;font-weight:600;color:var(--t1);user-select:none}
.wxf-s::-webkit-details-marker{display:none}
.wxf-s::marker{content:''}
.wxf-a{color:var(--gold);transition:transform var(--dur-base) var(--ease-out)}
.wxf[open] .wxf-a{transform:rotate(90deg)}
.wxf-body{padding:2px 14px 14px;border-top:1px solid var(--bd)}
.wxf-lead{font-size:13px;color:var(--t2);line-height:1.9;margin:10px 0}
.wxf-item{border-left:2px solid rgba(184,134,11,.45);background:var(--card);border-radius:0 6px 6px 0;padding:10px 13px;margin:12px 0}
.wxf-h{display:flex;align-items:baseline;gap:8px;margin-bottom:4px}
.wxf-h b{font-size:17px}
.wxf-h b.m{color:var(--mu)}.wxf-h b.h{color:var(--huo)}.wxf-h b.t{color:var(--tu)}.wxf-h b.j{color:var(--jin)}.wxf-h b.s{color:var(--shui)}
.wxf-tag{font-size:11px;color:var(--t3);letter-spacing:1px}
.wxf-job{font-size:13px;color:var(--t1);line-height:1.8}
.wxf-k{font-size:11px;color:var(--t4);letter-spacing:1px;margin:10px 0 4px}
.wxf-p{font-size:13px;color:var(--t2);line-height:1.9}
.wxf-ul{margin:4px 0 0;padding-left:18px;font-size:13px;color:var(--t2);line-height:1.9}
.wxf-ul li{margin:3px 0}
.wxf-ul b{color:var(--t1)}
.wxf-key{margin-top:9px;font-size:12.5px;color:var(--gold2);font-weight:600}
.wxf-close{margin-top:12px;font-size:13px;color:var(--t2);line-height:1.9}
.wxf-foot{margin-top:12px;padding-top:10px;border-top:1px dashed var(--bd);font-size:11.5px;color:var(--t4);line-height:1.8}
@media (max-width:420px){.wxf-s{font-size:13.5px;padding:11px 12px}.wxf-body{padding:2px 12px 12px}}

/* ══ 0.5.0-P3 ══ */
/* 折叠摘要：标题 + 一句话解读 + 明确可点提示（原摘要只有标题 ⇒ 用户不知道能点开） */
.wxf-s{display:block}
.wxf-shd{display:flex;align-items:center;gap:6px}
.wxf-st{font-size:14px;font-weight:600;color:var(--t1)}
.wxf-more{margin-left:auto;font-size:11.5px;color:var(--gold);border:1px solid rgba(184,134,11,.36);border-radius:999px;padding:1px 8px;white-space:nowrap}
.wxf-less{margin-left:auto;display:none;font-size:11.5px;color:var(--t3);border:1px solid var(--bd);border-radius:999px;padding:1px 8px}
.wxf[open] .wxf-more{display:none}
.wxf[open] .wxf-less{display:inline}
.wxf-a{font-size:11px}
.wxf-si{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:5px;font-size:12.5px;color:var(--t3);line-height:1.62}
/* 正格「承压」档（财官食伤耗泄）—— 与 .ge-po 同为「需留意」，但两者不出现在同一张图例里 */
.ge-ji{background:rgba(248,113,113,.16);color:#f87171;border:1px solid rgba(248,113,113,.36)}
/* 🔴 0.7.0-5cd · 八维报告「自动首屏预览」条
   * 为什么要独立样式：预览是「已出字但未读完全文」的中间态，
   * 若复用完整报告的行动条样式，用户会以为已经拿到完整报告。 */
.mt-prev-bar {
  margin: 14px 0 6px; padding: 12px 14px;
  border: 1px solid rgba(212, 168, 87, .34); border-radius: 10px;
  background: rgba(212, 168, 87, .07);
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
}
.mt-prev-tag {
  flex: 0 0 auto; padding: 2px 8px; border-radius: 999px;
  font-size: 12px; font-weight: 600; color: #8a6a1f;
  background: rgba(212, 168, 87, .18);
}
.mt-prev-txt { flex: 1 1 200px; font-size: 13px; line-height: 1.6; color: #4a463c; }
.mt-prev-txt b { color: #8a6a1f; }
/* 窄屏（微信 390px 竖屏）：说明文字独占一行，按钮换行到下方 */
@media (max-width: 420px) {
  .mt-prev-bar { gap: 6px; }
  .mt-prev-txt { flex-basis: 100%; order: 3; }
}

/* ══════ 0.7.0-5d0 · 专业细盘（缩放版） ══════
   用户拍板：严格参照问真八字「专业细盘」横向大表 —— 大运一列一步 / 流年一列十年纵向 / 流月十二列。
   通过压缩字号与列宽塞进单屏宽度，**取消横向滑动**。
   ⚠️ 格子保留 .dc/.yc/.mc 契约（pickDy/pickYr/pickMon 靠它清除其它选中态，去掉会导致高亮累积），
      因此下面统一用 `table.pp-* td.pp-*` 高优先级选择器覆盖旧三层时间轴样式；
      并强制 min-width:0 —— 旧 .dc 带 min-width，是横向滚动的直接来源。 */
.pp-wrap{padding:2px 0 4px;}
.pp-meta{display:flex;flex-wrap:wrap;gap:4px 12px;padding:6px 10px;margin-bottom:6px;background:#faf8f5;border-bottom:1px solid #e2ddd4;font-size:11px;color:#8b8680;}
.ppm{white-space:nowrap;}
.ppm-k{color:#8b8680;margin-right:3px;}
.ppm-v{color:#1a1c23;font-weight:600;}
.pp-block{position:relative;padding-left:26px;margin-bottom:8px;}
.pp-lb{position:absolute;left:4px;top:50%;transform:translateY(-50%);width:20px;text-align:center;font-size:12px;color:#8b8680;letter-spacing:2px;writing-mode:vertical-rl;font-weight:600;}

/* 表格：固定布局 + 100% 宽 + 等分列宽 ⇒ 永不横向滚动 */
table.pp-dy,table.pp-ln,table.pp-mon{width:100%;border-collapse:collapse;table-layout:fixed;font-size:10px;text-align:center;}
table.pp-dy td,table.pp-ln th,table.pp-ln td,table.pp-mon th,table.pp-mon td{border-right:1px solid #e2ddd4;padding:2px 0;overflow:hidden;}

/* ── 大运 ── */
table.pp-dy td.pp-dc{min-width:0!important;width:auto!important;padding:4px 0!important;cursor:pointer;}
table.pp-dy td.pp-dc .pp-y{font-size:9px;color:#8b8680;}
table.pp-dy td.pp-dc .pp-a{font-size:9px;color:#1a1c23;}
table.pp-dy td.pp-dc .pp-gz{font-size:14px;font-weight:700;line-height:1.15;}
table.pp-dy td.pp-dc .pp-sh{font-size:9px;color:#8b8680;}
table.pp-dy td.pp-dc.sel{background:#f4e4bc;}
.pp-none{font-size:10px;color:#b0aaa2;}

/* ── 流年（列 = decade，列内 10 年纵向） ── */
table.pp-ln th{min-width:0!important;height:18px;background:#faf8f5;color:#8b8680;font-weight:500;font-size:9px;border-bottom:1px solid #e2ddd4;}
table.pp-ln td.pp-yc{min-width:0!important;height:20px;cursor:pointer;}
table.pp-ln td.pp-yc .pp-lg{font-size:12px;font-weight:700;line-height:1;}
table.pp-ln td.pp-yc.sel{background:#f4e4bc;}
table.pp-ln td.pp-empty{background:#fcfcfa;}

/* ── 流月（12 列） ── */
table.pp-mon th{min-width:0!important;height:26px;background:#faf8f5;color:#8b8680;font-weight:500;font-size:9px;line-height:1.2;border-bottom:1px solid #e2ddd4;}
table.pp-mon td.pp-mc{min-width:0!important;height:40px;cursor:pointer;}
table.pp-mon td.pp-mc .pp-mg{font-size:12px;font-weight:700;line-height:1.1;}
table.pp-mon td.pp-mc .pp-ms{font-size:9px;color:#8b8680;}
table.pp-mon td.pp-mc.sel{background:#f4e4bc;}

/* 窄屏兜底：字号再降一档，保证 decade/月份 不溢出 */
@media (max-width:360px){
  table.pp-dy,table.pp-ln,table.pp-mon{font-size:9px;}
  table.pp-dy td.pp-dc .pp-gz{font-size:12px;}
  table.pp-ln td.pp-yc .pp-lg,table.pp-mon td.pp-mc .pp-mg{font-size:11px;}
}

/* ══════ 0.7.0-5d1 · 底部四 Tab 分舱（生辰 / 命册 / 问道 / 归己）══════
   把原本一整条长卷切进四个 Tab —— 这是「页面过长、信息杂乱」的根本解。
   ⚠️ .b1-footer 是合规强制声明（内容标注 + 免责），不打 data-tab，始终显示。
   ⚠️ 内容区靠 body padding-bottom 让位，避免最后一块被固定导航压住。 */
body{padding-bottom:58px;}
.mt-tabbar{position:fixed;left:0;right:0;bottom:0;height:56px;background:#fffdf8;border-top:1px solid #e2ddd4;display:flex;align-items:center;justify-content:space-around;z-index:900;box-shadow:0 -2px 10px rgba(0,0,0,.05);}
.mt-tab{flex:1;height:100%;display:flex;align-items:center;justify-content:center;font-size:14px;color:#8b8680;cursor:pointer;letter-spacing:2px;-webkit-tap-highlight-color:transparent;}
.mt-tab.active{color:#b8860b;font-weight:600;}
.mt-tab.active::after{content:"";position:absolute;bottom:0;width:28px;height:2px;background:#b8860b;border-radius:1px;}
.mt-tab{position:relative;}

/* 归己屏（我的）列表 */
.gj-list{padding:4px 0;}
.gj-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid #eee9e1;font-size:13px;}
.gj-item:last-child{border-bottom:none;}
.gj-k{color:#8b8680;white-space:nowrap;}
.gj-v{color:#1a1c23;text-align:right;}
.gj-v a{color:#b8860b;text-decoration:none;}
/* 0.7.0-5d2 · 清除结果反馈 */
.gj-tip{margin-top:10px;padding:10px 14px;border-radius:6px;background:#eafaf1;border:1px solid #bfe3cd;color:#1e6b45;font-size:12.5px;line-height:1.7;}

/* 0.7.0-5d2 · 问道（取用五法推导） */
.wd-empty{padding:18px 14px;border:1px dashed var(--bd2);border-radius:6px;background:var(--card2);color:var(--t2);font-size:13px;line-height:1.8;text-align:center;}
.wd-sum{padding:14px 16px;border-radius:6px;background:var(--card);border:1px solid var(--bd);box-shadow:0 1px 3px rgba(0,0,0,.04);margin-bottom:14px;}
.wd-sum-k{font-size:11px;color:var(--t3);letter-spacing:.1em;}
.wd-sum-v{font-size:19px;font-weight:700;color:var(--gold2);margin:4px 0 8px;letter-spacing:.02em;}
.wd-sum-r{font-size:12.5px;line-height:1.85;color:var(--t2);}
.wd-cons{display:flex;gap:10px;align-items:flex-start;margin-bottom:14px;font-size:12.5px;line-height:1.8;color:var(--t2);}
.wd-badge{flex:none;padding:2px 8px;border-radius:3px;font-size:11px;font-weight:600;white-space:nowrap;}
.wd-badge.wd-ok{background:#eafaf1;color:#1e6b45;}
.wd-badge.wd-warn{background:#fdf0ed;color:#a2412f;}
.wd-badge.wd-mut{background:#eef1ef;color:#6b7a71;}
.wd-list{display:flex;flex-direction:column;gap:10px;margin-bottom:14px;}
.wd-item{padding:12px 14px;border-radius:6px;background:var(--card);border:1px solid var(--bd);border-left:3px solid var(--bd2);}
.wd-item.on{border-left-color:var(--gold);}
.wd-item.dep{opacity:.72;}
.wd-h{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;margin-bottom:6px;}
.wd-n{font-size:13px;font-weight:700;color:var(--t1);}
.wd-t{font-size:11.5px;color:var(--t3);}
.wd-v{font-size:11.5px;color:var(--t2);padding:1px 6px;background:var(--card3);border-radius:3px;}
.wd-need{font-size:13px;font-weight:700;color:var(--gold2);margin-left:auto;}
.wd-d{font-size:12.5px;line-height:1.85;color:var(--t2);}
.wd-dyn{display:flex;gap:10px;padding:10px 14px;border-radius:6px;background:#fef9e7;border:1px solid #f0e0b0;margin-bottom:12px;font-size:12.5px;line-height:1.8;color:#7a5c14;}
.wd-dyn-k{flex:none;font-weight:600;}
.wd-watch{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;}
.wd-w{display:flex;gap:10px;align-items:baseline;padding:8px 12px;border-radius:5px;background:var(--card2);font-size:12px;color:var(--t2);}
.wd-w-gz{font-weight:700;color:var(--t1);}
.wd-w-y{color:var(--t3);font-size:11.5px;}
.wd-w-t{margin-left:auto;color:#a2412f;}
.wd-doc{padding:14px 16px;border-radius:6px;background:var(--card);border:1px solid var(--bd);}
.wd-doc-h{font-size:12px;font-weight:700;color:var(--t1);margin-bottom:8px;letter-spacing:.05em;}
.wd-doc-i{display:flex;gap:10px;padding:6px 0;border-top:1px solid var(--bd);}
.wd-doc-i:first-of-type{border-top:none;}
.wd-doc-n{flex:none;width:34px;font-size:12px;font-weight:700;color:var(--gold2);}
.wd-doc-d{font-size:12px;line-height:1.8;color:var(--t2);}

/* ══════ 0.7.0-5d3 · 问道屏课程原型（本屏是课程位，不接运行时数据）══════ */
.kc-list{display:flex;flex-direction:column;gap:8px;}
.kc-item{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--card);border:1px solid var(--bd);border-radius:6px;}
.kc-i{flex:none;width:24px;height:24px;border-radius:50%;background:var(--card3);color:var(--gold2);
  font-family:"Songti SC","SimSun",serif;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;}
.kc-b{flex:1;min-width:0;}
.kc-t{font-size:13.5px;font-weight:700;color:var(--t1);}
.kc-d{font-size:11.5px;color:var(--t3);margin-top:2px;}
.kc-s{flex:none;font-size:11px;color:var(--t3);border:1px solid var(--bd2);border-radius:10px;padding:2px 8px;background:var(--card2);}
.kc-note{margin-top:10px;padding:10px 14px;border-radius:6px;background:#fef9e7;border:1px solid #f0e0b0;
  color:#7a5c14;font-size:12.5px;line-height:1.75;}

/* ══════ 0.7.0-5d3 · 命册：「册」（记录列表）与盘面视图顶栏 ══════ */
#ceList{padding:4px 0 20px;}
.ce-acc{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;
  background:var(--card);border:1px solid var(--bd2);border-radius:6px;box-shadow:0 1px 3px rgba(0,0,0,.04);margin-bottom:10px;}
.ce-acc-l{display:flex;align-items:center;gap:10px;min-width:0;}
.ce-av{flex:none;width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#e0c98f,#b8893a);color:#fff;
  font-family:"Songti SC","SimSun",serif;font-size:16px;font-weight:700;display:flex;align-items:center;justify-content:center;}
.ce-nm{font-size:14px;font-weight:700;color:var(--t1);}
.ce-sb{font-size:11px;color:var(--t3);margin-top:2px;}
.ce-acc-r{font-size:12px;color:var(--t3);white-space:nowrap;}
.ce-acc-r b{color:var(--gold2);font-size:15px;}
.ce-hint{font-size:12px;line-height:1.75;color:var(--t2);padding:0 2px 12px;}
.ce-recs{display:flex;flex-direction:column;}
.ce-rec{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;
  background:var(--card);border:1px solid var(--bd);border-radius:6px;margin-bottom:8px;cursor:pointer;}
.ce-rec:active{background:var(--card2);}
.ce-rec-l{display:flex;align-items:center;gap:12px;min-width:0;flex:1;}
/* ⚠️ 0.7.0-5h3 · 左侧文字块必须**可收缩**：
     否则「1965年 7月 22 日」这类日期在 390px 下被挤成两行（实测截图），
     把行高撑高、且日期与四柱换行交错 ⇒ 很难看。
   ⇒ 文字块 min-width:0 + 日期单行省略（日期是次要信息，四柱才是主信息）。 */
.ce-rec-l > div{min-width:0;}
.ce-rec-av{flex:none;width:36px;height:36px;border-radius:50%;background:var(--card3);color:var(--t1);
  font-family:"Songti SC","SimSun",serif;font-size:15px;font-weight:700;display:flex;align-items:center;justify-content:center;}
.ce-rec-nm{font-size:14px;font-weight:700;color:var(--t1);}
.ce-rec-ds{font-size:11px;color:var(--t3);margin-top:2px;}
/* 云端行说明「云端 · 2026/10/19」在 390px 下会折成三行、把行高撑得很难看
   （实测截图）⇒ 单行省略。日期不是主信息，四柱才是。 */
.ce-rec-cloud .ce-rec-ds{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px;}
/* 本机册行的日期（「1990年 3月 15 日」）同理单行省略 */
.ce-rec-localbook .ce-rec-ds{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ce-rec-bz{font-family:"Songti SC","SimSun",serif;font-size:15px;letter-spacing:1px;color:var(--t1);white-space:nowrap;}
.ce-rec-tg{font-size:10px;color:var(--gold2);border:1px solid var(--bd2);padding:1px 6px;border-radius:10px;margin-left:4px;font-weight:500;}
/* ══════ 0.7.0-5e3 · 云端命册行 ══════ */
.ce-rec-r{display:flex;align-items:center;gap:8px;flex:none;}
/* 云端行左侧描边：一眼区分「本机」与「云端」，避免以为都是临时数据 */
.ce-rec-cloud{border-left:2px solid var(--gold2);}
/* 0.7.0-5h3 · 本机册行：金色左边框留给云端 ⇒ 本机行用**中性灰**左边框区分 */
.ce-rec-localbook{border-left:2px solid var(--bd2);}
.ce-rec-del{flex:none;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;
  justify-content:center;font-size:15px;line-height:1;color:var(--t3);background:var(--card2);
  border:1px solid var(--bd);}
.ce-rec-del:active{color:#c0392b;border-color:#c0392b;background:rgba(192,57,43,.08);}
/* 云端同步失败：明确说「本机不受影响」，否则用户以为全丢了 */
.ce-sync-tip{margin-top:8px;padding:8px 12px;border-radius:6px;font-size:11.5px;line-height:1.7;
  color:#8a6a1f;background:rgba(212,168,87,.10);border:1px solid rgba(212,168,87,.3);}
.ce-empty{padding:18px 14px;border:1px dashed var(--bd2);border-radius:6px;background:var(--card2);
  color:var(--t2);font-size:13px;line-height:1.8;text-align:center;}
/* ⚠️ bottom 必须避开底部导航（.mt-tabbar），否则 FAB 压住导航 */
.ce-fab{position:fixed;right:16px;bottom:78px;width:48px;height:48px;border-radius:50%;
  background:var(--t1);color:#e8dcc5;display:flex;align-items:center;justify-content:center;font-size:24px;
  box-shadow:0 4px 12px rgba(0,0,0,.2);z-index:60;cursor:pointer;}
#ceBar{margin-bottom:12px;}
.ce-back{font-size:13px;color:var(--gold2);cursor:pointer;margin-bottom:8px;}
.ce-subs{display:flex;border-bottom:1px solid var(--bd);}
.ce-sub{padding:8px 0;margin-right:22px;font-size:13px;color:var(--t3);cursor:pointer;position:relative;white-space:nowrap;}
.ce-sub.active{color:var(--t1);font-weight:600;}
.ce-sub.active::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--gold);border-radius:1px;}

/* 窄屏兜底 */
@media (max-width:360px){ .mt-tab{font-size:13px;letter-spacing:1px;} }

/* ══════ 0.7.0-5f1 · 合盘（独立屏）══════
   视觉基调沿用命册（.ce-* 家族）：白卡 + 细边 + 金色强调，
   但把「金色」用在**免费名额**上（金框 = 第一个对象 · 永久免费），
   让用户一眼看出「这一项不要钱」。 */

/* ── 入口卡（首页 / 命册共用）── */
.hp-entry{margin:14px 0 4px;padding:14px 16px;border:1px solid var(--bd2);border-radius:10px;
  background:linear-gradient(135deg,#fffdf7,var(--card));cursor:pointer;}
.hp-entry:active{background:var(--card2);}
.hp-entry-h{display:flex;align-items:center;justify-content:space-between;gap:8px;
  font-size:15px;font-weight:700;color:var(--t1);}
.hp-entry-c{color:var(--gold2);font-size:18px;line-height:1;}
.hp-entry-hint{margin:5px 0 6px;font-size:12.5px;color:var(--t2);line-height:1.6;}
.hp-entry-trial{display:inline-block;font-size:10.5px;color:#8a6a1f;background:rgba(212,168,87,.14);
  border:1px solid rgba(212,168,87,.34);border-radius:999px;padding:2px 9px;}
/* 命册页里的入口更紧凑（册页本身信息已多） */
.hp-entry-sm{margin:10px 0 12px;padding:12px 14px;}
.hp-entry-sm .hp-entry-h{font-size:14px;}

/* ── 屏内骨架 ── */
#hpScreen{padding:4px 0 24px;}
.hp-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
.hp-back{font-size:13px;color:var(--gold2);cursor:pointer;}
.hp-trial{font-size:11px;color:#8a6a1f;background:rgba(212,168,87,.14);
  border:1px solid rgba(212,168,87,.34);border-radius:999px;padding:2px 10px;}
.hp-h1{margin:0 0 6px;font-size:24px;line-height:1.35;font-weight:700;color:var(--t1);
  font-family:"Songti SC","SimSun",serif;letter-spacing:.5px;}
.hp-sub{margin:0 0 16px;font-size:12.5px;line-height:1.8;color:var(--t2);}
.hp-sub2{margin-bottom:14px;}
.hp-sec{font-size:12px;color:var(--t3);letter-spacing:1px;margin-bottom:8px;}
.hp-note{font-size:11px;color:var(--t4);margin:0;}
.hp-div{height:1px;background:var(--bd);margin:18px 0 16px;}

/* ── 对象列表 ── */
.hp-objs{display:flex;flex-direction:column;gap:10px;margin-bottom:12px;}
.hp-obj{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--card);
  border:1px solid var(--bd);border-radius:8px;cursor:pointer;}
.hp-obj:active{background:var(--card2);}
/* 第一个对象（金框）＝ 永久免费的那一个 */
.hp-obj-free{border:2px solid var(--gold);padding:11px 13px;}
.hp-obj-av{flex:none;width:38px;height:38px;border-radius:50%;background:var(--card3);color:var(--t1);
  font-family:"Songti SC","SimSun",serif;font-size:16px;font-weight:700;
  display:flex;align-items:center;justify-content:center;}
.hp-obj-b{flex:1;min-width:0;}
.hp-obj-nm{font-size:14px;font-weight:700;color:var(--t1);}
.hp-obj-tag{margin-top:2px;font-size:10.5px;color:var(--gold2);}
.hp-obj-tag2{margin-top:2px;font-size:10.5px;color:#8a6a1f;}
.hp-obj-r{flex:none;display:flex;align-items:center;gap:8px;}
.hp-obj-arrow{color:var(--t4);font-size:15px;}
/* 价格：与全站价格渲染一致（.b5-price 家族由 JS 生成 s/b 标签） */
.hp-price{margin-left:auto;font-size:18px;font-weight:700;color:#8a6a1f;white-space:nowrap;}
.hp-price s{color:var(--t4);font-weight:400;font-size:13px;margin-right:5px;}
.hp-price b{color:#854F0B;}
.hp-empty{padding:18px 14px;border:1px dashed var(--bd2);border-radius:8px;background:var(--card2);
  color:var(--t2);font-size:13px;line-height:1.8;text-align:center;}
.hp-add{width:100%;padding:13px;border:1px solid var(--bd2);border-radius:8px;background:var(--card);
  color:var(--t2);font-size:13.5px;cursor:pointer;}
.hp-add:active{background:var(--card2);}

/* ── 结果页 ── */
.hp-pair{display:flex;align-items:center;justify-content:center;gap:18px;margin-bottom:16px;}
.hp-side{text-align:center;}
.hp-av{width:52px;height:52px;border-radius:50%;margin:0 auto 5px;background:var(--card3);color:var(--t1);
  font-family:"Songti SC","SimSun",serif;font-size:20px;font-weight:700;
  display:flex;align-items:center;justify-content:center;}
.hp-av-b{background:linear-gradient(135deg,#e0c98f,#b8893a);color:#fff;}
.hp-pz{font-family:"Songti SC","SimSun",serif;font-size:11px;color:var(--t3);letter-spacing:.5px;}

/* 洞察卡：五段各一色，色彩与原型一致 */
.hp-card{margin-bottom:12px;padding:14px 16px;border-radius:8px;border:1px solid var(--bd);
  background:var(--card);}
.hp-card-h{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:5px;}
.hp-card-t{font-size:12px;color:var(--t2);}
.hp-card-v{font-size:14px;font-weight:700;color:#854F0B;text-align:right;}
.hp-card-b{font-size:13px;line-height:1.8;color:var(--t2);margin:0;}
.hp-card-b strong{color:var(--t1);font-weight:600;}
/* 「像在哪」= 浅底强调卡（原型：最亮的一块） */
.hp-card-like{background:#f1efe8;border-color:transparent;}
/* 「她在忍什么」= 红 */
.hp-card-hold{border-left:3px solid #a32d2d;}
.hp-card-hold .hp-card-t{color:#a32d2d;font-weight:600;}
/* 「谁先低头」= 绿 */
.hp-card-yield{border-left:3px solid #3b6d11;}
.hp-card-yield .hp-card-t{color:#3b6d11;font-weight:600;}
/* 「风险」= 蓝 */
.hp-card-risk{border-left:3px solid #185fa5;}
.hp-card-risk .hp-card-t{color:#185fa5;font-weight:600;}
/* 「何时好转」= 灰 */
.hp-card-turn{border-left:3px solid var(--bd2);}
.hp-card-turn .hp-card-t{color:var(--t2);font-weight:600;}

/* 底部「再看一次」 */
.hp-again{border:1px solid var(--bd);border-radius:8px;background:var(--card);padding:12px 14px;}
.hp-again-h{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.hp-again-t{font-size:13.5px;font-weight:600;color:var(--t1);}
.hp-again-p{margin:5px 0 0;font-size:11.5px;color:var(--t3);}

/* ── A 侧（我）选择浮层 ── */
.hp-selfpick{margin:-2px 0 8px;padding:6px;border:1px solid var(--bd2);border-radius:8px;background:var(--card2);}
.hp-selfpick-r{display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:9px 10px;border-radius:6px;cursor:pointer;}
.hp-selfpick-r:active{background:var(--card);}
.hp-selfpick-nm{font-size:13px;color:var(--t1);}

/* ══════════════════════════════════════════════════════════════════════════
   0.7.0-5f2 · 探索屏 .ex-*
   风格沿用 .hp-*（5f1 已验证的 C 端口径）：暖金 #b8860b + 米白底 + 宋体数字。
   ⚠️ 复用既有令牌，不新造色板 —— 双色板必然漂移。
   ══════════════════════════════════════════════════════════════════════════ */
.ex-nav{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 6px;}
.ex-nav b{font-size:17px;font-weight:600;color:#1f1e1b;letter-spacing:1px;}
/* 0.7.0-5i2 · 屏内定位副标（「看清你的节律」）
 * ⚠️ 底栏那一格是**栏目名**（「探索」，门禁硬断言），屏内需要一句**定位语**
 *   告诉用户「这屏是干什么的」⇒ 放在栏目名右侧、金色小字。
 * ⚠️ 用 flex 布局：栏目名 + 定位副标靠左，年份靠右（ex-nav 是 space-between）。 */
.ex-tag{flex:1;margin-left:12px;font-size:12px;color:#8a6a2a;letter-spacing:1px;}
.ex-yr{font-size:12px;color:#8b8680;letter-spacing:1px;}

/* 未排盘引导 */
#exNo{padding:38px 20px;text-align:center;}
.ex-no-t{font-size:16px;color:#1f1e1b;font-weight:600;margin:0 0 8px;}
.ex-no-s{font-size:12.5px;color:#8b8680;line-height:1.9;margin:0 0 20px;}
.ex-go{display:inline-block;padding:10px 30px;border-radius:22px;background:#b8860b;color:#fff;font-size:13.5px;border:none;cursor:pointer;}

/* 顶部：今年最值得动的一天 */
.ex-top{padding:16px;margin:8px 16px 4px;border-radius:12px;background:linear-gradient(160deg,#FAEEDA,#F6EBD6);border:1px solid rgba(184,134,11,.22);}
.ex-top-l{font-size:11.5px;color:#8a6a2a;letter-spacing:1px;margin-bottom:6px;}
.ex-top-d{font-size:24px;font-weight:700;color:#412402;font-family:'Songti SC',Georgia,serif;letter-spacing:1px;line-height:1.25;}
.ex-top-w{font-size:12.5px;color:#633806;line-height:1.75;margin-top:8px;}
.ex-top-g{font-size:10.5px;color:#a98a56;margin-top:6px;font-family:'Songti SC',Georgia,serif;}

/* 区块标题 */
.ex-sec{display:flex;align-items:center;justify-content:space-between;padding:20px 16px 8px;font-size:12.5px;color:#8b8680;letter-spacing:1px;}
.ex-more{font-size:11.5px;color:#b8860b;}
.ex-sub{font-size:12.5px;color:#5f5e5a;line-height:1.75;padding:0 16px;margin:10px 0 0;}
.ex-div{height:1px;background:#eceadf;margin:20px 16px 0;}
.ex-note{font-size:10.5px;color:#aab4ad;line-height:1.8;padding:20px 16px 28px;text-align:center;}

/* 全年 12 个月能量条 */
.ex-strip{display:flex;align-items:flex-end;gap:4px;height:74px;padding:0 16px;}
.ex-bar{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;position:relative;}
.ex-bar i{display:block;width:100%;background:#e6e2d6;border-radius:2px 2px 0 0;}
.ex-bar-hi i{background:#b8860b;}
.ex-bar-lo i{background:#c9c2b2;}
.ex-bar span{font-size:9.5px;color:#b4b2a9;margin-top:4px;}

/* 流年时间轴 */
.ex-tl{margin:0 16px 10px;padding:12px 13px;border-radius:10px;background:#fff;border:1px solid #eae7dc;}
.ex-tl-key{border-color:rgba(184,134,11,.42);background:#FFFDF6;}
.ex-tl-warn{border-color:#e6e0d0;}
.ex-tl-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;}
.ex-tl-h span:first-child{font-size:13px;font-weight:600;color:#1f1e1b;}
.ex-tl-key .ex-tl-h span:first-child{color:#854F0B;}
.ex-tl-t{font-size:10px;color:#8b8680;background:#f2f0e8;border-radius:8px;padding:2px 7px;}
.ex-tl-key .ex-tl-t{color:#854F0B;background:#FAEEDA;}
.ex-tl-b{font-size:12px;color:#4a4844;line-height:1.7;}
.ex-tl-g{font-size:10px;color:#b4b2a9;margin-top:5px;font-family:'Songti SC',Georgia,serif;}
.ex-empty{font-size:12px;color:#8b8680;padding:10px 16px;line-height:1.8;}

/* 今日一观 */
.ex-card{margin:0 16px;padding:15px;border-radius:12px;background:#FAEEDA;border:1px solid transparent;}
.ex-card-t{font-size:13.5px;font-weight:600;color:#412402;line-height:1.7;}
.ex-card-s{font-size:11.5px;color:#633806;margin-top:7px;}
.ex-card-g{font-size:10px;color:#a98a56;margin-top:6px;font-family:'Songti SC',Georgia,serif;}

/* ⚠️ 探索屏是 .wrap 的兄弟节点，需自带底部留白避开 .mt-tabbar（56px） */
#exScreen{padding-bottom:76px;max-width:560px;margin:0 auto;}

/* ── 5f2 修：柱子增加绝对分数字标签 + 修底栏 5 项字距 */
.ex-bar{position:relative;}
.ex-bar b{display:block;font-size:8.5px;color:#a9a396;font-weight:400;text-align:center;margin-top:1px;line-height:1;}
.ex-bar-hi b{color:#8a6a2a;}
/* ⚠️ 底栏从 4 项变 5 项（用户要求插在第 2 位）→ 字距自动缩小 */
.mt-tabbar .mt-tab{letter-spacing:0;}
@media (max-width:390px){ .mt-tabbar .mt-tab{font-size:13px;letter-spacing:0;} }
/* ══════════════════════════════════════════════════════════════════
 * 0.7.0-5g0 · 4 Tab 改造（首页 / 探索 / 命册 / 我的）
 * ══════════════════════════════════════════════════════════════════ */

/* ── 首页 Hero ──
 * C 端首屏第一眼要回答两个问题：这是什么 / 我能得到什么。
 * Hero 用**墨黑卡 + 真金标题**，与站内其它区块的浅底卡片拉开层次，
 * 让「还没排盘」的用户一进来就觉得这是个正经产品，而不是一个表单。 */
.home-hero{position:relative;margin:0 0 20px;padding:22px 20px 20px;border-radius:14px;
  background:linear-gradient(160deg,#1b2420 0%,#243029 62%,#2c3a32 100%);
  box-shadow:0 8px 22px rgba(27,36,32,.16);overflow:hidden;}
.home-hero::after{content:"";position:absolute;right:-42px;top:-42px;width:150px;height:150px;
  border-radius:50%;background:radial-gradient(circle,rgba(212,168,87,.22) 0%,rgba(212,168,87,0) 68%);}
.home-badge{display:inline-block;font-size:10.5px;line-height:1;letter-spacing:.4px;color:#d9c393;
  background:rgba(212,168,87,.14);border:1px solid rgba(212,168,87,.34);border-radius:999px;
  padding:5px 10px;margin-bottom:14px;position:relative;z-index:1;}
.home-t{font-size:25px;font-weight:800;line-height:1.38;letter-spacing:-.4px;color:#f6f3ea;
  margin:0 0 9px;position:relative;z-index:1;}
.home-s{font-size:13px;line-height:1.75;color:#a9b8ae;margin:0;position:relative;z-index:1;}

/* ── 首页主 CTA ──
 * C 端只有一个主动作 ⇒ 按钮必须**满宽、金底、深字**，不能做成一排小按钮。 */
.home-cta{display:block;width:100%;margin:2px 0 6px;padding:14px 18px;border:0;border-radius:11px;
  background:linear-gradient(180deg,#e2b869 0%,#d4a857 100%);color:#1a1a23;
  font-size:15px;font-weight:700;font-family:inherit;letter-spacing:.4px;cursor:pointer;
  box-shadow:0 5px 14px rgba(212,168,87,.30);-webkit-tap-highlight-color:transparent;
  transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out);}
.home-cta:active{transform:translateY(1px);box-shadow:0 2px 7px rgba(212,168,87,.28);}

/* ── 首页内容区标题 ── */
.home-sec{display:flex;align-items:baseline;justify-content:space-between;gap:10px;
  margin:22px 0 6px;font-size:16px;font-weight:800;color:var(--t1);letter-spacing:.3px;}
.home-more{font-size:11px;font-weight:400;color:var(--t3);letter-spacing:0;}
.home-note{font-size:12.5px;line-height:1.75;color:var(--t2);margin:0 0 10px;}

/* ── 排盘页「‹ 首页」返回条 ──
 * 排盘表单已降为首页下的**独立下级页**（data-tab="paipan"），
 * 用户从首页点 CTA 进来 ⇒ 必须给一条明显的回首页的路。 */
.pa-back{display:inline-flex;align-items:center;gap:4px;margin:0 0 12px;padding:6px 12px;
  border-radius:999px;background:var(--card);border:1px solid var(--bd);
  font-size:12.5px;color:var(--t2);cursor:pointer;-webkit-tap-highlight-color:transparent;
  transition:background var(--dur-fast) var(--ease-out);}
.pa-back:active{background:var(--card2);}

/* ── 首页屏底部留白（避 .mt-tabbar 56px）── */
#homeScreen{padding-bottom:76px;max-width:560px;margin:0 auto;}

/* ── 底栏 4 项：字距恢复 ──
 * 5f2 时底栏是 5 项（生辰/探索/命册/问道/归己）⇒ 字距被压到 0 才不挤。
 * 0.7.0-5g0 收敛为 4 项（首页/探索/命册/我的）⇒ 可以把字距还回去，观感更松。 */
.mt-tabbar .mt-tab{letter-spacing:2px;}
@media (max-width:360px){ .mt-tabbar .mt-tab{font-size:13px;letter-spacing:1px;} }
@media (max-width:390px){ .mt-tabbar .mt-tab{font-size:13.5px;letter-spacing:1px;} }
/* ══════════════════════════════════════════════════════════════════
 * 0.7.0-5h0 · 结果页重构（一）· 扎心断言区 + 五法折叠层
 * ══════════════════════════════════════════════════════════════════ */

/* ── 扎心大标题 ──
 * 用**墨黑卡**承载，与站内其它浅底区块拉开层次 ——
 * 结果页第一眼要像「结论」，不像「又一个模块」。 */
.as-hero{position:relative;margin:0 0 16px;padding:18px 18px 16px;border-radius:13px;
  background:linear-gradient(158deg,#1b2420 0%,#26332b 68%,#2e3b33 100%);
  box-shadow:0 8px 20px rgba(27,36,32,.16);overflow:hidden;}
.as-hero::after{content:"";position:absolute;right:-46px;bottom:-46px;width:158px;height:158px;
  border-radius:50%;background:radial-gradient(circle,rgba(212,168,87,.20) 0%,rgba(212,168,87,0) 70%);}
.as-hero-k{font-size:11px;line-height:1;color:#9fb3a6;letter-spacing:.5px;margin-bottom:11px;
  position:relative;z-index:1;}
.as-hero-t{font-size:21px;font-weight:800;line-height:1.5;letter-spacing:-.2px;color:#f6f3ea;
  margin:0;position:relative;z-index:1;}

/* ── 「你现在就在做的」── */
.as-sec{display:flex;align-items:center;gap:8px;margin:18px 0 6px;font-size:12px;
  font-weight:700;color:var(--gold2);letter-spacing:1px;}
.as-sec::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,rgba(184,134,11,.28),rgba(184,134,11,0));}
.as-doing{font-size:13.5px;line-height:1.9;color:var(--t1);margin:0 0 14px;padding-left:2px;}

/* ── 红 / 绿 / 蓝三张断言卡 ──
 * 原型屏② 的三色语义：红=最容易吃亏在这 / 绿=对你有用的 / 蓝=你最近会烦。
 * 每张卡 = 一句标签 + 一段由计算结果推出的正文。 */
.as-card{background:var(--card);border:1px solid var(--bd);border-radius:11px;
  padding:12px 14px;margin-bottom:9px;position:relative;overflow:hidden;}
.as-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;}
.as-card-h{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:5px;}
.as-card-h span{font-size:12px;font-weight:700;letter-spacing:.4px;}
/* 事实标签：真实算出来的数字/干支（那才是「现算」的证据） */
.as-card-h em{flex:none;font-style:normal;font-size:11.5px;font-weight:700;
  padding:2px 8px;border-radius:999px;background:rgba(0,0,0,.045);letter-spacing:.2px;}
.as-card-b{font-size:12.5px;line-height:1.85;color:var(--t2);}

.as-card.red::before{background:#a32d2d;}
.as-card.red .as-card-h span{color:#a32d2d;}
.as-card.red{background:linear-gradient(180deg,rgba(163,45,45,.045),var(--card));border-color:rgba(163,45,45,.20);}

.as-card.green::before{background:#3b6d11;}
.as-card.green .as-card-h span{color:#3b6d11;}
.as-card.green{background:linear-gradient(180deg,rgba(59,109,17,.045),var(--card));border-color:rgba(59,109,17,.20);}

.as-card.blue::before{background:#185fa5;}
.as-card.blue .as-card-h span{color:#185fa5;}
.as-card.blue{background:linear-gradient(180deg,rgba(24,95,165,.045),var(--card));border-color:rgba(24,95,165,.20);}

.as-note{font-size:11.5px;line-height:1.75;color:var(--t3);margin:10px 0 2px;}
.as-empty{font-size:13px;color:var(--t3);padding:16px 14px;border:1px dashed var(--bd2);
  border-radius:9px;background:var(--card2);text-align:center;}

/* ── 取用五法折叠层（按钮 + hidden 内层）──
 * ⚠️ 按钮要显式复位样式（浏览器默认 button 样式会让它像个表单控件）。
 * ⚠️ .wd-fold-in[hidden] 必须写死 display:none —— 作者样式里的 display 会盖掉
 *    UA 的 [hidden]{display:none}，否则「收起」形同虚设（常见坑）。 */
.wd-sec{margin-top:18px;}
.wd-fold{display:flex;align-items:center;gap:10px;width:100%;text-align:left;cursor:pointer;
  padding:13px 15px;font-family:inherit;background:var(--card);border:1px solid var(--bd);
  border-radius:11px;-webkit-tap-highlight-color:transparent;transition:background var(--dur-fast) var(--ease-out);}
.wd-fold:hover{background:var(--card2);}
.wd-fold:active{background:var(--card3);}
.wd-fold-t{flex:1;font-size:14px;font-weight:700;color:var(--t1);letter-spacing:.3px;}
.wd-fold-x{flex:none;font-size:11.5px;color:var(--gold2);letter-spacing:.4px;}
.wd-fold[aria-expanded="true"]{background:var(--card2);border-color:var(--bd2);}
.wd-fold-in{padding:14px 15px 16px;background:var(--card);border:1px solid var(--bd);
  border-top:0;border-radius:0 0 11px 11px;margin-top:-1px;}
.wd-fold-in[hidden]{display:none;}
.wd-fold-in .sec-d{margin-bottom:12px;padding-left:0;}

/* ── 解读页分区牌微调 ──
 * ⚠️ 「深入看」是收费区入口 ⇒ 价签必须更醒目（试运营 ¥0 已在文案里）。 */
.zone-p .zone-t{font-size:15px;}
/* ══════════════════════════════════════════════════════════════════
 * 0.7.0-5h1 · 结果页重构（二）· 专业层折叠（细盘三层 + 走势）
 * ══════════════════════════════════════════════════════════════════ */

/* ── 折叠按钮 ──
 * C 端首屏要「结论在上、资料在下」⇒ 折叠入口做成一张有分量的卡，
 * 而不是一行小字（用户得知道里面有什么）。 */
.pro-fold{margin-top:16px;}
.pro-fold-btn{display:flex;align-items:center;gap:12px;width:100%;text-align:left;cursor:pointer;
  padding:14px 16px;font-family:inherit;background:var(--card);border:1px solid var(--bd);
  border-radius:12px;-webkit-tap-highlight-color:transparent;
  transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out);}
.pro-fold-btn:hover{background:var(--card2);}
.pro-fold-btn:active{background:var(--card3);}
.pro-fold-l{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;}
.pro-fold-t{font-size:14.5px;font-weight:700;color:var(--t1);letter-spacing:.3px;}
.pro-fold-s{font-size:11.5px;color:var(--t3);}
.pro-fold-x{flex:none;font-size:11.5px;color:var(--gold2);letter-spacing:.4px;}
.pro-fold-btn[aria-expanded="true"]{background:var(--card2);border-color:var(--bd2);}

/* ⚠️ 内层用 hidden 控制显隐；[hidden] 必须写死 display:none ——
   作者样式里的 display 会盖掉 UA 的 [hidden]{display:none}（常见坑）。 */
.pro-fold-in[hidden]{display:none;}
.pro-fold-in{padding:2px 0 0;}

/* ── 即读区底部的「展开专业命盘」链接 ── */
.qi-fold-link{display:block;width:100%;margin-top:10px;padding:9px 12px;border:1px dashed var(--bd2);
  border-radius:9px;background:var(--card2);color:var(--gold2);font-size:12.5px;font-weight:600;
  font-family:inherit;letter-spacing:.3px;cursor:pointer;text-align:center;
  -webkit-tap-highlight-color:transparent;transition:background var(--dur-fast) var(--ease-out);}
.qi-fold-link:hover{background:var(--card3);}
.qi-fold-link:active{background:var(--card3);}
/* ══════════════════════════════════════════════════════════════════
 * 0.7.0-5j0 · 命册页「把本机的盘存到云端」入口
 * ══════════════════════════════════════════════════════════════════ */
/* ⚠️ 视觉上与「合盘入口」(.hp-entry) 同族但**更轻**：
 *   它是「数据去向」的操作，不是「功能入口」⇒ 不能抢合盘的视觉权重。 */
.ce-cloud{margin:0 16px 12px;padding:11px 13px;border:1px dashed var(--bd2);border-radius:11px;
  background:var(--card2);cursor:pointer;-webkit-tap-highlight-color:transparent;
  transition:background var(--dur-fast) var(--ease-out);}
.ce-cloud:hover{background:var(--card3);}
.ce-cloud:active{background:var(--card3);}
.ce-cloud-h{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.ce-cloud-t{font-size:13.5px;font-weight:700;color:var(--t1);letter-spacing:.3px;}
.ce-cloud-x{flex:none;font-size:12px;color:var(--gold2);letter-spacing:.4px;}
.ce-cloud-s{margin:5px 0 0;font-size:11.5px;color:var(--t3);line-height:1.6;}
.ce-cloud[hidden]{display:none;}
