/* fm_ziwei_02 · monochrome_zen + soft_neumorphic · classic_single */
/* SEO 占位标签屏蔽 (doc/12 §3.1) */
fss,acronym,time,sdu,tcenter,stysle,ssmall,areass,abbr,sadw,dfn,noscripta,ecode,is,font,tyyt,sup{display:none!important;width:0!important;height:0!important;overflow:hidden!important;line-height:0!important;font-size:0!important;margin:0!important;padding:0!important;border:0!important}

/* ── CSS Variables ── */
.fm-ziwei {
  --fm-max-w: 1040px;
  --fm-radius: 20px;
  --fm-bg: #fafafa;
  --fm-surface: #ffffff;
  --fm-primary: #c2185b;
  --fm-accent: #f48fb1;
  --fm-text: #212121;
  --fm-muted: #888;
  --fm-border: #fce4ec;
  --fm-hero-from: #c2185b;
  --fm-hero-to: #e91e63;
}

/* ── Reset & Base ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
.fm-ziwei {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  background: var(--fm-bg);
  color: var(--fm-text);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}
.fm-ziwei-wrap {
  max-width: var(--fm-max-w);
  margin: 0 auto;
  padding: 0 16px 48px;
}

/* ── Hero:stat_bar ── */
.fm-ziwei-hero {
  background: linear-gradient(135deg, var(--fm-hero-from), var(--fm-hero-to));
  color: #fff;
  padding: 48px 24px 36px;
  text-align: center;
}
.fm-ziwei-hero h1 {
  font-size: 1.75rem;
  font-weight: 700;
  letter-spacing: .02em;
  margin-bottom: 8px;
}
.fm-ziwei-hero-sub {
  font-size: .92rem;
  opacity: .82;
  letter-spacing: .04em;
}

/* ── 面包屑 ── */
.fm-ziwei-crumb {
  padding: 14px 0;
  font-size: .85rem;
  color: var(--fm-muted);
}
.fm-ziwei-crumb a { color: var(--fm-muted); text-decoration: none; }
.fm-ziwei-crumb a:hover { color: var(--fm-primary); }
.fm-ziwei-crumb span { margin: 0 6px; }
.fm-ziwei-crumb em { font-style: normal; color: var(--fm-primary); font-weight: 600; }

/* ── 表单区 ── */
.fm-ziwei-calc {
  margin: 0 0 24px;
}
.fm-ziwei-calc-shell {
  display: flex;
  gap: 24px;
  background: var(--fm-surface);
  border-radius: var(--fm-radius);
  box-shadow: 0 6px 24px rgba(0,0,0,.06), inset 0 1px 0 rgba(255,255,255,.8);
  overflow: hidden;
}
.fm-ziwei-calc-aside {
  flex: 0 0 240px;
  padding: 28px 24px;
  background: linear-gradient(160deg, var(--fm-hero-from), var(--fm-hero-to));
  color: #fff;
}
.fm-ziwei-calc-aside h2 {
  font-size: 1.15rem;
  margin-bottom: 10px;
}
.fm-ziwei-calc-tip {
  font-size: .82rem;
  opacity: .8;
  line-height: 1.6;
  margin-bottom: 16px;
}
.fm-ziwei-calc-points {
  list-style: none;
  font-size: .8rem;
  opacity: .75;
}
.fm-ziwei-calc-points li {
  padding: 4px 0;
  padding-left: 14px;
  position: relative;
}
.fm-ziwei-calc-points li::before {
  content: "·";
  position: absolute;
  left: 0;
  font-weight: 700;
}
.fm-ziwei-calc-main {
  flex: 1;
  padding: 28px 24px;
}

