/* fm_ziwei_03 · soft_neumorphic + purple_zen */
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}

.fm-ziwei {
  --fm-max-w: 1040px;
  --fm-radius: 20px;
  --fm-bg: #e8dff0;
  --fm-surface: #f8f4fb;
  --fm-primary: #5b3a7a;
  --fm-accent: #9b72cf;
  --fm-text: #2d1b42;
  --fm-muted: #8a7a9a;
  --fm-border: #e8dff0;
  --fm-hero-from: #4a2870;
  --fm-hero-to: #7b4fa8;
  --fm-shadow: 6px 6px 12px rgba(90,50,120,.08), -6px -6px 12px rgba(255,255,255,.9);
  --fm-shadow-sm: 3px 3px 6px rgba(90,50,120,.06), -3px -3px 6px rgba(255,255,255,.8);
}

* { box-sizing: border-box; margin: 0; padding: 0; }

body {
  background: var(--fm-bg);
  color: var(--fm-text);
  font: 15px/1.7 -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif;
}

.fm-ziwei { 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;
  border-radius: var(--fm-radius);
  padding: 40px 32px 32px;
  margin-top: 20px;
  box-shadow: var(--fm-shadow);
}
.fm-ziwei-hero h1 {
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.4;
  margin-bottom: 12px;
}
.fm-ziwei-hero-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}
.fm-ziwei-hero-tag {
  display: inline-block;
  background: rgba(255,255,255,.18);
  border-radius: 20px;
  padding: 4px 14px;
  font-size: .82rem;
  letter-spacing: .5px;
}
.fm-ziwei-hero-stat {
  font-size: .82rem;
  opacity: .85;
}

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

/* ===== 表单区 ===== */
.fm-ziwei-calc {
  background: var(--fm-surface);
  border-radius: var(--fm-radius);
  padding: 28px 28px 24px;
  margin-top: 20px;
  box-shadow: var(--fm-shadow);
}
.fm-ziwei-calc-title {
  font-size: .88rem;
  color: var(--fm-muted);
  margin-bottom: 20px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--fm-border);
}
.fm-ziwei-form { display: flex; flex-direction: column; gap: 14px; }

.fm-ziwei-form-inline {
  display: flex;
  align-items: center;
  gap: 10px;
}
.fm-ziwei-form-field { flex: 1; }

.fm-ziwei-calc input[type="text"],
.fm-ziwei-calc input[type="number"],
.fm-ziwei-calc select {
  width: 100%;
  font-size: 16px;
  min-height: 42px;
  border: none;
  border-bottom: 1.5px solid var(--fm-border);
  border-radius: 0;
  padding: 0 2px;
  background: transparent;
  color: var(--fm-text);
  outline: none;
  transition: border-color .2s;
}
.fm-ziwei-calc input::placeholder,
.fm-ziwei-calc select { color: var(--fm-accent); }
.fm-ziwei-calc input:focus,
.fm-ziwei-calc select:focus {
  border-bottom-color: var(--fm-primary);
}

.fm-ziwei-form-sep {
  flex-shrink: 0;
  color: var(--fm-accent);
  font-size: .9rem;
  padding-top: 2px;
}

/* 性别 toggle */
.fm-ziwei-sex-toggle {
  display: flex;
  flex-shrink: 0;
  border: 1.5px solid var(--fm-border);
  border-radius: 10px;
  overflow: hidden;
}
.fm-ziwei-sex-opt {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 38px;
  cursor: pointer;
  font-size: .95rem;
  color: var(--fm-accent);
  transition: all .2s;
}
.fm-ziwei-sex-opt input { display: none; }
.fm-ziwei-sex-opt + .fm-ziwei-sex-opt { border-left: 1.5px solid var(--fm-border); }
.fm-ziwei-sex-opt.is-on,
.fm-ziwei-sex-opt:has(input:checked) {
  background: var(--fm-primary);
  color: #fff;
}

/* 时辰 select */
.fm-ziwei-calc select {
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238a7a9a' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 4px center;
  padding-right: 24px;
}

.fm-ziwei-form-actions { text-align: center; margin-top: 6px; }
.fm-ziwei-submit {
  display: inline-block;
  width: 100%;
  max-width: 320px;
  height: 46px;
  border: none;
  border-radius: 12px;
  background: linear-gradient(135deg, var(--fm-hero-from), var(--fm-hero-to));
  color: #fff;
  font-size: .95rem;
  font-weight: 500;
  letter-spacing: 1px;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(74,40,112,.25);
  transition: transform .15s, box-shadow .15s;
}
.fm-ziwei-submit:active {
  transform: scale(.97);
  box-shadow: 0 2px 6px rgba(74,40,112,.15);
}

