/* 唯问 · 纸、墨、天光。呈现层覆盖；路由、业务状态与命盘几何仍由原组件管理。 */
:root {
  --r-xs: 4px;
  --r-sm: 7px;
  --r-md: 10px;
  --r-lg: 16px;
  --sh-1: none;
  --sh-2: 0 4px 18px -12px rgba(43, 66, 84, .14);
  --sh-3: 0 14px 40px -24px rgba(43, 66, 84, .2);
  --sh-4: 0 20px 60px -30px rgba(43, 66, 84, .24);
  --fs-base: 15px;
  --fs-xs: 12px;
  --fs-sm: 13px;
  --nav-h: 64px;
  --pad-y: 30px;
  --t-breath: 12s;
}
[data-theme="dark"] {
  --sh-2: 0 4px 18px -12px rgba(0, 0, 0, .3);
  --sh-3: 0 14px 40px -24px rgba(0, 0, 0, .45);
  --sh-4: 0 20px 60px -30px rgba(0, 0, 0, .5);
}

/* 背景：静态天文圆弧与极缓云气，不占布局也不接收操作。 */
.ink-bg { opacity: .32; }
.ink-blob { opacity: .16; animation-duration: 70s; }
.mist { opacity: .2; animation-duration: 90s; }
#wuxing-canvas { opacity: .24; }
body:has(#zm-result:not(.hidden), #wendao-chat:not(.hidden)) .ink-bg { opacity: .12; }
body:has(#zm-result:not(.hidden), #wendao-chat:not(.hidden)) #wuxing-canvas { opacity: .12; }
.ink-bg::after {
  content: "";
  position: absolute;
  width: min(90vw, 880px);
  aspect-ratio: 1;
  top: 8%;
  right: -28%;
  border: 1px solid var(--line-2);
  border-radius: 50%;
  box-shadow: 0 0 0 48px var(--paper), 0 0 0 49px var(--line),
    0 0 0 126px var(--paper), 0 0 0 127px var(--line-soft);
  opacity: .36;
  pointer-events: none;
}
.page-head { margin-bottom: 30px; }
.page-title { border: 0; padding-left: 0; font-size: 30px; letter-spacing: .18em; }
.page-title.small { font-size: 23px; }
.page-sub { margin-top: 12px; line-height: 1.8; letter-spacing: .1em; }
.sec-label { margin-top: 32px; margin-bottom: 16px; font-size: 14px; color: var(--ink-2); }
.sec-label::after { background: var(--line); }
.card { padding: 24px 20px; border-color: var(--line-soft); }
.card .card { background: transparent; box-shadow: none; }
.btn-primary, .btn-ghost { min-height: 46px; letter-spacing: .08em; box-shadow: none; }
.btn-ghost.small { min-height: 40px; }
input, select, textarea { accent-color: var(--primary); }
input:not([type="checkbox"]):not([type="radio"]), select, textarea {
  border-radius: var(--r-sm);
  box-shadow: none;
}
input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 2px solid var(--primary);
  outline-offset: 3px;
}
.person-switch { min-height: 44px; border-radius: var(--r-sm); background: transparent; }
.entry-poem { margin: 42px 0 32px; text-align: left; padding: 0 4px; }
.ep-line { font-size: clamp(26px, 6.5vw, 34px); letter-spacing: .12em; line-height: 1.65; }
.ep-sub { margin-top: 14px; font-size: 12px; }
.start-card { padding: 28px 24px; min-height: 128px; box-shadow: none; border: 0; }
.start-card::after {
  inset: auto -42px -110px auto;
  width: 250px;
  height: 250px;
  border: 1px solid var(--deep-line);
  border-radius: 50%;
  background: none;
  box-shadow: 0 0 0 24px var(--decor-line), 0 0 0 60px var(--decor-line);
}
.sc-seal { width: 46px; height: 46px; border-radius: 50%; background: transparent; }
.sc-title { font-size: 23px; }
.sc-sub { line-height: 1.8; }
.sc-arrow { color: var(--deep-ink-2); }
.fun-grid { gap: 16px; }
.fun-card { padding: 24px 16px; background: transparent; border-color: var(--line); box-shadow: none; }
.fun-icon { background: transparent; color: var(--primary); }
.foot-note { line-height: 2; }

/* 原有五枚导航图形不变，以细小墨点补充选中状态。 */
.bottom-nav { background: var(--veil); backdrop-filter: none; -webkit-backdrop-filter: none; }
.bottom-nav .nav-item { position: relative; gap: 5px; color: var(--ink-3); font-family: var(--font-sans); font-size: 11px; }
.bottom-nav .nav-item.active { color: var(--primary); }
.bottom-nav .nav-item.active::before {
  content: ""; position: absolute; top: 3px; width: 3px; height: 3px;
  border-radius: 50%; background: currentColor;
}
.bottom-nav .nav-item svg { width: 22px; height: 22px; }
.zm-tab, .sys-tab { min-height: 44px; }
.drawer-panel { border-radius: 18px 18px 0 0; box-shadow: var(--sh-4); }
.drawer-head { padding-bottom: 18px; }

/* 问道：用文字和留白建立秩序，动效仅在入口的细圈上。 */
.wendao-intro { margin-top: 44px; }
.intro-line { font-size: 26px; line-height: 1.7; }
.intro-sub { font-size: 13px; }
.wd-new-btn { background: var(--surface); box-shadow: none; animation: none; }
.wd-core { color: var(--primary); text-shadow: none; }
.wd-ring { border-color: var(--line-2); animation-duration: 12s; }
.wd-ring.r2 { animation-delay: 6s; }
.wd-bubble.user { border-radius: 10px 10px 2px 10px; box-shadow: none; padding: 14px 18px; }
.wd-bubble.ai { padding-left: 20px; font-size: 15px; }
.wd-bubble.ai p { line-height: 2; }
.chat-log { gap: 30px; }
.wd-input-area, .wp-input-area { box-shadow: none; }

/* 养运、同道、自观：一致的纸面材质，保留各模块的信息结构。 */
.yangyun-intro, .self-quote { padding: 20px 0; }
.self-list { gap: 0; border-top: 1px solid var(--line); }
.self-card { border: 0; border-bottom: 1px solid var(--line); border-radius: 0; padding: 22px 4px; background: transparent; box-shadow: none; }
.self-card:hover { transform: none; background: var(--primary-soft); box-shadow: none; }
.self-k { font-size: 16px; }
.self-v { line-height: 1.8; }
.pd-card, .shop-card { box-shadow: none; border-color: var(--line-soft); }
.ju-card { box-shadow: none; border-color: var(--line-2); }
.ju-card, .qz-params, .qzr-tbl { font-variant-numeric: tabular-nums; }
.qzr-tbl th { color: var(--ink-2); background: var(--paper-2); }
.qzr-tbl td { line-height: 1.8; }
.qzr-card { box-shadow: none; }
.qzr-pal-card { background: var(--surface); }
.qzr-tbl tr.qz-tr.on > td { background: var(--primary-soft); }
#zm-tip { border-radius: var(--r-md); line-height: 1.7; box-shadow: var(--sh-3); }

@media (max-width: 640px) {
  .sys-tab { flex-direction: column; gap: 3px; min-height: 64px; border-radius: var(--r-sm); }
  .sys-tab-name { font-size: 14px; letter-spacing: .04em; }
  .sys-flag { font-size: 10px; }
}

@media (min-width: 1024px) {
  :root { --pad-y: 52px; --tb-h: 76px; }
  .topbar { background: var(--veil); backdrop-filter: none; -webkit-backdrop-filter: none; }
  .tb-brand-text { font-size: 23px; letter-spacing: .22em; }
  .tb-seal { border-radius: 50%; width: 34px; height: 34px; font-size: 14px; }
  .tb-nav { justify-content: center; }
  .tb-nav .nav-item { min-height: 44px; padding-inline: 20px; font-size: 14px; }
  .page-title { font-size: 32px; }
  #zm-home { row-gap: 8px; }
  #zm-home > .entry-poem { padding-block: 48px; }
  #zm-home > .entry-poem .ep-line { font-size: 34px; }
  #zm-home > .start-card { min-height: 172px; padding: 32px; }
  #zm-home > .fun-label { margin-top: 44px; }
  .fun-card { padding-block: 30px; }
  #wendao-home { padding-top: 28px; }
  .ink-bg::after { right: -12%; top: 18%; }
}
@media (max-width: 374px) {
  :root { --pad-x: 16px; }
  .start-card { padding: 24px 18px; gap: 12px; }
  .sc-sub { font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .view.active.stagger > * { opacity: 1; }
}
@media print {
  .ink-bg, #wuxing-canvas { display: none; }
}

/* 山水色彩：仅调整材质和明暗；几何、间距与交互保持原状。 */
[data-theme="dark"] .ink-bg { opacity: .3; }
[data-theme="dark"] #wuxing-canvas { opacity: .2; }
.tb-seal { background: var(--primary); color: var(--on-primary); }
.qzr-dir-ok, .qzr-state-ok { color: var(--ok); background: var(--ok-soft); }
.qzr-dir-bad { color: var(--err); background: var(--err-soft); }
.qzr-dir-mix { color: var(--mix); background: var(--mix-soft); }
.qzr-dir-cond { color: var(--warn); background: var(--warn-soft); }

/* 精确的四柱属性表：一行一个属性，藏干与副星使用同一顺序。 */
.ju-card { display: block; padding: 12px 6px; }
.ju-table { width: 100%; table-layout: fixed; border-collapse: collapse; font-size: 12px; }
.ju-table th { width: 42px; color: var(--ink-3); font-weight: 400; text-align: left; white-space: nowrap; }
.ju-table th, .ju-table td { padding: 8px 3px; vertical-align: top; border-bottom: 1px solid var(--line-soft); }
.ju-table td { text-align: center; overflow-wrap: anywhere; color: var(--ink-2); }
.ju-table td.day { background: var(--primary-soft); }
.ju-table tr:last-child th, .ju-table tr:last-child td { border-bottom: 0; }
.ju-table .ju-gan, .ju-table .ju-zhi { font-size: 28px; display: block; line-height: 1.4; }
.ju-hidden-list { display: flex; flex-direction: column; gap: 5px; align-items: center; }
.ju-hidden-item { display: block; min-height: 20px; line-height: 20px; }
.ju-hidden-item b { font-family: var(--font-serif); font-weight: 400; font-size: 15px; }
.analysis-options { margin-bottom: 20px; }

/* 原生 dialog 位于浏览器顶层；以 visualViewport 中心定位，滚动和键盘不改变其归属。 */
.entitlement-dialog { position: fixed; inset: auto; left: var(--dialog-center-x, 50vw); top: var(--dialog-center-y, 50dvh); transform: translate(-50%, -50%); margin: 0; width: min(420px, calc(var(--dialog-visible-width, 100vw) - 40px)); max-width: none; max-height: calc(var(--dialog-visible-height, 100dvh) - 48px); overflow-y: auto; padding: 26px 22px; border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--surface); color: var(--ink); box-shadow: var(--sh-4); }
.entitlement-dialog[open] { display: grid; gap: 12px; }
.entitlement-dialog::backdrop { background: var(--overlay); }
.entitlement-dialog h2 { font-family: var(--font-serif); font-weight: 400; font-size: 21px; }
.entitlement-dialog p { color: var(--ink-2); line-height: 1.8; overflow-wrap: anywhere; }
.entitlement-dialog .btn-primary, .entitlement-dialog .btn-ghost { margin: 0; width: 100%; }

/* 自观概览只展示身份、次数、邀请和直达入口，缩短多余的纵向空间。 */
.zg-vipcard { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px 18px; padding: 18px; }
.zg-vipcard-head { grid-column: 1 / -1; align-items: center; }
.zg-vipcard-grid { grid-column: 1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.zg-vipcard-cell { min-height: 0; padding: 8px 6px; }
.zg-vipcard-cell b { font-size: 22px; }
.zg-vipcard-acts { grid-column: 2; align-self: center; }
.zg-vipcard-acts .btn-ghost { min-height: 42px; }
.membership-plans { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.membership-plan { display: flex; flex-direction: column; align-items: center; gap: 10px; min-width: 0; padding: 20px 8px; border: 1px solid var(--line); border-radius: var(--r-md); background: var(--surface); color: var(--ink); }
.membership-plan strong { font-size: 24px; font-weight: 500; color: var(--primary); }
.membership-plan small { font-size: 11px; color: var(--ink-3); overflow-wrap: anywhere; }
.membership-plan.selected { border-color: var(--primary); background: var(--primary-soft); }
.membership-plan:focus-visible { outline: 2px solid var(--primary); outline-offset: 3px; }
@media (min-width: 1024px) {
  .ju-card { padding: 18px 12px; }
  .ju-table { font-size: 13px; }
  .ju-table th { width: 44px; }
  .ju-table th, .ju-table td { padding-block: 10px; }
  #zg-home > .zg-vipcard { grid-template-columns: minmax(180px, 1fr) minmax(240px, 1fr) auto; margin-bottom: 20px; gap: 20px; }
  #zg-home > .zg-vipcard .zg-vipcard-head { grid-column: 1; grid-row: 1; flex-direction: row; align-items: center; }
  #zg-home > .zg-vipcard .zg-vipcard-grid { grid-column: 2; grid-row: 1; }
  #zg-home > .zg-vipcard .zg-vipcard-acts { grid-column: 3; grid-row: 1; }
  .membership-plan { padding: 26px 18px; }
}
@media (max-width: 359px) {
  .ju-table { font-size: 11px; }
  .ju-table th { width: 36px; }
  .ju-table th, .ju-table td { padding-inline: 2px; }
  .membership-plans { gap: 6px; }
  .membership-plan small { font-size: 10px; }
}

.ju-cg-ref { font-size: 10px; color: var(--ink-3); margin-right: 3px; }

/* 七政报告：导航完整可见，短信息矩阵，星曜与宫位按内容排布。 */
#sys-pane-qizheng .qzr-nav { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:6px; overflow:visible; background:var(--paper); padding:10px 2px; }
#sys-pane-qizheng .qzr-nav-it { min-width:0; min-height:40px; padding:6px 2px; border-radius:var(--r-sm); font-size:12px; }

/* ---------- 七政报告：六个功能入口的「可点击感」（2026-10-02） ----------
   改动只针对这六个入口的**形态**，功能、路由、数据一律不动。
   思路：先让它在静止时就是「一个控件」，再让每一次指针动作都有回应 ——
     · 形态：不再是纯文字，而是一枚有边界、有底色、有圆角的小控件；
     · 层级：默认底面 + 细边 / 悬停抬起 + 浅影 / 选中回填主色；
     · 图标：每个入口一枚 13px 线条图标（mask 取色 currentColor），
       默认半透明，悬停与选中时提亮 —— 它同时说明这个入口通往哪里；
     · 按下：回落 + 内阴影，给出真实的「按到了」的手感。
   尺寸与字重保持克制（13px 图标 / 12~14px 文字），不做后台式大矩形按钮。 */
#sys-pane-qizheng .qzr-nav-it {
  display: inline-flex; align-items: center; justify-content: center; gap: 5px;
  padding: 8px 6px;
  color: var(--ink-2);
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
  transition: color var(--t-fast) var(--e-out),
              background-color var(--t-fast) var(--e-out),
              border-color var(--t-fast) var(--e-out),
              box-shadow var(--t-fast) var(--e-out),
              transform var(--t-fast) var(--e-out);
}
#sys-pane-qizheng .qzr-nav-it::before {
  content: ""; flex: 0 0 auto; width: 14px; height: 14px;
  background-color: currentColor; opacity: .62;
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
  -webkit-mask-position: center; mask-position: center;
  -webkit-mask-size: contain; mask-size: contain;
  transition: opacity var(--t-fast) var(--e-out);
}
#sys-pane-qizheng .qzr-nav-it[data-qzr-tab="qzr-sec-overview"]::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7'%3E%3Ccircle cx='12' cy='12' r='8'/%3E%3Ccircle cx='12' cy='12' r='1.5' fill='%23000' stroke='none'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7'%3E%3Ccircle cx='12' cy='12' r='8'/%3E%3Ccircle cx='12' cy='12' r='1.5' fill='%23000' stroke='none'/%3E%3C/svg%3E");
}
#sys-pane-qizheng .qzr-nav-it[data-qzr-tab="qzr-sec-stars"]::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linejoin='round'%3E%3Cpath d='M12 3.2l2.4 6.2 6.4 2.4-6.4 2.4L12 20.8l-2.4-6.6L3.2 11.8l6.4-2.4z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linejoin='round'%3E%3Cpath d='M12 3.2l2.4 6.2 6.4 2.4-6.4 2.4L12 20.8l-2.4-6.6L3.2 11.8l6.4-2.4z'/%3E%3C/svg%3E");
}
#sys-pane-qizheng .qzr-nav-it[data-qzr-tab="qzr-sec-palaces"]::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7'%3E%3Crect x='4' y='4' width='7' height='7' rx='1.2'/%3E%3Crect x='13' y='4' width='7' height='7' rx='1.2'/%3E%3Crect x='4' y='13' width='7' height='7' rx='1.2'/%3E%3Crect x='13' y='13' width='7' height='7' rx='1.2'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7'%3E%3Crect x='4' y='4' width='7' height='7' rx='1.2'/%3E%3Crect x='13' y='4' width='7' height='7' rx='1.2'/%3E%3Crect x='4' y='13' width='7' height='7' rx='1.2'/%3E%3Crect x='13' y='13' width='7' height='7' rx='1.2'/%3E%3C/svg%3E");
}
#sys-pane-qizheng .qzr-nav-it[data-qzr-tab="qzr-sec-patterns"]::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linejoin='round'%3E%3Cpath d='M12 3l9 9-9 9-9-9z'/%3E%3Cpath d='M12 8l4 4-4 4-4-4z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linejoin='round'%3E%3Cpath d='M12 3l9 9-9 9-9-9z'/%3E%3Cpath d='M12 8l4 4-4 4-4-4z'/%3E%3C/svg%3E");
}
#sys-pane-qizheng .qzr-nav-it[data-qzr-tab="qzr-sec-limits"]::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='8.2'/%3E%3Cpath d='M12 7.4V12l3.2 2'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='8.2'/%3E%3Cpath d='M12 7.4V12l3.2 2'/%3E%3C/svg%3E");
}
#sys-pane-qizheng .qzr-nav-it[data-qzr-tab="qzr-sec-ai"]::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 6.4a2 2 0 0 1 2-2h11a2 2 0 0 1 2 2v7.2a2 2 0 0 1-2 2H9.6l-5.1 3.6z'/%3E%3Cpath d='M8.4 8.8h7.2M8.4 11.8h4.6'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 6.4a2 2 0 0 1 2-2h11a2 2 0 0 1 2 2v7.2a2 2 0 0 1-2 2H9.6l-5.1 3.6z'/%3E%3Cpath d='M8.4 8.8h7.2M8.4 11.8h4.6'/%3E%3C/svg%3E");
}
#sys-pane-qizheng .qzr-nav-it:hover {
  color: var(--ink);
  background: var(--surface-2);
  border-color: var(--line-2);
  box-shadow: var(--sh-1);
  transform: translate3d(0, -1px, 0);
}
#sys-pane-qizheng .qzr-nav-it:hover::before { opacity: .95; }
#sys-pane-qizheng .qzr-nav-it:active {
  transform: translate3d(0, 0, 0);
  background: rgba(70, 103, 121, .10);
  border-color: var(--line-2);
  box-shadow: inset 0 1px 3px rgba(70, 103, 121, .18);
}
#sys-pane-qizheng .qzr-nav-it:focus-visible {
  outline: 2px solid var(--primary); outline-offset: 2px;
}
#sys-pane-qizheng .qzr-nav-it.on {
  color: var(--primary);
  background: var(--primary-soft);
  border-color: var(--primary);
  box-shadow: none;
}
#sys-pane-qizheng .qzr-nav-it.on::before { opacity: 1; }
#sys-pane-qizheng .qzr-star-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
#sys-pane-qizheng .qzr-star-card { display:block; min-width:0; padding:12px; border:1px solid var(--line); border-radius:var(--r-sm); background:var(--surface); }
#sys-pane-qizheng .qzr-star-card.on { border-color:var(--primary); background:var(--primary-soft); }
#sys-pane-qizheng .qzr-star-head { display:flex; align-items:center; flex-wrap:wrap; gap:6px; }
#sys-pane-qizheng .qzr-star-head b { font-size:20px; color:var(--ink); }
#sys-pane-qizheng .qzr-star-head > span { color:var(--ink-3); }
#sys-pane-qizheng .qzr-star-card .qzr-matrix { grid-template-columns:1fr; }
#sys-pane-qizheng .qzr-star-card .qzr-mx-cell { display:flex; gap:8px; padding:5px 0; }
#sys-pane-qizheng .qzr-star-card .qzr-mx-cell > b { flex:0 0 3em; white-space:nowrap; margin:0; }
#sys-pane-qizheng .qzr-star-note { font-size:12px; color:var(--ink-3); margin:8px 0 0; }
#sys-pane-qizheng .qzr-matrix { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 12px; }
#sys-pane-qizheng .qzr-mx-cell { display:block; padding:8px 0; overflow-wrap:anywhere; }
#sys-pane-qizheng .qzr-mx-cell > b { display:block; font-size:12px; margin-bottom:3px; }
#sys-pane-qizheng .qzr-mx-cell > i { display:block; line-height:1.65; }
#sys-pane-qizheng .qzr-pals { align-items:start; grid-template-columns:repeat(2,minmax(0,1fr)); }
#sys-pane-qizheng .qzr-pal-card { min-width:0; margin:0; }
#sys-pane-qizheng .qzr-pal-card > summary { gap:5px; min-height:72px; padding:10px; }
#sys-pane-qizheng .qzr-pal-card > summary b { flex:1; }
#sys-pane-qizheng .qzr-pal-card > summary .qzr-dir { font-size:11px; }
#sys-pane-qizheng .qzr-pal-card[open] { grid-column:1 / -1; }
#sys-pane-qizheng .qzr-pal-card .qzr-judge { margin:8px 10px; padding:8px 0; border:0; }
#sys-pane-qizheng .qzr-cards, #sys-pane-qizheng .qzr-pats { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; align-items:start; }
#sys-pane-qizheng .qzr-card, #sys-pane-qizheng .qzr-pat { min-width:0; overflow-wrap:anywhere; }
#sys-pane-qizheng .qzr-cond-line { display:block; }
#sys-pane-qizheng .qzr-cond-line .qzr-state { margin-right:6px; }
#sys-pane-qizheng .qzr-cond-basis { display:block; margin-top:3px; }
#sys-pane-qizheng .sec-label-note { display:block; margin:4px 0 0; line-height:1.65; }
@media (min-width:1025px) {
 #sys-pane-qizheng .qzr-nav { grid-template-columns:repeat(9,minmax(0,1fr)); }
 #sys-pane-qizheng .qzr-nav-it { font-size:14px; }
 #sys-pane-qizheng .qzr-star-grid, #sys-pane-qizheng .qzr-pals { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:359px) {
 #sys-pane-qizheng .qzr-nav { grid-template-columns:repeat(3,minmax(0,1fr)); }
 #sys-pane-qizheng .qzr-star-grid { grid-template-columns:1fr; }
}