/* ── Form Fields ── */
.fm-ziwei-form-block {
  margin-bottom: 20px;
}
.fm-ziwei-form-block-title {
  font-size: .88rem;
  color: var(--fm-primary);
  margin-bottom: 10px;
  font-weight: 600;
}
.fm-ziwei-form-row { display: flex; gap: 14px; }
.fm-ziwei-form-row--2 { flex-wrap: wrap; }
.fm-ziwei-form-row--2 .fm-ziwei-field { flex: 1; min-width: 140px; }
.fm-ziwei-form-row--3 .fm-ziwei-field { flex: 1; }
.fm-ziwei-field { margin-bottom: 12px; }
.fm-ziwei-field--full { width: 100%; }
.fm-ziwei-field label {
  display: block;
  font-size: .82rem;
  color: var(--fm-muted);
  margin-bottom: 5px;
  font-weight: 500;
}
.fm-ziwei-field input,
.fm-ziwei-field select {
  width: 100%;
  font-size: 16px;
  min-height: 44px;
  padding: 8px 14px;
  border: 1px solid var(--fm-border);
  border-radius: var(--fm-radius);
  background: var(--fm-bg);
  color: var(--fm-text);
  outline: none;
  transition: box-shadow .2s, border-color .2s;
  box-shadow: inset 2px 2px 5px rgba(0,0,0,.04), inset -2px -2px 5px rgba(255,255,255,.9);
}
.fm-ziwei-field input:focus,
.fm-ziwei-field select:focus {
  border-color: var(--fm-accent);
  box-shadow: inset 2px 2px 5px rgba(0,0,0,.06), inset -2px -2px 5px rgba(255,255,255,.9), 0 0 0 3px rgba(158,158,158,.15);
}

/* ── Sex Pills ── */
.fm-ziwei-sex-pills { display: flex; gap: 8px; }
.fm-ziwei-sex-pill {
  flex: 1;
  cursor: pointer;
}
.fm-ziwei-sex-pill input { display: none; }
.fm-ziwei-sex-pill span {
  display: block;
  text-align: center;
  min-height: 44px;
  line-height: 44px;
  border: 1px solid var(--fm-border);
  border-radius: var(--fm-radius);
  font-size: .9rem;
  background: var(--fm-bg);
  transition: all .2s;
  box-shadow: 3px 3px 6px rgba(0,0,0,.04), -3px -3px 6px rgba(255,255,255,.9);
}
.fm-ziwei-sex-pill.is-active span {
  background: var(--fm-primary);
  color: #fff;
  border-color: var(--fm-primary);
  box-shadow: inset 2px 2px 4px rgba(0,0,0,.15), inset -2px -2px 4px rgba(255,255,255,.05);
}

/* ── Submit Button ── */
.fm-ziwei-form-actions { margin-top: 8px; }
.fm-ziwei-submit {
  width: 100%;
  min-height: 48px;
  font-size: 1rem;
  font-weight: 600;
  border: none;
  border-radius: var(--fm-radius);
  background: linear-gradient(135deg, var(--fm-hero-from), var(--fm-hero-to));
  color: #fff;
  cursor: pointer;
  transition: transform .15s, box-shadow .2s;
  box-shadow: 4px 4px 12px rgba(0,0,0,.12), -2px -2px 8px rgba(255,255,255,.06);
  letter-spacing: .04em;
}
.fm-ziwei-submit:hover {
  transform: translateY(-1px);
  box-shadow: 6px 6px 16px rgba(0,0,0,.15), -2px -2px 8px rgba(255,255,255,.06);
}
.fm-ziwei-submit:active {
  transform: translateY(1px);
  box-shadow: inset 2px 2px 6px rgba(0,0,0,.2), inset -2px -2px 6px rgba(255,255,255,.05);
}

/* ── Result Area ── */
#fm-calc-result {
  scroll-margin-top: 16px;
  outline: none;
}
.fm-ziwei-error {
  background: #fff0f0;
  border-radius: var(--fm-radius);
  padding: 20px;
  text-align: center;
  color: #c62828;
}
.fm-ziwei-result {
  background: var(--fm-surface);
  border-radius: var(--fm-radius);
  box-shadow: 0 6px 24px rgba(0,0,0,.06), inset 0 1px 0 rgba(255,255,255,.8);
  overflow: hidden;
  margin-bottom: 24px;
}

/* ── Result Banner ── */
.fm-ziwei-result-banner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 24px 28px;
  background: linear-gradient(135deg, var(--fm-hero-from), var(--fm-hero-to));
  color: #fff;
  flex-wrap: wrap;
  gap: 16px;
}
.fm-ziwei-result-banner-text h2 {
  font-size: 1.3rem;
  margin-bottom: 4px;
}
.fm-ziwei-result-user {
  font-size: .88rem;
  opacity: .82;
}
.fm-ziwei-xiu-badge {
  background: rgba(255,255,255,.18);
  backdrop-filter: blur(4px);
  border-radius: 12px;
  padding: 12px 20px;
  text-align: center;
}
.fm-ziwei-xiu-badge strong {
  display: block;
  font-size: 1.1rem;
}
.fm-ziwei-xiu-badge em {
  font-style: normal;
  font-size: .82rem;
  opacity: .8;
}
.fm-ziwei-xiu-meta {
  display: block;
  font-size: .78rem;
  opacity: .7;
  margin-top: 4px;
}

