/* 星盘合盘补充样式：只加合盘特有的组件，配色/字体/骨架全部沿用 xingpan.css 的令牌。 */

/* —— 三入口：一条紧凑任务切换轨，不把三种方式埋在长表单末尾 —— */
.syn-entry-switch {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: -8px 0 38px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.syn-entry-switch button {
  min-width: 0;
  min-height: 72px;
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  padding: 13px 14px;
  color: var(--ink-soft);
  text-align: left;
  background: transparent;
  border: 0;
  border-right: 1px solid var(--line);
  cursor: pointer;
  transition: color 150ms ease, background 150ms ease;
}
.syn-entry-switch button:last-child { border-right: 0; }
.syn-entry-switch button:hover { color: var(--ink); background: rgba(69, 109, 136, 0.05); }
.syn-entry-switch button[aria-pressed="true"] {
  color: var(--ink);
  background: var(--paper-low);
  box-shadow: inset 0 -3px 0 var(--blue);
}
.syn-entry-switch button:focus-visible {
  position: relative;
  z-index: 1;
  outline: 2px solid var(--blue);
  outline-offset: -2px;
}
.syn-entry-switch i {
  align-self: start;
  padding-top: 3px;
  color: var(--blue);
  font-family: var(--mono);
  font-size: 9px;
  font-style: normal;
}
.syn-entry-switch span,
.syn-entry-switch b,
.syn-entry-switch small { display: block; }
.syn-entry-switch b { font-size: 13px; font-weight: 600; }
.syn-entry-switch small {
  margin-top: 5px;
  color: #777f82;
  font-size: 10px;
  font-weight: 400;
  line-height: 1.45;
}

/* —— 两人表单：在 .astro-form 内并排两栏 —— */
.syn-people {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 26px 40px;
  margin-bottom: 30px;
}
.syn-people.is-single {
  grid-template-columns: minmax(0, 1fr);
  max-width: 520px;
}
.syn-person {
  margin: 0;
  padding: 0;
  border: 0;
  min-width: 0;
}
.syn-person > legend {
  padding: 0;
  margin: 0 0 20px;
  width: 100%;
  display: flex;
  align-items: baseline;
  gap: 10px;
  font-family: var(--serif);
  font-size: 21px;
  font-weight: 500;
  color: var(--ink);
  border-bottom: 1px solid var(--rust);
  padding-bottom: 10px;
}

.syn-dst-choice {
  margin: -9px 0 22px;
  padding: 14px 16px;
}
.syn-dst-choice [data-syn-dst-options] {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.syn-dst-choice button {
  min-height: 44px;
  padding: 9px 12px;
  color: var(--ink);
  background: transparent;
  border: 1px solid #93978f;
  cursor: pointer;
}
.syn-dst-choice button:hover,
.syn-dst-choice button:focus-visible,
.syn-dst-choice button.is-selected {
  color: #fff;
  background: var(--blue);
  border-color: var(--blue);
}
.syn-person > legend i {
  font-family: var(--mono);
  font-style: normal;
  font-size: 11px;
  letter-spacing: 0.16em;
  color: var(--rust);
}
/* 关系（收窄）在上、想问的事（整行）在下——并排高度对不齐，改堆叠更稳。 */
.syn-relrow {
  display: block;
  margin-bottom: 30px;
}
.syn-relrow > label { display: block; margin: 0 0 24px; }
.syn-relrow > label:first-child { max-width: 320px; }
.syn-relrow textarea { min-height: 64px; }

/* —— 本人档案：名称留在页面，出生资料只在服务端解档 —— */
.syn-profile-panel {
  margin: 0 0 32px;
  padding: 26px 0 28px;
  border-top: 1px solid var(--rust);
  border-bottom: 1px solid var(--line);
}
.syn-profile-panel header { max-width: 600px; margin-bottom: 24px; }
.syn-profile-panel header p {
  margin: 0 0 8px;
  color: var(--blue);
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.syn-profile-panel header h3 {
  margin: 0 0 8px;
  color: var(--ink);
  font-family: var(--serif);
  font-size: 22px;
  font-weight: 500;
}
.syn-profile-panel header span,
.syn-profile-precision {
  color: var(--ink-soft);
  font-size: 12px;
  line-height: 1.75;
}
.syn-profile-state {
  padding: 17px 0;
  color: var(--ink-soft);
  font-size: 13px;
  line-height: 1.7;
}
.syn-profile-state[hidden] { display: none !important; }
.syn-profile-state p { margin: 0 0 12px; }
.syn-profile-state button,
.syn-profile-state a {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  margin: 0 12px 0 0;
  padding: 0 15px;
  color: var(--blue);
  background: transparent;
  border: 1px solid var(--blue);
  border-radius: 0;
  font-size: 12px;
  text-decoration: none;
  cursor: pointer;
}
.syn-profile-state button:hover,
.syn-profile-state a:hover { color: var(--paper-high); background: var(--blue); }
.syn-profile-fields {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 28px minmax(0, 1fr);
  gap: 14px;
  align-items: end;
}
.syn-profile-fields label > span i {
  color: var(--rust);
  font-family: var(--mono);
  font-size: 10px;
  font-style: normal;
}
.syn-profile-cross {
  padding-bottom: 17px;
  color: var(--line);
  font-family: var(--serif);
  font-size: 20px;
  font-style: normal;
  text-align: center;
}
.syn-profile-precision { margin: 14px 0 0; }

@media (max-width: 720px) {
  .syn-people { grid-template-columns: 1fr; gap: 4px 0; }
  .syn-person + .syn-person { margin-top: 12px; }
}
@media (max-width: 560px) {
  .syn-entry-switch { margin-bottom: 30px; }
  .syn-entry-switch button {
    min-height: 58px;
    display: block;
    padding: 11px 8px 10px;
    text-align: center;
  }
  .syn-entry-switch i { display: none; }
  .syn-entry-switch b { font-size: 12px; }
  .syn-entry-switch small { display: none; }
  .syn-profile-fields { grid-template-columns: 1fr; gap: 15px; }
  .syn-profile-cross { display: none; }
  .syn-profile-state button,
  .syn-profile-state a { margin-bottom: 8px; }
}

/* —— 结果：整体基调带（承接夜色标头） —— */
.syn-tone {
  position: relative;
  isolation: isolate;
  padding: 4px 48px 56px;
  color: #e8eeec;
}
.syn-tone::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 50%;
  transform: translateX(-50%);
  width: 100vw;
  z-index: -1;
  background: var(--night);
}
.syn-tagline {
  margin: 0 0 20px;
  max-width: 40em;
  font-family: var(--serif);
  font-size: clamp(18px, 2.2vw, 24px);
  line-height: 1.6;
  color: rgba(210, 220, 224, 0.9);
}
.syn-tier {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 7px 18px;
  border-radius: 2px;
  font-size: 13px;
  letter-spacing: 0.05em;
  border: 1px solid rgba(180, 195, 200, 0.28);
  color: rgba(200, 212, 216, 0.9);
}
.syn-tier::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--gold);
}
.syn-tier.is-warm::before { background: var(--rust); }
.syn-tier.is-cool::before { background: var(--blue-light); }
.syn-tier.is-warm { color: #e4b3a8; border-color: rgba(163, 77, 63, 0.5); }
.syn-tier.is-cool { color: #b7d0dd; border-color: rgba(69, 109, 136, 0.5); }
.syn-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 18px;
}
.syn-chips span {
  font-family: var(--sans);
  font-size: 11.5px;
  line-height: 1.6;
  color: rgba(180, 195, 200, 0.62);
  border: 1px solid rgba(180, 195, 200, 0.16);
  border-radius: 20px;
  padding: 4px 12px;
}

/* 关系速览：亲和/张力计数 + 贴得最紧的一处 */
.syn-stats {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px 26px;
  margin-top: 22px;
  font-family: var(--sans);
  font-size: 13px;
  color: rgba(200, 212, 216, 0.75);
}
.syn-stats b {
  font-family: var(--mono);
  font-weight: 500;
  font-size: 17px;
  color: #f2f5f3;
  margin-right: 5px;
}
.syn-stats .stat-tight { color: rgba(224, 196, 138, 0.85); }
.syn-stats:empty { display: none; }


/* —— 结果分区（纸面/夜色全宽带，复用 xingpan 的 100vw ::before 手法） —— */
.syn-section {
  position: relative;
  isolation: isolate;
  padding: 56px 48px;
}
.syn-section::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 50%;
  transform: translateX(-50%);
  width: 100vw;
  z-index: -1;
}
.syn-section.on-paper::before { background: var(--paper); }
.syn-section.on-night { color: #e8eeec; }
.syn-section.on-night::before { background: var(--night); }
/* 手机上 48px 侧距太宽：收到 24px，与命书阅读区/续问区一致 */
@media (max-width: 640px) {
  .syn-section { padding: 44px 24px 48px; }
  .syn-tone { padding: 4px 24px 48px; }
}

.syn-head {
  display: flex;
  align-items: baseline;
  gap: 14px;
  margin: 0 0 26px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--line);
}
.syn-section.on-night .syn-head { border-color: rgba(180, 195, 200, 0.14); }
.syn-head span {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  color: var(--rust);
}
.syn-head b {
  font-family: var(--serif);
  font-size: 22px;
  font-weight: 500;
  letter-spacing: 0.02em;
  color: var(--ink);
}
.syn-section.on-night .syn-head b { color: #f2f5f3; }
.syn-head i {
  margin-left: auto;
  font-style: normal;
  font-family: var(--sans);
  font-size: 11px;
  color: #8a8f89;
}

/* 每个结果模块的人话说明 */
.syn-explain {
  margin: -8px 0 24px;
  max-width: 52em;
  color: var(--ink-soft);
  font-size: 13.5px;
  line-height: 1.9;
}
.syn-empty { color: var(--ink-soft); font-size: 13.5px; line-height: 1.8; }
.t-warm { color: var(--rust); }
.t-cool { color: var(--blue); }
.t-gold { color: var(--gold); }

/* —— 双盘轮图（外圈 A · 内圈 B；仅本人场景有数据） —— */
.syn-wheel { margin: 4px 0 40px; }
.wheel-figure { max-width: 470px; margin: 0 auto; }
.wheel-figure svg { display: block; width: 100%; height: auto; }
.wheel-legend {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 6px 20px;
  margin-top: 18px;
  font-family: var(--sans);
  font-size: 12px;
  color: var(--ink-soft);
}
.wheel-legend i { display: inline-block; vertical-align: middle; margin-right: 6px; }
.lg-dot { width: 10px; height: 10px; border-radius: 50%; }
.lg-dot.lg-a { background: #f3f0e8; border: 1px solid #71838b; }
.lg-dot.lg-b { background: #17212a; border: 1px solid #456d88; }
.lg-line { width: 18px; border-top: 2px solid; transform: translateY(-2px); }
.lg-line.lg-warm { border-color: #a34d3f; border-top-style: dashed; }
.lg-line.lg-cool { border-color: #456d88; }
.lg-line.lg-gold { border-color: #9c8051; }
.wheel-note { margin: 8px 0 0; text-align: center; font-size: 12px; line-height: 1.7; color: #9a9d99; }

/* —— 跨盘相位：编辑体（顶线分隔、无框无填充，同 .dynamic-card） —— */
.syn-keyc { display: grid; grid-template-columns: 1fr 1fr; gap: 0 48px; }
.syn-card { padding: 24px 0 26px; border-top: 1px solid var(--line); }
.card-top { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 11px; }
.card-label { font-family: var(--serif); font-size: 20px; font-weight: 500; color: var(--ink); letter-spacing: 0.01em; }
/* 组解说词：小号副标题，与下方针对这两人的结论句拉开层级 */
.card-lead { margin: -4px 0 14px; color: #8a8f89; font-family: var(--sans); font-size: 12.5px; line-height: 1.75; }
/* 综合结论句在前、多处提示收尾（技术明细统一在下方折叠表，不进卡片） */
.pair-line { margin: 0 0 9px; font-size: 15px; line-height: 1.85; color: #2f3a41; }
.pair-note { margin: 0 0 9px; font-size: 12.5px; line-height: 1.75; color: #8a8f89; }
@media (max-width: 640px) { .syn-keyc { grid-template-columns: 1fr; gap: 0; } }

/* —— 宫位叠加：编辑体台账（顶线分隔、无框） —— */
.syn-overlays { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
.syn-ovl-group h4 {
  margin: 0 0 6px;
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: var(--rust);
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line);
}
.syn-ovl-grid { display: flex; flex-direction: column; }
.syn-ovl-card {
  padding: 14px 0;
  border-bottom: 1px solid rgba(200, 196, 184, 0.5);
  font-size: 15px;
}
.syn-ovl-card:last-child { border-bottom: 0; }
.ovl-line { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 8px; }
.ovl-line b { font-family: var(--sans); font-weight: 600; color: var(--ink); }
.ovl-arrow { font-family: var(--sans); font-size: 11px; color: #9a9d99; }
.ovl-house { color: #39464e; }
.ovl-hot {
  font-style: normal;
  font-family: var(--sans);
  font-size: 10.5px;
  letter-spacing: 0.06em;
  color: #6b7176;
  border: 1px solid var(--line);
  border-radius: 20px;
  padding: 1px 9px;
  white-space: nowrap;
}
.ovl-note { margin: 6px 0 0; font-size: 13.5px; line-height: 1.85; color: #4a545b; }
/* 手机端：每组改横向滑动卡片轨（露出下一张卡边示意可滑，带吸附），
   两组两条轨，整块从十屏长压到两屏；桌面维持双栏台账不变。 */
.ovl-swipe-hint { display: none; }
@media (max-width: 640px) {
  .syn-overlays { grid-template-columns: 1fr; gap: 30px; }
  .ovl-swipe-hint {
    display: block;
    margin: 9px 2px 0;  /* 左缘与卡片对齐（滑动轨左侧留了 2px） */
    font-family: var(--sans);
    font-size: 12px;
    letter-spacing: 0.04em;
    color: #9a9d99;
    text-align: left;
  }
  .syn-ovl-grid {
    flex-direction: row;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    gap: 10px;
    padding: 12px 2px 6px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .syn-ovl-grid::-webkit-scrollbar { display: none; }
  .syn-ovl-grid .syn-ovl-card,
  .syn-ovl-grid .syn-ovl-card:last-child {
    /* 卡片宽度按视口算：贴近右边、只露一点点下一张（左内缩 26px≈段落内边距+轨内边距）。
       用 100vw 而非百分比，避免祖先滚动容器宽度不受约束时把卡片撑得超出屏幕、内容被截断。 */
    flex: 0 0 calc(100vw - 52px);
    max-width: calc(100vw - 52px);
    scroll-snap-align: start;
    box-sizing: border-box;
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 14px 16px 16px;
    background: var(--paper-high);
  }
}

/* —— 气质底色：火土风水双人对照条 —— */
.bal-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
.bal-col h4 {
  margin: 0 0 12px;
  font-family: var(--serif);
  font-size: 17px;
  font-weight: 500;
  color: var(--ink);
  padding-bottom: 10px;
  border-bottom: 1px solid var(--line);
}
.bal-row { display: grid; grid-template-columns: 108px 1fr 24px; align-items: center; gap: 12px; padding: 7px 0; }
.bal-name { font-family: var(--serif); font-size: 14px; color: var(--ink); white-space: nowrap; }
.bal-name i { font-style: normal; font-family: var(--sans); font-size: 11px; color: #9a9d99; margin-left: 7px; }
.bal-bar { height: 6px; background: rgba(200, 196, 184, 0.35); border-radius: 3px; overflow: hidden; }
.bal-bar b { display: block; height: 100%; border-radius: 3px; min-width: 2px; }
.bal-fire { background: #b06a4a; }
.bal-earth { background: #8a7a4e; }
.bal-air { background: #7a94a6; }
.bal-water { background: #5a7a8e; }
.bal-count { font-family: var(--mono); font-size: 12px; color: #8a8f89; text-align: right; }
.bal-notes { margin-top: 24px; padding-top: 16px; border-top: 1px solid var(--line); }
.bal-notes:empty { display: none; }
.bal-notes p { margin: 0 0 8px; font-size: 14px; line-height: 1.85; color: #39464e; }
.bal-notes p::before { content: "◦ "; color: var(--rust); }
@media (max-width: 640px) { .bal-cols { grid-template-columns: 1fr; gap: 26px; } }

/* —— 跨盘相位表 —— */
.syn-cross-fold { margin-top: 8px; }
.syn-cross-fold > summary {
  cursor: pointer;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.08em;
  color: var(--blue);
  padding: 6px 0;
}
.syn-cross {
  width: 100%;
  border-collapse: collapse;
  margin-top: 14px;
  font-size: 13.5px;
}
.syn-cross th {
  text-align: left;
  padding: 8px 10px;
  font-family: var(--sans);
  font-weight: 600;
  font-size: 12px;
  color: var(--ink-soft);
  border-bottom: 1px solid var(--line);
}
.syn-cross td { padding: 8px 10px; border-bottom: 1px solid rgba(200, 196, 184, 0.45); }
.syn-cross td:first-child, .syn-cross td:nth-child(3) { font-family: var(--serif); }
.syn-cross .c-orb { font-family: var(--mono); font-size: 11px; color: #9a9d99; }

/* —— 详解区块（完全复用 .full-reading/.reading-body/.astro-followup；续问按 xingpan 的纸面重设计走） —— */
#syn-read-hint { margin-top: 14px; color: rgba(180, 195, 200, 0.6); font-size: 13px; }
#syn-reading:empty { display: none; }
/* 邀请区的要点列表：行距收紧、更紧凑 */
#syn-result .reading-invitation ul { margin-bottom: 26px; }
#syn-result .reading-invitation li { padding: 3px 0; }

/* 详解正文的把握度徽标（复用 xingpan 的 .conf 胶囊）与依据行 */
.reading-body .reading-meta { margin: 16px 0 2px; }
.reading-body .reading-basis {
  margin: 4px 0 22px;
  font-size: 12.5px;
  line-height: 1.95;
  color: #7b807d;
}
.reading-body .reading-basis em { font-style: normal; color: var(--blue); margin-right: 8px; }
.reading-body .reading-basis i { font-style: normal; color: #c3bfb2; margin: 0 7px; }
/* 文末「追问建议」→ 可点的问题条 */
.reading-body .reading-suggests {
  margin-top: 34px;
  padding-top: 22px;
  border-top: 1px solid rgba(200, 196, 184, 0.62);
}
.reading-body .reading-suggests > b {
  display: block;
  margin-bottom: 12px;
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  color: var(--ink-soft);
}
.reading-body .rs-chip {
  display: block;
  width: 100%;
  text-align: left;
  margin-bottom: 9px;
  padding: 11px 15px;
  background: transparent;
  border: 1px solid var(--line);
  border-radius: 8px;
  font-family: var(--serif);
  font-size: 15.5px;
  color: var(--ink);
  cursor: pointer;
  transition: border-color 0.2s ease, background 0.2s ease;
}
.reading-body .rs-chip::before {
  content: "问 ";
  color: var(--blue);
  font-family: var(--sans);
  font-size: 12px;
}
.reading-body .rs-chip:hover { border-color: var(--blue); background: rgba(69, 109, 136, 0.05); }

/* —— 邀请合盘 —— */
.syn-invite-cta {
  margin: -4px 0 26px;
  padding: 20px 0 24px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.syn-invite-lead {
  margin: 0 0 12px;
  color: var(--ink-soft);
  font-size: 13px;
  line-height: 1.8;
}
.syn-invite-btn {
  background: transparent;
  color: var(--blue);
  border: 1px solid var(--blue);
  border-radius: 8px;
  padding: 10px 20px;
  font-size: 14px;
  letter-spacing: 0.04em;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease;
}
.syn-invite-btn:hover { background: var(--blue); color: var(--paper-high); }
.syn-invite-btn:disabled { opacity: 0.6; cursor: wait; }
.syn-invite-linkrow {
  display: flex;
  gap: 8px;
  margin-top: 14px;
}
.syn-invite-linkrow input {
  flex: 1;
  min-width: 0;
  background: var(--paper-low);
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 9px 11px;
  font-family: var(--mono);
  font-size: 12px;
  color: var(--ink);
}
.syn-invite-linkrow button {
  flex: none;
  background: var(--night-soft);
  color: #f4f3ed;
  border: 0;
  border-radius: 6px;
  padding: 0 16px;
  font-size: 13px;
  cursor: pointer;
}
.syn-invite-hint { margin: 10px 0 0; color: #7b807d; font-size: 12px; line-height: 1.7; }
.syn-invite-ready { color: var(--ink-soft); font-size: 14px; line-height: 1.8; }
.syn-invite-ready b { color: var(--rust); }
.syn-invite-privacy { margin: 10px 0 0; color: var(--rust); font-size: 13px; line-height: 1.75; }
.syn-invite-bad { color: var(--rust); font-size: 14px; line-height: 1.8; }

/* 结果页：把合盘发回/分享给对方 */
.syn-share {
  margin-top: 22px;
  padding: 18px 20px;
  border: 1px solid rgba(180, 195, 200, 0.2);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.03);
}
.syn-share-wrap {
  padding: 0 clamp(28px, 6vw, 80px) 48px;
  background: var(--night);
}
.syn-share-wrap .syn-share { margin-top: 0; }
.syn-share > span {
  display: block;
  font-family: var(--serif);
  font-size: 16px;
  color: #f2f5f3;
  margin-bottom: 12px;
}
.syn-share-row { display: flex; gap: 8px; }
.syn-share-row input {
  flex: 1;
  min-width: 0;
  background: rgba(0, 0, 0, 0.25);
  border: 1px solid rgba(180, 195, 200, 0.2);
  border-radius: 6px;
  padding: 9px 11px;
  font-family: var(--mono);
  font-size: 12px;
  color: rgba(210, 220, 224, 0.85);
}
.syn-share-row button {
  flex: none;
  background: var(--gold);
  color: #2a1e07;
  border: 0;
  border-radius: 6px;
  padding: 0 16px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
}
.syn-share > p { margin: 10px 0 0; color: rgba(180, 195, 200, 0.5); font-size: 12px; line-height: 1.7; }

/* 结果页底部：再合一盘引导（纸面收尾） */
/* 详解下方：操作区（下载 PDF · 换个人再合一盘），统一低调文字按钮 */
.syn-dl {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 4px clamp(28px, 6vw, 80px) 52px;
  background: var(--paper-high);
}
.syn-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 10px 26px;
}
/* 文字按钮，低调：不抢注意力 */
.syn-dl-btn {
  background: none;
  border: 0;
  padding: 0;
  color: var(--blue);
  font-family: var(--sans);
  font-size: 14px;
  letter-spacing: 0.02em;
  cursor: pointer;
  text-decoration: none;
  border-bottom: 1px solid rgba(69, 109, 136, 0.35);
  transition: color 0.2s ease, border-color 0.2s ease;
}
.syn-dl-btn:hover { color: #2f5670; border-bottom-color: var(--blue); }
.syn-dl-btn:disabled { color: var(--ink-soft); cursor: wait; border-bottom-color: transparent; }
.syn-dl-hint { color: var(--ink-soft); font-size: 12.5px; }
.syn-dl-hint a { color: var(--blue); }

/* —— 统一注册/登录弹窗（WMS_AUTH）样式：从 styles.css 复制，本页不引 styles.css —— */
body.wms-auth-open { overflow: hidden; }
/* Token bridge: the WMS_AUTH popup markup expects styles.css design tokens,
   which xingpan.css does not define. Scope them to the modal so the popup
   renders identically to the rest of the site. */
.wms-auth-modal {
  --ivory: #f8f8f7; --brand: #18181a; --brand-light: #3b3b3e;
  --seal: #9a463f; --seal-soft: #a85a52; --near-black: #18181a;
  --olive: #494844; --stone: #6b6a68; --border: #c9c8c6; --border-soft: #d9d8d6;
  --display: "Wenming Serif", "Songti SC", "STSong", serif;
  --sans: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, "Noto Sans SC", sans-serif;
  --mono: "JetBrains Mono", "SF Mono", Consolas, "Noto Serif SC", monospace;
}
.wms-auth-modal { position: fixed; inset: 0; z-index: 200; display: grid; place-items: center; padding: 24px; font-family: var(--sans); }
.wms-auth-backdrop { position: absolute; inset: 0; background: rgba(24, 24, 26, .54); backdrop-filter: blur(5px); }
.wms-auth-sheet { position: relative; width: min(480px, 100%); max-height: min(760px, calc(100dvh - 48px)); overflow: auto; padding: 42px; color: var(--near-black); background: var(--ivory); border: 1px solid var(--border); box-shadow: 0 24px 72px rgba(0,0,0,.25); }
.wms-auth-close { position: absolute; top: 14px; right: 16px; width: 40px; height: 40px; padding: 0; color: var(--stone); background: transparent; border: 0; font: 400 34px/1 var(--sans); cursor: pointer; }
.wms-auth-kicker { margin: 0 0 20px; color: var(--seal); font: 500 11px/1.4 var(--mono); letter-spacing: .28em; }
.wms-auth-sheet h2 { margin: 0; font: 500 clamp(30px, 6vw, 42px)/1.2 var(--display); letter-spacing: .015em; }
.wms-auth-copy { margin: 14px 0 28px; color: var(--olive); font-size: 16px; line-height: 1.75; }
.wms-auth-tabs { display: flex; gap: 24px; margin-bottom: 26px; border-bottom: 1px solid var(--border-soft); }
.wms-auth-tabs button { position: relative; padding: 0 0 12px; color: var(--stone); background: transparent; border: 0; font: 500 17px/1.2 var(--display); cursor: pointer; }
.wms-auth-tabs button.is-on { color: var(--seal); }
.wms-auth-tabs button.is-on::after { content: ""; position: absolute; right: 0; bottom: -1px; left: 0; height: 2px; background: var(--seal); }
.wms-auth-form { display: grid; gap: 18px; }
.wms-auth-form label { display: grid; gap: 8px; color: var(--brand-light); font-size: 14px; line-height: 1.4; }
.wms-auth-form input { min-width: 0; width: 100%; height: 48px; padding: 10px 12px; color: var(--near-black); background: transparent; border: 1px solid var(--border); border-radius: 0; font: 16px/1.3 var(--sans); }
.wms-auth-form input:focus { outline: 2px solid color-mix(in srgb, var(--seal) 35%, transparent); outline-offset: 1px; border-color: var(--seal); }
.wms-auth-form > button { min-height: 50px; margin-top: 4px; color: #fff; background: var(--brand); border: 1px solid var(--brand); font: 500 16px/1 var(--sans); letter-spacing: .08em; cursor: pointer; }
.wms-auth-form > button b { margin-left: 14px; color: var(--seal-soft); font-family: var(--mono); }
.wms-auth-form > button:disabled, .wms-auth-code button:disabled { opacity: .55; cursor: wait; }
.wms-auth-code { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.wms-auth-code button { min-width: 96px; padding: 0 12px; color: var(--seal); background: transparent; border: 1px solid var(--seal); font: 14px/1 var(--sans); cursor: pointer; }
.wms-auth-forgot { display: block; margin-top: 12px; color: var(--stone); font-size: 12.5px; font-family: var(--sans); text-decoration: none; }
.wms-auth-forgot:hover { color: var(--seal); }
.wms-auth-message { margin: 18px 0 0; color: #4f6858; font-size: 14px; line-height: 1.6; }
.wms-auth-message.is-error { color: var(--seal); }
.wms-auth-fineprint { margin: 22px 0 0; color: var(--stone); font-size: 12px; line-height: 1.75; }
.wms-auth-fineprint a { color: var(--seal); }
@media (max-width: 560px) {
  .wms-auth-modal { align-items: end; padding: 0; }
  .wms-auth-sheet { width: 100%; max-height: calc(100dvh - 28px); padding: 34px 24px 28px; border-bottom: 0; }
  .wms-auth-sheet h2 { font-size: 32px; }
}

/* 续问答复里的「登录/注册」文字按钮 */
.astro-followup .thread-login {
  background: none; border: 0; padding: 0;
  font: inherit; color: var(--blue); cursor: pointer;
  border-bottom: 1px solid rgba(69, 109, 136, 0.4);
}
.astro-followup .thread-login:hover { color: #2f5670; border-bottom-color: var(--blue); }

/* 合盘 P1 可读性：关系速览与技术依据使用清晰的次级文字。 */
.syn-method-note {
  margin: 18px 0 0;
  color: #b9c8cc;
  font-size: 14px;
  line-height: 1.7;
}
.syn-chips span,
.syn-stats,
#syn-read-hint,
.syn-share > p { color: #aabcc1; }
.syn-chips span,
.syn-head i,
.wheel-note,
.ovl-arrow,
.bal-name i,
.bal-count,
.syn-cross .c-orb,
#syn-read-hint,
.syn-share > p,
.syn-dl-hint { font-size: 12px; }
.syn-head i,
.wheel-note,
.ovl-arrow,
.bal-name i,
.bal-count,
.syn-cross .c-orb,
.syn-dl-hint { color: #59646a; }
.syn-explain,
.syn-invite-lead,
.syn-invite-ready,
.syn-invite-bad { font-size: 14px; }

@media (min-width: 721px) {
  .syn-person .precision-options { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .syn-person .precision-options label { padding-inline: 8px; }
}
