/* Win/Mac 同步：root font-size 媒体查询，跟主站同款 */
html { font-size: 16px; }
@media (min-width: 1280px) { html { font-size: 17px; } }
@media (min-width: 1536px) { html { font-size: 18px; } }
@media (min-width: 1920px) { html { font-size: 19px; } }
@media (min-width: 2560px) { html { font-size: 22px; } }
@media (min-width: 3200px) { html { font-size: 26px; } }
@media (min-width: 3840px) { html { font-size: 30px; } }
@media (min-width: 5000px) { html { font-size: 38px; } }
:root {
  --bg:           #FAF9F5;
  --bg-card:      #FFFFFF;
  --bg-subtle:    #F5F3EE;
  --bg-hover:     #EFEBE3;
  --border:       #E8E4DD;
  --border-strong:#D5CFC6;
  --text:         #191919;
  --text-dim:     #6B6B6B;
  --text-faint:   #A8A29E;
  --accent:       #CC785C;
  --accent-dark:  #B5654A;
  --fire:         #C44536;
  --earth:        #8B6F47;
  --air:          #5A7FB5;
  --water:        #4F7F6B;
  --serif:        'Copernicus','Tiempos Text','Georgia','Times New Roman',serif;
  --sans:         'Styrene A','Inter',-apple-system,BlinkMacSystemFont,'PingFang SC','Segoe UI Variable','Segoe UI','Microsoft YaHei UI','Microsoft YaHei',system-ui,sans-serif;
  /* 盘面专用（日间值＝现状，夜间在下面整块换） */
  --ring-band:    #F3EEE6;
  --ring-line:    #C9BCA8;
  --row-alt:      #F6F3EC;
  --border-lite:  #F0E8DF;
  --wheel-ink:    #262624;
  /* 八字排盘（整页浮层）专用：日间值＝改造前的字面色，像素零变化；夜间在下面整块换 */
  --bz-hair:      #eee;
  --bz-edge:      #ddd;
  --bz-grid:      #f0f0f0;
  --bz-title:     #333;
  --bz-strong:    #444;
  --bz-mid:       #555;
  --bz-dim:       #666;
  --bz-faint:     #999;
  --bz-fainter:   #aaa;
  --bz-faintest:  #bbb;
  --bz-gold:      #9a6a1f;
  --bz-on-gold:   #fff;
  --bz-hover:     #f6f6f6;
  --bz-cell-hover:#faf7f0;
  --bz-cell-sel:  #f0e6d2;
  --bz-col-hl-bg: #faf6ec;
  /* 五行 / 十神 / 神煞：bazi.js 内联 style 直接引用这几个 */
  --bz-wx-mu:     #2e7d32;
  --bz-wx-huo:    #d4342a;
  --bz-wx-tu:     #9a6a1f;
  --bz-wx-jin:    #c79a16;
  --bz-wx-shui:   #1769c4;
  --bz-god-strong:#c0392b;
  --bz-shensha:   #a07b1e;
}

/* ══ 夜晚模式（口径搬自 App）══
   ⛔ 夜间不是把日间色调暗：暗色放到黑底上等于消失。保住色相、把明度抬到 ~66%。
   盘面环带比页面底亮一档（不是纯黑），环线用低饱和暖褐 —— AstroGold 的层次做法。 */
html[data-theme="night"]{
  --bg:           #140F0B;
  --bg-card:      #1E1813;
  --bg-subtle:    #241D17;
  --bg-hover:     #2E251E;
  --border:       rgba(255,255,255,.10);
  --border-strong:rgba(255,255,255,.17);
  --border-lite:  rgba(255,255,255,.07);
  --text:         #ECE4D8;
  --text-dim:     #A79E90;
  --text-faint:   #756B5E;
  --accent:       #DB7E4F;
  --accent-dark:  #C86A3D;
  --fire:         #D68F85;
  --earth:        #CFC08A;
  --air:          #8FB6D4;
  --water:        #8BD0B9;
  --ring-band:    #262019;
  --row-alt:      rgba(255,255,255,.035);
  --ring-line:    #6B5B45;
  --wheel-ink:    #ECE4D8;
  /* 八字浮层夜间：底跟卡片色走，线全部换成低透明白，金色主题抬到 ~66% 明度。
     ⛔ 五行色不能直接调暗：深底上等于消失，保色相抬明度（口径同盘面）。 */
  --bz-hair:      rgba(255,255,255,.09);
  --bz-edge:      rgba(255,255,255,.16);
  --bz-grid:      rgba(255,255,255,.07);
  --bz-title:     #ECE4D8;
  --bz-strong:    #DCD3C6;
  --bz-mid:       #C6BCAD;
  --bz-dim:       #A79E90;
  --bz-faint:     #8E8578;
  --bz-fainter:   #7E7669;
  --bz-faintest:  #6F675B;
  --bz-gold:      #D3A24E;
  --bz-on-gold:   #241D17;
  --bz-hover:     rgba(255,255,255,.05);
  --bz-cell-hover:rgba(211,162,78,.10);
  --bz-cell-sel:  rgba(211,162,78,.22);
  --bz-col-hl-bg: rgba(211,162,78,.12);
  --bz-wx-mu:     #6FBF73;
  --bz-wx-huo:    #E8776A;
  --bz-wx-tu:     #D3A24E;
  --bz-wx-jin:    #E0C05A;
  --bz-wx-shui:   #6FA8E8;
  --bz-god-strong:#E08A7C;
  --bz-shensha:   #CBA24F;
  color-scheme: dark;
}
html{font-variant-emoji:text}
*{margin:0;padding:0;box-sizing:border-box}
body{background:var(--bg);color:var(--text);font-family:var(--sans);min-height:100vh;font-size:0.875rem;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:'kern' 1,'liga' 1;font-variant-emoji:text}
/* 跨系统字重补偿：Win 默认字体偏粗 → 用 data-platform 在 body 上区分（init 脚本写入），仅 Win 减一档 */
body[data-platform="win"]{letter-spacing:.005em}
body[data-platform="win"] h1,body[data-platform="win"] h2,body[data-platform="win"] h3{font-weight:550}
body[data-platform="win"] .subject-name,body[data-platform="win"] .logo{font-weight:500}
body[data-platform="win"] .card,body[data-platform="win"] .glass-pill{box-shadow:0 0.375rem 1.125rem rgba(38,38,36,.05)}
/* 占星符号统一文本字形（防 Win 渲染成 emoji） */
.sym-pl,.sym-sign,.glyph,.glyph-lg,.pgly,.sym-big,.lead{font-variant-emoji:text}

/* Header */
header{padding:1.125rem 2.5rem;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:1.25rem;background:var(--bg);position:sticky;top:0;z-index:50}
.logo-group{display:flex;flex-direction:column;gap:2px}
.logo{font-family:var(--serif);font-size:1.375rem;color:var(--text);letter-spacing:1px;font-weight:500}
.logo-en{font-family:var(--serif);font-size:0.8125rem;color:var(--text-dim);font-style:italic;font-weight:400;letter-spacing:0.5px}
.nav-right{margin-left:auto;display:flex;align-items:center;gap:1.375rem;font-size:0.8125rem}
.nav-right a{color:var(--text-dim);text-decoration:none;cursor:pointer}
.nav-right a:hover{color:var(--text)}
.nav-right a.active{color:var(--text);font-weight:500}
html[lang="en"] .i18n-zh{display:none}
html:not([lang="en"]) .i18n-en{display:none}
/* 表单折叠态：右侧收起，主区全宽（带过渡） */
.main-layout{transition:grid-template-columns .45s ease}
body.form-hidden .main-layout{grid-template-columns:minmax(0,1fr)}
body.form-hidden .form-sidebar{display:none}
/* 设定入口（meta 宫位制后） + 弹层 */
.meta-settings-btn{background:none;border:none;color:var(--accent);cursor:pointer;font-family:inherit;font-size:0.7188rem;padding:0 0 0 0.375rem;letter-spacing:.5px}
.meta-settings-btn::before{content:'· '}
.meta-settings-btn:hover{text-decoration:underline}
.settings-overlay{position:fixed;inset:0;background:rgba(30,25,22,.16);z-index:200;display:none;align-items:flex-start;justify-content:center;padding:4.375rem 1.25rem 2.5rem;overflow-y:auto;backdrop-filter:blur(2px) saturate(1.05);-webkit-backdrop-filter:blur(2px) saturate(1.05)}
.settings-overlay.show{display:flex}
.settings-popup{background:var(--bg-card);border:1px solid var(--border);border-radius:0.875rem;padding:1.875rem 2.25rem;max-width:42.5rem;width:100%;box-shadow:0 1px 0 rgba(0,0,0,.04),0 0.75rem 2.5rem rgba(30,25,22,.12);position:relative}
.settings-popup .sp-close{position:absolute;top:0.625rem;right:0.875rem;background:none;border:none;font-size:1.5rem;color:var(--text-dim);cursor:pointer;line-height:1;padding:0.25rem 0.625rem;border-radius:0.375rem}
.settings-popup .sp-close:hover{color:var(--text);background:var(--bg-subtle)}
.settings-popup .sp-title{font-size:1.375rem;letter-spacing:.06em;color:var(--text);font-weight:600;margin-bottom:1.375rem;text-align:center;font-family:'Copernicus','Tiempos Text',Georgia,serif}
/* 星盘卡片内的「修改出生信息」链接（仅 form-hidden 时显示，覆盖 embed 模式） */
.ci-edit{display:none;margin-top:0.625rem;font-size:0.7188rem;color:var(--accent);cursor:pointer;background:none;border:none;font-family:inherit;padding:0;letter-spacing:.5px}
.ci-edit:hover{text-decoration:underline}
body.form-hidden .ci-subject .ci-edit{display:inline-block}
/* 修改 / 设定 — 圆盘方盘 pill 分段切换；尺寸贴合上方 meta 文字 */
/* 主体三按钮（资料库 + 修改 + 设定）—— 主次极差 */
.ci-actions{display:flex;align-items:center;gap:0.375rem;margin-top:0.875rem;flex-wrap:wrap}
/* subject 信息块与按钮组之间的发丝分隔，让"身份/技术参数"和"动作"在视觉上分层 */
.ci-subject .subject-meta::after{content:"";display:block;width:3rem;height:1px;background:var(--border);margin:0.875rem 0 0}
/* 钉住的工具区 —— 默认占位，浮卡钉住后填入胶囊 */
.ci-pinned{display:none}
.ci-pinned-title{font-size:0.6562rem;letter-spacing:2px;text-transform:uppercase;color:var(--text-faint);font-weight:600;margin-bottom:0.5rem}
/* 紧凑流式排列：每行最多 6 个，超出换行；胶囊更小 */
.ci-pinned-list{display:flex;flex-direction:row;flex-wrap:wrap;gap:0.3125rem}
.ci-pinned-empty{font-size:0.7188rem;color:var(--text-faint);line-height:1.6;font-style:italic;letter-spacing:.2px;padding:0.375rem 2px;width:100%}
.ci-pinned .pin-chip{display:inline-flex;align-items:center;gap:0.25rem;padding:0.1875rem 0.5rem 0.1875rem 0.375rem;background:rgba(250,249,245,.7);border:1px solid var(--border);border-radius:62.4375rem;cursor:pointer;font-size:0.6562rem;color:var(--text-dim);transition:border-color .15s,color .15s;line-height:1;height:1.375rem;white-space:nowrap;letter-spacing:.02em}
.ci-pinned .pin-chip:hover{border-color:var(--accent);color:var(--accent)}
.ci-pinned .pin-chip .pin-icon{width:0.625rem;height:0.625rem;flex-shrink:0;color:var(--accent)}
.ci-pinned .pin-chip .pin-close{margin-left:2px;width:0.875rem;height:0.875rem;border:0;background:transparent;color:var(--text-faint);cursor:pointer;font-size:0.6875rem;line-height:1;border-radius:50%;padding:0;display:inline-flex;align-items:center;justify-content:center}
.ci-pinned .pin-chip .pin-close:hover{color:var(--accent);background:rgba(204,120,92,.08)}
.ci-actions-row1 .rs-btn,.ci-actions-row2 .rs-btn{flex:1;text-align:center;padding-left:0;padding-right:0}
.ci-actions-row2{margin-top:0.875rem}
.rs-btn.rs-accent{background:transparent;color:var(--accent);border:1px solid var(--accent);font-weight:600}
.rs-btn.rs-accent:hover{background:rgba(204,120,92,.08)}
.rs-btn{font-family:inherit;font-size:0.75rem;letter-spacing:.06em;padding:0.375rem 1rem;border-radius:62.4375rem;cursor:pointer;transition:background .15s,border-color .15s,color .15s;line-height:1.4;font-weight:500}
.rs-btn.rs-primary{background:var(--accent);color:#fff;border:1px solid var(--accent);font-weight:600}
.rs-btn.rs-primary:hover{background:#B8694F;border-color:#B8694F}
.rs-btn.rs-ghost{background:transparent;color:var(--text-dim);border:1px solid var(--border)}
.rs-btn.rs-ghost:hover{color:var(--accent);border-color:var(--accent)}
/* 顶部控制带 —— 圆盘/方盘 · 日期步进 · 专业/简洁 */
/* 控制条：圆盘/方盘 中心对齐星盘中轴；日期步进贴在它的右侧（中线对齐）
   专业/简洁 独立浮在右上角，与本带共享 top */
/* 顶部控制条：永远居中对齐"星盘列"中轴；left 偏移随 col-1 宽度变化平滑过渡 */
.ci-controlbar{position:absolute;top:0.5rem;left:calc(13.75rem + 1.5rem);right:3.5rem;height:2.375rem;z-index:6;display:flex;align-items:center;justify-content:center;gap:1rem;pointer-events:none;transition:left .25s ease}
body[data-dyn-mode]:not([data-dyn-mode="dial90"]) .ci-controlbar{left:calc(28.75rem + 1.5rem)}
body.embed:not(.chrome-journal):not(.chrome-lite):not([data-dyn-mode]) .chart-integrated:not(.is-square) .ci-controlbar{left:calc(27rem + 1.5rem)}
.ci-controlbar > *{pointer-events:auto}
.ci-controlbar .cb-divider{display:none}
/* 合并胶囊容器：圆盘组 + chip + 时间游标共享一个磨砂玻璃药丸 */
.ci-controlbar-pill{display:inline-flex;align-items:center;height:2.375rem;background:rgba(252,251,249,.88);backdrop-filter:blur(0.875rem) saturate(140%);-webkit-backdrop-filter:blur(0.875rem) saturate(140%);border:1px solid rgba(204,120,92,.16);border-radius:62.4375rem;box-shadow:0 0.25rem 1rem rgba(38,38,36,.05),inset 0 1px 0 rgba(255,255,255,.5);padding:0;gap:0}
/* 内部组件去自带 bg/border，融为一体 */
.ci-controlbar-pill .chart-mode-toggle{margin:0!important;background:transparent!important;border:0!important;box-shadow:none!important;height:2.25rem;align-items:center}
.ci-controlbar-pill .chart-mode-toggle .cm-btn{padding:0 1.375rem;font-size:0.8125rem;letter-spacing:.6px;height:100%;display:inline-flex;align-items:center}
.ci-controlbar-pill .dyn-cursor{background:transparent!important;border:0!important;box-shadow:none!important;height:2.25rem;padding:0 0.375rem 0 0.25rem}
/* 模式 chip：动态模式可见，赤陶填色 */
.mode-chip{display:none;font-size:0.6875rem;font-weight:600;color:#fff;background:var(--accent);padding:0.25rem 0.6875rem;border-radius:62.4375rem;letter-spacing:.6px;margin:0 0.375rem 0 2px;font-family:var(--serif);line-height:1;align-items:center;white-space:nowrap}
body[data-dyn-mode] .mode-chip:not(:empty){display:inline-flex}
/* ov-menu 抽屉式从左侧滑出，胶囊不动 */
.ci-controlbar-pill{position:relative}
.ci-controlbar #ov-menu{position:absolute!important;right:calc(100% + 0.625rem);top:50%;transform:translateY(-50%) translateX(1.25rem);opacity:0;pointer-events:none;display:flex!important;gap:0.875rem;align-items:center;font-size:0.6875rem;color:var(--text-dim);white-space:nowrap;background:rgba(252,251,249,.94)!important;backdrop-filter:blur(0.875rem) saturate(140%);-webkit-backdrop-filter:blur(0.875rem) saturate(140%);border:1px solid rgba(204,120,92,.16)!important;border-radius:62.4375rem;padding:0.375rem 0.875rem;height:2.375rem;box-shadow:0 0.25rem 1rem rgba(38,38,36,.06);transition:opacity .25s ease,transform .25s ease;margin:0!important}
.ci-controlbar #ov-menu.show{opacity:1;transform:translateY(-50%) translateX(0);pointer-events:auto}
/* divider：模式切换段 与 时间控件段 之间分隔线 */
.ctrl-divider{display:none;width:1px;height:1.125rem;background:rgba(204,120,92,.22);margin:0 0.25rem;flex-shrink:0}
body[data-dyn-mode] .ctrl-divider:not(.ctrl-divider-natal){display:block}
/* natal mode：toggle 与 chart-date-bar 之间也加 divider */
body:not([data-dyn-mode]) .ctrl-divider-natal{display:block}
body[data-dyn-mode] .ctrl-divider-natal{display:none}
/* 把 chart-date-bar 融入合并胶囊：去多余的 margin/border，与 dyn-cursor 同高 */
.ci-controlbar-pill .chart-date-bar{margin:0!important;height:2.25rem;display:inline-flex;align-items:center;gap:0.375rem;background:transparent;padding:0 0.5rem}
body[data-dyn-mode] .ci-controlbar-pill .chart-date-bar{display:none!important}
.ci-controlbar-pill .chart-date-bar .cdb-step{height:1.5rem;border:1px solid rgba(204,120,92,.20);border-radius:62.4375rem;background:transparent;color:var(--text-dim);font-family:inherit;font-size:0.7188rem;letter-spacing:.3px;padding:0 0.5rem}
.ci-controlbar-pill .chart-date-bar .cdb-btn{transition:transform .15s ease-out,border-color .15s,color .15s,background .15s;border-color:rgba(204,120,92,.20)}
.ci-controlbar-pill .chart-date-bar .cdb-btn:hover{transform:scale(1.08)}
.ci-controlbar-pill .chart-date-bar .cdb-btn.cdb-now{background:rgba(204,120,92,.10);border-color:var(--accent);color:var(--accent);font-weight:700}
.ci-controlbar-pill .chart-date-bar .cdb-btn.cdb-now:hover{background:var(--accent);color:#fff}
/* dyn 按钮 motion cue：hover 微缩 + 颜色推进 */
.dyn-cursor .dc-btn{transition:transform .15s ease-out,border-color .15s,color .15s,background .15s}
.dyn-cursor .dc-btn:hover{transform:scale(1.08)}
/* "今" 语义化锚点：赤陶填色 + 圆点指示器 */
.dyn-cursor .dc-btn.dc-now{background:rgba(204,120,92,.10);border-color:var(--accent);color:var(--accent);font-weight:700;letter-spacing:.6px}
.dyn-cursor .dc-btn.dc-now:hover{background:var(--accent);color:#fff;transform:scale(1.06)}
.ci-controlbar #ov-menu{margin:0!important}
.ci-controlbar .chart-date-bar{margin:0!important;flex-wrap:nowrap;gap:0.375rem;align-items:center}
/* 动态模式资料卡里的时间标签 */
.dyn-stamp{margin-top:0.875rem;padding-top:0.75rem;border-top:1px solid var(--border);display:none}
body[data-dyn-mode] .dyn-stamp{display:block}
.dyn-stamp-label{font-size:0.6875rem;letter-spacing:0.1375rem;color:var(--accent);font-weight:600;margin-bottom:0.375rem}
/* 与 rs-date 等同：0.875rem 700 主色 tabular-nums，保持出生时间与流年时间视觉权重一致 */
.dyn-stamp-time{font-size:0.875rem;color:var(--text);font-variant-numeric:tabular-nums;letter-spacing:.5px;font-weight:700;margin-bottom:0.625rem}
/* dyn 资料卡按钮：紧凑图标 pill，低调可点（非主操作） */
/* 主模式时空信息 —— 地点 + 经纬度 */
.dyn-stamp-coord{font-size:0.6875rem;color:var(--text-faint);font-variant-numeric:tabular-nums;letter-spacing:.3px;margin-top:2px;line-height:1.4}
.dyn-stamp-coord:empty{display:none}
/* 第三盘叠加块（仅次限/太阳弧 模式露出） */
.dyn-overlay-block{margin-top:0.625rem;padding-top:0.625rem;border-top:1px dashed var(--border);display:flex;flex-direction:column;gap:0.375rem}
.dyn-ov-info{font-size:0.6875rem;color:var(--accent);font-variant-numeric:tabular-nums;letter-spacing:.3px;margin-top:0.375rem;line-height:1.4}
.dyn-ov-info:empty{display:none}
/* 第三盘时间穿梭 —— 与顶栏 dyn-cursor 同款（年月日多粒度 + 日期跳转 + 今）*/
.dyn-cursor-ov{display:inline-flex;align-items:center;gap:0.1875rem;margin-top:0.5rem;padding:0.1875rem 0.375rem;background:rgba(204,120,92,.04);border:1px solid var(--border);border-radius:62.4375rem;flex-wrap:nowrap}
.dyn-cursor-ov .dc-btn{width:1.375rem;height:1.375rem;padding:0;border:1px solid var(--border);border-radius:50%;background:transparent;cursor:pointer;font-size:0.625rem;color:var(--text-dim);font-family:inherit;display:inline-flex;align-items:center;justify-content:center;transition:all .15s}
.dyn-cursor-ov .dc-btn:hover{border-color:var(--accent);color:var(--accent);background:rgba(204,120,92,.06)}
.dyn-cursor-ov .dc-btn.dc-now{width:auto;padding:0 0.5625rem;font-size:0.6562rem;font-weight:600;background:rgba(204,120,92,.10);border-color:var(--accent);color:var(--accent)}
.dyn-cursor-ov .dc-btn.dc-now:hover{background:var(--accent);color:#fff}
.dyn-cursor-ov input[type="date"],.dyn-cursor-ov input[type="datetime-local"]{height:1.375rem;border:1px solid var(--border);border-radius:62.4375rem;background:transparent;padding:0 0.5rem;font-family:inherit;font-size:0.6562rem;outline:none;color:var(--text);cursor:pointer;font-variant-numeric:tabular-nums}
.dyn-cursor-ov input[type="date"]:focus,.dyn-cursor-ov input[type="datetime-local"]:focus{border-color:var(--accent)}
/* 5 档时间调节器：时/分细键 —— 比 y/mo/d 略小、视觉权重略弱 */
.dyn-cursor .dc-btn.dc-btn-fine,.dyn-cursor-ov .dc-btn.dc-btn-fine{font-size:0.625rem;letter-spacing:0;opacity:.78;font-variant-numeric:tabular-nums;padding:0 0.25rem;min-width:1.375rem}
.dyn-cursor .dc-btn.dc-btn-fine:hover,.dyn-cursor-ov .dc-btn.dc-btn-fine:hover{opacity:1}
.ci-controlbar-pill .chart-date-bar .cdb-btn.cdb-btn-fine{font-size:0.6562rem;letter-spacing:0;opacity:.78;padding:0 0.3125rem;font-variant-numeric:tabular-nums}
.ci-controlbar-pill .chart-date-bar .cdb-btn.cdb-btn-fine:hover{opacity:1}
.rels-time-strip .rels-time-fine{font-size:0.6562rem;letter-spacing:0;opacity:.78;min-width:1.625rem;padding:0 0.25rem;font-variant-numeric:tabular-nums}
.rels-time-strip .rels-time-fine:hover{opacity:1}
.dyn-cursor-ov .dc-divider{width:1px;height:0.75rem;background:var(--border);margin:0 2px}
/* 顶部 shuttle —— 圆盘正上方居中 */
/* 第三盘 shuttle —— 圆盘上方独立一行，居中（与圆盘中轴对齐）*/
.dyn-cursor-ov-top{display:inline-flex;margin:0.25rem auto 0.375rem;align-self:center}
/* 三盘第三圈行星可拖动（主界面 + RetWS biwheel）*/
#chart .chart-planet-third,#rws-svg-bi .chart-planet-third{cursor:grab}
#chart .chart-planet-third:active,#rws-svg-bi .chart-planet-third:active{cursor:grabbing}
.dyn-ov-toggle{display:flex;align-items:center;gap:0.375rem;font-size:0.7188rem;color:var(--text-dim);cursor:pointer;user-select:none}
.dyn-ov-toggle input{margin:0}
.dyn-ov-seg{display:inline-flex;gap:0;background:rgba(204,120,92,.05);border:1px solid var(--border);border-radius:62.4375rem;padding:2px;margin-top:0.25rem;width:max-content}
.dyn-ov-seg button{border:none;background:transparent;padding:0.1875rem 0.5625rem;border-radius:62.4375rem;font-family:inherit;font-size:0.6875rem;color:var(--text-dim);cursor:pointer;letter-spacing:.3px;transition:all .15s}
.dyn-ov-seg button:hover{color:var(--accent)}
.dyn-ov-seg button.active{background:rgba(204,120,92,.18);color:var(--accent);font-weight:600}
.dyn-ov-date{height:1.5rem;border:1px solid var(--border);border-radius:62.4375rem;background:transparent;padding:0 0.625rem;font-family:inherit;font-size:0.6875rem;outline:none}
.dyn-ov-date:focus{border-color:var(--accent)}
.dyn-actions{display:flex;gap:0.375rem;margin-top:0.375rem;flex-wrap:wrap}
/* 缩短为 content-width 胶囊（不再 flex:1 把整行撑满），让按钮长度跟时间字符长度更协调 */
.dyn-actions .dyn-pill{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;gap:0.25rem;height:1.5rem;padding:0 0.625rem;background:rgba(204,120,92,.05);border:1px solid rgba(204,120,92,.18);border-radius:62.4375rem;color:var(--text-dim);font-size:0.6875rem;letter-spacing:.3px;cursor:pointer;font-family:inherit;transition:background .15s,color .15s,border-color .15s}
.dyn-actions .dyn-pill:hover{background:rgba(204,120,92,.12);color:var(--accent);border-color:var(--accent)}
.dyn-actions .dyn-pill svg{width:0.8125rem;height:0.8125rem;flex-shrink:0;opacity:.85}
/* 资料卡 —— 简历式信息层级 */
.ci-subject .subject-name{font-family:var(--serif);font-size:1.375rem;font-weight:600;letter-spacing:.4px;color:var(--text);margin:0 0 0.4375rem;line-height:1.22}
.ci-subject .subject-meta{font-size:0.7812rem;line-height:1.7;color:var(--text-dim);font-family:Arial,sans-serif}
/* 三层信息层级：日期 = 强锚点 / 地点 = 中间 / 技术参数 = 极弱 */
.ci-subject .subject-meta .rs-date{font-size:0.875rem;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums;letter-spacing:.5px;margin-bottom:0.375rem}
.ci-subject .subject-meta .rs-place{color:var(--text-dim);font-size:0.7812rem;margin-bottom:0.1875rem}
.ci-subject .subject-meta .rs-place .rs-coords{color:var(--text-faint);font-size:0.6562rem;letter-spacing:.06em;margin-left:0.375rem}
.ci-subject .subject-meta .rs-tech{color:var(--text-faint);font-size:0.6562rem;letter-spacing:.12em;text-transform:none;margin-top:0.1875rem}
/* 资料库 — pill 风按钮，与修改/设定同尺寸 */
/* 模式切换 —— 静默 segment，卡片右上角；用赤陶描边 + 浅赤陶填充 */
.mode-seg{position:absolute;top:0.875rem;right:1.125rem;z-index:5;display:inline-flex;border:1px solid var(--border);border-radius:62.4375rem;background:transparent;overflow:hidden;font-size:0.7188rem}
.ci-controlbar .mode-seg{position:static;top:auto;right:auto;z-index:auto}
.mode-seg .ms-btn{border:0;background:transparent;padding:0.3125rem 0.75rem;color:var(--text-faint);cursor:pointer;font-family:inherit;letter-spacing:1px;line-height:1.5}
.mode-seg .ms-btn.active{background:rgba(204,120,92,.12);color:var(--accent)}
.mode-seg .ms-btn+.ms-btn{border-left:1px solid var(--border)}
@media (max-width:760px){.mode-seg{top:0.5rem;right:0.5rem;font-size:0.625rem;letter-spacing:.4px}.mode-seg .ms-btn{padding:0.1875rem 0.5rem}}
/* 日期/前后键 —— 星盘正上方居中 */
.chart-date-bar{display:flex;align-items:center;justify-content:center;gap:0.375rem;margin:0.5rem 0 0.375rem;font-size:0.8125rem;color:var(--text-dim);flex-wrap:wrap}
.chart-date-bar .cdb-date{font-variant-numeric:tabular-nums;color:var(--text);font-weight:500;letter-spacing:.3px;height:1.625rem;border:1px solid var(--border);border-radius:62.4375rem;background:transparent;padding:0 0.625rem;font-family:inherit;font-size:0.75rem;outline:none;cursor:pointer;min-width:10.5rem}
.chart-date-bar .cdb-date:focus{border-color:var(--accent)}
.chart-date-bar .cdb-step{height:1.5rem;border:1px solid var(--border);border-radius:62.4375rem;background:transparent;font-size:0.6875rem;padding:0 0.5625rem;color:var(--text-dim);font-family:inherit;letter-spacing:.3px}
.chart-date-bar .cdb-btn{width:1.625rem;height:1.625rem;padding:0;border:1px solid var(--border);border-radius:50%;background:transparent;cursor:pointer;font-size:0.6875rem;color:var(--text-dim);transition:border-color .15s,color .15s,background .15s;display:inline-flex;align-items:center;justify-content:center;font-family:inherit;line-height:1}
.chart-date-bar .cdb-btn[title*="日"]{color:var(--text-faint);border-color:rgba(204,120,92,.10);font-size:0.6562rem}
.chart-date-bar .cdb-btn[title*="月"]{color:var(--text-dim);border-color:rgba(204,120,92,.18);font-size:0.6875rem}
.chart-date-bar .cdb-btn[title*="年"]{color:var(--text);border-color:rgba(204,120,92,.30);font-size:0.7188rem;font-weight:600}
.chart-date-bar .cdb-btn:hover{background:rgba(204,120,92,.06);border-color:var(--accent);color:var(--accent)}
.chart-date-bar .cdb-btn.cdb-now{width:auto;padding:0 0.75rem;font-size:0.7188rem;font-weight:600;letter-spacing:.4px;background:rgba(204,120,92,.08);border-color:var(--accent);color:var(--accent)}
.chart-date-bar .cdb-btn.cdb-now:hover{background:var(--accent);color:#fff}
.chart-date-bar .cdb-divider{width:1px;height:0.875rem;background:var(--border);margin:0 2px;display:inline-block}
/* 次限模式胶囊：[双盘 | 次限盘] —— 圆盘正上方居中 */
.dyn-view-pill{display:none;align-items:center;justify-content:flex-start;width:max-content;background:#fff;border:1px solid var(--border);border-radius:62.4375rem;padding:0.0625rem;gap:1px;box-shadow:0 2px 0.5rem rgba(30,30,28,.04)}
.dyn-view-pill button{border:none;background:transparent;padding:0.125rem 0.625rem;border-radius:62.4375rem;font-family:inherit;font-size:0.6875rem;color:var(--text-dim);cursor:pointer;letter-spacing:.3px;transition:all .15s}
.dyn-view-pill button:hover{color:var(--accent)}
.dyn-view-pill button.active{background:rgba(204,120,92,.12);color:var(--accent);font-weight:600}
/* JS 控制显示：style=inline-flex 时显示 —— inline-style 优先级胜过这里的 display:none */
/* 旧的左侧 r-date-row 不再需要内联控件 —— 只显示静态日期 */
.r-date-row{display:flex;align-items:center;gap:0.375rem;margin-bottom:0.25rem;flex-wrap:wrap}
/* 翻面动画 — 单卡 rotateY 配 perspective */
.chart-integrated{perspective:150rem}
.chart-integrated.flipping{transition:transform .35s ease-in-out;transform-style:preserve-3d}
.edit-btn{background:var(--bg-card);border:1px solid var(--border-strong);color:var(--text);padding:0.375rem 0.875rem;border-radius:0.375rem;font-size:0.75rem;font-family:inherit;cursor:pointer;letter-spacing:0.5px}
.edit-btn:hover{border-color:var(--accent);color:var(--accent)}
body:not(.form-hidden) .edit-btn{display:none}
.tab-date-row{display:flex;align-items:center;gap:0.625rem;margin-bottom:0.875rem;font-size:0.75rem}
.tab-date-row label{color:var(--text-dim);letter-spacing:1.5px;font-size:0.625rem;text-transform:uppercase}
.tab-date-row input{background:var(--bg-card);border:1px solid var(--border-strong);color:var(--text);padding:0.375rem 0.625rem;border-radius:0.375rem;font-size:0.7812rem;font-family:inherit}
.settings-card{padding:0.875rem 1.25rem;margin-bottom:1.25rem}
.settings-card summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:0.875rem}
.settings-card summary::-webkit-details-marker{display:none}
.settings-card summary::before{content:'▸ ';color:var(--accent);font-size:0.6875rem}
.settings-card[open] summary::before{content:'▾ '}
.settings-summary{font-size:0.75rem;color:var(--text-dim);font-family:Arial,sans-serif}
.settings-label{font-size:0.625rem;letter-spacing:0.1875rem;color:var(--text-faint);text-transform:uppercase;margin-left:0.625rem}
.chart-integrated .ci-special .feat-item{display:inline-flex;align-items:center;gap:0.3125rem;padding:0.25rem 0.6875rem;margin:0 0.375rem 0.4375rem 0;background:rgba(204,120,92,.045);border:1px solid rgba(204,120,92,.18);border-radius:62.4375rem;font-size:0.7188rem;line-height:1.45;color:var(--text);font-weight:500;font-family:Arial,'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',sans-serif;text-align:left;white-space:nowrap}
/* 行起首符号占位：所有行的"被/与/空亡/歧度"等文字 X 位都对齐，无论符号大小 */
.chart-integrated .ci-special .feat-item .lead{font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',serif;font-size:0.9375rem;font-weight:700;display:inline-block;line-height:1;vertical-align:-2px;margin:0 0.25rem 0 0}
.chart-integrated .ci-special #reception-content,.chart-integrated .ci-special #antiscia-content{text-align:left}
.chart-integrated .ci-special .feat-item .pgly,.chart-integrated .ci-special .feat-item .sym-big{font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',serif;font-size:0.9375rem;vertical-align:-2px;line-height:1;font-weight:700;margin:0 1px}
#pattern-content .sym-big{width:2.25rem;text-align:left;font-family:Arial,'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',serif;font-weight:900;color:#000}
#pattern-content .feat-item{color:#000}
/* 格局点 3 列布局：符号 | 名称 | 星座符号+度数 */
#pattern-content .pat-row{display:grid;grid-template-columns:2.125rem 5rem 1fr;align-items:center;padding:0.3125rem 0;font-size:0.8125rem;color:var(--text);text-align:left;gap:0.375rem}
#pattern-content .pat-sym{font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',serif;font-size:1.125rem;font-weight:700;color:var(--text);text-align:left}
#pattern-content .pat-sym-text{font-family:var(--serif);font-size:0.6875rem;letter-spacing:.5px;color:var(--text-dim);font-weight:600}
#pattern-content .pat-name{font-size:0.8125rem;color:var(--text)}
#pattern-content .pat-pos{font-size:0.8125rem;color:var(--text-dim);font-variant-numeric:tabular-nums}
#pattern-content .pat-pos .sym-sign{font-size:1rem;margin-right:0.1875rem;font-weight:600}
.settings-inner{padding-top:1rem;border-top:1px dashed var(--border-strong);margin-top:0.75rem;display:flex;flex-direction:column;gap:1.125rem}
.s-row{display:grid;grid-template-columns:5.625rem 1fr;gap:1rem;align-items:start;font-size:0.7812rem}
.s-label{color:var(--text-dim);font-weight:500;padding-top:0.375rem}
.s-row select,.s-classical-orbs select,.s-modern-orbs select{background:var(--bg-card);border:1px solid var(--border-strong);color:var(--text);padding:0.3125rem 0.625rem;border-radius:0.375rem;font-size:0.7812rem;font-family:inherit}
.s-planets{display:flex;flex-wrap:wrap;gap:0.5rem 1rem}
.s-planets label{display:flex;align-items:center;gap:0.25rem;cursor:pointer;font-size:0.7812rem}
.s-planets label span.pgly{font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',serif;font-size:0.875rem}
.s-classical-orbs,.s-modern-orbs{display:flex;flex-wrap:wrap;gap:0.5rem 0.875rem;padding:0.375rem 0 0 1.375rem;font-size:0.75rem}
.s-classical-orbs .opair,.s-modern-orbs .opair{display:flex;align-items:center;gap:0.25rem}
.s-classical-orbs .opair span,.s-modern-orbs .opair span{font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',serif;font-size:0.875rem}
.s-radio{display:flex;align-items:center;gap:0.375rem;font-size:0.7812rem;cursor:pointer}
/* 没选中的那组直接收起来 —— 原来只是 opacity:.35 灰着，两组一起把设定面板顶到 1179px 高，
   容许度一项就占 583px。收起后默认少 350px（Steven 2026-08-24） */
body.orb-classical .s-modern-orbs,body.orb-modern .s-classical-orbs{display:none}
/* 让「点标题会展开」这件事看得见。⛔ 记号方向必须跟内容出来的方向一致：
   内容在标题正下方展开，所以展开态是朝下的 ▾、收起态是朝右的 ▸。
   （别用 rotate 去转 ▸：9px 字号下转完认不出是三角，看着像个句点） */
.s-orbs .s-orb-head::after{content:'\25B8';display:inline-block;margin-left:0.4375rem;font-size:0.6875rem;color:var(--text-faint);vertical-align:1px}
body.orb-classical .s-orbs .s-orb-head[data-orb="classical"]::after,
body.orb-modern .s-orbs .s-orb-head[data-orb="modern"]::after{content:'\25BE';color:var(--accent)}
/* 星体两行栈：第一行常规+阿拉伯点，第二行凯龙+莉莉丝+四小行星 */
.s-planets-stack{display:flex;flex-direction:column;gap:0.5rem}
/* 容许度详细调整折叠（保留） */
.s-advanced-group{margin-top:0.5rem}
.s-advanced-group>summary{cursor:pointer;font-size:0.7188rem;color:var(--text-faint);padding:0.25rem 0;list-style:none;user-select:none;display:flex;align-items:center;gap:0.375rem}
.s-advanced-group>summary::-webkit-details-marker{display:none}
.s-advanced-group>summary::before{content:'▸';display:inline-block;font-size:0.5625rem;transition:transform .15s;color:var(--text-faint)}
.s-advanced-group[open]>summary::before{transform:rotate(90deg)}
.s-advanced-group>summary:hover{color:var(--text-dim)}
.s-advanced-group[open]>summary{color:var(--text-dim);margin-bottom:0.375rem}
.s-advanced-group>.s-classical-orbs,.s-advanced-group>.s-modern-orbs{padding-left:1rem}
.btn-register{background:var(--accent);color:#fff;border:none;padding:0.5rem 1.125rem;border-radius:0.375rem;font-size:0.7812rem;cursor:pointer;font-family:inherit;letter-spacing:0.5px}
.btn-register:hover{background:var(--accent-dark)}

/* Main layout */
/* 信息密集型专业工具：拓宽 max-width，让边距让位给数据 */
.container{max-width:115rem;margin:0 auto;padding:0.875rem 1.5rem 1.75rem}
@media (min-width:2400px){.container{max-width:none;padding:0.875rem 4vw 1.75rem}}
@media (max-width:1280px){.container{padding:0.875rem 1rem 1.5rem}.chart-integrated{padding-left:0.875rem;padding-right:2rem}}
body.embed header{display:none}
body.embed .container{padding:0 1.5rem 1rem}
body.embed{background:transparent}
body.embed .ci-subject .subject-name{font-size:1rem;font-weight:500;letter-spacing:0.3px}
/* 首页 iframe 自适应（仅默认 embed，不影响 chrome-journal / chrome-lite）：锁视口、无 scroll、相位表/字号随 vh 自适应所有屏幕 */
body.embed:not(.chrome-journal):not(.chrome-lite){overflow:hidden;height:100dvh}
body.embed:not(.chrome-journal):not(.chrome-lite) .container{padding:0 1.5rem 0.5rem;height:100dvh;display:flex;flex-direction:column}
body.embed:not(.chrome-journal):not(.chrome-lite) .main-layout{flex:1;min-height:0}
body.embed:not(.chrome-journal):not(.chrome-lite) .chart-integrated{min-height:0;height:calc(100dvh - 0.5rem);max-height:calc(100dvh - 0.5rem);padding:0.625rem 2rem 0.75rem 1.25rem;overflow:hidden;gap:0.5rem 1.25rem}
body.embed:not(.chrome-journal):not(.chrome-lite):not([data-dyn-mode]) .chart-integrated:not(.is-square){grid-template-columns:27rem minmax(0,1fr)}
body.embed:not(.chrome-journal):not(.chrome-lite) .ci-subject{font-size:clamp(0.7rem,1.4vh,0.8125rem)}
/* safe flex-end：竖向够高时相位表贴底（与星盘底对齐），屏幕矮到放不下时自动回退顶对齐，
   避免相位表整块上溢盖住「资料库」按钮（跨不同尺寸桌面的重叠根因） */
body.embed:not(.chrome-journal):not(.chrome-lite):not([data-dyn-mode]) .chart-integrated:not(.is-square) .ci-montage{display:flex;flex-direction:column;justify-content:safe flex-end;align-self:stretch}
body.embed:not(.chrome-journal):not(.chrome-lite):not([data-dyn-mode]) .chart-integrated:not(.is-square) .ci-montage-stage{flex:0 0 auto;min-height:26rem;display:flex;flex-direction:column;justify-content:flex-start}
body.embed:not(.chrome-journal):not(.chrome-lite):not([data-dyn-mode]) .chart-integrated:not(.is-square) .ci-aspect.active{margin-top:auto}
/* -3rem 左移仅电脑(>1100)对齐星盘用;手机/iPad 单栏不偏移,否则星盘+顶栏tab左出界 */
@media (min-width: 1101px) {
  body.embed:not(.chrome-journal):not(.chrome-lite):not([data-dyn-mode]) .chart-integrated:not(.is-square) .ci-chart{transform:translateX(-3rem)}
  body.embed:not(.chrome-journal):not(.chrome-lite):not([data-dyn-mode]) .chart-integrated:not(.is-square) .ci-controlbar{transform:translateX(-3rem)}
}
body.embed:not(.chrome-journal):not(.chrome-lite) .ci-subject .subject-meta{font-size:clamp(0.65rem,1.2vh,0.78rem);line-height:1.55}
body.embed:not(.chrome-journal):not(.chrome-lite) .ci-subject .subject-meta::after{margin:0.5rem 0 0}
body.embed:not(.chrome-journal):not(.chrome-lite) .ci-actions{margin-top:clamp(0.4rem,1vh,0.75rem)}
body.embed:not(.chrome-journal):not(.chrome-lite):not([data-dyn-mode]) .ci-actions{max-width:13.75rem}
body.embed:not(.chrome-journal):not(.chrome-lite) .ci-montage{min-height:0;overflow:hidden}
body.embed:not(.chrome-journal):not(.chrome-lite) .ci-montage-stage{flex:1;min-height:0}
body.embed:not(.chrome-journal):not(.chrome-lite) .ci-chart{padding:clamp(2rem,3.5vh,4rem) 0 clamp(0.4rem,1vh,1rem)}
body.embed:not(.chrome-journal):not(.chrome-lite) .ci-montage{align-self:stretch;justify-content:safe flex-end}
body.embed:not(.chrome-journal):not(.chrome-lite) svg#chart{max-height:calc(100dvh - 6rem)}
body.embed:not(.chrome-journal):not(.chrome-lite) .ci-montage-tabs{font-size:clamp(0.7rem,1.3vh,0.8125rem)}
body.embed:not(.chrome-journal):not(.chrome-lite) .ci-montage-tabs button{padding:clamp(0.3rem,0.8vh,0.5rem) clamp(0.6rem,1.5vw,1.125rem) clamp(0.35rem,0.9vh,0.5625rem)}
/* ACG（data-mapping）模式：drawer 占满全屏，main-layout 完全 collapse 不再留空 */
body.embed.data-mapping.data-open .main-layout{display:none!important}
body.embed.data-mapping.data-open .data-drawer{width:100vw!important;max-width:100vw!important;left:0!important;right:0!important}
/* chrome=lite 推运面板(法达/小限/回归)手机端:抽屉原本 min-width:45rem(720px)被切→改满宽,
   宽表(法达/回归)靠 drawer-body 横滑、内容盒(小限)回到屏内→居中标题自然居中。仅手机,电脑端不动 */
@media (max-width:1023px){
  body.chrome-lite.data-open .data-drawer{width:100vw!important;max-width:100vw!important;min-width:0!important;left:0!important;right:0!important}
  body.chrome-lite .data-drawer-body{overflow-x:auto;-webkit-overflow-scrolling:touch}
}
/* embed 下 dial90：覆盖原 100vh-6.5rem（header 已隐藏）→ 铺满 viewport，pointer panel 顶部贴顶 */
body.embed:not(.chrome-journal):not(.chrome-lite)[data-dyn-mode="dial90"] .chart-integrated{height:calc(100dvh - 0.5rem)!important;min-height:0!important;max-height:calc(100dvh - 0.5rem)!important}
body.embed:not(.chrome-journal):not(.chrome-lite)[data-dyn-mode="dial90"] #dial-pointer-panel{top:auto!important;bottom:0.5rem!important;max-height:calc(100dvh - 1rem)!important}
body.embed:not(.chrome-journal):not(.chrome-lite)[data-dyn-mode="dial90"] .ci-subject{max-height:calc(100dvh - 1rem)!important;justify-content:flex-end!important}
/* 任务 3：dial90 整盘左移到与顶栏中线对齐（左栏 13.75rem rail 让 SVG 中心偏右，translateX 拉回）。
   -9.5rem 正好把盘居中在左行星树侧栏与右指针面板之间的空当；盘宽由下方 max-width 限到能塞进空当，
   两侧各让出余量、不再戳出侧栏/不钻进右面板（见 .ci-chart svg embed 收窄规则）。 */
body.embed:not(.chrome-journal):not(.chrome-lite)[data-dyn-mode="dial90"] .ci-chart{transform:translateX(-9.3rem)!important}
/* 任务 5：dpp section 标题左对齐 + 加粗醒目（之前居中且 letter-spacing 太松） */
body.embed:not(.chrome-journal):not(.chrome-lite)[data-dyn-mode="dial90"] #dial-pointer-panel .dpp-h{text-align:left!important;font-weight:500!important;letter-spacing:0.16em!important;color:var(--text-faint)!important;font-size:0.6562rem!important;text-transform:uppercase}
body.embed:not(.chrome-journal):not(.chrome-lite)[data-dyn-mode="dial90"] #dial-pointer-panel summary.dpp-h{justify-content:flex-start!important;gap:0.5rem!important}
/* journal/transit iframe 专用（URL 带 chrome=lite）：drawer 标题+segments 已被外层 React 顶栏接管，避免重复 */
body.chrome-lite #data-drawer-title{display:none!important}
body.chrome-lite #data-drawer-segmented{display:none!important}
body.chrome-lite #returns-controls .returns-date-row{display:none!important}
.main-layout{display:grid;grid-template-columns:minmax(0,1fr) 18.75rem;gap:1.75rem;align-items:start}
@media (max-width:1100px){.main-layout{grid-template-columns:1fr}}

/* Subject card (left top) */
.subject-card{background:var(--bg-card);border:1px solid var(--border);border-radius:0.75rem;padding:1.125rem 1.375rem;margin-bottom:1.25rem}
.subject-name{font-family:var(--serif);font-size:1.375rem;font-weight:500;letter-spacing:0.5px;margin-bottom:0.5rem;display:flex;align-items:baseline;gap:0.375rem}
.subject-name .name-text{flex:1;min-width:0}
.subject-meta{font-size:0.7812rem;color:var(--text-dim);line-height:1.85;font-family:Arial,sans-serif}
.subject-meta .label{color:var(--text-faint);display:inline-block;min-width:3.25rem}

/* Chart card */
.card{background:var(--bg-card);border:1px solid var(--border);border-radius:0.75rem;padding:1.375rem;margin-bottom:1.25rem}
.card-title{font-family:var(--serif);font-size:1rem;letter-spacing:0.5px;color:var(--text);margin-bottom:0.875rem;font-weight:500}
.card-title-small{font-size:0.625rem;letter-spacing:0.1875rem;color:var(--accent);text-transform:uppercase;margin-bottom:0.875rem;font-weight:500}
.section-title{font-size:1rem;font-weight:700;color:var(--text);letter-spacing:1.5px;margin-bottom:0.875rem}
.subsec-title{font-size:0.8125rem;font-weight:600;color:var(--text-dim);letter-spacing:1px;margin-bottom:0.625rem;margin-top:0.25rem}
.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1.625rem}
@media (max-width:900px){.grid-3{grid-template-columns:1fr}}
/* 数据表 · 方案B：上 3 列（Schmidt 宽 | 宫头元素模式 最窄 | 特殊点 中）+ 底行恒星整行 */
.datatab-grid{display:grid;grid-template-columns:minmax(0,2.3fr) minmax(0,1fr);grid-template-areas:"schmidt lots" "stars stars";gap:1rem;align-items:stretch}
.datatab-grid>.card{padding:1.125rem 1.125rem;box-sizing:border-box}
.datatab-grid .card-schmidt{grid-area:schmidt}
.datatab-grid .card-lots{grid-area:lots}
.datatab-grid .card-stars{grid-area:stars}
.datatab-grid .em-mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem 1.5rem;margin-top:2.25rem}
.datatab-grid .em-mode-grid .em-mode-title{margin-top:0;margin-bottom:0.5rem}
/* 数据表内部：统一 0.6875rem，仅 section-title 0.875rem 粗体 */
.datatab-grid,.datatab-grid table,.datatab-grid th,.datatab-grid td,
.datatab-grid .bar-label,.datatab-grid .bar-count,
.datatab-grid .em-mode-box,.datatab-grid .house-pair-table td,
.datatab-grid .sch-table th,.datatab-grid .sch-table td,
.datatab-grid #lots-table,.datatab-grid #lots-table td,.datatab-grid #lots-table th{font-size:0.6875rem}
.datatab-grid th,.datatab-grid td{padding:0.375rem 0.3125rem}
.datatab-grid .section-title{font-size:0.875rem;font-weight:700;letter-spacing:1px;margin-bottom:0.75rem}
.datatab-grid .subsec-title,.datatab-grid .em-mode-title{font-size:0.875rem!important;font-weight:700!important;color:var(--text)!important;margin-bottom:0.5rem;margin-top:0.875rem;letter-spacing:1px}
.datatab-grid .subsec-title:first-of-type{margin-top:0}
.sch-table{width:100%;border-collapse:collapse;font-family:Arial,sans-serif}
.sch-table th{font-weight:500;color:var(--text-dim);padding:0.3125rem 2px;border-bottom:1px solid var(--border);text-align:center}
.sch-table td{padding:0.3125rem 2px;text-align:center;border-bottom:1px solid var(--border-lite,#f0e8df)}
.sch-table td.sch-pl{text-align:left;padding-left:0.25rem;white-space:nowrap}
.sch-table .glyph{font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',serif;font-size:1.25rem;line-height:1;vertical-align:-2px}
.sch-table .glyph-lg{font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',serif;font-size:1.25rem;line-height:1;vertical-align:-2px}
/* 全局星座/行星符号字体：禁用彩色 emoji 渲染 */
.glyph,.pgly,.sym-big{font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',serif!important;font-variant-emoji:text;-webkit-font-feature-settings:"liga"}
/* 特殊状态 · 行星符号上色 */
/* 行星色板 —— 抄 AstroGold（暖棕日 / 紫水 / 青金 / 珊瑚火 / 暗红土 / 蓝紫天 / 青绿海 / 栗冥） */
.pcol-sun{color:#C8722C}.pcol-moon{color:#5C5C5E}.pcol-mercury{color:#8B7A3F}
.pcol-venus{color:#2F8F7E}.pcol-mars{color:#DD6F5C}.pcol-jupiter{color:#6B4FA0}
.pcol-saturn{color:#8B3A3A}.pcol-uranus{color:#7E84B3}.pcol-neptune{color:#2F95A8}
.pcol-pluto{color:#5C2E5C}.pcol-chiron{color:#A67C52}.pcol-node{color:#1F1F1F}
/* 行星符号视觉等大化 —— Unicode 字符天然字号差异大，按经验缩放系数对齐
   用 transform:scale 而非 font-size：布局槽位不变，只缩放可视图形 */
.pcol-sun{--vk:1.00}
.pcol-moon{--vk:1.06}
.pcol-mercury{--vk:1.00}
.pcol-venus{--vk:0.96}
.pcol-mars{--vk:1.00}
.pcol-jupiter{--vk:1.00}
.pcol-saturn{--vk:1.12}
.pcol-uranus{--vk:1.04}
.pcol-neptune{--vk:0.94}
.pcol-pluto{--vk:0.65}
.pcol-node,.pcol-southnode{--vk:1.10}
.pcol-chiron{--vk:1.00}
.sym-pl,.glyph-lg,.glyph,.asp-sym-lg,.tl-fb-sym,.fd-sym,.pf-sym{display:inline-block;transform:scale(var(--vk,1));transform-origin:center}
.pcol-fortune{color:#C77D9D}.pcol-spirit{color:#6B8E4E}.pcol-syn{color:#4A5563}
.pcol-exalt{color:#D4A017}.pcol-basis{color:#8B6F47}
.pcol-asc{color:var(--accent)}.pcol-mc{color:var(--accent)}
/* 相位表对角线行星符号比默认色更醒目 */
.asp-tri td.asp-diag .asp-sym-lg{font-weight:900}
.sch-own{color:var(--fire);font-weight:600}
.sch-dim{color:var(--text-dim)}
.sch-alert{color:var(--fire);font-weight:600}
.sub-compact{font-size:0.7188rem;line-height:1.7;color:var(--text-dim)}
.sub-compact .s-line{padding:0.1875rem 0;border-bottom:1px solid var(--border-lite,#f0e8df)}
.sub-compact .s-line:last-child{border-bottom:0}
/* 宫头 6 对：窄列、标签靠左、度数靠右 */
.house-pair-table{width:100%;border-collapse:collapse;font-family:Arial,sans-serif;margin-left:0.375rem}
.house-pair-table td{padding:0.25rem 2px;border-bottom:1px solid var(--border-lite,#f0e8df)}
.house-pair-table td.hn{color:var(--text-dim);text-align:left;width:2.25rem}
.house-pair-table td.hn.ang{color:var(--text);font-weight:700}
.house-pair-table td.hd{white-space:nowrap;text-align:right;padding-right:0.25rem}
.em-mode-box{padding-left:0.375rem}
.em-mode-box .bar-label{width:2.375rem;font-weight:400;color:var(--text)}
.em-mode-box .bar-count{font-weight:400;color:var(--text)}
/* 恒星整行：合相 + Parans 并排；Parans 4 轴再横向 4 列 */
.stars-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.6fr);gap:1.25rem}
.stars-grid .subsec-title{margin-top:0}
.stars-parans #fixedstar-parans{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0.875rem}
.stars-parans .paran-sec{font-size:0.6875rem;line-height:1.55}
.stars-parans .paran-sec .paran-head{font-size:0.7188rem;font-weight:700;color:var(--text);margin-bottom:0.25rem;letter-spacing:0.3px}
.stars-parans .paran-sec .s-line{padding:2px 0;border-bottom:1px solid var(--border-lite,#f0e8df)}
@media (max-width:1100px){.datatab-grid{grid-template-columns:1fr;grid-template-areas:"schmidt" "lots" "stars"}}
@media (max-width:760px){.datatab-grid .em-mode-grid{grid-template-columns:1fr}.stars-grid{grid-template-columns:1fr}.stars-parans #fixedstar-parans{grid-template-columns:repeat(2,1fr)}}
html[lang="en"] .en-only{display:table-cell}
html:not([lang="en"]) .en-only{display:none}
.chart-wrap{display:flex;justify-content:center;align-items:center}
svg#chart{width:100%;height:auto;max-height:calc(100vh - 11.25rem);display:block;margin:0 auto}
.chart-mode-toggle{display:inline-flex;border:1px solid var(--border);border-radius:62.4375rem;overflow:hidden;margin-bottom:0.625rem;background:transparent}
.chart-mode-toggle .cm-btn{border:0;background:transparent;padding:0.375rem 1.125rem;font-size:0.8125rem;color:var(--text-dim);cursor:pointer;font-family:inherit;letter-spacing:1px;white-space:nowrap}
.chart-mode-toggle .cm-btn.active{background:rgba(204,120,92,.12);color:var(--accent)}
.chart-mode-toggle .cm-btn+.cm-btn{border-left:1px solid var(--border)}
/* 模式下拉菜单：脱离 chart-mode-toggle 的 overflow:hidden，定位到 controlbar */
.cm-menu{position:absolute;top:2.875rem;left:50%;transform:translateX(-50%);min-width:35rem;background:rgba(255,255,255,.97);backdrop-filter:blur(1.25rem) saturate(140%);-webkit-backdrop-filter:blur(1.25rem) saturate(140%);border:1px solid rgba(204,120,92,.15);border-radius:0.875rem;box-shadow:0 0.75rem 3rem rgba(38,38,36,.12);padding:0.875rem 1.125rem;z-index:200;display:none;grid-template-columns:repeat(4,1fr);gap:0.875rem 1.125rem}
.cm-menu.show{display:grid}
.cm-menu .cm-sect{display:flex;flex-direction:column;gap:0.375rem}
.cm-menu .cm-sect-label{font-family:var(--serif);font-size:0.6875rem;font-weight:600;color:var(--text-faint);letter-spacing:1.5px;text-transform:uppercase;padding:0 0.25rem 0.25rem;border-bottom:1px solid var(--border)}
.cm-menu .cm-mode-btn{border:1px solid var(--border);background:transparent;color:var(--text-dim);padding:0.5rem 0.75rem;border-radius:62.4375rem;font-family:inherit;font-size:0.75rem;cursor:pointer;letter-spacing:.4px;transition:all .15s;text-align:center}
.cm-menu .cm-mode-btn:hover:not([disabled]){border-color:var(--accent);color:var(--accent)}
.cm-menu .cm-mode-btn.active{background:rgba(204,120,92,.14);color:var(--accent);border-color:var(--accent);font-weight:600}
.cm-menu .cm-mode-btn[disabled]{opacity:.42;cursor:not-allowed}
/* 动态盘日期游标条：定位到主图正上方，居中星盘列；最上层避免被主图盖 */
.dyn-cursor{display:none;align-items:center;gap:0.375rem;background:rgba(250,249,245,.78);backdrop-filter:blur(0.875rem) saturate(140%);-webkit-backdrop-filter:blur(0.875rem) saturate(140%);border:1px solid rgba(204,120,92,.16);border-radius:62.4375rem;padding:0.3125rem 0.75rem;height:2.375rem;box-shadow:0 0.25rem 1rem rgba(38,38,36,.05);white-space:nowrap;font-size:0.75rem}
body[data-dyn-mode] .dyn-cursor{display:inline-flex}
/* 动态模式时：隐藏顶部 chart-date-bar（重复于 dyn-cursor）+ 隐藏 ci-pinned + 隐藏 ci-actions + ci-montage 让位给行运相位表 */
body[data-dyn-mode] .chart-date-bar{display:none!important}
body[data-dyn-mode] .ci-pinned{display:none!important}
body[data-dyn-mode] .ci-actions{display:none!important}
body[data-dyn-mode] .ci-montage{display:none!important}
body[data-dyn-mode] .dyn-side{display:none!important}
/* dial90 / 90°盘 模式：连相位表也隐藏 —— 90°盘自身就是答案 */
body[data-dyn-mode="dial90"] .ci-dyn-grid{display:none!important}
body[data-dyn-mode="dial90"] .ci-subject .subject-meta::after{display:none}
/* dial90 模式：右侧浮卡按钮栏整体隐藏，让盘面占满 */
body[data-dyn-mode="dial90"] .data-launcher{display:none!important}
/* 动态模式专用相位表（钉到 col1/row2 槽位的下沿，与左栏底部对齐） */
.ci-dyn-grid{display:none;grid-column:1;grid-row:2;align-self:end;padding:0;background:transparent;min-width:0;max-width:100%;overflow:visible}
body[data-dyn-mode]:not([data-dyn-mode="dial90"]) .ci-dyn-grid{display:block}
/* 动态模式：col1 = 28.75rem（bi-mat 1.875rem + 14×14 矩阵 + 行星轴完整可见） */
body[data-dyn-mode]:not([data-dyn-mode="dial90"]) .chart-integrated{grid-template-columns:28.75rem minmax(0,1fr)!important}
body[data-dyn-mode="dial90"] .chart-integrated{grid-template-columns:13.75rem minmax(0,1fr)!important}
body[data-dyn-mode="dial90"] .ci-controlbar{left:calc(13.75rem + 1.5rem + 1.75rem)!important;right:calc(18.75rem + 1.5rem + 1.75rem)!important}
/* dial90：ci-chart translateX(-9.5rem) 视觉左移后会盖到 ci-subject（资料库 / 行星树 tab / 太阳弧 tab / 句子 tab）上吃点击；抬 ci-subject 到上层 */
body[data-dyn-mode="dial90"] .ci-subject{position:relative;z-index:5}
/* dial90 ci-chart 恢复右 padding 把 chart 推回视觉中心（避开右侧浮动 panel 区） */
body[data-dyn-mode="dial90"] .ci-chart{padding-right:18.75rem}
/* dial90 chart 85vh：行运时星体不会超过顶栏 */
body[data-dyn-mode="dial90"] .circle-wrap{max-width:min(85vh, 50rem) !important}
body[data-dyn-mode="dial90"] .chart-integrated .ci-chart svg{max-width:min(85vh, 100%);max-height:85vh}
/* embed（首页 iframe）下:左行星树侧栏 + 右指针面板夹出的空当约 654px,原盘宽 ~800px 两侧各溢出 ~25px。
   收窄到能塞进空当(含两侧余量),配合 -9.5rem 居中 → 9点/3点方向行星标签两边都不再压面板。 */
body.embed:not(.chrome-journal):not(.chrome-lite)[data-dyn-mode="dial90"] .chart-integrated .ci-chart svg{max-width:min(85vh, 41rem)!important}
/* C: 白色容器真正到视口底——用 fixed top:6.5rem bottom:0 保证下沿 = 视口底
   rail/panel 都自然对齐容器底；page 不再产生底部缝隙 */
body[data-dyn-mode="dial90"] .chart-integrated{
  height:calc(100vh - 6.5rem) !important;
  min-height:calc(100vh - 6.5rem) !important;
  max-height:calc(100vh - 6.5rem) !important;
  padding-top:0.5rem !important;
  padding-bottom:0.5rem !important;
}
body[data-dyn-mode="dial90"] #dial-pointer-panel{max-height:calc(100vh - 7.5rem) !important;top:6.5rem !important}
.ci-dyn-grid #dyn-bi-grid{overflow:visible;max-width:100%}
/* 矩阵标题：居中 / 加粗 / serif，与表格视觉权重对等 */
.ci-dyn-grid-title{font-size:0.9375rem;letter-spacing:0.1562rem;color:var(--accent);font-weight:700;margin:0.375rem 0 0.875rem;text-align:center;font-family:var(--serif);position:relative}
.ci-dyn-grid-header{display:flex;align-items:center;justify-content:space-between;gap:0.5rem;margin:0.375rem 0 0.75rem}
.ci-dyn-grid-header .ci-dyn-grid-title{margin:0;flex:1}
.ci-dyn-grid-pills{display:flex;gap:0.25rem}
.ci-dyn-grid-pills .dgp{height:1.5rem;padding:0 0.625rem;border:1px solid var(--border);border-radius:62.4375rem;background:transparent;color:var(--text-dim);font-family:inherit;font-size:0.6875rem;letter-spacing:.3px;cursor:pointer;transition:all .15s}
.ci-dyn-grid-pills .dgp:hover{border-color:var(--accent);color:var(--accent)}
.ci-dyn-grid-pills .dgp.active{background:rgba(204,120,92,.12);border-color:var(--accent);color:var(--accent);font-weight:600}
.ci-dyn-grid-title::after{content:"";display:block;width:2.25rem;height:1.5px;background:var(--accent);margin:0.5rem auto 0;opacity:.6}
/* bi-mat 矩阵相位表 — image 210 风格：左轴行标 / 底轴列标无边无底；数据格大字 + 度数 + A/S */
table.bi-mat{border-collapse:separate;border-spacing:0;background:transparent;font-family:Arial,sans-serif;margin:0}
table.bi-mat td.bi-cell{width:1.875rem;height:1.875rem;min-width:1.875rem;padding:1px 1px 0;text-align:center;vertical-align:middle;background:transparent;border:1px solid #cbc6b9;line-height:1;position:relative;cursor:default}
/* 行/列头加 max-width：separate 模式下 width 只是建议值，宽字形能把列撑开并顶出屏幕 */
table.bi-mat th.bi-rowax{border:0!important;background:transparent!important;width:1.625rem;max-width:1.625rem;height:1.875rem;padding:0 0.4375rem 0 2px;text-align:center;vertical-align:middle;line-height:1.875rem;overflow:hidden}
table.bi-mat th.bi-colax{border:0!important;background:transparent!important;width:1.875rem;max-width:1.875rem;height:1.875rem;padding:0.4375rem 0 2px;text-align:center;vertical-align:middle;line-height:1;overflow:hidden}
table.bi-mat th.bi-corner{background:transparent;border:0;width:1.625rem;height:1.875rem}
/* bi-rc-pl 应用全局 --vk 缩放（与 .sym-pl/.glyph 同步），所有行星视觉等大。
   ⭐等尺寸盒子（Steven 2026-08-13）：字形宽窄天差地别（实测 ☿13px / Ac 22.1px / Mc 22.9px），
   而 border-collapse:separate 下 th 的 width 只是建议值——宽字形会把列撑开，
   13 列累积起来就把相位表顶出屏幕。固定盒子＋居中让每个符号占位一致，列宽从此不被内容左右。
   transform 不参与布局，--vk 继续只做视觉微调。 */
table.bi-mat .bi-rc-pl{font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',serif;font-size:1.125rem;font-weight:900;font-variant-emoji:text;display:inline-flex;align-items:center;justify-content:center;width:1.125rem;height:1.25rem;line-height:1;vertical-align:middle;transform:scale(var(--vk,1));transform-origin:center}
/* AC/MC 走拉丁字母，两字符天然比单符号宽 → 单独压字号，与 ☉ 同宽（本命表与推运双盘表共用这一条） */
table.bi-mat .bi-rc-pl.pcol-asc,table.bi-mat .bi-rc-pl.pcol-mc{font-size:0.6875rem;--vk:0.95;letter-spacing:-.02em}
table.bi-mat .bi-rc-lot{font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',serif;font-size:1.125rem;font-weight:900;color:#C77D9D;line-height:1;vertical-align:middle;display:inline-block}
/* 推运/双盘表的 AC·MC 走这一条（本命表走 .bi-rc-pl.pcol-asc）——同样收进等尺寸盒子，
   否则两个拉丁字母撑开列头、把表顶出屏幕（Steven 2026-08-13） */
table.bi-mat .bi-rc-ax{font-family:Arial,sans-serif;font-size:0.6875rem;font-weight:700;color:var(--accent);letter-spacing:-.02em;line-height:1;vertical-align:middle;display:inline-flex;align-items:center;justify-content:center;width:1.125rem;height:1.25rem;overflow:hidden}
/* zebra striping：每两行换底，整表扫读节奏 */
table.bi-mat tbody tr:nth-of-type(even) td.bi-cell{background-color:rgba(204,120,92,.025)}
/* hover 整行 + 整列高亮（JS 通过 class 注入） */
table.bi-mat td.bi-cell.bi-row-hover{background-color:rgba(204,120,92,.07)!important}
table.bi-mat td.bi-cell.bi-col-hover{background-color:rgba(204,120,92,.07)!important}
table.bi-mat td.bi-cell.bi-row-hover.bi-col-hover{background-color:rgba(204,120,92,.18)!important;outline:1px solid var(--accent);outline-offset:-1px}
table.bi-mat th.bi-rowax.bi-row-hover{color:var(--accent)}
table.bi-mat th.bi-colax.bi-col-hover{color:var(--accent)}
/* 数据格 */
table.bi-mat td.bi-empty{background:transparent}
table.bi-mat .bi-asp{display:block;font-size:0.875rem;font-weight:900;line-height:1;font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',serif;letter-spacing:-0.3px}
table.bi-mat .bi-orb{display:block;font-size:0.4688rem;font-weight:600;font-family:Arial,sans-serif;font-variant-numeric:tabular-nums;letter-spacing:.1px;line-height:1;margin-top:1px}
/* 与 asp-tri 完全同款的相位单元背景 + 字色（与圆盘同步降一档，让相位表更安静） */
table.bi-mat td.bi-cell:has(.asp-sym-red){background:rgba(163,95,90,0.08)}
table.bi-mat td.bi-cell:has(.asp-sym-red) .bi-asp,table.bi-mat td.bi-cell:has(.asp-sym-red) .bi-orb{color:#C44536}
table.bi-mat td.bi-cell:has(.asp-sym-blue){background:rgba(90,107,160,0.08)}
table.bi-mat td.bi-cell:has(.asp-sym-blue) .bi-asp,table.bi-mat td.bi-cell:has(.asp-sym-blue) .bi-orb{color:#5A7FB5}
table.bi-mat td.bi-cell:has(.asp-sym-green){background:rgba(79,132,106,0.06)}
table.bi-mat td.bi-cell:has(.asp-sym-green) .bi-asp,table.bi-mat td.bi-cell:has(.asp-sym-green) .bi-orb{color:#4F7F6B}
table.bi-mat td.bi-cell:has(.asp-sym-brown){background:rgba(134,113,90,0.05)}
table.bi-mat td.bi-cell:has(.asp-sym-brown) .bi-asp,table.bi-mat td.bi-cell:has(.asp-sym-brown) .bi-orb{color:#86715A}
table.bi-mat td.bi-cell:has(.asp-sym-gray){background:rgba(120,116,109,0.04)}
table.bi-mat td.bi-cell:has(.asp-sym-gray) .bi-asp,table.bi-mat td.bi-cell:has(.asp-sym-gray) .bi-orb{color:#777}
/* hover 浮签：完整容差 + 入/离的中文释义 */
table.bi-mat td.bi-cell[title]:hover::after{content:attr(title);position:absolute;left:50%;bottom:100%;transform:translate(-50%,-2px);font-size:0.625rem;font-weight:600;color:var(--text);background:#FAF9F5;border:1px solid var(--border);border-radius:0.25rem;padding:2px 0.375rem;white-space:nowrap;pointer-events:none;z-index:5;box-shadow:0 2px 0.375rem rgba(0,0,0,.06)}
/* bi-tri 双盘相位表（行运/SA/SP/SR ⇄ 本命）— 与主盘 asp-tri 同源视觉，但 N×M 矩形 */
table.bi-tri{border-collapse:separate;border-spacing:0;font-size:0.6875rem;margin:0;background:transparent}
table.bi-tri td,table.bi-tri th{width:2.375rem;height:2.375rem;min-width:2.375rem;text-align:center;padding:1px;border:0;border-bottom:1px solid rgba(0,0,0,.05);border-right:1px solid rgba(0,0,0,.05);vertical-align:middle;font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',Arial,serif;background:transparent;position:relative}
table.bi-tri th.bi-axis{background:rgba(204,120,92,.05);font-weight:600}
table.bi-tri th.bi-axis-aux .bi-axis-lbl{font-family:Arial,sans-serif;font-size:0.8125rem;color:var(--accent);font-weight:700;letter-spacing:.5px}
table.bi-tri th.bi-corner{background:linear-gradient(135deg,rgba(204,120,92,.08) 50%,rgba(204,120,92,.03) 50%);position:relative;font-family:inherit;font-size:0.5938rem;width:3.75rem}
table.bi-tri th.bi-corner .bi-corner-out{position:absolute;top:0.1875rem;right:0.3125rem;color:var(--text-faint);font-family:inherit;font-size:0.5938rem;letter-spacing:.5px;font-weight:600}
table.bi-tri th.bi-corner .bi-corner-in{position:absolute;bottom:0.1875rem;left:0.3125rem;color:var(--text-faint);font-family:inherit;font-size:0.5938rem;letter-spacing:.5px;font-weight:600}
table.bi-tri td.asp-empty{background:transparent}
table.bi-tri td.asp-cell{cursor:default}
table.bi-tri .asp-sym-lg{font-size:1.25rem;font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',serif;font-weight:700}
table.bi-tri td.asp-cell:has(.asp-sym-red){background:rgba(163,95,90,.13)}
table.bi-tri td.asp-cell:has(.asp-sym-blue){background:rgba(90,107,160,.13)}
table.bi-tri td.asp-cell:has(.asp-sym-green){background:rgba(79,132,106,.10)}
table.bi-tri td.asp-cell:has(.asp-sym-brown){background:rgba(134,113,90,.08)}
table.bi-tri td.asp-cell:has(.asp-sym-gray){background:rgba(120,116,109,.06)}
table.bi-tri td.asp-cell::after{content:attr(data-orb);position:absolute;left:50%;bottom:100%;transform:translate(-50%,-2px);font-size:0.625rem;font-weight:700;color:var(--text);background:#FAF9F5;border:1px solid var(--border);border-radius:0.25rem;padding:2px 0.3125rem;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .12s;z-index:5;font-variant-numeric:tabular-nums;box-shadow:0 2px 0.375rem rgba(0,0,0,.06)}
table.bi-tri td.asp-cell:hover::after{opacity:1}
.dyn-cursor input[type="date"],.dyn-cursor input[type="datetime-local"]{border:0;background:transparent;font-family:inherit;font-size:0.7812rem;color:var(--text);font-variant-numeric:tabular-nums;outline:none;width:10rem}
.dyn-cursor .dc-btn{width:1.5rem;height:1.5rem;border:1px solid var(--border);border-radius:50%;background:transparent;color:var(--text-dim);cursor:pointer;font-size:0.625rem;padding:0;display:inline-flex;align-items:center;justify-content:center}
.dyn-cursor .dc-btn:hover{border-color:var(--accent);color:var(--accent)}
.dyn-cursor .dc-btn.dc-now{width:auto;padding:0 0.625rem;font-size:0.6875rem;font-weight:600;letter-spacing:.5px}
.dyn-cursor .dc-divider{width:1px;height:1.125rem;background:var(--border);margin:0 2px}
/* 动态盘右侧浮卡：触发相位摘要 */
.dyn-side{position:fixed;right:1.125rem;top:50%;transform:translateY(-50%);width:17.5rem;max-height:calc(100vh - 8.75rem);overflow-y:auto;background:rgba(255,255,255,.92);backdrop-filter:blur(1.25rem) saturate(140%);-webkit-backdrop-filter:blur(1.25rem) saturate(140%);border:1px solid rgba(204,120,92,.14);border-radius:0.875rem;box-shadow:0 0.75rem 2.5rem rgba(38,38,36,.10);padding:1.125rem 1rem;z-index:7;display:none;font-size:0.75rem;color:var(--text)}
body[data-dyn-mode] .dyn-side{display:block}
.dyn-side .ds-head{font-family:var(--serif);font-size:0.875rem;font-weight:600;color:var(--text);margin-bottom:0.625rem;padding-bottom:0.5rem;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.dyn-side .ds-head .ds-mode-tag{font-size:0.625rem;color:var(--accent);background:rgba(204,120,92,.12);padding:2px 0.5rem;border-radius:62.4375rem;letter-spacing:.5px;font-weight:500}
.dyn-side .ds-row{display:flex;align-items:center;gap:0.375rem;padding:0.375rem 0.25rem;border-bottom:1px dashed rgba(0,0,0,.05);font-variant-numeric:tabular-nums;line-height:1.4}
.dyn-side .ds-row:last-child{border-bottom:0}
.dyn-side .ds-row .ds-orb{margin-left:auto;color:var(--text-faint);font-size:0.6562rem}
.dyn-side .ds-empty{text-align:center;color:var(--text-faint);padding:1.125rem 0.25rem;font-style:italic}
.chart-integrated .ci-chart{flex-direction:column;gap:0}
/* 双盘 + 网格布局 */
svg#chart-tr,svg#chart-sa,svg#chart-syn{width:100%;max-width:35rem;height:auto;display:block}
.bi-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:1.375rem;align-items:start;margin-top:0.375rem}
@media (max-width:960px){.bi-layout{grid-template-columns:1fr}}
.bi-grid-wrap{min-width:0;overflow-x:auto}
table.bi-grid{border-collapse:collapse;font-size:0.8125rem;font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',Arial,serif}
table.bi-grid th,table.bi-grid td{border:1px solid var(--border);width:1.875rem;height:1.875rem;text-align:center;padding:0;background:var(--bg-card)}
table.bi-grid thead th{background:var(--bg-subtle);color:var(--text-dim);font-weight:500;font-size:0.875rem}
table.bi-grid tbody th{background:var(--bg-subtle);color:var(--text-dim);font-weight:500;font-size:0.875rem;text-align:center}
table.bi-grid td{font-size:0.9375rem;color:var(--text);font-weight:600}
table.bi-grid .bi-corner{position:relative;font-size:0.625rem;background:linear-gradient(135deg,var(--bg-subtle) 50%,var(--bg-card) 50%);width:3.75rem;height:1.875rem}
table.bi-grid .bi-corner-out{position:absolute;top:2px;right:0.25rem;color:var(--text-faint);font-family:inherit;font-size:0.5938rem;letter-spacing:.5px}
table.bi-grid .bi-corner-in{position:absolute;bottom:2px;left:0.25rem;color:var(--text-faint);font-family:inherit;font-size:0.5938rem;letter-spacing:.5px}
/* 过境时间条 */
.transit-time-row{display:flex;align-items:center;gap:0.625rem;flex-wrap:wrap;margin-bottom:0.75rem;padding:0.625rem 0.75rem;background:var(--bg-subtle);border-radius:0.5rem}
.transit-time-row input[type="datetime-local"]{background:var(--bg-card);border:1px solid var(--border-strong);color:var(--text);padding:0.375rem 0.625rem;border-radius:0.375rem;font-size:0.8125rem;font-family:inherit}
.transit-time-row .tt-steps{display:inline-flex;flex-wrap:wrap;gap:0.25rem}
.transit-time-row .tt-steps button{background:var(--bg-card);border:1px solid var(--border-strong);color:var(--text-dim);padding:0.3125rem 0.5625rem;border-radius:0.3125rem;font-size:0.7188rem;font-family:inherit;cursor:pointer;transition:.12s;letter-spacing:.5px}
.transit-time-row .tt-steps button:hover{color:var(--accent);border-color:var(--accent)}
.transit-time-row .tt-steps .tt-now{margin-left:0.375rem;color:var(--accent);border-color:var(--accent)}
/* 比较盘操作行 */
.syn-action-row{display:flex;align-items:center;gap:0.875rem;margin:0.625rem 0 0.25rem;flex-wrap:wrap}

/* 整合视图：左列上/下放出生信息与相位格，右列放大星盘 */
.chart-integrated{display:grid;grid-template-columns:13.75rem minmax(0,1fr);grid-template-rows:auto 1fr;gap:0.75rem 1.75rem;padding:0.875rem 3.5rem 1.125rem 1.5rem;min-height:calc(100vh - 6.875rem);position:relative}
/* 焦点态：右侧时主星栏出现，星盘整体左移（grid 重排） */
body.focus-active .chart-integrated{grid-template-columns:13.75rem minmax(0,1fr) 20rem}
.ci-timelord-side{display:none;grid-column:3;grid-row:1 / span 2;align-self:start;background:transparent;border:none;border-left:1px solid var(--border);border-radius:0;padding:0.5rem 0 0.5rem 1.375rem;min-width:0;max-height:calc(100vh - 10rem);overflow-y:auto;margin-top:3.75rem}
body.focus-active .ci-timelord-side{display:block}
/* ── 数据 launcher（星盘右上角圆形图标条）+ 抽屉式右侧 drawer ── */
.data-launcher{position:absolute;top:50%;transform:translateY(-50%);right:0.5rem;display:flex;flex-direction:column;gap:0.5rem;z-index:6;align-items:flex-end}
/* pill 按钮：图标 + 文字标签同时可见，所有按钮等宽，紧凑贴右边 */
.data-launcher button{height:1.875rem;width:6rem;min-width:6rem;border:1px solid var(--border);border-radius:62.4375rem;background:#fff;cursor:pointer;display:inline-flex;align-items:center;justify-content:flex-start;color:var(--text-dim);transition:border-color .15s,color .15s,background .15s,box-shadow .15s,transform .15s ease-out;padding:0 0.625rem 0 0.5rem;gap:0.375rem;font-family:inherit;font-size:0.75rem;font-weight:500;letter-spacing:.02em;white-space:nowrap;line-height:1}
.data-launcher button:hover{border-color:var(--accent);color:var(--accent);box-shadow:0 2px 0.375rem rgba(204,120,92,.15)}
.data-launcher button.active{background:rgba(204,120,92,.12);color:var(--accent);border-color:var(--accent);font-weight:600}
.data-launcher button svg{width:1rem;height:1rem;flex-shrink:0}
/* 标签永显在按钮左侧（而非 hover tooltip） */
/* 文字标签：紧贴图标右侧，inline 显示，颜色继承按钮 */
.data-launcher .dl-label{position:static;transform:none;background:transparent;color:inherit;padding:0;border-radius:0;font-size:0.75rem;letter-spacing:.04em;white-space:nowrap;opacity:1;pointer-events:none;font-family:inherit;font-weight:inherit;display:inline-flex;align-items:center}
.data-launcher .dl-divider{width:1.125rem;height:1px;background:var(--border);margin:2px auto;opacity:.7}
.data-launcher button[disabled]{opacity:.42;cursor:not-allowed}
.data-launcher button[disabled]:hover{border-color:var(--border);color:var(--text-dim);box-shadow:none}
/* 浮卡内顶部 segmented：分组按行排列，每行一个标签 + 一组胶囊按钮 */
.data-drawer-segmented{display:flex;flex-direction:column;gap:0.625rem;padding:0 0 1.125rem;margin:-2px 0 1.375rem;border-bottom:1px solid var(--border)}
.data-drawer-segmented .seg-row{display:flex;align-items:center;gap:0.5rem;flex-wrap:wrap}
.data-drawer-segmented .seg-row-label{flex-shrink:0;width:2.875rem;font-family:var(--serif);font-size:0.8125rem;font-weight:500;color:var(--text);letter-spacing:.5px;padding-right:0.625rem;border-right:1px solid var(--border);text-align:right}
.data-drawer-segmented .seg-row-pills{display:flex;gap:0.375rem;flex-wrap:wrap;flex:1}
.data-drawer-segmented button{border:1px solid var(--border);background:transparent;color:var(--text-dim);padding:0.3125rem 0.875rem;border-radius:62.4375rem;font-family:inherit;font-size:0.75rem;letter-spacing:.4px;cursor:pointer;transition:border-color .15s,color .15s,background .15s}
.data-drawer-segmented button:hover{border-color:var(--accent);color:var(--accent)}
.data-drawer-segmented button.active{background:rgba(204,120,92,.12);color:var(--accent);border-color:var(--accent);font-weight:600}
.data-drawer-segmented .seg-row.is-disabled .seg-row-label{color:var(--text-faint);font-style:italic}
.data-drawer-segmented .seg-row.is-disabled button{opacity:.42;cursor:not-allowed}
.data-launcher button{position:relative}
body.focus-active .data-launcher{display:none}
@media (max-width:768px){.data-launcher{display:none}}
/* 工具坞高度防溢出：当药丸总高超过视口时支持滚动 */
.data-launcher{max-height:calc(100vh - 8.75rem);overflow-y:auto;scrollbar-width:none;padding-right:2px}
.data-launcher::-webkit-scrollbar{display:none}
/* 中等屏幕（1280-1440）药丸略缩 */
@media (max-width:1440px){
  .data-launcher{gap:0.5625rem}
  .data-launcher button{width:2.125rem;height:2.125rem}
  .data-launcher button svg{width:1rem;height:1rem}
}
/* drawer */
/* 不再使用蒙太奇遮罩：保留节点防止 JS 报错，强制隐藏 */
.data-backdrop{display:none!important}
/* 抽屉打开时主区让位：左移 + 收窄，露出干净的星盘空间，右边给资料面板 */
.main-layout{transition:margin-right .42s cubic-bezier(.2,.8,.2,1),transform .42s cubic-bezier(.2,.8,.2,1)}
/* drawer 宽度分三档 */
.data-drawer{transition:right .42s cubic-bezier(.2,.8,.2,1),width .42s cubic-bezier(.2,.8,.2,1),min-width .42s cubic-bezier(.2,.8,.2,1)}
/* narrow：行星状态/停滞/月相/平衡/气质/特殊点/恒星 紧凑卡片，给主图大空间 */
body.data-narrow .data-drawer{width:min(42.5rem,48vw);min-width:35rem}
body.data-mid .data-drawer{width:min(51.25rem,52vw);min-width:38.75rem}
/* wide：法达/ZR/配置/赤经/ACG 长表格 */
body.data-wide .data-drawer{width:min(68.75rem,60vw);min-width:45rem}
/* main-layout margin 联动 */
.main-layout{transition:margin-right .42s cubic-bezier(.2,.8,.2,1),grid-template-columns .45s ease}
body.data-open .main-layout{margin-right:min(68.75rem,60vw)}
body.data-open.data-narrow .main-layout{margin-right:min(42.5rem,48vw)}
body.data-open.data-mid .main-layout{margin-right:min(51.25rem,52vw)}
body.data-open.data-wide .main-layout{margin-right:min(68.75rem,60vw)}
@media (max-width:1500px){body.data-open .main-layout{margin-right:min(56.25rem,58vw)}body.data-open.data-narrow .main-layout{margin-right:min(42.5rem,50vw)}body.data-open.data-mid .main-layout{margin-right:min(51.25rem,55vw)}}
@media (max-width:1100px){body.data-open .main-layout{margin-right:0}}
/* 跨平台同频：< 16" Mac 时收紧 ci-montage 左列，把宽度让给中间星盘 */
@media (max-width:1500px){
  body.embed:not(.chrome-journal):not(.chrome-lite):not([data-dyn-mode]) .chart-integrated:not(.is-square){grid-template-columns:22rem minmax(0,1fr)}
}
@media (max-width:1366px){
  body.embed:not(.chrome-journal):not(.chrome-lite):not([data-dyn-mode]) .chart-integrated:not(.is-square){grid-template-columns:19rem minmax(0,1fr)}
}
/* 窄屏：缩小 aspect grid 每格 + 表格总宽，避免末行 (MC) 被裁 */
@media (max-width:1400px){
  .chart-integrated .ci-aspect .asp-tri{width:calc(1.625rem * 14)!important}
  body .chart-integrated .ci-aspect .asp-tri td,
  body .chart-integrated .ci-aspect .asp-tri th.asp-rowlbl,
  body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri td{width:1.625rem!important;height:1.625rem!important;min-width:1.625rem!important;min-height:1.625rem!important;max-height:1.625rem!important;font-size:0.625rem!important}
  .chart-integrated .ci-aspect .asp-tri .asp-sym-lg{font-size:0.9375rem!important;line-height:1!important}
  .chart-integrated .ci-aspect .asp-tri .asp-sym-red{font-size:0.875rem!important}
  .chart-integrated .ci-aspect .asp-tri td.asp-cell::after{font-size:0.5rem!important}
}
/* drawer 打开时主图等比缩小 + 垂直居中 + 白色底（与主界面一致，非顶栏的浅黄） */
body.data-open .ci-chart{display:flex!important;align-items:center;justify-content:center;min-height:calc(100vh - 6.25rem);padding:0!important;background:#fff;border-radius:0.875rem}
body.data-open .ci-chart svg{max-width:min(38.75rem,40vw)!important;max-height:min(38.75rem,calc(100vh - 8.75rem))!important;margin:auto;transition:max-width .42s cubic-bezier(.2,.8,.2,1),max-height .42s cubic-bezier(.2,.8,.2,1)}
/* narrow drawer 让出最多空间：主图最大化到接近可用宽度，居中和谐 */
body.data-open.data-narrow .ci-chart svg{max-width:min(45rem,46vw)!important;max-height:min(45rem,calc(100vh - 7.5rem))!important}
body.data-maxed .ci-chart svg{max-width:min(17.5rem,16vw)!important;opacity:.4}
/* drawer-open 时 chart-integrated 容器也给白色，主图区域整体一致 */
body.data-open .chart-integrated{background:#fff!important}
/* 占星地图：drawer 全幅铺开 + 主区彻底让位 */
body.data-mapping .data-drawer{width:100vw;max-width:100vw;right:-100vw;padding:0;overflow:hidden}
body.data-mapping .data-drawer.open{right:0}
body.data-mapping.data-open .main-layout{margin-right:100vw;pointer-events:none;opacity:0;transition:opacity .25s,margin-right .42s cubic-bezier(.2,.8,.2,1)}
body.data-mapping .data-launcher{display:none!important}
/* 抽屉打开时左侧只保留星盘 + launcher，其他视为噪音隐藏 */
body.data-open .ci-subject,
body.data-open .ci-montage,
body.data-open .ci-controlbar,
body.data-open .mode-seg,
body.data-open .ci-timelord-side,
body.data-open .ci-actions{display:none!important}
body.data-open .chart-integrated{display:block!important;padding:1.125rem 3.75rem 1.125rem 1.125rem;min-height:auto;border:none;background:transparent;box-shadow:none}
body.data-open .ci-chart{padding-top:0!important;display:flex;align-items:center;justify-content:center}
/* launcher 切换条：贴在星盘最右侧（chart-integrated 右 padding 内），与盘外边界对齐 */
body.data-open .data-launcher{display:flex!important;position:absolute!important;top:50%!important;right:0.5rem!important;transform:translateY(-50%)!important;flex-direction:column!important;gap:0.875rem!important;padding:0!important;margin:0!important;z-index:7;background:transparent;width:auto!important;height:auto!important;left:auto!important;bottom:auto!important}
body.data-open .data-launcher button{background:#fff!important;border:1px solid var(--border)!important;height:1.875rem!important;width:1.875rem!important;min-width:1.875rem!important;border-radius:50%!important;padding:0!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:0!important}
body.data-open .data-launcher button:hover{width:6rem!important;min-width:6rem!important;border-radius:62.4375rem!important;padding:0 0.625rem 0 0.5rem!important;justify-content:flex-start!important;gap:0.375rem!important}
body.data-open .data-launcher .dl-label{position:static!important;transform:none!important;background:transparent!important;color:inherit!important;padding:0!important;border-radius:0!important;max-width:0!important;opacity:0!important;font-size:0.75rem!important;letter-spacing:.04em!important;white-space:nowrap!important;overflow:hidden!important}
body.data-open .data-launcher button:hover .dl-label{max-width:6rem!important;opacity:1!important}
body.data-open .data-launcher button:hover .dl-label{color:var(--accent)!important}
body.data-open .data-launcher button.active .dl-label{color:var(--accent)!important;font-weight:600!important}
/* 让左侧主区紧贴抽屉左边缘，消除中间空隙 */
body.data-open .container{max-width:none!important;padding-right:0!important}
body.data-open .main-content{padding-right:0!important}

/* 分屏模式：浮卡保持完整 pill（图标 + 中文常驻），与主界面一致 */
body.data-open .data-launcher{
  z-index:90 !important;
}
/* 分屏模式下浮卡分组与主界面保持一致（修：line 596 强制 display 破坏了 dl-square-only/non-square） */
body.data-open[data-chart-mode="square"] .data-launcher .dl-non-square{display:none !important}
body.data-open[data-chart-mode="square"] .data-launcher .dl-square-only{display:inline-flex !important}
body.data-open:not([data-chart-mode="square"]) .data-launcher .dl-square-only{display:none !important}
body.data-open:not([data-chart-mode="square"]) .data-launcher .dl-non-square{display:inline-flex !important}
/* 列宽微调：drawer 缩 ~3rem 给 chart 多透气 */
body.data-open .data-drawer{width:min(64rem, 56vw)}
body.data-open .main-layout{margin-right:min(64rem, 56vw)}
body.data-open.data-narrow .data-drawer{width:min(40rem, 45vw); min-width:33rem}
body.data-open.data-narrow .main-layout{margin-right:min(40rem, 45vw)}
body.data-open.data-mid .data-drawer{width:min(48rem, 49vw); min-width:36rem}
body.data-open.data-mid .main-layout{margin-right:min(48rem, 49vw)}
body.data-open.data-wide .data-drawer{width:min(64rem, 56vw)}
body.data-open.data-wide .main-layout{margin-right:min(64rem, 56vw)}
body.data-open .ci-chart svg{max-width:min(42rem, 44vw)!important}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.data-drawer{position:fixed;top:0;right:-100vw;width:min(68.75rem,60vw);max-width:94vw;min-width:40rem;height:100vh;background:#fff;border-left:1px solid var(--border);box-shadow:-1px 0 0 rgba(0,0,0,.04);z-index:80;transition:right .42s cubic-bezier(.2,.8,.2,1);overflow-y:auto;padding:3.375rem 2.75rem 3.5rem}
.data-drawer.open{right:0}
.data-drawer-close{position:absolute;top:1.125rem;right:1.25rem;width:2rem;height:2rem;font-size:1.375rem;background:rgba(0,0,0,.04);border:1px solid var(--border);border-radius:50%;cursor:pointer;color:var(--text-dim);display:flex;align-items:center;justify-content:center;line-height:1;transition:color .15s,background .15s,border-color .15s}
.data-drawer-close:hover{color:var(--accent);background:rgba(204,120,92,.10);border-color:var(--accent)}
.data-drawer-pin{position:absolute;top:1.125rem;right:6.25rem;width:2rem;height:2rem;background:rgba(0,0,0,.04);border:1px solid var(--border);border-radius:50%;cursor:pointer;color:var(--text-dim);display:flex;align-items:center;justify-content:center;transition:color .15s,background .15s,border-color .15s,transform .2s}
.data-drawer-pin:hover{color:var(--accent);background:rgba(204,120,92,.10);border-color:var(--accent);transform:rotate(-12deg)}
.data-drawer-pin.is-pinned{color:var(--accent);background:rgba(204,120,92,.14);border-color:var(--accent)}
.data-drawer-max{position:absolute;top:1.125rem;right:3.75rem;width:2rem;height:2rem;background:rgba(0,0,0,.04);border:1px solid var(--border);border-radius:50%;cursor:pointer;color:var(--text-dim);display:flex;align-items:center;justify-content:center;transition:color .15s,background .15s,border-color .15s}
.data-drawer-max:hover{color:var(--accent);background:rgba(204,120,92,.10);border-color:var(--accent)}
/* 全屏模式：drawer 占满 + 主图隐藏（专为法达/ZR 这类超宽表格） */
body.data-maxed .data-drawer{width:96vw;min-width:96vw}
body.data-maxed .main-layout{margin-right:96vw}
body.data-maxed .data-drawer-max{color:var(--accent);background:rgba(204,120,92,.14);border-color:var(--accent)}
.data-drawer-title{font-family:var(--serif);font-size:1.5rem;font-weight:600;letter-spacing:0.1875rem;color:var(--text);margin-bottom:1.5rem;padding-bottom:1.125rem;border-bottom:1px solid var(--border);text-align:center}
.data-drawer-body .dt-section{display:block!important}
body.focus-active .ci-chart svg{max-width:68.75rem}
@media (max-width:1300px){
  body.focus-active .chart-integrated{grid-template-columns:1fr;grid-template-rows:auto auto auto auto}
  body.focus-active .ci-subject{grid-row:2}
  body.focus-active .ci-chart{grid-row:1;grid-column:1}
  body.focus-active .ci-montage{grid-row:3;grid-column:1}
  body.focus-active .ci-timelord-side{grid-row:4;grid-column:1;max-height:none;margin-top:0}
}
/* 相位表：去外框，配色匹配主盘（盘内紧张相 #A35F5A、和谐相 #5A6BA0） */
.chart-integrated .ci-aspect{background:transparent;border:0;padding:0;box-shadow:none}
.chart-integrated .ci-aspect .asp-tri{table-layout:fixed;width:1.875rem*14;width:calc(1.875rem * 14)}
.chart-integrated .ci-aspect .asp-tri td{width:2.125rem;height:2.125rem;min-width:2.125rem;min-height:2.125rem;max-height:2.125rem;font-size:0.6875rem;padding:0;border:1px solid rgba(0,0,0,0.06);position:relative;background:transparent;box-sizing:border-box}
.chart-integrated .ci-aspect .asp-tri th.asp-rowlbl{width:2.125rem;min-width:2.125rem;max-width:2.125rem;height:2.125rem;padding:0;text-align:left;border:0;background:transparent;font-weight:normal;box-sizing:border-box}
/* 极简方向 A（Solar Fire 风格）：单元格底色全去，靠 glyph 颜色承载相位识别 */
.chart-integrated .ci-aspect .asp-tri td.asp-diag{background:transparent}
/* 行星 row 标签统一为中性色，不再各自带色 */
.chart-integrated .ci-aspect .asp-tri th.asp-rowlbl .asp-sym-lg{color:var(--text-dim)!important}
.chart-integrated .ci-aspect .asp-tri .asp-sym-lg{font-size:1.125rem;font-weight:900}
.chart-integrated .ci-aspect .asp-tri .asp-sym-red,.chart-integrated .ci-aspect .asp-tri .asp-sym-green,.chart-integrated .ci-aspect .asp-tri .asp-sym-blue,.chart-integrated .ci-aspect .asp-tri .asp-sym-brown,.chart-integrated .ci-aspect .asp-tri .asp-sym-gray{font-size:0.9375rem;font-weight:900}
/* 刑/冲 是判读重点 —— 加大字号并加描边，相位表里第一眼看到 */
.chart-integrated .ci-aspect .asp-tri .asp-sym-red{font-size:1.0625rem;font-weight:1000;letter-spacing:-0.5px;text-shadow:0 0 0.4px currentColor;-webkit-text-stroke:0.5px currentColor}
/* hover 时浮出度差小标 — 不占用单元格空间 */
.chart-integrated .ci-aspect .asp-tri td.asp-cell::after{content:attr(data-orb);position:absolute;left:0;right:0;bottom:1px;transform:none;font-size:0.5625rem;font-weight:600;color:var(--text-dim);background:transparent;border:0;border-radius:0;padding:0;white-space:nowrap;opacity:1;pointer-events:none;transition:opacity .12s;z-index:1;font-variant-numeric:tabular-nums;box-shadow:none;text-align:center;letter-spacing:-0.02em;line-height:1}
/* 对角线 (planet vs self) 的 glyph 与左侧行标签冗余，隐藏掉。底色保留作为视觉主对角线锚点 */
.chart-integrated .ci-aspect .asp-tri td.asp-diag .asp-sym-lg{display:none}
.chart-integrated .ci-aspect .asp-tri td.asp-cell .asp-sym-lg,.chart-integrated .ci-aspect .asp-tri td.asp-cell span:not(.asp-sym-red){line-height:1.6}
.chart-integrated .ci-aspect{overflow:visible}
.chart-integrated .ci-aspect .asp-tri{margin:0}
.chart-integrated .ci-subject{grid-column:1;grid-row:1;align-self:start}
.chart-integrated .ci-chart{grid-column:2;grid-row:1 / span 2;display:flex;flex-direction:column;justify-content:center;align-items:center;min-width:0;position:relative;padding:3.5rem 0 1.125rem}
/* 双盘模式：星盘左对齐贴近相位表；右栏完全隐藏，让出全部宽度给放大的双盘 */
body[data-dyn-mode]:not([data-dyn-mode="dial90"]) .chart-integrated .ci-chart{align-items:flex-start;padding-left:0;padding-right:6rem}
body[data-dyn-mode]:not([data-dyn-mode="dial90"]) .chart-integrated .ci-chart svg{margin-left:-1.25rem}
/* 时主推运面板打开时：右栏浮卡全部隐掉；星盘尺寸继续交给 data-open 分屏规则 */
body.data-prog-open .data-launcher{display:none!important}
.chart-integrated .ci-chart svg{width:100%;max-width:100%;max-height:calc(100vh - 6.25rem);height:auto;display:block;aspect-ratio:1/1;margin:0 auto;transition:max-width .42s cubic-bezier(.2,.8,.2,1),max-height .42s cubic-bezier(.2,.8,.2,1)}
/* 方盘下日期步进与圆盘共用同一个控制条布局（不再单独定位到右上） */
/* 蒙太奇面板：相位表 / 特殊状态共享一格，按键切换 */
/* 蒙太奇面板：贴卡片下沿（底距=左距=1.75rem），toggle 与表格之间留呼吸 */
.ci-montage{grid-column:1;grid-row:2;align-self:end;display:flex;flex-direction:column;gap:0.375rem;min-width:0}
.ci-montage-tabs{display:flex;align-self:flex-start;width:fit-content;font-size:0.8125rem;border-bottom:1px solid var(--border-lite,#f0e8df);gap:0;padding:0;background:transparent}
.ci-montage-tabs button{border:0;background:transparent;padding:0.5rem 1.125rem 0.5625rem;color:var(--text-faint);cursor:pointer;font-family:inherit;letter-spacing:1.5px;font-weight:600;position:relative;transition:color .15s}
/* 相位是判读核心 —— 即便未激活也保持可读，引导视线先看它 */
.ci-montage-tabs button[data-mt="aspect"]:not(.active){color:var(--text-dim);font-weight:700}
.ci-montage-tabs button:hover{color:var(--text)}
.ci-montage-tabs button.active{color:var(--accent);background:transparent}
.ci-montage-tabs button.active::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--accent);border-radius:2px}
.ci-montage-tabs button:first-child{padding-left:0}
.chart-integrated .ci-aspect .asp-tri{margin:0}
.ci-montage-stage{position:relative;min-height:0}
.ci-montage-stage .ci-aspect,.ci-montage-stage .ci-special,.ci-montage-stage .ci-timelord,.ci-montage-stage .ci-notes{position:absolute;inset:0;opacity:0;transition:opacity .35s ease;pointer-events:none}
.ci-montage-stage .ci-aspect.active,.ci-montage-stage .ci-special.active,.ci-montage-stage .ci-timelord.active,.ci-montage-stage .ci-notes.active{opacity:1;pointer-events:auto;position:relative}
.ci-notes{display:flex;flex-direction:column;gap:0.625rem;padding:0.375rem 0}
.ci-notes-toolbar{display:flex;align-items:center;gap:0.375rem;font-size:0.6875rem;flex-wrap:wrap}
.ci-notes-tool{background:transparent;border:1px solid var(--border);color:var(--text-dim);font-family:inherit;font-size:0.6875rem;letter-spacing:.4px;padding:0.25rem 0.625rem;border-radius:62.4375rem;cursor:pointer;transition:.15s}
.ci-notes-tool:hover{color:var(--accent);border-color:var(--accent)}
.ci-notes-tool.active{background:rgba(204,120,92,.1);color:var(--accent);border-color:var(--accent)}
.ci-notes-toolbar-sep{flex:1}
.ci-notes-text{width:100%;min-height:12.5rem;padding:0.875rem 1rem;background:transparent;border:1px solid var(--border);border-radius:0.625rem;font-family:inherit;font-size:0.8438rem;line-height:1.7;color:var(--text);resize:vertical;outline:none;transition:border-color .15s,box-shadow .15s}
.ci-notes-text:focus{border-color:var(--accent);box-shadow:0 0 0 0.1875rem rgba(204,120,92,.10)}
.ci-notes-text::placeholder{color:var(--text-faint)}
.ci-notes-preview{display:none;min-height:12.5rem;padding:0.875rem 1.125rem;background:transparent;border:1px solid var(--border);border-radius:0.625rem;font-size:0.8438rem;line-height:1.75;color:var(--text)}
.ci-notes.preview-mode .ci-notes-text{display:none}
.ci-notes.preview-mode .ci-notes-preview{display:block}
.ci-notes-preview h1,.ci-notes-preview h2,.ci-notes-preview h3{font-family:var(--serif);color:var(--text);margin:0.875rem 0 0.5rem;letter-spacing:.5px}
.ci-notes-preview h1{font-size:1.125rem;font-weight:600}
.ci-notes-preview h2{font-size:1rem;font-weight:600}
.ci-notes-preview h3{font-size:0.875rem;font-weight:600;color:var(--text-dim)}
.ci-notes-preview p{margin:0.375rem 0}
.ci-notes-preview ul,.ci-notes-preview ol{padding-left:1.375rem;margin:0.375rem 0}
.ci-notes-preview li{margin:2px 0}
.ci-notes-preview strong{color:var(--text);font-weight:700}
.ci-notes-preview em{color:var(--text-dim)}
.ci-notes-preview code{font-family:'SF Mono','Menlo',monospace;font-size:0.7812rem;background:rgba(204,120,92,.08);padding:1px 0.3125rem;border-radius:0.25rem}
.ci-notes-preview blockquote{border-left:0.1875rem solid var(--accent);padding:2px 0.75rem;color:var(--text-dim);margin:0.5rem 0;background:rgba(204,120,92,.04)}
.ci-notes-preview .note-tag{display:inline-block;padding:1px 0.5rem;background:rgba(204,120,92,.10);color:var(--accent);border-radius:62.4375rem;font-size:0.75rem;font-weight:600;margin:0 1px}
.ci-notes-status{font-size:0.6875rem;color:var(--text-faint);letter-spacing:.6px;min-height:0.875rem}
.ci-notes-status.warn{color:var(--accent)}
.ci-notes-foot{display:flex;justify-content:space-between;align-items:center;gap:0.625rem}
.ci-notes-hint{font-size:0.6875rem;color:var(--text-faint);letter-spacing:.4px}
.ci-notes-hint.saved{color:#4F846A}
/* 历史版本 modal */
.notes-history-modal .modal-panel{width:37.5rem;max-width:92vw;max-height:80vh}
/* 占星日记 modal */
.diary-modal .diary-panel{width:68.75rem;max-width:96vw;height:88vh}
/* 行运视图：作为日记右侧滑出的二格面板，盘 + 星历，无遮罩 */
.transit-modal{background:transparent!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;display:none;pointer-events:none;z-index:120!important}
.transit-modal.open{display:block!important}
.transit-modal .transit-panel{pointer-events:auto;position:fixed;top:5vh;right:1.5rem;left:calc(32.5rem + 1.5rem);width:auto;height:90vh;border-radius:0.875rem;border:1px solid var(--border);box-shadow:0 0.875rem 3.125rem rgba(30,25,22,.10);background:#FAF9F5;animation:txSlideIn .42s cubic-bezier(.2,.8,.2,1);display:flex;flex-direction:column;margin:0}
/* 行运打开时：日记蒙层去虚化、贴左侧固定，与 transit panel 顶端对齐、两者紧贴无缝 */
body.transit-open .diary-modal{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:transparent!important;display:flex!important;justify-content:flex-start!important;align-items:stretch!important;padding:0!important}
body.transit-open .diary-modal .diary-panel{position:fixed!important;left:1.5rem!important;top:5vh!important;width:32.5rem!important;max-width:32.5rem!important;min-width:32.5rem!important;height:90vh!important;margin:0!important}
.transit-body{display:flex;flex:1;overflow:hidden;padding:1.125rem 1.5rem 1.5rem;gap:1.5rem;flex-direction:row}
.tx-chart-pane{flex:0 0 auto;width:37.5rem;height:37.5rem;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:0.875rem;padding:0.375rem;background:rgba(255,255,255,.5);align-self:center}
.tx-chart-pane svg{width:100%;height:100%;display:block}
.tx-eph-pane{flex:1;min-width:17.5rem;overflow-y:auto;padding-right:0.375rem;align-self:stretch}
@keyframes txSlideIn{from{transform:translateX(100%)}to{transform:translateX(0)}}
/* 日记 modal 在行运打开时左移让位 */
body.transit-open .diary-modal{justify-content:flex-start;padding-left:1.5rem;padding-right:calc(60vw + 1.5rem)}
body.transit-open .diary-modal .diary-panel{margin:0;width:auto}
.transit-modal .modal-head{gap:0.875rem;padding:1.125rem 1.5rem 0.875rem;border-bottom:1px solid var(--border)}
.transit-modal .modal-head h3{font-family:var(--serif);font-size:1rem;font-weight:600;color:var(--text);letter-spacing:1px;margin-left:0.375rem}
.transit-modal .modal-head input[type=date]{padding:0.375rem 0.625rem;border:1px solid var(--border);border-radius:0.375rem;font-size:0.75rem;font-family:inherit;background:transparent;color:var(--text);margin-left:auto}
.tx-back-btn{background:transparent;border:1px solid var(--border);color:var(--text-dim);font-family:inherit;font-size:0.75rem;letter-spacing:.4px;padding:0.375rem 0.875rem;border-radius:62.4375rem;cursor:pointer;transition:.15s}
.tx-back-btn:hover{color:var(--accent);border-color:var(--accent);background:rgba(204,120,92,.06)}
.eph-day .tx-day{min-height:auto;padding:0.875rem 1rem;background:transparent}
.eph-day .tx-day-num{font-family:var(--serif);font-size:1rem;font-weight:600;color:var(--text);letter-spacing:.5px;margin-bottom:0.875rem;padding-bottom:0.625rem;border-bottom:1px solid var(--border)}
.eph-day .tx-badge{font-size:0.8125rem;padding:0.3125rem 0.75rem;margin:0.1875rem 0.25rem 0.1875rem 0}
.eph-day .tx-badge .tx-pl{font-size:0.875rem}
.eph-grid .tx-day{min-height:6rem}
/* 笔记 @token 高亮元素事件库联动 */
.tx-badge.eph-hi{outline:2px solid var(--accent);outline-offset:2px}
.tx-badge.eph-dim{opacity:.35}
.diary-tabs{display:flex;gap:0.375rem;margin-left:auto;margin-right:0.875rem}
.dy-tab{background:transparent;border:1px solid var(--border);color:var(--text-dim);font-family:inherit;font-size:0.75rem;letter-spacing:.4px;padding:0.3125rem 0.875rem;border-radius:62.4375rem;cursor:pointer;transition:.15s}
.dy-tab:hover{color:var(--accent);border-color:var(--accent)}
.dy-tab.active{background:rgba(204,120,92,.1);color:var(--accent);border-color:var(--accent)}
.diary-body{padding:0;display:flex;flex-direction:column;flex:1;overflow:hidden}
.diary-pane{display:none;flex:1;overflow:hidden}
.diary-pane.active{display:flex}
/* 元素事件库 */
.diary-pane-elements{flex-direction:row}
.dy-el-grid{width:15rem;flex-shrink:0;overflow-y:auto;border-right:1px solid var(--border);padding:0 0.75rem 1.125rem}
.dy-el-tabs{display:flex;gap:0;margin:0 -0.75rem 0.875rem;padding:0.875rem 0.75rem 0;background:#FAF9F5;position:sticky;top:0;z-index:2;border-bottom:1px solid var(--border)}
.dy-el-tab{flex:1;background:transparent;border:0;padding:0.875rem 0;font-family:var(--serif);font-size:1.125rem;font-weight:600;letter-spacing:0.375rem;color:var(--text-faint);cursor:pointer;position:relative;transition:.15s}
.dy-el-tab:hover{color:var(--text)}
.dy-el-tab.active{color:var(--accent)}
.dy-el-tab.active::after{content:'';position:absolute;left:25%;right:25%;bottom:-1px;height:2px;background:var(--accent);border-radius:2px}
.dy-el-list{padding-top:0.375rem}
.dy-el-btn{display:flex;align-items:center;justify-content:center;gap:0.5rem;width:100%;padding:0.5625rem 0.625rem;background:transparent;border:1px solid transparent;border-radius:0.5rem;cursor:pointer;font-family:inherit;color:var(--text);font-size:0.8438rem;text-align:center;transition:.15s;margin-bottom:2px;position:relative}
.dy-el-btn:hover{background:rgba(204,120,92,.06);border-color:var(--border)}
.dy-el-btn.active{background:rgba(204,120,92,.10);border-color:var(--accent);color:var(--accent)}
.dy-el-btn .dy-el-sym{font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',serif;font-variant-emoji:text;font-size:1.125rem;font-weight:600}
.dy-el-btn .dy-el-name{}
.dy-el-btn .dy-el-count{font-size:0.6875rem;color:var(--text-faint);font-variant-numeric:tabular-nums;position:absolute;right:0.625rem;top:50%;transform:translateY(-50%)}
.dy-el-btn.active .dy-el-count{color:var(--accent)}
.dy-el-detail{flex:1;overflow-y:auto;padding:1.5rem 1.75rem}
.dy-el-detail-head{margin-bottom:1.5rem;padding-bottom:1.125rem;border-bottom:1px solid var(--border)}
.dy-el-detail-title{display:flex;align-items:baseline;gap:0.875rem;margin-bottom:0.625rem}
.dy-el-detail-sym{font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',serif;font-variant-emoji:text;font-size:2.625rem;line-height:1;color:var(--text);font-weight:600}
.dy-el-detail-sym-num{font-family:var(--serif);font-size:2.25rem;color:var(--accent);min-width:2.5rem;text-align:center}
.dy-el-detail-name{font-family:var(--serif);font-size:1.5rem;font-weight:600;letter-spacing:2px;color:var(--text)}
.dy-el-detail-meta{font-size:0.75rem;color:var(--text-dim);line-height:1.4}
.dy-natal-tbl{border-collapse:separate;border-spacing:0;width:auto;font-size:0.75rem}
.dy-natal-tbl th{font-size:0.6875rem;font-weight:700;color:var(--text);letter-spacing:1px;padding:0 1.375rem 0.375rem 0;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}
.dy-natal-tbl td{padding:0.4375rem 1.375rem 0.4375rem 0;vertical-align:middle;border-bottom:1px solid var(--border);white-space:nowrap}
.dy-natal-tbl tr:last-child td{border-bottom:none}
.dy-natal-tbl td b{color:var(--text);font-weight:600;letter-spacing:1px;font-size:0.6875rem}
.dy-intercept{color:var(--accent);font-size:0.625rem;font-weight:500;letter-spacing:.3px;margin-left:1px;vertical-align:middle}
.dy-el-add{background:transparent;border:1px solid var(--border);border-radius:0.625rem;padding:0.75rem 0.875rem;margin-bottom:1.125rem}
.dy-el-add-meta{display:flex;gap:0.5rem;align-items:center;margin-bottom:0.625rem;flex-wrap:wrap}
.dy-el-add input[type=date],.dy-el-add select{padding:0.375rem 0.625rem;border:1px solid var(--border);border-radius:62.4375rem;font-size:0.75rem;font-family:inherit;background:transparent;color:var(--text)}
.dy-el-add .dy-ev-theme{flex:1;min-width:12.5rem;padding:0.4375rem 0.875rem;border:1px solid var(--accent);border-radius:62.4375rem;font-family:inherit;font-size:0.8438rem;font-weight:600;color:var(--accent);background:rgba(204,120,92,.04);outline:none;letter-spacing:.5px}
.dy-el-add .dy-ev-theme::placeholder{color:rgba(204,120,92,.45);font-weight:400}
.dy-el-add .dy-ev-theme:focus{background:rgba(204,120,92,.08)}
.dy-el-add .dy-ev-input{width:100%;margin-top:0.375rem;padding:0.5rem 0.75rem;border:1px solid var(--border);border-radius:0.5rem;font-family:inherit;font-size:0.8125rem;line-height:1.5;resize:vertical;min-height:2.375rem;background:transparent;color:var(--text);outline:none;display:block}
.dy-el-add .dy-ev-input.dy-ev-input-event{min-height:3.75rem;border-color:var(--text-dim);font-size:0.8438rem}
.dy-el-add .dy-ev-input:focus{border-color:var(--accent)}
.dy-el-add .dy-el-add-foot{display:flex;justify-content:flex-end;margin-top:0.625rem}
/* 三列并排：事件 / 重复 / 思考 */
.dy-ev-3col,.dy-jr-3col{display:grid;grid-template-columns:repeat(3,1fr);gap:0.625rem;margin-top:0.375rem}
.dy-ev-col,.dy-jr-col{display:flex;flex-direction:column;gap:0.25rem;min-width:0}
.dy-ev-label{font-size:0.6875rem;font-weight:600;letter-spacing:1.5px;color:var(--text-dim);padding:0 2px}
.dy-ev-opt{font-weight:400;color:var(--text-faint);letter-spacing:.5px;font-size:0.625rem;margin-left:0.25rem;padding:0 0.3125rem;border:1px solid var(--border);border-radius:62.4375rem}
.dy-ev-col textarea,.dy-jr-col textarea{margin-top:0!important;resize:vertical}
@media (max-width:900px){.dy-ev-3col,.dy-jr-3col{grid-template-columns:1fr}}
/* 单元格 truncate 行为 */
.dy-events-tbl .dy-c-theme{min-width:5.625rem;max-width:8.75rem;color:var(--accent);font-weight:600}
.dy-cell-truncate{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;cursor:pointer;max-height:1.7em}
.dy-cell-truncate.expanded{display:block;-webkit-line-clamp:unset;max-height:none;overflow:visible;white-space:pre-wrap}
/* 事件列表（行星 | 事件 | 日期 | 重复 | 思考） */
.dy-events-tbl{width:100%;border-collapse:separate;border-spacing:0;font-size:0.7812rem}
.dy-events-tbl th{font-size:0.625rem;font-weight:600;letter-spacing:1.5px;color:var(--text-faint);padding:0.375rem 0.625rem;text-align:left;border-bottom:1px solid var(--border);text-transform:none}
.dy-events-tbl td{padding:0.5rem 0.625rem;vertical-align:top;border-bottom:1px solid var(--border)}
.dy-events-tbl tr:hover td{background:rgba(204,120,92,.03)}
.dy-events-tbl .dy-c-el{width:2.5rem;text-align:center;color:var(--text);padding-top:0.625rem}
.dy-events-tbl .dy-c-date{width:6rem;font-variant-numeric:tabular-nums;color:var(--text-dim)}
.dy-events-tbl .dy-c-date .dy-cell-src{font-size:0.625rem;color:var(--text-faint);letter-spacing:.4px;margin-top:2px}
.dy-events-tbl .dy-c-event{min-width:15rem;color:var(--text)}
.dy-events-tbl .dy-c-pattern{min-width:5.625rem;max-width:8.75rem}
.dy-events-tbl .dy-c-thought{min-width:5.625rem;max-width:8.75rem}
.dy-events-tbl .dy-col-soft{color:var(--text-dim)}
.dy-events-tbl .dy-col-soft .dy-cell-edit{color:var(--text-dim);font-size:0.75rem}
.dy-events-tbl .dy-th-soft{color:var(--text-faint)}
.dy-events-tbl .dy-th-opt{display:inline-block;margin-left:0.25rem;padding:0 0.3125rem;font-size:0.5938rem;font-weight:400;color:var(--text-faint);letter-spacing:.5px;border:1px solid var(--border);border-radius:62.4375rem}
.dy-events-tbl-5 .dy-c-theme{min-width:5rem;max-width:7.5rem}
.dy-events-tbl .dy-c-act{width:1.5rem;text-align:right}
.dy-events-tbl .dy-cell-edit{min-height:1.5em;line-height:1.55;color:var(--text);outline:none;padding:2px 0.25rem;border-radius:0.25rem;cursor:text;white-space:pre-wrap;word-break:break-word;transition:background .15s}
.dy-events-tbl .dy-cell-edit:hover{background:rgba(204,120,92,.04)}
.dy-events-tbl .dy-cell-edit:focus{background:rgba(204,120,92,.06);outline:1px solid var(--accent)}
.dy-events-tbl .dy-cell-edit:empty::before{content:attr(data-placeholder);color:var(--text-faint);font-style:normal}
.dy-events-tbl .dy-event-del{background:transparent;border:none;color:var(--text-faint);font-size:0.875rem;cursor:pointer;padding:2px 0.375rem;line-height:1}
.dy-events-tbl .dy-event-del:hover{color:var(--accent)}
.dy-event-item{padding:0.875rem 0;border-bottom:1px solid var(--border)}
.dy-event-item:last-child{border-bottom:none}
.dy-event-head{display:flex;align-items:baseline;gap:0.625rem;margin-bottom:0.375rem;font-size:0.7188rem;color:var(--text-dim)}
.dy-event-date{font-variant-numeric:tabular-nums;font-weight:600;color:var(--text)}
.dy-event-source{padding:1px 0.5rem;border-radius:62.4375rem;background:rgba(204,120,92,.08);color:var(--accent);font-size:0.6562rem;letter-spacing:.5px}
.dy-event-del{margin-left:auto;background:none;border:0;color:var(--text-faint);font-size:0.6875rem;cursor:pointer;padding:2px 0.375rem;border-radius:0.25rem}
.dy-event-del:hover{color:var(--accent);background:rgba(204,120,92,.06)}
.dy-event-desc{font-size:0.8125rem;line-height:1.7;color:var(--text);white-space:pre-wrap}
.dy-empty{text-align:center;color:var(--text-faint);font-size:0.75rem;padding:2.5rem 0}
/* 快速写入区（Flomo 风格） */
.dy-qw{border-bottom:1px solid var(--border);padding:1rem 1.25rem 0.875rem;background:var(--bg)}
.dy-qw-ta{width:100%;min-height:4.5rem;max-height:12.5rem;resize:none;border:1px solid var(--border);border-radius:0.625rem;padding:0.625rem 0.875rem;font-size:0.8438rem;font-family:inherit;line-height:1.6;color:var(--text);background:var(--bg-card);outline:none;box-sizing:border-box;transition:border-color .15s}
.dy-qw-ta:focus{border-color:var(--accent)}
.dy-qw-foot{display:flex;align-items:center;gap:0.5rem;margin-top:0.625rem;flex-wrap:wrap}
.dy-qw-date{padding:0.3125rem 0.625rem;border:1px solid var(--border);border-radius:62.4375rem;font-size:0.75rem;font-family:inherit;background:transparent;color:var(--text);outline:none}
.dy-qw-tags-row{display:flex;align-items:center;gap:0.375rem;flex:1;flex-wrap:wrap;min-width:0}
.dy-qw-alsolabel{font-size:0.6875rem;color:var(--text-faint);white-space:nowrap;letter-spacing:.3px}
.dy-qw-tag{padding:0.1875rem 0.625rem;border-radius:62.4375rem;font-size:0.75rem;font-family:inherit;background:rgba(204,120,92,.08);color:var(--text-dim)}
.dy-qw-tag-primary{background:rgba(204,120,92,.13);color:var(--accent);font-weight:600}
.dy-qw-morebtn{background:transparent;border:1px dashed var(--border-strong);color:var(--text-faint);font-size:0.7188rem;font-family:inherit;padding:0.1875rem 0.625rem;border-radius:62.4375rem;cursor:pointer;transition:.15s;white-space:nowrap}
.dy-qw-morebtn:hover{border-color:var(--accent);color:var(--accent)}
.dy-qw-submit{font-size:0.75rem;padding:0.375rem 1.125rem}
/* 标签选择器 */
.dy-qw-picker{flex-wrap:wrap;gap:0.375rem;padding:0.625rem 0 0.25rem;max-height:10rem;overflow-y:auto}
.dy-picker-chip{padding:0.25rem 0.6875rem;border-radius:62.4375rem;border:1px solid var(--border);background:transparent;font-size:0.75rem;font-family:inherit;color:var(--text-dim);cursor:pointer;transition:.15s}
.dy-picker-chip:hover{border-color:var(--accent);color:var(--accent)}
.dy-picker-chip.active{border-color:var(--accent);background:rgba(204,120,92,.10);color:var(--accent);font-weight:600}
/* 事件卡片（替代旧表格） */
.dy-ev-list{padding:0.375rem 0}
.dy-ev-card{padding:0.75rem 1.25rem 0.75rem 1.25rem;border-bottom:1px solid var(--border);position:relative}
.dy-ev-card:last-child{border-bottom:none}
.dy-ev-card-meta{display:flex;align-items:center;gap:0.5rem;margin-bottom:0.375rem}
.dy-ev-card-date{font-size:0.6875rem;font-variant-numeric:tabular-nums;color:var(--text-faint);letter-spacing:.3px}
.dy-ev-card-xtags{font-size:0.6875rem;color:var(--text-faint);font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',serif;font-variant-emoji:text}
.dy-ev-card .dy-event-del{margin-left:auto;background:none;border:0;color:var(--text-faint);font-size:0.8125rem;cursor:pointer;padding:2px 0.375rem;opacity:0;transition:opacity .15s}
.dy-ev-card:hover .dy-event-del{opacity:1}
.dy-ev-card-text{font-size:0.8125rem;line-height:1.7;color:var(--text);white-space:pre-wrap;outline:none;border-radius:0.25rem;min-height:1.25rem}
.dy-ev-card-text:focus{background:rgba(204,120,92,.04);padding:2px 0.375rem;margin:-2px -0.375rem}
/* 日记 */
.diary-pane-journal{flex-direction:column;padding:1.5rem 1.75rem}
.dy-jr-head{display:flex;align-items:flex-start;gap:1.25rem;margin-bottom:1.125rem;padding-bottom:1.125rem;border-bottom:1px solid var(--border)}
.dy-jr-date{display:flex;align-items:center;gap:0.5rem}
.dy-jr-date input{padding:0.375rem 0.625rem;border:1px solid var(--border);border-radius:0.375rem;font-size:0.75rem;font-family:inherit;background:transparent;color:var(--text)}
.dy-jr-transits{flex:1;font-size:0.75rem;color:var(--text-dim);line-height:1.8;font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',-apple-system,sans-serif;min-height:3.75rem}
.dy-view-btn{background:transparent;border:1px solid var(--border);color:var(--text-dim);font-family:inherit;font-size:0.7188rem;letter-spacing:.4px;padding:0.3125rem 0.75rem;border-radius:62.4375rem;cursor:pointer;transition:.15s;margin-left:0.25rem}
.dy-view-btn:hover{color:var(--accent);border-color:var(--accent)}
.dy-view-btn.active{background:rgba(204,120,92,.10);color:var(--accent);border-color:var(--accent)}
/* 行运 badges 与日历格 */
.tx-day-detail{display:flex;flex-direction:column;gap:0.625rem}
.tx-grid{display:flex;flex-direction:column;gap:0.375rem;width:100%}
.tx-row{display:grid;grid-template-columns:repeat(7,1fr);gap:0.375rem}
.tx-row-head{margin-bottom:2px}
.tx-head{font-size:0.625rem;color:var(--text-faint);letter-spacing:1.2px;text-align:center;padding:0.25rem 0;font-weight:600}
.tx-day{padding:0.375rem 0.3125rem;border:1px solid var(--border);border-radius:0.5rem;min-height:5rem;display:flex;flex-direction:column;gap:0.1875rem;background:rgba(255,255,255,.4)}
.tx-day-num{font-size:0.6875rem;color:var(--text-dim);font-variant-numeric:tabular-nums;font-weight:600;letter-spacing:.3px;margin-bottom:2px}
.tx-day-num.dim{color:var(--text-faint);opacity:.5}
.tx-week .tx-day{min-height:7.5rem}
.tx-month .tx-day{min-height:5rem}
.tx-badge{display:inline-flex;align-items:center;gap:0.1875rem;padding:2px 0.4375rem;border-radius:62.4375rem;font-size:0.6562rem;font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',sans-serif;line-height:1.4;white-space:nowrap}
.tx-badge .tx-pl{font-size:0.6875rem;font-weight:600}
.tx-badge .tx-asp{font-size:0.625rem;font-weight:500;opacity:.85}
.tx-badge.tri{background:rgba(96,127,112,.18);color:#4f7f6b}
.tx-badge.sext{background:rgba(107,123,142,.18);color:#5a7fb5}
.tx-badge.sqr,.tx-badge.opp{background:rgba(196,69,54,.16);color:#9c4842}
.tx-badge.conj{background:rgba(134,113,90,.18);color:#86715a}
.tx-badge.phase{background:rgba(220,200,100,.30);color:#7a6b30;padding:1px 0.5rem}
.tx-badge.phase.phase-new{background:rgba(58,55,51,.20);color:#3a3733}
.tx-badge.phase.phase-full{background:rgba(220,200,100,.42);color:#7a6b30}
.tx-badge.ingress{background:rgba(204,180,160,.22);color:#7a6b5a}
/* 年视图 */
.tx-yr{display:flex;flex-direction:column;gap:0.625rem}
.tx-yr-row{display:grid;grid-template-columns:3.75rem 1fr;gap:0.875rem;align-items:flex-start;padding:0.625rem 0;border-bottom:1px solid var(--border)}
.tx-yr-mo{font-family:var(--serif);font-size:1.125rem;font-weight:600;color:var(--text);letter-spacing:1px}
.tx-yr-list{display:flex;flex-wrap:wrap;gap:0.375rem}
.tx-yr-pill{font-size:0.6562rem;color:var(--text-dim);display:inline-flex;align-items:center;gap:0.3125rem;padding:2px 0.5rem;border-radius:62.4375rem;background:transparent;border:1px solid var(--border);font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',sans-serif}
.tx-yr-pill.tri{border-color:rgba(96,127,112,.4);color:#4f7f6b}
.tx-yr-pill.sext{border-color:rgba(107,123,142,.4);color:#5a7fb5}
.tx-yr-pill.sqr,.tx-yr-pill.opp{border-color:rgba(196,69,54,.4);color:#9c4842}
.tx-yr-pill.conj{border-color:rgba(134,113,90,.4);color:#86715a}
.tx-yr-pill.phase{border-color:rgba(220,200,100,.5);color:#7a6b30}
.tx-yr-pill.ingress{border-color:rgba(204,180,160,.5);color:#7a6b5a}
.tx-yr-empty{color:var(--text-faint);font-size:0.6875rem}
.dy-jr-edit .dy-jr-theme{width:100%;padding:0.625rem 1rem;border:1px solid var(--accent);border-radius:0.625rem;font-family:inherit;font-size:0.9375rem;font-weight:600;color:var(--accent);background:rgba(204,120,92,.04);outline:none;letter-spacing:.5px;margin-bottom:0.5rem;display:block}
.dy-jr-edit .dy-jr-theme::placeholder{color:rgba(204,120,92,.45);font-weight:400}
.dy-jr-edit .dy-jr-theme:focus{background:rgba(204,120,92,.08)}
.dy-jr-edit .dy-jr-text{width:100%;padding:0.875rem 1rem;border:1px solid var(--border);border-radius:0.625rem;font-family:inherit;font-size:0.8438rem;line-height:1.7;resize:vertical;background:transparent;color:var(--text);outline:none;transition:border-color .15s;display:block;margin-bottom:0.375rem}
.dy-jr-edit .dy-jr-text:focus{border-color:var(--accent)}
.dy-jr-edit .dy-jr-text-secondary{font-size:0.7812rem;color:var(--text-dim);margin-top:0.375rem}
.dy-jr-edit details.dy-jr-extra{margin-top:0.375rem;font-size:0.75rem}
.dy-jr-edit details.dy-jr-extra summary{cursor:pointer;letter-spacing:1px;color:var(--text-faint);padding:0.25rem 0;list-style:none;user-select:none}
.dy-jr-edit details.dy-jr-extra summary::before{content:'+ ';color:var(--accent);font-weight:600}
.dy-jr-edit details.dy-jr-extra[open] summary::before{content:'− '}
.dy-jr-edit details.dy-jr-extra summary:hover{color:var(--accent)}
/* 日记条目 */
.dy-jr-entry-theme{font-family:var(--serif);font-size:0.9375rem;font-weight:600;color:var(--accent);letter-spacing:.5px;padding:0 0.5rem;border-radius:0.25rem}
.dy-jr-entry-extra{margin-top:0.5rem;padding-left:0.75rem;border-left:2px solid var(--border)}
.dy-jr-entry-extra summary{cursor:pointer;font-size:0.6875rem;color:var(--text-faint);letter-spacing:1px;padding:2px 0}
.dy-jr-entry-extra summary:hover{color:var(--accent)}
.dy-jr-entry-sub{font-size:0.7812rem;line-height:1.6;color:var(--text-dim);margin:0.25rem 0}
.dy-jr-entry-sub b{display:inline-block;min-width:2.25rem;color:var(--accent);font-weight:600;font-size:0.625rem;letter-spacing:1px;margin-right:0.5rem;vertical-align:top}
.dy-jr-edit-foot{display:flex;align-items:center;gap:0.625rem;margin-top:0.625rem;flex-wrap:wrap}
.dy-jr-hint{font-size:0.6875rem;color:var(--text-faint);letter-spacing:.4px}
.dy-jr-select{padding:0.375rem 0.625rem;border:1px solid var(--border);border-radius:62.4375rem;font-size:0.75rem;font-family:inherit;background:transparent;color:var(--text);cursor:pointer;min-width:6.875rem}
.dy-jr-select:focus{outline:none;border-color:var(--accent)}
.dy-jr-tags{display:inline-flex;gap:0.3125rem;flex-wrap:wrap;flex:1}
.dy-jr-tag{display:inline-flex;align-items:center;gap:0.25rem;padding:2px 0.5rem 2px 0.375rem;background:rgba(204,120,92,.08);border:1px solid rgba(204,120,92,.20);border-radius:62.4375rem;font-size:0.6875rem;color:var(--accent);cursor:pointer;font-family:inherit}
.dy-jr-tag.off{background:transparent;color:var(--text-faint);border-color:var(--border)}
.dy-jr-tag .dy-jr-tag-sym{font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',serif;font-size:0.8125rem}
.dy-jr-list{margin-top:1.5rem;flex:1;overflow-y:auto;padding-right:0.25rem}
.dy-jr-entry{padding:1rem 0;border-bottom:1px solid var(--border)}
.dy-jr-entry:last-child{border-bottom:none}
.dy-jr-entry-head{display:flex;align-items:baseline;gap:0.625rem;margin-bottom:0.5rem}
.dy-jr-entry-date{font-family:var(--serif);font-size:0.9375rem;font-weight:600;color:var(--text);font-variant-numeric:tabular-nums}
.dy-jr-entry-transits{font-size:0.6875rem;color:var(--text-faint);font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',sans-serif}
.dy-jr-entry-del{margin-left:auto;background:none;border:0;color:var(--text-faint);font-size:0.6875rem;cursor:pointer;padding:2px 0.375rem;border-radius:0.25rem}
.dy-jr-entry-del:hover{color:var(--accent);background:rgba(204,120,92,.06)}
.dy-jr-entry-content{font-size:0.8125rem;line-height:1.75;color:var(--text);white-space:pre-wrap}
.dy-jr-entry-tags{margin-top:0.375rem;display:inline-flex;gap:0.3125rem;flex-wrap:wrap}
.dy-jr-entry-tags .dy-jr-tag{cursor:default}
.notes-history-list{display:flex;flex-direction:column;gap:0.5rem;max-height:60vh;overflow-y:auto}
.notes-history-item{padding:0.625rem 0.875rem;border:1px solid var(--border);border-radius:0.5rem;cursor:pointer;transition:.15s}
.notes-history-item:hover{border-color:var(--accent);background:rgba(204,120,92,.04)}
.notes-history-time{font-size:0.6875rem;color:var(--text-faint);letter-spacing:.4px;margin-bottom:0.375rem;font-variant-numeric:tabular-nums}
.notes-history-snippet{font-size:0.7812rem;color:var(--text-dim);line-height:1.6;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.notes-history-empty{padding:1.875rem;text-align:center;color:var(--text-faint);font-size:0.75rem}
/* 焦点视觉态 */
.chart-planet .planet-halo{transition:stroke .2s ease,fill .2s ease,stroke-width .2s ease}
.chart-planet:hover .planet-halo{stroke:rgba(204,120,92,.28)!important;stroke-width:1!important}
/* 点选行星不再画圈（Steven 2026-08-27）——焦点反馈交给下面那条
   .chart-planet.focused text.planet-sign{opacity:1}，符号周围保持干净。
   ⛔ hover 那圈是悬停反馈，别一起删。 */
.aspect-line{transition:opacity .15s ease,stroke-width .15s ease}
.aspect-line:hover{opacity:1!important;stroke-width:2.4!important}
.chart-house:hover{fill:var(--accent)!important;font-weight:700}
.chart-house.focused{fill:var(--accent)!important;font-weight:900;font-size:0.9375rem!important}
.chart-sign{transition:fill .15s}
.chart-sign:hover{fill:rgba(204,120,92,.10)!important}
.chart-sign.focused{fill:rgba(204,120,92,.18)!important}
/* 时主侧栏：星座释放周期段落 */
.tl-zr-section{padding:0.5rem 0 0.25rem}
.tl-zr-section:not(:last-child){border-bottom:1px dashed var(--border)}
.tl-zr-label{font-size:0.6562rem;font-weight:600;letter-spacing:1.5px;color:var(--text-faint);margin:0.375rem 0 0.375rem}
.tl-zr-row{display:flex;justify-content:space-between;align-items:baseline;gap:0.625rem;padding:0.3125rem 0.5rem;border-radius:0.3125rem;font-size:0.75rem;color:var(--text);transition:background .15s;white-space:nowrap}
.tl-zr-row .tl-zr-date,.tl-zr-row .tl-zr-age{white-space:nowrap;flex:none}
.tl-zr-row .tl-zr-date{flex:1}
.tl-zr-row+.tl-zr-row{margin-top:1px}
.tl-zr-row:hover{background:rgba(204,120,92,.04)}
.tl-zr-row.tl-now{background:rgba(204,120,92,.10);font-weight:600;color:var(--accent)}
.tl-zr-date{font-variant-numeric:tabular-nums;letter-spacing:.4px}
.tl-zr-age{font-size:0.6562rem;color:var(--text-faint);font-variant-numeric:tabular-nums}
.tl-empty-mini{font-size:0.7188rem;color:var(--text-faint);padding:0.25rem 0.5rem;font-style:italic}
.aspect-line.dimmed{opacity:.10!important}
.aspect-line.boosted{stroke-width:2.4!important;opacity:1!important}
/* 时主面板 */
.tl-empty{padding:1.875rem 0.875rem;text-align:center;color:var(--text-faint);font-size:0.75rem;line-height:1.7}
.tl-meta-line{font-size:0.6875rem;color:var(--text-dim);margin-bottom:0.5rem;display:flex;flex-wrap:wrap;gap:0.25rem;align-items:center}
.tl-meta-line .tl-tag{font-size:0.6562rem;padding:1px 0.4375rem;border-radius:62.4375rem;background:rgba(204,120,92,.10);color:var(--accent);font-weight:600}
.tl-table-head{display:grid;grid-template-columns:2.625rem 1fr 3.25rem;gap:0.5rem;padding:0.3125rem 2px;font-size:0.7188rem;color:var(--text);letter-spacing:.5px;font-weight:700;border-bottom:1px solid var(--border-lite,#f0e8df);margin-bottom:0;text-align:left}
.tl-table-head>span:last-child{text-align:center}
.tl-prof-row{display:grid;grid-template-columns:2.625rem 1fr 3.25rem;gap:0.5rem;align-items:center;padding:0.3125rem 2px;font-size:0.7812rem;font-weight:600;cursor:pointer;border-bottom:1px solid var(--border-lite,#f0e8df);transition:background .12s,color .12s}
.tl-prof-row:hover{background:rgba(204,120,92,.06);color:var(--accent)}
.tl-prof-row.tl-now{background:rgba(204,120,92,.10);color:var(--text);font-weight:700}
.tl-prof-row .tl-c-age{font-variant-numeric:tabular-nums;font-weight:700}
.tl-prof-row .tl-c-year{font-variant-numeric:tabular-nums;color:var(--text);font-weight:700}
.tl-prof-row .tl-c-house{text-align:center;font-size:0.75rem;font-weight:700;font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',serif}
.tl-prof-row .tl-c-house .pf-house{display:inline-block;width:1.25rem;height:1.25rem;line-height:1.25rem;border-radius:50%;background:rgba(204,120,92,.10);color:var(--accent);font-size:0.6875rem;font-weight:700;font-family:Arial}
.tl-prof-row:last-child{border-bottom:0}
.tl-card{background:transparent;border:0;padding:0;margin-bottom:0}
.tl-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:0.5rem;gap:0.375rem}
.tl-card-head .tl-title{font-size:0.7812rem;font-weight:700;letter-spacing:1px;color:var(--text)}
.tl-card-head .tl-sub{font-size:0.6562rem;color:var(--text-faint)}
.tl-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:0.5rem;padding:0.3125rem 0;font-size:0.75rem;line-height:1.5;color:var(--text-dim)}
.tl-row.tl-now{color:var(--text);font-weight:600;background:rgba(204,120,92,.06);margin:2px -0.375rem;padding:0.3125rem 0.375rem;border-radius:0.3125rem}
.tl-row.tl-now::before{content:"●";color:var(--accent);font-size:0.5rem;margin-right:0.25rem}
.tl-row .tl-when{font-variant-numeric:tabular-nums;color:var(--text-faint);font-size:0.6875rem}
.tl-row .tl-tag{font-size:0.625rem;padding:1px 0.3125rem;border-radius:0.1875rem;background:var(--bg-subtle,#FAF8F4);color:var(--text-dim);letter-spacing:.5px}
.tl-section-head{font-size:0.6875rem;color:var(--text-faint);letter-spacing:1.5px;text-transform:uppercase;margin:0.75rem 0 0.375rem;font-weight:600}
.tl-focus-banner{display:flex;align-items:center;gap:0.5rem;margin-bottom:0.625rem;padding-bottom:0.625rem;border-bottom:1px solid var(--border-lite,#f0e8df)}
.tl-focus-banner .tl-fb-sym{font-size:1.375rem;line-height:1;font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',serif;font-weight:700}
.tl-focus-banner .tl-fb-name{font-size:0.8125rem;font-weight:700;color:var(--text)}
.tl-focus-banner .tl-fb-clear{margin-left:auto;font-size:0.6562rem;color:var(--text-faint);background:none;border:1px solid var(--border);border-radius:62.4375rem;padding:2px 0.5625rem;cursor:pointer;font-family:inherit}
.tl-focus-banner .tl-fb-clear:hover{border-color:var(--accent);color:var(--accent)}
/* 相位表行星行/列高亮 */
.asp-tri td.asp-pl-focus{background:rgba(204,120,92,.08)!important}
.asp-tri td.asp-pl-focus.asp-diag{background:rgba(204,120,92,.18)!important}
.chart-integrated .ci-special{border:none;border-radius:0;padding:0;background:transparent;font-size:0.7812rem;line-height:1.85}
.chart-integrated .ci-special .ci-special-title{font-size:0.6875rem;font-weight:600;color:var(--text-dim);letter-spacing:0.1875rem;text-transform:uppercase;margin-bottom:0.875rem;text-align:left}
.chart-integrated .ci-special-block{margin-bottom:0.875rem}
.chart-integrated .ci-special-label{color:var(--text-faint);font-size:0.6562rem;letter-spacing:1.2px;text-transform:uppercase;margin-bottom:0.375rem}
/* 方盘模式下：左下区只保留格局点；圆盘模式不变 */
.chart-integrated.is-square .ci-montage-tabs{display:none!important}
.chart-integrated.is-square .ci-montage-stage{min-height:0}
.chart-integrated.is-square .ci-montage-stage .ci-aspect{display:none!important}
.chart-integrated.is-square .ci-montage-stage .ci-special{position:relative!important;opacity:1!important;pointer-events:auto!important;inset:auto!important}
.chart-integrated.is-square #ci-states-group{display:none!important}
.chart-integrated.is-square #ci-pattern-group{display:block!important;background:transparent;border:1px solid var(--border);border-radius:0.625rem;padding:1.125rem 1.375rem 0.875rem;text-align:center}
body.embed .chart-integrated.is-square .ci-montage{display:flex;flex-direction:column;justify-content:flex-end;align-self:stretch}
body.embed .chart-integrated.is-square .ci-montage-stage{flex:0 0 auto!important}
body.embed .chart-integrated.is-square .ci-chart{position:relative}
body.embed .chart-integrated.is-square .year-fortune-btn{position:absolute;top:4rem;left:50%;transform:translateX(-50%);z-index:5}
body.embed .chart-integrated.is-square .ci-chart svg{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}
.chart-integrated.is-square #ci-pattern-group .ci-special-title{font-family:var(--serif);font-size:1.0625rem;font-weight:600;color:var(--text);letter-spacing:1.5px;text-transform:none;margin:0 auto 0.875rem;padding-bottom:0.625rem;border-bottom:1px solid var(--border);text-align:center;display:inline-block;min-width:60%}
.chart-integrated.is-square #pattern-content{text-align:left}
.chart-integrated.is-square #pattern-content .pat-row{justify-content:flex-start}
.chart-integrated .ci-subject .subject-name{font-family:var(--serif);font-size:1.375rem;font-weight:500;letter-spacing:0.5px;margin-bottom:0.5rem;display:flex;align-items:baseline;gap:0.375rem}
.subject-name .name-text{flex:1;min-width:0}
.chart-integrated .ci-subject .subject-meta{font-size:0.7812rem;color:var(--text-dim);line-height:1.9;font-family:Arial,sans-serif}
.chart-integrated .ci-subject .subject-meta .label{color:var(--text-faint);display:inline-block;min-width:3.25rem}
@media (max-width:768px){.chart-integrated{grid-template-columns:1fr;grid-template-rows:auto auto auto}.chart-integrated .ci-subject,.chart-integrated .ci-chart,.ci-montage{grid-column:1}.chart-integrated .ci-chart{grid-row:1}.chart-integrated .ci-subject{grid-row:2}.ci-montage{grid-row:3}
/* ⛔ 上面那条 .chart-integrated{grid-template-columns:1fr} 特异性只有一个类，压不过前面
   按屏宽收窄左列的 embed 规则（1366 档 19rem）和 dyn 模式那两条 !important；模板还是两栏，
   而星盘又被挪到第 1 栏 → 星盘掉进为侧栏留的那一格。实测 1101–1200 这条带里
   圆盘塌成 304px、行运 364px、90°盘 220px（1300 宽时分别是 698 / 580 / 680）。
   下面按同样的选择器再写一遍，靠「同 !important 比先后」压住。 */
body.embed:not(.chrome-journal):not(.chrome-lite):not([data-dyn-mode]) .chart-integrated:not(.is-square){grid-template-columns:1fr!important}
body[data-dyn-mode]:not([data-dyn-mode="dial90"]) .chart-integrated{grid-template-columns:1fr!important}
body[data-dyn-mode="dial90"] .chart-integrated{grid-template-columns:1fr!important}
body.focus-active .chart-integrated{grid-template-columns:1fr!important}}
svg#chart-sr,svg#chart-lr,svg#chart-comp,svg#chart-davison{width:100%;max-width:28.75rem;height:auto;display:block}

/* Form sidebar (right) */
.form-sidebar{position:sticky;top:0}
body.embed .form-sidebar{top:0}
.form-card{background:var(--bg-card);border:1px solid var(--border);border-radius:0.75rem;padding:0.875rem 1.375rem 1.375rem;box-shadow:0 1px 2px rgba(0,0,0,.02)}
/* 顶部 segmented：[生成星盘 | 粘贴输入] —— Apple iOS 段控审美 */
.mode-seg{display:grid;grid-template-columns:1fr 1fr;gap:0;background:var(--bg-subtle);border:1px solid var(--border);border-radius:0.5625rem;padding:0.1875rem;margin-bottom:1.125rem}
.mode-btn{background:transparent;border:0;color:var(--text-dim);font-size:0.8125rem;font-family:inherit;font-weight:600;letter-spacing:.04em;padding:0.5625rem 0;border-radius:0.375rem;cursor:pointer;transition:background .15s,color .15s,box-shadow .15s}
.mode-btn:hover{color:var(--text)}
.mode-btn.active{background:var(--accent);color:#fff;box-shadow:0 1px 2px rgba(0,0,0,.08)}
.mode-btn.active:hover{color:#fff}
/* 顶部新建星盘 — 醒目（赤陶字色 + 描边底） */
.form-top{display:flex;justify-content:center;margin-bottom:0.875rem}
.btn-newchart{background:rgba(204,120,92,.06);border:1px dashed var(--accent);color:var(--accent);font-size:0.75rem;font-family:inherit;font-weight:500;letter-spacing:.08em;padding:0.3125rem 1rem;border-radius:62.4375rem;cursor:pointer;transition:background .15s}
.btn-newchart:hover{background:rgba(204,120,92,.14)}
/* 底部按钮对：[确定][保存] — 圆角 pill，紧凑 */
.form-actions{display:grid;grid-template-columns:1fr 1fr;gap:0.625rem;margin-top:0.375rem}
.btn-pair{background:var(--bg-card);border:1px solid var(--border-strong);color:var(--text);padding:0.4375rem 0;border-radius:62.4375rem;font-size:0.7812rem;font-family:inherit;font-weight:500;letter-spacing:.06em;cursor:pointer;transition:background .15s,border-color .15s,color .15s,opacity .15s}
.btn-pair:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}
.btn-pair.primary{background:var(--accent);border-color:var(--accent);color:#fff}
.btn-pair.primary:hover:not(:disabled){background:#B8694F;border-color:#B8694F;color:#fff}
.btn-pair.secondary{background:#fff;border-color:var(--accent);color:var(--accent)}
.btn-pair.secondary:hover:not(:disabled){background:rgba(204,120,92,.08)}
.btn-pair:disabled{opacity:.45;cursor:not-allowed}
/* 一键输入 — 醒目，圆角 pill */
.form-paste-row{display:flex;justify-content:center;margin-top:0.625rem}
.btn-paste{background:rgba(204,120,92,.06);border:1px dashed var(--accent);color:var(--accent);font-size:0.75rem;font-family:inherit;font-weight:500;letter-spacing:.08em;padding:0.3125rem 1rem;border-radius:62.4375rem;cursor:pointer;transition:background .15s}
.btn-paste:hover{background:rgba(204,120,92,.14)}
/* sidebar 内嵌 ADB 查询行 —— 与 [确定/保存] 等宽两列；输入框对齐确定，按钮对齐保存 */
.form-adb-row{display:grid;grid-template-columns:1fr 1fr;gap:0.625rem;margin-top:0.625rem;align-items:center}
.form-adb-row input{width:100%;min-width:0;padding:0.4375rem 0.875rem;border:1px solid var(--border-strong);border-radius:62.4375rem;background:#fff;font-size:0.7812rem;font-family:inherit;color:var(--text);box-sizing:border-box}
.form-adb-row input:focus{outline:none;border-color:var(--accent)}
.form-adb-row button{width:100%;padding:0.4375rem 0;border:1px solid var(--accent);border-radius:62.4375rem;background:#fff;color:var(--accent);font-size:0.7812rem;font-family:inherit;font-weight:500;letter-spacing:.06em;cursor:pointer;transition:background .15s}
.form-adb-row button:hover{background:rgba(204,120,92,.08)}
.form-card .field{display:flex;flex-direction:column;gap:0.3125rem;margin-bottom:0.75rem}
.form-card label{font-size:0.5938rem;letter-spacing:1.6px;color:var(--text-dim);text-transform:uppercase;font-weight:500}
.form-card input,.form-card select{background:var(--bg-card);border:1px solid var(--border-strong);color:var(--text);padding:0.5rem 0.625rem;border-radius:0.375rem;font-size:0.8125rem;font-family:inherit;width:100%;transition:border-color .15s,box-shadow .15s}
.form-card input:focus,.form-card select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 0.1875rem rgba(204,120,92,.15)}
.form-card input[type=number]{-moz-appearance:textfield}
.form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:0.625rem}
/* 经纬度 DMS 并排：deg 给 3 位数留空间（flex 1.4），秒整数化 */
.form-row-2.coord-block .coord-row{padding:0 0.375rem}
.form-row-2.coord-block .coord-row .coord-deg{flex:1.4 1 0;font-size:0.7812rem}
.form-row-2.coord-block .coord-row .coord-min{flex:1 1 0;font-size:0.7812rem}
.form-row-2.coord-block .coord-row .coord-sec{flex:1 1 0;font-size:0.7812rem}
.form-row-2.coord-block .coord-row .coord-unit{margin:0;font-size:0.6875rem}
.form-row-2.coord-block .coord-row .coord-hem{margin:0 0.1875rem;padding:0 0.1875rem}
.name-row{display:flex;align-items:center;gap:0.5rem}
.name-row input{flex:1;min-width:0}
.gender-toggle{display:inline-flex;gap:0.25rem;flex:0 0 auto}
.gen-btn{width:1.75rem;height:1.75rem;border:1px solid var(--border-strong);background:var(--bg-card);color:var(--text-faint);font-size:0.9375rem;font-family:'Noto Sans Symbols',serif;cursor:pointer;border-radius:0.375rem;transition:.15s;padding:0;line-height:1;display:inline-flex;align-items:center;justify-content:center}
.gen-btn:hover{color:var(--text);border-color:var(--text-dim)}
.gen-btn.active[data-g="M"]{color:var(--air);border-color:var(--air);background:rgba(90,127,181,.08)}
.gen-btn.active[data-g="F"]{color:var(--fire);border-color:var(--fire);background:rgba(196,69,54,.06)}
/* Subject card 姓名前的性别徽标 */
.name-gender{font-family:'Noto Sans Symbols',serif;margin-right:0.375rem;font-size:.9em;vertical-align:baseline}
.name-gender.M{color:var(--air)}
.name-gender.F{color:var(--fire)}
.form-dst{display:flex;align-items:center;gap:0.5rem;font-size:0.75rem;color:var(--text);padding:0.375rem 0.625rem;border:1px solid var(--border-strong);border-radius:0.375rem;cursor:pointer;background:var(--bg-card)}
/* 表单分节小标签 —— 让"时间 / 地点 / 时区"在视觉上分组 */
.form-section-label{font-size:0.6562rem;font-weight:600;letter-spacing:0.1562rem;color:var(--text-faint);text-transform:uppercase;margin:0.875rem 0 0.375rem;display:flex;align-items:center;gap:0.5rem}
.form-section-label::after{content:'';flex:1;height:1px;background:var(--border)}
.form-section-label:first-child{margin-top:0.375rem}
.form-card .field label .lbl-hint{font-size:0.625rem;font-weight:400;color:var(--text-faint);letter-spacing:.5px;margin-left:0.375rem}
/* 时区 + 夏令时 同一行：select 主，DST 作为附属 pill */
.tz-row{display:flex;align-items:stretch;gap:0.5rem}
.tz-row #f-tz{flex:1;min-width:0}
.dst-pill{display:inline-flex;align-items:center;gap:0.375rem;padding:0.375rem 0.75rem;border:1px solid var(--border-strong);border-radius:0.5rem;cursor:pointer;background:var(--bg-card);font-size:0.75rem;color:var(--text-dim);transition:border-color .15s,color .15s,background .15s;white-space:nowrap}
.dst-pill input{margin:0;cursor:pointer}
.dst-pill:has(input:checked){background:rgba(204,120,92,.08);border-color:var(--accent);color:var(--accent);font-weight:500}
.dst-pill .dst-pill-text{letter-spacing:.04em}
.form-dst input{width:0.875rem;height:0.875rem;margin:0}
.btn-full{width:100%;background:var(--accent);color:#fff;border:none;padding:0.6875rem;border-radius:0.4375rem;font-size:0.8125rem;letter-spacing:1px;font-family:inherit;cursor:pointer;font-weight:500;margin-top:0.25rem;transition:background .15s}
.btn-full:hover{background:var(--accent-dark)}
.form-div{border:none;border-top:1px dashed var(--border-strong);margin:1rem 0}
details summary{cursor:pointer;font-size:0.6875rem;letter-spacing:1.5px;color:var(--text-dim);text-transform:uppercase;font-weight:500;padding:0.25rem 0;list-style:none}
details summary::-webkit-details-marker{display:none}
details summary::before{content:'▸ ';color:var(--accent)}
details[open] summary::before{content:'▾ '}
details .det-inner{padding-top:0.625rem}

/* City autocomplete */
.city-wrap{position:relative}
.city-list{position:absolute;top:calc(100% + 0.25rem);left:0;right:0;background:var(--bg-card);border:1px solid var(--accent);border-radius:0.375rem;max-height:15rem;overflow-y:auto;z-index:100;display:none;box-shadow:0 0.375rem 1.25rem rgba(0,0,0,.08)}
.city-list.show{display:block}
.city-item{padding:0.5rem 0.625rem;cursor:pointer;font-size:0.75rem;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;gap:0.375rem}
.city-item:last-child{border-bottom:none}
.city-item:hover{background:var(--bg-subtle)}
.city-tz{color:var(--text-dim);font-size:0.625rem;font-family:Arial,sans-serif;white-space:nowrap}

/* Tabs */
.tabs{display:flex;gap:2px;margin-bottom:0.5rem;border-bottom:1px solid var(--border);flex-wrap:wrap;padding:0 2px;margin-top:0.5rem}
.tab-btn{background:none;border:none;padding:0.875rem 1.25rem;font-size:1.125rem;letter-spacing:1.5px;color:var(--text-dim);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s;font-family:inherit;white-space:nowrap;font-weight:800}
.tabs.subtabs{margin-top:0;padding:0 0.875rem;border-bottom:1px solid var(--border)}
.tabs.subtabs .tab-btn{font-size:0.8125rem;padding:0.5rem 0.875rem;font-weight:500;letter-spacing:.4px;color:var(--text-faint)}
.tabs.subtabs .tab-btn.active{font-weight:600}
/* 数据表子段：一次只显示一段；标题已删，内容直接撑开 */
.dt-section{display:none}
.dt-section.active{display:block}
#tab-tables .card{padding:1.75rem 2rem}
/* 数据表内字号整体放大 */
#tab-tables table,#tab-tables th,#tab-tables td,
#tab-tables .sch-table th,#tab-tables .sch-table td,
#tab-tables #lots-table,#tab-tables #lots-table th,#tab-tables #lots-table td,
#tab-tables .em-mode-box,#tab-tables .bar-label,#tab-tables .bar-count{font-size:0.9375rem;line-height:1.75}
#tab-tables #lots-table thead th{font-size:1.375rem!important;font-weight:700!important;letter-spacing:.5px;color:var(--text);padding:0.875rem 0.5625rem!important}
#tab-tables th,#tab-tables td{padding:0.6875rem 0.5625rem}
/* 行星黄道状态 — 全表紧凑，整体收窄到 wide 以下，避免左侧星盘被挤 */
#sch-table{table-layout:auto}
#sch-table th{font-size:0.75rem!important;font-weight:600!important;color:var(--text-dim)!important;letter-spacing:.5px!important;padding:0.5rem 0.1875rem!important;text-transform:none!important;white-space:nowrap!important}
#sch-table td{font-size:0.6875rem!important;line-height:1.4!important;padding:0.375rem 0.1875rem!important;white-space:nowrap!important}
#sch-table td.sch-pl{padding:0.375rem 0.1875rem!important;text-align:center!important}
#sch-table .glyph,#sch-table .glyph-lg,#sch-table .sym-pl,#sch-table .sym-sign{font-size:1.0625rem!important}
#sch-table th:nth-child(n+4):nth-child(-n+11),#sch-table td:nth-child(n+4):nth-child(-n+11){padding-left:2px!important;padding-right:2px!important}
/* 右侧中文列（时段/日下/顺逆/出没/almuten）也紧凑 — 不再多给 padding */
#sch-table th:nth-child(n+12),#sch-table td:nth-child(n+12){padding-left:0.3125rem!important;padding-right:0.3125rem!important}
/* 出没列里的偕日升/落 副标 */
#sch-table td:nth-child(15){line-height:1.35!important}
#tab-tables .em-mode-grid{margin-top:0;gap:1.75rem 2.25rem}
/* 行星符号一律大号 —— 黄道状态表 + lots 表 + 恒星表 */
#tab-tables .sch-table .glyph,
#tab-tables .sch-table .glyph-lg,
#tab-tables .sch-table .sym-pl,
#tab-tables #lots-table .sym-pl,
#tab-tables .sym-pl{font-size:1.25rem!important;vertical-align:-2px;line-height:1}
#tab-tables .sym-sign{font-size:1.125rem!important;vertical-align:-1px}
.tab-content{padding-top:0.375rem}
/* 旧底部 tab 区域统一收编进右侧浮卡 —— DOM 保留以承载 tab-content，UI 完全隐藏 */
#pro-tabs,.tabs.subtabs{display:none!important}
/* tab-content 仅在 drawer 内可见，原位置永远隐藏（即使带 .active） */
body .tab-content{display:none!important}
body .data-drawer-body .tab-content{display:block!important}

/* ────────── 恒星：Apple 风简洁排版 ────────── */
#tab-tables .stars-card{padding:2.25rem 2.5rem 2.5rem;background:#fff}
/* 轴点（AC/MC/DC/IC）：与行星符号视觉等宽 */
.sym-ax{font-family:var(--serif);font-size:0.875rem;font-weight:500;letter-spacing:.3px;line-height:1;display:inline-block;color:var(--text)}
/* 统一标题样式 */
.stars-h{font-size:1rem;letter-spacing:1px;color:var(--text);font-weight:800;margin-bottom:0.875rem}
.stars-h .stars-h-sub{display:block;margin-top:0.25rem;font-size:0.7188rem;letter-spacing:.5px;color:var(--text-faint);font-weight:400}
.stars-h.stars-h-center{text-align:center;font-size:1.125rem;letter-spacing:1.5px;margin-bottom:1.125rem}
.stars-h.stars-h-center .stars-h-sub{font-size:0.75rem;letter-spacing:.8px;margin-top:0.3125rem}
.stars-section-gap{height:1.75rem}
/* hero — 偕日升 / 偕日落 */
.stars-hero{margin-bottom:1.75rem;padding-bottom:1.375rem;border-bottom:1px solid var(--border-lite,#f0e8df)}
.stars-hero .hero-row{display:grid;grid-template-columns:1fr 1fr;gap:2rem}
.stars-hero .hero-cell .hero-label{font-size:0.75rem;letter-spacing:.5px;color:var(--text-faint);margin-bottom:0.5rem;font-weight:600}
.stars-hero .hero-cell .hero-value{font-size:1rem;color:var(--text);font-weight:700;line-height:1.4}
.stars-hero .hero-cell .hero-value .star-en{font-size:0.7188rem;color:var(--text-dim);font-weight:400;margin-left:0.375rem;letter-spacing:.3px}
.stars-hero .hero-cell .hero-sub{font-size:0.7188rem;color:var(--text-faint);margin-top:0.1875rem;font-weight:400}
/* 恒星合相 —— 2 列流式，不截断 */
.stars-conj-wrap{margin-bottom:1.625rem}
#fixedstar-conj{column-count:2;column-gap:2.25rem}
#fixedstar-conj .s-line{display:grid;grid-template-columns:1.5rem 1.375rem 1fr;align-items:baseline;gap:0.3125rem;padding:0.3125rem 0;font-size:0.8125rem;line-height:1.45;break-inside:avoid}
#fixedstar-conj .s-line .sym-pl{font-size:1.125rem!important;text-align:center;line-height:1}
#fixedstar-conj .s-line .sym-ax{font-size:0.8125rem!important;text-align:center;line-height:1}
#fixedstar-conj .s-line .star-zh{color:var(--text);font-weight:600;margin-right:0.25rem}
#fixedstar-conj .s-line .star-en{color:var(--text-dim);font-size:0.6875rem;font-weight:400;letter-spacing:.2px}
#fixedstar-conj .s-line .sl-meta{color:var(--text-faint);font-size:0.6875rem;margin-left:0.25rem}
@media (max-width:760px){#fixedstar-conj{column-count:1}}
/* Brady-style Parans flat list */
.stars-method{font-size:0.7188rem;color:var(--text-faint);line-height:1.7;margin:0 0 1.125rem;padding:0.625rem 0.875rem;background:var(--bg-subtle,#FAF8F4);border-radius:0.5rem}
.stars-method b{color:var(--text-dim);font-weight:600}
.stars-axis-block{margin:0 0 1.5rem}
.stars-axis-list{display:flex;flex-wrap:wrap;gap:0.375rem 1.125rem;font-size:0.7812rem;line-height:1.7}
.stars-axis-list .ax-pill{cursor:pointer;color:var(--text);transition:color .15s}
.stars-axis-list .ax-pill .star-zh{color:var(--text);font-weight:600;text-decoration:underline;text-decoration-color:var(--border);text-underline-offset:0.1875rem;transition:text-decoration-color .15s,color .15s}
.stars-axis-list .ax-pill:hover .star-zh{color:var(--accent);text-decoration-color:var(--accent)}
.stars-axis-list .ax-pill .star-en{color:var(--text-dim);font-size:0.6875rem;font-weight:400;margin-left:0.1875rem}
.stars-axis-list .ax-pill .ax-meta{color:var(--text-faint);font-size:0.6562rem;margin-left:0.1875rem}
.stars-axis-list .empty{color:var(--text-faint);font-size:0.75rem;font-style:italic}

.stars-parans-flat .paran-sec{margin-bottom:1.375rem}
.stars-parans-flat .paran-sec .paran-head{font-size:0.875rem;letter-spacing:.4px;color:var(--text);margin-bottom:0.625rem;font-weight:700;padding-bottom:0.375rem;border-bottom:1px solid var(--border-lite,#f0e8df)}
.stars-parans-flat .paran-sec .paran-head .paran-en{color:var(--text-faint);font-weight:400;font-size:0.7188rem;letter-spacing:.3px;margin-left:0.5rem}
.stars-parans-flat .paran-sec .paran-head .paran-zh{color:var(--text-dim);font-size:0.7188rem;font-weight:500;margin-left:0.375rem}
.stars-parans-flat .p-row{display:grid;grid-template-columns:1.375rem 2.375rem 1fr;align-items:baseline;gap:0.5rem;padding:0.3125rem 0;font-size:0.7812rem;line-height:1.75}
.stars-parans-flat .p-row .sym-pl{font-size:1.0625rem!important;text-align:center;line-height:1}
.stars-parans-flat .p-row .sym-ax{font-size:0.8125rem!important;text-align:center;line-height:1}
.stars-parans-flat .p-row .p-name{color:var(--text-dim);font-size:0.7188rem;font-weight:500}
.stars-parans-flat .p-row .star-chip{cursor:pointer;display:inline}
.stars-parans-flat .p-row .star-chip .star-zh{color:var(--text);font-weight:600;text-decoration:underline;text-decoration-color:var(--border);text-underline-offset:2px;transition:color .15s,text-decoration-color .15s}
.stars-parans-flat .p-row .star-chip:hover .star-zh{color:var(--accent);text-decoration-color:var(--accent)}
.stars-parans-flat .p-row .star-chip .star-en{color:var(--text-dim);font-size:0.6875rem;font-weight:400;margin-left:0.1875rem}
.stars-parans-flat .p-row .star-chip .sl-meta{color:var(--text-faint);font-size:0.6562rem;margin-left:0.1875rem}
.stars-parans-flat .p-row .star-sep{color:var(--text-faint);margin:0 0.25rem}
.stars-parans-flat .empty{color:var(--text-faint);font-size:0.7188rem;font-style:italic;padding:2px 0 0 3.75rem}
@media (max-width:1100px){.stars-hero .hero-row{grid-template-columns:1fr;gap:0.875rem}}
@media (max-width:760px){.stars-parans-flat .p-row{grid-template-columns:1.375rem 1fr;row-gap:0}.stars-parans-flat .p-row .p-name{display:none}}

/* 恒星详情 modal */
.star-modal-mask{position:fixed;inset:0;background:rgba(20,18,16,.4);z-index:120;display:none;backdrop-filter:blur(0.1875rem)}
.star-modal-mask.show{display:flex;align-items:center;justify-content:center;animation:fadeIn .18s ease}
.star-modal{background:#fff;border-radius:0.875rem;max-width:32.5rem;width:92vw;max-height:88vh;overflow-y:auto;padding:1.875rem 2rem;box-shadow:0 0.75rem 3rem rgba(0,0,0,.18);position:relative}
.star-modal .sm-close{position:absolute;top:0.75rem;right:0.875rem;width:1.875rem;height:1.875rem;border:1px solid var(--border);border-radius:50%;background:#fff;cursor:pointer;color:var(--text-dim);font-size:1.125rem;line-height:1;display:flex;align-items:center;justify-content:center}
.star-modal .sm-close:hover{color:var(--accent);border-color:var(--accent)}
.star-modal .sm-name{font-size:1.375rem;font-weight:700;color:var(--text);margin-bottom:0.375rem}
.star-modal .sm-name .sm-name-en{font-size:0.8125rem;color:var(--text-dim);font-weight:400;margin-left:0.5rem;letter-spacing:.3px}
.star-modal .sm-pos{font-size:0.8125rem;color:var(--text-dim);margin-bottom:1.125rem;padding-bottom:0.875rem;border-bottom:1px solid var(--border-lite,#f0e8df)}
.star-modal .sm-pos .sym-sign{font-size:1rem;margin-right:0.25rem}
.star-modal .sm-pos .sm-coord{color:var(--text-faint);font-size:0.7188rem;margin-left:0.625rem;letter-spacing:.3px}
.star-modal .sm-section{margin-bottom:0.875rem}
.star-modal .sm-section h4{font-size:0.6875rem;letter-spacing:1.5px;color:var(--text-faint);margin:0 0 0.5rem;font-weight:600;text-transform:uppercase}
.star-modal .sm-section .sm-line{font-size:0.8125rem;color:var(--text);line-height:1.7;padding:0.1875rem 0;display:flex;align-items:baseline;gap:0.375rem}
.star-modal .sm-section .sm-line .sym-pl,.star-modal .sm-section .sm-line .sym-ax{font-size:1rem;line-height:1}
.star-modal .sm-section .sm-meta{color:var(--text-faint);font-size:0.6875rem;margin-left:auto}
.star-modal .sm-empty{color:var(--text-faint);font-size:0.75rem;font-style:italic}
.star-modal .sm-brady{margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--border)}
.star-modal .sm-brady-block{margin-bottom:1.125rem}
.star-modal .sm-brady-block:last-child{margin-bottom:0}
.star-modal .sm-brady-block h5{font-size:0.75rem;letter-spacing:0.5px;color:var(--text-dim);margin:0 0 0.4375rem;font-weight:600}
.star-modal .sm-brady-body{font-size:0.8125rem;line-height:1.75;color:var(--text)}
.star-modal .sm-brady-body p{margin:0 0 0.625rem}
.star-modal .sm-brady-body p:last-child{margin-bottom:0}
.tab-btn:hover{color:var(--text)}
.tab-btn.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:700}
.tab-content{display:none}
.tab-content.active{display:block}

/* Tables */
table{width:100%;border-collapse:collapse;font-size:0.7812rem}
th{text-align:left;padding:0.375rem 0.5rem;color:var(--text-dim);font-weight:500;font-size:0.5938rem;letter-spacing:1.5px;text-transform:uppercase;border-bottom:1px solid var(--border)}
td{padding:0.4375rem 0.5rem;border-bottom:1px solid var(--border);color:var(--text)}
table:not(.asp-tri) tr:last-child td{border-bottom:none}
tr:hover td{background:var(--bg-subtle)}
.retro{color:var(--accent);font-size:0.5625rem;vertical-align:super;margin-left:1px}

/* Element colors */
.fire{color:var(--fire)}
.earth{color:var(--earth)}
.air{color:var(--air)}
.water{color:var(--water)}

/* Aspect triangle (Solar Fire style) */
.asp-tri{border-collapse:separate;border-spacing:0;font-size:0.6875rem;margin:0 auto}
.asp-tri td{width:2.75rem;height:2.75rem;min-width:2.75rem;text-align:center;padding:1px;border:0;border-bottom:1px solid rgba(0,0,0,.04);border-right:1px solid rgba(0,0,0,.04);vertical-align:middle;line-height:1.15;font-family:Arial,sans-serif;background:transparent}
.asp-tri td.asp-diag{background:rgba(204,120,92,.07);border-color:rgba(0,0,0,.06)}
/* 左侧行星行标签：无边框、无底色，仿 image 211 */
.asp-tri th.asp-rowlbl{background:transparent!important;border:0!important;width:auto;padding:0 0.5rem 0 2px;text-align:center;vertical-align:middle}
.chart-integrated .ci-aspect .asp-tri th.asp-rowlbl{padding:0 0.375rem 0 0;background:transparent!important;border:0!important}
.asp-tri td.asp-empty{background:transparent;border-color:rgba(0,0,0,.025)}
.asp-tri .asp-sym-lg{font-size:1.25rem;font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',serif}
.asp-tri .asp-sym-lg:not([class*="pcol-"]){color:var(--text)}
.asp-tri .asp-sym-red{color:#E11D1D;font-size:1.0625rem;font-weight:900;display:block}
.asp-tri .asp-sym-green{color:var(--water);font-size:1.0625rem;font-weight:900;display:block}
.asp-tri .asp-sym-blue{color:var(--air);font-size:1.0625rem;font-weight:900;display:block}
.asp-tri .asp-sym-brown{color:var(--earth);font-size:1.0625rem;font-weight:900;display:block}
.asp-tri .asp-sym-gray{color:#666;font-size:1rem;font-weight:900;display:block}
.asp-tri .asp-orb{font-size:0.5625rem;color:var(--text-dim);display:block;margin-top:-2px}

/* Feature sections */
.feat-item{padding:0.6875rem 0.875rem;background:var(--bg-subtle);border-radius:0.5rem;margin-bottom:0.625rem;font-size:0.8125rem;line-height:1.8}
/* 配置法面板 —— Janus 双星体结构 + 乔布斯极简：克制留白、行密度、统一字体阶梯 */
.dist-title{font-size:1.5rem;font-weight:800;text-align:center;color:var(--text);letter-spacing:.08em;margin:0.25rem 0 0.25rem;font-family:'Songti SC','SimSun','Noto Serif SC',serif}
.dist-subtitle{text-align:center;font-size:0.75rem;color:var(--text-faint);letter-spacing:.05em;margin-bottom:1.125rem}
.dist-controls{display:grid;grid-template-columns:repeat(5,1fr);gap:0;background:transparent;border:1px solid var(--border);border-radius:0.625rem;padding:0;margin-bottom:0.875rem;overflow:hidden}
.dist-controls .dist-field{display:flex;flex-direction:column;gap:0;min-width:0;padding:0.6875rem 0.875rem;border-right:1px solid var(--border);background:var(--bg-card)}
.dist-controls .dist-field:last-child{border-right:0}
.dist-controls label{font-size:0.75rem;letter-spacing:.04em;color:var(--text-dim);font-weight:600;margin-bottom:0.3125rem}
.dist-controls select,.dist-controls input{background:transparent;border:0;padding:2px 0;font-size:0.8438rem;font-family:inherit;font-weight:500;color:var(--text);transition:color .15s;width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}
.dist-controls select:focus,.dist-controls input:focus{outline:none;color:var(--accent)}
.dist-controls select:hover{color:var(--accent)}
@media (max-width:720px){.dist-controls{grid-template-columns:repeat(2,1fr)}.dist-controls .dist-field{border-bottom:1px solid var(--border)}}
/* info 单行紧凑：键 值 · 键 值 · 键 值 ——— 不再撑满宽度撕裂三块 */
/* Distributions info bar — 单行 muted，仅当前位置加粗一档作为视觉焦点 */
.dist-info{padding:0.625rem 0 0.875rem;margin:0 0 0.25rem;font-size:0.75rem;line-height:1.7;color:var(--text-dim);text-align:left;font-family:Arial,sans-serif}
.dist-info .di-block{display:inline-flex;align-items:baseline;gap:0.375rem}
.dist-info .di-key{font-size:0.6562rem;letter-spacing:.18em;color:var(--text-faint);text-transform:uppercase;font-weight:500}
.dist-info .di-val{color:var(--text-dim);font-weight:400}
.dist-info .di-sep{margin:0 0.875rem;color:var(--text-faint);font-weight:300}
.dist-info strong{color:var(--text);font-weight:600}
/* 全站 sym-sign / sym-pl 强制文本字形 —— 保证任何上下文里的星座/行星字符都不被 fallback 成彩色 emoji */
.sym-sign,.sym-pl{font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',serif;font-variant-emoji:text;font-feature-settings:"ss01";text-rendering:optimizeLegibility}
.dist-info .sym-sign,.dist-info .sym-pl{font-variant-emoji:text;font-weight:600;font-size:0.875rem;margin-right:2px;vertical-align:-1px;color:var(--text)}
.dist-table{width:100%;border-collapse:separate;border-spacing:0;font-size:0.8125rem;font-variant-numeric:tabular-nums;margin-top:2px}
.dist-table thead th{padding:0.625rem 0.875rem;text-align:left;color:var(--text-dim);font-size:0.75rem;letter-spacing:.02em;font-weight:600;border-bottom:1px solid var(--border-strong);position:sticky;top:0;background:var(--bg-card);z-index:1}
.dist-table tbody td{padding:0.5625rem 0.875rem;border-bottom:1px solid #EFEAE2;vertical-align:baseline;line-height:1.5}
.dist-table tbody tr:hover td{background:rgba(0,0,0,.018)}
.dist-table tr.dist-cur td{background:rgba(204,120,92,.08);font-weight:600}
.dist-table tr.dist-cur td:first-child{box-shadow:inset 0.1875rem 0 0 var(--accent)}
.dist-table tr.dist-cur:hover td{background:rgba(204,120,92,.12)}
.dist-table .dist-sub td{color:var(--text-faint);font-size:0.7812rem;padding-top:0.25rem;padding-bottom:0.25rem;border-bottom:1px dashed #EFEAE2;background:rgba(0,0,0,.012)}
.dist-table .dist-sub td:first-child{padding-left:1.875rem}
.dist-table .sym-sign,.dist-table .sym-pl{font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',serif;font-size:0.9375rem;margin-right:0.1875rem;vertical-align:-1px;font-variant-emoji:text;font-weight:700}
.dist-table tbody tr:last-child td{border-bottom:0}

/* 配置法 — Firdaria 风格多列布局 */
/* Distributions 表 —— Jobs 风：色彩只承担"主管期边界"一个职能；0.1875rem 色条标识周期，正文统一墨灰 */
.dx-wrap{display:flex;flex-direction:column;background:transparent;margin-top:0.5rem;border-top:1px solid var(--border)}
.dx-head{display:grid;background:transparent;border-bottom:1px solid var(--border)}
.dx-head>.dx-head-cell{display:grid;grid-template-columns:2.125rem 1.6fr 1fr 0.7fr;gap:0.25rem;padding:0.625rem 0.875rem;font-weight:700;font-size:0.8125rem;color:var(--text);letter-spacing:.04em;white-space:nowrap}
.dx-head>.dx-head-cell+.dx-head-cell{border-left:1px solid var(--border)}
.dx-head>.dx-head-cell>div{text-align:center}
.dx-head>.dx-head-cell>div:nth-child(3){text-align:left;padding-left:0.875rem}
.dx-body{column-gap:0;column-rule:1px solid var(--border)}
.dx-row{display:grid;grid-template-columns:2.125rem 1.6fr 1fr 0.7fr;align-items:center;padding:0 0.875rem;font-size:0.8125rem;gap:0.25rem;break-inside:avoid-column;box-sizing:border-box;height:2.125rem;background:#fff;position:relative;font-variant-numeric:tabular-nums}
.dx-row .dx-age{font-family:Arial,sans-serif;text-align:right;padding-right:0.375rem;color:var(--text-dim);font-size:0.75rem;font-weight:400}
.dx-row .dx-date{font-family:Arial,sans-serif;text-align:center;color:var(--text-dim);font-size:0.7812rem;font-weight:400}
.dx-row .dx-lord{font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',serif;font-weight:500;font-size:0.875rem;color:var(--text);display:grid;grid-template-columns:1.125rem 1fr;align-items:center;column-gap:0.375rem;font-variant-emoji:text;padding-left:0.875rem}
.dx-row .dx-lord>.dx-pl{text-align:left}
.dx-row .dx-lord>.dx-signg{font-size:0.8125rem;text-align:left;color:var(--text-faint);font-weight:400}
.dx-row .dx-partner{text-align:center;font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',serif;font-weight:500;font-size:0.875rem;color:var(--text-dim);font-variant-emoji:text}
.dx-row .dx-partner .dx-asp{font-size:0.75rem;margin-right:0.1875rem;color:var(--text-faint)}
/* 主管期起始行：稍重一档，让眼睛能扫到分组起点 */
.dx-row.dx-major-start{border-top:1px solid var(--border)}
.dx-row.dx-major-start .dx-age,.dx-row.dx-major-start .dx-date{color:var(--text);font-weight:500}
.dx-row.dx-major-start .dx-lord{font-weight:600;color:var(--text)}
/* 子行：行星符号保留本色，仅起始行字重更重 */
/* 0.1875rem 色条 —— 每个主管期的所有行（含起始 + 子行）共享同色，色彩只做"周期分组"一件事 */
.dx-row.dx-maj-moon{box-shadow:inset 0.1875rem 0 0 #6AA655}
.dx-row.dx-maj-saturn{box-shadow:inset 0.1875rem 0 0 #666}
.dx-row.dx-maj-jupiter{box-shadow:inset 0.1875rem 0 0 #8E64B8}
.dx-row.dx-maj-mars{box-shadow:inset 0.1875rem 0 0 #C73E3A}
.dx-row.dx-maj-sun{box-shadow:inset 0.1875rem 0 0 #D4A017}
.dx-row.dx-maj-venus{box-shadow:inset 0.1875rem 0 0 #C76A93}
.dx-row.dx-maj-mercury{box-shadow:inset 0.1875rem 0 0 #5F8AAE}
/* 当前推进至的行：accent 高亮 —— 画面唯一焦点 */
.dx-row.tl-cur{background:rgba(204,120,92,.06);box-shadow:inset 0.1875rem 0 0 var(--accent,#CC785C)}
.dx-row.tl-cur .dx-age,.dx-row.tl-cur .dx-date,.dx-row.tl-cur .dx-lord,.dx-row.tl-cur .dx-partner{color:var(--accent);font-weight:600}
.dx-row.tl-cur .dx-lord>.dx-pl{opacity:1}

/* 配置法 — 设置按钮下拉 */
.dist-cfg-wrap{position:relative;display:inline-block}
.dist-cfg-btn{background:var(--bg-card);border:1px solid var(--border);border-radius:62.4375rem;padding:0.3125rem 0.875rem;font-size:0.7812rem;color:var(--text);cursor:pointer;letter-spacing:.04em;font-weight:600;display:inline-flex;align-items:center;gap:0.25rem;transition:all .15s}
.dist-cfg-btn:hover{border-color:var(--accent);color:var(--accent)}
.dist-cfg-btn .dist-cfg-caret{font-size:0.625rem}
.dist-cfg-menu{display:none;position:absolute;top:calc(100% + 0.375rem);right:0;background:#fff;border:1px solid var(--border);border-radius:0.5rem;box-shadow:0 0.5rem 1.5rem rgba(0,0,0,.08);padding:0.625rem 0.75rem;min-width:14.375rem;z-index:10}
.dist-cfg-menu.open{display:block}
.dist-cfg-menu .dist-cfg-row{display:flex;align-items:center;justify-content:space-between;gap:0.625rem;padding:0.375rem 0;font-size:0.7812rem}
.dist-cfg-menu .dist-cfg-row label{color:var(--text-dim);font-weight:600;font-size:0.75rem}
.dist-cfg-menu .dist-cfg-row select,.dist-cfg-menu .dist-cfg-row input{background:transparent;border:1px solid var(--border);border-radius:0.375rem;padding:0.1875rem 0.5rem;font-size:0.7812rem;color:var(--text);font-family:inherit}
.dist-controls-v2{display:flex;align-items:center;gap:0.875rem;margin-bottom:0.875rem;flex-wrap:wrap}
.dist-controls-v2 .dx-field{display:flex;align-items:center;gap:0.375rem;font-size:0.7812rem}
.dist-controls-v2 .dx-field label{color:var(--text-dim);font-weight:600;font-size:0.75rem}
.dist-controls-v2 .dx-field select{background:transparent;border:1px solid var(--border);border-radius:0.375rem;padding:0.25rem 0.5rem;font-size:0.7812rem;color:var(--text);font-family:inherit;cursor:pointer}
.dist-controls-v2 .dx-spacer{flex:1}

/* Summary bars */
.summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}
.summary-block h4{font-size:0.625rem;letter-spacing:2px;color:var(--text-dim);text-transform:uppercase;margin-bottom:0.625rem}
.bar-row{display:flex;align-items:center;gap:0.5rem;margin-bottom:0.4375rem}
.bar-label{font-size:0.7188rem;color:var(--text);width:3.125rem}
.bar-track{flex:1;height:0.3125rem;background:var(--bg-subtle);border-radius:0.1875rem;overflow:hidden}
.bar-fill{height:100%;border-radius:0.1875rem}
.bar-count{font-size:0.6875rem;color:var(--text-dim);width:1rem;text-align:right;font-family:Arial}

/* Time lord */
.tl-cur{background:rgba(204,120,92,.12)}
.tl-cur td{font-weight:600}

/* Zodiacal Releasing */
.zr-toolbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;margin-bottom:0.375rem}
.zr-title{margin:0;font-size:1.625rem;font-weight:700;letter-spacing:2px;text-align:center}
.zr-info{margin:0.625rem 0 1.125rem;font-size:0.8125rem;line-height:1.9;color:var(--text-dim);text-align:center}
.zr-info strong{color:var(--text);font-weight:600}
.zr-info .zr-glyph{font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',serif;font-size:1.125rem;font-weight:700;vertical-align:-2px}
/* L1=L3=L4 等宽 1fr，L2 略宽 1.18fr —— 用户反馈：L3/L4 视觉太宽，需要整体收紧 */
.zr-grid{display:grid;grid-template-columns:1fr 1.18fr 1fr 1fr;gap:0.75rem}
.zr-col{background:#fff;border:1px solid var(--border);border-radius:0.75rem;padding:0.875rem 0.375rem 0.5rem;display:flex;flex-direction:column;min-height:20rem;box-shadow:0 1px 2px rgba(0,0,0,.02)}
.zr-col-head{font-size:0.75rem;font-weight:800;letter-spacing:0.1875rem;text-transform:uppercase;text-align:center;color:var(--text);padding:0 0.5rem 0.625rem;border-bottom:1px solid rgba(0,0,0,.06);margin-bottom:0.25rem}
.zr-list{display:flex;flex-direction:column;max-height:35rem;overflow-y:auto;padding:2px 0.375rem;scrollbar-width:thin}
.zr-list::-webkit-scrollbar{width:0.375rem}
.zr-list::-webkit-scrollbar-thumb{background:rgba(0,0,0,.15);border-radius:0.1875rem}
/* L3/L4：glyph | date(auto) | badges(auto) | 右侧 filler(1fr)
   column-gap 0.625rem —— 让 date↔badges 的间距 ≈ glyph↔date，不再"badges 贴日期"的拥挤感 */
.zr-row{display:grid;grid-template-columns:1.625rem auto auto 1fr;align-items:center;column-gap:0.625rem;row-gap:0;padding:0.4375rem 0.625rem;border-radius:0.5rem;font-size:0.8125rem;cursor:pointer;transition:background .14s ease;color:var(--text);position:relative}
/* badge 列固定 2.5rem，避免每行因 badge 宽度不同导致 age 列横向偏移 */
.zr-row.has-age{grid-template-columns:1.5rem 5.75rem 2rem auto 1fr 1.375rem;column-gap:0.5rem}
.zr-age{font-family:Arial,sans-serif;font-size:0.8125rem;color:var(--text);text-align:center;font-variant-numeric:tabular-nums;letter-spacing:0.2px}
.zr-row.zr-now .zr-age,.zr-row.zr-sel .zr-age{color:var(--accent)}
.zr-row:hover{background:rgba(0,0,0,.035)}
.zr-row.zr-sel{background:rgba(204,120,92,.10)}
.zr-row.zr-sel .zr-date{color:var(--accent);font-weight:700}
.zr-row.zr-now{background:rgba(204,120,92,.16)}
.zr-row.zr-now::before{content:"";position:absolute;left:2px;top:0.4375rem;bottom:0.4375rem;width:0.1875rem;border-radius:2px;background:var(--accent,#CC785C)}
.zr-row.zr-now .zr-date{color:var(--accent);font-weight:700}
.zr-row.zr-leaf{cursor:default}
.zr-row.zr-leaf:hover{background:transparent}
.zr-row.zr-leaf.zr-now:hover{background:rgba(204,120,92,.16)}
.zr-glyph-col{font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',serif;font-size:1.1875rem;font-weight:700;text-align:center;line-height:1;letter-spacing:0}
.zr-date{font-family:Arial,sans-serif;font-size:0.8125rem;letter-spacing:0.2px;color:var(--text);white-space:nowrap;font-variant-numeric:tabular-nums}
.zr-badge{display:inline-block;font-size:0.625rem;font-weight:700;letter-spacing:0.4px;padding:2px 0.375rem;border-radius:0.625rem;line-height:1.1;font-family:Arial,sans-serif}
.zr-badge-cu{background:#E0F0EB;color:#2C7A5F;border:1px solid rgba(44,122,95,.2)}
.zr-badge-lb{background:#F7E0DF;color:#8B2F2A;border:1px solid rgba(139,47,42,.2)}
.zr-badge-co{background:#E8E4F0;color:#5B4A7A;border:1px solid rgba(91,74,122,.2)}
.zr-badge-fs{background:#FBEFD0;color:#8A6B0E;border:1px solid rgba(138,107,14,.22)}
.zr-badge-peak{background:#CC785C;color:#fff;border:1px solid rgba(160,80,52,.4);font-weight:800}
.zr-badge-pmed{background:#ECC4B0;color:#7A3A21;border:1px solid rgba(122,58,33,.25)}
.zr-badge-pmin{background:#F3E1D3;color:#8C5A37;border:1px solid rgba(140,90,55,.2)}
.zr-badge-pbase{background:#FAE7C7;color:#7A4D1F;border:1px solid rgba(122,77,31,.25)}
.zr-badge-pre{background:transparent;color:#9A8B73;border:1px dashed rgba(154,139,115,.5);font-weight:600}
.zr-badge-post{background:transparent;color:#9A8B73;border:1px dashed rgba(154,139,115,.5);font-weight:600}
.zr-anchor{display:inline-flex;align-items:center;gap:0.1875rem;margin-right:0.5rem;padding:2px 0.375rem;border:1px solid var(--border);border-radius:0.25rem;background:#FAF6EC}
.zr-anchor-tag{font-size:0.625rem;color:var(--text-faint);letter-spacing:.04em}
.zr-badge-wrap{display:inline-flex;gap:0.1875rem;align-items:center}
.zr-legend{margin-top:1.25rem;padding:1rem 1.125rem 0.875rem;border-radius:0.625rem;background:rgba(0,0,0,.02);border:1px solid rgba(0,0,0,.05);font-size:0.75rem;color:var(--text-dim);line-height:1.5}
.zr-legend-row{display:grid;grid-template-columns:5rem 1fr;align-items:center;gap:0.875rem;padding:0.375rem 0;border-top:1px solid rgba(0,0,0,.04)}
.zr-legend-row:first-child{border-top:none}
.zr-legend-label{font-size:0.6562rem;font-weight:700;letter-spacing:1.8px;text-transform:uppercase;color:var(--text);opacity:.55}
.zr-legend-items{display:flex;flex-wrap:wrap;gap:0.375rem 1.125rem}
.zr-legend-item{display:inline-flex;align-items:center;gap:0.375rem;white-space:nowrap}
.zr-legend-item strong{color:var(--text);font-weight:600}
.zr-legend-item .zr-legend-sep{opacity:.45;padding:0 1px}
.zr-legend-dot-now{width:0.875rem;height:0.875rem;border-radius:0.1875rem;background:rgba(204,120,92,.16);border-left:0.1875rem solid var(--accent,#CC785C);box-sizing:border-box;display:inline-block}
.zr-legend-dot-sel{width:0.875rem;height:0.875rem;border-radius:0.1875rem;background:rgba(204,120,92,.10);display:inline-block}
@media (max-width:700px){.zr-legend-row{grid-template-columns:1fr;gap:0.25rem}}
@media (max-width:1000px){.zr-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.zr-grid{grid-template-columns:1fr}}
/* drawer 内 ZR 按容器宽 —— 60vw 时只 2 列，全屏 96vw 时才 4 列；防 LEVEL 4 越界 */
.data-drawer-body{container-type:inline-size;container-name:drawer}
@container drawer (max-width:93.75rem){.data-drawer-body .zr-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@container drawer (max-width:47.5rem){.data-drawer-body .zr-grid{grid-template-columns:1fr!important}}
@container drawer (min-width:93.75rem){.data-drawer-body .zr-grid{grid-template-columns:1fr 1.18fr 1fr 1fr!important}}
/* drawer 内任何超宽内容都允许横向滚动兜底 */
.data-drawer-body{overflow-x:hidden}
.data-drawer-body .zr-grid,.data-drawer-body .dx-body,.data-drawer-body .fd-body{max-width:100%;overflow-x:auto}

/* Right Ascension Ascensions (赤经上升) */
.raa-sub{text-align:center;font-size:0.7812rem;color:var(--text-dim);margin:0.375rem 0 1.375rem;line-height:1.6}
.raa-params{display:grid;grid-template-columns:1fr;gap:0;margin:0 0 1.375rem;border:1px solid var(--border);border-radius:0.625rem;overflow:hidden;background:#fff}
.raa-params-head,.raa-params-row{display:grid;grid-template-columns:1.75rem 3.75rem 3.125rem 4rem 4rem 3.75rem 4.5rem 4.5rem;align-items:center;gap:0.625rem;padding:0.5625rem 0.875rem;font-size:0.7812rem;font-family:Arial,sans-serif}
.raa-params-head{background:rgba(0,0,0,.025);font-weight:700;font-size:0.6562rem;letter-spacing:1.8px;text-transform:uppercase;color:var(--text-dim);padding:0.4375rem 0.875rem}
.raa-params-row{border-top:1px solid rgba(0,0,0,.05);font-variant-numeric:tabular-nums}
.raa-params-row .raa-sym{font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',serif;font-size:1.125rem;font-weight:700;line-height:1;text-align:center}
.raa-params-row .raa-sign{font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',serif;font-size:1rem;font-weight:700}
.raa-params-row .raa-name{font-family:inherit}
.raa-params-row span{white-space:nowrap}
.raa-chrono-head{display:grid;grid-template-columns:3.375rem 6.25rem 1fr;gap:0.875rem;padding:0.625rem 0.875rem;background:rgba(0,0,0,.025);border-radius:0.5rem 0.5rem 0 0;font-size:0.6562rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--text-dim)}
.raa-chrono{border:1px solid var(--border);border-top:none;border-radius:0 0 0.625rem 0.625rem;background:#fff;max-height:35rem;overflow-y:auto;scrollbar-width:thin}
.raa-chrono::-webkit-scrollbar{width:0.375rem}
.raa-chrono::-webkit-scrollbar-thumb{background:rgba(0,0,0,.15);border-radius:0.1875rem}
.raa-row{display:grid;grid-template-columns:3.375rem 6.25rem 1fr;gap:0.875rem;align-items:center;padding:0.5625rem 0.875rem;border-top:1px solid rgba(0,0,0,.04);font-size:0.7812rem;position:relative}
.raa-row:first-child{border-top:none}
.raa-row .raa-age{font-weight:700;font-family:Arial,sans-serif;text-align:right;font-variant-numeric:tabular-nums;color:var(--text)}
.raa-row .raa-date{font-family:Arial,sans-serif;color:var(--text-dim);font-variant-numeric:tabular-nums}
.raa-row.raa-now{background:rgba(204,120,92,.12)}
.raa-row.raa-now::before{content:"";position:absolute;left:0;top:0;bottom:0;width:0.1875rem;background:var(--accent,#CC785C)}
.raa-row.raa-now .raa-age,.raa-row.raa-now .raa-date{color:var(--accent)}
.raa-chips{display:flex;flex-wrap:wrap;gap:0.3125rem}
.raa-chip{display:inline-flex;align-items:center;gap:0.25rem;padding:2px 0.4375rem;border-radius:0.75rem;background:rgba(0,0,0,.04);font-size:0.6875rem;border:1px solid rgba(0,0,0,.05);white-space:nowrap;font-family:Arial,sans-serif}
.raa-chip-sym{font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',serif;font-size:0.8125rem;font-weight:700;line-height:1}
.raa-chip-comp{color:var(--text-dim);font-size:0.6562rem;letter-spacing:0.2px}
.raa-chip-frac{font-weight:700;color:var(--text);font-size:0.75rem;font-family:serif}
.raa-chip.raa-chip-full{background:rgba(204,120,92,.12);border-color:rgba(204,120,92,.25)}
.raa-chip.raa-chip-full .raa-chip-comp{color:var(--accent)}
.raa-legend{margin-top:1.25rem;padding:0.875rem 1.125rem 0.75rem;border-radius:0.625rem;background:rgba(0,0,0,.02);border:1px solid rgba(0,0,0,.05);font-size:0.75rem;color:var(--text-dim);line-height:1.5}
.raa-legend-row{display:grid;grid-template-columns:5rem 1fr;align-items:center;gap:0.875rem;padding:0.375rem 0;border-top:1px solid rgba(0,0,0,.04)}
.raa-legend-row:first-child{border-top:none}
.raa-legend-label{font-size:0.6562rem;font-weight:700;letter-spacing:1.8px;text-transform:uppercase;color:var(--text);opacity:.55}
.raa-legend-items{display:flex;flex-wrap:wrap;gap:0.375rem 1.125rem}
.raa-legend-items>span{white-space:nowrap;display:inline-flex;align-items:center;gap:0.3125rem}
.raa-legend-items strong{color:var(--text);font-weight:700}
@media (max-width:900px){.raa-params-head,.raa-params-row{grid-template-columns:1.75rem 3.125rem 2.75rem 3.5rem 3.5rem 3.125rem 4rem 4rem;gap:0.375rem;padding:0.5rem 0.625rem;font-size:0.7188rem}}
@media (max-width:700px){.raa-legend-row{grid-template-columns:1fr;gap:0.25rem}}

/* Firdaria — CSS 多列自动平衡（浏览器会尽可能均分各列高度，不留底部空白） */
.fd-wrap{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:0.375rem;overflow:hidden;background:#fff}
.fd-head{display:grid;background:var(--bg);border-bottom:1px solid var(--border)}
.fd-head>.fd-head-cell{display:grid;grid-template-columns:1.625rem 1.625rem 1fr 2.5rem;gap:2px;padding:0.3125rem 0.5rem;border-right:1px solid var(--border);font-weight:800;font-size:0.875rem;color:var(--text);letter-spacing:1px}
.fd-head>.fd-head-cell:last-child{border-right:none}
.fd-head>.fd-head-cell>div{text-align:center}
.fd-body{column-gap:0;column-rule:1px solid var(--border)}
.fd-col-head,.fd-row{display:grid;grid-template-columns:1.625rem 1.625rem 1fr 2.5rem;align-items:center;padding:0 0.5rem;font-size:0.75rem;border-bottom:1px solid var(--border);gap:2px}
.fd-row{break-inside:avoid-column;box-sizing:border-box;height:2.125rem}
.fd-row .fd-sym{font-family:'StarCue Symbols','Apple Symbols','Noto Sans Symbols','Noto Sans Symbols 2',serif;text-align:center;font-size:0.875rem;font-weight:700}
.fd-row .fd-sym-merge{grid-column:1 / span 2;text-align:center;font-weight:700}
.fd-row .fd-date{font-family:Arial,sans-serif;text-align:center;color:var(--text);font-size:0.75rem;font-weight:700}
.fd-row .fd-age{font-family:Arial,sans-serif;text-align:center;color:var(--text);font-size:0.7188rem;font-weight:700}
.fd-row.fd-major-start{border-top:1px solid var(--text-faint,#CAC7C2)}
.fd-row{background:#fff;position:relative}
.fd-row.fd-major-start{border-top:2px solid rgba(0,0,0,.08)}
.fd-row.fd-major-start .fd-sym-merge{font-size:1.25rem;font-weight:700;line-height:1}
/* 深色主期行（南交点/北交点/火星）的数字强制黑色 + 半粗，避免被 var(--text) 灰墨糊在红/紫底上 */
.fd-row.fd-major-start.fd-maj-node-s .fd-date,.fd-row.fd-major-start.fd-maj-node-s .fd-age,
.fd-row.fd-major-start.fd-maj-node-n .fd-date,.fd-row.fd-major-start.fd-maj-node-n .fd-age,
.fd-row.fd-major-start.fd-maj-mars .fd-date,.fd-row.fd-major-start.fd-maj-mars .fd-age{color:#000;font-weight:800}
.fd-row.fd-major-start.fd-maj-moon{background:#C9E2BF;border-top-color:#6AA655}
.fd-row.fd-major-start.fd-maj-saturn{background:#CFCFCF;border-top-color:#666}
.fd-row.fd-major-start.fd-maj-jupiter{background:#D8C1EE;border-top-color:#8E64B8}
.fd-row.fd-major-start.fd-maj-mars{background:#D97878;color:#fff;border-top-color:#A33333}
.fd-row.fd-major-start.fd-maj-node-n{background:#9E81BE;color:#fff;border-top-color:#5E3F7F}
.fd-row.fd-major-start.fd-maj-node-s{background:#BF3F3F;color:#fff;border-top-color:#8A2020}
.fd-row.fd-major-start.fd-maj-sun{background:#F2D37A;border-top-color:#B8851A}
.fd-row.fd-major-start.fd-maj-venus{background:#F0B5CB;border-top-color:#C76A93}
.fd-row.fd-major-start.fd-maj-mercury{background:#B5CDE3;border-top-color:#5F8AAE}
.fd-row:not(.fd-major-start).fd-maj-moon{box-shadow:inset 0.25rem 0 0 #6AA655}
.fd-row:not(.fd-major-start).fd-maj-saturn{box-shadow:inset 0.25rem 0 0 #666}
.fd-row:not(.fd-major-start).fd-maj-jupiter{box-shadow:inset 0.25rem 0 0 #8E64B8}
.fd-row:not(.fd-major-start).fd-maj-mars{box-shadow:inset 0.25rem 0 0 #C73E3A}
.fd-row:not(.fd-major-start).fd-maj-node-n{box-shadow:inset 0.25rem 0 0 #5E3F7F}
.fd-row:not(.fd-major-start).fd-maj-node-s{box-shadow:inset 0.25rem 0 0 #8A2020}
.fd-row:not(.fd-major-start).fd-maj-sun{box-shadow:inset 0.25rem 0 0 #D4A017}
.fd-row:not(.fd-major-start).fd-maj-venus{box-shadow:inset 0.25rem 0 0 #C76A93}
.fd-row:not(.fd-major-start).fd-maj-mercury{box-shadow:inset 0.25rem 0 0 #5F8AAE}
.fd-row .fd-sym.fd-hard-mars{color:#C73E3A}
.fd-row .fd-sym.fd-hard-saturn{color:#2C2C2C}
.fd-row.tl-cur{outline:2px solid var(--accent,#CC785C);outline-offset:-2px;z-index:1}
.fd-row.tl-cur .fd-date,.fd-row.tl-cur .fd-age{color:var(--accent)}
.fd-toggle .cm-btn{font-size:0.875rem;padding:0.1875rem 0.875rem;letter-spacing:0.5px}

/* 小限 — 12 年/盒，盒间留呼吸空间，宫位回归黑白 */
.pf-wrap{display:flex;flex-wrap:wrap;gap:1.75rem 1.375rem;background:transparent;align-items:flex-start}
.pf-box{flex:1 1 15rem;max-width:18.75rem;min-width:14.375rem;border:1px solid var(--border);border-radius:0.5rem;background:#fff;overflow:hidden;display:flex;flex-direction:column}
.pf-box-head{display:grid;grid-template-columns:2.75rem 1fr 2.25rem 2.75rem 0.875rem;gap:0.375rem;padding:0.4375rem 0.75rem;font-weight:700;font-size:0.75rem;color:var(--text);letter-spacing:.04em;background:var(--bg);border-bottom:1px solid var(--border)}
.pf-box-head>div{text-align:center;white-space:nowrap}
.pf-box-title{padding:0.5625rem 0.75rem;font-size:0.875rem;letter-spacing:.06em;color:var(--text);font-weight:800;border-bottom:1px solid var(--border);background:var(--bg);text-align:center}
.pf-row{box-sizing:border-box;height:2.125rem;display:grid;grid-template-columns:2.75rem 1fr 2.25rem 2.75rem 0.875rem;align-items:center;padding:0 0.75rem;font-size:0.75rem;gap:0.375rem;border-bottom:1px solid rgba(0,0,0,.04);cursor:pointer;transition:background .12s}
.pf-row:last-child{border-bottom:none}
.pf-row:hover{background:rgba(204,120,92,.06)}
.pf-row:hover .pf-chev{color:var(--accent)}
.pf-row>div{font-family:Arial,sans-serif;text-align:center;font-weight:400;color:var(--text);font-size:0.8125rem}
.pf-row .pf-chev{color:var(--text-dim);font-size:1rem;font-weight:700;line-height:1;text-align:center;transition:color .12s}
.pf-row .pf-house,.pf-sub-row .pf-house{display:inline-block;min-width:1.375rem;font-weight:700;font-size:0.8125rem;color:var(--text);font-family:Arial,sans-serif;text-align:center;background:transparent;padding:0}
.pf-row .pf-sym{font-family:'StarCue Symbols','Apple Symbols','Noto Sans Symbols','Noto Sans Symbols 2',serif;font-size:1.25rem;font-weight:700;line-height:1}
.pf-row.tl-cur{background:rgba(204,120,92,.08);border-radius:0.25rem}
.pf-row.tl-cur>div:not(.pf-sym-wrap){color:var(--accent);font-weight:700}
.pf-row.pf-exp{background:rgba(204,120,92,.14);border-radius:0.25rem}
.pf-row.pf-exp>div{color:var(--accent);font-weight:700}
/* 法达 → 小限：跳转高亮闪动 3 次后稳定保持 accent 描边，让客户一眼看到落在哪宫 */
.pf-row.pf-jump{background:rgba(204,120,92,.22);box-shadow:0 0 0 2px var(--accent,#CC785C) inset;border-radius:0.25rem;animation:pfJumpFlash 1.4s ease-out 0s 2}
.pf-row.pf-jump>div{color:var(--accent);font-weight:800}
@keyframes pfJumpFlash{0%,100%{box-shadow:0 0 0 2px var(--accent) inset}50%{box-shadow:0 0 0 0.25rem var(--accent) inset,0 0 1.125rem rgba(204,120,92,.5)}}
/* fd2pf 入口 icon（黄道释放/配置法行内右侧的小按钮）+ 提示小字 */
.fd2pf-hint{font-size:0.7188rem;color:var(--accent);text-align:center;letter-spacing:.04em;margin:0.375rem 0}
.fd2pf-icon{display:inline-flex;align-items:center;justify-content:center;width:1.125rem;height:1.125rem;border-radius:50%;font-size:0.6875rem;color:var(--accent);cursor:pointer;border:1px solid var(--accent);background:transparent;transition:background .12s;margin-left:0.375rem;line-height:1;flex-shrink:0}
.fd2pf-icon:hover{background:var(--accent);color:#fff}
/* fd2pf 弹窗 —— 法达期跨过的小限年逐行列出，点击进月度 */
#fd2pf-modal .modal-panel{padding-top:0.875rem}
.fd2pf-table{display:flex;flex-direction:column;border-top:1px solid var(--border)}
.fd2pf-head,.fd2pf-row{display:grid;grid-template-columns:1.4fr 0.7fr 0.7fr;align-items:center;padding:0.5625rem 0.75rem;font-size:0.8125rem;border-bottom:1px solid var(--border);gap:0.5rem}
.fd2pf-head{font-weight:700;color:var(--text);background:var(--bg);font-size:0.75rem;letter-spacing:.04em}
.fd2pf-row{cursor:pointer;background:#fff;transition:background .12s}
.fd2pf-row:hover{background:rgba(204,120,92,.08)}
.fd2pf-row .fd2pf-date{font-family:Arial,sans-serif;font-weight:600;color:var(--text);font-variant-numeric:tabular-nums}
.fd2pf-row .fd2pf-house{text-align:center}
.fd2pf-row .fd2pf-house>span{font-weight:700;font-size:0.8438rem;color:var(--text)}
.fd2pf-row .fd2pf-ruler{text-align:center;font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',serif;font-size:0.875rem;font-weight:700;font-variant-emoji:text}
.fd2pf-row .fd2pf-ruler .fd2pf-rname{font-family:inherit;font-size:0.7812rem;margin-left:0.25rem}

/* 月限 / 日限 弹出框（仿设定弹层） */
.pf-modal{position:fixed;inset:0;background:rgba(30,25,22,.32);z-index:250;display:none;align-items:flex-start;justify-content:center;padding:4.375rem 1.25rem 2.5rem;overflow-y:auto;backdrop-filter:blur(2px)}
.pf-modal.show{display:flex}
.pf-modal-inner{background:var(--bg-card,#fff);border:1px solid var(--border);border-radius:0.75rem;padding:1.75rem 2rem;max-width:68.75rem;width:100%;box-shadow:0 1.25rem 3.75rem rgba(0,0,0,.18);position:relative}
.pf-modal-inner .pf-close-x{position:absolute;top:0.625rem;right:0.875rem;background:none;border:none;font-size:1.5rem;color:var(--text-dim);cursor:pointer;line-height:1;padding:0.25rem 0.625rem;border-radius:0.375rem}
.pf-modal-inner .pf-close-x:hover{color:var(--text);background:var(--bg-subtle,rgba(0,0,0,.04))}
.pf-modal-inner .pf-back-btn{background:none;border:1px solid var(--border);color:var(--accent);cursor:pointer;font-family:inherit;font-size:0.75rem;padding:0.25rem 0.75rem;border-radius:1rem;margin-bottom:0.75rem;letter-spacing:0.3px;font-weight:500}
.pf-modal-inner .pf-back-btn:hover{background:rgba(204,120,92,.08);border-color:var(--accent)}
#profection-day-modal{z-index:260}
/* 盘面平衡 / 月相 */
.bal-h{font-size:0.9375rem;font-weight:800;letter-spacing:2px;color:var(--text);margin:0 0 0.75rem;padding-bottom:0.5rem;border-bottom:1px solid var(--border-lite,#f0e8df)}
.phase-lookup{margin-top:0.375rem}
.phase-lookup-bar{display:flex;gap:0.625rem;align-items:center;margin-bottom:0.875rem}
.phase-lookup-input{padding:0.5rem 0.625rem;border:1px solid var(--border);border-radius:0.5rem;font-size:0.875rem;background:#fff;color:var(--text);font-family:inherit}
.phase-lookup-btn{padding:0.5rem 1rem;border-radius:0.5rem;background:var(--accent);color:#fff;border:0;font-size:0.8125rem;letter-spacing:1px;cursor:pointer;font-weight:600}
.phase-lookup-btn:hover{filter:brightness(0.95)}
.phase-lookup-result{display:none}
.phase-lookup-result.shown{display:block}
.phase-result-now{padding:0.875rem 1rem;background:#fafafa;border-radius:0.625rem;margin-bottom:0.875rem;font-size:0.875rem;line-height:1.8}
.phase-result-now .ph-now-name{font-size:1.125rem;font-weight:800;color:var(--accent);letter-spacing:1.5px;display:inline-block;margin-right:0.875rem}
.phase-result-now .ph-now-elong{color:var(--text-dim);font-family:'Iowan Old Style',Georgia,serif}
.phase-result-meta{font-size:0.8125rem;color:var(--text);margin-top:0.5rem;letter-spacing:.04em}
.phase-result-meta b{color:var(--text-dim);font-weight:500;margin-right:0.375rem}
.bal-circles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0.875rem;margin-top:1.75rem}
.bal-circle-wrap{text-align:center}
.bal-circle-wrap .bal-circle-title{font-size:0.75rem;font-weight:700;color:var(--text-dim);letter-spacing:1.5px;margin-bottom:0.5rem}
.bal-circle-wrap svg{display:block;margin:0 auto;max-width:100%;height:auto}
.bal-circle-wrap .bal-circle-cap{font-size:0.7188rem;color:var(--text-dim);margin-top:0.375rem;line-height:1.6;display:inline-block;text-align:left}
.phases-table-wrap{overflow-x:auto}
.phases-table{width:100%;border-collapse:collapse;font-size:0.8125rem}
.phases-table th,.phases-table td{padding:0.5rem 0.625rem;border-bottom:1px solid var(--border-lite,#f0e8df);text-align:center}
.phases-table th{font-weight:600;color:var(--text-dim);letter-spacing:1px;font-size:0.75rem;background:#fafafa}
.phases-table td.ph-tag{font-weight:700;letter-spacing:.5px}
.phases-table td.ph-tag.ph-new{color:#5E4B36}
.phases-table td.ph-tag.ph-1q{color:#3F7A99}
.phases-table td.ph-tag.ph-full{color:#C5483F}
.phases-table td.ph-tag.ph-3q{color:#3F7A99}
.phases-table td.ph-pos{font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',serif;font-variant-emoji:text}
.phases-table tr.ph-near{background:rgba(204,120,92,.06)}
/* 停滞表 —— 沿用月相表节奏 */
.stations-table{width:100%;border-collapse:collapse;font-size:0.8125rem}
.stations-table th,.stations-table td{padding:0.5rem 0.625rem;border-bottom:1px solid var(--border-lite,#f0e8df);text-align:center}
.stations-table th{font-weight:600;color:var(--text-dim);letter-spacing:1px;font-size:0.75rem;background:#fafafa}
.stations-table td.ph-pos{font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',serif;font-variant-emoji:text;white-space:nowrap}
.stations-table td.stn-days{font-variant-numeric:tabular-nums;color:var(--text-dim);font-size:0.7812rem;white-space:nowrap}
.stations-table td.fs-fast{color:#4F846A;font-weight:600;letter-spacing:.5px}
.stations-table td.fs-slow{color:#B8862E;font-weight:600;letter-spacing:.5px}
.stations-table td.fs-retro{color:#B0463F;font-weight:600;letter-spacing:.5px}
/* === Astro·Carto·Graphy 占星地图 === */
/* 占星地图模式下：drawer 自带的"占星地图"大标题撤掉、padding 收紧，把整片 viewport 让给地图 */
body.data-mapping .data-drawer{padding:0}
body.data-mapping .data-drawer-title{display:none}
body.data-mapping .data-drawer-close{top:0.875rem;right:1.125rem;z-index:11;display:none}
/* 返回按钮：仅 ACG 全屏模式下，左上显示；其他面板隐藏 */
.data-drawer-back{display:none;position:absolute;top:1.5rem;left:1.125rem;z-index:11;align-items:center;gap:0.1875rem;background:rgba(204,120,92,0.12);backdrop-filter:blur(0.5rem);border:1px solid rgba(204,120,92,0.55);border-radius:62.4375rem;padding:0.25rem 0.6875rem 0.25rem 0.5625rem;cursor:pointer;color:var(--accent);font-family:inherit;font-size:0.6875rem;letter-spacing:.05em;line-height:1;font-weight:500;transition:all .15s ease-out}
.data-drawer-back:hover{background:rgba(204,120,92,0.22);border-color:var(--accent);transform:translateX(-1px)}
.data-drawer-back svg{width:0.75rem;height:0.75rem}
body.data-mapping .data-drawer-back{display:inline-flex}
.acg-card{padding:0;height:100%}
/* 控制柱：极窄一列，紧靠左边纬度刻度内侧 */
/* 左侧控制柱：单一 flex 容器，工具栏 + 行星图例垂直堆叠，自动间距永不重叠 */
.acg-rail{position:absolute;left:0.75rem;top:calc(100% * 12 / 204);display:flex;flex-direction:column;gap:0.375rem;z-index:6;max-height:calc(100vh - 2.25rem);align-items:stretch}
.acg-toolbar{display:flex;flex-direction:column;gap:0.25rem;padding:0.4375rem 0.375rem;font-size:0.6562rem;background:rgba(36,28,52,0.78);border:1px solid rgba(232,225,210,0.14);border-radius:0.5rem;backdrop-filter:blur(0.625rem);-webkit-backdrop-filter:blur(0.625rem);box-shadow:0 2px 1.125rem rgba(0,0,0,.45);width:3.125rem;align-items:center}
.acg-toolbar .acg-toolbar-label{display:none}
.acg-toolbar .acg-line-toggle{display:flex;align-items:center;justify-content:center;padding:0.1875rem 0;border:1px solid rgba(232,225,210,0.18);border-radius:0.375rem;cursor:pointer;background:transparent;color:rgba(232,225,210,0.72);font-family:inherit;font-size:0.625rem;letter-spacing:.3px;font-weight:700;transition:.15s;width:100%}
.acg-toolbar .acg-line-toggle:hover{color:#F0CFB8;border-color:rgba(204,120,92,.6)}
.acg-toolbar .acg-line-toggle.active{background:rgba(204,120,92,.22);color:#F0CFB8;border-color:#CC785C}
/* 还原按钮 —— 醒目赤陶填充，常用功能必须一眼看到 */
.acg-toolbar .acg-btn-restore{background:rgba(204,120,92,.18);color:#F0CFB8;border-color:rgba(204,120,92,.55);font-size:0.875rem;font-weight:600;line-height:1}
.acg-toolbar .acg-btn-restore:hover{background:rgba(204,120,92,.32);color:#fff;border-color:#CC785C}
.acg-toolbar .acg-tool-sep{width:70%;height:1px;background:rgba(232,225,210,0.14);margin:2px 0}
.acg-toolbar .acg-zoom-info{font-size:0.5625rem;color:rgba(232,225,210,0.4);letter-spacing:.4px;font-variant-numeric:tabular-nums;margin-top:1px}
/* 缩放 / 飞行 按钮组 —— 右下 */
/* 缩放栏顶部对齐"地图上沿"（viewBox -102/+12 chrome → 12/204 ≈ 5.88% canvas height） */
.acg-zoom-bar{position:absolute;left:4.375rem;top:calc(100% * 12 / 204);display:flex;flex-direction:column;gap:0.25rem;z-index:6}
.acg-zoom-bar button{width:2.125rem;height:2.125rem;border:1px solid rgba(232,225,210,0.14);background:rgba(36,28,52,0.78);color:rgba(232,225,210,0.7);border-radius:0.4375rem;cursor:pointer;font-family:inherit;font-size:1.0625rem;font-weight:600;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(0.625rem);-webkit-backdrop-filter:blur(0.625rem);box-shadow:0 2px 1.125rem rgba(0,0,0,.45);transition:.15s;line-height:1}
.acg-zoom-bar button:hover{color:#F0CFB8;border-color:rgba(204,120,92,.6)}
.acg-zoom-bar button.active{background:rgba(204,120,92,.22);color:#F0CFB8;border-color:#CC785C}
.acg-zoom-bar button svg{width:1rem;height:1rem}
/* 图例：紧贴工具栏下方的另一根窄柱（仅符号、加粗） */
.acg-legend{display:flex;flex-direction:column;gap:2px;padding:0.4375rem 0.25rem;background:rgba(36,28,52,0.78);border:1px solid rgba(232,225,210,0.14);border-radius:0.5rem;backdrop-filter:blur(0.625rem);-webkit-backdrop-filter:blur(0.625rem);box-shadow:0 2px 1.125rem rgba(0,0,0,.45);width:3.125rem;align-items:stretch}
.acg-legend .acg-leg-row{display:flex;align-items:center;justify-content:center;padding:0.3125rem 0;width:100%;gap:0;border-radius:0.3125rem;cursor:pointer;color:rgba(232,225,210,0.85);transition:background .15s,transform .15s;user-select:none;min-height:1.5rem;transform-origin:center}
.acg-legend .acg-leg-row:hover{background:rgba(232,225,210,0.08);transform:scale(1.25)}
.acg-legend .acg-leg-row.off{opacity:.28}
.acg-legend .acg-leg-name{display:none}
.acg-legend .acg-leg-sym{font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',serif;font-size:1.125rem;font-weight:900;line-height:1;font-variant-emoji:text;text-rendering:geometricPrecision}
/* 部分行星 glyph 在该字体里视觉占位偏大，逐个微调让一柱子里看起来一样大 */
.acg-legend .acg-leg-row[data-id="neptune"] .acg-leg-sym{font-size:0.875rem}
.acg-legend .acg-leg-row[data-id="pluto"] .acg-leg-sym{font-size:1rem}
.acg-legend .acg-leg-row[data-id="uranus"] .acg-leg-sym{font-size:0.9375rem}
.acg-legend .acg-leg-row[data-id="chiron"] .acg-leg-sym{font-size:0.9375rem}
.acg-legend .acg-leg-row[data-id="mercury"] .acg-leg-sym{font-size:1rem}
.acg-legend .acg-leg-row[data-id="node"] .acg-leg-sym{font-size:1rem}
/* 地图四周用米色 chrome；蓝色仅是海洋（在 SVG 里画一个 ocean rect） */
.acg-canvas-wrap{position:relative;background:radial-gradient(ellipse at 50% 45%, #2A1F44 0%, #1A1530 55%, #120E26 100%);overflow:hidden;cursor:grab;width:100%;height:100%;contain:paint;isolation:isolate;touch-action:none}
.acg-canvas-wrap.dragging{cursor:grabbing}
/* 仅约束地图 svg（直接子级）；用 > 避免漏选进重置盘卡片里嵌套的迷你星盘 svg → 否则它们被 absolute 弹出 grid 叠成重影 */
.acg-canvas-wrap > svg{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}
body.data-mapping .data-drawer{display:flex;flex-direction:column}
body.data-mapping .data-drawer-body{flex:1;display:flex;min-height:0}
body.data-mapping #dt-mapping{flex:1;display:flex!important;min-height:0}
body.data-mapping .acg-card{flex:1;display:flex;min-height:0}
body.data-mapping .acg-canvas-wrap{flex:1;min-height:60vh}
/* 迁居盘弹窗 —— 飞机点击地图后弹出，整张星盘 + ASC/MC/DSC/IC 摘要 */
.acg-reloc{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#FFFEFB;border:1px solid var(--border);border-radius:0.875rem;padding:1.125rem 1.5rem 1.375rem;box-shadow:0 0.875rem 3.125rem rgba(0,0,0,.18),0 2px 0.5rem rgba(0,0,0,.06);z-index:10;width:min(55rem,94vw);max-height:92vh;overflow-y:auto}
/* 头部：标题真正水平居中（绝对定位 + translate）；♥ 左上、apply + × 右上分别绝对定位 */
.acg-reloc .ar-head{position:relative;min-height:2.25rem}
.acg-reloc .ar-title{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-family:var(--serif);font-size:1.125rem;font-weight:600;color:var(--accent);letter-spacing:1px;white-space:nowrap}
.acg-reloc .ar-coord{margin-top:0.875rem;margin-bottom:0.25rem;padding-bottom:0.75rem;border-bottom:1px solid var(--border);font-family:'SF Pro Display',Arial,sans-serif;font-size:0.6875rem;color:var(--text-faint);font-variant-numeric:tabular-nums;letter-spacing:.3px;font-weight:400}
/* 关闭按钮：明显的圆形赤陶按钮，保证一眼可见且有足够点击热区 */
.acg-reloc .ar-close{position:absolute;top:0.875rem;right:1rem;width:2.125rem;height:2.125rem;background:#FAF3EE;border:1.5px solid #E8C5B5;border-radius:50%;color:var(--accent);font-size:1.375rem;font-weight:300;cursor:pointer;line-height:1;display:flex;align-items:center;justify-content:center;transition:.15s;padding:0;z-index:2}
.acg-reloc .ar-close:hover{color:#fff;background:var(--accent);border-color:var(--accent);transform:scale(1.05)}
.acg-reloc .ar-fav{position:absolute;left:0;top:50%;transform:translateY(-50%);width:1.625rem;height:1.625rem;background:transparent;border:none;color:#D9A09B;font-size:1.125rem;cursor:pointer;line-height:1;display:flex;align-items:center;justify-content:center;transition:.15s;padding:0;flex-shrink:0}
.acg-reloc .ar-fav:hover{color:var(--accent);transform:scale(1.1)}
.acg-reloc .ar-fav.on{color:var(--accent)}
.acg-reloc .ar-meta{margin-top:0.375rem;font-size:0.7812rem;color:var(--text-dim);letter-spacing:.3px;font-family:'Songti SC','STSong','Source Han Serif SC',serif}
.acg-reloc .ar-meta strong{color:var(--accent);font-weight:600;font-family:'SF Pro Display',Arial,sans-serif;font-variant-numeric:tabular-nums}
/* 双盘并排：本命盘 vs 重置盘 */
.acg-reloc .ar-body-2col{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;align-items:start;padding-top:1rem}
.acg-reloc .ar-chart-cell{display:flex;flex-direction:column;gap:0.5rem;align-items:center}
.acg-reloc .ar-chart-label-row{display:flex;align-items:center;justify-content:center;gap:0.625rem;min-height:1.875rem}
.acg-reloc .ar-chart-label{font-family:var(--serif);font-size:0.75rem;letter-spacing:1.5px;color:var(--text-faint);font-weight:600;text-transform:none}
/* 优雅 outlined → 按钮：透明描边，hover 填充并右移，明显但不喧闹 */
.acg-reloc .ar-apply-icon{width:2rem;height:2rem;border-radius:50%;background:transparent;color:var(--accent);border:1.5px solid var(--accent);font-size:0.9375rem;font-weight:300;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;padding:0;transition:all .22s ease}
.acg-reloc .ar-apply-icon:hover{background:var(--accent);color:#fff;transform:translateX(0.1875rem);box-shadow:0 0.25rem 0.75rem rgba(204,120,92,.28)}
.acg-reloc .ar-svg-wrap{aspect-ratio:1/1;width:100%;max-width:23.75rem}
.acg-reloc .ar-svg-wrap svg{width:100%;height:100%;display:block}
@media (max-width:720px){.acg-reloc .ar-body-2col{grid-template-columns:1fr}}
/* （旧的 .acg-legend 抓地式 grid 布局已被上面的 narrow-rail 替代，删掉避免特异性冲突） */
/* SVG layers —— 深空主题：网格几乎不可见，只留有天文意义的线 */
#acg-canvas .acg-grid{stroke:#E8DDC4;stroke-width:0.10;fill:none;stroke-opacity:0.025;pointer-events:none}
#acg-canvas .acg-equator{stroke:#E8DDC4;stroke-width:0.20;fill:none;stroke-opacity:0.12;pointer-events:none}
#acg-canvas .acg-tropic{stroke:#B8987C;stroke-width:0.14;fill:none;stroke-dasharray:2,1.6;stroke-opacity:0.16;pointer-events:none}
/* 金箔感细边：极薄muted gold，给地图"裱框"感而非工程线条 */
#acg-canvas .acg-frame{stroke:#B89866;stroke-width:0.35;fill:none;pointer-events:none;opacity:0.5}
/* 真实地图层 —— 深空：陆地仅描边、不填充；国界更细 */
#acg-canvas .acg-world,#acg-canvas .acg-world *{pointer-events:none}
#acg-canvas .acg-world #world-land path{fill:none;stroke:rgba(232,225,210,0.42);stroke-width:0.16;stroke-linejoin:round}
#acg-canvas .acg-world #world-borders path{fill:none;stroke:rgba(232,225,210,0.16);stroke-width:0.12;stroke-linejoin:round;stroke-opacity:1}
/* 行星轨迹线：彩色描边线条作为画面唯一的"信号"；halo 改用深空底色 */
#acg-canvas .acg-line{fill:none;stroke-linecap:round;stroke-linejoin:round;pointer-events:stroke;opacity:0.95;cursor:pointer}
/* 双层描边：halo 用深空黑（在彩色线下方撑出对比） */
#acg-canvas .acg-line-halo{stroke:#000;stroke-width:0.95;opacity:0.7;pointer-events:none}
#acg-canvas .acg-line-mc{stroke-width:0.55}
#acg-canvas .acg-line-ic{stroke-width:0.45;stroke-dasharray:1.4,0.9}
#acg-canvas .acg-line-ac{stroke-width:0.55}
#acg-canvas .acg-line-dc{stroke-width:0.45;stroke-dasharray:1.4,0.9}
/* hover 高亮：matched 4 条粗 + 不透明，其余降到 .22 */
#acg-canvas[data-hover-planet] .acg-line{opacity:0.18}
#acg-canvas[data-hover-planet] .acg-line.acg-hover-on{opacity:1;stroke-width:0.7}
#acg-canvas[data-hover-planet] .acg-line.acg-hover-on.acg-line-ic,
#acg-canvas[data-hover-planet] .acg-line.acg-hover-on.acg-line-dc{stroke-width:0.55}
#acg-canvas .acg-paran{stroke-width:0.22;stroke-dasharray:0.6,0.4;opacity:0.65;pointer-events:none}
#acg-canvas .acg-line-ls{stroke-width:0.4;stroke-dasharray:0.4,0.5;opacity:0.85}
/* 今日天空幽灵线：极细、淡色、虚线短促，与本命厚线明显区分 */
#acg-canvas .acg-line-ghost{stroke-width:0.32;fill:none;stroke-dasharray:0.6,0.6;opacity:0.45;stroke-linecap:round;pointer-events:none}
/* 收藏抽屉 —— 右上角浮层 */
.acg-favs-panel{position:absolute;right:3.75rem;top:0.75rem;width:15rem;max-height:0;overflow:hidden;background:rgba(36,28,52,0.86);border:0 solid rgba(232,225,210,0.18);border-radius:0.625rem;backdrop-filter:blur(0.625rem);-webkit-backdrop-filter:blur(0.625rem);box-shadow:none;z-index:6;transition:max-height .25s,padding .25s,border-width .15s,box-shadow .25s;padding:0}
.acg-favs-panel.open{max-height:60vh;overflow-y:auto;padding:0.5rem 0.375rem;border-width:1px;box-shadow:0 0.5rem 1.75rem rgba(0,0,0,.55)}
.acg-favs-head{display:flex;justify-content:space-between;align-items:center;padding:0.25rem 0.625rem 0.5rem;font-size:0.6875rem;color:rgba(232,225,210,0.55);letter-spacing:1.5px;border-bottom:1px solid rgba(232,225,210,0.1);font-weight:600}
.acg-favs-close{background:none;border:none;color:rgba(232,225,210,0.5);font-size:1.125rem;cursor:pointer;line-height:1;padding:0 0.25rem}
.acg-favs-close:hover{color:#F0CFB8}
.acg-favs-row{display:flex;justify-content:space-between;align-items:center;padding:0.375rem 0.625rem;border-radius:0.375rem;transition:background .12s}
.acg-favs-row:hover{background:rgba(232,225,210,0.06)}
.acg-favs-name{flex:1;cursor:pointer;font-family:'Songti SC','STSong','Source Han Serif SC',serif;font-size:0.8125rem;color:#F0E5CC;letter-spacing:.5px}
.acg-favs-name:hover{color:#F0CFB8}
.acg-favs-del{background:none;border:none;color:rgba(232,225,210,0.3);font-size:0.875rem;cursor:pointer;padding:2px 0.375rem;line-height:1}
.acg-favs-del:hover{color:#E08577}

/* ===== ACG 手机/窄屏:左栏位置不动(竖排在左,同电脑端),按钮缩到更细小、贴近电脑端比例;
   23 个按钮一列在矮机型会超高切掉底部行星 → 左栏限高 + 可滑动兜底(装不下能滑到,永不切)。
   仅 iframe 内 ACG 全屏(body.embed.data-mapping)生效。 ===== */
@media (max-width:1100px){
  /* 左栏限到可用高度内,超出可纵向滑动(隐藏滚动条),底部行星永不被切 */
  body.embed.data-mapping .acg-rail{max-height:calc(100dvh - 5rem);overflow-y:auto;overflow-x:hidden;scrollbar-width:none}
  body.embed.data-mapping .acg-rail::-webkit-scrollbar{display:none}
  body.embed.data-mapping .acg-toolbar{width:2rem;padding:0.25rem 0.1875rem;gap:0.125rem}
  body.embed.data-mapping .acg-toolbar .acg-line-toggle{font-size:0.4375rem;padding:0.0625rem 0;border-radius:0.25rem}
  body.embed.data-mapping .acg-toolbar .acg-btn-restore{font-size:0.625rem}
  body.embed.data-mapping .acg-toolbar .acg-zoom-info{display:none}
  body.embed.data-mapping .acg-toolbar .acg-tool-sep{margin:1px 0}
  /* 行星图例改 2 列(12 颗→6 行),高度砍半,矮机型也能一次看全 12 行星 */
  body.embed.data-mapping .acg-legend{width:auto;padding:0.25rem 0.1875rem;gap:1px 2px;display:grid;grid-template-columns:repeat(2,1.125rem);justify-content:center}
  body.embed.data-mapping .acg-legend .acg-leg-row{min-height:0;padding:0.125rem 0;width:1.125rem}
  body.embed.data-mapping .acg-legend .acg-leg-sym{font-size:0.8125rem}
  body.embed.data-mapping .acg-zoom-bar{left:2.75rem;gap:0.1875rem}
  body.embed.data-mapping .acg-zoom-bar button{width:1.5rem;height:1.5rem;font-size:0.8125rem}
  body.embed.data-mapping .acg-zoom-bar button svg{width:0.6875rem;height:0.6875rem}
}
/* 羊皮纸主题 —— 暖奶油纸面 + 沉沉墨绿大陆，给"白天" / 古地图气质 */
.acg-canvas-wrap.acg-theme-parchment{background:radial-gradient(ellipse at 50% 45%, #F5EAD2 0%, #EDDFC0 60%, #DDC9A2 100%)}
.acg-canvas-wrap.acg-theme-parchment #acg-canvas .acg-grid{stroke:#7A5C3A;stroke-opacity:0.06}
.acg-canvas-wrap.acg-theme-parchment #acg-canvas .acg-equator{stroke:#7A5C3A;stroke-opacity:0.16}
.acg-canvas-wrap.acg-theme-parchment #acg-canvas .acg-tropic{stroke:#9C7B4F;stroke-opacity:0.16}
.acg-canvas-wrap.acg-theme-parchment #acg-canvas .acg-frame{stroke:#A07242;opacity:0.6}
.acg-canvas-wrap.acg-theme-parchment #acg-canvas .acg-world #world-land path{stroke:rgba(80,55,30,0.45);stroke-width:0.18}
.acg-canvas-wrap.acg-theme-parchment #acg-canvas .acg-world #world-borders path{stroke:rgba(80,55,30,0.22);stroke-width:0.12}
.acg-canvas-wrap.acg-theme-parchment #acg-canvas .acg-world g[id^="world-country-labels"] text{fill:rgba(70,45,20,0.7);stroke:rgba(245,234,210,0.7)}
.acg-canvas-wrap.acg-theme-parchment #acg-canvas .acg-world g[id^="world-city-labels"] text{fill:rgba(80,55,30,0.55);stroke:rgba(245,234,210,0.6)}
.acg-canvas-wrap.acg-theme-parchment #acg-canvas .acg-world g[id^="world-city-labels"] circle{fill:rgba(80,55,30,0.5)}
.acg-canvas-wrap.acg-theme-parchment #acg-canvas .acg-axis-label{fill:rgba(80,55,30,0.5)}
.acg-canvas-wrap.acg-theme-parchment #acg-canvas .acg-axis-tag{fill:rgba(80,55,30,0.7);stroke:rgba(245,234,210,0.7)}
.acg-canvas-wrap.acg-theme-parchment #acg-canvas .acg-edge-label{stroke:#F5EAD2}
.acg-canvas-wrap.acg-theme-parchment #acg-canvas .acg-edge-tag{stroke:#F5EAD2;fill:rgba(80,55,30,0.85)}
.acg-canvas-wrap.acg-theme-parchment #acg-canvas .acg-line-halo{stroke:#FAF1DC;opacity:0.85}
.acg-canvas-wrap.acg-theme-parchment #acg-canvas .acg-empty .acg-empty-title{fill:#5C4023}
.acg-canvas-wrap.acg-theme-parchment #acg-canvas .acg-empty .acg-empty-sub{fill:rgba(80,55,30,0.5)}
.acg-canvas-wrap.acg-theme-parchment #acg-canvas .acg-empty .acg-empty-mark{fill:#A07242}
.acg-canvas-wrap.acg-theme-parchment #acg-canvas circle[fill="#FFE9C9"]{display:none}
.acg-canvas-wrap.acg-theme-parchment .acg-pin-chip rect{fill:rgba(245,234,210,0.94);stroke:#A07242}
.acg-canvas-wrap.acg-theme-parchment .acg-pin-chip .acg-pin-name{fill:#5C4023}
.acg-canvas-wrap.acg-theme-parchment .acg-pin-chip .acg-pin-star{fill:#A07242}
/* 边缘行星标 —— 强制文本字形，避免 emoji 渲染（VS15 在 JS 里也会再追加一次保险） */
#acg-canvas .acg-edge-label{font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',serif;font-size:0.2125rem;font-weight:700;font-variant-emoji:text;text-rendering:geometricPrecision;dominant-baseline:central;paint-order:stroke;stroke:#1A1530;stroke-width:0.55;pointer-events:none}
/* 边标可点击：text 元素接收点击 → solo 这颗行星；hover 放大方便点 */
#acg-canvas .acg-edge-hit{cursor:pointer;transition:opacity .12s,transform .15s;transform-box:fill-box;transform-origin:center}
#acg-canvas .acg-edge-hit text{pointer-events:visiblePainted;cursor:pointer}
#acg-canvas .acg-edge-hit:hover{opacity:1;transform:scale(1.6)}
#acg-canvas .acg-edge-label-sm{font-size:0.175rem}
#acg-canvas .acg-edge-tag{font-family:'SF Pro Display','Helvetica Neue',Arial,sans-serif;font-size:0.15rem;font-weight:700;fill:currentColor;font-variant-emoji:text;letter-spacing:.4px;paint-order:stroke;stroke:#1A1530;stroke-width:0.5;pointer-events:none;opacity:0.95}
#acg-canvas .acg-axis-tag{font-family:'SF Pro Display','Helvetica Neue',Arial,sans-serif;font-size:0.15rem;font-weight:600;fill:rgba(232,225,210,0.78);paint-order:stroke;stroke:#1A1530;stroke-width:0.5;pointer-events:none}
#acg-canvas .acg-axis-label{font-family:'SF Pro Display','Helvetica Neue',Arial,sans-serif;font-size:0.1375rem;fill:rgba(232,225,210,0.55);pointer-events:none;font-weight:500;letter-spacing:.2px;paint-order:stroke;stroke:#1A1530;stroke-width:0.45}
/* 边缘标签 leader：用行星色 inline 描边，dashed 风格，多线场景不混淆 */
#acg-canvas .acg-edge-leader{stroke-width:0.18;fill:none;pointer-events:none;stroke-linecap:round;stroke-dasharray:0.8,0.6;opacity:0.65}
/* 中段徽章：纯 glyph + 暗描边（不用黑圆框，避免相邻 badge 互相黑圈遮挡） */
#acg-canvas .acg-mid-glyph{font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',serif;font-size:0.1875rem;font-weight:700;font-variant-emoji:text;text-rendering:geometricPrecision;dominant-baseline:central;paint-order:stroke;stroke:#1A1530;stroke-width:0.9;stroke-linejoin:round;cursor:pointer;transition:opacity .12s,transform .15s;transform-box:fill-box;transform-origin:center}
#acg-canvas .acg-mid-glyph:hover{opacity:1;transform:scale(1.6)}
#acg-canvas .acg-mid-axis{font-family:'SF Pro Display','Helvetica Neue',Arial,sans-serif;font-size:1.7px;font-weight:700;letter-spacing:.3px;dominant-baseline:central;paint-order:stroke;stroke:#1A1530;stroke-width:0.45;pointer-events:none;opacity:0.85}
#acg-canvas .acg-mid-badge{cursor:pointer}
#acg-canvas .acg-mid-badge:hover .acg-mid-glyph{transform:scale(1.6)}
#acg-canvas .acg-bg{fill:transparent}
/* 空状态：藏起所有控件，画面只剩温柔引导语 */
.acg-canvas-wrap.acg-empty-mode .acg-rail,
.acg-canvas-wrap.acg-empty-mode .acg-zoom-bar,
.acg-canvas-wrap.acg-empty-mode .acg-search{display:none}
/* 城市搜索框 —— 紫罗兰玻璃，紧贴左 rail 右侧 */
/* 搜索框：top-center；空闲时半透 → 让被它遮挡的 MC glyph 透出来。hover/focus 时立刻全色 */
.acg-search{position:absolute;left:50%;transform:translateX(-50%);top:0.625rem;display:flex;align-items:center;gap:0.5rem;padding:0 0.875rem;height:2.125rem;width:17.5rem;background:rgba(250,247,241,0.94);border:1.5px solid rgba(204,120,92,0.55);border-radius:1.0625rem;box-shadow:0 0.25rem 1.375rem rgba(204,120,92,0.18),0 2px 0.625rem rgba(0,0,0,0.35);z-index:6;opacity:1;transition:border-color .2s,box-shadow .2s,transform .15s}
.acg-search:hover{border-color:#CC785C;box-shadow:0 0.375rem 1.75rem rgba(204,120,92,0.32),0 2px 0.625rem rgba(0,0,0,0.35);transform:translateX(-50%) translateY(-1px)}
.acg-search:focus-within{border-color:#CC785C;box-shadow:0 0 0 0.1875rem rgba(204,120,92,0.18),0 0.375rem 1.75rem rgba(204,120,92,0.32)}
.acg-search-icon{color:#CC785C;font-size:0.9375rem;line-height:1;font-weight:600}
.acg-search input{flex:1;background:transparent;border:none;outline:none;color:#262624;font-family:inherit;font-size:0.8125rem;letter-spacing:.3px;padding:0;font-weight:500}
.acg-search input::placeholder{color:rgba(38,38,36,0.45);font-weight:400}
.acg-search-results{position:absolute;left:0;right:0;top:calc(100% + 0.375rem);max-height:17.5rem;overflow-y:auto;background:rgba(28,22,42,0.95);border:1px solid rgba(232,225,210,0.18);border-radius:0.625rem;backdrop-filter:blur(0.625rem);-webkit-backdrop-filter:blur(0.625rem);box-shadow:0 0.5rem 2rem rgba(0,0,0,.55);padding:0.375rem;z-index:7}
.acg-search-results .acg-search-row{padding:0.5rem 0.75rem;border-radius:0.375rem;cursor:pointer;color:rgba(232,225,210,0.85);font-size:0.7812rem;display:flex;justify-content:space-between;align-items:baseline;gap:0.625rem;letter-spacing:.3px;transition:background .12s}
.acg-search-results .acg-search-row:hover{background:rgba(232,225,210,0.08);color:#F0CFB8}
.acg-search-results .acg-search-row .acg-search-zh{font-family:'Songti SC','STSong','Source Han Serif SC',serif;font-size:0.8438rem;font-weight:500}
.acg-search-results .acg-search-row .acg-search-en{color:rgba(232,225,210,0.5);font-size:0.6875rem;font-style:italic}
.acg-search-results .acg-search-empty{padding:0.875rem;text-align:center;color:rgba(232,225,210,0.4);font-size:0.7188rem}
/* 行星线 / 交汇点 悬停弹卡 */
.acg-tooltip{position:absolute;pointer-events:none;background:rgba(28,22,42,0.95);border:1px solid rgba(232,225,210,0.2);border-radius:0.625rem;padding:0.6875rem 0.875rem 0.75rem;backdrop-filter:blur(0.625rem);-webkit-backdrop-filter:blur(0.625rem);box-shadow:0 0.5rem 1.75rem rgba(0,0,0,.55);z-index:9;min-width:11.25rem;max-width:16.25rem;transition:opacity .15s}
.acg-tooltip .acg-tip-head{display:flex;align-items:baseline;gap:0.5rem;margin-bottom:0.3125rem;border-bottom:1px solid rgba(232,225,210,0.14);padding-bottom:0.375rem}
.acg-tooltip .acg-tip-glyph{font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',serif;font-size:1.125rem;font-weight:700;font-variant-emoji:text;text-rendering:geometricPrecision}
.acg-tooltip .acg-tip-name{font-family:'Songti SC','STSong','Source Han Serif SC',serif;font-size:0.8125rem;color:#F0E5CC;font-weight:500}
.acg-tooltip .acg-tip-axis{margin-left:auto;font-size:0.625rem;color:rgba(232,225,210,0.5);letter-spacing:1.2px;font-weight:600}
.acg-tooltip .acg-tip-body{font-family:'Songti SC','STSong','Source Han Serif SC','PingFang SC',serif;font-size:0.7812rem;line-height:1.65;color:rgba(232,225,210,0.85);letter-spacing:.5px}
.acg-tooltip.acg-tip-cross .acg-tip-head{justify-content:flex-start}
/* 搜索 pin —— 点击直接弹重置盘（用精确坐标） */
#acg-canvas .acg-search-pin{transition:opacity .15s}
#acg-canvas .acg-search-pin .acg-search-pin-halo{transition:opacity .25s}
#acg-canvas .acg-search-pin:hover .acg-search-pin-halo{opacity:0.55}
/* SVG 交汇点徽章 —— 金色 ✦ */
#acg-canvas .acg-cross-mark{cursor:pointer;pointer-events:all}
#acg-canvas .acg-cross-mark .acg-cross-halo{fill:#E8B864;opacity:0.18;transition:opacity .15s}
#acg-canvas .acg-cross-mark:hover .acg-cross-halo{opacity:0.42}
#acg-canvas .acg-cross-mark .acg-cross-glyph{font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',serif;font-variant-emoji:text;font-size:0.1625rem;fill:#E8B864;text-anchor:middle;dominant-baseline:central;font-weight:700;paint-order:stroke;stroke:#1A1530;stroke-width:0.4}
/* 出生地 chip —— 金色小星 + 宋体名字（用户的"署名"） */
#acg-canvas .acg-pin-chip .acg-pin-star{font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',serif;font-size:2.0px;fill:#E8B864;font-variant-emoji:text;letter-spacing:0}
#acg-canvas .acg-pin-chip .acg-pin-name{font-family:'Songti SC','STSong','Source Han Serif SC','Noto Serif CJK SC','PingFang SC',serif;font-size:0.1313rem;font-weight:500;fill:#F0CFB8;letter-spacing:0.4px}
/* 空状态：温柔欢迎语，宋体衬线 + 极淡金 */
#acg-canvas .acg-empty text{font-family:'Songti SC','STSong','Source Han Serif SC','Noto Serif CJK SC','PingFang SC','Hiragino Sans GB',serif;text-rendering:geometricPrecision;letter-spacing:1.2px;pointer-events:none}
#acg-canvas .acg-empty .acg-empty-mark{font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',serif;font-size:0.4062rem;fill:#E8B864;font-variant-emoji:text;letter-spacing:0;opacity:0.85}
#acg-canvas .acg-empty .acg-empty-title{font-size:0.375rem;fill:#F0E5CC;font-weight:400;letter-spacing:2px}
#acg-canvas .acg-empty .acg-empty-sub{font-size:0.1875rem;fill:rgba(232,221,196,0.55);font-weight:300;letter-spacing:1px}
/* 国家 + 城市名按页面语言切换；ZH/EN 各两个 group 都在 SVG 里，CSS 控显隐 */
html:not([lang="en"]) #acg-canvas .acg-world #world-country-labels-en,
html:not([lang="en"]) #acg-canvas .acg-world #world-city-labels-en{display:none}
html[lang="en"] #acg-canvas .acg-world #world-country-labels-zh,
html[lang="en"] #acg-canvas .acg-world #world-city-labels-zh{display:none}
/* 地名层 —— 大幅降权：国名半透明米色，城市更暗；让线条成为唯一"彩色信号" */
/* 地图水墨幕布：保留暖白色（不冷不灰），透明度调到"看得清但不抢戏"的 sweet spot */
#acg-canvas .acg-world g[id^="world-country-labels"]{opacity:0.5}
#acg-canvas .acg-world g[id^="world-country-labels"] text{fill:rgba(232,225,210,0.85);font-size:1.95px;font-weight:500;stroke:rgba(10,14,24,0.7);stroke-width:0.4;paint-order:stroke}
#acg-canvas .acg-world g[id^="world-city-labels"]{opacity:0.32}
#acg-canvas .acg-world g[id^="world-city-labels"] text{fill:rgba(232,225,210,0.85);font-size:1.5px;font-weight:400;stroke:rgba(10,14,24,0.6);stroke-width:0.3;paint-order:stroke}
#acg-canvas .acg-world g[id^="world-city-labels"] circle{fill:rgba(232,225,210,0.6);stroke:none}
/* 飞机模式光标 —— 用 SVG data URL */
.acg-canvas-wrap.fly{cursor:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 24 24"><path fill="%23CC785C" stroke="%23FAF7F1" stroke-width="0.6" d="M12 2 L13.5 10 L22 11.5 L22 13 L13.5 13.5 L13 18 L15 19 L15 20 L12 19.5 L9 20 L9 19 L11 18 L10.5 13.5 L2 13 L2 11.5 L10.5 10 Z"/></svg>') 14 14, crosshair}
.ecl-icon{display:inline-block;font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',serif;font-variant-emoji:text;font-weight:700;font-size:0.9375rem}
.ecl-tag-total{color:#C5483F;font-weight:700}
.ecl-tag-partial{color:#C8923E;font-weight:600}
.ecl-tag-annular{color:#7B5E3C;font-weight:600}
@media (max-width:1100px){.bal-circles{grid-template-columns:repeat(3,minmax(0,1fr));gap:0.375rem}.phases-table{font-size:0.75rem}.phases-table th,.phases-table td{padding:0.375rem 0.25rem}}

/* 气质禀赋 */
:root{--tmp-S:#C8923E;--tmp-C:#C5483F;--tmp-M:#5E4B36;--tmp-P:#3F7A99}
.tmp-wrap{display:flex;flex-direction:column;gap:1.125rem}
.tmp-table{width:100%;border-collapse:collapse;font-size:0.8125rem;table-layout:fixed}
.tmp-table col.tmp-col-factor{width:30%}
.tmp-table col.tmp-col-detail{width:16%}
.tmp-table col.tmp-col-w{width:7%}
.tmp-table col.tmp-col-belong{width:9%}
.tmp-table col.tmp-col-type{width:9.5%}
.tmp-table th,.tmp-table td{padding:0.5rem 0.375rem;border-bottom:1px solid var(--border-lite,#f0e8df);text-align:center;vertical-align:middle}
.tmp-table th{font-weight:600;color:var(--text-dim);letter-spacing:.04em;font-size:0.75rem;background:#fafafa}
.tmp-table th.tmp-th-S{color:var(--tmp-S)}
.tmp-table th.tmp-th-C{color:var(--tmp-C)}
.tmp-table th.tmp-th-M{color:var(--tmp-M)}
.tmp-table th.tmp-th-P{color:var(--tmp-P)}
.tmp-table td.tmp-hit-S{background:rgba(200,146,62,.12);color:var(--tmp-S);font-weight:700}
.tmp-table td.tmp-hit-C{background:rgba(197,72,63,.12);color:var(--tmp-C);font-weight:700}
.tmp-table td.tmp-hit-M{background:rgba(94,75,54,.12);color:var(--tmp-M);font-weight:700}
.tmp-table td.tmp-hit-P{background:rgba(63,122,153,.12);color:var(--tmp-P);font-weight:700}
.tmp-table td.tmp-belong-S{color:var(--tmp-S);font-weight:600}
.tmp-table td.tmp-belong-C{color:var(--tmp-C);font-weight:600}
.tmp-table td.tmp-belong-M{color:var(--tmp-M);font-weight:600}
.tmp-table td.tmp-belong-P{color:var(--tmp-P);font-weight:600}
.tmp-table tfoot td{font-weight:800;font-size:0.875rem;background:#fafafa;border-bottom:0}
.tmp-table tfoot td.tmp-tot-S{color:var(--tmp-S)}
.tmp-table tfoot td.tmp-tot-C{color:var(--tmp-C)}
.tmp-table tfoot td.tmp-tot-M{color:var(--tmp-M)}
.tmp-table tfoot td.tmp-tot-P{color:var(--tmp-P)}
.tmp-table .tmp-factor{font-size:0.75rem;color:var(--text);white-space:nowrap;letter-spacing:0}
.tmp-table thead th:first-child,.tmp-table tbody td:first-child,.tmp-table tfoot td:first-child{text-align:left;padding-left:0.875rem}
.tmp-table td.tmp-detail-cell{font-size:0.7188rem;color:var(--text-dim);letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tmp-result{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0.625rem}
.tmp-card{padding:0.875rem 0.75rem;border:1px solid var(--border);border-radius:0.75rem;background:#fff;cursor:pointer;text-align:center;transition:border-color .15s,box-shadow .15s,transform .15s}
.tmp-card:hover{box-shadow:0 0.25rem 0.75rem rgba(0,0,0,.08);transform:translateY(-1px)}
.tmp-card[data-type=S]{border-top:0.1875rem solid var(--tmp-S)}
.tmp-card[data-type=C]{border-top:0.1875rem solid var(--tmp-C)}
.tmp-card[data-type=M]{border-top:0.1875rem solid var(--tmp-M)}
.tmp-card[data-type=P]{border-top:0.1875rem solid var(--tmp-P)}
.tmp-card[data-type=S].tmp-top{border-color:var(--tmp-S);background:rgba(200,146,62,.06)}
.tmp-card[data-type=C].tmp-top{border-color:var(--tmp-C);background:rgba(197,72,63,.06)}
.tmp-card[data-type=M].tmp-top{border-color:var(--tmp-M);background:rgba(94,75,54,.06)}
.tmp-card[data-type=P].tmp-top{border-color:var(--tmp-P);background:rgba(63,122,153,.06)}
.tmp-card .tmp-name{font-size:0.9375rem;font-weight:700;letter-spacing:1px;color:var(--text);margin-bottom:0.375rem}
.tmp-card[data-type=S] .tmp-name{color:var(--tmp-S)}
.tmp-card[data-type=C] .tmp-name{color:var(--tmp-C)}
.tmp-card[data-type=M] .tmp-name{color:var(--tmp-M)}
.tmp-card[data-type=P] .tmp-name{color:var(--tmp-P)}
.tmp-card .tmp-score{font-size:1.375rem;font-weight:800;color:var(--text);font-family:'Iowan Old Style',Georgia,serif;line-height:1.1}
.tmp-card .tmp-sub{font-size:0.7188rem;color:var(--text-dim);letter-spacing:.4px;margin-top:0.25rem}
.tmp-summary{font-size:0.875rem;line-height:1.7;color:var(--text);background:#fafafa;border-radius:0.625rem;padding:0.875rem 1rem}
.tmp-summary b{color:var(--accent);font-size:0.9375rem}
.tmp-summary .tmp-summary-hint{display:block;font-size:0.7188rem;color:var(--text-dim);margin-top:0.375rem;letter-spacing:.04em}
.tmp-detail{display:none;margin-top:0.875rem;padding:1.125rem 1.125rem;border:1px solid var(--border);border-radius:0.75rem;background:#fff;font-size:0.8438rem;line-height:1.85}
.tmp-detail.open{display:block}
.tmp-detail h4{margin:0 0 0.625rem;font-size:1.125rem;letter-spacing:1px}
.tmp-detail[data-type=S] h4{color:var(--tmp-S)}
.tmp-detail[data-type=C] h4{color:var(--tmp-C)}
.tmp-detail[data-type=M] h4{color:var(--tmp-M)}
.tmp-detail[data-type=P] h4{color:var(--tmp-P)}
.tmp-detail h5{margin:1.125rem 0 0.5rem;font-size:0.9062rem;color:var(--text);letter-spacing:2px;font-weight:800;border-bottom:1px solid var(--border-lite,#f0e8df);padding-bottom:0.375rem}
.tmp-detail h5::before{content:'';display:inline-block;width:0.1875rem;height:0.875rem;vertical-align:-2px;margin-right:0.5rem;background:var(--accent);border-radius:2px}
.tmp-detail[data-type=S] h5::before{background:var(--tmp-S)}
.tmp-detail[data-type=C] h5::before{background:var(--tmp-C)}
.tmp-detail[data-type=M] h5::before{background:var(--tmp-M)}
.tmp-detail[data-type=P] h5::before{background:var(--tmp-P)}
.tmp-detail ul{margin:0.25rem 0 0.25rem 1.125rem;padding:0}
.tmp-detail li{margin:0.1875rem 0}
.tmp-detail .tmp-kw{display:inline-block;padding:2px 0.625rem;border-radius:62.4375rem;font-size:0.75rem;margin:2px 0.25rem 2px 0}
.tmp-detail[data-type=S] .tmp-kw{background:rgba(200,146,62,.10);color:var(--tmp-S)}
.tmp-detail[data-type=C] .tmp-kw{background:rgba(197,72,63,.10);color:var(--tmp-C)}
.tmp-detail[data-type=M] .tmp-kw{background:rgba(94,75,54,.10);color:var(--tmp-M)}
.tmp-detail[data-type=P] .tmp-kw{background:rgba(63,122,153,.10);color:var(--tmp-P)}
.tmp-prop-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0.625rem 1.5rem;margin:0.375rem 0}
.tmp-prop-grid .tmp-prop{font-size:0.8125rem;display:grid;grid-template-columns:3rem 1fr;gap:0.625rem;align-items:start;line-height:1.7}
.tmp-prop-grid .tmp-prop b{color:var(--text-dim);font-weight:600;letter-spacing:1px;font-size:0.7812rem}
@media (max-width:1100px){.tmp-result{grid-template-columns:repeat(2,minmax(0,1fr))}.tmp-table{font-size:0.75rem}.tmp-table th,.tmp-table td{padding:0.375rem 0.1875rem}.tmp-prop-grid{grid-template-columns:1fr}}
.pf-panel-title{font-weight:700;font-size:0.9375rem;margin-bottom:1rem;color:var(--text);letter-spacing:0.3px}
.pf-panel-sub{font-size:0.75rem;color:var(--text-dim);font-weight:400;margin-left:0.5rem}
.pf-sub-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0.375rem 1.125rem}
.pf-sub-row{display:grid;grid-template-columns:3.25rem 1fr 2.25rem 2.5rem 1rem;align-items:center;padding:0.625rem 0.875rem;border-radius:0.5rem;gap:0.625rem;font-size:0.8125rem;transition:background .12s;border-bottom:1px solid rgba(0,0,0,.04)}
.pf-sub-row.clickable{cursor:pointer}
.pf-sub-row.clickable:hover{background:rgba(204,120,92,.06)}
.pf-sub-row.clickable:hover .pf-chev{color:var(--accent)}
.pf-sub-row.pf-sub-active{background:rgba(204,120,92,.10);box-shadow:inset 0 0 0 1px var(--accent);color:var(--accent);font-weight:700}
.pf-sub-row .pf-chev{color:var(--text-dim);font-size:1rem;font-weight:700;line-height:1;text-align:center;transition:color .12s}
.pf-sub-row>.pf-sub-idx{font-weight:700;color:var(--text);font-size:0.875rem;text-align:center}
.pf-sub-row>.pf-sub-range{font-family:Arial,sans-serif;color:var(--text);font-size:0.875rem;text-align:center;white-space:nowrap;letter-spacing:0.2px}
.pf-sub-row>.pf-sub-house{text-align:center}
.pf-sub-row>.pf-sub-sym{text-align:center;font-family:'StarCue Symbols','Apple Symbols','Noto Sans Symbols','Noto Sans Symbols 2',serif;font-size:1.125rem;font-weight:700;line-height:1}
.pf-sub-row.pf-sub-active>.pf-sub-range{color:var(--accent)}
.pf-sub-head{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0.375rem 1.125rem;margin-bottom:0.25rem}
.pf-sub-head-cell{padding:0.25rem 0.875rem 0.5rem;border-bottom:1px solid var(--border);font-weight:700;font-size:0.75rem;color:var(--text-dim);letter-spacing:0.5px;display:grid;gap:0.625rem;align-items:center}
.pf-sub-head-cell.m{grid-template-columns:1fr 2.25rem 2.5rem 1rem}
.pf-sub-head-cell.d{grid-template-columns:1fr 2.25rem 2.5rem}
.pf-sub-head-cell>div{text-align:center}
.pf-sub-row.pf-day{grid-template-columns:1fr 2.25rem 2.5rem}
.pf-sub-row.pf-day>.pf-sub-range{font-size:0.7812rem;white-space:nowrap;letter-spacing:0;font-variant-numeric:tabular-nums}
@media (max-width:1000px){.pf-sub-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:680px){.pf-sub-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Grid 2 col for return / compare tabs */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1.375rem}
@media (max-width:1100px){.grid-2{grid-template-columns:1fr}}

/* DM + 半球 · 单条 pill，内部无边框，仅靠留白与字重区分 */
.coord-row{display:flex;align-items:center;background:var(--bg-card);border:1px solid var(--border-strong);border-radius:0.375rem;padding:0 0.5rem;height:2.25rem;width:100%;min-width:0;box-sizing:border-box;transition:border-color .15s,box-shadow .15s}
.coord-row:focus-within{border-color:var(--accent);box-shadow:0 0 0 0.1875rem rgba(204,120,92,.12)}
.coord-row .coord-deg,.coord-row .coord-min,.coord-row .coord-sec{border:0;outline:none;background:transparent;color:var(--text);font-family:inherit;font-size:0.8125rem;padding:0;text-align:center;-moz-appearance:textfield;min-width:0;flex:1 1 0}
.coord-row input::-webkit-outer-spin-button,.coord-row input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.coord-row .coord-unit{color:var(--text-faint);font-size:0.75rem;margin:0 1px;font-family:Arial,sans-serif;flex:0 0 auto}
.coord-row .coord-hem{display:inline-flex;gap:0.25rem;margin:0 0.25rem;padding:0 0.25rem;border-left:1px solid var(--border);border-right:1px solid var(--border);height:1.125rem;align-items:center;flex:0 0 auto}
.coord-row .coord-hem .ch-btn{border:0;background:transparent;color:var(--text-faint);font-size:0.8125rem;font-family:inherit;cursor:pointer;letter-spacing:.5px;padding:0;line-height:1;transition:color .12s,font-weight .12s}
.coord-row .coord-hem .ch-btn.active{color:var(--accent);font-weight:700}
.coord-row .coord-hem .ch-btn:hover{color:var(--text)}
.coord-row .coord-hem .ch-btn.active:hover{color:var(--accent)}

/* scrollbar */
::-webkit-scrollbar{width:0.375rem;height:0.375rem}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:0.1875rem}

/* ══════════════════════════════════════ 手机端（≤48rem）整体适配 ══════════════════════════════════════
   设计语言：苹果 iOS 节奏 — 0.9375rem 正文、4/8/16/24 间距、2.75rem 触控、柔和阴影、克制描边。
   不重排 HTML，仅用 CSS 覆盖：让现有桌面布局在手机上呈现极简版本。 */
@media (max-width:768px){
  /* 整体微妙的"温暖纸感"底色 — 让手机端有别于桌面 */
  body{background:#F7F4ED}
  body.embed{background:#F7F4ED}
  html,body{font-size:0.9375rem;line-height:1.55;-webkit-text-size-adjust:100%}
  /* —— 顶栏：3rem 高，单行；隐藏英文副标 / 大按钮，只留 Logo + 必要导航 —— */
  header{padding:0.625rem 1rem;gap:0.75rem;border-bottom:1px solid var(--border);background:rgba(250,249,245,.92);backdrop-filter:saturate(180%) blur(0.75rem);-webkit-backdrop-filter:saturate(180%) blur(0.75rem)}
  .logo-group{flex-direction:row;align-items:baseline;gap:0.5rem;min-width:0;flex:1}
  .logo{font-size:1.0625rem;letter-spacing:.3px;white-space:nowrap;font-weight:500}
  .logo-en{display:none}
  .nav-right{gap:0.875rem;font-size:0.8125rem;white-space:nowrap;flex-shrink:0;color:var(--text-dim)}
  .nav-right a{font-size:0.8125rem}
  /* 顶栏的"修改出生信息 / 资料库"在手机上隐藏 — 已在卡片里有入口 */
  header .edit-btn,header .lib-btn{display:none}
  .btn-register{padding:0.3125rem 0.75rem;font-size:0.7812rem;border-radius:62.4375rem}
  /* —— 容器 / 主布局：单列堆叠，左右各 1rem —— */
  body.embed{font-size:0.9375rem}
  body .container,body.embed .container{padding:1rem 1rem 5rem;max-width:100%}
  .main-layout{display:flex;flex-direction:column;gap:1rem;grid-template-columns:none!important}
  .form-sidebar{order:-1;position:static!important;top:auto}
  .main-content{order:0}
  /* —— 卡片统一调号：圆角 16、阴影更明显、白底反衬温暖底 —— */
  .card,.subject-card,.form-card{background:#FFFFFF;border-radius:1rem;border:1px solid #ECE7DD;box-shadow:0 0.25rem 1rem rgba(20,15,10,.06),0 1px 2px rgba(20,15,10,.04);padding:1.25rem 1.125rem;margin-bottom:0.875rem}
  .card-title{font-size:1rem;letter-spacing:.3px;margin-bottom:0.75rem}
  .card-title-small{font-size:0.6562rem;letter-spacing:0.1562rem;margin-bottom:0.75rem}
  .section-title{font-size:0.9375rem;letter-spacing:1px;margin-bottom:0.75rem}
  /* —— 整合视图：主体卡 → 星盘 → 蒙太奇（手机端先看到生辰信息再看星盘） —— */
  .chart-integrated{display:flex;flex-direction:column;padding:0.875rem 0.75rem;gap:0.875rem;min-height:auto;grid-template-columns:none!important;grid-template-rows:none!important}
  .chart-integrated .ci-subject{order:1;width:100%;align-self:stretch;background:var(--bg-card);border:1px solid var(--border);border-radius:0.875rem;padding:1rem 1rem;box-shadow:0 1px 2px rgba(20,15,10,.025)}
  .chart-integrated .ci-chart{order:2;width:100%;min-width:0}
  /* 蒙太奇面板：手机端 toggle 与 aspect grid 之间留出更宽呼吸空间 */
  body .chart-integrated .ci-montage{order:3;width:100%;gap:1.375rem!important;margin-top:-0.375rem}
  /* —— ci-chart 内部排序（提高特异性以盖过桌面 .chart-integrated .ci-chart） —— */
  body .chart-integrated .ci-chart{display:flex!important;flex-direction:column!important;gap:0.875rem!important;align-items:stretch!important}
  body .chart-integrated .ci-chart > div:first-child{order:1!important;margin-bottom:0;width:100%;justify-content:center;display:flex}
  body .chart-integrated .ci-chart > .data-launcher{order:2!important;margin:0!important;width:100%}
  body .chart-integrated .ci-chart > .chart-date-bar{order:9!important;display:none!important}
  body .chart-integrated .ci-chart > #chart{order:3!important;margin-top:0.25rem}
  body .chart-integrated .ci-chart > #chart-square{order:3!important;margin-top:0.25rem}
  body .chart-integrated .ci-chart > .ci-timelord-side{order:8!important}
  /* 在主体卡内显示移动过来的 chart-date-bar；隐藏冗余的"2026-04-28 15:17:40"文本，只保留 select + ◀/▶/Now/↺ */
  body .ci-subject .chart-date-bar{display:flex!important;margin:0.625rem 0 0;justify-content:flex-start;align-items:center;gap:0.375rem;flex-wrap:wrap}
  body .ci-subject .chart-date-bar .cdb-date{display:none!important}
  /* —— 强制 chart-integrated 用 flex-column —— */
  body .chart-integrated{display:flex!important;flex-direction:column!important}
  /* 星盘优先（2026-06-16）：打开先看大星盘，出生卡/工具下移
     顺序：图盘类型tab → 星盘 → 出生信息卡 → 工具条 → 相位tab */
  body .chart-integrated > .mode-seg{order:0!important} /* 专业/简洁仍 absolute；order 不影响它 */
  body .chart-integrated > .ci-controlbar{order:1!important}
  body .chart-integrated > .ci-chart{order:2!important}
  body .chart-integrated > .ci-subject{order:3!important}
  body .chart-integrated > .data-launcher{order:4!important;position:static!important;width:100%!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;transform:none!important;display:flex!important;flex-direction:row!important;flex-wrap:wrap!important;justify-content:center!important;overflow:visible!important;gap:0.375rem;padding:0 2px;margin:0!important}
  body .chart-integrated > .ci-montage{order:5!important}
  body .chart-integrated > .ci-timelord-side{order:6!important}
  .chart-integrated .ci-chart svg{width:100%;max-width:none;max-height:88vw;aspect-ratio:1/1;margin:0 auto;display:block}
  .chart-integrated .ci-subject .subject-name{font-size:1.25rem;letter-spacing:.3px;margin-bottom:0.625rem}
  .chart-integrated .ci-subject .subject-meta{font-size:0.8125rem;line-height:1.85}
  .chart-integrated .ci-subject .subject-meta .label{min-width:3.75rem}
  .chart-integrated .ci-special{padding:0.875rem 1rem;font-size:0.8125rem;line-height:1.8;border-radius:0.75rem}
  .chart-integrated .ci-special .ci-special-title{font-size:0.875rem;letter-spacing:1.5px;margin-bottom:0.75rem}
  /* 模式切换 / 圆方盘 segmented：稍小但保持触控 */
  .mode-seg{margin-bottom:1rem}
  .mode-btn{font-size:0.8125rem;padding:0.625rem 0;letter-spacing:.04em}
  .ci-actions .rs-btn{padding:0.4375rem 1.125rem;font-size:0.7812rem}
  /* —— 蒙太奇 tabs（相位 / 状态 / 时主） —— */
  .ci-montage-tabs{font-size:0.8125rem}
  .ci-montage-tabs button{padding:0.4375rem 1rem}
  /* —— 主 Tab / 子 Tab：横滚，更柔和 —— */
  .tabs{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:0 2px;margin-top:0.375rem;border-bottom:1px solid var(--border);scrollbar-width:none}
  .tabs::-webkit-scrollbar{display:none}
  .tab-btn{padding:0.6875rem 0.875rem;font-size:0.9375rem;letter-spacing:.3px;flex-shrink:0;font-weight:600}
  .tabs.subtabs{padding:0 0.5rem}
  .tabs.subtabs .tab-btn{font-size:0.8125rem;padding:0.5rem 0.75rem;font-weight:500}
  /* —— 相位三角：横滚 + 单元格略放大保可读 —— */
  .ci-aspect,.bi-grid-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -0.25rem;padding:0 0.25rem}
  .asp-tri td{width:1.875rem;height:1.875rem;min-width:1.875rem;font-size:0.625rem}
  .chart-integrated .ci-aspect .asp-tri td{width:1.875rem;height:1.875rem;min-width:1.875rem;font-size:0.625rem}
  .asp-tri .asp-sym-lg,.chart-integrated .ci-aspect .asp-tri .asp-sym-lg{font-size:0.875rem}
  .asp-tri .asp-sym-red,.asp-tri .asp-sym-green,.asp-tri .asp-sym-blue,.asp-tri .asp-sym-brown,.asp-tri .asp-sym-gray{font-size:0.6875rem}
  .asp-tri .asp-orb,.chart-integrated .ci-aspect .asp-tri .asp-orb{font-size:0.5312rem}
  /* —— 表单卡 —— */
  .form-card{padding:1.125rem 0.875rem}
  .form-card .field{margin-bottom:0.875rem;gap:0.375rem;min-width:0}
  .form-card label{font-size:0.6562rem;letter-spacing:1.4px}
  /* iOS 原生 date/time 控件有内在最小宽度，需要 min-width:0 + max-width:100% 才不会撑出卡片 */
  .form-card input,.form-card select{padding:0.6875rem 0.75rem;font-size:1rem;border-radius:0.5rem;width:100%;max-width:100%;min-width:0;box-sizing:border-box;-webkit-appearance:none;appearance:none}
  .form-card input[type=date],.form-card input[type=time]{-webkit-appearance:none;appearance:none;text-align:left}
  .form-row-2{grid-template-columns:1fr;gap:0.75rem}
  .coord-row{height:2.875rem;padding:0 0.75rem}
  .gen-btn{width:2.25rem;height:2.25rem;font-size:1.125rem;border-radius:0.5rem;line-height:1;padding:0;display:inline-flex;align-items:center;justify-content:center;font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',serif;font-variant-emoji:text;text-align:center}
  .gen-btn::before,.gen-btn::after{content:none}
  .form-dst{padding:0.5625rem 0.75rem;font-size:0.8125rem;border-radius:0.5rem}
  .form-dst input{width:1rem;height:1rem}
  .btn-full{padding:0.8125rem;font-size:0.9375rem;border-radius:0.625rem;letter-spacing:.5px;font-weight:600}
  .btn-pair{padding:0.625rem 0;font-size:0.8438rem}
  .form-actions{gap:0.75rem}
  .btn-newchart,.btn-paste{padding:0.4375rem 1.125rem;font-size:0.7812rem}
  .form-adb-row{gap:0.75rem}
  .form-adb-row input,.form-adb-row button{padding:0.5625rem 0.875rem;font-size:0.8438rem}
  /* —— 数据表：紧凑但可读 —— */
  table{font-size:0.7812rem}
  th{font-size:0.625rem;letter-spacing:1px;padding:0.4375rem 0.3125rem}
  td{padding:0.5rem 0.3125rem}
  /* —— 设定弹层：全屏式 —— */
  .settings-overlay{padding:1.5rem 0.75rem 1.5rem;align-items:flex-start}
  .settings-popup{padding:1.375rem 1.125rem;border-radius:0.875rem;max-width:100%}
  .settings-popup .sp-close{top:0.5rem;right:0.625rem;font-size:1.375rem}
  .sp-title{font-size:0.6562rem;letter-spacing:0.1562rem;margin-bottom:1rem}
  .s-row{flex-direction:column;align-items:stretch;gap:0.5rem}
  .s-label{min-width:auto}
  /* —— 模态：iOS 全屏卡片化 —— */
  .modal-mask{padding:0;align-items:flex-end}
  .modal-panel{width:100%;max-height:92vh;border-radius:1.125rem 1.125rem 0 0;box-shadow:0 -0.5rem 1.875rem rgba(0,0,0,.15)}
  .modal-head{padding:1rem 1.125rem}
  .modal-head h3{font-size:1rem}
  .modal-body{padding:1rem 1.125rem}
  .modal-foot{padding:0.75rem 1.125rem;flex-wrap:wrap;gap:0.5rem}
  .modal-btn{padding:0.625rem 1.125rem;font-size:0.875rem;flex:1;min-width:0;border-radius:0.625rem}
  .modal-btn.primary{order:-1;flex:1 1 100%}
  /* 单条粘贴预览 */
  .single-preview-card{padding:0.875rem}
  .sp-row{font-size:0.875rem}
  .sp-row label{min-width:3.5rem;font-size:0.75rem}
  .sp-row input{font-size:1rem;padding:0.5625rem 0.625rem;border-radius:0.5rem}
  .sp-row-2{grid-template-columns:1fr;gap:0.625rem}
  /* —— 抽屉：从右切换为底部抽屉 —— */
  .data-drawer{top:auto;right:0;bottom:-100vh;width:100%;max-width:100%;height:88vh;border-left:0;border-top:1px solid var(--border);border-radius:1.125rem 1.125rem 0 0;padding:2.625rem 1.125rem 5rem;box-shadow:0 -0.5rem 1.875rem rgba(0,0,0,.12);transition:bottom .35s cubic-bezier(.2,.8,.2,1)}
  body.data-open.data-narrow .data-drawer,body.data-open.data-mid .data-drawer,body.data-open.data-wide .data-drawer{width:100%;max-width:100%;min-width:0;left:0;right:0}
  .data-drawer.open{right:0;bottom:0}
  .data-drawer-max{display:none}
  .data-drawer-close{top:0.625rem;right:0.75rem;width:2.375rem;height:2.375rem;font-size:1.375rem}
  .data-drawer-title{font-size:1.0625rem;letter-spacing:1px;margin-bottom:1.125rem;padding-bottom:0.75rem}
  /* —— 资料库 / 列表 —— */
  .lib-overlay{padding:0}
  /* —— 多列网格统一坍缩成单列（覆盖 ZR / RAA / Stars 等历史断点） —— */
  .zr-grid,.stars-parans #fixedstar-parans,.stars-grid,.datatab-grid,.bi-layout,.grid-3{grid-template-columns:1fr!important}
  .pf-sub-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:0.5rem}
  /* —— 星盘 SVG 默认限高（除整合视图） —— */
  svg#chart,svg#chart-square,svg#chart-sr,svg#chart-lr,svg#chart-comp,svg#chart-davison{max-height:75vh;width:100%}
  /* —— 焦点态:移动端时主信息做成底部弹出卡(bottom sheet),点行星即见,星盘仍在上方可见 —— */
  body.focus-active .chart-integrated{display:flex;flex-direction:column}
  body.focus-active .ci-timelord-side{
    position:fixed;left:0;right:0;bottom:0;z-index:60;margin:0;
    max-height:55vh;overflow-y:auto;background:var(--bg-card);
    border:1px solid var(--border);border-bottom:none;border-radius:1rem 1rem 0 0;
    padding:0.875rem 1.125rem 1.25rem;box-shadow:0 -0.5rem 1.5rem rgba(38,38,36,.18);
    animation:tlSheetUp .22s ease-out}
  @keyframes tlSheetUp{from{transform:translateY(100%);opacity:.4}to{transform:translateY(0);opacity:1}}
  /* —— 触控元素最小高度 2.75rem —— */
  button,.tab-btn,.gen-btn{min-height:2.25rem}
  .btn-full,.modal-btn.primary{min-height:2.75rem}
  /* —— 数据按钮组：手机端从右侧悬浮改为星盘下方一字排开 —— */
  /* 17 个功能按钮(盘面平衡/行星状态/特殊点/恒星/行运/太阳弧/关系盘…)原为单行横滚,
     手机上后 2/3 滚到屏外看不见 → 改换行平铺,全部一次露出,居中排列 */
  body .data-launcher,body.embed .data-launcher{display:flex!important;position:static!important;transform:none!important;flex-direction:row!important;flex-wrap:wrap!important;align-items:center;gap:0.375rem;margin:0!important;right:auto!important;top:auto!important;left:auto!important;bottom:auto!important;overflow:visible!important;scrollbar-width:none;justify-content:center;padding:0 2px;width:100%!important}
  body .data-launcher::-webkit-scrollbar{display:none}
  body .data-launcher button{width:auto;height:1.875rem;min-height:1.875rem;border-radius:62.4375rem;padding:0 0.6875rem;display:inline-flex;gap:0.3125rem;font-size:0.7188rem;color:var(--text-dim);font-family:inherit;font-weight:500;letter-spacing:.02em;background:#fff;border:1px solid var(--border);flex-shrink:0;white-space:nowrap}
  body .data-launcher button svg{width:0.8125rem;height:0.8125rem;flex-shrink:0}
  body .data-launcher .dl-label{position:static;transform:none;background:transparent;color:inherit;padding:0;font-size:0.7188rem;letter-spacing:.02em;opacity:1;pointer-events:auto;white-space:nowrap}
  body .data-launcher button.active{background:rgba(204,120,92,.12);color:var(--accent);border-color:var(--accent)}
  /* —— Tab 内"来源切换 + 标题"工具栏：手机端隐藏标题、toggle 左对齐、正文居中 —— */
  /* 隐藏标题 (法达 / 小限法 / 黄道释放 / 配置法 / 赤经上升 等) — 仅手机 */
  body .fd-title,body .zr-title,body .dist-title,body .raa-title{display:none!important}
  /* 配置法副标题（"主限向运 · 沿黄道推进..."）左对齐 */
  body .dist-subtitle{text-align:left!important;letter-spacing:0!important;line-height:1.55;margin-bottom:0.875rem}
  /* toggle 按钮紧凑 + nowrap 防中文被挤成竖排 */
  body .fd-toggle{flex-wrap:nowrap}
  body .fd-toggle .cm-btn{padding:0.3125rem 0.625rem!important;font-size:0.7188rem!important;letter-spacing:.3px!important;white-space:nowrap;line-height:1.3}
  /* 工具栏 grid 改为 flex column，toggle 左对齐，标题已隐藏，spacer 不重要 */
  body .card>div[style*="grid-template-columns:1fr auto 1fr"],
  body .zr-toolbar{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:0.625rem!important;grid-template-columns:none!important}
  /* 工具栏正文：表格/列表居中，提示行（点击任一行 / Level 2 行尾点）左对齐 */
  body #firdaria-wrap,body #profection-wrap,body .zr-grid,body .zr-legend,body #firdaria-info{text-align:center}
  body .fd2pf-hint{text-align:left!important;padding:0 2px}
  body .zr-info{text-align:left!important;padding:0 0.25rem;font-size:0.7188rem;line-height:1.7}
  /* 黄道释放：起点 + 福点四角 一行内不换行（星座符号紧贴） */
  body .zr-info>div{white-space:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  body .zr-info>div::-webkit-scrollbar{display:none}
  body .zr-info .zr-glyph{font-size:0.875rem}
  /* 黄道释放列表字体与按钮尺寸接轨 */
  body .zr-list{font-size:0.7188rem}
  body .zr-col-head{font-size:0.6875rem;letter-spacing:2px;padding:0 0.25rem 0.5rem}
  /* —— 小限法卡片：占满屏宽 + 等距 0.875rem —— */
  body .pf-wrap{flex-direction:column!important;flex-wrap:nowrap!important;gap:0.875rem!important;align-items:stretch!important}
  body .pf-box{max-width:none!important;min-width:0!important;width:100%!important;margin:0!important;flex:0 0 auto!important}
  /* —— 手机版的"克制"：把不必要的复杂度藏起来（提高特异性以胜过 body.embed 等） —— */
  /* 1) 经纬度手动输入（城市选择后自动定位） */
  body .form-card .coord-block,body.embed .form-card .coord-block{display:none!important}
  /* 2) "+ 新建星盘" 顶部按钮（刷新页面已是新盘） */
  body .form-card .form-top,body.embed .form-card .form-top{display:none!important}
  /* 3) ADB 名人库查询行（高级用户功能） */
  body .form-card .form-adb-row,body.embed .form-card .form-adb-row{display:none!important}
  /* 4) 时区 + 夏令时 同行紧凑 */
  .form-card .form-row-2{grid-template-columns:1.4fr 1fr;gap:0.625rem;align-items:end}
  /* 5) 一键输入按钮放大、贴近主按钮 */
  .form-paste-row{margin-top:0.875rem}
  .btn-paste{padding:0.5625rem 1.375rem;font-size:0.8125rem;letter-spacing:.06em}
  /* 6) 确定/保存 主按钮组：圆角更柔、留白更大 */
  .form-actions{margin-top:0.875rem;gap:0.625rem}
  .btn-pair{padding:0.8125rem 0;font-size:0.9375rem;font-weight:600;letter-spacing:.04em;border-radius:0.75rem}
  /* 7) 字段 label 字号略增、间距收紧 */
  .form-card .field{margin-bottom:0.875rem;gap:0.4375rem}
  .form-card label{font-size:0.6875rem;letter-spacing:1.2px;color:var(--text-faint);font-weight:600;text-transform:uppercase}
  /* 8) 整张表单卡更松弛 */
  .form-card{padding:1.375rem 1.125rem;border-radius:1rem}
}
/* —— 极窄屏（<25rem）微调，避免 logo / nav 拥挤 —— */
@media (max-width:400px){
  header{padding:0.625rem 0.75rem;gap:0.625rem}
  .logo{font-size:1rem}
  .nav-right{gap:0.6875rem;font-size:0.7812rem}
  .container{padding:0.875rem 0.75rem 5rem}
  .chart-integrated{padding:0.75rem 0.625rem;gap:0.75rem}
  .tab-btn{padding:0.625rem 0.75rem;font-size:0.875rem}
}

/* ════════════════════════════════════════════════
   Hellenistic · System of Hermes 面板样式
   ════════════════════════════════════════════════ */
.hell-wrap{display:flex;flex-direction:column;gap:1.125rem;padding:0.375rem 0.25rem 1.5rem;font-family:var(--ui-font,inherit)}

/* ── 时主 banner（保留）── */
.hell-tl-banner{display:flex;align-items:center;gap:0.875rem;padding:0.5rem 0.75rem;border-radius:0.625rem;background:rgba(204,120,92,0.05);border:1px solid rgba(204,120,92,0.18);flex-wrap:wrap}
.hell-tl-banner-label{display:flex;align-items:baseline;gap:0.625rem;flex-wrap:wrap;font-size:0.6875rem;color:var(--text-dim);letter-spacing:.18em;text-transform:uppercase;font-style:italic}
.hell-tl-banner-hint{font-size:0.6562rem;color:var(--text-dim);font-style:italic;letter-spacing:0;text-transform:none;font-weight:normal}
.hell-tl-pills{display:flex;gap:0.5rem;flex-wrap:wrap}
.hell-tl-pill{display:inline-flex;align-items:center;gap:0.25rem;padding:0.3125rem 0.375rem 0.3125rem 0.625rem;border:1px solid rgba(155,147,138,0.22);border-radius:62.4375rem;background:#fff;font-size:0.75rem;color:var(--text);transition:border-color .15s ease,color .15s ease,background-color .15s ease}
.hell-tl-pill:hover{border-color:var(--accent);color:var(--accent)}
.hell-tl-focus{display:inline-flex;align-items:center;gap:0.375rem;padding:0;border:0;background:transparent;color:inherit;font:inherit;cursor:pointer}
.hell-tl-focus:focus-visible,.hell-tl-open:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.hell-tl-tag{font-size:0.625rem;color:var(--text-dim);letter-spacing:.1em}
.hell-tl-pill .sym-pl{font-size:0.875rem;color:var(--accent)}
.hell-tl-sub{opacity:.75;font-size:0.75rem}
.hell-tl-house{font-size:0.6875rem;color:var(--text-dim);font-variant-numeric:tabular-nums}
.hell-tl-sign{font-size:0.8125rem;color:var(--text-dim)}
.hell-tl-pill.hell-tl-lb{border-color:var(--accent);background:rgba(204,120,92,0.07)}
.hell-tl-open{display:inline-flex;align-items:center;justify-content:center;width:1.125rem;height:1.125rem;border:none;background:transparent;border-radius:62.4375rem;font-size:0.625rem;color:var(--text-dim);cursor:pointer;margin-left:0.25rem;transition:all .12s}
.hell-tl-open:hover{background:rgba(204,120,92,0.12);color:var(--accent)}
.hell-zr-mini{display:inline-flex;align-items:center;justify-content:center;height:0.875rem;min-width:1.125rem;padding:0 0.25rem;border-radius:0.1875rem;font-size:0.5625rem;letter-spacing:.04em;font-weight:600;background:rgba(155,147,138,0.12);color:var(--text-dim);margin-left:2px}
.hell-zr-peak{background:rgba(204,120,92,0.85);color:#fff}
.hell-zr-pmed{background:rgba(204,120,92,0.55);color:#fff}
.hell-zr-pmin{background:rgba(204,120,92,0.32);color:#fff}
.hell-zr-pbase{background:rgba(95,127,107,0.55);color:#fff}
.hell-zr-lb{background:#C44536;color:#fff}
.hell-zr-co{background:#5A7FB5;color:#fff}
.hell-zr-fs{background:#8B6F47;color:#fff}

/* ── PNA · 7 行星卡片网格 ── */
.hell-pna-intro{font-size:0.7812rem;color:var(--text-dim);line-height:1.6;padding:0.375rem 0.25rem 0}
.hell-pna-academic{display:block;font-size:0.6562rem;color:rgba(155,147,138,0.7);font-style:italic;margin-top:0.1875rem;letter-spacing:.04em}
.hell-pna-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,29rem),1fr));gap:0.875rem}  /* 17.5rem 的下限会在 646px 宽的抽屉里排出两列，每格只剩 71px，六字标签必折行；29rem 是「11px 字号下标签放得下」的最小卡宽，实测按它排一列 / 两列都不折。 */
.hell-pna-card{display:flex;flex-direction:column;gap:0;padding:0;border:1px solid rgba(155,147,138,0.22);border-radius:0.875rem;background:#fff;overflow:hidden;transition:box-shadow .3s,border-color .3s}
.hell-pna-card.is-flash{border-color:var(--accent);box-shadow:0 0 0 0.1875rem rgba(204,120,92,0.18)}
.hell-pna-pos{margin-left:auto;font-size:0.7188rem;color:var(--text-dim)}
.hell-pna-12grid{width:100%;table-layout:fixed;border-collapse:collapse;font-variant-numeric:tabular-nums}
.hell-pna-12grid thead th{font-size:0.625rem;color:var(--text-dim);font-weight:normal;letter-spacing:.1em;padding:0.25rem 0;text-align:center}
.hell-pna-12grid tbody th{font-size:0.6875rem;color:var(--text-dim);font-weight:normal;text-align:left;padding:0.25rem 0.375rem 0.25rem 2px;width:3.125rem}
.hell-pna-cell{font-size:0.875rem;text-align:center;padding:0.1875rem 0;cursor:pointer}
.hell-pna-12grid td.na{font-size:0.6875rem;color:rgba(155,147,138,0.4);text-align:center}
.hell-pna-bar{height:0.3125rem;background:rgba(155,147,138,0.15);border-radius:62.4375rem;overflow:hidden}
.hell-pna-bar>span{display:block;height:100%;background:linear-gradient(90deg,#8B6F47,var(--accent));border-radius:62.4375rem}
.hell-pna-line{font-size:0.7188rem;color:var(--text-dim);line-height:1.5}
.hell-pna-line strong{color:var(--accent);font-variant-numeric:tabular-nums}
.hell-pna-tier2{font-size:0.6875rem}
.hell-pna-tier2 summary{color:var(--text-dim);cursor:pointer;list-style:none;padding:0.1875rem 0}
.hell-pna-tier2 summary::-webkit-details-marker{display:none}
.hell-pna-tier2 summary::before{content:'▸ ';font-size:0.5625rem;margin-right:0.1875rem}
.hell-pna-tier2[open] summary::before{content:'▾ '}
.hell-pna-tier2 ul{list-style:none;padding:0.375rem 0 0;margin:0;display:flex;flex-direction:column;gap:0.1875rem}
.hell-pna-tier2 li{font-size:0.6875rem;color:var(--text-dim);line-height:1.5}
.hell-pna-reason{color:rgba(155,147,138,0.85)}

/* ── 航海隐喻 · ship + roles + relations + tyrannical + hyleg-aside ── */
.hell-hermetics-intro{font-size:0.7812rem;color:var(--text-dim);line-height:1.6;padding:0.375rem 0.25rem 0}
.hell-ship-wrap{padding:0.5rem 0.25rem 0.25rem}
.hell-ship-svg{max-width:100%;width:100%;display:block;margin:0 auto}
.hell-ship-wrap{padding:0.5rem 0 0.75rem;background:linear-gradient(180deg,transparent 0%,rgba(95,127,181,0.04) 100%);border-radius:0.875rem}
.hell-ship-role{cursor:default}

.hell-relations{display:flex;flex-direction:column;gap:0.375rem;padding:0.625rem 0.875rem;background:rgba(155,147,138,0.04);border-radius:0.5rem}
.hell-rel-title{font-size:0.6562rem;letter-spacing:.18em;text-transform:uppercase;color:var(--text-dim);font-style:italic;font-family:'Copernicus','Tiempos Text',Georgia,serif}
.hell-rel-row{font-size:0.75rem;line-height:1.6;color:var(--text);padding:0.1875rem 0}
.hell-rel-row.hell-rel-ok{color:var(--text)}
.hell-rel-row.hell-rel-mid{color:var(--text-dim)}
.hell-rel-row.hell-rel-fail{color:rgba(196,69,54,0.85)}
.rel-aspect{font-family:'StarCue Symbols','Apple Symbols','Noto Sans Symbols','Noto Sans Symbols 2',sans-serif;font-variant-emoji:text;color:var(--accent);margin:0 2px}

.hell-tyrannical-row{font-size:0.75rem;color:#C44536;font-style:italic;padding:0.5rem 0.75rem;background:rgba(196,69,54,0.06);border-radius:0.5rem;border-left:0.1875rem solid #C44536}

.hell-roles{display:grid;grid-template-columns:repeat(auto-fit,minmax(17.5rem,1fr));gap:0.5rem}
.hell-role-chip{display:flex;align-items:center;gap:0.625rem;padding:0.5rem 0.75rem;border:1px solid rgba(155,147,138,0.2);border-radius:0.625rem;background:#fff;cursor:pointer;transition:all .15s;text-align:left;font-family:inherit;width:100%}
.hell-role-chip:hover{border-color:var(--accent);background:rgba(204,120,92,0.04)}
.hell-role-chip.is-empty{color:var(--text-dim);font-style:italic;cursor:default}
.hell-role-chip .role-name{font-size:0.6875rem;color:var(--text-dim);letter-spacing:.04em;min-width:6rem;font-family:'Copernicus','Tiempos Text',Georgia,serif}
.hell-role-glyph{font-size:1.125rem;color:var(--accent);line-height:1}
.hell-role-pname{font-size:0.8125rem;font-family:'Copernicus','Tiempos Text',Georgia,serif;color:var(--text)}
.hell-role-meta{margin-left:auto;font-size:0.6875rem;color:var(--text-dim)}
.hell-role-arrow{font-size:0.6562rem;color:var(--text-dim);padding-left:0.5rem;border-left:1px solid rgba(155,147,138,0.18)}

/* ── Hyleg / Alcocoden 独立侧栏（医疗占星层） ── */
.hell-hyleg-aside{padding:0.75rem 0.875rem;background:rgba(95,127,107,0.04);border-radius:0.5rem;border:1px dashed rgba(95,127,107,0.3);display:flex;flex-direction:column;gap:0.5rem}
.hell-aside-label{font-size:0.6562rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(95,127,107,0.85);font-style:italic;font-family:'Copernicus','Tiempos Text',Georgia,serif}
.hell-aside-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(13.75rem,1fr));gap:0.625rem}
.hell-aside-card{padding:0.5rem 0.75rem;background:#fff;border-radius:0.375rem;border:1px solid rgba(155,147,138,0.14)}
.hell-aside-role{font-size:0.6875rem;color:var(--text-dim);font-family:'Copernicus','Tiempos Text',Georgia,serif;margin-bottom:0.1875rem}
.hell-aside-content{font-size:0.7812rem;color:var(--text);line-height:1.5}
.hell-aside-content .sym-pl{color:var(--accent);font-size:0.875rem}

@media (max-width:760px){
  .hell-pna-grid,.hell-roles,.hell-aside-cards{grid-template-columns:1fr}
  .hell-ship-svg{max-width:100%}
  .hell-tl-banner{flex-direction:column;align-items:flex-start;gap:0.5rem}
}

/* Profection modal: PNA jump 按钮 */
.pf-pna-jump{display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;border:1px solid rgba(155,147,138,0.22);border-radius:62.4375rem;background:transparent;color:var(--text-dim);font-size:0.6875rem;cursor:pointer;line-height:1;transition:all .12s;padding:0}
.pf-pna-jump:hover{border-color:var(--accent);color:var(--accent);background:rgba(204,120,92,0.06)}

/* SR Hellenistic 视角卡 */
.hell-sr-card{padding:1rem 1.125rem;display:flex;flex-direction:column;gap:0.75rem}
.hell-sr-head{display:flex;align-items:baseline;justify-content:space-between;gap:0.625rem;flex-wrap:wrap;padding-bottom:0.375rem;border-bottom:1px solid rgba(155,147,138,0.14)}
.hell-sr-meta{font-size:0.7188rem;color:var(--text-dim);font-variant-numeric:tabular-nums}
.hell-sr-grid{display:flex;flex-direction:column;gap:0.875rem}
.hell-sr-section-label{font-size:0.6562rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);font-style:italic;font-family:'Copernicus','Tiempos Text',Georgia,serif;margin-bottom:0.375rem}
.hell-sr-row{display:flex;align-items:stretch;gap:0.625rem;flex-wrap:wrap}
.hell-sr-row-info{font-size:0.75rem;color:var(--text);align-self:center;padding:0 0.5rem}
.hell-sr-mini{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:6rem;padding:0.5rem 0.625rem;border:1px solid rgba(155,147,138,0.2);border-radius:0.625rem;background:transparent;cursor:pointer;transition:all .12s}
.hell-sr-mini:hover{border-color:var(--accent);background:rgba(204,120,92,0.04)}
.hell-sr-mini-role{font-size:0.625rem;color:var(--text-dim);letter-spacing:.05em}
.hell-sr-mini-glyph{font-size:1.375rem;color:var(--accent)}
.hell-sr-mini-name{font-size:0.75rem;font-family:'Copernicus','Tiempos Text',Georgia,serif}
.hell-sr-mini-ratio{font-size:0.6875rem;font-variant-numeric:tabular-nums}
.hell-sr-mini.hell-sr-card-empty{color:var(--text-dim);font-style:italic;justify-content:center}
.hell-sr-roles{font-size:0.75rem;color:var(--accent);font-style:italic;padding:0.375rem 0.625rem;background:rgba(204,120,92,0.05);border-radius:0.375rem}
.hell-sr-hint{font-size:0.6875rem;color:var(--text-dim);font-style:italic;line-height:1.6}
/* —— 右栏 launcher 按模式分组显隐 —— */
/* 默认（圆盘 / 90°盘 / 动态模式）：隐藏希腊化三按钮 + 希腊化分隔线 */
.data-launcher .dl-square-only{display:none}
/* 方盘模式：显示希腊化按钮 + 隐藏 dl-non-square（盘面平衡 / 气质禀赋 / 太阳弧 / 次限 / 关系盘） */
.data-launcher.mode-square .dl-square-only{display:flex}
.data-launcher.mode-square .dl-non-square{display:none}
/* 强制规则（绕过 body.data-open 的 !important）：基于 body 属性强制控制方盘 launcher 仅显示希腊化 项 */
body[data-chart-mode="square"] .data-launcher .dl-non-square{display:none!important}
body[data-chart-mode="square"] .data-launcher .dl-square-only{display:inline-flex!important}
/* 方盘 launcher 顺序重排（v5）：3 组 4-3-3 用 dividers 分隔
   组 1: 前判定 / 派别尊贵 / 特殊点 / 恒星
   组 2: PNA 分析 / 航海隐喻 / 主题分析
   组 3: 时主推运 / 回归盘 / 时主激活 */
body[data-chart-mode="square"] .data-launcher [data-dl="hell-considerations"]{order:1}
body[data-chart-mode="square"] .data-launcher [data-dl="hell-sect-dignities"]{order:2}
body[data-chart-mode="square"] .data-launcher [data-dl="lots"]{order:3}
body[data-chart-mode="square"] .data-launcher [data-dl="stars"]{order:4}
body[data-chart-mode="square"] .data-launcher .dl-divider.dl-divider-1{order:5;display:block!important}
body[data-chart-mode="square"] .data-launcher [data-dl="hell-pna"]{order:6}
body[data-chart-mode="square"] .data-launcher [data-dl="hell-hermetics"]{order:7}
body[data-chart-mode="square"] .data-launcher [data-dl="hell-topical"]{order:8}
body[data-chart-mode="square"] .data-launcher .dl-divider.dl-divider-2{order:9;display:block!important}
body[data-chart-mode="square"] .data-launcher [data-dl="prog"]{order:10}
body[data-chart-mode="square"] .data-launcher [data-dl="dyn-sr"]{order:11}
body[data-chart-mode="square"] .data-launcher [data-dl="hell-activation"]{order:12}

/* —— ACG 顶栏按钮：与圆盘/90°盘/方盘 同款 cm-btn 样式继承 —— */

/* —— PNA v3.3 调整：删除中间标题 + 帮助按钮移左上角 + 卡片头部居中 —— */
.hell-wrap{position:relative}
.hell-wrap{position:relative}
.hell-section-head{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:0.875rem;margin:0 0 0.875rem;padding:0}
.hell-section-title{font-size:1.125rem;font-family:'Copernicus','Tiempos Text',Georgia,serif;font-weight:600;color:var(--text);margin:0;letter-spacing:.04em;text-align:left}
.hell-pna-helpbtn{padding:0.375rem 0.875rem;border:1px solid rgba(155,147,138,0.35);border-radius:62.4375rem;background:rgba(255,255,255,0.95);font-size:0.75rem;color:var(--text);cursor:pointer;transition:all .15s;font-family:inherit;line-height:1;letter-spacing:.04em;box-shadow:0 1px 0.1875rem rgba(0,0,0,0.04);flex-shrink:0}
.hell-pna-helpbtn:hover{border-color:var(--accent);color:var(--accent);background:rgba(204,120,92,0.08)}
.hell-pna-aidpct{font-weight:500;color:var(--text-dim)}
.hell-pna-score{font-weight:650;color:var(--accent);letter-spacing:.02em}
.hell-pna-cell.is-raw .hell-pna-txt{margin-left:0}

/* PNA 卡片头部：行星符号 + 文字 居中放大；下面一行嵌行星+星座符号的一句话 */
/* PNA 卡片首行：醒目大标题 + 一句话总结。整块淡赤陶背景与卡片主体对比 */
.hell-pna-cardhead{display:flex!important;flex-direction:column!important;align-items:center;gap:0.375rem;padding:0.875rem 0.875rem 0.75rem;background:linear-gradient(180deg,rgba(204,120,92,0.07) 0%,rgba(204,120,92,0.02) 100%);border-bottom:1px solid rgba(204,120,92,0.18)}
.hell-pna-title{display:flex;align-items:center;justify-content:center;gap:0.625rem;line-height:1}
.hell-pna-title .hell-pna-glyph{font-size:1.875rem;line-height:1;font-weight:500}
.hell-pna-title .hell-pna-name{font-size:1.1875rem;font-family:'Copernicus','Tiempos Text',Georgia,serif;color:var(--text);font-weight:600;letter-spacing:.06em}
.hell-pna-cardhead .hell-pna-line{font-size:0.7812rem;line-height:1.55;color:var(--text);text-align:center;display:block;padding:0 0.25rem}
.hell-pna-cardhead .hell-pna-line .sym-pl{font-size:0.9375rem}
.hell-pna-cardhead .hell-pna-line .sym-sign{font-size:0.875rem}
.hell-pna-cardhead .hell-pna-line strong{color:var(--accent);font-variant-numeric:tabular-nums;font-weight:700;font-size:1.08em}
.hell-pna-card>.hell-pna-12grid{width:calc(100% - 1.75rem);margin:0.875rem 0.875rem 0.375rem}
.hell-pna-card>.hell-pna-tier2{margin:0 0.875rem 0.75rem}

/* PNA 帮助 modal — 标题居中，无斜体 */
.hell-help-modal{position:fixed;inset:0;background:rgba(38,38,36,0.55);display:none;align-items:center;justify-content:center;z-index:9999;padding:1.25rem}
.hell-help-modal.open{display:flex}
.hell-help-inner{background:#FAF9F5;border-radius:1rem;padding:2rem 2.25rem 1.75rem;max-width:42.5rem;max-height:90vh;overflow-y:auto;position:relative;box-shadow:0 1.25rem 3.75rem rgba(0,0,0,0.18)}
.hell-help-close{position:sticky;top:0;float:right;z-index:2;margin:-1rem -1.25rem 0.25rem 0.75rem;background:var(--bg-card);border:none;font-size:1.375rem;color:var(--text-dim);cursor:pointer;line-height:1;padding:0.25rem 0.5rem;border-radius:62.4375rem;transition:all .12s}
.hell-help-close:hover{background:rgba(155,147,138,0.12);color:var(--text)}
.hell-help-inner h3{font-family:'Copernicus','Tiempos Text',Georgia,serif;font-size:1.25rem;margin:0 0 0.75rem;color:var(--text);text-align:left}
.hell-help-inner h4{font-family:'Copernicus','Tiempos Text',Georgia,serif;font-size:0.875rem;margin:1.125rem 0 0.375rem;color:var(--accent);text-align:left}
.hell-help-inner p{font-size:0.8125rem;line-height:1.7;color:var(--text);margin:0.375rem 0;text-align:left}
.hell-help-inner ul{list-style:none;padding:0;margin:0.375rem 0;display:flex;flex-direction:column;gap:0.3125rem;text-align:left}
.hell-help-inner li{font-size:0.7812rem;line-height:1.65;color:var(--text);padding-left:0.875rem;position:relative;text-align:left}
.hell-help-inner li::before{content:'·';position:absolute;left:0.25rem;color:var(--accent);font-weight:600}
.hell-help-intro{color:var(--text-dim);font-size:0.7812rem;text-align:center}
.hell-help-foot{margin-top:1.5rem;padding-top:0.875rem;border-top:1px solid rgba(155,147,138,0.18);font-size:0.6875rem;color:var(--text-dim);text-align:center}

/* —— 方盘 wrapper：方盘 SVG 自然居中；圆盘按钮 absolute 紧贴方盘左 —— */
.ci-chart{position:relative}
.square-wrap{display:none;position:relative;max-width:36.5rem;margin:1.5rem auto 0;width:100%}
.square-wrap > svg{display:block;width:100%;height:auto;aspect-ratio:1/1}
.sq2c-btn{position:absolute;top:50%;right:100%;margin-right:1.875rem;transform:translateY(-50%);background:rgba(255,255,255,0.92);border:1px solid rgba(204,120,92,0.35);color:var(--accent);font-size:0.7812rem;padding:0.875rem 0.625rem;border-radius:0.875rem;cursor:pointer;box-shadow:0 0.25rem 0.875rem rgba(0,0,0,0.08);font-family:'Copernicus','Tiempos Text',Georgia,serif;backdrop-filter:blur(0.25rem);transition:all .15s;writing-mode:vertical-rl;letter-spacing:.18em;white-space:nowrap;z-index:5}
.sq2c-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent);transform:translateY(-50%) scale(1.04)}
/* 圆盘自动适配：min(列宽 100%, 视口高-6.25rem, 50rem 硬上限)
   - Mac Studio Display 5K (CSS ~1440 高) cap 在 50rem(800px)，避免大屏星盘失衡
   - 普通笔记本（CSS 高 800-1100）视口高决定（约 700-1000）
   - 窄屏列宽兜底（width:100%） */
.circle-wrap{position:relative;width:100%;max-width:min(calc(100vh - 3rem), 65rem);display:block;margin:0 auto;transition:max-width .15s;overflow:visible}
/* 三盘叠加启用：viewBox 1220，容器以 viewport 高度为准、留出顶/底呼吸；
   - 顶部 ~9rem 给 controlbar + chart-date-bar + 呼吸 10-20px
   - 底部 ~5rem 给 year-fortune-bar / 页脚 + 呼吸 10-20px
   - 直接收紧 svg#chart 的 max-height（覆盖 line 417 的 11.25rem 默认值）
   - 上限 60rem（约 960px），与本命双盘 65rem 相近，但因 viewBox 更大，行星符号视觉更大 */
body.dyn-tri-overlay .circle-wrap{max-width:min(calc(100vh - 16.5rem), 62rem)}
body.dyn-tri-overlay svg#chart{max-height:calc(100vh - 16.5rem)}
/* overflow:visible 让 AC/DC/MC/IC 标签即使超出 viewBox（-40..640）也不被裁切 */
.circle-wrap > svg{display:block;width:100%;height:auto;overflow:visible}
/* ci-chart / chart-integrated 也要不剪，否则 AC 标签靠左仍会被外层容器卡掉 */
.chart-integrated .ci-chart{overflow:visible}
.chart-integrated{overflow:visible}
/* ↺ 方盘 按钮：与 .sq2c-btn 对称，紧贴星盘左侧 1.875rem */
.circle-to-square-btn{display:none;position:absolute;top:50%;right:100%;left:auto;margin-right:1.875rem;margin-left:0;transform:translateY(-50%);z-index:5}
.circle-to-square-btn:hover{transform:translateY(-50%) scale(1.04)}
/* ↺ 方盘 按钮：仅在「预览圆盘」时显示（自然圆盘下隐藏，避免冗余） */
body[data-circle-preview="1"] .circle-to-square-btn{display:block!important}

/* —— 太阳-月亮相位带（行星状态 · 黄道分组下）—— */
.solar-phase-band{display:block;width:100%;padding:0.25rem 0}
.solar-phase-band svg text{font-variant-emoji:text}

/* —— 本年时主转运 timeline（方盘下方）—— */
.prof-loy-timeline{display:none;max-width:37.5rem;margin:0.875rem auto 0.5rem;padding:0.75rem 0.875rem;background:rgba(250,249,245,0.55);border:1px solid var(--border);border-radius:0.875rem}
.prof-loy-timeline .loy-head{margin-bottom:0.625rem;text-align:center}
.prof-loy-timeline .loy-title{font-size:0.7812rem;font-weight:600;color:var(--text);font-family:'Copernicus','Tiempos Text',Georgia,serif;letter-spacing:.04em;margin-bottom:0.1875rem}
.prof-loy-timeline .loy-sub{font-size:0.6875rem;color:var(--text-dim);font-family:'Copernicus','Tiempos Text',Georgia,serif}
.prof-loy-timeline .loy-sub .sym-pl{font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',serif;font-variant-emoji:text}
.prof-loy-timeline svg text{font-variant-emoji:text}
.prof-loy-timeline .loy-legend{display:flex;flex-wrap:wrap;gap:0.875rem;justify-content:center;margin-top:0.5rem;font-size:0.625rem;color:var(--text-dim);font-family:Arial}

/* —— 方盘中央：简约出生信息 —— */
.sqc-center{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;text-align:center;font-family:'Copernicus','Tiempos Text',Georgia,serif;color:var(--text);gap:0.1875rem;line-height:1.35;padding:0.25rem 0.375rem;box-sizing:border-box;overflow:hidden}
.sqc-center .sqc-name{font-size:0.875rem;font-weight:600;letter-spacing:.04em;color:var(--text);margin-bottom:2px;word-break:break-word}
.sqc-center .sqc-line{font-size:0.6562rem;color:var(--text-dim);word-break:break-word;hyphens:auto}
.sqc-center .sqc-tech{font-size:0.625rem;color:var(--text-faint);font-style:italic;margin-top:2px}

/* —— 本年运势按钮 + 弹窗 —— */
.year-fortune-bar{display:none;justify-content:center;align-items:center;max-width:35rem;margin:1.125rem auto 0.75rem;padding:0 0.5rem}
/* 双屏（数据浮卡打开）时隐藏「本年运势」胶囊，只在单屏方盘下保留 */
body:has(#data-drawer.open) #year-fortune-bar{display:none !important}
/* 双屏下 ↺ 方盘 / ↺ 圆盘 按钮固定在视口左侧（避免 absolute right:100% 把它推出屏幕） */
body:has(#data-drawer.open) .sq2c-btn{position:fixed !important;left:0.5rem !important;right:auto !important;margin-right:0 !important;top:50% !important;z-index:90 !important}
/* 双屏方盘（无预览）：方盘缩到 28rem（embed 下 ci-chart 仅 734px，35rem 与 102px 副卡列必撞）*/
body.data-open[data-chart-mode="square"]:not([data-circle-preview]) .square-wrap{max-width:28rem !important}
/* 双屏圆盘（无预览）：圆盘整体往左挪一点，给副卡留呼吸空间（↺方盘按钮已隐藏，左侧不再需要让位） */
body.data-open[data-chart-mode="circle"] .circle-wrap{transform:translateX(-3rem)}
/* 双屏方盘 + 预览圆盘：圆盘缩到 30rem，circle-wrap 微左移 1rem 避开副卡（transform 在 wrap 上让 ↺ 按钮跟着挪一些，但 1rem=17px 不会让按钮出卡） */
body.data-open[data-chart-mode="square"][data-circle-preview="1"] .ci-chart svg{max-width:min(30rem,36vw)!important}
body.data-open[data-chart-mode="square"][data-circle-preview="1"] .circle-wrap{transform:translateX(-1rem)}
/* 双屏 drawer 顶部与左侧 chart-integrated 卡顶对齐（standalone：top=6.6rem≈112px；embed：top=0，因 iframe 内无 header） */
body:has(#data-drawer.open) .data-drawer.open{top:6.6rem !important;height:calc(100vh - 6.6rem) !important;border-top-left-radius:0.625rem;padding-top:2rem !important}
body.embed:has(#data-drawer.open) .data-drawer.open{top:0 !important;height:100vh !important;padding-top:1.25rem !important}
.year-fortune-btn{padding:0.5rem 1.375rem;border-radius:62.4375rem;border:1px solid var(--accent);background:rgba(204,120,92,0.08);color:var(--accent);font-size:0.8125rem;font-family:'Copernicus','Tiempos Text',Georgia,serif;letter-spacing:.08em;cursor:pointer;transition:all .18s;font-weight:500}
.year-fortune-btn:hover{background:var(--accent);color:#fff;transform:translateY(-1px);box-shadow:0 0.25rem 0.875rem rgba(204,120,92,0.25)}
.year-fortune-modal{position:fixed;inset:0;background:rgba(38,38,36,0.55);backdrop-filter:blur(0.375rem);z-index:200;display:none;align-items:flex-start;justify-content:center;padding:3.75rem 1.5rem 2.5rem;overflow-y:auto}
.year-fortune-modal.open{display:flex}
.year-fortune-modal .yf-inner{background:#FAF9F5;border-radius:1.125rem;width:100%;max-width:62.5rem;padding:2.625rem 3.125rem 2.75rem;box-shadow:0 1.5rem 3.75rem rgba(0,0,0,0.18);position:relative}
/* 双栏 split：modal 仅占左半 viewport（drawer 默认 width 60vw，所以 modal 撑 40vw） */
/* 关键：把 modal 容器自身收缩到左 40vw，让 drawer 区域不被 modal mask 覆盖 */
.year-fortune-modal.split{inset:0 60vw 0 0;justify-content:stretch;align-items:stretch;padding:0;background:rgba(38,38,36,0.18)}
.year-fortune-modal.split .yf-inner{max-width:none;width:100%;border-radius:0;height:100vh;overflow-y:auto;padding:1.875rem 1.75rem 2rem;box-shadow:none;border-right:1px solid var(--border)}
.year-fortune-modal.split .yf-title{font-size:1.125rem;margin-bottom:1rem}
.year-fortune-modal.split .yf-section{margin-bottom:1.125rem}
.year-fortune-modal.split .yf-summary{font-size:0.8125rem;padding:0.625rem 0.875rem}
.year-fortune-modal.split .yf-timeline svg{max-width:100%}
.year-fortune-modal .yf-close{position:absolute;top:1.125rem;right:1.25rem;width:2.125rem;height:2.125rem;border-radius:50%;border:1px solid var(--border);background:rgba(0,0,0,.04);font-size:1.375rem;cursor:pointer;color:var(--text-dim);display:flex;align-items:center;justify-content:center;line-height:1;transition:all .15s}
.year-fortune-modal .yf-close:hover{color:var(--accent);border-color:var(--accent);background:rgba(204,120,92,.10)}
/* 返回按钮：仅在 split 模式显示，左上角 */
.year-fortune-modal .yf-back{display:none;position:absolute;top:1.125rem;left:1.25rem;padding:0.375rem 0.875rem;border-radius:62.4375rem;border:1px solid var(--border);background:rgba(0,0,0,.04);color:var(--text-dim);font-size:0.8125rem;cursor:pointer;font-family:'Copernicus','Tiempos Text',Georgia,serif;letter-spacing:.05em;transition:all .15s}
.year-fortune-modal .yf-back:hover{color:var(--accent);border-color:var(--accent);background:rgba(204,120,92,.10)}
.year-fortune-modal.split .yf-back{display:block}
.year-fortune-modal .yf-title{font-family:'Copernicus','Tiempos Text',Georgia,serif;font-size:1.5rem;font-weight:500;color:var(--text);text-align:center;margin:0 0 1.75rem;letter-spacing:.04em}
.year-fortune-modal .yf-section{margin-bottom:1.75rem}
.year-fortune-modal .yf-section:last-child{margin-bottom:0}
.year-fortune-modal .yf-pills{display:flex;justify-content:center;align-items:center}
.year-fortune-modal .yf-summary{text-align:center;font-size:1rem;color:var(--text);font-family:'Copernicus','Tiempos Text',Georgia,serif;letter-spacing:.02em;line-height:1.7;padding:0.875rem 1.25rem;background:rgba(155,147,138,0.06);border-radius:0.625rem}
.year-fortune-modal .yf-summary .yf-age{color:var(--accent);font-weight:600;font-size:1.1em}
.year-fortune-modal .yf-timeline{padding:0.5rem 0}
.year-fortune-modal .yf-timeline svg text{font-variant-emoji:text}
.year-fortune-modal .loy-legend{display:flex;flex-wrap:wrap;gap:1.125rem;justify-content:center;margin-top:0.625rem;font-size:0.75rem;color:var(--text-dim);font-family:Arial}

/* —— Lots 集合切换器 —— */
.lots-toggle{display:flex;gap:0.5rem;margin:0 0 0.625rem;padding:0}
.lots-tg-btn{padding:0.375rem 1rem;border-radius:62.4375rem;border:1px solid var(--border);background:transparent;color:var(--text-dim);font-size:0.7812rem;font-family:'Copernicus','Tiempos Text',Georgia,serif;letter-spacing:.04em;cursor:pointer;transition:all .15s}
.lots-tg-btn:hover{color:var(--accent);border-color:var(--accent)}
.lots-tg-btn.active{background:rgba(204,120,92,.12);color:var(--accent);border-color:var(--accent);font-weight:600}
.lots-set-note{font-size:0.7188rem;color:var(--text-dim);line-height:1.55;margin:0 0 0.875rem;padding:0.5rem 0.75rem;background:rgba(155,147,138,.05);border-radius:0.375rem;min-height:0}
.lots-set-note:empty{display:none}

/* —— Hellenistic v4 · 派别尊贵 + 前判定 —— */
.hell-section-title{font-family:'Copernicus','Tiempos Text',Georgia,serif;font-size:1.0625rem;font-weight:600;color:var(--text);margin:1.625rem 0 0.75rem;letter-spacing:.04em;text-align:center}
.hell-section-title:first-of-type{margin-top:0.375rem}
.hell-section-note{font-size:0.8438rem;color:var(--text-dim);line-height:1.75;margin:0.625rem 0 1.25rem;padding:0 0.25rem}
.hell-section-empty{font-size:0.875rem;color:var(--text-dim);padding:0.875rem;text-align:center;background:rgba(155,147,138,.06);border-radius:0.5rem}

/* A. Sect 四角色 */
.hell-sect-roles{display:grid;grid-template-columns:repeat(auto-fit,minmax(9.375rem,1fr));gap:0.625rem;margin:0.5rem 0 1rem}
.hell-sect-chip{display:flex;align-items:center;gap:0.625rem;padding:0.75rem 0.875rem;border:1px solid var(--border);border-radius:0.625rem;font-size:0.9062rem;background:#FAF9F5}
.hell-sect-chip .hell-sect-name{flex:1;color:var(--text);font-weight:500}
.hell-sect-chip .hell-sect-role{font-size:0.8125rem;letter-spacing:.05em;font-weight:600}

/* 尊贵表 — 7 等列，header + cell 中线对齐，行星列左对齐其余居中 */
.hell-dignity-tbl{width:100%;border-collapse:collapse;font-size:0.9062rem;margin:0.375rem 0 0.75rem;table-layout:fixed}
.hell-dignity-tbl th,.hell-dignity-tbl td{text-align:center;padding:0.6875rem 0.25rem;border-bottom:1px solid rgba(155,147,138,.18)}
.hell-dignity-tbl th{font-weight:600;color:var(--text-dim);font-size:0.8125rem;letter-spacing:.06em;border-bottom:1px solid var(--border);padding-top:0.625rem;padding-bottom:0.625rem}
.hell-dignity-tbl th:first-child,.hell-dignity-tbl td:first-child{text-align:left;padding-left:0.375rem}
.hell-dignity-tbl .hell-tbl-pl{font-weight:500}

/* C. Triplicity timeline */
.hell-tri-timeline{display:grid;grid-template-columns:repeat(3,1fr);gap:0.625rem;margin:0.375rem 0 0.25rem}
.hell-tri-seg{padding:0.875rem 0.625rem;background:rgba(204,120,92,.04);border:1px solid rgba(204,120,92,.15);border-radius:0.625rem;text-align:center}
.hell-tri-age{font-size:0.7188rem;color:var(--accent);font-weight:600;letter-spacing:.08em;margin-bottom:0.375rem}
.hell-tri-lord{font-size:1.6em;line-height:1;margin:0.25rem 0}
.hell-tri-name{font-size:0.8125rem;color:var(--text);font-weight:500;margin-top:0.25rem}
.hell-tri-role{font-size:0.6875rem;color:var(--text-dim);margin-top:2px}

/* E. Mutual Reception */
.hell-mr-list{display:flex;flex-direction:column;gap:0.375rem}
.hell-mr-row{display:flex;align-items:center;gap:0.625rem;padding:0.625rem 0.875rem;background:rgba(79,127,107,.06);border:1px solid rgba(79,127,107,.2);border-radius:0.5rem;font-size:0.8125rem}
.hell-mr-mid{color:#4F7F6B;font-weight:600;font-size:0.7188rem;letter-spacing:.06em}
.hell-mr-tag{flex:1;text-align:right;color:var(--text-dim);font-size:0.7188rem}

/* F. Antiscia 接触 */
.hell-ant-list{display:flex;flex-direction:column;gap:0.3125rem}
.hell-ant-row{display:flex;align-items:center;gap:0.625rem;padding:0.5rem 0.75rem;background:rgba(155,147,138,.06);border:1px dashed rgba(155,147,138,.4);border-radius:0.5rem;font-size:0.7812rem;color:var(--text)}
.hell-ant-kind{color:var(--text-dim);font-size:0.7188rem;font-weight:600;letter-spacing:.06em}
.hell-ant-arrow{color:var(--text-dim)}
.hell-ant-orb{margin-left:auto;color:var(--text-dim);font-size:0.7188rem;font-family:Arial}

/* B. Considerations */
.hell-cons-intro{font-family:'Copernicus','Tiempos Text',Georgia,serif;font-size:0.9375rem;color:var(--text);margin:0 0 0.75rem;letter-spacing:.03em}
.hell-cons-summary{display:flex;gap:0.5rem;margin:0.625rem 0 1.125rem;flex-wrap:wrap;align-items:center}
.hell-cons-help-btn{margin-left:auto}
.hell-cons-pill{padding:0.375rem 0.875rem;border-radius:62.4375rem;font-size:0.7812rem;font-weight:500;letter-spacing:.04em;border:1px solid var(--border)}
.hell-cons-pill.hell-cons-ok{background:rgba(79,127,107,.1);border-color:rgba(79,127,107,.3);color:#4F7F6B}
.hell-cons-pill.hell-cons-warn{background:rgba(204,120,92,.08);border-color:rgba(204,120,92,.3);color:var(--accent)}
.hell-cons-pill.hell-cons-bad{background:rgba(196,69,54,.08);border-color:rgba(196,69,54,.3);color:#C44536}
.hell-cons-list{display:flex;flex-direction:column;gap:0.375rem}
.hell-cons-row{display:flex;align-items:flex-start;gap:0.75rem;padding:0.6875rem 0.875rem;background:#FAF9F5;border:1px solid var(--border);border-radius:0.625rem}
.hell-cons-dot{flex-shrink:0;width:0.625rem;height:0.625rem;border-radius:50%;margin-top:0.3125rem}
.hell-cons-ok .hell-cons-dot{background:#4F7F6B}
.hell-cons-warn .hell-cons-dot{background:var(--accent)}
.hell-cons-bad .hell-cons-dot{background:#C44536}
.hell-cons-body{flex:1}
.hell-cons-title{font-weight:600;font-size:0.8438rem;color:var(--text);margin-bottom:0.1875rem}
.hell-cons-desc{font-size:0.7812rem;color:var(--text-dim);line-height:1.55}

/* —— Hellenistic v5 —— */
/* ④ Heliacal Phases band */
.hell-heliacal-band{display:flex;flex-direction:column;gap:0.5rem;margin:0.375rem 0 1.125rem}
.hell-heliacal-row{display:grid;grid-template-columns:7.5rem 1fr 13.75rem;gap:0.875rem;align-items:center;padding:0.375rem 0.625rem;background:rgba(155,147,138,.04);border-radius:0.5rem}
.hell-heliacal-pl{font-size:0.8125rem;color:var(--text);font-weight:500}
.hell-heliacal-bar{position:relative;height:0.875rem;background:#FAF9F5;border-radius:0.4375rem;border:1px solid var(--border);overflow:hidden}
.hell-heliacal-zone{position:absolute;top:0;height:100%}
.hell-heliacal-z-anatole{left:25%;width:21%;background:rgba(79,127,107,.18)}
.hell-heliacal-z-under{left:46%;width:8%;background:rgba(196,69,54,.22)}
.hell-heliacal-z-setting{left:54%;width:21%;background:rgba(90,127,181,.18)}
.hell-heliacal-z-acro-l{left:0;width:3%;background:rgba(184,134,46,.22)}
.hell-heliacal-z-acro-r{left:97%;width:3%;background:rgba(184,134,46,.22)}
.hell-heliacal-marker{position:absolute;top:-0.1875rem;width:0.25rem;height:1.25rem;border-radius:2px;background:currentColor;border:2px solid;transform:translateX(-50%);z-index:2}
.hell-heliacal-sun{position:absolute;top:-2px;width:2px;height:1.125rem;background:#B8862E;transform:translateX(-50%);opacity:.5;z-index:1}
.hell-heliacal-status{font-size:0.7188rem;display:flex;align-items:center;gap:0.375rem}
.hell-heliacal-status b{font-weight:600}
.hell-heliacal-deg{color:var(--text-dim);font-family:Arial;margin-left:auto}

/* ③ ZR mini timeline */
.hell-zr-mini-wrap{margin:0.5rem 0 0.875rem;padding:0.625rem 0.75rem 0.25rem;background:rgba(204,120,92,.04);border:1px solid rgba(204,120,92,.12);border-radius:0.625rem}
.hell-zr-mini-title{font-size:0.75rem;color:var(--text-dim);letter-spacing:.06em;margin-bottom:0.25rem;font-weight:500}
.hell-zr-timeline-svg{width:100%;height:auto;display:block}
.hell-zr-mini-legend{display:flex;flex-wrap:wrap;gap:0.875rem;font-size:0.6875rem;color:var(--text-dim);padding:0.375rem 0 0.25rem}
.hell-zr-mini-legend b{font-weight:700;margin-right:0.1875rem}

/* ① Topical 主题分析 */
.hell-topical-intro{display:flex;align-items:center;gap:0.75rem;font-family:'Copernicus','Tiempos Text',Georgia,serif;font-size:0.9375rem;color:var(--text);margin:0 0 0.875rem;letter-spacing:.03em}
.hell-topical-intro .hell-pna-helpbtn{margin-left:auto}
.hell-topical-chips{display:grid;grid-template-columns:repeat(4,1fr);gap:0.5rem;margin:0.375rem 0 1.125rem}
.hell-topical-chip{display:flex;align-items:center;gap:0.5rem;padding:0.75rem 0.875rem;border:1px solid var(--border);background:transparent;color:var(--text-dim);border-radius:0.5rem;font-size:0.875rem;cursor:pointer;transition:all .15s;font-family:inherit;white-space:nowrap}
.hell-topical-chip .hell-topical-h{font-size:0.6562rem;color:var(--text-dim);background:rgba(155,147,138,.12);padding:1px 0.3125rem;border-radius:0.25rem;font-family:Arial;font-weight:500}
/* 元素配色（火 #B85447 / 土 #6E7B5C / 风 #5A7A95 / 水 #735C8C）— 静态层 */
.hell-topical-chip[data-elem="fire"] {border-color:rgba(184,84,71,0.22);background:rgba(184,84,71,0.035)}
.hell-topical-chip[data-elem="earth"]{border-color:rgba(110,123,92,0.22);background:rgba(110,123,92,0.035)}
.hell-topical-chip[data-elem="air"]  {border-color:rgba(90,122,149,0.22);background:rgba(90,122,149,0.035)}
.hell-topical-chip[data-elem="water"]{border-color:rgba(115,92,140,0.22);background:rgba(115,92,140,0.035)}
.hell-topical-chip[data-elem="fire"]  .hell-topical-h{background:rgba(184,84,71,0.14);color:#B85447}
.hell-topical-chip[data-elem="earth"] .hell-topical-h{background:rgba(110,123,92,0.14);color:#6E7B5C}
.hell-topical-chip[data-elem="air"]   .hell-topical-h{background:rgba(90,122,149,0.14);color:#5A7A95}
.hell-topical-chip[data-elem="water"] .hell-topical-h{background:rgba(115,92,140,0.14);color:#735C8C}
/* hover：与元素同调加深；active：terracotta 主题色（用户当前选中清晰可辨） */
.hell-topical-chip[data-elem="fire"]:hover {border-color:#B85447;color:#B85447;background:rgba(184,84,71,0.08)}
.hell-topical-chip[data-elem="earth"]:hover{border-color:#6E7B5C;color:#6E7B5C;background:rgba(110,123,92,0.08)}
.hell-topical-chip[data-elem="air"]:hover  {border-color:#5A7A95;color:#5A7A95;background:rgba(90,122,149,0.08)}
.hell-topical-chip[data-elem="water"]:hover{border-color:#735C8C;color:#735C8C;background:rgba(115,92,140,0.08)}
.hell-topical-chip.active{background:rgba(204,120,92,.14)!important;color:var(--accent)!important;border-color:var(--accent)!important;font-weight:600}
.hell-topical-chip.active .hell-topical-h{background:rgba(204,120,92,.18)!important;color:var(--accent)!important}
/* 主题分析 — 4 层证据链卡片（refined: hairline 替代厚卡，留白驱动节奏） */
.hell-topical-layer-card{display:flex;gap:1rem;padding:1rem 0.25rem;margin:0;background:transparent;border:0;border-bottom:1px solid rgba(155,147,138,.14);border-radius:0;align-items:flex-start}
.hell-topical-layer-card:last-of-type{border-bottom:0}
.hell-topical-layer-num{flex-shrink:0;width:1.625rem;height:1.625rem;border-radius:50%;background:transparent;border:1.5px solid var(--accent);color:var(--accent);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:0.8125rem;font-family:'Copernicus','Tiempos Text',Georgia,serif;line-height:1;margin-top:0.125rem}
.hell-topical-layer-body{flex:1;min-width:0}
.hell-topical-layer-title{font-size:0.6875rem;color:var(--accent);font-weight:500;letter-spacing:.16em;margin-bottom:0.5rem;text-transform:uppercase;opacity:0.85}
.hell-topical-layer-content{font-size:0.875rem;color:var(--text);line-height:1.75}
.hell-topical-occ{display:inline-flex;align-items:center;gap:0.25rem;margin-right:0.625rem;color:var(--text)}
.hell-topical-empty{color:var(--text-dim);font-style:italic}
.hell-topical-tag{display:inline-block;padding:2px 0.5rem;border-radius:62.4375rem;font-size:0.6875rem;margin-left:0.375rem;border:1px solid currentColor;letter-spacing:.04em}
.hell-topical-tag-angular{color:#4F7F6B;border-color:rgba(79,127,107,.5)}
.hell-topical-lot-row{display:flex;align-items:center;gap:0.625rem;font-size:0.875rem}
.hell-topical-lot-name{font-weight:400}
.hell-topical-lot-deg,.hell-topical-lot-house{color:var(--text-dim);font-size:0.7812rem}
.hell-topical-sig{display:inline-flex;align-items:center;gap:0.3125rem;margin-right:0.875rem;cursor:pointer;color:var(--text);transition:color .15s}
.hell-topical-sig:hover{color:var(--accent)}
/* 综述：serif 引用块（首字凸 + 左侧细线）*/
.hell-topical-summary{margin-top:1.5rem;padding:1.125rem 1.25rem 1.125rem 1.5rem;background:rgba(204,120,92,.045);border-left:2px solid var(--accent);border-radius:0 0.5rem 0.5rem 0;font-size:0.9375rem;color:var(--text);line-height:1.85;font-family:'Copernicus','Tiempos Text',Georgia,serif;letter-spacing:.02em;font-style:normal;position:relative}
.hell-topical-summary::before{content:"";display:block;width:1.25rem;height:1px;background:var(--accent);opacity:.4;margin-bottom:0.625rem}

/* ② Activation 表（refined: 卡片包裹 + 圆角 + 命中高亮分级更细腻）*/
.hell-act-targets{display:flex;flex-wrap:wrap;align-items:center;gap:0.5rem;margin:0.5rem 0 1.25rem;padding:0.75rem 1rem;background:linear-gradient(180deg,rgba(204,120,92,.05),rgba(204,120,92,.02));border:1px solid rgba(204,120,92,.14);border-radius:0.625rem}
.hell-act-targets-label{font-size:0.6875rem;color:var(--accent);font-weight:600;letter-spacing:.16em;margin-right:0.375rem;text-transform:uppercase;opacity:0.85}
.hell-act-target-chip{display:inline-flex;align-items:center;gap:0.3125rem;padding:0.3125rem 0.6875rem;background:#fff;border:1px solid var(--border);border-radius:62.4375rem;font-size:0.75rem;color:var(--text);box-shadow:0 1px 0 rgba(0,0,0,0.02)}
.hell-activation-tbl{width:100%;border-collapse:separate;border-spacing:0;font-size:0.7812rem;margin:0.5rem 0 0.75rem;table-layout:fixed;background:#fff;border:1px solid rgba(155,147,138,.14);border-radius:0.625rem;overflow:hidden}
.hell-activation-tbl th,.hell-activation-tbl td{padding:0.625rem 0.375rem;text-align:center;border-bottom:1px solid rgba(155,147,138,.10)}
.hell-activation-tbl tr:last-child td{border-bottom:0}
.hell-activation-tbl th{font-weight:600;color:var(--accent);font-size:0.6562rem;letter-spacing:.16em;border-bottom:1px solid rgba(204,120,92,.18);background:rgba(204,120,92,.035);text-transform:uppercase}
.hell-activation-tbl th:first-child,.hell-activation-tbl td.hell-act-tr{text-align:left;padding-left:0.75rem}
.hell-activation-tbl tbody tr:hover td{background:rgba(204,120,92,.025)}
.hell-act-cell{color:var(--text-dim)}
.hell-act-cell-hit{background:rgba(204,120,92,.08);color:var(--accent);font-weight:500;border-radius:0.25rem;transition:background .15s}
.hell-act-cell-hit.hell-act-tight{background:rgba(204,120,92,.22);font-weight:700;box-shadow:inset 0 0 0 1px rgba(204,120,92,.35)}
.hell-act-cell-hit b{font-size:1.3em;display:block;line-height:1}

/* 双屏返回按钮（左上角）— 浅赤陶 pill，hover 加深 */
.dual-back-btn{display:none;position:absolute;top:1.5rem;left:3rem;background:rgba(204,120,92,0.12);border:1px solid rgba(204,120,92,0.55);color:var(--accent);font-family:inherit;font-size:0.6875rem;padding:0.25rem 0.6875rem 0.25rem 0.5625rem;border-radius:62.4375rem;cursor:pointer;letter-spacing:.05em;transition:all .15s ease-out;z-index:50;box-shadow:0 0.0625rem 0.25rem rgba(204,120,92,0.10);backdrop-filter:blur(0.25rem);align-items:center;gap:0.1875rem;line-height:1;font-weight:500;white-space:nowrap}
.dual-back-btn:hover{background:rgba(204,120,92,0.22);border-color:var(--accent);transform:translateX(-1px);box-shadow:0 0.125rem 0.375rem rgba(204,120,92,0.20)}
body.data-open .dual-back-btn{display:inline-flex}
.hell-act-orb{font-size:0.6562rem;color:var(--text-dim);font-family:Arial;letter-spacing:0}
.hell-act-tight .hell-act-orb{color:var(--accent)}
.hell-act-no{color:rgba(155,147,138,.5)}

/* Activation v6.1 · 可视化轮 + 4 时主卡 */
.hell-act-wheel{margin:0.5rem auto 0.875rem;max-height:35rem}
.hell-act-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:0.625rem;margin:0.375rem 0 1.125rem}
.hell-act-card{padding:0.875rem 1rem;background:#FAF9F5;border:1px solid var(--border);border-radius:0.75rem;cursor:pointer;transition:all .15s}
.hell-act-card:hover{border-color:var(--accent);box-shadow:0 2px 0.75rem rgba(204,120,92,.12)}
.hell-actc-head{display:flex;align-items:center;gap:0.5rem;margin-bottom:0.625rem;padding-bottom:0.5rem;border-bottom:1px solid var(--border)}
.hell-actc-role{font-size:0.6875rem;letter-spacing:.08em;color:var(--accent);background:rgba(204,120,92,.10);padding:2px 0.5rem;border-radius:62.4375rem;font-weight:600}
.hell-actc-name{font-weight:600;color:var(--text);font-size:0.875rem}
.hell-actc-body{display:flex;flex-wrap:wrap;gap:0.375rem;min-height:2rem;align-items:center}
.hell-actc-hit{display:inline-flex;align-items:center;gap:0.25rem;padding:0.3125rem 0.625rem;background:rgba(204,120,92,.10);border:1px solid rgba(204,120,92,.3);border-radius:62.4375rem;font-size:0.8125rem;color:var(--accent);cursor:pointer;transition:all .15s}
.hell-actc-hit:hover{background:rgba(204,120,92,.20)}
.hell-actc-hit b{font-size:1.1em}
.hell-actc-orb{font-size:0.6875rem;color:var(--text-dim);font-family:Arial}
.hell-actc-none{font-size:0.7812rem;color:var(--text-dim);font-style:italic}
.hell-actc-next{margin-top:0.625rem;font-size:0.75rem;color:var(--text-dim);padding:0.375rem 0.625rem;background:rgba(155,147,138,.06);border-radius:0.375rem}
.hell-actc-next b{color:var(--accent)}

.hell-act-details{margin-top:1.125rem;padding:0.5rem;background:rgba(155,147,138,.04);border:1px solid var(--border);border-radius:0.5rem}
.hell-act-details summary{cursor:pointer;padding:0.5rem 0.75rem;font-size:0.8125rem;color:var(--text-dim);font-family:'Copernicus','Tiempos Text',Georgia,serif;letter-spacing:.04em;outline:none}
.hell-act-details summary:hover{color:var(--accent)}
.hell-act-details[open] summary{margin-bottom:0.5rem;padding-bottom:0.5rem;border-bottom:1px solid var(--border)}

/* Activation v6 · 日期 picker + 月范围表 */
.hell-act-date-picker{display:flex;align-items:center;gap:0.375rem;margin:0.375rem 0 0.75rem;flex-wrap:wrap;justify-content:center;padding:0.5rem 0.75rem;background:rgba(204,120,92,.04);border-radius:0.625rem}
.hell-act-nav{padding:0.375rem 0.75rem;border:1px solid var(--border);background:#FAF9F5;color:var(--text-dim);border-radius:0.5rem;cursor:pointer;font-size:0.8125rem;font-family:inherit;transition:all .15s;letter-spacing:.04em}
.hell-act-nav:hover{border-color:var(--accent);color:var(--accent);background:rgba(204,120,92,.08)}
.hell-act-today{font-size:0.7812rem;background:rgba(204,120,92,.10);color:var(--accent);border-color:rgba(204,120,92,.4)}
.hell-act-date-input{padding:0.375rem 0.625rem;border:1px solid var(--border);background:#fff;border-radius:0.5rem;font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',inherit;font-size:0.8438rem;color:var(--text);outline:none;font-variant-numeric:tabular-nums;cursor:pointer}
.hell-act-date-input:focus{border-color:var(--accent)}

.hell-act-range-bar{display:flex;align-items:center;gap:0.625rem;margin:0.375rem 0 0.875rem;justify-content:center}
.hell-act-filter-bar{display:flex;align-items:center;gap:0.625rem;margin:0 0 0.875rem;justify-content:center;font-size:0.8125rem;color:var(--text-dim)}
.hell-act-filt{padding:0.375rem 0.625rem;border:1px solid var(--border);background:#fff;color:var(--text);border-radius:0.5rem;font-size:0.8125rem;font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',inherit;cursor:pointer;outline:none;font-variant-emoji:text}
.hell-act-filt:focus{border-color:var(--accent)}
.hell-act-range-label{font-size:0.8125rem;color:var(--text);font-family:'Copernicus','Tiempos Text',Georgia,serif;letter-spacing:.04em;font-variant-numeric:tabular-nums}
.hell-act-range-group{margin:0 0 1rem;padding:0.75rem;background:rgba(155,147,138,.04);border:1px solid var(--border);border-radius:0.625rem}
.hell-act-range-head{display:flex;align-items:center;gap:0.625rem;margin-bottom:0.5rem;padding-bottom:0.5rem;border-bottom:1px solid var(--border)}
.hell-act-rg-name{font-weight:600;color:var(--text);font-size:0.9062rem}
.hell-act-rg-count{margin-left:auto;font-size:0.7188rem;color:var(--text-dim);background:rgba(204,120,92,.08);padding:2px 0.5rem;border-radius:62.4375rem}
.hell-act-range-tbl{width:100%;border-collapse:collapse;font-size:0.8125rem}
.hell-act-range-tbl th{font-weight:600;color:var(--text-dim);font-size:0.7188rem;letter-spacing:.05em;text-align:left;padding:0.375rem 0.25rem;border-bottom:1px solid rgba(155,147,138,.2)}
.hell-act-range-tbl td{padding:0.5rem 0.25rem;border-bottom:1px solid rgba(155,147,138,.12);color:var(--text);vertical-align:middle}
.hell-act-range-row{cursor:pointer;transition:background .15s}
.hell-act-range-row:hover{background:rgba(204,120,92,.08)}
.hell-act-rg-aspect b{font-size:1.2em;margin-right:0.25rem;color:var(--accent)}
.hell-act-rg-window{color:var(--text-dim);font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',Arial;font-variant-numeric:tabular-nums;font-size:0.7812rem}
.hell-act-rg-exact b{color:var(--accent);font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',Arial;font-variant-numeric:tabular-nums}
.hell-act-rg-orb{margin-left:0.375rem;font-size:0.6562rem;color:var(--text-dim);font-family:Arial;letter-spacing:0}
.hell-act-lv{font-size:0.6875rem;padding:2px 0.5rem;border-radius:62.4375rem;font-weight:500;letter-spacing:.04em}
.hell-act-lv-tight{background:rgba(204,120,92,.20);color:var(--accent);font-weight:600}
.hell-act-lv-orb{background:rgba(204,120,92,.10);color:var(--accent)}
.hell-act-lv-whole{background:rgba(155,147,138,.12);color:var(--text-dim)}
.hell-act-row-tight td{font-weight:500}
.hell-act-row-whole td{opacity:.72}

/* ⑤ Unified LOY 卡 */
.hell-loy-unified-card{padding:0.875rem 1.125rem;margin-bottom:0.875rem;background:linear-gradient(135deg,rgba(204,120,92,.06),rgba(184,134,46,.04));border:1px solid rgba(204,120,92,.18);border-radius:0.625rem}
.hell-loy-tag{margin-left:0.625rem;font-size:0.6875rem;padding:2px 0.625rem;border-radius:62.4375rem;border:1px solid currentColor;font-weight:500;letter-spacing:.05em;font-family:inherit}
.hell-loy-row{display:flex;align-items:center;justify-content:center;gap:1.125rem;margin:0.625rem 0}
.hell-loy-eq{font-size:1.5rem;color:var(--text-dim);font-weight:300;font-family:Georgia,serif}
.hell-loy-narrative{font-size:0.875rem;color:var(--text);line-height:1.7;text-align:center;padding:0.625rem 0.875rem;background:rgba(255,255,255,.4);border-radius:0.375rem;font-family:'Copernicus','Tiempos Text',Georgia,serif}
.hell-loy-srinfo{text-align:center;font-size:0.7812rem;color:var(--text-dim);margin:0.25rem 0 0.625rem;font-family:'Copernicus','Tiempos Text',Georgia,serif}
.hell-loy-helpbtn{margin-left:0.625rem;font-size:0.6875rem;padding:2px 0.625rem}

/* —— 左 rail 格局点宿主（方盘模式）—— */
.left-rail-pattern-host{margin-top:0.875rem}
.left-rail-pattern-host #ci-pattern-group{display:block;padding:0.75rem 0.875rem;background:rgba(250,249,245,0.6);border:1px solid var(--border);border-radius:0.75rem}
.left-rail-pattern-host #ci-pattern-group .ci-special-title{font-size:0.6875rem;color:var(--text-faint);letter-spacing:.18em;text-transform:uppercase;margin-bottom:0.5rem;font-family:'Copernicus','Tiempos Text',Georgia,serif}

/* ===========================================================================
   相位表设计实验 · ?asp=1..5 切 5 套方案（共存 + URL 参数切换）
   缺省 (无 data-asp-style) → 走当前默认样式
   =========================================================================== */

/* --- 通用：5 套方案都需要的对角 glyph 重新可见 + 行标签紧贴 --- */
body[data-asp-style] .chart-integrated .ci-aspect .asp-tri td.asp-diag .asp-sym-lg{display:inline-block!important;line-height:1}
body[data-asp-style] .chart-integrated .ci-aspect .asp-tri th.asp-rowlbl{padding:0!important;text-align:right!important;padding-right:0!important}

/* === 方案 1 · 苹果实线极简 === */
body[data-asp-style="1"] .chart-integrated .ci-aspect .asp-tri td{border:1px solid rgba(0,0,0,0.18)}
body[data-asp-style="1"] .chart-integrated .ci-aspect .asp-tri td.asp-diag{border-bottom:1.5px solid rgba(0,0,0,0.32);border-right:1.5px solid rgba(0,0,0,0.32);background:transparent;overflow:visible;position:relative}
body[data-asp-style="1"] .chart-integrated .ci-aspect .asp-tri td.asp-diag .asp-sym-lg{margin-top:-0.65em;background:var(--bg);padding:0 0.15em;position:relative;z-index:2;color:var(--text)}
body[data-asp-style="1"] .chart-integrated .ci-aspect .asp-tri td.asp-cell::after{font-family:'SF Mono',ui-monospace,Menlo,monospace;font-variant-numeric:tabular-nums;letter-spacing:-0.04em;font-size:0.5625rem}

/* === 方案 2 · 日式版画极淡墨 === */
body[data-asp-style="2"] .chart-integrated .ci-aspect{background:#FAF7F0}
body[data-asp-style="2"] .chart-integrated .ci-aspect .asp-tri td{border:1px solid rgba(60,40,30,0.22);background:transparent}
body[data-asp-style="2"] .chart-integrated .ci-aspect .asp-tri td.asp-diag{background:transparent;border-top:1.5px solid #CC785C;border-left:1.5px solid #CC785C;overflow:visible;position:relative}
body[data-asp-style="2"] .chart-integrated .ci-aspect .asp-tri td.asp-diag .asp-sym-lg{position:absolute;top:-32%;left:50%;transform:translateX(-50%);font-size:1.4em;color:rgba(40,28,20,0.88);background:#FAF9F5;padding:0 3px;text-shadow:0 0 2px #FAF9F5;z-index:2}
body[data-asp-style="2"] .chart-integrated .ci-aspect .asp-tri th.asp-rowlbl .asp-sym-lg{color:rgba(40,28,20,0.78)!important;font-size:1.0625rem}
body[data-asp-style="2"] .chart-integrated .ci-aspect .asp-tri td.asp-cell::after{font-family:'Noto Serif CJK SC','Source Han Serif',serif;color:rgba(40,28,20,0.6);font-size:0.625rem}

/* === 方案 3 · 古典占星书排版 === */
body[data-asp-style="3"] .chart-integrated .ci-aspect .asp-tri{font-family:'Tiempos Text','Copernicus','Source Serif Pro',Georgia,serif}
body[data-asp-style="3"] .chart-integrated .ci-aspect .asp-tri td{border:0.5px solid rgba(26,26,26,0.32);background:transparent}
body[data-asp-style="3"] .chart-integrated .ci-aspect .asp-tri td.asp-diag{background:transparent;border-top:1.5px solid #CC785C;overflow:visible;position:relative}
body[data-asp-style="3"] .chart-integrated .ci-aspect .asp-tri td.asp-diag .asp-sym-lg{position:absolute;top:-0.85em;left:50%;transform:translateX(-50%);background:#FAF9F5;padding:0 3px;font-size:1rem;color:#1A1A1A;line-height:1;z-index:2}
body[data-asp-style="3"] .chart-integrated .ci-aspect .asp-tri th.asp-rowlbl{border-right:1.25px solid #1A1A1A!important}
body[data-asp-style="3"] .chart-integrated .ci-aspect .asp-tri th.asp-rowlbl .asp-sym-lg{color:#1A1A1A!important;letter-spacing:0.06em}
body[data-asp-style="3"] .chart-integrated .ci-aspect .asp-tri td.asp-cell::after{font-family:'Tiempos Text',Georgia,serif;font-style:italic;font-size:0.5625rem;color:#5A5550}

/* === 方案 4 · 建筑制图 hairline === */
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri{font-family:'Inter',system-ui,sans-serif;border-collapse:collapse}
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri td,body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri th{border:1px solid #2C3E50;background:transparent}
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri th.asp-rowlbl{border:0!important}
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri th.asp-rowlbl .asp-sym-lg{font-weight:500;font-size:1rem}
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri td.asp-diag{position:relative;background:transparent;overflow:visible}
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri td.asp-diag .asp-sym-lg{position:absolute;left:50%;top:0;transform:translate(-50%,-55%);background:#FAF9F5;padding:0 0.25rem;font-weight:500;color:#2C3E50;line-height:1;z-index:2}
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri td.asp-cell::after{font-family:'JetBrains Mono','SF Mono',monospace;font-size:0.5625rem;color:#2C3E50;letter-spacing:-0.02em;font-variant-numeric:tabular-nums}
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri .asp-sym-red,body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri .asp-sym-blue,body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri .asp-sym-green{font-weight:500!important;-webkit-text-stroke:0!important;text-shadow:none!important}

/* === 方案 5 · 石刻浅浮雕 === */
body[data-asp-style="5"] .chart-integrated .ci-aspect{background:#FAF6EE;padding:0.5rem 0.75rem}
body[data-asp-style="5"] .chart-integrated .ci-aspect .asp-tri td{border:1px solid #6B6051;background:#FAF6EE;box-shadow:inset 0 1px 0 rgba(0,0,0,0.06)}
body[data-asp-style="5"] .chart-integrated .ci-aspect .asp-tri th.asp-rowlbl .asp-sym-lg{color:#3A3228!important;text-shadow:0 1px 0 rgba(255,255,255,0.7)}
body[data-asp-style="5"] .chart-integrated .ci-aspect .asp-tri td.asp-diag{background:#F2EBDC;overflow:visible;position:relative}
body[data-asp-style="5"] .chart-integrated .ci-aspect .asp-tri td.asp-diag .asp-sym-lg{position:absolute;top:0;left:50%;transform:translate(-50%,-55%);text-shadow:0 1px 0 rgba(255,255,255,0.75),0 -0.5px 0 rgba(0,0,0,0.1);color:#3A3228;background:#FAF6EE;padding:0 3px;line-height:1;z-index:2}
body[data-asp-style="5"] .chart-integrated .ci-aspect .asp-tri td.asp-cell::after{color:#5A5042;font-size:0.625rem;letter-spacing:0}

/* ==========================================================================
   变体 4 精修（基于用户 9 点反馈，2026-05-11）
   ========================================================================== */

/* 1-3. Solar Fire 结构：CSS 隐藏 row 0 (Sun row)，太阳成"顶头"独立 glyph
       row 0 的唯一 cell（Sun-Sun 对角）变成独立顶头 Sun glyph，无边框 */
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri tr:first-child th.asp-rowlbl{visibility:hidden;height:0;padding:0}
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri tr:first-child td.asp-diag{border:0!important;background:transparent!important;height:auto;padding-bottom:0.125rem}
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri tr:first-child td.asp-diag .asp-sym-lg{position:static!important;transform:none!important;background:transparent!important;padding:0!important;display:block!important;text-align:left}

/* 2. 对角 glyph 上探更多（领奖台呼吸空间）：-55% → -85% */
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri td.asp-diag .asp-sym-lg{transform:translate(-50%,-85%)}

/* 4. 行星 glyph 加重（左列 + 对角） */
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri th.asp-rowlbl .asp-sym-lg,
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri td.asp-diag .asp-sym-lg{font-weight:700!important;font-size:1.1rem}

/* 5. 相位 glyph 加重，尤其刑（红）和冲（红） */
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri .asp-sym-blue,
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri .asp-sym-green,
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri .asp-sym-brown,
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri .asp-sym-gray{font-weight:700!important;font-size:0.9375rem!important}
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri .asp-sym-red{font-weight:900!important;font-size:1rem!important;-webkit-text-stroke:0.4px currentColor!important;text-shadow:none!important}

/* 6. 度数严格不溢出：font 0.5625rem → 0.5rem + 紧字距 */
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri td.asp-cell::after{font-size:0.5rem!important;letter-spacing:-0.04em!important}

/* 7. 左列行星贴右（紧贴 column 1 边线） */
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri th.asp-rowlbl{padding:0!important;text-align:right!important;padding-right:0!important;width:1.5rem!important;min-width:1.5rem!important}
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri th.asp-rowlbl .asp-sym-lg{display:inline-block;padding-right:1px;line-height:1}

/* 8. 相位/特殊/笔记 tab 文字居中 */
body[data-asp-style="4"] .ci-montage-tabs button{text-align:center!important}

/* ==========================================================================
   变体 4 v3 — 根据 image 52 修正（2026-05-11）
   1. 对角 cell 去边框 → 视觉上第 N 排只剩 N 个 bordered 数据格
   2. Sun 顶头居中（之前左对齐错了）
   3. 对角 glyph 不再上探，回到 cell 内同行 y（与左列 row label 同行）
   ========================================================================== */

/* Sun 顶头居中 */
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri tr:first-child td.asp-diag .asp-sym-lg{text-align:center!important;font-weight:700!important;font-size:1.1rem!important}

/* 所有对角 cell 去边框去底色 */
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri td.asp-diag{border:0!important;background:transparent!important;position:relative;overflow:visible}

/* 非 Sun 行的对角 glyph 回到 cell 内同行（不再 absolute / translate） */
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri tr:not(:first-child) td.asp-diag .asp-sym-lg{position:static!important;transform:none!important;background:transparent!important;padding:0!important;display:block!important;text-align:center!important;font-weight:700!important;font-size:1.1rem!important;line-height:1!important}

/* ==========================================================================
   变体 4 v4 — 4 项修正（2026-05-11）
   1. 左列 margin-right -1px 严格贴线
   2. 三合（绿）900+stroke；刑冲（红）1000+0.6px stroke 更重
   3. 对角 glyph 应用 --vk per-planet scale，与左列尺寸一致（修 Pluto/AC/MC）
   4. 配色 #2C3E50 → #1E1E1C 跟主盘和谐
   ========================================================================== */

/* 1. 左列贴线 */
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri th.asp-rowlbl .asp-sym-lg{padding-right:0!important;margin-right:-1px}

/* 2. 三合更重 */
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri .asp-sym-green{font-weight:900!important;font-size:1rem!important;-webkit-text-stroke:0.3px currentColor!important}
/* 刑冲（red）超重 */
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri .asp-sym-red{font-weight:1000!important;font-size:1.0625rem!important;-webkit-text-stroke:0.6px currentColor!important;letter-spacing:-0.5px!important}

/* 3. 对角 glyph 恢复 --vk scale + display:inline-block，与左列像素一致 */
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri tr:not(:first-child) td.asp-diag .asp-sym-lg{display:inline-block!important;transform:scale(var(--vk,1))!important;transform-origin:center!important}
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri td.asp-diag{text-align:center}

/* AC/MC 统一缩到 0.85x（无 pcol 类，默认 vk=1 偏大） */
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri .pcol-asc,body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri .pcol-mc{--vk:0.85}

/* 4. 配色和谐 #2C3E50 → #1E1E1C 跟站点 foreground 一致 */
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri td,body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri th{border-color:rgba(30,30,28,0.55)!important}
/* 颜色由 pcol-* 规则接管，此处不再统一灰 */
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri td.asp-cell::after{color:#3D3D3B!important}

/* ==========================================================================
   变体 4 v5 — 3 项修正（2026-05-11）
   1. 刑/冲(red) 字号再加大到 1.25rem + stroke 0.75px，对冲更显眼
   2. 左列严格贴线：margin-right -1px → -3px
   3. 对角 glyph 移到 cell 左下角，缩短与数据格的距离
   ========================================================================== */

/* 1. 红色相位(刑/冲) 加大 */
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri .asp-sym-red{font-size:1.25rem!important;-webkit-text-stroke:0.75px currentColor!important}

/* 2. 左列严格贴线 */
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri th.asp-rowlbl .asp-sym-lg{margin-right:-3px!important}

/* 3. 对角 glyph 偏向左下：text-align left + vertical-align bottom + padding-left 微调 */
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri tr:not(:first-child) td.asp-diag{text-align:left!important;vertical-align:bottom!important;padding-left:1px!important}
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri tr:not(:first-child) td.asp-diag .asp-sym-lg{vertical-align:bottom!important}

/* ==========================================================================
   变体 4 v6 — 几何重定位（2026-05-11）
   左列 glyph 锚 cell 底-右；对角 glyph 锚 cell 底-左；底 y 一致 → 平行
   D = 3px 呼吸空间，对称
   ========================================================================== */

/* 左列 row label glyph：position:absolute 锚右下角 */
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri th.asp-rowlbl{position:relative!important}
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri th.asp-rowlbl .asp-sym-lg{position:absolute!important;right:3px!important;bottom:3px!important;margin:0!important;padding:0!important;transform:scale(var(--vk,1))!important;transform-origin:bottom right!important}

/* 对角 glyph (非第一行)：position:absolute 锚左下角 */
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri tr:not(:first-child) td.asp-diag{position:relative!important;text-align:initial!important;vertical-align:initial!important;padding:0!important}
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri tr:not(:first-child) td.asp-diag .asp-sym-lg{position:absolute!important;left:3px!important;bottom:3px!important;margin:0!important;padding:0!important;transform:scale(var(--vk,1))!important;transform-origin:bottom left!important}

/* ==========================================================================
   变体 4 v7 — 微调（2026-05-11）
   1. 对角 glyph bottom:3px → bottom:0 严格贴 cell 底
   2. AC/MC --vk 0.85 → 1.0 跟其他行星等比
   ========================================================================== */
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri tr:not(:first-child) td.asp-diag .asp-sym-lg{bottom:0!important}
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri .pcol-asc,body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri .pcol-mc{--vk:1.0!important}

/* ==========================================================================
   变体 4 v8 — 4 项修正（2026-05-11）
   1. 对角 glyph 回到 bottom:3px 与列 glyph 严格同 y
   2. Sun 顶头：translateX(-50%) 居中到 grid 最左线
   3. AC/MC：列和对角统一 font-size 0.875rem，强制等大
   4. 特殊 tab .feat-item 每个胶囊独占一行
   ========================================================================== */

/* 1. 对角 glyph 同 y */
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri tr:not(:first-child) td.asp-diag .asp-sym-lg{bottom:3px!important}

/* 2. Sun 顶头居中到 grid 最左线 */
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri tr:first-child td.asp-diag{text-align:left!important;padding-left:0!important}
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri tr:first-child td.asp-diag .asp-sym-lg{display:inline-block!important;transform:translateX(-50%) scale(var(--vk,1))!important;transform-origin:center!important;position:relative!important}

/* 3. AC/MC 列+对角 强制等大 */
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri .pcol-asc,body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri .pcol-mc{font-size:0.875rem!important;--vk:1.0!important}

/* 4. 特殊 tab 胶囊每个一行 */
.chart-integrated .ci-special .feat-item{display:flex!important;width:fit-content!important;max-width:100%}

/* ==========================================================================
   变体 4 v9 — 几何保证对齐（2026-05-11）
   弃用 bottom:3px，改用 top:50% translateY(-50%) 数学保证 y 一致
   ========================================================================== */

/* 列 row label glyph: vertical center */
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri th.asp-rowlbl .asp-sym-lg{top:50%!important;right:3px!important;bottom:auto!important;transform:translateY(-50%) scale(var(--vk,1))!important;transform-origin:center right!important}

/* 对角 glyph: vertical center 同一 cell */
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri tr:not(:first-child) td.asp-diag .asp-sym-lg{top:50%!important;left:3px!important;bottom:auto!important;transform:translateY(-50%) scale(var(--vk,1))!important;transform-origin:center left!important}

/* ==========================================================================
   变体 4 v10 — 整表左移 + glyph 下移补偿（2026-05-11）
   ========================================================================== */

/* 1. 整张 asp-tri 左移 0.75rem，让 Sun 视觉接近 grid 中线
   ⛔ 不能再用负 margin：外层 .ci-montage-stage 是 overflow-x:hidden，往左拽出去的 12px
   会被直接切掉（实测表格左缘 x=37 / 容器左缘 x=51，行首那列符号缺一角，Mac 上也在切）。
   改成把容器整体往左挪同样距离，视觉位置不变但没有东西被裁。 */
body[data-asp-style="4"] .chart-integrated .ci-montage-stage{margin-left:-0.75rem}
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri{margin-left:0!important}

/* 1b. 单元格 30px 见方，符号与刻度全靠字体度量卡位；换一套回退字体（Windows 拿不到
   Inter/Apple Symbols）就会顶出格子糊到隔壁。锁住不外溢。 */
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri td.asp-cell{overflow:hidden}

/* 2. 列 + 对角 glyph 用 top:55% 视觉下移（补偿 Inter 字体 baseline 偏上） */
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri th.asp-rowlbl .asp-sym-lg{top:55%!important}
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri tr:not(:first-child) td.asp-diag .asp-sym-lg{top:55%!important}

/* ==========================================================================
   变体 4 v11 — 修裁切 + 加 cell 呼吸（2026-05-11）
   ========================================================================== */

/* 1. .ci-montage 默认 overflow:hidden 裁掉了左移的 row label，变体 4 改为 visible */
body[data-asp-style="4"] .ci-montage{overflow:visible!important}

/* 2. cell 高度 2.125 → 2.375rem 给相位 glyph + 度数多 4px 垂直呼吸 */
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri td{height:2.375rem!important;min-height:2.375rem!important;max-height:2.375rem!important}
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri th.asp-rowlbl{height:2.375rem!important}

/* ==========================================================================
   变体 4 v12 — 3 项修正（2026-05-11）
   1. 列+对角 glyph top:55% → 60% 再下移
   2. Sun 下移 translateY 20%
   3. .ci-montage min-height 锁死，防止切 tab 跳动
   ========================================================================== */

/* 1. 全部行星再下移 */
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri th.asp-rowlbl .asp-sym-lg{top:60%!important}
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri tr:not(:first-child) td.asp-diag .asp-sym-lg{top:60%!important}

/* 2. Sun 单独下拉 */
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri tr:first-child td.asp-diag .asp-sym-lg{transform:translate(-50%,20%) scale(var(--vk,1))!important}

/* 3. 切 tab 不跳：.ci-montage 锁 min-height + .ci-montage-stage 锁 min-height */
body[data-asp-style="4"] .ci-montage{min-height:28rem!important}
body[data-asp-style="4"] .ci-montage-stage{min-height:25rem!important}

/* ==========================================================================
   变体 4 v13 — tab 钉死（2026-05-11）
   .ci-montage-tabs absolute 锚 .ci-montage 顶；stage padding-top 给 tabs 让位
   切 tab 时 tabs 不动，下方 stage 内容紧贴 tab 下沿
   ========================================================================== */
body[data-asp-style="4"] .ci-montage{position:relative!important}
body[data-asp-style="4"] .ci-montage-tabs{position:absolute!important;top:0!important;left:0!important;right:0!important;z-index:5!important;background:var(--bg,#faf9f5)!important}
body[data-asp-style="4"] .ci-montage-stage{padding-top:2.5rem!important;min-height:25rem!important}

/* ==========================================================================
   变体 4 v14 — fix tab content 贴顶（2026-05-11）
   ========================================================================== */
body[data-asp-style="4"] .ci-montage{justify-content:flex-start!important}
body[data-asp-style="4"] .ci-montage-stage{flex:1 1 auto!important}

/* ==========================================================================
   变体 4 v15 — .ci-special / .ci-notes 强制 absolute 钉 tab 下沿
   ========================================================================== */
body[data-asp-style="4"] .ci-montage-stage .ci-special.active,
body[data-asp-style="4"] .ci-montage-stage .ci-notes.active{position:absolute!important;top:2.5rem!important;left:0!important;right:0!important;bottom:auto!important;margin:0!important}

/* 窄屏：覆盖 data-asp-style=4 的格子尺寸（必须在变体 4 规则之后定义才能赢） */
@media (max-width:1400px){
  body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri td,
  body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri th.asp-rowlbl{width:1.625rem!important;height:1.625rem!important;min-width:1.625rem!important;min-height:1.625rem!important;max-height:1.625rem!important;font-size:0.625rem!important}
  body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri{width:calc(1.625rem * 14)!important}
}

/* ==========================================================================
   2026-05-12 · 相位表正方格 + 行星 glyph 上色
   - 宽屏 cell 从 2.125×2.375 → 1.875×1.875 正方
   - 行星 glyph 恢复 pcol-* 真彩，覆盖 #2C3E50 / --text-dim 灰
   ========================================================================== */
@media (min-width:1401px){
  body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri td{width:2rem!important;height:2rem!important;min-width:2rem!important;min-height:2rem!important;max-height:2rem!important}
  body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri th.asp-rowlbl{width:2rem!important;height:2rem!important;min-width:2rem!important;min-height:2rem!important;max-height:2rem!important}
}
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri :is(td,th) .asp-sym-lg.pcol-sun{color:#C8722C!important}
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri :is(td,th) .asp-sym-lg.pcol-moon{color:#5C5C5E!important}
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri :is(td,th) .asp-sym-lg.pcol-mercury{color:#8E5BA3!important}
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri :is(td,th) .asp-sym-lg.pcol-venus{color:#2F8F7E!important}
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri :is(td,th) .asp-sym-lg.pcol-mars{color:#DD6F5C!important}
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri :is(td,th) .asp-sym-lg.pcol-jupiter{color:#4A4A4A!important}
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri :is(td,th) .asp-sym-lg.pcol-saturn{color:#8B3A3A!important}
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri :is(td,th) .asp-sym-lg.pcol-uranus{color:#7E84B3!important}
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri :is(td,th) .asp-sym-lg.pcol-neptune{color:#2F95A8!important}
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri :is(td,th) .asp-sym-lg.pcol-pluto{color:#8B3A3A!important}
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri :is(td,th) .asp-sym-lg.pcol-node{color:#1F1F1F!important}
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri :is(td,th) .asp-sym-lg.pcol-asc,
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri :is(td,th) .asp-sym-lg.pcol-mc{color:var(--accent)!important}

/* 2026-05-12 · tab 锁定 + MC 钉底 + cell 内更松 + glyph 阴影
   MC 必须底部对齐（用户死命令）；
   tab + grid 都 normal flow 浮在 montage 底部；
   stage min-height 锁死 = grid 高度，让切 tab 时 montage 不上下窜；
   special/notes 绝对定位 inset:0 over stage 区域，紧贴 tab 下方。
*/
/* safe：相位表正常贴底浮动；屏幕矮到放不下时回退顶对齐，不上溢盖住「资料库」按钮 */
body[data-asp-style="4"] .ci-montage{justify-content:safe flex-end!important;gap:0!important}
body[data-asp-style="4"] .ci-montage-tabs{position:static!important;background:transparent!important;flex:0 0 auto!important}
body[data-asp-style="4"] .ci-montage-stage{padding-top:0!important;min-height:468px!important;flex:0 0 auto!important;position:relative!important}
body[data-asp-style="4"] .ci-montage-stage .ci-special.active,
body[data-asp-style="4"] .ci-montage-stage .ci-notes.active{position:absolute!important;top:0!important;left:0!important;right:0!important;bottom:0!important;margin:0!important}
/* 相位格度数：压缩字号 + 收紧字距，不出格（含入/出相 S/A，6 字最长 9°13'A 留两边各 ~1.6px 余量） */
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri td.asp-cell::after{bottom:4px!important;font-size:0.45rem!important;letter-spacing:-0.075em!important}
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri td.asp-cell > span{position:absolute!important;top:3px!important;left:0!important;right:0!important;text-align:center!important;line-height:1!important;font-size:0.8125rem!important;padding:0!important;margin:0!important}
/* 阴影：相位符号 / 行星 glyph / 数字 / SA·SAN 等全部加 AstroGold 风格，参考 SVG planetShadow (dx 0.6 dy 1.4 blur 0.9 #000 0.32) */
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri td.asp-cell > span,
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri th.asp-rowlbl .asp-sym-lg,
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri td.asp-diag .asp-sym-lg{text-shadow:0.6px 1.4px 0.9px rgba(0,0,0,0.32)!important}
body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri td.asp-cell::after{text-shadow:0.5px 1px 0.8px rgba(0,0,0,0.28)!important}

/* 2026-05-12 · UI 文字的 text-shadow 已撤回（中文 sans 加阴影显脏），仅保留圆盘 SVG + 相位表 glyph 阴影 */

/* ==========================================================================
   2026-05-12 · bi-mat (SA / 次限 / 行运 / 回归 / 关系盘 双盘相位表) 全面对齐
   主圆盘 asp-tri v12 视觉：方格 + 行星 pcol- 真彩 + sym 绝对 top / orb 绝对 bottom +
   shadow planet-style + 干净细灰边
   ========================================================================== */
/* border-collapse:collapse — 让相邻 cell 共享单条 1px 边，消除 separate 模式下的双线模糊 */
table.bi-mat{border-collapse:collapse!important;border-spacing:0!important}
table.bi-mat td.bi-cell{width:2rem!important;height:2rem!important;min-width:2rem!important;border:1px solid rgba(0,0,0,0.06)!important;background:transparent!important;padding:0!important;position:relative!important}
table.bi-mat th.bi-rowax,table.bi-mat th.bi-colax,table.bi-mat th.bi-corner{width:2rem!important;height:2rem!important;border:0!important;background:transparent!important;padding:0!important}
table.bi-mat td.bi-cell.bi-empty{border:1px solid rgba(0,0,0,0.06)!important}

table.bi-mat td.bi-cell .bi-asp{position:absolute!important;top:3px!important;left:0!important;right:0!important;text-align:center!important;line-height:1!important;font-size:0.8125rem!important;display:block!important;margin:0!important;text-shadow:0.6px 1.4px 0.9px rgba(0,0,0,0.32)!important}
table.bi-mat td.bi-cell .bi-orb{position:absolute!important;bottom:4px!important;left:0!important;right:0!important;text-align:center!important;line-height:1!important;font-size:0.5rem!important;letter-spacing:-0.06em!important;display:block!important;margin:0!important;text-shadow:0.5px 1px 0.8px rgba(0,0,0,0.28)!important}

/* 行/列轴行星 glyph：颜色由 pcol-* 接管，加阴影 */
table.bi-mat .bi-rc-pl,table.bi-mat .bi-rc-lot,table.bi-mat .bi-rc-ax{text-shadow:0.6px 1.4px 0.9px rgba(0,0,0,0.32)!important;line-height:1!important}

/* 隔行底色去掉，与 asp-tri 一致干净 */
table.bi-mat tbody tr:nth-of-type(even) td.bi-cell{background:transparent!important}

/* 相位色背景压淡到极简（保留极淡识别，不抢戏） */
table.bi-mat td.bi-cell:has(.asp-sym-red){background:rgba(163,95,90,0.05)!important}
table.bi-mat td.bi-cell:has(.asp-sym-blue){background:rgba(90,107,160,0.05)!important}
table.bi-mat td.bi-cell:has(.asp-sym-green){background:rgba(79,132,106,0.04)!important}
table.bi-mat td.bi-cell:has(.asp-sym-brown){background:rgba(134,113,90,0.03)!important}
table.bi-mat td.bi-cell:has(.asp-sym-gray){background:transparent!important}

/* Apple 风 hover 浮卡：白底细线圆角阴影，纯 CSS 不影响线条清晰度 */
table.bi-mat td.bi-cell[data-tip]:hover::after{
  content:attr(data-tip);
  position:absolute;
  left:50%;bottom:calc(100% + 4px);
  transform:translateX(-50%);
  background:rgba(255,255,255,0.97);
  border:1px solid rgba(0,0,0,0.08);
  border-radius:6px;
  padding:5px 10px;
  font-size:0.6875rem;
  font-weight:500;
  color:var(--text);
  white-space:nowrap;
  z-index:30;
  box-shadow:0 4px 12px rgba(0,0,0,0.08),0 1px 3px rgba(0,0,0,0.06);
  pointer-events:none;
  letter-spacing:0.02em;
}

/* ============================================================
   Mobile · Phase 1（≤768px）
   策略：A 路线 —— 砍 90% 专业功能，保留核心 10% + 溢出修复
   保留：圆盘 + 时间调节器 + ci-subject + 行星/相位/笔记 + 资料库
   隐藏：90°盘/方盘/ACG + dial-expert-rail + 右侧 dock + pro-tabs 4 大组
        + Hellenistic 5 件套 + ACG 地图 + 关系盘 + 钉住工具
   仅 CSS，不动 HTML/JS，桌面 ≥769px 完全无变化
   ============================================================ */
@media (max-width: 768px) {
  /* —— 主容器：取消复杂 grid，单列垂直 —— */
  .container { padding: 0.75rem 0.875rem 6rem; max-width: 100%; }
  .main-layout {
    grid-template-columns: 1fr !important;
    gap: 0.75rem;
    min-width: 0;
  }
  /* flex/grid 子默认 min-width:auto=min-content，SVG 撑大它，必须强制 0 让它收缩 */
  .main-content,
  #results-area,
  .chart-integrated,
  .ci-chart,
  .ci-subject,
  .ci-montage,
  .ci-controlbar,
  .ci-aspect,
  .ci-special,
  .ci-notes,
  #asp-grid-content {
    min-width: 0 !important;
    max-width: 100% !important;
  }
  #chart, #chart-square {
    max-width: 100% !important;
    width: 100% !important;
    height: auto !important;
  }

  /* chart-integrated 桌面是 13.75rem aside + 1fr 主区的双列 grid
     mobile 砍成单列（排序由上方权威块 ~2107 的 order 控制）*/
  .chart-integrated {
    grid-template-columns: 1fr !important;
    grid-template-rows: auto auto auto !important;
    padding: 0.5rem !important;
    gap: 0.75rem !important;
    min-height: auto !important;
  }

  /* —— 整块隐藏：所有专业功能 ——
     用 body 前缀提升 specificity，覆盖 chart.css line 2080-2104 已有的
     "body .chart-integrated > .data-launcher{display:flex!important}" 等高优先级规则 */
  body .dial-expert-rail { display: none !important; }
  body .ci-pinned { display: none !important; }
  /* —— 右侧 13 工具栏 → 手机横滑标签条（JS 已把它挪进文流，夹在出生卡与星盘之间）—— */
  body .data-launcher,
  body .chart-integrated > .data-launcher,
  body .chart-integrated .ci-chart > .data-launcher,
  body.data-open .data-launcher,
  body.embed .data-launcher {
    display: flex !important;
    position: static !important;
    transform: none !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    /* 父容器是固定高 flex 纵列,不加 flex-shrink:0 会把多行按钮压回单行高度→溢出盖住下方标签 */
    flex-shrink: 0 !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    max-width: 100% !important;
    gap: 0.375rem !important;
    overflow: visible !important;
    scrollbar-width: none;
    height: auto !important;
    min-height: 2.375rem !important;
    padding: 0.25rem 0 !important;
    margin: 0 !important;
    z-index: auto !important;
  }
  body .data-launcher::-webkit-scrollbar { display: none; }
  /* 桌面是「收起图标轨，hover 展开标签」；手机无 hover → 强制每个 chip 显示 图标+文字 */
  .data-launcher button {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 0 !important;
    height: 2.25rem !important;
    padding: 0 0.75rem !important;
    gap: 0.3125rem !important;
  }
  .data-launcher .dl-label {
    width: auto !important;
    max-width: none !important;
    opacity: 1 !important;
    overflow: visible !important;
  }
  .data-launcher .dl-divider { width: 1px !important; height: 1.25rem !important; margin: 0 0.125rem !important; flex: 0 0 auto; }
  /* 资料库侧抽屉 640px 宽，关闭态 x=-256 仍泄漏进 390 视口右半部 */
  body:not(.data-open) #data-drawer { display: none !important; }
  body.data-open #data-drawer {
    left: 0 !important;
    right: 0 !important;
    width: 100vw !important;
    transform: none !important;
  }
  /* —— 撤销专业功能隐藏，手机=桌面完全同步 ——
     原本把 pro-tabs / 各 #tab-* 数据面板 / 小限弹窗 / 时主侧栏 / 流年条 / 双盘返回
     全 display:none，现交回桌面同款 JS/CSS 控制；面板宽内容用横滑兜底（不裁剪不挤压）。*/
  #pro-tabs,
  #pro-subtabs-tables,
  #pro-subtabs-prog-classic,
  #pro-subtabs-prog-modern,
  #pro-subtabs-relations { overflow-x: auto; scrollbar-width: none; }
  #pro-tabs::-webkit-scrollbar,
  #pro-subtabs-tables::-webkit-scrollbar { display: none; }
  /* drawer 内宽表格横滑兜底 */
  body.data-open #data-drawer .drawer-body,
  body.data-open #data-drawer { -webkit-overflow-scrolling: touch; }

  /* —— chart-mode-toggle：手机也显示全部 圆盘/方盘/90°盘/ACG，容器可横滑 —— */
  #chart-mode-dial90,
  #chart-mode-square,
  #chart-mode-acg { display: inline-flex !important; }
  #chart-mode-toggle.chart-mode-toggle {
    overflow-x: auto !important;
    max-width: 100%;
    scrollbar-width: none;
  }
  #chart-mode-toggle.chart-mode-toggle::-webkit-scrollbar { display: none; }

  /* —— ci-controlbar 桌面是 absolute 顶部漂浮，mobile 改 relative 流式 —— */
  .ci-controlbar {
    position: relative !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    height: auto !important;
    flex-direction: column;
    gap: 0.5rem;
    pointer-events: auto;
    padding: 0;
  }
  .ci-controlbar-pill {
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.375rem;
  }

  /* —— 时间调节器 dyn-cursor 紧凑化 —— */
  .dyn-cursor {
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.125rem !important;
  }
  .dyn-cursor .dc-btn {
    padding: 0.25rem 0.375rem !important;
    font-size: 0.75rem !important;
    min-width: 1.75rem;
  }
  /* 5 段精度按钮 ‹h ‹m m› h› 在 mobile 上太挤，藏起来；‹‹‹/‹‹/‹/›/››/››› + 日期输入 + 「今」保留 */
  .dyn-cursor .dc-btn-fine { display: none !important; }

  /* —— ci-subject 紧凑卡片 —— */
  .ci-subject {
    grid-column: 1 !important;
    grid-row: 1 !important;
    padding: 0.5rem 0.25rem !important;
  }
  .ci-subject .subject-name { font-size: 1rem; }
  .ci-subject .subject-meta { font-size: 0.75rem; }

  /* —— ci-actions 横排紧凑 —— */
  .ci-actions {
    margin-top: 0.5rem !important;
    gap: 0.25rem !important;
    flex-wrap: wrap !important;
    justify-content: center;
  }
  .ci-actions .rs-btn {
    font-size: 0.75rem !important;
    padding: 0.375rem 0.625rem !important;
  }

  /* —— ci-chart 满宽 —— */
  .ci-chart {
    grid-column: 1 !important;
    grid-row: 2 !important;
    width: 100%;
  }
  .ci-chart #chart,
  .ci-chart #chart-square {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: none !important;
  }
  .circle-wrap,
  .square-wrap { width: 100% !important; }

  /* —— ci-montage 满宽，tabs 横滑 —— */
  .ci-montage {
    grid-column: 1 !important;
    grid-row: 3 !important;
  }
  .ci-montage-tabs {
    overflow-x: auto;
    scrollbar-width: none;
    justify-content: flex-start !important;
    gap: 0.5rem;
    padding-bottom: 0.25rem;
  }
  .ci-montage-tabs::-webkit-scrollbar { display: none; }

  /* ASP-mat 10×10 在 mobile 上太挤，给一个横向滚动容器 */
  #asp-grid-content {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  /* —— mode-chip / dyn-stamp 紧凑 —— */
  .dyn-stamp {
    flex-direction: column;
    align-items: flex-start !important;
    gap: 0.25rem !important;
  }
  .mode-chip { font-size: 0.625rem !important; }

  /* —— 顶部 menubar 砍中文/English/登录/注册（让 brand-bar 接管）—— */
  .edit-btn,
  .lib-btn,
  #lang-zh,
  #lang-en,
  #login-link,
  #register-btn { display: none !important; }

  /* —— 全局横向溢出兜底 —— */
  html, body { overflow-x: hidden; }
  body { max-width: 100vw; }
}

/* 2026-05-13 配置法 v6：单一 4 列表 + CSS column-count:2 流式两栏，无分段 header */
#distributions-wrap{display:block !important;column-count:auto !important}
#distributions-wrap > .dx-head{display:grid !important;grid-template-columns:repeat(2,minmax(0,1fr)) !important;column-gap:1.5rem;margin-bottom:0.25rem}
#distributions-wrap > .dx-body{column-count:2 !important;column-gap:1.5rem !important;column-fill:balance !important}
.dx-head>.dx-head-cell{display:grid !important;grid-template-columns:2.125rem 1.6fr 1fr 0.7fr !important;grid-template-rows:auto !important;gap:0.25rem !important;padding:0.5rem 0.75rem !important;height:auto !important;min-height:0 !important;align-items:center !important}
.dx-head>.dx-head-cell>div:nth-child(1){grid-column:1;grid-row:1;text-align:right;padding-right:0.25rem}
.dx-head>.dx-head-cell>div:nth-child(2){grid-column:2;grid-row:1;text-align:center}
.dx-head>.dx-head-cell>div:nth-child(3){grid-column:3;grid-row:1;text-align:left !important;padding-left:0.5rem !important}
.dx-head>.dx-head-cell>div:nth-child(4){grid-column:4;grid-row:1;text-align:center}
.dx-row{display:grid !important;grid-template-columns:2.125rem 1.6fr 1fr 0.7fr !important;grid-template-rows:auto !important;align-items:center !important;padding:0 0.75rem !important;height:2.125rem !important;gap:0.25rem !important;min-height:0 !important;break-inside:avoid}
.dx-row .dx-age{grid-column:1;grid-row:1;text-align:right;padding-right:0.25rem}
.dx-row .dx-date{grid-column:2;grid-row:1;text-align:center}
.dx-row .dx-lord{grid-column:3;grid-row:1;padding-left:0.5rem !important;justify-content:flex-start}
.dx-row .dx-partner{grid-column:4;grid-row:1;text-align:center;display:inline-flex !important;align-items:center !important;justify-content:center !important;gap:0.1875rem !important}

/* data drawer / 时主推运 双屏 圆盘/方盘 水平居中左半区 + 垂直对齐右侧浮卡 50vh */
/* min-height:100vh 让 ci-chart 容器与视口同高，cy 自然等于 launcher 的 top:50%
   transform:none 覆盖 embed mode 的 translateX(-3rem)，避免 ASC 标签被左边裁切 */
body.data-open .ci-chart,
body.data-prog-open .ci-chart{justify-content:center !important;align-items:center !important;padding:0 2rem 0 2rem !important;min-height:100vh !important;transform:none !important}
/* embed 模式下 body 没有 nav header；非 embed 模式下需要扣掉 header 高度避免溢出 */
body:not(.embed).data-open .ci-chart,
body:not(.embed).data-prog-open .ci-chart{min-height:calc(100vh - 6.6rem) !important}
body.data-open .chart-integrated,
body.data-prog-open .chart-integrated{padding:0 !important}
body.data-open[data-chart-mode="circle"] .circle-wrap,
body.data-prog-open[data-chart-mode="circle"] .circle-wrap{transform:none !important}
body.data-open #circle-wrap,
body.data-prog-open #circle-wrap{margin:0 !important}

/* 方盘归位：取消 .square-wrap 顶 margin 让 align-items:center 真正居中（margin-top 会让 flex 中心偏下） */
.square-wrap{margin:0 auto !important}
body[data-chart-mode="square"] .ci-chart{justify-content:center !important;align-items:center !important}
body[data-chart-mode="square"] .ci-chart .square-wrap,
body[data-chart-mode="square"] .ci-chart .circle-wrap{transform:none !important;margin:0 auto !important}

/* 所有「返回」类按钮贴最左 */
.dual-back-btn{left:0.5rem !important}

/* RetWS overlay 三盘叠加：压平上下 padding + svg 顶高 */
body.ret-ws-open.rws-mode-overlay .rws-main{padding:0 0.5rem !important;gap:0.125rem !important}
body.ret-ws-open.rws-mode-overlay .rws-cell-right{padding-top:1.75rem !important}
body.ret-ws-open.rws-mode-overlay .rws-svg-wrap > svg{max-width:100% !important;max-height:calc(100vh - 2rem) !important;width:100% !important;height:auto !important}
/* RetWS bi 双盘：温和放大，不顶到 viewport 边缘 */
body.ret-ws-open.rws-mode-bi .rws-main{padding:0.25rem 0.5rem !important;gap:0.25rem !important}
body.ret-ws-open.rws-mode-bi .rws-cell-head{min-height:0;padding-top:0;padding-bottom:0}
body.ret-ws-open.rws-mode-bi .rws-svg-wrap{aspect-ratio:auto !important;flex:1;min-height:0;width:100%;max-width:none;max-height:none}
body.ret-ws-open.rws-mode-bi .rws-svg-wrap > svg{width:auto !important;height:100% !important;max-width:100% !important;max-height:calc(100vh - 9rem) !important;margin:0 auto;display:block}

/* 2026-05-13 RetWS 回归⇄本命 / 行运⇄回归 双盘放大：吃掉上部空白 */
body.ret-ws-open.rws-mode-bi .rws-main,
body.ret-ws-open.rws-mode-overlay .rws-main{padding-top:0.25rem;gap:0.25rem}
body.ret-ws-open.rws-mode-bi .rws-cell-head{min-height:0;padding-top:0;padding-bottom:0}
body.ret-ws-open.rws-mode-bi .rws-cell-meta{min-height:0;line-height:1.3}
body.ret-ws-open.rws-mode-bi .rws-svg-wrap{
  aspect-ratio:auto !important;
  flex:1;min-height:0;width:100%;max-width:none;max-height:none;
  align-items:center;justify-content:center;margin-top:0
}
body.ret-ws-open.rws-mode-bi .rws-svg-wrap > svg{
  width:100%;height:100%;max-width:100%;max-height:calc(100vh - 8rem);display:block;margin:0 auto
}
/* overlay 模式：svg max-height 放宽到 100vh-3rem，wrap width:100% + height:100% 让 preserveAspect 吃满 */
body.ret-ws-open.rws-mode-overlay .rws-svg-wrap{aspect-ratio:auto !important;flex:1;min-height:0;width:100%;max-width:none;max-height:none;align-items:stretch;justify-content:stretch}
body.ret-ws-open.rws-mode-overlay .rws-svg-wrap > svg{width:100% !important;height:100% !important;max-width:100% !important;max-height:calc(100vh - 3rem) !important;display:block;margin:0 auto}
/* overlay 模式：进一步压缩主区上下 padding 把空间还给圆盘 */
body.ret-ws-open.rws-mode-overlay .rws-main{padding:0.125rem 0.5rem !important;gap:0.125rem !important}
body.ret-ws-open.rws-mode-overlay .rws-cell{gap:0.125rem}
body.ret-ws-open.rws-mode-overlay .rws-year-strip{margin:0}

/* ===== 手机：关系盘/回归盘工作区 双列→上下堆叠（2026-06-16）=====
   #rel-ws-overlay / #ret-ws-overlay 桌面是 [配置 280px | 星盘 1fr] 横向，
   手机 110px 星盘列挤成竖字 → 改纵向：配置在上、星盘在下，各占满宽，整体可竖滚。*/
@media (max-width: 1100px) {
  #rel-ws-overlay,
  #ret-ws-overlay {
    flex-direction: column !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
  }
  #rel-ws-overlay .rws-cfg,
  #ret-ws-overlay .rws-cfg {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 auto !important;
    height: auto !important;
  }
  #rel-ws-overlay .rws-main,
  #ret-ws-overlay .rws-main {
    width: 100% !important;
    max-width: 100% !important;
    flex: 1 1 auto !important;
    min-height: 70vh !important;
  }
  /* 双盘对比区 138px|198px 双列 → 单列堆叠：两盘各占满宽、表头控件横排不再竖字 */
  #rel-ws-overlay .rws-charts,
  #ret-ws-overlay .rws-charts {
    grid-template-columns: 1fr !important;
    grid-template-rows: auto auto !important;
    gap: 0.75rem !important;
  }
  #rel-ws-overlay .rws-cell,
  #ret-ws-overlay .rws-cell {
    width: 100% !important;
    min-width: 0 !important;
  }
  /* 表头控件（本命盘/回归盘切换 · 时主推运）横排、正常字宽 */
  #rel-ws-overlay .rws-head-left,
  #ret-ws-overlay .rws-head-left {
    flex-direction: row !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 0.375rem !important;
  }
  #rel-ws-overlay .rws-tl-btn,
  #ret-ws-overlay .rws-tl-btn {
    writing-mode: horizontal-tb !important;
    width: auto !important;
    height: auto !important;
    white-space: nowrap !important;
  }
}

/* ── 相位释义 modal（沿用 star-modal 蒙板，扩展自己的正文样式） ───────── */
.asp-modal{max-width:34rem;padding:2rem 2.25rem 1.75rem}
.asp-modal .am-title{font-size:1.375rem;font-weight:700;color:var(--text);letter-spacing:.5px;margin-bottom:0.25rem;line-height:1.3}
.asp-modal .am-sub{font-size:0.6875rem;letter-spacing:1.5px;color:var(--text-faint);text-transform:uppercase;margin-bottom:1.25rem;padding-bottom:0.875rem;border-bottom:1px solid var(--border-lite,#f0e8df)}
.asp-modal .am-body{font-size:0.875rem;line-height:1.85;color:var(--text);letter-spacing:.2px}
.asp-modal .am-body p{margin:0 0 1rem}
.asp-modal .am-body p:first-child{font-weight:500;color:var(--text);margin-bottom:1.125rem}
.asp-modal .am-body p:last-child{margin-bottom:0;color:var(--text-dim);font-style:italic}
.asp-modal .am-empty{color:var(--text-faint);font-size:0.8125rem;font-style:italic;padding:1.5rem 0;text-align:center;line-height:1.6}
.der-pair-clickable{padding:1px 4px;border-radius:0.25rem;transition:background .12s}
.der-pair-clickable:hover{background:rgba(204,120,92,.08)}

/* ── 右栏 data-launcher：默认 icon-only，hover/active 才展开（Unsplash 风格 icon rail） ─────
   原行为：96px 宽胶囊常驻显示「icon + 文字」，11+ 按钮挤占右侧视觉重量
   新行为：默认 30×30 圆形 icon，鼠标悬停或当前选中态才横向展开到 96px 露出文字
   收益：右栏视觉重量降 ~70%，星盘 SVG 横向可视区扩约 4rem */
.data-launcher button{
  width:1.875rem;
  min-width:1.875rem;
  padding:0;
  justify-content:center;
  gap:0;
  border-radius:50%;
  transition:width .18s ease, padding .18s ease, border-radius .18s ease, gap .18s ease,
             border-color .15s, color .15s, background .15s, box-shadow .15s, transform .15s ease-out;
}
.data-launcher .dl-label{
  max-width:0;
  overflow:hidden;
  opacity:0;
  transition:max-width .18s ease, opacity .14s ease .04s;
}
/* ⛔ 只有「鼠标停上去」才展开。选中态(.active)不展开 —— 打开数据面板后整列跟着变胶囊，
   右栏一下子变吵（Steven 2026-08-25 指定要保持一列圆点）。选中靠配色区分，不靠变形。 */
.data-launcher button:hover{
  width:6rem;
  min-width:6rem;
  padding:0 0.625rem 0 0.5rem;
  justify-content:flex-start;
  gap:0.375rem;
  border-radius:62.4375rem;
}
.data-launcher button:hover .dl-label{
  max-width:6rem;
  opacity:1;
}
/* 时间步进：单位切换段 + 单组箭头（紧凑版，取代原 11 连发步进按钮）
   tu-seg / tu-unit 为通用 class，顶栏 / 星盘上方 / 回归盘 / 关系盘 四处控件共用 */
.tu-seg{display:inline-flex;gap:1px;background:rgba(204,120,92,.06);border-radius:62.4375rem;padding:2px;margin-right:0.125rem;flex-shrink:0}
/* 后代选择器提权，盖过 RelWS 等容器的 `.xxx button` 默认样式 */
.tu-seg .tu-unit{width:auto;height:auto;min-width:0;border:0;background:transparent;color:var(--text-dim);font-family:inherit;font-size:0.7188rem;letter-spacing:.3px;line-height:1.4;padding:0.0625rem 0.4375rem;border-radius:62.4375rem;cursor:pointer;transition:color .15s,background .15s}
.tu-seg .tu-unit:hover{color:var(--accent)}
.tu-seg .tu-unit.on{background:var(--accent);color:#fff;font-weight:600}
.dc-arrow,.cdb-arrow{font-size:0.875rem;line-height:1}

/* ===== 手机/iPad(≤1100)· 90°盘 单栏适配（2026-06-17）=====
   桌面给 90°盘左移 translateX(-9.5rem) 为左栏让位,单栏下会把盘推出屏外;
   指针面板桌面是 fixed 浮层,单栏下盖住盘。这里:盘居中、面板改流式排盘下方。*/
@media (max-width: 1100px) {
  body.embed:not(.chrome-journal):not(.chrome-lite)[data-dyn-mode="dial90"] .ci-chart {
    transform: none !important;
  }
  body[data-dyn-mode="dial90"] #dial-pointer-panel {
    position: static !important;
    top: auto !important;
    bottom: auto !important;
    left: auto !important;
    right: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    max-height: none !important;
    margin: 0.5rem 0 0 !important;
  }
}


/* ===== 手机/iPad(≤1100)· 方盘 单栏适配（2026-06-17）=====
   方盘 svg 是 position:absolute,导致 square-wrap 高度塌成 0、资料卡上浮盖住方盘。
   给 square-wrap 一个正方形高度(随宽度),绝对方盘有容身处、资料卡自然排到下方。*/
@media (max-width: 1100px) {
  .chart-integrated.is-square .square-wrap {
    width: 100% !important;
    aspect-ratio: 1 / 1 !important;
    height: auto !important;
    min-height: 0 !important;
  }
}

/* ===== 手机/iPad(≤1100)· ACG 地图抽屉适配（2026-06-17）=====
   data-wide 给抽屉 min-width:45rem(720px),压过 mapping 的 100vw → ACG 地图 720 宽溢出被裁。
   手机下去掉该 min-width,抽屉回 100vw,响应式地图(viewBox+preserveAspectRatio)自然适配。*/
@media (max-width: 1100px) {
  body.data-mapping .data-drawer {
    min-width: 0 !important;
    width: 100vw !important;
    max-width: 100vw !important;
  }
}

/* ===== 手机/iPad(≤1100)· 90°盘 顶部日期条复位（2026-06-17 huashu打磨）=====
   dial90 桌面给 controlbar 设了 left/right calc(为左右栏让位),手机单栏(relative)下
   把它推到 x=305 出屏右。复位:left/right/transform auto、居中,日期条规整排在盘上方。*/
@media (max-width: 1100px) {
  body[data-dyn-mode="dial90"] .ci-controlbar {
    left: auto !important;
    right: auto !important;
    transform: none !important;
    position: relative !important;
    justify-content: center !important;
    flex-wrap: wrap !important;
  }
  /* dial90:行运时间游标已被 JS 挪进 ci-subject 卡片。藏掉同被挪进来的出生时间步进条
     (chart-date-bar),避免两条时间并排;行运游标在卡片内居中规整,不挤顶栏。 */
  body[data-dyn-mode="dial90"] .ci-subject .chart-date-bar { display: none !important; }
  body[data-dyn-mode="dial90"] .ci-subject .dyn-cursor {
    display: flex !important;
    justify-content: center;
    flex-wrap: nowrap;
    margin: 0.5rem 0 0.25rem;
    width: 100%;
  }
  /* 日期已在上方"2026-06-17 13:42"大字显示,藏掉游标里冗余的宽日期输入框,
     留 年月日时分 + ‹ › 今 一行放下,不换行(iOS 长日期格式也不溢出) */
  body[data-dyn-mode="dial90"] .ci-subject .dyn-cursor #dyn-date { display: none !important; }
}

/* ===== 手机/iPad(≤1100)· 方盘"本年运势"按钮复位（2026-06-17 huashu打磨）=====
   桌面是 absolute top:4rem 浮在方盘上,手机单栏下压住方盘顶。改流式:规整排在方盘上方居中。*/
@media (max-width: 1100px) {
  body.embed .chart-integrated.is-square .year-fortune-btn {
    position: static !important;
    transform: none !important;
    left: auto !important;
    top: auto !important;
    display: block !important;
    width: max-content !important;
    margin: 0.25rem auto 0.625rem !important;
  }
}

/* ────────── 星盘大小档位 ──────────
   浏览器自带缩放对这张盘没用：盘按 100vh 定高，vh 不随缩放变，
   反倒是那个「减 6.25rem」会跟着缩放变粗，净效果是越放大盘越小。
   给盘一对自己的档位键，只在用户调过档（body 带 data-chart-zoom）时才覆盖。 */
/* 位置：星盘方框的右下角。上方那条 40px 高的工具条（圆盘/方盘/日期/今）占满了顶栏，
   工具条底边到星盘顶只剩 6px，塞不下；方框右下角在圆外，是空的，且跟着星盘一起动。 */
.chart-zoom-ctl{position:absolute;right:0.25rem;bottom:0.25rem;z-index:6;display:flex;align-items:center;gap:0.125rem;
  background:rgba(255,255,255,0.90);border:1px solid rgba(204,120,92,0.22);border-radius:0.5rem;
  padding:0.0625rem 0.25rem;box-shadow:0 0.0625rem 0.375rem rgba(0,0,0,0.05);backdrop-filter:blur(0.25rem);opacity:.72;transition:opacity .15s}
.chart-zoom-ctl:hover{opacity:1}
.chart-zoom-ctl button{border:0;background:transparent;color:var(--accent);font-size:0.75rem;line-height:1;
  padding:0.1875rem 0.25rem;cursor:pointer;border-radius:0.3125rem;transition:background .15s}
.chart-zoom-ctl button:hover{background:rgba(204,120,92,0.10)}
.chart-zoom-ctl #chart-zoom-label{font-size:0.625rem;color:var(--text-dim);min-width:2.125rem;text-align:center;
  font-variant-numeric:tabular-nums}
/* 覆盖块放在最后、用属性选择器 + !important，一条压住前面所有 max-width / max-height 档 */
/* ⛔ 整块只在 >1200 生效：≤1200 时档位控件是隐藏的（见文件末尾那条 media），
   若覆盖照样生效，用户在宽屏选了 130% 再把窗口缩窄，就会顶着一个放大的盘、
   而且没有任何控件能调回来（codex review 抓出，实测 1100 宽时盘 978px 且控件已隐藏）。 */
@media (min-width:769px){
  /* 必须给显式 width：星盘宽度是父容器的 100%，只抬 max-width 撑不破父容器，
     130% / 150% 两档会一起卡在容器宽上不涨（实测都停在 924px）。 */
  /* 浮卡打开后可用宽度只剩左侧分屏，必须让 data-open 的 42rem/44vw 上限接管。
     若 115% 仍按整屏高度算，圆盘会同时越出左边并钻进右侧浮卡。
     同理「新建 / 修改」唤起右侧表单时（body 去掉 form-hidden）：容器已缩到 575px，
     但 115% 那套按视口高算的宽度不让路，盘还是 908px、右边 217px 钻进表单底下被裁。
     点「确定」出盘 → calculate() 调 hideForm() 加回 form-hidden → 自动还原 115%。 */
  body.form-hidden[data-chart-zoom]:not(.data-open):not(.focus-active) .circle-wrap{
    width:min(calc(var(--chart-zoom) * min(calc(100vh - 3rem), 65rem)),100%)!important;
    max-width:min(calc(var(--chart-zoom) * min(calc(100vh - 3rem), 65rem)),100%)!important}
  body.form-hidden[data-chart-zoom]:not(.data-open):not(.focus-active) .chart-integrated .ci-chart svg{
    max-width:min(calc(var(--chart-zoom) * min(calc(100vh - 3rem), 65rem)),100%)!important;
    max-height:calc(var(--chart-zoom) * calc(100vh - 6.25rem))!important}
  /* 放大过一屏就让这块自己滚，星盘不许被裁掉 */
  body.form-hidden.chart-zoomed-up:not(.data-open):not(.focus-active) .ci-chart{overflow:auto}
}
body.chart-zoomed-up .chart-zoom-ctl{position:sticky;float:right;top:0.625rem;right:0.75rem}
/* ≤1200 不出这个控件：手机本来就能双指缩放；而 1101–1200 这条带里星盘会塌成 304px
   （生产站同样如此，是这次改动之前就有的老问题），控件会啃到盘的右上角 25×25。 */
@media (max-width:1200px){.ci-chart .chart-zoom-ctl{display:none!important}}

/* ────────── 顶栏可发现性：圆盘的朝左箭头 + 星盘教学动画 ──────────
   ① 已经在圆盘时再点圆盘，叠层菜单从**左边**滑出来（#ov-menu 是 right:100%）。
      记号的方向必须和东西出来的方向一致，所以朝左、不是朝下的下拉三角。
      菜单开着时翻 180° 朝右，表示再点一下就收回去。
   ② 盘上能点能拖的地方一个记号都没有。照搬 App 星盘 tab 那个感叹号：
      点一下让环挨个落到真实元素上，配一句话。看过一次就不再呼吸。 */
#chart-mode-circle.active::before{
  content:'\2039';display:inline-block;margin-right:0.1875rem;font-size:0.8125rem;line-height:1;
  opacity:.5;transform-origin:50% 50%;transition:transform .25s ease,opacity .2s ease}
body:has(#ov-menu.show) #chart-mode-circle.active::before{transform:rotate(180deg);opacity:.95}

.chart-tutor-btn{margin-left:0.5rem;margin-right:0.5rem;flex:0 0 auto;width:1.125rem;height:1.125rem;border-radius:50%;
  border:1px solid rgba(204,120,92,.45);background:transparent;color:var(--accent);
  font-family:var(--serif);font-size:0.75rem;font-weight:700;line-height:1;padding:0;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s,opacity .2s;
  animation:chartTutorBreathe 2.6s ease-in-out infinite}
.chart-tutor-btn:hover{background:rgba(204,120,92,.10);border-color:var(--accent)}
/* 看过一次：停止呼吸、变淡，但不消失 —— 老用户还能再点开 */
body.chart-tutor-seen .chart-tutor-btn{animation:none;opacity:.45;border-color:rgba(204,120,92,.28)}
body.chart-tutor-seen .chart-tutor-btn:hover{opacity:1}
body.chart-tutor-on .chart-tutor-btn{animation:none;opacity:1;background:rgba(204,120,92,.12);border-color:var(--accent)}
@keyframes chartTutorBreathe{
  0%,100%{box-shadow:0 0 0 0 rgba(204,120,92,.28)}
  50%{box-shadow:0 0 0 0.3125rem rgba(204,120,92,0)}}

/* 教学图层：盖在星盘上，本身不吃点击（点哪儿都算「知道了」，由 JS 收起） */
.chart-tutor{position:absolute;inset:0;z-index:8;pointer-events:none}
/* 圈贴着符号本身（34–56px），⛔别把整个行星组框进去 —— 那是 102×61，圈出来一大坨 */
.chart-tutor .ct-ring{position:absolute;border-radius:50%;border:2px solid var(--accent);
  box-shadow:0 0 0 0.25rem rgba(204,120,92,.10);
  transition:left .45s cubic-bezier(.2,.8,.2,1),top .45s cubic-bezier(.2,.8,.2,1),width .25s,height .25s;
  animation:chartTutorRing 1.5s ease-out infinite}
@keyframes chartTutorRing{
  0%{transform:scale(.88);opacity:.4}
  45%{transform:scale(1);opacity:1}
  100%{transform:scale(1.05);opacity:.55}}
/* 拖动那一步：圈跟着令牌走，逐帧定位，不能再叠 transition/脉冲，否则看着像"飘"不像"拖" */
.chart-tutor.ct-dragging .ct-ring{animation:none;transition:none;border-style:dashed}
/* 被抓起来的行星令牌：放大 + 阴影 + 抓手光晕，一眼是"按住拖着走" */
.chart-tutor .ct-token{position:absolute;transform:translate(-50%,-50%);
  font-family:'StarCue Symbols','Apple Symbols','Segoe UI Symbol','Noto Sans Symbols','Noto Sans Symbols 2',serif;
  font-size:1.5rem;line-height:1;color:var(--accent);text-shadow:0 0.125rem 0.375rem rgba(38,38,36,.25);
  transition:none}
.chart-tutor .ct-token.ct-grabbed{transform:translate(-50%,-50%) scale(1.18)}
/* 落到目标行星身上那一刻轻轻一顿，明确「就是落在这颗上」 */
.chart-tutor .ct-token.ct-landed{transform:translate(-50%,-50%) scale(1.02)}
.chart-tutor .ct-token::after{content:'';position:absolute;left:50%;top:50%;width:2.375rem;height:2.375rem;
  margin:-1.1875rem 0 0 -1.1875rem;border-radius:50%;background:rgba(204,120,92,.16)}
/* 走过的路：一条虚线，从起点连到令牌当前位置 */
.chart-tutor .ct-trail{position:absolute;height:0;border-top:2px dashed rgba(204,120,92,.55);
  transform-origin:0 50%;pointer-events:none}
.chart-tutor .ct-callout{position:absolute;display:inline-flex;align-items:baseline;gap:0.375rem;
  background:rgba(250,249,245,.96);backdrop-filter:blur(0.625rem) saturate(140%);-webkit-backdrop-filter:blur(0.625rem) saturate(140%);
  border:1px solid rgba(204,120,92,.20);border-radius:62.4375rem;padding:0.3125rem 0.75rem;
  font-size:0.75rem;color:var(--text);white-space:nowrap;box-shadow:0 0.25rem 0.875rem rgba(38,38,36,.08);
  transition:left .45s cubic-bezier(.2,.8,.2,1),top .45s cubic-bezier(.2,.8,.2,1)}
.chart-tutor .ct-callout .ct-step{color:var(--accent);font-weight:700;font-size:0.6875rem;font-variant-numeric:tabular-nums}
/* 关掉动效时：不脉冲、不滑动，仍逐步定位，信息一条不少 */
@media (prefers-reduced-motion:reduce){
  .chart-tutor-btn{animation:none}
  .chart-tutor .ct-ring{animation:none;transition:none}
  .chart-tutor .ct-callout{transition:none}}

/* ══ 星盘模板（从 App 搬过来，去掉那边的 .sg-app 前缀）══
   只改盘面外观，一个算法参数都不碰。靠 body[data-wheel-template] + SVG 元素上的标记类生效，
   所以主站盘面的环/分隔线/刻度/宫位线/行星符号这次一并补上了 class（原来全是裸标签）。
   ⛔ 全部 !important：这些元素的颜色是渲染时内联写死的，不加压不住。 */
/* 星座圈底色 = 卡片底色：带子只由内外两条环线界定，不再铺一层米黄
   （Steven 2026-08-26：把黄色变成纯白色。整个古典模板都改，不只「界」模式）。 */
body[data-wheel-template="classical"] .chart-sign{fill:#FFFFFF !important}
body[data-wheel-template="classical"] .chart-ring{stroke:#625C52 !important}
body[data-wheel-template="classical"] .chart-sign-divider{stroke:#877D6D !important;stroke-opacity:.62 !important}
body[data-wheel-template="classical"] .planet-glyph{filter:none !important}

body[data-wheel-template="minimal"] .chart-sign{fill:#F7F7F4 !important}
body[data-wheel-template="minimal"] .chart-sign-divider{stroke-opacity:.28 !important}
body[data-wheel-template="minimal"] .chart-degree-tick{opacity:.46 !important}
body[data-wheel-template="minimal"] .chart-house-line:not(.chart-house-line-angular){opacity:.38 !important}
body[data-wheel-template="minimal"] .chart-house-line-angular{opacity:.7 !important;stroke-width:1px !important}
body[data-wheel-template="minimal"] .aspect-halo{display:none !important}
body[data-wheel-template="minimal"] .aspect-line{opacity:.5 !important;stroke-width:.75px !important}
body[data-wheel-template="minimal"] .planet-glyph{filter:none !important}

body[data-wheel-template="bold"] .chart-ring{stroke-width:2.2px !important;stroke:#4A544E !important}
body[data-wheel-template="bold"] .chart-sign-divider{stroke:#6B7570 !important;stroke-opacity:.85 !important;stroke-width:1.3px !important}
body[data-wheel-template="bold"] .chart-house-line{stroke-width:1.2px !important;opacity:.8 !important}
body[data-wheel-template="bold"] .chart-house-line-angular{stroke-width:2.4px !important;opacity:1 !important}
body[data-wheel-template="bold"] .chart-degree-tick{opacity:.9 !important}
body[data-wheel-template="bold"] .planet-glyph{filter:none !important;font-weight:900 !important}
body[data-wheel-template="bold"] .aspect-line{stroke-width:1.6px !important;opacity:.8 !important}
body[data-wheel-template="bold"] :is(.planet-deg,.planet-min){font-weight:700 !important}

/* ══ 素色的界面层 ══
   Steven 2026-08-27：「黑白模式下全部是黑白，包括相位表/特殊/笔记、上方时间轴、
   资料库，就像深夜模式全部是暗色一个原理。」
   夜间模式的原理就是换一整套 token，所以这里照做 —— 把带色相的 token 全换成灰阶，
   界面上几十处按钮边框/标签/底色一次跟着走，不用逐个类去追。
   ⛔ 界面用灰阶层次、盘内才是纯黑：所有边框都上纯黑会重得没法看，
      而盘面要的是 Solar Fire 那种印刷黑（见下面那段）。 */
body[data-wheel-template="mono"]{
  --accent:       #1F1F1F;
  --accent-dark:  #000000;
  --fire:         #4A4A4A;
  --earth:        #4A4A4A;
  --air:          #4A4A4A;
  --water:        #4A4A4A;
  --ring-band:    #F3F3F2;
  --ring-line:    #9A9A9A;
  --wheel-ink:    #000000;
  /* 主站整套底色本来是暖的（米白 + 赤陶），素色下连这些也要去掉色相，
     否则边框和淡字仍带一层黄，在纯黑白的盘边上很显眼 */
  --bg:           #F7F7F7;
  --bg-subtle:    #F4F4F4;
  --bg-hover:     #EDEDED;
  --border:       #E4E4E4;
  --border-strong:#CFCFCF;
  --border-lite:  #EDEDED;
  --text-faint:   #A3A3A3;
  --row-alt:      #F4F4F4;
}
html[data-theme="night"] body[data-wheel-template="mono"]{
  --accent:       #E8E8E8;
  --accent-dark:  #FFFFFF;
  --fire:         #B4B4B4;
  --earth:        #B4B4B4;
  --air:          #B4B4B4;
  --water:        #B4B4B4;
  --ring-band:    #1F1F1F;
  --ring-line:    #6E6E6E;
  --wheel-ink:    #FFFFFF;
  --bg:           #101010;
  --bg-card:      #191919;
  --bg-subtle:    #1F1F1F;
  --bg-hover:     #2A2A2A;
  --border:       rgba(255,255,255,.12);
  --border-strong:rgba(255,255,255,.20);
  --border-lite:  rgba(255,255,255,.08);
  --text:         #EDEDED;
  --text-dim:     #A0A0A0;
  --text-faint:   #707070;
  --row-alt:      rgba(255,255,255,.04);
}
/* 相位符号 / 行星符号的颜色是 JS 出 HTML 时写死在 inline style 里的，token 够不着 */
body[data-wheel-template="mono"] :is(.asp-sym-red,.asp-sym-blue,.asp-sym-green,.asp-sym-lg,.sym-big,.sym-pl,.lead,.pgly,.glyph,.glyph-lg,.fd-sym,.pf-sym,.tl-fb-sym){color:#000 !important}
html[data-theme="night"] body[data-wheel-template="mono"] :is(.asp-sym-red,.asp-sym-blue,.asp-sym-green,.asp-sym-lg,.sym-big,.sym-pl,.lead,.pgly,.glyph,.glyph-lg,.fd-sym,.pf-sym,.tl-fb-sym){color:#FFF !important}
/* 笔记页那颗「查看总笔记」按钮的橙色写在 inline style 里 */
body[data-wheel-template="mono"] #ci-notes-archive-link{color:#000 !important;border-color:rgba(0,0,0,.25) !important}
html[data-theme="night"] body[data-wheel-template="mono"] #ci-notes-archive-link{color:#FFF !important;border-color:rgba(255,255,255,.28) !important}
/* 顶部控制条那颗胶囊里的边框/底色全是写死的 rgba(204,120,92,x)，token 够不着，
   逐个收掉 —— 素色下连这条也得是灰的，否则整屏黑白里就它一处泛橙。 */
body[data-wheel-template="mono"] .ci-controlbar-pill,
body[data-wheel-template="mono"] .ci-controlbar #ov-menu,
body[data-wheel-template="mono"] .chart-tutor-btn{border-color:rgba(0,0,0,.16) !important}
body[data-wheel-template="mono"] .ci-controlbar-pill .cm-btn.active,
body[data-wheel-template="mono"] .cdb-btn.cdb-now,
body[data-wheel-template="mono"] .tu-unit.on{background:rgba(0,0,0,.10) !important;border-color:rgba(0,0,0,.35) !important;color:#000 !important}
body[data-wheel-template="mono"] .ctrl-divider,
body[data-wheel-template="mono"] .dc-divider{background:rgba(0,0,0,.20) !important}
body[data-wheel-template="mono"] .tu-seg{background:rgba(0,0,0,.05) !important}
body[data-wheel-template="mono"] .cdb-btn{border-color:rgba(0,0,0,.18) !important}
html[data-theme="night"] body[data-wheel-template="mono"] .ci-controlbar-pill,
html[data-theme="night"] body[data-wheel-template="mono"] .ci-controlbar #ov-menu,
html[data-theme="night"] body[data-wheel-template="mono"] .chart-tutor-btn{border-color:rgba(255,255,255,.18) !important}
html[data-theme="night"] body[data-wheel-template="mono"] .ci-controlbar-pill .cm-btn.active,
html[data-theme="night"] body[data-wheel-template="mono"] .cdb-btn.cdb-now,
html[data-theme="night"] body[data-wheel-template="mono"] .tu-unit.on{background:rgba(255,255,255,.14) !important;border-color:rgba(255,255,255,.40) !important;color:#FFF !important}
html[data-theme="night"] body[data-wheel-template="mono"] .ctrl-divider,
html[data-theme="night"] body[data-wheel-template="mono"] .dc-divider{background:rgba(255,255,255,.24) !important}
html[data-theme="night"] body[data-wheel-template="mono"] .tu-seg{background:rgba(255,255,255,.06) !important}
html[data-theme="night"] body[data-wheel-template="mono"] .cdb-btn{border-color:rgba(255,255,255,.20) !important}

/* ⛔ 行星色有三处定义，相位表里生效的是 body[data-asp-style="N"] … .asp-sym-lg.pcol-sun
   那一档，特异性 (0,7,3) 还带 !important —— 普通写法压不动（实测踩过）。
   对方是 (0,6,2)：1 个属性 + 5 个 class（.chart-integrated .ci-aspect
   .asp-tri .asp-sym-lg .pcol-sun）+ 2 个元素（body、td/th）。
   这里把属性选择器重复 6 次 → (0,7,2)，刚好压过去。丑，但这个文件本来就这么处理它。 */
html body[data-wheel-template="mono"][data-wheel-template="mono"][data-wheel-template="mono"][data-wheel-template="mono"][data-wheel-template="mono"][data-wheel-template="mono"] [class*="pcol-"]{color:#000 !important}
html[data-theme="night"] body[data-wheel-template="mono"][data-wheel-template="mono"][data-wheel-template="mono"][data-wheel-template="mono"][data-wheel-template="mono"][data-wheel-template="mono"] [class*="pcol-"]{color:#FFF !important}
/* .feat-item / cdb-btn 那几处是写死的 rgba(204,120,92,...)，token 够不着 */
body[data-wheel-template="mono"] .feat-item{background:rgba(0,0,0,.035) !important;border-color:rgba(0,0,0,.14) !important}
body[data-wheel-template="mono"] .cdb-btn{border-color:rgba(0,0,0,.18) !important}
html[data-theme="night"] body[data-wheel-template="mono"] .feat-item{background:rgba(255,255,255,.05) !important;border-color:rgba(255,255,255,.16) !important}
html[data-theme="night"] body[data-wheel-template="mono"] .cdb-btn{border-color:rgba(255,255,255,.20) !important}

/* 相位表里按相位性质刷的底色（红/蓝/绿三档）在素色下退成一档中性灰 */
body[data-wheel-template="mono"] table.bi-mat td.bi-cell:has(.asp-sym-red),
body[data-wheel-template="mono"] table.bi-mat td.bi-cell:has(.asp-sym-blue),
body[data-wheel-template="mono"] table.bi-mat td.bi-cell:has(.asp-sym-green){background:rgba(0,0,0,.05) !important}
body[data-wheel-template="mono"] table.bi-mat td.bi-cell :is(.bi-asp,.bi-orb){color:#333 !important}
html[data-theme="night"] body[data-wheel-template="mono"] table.bi-mat td.bi-cell:has(.asp-sym-red),
html[data-theme="night"] body[data-wheel-template="mono"] table.bi-mat td.bi-cell:has(.asp-sym-blue),
html[data-theme="night"] body[data-wheel-template="mono"] table.bi-mat td.bi-cell:has(.asp-sym-green){background:rgba(255,255,255,.06) !important}
html[data-theme="night"] body[data-wheel-template="mono"] table.bi-mat td.bi-cell :is(.bi-asp,.bi-orb){color:#CCC !important}

/* ══ 素色 = Solar Fire 的 Allblack 方案 ══
   ⛔ 以前这里写的是 filter:grayscale(1)，那是「去饱和」不是「变黑」：
      火星 #B0463F 去饱和后是中灰 #6B6B6B、木星 #5F5F5F、太阳 #8F8F8F ——
      每颗星按自己的明度变成深浅不一的淡灰，所以整盘看着是灰的不是黑的
      （Steven 2026-08-26 截图「星体都是淡的，要的是很清晰的纯黑白」）。
   依据：Solar Fire 用户目录 Points & Colors/Allblack.cpt/.csg/.cas 三个文件
      都是 52 字节全零。同目录的 Rainbow.csg 解出来正好是 12 星座彩虹环、
      Elements.csg 解出来是「红火/绿土/青风/蓝水」循环 3 遍，证明格式是
      每项一个 BGR 小端颜色 —— 所以全零就是行星/星座/相位一律 #000000。
   grayscale 保留作兜底：万一有这里没列到的彩色元素，至少不会是彩的。 */
body[data-wheel-template="mono"] :is(#chart,#chart-sa,#chart-sec,#chart-tr,#chart-syn){filter:grayscale(1) !important}
body[data-wheel-template="mono"] .chart-sign{fill:#FFF !important}
body[data-wheel-template="mono"] .chart-sign.chart-sign-alt{fill:#F3F3F2 !important}
body[data-wheel-template="mono"] .planet-glyph{filter:none !important}

/* 墨（文字）——全部纯黑。带 #chart 是为了把特异性顶过夜间那批逐颗行星色 (0,3,1) */
body[data-wheel-template="mono"] :is(#chart,#chart-sa,#chart-sec,#chart-tr,#chart-syn)
  :is(text,.planet-glyph,.planet-deg,.planet-min,.planet-sign,.sign-glyph,.chart-house){fill:#000 !important}
/* 线（骨架 + 相位）——全部纯黑 */
body[data-wheel-template="mono"] :is(#chart,#chart-sa,#chart-sec,#chart-tr,#chart-syn)
  :is(.aspect-line,.chart-ring,.chart-sign-divider,.chart-degree-tick,.chart-house-line){stroke:#000 !important}
/* 挖空描边走纸白：符号压在相位线上时要留白边，否则黑线穿过黑符号糊成一团 */
body[data-wheel-template="mono"] :is(#chart,#chart-sa,#chart-sec,#chart-tr,#chart-syn)
  :is(.planet-glyph,text[paint-order="stroke"]){stroke:#FFF !important}
body[data-wheel-template="mono"] :is(#chart,#chart-sa,#chart-sec,#chart-tr,#chart-syn) .aspect-halo{stroke:#FFF !important}
/* 相位靠线宽分主次（Solar Fire 统一颜色后就是这么区分的），不靠颜色 */
body[data-wheel-template="mono"] :is(#chart,#chart-sa,#chart-sec,#chart-tr,#chart-syn)
  .aspect-line[data-angle="0"],
body[data-wheel-template="mono"] :is(#chart,#chart-sa,#chart-sec,#chart-tr,#chart-syn)
  .aspect-line[data-angle="180"]{stroke-width:1.1px !important}
body[data-wheel-template="mono"] :is(#chart,#chart-sa,#chart-sec,#chart-tr,#chart-syn)
  .aspect-line[data-angle="60"]{stroke-width:.55px !important}

/* 兜底：盘上其余还带内联颜色的零件（行星指向线、盘心小圆、高亮弧）一并压黑。
   ⛔ 必须写 [stroke]:not([stroke="none"]) 而不是直接通配 —— 给本来没描边的形状
      加 stroke 会凭空多画一圈边（同理 fill）。
   ⛔ .chart-sign 是环带底色（白 / 浅灰交替，Solar Fire 也是这么分奇偶星座的），
      .aspect-halo / .planet-halo 是挖空垫底，三者都不能压黑。 */
body[data-wheel-template="mono"] :is(#chart,#chart-sa,#chart-sec,#chart-tr,#chart-syn)
  :is(line,circle,path)[stroke]:not([stroke="none"]):not(.aspect-halo):not(.planet-halo){stroke:#000 !important}
body[data-wheel-template="mono"] :is(#chart,#chart-sa,#chart-sec,#chart-tr,#chart-syn)
  :is(line,circle)[fill]:not([fill="none"]):not(.chart-sign):not(.planet-halo){fill:#000 !important}

/* 夜间的素色＝底片：墨翻成纸白，挖空描边翻成底色 */
html[data-theme="night"] body[data-wheel-template="mono"] :is(#chart,#chart-sa,#chart-sec,#chart-tr,#chart-syn)
  :is(text,.planet-glyph,.planet-deg,.planet-min,.planet-sign,.sign-glyph,.chart-house){fill:#FFF !important}
html[data-theme="night"] body[data-wheel-template="mono"] :is(#chart,#chart-sa,#chart-sec,#chart-tr,#chart-syn)
  :is(.aspect-line,.chart-ring,.chart-sign-divider,.chart-degree-tick,.chart-house-line){stroke:#FFF !important}
html[data-theme="night"] body[data-wheel-template="mono"] :is(#chart,#chart-sa,#chart-sec,#chart-tr,#chart-syn)
  :is(.planet-glyph,text[paint-order="stroke"],.aspect-halo){stroke:var(--bg) !important}
html[data-theme="night"] body[data-wheel-template="mono"] :is(#chart,#chart-sa,#chart-sec,#chart-tr,#chart-syn)
  :is(line,circle,path)[stroke]:not([stroke="none"]):not(.aspect-halo):not(.planet-halo){stroke:#FFF !important}
html[data-theme="night"] body[data-wheel-template="mono"] :is(#chart,#chart-sa,#chart-sec,#chart-tr,#chart-syn)
  :is(line,circle)[fill]:not([fill="none"]):not(.chart-sign):not(.planet-halo){fill:#FFF !important}

body[data-wheel-template="continental"] .chart-sign[data-sign="0"],
body[data-wheel-template="continental"] .chart-sign[data-sign="4"],
body[data-wheel-template="continental"] .chart-sign[data-sign="8"]{fill:#F7E7E0 !important}
body[data-wheel-template="continental"] .chart-sign[data-sign="1"],
body[data-wheel-template="continental"] .chart-sign[data-sign="5"],
body[data-wheel-template="continental"] .chart-sign[data-sign="9"]{fill:#EFEDE1 !important}
body[data-wheel-template="continental"] .chart-sign[data-sign="2"],
body[data-wheel-template="continental"] .chart-sign[data-sign="6"],
body[data-wheel-template="continental"] .chart-sign[data-sign="10"]{fill:#E6EDF2 !important}
body[data-wheel-template="continental"] .chart-sign[data-sign="3"],
body[data-wheel-template="continental"] .chart-sign[data-sign="7"],
body[data-wheel-template="continental"] .chart-sign[data-sign="11"]{fill:#E4EDE8 !important}
body[data-wheel-template="continental"] .chart-house{font-size:15px !important;fill:#7C8580 !important;font-weight:600 !important}
body[data-wheel-template="continental"] .chart-house-line{opacity:.75 !important;stroke-width:.9px !important}
body[data-wheel-template="continental"] .chart-sign-divider{stroke-opacity:.7 !important}
body[data-wheel-template="continental"] .planet-glyph{filter:none !important}


/* ══════ 夜晚模式 · 盘面 ══════
   盘面颜色是渲染时内联写死的，靠 #535 给每类元素补的 class 当钩子覆盖，不动渲染代码。
   ⛔ 每条都要 !important：内联属性压不住普通规则。
   行星色取 App 的 SKIN_NIGHT —— 同色相、明度抬到 ~66%，直接把日间色调暗在黑底上会糊成一团。 */
html[data-theme="night"] .chart-ring{stroke:var(--ring-line) !important}
html[data-theme="night"] .chart-sign-divider{stroke:#62543F !important}
html[data-theme="night"] .chart-degree-tick{stroke:#7A6850 !important}
html[data-theme="night"] .chart-house-line{stroke:#5E5344 !important}
html[data-theme="night"] .chart-house-line-angular{stroke:var(--accent) !important}
html[data-theme="night"] .chart-house{fill:#9C9285 !important}
/* 盘里的数字一律走正文白，别用 dim —— Steven：深色模式下数字要白才看得清 */
html[data-theme="night"] :is(.planet-deg,.planet-min){fill:var(--text) !important}

/* 星座扇形的底色走 4 个 SVG 渐变，改 stop 就够，不用碰 fill */
html[data-theme="night"] #elemFire stop{stop-color:rgba(214,143,133,.10) !important}
html[data-theme="night"] #elemEarth stop{stop-color:rgba(207,192,138,.09) !important}
html[data-theme="night"] #elemAir stop{stop-color:rgba(143,182,212,.10) !important}
html[data-theme="night"] #elemWater stop{stop-color:rgba(139,208,185,.09) !important}

/* 相位线按角度分色（合/刑/冲用暖，六合/三合用冷，小相位走中性） */
html[data-theme="night"] .aspect-line[data-angle="0"],
html[data-theme="night"] .aspect-line[data-angle="30"],
html[data-theme="night"] .aspect-line[data-angle="45"],
html[data-theme="night"] .aspect-line[data-angle="135"],
html[data-theme="night"] .aspect-line[data-angle="150"]{stroke:#8A8378 !important}
html[data-theme="night"] .aspect-line[data-angle="60"],
html[data-theme="night"] .aspect-line[data-angle="120"]{stroke:#7FA8C9 !important}
html[data-theme="night"] .aspect-line[data-angle="90"],
html[data-theme="night"] .aspect-line[data-angle="180"]{stroke:#D08A80 !important}

/* 行星符号：逐颗换成夜间色 */
html[data-theme="night"] .chart-planet[data-planet-id="sun"] .planet-glyph,
html[data-theme="night"] .chart-planet-outer[data-planet-id="sun"] .planet-glyph,
html[data-theme="night"] #chart text.planet-glyph[data-planet-id="sun"]{fill:#E5BA6C !important}
html[data-theme="night"] .chart-planet[data-planet-id="moon"] .planet-glyph,
html[data-theme="night"] .chart-planet-outer[data-planet-id="moon"] .planet-glyph,
html[data-theme="night"] #chart text.planet-glyph[data-planet-id="moon"]{fill:#9FBACB !important}
html[data-theme="night"] .chart-planet[data-planet-id="mercury"] .planet-glyph,
html[data-theme="night"] .chart-planet-outer[data-planet-id="mercury"] .planet-glyph,
html[data-theme="night"] #chart text.planet-glyph[data-planet-id="mercury"]{fill:#C6CB8A !important}
html[data-theme="night"] .chart-planet[data-planet-id="venus"] .planet-glyph,
html[data-theme="night"] .chart-planet-outer[data-planet-id="venus"] .planet-glyph,
html[data-theme="night"] #chart text.planet-glyph[data-planet-id="venus"]{fill:#84CDB4 !important}
html[data-theme="night"] .chart-planet[data-planet-id="mars"] .planet-glyph,
html[data-theme="night"] .chart-planet-outer[data-planet-id="mars"] .planet-glyph,
html[data-theme="night"] #chart text.planet-glyph[data-planet-id="mars"]{fill:#D78479 !important}
html[data-theme="night"] .chart-planet[data-planet-id="jupiter"] .planet-glyph,
html[data-theme="night"] .chart-planet-outer[data-planet-id="jupiter"] .planet-glyph,
html[data-theme="night"] #chart text.planet-glyph[data-planet-id="jupiter"]{fill:#9584CD !important}
html[data-theme="night"] .chart-planet[data-planet-id="saturn"] .planet-glyph,
html[data-theme="night"] .chart-planet-outer[data-planet-id="saturn"] .planet-glyph,
html[data-theme="night"] #chart text.planet-glyph[data-planet-id="saturn"]{fill:#9AA5A6 !important}
html[data-theme="night"] .chart-planet[data-planet-id="uranus"] .planet-glyph,
html[data-theme="night"] .chart-planet-outer[data-planet-id="uranus"] .planet-glyph,
html[data-theme="night"] #chart text.planet-glyph[data-planet-id="uranus"]{fill:#84A1CD !important}
html[data-theme="night"] .chart-planet[data-planet-id="neptune"] .planet-glyph,
html[data-theme="night"] .chart-planet-outer[data-planet-id="neptune"] .planet-glyph,
html[data-theme="night"] #chart text.planet-glyph[data-planet-id="neptune"]{fill:#84BECD !important}
html[data-theme="night"] .chart-planet[data-planet-id="pluto"] .planet-glyph,
html[data-theme="night"] .chart-planet-outer[data-planet-id="pluto"] .planet-glyph,
html[data-theme="night"] #chart text.planet-glyph[data-planet-id="pluto"]{fill:#C08BC8 !important}
html[data-theme="night"] :is(.chart-planet,.chart-planet-outer):is([data-planet-id="node"],[data-planet-id="southnode"]) .planet-glyph,
html[data-theme="night"] #chart text.planet-glyph:is([data-planet-id="node"],[data-planet-id="southnode"]){fill:#C3C8BE !important}
html[data-theme="night"] :is(.chart-planet,.chart-planet-outer)[data-planet-id="chiron"] .planet-glyph,
html[data-theme="night"] #chart text.planet-glyph[data-planet-id="chiron"]{fill:#CDAA84 !important}
html[data-theme="night"] :is(.chart-planet,.chart-planet-outer)[data-planet-id="lilith"] .planet-glyph,
html[data-theme="night"] #chart text.planet-glyph[data-planet-id="lilith"]{fill:#CD84CD !important}
html[data-theme="night"] :is(.chart-planet,.chart-planet-outer)[data-planet-id="ceres"] .planet-glyph,
html[data-theme="night"] #chart text.planet-glyph[data-planet-id="ceres"]{fill:#A0CD84 !important}
html[data-theme="night"] :is(.chart-planet,.chart-planet-outer)[data-planet-id="pallas"] .planet-glyph,
html[data-theme="night"] #chart text.planet-glyph[data-planet-id="pallas"]{fill:#84A4CD !important}
html[data-theme="night"] :is(.chart-planet,.chart-planet-outer)[data-planet-id="juno"] .planet-glyph,
html[data-theme="night"] #chart text.planet-glyph[data-planet-id="juno"]{fill:#CD84A8 !important}
html[data-theme="night"] :is(.chart-planet,.chart-planet-outer)[data-planet-id="vesta"] .planet-glyph,
html[data-theme="night"] #chart text.planet-glyph[data-planet-id="vesta"]{fill:#D29F7F !important}
/* 虚点（福点/精神点等）统一走暖白，别留在日间的深色上 */
html[data-theme="night"] :is(.chart-planet,.chart-planet-outer):not([data-planet-id="sun"]):not([data-planet-id="moon"]):not([data-planet-id="mercury"]):not([data-planet-id="venus"]):not([data-planet-id="mars"]):not([data-planet-id="jupiter"]):not([data-planet-id="saturn"]):not([data-planet-id="uranus"]):not([data-planet-id="neptune"]):not([data-planet-id="pluto"]):not([data-planet-id="node"]):not([data-planet-id="southnode"]):not([data-planet-id="chiron"]):not([data-planet-id="lilith"]):not([data-planet-id="ceres"]):not([data-planet-id="pallas"]):not([data-planet-id="juno"]):not([data-planet-id="vesta"]) .planet-glyph{fill:#C9BFA8 !important}

/* 星座符号按四元素走夜间色 */
html[data-theme="night"] .sign-glyph[data-sign="0"],html[data-theme="night"] .sign-glyph[data-sign="4"],html[data-theme="night"] .sign-glyph[data-sign="8"]{fill:var(--fire) !important}
html[data-theme="night"] .sign-glyph[data-sign="1"],html[data-theme="night"] .sign-glyph[data-sign="5"],html[data-theme="night"] .sign-glyph[data-sign="9"]{fill:var(--earth) !important}
html[data-theme="night"] .sign-glyph[data-sign="2"],html[data-theme="night"] .sign-glyph[data-sign="6"],html[data-theme="night"] .sign-glyph[data-sign="10"]{fill:var(--air) !important}
html[data-theme="night"] .sign-glyph[data-sign="3"],html[data-theme="night"] .sign-glyph[data-sign="7"],html[data-theme="night"] .sign-glyph[data-sign="11"]{fill:var(--water) !important}

/* ══ 夜晚 × 六种模板 ══ 模板那批规则也是内联级 !important，夜间必须再压一层 */
/* 夜间同理：原来的 #2B2419 比卡片底 #1E1813 更暖更亮，就是深色版的那层米黄 */
html[data-theme="night"] body[data-wheel-template="classical"] .chart-sign{fill:#1E1813 !important}
html[data-theme="night"] body[data-wheel-template="classical"] .chart-ring{stroke:#8A8073 !important}
html[data-theme="night"] body[data-wheel-template="classical"] .chart-sign-divider{stroke:#7A6C58 !important}
html[data-theme="night"] body[data-wheel-template="minimal"] .chart-sign{fill:#1E1A16 !important}
html[data-theme="night"] body[data-wheel-template="mono"] .chart-sign{fill:#171614 !important}
html[data-theme="night"] body[data-wheel-template="mono"] .chart-sign.chart-sign-alt{fill:#1F1D1A !important}
html[data-theme="night"] body[data-wheel-template="mono"] :is(#chart,#chart-sa,#chart-sec,#chart-tr,#chart-syn){filter:grayscale(1) brightness(1.25) !important}
html[data-theme="night"] body[data-wheel-template="bold"] .chart-ring{stroke:#9A8A6E !important}
html[data-theme="night"] body[data-wheel-template="bold"] .chart-sign-divider{stroke:#8A7A5E !important}
html[data-theme="night"] body[data-wheel-template="continental"] .chart-sign[data-sign="0"],
html[data-theme="night"] body[data-wheel-template="continental"] .chart-sign[data-sign="4"],
html[data-theme="night"] body[data-wheel-template="continental"] .chart-sign[data-sign="8"]{fill:#33221E !important}
html[data-theme="night"] body[data-wheel-template="continental"] .chart-sign[data-sign="1"],
html[data-theme="night"] body[data-wheel-template="continental"] .chart-sign[data-sign="5"],
html[data-theme="night"] body[data-wheel-template="continental"] .chart-sign[data-sign="9"]{fill:#2E2A1C !important}
html[data-theme="night"] body[data-wheel-template="continental"] .chart-sign[data-sign="2"],
html[data-theme="night"] body[data-wheel-template="continental"] .chart-sign[data-sign="6"],
html[data-theme="night"] body[data-wheel-template="continental"] .chart-sign[data-sign="10"]{fill:#1E2833 !important}
html[data-theme="night"] body[data-wheel-template="continental"] .chart-sign[data-sign="3"],
html[data-theme="night"] body[data-wheel-template="continental"] .chart-sign[data-sign="7"],
html[data-theme="night"] body[data-wheel-template="continental"] .chart-sign[data-sign="11"]{fill:#1C2B26 !important}

/* ══ 夜晚模式 · 页面 chrome ══
   这几块的底色是写死的浅色（顶栏胶囊、浮层菜单、缩放条、右栏按钮、数据抽屉），
   不盖住就会在深色页面上留几块刺眼的白。 */
/* embed 模式下 body 是透明的（好让宿主底色透出来）。夜间必须自己铺底，
   否则布局一变就从缝里露出宿主的白。 */
html[data-theme="night"] body{background:var(--bg) !important}
/* 顶栏时间轴：日间那圈 inset 白线是「玻璃高光」，只画在上边缘 ——
   深底上就成了「上面一条白边、下面还是黑糊糊」（Steven 2026-08-25）。
   高光去掉，改成资料库按钮同款的整圈琥珀色描边，四边一样亮。 */
html[data-theme="night"] #ci-controlbar-pill{
  background:rgba(30,24,19,.86) !important;
  border-color:var(--accent) !important;
  box-shadow:0 0.25rem 1rem rgba(0,0,0,.35) !important}
html[data-theme="night"] .ci-controlbar #ov-menu{
  border-color:var(--accent) !important;
  box-shadow:0 0.25rem 1rem rgba(0,0,0,.35) !important}
html[data-theme="night"] #ov-menu{background:rgba(30,24,19,.94) !important;border-color:var(--border) !important}
html[data-theme="night"] #chart-zoom-ctl{background:rgba(30,24,19,.90) !important;border-color:var(--border) !important}
html[data-theme="night"] #data-drawer{background:var(--bg-card) !important}
html[data-theme="night"] .data-launcher button{background:var(--bg-card) !important;border-color:var(--border) !important;color:var(--text-dim) !important}
html[data-theme="night"] .data-launcher button:hover{background:var(--bg-hover) !important;color:var(--accent) !important}

/* 相位表 / 数据表里的行星色也是给白底调的，深底上土星冥王直接看不见 —— 换成盘面同一套夜间色 */
html[data-theme="night"] .pcol-sun{color:#E5BA6C !important}
html[data-theme="night"] .pcol-moon{color:#9FBACB !important}
html[data-theme="night"] .pcol-mercury{color:#C6CB8A !important}
html[data-theme="night"] .pcol-venus{color:#84CDB4 !important}
html[data-theme="night"] .pcol-mars{color:#D78479 !important}
html[data-theme="night"] .pcol-jupiter{color:#9584CD !important}
html[data-theme="night"] .pcol-saturn{color:#9AA5A6 !important}
html[data-theme="night"] .pcol-uranus{color:#84A1CD !important}
html[data-theme="night"] .pcol-neptune{color:#84BECD !important}
html[data-theme="night"] .pcol-pluto{color:#C08BC8 !important}
html[data-theme="night"] .pcol-chiron{color:#CDAA84 !important}
html[data-theme="night"] .pcol-node{color:#C3C8BE !important}

/* 方盘的「回圆盘」按钮 + 90°盘那整套指针面板：底色也是写死的白 */
html[data-theme="night"] #square-to-circle{background:rgba(30,24,19,.92) !important;border-color:var(--border) !important;color:var(--text-dim) !important}
html[data-theme="night"] #dial-pointer-panel{background:var(--bg-card) !important;border-color:var(--border) !important}
html[data-theme="night"] :is(.der-tab,.dpp-mode-btn,.dpp-scan-btn,.dfb-nav,.dpp-orb-sel){background:var(--bg-card) !important;border-color:var(--border) !important;color:var(--text-dim) !important}
html[data-theme="night"] :is(.der-tab.active,.dpp-mode-btn.active,.dpp-scan-btn.active){background:var(--bg-hover) !important;color:var(--accent) !important}
html[data-theme="night"] details.der-tree{background:var(--bg-card) !important;border-color:var(--border) !important}

/* ① 行星符号的投影：主站原参数（dx.6 dy1.4 模糊.9 不透明.32）在深底上糊成一圈重影。
   换成 App/AstroGold 那套（dx.25 dy.45 模糊.35 不透明.16），只留一点点体积感。 */
html[data-theme="night"] .planet-glyph{filter:drop-shadow(0.25px 0.45px 0.35px rgba(0,0,0,.16)) !important}

/* ② 相位表：格线是给白底调的浅灰，度数和相位符号也偏暗 */
html[data-theme="night"] table.bi-mat td.bi-cell{border-color:rgba(255,255,255,.13) !important}
html[data-theme="night"] table.bi-mat tbody tr:nth-of-type(even) td.bi-cell{background-color:rgba(255,255,255,.028) !important}
html[data-theme="night"] table.bi-mat td.bi-cell.bi-row-hover,
html[data-theme="night"] table.bi-mat td.bi-cell.bi-col-hover{background-color:rgba(219,126,79,.14) !important}
html[data-theme="night"] table.bi-mat td.bi-cell.bi-row-hover.bi-col-hover{background-color:rgba(219,126,79,.26) !important}
html[data-theme="night"] table.bi-mat .bi-orb{color:#B9AF9F !important}
html[data-theme="night"] table.bi-mat td.bi-cell:has(.asp-sym-red) :is(.bi-asp,.bi-orb){color:#E0897C !important}
html[data-theme="night"] table.bi-mat td.bi-cell:has(.asp-sym-blue) :is(.bi-asp,.bi-orb){color:#8FB6D4 !important}
html[data-theme="night"] table.bi-mat td.bi-cell:has(.asp-sym-green) :is(.bi-asp,.bi-orb){color:#8BD0B9 !important}
html[data-theme="night"] table.bi-mat td.bi-cell:has(.asp-sym-brown) :is(.bi-asp,.bi-orb){color:#CDAA84 !important}
html[data-theme="night"] table.bi-mat td.bi-cell:has(.asp-sym-gray) :is(.bi-asp,.bi-orb){color:#A79E90 !important}
/* 三角相位表（左栏那张）同理 */
html[data-theme="night"] .asp-tri .asp-sym-red{color:#E0897C !important}
html[data-theme="night"] .asp-tri .asp-sym-gray{color:#A79E90 !important}
html[data-theme="night"] :is(.bi-rc-pl,.bi-rc-lot,.bi-asp){text-shadow:none !important}

/* ══ 夜晚模式 · 关系盘 / 回归盘 / 数据面板 ══
   这三处是独立的全屏工作区，之前的扫描只在圆盘状态下做，压根没打开过它们 —— 全是纯白 1600×1000。 */
html[data-theme="night"] :is(#rel-ws-overlay,#ret-ws-overlay){background:var(--bg) !important}
html[data-theme="night"] :is(.rws-cfg,.rws-main){background:var(--bg) !important;border-color:var(--border) !important}
html[data-theme="night"] .rws-cfg{border-right-color:var(--border) !important}
html[data-theme="night"] :is(.rws-chip-label,.rws-year-chip,.rws-select,.rws-tl-btn,.rws-asp-pill){background:var(--bg-card) !important;border-color:var(--border) !important;color:var(--text) !important}
html[data-theme="night"] :is(.rws-year-chip,.rws-tl-btn):hover{background:var(--bg-hover) !important;border-color:var(--accent) !important}
html[data-theme="night"] :is(.rws-year-chip.active,.rws-cfg button.active){background:rgba(219,126,79,.16) !important;border-color:var(--accent) !important;color:var(--accent) !important}
html[data-theme="night"] .rws-cfg :is(input,select,.coord-row){background:var(--bg-card) !important;border-color:var(--border) !important;color:var(--text) !important}
html[data-theme="night"] .rws-cfg input::placeholder{color:var(--text-faint) !important}
html[data-theme="night"] .rws-cfg button{background:var(--bg-card) !important;border-color:var(--border) !important;color:var(--text-dim) !important}

/* 打开数据面板后，星盘那张卡片会被铺成白底 */
html[data-theme="night"] :is(.card.chart-integrated,.chart-integrated .ci-chart){background:var(--bg-card) !important}

/* 设定弹窗里的按钮（「添加中点」那类）和它的下拉框 */
html[data-theme="night"] #settings-overlay :is(button,select,input[type="text"],input[type="number"]){background:var(--bg-card) !important;border-color:var(--border) !important;color:var(--text) !important}
html[data-theme="night"] #settings-overlay button:hover{background:var(--bg-hover) !important;border-color:var(--accent) !important;color:var(--accent) !important}
/* 两个工作区里剩下的零散按钮（模式切换、互换双方…）一网打尽 */
html[data-theme="night"] :is(#rel-ws-overlay,#ret-ws-overlay) button{background:var(--bg-card) !important;border-color:var(--border) !important;color:var(--text-dim) !important}
html[data-theme="night"] :is(#rel-ws-overlay,#ret-ws-overlay) button:hover{background:var(--bg-hover) !important;border-color:var(--accent) !important;color:var(--accent) !important}
html[data-theme="night"] :is(#rel-ws-overlay,#ret-ws-overlay) button.active{background:rgba(219,126,79,.16) !important;border-color:var(--accent) !important;color:var(--accent) !important}
html[data-theme="night"] :is(#rel-ws-overlay,#ret-ws-overlay) .rws-close{background:transparent !important;border:0 !important;color:var(--text-dim) !important}

/* ══ 夜晚模式 · 批量兜底 ══
   从 chart.css 里把所有写死浅色底的规则（#fff / #FAF9F5 / #fafafa / #FAF6EE …）全量扫出来，
   逐条生成夜间版。⛔ 手工一个个面板点着找会漏 —— 法达、气质禀赋、希腊化那批面板要算 8 秒才渲染完，
   上一轮扫描等 900ms 就走，扫出来全是 0（假阴性）。 */
html[data-theme="night"] .phases-table th,
html[data-theme="night"] .stations-table th,
html[data-theme="night"] .tmp-table th,
html[data-theme="night"] .tmp-table tfoot td{background:var(--bg-subtle) !important}
html[data-theme="night"] .dyn-view-pill,
html[data-theme="night"] table.bi-mat td.bi-cell[title]:hover::after,
html[data-theme="night"] table.bi-tri td.asp-cell::after,
html[data-theme="night"] .data-launcher button,
html[data-theme="night"] body.data-open .ci-chart,
html[data-theme="night"] body.data-open .chart-integrated,
html[data-theme="night"] body.data-open .data-launcher button,
html[data-theme="night"] .data-drawer,
html[data-theme="night"] .transit-modal .transit-panel,
html[data-theme="night"] .dy-el-tabs,
html[data-theme="night"] .btn-pair.secondary,
html[data-theme="night"] .form-adb-row input,
html[data-theme="night"] .form-adb-row button,
html[data-theme="night"] #tab-tables .stars-card,
html[data-theme="night"] .star-modal,
html[data-theme="night"] .star-modal .sm-close,
html[data-theme="night"] .dx-row,
html[data-theme="night"] .dist-cfg-menu,
html[data-theme="night"] .zr-col,
html[data-theme="night"] .raa-params,
html[data-theme="night"] .raa-chrono,
html[data-theme="night"] .fd-wrap,
html[data-theme="night"] .fd-row,
html[data-theme="night"] .pf-box,
html[data-theme="night"] .fd2pf-row,
html[data-theme="night"] .phase-lookup-input,
html[data-theme="night"] .phase-result-now,
html[data-theme="night"] .tmp-card,
html[data-theme="night"] .tmp-summary,
html[data-theme="night"] .tmp-detail,
html[data-theme="night"] .card,.subject-card,.form-card,
html[data-theme="night"] body .data-launcher button,
html[data-theme="night"] .hell-tl-pill,
html[data-theme="night"] .hell-pna-card,
html[data-theme="night"] .hell-role-chip,
html[data-theme="night"] .hell-aside-card,
html[data-theme="night"] .hell-help-inner,
html[data-theme="night"] .year-fortune-modal .yf-inner,
html[data-theme="night"] .hell-sect-chip,
html[data-theme="night"] .hell-cons-row,
html[data-theme="night"] .hell-heliacal-bar,
html[data-theme="night"] .hell-act-target-chip,
html[data-theme="night"] .hell-activation-tbl,
html[data-theme="night"] .hell-act-card,
html[data-theme="night"] .hell-act-nav,
html[data-theme="night"] .hell-act-date-input,
html[data-theme="night"] .hell-act-filt,
html[data-theme="night"] body[data-asp-style="2"] .chart-integrated .ci-aspect .asp-tri td.asp-diag .asp-sym-lg,
html[data-theme="night"] body[data-asp-style="3"] .chart-integrated .ci-aspect .asp-tri td.asp-diag .asp-sym-lg,
html[data-theme="night"] body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri td.asp-diag .asp-sym-lg,
html[data-theme="night"] body[data-asp-style="5"] .chart-integrated .ci-aspect,
html[data-theme="night"] body[data-asp-style="5"] .chart-integrated .ci-aspect .asp-tri td,
html[data-theme="night"] body[data-asp-style="5"] .chart-integrated .ci-aspect .asp-tri td.asp-diag .asp-sym-lg{background:var(--bg-card) !important}

/* ══ 夜晚模式 · 文字兜底 ══
   底色换深之后，那些给白底写死的近黑 / 深灰文字就看不见了（法达表的日期年龄是 #000）。
   只挑「低饱和 + 偏暗」的改，彩色（相位红蓝、行星色）不碰 —— 那些是语义色，前面单独提亮过。 */
html[data-theme="night"] #pattern-content .sym-big,
html[data-theme="night"] #pattern-content .feat-item,
html[data-theme="night"] .pcol-pluto,
html[data-theme="night"] .tx-badge.phase.phase-new,
html[data-theme="night"] .fd-row.fd-major-start.fd-maj-mars .fd-date,.fd-row.fd-major-start.fd-maj-mars .fd-age,
html[data-theme="night"] .fd-row .fd-sym.fd-hard-saturn,
html[data-theme="night"] .acg-search input,
html[data-theme="night"] body[data-asp-style="3"] .chart-integrated .ci-aspect .asp-tri td.asp-diag .asp-sym-lg,
html[data-theme="night"] body[data-asp-style="3"] .chart-integrated .ci-aspect .asp-tri th.asp-rowlbl .asp-sym-lg,
html[data-theme="night"] body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri td.asp-diag .asp-sym-lg,
html[data-theme="night"] body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri td.asp-cell::after,
html[data-theme="night"] body[data-asp-style="5"] .chart-integrated .ci-aspect .asp-tri th.asp-rowlbl .asp-sym-lg,
html[data-theme="night"] body[data-asp-style="5"] .chart-integrated .ci-aspect .asp-tri td.asp-diag .asp-sym-lg,
html[data-theme="night"] body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri :is(td,th) .asp-sym-lg.pcol-node{color:var(--text) !important}
html[data-theme="night"] .pcol-sun,
html[data-theme="night"] .pcol-fortune,
html[data-theme="night"] table.bi-mat td.bi-cell:has(.asp-sym-green) .bi-asp,table.bi-mat td.bi-cell:has(.asp-sym-green) .bi-orb,
html[data-theme="night"] table.bi-mat td.bi-cell:has(.asp-sym-brown) .bi-asp,table.bi-mat td.bi-cell:has(.asp-sym-brown) .bi-orb,
html[data-theme="night"] table.bi-mat td.bi-cell:has(.asp-sym-gray) .bi-asp,table.bi-mat td.bi-cell:has(.asp-sym-gray) .bi-orb,
html[data-theme="night"] .ci-notes-hint.saved,
html[data-theme="night"] .tx-badge.tri,
html[data-theme="night"] .tx-badge.conj,
html[data-theme="night"] .tx-badge.ingress,
html[data-theme="night"] .tx-yr-pill.tri,
html[data-theme="night"] .tx-yr-pill.conj,
html[data-theme="night"] .tx-yr-pill.ingress,
html[data-theme="night"] .asp-tri .asp-sym-gray,
html[data-theme="night"] .zr-badge-co,
html[data-theme="night"] .phases-table td.ph-tag.ph-new,
html[data-theme="night"] .stations-table td.fs-fast,
html[data-theme="night"] .hell-aside-label,
html[data-theme="night"] .hell-mr-mid,
html[data-theme="night"] .hell-cons-pill.hell-cons-ok,
html[data-theme="night"] .hell-topical-chip[data-elem="earth"] .hell-topical-h,
html[data-theme="night"] .hell-topical-chip[data-elem="air"]   .hell-topical-h,
html[data-theme="night"] .hell-topical-chip[data-elem="water"] .hell-topical-h,
html[data-theme="night"] .hell-topical-chip[data-elem="earth"]:hover,
html[data-theme="night"] .hell-topical-chip[data-elem="air"]:hover,
html[data-theme="night"] .hell-topical-chip[data-elem="water"]:hover,
html[data-theme="night"] .hell-topical-tag-angular,
html[data-theme="night"] body[data-asp-style="3"] .chart-integrated .ci-aspect .asp-tri td.asp-cell::after,
html[data-theme="night"] body[data-asp-style="5"] .chart-integrated .ci-aspect .asp-tri td.asp-cell::after,
html[data-theme="night"] body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri :is(td,th) .asp-sym-lg.pcol-moon,
html[data-theme="night"] body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri :is(td,th) .asp-sym-lg.pcol-jupiter{color:var(--text-dim) !important}

/* ══ 夜晚模式 · 收尾 ══ */

/* ① 星盘下那张三角相位表：格线是 rgba(0,0,0,.05)，深底上等于不存在；度数也要够白 */
html[data-theme="night"] table.bi-tri :is(td,th){border-bottom-color:rgba(255,255,255,.11) !important;border-right-color:rgba(255,255,255,.11) !important}
html[data-theme="night"] table.bi-tri th.bi-axis{background:rgba(219,126,79,.10) !important}
html[data-theme="night"] table.bi-tri th.bi-corner{background:linear-gradient(135deg,rgba(219,126,79,.14) 50%,rgba(219,126,79,.05) 50%) !important}
html[data-theme="night"] :is(.asp-tri .asp-orb,.chart-integrated .ci-aspect .asp-tri .asp-orb){color:var(--text) !important}
html[data-theme="night"] :is(table.bi-tri td.asp-cell,.chart-integrated .ci-aspect .asp-tri td.asp-cell)::after{color:var(--text) !important;background:transparent !important}

/* ② 夜间一律不要投影 —— 本命 / 行运 / 次限 / 太阳弧 / 回归 / 关系盘，凡是挂了 SVG 滤镜的字形全关掉。
   深底上那圈黑影只会糊字，AstroGold 夜间也是平的（Steven 2026-08-25 指定）。 */
html[data-theme="night"] .planet-glyph{filter:none !important}
html[data-theme="night"] svg text[filter]{filter:none !important}
html[data-theme="night"] svg [filter*="planetShadow"]{filter:none !important}

/* ③ 跨行选择器组漏网的：法达大运起始行的日期/年龄写死了 #000 */
html[data-theme="night"] :is(.fd-row.fd-major-start.fd-maj-node-s,.fd-row.fd-major-start.fd-maj-node-n,.fd-row.fd-major-start.fd-maj-mars) :is(.fd-date,.fd-age){color:var(--text) !important}
html[data-theme="night"] :is(.fd-sym,.pf-sym,.tl-fb-sym){color:var(--text) !important}

/* ④ 释放期(ZR)的彩色小标签：底是浅色系，深底上一片刺眼；压暗留色相 */
html[data-theme="night"] .zr-anchor{background:var(--bg-subtle) !important;color:var(--text) !important}
html[data-theme="night"] .zr-badge{color:var(--text) !important}
html[data-theme="night"] .zr-badge-pmin{background:rgba(214,143,133,.22) !important}
html[data-theme="night"] .zr-badge-pmed{background:rgba(214,143,133,.32) !important}
html[data-theme="night"] .zr-badge-fs{background:rgba(229,186,108,.26) !important}
html[data-theme="night"] .zr-badge-pbase{background:rgba(229,186,108,.20) !important}
html[data-theme="night"] .zr-badge-lb{background:rgba(219,126,79,.24) !important}
html[data-theme="night"] .zr-badge-co{background:rgba(143,182,212,.24) !important}
html[data-theme="night"] .zr-badge-cu{background:rgba(139,208,185,.22) !important}
html[data-theme="night"] .hell-loy-narrative{background:rgba(255,255,255,.05) !important}

/* 最后 4 处：气质禀赋的四色标尺、90°盘公式、地图搜索框、土星在相位符号上的专用色 */
html[data-theme="night"]{--tmp-S:#E5BA6C;--tmp-C:#E0897C;--tmp-M:#CFC08A;--tmp-P:#84BECD}
html[data-theme="night"] #dfb-formula{color:var(--text) !important}
html[data-theme="night"] .acg-search{background:rgba(30,24,19,.94) !important;border-color:var(--border) !important;color:var(--text) !important}
html[data-theme="night"] :is(.asp-sym-lg,.sym-pl,.glyph,.glyph-lg).pcol-saturn{color:#9AA5A6 !important}
html[data-theme="night"] :is(.asp-sym-lg,.sym-pl,.glyph,.glyph-lg).pcol-pluto{color:#C08BC8 !important}
html[data-theme="night"] :is(.asp-sym-lg,.sym-pl,.glyph,.glyph-lg).pcol-node{color:#C3C8BE !important}

/* 行星色的高特异性变体（asp-style 1~5 每档都自带一套 !important），逐条生成夜间版覆盖 */
html[data-theme="night"] .pcol-sun{color:#E5BA6C !important}
html[data-theme="night"] .pcol-venus{color:#84CDB4 !important}
html[data-theme="night"] .pcol-saturn{color:#9AA5A6 !important}
html[data-theme="night"] .pcol-pluto{color:#C08BC8 !important}
html[data-theme="night"] body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri :is(td,th) .asp-sym-lg.pcol-sun{color:#E5BA6C !important}
html[data-theme="night"] body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri :is(td,th) .asp-sym-lg.pcol-moon{color:#9FBACB !important}
html[data-theme="night"] body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri :is(td,th) .asp-sym-lg.pcol-mercury{color:#C6CB8A !important}
html[data-theme="night"] body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri :is(td,th) .asp-sym-lg.pcol-venus{color:#84CDB4 !important}
html[data-theme="night"] body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri :is(td,th) .asp-sym-lg.pcol-mars{color:#D78479 !important}
html[data-theme="night"] body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri :is(td,th) .asp-sym-lg.pcol-jupiter{color:#9584CD !important}
html[data-theme="night"] body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri :is(td,th) .asp-sym-lg.pcol-saturn{color:#9AA5A6 !important}
html[data-theme="night"] body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri :is(td,th) .asp-sym-lg.pcol-uranus{color:#84A1CD !important}
html[data-theme="night"] body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri :is(td,th) .asp-sym-lg.pcol-neptune{color:#84BECD !important}
html[data-theme="night"] body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri :is(td,th) .asp-sym-lg.pcol-pluto{color:#C08BC8 !important}
html[data-theme="night"] body[data-asp-style="4"] .chart-integrated .ci-aspect .asp-tri :is(td,th) .asp-sym-lg.pcol-node{color:#C3C8BE !important}

/* ══ 夜晚模式 · 第四轮 ══ */

/* 相位线底下垫着一条 .aspect-halo（米白 #FAF9F5，3px），日间是拿背景色「挖空」让线条清晰，
   深底上就成了一圈刺眼白边 —— 也就是看着像重影的东西。夜间跟着底色走。 */
html[data-theme="night"] .aspect-halo{stroke:var(--bg) !important;opacity:.9 !important}

/* 相位表格线：上一轮只改了颜色，可实际 border-width 是 0，而且选择器也不对 ——
   真正生效的是 .chart-integrated .ci-aspect .asp-tri td 这一串（rgba(0,0,0,.06) 深底上不可见）。 */
html[data-theme="night"] :is(.asp-tri,.chart-integrated .ci-aspect .asp-tri) td{border:1px solid rgba(255,255,255,.14) !important}
html[data-theme="night"] :is(.asp-tri,.chart-integrated .ci-aspect .asp-tri) td.asp-diag{background:rgba(219,126,79,.12) !important;border-color:rgba(255,255,255,.18) !important}
html[data-theme="night"] :is(.asp-tri,.chart-integrated .ci-aspect .asp-tri) td.asp-empty{border-color:rgba(255,255,255,.08) !important}
/* ⛔ asp-style 1~5 每档都自带一套 (0,6,2) 的 !important 边框（style4 是 rgb(44,62,80) 深蓝，
   深底上完全看不见）。这里必须把特异性顶上去：重复一次属性选择器 + :not(.asp-diag)。
   对角格（行星自己那格）保持无边框 —— 它本来就不该有线。 */
html[data-theme="night"][data-theme] body[data-asp-style] .chart-integrated .ci-aspect .asp-tri td:not(.asp-diag){border:1px solid rgba(255,255,255,.16) !important}
html[data-theme="night"][data-theme] body[data-asp-style] .chart-integrated .ci-aspect .asp-tri th:not(.asp-diag){border-color:rgba(255,255,255,.16) !important}
html[data-theme="night"] :is(.asp-tri,.chart-integrated .ci-aspect .asp-tri) th{border-color:rgba(255,255,255,.14) !important}

/* 符号后面若还挂着别的白色垫层，一并跟底色走 */
html[data-theme="night"] :is(.asp-sym-lg,.asp-sym-bg)[style*="background"]{background:transparent !important}

/* 行星符号带一圈 1.4px 的 #FAF9F5 描边（SVG 属性继承下来的，不是 CSS 规则）。
   日间它是拿背景色「挖空」符号、让密集区不糊；深底上就变成一圈白箍 —— 你看到的重影。
   夜间换成底色继续挖空，符号该清楚还是清楚，但不再有白圈。 */
/* ⛔ 只能改「本来就有描边」的那些，靠 [paint-order="stroke"] 精确命中（度数、星座符号没有这个属性）。
   给 #chart text 通配会把它们也描上深色边 —— SVG text 的 stroke-width 默认 1px，
   一旦给了颜色就真画出来，浅色小字直接被吃掉（试过一次，度数全糊）。
   相位标记本身是 fill=#FAF9F5 + stroke=#FAF9F5 2.4px 的「白徽章」，压在相位线上；
   深底上只需把描边换成底色，符号本身留浅色反而更清楚。 */
html[data-theme="night"] :is(#chart,#chart-sa,#chart-sec,#chart-tr,#chart-syn) text[paint-order="stroke"]{stroke:var(--bg) !important}
html[data-theme="night"] text.planet-glyph{stroke:var(--bg) !important}
/* ⛔ 上面那条底色描边是给圆盘的：圆盘的行星符号压在相位线上，渲染时带了
   paint-order:stroke，描边画在字背后起「挖空」作用。90°盘的符号在盘外空白处，
   底下什么都没有，而且它那条渲染路径没给 paint-order —— SVG 默认先填后描，
   1px 的边直接盖在 1.2px 宽的笔画上，等于把符号啃掉大半（Steven 2026-08-26
   截图「外面的行星符号显示不出来」，真身是这个，不只是颜色暗）。 */
/* ⛔ 必须带上 #chart 把特异性顶过上面那条 text[fill="#3A3733"]（它也带 #chart，
   还给了 stroke:var(--bg)）—— 否则土星和北交点这两颗照样被描边啃掉。 */
html[data-theme="night"] body[data-chart-mode="dial90"] #chart text.planet-glyph{stroke:none !important}
/* 指向线跟着各自的行星走：线用的也是日间原色，深底上同样看不见 */
html[data-theme="night"] #chart line.dial-stem{stroke:var(--ring-line) !important;opacity:.75 !important}

/* ══ 盘面尺寸（Steven 2026-08-25）══ */
/* ⛔ 整块只作用于「免费星盘」那一页：日记页 / 推运页把这张盘当 iframe 内嵌，
   它们的盘要保持各自容器给的原尺寸（Steven 2026-08-25：变的仅仅是免费星盘下的尺寸）。 */

/* ⑤ 右下角的 −/+ 缩放控件撤掉，盘固定 115% */
.chart-zoom-ctl{display:none !important}

/* ⛔ 下面整块只在 >1200 生效，和上面那个缩放档位块同一个断点：
   ≤1200 是「顶栏 + 星盘 + 数据」竖着堆的单栏版式，.ci-chart 不是那个居中的方框，
   照抄这些高度上限会把盘顶到顶栏底下（实测 1150 宽时盘上半截整块看不见，
   同宽度生产站是好的）—— 这条断点是复现出来才补的。 */
@media (min-width:769px){
/* ④ 盘的上下留白：.ci-chart 是 flex column + justify:center，盘在里面垂直居中。
   实测这个居中框顶边（ci 顶 +34 内边距）比顶栏时间轴的底边还高 4px，
   所以还得靠一点下移把 MC 从时间轴底下让开 —— 但上一版下移了 28px，
   下移多少、底下就少多少，盘底被切掉 11.5px（Steven 截图圈的就是这块）。
   现在只下移 10px，配合下面缩了 2% 的高度上限，上下各留 12px 余量。
   ⛔ 下移只能用 transform：margin 会撑高内容，.ci-chart 立刻冒纵向滚动条。 */
body.form-hidden[data-chart-zoom]:not(.data-open):not(.focus-active):not(.chrome-journal):not(.chrome-lite) .circle-wrap{transform:translateY(0.625rem)}
body:not(.data-open):not(.chrome-journal):not(.chrome-lite) .chart-integrated .ci-chart{overflow:hidden !important}
/* 行运 / 次限 / 太阳弧下，左栏那张相位表比一屏还高（实测 894px），
   .ci-chart 跟着长到 894 → 居中的盘被推到折线以下，盘底整块看不见。
   给它一个「不超过一屏」的上限，盘就永远在可视区里居中。 */
body:not(.chrome-journal):not(.chrome-lite) .chart-integrated .ci-chart{max-height:calc(100vh - 1.5rem) !important}
/* 给两边一个明确且成比例的高度上限，盘径才由同一个约束决定 —— 不给上限的话
   单盘走容器高、双盘走宽度，又会一大一小（实测 835 / 890）。 */
body.form-hidden[data-chart-zoom]:not(.data-open):not(.focus-active):not(.chrome-journal):not(.chrome-lite) .chart-integrated .ci-chart svg{
  max-height:calc(100vh - 5.25rem) !important}
/* 双盘的 viewBox 比例和单盘不一样（单 278/591、双 442/943），
   要让两张盘的圆一样大，高度上限得差 (278/591)/(442/943)=1.0036 倍。 */
body.form-hidden[data-chart-zoom]:not(.data-open):not(.focus-active):not(.chrome-journal):not(.chrome-lite):is([data-chart-mode="transit"],[data-chart-mode="secondary"],[data-chart-mode="solar-arc"]) .chart-integrated .ci-chart svg{
  max-height:calc((100vh - 5.25rem) * 1.0036) !important}

/* ⑥ 双盘（行运 / 次限 / 太阳弧）要跟本命盘一样大。
   两者 viewBox 不同（本命 613、双盘 949），外圈半径也不同（278 / 442），
   而 zoom 把两边的 svg 宽度拉成同一个值 → 双盘视觉上大了 11%（实测 991 vs 890）。
   这里按「每 viewBox 单位对应多少像素要相等」反推宽度：
   W双 = W单 × (278/613) × (949/442) ≈ 0.974 × W单。
   ⛔ 回归盘 / 关系盘的双盘走各自的工作区容器，不受这条影响（Steven 要求它们保持原样）。 */
body.form-hidden[data-chart-zoom]:not(.data-open):not(.focus-active):not(.chrome-journal):not(.chrome-lite):is([data-chart-mode="transit"],[data-chart-mode="secondary"],[data-chart-mode="solar-arc"]) .circle-wrap{
  width:min(calc(var(--chart-zoom) * 278 / 613 * 949 / 442 * min(calc(100vh - 3rem), 65rem)),100%) !important;
  max-width:min(calc(var(--chart-zoom) * 278 / 613 * 949 / 442 * min(calc(100vh - 3rem), 65rem)),100%) !important}
body.form-hidden[data-chart-zoom]:not(.data-open):not(.chrome-journal):not(.chrome-lite):is([data-chart-mode="transit"],[data-chart-mode="secondary"],[data-chart-mode="solar-arc"]) .chart-integrated .ci-chart svg{
  max-width:min(calc(var(--chart-zoom) * 278 / 613 * 949 / 442 * min(calc(100vh - 3rem), 65rem)),100%) !important}
}

/* ══ 夜晚模式 · 第五轮 ══ */

/* ① 盘面平衡里的象限 / 半球饼图：SVG circle 直接写死 fill="#fff"。
   ⛔ 之前的扫描器只看 CSS background，看不见 SVG 的 fill，所以一直报 0。 */
html[data-theme="night"] #data-drawer svg circle[fill="#fff"],
html[data-theme="night"] #data-drawer svg :is(circle,path,rect)[fill="#FFF"],
html[data-theme="night"] #data-drawer svg :is(circle,path,rect)[fill="#ffffff"]{fill:var(--bg-subtle) !important}
/* 饼图里的数字是深色 fill，底一换就看不见了 */
html[data-theme="night"] #data-drawer svg text{fill:var(--text) !important}

/* ② 双盘外圈的星座符号和宫头度数：同样是「白描边挖空」，而且度数本身是深色（#3A3733 / #2A2724），
   深底上等于隐形。它们没有 paint-order 属性，上一轮的规则够不着。 */
/* ⛔ 星座符号不能用底色描边：1.2px 的深色边会把彩色字形整个包住，看上去就成了黑的
   （Steven 2026-08-25 反馈「外圈星座应该是彩色的，现在是黑的」）。深底上本来就不需要挖空。 */
html[data-theme="night"] :is(#chart,#chart-sa,#chart-sec,#chart-tr,#chart-syn) text.sign-glyph{stroke:none !important}
/* 宫头度数（#3A3733）自带 paint-order:stroke，描边画在字背后，只需把白描边换成底色。 */
html[data-theme="night"] :is(#chart,#chart-sa,#chart-sec,#chart-tr,#chart-syn) text[fill="#3A3733"]{fill:var(--text) !important;stroke:var(--bg) !important}
/* ⛔ 行星度数（#2A2724，.planet-deg / .planet-min）绝不能给描边：
   它们没有 paint-order，SVG 默认「先填后描」，1px 的深色边直接盖在 12px 的数字上，
   笔画本身才 1.2px 宽 —— 整个数字被涂黑，看上去就是「度数完全显示不出来」
   （Steven 2026-08-25 截图圈的就是这个）。深底上本来也不需要挖空。 */
html[data-theme="night"] :is(#chart,#chart-sa,#chart-sec,#chart-tr,#chart-syn) text[fill="#2A2724"]{fill:var(--text) !important;stroke:none !important}

/* 盘里的宫头度数是 #5C5752（给白底调的灰褐），深底上等于隐形；
   ℞ 和相位标记那几个是语义色，提亮而不是刷白。 */
html[data-theme="night"] :is(#chart,#chart-sa,#chart-sec,#chart-tr,#chart-syn) text[fill="#5C5752"]{fill:var(--text) !important}
html[data-theme="night"] :is(#chart,#chart-sa,#chart-sec,#chart-tr,#chart-syn) text[fill="#9C948A"]{fill:var(--text) !important}
html[data-theme="night"] :is(#chart,#chart-sa,#chart-sec,#chart-tr,#chart-syn) :is(text,tspan)[fill="#C44536"],
html[data-theme="night"] :is(#chart,#chart-sa,#chart-sec,#chart-tr,#chart-syn) :is(text,tspan)[fill="#B0463F"]{fill:#E0897C !important}
html[data-theme="night"] :is(#chart,#chart-sa,#chart-sec,#chart-tr,#chart-syn) :is(text,tspan)[fill="#5A6BA0"]{fill:#8FB6D4 !important}

/* ══ 方盘（#chart-square）的夜间 ══
   ⛔ 根因不是「方盘没做夜间」，是上面那批夜间规则的作用域写死了
   :is(#chart,#chart-sa,#chart-sec,#chart-tr,#chart-syn) —— 方盘的 SVG 是独立的
   #chart-square，一条都够不着，所以底跟着 body 变深了、盘上的字还是纯黑。
   方盘用的又是另一套字面色（文字 #000 / 格线 #6B6863），得单独接。 */
html[data-theme="night"] #chart-square text[fill="#000"]{fill:var(--wheel-ink) !important}
/* 格线是方盘的主结构（比圆盘的环线重要一档），夜间不能压到 --ring-line 那么暗 */
html[data-theme="night"] #chart-square :is(rect,line)[stroke="#6B6863"]{stroke:#8A7C6A !important}
/* 四角的元素三角本来就只有 8.5% 不透明度，深底上直接消失 —— 保色相抬明度，口径同盘面 */
html[data-theme="night"] #chart-square polygon[fill="#C44536"]{fill:var(--fire) !important}
html[data-theme="night"] #chart-square polygon[fill="#8B6F47"]{fill:var(--earth) !important}
html[data-theme="night"] #chart-square polygon[fill="#5A7FB5"]{fill:var(--air) !important}
html[data-theme="night"] #chart-square polygon[fill="#4F7F6B"]{fill:var(--water) !important}
html[data-theme="night"] #chart-square polygon{fill-opacity:.14 !important}
/* 四个特殊点（福点/精神点/入庙点/基础点）与 SAN：语义色，提亮不刷白 */
html[data-theme="night"] #chart-square text[fill="#5A7FB5"]{fill:var(--air) !important}
html[data-theme="night"] #chart-square text[fill="#4F7F6B"]{fill:var(--water) !important}
html[data-theme="night"] #chart-square text[fill="#D4A85A"]{fill:#E0C486 !important}
html[data-theme="night"] #chart-square text[fill="#CC785C"]{fill:var(--accent) !important}
/* 格子底的投影滤镜在深底上是黑压黑，白扛一层渲染 */
html[data-theme="night"] #chart-square polygon[filter]{filter:none !important}

/* ══ 90°盘的夜间 ══
   90°盘复用 #chart 这个 id（已在上面的作用域里），但它自己有一套骨架色：
   #1a1a1a 是环线/刻度/谐波大字，#000 是那 360 条度盘刻度，#D32A24 是指针与白羊点。
   这三个值上面一条规则都没覆盖到 —— 所以整张盘在深底上几乎看不见。 */
html[data-theme="night"] #chart text[fill="#1a1a1a"]{fill:var(--wheel-ink) !important}
/* 线和圆退一档到环线色：全用墨色会把骨架画得比行星还抢眼 */
html[data-theme="night"] #chart :is(line,circle,path)[stroke="#1a1a1a"]{stroke:var(--ring-line) !important}
html[data-theme="night"] #chart path[fill="#1a1a1a"]{fill:var(--ring-line) !important}
html[data-theme="night"] #chart :is(line,circle)[stroke="#000"]{stroke:var(--ring-line) !important}
/* 这 14 个 circle 不是刻度，是第八谐波标记（22.5° 的倍数，读 45°/22.5° 分割的定位锚，
   三档大小 6.4/4.4/2.6）。上一轮把它们和 360 条刻度线一起压到环线色，等于埋进环带里
   （Steven 2026-08-26 圈图）。它们比刻度重要一级，夜间要能一眼找到。
   ⛔ 刻度线是 line[stroke="#000"]，跟这条互不干扰，别合并。 */
html[data-theme="night"] #chart circle[fill="#000"]{fill:#FFFFFF !important}
/* 盘心那三个大星座符号是 /zodiac/*.png 位图（黑线条透明底），不是 <text> ——
   fill 改不动它，只能整张翻转。invert 把黑线翻成白，再压一档亮度落到墨色附近。 */
html[data-theme="night"] #chart image[href^="/zodiac/"]{filter:invert(1) brightness(.92)}
/* 指针红是功能色（当前指针在哪），夜间要保持醒目，只提明度不改色相 */
html[data-theme="night"] #chart :is(text,line,polygon)[fill="#D32A24"],
html[data-theme="night"] #chart :is(text,line,polygon)[stroke="#D32A24"]{fill:#E8776A}
html[data-theme="night"] #chart :is(line,polygon)[stroke="#D32A24"]{stroke:#E8776A !important}
html[data-theme="night"] #chart :is(text,polygon)[fill="#D32A24"]{fill:#E8776A !important}

/* ══ 视觉层级 · 候选 B′（Steven 2026-08-26 批准）══ */

/* 四元素底色让位：黄道带该是「安静的骨架」，不该在骨架层再加四个抢眼的颜色。
   ⛔ 只作用于默认模板：mono / minimal / classical / continental 这几个模板本来就
      把 .chart-sign 刷成了平色（而且带 !important），再压暗会把它们的盘面弄没。 */
body[data-wheel-template="classic"] .chart-sign,
body:not([data-wheel-template]) .chart-sign{opacity:.3}

/* 行星旁的星座是从属信息，hover 到那颗行星时再还原成全响度 —— 想看细节随时能看清 */
.chart-planet:hover text.planet-sign,
.chart-planet.focused text.planet-sign{opacity:1 !important}

/* 深底和浅底对 opacity 的反应不一样：同样 0.6，米白底上还有 4.4 的对比，
   深底上只剩 2.83（图形元素的下限是 3:1）。夜间单独抬一档。 */
html[data-theme="night"] text.planet-sign{opacity:.75}

/* ── PNA v4 · Delphic Oracle 8 四区块版 ── */
.hell-pna-legend{font-size:0.6562rem;color:var(--text-dim);font-style:italic;letter-spacing:.02em;line-height:1.4}
.hell-pna-12grid tr.hell-pna-sec th{text-align:left;font-size:0.6562rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-weight:600;padding:0.75rem 0 0.25rem 2px;border-bottom:1px solid rgba(204,120,92,0.18);width:auto}
.hell-pna-12grid tr.hell-pna-sec:first-child th{padding-top:0}
.hell-pna-12grid tr.hell-pna-cols th{text-align:left;font-size:0.625rem;color:var(--text-dim);font-weight:normal;letter-spacing:.1em;padding:0.3125rem 0.25rem 0.125rem 0;width:auto}
.hell-pna-12grid tr.hell-pna-cols th:first-child{width:3.25rem}
.hell-pna-12grid tbody th{width:3.25rem;vertical-align:top;padding-top:0.3125rem}
.hell-pna-cell.hell-pna-do{display:table-cell;text-align:left;vertical-align:top;font-size:0.6875rem;line-height:1.35;padding:0.25rem 0.375rem;color:var(--text);cursor:pointer;border-radius:0.25rem;transition:background-color .16s ease,color .16s ease}
.hell-pna-cell.hell-pna-do:hover{background:rgba(204,120,92,0.08)}
.hell-pna-cell.hell-pna-do:focus-visible{outline:2px solid var(--accent);outline-offset:1px;background:rgba(204,120,92,0.08)}
.hell-pna-cell.hell-pna-do.is-active{background:rgba(204,120,92,0.13)}
.hell-pna-do .hell-pna-dot{font-size:0.75rem;margin-right:0.25rem}
.hell-pna-do .hell-pna-txt{word-break:normal;overflow-wrap:anywhere}
.hell-pna-do.is-na{color:rgba(155,147,138,0.6);font-size:0.6562rem;text-align:left;vertical-align:top;padding:0.25rem 0.375rem 0.25rem 0}
/* 格里的标签不许折成两行。能不能放下取决于「卡片」有多宽，不是窗口有多宽——1528px 宽的
   窗口下卡片反而是两列、每格只有 71px，比手机还窄。所以按容器宽度定字号：一格约等于
   卡宽/4.4，扣掉内边距和圆点还剩约 (卡宽/4.4 − 16)px，最长的六字标签「同区间尊贵位」
   要 6 倍字号，反解出下面这条 3.6cqw − 2.8px，上下限锁在 9–11px。 */
.hell-pna-card{container-type:inline-size}
.hell-pna-cell.hell-pna-do{font-size:clamp(0.5625rem,calc(3.3cqw - 2.8px),0.6875rem)}
@container (max-width:440px){
  .hell-pna-cell.hell-pna-do{padding:0.25rem 0.125rem;letter-spacing:-0.01em}
  .hell-pna-do .hell-pna-dot{font-size:0.5625rem;margin-right:0.0625rem}
  .hell-pna-do.is-na{font-size:0.5625rem;padding:0.25rem 0.125rem 0.25rem 0}
}
.hell-pna-malt ol{list-style:decimal;padding:0.375rem 0 0 1.125rem;margin:0;display:flex;flex-direction:column;gap:0.1875rem}
.hell-pna-malt li{font-size:0.6875rem;color:var(--text-dim);line-height:1.5}
.hell-pna-inspector{position:relative;margin:0.375rem 0.875rem 0.75rem;padding:0.75rem 2rem 0.75rem 0.875rem;border-radius:0.625rem;background:rgba(204,120,92,0.075);color:var(--text)}
.hell-pna-inspector[hidden]{display:none}
.hell-pna-inspector-head{display:flex;align-items:flex-start;justify-content:space-between;gap:0.75rem;margin-right:0.25rem}
.hell-pna-inspector-label{font-size:0.75rem;line-height:1.45;font-weight:650;color:var(--text)}
.hell-pna-inspector-state{flex-shrink:0;font-size:0.6875rem;line-height:1.45;color:var(--accent)}
.hell-pna-inspector-source{margin-top:0.625rem;font-size:0.625rem;line-height:1.4;color:var(--text-dim)}
.hell-pna-inspector-do{margin-top:0.125rem;font-size:0.8125rem;line-height:1.45;font-weight:650;color:var(--text);overflow-wrap:anywhere}
.hell-pna-inspector-reading{margin:0.5rem 0 0;font-size:0.7188rem;line-height:1.6;color:var(--text-dim);text-wrap:pretty}
.hell-pna-inspector-close{position:absolute;top:0.5rem;right:0.5rem;width:1.5rem;height:1.5rem;border:0;border-radius:50%;background:transparent;color:var(--text-dim);font:inherit;font-size:1rem;line-height:1;cursor:pointer}
.hell-pna-inspector-close:hover{background:rgba(38,38,36,0.08);color:var(--text)}
.hell-pna-inspector-close:focus-visible{outline:2px solid var(--accent);outline-offset:1px}

/* ── 矮屏桌面：相位表完整可达 ──
   1366×768 的 Windows 笔记本扣掉 Chrome 顶栏和任务栏后，iframe 只剩约 590px 高。
   默认相位样式 4 把 montage/stage 锁在 28/25rem，并把相位表贴到底；外层又是
   overflow:hidden，结果末尾约 4–5 行被直接裁掉。这里只收紧免费星盘的本命圆盘：
   去掉固定最小高度，矮屏使用紧凑格；再给 stage 独立滚动作为更矮窗口的兜底。 */
@media (min-width:769px) and (max-height:820px){
  body[data-asp-style="4"].embed:not(.chrome-journal):not(.chrome-lite):not([data-dyn-mode]){--compact-aspect-cell:clamp(1.125rem,3.8vh,2.0625rem)}
  body[data-asp-style="4"].embed:not(.chrome-journal):not(.chrome-lite):not([data-dyn-mode]) .ci-montage{min-height:0!important;overflow:visible!important}
  /* scrollbar-gutter:stable —— Windows 的滚动条占位（约 15-17px）、macOS 覆盖式不占位，
     不预留的话竖滚动条一出现，容器宽度立刻少一截，相位表就被挤得更窄。 */
  body[data-asp-style="4"].embed:not(.chrome-journal):not(.chrome-lite):not([data-dyn-mode]) .ci-montage-stage{flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;overflow-x:hidden;scrollbar-width:thin;scrollbar-gutter:stable}
  body[data-asp-style="4"].embed:not(.chrome-journal):not(.chrome-lite):not([data-dyn-mode]) .ci-aspect.active{margin-top:0!important}
  body[data-asp-style="4"].embed:not(.chrome-journal):not(.chrome-lite):not([data-dyn-mode]) .chart-integrated .ci-aspect .asp-tri{width:calc(var(--compact-aspect-cell) * 14)!important}
  body[data-asp-style="4"].embed:not(.chrome-journal):not(.chrome-lite):not([data-dyn-mode]) .chart-integrated .ci-aspect .asp-tri td,
  body[data-asp-style="4"].embed:not(.chrome-journal):not(.chrome-lite):not([data-dyn-mode]) .chart-integrated .ci-aspect .asp-tri th.asp-rowlbl{width:var(--compact-aspect-cell)!important;height:var(--compact-aspect-cell)!important;min-width:var(--compact-aspect-cell)!important;min-height:var(--compact-aspect-cell)!important;max-height:var(--compact-aspect-cell)!important;font-size:0.5938rem!important}
  body[data-asp-style="4"].embed:not(.chrome-journal):not(.chrome-lite):not([data-dyn-mode]) .chart-integrated .ci-aspect .asp-tri .asp-sym-lg{font-size:0.875rem!important;line-height:1!important}
  body[data-asp-style="4"].embed:not(.chrome-journal):not(.chrome-lite):not([data-dyn-mode]) .chart-integrated .ci-aspect .asp-tri .asp-sym-red{font-size:0.8125rem!important}
  body[data-asp-style="4"].embed:not(.chrome-journal):not(.chrome-lite):not([data-dyn-mode]) .chart-integrated .ci-aspect .asp-tri td.asp-cell::after{font-size:0.4688rem!important}
}

/* ── 窄桌面窗口（769–1200px）：顶栏药丸不许被切 ──
   药丸是 nowrap 的 877px，而 .ci-controlbar 只按 >1200 的左栏宽（27rem）让位，
   窄窗口里它两头都溢出：左边压到「此刻·天象」卡片上，右边「今 / ↺ / !」直接看不见
   （实测 1093 宽时右侧被切 92px）。先收紧内边距压进可用宽度；≲1090 仍放不下就折行，
   同时把星盘的顶部留白和高度上限一起让开 —— 不让开盘顶会被顶栏压、盘底会被切。 */
@media (min-width:769px) and (max-width:1200px){
  body.embed:not(.chrome-journal):not(.chrome-lite):not([data-dyn-mode]) .chart-integrated:not(.is-square) .ci-controlbar{left:calc(19rem + 1.5rem)!important}
  .ci-controlbar-pill{max-width:100%!important}
  .ci-controlbar-pill .chart-mode-toggle .cm-btn{padding:0 0.75rem!important}
  .ci-controlbar-pill .chart-date-bar{padding:0 0.375rem!important;gap:0.25rem!important}
  .ci-controlbar-pill .chart-date-bar .cdb-step{padding:0 0.3125rem!important}
  .chart-date-bar .cdb-date{min-width:8.25rem!important;padding:0 0.4375rem!important}
  .chart-date-bar .cdb-btn.cdb-now{padding:0 0.5rem!important}
}
@media (min-width:769px) and (max-width:1200px){
  .ci-controlbar{height:auto!important;align-items:flex-start!important}
  .ci-controlbar-pill{flex-wrap:wrap!important;height:auto!important;row-gap:0.125rem!important;padding:0.1875rem 0.25rem!important;border-radius:1.125rem!important;justify-content:center!important}
  .ci-controlbar-pill .chart-mode-toggle{height:1.875rem!important}
  .ci-controlbar-pill .chart-date-bar{height:auto!important;flex-wrap:wrap!important;justify-content:center!important;row-gap:0.125rem!important}
  .ci-controlbar .chart-date-bar{flex-wrap:wrap!important}
  /* --ci-pill-h 由 chart.html 实测折行后的胶囊高度写进来（中英文行数不一样，CSS 猜不准） */
  body.embed:not(.chrome-journal):not(.chrome-lite):not([data-dyn-mode]) .chart-integrated:not(.is-square) .ci-chart{padding-top:calc(var(--ci-pill-h, 2.375rem) + 1.25rem)!important}
  body.form-hidden[data-chart-zoom]:not(.data-open):not(.focus-active):not(.chrome-journal):not(.chrome-lite) .chart-integrated .ci-chart svg{max-height:calc(100vh - var(--ci-pill-h, 2.375rem) - 2.75rem)!important}
}