/* ===== 结果区 ===== */
#fm-calc-result { scroll-margin-top: 16px; outline: none; }

.fm-ziwei-error {
  background: #faf0f3;
  border-radius: var(--fm-radius);
  padding: 20px 24px;
  margin-top: 20px;
  color: #a04050;
  box-shadow: var(--fm-shadow-sm);
}

.fm-ziwei-result {
  background: var(--fm-surface);
  border-radius: var(--fm-radius);
  margin-top: 20px;
  overflow: hidden;
  box-shadow: var(--fm-shadow);
}

.fm-ziwei-result-hd {
  padding: 28px 24px 20px;
  border-bottom: 1px solid var(--fm-border);
}
.fm-ziwei-result-hd h2 { font-size: 1.2rem; color: var(--fm-primary); margin-bottom: 6px; }
.fm-ziwei-result-user { font-size: .85rem; color: var(--fm-muted); margin-bottom: 12px; }

.fm-ziwei-xiu-card {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: var(--fm-bg);
  border-radius: 14px;
  padding: 10px 18px;
  box-shadow: var(--fm-shadow-sm);
}
.fm-ziwei-xiu-card strong { font-size: 1.05rem; color: var(--fm-primary); }
.fm-ziwei-xiu-card em { font-style: normal; color: var(--fm-accent); font-size: .85rem; }
.fm-ziwei-xiu-card span { font-size: .82rem; color: var(--fm-muted); }

.fm-ziwei-result-body { padding: 20px 24px 28px; }

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

/* 十二宫 */
.fm-ziwei-palace-panel { margin-bottom: 20px; }
.fm-ziwei-palace-panel h3 { font-size: 1rem; color: var(--fm-primary); margin-bottom: 6px; }
.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: 8px;
}
.fm-ziwei-palace-cell {
  text-align: center;
  background: var(--fm-bg);
  border-radius: 12px;
  padding: 10px 4px;
  box-shadow: var(--fm-shadow-sm);
}
.fm-ziwei-palace-cell.is-ming { border: 2px solid var(--fm-primary); }
.fm-ziwei-palace-cell.is-shen { border: 2px solid var(--fm-accent); }
.fm-ziwei-palace-name { display: block; font-size: .88rem; color: var(--fm-text); }
.fm-ziwei-palace-zhi { display: block; font-size: .75rem; color: var(--fm-muted); font-style: normal; }

/* 星宿本命 */
.fm-ziwei-dest-lead { margin-bottom: 20px; }
.fm-ziwei-dest-lead h3 { font-size: 1rem; color: var(--fm-primary); margin-bottom: 8px; }
.fm-ziwei-dest-lead p { font-size: .92rem; line-height: 1.8; }
.fm-ziwei-dest-sub { font-size: .85rem; color: var(--fm-muted); margin-top: 6px; }

/* 命理解读 tabs */
.fm-ziwei-tabs { margin-bottom: 20px; }
.fm-ziwei-tabs h3 { font-size: 1rem; color: var(--fm-primary); margin-bottom: 12px; }
.fm-ziwei-tab-grid {
  display: grid;
  gap: 12px;
}
@media (min-width: 768px) {
  .fm-ziwei-tab-grid { grid-template-columns: repeat(2, 1fr); }
}
.fm-ziwei-tab-card {
  background: var(--fm-bg);
  border-radius: 14px;
  padding: 16px;
  box-shadow: var(--fm-shadow-sm);
}
.fm-ziwei-tab-card h4 { font-size: .92rem; color: var(--fm-primary); margin-bottom: 6px; }
.fm-ziwei-tab-card p { font-size: .88rem; line-height: 1.7; color: var(--fm-text); }

/* 命盘摘要 */
.fm-ziwei-info-card {
  background: var(--fm-bg);
  border-radius: 14px;
  padding: 18px;
  box-shadow: var(--fm-shadow-sm);
}
.fm-ziwei-info-card h3 { font-size: 1rem; color: var(--fm-primary); margin-bottom: 12px; }
.fm-ziwei-info-list {
  display: grid;
  gap: 8px;
}
.fm-ziwei-info-item {
  display: flex;
  justify-content: space-between;
  padding: 6px 0;
  border-bottom: 1px solid var(--fm-border);
}
.fm-ziwei-info-item:last-child { border-bottom: none; }
.fm-ziwei-info-item dt { color: var(--fm-muted); font-size: .85rem; }
.fm-ziwei-info-item dd { color: var(--fm-text); font-size: .9rem; font-weight: 500; text-align: right; }

