/* 天枢星馆 · 玄学工具箱 样式（暗色 · 手机优先） */
:root {
  --bg: #0a0a14; --bg2: #12121f; --card: #161628; --line: #2a2a44;
  --txt: #e8e8ea; --mut: #9999aa; --dim: #6f6f7a;
  --gold: #e6c07a; --gold2: #b8945a;
  --red: #e24b4a; --green: #5dcaa5; --blue: #85b7eb;
  --purple: #9b6bd9;
  --r: 14px;
  --glow: 0 0 20px rgba(230,192,122,.3);
  --glow-sm: 0 0 12px rgba(230,192,122,.18);
}
* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
html, body { margin: 0; padding: 0; }
body {
  background: var(--bg); color: var(--txt);
  font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Noto Sans SC", sans-serif;
  font-size: 15px; line-height: 1.6;
  max-width: 720px; margin: 0 auto;
}
a { color: var(--gold); text-decoration: none; }

/* 顶栏 */
#topbar {
  position: sticky; top: 0; z-index: 1000;
  display: flex; align-items: center; gap: 8px;
  padding: 12px 16px;
  background: rgba(20, 20, 26, 0.92); backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--line);
}
#back-btn { background: none; border: none; color: var(--mut); font-size: 20px; padding: 4px 10px 4px 0; cursor: pointer; display: none; }
#app-title { font-size: 17px; font-weight: 500; color: var(--gold); letter-spacing: 1px; }
#topbar .ver { margin-left: auto; font-size: 11px; color: var(--dim); }

/* 主体 */
#view { padding: 14px 14px 92px; min-height: calc(100vh - 130px); }
.view-head h2 { margin: 6px 2px 2px; font-size: 21px; font-weight: 500; color: var(--gold); }
.view-head p { margin: 0 2px 12px; }

/* 通用卡片 */
.card { background: var(--card); border: 1px solid var(--line); border-radius: var(--r); padding: 16px; margin-bottom: 12px; }
.card.form { padding-bottom: 18px; }
.sub-title { font-size: 14px; font-weight: 500; color: var(--gold2); margin: 18px 2px 10px; letter-spacing: 1px; }
.muted { color: var(--mut); } .sm { font-size: 12.5px; }
.hint { font-size: 12px; color: var(--dim); margin: 6px 2px 10px; }
.row-between { display: flex; align-items: center; justify-content: space-between; gap: 8px; }

.lbl { display: block; font-size: 13px; color: var(--mut); margin: 8px 2px 6px; }
.inp {
  width: 100%; padding: 12px 12px; border-radius: 10px;
  background: var(--bg2); border: 1px solid var(--line); color: var(--txt);
  font-size: 15px; outline: none;
}
.inp:focus { border-color: var(--gold2); }
textarea.inp { resize: vertical; font-family: inherit; }
.sm-inp { margin-bottom: 6px; font-size: 13.5px; padding: 9px 10px; }

