/* NOTE: global html/body styles intentionally omitted —
   landing.css controls page-level layout. Chart styles below
   are all scoped to .bz-doc / #bzDoc so the modal popup can
   live inside any host page without clobbering it. */
@media print {
  body { background: white; padding: 0; }
  .bz-doc { box-shadow: none !important; width: 100% !important; }
  .bz-doc::before { display:none !important; }
}
.bz-doc ::selection { background: rgba(156,123,69,.25); }

/* ===============================================================
   BaZi Chart — Premium edition
   Warm cream paper (60%), dark-brown ink (30%), bronze accent (10%).
   Espresso paper-textured bands replace the old burgundy.
   =============================================================== */

.bz-doc {
  --paper:        #f4efe3;   /* 60% — warm cream paper */
  --paper-soft:   #ece3d1;
  --paper-deep:   #e3d9c4;
  --ink:          #2c2620;   /* 30% — dark brown ink */
  --ink-soft:     #5d5345;
  --ink-mute:     #9a8d79;
  --line:         #e0d6c1;
  --line-soft:    #e9e1d0;
  --accent:       #9c7b45;   /* 10% — antique bronze */
  --accent-deep:  #7b6034;
  --brown:        #43301e;   /* walnut — deep (header/footer/axis) */
  --brown-mid:    #573f29;   /* walnut — title bars */
  --brown-soft:   #6a4f35;   /* walnut — light (pillar heads / labels) */
  --on-dark:      #efe7d5;   /* text on walnut */
  --on-dark-mute: #b9ab92;
  --good:         #6a7a52;   /* muted olive */
  --bad:          #9a5a44;   /* muted terracotta */
  --grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.7'/%3E%3C/svg%3E");
}

