[hidden]{display:none!important}
:root{
  /* 三才：宣纸为底、墨为字、靛青为主色、朱砂只用于印章与少数强调。版式按书页留白，圆角收小。 */
  --bg:#E9EAE3; --surface:#F7F7F2; --ink:#1E2226; --muted:#5F6668; --line:#D2D4CB;
  --accent:#234A63; --accent-soft:#DCE4E7; --sel:#EAF0F1; --card:var(--surface);
  --seal:#B5382A; --on-seal:#F7F4EC;
  --lu:#2E7454; --quan:#A05A1E; --ke:#2C6491; --ji:#B3332B;
  --brush:"Ma Shan Zheng","STXingkai","KaiTi","STKaiti",serif;
  --serif:"Noto Serif SC","Songti SC","STSong","SimSun",serif;
  --sans:"Noto Sans SC","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  box-sizing:border-box;
  color-scheme:light dark;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#141618; --surface:#1C1F22; --ink:#E6E2D6; --muted:#9A9E9C; --line:#33383B;
    --accent:#8DB3CC; --accent-soft:#233442; --sel:#1F2A31; --seal:#D65F4A;
    --lu:#5DB88A; --quan:#E0954F; --ke:#6FA4D6; --ji:#E5675C;
  }
}
:root[data-theme="dark"]{
  --bg:#141618; --surface:#1C1F22; --ink:#E6E2D6; --muted:#9A9E9C; --line:#33383B;
  --accent:#8DB3CC; --accent-soft:#233442; --sel:#1F2A31; --seal:#D65F4A;
  --lu:#5DB88A; --quan:#E0954F; --ke:#6FA4D6; --ji:#E5675C;
}
*,*::before,*::after{box-sizing:inherit}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.6;-webkit-text-size-adjust:100%}
::selection{background:var(--accent-soft)}
.wrap{max-width:880px;margin:0 auto;padding:20px 12px 40px}
header{position:relative}
.brand{display:flex;align-items:center;gap:14px;padding-right:48px}
.logo{flex:none;width:58px;height:58px}
.lg-disc{fill:var(--seal)}
.lg-rim{fill:none;stroke:var(--on-seal);stroke-width:1.2}
.lg-hole{fill:var(--bg)}
.lg-ch text{fill:var(--on-seal);font-family:var(--brush);font-size:13.5px;text-anchor:middle}
header h1{font-family:var(--brush);font-weight:400;font-size:clamp(40px,10vw,56px);line-height:1;letter-spacing:.06em;margin:6px 0 2px;color:var(--ink)}
.motto{margin:2px 0 0;font-family:var(--serif);font-size:14px;letter-spacing:.4em;color:var(--muted)}
.lede{margin:12px 0 0;color:var(--muted);font-size:14px}
.fret{height:8px;margin:14px 0 14px;background:var(--line);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='8'%3E%3Cpath d='M0 7.5H6V2.5H3V5H4.5M8 .5H14V5.5H11V3H9.5V7.5H16' fill='none' stroke='black'/%3E%3C/svg%3E") repeat-x;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='8'%3E%3Cpath d='M0 7.5H6V2.5H3V5H4.5M8 .5H14V5.5H11V3H9.5V7.5H16' fill='none' stroke='black'/%3E%3C/svg%3E") repeat-x}
.tabs button{display:flex;flex-direction:column;align-items:center;gap:2px}
.tabico{width:24px;height:24px;color:var(--muted);transition:color .15s}
.tabico .ico-key{fill:currentColor;stroke:currentColor}
.tabico .ico-pole{fill:none;stroke:currentColor;stroke-width:1.1}
.tablab{line-height:1.3}
.tabsub{font-family:var(--serif);font-weight:400;font-size:11px;letter-spacing:0;color:var(--muted);line-height:1}
.tabs button[aria-selected="true"] .tabico{color:var(--accent)}
.tabs button[aria-selected="true"] .tabico .ico-key,.tabs button[aria-selected="true"] .tabico .ico-pole{fill:var(--seal);stroke:var(--seal)}
.tabs button[aria-selected="true"] .tabsub{color:var(--seal)}
@media (prefers-reduced-motion:reduce){.tabico{transition:none}}
.themeBtn{position:absolute;top:6px;right:0;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}
.themeBtn:hover{color:var(--accent);border-color:var(--accent)}