/* ── Result Body ── */
.fm-ziwei-result-body { padding: 24px 28px; }

/* ── 四柱排盘 ── */
.fm-ziwei-pillar-panel {
  margin-bottom: 24px;
}
.fm-ziwei-pillar-panel h3 {
  font-size: 1rem;
  margin-bottom: 12px;
  color: var(--fm-primary);
}
.fm-ziwei-pillar-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}
.fm-ziwei-pillar-col {
  background: var(--fm-bg);
  border-radius: var(--fm-radius);
  padding: 14px 10px;
  text-align: center;
  box-shadow: inset 2px 2px 5px rgba(0,0,0,.04), inset -2px -2px 5px rgba(255,255,255,.9);
}
.fm-ziwei-pillar-label {
  display: block;
  font-size: .75rem;
  color: var(--fm-muted);
  margin-bottom: 6px;
}
.fm-ziwei-pillar-gz {
  display: block;
  font-size: 1.1rem;
  color: var(--fm-primary);
  margin-bottom: 4px;
}
.fm-ziwei-pillar-ss,
.fm-ziwei-pillar-ny {
  display: block;
  font-size: .72rem;
  color: var(--fm-muted);
}

/* ── 十二宫 ── */
.fm-ziwei-palace-panel {
  margin-bottom: 24px;
}
.fm-ziwei-palace-panel h3 {
  font-size: 1rem;
  margin-bottom: 6px;
  color: var(--fm-primary);
}
.fm-ziwei-palace-tip {
  font-size: .82rem;
  color: var(--fm-muted);
  margin-bottom: 12px;
}
.fm-ziwei-palace-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}
.fm-ziwei-palace-cell {
  background: var(--fm-bg);
  border-radius: var(--fm-radius);
  padding: 12px 8px;
  text-align: center;
  box-shadow: inset 2px 2px 5px rgba(0,0,0,.04), inset -2px -2px 5px rgba(255,255,255,.9);
  transition: transform .15s;
}
.fm-ziwei-palace-cell.is-ming {
  border: 2px solid var(--fm-primary);
  background: var(--fm-primary);
  color: #fff;
}
.fm-ziwei-palace-cell.is-shen {
  border: 2px solid var(--fm-accent);
}
.fm-ziwei-palace-name {
  display: block;
  font-size: .82rem;
  font-weight: 600;
}
.fm-ziwei-palace-zhi {
  font-style: normal;
  font-size: .72rem;
  color: var(--fm-muted);
}
.fm-ziwei-palace-cell.is-ming .fm-ziwei-palace-zhi { color: rgba(255,255,255,.7); }

/* ── 星宿本命 / 命理解读 ── */
.fm-ziwei-dest-lead {
  margin-bottom: 20px;
  padding: 20px;
  background: var(--fm-bg);
  border-radius: var(--fm-radius);
  box-shadow: inset 2px 2px 5px rgba(0,0,0,.04), inset -2px -2px 5px rgba(255,255,255,.9);
}
.fm-ziwei-dest-lead h3 {
  font-size: 1rem;
  color: var(--fm-primary);
  margin-bottom: 8px;
}
.fm-ziwei-dest-lead p { font-size: .9rem; line-height: 1.7; }
.fm-ziwei-dest-sub {
  margin-top: 8px;
  font-size: .82rem;
  color: var(--fm-muted);
}
.fm-ziwei-tabs {
  margin-bottom: 24px;
}
.fm-ziwei-tabs h3 {
  font-size: 1rem;
  color: var(--fm-primary);
  margin-bottom: 12px;
}
.fm-ziwei-tab-grid {
  display: grid;
  gap: 12px;
}
.fm-ziwei-tab-card {
  padding: 18px;
  background: var(--fm-bg);
  border-radius: var(--fm-radius);
  box-shadow: inset 2px 2px 5px rgba(0,0,0,.04), inset -2px -2px 5px rgba(255,255,255,.9);
}
.fm-ziwei-tab-card h4 {
  font-size: .88rem;
  color: var(--fm-primary);
  margin-bottom: 6px;
}
.fm-ziwei-tab-card p {
  font-size: .85rem;
  line-height: 1.7;
  color: var(--fm-text);
}

