/* 本页样式。 */

:root{
  color-scheme:light;
/* ── 间距档位（4px 栅格，全站唯一间距真源） */
  --sp-1:4px;
  --sp-2:8px;
  --sp-3:12px;
  --sp-4:16px;
  --sp-5:24px;
  --paper:#ffffff;
  --paper2:#faf9f6;
  --ink:#1a1a1a;
  --ink2:#52525a;
  --line:#ddd8cf;
  --gold:#c9952a;
  --gold2:#a67c28;
  --red:#b84a3a;
  --red2:#9e3d2f;
  --card:#ffffff;
  --shadow:0 1px 6px rgba(0,0,0,.08);
  --gold-bg:#fbf7f0;
/* 视觉层级规范：标题四级递减字号，色统一 gold2，不另立字体体系。 */
  --tier1:17px; --tier2:16px; --tier3:14px; --tier4:13px;
  --title:var(--gold2);
  --nav:#1e1e1e;
  --nav-text:#f0ece0;
  --cal-hover:#ecebe5;
  --cal-selected:#e2e0d8;
  --cal-zhai:var(--cal-selected);
  --green:#2e7d32;          /* 宜、吉、幸运 */
  --brown:#a0522d;          /* 五黄土星等深棕 */
  --gold-brown:#8a6d1f;     /* 飞星2/8、太乙标注 */
  --special-bg:#f3e7d3;     /* sd-special背景 */
  --special-text:#8a5a00;   /* sd-special文字 */
  --special-border:#d8b46a; /* sd-special边框 */
  --font:'Noto Serif SC','Noto Sans Symbols 2','Noto Sans Symbols','Noto Emoji','Noto Serif','Noto Sans Devanagari','Source Han Serif SC','Songti SC','STSong','SimSun',serif;  /* 全站主字体：思源宋体自托管分片＋符号补全子集，见 assets/fonts/，随站交付不依赖访客系统 */
  --font-serif:'Noto Serif SC','Noto Sans Symbols 2','Noto Sans Symbols','Noto Emoji','Noto Serif','Noto Sans Devanagari','Source Han Serif SC','Songti SC','STSong','SimSun',serif;  /* 经典衬线真源，与主字体同族 */
}

*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}

html,body{height:100%}

body{
  font-family:var(--font);
  background:var(--paper);
  color:var(--ink);
  line-height:1.7;
  -webkit-font-smoothing:auto;
  text-rendering:optimizeLegibility;
}

a{color:inherit;text-decoration:none}

select{font-family:inherit}

select option{font-family:inherit}

.sel-list{position:fixed;z-index:100000;margin:0;padding:2px 0;
  max-height:52vh;max-width:92vw;overflow:auto;overscroll-behavior:contain;
  background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:0;box-shadow:none;
  font-family:var(--font);font-size:14px;line-height:1.7;box-sizing:border-box}

.sel-opt{display:flex;align-items:center;height:var(--sel-opt-h,32px);padding:0 12px;cursor:pointer;white-space:nowrap;font-family:inherit;box-sizing:border-box}

.sel-opt:hover{background:var(--tk-tint,var(--gold-bg))}

.sel-opt.on{color:var(--tk,var(--red));font-weight:400}

.wrap{max-width:1080px;margin:0 auto;padding:0 var(--sp-4)}

.topbar{
  background:#1c1a17;
  color:var(--nav-text);
  position:relative;z-index:40;
}

.topbar .wrap{display:flex;align-items:center;gap:var(--sp-4);height:62px}

.brand{display:flex;align-items:center;gap:var(--sp-3)}

.brand .seal{width:36px;height:36px;flex:none;display:block}

.brand .seal img{display:block;width:100%;height:100%}

.brand .wordmark{display:flex;flex-direction:column;gap:var(--sp-1);line-height:1}

