:root{
  --bg:#f1dfb8;
  --bg-2:#f6e8c9;
  --paper:#f1dfb8;
  --paper-2:#fbeecd;
  --card:#fffaef;
  --card-soft:#fbeecd;
  --ink:#3a2a16;
  --ink-2:#6b4f2a;
  --ink-3:#9a7c4a;
  --line:rgba(58,42,22,.14);
  --line-strong:rgba(58,42,22,.28);
  --jade:#2fa18f;
  --jade-dark:#247c70;
  --gold:#e3a317;
  --gold-soft:#fbeecd;
  --cinnabar:#d6443a;
  --blue:#3a7bbf;
  --green:#3f9d4f;
  --danger:#d6443a;
  --shadow:0 18px 45px rgba(58,42,22,.14);
  --shadow-soft:0 10px 24px rgba(58,42,22,.1);
  --radius:8px;
  --font:"Noto Sans SC","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  --read:"Noto Sans SC","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  --kai:"Noto Serif SC","Songti SC","STSong","SimSun",serif;
  --num:"Noto Sans SC","PingFang SC",sans-serif;
  --wx-木:#2f8f62;
  --wx-火:#b85c45;
  --wx-土:#b48645;
  --wx-金:#a98c4a;
  --wx-水:#2f6f8f;
}

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0;min-height:100vh;color:var(--ink);font-family:var(--font);line-height:1.72}
body{
  background-color:var(--paper);
  background-image:
    linear-gradient(rgba(58,42,22,.055) 1px,transparent 1px),
    linear-gradient(90deg,rgba(58,42,22,.055) 1px,transparent 1px),
    linear-gradient(180deg,rgba(255,250,239,.72),rgba(241,223,184,.92));
  background-size:18px 18px,18px 18px,auto;
  background-attachment:fixed;
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(120deg,rgba(227,163,23,.12),transparent 34%,transparent 70%,rgba(47,161,143,.09));
  opacity:.7;
}
button,input,select,textarea{font:inherit}
button{touch-action:manipulation}
.wrap{position:relative;z-index:1;width:min(920px,100%);margin:0 auto;padding:22px 18px 96px}

/* 顶部品牌与导航 */
.brandbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  color:var(--ink);
  margin:4px 0 18px;
}
.brand-lockup{display:flex;align-items:center;gap:13px;min-width:0}
.brand-seal{
  width:42px;height:42px;display:grid;place-items:center;
  border:1px solid var(--line-strong);
  background:var(--card-soft);
  color:var(--cinnabar);font-family:var(--kai);font-weight:900;font-size:20px;
  box-shadow:inset 0 0 0 1px rgba(227,163,23,.28);
}
.brand-name{font-family:var(--kai);font-size:22px;font-weight:900;letter-spacing:.04em;line-height:1.15}
.brand-sub{font-size:12.5px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brand-status{
  display:flex;align-items:center;gap:8px;flex:0 0 auto;
  border:1px solid var(--line);
  background:rgba(255,250,239,.65);
  color:var(--ink-3);
  padding:8px 10px;
  border-radius:var(--radius);
  font-size:12px;
}
.brand-status b{color:var(--cinnabar);font-weight:700}

.tabbar{
  position:sticky;
  top:10px;
  z-index:30;
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:6px;
  padding:7px;
  margin:0 0 18px;
  background:rgba(255,250,239,.92);
  border:1px solid rgba(58,42,22,.18);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  backdrop-filter:blur(18px);
}
.tabbar button{
  min-width:0;
  border:1px solid transparent;
  background:transparent;
  color:var(--ink-2);
  padding:10px 8px;
  border-radius:6px;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  font-weight:700;
  font-size:14px;
  white-space:nowrap;
}
.tabbar button .tb-ico{font-size:17px;line-height:1}
.tabbar button:hover{background:rgba(227,163,23,.14);color:var(--ink)}
.tabbar button.active{
  background:linear-gradient(135deg,#c93f35,var(--cinnabar));
  color:#fff;
  border-color:rgba(58,42,22,.22);
  box-shadow:0 8px 18px rgba(214,68,58,.22);
}
.view{display:none}
.view.active{display:block;animation:fade .32s ease both}

/* 首页工作台 */
.workbench-hero{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);
  gap:18px;
  align-items:stretch;
  margin:4px 0 18px;
}
.hero-copy,.hero-oracle,.panel{
  background:rgba(255,253,247,.96);
  border:1px solid rgba(255,255,255,.72);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
}
.hero-copy{
  padding:34px 34px 30px;
  min-height:318px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  background:
    linear-gradient(135deg,rgba(255,253,247,.98),rgba(247,239,224,.96)),
    linear-gradient(90deg,transparent 0 88%,rgba(198,154,82,.12) 88% 100%);
}
.eyebrow{
  width:max-content;
  max-width:100%;
  color:var(--jade-dark);
  background:rgba(28,139,114,.1);
  border:1px solid rgba(28,139,114,.18);
  padding:5px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:900;
  letter-spacing:.08em;
}
.hero-copy h1{
  font-family:var(--kai);
  font-size:clamp(34px,5vw,58px);
  line-height:1.08;
  margin:18px 0 14px;
  letter-spacing:0;
  color:#17241f;
}
.hero-copy p{
  margin:0;
  max-width:700px;
  color:var(--ink-2);
  font-size:16px;
}
.hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.hero-actions .btn-primary,.hero-actions .btn-ghost{width:auto;margin:0}
.hero-main{min-width:146px}
.hero-oracle{
  padding:18px;
  color:#fff;
  background:
    linear-gradient(145deg,rgba(17,55,45,.98),rgba(13,33,29,.96)),
    repeating-linear-gradient(0deg,rgba(255,255,255,.08) 0 1px,transparent 1px 38px);
  border-color:rgba(255,255,255,.13);
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  min-height:318px;
}
.oracle-ring{
  min-height:140px;
  border:1px solid rgba(198,154,82,.42);
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:12px;
  padding:18px;
  background:
    linear-gradient(90deg,rgba(255,255,255,.05),rgba(198,154,82,.1),rgba(255,255,255,.05));
}
.oracle-ring span,.oracle-ring strong{
  display:grid;place-items:center;
  min-height:72px;
  border:1px solid rgba(255,255,255,.14);
  color:rgba(255,255,255,.72);
  font-family:var(--kai);
}
.oracle-ring strong{
  width:104px;height:104px;
  border-color:rgba(198,154,82,.64);
  color:#f2d49a;
  font-size:24px;
  font-weight:900;
}
.oracle-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-top:14px;
}
.oracle-grid button{
  text-align:left;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.07);
  color:#fff;
  padding:14px;
  border-radius:var(--radius);
  cursor:pointer;
}
.oracle-grid button:hover{background:rgba(255,255,255,.12)}
.oracle-grid b{display:block;font-size:16px;margin-bottom:3px}
.oracle-grid span{display:block;color:rgba(255,255,255,.66);font-size:12.5px;line-height:1.45}
.home-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) 330px;
  gap:18px;
  align-items:start;
}
.insight-panel{position:sticky;top:96px}
.flow-list{display:flex;flex-direction:column;gap:12px}
.flow-list div{
  display:grid;
  grid-template-columns:44px 1fr;
  gap:10px;
  align-items:start;
  padding:12px;
  background:var(--card-soft);
  border:1px solid var(--line);
  border-radius:var(--radius);
}
.flow-list b{font-family:var(--kai);font-size:18px;color:var(--gold)}
.flow-list span{font-size:13.5px;color:var(--ink-2);line-height:1.6}
.trust-note{
  margin-top:14px;
  padding:12px;
  background:rgba(184,92,69,.08);
  border:1px solid rgba(184,92,69,.16);
  border-radius:var(--radius);
  color:#7b554d;
  font-size:12.5px;
  line-height:1.65;
}