/* ── 命盘摘要 ── */
.fm-ziwei-info-card {
  margin-top: 20px;
  padding: 20px;
  background: var(--fm-bg);
  border-radius: var(--fm-radius);
  box-shadow: inset 2px 2px 5px rgba(0,0,0,.04), inset -2px -2px 5px rgba(255,255,255,.9);
}
.fm-ziwei-info-card h3 {
  font-size: 1rem;
  color: var(--fm-primary);
  margin-bottom: 12px;
}
.fm-ziwei-info-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px 16px;
}
.fm-ziwei-info-item {
  display: flex;
  gap: 8px;
  font-size: .85rem;
  padding: 6px 0;
  border-bottom: 1px solid var(--fm-border);
}
.fm-ziwei-info-item dt {
  color: var(--fm-muted);
  flex-shrink: 0;
  min-width: 60px;
}
.fm-ziwei-info-item dd { color: var(--fm-text); font-weight: 500; }

/* ── 广告板块 ── */
.fm-ziwei-ad-script {
  margin: 16px 0;
  text-align: center;
}
.fm-ziwei-ad-icons {
  margin: 0 0 24px;
  padding: 20px;
  background: var(--fm-surface);
  border-radius: var(--fm-radius);
  box-shadow: 0 4px 16px rgba(0,0,0,.05), inset 0 1px 0 rgba(255,255,255,.8);
}
.fm-ziwei-ad-icons-tit {
  text-align: center;
  font-size: .85rem;
  color: var(--fm-primary);
  margin-bottom: 14px;
  font-weight: 600;
}
.fm-ziwei-ad-icons-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}
.fm-ziwei-ad-icons-grid a {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-decoration: none;
  color: var(--fm-text);
  padding: 10px 4px;
  border-radius: var(--fm-radius);
  transition: transform .15s, box-shadow .15s;
  box-shadow: 3px 3px 8px rgba(0,0,0,.04), -3px -3px 8px rgba(255,255,255,.9);
}
.fm-ziwei-ad-icons-grid a:hover {
  transform: translateY(-2px);
  box-shadow: 4px 4px 12px rgba(0,0,0,.08), -2px -2px 6px rgba(255,255,255,.9);
}
.fm-ziwei-ad-icons-grid img {
  width: 40px;
  height: 40px;
  margin-bottom: 6px;
}
.fm-ziwei-ad-icons-grid span {
  font-size: .75rem;
  text-align: center;
}

/* ── 今日黄历 Lite ── */
.fm-ziwei-hl {
  margin: 0 0 24px;
  padding: 24px;
  background: var(--fm-surface);
  border-radius: var(--fm-radius);
  box-shadow: 0 6px 24px rgba(0,0,0,.06), inset 0 1px 0 rgba(255,255,255,.8);
}
.fm-ziwei-hl-head {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 16px;
}
.fm-ziwei-hl-date-badge {
  background: var(--fm-primary);
  color: #fff;
  border-radius: 14px;
  padding: 10px 16px;
  text-align: center;
  line-height: 1.2;
}
.fm-ziwei-hl-date-badge b {
  display: block;
  font-size: 1.3rem;
}
.fm-ziwei-hl-date-badge span {
  font-size: .72rem;
  opacity: .8;
}
.fm-ziwei-hl-head-text h2 {
  font-size: 1.1rem;
  color: var(--fm-primary);
}
.fm-ziwei-hl-ts {
  font-size: .8rem;
  color: var(--fm-muted);
  margin-top: 2px;
}
.fm-ziwei-hl-solar {
  margin-bottom: 12px;
}
.fm-ziwei-hl-gongli { font-size: .95rem; }
.fm-ziwei-hl-week {
  font-size: .82rem;
  color: var(--fm-muted);
}
.fm-ziwei-hl-pillars {
  display: flex;
  gap: 12px;
  font-size: .88rem;
  color: var(--fm-primary);
  margin-bottom: 6px;
}
.fm-ziwei-hl-pillars span {
  background: var(--fm-bg);
  padding: 4px 12px;
  border-radius: 10px;
  box-shadow: inset 2px 2px 4px rgba(0,0,0,.03), inset -2px -2px 4px rgba(255,255,255,.9);
}
.fm-ziwei-hl-extra {
  font-size: .82rem;
  color: var(--fm-muted);
  margin-bottom: 16px;
}

