*{box-sizing:border-box}
@font-face{font-family:"AR PL UKai CN";src:url("arphic-kai.woff2") format("woff2");font-style:normal;font-weight:400;font-display:swap}
:root{font-family:"AR PL UKai CN",KaiTi,STKaiti,"Kaiti SC",serif;font-size:16px;font-synthesis:none}
body{--bg:#eaece6;--panel:#f8f8f2;--paper:#eff0e9;--ink:#1e302a;--soft:#52645a;--line:#c9d0c3;--primary:#294f43;--on:#fff;--seal:#a83d34;--red:#a12722;--red-bg:#f5ded7;--tomb-ink:#fff;--tomb-bg:#535353;--gray:#525665;--gray-bg:#e8e8ed;--gold:#755525;--gold-bg:#f0e7cf;--mist:#d4ddd1;margin:0;background:var(--bg);color:var(--ink);min-height:100vh}
body[data-skin=paper]{--bg:#f0e7d6;--panel:#fffaf0;--paper:#f5eddc;--ink:#372b23;--soft:#64564a;--line:#d9cbb5;--primary:#624e3a;--mist:#e9d9ba}
body[data-skin=night]{color-scheme:dark;--bg:#151f28;--panel:#202c37;--paper:#283746;--ink:#f0eee6;--soft:#bac9cd;--line:#3e5061;--primary:#c4ddda;--on:#182c32;--seal:#f09882;--red:#ffd0c6;--red-bg:#653733;--tomb-ink:#1d1d1d;--tomb-bg:#bdbdbd;--gray:#e0e1ee;--gray-bg:#3c4557;--gold:#f5dfa9;--gold-bg:#564735;--mist:#30495a}
body[data-skin=pinejade]{
  color-scheme:light;
  --gradient-start:#d6e5d9;--gradient-mid:#edf2e1;--gradient-end:#f5e9cd;
  --bg:var(--gradient-mid);--panel:#f7f8ef;--paper:#e6eedf;--ink:#233a2e;--soft:#4d6053;
  --line:#b9c7b5;--primary:#2d5340;--on:#f8f7ea;--seal:#71552a;
  --red:#823b36;--red-bg:#ecdcd7;
  background:linear-gradient(145deg,var(--gradient-start),var(--gradient-mid) 49%,var(--gradient-end));
  background-attachment:fixed;
}
body[data-skin=pinejade] .top{background:linear-gradient(100deg,var(--gradient-start),var(--gradient-mid))}
body[data-skin=pinejade] .bottom-nav{background:linear-gradient(100deg,var(--gradient-mid),var(--gradient-end))}
body[data-skin=cinnabar]{
  color-scheme:light;
  --bg:#e9d6d5;--panel:#f9eeea;--paper:#eddbd7;--ink:#302324;--soft:#695150;
  --line:#cfb6b2;--primary:#6e2e36;--on:#fff5ef;--seal:#842e38;
  --red:#8d3034;--red-bg:#f0d5d2;
}
body[data-skin=mistblue]{
  color-scheme:light;
  --bg:#d7e2ea;--panel:#eff5f8;--paper:#dfebf2;--ink:#202f43;--soft:#445a70;
  --line:#a8becd;--primary:#294967;--on:#f5faff;--seal:#274966;
  --red:#89363f;--red-bg:#f0dbe0;
}
body[data-skin=blackgold]{
  color-scheme:dark;
  --bg:#151411;--panel:#24211b;--paper:#302b23;--ink:#f1e7d5;--soft:#c4b69e;
  --line:#62533d;--primary:#e2c68b;--on:#271e13;--seal:#edcf92;
  --red:#ffb5a4;--red-bg:#603533;
}
body:is([data-skin=cinnabar],[data-skin=mistblue],[data-skin=blackgold]){
  background:radial-gradient(ellipse at 80% 0,var(--paper) 0,transparent 55%),var(--bg);
  background-attachment:fixed;
}
a{color:inherit;text-decoration:none}
button,input,textarea{font:inherit}
button,a,input,textarea{-webkit-tap-highlight-color:transparent}
button{cursor:pointer;color:inherit}
:focus-visible{outline:2px solid var(--seal);outline-offset:3px}
.top{position:sticky;top:0;z-index:1;background:var(--panel);border-bottom:1px solid var(--line);padding-top:env(safe-area-inset-top)}
.top-inner{max-width:790px;margin:auto;display:flex;align-items:center;justify-content:space-between;min-height:62px;padding:0 16px;gap:8px}
.top-inner>div:empty{display:none}
body:is([data-page=bazi-result],[data-page=result],[data-page=palace]) .top-inner{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:4px;min-height:44px}
#top-back{grid-column:1;grid-row:1;justify-self:start}
#top-action{grid-column:3;grid-row:1;justify-self:end}
body:is([data-page=bazi-result],[data-page=result],[data-page=palace]) .signature{grid-column:2;grid-row:1;font-size:15px;gap:4px;letter-spacing:0}
body:is([data-page=bazi-result],[data-page=result],[data-page=palace]) .signature i{width:23px;height:23px;font-size:16px}
#top-back .back,#top-action .btn{min-height:36px;white-space:nowrap;font-size:clamp(11px,3.5vw,14px)}
#top-action .btn{padding:3px 7px}
.signature{display:flex;align-items:center;gap:7px;color:var(--seal);font-weight:700;white-space:nowrap;letter-spacing:.08em}
.signature i{display:grid;place-items:center;width:27px;height:27px;border:1px solid currentColor;border-radius:5px;font-style:normal;font-size:18px}
.launch-screen{
  position:fixed;inset:0;z-index:10;display:grid;place-items:center;
  color:#f8e9d8;background:radial-gradient(ellipse at 50% 44%,#322034,transparent 55%),#150f1c;
  pointer-events:none;animation:launch-away 1s both;
}
.launch-mark{
  display:grid;justify-items:center;gap:20px;
  animation:launch-ink .46s ease-out both;
}
.launch-seal{
  display:grid;place-items:center;width:58px;height:58px;border:1px solid #e8b19c;border-radius:7px;
  background:#82393e;color:#fff1df;box-shadow:inset 0 0 0 4px #82393e,inset 0 0 0 5px #e8b19c85;
  font-size:33px;line-height:1;
}
.launch-title{
  padding:0 .26em 12px .5em;border-bottom:1px solid #bd8b774f;
  font-size:clamp(30px,8vw,53px);letter-spacing:.24em;line-height:1.3;
}
@keyframes launch-away{0%,76%{opacity:1}100%{opacity:0;visibility:hidden}}
@keyframes launch-ink{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.launch-mark{animation:none}.launch-screen{animation-timing-function:steps(1,end)}}
.bottom-nav{position:fixed;inset:auto 0 0;z-index:3;padding:5px 12px calc(5px + env(safe-area-inset-bottom));background:var(--panel);border-top:1px solid var(--line)}
.bottom-inner{display:grid;grid-auto-columns:1fr;grid-auto-flow:column;gap:5px;max-width:790px;margin:auto}
.bottom-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:51px;border-radius:9px;color:var(--soft);font-size:13px;font-weight:600}
.bottom-nav a[aria-current=page]{background:var(--paper);color:var(--primary)}
.nav-icon{position:relative;display:block;width:17px;height:17px}
.icon-chart{border:1.5px solid currentColor;border-radius:3px;background:linear-gradient(currentColor,currentColor) center/1px 100% no-repeat,linear-gradient(currentColor,currentColor) center/100% 1px no-repeat}
.icon-bazi{border:1.5px solid currentColor;border-radius:3px}
.icon-bazi::before,.icon-bazi::after{content:"";position:absolute;top:2px;bottom:2px;width:1px;background:currentColor}
.icon-bazi::before{left:4px}
.icon-bazi::after{right:4px}
.icon-me::before,.icon-me::after{content:"";position:absolute;left:50%;transform:translateX(-50%);border:1.5px solid currentColor}
.icon-me::before{width:6px;height:6px;border-radius:50%}
.icon-me::after{width:14px;height:7px;bottom:0;border-radius:7px 7px 2px 2px}
.container{max-width:790px;margin:auto;padding:18px 12px calc(83px + env(safe-area-inset-bottom))}
.hero{overflow:hidden;isolation:isolate;position:relative;padding:20px;border:1px solid var(--line);border-radius:18px;background:radial-gradient(ellipse at 86% 15%,var(--mist),transparent 70%),var(--panel)}
.hero::before,.hero::after{position:absolute;content:"";z-index:-1;bottom:-46px;right:-54px;width:72%;height:120px;background:var(--mist);transform:rotate(-12deg);opacity:.65;border-radius:60% 80% 0 0}
.hero::after{bottom:-66px;right:0;transform:rotate(8deg);opacity:.82}
h1,h2,p{margin:0}
h1{font-size:clamp(27px,7vw,38px);letter-spacing:.09em;line-height:1.2}
h2{font-size:18px;margin:0 0 10px}
p{line-height:1.6}
.hero p,.muted,.hint{color:var(--soft)}
.hero p{margin-top:7px;font-size:14px}
.card{padding:14px;margin:13px 0;background:var(--panel);border:1px solid var(--line);border-radius:14px}
.field{display:grid;gap:5px;font-size:14px;font-weight:600;min-width:0}
input,textarea{width:100%;min-width:0;min-height:44px;padding:9px 8px;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:8px}
textarea{resize:vertical;min-height:94px;line-height:1.5}
.tools,.switch,.badges{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.tools{justify-content:space-between;margin-top:11px}
.switch{background:var(--paper);padding:3px;border:1px solid var(--line);border-radius:9px;gap:2px}
.switch label{position:relative;cursor:pointer}
.switch input{position:absolute;opacity:0;inset:0;width:100%;height:100%;min-height:0;cursor:pointer}
.switch span{display:block;padding:7px 9px;border-radius:6px;font-size:13px}
.switch input:checked + span{background:var(--primary);color:var(--on)}
.switch input:focus-visible + span{outline:2px solid var(--seal)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:7px 12px;border:1px solid var(--line);border-radius:9px;background:var(--panel);font-size:14px;font-weight:650;text-align:center}
.primary{background:var(--primary);color:var(--on);border-color:var(--primary)}
.meta-top,.heading-row{display:flex;align-items:center;justify-content:space-between;gap:8px}
.meta-top h2,.heading-row h2{margin:0}
.pillars{display:flex;gap:5px;flex-wrap:wrap;margin:11px 0}
.pillar{display:grid;place-items:center;min-width:43px;flex:1;padding:4px;background:var(--paper);border-radius:7px;line-height:1.45}
.pillar small{color:var(--soft);font-size:11px}
.meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 10px;font-size:13px}
.meta div{display:flex;gap:5px;flex-wrap:wrap}
.meta b{color:var(--soft);font-weight:550}
.heading-row{margin:17px 0 8px}
.hint{font-size:12px}
.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
.cell{display:flex;flex-direction:column;justify-content:space-between;gap:4px;text-align:left;min-width:0;min-height:113px;padding:7px 5px;border:1px solid var(--line);border-radius:9px;background:var(--panel);font-size:12px}
a.cell:active{background:var(--paper)}
.cell header,.cell-row{display:flex;align-items:center;justify-content:space-between;gap:2px;flex-wrap:wrap}
.cell header{color:var(--soft);font-size:11px}
.cell-row b{font-size:16px;line-height:1}
.cell-row em{font-style:normal;font-weight:600}
.cell .hidden{color:var(--soft);font-size:11px}
.cell .badges{gap:2px;min-height:17px}
.mark{display:inline-block;line-height:1.35;padding:1px 4px;border-radius:4px;font-size:10px;font-weight:700;white-space:nowrap}
.red{color:var(--red);background:var(--red-bg)}
.tomb,.state-tomb{color:var(--tomb-ink);background:var(--tomb-bg)}
.void{color:var(--gray);background:var(--gray-bg);outline:1px dashed currentColor;outline-offset:-1px}
.horse{color:var(--gold);background:var(--gold-bg)}
.legend{display:flex;align-items:center;gap:11px;margin:13px 0 0;font-size:14px;font-weight:700}
.legend-label{color:var(--soft);font-size:13px}
.state-red{color:var(--red)}
.state-tomb{display:inline-block;padding:.09em .16em;border-radius:4px;line-height:1;font-weight:750}
.state-both{color:var(--red);text-decoration:underline 3px var(--tomb-bg);text-underline-offset:3px}
.state-circle{color:var(--ink);font-size:24px;font-weight:700;line-height:.9}
.chart-board{position:relative;--rail:clamp(28px,8vw,46px);padding:24px var(--rail);margin:0 auto;max-width:620px}
.corner-horse{position:absolute;display:grid;place-items:center;width:var(--rail);height:24px;color:var(--red);font-size:16px;font-weight:700}
.corner-horse-4,.corner-horse-8{left:0}
.corner-horse-2,.corner-horse-6{right:0}
.corner-horse-4,.corner-horse-2{top:0}
.corner-horse-8,.corner-horse-6{bottom:0}
.outer-stem{position:absolute;display:grid;place-items:center;width:var(--rail);font-size:clamp(14px,4vw,20px);font-weight:600;line-height:1.2;white-space:nowrap}
.outer-stem small{font-size:10px;color:var(--soft)}
.outer-stem-4,.outer-stem-3,.outer-stem-8{left:0}
.outer-stem-2,.outer-stem-7,.outer-stem-6{right:0}
.outer-stem-4,.outer-stem-2{top:calc(16.6667% + 16px);transform:translateY(-50%)}
.outer-stem-3,.outer-stem-7{top:50%;transform:translateY(-50%)}
.outer-stem-8,.outer-stem-6{bottom:calc(16.6667% + 16px);transform:translateY(50%)}
.outer-stem-9,.outer-stem-1{left:50%;transform:translateX(-50%);height:24px}
.outer-stem-9{top:0}
.outer-stem-1,.outer-stem-5{bottom:0}
.outer-stem-5{right:var(--rail);display:flex;align-items:center;justify-content:center;gap:2px;height:24px}
.back{display:inline-flex;align-items:center;min-height:42px;color:var(--soft);font-size:14px}
.detail{display:grid;gap:8px}
.detail .field{margin:7px 0}
.items{list-style:none;padding:0;margin:0}
.items li{padding:9px 0;border-top:1px solid var(--line);line-height:1.55}
.items li:first-child{border-top:0}
.items strong{display:block}
.items small{color:var(--soft)}
.records{display:grid;gap:8px;margin-top:12px}
.records a{display:block;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px;overflow-wrap:anywhere}
.records span{display:block;color:var(--soft);font-size:13px;margin-top:4px}
.saved-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px}
.saved-delete{color:var(--red)}
.saved-confirm{grid-column:1/-1;display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px;padding:8px 10px;background:var(--panel);border:1px solid var(--line);border-radius:10px}
.saved-confirm[hidden]{display:none}
.saved-confirm p{margin-right:auto;font-size:14px}
.bazi-record-pillars{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:0;text-align:center}
.bazi-record-pillars>div+div{border-left:1px solid var(--line)}
.bazi-record-pillars small{display:block;color:var(--soft)}
.bazi-record-pillars strong{display:block;margin-top:4px;font-size:24px;font-weight:400}
.skins{display:grid;gap:9px}
.theme-settings .skins{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}
.theme-settings .back{margin-top:5px}
.skin{display:flex;align-items:center;gap:12px;justify-content:flex-start;min-height:54px}
.skin[aria-pressed=true]{border:2px solid var(--primary)}
.swatch{width:32px;height:32px;border:1px solid var(--line);border-radius:8px}
.swatch.ink{background:#779183}.swatch.paper{background:#d7bd92}.swatch.night{background:#253d54}
.swatch.pinejade{background:linear-gradient(145deg,#d6e5d9,#edf2e1 49%,#f5e9cd)}
.swatch.cinnabar{background:linear-gradient(145deg,#f9eeea 0 52%,#842e38 53%)}
.swatch.mistblue{background:linear-gradient(145deg,#d7e2ea 0 52%,#294967 53%)}
.swatch.blackgold{background:linear-gradient(145deg,#24211b 0 52%,#d0ad73 53%)}
.skin .swatch{flex-shrink:0}
#notice:not(:empty){position:fixed;z-index:4;bottom:calc(72px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);padding:9px 13px;border-radius:10px;background:var(--primary);color:var(--on);box-shadow:0 4px 16px #0003;text-align:center;max-width:90vw;width:max-content;font-size:14px}
@media(min-width:520px){.container{padding-inline:18px}.cell{padding:10px;min-height:127px}.cell-row b{font-size:21px}.cell header,.cell .hidden,.mark{font-size:12px}}
@media(max-width:345px){.top-inner{padding:0 8px}nav a{padding-inline:7px}.container{padding-inline:8px}.card{padding:10px}.btn{padding-inline:8px}.cell-row b{font-size:14px}}

.chart-entry{overflow:hidden;border-radius:17px;border:1px solid var(--line);background:var(--panel)}
.chart-heading{padding:17px 15px 0}
#app:has(>.qimen-entry){padding-top:0}
.qimen-entry .chart-heading{padding-top:12px}
.bazi-form{display:grid;gap:13px;padding:15px}
.bazi-form .field small,.bazi-card h2 small{color:var(--soft);font-size:12px;font-weight:400}
.bazi-form select,.bazi-settings input{width:100%;min-width:0;min-height:44px;padding:6px;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:8px;font:inherit;font-size:16px}
.bazi-choices{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}
.bazi-birth{display:grid;gap:10px;min-width:0;margin:0;padding:10px;border:1px solid var(--line);border-radius:9px}
.bazi-birth legend{padding:0 5px;font-weight:650}
.bazi-birth[hidden]{display:none}
.bazi-reverse-choices{display:grid;gap:8px;grid-template-columns:repeat(4,minmax(0,1fr))}
.bazi-reverse-choices .bazi-birth{padding:6px}
.bazi-reverse-field[aria-expanded=true]{border-color:var(--primary);background:var(--paper);color:var(--primary)}
.bazi-reverse-picker{padding:9px;background:var(--paper);border:1px solid var(--line);border-radius:9px}
.bazi-reverse-picker p{margin-bottom:7px;font-size:14px;color:var(--primary);font-weight:600}
.bazi-reverse-options{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px}
.bazi-reverse-stems{grid-template-columns:repeat(5,minmax(0,1fr))}
.bazi-reverse-options+.bazi-reverse-options{margin-top:5px}
.bazi-reverse-options .btn{padding:4px}
.bazi-reverse-options [aria-pressed=true]{background:var(--primary);color:var(--on)}
.bazi-reverse-guide{font-size:14px;line-height:1.5;color:var(--soft)}
.bazi-reverse-skip{margin-top:7px;color:var(--primary)}
.bazi-reverse-error:not(:empty){margin-top:6px;color:var(--red);font-size:14px}
.bazi-match-list{display:grid;gap:8px;margin-top:10px}
.bazi-match-list .btn{display:flex;align-items:center;justify-content:space-between;gap:4px;flex-wrap:wrap}
.bazi-check{display:flex;align-items:center;gap:8px;min-height:32px}
.bazi-check input{width:18px;min-height:18px;accent-color:var(--primary)}
.bazi-form .cast-actions{margin-top:0}
#bazi-title{font-size:clamp(22px,6vw,28px)}
.bazi-input{margin-top:-8px;overflow:visible}
.bazi-input .chart-heading{padding:12px 12px 0}
#bazi-form{gap:7px;padding:10px 12px 12px}
#bazi-form .bazi-birth{gap:4px;padding:0;border:0;border-radius:0}
.bazi-settings{display:grid;gap:8px;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr) minmax(0,1fr)}
.bazi-boundary{color:var(--soft);font-size:12px}
.bazi-boundary summary{width:max-content;cursor:pointer;line-height:1.5}
.bazi-boundary label{display:flex;align-items:center;gap:8px;padding-block:5px}
#bazi-form .bazi-boundary select{width:auto;font-size:14px}
#bazi-form .bazi-date-time{gap:0;border-block:1px solid var(--line);padding-block:4px}
.bazi-date-time legend{padding:0 6px 0 0;font-size:14px}
.bazi-date-time legend small{margin-left:4px;font-size:12px;font-weight:400;color:var(--soft)}
.bazi-date{display:grid}
.bazi-date-time .field{grid-template-columns:minmax(4.5em,1fr) minmax(0,2fr);align-items:center;padding:3px 0}
.bazi-date-time .field+.field,.bazi-date-time>.field{border-top:1px solid var(--line)}
#bazi-form select,.bazi-settings input{line-height:1.2;padding-inline:8px}
#bazi-form .field{gap:3px;font-size:13px}
.bazi-coordinates small{font-size:12px}
#bazi-form .cast-actions{position:sticky;bottom:calc(62px + env(safe-area-inset-bottom));z-index:1;padding:6px;background:var(--panel);border:1px solid var(--line);border-radius:12px}
@media(max-height:510px){
  .bazi-input{margin-top:-12px}
  .bazi-input .chart-heading{padding-top:8px}
  #bazi-form{gap:4px;padding-top:7px}
}
.bazi-result{
  --chart-accent:#744f39;--chart-panel:#fffaf0;--chart-band:#f4ebdf;--chart-rule:#e2d5c5;
  --wood:#3d684c;
  --glyph-wood:#509c4a;--glyph-fire:#d23023;--glyph-earth:#b8682f;--glyph-metal:#0201bd;--glyph-water:#0e0a08;
  --star-ink:#853b34;--luck-heading-ink:#654631;--current-luck-ink:#b3202b;
  font-variant-numeric:tabular-nums;
}
body[data-skin=pinejade] .bazi-result{
  --chart-accent:#71552a;--chart-panel:var(--panel);--chart-band:#e7eddc;--chart-rule:#c3cdbb;
  --star-ink:#58412d;--luck-heading-ink:#2b4938;
}
body[data-skin=cinnabar] .bazi-result{
  --chart-accent:#73323b;--chart-panel:#f9eeea;--chart-band:#ecdbd6;--chart-rule:#d9c2bd;
  --star-ink:#78303b;--luck-heading-ink:#554039;
}
body[data-skin=mistblue] .bazi-result{
  --chart-accent:#294967;--chart-panel:#eff5f8;--chart-band:#dfebf2;--chart-rule:#b8cbd8;
  --star-ink:#394a69;--luck-heading-ink:#23466b;
}
body[data-skin=blackgold] .bazi-result{
  --chart-accent:#e7c78c;--chart-panel:#24211b;--chart-band:#332c21;--chart-rule:#60513a;
  --wood:#b5ce9a;
  --star-ink:#ebc5a0;--luck-heading-ink:#f0cf88;--current-luck-ink:#ff9d92;
}
body:is([data-skin=pinejade],[data-skin=cinnabar],[data-skin=mistblue],[data-skin=blackgold]) .signature i{
  color:var(--on);background:var(--seal);border-color:var(--seal);
}
body[data-skin=pinejade] .bazi-luck thead th:first-child{color:var(--chart-accent)}
.bazi-result .bazi-card{margin:0 0 5px;padding:5px 7px;background:var(--chart-panel);border-color:var(--chart-rule);border-radius:9px}
.bazi-adjust{display:inline-block;color:var(--primary);font-size:12px}
.bazi-time .pan-head{display:flex;flex-wrap:wrap;margin:0;gap:2px 12px;font-size:13px;line-height:1.3}
.bazi-time .pan-head>div{display:flex;gap:5px;align-items:baseline}
.bazi-time .pan-head dd{margin:0}
.bazi-time .pan-head .bazi-location{flex-wrap:wrap}
.bazi-time strong,.bazi-luck-meta strong{color:var(--chart-accent)}
.bazi-table-wrap{overflow-x:auto;border:1px solid var(--chart-rule);border-radius:9px}
.bazi-table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;text-align:center;font-size:15px;line-height:1.12}
.bazi-table th,.bazi-table td{border-bottom:1px solid var(--chart-rule);padding:2px;overflow-wrap:anywhere}
.bazi-table th{color:var(--soft);font-weight:600}
.bazi-table thead th,.bazi-table tbody th{background:var(--chart-band)}
.bazi-table tbody:last-child tr:last-child>*{border-bottom:0}
.bazi-table th:first-child{width:3.3em}
.bazi-pillars td:nth-last-child(2),.bazi-pillars thead th:nth-child(4){background:var(--chart-band);box-shadow:inset 1px 0 var(--chart-rule),inset -1px 0 var(--chart-rule)}
.bazi-pillars thead th:nth-child(4){color:var(--chart-accent)}
.bazi-hour-heading{position:relative;white-space:nowrap}
.bazi-hour-heading button{position:absolute;inset-block:-4px;width:calc((100% - 2em) / 2 + 4px);padding:0;border:0;border-radius:4px;background:none;color:var(--chart-accent);font:inherit;cursor:pointer}
.bazi-hour-heading button:first-child{inset-inline-start:-4px}
.bazi-hour-heading button:last-child{inset-inline-end:-4px}
.bazi-hour-heading button:is(:hover,:focus-visible){background:var(--chart-panel)}
.bazi-pillars .bazi-nativity{color:var(--chart-accent)}
.bazi-stem-row td{border-bottom:0}
.bazi-table .bazi-glyph{font-size:26px;font-weight:700;line-height:1;padding-block:2px}
.bazi-glyph,.bazi-result strong,.bazi-luck thead th{font-synthesis:weight}
.bazi-table .element-0{color:var(--glyph-wood)}
.bazi-table .element-1{color:var(--glyph-fire)}
.bazi-table .element-2{color:var(--glyph-earth)}
.bazi-table .element-3{color:var(--glyph-metal)}
.bazi-table .element-4{color:var(--glyph-water)}
.bazi-extra,.bazi-stars{margin:0;font-size:13px;line-height:1.3}
.bazi-extra{display:grid;grid-template-columns:repeat(3,1fr);padding:2px 0 4px;text-align:center;border-bottom:1px solid var(--chart-rule)}
.bazi-extra>div{display:flex;justify-content:center;gap:5px}
.bazi-extra dt,.bazi-stars dt{color:var(--soft)}
.bazi-extra dd,.bazi-stars dd{margin:0}
.bazi-extra dd{color:var(--chart-accent);font-weight:600}
.bazi-stars{display:grid;gap:2px;padding-top:4px;font-size:15px;line-height:1.08}
.bazi-stars>div{display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:baseline}
.bazi-stars dt{color:var(--wood)}
.bazi-stars dd{color:var(--star-ink);overflow-wrap:anywhere}
.bazi-star-label{display:inline-block;white-space:nowrap}
.bazi-star{border:0;background:none;padding:1px 0;color:inherit;font:inherit;cursor:pointer;text-decoration:underline;text-decoration-color:var(--chart-rule);text-underline-offset:2px}
.bazi-star:focus-visible{outline:1px solid currentColor;outline-offset:1px}
.bazi-spirit-dialog{width:min(calc(100% - 24px),480px);max-height:calc(100% - 32px);padding:14px 16px;background:var(--chart-panel);color:var(--ink);border:1px solid var(--chart-rule);border-radius:12px;overflow:auto}
.bazi-spirit-dialog::backdrop{background:#0007}
.bazi-spirit-dialog header{display:flex;align-items:center;justify-content:space-between;gap:12px}
.bazi-spirit-dialog h2{color:var(--chart-accent);font-size:23px;margin:0}
.bazi-spirit-dialog .btn{min-height:36px}
.bazi-spirit-dialog dl{display:grid;gap:12px;margin:10px 0 2px}
.bazi-spirit-dialog dt{color:var(--chart-accent);font-weight:700;font-synthesis:weight}
.bazi-spirit-dialog dd{margin:2px 0 0;line-height:1.55}
.bazi-hidden{display:block;font-size:15px;line-height:1.12}
.bazi-luck-meta{display:flex;justify-content:space-between;flex-wrap:wrap;gap:1px 8px;margin-bottom:4px;color:var(--soft);font-size:12px;line-height:1.3}
.bazi-luck{min-width:calc(44px + var(--luck-columns)*49px)}
.bazi-luck th:first-child{position:sticky;left:0;z-index:1;border-right:1px solid var(--chart-rule);width:3.8em}
.bazi-luck tr>*:not(:first-child):not(:last-child){box-shadow:inset -1px 0 var(--chart-rule)}
.bazi-luck thead th{
  color:var(--luck-heading-ink);font-size:20px;font-weight:800;
  -webkit-text-stroke:.55px currentColor;
}
.bazi-luck thead th:first-child{width:44px}
.bazi-luck thead th[aria-current=true]{color:var(--current-luck-ink)}
.bazi-luck thead th{white-space:nowrap}
.bazi-luck .bazi-flow-row>*{vertical-align:top}
.bazi-flow-year{display:block;padding-inline:2px;white-space:nowrap;
  min-height:var(--flow-line,18px);
  font-size:16px;
  line-height:var(--flow-line,18px);
}
.bazi-flow-year:nth-child(even){background:var(--chart-band)}
.bazi-flow-year strong{color:var(--ink)}
.bazi-flow-current .bazi-flow-year strong{color:var(--current-luck-ink)}
.bazi-card .muted{margin-top:8px;font-size:13px}
body[data-page=bazi-result] .container{padding-top:6px;padding-bottom:calc(49px + env(safe-area-inset-bottom))}
body:is([data-page=result],[data-page=palace]) .container{padding-top:6px}
body[data-page=result] .chart-meta{margin-top:0}
body[data-page=bazi-result] .bottom-nav{padding-block:3px calc(3px + env(safe-area-inset-bottom))}
body[data-page=bazi-result] .bottom-nav a{min-height:42px;gap:2px}
@media (orientation:portrait) and (max-width:600px) and (max-height:860px){
  body[data-page=bazi-result] .container{padding-top:3px}
  .bazi-result .bazi-card{padding-block:2px;margin-bottom:3px}
  .bazi-result .bazi-table th,.bazi-result .bazi-table td{padding-block:0}
  .bazi-result .bazi-extra{padding-block:1px 2px}
  .bazi-stars{gap:1px;padding-top:2px}
  .bazi-luck-meta{margin-bottom:2px}
}
@media (orientation:portrait) and (max-width:600px) and (max-height:795px){
  .bazi-table,.bazi-hidden,.bazi-luck-meta{line-height:1}
  .bazi-time .pan-head{font-size:12px;line-height:1.1;gap:1px 6px}
  .bazi-time .pan-head>div{gap:3px}
  .bazi-time .pan-head small{font-size:10px}
  .bazi-extra{font-size:12px;line-height:1.2}
  .bazi-star{padding-block:0}
}
@media (orientation:portrait) and (max-width:600px) and (max-height:700px){
  body[data-page=bazi-result] .top-inner{min-height:40px}
  body[data-page=bazi-result] .bottom-nav a{min-height:37px}
  .bazi-result .bazi-card{padding-block:2px;margin-bottom:3px}
  .bazi-result .bazi-table,.bazi-hidden,.bazi-luck-meta{line-height:1.1}
}
@media (orientation:portrait) and (max-width:600px) and (max-height:655px){
  .bazi-time .pan-head,.bazi-luck-meta{font-size:11px}
  .bazi-extra,.bazi-hidden{line-height:1.1}
}
@media (max-width:600px) and (max-height:620px){
  .bazi-result .bazi-card{padding:4px}
}
.chart-title{font-size:clamp(22px,6.4vw,31px);letter-spacing:.08em;line-height:1.17;font-weight:700}
#cast{margin:0;padding:15px;border:0;border-radius:0}
.cast-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:14px}
.cast-actions .btn{min-height:45px}
.cast-now{display:flex;width:100%;margin:8px auto 0;min-height:44px;white-space:nowrap}
.cast-notice{padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:var(--paper)}
.cast-notice h2{margin-bottom:5px;font-size:15px}
.cast-notice p{color:var(--soft);font-size:14px;line-height:1.65}
.input-panel-head small,.me-menu small{color:var(--soft);font-weight:400}
.rotation{margin-top:12px}
.rotation>summary{display:flex;width:100%;list-style:none}
.rotation>summary::-webkit-details-marker{display:none}
.rotation>summary::after{content:"+";margin-left:9px;color:var(--soft)}
.rotation[open]>summary::after{content:"−"}
.rotation-frame{margin-top:15px}
.rotation-frame h2{font-size:16px;margin-bottom:7px}
.input-panel{margin-top:15px;border:1px solid var(--line);border-radius:12px;padding:10px 11px;background:var(--panel)}
.input-panel-head{display:flex;justify-content:space-between;align-items:center;gap:8px;padding-bottom:9px;border-bottom:1px solid var(--line)}
.calendar-head,.calendar-fields,.clock-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.calendar-head{margin-top:10px;color:var(--soft);text-align:center;font-size:14px;font-weight:650}
.calendar-fields{margin-top:6px}
.date-picker{display:grid;gap:5px}
.picker{display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:center;gap:5px;font-size:14px}
.picker select{width:100%;min-width:0;min-height:44px;font:inherit;font-size:16px;font-variant-numeric:tabular-nums;padding:4px;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:7px}
.clock-fields{margin-top:10px;padding-top:9px;border-top:1px solid var(--line)}
@media(max-width:600px){
  .qimen-entry .chart-heading{padding:8px 12px 0}
  .qimen-entry #cast{padding:8px 12px 10px}
  .qimen-entry .cast-notice{padding:7px 9px}
  .qimen-entry .cast-notice h2{margin-bottom:3px}
  .qimen-entry .cast-notice p{font-size:13px;line-height:1.45}
  .qimen-entry .input-panel{margin-top:8px;padding:6px 8px}
  .qimen-entry .input-panel-head{padding-bottom:5px}
  .qimen-entry .calendar-head,.qimen-entry .clock-fields{margin-top:5px}
  .qimen-entry .calendar-fields{margin-top:4px}
  .qimen-entry .date-picker{gap:3px}
  .qimen-entry .clock-fields{padding-top:5px}
  .qimen-entry .cast-actions,.qimen-entry .cast-now{margin-top:6px}
}
@media(max-width:600px) and (max-height:660px){
  body:is([data-page=""],[data-page=chart]) .top-inner{min-height:44px}
  .qimen-entry .chart-title{font-size:22px}
  .qimen-entry .cast-notice{padding:4px 8px}
  .qimen-entry .cast-notice h2{font-size:13px;margin-bottom:2px}
  .qimen-entry .cast-notice p{font-size:12px;line-height:1.25}
  .qimen-entry .input-panel{margin-top:5px}
  .qimen-entry .picker select{min-height:34px}
  .qimen-entry .cast-actions .btn{min-height:39px}
}
.me-menu{margin-top:0;padding-block:0}
.me-menu a{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:68px;padding:10px 2px}
.me-menu a+a{border-top:1px solid var(--line)}
.me-menu small{display:block;margin-top:3px;font-size:13px}
.saved-categories{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin:12px 0}
.saved-categories a{display:grid;place-items:center;min-height:44px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}
.saved-categories a[aria-current=page]{color:var(--on);background:var(--primary)}
.chart-meta{padding:10px 13px;margin:10px 0;border-top:2px solid var(--primary)}
.chart-landscape{
  --cell-wash:#fffaf08c;--selected-wash:#fff7ec;
  --chart-label:#514238;--chart-lines:#827161;
  border:1px solid var(--line);border-radius:14px;
  background:linear-gradient(155deg,var(--paper),var(--panel));
}
.chart-landscape .legend{margin:0;padding:7px 9px 0}
.chart-landscape .legend-label{color:var(--chart-label)}
body[data-skin=night] .chart-landscape{--cell-wash:#202d3973;--selected-wash:#253748;--chart-label:#d5e2e2;--chart-lines:#a0b2ba}
.pan-head{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:4px 12px;margin:6px 0 0;font-size:14px;line-height:1.45}
.pan-head dt,.pan-head small,.meta-divider{color:var(--soft)}
.pan-head dd,.reading-notes dd{margin:0}
.pillar-line{display:flex;flex-wrap:wrap;gap:2px 11px;font-size:17px;line-height:1.3}
.qimen-pillar-strip{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:3px 10px;padding:8px 9px 6px;border-bottom:1px solid var(--line);color:var(--soft);font-size:13px}
.qimen-pillar-strip .pillar-line{color:var(--ink);font-size:clamp(18px,5vw,23px)}
.qimen-pillar-strip strong,.palace-pattern-title{font-weight:800;font-synthesis:weight;-webkit-text-stroke:.28px currentColor}
.qimen-ke strong{color:var(--ink);font-size:16px}
.grid{gap:0;grid-template-rows:repeat(3,1fr);border:1px solid var(--chart-lines);background:var(--cell-wash)}
.grid .cell{border:0;border-radius:0;border-right:1px solid var(--chart-lines);border-bottom:1px solid var(--chart-lines);padding:6px var(--cell-inset);min-height:90px;gap:3px;line-height:1.15;background:transparent}
.grid .cell:nth-child(3n){border-right:0}
.grid .cell:nth-child(n+7){border-bottom:0}
.grid .cell[aria-current=true]{background:var(--selected-wash);box-shadow:inset 0 0 0 2px var(--primary)}
.cell header{min-height:29px;font-size:21px;font-weight:600;line-height:1.15;color:var(--ink)}
.cell .badges{min-height:0}
.grid{--door-size:17px;--cell-inset:9px}
.cell-row{flex-wrap:nowrap;font-size:var(--door-size);line-height:1.15}
.cell-row>b,.cell-row>b+span{white-space:nowrap}
.cell-row>b+span{font-size:.86em}
.door-row>b,.door-row>em{align-self:center}
.door-row>em{width:1em}
.cell-row b{font-size:19px;font-weight:650}
.cell .hidden{display:flex;justify-content:space-between;gap:2px;flex-wrap:wrap}
.grid .center-palace{display:grid;place-content:center;place-items:center}
.center-seal{
  display:grid;place-items:center;
  width:max-content;height:25px;padding-inline:4px;white-space:nowrap;
  border:1px solid #f2b7ab;border-radius:5px;
  background:linear-gradient(150deg,#9c4548 0%,#702c38 100%);color:#ffefe4;
  box-shadow:inset 0 0 0 2px #6c273699,inset 0 0 0 3px #f2b7ab85,0 2px 8px #190a1e55;
  text-shadow:0 1px 1px #632332;font-size:clamp(13px,3.9vw,16px);font-weight:700;letter-spacing:.07em;line-height:1;
}
.palace-pattern-title{text-align:center;font-size:20px}
.items small{font-size:12px;color:var(--soft);font-weight:500}
.palace-reading .card{padding:16px}
.palace-reading .items>li{padding:13px 0}
.palace-reading .items>li>strong{font-size:17px;margin-bottom:4px}
.reading-notes{display:grid;grid-template-columns:minmax(0,1fr);gap:2px;margin:10px 0 0;padding:10px 11px;background:var(--paper);border-radius:8px;font-size:14px;line-height:1.55}
.reading-notes dt{color:var(--soft);font-size:12px;font-weight:700}
.reading-notes dd+dt{margin-top:7px}
.palace-flags{border-top:1px solid var(--line);margin-top:10px}
.palace-flags h3{font-size:14px;margin:12px 0 2px}
@media(max-width:345px){.grid{--door-size:16px;--cell-inset:5px}.cell-row b{font-size:16px}.pan-head{gap:5px 8px}}

body[data-skin=ink]{
  color-scheme:dark;
  --bg:#130d1c;--panel:#251933;--paper:#32203f;--ink:#f9f1ff;--soft:#ddc8e7;
  --line:#5b4469;--primary:#e9c4fa;--on:#2d163c;--seal:#f1a9ad;
  --red:#ff978f;--red-bg:#592634;--tomb-ink:#191919;--tomb-bg:#cecece;
  --gray:#e8e2ee;--gray-bg:#4d4157;--gold:#f5dfa9;--gold-bg:#564735;--mist:#533062;
  background:radial-gradient(ellipse at 88% 45%,#4e2264 0%,transparent 57%),
    radial-gradient(ellipse at 9% 33%,#351544 0%,transparent 62%),#130d1c;
  background-attachment:fixed;
}
body[data-skin=ink] .chart-entry,body[data-skin=ink] .chart-meta{
  border:1px solid var(--line);
  background:linear-gradient(125deg,#2a1b38,#21162d);
}
body[data-skin=ink] #cast{background:transparent}
body[data-skin=ink] .chart-landscape{
  --cell-wash:#21122b76;--selected-wash:#49295a;--chart-label:#e4c9ed;--chart-lines:#9370a1;
  border-color:#8a659a;
  background:radial-gradient(ellipse at 50% 32%,#683783 0%,transparent 65%),
    linear-gradient(150deg,#321c42 0%,#371e47 50%,#21152c 100%);
  box-shadow:inset 0 1px 0 #f4c4ff38,0 8px 32px #14091e40;
}
.swatch.ink{background:linear-gradient(140deg,#85519f,#21122e)}