/* ===== 广告 ===== */
.fm-ziwei-ad-script { margin: 20px 0; text-align: center; }

.fm-ziwei-ad-icons {
  background: var(--fm-surface);
  border-radius: var(--fm-radius);
  padding: 20px;
  margin: 20px 0;
  box-shadow: var(--fm-shadow);
}
.fm-ziwei-ad-lead {
  text-align: center;
  font-size: .85rem;
  color: var(--fm-primary);
  margin-bottom: 14px;
  font-weight: 500;
}
.fm-ziwei-ad-icons-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}
@media (max-width: 600px) {
  .fm-ziwei-ad-icons-grid { grid-template-columns: repeat(4, 1fr); gap: 8px; }
}
.fm-ziwei-ad-icons-grid a {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  text-decoration: none;
  color: var(--fm-text);
  background: var(--fm-bg);
  border-radius: 12px;
  padding: 10px 4px;
  box-shadow: var(--fm-shadow-sm);
  transition: transform .15s;
}
.fm-ziwei-ad-icons-grid a:active { transform: scale(.96); }
.fm-ziwei-ad-icons-grid img { width: 40px; height: 40px; border-radius: 8px; }
.fm-ziwei-ad-icons-grid span { font-size: .75rem; text-align: center; line-height: 1.3; }

/* ===== 今日黄历 Lite ===== */
.fm-ziwei-hl {
  background: var(--fm-surface);
  border-radius: var(--fm-radius);
  padding: 24px;
  margin-bottom: 20px;
  box-shadow: var(--fm-shadow);
}
.fm-ziwei-hl-head {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 16px;
}
.fm-ziwei-hl-date-badge {
  background: var(--fm-primary);
  color: #fff;
  border-radius: 14px;
  padding: 10px 14px;
  text-align: center;
  line-height: 1.2;
  min-width: 56px;
  box-shadow: var(--fm-shadow-sm);
}
.fm-ziwei-hl-date-badge b { display: block; font-size: 1.3rem; }
.fm-ziwei-hl-date-badge span { font-size: .72rem; }
.fm-ziwei-hl-head-text h2 { font-size: 1.05rem; color: var(--fm-primary); }
.fm-ziwei-hl-ts { font-size: .82rem; color: var(--fm-muted); margin-top: 2px; }

.fm-ziwei-hl-solar { margin-bottom: 10px; }
.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: 14px;
  font-size: .88rem;
  color: var(--fm-primary);
  margin-bottom: 6px;
}
.fm-ziwei-hl-extra { font-size: .82rem; color: var(--fm-muted); margin-bottom: 14px; }