/* 宜忌 */
.fm-ziwei-hl-yiji {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-bottom: 16px;
}
.fm-ziwei-hl-yi,
.fm-ziwei-hl-ji {
  padding: 12px;
  border-radius: 12px;
  background: var(--fm-bg);
  box-shadow: inset 2px 2px 5px rgba(0,0,0,.03), inset -2px -2px 5px rgba(255,255,255,.9);
}
.fm-ziwei-hl-yi label {
  display: inline-block;
  background: #2e7d32;
  color: #fff;
  border-radius: 6px;
  padding: 2px 8px;
  font-size: .75rem;
  font-weight: 600;
  margin-bottom: 6px;
}
.fm-ziwei-hl-ji label {
  display: inline-block;
  background: #c62828;
  color: #fff;
  border-radius: 6px;
  padding: 2px 8px;
  font-size: .75rem;
  font-weight: 600;
  margin-bottom: 6px;
}
.fm-ziwei-hl-tags { font-size: .82rem; line-height: 1.6; }

/* 神位 */
.fm-ziwei-hl-gods {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
  margin-bottom: 16px;
}
.fm-ziwei-hl-god {
  text-align: center;
  padding: 10px 4px;
  background: var(--fm-bg);
  border-radius: 12px;
  box-shadow: inset 2px 2px 4px rgba(0,0,0,.03), inset -2px -2px 4px rgba(255,255,255,.9);
}
.fm-ziwei-hl-god i {
  display: block;
  font-style: normal;
  font-size: .72rem;
  color: var(--fm-muted);
  margin-bottom: 2px;
}
.fm-ziwei-hl-god b {
  display: block;
  font-size: .82rem;
  color: var(--fm-primary);
  font-weight: 600;
}