/* 面板与表单 */
.panel{
  position:relative;
  padding:22px;
  margin:0 0 18px;
}
.page-head{padding:24px 26px}
.panel-title{
  font-family:var(--kai);
  font-size:22px;
  line-height:1.25;
  color:var(--cinnabar);
  margin:0 0 10px;
  font-weight:900;
  letter-spacing:0;
}
.panel-title::after{
  content:"";
  display:block;
  width:42px;
  height:3px;
  background:linear-gradient(90deg,var(--gold),transparent);
  margin-top:10px;
}
.panel-hint,.note{
  color:var(--ink-3);
  font-size:13.5px;
  line-height:1.75;
  margin:0 0 14px;
  font-family:var(--read);
}
.note{text-align:left;margin:12px 0 0}
.sub-h{font-family:var(--kai);font-size:16px;color:var(--jade-dark);margin:16px 0 8px}
.field{display:flex;flex-direction:column;gap:7px;margin-bottom:14px}
.field.full{width:100%}
.field label{
  color:var(--ink-2);
  font-size:13px;
  font-weight:900;
}
.row{display:flex;gap:10px}
input,select,textarea{
  width:100%;
  min-height:46px;
  border:1px solid var(--line-strong);
  border-radius:var(--radius);
  background:#fffaf1;
  color:var(--ink);
  padding:11px 13px;
  font-size:15.5px;
  outline:none;
  -webkit-appearance:none;
  appearance:none;
}
input:focus,select:focus,textarea:focus{
  border-color:var(--jade);
  box-shadow:0 0 0 4px rgba(28,139,114,.12);
  background:#fff;
}
input[type=number]{-moz-appearance:textfield}
select{
  background-image:
    linear-gradient(45deg,transparent 50%,var(--ink-2) 50%),
    linear-gradient(135deg,var(--ink-2) 50%,transparent 50%);
  background-position:calc(100% - 19px) 50%,calc(100% - 14px) 50%;
  background-size:5px 5px,5px 5px;
  background-repeat:no-repeat;
  padding-right:34px;
}
.gender-toggle{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6px;
  padding:5px;
  border:1px solid var(--line-strong);
  border-radius:var(--radius);
  background:#fffaf1;
}
.gender-toggle input{display:none}
.gender-toggle label{
  display:flex;
  justify-content:center;
  align-items:center;
  min-height:38px;
  border-radius:6px;
  color:var(--ink-2);
  cursor:pointer;
  font-weight:800;
}
.gender-toggle input:checked+label{
  color:var(--ink);
  background:linear-gradient(135deg,#f0b731,var(--gold));
  box-shadow:0 8px 18px rgba(227,163,23,.18);
}
.btn-primary,.btn-ghost,.btn-mini,.btn-act,.jh-chip,.mp-toc-chip,.spread-btn{
  border-radius:var(--radius);
  transition:transform .16s ease,box-shadow .16s ease,background .16s ease,border-color .16s ease;
}
.btn-primary{
  width:100%;
  min-height:48px;
  border:1px solid rgba(255,255,255,.35);
  background:linear-gradient(135deg,#c93f35,var(--cinnabar));
  color:#fff;
  padding:12px 17px;
  font-weight:900;
  font-size:16px;
  cursor:pointer;
  box-shadow:0 14px 28px rgba(214,68,58,.2);
}
.btn-primary:hover{transform:translateY(-1px);box-shadow:0 18px 34px rgba(214,68,58,.26)}
.btn-primary:active{transform:translateY(0);box-shadow:0 8px 18px rgba(214,68,58,.2)}
.btn-primary:disabled{opacity:.68;cursor:not-allowed;transform:none}
.btn-ghost{
  min-height:48px;
  border:1px solid var(--line-strong);
  background:rgba(255,255,255,.72);
  color:var(--ink);
  padding:12px 17px;
  font-weight:900;
  cursor:pointer;
}
.btn-ghost:hover{background:#fff;border-color:rgba(227,163,23,.45)}
.btn-mini{
  border:1px solid rgba(28,139,114,.22);
  background:rgba(28,139,114,.1);
  color:var(--jade-dark);
  padding:8px 12px;
  font-weight:800;
  cursor:pointer;
  white-space:nowrap;
}
.btn-mini.ghost{background:rgba(23,35,31,.05);border-color:var(--line);color:var(--ink-2)}
.err{color:var(--danger);text-align:center;margin-top:10px;min-height:18px;font-size:13.5px}

/* 我的资料与今日卡 */
.me-banner,.daily-hero{
  border:1px solid rgba(255,255,255,.7);
  border-radius:var(--radius);
  box-shadow:var(--shadow-soft);
  margin-bottom:18px;
}
.me-banner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  padding:14px 16px;
  background:linear-gradient(135deg,var(--card),var(--card-soft));
}
.me-banner.hidden,.daily-hero.hidden{display:none}
.me-info{font-size:14px;color:var(--ink-2)}
.me-info b{font-family:var(--kai);font-size:17px;color:var(--jade-dark)}
.me-acts{display:flex;gap:8px;flex-wrap:wrap}
.daily-hero{
  padding:16px 18px;
  cursor:pointer;
  background:#fffdf7;
}
.daily-hero.dh-good{border-left:4px solid var(--green)}
.daily-hero.dh-mid{border-left:4px solid var(--gold)}
.daily-hero.dh-bad{border-left:4px solid var(--danger)}
.dh-top{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.dh-ico{font-size:16px}
.dh-lv{font-family:var(--kai);font-size:17px;font-weight:900;color:var(--ink)}
.dh-date{margin-left:auto;color:var(--ink-3);font-size:12.5px}
.dh-sum{color:var(--ink-2);font-size:14px;line-height:1.65}
.dh-yj{color:var(--ink);font-size:13px;margin-top:6px}
.dh-more{color:var(--jade-dark);font-weight:900}

/* 命盘结果 */
#mingpan-result{margin-top:18px}
.mp-toc{
  position:sticky;
  top:84px;
  z-index:24;
  display:flex;
  flex-wrap:nowrap;
  align-items:center;
  gap:7px;
  overflow-x:auto;
  padding:8px;
  margin-bottom:18px;
  background:rgba(255,253,247,.92);
  border:1px solid rgba(255,255,255,.72);
  border-radius:var(--radius);
  box-shadow:var(--shadow-soft);
  backdrop-filter:blur(14px);
  -webkit-overflow-scrolling:touch;
}
.mp-toc-lbl{flex:0 0 auto;color:var(--ink-3);font-size:12px;font-weight:900;padding-left:4px}
.mp-toc-chip{
  flex:0 0 auto;
  border:1px solid var(--line);
  background:#fff;
  color:var(--ink-2);
  padding:7px 10px;
  font-size:12.5px;
  font-weight:800;
  cursor:pointer;
}
.mp-toc-chip:hover,.mp-toc-chip.term{border-color:rgba(28,139,114,.28);color:var(--jade-dark);background:rgba(28,139,114,.08)}
.tldr-card{
  text-align:left;
  overflow:hidden;
  color:var(--ink);
  background:
    linear-gradient(145deg,#fff7e6,var(--card-soft)),
    repeating-linear-gradient(90deg,rgba(227,163,23,.08) 0 1px,transparent 1px 68px);
}
.tldr-card::before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:4px;
  background:linear-gradient(90deg,var(--cinnabar),var(--gold),transparent);
}
.tldr-emoji{font-size:28px;line-height:1;margin-bottom:8px}
.tldr-one{
  font-family:var(--kai);
  font-size:clamp(25px,4vw,40px);
  line-height:1.18;
  color:var(--cinnabar);
  font-weight:900;
  margin:0 0 8px;
}
.tldr-sentence{color:var(--ink-2);font-size:15px;margin-bottom:14px}
.tldr-chips{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}
.tldr-chip{
  border:1px solid rgba(58,42,22,.18);
  background:var(--cinnabar);
  color:#fff;
  padding:6px 10px;
  border-radius:999px;
  font-size:12.5px;
  font-weight:800;
}
.tldr-kaiyun{
  color:#8a5f10;
  background:rgba(227,163,23,.12);
  border:1px solid rgba(227,163,23,.32);
  padding:12px 14px;
  border-radius:var(--radius);
  font-size:14px;
  line-height:1.75;
}
.tldr-copy{
  margin-top:14px;
  border:1px solid rgba(58,42,22,.2);
  background:var(--card);
  color:var(--ink);
  padding:9px 13px;
  border-radius:var(--radius);
  font-weight:800;
  cursor:pointer;
}
.info-bar{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}
.info-it{
  background:var(--card-soft);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:10px 12px;
  color:var(--ink-3);
  font-size:13px;
}
.info-it b{display:block;color:var(--ink);font-size:15px;margin-top:2px}

.pan{width:100%;border-collapse:separate;border-spacing:0;text-align:center;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius)}
.pan th{background:var(--card-soft);color:var(--ink-2);padding:10px 6px;font-size:13px;font-weight:900;border-bottom:1px solid var(--line)}
.pan td{padding:12px 6px;border-bottom:1px solid var(--line);vertical-align:middle;background:#fff}
.pan tr:last-child td{border-bottom:none}
.pan .rn{color:var(--ink-3);font-size:12px;white-space:nowrap;background:var(--card-soft);font-weight:800}
.pan .gz{font-family:var(--kai);font-size:32px;font-weight:900;line-height:1.1}
.pan .ten{font-size:13px;color:var(--jade-dark);font-weight:800}
.pan .hide{font-size:12px;color:var(--ink-3);line-height:1.55}
.pan .hide i{color:var(--gold);font-style:normal}
.pan .small{font-size:12px;color:var(--ink-2)}
.pan .dc{background:rgba(28,139,114,.08)}
.dm-tag{display:inline-block;margin-left:4px;padding:1px 6px;border-radius:999px;background:var(--jade);color:#fff;font-size:10px;font-style:normal;vertical-align:middle}
.wx-木{color:var(--wx-木)}.wx-火{color:var(--wx-火)}.wx-土{color:var(--wx-土)}.wx-金{color:var(--wx-金)}.wx-水{color:var(--wx-水)}

.wx-bars,.score-bars,.ys-list,.guide-list,.shensha-list,.verdict-list{display:flex;flex-direction:column;gap:10px}
.wx-bar,.sb-row{display:flex;align-items:center;gap:10px}
.wx-lbl{width:52px;font-weight:900}
.track,.sb-track{
  flex:1;
  height:14px;
  border-radius:999px;
  background:rgba(23,35,31,.08);
  overflow:hidden;
}
.fill,.sb-fill{height:100%;transition:width .7s ease;border-radius:999px}
.fill-木{background:var(--wx-木)}.fill-火{background:var(--wx-火)}.fill-土{background:var(--wx-土)}.fill-金{background:var(--wx-金)}.fill-水{background:var(--wx-水)}
.wx-val,.sb-v{min-width:62px;text-align:right;font-size:13px;color:var(--ink-3)}
.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.tag,.am,.yj-flow span{
  display:inline-flex;
  align-items:center;
  border:1px solid var(--line);
  background:var(--card-soft);
  border-radius:999px;
  padding:5px 10px;
  color:var(--ink-2);
  font-size:12.5px;
}
.tag.strong{background:rgba(28,139,114,.12);color:var(--jade-dark);border-color:rgba(28,139,114,.22)}
.tag.fav,.tag.yong{background:rgba(198,154,82,.15);color:#7a5b23;border-color:rgba(198,154,82,.28)}
.tag.unfav{color:var(--ink-3)}
.tag.miss{color:var(--danger);background:rgba(184,92,69,.08)}
.tag.good{background:rgba(63,143,92,.1);color:#2d7047;border-color:rgba(63,143,92,.2)}
.tag.warn{background:rgba(198,154,82,.13);color:#80612c;border-color:rgba(198,154,82,.24)}

.dayun{display:flex;gap:10px;overflow-x:auto;padding:2px 0 6px}
.du{
  min-width:86px;
  flex:0 0 auto;
  text-align:center;
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:12px 8px;
  background:#fff;
}
.du.cur{background:linear-gradient(135deg,#f0b731,var(--gold));color:var(--ink);border-color:rgba(58,42,22,.18)}
.du.fav:not(.cur){border-color:rgba(28,139,114,.25);background:rgba(28,139,114,.07)}
.du-gz{font-family:var(--kai);font-size:22px;font-weight:900}
.du-age,.du-yr{font-size:12px;color:var(--ink-3);margin-top:3px}
.du.cur .du-age,.du.cur .du-yr{color:var(--ink-2)}
.curve-wrap{width:100%;overflow:hidden}
.curve-svg,.radar-svg{width:100%;height:auto;display:block}
.radar-wrap{width:100%;max-width:330px;margin:0 auto 10px}
.rad-lbl{font-size:13px;text-anchor:middle;font-family:var(--read);font-weight:800}
.cx-yr,.cx-age,.cx-mark,.cx-now{font-family:var(--read)}
.cx-yr{font-size:13px;fill:var(--ink-2);text-anchor:middle}
.cx-age{font-size:11px;fill:var(--ink-3);text-anchor:middle}
.cx-mark{font-size:12px;text-anchor:middle;font-weight:900}
.cx-mark.best,.cx-now{fill:var(--cinnabar)}
.cx-mark.worst{fill:var(--ink-3)}

.overall{
  margin:0 0 14px;
  padding:14px 15px;
  border:1px solid rgba(198,154,82,.24);
  background:rgba(198,154,82,.09);
  color:#755a2d;
  border-radius:var(--radius);
  font-weight:700;
}
.read-sec{margin-bottom:16px}
.read-sec:last-child{margin-bottom:0}
.read-sec h3{
  margin:0 0 7px;
  color:var(--ink);
  font-family:var(--kai);
  font-size:17px;
}
.read-sec p,.today-sum{margin:0;color:var(--ink-2);font-size:14.5px;text-align:justify}
.fitem{
  display:grid;
  grid-template-columns:150px 1fr;
  gap:16px;
  padding:14px 0;
  border-bottom:1px solid var(--line);
}
.fitem:last-child{border-bottom:none}
.fdom{display:flex;flex-direction:column;gap:5px}
.fname{color:var(--ink);font-weight:900}
.rep-stars{color:var(--gold);letter-spacing:1px;font-weight:900}
.lv{
  width:max-content;
  border-radius:999px;
  padding:2px 8px;
  font-size:11.5px;
  font-weight:900;
}
.lv-旺{color:#fff;background:var(--cinnabar)}
.lv-平{color:#755a2d;background:var(--gold-soft)}
.lv-缓{color:#fff;background:var(--blue)}
.ftx{color:var(--ink-2);font-size:14.5px}
.luck{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin:14px 0}
.luck-c{
  text-align:left;
  border:1px solid var(--line);
  background:var(--card-soft);
  border-radius:var(--radius);
  padding:13px 14px;
}
.lk{font-size:12px;color:var(--ink-3);font-weight:800}
.lv2{font-family:var(--kai);font-size:17px;font-weight:900;color:var(--ink);margin-top:3px}
.yj{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.yj-col{
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:14px 15px;
  background:#fff;
}
.yj-col.yi{background:rgba(63,143,92,.08);border-color:rgba(63,143,92,.18)}
.yj-col.ji{background:rgba(184,92,69,.07);border-color:rgba(184,92,69,.16)}
.yj-col h4{margin:0 0 8px;font-family:var(--kai);font-size:17px}
.yj-col.yi h4{color:var(--green)}
.yj-col.ji h4{color:var(--danger)}
.yj-col ul{margin:0;padding-left:18px}
.yj-col li{margin:4px 0;color:var(--ink-2);font-size:13.5px}
.yj-flow{display:flex;flex-wrap:wrap;gap:7px}
.tipline{
  margin-top:14px;
  padding:12px;
  text-align:center;
  color:var(--jade-dark);
  background:rgba(28,139,114,.08);
  border-radius:var(--radius);
  font-family:var(--kai);
  font-weight:900;
}
.today-light{
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:13px 14px;
  margin-bottom:12px;
}
.light-good{background:rgba(63,143,92,.1)}
.light-mid{background:rgba(198,154,82,.12)}
.light-bad{background:rgba(184,92,69,.09)}
.tl-top{font-family:var(--kai);font-size:17px;font-weight:900}
.tl-act{color:var(--ink-2);font-size:13.5px;margin-top:3px}
.chong,.best-times,.zeji-chip,.ji-det-p{
  margin-top:12px;
  padding:12px 13px;
  border:1px solid rgba(60,113,132,.2);
  background:rgba(60,113,132,.08);
  border-radius:var(--radius);
  color:#315969;
  font-size:13.5px;
}
.best-times{background:rgba(198,154,82,.12);border-color:rgba(198,154,82,.25);color:#755a2d}
.best-times b{color:var(--cinnabar)}

.ys-it,.guide-it,.ss-it,.verdict-it,.tr-line{
  border:1px solid var(--line);
  background:var(--card-soft);
  border-radius:var(--radius);
  padding:13px 14px;
}
.ys-it{display:grid;grid-template-columns:84px 1fr;gap:10px}
.ys-k{color:var(--jade-dark);font-weight:900}
.ys-v,.gi-t,.ss-t,.vd-t{color:var(--ink-2);font-size:14px;line-height:1.7}
.gi-h,.ss-h{
  font-family:var(--kai);
  font-size:16px;
  font-weight:900;
  color:var(--ink);
  margin-bottom:5px;
}
.ss-it{border-left:4px solid var(--green)}
.ss-warn{border-left-color:var(--gold)}
.ss-bad{border-left-color:var(--danger)}
.ss-tag{
  margin-left:8px;
  border-radius:999px;
  padding:2px 7px;
  background:rgba(28,139,114,.1);
  color:var(--jade-dark);
  font-size:11px;
}
.verdict-it{display:grid;grid-template-columns:28px 1fr;gap:8px;align-items:start}
.vd-ico{font-size:19px;line-height:1.4}
.disclaimer{
  color:var(--ink-3);
  font-size:12.5px;
  line-height:1.75;
  text-align:left;
}

.act-card{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  background:transparent;
  border:none;
  box-shadow:none;
  padding:0;
}
.btn-act{
  min-height:50px;
  border:1px solid var(--line-strong);
  background:#fff;
  color:var(--ink);
  padding:12px 14px;
  font-weight:900;
  cursor:pointer;
}
.btn-act.me{background:rgba(198,154,82,.16);color:#755a2d;border-color:rgba(198,154,82,.28)}
.btn-act.save{background:rgba(28,139,114,.1);color:var(--jade-dark);border-color:rgba(28,139,114,.22)}
.btn-act.done,.btn-act.me.done,.btn-act.save.done{background:rgba(63,143,92,.1);color:#2f724a;border-color:rgba(63,143,92,.22)}
.next-actions{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
  margin-top:16px;
}
.next-actions button{
  text-align:left;
  border:1px solid var(--line);
  background:linear-gradient(180deg,#fff,var(--card-soft));
  border-radius:var(--radius);
  padding:13px 12px;
  cursor:pointer;
}
.next-actions button:hover{
  border-color:rgba(28,139,114,.28);
  box-shadow:0 10px 22px rgba(12,25,22,.08);
}
.next-actions b{
  display:block;
  color:var(--ink);
  font-size:14px;
  margin-bottom:3px;
}
.next-actions span{
  display:block;
  color:var(--ink-3);
  font-size:12px;
  line-height:1.45;
}

.gauge{margin:14px 0}
.gauge-bar{
  position:relative;
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  min-height:28px;
  border-radius:999px;
  overflow:hidden;
  background:var(--card-soft);
}
.gz-zone{display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px;font-weight:900}
.gz-weak{background:var(--blue)}
.gz-mid{background:var(--gold)}
.gz-strong{background:var(--cinnabar)}
.gauge-mark{position:absolute;top:0;bottom:0;border-left:3px solid var(--ink)}
.gauge-mark::after{content:"";position:absolute;top:-6px;left:-6px;border-left:6px solid transparent;border-right:6px solid transparent;border-top:7px solid var(--ink)}
.gauge-cap,.fr-cap{font-size:12.5px;color:var(--ink-3);margin-top:8px}
.fr-bar{display:flex;height:14px;border-radius:999px;overflow:hidden;background:var(--card-soft)}
.fr-fav{background:var(--green)}.fr-mid{background:var(--gold-soft)}.fr-unf{background:var(--danger)}

.bcode{display:flex;align-items:center;gap:14px}
.bc-num{
  width:64px;height:64px;display:grid;place-items:center;
  color:#fff;background:linear-gradient(135deg,var(--jade-dark),var(--jade));
  border-radius:var(--radius);
  font-size:34px;font-weight:900;
}
.bc-name{font-family:var(--kai);font-size:17px;font-weight:900;color:var(--ink)}
.bc-sub{font-size:13px;color:var(--ink-3);line-height:1.55;margin-top:4px}

/* 折叠、名词与弹层 */
.mp-group{
  border:1px solid var(--line);
  background:rgba(255,253,247,.86);
  border-radius:var(--radius);
  box-shadow:var(--shadow-soft);
  padding:0 16px;
  margin-bottom:18px;
}
.mp-group>summary{
  list-style:none;
  cursor:pointer;
  font-family:var(--kai);
  font-size:18px;
  font-weight:900;
  color:var(--ink);
  padding:16px 2px;
  user-select:none;
}
.mp-group>summary::-webkit-details-marker{display:none}
.mp-group>summary::before{content:"＋";color:var(--gold);margin-right:8px}
.mp-group[open]>summary::before{content:"－"}
.mp-grp-hint{font-family:var(--read);font-size:12px;color:var(--ink-3)}
.mp-group .panel{
  box-shadow:none;
  border-left:none;
  border-right:none;
  border-bottom:none;
  background:transparent;
  padding-left:0;
  padding-right:0;
  margin-bottom:0;
}
.has-term{border-bottom:1px dashed var(--gold);cursor:pointer}
text.has-term{cursor:pointer;text-decoration:underline;text-decoration-style:dotted}
.term-pop{
  position:absolute;
  z-index:300;
  background:#fffdf7;
  border:1px solid var(--line-strong);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:11px 13px;
  color:var(--ink-2);
  font-size:13px;
  line-height:1.65;
  visibility:hidden;
  opacity:0;
  pointer-events:none;
  transition:opacity .12s ease;
}
.term-pop.show{visibility:visible;opacity:1;pointer-events:auto}
.term-pop b{display:block;font-family:var(--kai);font-size:15px;color:var(--ink);margin-bottom:4px}
.gloss-overlay{position:fixed;inset:0;z-index:320;background:rgba(12,25,22,.55);display:none;align-items:flex-end;justify-content:center;padding:16px}
.gloss-overlay.show{display:flex}
.gloss-box{
  width:100%;
  max-width:560px;
  max-height:82vh;
  display:flex;
  flex-direction:column;
  background:#fffdf7;
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  overflow:hidden;
}
.gloss-head{display:flex;align-items:center;justify-content:space-between;padding:15px 16px;border-bottom:1px solid var(--line);font-family:var(--kai);font-size:18px;font-weight:900}
.gloss-close{border:1px solid var(--line);background:#fff;width:32px;height:32px;border-radius:var(--radius);cursor:pointer}
.gloss-list{overflow-y:auto;padding:6px 16px 18px}
.gloss-it{padding:10px 0;border-bottom:1px solid var(--line)}
.gloss-it b{display:block;font-family:var(--kai);font-size:15px;color:var(--ink)}
.gloss-it span{display:block;color:var(--ink-2);font-size:13px;line-height:1.65;margin-top:3px}

/* 报告、择吉、吉历、档案 */
.month-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:14px 0}
.mn-cell{
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:12px 8px;
  text-align:center;
  background:#fff;
}
.mn-good{background:rgba(63,143,92,.09)}
.mn-mid{background:rgba(198,154,82,.08)}
.mn-bad{background:rgba(184,92,69,.07)}
.mn-m{font-family:var(--kai);font-weight:900}
.mn-bar{
  height:38px;
  width:10px;
  border-radius:999px;
  margin:7px auto;
  background:rgba(23,35,31,.08);
  position:relative;
  overflow:hidden;
}
.mn-bar span{position:absolute;left:0;right:0;bottom:0;background:var(--jade)}
.mn-mid .mn-bar span{background:var(--gold)}
.mn-bad .mn-bar span{background:var(--danger)}
.mn-gz{font-size:12.5px;color:var(--ink-3)}

.alm-meta{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.am.good{background:rgba(63,143,92,.11);color:#2d7047;border-color:rgba(63,143,92,.22)}
.am.bad{background:rgba(184,92,69,.08);color:var(--danger);border-color:rgba(184,92,69,.18)}
.shichen-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:10px}
.sc-cell{
  text-align:center;
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:12px 8px;
  background:#fff;
}
.sc-good{background:rgba(63,143,92,.09)}
.sc-bad{opacity:.58}
.sc-fav{border-color:rgba(198,154,82,.55);box-shadow:inset 0 0 0 1px rgba(198,154,82,.28)}
.sc-gz{font-family:var(--kai);font-size:19px;font-weight:900}
.sc-rg{font-size:11.5px;color:var(--ink-3)}
.sc-luck{font-size:12.5px;color:var(--ink-2);margin-top:3px}
.zeji-chip.ok{background:rgba(63,143,92,.1);border-color:rgba(63,143,92,.22);color:#2d7047}

.jili-loading,.empty{
  text-align:center;
  color:var(--ink-3);
  padding:28px 14px;
  font-size:14px;
  line-height:1.75;
}
.empty-ico{font-size:34px;margin-bottom:8px}
.empty .btn-mini{display:inline-flex;margin-top:12px}
.jili-nav{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:2px 0 14px}
.ji-title{font-family:var(--kai);font-size:20px;font-weight:900;color:var(--ink);text-align:center;flex:1;white-space:nowrap}
.jili-week,.jili-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.jili-week{margin-bottom:7px}
.jili-week span{text-align:center;color:var(--ink-3);font-size:12px;font-weight:900}
.ji-cell{
  min-height:58px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:#fff;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  cursor:pointer;
}
.ji-cell:hover{border-color:rgba(28,139,114,.28)}
.ji-cell.ji-empty{border:none;background:transparent;cursor:default}
.ji-good{background:rgba(63,143,92,.09)}
.ji-mid{background:#fff}
.ji-bad{background:rgba(184,92,69,.07)}
.ji-chong{border-color:rgba(184,92,69,.5)}
.ji-d{font-weight:900;color:var(--ink)}
.ji-gz{font-size:11.5px;color:var(--ink-3);margin-top:2px}
.ji-detail{margin-top:14px}
.ji-detail:empty{display:none}
.ji-det-h{font-family:var(--kai);font-size:17px;font-weight:900;margin-bottom:8px}
.ji-det-yj{font-size:13.5px;color:var(--ink-2);line-height:1.75;margin:6px 0}
.ji-det-yj.yi b{color:var(--green)}
.ji-det-yj.ji b{color:var(--danger)}

.prof-card{
  display:flex;
  align-items:center;
  gap:12px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--card-soft);
  padding:14px;
  margin-bottom:10px;
}
.prof-main{flex:1;min-width:0}
.prof-name{font-family:var(--kai);font-size:18px;font-weight:900;color:var(--ink)}
.prof-g{display:inline-flex;margin-left:6px;padding:1px 7px;border-radius:999px;background:rgba(28,139,114,.12);color:var(--jade-dark);font-size:11px}
.prof-sub{font-size:12.5px;color:var(--ink-3);margin-top:4px}
.prof-btns{display:flex;gap:7px;flex:0 0 auto}

/* AI 与浮动按钮 */
.ai-fab,.totop-fab{
  position:fixed;
  right:18px;
  z-index:120;
  border:1px solid rgba(255,255,255,.55);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  cursor:pointer;
}
.ai-fab{
  bottom:86px;
  display:flex;
  align-items:center;
  gap:8px;
  min-width:86px;
  height:48px;
  padding:0 13px;
  background:linear-gradient(135deg,var(--jade-dark),var(--jade));
  color:#fff;
  font-weight:900;
}
.ai-fab-ico{font-size:19px;line-height:1}
.ai-fab-txt{font-size:13px}
.totop-fab{
  bottom:146px;
  width:46px;
  height:46px;
  background:#fffdf7;
  color:var(--ink);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  font-weight:900;
  opacity:0;
  visibility:hidden;
  transform:translateY(8px);
}
.totop-fab span{font-size:10px}
.totop-fab.show{opacity:1;visibility:visible;transform:none}
.ai-overlay{position:fixed;inset:0;z-index:125;background:rgba(12,25,22,.56);opacity:0;pointer-events:none;transition:opacity .18s ease}
.ai-overlay.show{opacity:1;pointer-events:auto}
.ai-panel{
  position:fixed;
  z-index:130;
  right:18px;
  bottom:18px;
  width:min(440px,calc(100vw - 28px));
  height:min(620px,calc(100vh - 68px));
  display:flex;
  flex-direction:column;
  background:#fffdf7;
  border:1px solid rgba(255,255,255,.7);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  overflow:hidden;
  transform:translateY(calc(100% + 32px));
  transition:transform .24s ease;
}
.ai-panel.open{transform:translateY(0)}
.ai-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 16px;background:linear-gradient(135deg,var(--jade-dark),var(--jade));color:#fff}
.ai-panel-title{font-family:var(--kai);font-size:18px;font-weight:900}
.ai-panel-sub{display:block;font-family:var(--read);font-size:11px;opacity:.78;margin-top:2px}
.ai-panel-close{border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.12);color:#fff;width:32px;height:32px;border-radius:var(--radius);cursor:pointer}
.ai-hint{font-size:12.5px;color:var(--ink-3);padding:10px 14px;background:var(--card-soft);border-bottom:1px solid var(--line)}
.ai-messages{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px}
.ai-msg{max-width:88%;padding:10px 12px;border-radius:var(--radius);font-size:14px;line-height:1.75;word-break:break-word}
.ai-msg.ai-ai{align-self:flex-start;background:var(--card-soft);color:var(--ink-2)}
.ai-msg.ai-user{align-self:flex-end;background:rgba(28,139,114,.13);color:var(--jade-dark)}
.ai-input-bar{display:flex;gap:8px;padding:12px;border-top:1px solid var(--line);background:#fff}
.ai-input-bar input{flex:1;min-height:42px}
.ai-panel-send{border:1px solid transparent;border-radius:var(--radius);background:var(--jade);color:#fff;padding:0 15px;font-weight:900;cursor:pointer}

.loading-mask{position:fixed;inset:0;z-index:150;background:rgba(12,25,22,.72);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#fff;font-family:var(--kai);font-size:18px}
.spin{width:36px;height:36px;border:3px solid rgba(255,255,255,.22);border-top-color:#f3d99d;border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.icp-bar{
  position:fixed;
  left:0;right:0;bottom:0;
  z-index:60;
  text-align:center;
  padding:8px 10px;
  padding-bottom:calc(8px + env(safe-area-inset-bottom,0px));
  background:rgba(248,243,232,.94);
  border-top:1px solid rgba(23,35,31,.1);
  backdrop-filter:blur(10px);
  font-size:12px;
}
.icp-bar a{color:var(--ink-3);text-decoration:none}
.hidden{display:none!important}
.fade-in{animation:fade .34s ease both}
@keyframes fade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

#splash{position:fixed;inset:0;z-index:9999;background:#0d1b18;display:flex;align-items:center;justify-content:center;overflow:hidden;transition:opacity .6s ease}
#splash.hide{opacity:0;pointer-events:none}
#splash-vid{width:100%;height:100%;object-fit:cover}
#splash-skip{position:fixed;top:calc(14px + env(safe-area-inset-top,0px));right:16px;z-index:10000;background:rgba(12,25,22,.55);color:#fff;border:1px solid rgba(255,255,255,.35);border-radius:var(--radius);padding:7px 14px;cursor:pointer}

@media(max-width:920px){
  .wrap{padding:14px 12px 92px}
  .brandbar{align-items:flex-start}
  .brand-status{display:none}
  .workbench-hero,.home-layout{grid-template-columns:1fr}
  .hero-copy{min-height:auto;padding:28px 24px}
  .hero-oracle{min-height:auto}
  .insight-panel{position:relative;top:auto}
  .tabbar{top:6px;gap:4px}
  .tabbar button{flex-direction:column;gap:3px;font-size:11px;padding:8px 2px}
  .tabbar button .tb-ico{font-size:16px}
  .mp-toc{top:70px}
}

@media(max-width:640px){
  body{
    background-color:var(--paper);
    background-image:
      linear-gradient(rgba(58,42,22,.055) 1px,transparent 1px),
      linear-gradient(90deg,rgba(58,42,22,.055) 1px,transparent 1px),
      linear-gradient(180deg,rgba(255,250,239,.72),rgba(241,223,184,.92));
    background-size:18px 18px,18px 18px,auto;
  }
  .brand-name{font-size:19px}
  .brand-sub{font-size:11.5px;max-width:260px}
  .brand-seal{width:38px;height:38px;font-size:18px}
  .workbench-hero{gap:12px;margin-bottom:12px}
  .hero-copy{padding:24px 18px}
  .hero-copy h1{font-size:34px}
  .hero-copy p{font-size:14.5px}
  .hero-actions{display:grid;grid-template-columns:1fr;gap:9px}
  .hero-actions .btn-primary,.hero-actions .btn-ghost{width:100%}
  .hero-oracle{padding:14px}
  .oracle-ring{min-height:108px;padding:12px}
  .oracle-ring span{min-height:54px;font-size:12px}
  .oracle-ring strong{width:78px;height:78px;font-size:19px}
  .oracle-grid{grid-template-columns:1fr 1fr;gap:8px}
  .oracle-grid button{padding:11px}
  .panel{padding:18px 16px;margin-bottom:14px}
  .row{gap:8px}
  .field .row{flex-wrap:nowrap}
  .yj,.act-card{grid-template-columns:1fr}
  .next-actions{grid-template-columns:1fr 1fr}
  .fitem{grid-template-columns:1fr;gap:5px}
  .fdom{flex-direction:row;align-items:center;gap:8px;flex-wrap:wrap}
  .month-grid{grid-template-columns:repeat(3,1fr)}
  .jili-grid,.jili-week{gap:4px}
  .ji-cell{min-height:48px}
  .ji-gz{font-size:10.5px}
  .pan .gz{font-size:26px}
  .pan td,.pan th{padding:9px 3px}
  .pan .hide{font-size:10.5px}
  .ys-it{grid-template-columns:1fr}
  .prof-card{align-items:flex-start;flex-direction:column}
  .prof-btns{width:100%}
  .prof-btns .btn-mini{flex:1}
  .ai-fab{
    right:14px;
    bottom:calc(54px + env(safe-area-inset-bottom,0px));
    min-width:54px;
    width:54px;
    height:54px;
    padding:0;
    justify-content:center;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(8px);
  }
  .ai-fab.mobile-show{opacity:1;visibility:visible;pointer-events:auto;transform:none}
  .ai-fab-txt{display:none}
  .totop-fab{
    right:14px;
    bottom:calc(116px + env(safe-area-inset-bottom,0px));
    width:46px;
    height:46px;
  }
  .ai-panel{
    left:0;
    right:0;
    bottom:0;
    width:100%;
    height:78vh;
    border-radius:8px 8px 0 0;
  }
}

@media(max-width:420px){
  .wrap{padding-left:12px;padding-right:12px}
  .tabbar{grid-template-columns:repeat(6,1fr);padding:5px}
  .tabbar button{font-size:10.5px}
  .oracle-grid{grid-template-columns:1fr}
  .hero-copy h1{font-size:30px}
  .month-grid{grid-template-columns:repeat(2,1fr)}
  .luck{grid-template-columns:1fr 1fr}
  .next-actions{grid-template-columns:1fr}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