/* form */
form{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:14px;display:grid;gap:12px}
.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.row > label.lbl{width:3.2em;color:var(--muted);font-size:14px;flex:none}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden}
.seg button{border:0;background:transparent;color:var(--ink);font:inherit;font-size:14px;padding:6px 14px;cursor:pointer}
.seg button[aria-pressed="true"]{background:var(--accent);color:var(--surface)}
select,input[type=text],input[type=number]{font:inherit;font-size:15px;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:6px 8px;min-width:0}
.dates{display:flex;gap:6px;flex:1;min-width:0}
.dates select{flex:1}
#name{flex:1}
.chk{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--muted)}
.go{font:inherit;font-family:var(--serif);font-weight:700;font-size:17px;letter-spacing:.3em;padding:10px;border:0;border-radius:4px;background:var(--accent);color:var(--surface);cursor:pointer}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.err{color:var(--ji);font-size:14px;margin:0}

/* year bar */
.yearbar{margin:16px 0 10px;display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;font-size:14px;position:sticky;top:env(safe-area-inset-top,0px);z-index:5;background:var(--bg);padding:8px 2px}
.detail{scroll-margin-top:70px}
.yr{display:inline-flex;align-items:center;gap:4px}
.yr button{width:32px;height:32px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:16px;cursor:pointer}
.yr strong{font-family:var(--serif);font-size:18px;min-width:4.4em;text-align:center}
.chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;color:var(--muted)}
.chip{border-radius:6px;padding:0 6px;font-size:13px;border:1px solid currentColor}