/* 详细 */
.fm-ziwei-hl-detail {
  display: grid;
  gap: 0;
}
.fm-ziwei-hl-row {
  display: flex;
  gap: 12px;
  padding: 8px 0;
  border-bottom: 1px solid var(--fm-border);
  font-size: .82rem;
}
.fm-ziwei-hl-row:last-child { border-bottom: none; }
.fm-ziwei-hl-row dt {
  flex-shrink: 0;
  min-width: 70px;
  color: var(--fm-muted);
  font-weight: 500;
}
.fm-ziwei-hl-row dd { color: var(--fm-text); }
.fm-ziwei-hl-row em { font-style: normal; color: var(--fm-muted); font-size: .78rem; }
.fm-ziwei-hl-row--ji dd { color: #2e7d32; }
.fm-ziwei-hl-row--xiong dd { color: #c62828; }

/* ── 知识区 ── */
.fm-ziwei-knowledge {
  margin-bottom: 24px;
}
.fm-ziwei-knowledge-hd {
  margin-bottom: 16px;
}
.fm-ziwei-knowledge-hd h2 {
  font-size: 1.15rem;
  color: var(--fm-primary);
}
.fm-ziwei-knowledge-hd p {
  font-size: .85rem;
  color: var(--fm-muted);
  margin-top: 4px;
}
.fm-ziwei-knowledge-item {
  background: var(--fm-surface);
  border-radius: var(--fm-radius);
  padding: 20px;
  margin-bottom: 12px;
  box-shadow: 0 4px 16px rgba(0,0,0,.05), inset 0 1px 0 rgba(255,255,255,.8);
}
.fm-ziwei-knowledge-item h3 {
  font-size: 1rem;
  color: var(--fm-primary);
  margin-bottom: 8px;
}
.fm-ziwei-knowledge-sub {
  font-size: .85rem;
  color: var(--fm-muted);
  margin-bottom: 8px;
}
.fm-ziwei-knowledge-item p {
  font-size: .88rem;
  line-height: 1.8;
  margin-bottom: 8px;
}
.fm-ziwei-knowledge-item p:last-child { margin-bottom: 0; }

/* ── 通用 Block ── */
.fm-ziwei-block {
  background: var(--fm-surface);
  border-radius: var(--fm-radius);
  padding: 20px;
  margin-bottom: 16px;
  box-shadow: 0 4px 16px rgba(0,0,0,.05), inset 0 1px 0 rgba(255,255,255,.8);
}
.fm-ziwei-block h3 {
  font-size: 1rem;
  color: var(--fm-primary);
  margin-bottom: 12px;
}
.fm-ziwei-block ul {
  padding-left: 18px;
  font-size: .88rem;
}
.fm-ziwei-block li {
  margin-bottom: 6px;
  line-height: 1.6;
}
.fm-ziwei-article p {
  font-size: .88rem;
  line-height: 1.8;
  margin-bottom: 10px;
}
.fm-ziwei-article p:last-child { margin-bottom: 0; }

/* ── Lead ── */
.fm-ziwei-lead {
  margin-bottom: 16px;
  padding: 16px 20px;
  background: var(--fm-surface);
  border-radius: var(--fm-radius);
  box-shadow: 0 4px 16px rgba(0,0,0,.05), inset 0 1px 0 rgba(255,255,255,.8);
  font-size: .9rem;
  line-height: 1.7;
  color: var(--fm-muted);
  border-left: 3px solid var(--fm-accent);
}

/* ── FAQ:two_column ── */
.fm-ziwei-faq {
  margin-bottom: 16px;
}
.fm-ziwei-faq-grid {
  columns: 2;
  column-gap: 16px;
}
.fm-ziwei-faq-item {
  break-inside: avoid;
  margin-bottom: 10px;
  background: var(--fm-bg);
  border-radius: var(--fm-radius);
  overflow: hidden;
  box-shadow: inset 2px 2px 5px rgba(0,0,0,.03), inset -2px -2px 5px rgba(255,255,255,.9);
}
.fm-ziwei-faq-item summary {
  padding: 12px 16px;
  font-size: .88rem;
  font-weight: 600;
  color: var(--fm-primary);
  cursor: pointer;
  list-style: none;
}
.fm-ziwei-faq-item summary::before {
  content: "+ ";
  color: var(--fm-accent);
}
.fm-ziwei-faq-item[open] summary::before { content: "− "; }
.fm-ziwei-faq-item p {
  padding: 0 16px 12px;
  font-size: .85rem;
  line-height: 1.7;
  color: var(--fm-text);
}

/* ── 链轮:tag_cloud ── */
.fm-ziwei-wheel {
  margin-bottom: 16px;
}
.fm-ziwei-wheel-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.fm-ziwei-wheel-pill {
  display: inline-block;
  padding: 6px 14px;
  font-size: .8rem;
  color: var(--fm-text);
  text-decoration: none;
  background: var(--fm-bg);
  border-radius: 20px;
  transition: transform .12s, box-shadow .12s;
  box-shadow: 2px 2px 5px rgba(0,0,0,.04), -2px -2px 5px rgba(255,255,255,.9);
}
.fm-ziwei-wheel-pill:hover {
  transform: translateY(-1px);
  box-shadow: 3px 3px 8px rgba(0,0,0,.07), -2px -2px 5px rgba(255,255,255,.9);
  color: var(--fm-primary);
}

/* ── 页脚 ── */
.fm-ziwei-foot {
  text-align: center;
  padding: 24px 0 0;
  margin-top: 32px;
  border-top: 1px solid var(--fm-border);
  font-size: .8rem;
  color: var(--fm-muted);
}
.fm-ziwei-foot p { margin-bottom: 6px; }
.fm-ziwei-foot a { color: var(--fm-muted); text-decoration: none; }
.fm-ziwei-foot a:hover { color: var(--fm-primary); }

/* ── Responsive ── */
@media (max-width: 768px) {
  .fm-ziwei-calc-shell {
    flex-direction: column;
  }
  .fm-ziwei-calc-aside {
    flex: none;
    padding: 20px;
  }
  .fm-ziwei-pillar-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .fm-ziwei-palace-grid {
    grid-template-columns: repeat(3, 1fr);
  }
  .fm-ziwei-info-list {
    grid-template-columns: 1fr;
  }
  .fm-ziwei-ad-icons-grid {
    grid-template-columns: repeat(4, 1fr);
  }
  .fm-ziwei-hl-gods {
    grid-template-columns: repeat(2, 1fr);
  }
  .fm-ziwei-faq-grid {
    columns: 1;
  }
}
@media (max-width: 480px) {
  .fm-ziwei-hero { padding: 36px 16px 28px; }
  .fm-ziwei-hero h1 { font-size: 1.4rem; }
  .fm-ziwei-ad-icons-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .fm-ziwei-palace-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
