/* ==========================================================================
   星谱知命网 · 周公解梦（.xj-meng）
   ========================================================================== */
.xj-meng { max-width: 880px; margin: 0 auto; }

.xj-meng__head { text-align: center; margin-bottom: 26px; }
.xj-meng__eyebrow {
  font-size: 11.6px; letter-spacing: .32em; text-transform: uppercase;
  color: var(--xj-azure); margin-bottom: 10px;
}
.xj-meng__title {
  font-family: var(--xj-serif); font-size: clamp(24px, 3.4vw, 34px);
  letter-spacing: .14em; color: var(--xj-ink); margin: 0 0 12px;
}
.xj-meng__lead {
  max-width: 640px; margin: 0 auto;
  font-size: 14.4px; line-height: 1.95; color: var(--xj-ink-2); letter-spacing: .03em;
}

/* ── 表单 ── */
.xj-meng__form {
  padding: 26px 24px; border-radius: var(--xj-r-md, 14px);
  background: var(--xj-surface); border: 1px solid var(--xj-line-2);
  box-shadow: var(--xj-shadow-sm); text-align: center;
}
/* T23 输入提示：由 12px 灰字放大为朱砂色加粗提示（与测字页一致） */
.xj-meng__label {
  display: block; font-family: var(--xj-serif);
  font-size: 17px; font-weight: 700; letter-spacing: .1em; line-height: 1.5;
  color: var(--xj-vermilion); margin-bottom: 14px;
}
.xj-meng__input {
  display: block; width: 100%; margin: 0 auto; box-sizing: border-box;
  padding: 14px 18px; border-radius: var(--xj-r-sm, 8px);
  border: 1px solid var(--xj-line-3); background: var(--xj-paper);
  font-family: var(--xj-serif); font-size: 16px; line-height: 1.9;
  color: var(--xj-ink); resize: vertical; min-height: 88px;
  transition: border-color .2s, box-shadow .2s;
}
.xj-meng__input:focus {
  outline: none; border-color: var(--xj-azure);
  box-shadow: 0 0 0 3px rgba(78, 110, 117, .14);
}
.xj-meng__hint { margin: 12px 0 0; font-size: 12px; line-height: 1.8; color: var(--xj-muted); }
.xj-meng__actions { margin-top: 18px; display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.xj-meng__submit, .xj-meng__again { letter-spacing: .22em; }
.xj-meng__again { background: transparent; color: var(--xj-ink-2); border: 1px solid var(--xj-line-3); }
.xj-meng__submit.is-busy { opacity: .68; pointer-events: none; }
.xj-meng__err { margin: 14px 0 0; font-size: 12.6px; color: var(--xj-vermilion); letter-spacing: .04em; }

/* ── 结果 ── */
.xj-meng__stage { margin-top: 26px; }
.xj-meng__loading {
  display: flex; align-items: center; justify-content: center; gap: 10px;
  padding: 34px 0; font-size: 13.4px; color: var(--xj-muted); letter-spacing: .12em;
}
.xj-meng__result {
  padding: 26px 24px 22px; border-radius: var(--xj-r-md, 14px);
  background: var(--xj-surface); border: 1px solid var(--xj-line-2);
  box-shadow: var(--xj-shadow); animation: xjMengIn .5s ease both;
}
@keyframes xjMengIn { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }

.xj-meng__summary {
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; flex-wrap: wrap;
  padding-bottom: 16px; border-bottom: 1px dashed var(--xj-line-2); margin-bottom: 20px;
}
.xj-meng__query {
  font-family: var(--xj-serif); font-size: 15.4px; color: var(--xj-ink); letter-spacing: .04em;
}
.xj-meng__matched {
  font-size: 11.8px; letter-spacing: .14em; color: var(--xj-azure);
  padding: 4px 12px; border-radius: 999px; background: rgba(78, 110, 117, .10);
}
.xj-meng__approx {
  margin: 0 0 18px; padding: 11px 14px; border-radius: var(--xj-r-sm, 8px);
  background: rgba(169, 133, 47, .10); border-left: 3px solid var(--xj-brass);
  font-size: 12.6px; line-height: 1.85; color: var(--xj-ink-2);
}

/* ── 单条词条 ── */
.xj-meng__entries { display: flex; flex-direction: column; gap: 18px; }
.xj-meng__entry {
  padding: 20px 18px; border-radius: var(--xj-r-sm, 8px);
  background: var(--xj-surface-2); border: 1px solid var(--xj-line-2);
  border-left: 3px solid var(--xj-muted);
}
.xj-meng__entry--good { border-left-color: var(--xj-vermilion); }
.xj-meng__entry--mid  { border-left-color: var(--xj-azure); }
.xj-meng__entry--care { border-left-color: var(--xj-olive); }

.xj-meng__entry-head {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 14px;
}
.xj-meng__entry-title {
  font-family: var(--xj-serif); font-size: 20px; letter-spacing: .1em;
  color: var(--xj-ink); margin: 0;
}
.xj-meng__tag {
  font-size: 11.2px; letter-spacing: .1em;
  padding: 3px 10px; border-radius: 999px;
}
.xj-meng__tag--cat { background: rgba(113, 105, 92, .12); color: var(--xj-muted); }
.xj-omen--good { background: rgba(176, 58, 46, .12); color: var(--xj-vermilion); }
.xj-omen--mid  { background: rgba(78, 110, 117, .14); color: var(--xj-azure); }
.xj-omen--care { background: rgba(65, 88, 78, .14);  color: var(--xj-olive); }
.xj-meng__hit { font-size: 11.4px; color: var(--xj-muted); letter-spacing: .06em; }

.xj-meng__body { display: flex; flex-direction: column; gap: 14px; }
.xj-meng__block { padding-left: 14px; border-left: 2px solid var(--xj-line-3); }
.xj-meng__block--modern { border-left-color: var(--xj-azure); }
.xj-meng__block--advice { border-left-color: var(--xj-brass); }
.xj-meng__block-title {
  display: block; font-size: 11.6px; letter-spacing: .2em;
  color: var(--xj-brass); margin-bottom: 7px;
}
.xj-meng__block--modern .xj-meng__block-title { color: var(--xj-azure); }
.xj-meng__text {
  margin: 0; font-size: 14.4px; line-height: 2.02; color: var(--xj-ink-2);
  letter-spacing: .04em;
}
.xj-meng__result--empty { text-align: center; }
.xj-meng__empty-note {
  margin: 0; padding: 18px 10px; font-size: 13.8px; line-height: 2;
  color: var(--xj-muted);
}
.xj-meng__boundary {
  margin: 22px 0 0; padding-top: 16px; border-top: 1px solid var(--xj-line-2);
  font-size: 11.6px; line-height: 1.9; color: var(--xj-muted); opacity: .86;
}
/* T32：`.xj-meng__note` 规则随该节点一并撤除 —— 它与结果区 `.xj-meng__boundary`
   逐字重复，已从 render.php 移除（免责统一由 `.xj-meng__boundary` 承担）。 */
.xj-meng__src {
  /* T32：上邻元素由 `.xj-meng__note`（20px）变为结果舞台，间距取回同一档 */
  margin-top: 20px; text-align: center;
  font-size: 11.2px; line-height: 1.85; color: var(--xj-muted); opacity: .7;
}

/* 响应式 */
@media (max-width: 640px) {
  .xj-meng__form { padding: 20px 16px; }
  .xj-meng__result { padding: 20px 14px 18px; }
  .xj-meng__entry { padding: 16px 13px; }
  .xj-meng__entry-title { font-size: 17.6px; }
  .xj-meng__summary { flex-direction: column; align-items: flex-start; gap: 8px; }
}