#sys-pane-qizheng .qzr-star-card .qzr-mx-cell { align-items:baseline; line-height:1.65; }
#sys-pane-qizheng .qzr-star-card .qzr-fold { margin-top:8px; }

/* 七政报告：五个排盘章节与独立AI，手机两排即可抵达全部入口。 */
#sys-pane-qizheng .qzr-nav { grid-template-columns:repeat(3,minmax(0,1fr)); }
#sys-pane-qizheng .qzr-time-form { display:flex; gap:12px; align-items:end; flex-wrap:wrap; margin:16px 0; }
#sys-pane-qizheng .qzr-time-form label { flex:1 1 220px; min-width:0; color:var(--ink-2); font-size:13px; }
#sys-pane-qizheng .qzr-time-form :is(input,select) { display:block; box-sizing:border-box; width:100%; min-width:0; margin-top:8px; }
#sys-pane-qizheng .qzr-time-form button { flex:0 1 auto; min-height:44px; padding:10px 14px; color:var(--ink); background:var(--surface); border:1px solid var(--line); border-radius:var(--r-sm); font-size:13px; }
#sys-pane-qizheng .qzr-time-form button:hover { border-color:var(--primary); }
#sys-pane-qizheng .qzr-time-form button:focus-visible { outline:2px solid var(--primary); outline-offset:2px; }
#sys-pane-qizheng .qzr-time-form button:disabled { opacity:.55; cursor:wait; }
#sys-pane-qizheng .qzr-star-card .qzr-mx-cell > i { min-width:0; overflow-wrap:anywhere; }
@media (min-width:900px) { #sys-pane-qizheng .qzr-nav { grid-template-columns:repeat(6,minmax(0,1fr)); } }

/* Long chapter notes must wrap independently of the short heading. */
#sys-pane-qizheng .qzr-sec > .sec-label { display:block; }
#sys-pane-qizheng .qzr-sec > .sec-label .sec-label-note { display:block; width:100%; min-width:0; font-weight:400; letter-spacing:normal; }
#sys-pane-qizheng .qzr-time-form :is(input,select) { color:var(--ink); background:var(--surface); border:1px solid var(--line); border-radius:var(--r-sm); font:inherit; padding:10px 8px; min-height:44px; }
#sys-pane-qizheng .qzr-time-form :is(input,select):focus-visible { outline:2px solid var(--primary); outline-offset:2px; }

/* Qizheng: coordinate comparison, no computed judgments in the browser. */
.qzr-transit-wrap { width:100%; max-width:680px; margin:12px auto; }
.qzr-transit { display:block; width:100%; height:auto; }
.qzr-transit text { text-anchor:middle; dominant-baseline:middle; font-size:19px; font-family:inherit; }
.qzr-transit .qzr-transit-pal { fill:var(--ink-3); font-size:16px; }
.qzr-transit-natal circle { fill:var(--ink); stroke:var(--ink); }
.qzr-transit-natal text { fill:var(--ink); }
.qzr-transit-flow circle { fill:var(--surface); stroke:var(--accent); stroke-width:3; }
.qzr-transit-flow text { fill:var(--accent); }

/* 十二宫详情：留出内容边距，长标签可换行。 */
#sys-pane-qizheng .qzr-pal-content { padding: 8px clamp(14px,3vw,22px) 16px; min-width:0; overflow-wrap:anywhere; }
#sys-pane-qizheng .qzr-pal-content .qzr-pal-line { display:flex; align-items:baseline; gap:12px; line-height:1.8; }
#sys-pane-qizheng .qzr-pal-content .qzr-pal-line > b { flex:0 0 4em; }
#sys-pane-qizheng .qzr-pal-content .qzr-judge { margin:8px 0; }
.tl2-viewport.tl2-browse-locked { overflow-x:hidden; touch-action:pan-y; }