.fm-ziwei-hl-yiji { margin-bottom: 14px; }
.fm-ziwei-hl-yi, .fm-ziwei-hl-ji {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 8px;
}
.fm-ziwei-hl-yi label, .fm-ziwei-hl-ji label {
  flex-shrink: 0;
  width: 28px; height: 28px;
  border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  font-size: .78rem; font-weight: 600; color: #fff;
}
.fm-ziwei-hl-yi label { background: #6a9b5b; }
.fm-ziwei-hl-ji label { background: #b85a6a; }
.fm-ziwei-hl-tags { font-size: .88rem; line-height: 1.6; }

.fm-ziwei-hl-gods {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
  margin-bottom: 14px;
}
.fm-ziwei-hl-god {
  text-align: center;
  background: var(--fm-bg);
  border-radius: 10px;
  padding: 8px 4px;
  box-shadow: var(--fm-shadow-sm);
}
.fm-ziwei-hl-god i {
  display: block;
  font-style: normal;
  font-size: .72rem;
  color: var(--fm-accent);
  margin-bottom: 2px;
}
.fm-ziwei-hl-god b {
  font-size: .85rem;
  color: var(--fm-primary);
  font-weight: 600;
}

.fm-ziwei-hl-detail { font-size: .85rem; }
.fm-ziwei-hl-row {
  display: flex;
  gap: 12px;
  padding: 6px 0;
  border-bottom: 1px solid var(--fm-border);
}
.fm-ziwei-hl-row:last-child { border-bottom: none; }
.fm-ziwei-hl-row dt { flex-shrink: 0; width: 80px; color: var(--fm-muted); }
.fm-ziwei-hl-row dd { flex: 1; }
.fm-ziwei-hl-row em { font-style: normal; color: var(--fm-muted); font-size: .82rem; margin-left: 4px; }
.fm-ziwei-hl-row--ji dd { color: #4a7a3a; }
.fm-ziwei-hl-row--xiong dd { color: #a04050; }

/* ===== 内容区块 ===== */
.fm-ziwei-block {
  background: var(--fm-surface);
  border-radius: var(--fm-radius);
  padding: 24px;
  margin: 20px 0;
  box-shadow: var(--fm-shadow);
}
.fm-ziwei-block h3 {
  font-size: 1.05rem;
  color: var(--fm-primary);
  margin-bottom: 12px;
}
.fm-ziwei-block ul { padding-left: 20px; }
.fm-ziwei-block li { margin-bottom: 6px; font-size: .92rem; line-height: 1.7; }

.fm-ziwei-lead {
  background: var(--fm-surface);
  border-radius: var(--fm-radius);
  padding: 20px 24px;
  margin-bottom: 16px;
  box-shadow: var(--fm-shadow-sm);
  font-size: .92rem;
  line-height: 1.8;
  color: var(--fm-text);
}

/* 知识文章 */
.fm-ziwei-knowledge { margin-bottom: 16px; }
.fm-ziwei-knowledge-hd {
  background: var(--fm-surface);
  border-radius: var(--fm-radius);
  padding: 20px 24px;
  margin-bottom: 12px;
  box-shadow: var(--fm-shadow);
}
.fm-ziwei-knowledge-hd h2 { font-size: 1.1rem; color: var(--fm-primary); margin-bottom: 4px; }
.fm-ziwei-knowledge-hd p { font-size: .85rem; color: var(--fm-muted); }
.fm-ziwei-knowledge-item {
  background: var(--fm-surface);
  border-radius: var(--fm-radius);
  padding: 20px 24px;
  margin-bottom: 12px;
  box-shadow: var(--fm-shadow);
}
.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: .92rem; line-height: 1.8; margin-bottom: 8px; }

/* FAQ:two_column */
.fm-ziwei-faq .fm-ziwei-faq-grid {
  display: grid;
  gap: 12px;
}
@media (min-width: 768px) {
  .fm-ziwei-faq-grid { grid-template-columns: repeat(2, 1fr); }
}
.fm-ziwei-faq-item {
  background: var(--fm-bg);
  border-radius: 14px;
  padding: 14px 16px;
  box-shadow: var(--fm-shadow-sm);
}
.fm-ziwei-faq-item summary {
  font-size: .92rem;
  font-weight: 500;
  color: var(--fm-primary);
  cursor: pointer;
  list-style: none;
}
.fm-ziwei-faq-item summary::-webkit-details-marker { display: none; }
.fm-ziwei-faq-item summary::before {
  content: "+";
  display: inline-block;
  width: 20px;
  font-size: 1.1rem;
  color: var(--fm-accent);
}
.fm-ziwei-faq-item[open] summary::before { content: "−"; }
.fm-ziwei-faq-item p {
  margin-top: 8px;
  font-size: .88rem;
  line-height: 1.7;
  color: var(--fm-text);
}

/* 链轮:tag_cloud */
.fm-ziwei-wheel { text-align: left; }
.fm-ziwei-wheel-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.fm-ziwei-wheel-pill {
  display: inline-block;
  background: var(--fm-bg);
  border-radius: 20px;
  padding: 6px 16px;
  font-size: .82rem;
  color: var(--fm-text);
  text-decoration: none;
  box-shadow: var(--fm-shadow-sm);
  transition: transform .15s;
}
.fm-ziwei-wheel-pill:active { transform: scale(.95); }

/* ===== 页脚 ===== */
.fm-ziwei-foot {
  text-align: center;
  padding: 28px 16px 12px;
  font-size: .78rem;
  color: var(--fm-muted);
  line-height: 2;
}
.fm-ziwei-foot a { color: var(--fm-muted); text-decoration: none; }

/* ===== 移动端 ===== */
@media (max-width: 767px) {
  .fm-ziwei { padding: 0 14px 40px; }
  .fm-ziwei-hero { padding: 28px 20px 24px; }
  .fm-ziwei-hero h1 { font-size: 1.3rem; }
  .fm-ziwei-calc { padding: 20px 16px; }
  .fm-ziwei-form-inline { flex-wrap: wrap; gap: 8px; }
  .fm-ziwei-pillar-grid { grid-template-columns: repeat(2, 1fr); }
  .fm-ziwei-palace-grid { grid-template-columns: repeat(3, 1fr); }
  .fm-ziwei-hl-gods { grid-template-columns: repeat(2, 1fr); }
  .fm-ziwei-ad-icons-grid { grid-template-columns: repeat(4, 1fr); }
}