/* chart */
.chart{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:minmax(124px,auto);gap:3px;background:var(--line);border:1px solid var(--line);border-radius:5px;overflow:hidden}
.chart svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}
.cell{background:var(--surface);padding:5px 5px 4px;display:flex;flex-direction:column;cursor:pointer;position:relative;min-width:0}
.cell.sel{background:var(--sel)}
.cell.rel{background:color-mix(in srgb,var(--sel) 55%,var(--surface))}
.major{display:flex;flex-wrap:wrap;gap:0 4px}
.major .st{font-family:var(--serif);font-weight:700;font-size:14px;color:var(--accent)}
.minor{display:flex;flex-wrap:wrap;gap:0 4px;margin-top:1px}
.minor .st{font-size:11px;color:var(--ink)}
.adj{font-size:10px;color:var(--muted);margin-top:1px;line-height:1.35}
.st sub{font-size:9px;font-family:var(--sans);font-weight:400;color:var(--muted);vertical-align:baseline;margin-left:1px}
.mu{display:inline-block;font-size:9px;line-height:13px;padding:0 2px;margin-left:1px;border-radius:3px;color:#fff;font-weight:500;font-family:var(--sans);vertical-align:2px}
.mu.o{background:transparent!important;border:1px solid currentColor;line-height:11px}
.m-lu{background:var(--lu)}.mu.o.m-lu{color:var(--lu)}
.m-quan{background:var(--quan)}.mu.o.m-quan{color:var(--quan)}
.m-ke{background:var(--ke)}.mu.o.m-ke{color:var(--ke)}
.m-ji{background:var(--ji)}.mu.o.m-ji{color:var(--ji)}
.foot{margin-top:auto;display:flex;justify-content:space-between;align-items:flex-end;gap:2px;padding-top:3px;border-top:1px dashed var(--line)}
.pn{font-family:var(--serif);font-weight:700;font-size:13px;white-space:nowrap}
.pn i{font-style:normal;font-size:10px;margin-left:2px;padding:0 3px;border-radius:3px;background:var(--accent);color:var(--surface);vertical-align:2px}
.gz{font-size:11px;color:var(--muted);text-align:right;line-height:1.2}
.tags{position:absolute;top:4px;right:4px;display:flex;gap:2px}
.tags span{font-size:10px;width:16px;height:16px;line-height:16px;text-align:center;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-weight:500}
.center{grid-column:2/4;grid-row:2/4;background:var(--surface);padding:12px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:2px;font-size:12.5px;color:var(--muted)}
.center .who{font-family:var(--serif);font-weight:700;font-size:18px;color:var(--ink)}
.center .ju{font-family:var(--serif);font-size:22px;letter-spacing:.15em;color:var(--accent);margin:4px 0}
.center .pillars{font-family:var(--serif);color:var(--ink);font-size:14px;letter-spacing:.08em}

/* detail */
.detail{margin-top:14px;background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:14px 16px}
.detail h2{font-family:var(--serif);margin:0 0 4px;font-size:22px}
.detail h2 small{font-family:var(--sans);font-weight:400;font-size:14px;color:var(--muted);margin-left:8px}
.detail h3{font-size:14px;color:var(--muted);font-weight:500;margin:14px 0 4px}
.detail p{margin:0 0 6px;max-width:40em}
.mstar{margin:6px 0}
.mstar b{font-family:var(--serif);color:var(--accent);font-size:16px}
.pmean{background:var(--accent-soft);border-radius:8px;padding:8px 12px;margin:8px 0 8px!important}
.mn .st{font-family:var(--serif);font-weight:700;color:var(--accent)}
.guideBtn{margin-top:16px;width:100%;font:inherit;font-family:var(--serif);font-weight:700;font-size:16px;letter-spacing:.1em;padding:10px;border:1.5px solid var(--accent);border-radius:4px;background:transparent;color:var(--accent);cursor:pointer}
.guide{background:var(--surface);border:1.5px solid var(--accent);border-radius:6px;padding:12px 16px 14px;margin-bottom:10px}
.ghead{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--muted)}
.ghead button{border:0;background:transparent;color:var(--muted);font-size:22px;line-height:1;cursor:pointer;padding:0 4px}
.prog{display:flex;gap:4px;margin:6px 0 8px}
.prog i{flex:1;height:3px;border-radius:2px;background:var(--line)}
.prog i.on{background:var(--accent)}
.guide h2{font-family:var(--serif);font-size:19px;margin:0 0 6px}
.guide p{margin:0 0 6px;max-width:40em}
.guide .tip{font-size:13.5px;color:var(--muted)}
.gnav{display:flex;gap:8px;margin-top:10px}
.gnav button{flex:1;font:inherit;padding:8px;border-radius:8px;cursor:pointer;border:1px solid var(--line);background:var(--bg);color:var(--ink)}
.gnav button.pri{background:var(--accent);color:var(--surface);border-color:var(--accent)}
.gnav button:disabled{opacity:.4;cursor:default}
.cell.hl{box-shadow:inset 0 0 0 2px var(--accent)}
.pro{font-size:14px;color:var(--muted);margin:4px 0!important}
.pro span,.plain span{display:inline-block;font-size:11px;line-height:16px;padding:0 5px;border-radius:4px;margin-right:6px;vertical-align:1px}
.pro span{border:1px solid var(--muted);color:var(--muted)}
.plain{padding:2px 0;margin:4px 0 6px!important;color:var(--ink)}
.plain span{background:var(--lu);color:var(--surface)}
.mstar{padding:6px 0;border-bottom:1px dashed var(--line)}
.mstar:last-child{border-bottom:0}
.mstar b.mu{font-family:var(--sans);font-size:11px;line-height:15px;padding:0 4px;color:#fff}
.tabs{display:flex;gap:0;margin:0 0 16px;border-bottom:1px solid var(--line)}
.tabs button{flex:1;font:inherit;font-family:var(--serif);font-weight:700;font-size:17px;letter-spacing:.2em;padding:8px 0 10px;border:0;background:none;color:var(--muted);cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-1px}
.tabs button[aria-selected="true"]{color:var(--accent);border-bottom-color:var(--accent)}
.almbar{display:flex;gap:6px;align-items:center;margin-bottom:12px}
.almbar button{width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:18px;cursor:pointer;flex:none}
.almbar .today{width:auto;border-radius:999px;padding:0 14px;font:inherit;font-size:14px}
.almbar input{flex:1;min-width:0;font:inherit;font-size:15px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:4px;padding:6px 8px}
.ahero{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:16px;display:grid;grid-template-columns:auto 1fr;gap:4px 16px;align-items:center}
.ahero .big{font-family:var(--serif);font-weight:700;font-size:64px;line-height:1;color:var(--accent);grid-row:1/4}
.ahero .lun{font-family:var(--serif);font-size:20px;font-weight:700}
.ahero .gz2{color:var(--muted);font-size:14px}
.ahero .tagrow{display:flex;flex-wrap:wrap;gap:6px}
.ahero .tag{font-size:12.5px;padding:1px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent)}
.ahero .tag.good{background:var(--lu);color:var(--surface)}
.ahero .tag.bad{background:var(--ji);color:var(--surface)}
.yiji{display:grid;grid-template-columns:1fr;gap:10px;margin-top:10px}
@media (min-width:640px){.yiji{grid-template-columns:1fr 1fr}}
.yj{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:12px 14px;display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start}
.yj .ch{font-family:var(--serif);font-weight:700;font-size:40px;line-height:1;width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--surface)}
.yj.y .ch{background:var(--lu)}.yj.j .ch{background:var(--ji)}
.terms{display:flex;flex-wrap:wrap;gap:6px}
.terms button{font:inherit;font-size:14.5px;padding:3px 10px;border-radius:8px;border:1px solid var(--line);background:var(--bg);color:var(--ink);cursor:pointer}
.yj.y .terms button[aria-pressed="true"]{border-color:var(--lu);color:var(--lu)}
.yj.j .terms button[aria-pressed="true"]{border-color:var(--ji);color:var(--ji)}
.termx{grid-column:1/-1;min-height:0}
.hint{font-size:12.5px;color:var(--muted);margin:4px 0 0}
.me{margin-top:10px;border-radius:6px;padding:12px 14px;border:1.5px solid var(--accent);background:var(--surface)}
.me b{font-family:var(--serif)}
.acard{margin-top:10px;background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:4px 16px 10px}
.arow{padding:10px 0;border-bottom:1px dashed var(--line)}
.arow:last-child{border-bottom:0}
.arow .k{color:var(--muted);font-size:13px}
.arow .v{font-family:var(--serif);font-weight:700;font-size:16px}
.arow .plain,.arow .pro{margin:3px 0 0!important}
.times{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:8px}
@media (min-width:640px){.times{grid-template-columns:repeat(6,1fr)}}
.times div{border-radius:8px;padding:5px 4px;text-align:center;font-size:12px;line-height:1.35;border:1px solid var(--line)}
.times b{display:block;font-family:var(--serif);font-size:14px}
.times .good{border-color:var(--lu);color:var(--lu)}.times .bad{color:var(--muted)}
.times .now{box-shadow:0 0 0 2px var(--accent)}
.ask{margin-top:14px;background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:14px 16px}
.askHead{display:flex;justify-content:space-between;align-items:center}
.askHead h2{font-family:var(--serif);font-size:20px;margin:0;color:var(--accent)}
.askHead button{font:inherit;font-size:13px;border:0;background:none;color:var(--muted);cursor:pointer}
.askNote{font-size:13px;color:var(--muted);margin:4px 0 10px}
.chips2{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.askSrc{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 10px;font-size:13px;color:var(--muted)}
.askSrc button{font:inherit;font-size:12.5px;padding:3px 10px;border-radius:999px;border:1px dashed var(--line);background:transparent;color:var(--muted);cursor:pointer}
.askSrc button[aria-pressed="true"]{border-style:solid;border-color:var(--accent);background:var(--accent-soft);color:var(--ink)}
.askSrc button:disabled{cursor:default}
.askSrc button:disabled:not(.main){opacity:.5}
.askSrc button:focus-visible,.chips2 button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.chips2 button{font:inherit;font-size:13.5px;padding:5px 12px;border-radius:999px;border:1px solid var(--accent);background:transparent;color:var(--accent);cursor:pointer}
.chips2 button:disabled,.askBtns button:disabled{opacity:.45;cursor:default}
.msgs{display:flex;flex-direction:column;gap:10px}
.msg{padding:9px 12px;border-radius:5px;max-width:100%;font-size:14.5px;overflow-wrap:anywhere}
.msg.u{align-self:flex-end;background:var(--accent);color:var(--surface);max-width:85%}
.msg.a{align-self:stretch;background:var(--bg)}
.msg.a h4{font-family:var(--serif);font-size:15.5px;margin:10px 0 4px}
.msg.a p{margin:0 0 6px}.msg.a ul{margin:0 0 6px;padding-left:1.3em}
.msg.a .lbl-pro{color:var(--muted);font-size:12px;border:1px solid var(--muted);border-radius:4px;padding:0 4px;margin-right:4px}
.msg.a .lbl-plain{color:var(--surface);background:var(--lu);font-size:12px;border-radius:4px;padding:0 4px;margin-right:4px}
.msg.err{color:var(--ji);background:transparent;padding:0}
.askForm{display:flex;gap:8px;margin-top:10px;align-items:flex-end}
.askForm textarea{flex:1;font:inherit;font-size:15px;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:8px 10px;resize:vertical;min-width:0}
.askBtns{display:flex;flex-direction:column;gap:6px}
.askBtns button{font:inherit;font-size:14px;padding:8px 14px;border-radius:4px;border:1px solid var(--accent);cursor:pointer;background:var(--accent);color:var(--surface)}
#askStop{background:transparent;color:var(--accent)}
.gloss{margin-top:12px;background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:12px 16px}
.gloss summary{cursor:pointer;font-family:var(--serif);font-weight:700;color:var(--accent)}
.gloss dl{margin:10px 0 0}
.gloss dt{font-weight:500;margin-top:10px}
.gloss dd{margin:2px 0 0;color:var(--muted);font-size:14px;max-width:40em}
.kv{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;font-size:14px}
.kv dt{color:var(--muted)}.kv dd{margin:0}
.legend{margin-top:12px;font-size:12.5px;color:var(--muted);display:flex;flex-wrap:wrap;gap:6px 14px}
footer{margin-top:24px;font-size:12.5px;color:var(--muted);max-width:40em}
footer a{color:var(--accent)}

@media (min-width:640px){
  .wrap{padding:32px 20px 56px}
  .chart{grid-auto-rows:minmax(150px,auto)}
  .cell{padding:7px 8px 6px}
  .major .st{font-size:16px}
  .minor .st{font-size:12.5px}
  .adj{font-size:11.5px}
  .pn{font-size:15px}
  .gz{font-size:12px}
  .center{font-size:14px}
  .center .who{font-size:22px}.center .ju{font-size:28px}.center .pillars{font-size:17px}
  form{grid-template-columns:1fr 1fr;padding:18px}
  form .full{grid-column:1/-1}
}
@media (max-width:420px){ .adj{display:none} }
@media (prefers-reduced-motion:no-preference){
  .chart svg.anim line{stroke-dasharray:400;stroke-dashoffset:400;animation:draw .5s ease-out forwards}
  @keyframes draw{to{stroke-dashoffset:0}}
}
@media print{
  form,.tabs,.guideBtn,.guide,.ask,.gloss,.legend,.almbar,.themeBtn{display:none!important}
  body{background:#fff;color:#111}
  .wrap{max-width:none;padding:0}
  .cell,.center,.detail,.yj,.acard,.ahero{background:#fff!important}
  a{color:#111;text-decoration:none}
}
/* 风水 */
.fs-h{font-family:var(--serif);font-size:18px;margin:20px 0 6px;color:var(--ink)}
.fs-h small{font-family:var(--sans);font-weight:400;font-size:13px;color:var(--muted)}
.fs9{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;background:var(--line);border:1px solid var(--line);border-radius:5px;overflow:hidden;margin-top:8px}
.fsc{background:var(--surface);padding:8px 4px;text-align:center;min-height:88px;display:flex;flex-direction:column;justify-content:center;gap:3px}
.fsc.mid{background:var(--accent-soft)}
.fsc .dir{font-size:11.5px;color:var(--muted)}
.fsc .star{font-family:var(--serif);font-weight:700;font-size:17px}
.fsc.ji .star{color:var(--lu)}
.fsc.xiong .star{color:var(--ji)}
.fsc .sub{font-size:11px;color:var(--muted)}
.fsc .big{font-family:var(--serif);font-size:24px;font-weight:700;color:var(--accent)}
.xks{display:flex;justify-content:center;gap:12px}
.xks span{display:flex;flex-direction:column;line-height:1.35}
.xks i{font-style:normal;font-size:10px;color:var(--muted)}
.xks b{font-family:var(--serif);font-size:20px}
.xks b.wang{color:var(--accent)}
.pat{display:inline-block;font-size:13px;padding:2px 10px;border-radius:999px;background:var(--accent-soft);color:var(--accent);margin:2px 4px 2px 0}
.chklist{display:grid;gap:8px;margin-top:8px}
@media(min-width:640px){.chklist{grid-template-columns:1fr 1fr}}
.chkitem{display:flex;gap:8px;align-items:flex-start;border:1px solid var(--line);border-radius:4px;padding:8px 10px;font-size:14px;cursor:pointer;background:var(--surface)}
.chkitem input{margin-top:4px;flex:none}
.fscard{border:1px solid var(--line);border-radius:4px;padding:10px 12px;margin-top:8px;background:var(--surface)}
.sev{font-size:11px;padding:1px 8px;border-radius:999px;margin-left:4px;white-space:nowrap}
.sev.s3{background:var(--ji);color:#fff}
.sev.s2{background:var(--accent-soft);color:var(--accent)}
.sev.s1{background:var(--bg);color:var(--muted);border:1px solid var(--line)}
.sev.s0{background:transparent;color:var(--lu);border:1px solid var(--lu)}
.chkwrap{display:grid;gap:6px;margin-top:8px}
.chkgrp{border-top:1px solid var(--line);padding-top:6px}
.chkgrp summary{cursor:pointer;font-family:var(--serif);font-weight:700;font-size:15px;letter-spacing:.1em;padding:2px 0}
.chkgrp summary .hint{font-family:var(--sans);font-weight:400;letter-spacing:0}
.fs-score{display:flex;align-items:center;gap:14px;margin:4px 0 6px}
.fs-score .num{font-family:var(--serif);font-weight:700;font-size:40px;line-height:1;color:var(--seal);min-width:2.2ch;text-align:center;font-variant-numeric:tabular-nums}
.fs-score b{font-family:var(--serif);font-size:18px}
.fs-sdetail{font-size:13px;color:var(--muted);margin:0 0 8px}
.fs-sdetail summary{cursor:pointer}
.fs-sdetail ul{margin:6px 0 0;padding-left:1.2em}
.fs-sdetail li span{font-variant-numeric:tabular-nums}
.fs-rooms{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px 12px;margin-top:8px}
.fs-rooms label{display:flex;flex-direction:column;gap:3px;font-size:13px;color:var(--muted)}
.fs-rooms select{font:inherit;font-size:15px}
.qm-pick{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 10px}
.qm-pick .lbl{min-width:4.5em}
.qm-chips{display:flex;flex-wrap:wrap;gap:6px}
.qm-chips button{font:inherit;font-size:14px;padding:5px 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer}
.qm-chips button[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--surface)}
.qm-chips button:focus-visible,.seg button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.qm-card .qm-when{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px}
.qm-rank{font-family:var(--serif);font-size:12px;line-height:18px;padding:0 6px;border:1px solid var(--seal);border-radius:2px;color:var(--seal)}
.qm-dir{margin:6px 0 2px;font-size:15px}
.qm-dir b{font-family:var(--serif);font-size:22px;color:var(--seal);margin:0 2px}
.qm-warn{color:var(--quan);font-style:normal}
.qm-pro{margin-top:14px;border-top:1px solid var(--line);padding-top:8px}
.qm-pro summary{cursor:pointer;font-family:var(--serif);font-weight:700}
.qm9 .fsc{min-height:112px;gap:1px}
.qm9 .qm-god{font-size:12px;color:var(--muted)}
.qm9 .qm-star{font-size:13px}
.qm9 .qm-star small{font-size:10px;color:var(--muted);margin-left:2px}
.qm9 .qm-door{font-size:16px}
.qm9 .qm-mk{font-weight:400;color:var(--seal)}
.qm9 .qm-hl{box-shadow:inset 0 0 0 2px var(--seal)}
/* 风水场景 */
.fs-scen{display:grid;gap:10px}
.fs-scard{display:grid;grid-template-columns:44px 1fr;gap:4px 10px;align-items:center;text-align:left;background:var(--card);border:1px solid var(--line);border-radius:5px;padding:14px;cursor:pointer;width:100%}
.fs-scard:active{transform:scale(.99)}
.fs-mark{grid-row:span 2;display:grid;place-items:center;width:40px;height:40px;border:1.5px solid var(--seal);border-radius:3px;color:var(--seal);font-family:var(--serif);font-weight:700;font-size:21px}
.fs-scard b{font-size:16px}
.fs-scard span:last-child{font-size:13px;color:var(--muted)}
.fs-wizbar{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.fs-wizbar b{font-size:16px}
.linkbtn{background:none;border:none;color:var(--accent);font-size:14px;cursor:pointer;padding:4px 0}
.fs-step{font-size:13px;color:var(--muted);margin-bottom:8px}
.fs-optgrid{display:grid;gap:10px;margin:10px 0}
.fs-opt{border:1px solid var(--line);border-radius:4px;padding:12px;background:var(--card)}
.fs-opt h4{margin:0 0 6px;font-size:15px}
.fs-compass-ov{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:100;display:flex;align-items:center;justify-content:center;padding:20px}
.fs-compass-box{background:var(--card);border-radius:6px;padding:20px;max-width:380px;width:100%;max-height:90vh;overflow:auto}
/* 表盘容器：固定高度，内容变化不撑开弹窗 */
.fs-compass-dialwrap{width:220px;height:220px;margin:12px auto;position:relative;flex:none}
.fs-dial-svg{width:100%;height:100%;display:block}
.fs-dial-face{fill:var(--card)}
.fs-dial-rim{fill:none;stroke:var(--line);stroke-width:2}
.fs-tick-min{stroke:var(--muted);stroke-width:.7;opacity:.55}
.fs-tick-mid{stroke:var(--muted);stroke-width:1;opacity:.8}
.fs-tick-major{stroke:var(--ink);stroke-width:1.4}
.fs-deg-num{font-size:8px;fill:var(--muted);text-anchor:middle;font-variant-numeric:tabular-nums}
.fs-dir-card{font-size:13px;font-weight:700;fill:var(--seal);text-anchor:middle}
.fs-dir-ord{font-size:10px;fill:var(--ink);text-anchor:middle}
.fs-m24{font-size:7.5px;fill:var(--muted);text-anchor:middle}
.fs-needle-g{transition:transform .18s ease-out}
.fs-needle-n{fill:var(--seal)}
.fs-needle-s{fill:var(--muted);opacity:.7}
.fs-needle-cap{fill:var(--ink);stroke:var(--card);stroke-width:1.5}
.fs-deg-big{font-size:22px;font-weight:700;fill:var(--ink);text-anchor:middle;font-variant-numeric:tabular-nums}
/* 气泡水平仪 */
.fs-level-row{display:flex;align-items:center;justify-content:flex-start;gap:10px;margin:4px 0 2px}
.fs-level{width:56px;height:56px;border-radius:50%;border:2px solid var(--line);position:relative;background:radial-gradient(circle,var(--card) 55%,var(--bg) 100%);flex:none}
.fs-level-cross-h{position:absolute;left:4px;right:4px;top:50%;height:1px;background:var(--line);opacity:.6}
.fs-level-cross-v{position:absolute;top:4px;bottom:4px;left:50%;width:1px;background:var(--line);opacity:.6}
.fs-level-ring{position:absolute;inset:18px;border:1px dashed var(--muted);border-radius:50%;opacity:.7}
.fs-level-bubble{position:absolute;left:50%;top:50%;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;background:#e0533d;opacity:.85;transition:transform .12s ease-out}
.fs-level-bubble.warn{background:#e8a13d}
.fs-level-bubble.ok{background:#3da65a}
/* 读数行固定两行高度，单行/双行切换不顶开布局 */
.fs-cread-line{min-height:3.2em}
/* 旧样式保留兼容（向导页小罗盘） */
.fs-compass-dial{width:180px;height:180px;border:2px solid var(--line);border-radius:50%;margin:12px auto;position:relative;background:radial-gradient(circle,var(--card) 60%,var(--bg) 100%)}
.fs-compass-needle{position:absolute;inset:0;display:flex;align-items:flex-start;justify-content:center;font-size:24px;color:var(--seal);transition:transform .2s}
.fs-compass-deg{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:700;font-variant-numeric:tabular-nums}
#fsCRead{font-variant-numeric:tabular-nums}
.fs-dial-wrap{display:flex;flex-direction:column;align-items:center;gap:8px;margin:10px 0}
input[type=range].fs-range{width:100%;max-width:320px}
.fs-result-head{background:var(--card);border:1px solid var(--line);border-radius:5px;padding:14px;margin-bottom:12px}
.fs-result-head .big{font-size:18px;font-family:var(--serif)}
.fs-verdict{font-size:15px;margin-top:8px;padding:10px 12px;background:var(--bg);border-radius:4px;line-height:1.9}
.vk{display:inline-block;font-family:var(--serif);font-size:12px;line-height:18px;padding:0 5px;margin-right:8px;border:1px solid var(--seal);border-radius:2px;color:var(--seal);vertical-align:1px}
.fs-warn{border:1px solid var(--quan);background:var(--surface);border-radius:4px;padding:10px 12px;margin:10px 0;font-size:14px;line-height:1.6}
.fs-warn b{color:var(--quan)}

/* 奇门术语按钮 */
.qm-term{background:none;border:none;color:var(--accent);cursor:pointer;font-size:inherit;padding:2px 4px;border-bottom:1px dashed var(--accent);min-width:40px;min-height:40px}
.qm-term:hover{background:var(--bg)}
.qm-term[aria-pressed="true"]{background:var(--accent);color:#fff;border-bottom-style:solid}
.qm-plain-box{margin-top:8px}
.qm-warn-h{color:var(--seal);font-weight:700}
.qm-warn-m{color:var(--seal)}
.qm-warn-l{color:var(--muted)}
.qm-lv{display:inline-block;background:var(--seal);color:#fff;font-size:10px;padding:1px 4px;border-radius:2px;margin-right:4px;font-weight:700}

/* T7 按事择日 */
.pickdate{margin:12px 0;border:1px solid var(--line);border-radius:6px;padding:10px 14px}
.pickdate summary{cursor:pointer;font-weight:700;min-height:40px;display:flex;align-items:center}
.pick-body{margin-top:8px}
.pick-row{display:flex;gap:8px;align-items:center;margin-bottom:10px;flex-wrap:wrap}
.pick-row .lbl{font-weight:600;min-width:4em}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{border:1px solid var(--line);background:var(--card);border-radius:16px;padding:8px 14px;cursor:pointer;min-height:40px}
.chip[aria-pressed="true"]{background:var(--accent);color:#fff;border-color:var(--accent)}
.pick-day{display:block;width:100%;text-align:left;border:1px solid var(--line);background:var(--card);border-radius:6px;padding:10px 14px;margin-bottom:6px;cursor:pointer;min-height:44px}
.pick-day:hover{border-color:var(--accent)}
.cmp-table{width:100%;border-collapse:collapse;margin:12px 0;font-size:14px}
.cmp-table th,.cmp-table td{border:1px solid var(--line);padding:8px;text-align:left}
.cmp-table th{background:var(--bg);font-weight:700}

/* T11-4：小屏首屏优化 */
@media (max-width:480px){
  .lede{margin:8px 0;padding:8px 0}
  .divider{margin:8px 0}
}
