.surface-shell { width: 100%; }
.surface-node { position: relative; min-width: 0; }
.surface-section { display: grid; gap: 16px; }
.surface-section-head { display: grid; gap: 7px; padding-right: 190px; }
.surface-section-head h2 { margin: 0; color: var(--ink); font-size: 21px; line-height: 1.3; letter-spacing: -.018em; }
.surface-section-head p { max-width: 66ch; color: var(--ink-faint); font-size: 12px; line-height: 1.6; }
.surface-section-node + .surface-section-node { margin-top: 26px; padding-top: 26px; border-top: 1px solid var(--line); }
.surface-columns { display: grid; gap: 28px; }
.surface-columns-2 { grid-template-columns: repeat(2,minmax(0,1fr)); }
.surface-columns-3 { grid-template-columns: repeat(3,minmax(0,1fr)); }
.surface-columns > .surface-section-node + .surface-section-node { margin-top: 0; padding-top: 0; border-top: 0; }
.surface-columns-2 > .surface-section-node + .surface-section-node {
  padding-left: 28px; border-left: 1px solid var(--line);
}
.surface-prose { display: grid; gap: 12px; max-width: 72ch; color: var(--ink-soft); font-size: 15px; line-height: 1.78; }
.surface-prose p { margin: 0; }
.surface-prose ol, .surface-prose ul { display: grid; gap: 8px; margin: 0; padding-left: 22px; }
.surface-prose.surface-heading, .surface-prose.surface-title { color: var(--ink); font-size: clamp(25px,3vw,36px); font-weight: 700; line-height: 1.18; letter-spacing: -.02em; }
.surface-prose.surface-subheading { color: var(--ink); font-size: 19px; font-weight: 700; }
.surface-prose.surface-emphasis { color: var(--ink); font-size: 16px; font-weight: 650; }
.surface-prose.surface-quote { padding: 15px 17px; border-radius: 14px; background: var(--surface-muted); }
.agent-composer[data-phase="report"] .surface-prose:not(.surface-heading):not(.surface-title):not(.surface-subheading) {
  font-family: "AEON Söhne", "AEON XuanSong", "AEON YuanLongHei", sans-serif;
  font-size: 16px;
  line-height: 1.9;
}
.surface-divider { height: 1px; margin: 5px 0; border: 0; background: var(--line); }