.brand .wordmark b{font-family:var(--font-serif);font-weight:400;font-size:19px;letter-spacing:.32em;text-indent:.06em;color:#f0ece0}

.brand .wordmark i{font-style:normal;font-size:8px;font-weight:400;letter-spacing:.42em;color:#7d776b;
  font-family:'Helvetica Neue',Arial,sans-serif}

.nav{margin-left:auto;display:flex;gap:var(--sp-3);align-items:center}

.nav .nav-link{position:relative;padding:var(--sp-2) 2px;font-size:13.5px;letter-spacing:.08em;color:#c6c0b2;transition:color .15s;white-space:nowrap;border-radius:0}

.nav .nav-link::after{content:'';position:absolute;left:0;right:0;bottom:-2px;height:2px;background:transparent;transition:background .15s}

.nav .nav-link:hover{background:none;color:#f0ece0}

.nav-group{position:relative}

.nav-top{background:none;border:none;color:#c6c0b2;font-family:inherit;font-size:13.5px;letter-spacing:.08em;cursor:pointer;position:relative;
  padding:var(--sp-2) 2px;border-radius:0;white-space:nowrap;display:flex;align-items:center;gap:var(--sp-1);transition:color .15s}

.nav-top::after{content:'';position:absolute;left:0;right:0;bottom:-2px;height:2px;background:transparent;transition:background .15s}

.nav-top:hover{background:none;color:#f0ece0}

.nav-group.has-active .nav-top{color:#f0ece0;font-weight:400}

.nav-group.has-active .nav-top::after{background:#a5321f}

.nav-top .caret{font-size:9px;opacity:.6}

.nav-menu{display:none;position:absolute;top:100%;right:0;margin-top:var(--sp-2);min-width:150px;
  background:#25221e;border:1px solid rgba(255,255,255,.12);border-radius:0;padding:var(--sp-1);z-index:50;
  box-shadow:0 14px 32px rgba(0,0,0,.45);flex-direction:column;gap:var(--sp-1)}

.nav-group:hover .nav-menu,.nav-group.open .nav-menu{display:flex}

.nav-menu a{padding:var(--sp-2) var(--sp-3);border-radius:0;font-size:13.5px;letter-spacing:.05em;color:#c6c0b2;white-space:nowrap;transition:background .12s,color .12s}

.nav-menu a:hover{background:rgba(255,255,255,.07);color:#f0ece0}

.nav-menu a.active{background:none;color:#cf6a4d;font-weight:400}

.ai-gear{display:inline-flex;align-items:center;height:30px;padding:0 var(--sp-2);background:none;
  color:#c6c0b2;border:0;border-radius:0;
  font-size:12.5px;letter-spacing:.1em;font-family:inherit;cursor:pointer;white-space:nowrap;transition:all .15s}

.ai-gear:hover{background:#a5321f;color:#f5efe2}

.ext-link{display:inline-flex;align-items:center;height:30px;padding:0 var(--sp-2);background:none;color:#c6c0b2;text-decoration:none;transition:all .15s}

.ext-link:hover{background:#a5321f;color:#f5efe2}

.ext-link svg{width:16px;height:16px;fill:currentColor;flex:none}

.nav-tools{display:inline-flex;align-items:center;gap:0}

.menu-btn{display:none;align-items:center;justify-content:center;height:30px;padding:0 12px;background:none;
  color:#c6c0b2;border:0;border-radius:0;font-size:14px;line-height:1;
  cursor:pointer;transition:all .15s}

.menu-btn:hover{background:#a5321f;color:#f5efe2}

@media(max-width:640px){
  .grid{grid-template-columns:repeat(3,1fr);gap:var(--sp-2)}
  .grid .mod{padding:var(--sp-3) var(--sp-1)}
  .mod .ic{width:40px;height:40px;font-size:19px;border-radius:0;margin-bottom:var(--sp-1)}
  .mod .nm{font-size:12px}
}

.page{background:transparent;padding:var(--sp-3) var(--sp-4) 0;margin:0;color:var(--ink)}

.page .info-box{
  background:var(--card);border:1px solid var(--line);border-radius:0;
  box-shadow:var(--shadow);
}

.page h1{font-size:23px;margin-bottom:var(--sp-1);font-weight:400}

.page .lead{color:var(--ink2);font-size:14px;margin-bottom:var(--sp-4);padding-bottom:var(--sp-4);position:relative}

.page .lead::after{content:'';display:block;width:1px;height:26px;margin:var(--sp-3) auto 0;background:var(--line)}

.page .lead::before{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--line)}

html .page .lead + *,html .page .lead + * > :first-child{border-top:0;padding-top:0}

#nmTwinKind{width:130px}

.form-row{display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:flex-end;margin-bottom:var(--sp-4)}

.field{display:flex;flex-direction:column;gap:var(--sp-1);min-width:0}

.field label{font-size:13px;color:var(--ink2)}

.field input,.field select{
  height:30px;padding:4px 12px;border:1px solid var(--line);border-radius:0;
  background:var(--card);font-size:13px;font-family:inherit;color:var(--ink);
  line-height:1.35;box-sizing:border-box;
}

.form-row .field{flex:0 0 auto;width:auto;min-width:70px}

.form-row .field input,.form-row .field select{width:auto;max-width:100%;display:inline-block}

.btn{
  height:30px;padding:0 16px;border:1px solid transparent;border-radius:0;cursor:pointer;
  background:var(--red);color:#fff;font-size:13px;font-weight:400;
  font-family:inherit;transition:.2s;max-width:100%;box-sizing:border-box;line-height:1.35;
}

.btn:hover{background:var(--red2)}

.btn.gold{background:var(--red)}

.btn.gold:hover{background:var(--red2)}

.bazi-table{width:100%;border-collapse:collapse;margin-top:var(--sp-3);text-align:center}

.bazi-table th,.bazi-table td{border:1px solid var(--line);padding:10px 6px;font-size:var(--tier4);color:var(--ink)}

.bazi-table th{background:var(--paper2);color:var(--gold2);font-weight:400}

.bazi-table .small{font-size:12px;color:var(--ink);line-height:1.4}

.bazi-table td:first-child{font-weight:400;color:var(--gold2);background:var(--paper2);text-align:center}

.bazi-table th:first-child{text-align:center}

.bazi-table td.small:first-child{font-size:13px}

.wx-mu{color:#5DC336}.wx-huo{color:#F65352}.wx-tu{color:#A07040}

.wx-jin{color:#D4A017}.wx-shui{color:#4190FA}

.bazi-table .kong-cell{color:#9aa0a6}

.bazi-table.equal8{table-layout:fixed;width:100%}

.bazi-table.equal8 th:first-child,.bazi-table.equal8 td:first-child{width:9%;padding-left:4px;padding-right:4px;font-weight:400}

@media(max-width:640px){
  .bazi-table.equal4{table-layout:auto}
  .bazi-table.equal4 th:first-child,.bazi-table.equal4 td:first-child{width:auto;white-space:nowrap}
  .bazi-table.equal8{table-layout:auto}
  .bazi-table.equal8 th:first-child,.bazi-table.equal8 td:first-child{width:auto;white-space:nowrap}
}

#mod-base .bazi-table th{background:transparent}

#mod-base .bazi-table td:first-child{background:transparent}

.qtab{width:100%;border-collapse:collapse;margin:var(--sp-1) 0 var(--sp-3);font-size:13px}

.qtab th,.qtab td{border:1px solid var(--line);padding:5px 7px;text-align:center;color:var(--ink);vertical-align:middle}

.qtab thead th{font-weight:400;color:var(--gold2)}

.qtab-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;margin:var(--sp-1) 0 var(--sp-3)}

.qtab-scroll>.qtab{margin:0}

@media(max-width:640px){
  .qtab .qbar{min-width:30px;height:8px}
  .qtab caption{font-size:12px}
  .qtab.wxq th,.qtab.wxq td{padding:3px 2px}
  .qtab.wxq .qbar{min-width:26px}
  .qtab.wxq .pct{font-size:11px}
  .qtab{table-layout:fixed}.qtab th,.qtab td{padding:3px 2px;word-break:break-word;overflow-wrap:anywhere}
  .qtab td.lbl{white-space:normal}
  .qtab-scroll>.qtab{table-layout:auto;width:auto;min-width:100%}
}

#mod-yili .zr-mod-b .ly-zh-p{margin:var(--sp-1) 0 0}

.yili-tbl th,.yili-tbl td{padding:6px 9px;vertical-align:top;text-align:center;line-height:1.8}

.yili-tbl td:not(:first-child){text-align:left}

.yili-tbl td:nth-child(2) br{display:none}

@media(max-width:640px){
  .yili-tbl{min-width:0;width:auto}
  .yili-tbl th,.yili-tbl td{padding:5px 4px}
  .yili-tbl td:nth-child(2) br{display:inline}
  .yili-tier th:nth-child(1),.yili-tier td:nth-child(1){white-space:nowrap}
  .yili-tier th:nth-child(3),.yili-tier td:nth-child(3){white-space:nowrap}
}

.info-box{background:var(--paper2);border-top:2px solid var(--gold);border-radius:0;padding:var(--sp-3) var(--sp-3)}

@media (max-width:560px){
/* 手机端紧凑化：基础信息卡片（农历、生肖、命宫、节气）内容与表格内容（td 13px/lh1.4）对齐。 */
  #mod-base .info-box{padding:var(--sp-2) var(--sp-3)}  /* 基础信息区 info-box padding 定制（圆角、边框随基础规则） */
  #mod-base .info-box h4{font-size:12px;margin-bottom:var(--sp-1);line-height:1.3}
  #mod-base .info-box p{font-size:13px;line-height:1.4}
  #mod-base .info-box p.jq{font-size:11px;line-height:1.35}
  #mod-base .info-box .gua-sub{font-size:11px;line-height:1.4}
  .bazi-table td.small .tip{line-height:1.2}.overview-card{gap:var(--sp-1) var(--sp-2);padding:var(--sp-2) var(--sp-3);margin:var(--sp-2) 0 var(--sp-1);border-radius:0}.overview-card .ov-item{flex:1 1 auto;white-space:nowrap;gap:var(--sp-1)}
  .overview-card .ov-k{font-size:11px;letter-spacing:.5px}.overview-card .ov-v{font-size:13px;line-height:1.25}
}

.info-box p{font-size:14px;line-height:1.95;color:var(--ink)}

.ly-zh-p{font-size:13.5px;line-height:1.85;color:var(--ink);margin:var(--sp-2) 0 0}

.ly-zh-p:first-of-type{margin-top:var(--sp-1)}

@media(max-width:900px){.fei-n{font-size:22px}}

@media(max-width:640px){.fei-n{font-size:20px}}

.notice{background:transparent;border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0;padding:var(--sp-3) 0;
  font-size:13px;color:var(--ink);margin-top:var(--sp-4)}

.notice-bottom{margin-top:var(--sp-4);text-align:left;font-weight:400}

.mh-ref{margin-top:var(--sp-4);border:0;border-top:1px solid var(--line);border-radius:0;padding:var(--sp-3) 0;background:transparent;text-align:left}

.mh-ref:not([open]){border-bottom:1px solid var(--line)}

.mh-ref summary{cursor:pointer;font-family:var(--font-serif);font-weight:400;color:var(--gold2);font-size:var(--tier3);letter-spacing:.1em;line-height:1.5}

.mh-ref table{width:100%;border-collapse:collapse;margin-top:var(--sp-2)}

.mh-ref th,.mh-ref td{border:1px solid var(--line);padding:6px 8px;font-size:var(--tier4);text-align:center}

.mh-ref th{background:var(--paper);color:var(--gold2)}

.xlr-ref-d>summary::-webkit-details-marker{display:none}

@keyframes fadeInUp{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}

#dayDetail,#out,.detail-anim{animation:fadeInUp .3s ease}

#out + *{margin-top:var(--sp-4)}

@keyframes skShimmer{0%{background-position:100% 0}100%{background-position:-100% 0}}

footer{text-align:center;color:var(--ink2);font-size:12px;padding:var(--sp-4) 0 var(--sp-5)}

footer .dis{color:var(--foot-ink,var(--gold2));font-size:12px;margin-top:0}

footer .os-link{color:var(--foot-ink,var(--gold2));text-decoration:none;border-bottom:1px dotted currentColor;cursor:pointer}

footer .os-link:hover{color:var(--red)}

.tip{cursor:pointer;color:var(--red2)}

.bazi-table td.small .tip{font-size:12px;line-height:1.25}

.tip.wx-mu,.tip.wx-mu:hover{color:#5DC336}

.tip.wx-huo,.tip.wx-huo:hover{color:#F65352}

.tip.wx-tu,.tip.wx-tu:hover{color:#A07040}

.tip.wx-jin,.tip.wx-jin:hover{color:#D4A017}

.tip.wx-shui,.tip.wx-shui:hover{color:#4190FA}

.tip.sha-ji{color:#1f7a3d}

.tip.sha-xiong{color:#F65352}

.tip.sha-neutral{color:var(--ink2)}

.sha-axis{color:var(--ink2)}

.sex-m{color:#3a6ea5}

.opts .field{flex:0 0 auto;min-width:120px}

.field.chk{flex-direction:row;align-items:center;gap:var(--sp-1);min-width:auto}

.field.chk input{width:auto;height:auto;padding:0}

input:where([type=checkbox],[type=radio]){accent-color:var(--gold)}

.sub-note{font-size:12px;color:var(--ink2);margin-top:var(--sp-1);line-height:1.5;font-weight:normal}

.dyn-block:has(+ .sub-note),.qtab-scroll:has(+ .sub-note),table.stab:has(+ .sub-note){margin-bottom:0}

.tbl-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}

.tbl-wrap:has(> table):has(+ .sub-note) > table{margin-bottom:0}

.birth-group{display:flex;flex-wrap:wrap;gap:var(--sp-3) var(--sp-4);align-items:flex-end;
  flex:1 1 100%;padding:var(--sp-3) 0;background:transparent;
  border:0;border-top:1px solid var(--line);border-radius:0;box-shadow:none}

.birth-group .group-label{width:100%;font-size:13px;font-weight:400;color:var(--gold2);line-height:1.1}

.birth-group .field{flex:1 1 140px;min-width:120px;margin:0}

.birth-group .field.hh-lng{max-width:200px}

.opts{display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:stretch;margin-bottom:var(--sp-2);flex-direction:column}

.opts-row{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:flex-end}

.opts-row .group-label{width:100%;font-size:13px;font-weight:400;color:var(--gold2);line-height:1.1}

.opts-row .field{flex:0 0 auto;width:auto;min-width:0;max-width:none}

.opts-row .field select{width:auto;max-width:100%}

.opts-row .field.chk{align-self:flex-end;padding-bottom:var(--sp-2);min-width:auto}

@media(max-width:640px){.opts-row{gap:var(--sp-2)}}

.dual-wrap{display:flex;flex-direction:column;align-items:stretch;gap:var(--sp-2);flex:1 1 100%}

.dual-rel2 .group-label{width:100%;margin:0;color:var(--gold2)}

.dual-rel2 .form-row{margin-bottom:var(--sp-3)}

.dual-rel2 .form-row .field{flex:0 0 auto;width:auto;min-width:0}

.dual-rel2 .form-row .field select{width:auto;align-self:flex-start}

.ts-box{font-size:12px;color:var(--ink2);margin-top:var(--sp-1);line-height:1.5}

.ts-box b{color:var(--red2)}

[hidden]{display:none !important}

.rel-wrap{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-1)}

.rel{font-size:13px;padding:var(--sp-1) var(--sp-3);border-radius:0;border:1px solid var(--line);background:var(--card);cursor:pointer;white-space:nowrap;flex:0 0 auto}

.rel.long{flex:0 0 auto;text-align:center}

.rel.he{background:#eaf6ee;border-color:#bcdcc6;color:#1f7a3d}

.rel.sheng{background:#eef4fb;border-color:#c3d6ec;color:#2b6cb0}

.rel.ke{background:#fbeeee;border-color:#ecc3c3;color:var(--red)}

.rel.xing{background:#f3e2ee;border-color:#dcc0d0;color:#8e2b6b}

.rel.anhe{background:#eef0f2;border-color:#cfd4da;color:#4a5560}   /* 暗合：隐秘、中性 */

.rel.gchong{background:#fdecea;border-color:#e6a8a0;color:var(--red)}   /* 天干相冲 */

.rel.bihe{background:#f7f0e3;border-color:#d8c69a;color:#8a6d3b}   /* 比和、比肩：同气帮扶 */

@media(max-width:540px){.rel-wrap{gap:var(--sp-3) var(--sp-2);line-height:2}.rel{padding:var(--sp-1) var(--sp-2)}}

.rel-title{font-size:var(--tier2);font-family:var(--font-serif);font-weight:400;color:var(--title);margin:var(--sp-4) 0 var(--sp-1);letter-spacing:.2em}

.gz-sec{font-size:13px;font-weight:600;color:var(--gold2);margin:var(--sp-1) 0 var(--sp-1)}

.gz-sec-2{margin-top:var(--sp-2)}

.dyn{margin-top:var(--sp-2)}

.dyn-block{display:flex;flex-direction:column;align-items:stretch;gap:var(--sp-1);margin:var(--sp-2) 0}

.dyn-label{font-size:13px;font-weight:700;color:var(--gold2);padding-left:2px;margin:0;background:transparent;border:none}

.dyn-row{display:flex;flex-wrap:wrap;gap:var(--sp-2);flex:1}

.dyn-btn{font-size:13px;padding:var(--sp-1) var(--sp-2);border-radius:0;border:1px solid var(--line);background:var(--card);cursor:pointer;transition:.15s;text-align:center;min-width:46px;line-height:1.3}

.dyn-btn.active{background:var(--red);color:#fff;border-color:transparent;font-weight:700;box-shadow:0 2px 8px rgba(231,76,60,.35)}

.dyn-btn .g{font-size:13px;font-weight:400;display:block;line-height:1.16;letter-spacing:1px}

.dyn-btn.lr{min-width:46px;padding:var(--sp-1) var(--sp-2)}

.dyn-btn.lr .g{font-size:12px}

.dyn-btn .dy-top{font-size:11px;color:var(--gold2);display:block;margin-bottom:var(--sp-1)}.dyn-btn .dy-age{font-size:10px;color:var(--ink2);display:block;margin-bottom:var(--sp-1)}

.dyn-btn.active .dy-top{color:#fff}.dyn-btn.active .dy-age{color:#fff}

.dyn-btn.active .wx-mu,.dyn-btn.active .wx-huo,.dyn-btn.active .wx-tu,.dyn-btn.active .wx-jin,.dyn-btn.active .wx-shui{color:#fff}

.dyn-detail{background:transparent;border:1px solid var(--line);border-radius:0;padding:var(--sp-3);margin-top:var(--sp-2)}

.mh-ref .dyn-detail{border:none;background:transparent;padding:0;margin-top:var(--sp-2)}

.dyn-detail h4{color:var(--red2);margin:var(--sp-2) 0 var(--sp-1)}

.dyn-detail b{font-weight:400}

.yun-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-1);margin:var(--sp-2) 0 var(--sp-1);font-size:13px}

.yun-crumbs .yc-item{color:var(--gold2);cursor:default;padding:2px var(--sp-1);border-radius:0}

.yun-crumbs .yc-item[data-lv="0"],.yun-crumbs .yc-item[data-lv="1"]{cursor:pointer}

.yun-crumbs .yc-item.yc-cur{background:var(--gold-bg);font-weight:700}

.yun-chart-box{width:100%;overflow-x:auto;background:var(--card);border:1px solid var(--line);border-radius:0;padding:var(--sp-2) 0}

.yun-grid{stroke:var(--line);stroke-width:0.5;stroke-dasharray:3,3}

.yun-axis{stroke:var(--ink2);stroke-width:1}

.yun-axis-label{font-size:11px;fill:var(--ink2);text-anchor:end}

.yun-axis-label.y{text-anchor:end}

.yun-boundary{stroke:var(--line);stroke-width:0.5;stroke-dasharray:2,2}

.yun-boundary-text{font-size:10px;fill:var(--ink2);text-anchor:end}

.yun-boundary-text.gz{fill:var(--gold2);font-weight:700}

.yun-line{stroke-linecap:round;stroke-linejoin:round}

.yun-line.dayun{stroke-dasharray:none}

.yun-legend{display:flex;flex-wrap:wrap;gap:var(--sp-3);margin:var(--sp-2) 0 var(--sp-1);justify-content:center}

.yun-legend-item{display:inline-flex;align-items:center;gap:var(--sp-1);font-size:13px;color:var(--ink)}

.yun-legend-item i{display:inline-block;width:18px;height:3px;border-radius:0}.yun-chart{display:block;width:100%;min-width:900px;height:auto;max-height:360px}

.yun-tick{stroke:var(--ink2);stroke-width:1}

.yun-tick.minor{stroke:var(--line);stroke-width:0.8}

.yun-cross{stroke:#8a6d3b;stroke-width:1;stroke-dasharray:4,3;pointer-events:none}

.yun-pt{pointer-events:none;stroke:#fff;stroke-width:1.2}

#yunHit{touch-action:pan-x pan-y}

.yun-mobile-hint{display:none;font-size:12px;color:var(--ink2);text-align:center;margin:var(--sp-1) 0}

.yun-tip{display:none;position:absolute;z-index:30;background:var(--paper2);color:var(--ink);font-size:12px;line-height:1.55;padding:var(--sp-2) var(--sp-2);border-radius:0;border:1px solid var(--line);box-shadow:0 4px 16px rgba(60,45,15,.18);white-space:normal;min-width:160px;max-width:300px;box-sizing:border-box}

#yunChartWrap{position:relative}

@media(max-width:760px){
  .yun-chart-box{overflow-x:auto;-webkit-overflow-scrolling:touch;overflow-y:hidden;scrollbar-width:thin}
  .yun-chart{min-width:720px;width:auto;max-height:340px}
  .yun-legend{gap:var(--sp-2)}
  .yun-legend-item{font-size:12px}
  .yun-mobile-hint{display:block}
  .yun-tip{font-size:11px;padding:var(--sp-1) var(--sp-2);min-width:0;max-height:36vh;overflow:auto;position:static;z-index:1;max-width:none;margin:var(--sp-1) 0 var(--sp-2);box-shadow:0 2px 8px rgba(60,45,15,.1)}
  .yun-tip-head{font-size:12px}
  .yun-tip-tag{font-size:9px}
  .yun-tip-shen{font-size:10px}
}

@media(max-width:540px){
  .yun-chart{max-height:260px}
}

.det-h{font-size:var(--tier4);font-family:var(--font-serif);font-weight:400;color:var(--title);margin:var(--sp-3) 0 var(--sp-1);letter-spacing:.2em}

.sk-block .rel-sep{display:none}

@media(max-width:540px){
  .sk-block{padding:var(--sp-3) var(--sp-3);line-height:1.7}
  .sk-wrap.rel-grid{grid-template-columns:1fr}
  .sk-block .rel{margin:0 var(--sp-1)}
  .sk-block .rel-row{display:flex;flex-direction:column;gap:var(--sp-1) 0;width:100%;align-items:flex-start}
  .sk-block .rel-g,.sk-block .rel-z{display:block;width:100%;white-space:normal}
  .sk-block .rel-sep{display:none}
}

table.yun-tbl.sk-base,table.yun-tbl.sk-sub{table-layout:fixed;width:100%;min-width:0;border-collapse:collapse}

table.yun-tbl.sk-base th,table.yun-tbl.sk-base td,
table.yun-tbl.sk-sub th,table.yun-tbl.sk-sub td{white-space:normal;word-break:break-word;overflow-wrap:anywhere;vertical-align:top;line-height:1.55;padding:6px 8px;text-align:left}

table.yun-tbl.sk-base thead th,table.yun-tbl.sk-sub thead th{background:var(--card);color:var(--ink2);font-weight:400;white-space:nowrap;text-align:center}

table.yun-tbl.sk-base th.sk-c-name,table.yun-tbl.sk-base td.sk-c-name,
table.yun-tbl.sk-sub th.sk-c-name,table.yun-tbl.sk-sub td.sk-c-name{width:9em;max-width:9em;min-width:9em;text-align:center}

table.yun-tbl.sk-sub th.sk-c-read,table.yun-tbl.sk-sub td.sk-c-read{width:auto}.sk-block{font-size:13px;line-height:1.7;padding:var(--sp-3) var(--sp-4);border:1px solid var(--line);border-radius:0;background:transparent;margin-top:var(--sp-2)}

@media(max-width:640px){
  table.yun-tbl.sk-base,table.yun-tbl.sk-sub{font-size:12px;line-height:1.5}
  table.yun-tbl.sk-base td,table.yun-tbl.sk-base thead th,
  table.yun-tbl.sk-sub td,table.yun-tbl.sk-sub thead th{padding:6px 6px}
}

table.yun-tbl.detail{table-layout:auto;width:100%;min-width:0}

table.yun-tbl.detail th,table.yun-tbl.detail td,
table.yun-tbl.rel th,table.yun-tbl.rel td,
table.yun-tbl.pairrel th,table.yun-tbl.pairrel td{white-space:normal;word-break:break-word;overflow-wrap:anywhere;vertical-align:top;line-height:1.6;text-align:left}

table.yun-tbl.detail thead th,table.yun-tbl.rel thead th,table.yun-tbl.pairrel thead th{white-space:nowrap;text-align:center}

table.yun-tbl.detail th:nth-child(1),table.yun-tbl.detail td:nth-child(1){width:64px;white-space:nowrap}

table.yun-tbl.detail th:nth-child(n+2),table.yun-tbl.detail td:nth-child(n+2),
table.yun-tbl.rel th:nth-child(n+2),table.yun-tbl.rel td:nth-child(n+2),
table.yun-tbl.pairrel th:nth-child(n+2),table.yun-tbl.pairrel td:nth-child(n+2){width:25%}

table.yun-tbl.detail td,table.yun-tbl.detail th{padding:6px 4px}

table.yun-tbl.detail th,table.yun-tbl.detail td{text-align:center}

table.yun-tbl.has-xy.detail th:nth-child(n+2),table.yun-tbl.has-xy.detail td:nth-child(n+2){width:20%}

table.yun-tbl.has-xy.rel-matrix th:nth-child(n+2),table.yun-tbl.has-xy.rel-matrix td:nth-child(n+2){width:17.4%}

table.yun-tbl.pairrel td .rel-row,table.yun-tbl.rel-matrix td .rel-row{display:block}

table.yun-tbl.pairrel td .rel-g,table.yun-tbl.pairrel td .rel-z,
table.yun-tbl.rel-matrix td .rel-g,table.yun-tbl.rel-matrix td .rel-z{display:block;white-space:normal}

table.yun-tbl.pairrel td .rel-sep,table.yun-tbl.rel-matrix td .rel-sep{display:none}

table.yun-tbl.rel-matrix{table-layout:fixed;width:100%;min-width:0;border-collapse:collapse}

table.yun-tbl.rel-matrix th,table.yun-tbl.rel-matrix td{white-space:normal;word-break:break-word;overflow-wrap:anywhere;vertical-align:top;line-height:1.5;text-align:left}

table.yun-tbl.rel-matrix thead th{background:var(--card);color:var(--gold2);font-weight:400;white-space:nowrap;text-align:center}

table.yun-tbl.rel-matrix tbody th{background:transparent;color:var(--ink2);font-weight:400;text-align:center;white-space:nowrap}

table.yun-tbl.rel-matrix th.mx-corner{width:13%;text-align:center;color:var(--gold2);font-size:var(--tier4)}

table.yun-tbl.rel-matrix th:nth-child(n+2),table.yun-tbl.rel-matrix td:nth-child(n+2){width:21.75%}

table.yun-tbl.rel-matrix tbody th b{color:var(--ink);font-weight:400}

table.yun-tbl.rel-matrix .mx-diag,table.yun-tbl.rel-matrix .mx-none,table.yun-tbl.rel-matrix .mx-mirror{text-align:center;color:var(--ink2);font-size:18px;vertical-align:middle}

table.yun-tbl.rel-matrix .mx-mirror{background:transparent}

table.yun-tbl.rel-matrix td .rel-g,table.yun-tbl.rel-matrix td .rel-z{font-size:12px}

table.yun-tbl.rel td .rel,table.yun-tbl.pairrel td .rel,table.yun-tbl.rel-matrix td .rel{
  border:none;background:none;padding:0;margin:0 var(--sp-1) 0 0;
  white-space:normal;word-break:break-all;display:inline;cursor:pointer;line-height:1.6}

table.yun-tbl.rel td .rel.he,table.yun-tbl.pairrel td .rel.he,table.yun-tbl.rel-matrix td .rel.he{color:#1f7a3d}

table.yun-tbl.rel td .rel.sheng,table.yun-tbl.pairrel td .rel.sheng,table.yun-tbl.rel-matrix td .rel.sheng{color:#4190FA}

table.yun-tbl.rel td .rel.ke,table.yun-tbl.pairrel td .rel.ke,table.yun-tbl.rel-matrix td .rel.ke{color:#F65352}

table.yun-tbl.rel td .rel.anhe,table.yun-tbl.pairrel td .rel.anhe,table.yun-tbl.rel-matrix td .rel.anhe{color:#4a5560}

table.yun-tbl.rel td .rel.gchong,table.yun-tbl.pairrel td .rel.gchong,table.yun-tbl.rel-matrix td .rel.gchong{color:#F65352}

table.yun-tbl.rel td .rel.bihe,table.yun-tbl.pairrel td .rel.bihe,table.yun-tbl.rel-matrix td .rel.bihe{color:#8a6d3b}

table.yun-tbl.rel td .rel.spec-he,table.yun-tbl.pairrel td .rel.spec-he,table.yun-tbl.rel-matrix td .rel.spec-he{color:#1f7a3d}

table.yun-tbl.rel-matrix td .rel{margin-right:0}

.modal-mask{position:fixed;inset:0;background:rgba(30,20,10,.45);display:none;align-items:center;justify-content:center;z-index:100;padding:var(--sp-4)}

.modal{background:var(--card);max-width:440px;width:100%;border-radius:0;border:2px solid var(--gold);box-shadow:0 10px 40px rgba(0,0,0,.3);padding:var(--sp-5);position:relative;max-height:80vh;overflow:auto}

.modal[class*="dtm-"]{border-color:var(--tk)}

.modal .close{position:absolute;top:10px;right:14px;font-size:22px;cursor:pointer;color:var(--ink2)}

@media(max-width:420px){.dt-modal{max-width:92vw}.dt-cell{min-height:34px;font-size:13px}}

.bazi-table .zhu{background:var(--paper2);color:var(--gold2);font-weight:400}

.nayin-wrap .info-box.nayin-box{background:transparent;border:none;padding:0;box-shadow:none}

.nayin-wrap .info-box.nayin-box.nayin-bd{border:1px solid var(--line);border-radius:0;padding:var(--sp-3)}

.nayin-wrap .bazi-table th{background:transparent}

.nayin-wrap .bazi-table td:first-child{background:transparent}

.nayin-rel{margin-top:var(--sp-1)}

.nayin-rel th,.nayin-rel td{padding:6px 9px;font-size:13px;vertical-align:top;text-align:center}

.nayin-rel td:last-child{text-align:left}

.nayin-rel th{text-align:center;background:var(--paper2);color:var(--gold2);font-weight:400}

.nayin-rel td.small{line-height:1.8;font-size:13px}

.nayin-h{font-size:13px;font-weight:600;color:var(--gold2);margin:var(--sp-4) 0 var(--sp-1);letter-spacing:.2px}

.nayin-wrap>.nayin-h:first-child{margin-top:var(--sp-1)}

@media(max-width:560px){
  .nayin-rel{table-layout:fixed;width:100%}
  .nayin-rel th,.nayin-rel td{padding:5px 2px}
  .nayin-rel th:nth-child(1),.nayin-rel td:nth-child(1){width:12%}
  .nayin-rel th:nth-child(2),.nayin-rel td:nth-child(2){width:18%}
  .nayin-rel th:nth-child(3),.nayin-rel td:nth-child(3){width:9%}
  .nayin-rel th:nth-child(4),.nayin-rel td:nth-child(4){width:13%}
  .nayin-rel th:nth-child(5),.nayin-rel td:nth-child(5){width:8%}
  .nayin-rel th:nth-child(6),.nayin-rel td:nth-child(6){width:40%}
  .nayin-rel td.small{line-height:1.45}
}

.nayin-bd .ly-zh-p:first-child{margin-top:0}

.cal-cell.selected:not(.today){background:#d5c5ae;border-color:transparent}.cal-cell .festival+.ld{display:none}

.cal-cell .rest-mark{top:auto;bottom:var(--sp-1);left:var(--sp-1);display:none}

.ai-block{margin-top:var(--sp-4);border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0;background:transparent;overflow:hidden}

.ai-head{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);background:transparent;font-size:12px;cursor:pointer;list-style:none}

.ai-block[open] .ai-head{border-bottom:1px solid var(--line)}

.ai-head::-webkit-details-marker{display:none}

.ai-head::after{content:'▾';font-size:12px;line-height:1;transition:transform .15s}

.ai-block:not([open]) .ai-head::after{transform:rotate(-90deg)}

.ai-block .ai-head h3{font-size:12px;font-weight:400;color:var(--gold2);font-family:var(--font-serif);letter-spacing:.1em;margin:0}

.ai-head .ai-status{font-size:12px;color:var(--ink2);margin-left:auto;min-width:0}

footer .geo-foot{display:none;align-items:center;justify-content:center;gap:var(--sp-1);margin-top:var(--sp-2);font-size:12px;color:var(--foot-ink,var(--gold2));max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

footer .geo-foot.on{display:flex}

footer .geo-foot svg{flex:none;width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linejoin:round}

.ai-body{padding:var(--sp-3) var(--sp-4)}

.ai-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center}

.ai-actions .btn{font-weight:400;font-size:13px;padding:0 12px;line-height:1.35}

.btn.soft{background:var(--gold-bg);color:var(--ink);border:1px solid var(--line)}

.btn.soft:hover{background:var(--card);border-color:var(--line)}

.ai-pane{display:none}.ai-pane.active{display:block}

.ai-tip{font-size:12px;color:var(--ink2);margin-top:var(--sp-2)}

@media(max-width:540px){
  .ai-model-row{gap:var(--sp-3);padding:var(--sp-2) 0;min-height:40px}
  .ai-model-chk{flex:0 0 18px;width:18px;height:18px;min-width:18px}
  .ai-model-name{font-size:14px;word-break:break-word}
  .ai-model-del{font-size:13px;padding:var(--sp-1) var(--sp-3)}
  #aiModelList{max-height:220px}
}

.an-block{margin-top:var(--sp-2)}

.an-plain{margin-top:var(--sp-2)}

.an-row.an-yun{border:none;padding:0;border-radius:0;background:transparent;margin-bottom:0}

.an-row{display:block;padding:var(--sp-3) var(--sp-3);border:1px solid var(--line);border-radius:0;background:transparent;margin-bottom:var(--sp-3)}

.an-row:last-child{margin-bottom:0}

.an-k{display:block;color:var(--gold2);font-weight:700;font-size:14px;margin:0 0 var(--sp-1);padding:0}

.an-v{display:block;min-width:0;font-size:13.5px;line-height:1.85;color:var(--ink)}

.an-block b{font-weight:400}

.an-pai{display:grid;grid-template-columns:1fr;gap:var(--sp-2);margin:var(--sp-2) 0}

.an-p{border:1px solid var(--line);border-radius:0;background:transparent;padding:var(--sp-3) var(--sp-3);margin:0;font-size:13.5px;line-height:1.85;color:var(--ink);text-align:justify;text-justify:inter-character}

.an-p.an-full{grid-column:1/-1}

.an-struct{background:transparent}

.struct-note{font-weight:400;color:var(--ink);margin-bottom:var(--sp-1);font-size:13px}

.struct-item{font-size:13px;line-height:1.7;margin:var(--sp-1) 0}

.sd-tag{display:inline-block;font-size:12px;font-weight:400;padding:0 var(--sp-1);border-radius:0;margin-right:var(--sp-1);vertical-align:middle}

.sd-病{background:#fdecea;color:var(--red);border:1px solid #e6b0aa}

.sd-special{background:var(--special-bg);color:var(--special-text);border:1px solid var(--special-border)}

.sd-凶{background:#fdecea;color:var(--red);border:1px solid #e6b0aa}

.sd-吉{background:#eafaf1;color:#1e8449;border:1px solid #a9dfbf}

.de-row{margin-top:var(--sp-1);display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-1)}

.de-chip{display:inline-block;font-size:12px;padding:1px var(--sp-2);border-radius:0;border:1px solid #ccc}

.de-on{background:#eafaf1;color:#1e8449;border-color:#a9dfbf}

.de-off{background:#f4f4f4;color:#999;border-color:#ddd}

.fu-wrap{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-1);margin:var(--sp-1) 0}

.fu-tag{flex:0 0 auto;font-weight:400;margin-right:var(--sp-1)}

.fu-pill{display:inline-block;padding:var(--sp-1) var(--sp-3);border-radius:0;font-size:13px;line-height:1.6;white-space:nowrap}

.fu-xi{background:#eaf6ee;border:1px solid #bcdcc6;color:#1f7a3d}

.fu-ji{background:#fbeeee;border:1px solid #ecc3c3;color:var(--red)}

.fu-xi-tag{color:#1f7a3d}

.fu-ji-tag{color:#F65352}

.fu-de-tag{color:var(--ink2)}

.wf-formula{font-size:13.5px;line-height:1.9;color:var(--ink);margin-bottom:var(--sp-1)}

.wf-formula b{color:var(--gold2);font-weight:700}

.synth-top{font-size:13.5px;font-weight:400;margin-bottom:var(--sp-1)}

.synth-top b{font-size:14px;font-weight:400}

.synth-conflict{font-size:12.5px;color:var(--red);background:#fbeeee;border:1px solid #ecc3c3;border-radius:0;padding:var(--sp-1) var(--sp-2);margin:var(--sp-1) 0;line-height:1.5}

.an-yun{margin:var(--sp-1) 0}

.yun-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}

.yun-tbl{border-collapse:collapse;width:100%;min-width:540px;margin-top:var(--sp-1);font-size:13px;background:transparent;table-layout:fixed}

.yun-tbl th{background:transparent;color:var(--gold2);padding:8px 6px;text-align:center;font-weight:400;border:1px solid var(--line)}

.yun-tbl td{border:1px solid var(--line);padding:6px 7px;vertical-align:top;font-size:13px}

.yun-tbl .yun-key{font-size:12px;color:var(--ink2);line-height:1.42}

.ge-cheng{color:#1f7a3d}

.yun-tbl th:nth-child(1),.yun-tbl td:nth-child(1){width:38px;padding:6px 3px;white-space:nowrap;text-align:center}

.yun-tbl th:nth-child(2),.yun-tbl td:nth-child(2){width:50px;padding:6px 3px;white-space:nowrap;text-align:center}

.yun-tbl th:nth-child(3),.yun-tbl td:nth-child(3){width:16%}

.yun-tbl th:nth-child(4),.yun-tbl td:nth-child(4){width:42%}

.yun-tbl th:nth-child(5),.yun-tbl td:nth-child(5){width:38px;padding:6px 3px;white-space:nowrap;text-align:center}

table.yun-tbl.yd{table-layout:fixed;width:100%;min-width:0}

table.yun-tbl.yd th:nth-child(1),table.yun-tbl.yd td:nth-child(1){width:19%;padding:6px 4px;text-align:center;line-height:1.35;word-break:break-word;overflow-wrap:anywhere} /* 大运（干支、岁数、年份三行；加宽至 19% 容纳"约 XXXX–XXXX 年"，并允许 word-break 防撑出框外） */

.yun-age{font-size:12px;color:var(--ink2);line-height:1.3} /* 大运内岁数：浅色缩小，与关键引动列正文同调 */

table.yun-tbl.yd th:nth-child(2),table.yun-tbl.yd td:nth-child(2){width:15%;white-space:normal;word-break:break-word;text-align:center;line-height:1.5} /* 用忌：居中可换行 */

table.yun-tbl.yd th:nth-child(3),table.yun-tbl.yd td:nth-child(3){width:53%;white-space:normal;word-break:break-word;overflow-wrap:anywhere} /* 关键引动：主宽 */

table.yun-tbl.yd th:nth-child(4),table.yun-tbl.yd td:nth-child(4){width:13%;padding:6px 4px;text-align:center} /* 吉凶：与大运列同宽 */

.yd-extra{display:inline;font-size:12px;line-height:1.5;color:var(--ink2)}

.ev-jx{text-align:center;font-weight:400;color:var(--gold2)}

.yun-tbl .yun-gz{font-weight:400;color:var(--ink);line-height:1.35}

.yun-empty td{background:transparent;color:var(--ink2);font-size:var(--tier4);text-align:center}

@media(max-width:640px){
  .yun-tbl .yun-key{font-size:11px}
}

@media(max-width:640px){
  table.yun-tbl.yd th:nth-child(1),table.yun-tbl.yd td:nth-child(1),
  table.yun-tbl.yd th:nth-child(2),table.yun-tbl.yd td:nth-child(2),
  table.yun-tbl.yd th:nth-child(4),table.yun-tbl.yd td:nth-child(4){
    white-space:normal;word-break:break-word;overflow-wrap:anywhere
  }
}

.life-card{border:1px solid var(--line);border-radius:0;background:transparent;padding:var(--sp-3) var(--sp-3);margin:0}

.life-card h5{font-size:var(--tier4);font-weight:700;color:var(--title);margin:0 0 var(--sp-1)}

.shishen-card .nayin-h{font-weight:400;margin:var(--sp-2) 0 var(--sp-1)}

.core-box{display:flex;flex-direction:column;gap:var(--sp-4);margin-top:var(--sp-1)}

.remedy{margin-top:var(--sp-2)}

.remedy-tbl{width:100%;border-collapse:collapse;font-size:13px;margin-top:var(--sp-2)}

.remedy-tbl th,.remedy-tbl td{border:1px solid var(--line);padding:6px 9px;line-height:1.8;vertical-align:top;text-align:center;font-size:13px;word-break:break-word;overflow-wrap:anywhere;background:transparent}

.remedy-tbl td:last-child{text-align:left}

.remedy-tbl th{background:transparent;color:var(--gold2);font-weight:400}

.remedy-tbl td.lbl{width:4.5em;min-width:4.5em;max-width:4.5em;font-weight:400;color:var(--gold2);white-space:nowrap;text-align:center;vertical-align:top;background:transparent}

.remedy-tbl td.lbl.rem-good{color:#2b8a3e}

.remedy-tbl td.lbl.rem-bad{color:var(--red)}

@media(max-width:600px){
  .form-row.r2 .field{flex:0 0 auto;width:auto;min-width:0}
  .form-row.r3 .field{flex:0 0 auto}
  .form-row.r3 #bSex{min-width:40px !important;max-width:80px !important}
  .form-row.r3 .btn{flex:0 0 auto}
}

.ai-help summary::-webkit-details-marker{display:none}

#aiModelList{max-height:190px;overflow-y:auto;border:1px solid #eee8da;border-radius:0;background:var(--card);padding:0 12px}

@media(max-width:640px){
  .modal.ai-cfg{max-height:92vh;overflow-y:auto}
  .ai-cfg-head{padding:9px 60px 9px 18px}
  .ai-cfg-head h3{font-size:15px;gap:var(--sp-2)}
  .ai-cfg-head > .close{right:14px}
  .ai-sec{padding:14px 18px 2px}
  .ai-saved{padding-bottom:44px}
  .modal.ai-cfg .ai-actions{margin:var(--sp-3) var(--sp-4) 0}
}

.birth-group.compact{gap:var(--sp-2);padding:var(--sp-3) 0}

.birth-group.compact .field{flex:0 0 auto;min-width:0;margin:0;width:auto;max-width:none}

.birth-group.compact .field.hh-lng{flex:0 0 96px;min-width:96px;max-width:96px}

.birth-group.compact .group-label{width:100%;margin:0}

.birth-group.compact .field select{width:auto;align-self:flex-start}

.birth-group.compact .field select[id$="Prov"]{width:137px}

.birth-group.compact .field select[id$="City"]{width:96px}

.birth-group.compact .field select[id$="Dist"]{width:137px}

@media(max-width:640px){
/* 出生地窄屏：三级下拉与经度恒守上方全档定宽（省 137、市 96、区县 137、经度 96）， */
  .birth-group,.birth-group.compact{gap:var(--sp-2);padding-top:var(--sp-2);padding-bottom:var(--sp-2)}
  .birth-group.compact .field:has(input[type="text"]){flex:0 0 96px;min-width:96px;max-width:96px}
}

@media(max-width:640px){
  .page{padding:var(--sp-4) var(--sp-4) 0}
  .info-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--sp-2)}
  .dyn-btn{min-width:42px;padding:var(--sp-1) var(--sp-2)}
  .dyn-block{margin:var(--sp-2) 0;gap:var(--sp-1);align-items:stretch}
  .dyn-label{font-size:12px;font-weight:700;color:var(--gold2);background:transparent;border:none;padding:0;margin:0;writing-mode:horizontal-tb;letter-spacing:0}
  .dyn-row{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:var(--sp-1);gap:var(--sp-1);align-items:stretch}
  .dyn-row .dyn-btn{min-width:38px;padding:var(--sp-1) var(--sp-1);font-size:11px;border-radius:0;gap:0}
  .dyn-row .dyn-btn .g{font-size:11px;letter-spacing:0;white-space:nowrap}
  .dyn-row .dyn-btn .dy-top{font-size:9px}
  .dyn-row .dyn-btn .dy-age{font-size:9px}
  .dyn-row .dyn-btn .tg{font-size:10px}
  .dyn-row .dyn-btn .tz{font-size:10px;margin-left:var(--sp-1)}
  .dyn-row .dyn-btn .cs{font-size:9px}
  #lrs{display:grid;grid-template-columns:repeat(var(--lr-cols,10),minmax(0,1fr));gap:var(--sp-1)}
  #lrs .dyn-btn.lr{min-width:0;padding:var(--sp-1) 1px;font-size:9px}
  #lrs .dyn-btn.lr .g{font-size:10px;letter-spacing:0;white-space:nowrap}
  #lrs .dyn-btn.lr .dy-top{font-size:9px}
  #lrs .dyn-btn.lr .tg{font-size:9px}
  #lrs .dyn-btn.lr .tz{font-size:9px;margin-left:var(--sp-1)}
  #lrs .dyn-btn.lr .cs{font-size:9px}
  .bazi-table .gan,.bazi-table .zhi{font-size:22px}
/* 窄屏：四柱表按自适应布局（table-layout:fixed + 100% 宽），列自动均分、内容折行，不横向滚动； */
  .bazi-table{table-layout:fixed;width:100%}.bazi-table th,.bazi-table td{padding:8px 3px;font-size:13px;word-break:break-word;overflow-wrap:anywhere;vertical-align:middle}
  .bazi-table th:first-child,.bazi-table td:first-child{width:50px}
  .form-row{gap:var(--sp-2)}
  .form-row .field{flex:0 0 auto;width:auto;min-width:70px}
  .form-row .field input,.form-row .field select{width:auto;max-width:100%;box-sizing:border-box;display:inline-block}
  .cal-page .form-row .field{width:155px}
  .cal-page .form-row .field input{width:auto}
  .ai-chat{max-height:480px}#aiCfgForm .ai-actions{gap:var(--sp-3)!important}#aiCfgForm .ai-actions > div{gap:var(--sp-3)!important}
  .cal-grid .wd{font-size:12px;padding:var(--sp-1) 0}
/* 格高与角标带：上下内边距各取 --sp-3，恰是一条角标带的高度（内缩 --sp-1 加字号 8px）； */
  .cal-cell{padding:var(--sp-3) 0;min-height:64px;aspect-ratio:auto;min-width:0}
  .cal-cell .sd{font-size:15px;line-height:1}
  .cal-cell .jq-mark,.cal-cell .fest-mark,.cal-cell .mem-mark,.cal-cell .rest-mark,.cal-cell .mk{font-size:8px}
/* 农历日字号须留出三字位：佛历、道历、藏历日名作佛十九、道十九、藏十八三字。 */
  .cal-cell .ld{font-size:8px;line-height:1.15;margin-top:var(--sp-1)}
  .cal-cell .festival{font-size:9.5px;line-height:1.15;margin-top:var(--sp-1);width:100%;text-align:center}
/* 窄屏格内只留数字、农历日与角标：节日名与节气名一律隐去（角标已示其类）， */
  .cal-cell .slot{display:none}
  .cal-cell .slot-jq~.slot-fest~.ld{display:block}
  .cal-cell .fest-mark,.cal-cell .mem-mark{display:block}
  .cal-nav{margin:var(--sp-1) 0 var(--sp-2);gap:var(--sp-1)}
}

@media(max-width:420px){
  .info-grid{grid-template-columns:1fr}
  .bazi-table th,.bazi-table td{padding:6px 2px}
  .bazi-table .gan,.bazi-table .zhi{font-size:18px}
  .bazi-table th:first-child,.bazi-table td:first-child{width:42px}
}

@media(max-width:640px){
  .lr-center-ke{font-size:12px}
}

.mh-ref .sub-note{margin:var(--sp-1) 0}

.zr-mod{border:1px solid var(--line);border-radius:0;background:var(--paper);margin:var(--sp-2) 0;padding:0;overflow:hidden}

.zr-quant{background:transparent}

.zr-mod>summary{list-style:none;cursor:pointer;padding:var(--sp-2) var(--sp-3);font-weight:700;color:var(--gold2);font-size:var(--tier3);display:flex;align-items:center;gap:var(--sp-2);user-select:none}

.zr-mod>summary>.zr-t{display:flex;align-items:center;gap:0;white-space:nowrap}

.zr-mod>summary::-webkit-details-marker{display:none}

.zr-mod>summary::before{content:'▾';font-size:12px;color:var(--gold);transition:transform .15s}

@media (hover:hover) and (pointer:fine){
.zr-mod>summary:hover{background:var(--gold-bg)}
}

.zr-mod-b{padding:var(--sp-1) var(--sp-3) var(--sp-3);border-top:1px solid var(--line)}

@media(max-width:560px){
}

@media(max-width:1080px){
/* 窄屏导航：顶栏右下方下拉卡片（桌面端下拉的窄屏形态），不通栏铺开、不占满屏。 */
  .nav{display:none;position:absolute;top:62px;left:auto;right:var(--sp-4);
    width:min(calc(100% - var(--sp-4) * 2),420px);
    grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-1) var(--sp-1);
    padding:var(--sp-2);background:#25221e;border:1px solid rgba(255,255,255,.12);
    box-shadow:0 14px 32px rgba(0,0,0,.45);z-index:30;
    max-height:calc(100vh - 74px);overflow-y:auto;overscroll-behavior:contain}
  .nav.open{display:grid;animation:fadeInUp .18s ease}
  .nav .nav-link,.nav-top{display:flex;align-items:center;justify-content:space-between;
    min-height:36px;padding:0 var(--sp-2);font-size:14px}
  .nav-group{position:static;display:flex;flex-direction:column}
  .nav-group.open{grid-column:1/-1}
  .nav-top .caret{font-size:11px;opacity:.75;transition:transform .18s}
  .nav-group.open .caret{transform:rotate(180deg)}
  .nav-menu{position:static;display:none;grid-template-columns:repeat(2,minmax(0,1fr));
    gap:var(--sp-1) var(--sp-1);min-width:0;margin:0 0 var(--sp-2);padding:0 0 0 var(--sp-3);
    background:transparent;border:0;box-shadow:none}
  .nav-group:hover .nav-menu{display:none}
  .nav-group.open .nav-menu{display:grid}
  .nav-menu a{padding:6px var(--sp-2)}
/* AI 入口随两列网格自然流排：附录后一格即 ⚙AI，不强制整行（满宽整行费一行）； */
  .ai-gear{height:auto;min-height:36px;padding:0 var(--sp-2);border:0;font-size:14px}
  .menu-btn{display:inline-flex;margin-left:auto}
  .nav-tools{display:contents}
  .ext-link{height:var(--sp-5);padding:0 var(--sp-2)}
  .big-date .d{font-size:48px}
  .dyn-label{font-size:12px}
}

.scroll-jump{position:fixed;right:0;top:50%;transform:translateY(-50%);z-index:60;
  display:flex;flex-direction:column;align-items:center;gap:var(--sp-1);background:var(--paper);
  opacity:0;visibility:hidden;transition:opacity .18s,visibility .18s}

.scroll-jump.show{opacity:1;visibility:visible}

.sj-btn{font:inherit;font-size:16px;line-height:1;cursor:pointer;
  border:0;border-radius:0;background:transparent;color:var(--gold2);
  padding:var(--sp-2) var(--sp-1);outline:none;transition:color .15s}

.sj-btn:hover{color:var(--gold)}

.sj-btn:focus{outline:none}

.sj-btn:disabled{opacity:.35;cursor:default}

@media(max-width:640px){
  .sj-btn{font-size:13px;padding:var(--sp-1) 2px}
}

.mod-head{display:flex;align-items:center;justify-content:flex-start;gap:var(--sp-2);cursor:pointer;user-select:none;
  background:transparent;border-top:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0;
  box-shadow:none;padding:var(--sp-2) 0;margin:var(--sp-4) 0 var(--sp-3);transition:.15s}

@media (hover:hover) and (pointer:fine){
.mod-head:hover{background:var(--gold-bg);box-shadow:none}
}

.gua-ico{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;
  width:22px;height:22px;border-radius:0;background:#f6efda;color:var(--gold2);
  font-size:15px;line-height:1}

.mod-caret{display:inline-block;color:var(--gold);font-size:13px;line-height:1;transition:transform .2s ease}

.mod.collapsed .mod-caret{transform:rotate(-90deg)}

.mod-title{font-size:var(--tier1);font-weight:400;color:var(--ink);letter-spacing:.6px}

.mod-sub{font-size:12px;color:var(--ink2);margin-left:var(--sp-1)}

.mod-body{overflow:visible;text-align:left}

.mod.collapsed .mod-body{display:none}

.mod,.mod-body,.mod-head{text-align:left}.mod{background:var(--card);border:1px solid var(--line);border-radius:0;padding:var(--sp-4) var(--sp-3);text-align:center;cursor:pointer;transition:.2s;box-shadow:var(--shadow);margin-bottom:var(--sp-4)}

@media screen{
  section.mod{background:transparent;border:none;border-radius:0;padding:0;box-shadow:none}
}

.info-box h4,.info-box p{text-align:left}

@media(max-width:640px){
  .info-box .gua-sub{font-size:11px}.fo-grid{grid-template-columns:repeat(2,1fr)}
  .dao-grid{grid-template-columns:repeat(2,1fr)}
  .wnl-grid{grid-template-columns:repeat(2,1fr)}
  .wnl-grid .info-box.wuxing{grid-column:1/-1}
  .wnl-yiji{flex-direction:column}
  .cal-row4{grid-template-columns:repeat(2,1fr)}
  .cal-row4 > .info-box:nth-child(5),.cal-row4 > .info-box:nth-child(6){grid-column:1/-1}
  .row-2{flex-direction:column;gap:var(--sp-2)}
}

#fPillar .field{display:flex;align-items:center;gap:var(--sp-1);flex-wrap:wrap}

.tend{color:var(--gold2)}

.lab-gold{color:var(--gold2);font-weight:400}

.nayin-rel td:first-child{text-align:center}

.yun-tbl.sk-base td.sk-c-name,.yun-tbl.sk-sub td.sk-c-name{text-align:center}

.yun-tbl.detail td:first-child{text-align:center}

.yun-ev-title{font-size:13px;color:var(--gold2);margin:var(--sp-3) 0 var(--sp-1)}

table.yun-tbl.yun-ev{table-layout:fixed;width:100%;min-width:0}

table.yun-tbl.yun-ev th,table.yun-tbl.yun-ev td{white-space:normal;word-break:break-word;overflow-wrap:anywhere;vertical-align:top;line-height:1.6;text-align:left}

table.yun-tbl.yun-ev thead th{white-space:nowrap;text-align:center}

table.yun-tbl.yun-ev th:nth-child(1),table.yun-tbl.yun-ev td:nth-child(1){width:18%}

table.yun-tbl.yun-ev th:nth-child(2),table.yun-tbl.yun-ev td:nth-child(2){width:56px;text-align:center;white-space:nowrap}

table.yun-tbl.yun-ev th:nth-child(3),table.yun-tbl.yun-ev td:nth-child(3){width:44px;text-align:center}

table.yun-tbl.yun-ev th:nth-child(4),table.yun-tbl.yun-ev td:nth-child(4){width:auto}

table.yun-tbl.yun-ev .ev-period{font-weight:400;color:var(--gold2);white-space:normal;text-align:center;line-height:1.2}

table.yun-tbl.yun-ev .ev-y{display:block;line-height:1.2}

table.yun-tbl.yun-ev .ev-age{display:block;margin-top:0;line-height:1.2;white-space:normal}

table.yun-tbl.yun-ev .ev-result{text-align:center;font-weight:400}

table.yun-tbl.yun-ev .ev-coping{font-size:12px;line-height:1.55;color:var(--ink2)}

@media(max-width:640px){
  table.yun-tbl.yun-ev th:nth-child(2),table.yun-tbl.yun-ev td:nth-child(2){width:56px}
  table.yun-tbl.yun-ev th:nth-child(3),table.yun-tbl.yun-ev td:nth-child(3){width:40px}
  table.yun-tbl.yun-ev .ev-period .ev-age{display:block;margin-top:0;white-space:normal}
}

.score-tbl{width:100%;border-collapse:collapse;font-size:14px;margin:var(--sp-1) 0 var(--sp-2);}

.score-tbl th,.score-tbl td{border:1px solid var(--line);padding:6px 8px;text-align:center;vertical-align:middle;}

.score-tbl th{background:var(--card);color:var(--ink2);font-weight:600;}

.score-tbl td.yun-gz{font-weight:400;color:var(--ink);white-space:nowrap;}

.hex-card{border:0;border-radius:0;background:transparent;padding:0;margin:var(--sp-1) 0 var(--sp-3)}

.hex-h{font-size:13px;font-weight:400;color:var(--gold2);margin:var(--sp-1) 0 var(--sp-1);}

.hex-row{display:flex;flex-direction:column;gap:var(--sp-1);}

.hex-name{font-size:14px;}

.hex-name b{font-weight:400}

.hex-name .hx{font-size:18px;letter-spacing:2px;color:var(--gold2);}

.hex-meta{font-size:13px;color:var(--ink2);}

.hex-mean{font-size:13px;color:var(--ink);line-height:1.5;}

.hex-tbl .hx{font-size:16px;letter-spacing:1px;color:var(--gold2);}

.hex-tbl .hex-mean{text-align:left;line-height:1.4;}

@media(max-width:640px){
  .bazi-top .field{gap:var(--sp-1);min-width:0}
}

@page{margin:14mm 12mm}

@media print{
/* 配色转灰：在打印作用域内重定义主题令牌为中性灰，整页去暖色（分页安全，不会破坏多页分页）； */
  :root{
    --gold:#6b6b6b; --gold2:#333; --red:#5a5a5a; --paper:#f3f3f3; --paper2:#eaeaea;
    --line:#cfcfcf; --card:#fff; --ink:#1c1c1c; --ink2:#444;
  }
/* 页级令牌块把 --line/--ink 重指到本页族，源序在打印段之后会压过上面的中性灰； */
  .wrap .page{--line:#cfcfcf;--ink:#1c1c1c}
  html{ -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  #topbar,#footer,.form-row,.opts,.notice,#exportBar,.scroll-jump,.dyn,.modal-mask,
  #dateNote,#kongAxisNote,#pillarNote,#formErr,.lead,.export-bar,
  #pageTitle,#aiMount{display:none !important}
  body{background:var(--card) !important}
  .wrap,.page{max-width:none;margin:0;padding:0}
  .mod.collapsed .mod-body{display:block !important}
/* 整模块不设 break-inside:avoid： */
  .mod{margin:0 0 var(--sp-3);border:1px solid var(--line);border-radius:0;overflow:visible}
  .mod-head{break-after:avoid;cursor:default}
  details:not([open]) > *:not(summary){display:block !important}
  details > summary{display:none !important}
  .info-box,.life-card,.rem-block,.nayin-box,.zr-mod-b{break-inside:avoid}
  .yun-scroll{overflow:visible !important}
  a[href]:after{content:""}
/* 打印精简：去掉内层装饰框（各流派解读、纳音、核心解读、量化、宜忌 等）的四角包围线框， */
  .info-box,.nayin-box,.life-card,.zr-mod,.rem-block{
    border:none !important;background:transparent !important;border-radius:0 !important;
    box-shadow:none !important;
  }
  .zr-mod-b{border-top:none !important;padding-top:var(--sp-2) !important;background:transparent !important}
  .rel{border:1px solid #e7e0cf !important;background:transparent !important;border-radius:0 !important;padding:2px var(--sp-2) !important}
  .rel-title,.mod-head,h2,h3,h4,caption,.fei-cap,.mh-cat-title,.cal-title{break-after:avoid}
  tr,li,.rel{break-inside:avoid}
}

@media(max-width:640px){
  .det-h{font-size:var(--tier4);margin:var(--sp-3) 0 var(--sp-1)}
  .info-box p,.ly-zh-p,.det-row,.an-v,.an-p,.ds-box .ly-zh-p{font-size:13px;line-height:1.6}
  .info-box{padding:var(--sp-3) var(--sp-2)}
  .mod-head{padding:var(--sp-2) 0;margin:var(--sp-4) 0 var(--sp-2);flex-wrap:wrap}
/* 移动端：模块标题不被副标题挤压截断（"二、本命分析"等完整一行不孤字）； */
  .mod-title{flex-shrink:0;white-space:nowrap;letter-spacing:.3px}
  .mod-sub{flex:1 0 100%;margin-left:0;margin-top:var(--sp-1);font-size:11px;line-height:1.45}
}

table.stab.stab-ds{table-layout:fixed !important}

table.stab.stab-ds th:first-child,table.stab.stab-ds td.lbl{width:5.8em !important;max-width:5.8em !important;white-space:normal}

@media (max-width:760px){
  table.stab.stab-ds th:first-child,table.stab.stab-ds td.lbl{width:4.8em !important;max-width:4.8em !important;white-space:normal}
}

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

.wheel{display:block;width:100%;max-width:400px;height:auto;margin:0 auto;font-family:var(--wheel-serif,var(--font-serif));
/* 🔴 盘内只有 .w-hit 可交互，其余（弧、刻度、圈线、指针、盘心字、内外圈字）一律不接事件。 */
  pointer-events:none}

.wheel .w-ring{fill:none;stroke:var(--wheel-line,#c9c9c9);stroke-width:1}

.wheel .w-core{fill:var(--wheel-core,#fff);stroke:var(--wheel-line,#c9c9c9);stroke-width:1}

.wheel .w-core-hollow{fill:none;stroke:var(--wheel-line,#c9c9c9);stroke-width:1}

.wheel .w-fill{fill:var(--wheel-core,#fff);stroke:none}

.wheel .w-tick{stroke:var(--wheel-line,#c9c9c9);stroke-width:1}

.wheel .w-arc{fill:none;stroke:var(--wheel-arc,#666);stroke-width:3;stroke-opacity:.22;stroke-linecap:butt}

.wheel .w-arc-cur{stroke:var(--wheel-cur,#333);stroke-width:4;stroke-opacity:1}

.wheel .w-needle{stroke:var(--wheel-cur,#333);stroke-width:1.5;stroke-linecap:butt}

.wheel .w-dot{fill:var(--wheel-cur,#333)}

.wheel .w-c1{font-size:22px;font-weight:400;letter-spacing:.1em;fill:var(--wheel-deep,#333);text-anchor:middle;dominant-baseline:central}

.wheel .w-c2{font-size:12.5px;letter-spacing:.08em;fill:var(--wheel-ink2,#666);text-anchor:middle;dominant-baseline:central}

.wheel .w-c3{font-size:11.5px;letter-spacing:.08em;fill:var(--wheel-ink2,#666);opacity:.8;text-anchor:middle;dominant-baseline:central}

.wheel .w-lab{font-size:12.5px;fill:var(--wheel-ink,#444);text-anchor:middle;dominant-baseline:central}

.wheel .w-lab-lg{font-size:13px}

.wheel .w-lab-xl{font-size:14px}

.wheel .w-lab-j{font-weight:700;fill:var(--wheel-deep,#333)}

.wheel .w-lab-cur{font-weight:700;fill:var(--wheel-cur,#333)}

.wheel .w-hit{fill:transparent;cursor:pointer;pointer-events:all;-webkit-tap-highlight-color:transparent}

.wheel .w-sel{fill:none;pointer-events:none}

@media (hover:hover) and (pointer:fine){
.wheel .w-hit:hover+.w-sel{fill:var(--wheel-arc,#666);fill-opacity:.22}
}

.wheel-wheels{margin-top:var(--sp-4);padding-top:var(--sp-4);display:grid;grid-template-columns:1fr 1fr;
  gap:var(--sp-5);border:0;background:transparent}

.wheel-block{text-align:center}

.wheel-block h4{font-family:var(--wheel-serif,var(--font-serif));font-weight:400;font-size:13px;letter-spacing:.2em;
  text-indent:.2em;color:var(--wheel-h4,#444);margin:0 0 var(--sp-3);line-height:1.5}

.wheel-block h4::after{content:'';display:block;width:88px;height:1px;background:var(--wheel-line,#c9c9c9);margin:var(--sp-2) auto 0}

.wheel-detail{margin-top:var(--sp-3);padding-top:var(--sp-2);border-top:1px solid var(--wheel-line,#c9c9c9);
  font-size:12.5px;line-height:1.8;letter-spacing:.04em;color:var(--wheel-ink,#444);text-align:center}

.wheel-detail .wd-g{color:var(--wheel-good,#3f7a1f)}

.wheel-detail .wd-x{color:var(--wheel-bad,#b23b2e)}

.wheel-detail .wd-br{display:block;height:0;width:0}

@media(max-width:640px){
  .wheel-wheels{grid-template-columns:1fr;gap:var(--sp-4)}
  .wheel{max-width:320px}
}

table b,table strong,.sub-note b,.sub-note strong,.note-vedic b,.note-vedic strong,.house-box b{font-weight:400;color:var(--gold2)}

[class*="dtm-"] .close{color:var(--tk-ink)}

@media(max-width:640px){
/* 单元格内容层：列宽上限的实际落点（Chrome 忽略列级 max-width），由 app.js 在窄屏给单元格内容套此层。 */
  .xj-tc{min-width:3em;max-width:var(--xj-cap,min(70vw,22em))}
/* 末行孤字（折行后末行只剩一字）只出在撞上限的长文格，故断行策略只给这批格（.xj-tc-pretty， */
  .xj-tc-pretty{text-wrap:pretty}
/* 容器须显式取满宽：补的这层若落在 flex 或 grid 容器里会按内容收缩（实测紫微 .zw-ct 被收成 28px）， */
  .tbl-hs{width:100%;max-width:100%;min-width:0;overflow-x:auto;-webkit-overflow-scrolling:touch}
  body .page .tbl-hs table:not(.tbl-kv){table-layout:auto;width:max-content;min-width:100%;max-width:none}
/* 列宽只按内容：页级按 100% 表宽配的百分比、定宽与封顶（如藏历 .zl-tbl 的 width:100%;max-width:100%） */
  body .page .tbl-hs table:not(.tbl-kv) th:nth-child(n),
  body .page .tbl-hs table:not(.tbl-kv) td:nth-child(n){white-space:normal;word-break:normal;overflow-wrap:break-word;width:auto;min-width:0}
/* 甲型键值表（app.js 窄屏标 .tbl-kv：无表头行、每行首格是属性名、列数不超过三）： */
  body .page .tbl-hs table.tbl-kv{width:100%;max-width:100%;min-width:0}
  body .page .tbl-hs table.tbl-kv th:first-child{white-space:nowrap}
  body .page .tbl-hs table.tbl-kv th:first-child .xj-tc{max-width:none;min-width:0}
}

.jw-detail{display:none;margin-top:var(--sp-1);padding-top:var(--sp-1);border-top:1px dashed var(--line)}

@media(max-width:640px){
  .jw-grid{grid-template-columns:repeat(2,1fr)}
  .jw-item{padding:var(--sp-2) var(--sp-2)}
}

@keyframes lqshake{0%,100%{transform:translateX(-4px)}50%{transform:translateX(4px)}}

@keyframes lyCoinToss{from{transform:translateY(0) rotateY(0deg)}
to{transform:translateY(-30px) rotateY(180deg)}}

@keyframes qiFade{from{opacity:0;transform:translateY(4px)}
to{opacity:1;transform:none}}

#shan,#laiLong{min-width:115px;width:115px}

  @media (max-width:480px){.nf-code{font-size:72px}.nf-text{font-size:17px}}

  @media (prefers-color-scheme:dark){
    body.p404-page{background:#17171a;color:#e6e1d6}
    .nf{border-color:#e6e1d6}
    .nf::after{border-color:rgba(230,225,214,.5)}
    .nf-text{color:#a39e93}
    .nf-home{border-color:#e6e1d6;color:#e6e1d6}
    .nf-home:hover{border-color:#c65a48;color:#c65a48}
  }

@media (prefers-color-scheme: dark){
  :root{
    color-scheme:dark;
    --paper:#17171a;
    --paper2:#1d1d20;
    --card:#1d1d20;
    --line:#3a3a3f;
    --ink:#d6d2cd;
    --ink2:#aea698;
    --red2:#d2695e;
    --cal-hover:#2a2a2e;
    --cal-selected:#333338;
  }
  body{background:var(--paper);color:var(--ink)}
  body:has(.page-sm),body:has(.page-os),body:has(.page-dj),body:has(.page-lp){
    background:#faf9f6;color:#1a1a1a
  }
  .page-sm,.page-os,.page-dj,.page-lp{
    color-scheme:light;
    --paper:#ffffff;
    --paper2:#faf9f6;
    --card:#ffffff;
    --line:#ddd8cf;
    --ink:#1a1a1a;
    --ink2:#52525a;
  }
}

.sel-list.dark .sel-opt.on{color:#e6e1d6;font-weight:700}

.dual-rel-chk{display:inline-flex;align-items:center;gap:var(--sp-1);
  margin:0;font-size:13px;color:var(--ink2);cursor:pointer;user-select:none}

.dual-rel-chk input{width:auto;margin:0}

.dual-rel2{display:none;padding:var(--sp-2) var(--sp-2) 0;border:1px dashed var(--line);border-radius:0}

.saved-list{display:table;width:100%;border-collapse:collapse;font-size:13px}

.gz-mini{display:inline-flex;gap:var(--sp-1)}

.gz-g,.gz-z{padding:var(--sp-1) 2px}

@media(max-width:640px){
  .hh-adv{padding:var(--sp-3) 0}
  .hh-adv-tbl th{width:92px;padding:8px 10px}
  .hh-adv-tbl td{padding:8px 10px}
  .lr-tian{font-size:18px}
  .lr-kes{gap:var(--sp-1)}
  .lr-ke{min-width:48px;padding:var(--sp-1) var(--sp-2)}
  .lr-ke-u{font-size:17px}
  .lr-ke-d{font-size:14px}
  .lr-chuan{gap:var(--sp-2);padding:var(--sp-2) var(--sp-2)}
  .lr-chuan-z{font-size:20px;flex:0 0 28px}
  .zr-tag{font-size:10.5px;line-height:1.4}
}

@media(max-width:420px){
  .fei-wrap{grid-template-columns:1fr}
}

.form-row .field input[type="text"].dt-input{width:96px}

input[type="text"].dt-input::-webkit-calendar-picker-indicator,
input[type="time"].dt-input::-webkit-calendar-picker-indicator{display:none;opacity:0;pointer-events:none}

input[type="text"].dt-input::-moz-calendar-picker-indicator,
input[type="time"].dt-input::-moz-calendar-picker-indicator{display:none}

.dt-wrap{position:relative;display:flex;align-items:center;gap:var(--sp-2);flex:1 1 auto;min-width:0;height:30px;box-sizing:border-box}

.field .dt-wrap{width:100%}

.dt-wrap input{flex:1 1 auto;min-width:0;height:100%}

.dt-wrap input[type="text"].dt-input{flex:0 0 96px;width:96px}

.dt-wrap input[type="time"]{flex:0 0 72px;width:72px}

input[type="text"].dt-input,input[type="time"].dt-input{text-align:center}

.dt-ic{flex:0 0 auto;cursor:pointer;font-size:16px;user-select:none;height:100%;box-sizing:border-box;
  background:var(--tk-tint,var(--gold-bg));border:1px solid var(--tk-line,var(--line));border-radius:0;
  padding:var(--sp-1) var(--sp-1);display:flex;align-items:center;justify-content:center;transition:.15s}

.dt-ic:hover{border-color:var(--tk,var(--gold));background:var(--tk,var(--gold));color:#fff}

.dt-ic:active{border-color:var(--tk2,var(--gold2));background:var(--tk2,var(--gold2));color:#fff}

@media(max-width:640px){
  .cal-page .form-row .field input[type="text"].dt-input{width:96px;flex:0 0 96px}
}

.page-bazi #fPillar .gz-mini select{padding:0 8px;font-size:13px;line-height:1.35}

body:where(.bz-root):not(.mode-date):not(.mode-lunar) #birthGroup{display:none}

@media (max-width:640px){
  .page-bazi .confirm-banner{font-size:13px}
}

.page-bazi table.stab{width:100%;table-layout:auto;border-collapse:collapse;margin:var(--sp-1) 0 var(--sp-3);font-size:13px}

.page-bazi table.stab th,.page-bazi table.stab td{border:1px solid var(--bz-line);padding:6px 9px;vertical-align:top;text-align:left;line-height:1.8;word-break:normal;overflow-wrap:anywhere}

.page-bazi table.stab th{font-weight:400;white-space:nowrap;text-align:center;color:var(--gold2)}

.page-bazi table.stab td.lbl{font-weight:400;color:var(--gold2)}

.page-bazi table.stab td.nowrap{white-space:nowrap}

.page-bazi table.stab-inds{table-layout:auto}

.page-bazi #mod-yiti table.stab-a2{table-layout:fixed;width:100%}

.page-bazi #mod-yiti table.stab-a2 th:first-child,.page-bazi #mod-yiti table.stab-a2 td:first-child{white-space:normal;word-break:break-word;overflow-wrap:anywhere}

.page-bazi #mod-yiti table.stab-a2 th:nth-child(2),.page-bazi #mod-yiti table.stab-a2 td:nth-child(2){white-space:normal;word-break:break-word;overflow-wrap:anywhere}

@media (max-width:760px){
  .page-bazi table.stab th,.page-bazi table.stab td{padding:2px 4px}
  /* 表头短标签（五行、宜忌、组合、分类、项目…）不换行，避免被压成单字成行 */
  .page-bazi table.stab th{white-space:nowrap}
  /* 普通表：首列固定为 2 个汉字宽（写死，含留白），长内容列占余宽。 首列换行规则按字数判定（JS 在 layoutYitiTables 加类）：≤2 字（日主、五行、宜忌、组合、分类…）整词不折； ≥3 字（宫位十神、祖辈宫、六亲身心…）在 2 字宽处自然折行（每行 ≥2 字，不出现单字成行）。 */
  /* 列宽方案（table-layout:auto，border-box 计宽）： 非最后一列均为短标签列（五行、宜忌、组合、分类、项目、宫位十神、维度、层级…），固定 3em（=总宽 3 汉字上限，含留白）。 2 字标签整词放下不折、不单字孤行；4 字标签（如宫位十神）在 3em 内自然折行（每行 ≥2 字）。 最后一列是长文本内容列，不锁宽（width:auto），随屏幕自适应，避免内容长时表格被无限拉高、撑破。 对 2 列表（第 1 列短、第 2 列自适应）与 3/4 列表（前面列短、最后列自适应）同时成立。 */
  .page-bazi #mod-yiti table.stab:not(.stab-a2){table-layout:auto !important}
  /* 短标签列（非末列，含表头 th）：border-box 固定 3em（=总宽 3 汉字上限）。 内容区 = 3em - padding(8px) ÷ 11px ≈ 2.3~2.5 字，足够 2 字整词放下（不折叠成 1 字、行）； 4 字标签（宫位十神）在 3em 内自然折为“2+2”；min-width=3em 防止 auto 布局把列压窄 <2 字。 */
  /* 短标签列（非末列，含表头）：默认整词单行（nowrap）不折、无单字孤行； 列宽由 JS(layoutYitiTables) 按本列最长词字数决定并内联写入（≤3 字整词、≥4 字在 2.6em 内折 2+2）。 末列（长文本内容列）不锁宽自适应。stab-ssd（十神经典断语"组合"列）除外，另行换行规则。 */
  .page-bazi #mod-yiti table.stab:not(.stab-a2):not(.stab-cy):not(.stab-ssd) td:not(:last-child),.page-bazi #mod-yiti table.stab:not(.stab-a2):not(.stab-cy):not(.stab-ssd) th:not(:last-child){box-sizing:content-box !important;white-space:nowrap !important;word-break:normal !important;overflow-wrap:break-word !important}
  /* 十神经典断语表(stab-ssd)："组合"列固定 4 字内容宽（border-box 计宽，含两端 padding+border）， 超过 4 字即折行（4+2、4+3…），避免长断语名撑宽挤压"判定"列内容空间。 宽度 = 4.2em（4 字内容 + 0.2em 渲染余量） + 10px（左右 padding 8px + border 间距 2px）； 未预留两端间距会导致 4 字词在 3~3.5 字处提前折行（实测 3 字换行），此处显式计入。 */
  .page-bazi #mod-yiti table.stab-ssd td:first-child,.page-bazi #mod-yiti table.stab-ssd th:first-child{white-space:normal !important;word-break:break-all !important;overflow-wrap:anywhere !important;box-sizing:border-box !important;width:calc(4.2em + 10px) !important;min-width:calc(4.2em + 10px) !important;max-width:calc(4.2em + 10px) !important}
  /* 职业方向与宜忌表"方向"列(第3列)：电脑端 nowrap 写死，移动端允许换行、最低 5 字宽、约 4 字折行（覆盖上方通用列 nowrap） */
  .page-bazi #mod-yiti table.stab-cy th:nth-child(3),.page-bazi #mod-yiti table.stab-cy td:nth-child(3){white-space:normal !important;width:auto;min-width:5em;word-break:break-all !important;overflow-wrap:anywhere !important}
  /* 最后一列（长文本内容列）：不锁宽、自适应；禁用 overflow-wrap:anywhere（会制造单字孤行），用 break-word 不撑破。 */
  .page-bazi #mod-yiti table.stab:not(.stab-a2) td:last-child,.page-bazi #mod-yiti table.stab:not(.stab-a2) th:last-child{width:auto !important;word-break:normal !important;overflow-wrap:break-word !important}
  /* 方向列（6.1 职业方向与宜忌）：响应式下允许换行，不 nowrap 撑宽。 */
  .page-bazi table.stab td.nowrap{width:auto;white-space:normal}
}

.page-bazi .sub-h{font-size:var(--tier4);color:var(--gold2);margin:var(--sp-2) 0 var(--sp-1);font-weight:400}

.page-bazi .stab b,.page-bazi .otab b,.page-bazi .bazi-table b,.page-bazi .yun-tbl b,.page-bazi .nayin-rel b,.page-bazi .qtab b{font-weight:400}

.wrap.page-bazi{max-width:1080px;margin:0 auto;padding:0 var(--sp-2)}

@media (max-width:900px){
  /* 必须归零 body 横向 padding：内联 body{padding:8px 12px} 在桌面端生效，移动端若不重置会叠加到 .wrap+.page 之外， 导致每侧多出 12px 空白（40px vs 其它工具 28px）。归零后与其他排盘工具一致。 */
  body:where(.bz-root){max-width:none;margin:0;padding:0}
  .wrap.page-bazi{max-width:none;margin:0;padding:0 var(--sp-3)}
  .page-bazi .page{margin:0;padding:var(--sp-4)}
  .page-bazi .opts-row{padding:0;gap:var(--sp-2)}
  .page-bazi .form-row{padding:0;gap:var(--sp-2);margin-bottom:var(--sp-2)}
  .page-bazi .yun-tbl th,.page-bazi .yun-tbl td{padding:3px 4px}
  /* 岁运引动表在移动端列宽契约内（按内容定宽、长列撞上限换行）：用忌列忌喜语句一行较长，
     内容层设上限迫其折行，列随内容收窄到表格自有方案的 5em 档，免挤占关键引动列的首屏宽。 */
  .page-bazi .yun-tbl.yd th:nth-child(2) .xj-tc,.page-bazi .yun-tbl.yd td:nth-child(2) .xj-tc{max-width:5em}
  .page-bazi .mod-head{margin-top:var(--sp-3)}
  
  /* 移动端：去掉外层边框与内边距、圆角，表格贴边全宽 */
  .page-bazi .zr-mod-b{padding:var(--sp-1) var(--sp-1) var(--sp-2);background:transparent}
  .page-bazi .dyn-detail{border:none;border-radius:0;padding:var(--sp-2);background:transparent}
  .page-bazi details.fld{border:none;border-radius:0;margin:var(--sp-1) 0 var(--sp-2);background:transparent}
  .page-bazi details.fld summary{padding:var(--sp-1) var(--sp-2);background:transparent;border-radius:0}
  .page-bazi details.fld .fld-body{padding:var(--sp-1) var(--sp-2)}
}

.page-bazi #savedPanel{margin:var(--sp-2) 0 var(--sp-1)}

.page-bazi .saved-head{display:flex;align-items:baseline;gap:var(--sp-2);font-size:13px;color:var(--bz-deep);font-weight:400;margin:var(--sp-1) 0 var(--sp-1)}

.page-bazi .saved-tip{font-weight:normal;color:var(--bz-ink2);font-size:12px}

.page-bazi .saved-list{display:table;width:100%;border-collapse:collapse;font-size:13px}

.page-bazi .bazi-top{display:flex;flex-wrap:wrap;align-items:flex-end;margin-bottom:var(--sp-3)}

.page-bazi .bazi-top .field#fName input{width:96px;align-self:flex-start}

.page-bazi .bazi-top .field#fLunarY input{width:76px;align-self:flex-start}

.page-bazi .bazi-top .field select{width:auto;align-self:flex-start}

.page-bazi .bazi-top .field{flex:0 0 auto;width:auto;margin:0;min-width:0}

@media(min-width:641px) and (max-width:970px){
  /* 出生时间图标布局：图标与输入框同行；输入框全站统一宽 72px */
  .mode-lunar:where(.bz-root) .bazi-top .field#fTime .dt-wrap{display:flex;flex-direction:row;align-items:center;gap:var(--sp-1)}
}

@media(max-width:640px){
  /* 四柱模式窄屏：改 4 等份栅格，控件宽随格宽伸缩、行行填满，行序与电脑端一致。
     每两格一组：输入方式＋性别＋姓名、年柱＋月柱、日柱＋时柱、检索跨度＋起止年、排盘＋保存。
     年柱、起止年这类“一对控件”的组内各占一半、中缝 4px，故单个干支框与单个年份框恒等宽。 */
  .mode-pillar:where(.bz-root) .bazi-flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-2);align-items:end}
  .mode-pillar:where(.bz-root) .bazi-flow .field,
  .mode-pillar:where(.bz-root) .bazi-flow #fPillar .field{flex-direction:column;align-items:stretch;flex-wrap:nowrap;gap:var(--sp-1);width:auto;min-width:0;margin:0}
  .mode-pillar:where(.bz-root) .bazi-flow .field input,
  .mode-pillar:where(.bz-root) .bazi-flow .field select,
  .mode-pillar:where(.bz-root) .bazi-flow .span-field input[type=number],
  .mode-pillar:where(.bz-root) .bazi-flow .span-field select,
  .mode-pillar:where(.bz-root) .bazi-flow .field#fName input{width:100%;max-width:none}
  .mode-pillar:where(.bz-root) .bazi-flow .gz-mini,
  .mode-pillar:where(.bz-root) .bazi-flow .span-years{display:flex;gap:var(--sp-1);width:100%}
  .mode-pillar:where(.bz-root) .bazi-flow .gz-mini select{flex:1 1 0;width:auto;min-width:0}
  .mode-pillar:where(.bz-root) .bazi-flow .span-years .field{flex:1 1 0;min-width:0}
  /* 跨度下拉左右各留 8px（与干支下拉同档），可选字区随格宽伸缩：375 及以上可容最长选项
     “魏晋南北朝 220-589”（墨迹 116.4px），360 下该条末字略切 6px；当前选中项“近代 1864-2103”（89.5px）320 起皆完整 */
  .mode-pillar:where(.bz-root) .bazi-flow .span-field select{padding-left:8px;padding-right:8px}
  .mode-pillar:where(.bz-root) .bazi-flow .field#fName,
  .mode-pillar:where(.bz-root) .bazi-flow #fPillar .field,
  .mode-pillar:where(.bz-root) .bazi-flow .span-field,
  .mode-pillar:where(.bz-root) .bazi-flow .span-years,
  .mode-pillar:where(.bz-root) .bazi-flow .opts-row .btn,
  .mode-pillar:where(.bz-root) .bazi-flow .btn.bazi-act{grid-column:span 2}
  /* 时间折算与流派：题头与字段各占满一行。该组七项中六项在四柱模式整组隐藏，只剩长生土行一项，
     故不占格；格宽只四等份之一，按格宽取值会把选项括注切掉（长生土行一项内容一百三十像素、格宽七十八）。
     控件回到按内容定宽，即桌面端宽度：随内容自适应，不随格宽拉伸，亦不超出桌面端宽度。 */
  .mode-pillar:where(.bz-root) .bazi-flow .opts-row .group-label,
  .mode-pillar:where(.bz-root) .bazi-flow .opts-row .field{grid-column:1/-1}
  .mode-pillar:where(.bz-root) .bazi-flow .opts-row .field select{width:auto;max-width:100%;align-self:flex-start}
  /* 时间折算与流派行列于检索跨度之前：该行选的是命盘本体的口径（四柱模式只剩长生土行一项），
     与四柱同类；检索跨度与起止年是检索工具，居末。原序紧跟终止年，读作检索组的一项。 */
  .mode-pillar:where(.bz-root) .bazi-flow .opts-row .group-label,
  .mode-pillar:where(.bz-root) .bazi-flow .opts-row .field{order:1}
  .mode-pillar:where(.bz-root) .bazi-flow .span-field,
  .mode-pillar:where(.bz-root) .bazi-flow .span-years{order:2}
  /* 排盘与保存两钮：窄屏栅格按格定位，order 与 grid-column 同由文档序与格宽给出，
     两钮占两格并随 order:3 落到四柱之后、检索组之前，与电脑端同序 */
  .mode-pillar:where(.bz-root) .bazi-flow .btn.bazi-act{order:3;margin:0}
  /* 公历、农历窄屏：流式定宽（与桌面同口径：select 自适应、姓名 96、农历年 76、出生时间 72） */
  .mode-date:where(.bz-root) .bazi-top .field,.mode-lunar:where(.bz-root) .bazi-top .field,body:where(.bz-root):not(.mode-date):not(.mode-lunar):not(.mode-pillar) .bazi-top .field{flex:0 0 auto;width:auto;min-width:0}
  .mode-date:where(.bz-root) .bazi-top .field select,.mode-lunar:where(.bz-root) .bazi-top .field select,body:where(.bz-root):not(.mode-date):not(.mode-lunar):not(.mode-pillar) .bazi-top .field select{width:auto;align-self:flex-start}
  .mode-date:where(.bz-root) .bazi-top .field#fName input,.mode-lunar:where(.bz-root) .bazi-top .field#fName input{width:96px;align-self:flex-start}
  .mode-lunar:where(.bz-root) .bazi-top .field#fLunarY input{width:76px;align-self:flex-start}
  .mode-lunar:where(.bz-root) .bazi-top .field#fTime .dt-wrap{display:flex;flex-direction:row;align-items:center;gap:var(--sp-1)}
  /* 农历窄屏压缩定宽：内容均两字，缩框使 农历年+农历月+闰月+农历日+出生时间 能并入两排
     （行1 输入方式72、性别55、姓名96、农历年76；行2 农历月72、闰月43、农历日68、出生时间112，时间框 72px 全站统一） */
  .mode-lunar:where(.bz-root) .bazi-top .field#cMode select{width:72px}
  .mode-lunar:where(.bz-root) .bazi-top .field#cSex select{width:55px}
  .mode-lunar:where(.bz-root) .bazi-top .field#fLunarM select{width:72px}
  .mode-lunar:where(.bz-root) .bazi-top .field#fLunarD select{width:68px}
}

@media(max-width:640px){
  /* 时间折算与流派五项（夏令时、子时算法、太阳时、年界、空亡基准）窄屏：撤栅格定位，改 flex 流式换行。
     宽由通用段按内容给出（字段随控件收缩、select 自然宽），本档只换行内间距一档，
     一行容不下即整字段换行，不写死列位、不铺满、不留空。 */
  .mode-date:where(.bz-root) .opts-row,.mode-lunar:where(.bz-root) .opts-row{gap:var(--sp-2)}
}

.page-bazi .bazi-linkage{margin:0;background:transparent;border:0;border-top:1px solid var(--bz-line);border-radius:0;padding:var(--sp-3) 0}

.page-bazi .opts-note{width:100%;margin:0}

.page-bazi .field#fName{position:relative}

.page-bazi .celeb-row{display:flex;gap:var(--sp-1);align-items:flex-end;width:100%}

.page-bazi .celeb-row input{flex:0 0 auto}

.page-bazi .celeb-btn{margin:0;padding:0 var(--sp-2);height:30px;line-height:28px;font-size:13px}

.page-bazi .celeb-sug{display:none;position:absolute;top:100%;left:0;z-index:30;min-width:220px;max-height:220px;overflow:auto;background:var(--card);border:1px solid var(--bz-line);box-shadow:none}

.page-bazi .bazi-linkage:not([open]){border-bottom:1px solid var(--bz-line)}

.page-bazi .bazi-linkage summary{font-size:var(--tier3);color:var(--bz-deep);font-family:var(--bz-serif);font-weight:400;letter-spacing:.2em;cursor:pointer}

.page-bazi .bazi-linkage[open] summary{margin-bottom:var(--sp-1)}

.page-bazi .mh-ref:not(.bazi-linkage){border-color:var(--bz-line)}

.page-bazi #hexWrap .mh-ref>summary{color:var(--bz-deep)}

.page-bazi #hexWrap .mh-ref th,.page-bazi #hexWrap .mh-ref td{border-color:var(--bz-line)}

.page-bazi .link-list{display:flex;flex-direction:column;gap:0;margin-top:var(--sp-1)}

.page-bazi .link-item{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) 0;border:0;border-bottom:1px solid var(--bz-line);border-radius:0;cursor:pointer;transition:background .15s;text-decoration:none;font-size:13px}

.page-bazi .link-item:hover{background:var(--bz-tint)}

.page-bazi .link-item .li-ico{font-size:15px;flex:none;line-height:1}

.page-bazi .link-item .li-name{color:var(--bz2);font-weight:400;font-family:var(--bz-serif);letter-spacing:.05em;white-space:nowrap;flex:none}

.page-bazi .link-item .li-desc{color:var(--bz-ink2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}

.page-bazi .link-item .li-tag{font-size:11px;color:var(--bz2);white-space:nowrap;flex:none;margin-left:auto;background:var(--bz-tint);padding:1px var(--sp-1);border-radius:0;line-height:1.5}

@media(max-width:540px){
  .page-bazi .link-item .li-desc{display:none}
}

.page-bazi .page h1{color:var(--bz-deep);font-family:var(--bz-serif);font-size:23px;
  letter-spacing:.3em;text-indent:.3em;text-align:center;line-height:1.3}

.page-bazi .page h1::before{content:'';display:block;width:88px;height:1px;background:var(--bz-line);margin:0 auto var(--sp-3)}

.page-bazi .page h1::after{content:'';display:block;width:88px;height:1px;background:var(--bz-line);margin:var(--sp-3) auto 0}

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

.page-bazi .page .lead::after{background:var(--bz-line)}

.page-bazi input,.page-bazi select,.page-bazi textarea{border-color:var(--bz-line);transition:border-color .15s;color:var(--bz-ink)}

.page-bazi input:focus,.page-bazi select:focus,.page-bazi textarea:focus{border-color:var(--bz);outline:none}

.page-bazi .field input,.page-bazi .field select,.page-bazi .field textarea{background:var(--card)}

.page-bazi .btn:not(.soft):not(.btn-ghost),.page-bazi .btn.gold{background:var(--bz);border-color:var(--bz);color:#fff;box-shadow:none}

.page-bazi .btn:not(.soft):not(.btn-ghost):hover,.page-bazi .btn.gold:hover{background:var(--bz2);color:#fff;box-shadow:none}

.page-bazi .ai-block .btn{border-radius:0}

.page-bazi .birth-group,.page-bazi .birth-group.compact{padding-bottom:0}

.page-bazi .dual-rel2 .birth-group,.page-bazi .dual-rel2 .birth-group.compact{padding-bottom:var(--sp-3)}

.page-bazi .dual-wrap.is-off{display:none}

.duan-fold-shut{display:none}

.duan-fold-body{display:none}

.duan-fold-cb:checked ~ .duan-fold-head .duan-fold-more{display:none}

.dyn-back{flex-direction:row;align-items:center;margin:var(--sp-2) 0 0}

.dyn-today{font-size:12px;padding:var(--sp-1) var(--sp-2);cursor:pointer;line-height:1.5}

.page-bazi .btn-ghost,.page-bazi .ai-block .btn.gold,.page-bazi .ai-block .btn.soft{background:var(--bz-tint);border:1px solid var(--bz-line);color:var(--bz-ink)}

.page-bazi .btn-ghost:hover,.page-bazi .ai-block .btn.gold:hover,.page-bazi .ai-block .btn.soft:hover{background:var(--card);border-color:var(--bz-line);color:var(--bz2)}

.page-bazi .mod-head{border-top-color:var(--bz-line);border-bottom-color:var(--bz-line);margin-bottom:var(--sp-3)}

.page-bazi .mod-head .mod-sub{color:var(--bz-ink2)}

.page-bazi .mod-caret{color:var(--bz)}

.page-bazi .gua-ico{background:transparent;border:0;color:var(--bz2)}

.page-bazi .mod-title,.page-bazi .zr-mod>summary{color:var(--bz2)}

.page-bazi .zr-mod{border:0;border-radius:0;background:transparent;margin:var(--sp-2) 0}

.page-bazi .zr-mod>summary{border-radius:0;padding:var(--sp-2) 0;font-family:var(--bz-serif);font-weight:400;letter-spacing:.1em}

.page-bazi .zr-mod-b{border-top:none}

.page-bazi .zr-mod-b > :last-child,
.page-bazi .zr-mod-b > :last-child > :last-child{margin-bottom:0}

.page-bazi .zr-mod-b{padding-bottom:0}

.page-bazi .zr-mod>summary::before{color:var(--bz)}

.page-bazi .sub-note,.page-bazi .subnote{color:var(--bz-ink2)}

.page-bazi .bazi-table th{background:var(--bz-tint);color:var(--bz2)}

.page-bazi .bazi-table td:first-child{background:var(--bz-tint);color:var(--bz2)}

.page-bazi .bazi-table th,.page-bazi .bazi-table td{border-color:var(--bz-line)}

.page-bazi .bazi-table .gan,.page-bazi .bazi-table .zhi,.page-bazi .bazi-table .small{color:var(--bz-ink)}

.page-bazi .info-box,.page-bazi .confirm-box{
  background:transparent;border:0;border-top:1px solid var(--bz-line);
  border-radius:0;box-shadow:none;
}

.page-bazi .info-box p:not(.yi):not(.ji){color:var(--bz-ink)}

.page-bazi .rel-title{color:var(--bz-deep)}

.page-bazi .ly-zh-p{color:var(--bz-ink)}

.page-bazi .det-h{color:var(--bz-deep)}

.page-bazi .life-card{border:0;border-radius:0;background:transparent;padding:0}

.page-bazi .life-card h5{color:var(--bz2);font-family:var(--bz-serif);font-weight:400;letter-spacing:.2em}

.page-bazi .core-box table.stab{margin:0}

.page-bazi .ai-block{
  border:0;border-top:1px solid var(--bz-line);border-bottom:1px solid var(--bz-line);border-radius:0;
  background:transparent;color:var(--bz-ink);box-shadow:none;
}

.page-bazi .ai-head{background:transparent;border-bottom-color:var(--bz-line)}

.page-bazi .ai-head h3{color:var(--bz2);font-family:var(--bz-serif);font-weight:400}

.page-bazi .ai-head .ai-status{color:var(--bz-ink2)}

.page-bazi .ai-block input,.page-bazi .ai-block select{color:var(--bz-ink)}

.page-bazi .ai-tip{color:var(--bz-ink2)}

@media print{
  .page-bazi .form-row,.page-bazi .opts,.page-bazi .saved-panel,.page-bazi #formErr,.page-bazi .bazi-linkage,.page-bazi .ai-block,.page-bazi .notice-bottom{display:none !important}
  .page-bazi #dyn .dyn-block,.page-bazi .yun-crumbs,.page-bazi #yunChartWrap{display:none !important}
  .page-bazi .info-box,.page-bazi .confirm-box{background:var(--card) !important;box-shadow:none !important;border-color:var(--line) !important}
  .page-bazi .mod-head,.page-bazi .zr-mod>summary,.page-bazi .ts-box,.page-bazi .bz-info{border-color:var(--line) !important}
  .page-bazi .birth-group{display:none !important}
  .page-bazi .mod{break-inside:auto}
  .page-bazi .mod-head{break-after:avoid}
  .page-bazi table,.page-bazi tr{break-inside:avoid}
  .page-bazi .an-p{break-inside:avoid}
  /* 打印一律全数输出：余条折叠件在纸面上无开合可言，故展开正文、隐去开合提示 */
  .duan-fold-body{display:inline !important}
  .duan-fold-head{display:none !important}
}

.page-bazi table.stab th,.page-bazi table.otab th{background:var(--bz-tint);color:var(--bz2);border-color:var(--bz-line)}

.page-bazi table.stab td,.page-bazi table.otab td{color:var(--bz-ink);border-color:var(--bz-line)}

.page-bazi .notice{color:var(--bz-ink);background:transparent;border:0;border-top:1px solid var(--bz-line);border-bottom:1px solid var(--bz-line)}

.page-bazi :where(.tip){color:var(--bz2)}

.page-bazi .ts-box{background:transparent;border:0;
  border-radius:0;box-shadow:none;padding:var(--sp-3) 0;margin-top:0;text-align:center;color:var(--bz-ink2);letter-spacing:.04em}

.page-bazi .ts-box b{color:var(--bz2)}

.page-bazi .an-v,.page-bazi .an-p,.page-bazi .wf-formula,.page-bazi .struct-note,.page-bazi .struct-item{color:var(--bz-ink)}

.page-bazi .an-p b,.page-bazi .wf-formula b{color:var(--bz2);font-weight:400}

.page-bazi .bazi-table td,.page-bazi .qtab th,.page-bazi .qtab td{color:var(--bz-ink)}

.page-bazi .qtab thead th,.page-bazi .qtab td.lbl{color:var(--bz2)}

.page-bazi .yun-legend-item,.page-bazi .yun-tip,.page-bazi .hex-mean,.page-bazi .score-tbl td.yun-gz{color:var(--bz-ink)}

.page-bazi .dyn-btn{color:var(--bz-ink)}

.page-bazi .dyn-btn.active{background:var(--bz);color:#fff;box-shadow:none}

.page-bazi .sex-m,.page-bazi .sex-f{color:var(--bz-ink)}

.page-bazi .bz-info{margin-top:var(--sp-3);columns:2;column-gap:var(--sp-5);font-size:14px;border-top:1px solid var(--bz-line)}

.page-bazi .bz-i{display:flex;gap:var(--sp-3);padding:var(--sp-2) 0;border-bottom:1px solid var(--bz-line);break-inside:avoid;page-break-inside:avoid}

.page-bazi .bz-i>.k{flex:0 0 88px;color:var(--bz2);letter-spacing:.5px}

.page-bazi .bz-i>.v{flex:1;min-width:0;color:var(--bz-ink);line-height:1.7}

.page-bazi .bz-info .bz-br{display:inline-block;width:.9em}

.page-bazi .bz-info .bz-seg{display:inline-block;white-space:nowrap}

@media(max-width:640px){
  .page-bazi .bz-info{columns:1}
  /* 窄屏单栏，标签栏收到 72px（最长标签三垣 命卦约 62px），值栏多出 16px */
  .page-bazi .bz-i>.k{flex:0 0 72px}
  .page-bazi .bz-info .bz-br{display:block;height:0;width:0}
  /* 三垣三段（命宫、胎元、身宫）都是两字干支，窄屏一行放得下：该字段自带 bz-oneline，
     分段符退回桌面的 0.9em 间隔，三段同处一行；节气等超出屏宽的字段仍按上一条整行换行。 */
  .page-bazi .bz-info .bz-i.bz-oneline .bz-br{display:inline-block;width:.9em}
  .page-bazi .ts-box{letter-spacing:0}
  /* 窄屏选项行行距收到 --sp-2；出生地组的内边距与桌面同值，由本页出生地分组规则给出 */
  .page-bazi .opts{gap:var(--sp-2)}
}

.page-bazi .wheel-wheels{border-top:0;margin-top:0;padding-top:0}

.page-bazi .notice-bottom{color:var(--bz-ink);background:transparent;border:0;border-top:1px solid var(--bz-line);border-bottom:1px solid var(--bz-line);border-radius:0;padding:var(--sp-3) 0}

.page-bazi table.stab-pm td.lbl,
.page-bazi table.stab-pm th:first-child,
.page-bazi table.stab-mgx td:first-child,
.page-bazi table.stab-mgx th:first-child,
.page-bazi table.stab-xx td:first-child,
.page-bazi table.stab-xx th:first-child,
.page-bazi table.stab-school td.lbl{white-space:nowrap;text-align:center}

.page-bazi table.stab-pm th,
.page-bazi table.stab-mgx th,
.page-bazi table.stab-xx th,
.page-bazi table.stab-school th{white-space:nowrap}

.page-bazi table.stab-pm td.pm-gz,
.page-bazi table.stab-mgx td.pm-gz,
.page-bazi table.stab-xx td.pm-gz{text-align:center;white-space:nowrap;font-size:15px;letter-spacing:.1em}

.page-bazi table.stab-mgx tr.cur,
.page-bazi table.stab-xx tr.cur{background:var(--bz-tint)}

.page-bazi table.stab-school{table-layout:auto}

.page-bazi table.stab-school td:nth-child(2){min-width:14em}

.page-bazi table.stab-school td:nth-child(4),
.page-bazi table.stab-school td:nth-child(5){text-align:center}

@media(max-width:640px){
  /* 窄屏：三表内容列压窄后逐字断行会把术语拆散，改由容器横滚兜底，术语整词可读 */
  .page-bazi table.stab-pm,
  .page-bazi table.stab-mgx,
  .page-bazi table.stab-xx,
  .page-bazi table.stab-school{min-width:34em}
}

@media (prefers-color-scheme: dark){
  html .page-bazi {
    --bz:#50a27f;
    --bz2:#4ca080;
    --bz-deep:#d6e0dc;
    --bz-ink:#cfd4d1;
    --bz-ink2:#9fa7a2;
    --bz-line:#414e48;
    --bz-tint:#222b28;
  }
}

.page-bazi{
  --bz:#356b54;          /* 松青主色 */
  --bz2:#285443;         /* 深松青：hover 与强调 */
  --bz-deep:#1c3a2d;     /* 松墨：大标题与表头字色 */
  --bz-ink:#33413a;      /* 松墨灰：正文字色 */
  --bz-ink2:#5c6e63;     /* 次级字色：松族暖灰（降饱和，不另立色相） */
  --bz-line:#ceded7;     /* 松浅线：主色同色相，明度 84% */
  --bz-tint:#eff5f3;     /* 松纸淡底：主色同色相，明度 96% */
  --bz-serif:var(--font-serif);

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

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

  /* 圆盘令牌（量化四柱圆盘、十二长生盘）：骨架、尺寸、字号走通用件 .wheel，此处只绑本页色 */
  --wheel-serif:var(--bz-serif);
  --wheel-line:var(--bz-line);
  --wheel-arc:var(--bz);
  --wheel-cur:var(--bz);
  --wheel-core:var(--bz-tint);
  --wheel-ink:var(--bz-ink);
  --wheel-ink2:var(--bz-ink2);
  --wheel-deep:var(--bz-deep);
  --wheel-h4:var(--bz2);
  --wheel-good:var(--green);
  --wheel-bad:var(--red);--line:var(--bz-line);--ink:var(--bz-ink)}

.dtm-bazi{--tk:#356b54;--tk2:#285443;--tk-ink:#33413a;--tk-line:#ceded7;--tk-tint:#eff5f3}

@media(max-width:640px){
  .bazi-top,
  .bazi-pillar{margin-bottom:var(--sp-3)}
}

@font-face{font-family:"Noto Serif SC";font-style:normal;font-weight:400 700;font-display:swap;src:url(../../fonts/pages/bazi-0.woff2) format("woff2");unicode-range:U+4e01, U+4e0a, U+4e11, U+4e13-4e14, U+4e19-4e1a, U+4e1c, U+4e24-4e25, U+4e2a, U+4e2d, U+4e32, U+4e34, U+4e39, U+4e45, U+4e48-4e49, U+4e4c, U+4e5d, U+4e5f, U+4e70, U+4e86, U+4e8b, U+4e8e, U+4e91, U+4e9a, U+4ea1, U+4ea4-4ea7, U+4eab-4eac, U+4eb2, U+4eba, U+4ec0, U+4eca, U+4ecd-4ece, U+4ed6, U+4ee3-4ee4, U+4ef6, U+4efd, U+4f0a, U+4f10, U+4f18, U+4f20, U+4f24, U+4f26, U+4f2a, U+4f2f, U+4f46, U+4f4d-4f4e, U+4f55, U+4f5c, U+4f60, U+4f7f, U+4f9d, U+4fc4, U+4fdd, U+4ff1, U+5012, U+5019, U+503c, U+503e, U+5047, U+504f, U+505c, U+5065, U+5076, U+50cf, U+513f, U+5143, U+5145-5146, U+514b, U+514d, U+515c, U+5168, U+5170, U+5173, U+5176-5177, U+5179, U+517b, U+5185, U+518d, U+5192, U+5199, U+519c, U+51a0, U+51ac, U+51b0, U+51b2-51b3, U+51b5, U+51c0, U+51c6, U+51cf, U+51d1, U+51e0, U+51ed, U+51f6, U+51fb, U+51fd, U+5207, U+5211-5212, U+5217, U+5219-521a, U+521d, U+5220, U+5224, U+5229, U+522b, U+5236-5237, U+523b, U+5265, U+5269, U+526f, U+529e-52a1, U+52a8, U+52aa-52ab, U+52b3, U+52bf, U+52fe, U+5305, U+5308, U+5317, U+5339-533b, U+5347-5348, U+534a, U+5352, U+5357, U+535a, U+5361-5362, U+536b, U+536f, U+5371, U+5373-5374, U+5377, U+5384, U+538b, U+539f, U+53bb, U+53bf, U+53c9-53ca, U+53cc-53cd, U+53d1, U+53d8-53d9, U+53e0, U+53e3-53e6, U+53ea, U+53ef-53f0, U+53f2-53f3, U+53f7, U+5404, U+5409, U+5411, U+5426, U+542b, U+542f, U+543e, U+544a, U+548c, U+54a8, U+54c8, U+54cd, U+54e5, U+54ea, U+5510, U+5546, U+5580, U+559c, U+5668, U+56f4, U+56fd-56fe, U+5706, U+5708, U+571f, U+572d, U+5730, U+573a, U+5747, U+574f-5750, U+5757, U+5761, U+5766, U+578b, U+57c3, U+57ce, U+57d4, U+57df, U+57fa, U+5821, U+584c, U+585e, U+586b, U+5883, U+5893, U+58a8, U+58eb, U+58ee, U+5904, U+5907, U+590d, U+590f, U+5916, U+591a, U+591c, U+5929, U+592b, U+592e, U+5931, U+5934, U+5965, U+5973, U+597d, U+5982, U+59bb, U+59cb, U+59d4, U+59fb, U+5a01, U+5ae9, U+5b50, U+5b58, U+5b5f, U+5b64, U+5b81, U+5b83, U+5b88-5b89, U+5b8b-5b8c, U+5b98, U+5b9b, U+5b9e, U+5bab, U+5bb6, U+5bb9, U+5bbd-5bbe, U+5bc5-5bc6, U+5bdf, U+5be8, U+5bff, U+5c04, U+5c14, U+5c1a, U+5c31, U+5c3c, U+5c3e, U+5c40, U+5c42, U+5c4f, U+5c55, U+5c5e, U+5c71, U+5c9b, U+5ddd-5dde, U+5de5-5de6, U+5dee, U+5df1-5df4, U+5e02-5e03, U+5e0c, U+5e15, U+5e1d, U+5e26, U+5e38, U+5e72-5e73, U+5e76, U+5e7f, U+5e86, U+5e8f, U+5e94, U+5e9a, U+5e9f, U+5ea6, U+5ead, U+5eb7, U+5ef6-5ef7, U+5efa, U+5eff, U+5f02, U+5f15, U+5f20, U+5f52-5f53, U+5f62, U+5f81, U+5f84-5f85, U+5f8b, U+5f97, U+5fb7, U+5fbd, U+5fc3, U+5fc5, U+5fcc, U+6001, U+600e, U+6027, U+603b, U+604b, U+6062, U+606f-6070, U+60c5, U+60f3, U+610f, U+611f, U+61d2, U+620a, U+620c, U+6218, U+622a, U+6237, U+6240, U+624d, U+6253, U+626b, U+627e, U+628a, U+6295, U+6298, U+62a0, U+62a4-62a5, U+62b5, U+62b9, U+62bd, U+62c6, U+62c9, U+62e6, U+62ec, U+62ff, U+6301-6302, U+6307, U+6311, U+631d, U+6324, U+632a, U+6362, U+6377, U+6389, U+638c, U+63a2, U+63a7-63a8, U+63aa, U+63d0, U+63d2, U+63e1, U+6458, U+6469, U+6491, U+64c5, U+652f, U+6536, U+6539, U+653e, U+6545, U+6548, U+6574, U+6590, U+6599, U+659c, U+65ad, U+65af-65b0, U+65b9, U+65cf, U+65e0, U+65e2, U+65e6-65e7, U+65e9, U+65ec, U+65fa, U+6620, U+6625, U+662f, U+663e, U+664b, U+665a, U+666e-666f, U+667a, U+6682, U+6697, U+66b4, U+66ff-6700, U+6708, U+6717, U+671d, U+671f, U+672b-672c, U+6740, U+6743, U+675f-6761, U+6765, U+6784, U+6797, U+67d0, U+67d3, U+67e5, U+67ec, U+67f1, U+6807, U+680f, U+6821, U+6837-6839, U+683c, U+6846, U+6848, U+684c, U+6851, U+6876, U+68c0, U+68ee, U+6b21, U+6b62-6b65, U+6b8b, U+6bb5, U+6bcf, U+6bd4, U+6bdb, U+6c42, U+6c49, U+6c5f, U+6c64, U+6c76, U+6c99, U+6ca1, U+6cbb, U+6cbf, U+6cc4, U+6cca, U+6ce2, U+6ce8, U+6cf0, U+6d25, U+6d2a, U+6d3b, U+6d3e, U+6d41, U+6d4e-6d4f, U+6d59, U+6d66, U+6d77, U+6d88, U+6df1, U+6df7, U+6e05, U+6e2f}

@font-face{font-family:"Noto Serif SC";font-style:normal;font-weight:400 700;font-display:swap;src:url(../../fonts/pages/bazi-1.woff2) format("woff2");unicode-range:U+6e32, U+6e38, U+6e56, U+6e7e, U+6ee1, U+6ee4, U+6f0f, U+6f14, U+6fb3, U+706b, U+7136, U+715e, U+7167, U+7231, U+7247-7248, U+7259, U+7269, U+7279, U+72b6, U+72ec, U+73b0, U+73bb, U+73ed, U+7459, U+745e, U+74dc, U+74e6, U+7518, U+7533, U+7537-7538, U+753b, U+754c, U+7559, U+7565, U+7586, U+7678, U+767d-767e, U+7684, U+7686, U+76ca, U+76d6, U+76ee, U+76f4, U+76fe, U+7701, U+770b, U+771f, U+7740, U+77db, U+77e5, U+77ed, U+7801, U+7840, U+786e, U+793a, U+7956, U+7981, U+798f, U+79bb, U+79cb, U+79cd, U+79d1, U+79d8, U+79e6, U+79f0, U+79fb, U+7a0b, U+7a0d, U+7a33, U+7a81, U+7a84, U+7a97, U+7acb, U+7ad6, U+7ad9, U+7ae0, U+7aef, U+7b26, U+7b2c, U+7b49, U+7b54, U+7b56, U+7c73, U+7c7b, U+7cbe, U+7cfb, U+7d20, U+7d22, U+7ea2, U+7ea6-7ea7, U+7eaf, U+7eb3, U+7ebf, U+7ec4, U+7ec6, U+7ec8, U+7ecd, U+7ed9, U+7edd, U+7edf, U+7ee7, U+7eed, U+7ef4, U+7efc, U+7f00, U+7f05, U+7f13, U+7f18, U+7f29, U+7f3a, U+7f8e, U+7fa4, U+7ffb, U+8005, U+800c, U+8033, U+804c, U+8054, U+805a, U+8083, U+80a9, U+80af, U+80fd, U+810f, U+811a, U+8131, U+814a, U+8151, U+81f3-81f4, U+8272-8273, U+8282, U+82ac, U+82cf, U+82e5, U+82f1, U+8303, U+8328, U+8377, U+83ab, U+83b1, U+83f2, U+8404, U+8425, U+8428, U+843d, U+8457, U+8461, U+8499, U+853d, U+865a, U+8861, U+8865, U+8868, U+8870, U+88ab, U+88c5, U+88d5, U+88f9, U+897f, U+8981, U+8986, U+89c1, U+89c4, U+89c6, U+89c8-89c9, U+89d2, U+89e6, U+8a00, U+8b66, U+8ba1, U+8ba4, U+8ba9, U+8bae, U+8bb0, U+8bb2, U+8bba, U+8bbe, U+8bc1, U+8bc6, U+8bca, U+8bcd, U+8bdd, U+8be2, U+8be5-8be6, U+8bed, U+8bef, U+8bfb, U+8bfe, U+8c01, U+8c03, U+8c08, U+8c0e, U+8c31, U+8c61, U+8d1f, U+8d22, U+8d25, U+8d28, U+8d35, U+8d39, U+8d44, U+8d5e, U+8d70, U+8d77, U+8d85, U+8d8a, U+8db3, U+8dd1, U+8ddd, U+8de8, U+8def, U+8df3, U+8eab, U+8f6c, U+8f74, U+8f7d, U+8f85, U+8f88, U+8f91, U+8f93, U+8f96, U+8f9b, U+8f9e, U+8fa8, U+8fb0, U+8fbd-8fbe, U+8fc7, U+8fd1, U+8fd4, U+8fd8-8fd9, U+8fdb, U+8fde-8fdf, U+8fea, U+8ff0, U+8ffd, U+9000, U+9002, U+9009, U+900f-9010, U+9014, U+9017, U+901a, U+901f, U+903b, U+9047, U+907f, U+90a3, U+90fd, U+9149, U+914b, U+91ca, U+91cc-91cd, U+91cf, U+91d1, U+949f, U+94fe, U+9501, U+9519, U+952e, U+957f, U+95ed-95ee, U+95f0, U+95f4, U+9632, U+963f, U+964d, U+9650, U+9655, U+9664, U+9669, U+9676-9677, U+9686, U+968b, U+968f-9690, U+9694, U+96c6, U+96f6, U+9700, U+9732, U+9752, U+975e, U+97e6, U+97e9, U+97f3, U+9879-987b, U+987f, U+9884, U+9898, U+98df, U+9988, U+9999, U+9a6c, U+9b4f, U+9c81, U+9c9c, U+9ea6, U+9ece, U+9ed1, U+9ed8, U+9f50, U+9f99}