.btn {
  display: block; width: 100%; margin-top: 12px; padding: 13px;
  border-radius: 12px; border: none; cursor: pointer;
  font-size: 15.5px; font-weight: 500; letter-spacing: 2px;
}
.btn.primary { background: linear-gradient(135deg, #b8945a, #e6c07a); color: #241a08; }
.btn.ghost { background: var(--bg2); color: var(--txt); border: 1px solid var(--line); letter-spacing: 0; }
.btn.sm { display: inline-block; width: auto; padding: 8px 14px; margin-top: 6px; font-size: 13px; border-radius: 9px; }
.btn.combo { background: #63380633; color: var(--gold); border: 1px solid var(--gold2); letter-spacing: 0; font-size: 14px; }
.mini-btn {
  background: var(--bg2); border: 1px solid var(--line); color: var(--txt);
  padding: 5px 12px; border-radius: 8px; font-size: 12.5px; cursor: pointer;
}
.mini-btn.danger { color: var(--red); border-color: #a32d2d66; }

/* 标签 */
.tag { display: inline-block; background: #ffffff10; border: 1px solid var(--line); color: var(--mut); font-size: 12px; padding: 2px 8px; border-radius: 20px; margin: 2px 3px 2px 0; }
.tag.gold { color: var(--gold); border-color: var(--gold2); background: #e6c07a14; }
.tag.warn { color: var(--red); border-color: #a32d2d88; }

/* 首页 */
.hero { padding: 22px 4px 14px; text-align: center; }
.hero-title { font-size: 26px; color: var(--gold); letter-spacing: 6px; font-weight: 500; }
.hero-sub { font-size: 12.5px; color: var(--mut); margin-top: 6px; letter-spacing: 1px; }
.grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 10px; }
.mod-card {
  display: block; background: var(--card); border: 1px solid var(--line);
  border-radius: var(--r); padding: 16px 14px; position: relative; overflow: hidden;
  color: var(--txt);
}
.mod-card::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--mc); }
.mod-icon { width: 34px; height: 34px; color: var(--mc); margin-bottom: 8px; }
.mod-icon svg { width: 100%; height: 100%; }
.mod-title { font-size: 16px; font-weight: 500; }
.combo-badge { font-size: 10.5px; color: var(--gold); border: 1px solid var(--gold2); border-radius: 6px; padding: 1px 5px; margin-left: 6px; vertical-align: 2px; }
.mod-desc { font-size: 12.5px; color: var(--mut); margin-top: 3px; }
.mod-sub { font-size: 11.5px; color: var(--dim); margin-top: 2px; }

/* 记录列表（首页/历史共用） */
.rec-list { display: flex; flex-direction: column; gap: 8px; }
.rec-item { display: flex; align-items: center; gap: 10px; background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; }
.rec-icon { width: 26px; height: 26px; color: var(--gold2); flex: none; }
.rec-icon svg { width: 100%; height: 100%; }
.rec-body { flex: 1; min-width: 0; }
.rec-title { font-size: 14px; color: var(--txt); display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rec-sub { font-size: 12px; color: var(--mut); display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rec-time { font-size: 11px; color: var(--dim); flex: none; }
.hist-item { display: flex; align-items: center; gap: 10px; background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; margin-bottom: 8px; }
.hist-btns { display: flex; gap: 6px; flex: none; }
.hist-list { display: flex; flex-direction: column; }
.link { color: var(--blue); font-size: 13px; }

/* 排盘 */
.pillar-row { display: flex; gap: 8px; margin: 12px 0; flex-wrap: wrap; }
.chip {
  flex: 1; min-width: 62px; text-align: center; background: var(--bg2);
  border: 1px solid var(--line); border-radius: 12px; padding: 8px 4px;
}
.chip-hl { border-color: var(--gold2); background: #e6c07a14; }
.chip-pos { display: block; font-size: 11px; color: var(--mut); }
.chip-gz { display: block; font-size: 19px; font-weight: 500; letter-spacing: 1px; color: var(--gold); }
.chip-ss { display: block; font-size: 11px; color: var(--dim); margin-top: 2px; }

.result-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 4px; }
.duan { background: var(--bg2); border: 1px solid var(--line); border-radius: 12px; padding: 14px; margin-top: 6px; }
.duan-title { font-size: 13px; color: var(--gold2); letter-spacing: 2px; margin-bottom: 6px; }
.duan-concl { font-size: 15px; margin: 6px 0; color: var(--txt); }
.duan-item { display: flex; gap: 8px; padding: 6px 0; border-top: 1px dashed #ffffff12; }
.duan-k { flex: none; font-size: 12.5px; color: var(--gold); padding-top: 1px; }
.duan-s { font-size: 13.5px; color: #cfcfd6; }
.dim { border: 1px solid var(--line); border-radius: 12px; margin-bottom: 8px; background: var(--bg2); overflow: hidden; }
.dim summary { padding: 11px 14px; cursor: pointer; font-size: 14px; color: var(--gold); list-style: none; }
.dim summary::-webkit-details-marker { display: none; }
.dim summary::after { content: '＋'; float: right; color: var(--dim); }
.dim[open] summary::after { content: '－'; }
.dim-body { padding: 2px 14px 12px; }
.dim-row { font-size: 13px; padding: 4px 0; color: #c9c9d0; }
.dim-row b { color: var(--mut); font-weight: 400; margin-right: 6px; }

.wxbox { background: var(--bg2); border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; }
.wxrow { display: flex; align-items: center; gap: 10px; padding: 4px 0; }
.wxname { width: 22px; font-size: 13px; color: var(--gold); flex: none; }
.wxbar { flex: 1; height: 8px; background: #ffffff0d; border-radius: 5px; overflow: hidden; }
.wxfill { height: 100%; background: linear-gradient(90deg, #b8945a, #e6c07a); border-radius: 5px; }
.wxnum { width: 30px; text-align: right; font-size: 12px; color: var(--mut); }

/* 四柱反推 */
.ft-gz-in { width: 23%; text-align: center; letter-spacing: 2px; font-weight: 600; }
.ft-row { display: flex; justify-content: space-between; align-items: center; padding: 7px 10px; border-bottom: 1px solid var(--line); cursor: pointer; }
.ft-row:last-child { border-bottom: none; }
.ft-row:hover { background: #712b1310; }
.ft-dt { font-weight: 600; font-size: 13.5px; }
.ft-gz { color: var(--mut); font-size: 12.5px; letter-spacing: 1px; }

/* 定位十神 + 十神象意 */
.dw-list { display: flex; flex-wrap: wrap; gap: 6px 10px; padding: 2px 0 4px; }
.dw-tag { font-size: 12.5px; color: #cfcfd6; }
.dw-tag b { color: var(--gold); font-weight: 400; margin-right: 3px; }
.xiangyi { display: block; font-size: 11.5px; color: var(--dim); margin-top: 3px; line-height: 1.5; }

/* 起卦 */
.hexagram { text-align: center; padding: 12px 0 6px; }
.hx-top, .hx-bottom { font-size: 16px; color: var(--gold); }
.hx-line { font-size: 40px; letter-spacing: 12px; color: var(--gold); margin: 8px 0; font-family: "Songti SC", "Noto Serif SC", serif; }
.hx-name { text-align: center; font-size: 20px; color: var(--gold); margin: 10px 0 12px; font-weight: 500; }
.steps { background: var(--bg2); border-radius: 10px; padding: 10px 14px; margin-bottom: 12px; }
.step { font-size: 13px; color: var(--mut); padding: 3px 0; }
.warn-card { border-color: #a32d2d66; color: #f5b5b5; }
.warn-card b { color: var(--red); }

/* 山向 */
.pt-row { display: flex; gap: 10px; }
.pt { flex: 1; min-width: 0; }
.srch { position: relative; }
.srch-list { position: absolute; left: 0; right: 0; top: 100%; z-index: 1200; background: #23232d; border: 1px solid var(--line); border-radius: 10px; margin: 4px 0 0; padding: 4px 0; list-style: none; max-height: 220px; overflow: auto; }
.srch-list li { padding: 9px 12px; font-size: 13px; color: var(--txt); cursor: pointer; border-bottom: 1px solid #ffffff0a; }
.srch-list li.loading { color: var(--dim); cursor: default; }
.srch-list li:hover { background: #ffffff0d; }
.srch-list .srch-name { font-weight: 500; color: var(--txt); }
.srch-list .srch-addr { font-size: 11.5px; color: var(--dim); margin-top: 2px; line-height: 1.35; }
.manual { margin-top: 10px; }
.manual summary { font-size: 13px; color: var(--mut); cursor: pointer; }
#mapWrap { position: relative; border-radius: var(--r); overflow: hidden; border: 1px solid var(--line); margin-bottom: 12px; background: #0e0e13; }
#sx-map { height: 330px; width: 100%; z-index: 0; }
#compassOverlay {
  position: absolute; left: 0; top: 0; width: 300px; height: 300px;
  z-index: 400; pointer-events: none; display: none;
  transform: translate(-50%, -50%);
}
#compassOverlay svg { width: 100%; height: 100%; }
.big-read { font-size: 15px; padding: 8px 0; }
.big-read b { font-size: 28px; color: var(--gold); margin-right: 8px; font-family: "Songti SC", serif; }
.big-read.mag b { color: var(--green); font-size: 22px; }
.numtab { border-top: 1px dashed #ffffff12; margin-top: 8px; padding-top: 6px; }
.numtab > div { display: flex; justify-content: space-between; padding: 5px 0; font-size: 13.5px; }
.numtab span { color: var(--mut); }
.warn-row { color: var(--red); font-size: 13px; padding-top: 6px; }
.rec-row { display: flex; align-items: center; gap: 8px; padding: 8px 0; border-bottom: 1px dashed #ffffff12; }
.rec-main { flex: 1; font-size: 13.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rec-sub { font-size: 11.5px; color: var(--dim); }
.sw-row { display: flex; align-items: center; justify-content: space-between; padding: 10px 0; border-bottom: 1px dashed #ffffff12; cursor: pointer; }
.sw-name { font-size: 14px; display: flex; flex-direction: column; }
.sw-row input, .sw input { accent-color: var(--gold); width: 20px; height: 20px; }
.sw { display: inline-flex; align-items: center; gap: 8px; font-size: 13.5px; color: var(--txt); cursor: pointer; }
.sw-row input[type=checkbox] { margin: 0; }
.sw-row:last-child { border-bottom: none; }

/* 底栏 */
#bottom-nav {
  position: fixed; bottom: 0; left: 50%; transform: translateX(-50%);
  width: 100%; max-width: 720px; z-index: 1100;
  display: flex; background: #191920f2; backdrop-filter: blur(10px);
  border-top: 1px solid var(--line); padding-bottom: env(safe-area-inset-bottom);
}
.tab {
  flex: 1; text-align: center; padding: 10px 0 8px;
  color: var(--dim); font-size: 11.5px; cursor: pointer;
  display: flex; flex-direction: column; align-items: center; gap: 3px;
}
.tab svg { width: 22px; height: 22px; }
.tab.active { color: var(--gold); }

/* Toast */
#toast {
  position: fixed; left: 50%; bottom: 84px; transform: translateX(-50%) translateY(20px);
  background: #2b2b36f2; color: var(--txt); font-size: 13.5px;
  padding: 10px 18px; border-radius: 20px; border: 1px solid var(--line);
  opacity: 0; pointer-events: none; transition: all .25s; z-index: 2000; max-width: 86vw;
}
#toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }

/* AI 深度解读面板 */
.ai-msgs { max-height: 340px; overflow-y: auto; display: flex; flex-direction: column; gap: 8px; padding: 4px 0 10px; }
.ai-msg { max-width: 92%; padding: 9px 13px; border-radius: 12px; font-size: 13.5px; line-height: 1.65; white-space: pre-wrap; word-break: break-word; }
.ai-user { align-self: flex-end; background: #b8945a33; border: 1px solid #b8945a55; color: #f3ead6; }
.ai-bot { align-self: flex-start; background: var(--bg2); border: 1px solid var(--line); color: #d4d4db; }
.ai-hint { font-size: 12.5px; color: var(--mut); padding: 6px 2px 10px; line-height: 1.6; }
.ai-input { display: flex; gap: 8px; }
.ai-input .inp { flex: 1; }
.ai-input .btn { margin: 0; width: auto; padding: 10px 18px; flex: none; }
.ai-input .btn:disabled, .ai-input .inp:disabled { opacity: 0.45; }
/* v0.44.10 收起态：面板默认只剩「输入框 + 发送 + 展开箭头」一行 */
.ai-line { display: flex; gap: 8px; align-items: center; }
.ai-line .inp { flex: 1; min-width: 0; }
.ai-line .btn { margin: 0; width: auto; padding: 10px 18px; flex: none; }
.ai-line .btn:disabled, .ai-line .inp:disabled { opacity: 0.45; }
.ai-caret { flex: none; width: 30px; text-align: center; padding: 8px 0; }
.ai-body { margin-top: 4px; }

/* ═══ 卦象解读面板 ═══ */
.interp-card { margin-top: 10px; }
.interp-head-row { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.interp-badge { font-size: 13px; font-weight: 600; padding: 2px 10px; border-radius: 10px; white-space: nowrap; }
.rating-great { background: #c8ff0033; color: #d4ff55; }
.rating-good { background: #4ade8022; color: #6ee7a7; }
.rating-small-good { background: #93c5fd22; color: #93c5fd; }
.rating-flat { background: #ffffff11; color: #ccc; }
.rating-small-bad { background: #fb923c22; color: #fdba74; }
.rating-bad { background: #ef444422; color: #f87171; }
.rating-terrible { background: #dc262633; color: #fca5a5; }
.interp-hx-name { font-size: 17px; font-weight: 700; font-family: "Songti SC", "SimSun", serif; }
.judgment-box { padding: 10px 0; }
.j-text { font-size: 15.5px; line-height: 1.7; font-family: "Songti SC", "SimSun", serif; margin-bottom: 6px; }
.j-commentary { font-size: 12.5px; color: var(--dim); line-height: 1.65; }
.trigram-desc { display: flex; flex-direction: column; gap: 6px; padding: 8px 0; border-top: 1px dashed #ffffff12; }
.td-row { display: flex; gap: 6px; font-size: 13px; }
.td-label { color: var(--mut); min-width: 28px; }
.sym-box { padding: 8px 0; border-top: 1px dashed #ffffff12; }
.sym-line { font-size: 13.5px; line-height: 1.65; margin-bottom: 4px; }
.sym-line.meaning { color: #f59e0b99; }
.changed-hex { display: inline-flex; align-items: center; gap: 6px; margin-top: 8px; padding: 6px 12px; background: #818cf822; border-radius: 8px; font-size: 13.5px; border: 1px solid #818cf844; }
.changed-rating { font-size: 12px; padding: 1px 7px; border-radius: 8px; background: #ffffff11; }

/* 爻辞 */
.lines-box { padding: 2px 0; }
.line-row { display: flex; align-items: flex-start; gap: 8px; padding: 8px 4px; border-bottom: 1px dashed #ffffff0a; transition: background .2s; }
.line-row:last-child { border-bottom: none; }
.line-row.changing { background: #f59e0b12; border-radius: 6px; margin: 2px -4px; padding: 8px; }
.line-num { min-width: 32px; font-size: 12.5px; color: var(--gold); font-weight: 600; padding-top: 1px; }
.line-body { flex: 1; min-width: 0; }
.line-text { font-size: 14px; line-height: 1.65; font-family: "Songti SC", "SimSun", serif; }
.line-text.changing-text { color: #fbbf24; font-weight: 600; }
.line-xiang { font-size: 12px; color: var(--dim); margin-top: 3px; line-height: 1.55; }
.changing-tag { font-size: 11px; color: #fbbf24; background: #f59e0b22; border: 1px solid #f59e0b55; padding: 1px 7px; border-radius: 8px; white-space: nowrap; height: fit-content; margin-top: 2px; }

/* 分类断语 */
.cat-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.cat-item { display: flex; flex-direction: column; gap: 2px; padding: 8px 10px; background: #ffffff06; border-radius: 8px; border: 1px solid #ffffff08; }
.cat-key { font-size: 12px; color: var(--gold); font-weight: 600; }
.cat-val { font-size: 12.5px; color: var(--txt); line-height: 1.6; }

/* 大象 */
.image-text { font-size: 13.5px; line-height: 1.7; color: var(--dim); font-style: italic; }

/* 动爻控制条 */
.cl-control { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.cl-label { font-size: 13px; color: var(--mut); margin-right: 2px; }
.cl-btn { font-size: 13px; padding: 4px 11px; border-radius: 8px; border: 1px solid #ffffff22; background: #ffffff0a; color: var(--txt); cursor: pointer; transition: all .15s; }
.mod-mv:hover { border-color: var(--gold2); color: var(--gold2); }

/* ═══ 干支神数（刘海蟾真人）═══ */
/* 三柱玉牌 */
.gz-san-wrap { width: 260px; margin: 6px auto 14px; }
.gz-san-caps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 8px; }
.gz-cap {
  font-size: 10.5px; letter-spacing: 1px; color: var(--dim);
  text-align: center; font-family: "Songti SC", "Noto Serif SC", serif;
}
.gz-cap--mid {
  color: var(--gold2); font-weight: 600; letter-spacing: 0.5px;
  border: 1px solid var(--gold2); border-radius: 999px; padding: 1px 0;
  background: #e6c07a10;
}
.gz-san { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; font-family: "Songti SC", "Noto Serif SC", serif; }
.gz-pillar {
  display: flex; align-items: center; justify-content: center;
  height: 64px; padding: 0 6px;
  font-size: 34px; font-weight: 400; letter-spacing: 2px; color: var(--gold);
  background: linear-gradient(160deg, #2a2a36, #1c1c24);
  border: 1px solid var(--gold2); border-radius: 12px;
  box-shadow: inset 0 1px 0 #ffffff14, 0 2px 8px #00000040;
}
.gz-pillar--mid { color: var(--gold); background: linear-gradient(160deg, #322a1c, #241d12); border-color: var(--gold); }
.gz-key { text-align: center; font-size: 11px; color: var(--mut); letter-spacing: 3px; margin-top: 8px; }
/* 原典卷轴 */
.gz-scroll { margin: 4px 0 2px; }
.gz-poem-head {
  font-size: 12px; line-height: 1.6; color: var(--dim);
  margin-top: 8px;
  font-family: "Songti SC", "Noto Serif SC", serif;
}
.gz-poem-head-k {
  display: inline-block; font-size: 10px; letter-spacing: 2px; color: var(--gold2);
  border: 1px solid var(--gold2); border-radius: 999px; padding: 0 7px; margin-right: 8px;
  vertical-align: middle;
}
.gz-scroll-h { font-size: 11px; letter-spacing: 3px; color: var(--gold2); text-align: center; margin-bottom: 8px; }
.poem { background: linear-gradient(180deg, #1f1f29, #1a1a22); border: 1px solid var(--line); border-radius: 12px; padding: 18px 18px; font-size: 16px; line-height: 2.1; color: #d8d8df; text-align: center; letter-spacing: 1.5px; font-family: "Songti SC", "Noto Serif SC", serif; }
/* 解释层 */
.interp { margin-top: 18px; }
/* 断曰印章 */
.gz-verdict {
  display: flex; align-items: center; justify-content: center; gap: 10px;
  padding: 10px 16px; border-radius: 999px; margin: 0 auto 16px; width: fit-content;
  border: 1px solid var(--line); background: var(--bg2);
}
.gz-verdict-k { font-size: 12px; letter-spacing: 3px; color: var(--mut); }
.gz-verdict-v { font-size: 19px; font-weight: 700; letter-spacing: 4px; }
.gz-verdict--good { background: #12352418; border-color: #5dcaa580; }
.gz-verdict--good .gz-verdict-v { color: var(--green); }
.gz-verdict--mid  { background: #b8945a14; border-color: var(--gold2); }
.gz-verdict--mid  .gz-verdict-v { color: var(--gold); }
.gz-verdict--bad  { background: #e24b4a14; border-color: #e24b4a66; }
.gz-verdict--bad  .gz-verdict-v { color: var(--red); }
/* 语义 ledger：左 icon + 右文 */
.gz-layer { display: flex; gap: 12px; padding: 12px 0; border-top: 1px dashed var(--line); }
.gz-layer-ico {
  flex: none; width: 34px; height: 34px; border-radius: 9px;
  display: flex; align-items: center; justify-content: center;
  font-family: "Songti SC", serif; font-size: 17px; font-weight: 600;
  color: var(--gold); background: #e6c07a14; border: 1px solid var(--gold2);
}
.gz-layer-ico--now { color: var(--purple); background: #9b6bd914; border-color: #9b6bd966; }
.gz-layer-body { flex: 1; min-width: 0; }
.gz-layer-h { font-size: 11px; letter-spacing: 2px; color: var(--gold2); margin-bottom: 3px; }
.gz-layer-t { font-size: 14.5px; line-height: 1.85; color: var(--txt); font-family: "Songti SC", "Noto Serif SC", serif; }
/* 判断要素 2×2 栅格（Layer3 可视化） */
.gz-factors { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 14px 0 4px; }
.gz-factor { background: var(--bg2); border: 1px solid var(--line); border-radius: 10px; padding: 8px 10px; }
.gz-factor-k { display: block; font-size: 11px; letter-spacing: 2px; color: var(--gold2); margin-bottom: 2px; }
.gz-factor-v { font-size: 13.5px; font-weight: 500; color: var(--txt); line-height: 1.5; }
/* 核心判断 hero */
.gz-core {
  margin-top: 14px; padding: 14px 16px; border-radius: 12px;
  background: linear-gradient(135deg, #2a2140, #1c1830);
  border: 1px solid #9b6bd955; border-left: 3px solid var(--purple);
}
.gz-core-h { font-size: 11px; letter-spacing: 3px; color: #b79be0; margin-bottom: 6px; }
.gz-core-m { font-size: 17px; font-weight: 600; line-height: 1.7; color: #f0e9ff; letter-spacing: 0.5px; font-family: "Songti SC", "Noto Serif SC", serif; }
/* 注意 / 警示 */
.gz-caution {
  margin-top: 12px; padding: 10px 12px; border-radius: 10px;
  font-size: 13px; line-height: 1.7; color: #f0b8b7;
  background: #e24b4a12; border: 1px solid #e24b4a40; border-left: 3px solid var(--red);
  font-family: "Songti SC", "Noto Serif SC", serif;
}
/* 综合研判（Phase 4 POC） */
.gz-reason { margin-top: 14px; padding: 14px 16px; border-radius: 12px; background: var(--bg2); border: 1px solid var(--line); border-top: 2px solid var(--purple); }
.gz-reason-h { font-size: 11px; letter-spacing: 3px; color: #b79be0; margin-bottom: 8px; display: flex; align-items: center; gap: 8px; }
.gz-reason-tag { font-size: 9.5px; letter-spacing: 1px; color: var(--purple); border: 1px solid #9b6bd966; border-radius: 5px; padding: 1px 5px; }
.gz-reason-concl { font-size: 14.5px; line-height: 1.8; color: var(--txt); font-family: "Songti SC", "Noto Serif SC", serif; }
.gz-reason-sigs { margin-top: 10px; display: flex; flex-wrap: wrap; gap: 6px; }
.gz-sig { font-size: 12px; color: var(--purple); background: #9b6bd914; border: 1px solid #9b6bd955; border-radius: 999px; padding: 2px 10px; }
.gz-reason-meta { margin-top: 10px; font-size: 11px; color: var(--dim); letter-spacing: 0.5px; }
.result-qu { font-size: 12px; color: var(--gold2); border: 1px solid var(--gold2); border-radius: 999px; padding: 1px 10px; letter-spacing: 1px; }
/* .seg / .seg-btn / .inp 已全局定义 */
.matter-opt { display: flex; align-items: center; gap: 6px; }



/* ═══ 神兵奇门 · 九宫盘 ═══ */
.qi-head { display: flex; flex-direction: column; gap: 3px; margin: 2px 0 12px; }
.qi-dy { font-size: 16px; font-weight: 700; color: var(--gold); }
.qi-xun { font-size: 12px; color: var(--mut); }
.qi-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.qi-cell { background: #ffffff08; border: 1px solid var(--line); border-radius: 10px; padding: 8px 7px; min-height: 96px; display: flex; flex-direction: column; gap: 2px; }
.qi-center { background: #ffffff12; border-color: #ffffff22; }
.qi-yong { border-color: var(--gold); box-shadow: 0 0 0 1px var(--gold) inset; }
.qi-kong { opacity: .62; }
.qi-bagua { font-size: 13px; font-weight: 700; color: var(--txt); display: flex; align-items: center; gap: 4px; }
.qi-ys-tag { font-size: 10px; background: var(--gold); color: #1b1408; border-radius: 5px; padding: 1px 5px; font-weight: 700; }
.qi-kw-tag { font-size: 10px; background: #6b4bbf; color: #fff; border-radius: 5px; padding: 1px 5px; }
.qi-shen { font-size: 11px; color: #c9a86a; }
.qi-star { font-size: 13px; font-weight: 600; color: #e8c98a; }
.qi-gan { font-size: 15px; font-weight: 700; display: flex; align-items: baseline; gap: 4px; }
.qi-over { font-size: 11px; font-weight: 400; color: var(--mut); }
.qi-men { font-size: 12px; color: #8fb4d6; font-weight: 600; }
.qi-mini { font-size: 10px; line-height: 1.4; color: var(--mut); margin-top: 2px; }
.qi-yong-box { margin-top: 14px; }
.qi-disclaim, .wx-disclaim { margin-top: 12px; font-size: 11.5px; color: var(--mut); opacity: .8; }

/* 起局方式 分段控件 */
.seg { display: flex; gap: 6px; margin-bottom: 4px; }
.seg-btn { flex: 1; padding: 9px 4px; border-radius: 9px; border: 1px solid var(--line); background: #ffffff08; color: var(--txt); font-size: 13px; cursor: pointer; transition: all .15s; }
.seg-btn:hover { border-color: var(--gold2); }
.seg-btn.active { background: var(--gold); color: #1b1408; border-color: var(--gold); font-weight: 600; }

/* ═══ 七政四余 · 卡牌 ═══ */
.wx-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; margin: 4px 0 2px; }
.wx-card { background: #ffffff08; border: 1px solid var(--line); border-radius: 12px; padding: 10px 11px; }
.wx-tag { font-size: 12px; color: #c9a86a; font-weight: 600; margin-bottom: 4px; }
.wx-wx { color: #8fb4d6; font-weight: 700; }
.wx-title { font-size: 15px; font-weight: 700; color: var(--txt); margin-bottom: 5px; }
.wx-core { font-size: 12.5px; line-height: 1.6; color: var(--dim); }
.wx-q { margin: 12px 0 2px; padding: 8px 10px; background: #ffffff0a; border-left: 3px solid var(--gold); border-radius: 6px; font-size: 13.5px; }
.wx-line { font-size: 13.5px; line-height: 1.75; color: var(--txt); margin: 4px 0; }
.wx-bless { margin-top: 14px; padding: 12px 14px; background: linear-gradient(135deg, #2f5d7c22, #6b3fa022); border: 1px solid #6b3fa044; border-radius: 12px; font-size: 14px; line-height: 1.8; color: #e6d3b3; }

@media (min-width: 560px) { .wx-cards { grid-template-columns: repeat(4, 1fr); } }

/* 移动端适配 */
@media (max-width: 520px) {
  #compassOverlay { width: 210px; height: 210px; }
  .grid { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 560px) {
  .grid { grid-template-columns: repeat(4, 1fr); }
  #sx-map { height: 380px; }
}

/* 吕式八字 · 模式 tab 与吉凶徽章 */
.bz-tabs { display: flex; gap: 6px; margin: 2px 2px 12px; flex-wrap: wrap; }
.bz-tab { flex: 1; min-width: 88px; padding: 8px 4px; border-radius: 10px; border: 1px solid var(--line); background: #ffffff08; color: var(--txt); font-size: 12.5px; cursor: pointer; transition: all .15s; text-align: center; line-height: 1.35; }
.bz-tab:hover { border-color: var(--gold2); color: var(--gold); }
.tag.red { color: var(--red); border-color: #a32d2d88; background: #e24b4a14; }
.tag.blue { color: var(--blue); border-color: #85b7eb66; background: #85b7eb14; }
.tag.yellow { color: #f2d48a; border-color: #b8945a88; background: #f2d48a14; }
.tag.gray { color: var(--mut); }
.ok { color: var(--gold); font-weight: 600; }
.bad { color: var(--red); font-weight: 600; }

/* ═══ 64 卦库 ═══ */
.hx-lib-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; margin-top: 10px; }
@media (min-width: 560px) { .hx-lib-grid { grid-template-columns: repeat(4, 1fr); } }
.hx-lib-item { border: 1px solid var(--line); border-radius: 11px; padding: 10px 6px; cursor: pointer; text-align: center; transition: all .15s; background: #ffffff05; }
.hx-lib-item:hover { border-color: var(--gold2); background: #ffffff0d; }
.hx-lib-item .lib-sym { font-size: 22px; color: var(--gold); letter-spacing: 1px; font-family: "Songti SC", "Noto Serif SC", serif; }
.hx-lib-item .lib-name { font-size: 13px; font-weight: 600; margin: 5px 0 2px; }
.hx-lib-item .lib-sub { font-size: 11px; color: var(--mut); }
.hx-lib-item .lib-rating { font-size: 11px; margin-top: 4px; color: var(--gold2); }

/* ═══ 64 卦库 · 寻卦工具栏 ═══ */
.lib-toolbar { margin-bottom: 2px; }
.lib-filter-row { display: flex; gap: 6px; margin-top: 8px; }
.lib-filter-row select { flex: 1; }

/* ═══ 爻辞象义（白话） ═══ */
.line-xiangyi { margin-top: 6px; padding: 6px 9px; border-left: 3px solid var(--gold2); background: #ffffff06; border-radius: 0 6px 6px 0; font-size: 12.5px; color: var(--txt); line-height: 1.5; }

/* ═══ 爻内纳甲（干支·六亲·世应） ═══ */
.line-najia { margin-top: 5px; font-size: 11.5px; color: var(--mut); }
.line-najia .najia-gz { color: var(--gold); font-family: "Songti SC", "Noto Serif SC", serif; margin-right: 4px; }
.line-najia .najia-qin { font-weight: 600; }
.najia-sy { display: inline-block; font-size: 10px; padding: 0 4px; border-radius: 4px; margin-left: 4px; line-height: 1.5; vertical-align: middle; }
.najia-sy.shi { background: #c9a35c22; color: #c9a35c; border: 1px solid #c9a35c55; }
.najia-sy.ying { background: #8aa7c922; color: #8aa7c9; border: 1px solid #8aa7c955; }

/* ═══ 纳甲总览表 ═══ */
.najia-head { font-size: 13px; font-weight: 600; color: var(--gold); margin-bottom: 8px; }
.najia-table { display: flex; flex-direction: column; }
.najia-row { display: grid; grid-template-columns: 44px 1fr 1fr 32px; align-items: center; gap: 6px; padding: 6px 4px; border-bottom: 1px dashed #ffffff0a; font-size: 13px; }
.najia-row:last-child { border-bottom: none; }
.najia-row .najia-pos { color: var(--mut); font-size: 12px; }
.najia-row .najia-gz { color: var(--gold); font-family: "Songti SC", "Noto Serif SC", serif; font-weight: 600; }
.najia-row .najia-qin { font-weight: 600; }
.najia-row .najia-sy { text-align: center; }

/* ═══ 择吉选字 · 字词 chips ═══ */
.zj-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.zj-chip { display: inline-flex; align-items: baseline; gap: 2px; padding: 5px 10px; border: 1px solid var(--line); border-radius: 8px; background: #ffffff06; color: var(--txt); font-size: 14px; font-family: "Songti SC", "Noto Serif SC", serif; transition: all .15s; }
.zj-chip:hover { border-color: var(--gold2); background: #ffffff0d; }
.zj-chip i { font-style: normal; font-size: 10px; color: var(--mut); font-family: -apple-system, "PingFang SC", sans-serif; }

/* ═══ 阴盘奇门 · 九宫格 ═══ */
.yp-grid { display: grid; grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(3, 1fr); gap: 5px; width: min(100%, 420px); aspect-ratio: 1 / 1; margin: 10px 0; }
.yp-cell { border: 1px solid var(--line); border-radius: 8px; padding: 4px; background: #ffffff05; display: flex; flex-direction: column; height: 100%; }
/* 空亡：淡红底（〇见符号层） */
.yp-cell.kong { background: #ff52520f; border-color: #ff525244; }
/* 符号统一颜色（不按类型分色），凶格仅作用于符号本身 */
.yp-mini { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: auto auto auto; gap: 1px 4px; font-size: 15px; line-height: 1.25; height: 100%; min-height: 0; align-items: center; font-family: "Songti SC", "Noto Serif SC", serif; color: var(--txt); }
.yp-mini .m-shen { grid-column: 1; grid-row: 1; text-align: left; font-weight: 700; }
.yp-mini .m-kong { grid-column: 2; grid-row: 1; text-align: right; color: #ff8a8a; font-weight: 700; }
.yp-mini .m-sky { grid-column: 1; grid-row: 2; text-align: left; font-weight: 700; }
.yp-mini .m-base { grid-column: 1; grid-row: 3; text-align: left; color: var(--mut); }
.yp-mini .m-star { grid-column: 2; grid-row: 2; text-align: right; }
.yp-mini .m-men { grid-column: 2; grid-row: 3; text-align: right; }
/* 凶格符号着色：入墓天干=土色，击刑天干=紫，门迫门=红，马=红 */
.yp-mini .x-mu { color: #c8a86a; }      /* 土色（入墓） */
.yp-mini .x-xing { color: #b07cd6; }    /* 紫色（击刑） */
.yp-mini .x-xingmu { color: #4ea3ff; }  /* 蓝色（既击刑又入墓） */
.yp-mini .x-po { color: #ff5a4d; font-weight: 700; }  /* 红（门迫） */
.yp-out .x-ma { color: #ff5a4d; font-weight: 700; }    /* 红（马） */
.yp-mini .m-center-fuyin { grid-column: 1 / 3; grid-row: 1 / 4; display: flex; align-items: center; justify-content: center; font-size: 20px; font-weight: 700; color: var(--gold2); }
.yp-out { font-size: 11px; color: var(--mut); margin-top: 2px; text-align: center; }
.yp-info { font-size: 13px; line-height: 1.7; margin: 8px 0; padding: 10px 12px; background: #ffffff05; border-radius: 8px; border: 1px solid var(--line); }
.yp-yong { margin-top: 10px; padding: 10px 12px; background: #ffffff05; border-radius: 8px; border: 1px solid var(--line); }
.yp-yong .sub-title { margin-bottom: 6px; color: var(--gold2); }
.yp-yong-row { display: flex; gap: 10px; font-size: 13px; padding: 3px 0; border-bottom: 1px dashed var(--line); }
.yp-yong-k { min-width: 92px; color: var(--mut); }
.yp-ss { color: #7fb3ff; margin-left: auto; }
/* 阴盘奇门 · 格局面板（D-006 第 1 批：反吟／孤虚／日月同辉／四纲，2026-10-06 接线） */
.yp-pattern { margin-top: 10px; padding: 10px 12px; background: #ffffff05; border-radius: 8px; border: 1px solid var(--line); }
.yp-pattern .sub-title { margin: 0 0 6px; color: var(--gold2); }
.yp-pt-row { display: flex; gap: 10px; font-size: 13px; line-height: 1.7; padding: 3px 0; border-bottom: 1px dashed var(--line); }
.yp-pt-row.sm { font-size: 12px; color: var(--mut); }
/* 阴盘奇门 · 应期行（书 §第六节 p103，2026-10-06 新增） */
.yp-yq { margin: 8px 0 2px; padding: 6px 10px; font-size: 13px; border-left: 2px solid var(--gold2); background: #ffffff06; border-radius: 0 6px 6px 0; }
.yp-yq b { color: var(--gold2); }
.yp-yq-ssn { border-left-color: #b4864a; color: var(--mut); }

/* ===== 飞宫小奇门 · 九宫格（配色统一天枢金色系：吉=亮金 凶=暗金 中=灰） ===== */
.xq-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:10px 0;}
.xq-cell{background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:8px 6px;min-height:78px;position:relative;}
.xq-cell.xq-zhong{border-style:dashed;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.xq-gb{position:absolute;top:5px;left:7px;font-size:11px;color:var(--mut);}
.xq-mini{display:flex;gap:6px;align-items:baseline;margin-top:14px;justify-content:center;}
.xq-gan{font-size:20px;font-weight:700;color:var(--gold);}
.xq-men{font-size:13px;color:var(--txt);background:var(--card);border-radius:6px;padding:1px 5px;}
.xq-zhis{margin-top:5px;display:flex;flex-direction:column;gap:2px;align-items:center;}
.xq-zhi{font-size:11px;color:var(--mut);}
.xq-shen{color:var(--gold);margin:0 2px;}
/* 吉凶金色系（统一天枢金调：吉=亮金 凶=暗金 中=灰） */
/* 吉凶改用「字重 + 亮度」表达，把颜色让给元素类别（干/门/神/星各自配色） */
.xq-cell .ji{font-weight:700;text-shadow:0 0 8px rgba(230,192,122,.25);}
.xq-cell .xiong{opacity:.62;}
.xq-cell .zhong{opacity:.85;}
.xq-shen.ji{color:var(--gold)!important;}
.xq-xing.ji{color:var(--gold)!important;}
.xq-shen.xiong{color:var(--gold2)!important;}
.xq-xing.xiong{color:var(--gold2)!important;}
.xq-yi{margin-top:5px;font-size:10px;color:var(--mut);line-height:1.35;border-top:1px dashed var(--line);padding-top:4px;}
.xq-he{font-size:18px;font-weight:700;color:var(--gold);}
.xq-he.xq-he-ji{color:var(--gold)!important;}
.xq-he.xq-he-chong{color:var(--gold2)!important;}
.xq-info{font-size:12px;color:var(--txt);background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin:6px 0;line-height:1.6;}
.xq-qtype,.xq-lei{font-size:13px;margin:4px 0;color:var(--txt);}
.xq-infer{margin-top:10px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 12px;}
.xq-headline{font-size:14px;font-weight:700;color:var(--gold);line-height:1.6;padding:8px 10px;margin:8px 0;background:rgba(230,192,122,.08);border-left:3px solid var(--gold);border-radius:6px;}
.xq-rule{font-size:12px;line-height:1.7;padding:3px 0;border-bottom:1px dashed var(--line);}
.xq-rid{color:var(--gold);font-weight:700;}
.xq-ev{color:var(--mut);font-size:11px;}
.xq-qx{font-size:11px;line-height:1.6;color:var(--txt);padding:2px 0;}
.xq-samples{margin:8px 0 2px;font-size:12px;display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
.xq-samples .muted{width:100%;margin-bottom:2px;}
.xq-samples button{margin:0;}
/* 起局模式切换：公历时刻 / 干支（原书「丙午日酉时」格式） */
.xq-modes{display:flex;gap:8px;margin-bottom:10px;}
.xq-mode{opacity:.55;}
.xq-mode.on{opacity:1;border-color:var(--gold);color:var(--gold);}
.xq-gzrow{display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
.xq-gzrow .xq-sel{width:auto;min-width:62px;flex:0 0 auto;}
.xq-gzrow .xq-unit{font-size:13px;}
/* 点宫看象意 */
#xq-gong-box .card{margin-top:10px;}
/* 特殊高亮（金色系）：日干宫(亮金框+金字) / 日支宫(暗金框) / 青龙位(暗金框+青龙角标) */
.xq-cell.xq-day-gan{box-shadow:inset 0 0 0 2px var(--gold);}
.xq-cell.xq-day-gan .xq-gan{color:var(--gold);text-shadow:0 0 10px rgba(230,192,122,.4);}
.xq-cell.xq-day-zhi{box-shadow:inset 0 0 0 2px var(--gold2);}
.xq-cell.xq-long-gong{box-shadow:inset 0 0 0 2px var(--gold2);}
.xq-long-tag{position:absolute;top:2px;right:4px;font-size:9px;color:var(--gold2);}

/* ═══ 阴盘奇门 · 解读层（象意直读） ═══ */
.yp-read{margin-top:14px;padding-top:12px;border-top:1px solid var(--line,rgba(255,255,255,.08));}
.yp-read-block{margin:10px 0;padding:8px 10px;border-radius:8px;background:rgba(255,255,255,.03);font-size:13px;line-height:1.7;}
.yp-read-block .sub-title{margin-bottom:6px;}
.yp-read-block b{color:var(--gold,#e6c07a);font-weight:600;}
.yp-wx{margin:6px 0 10px;padding:8px 10px;border-left:3px solid var(--gold2,#b98f4e);background:rgba(230,192,122,.06);font-size:13px;line-height:1.6;}
.yp-read .warn{color:#e08b6a;}

/* ═══ 首页模块 · 编辑位置 ═══ */
.mods-head { display: flex; align-items: center; justify-content: space-between; margin: 16px 2px 8px; }
.mods-head .sub-title { margin: 0; }
.mod-wrap { position: relative; }
.mod-wrap.editing .mod-card { opacity: .72; border-style: dashed; }
.mod-ctrl { position: absolute; top: 5px; right: 5px; display: flex; gap: 4px; z-index: 3; }
.mod-mv { width: 28px; height: 28px; border-radius: 8px; border: 1px solid var(--line); background: #1b1408; color: var(--gold); font-size: 14px; line-height: 1; cursor: pointer; }
.mod-mv:hover { border-color: var(--gold2); color: var(--gold2); }

/* ═══ 日期起卦（三花术） ═══ */
.rq-calc{margin:8px 0 4px;background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:12px 14px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;line-height:1.9;overflow-x:auto;}
.rq-line{padding-left:16px;color:var(--txt);letter-spacing:.5px;}
.rq-eq{margin-top:4px;padding-top:8px;border-top:1px solid var(--line);color:var(--gold);font-weight:700;word-break:break-all;letter-spacing:0;}
.rq-nums-row{display:flex;gap:12px;margin:10px 0 14px;}
.rq-num-card{flex:1;background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:14px 8px;text-align:center;}
.rq-num{font-size:40px;font-weight:700;color:var(--gold);line-height:1.1;text-shadow:0 0 12px rgba(230,192,122,.25);}
.rq-num-core{font-size:13px;color:var(--txt);margin-top:6px;}
.rq-num-pos{font-size:11px;color:var(--mut);margin-top:4px;}

/* ═══ v0.31 视觉增强（吸收自参考项目 feigong-xiaoqimen.html） ═══ */
/* 1) 金色辉光：标题 / 小标题 / 按钮悬停 */
.view-head h2{text-shadow:var(--glow);letter-spacing:2px;}
.sub-title{text-shadow:0 0 10px rgba(230,192,122,.15);}
.btn.ghost:hover{border-color:var(--gold2);box-shadow:var(--glow-sm);}
.btn.primary:hover,.btn.gold:hover{box-shadow:var(--glow-sm);}

/* 2) 九宫格：正方形 + 金色外框 + 细网格线（网格线由 gap 露出底色形成） */
.xq-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:2px;background:var(--line);
  border:2px solid var(--gold2);border-radius:12px;
  overflow:hidden;aspect-ratio:1;margin:12px 0;
}
.xq-cell{
  background:var(--card);border:0;border-radius:0;
  padding:6px 5px;min-height:0;position:relative;
  display:flex;flex-direction:column;
}
.xq-cell.xq-zhong{background:#0e0e1a;align-items:center;justify-content:center;}
.xq-cell.xq-day-gan{box-shadow:inset 0 0 0 2px var(--gold);}
.xq-cell.xq-day-zhi{box-shadow:inset 0 0 0 2px var(--red);}
.xq-cell.xq-long-gong{box-shadow:inset 0 0 0 2px var(--gold2);}

/* 3) 元素配色：干=金 / 门=青 / 神=紫 / 星=蓝灰 / 卦=暗金 */
.xq-gan{font-size:18px;font-weight:700;color:var(--gold);letter-spacing:1px;}
.xq-men{font-size:15px;font-weight:600;background:rgba(91,141,239,.16);color:#9ec0f5;border:0;border-radius:5px;padding:1px 7px;}
.xq-shen{font-size:14px;font-weight:600;color:#c39bee;}
.xq-xing{font-size:14px;font-weight:600;color:#9fb6d6;}
.xq-gb{color:var(--gold2);font-size:11px;}
.xq-zhi{display:flex;align-items:center;gap:5px;justify-content:center;font-size:13px;color:var(--mut);}
.xq-zhis{gap:3px;}
.xq-mini{display:flex;align-items:center;justify-content:center;gap:7px;margin:3px 0;}

/* 4) 四柱卡片 */
.xq-sizhu{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 2px;}
.xq-sz-item{
  flex:1;min-width:62px;background:var(--bg2);
  border:1px solid var(--line);border-radius:10px;
  padding:8px 4px;text-align:center;
}
.xq-sz-item.on{border-color:var(--gold);box-shadow:var(--glow-sm);}
.xq-sz-label{font-size:11px;color:var(--mut);}
.xq-sz-val{font-size:19px;font-weight:700;color:var(--gold);margin-top:2px;letter-spacing:2px;}
.xq-sz-item.on .xq-sz-val{text-shadow:0 0 10px rgba(230,192,122,.4);}

/* 5) 点宫信息框（模态浮层） */
.xq-mask{
  position:fixed;inset:0;z-index:3000;
  background:rgba(4,4,10,.72);
  display:flex;align-items:center;justify-content:center;padding:18px;
}
.xq-modal{
  width:100%;max-width:420px;max-height:78vh;overflow:auto;
  background:var(--card);border:1px solid var(--gold2);border-radius:16px;
  box-shadow:0 0 40px rgba(0,0,0,.6),var(--glow-sm);
  padding:16px 16px 14px;
}
.xq-modal h3{margin:0 0 2px;font-size:16px;color:var(--gold);text-shadow:var(--glow);}
.xq-modal .xq-mrow{margin-top:7px;font-size:13px;line-height:1.7;}
.xq-modal .xq-mclose{margin-top:14px;}

/* ═══ v0.32 飞宫 UI 重构：主次 / 位置 / 仪式感 ═══ */
/* 起盘按钮：全宽、字距拉开，成为表单视觉重心 */
.xq-go-btn{width:100%;margin-top:16px;font-size:15px;letter-spacing:4px;padding:12px;font-weight:700;}

/* 空盘占位符：进模块先看到它，明确「盘还没起」，而非像没加载 */
.xq-empty{text-align:center;padding:38px 16px;color:var(--mut);}
.xq-empty-mark{font-size:44px;color:var(--gold2);opacity:.45;text-shadow:var(--glow);}
.xq-empty-t{font-size:15px;color:var(--gold);margin:8px 0 4px;letter-spacing:3px;}
.xq-empty .muted{font-size:12px;}

/* 案例库折叠面板：默认收起，置于结果区下方，不抢盘面视觉 */
.xq-library{margin-top:14px;}
.xq-lib-toggle{width:100%;display:flex;align-items:center;gap:8px;background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:12px 14px;color:var(--txt);font-size:14px;cursor:pointer;transition:border-color .2s,box-shadow .2s;}
.xq-lib-toggle:hover{border-color:var(--gold2);box-shadow:var(--glow-sm);}
.xq-lib-ico{font-size:16px;}
.xq-lib-count{margin-left:2px;font-size:12px;color:var(--mut);}
.xq-lib-caret{margin-left:auto;color:var(--gold);transition:transform .2s;font-size:13px;}
.xq-lib-toggle.open .xq-lib-caret{transform:rotate(90deg);}
.xq-lib-body{padding:12px 2px 4px;}
.xq-lib-group{margin-bottom:12px;}
.xq-lib-h{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--txt);margin-bottom:8px;font-weight:600;}
.xq-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex:0 0 auto;}
.dot-qi{background:var(--gold);}
.dot-an{background:#b98fe8;}
.dot-lian{background:#8fb8f0;}
.xq-chips{display:flex;flex-wrap:wrap;gap:6px;}
.xq-chip{margin:0!important;}

/* 九宫格：居中限宽，宽屏不再被拉成巨高 */
.xq-grid{max-width:440px;margin:12px auto;}

/* 九宫标题 + 盘面要点速览条（逻辑层：一眼看清格局） */
.xq-grid-cap{text-align:center;font-size:12px;color:var(--gold2);letter-spacing:4px;margin-top:6px;}
.xq-summary{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:10px 0 4px;}
.xq-sumi{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--txt);background:var(--bg2);border:1px solid var(--line);border-radius:20px;padding:3px 10px;}
.xq-sumi i{font-style:normal;font-size:10px;color:var(--mut);}
.xq-sumi.ok{border-color:var(--gold);color:var(--gold);}
.xq-sumi.warn{border-color:var(--red);color:var(--red);}

/* 判词主视觉：印章式「断」+ 金色敕令感（仪式感重心） */
.xq-verdict{display:flex;align-items:center;gap:12px;margin:12px 0 6px;padding:12px 14px;background:linear-gradient(135deg,rgba(230,192,122,.12),rgba(230,192,122,.04));border:1px solid rgba(230,192,122,.3);border-radius:12px;box-shadow:var(--glow-sm);}
.xq-seal{flex:0 0 auto;width:38px;height:38px;border-radius:8px;display:flex;align-items:center;justify-content:center;background:var(--gold);color:#1a1408;font-size:20px;font-weight:800;box-shadow:0 0 16px rgba(230,192,122,.5);}
.xq-verdict-t{font-size:15px;font-weight:700;color:var(--gold);line-height:1.6;text-shadow:var(--glow);}
.xq-headline{font-size:14px;font-weight:700;color:var(--gold);line-height:1.6;padding:8px 10px;margin:8px 0;background:rgba(230,192,122,.08);border-left:3px solid var(--gold);border-radius:6px;}

/* 推理区块标签：金色 pill，强化「分节 + 证据链」结构感 */
.xq-infer .sub-title{display:inline-block;margin:14px 0 6px;padding:2px 12px;background:rgba(230,192,122,.1);border:1px solid rgba(230,192,122,.28);border-radius:20px;font-size:12px;color:var(--gold);}
.xq-infer .sub-title:first-of-type{margin-top:6px;}



/* ══ 吕式神兵奇门 · 分层解读（qlv-*） ══
   设计意图：结论先行 → 时间局 → 事实局 → 限制 → 依据折叠。
   事实轴用勾选框表达「已知/未知」，让缺条件这件事在视觉上不可回避。 */

/* 结论卡：三种状态各有配色 */
.qlv-verdict { border-left: 3px solid var(--gold2); }
.qlv-verdict.qlv-open { border-left-color: var(--green); }
.qlv-verdict.qlv-cond { border-left-color: var(--gold); }
.qlv-verdict.qlv-blocked { border-left-color: var(--red); }
.qlv-verdict-tag {
  display: inline-block; font-size: 11px; letter-spacing: .06em;
  padding: 3px 10px; border-radius: 20px; margin-bottom: 8px;
  background: rgba(230,192,122,.12); color: var(--gold); border: 1px solid var(--line-gold, rgba(230,192,122,.24));
}
.qlv-verdict.qlv-open .qlv-verdict-tag { background: rgba(93,202,165,.12); color: var(--green); border-color: rgba(93,202,165,.3); }
.qlv-verdict.qlv-blocked .qlv-verdict-tag { background: rgba(226,75,74,.12); color: var(--red); border-color: rgba(226,75,74,.32); }
.qlv-verdict-txt { font-size: 14.5px; line-height: 1.78; color: var(--txt); }
.qlv-advice {
  margin-top: 10px; padding: 10px 12px; border-radius: 10px; font-size: 13px; line-height: 1.7;
  background: rgba(226,75,74,.08); border: 1px solid rgba(226,75,74,.22); color: #f0c0c0;
}
.qlv-src { margin-top: 10px; font-size: 11px; color: var(--dim); letter-spacing: .03em; }

/* 分节卡 */
.qlv-card .sub-title { margin-top: 0; }
.qlv-hint { font-size: 12px; line-height: 1.65; color: var(--mut); margin-top: 4px; }
.qlv-mt { margin-top: 14px; }
.qlv-dim { color: var(--dim); font-size: 12px; }

/* 时间局表 */
.qlv-table { width: 100%; border-collapse: collapse; margin-top: 10px; font-size: 12.5px; table-layout: fixed; }
.qlv-table th {
  text-align: left; font-weight: 400; font-size: 11px; color: var(--dim);
  padding: 6px 5px; border-bottom: 1px solid var(--line);
}
.qlv-table td { padding: 7px 5px; border-bottom: 1px solid rgba(42,42,68,.6); vertical-align: top; line-height: 1.55; }
.qlv-table th:nth-child(1) { width: 15%; } .qlv-table th:nth-child(2) { width: 19%; }
.qlv-table th:nth-child(3) { width: 13%; } .qlv-table th:nth-child(4) { width: 21%; }
.qlv-table th:nth-child(5) { width: 14%; } .qlv-table th:nth-child(6) { width: 18%; }

/* 事实轴 */
.qlv-axes { display: flex; flex-direction: column; gap: 8px; margin-top: 10px; }
.qlv-axis {
  display: grid; grid-template-columns: 10px 92px 1fr; align-items: center; gap: 8px;
  padding: 8px 10px; border-radius: 10px; border: 1px solid var(--line); background: rgba(255,255,255,.02);
}
.qlv-axis.ok { border-color: rgba(93,202,165,.28); }
.qlv-axis.miss { border-color: rgba(230,192,122,.2); }
.qlv-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--gold); }
.qlv-axis.ok .qlv-dot { background: var(--green); box-shadow: 0 0 6px rgba(93,202,165,.6); }
.qlv-axis-name { font-size: 12.5px; color: var(--txt); }
.qlv-axis.miss .qlv-axis-name { color: var(--mut); }
.qlv-axis-inp { margin: 0; font-size: 12.5px; padding: 6px 8px; }

/* 限制列表 */
.qlv-ul { margin: 6px 0 0; padding-left: 18px; font-size: 12.5px; line-height: 1.75; color: var(--mut); }
.qlv-ul li { margin: 3px 0; }
.qlv-ol { margin: 6px 0 0; padding-left: 20px; font-size: 12.5px; line-height: 1.75; color: var(--mut); }
.qlv-ol li { margin: 4px 0; }

/* 折叠块 */
.qlv-det summary {
  cursor: pointer; font-size: 13px; color: var(--gold); list-style: none;
  padding: 2px 0; user-select: none;
}
.qlv-det summary::-webkit-details-marker { display: none; }
.qlv-det summary::before { content: '▸ '; color: var(--gold2); }
.qlv-det[open] summary::before { content: '▾ '; }
.qlv-case, .qlv-rule { margin-top: 10px; padding-top: 10px; border-top: 1px solid rgba(42,42,68,.7); font-size: 12.5px; line-height: 1.7; }
.qlv-case:first-of-type, .qlv-rule:first-of-type { border-top: none; padding-top: 0; margin-top: 6px; }
.qlv-case-id { font-size: 11px; color: var(--gold2); letter-spacing: .04em; margin-bottom: 3px; }
.qlv-rule-name { color: var(--txt); margin-bottom: 3px; }
.qlv-then { color: var(--txt); padding-left: 10px; border-left: 2px solid var(--line-gold, rgba(230,192,122,.2)); margin-top: 3px; }