/* Muted, earthy element tints (kept functional, low chroma) */
.el-wood   { color: #5e7350; }
.el-fire   { color: #9d5a44; }
.el-earth  { color: #8a6f3a; }
.el-metal  { color: #6e695f; }
.el-water  { color: #486478; }

.bz-radar-label.el-wood   { fill: #5e7350; }
.bz-radar-label.el-fire   { fill: #9d5a44; }
.bz-radar-label.el-earth  { fill: #8a6f3a; }
.bz-radar-label.el-metal  { fill: #6e695f; }
.bz-radar-label.el-water  { fill: #486478; }
.bz-radar-label           { font: 600 11px 'Hanken Grotesk', system-ui; letter-spacing:.04em; }

.bz-radar-dot {
  display:inline-block; width:8px; height:8px; border-radius:50%; margin-right:8px;
  background:currentColor;
}
.bz-radar-dot.el-wood  { background:#5e7350; }
.bz-radar-dot.el-fire  { background:#9d5a44; }
.bz-radar-dot.el-earth { background:#8a6f3a; }
.bz-radar-dot.el-metal { background:#6e695f; }
.bz-radar-dot.el-water { background:#486478; }

/* ===== Doc wrapper ============================================= */
.bz-doc {
  position: relative;
  background: var(--paper);
  color: var(--ink);
  font-family: 'Hanken Grotesk', -apple-system, sans-serif;
  font-size: 12px;
  line-height: 1.4;
  width: 1180px;
  max-width: 100%;
  padding: 0;
  border-radius: 3px;
  box-shadow: 0 50px 100px -40px rgba(0,0,0,.7), 0 4px 14px rgba(0,0,0,.28);
  overflow: hidden;
}
.bz-doc::before {
  content:''; position:absolute; inset:0; z-index:6; pointer-events:none;
  background-image: var(--grain);
  background-size: 200px;
  mix-blend-mode: multiply;
  opacity: .045;
}

/* ===== Header ribbon =========================================== */
.bz-doc-header {
  display: grid;
  grid-template-columns: 264px 1fr;
  background-color: var(--brown);
  background-image: var(--grain);
  background-size: 220px;
  background-blend-mode: soft-light;
  color: var(--on-dark);
}
.bz-ribbon-left {
  padding: 26px 26px 24px;
  border-right: 1px solid rgba(156,123,69,.4);
  position: relative;
}
.bz-ribbon-title {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 38px;
  line-height: 1;
  letter-spacing: 0.02em;
  font-weight: 700;
  white-space: nowrap;
  color: var(--on-dark);
}
.bz-ribbon-sub {
  font-size: 8px;
  letter-spacing: 0.3em;
  margin-top: 12px;
  color: var(--on-dark-mute);
}
.bz-ribbon-year {
  margin-top: 16px;
  font-size: 10px;
  letter-spacing: 0.4em;
  color: var(--accent);
  font-weight: 600;
}
.bz-ribbon-right {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 30px;
}
.bz-ribbon-right::after {
  content: '本命八字 · 2026';
  font-family: 'Noto Serif SC', serif;
  font-size: 12px;
  letter-spacing: 0.3em;
  color: var(--on-dark-mute);
  font-weight: 400;
}
.bz-ribbon-right-title {
  font-family: 'Hanken Grotesk', sans-serif;
  font-size: 19px;
  font-weight: 600;
  letter-spacing: 0.2em;
  color: var(--on-dark);
}

/* ===== Name strip ============================================== */
.bz-name-strip {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 13px 30px;
  background: var(--brown-soft);
  color: var(--on-dark);
  font-size: 11px;
  letter-spacing: .02em;
}
.bz-name-strip .bz-name-name {
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.04em;
}
.bz-name-strip .bz-name-bullet { color: rgba(156,123,69,.7); font-weight:300; }
.bz-name-strip .bz-name-spacer { flex: 1; }
.bz-name-strip .bz-name-dm { color: var(--on-dark-mute); letter-spacing:.06em; }
.bz-name-strip .bz-name-dm strong { color: var(--accent); font-weight: 600; margin: 0 4px; font-family:'Noto Serif SC','Cormorant Garamond',serif; }
.bz-name-strip .el-wood   { color: #9bbf86; }
.bz-name-strip .el-fire   { color: #d99079; }
.bz-name-strip .el-earth  { color: #d7bd83; }
.bz-name-strip .el-metal  { color: #cfcabd; }
.bz-name-strip .el-water  { color: #8fb1cc; }

/* ===== Layout rows ============================================ */
.bz-row {
  display: grid;
  gap: 14px;
  padding: 14px;
}
.bz-row-2 { grid-template-columns: 1fr 1fr; }
.bz-row-3 { grid-template-columns: 1fr 1fr 0.95fr; }
.bz-col-stack { display: flex; flex-direction: column; gap: 14px; }

/* ===== Block ================================================== */
.bz-block {
  border: 1px solid var(--line);
  background: var(--paper);
  border-radius: 2px;
  overflow: hidden;
}
.bz-block-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 9px 14px;
  background-color: var(--brown-mid);
  background-image: var(--grain);
  background-size: 200px;
  background-blend-mode: soft-light;
  color: var(--on-dark);
  font-size: 9.5px;
  letter-spacing: 0.18em;
  font-weight: 600;
  text-transform: uppercase;
}
.bz-block-head .bz-cn {
  font-family: 'Noto Serif SC', serif;
  font-weight: 400;
  letter-spacing: 0.08em;
  color: var(--accent);
  text-transform: none;
}
.bz-block-head-sub {
  font-size: 9px;
  font-weight: 400;
  letter-spacing: 0.1em;
  color: var(--on-dark-mute);
  text-transform: none;
}
/* favorable / unfavorable: same espresso head, signified by a thin accent rule */
.bz-block-head.bz-head-good,
.bz-block-head.bz-head-bad { background-color: var(--brown-mid); }
.bz-block-head.bz-head-good { box-shadow: none; }
.bz-block-head.bz-head-bad  { box-shadow: none; }

/* ===== Personal Details ======================================= */
.bz-details-block { display: flex; flex-direction: column; }
.bz-details-block .bz-detail-row { flex: 1 1 0; }
.bz-detail-row {
  display: grid;
  grid-template-columns: 1.2fr 0.6fr 16px 1.4fr;
  align-items: center;
  padding: 7px 14px;
  border-bottom: 1px solid var(--line-soft);
  font-size: 11px;
}
.bz-detail-row:last-child { border-bottom: 0; }
.bz-detail-row:nth-child(even) { background: rgba(220,208,182,.22); }
.bz-detail-label { font-weight: 600; color: var(--ink); letter-spacing:.01em; }
.bz-detail-cn    { color: var(--ink-mute); font-family:'Noto Serif SC',serif; font-size: 11px; }
.bz-detail-sep   { color: var(--ink-mute); }
.bz-detail-value { display: flex; gap: 8px; align-items: baseline; }
.bz-detail-cn-v  { font-family:'Noto Serif SC',serif; font-size: 13px; font-weight: 600; color: var(--ink); }
.bz-detail-en-v  { color: var(--ink-soft); font-size: 10.5px; }

/* ===== Directions ============================================= */
.bz-dir-row {
  display: grid;
  grid-template-columns: 1.4fr 0.6fr 12px 1fr;
  align-items: center;
  padding: 7px 14px;
  border-bottom: 1px solid var(--line-soft);
  font-size: 11px;
}
.bz-dir-row:last-child { border-bottom: 0; }
.bz-dir-row:nth-child(even) { background: rgba(220,208,182,.18); }
.bz-dir-en      { font-weight: 500; color: var(--ink); }
.bz-dir-cn      { color: var(--ink-mute); font-family:'Noto Serif SC',serif; }
.bz-dir-bearing { font-weight: 600; color: var(--accent-deep); letter-spacing:.04em; }

/* ===== Life Star + Gua ======================================= */
.bz-block.bz-star-block { display: flex; flex-direction: column; }
.bz-star-block .bz-star-body {
  display: grid; grid-template-columns: 1fr 1fr; min-height: 230px;
  flex: 1 1 auto;
}
.bz-star-side {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 16px;
  border-right: 1px solid var(--line);
  background: var(--paper);
}
.bz-star-num {
  font-family: 'Cormorant Garamond', serif;
  font-size: 80px;
  line-height: 1;
  color: var(--ink);
  font-weight: 500;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.bz-star-color {
  font-size: 12px; font-weight: 600; letter-spacing: 0.18em; margin-top: 6px;
  text-transform: uppercase; color: var(--ink-soft);
}
.bz-star-cn { font-family:'Noto Serif SC',serif; font-size: 13px; color: var(--ink-mute); margin-top: 10px; letter-spacing: 0.1em; }
.bz-star-elem {
  margin-top: 12px;
  font-size: 12px;
  font-weight: 600;
  color: var(--accent-deep);
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.bz-gua-side {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 16px;
  background: var(--paper-soft);
}
.bz-gua-char {
  font-family: 'Noto Serif SC','Cormorant Garamond', serif;
  font-size: 80px;
  line-height: 1;
  color: var(--ink);
  font-weight: 500;
}
.bz-trigram { font-size: 30px; line-height: 1; color: var(--accent); margin-top: 6px; }
.bz-gua-name { font-size: 11px; font-weight: 600; margin-top: 8px; letter-spacing: 0.2em; color: var(--ink-mute); text-transform:uppercase; }
.bz-gua-dir  { margin-top: 10px; font-size: 14px; font-weight: 600; color: var(--accent-deep); letter-spacing: 0.1em; text-transform:uppercase; }

/* ===== Natal Chart =========================================== */
.bz-natal { margin: 14px; }
.bz-natal-grid {
  display: grid;
  grid-template-columns: 90px repeat(4, minmax(0, 1fr));
  background: var(--paper);
}
.bz-natal-axis {
  display: grid;
  grid-template-rows: 32px 32px 80px 90px 1fr;
  background-color: var(--brown);
  background-image: var(--grain);
  background-size: 200px;
  background-blend-mode: soft-light;
  color: var(--accent);
}
.bz-axis-label {
  display: flex; align-items: center; justify-content: center;
  font-size: 8.5px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-align: center;
  color: var(--on-dark-mute);
  border-bottom: 1px solid rgba(156,123,69,.16);
  padding: 6px;
  text-transform: uppercase;
}
.bz-axis-spacer { background: transparent; border-bottom: none; }

.bz-pillar {
  border-left: 1px solid var(--line);
  display: grid;
  grid-template-rows: 32px 32px 80px 90px 1fr;
  background: var(--paper);
}
.bz-pillar-head {
  display: flex; align-items: center; justify-content: center;
  background: var(--brown-soft); color: var(--on-dark);
  font-size: 10.5px; font-weight: 500; gap: 7px; letter-spacing:.08em;
}
.bz-pillar-head .bz-cn-tag {
  font-family:'Noto Serif SC',serif;
  font-size: 14px; color: var(--accent); font-weight: 600;
}

.bz-god-above {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  font-size: 9px;
  padding: 4px;
  border-bottom: 1px solid var(--line);
  background: var(--paper-soft);
  text-align: center;
  line-height: 1.15;
}
.bz-god-above .bz-god-cn { font-family:'Noto Serif SC',serif; font-size: 11px; font-weight: 600; color: var(--ink); }
.bz-god-above .bz-god-en { font-size: 8.5px; color: var(--accent-deep); letter-spacing: 0.08em; font-weight:600; }
.bz-god-above .bz-py     { font-size: 8px; color: var(--ink-mute); letter-spacing: 0.06em; }

.bz-stem, .bz-branch {
  position: relative;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 4px;
  border-bottom: 1px solid var(--line);
  background: var(--paper);
}
.bz-stem .bz-char, .bz-branch .bz-char {
  font-family: 'Cormorant Garamond','Noto Serif SC', serif;
  font-size: 38px;
  line-height: 1;
  font-weight: 500;
}
.bz-meta {
  text-align: center;
  margin-top: 4px;
  display: flex; flex-direction: column; gap: 1px;
}
.bz-py { font-size: 9.5px; letter-spacing: 0.04em; color: var(--ink-soft); }
.bz-animal { font-size: 10px; font-weight: 600; color: var(--ink); letter-spacing: 0.04em; }
.bz-elem { font-size: 8.5px; font-weight: 600; letter-spacing: 0.06em; text-transform:uppercase; }
.bz-mini-elem { font-size: 9px; font-weight: 600; }

.bz-stem.is-dm {
  background: linear-gradient(180deg, #f6ecd3 0%, var(--paper) 100%);
  box-shadow: inset 0 0 0 1px var(--accent);
}
.bz-dm-badge {
  position: absolute; top: 4px; left: 4px;
  background: var(--accent); color: #fff; font-size: 7.5px; font-weight: 700;
  padding: 1px 5px; border-radius: 2px; letter-spacing: 0.08em;
}

/* Hidden stems block */
.bz-hidden { padding: 5px 8px; display: flex; flex-direction: column; justify-content: center; gap: 2px; }
.bz-hidden-row {
  display: grid;
  grid-template-columns: 22px 1fr auto;
  align-items: center;
  gap: 5px;
  font-size: 9px;
  padding: 2px 0;
  border-bottom: 1px solid var(--line-soft);
}
.bz-hidden-row:last-child { border-bottom: 0; }
.bz-hidden-stem {
  font-family: 'Cormorant Garamond','Noto Serif SC', serif;
  font-size: 18px; line-height: 1; font-weight: 600; text-align: center;
}
.bz-hidden-info { display: flex; flex-direction: column; line-height: 1.15; }
.bz-hidden-info .bz-py { font-size: 8px; }
.bz-hidden-info .bz-mini-elem { font-size: 8px; font-family:'Noto Serif SC',serif; }
.bz-god { font-size: 9px; text-align: right; line-height: 1.15; min-width: 38px; }
.bz-god .bz-god-cn { font-family:'Noto Serif SC',serif; font-size: 10.5px; font-weight: 600; color: var(--ink); display:block; }
.bz-god .bz-god-en { font-size: 8px; color: var(--accent-deep); letter-spacing: 0.06em; font-weight:600; }

/* Narrow grids (luck + monthly): show the full hidden-stem info
   (char + pinyin + element + god) but compacted so nothing overlaps
   at ~72px column width. Natal keeps the larger default sizing. */
.bz-luck-grid .bz-hidden,
.bz-monthly-grid .bz-hidden { padding: 5px 5px; }
.bz-luck-grid .bz-hidden-row,
.bz-monthly-grid .bz-hidden-row { grid-template-columns: 15px 1fr auto; gap: 3px; }
.bz-luck-grid .bz-hidden-stem,
.bz-monthly-grid .bz-hidden-stem { font-size: 15px; }
.bz-luck-grid .bz-hidden-info,
.bz-monthly-grid .bz-hidden-info { min-width: 0; }
.bz-luck-grid .bz-hidden-info .bz-py,
.bz-monthly-grid .bz-hidden-info .bz-py,
.bz-luck-grid .bz-hidden-info .bz-mini-elem,
.bz-monthly-grid .bz-hidden-info .bz-mini-elem { font-size: 6.5px; white-space: nowrap; line-height: 1.12; }
.bz-luck-grid .bz-god,
.bz-monthly-grid .bz-god { min-width: 0; }
.bz-luck-grid .bz-god .bz-god-cn,
.bz-monthly-grid .bz-god .bz-god-cn { font-size: 9px; }
.bz-luck-grid .bz-god .bz-god-en,
.bz-monthly-grid .bz-god .bz-god-en { font-size: 6.5px; }

/* ===== Luck Pillars ========================================== */
.bz-luck { margin: 0 14px 14px; }
.bz-luck-grid {
  display: grid;
  grid-template-columns: 90px repeat(10, minmax(0, 1fr));
  background: var(--paper);
}
.bz-axis-col {
  background-color: var(--brown);
  background-image: var(--grain);
  background-size: 200px;
  background-blend-mode: soft-light;
  color: var(--accent);
  display: grid;
  grid-template-rows: 32px 32px 80px 90px 1fr;
}
.bz-axis-label-sm {
  display: flex; align-items: center; justify-content: center;
  font-size: 8.5px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-align: center;
  color: var(--on-dark-mute);
  border-bottom: 1px solid rgba(156,123,69,.16);
  padding: 6px;
  text-transform: uppercase;
}
.bz-luck-col {
  border-left: 1px solid var(--line);
  display: grid;
  grid-template-rows: 32px 32px 80px 90px 1fr;
  background: var(--paper);
}
.bz-luck-col.is-here {
  background: linear-gradient(180deg, #f7eed6 0%, #f0e4cb 100%);
  box-shadow: inset 0 0 0 1.5px var(--accent);
  z-index: 1;
}
/* let the highlight tint fill the whole column, not just the outline */
.bz-luck-col.is-here .bz-god-above,
.bz-luck-col.is-here .bz-stem,
.bz-luck-col.is-here .bz-branch { background: transparent; }
.bz-luck-age {
  display: flex; align-items: center; justify-content: center;
  background: var(--brown-soft); color: var(--on-dark); font-size: 11px; font-weight: 600;
  letter-spacing: 0.04em;
}
.bz-luck-col.is-here .bz-luck-age {
  background: var(--accent); color: #fff;
}

/* ===== Annual + Monthly ======================================= */
.bz-annual { margin: 0; }
.bz-annual-body {
  display: grid;
  grid-template-rows: auto auto auto 1fr;
  background: var(--paper);
}
.bz-monthly { margin: 0 14px 14px; }
.bz-monthly-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  background: var(--paper);
}
/* Let grid columns share width equally and never overflow/clip the page */
.bz-pillar, .bz-luck-col, .bz-month-col, .bz-axis-col, .bz-natal-axis,
.bz-stem, .bz-branch, .bz-god-above, .bz-hidden, .bz-meta { min-width: 0; }
.bz-month-col {
  border-left: 1px solid var(--line);
  display: grid;
  grid-template-rows: 26px 32px 80px 90px 1fr;
  background: var(--paper);
}
.bz-month-col:first-child { border-left: 0; }
.bz-month-label {
  display: flex; align-items: center; justify-content: center;
  background: var(--brown-soft); color: var(--on-dark);
  font-size: 9.5px; font-weight: 600; letter-spacing: 0.1em;
}

/* ===== Radar (element structure) ============================= */
.bz-radar-body {
  display: grid;
  grid-template-columns: 260px 1fr;
  align-items: center;
  padding: 18px;
  gap: 20px;
}
.bz-radar-table { display: flex; flex-direction: column; gap: 7px; }
.bz-radar-row {
  display: grid;
  grid-template-columns: 16px 1fr 50px;
  align-items: center;
  font-size: 11px;
  padding: 6px 12px;
  background: rgba(220,208,182,.24);
  border-radius: 2px;
}
.bz-radar-l { font-weight: 500; color: var(--ink); font-family:'Noto Serif SC',serif; }
.bz-radar-v { text-align: right; font-weight: 600; color: var(--accent-deep); }

/* ===== 10 Gods bars ========================================== */
.bz-gods-list { padding: 14px 16px; display: flex; flex-direction: column; gap: 7px; }
.bz-god-row {
  display: grid;
  grid-template-columns: 200px 1fr 40px;
  align-items: center;
  gap: 10px;
  font-size: 10.5px;
}
.bz-god-key { color: var(--ink); }
.bz-god-key strong {
  display: inline-block;
  width: 22px; height: 22px;
  background: var(--brown-mid);
  color: var(--accent);
  text-align: center;
  line-height: 22px;
  border-radius: 2px;
  margin-right: 8px;
  font-size: 12px;
  font-weight: 600;
  font-family: 'Noto Serif SC','Cormorant Garamond', serif;
}
.bz-god-cn-sm { color: var(--ink-mute); font-family:'Noto Serif SC',serif; font-size: 9.5px; margin-left: 4px; }
.bz-god-bar {
  background: rgba(44,38,32,.09);
  height: 8px;
  border-radius: 4px;
  overflow: hidden;
}
.bz-god-bar-fill {
  height: 100%;
  border-radius: 4px;
  background: linear-gradient(90deg, var(--accent-deep), var(--accent));
}
.bz-god-pct { text-align: right; font-weight: 600; color: var(--accent-deep); font-size: 10.5px; }

/* ===== Auxiliary Stars grid ================================== */
.bz-aux-block { display: flex; flex-direction: column; }
.bz-aux-block .bz-stars-grid { flex: 1 1 auto; align-content: stretch; grid-auto-rows: minmax(34px, 1fr); }
.bz-stars-grid {
  padding: 14px 16px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.bz-star-item {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  align-items: center;
  font-size: 10.5px;
  padding: 7px 10px;
  background: rgba(220,208,182,.2);
  border-radius: 2px;
  border-left: 2px solid transparent;
}
.bz-star-item.is-present {
  background: rgba(156,123,69,.14);
  border-left-color: var(--accent);
}
.bz-star-name { font-weight: 500; }
.bz-star-cn-sm { color: var(--ink-mute); font-family:'Noto Serif SC',serif; font-size: 9.5px; margin-left: 4px; }
.bz-star-target {
  text-align: right;
  display: flex;
  gap: 6px;
  justify-content: flex-end;
  flex-wrap: wrap;
}
.bz-branch-label {
  font-size: 11px;
  font-weight: 500;
  color: var(--ink);
  white-space: nowrap;
}
.bz-na { color: var(--ink-mute); }

/* ===== Footer ================================================ */
.bz-doc-footer {
  display: grid;
  grid-template-columns: 220px 1fr;
  align-items: center;
  gap: 24px;
  padding: 20px 30px;
  background-color: var(--brown);
  background-image: var(--grain);
  background-size: 220px;
  background-blend-mode: soft-light;
  color: var(--on-dark);
  font-size: 10px;
}
.bz-foot-brand {
  font-family: 'Cormorant Garamond', serif;
  font-size: 26px;
  letter-spacing: 0.12em;
  color: var(--on-dark);
  font-weight: 500;
}
.bz-foot-meta {
  font-size: 9px;
  color: var(--on-dark-mute);
  line-height: 1.6;
  letter-spacing: 0.02em;
}

/* ===== Responsive ============================================ */
@media (max-width: 1200px) {
  .bz-doc { width: 100%; font-size: 11px; }
  .bz-stem .bz-char, .bz-branch .bz-char { font-size: 30px; }
  .bz-gua-char { font-size: 60px; }
  .bz-star-num { font-size: 60px; }
}
@media (max-width: 900px) {
  .bz-row-3 { grid-template-columns: 1fr; }
  .bz-row-2 { grid-template-columns: 1fr; }
  .bz-luck-grid {
    grid-template-columns: 70px repeat(10, minmax(64px, 1fr));
    overflow-x: auto;
  }
  .bz-monthly-grid {
    grid-template-columns: repeat(12, minmax(64px, 1fr));
    overflow-x: auto;
  }
  .bz-stem .bz-char, .bz-branch .bz-char { font-size: 24px; }
}
@media (max-width: 600px) {
  .bz-doc { font-size: 10px; }
  .bz-ribbon-title { font-size: 26px; }
  .bz-ribbon-right-title { font-size: 14px; }
  .bz-natal-grid { grid-template-columns: 60px repeat(4, 1fr); }
  .bz-stars-grid { grid-template-columns: 1fr; }
  .bz-god-row { grid-template-columns: 130px 1fr 36px; }
  .bz-radar-body { grid-template-columns: 1fr; }
}



/* ----- TWEAK VARIANTS ----- */

/* =========================================================================
   TWEAK VARIANTS — toggled via data-* attributes on #bzDoc by the Tweaks app.
   Defaults (cream / bronze / filled / split / regular / bordered / sharp /
   muted / serif / grain) need no rules; only the alternates are defined.
   ========================================================================= */
@media print { .twk-panel, #bz-tweak-root { display:none !important; } }

/* ---- Paper theme -------------------------------------------------------- */
#bzDoc[data-theme="ivory"]{--paper:#f6f3ea;--paper-soft:#efeadd;--paper-deep:#e7dfcd;--ink:#2b2823;--ink-soft:#5f584c;--ink-mute:#9a9180;--line:#e6dece;--line-soft:#efe9db;}
#bzDoc[data-theme="sand"]{--paper:#efe6d3;--paper-soft:#e7dcc4;--paper-deep:#ddd0b4;--ink:#33291d;--ink-soft:#665641;--ink-mute:#9c8a6f;--line:#dcd0b6;--line-soft:#e4dac2;--brown:#2e2318;--brown-mid:#3f3122;--brown-soft:#4d3d2a;}
#bzDoc[data-theme="charcoal"]{--paper:#221c16;--paper-soft:#2a2219;--paper-deep:#322820;--ink:#ece3d1;--ink-soft:#c6b99f;--ink-mute:#8d8169;--line:#3a3026;--line-soft:#332a22;--brown:#15110c;--brown-mid:#241b13;--brown-soft:#2c2219;--on-dark:#efe7d5;--on-dark-mute:#b9ab92;}
#bzDoc[data-theme="charcoal"] .bz-god-bar{background:rgba(255,255,255,.09);}
#bzDoc[data-theme="charcoal"] .bz-radar-row,#bzDoc[data-theme="charcoal"] .bz-star-item{background:rgba(255,255,255,.05);}
#bzDoc[data-theme="charcoal"] .bz-detail-row:nth-child(even),#bzDoc[data-theme="charcoal"] .bz-dir-row:nth-child(even){background:rgba(255,255,255,.04);}
#bzDoc[data-theme="charcoal"] .bz-god-above{background:var(--paper-soft);}
#bzDoc[data-theme="charcoal"] .bz-stem.is-dm{background:linear-gradient(180deg,#3a2f1f 0%,var(--paper) 100%);}
#bzDoc[data-theme="charcoal"] .bz-luck-col.is-here{background:linear-gradient(180deg,#3a2f1f 0%,#2c2318 100%);}

/* ---- Title bars --------------------------------------------------------- */
#bzDoc[data-headbars="light"] .bz-block-head{background-color:var(--paper-deep);background-image:none;color:var(--ink);border-bottom:1px solid var(--accent);}
#bzDoc[data-headbars="light"] .bz-block-head .bz-cn{color:var(--accent-deep);}
#bzDoc[data-headbars="light"] .bz-block-head-sub{color:var(--ink-mute);}
#bzDoc[data-headbars="hairline"] .bz-block-head{background:transparent;background-image:none;color:var(--ink);border-bottom:1px solid var(--accent);letter-spacing:.22em;}
#bzDoc[data-headbars="hairline"] .bz-block-head .bz-cn{color:var(--accent-deep);}
#bzDoc[data-headbars="hairline"] .bz-block-head-sub{color:var(--ink-mute);}

/* ---- Header layout ------------------------------------------------------ */
#bzDoc[data-headerlayout="centered"] .bz-doc-header{grid-template-columns:1fr;}
#bzDoc[data-headerlayout="centered"] .bz-ribbon-left{border-right:none;border-bottom:1px solid rgba(156,123,69,.3);text-align:center;padding:24px 26px 18px;}
#bzDoc[data-headerlayout="centered"] .bz-ribbon-right{justify-content:center;padding:15px 30px;}
#bzDoc[data-headerlayout="centered"] .bz-ribbon-right::after{display:none;}
#bzDoc[data-headerlayout="centered"] .bz-ribbon-right-title{letter-spacing:.3em;}

/* ---- Density ------------------------------------------------------------ */
#bzDoc[data-density="compact"] .bz-row{gap:8px;padding:8px;}
#bzDoc[data-density="compact"] .bz-col-stack{gap:8px;}
#bzDoc[data-density="compact"] .bz-detail-row,#bzDoc[data-density="compact"] .bz-dir-row{padding:4px 12px;}
#bzDoc[data-density="compact"] .bz-block-head{padding:6px 12px;}
#bzDoc[data-density="compact"] .bz-natal,#bzDoc[data-density="compact"] .bz-luck,#bzDoc[data-density="compact"] .bz-monthly{margin:8px;}
#bzDoc[data-density="compact"] .bz-gods-list,#bzDoc[data-density="compact"] .bz-radar-body,#bzDoc[data-density="compact"] .bz-stars-grid{padding:8px 12px;}
#bzDoc[data-density="compact"] .bz-gods-list{gap:5px;}
#bzDoc[data-density="spacious"] .bz-row{gap:22px;padding:22px;}
#bzDoc[data-density="spacious"] .bz-col-stack{gap:22px;}
#bzDoc[data-density="spacious"] .bz-detail-row,#bzDoc[data-density="spacious"] .bz-dir-row{padding:10px 18px;}
#bzDoc[data-density="spacious"] .bz-block-head{padding:13px 18px;}
#bzDoc[data-density="spacious"] .bz-natal,#bzDoc[data-density="spacious"] .bz-luck,#bzDoc[data-density="spacious"] .bz-monthly{margin:22px;}
#bzDoc[data-density="spacious"] .bz-gods-list,#bzDoc[data-density="spacious"] .bz-radar-body,#bzDoc[data-density="spacious"] .bz-stars-grid{padding:18px 22px;}
#bzDoc[data-density="spacious"] .bz-gods-list{gap:10px;}

/* ---- Card treatment ----------------------------------------------------- */
#bzDoc[data-cards="divided"] .bz-block{border:none;border-radius:0;}
#bzDoc[data-cards="divided"] .bz-row,#bzDoc[data-cards="divided"] .bz-col-stack{gap:24px;}
#bzDoc[data-cards="framed"] .bz-block{border:1px solid var(--line);outline:1px solid var(--accent);outline-offset:3px;}
#bzDoc[data-cards="framed"] .bz-row,#bzDoc[data-cards="framed"] .bz-col-stack{gap:18px;}

/* ---- Corners ------------------------------------------------------------ */
#bzDoc[data-corners="rounded"]{border-radius:14px;}
#bzDoc[data-corners="rounded"] .bz-block{border-radius:10px;}

/* ---- Element color coding ----------------------------------------------- */
#bzDoc[data-elements="mono"] .el-wood,#bzDoc[data-elements="mono"] .el-fire,#bzDoc[data-elements="mono"] .el-earth,#bzDoc[data-elements="mono"] .el-metal,#bzDoc[data-elements="mono"] .el-water{color:var(--ink)!important;}
#bzDoc[data-elements="mono"] .bz-radar-dot{background:var(--ink-mute)!important;}
#bzDoc[data-elements="mono"] .bz-radar-label{fill:var(--ink)!important;}
#bzDoc[data-elements="mono"] .bz-name-strip .el-wood,#bzDoc[data-elements="mono"] .bz-name-strip .el-fire,#bzDoc[data-elements="mono"] .bz-name-strip .el-earth,#bzDoc[data-elements="mono"] .bz-name-strip .el-metal,#bzDoc[data-elements="mono"] .bz-name-strip .el-water{color:var(--on-dark)!important;}
#bzDoc[data-elements="classic"] .el-wood{color:#357a2f!important;}
#bzDoc[data-elements="classic"] .el-fire{color:#b23b2b!important;}
#bzDoc[data-elements="classic"] .el-earth{color:#ad7c20!important;}
#bzDoc[data-elements="classic"] .el-metal{color:#586770!important;}
#bzDoc[data-elements="classic"] .el-water{color:#245f93!important;}
#bzDoc[data-elements="classic"] .bz-radar-dot.el-wood{background:#357a2f!important;}
#bzDoc[data-elements="classic"] .bz-radar-dot.el-fire{background:#b23b2b!important;}
#bzDoc[data-elements="classic"] .bz-radar-dot.el-earth{background:#ad7c20!important;}
#bzDoc[data-elements="classic"] .bz-radar-dot.el-metal{background:#586770!important;}
#bzDoc[data-elements="classic"] .bz-radar-dot.el-water{background:#245f93!important;}
#bzDoc[data-elements="classic"] .bz-radar-label.el-wood{fill:#357a2f!important;}
#bzDoc[data-elements="classic"] .bz-radar-label.el-fire{fill:#b23b2b!important;}
#bzDoc[data-elements="classic"] .bz-radar-label.el-earth{fill:#ad7c20!important;}
#bzDoc[data-elements="classic"] .bz-radar-label.el-metal{fill:#586770!important;}
#bzDoc[data-elements="classic"] .bz-radar-label.el-water{fill:#245f93!important;}

/* ---- Character typeface ------------------------------------------------- */
#bzDoc[data-chartype="sans"] .bz-char,#bzDoc[data-chartype="sans"] .bz-gua-char,#bzDoc[data-chartype="sans"] .bz-hidden-stem{font-family:'Noto Sans SC',sans-serif!important;font-weight:600;}
#bzDoc[data-chartype="brush"] .bz-char,#bzDoc[data-chartype="brush"] .bz-gua-char{font-family:'Ma Shan Zheng',cursive!important;font-weight:400;}

/* ---- Paper grain -------------------------------------------------------- */
#bzDoc[data-grain="off"]::before{display:none;}
#bzDoc[data-grain="off"] .bz-doc-header,#bzDoc[data-grain="off"] .bz-block-head,#bzDoc[data-grain="off"] .bz-natal-axis,#bzDoc[data-grain="off"] .bz-axis-col,#bzDoc[data-grain="off"] .bz-doc-footer{background-image:none!important;}