.surface-question-group { display: grid; gap: 10px; }
.surface-question {
  display: grid; grid-template-columns: minmax(150px,.55fr) minmax(280px,1fr); gap: 22px; align-items: center;
  padding: 16px 0; border-bottom: 1px solid var(--line); border-radius: 0; background: transparent;
}
.surface-question-head { display: grid; gap: 6px; }
.surface-question-head label, .surface-question-head h3,
.surface-question > .question-prompt { margin: 0; font-size: 14px; font-weight: 700; line-height: 1.5; }
.surface-question-head p, .surface-question > .surface-note { color: var(--ink-faint); font-size: 11px; line-height: 1.5; }
.surface-question > .surface-input { min-width: 0; }
.surface-required, .required-mark { margin-left: 3px; color: var(--red); }
.surface-input input:not([type="range"]), .surface-input textarea, .surface-input select {
  width: 100%; min-height: 48px; padding: 12px 14px; border: 1px solid transparent;
  border-radius: 11px; outline: 0; background: var(--surface-muted); line-height: 1.5;
}
.surface-input textarea { min-height: 104px; resize: vertical; }
.surface-input input:focus, .surface-input textarea:focus, .surface-input select:focus { border-color: var(--blue); box-shadow: var(--focus); }
.surface-input.has-error input, .surface-input.has-error textarea, .surface-input.has-error [data-choice-group] { border-color: var(--red); }
.field-error { min-height: 16px; padding-top: 5px; color: var(--red); font-size: 11px; }
.surface-input > label, .pseudo-label { display: block; margin-bottom: 8px; color: var(--ink-soft); font-size: 11px; font-weight: 650; }
.surface-question:not(.surface-question-inline) > .surface-input > label,
.surface-question:not(.surface-question-inline) > .surface-input > .pseudo-label {
  position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0);
}
.surface-question-inline { display: block; padding: 13px 0; }
.surface-question-inline > .surface-input > label,
.surface-question-inline > .surface-input > .pseudo-label {
  position: static; width: auto; height: auto; margin: 0 0 8px; overflow: visible; clip: auto;
  color: var(--ink); font-size: 12px; font-weight: 650;
}
.surface-choice-row, .surface-choices { display: flex; flex-wrap: wrap; gap: 7px; }
.surface-choice {
  min-height: 40px; padding: 0 15px; border-radius: var(--pill); background: var(--surface);
  color: var(--ink-soft); font-size: 12px; font-weight: 650; box-shadow: inset 0 0 0 1px var(--line-strong);
}
.surface-choice:hover { color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink); }
.surface-choice.is-selected { background: var(--black); color: #fff; box-shadow: none; }
.surface-scale { display: grid; gap: 9px; }
.surface-scale input { width: 100%; accent-color: var(--black); }
.surface-scale-row { display: grid; grid-template-columns: 1fr auto 1fr; gap: 10px; color: var(--ink-faint); font-size: 10px; }
.surface-scale-row output { min-width: 45px; padding: 4px 9px; border-radius: var(--pill); background: var(--surface); color: var(--ink); text-align: center; }
.surface-scale-row span:last-child { text-align: right; }
.surface-range-fields { display: grid; grid-template-columns: 1fr auto 1fr; gap: 9px; align-items: center; }
.surface-ranking { display: grid; gap: 6px; }
.ranking-item { display: grid; grid-template-columns: 28px 1fr auto; align-items: center; padding: 9px; border-radius: 10px; background: var(--surface); }
.rank-order { display: grid; width: 22px; height: 22px; place-items: center; border-radius: 50%; background: var(--black); color: #fff; font-size: 10px; }
.rank-controls button { width: 30px; height: 30px; border-radius: 8px; background: var(--surface-muted); }

.surface-footer {
  display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 8px 18px;
  margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--line);
}
.surface-actions-grid, .agent-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.surface-actions-grid { grid-column: 2; grid-row: 1; }
.agent-actions { grid-column: 1; grid-row: 1; justify-content: flex-start; }
.surface-lineage { grid-column: 1/-1; }
.surface-action-pill {
  min-height: 44px; padding: 0 20px; border-radius: var(--pill); background: var(--black); color: #fff; font-weight: 650;
}
.surface-action-pill:hover { background: var(--black-hover); }
.surface-action-pill[data-kind="secondary"], .surface-action-pill[data-kind="quiet"] {
  background: var(--surface-muted); color: var(--ink); box-shadow: inset 0 0 0 1px var(--line);
}
.surface-lineage { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; color: var(--ink-faint); font-size: 11px; }
.surface-branch-banner { margin-bottom: 14px; }
.loading-line .status-dot { animation: breathe 1.2s ease-in-out infinite alternate; }
@keyframes breathe { to { transform: scale(1.45); opacity: .5; } }

.surface-node-tools { position: absolute; z-index: 2; right: 0; top: 0; display: flex; gap: 5px; opacity: 0; transition: opacity 120ms ease; }
.surface-node:hover > .surface-node-tools, .surface-node:focus-within > .surface-node-tools { opacity: 1; }
.surface-node-tools button { padding: 6px 9px; border-radius: 8px; background: var(--surface-muted); color: var(--ink-soft); font-size: 10px; }
.surface-scoreGrid { display: grid; grid-template-columns: repeat(auto-fit,minmax(140px,1fr)); gap: 8px; }
.metric { display: grid; min-height: 112px; align-content: space-between; padding: 15px; border-radius: 14px; background: var(--surface-muted); }
.metric span, .metric small { color: var(--ink-faint); font-size: 10px; }
.metric strong { font-size: 30px; font-weight: 740; letter-spacing: -.04em; }
.surface-timeline { display: grid; gap: 7px; }
.timeline-item { display: grid; grid-template-columns: 88px 1fr 46px; gap: 14px; padding: 14px; border-radius: 13px; background: var(--surface-muted); }
.timeline-item > b { color: var(--ink-faint); font-size: 10px; }
.timeline-item p { font-size: 13px; line-height: 1.6; }
.timeline-score { color: var(--blue); font-size: 17px; font-weight: 700; text-align: right; }
.surface-list h3, .surface-comparison h3, .surface-table h3, .surface-chart h3 { margin: 0 0 12px; font-size: 18px; }
.surface-list ul, .surface-actions ul { margin: 0; padding: 0; list-style: none; }
.surface-list li, .surface-actions li { display: grid; grid-template-columns: minmax(90px,.35fr) 1fr; gap: 6px 15px; padding: 13px 0; border-bottom: 1px solid var(--line); line-height: 1.55; }
.surface-list li small, .surface-actions li small { grid-column: 2; color: var(--ink-faint); }
.surface-callout { padding: 16px 18px; border-radius: 14px; background: var(--blue-soft); }
.surface-callout[data-tone="warning"], .surface-callout[data-tone="risk"], .surface-callout[data-tone="caution"] { background: var(--red-soft); }
.surface-callout h3 { margin: 0 0 6px; font-size: 15px; }
.surface-callout p { color: var(--ink-soft); line-height: 1.65; }
.surface-comparison table, .surface-table table { width: 100%; border-collapse: separate; border-spacing: 0; overflow: hidden; border-radius: 14px; background: var(--surface-muted); }
.surface-comparison th, .surface-comparison td, .surface-table th, .surface-table td { padding: 12px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.surface-comparison th, .surface-table th { color: var(--ink-faint); font-size: 10px; }
.surface-chart-row { display: grid; grid-template-columns: minmax(90px,.3fr) 1fr 44px; gap: 12px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--line); }
.surface-chart-track { height: 8px; border-radius: var(--pill); background: var(--surface-muted); overflow: hidden; }
.surface-chart-fill { height: 100%; border-radius: var(--pill); background: var(--blue); }
.surface-chart-value { font-size: 11px; font-weight: 700; text-align: right; }
.chart-list { display: grid; gap: 8px; }
.chart-row { display: grid; grid-template-columns: minmax(96px,.35fr) 1fr 40px; gap: 12px; align-items: center; min-height: 34px; }
.chart-row > span { color: var(--ink-soft); font-size: 12px; }
.chart-row > strong { font-size: 11px; text-align: right; }
.chart-track, .element-row progress {
  width: 100%; height: 7px; border: 0; border-radius: var(--pill); overflow: hidden; background: var(--surface-pressed);
}
.chart-track::-webkit-progress-bar, .element-row progress::-webkit-progress-bar { background: var(--surface-pressed); }
.chart-track::-webkit-progress-value, .element-row progress::-webkit-progress-value { border-radius: var(--pill); background: var(--blue); }
.chart-track::-moz-progress-bar, .element-row progress::-moz-progress-bar { border-radius: var(--pill); background: var(--blue); }

.data-block-head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.data-block-head h3 { margin: 0; color: var(--ink); font-size: 18px; letter-spacing: -.012em; }
.data-block-head > span { color: var(--ink-faint); font-size: 10px; }
.bazi-chart, .element-balance, .relation-matrix { padding: 20px; border-radius: 16px; background: var(--surface-muted); }
.bazi-subjects, .element-subjects { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.bazi-subject, .element-subject { min-width: 0; padding: 16px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.bazi-identity, .element-identity { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 15px; }
.bazi-identity > div { display: grid; gap: 3px; min-width: 0; }
.bazi-identity strong, .element-identity strong { font-size: 14px; }
.bazi-identity span, .element-identity span { color: var(--ink-faint); font-size: 10px; line-height: 1.45; }
.bazi-identity b { flex: 0 0 auto; padding: 5px 9px; border-radius: var(--pill); background: var(--black); color: #fff; font-size: 10px; font-weight: 650; }
.bazi-pillars { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border: 1px solid var(--line); border-radius: 11px; overflow: hidden; }
.bazi-pillar { display: grid; justify-items: center; gap: 7px; min-width: 0; padding: 11px 5px; text-align: center; }
.bazi-pillar + .bazi-pillar { border-left: 1px solid var(--line); }
.bazi-pillar small, .bazi-pillar > span { color: var(--ink-faint); font-size: 9px; }
.bazi-pillar strong { display: grid; gap: 1px; font-size: 21px; line-height: 1.06; }
.bazi-pillar em { color: var(--ink-soft); font-size: 10px; font-style: normal; }
.bazi-subject > p, .element-subject > p { margin-top: 12px; color: var(--ink-faint); font-size: 10px; line-height: 1.55; }
.element-bars { display: grid; gap: 9px; }
.element-row { display: grid; grid-template-columns: 18px 1fr 28px; gap: 9px; align-items: center; }
.element-row b { font-size: 11px; }
.element-row span { color: var(--ink-faint); font-size: 10px; text-align: right; }
.element-subject dl { margin: 14px 0 0; padding-top: 12px; border-top: 1px solid var(--line); }
.element-subject dl > div { display: flex; justify-content: space-between; gap: 12px; font-size: 11px; }
.element-subject dt { color: var(--ink-faint); }
.element-subject dd { margin: 0; color: var(--ink); font-weight: 650; }
.relation-rows { display: grid; }
.relation-row { display: grid; grid-template-columns: minmax(120px,.32fr) 1fr minmax(110px,.3fr); gap: 18px; align-items: start; padding: 14px 0; border-top: 1px solid var(--line); }
.relation-row:first-child { border-top: 0; padding-top: 0; }
.relation-row:last-child { padding-bottom: 0; }
.relation-row > div { display: grid; gap: 4px; }
.relation-row small, .relation-row > span { color: var(--ink-faint); font-size: 10px; line-height: 1.5; }
.relation-row strong { font-size: 13px; line-height: 1.45; }
.relation-row p { color: var(--ink-soft); font-size: 12px; line-height: 1.65; }

.ten-god-profile, .luck-cycles, .annual-matrix, .ziwei-palace, .hexagram-view, .qimen-board, .trend-curve, .energy-flow {
  padding: 20px; border-radius: 16px; background: var(--surface-muted);
}
.ten-god-subjects { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.ten-god-subject h4 { margin: 0 0 12px; font-size: 14px; }
.ten-god-list { display: grid; }
.ten-god-row { display: grid; grid-template-columns: minmax(76px,.3fr) 1fr; gap: 7px 12px; padding: 10px 0; border-top: 1px solid var(--line); }
.ten-god-row:first-child { border-top: 0; }
.ten-god-row > div { display: grid; }
.ten-god-row strong { font-size: 12px; }
.ten-god-row span, .ten-god-row p, .data-note { color: var(--ink-faint); font-size: 10px; line-height: 1.5; }
.ten-god-row p { grid-column: 2; }
.ten-god-row progress { width: 100%; height: 6px; align-self: center; border: 0; border-radius: var(--pill); overflow: hidden; }
.ten-god-row progress::-webkit-progress-bar { background: var(--surface-pressed); }
.ten-god-row progress::-webkit-progress-value { background: var(--black); }
.ten-god-row progress::-moz-progress-bar { background: var(--black); }
.data-note { margin-top: 10px; }

.luck-cycles { overflow: hidden; }
.luck-subject + .luck-subject { margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--line); }
.luck-subject-head { display: flex; justify-content: space-between; gap: 16px; margin-bottom: 11px; }
.luck-subject-head strong { font-size: 13px; }
.luck-subject-head span { color: var(--ink-faint); font-size: 10px; }
.luck-track { display: grid; grid-auto-columns: minmax(118px,1fr); grid-auto-flow: column; gap: 1px; overflow-x: auto; border: 1px solid var(--line); border-radius: 12px; background: var(--line); scroll-snap-type: x proximity; }
.luck-cycle { display: grid; align-content: start; min-height: 150px; padding: 13px; background: var(--surface); scroll-snap-align: start; }
.luck-cycle small, .luck-cycle span { color: var(--ink-faint); font-size: 9px; }
.luck-cycle strong { margin: 8px 0 3px; font-size: 21px; }
.luck-cycle b { margin-top: 12px; font-size: 11px; }
.luck-cycle p { margin-top: 5px; color: var(--ink-soft); font-size: 10px; line-height: 1.45; }

.annual-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(116px,1fr)); gap: 8px; }
.annual-cell { position: relative; min-height: 154px; padding: 13px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); overflow: hidden; }
.annual-cell::after { position: absolute; right: 0; bottom: 0; left: 0; height: calc(var(--annual-score) * .04px); content: ""; background: var(--blue); opacity: .9; }
.annual-cell > div { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.annual-cell > div strong { font-size: 15px; }
.annual-cell > div span, .annual-cell i { color: var(--ink-faint); font-size: 9px; font-style: normal; }
.annual-cell > b { display: block; margin-top: 17px; font-size: 12px; }
.annual-cell ul { display: grid; gap: 3px; margin: 8px 0 22px; padding: 0; color: var(--ink-soft); font-size: 10px; list-style: none; }
.annual-cell i { position: absolute; right: 13px; bottom: 9px; z-index: 1; }

.palace-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1px; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: var(--line); }
.palace-cell { display: grid; align-content: start; min-height: 145px; padding: 12px; background: var(--surface); }
.palace-cell header, .qimen-cell header { display: flex; justify-content: space-between; gap: 8px; }
.palace-cell header strong { font-size: 12px; }
.palace-cell header span, .palace-cell small { color: var(--ink-faint); font-size: 9px; }
.palace-stars { display: flex; flex-wrap: wrap; gap: 4px; margin: 18px 0 8px; }
.palace-stars b { padding: 3px 6px; border-radius: 7px; background: var(--black); color: #fff; font-size: 9px; }
.palace-cell p { margin-top: 9px; color: var(--ink-soft); font-size: 10px; line-height: 1.45; }

.hexagram-pair { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.hexagram-card { display: grid; grid-template-columns: minmax(100px,.45fr) 1fr; gap: 20px; align-items: center; padding: 18px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.hexagram-card header { display: grid; gap: 5px; }
.hexagram-card header span, .hexagram-card header small { color: var(--ink-faint); font-size: 9px; }
.hexagram-card header strong { font-size: 20px; }
.hex-lines { display: flex; flex-direction: column; gap: 8px; }
.hex-line { position: relative; display: flex; gap: 10px; min-height: 8px; padding-right: 54px; }
.hex-line > span { flex: 1; height: 8px; border-radius: 2px; background: var(--black); }
.hex-line small { position: absolute; right: 0; width: 46px; color: var(--ink-faint); font-size: 9px; text-align: right; }
.hex-line.is-changing > span { background: var(--blue); }
.hexagram-reading { max-width: 72ch; margin-top: 16px; color: var(--ink-soft); font-size: 12px; line-height: 1.7; }

.qimen-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1px; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: var(--line); }
.qimen-cell { position: relative; display: grid; min-height: 142px; padding: 12px; background: var(--surface); }
.qimen-cell header strong { font-size: 12px; }
.qimen-cell header span, .qimen-cell > small { color: var(--ink-faint); font-size: 9px; }
.qimen-cell > div { display: flex; flex-wrap: wrap; gap: 5px; margin: 15px 0 8px; }
.qimen-cell > div b { padding: 4px 6px; border-radius: 7px; background: var(--surface-pressed); font-size: 10px; }
.qimen-cell p { align-self: end; margin-top: 8px; color: var(--ink-soft); font-size: 10px; line-height: 1.45; }

.trend-plot { padding: 14px 14px 10px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); overflow-x: auto; }
.trend-plot svg { display: block; width: 100%; min-width: 520px; height: auto; }
.trend-midline { stroke: var(--line); stroke-width: 1; stroke-dasharray: 4 5; }
.trend-line { fill: none; stroke: var(--blue); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.trend-point { fill: var(--surface); stroke: var(--blue); stroke-width: 3; }
.trend-labels { display: grid; grid-auto-columns: minmax(62px,1fr); grid-auto-flow: column; min-width: 520px; }
.trend-labels span { display: grid; gap: 2px; text-align: center; }
.trend-labels b { font-size: 9px; }
.trend-labels small { color: var(--ink-faint); font-size: 9px; }
.trend-notes { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px 18px; margin-top: 12px; }
.trend-notes p { display: grid; grid-template-columns: 72px 1fr; gap: 10px; color: var(--ink-soft); font-size: 10px; line-height: 1.5; }
.trend-notes strong { color: var(--ink); }

.flow-nodes { display: grid; grid-template-columns: repeat(auto-fit,minmax(105px,1fr)); gap: 8px; margin-bottom: 18px; }
.flow-node { display: grid; grid-template-columns: 1fr auto; gap: 3px 8px; padding: 11px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.flow-node strong { font-size: 12px; }
.flow-node span { grid-column: 1; color: var(--ink-faint); font-size: 9px; }
.flow-node b { grid-column: 2; grid-row: 1/3; align-self: center; font-size: 17px; }
.flow-links { display: grid; }
.flow-link { display: grid; grid-template-columns: minmax(80px,.25fr) minmax(120px,1fr) minmax(80px,.25fr); gap: 10px; align-items: center; padding: 10px 0; border-top: 1px solid var(--line); }
.flow-link > strong { font-size: 11px; }
.flow-link > strong:last-of-type { text-align: right; }
.flow-link > span { position: relative; display: grid; place-items: center; min-height: 24px; }
.flow-link > span i { position: absolute; right: 0; left: 0; height: 1px; background: var(--line-strong); }
.flow-link > span i::after { position: absolute; right: 0; top: -3px; width: 7px; height: 7px; border-top: 1px solid var(--line-strong); border-right: 1px solid var(--line-strong); content: ""; transform: rotate(45deg); }
.flow-link > span b { z-index: 1; padding: 2px 7px; border-radius: var(--pill); background: var(--surface-muted); color: var(--ink-soft); font-size: 9px; }
.flow-link > small { grid-column: 2; color: var(--ink-faint); font-size: 9px; text-align: center; }

.hidden-stems, .nayin-map, .shensha-map, .kinship-map, .auspicious-calendar,
.direction-compass, .fengshui-sectors, .name-structure, .life-stage-bands,
.scenario-paths, .uncertainty-ledger {
  padding: 20px; border-radius: 16px; background: var(--surface-muted);
}
.stem-subject + .stem-subject, .nayin-subject + .nayin-subject, .shensha-subject + .shensha-subject {
  margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--line);
}
.stem-subject > h4, .shensha-subject > h4 { margin: 0 0 12px; font-size: 13px; }
.stem-pillars { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }
.stem-pillar { overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.stem-pillar > header { display: flex; align-items: baseline; justify-content: space-between; padding: 11px 12px; border-bottom: 1px solid var(--line); }
.stem-pillar > header span { color: var(--ink-faint); font-size: 9px; }
.stem-pillar > header strong { font-size: 18px; }
.stem-layers { display: grid; gap: 1px; padding: 8px; background: var(--line); }
.stem-layer { position: relative; display: grid; grid-template-columns: 24px 1fr; gap: 2px 8px; min-height: 50px; padding: 8px; background: var(--surface); overflow: hidden; }
.stem-layer::before { position: absolute; left: 0; bottom: 0; width: 2px; height: var(--layer-weight); content: ""; background: var(--blue); }
.stem-layer strong { grid-row: 1/3; align-self: center; font-size: 17px; }
.stem-layer span { font-size: 10px; font-weight: 650; }
.stem-layer small { color: var(--ink-faint); font-size: 9px; }

.nayin-name { display: flex; justify-content: space-between; gap: 16px; margin-bottom: 10px; }
.nayin-name strong { font-size: 13px; }
.nayin-name span { color: var(--ink-faint); font-size: 10px; }
.nayin-track { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.nayin-item { position: relative; display: grid; grid-template-columns: 26px 1fr auto; gap: 5px 9px; min-height: 144px; padding: 14px; }
.nayin-item + .nayin-item { border-left: 1px solid var(--line); }
.nayin-item > i { grid-row: 1/4; color: var(--ink-faint); font-size: 9px; font-style: normal; }
.nayin-item > div { display: grid; }
.nayin-item small, .nayin-item em { color: var(--ink-faint); font-size: 9px; font-style: normal; }
.nayin-item > b { align-self: center; font-size: 12px; }
.nayin-item p { grid-column: 2/4; align-self: end; color: var(--ink-soft); font-size: 10px; line-height: 1.5; }

.shensha-lanes { display: grid; gap: 8px; }
.shensha-lane { display: grid; grid-template-columns: 90px 1fr; gap: 12px; padding-top: 8px; border-top: 1px solid var(--line); }
.shensha-lane > header { display: flex; align-items: baseline; justify-content: space-between; padding: 8px 0; }
.shensha-lane > header span { font-size: 11px; font-weight: 650; }
.shensha-lane > header b { color: var(--ink-faint); font-size: 9px; }
.shensha-lane > div { display: grid; grid-template-columns: repeat(auto-fit,minmax(180px,1fr)); gap: 6px; }
.shensha-lane article { position: relative; display: grid; grid-template-columns: 1fr auto; gap: 5px 10px; padding: 11px 12px; border-radius: 10px; background: var(--surface); }
.shensha-lane article::before { position: absolute; top: 11px; left: 0; width: 2px; height: 18px; content: ""; background: var(--line-strong); }
.shensha-lane article[data-tone="positive"]::before { background: var(--blue); }
.shensha-lane article[data-tone="caution"]::before { background: var(--red); }
.shensha-lane strong { font-size: 11px; }
.shensha-lane small, .shensha-lane em { color: var(--ink-faint); font-size: 9px; font-style: normal; }
.shensha-lane p { grid-column: 1/3; color: var(--ink-soft); font-size: 10px; line-height: 1.45; }
.shensha-lane em { grid-column: 1/3; }

.kinship-network { display: grid; grid-template-columns: 122px 1fr; gap: 10px; align-items: stretch; }
.kinship-center { display: grid; place-content: center; justify-items: center; min-height: 160px; border-radius: 50%; background: var(--black); color: #fff; aspect-ratio: 1; }
.kinship-center small { color: rgba(255,255,255,.55); font-size: 9px; }
.kinship-center strong { margin-top: 4px; font-size: 17px; }
.kinship-members { display: grid; grid-template-columns: repeat(auto-fit,minmax(150px,1fr)); gap: 7px; }
.kinship-members article { display: grid; grid-template-columns: 1fr auto; gap: 6px 8px; padding: 12px; border: 1px solid var(--line); border-radius: 11px; background: var(--surface); }
.kinship-members article > div { display: grid; }
.kinship-members strong { font-size: 11px; }
.kinship-members span, .kinship-members b { color: var(--ink-faint); font-size: 9px; }
.kinship-members p { grid-column: 1/3; color: var(--ink-soft); font-size: 10px; line-height: 1.45; }
.kinship-links { display: grid; margin-top: 14px; border-top: 1px solid var(--line); }
.kinship-links > div { display: grid; grid-template-columns: minmax(70px,.25fr) 1fr minmax(70px,.25fr); gap: 10px; align-items: center; padding: 9px 0; border-bottom: 1px solid var(--line); }
.kinship-links strong { font-size: 10px; }
.kinship-links strong:last-child { text-align: right; }
.kinship-links span { display: grid; grid-template-columns: minmax(30px,var(--link-strength)) 1fr; align-items: center; gap: 8px; color: var(--ink-faint); font-size: 9px; }
.kinship-links i { height: 2px; background: var(--blue); }

.calendar-week, .calendar-days { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); }
.calendar-week { padding: 0 5px 7px; color: var(--ink-faint); font-size: 9px; text-align: center; }
.calendar-days { gap: 1px; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: var(--line); }
.calendar-day { position: relative; display: grid; align-content: start; min-height: 170px; padding: 10px; background: var(--surface); overflow: hidden; }
.calendar-day header { display: flex; justify-content: space-between; gap: 5px; }
.calendar-day header strong { font-size: 14px; }
.calendar-day header span, .calendar-day i { color: var(--ink-faint); font-size: 8px; font-style: normal; }
.calendar-day > b { margin-top: 13px; font-size: 10px; }
.calendar-day dl { display: grid; gap: 5px; margin: 8px 0 0; font-size: 9px; }
.calendar-day dl > div { display: grid; grid-template-columns: 15px 1fr; gap: 4px; }
.calendar-day dt { color: var(--ink-faint); }
.calendar-day dd { margin: 0; color: var(--ink-soft); }
.calendar-day p { margin-top: 9px; color: var(--ink-faint); font-size: 8px; line-height: 1.4; }
.calendar-day i { position: absolute; right: 9px; bottom: 8px; }

.compass-layout { display: grid; grid-template-columns: minmax(250px,.75fr) 1fr; gap: 22px; align-items: center; }
.compass-plot { display: grid; place-items: center; min-height: 280px; border-radius: 50%; background: var(--surface); }
.compass-plot svg { width: min(100%,280px); overflow: visible; }
.compass-ring, .compass-spoke { fill: none; stroke: var(--line-strong); stroke-width: 1; }
.compass-shape { fill: color-mix(in srgb,var(--blue) 14%,transparent); stroke: var(--blue); stroke-width: 2; stroke-linejoin: round; }
.compass-center { fill: var(--black); }
.compass-plot text { fill: var(--ink-faint); font-size: 9px; }
.compass-plot .compass-center-text { fill: #fff; font-size: 10px; }
.compass-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; overflow: hidden; border-radius: 12px; background: var(--line); }
.compass-list article { display: grid; grid-template-columns: 22px 1fr; gap: 4px 9px; min-height: 92px; padding: 11px; background: var(--surface); }
.compass-list > article > b { grid-row: 1/4; font-size: 15px; }
.compass-list article > div { display: grid; }
.compass-list strong { font-size: 10px; }
.compass-list span, .compass-list small { color: var(--ink-faint); font-size: 8px; }
.compass-list p { color: var(--ink-soft); font-size: 9px; }

.fengshui-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1px; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: var(--line); }
.fengshui-grid article { display: grid; align-content: start; min-height: 160px; padding: 12px; background: var(--surface); }
.fengshui-grid header { display: grid; grid-template-columns: 1fr auto; gap: 2px 8px; }
.fengshui-grid header small { color: var(--ink-faint); font-size: 8px; }
.fengshui-grid header b { grid-column: 1; font-size: 12px; }
.fengshui-grid header span { grid-column: 2; grid-row: 1/3; align-self: center; padding: 3px 6px; border-radius: var(--pill); background: var(--surface-pressed); font-size: 8px; }
.fengshui-grid > article > strong { margin-top: 18px; font-size: 11px; }
.fengshui-grid p { margin-top: 5px; color: var(--ink-soft); font-size: 10px; line-height: 1.45; }
.fengshui-grid ul { display: flex; flex-wrap: wrap; gap: 4px; margin: auto 0 0; padding: 12px 0 0; list-style: none; }
.fengshui-grid li { padding: 3px 6px; border-radius: 6px; background: var(--blue-soft); color: var(--blue); font-size: 8px; }

.name-layout { display: grid; grid-template-columns: minmax(190px,.55fr) 1fr; gap: 14px; }
.name-characters { display: grid; align-content: start; padding: 16px; border-radius: 12px; background: var(--black); color: #fff; }
.name-characters > small { color: rgba(255,255,255,.48); font-size: 9px; }
.name-characters > div { display: flex; gap: 8px; margin: 20px 0; }
.name-characters article { display: grid; justify-items: center; flex: 1; padding: 12px 5px; border: 1px solid rgba(255,255,255,.16); border-radius: 10px; }
.name-characters article strong { font-size: 28px; font-weight: 590; }
.name-characters article span, .name-characters article em { color: rgba(255,255,255,.58); font-size: 8px; font-style: normal; }
.name-characters > b { font-size: 12px; font-weight: 550; }
.name-grids { display: grid; grid-template-columns: repeat(auto-fit,minmax(120px,1fr)); gap: 7px; }
.name-grids article { display: grid; grid-template-columns: 1fr auto; align-content: start; min-height: 110px; padding: 12px; border: 1px solid var(--line); border-radius: 11px; background: var(--surface); }
.name-grids span, .name-grids b { color: var(--ink-faint); font-size: 9px; }
.name-grids strong { grid-column: 1; margin-top: 6px; font-size: 22px; }
.name-grids b { grid-column: 2; grid-row: 1/3; align-self: center; }
.name-grids p { grid-column: 1/3; align-self: end; margin-top: 8px; color: var(--ink-soft); font-size: 9px; line-height: 1.4; }

.stage-track { display: grid; }
.stage-track > article { position: relative; display: grid; grid-template-columns: 38px minmax(120px,.34fr) 1fr; gap: 14px; padding: 16px 0; border-top: 1px solid var(--line); }
.stage-track > article::after { position: absolute; bottom: -1px; left: 38px; width: calc((100% - 38px) * var(--stage-score) / 100); height: 2px; content: ""; background: var(--blue); }
.stage-track > article > i { color: var(--ink-faint); font-size: 9px; font-style: normal; }
.stage-track header { display: grid; }
.stage-track header small { color: var(--ink-faint); font-size: 9px; }
.stage-track header strong { margin: 4px 0; font-size: 13px; }
.stage-track header b { color: var(--blue); font-size: 10px; }
.stage-track p { color: var(--ink-soft); font-size: 11px; line-height: 1.55; }
.stage-track dl { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin-top: 9px; }
.stage-track dl > div { display: grid; grid-template-columns: 34px 1fr; gap: 5px; font-size: 9px; }
.stage-track dt { color: var(--ink-faint); }
.stage-track dd { margin: 0; }

.scenario-origin { display: flex; align-items: center; gap: 9px; margin: 0 0 12px 18px; font-size: 11px; }
.scenario-origin > span { width: 9px; height: 9px; border-radius: 50%; background: var(--black); box-shadow: 0 0 0 5px var(--surface-pressed); }
.scenario-list { position: relative; display: grid; gap: 8px; padding-left: 38px; }
.scenario-list::before { position: absolute; top: -13px; bottom: 50%; left: 22px; width: 1px; content: ""; background: var(--line-strong); }
.scenario-list article { position: relative; padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.scenario-list article::before { position: absolute; top: 23px; left: -17px; width: 16px; height: 1px; content: ""; background: var(--line-strong); }
.scenario-list article > header { display: flex; justify-content: space-between; gap: 12px; }
.scenario-list article > header > div { display: grid; }
.scenario-list header strong { font-size: 12px; }
.scenario-list header span { margin-top: 3px; color: var(--ink-faint); font-size: 9px; }
.scenario-list header > b { color: var(--blue); font-size: 20px; }
.scenario-list header > b small { font-size: 9px; }
.scenario-list ol { display: flex; flex-wrap: wrap; gap: 18px; margin: 14px 0 9px; padding: 0; list-style: none; counter-reset: path; }
.scenario-list li { position: relative; color: var(--ink-soft); font-size: 9px; counter-increment: path; }
.scenario-list li::before { margin-right: 5px; content: counter(path,decimal-leading-zero); color: var(--ink-faint); }
.scenario-list li + li::after { position: absolute; top: 50%; right: calc(100% + 5px); width: 8px; height: 1px; content: ""; background: var(--line-strong); }
.scenario-list article > p { color: var(--ink-soft); font-size: 11px; line-height: 1.5; }
.scenario-list footer { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 10px; }
.scenario-list footer span { padding: 3px 7px; border-radius: var(--pill); background: var(--red-soft); color: var(--red); font-size: 8px; }

.uncertainty-list { display: grid; }
.uncertainty-list article { padding: 13px 0; border-top: 1px solid var(--line); }
.uncertainty-list article:first-child { padding-top: 0; border-top: 0; }
.uncertainty-list header { display: grid; grid-template-columns: 48px 1fr auto; gap: 10px; align-items: start; }
.uncertainty-list header span { padding: 4px 6px; border-radius: 6px; background: var(--black); color: #fff; font-size: 8px; text-align: center; }
.uncertainty-list header span[data-source="情境假设"] { background: var(--surface-pressed); color: var(--ink-soft); }
.uncertainty-list header span[data-source="排盘推算"] { background: var(--blue-soft); color: var(--blue); }
.uncertainty-list header strong { font-size: 11px; line-height: 1.45; }
.uncertainty-list header b { font-size: 11px; }
.uncertainty-list progress { width: calc(100% - 58px); height: 3px; margin: 8px 0 8px 58px; border: 0; border-radius: var(--pill); overflow: hidden; }
.uncertainty-list progress::-webkit-progress-bar { background: var(--surface-pressed); }
.uncertainty-list progress::-webkit-progress-value { background: var(--blue); }
.uncertainty-list progress::-moz-progress-bar { background: var(--blue); }
.uncertainty-list dl { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin: 0 0 0 58px; }
.uncertainty-list dl > div { display: grid; grid-template-columns: 36px 1fr; gap: 5px; font-size: 9px; }
.uncertainty-list dt { color: var(--ink-faint); }
.uncertainty-list dd { margin: 0; color: var(--ink-soft); }

/* Native report components use the same large grouped surface as the accepted product UI. */
.hidden-stems, .nayin-map, .shensha-map, .kinship-map, .auspicious-calendar,
.direction-compass, .fengshui-sectors, .name-structure, .life-stage-bands,
.scenario-paths, .uncertainty-ledger {
  padding: 24px; border: 0; border-radius: 22px; background: var(--surface-muted);
}
.hidden-stems .data-block-head, .nayin-map .data-block-head, .shensha-map .data-block-head,
.kinship-map .data-block-head, .auspicious-calendar .data-block-head,
.direction-compass .data-block-head, .fengshui-sectors .data-block-head,
.name-structure .data-block-head, .life-stage-bands .data-block-head,
.scenario-paths .data-block-head, .uncertainty-ledger .data-block-head {
  margin-bottom: 20px; padding: 0; border: 0;
}
.hidden-stems .data-block-head h3, .nayin-map .data-block-head h3,
.shensha-map .data-block-head h3, .kinship-map .data-block-head h3,
.auspicious-calendar .data-block-head h3, .direction-compass .data-block-head h3,
.fengshui-sectors .data-block-head h3, .name-structure .data-block-head h3,
.life-stage-bands .data-block-head h3, .scenario-paths .data-block-head h3,
.uncertainty-ledger .data-block-head h3 { font-size: 20px; }
.hidden-stems .data-block-head > span, .nayin-map .data-block-head > span,
.shensha-map .data-block-head > span, .kinship-map .data-block-head > span,
.auspicious-calendar .data-block-head > span, .direction-compass .data-block-head > span,
.fengshui-sectors .data-block-head > span, .name-structure .data-block-head > span,
.life-stage-bands .data-block-head > span, .scenario-paths .data-block-head > span,
.uncertainty-ledger .data-block-head > span { font-size: 12px; }
.stem-pillars { gap: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 10px; }
.stem-pillar { border: 0; border-right: 1px solid var(--line); border-radius: 0; }
.stem-pillar:last-child { border-right: 0; }
.stem-layers { gap: 0; padding: 0 12px 8px; background: var(--surface); }
.stem-layer { min-height: 47px; padding: 8px 0; border-top: 1px solid var(--line); }
.stem-layer::before { display: none; }
.stem-layer:first-child { border-top: 0; }
.nayin-track { border-radius: 10px; }
.nayin-item { grid-template-columns: 1fr auto; padding: 15px; }
.nayin-item > i { display: none; }
.nayin-item p { grid-column: 1/3; }
.shensha-lane { grid-template-columns: 112px 1fr; padding: 0; }
.shensha-lane > div { gap: 0; }
.shensha-lane article { padding: 15px; border-radius: 0; background: var(--surface); }
.shensha-lane article + article { border-top: 1px solid var(--line); }
.shensha-lane article::before { display: none; }
.kinship-network { grid-template-columns: 112px 1fr; gap: 0; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }
.kinship-center { min-height: 0; padding: 18px; border-right: 1px solid var(--line); border-radius: 0; background: var(--surface); color: var(--ink); aspect-ratio: auto; }
.kinship-center small { color: var(--ink-faint); }
.kinship-members { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0; }
.kinship-members article { padding: 14px; border: 0; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); border-radius: 0; }
.kinship-links { margin-top: 10px; }
.calendar-days { border-radius: 10px; }
.calendar-day { min-height: 158px; padding: 14px; }
.compass-layout { grid-template-columns: minmax(230px,.62fr) 1fr; }
.compass-plot { min-height: 260px; border-radius: 0; background: transparent; }
.compass-list { border: 1px solid var(--line); border-radius: 10px; }
.fengshui-grid { border-radius: 10px; }
.fengshui-grid header span { padding: 0; border-radius: 0; background: transparent; }
.fengshui-grid ul { display: grid; gap: 3px; }
.fengshui-grid li { padding: 0; border-radius: 0; background: transparent; color: var(--ink-soft); }
.fengshui-grid li::before { margin-right: 5px; content: "·"; color: var(--ink-faint); }
.name-layout { grid-template-columns: minmax(190px,.46fr) 1fr; gap: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 10px; }
.name-characters { padding: 18px; border-right: 1px solid var(--line); border-radius: 0; background: var(--surface); color: var(--ink); }
.name-characters > small, .name-characters article span, .name-characters article em { color: var(--ink-faint); }
.name-characters article { padding: 10px 4px; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; }
.name-grids { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0; }
.name-grids article { min-height: 106px; border: 0; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); border-radius: 0; }
.stage-track { overflow: hidden; padding: 0 18px; border-radius: 16px; background: var(--surface); }
.stage-track > article { grid-template-columns: minmax(132px,.34fr) 1fr; padding: 20px 0; }
.stage-track > article::after, .stage-track > article > i { display: none; }
.scenario-list { gap: 0; padding: 0 18px 0 38px; border-radius: 16px; background: var(--surface); }
.scenario-list article { padding: 18px 0 20px; border: 0; border-top: 1px solid var(--line); border-radius: 0; background: transparent; }
.scenario-list article::before { left: -16px; }
.scenario-list ol { gap: 13px; }
.scenario-list li::before, .scenario-list li + li::after { display: none; }
.scenario-list li + li::before { display: inline; margin-right: 7px; content: "→"; color: var(--ink-faint); }
.scenario-list footer span { padding: 0; border-radius: 0; background: transparent; color: var(--ink-faint); }
.scenario-list footer span::before { margin-right: 5px; content: "注意"; color: var(--ink-soft); }
.scenario-list header > b { color: var(--ink); font-size: 11px; font-weight: 650; }
.scenario-origin {
  margin: 0 0 10px; padding: 14px 18px; border-radius: 14px; background: var(--black); color: #fff;
}
.scenario-origin > span, .scenario-list::before, .scenario-list article::before { display: none; }
.scenario-list { padding: 0 18px; }
.uncertainty-list { padding: 0 18px; border-radius: 16px; background: var(--surface); }
.uncertainty-list header b { color: var(--ink-faint); font-size: 10px; font-weight: 600; }
.uncertainty-list header span {
  padding: 0; border-radius: 0; background: transparent; color: var(--ink-faint); text-align: left;
}
.uncertainty-list header span[data-source="情境假设"],
.uncertainty-list header span[data-source="排盘推算"] { background: transparent; color: var(--ink-faint); }
.nayin-item small, .nayin-item em, .stem-layer small, .shensha-lane small, .shensha-lane em,
.kinship-members span, .kinship-members b, .calendar-day header span, .calendar-day p,
.compass-list span, .compass-list small, .fengshui-grid header small, .fengshui-grid header span,
.fengshui-grid li, .name-grids span, .name-grids b, .scenario-list header span,
.scenario-list footer span, .uncertainty-list header span, .uncertainty-list dl > div { font-size: 10px; }
.nayin-item p, .shensha-lane p, .kinship-members p, .calendar-day dl,
.compass-list p, .fengshui-grid p, .name-grids p, .stage-track p,
.scenario-list article > p { font-size: 12px; }
.compass-list > article > b { font-size: 16px; }
.compass-list strong, .scenario-list header strong { font-size: 13px; }
.scenario-list article > p, .uncertainty-list header strong { font-size: 13px; }
.uncertainty-list dl > div { font-size: 11px; }

/* Large-format rule: interpretive content is read as rows, never as micro-cards. */
.hidden-stems, .nayin-map, .shensha-map, .kinship-map, .auspicious-calendar,
.direction-compass, .fengshui-sectors, .name-structure, .life-stage-bands,
.scenario-paths, .uncertainty-ledger { padding: 28px; }
.hidden-stems .data-block-head h3, .nayin-map .data-block-head h3,
.shensha-map .data-block-head h3, .kinship-map .data-block-head h3,
.auspicious-calendar .data-block-head h3, .direction-compass .data-block-head h3,
.fengshui-sectors .data-block-head h3, .name-structure .data-block-head h3,
.life-stage-bands .data-block-head h3, .scenario-paths .data-block-head h3,
.uncertainty-ledger .data-block-head h3 { font-size: 22px; letter-spacing: -.018em; }

.nayin-track { grid-template-columns: 1fr; border-radius: 16px; }
.nayin-item {
  grid-template-columns: minmax(110px,.7fr) minmax(110px,.7fr) 44px minmax(180px,1.7fr);
  gap: 16px; align-items: center; min-height: 92px; padding: 18px 20px;
}
.nayin-item + .nayin-item { border-top: 1px solid var(--line); border-left: 0; }
.nayin-item p { grid-column: auto; align-self: center; margin: 0; font-size: 13px; }
.nayin-item > b { font-size: 14px; }
.nayin-item small, .nayin-item em { font-size: 12px; }

.shensha-lane { grid-template-columns: 128px 1fr; gap: 20px; }
.shensha-lane > header span { font-size: 14px; }
.shensha-lane > div { grid-template-columns: 1fr; }
.shensha-lane article { grid-template-columns: minmax(130px,.35fr) minmax(80px,.2fr) 1fr; gap: 8px 18px; min-height: 82px; align-items: center; }
.shensha-lane article strong { font-size: 14px; }
.shensha-lane article small { font-size: 12px; }
.shensha-lane article p { grid-column: 3; margin: 0; font-size: 13px; }
.shensha-lane article em { grid-column: 3; font-size: 12px; }

.kinship-network { grid-template-columns: 150px 1fr; border-radius: 16px; }
.kinship-center strong { font-size: 18px; }
.kinship-members { grid-template-columns: 1fr; }
.kinship-members article {
  grid-template-columns: minmax(130px,.36fr) 110px 1fr; align-items: center; min-height: 82px; padding: 16px 20px;
  border-right: 0;
}
.kinship-members article > div { display: grid; }
.kinship-members strong { font-size: 14px; }
.kinship-members span, .kinship-members b { font-size: 12px; }
.kinship-members p { grid-column: 3; margin: 0; font-size: 13px; }

.calendar-days { grid-template-columns: repeat(4,minmax(0,1fr)); border-radius: 16px; }
.calendar-day { min-height: 196px; padding: 18px; }
.calendar-day header strong { font-size: 18px; }
.calendar-day header span, .calendar-day p { font-size: 11px; }
.calendar-day > b { margin-top: 20px; font-size: 13px; }
.calendar-day dl { font-size: 12px; line-height: 1.5; }

.compass-layout { grid-template-columns: 1fr; gap: 18px; }
.compass-plot { min-height: 310px; }
.compass-plot svg { width: min(100%,320px); }
.compass-list { grid-template-columns: 1fr; border-radius: 16px; }
.compass-list article {
  grid-template-columns: 52px 130px minmax(140px,1fr) minmax(150px,.8fr);
  gap: 18px; align-items: center; min-height: 72px; padding: 15px 20px;
}
.compass-list article + article { border-top: 1px solid var(--line); }
.compass-list > article > b { grid-row: auto; font-size: 18px; }
.compass-list article > div { display: grid; }
.compass-list strong { font-size: 14px; }
.compass-list span, .compass-list small { font-size: 12px; }
.compass-list p { margin: 0; font-size: 13px; }

.fengshui-grid { border-radius: 16px; }
.fengshui-grid article { min-height: 196px; padding: 18px; }
.fengshui-grid header b, .fengshui-grid > article > strong { font-size: 14px; }
.fengshui-grid header small, .fengshui-grid header span, .fengshui-grid li { font-size: 11px; }
.fengshui-grid p { font-size: 12px; }

.name-layout { grid-template-columns: 1fr; border-radius: 16px; }
.name-characters { border-right: 0; border-bottom: 1px solid var(--line); }
.name-characters > div { max-width: 520px; }
.name-grids { grid-template-columns: 1fr; }
.name-grids article {
  grid-template-columns: 130px 70px 70px 1fr; align-items: center; min-height: 76px; padding: 14px 20px;
  border-right: 0;
}
.name-grids span, .name-grids b { font-size: 12px; }
.name-grids strong { grid-column: 2; margin: 0; font-size: 18px; }
.name-grids b { grid-column: 3; grid-row: 1; }
.name-grids p { grid-column: 4; align-self: center; margin: 0; font-size: 13px; }

.stage-track > article { grid-template-columns: minmax(160px,.34fr) 1fr; min-height: 112px; padding: 22px 0; }
.stage-track header small { font-size: 12px; }
.stage-track header strong { font-size: 16px; }
.stage-track header b { font-size: 12px; }
.stage-track p, .stage-track dl > div { font-size: 13px; }

.scenario-origin { min-height: 52px; font-size: 14px; }
.scenario-list article { min-height: 132px; padding: 22px 0; }
.scenario-list header strong { font-size: 15px; }
.scenario-list header span, .scenario-list li, .scenario-list footer span { font-size: 12px; }
.scenario-list article > p { font-size: 14px; }

.uncertainty-list article { min-height: 92px; padding: 18px 0; }
.uncertainty-list header { grid-template-columns: 70px 1fr auto; }
.uncertainty-list header span { font-size: 12px; }
.uncertainty-list header strong { font-size: 14px; }
.uncertainty-list dl { margin-left: 88px; }
.uncertainty-list dl > div { grid-template-columns: 44px 1fr; font-size: 12px; }
.surface-empty { padding: 18px; border-radius: 14px; background: var(--surface-muted); color: var(--ink-faint); }

@media (max-width: 760px) {
  .surface-node, .surface-node > *, .data-block-head,
  .hidden-stems, .nayin-map, .shensha-map, .kinship-map, .auspicious-calendar,
  .direction-compass, .fengshui-sectors, .name-structure, .life-stage-bands,
  .scenario-paths, .uncertainty-ledger { min-width: 0; max-width: 100%; box-sizing: border-box; }
  .data-block-head > * { min-width: 0; }
  .data-block-head { display: grid; gap: 5px; }
  .data-block-head > span { max-width: none; text-align: left; line-height: 1.4; }
  .surface-question { grid-template-columns: 1fr; gap: 11px; padding: 15px; }
  .surface-question > .surface-input { grid-column: 1; }
  .surface-columns-2, .surface-columns-3 { grid-template-columns: 1fr; }
  .surface-columns-2 > .surface-section-node + .surface-section-node { padding-left: 0; border-left: 0; }
  .surface-node-tools { position: static; justify-content: flex-end; margin-bottom: 8px; opacity: 1; }
  .surface-section-head { padding-right: 0; }
  .bazi-subjects, .element-subjects { grid-template-columns: 1fr; }
  .bazi-chart, .element-balance, .relation-matrix, .ten-god-profile, .luck-cycles, .annual-matrix,
  .ziwei-palace, .hexagram-view, .qimen-board, .trend-curve, .energy-flow { padding: 15px; }
  .hidden-stems, .nayin-map, .shensha-map, .kinship-map, .auspicious-calendar,
  .direction-compass, .fengshui-sectors, .name-structure, .life-stage-bands,
  .scenario-paths, .uncertainty-ledger { padding: 18px; border-radius: 18px; }
  .ten-god-subjects, .hexagram-pair { grid-template-columns: 1fr; gap: 18px; }
  .stem-pillars { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .nayin-track { grid-template-columns: 1fr; overflow: visible; }
  .nayin-item {
    grid-template-columns: minmax(0,1fr) auto;
    gap: 7px 14px; min-height: 0; padding: 16px;
  }
  .nayin-item > div { min-width: 0; }
  .nayin-item > b, .nayin-item > em { justify-self: end; }
  .nayin-item > em { grid-column: 2; }
  .nayin-item p { grid-column: 1 / -1; padding-top: 5px; }
  .shensha-lane { grid-template-columns: 1fr; gap: 2px; }
  .shensha-lane article {
    grid-template-columns: minmax(0,1fr) auto;
    gap: 6px 12px; min-height: 0; padding: 16px 0;
  }
  .shensha-lane article p, .shensha-lane article em { grid-column: 1 / -1; }
  .kinship-network, .compass-layout, .name-layout { grid-template-columns: 1fr; }
  .kinship-center { width: auto; min-height: 74px; justify-self: stretch; border-right: 0; border-bottom: 1px solid var(--line); }
  .kinship-members article {
    grid-template-columns: minmax(0,1fr) auto;
    gap: 6px 12px; min-height: 0; padding: 16px;
  }
  .kinship-members p { grid-column: 1 / -1; }
  .name-characters { border-right: 0; border-bottom: 1px solid var(--line); }
  .calendar-week { display: none; }
  .calendar-days { grid-template-columns: 1fr; }
  .calendar-day { min-height: 0; }
  .compass-plot { min-height: 250px; }
  .compass-list article {
    grid-template-columns: 44px minmax(0,1fr);
    gap: 4px 12px; min-height: 0; padding: 16px;
  }
  .compass-list > article > b { grid-row: 1 / 4; }
  .compass-list article p, .compass-list article small { grid-column: 2; }
  .fengshui-grid { grid-template-columns: repeat(3,minmax(156px,1fr)); overflow-x: auto; }
  .fengshui-grid article { min-height: 188px; }
  .name-grids article {
    grid-template-columns: minmax(80px,1fr) 44px 44px;
    gap: 6px 10px; min-height: 0; padding: 16px;
  }
  .name-grids strong { grid-column: 2; }
  .name-grids b { grid-column: 3; }
  .name-grids p { grid-column: 1 / -1; margin-top: 6px; }
  .stage-track > article { grid-template-columns: 1fr; gap: 9px; }
  .stage-track > article > div { grid-column: 1; }
  .uncertainty-list article { min-height: 0; }
  .uncertainty-list header { grid-template-columns: 64px minmax(0,1fr); }
  .uncertainty-list header b { grid-column: 2; }
  .uncertainty-list dl { grid-template-columns: 1fr; margin-left: 76px; }
  .palace-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .qimen-grid { grid-template-columns: repeat(3,minmax(105px,1fr)); overflow-x: auto; }
  .trend-notes { grid-template-columns: 1fr; }
  .relation-row { grid-template-columns: 1fr; gap: 5px; }
  .timeline-item { grid-template-columns: 66px 1fr 34px; gap: 8px; }
  .surface-footer { position: sticky; bottom: 0; margin-inline: -18px; padding: 14px 18px; background: rgba(255,255,255,.96); }
}

@media print {
  .hidden-stems, .nayin-map, .shensha-map, .kinship-map, .auspicious-calendar,
  .direction-compass, .fengshui-sectors, .name-structure, .life-stage-bands,
  .scenario-paths, .uncertainty-ledger { break-inside: avoid-page; background: #f5f6f7 !important; }
  .nayin-track, .fengshui-grid, .qimen-grid, .luck-track { overflow: visible; }
  .scenario-list article, .uncertainty-list article, .calendar-day { break-inside: avoid; }
}

/* Report plates — one reading axis, no widget wall. */
:is(
  .bazi-chart, .element-balance, .relation-matrix, .ten-god-profile, .luck-cycles,
  .annual-matrix, .ziwei-palace, .hexagram-view, .qimen-board, .trend-curve,
  .energy-flow, .hidden-stems, .nayin-map, .shensha-map, .kinship-map,
  .auspicious-calendar, .direction-compass, .fengshui-sectors, .name-structure,
  .life-stage-bands, .scenario-paths, .uncertainty-ledger
) {
  display: grid;
  grid-template-columns: 156px minmax(0, 1fr);
  gap: 34px;
  padding: 38px 0;
  border-top: 1px solid var(--line);
  border-radius: 0;
  background: transparent;
}

:is(
  .bazi-chart, .element-balance, .relation-matrix, .ten-god-profile, .luck-cycles,
  .annual-matrix, .ziwei-palace, .hexagram-view, .qimen-board, .trend-curve,
  .energy-flow, .hidden-stems, .nayin-map, .shensha-map, .kinship-map,
  .auspicious-calendar, .direction-compass, .fengshui-sectors, .name-structure,
  .life-stage-bands, .scenario-paths, .uncertainty-ledger
) > .data-block-head {
  display: block;
  grid-column: 1;
  margin: 0;
}

:is(
  .bazi-chart, .element-balance, .relation-matrix, .ten-god-profile, .luck-cycles,
  .annual-matrix, .ziwei-palace, .hexagram-view, .qimen-board, .trend-curve,
  .energy-flow, .hidden-stems, .nayin-map, .shensha-map, .kinship-map,
  .auspicious-calendar, .direction-compass, .fengshui-sectors, .name-structure,
  .life-stage-bands, .scenario-paths, .uncertainty-ledger
) > .data-block-head::before {
  display: block;
  width: 24px;
  height: 4px;
  margin-bottom: 16px;
  border-radius: 2px;
  background: var(--black);
  content: "";
}

:is(
  .bazi-chart, .element-balance, .relation-matrix, .ten-god-profile, .luck-cycles,
  .annual-matrix, .ziwei-palace, .hexagram-view, .qimen-board, .trend-curve,
  .energy-flow, .hidden-stems, .nayin-map, .shensha-map, .kinship-map,
  .auspicious-calendar, .direction-compass, .fengshui-sectors, .name-structure,
  .life-stage-bands, .scenario-paths, .uncertainty-ledger
) > :not(.data-block-head) {
  grid-column: 2;
  min-width: 0;
}

:is(
  .bazi-chart, .element-balance, .relation-matrix, .ten-god-profile, .luck-cycles,
  .annual-matrix, .ziwei-palace, .hexagram-view, .qimen-board, .trend-curve,
  .energy-flow, .hidden-stems, .nayin-map, .shensha-map, .kinship-map,
  .auspicious-calendar, .direction-compass, .fengshui-sectors, .name-structure,
  .life-stage-bands, .scenario-paths, .uncertainty-ledger
) > .data-block-head h3 {
  font-size: 18px;
  line-height: 1.35;
  letter-spacing: -.016em;
}

:is(
  .bazi-chart, .element-balance, .relation-matrix, .ten-god-profile, .luck-cycles,
  .annual-matrix, .ziwei-palace, .hexagram-view, .qimen-board, .trend-curve,
  .energy-flow, .hidden-stems, .nayin-map, .shensha-map, .kinship-map,
  .auspicious-calendar, .direction-compass, .fengshui-sectors, .name-structure,
  .life-stage-bands, .scenario-paths, .uncertainty-ledger
) > .data-block-head > span {
  display: block;
  margin-top: 8px;
  color: var(--ink-faint);
  font-size: 11px;
  line-height: 1.45;
}

.surface-scoreGrid {
  gap: 0;
  overflow: hidden;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: var(--surface-muted);
}
.metric {
  min-height: 132px;
  padding: 22px;
  border-radius: 0;
  background: var(--surface);
}
.metric + .metric { border-left: 1px solid var(--line); }
.metric strong { font-size: 34px; }

.surface-timeline { gap: 0; border-top: 1px solid var(--line); }
.timeline-item {
  grid-template-columns: 112px minmax(0,1fr) auto;
  gap: 22px;
  padding: 20px 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  background: transparent;
}
.surface-callout {
  padding: 20px 22px;
  border-radius: 6px;
  background: var(--surface-muted);
}

.surface-callout[data-tone="info"],
.surface-callout[data-tone="primary"] { background: var(--blue-soft); }

.bazi-subject, .element-subject {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.bazi-subject + .bazi-subject, .element-subject + .element-subject {
  padding-left: 26px;
  border-left: 1px solid var(--line);
}
.bazi-identity b {
  padding: 0;
  border-radius: 0;
  background: transparent;
  color: var(--ink-faint);
}
.bazi-pillars { border-color: var(--line-strong); border-radius: 5px; background: var(--surface-muted); }
.bazi-pillar { background: var(--surface); }
.bazi-pillar { min-height: 118px; padding: 16px 6px; }
.bazi-pillar strong { font-size: 25px; }

.ten-god-row { grid-template-columns: 120px minmax(0,1fr); padding: 15px 0; }
.ten-god-row strong { font-size: 14px; }
.ten-god-row span, .ten-god-row p, .data-note { font-size: 12px; }

.luck-track {
  grid-auto-columns: minmax(168px,1fr);
  border: 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  background: var(--line-strong);
}
.luck-cycle {
  min-height: 188px;
  padding: 22px 18px;
  border-left: 1px solid var(--line);
  background: var(--surface);
}
.luck-cycle:first-child { border-left: 0; }
.luck-cycle small, .luck-cycle span, .luck-cycle p { font-size: 11px; }
.luck-cycle strong { font-size: 25px; }

.annual-grid {
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 1px;
  overflow: hidden;
  border: 1px solid var(--line-strong);
  border-radius: 5px;
  background: var(--line-strong);
}
.annual-cell {
  min-height: 180px;
  padding: 22px;
  border: 0;
  border-right: 0;
  border-bottom: 0;
  border-radius: 0;
  background: var(--surface);
}
.annual-cell:nth-child(2n) { border-right: 0; }
.annual-cell > div strong { font-size: 18px; }
.annual-cell > b { font-size: 14px; }
.annual-cell ul { font-size: 12px; line-height: 1.55; }

.palace-grid, .qimen-grid, .fengshui-grid {
  border-color: var(--line-strong);
  border-radius: 5px;
}
.palace-cell, .qimen-cell, .fengshui-grid article { min-height: 184px; padding: 17px; }
.palace-cell p, .qimen-cell p, .fengshui-grid p { font-size: 12px; }

.hexagram-card {
  min-height: 246px;
  padding: 26px;
  border-radius: 5px;
}
.hexagram-card header strong { font-size: 25px; }

.nayin-track, .kinship-network, .compass-list, .name-layout {
  border-color: var(--line-strong);
  border-radius: 5px;
  background: var(--surface-muted);
}
.nayin-item { min-height: 102px; padding: 20px 22px; background: var(--surface); }
.nayin-item > b { font-size: 15px; }
.nayin-item p { font-size: 14px; line-height: 1.6; }

.shensha-lane { grid-template-columns: 112px minmax(0,1fr); gap: 24px; }
.shensha-lane article { padding: 18px; background: var(--surface-muted); }
.shensha-lane article + article { border-top-color: var(--line-strong); }
.shensha-lane article strong { font-size: 15px; }
.shensha-lane article p { font-size: 14px; line-height: 1.6; }

.kinship-network { grid-template-columns: 132px minmax(0,1fr); }
.kinship-center { padding: 22px; }
.kinship-center { background: var(--black); color: #fff; }
.kinship-center small { color: rgba(255,255,255,.62); }
.kinship-members article { min-height: 94px; padding: 19px 22px; background: var(--surface); }
.kinship-members strong { font-size: 15px; }
.kinship-members p { font-size: 14px; line-height: 1.6; }

.calendar-days {
  grid-template-columns: repeat(2,minmax(0,1fr));
  border-color: var(--line-strong);
  border-radius: 5px;
  background: var(--line-strong);
}
.calendar-day { min-height: 218px; padding: 22px; }
.calendar-day header strong { font-size: 20px; }
.calendar-day > b { font-size: 15px; }
.calendar-day dl { font-size: 13px; }

.compass-layout { grid-template-columns: minmax(260px,.68fr) minmax(0,1fr); gap: 30px; }
.compass-plot { min-height: 320px; }
.compass-plot {
  border-radius: 5px;
  background: var(--surface-muted);
}
.compass-list { align-self: center; }
.compass-plot text {
  fill: var(--ink-soft);
  font-size: 13px;
  font-weight: 650;
}
.compass-plot .compass-center-text {
  fill: #fff;
  font-size: 12px;
  font-weight: 700;
}
.compass-list article {
  grid-template-columns: 48px 120px minmax(0,1fr);
  gap: 18px;
  min-height: 92px;
  padding: 20px;
}
.compass-list article small { grid-column: 2; }
.compass-list article p { font-size: 14px; line-height: 1.55; }

.name-layout { border-radius: 5px; }
.name-grids article { min-height: 90px; padding: 18px 22px; }
.name-grids p { font-size: 14px; line-height: 1.55; }

.stage-track, .scenario-list, .uncertainty-list {
  padding: 0;
  border-radius: 0;
  background: transparent;
}
.stage-track > article { min-height: 124px; padding: 24px 0; }
.stage-track header strong { font-size: 17px; }
.stage-track p, .stage-track dl > div { font-size: 14px; }

.scenario-origin {
  min-height: 0;
  margin: 0;
  padding: 0 0 18px;
  border-bottom: 1px solid var(--line-strong);
  border-radius: 0;
  background: transparent;
  color: var(--ink);
  font-size: 14px;
  font-weight: 650;
}
.scenario-origin > span {
  display: block;
  width: 10px;
  height: 10px;
  box-shadow: none;
}
.scenario-list article { min-height: 146px; padding: 24px 0; }
.scenario-list header strong { font-size: 17px; }
.scenario-list article > p { max-width: 66ch; font-size: 14px; line-height: 1.65; }

.uncertainty-list article { min-height: 108px; padding: 22px 0; }
.uncertainty-list header { grid-template-columns: 84px minmax(0,1fr) auto; }
.uncertainty-list header strong { font-size: 15px; line-height: 1.55; }
.uncertainty-list dl { margin-left: 104px; }
.uncertainty-list dl > div { font-size: 13px; line-height: 1.55; }

@media (max-width: 760px) {
  :is(
    .bazi-chart, .element-balance, .relation-matrix, .ten-god-profile, .luck-cycles,
    .annual-matrix, .ziwei-palace, .hexagram-view, .qimen-board, .trend-curve,
    .energy-flow, .hidden-stems, .nayin-map, .shensha-map, .kinship-map,
    .auspicious-calendar, .direction-compass, .fengshui-sectors, .name-structure,
    .life-stage-bands, .scenario-paths, .uncertainty-ledger
  ) {
    width: 100%;
    min-width: 0;
    grid-template-columns: minmax(0,1fr);
    gap: 20px;
    padding: 30px 0;
    border-radius: 0;
    overflow: visible;
  }

  :is(
    .bazi-chart, .element-balance, .relation-matrix, .ten-god-profile, .luck-cycles,
    .annual-matrix, .ziwei-palace, .hexagram-view, .qimen-board, .trend-curve,
    .energy-flow, .hidden-stems, .nayin-map, .shensha-map, .kinship-map,
    .auspicious-calendar, .direction-compass, .fengshui-sectors, .name-structure,
    .life-stage-bands, .scenario-paths, .uncertainty-ledger
  ) > .data-block-head,
  :is(
    .bazi-chart, .element-balance, .relation-matrix, .ten-god-profile, .luck-cycles,
    .annual-matrix, .ziwei-palace, .hexagram-view, .qimen-board, .trend-curve,
    .energy-flow, .hidden-stems, .nayin-map, .shensha-map, .kinship-map,
    .auspicious-calendar, .direction-compass, .fengshui-sectors, .name-structure,
    .life-stage-bands, .scenario-paths, .uncertainty-ledger
  ) > :not(.data-block-head) {
    width: 100%;
    grid-column: 1;
    min-width: 0;
  }

  .nayin-track, .kinship-network, .compass-list, .name-layout,
  .calendar-days, .annual-grid, .scenario-list, .uncertainty-list {
    width: 100%;
    min-width: 0;
  }
  .nayin-item, .kinship-members article, .compass-list article,
  .name-grids article, .calendar-day, .annual-cell {
    min-width: 0;
  }
  .nayin-item {
    grid-template-columns: minmax(0,1fr) 32px;
    column-gap: 12px;
  }
  .nayin-item > div { grid-column: 1 / -1; }
  .nayin-item > b {
    grid-column: 1; grid-row: 2;
    max-width: 100%; justify-self: start;
    overflow-wrap: anywhere;
  }
  .nayin-item > em {
    grid-column: 2; grid-row: 2;
    max-width: 100%; justify-self: end;
  }
  .nayin-item p { grid-column: 1 / -1; }
  .metric { min-height: 112px; }
  .metric + .metric { border-left: 0; border-top: 1px solid var(--line); }
  .surface-scoreGrid { grid-template-columns: 1fr; }
  .timeline-item { grid-template-columns: 78px minmax(0,1fr); gap: 14px; }
  .timeline-score { grid-column: 2; text-align: left; }
  .bazi-subject + .bazi-subject, .element-subject + .element-subject {
    padding: 22px 0 0;
    border-top: 1px solid var(--line);
    border-left: 0;
  }
  .annual-grid, .calendar-days { grid-template-columns: 1fr; }
  .annual-cell { border-right: 0; }
  .compass-layout { grid-template-columns: 1fr; gap: 18px; }
  .compass-list article {
    grid-template-columns: 42px minmax(0,1fr);
    gap: 5px 12px;
    padding-right: 18px;
  }
  .compass-list article > div, .compass-list article p, .compass-list article small {
    min-width: 0;
    grid-column: 2;
    overflow-wrap: anywhere;
  }
  .shensha-lane { grid-template-columns: 1fr; gap: 6px; }
  .uncertainty-list header { grid-template-columns: 72px minmax(0,1fr); }
  .uncertainty-list header b { grid-column: 2; }
  .uncertainty-list dl { margin-left: 84px; }
}
