﻿:root {
    /* 主基调：米底 rgb(247,239,226) + 金 rgb(236,199,131) */
    --tone-cream: rgb(247, 239, 226);
    --tone-gold: rgb(236, 199, 131);
    --tone-cream-deep: rgb(238, 228, 212);
    --tone-gold-deep: rgb(212, 168, 95);
    /* 全站操作按钮统一圆角（禁止胶囊形） */
    --btn-radius: 10px;
    --bg-page: var(--tone-cream);
    --bg-sidebar: rgb(241, 232, 216);
    --bg-card: rgba(255, 253, 249, 0.94);
    --bg-card-border: rgba(236, 199, 131, 0.38);
    --text-primary: #3a2f21;
    --text-muted: rgba(58, 47, 33, 0.62);
    --gold: var(--tone-gold);
    --gold-dim: rgba(58, 47, 33, 0.68);
    --accent: var(--tone-gold);
    --accent-hover: rgb(242, 210, 155);
    --cream: rgb(252, 244, 228);
    --cream-text: #3a2f21;
    --wheel-highlight: rgba(236, 199, 131, 0.22);
    --wheel-border: rgba(236, 199, 131, 0.42);
    --tab-inactive: rgba(58, 47, 33, 0.1);
    --panel-1: rgb(252, 249, 242);
    --panel-2: var(--tone-cream);
    --panel-3: var(--tone-cream-deep);
    --line-soft: rgba(58, 47, 33, 0.1);
    --line-strong: rgba(236, 199, 131, 0.55);
    --focus-ring: rgba(236, 199, 131, 0.35);
    --plain-white-soft: rgba(58, 47, 33, 0.1);
    --plain-white-thin: rgba(58, 47, 33, 0.06);
    /* 紫微方盘（与 iztro 同用时） */
    --zw-fei-line: rgba(190, 72, 98, 0.45);
    --zw-board-bg: linear-gradient(145deg, color-mix(in srgb, var(--tone-gold) 14%, transparent), color-mix(in srgb, var(--tone-gold-deep) 10%, transparent));
    --zw-cell-bg: linear-gradient(180deg, color-mix(in srgb, var(--bg-card) 96%, var(--tone-gold) 4%) 0%, color-mix(in srgb, var(--panel-1) 88%, var(--tone-gold) 12%) 100%);
    --zw-cell-border: color-mix(in srgb, var(--text-primary) 12%, var(--tone-gold) 35%);
    --zw-main-color: color-mix(in srgb, var(--text-primary) 78%, #6b1f3d 22%);
    --zw-accent-muted: color-mix(in srgb, var(--text-primary) 45%, transparent);
    --zw-minor-star: color-mix(in srgb, #1a4a8a 55%, var(--text-primary) 45%);
    --font-ui: "Microsoft YaHei", "PingFang SC", "Noto Sans SC", system-ui, sans-serif;
    --font-brand: "Songti SC", "SimSun", "Noto Serif SC", Georgia, serif;
    --font-brand-calligraphy: "Ma Shan Zheng", "STKaiti", "KaiTi", "FZKai-Z03", "STXingkai", "FangSong", "SimSun", serif;
    --active-item-bg: rgba(236, 199, 131, 0.32);
    --hover-item-bg: rgba(236, 199, 131, 0.22);
    --page-glow: rgba(236, 199, 131, 0.18);
}

body.theme-gold {
    --bg-page: var(--tone-cream);
    --bg-sidebar: rgb(241, 232, 216);
    --bg-card: rgba(255, 253, 249, 0.94);
    --bg-card-border: rgba(236, 199, 131, 0.38);
    --text-primary: #2f271c;
    --text-muted: #7a6c5a;
    --gold: var(--tone-gold);
    --gold-dim: #9f7f4a;
    --accent: var(--tone-gold);
    --accent-hover: rgb(242, 210, 155);
    --cream: rgb(252, 244, 228);
    --cream-text: #2b2114;
    --wheel-highlight: rgba(236, 199, 131, 0.22);
    --wheel-border: rgba(236, 199, 131, 0.42);
    --tab-inactive: rgba(58, 47, 33, 0.1);
    --active-item-bg: rgba(236, 199, 131, 0.26);
    --hover-item-bg: rgba(236, 199, 131, 0.16);
    --page-glow: rgba(236, 199, 131, 0.14);
}

body.theme-ink {
    --bg-page: #090705;
    --bg-sidebar: #120f0c;
    --bg-card: rgba(20, 16, 13, 0.94);
    --bg-card-border: rgba(95, 78, 58, 0.35);
    --text-primary: #e6dbcf;
    --text-muted: #948475;
    --gold: rgb(55, 45, 34);
    --gold-dim: #7a6854;
    --accent: rgb(55, 45, 34);
    --accent-hover: #5f4e3a;
    --cream: #2d251d;
    --cream-text: #efe4d2;
    --wheel-highlight: rgba(55, 45, 34, 0.2);
    --wheel-border: rgba(95, 78, 58, 0.45);
    --tab-inactive: #251f19;
    --active-item-bg: rgba(95, 78, 58, 0.26);
    --hover-item-bg: rgba(95, 78, 58, 0.16);
    --page-glow: rgba(95, 78, 58, 0.1);
    --panel-1: #181410;
    --panel-2: #14110d;
    --panel-3: #120f0b;
    --line-soft: rgba(95, 78, 58, 0.28);
    --line-strong: rgba(95, 78, 58, 0.45);
    --focus-ring: rgba(95, 78, 58, 0.2);
    --plain-white-soft: rgba(255, 255, 255, 0.08);
    --plain-white-thin: rgba(255, 255, 255, 0.06);
    --zw-fei-line: rgba(230, 150, 168, 0.42);
    --zw-board-bg: linear-gradient(145deg, rgba(95, 78, 58, 0.22), rgba(55, 45, 34, 0.18));
    --zw-cell-bg: linear-gradient(180deg, color-mix(in srgb, var(--bg-card) 92%, var(--gold) 8%) 0%, color-mix(in srgb, var(--panel-2) 88%, #2a2218 12%) 100%);
    --zw-cell-border: rgba(95, 78, 58, 0.42);
    --zw-main-color: color-mix(in srgb, var(--text-primary) 82%, #f0c8d8 18%);
    --zw-accent-muted: color-mix(in srgb, var(--text-muted) 92%, transparent);
    --zw-minor-star: color-mix(in srgb, #9ec8f0 55%, var(--text-primary) 45%);
}

body.theme-gold {
    --panel-1: rgb(252, 249, 242);
    --panel-2: var(--tone-cream);
    --panel-3: var(--tone-cream-deep);
    --line-soft: rgba(236, 199, 131, 0.28);
    --line-strong: rgba(236, 199, 131, 0.5);
    --focus-ring: rgba(236, 199, 131, 0.32);
    --plain-white-soft: rgba(58, 47, 33, 0.1);
    --plain-white-thin: rgba(58, 47, 33, 0.06);
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    font-family: var(--font-ui);
    background:
        radial-gradient(ellipse 72% 48% at 14% 0%, rgba(236, 199, 131, 0.14), transparent 52%),
        radial-gradient(ellipse 50% 42% at 92% 6%, rgba(255, 255, 255, 0.55), transparent 48%),
        linear-gradient(180deg, rgb(255, 252, 247) 0%, var(--bg-page) 48%, var(--panel-3) 100%);
    color: var(--text-primary);
    line-height: 1.5;
    min-height: 100vh;
}

.app {
    display: flex;
    min-height: 100vh;
    align-items: flex-start;
}

/* —— 左侧品牌/导航轨 —— */
.app-rail {
    width: 256px;
    flex-shrink: 0;
    position: sticky;
    top: 0;
    height: 100vh;
    align-self: flex-start;
    min-height: 100vh;
    background: var(--bg-sidebar);
    border-right: 1px solid rgba(126, 96, 58, 0.14);
    padding: 1.35rem 0.95rem;
    display: flex;
    flex-direction: column;
    gap: 1.1rem;
    box-shadow: inset -1px 0 0 rgba(126, 96, 58, 0.06);
    color: var(--text-primary);
}

.brand {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 0.58rem;
    text-decoration: none;
    color: #2f271c;
    padding: 0.28rem 0.1rem 0.32rem 0;
    margin: 0 0 0.2rem;
    border: none;
    background: transparent;
    box-shadow: none;
    transition: opacity 0.2s ease;
}

.brand:hover {
    opacity: 0.92;
}

.brand:hover .brand-mark-cn {
    color: #3d2f18;
}

.brand:focus-visible {
    outline: 2px solid rgba(248, 208, 142, 0.65);
    outline-offset: 3px;
    border-radius: 8px;
}

.brand-mark-graphic {
    flex-shrink: 0;
    display: grid;
    place-items: center;
    line-height: 0;
}

.brand-taiji {
    width: 72px;
    height: 72px;
    display: block;
    filter: drop-shadow(0 1px 2px rgba(40, 30, 18, 0.08));
}

.brand-mark-copy {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.06rem;
    line-height: 1.08;
    min-width: 0;
}

.brand-mark-cn {
    font-family: var(--font-brand-calligraphy);
    font-size: 1.22rem;
    font-weight: 400;
    letter-spacing: 0.08em;
    color: #1e1812;
    transition: color 0.2s ease;
}

.brand-mark-en {
    font-family: "Segoe UI", ui-sans-serif, system-ui, sans-serif;
    font-size: 0.64rem;
    font-weight: 650;
    letter-spacing: 0.16em;
    color: rgba(46, 38, 26, 0.58);
}

.nav {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    flex: 1;
    min-height: 0;
}

.saved-box {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    margin-top: 0.35rem;
    padding: 0.35rem 0.3rem 0.38rem;
    border: 1px solid rgba(126, 96, 58, 0.14);
    border-radius: 14px;
    background: linear-gradient(180deg, rgba(255, 253, 248, 0.72) 0%, rgba(248, 241, 228, 0.9) 100%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.6);
    overflow: hidden;
    position: relative;
    max-height: none;
}

.saved-title {
    flex-shrink: 0;
    color: #2f271c;
    font-size: 0.78rem;
    margin: 0.15rem 0.35rem 0.5rem;
}

.saved-search {
    display: flex;
    gap: 0.35rem;
    margin: 0 0.35rem 0.5rem;
}

.saved-search-input {
    flex: 1;
    min-width: 0;
    height: 1.85rem;
    border-radius: 8px;
    border: 1px solid rgba(126, 96, 58, 0.18);
    background: rgba(255, 255, 255, 0.72);
    color: var(--text-primary);
    padding: 0 0.55rem;
    font-size: 0.74rem;
    outline: none;
}

.saved-search-input:focus {
    border-color: rgba(248, 208, 142, 0.62);
    box-shadow: 0 0 0 2px rgba(248, 208, 142, 0.2);
}

.saved-search-btn {
    flex-shrink: 0;
    height: 1.85rem;
    border-radius: 8px;
    border: 1px solid rgba(248, 208, 142, 0.55);
    background: rgba(248, 208, 142, 0.2);
    color: #5a4226;
    padding: 0 0.58rem;
    font-size: 0.72rem;
    cursor: pointer;
}

.saved-search-btn:hover {
    background: rgba(248, 208, 142, 0.34);
}

.saved-list {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 0.1rem 0.08rem 0.2rem 0;
    border-radius: 10px;
    scrollbar-width: thin;
    scrollbar-color: rgba(248, 208, 142, 0.55) rgba(255, 255, 255, 0.28);
}

.saved-list::-webkit-scrollbar {
    width: 8px;
}

.saved-list::-webkit-scrollbar-track {
    background: rgba(255, 255, 255, 0.28);
    border-radius: 999px;
}

.saved-list::-webkit-scrollbar-thumb {
    background: rgba(248, 208, 142, 0.55);
    border-radius: 999px;
}

.saved-list::-webkit-scrollbar-thumb:hover {
    background: rgba(248, 208, 142, 0.72);
}

.saved-empty {
    color: var(--text-muted);
    font-size: 0.78rem;
    margin: 0 0.35rem;
}

.saved-item {
    border: 1px solid rgba(126, 96, 58, 0.12);
    border-radius: 10px;
    padding: 0.45rem 0.5rem;
    background: rgba(255, 255, 255, 0.48);
    cursor: pointer;
    transition: all 0.2s;
}

.saved-item:hover {
    border-color: rgba(248, 208, 142, 0.35);
    background: rgba(248, 208, 142, 0.08);
}

.saved-head-text {
    min-width: 0;
    flex: 1;
}

.saved-item .dt {
    color: #2f271c;
    font-size: 0.82rem;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.saved-item .saved-date {
    color: #8a785f;
    font-size: 0.68rem;
    margin-top: 0.12rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.saved-item .bz {
    color: #2f271c;
    font-size: 0.75rem;
    margin-top: 0.2rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.saved-item-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.45rem;
}

.saved-del {
    border: 1px solid rgba(126, 96, 58, 0.18);
    background: rgba(255, 255, 255, 0.55);
    color: #8f7a64;
    width: 1.4rem;
    height: 1.4rem;
    border-radius: 8px;
    font-size: 0.92rem;
    line-height: 1;
    cursor: pointer;
    transition: all 0.2s;
}

.saved-del:hover {
    color: var(--text-primary);
    border-color: rgba(58, 47, 33, 0.26);
    background: rgba(248, 208, 142, 0.32);
}

.nav-item {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.75rem 1rem;
    border-radius: 12px;
    color: #2f271c;
    font-size: 0.9rem;
    text-decoration: none;
    transition: background 0.2s, color 0.2s;
}

.nav-item:hover:not(.nav-item--disabled) {
    color: #2f271c;
    background: var(--hover-item-bg);
}

.nav-item.active {
    background: var(--active-item-bg);
    color: #2f271c;
}

.nav-item--disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

.nav-icon {
    flex-shrink: 0;
    opacity: 0.9;
}

/* —— 主区 —— */
.main {
    flex: 1 1 auto;
    display: flex;
    justify-content: center;
    padding: 2rem 1.25rem 2rem;
    overflow-x: hidden;
    position: relative;
    min-width: 0;
}

.main-inner {
    width: 100%;
    max-width: 1400px;
    margin-inline: auto;
}

@media (min-width: 768px) and (max-width: 1199px) {
    .main-inner {
        width: 95%;
        max-width: 1400px;
    }
}

@media (min-width: 1200px) {
    .main-inner {
        width: 90%;
        max-width: 1400px;
    }
}

.auth-bar {
    margin-right: auto;
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.auth-bar__guest,
.auth-bar__user {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex-wrap: wrap;
}

.auth-bar__hello {
    font-size: 0.8125rem;
    color: var(--text-secondary, #5c4d3a);
    max-width: 14rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.auth-bar__btn {
    border: 1px solid var(--line-soft, rgba(58, 47, 33, 0.2));
    background: #fff;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    cursor: pointer;
    font-size: 0.8125rem;
    font-family: var(--font-ui);
    color: var(--text-primary);
    line-height: 1.35;
    transition: background 0.15s ease, border-color 0.15s ease;
}

.auth-bar__btn-link {
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.auth-bar__btn:hover {
    background: var(--hover-item-bg, rgba(248, 208, 142, 0.18));
}

.auth-bar__btn--primary {
    background: #fdebd0;
    border-color: rgba(58, 47, 33, 0.18);
    font-weight: 600;
}

.auth-modal-overlay .auth-modal-panel {
    max-width: 22rem;
    width: calc(100vw - 2rem);
}

@media (max-width: 768px) {
    .auth-modal-overlay {
        padding: 0.85rem;
    }

    .auth-modal-overlay .auth-modal-panel {
        width: min(100%, 24rem);
        max-height: min(92vh, 640px);
    }

    .auth-modal-body.fortune-panel-body--scroll {
        max-height: calc(92vh - 4.5rem);
        overflow-y: auto;
    }

    .auth-primary-btn,
    .auth-wechat-btn {
        width: 100% !important;
        max-width: none !important;
        min-height: 2.65rem !important;
    }
}

.auth-modal-body {
    padding-top: 0.5rem;
}

.auth-tabs {
    display: flex;
    gap: 0.25rem;
    margin-bottom: 1rem;
}

.auth-tab {
    flex: 1;
    border: 1px solid var(--line-soft, rgba(58, 47, 33, 0.2));
    background: #fff;
    padding: 0.45rem 0.5rem;
    border-radius: 10px;
    cursor: pointer;
    font-size: 0.875rem;
    font-family: var(--font-ui);
    color: var(--text-primary);
}

.auth-tab--active {
    background: #fdebd0;
    font-weight: 600;
    border-color: rgba(58, 47, 33, 0.2);
}

.auth-form {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

/* hidden 属性会被上面的 display:flex 覆盖，必须显式隐藏未选中的表单 */
.auth-form[hidden] {
    display: none !important;
}

.auth-form .field-hint {
    margin-top: -0.25rem;
    margin-bottom: 0.25rem;
}

.auth-submit-btn {
    margin-top: 0.5rem;
    align-self: stretch;
    justify-content: center;
    width: 100%;
}

.auth-form form {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.auth-form .field-label {
    margin-top: 0.15rem;
}

.auth-form .input-dark {
    width: 100%;
    box-sizing: border-box;
}

.auth-form .input-dark:-webkit-autofill,
.auth-form .input-dark:-webkit-autofill:hover,
.auth-form .input-dark:-webkit-autofill:focus,
.auth-form .input-dark:-webkit-autofill:active {
    -webkit-box-shadow: 0 0 0 1000px var(--panel-2, #fff9f0) inset !important;
    box-shadow: 0 0 0 1000px var(--panel-2, #fff9f0) inset !important;
    -webkit-text-fill-color: var(--text-primary, #3a2f21) !important;
    caret-color: var(--text-primary, #3a2f21);
    transition: background-color 99999s ease-out 0s;
}

.auth-form__invite-hint {
    margin: 0.1rem 0 0.55rem;
    font-size: 0.72rem;
    line-height: 1.55;
    color: var(--text-muted, #8a8074);
}

.auth-primary-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    margin-top: 0.35rem;
    padding: 0.78rem 1rem;
    border: none;
    border-radius: 12px;
    background: linear-gradient(180deg, rgb(244, 214, 160) 0%, var(--tone-gold, #c9a063) 100%);
    color: var(--cream-text, #3a2f21);
    font-family: var(--font-ui, inherit);
    font-size: 0.9375rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    cursor: pointer;
    box-shadow: 0 4px 14px rgba(201, 160, 99, 0.35);
    transition: filter 0.2s, transform 0.12s;
}

.auth-primary-btn:hover {
    filter: brightness(1.04);
}

.auth-primary-btn:active {
    transform: translateY(1px);
}

.auth-forgot-row {
    display: flex;
    justify-content: flex-end;
    margin: -0.15rem 0 0.55rem;
}

.auth-forgot-link {
    margin: 0;
    padding: 0;
    border: none;
    background: none;
    color: var(--gold-dim, #9f7f4a);
    font-family: inherit;
    font-size: 0.8125rem;
    font-weight: 600;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

.auth-forgot-link:hover {
    color: var(--text-primary, #3a2f21);
}

body.theme-ink .auth-forgot-link {
    color: #c4a574;
}

body.theme-ink .auth-forgot-link:hover {
    color: #efe4d2;
}

.auth-wechat-divider {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    margin: 0.85rem 0 0.65rem;
    font-size: 0.75rem;
    color: var(--text-muted, #8a8074);
    text-align: center;
}

.auth-wechat-divider::before,
.auth-wechat-divider::after {
    content: '';
    flex: 1;
    height: 1px;
    background: rgba(58, 47, 33, 0.12);
}

.auth-wechat-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    width: 100%;
    padding: 0.72rem 1rem;
    border: 1px solid rgba(58, 47, 33, 0.16);
    border-radius: 12px;
    background: #fff;
    color: var(--text-primary, #3a2f21);
    font-family: var(--font-ui, inherit);
    font-size: 0.875rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
}

.auth-wechat-btn:hover {
    background: rgba(248, 208, 142, 0.12);
    border-color: rgba(58, 47, 33, 0.22);
}

.auth-wechat-btn__ico {
    display: inline-grid;
    place-items: center;
    width: 1.35rem;
    height: 1.35rem;
    border-radius: 50%;
    background: #07c160;
    color: #fff;
    font-size: 0.72rem;
    font-weight: 800;
    line-height: 1;
}

.auth-form-message {
    font-size: 0.8125rem;
    color: #6b5a45;
    margin: 0 0 0.75rem;
    padding: 0.5rem 0.65rem;
    border-radius: 8px;
    background: rgba(248, 208, 142, 0.2);
    border: 1px solid rgba(58, 47, 33, 0.12);
    white-space: pre-line;
    line-height: 1.45;
}

.auth-form-message--err {
    background: rgba(220, 80, 60, 0.1);
    border-color: rgba(180, 60, 50, 0.25);
    color: #8b3228;
}

.lang-switch {
    display: inline-flex;
    align-items: stretch;
    padding: 3px;
    background: #fff;
    border: 1px solid var(--line-soft, rgba(58, 47, 33, 0.15));
    border-radius: 999px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
    gap: 2px;
}

.lang-switch__btn {
    border: none;
    background: transparent;
    padding: 0.35rem 0.8rem;
    border-radius: 999px;
    cursor: pointer;
    font-size: 0.8125rem;
    font-family: var(--font-ui);
    color: var(--text-primary);
    line-height: 1.35;
    transition: background 0.15s ease, color 0.15s ease;
}

.lang-switch__btn:hover {
    background: var(--hover-item-bg, rgba(248, 208, 142, 0.18));
}

.lang-switch__btn--active {
    background: linear-gradient(145deg, #e8c48a, #c9a06a);
    color: #fff;
    font-weight: 600;
}

.content-grid {
    display: flex;
    justify-content: center;
    gap: 0;
    align-items: flex-start;
    flex-wrap: nowrap;
    transition: gap 0.35s ease;
}

.main-inner.has-result .content-grid {
    justify-content: flex-start;
    flex-direction: column;
    align-items: flex-start;
    gap: 1.25rem;
}

.main-inner.has-result.result-form-collapsed .content-grid {
    gap: 0;
}

.main-inner.has-result.result-form-collapsed .form-shell {
    display: none !important;
}

.main-inner.has-result.result-form-collapsed .result-shell {
    flex: 1 1 100%;
    width: 100%;
    max-width: none;
}

/* 出生排盘生成后走「收起录入区」纯结果模式时，默认隐藏右侧运势专项区（例外：已点侧栏「运势专项解读」见下条覆盖） */
.main-inner.has-result.result-form-collapsed:not(.calcLayout--fortune-sidebar) #fortuneTopicsSection.fortune-topics-shell {
    display: none !important;
}

.main-inner.result-only-view .content-grid {
    display: block;
}

.form-shell {
    flex: 0 1 auto;
    width: min(520px, 100%);
    max-width: 100%;
    background: var(--bg-card);
    border: 1px solid var(--bg-card-border);
    border-radius: 18px;
    padding: 1.75rem 1.5rem 1.5rem;
    box-shadow:
        0 10px 32px rgba(236, 199, 131, 0.2),
        0 2px 8px rgba(58, 47, 33, 0.04),
        inset 0 1px 0 rgba(255, 255, 255, 0.75);
    backdrop-filter: blur(3px);
    transition: transform 0.38s ease;
}

.main-inner.has-result .form-shell {
    transform: none;
}

.main-inner.result-only-view .form-shell {
    display: none;
}

.main-inner.view-case-archive .form-shell,
.main-inner.view-case-archive .result-shell,
.main-inner.view-exam-bank .form-shell,
.main-inner.view-exam-bank .result-shell,
.main-inner.view-me-profile .form-shell,
.main-inner.view-me-profile .result-shell,
.main-inner.view-ai-chat-history .form-shell,
.main-inner.view-ai-chat-history .result-shell {
    display: none !important;
}

.main-inner.view-case-archive #meProfileView,
.main-inner.view-case-archive #unifiedPaipanShell,
.main-inner.view-case-archive #qimenResultShell,
.main-inner.view-exam-bank #meProfileView,
.main-inner.view-exam-bank #unifiedPaipanShell,
.main-inner.view-exam-bank #qimenResultShell,
.main-inner.view-exam-bank #liurenResultShell,
.main-inner.view-ai-hub #meProfileView,
.main-inner.view-ai-chat-history #meProfileView,
.main-inner.view-me-profile #unifiedPaipanShell,
.main-inner.view-me-profile #qimenResultShell,
.main-inner.view-me-profile #liurenResultShell,
.main-inner.view-ai-chat-history #unifiedPaipanShell,
.main-inner.view-ai-chat-history #qimenResultShell,
.main-inner.view-ai-chat-history #liurenResultShell {
    display: none !important;
}

.main-inner.view-me-profile {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: calc(100vh - 3.5rem);
}

.main-inner.view-me-profile #mainContentGrid.content-grid {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%;
    flex: 0 0 auto;
    gap: 0;
}

.main-inner.view-me-profile #baziPaipanStack {
    display: none !important;
}

.main-inner.view-me-profile #meProfileView.me-profile-view {
    margin-inline: auto;
}

.main-inner.view-exam-bank #examBankView.exam-bank-view {
    margin-inline: auto;
}

.main-inner.view-exam-bank {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    min-height: calc(100vh - 3.5rem);
    padding-top: 0.5rem;
    padding-bottom: 2rem;
}

.main-inner.view-exam-bank #mainContentGrid.content-grid {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    width: 100%;
    max-width: min(920px, 100%);
    margin-inline: auto;
    gap: 0;
}

.main-inner.view-exam-bank #baziPaipanStack,
.main-inner.view-exam-bank #caseDetailArea,
.main-inner.view-exam-bank .ai-hub,
.main-inner.view-exam-bank #chatHistoryPageView,
.main-inner.view-exam-bank #caseArchiveView,
.main-inner.view-exam-bank #qizhengResultShell,
.main-inner.view-exam-bank #fortuneTopicsGuideCard,
.main-inner.view-exam-bank .fortune-topics-guide-card {
    display: none !important;
}

.main-inner.view-exam-bank #examBankView.exam-bank-view {
    width: 100%;
    max-width: min(820px, 100%);
    flex: 0 0 auto;
}

/* 题库页：主栅格内只保留题库，其余一律隐藏（防 CSS 缓存或优先级漏网） */
.main-inner.view-exam-bank #mainContentGrid > *:not(#examBankView) {
    display: none !important;
}

body.view-exam-bank-page .bazi-modal-overlay {
    display: none !important;
    pointer-events: none !important;
}

body.view-exam-bank-page #baziPaipanStack,
body.view-exam-bank-page #unifiedPaipanShell,
body.view-exam-bank-page #caseDetailArea {
    display: none !important;
}

/* 非奇门主视图：隐藏奇门录入与活盘（由 view-qimen 显式展示） */
.main-inner:not(.view-qimen) #qimenResultShell {
    display: none !important;
}

/* 非六壬主视图：隐藏六壬结果壳（由 view-liuren 显式展示） */
.main-inner:not(.view-liuren) #liurenResultShell {
    display: none !important;
}

/* 主区「排盘」：仅展示八字录入表单（及已有结果时的结果区），隐藏 AI 门户与档案/历史页 */
.main-inner.view-paipan .ai-hub,
.main-inner.view-paipan #caseArchiveView,
.main-inner.view-paipan #chatHistoryPageView,
.main-inner.view-paipan #meProfileView {
    display: none !important;
}

/* 主区「奇门」：隐藏八字结果、AI 门户与档案/历史页；统一录入区 #unifiedPaipanShell 保留 */
.main-inner.view-qimen .ai-hub,
.main-inner.view-qimen #caseArchiveView,
.main-inner.view-qimen #chatHistoryPageView,
.main-inner.view-qimen #meProfileView,
.main-inner.view-qimen #caseDetailArea {
    display: none !important;
}

/* 录入壳已移至 embed 命书；主区不再展示 #unifiedPaipanShell */

.main-inner.view-qimen:not(.has-qimen-result):not(.qimen-pending-resubmit) #qimenResultShell {
    display: none !important;
}

.main-inner.view-qimen.qimen-pending-resubmit #qimenResultShell {
    display: flex !important;
    flex-direction: column;
    align-items: stretch;
    min-width: 0;
    flex: 0 1 auto;
    align-self: stretch;
    width: 100%;
    max-width: none;
    height: auto;
    min-height: auto;
    opacity: 1 !important;
    visibility: visible !important;
    overflow: visible;
}

.main-inner.view-qimen.qimen-pending-resubmit .qimen-result-layout {
    display: flex !important;
    flex-direction: column;
    gap: 0.75rem;
}

.main-inner.view-qimen.qimen-pending-resubmit .qimen-result-left > :not(.qimen-result-actions),
.main-inner.view-qimen.qimen-pending-resubmit .qimen-result-right {
    display: none !important;
}

.main-inner.view-qimen.qimen-pending-resubmit .qimen-result-actions {
    display: flex !important;
    flex-wrap: wrap;
    gap: 0.5rem;
    padding: 0 0.25rem 0.5rem;
}

.main-inner.view-qimen.has-qimen-result #qimenResultShell {
    display: flex !important;
    flex-direction: column;
    align-items: stretch;
    min-width: 0;
    flex: 0 1 auto;
    align-self: stretch;
    width: 100%;
    max-width: none;
    height: auto;
    min-height: auto;
    opacity: 1 !important;
    visibility: visible !important;
    overflow: visible;
}

.main-inner.view-qimen.has-qimen-result #mainContentGrid.content-grid,
.main-inner.view-qimen.has-qimen-result .content-grid {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0;
}

.main-inner.view-qimen.has-qimen-result #baziPaipanStack {
    flex: 0 1 auto;
    height: auto;
    min-height: 0;
    width: 100%;
}

.main-inner.view-qimen.has-qimen-result #unifiedPaipanShell {
    flex: 0 1 auto;
    width: 100%;
    max-width: min(900px, 100%);
    margin-inline: auto;
}

.main-inner.view-qimen.has-qimen-result.qimen-input-collapsed #qimenResultShell {
    flex: 0 1 auto;
    width: 100%;
    max-width: none;
    min-height: auto;
    height: auto;
}

/* 收起左侧录入（活盘仍显示）：窄屏下列表上下叠放时活盘同样拉满 */
.main-inner.view-qimen.has-qimen-result.qimen-input-collapsed #unifiedPaipanShell {
    display: none !important;
}

@media (max-width: 991px) {
    .main-inner.view-qimen.has-qimen-result.qimen-input-collapsed #qimenResultShell {
        width: 100%;
        max-width: none;
        margin-inline: 0;
    }
}

/* 主区「大六壬」：布局节奏对齐奇门 */
.main-inner.view-liuren .ai-hub,
.main-inner.view-liuren #caseArchiveView,
.main-inner.view-liuren #chatHistoryPageView,
.main-inner.view-liuren #meProfileView,
.main-inner.view-liuren #caseDetailArea {
    display: none !important;
}

/* 六壬录入壳同上，不在主区展示 */

.main-inner.view-liuren:not(.has-liuren-result) #liurenResultShell {
    display: none !important;
}

.main-inner.view-liuren.has-liuren-result #liurenResultShell {
    display: flex !important;
    flex-direction: column;
    align-items: stretch;
    min-width: 0;
    flex: 0 1 auto;
    align-self: stretch;
    width: 100%;
    max-width: none;
    height: auto;
    min-height: auto;
    opacity: 1 !important;
    visibility: visible !important;
    overflow: visible;
}

.main-inner.view-liuren.has-liuren-result #mainContentGrid.content-grid,
.main-inner.view-liuren.has-liuren-result .content-grid {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0;
}

.main-inner.view-liuren.has-liuren-result #baziPaipanStack {
    flex: 0 1 auto;
    height: auto;
    min-height: 0;
    width: 100%;
}

.main-inner.view-liuren.has-liuren-result #unifiedPaipanShell {
    flex: 0 1 auto;
    width: 100%;
    max-width: min(900px, 100%);
    margin-inline: auto;
}

.main-inner.view-liuren.has-liuren-result.liuren-input-collapsed #liurenResultShell {
    flex: 0 1 auto;
    width: 100%;
    max-width: none;
    min-height: auto;
    height: auto;
}

.main-inner.view-liuren.has-liuren-result.liuren-input-collapsed #unifiedPaipanShell {
    display: none !important;
}

.main-inner.view-qimen.has-qimen-result #unifiedPaipanShell,
.main-inner.view-liuren.has-liuren-result #unifiedPaipanShell {
    display: none !important;
}

@media (max-width: 991px) {
    .main-inner.view-qimen.has-qimen-result #unifiedPaipanShell {
        display: none !important;
    }

    .main-inner.view-liuren.has-liuren-result #unifiedPaipanShell {
        display: none !important;
    }

    .main-inner.view-liuren.has-liuren-result.liuren-input-collapsed #liurenResultShell {
        width: 100%;
        max-width: none;
        margin-inline: 0;
    }
}

/* —— 七政四余（view-qizheng） —— */
.main-inner:not(.view-qizheng) #qizhengResultShell {
    display: none !important;
}

.main-inner.view-qizheng .ai-hub,
.main-inner.view-qizheng #caseArchiveView,
.main-inner.view-qizheng #chatHistoryPageView,
.main-inner.view-qizheng #meProfileView,
.main-inner.view-qizheng #caseDetailArea {
    display: none !important;
}

/* 主区不展示录入壳；命书 iframe（embedLifebook）须显示，见下方 :not(.embed-lifebook) 与 embed 强制显示 */
html:not(.embed-lifebook) .main-inner.view-qizheng #unifiedPaipanShell {
    display: none !important;
}

.main-inner.view-qizheng:not(.has-qizheng-result):not(.qizheng-fetch-active) #qizhengResultShell {
    display: none !important;
}

.main-inner.view-qizheng.qizheng-fetch-active #qizhengResultShell {
    display: block !important;
    min-width: 0;
    opacity: 1 !important;
    visibility: visible !important;
}

.main-inner.view-qizheng.has-qizheng-result #qizhengResultShell {
    display: block !important;
    min-width: 0;
    opacity: 1 !important;
    visibility: visible !important;
}

.main-inner.view-qizheng.has-qizheng-result .content-grid,
.main-inner.view-qizheng.qizheng-fetch-active .content-grid {
    justify-content: center;
    align-items: flex-start;
    gap: 0;
    flex-wrap: nowrap;
}

/* 有结果或计算中：只显示结果页，隐藏录入区（命书 embed 除外） */
html:not(.embed-lifebook) .main-inner.view-qizheng.has-qizheng-result #unifiedPaipanShell,
html:not(.embed-lifebook) .main-inner.view-qizheng.qizheng-fetch-active #unifiedPaipanShell {
    display: none !important;
}

.main-inner.view-qizheng.has-qizheng-result #qizhengResultShell,
.main-inner.view-qizheng.qizheng-fetch-active #qizhengResultShell {
    flex: 1 1 100%;
    width: 100%;
    max-width: none;
    margin-inline: 0;
}

/* 七政有盘：桌面拉满主区宽度，圆盘与控件整体放大 */
@media (min-width: 901px) {
    body:has(.main-inner.view-qizheng.has-qizheng-result) .main,
    body:has(.main-inner.view-qizheng.qizheng-fetch-active) .main {
        padding-left: 0.55rem;
        padding-right: 0.55rem;
        padding-top: 0.65rem;
        padding-bottom: 1rem;
    }

    .main-inner.view-qizheng.has-qizheng-result,
    .main-inner.view-qizheng.qizheng-fetch-active {
        width: 100%;
        max-width: none;
    }

    .main-inner.view-qizheng.has-qizheng-result #qizhengResultShell,
    .main-inner.view-qizheng.qizheng-fetch-active #qizhengResultShell {
        font-size: 1.04rem;
    }

    .main-inner.view-qizheng.has-qizheng-result .qizheng-pan-settings {
        width: min(15.25rem, calc(100% - 1.1rem));
        max-width: 15.5rem;
        max-height: min(68vh, calc(100vh - 14rem));
        font-size: 0.95rem;
    }

    .main-inner.view-qizheng.has-qizheng-result .qizheng-pan-settings__field label {
        font-size: 0.68rem;
    }

    .main-inner.view-qizheng.has-qizheng-result .qizheng-pan-settings__field select {
        min-height: 1.85rem;
        font-size: 0.74rem;
    }

    .main-inner.view-qizheng.has-qizheng-result .qizheng-wheel-stage--moira {
        min-height: min(920px, calc(100vh - 10.5rem));
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 0.35rem 0.25rem 0.25rem;
        width: 100%;
        box-sizing: border-box;
    }

    .main-inner.view-qizheng.has-qizheng-result .qizheng-wheel-zoom-viewport {
        width: 100% !important;
        max-width: none !important;
        display: flex !important;
        justify-content: center !important;
        align-items: center !important;
    }

    .main-inner.view-qizheng.has-qizheng-result .qizheng-wheel-zoom-sizer,
    .main-inner.view-qizheng.has-qizheng-result .qizheng-wheel-zoom-inner {
        width: 100% !important;
        max-width: min(100%, calc(100vh - 10.5rem), 1120px) !important;
        height: auto !important;
        margin: 0 auto !important;
    }

    .main-inner.view-qizheng.has-qizheng-result .qizheng-wheel-stage--moira .qizheng-wheel-svg {
        width: 100% !important;
        max-width: none !important;
        max-height: none !important;
        height: auto !important;
        aspect-ratio: 1 / 1;
        display: block;
        margin: 0 auto;
    }

    .main-inner.view-qizheng.has-qizheng-result .qizheng-bottom-toolbar,
    .main-inner.view-qizheng.has-qizheng-result .qizheng-fine-tune--bottom {
        font-size: 0.92rem;
    }
}

@media (min-width: 1400px) {
    .main-inner.view-qizheng.has-qizheng-result .qizheng-wheel-stage--moira {
        min-height: min(1040px, calc(100vh - 9.5rem));
    }

    .main-inner.view-qizheng.has-qizheng-result .qizheng-wheel-zoom-sizer,
    .main-inner.view-qizheng.has-qizheng-result .qizheng-wheel-zoom-inner {
        max-width: min(100%, calc(100vh - 9.5rem), 1200px) !important;
    }
}

@media (min-width: 992px) {
    .main-inner.view-qizheng.has-qizheng-result #qizhengResultShell,
    .main-inner.view-qizheng.qizheng-fetch-active #qizhengResultShell {
        flex: 1 1 100%;
        width: 100%;
        max-width: none;
    }
}

/* 兼容旧 class：与 has-qizheng-result 同义 */
.main-inner.view-qizheng.has-qizheng-result.qizheng-input-collapsed #unifiedPaipanShell {
    display: none !important;
}

@media (max-width: 991px) {
    .main-inner.view-qizheng.has-qizheng-result #qizhengResultShell,
    .main-inner.view-qizheng.qizheng-fetch-active #qizhengResultShell,
    .main-inner.view-qizheng.has-qizheng-result.qizheng-input-collapsed #qizhengResultShell {
        width: 100%;
        max-width: none;
        margin-inline: 0;
    }
}

.qizheng-pan-mount {
    min-height: 12rem;
}

.qizheng-pan-area {
    display: block;
    width: 100%;
    position: relative;
}

.qizheng-chart-info-card {
    position: absolute;
    top: 0.35rem;
    left: 0.35rem;
    z-index: 9;
    max-width: min(19rem, 52%);
    max-height: min(72%, 22rem);
    overflow: auto;
    padding: 0;
    border-radius: 10px;
    background: rgba(255, 252, 246, 0.94);
    border: 1px solid rgba(160, 120, 60, 0.28);
    box-shadow: 0 2px 10px rgba(40, 28, 12, 0.08);
    pointer-events: auto;
    font-size: 0.72rem;
    line-height: 1.35;
    color: #3f2e18;
}

.qizheng-chart-info-card[hidden] {
    display: none !important;
}

/* 盘制设置：浮在本命盘框内，不挤开圆盘 */
.qizheng-sidereal-storage {
    display: none !important;
}

.qizheng-pan-layout--moira {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.55rem;
    width: 100%;
    min-height: 0;
}

.qizheng-pan-layout--moira > .qizheng-pan-main {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

@media (min-width: 992px) {
    .qizheng-pan-layout--moira .qizheng-wheel-zoom-bar {
        display: none !important;
    }
    .qizheng-pan-layout--moira .qizheng-wheel-zoom-viewport {
        overflow: visible !important;
        height: auto !important;
        max-height: none !important;
        width: 100%;
    }
    .qizheng-pan-layout--moira .qizheng-wheel-zoom-sizer,
    .qizheng-pan-layout--moira .qizheng-wheel-zoom-inner {
        width: 100%;
        height: auto;
        overflow: visible;
    }
}

.qizheng-wheel-zoom-bar,
.qizheng-wheel-zoom-btn {
    display: none !important;
}

.qizheng-wheel-stage--moira {
    position: relative;
    flex: 1 1 auto;
    min-width: 0;
    overflow: visible;
}

.qizheng-pan-settings {
    box-sizing: border-box;
    padding: 0.65rem 0.7rem 0.75rem;
    border: 1px solid rgba(160, 130, 80, 0.32);
    border-radius: 14px;
    background: linear-gradient(165deg, rgba(255, 252, 246, 0.98) 0%, rgba(248, 240, 226, 0.96) 100%);
    box-shadow:
        0 8px 22px rgba(58, 42, 24, 0.12),
        inset 0 1px 0 rgba(255, 255, 255, 0.75);
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior: contain;
    z-index: 8;
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
}

.qizheng-pan-settings.qizheng-pan-settings--float {
    position: absolute;
    top: 3.2rem;
    left: 0.35rem;
    bottom: auto;
    width: min(14.75rem, calc(100% - 0.7rem));
    max-width: 16rem;
    /* 回退上限：勿按含底栏的 panArea 100% 撑高；最终高度由 JS 按 wheel-stage 裁切 */
    max-height: min(62vh, calc(100vh - 16rem));
    margin: 0;
    flex: none;
}

.qizheng-pan-settings[hidden] {
    display: none !important;
}

/* 右侧详情浮层：难仇恩用 / 化耀 / 格局 / 十二宫 / 十一曜 */
.qizheng-right-float {
    position: absolute;
    top: 4.6rem;
    right: 0.35rem;
    z-index: 8;
    box-sizing: border-box;
    width: min(22rem, calc(100% - 0.7rem));
    max-width: 24rem;
    max-height: calc(100% - 5.2rem);
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    border: 1px solid rgba(160, 130, 80, 0.32);
    border-radius: 14px;
    background: linear-gradient(165deg, rgba(255, 252, 246, 0.98) 0%, rgba(248, 240, 226, 0.96) 100%);
    box-shadow:
        0 8px 22px rgba(58, 42, 24, 0.12),
        inset 0 1px 0 rgba(255, 255, 255, 0.75);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    overflow: hidden;
}

.qizheng-right-float[hidden] {
    display: none !important;
}

/* 行限：右侧独立面板（不与盘面摘要混排；位置由 JS 贴在快捷栏下 / 详情浮层下） */
.qizheng-xingxian-panel {
    position: absolute;
    top: 4.6rem;
    right: 0.35rem;
    bottom: auto;
    z-index: 7;
    box-sizing: border-box;
    width: min(18rem, calc(100% - 0.7rem));
    max-width: 20rem;
    max-height: calc(100% - 5.2rem);
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    border: 1px solid rgba(160, 130, 80, 0.32);
    border-radius: 14px;
    background: linear-gradient(165deg, rgba(255, 252, 246, 0.98) 0%, rgba(248, 240, 226, 0.96) 100%);
    box-shadow:
        0 8px 22px rgba(58, 42, 24, 0.12),
        inset 0 1px 0 rgba(255, 255, 255, 0.75);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    overflow: hidden;
    pointer-events: auto;
}

.qizheng-xingxian-panel[hidden] {
    display: none !important;
}

.qizheng-xingxian-panel.qizheng-xingxian-panel--stacked {
    z-index: 6;
}

#qizhengXingXianToggleBtn.is-active-float,
#qizhengXingXianToggleBtn[aria-pressed='true'] {
    background: rgba(201, 160, 106, 0.28);
    color: #5a3d1a;
    box-shadow: inset 0 0 0 1px rgba(160, 120, 60, 0.35);
}

.qizheng-xingxian-panel__head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.45rem;
    flex: 0 0 auto;
    padding: 0.5rem 0.65rem;
    border-bottom: 1px solid rgba(160, 130, 80, 0.18);
}

.qizheng-xingxian-panel__title {
    font-size: 0.86rem;
    font-weight: 700;
    color: #4a3828;
    letter-spacing: 0.02em;
}

.qizheng-xingxian-panel__sub {
    font-size: 0.72rem;
    font-weight: 600;
    color: #8a6840;
    text-align: right;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.qizheng-xingxian-panel__body {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    padding: 0.45rem 0.65rem 0.6rem;
    font-size: 0.76rem;
    line-height: 1.4;
    color: #3f2e18;
}

.qizheng-xingxian-panel__row {
    display: flex;
    align-items: baseline;
    gap: 0.4rem;
    margin: 0.1rem 0;
}

.qizheng-xingxian-panel__idx {
    flex: 0 0 1.4em;
    color: #a08060;
    font-weight: 600;
}

.qizheng-xingxian-panel__val {
    min-width: 0;
    word-break: break-all;
    font-weight: 600;
    color: #2a1c10;
}

.qizheng-xingxian-panel__foot {
    margin: 0.4rem 0 0;
    padding-top: 0.35rem;
    border-top: 1px solid rgba(160, 130, 80, 0.16);
    color: #6b4423;
    font-weight: 700;
}

@media (max-width: 768px) {
    .qizheng-xingxian-panel {
        left: 0.35rem;
        right: 0.35rem;
        width: auto;
        max-width: none;
        max-height: min(42vh, 16rem);
        z-index: 8;
    }
}

.qizheng-right-float__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.4rem;
    flex: 0 0 auto;
    padding: 0.55rem 0.65rem;
    border-bottom: 1px solid rgba(160, 130, 80, 0.18);
}

.qizheng-right-float__title {
    font-size: 0.86rem;
    font-weight: 700;
    color: #4a3828;
    letter-spacing: 0.02em;
}

.qizheng-right-float__close {
    width: 1.7rem;
    height: 1.7rem;
    border: none;
    border-radius: 8px;
    background: transparent;
    color: #7a6448;
    font-size: 1.15rem;
    line-height: 1;
    cursor: pointer;
}

.qizheng-right-float__close:hover {
    background: rgba(201, 160, 106, 0.22);
}

.qizheng-right-float__body {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    padding: 0.55rem 0.65rem 0.7rem;
    font-size: 0.78rem;
    line-height: 1.4;
    color: #3f2e18;
}

.qizheng-right-float__body .qizheng-palace-grid--modal {
    grid-template-columns: 1fr;
}

.qizheng-right-float__body .qizheng-table-wrap {
    overflow-x: auto;
}

.qizheng-right-float__body .qizheng-planet-table {
    font-size: 0.7rem;
}

.qizheng-quick-btn.is-active-float {
    background: linear-gradient(180deg, #f0d49a, #e0b56a);
    border-color: rgba(160, 120, 50, 0.55);
    font-weight: 700;
}

@media (max-width: 1024px) {
    .qizheng-right-float {
        width: min(18rem, calc(100% - 0.7rem));
        max-height: min(58vh, calc(100% - 4.8rem));
    }
}

.qizheng-pan-settings__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.4rem;
    margin-bottom: 0.55rem;
    padding-bottom: 0.4rem;
    border-bottom: 1px solid rgba(160, 130, 80, 0.18);
}

.qizheng-pan-settings__title {
    font-size: 0.86rem;
    font-weight: 700;
    color: #4a3828;
    letter-spacing: 0.02em;
}

.qizheng-pan-settings__close {
    width: 1.7rem;
    height: 1.7rem;
    border: none;
    border-radius: 8px;
    background: transparent;
    color: #7a6448;
    font-size: 1.15rem;
    line-height: 1;
    cursor: pointer;
}

.qizheng-pan-settings__close:hover {
    background: rgba(201, 160, 106, 0.22);
}

.qizheng-pan-settings__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.48rem;
}

.qizheng-pan-settings__field {
    display: flex;
    flex-direction: column;
    gap: 0.18rem;
    min-width: 0;
}

.qizheng-pan-settings__field--full {
    grid-column: 1;
}

.qizheng-pan-settings__field label {
    font-size: 0.68rem;
    font-weight: 650;
    color: #6a5438;
}

.qizheng-pan-settings__field select {
    width: 100%;
    min-height: 1.85rem;
    font-size: 0.74rem;
    padding: 0.22rem 0.4rem;
    border-radius: 8px;
    border: 1px solid rgba(160, 130, 80, 0.28);
    background: rgba(255, 253, 248, 0.96);
    color: #3f2e18;
}

.qizheng-pan-settings__field select:focus {
    outline: none;
    border-color: rgba(180, 140, 70, 0.55);
    box-shadow: 0 0 0 2px rgba(201, 160, 106, 0.22);
}

.qizheng-pan-settings__hint {
    margin: 0.2rem 0 0;
    font-size: 0.62rem;
    line-height: 1.35;
    color: #8a7048;
}

.qizheng-pan-settings__field .qizheng-toggle-spirits-btn {
    width: 100%;
    min-height: 2rem;
    font-size: 0.76rem;
    border-radius: 8px;
}

.pan-preset-save-btn {
    width: 100%;
    min-height: 2.1rem;
    padding: 0.35rem 0.7rem;
    border-radius: 8px;
    border: 1px solid rgba(160, 110, 50, 0.45);
    background: linear-gradient(180deg, #f3c56a 0%, #d9a441 100%);
    color: #3f2e16;
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    cursor: pointer;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.45);
}

.pan-preset-save-btn:hover {
    filter: brightness(1.03);
}

.pan-preset-save-btn:active {
    transform: translateY(1px);
}

.pan-preset-toast {
    position: fixed;
    left: 50%;
    bottom: 1.6rem;
    z-index: 12000;
    transform: translateX(-50%) translateY(0.6rem);
    opacity: 0;
    pointer-events: none;
    padding: 0.55rem 1rem;
    border-radius: 999px;
    background: rgba(42, 32, 20, 0.92);
    color: #fff8ea;
    font-size: 0.86rem;
    font-weight: 600;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.22);
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.pan-preset-toast.is-visible {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}

.qimen-inline-settings__group--preset,
.liuren-inline-settings__group--preset {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    align-items: stretch;
    min-width: 10rem;
}

.liuren-inline-settings__hint {
    margin: 0;
    font-size: 0.72rem;
    line-height: 1.35;
    color: rgba(90, 70, 48, 0.78);
}

@media (max-width: 1024px) {
    .qizheng-pan-settings.qizheng-pan-settings--float {
        width: min(13.5rem, calc(100% - 0.7rem));
        max-height: min(52vh, calc(100% - 3.2rem));
    }
}

/* 旧左下角角标样式保留兼容，默认不再使用 */
.qizheng-sidereal-corner {
    display: none;
}

.qizheng-sidereal-corner__field {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.1rem;
    min-width: 0;
}

.qizheng-sidereal-corner__field--transit {
    width: 100%;
    margin-top: 0.12rem;
}

.qizheng-sidereal-corner__transit-btn {
    width: 100%;
    max-width: 9.5rem;
    min-height: 1.75rem;
    padding: 0.22rem 0.45rem;
    font-size: 0.72rem;
    border-radius: 6px;
    white-space: nowrap;
}

.qizheng-sidereal-corner__label {
    font-size: 0.58rem;
    font-weight: 600;
    color: #6a5438;
    white-space: nowrap;
    line-height: 1.1;
}

.qizheng-sidereal-corner__select {
    min-width: 0;
    max-width: 9.5rem;
    width: auto;
    min-height: 1.65rem;
    height: auto;
    font-size: 0.72rem;
    padding: 0.18rem 0.35rem;
    line-height: 1.3;
    border-radius: 6px;
}

/* 压过全局 .select-dark 的大 padding/字号，避免选中项文字被裁成空白 */
.qizheng-sidereal-corner select.qizheng-sidereal-corner__select.select-dark,
#qizhengResultShell .qizheng-sidereal-corner select.qizheng-sidereal-corner__select {
    width: auto !important;
    max-width: 9.5rem !important;
    min-height: 1.7rem !important;
    height: auto !important;
    padding: 0.2rem 0.4rem !important;
    font-size: 0.72rem !important;
    line-height: 1.35 !important;
    color: #3a2f21 !important;
    -webkit-text-fill-color: #3a2f21 !important;
    background: #fffdf8 !important;
    border: 1px solid rgba(140, 102, 50, 0.3) !important;
    box-shadow: none !important;
    appearance: auto;
}

.qizheng-chart-info-card__summary {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.25rem 0.45rem;
    padding: 0.45rem 0.65rem;
    cursor: pointer;
    list-style: none;
    user-select: none;
}

.qizheng-chart-info-card__summary::-webkit-details-marker {
    display: none;
}

.qizheng-chart-info-card__summary::after {
    content: '▾';
    margin-left: auto;
    flex: 0 0 auto;
    color: #8a6840;
    font-size: 0.85em;
    line-height: 1;
}

.qizheng-chart-info-card[open] > .qizheng-chart-info-card__summary::after {
    content: '▴';
}

.qizheng-chart-info-card__summary-label {
    flex: 0 0 auto;
    font-weight: 700;
    color: #8a6840;
    font-size: 0.68rem;
    letter-spacing: 0.04em;
}

.qizheng-chart-info-card__body {
    padding: 0 0.65rem 0.55rem;
    border-top: 1px dashed rgba(160, 130, 80, 0.22);
}

.qizheng-chart-info-card__chips {
    margin-top: 0.15rem;
}

.qizheng-meta-chips[hidden] {
    display: none !important;
}

.qizheng-chart-info-card__pillars {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.55rem;
    margin: 0;
    font-size: 0.95rem;
    font-weight: 800;
    letter-spacing: 0.04em;
}

.qizheng-chart-info-card__pillar {
    display: inline-flex;
    flex-direction: row;
    gap: 0;
    white-space: nowrap;
}

.qizheng-chart-info-card__pillar .wx-木 { color: #00a870; }
.qizheng-chart-info-card__pillar .wx-火 { color: #e05a5a; }
.qizheng-chart-info-card__pillar .wx-土 { color: #c9a06a; }
.qizheng-chart-info-card__pillar .wx-金 { color: #8a8a8a; }
.qizheng-chart-info-card__pillar .wx-水 { color: #4a7fd4; }

.qizheng-chart-info-card__row {
    display: flex;
    align-items: baseline;
    gap: 0.35rem;
    margin: 0.12rem 0;
}

.qizheng-chart-info-card__k {
    flex-shrink: 0;
    color: #8a6840;
    font-weight: 700;
    min-width: 3.2em;
}

.qizheng-chart-info-card__v {
    min-width: 0;
    word-break: break-all;
    font-weight: 600;
    color: #2a1c10;
}

.qizheng-chart-info-card__warn {
    display: inline;
    margin-left: 0.15em;
    font-weight: 600;
    color: #b45309;
}

.qizheng-result-head-datetime[hidden] {
    display: none !important;
}

@media (max-width: 768px) {
    /* 手机：去掉正方形底框，盘面拉满宽高；摘要独立小卡 */
    .qizheng-pan-area {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        position: relative;
        gap: 0;
        margin: 0;
        padding: 0;
        border-radius: 0;
        border: none;
        background: transparent;
        box-shadow: none;
        overflow: visible;
    }

    .qizheng-chart-info-card {
        position: relative !important;
        top: auto !important;
        left: auto !important;
        z-index: 2;
        order: -1;
        width: 100%;
        max-width: none !important;
        max-height: none !important;
        margin: 0 0 0.25rem;
        overflow: visible;
        font-size: 0.72rem;
        padding: 0.35rem 0.45rem;
        border: 1px solid rgba(160, 130, 80, 0.28) !important;
        border-radius: 10px !important;
        background: rgba(255, 252, 245, 0.96) !important;
        box-shadow: none;
    }

    .qizheng-chart-info-card__summary {
        padding: 0.4rem 0.55rem;
        gap: 0.2rem 0.35rem;
    }

    .qizheng-chart-info-card__summary-label {
        font-size: 0.7rem;
    }

    .qizheng-chart-info-card__pillars {
        font-size: 0.82rem;
        gap: 0.2rem 0.35rem;
    }

    .qizheng-chart-info-card__body {
        padding: 0.35rem 0.55rem 0.5rem;
        max-height: min(42vh, 16rem);
        overflow: auto;
    }

    .qizheng-pan-mount {
        position: relative;
        z-index: 0;
        width: 100%;
        background: transparent;
    }

    .qizheng-pan-layout--moira {
        gap: 0.35rem;
    }

    .qizheng-wheel-stage--moira {
        background: transparent !important;
        border: none !important;
        box-shadow: none !important;
        border-radius: 0 !important;
    }

    .qizheng-mingdu-row {
        padding: 0 0.35rem 0.35rem;
    }

    .qizheng-bottom-bar-mount {
        padding: 0 0.35rem 0.4rem;
    }

    /* 右上角快捷仍浮在盘上，但不与摘要抢左侧 */
    .qizheng-quick-bar--corner {
        top: 0.25rem;
        right: 0.25rem;
    }
}

@media (max-width: 720px) {
    .qizheng-chart-info-card__pillars {
        font-size: 0.8rem;
    }
}

.qizheng-fine-tune-storage {
    display: none !important;
}

.qizheng-bottom-bar-mount {
    width: 100%;
}

.qizheng-pan-layout {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    width: 100%;
}

.qizheng-pan-layout--moira {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.55rem;
}

.qizheng-wheel-stage--moira {
    position: relative;
    min-height: min(760px, 98vw);
    padding: 0.85rem 0.55rem 0.55rem;
    background: radial-gradient(ellipse at 50% 42%, #faf6ee 0%, #f0e8d8 68%, #e8dcc8 100%);
    border: 1px solid rgba(160, 130, 80, 0.35);
    box-shadow:
        inset 0 0 0 1px rgba(255, 255, 255, 0.5),
        0 8px 28px rgba(80, 60, 40, 0.12);
}

.qizheng-wheel-stage--moira .qizheng-wheel-svg {
    width: min(100%, calc(100vh - 12rem), 960px);
    max-height: none;
    height: auto;
    aspect-ratio: 1 / 1;
    display: block;
    margin: 0 auto;
}

.qizheng-wheel-svg--moira .qz-bg-ring {
    fill: none;
    stroke: rgba(201, 160, 106, 0.28);
    stroke-width: 1.2;
}

.qizheng-wheel-svg--moira .qz-bg-ring--inner {
    stroke: rgba(201, 160, 106, 0.14);
    stroke-width: 0.8;
}

.qizheng-wheel-svg--moira .qz-mansion-seg {
    fill: rgba(255, 248, 232, 0.04);
    stroke: rgba(201, 160, 106, 0.22);
}

.qizheng-wheel-svg--moira .qz-mansion-label {
    fill: rgba(232, 210, 168, 0.88);
    font-size: 9px;
}

.qizheng-wheel-svg--moira .qz-branch-seg {
    fill: rgba(255, 248, 232, 0.06);
    stroke: rgba(201, 160, 106, 0.28);
}

.qizheng-wheel-svg--moira .qz-branch-label {
    font-size: 13px;
    font-weight: 700;
    fill: #e8d4a8;
}

.qizheng-wheel-svg--moira .qz-branch-seg--fixed {
    fill: rgba(255, 248, 232, 0.1);
    stroke: rgba(201, 160, 106, 0.38);
}

.qizheng-wheel-svg--moira .qz-branch-line {
    stroke: rgba(201, 160, 106, 0.28);
    stroke-width: 0.65;
}

.qizheng-wheel-svg--moira .qz-zodiac-seg {
    fill: rgba(201, 160, 106, 0.05);
}

.qizheng-wheel-svg--moira .qz-zodiac-seg--ming {
    fill: rgba(212, 72, 58, 0.16);
}

.qizheng-wheel-svg--moira .qz-zodiac-num {
    font-size: 15px;
    font-weight: 800;
    fill: #f5e6c8;
    font-variant-numeric: tabular-nums;
}

.qizheng-wheel-svg--moira .qz-zodiac-num--ming {
    fill: #ff8a72;
}

.qizheng-wheel-svg--moira .qz-zodiac-palace {
    font-size: 10px;
    font-weight: 600;
    fill: #7ec87e;
}

.qizheng-wheel-svg--moira .qz-zodiac-palace--ming {
    fill: #9ee89e;
}

.qizheng-wheel-svg--moira .qz-zodiac-name {
    font-size: 9px;
    fill: rgba(201, 160, 106, 0.88);
}

.qizheng-wheel-svg--moira .qz-palace-seg {
    fill: rgba(201, 160, 106, 0.06);
}

.qizheng-wheel-svg--moira .qz-palace-seg--ming {
    fill: rgba(212, 72, 58, 0.18);
}

.qizheng-wheel-svg--moira .qz-palace-name {
    font-size: 8px;
    fill: rgba(160, 136, 104, 0.92);
}

.qizheng-wheel-svg--moira .qz-palace-line {
    stroke: rgba(201, 160, 106, 0.32);
}

.qizheng-wheel-svg--moira .qz-palace-role {
    fill: #f0dcc0;
}

.qizheng-wheel-svg--moira .qz-palace-role--ming {
    fill: #ff8a72;
}

.qizheng-wheel-svg--moira .qz-palace-branch {
    fill: rgba(201, 160, 106, 0.92);
}

.qizheng-wheel-svg--moira .qz-palace-sign {
    fill: rgba(160, 136, 104, 0.75);
}

.qizheng-wheel-svg--moira .qz-aspect-line {
    stroke-opacity: 0.72;
    stroke-width: 1.1;
}

.qizheng-wheel-svg--moira .qz-center {
    fill: rgba(26, 20, 14, 0.95);
    stroke: rgba(201, 160, 106, 0.55);
    stroke-width: 1.5;
}

.qizheng-wheel-svg--moira .qz-center-label {
    fill: rgba(201, 160, 106, 0.85);
    font-size: 10px;
}

.qizheng-wheel-svg--moira .qz-center-sub {
    fill: #f5e6c8;
    font-size: 11px;
}

.qizheng-wheel-svg--moira .qz-center-deg {
    fill: rgba(232, 210, 168, 0.75);
    font-size: 9px;
}

/* Moira 十层圆盘 */
.qizheng-wheel-svg--moira .qz-layer1-seg,
.qizheng-wheel-svg--moira .qz-layer2-seg {
    fill: rgba(255, 252, 244, 0.92);
    stroke: rgba(160, 130, 80, 0.35);
    stroke-width: 0.6;
}

.qizheng-wheel-svg--moira .qz-layer1-branch {
    font-size: 12px;
    font-weight: 800;
    fill: #111111;
}

.qizheng-wheel-svg--moira .qz-layer2-lord {
    font-size: 11px;
    font-weight: 700;
    fill: #8a8a8a;
}

.qizheng-wheel-svg--moira .qz-layer3-seg {
    fill: rgba(236, 220, 190, 0.55);
    stroke: rgba(160, 130, 80, 0.25);
    stroke-width: 0.5;
}

.qizheng-wheel-svg--moira .qz-layer3-seg--ming {
    fill: rgba(212, 72, 58, 0.14);
}

.qizheng-wheel-svg--moira .qz-layer3-num {
    font-size: 13px;
    font-weight: 800;
    fill: #4a3828;
    font-variant-numeric: tabular-nums;
}

.qizheng-wheel-svg--moira .qz-layer3-num--ming {
    fill: #c94432;
}

.qizheng-wheel-svg--moira .qz-layer4-seg {
    fill: rgba(230, 240, 228, 0.65);
    stroke: rgba(120, 160, 100, 0.22);
    stroke-width: 0.5;
}

.qizheng-wheel-svg--moira .qz-layer4-seg--ming {
    fill: rgba(212, 72, 58, 0.1);
}

.qizheng-wheel-svg--moira .qz-layer4-name {
    font-size: 8px;
    font-weight: 600;
    fill: #3d7a3d;
}

.qizheng-wheel-svg--moira .qz-layer4-name--ming {
    fill: #2d6a2d;
    font-weight: 700;
}

.qizheng-wheel-svg--moira .qz-layer5-seg {
    fill: rgba(255, 244, 220, 0.55);
    stroke: rgba(180, 140, 80, 0.28);
    stroke-width: 0.55;
}

.qizheng-wheel-svg--moira .qz-layer6-seg {
    stroke-width: 0.5;
}

.qizheng-wheel-svg--moira .qz-layer6-seg[data-element="木"] {
    fill: rgba(0, 168, 112, 0.24);
    stroke: rgba(0, 138, 92, 0.48);
}

.qizheng-wheel-svg--moira .qz-layer6-seg[data-element="火"] {
    fill: rgba(224, 90, 90, 0.24);
    stroke: rgba(196, 62, 62, 0.48);
}

.qizheng-wheel-svg--moira .qz-layer6-seg[data-element="土"] {
    fill: rgba(198, 144, 53, 0.26);
    stroke: rgba(168, 118, 38, 0.5);
}

.qizheng-wheel-svg--moira .qz-layer6-seg[data-element="金"] {
    fill: rgba(168, 176, 188, 0.28);
    stroke: rgba(128, 136, 148, 0.52);
}

.qizheng-wheel-svg--moira .qz-layer6-seg[data-element="水"] {
    fill: rgba(45, 158, 207, 0.24);
    stroke: rgba(28, 128, 176, 0.48);
}

.qizheng-wheel-svg--moira .qz-layer6-seg[data-element="日"] {
    fill: rgba(232, 146, 10, 0.26);
    stroke: rgba(200, 118, 0, 0.52);
}

.qizheng-wheel-svg--moira .qz-layer6-seg[data-element="月"] {
    fill: rgba(136, 153, 204, 0.26);
    stroke: rgba(98, 118, 176, 0.5);
}

.qizheng-wheel-svg--moira .qz-layer6-label {
    font-size: 9.5px;
    font-weight: 600;
    paint-order: stroke fill;
    stroke: rgba(255, 248, 232, 0.92);
    stroke-width: 2.5px;
    pointer-events: none;
    fill: rgba(58, 44, 28, 0.92);
}

.qizheng-wheel-svg--moira .qz-layer6-label[data-element="木"] {
    fill: #007a52;
}

.qizheng-wheel-svg--moira .qz-layer6-label[data-element="火"] {
    fill: #b83838;
}

.qizheng-wheel-svg--moira .qz-layer6-label[data-element="土"] {
    fill: #9a6a18;
}

.qizheng-wheel-svg--moira .qz-layer6-label[data-element="金"] {
    fill: #5a6270;
}

.qizheng-wheel-svg--moira .qz-layer6-label[data-element="水"] {
    fill: #1878a8;
}

.qizheng-wheel-svg--moira .qz-layer6-label[data-element="日"] {
    fill: #b86800;
}

.qizheng-wheel-svg--moira .qz-layer6-label[data-element="月"] {
    fill: #5060a0;
}

.qizheng-mansion-cell[data-element="木"] { color: #007a52; }
.qizheng-mansion-cell[data-element="火"] { color: #b83838; }
.qizheng-mansion-cell[data-element="土"] { color: #9a6a18; }
.qizheng-mansion-cell[data-element="金"] { color: #5a6270; }
.qizheng-mansion-cell[data-element="水"] { color: #1878a8; }
.qizheng-mansion-cell[data-element="日"] { color: #b86800; }
.qizheng-mansion-cell[data-element="月"] { color: #5060a0; }

.qizheng-wheel-svg--moira .qz-layer10-seg {
    fill: rgba(248, 244, 236, 0.5);
    stroke: rgba(160, 130, 80, 0.18);
    stroke-width: 0.45;
}

.qizheng-wheel-svg--moira .qz-layer10-deg {
    font-size: 8px;
    fill: #8a6840;
    font-variant-numeric: tabular-nums;
}

.qizheng-wheel-svg--moira .qz-layer10-year {
    font-size: 8px;
    fill: #a08868;
    font-variant-numeric: tabular-nums;
}

.qizheng-wheel-svg--moira .qz-outer-frame {
    fill: none;
    stroke: rgba(160, 130, 80, 0.28);
    stroke-width: 0.6;
    pointer-events: none;
}

/* 星宿环内外双边：每宫 30 格（米黄金，贴合站点色） */
.qizheng-wheel-svg--moira .qz-mansion-deg-rail {
    fill: none;
    stroke: rgba(201, 160, 106, 0.55);
    stroke-width: 1;
    pointer-events: none;
}

.qizheng-wheel-svg--moira .qz-mansion-deg-rail--outer {
    stroke: rgba(212, 176, 120, 0.62);
    stroke-width: 1.05;
}

.qizheng-wheel-svg--moira .qz-mansion-deg-tick {
    stroke: rgba(210, 178, 128, 0.58);
    stroke-width: 0.55;
    stroke-linecap: butt;
    pointer-events: none;
}

.qizheng-wheel-svg--moira .qz-mansion-deg-tick--mid {
    stroke: rgba(201, 160, 106, 0.72);
    stroke-width: 0.75;
}

.qizheng-wheel-svg--moira .qz-mansion-deg-tick--major {
    stroke: rgba(186, 142, 88, 0.88);
    stroke-width: 1.05;
}

.qizheng-wheel-svg--moira .qz-mansion-deg-tick--cusp {
    stroke: rgba(196, 118, 86, 0.9);
    stroke-width: 1.2;
}

.qizheng-wheel-svg--moira .qz-outer-deg-tick {
    stroke: rgba(201, 160, 106, 0.32);
    stroke-width: 0.35;
    pointer-events: none;
}

.qizheng-wheel-svg--moira .qz-outer-deg-tick--mid {
    stroke: rgba(201, 160, 106, 0.48);
    stroke-width: 0.45;
}

.qizheng-wheel-svg--moira .qz-outer-deg-tick--major {
    stroke: rgba(186, 142, 88, 0.68);
    stroke-width: 0.55;
}

/* 细指示线保留；粗黑强调刻/切向短刻关闭 */
.qizheng-wheel-svg--moira .qz-planet-deg-dash,
.qizheng-wheel-svg--moira .qz-planet-deg-dash--transit,
.qizheng-wheel-svg--moira .qz-planet-deg-pointer-tick,
.qizheng-wheel-svg--moira .qz-planet-deg-pointer-tick--transit {
    display: none;
    visibility: hidden;
    stroke: none;
}

.qizheng-wheel-svg--moira .qz-planet-deg-pointer {
    stroke: rgba(140, 110, 70, 0.55);
    stroke-width: 0.7;
    stroke-linecap: round;
    pointer-events: none;
}

.qizheng-wheel-svg--moira .qz-planet-deg-pointer--transit {
    stroke: rgba(160, 120, 70, 0.45);
    stroke-width: 0.6;
}

.qizheng-wheel-svg--moira .qz-xiandu-rim {
    fill: none;
    stroke: rgba(186, 142, 88, 0.72);
    stroke-width: 1.15;
    pointer-events: none;
}

.qizheng-wheel-svg--moira .qz-xiandu-rim--inner {
    stroke: rgba(201, 160, 106, 0.42);
    stroke-width: 0.85;
}

.qizheng-wheel-svg--moira .qz-xiandu-tick {
    stroke: rgba(160, 120, 72, 0.78);
    stroke-width: 1.05;
    stroke-linecap: butt;
    opacity: 1;
    pointer-events: none;
}

.qizheng-wheel-svg--moira .qz-xiandu-tick--major {
    stroke: rgba(140, 100, 56, 0.9);
    stroke-width: 1.35;
}

.qizheng-wheel-svg--moira .qz-xiandu-tick--birth {
    stroke: rgba(196, 118, 86, 0.95);
    stroke-width: 1.55;
}

.qizheng-wheel-svg--moira .qz-xiandu-current-arc {
    fill: rgba(106, 128, 152, 0.88);
    stroke: none;
    opacity: 1;
    pointer-events: none;
}

/* 限度岁数 / 年份：与盘面宋体、米金棕同系 */
.qizheng-wheel-svg--moira .qz-outer-year-label {
    font-family: "Noto Serif SC", "Source Han Serif SC", "Songti SC", "SimSun", serif;
    font-size: 9.5px;
    font-weight: 600;
    fill: #8a6840;
    stroke: rgba(250, 246, 238, 0.92);
    stroke-width: 2.4px;
    paint-order: stroke fill;
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.02em;
    pointer-events: none;
}

.qizheng-wheel-svg--moira .qz-outer-year-label--current {
    fill: #6a8098;
    font-weight: 700;
    font-size: 10px;
}

.qizheng-wheel-svg--moira .qz-outer-deg-label {
    font-family: "Noto Serif SC", "Source Han Serif SC", "Songti SC", "SimSun", serif;
    font-size: 10.5px;
    font-weight: 600;
    fill: #5c4630;
    stroke: rgba(250, 246, 238, 0.9);
    stroke-width: 2.2px;
    paint-order: stroke fill;
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.03em;
    pointer-events: none;
}

.qizheng-wheel-svg--moira .qz-outer-deg-label--current {
    fill: #6a8098;
    font-weight: 700;
    font-size: 11.5px;
    stroke: rgba(255, 252, 248, 0.95);
    stroke-width: 2.6px;
}

.qizheng-wheel-svg--moira .qz-changsheng-label {
    fill: #2f8f4e;
    font-size: 12px;
    font-weight: 700;
    font-family: "Noto Serif SC", "Source Han Serif SC", serif;
    paint-order: stroke fill;
    stroke: rgba(255, 252, 246, 0.92);
    stroke-width: 1.4px;
    pointer-events: none;
}

.qizheng-wheel-svg--moira .qz-spirit-track--cs-inner,
.qizheng-wheel-svg--moira .qz-spirit-track--cs-outer {
    fill: none;
    stroke: rgba(47, 143, 78, 0.22);
    stroke-width: 0.7;
}

.qizheng-wheel-svg--moira .qz-outer-palace-deg {
    fill: rgba(90, 70, 48, 0.72);
    font-size: 4.8px;
    font-variant-numeric: tabular-nums;
    pointer-events: none;
}

.qizheng-wheel-svg--moira .qz-outer-palace-deg--cusp {
    fill: rgba(140, 70, 40, 0.9);
    font-weight: 700;
    font-size: 5.2px;
}

.qizheng-wheel-svg .qz-xiandu-hit {
    cursor: pointer;
}

.qizheng-wheel-svg .qz-xiandu-hit-area {
    fill: transparent;
    stroke: none;
    pointer-events: all;
}

.qizheng-wheel-svg .qz-xiandu-hit.qz-xiandu--hover .qz-outer-deg-label,
.qizheng-wheel-svg .qz-xiandu-hit.qz-xiandu--hover .qz-outer-year-label {
    fill: #8a5230;
    font-weight: 700;
}

.qizheng-wheel-svg .qz-spirit-hit {
    cursor: pointer;
}

.qizheng-wheel-svg .qz-spirit-hit-area {
    fill: transparent;
    stroke: none;
    pointer-events: all;
}

.qizheng-wheel-svg--moira .qz-spirit-label,
.qizheng-wheel-svg--moira .qz-changsheng-label {
    pointer-events: none;
}

.qizheng-wheel-svg .qz-spirit-hit.qz-spirit--hover .qz-spirit-label,
.qizheng-wheel-svg .qz-spirit-hit.qz-spirit--hover .qz-changsheng-label {
    filter: brightness(1.08);
}

.qizheng-wheel-svg--moira .qz-planet-track {
    fill: none;
    stroke-width: 0.6;
    pointer-events: none;
}

.qizheng-wheel-svg--moira .qz-layer--transit-planet .qz-planet-track {
    stroke: rgba(160, 110, 50, 0.62);
    stroke-width: 1;
    stroke-dasharray: 5 4;
}

.qizheng-wheel-svg--moira .qz-layer--transit-planet--l5 .qz-planet-track {
    stroke: rgba(180, 130, 70, 0.72);
    stroke-width: 1.1;
}

.qizheng-wheel-svg--moira .qz-layer--transit-planet--l5 .qz-planet-char {
    font-size: 18px;
    font-weight: 750;
}

.qizheng-wheel-svg--moira .qz-layer--natal-planet .qz-planet-track {
    stroke: rgba(80, 110, 160, 0.42);
}

.qizheng-wheel-svg--moira .qz-layer--transit-planet .qz-planet-char {
    font-size: 18px;
    font-weight: 750;
}

.qizheng-wheel-svg--moira .qz-layer--natal-planet .qz-planet-char {
    font-size: 18px;
    font-weight: 750;
}

.qizheng-wheel-svg .qz-planet {
    cursor: pointer;
}

.qizheng-wheel-svg .qz-planet-hit {
    pointer-events: all;
}

.qizheng-wheel-svg .qz-planet-char,
.qizheng-wheel-svg .qz-planet-hua-char {
    pointer-events: none;
    paint-order: stroke fill;
    stroke: rgba(255, 252, 246, 0.96);
    stroke-width: 3px;
}

.qizheng-wheel-svg .qz-planet-char {
    font-size: 18px;
    font-weight: 750;
    fill: #5a4630;
    font-family: "Noto Serif SC", "Source Han Serif SC", "Songti SC", serif;
}

.qizheng-wheel-svg .qz-planet-char[data-element="木"],
.qizheng-wheel-svg .qz-planet[data-element="木"] .qz-planet-char {
    fill: #007a52 !important;
}
.qizheng-wheel-svg .qz-planet-char[data-element="火"],
.qizheng-wheel-svg .qz-planet[data-element="火"] .qz-planet-char {
    fill: #b83838 !important;
}
.qizheng-wheel-svg .qz-planet-char[data-element="土"],
.qizheng-wheel-svg .qz-planet[data-element="土"] .qz-planet-char {
    fill: #9a6a18 !important;
}
.qizheng-wheel-svg .qz-planet-char[data-element="金"],
.qizheng-wheel-svg .qz-planet[data-element="金"] .qz-planet-char {
    fill: #5a6270 !important;
}
.qizheng-wheel-svg .qz-planet-char[data-element="水"],
.qizheng-wheel-svg .qz-planet[data-element="水"] .qz-planet-char {
    fill: #1878a8 !important;
}
.qizheng-wheel-svg .qz-planet-char[data-element="日"],
.qizheng-wheel-svg .qz-planet[data-element="日"] .qz-planet-char {
    fill: #b86800 !important;
}
.qizheng-wheel-svg .qz-planet-char[data-element="月"],
.qizheng-wheel-svg .qz-planet[data-element="月"] .qz-planet-char {
    fill: #5060a0 !important;
}

.qizheng-wheel-svg .qz-planet-hua-char,
.qizheng-wheel-svg .qz-planet-mansion-label {
    display: none;
}

.qz-planet-tip-float {
    position: absolute;
    z-index: 12;
    min-width: 9.5rem;
    max-width: min(18rem, 92vw);
    padding: 0.42rem 0.52rem;
    border-radius: 8px;
    background: rgba(28, 22, 16, 0.94);
    color: #f5efe4;
    font-size: 0.72rem;
    line-height: 1.45;
    box-shadow: 0 8px 22px rgba(20, 14, 8, 0.35);
    border: 1px solid rgba(200, 168, 110, 0.35);
    pointer-events: none;
}

.qz-planet-tip-float[hidden] {
    display: none !important;
}

.qz-planet-tip__line + .qz-planet-tip__line {
    margin-top: 0.18rem;
}

.qz-planet-tip-float > .qz-planet-tip__line:first-child {
    font-weight: 700;
    color: #ffe8b8;
}

/* 限度 / 神煞：浅底深字（须写在深色默认 tip 之后，避免被盖掉） */
.qz-planet-tip-float.qz-planet-tip-float--xiandu,
.qz-planet-tip-float.qz-planet-tip-float--spirit {
    background: rgba(255, 252, 246, 0.98);
    color: #1a1a1a;
    border: 1px solid rgba(120, 170, 210, 0.75);
    box-shadow: 0 4px 14px rgba(40, 60, 90, 0.16);
    border-radius: 4px;
    font-family: "Noto Serif SC", "Source Han Serif SC", "Songti SC", serif;
    font-size: 0.78rem;
    line-height: 1.5;
    min-width: 11rem;
}

.qz-planet-tip-float.qz-planet-tip-float--spirit {
    min-width: 12rem;
    max-width: min(22rem, 92vw);
    border-color: rgba(140, 120, 180, 0.55);
}

.qz-planet-tip-float.qz-planet-tip-float--xiandu > .qz-planet-tip__line:first-child,
.qz-planet-tip-float.qz-planet-tip-float--spirit > .qz-planet-tip__line:first-child {
    color: #111;
    font-weight: 700;
}

.qz-planet-tip-float.qz-planet-tip-float--xiandu > .qz-planet-tip__line + .qz-planet-tip__line,
.qz-planet-tip-float.qz-planet-tip-float--spirit > .qz-planet-tip__line + .qz-planet-tip__line {
    color: #222;
    font-weight: 500;
}

.qizheng-wheel-svg--moira .qz-center {
    fill: rgba(255, 252, 248, 0.98);
    stroke: rgba(120, 160, 200, 0.55);
    stroke-width: 1.5;
}

.qizheng-wheel-svg--moira .qz-center-label {
    fill: #6a8098;
    font-size: 10px;
}

.qizheng-wheel-svg--moira .qz-center-sub {
    fill: #4a3828;
    font-size: 11px;
}

.qizheng-wheel-svg--moira .qz-center-deg {
    fill: #8a6840;
    font-size: 9px;
}

.qizheng-wheel-svg--moira .qz-asc-marker {
    fill: #ff8a72;
}

.qizheng-wheel-svg--moira .qz-spirit-track {
    fill: none;
    stroke: rgba(140, 120, 180, 0.22);
    stroke-width: 0.8;
}

.qizheng-wheel-svg--moira .qz-spirit-track--outer {
    stroke: rgba(201, 160, 106, 0.28);
    stroke-dasharray: none;
}

.qizheng-wheel-svg--moira .qz-spirit-track--inner {
    stroke: rgba(140, 120, 180, 0.18);
    stroke-dasharray: 2 3;
}

.qizheng-wheel-svg--moira .qz-spirit-seg {
    fill: rgba(74, 63, 107, 0.06);
    stroke: rgba(140, 120, 180, 0.12);
    stroke-width: 0.4;
}

.qizheng-wheel-svg--moira .qz-spirit-label {
    fill: #1a1a1a;
    font-size: 12.5px;
    font-family: "Noto Serif SC", "Source Han Serif SC", "Songti SC", serif;
    letter-spacing: 0;
    font-weight: 700;
    paint-order: stroke fill;
    stroke: rgba(255, 250, 242, 0.95);
    stroke-width: 2.6px;
}

.qizheng-wheel-svg--moira .qz-spirit-label--vert,
.qizheng-wheel-svg--moira .qz-spirit-label--radial {
    writing-mode: horizontal-tb;
}

.qizheng-wheel-svg--moira .qz-spirit-label--mid {
    font-size: 11.5px;
    stroke-width: 2.3px;
}

.qizheng-wheel-svg--moira .qz-spirit-label--dense {
    font-size: 10.5px;
    stroke-width: 2px;
}

/* 流年 / 本命：仅调字号，吉凶色统一下方规则 */
.qizheng-wheel-svg--moira .qz-layer--annual-spirit .qz-spirit-label {
    font-size: 12px;
}

.qizheng-wheel-svg--moira .qz-layer--annual-spirit .qz-spirit-label--mid {
    font-size: 11px;
}

.qizheng-wheel-svg--moira .qz-layer--annual-spirit .qz-spirit-label--dense {
    font-size: 10px;
}

.qizheng-wheel-svg--moira .qz-layer--natal-spirit .qz-spirit-label {
    font-size: 13px;
}

.qizheng-wheel-svg--moira .qz-layer--natal-spirit .qz-spirit-label--mid {
    font-size: 12px;
}

.qizheng-wheel-svg--moira .qz-layer--natal-spirit .qz-spirit-label--dense {
    font-size: 11px;
}

/* 吉绿 · 凶红 · 中性黑（本命/流年共用，提高优先级避免被环层盖掉） */
.qizheng-wheel-svg--moira .qz-spirit-label--neutral,
.qizheng-wheel-svg--moira .qz-layer--natal-spirit .qz-spirit-label--neutral,
.qizheng-wheel-svg--moira .qz-layer--annual-spirit .qz-spirit-label--neutral {
    fill: #1a1a1a;
}

.qizheng-wheel-svg--moira .qz-spirit-label--ausp,
.qizheng-wheel-svg--moira .qz-layer--natal-spirit .qz-spirit-label--ausp,
.qizheng-wheel-svg--moira .qz-layer--annual-spirit .qz-spirit-label--ausp {
    fill: #128a3c;
}

.qizheng-wheel-svg--moira .qz-spirit-label--malefic,
.qizheng-wheel-svg--moira .qz-layer--natal-spirit .qz-spirit-label--malefic,
.qizheng-wheel-svg--moira .qz-layer--annual-spirit .qz-spirit-label--malefic {
    fill: #d02020;
}

/* 十二长生：琥珀墨色 */
.qizheng-wheel-svg--moira .qz-spirit-label--changsheng {
    fill: #6e5228;
    font-weight: 700;
    font-size: 8px;
}

.qizheng-mingdu-strip {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.35rem 0.75rem;
    padding: 0.55rem 0.85rem;
    border-radius: 10px;
    background: linear-gradient(90deg, rgba(74, 63, 107, 0.08), rgba(201, 160, 106, 0.1), rgba(74, 63, 107, 0.08));
    border: 1px solid rgba(201, 160, 106, 0.22);
}

.qizheng-mingdu-strip__label {
    font-size: 0.75rem;
    font-weight: 700;
    color: #6a5088;
    letter-spacing: 0.08em;
}

.qizheng-mingdu-strip__val {
    font-size: 0.875rem;
    color: #4a3a2a;
    font-family: "Noto Serif SC", "Source Han Serif SC", serif;
}

.qizheng-fine-tune {
    margin-bottom: 0.85rem;
    padding: 0.85rem 1rem;
    border-radius: 14px;
    background: linear-gradient(180deg, var(--bg-card) 0%, var(--panel-1) 100%);
    border: 1px solid var(--bg-card-border);
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.65) inset, 0 4px 14px rgba(58, 47, 33, 0.04);
}

.qizheng-fine-tune--bottom {
    margin: 0;
    padding: 0.4rem 0.55rem;
}

.qizheng-bottom-toolbar {
    display: block;
}

.qizheng-bottom-toolbar__row {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 0.4rem 0.65rem;
}

.qizheng-toolbar-item {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.28rem 0.4rem;
    min-width: 0;
}

.qizheng-toolbar-item--sidereal .qizheng-fine-tune__select {
    min-width: 7.5rem;
    max-width: 9.5rem;
}

.qizheng-toolbar-item--time {
    flex: 1 1 100%;
    max-width: 100%;
}

.qizheng-time-stack {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-start;
    gap: 0.55rem 0.75rem;
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.qizheng-time-col {
    flex: 0 1 auto;
    width: auto;
    min-width: 0;
}

.qizheng-time-col--birth {
    padding-right: 0.55rem;
    border-right: 1px dashed rgba(160, 130, 80, 0.22);
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    gap: 0.45rem 0.7rem;
    align-items: center;
    flex: 0 1 auto;
    min-width: 0;
}

.qizheng-time-col--loc {
    flex: 0 0 auto;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    align-content: center;
    justify-content: flex-start;
    gap: 0.35rem 0.45rem;
    min-width: 0;
    max-width: none;
    margin-right: 0.55rem;
    padding: 0 0.55rem 0 0;
    border-right: 1px dashed rgba(160, 130, 80, 0.22);
}

.qizheng-time-col__loc-row {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    gap: 0.32rem;
    width: auto;
    max-width: none;
    justify-items: stretch;
}

.qizheng-time-col--loc > .qizheng-fine-tune__label {
    width: auto;
    flex: 0 0 auto;
    text-align: left;
    white-space: nowrap;
    font-size: 0.9rem;
    font-weight: 700;
}

.qizheng-time-col--loc .qizheng-fine-tune__select {
    width: auto;
    min-width: 7.5rem;
    max-width: 11rem;
    min-height: 2.15rem;
    font-size: 0.88rem;
}

.qizheng-time-col--transit {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    gap: 0.35rem 0.45rem;
    align-items: center;
    flex: 0 0 auto;
    margin-left: 0;
}

.qizheng-time-row--transit {
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.35rem 0.45rem;
}

.qizheng-time-row--transit .qizheng-fine-tune__label {
    font-size: 0.9rem;
    font-weight: 700;
    white-space: nowrap;
}

.qizheng-fine-tune__when--transit {
    font-size: 0.88rem;
    white-space: nowrap;
}

.qizheng-time-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.28rem 0.4rem;
    min-width: 0;
}

.qizheng-time-row--birth {
    padding-bottom: 0;
    border-bottom: none;
    flex-wrap: nowrap;
    flex: 0 0 auto;
    gap: 0.35rem 0.45rem;
}

.qizheng-time-row--birth .qizheng-fine-tune__label,
.qizheng-birth-quick__label {
    font-size: 0.9rem;
    font-weight: 700;
    color: #5a4630;
    white-space: nowrap;
}

.qizheng-birth-datetime-selects {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.28rem 0.32rem;
    min-width: 0;
}

.qizheng-birth-datetime-selects .qizheng-birth-select {
    width: auto;
    min-width: 4.6rem;
    max-width: 6.2rem;
    min-height: 2.15rem;
    padding: 0.32rem 0.45rem;
    font-size: 0.92rem;
}

.qizheng-birth-datetime-selects .qizheng-birth-select--shichen {
    min-width: 5rem;
    max-width: 6.4rem;
}

.qizheng-birth-quick {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.32rem 0.45rem;
    min-width: 0;
    max-width: none;
    flex: 0 1 auto;
}

.qizheng-birth-quick__row {
    display: flex;
    align-items: center;
    gap: 0.32rem;
    min-width: 0;
    flex: 0 1 auto;
}

.qizheng-birth-quick__input {
    flex: 0 1 auto;
    min-width: 0;
    width: 11.5rem;
    max-width: 13rem;
    min-height: 2.15rem;
    padding: 0.28rem 0.5rem;
    font-size: 0.92rem;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.04em;
    border-radius: 8px;
}

.qizheng-birth-quick__btn {
    flex: 0 0 auto;
    min-height: 2.15rem;
    padding: 0.32rem 0.85rem;
    font-size: 0.9rem;
    font-weight: 700;
}

.qizheng-birth-quick__hint {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

@media (max-width: 1100px) {
    .qizheng-time-col--birth {
        flex-wrap: wrap;
        row-gap: 0.35rem;
    }
}

@media (max-width: 720px) {
    .qizheng-birth-quick {
        flex-direction: column;
        align-items: stretch;
        flex-wrap: wrap;
    }

    .qizheng-birth-quick__row {
        width: 100%;
    }

    .qizheng-birth-quick__input {
        flex: 1 1 auto;
        width: auto;
        max-width: none;
    }

    .qizheng-birth-quick__hint {
        position: static;
        width: auto;
        height: auto;
        margin: 0;
        clip: auto;
        overflow: visible;
        white-space: normal;
        font-size: 0.66rem;
        line-height: 1.3;
        color: rgba(90, 72, 48, 0.72);
    }
}

.qizheng-fine-tune__when--birth {
    color: #6a5840;
    font-weight: 600;
}

.qizheng-fine-tune__when--transit {
    color: #8a5030;
    font-weight: 700;
}

.qizheng-toolbar-item--loc {
    flex: 0 1 auto;
    max-width: 100%;
}

.qizheng-time-col--loc .qizheng-fine-tune__select {
    width: auto;
    min-width: 5.2rem;
    max-width: 7.2rem;
    padding: 0.28rem 0.4rem;
    font-size: 0.8rem;
}

.qizheng-time-col--loc .qizheng-toolbar-item--sidereal .qizheng-fine-tune__select {
    min-width: 7.2rem;
    max-width: 9rem;
}

.qizheng-toolbar-item .qizheng-fine-tune__label {
    flex: 0 0 auto;
    white-space: nowrap;
}

.qizheng-toolbar-item .qizheng-fine-tune__when {
    flex: 0 0 auto;
    white-space: nowrap;
}

.qizheng-toolbar-item .qizheng-fine-tune__controls {
    flex: 0 0 auto;
}

.qizheng-toolbar-item .qizheng-fine-tune__select {
    flex: 0 0 auto;
    width: auto;
    min-width: 5.5rem;
    max-width: 7.5rem;
}

.qizheng-toolbar-item .qizheng-sidebar-action-btn {
    min-height: 2rem;
    padding-block: 0.35rem;
}

.qizheng-bottom-toolbar__zone {
    flex: 0 0 auto;
    width: max-content;
    max-width: 100%;
}

.qizheng-bottom-toolbar__zone--sidereal {
    flex: 0 0 auto;
}

.qizheng-bottom-toolbar__zone--time {
    flex: 0 0 auto;
}

.qizheng-bottom-toolbar__zone--loc {
    flex: 1 1 auto;
    min-width: 0;
}

.qizheng-fine-tune--bottom .qizheng-fine-tune__loc {
    width: 100%;
    max-width: 100%;
}

.qizheng-fine-tune--bottom .qizheng-fine-tune__loc-grid {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.3rem;
    width: 100%;
    max-width: 100%;
}

.qizheng-loc-grid__cell--actions {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    flex: 0 0 auto;
}

.qizheng-fine-tune--bottom .qizheng-loc-grid__cell--actions .qizheng-sidebar-action-btn {
    min-height: 2rem;
    padding-block: 0.35rem;
}

.qizheng-quick-bar--inline {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
    flex: 0 0 auto;
    margin: 0;
    padding: 0;
    background: none;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.qizheng-quick-bar--inline .qizheng-quick-btn {
    font-size: 0.75rem;
    padding: 0.35rem 0.65rem;
}

.qizheng-quick-bar--inline .qizheng-fine-tune__action-btn--save {
    font-size: 0.75rem;
    padding: 0.35rem 0.65rem;
    margin: 0;
}

.qizheng-fine-tune--bottom .qizheng-fine-tune__sidebar-actions {
    margin: 0;
    padding: 0;
    border: 0;
    gap: 0.35rem;
    min-width: 0;
    width: max-content;
}

.qizheng-fine-tune--bottom .qizheng-sidebar-action-btn {
    width: auto;
    min-width: 0;
    padding-inline: 0.65rem;
}

.qizheng-fine-tune--bottom .qizheng-fine-tune__options,
.qizheng-fine-tune--bottom .qizheng-fine-tune__loc {
    margin: 0;
    padding: 0;
    border: 0;
    width: max-content;
    max-width: 100%;
}

.qizheng-fine-tune--bottom .qizheng-fine-tune__head {
    margin-bottom: 0.35rem;
    width: max-content;
    max-width: 100%;
}

.qizheng-fine-tune--bottom .qizheng-fine-tune__when {
    font-size: 0.8125rem;
}

.qizheng-fine-tune--bottom .qizheng-fine-tune__controls {
    flex-wrap: nowrap;
    margin-bottom: 0;
    gap: 0.3rem;
    width: max-content;
    max-width: 100%;
}

.qizheng-fine-tune--bottom .qizheng-fine-tune__unit {
    flex: 0 0 auto;
    width: auto;
    min-width: 3.8rem;
    max-width: 5.5rem;
    padding-inline: 0.45rem;
}

.qizheng-fine-tune--bottom .qizheng-fine-tune__action-btn {
    flex: 0 0 auto;
    white-space: nowrap;
    padding-inline: 0.55rem;
}

.qizheng-fine-tune--bottom .qizheng-fine-tune__loc-grid .qizheng-fine-tune__select {
    flex: 0 0 auto;
    width: auto;
    min-width: 5.5rem;
    max-width: 7.5rem;
}

.qizheng-fine-tune--bottom .qizheng-fine-tune__summary {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.4rem 1rem;
    margin-top: 0.5rem;
    padding-top: 0.5rem;
    border-top: 1px solid rgba(126, 96, 58, 0.12);
}

.qizheng-fine-tune--bottom .qizheng-fine-tune__info-row {
    flex-direction: row;
    align-items: baseline;
    gap: 0.35rem;
    width: max-content;
    max-width: 100%;
}

.qizheng-fine-tune--bottom .qizheng-fine-tune__opt {
    width: max-content;
    max-width: 100%;
}

.qizheng-fine-tune--bottom .qizheng-fine-tune__opt--sidereal .qizheng-fine-tune__select {
    width: auto;
    min-width: 0;
    max-width: 9.5rem;
    padding-inline: 0.45rem;
}

.qizheng-fine-tune--bottom .qizheng-fine-tune__select {
    width: auto;
    max-width: 100%;
    padding: 0.4rem 0.5rem;
}

.qizheng-fine-tune__sidebar-actions {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-bottom: 0.85rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid rgba(180, 150, 90, 0.22);
}

.qizheng-sidebar-action-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 2.35rem;
    padding: 0.45rem 0.85rem;
    border-radius: 10px;
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    cursor: pointer;
    transition: background 0.2s, border-color 0.2s, box-shadow 0.2s, transform 0.12s;
}

.qizheng-toggle-spirits-btn {
    border: 1px solid rgba(201, 160, 106, 0.45);
    background: linear-gradient(180deg, rgba(255, 252, 246, 0.98) 0%, rgba(248, 236, 218, 0.92) 100%);
    color: #5a4630;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.72);
}

.qizheng-toggle-spirits-btn:hover {
    border-color: rgba(160, 120, 70, 0.55);
    background: linear-gradient(180deg, #fffdf8 0%, #efe4d2 100%);
}

.qizheng-toggle-spirits-btn--off {
    opacity: 0.78;
    background: rgba(240, 235, 228, 0.92);
    color: rgba(74, 61, 44, 0.72);
}

.qizheng-repaipan-btn {
    border: 1px solid rgba(212, 168, 95, 0.45);
    border-radius: 10px;
    background: linear-gradient(180deg, rgb(244, 214, 160) 0%, var(--tone-gold, #ecc783) 100%);
    color: #3a2b1a;
    box-shadow: 0 4px 16px rgba(236, 199, 131, 0.28);
}

.qizheng-repaipan-btn:hover {
    background: linear-gradient(180deg, #f6dfb0 0%, #e0b86a 100%);
    border-color: rgba(212, 168, 95, 0.55);
    color: #3a2b1a;
}

.qizheng-repaipan-btn:active,
.qizheng-toggle-spirits-btn:active {
    transform: translateY(1px);
}

.qizheng-fine-tune__options {
    margin-bottom: 0.85rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid rgba(180, 150, 90, 0.22);
}

.qizheng-fine-tune--bottom .qizheng-fine-tune__options {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: 0;
}

.qizheng-fine-tune__opt {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.qizheng-fine-tune__opt--sidereal .qizheng-fine-tune__select {
    width: 100%;
    font-size: 0.82rem;
    padding: 0.4rem 0.5rem;
}

.qizheng-fine-tune__summary {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    margin-top: 0.75rem;
    padding-top: 0.75rem;
    border-top: 1px solid rgba(126, 96, 58, 0.12);
}

.qizheng-fine-tune__info-row {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.qizheng-fine-tune__info-val {
    font-size: 0.8125rem;
    line-height: 1.45;
    color: var(--text-primary);
    font-variant-numeric: tabular-nums;
    word-break: break-word;
}

.qizheng-fine-tune__info-val--mono {
    font-family: ui-monospace, "Cascadia Mono", Consolas, monospace;
}

.qizheng-fine-tune__head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.35rem 0.75rem;
    margin-bottom: 0.65rem;
}

.qizheng-fine-tune__label {
    font-size: 0.75rem;
    font-weight: 700;
    color: rgba(74, 61, 44, 0.82);
    letter-spacing: 0.06em;
}

.qizheng-fine-tune__when {
    font-size: 0.875rem;
    color: var(--text-primary);
    font-variant-numeric: tabular-nums;
    font-family: ui-monospace, "Cascadia Mono", Consolas, monospace;
}

.qizheng-fine-tune__controls {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
    margin-bottom: 0.75rem;
}

.qizheng-fine-tune__step-btn {
    width: 2.1rem;
    height: 2.1rem;
    border-radius: 999px;
    border: 1px solid var(--line-strong);
    background: var(--panel-2);
    color: var(--text-primary);
    font-size: 1.15rem;
    line-height: 1;
    cursor: pointer;
    transition: background 0.2s, border-color 0.2s;
}

.qizheng-fine-tune__step-btn:hover {
    background: var(--hover-item-bg);
    border-color: var(--tone-gold-deep);
}

.qizheng-fine-tune__unit {
    min-width: 6.5rem;
    padding: 0.42rem 0.55rem;
    border-radius: 10px;
    border: 1px solid var(--plain-white-soft);
    background: var(--panel-2);
    color: var(--text-primary);
    font-size: 0.8125rem;
}

.qizheng-fine-tune__action-btn {
    padding: 0.42rem 0.85rem;
    border-radius: 10px;
    border: 1px solid rgba(58, 47, 33, 0.16);
    background: var(--panel-2);
    color: var(--text-primary);
    font-size: 0.8125rem;
    cursor: pointer;
    transition: background 0.2s, border-color 0.2s;
}

.qizheng-fine-tune__action-btn:hover {
    background: var(--hover-item-bg);
    border-color: var(--line-strong);
}

.qizheng-fine-tune__action-btn--primary {
    background: linear-gradient(180deg, var(--accent-hover) 0%, var(--accent) 100%);
    border-color: rgba(58, 47, 33, 0.2);
    color: var(--cream-text);
    font-weight: 600;
}

.qizheng-fine-tune__action-btn--primary:hover {
    background: linear-gradient(180deg, var(--accent) 0%, var(--tone-gold-deep) 100%);
    border-color: rgba(58, 47, 33, 0.28);
}

.qizheng-fine-tune__loc {
    padding-top: 0.65rem;
    border-top: 1px solid var(--line-soft);
}

.qizheng-fine-tune__loc-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
    margin-top: 0.45rem;
}

@media (max-width: 520px) {
    .qizheng-fine-tune__loc-grid {
        grid-template-columns: 1fr;
    }
}

.qizheng-fine-tune__select {
    width: 100%;
    font-size: 0.8125rem;
    padding: 0.58rem 0.72rem;
    border-radius: 10px;
}

@media (max-width: 1100px) {
    .qizheng-time-stack {
        flex-wrap: wrap;
    }

    .qizheng-time-col--loc {
        flex: 1 1 14rem;
        border-right: none;
        padding: 0;
        order: 3;
        width: 100%;
    }

    .qizheng-time-col--transit {
        margin-left: 0;
        order: 2;
        flex: 1 1 auto;
    }

    .qizheng-time-col--birth {
        order: 1;
    }
}

@media (max-width: 960px) {
    .qizheng-bottom-toolbar__row {
        flex-direction: column;
        align-items: stretch;
        gap: 0.4rem;
    }

    .qizheng-toolbar-item--time,
    .qizheng-toolbar-item--loc {
        flex: 0 1 auto;
        width: 100%;
    }

    .qizheng-time-stack {
        flex-direction: column;
        flex-wrap: nowrap;
        width: 100%;
        gap: 0.4rem;
    }

    .qizheng-time-col--birth {
        padding-right: 0;
        padding-bottom: 0.4rem;
        border-right: none;
        border-bottom: 1px dashed rgba(160, 130, 80, 0.22);
        width: 100%;
        order: 1;
    }

    .qizheng-time-col--loc {
        width: 100%;
        order: 2;
        padding: 0 0 0.4rem;
        border-right: none;
        border-bottom: 1px dashed rgba(160, 130, 80, 0.22);
    }

    .qizheng-time-col--transit {
        width: 100%;
        order: 3;
        margin-left: 0;
    }

    .qizheng-toolbar-item .qizheng-fine-tune__controls {
        flex-wrap: wrap;
        width: auto;
        max-width: 100%;
    }

    .qizheng-fine-tune--bottom .qizheng-fine-tune__unit {
        flex: 0 0 auto;
        width: auto;
        max-width: 5.5rem;
    }

    .qizheng-fine-tune--bottom .qizheng-fine-tune__action-btn {
        flex: 0 0 auto;
    }

    .qizheng-fine-tune--bottom .qizheng-fine-tune__summary {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.3rem;
    }
}

.qizheng-fine-tune__loc-hint {
    margin: 0.45rem 0 0;
    padding: 0.48rem 0.58rem;
    border-radius: 8px;
    background: rgba(126, 96, 58, 0.06);
    border: 1px solid rgba(126, 96, 58, 0.08);
    font-size: 0.72rem;
    line-height: 1.55;
    color: rgba(74, 61, 44, 0.72);
}

.qizheng-ncey {
    padding: 0.45rem 0.55rem 0.5rem;
    border-radius: 10px;
    background: rgba(255, 252, 246, 0.96);
    border: 1px solid rgba(160, 120, 60, 0.28);
    font-size: 0.78rem;
    line-height: 1.4;
    color: #3f2e18;
}

.qizheng-ncey--modal {
    box-shadow: none;
    max-width: 100%;
}

.qizheng-ncey__hint {
    margin: 0 0 0.55rem;
    font-size: 0.72rem;
    color: #8a6840;
}

.qizheng-ncey__title {
    margin: 0 0 0.35rem;
    font-size: 0.72rem;
    font-weight: 700;
    color: #8a6840;
    letter-spacing: 0.02em;
}

.qizheng-ncey__rows {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.qizheng-ncey__row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.28rem 0.4rem;
    padding: 0.4rem 0.2rem;
    border-top: 1px solid rgba(160, 130, 80, 0.16);
}

.qizheng-ncey__row:first-child {
    padding-top: 0;
    border-top: none;
}

.qizheng-ncey__kind {
    flex: 0 0 auto;
    font-weight: 700;
    color: #5a4630;
    min-width: 1.1em;
}

.qizheng-ncey__cell {
    display: inline-flex;
    align-items: center;
    gap: 0.15rem;
    flex: 0 1 auto;
    min-width: 0;
}

.qizheng-ncey__role {
    flex: 0 0 auto;
    color: #5a4630;
    font-weight: 600;
}

.qizheng-ncey__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.12rem 0.45rem;
    border-radius: 999px;
    background: rgba(248, 236, 218, 0.95);
    border: 1px solid rgba(201, 160, 106, 0.28);
    color: #6a5030;
    font-weight: 700;
    font-size: 0.75rem;
    white-space: nowrap;
}

.qizheng-ncey__badge--main {
    flex: 0 0 auto;
    margin-right: 0.15rem;
}

.qizheng-quick-bar--corner {
    position: absolute;
    top: 0.35rem;
    right: 0.35rem;
    z-index: 10;
    justify-content: flex-end;
    gap: 0.35rem;
    padding: 0.4rem 0.45rem;
    margin: 0;
    max-width: min(20rem, 58%);
    box-shadow: 0 2px 10px rgba(40, 28, 12, 0.08);
}

.qizheng-quick-bar--corner .qizheng-quick-btn {
    font-size: 0.78rem;
    padding: 0.36rem 0.72rem;
}

/* 盘制设置：右上快捷栏入口（桌面展开左侧盘制栏，手机为覆盖面板） */
.qizheng-quick-btn--pan-opts {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    border-color: rgba(160, 120, 50, 0.45);
    background: linear-gradient(180deg, #f7e7c4, #efd49a);
    color: #5a4020;
}

.qizheng-quick-btn--pan-opts.is-open,
.qizheng-quick-btn--pan-opts[aria-expanded='true'] {
    background: linear-gradient(180deg, #f0d49a, #e0b56a);
    border-color: rgba(160, 120, 50, 0.6);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.35);
}

/* 桌面：命盘信息组直接展开为独立按钮；手机菜单钮隐藏 */
.qizheng-quick-mobile-only {
    display: none !important;
}

.qizheng-quick-top-row {
    display: contents;
}

.qizheng-quick-info-menu {
    display: contents;
}

.qizheng-quick-btn--info-menu.is-open,
.qizheng-quick-btn--info-menu[aria-expanded='true'] {
    background: linear-gradient(180deg, #f0d49a, #e0b56a);
    border-color: rgba(160, 120, 50, 0.6);
    font-weight: 700;
}

@media (max-width: 720px) {
    .qizheng-quick-bar--corner {
        max-width: min(13.5rem, 52%);
        gap: 0.25rem;
        padding: 0.3rem 0.35rem;
    }
    .qizheng-quick-bar--corner .qizheng-quick-btn {
        font-size: 0.68rem;
        padding: 0.28rem 0.45rem;
        width: 100%;
        text-align: center;
    }
}

.qizheng-quick-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    padding: 0.55rem 0.65rem;
    border-radius: 12px;
    background: rgba(255, 252, 246, 0.92);
    border: 1px solid rgba(201, 160, 106, 0.24);
}

.qizheng-quick-btn {
    font-size: 0.8125rem;
    padding: 0.42rem 0.85rem;
    border-radius: 999px;
    border: 1px solid rgba(201, 160, 106, 0.38);
    background: linear-gradient(180deg, rgba(255, 252, 246, 1), rgba(248, 236, 218, 0.85));
    color: #5a4630;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, transform 0.12s ease;
}

.qizheng-quick-btn:hover {
    border-color: rgba(201, 160, 106, 0.62);
    transform: translateY(-1px);
}

.qizheng-quick-btn--toggle[aria-pressed='true'] {
    background: linear-gradient(180deg, rgba(74, 63, 107, 0.14), rgba(74, 63, 107, 0.08));
    border-color: rgba(74, 63, 107, 0.35);
    color: #3a2f52;
}

.qizheng-quick-btn--off,
.qizheng-quick-btn[aria-pressed='false'].qizheng-quick-btn--toggle {
    opacity: 0.68;
    background: rgba(240, 235, 228, 0.85);
}

.qizheng-bottom-dock {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
    width: 100%;
    align-items: start;
}

@media (max-width: 768px) {
    .qizheng-bottom-dock {
        grid-template-columns: 1fr;
    }
}

.qizheng-dock-panel {
    min-width: 0;
    padding: 0.65rem 0.75rem 0.75rem;
    border-radius: 12px;
    background: rgba(255, 252, 246, 0.94);
    border: 1px solid rgba(201, 160, 106, 0.22);
}

.qizheng-dock-panel__title {
    margin: 0 0 0.55rem;
    font-size: 0.8125rem;
    font-weight: 700;
    color: #6a5840;
    letter-spacing: 0.06em;
}

.qizheng-natal-table-wrap {
    overflow-x: auto;
}

.qizheng-natal-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.8125rem;
    line-height: 1.45;
}

.qizheng-natal-table th,
.qizheng-natal-table td {
    padding: 0.35rem 0.45rem;
    border-bottom: 1px solid rgba(201, 160, 106, 0.16);
    text-align: left;
    vertical-align: middle;
}

.qizheng-natal-table th {
    font-weight: 700;
    color: #6a5840;
    background: rgba(248, 242, 232, 0.75);
    white-space: nowrap;
}

.qizheng-natal-table__palace {
    font-weight: 600;
    color: #3f3428;
    white-space: nowrap;
}

.qizheng-natal-table__palace--ming {
    color: #8a4a20;
}

.qizheng-natal-table__hua {
    width: 2.5rem;
    text-align: center;
}

.qizheng-natal-table__yao {
    color: #5a4830;
    white-space: nowrap;
}

.qizheng-natal-table__nature {
    color: rgba(90, 100, 118, 0.92);
    font-size: 0.78rem;
    white-space: nowrap;
}

.qizheng-natal-table__natal,
.qizheng-natal-table__transit {
    color: rgba(70, 82, 102, 0.95);
    white-space: nowrap;
    letter-spacing: 0.04em;
}

.qizheng-hua-yao-table th {
    color: #a88755;
    background: transparent;
    border-bottom: 1px solid rgba(201, 160, 106, 0.22);
    font-weight: 700;
}

.qizheng-hua-yao-table td {
    border-bottom: 1px solid rgba(201, 160, 106, 0.1);
}

.qizheng-hua-yao-table .qizheng-natal-table__palace {
    color: #2c2a28;
    font-weight: 700;
}

.qizheng-natal-table__empty {
    text-align: center;
    color: rgba(106, 88, 64, 0.65);
}

.qizheng-dignity-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.qizheng-dignity-card {
    flex: 1 1 calc(33.333% - 0.45rem);
    min-width: 5.5rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.1rem;
    padding: 0.45rem 0.35rem;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.65);
    border: 1px solid rgba(201, 160, 106, 0.18);
}

.qizheng-dignity-card--strong {
    border-color: rgba(58, 154, 98, 0.35);
    background: rgba(58, 154, 98, 0.08);
}

.qizheng-dignity-card--weak {
    border-color: rgba(212, 72, 58, 0.28);
    background: rgba(212, 72, 58, 0.06);
}

.qizheng-dignity-card__short {
    width: 1.65rem;
    height: 1.65rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: linear-gradient(135deg, #4a3f6b, #2c2344);
    color: #f5e6c8;
    font-size: 0.75rem;
    font-weight: 700;
}

.qizheng-dignity-card__name {
    font-size: 0.72rem;
    color: #5a4630;
}

.qizheng-dignity-card__dig {
    font-size: 0.8125rem;
    font-weight: 700;
    color: #3a2f21;
}

.qizheng-dignity-card__sub {
    font-size: 0.68rem;
    color: #8a7355;
    text-align: center;
    line-height: 1.25;
}

.qizheng-dock-panel--aspects {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    min-height: 0;
}

.qizheng-aspect-list--dock {
    margin: 0;
    padding: 0;
    list-style: none;
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: rgba(201, 160, 106, 0.45) transparent;
}

.qizheng-aspect-list--dock::-webkit-scrollbar {
    width: 6px;
}

.qizheng-aspect-list--dock::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: rgba(201, 160, 106, 0.45);
}

.qizheng-aspect-list--dock .qizheng-aspect-item {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.32rem 0;
    border-bottom: 1px dashed rgba(201, 160, 106, 0.18);
    font-size: 0.8125rem;
}

.qizheng-aspect-list--dock .qizheng-aspect-item:last-child {
    border-bottom: none;
}

.qizheng-aspect-pair {
    color: #4a3a2a;
}

.qizheng-aspect-item--empty {
    color: #8a7355;
    justify-content: center;
}

.qizheng-modal-overlay {
    position: fixed;
    inset: 0;
    z-index: 12000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    background: rgba(20, 14, 8, 0.55);
    backdrop-filter: blur(4px);
}

.qizheng-modal-overlay[hidden] {
    display: none !important;
}

.qizheng-modal-overlay.is-open {
    display: flex;
}

body.qizheng-modal-open {
    overflow: hidden;
}

.qizheng-modal {
    width: min(720px, 100%);
    max-height: min(82vh, 720px);
    display: flex;
    flex-direction: column;
    border-radius: 16px;
    background: linear-gradient(180deg, #fffdf8 0%, #f8f0e4 100%);
    border: 1px solid rgba(201, 160, 106, 0.35);
    box-shadow: 0 24px 64px rgba(20, 14, 8, 0.35);
}

.qizheng-modal--spirit-filter {
    width: min(920px, 100%);
    max-height: min(88vh, 860px);
}

.qizheng-modal--ref-book {
    width: min(560px, 100%);
    max-height: min(90vh, 820px);
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 10px;
    box-shadow: 0 18px 48px rgba(20, 14, 8, 0.28);
}

.qizheng-modal--ref-book .qizheng-modal__title {
    color: #2a2218;
    font-size: 0.98rem;
    font-weight: 700;
}

.qizheng-modal--ref-book .qizheng-modal__body {
    padding: 0 0 0.75rem;
}

.qz-ref-book {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    color: #2a2218;
}

.qz-ref-book__head {
    padding: 0.55rem 0.85rem;
    border-bottom: 1px solid #e8e4dc;
    color: #2f6fed;
    font-size: 0.86rem;
    font-weight: 700;
}

.qz-ref-book__panel {
    padding: 0 0.85rem;
}

.qz-ref-book__tip {
    margin: 0.55rem 0;
    font-size: 0.68rem;
    line-height: 1.45;
    color: #8a8478;
}

.qz-ref-book__table-wrap {
    max-height: min(62vh, 560px);
    overflow: auto;
    border: 1px solid #ece8e0;
    border-radius: 6px;
}

.qz-ref-book__table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.82rem;
    text-align: center;
}

.qz-ref-book__table thead th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: #f3eee4;
    color: #5a5044;
    font-weight: 700;
    padding: 0.45rem 0.35rem;
    border-bottom: 1px solid #e0d8cc;
}

.qz-ref-book__table tbody td {
    padding: 0.38rem 0.35rem;
    border-bottom: 1px solid #f0ece4;
    color: #2a2218;
}

.qz-ref-book__table tbody tr:last-child td {
    border-bottom: 0;
}

.qz-ref-lord[data-element='木'] { color: #007a52; }
.qz-ref-lord[data-element='金'] { color: #8a7355; }
.qz-ref-lord[data-element='土'] { color: #a88755; }
.qz-ref-lord[data-element='日'] { color: #c45c26; }
.qz-ref-lord[data-element='月'] { color: #4a6fa5; }
.qz-ref-lord[data-element='火'] { color: #b83838; }
.qz-ref-lord[data-element='水'] { color: #3a6ea5; }

@media (max-width: 640px) {
    .qizheng-modal--ref-book {
        width: min(96vw, 100%);
        max-height: min(92vh, 860px);
    }

    .qz-ref-book__table-wrap {
        max-height: min(58vh, 520px);
    }
}

/* 盘面显示筛选 · 神煞 */
.qz-spirit-filter {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    color: #2a2218;
    font-size: 0.78rem;
}

.qz-spirit-filter__section {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.qz-spirit-filter__head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.45rem 0.75rem;
}

.qz-spirit-filter__title {
    margin: 0;
    font-size: 0.92rem;
    font-weight: 800;
    color: #2a2218;
}

.qz-spirit-filter__hint {
    color: #7a7064;
    font-size: 0.72rem;
}

.qz-spirit-filter__actions {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    margin-left: auto;
}

.qz-spirit-filter__link {
    border: 0;
    background: none;
    padding: 0;
    color: #2a6fd6;
    font-size: 0.74rem;
    font-weight: 600;
    cursor: pointer;
}

.qz-spirit-filter__link:hover {
    text-decoration: underline;
}

.qz-spirit-filter__count {
    color: #7a7064;
    font-variant-numeric: tabular-nums;
    font-size: 0.72rem;
}

.qz-spirit-filter__grid {
    display: grid;
    grid-template-columns: repeat(9, minmax(0, 1fr));
    gap: 0.18rem 0.28rem;
    max-height: 11.5rem;
    overflow: auto;
    padding: 0.35rem 0.4rem;
    border: 1px solid rgba(160, 130, 80, 0.22);
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.72);
}

.qz-spirit-filter__item {
    display: inline-flex;
    align-items: center;
    gap: 0.22rem;
    min-width: 0;
    font-size: 0.68rem;
    line-height: 1.25;
    cursor: pointer;
    user-select: none;
}

.qz-spirit-filter__item input {
    flex: 0 0 auto;
    width: 0.85rem;
    height: 0.85rem;
    margin: 0;
    accent-color: #2a6fd6;
}

.qz-spirit-filter__item span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.qz-spirit-filter__radios {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    padding: 0.35rem 0.15rem;
}

.qz-spirit-filter__radio {
    display: flex;
    align-items: flex-start;
    gap: 0.4rem;
    cursor: pointer;
    line-height: 1.4;
}

.qz-spirit-filter__radio input {
    margin-top: 0.15rem;
    accent-color: #2a6fd6;
}

.qz-spirit-filter__foot {
    display: flex;
    justify-content: flex-end;
    gap: 0.55rem;
    padding-top: 0.25rem;
    border-top: 1px dashed rgba(160, 130, 80, 0.25);
}

.qz-spirit-filter__btn {
    min-height: 2.1rem;
    padding: 0.35rem 0.9rem;
    border-radius: 10px;
    border: 1px solid rgba(160, 130, 80, 0.35);
    background: #fffdf8;
    color: #3a2f21;
    font-size: 0.78rem;
    font-weight: 700;
    cursor: pointer;
}

.qz-spirit-filter__btn--primary {
    background: linear-gradient(180deg, #f0d49a, #e0b56a);
    border-color: rgba(160, 120, 50, 0.55);
}

@media (max-width: 768px) {
    .qz-spirit-filter__grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        max-height: 9.5rem;
    }

    .qz-spirit-filter__actions {
        margin-left: 0;
        width: 100%;
    }
}

.qizheng-modal__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.85rem 1rem;
    border-bottom: 1px solid rgba(201, 160, 106, 0.22);
}

.qizheng-modal__title {
    margin: 0;
    font-size: 1rem;
    color: #a88755;
    font-weight: 700;
}

.qizheng-modal__body {
    padding: 1rem;
    overflow: auto;
}

.qizheng-pattern-list {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.qizheng-pattern-row {
    display: flex;
    gap: 0.65rem;
    padding: 0.65rem 0.75rem;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid rgba(201, 160, 106, 0.18);
}

.qizheng-pattern-tag {
    flex: 0 0 auto;
    align-self: flex-start;
    font-size: 0.72rem;
    font-weight: 700;
    padding: 0.2rem 0.45rem;
    border-radius: 6px;
    background: rgba(74, 63, 107, 0.12);
    color: #4a3f6b;
}

.qizheng-pattern-body strong {
    display: block;
    margin-bottom: 0.2rem;
    color: #3a2f21;
    font-size: 0.9rem;
}

.qizheng-pattern-body p {
    margin: 0;
    font-size: 0.8125rem;
    color: #6a5840;
    line-height: 1.45;
}

.qizheng-palace-grid--modal {
    max-height: 58vh;
    overflow: auto;
}

.qizheng-wheel-stage {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    min-height: min(520px, 92vw);
    padding: 0.5rem 0 0.25rem;
    background: linear-gradient(180deg, rgba(255, 252, 246, 0.95) 0%, rgba(248, 240, 228, 0.6) 100%);
    border: 1px solid rgba(201, 160, 106, 0.22);
    border-radius: 16px;
}

.qizheng-wheel-stage--loading .qizheng-wheel-svg {
    opacity: 0.28;
    filter: grayscale(0.15);
    transition: opacity 0.2s ease;
}

.qizheng-wheel-loading-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 16px;
    background: rgba(255, 252, 246, 0.72);
    backdrop-filter: blur(2px);
    z-index: 2;
    pointer-events: none;
}

.qizheng-pan-layout--loading {
    min-height: min(520px, 92vw);
}

.qizheng-result-shell.qizheng-fetch-active,
.main-inner.view-qizheng.has-qizheng-result #qizhengResultShell {
    scroll-margin-top: 1rem;
}

.qizheng-wheel-svg {
    width: min(520px, 100%);
    height: auto;
    max-height: min(92vw, 520px);
    display: block;
}

.qizheng-wheel-svg .qz-bg {
    fill: #fffdf8;
    stroke: #d4bc8a;
    stroke-width: 2;
}

.qizheng-wheel-svg .qz-mansion-seg {
    fill: rgba(255, 250, 240, 0.85);
    stroke: rgba(180, 150, 100, 0.35);
    stroke-width: 0.6;
}

.qizheng-wheel-svg .qz-mansion-label {
    font-size: 9px;
    fill: #6a5840;
    font-family: "Noto Serif SC", "Source Han Serif SC", serif;
}

.qizheng-wheel-svg--moira .qz-palace-branch {
    font-size: 11px;
    fill: #c9a06a;
}

.qizheng-wheel-svg--moira .qz-palace-sign {
    font-size: 8px;
    fill: rgba(160, 136, 104, 0.75);
}

.qizheng-wheel-svg .qz-branch-seg {
    fill: rgba(236, 199, 131, 0.1);
    stroke: rgba(160, 130, 80, 0.35);
}

.qizheng-wheel-svg .qz-branch-label {
    font-size: 13px;
    font-weight: 700;
    fill: #5a4630;
}

.qizheng-wheel-svg .qz-branch-seg--fixed {
    fill: rgba(236, 199, 131, 0.14);
    stroke: rgba(160, 130, 80, 0.45);
}

.qizheng-wheel-svg .qz-branch-line {
    stroke: rgba(160, 130, 80, 0.35);
    stroke-width: 0.65;
}

.qizheng-wheel-svg .qz-zodiac-seg {
    fill: rgba(236, 199, 131, 0.08);
}

.qizheng-wheel-svg .qz-zodiac-seg--ming {
    fill: rgba(212, 72, 58, 0.12);
}

.qizheng-wheel-svg .qz-zodiac-num {
    font-size: 14px;
    font-weight: 800;
    fill: #5a4630;
    font-variant-numeric: tabular-nums;
}

.qizheng-wheel-svg .qz-zodiac-num--ming {
    fill: #c94432;
}

.qizheng-wheel-svg .qz-zodiac-palace {
    font-size: 10px;
    font-weight: 600;
    fill: #3d7a3d;
}

.qizheng-wheel-svg .qz-zodiac-palace--ming {
    fill: #2d6a2d;
}

.qizheng-wheel-svg .qz-zodiac-name {
    font-size: 9px;
    fill: #8a6840;
}

.qizheng-wheel-svg .qz-palace-name {
    font-size: 8px;
    fill: #a08868;
}

.qizheng-wheel-svg .qz-palace-seg {
    fill: rgba(236, 199, 131, 0.08);
    stroke: none;
}

.qizheng-wheel-svg .qz-palace-seg--ming {
    fill: rgba(212, 72, 58, 0.12);
}

.qizheng-wheel-svg .qz-palace-line {
    stroke: rgba(160, 130, 80, 0.45);
    stroke-width: 0.8;
}

.qizheng-wheel-svg .qz-palace-role {
    font-size: 13px;
    font-weight: 700;
    fill: #5a4630;
}

.qizheng-wheel-svg .qz-palace-role--ming {
    fill: #c94432;
}

.qizheng-wheel-svg .qz-palace-branch {
    font-size: 11px;
    fill: #8a6840;
}

.qizheng-wheel-svg .qz-palace-sign {
    font-size: 8px;
    fill: #a08868;
}

.qizheng-wheel-svg .qz-aspect-line {
    stroke-width: 1;
    stroke-opacity: 0.55;
}

.qizheng-wheel-svg .qz-center {
    fill: #fff;
    stroke: #c9a06a;
    stroke-width: 1.5;
}

.qizheng-wheel-svg .qz-center-label {
    font-size: 11px;
    fill: #8a6840;
    font-weight: 600;
}

.qizheng-wheel-svg .qz-center-sub {
    font-size: 12px;
    fill: #3a2f21;
    font-weight: 700;
}

.qizheng-wheel-svg .qz-planet-char {
    font-size: 18px;
    font-weight: 750;
    pointer-events: none;
    paint-order: stroke fill;
}

.qizheng-wheel-svg .qz-asc-marker {
    font-size: 10px;
    fill: #c94432;
    font-weight: 600;
}

.qizheng-pan-details {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    width: 100%;
}

.qizheng-section--compact {
    padding-bottom: 0.25rem;
}

@media (min-width: 992px) {
    .main-inner.view-qizheng.has-qizheng-result #qizhengResultShell,
    .main-inner.view-qizheng.qizheng-fetch-active #qizhengResultShell {
        flex: 1 1 100%;
        width: 100%;
        max-width: none;
    }

    .main-inner.view-qizheng.has-qizheng-result #qizhengPanMount,
    .main-inner.view-qizheng.qizheng-fetch-active #qizhengPanMount {
        max-width: none;
    }
}

.qizheng-pan-loading {
    margin: 2rem 0;
    text-align: center;
    color: var(--text-muted, #8a7355);
    font-size: 0.95rem;
}

.qizheng-pan-loading--error {
    color: #b54a3a;
}

.qizheng-result-shell__title-block {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    min-width: 0;
}

.qizheng-result-shell__head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
}

.qizheng-result-pillar-gz .metaphysics-pillar-gz__stack {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    line-height: 1.15;
}

.qizheng-result-pillar-gz .metaphysics-pillar-gz__gan,
.qizheng-result-pillar-gz .metaphysics-pillar-gz__zhi {
    font-weight: 800;
}

.qizheng-result-pillar-gz .wx-木 { color: #00a870; }
.qizheng-result-pillar-gz .wx-火 { color: #e05a5a; }
.qizheng-result-pillar-gz .wx-土 { color: #c9a06a; }
.qizheng-result-pillar-gz .wx-金 { color: #8a8a8a; }
.qizheng-result-pillar-gz .wx-水 { color: #4a7fd4; }

.qizheng-result-shell__pillars-panel {
    margin: 0 0 0.65rem;
    padding: 0.85rem 1rem;
    border-radius: 12px;
    background: linear-gradient(135deg, rgba(255, 252, 246, 0.98), rgba(248, 236, 218, 0.75));
    border: 1px solid rgba(201, 160, 106, 0.28);
}

/* 七政结果区：去掉顶部可调四柱（盘面摘要里仍有四柱） */
#qizhengResultShell .qizheng-result-pillars-row,
#qizhengResultShell .qizheng-result-fourpillars,
#qizhengResultShell .qizheng-result-pillars-caption {
    display: none !important;
}

#qizhengResultShell .qizheng-result-head-row {
    margin-bottom: 0;
}

.qizheng-result-head-row {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: flex-end;
    gap: 0.35rem 1rem;
    margin-bottom: 0.65rem;
}

.qizheng-result-when {
    font-size: 0.875rem;
    color: #6a5840;
}

.qizheng-result-pillars-caption {
    font-size: 0.8125rem;
    font-weight: 600;
    color: #8a6840;
}

.qizheng-spirit-chip-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.5rem;
    margin: 0 0 0.85rem;
    padding: 0.45rem 0.65rem;
    border-radius: 10px;
    background: rgba(120, 90, 180, 0.06);
    border: 1px dashed rgba(120, 90, 180, 0.22);
}

.qizheng-spirit-chip-row__label {
    font-size: 0.75rem;
    font-weight: 600;
    color: #6a5088;
    margin-right: 0.15rem;
}

.qizheng-spirit-chip {
    font-size: 0.75rem;
    padding: 0.15rem 0.45rem;
    border-radius: 999px;
    background: rgba(140, 120, 180, 0.12);
    border: 1px solid rgba(140, 120, 180, 0.25);
    color: #4a3a62;
}

.qizheng-spirit-chip--ausp {
    background: rgba(58, 154, 98, 0.12);
    border-color: rgba(58, 154, 98, 0.28);
    color: #2a6a42;
}

.qizheng-spirit-chip--malefic {
    background: rgba(212, 72, 58, 0.1);
    border-color: rgba(212, 72, 58, 0.28);
    color: #9a3228;
}

.qizheng-spirit-chip--changsheng {
    background: rgba(122, 90, 40, 0.08);
    border-color: rgba(122, 90, 40, 0.28);
    color: #6e5228;
    font-weight: 700;
}

.qizheng-wheel-svg .qz-spirit-label {
    font-size: 8px;
    fill: #1a1a1a;
    font-family: "Noto Serif SC", "Source Han Serif SC", serif;
}

.qizheng-wheel-svg .qz-spirit-label--ausp {
    fill: #128a3c;
}

.qizheng-wheel-svg .qz-spirit-label--malefic {
    fill: #d02020;
}

.qizheng-wheel-svg .qz-spirit-label--neutral {
    fill: #1a1a1a;
}

.qizheng-wheel-svg .qz-spirit-label--changsheng {
    fill: #6e5228;
    font-weight: 700;
}

.qizheng-result-title-ico {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 0.35rem;
    background: linear-gradient(135deg, #4a3f6b, #2c2344);
    color: #f5e6c8;
    font-weight: 700;
    font-size: 0.95rem;
}

.qizheng-result-fourpillars {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.5rem 0.75rem;
}

.qizheng-result-pillar-col {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 0.45rem 0.35rem;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid rgba(201, 160, 106, 0.22);
}

.qizheng-result-pillar-label {
    font-size: 0.75rem;
    color: #8a6840;
    margin-bottom: 0.2rem;
}

.qizheng-result-pillar-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.2rem;
    margin-top: 0.15rem;
}

.qizheng-result-pillar-gz {
    font-size: 1.45rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: #3a2f21;
    font-family: "Noto Serif SC", "Source Han Serif SC", serif;
}

@media (max-width: 520px) {
    .qizheng-result-fourpillars {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.qizheng-meta-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.75rem;
    margin-bottom: 0.85rem;
}

.qizheng-chip {
    font-size: 0.8125rem;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    background: rgba(120, 90, 180, 0.12);
    border: 1px solid rgba(120, 90, 180, 0.25);
}

.qizheng-table-wrap {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.qizheng-planet-table {
    width: 100%;
    min-width: 420px;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: 0.8125rem;
}

.qizheng-planet-table col.qizheng-col-name {
    width: 24%;
}

.qizheng-planet-table col.qizheng-col-mansion {
    width: 22%;
}

.qizheng-planet-table col.qizheng-col-palace {
    width: 12%;
}

.qizheng-planet-table col.qizheng-col-dignity {
    width: 8%;
}

.qizheng-planet-table col.qizheng-col-lon {
    width: 34%;
}

.qizheng-planet-table thead th {
    text-align: left;
    font-weight: 600;
    color: #6a5840;
    background: rgba(248, 236, 218, 0.55);
    border-bottom: 1px solid rgba(201, 160, 106, 0.35);
    white-space: nowrap;
}

.qizheng-planet-table th,
.qizheng-planet-table td {
    padding: 0.45rem 0.55rem;
    border-bottom: 1px solid rgba(128, 128, 128, 0.18);
    vertical-align: middle;
    text-align: left;
    overflow: hidden;
    text-overflow: ellipsis;
}

.qizheng-planet-table td.qizheng-td-dignity,
.qizheng-planet-table thead th:nth-child(4) {
    text-align: center;
}

.qizheng-planet-table td.qizheng-td-lon,
.qizheng-planet-table thead th:nth-child(5) {
    text-align: right;
    font-variant-numeric: tabular-nums;
    font-family: ui-monospace, "Cascadia Mono", Consolas, monospace;
    white-space: nowrap;
}

.qizheng-td-name {
    white-space: nowrap;
}

.qizheng-tag {
    display: inline-block;
    margin-left: 0.2rem;
    font-size: 0.68rem;
    padding: 0.05rem 0.25rem;
    border-radius: 0.2rem;
    vertical-align: middle;
}

.qizheng-tag--qidu {
    color: #8a6840;
    background: rgba(201, 160, 106, 0.18);
}

.qizheng-tag--retro {
    color: #9a3228;
    background: rgba(212, 72, 58, 0.12);
}

.qizheng-palace-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 0.5rem;
}

.qizheng-palace-card {
    border: 1px solid rgba(128, 128, 128, 0.25);
    border-radius: 0.5rem;
    padding: 0.45rem 0.55rem;
}

.qizheng-palace-card--ming {
    border-color: rgba(120, 90, 180, 0.45);
    background: rgba(120, 90, 180, 0.08);
}

.qizheng-section--split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

@media (max-width: 640px) {
    .qizheng-section--split {
        grid-template-columns: 1fr;
    }
}

.qimen-datetime-row {
    display: flex;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: 0.5rem;
    width: 100%;
}

.qimen-datetime-row__input {
    flex: 1 1 auto;
    min-width: 0;
}

.qimen-datetime-now-btn {
    flex: 0 0 auto;
    margin: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 0.9rem;
    min-height: 2.85rem;
    border-radius: 12px;
    border: 1px solid rgba(58, 47, 33, 0.2);
    background: var(--accent, #c9a06a);
    color: var(--cream-text, #fffef9);
    font-family: inherit;
    font-size: 0.82rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    white-space: nowrap;
    cursor: pointer;
    transition:
        background 0.2s ease,
        box-shadow 0.2s ease;
}

.qimen-datetime-now-btn:hover {
    box-shadow: 0 2px 10px rgba(58, 44, 28, 0.12);
    filter: brightness(1.03);
}

.qimen-datetime-now-btn:focus-visible {
    outline: 2px solid rgba(200, 160, 100, 0.55);
    outline-offset: 2px;
}

@media (max-width: 420px) {
    .qimen-datetime-row {
        flex-wrap: wrap;
    }

    .qimen-datetime-now-btn {
        flex: 1 1 auto;
        min-height: 2.55rem;
    }
}

.qimen-input-shell .field--qimen-matter {
    margin-bottom: 0.05rem;
}

.qimen-input-shell .qimen-matter-input {
    min-height: 4.35rem;
}

/* —— 奇门排盘：内联定局 / 起局 / 盘式（与示意稿一致） —— */
html:not(.embed-lifebook) .main-inner.view-qimen #unifiedPaipanShell,
html:not(.embed-lifebook) .main-inner.view-liuren #unifiedPaipanShell,
html:not(.embed-lifebook) .main-inner.view-qizheng #unifiedPaipanShell,
html:not(.embed-lifebook) .main-inner.view-paipan #unifiedPaipanShell {
    display: none !important;
}

.metaphysics-result-header-grid {
    display: grid;
    grid-template-columns: minmax(10.5rem, 13rem) minmax(0, 1fr);
    gap: 0.75rem 1rem;
    width: 100%;
    align-items: center;
}

.metaphysics-result-header-grid__setup,
.metaphysics-result-header-grid__pillars {
    min-width: 0;
}

.metaphysics-result-header-grid__pillars {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
}

.metaphysics-result-header-grid__pillars .qimen-result-shell__meta,
.metaphysics-result-header-grid__pillars .liuren-result-when,
.metaphysics-result-header-grid__pillars .metaphysics-result-place {
    text-align: center;
    align-items: center;
}

.metaphysics-result-header-grid__pillars .liuren-result-shell__pillars-row {
    align-items: center;
}

.metaphysics-result-header-grid__pillars .liuren-result-shell__pillars-row .liuren-result-fourpillars {
    flex: 0 0 auto;
    width: auto;
    max-width: 22rem;
}

.qimen-inline-settings--header,
.liuren-inline-settings--header {
    margin: 0;
    padding: 0.5rem 0.6rem;
    box-shadow: none;
}

.qimen-inline-settings--header .qimen-inline-settings__group,
.liuren-inline-settings--header .liuren-inline-settings__group {
    margin-bottom: 0.4rem;
}

.qimen-inline-settings--header .qimen-segment-btn,
.liuren-inline-settings--header .liuren-segment-btn {
    font-size: 0.72rem;
    padding: 0.28rem 0.45rem;
}

.metaphysics-result-header-grid__pillars .qimen-result-pillars-row,
.metaphysics-result-header-grid__pillars .liuren-result-shell__pillars-row {
    justify-content: center;
}

.qimen-result-pillars-band {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: start;
    gap: 0.65rem 0.85rem;
    width: 100%;
}

.qimen-result-pillars-band .qimen-result-pillars-row {
    grid-column: 2;
    justify-self: center;
    width: auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
}

.metaphysics-pillar-quick {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.22rem;
    width: 100%;
    max-width: 18.5rem;
    margin: 0.05rem auto 0;
    box-sizing: border-box;
}

.metaphysics-pillar-quick__label {
    font-size: 0.72rem;
    font-weight: 600;
    color: rgba(90, 70, 48, 0.82);
    letter-spacing: 0.02em;
}

.metaphysics-pillar-quick__row {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    width: 100%;
    min-width: 0;
}

.metaphysics-pillar-quick__input {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 1.85rem;
    padding: 0.22rem 0.45rem;
    font-size: 0.82rem;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.03em;
    border-radius: 8px;
}

.metaphysics-pillar-quick__btn {
    flex: 0 0 auto;
    min-height: 1.85rem !important;
    max-width: none !important;
    padding: 0.22rem 0.65rem !important;
    font-size: 0.78rem !important;
    border-radius: 8px !important;
    white-space: nowrap;
}

.metaphysics-pillar-quick__hint {
    margin: 0;
    font-size: 0.64rem;
    line-height: 1.35;
    color: rgba(110, 88, 60, 0.72);
    text-align: center;
}

.qimen-pan-style-beside {
    grid-column: 3;
    justify-self: end;
    margin: 0;
    min-width: 4.6rem;
}

.qimen-pan-style-beside .qimen-inline-settings__label {
    margin-bottom: 0.35rem;
    font-size: 0.78rem;
    text-align: center;
}

.qimen-segment-row--vertical {
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: 0.35rem;
}

.qimen-pan-style-beside .qimen-segment-btn {
    flex: 0 0 auto;
    min-width: 0;
    width: 100%;
    padding: 0.28rem 0.45rem;
    font-size: 0.72rem;
}

.metaphysics-result-header-grid__pillars .qimen-meta-chips--in-pillars {
    justify-content: center;
}

/* 奇门顶栏：四柱相对整栏（含左侧定局）居中，盘式独立右列 */
.qimen-result-shell__pillars-panel .metaphysics-result-header-grid {
    grid-template-columns: minmax(10.5rem, 13rem) minmax(0, 1fr) minmax(4.6rem, 5.5rem);
    grid-template-rows: auto auto auto auto;
    align-items: center;
}

.qimen-result-shell__pillars-panel .metaphysics-result-header-grid__setup {
    grid-column: 1;
    grid-row: 1 / span 3;
    align-self: start;
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    min-width: 0;
}

.qimen-result-shell__pillars-panel .metaphysics-result-header-grid__setup .qimen-special-patterns-and-legend {
    flex-direction: column;
    flex-wrap: nowrap;
    margin: 0;
    width: 100%;
    gap: 0.4rem;
}

.qimen-result-shell__pillars-panel .metaphysics-result-header-grid__setup .qimen-special-patterns-card,
.qimen-result-shell__pillars-panel .metaphysics-result-header-grid__setup .qimen-symbol-legend {
    width: 100%;
    max-width: 100%;
}

.qimen-result-shell__pillars-panel .metaphysics-result-header-grid__pillars,
.qimen-result-shell__pillars-panel .qimen-result-pillars-band {
    display: contents;
}

.qimen-result-shell__pillars-panel .qimen-result-shell__meta {
    grid-column: 2;
    grid-row: 1;
    justify-self: center;
    width: 100%;
}

.qimen-result-shell__pillars-panel .qimen-result-pillars-row {
    grid-column: 2;
    grid-row: 2;
    justify-self: center;
    width: auto;
}

.qimen-result-shell__pillars-panel .qimen-pan-style-beside {
    grid-column: 3;
    grid-row: 1 / span 2;
    align-self: center;
    justify-self: end;
}

.qimen-result-shell__pillars-panel .qimen-meta-chips--in-pillars {
    grid-column: 2;
    grid-row: 3;
    justify-self: center;
    width: 100%;
}

.qimen-result-shell__pillars-panel .qimen-result-shell__pillar-actions {
    grid-column: 1 / -1;
    grid-row: 4;
}

.qimen-result-shell__pillars-panel .qimen-result-fourpillars {
    max-width: 30rem;
    width: auto;
    gap: 0.32rem 0.72rem;
    margin-top: 0.2rem;
}

.qimen-result-shell__pillars-panel .qimen-result-pillar-label {
    font-size: 0.78rem;
}

.qimen-result-shell__pillars-panel .qimen-result-pillar-gz {
    font-size: 1.42rem;
    font-weight: 700;
    letter-spacing: 0.02em;
}

@media (min-width: 720px) {
    .qimen-result-shell__pillars-panel .qimen-result-pillar-gz {
        font-size: 1.58rem;
    }

    .qimen-result-shell__pillars-panel .qimen-result-fourpillars {
        gap: 0.38rem 0.85rem;
    }
}

@media (max-width: 900px) {
    .metaphysics-result-header-grid {
        grid-template-columns: 1fr;
        align-items: stretch;
    }

    .metaphysics-result-header-grid__pillars {
        justify-content: flex-start;
    }

    .metaphysics-result-header-grid__pillars .qimen-result-pillars-row,
    .metaphysics-result-header-grid__pillars .liuren-result-shell__pillars-row {
        justify-content: center;
    }

    .qimen-result-pillars-band {
        grid-template-columns: 1fr;
        justify-items: center;
    }

    .qimen-result-shell__pillars-panel .metaphysics-result-header-grid {
        grid-template-columns: 1fr;
        grid-template-rows: auto;
    }

    .qimen-result-shell__pillars-panel .metaphysics-result-header-grid__setup {
        grid-column: 1;
        grid-row: auto;
    }

    .qimen-result-shell__pillars-panel .metaphysics-result-header-grid__pillars,
    .qimen-result-shell__pillars-panel .qimen-result-pillars-band {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: flex-start;
        gap: 0.35rem;
    }

    .qimen-result-shell__pillars-panel .qimen-result-shell__meta,
    .qimen-result-shell__pillars-panel .qimen-result-pillars-row,
    .qimen-result-shell__pillars-panel .qimen-pan-style-beside,
    .qimen-result-shell__pillars-panel .qimen-meta-chips--in-pillars,
    .qimen-result-shell__pillars-panel .qimen-result-shell__pillar-actions {
        grid-column: auto;
        grid-row: auto;
        justify-self: center;
        width: 100%;
    }

    .qimen-result-pillars-band .qimen-result-pillars-row {
        grid-column: 1;
    }

    .qimen-pan-style-beside {
        grid-column: 1;
        justify-self: center;
        width: 100%;
        min-width: 0;
    }
}

/* 桌面窄栏：外盘紧凑条隐藏（完整开关在下方设置区） */
.qimen-outer-compact {
    display: none;
}

.qimen-inline-settings {
    margin: 0.35rem 0 0.85rem;
    padding: 0.85rem 1rem 1rem;
    border-radius: 16px;
    background: linear-gradient(165deg, rgba(255, 253, 249, 0.98), rgba(247, 239, 226, 0.92));
    border: 1px solid var(--bg-card-border);
    box-shadow: 0 4px 18px rgba(58, 44, 28, 0.06);
}

.qimen-inline-settings__group {
    margin-bottom: 0.75rem;
}

.qimen-inline-settings__group:last-of-type {
    margin-bottom: 0.35rem;
}

.qimen-inline-settings__label {
    display: block;
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--text-primary);
    margin-bottom: 0.45rem;
    letter-spacing: 0.02em;
}

.qimen-inline-settings__label-row {
    display: flex;
    align-items: center;
    gap: 0.32rem;
    margin-bottom: 0.45rem;
}

.qimen-inline-settings__label-row .qimen-inline-settings__label {
    margin-bottom: 0;
}

.qimen-setting-help-btn {
    flex: 0 0 auto;
    width: 1.15rem;
    height: 1.15rem;
    padding: 0;
    border-radius: 999px;
    border: 1px solid rgba(160, 120, 60, 0.45);
    background: rgba(255, 248, 235, 0.95);
    color: #8a6430;
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.7) inset;
}

.qimen-setting-help-btn:hover,
.qimen-setting-help-btn:focus-visible {
    border-color: rgba(180, 120, 40, 0.75);
    background: #fff4df;
    color: #6e4a1c;
    outline: none;
}

.qimen-subcard-title {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.qimen-setting-help-popover {
    position: fixed;
    left: 0;
    top: 0;
    width: min(22rem, calc(100vw - 1.2rem));
    max-height: min(70vh, 28rem);
    overflow: auto;
    padding: 0.75rem 0.85rem 0.9rem;
    border-radius: 12px;
    border: 1px solid rgba(170, 130, 70, 0.35);
    background: #fffaf0;
    box-shadow: 0 10px 28px rgba(70, 45, 15, 0.18);
    color: #3a2f21;
    z-index: 12000;
}

.qimen-setting-help-popover[hidden] {
    display: none !important;
}

.qimen-setting-help-popover__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.55rem;
}

.qimen-setting-help-popover__title {
    font-size: 0.95rem;
    font-weight: 750;
    letter-spacing: 0.03em;
}

.qimen-setting-help-popover__close {
    border: none;
    background: transparent;
    color: #7a6a55;
    font-size: 1.15rem;
    line-height: 1;
    cursor: pointer;
    padding: 0 0.15rem;
}

.qimen-setting-help-popover__sec + .qimen-setting-help-popover__sec {
    margin-top: 0.55rem;
    padding-top: 0.5rem;
    border-top: 1px solid rgba(180, 150, 100, 0.25);
}

.qimen-setting-help-popover__sec h4 {
    margin: 0 0 0.28rem;
    font-size: 0.78rem;
    font-weight: 700;
    color: #8a6430;
}

.qimen-setting-help-popover__sec p {
    margin: 0;
    font-size: 0.8rem;
    line-height: 1.55;
    color: #4a3f32;
}

.qimen-segment-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.qimen-segment-row--equal-3 {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.35rem;
}

.qimen-segment-row--equal-3 .qimen-segment-btn {
    flex: none;
    min-width: 0;
    width: 100%;
    text-align: center;
    padding-inline: 0.2rem;
}

.qimen-segment-btn {
    flex: 1 1 auto;
    min-width: 5.2rem;
    padding: 0.48rem 0.65rem;
    border-radius: 12px;
    border: 1px solid var(--plain-white-soft);
    background: var(--panel-2);
    color: var(--text-muted);
    font-family: inherit;
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
    transition:
        background 0.16s ease,
        border-color 0.16s ease,
        box-shadow 0.16s ease,
        color 0.16s ease;
}

.qimen-segment-btn:hover {
    border-color: var(--line-strong, rgba(248, 208, 142, 0.35));
    color: var(--text-primary);
}

.qimen-segment-btn--active {
    background: linear-gradient(180deg, rgb(244, 214, 160) 0%, var(--tone-gold) 100%);
    color: var(--cream-text);
    border-color: rgba(212, 168, 95, 0.45);
    box-shadow: 0 4px 16px rgba(236, 199, 131, 0.32);
}

/* 显示/隐藏：单按钮紧凑开关 */
.qimen-toggle-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    min-width: 4.2rem;
    max-width: 7.5rem;
    padding: 0.38rem 0.75rem;
    border-radius: 10px;
    border: 1px solid rgba(180, 152, 118, 0.35);
    background: rgba(255, 252, 246, 0.9);
    color: #6b6154;
    font-family: inherit;
    font-size: 0.8rem;
    font-weight: 700;
    line-height: 1.2;
    cursor: pointer;
    transition:
        background 0.16s ease,
        border-color 0.16s ease,
        color 0.16s ease,
        box-shadow 0.16s ease;
}

.qimen-toggle-btn:hover {
    border-color: rgba(160, 120, 70, 0.5);
    color: #3a2f21;
}

.qimen-toggle-btn--on {
    background: linear-gradient(180deg, #8b3a32 0%, #6e2c26 100%);
    border-color: rgba(90, 35, 30, 0.55);
    color: #fff8f2;
    box-shadow: 0 2px 8px rgba(90, 40, 30, 0.22);
}

.qimen-toggle-btn--on:hover {
    color: #fffef9;
    border-color: rgba(90, 35, 30, 0.7);
}

.qimen-inline-settings--result .qimen-toggle-btn,
.qimen-outer-compact .qimen-toggle-btn {
    margin-top: 0.2rem;
}

.qimen-inline-settings__desc {
    margin: 0.4rem 0 0;
    font-size: 0.72rem;
    line-height: 1.45;
    color: var(--text-muted);
}

.qimen-live-bao {
    margin-top: 0.55rem;
    padding: 0.72rem 0.78rem 0.78rem;
    border-radius: 12px;
    background: linear-gradient(165deg, rgba(255, 251, 242, 0.98), rgba(245, 232, 208, 0.92));
    border: 1px solid rgba(196, 154, 88, 0.28);
}

.qimen-live-bao__title {
    margin: 0 0 0.55rem;
    font-size: 0.88rem;
    font-weight: 700;
    color: var(--text-primary);
    letter-spacing: 0.04em;
}

.qimen-live-bao__row {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    margin-bottom: 0.55rem;
}

.qimen-live-bao__label {
    flex: 0 0 auto;
    font-size: 0.8rem;
    font-weight: 650;
    color: var(--text-primary);
}

.qimen-live-bao__input {
    flex: 1 1 auto;
    min-width: 0;
    height: 2rem;
    padding: 0 0.55rem;
    border-radius: 8px;
    border: 1px solid rgba(126, 96, 58, 0.22);
    background: rgba(255, 255, 255, 0.92);
    font-family: inherit;
    font-size: 0.85rem;
    color: var(--text-primary);
}

.qimen-live-bao__pick {
    flex: 0 0 auto;
    height: 2rem;
    padding: 0 0.72rem;
    border-radius: 8px;
    border: 1px solid rgba(196, 154, 88, 0.45);
    background: rgba(255, 252, 244, 0.96);
    color: var(--text-primary);
    font-family: inherit;
    font-size: 0.78rem;
    font-weight: 650;
    cursor: pointer;
}

.qimen-live-bao__pick:hover {
    background: rgba(248, 208, 142, 0.22);
}

.qimen-live-bao__modes {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem 0.85rem;
    margin-bottom: 0.62rem;
}

.qimen-live-bao__radio {
    display: inline-flex;
    align-items: center;
    gap: 0.32rem;
    font-size: 0.78rem;
    color: var(--text-primary);
    cursor: pointer;
    user-select: none;
}

.qimen-live-bao__radio input {
    margin: 0;
    accent-color: var(--tone-gold, #c8923a);
}

.qimen-live-bao__actions {
    display: flex;
    gap: 0.45rem;
}

.qimen-live-bao__btn {
    flex: 1 1 0;
    min-height: 2.05rem;
    border-radius: 10px;
    border: 1px solid rgba(126, 96, 58, 0.22);
    background: rgba(255, 255, 255, 0.88);
    color: var(--text-primary);
    font-family: inherit;
    font-size: 0.82rem;
    font-weight: 650;
    cursor: pointer;
}

.qimen-live-bao__btn--primary {
    background: linear-gradient(180deg, rgb(244, 214, 160) 0%, var(--tone-gold) 100%);
    border-color: rgba(212, 168, 95, 0.45);
    color: var(--cream-text, #3d2e1a);
}

.qimen-live-bao__btn:hover {
    filter: brightness(1.02);
}

.qimen-inline-settings__row--stem {
    margin-top: 0.35rem;
    padding-top: 0.55rem;
    border-top: 1px dashed rgba(58, 47, 33, 0.1);
}

.qimen-inline-checkbox {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.8rem;
    color: var(--text-primary);
    cursor: pointer;
    user-select: none;
}

.qimen-inline-checkbox input {
    width: 1rem;
    height: 1rem;
    accent-color: var(--tone-gold-deep);
}

.qimen-form-status {
    margin: 0.35rem 0 0.5rem;
    padding: 0.55rem 0.75rem;
    border-radius: 12px;
    font-size: 0.78rem;
    line-height: 1.45;
}

.qimen-form-status--info {
    background: rgba(236, 199, 131, 0.18);
    color: var(--text-primary);
    border: 1px solid rgba(236, 199, 131, 0.35);
}

.qimen-form-status--warn {
    background: rgba(200, 140, 60, 0.16);
    color: #5c3d12;
    border: 1px solid rgba(200, 140, 60, 0.35);
}

.qimen-form-status--error {
    background: rgba(190, 72, 98, 0.12);
    color: #6b1f2d;
    border: 1px solid rgba(190, 72, 98, 0.28);
}

.qimen-form-disclaimer {
    margin: 0.65rem 0 0.15rem;
    text-align: center;
    font-size: 0.72rem;
    color: var(--text-muted);
    line-height: 1.4;
}

/* —— 大六壬（kinliuren）录入与结果 —— */
.liuren-inline-settings {
    margin: 0.5rem 0 0.75rem;
    padding: 0.65rem 0.75rem;
    border-radius: 14px;
    background: linear-gradient(165deg, rgba(255, 252, 246, 0.96), rgba(250, 244, 232, 0.92));
    border: 1px solid rgba(212, 168, 95, 0.28);
}

.liuren-inline-settings__group {
    margin-bottom: 0.65rem;
}

.liuren-inline-settings__group:last-of-type {
    margin-bottom: 0;
}

.liuren-inline-settings__group--disabled {
    opacity: 0.72;
}

.liuren-inline-settings__label {
    display: block;
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--text-muted);
    margin-bottom: 0.35rem;
}

.liuren-segment-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.liuren-segment-btn {
    border: 1px solid rgba(212, 168, 95, 0.45);
    background: rgba(255, 255, 255, 0.55);
    color: var(--text-primary);
    border-radius: 999px;
    padding: 0.28rem 0.65rem;
    font-size: 0.74rem;
    cursor: pointer;
}

.liuren-segment-btn--active {
    background: linear-gradient(135deg, rgba(236, 199, 131, 0.55), rgba(212, 168, 95, 0.38));
    border-color: rgba(180, 130, 60, 0.55);
    font-weight: 700;
}

.liuren-radio-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem 0.9rem;
    align-items: center;
}

.liuren-radio {
    display: inline-flex;
    align-items: center;
    gap: 0.28rem;
    font-size: 0.74rem;
    color: var(--text-primary);
    cursor: pointer;
    user-select: none;
}

.liuren-radio input[type='radio'] {
    margin: 0;
    accent-color: rgba(168, 118, 52, 0.95);
}

.liuren-inline-settings__desc {
    margin: 0.4rem 0 0;
    font-size: 0.72rem;
    line-height: 1.45;
    color: var(--text-muted);
}

.unified-paipan-shell--liuren .form-shell__head {
    justify-content: center;
    text-align: center;
}

.unified-paipan-shell--liuren .form-shell-title {
    flex: 1;
}

.unified-paipan-shell--liuren .form-shell__collapse-btn {
    position: absolute;
    right: 0.35rem;
    top: 0.35rem;
}

.unified-paipan-shell--liuren {
    position: relative;
}

.main-inner.view-liuren .paipan-datetime-picker__toolbar {
    flex-direction: column;
}

.main-inner.view-liuren .paipan-datetime-picker__fill-btn {
    width: 100%;
    justify-content: center;
}

.liuren-result-bottom {
    margin-top: 0.85rem;
    padding: 0.15rem 0.35rem 0.2rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.55rem;
    width: 100%;
    max-width: min(36rem, 100%);
    margin-left: auto;
    margin-right: auto;
    text-align: center;
    box-sizing: border-box;
}

.liuren-board-xiangyi-row > .liuren-result-bottom {
    order: 3;
    flex: 0 0 auto;
    width: min(36rem, 100%);
}

.liuren-result-shell .liuren-result-question-field {
    margin: 0;
    width: 100%;
    max-width: 36rem;
}

.liuren-result-shell .liuren-result-actions {
    margin-top: 0;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    gap: 0.4rem;
    align-items: stretch;
    justify-content: center;
    width: auto;
    max-width: 100%;
}

@media (max-width: 720px) {
    .liuren-result-shell .liuren-result-actions {
        flex-wrap: wrap;
    }
}

.liuren-result-shell .liuren-result-actions .qimen-action-btn {
    flex: 1 1 0;
    min-width: 0;
    min-height: 2.55rem;
    padding: 0.42rem 0.35rem;
    font-size: 0.72rem;
    letter-spacing: 0.01em;
    line-height: 1.25;
    white-space: normal;
    text-align: center;
}

.liuren-result-shell .liuren-result-actions .qimen-action-btn__ico,
.liuren-result-shell .liuren-result-actions .qimen-btn-svg {
    display: none;
}

/* 底栏：返回上一盘 / 当下时间 与保存·导出同排 */
.qimen-result-actions .paipan-result-datetime-actions--bottom,
.liuren-result-actions .paipan-result-datetime-actions--bottom {
    display: contents;
}

.qimen-result-actions .paipan-result-datetime-btn,
.liuren-result-actions .paipan-result-datetime-btn {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    min-height: 2.55rem;
    width: auto !important;
    max-width: none !important;
    box-sizing: border-box;
    padding: 0.42rem 0.28rem;
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0;
    line-height: 1.2;
    border-radius: 10px;
    white-space: normal;
    text-align: center;
    justify-content: center;
}

.liuren-result-shell .liuren-copy-hint {
    margin: 0;
    font-size: 0.76rem;
    line-height: 1.48;
    color: rgba(90, 74, 52, 0.82);
    text-align: center;
    max-width: 36rem;
}

.liuren-result-shell__head {
    padding-bottom: 0.35rem;
    border-bottom: 1px solid rgba(58, 47, 33, 0.08);
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.55rem 0.75rem;
    text-align: left;
    width: 100%;
    box-sizing: border-box;
}

.liuren-result-shell__head-left {
    flex: 0 1 auto;
    min-width: 0;
    display: flex;
    justify-content: flex-start;
    width: auto;
    max-width: min(100%, 16rem);
}

.qimen-result-shell__pillars-panel,
.liuren-result-shell__pillars-panel {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.5rem;
    margin: 0.35rem auto 0.75rem;
    padding: 0.65rem 0.75rem 0.72rem;
    border-radius: 14px;
    background-color: #fffdf8;
    background-image: linear-gradient(165deg, #fffdf8 0%, #f7eedc 100%);
    border: 1px solid rgba(180, 140, 80, 0.28);
    box-sizing: border-box;
    width: 100%;
    max-width: min(52rem, 100%);
    position: static;
    z-index: auto;
    isolation: auto;
    flex: 0 0 auto;
    box-shadow: 0 2px 12px rgba(58, 47, 33, 0.06);
}

.liuren-result-shell__pillars-row {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    width: 100%;
}

.liuren-result-shell__pillars-row .liuren-result-fourpillars {
    flex: 0 1 auto;
    min-width: 0;
    width: auto;
}

.liuren-result-shell__title-block {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0.45rem;
    width: auto;
}

.liuren-result-title-ico {
    display: inline-grid;
    place-items: center;
    width: 1.65rem;
    height: 1.65rem;
    border-radius: 10px;
    background: rgba(236, 199, 131, 0.35);
    font-family: "Ma Shan Zheng", serif;
    font-size: 1rem;
    color: #4a3518;
}

.liuren-result-shell__head-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.35rem;
    flex: 1 1 14rem;
    min-width: 0;
    max-width: min(100%, 42rem);
}

/* 有课盘时：操作条在四柱下方，不再悬浮遮挡页头 */
.main-inner.view-liuren.has-liuren-result .liuren-result-shell__head-actions {
    position: static;
    z-index: auto;
    margin: 0;
    padding: 0;
    border-radius: 0;
    background: transparent;
    border: none;
    box-shadow: none;
    backdrop-filter: none;
}

.liuren-repaipan-btn {
    border: 1px solid rgba(140, 110, 70, 0.45);
    background: linear-gradient(180deg, rgba(255, 252, 244, 0.98) 0%, rgba(243, 232, 210, 0.95) 100%);
    color: #3d2e18;
    border-radius: 10px;
    padding: 0.32rem 0.75rem;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    cursor: pointer;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.75);
    font-family: 'Noto Serif SC', 'Source Han Serif SC', 'Songti SC', 'SimSun', serif;
}

.liuren-repaipan-btn:hover {
    border-color: rgba(100, 75, 45, 0.55);
    background: linear-gradient(180deg, #fffdf8 0%, #efe4d2 100%);
}

.liuren-repaipan-btn:active {
    transform: translateY(1px);
}

.liuren-result-shell .liuren-close-result-btn {
    width: 2rem;
    height: 2rem;
    border-radius: 10px;
    border: 1px solid rgba(140, 110, 70, 0.35);
    background: rgba(255, 252, 244, 0.88);
    color: #4a3518;
    font-size: 1.1rem;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.liuren-result-when {
    width: 100%;
    max-width: 100%;
    font-size: 0.82rem;
    color: var(--text-primary);
    text-align: center;
}

.liuren-result-horse-line {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.45rem 0.75rem;
    width: 100%;
    font-size: 0.8rem;
    font-weight: 700;
    color: #4a3818;
    letter-spacing: 0.04em;
}

.liuren-result-horse-chip {
    display: inline-flex;
    align-items: baseline;
    gap: 0.12rem;
    padding: 0.2rem 0.45rem;
    border-radius: 999px;
    background: rgba(255, 252, 244, 0.92);
    border: 1px solid rgba(180, 140, 80, 0.32);
}

.liuren-result-horse-chip__lab {
    color: #6a5638;
    font-weight: 700;
}

.liuren-result-horse-chip__val {
    color: #1d5a38;
    font-weight: 800;
    font-size: 0.92em;
}

.liuren-result-fourpillars {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.35rem;
    width: 100%;
    max-width: min(22rem, 100%);
    margin: 0 auto;
    justify-items: center;
}

.liuren-result-pillar-col {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 0.2rem;
}

.liuren-result-pillar-label {
    font-size: 0.68rem;
    color: var(--text-muted);
}

.liuren-result-pillar-gz {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.2;
    text-align: center;
    white-space: normal;
    min-height: 2.4em;
}

.liuren-result-pillar-nav {
    display: flex;
    gap: 0.15rem;
}

.liuren-pillar-nav-btn {
    border: none;
    background: rgba(212, 168, 95, 0.2);
    border-radius: 8px;
    padding: 0.12rem 0.2rem;
    cursor: pointer;
    line-height: 0;
}

.liuren-pillar-nav-svg {
    width: 1rem;
    height: 1rem;
    display: block;
    fill: #5c3d12;
}

.liuren-result-now-row {
    display: flex;
    justify-content: flex-start;
}

.liuren-result-now-btn {
    border: 1px solid rgba(212, 168, 95, 0.45);
    background: rgba(255, 255, 255, 0.65);
    border-radius: 999px;
    padding: 0.35rem 0.85rem;
    font-size: 0.78rem;
    cursor: pointer;
}

.liuren-pan-mount {
    margin-top: 0.65rem;
    min-height: 0;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.75rem;
    width: 100%;
    min-width: 0;
    flex: 1 1 auto;
}

.liuren-board-xiangyi-row {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.75rem;
    width: 100%;
    margin-top: 0.65rem;
}

.liuren-board-xiangyi-row > .liuren-pan-mount {
    order: 1;
    width: 100%;
}

/* 未排盘或面板暂泊在行内时的兜底：夹在盘面与提问区之间 */
.liuren-board-xiangyi-row > .liuren-xiangyi-panel {
    width: 100%;
    order: 2;
}

.liuren-xiangyi-panel {
    width: 100%;
    border-radius: 12px;
    border: 1px solid rgba(196, 154, 88, 0.4);
    background: linear-gradient(165deg, rgba(255, 252, 244, 0.98), rgba(249, 240, 223, 0.95));
    box-shadow: none;
    overflow: hidden;
    box-sizing: border-box;
}
.liuren-xiangyi-panel[hidden] {
    display: none !important;
}
.liuren-xiangyi-panel__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.55rem 0.75rem;
    border-bottom: 1px solid rgba(196, 154, 88, 0.28);
}
.liuren-xiangyi-panel__title {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 700;
    color: #755125;
}
.liuren-xiangyi-panel__close {
    border: none;
    background: transparent;
    color: #8a6640;
    font-size: 1.25rem;
    line-height: 1;
    cursor: pointer;
    padding: 0.15rem 0.35rem;
    border-radius: 6px;
}
.liuren-xiangyi-panel__close:hover {
    background: rgba(196, 154, 88, 0.18);
}
.liuren-xiangyi-panel__scroll {
    max-height: min(70vh, 36rem);
    overflow: auto;
}
.liuren-xiangyi-panel__body {
    padding: 0.7rem 0.85rem 0.9rem;
}
.liuren-xiangyi-slot {
    padding: 0.75rem 0.85rem 0.6rem;
    border-bottom: 1px dashed rgba(176, 128, 64, 0.28);
}
.liuren-xiangyi-slot[hidden] {
    display: none !important;
}
.liuren-xiangyi-hint {
    margin: 0;
    font-size: 0.82rem;
    line-height: 1.55;
    color: rgba(90, 70, 40, 0.72);
}
.liuren-xiangyi-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    margin: 0 0 0.45rem;
}
.liuren-xiangyi-tag {
    margin: 0 !important;
}
.liuren-qkbj__xiangyi-row {
    min-width: 0;
    width: 100%;
    display: flex;
    flex-direction: column;
}

.liuren-qkbj__xiangyi-row .liuren-xiangyi-panel {
    flex: 0 1 auto;
    display: flex;
    flex-direction: column;
    min-height: 0;
    max-width: none;
    box-shadow: none;
}

.liuren-qkbj__xiangyi-row .liuren-xiangyi-panel__scroll {
    flex: 0 1 auto;
    min-height: 0;
    max-height: min(42vh, 22rem);
    overflow: auto;
}

.liuren-qkbj__xiangyi-row .liuren-xiangyi-card {
    display: block;
    padding: 0.1rem 0 0;
    border: none;
    background: transparent;
    box-shadow: none;
}

.liuren-qkbj__xiangyi-row .liuren-xiangyi-card .qimen-keying-name {
    font-size: 1.08rem;
}

.liuren-qkbj__xiangyi-row .liuren-xiangyi-panel__head {
    padding: 0.45rem 0.75rem;
}

.liuren-qkbj__xiangyi-row .liuren-xiangyi-panel__title {
    font-size: 0.9rem;
}

.liuren-qkbj__xiangyi-row .liuren-xiangyi-panel__body,
.liuren-qkbj__xiangyi-row .liuren-xiangyi-slot {
    padding: 0.55rem 0.8rem 0.7rem;
}

.liuren-qkbj__xiangyi-row .liuren-xiangyi-hint {
    font-size: 0.78rem;
    line-height: 1.5;
}

@media (min-width: 992px) {
    .liuren-qkbj__xiangyi-row .liuren-xiangyi-fields {
        display: grid;
        grid-template-columns: 1fr 1fr;
        column-gap: 1.35rem;
        row-gap: 0.45rem;
    }

    .liuren-qkbj__xiangyi-row .liuren-xiangyi-field--lead,
    .liuren-qkbj__xiangyi-row .liuren-xiangyi-note {
        grid-column: 1 / -1;
    }

    .liuren-qkbj__xiangyi-row .liuren-xiangyi-panel__scroll {
        max-height: min(36vh, 18rem);
    }
}
.liuren-xiangyi-fields {
    display: flex;
    flex-direction: column;
    gap: 0.42rem;
    margin-top: 0.2rem;
}
.liuren-xiangyi-field {
    display: grid;
    grid-template-columns: 2.4em minmax(0, 1fr);
    column-gap: 0.55rem;
    align-items: start;
}
.liuren-xiangyi-field__lab {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: #6a5838;
    line-height: 1.55;
    padding-top: 0.08rem;
}
.liuren-xiangyi-field__val {
    font-size: 0.84rem;
    line-height: 1.65;
    color: #2a2214;
    min-width: 0;
    word-break: break-word;
}
.liuren-xiangyi-field--lead .liuren-xiangyi-field__val {
    font-size: 0.88rem;
    line-height: 1.72;
}
.liuren-xiangyi-note {
    grid-column: 1 / -1;
    margin: 0.08rem 0 0;
    padding-left: 0.05rem;
}
.liuren-zhi-hit {
    cursor: help;
}
.liuren-zhi-hit.is-xiangyi-active {
    outline: 2px solid rgba(176, 128, 64, 0.9);
    outline-offset: 1px;
    border-radius: 3px;
    background: rgba(201, 162, 39, 0.22);
}

.liuren-tianjiang-hit {
    cursor: help;
}
.liuren-tianjiang-hit.is-xiangyi-active {
    outline: 2px solid rgba(176, 128, 64, 0.9);
    outline-offset: 1px;
    border-radius: 3px;
    background: rgba(201, 162, 39, 0.22);
}

.liuren-keti-hit {
    cursor: help;
    text-decoration: underline dotted rgba(140, 110, 60, 0.55);
    text-underline-offset: 0.18em;
}
.liuren-keti-hit.is-xiangyi-active {
    outline: 2px solid rgba(176, 128, 64, 0.9);
    outline-offset: 1px;
    border-radius: 3px;
    background: rgba(201, 162, 39, 0.22);
}
.liuren-keti-sep {
    opacity: 0.55;
}

@media (min-width: 992px) {
    .liuren-board-xiangyi-row {
        flex-direction: column;
        align-items: stretch;
        gap: 0.65rem;
    }
    .liuren-board-xiangyi-row .liuren-pan-mount {
        flex: 1 1 auto;
        margin-top: 0;
        max-width: none;
        align-items: stretch;
    }
    #liurenResultShell.liuren-result-shell {
        max-width: min(94rem, 100%);
    }
    .liuren-board-xiangyi-row .liuren-qkbj {
        max-width: none;
    }
}

/* —— 大六壬：起课笔记式（上：格局·三传·四课；下：天地盘） —— */
.liuren-qkbj {
    --liuren-qkbj-paper: linear-gradient(165deg, #faf6ee 0%, #f3ead8 48%, #efe4d2 100%);
    --liuren-qkbj-ink: #2a2214;
    --liuren-qkbj-green: #1d5a38;
    --liuren-qkbj-red: #b83232;
    --liuren-qkbj-blue: #3a6ea5;
    border-radius: 16px;
    padding: 0.75rem 0.65rem 0.85rem;
    background-color: #faf6ee;
    background-image: var(--liuren-qkbj-paper);
    border: 1px solid rgba(180, 140, 80, 0.35);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.65);
    color: var(--liuren-qkbj-ink);
    font-family: 'Noto Serif SC', 'Source Han Serif SC', 'Songti SC', 'SimSun', serif;
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
    max-width: min(92rem, 100%);
    margin-left: auto;
    margin-right: auto;
    width: 100%;
    box-sizing: border-box;
}

.liuren-result-shell.result-shell {
    max-width: min(94rem, 100%);
    margin-left: auto;
    margin-right: auto;
}

#liurenResultShell.liuren-result-shell {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    box-sizing: border-box;
    position: relative;
    z-index: 2;
    isolation: isolate;
    background: #fcf8f0;
    overflow: visible;
    height: auto;
    min-height: auto;
    gap: 0.45rem;
}

#qimenResultShell.qimen-result-shell {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    box-sizing: border-box;
    position: relative;
    z-index: 2;
    isolation: isolate;
    background: #fcf8f0;
    overflow: visible;
    height: auto;
    min-height: auto;
    gap: 0.45rem;
}

.liuren-qkbj__block {
    padding-bottom: 0.55rem;
    margin-bottom: 0.45rem;
    border-bottom: 1px solid rgba(120, 100, 70, 0.16);
}

.liuren-qkbj__col > .liuren-qkbj__block:last-child {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}

.liuren-qkbj__layout {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0.7rem;
    width: 100%;
}

.liuren-qkbj__col {
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.liuren-qkbj__col--shensha,
.liuren-qkbj__col--sikechuan {
    width: 100%;
}

.liuren-qkbj__col--plate {
    flex: 1 1 auto;
    min-width: 0;
    width: 100%;
    max-width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.liuren-qkbj__col--plate .liuren-qkbj__block--plate {
    margin-top: 0;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.liuren-qkbj__col--plate .liuren-qkbj__plate-wrap {
    margin-left: auto;
    margin-right: auto;
}

@media (min-width: 992px) {
    /* 电脑端同一行：神煞 · 课体+四课+三传 · 天地盘(最宽)；课象在下一整行 */
    .liuren-qkbj__layout {
        display: flex;
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: stretch;
        gap: 0.65rem 0.75rem;
    }

    .liuren-qkbj__col--shensha {
        flex: 0.95 1 11rem;
        max-width: 18rem;
    }

    .liuren-qkbj__col--sikechuan {
        flex: 1.05 1 13rem;
        max-width: 20rem;
    }

    .liuren-qkbj__col--plate {
        flex: 2.4 1 20rem;
        width: auto;
        max-width: none;
        min-width: 16rem;
        justify-self: stretch;
        align-items: center;
    }

    .liuren-qkbj__col--plate .liuren-qkbj__block--plate,
    .liuren-qkbj__col--plate .liuren-qkbj__plate-wrap {
        width: 100%;
        max-width: min(42rem, 100%);
        margin-left: auto;
        margin-right: auto;
    }

    .liuren-qkbj__col--plate .liuren-qkbj__plate {
        max-width: 100%;
        width: 100%;
    }

    .liuren-qkbj__layout > .liuren-qkbj__col + .liuren-qkbj__col {
        border-left: 1px solid rgba(120, 100, 70, 0.16);
        padding-left: 0.55rem;
    }
}

.liuren-qkbj__block--plate {
    margin-top: 0.15rem;
}

.liuren-qkbj__h {
    margin: 0 0 0.38rem;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.28em;
    color: #6a5838;
    text-align: center;
    text-indent: 0.28em;
}

.liuren-qkbj__block .liuren-qkbj__geju {
    margin-bottom: 0;
}

.liuren-qkbj__block .liuren-qkbj__sanchuan {
    margin-bottom: 0;
}

.liuren-qkbj__block .liuren-qkbj__sike {
    margin-bottom: 0;
}

.liuren-qkbj__geju {
    text-align: center;
    font-size: 0.82rem;
    letter-spacing: 0.12em;
    color: #3d3224;
    margin-bottom: 0.55rem;
    line-height: 1.5;
}

.liuren-qkbj__col--sikechuan .liuren-qkbj__geju {
    font-size: 1.02rem;
    font-weight: 700;
    letter-spacing: 0.12em;
}

.liuren-qkbj__sanchuan {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
    margin-bottom: 0.65rem;
}

.liuren-qkbj__chuan-row {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.28rem;
    font-size: 1.05rem;
    font-weight: 600;
}

.liuren-qkbj__col--sikechuan .liuren-qkbj__chuan-row {
    font-size: 1.18rem;
    gap: 0.32rem;
}

.liuren-qkbj__chuan-rel,
.liuren-qkbj__chuan-gan,
.liuren-qkbj__chuan-god {
    color: var(--liuren-qkbj-ink);
}

.liuren-qkbj__chuan-zhi {
    color: var(--liuren-qkbj-red);
    font-weight: 800;
}

.liuren-qkbj__sike {
    margin-bottom: 0.55rem;
}

.liuren-qkbj__sike-grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-template-rows: repeat(3, auto);
    gap: 0.2rem 0.35rem;
    text-align: center;
    max-width: min(17.5rem, 100%);
    margin: 0 auto;
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--liuren-qkbj-green);
}

.liuren-qkbj__col--sikechuan .liuren-qkbj__sike-grid {
    max-width: min(20rem, 100%);
    font-size: 1.08rem;
    gap: 0.26rem 0.4rem;
}

/** 四课：一课在右、四课在左（传统书写顺序） */
.liuren-qkbj__sike-grid--rtl {
    direction: rtl;
    unicode-bidi: isolate;
}

.liuren-qkbj__h--shensha {
    text-align: center;
    text-indent: 0.28em;
    letter-spacing: 0.28em;
}

.liuren-qkbj__col--shensha .liuren-qkbj__ss-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.liuren-qkbj__ss-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.38rem 0.45rem;
    font-size: 0.92rem;
    text-align: left;
}

.liuren-qkbj__ss-cell {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.06rem;
    line-height: 1.45;
}

.liuren-qkbj__ss-name {
    color: #6a5638;
    font-weight: 700;
    font-size: 0.95rem;
}

.liuren-qkbj__ss-sep {
    color: #9a8870;
    font-weight: 500;
}

.liuren-qkbj__ss-zhi {
    color: #1d5a38;
    font-weight: 800;
    font-size: 1.02rem;
}

/** 天空将「空」：仅字（与旬空地支旁小圆记区分） */
.liuren-qkbj__kong-sky-char {
    font-weight: 800;
    color: var(--liuren-qkbj-red, #b83232);
    letter-spacing: 0.02em;
}

/** 空心圆（当前未用于天空将「空」） */
.liuren-qkbj__kong-circle {
    display: inline-block;
    width: 0.95em;
    height: 0.95em;
    border: 2px solid currentColor;
    border-radius: 50%;
    vertical-align: -0.1em;
    box-sizing: border-box;
    opacity: 0.9;
}

/** 旬空支旁小圆记 */
.liuren-qkbj__xunkong-mark {
    display: inline-block;
    width: 0.42em;
    height: 0.42em;
    margin-left: 0.1em;
    border: 1.5px solid currentColor;
    border-radius: 50%;
    vertical-align: 0.18em;
    opacity: 0.82;
}

.liuren-qkbj__chuan-zhi-wrap {
    display: inline-flex;
    align-items: center;
    gap: 0.1em;
}

.liuren-qkbj__xunkong-mark--before {
    margin-left: 0;
    margin-right: 0.04em;
    color: var(--liuren-qkbj-red, #b83232);
    flex-shrink: 0;
}

.liuren-qkbj__plate-cell--xunkong {
    border-style: dashed;
    border-color: rgba(90, 70, 45, 0.42);
}

.liuren-qkbj__sike-grid span:nth-child(-n + 4) {
    font-size: 0.88rem;
}

.liuren-qkbj__col--sikechuan .liuren-qkbj__sike-grid span:nth-child(-n + 4) {
    font-size: 0.98rem;
}

.liuren-qkbj__col--sikechuan .liuren-qkbj__block--geju .liuren-qkbj__h,
.liuren-qkbj__col--sikechuan .liuren-qkbj__block--chuan .liuren-qkbj__h,
.liuren-qkbj__col--sikechuan .liuren-qkbj__block--sike .liuren-qkbj__h {
    font-size: 0.82rem;
    letter-spacing: 0.32em;
}

.liuren-qkbj__sike-fallback {
    font-size: 0.78rem;
    line-height: 1.45;
    color: #4a3a28;
    word-break: break-all;
}

.liuren-qkbj__wuxing-legend {
    display: flex !important;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.35rem 0.5rem;
    font-size: 0.68rem;
    color: #5a4a32;
    margin: 0.55rem 0 0;
}

.liuren-qkbj__block--plate .liuren-qkbj__wuxing-legend {
    margin-top: 0.6rem;
    padding-top: 0.45rem;
    border-top: 1px dashed rgba(120, 100, 70, 0.22);
}

.liuren-qkbj__wuxing-legend span {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
}

.liuren-qkbj__wuxing-dot {
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 2px;
    flex-shrink: 0;
}

.liuren-qkbj__wuxing-dot--huo {
    background: #c44;
}
.liuren-qkbj__wuxing-dot--tu {
    background: #a67c52;
}
.liuren-qkbj__wuxing-dot--mu {
    background: #2a8f4a;
}
.liuren-qkbj__wuxing-dot--shui {
    background: #3a6ea5;
}
.liuren-qkbj__wuxing-dot--jin {
    background: #c9a227;
}

.liuren-qkbj__plate-wrap {
    margin-top: 0.1rem;
    padding: 0.7rem 0.55rem 0.65rem;
    background: rgba(255, 252, 244, 0.55);
    border-radius: 14px;
    border: 1px solid rgba(140, 110, 70, 0.24);
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.75) inset;
    max-width: min(34rem, 100%);
    width: 100%;
    box-sizing: border-box;
}

.liuren-qkbj__plate {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-template-rows: repeat(4, minmax(4.1rem, auto));
    gap: 6px;
    max-width: min(32rem, 100%);
    width: 100%;
    margin: 0 auto;
    position: relative;
}

.liuren-qkbj__plate-cell {
    border: 1px solid rgba(120, 100, 70, 0.28);
    border-radius: 6px;
    background: rgba(255, 252, 246, 0.88);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 0.34rem 0.18rem;
    position: relative;
    min-height: 4.1rem;
    box-sizing: border-box;
}

.liuren-qkbj__plate-cell--center {
    border: 1px solid rgba(58, 110, 165, 0.45);
    background: rgba(255, 255, 255, 0.55);
    position: relative;
    overflow: hidden;
}

.liuren-qkbj__plate-cell--center::before {
    content: '';
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(
            45deg,
            transparent,
            transparent 7px,
            rgba(58, 110, 165, 0.12) 7px,
            rgba(58, 110, 165, 0.12) 8px
        ),
        repeating-linear-gradient(
            -45deg,
            transparent,
            transparent 9px,
            rgba(58, 110, 165, 0.1) 9px,
            rgba(58, 110, 165, 0.1) 10px
        );
    pointer-events: none;
}

.liuren-qkbj__plate-center-text {
    position: relative;
    z-index: 1;
    text-align: center;
    font-size: 1.18rem;
    font-weight: 800;
    line-height: 1.35;
    color: var(--liuren-qkbj-ink);
}

.liuren-qkbj__plate-jiang {
    font-size: 0.92rem;
    color: #4a3a28;
    margin-bottom: 0.1rem;
}

.liuren-qkbj__plate-gz {
    font-size: 1.12rem;
    font-weight: 800;
    letter-spacing: 0.02em;
}

.liuren-qkbj__plate-dizhi {
    font-size: 0.98rem;
    font-weight: 700;
    color: #4a3a28;
    margin-top: 0.08rem;
    letter-spacing: 0.02em;
}

.liuren-qkbj__plate-mark {
    position: absolute;
    top: 1px;
    right: 2px;
    font-size: 0.58rem;
    font-weight: 800;
    color: var(--liuren-qkbj-blue);
    line-height: 1;
}

.liuren-card {
    border-radius: 14px;
    padding: 0.65rem 0.75rem;
    background: rgba(255, 252, 246, 0.92);
    border: 1px solid rgba(212, 168, 95, 0.22);
}

.liuren-card__title {
    margin: 0 0 0.45rem;
    font-size: 0.85rem;
    font-weight: 800;
    color: #4a3518;
}

.liuren-kv-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(7.5rem, 1fr));
    gap: 0.35rem 0.5rem;
    font-size: 0.78rem;
}

.liuren-kv {
    padding: 0.25rem 0.35rem;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.55);
    border: 1px dashed rgba(212, 168, 95, 0.25);
    word-break: break-all;
}

.liuren-sike-block {
    font-size: 0.8rem;
    line-height: 1.5;
}

.liuren-form-status {
    margin: 0.35rem 0 0.5rem;
    padding: 0.55rem 0.75rem;
    border-radius: 12px;
    font-size: 0.78rem;
    line-height: 1.45;
}

.liuren-form-status--info {
    background: rgba(236, 199, 131, 0.18);
    color: var(--text-primary);
    border: 1px solid rgba(236, 199, 131, 0.35);
}

.liuren-form-status--warn {
    background: rgba(200, 140, 60, 0.16);
    color: #5c3d12;
    border: 1px solid rgba(200, 140, 60, 0.35);
}

.liuren-form-status--error {
    background: rgba(190, 72, 98, 0.12);
    color: #6b1f2d;
    border: 1px solid rgba(190, 72, 98, 0.28);
}

@media (max-width: 991px) {
    .liuren-qkbj__layout {
        display: flex;
        flex-direction: column;
        gap: 0.65rem;
    }

    .liuren-qkbj__col--shensha {
        order: 1;
        margin-bottom: 0;
        padding-bottom: 0.35rem;
        border-bottom: 1px solid rgba(120, 100, 70, 0.14);
    }

    .liuren-qkbj__col--sikechuan {
        order: 2;
        padding-bottom: 0.35rem;
        border-bottom: 1px solid rgba(120, 100, 70, 0.14);
    }

    .liuren-qkbj__col--plate {
        order: 3;
        padding-top: 0.1rem;
        align-items: center;
    }

    .liuren-qkbj__col--shensha .liuren-qkbj__block--shensha {
        margin-bottom: 0.35rem;
        padding-bottom: 0.3rem;
    }

    .liuren-qkbj__col--shensha .liuren-qkbj__h--shensha,
    .liuren-qkbj__col--shensha .liuren-qkbj__h,
    .liuren-qkbj__col--sikechuan .liuren-qkbj__h {
        font-size: 0.62rem;
        letter-spacing: 0.18em;
        margin-bottom: 0.25rem;
    }

    .liuren-qkbj__col--shensha .liuren-qkbj__ss-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.28rem 0.45rem;
        font-size: 0.86rem;
    }

    .liuren-qkbj__col--sikechuan .liuren-qkbj__geju {
        font-size: 0.88rem;
        letter-spacing: 0.08em;
        line-height: 1.4;
    }

    .liuren-qkbj__col--sikechuan .liuren-qkbj__chuan-row {
        font-size: 0.88rem;
        gap: 0.22rem;
    }

    .liuren-qkbj__col--sikechuan .liuren-qkbj__sanchuan {
        gap: 0.22rem;
        margin-bottom: 0.35rem;
    }

    .liuren-qkbj__col--sikechuan .liuren-qkbj__sike-grid {
        max-width: 100%;
        font-size: 0.82rem;
        gap: 0.2rem 0.28rem;
    }

    .qimen-result-shell__pillar-actions,
    .liuren-result-shell__pillar-actions,
    .bazi-result-shell__pillar-actions,
    .qizheng-result-shell__pillar-actions,
    .metaphysics-result-pillar-actions {
        gap: 0.28rem;
        padding-top: 0.42rem;
    }

    .qimen-result-shell__pillar-actions .paipan-result-datetime-btn,
    .qimen-result-shell__pillar-actions .qimen-show-paipan-btn,
    .liuren-result-shell__pillar-actions .paipan-result-datetime-btn,
    .liuren-result-shell__pillar-actions .liuren-repaipan-btn,
    .bazi-result-shell__pillar-actions .paipan-result-datetime-btn,
    .bazi-result-shell__pillar-actions .bazi-repaipan-btn,
    .bazi-result-shell__pillar-actions .result-open-modal-btn,
    .qizheng-result-shell__pillar-actions .paipan-result-datetime-btn,
    .qizheng-result-shell__pillar-actions .qizheng-repaipan-btn,
    .qizheng-result-shell__pillar-actions .qizheng-pillar-action-btn {
        font-size: 0.66rem;
        padding: 0.26rem 0.28rem;
        min-height: 1.85rem;
    }

    .liuren-pan-mount {
        margin-top: 0.45rem;
    }

    .liuren-qkbj__plate-cell {
        overflow: hidden;
        line-height: 1.08;
        gap: 0;
    }

    .liuren-qkbj__plate-jiang {
        max-width: 100%;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .liuren-qkbj__plate-gz,
    .liuren-qkbj__plate-dizhi {
        max-width: 100%;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .liuren-qkbj__wuxing-legend {
        margin-top: 0.42rem;
        padding-top: 0.35rem;
        font-size: 0.62rem;
        gap: 0.28rem 0.38rem;
    }

    .liuren-result-bottom {
        margin-top: 0.55rem;
        padding-bottom: 3.25rem;
        gap: 0.45rem;
        width: min(36rem, 100%);
        margin-left: auto;
        margin-right: auto;
    }

    .liuren-result-shell .qimen-result-question-field__input {
        min-height: 4.2rem;
    }

    #liurenResultShell.liuren-result-shell {
        padding-bottom: 0.35rem;
    }
}

@media (max-width: 900px) {
    .liuren-qkbj {
        padding: 0.65rem 0.5rem 0.75rem;
    }

    .liuren-qkbj__plate {
        max-width: 100%;
        gap: 4px;
        grid-template-rows: repeat(4, minmax(2.8rem, auto));
    }

    .liuren-qkbj__plate-cell {
        min-height: 2.8rem;
        padding: 0.22rem 0.1rem;
    }

    .liuren-qkbj__plate-jiang {
        font-size: 0.74rem;
    }

    .liuren-qkbj__plate-gz {
        font-size: 0.94rem;
    }

    .liuren-qkbj__plate-dizhi {
        font-size: 0.8rem;
    }

    .liuren-qkbj__plate-center-text {
        font-size: 0.95rem;
    }

    .liuren-qkbj__ss-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.3rem 0.4rem;
    }

    .qimen-result-shell__pillars-panel,
    .liuren-result-shell__pillars-panel {
        padding: 0.42rem 0.45rem;
        margin: 0.25rem auto 0.45rem;
        gap: 0.35rem;
    }

    .qimen-result-shell__pillars-panel {
        gap: 0.42rem;
        padding: 0.5rem 0.48rem 0.72rem;
        margin: 0.25rem auto 0.85rem;
    }

    .qimen-result-layout {
        margin-top: 0.15rem;
    }

    .qimen-result-fourpillars {
        max-width: 100%;
        gap: 0.2rem 0.32rem;
    }

    .qimen-result-pillar-col {
        gap: 0.22rem;
    }

    .qimen-result-pillar-gz {
        font-size: 0.98rem;
        line-height: 1.25;
    }

    .qimen-pillar-nav-btn {
        min-width: 1.5rem;
        min-height: 1.35rem;
        padding: 0.14rem 0.24rem;
    }

    .qimen-result-shell__pillar-actions {
        margin-top: 0.28rem;
        padding-top: 0.55rem;
        margin-bottom: 0.05rem;
        gap: 0.28rem 0.32rem;
    }

    .qimen-meta-chips--in-pillars {
        margin-top: 0.1rem;
        padding-top: 0.48rem;
        padding-bottom: 0;
        gap: 0.5rem;
    }

    .qimen-result-shell__pillars-panel > .qimen-result-shell__pillar-actions {
        margin-top: 0.1rem;
        padding-top: 0.45rem;
        margin-bottom: 0;
    }

    .qimen-meta-chips--in-pillars .qimen-meta-chips__row {
        gap: 0.34rem 0.36rem;
        line-height: 1.45;
        align-items: flex-start;
    }

    .qimen-meta-chips--in-pillars .qimen-chip {
        font-size: 0.68rem;
        padding: 0.2rem 0.44rem;
        line-height: 1.35;
    }

    .qimen-meta-chips--in-pillars .qimen-chip.qimen-chip--prominent {
        font-size: 0.7rem;
        padding: 0.2rem 0.46rem;
    }

    .qimen-meta-chips--in-pillars .qimen-chip.qimen-chip--prominent .qimen-chip__k,
    .qimen-meta-chips--in-pillars .qimen-chip.qimen-chip--prominent .qimen-chip__v {
        font-size: 1em;
        font-weight: 700;
    }

    .liuren-result-shell__head {
        padding-bottom: 0.15rem;
    }

    .liuren-result-when {
        font-size: 0.72rem;
        line-height: 1.35;
        word-break: break-word;
    }

    .liuren-result-horse-line {
        gap: 0.35rem 0.5rem;
        font-size: 0.74rem;
    }
}

@media (max-width: 640px) {
    .liuren-result-fourpillars {
        max-width: 100%;
    }

    .liuren-result-shell__pillars-row .liuren-result-fourpillars {
        flex: 1 1 100%;
    }

    .liuren-qkbj__plate {
        grid-template-rows: repeat(4, minmax(2.55rem, auto));
    }

    .liuren-qkbj__plate-cell {
        min-height: 2.55rem;
    }

    .liuren-qkbj__wuxing-legend {
        font-size: 0.62rem;
        gap: 0.28rem 0.4rem;
    }
}

.unified-paipan-shell--qimen .form-shell__head {
    justify-content: center;
    text-align: center;
}

.unified-paipan-shell--qimen .form-shell-title {
    flex: 1;
}

.unified-paipan-shell--qimen .form-shell__collapse-btn {
    position: absolute;
    right: 0.35rem;
    top: 0.35rem;
}

.unified-paipan-shell--qimen {
    position: relative;
}

.main-inner.view-qimen .paipan-datetime-picker__toolbar {
    flex-direction: column;
}

.main-inner.view-qimen .paipan-datetime-picker__fill-btn {
    width: 100%;
    justify-content: center;
}

.qimen-input-shell .field--checkbox .field-label--inline {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    cursor: pointer;
    font-weight: 500;
}

.qimen-ts-location-shell {
    border-radius: 12px;
    border: 1px solid rgba(126, 96, 58, 0.14);
    background: linear-gradient(180deg, rgba(255, 252, 247, 0.98) 0%, rgba(251, 246, 238, 0.88) 100%);
    padding: 0.42rem 0.55rem 0.52rem;
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.75) inset;
}

/* 八字排盘：真太阳时地点常显（非折叠），标题为静态文案 */
.qimen-ts-location-static-head {
    font-size: 0.8rem;
    font-weight: 600;
    color: #4a3d2c;
    letter-spacing: 0.02em;
    line-height: 1.35;
    padding: 0.12rem 0.08rem 0.28rem;
}

.qimen-ts-location-panel--bazi-static {
    margin-top: 0.12rem;
    padding-top: 0.48rem;
}

.qimen-ts-location-btn {
    width: 100%;
    margin: 0;
    padding: 0.38rem 0.15rem 0.42rem;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #4a3d2c;
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-align: left;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.55rem;
}

.qimen-ts-location-btn:hover {
    color: #3b2f22;
}

.qimen-ts-location-btn:focus-visible {
    outline: 2px solid rgba(200, 160, 100, 0.45);
    outline-offset: 2px;
}

.qimen-ts-location-btn__text {
    flex: 1;
    min-width: 0;
    line-height: 1.35;
}

.qimen-ts-location-btn__chev {
    flex-shrink: 0;
    font-size: 0.62rem;
    line-height: 1;
    opacity: 0.55;
    transition: transform 0.2s ease, opacity 0.2s ease;
}

.qimen-ts-location-btn[aria-expanded='true'] .qimen-ts-location-btn__chev {
    transform: rotate(-180deg);
    opacity: 0.75;
}

.qimen-ts-location-panel {
    margin-top: 0.35rem;
    padding-top: 0.55rem;
    border-top: 1px solid rgba(126, 96, 58, 0.1);
}

.qimen-ts-location-panel[hidden] {
    display: none;
    margin: 0;
    padding: 0;
    border: 0;
}

.qimen-ts-location-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem 0.75rem;
    align-items: end;
}

.qimen-ts-location-col {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.28rem;
}

.qimen-ts-location-label {
    display: block;
    font-size: 0.74rem;
    font-weight: 600;
    color: rgba(74, 61, 44, 0.82);
    letter-spacing: 0.02em;
    line-height: 1.2;
}

.qimen-ts-location-select.select-dark {
    padding: 0.58rem 0.72rem;
    font-size: 0.86rem;
    border-radius: 10px;
}

.qimen-ts-location-hint {
    margin: 0.62rem 0 0.08rem;
    padding: 0.48rem 0.58rem;
    border-radius: 8px;
    background: rgba(126, 96, 58, 0.06);
    border: 1px solid rgba(126, 96, 58, 0.08);
    font-size: 0.72rem;
    line-height: 1.55;
    color: rgba(74, 61, 44, 0.72);
}

@media (max-width: 480px) {
    .qimen-ts-location-grid {
        grid-template-columns: 1fr;
        gap: 0.5rem;
    }
}

.qimen-checkbox {
    width: 1.1rem;
    height: 1.1rem;
    accent-color: var(--accent-gold, #c9a06a);
}

/* 奇门活盘顶栏：第一行标题+按钮；第二行整宽公历/四柱/时间导航（避免与标题挤在同一行被压没） */
.result-shell-head.qimen-result-shell__head {
    flex-direction: column;
    align-items: stretch;
    gap: 0.4rem;
}

.qimen-result-shell__head {
    position: relative;
    padding-right: 0;
    margin-bottom: 0.15rem;
}

.qimen-result-shell__head-top {
    display: flex;
    flex-wrap: nowrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.65rem;
    width: 100%;
    min-width: 0;
}

.qimen-result-shell__head-datetime {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.35rem;
    width: 100%;
    min-width: 0;
}

.qimen-result-shell__title-block {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0.35rem;
    min-width: 0;
    flex: 0 1 auto;
    width: auto;
    max-width: min(100%, 16rem);
}

.qimen-result-title-ico {
    font-size: 1.05rem;
    line-height: 1;
    color: #c9a06a;
    opacity: 0.95;
}

.qimen-result-shell__head .result-shell-title,
.liuren-result-shell__head .result-shell-title {
    margin: 0;
    text-align: left;
    font-size: 1.2rem;
    letter-spacing: 0.06em;
    color: var(--text-primary, #3a2f21);
}

.qimen-result-shell__meta {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.2rem;
    text-align: left;
    font-size: 0.84rem;
    color: var(--text-secondary, #5c5346);
    width: 100%;
    min-width: 0;
}

/* 返回上一个排盘 / 当下时间 /（八字紫微七政另含重新排盘） */
.qimen-result-shell__pillar-actions,
.liuren-result-shell__pillar-actions,
.bazi-result-shell__pillar-actions,
.qizheng-result-shell__pillar-actions,
.metaphysics-result-pillar-actions {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
    justify-content: stretch;
    gap: 0.35rem;
    width: 100%;
    margin-top: 0.15rem;
    padding-top: 0.5rem;
    border-top: 1px solid rgba(180, 140, 80, 0.22);
    box-sizing: border-box;
}

/* 奇门/六壬调时已下沉至底栏 result-actions；顶栏 pillar-actions 仅八字/七政 */

.qimen-result-shell__pillar-actions .paipan-result-datetime-actions--pillars,
.liuren-result-shell__pillar-actions .paipan-result-datetime-actions--pillars,
.bazi-result-shell__pillar-actions .paipan-result-datetime-actions--pillars,
.qizheng-result-shell__pillar-actions .paipan-result-datetime-actions--pillars,
.metaphysics-result-pillar-actions .paipan-result-datetime-actions--pillars {
    display: contents;
}

.qimen-result-shell__pillar-actions .paipan-result-datetime-btn,
.qimen-result-shell__pillar-actions .qimen-show-paipan-btn,
.liuren-result-shell__pillar-actions .paipan-result-datetime-btn,
.liuren-result-shell__pillar-actions .liuren-repaipan-btn,
.bazi-result-shell__pillar-actions .paipan-result-datetime-btn,
.bazi-result-shell__pillar-actions .bazi-repaipan-btn,
.bazi-result-shell__pillar-actions .result-open-modal-btn,
.qizheng-result-shell__pillar-actions .paipan-result-datetime-btn,
.qizheng-result-shell__pillar-actions .qizheng-repaipan-btn,
.metaphysics-result-pillar-actions .paipan-result-datetime-btn,
.metaphysics-result-pillar-actions .qimen-show-paipan-btn,
.metaphysics-result-pillar-actions .liuren-repaipan-btn,
.metaphysics-result-pillar-actions .bazi-repaipan-btn,
.metaphysics-result-pillar-actions .qizheng-repaipan-btn,
.metaphysics-result-pillar-actions .result-open-modal-btn {
    width: 100%;
    min-width: 0;
    max-width: none;
    box-sizing: border-box;
    font-size: 0.72rem;
    padding: 0.3rem 0.35rem;
    min-height: 2rem;
    white-space: normal;
    text-align: center;
    line-height: 1.3;
    justify-content: center;
    border-radius: var(--btn-radius, 10px);
}

.liuren-result-shell__head,
.qimen-result-shell__head {
    width: 100%;
    background: #fcf8f0;
    position: static;
    z-index: auto;
    flex: 0 0 auto;
}

.qimen-result-layout,
.liuren-qkbj {
    flex: 0 1 auto;
    width: 100%;
    min-width: 0;
}

.qimen-result-shell__head-actions {
    display: flex;
    align-items: flex-start;
    gap: 0.35rem;
    flex-shrink: 0;
    padding-top: 0.05rem;
}

/* 奇门/六壬：次要操作集中到标题右上角 */
.qimen-result-top-toolbar,
.liuren-result-top-toolbar {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    gap: 0.35rem;
    flex: 1 1 14rem;
    min-width: 0;
    max-width: min(100%, 42rem);
}

.qimen-result-shell__title-block {
    flex: 0 1 auto;
    width: auto;
    max-width: min(100%, 16rem);
}

.liuren-result-shell__head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.55rem 0.75rem;
}

.liuren-result-shell__head-left {
    flex: 0 1 auto;
    width: auto;
    max-width: min(100%, 16rem);
}

.liuren-result-shell__title-block {
    width: auto;
}

.qimen-result-top-toolbar .paipan-result-datetime-btn,
.liuren-result-top-toolbar .paipan-result-datetime-btn,
.qimen-result-top-toolbar .qimen-action-btn,
.liuren-result-top-toolbar .qimen-action-btn,
.qimen-result-top-toolbar .primary-btn,
.liuren-result-top-toolbar .primary-btn,
.qimen-result-top-toolbar .qimen-sheet-btn,
.liuren-result-top-toolbar .qimen-sheet-btn {
    flex: 0 1 auto !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    min-height: 2.15rem;
    height: auto;
    padding: 0.35rem 0.55rem !important;
    font-size: 0.74rem !important;
    line-height: 1.35;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
    text-align: center;
}

.qimen-result-top-toolbar .qimen-btn-svg,
.qimen-result-top-toolbar .qimen-action-btn__ico,
.qimen-result-top-toolbar .qimen-sheet-btn__ico,
.liuren-result-top-toolbar .qimen-btn-svg,
.liuren-result-top-toolbar .qimen-action-btn__ico {
    display: none;
}

.qimen-result-actions--save-only,
.liuren-result-actions--save-only {
    display: flex !important;
    flex-wrap: nowrap !important;
    justify-content: center;
    align-items: stretch;
    width: 100%;
    max-width: 100%;
    margin-top: 0.15rem;
}

.qimen-result-actions--save-only .qimen-action-btn,
.liuren-result-actions--save-only .qimen-action-btn,
.qimen-result-actions--save-only .primary-btn,
.liuren-result-actions--save-only .primary-btn {
    flex: 0 1 auto !important;
    width: auto !important;
    min-width: 7.5rem !important;
    max-width: 14rem !important;
    min-height: 2.55rem;
    padding: 0.5rem 1rem !important;
    font-size: 0.86rem !important;
    white-space: nowrap !important;
}

.qimen-result-actions--save-only .qimen-btn-svg,
.qimen-result-actions--save-only .qimen-action-btn__ico,
.liuren-result-actions--save-only .qimen-btn-svg,
.liuren-result-actions--save-only .qimen-action-btn__ico {
    display: inline-block;
    width: 1rem;
    height: 1rem;
    margin-right: 0.25rem;
    vertical-align: -0.12em;
}

@media (max-width: 900px) {
    .qimen-result-shell__head-top {
        flex-wrap: wrap;
    }

    .qimen-result-top-toolbar,
    .liuren-result-top-toolbar {
        flex: 1 1 100%;
        justify-content: flex-start;
        max-width: 100%;
    }

    .qimen-result-top-toolbar .paipan-result-datetime-btn,
    .liuren-result-top-toolbar .paipan-result-datetime-btn,
    .qimen-result-top-toolbar .qimen-action-btn,
    .liuren-result-top-toolbar .qimen-action-btn,
    .qimen-result-top-toolbar .primary-btn,
    .liuren-result-top-toolbar .primary-btn,
    .qimen-result-top-toolbar .qimen-sheet-btn {
        flex: 1 1 calc(50% - 0.25rem) !important;
        width: calc(50% - 0.25rem) !important;
        max-width: none !important;
        min-height: 2.55rem !important;
        height: auto !important;
        white-space: normal !important;
        overflow-wrap: anywhere !important;
        word-break: break-word !important;
        line-height: 1.35 !important;
        text-align: center !important;
    }

    .qimen-result-top-toolbar .qimen-action-btn--export-facts,
    .liuren-result-top-toolbar .qimen-action-btn--export-facts,
    .qimen-result-top-toolbar #qimenCopyForAiBtn,
    .liuren-result-top-toolbar #liurenCopyForAiBtn {
        flex: 1 1 100% !important;
        width: 100% !important;
        max-width: none !important;
    }

    .qimen-result-top-toolbar .startup-page-check--toolbar,
    .liuren-result-top-toolbar .startup-page-check--toolbar {
        flex: 1 1 100%;
    }
}

.qimen-show-paipan-btn {
    margin: 0;
    padding: 0.3rem 0.55rem;
    border-radius: 10px;
    border: 1px solid rgba(126, 96, 58, 0.25);
    background: rgba(255, 252, 247, 0.95);
    color: #5a4a34;
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    cursor: pointer;
    font-family: inherit;
    line-height: 1.25;
    white-space: nowrap;
    transition:
        background 0.15s ease,
        border-color 0.15s ease;
}

.qimen-show-paipan-btn:hover {
    background: rgba(248, 208, 142, 0.22);
    border-color: rgba(209, 156, 76, 0.42);
}

.qimen-result-shell__head .result-close-btn {
    position: static;
    flex-shrink: 0;
}

/* 奇门顶栏：三大同参（八字 / 紫微 / 七政）紧跟四柱与时间行 */
.qimen-extra-charts--in-head {
    margin-top: 0.35rem;
    margin-bottom: 0;
    width: 100%;
    min-width: 0;
}

.qimen-extra-charts--in-head .bazi-extra-charts__lead {
    margin-bottom: 0.22rem;
    font-size: 0.72rem;
}

@media (max-width: 520px) {
    .qimen-extra-charts--in-head .bazi-extra-charts__grid {
        gap: 0.32rem;
    }
}

.qimen-result-when {
    font-weight: 600;
    color: var(--text-primary);
}

/* 各排盘结果区：返回上一时刻 + 当下时间 */
.paipan-result-datetime-actions {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0.35rem;
    flex: 0 0 auto;
    min-width: 6.5rem;
}

.paipan-result-datetime-btn {
    margin: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.26rem 0.62rem;
    border-radius: var(--btn-radius, 10px);
    border: 1px solid rgba(58, 47, 33, 0.2);
    background: var(--accent, #c9a06a);
    color: var(--cream-text, #fffef9);
    font-family: inherit;
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    white-space: nowrap;
    cursor: pointer;
    transition:
        background 0.2s ease,
        box-shadow 0.2s ease,
        opacity 0.2s ease;
}

.paipan-result-datetime-btn--back {
    background: rgba(255, 252, 246, 0.92);
    color: #4a3518;
    border-color: rgba(201, 160, 106, 0.45);
}

.paipan-result-datetime-btn:hover:not(:disabled) {
    box-shadow: 0 2px 10px rgba(58, 44, 28, 0.12);
    filter: brightness(1.03);
}

.paipan-result-datetime-btn:focus-visible {
    outline: 2px solid rgba(200, 160, 100, 0.55);
    outline-offset: 2px;
}

.paipan-result-datetime-btn:disabled {
    opacity: 0.45;
    cursor: not-allowed;
    box-shadow: none;
    filter: none;
}

.bazi-result-pillars-row {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
}

.bazi-result-pillars-row .bazi-grid {
    flex: 1 1 auto;
    min-width: 0;
}

.bazi-result-datetime-actions {
    margin-top: 0.35rem;
}

.bazi-result-shell__pillar-actions {
    margin-top: 0.45rem;
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.bazi-result-shell__pillar-actions .bazi-repaipan-btn,
.bazi-result-shell__pillar-actions #repaipanBaziZiweiBtn {
    margin: 0;
    border-radius: var(--btn-radius, 10px);
    border: 1px solid rgba(126, 96, 58, 0.25);
    background: rgba(255, 252, 247, 0.95);
    color: #5a4a34;
    font-weight: 600;
}

.bazi-result-shell__pillar-actions .result-export-facts-btn,
.bazi-result-shell__pillar-actions .result-copy-for-ai-btn {
    margin: 0;
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
    border-radius: var(--btn-radius, 10px);
    border: 1px solid rgba(126, 96, 58, 0.25);
    background: rgba(255, 252, 247, 0.95);
    color: #5a4a34;
    font-size: 0.76rem;
    font-weight: 600;
    line-height: 1.35;
    white-space: normal;
    text-align: center;
    padding: 0.55rem 0.45rem;
    min-height: 2.55rem;
}

.qizheng-result-shell__pillar-actions {
    margin-top: 0.35rem;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.4rem;
}

.qizheng-result-shell__pillar-actions .qizheng-repaipan-btn {
    margin: 0;
    width: 100%;
    border-radius: var(--btn-radius, 10px);
    min-height: 2.55rem;
    padding: 0.55rem 0.45rem;
    font-size: 0.78rem;
    line-height: 1.35;
    box-sizing: border-box;
}

.qizheng-result-shell__pillar-actions .paipan-result-datetime-btn {
    border-radius: var(--btn-radius, 10px);
    min-height: 2.55rem;
    padding: 0.55rem 0.45rem;
    font-size: 0.78rem;
    line-height: 1.35;
    box-sizing: border-box;
}

.qizheng-result-shell__pillar-actions .qizheng-pillar-action-btn {
    width: 100%;
    min-width: 0;
    min-height: 2.55rem;
    margin: 0;
    padding: 0.55rem 0.45rem;
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0;
    line-height: 1.35;
    white-space: normal;
    text-align: center;
    justify-content: center;
    border-radius: var(--btn-radius, 10px);
    box-shadow: 0 2px 8px rgba(201, 160, 106, 0.18);
    box-sizing: border-box;
}

.qizheng-result-shell__pillar-actions .qizheng-pillar-action-btn.qimen-action-btn--export-facts {
    background: #fffdf8;
    color: #5a4a34;
    border: 1px solid rgba(160, 130, 80, 0.35);
    box-shadow: none;
}

@media (max-width: 900px) {
    /* 手机：上排三等分（返回/当下/重新排盘），下排二等分（导出/复制） */
    .qizheng-result-shell__pillar-actions,
    #qizhengResultShell .qizheng-result-shell__pillar-actions,
    .metaphysics-result-pillar-actions.qizheng-result-shell__pillar-actions {
        display: grid !important;
        grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
        gap: 0.4rem !important;
        align-items: stretch;
    }
    .qizheng-result-shell__pillar-actions .paipan-result-datetime-actions--pillars {
        display: contents;
    }
    .qizheng-result-shell__pillar-actions .paipan-result-datetime-btn,
    .qizheng-result-shell__pillar-actions .qizheng-repaipan-btn {
        grid-column: span 2;
        width: 100% !important;
        max-width: none !important;
        min-width: 0 !important;
        flex: none !important;
        min-height: 2.65rem;
        padding: 0.55rem 0.35rem;
        font-size: 0.74rem;
        line-height: 1.35;
        border-radius: var(--btn-radius, 10px);
        box-sizing: border-box;
    }
    .qizheng-result-shell__pillar-actions .qizheng-pillar-action-btn {
        grid-column: span 3;
        width: 100% !important;
        max-width: none !important;
        min-width: 0 !important;
        flex: none !important;
        min-height: 2.65rem;
        padding: 0.55rem 0.5rem;
        font-size: 0.74rem;
        line-height: 1.35;
        border-radius: var(--btn-radius, 10px);
        box-sizing: border-box;
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
    }
    .qizheng-result-shell__pillar-actions #qizhengExportFactsBtn {
        background: #fffdf8 !important;
        color: #5a4a34 !important;
        border: 1px solid rgba(160, 130, 80, 0.45) !important;
        box-shadow: none !important;
    }
    .qizheng-result-shell__pillar-actions #qizhengCopyForAiBtn {
        background: linear-gradient(180deg, rgb(244, 214, 160) 0%, var(--tone-gold, #ecc783) 100%) !important;
        color: var(--cream-text, #3a2f21) !important;
        border: none !important;
    }
}

.qizheng-result-pillars-row {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
}

.qizheng-result-pillars-row .qizheng-result-fourpillars {
    flex: 1 1 auto;
    min-width: 0;
}

.qimen-result-now-row {
    display: flex;
    width: auto;
    justify-content: flex-start;
    margin: 0;
}

.qimen-result-pillars-row {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    width: 100%;
}

/* 奇门 / 六壬结果区：四柱旁日期选择（对齐首页日历） */
.paipan-result-calendar-wrap {
    position: relative;
    flex: 0 0 auto;
    align-self: stretch;
    min-width: 8.5rem;
    max-width: 12.5rem;
    z-index: 30;
}

.paipan-result-tools-col {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.35rem;
    flex: 0 0 auto;
    min-width: 8.5rem;
    max-width: 13rem;
    align-self: center;
}

.paipan-result-tools-col .paipan-result-calendar-wrap {
    max-width: none;
    width: 100%;
    align-self: stretch;
}

.paipan-result-tst-wrap {
    display: flex;
    flex-direction: column;
    gap: 0.28rem;
    width: 100%;
}

.paipan-result-tst-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 2rem;
    padding: 0.32rem 0.5rem;
    border: 1px solid rgba(126, 96, 58, 0.28);
    border-radius: 10px;
    background: rgba(255, 252, 247, 0.96);
    color: #5a4a34;
    font-family: inherit;
    font-size: 0.72rem;
    font-weight: 650;
    letter-spacing: 0.02em;
    cursor: pointer;
    line-height: 1.25;
}

.paipan-result-tst-toggle.is-on,
.paipan-result-tst-wrap--on .paipan-result-tst-toggle {
    border-color: rgba(185, 136, 66, 0.55);
    background: linear-gradient(180deg, #f8e4b8, #e8b86a);
    color: #3a2f1f;
}

.paipan-result-tst-geo {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.22rem;
}

.paipan-result-tst-select {
    width: 100%;
    min-height: 1.85rem;
    font-size: 0.7rem !important;
    padding: 0.22rem 0.35rem !important;
}

.liuren-result-shell__pillars-row .paipan-result-tools-col {
    align-self: flex-end;
    margin-bottom: 0.15rem;
}

.paipan-result-calendar-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.35rem;
    width: 100%;
    border: 1px solid rgba(120, 108, 92, 0.22);
    border-radius: 10px;
    background: rgba(255, 252, 245, 0.95);
    padding: 0.42rem 0.55rem;
    font-size: 0.72rem;
    font-weight: 600;
    font-family: inherit;
    color: #3d352c;
    cursor: pointer;
    line-height: 1.3;
    text-align: left;
}

.paipan-result-calendar-chevron {
    font-size: 0.72rem;
    opacity: 0.72;
    flex: 0 0 auto;
}

.paipan-result-calendar-panel {
    position: absolute;
    z-index: 40;
    top: calc(100% + 0.25rem);
    left: 0;
    min-width: 16.5rem;
    border-radius: 12px;
    border: 1px solid rgba(120, 108, 92, 0.2);
    background: #fffdf8;
    box-shadow: 0 10px 28px rgba(48, 38, 24, 0.14);
    padding: 0.55rem 0.5rem 0.65rem;
}

.paipan-result-calendar-panel[hidden] {
    display: none !important;
}

.paipan-result-cal-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.35rem;
    margin-bottom: 0.4rem;
}

.paipan-result-cal-month {
    font-size: 0.8rem;
    font-weight: 700;
    color: #3d352c;
}

.paipan-result-cal-nav {
    border: none;
    background: rgba(232, 200, 140, 0.2);
    color: #5a4f42;
    border-radius: 8px;
    width: 1.85rem;
    height: 1.85rem;
    font-size: 1.1rem;
    line-height: 1;
    cursor: pointer;
    font-family: inherit;
}

.paipan-result-cal-weekdays,
.paipan-result-cal-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 0.2rem;
}

.paipan-result-cal-weekdays {
    margin-bottom: 0.25rem;
    font-size: 0.62rem;
    color: #8a8074;
    text-align: center;
}

.paipan-result-cal-day {
    border: none;
    background: transparent;
    border-radius: 8px;
    min-height: 1.85rem;
    font-size: 0.72rem;
    font-weight: 600;
    color: #4a4034;
    cursor: pointer;
    font-family: inherit;
}

.paipan-result-cal-day:hover {
    background: rgba(232, 200, 140, 0.22);
}

.paipan-result-cal-day--muted {
    color: #b0a89c;
    font-weight: 500;
}

.paipan-result-cal-day--today {
    box-shadow: inset 0 0 0 1px rgba(166, 124, 45, 0.55);
}

.paipan-result-cal-day--selected {
    background: rgba(232, 184, 106, 0.38);
    color: #2b2215;
}

.liuren-result-shell__pillars-row .paipan-result-calendar-wrap {
    align-self: flex-end;
    margin-bottom: 0.15rem;
}

.qimen-result-now-btn {
    margin: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.26rem 0.62rem;
    border-radius: 10px;
    border: 1px solid rgba(58, 47, 33, 0.2);
    background: var(--accent, #c9a06a);
    color: var(--cream-text, #fffef9);
    font-family: inherit;
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    white-space: nowrap;
    cursor: pointer;
    transition:
        background 0.2s ease,
        box-shadow 0.2s ease;
}

.qimen-result-pillars-row .paipan-result-datetime-actions {
    margin-top: 1.24rem;
}

.qimen-result-pillars-row .qimen-result-now-btn {
    margin-top: 0;
}

.qimen-result-now-btn:hover {
    box-shadow: 0 2px 10px rgba(58, 44, 28, 0.12);
    filter: brightness(1.03);
}

.qimen-result-now-btn:focus-visible {
    outline: 2px solid rgba(200, 160, 100, 0.55);
    outline-offset: 2px;
}

/* 四柱：四列干支，列下为调时按钮（与柱对齐） */
.qimen-result-fourpillars {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.25rem 0.45rem;
    width: 100%;
    max-width: 22rem;
    margin-top: 0.12rem;
}

@media (max-width: 620px) {
    .qimen-result-pillars-row {
        flex-wrap: wrap;
        gap: 0.3rem;
    }

    .qimen-result-pillars-row .qimen-result-now-btn {
        margin-top: 0;
    }
}

.qimen-result-pillar-col {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.28rem;
    min-width: 0;
}

.qimen-result-pillar-label {
    font-size: 0.7rem;
    font-weight: 600;
    line-height: 1.2;
    color: var(--text-secondary, #6b6154);
    letter-spacing: 0.03em;
    text-align: center;
    white-space: nowrap;
}

.qimen-result-pillar-gz {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.2;
    color: var(--text-primary, #3a2f21);
    text-align: center;
    white-space: normal;
    min-height: 2.4em;
}

.qimen-result-pillar-gz .metaphysics-pillar-gz__stack,
.liuren-result-pillar-gz .metaphysics-pillar-gz__stack {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.06em;
    line-height: 1.12;
}

.qimen-result-pillar-gz .metaphysics-pillar-gz__gan,
.qimen-result-pillar-gz .metaphysics-pillar-gz__zhi,
.liuren-result-pillar-gz .metaphysics-pillar-gz__gan,
.liuren-result-pillar-gz .metaphysics-pillar-gz__zhi {
    display: block;
    font-weight: 750;
    letter-spacing: 0.04em;
}

.qimen-result-pillar-gz .metaphysics-pillar-gz__gan,
.liuren-result-pillar-gz .metaphysics-pillar-gz__gan {
    font-size: 1.08em;
}

.qimen-result-pillar-gz .metaphysics-pillar-gz__zhi,
.liuren-result-pillar-gz .metaphysics-pillar-gz__zhi {
    font-size: 1.08em;
}

.metaphysics-pillar-nayin {
    display: block;
    font-size: 0.72rem;
    font-weight: 650;
    line-height: 1.2;
    letter-spacing: 0.04em;
    color: var(--text-secondary, #6b6154);
    text-align: center;
    white-space: nowrap;
    min-height: 1.2em;
    margin-top: -0.05rem;
}

.metaphysics-pillar-nayin[hidden] {
    display: none;
}

.metaphysics-pillar-nayin.wx-木 { color: #00a870; }
.metaphysics-pillar-nayin.wx-火 { color: #e05a5a; }
.metaphysics-pillar-nayin.wx-土 { color: #c69035; }
.metaphysics-pillar-nayin.wx-金 {
    color: #9a9690;
    font-weight: 700;
}
.metaphysics-pillar-nayin.wx-水 { color: #2d9ecf; }

.qimen-result-pillar-gz .wx-木,
.liuren-result-pillar-gz .wx-木 { color: #00a870; }
.qimen-result-pillar-gz .wx-火,
.liuren-result-pillar-gz .wx-火 { color: #e05a5a; }
.qimen-result-pillar-gz .wx-土,
.liuren-result-pillar-gz .wx-土 { color: #c69035; }
.qimen-result-pillar-gz .wx-金,
.liuren-result-pillar-gz .wx-金 {
    color: #9a9690;
    font-weight: 800;
}
.qimen-result-pillar-gz .wx-水,
.liuren-result-pillar-gz .wx-水 { color: #2d9ecf; }

@media (min-width: 520px) {
    .qimen-result-pillar-gz {
        font-size: 1.12rem;
    }
}

.qimen-result-pillar-nav {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 0.12rem;
}

.qimen-pillar-nav-btn {
    margin: 0;
    padding: 0.18rem 0.3rem;
    min-width: 1.65rem;
    min-height: 1.45rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    border: 1px solid rgba(126, 96, 58, 0.28);
    background: rgba(255, 252, 247, 0.92);
    line-height: 0;
    cursor: pointer;
    font-family: inherit;
    transition:
        background 0.15s ease,
        border-color 0.15s ease;
}

/* 自绘三角箭头（暖白填充），避免系统彩色 emoji */
.qimen-pillar-nav-svg {
    width: 0.82rem;
    height: 0.82rem;
    display: block;
    flex-shrink: 0;
}

.qimen-pillar-nav-svg__shape {
    fill: #faf6ee;
    stroke: rgba(122, 98, 72, 0.5);
    stroke-width: 1.1;
    stroke-linejoin: round;
    transition:
        fill 0.15s ease,
        stroke 0.15s ease;
}

.qimen-pillar-nav-btn:hover .qimen-pillar-nav-svg__shape {
    fill: #fffefb;
    stroke: rgba(98, 76, 52, 0.62);
}

.qimen-pillar-nav-btn:hover {
    background: rgba(248, 208, 142, 0.22);
    border-color: rgba(209, 156, 76, 0.42);
}

.qimen-pillar-nav-btn:active {
    transform: translateY(1px);
}

.qimen-pillar-nav-btn:active .qimen-pillar-nav-svg__shape {
    fill: #f3ebe0;
}

.qimen-meta-chips {
    display: flex;
    flex-direction: column;
    gap: 0.38rem;
    margin: 0.45rem 0 0.4rem;
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.qimen-meta-chips--in-pillars {
    margin: 0.18rem 0 0;
    padding-top: 0.48rem;
    padding-bottom: 0;
    border-top: 1px solid rgba(180, 140, 80, 0.16);
    flex-shrink: 0;
}

/* 值符/空亡/马星等与时间操作按钮同一信息框 */
.qimen-pillars-meta-box {
    margin: 0.18rem 0 0;
    padding: 0.4rem 0.44rem 0.44rem;
    border: 1px solid rgba(180, 140, 80, 0.24);
    border-radius: 10px;
    background: rgba(255, 252, 247, 0.72);
    box-sizing: border-box;
    width: 100%;
}

.qimen-pillars-meta-box .qimen-meta-chips--in-pillars {
    margin: 0;
    padding-top: 0;
    padding-bottom: 0;
    border-top: none;
}

.qimen-pillars-meta-box .qimen-result-shell__pillar-actions--in-meta {
    margin-top: 0.34rem;
    padding-top: 0.36rem;
    border-top: 1px solid rgba(180, 140, 80, 0.18);
}

.qimen-pillars-meta-box .qimen-result-shell__pillar-actions {
    flex-wrap: wrap;
    align-items: stretch;
    justify-content: stretch;
    gap: 0.28rem;
}

.qimen-pillars-meta-box .paipan-result-datetime-actions--pillars {
    display: contents;
}

.qimen-pillars-meta-box .paipan-result-datetime-btn,
.qimen-pillars-meta-box .qimen-show-paipan-btn {
    flex: 1 1 calc(33.333% - 0.2rem);
    min-width: 0;
    min-height: 2rem;
    font-size: 0.72rem;
    padding: 0.3rem 0.4rem;
    white-space: nowrap;
    text-align: center;
    line-height: 1.25;
    box-sizing: border-box;
}

.qimen-pillars-meta-box .paipan-result-datetime-btn {
    border-radius: 10px;
    border: 1px solid rgba(126, 96, 58, 0.25);
    background: rgba(255, 252, 247, 0.95);
    color: #5a4a34;
    font-weight: 600;
    letter-spacing: 0.04em;
    font-family: inherit;
    cursor: pointer;
}

.qimen-pillars-meta-box .paipan-result-datetime-btn--back {
    background: rgba(255, 252, 247, 0.95);
}

.qimen-pillars-meta-box .paipan-result-datetime-btn:hover:not(:disabled) {
    background: rgba(248, 208, 142, 0.22);
    border-color: rgba(209, 156, 76, 0.42);
}

.qimen-pillars-meta-box .qimen-show-paipan-btn {
    margin: 0;
}

.qimen-result-shell__pillars-panel > .qimen-result-shell__pillar-actions {
    margin-top: 0.12rem;
    padding-top: 0.48rem;
    margin-bottom: 0;
}

.qimen-meta-chips__row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem 0.5rem;
    width: 100%;
    min-width: 0;
    flex-shrink: 0;
}

/* 特殊格局 + 符号图例：默认纵向（符号在上、格局在下）；宽度随内容收紧 */
.qimen-special-patterns-and-legend {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    flex-wrap: nowrap;
    gap: 0.45rem;
    margin: 0 0 0.75rem;
    width: 100%;
}

.qimen-special-patterns-and-legend > .qimen-tips-card {
    padding: 0.4rem 0.52rem;
    border-radius: 10px;
    box-shadow: 0 2px 10px rgba(42, 30, 18, 0.04);
}

.qimen-special-patterns-and-legend .qimen-subcard-title {
    margin: 0 0 0.26rem;
    font-size: 0.9rem;
    font-weight: 700;
}

.qimen-special-patterns-and-legend .qimen-special-patterns-card {
    flex: 0 1 auto;
    width: 100%;
    max-width: 100%;
    margin: 0;
    min-width: 0;
}

.qimen-symbol-legend {
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0;
    padding: 0;
    gap: 0;
}

.qimen-symbol-legend:not([open]) {
    width: fit-content;
    max-width: 100%;
}

.qimen-symbol-legend__summary {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.38rem 0.46rem;
    cursor: pointer;
    list-style: none;
    user-select: none;
}

.qimen-symbol-legend__summary::-webkit-details-marker {
    display: none;
}

.qimen-symbol-legend__summary::marker {
    content: '';
}

.qimen-symbol-legend__summary::after {
    content: '';
    flex-shrink: 0;
    width: 0.42rem;
    height: 0.42rem;
    margin-left: auto;
    border-right: 2px solid #6b6154;
    border-bottom: 2px solid #6b6154;
    transform: rotate(45deg) translateY(-0.08rem);
    transition: transform 0.18s ease;
}

.qimen-symbol-legend[open] .qimen-symbol-legend__summary::after {
    transform: rotate(-135deg) translateY(0.06rem);
}

.qimen-symbol-legend__summary:focus-visible {
    outline: 2px solid rgba(200, 160, 100, 0.55);
    outline-offset: 2px;
    border-radius: 8px;
}

.qimen-symbol-legend__panel {
    padding: 0 0.46rem 0.42rem;
}

.qimen-symbol-legend__title {
    margin: 0;
    padding: 0;
    align-self: flex-start;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    color: #4a4236;
    line-height: 1.2;
}

.qimen-symbol-legend__list {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.14rem;
    width: auto;
}

.qimen-symbol-legend__row {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.06rem 0.14rem;
    font-size: 0.68rem;
    line-height: 1.35;
    color: #3a342c;
}

.qimen-symbol-legend__prefix {
    flex-shrink: 0;
    font-weight: 700;
    color: #5a5248;
}

.qimen-symbol-legend__suffix {
    font-size: 0.64rem;
    font-weight: 500;
    color: #6b6154;
}

.qimen-symbol-legend__kongwrap {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 0;
}

.qimen-symbol-legend__stem {
    font-size: 1.08rem;
    font-weight: 900;
    letter-spacing: 0.02em;
    color: #3a342c;
}

.qimen-symbol-legend .qimen-stem--wood,
.qimen-symbol-legend .qimen-stem--fire,
.qimen-symbol-legend .qimen-stem--earth,
.qimen-symbol-legend .qimen-stem--metal,
.qimen-symbol-legend .qimen-stem--water,
.qimen-symbol-legend .qimen-stem--default {
    color: #3a342c;
    text-shadow: none;
}

.qimen-symbol-legend__door {
    font-size: 1.02rem;
    font-weight: 800;
    color: #3a342c;
    line-height: 1.1;
}

/* 图例内复刻宫内：太极点暖底、击刑穿线、入墓框+点、门迫下划 */
.qimen-symbol-legend .qimen-stem--rigan,
.qimen-symbol-legend .qimen-stem--taiji {
    color: #3a2f21 !important;
    background: linear-gradient(180deg, #fffdf8 0%, #fff0dc 100%) !important;
    box-shadow:
        inset 0 0 0 1px rgba(230, 195, 150, 0.65),
        0 1px 2px rgba(58, 47, 33, 0.06) !important;
    border-radius: 4px;
    padding: 0.05em 0.16em;
}

.qimen-symbol-legend .qimen-stem-flag {
    display: inline-block;
    position: relative;
    line-height: 1;
    font-weight: 900;
}

.qimen-symbol-legend .qimen-stem-flag--rumu {
    border-radius: 0.22em;
    padding: 0.01em 0.12em 0.03em;
    color: #7a4c1f !important;
    background: transparent;
    border: 1.6px solid rgba(191, 134, 64, 0.92);
    box-shadow: none;
    text-shadow: none !important;
}

.qimen-symbol-legend .qimen-stem-flag--rumu::before {
    content: '';
    position: absolute;
    right: -0.08em;
    top: -0.08em;
    width: 0.24em;
    height: 0.24em;
    border-radius: 50%;
    background: rgba(191, 134, 64, 0.95);
}

.qimen-symbol-legend .qimen-stem-flag--jixing {
    padding: 0.01em 0.03em;
    color: #3a342c !important;
}

.qimen-symbol-legend .qimen-stem-flag--jixing::after {
    content: '';
    position: absolute;
    left: -0.02em;
    right: -0.02em;
    top: 50%;
    height: 1.6px;
    transform: translateY(-50%);
    background: rgba(198, 40, 40, 0.95);
    border-radius: 2px;
    pointer-events: none;
}

.qimen-symbol-legend .qimen-door-flag--menpo {
    text-decoration-line: underline;
    text-decoration-thickness: 2px;
    text-underline-offset: 0.12em;
    text-decoration-color: rgba(198, 40, 40, 0.95);
}

@media (max-width: 720px) {
    .qimen-special-patterns-and-legend {
        flex-direction: column;
    }

    .qimen-special-patterns-and-legend .qimen-special-patterns-card {
        flex: 1 1 auto;
        width: 100%;
        max-width: 100%;
    }

    .qimen-symbol-legend {
        flex: 1 1 auto;
        width: 100%;
        max-width: 100%;
    }
}

.qimen-chip {
    display: inline-flex;
    align-items: center;
    padding: 0.22rem 0.55rem;
    border-radius: 999px;
    font-size: 0.74rem;
    background: rgba(120, 108, 92, 0.09);
    color: #5a5248;
    border: 1px solid rgba(120, 108, 92, 0.14);
}

.qimen-chip__k {
    color: #3a342c;
    font-weight: 600;
}

.qimen-chip__sep {
    margin: 0 0.02em;
    color: #6b6154;
    font-weight: 500;
}

.qimen-chip__v {
    color: #5a5248;
    font-weight: 500;
}

/* 旬首 / 局数 / 值符 / 空亡：主信息条加大加粗 */
.qimen-chip.qimen-chip--prominent {
    font-size: 0.9rem;
    padding: 0.32rem 0.72rem;
    border-color: rgba(98, 76, 52, 0.22);
    background: rgba(120, 108, 92, 0.14);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.5),
        0 1px 2px rgba(42, 30, 18, 0.06);
}

.qimen-chip.qimen-chip--prominent .qimen-chip__k {
    font-weight: 800;
    font-size: 1.02em;
    letter-spacing: 0.03em;
    color: #2a2418;
}

.qimen-chip.qimen-chip--prominent .qimen-chip__v {
    font-weight: 800;
    font-size: 1.08em;
    color: #2e281f;
}

.qimen-chip.qimen-chip--prominent.qimen-chip--meta-role .qimen-chip__v {
    font-size: 1.08em;
}

/* 奇门九宫：宫格纸色 rgb(255,243,224)，格线略深、外框暖褐 */
.qimen-palace-grid {
    --qimen-palace-paper: rgb(255, 243, 224);
    --qimen-palace-gutter: rgb(228, 210, 186);
    --qimen-palace-rim: rgba(138, 112, 82, 0.32);
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: repeat(3, minmax(clamp(8.8rem, 16vw, 12.2rem), auto));
    gap: 1px;
    padding: 2px;
    width: min(100%, 46rem);
    margin-inline: auto;
    margin-bottom: 1rem;
    border-radius: 12px;
    background: var(--qimen-palace-gutter);
    box-shadow:
        0 10px 32px rgba(42, 30, 18, 0.09),
        0 0 0 1px var(--qimen-palace-rim),
        inset 0 1px 0 rgba(255, 252, 246, 0.85);
    /* 勿用 hidden，否则部分浏览器下宫内绝对定位旬空角标表现异常；外框圆角仍由子格背景铺满 */
    overflow: visible;
}

@media (max-width: 900px) {
    .qimen-palace-grid {
        width: 100%;
    }
}

.qimen-palace-cell {
    position: relative;
    border: none;
    border-radius: 0;
    padding: 0.38rem 0.42rem 0.42rem;
    background: var(--qimen-palace-paper, rgb(255, 243, 224));
    font-size: 0.7rem;
    line-height: 1.22;
    overflow: visible;
    min-height: clamp(8.8rem, 16vw, 12.2rem);
    display: flex;
    flex-direction: column;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4);
}

/* 四正宫：青龙、白虎、朱雀、玄武底纹（洛书 震三、兑七、离九、坎一）；层尺寸与单格一致，勿用负 inset 以免跨格 */
.qimen-palace-cell__beast {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    box-sizing: border-box;
    background-repeat: no-repeat;
    background-position: 50% 50%;
    background-size: cover;
    opacity: 0.07;
}

.qimen-palace-cell__beast--qinglong {
    background-image: url('images/qimen/qinglong.png');
}

.qimen-palace-cell__beast--baihu {
    background-image: url('images/qimen/baihu.png');
}

.qimen-palace-cell__beast--zhuque {
    background-image: url('images/qimen/zhuque.png');
}

.qimen-palace-cell__beast--xuanwu {
    background-image: url('images/qimen/xuanwu.png');
}

/* 本门三诈五假九遁：成格宫位略强调描边；格局名叠于格心，可读为主仍不压过门星干支 */
.qimen-palace-cell--school-pattern {
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.35),
        inset 0 0 0 1px rgba(212, 165, 95, 0.32);
}

/* 特殊格局层：须高于门星干，否则一字简写被盖住无法悬停 */
.qimen-palace-cell__pattern-layer {
    position: absolute;
    inset: 0;
    z-index: 6;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.35rem;
    pointer-events: none;
}

.qimen-palace-cell--school-pattern
    > :not(.qimen-palace-cell__beast):not(.qimen-palace-cell__pattern-layer):not(.qimen-palace-cell__marks):not(
        .qimen-palace-cell__kongwang-corner
    ) {
    position: relative;
    z-index: 1;
}

/* 宫内成格名：略提高对比，便于悬停看到特殊格局象意 */
.qimen-palace-cell__pattern-text {
    font-size: clamp(0.66rem, 1.9vw, 0.84rem);
    font-weight: 650;
    letter-spacing: 0.06em;
    line-height: 1.2;
    text-align: center;
    max-width: 94%;
    padding: 0.16rem 0.28rem;
    color: rgba(90, 58, 22, 0.26);
    text-shadow: none;
    white-space: nowrap;
    pointer-events: auto;
    position: relative;
    z-index: 7;
    cursor: help;
    border-radius: 4px;
}
.qimen-palace-cell__pattern-text:hover,
.qimen-palace-cell__pattern-text.is-xiangyi-active {
    color: rgba(90, 60, 20, 0.78);
    background: rgba(255, 248, 230, 0.42);
    text-shadow: none;
}

.qimen-tips-pattern-line {
    margin: 0 0 0.28rem;
    line-height: 1.45;
}
.qimen-tips-pattern-line:last-child {
    margin-bottom: 0;
}
.qimen-tips-pattern-name {
    cursor: help;
    border-bottom: 1px dashed rgba(140, 100, 40, 0.45);
}
.qimen-tips-pattern-name.is-xiangyi-active {
    color: #755125;
    font-weight: 700;
    background: rgba(201, 162, 39, 0.18);
    border-radius: 3px;
}

.qimen-palace-cell__marks {
    position: absolute;
    z-index: 2;
    left: 3px;
    top: 2px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    max-width: 42%;
    pointer-events: none;
}

/* 旬空（空亡）：各宫右上角标记 */
.qimen-palace-cell__kongwang-corner {
    position: absolute;
    z-index: 5;
    top: 2px;
    right: 3px;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
}

.qimen-palace-cell__kongwang-corner .qimen-kongwang-ring {
    width: 0.58rem;
    height: 0.58rem;
    border: 2px solid #3a342c;
    border-radius: 50%;
    box-sizing: border-box;
    opacity: 0.95;
    background: transparent;
}

.qimen-palace-cell:has(.qimen-palace-cell__sanmen-badges) {
    overflow: hidden;
}

/* 八神：宫内最上一条，水平居中（旬空圈已改至右上角） */
.qimen-palace-cell__spiritBand {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    flex-shrink: 0;
    margin: 0 0 0.18rem;
    padding-top: 0.04rem;
    min-height: 0;
}

.qimen-palace-cell__top {
    display: flex;
    flex-direction: row;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 0.35rem;
    width: 100%;
    margin-bottom: 0.1rem;
    min-height: 1.1rem;
}

.qimen-palace-cell__top .qimen-palace-cell__palace {
    flex: 1;
    min-width: 0;
    max-width: 100%;
}

.qimen-palace-cell__palace {
    color: #6b6154;
    font-size: 0.66rem;
    font-weight: 600;
    line-height: 1.2;
    padding-top: 1px;
    max-width: 100%;
}

/* 八神：spiritBand 内水平居中 */
.qimen-palace-cell__top-spirit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.28rem;
    flex-shrink: 0;
    max-width: 100%;
    flex-wrap: nowrap;
    min-width: 0;
}

.qimen-palace-cell__deity--di {
    font-size: 0.7rem !important;
    font-weight: 650 !important;
    color: rgba(107, 97, 84, 0.82) !important;
}

.qimen-palace-cell__di-spirit-foot {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
    line-height: 1.1;
}

.qimen-kongwang-ring {
    display: inline-block;
    width: 0.56rem;
    height: 0.56rem;
    flex-shrink: 0;
    border: 2px solid #3a342c;
    border-radius: 50%;
    box-sizing: border-box;
    opacity: 0.9;
    vertical-align: middle;
}

/* 八神：与九星同字号，置于 spiritBand 中上方 */
.qimen-palace-cell__deity--corner {
    flex-shrink: 1;
    margin-left: 0;
    margin-top: 0;
    max-width: 100%;
    min-width: 0;
    padding: 0;
    font-size: 0.86rem;
}

.qimen-palace-cell__body {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: stretch;
    gap: 0.35rem;
    flex: 1;
    margin: 0.08rem 0 0.16rem;
    min-height: 0;
}

.qimen-palace-cell__leftcol {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 0.18rem;
    flex: 1 1 46%;
    min-width: 0;
    min-height: 0;
}

.qimen-palace-cell__leftcol .qimen-palace-cell__door {
    align-self: flex-start;
    text-align: left;
    font-size: 1.08rem;
}

.qimen-palace-cell__leftcol .qimen-palace-cell__star {
    font-size: 1.08rem;
    font-weight: 800;
    line-height: 1.12;
}

.qimen-palace-cell__rightcol {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-end;
    gap: 0.32rem;
    flex: 0 0 48%;
    min-width: 0;
    padding: 0.06rem 0 0;
    border: none;
    border-radius: 0;
    background: none;
    box-shadow: none;
}

.qimen-palace-cell__dig {
    font-size: 1.38rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.02em;
}

/* 中宫：仅天盘一干，不排神门星；略深的纸色区分九宫心 */
.qimen-palace-cell--center {
    justify-content: flex-start;
    background: linear-gradient(165deg, rgb(255, 248, 232) 0%, rgb(252, 234, 208) 100%);
    box-shadow:
        inset 0 0 0 1px rgba(180, 152, 118, 0.22),
        inset 0 1px 0 rgba(255, 255, 255, 0.45);
}

/* 飞盘中五：与八宫同排神门星干支，仍用略深纸色标出宫心 */
.qimen-palace-cell--center-feipan {
    background: linear-gradient(165deg, rgb(255, 248, 232) 0%, rgb(252, 234, 208) 100%);
    box-shadow:
        inset 0 0 0 1px rgba(180, 152, 118, 0.22),
        inset 0 1px 0 rgba(255, 255, 255, 0.45);
}

/* 中宫天盘干居中，与八宫天干同字号 */
.qimen-palace-cell--center .qimen-palace-cell__centerStems {
    flex: 1;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    min-height: 3.2rem;
    padding: 0;
    border: none;
    border-radius: 0;
    background: none;
    box-shadow: none;
}

.qimen-palace-cell--center .qimen-palace-cell__centerStem {
    font-size: 1.38rem;
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: 0.04em;
}

/* 天干十二长生：标在干字上方 */
.qimen-stem-stack {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    gap: 0.08rem;
    line-height: 1;
    min-width: 0;
}

.qimen-stem-changsheng {
    display: block;
    font-size: 0.58rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.02em;
    color: #8a6a42;
    white-space: nowrap;
    user-select: none;
    opacity: 0.92;
}

/* 天盘干与地盘干同字号；寄干与主干支同行 */
.qimen-stem-row {
    display: inline-flex;
    flex-direction: row;
    align-items: flex-end;
    justify-content: flex-end;
    gap: 0.06em;
    flex-wrap: nowrap;
    font-size: 1.38rem;
}

.qimen-nest-inline {
    font-size: 1em;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.02em;
}

.qimen-stem-row .qimen-nest-inline,
.qimen-stem-row .qimen-palace-cell__stem,
.qimen-stem-row .qimen-palace-cell__dig {
    font-size: 1em;
    line-height: 1.05;
}

.qimen-fuqin-mark {
    margin-top: auto;
    padding-top: 0.14rem;
    font-size: 0.56rem;
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: 0.06em;
}

.qimen-fuqin-mark__fu,
.qimen-fuqin-mark__qin {
    color: rgba(120, 102, 78, 0.78);
}

.qimen-palace-cell__deity {
    flex-shrink: 0;
    max-width: 44%;
    padding: 0.12rem 0.28rem;
    border-radius: 5px;
    font-size: 0.64rem;
    font-weight: 700;
    line-height: 1.15;
    text-align: center;
    color: #fff;
    box-shadow: 0 1px 2px rgba(58, 47, 33, 0.12);
}

/* 宫内八神：与门、星同色纯文字；字号与九星八门一致 */
.qimen-palace-cell__deity.qimen-deity--text {
    max-width: none;
    padding: 0;
    border-radius: 0;
    background: none !important;
    box-shadow: none;
    color: #3a342c;
    font-weight: 800;
    font-size: 1.08rem;
    line-height: 1.12;
    text-align: center;
    letter-spacing: 0.02em;
}

/* 值符宫：八神「值符」二字标红（与天盘值符星同宫） */
.qimen-palace-cell__deity.qimen-deity--text.qimen-palace-cell__deity--zhifu-role {
    color: #c62828 !important;
    text-shadow: none;
}

.qimen-deity--ochre {
    background: linear-gradient(165deg, #c9a06a, #a67c3d);
    color: #fffef9;
}

.qimen-deity--blue {
    background: linear-gradient(165deg, #4a7ab8, #2d5599);
}

.qimen-deity--purple {
    background: linear-gradient(165deg, #7e6bd6, #5b4bb5);
}

.qimen-deity--orange {
    background: linear-gradient(165deg, #e0903a, #c45c26);
}

.qimen-deity--cyan {
    background: linear-gradient(165deg, #3aa89a, #267a6f);
}

.qimen-deity--teal {
    background: linear-gradient(165deg, #2f8fa8, #1d6f9c);
}

.qimen-deity--gold {
    background: linear-gradient(165deg, #d4b87a, #b8924a);
    color: #3a2f21;
}

.qimen-deity--rose {
    background: linear-gradient(165deg, #c95d7a, #a63d5c);
}

.qimen-deity--slate {
    background: linear-gradient(165deg, #7a7a88, #55555f);
}

/* 八神：宫内统一同一套配色（不随 deityTone 变化） */
.qimen-deity--spirit {
    background: linear-gradient(165deg, #6d6258, #4f453d);
    color: #fff9f2;
    box-shadow: 0 1px 2px rgba(42, 34, 26, 0.2);
}

.qimen-palace-cell__main {
    display: flex;
    justify-content: space-between;
    align-items: stretch;
    gap: 0.25rem 0.45rem;
    flex: 1;
    margin: 0.05rem 0 0.12rem;
}

.qimen-palace-cell__stemcol {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 0.12rem;
    min-width: 0;
}

.qimen-palace-cell__stem {
    font-size: 1.38rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.02em;
}

.qimen-stem--wood {
    color: #1b6e3f;
}

.qimen-stem--fire {
    color: #c41e1e;
}

.qimen-stem--earth {
    color: #a65f12;
}

.qimen-stem--metal {
    color: #5c4bb0;
}

.qimen-stem--water {
    color: #0f5f8a;
}

.qimen-stem--default {
    color: var(--text-primary, #3a2f21);
}

/* 奇门宫内：天盘干、地盘干、寄干、中宫干 — 与九星八门同色 */
.qimen-palace-cell .qimen-palace-cell__stem,
.qimen-palace-cell .qimen-palace-cell__dig,
.qimen-palace-cell .qimen-palace-cell__centerStem,
.qimen-palace-cell .qimen-nest-inline {
    color: #3a342c;
    text-shadow: none;
}

.qimen-palace-cell .qimen-stem--wood,
.qimen-palace-cell .qimen-stem--fire,
.qimen-palace-cell .qimen-stem--earth,
.qimen-palace-cell .qimen-stem--metal,
.qimen-palace-cell .qimen-stem--water,
.qimen-palace-cell .qimen-stem--default {
    color: #3a342c;
    text-shadow: none;
}

.qimen-palace-cell__star {
    font-size: 1.08rem;
    font-weight: 800;
    color: #3a342c;
    line-height: 1.12;
}

/* 值符所在宫：九星标红（提高优先级，避免被门五行色覆盖） */
.qimen-palace-cell .qimen-palace-cell__star.qimen-palace-cell__star--zhifu {
    color: #c62828 !important;
    font-weight: 900;
    text-shadow: none;
}

/* 值使所在宫：八门标红 */
.qimen-palace-cell .qimen-palace-cell__door.qimen-palace-cell__door--zhishi-role {
    color: #c62828 !important;
    font-weight: 900;
    text-shadow: none;
}

/* 太极点「我」：暖白色底标出（天地盘及中宫干） */
.qimen-palace-cell .qimen-stem--rigan,
.qimen-palace-cell .qimen-stem--taiji {
    color: #3a2f21 !important;
    background: linear-gradient(180deg, #fffdf8 0%, #fff0dc 100%) !important;
    box-shadow:
        inset 0 0 0 1px rgba(230, 195, 150, 0.65),
        0 1px 2px rgba(58, 47, 33, 0.06) !important;
    border-radius: 4px;
    padding: 0.05em 0.16em;
}

/* 三类标记分开表现：入墓=深色框，击刑=字中横线，门迫=下划线 */
.qimen-palace-cell .qimen-stem-flag {
    display: inline-block;
    position: relative;
    line-height: 1;
    font-weight: 900;
}

.qimen-palace-cell .qimen-stem-flag--rumu {
    border-radius: 0.22em;
    padding: 0.01em 0.12em 0.03em;
    color: #7a4c1f !important;
    background: transparent;
    border: 1.6px solid rgba(191, 134, 64, 0.92);
    box-shadow: none;
    text-shadow: none !important;
}

/* 小角点：入墓视觉锚点，区别于日干高亮 */
.qimen-palace-cell .qimen-stem-flag--rumu::before {
    content: '';
    position: absolute;
    right: -0.08em;
    top: -0.08em;
    width: 0.24em;
    height: 0.24em;
    border-radius: 50%;
    background: rgba(191, 134, 64, 0.95);
}

/* 同时命中太极点+入墓时，入墓样式优先，不走暖白底 */
.qimen-palace-cell .qimen-stem--rigan.qimen-stem-flag--rumu,
.qimen-palace-cell .qimen-stem--taiji.qimen-stem-flag--rumu {
    background: transparent !important;
    box-shadow: none !important;
    color: #7a4c1f !important;
}

.qimen-palace-cell .qimen-stem-flag--jixing {
    padding: 0.01em 0.03em;
    color: #3a342c !important;
}

.qimen-palace-cell .qimen-stem-flag--jixing::after {
    content: '';
    position: absolute;
    left: -0.02em;
    right: -0.02em;
    top: 50%;
    height: 1.6px;
    transform: translateY(-50%);
    background: rgba(198, 40, 40, 0.95);
    border-radius: 2px;
    pointer-events: none;
}

.qimen-palace-cell .qimen-door-flag--menpo {
    text-decoration-line: underline;
    text-decoration-thickness: 2px;
    text-underline-offset: 0.12em;
    text-decoration-color: rgba(198, 40, 40, 0.95);
}

/* 天三门 / 地四户（《武侯千金诀》方位高亮） */
.qimen-palace-cell--tiansanmen {
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.35),
        inset 0 0 0 1.5px rgba(16, 140, 95, 0.5);
}

.qimen-palace-cell--disihu:not(.qimen-palace-cell--tiansanmen) {
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.35),
        inset 0 0 0 1.5px rgba(180, 110, 30, 0.48);
}

.qimen-palace-cell--tiansanmen.qimen-palace-cell--disihu {
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.35),
        inset 0 0 0 1.5px rgba(16, 140, 95, 0.5),
        inset 0 0 0 3px rgba(180, 110, 30, 0.32);
}

.qimen-palace-cell__sanmen-badges {
    position: absolute;
    top: 0.14rem;
    right: 0.14rem;
    bottom: auto;
    left: auto;
    z-index: 6;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.1rem;
    max-width: 48%;
    pointer-events: none;
}

/* 有空亡圈（右上）时，天门/地户下移，避免压住空亡 */
.qimen-palace-cell:has(.qimen-palace-cell__kongwang-corner) .qimen-palace-cell__sanmen-badges {
    top: 0.78rem;
}

/* 马星在左上 marks：天门/地户固定靠右，绝不占左 */
.qimen-palace-cell:has(.qimen-palace-cell__marks) .qimen-palace-cell__sanmen-badges {
    left: auto;
    right: 0.14rem;
    align-items: flex-end;
}

.qimen-palace-cell__sanmen-badge {
    display: inline-block;
    font-size: 0.56rem;
    font-weight: 750;
    line-height: 1.15;
    letter-spacing: 0.04em;
    padding: 0.05em 0.26em;
    border-radius: 4px;
    white-space: nowrap;
    background-clip: padding-box;
}

.qimen-palace-cell__sanmen-badge--tian {
    color: #0d6b48;
    background: rgba(32, 160, 110, 0.18);
    box-shadow: inset 0 0 0 1px rgba(16, 140, 95, 0.55);
}

.qimen-palace-cell__sanmen-badge--di {
    color: #8a5410;
    background: rgba(212, 150, 55, 0.2);
    box-shadow: inset 0 0 0 1px rgba(180, 110, 30, 0.55);
}

.qimen-symbol-legend .qimen-door-flag--tiansanmen,
.qimen-symbol-legend .qimen-stem-flag--disihu {
    display: inline-block;
    font-size: 0.62rem;
    font-weight: 750;
    padding: 0.06em 0.28em;
    border-radius: 4px;
}

.qimen-symbol-legend .qimen-door-flag--tiansanmen {
    color: #0d6b48;
    background: rgba(32, 160, 110, 0.18);
    box-shadow: inset 0 0 0 1px rgba(16, 140, 95, 0.55);
}

.qimen-symbol-legend .qimen-stem-flag--disihu {
    color: #8a5410;
    background: rgba(212, 150, 55, 0.2);
    box-shadow: inset 0 0 0 1px rgba(180, 110, 30, 0.55);
}

.qimen-liuren-outer-cell--tiansanmen,
.qimen-jianchu-outer-cell--tiansanmen {
    box-shadow: inset 0 0 0 1.5px rgba(16, 140, 95, 0.7);
    background: rgba(32, 160, 110, 0.12);
}

.qimen-liuren-outer-cell--disihu,
.qimen-jianchu-outer-cell--disihu {
    box-shadow: inset 0 0 0 1.5px rgba(180, 110, 30, 0.7);
    background: rgba(212, 150, 55, 0.14);
}

.qimen-liuren-outer-cell--tiansanmen.qimen-liuren-outer-cell--disihu,
.qimen-jianchu-outer-cell--tiansanmen.qimen-jianchu-outer-cell--disihu {
    box-shadow:
        inset 0 0 0 1.5px rgba(16, 140, 95, 0.7),
        inset 0 0 0 3px rgba(180, 110, 30, 0.4);
    background: linear-gradient(135deg, rgba(32, 160, 110, 0.14), rgba(212, 150, 55, 0.14));
}

/* 上方 meta 条：值符 / 值使 数值红色 */
.qimen-chip.qimen-chip--meta-role .qimen-chip__v {
    color: #b71c1c !important;
    font-weight: 800;
}

.qimen-palace-cell__door {
    align-self: center;
    font-size: 1.08rem;
    font-weight: 800;
    line-height: 1.12;
    text-align: right;
    flex-shrink: 0;
}

/* 宫内八门：与九星同色（不在宫内用五行色区分） */
.qimen-palace-cell .qimen-palace-cell__door[class*='qimen-door--'] {
    color: #3a342c;
}

.qimen-door--green {
    color: #1b6e3f;
}

.qimen-door--orange {
    color: #d35400;
}

.qimen-door--purple {
    color: #6b3fa0;
}

.qimen-door--gold {
    color: #b8860b;
}

.qimen-door--cyan {
    color: #1a7a6c;
}

.qimen-door--blue {
    color: #1d5a9e;
}

.qimen-door--brown {
    color: #7a4a1a;
}

.qimen-door--red {
    color: #b83232;
}

.qimen-door--slate {
    color: #4a4a55;
}

.qimen-palace-cell__foot {
    display: flex;
    justify-content: center;
    align-items: flex-end;
    gap: 0.3rem;
    margin-top: auto;
    padding-top: 0.14rem;
    min-height: 0.84rem;
}

.qimen-palace-cell__hidden {
    font-size: 0.58rem;
    color: #6b6154;
    font-weight: 600;
    letter-spacing: 0.02em;
    line-height: 1.1;
    white-space: nowrap;
}

.qimen-palace-cell__hidden.qimen-hidden-stem--off {
    visibility: hidden;
}

.qimen-palace-cell__omen {
    font-size: 0.6rem;
    font-weight: 700;
    text-align: right;
    max-width: 58%;
    line-height: 1.25;
}

.qimen-omen--green {
    color: #1b6e3f;
}

.qimen-omen--orange {
    color: #c45c26;
}

.qimen-omen--purple {
    color: #6b3fa0;
}

.qimen-omen--blue {
    color: #1d5a9e;
}

.qimen-omen--red {
    color: #b83232;
}

.qimen-omen--gold {
    color: #9a7229;
}

.qimen-omen--slate {
    color: #5a5248;
}

.qimen-palace-cell__badge {
    font-size: 0.52rem;
    padding: 0.06rem 0.18rem;
    border-radius: 3px;
    line-height: 1.2;
    font-weight: 700;
}

.qimen-palace-cell__badge--zhifu,
.qimen-palace-cell__badge--zhishi {
    background: rgba(224, 24, 24, 0.14);
    color: #e01818;
    border: 1px solid #e01818;
    box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.12);
}

.qimen-palace-cell__tag {
    font-size: 0.52rem;
    font-weight: 700;
    color: #d81b72;
    line-height: 1.2;
    text-shadow: 0 0 0 rgba(255, 255, 255, 0.8);
}

.qimen-dot--wood {
    background: #2d6a4f;
}

.qimen-dot--fire {
    background: #c1121f;
}

.qimen-dot--earth {
    background: #bc6c25;
}

.qimen-dot--metal {
    background: #6c5ce7;
}

.qimen-dot--water {
    background: #1d6f9c;
}

.qimen-result-bottom {
    display: block;
    margin-bottom: 1rem;
}

.qimen-result-layout {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-top: 0.35rem;
}

.qimen-result-board-wrap {
    position: relative;
    min-width: 0;
    width: 100%;
}

.qimen-result-left {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    min-width: 0;
}

.qimen-result-right {
    min-width: 0;
}

/* 手机端奇门活盘：九宫优先展示；避免 display:contents（iOS Safari 会导致九宫不渲染） */
@media (max-width: 991px) {
    .main-inner.view-qimen.has-qimen-result .qimen-result-layout {
        display: flex;
        flex-direction: column;
        gap: 0.75rem;
    }

    .main-inner.view-qimen.has-qimen-result .qimen-result-left,
    .main-inner.view-qimen.has-qimen-result .qimen-result-right,
    .main-inner.view-qimen.has-qimen-result .qimen-special-patterns-and-legend {
        display: flex;
        flex-direction: column;
        gap: 0.65rem;
        width: 100%;
        min-width: 0;
    }

    .main-inner.view-qimen.has-qimen-result .qimen-result-right {
        order: 1;
    }

    .main-inner.view-qimen.has-qimen-result .qimen-result-left {
        order: 2;
    }

    .main-inner.view-qimen.has-qimen-result #qimenSpecialPatternsCard,
    .main-inner.view-qimen.has-qimen-result #qimenLiurenMetaMount,
    .main-inner.view-qimen.has-qimen-result #qimenLiurenSikeChuanMount,
    .main-inner.view-qimen.has-qimen-result #qimenGridComposite,
    .main-inner.view-qimen.has-qimen-result #qimenResultSettingsRow,
    .main-inner.view-qimen.has-qimen-result .qimen-result-question-field,
    .main-inner.view-qimen.has-qimen-result .qimen-result-actions,
    .main-inner.view-qimen.has-qimen-result .qimen-copy-hint,
    .main-inner.view-qimen.has-qimen-result #qimenSymbolLegend {
        order: unset;
    }

    .main-inner.view-qimen.has-qimen-result #qimenSpecialPatternsCard {
        flex: 1 1 auto;
        width: 100%;
        max-width: 100%;
    }

    .main-inner.view-qimen.has-qimen-result #qimenSymbolLegend {
        width: 100%;
        max-width: 100%;
    }

    .main-inner.view-qimen.has-qimen-result #qimenGridComposite {
        width: 100%;
        max-width: 100%;
    }

    .main-inner.view-qimen.has-qimen-result #qimenGridComposite .qimen-palace-grid {
        margin-bottom: 0;
    }

    .main-inner.view-qimen.has-qimen-result .qimen-ring-stack .qimen-palace-grid {
        height: auto;
    }

    .main-inner.view-qimen.has-qimen-result #qimenGridComposite:not(.qimen-grid-composite--outer) .qimen-palace-grid,
    .main-inner.view-qimen.has-qimen-result
        .qimen-ring-stack:not(.qimen-ring-stack--liuren):not(.qimen-ring-stack--jianchu)
        .qimen-palace-grid {
        width: 100%;
        max-width: 100%;
        grid-template-rows: repeat(3, minmax(4.55rem, auto));
    }

    /* 六壬/建神外圈：iOS 不用 display:contents，改用 subgrid 参与同心布局 */
    .qimen-liuren-outer-ring:not([hidden]),
    .qimen-jianchu-outer-ring:not([hidden]) {
        display: grid;
        grid-column: 1 / -1;
        grid-row: 1 / -1;
        grid-template-columns: subgrid;
        grid-template-rows: subgrid;
        pointer-events: none;
    }
}

@supports not (grid-template-columns: subgrid) {
    @media (max-width: 991px) {
        /* 不支持 subgrid 的旧版 iOS：隐藏外圈，保证九宫本体可见 */
        .qimen-liuren-outer-ring,
        .qimen-jianchu-outer-ring {
            display: none !important;
        }

        .qimen-grid-composite--outer .qimen-ring-stack--liuren:not(.qimen-ring-stack--jianchu),
        .qimen-grid-composite--outer .qimen-ring-stack--liuren.qimen-ring-stack--jianchu,
        .qimen-grid-composite--outer .qimen-ring-stack--jianchu:not(.qimen-ring-stack--liuren) {
            display: block;
            width: 100%;
            max-width: 100%;
            aspect-ratio: unset;
            height: auto;
        }

        .qimen-grid-composite--outer .qimen-ring-stack--liuren .qimen-palace-grid,
        .qimen-grid-composite--outer .qimen-ring-stack--jianchu .qimen-palace-grid {
            grid-column: auto;
            grid-row: auto;
            width: 100%;
            height: auto;
            grid-template-rows: repeat(3, minmax(4.55rem, auto));
        }
    }
}

/* 奇门遁甲 — 手机端：可滚动，九宫用内容高度（勿再 flex 压扁） */
@media (max-width: 719px) {
    body:has(.main-inner.view-qimen.has-qimen-result) {
        overflow: auto;
    }

    body:has(.main-inner.view-qimen.has-qimen-result) .main {
        padding: 0.35rem 0.4rem 0 !important;
        overflow: visible;
    }

    .main-inner.view-qimen.has-qimen-result {
        height: auto !important;
        max-height: none !important;
        overflow: visible !important;
        display: flex;
        flex-direction: column;
        padding-bottom: calc(var(--ziwei-mobile-nav-h, 4.6rem) + env(safe-area-inset-bottom, 0px) + 0.35rem);
    }

    .main-inner.view-qimen.has-qimen-result #mainContentGrid,
    .main-inner.view-qimen.has-qimen-result #baziPaipanStack {
        flex: 0 1 auto;
        min-height: 0;
        height: auto !important;
        max-height: none !important;
        overflow: visible !important;
    }

    .main-inner.view-qimen.has-qimen-result #qimenResultShell.qimen-result-shell {
        flex: 1 1 auto !important;
        min-height: calc(
            100dvh - 3.4rem - var(--ziwei-mobile-nav-h, 4.6rem) - env(safe-area-inset-bottom, 0px) - 0.7rem
        ) !important;
        height: auto !important;
        max-height: none !important;
        overflow: visible !important;
        display: flex !important;
        flex-direction: column !important;
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
        border-radius: 18px !important;
        padding: 0.55rem 0.55rem 0.65rem !important;
        gap: 0.35rem !important;
        box-shadow:
            0 8px 28px rgba(42, 30, 18, 0.1),
            0 1px 0 rgba(255, 255, 255, 0.75) inset;
    }

    .main-inner.view-qimen.has-qimen-result .qimen-result-shell__head {
        flex: 0 0 auto;
        padding-bottom: 0.1rem;
    }

    .main-inner.view-qimen.has-qimen-result .qimen-result-shell__head .result-shell-title {
        font-size: 0.88rem;
    }

    .main-inner.view-qimen.has-qimen-result .qimen-result-shell__pillars-panel {
        flex: 0 0 auto;
        margin: 0 0 0.12rem !important;
        padding: 0.22rem 0.28rem 0.24rem !important;
        gap: 0.14rem !important;
    }

    /* 手机端盘式：转盘 / 飞盘 / 阴盘 同一行等宽；并显示外盘开关（下方设置区被隐藏） */
    .main-inner.view-qimen.has-qimen-result .qimen-pan-style-beside {
        width: 100% !important;
        min-width: 0 !important;
        margin-top: 0.2rem;
    }

    .main-inner.view-qimen.has-qimen-result .qimen-pan-style-beside > .qimen-inline-settings__label {
        text-align: left;
        margin-bottom: 0.28rem;
        font-size: 0.78rem;
    }

    .main-inner.view-qimen.has-qimen-result .qimen-pan-style-beside .qimen-segment-row--pan {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        flex-direction: unset !important;
        flex-wrap: nowrap !important;
        align-items: stretch !important;
        gap: 0.32rem !important;
    }

    .main-inner.view-qimen.has-qimen-result .qimen-pan-style-beside .qimen-segment-row--pan .qimen-segment-btn {
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        flex: none !important;
        padding: 0.42rem 0.2rem !important;
        font-size: 0.8rem !important;
        text-align: center;
    }

    .main-inner.view-qimen.has-qimen-result .qimen-outer-compact {
        display: block !important;
        margin-top: 0.45rem;
    }

    .main-inner.view-qimen.has-qimen-result .qimen-outer-compact__label {
        display: block;
        text-align: left;
        margin-bottom: 0.28rem;
        font-size: 0.78rem;
    }

    .main-inner.view-qimen.has-qimen-result .qimen-segment-row--outer {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 0.32rem !important;
    }

    .main-inner.view-qimen.has-qimen-result .qimen-segment-row--outer .qimen-segment-btn {
        width: 100% !important;
        min-width: 0 !important;
        flex: none !important;
        padding: 0.42rem 0.2rem !important;
        font-size: 0.8rem !important;
        text-align: center;
    }

    .main-inner.view-qimen.has-qimen-result #qimenInlineSettingsRow,
    .main-inner.view-qimen.has-qimen-result .metaphysics-result-header-grid__setup {
        display: none !important;
    }

    .main-inner.view-qimen.has-qimen-result .metaphysics-result-header-grid {
        display: block;
    }

    .main-inner.view-qimen.has-qimen-result .metaphysics-result-header-grid__pillars {
        width: 100%;
    }

    .main-inner.view-qimen.has-qimen-result .metaphysics-result-header-grid__pillars .qimen-result-pillars-row {
        justify-content: center;
    }

    .main-inner.view-qimen.has-qimen-result .qimen-result-shell__meta {
        margin-bottom: 0.18rem;
        font-size: 0.66rem;
    }

    .main-inner.view-qimen.has-qimen-result .qimen-result-pillar-gz {
        font-size: 0.88rem;
    }

    .main-inner.view-qimen.has-qimen-result .qimen-meta-chips--in-pillars .qimen-chip {
        font-size: 0.58rem;
        padding: 0.14rem 0.32rem;
    }

    .main-inner.view-qimen.has-qimen-result .qimen-result-layout {
        flex: 0 0 auto !important;
        min-height: auto !important;
        overflow: visible !important;
        display: flex !important;
        flex-direction: column;
        margin-top: 0.15rem;
        gap: 0.45rem;
        order: 2;
    }

    .main-inner.view-qimen.has-qimen-result .qimen-result-shell__pillars-panel {
        order: 1;
    }

    .main-inner.view-qimen.has-qimen-result #qimenMatterBarMount {
        order: 3;
        flex: 0 0 auto;
        display: block !important;
        margin-top: 0.25rem;
    }

    .main-inner.view-qimen.has-qimen-result #qimenResultShell > .compliance-note {
        order: 4;
    }

    .main-inner.view-qimen.has-qimen-result #qimenSpecialPatternsCard,
    .main-inner.view-qimen.has-qimen-result #qimenSymbolLegend {
        display: none !important;
    }

    /* 手机端：提问区在九宫与克应/象意之间（由 JS 插入） */
    .main-inner.view-qimen.has-qimen-result .qimen-result-ask-block {
        display: flex !important;
        flex-direction: column;
        gap: 0.55rem;
        width: 100%;
        order: 2;
        margin: 0.15rem 0 0.35rem;
    }

    .main-inner.view-qimen.has-qimen-result .qimen-result-question-field,
    .main-inner.view-qimen.has-qimen-result .qimen-result-actions,
    .main-inner.view-qimen.has-qimen-result .qimen-copy-hint {
        display: grid !important;
        width: 100%;
    }

    .main-inner.view-qimen.has-qimen-result .qimen-result-actions {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 0.35rem;
    }

    .main-inner.view-qimen.has-qimen-result .qimen-result-actions:not(.qimen-result-actions--save-only) .paipan-result-datetime-btn,
    .main-inner.view-qimen.has-qimen-result .qimen-result-actions:not(.qimen-result-actions--save-only) .qimen-action-btn,
    .main-inner.view-qimen.has-qimen-result .qimen-result-actions:not(.qimen-result-actions--save-only) .primary-btn,
    .main-inner.view-qimen.has-qimen-result .qimen-result-actions:not(.qimen-result-actions--save-only) .qimen-sheet-btn {
        flex: 1 1 calc(50% - 0.2rem) !important;
        width: calc(50% - 0.2rem) !important;
        min-width: calc(50% - 0.2rem) !important;
        max-width: calc(50% - 0.2rem) !important;
        white-space: normal !important;
    }

    .main-inner.view-qimen.has-qimen-result .qimen-result-actions--save-only .qimen-action-btn,
    .main-inner.view-qimen.has-qimen-result .qimen-result-actions--save-only .primary-btn {
        flex: 0 1 auto !important;
        width: auto !important;
        min-width: 7.5rem !important;
        max-width: 14rem !important;
        white-space: nowrap !important;
    }

    .main-inner.view-qimen.has-qimen-result .qimen-copy-hint {
        display: block !important;
        margin: 0;
    }

    .main-inner.view-qimen.has-qimen-result .qimen-result-right {
        display: flex !important;
        flex-direction: column !important;
        width: 100% !important;
        min-height: auto !important;
        height: auto !important;
        overflow: visible !important;
        gap: 0.45rem;
    }

    .main-inner.view-qimen.has-qimen-result .qimen-board-keying-row {
        display: flex !important;
        flex-direction: column !important;
        order: 1;
        width: 100% !important;
        min-height: auto !important;
        height: auto !important;
        overflow: visible !important;
        gap: 0.45rem;
    }

    .main-inner.view-qimen.has-qimen-result #qimenGridComposite {
        order: 1;
    }

    .main-inner.view-qimen.has-qimen-result .qimen-board-keying-row > .qimen-result-ask-block {
        order: 2;
    }

    .main-inner.view-qimen.has-qimen-result #qimenKeyingPanel {
        order: 3;
        width: 100%;
    }

    /* 神煞 / 课体 / 三传 / 四课：九宫上方笔记式整块 */
    .main-inner.view-qimen.has-qimen-result #qimenLiurenMetaMount:not([hidden]) {
        display: block !important;
        order: 0;
        width: 100%;
        margin: 0 0 0.45rem;
    }

    .main-inner.view-qimen.has-qimen-result #qimenLiurenSikeChuanMount {
        display: none !important;
    }

    .main-inner.view-qimen.has-qimen-result #qimenLiurenMetaMount .qimen-liuren-nb {
        border-radius: 10px;
    }

    .main-inner.view-qimen.has-qimen-result #qimenLiurenMetaMount .qimen-liuren-nb__ss-grid {
        font-size: 0.74rem;
        line-height: 1.35;
    }

    .main-inner.view-qimen.has-qimen-result #qimenLiurenMetaMount .qimen-liuren-nb__keti-body {
        font-size: 0.92rem !important;
    }

    .main-inner.view-qimen.has-qimen-result #qimenLiurenMetaMount .qimen-liuren-nb__sike-body .liuren-qkbj__sike-grid,
    .main-inner.view-qimen.has-qimen-result #qimenLiurenMetaMount .qimen-liuren-nb__chuan-body {
        font-size: 0.82rem;
        line-height: 1.4;
    }

    /* 天地盘初中末：角标加大加底，避免看不清 */
    .main-inner.view-qimen.has-qimen-result .qimen-ring-stack--liuren .qimen-liuren-outer-cell__mark {
        position: absolute;
        top: -0.08rem;
        right: -0.08rem;
        z-index: 2;
        min-width: 1.05rem;
        height: 1.05rem;
        padding: 0 0.16rem;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border-radius: 999px;
        font-size: 0.62rem !important;
        font-weight: 800;
        letter-spacing: 0;
        line-height: 1;
        color: #5a3208 !important;
        background: linear-gradient(180deg, #ffe7b0, #f0c56a);
        border: 1px solid rgba(180, 110, 30, 0.55);
        box-shadow: 0 1px 3px rgba(80, 50, 10, 0.22);
    }

    .main-inner.view-qimen.has-qimen-result #qimenGridComposite,
    .main-inner.view-qimen.has-qimen-result #qimenGridComposite.qimen-grid-composite--outer {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        min-height: auto !important;
        height: auto !important;
        overflow: visible !important;
        flex: none !important;
        margin-inline: auto;
    }

    .main-inner.view-qimen.has-qimen-result #qimenGridComposite .qimen-grid-composite-inner {
        display: flex !important;
        justify-content: center !important;
        width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
        overflow: visible !important;
    }

    /* 无外盘：九宫普通块级排布 */
    .main-inner.view-qimen.has-qimen-result
        .qimen-ring-stack:not(.qimen-ring-stack--liuren):not(.qimen-ring-stack--jianchu) {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        max-height: none !important;
        aspect-ratio: unset !important;
        margin-inline: auto;
    }

    /* 有外盘/建神：保持同心 grid，避免外圈被裁切 */
    .main-inner.view-qimen.has-qimen-result .qimen-ring-stack--liuren,
    .main-inner.view-qimen.has-qimen-result .qimen-ring-stack--jianchu {
        display: grid !important;
        overflow: visible !important;
        max-height: none !important;
        margin-inline: auto;
    }

    .main-inner.view-qimen.has-qimen-result
        .qimen-ring-stack:not(.qimen-ring-stack--liuren):not(.qimen-ring-stack--jianchu)
        .qimen-palace-grid,
    .main-inner.view-qimen.has-qimen-result
        #qimenGridComposite:not(.qimen-grid-composite--outer)
        .qimen-palace-grid {
        display: grid !important;
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        min-height: 18.5rem !important;
        margin: 0 auto !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        grid-template-rows: repeat(3, minmax(clamp(7.4rem, 28vw, 9.6rem), auto)) !important;
    }

    .main-inner.view-qimen.has-qimen-result
        #qimenGridComposite:not(.qimen-grid-composite--outer)
        .qimen-palace-cell {
        min-height: clamp(7.4rem, 28vw, 9.6rem) !important;
    }
}

.qimen-liuren-meta {
    margin-bottom: 0.55rem;
}

/* 奇门·六壬：左神煞+课体 · 右三传+四课 */
.qimen-liuren-nb {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
    gap: 0;
    width: 100%;
    box-sizing: border-box;
    border-radius: 10px;
    background: rgba(255, 248, 236, 0.96);
    border: 1px solid rgba(180, 152, 118, 0.38);
    color: #2a2214;
    font-family: 'Noto Serif SC', 'Source Han Serif SC', 'Songti SC', 'SimSun', serif;
    overflow: hidden;
}

.qimen-liuren-nb__col {
    min-width: 0;
    display: flex;
    flex-direction: column;
    padding: 0.5rem 0.6rem 0.55rem;
    box-sizing: border-box;
}

.qimen-liuren-nb__col--left {
    border-right: 1px solid rgba(160, 130, 90, 0.28);
}

.qimen-liuren-nb__col--right {
    gap: 0.45rem;
}

.qimen-liuren-nb__shensha {
    margin: 0;
    padding: 0;
    border: none;
    flex: 1 1 auto;
}

.qimen-liuren-nb__ss-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 0.28rem 0.45rem;
    font-size: 0.78rem;
    line-height: 1.4;
}

.qimen-liuren-nb__keti {
    margin-top: auto;
    padding-top: 0.45rem;
    border-top: 1px solid rgba(160, 130, 90, 0.22);
    text-align: center;
}

.qimen-liuren-nb__keti-h {
    text-align: center !important;
    letter-spacing: 0.16em !important;
    margin-bottom: 0.18rem !important;
    font-size: 0.74rem !important;
}

.qimen-liuren-nb__keti-body {
    text-align: center !important;
    font-size: 1rem !important;
    font-weight: 800;
    letter-spacing: 0.14em;
    color: #3d3224;
    margin: 0 !important;
    line-height: 1.45;
}

.qimen-liuren-nb__chuan,
.qimen-liuren-nb__sike {
    margin: 0;
    padding: 0;
    border: none;
}

.qimen-liuren-nb__chuan {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.qimen-liuren-nb__sike {
    padding-top: 0.4rem;
    border-top: 1px solid rgba(160, 130, 90, 0.2);
}

.qimen-liuren-nb__sec-h {
    text-align: left !important;
    letter-spacing: 0.16em !important;
    margin-bottom: 0.28rem !important;
    font-size: 0.74rem !important;
}

.qimen-liuren-nb__chuan .qimen-liuren-nb__sec-h {
    text-align: center !important;
    width: 100%;
}

.qimen-liuren-nb__sike-body .liuren-qkbj__sike-grid {
    max-width: min(15.5rem, 100%);
    margin: 0 auto;
    font-size: 0.95rem;
}

.qimen-liuren-nb__chuan-body {
    display: flex;
    flex-direction: column;
    gap: 0.22rem;
    align-items: center;
    justify-content: center;
    width: max-content;
    max-width: 100%;
    margin: 0 auto;
    font-size: 0.9rem;
}

.qimen-liuren-nb__chuan-body .liuren-qkbj__chuan-row {
    justify-content: center;
    gap: 0.55rem;
    width: 100%;
}

.qimen-liuren-sike-chuan {
    display: none !important;
}

@media (max-width: 720px) {
    .qimen-liuren-nb {
        grid-template-columns: 1fr;
    }

    .qimen-liuren-nb__col--left {
        border-right: none;
        border-bottom: 1px solid rgba(160, 130, 90, 0.28);
    }

    .qimen-liuren-nb__keti {
        margin-top: 0.45rem;
    }

    .qimen-liuren-nb__ss-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}

.qimen-liuren-meta__inner {
    padding: 0.55rem 0.65rem;
    border-radius: 10px;
    background: rgba(255, 248, 236, 0.92);
    border: 1px solid rgba(180, 152, 118, 0.35);
}

.qimen-liuren-meta .liuren-qkbj__block--shensha {
    margin-bottom: 0.45rem;
}

.qimen-liuren-meta .liuren-qkbj__block--geju {
    margin-bottom: 0;
    padding-top: 0.4rem;
    border-top: 1px solid rgba(180, 152, 118, 0.28);
}

.qimen-liuren-meta .liuren-qkbj__block--shensha:only-child,
.qimen-liuren-meta .liuren-qkbj__block--geju:only-child {
    padding-top: 0;
    border-top: none;
    margin-bottom: 0;
}

.qimen-liuren-meta .liuren-qkbj__ss-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.28rem 0.35rem;
}

.qimen-liuren-meta .liuren-qkbj__h {
    font-size: 0.78rem;
    margin-bottom: 0.32rem;
}

.qimen-liuren-meta .liuren-qkbj__h--shensha {
    text-align: left;
}

.qimen-liuren-meta .liuren-qkbj__geju {
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-align: center;
    margin-bottom: 0;
}

@media (max-width: 480px) {
    .qimen-liuren-meta .liuren-qkbj__ss-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

.qimen-liuren-sike-chuan__inner {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem 1rem;
    align-items: flex-start;
    padding: 0.55rem 0.65rem;
    border-radius: 10px;
    background: rgba(255, 248, 236, 0.92);
    border: 1px solid rgba(180, 152, 118, 0.35);
}

.qimen-liuren-sike-chuan__block {
    min-width: 0;
    flex: 1 1 8.5rem;
}

.qimen-liuren-sike-chuan__h {
    margin: 0 0 0.35rem;
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--text-secondary, #5c5346);
}

.qimen-liuren-sike-chuan__body .liuren-qkbj__sike-grid {
    font-size: 0.82rem;
}

.qimen-liuren-sike-chuan__body.liuren-qkbj__sanchuan {
    display: grid;
    gap: 0.2rem;
}

.qimen-liuren-sike-chuan__empty {
    font-size: 0.82rem;
    color: var(--text-secondary, #5c5346);
}

.qimen-grid-composite {
    position: relative;
    width: min(100%, 46rem);
    margin-inline: auto;
}

.qimen-grid-composite-inner {
    min-width: 0;
    min-height: 0;
}

/* 同心分圈：九宫居中 → 六壬外盘 → 十二建神，互不叠压 */
.qimen-grid-composite--outer {
    display: block;
    width: auto;
    max-width: 100%;
    margin-inline: auto;
    aspect-ratio: unset;
    height: auto;
}

.qimen-grid-composite--outer .qimen-grid-composite-inner {
    width: auto;
    height: auto;
}

.qimen-ring-stack {
    display: grid;
    margin-inline: auto;
    --qimen-core-max: 26rem;
    --qimen-core-max-vh: 52vh;
    --qimen-core-col: 1fr;
    /* 外盘环带略加宽：给天将+地支两行字留空隙，避免叠字 */
    --qimen-liuren-band: 2.45rem;
    --qimen-jianchu-band: 1.2rem;
    --qimen-stack-liuren-extra: calc(2 * var(--qimen-liuren-band));
    --qimen-stack-jianchu-extra: calc(2 * var(--qimen-jianchu-band));
}

.qimen-ring-stack--liuren:not(.qimen-ring-stack--jianchu) {
    grid-template-columns:
        var(--qimen-liuren-band) var(--qimen-core-col) var(--qimen-core-col) var(--qimen-core-col)
        var(--qimen-liuren-band);
    grid-template-rows:
        var(--qimen-liuren-band) var(--qimen-core-col) var(--qimen-core-col) var(--qimen-core-col)
        var(--qimen-liuren-band);
    width: min(
        100%,
        calc(var(--qimen-core-max) + var(--qimen-stack-liuren-extra)),
        calc(var(--qimen-core-max-vh) + var(--qimen-stack-liuren-extra))
    );
    aspect-ratio: 1 / 1;
}

.qimen-ring-stack--liuren.qimen-ring-stack--jianchu {
    grid-template-columns:
        var(--qimen-jianchu-band) var(--qimen-liuren-band) var(--qimen-core-col) var(--qimen-core-col)
        var(--qimen-core-col) var(--qimen-liuren-band) var(--qimen-jianchu-band);
    grid-template-rows:
        var(--qimen-jianchu-band) var(--qimen-liuren-band) var(--qimen-core-col) var(--qimen-core-col)
        var(--qimen-core-col) var(--qimen-liuren-band) var(--qimen-jianchu-band);
    width: min(
        100%,
        calc(var(--qimen-core-max) + var(--qimen-stack-liuren-extra) + var(--qimen-stack-jianchu-extra)),
        calc(var(--qimen-core-max-vh) + var(--qimen-stack-liuren-extra) + var(--qimen-stack-jianchu-extra))
    );
    aspect-ratio: 1 / 1;
}

.qimen-ring-stack--liuren:not(.qimen-ring-stack--jianchu) .qimen-palace-grid {
    grid-column: 2 / 5;
    grid-row: 2 / 5;
}

.qimen-ring-stack--liuren.qimen-ring-stack--jianchu .qimen-palace-grid {
    grid-column: 3 / 6;
    grid-row: 3 / 6;
}

/* 仅十二建神（六壬外盘关闭）：5×5 外圈紧贴九宫 */
.qimen-ring-stack--jianchu:not(.qimen-ring-stack--liuren) {
    grid-template-columns:
        var(--qimen-jianchu-band) var(--qimen-core-col) var(--qimen-core-col) var(--qimen-core-col)
        var(--qimen-jianchu-band);
    grid-template-rows:
        var(--qimen-jianchu-band) var(--qimen-core-col) var(--qimen-core-col) var(--qimen-core-col)
        var(--qimen-jianchu-band);
    width: min(
        100%,
        calc(var(--qimen-core-max) + var(--qimen-stack-jianchu-extra)),
        calc(var(--qimen-core-max-vh) + var(--qimen-stack-jianchu-extra))
    );
    aspect-ratio: 1 / 1;
}

.qimen-ring-stack--jianchu:not(.qimen-ring-stack--liuren) .qimen-palace-grid {
    grid-column: 2 / 5;
    grid-row: 2 / 5;
}

.qimen-liuren-outer-ring,
.qimen-jianchu-outer-ring {
    display: none;
}

@media (min-width: 992px) {
    .qimen-liuren-outer-ring,
    .qimen-jianchu-outer-ring {
        display: contents;
    }

    /* 电脑端：天盘/地盘干明显加大；长生小字随之略增 */
    .qimen-palace-cell__stem,
    .qimen-palace-cell__dig,
    .qimen-palace-cell--center .qimen-palace-cell__centerStem,
    .qimen-stem-row {
        font-size: 1.72rem;
    }

    .qimen-stem-changsheng {
        font-size: 0.72rem;
    }

    .qimen-grid-composite--outer .qimen-palace-cell__stem,
    .qimen-grid-composite--outer .qimen-palace-cell__dig,
    .qimen-grid-composite--outer .qimen-palace-cell__centerStem,
    .qimen-grid-composite--outer .qimen-stem-row {
        font-size: clamp(1.05rem, 1.55vw, 1.45rem);
    }

    .qimen-grid-composite--outer .qimen-stem-changsheng {
        font-size: clamp(0.58rem, 0.85vw, 0.72rem);
    }
}

.qimen-ring-stack .qimen-palace-grid {
    width: 100%;
    height: 100%;
    min-height: 0;
    max-width: none;
    margin: 0;
    z-index: 1;
    grid-template-rows: repeat(3, minmax(0, 1fr));
}

/* 外盘壳已开但六壬/建神圈未就绪：勿用 100% 高度压扁九宫 */
.qimen-grid-composite--outer .qimen-ring-stack:not(.qimen-ring-stack--liuren):not(.qimen-ring-stack--jianchu) {
    display: block;
    width: min(100%, 46rem);
    margin-inline: auto;
}

.qimen-grid-composite--outer
    .qimen-ring-stack:not(.qimen-ring-stack--liuren):not(.qimen-ring-stack--jianchu)
    .qimen-palace-grid {
    width: min(100%, 46rem);
    height: auto;
    grid-template-rows: repeat(3, minmax(clamp(8.8rem, 16vw, 12.2rem), auto));
}

.qimen-jianchu-outer-cell {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 0;
    padding: 0;
    pointer-events: none;
}

.qimen-jianchu-outer-cell__label {
    font-weight: 800;
    font-size: clamp(0.62rem, 1.55vw, 0.76rem);
    line-height: 1.1;
    letter-spacing: 0.03em;
}

.qimen-jianchu-outer-cell--edge-inner-top {
    align-self: start;
}

.qimen-jianchu-outer-cell--edge-inner-bottom {
    align-self: end;
}

.qimen-jianchu-outer-cell--edge-inner-left {
    justify-self: start;
}

.qimen-jianchu-outer-cell--edge-inner-right {
    justify-self: end;
}

.qimen-jianchu-outer-cell__label--hei {
    color: #7a4a3a;
}

.qimen-jianchu-outer-cell__label--huang {
    color: #9a6b1a;
}

.qimen-jianchu-mode-sub {
    margin-top: 0.35rem;
}

.qimen-inline-settings__label--sub {
    font-size: 0.82rem;
    margin-top: 0.15rem;
}

.qimen-grid-composite--outer .qimen-palace-cell {
    min-height: 0;
    height: 100%;
    padding: 0.22rem 0.26rem 0.28rem;
    font-size: clamp(0.54rem, 1.45vw, 0.64rem);
}

.qimen-grid-composite--outer .qimen-palace-cell__stem,
.qimen-grid-composite--outer .qimen-palace-cell__dig,
.qimen-grid-composite--outer .qimen-palace-cell__centerStem,
.qimen-grid-composite--outer .qimen-stem-row {
    font-size: clamp(0.82rem, 2.15vw, 1.08rem);
}

.qimen-grid-composite--outer .qimen-stem-changsheng {
    font-size: clamp(0.46rem, 1.15vw, 0.58rem);
}

.qimen-grid-composite--outer .qimen-palace-cell__door,
.qimen-grid-composite--outer .qimen-palace-cell__star {
    font-size: clamp(0.82rem, 2.15vw, 1.05rem);
}

.qimen-grid-composite--outer .qimen-palace-cell__deity.qimen-deity--text {
    font-size: clamp(0.82rem, 2.15vw, 1.05rem);
}

.qimen-ring-stack .qimen-liuren-outer-cell {
    padding: 0.1rem 0.06rem;
    gap: 0.16rem;
    align-self: center;
    justify-self: center;
    max-width: 100%;
    overflow: visible;
}

.qimen-liuren-outer-cell--edge-inner-top {
    align-self: end;
    padding-bottom: 0.08rem;
}

.qimen-liuren-outer-cell--edge-inner-bottom {
    align-self: start;
    padding-top: 0.08rem;
}

.qimen-liuren-outer-cell--edge-inner-left {
    justify-self: end;
    padding-right: 0.08rem;
}

.qimen-liuren-outer-cell--edge-inner-right {
    justify-self: start;
    padding-left: 0.08rem;
}

.qimen-ring-stack .qimen-liuren-outer-cell__jiang {
    font-size: clamp(0.76rem, 1.9vw, 0.92rem);
    line-height: 1.2;
    letter-spacing: 0.04em;
}

.qimen-ring-stack .qimen-liuren-outer-cell__zhi {
    font-size: clamp(0.98rem, 2.4vw, 1.18rem);
    line-height: 1.15;
}

.qimen-ring-stack .qimen-liuren-outer-cell__mark {
    font-size: 0.58rem;
    top: -0.1em;
    right: -0.14em;
}

/* 手机端：开启六壬外盘时九宫与外盘同心缩放，避免宫格 min-height 撑破叠压 */
@media (max-width: 991px) {
    .main-inner.view-qimen.has-qimen-result #qimenGridComposite.qimen-grid-composite--outer {
        display: flex;
        justify-content: center;
        width: 100%;
        max-width: 100%;
        margin-inline: auto;
        padding-inline: 0;
    }

    .qimen-grid-composite--outer {
        width: min(100%, calc(100vw - 1.35rem));
        max-width: 100%;
    }

    .qimen-grid-composite--outer .qimen-grid-composite-inner {
        width: 100%;
        display: flex;
        justify-content: center;
    }

    .qimen-ring-stack--liuren:not(.qimen-ring-stack--jianchu),
    .qimen-ring-stack--liuren.qimen-ring-stack--jianchu,
    .qimen-ring-stack--jianchu:not(.qimen-ring-stack--liuren) {
        --qimen-core-max: 100%;
        --qimen-liuren-band: clamp(1.45rem, 6vw, 2rem);
        --qimen-jianchu-band: clamp(0.88rem, 3.2vw, 1.12rem);
        --qimen-core-max-vh: min(
            calc(100vw - 1.35rem - 2 * var(--qimen-liuren-band)),
            min(70vw, 48vh)
        );
        width: min(100%, calc(var(--qimen-core-max-vh) + var(--qimen-stack-liuren-extra)));
        max-width: 100%;
        margin-inline: auto;
    }

    .qimen-ring-stack--jianchu:not(.qimen-ring-stack--liuren) {
        --qimen-core-max-vh: min(
            calc(100vw - 1.35rem - 2 * var(--qimen-jianchu-band)),
            min(70vw, 48vh)
        );
        width: min(100%, calc(var(--qimen-core-max-vh) + var(--qimen-stack-jianchu-extra)));
    }

    .qimen-ring-stack--liuren.qimen-ring-stack--jianchu {
        --qimen-core-max-vh: min(
            calc(100vw - 1.35rem - 2 * (var(--qimen-liuren-band) + var(--qimen-jianchu-band))),
            min(68vw, 46vh)
        );
        width: min(
            100%,
            calc(var(--qimen-core-max-vh) + var(--qimen-stack-liuren-extra) + var(--qimen-stack-jianchu-extra))
        );
    }

    .qimen-ring-stack--liuren .qimen-palace-grid {
        grid-template-rows: repeat(3, minmax(0, 1fr)) !important;
        width: 100%;
        height: 100%;
        min-height: 0;
        margin-bottom: 0;
    }

    .qimen-ring-stack--jianchu:not(.qimen-ring-stack--liuren) .qimen-palace-grid {
        grid-template-rows: repeat(3, minmax(0, 1fr)) !important;
        width: 100%;
        height: 100%;
        min-height: 0;
        margin-bottom: 0;
    }

    .qimen-grid-composite--outer .qimen-palace-cell {
        min-height: 0 !important;
        height: 100%;
        padding: 0.12rem 0.14rem 0.14rem;
        font-size: clamp(0.48rem, 2.35vw, 0.58rem);
        line-height: 1.12;
        overflow: hidden;
    }

    .qimen-grid-composite--outer .qimen-palace-cell__top {
        margin-bottom: 0.02rem;
    }

    .qimen-grid-composite--outer .qimen-palace-cell__palace {
        font-size: clamp(0.5rem, 2.4vw, 0.62rem);
        line-height: 1.1;
    }

    .qimen-grid-composite--outer .qimen-palace-cell__body {
        gap: 0.1rem;
        margin: 0.04rem 0 0.08rem;
    }

    .qimen-grid-composite--outer .qimen-palace-cell__leftcol {
        gap: 0.08rem;
    }

    .qimen-grid-composite--outer .qimen-palace-cell__rightcol {
        gap: 0.1rem;
        padding-top: 0;
    }

    .qimen-grid-composite--outer .qimen-palace-cell__stem,
    .qimen-grid-composite--outer .qimen-palace-cell__dig,
    .qimen-grid-composite--outer .qimen-palace-cell__centerStem,
    .qimen-grid-composite--outer .qimen-stem-row {
        font-size: clamp(0.56rem, 2.85vw, 0.74rem);
        line-height: 1.05;
    }

    .qimen-grid-composite--outer .qimen-palace-cell__door,
    .qimen-grid-composite--outer .qimen-palace-cell__star,
    .qimen-grid-composite--outer .qimen-palace-cell__leftcol .qimen-palace-cell__door,
    .qimen-grid-composite--outer .qimen-palace-cell__leftcol .qimen-palace-cell__star {
        font-size: clamp(0.72rem, 3.4vw, 0.92rem);
        line-height: 1.12;
        font-weight: 800;
    }

    .qimen-grid-composite--outer .qimen-palace-cell__deity.qimen-deity--text {
        font-size: clamp(0.72rem, 3.4vw, 0.92rem);
        line-height: 1.12;
        font-weight: 800;
    }

    .qimen-grid-composite--outer .qimen-palace-cell--center .qimen-palace-cell__centerStems {
        min-height: 0;
    }

    .qimen-ring-stack--liuren .qimen-liuren-outer-cell {
        width: 100%;
        max-width: 100%;
        padding: 0.06rem 0.02rem;
        gap: 0.08rem;
        overflow: visible;
        text-align: center;
    }

    .qimen-ring-stack--liuren .qimen-liuren-outer-cell__jiang {
        font-size: clamp(0.56rem, 2.6vw, 0.72rem);
        line-height: 1.15;
        max-width: 100%;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .qimen-ring-stack--liuren .qimen-liuren-outer-cell__zhi {
        font-size: clamp(0.7rem, 3.2vw, 0.88rem);
        line-height: 1.12;
        max-width: 100%;
    }

    .qimen-ring-stack--liuren .qimen-liuren-outer-cell__mark {
        top: -0.06rem;
        right: -0.06rem;
        min-width: 1rem;
        height: 1rem;
        padding: 0 0.14rem;
        font-size: 0.58rem;
        font-weight: 800;
        color: #5a3208;
        background: linear-gradient(180deg, #ffe7b0, #f0c56a);
        border: 1px solid rgba(180, 110, 30, 0.55);
        border-radius: 999px;
        box-shadow: 0 1px 2px rgba(80, 50, 10, 0.18);
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    .qimen-ring-stack--liuren .qimen-jianchu-outer-cell__label {
        font-size: clamp(0.52rem, 2.35vw, 0.66rem);
    }
}

.qimen-liuren-outer-cell {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.16rem;
    min-height: 0;
    padding: 0.18rem 0.12rem;
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
    line-height: 1.15;
    position: relative;
    pointer-events: auto;
}
.qimen-liuren-outer-cell .liuren-zhi-hit {
    pointer-events: auto;
}

.qimen-liuren-outer-cell--xunkong .qimen-liuren-outer-cell__zhi {
    position: relative;
}

.qimen-liuren-outer-cell--xunkong .qimen-liuren-outer-cell__zhi::after {
    content: '';
    position: absolute;
    top: -0.12em;
    right: -0.28em;
    width: 0.34em;
    height: 0.34em;
    border-radius: 50%;
    border: 1.5px solid rgba(196, 145, 58, 0.85);
    background: transparent;
}

.qimen-liuren-outer-cell__jiang {
    font-weight: 700;
    color: #6b4f2e;
    font-size: 0.86rem;
    line-height: 1.2;
    letter-spacing: 0.04em;
}

.qimen-liuren-outer-cell__zhi {
    font-weight: 800;
    font-size: 1.18rem;
    line-height: 1.15;
    letter-spacing: 0.03em;
    color: #3a342c;
}

/* 天地盘/六壬外盘不再渲染初中末角标；保留选择器以防旧缓存 DOM */
.qimen-liuren-outer-cell__mark,
.liuren-qkbj__plate-mark {
    display: none !important;
}

.qimen-liuren-outer-cell__mark {
    position: absolute;
    top: -0.05rem;
    right: -0.05rem;
    z-index: 2;
    min-width: 1.05rem;
    height: 1.05rem;
    padding: 0 0.18rem;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    font-size: 0.62rem;
    font-weight: 800;
    color: #5a3208;
    line-height: 1;
    background: linear-gradient(180deg, #ffe7b0, #f0c56a);
    border: 1px solid rgba(180, 110, 30, 0.5);
    box-shadow: 0 1px 3px rgba(80, 50, 10, 0.18);
}

.qimen-liuren-outer-cell__mark--chu {
    background: linear-gradient(180deg, #ffd9a8, #e8a84a);
}

.qimen-liuren-outer-cell__mark--zhong {
    background: linear-gradient(180deg, #ffe9b8, #f2c86e);
}

.qimen-liuren-outer-cell__mark--mo {
    background: linear-gradient(180deg, #f5e0b8, #d4a85c);
}

}

/* 奇门：盘制设置入口（对齐七政快捷栏） */
.qimen-pan-opts-bar {
    position: absolute;
    z-index: 12;
    top: 0.45rem;
    left: 0.45rem;
    width: max-content;
    pointer-events: none;
}

.qimen-pan-opts-bar > * {
    pointer-events: auto;
}

.qimen-pan-opts-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.1rem;
    padding: 0.35rem 0.85rem;
    border-radius: 10px;
    border: 1px solid rgba(180, 140, 80, 0.42);
    background: linear-gradient(180deg, #fffaf0 0%, #f3e4c4 100%);
    color: #5a4020;
    font-family: inherit;
    font-size: 0.84rem;
    font-weight: 750;
    cursor: pointer;
    box-shadow: 0 2px 10px rgba(58, 42, 24, 0.1);
}

.qimen-pan-opts-toggle:hover,
.qimen-pan-opts-toggle.is-open,
.qimen-pan-opts-toggle[aria-expanded='true'] {
    border-color: rgba(140, 90, 40, 0.55);
    background: linear-gradient(180deg, #8b3a32 0%, #6e2c26 100%);
    color: #fff8f2;
}

.qimen-pan-settings {
    position: absolute;
    z-index: 13;
    top: 2.75rem;
    left: 0.45rem;
    box-sizing: border-box;
    width: min(22rem, calc(100% - 0.9rem));
    max-width: 22rem;
    margin: 0;
    padding: 0.55rem 0.6rem 0.7rem;
    border: 1px solid rgba(160, 130, 80, 0.32);
    border-radius: 14px;
    background: linear-gradient(165deg, rgba(255, 252, 246, 0.98) 0%, rgba(248, 240, 226, 0.96) 100%);
    box-shadow:
        0 8px 22px rgba(58, 42, 24, 0.12),
        inset 0 1px 0 rgba(255, 255, 255, 0.75);
    max-height: min(70vh, 36rem);
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior: contain;
}

.qimen-pan-settings[hidden] {
    display: none !important;
}

.qimen-pan-settings__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.45rem;
}

.qimen-pan-settings__title {
    font-size: 0.9rem;
    font-weight: 800;
    color: #3a2f21;
}

.qimen-pan-settings__close {
    width: 1.7rem;
    height: 1.7rem;
    border: none;
    border-radius: 8px;
    background: transparent;
    color: #7a6a55;
    font-size: 1.15rem;
    line-height: 1;
    cursor: pointer;
}

.qimen-pan-settings__close:hover {
    background: rgba(180, 140, 80, 0.15);
    color: #3a2f21;
}

.qimen-inline-settings--in-panel {
    gap: 0.65rem;
}

.qimen-inline-settings--in-panel .qimen-inline-settings__desc {
    font-size: 0.72rem;
}

/* 盘制设置面板：单列窄栏，不占满整行 */
.qimen-pan-settings .qimen-inline-settings--in-panel {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.qimen-pan-settings .qimen-inline-settings--in-panel .qimen-inline-settings__group {
    width: 100%;
    max-width: 100%;
    margin-bottom: 0;
}

.qimen-pan-settings .qimen-inline-settings--in-panel .qimen-toggle-btn,
.qimen-pan-settings .qimen-inline-settings--in-panel .qimen-segment-btn {
    align-self: flex-start;
    width: auto;
    min-width: 0;
    flex: 0 0 auto;
}

.qimen-pan-settings .qimen-inline-settings--in-panel .qimen-segment-row,
.qimen-pan-settings .qimen-inline-settings--in-panel .qimen-segment-row--single {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 0.35rem;
}

.qimen-pan-settings .qimen-inline-settings--in-panel .qimen-segment-row--single.qimen-segment-row--equal-3 {
    display: flex;
    grid-template-columns: none;
}

.qimen-hit-tip-float {
    position: fixed;
    z-index: 90;
    min-width: 10rem;
    max-width: min(22rem, 86vw);
    max-height: min(42vh, 22rem);
    overflow: auto;
    padding: 0.5rem 0.62rem;
    border-radius: 10px;
    background: rgba(255, 252, 246, 0.98);
    color: #2f281f;
    font-size: 0.78rem;
    line-height: 1.45;
    border: 1px solid rgba(180, 140, 80, 0.42);
    box-shadow: 0 10px 28px rgba(40, 28, 14, 0.22);
    pointer-events: none;
}

.qimen-hit-tip-float[hidden] {
    display: none !important;
}

/* 奇门：九宫右侧悬浮象意面板（不占布局，不遮盘面） */
.qimen-hover-detail {
    position: absolute;
    z-index: 12;
    width: min(20.5rem, 34vw);
    max-height: min(74vh, 36rem);
    overflow: auto;
    border-radius: 12px;
    border: 1px solid var(--bg-card-border, rgba(196, 154, 88, 0.42));
    background: var(--bg-card, linear-gradient(165deg, rgba(255, 252, 244, 0.98), rgba(249, 240, 223, 0.95)));
    color: var(--text-primary, #2f281f);
    box-shadow: 0 12px 32px rgba(53, 38, 18, 0.16);
    padding: 0;
    pointer-events: auto;
}
.qimen-hover-detail[hidden] {
    display: none !important;
}
.qimen-hover-detail__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.5rem 0.75rem;
    border-bottom: 1px solid var(--bg-card-border, rgba(196, 154, 88, 0.28));
}
.qimen-hover-detail__title {
    margin: 0;
    font-size: 0.92rem;
    font-weight: 700;
    color: var(--text-primary, #755125);
}
.qimen-hover-detail__close {
    width: 1.7rem;
    height: 1.7rem;
    border: none;
    border-radius: 8px;
    background: transparent;
    color: var(--text-muted, #7a6c5a);
    font-size: 1.15rem;
    line-height: 1;
    cursor: pointer;
}
.qimen-hover-detail__close:hover {
    background: rgba(180, 140, 80, 0.12);
}
.qimen-hover-detail__body {
    padding: 0.55rem 0.75rem 0.75rem;
    font-size: 0.84rem;
    line-height: 1.5;
}
.qimen-hover-detail__body .qimen-keying-rel {
    margin: 0;
    padding: 0;
    border: none;
    background: none;
    box-shadow: none;
}
.qimen-hover-detail__body .qimen-keying-name {
    font-size: 0.95rem;
    color: var(--text-primary, #2f281f);
}
.qimen-hover-detail__body .qimen-keying-summary,
.qimen-hover-detail__body .qimen-keying-note,
.qimen-hover-detail__body .qimen-keying-source {
    font-size: 0.78rem;
    margin: 0.22rem 0 0;
    color: var(--text-muted, #6b5a44);
}
.qimen-hover-detail__body .qimen-keying-section {
    margin-top: 0.4rem;
}
.qimen-hover-detail__body .qimen-keying-section__title {
    font-size: 0.8rem;
    margin: 0 0 0.2rem;
    color: var(--text-primary, #2f281f);
}

.qimen-pan-settings-backdrop[hidden] {
    display: none !important;
}
.qimen-pan-settings-backdrop:not([hidden]) {
    pointer-events: none;
}
.qimen-pan-settings {
    pointer-events: auto;
}

/* 四柱框内定局/盘式已迁到「盘制设置」；活时 pending 时也不得再露出来 */
.main-inner.view-qimen #qimenMatterBarMount,
.main-inner.view-qimen .qimen-setting-liuren,
.main-inner.view-qimen #qimenLiurenMetaMount,
.main-inner.view-qimen #qimenLiurenSikeChuanMount,
.main-inner.view-qimen #qimenLiurenOuterRing,
.main-inner.view-qimen #qimenJianchuOuterRing,
.main-inner.view-qimen #qimenKeyingPanel,
.main-inner.view-qimen .metaphysics-result-header-grid__setup,
.main-inner.view-qimen .qimen-pan-style-beside,
.main-inner.view-qimen #qimenInlineSettingsRow,
.main-inner.view-qimen .qimen-inline-settings--header,
.main-inner.view-qimen .qimen-special-patterns-and-legend {
    display: none !important;
}

.main-inner.view-qimen .qimen-result-shell__pillars-panel .metaphysics-result-header-grid {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
}
.main-inner.view-qimen .qimen-result-shell__pillars-panel .metaphysics-result-header-grid__pillars,
.main-inner.view-qimen .qimen-result-shell__pillars-panel .qimen-result-pillars-band {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
}
.main-inner.view-qimen .qimen-result-shell__pillars-panel .qimen-result-shell__meta,
.main-inner.view-qimen .qimen-result-shell__pillars-panel .qimen-result-pillars-row,
.main-inner.view-qimen .qimen-result-shell__pillars-panel .qimen-meta-chips--in-pillars {
    grid-column: auto;
    grid-row: auto;
    justify-self: center;
    width: auto;
    max-width: 100%;
}

@media (min-width: 992px) {
    .qimen-result-board-wrap,
    .qimen-board-keying-row .qimen-ring-stack {
        --qimen-core-size: min(46rem, 74vh);
    }
    .qimen-result-board-wrap[data-qimen-docked] .qimen-pan-opts-bar {
        right: auto;
        width: max-content !important;
    }
    .qimen-result-board-wrap[data-qimen-docked] .qimen-pan-settings {
        left: auto !important;
        right: var(--qimen-pan-dock-right) !important;
        transform: none;
    }
}

@media (max-width: 991px) {
    .qimen-pan-settings-backdrop:not([hidden]) {
        display: block;
        position: fixed;
        inset: 0;
        z-index: 40;
        background: rgba(40, 28, 14, 0.38);
    }
    .main-inner.view-qimen.has-qimen-result .qimen-pan-settings {
        position: fixed;
        z-index: 41;
        top: 50%;
        left: 50%;
        right: auto;
        transform: translate(-50%, -50%);
        width: min(22rem, calc(100vw - 1.6rem));
        max-width: 22rem;
        max-height: min(78vh, 36rem);
    }
    .main-inner.view-qimen .qimen-hover-detail,
    .main-inner.view-qimen .qimen-hit-tip-float {
        display: none !important;
    }
    .main-inner.view-qimen.has-qimen-result #qimenKeyingPanel:not([hidden]) {
        display: block !important;
        position: relative;
        z-index: 2;
        width: 100%;
        max-width: 100%;
        max-height: none;
        margin: 0.2rem 0 0;
    }
    .main-inner.view-qimen.has-qimen-result #qimenGridComposite:not(.qimen-grid-composite--outer) .qimen-palace-cell {
        padding: 0.14rem 0.16rem 0.16rem;
        min-height: 0;
    }
    .main-inner.view-qimen.has-qimen-result .qimen-palace-cell__door,
    .main-inner.view-qimen.has-qimen-result .qimen-palace-cell__star,
    .main-inner.view-qimen.has-qimen-result .qimen-palace-cell__leftcol .qimen-palace-cell__door,
    .main-inner.view-qimen.has-qimen-result .qimen-palace-cell__leftcol .qimen-palace-cell__star,
    .main-inner.view-qimen.has-qimen-result .qimen-palace-cell__deity.qimen-deity--text {
        font-size: clamp(0.66rem, 3.1vw, 0.8rem);
        line-height: 1.12;
        font-weight: 700;
    }
    .main-inner.view-qimen.has-qimen-result .qimen-palace-cell__dig,
    .main-inner.view-qimen.has-qimen-result .qimen-palace-cell__stem,
    .main-inner.view-qimen.has-qimen-result .qimen-palace-cell__centerStem {
        font-size: clamp(0.72rem, 3.4vw, 0.9rem);
    }
    .main-inner.view-qimen.has-qimen-result .qimen-result-question-field__input {
        min-height: 3.1rem;
    }
    .qimen-board-keying-row .qimen-ring-stack {
        --qimen-core-size: min(18rem, 78vw);
    }
}

/* 主题同步：暖 / 红 / 玄（跟随全站变量） */
html.theme-red .qimen-hover-detail,
html.red .qimen-hover-detail {
    border-color: rgba(160, 90, 60, 0.42);
    background: var(--bg-card, linear-gradient(165deg, rgba(255, 248, 240, 0.98), rgba(250, 238, 226, 0.95)));
}
html.theme-red .qimen-hover-detail__title,
html.red .qimen-hover-detail__title {
    color: var(--text-primary, #6b3a1e);
}
html.theme-red .qimen-hover-detail__body .qimen-keying-name,
html.red .qimen-hover-detail__body .qimen-keying-name {
    color: var(--text-primary, #3a2418);
}
html.theme-red .qimen-hover-detail__body .qimen-keying-summary,
html.theme-red .qimen-hover-detail__body .qimen-keying-note,
html.theme-red .qimen-hover-detail__body .qimen-keying-source,
html.red .qimen-hover-detail__body .qimen-keying-summary,
html.red .qimen-hover-detail__body .qimen-keying-note,
html.red .qimen-hover-detail__body .qimen-keying-source {
    color: var(--text-muted, #7a5a44);
}
body.theme-ink .qimen-hover-detail {
    border-color: var(--bg-card-border, rgba(95, 78, 58, 0.35));
    background: var(--bg-card, rgba(20, 16, 13, 0.94));
    color: var(--text-primary, #e6dbcf);
}
body.theme-ink .qimen-hover-detail__title {
    color: var(--text-primary, #e6dbcf);
}
body.theme-ink .qimen-hover-detail__body .qimen-keying-name {
    color: var(--text-primary, #e6dbcf);
}
body.theme-ink .qimen-hover-detail__body .qimen-keying-summary,
body.theme-ink .qimen-hover-detail__body .qimen-keying-note,
body.theme-ink .qimen-hover-detail__body .qimen-keying-source {
    color: var(--text-muted, #948475);
}

.qimen-hit-tip-float .qimen-keying-rel {
    margin: 0;
    padding: 0;
    border: none;
    background: none;
    box-shadow: none;
}

.qimen-hit-tip-float .qimen-keying-name {
    font-size: 0.92rem;
}

.qimen-hit-tip-float .qimen-keying-summary,
.qimen-hit-tip-float .qimen-keying-note,
.qimen-hit-tip-float .qimen-keying-source {
    font-size: 0.76rem;
    margin: 0.22rem 0 0;
}

.qimen-hit-tip-float .qimen-keying-section {
    margin-top: 0.4rem;
}

.qimen-hit-tip-float .qimen-keying-section__title {
    font-size: 0.8rem;
    margin: 0 0 0.2rem;
}

@media (min-width: 992px) {
    .qimen-board-keying-row .qimen-keying-panel {
        display: none !important;
    }
}

.qimen-result-ask-block {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.55rem;
    width: 100%;
    min-width: 0;
    text-align: center;
}

.qimen-result-question-field {
    display: grid;
    gap: 0.42rem;
    width: 100%;
    max-width: 36rem;
    margin-inline: auto;
    text-align: center;
}

.qimen-result-question-field__label {
    font-size: 0.92rem;
    font-weight: 700;
    color: var(--text-strong, #3a2f21);
    text-align: center;
}

.qimen-result-question-field__input {
    width: 100%;
    min-height: 4.25rem;
    resize: vertical;
    font-size: 0.94rem;
    line-height: 1.55;
    box-sizing: border-box;
    text-align: left;
}

@media (min-width: 992px) {
    .qimen-result-layout {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas:
            'board'
            'ask';
        gap: 0.85rem 1.35rem;
        align-items: start;
    }

    .qimen-result-board-wrap {
        grid-area: board;
        position: relative;
        min-width: 0;
    }

    .qimen-result-left {
        display: none;
    }

    /* 提问区紧贴九宫下方并居中 */
    .qimen-result-layout > .qimen-result-ask-block {
        grid-area: ask;
        justify-self: center;
        width: min(100%, 36rem);
        max-width: 36rem;
        padding-top: 0.15rem;
        margin-top: 0;
        margin-left: auto;
        margin-right: auto;
    }

    .qimen-result-right {
        position: relative;
        min-width: 0;
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: stretch;
    }

    /* 左侧窄栏：特殊格局与符号图例纵向叠放（若仍出现） */
    .qimen-result-left .qimen-special-patterns-and-legend {
        flex-direction: column;
        margin-bottom: 0.5rem;
    }

    .qimen-result-left .qimen-special-patterns-card,
    .qimen-result-left .qimen-symbol-legend {
        width: 100%;
        max-width: 100%;
    }

    .qimen-result-left .qimen-segment-row {
        flex-wrap: nowrap;
    }

    .qimen-result-left .qimen-inline-settings--result .qimen-segment-btn {
        min-width: 0;
        flex: 1 1 0;
    }

    .qimen-result-left .qimen-inline-settings--result .qimen-segment-row--single.qimen-segment-row--equal-3 {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    /* 右侧宽栏：九宫与外盘占满可用宽度 */
    .qimen-result-right .qimen-grid-composite {
        width: 100%;
        max-width: none;
        margin-inline: 0;
    }

    .qimen-result-right .qimen-ring-stack {
        --qimen-core-max: min(100%, 38rem);
        --qimen-core-max-vh: min(74vh, 100%);
        width: 100%;
        max-width: none;
        margin-inline: auto;
    }

    .qimen-result-right .qimen-ring-stack--liuren:not(.qimen-ring-stack--jianchu) {
        width: min(
            100%,
            calc(var(--qimen-core-max) + var(--qimen-stack-liuren-extra)),
            calc(var(--qimen-core-max-vh) + var(--qimen-stack-liuren-extra))
        );
    }

    .qimen-result-right .qimen-ring-stack--liuren.qimen-ring-stack--jianchu {
        width: min(
            100%,
            calc(var(--qimen-core-max) + var(--qimen-stack-liuren-extra) + var(--qimen-stack-jianchu-extra)),
            calc(var(--qimen-core-max-vh) + var(--qimen-stack-liuren-extra) + var(--qimen-stack-jianchu-extra))
        );
    }

    .qimen-result-right .qimen-ring-stack--jianchu:not(.qimen-ring-stack--liuren) {
        width: min(
            100%,
            calc(var(--qimen-core-max) + var(--qimen-stack-jianchu-extra)),
            calc(var(--qimen-core-max-vh) + var(--qimen-stack-jianchu-extra))
        );
    }

    .qimen-result-right .qimen-palace-grid,
    .qimen-result-right .qimen-ring-stack .qimen-palace-grid {
        width: 100%;
        max-width: none;
        margin-inline: 0;
    }

    .qimen-result-right .qimen-grid-composite--outer .qimen-palace-grid {
        height: 100%;
        min-height: 0;
        grid-template-rows: repeat(3, minmax(0, 1fr));
    }

    .qimen-result-right:not(:has(.qimen-grid-composite--outer)) .qimen-palace-grid {
        width: 100%;
        height: clamp(28rem, min(74vh, 52vw), 48rem);
        margin: 0;
        max-width: none;
    }
}

.qimen-main-row {
    display: block;
}

.qimen-main-row--grid-only {
    display: block;
}

@media (min-width: 992px) {
    .qimen-main-row--grid-only {
        display: block;
        height: auto;
    }

    .qimen-main-row--grid-only .qimen-palace-grid {
        margin-bottom: 1rem;
        height: clamp(36rem, 72vh, 44rem);
        width: 100%;
        max-width: 45rem;
        margin-inline: auto;
    }
}

.qimen-copy-hint {
    margin: 0.35rem 0 0.75rem;
    font-size: 0.78rem;
    line-height: 1.5;
    color: #6a5c48;
}

@media (min-width: 992px) {
    .qimen-main-row {
        display: grid;
        grid-template-columns: minmax(0, 45rem) minmax(20rem, 1fr);
        gap: 0.9rem;
        align-items: stretch;
        height: clamp(36rem, 72vh, 44rem);
    }

    .qimen-main-row .qimen-palace-grid {
        margin-inline: 0;
        margin-bottom: 0;
        width: 100%;
        height: 100%;
        grid-template-rows: repeat(3, minmax(0, 1fr));
    }

    .qimen-main-row .qimen-result-bottom {
        margin-bottom: 0;
        height: 100%;
        min-height: 0;
        display: flex;
    }

    .qimen-main-row .qimen-result-bottom.qimen-result-bottom--sync-height {
        overflow-y: auto;
        overscroll-behavior: contain;
        scrollbar-gutter: stable;
    }
}

.qimen-legend-card,
.qimen-tips-card {
    border-radius: 12px;
    padding: 0.75rem 0.85rem;
    background: rgba(255, 243, 224, 0.88);
    border: 1px solid rgba(180, 152, 118, 0.32);
    box-shadow: 0 4px 14px rgba(42, 30, 18, 0.05);
}

.qimen-yuding-card {
    margin-top: 0;
    border-radius: 12px;
    padding: 0.95rem 1rem;
    background: rgba(255, 243, 224, 0.88);
    border: 1px solid rgba(180, 152, 118, 0.32);
    box-shadow: 0 4px 14px rgba(42, 30, 18, 0.05);
    min-height: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.qimen-yuding-meta {
    margin: 0 0 0.6rem;
    font-size: 0.82rem;
    line-height: 1.45;
    color: var(--text-secondary, #6b6154);
}

.qimen-yuding-body {
    display: grid;
    gap: 0.5rem;
    flex: 1;
    min-height: 0;
    align-content: start;
    overflow-y: auto;
    padding-right: 0.2rem;
    overscroll-behavior: contain;
}

.qimen-yuding-item {
    border-radius: 8px;
    background: rgba(255, 250, 242, 0.78);
    border: 1px solid rgba(198, 167, 129, 0.25);
    padding: 0.54rem 0.62rem;
}

.qimen-yuding-item__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.35rem;
    margin-bottom: 0.2rem;
}

.qimen-yuding-item__k {
    font-size: 0.98rem;
    font-weight: 700;
    color: #3a2f21;
}

.qimen-yuding-item__v {
    font-size: 0.88rem;
    font-weight: 800;
    text-align: right;
    line-height: 1.42;
}

.qimen-yuding-item__v--good {
    color: #1c7b43;
}

.qimen-yuding-item__v--fair {
    color: #8b6b37;
}

.qimen-yuding-item__v--bad {
    color: #9d2f2f;
}

.qimen-yuding-item__reason,
.qimen-yuding-item__action {
    margin: 0;
    font-size: 0.88rem;
    line-height: 1.46;
    color: var(--text-secondary, #5c5346);
}

.qimen-yuding-note {
    margin: 0.65rem 0 0;
    padding-top: 0.55rem;
    border-top: 1px dashed rgba(180, 152, 118, 0.5);
    font-size: 0.8rem;
    line-height: 1.45;
    color: #6b6154;
}

/* 活盘右侧：起局与盘式（与录入区同一套开关，紧凑布局） */
.qimen-inline-settings--result {
    margin: 0;
    padding: 0.25rem 0 0;
    background: transparent;
    border: none;
    box-shadow: none;
}

.qimen-inline-settings--result .qimen-inline-settings__group {
    margin-bottom: 0.55rem;
}

.qimen-inline-settings--result .qimen-inline-settings__group:last-of-type {
    margin-bottom: 0.2rem;
}

.qimen-inline-settings--result .qimen-inline-settings__label-row {
    margin-bottom: 0.35rem;
}

.qimen-inline-settings--result .qimen-segment-btn {
    min-width: 0;
    flex: 1 1 0;
    padding: 0.36rem 0.28rem;
    font-size: 0.7rem;
    white-space: nowrap;
}

.qimen-inline-settings--result .qimen-segment-row--single {
    display: flex;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: 0.28rem;
}

.qimen-inline-settings--result .qimen-segment-row--single.qimen-segment-row--equal-3 {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.28rem;
}

.qimen-inline-settings--result .qimen-inline-settings__row--stem {
    margin-top: 0.15rem;
    padding-top: 0.45rem;
}

.qimen-palace-cell--taiji-zhifu {
    box-shadow:
        inset 0 0 0 2px rgba(196, 145, 58, 0.72),
        0 0 0 1px rgba(196, 145, 58, 0.28);
    border-radius: 6px;
}

.qimen-subcard-title {
    margin: 0 0 0.45rem;
    font-size: 1.02rem;
    font-weight: 600;
    color: var(--text-primary);
}

.qimen-legend-body {
    font-size: 0.78rem;
    line-height: 1.45;
    color: var(--text-secondary, #5c5346);
}

.qimen-legend-row {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    margin-bottom: 0.2rem;
}

.qimen-legend-dot {
    width: 0.52rem;
    height: 0.52rem;
    border-radius: 2px;
    flex-shrink: 0;
    box-shadow: 0 0 0 1px rgba(58, 47, 33, 0.08);
}

.qimen-tips-body {
    margin: 0;
    font-size: 0.8rem;
    line-height: 1.55;
    color: var(--text-secondary, #5c5346);
}

/* 奇门 / 六壬 / 七政：桌面同一行；手机两列两行见 mobile-responsive */
.qimen-result-actions,
.liuren-result-actions,
.qizheng-result-actions {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    gap: 0.35rem;
    margin-top: 0.15rem;
    align-items: stretch;
    width: 100%;
}

@media (max-width: 720px) {
    .qimen-result-actions,
    .liuren-result-actions,
    .qizheng-result-actions {
        flex-wrap: wrap !important;
        gap: 0.35rem;
    }

    .qimen-result-actions:not(.qimen-result-actions--save-only) .paipan-result-datetime-btn,
    .liuren-result-actions:not(.liuren-result-actions--save-only) .paipan-result-datetime-btn,
    .qimen-result-actions:not(.qimen-result-actions--save-only) .qimen-action-btn,
    .liuren-result-actions:not(.liuren-result-actions--save-only) .qimen-action-btn,
    .qizheng-result-actions .qimen-action-btn,
    .qimen-result-actions:not(.qimen-result-actions--save-only) .primary-btn,
    .liuren-result-actions:not(.liuren-result-actions--save-only) .primary-btn,
    .qizheng-result-actions .primary-btn,
    .qimen-result-actions:not(.qimen-result-actions--save-only) .qimen-sheet-btn {
        flex: 1 1 calc(50% - 0.2rem) !important;
        width: calc(50% - 0.2rem) !important;
        min-width: calc(50% - 0.2rem) !important;
        max-width: calc(50% - 0.2rem) !important;
        white-space: normal !important;
        font-size: 0.76rem !important;
        line-height: 1.35 !important;
        min-height: 2.7rem !important;
        padding: 0.65rem 0.5rem !important;
        border-radius: var(--btn-radius, 10px) !important;
        box-sizing: border-box !important;
    }
}

.qimen-result-actions .qimen-action-btn,
.liuren-result-actions .qimen-action-btn,
.qizheng-result-actions .qimen-action-btn {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    min-height: 2.55rem;
    width: auto !important;
    max-width: none !important;
    box-sizing: border-box;
    padding: 0.42rem 0.28rem;
    font-size: 0.68rem;
    letter-spacing: 0;
    line-height: 1.2;
    white-space: normal;
    text-align: center;
    justify-content: center;
}

.qimen-result-actions .primary-btn,
.liuren-result-actions .primary-btn,
.qizheng-result-actions .primary-btn {
    width: auto !important;
    padding: 0.42rem 0.28rem;
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0;
    border-radius: 10px;
    box-shadow: 0 3px 10px rgba(201, 160, 106, 0.22);
}

.qimen-result-actions .qimen-sheet-btn,
.liuren-result-actions .qimen-sheet-btn {
    width: auto !important;
    padding: 0.42rem 0.28rem;
    font-size: 0.68rem;
    border-radius: 10px;
}

.qimen-result-actions .qimen-action-btn--wide,
.liuren-result-actions .qimen-action-btn--wide,
.qizheng-result-actions .qimen-action-btn--wide {
    grid-column: auto;
    flex: 1 1 0 !important;
    min-width: 0 !important;
    max-width: none !important;
}

.qimen-result-actions .qimen-action-btn--gold.primary-btn {
    padding-inline: 0.28rem;
}

.qimen-result-actions .qimen-btn-svg,
.qimen-result-actions .qimen-action-btn__ico,
.qimen-result-actions .qimen-sheet-btn__ico,
.liuren-result-actions .qimen-btn-svg,
.liuren-result-actions .qimen-action-btn__ico,
.liuren-result-actions .qimen-sheet-btn__ico,
.qizheng-result-actions .qimen-btn-svg,
.qizheng-result-actions .qimen-action-btn__ico {
    display: none;
}

.qimen-result-ask-block .qimen-copy-hint,
.qimen-result-left .qimen-copy-hint {
    margin: 0;
    font-size: 0.76rem;
    line-height: 1.48;
    color: rgba(90, 74, 52, 0.82);
    text-align: center;
    max-width: 36rem;
}

.qimen-action-btn {
    flex: 0 1 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
}

.qimen-action-btn--gold.primary-btn {
    padding-inline: 1.15rem;
    box-shadow:
        0 4px 14px rgba(201, 160, 106, 0.35),
        inset 0 1px 0 rgba(255, 255, 255, 0.45);
}

.qimen-sheet-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    padding: 0.55rem 0.95rem;
    font-family: inherit;
    font-size: 0.92rem;
    font-weight: 600;
    color: #3a2f21;
    background: linear-gradient(180deg, #fffefb 0%, #faf6ee 100%);
    border: 1px solid rgba(201, 160, 106, 0.55);
    border-radius: var(--btn-radius, 10px);
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(58, 47, 33, 0.06);
    transition:
        background 0.2s ease,
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}

.qimen-sheet-btn:hover {
    border-color: rgba(201, 160, 106, 0.85);
    box-shadow: 0 4px 12px rgba(201, 160, 106, 0.18);
}

.qimen-sheet-btn .qimen-btn-svg {
    flex-shrink: 0;
    opacity: 0.82;
    color: #8a7048;
}

.qimen-sheet-btn .qimen-sheet-btn__ico {
    flex-shrink: 0;
    font-size: 1.05rem;
    line-height: 1;
    opacity: 0.88;
    color: #6a5538;
}

.qimen-action-btn--gold.primary-btn .qimen-btn-svg {
    flex-shrink: 0;
    opacity: 0.95;
}

.qimen-action-btn--wide {
    flex: 1 1 0;
    min-width: 0;
}

.main-inner.view-paipan .form-shell {
    display: block !important;
    width: min(900px, 100%);
    max-width: 100%;
    margin-inline: auto;
}

@media (min-width: 992px) {
    .main-inner.has-result .form-shell {
        flex: 0 0 clamp(280px, 28vw, 440px);
        width: clamp(280px, 28vw, 440px);
    }
}

.form-shell__head {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1.25rem;
    min-height: 2.35rem;
}

.form-shell-title {
    text-align: center;
    font-size: 1.35rem;
    font-weight: 600;
    color: var(--text-primary);
    margin: 0;
    padding: 0 2.75rem;
    letter-spacing: 0.08em;
    flex: 1;
}

.form-shell__head--qimen {
    justify-content: center;
}

.form-shell__head--qimen .form-shell-title--qimen {
    padding-inline: 2.75rem;
}

/* 奇门已有活盘时显示标题行右侧「收起录入」 */
.main-inner.view-qimen.has-qimen-result .qimen-input-shell .form-shell__collapse-btn--qimen {
    display: flex;
}

.form-shell__collapse-btn {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    display: none;
    align-items: center;
    justify-content: center;
    width: 2.1rem;
    height: 2.1rem;
    padding: 0;
    border-radius: 10px;
    border: 1px solid rgba(126, 96, 58, 0.22);
    background: rgba(255, 252, 247, 0.92);
    color: #4a3b28;
    font-size: 1.2rem;
    line-height: 1;
    cursor: pointer;
    transition:
        background 0.15s ease,
        border-color 0.15s ease;
}

.form-shell__collapse-btn:hover {
    background: rgba(248, 208, 142, 0.28);
    border-color: rgba(209, 156, 76, 0.45);
}

.main-inner.has-result .form-shell__collapse-btn {
    display: flex;
}

.tabs {
    display: flex;
    gap: 0;
    margin-bottom: 1.5rem;
    border-radius: 12px;
    overflow: hidden;
    background: var(--tab-inactive);
}

.tab {
    flex: 1;
    border: none;
    padding: 0.85rem 1rem;
    font-size: 0.9rem;
    font-family: inherit;
    cursor: pointer;
    background: transparent;
    color: var(--text-muted);
    transition: background 0.2s, color 0.2s;
}

.tab--active {
    background: rgba(255, 255, 255, 0.68);
    color: var(--text-primary);
}

.tab:hover:not(.tab--active) {
    color: var(--gold-dim);
}

.form-body {
    display: none;
}

/* .primary-btn 等 display 规则会覆盖原生 [hidden]，需显式强制隐藏 */
[hidden] {
    display: none !important;
}

.form-body--active {
    display: block;
}

.field {
    margin-bottom: 1.35rem;
}

/* 姓名字段：独立卡片、层次与间距 */
.field--name {
    margin-bottom: 1.75rem;
    padding: 1.05rem 1.15rem 1.2rem;
    border-radius: 14px;
    border: 1px solid rgba(126, 96, 58, 0.12);
    background: linear-gradient(165deg, rgba(255, 255, 255, 0.82) 0%, rgba(251, 245, 235, 0.55) 100%);
    box-shadow: 0 4px 16px rgba(47, 39, 28, 0.05);
    border-left: 3px solid rgba(200, 165, 110, 0.55);
}

.field--name .field-label.field-label--name {
    font-size: 0.92rem;
    font-weight: 700;
    color: var(--text-primary);
    letter-spacing: 0.05em;
    margin-bottom: 0.72rem;
}

.field--name .input-dark--name {
    margin-top: 0.1rem;
    padding: 0.85rem 1.08rem;
    font-size: 1rem;
    border-radius: 11px;
    border-color: rgba(126, 96, 58, 0.18);
    background: rgba(255, 255, 255, 0.88);
}

.field--name .field-hint.field-hint--name {
    margin: 0.95rem 0 0;
    padding-top: 0.75rem;
    border-top: 1px dashed rgba(126, 96, 58, 0.18);
    line-height: 1.68;
    font-size: 0.74rem;
    color: #7a6a58;
}

.field-label {
    display: block;
    font-size: 0.82rem;
    color: var(--text-muted);
    margin-bottom: 0.5rem;
}

.field-label--inline {
    display: inline;
    margin-bottom: 0;
}

.input-dark,
.select-dark,
textarea.input-dark {
    width: 100%;
    padding: 0.75rem 1rem;
    border-radius: 12px;
    border: 1px solid var(--plain-white-soft);
    background: var(--panel-2);
    color: var(--text-primary);
    font-size: 0.95rem;
    font-family: inherit;
    outline: none;
    transition: border-color 0.2s, box-shadow 0.2s;
}

textarea.input-dark {
    display: block;
    line-height: 1.45;
    resize: vertical;
    min-height: 4.1rem;
}

.input-dark:focus,
.select-dark:focus,
textarea.input-dark:focus {
    border-color: var(--line-strong, rgba(248, 208, 142, 0.45));
    box-shadow: 0 0 0 2px var(--focus-ring, rgba(248, 208, 142, 0.2));
}

.input-dark::placeholder,
textarea.input-dark::placeholder {
    color: var(--text-muted);
}

.input-dark--narrow {
    width: auto;
    min-width: 6rem;
}

.quick-input-row {
    display: flex;
    gap: 0.55rem;
    align-items: center;
    background: linear-gradient(180deg, rgba(248, 208, 142, 0.09), rgba(248, 208, 142, 0.03));
    border: 1px solid rgba(248, 208, 142, 0.22);
    border-radius: 14px;
    padding: 0.35rem;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03);
}

.quick-input-row .input-dark {
    flex: 1;
    border: 1px solid var(--plain-white-soft);
    background: var(--panel-1);
    border-radius: 10px;
    padding: 0.68rem 0.85rem;
    font-size: 0.93rem;
}

#applyQuickDateBtn.secondary-btn {
    border: 1px solid rgba(58, 47, 33, 0.18);
    background: var(--accent);
    color: var(--cream-text);
    padding: 0.62rem 0.95rem;
    border-radius: 10px;
    min-width: 3.55rem;
    font-size: 0.82rem;
    font-weight: 600;
}

#applyQuickDateBtn.secondary-btn:hover {
    background: var(--accent);
    border-color: rgba(58, 47, 33, 0.26);
    color: var(--cream-text);
}

.select-dark {
    cursor: pointer;
}

.gender-toggle {
    display: flex;
    gap: 0.65rem;
}

.gender-btn {
    flex: 1;
    padding: 0.65rem 1rem;
    border-radius: 12px;
    border: 1px solid var(--plain-white-soft);
    background: var(--panel-2);
    color: var(--text-muted);
    font-size: 0.88rem;
    font-family: inherit;
    cursor: pointer;
    transition: all 0.2s;
}

.gender-btn:hover {
    border-color: var(--line-strong, rgba(248, 208, 142, 0.35));
    color: var(--text-primary);
}

.gender-btn--active {
    background: linear-gradient(180deg, rgb(244, 214, 160) 0%, var(--tone-gold) 100%);
    color: var(--cream-text);
    border-color: rgba(212, 168, 95, 0.45);
    font-weight: 600;
    box-shadow: 0 4px 16px rgba(236, 199, 131, 0.35);
}

.datetime-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 0.65rem;
}

.cal-toggle {
    display: flex;
    border-radius: 10px;
    overflow: hidden;
    border: 1px solid var(--plain-white-soft);
}

.cal-btn {
    padding: 0.4rem 0.85rem;
    font-size: 0.78rem;
    font-family: inherit;
    border: none;
    background: var(--panel-2);
    color: var(--text-muted);
    cursor: pointer;
    transition: background 0.2s, color 0.2s;
}

.cal-btn--active {
    background: var(--accent);
    color: var(--cream-text);
    font-weight: 600;
}

.cal-btn:hover:not(.cal-btn--active) {
    color: var(--text-primary);
}

.advanced-settings {
    border: 1px solid rgba(248, 208, 142, 0.2);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.42);
    padding: 0.5rem 0.7rem 0.65rem;
}

.advanced-settings__summary {
    list-style: none;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 0.65rem;
    color: var(--text-muted);
    font-size: 0.8rem;
    margin-bottom: 0.45rem;
}

.advanced-settings__summary::-webkit-details-marker {
    display: none;
}

.advanced-settings__summary small {
    color: rgba(122, 106, 88, 0.8);
    font-size: 0.7rem;
}

.advanced-settings__rows {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.advanced-settings__foot-hint {
    margin: 0.45rem 0 0;
    font-size: 0.7rem;
    line-height: 1.45;
    color: rgba(90, 74, 52, 0.78);
}

.switch-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.48rem 0.2rem;
    border-bottom: 1px dashed rgba(126, 96, 58, 0.14);
}

.switch-row:last-child {
    border-bottom: none;
}

.switch-row__label {
    font-size: 0.84rem;
    color: #5d4f3e;
}

.switch-row__input {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.switch-row__track {
    position: relative;
    width: 2.28rem;
    height: 1.34rem;
    border-radius: 999px;
    background: rgba(126, 96, 58, 0.22);
    transition: background 0.2s ease;
    flex-shrink: 0;
}

.switch-row__track::after {
    content: '';
    position: absolute;
    top: 0.12rem;
    left: 0.14rem;
    width: 1.08rem;
    height: 1.08rem;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.16);
    transition: transform 0.2s ease;
}

.switch-row__input:checked + .switch-row__track {
    background: rgba(111, 99, 226, 0.78);
}

.switch-row__input:checked + .switch-row__track::after {
    transform: translateX(0.92rem);
}

.switch-row--self {
    border: 1px solid rgba(248, 208, 142, 0.18);
    border-radius: 10px;
    padding: 0.55rem 0.65rem;
    margin-top: 0.2rem;
    background: rgba(255, 255, 255, 0.38);
}

/* —— 滚轮 —— */
.wheels {
    display: flex;
    justify-content: space-between;
    gap: 0.25rem;
    position: relative;
    margin: 0 -0.25rem;
    padding: 0.5rem 0;
}

.wheels::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    height: 48px;
    margin-top: -12px;
    border-top: 1px solid var(--wheel-border);
    border-bottom: 1px solid var(--wheel-border);
    background: var(--wheel-highlight);
    border-radius: 8px;
    pointer-events: none;
    z-index: 0;
}

.wheel-col {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
    z-index: 1;
}

.wheel-viewport {
    width: 100%;
    max-width: 76px;
    height: 240px;
    overflow-y: auto;
    overflow-x: hidden;
    scroll-snap-type: y mandatory;
    scroll-padding-block: 96px;
    scrollbar-width: none;
    -ms-overflow-style: none;
    outline: none;
    scroll-behavior: auto;
}

.wheel-viewport::-webkit-scrollbar {
    display: none;
}

.wheel-list {
    display: flex;
    flex-direction: column;
}

.wheel-pad {
    flex-shrink: 0;
    scroll-snap-align: none;
    pointer-events: none;
}

.wheel-item {
    height: 48px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.95rem;
    font-variant-numeric: tabular-nums;
    color: var(--text-muted);
    scroll-snap-align: center;
    scroll-snap-stop: always;
    transition: color 0.15s, transform 0.15s;
    cursor: pointer;
    user-select: none;
}

.wheel-item.is-near {
    color: color-mix(in srgb, var(--text-primary) 58%, transparent);
}

.wheel-item.is-selected {
    color: var(--text-primary);
    font-weight: 600;
    font-size: 1.05rem;
}

.wheel-unit {
    font-size: 0.72rem;
    color: var(--gold-dim);
    margin-top: 0.35rem;
}

/* 排盘内联时间选择：类热卜多列滚轮卡片（非弹窗，八字 / 奇门 / 紫微共用） */
.paipan-datetime-picker {
    margin-top: 0.1rem;
}

.paipan-datetime-picker__sublabels {
    margin-bottom: 0.42rem;
}

.paipan-datetime-picker__sublabel[hidden] {
    display: none !important;
}

.paipan-datetime-picker__card {
    position: relative;
    border-radius: 18px;
    border: 1px solid rgba(126, 96, 58, 0.2);
    background: linear-gradient(165deg, rgba(255, 253, 248, 0.99) 0%, rgba(251, 246, 236, 0.96) 48%, rgba(248, 240, 226, 0.94) 100%);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.82),
        0 10px 32px rgba(72, 56, 38, 0.07);
    overflow: hidden;
}

.paipan-datetime-picker__fade {
    position: absolute;
    left: 0;
    right: 0;
    height: 80px;
    z-index: 2;
    pointer-events: none;
}

.paipan-datetime-picker__fade--top {
    top: 0;
    background: linear-gradient(to bottom, rgba(255, 251, 244, 0.97) 0%, rgba(255, 251, 244, 0) 100%);
}

.paipan-datetime-picker__fade--bottom {
    bottom: 0;
    background: linear-gradient(to top, rgba(255, 251, 244, 0.97) 0%, rgba(255, 251, 244, 0) 100%);
}

.paipan-datetime-picker__card .wheels.wheels--paipan-inline {
    position: relative;
    z-index: 1;
    margin: 0;
    padding: 0.45rem 0.35rem 0.55rem;
    gap: 0;
    justify-content: stretch;
}

.paipan-datetime-picker__card .wheels.wheels--paipan-inline::before {
    left: 0.5rem;
    right: 0.5rem;
    border-radius: 11px;
    border-top-color: rgba(200, 160, 100, 0.38);
    border-bottom-color: rgba(200, 160, 100, 0.38);
    background: linear-gradient(180deg, rgba(244, 214, 160, 0.2) 0%, rgba(236, 199, 131, 0.14) 100%);
    box-shadow: inset 0 0 0 1px rgba(212, 168, 95, 0.12);
}

.paipan-datetime-picker__card .wheel-col {
    border-left: 1px solid rgba(126, 96, 58, 0.1);
}

.paipan-datetime-picker__card .wheel-col:first-child {
    border-left: none;
}

.paipan-datetime-picker__card .wheel-viewport {
    max-width: none;
    width: 100%;
}

.paipan-datetime-picker__card .wheel-item {
    font-size: 1rem;
    letter-spacing: 0.02em;
}

.paipan-datetime-picker__card .wheel-item.is-selected {
    font-size: 1.08rem;
    letter-spacing: 0.03em;
}

.paipan-datetime-picker__card .wheel-unit {
    margin-top: 0.28rem;
    font-size: 0.68rem;
    font-weight: 600;
    color: rgba(122, 98, 68, 0.85);
}

.paipan-datetime-picker__toolbar {
    display: flex;
    gap: 0.5rem;
    margin-top: 0.7rem;
    align-items: stretch;
}

.paipan-datetime-picker__fill-btn {
    flex: 1;
    min-height: 2.8rem;
    border-radius: 13px;
    font-weight: 600;
}

.preview-text {
    font-size: 0.82rem;
    color: var(--text-muted);
    line-height: 1.55;
}

.preview-text--warn {
    color: var(--text-primary);
}

.preview-text .highlight {
    color: var(--gold);
}

.rule-hint {
    font-size: 0.72rem;
    color: var(--text-muted);
    margin: 0.5rem 0 1.25rem;
}

.primary-btn {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.95rem 1.25rem;
    border: none;
    border-radius: var(--btn-radius, 10px);
    background: linear-gradient(180deg, rgb(244, 214, 160) 0%, var(--tone-gold) 100%);
    color: var(--cream-text);
    font-size: 1rem;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    letter-spacing: 0.06em;
    transition: background 0.2s, transform 0.15s, box-shadow 0.2s;
    box-shadow: 0 6px 20px rgba(236, 199, 131, 0.45);
}

.primary-btn:hover {
    background: var(--accent-hover);
    transform: translateY(-1px);
}

.primary-btn:active {
    transform: translateY(0);
}

.primary-btn-icon {
    font-size: 1.1rem;
    opacity: 0.95;
}

.field-hint {
    font-size: 0.72rem;
    color: var(--text-muted);
    margin: -0.35rem 0 0.75rem;
    line-height: 1.5;
}

.field-hint--quick {
    margin: 0.38rem 0 0.2rem;
    color: var(--text-muted);
    display: flex;
    align-items: center;
    gap: 0.38rem;
}

.hint-dot {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--accent);
    flex-shrink: 0;
}

.pillar-rows {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.pillar-row {
    display: grid;
    grid-template-columns: 2.75rem 1fr auto;
    align-items: center;
    gap: 0.45rem;
}

.pillar-row-label {
    font-size: 0.78rem;
    color: var(--gold-dim);
    white-space: nowrap;
}

.pillar-pair {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.45rem;
    min-width: 0;
}

.pillar-chip {
    font-size: 0.8rem;
    color: var(--gold);
    min-width: 2.25rem;
    text-align: center;
    font-weight: 600;
    letter-spacing: 0.08em;
}

.pillar-shichen-hint {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem 0.65rem;
    margin-top: 0.55rem;
    padding: 0.5rem 0.65rem;
    border-radius: 10px;
    border: 1px solid rgba(126, 96, 58, 0.16);
    background: rgba(255, 252, 246, 0.88);
}

.pillar-shichen-hint[hidden] {
    display: none !important;
}

.pillar-shichen-hint__text {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 0.8rem;
    color: rgba(70, 56, 40, 0.82);
    line-height: 1.4;
}

.pillar-shichen-hint__btn {
    flex: 0 0 auto;
    appearance: none;
    border: 1px solid rgba(201, 160, 106, 0.45);
    border-radius: 999px;
    padding: 0.28rem 0.75rem;
    background: rgba(248, 208, 142, 0.22);
    color: #5a4226;
    font-size: 0.78rem;
    font-weight: 600;
    cursor: pointer;
}

.pillar-shichen-hint__btn:hover {
    background: rgba(248, 208, 142, 0.38);
}

.pillar-shichen-modal {
    width: min(28rem, 94vw);
    max-height: min(78vh, 36rem);
    display: flex;
    flex-direction: column;
}

.pillar-shichen-modal__body {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    min-height: 0;
    overflow: hidden;
}

.pillar-shichen-modal__sub {
    margin: 0;
    font-size: 0.82rem;
    color: rgba(70, 56, 40, 0.72);
    line-height: 1.45;
}

.pillar-shichen-list {
    display: flex;
    flex-direction: column;
    gap: 0.28rem;
    min-height: 0;
    max-height: min(48vh, 22rem);
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 0.15rem;
}

.pillar-shichen-item {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.12rem;
    width: 100%;
    margin: 0;
    padding: 0.55rem 0.7rem;
    border: 1px solid rgba(126, 96, 58, 0.12);
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.72);
    color: #3d2f18;
    text-align: left;
    cursor: pointer;
}

.pillar-shichen-item:hover,
.pillar-shichen-item--active {
    border-color: rgba(201, 160, 106, 0.55);
    background: rgba(248, 208, 142, 0.22);
}

.pillar-shichen-item__main {
    font-size: 0.9rem;
    font-weight: 600;
}

.pillar-shichen-item__sub {
    font-size: 0.74rem;
    color: rgba(70, 56, 40, 0.58);
}

.pillar-shichen-empty {
    margin: 0.35rem 0 0;
    font-size: 0.82rem;
    color: rgba(70, 56, 40, 0.55);
    text-align: center;
}

.select-gan,
.select-zhi {
    min-width: 0;
}

.select-zhi:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

/* —— 结果 —— */
.result-shell {
    flex: 1 1 0;
    min-width: 0;
    width: 100%;
    max-width: min(720px, 100%);
    background: var(--bg-card);
    border: 1px solid var(--bg-card-border);
    border-radius: 18px;
    padding: 1.5rem;
    min-height: 120px;
    opacity: 0;
    transform: translateX(24px) scale(0.99);
    transition: opacity 0.32s ease, transform 0.36s ease;
    box-shadow:
        0 10px 32px rgba(236, 199, 131, 0.2),
        0 2px 8px rgba(58, 47, 33, 0.04),
        inset 0 1px 0 rgba(255, 255, 255, 0.72);
}

/* 奇门/六壬/七政：结果壳随内容撑开，勿沿用八字 result-shell 的 flex:1 1 0 + min-height:120px */
#qimenResultShell.result-shell,
#liurenResultShell.result-shell,
#qizhengResultShell.result-shell {
    flex: 0 1 auto !important;
    min-height: auto !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
}

.main-inner.has-result .result-shell {
    opacity: 1;
    transform: translateX(0) scale(1);
    max-width: none;
}

/* 排盘结果：保持在 view-paipan 主视图内可见（避免 openResultPanel 误切视图后主区空白） */
.main-inner.has-result.view-paipan #caseDetailArea.result-shell {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
}

.main-inner.has-qimen-result #qimenResultShell.result-shell {
    opacity: 1;
    transform: translateX(0) scale(1);
    max-width: none;
    flex: 0 1 auto;
    height: auto;
    min-height: auto;
    overflow: visible;
}

.main-inner.has-liuren-result #liurenResultShell.result-shell {
    opacity: 1;
    transform: translateX(0) scale(1);
    max-width: none;
    flex: 0 1 auto;
    height: auto;
    min-height: auto;
    overflow: visible;
}

.main-inner.result-only-view .result-shell {
    width: 100%;
    max-width: none;
    margin: 0 auto;
    padding: 1.35rem 1.5rem;
    opacity: 1;
    transform: none;
}

.main-inner.result-only-view.view-qimen #qimenResultShell.result-shell,
.main-inner.result-only-view.view-liuren #liurenResultShell.result-shell,
.main-inner.result-only-view.view-qizheng #qizhengResultShell.result-shell {
    flex: 0 1 auto !important;
    min-height: auto !important;
    height: auto !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: visible !important;
}

#caseDetailArea.result-shell {
    scroll-margin-top: max(12px, env(safe-area-inset-top, 0px));
    outline: none;
}

/* 排盘结果页：回到顶部（视口右下角，随滚动显示） */
.result-scrolltop-fab {
    position: fixed;
    right: max(1.1rem, env(safe-area-inset-right, 0px));
    bottom: max(1.35rem, env(safe-area-inset-bottom, 0px));
    z-index: 70;
    width: 2.65rem;
    height: 2.65rem;
    border-radius: 50%;
    border: 1px solid rgba(236, 199, 131, 0.55);
    background: linear-gradient(165deg, rgba(255, 252, 247, 0.97), rgba(252, 240, 218, 0.98));
    box-shadow: 0 8px 22px rgba(58, 47, 33, 0.12);
    color: var(--cream-text, #3a2f21);
    cursor: pointer;
    display: grid;
    place-items: center;
    padding: 0;
    font-family: inherit;
    line-height: 1;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.result-scrolltop-fab:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(236, 199, 131, 0.32);
}

.result-scrolltop-fab:active {
    transform: translateY(0);
}

.result-scrolltop-fab__icon {
    font-size: 1.2rem;
    font-weight: 700;
}

.ask-human-teacher-fab {
    position: fixed;
    right: max(1.1rem, env(safe-area-inset-right, 0px));
    /* 视口右下：叠在「回到顶部」圆形按钮之上，留出间距 */
    bottom: max(4.55rem, calc(env(safe-area-inset-bottom, 0px) + 3.9rem));
    z-index: 1300;
    pointer-events: auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 7.2rem;
    height: 2.4rem;
    padding: 0 0.75rem;
    border-radius: 999px;
    border: 1px solid rgba(255, 146, 27, 0.95);
    background: linear-gradient(145deg, rgba(255, 254, 236, 1), rgba(255, 212, 96, 1) 58%, rgba(255, 187, 68, 0.98));
    color: #4e2c06;
    text-decoration: none;
    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.65);
    font-size: 0.84rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    white-space: nowrap;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.88),
        0 12px 26px rgba(255, 153, 36, 0.44),
        0 0 0 2px rgba(255, 205, 112, 0.72),
        0 0 0 0 rgba(255, 174, 62, 0.56);
    cursor: pointer;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    animation: ask-human-teacher-pulse 1.8s ease-in-out infinite;
}

.ask-human-teacher-fab:hover {
    transform: translateY(-2px);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.95),
        0 16px 30px rgba(255, 146, 27, 0.52),
        0 0 0 2px rgba(255, 201, 97, 0.9),
        0 0 0 0.52rem rgba(255, 201, 97, 0.3);
}

.ask-human-teacher-fab:focus-visible {
    outline: 2px solid rgba(221, 137, 29, 0.72);
    outline-offset: 2px;
}

@keyframes ask-human-teacher-pulse {
    0% {
        box-shadow:
            inset 0 1px 0 rgba(255, 255, 255, 0.88),
            0 12px 26px rgba(255, 153, 36, 0.44),
            0 0 0 2px rgba(255, 205, 112, 0.72),
            0 0 0 0 rgba(255, 174, 62, 0.56);
    }
    65% {
        box-shadow:
            inset 0 1px 0 rgba(255, 255, 255, 0.92),
            0 14px 28px rgba(255, 146, 27, 0.5),
            0 0 0 2px rgba(255, 201, 97, 0.86),
            0 0 0 0.62rem rgba(255, 201, 97, 0);
    }
    100% {
        box-shadow:
            inset 0 1px 0 rgba(255, 255, 255, 0.88),
            0 12px 26px rgba(255, 153, 36, 0.44),
            0 0 0 2px rgba(255, 205, 112, 0.72),
            0 0 0 0 rgba(255, 174, 62, 0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .ask-human-teacher-fab {
        animation: none;
    }
}

html {
    scroll-padding-top: max(0.5rem, env(safe-area-inset-top, 0px));
}

.result-shell-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.25rem;
    gap: 0.6rem;
}

.result-shell-title {
    color: var(--gold);
    font-size: 0.92rem;
    letter-spacing: 0.06em;
}

.result-shell-actions .result-copy-for-ai-btn {
    max-width: 11.5rem;
    white-space: nowrap;
    font-size: 0.76rem;
    padding: 0.38rem 0.65rem;
}

.result-shell-actions .result-export-facts-btn {
    max-width: 13.5rem;
    white-space: nowrap;
    font-size: 0.74rem;
    padding: 0.38rem 0.6rem;
    background: rgba(255, 255, 255, 0.92);
    color: var(--text-primary, #3a3228);
    border: 1px solid rgba(196, 140, 74, 0.55);
}

.result-shell-actions .result-export-facts-btn:hover {
    border-color: rgba(180, 110, 40, 0.75);
    background: #fff;
}

.qimen-action-btn--export-facts {
    background: rgba(255, 255, 255, 0.95) !important;
    color: var(--text-primary, #3a3228) !important;
    border: 1px solid rgba(196, 140, 74, 0.55) !important;
    box-shadow: none !important;
}

.bazi-ziwei-copy-hint {
    margin: 0.65rem 0 0.35rem;
    font-size: 0.76rem;
    line-height: 1.48;
    color: rgba(90, 74, 52, 0.82);
}

.result-shell-actions {
    display: inline-flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.4rem;
    flex-shrink: 0;
}

/* 八字结果顶栏：标题 | 三盘快捷（中间栏略靠右/居中） | 排盘/关闭 */
.result-shell-head--bazi-extra {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    column-gap: 0.65rem;
    row-gap: 0.5rem;
}

.result-shell-head--bazi-extra .paipan-result-title-block {
    grid-column: 1;
    grid-row: 1;
    min-width: 0;
}

.result-shell-head--bazi-extra .result-shell-title {
    margin: 0;
}

.result-shell-head--bazi-extra .bazi-extra-charts--in-head {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
    justify-self: center;
    width: fit-content;
    max-width: min(100%, 35rem);
}

.result-shell-head--bazi-extra .bazi-extra-charts__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.34rem;
}

.result-shell-head--bazi-extra .bazi-extra-charts__btn {
    min-height: 2.5rem;
    padding: 0.34rem 0.18rem;
    font-size: 0.67rem;
    line-height: 1.2;
}

.result-shell-head--bazi-extra .result-shell-actions {
    grid-column: 3;
    grid-row: 1;
    justify-self: end;
}

@media (max-width: 720px) {
    .result-shell-head--bazi-extra {
        grid-template-columns: 1fr auto;
        align-items: start;
    }

    .result-shell-head--bazi-extra .paipan-result-title-block {
        grid-column: 1;
        grid-row: 1;
        align-self: center;
    }

    .result-shell-head--bazi-extra .result-shell-actions {
        grid-column: 2;
        grid-row: 1;
    }

    .result-shell-head--bazi-extra .bazi-extra-charts--in-head {
        grid-column: 1 / -1;
        grid-row: 2;
        max-width: none;
    }

    .result-shell-head--bazi-extra .bazi-extra-charts__btn {
        min-height: 2.34rem;
        font-size: 0.64rem;
        padding: 0.3rem 0.16rem;
    }
}

.result-edit-case-btn {
    border: 1px solid rgba(225, 189, 117, 0.65);
    background: rgba(255, 247, 228, 0.94);
    color: var(--text-primary);
    border-radius: 10px;
    padding: 0.32rem 0.72rem;
    font-size: 0.82rem;
    font-weight: 600;
    line-height: 1.2;
    cursor: pointer;
    white-space: nowrap;
    transition: border-color 0.2s ease, background 0.2s ease;
}

.result-edit-case-btn:hover {
    border-color: rgba(236, 199, 131, 0.95);
    background: rgba(255, 240, 210, 0.98);
}

.result-open-modal-btn {
    border: 1px solid rgba(236, 199, 131, 0.88);
    background: linear-gradient(180deg, rgba(255, 240, 205, 0.96), rgba(236, 199, 131, 0.92));
    color: #6b471e;
    border-radius: var(--btn-radius, 10px);
    padding: 0.4rem 0.92rem;
    font-size: 0.88rem;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
    cursor: pointer;
    box-shadow: 0 0 0 1px rgba(255, 214, 143, 0.48), 0 8px 18px rgba(188, 132, 56, 0.24);
    transition: border-color 0.2s ease, background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.result-open-modal-btn:hover {
    border-color: rgba(236, 199, 131, 1);
    background: linear-gradient(180deg, rgba(255, 247, 224, 0.98), rgba(239, 205, 144, 0.96));
    transform: translateY(-1.5px);
    box-shadow: 0 0 0 2px rgba(255, 220, 160, 0.52), 0 10px 22px rgba(188, 132, 56, 0.3);
}

.result-open-modal-btn:active {
    transform: translateY(0);
    box-shadow: 0 0 0 1px rgba(255, 214, 143, 0.42), 0 5px 12px rgba(188, 132, 56, 0.22);
}

@media (max-width: 560px) {
    .result-shell-title {
        font-size: 0.86rem;
        letter-spacing: 0.03em;
    }
    .result-edit-case-btn {
        padding: 0.28rem 0.55rem;
        font-size: 0.74rem;
    }
    .result-open-modal-btn {
        padding: 0.3rem 0.68rem;
        font-size: 0.8rem;
    }
}

.result-close-btn {
    width: 1.8rem;
    height: 1.8rem;
    border-radius: 8px;
    border: 1px solid var(--plain-white-soft);
    background: rgba(255, 255, 255, 0.62);
    color: var(--text-primary);
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
}

.result-close-btn:hover {
    color: var(--text-primary);
    border-color: rgba(248, 208, 142, 0.45);
    background: rgba(248, 208, 142, 0.12);
}

.bazi-modal-overlay {
    position: fixed;
    inset: 0;
    z-index: 1250;
    display: grid;
    place-items: center;
    padding: max(1.25rem, env(safe-area-inset-top, 0px)) max(1.25rem, env(safe-area-inset-right, 0px))
        max(1.25rem, env(safe-area-inset-bottom, 0px)) max(1.25rem, env(safe-area-inset-left, 0px));
    background: rgba(16, 12, 8, 0.42);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.28s ease, visibility 0.28s ease;
}

.bazi-modal-overlay.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.bazi-modal {
    width: min(75vw, 900px);
    max-width: min(900px, 100%);
    max-height: 90vh;
    margin-inline: auto;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border-radius: 24px;
    border: 1px solid rgba(195, 167, 111, 0.35);
    background: linear-gradient(180deg, rgba(250, 245, 236, 0.98), rgba(245, 236, 220, 0.98));
    box-shadow: 0 24px 60px rgba(26, 19, 11, 0.24);
    transform: translateY(10px) scale(0.988);
    transition: transform 0.28s ease;
}

.bazi-modal-overlay.is-open .bazi-modal {
    transform: translateY(0) scale(1);
}

/* 注册后命书弹窗：居中、窄版，隐藏内嵌排盘标题与底部重复按钮 */
.register-lifebook-overlay {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: max(1rem, env(safe-area-inset-top, 0px)) max(1rem, env(safe-area-inset-right, 0px))
        max(1rem, env(safe-area-inset-bottom, 0px)) max(1rem, env(safe-area-inset-left, 0px));
}

.register-lifebook-overlay.is-open {
    display: flex;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.register-lifebook-modal {
    width: min(92vw, 480px);
    max-width: 480px;
    max-height: min(92vh, 760px);
    margin: 0 auto;
}

.register-lifebook-head {
    padding: 1rem 1.1rem 0.65rem;
    align-items: flex-start;
}

.register-lifebook-head__text {
    flex: 1;
    min-width: 0;
}

.register-lifebook-hint {
    margin: 0.35rem 0 0;
    font-size: 0.78rem;
    line-height: 1.45;
    color: var(--text-muted, #7a6a58);
    font-weight: 400;
}

.register-lifebook-head .bazi-modal-title {
    flex: none;
    font-size: 1.12rem;
}

.register-lifebook-mount {
    overflow-x: hidden;
    overflow-y: auto;
    max-height: calc(92vh - 148px);
    padding: 0 0.85rem 0.35rem;
}

.register-lifebook-mount .unified-paipan-shell,
.register-lifebook-mount .form-shell {
    border: none;
    box-shadow: none;
    background: transparent;
    padding: 0;
    margin: 0;
}

.register-lifebook-mount #page-title,
.register-lifebook-mount .form-shell-title,
.register-lifebook-mount .unified-paipan-submit-row,
.register-lifebook-mount #qimenInlineSettingsRow,
.register-lifebook-mount #liurenInlineSettingsRow {
    display: none !important;
}

.register-lifebook-actions {
    padding: 0.65rem 1rem 1rem;
    border-top: 1px solid rgba(58, 47, 33, 0.08);
}


.archive-edit-overlay {
    display: flex;
    align-items: center;
    justify-content: center;
    /* 高于 calcPaipanPromptBackdrop(1260)，避免「请输入你的命书」盖住档案编辑 */
    z-index: 1300;
    padding: max(1rem, env(safe-area-inset-top, 0px)) max(1rem, env(safe-area-inset-right, 0px))
        max(1rem, env(safe-area-inset-bottom, 0px)) max(1rem, env(safe-area-inset-left, 0px));
}

.archive-edit-overlay.is-open {
    display: flex;
    z-index: 1300;
}

.archive-edit-modal {
    width: min(92vw, 520px);
    max-width: 520px;
    max-height: min(92vh, 760px);
    margin: 0 auto;
}

.archive-edit-head {
    padding: 1rem 1.1rem 0.65rem;
}

.archive-edit-head .bazi-modal-title {
    flex: 1;
    font-size: 1.12rem;
}

.archive-edit-mount {
    overflow-x: hidden;
    overflow-y: auto;
    max-height: calc(92vh - 148px);
    padding: 0 0.85rem 0.35rem;
}

.archive-edit-mount .unified-paipan-shell,
.archive-edit-mount .form-shell {
    border: none;
    box-shadow: none;
    background: transparent;
    padding: 0;
    margin: 0;
}

.archive-edit-mount #page-title,
.archive-edit-mount .form-shell-title,
.archive-edit-mount .form-shell__head,
.archive-edit-mount .unified-paipan-submit-row {
    display: none !important;
}

.archive-edit-actions {
    padding: 0.65rem 1rem 1rem;
    border-top: 1px solid rgba(58, 47, 33, 0.08);
}

.archive-edit-save-btn {
    width: 100%;
    margin: 0;
    -webkit-appearance: none;
    appearance: none;
}

body.archive-edit-open .site-footer,
body.archive-edit-open #caseDetailArea,
body.archive-edit-open #caseArchiveView {
    pointer-events: none;
}

.register-lifebook-save-btn {
    width: 100%;
    margin: 0;
    -webkit-appearance: none;
    appearance: none;
}

.register-lifebook-actions {
    flex-shrink: 0;
}

html.register-lifebook-pending .app > main,
html.register-lifebook-open .app > main,
html.paipan-prompt-open .app > main {
    display: none !important;
}

html.register-lifebook-pending .app-rail,
html.register-lifebook-open .app-rail,
html.paipan-prompt-open .app-rail,
html.register-lifebook-pending .mobile-bottom-nav,
html.register-lifebook-open .mobile-bottom-nav,
html.paipan-prompt-open .mobile-bottom-nav {
    display: none !important;
}

html.register-lifebook-open #registerLifebookModalOverlay.is-open {
    z-index: 1300;
}

.bazi-modal-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 1rem 1.15rem 0.8rem;
    border-bottom: 1px solid rgba(195, 167, 111, 0.24);
}

.bazi-modal-title {
    margin: 0;
    font-size: 1.1rem;
    color: var(--cream-text);
    letter-spacing: 0.04em;
}

.bazi-modal-body {
    flex: 1;
    min-height: 0;
    overflow: auto;
    padding: 0.75rem 0.95rem 1rem;
    -webkit-overflow-scrolling: touch;
}

.bazi-modal-body > .content-grid {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 1rem;
    width: 100%;
}

/* 弹窗内仅显示排盘表单（及脚本展开的结果区），不展示主站 AI 门户、案例档案、历史对话整页 */
.bazi-modal-body .ai-hub,
.bazi-modal-body #caseArchiveView,
.bazi-modal-body #chatHistoryPageView {
    display: none !important;
}

/* 弹窗内是否显示结果区由 script 控制（openBaziModal 收起、openResultPanel 展开），勿用 !important 否则无法覆盖，会导致弹窗内点击「生成排盘结果」后仍看不到任何变化 */

@media (max-width: 1024px) {
    .bazi-modal {
        width: min(94vw, 900px);
    }
}

.result-heading {
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--gold);
    margin: 1.25rem 0 0.75rem;
    padding-left: 0.65rem;
    border-left: 3px solid var(--accent);
}

.result-heading:first-child {
    margin-top: 0;
}

.bazi-overview {
    display: flex;
    justify-content: space-between;
    gap: 0.8rem;
    border: 1px solid rgba(236, 199, 131, 0.28);
    border-radius: 12px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.65) 0%, var(--panel-2) 100%);
    padding: 0.7rem 0.85rem;
    margin-bottom: 0.75rem;
}

.bazi-overview-title {
    color: var(--gold);
    font-weight: 700;
    margin-bottom: 0.35rem;
}

.bazi-overview-title-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.55rem;
    margin-bottom: 0.35rem;
    flex-wrap: wrap;
}

.bazi-overview-heading {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0.35rem 0.5rem;
    min-width: 0;
    flex: 1;
}

.bazi-overview-title-row .bazi-overview-title {
    margin-bottom: 0;
}

.bazi-overview-name {
    font-size: clamp(1rem, 2.2vw, 1.2rem);
    font-weight: 700;
    color: var(--text-primary);
    letter-spacing: 0.03em;
}

.bazi-overview-edit-btn {
    border: 1px solid rgba(225, 189, 117, 0.6);
    background: rgba(255, 247, 228, 0.92);
    color: var(--text-primary);
    border-radius: 8px;
    padding: 0.2rem 0.55rem;
    font-size: 0.74rem;
    line-height: 1.2;
    cursor: pointer;
    white-space: nowrap;
}

.bazi-overview-edit-btn:hover {
    background: rgba(255, 240, 210, 0.98);
}

.bazi-overview-profile {
    color: var(--text-primary);
    font-size: 0.95rem;
    font-weight: 600;
    margin-bottom: 0.35rem;
    letter-spacing: 0.02em;
}

.bazi-overview-lines {
    display: grid;
    gap: 0.22rem;
    color: var(--text-primary);
    font-size: 0.82rem;
}

.bazi-overview-tags {
    display: flex;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.bazi-overview-tags .tag {
    border: 1px solid var(--plain-white-soft);
    border-radius: 999px;
    padding: 0.2rem 0.55rem;
    background: rgba(255, 255, 255, 0.62);
    font-size: 0.76rem;
    color: var(--text-primary);
}

.bazi-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.65rem;
}

.bazi-item {
    background: var(--panel-1, #fbf5eb);
    border: 1px solid var(--plain-white-soft, rgba(68, 49, 24, 0.1));
    border-radius: 14px;
    padding: 0.85rem 0.5rem;
    text-align: center;
}

.bazi-item .shishen {
    display: inline-block;
    font-size: 0.72rem;
    color: #5f4b31;
    margin-bottom: 0.3rem;
    background: rgba(236, 199, 131, 0.38);
    border: 1px solid rgba(236, 199, 131, 0.55);
    border-radius: 7px;
    padding: 0.1rem 0.35rem;
}

.bazi-item .label {
    font-size: 0.74rem;
    color: var(--text-muted);
    margin: 0.05rem 0 0.45rem;
}

.bazi-top, .bazi-mid {
    text-align: center;
}

.bazi-label-top {
    margin-top: 0;
    margin-bottom: 0.25rem;
    color: #8f7a5a;
    font-weight: 600;
}

.bazi-divider {
    height: 1px;
    background: var(--plain-white-soft);
    margin: 0.5rem 0;
}

.bazi-canggan {
    font-size: 0.68rem;
    color: var(--text-muted);
    line-height: 1.35;
    min-height: 3.8em;
}

.bazi-item .zhi-shishen {
    margin-top: 0.2rem;
    font-size: 0.7rem;
    color: #bca882;
}

.bazi-meta {
    font-size: 0.68rem;
    color: var(--text-muted);
    line-height: 1.45;
}

.bazi-meta--shensha {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.2rem;
    margin-top: 0.2rem;
}

.bazi-meta--shensha .bazi-meta__lab {
    font-size: 0.72rem;
    color: var(--text-muted);
    letter-spacing: 0.04em;
}

.bazi-shensha {
    display: flex;
    flex-wrap: wrap;
    gap: 0.2rem;
    line-height: 1.35;
}

.bazi-shensha__tag {
    display: inline-block;
    padding: 0.08rem 0.28rem;
    border-radius: 3px;
    font-size: 0.68rem;
    font-weight: 600;
    color: #5c4a32;
    background: rgba(139, 105, 60, 0.12);
    border: 1px solid rgba(139, 105, 60, 0.22);
}

.bazi-shensha__tag--muted {
    font-weight: 500;
    color: var(--text-muted);
    background: transparent;
    border-color: transparent;
}

.wx-木 { color: #00a870; }
.wx-火 { color: #e05a5a; }
.wx-土 { color: #c69035; }
.wx-金 { color: rgb(211, 211, 211); }
.wx-水 { color: #2d9ecf; }

.bazi-item .pillar {
    font-size: 2rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    line-height: 1.05;
}

.palace-details {
    margin: 0;
}

.palace-details__summary {
    cursor: pointer;
    list-style: none;
    display: flex;
    align-items: center;
    gap: 0.35rem;
    user-select: none;
}

.palace-details__summary::-webkit-details-marker {
    display: none;
}

.palace-details__summary::before {
    content: '▸';
    flex-shrink: 0;
    font-size: 0.75em;
    line-height: 1;
    color: var(--text-muted);
    transition: transform 0.15s ease;
}

.palace-details[open] > .palace-details__summary::before {
    transform: rotate(90deg);
}

.palace-details > .palace-grid {
    margin-top: 0.55rem;
}

.palace-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.55rem;
}

.palace-item {
    border: 1px solid var(--plain-white-soft);
    border-radius: 12px;
    background: var(--panel-2);
    padding: 0.6rem 0.5rem;
    text-align: center;
}

.palace-item span {
    display: block;
    font-size: 0.72rem;
    color: var(--text-muted);
}

.palace-item b {
    display: block;
    margin-top: 0.18rem;
    font-size: 1.02rem;
    color: var(--text-primary);
}

.palace-item em {
    display: block;
    margin-top: 0.12rem;
    font-size: 0.68rem;
    color: var(--text-muted);
    font-style: normal;
}

#dayunList ul {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

#dayunList li {
    background: var(--panel-1, #fbf5eb);
    border: 1px solid var(--plain-white-soft, rgba(68, 49, 24, 0.1));
    border-radius: 999px;
    padding: 0.35rem 0.85rem;
    font-size: 0.8rem;
    color: var(--text-muted);
}

.liunian-section {
    margin-top: 0.5rem;
    padding-top: 0.5rem;
    border-top: 1px solid var(--plain-white-soft, rgba(68, 49, 24, 0.08));
}

.main-fortune-section {
    margin-top: 1rem;
    padding-top: 0.85rem;
    border-top: 1px solid rgba(236, 199, 131, 0.28);
}

/* 大运流年：与全页同一套米底 + 金色描边，不用深色块 */
.main-fortune-card {
    width: 100%;
    max-width: 100%;
    --fp-bg: rgb(252, 248, 240);
    --fp-bg-2: var(--tone-cream);
    --fp-card: rgba(255, 253, 249, 0.98);
    --fp-card-hover: rgb(255, 252, 246);
    --fp-border: rgba(236, 199, 131, 0.42);
    --fp-text: #3a2f21;
    --fp-muted: rgba(58, 47, 33, 0.52);
    --fp-amber: rgb(145, 108, 48);
    --fp-amber-dim: rgba(236, 199, 131, 0.55);
    --fp-liu-bar: rgb(196, 150, 72);
    background: linear-gradient(165deg, var(--fp-bg) 0%, var(--fp-bg-2) 52%, var(--tone-cream-deep) 100%);
    border: 1px solid var(--fp-border);
    border-radius: 16px;
    padding: 0.95rem 0.85rem 0.85rem;
    display: grid;
    gap: 0.8rem;
    box-shadow:
        0 10px 28px rgba(236, 199, 131, 0.2),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.main-fortune-block-head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.35rem 0.75rem;
    margin-bottom: 0.5rem;
}

.main-fortune-block {
    display: grid;
    gap: 0.42rem;
}

.main-fortune-block-title {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 700;
    color: #8a6a38;
    letter-spacing: 0.01em;
}

.fortune-shell {
    margin-top: 0.4rem;
}

/* 八字结果区：紫微 / 七政 / 奇门 快捷入口（顶栏「排盘结果」与操作钮之间，三钮同宽同高） */
.bazi-extra-charts {
    margin-top: 0.85rem;
    margin-bottom: 0.2rem;
}

.bazi-extra-charts--in-head {
    margin-top: 0;
    margin-bottom: 0;
}

.bazi-extra-charts__lead {
    margin: 0 0 0.32rem;
    padding: 0;
    font-size: 0.76rem;
    font-weight: 600;
    line-height: 1.35;
    color: rgba(58, 47, 33, 0.62);
    letter-spacing: 0.02em;
}

.bazi-extra-charts--in-head .bazi-extra-charts__btn {
    min-height: 2.95rem;
    padding: 0.4rem 0.28rem;
    font-size: 0.74rem;
}

.bazi-extra-charts__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.5rem;
    width: 100%;
    align-items: stretch;
}

.bazi-extra-charts__btn {
    box-sizing: border-box;
    width: 100%;
    min-height: 3.45rem;
    height: 100%;
    margin: 0;
    padding: 0.5rem 0.35rem;
    border-radius: 14px;
    border: 1px solid rgba(138, 112, 82, 0.32);
    background: rgb(255, 243, 224);
    color: #3a2f21;
    font-family: inherit;
    font-size: 0.8rem;
    font-weight: 700;
    line-height: 1.28;
    letter-spacing: 0.02em;
    text-align: center;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    word-break: keep-all;
    transition:
        background 0.2s ease,
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}

.bazi-extra-charts__btn:hover {
    background: rgb(252, 238, 210);
    border-color: rgba(120, 92, 58, 0.38);
    box-shadow: 0 2px 10px rgba(58, 44, 28, 0.08);
}

.bazi-extra-charts__btn:focus-visible {
    outline: 2px solid rgba(200, 160, 100, 0.55);
    outline-offset: 2px;
}

.bazi-extra-charts__btn.bazi-extra-charts__btn--active {
    border-color: rgba(184, 134, 60, 0.75);
    background: rgb(255, 224, 178);
    box-shadow: 0 2px 12px rgba(120, 80, 40, 0.14);
}

@media (max-width: 520px) {
    .bazi-extra-charts__grid {
        gap: 0.38rem;
    }

    .bazi-extra-charts__btn {
        min-height: 3.35rem;
        font-size: 0.72rem;
        padding: 0.42rem 0.22rem;
        line-height: 1.22;
    }
}

/* 八字主栏：录入、奇门壳、结果与「运势专项解读」引导卡 */
.bazi-paipan-stack {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    flex: 1 1 0;
    min-width: 0;
    width: 100%;
}

.fortune-topics-guide-card {
    order: -1;
    margin-bottom: 0.75rem;
    padding: 1rem 1.1rem;
    border-radius: 16px;
    border: 1px solid rgba(200, 170, 120, 0.35);
    background: linear-gradient(160deg, rgba(255, 252, 247, 0.98), rgba(252, 244, 228, 0.94));
    box-shadow: 0 4px 18px rgba(58, 47, 33, 0.06);
}

.fortune-topics-guide-card__text {
    margin: 0 0 0.85rem;
    font-size: 0.95rem;
    line-height: 1.55;
    color: var(--text-primary, #3a2f21);
}

.fortune-topics-guide-card__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem;
}

.fortune-topics-guide-card .fortune-topics-guide-card__btn {
    flex: 1 1 auto;
    min-width: min(11rem, 100%);
    max-width: 18rem;
    /* 继承 primary-btn 视觉，横向排列时覆盖其 width:100% 以免两钮高度/宽度异常 */
    width: auto;
    box-sizing: border-box;
}

.fortune-topics-guide-card .fortune-topics-guide-card__btn--with-note {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.12rem;
}

.fortune-topics-guide-card__btn-note {
    display: block;
    font-size: 0.68rem;
    line-height: 1.25;
    font-weight: 500;
    letter-spacing: 0;
    opacity: 0.9;
}

/* 运势专项解读上方：模态中选定的档案摘要 */
.fortune-topics-selected-profile {
    margin: 0 0 0.85rem;
    padding: 0.9rem 1rem;
    border-radius: 14px;
    border: 1px solid rgba(200, 170, 120, 0.38);
    background: linear-gradient(165deg, rgba(255, 252, 247, 0.98), rgba(252, 244, 228, 0.95));
    box-shadow: 0 4px 16px rgba(58, 47, 33, 0.06);
}

.fortune-topics-selected-profile__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
}

.fortune-topics-selected-profile__body {
    flex: 1;
    min-width: 0;
    cursor: pointer;
    border-radius: 8px;
}

.fortune-topics-selected-profile__body:hover {
    background: rgba(248, 208, 142, 0.14);
}

.fortune-topics-selected-profile__line {
    margin: 0;
    font-size: 0.95rem;
    line-height: 1.65;
    color: var(--text-primary, #3a2f21);
    letter-spacing: 0.02em;
}

.fortune-topics-selected-profile__line + .fortune-topics-selected-profile__line {
    margin-top: 0.25rem;
}

.fortune-topics-selected-profile__change {
    flex: 0 0 auto;
    align-self: flex-start;
    padding: 0.35rem 0.75rem;
    font-size: 0.82rem;
    white-space: nowrap;
}

/* 「选择档案解读」：与主区「我的档案」同结构的模态列表 */
.fortune-archive-modal-overlay {
    position: fixed;
    inset: 0;
    z-index: 1315;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(9, 7, 5, 0.48);
    padding: 1.25rem;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.32s ease, visibility 0.32s ease;
}

.fortune-archive-modal-overlay.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.fortune-archive-modal-overlay .case-archive-view--modal {
    width: min(540px, 94vw);
    max-height: min(86vh, 720px);
    margin: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transform: translateY(8px) scale(0.99);
    opacity: 0.96;
    transition: transform 0.28s ease, opacity 0.28s ease;
}

.fortune-archive-modal-overlay.is-open .case-archive-view--modal {
    transform: translateY(0) scale(1);
    opacity: 1;
}

.case-archive-view__head--modal {
    gap: 0.75rem;
    margin-bottom: 0.35rem;
    flex-shrink: 0;
}

.case-archive-view__head-text {
    flex: 1;
    min-width: 0;
}

.case-archive-view__head-actions {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    flex-shrink: 0;
}

.case-archive-view--modal .case-archive-view__search {
    flex-shrink: 0;
}

.case-archive-view--modal .case-archive-view__list {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    margin-top: 0.35rem;
}

/* 从首页「运势报告」直达：首屏勿闪出八字/奇门录入区 */
html.boot-fortune-topics #unifiedPaipanShell,
html.boot-fortune-topics #qimenResultShell,
html.boot-fortune-topics #liurenResultShell,
html.boot-fortune-topics #qizhengResultShell,
html.boot-fortune-topics #caseDetailArea,
html.boot-fortune-topics .bazi-paipan-stack > section.form-shell {
    display: none !important;
}

html.boot-fortune-topics #fortuneTopicsSection.fortune-topics-shell,
html.boot-fortune-topics #fortuneTopicsGuideCard {
    display: block !important;
}

/* 右侧「运势专项解读」栏：默认隐藏；有排盘结果或从侧栏进入专项模式时显示 */
#fortuneTopicsSection.fortune-topics-shell {
    display: none !important;
}

.main-inner.calcLayout--fortune-sidebar #fortuneTopicsSection.fortune-topics-shell {
    display: flex !important;
    flex-direction: column;
    margin-top: 0.35rem;
    gap: 0;
}

/* 运势专项解读独占主区：隐藏八字录入、排盘结果与奇门/六壬/七政结果壳 */
.main-inner.calcLayout--fortune-sidebar #caseDetailArea.result-shell,
.main-inner.calcLayout--fortune-sidebar #unifiedPaipanShell.unified-paipan-shell,
.main-inner.calcLayout--fortune-sidebar #qimenResultShell,
.main-inner.calcLayout--fortune-sidebar #liurenResultShell,
.main-inner.calcLayout--fortune-sidebar #qizhengResultShell {
    display: none !important;
}

/* 已有排盘结果再点「运势解读」：压过 has-result.view-paipan 的 display:block，只保留运势区 */
.main-inner.has-result.view-paipan.calcLayout--fortune-sidebar #caseDetailArea.result-shell,
.main-inner.has-result.calcLayout--fortune-sidebar #caseDetailArea.result-shell {
    display: none !important;
    visibility: hidden !important;
}

.main-inner.has-result.calcLayout--fortune-sidebar.view-paipan #baziPaipanStack {
    display: flex !important;
    flex-direction: column;
    width: 100%;
    max-width: none;
}

.main-inner.has-result.calcLayout--fortune-sidebar.view-paipan #baziPaipanStack > #caseDetailArea,
.main-inner.has-result.calcLayout--fortune-sidebar.view-paipan #baziPaipanStack > .form-shell,
.main-inner.has-result.calcLayout--fortune-sidebar.view-paipan #baziPaipanStack > #unifiedPaipanShell {
    display: none !important;
}

.main-inner.has-result.calcLayout--fortune-sidebar.view-paipan #fortuneTopicsSection.fortune-topics-shell,
.main-inner.has-result.calcLayout--fortune-sidebar.view-paipan #fortuneTopicsGuideCard:not([hidden]) {
    display: flex !important;
}

.main-inner.has-result.calcLayout--fortune-sidebar.view-paipan #fortuneTopicsGuideCard:not([hidden]) {
    display: block !important;
}

/* 覆盖 result-only-view / has-*-result 对术数结果壳的显式展示 */
.main-inner.calcLayout--fortune-sidebar.result-only-view #qimenResultShell,
.main-inner.calcLayout--fortune-sidebar.result-only-view #liurenResultShell,
.main-inner.calcLayout--fortune-sidebar.result-only-view #qizhengResultShell,
.main-inner.calcLayout--fortune-sidebar.has-qimen-result #qimenResultShell,
.main-inner.calcLayout--fortune-sidebar.has-liuren-result #liurenResultShell,
.main-inner.calcLayout--fortune-sidebar.has-qizheng-result #qizhengResultShell {
    display: none !important;
}

.main-inner.calcLayout--fortune-sidebar.view-paipan #baziPaipanStack {
    width: 100%;
    max-width: none;
    min-width: 0;
}

.main-inner.calcLayout--fortune-sidebar #fortuneTopicsSection.fortune-topics-shell {
    margin-top: 0;
    width: 100%;
    max-width: none;
}

.main-inner.view-case-archive #fortuneTopicsSection.fortune-topics-shell,
.main-inner.view-exam-bank #fortuneTopicsSection.fortune-topics-shell,
.main-inner.view-me-profile #fortuneTopicsSection.fortune-topics-shell,
.main-inner.view-ai-chat-history #fortuneTopicsSection.fortune-topics-shell,
.main-inner.view-qimen #fortuneTopicsSection.fortune-topics-shell {
    display: none !important;
}

/* 专项入口且无排盘结果：隐藏全部录入壳（含奇门录入）；仅保留引导卡 */
.main-inner.calcLayout--fortune-sidebar:not(.has-result).view-paipan
    .bazi-paipan-stack
    > section.form-shell,
.main-inner.calcLayout--fortune-sidebar:not(.has-result).view-paipan
    .bazi-paipan-stack
    > .unified-paipan-shell,
.main-inner.calcLayout--fortune-sidebar.view-paipan .bazi-paipan-stack > section.form-shell.qimen-input-shell {
    display: none !important;
}

.main-inner.calcLayout--fortune-sidebar.view-paipan #fortuneTopicsGuideCard:not([hidden]) {
    display: block !important;
}

.main-inner.calcLayout--fortune-sidebar:not(.has-result).view-paipan #caseDetailArea {
    display: none !important;
}

.main-inner.calcLayout--fortune-sidebar.view-paipan:not(.has-result) #mainContentGrid.content-grid {
    display: flex !important;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: stretch;
    justify-content: flex-start;
    gap: 1rem;
}

.main-inner.calcLayout--fortune-sidebar.view-paipan:not(.has-result) #baziPaipanStack {
    flex: 0 0 auto;
    width: 100%;
    max-width: none;
    min-width: 0;
}

.main-inner.calcLayout--fortune-sidebar.view-paipan:not(.has-result) #fortuneTopicsSection.fortune-topics-shell {
    flex: 0 1 auto;
    width: 100%;
    max-width: none;
    margin-top: 0;
    position: static;
    align-self: stretch;
}

@media (min-width: 992px) {
    .main-inner.has-result #mainContentGrid.content-grid {
        display: flex !important;
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: flex-start;
        justify-content: flex-start;
        gap: 1.25rem;
    }

    .main-inner.has-result #baziPaipanStack {
        flex: 1 1 0;
        min-width: 0;
    }

    /* 已有排盘结果后点击「运势专项解读」：改为同列跳转，不再右侧并栏 */
    .main-inner.has-result.calcLayout--fortune-sidebar #mainContentGrid.content-grid {
        flex-direction: column;
        flex-wrap: nowrap;
        gap: 1rem;
    }

    .main-inner.has-result.calcLayout--fortune-sidebar #baziPaipanStack {
        flex: 1 1 auto;
        width: 100%;
    }

    .main-inner.has-result.calcLayout--fortune-sidebar #fortuneTopicsSection.fortune-topics-shell {
        flex: 1 1 auto;
        width: 100%;
        max-width: none;
        margin-top: 0;
        position: static;
        top: auto;
        align-self: stretch;
    }
}

@media (max-width: 991px) {
    .main-inner.has-result #mainContentGrid.content-grid {
        display: flex !important;
        flex-direction: column;
        flex-wrap: wrap;
        gap: 1rem;
    }

    .main-inner.has-result.calcLayout--fortune-sidebar #fortuneTopicsSection.fortune-topics-shell {
        width: 100%;
        max-width: none;
        flex: 1 1 auto;
    }
}

/* 结果纯净视图优先级最高：覆盖 has-result 双栏规则，回到单栏排盘结果 */
.main-inner.has-result.result-only-view #mainContentGrid.content-grid {
    display: block !important;
}

.main-inner.has-result.result-only-view #baziPaipanStack {
    width: 100% !important;
    max-width: none !important;
    flex: 1 1 100% !important;
}

.main-inner.has-result.result-only-view #caseDetailArea.result-shell {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
}

.main-inner.has-result.result-only-view #fortuneTopicsSection.fortune-topics-shell {
    display: none !important;
}

/* 已点「运势专项解读」：覆盖 result-only-view / result-form-collapsed 下误隐藏专项区的规则 */
.main-inner.has-result.result-only-view.calcLayout--fortune-sidebar #fortuneTopicsSection.fortune-topics-shell,
.main-inner.has-result.result-form-collapsed.calcLayout--fortune-sidebar #fortuneTopicsSection.fortune-topics-shell {
    display: flex !important;
    flex-direction: column;
    margin-top: 0.35rem;
    gap: 0;
}

@media (max-width: 520px) {
    .ask-human-teacher-fab {
        bottom: max(4.25rem, calc(env(safe-area-inset-bottom, 0px) + 3.55rem));
        min-width: 6.7rem;
        height: 2.2rem;
        font-size: 0.8rem;
    }

    .secondary-btn,
    .primary-btn {
        max-width: min(100%, 8.8rem);
        padding: 0.42rem 0.78rem;
        font-size: 0.8rem;
        line-height: 1.2;
        white-space: nowrap;
    }

    #saveBtn.secondary-btn {
        max-width: min(100%, 7.8rem);
        padding: 0.4rem 0.72rem;
        font-size: 0.78rem;
    }
}

/* 专业解盘：外层收纳全部专题；未解锁时不可展开内层 */
.pro-reading-bundle {
    margin-top: 0.75rem;
    border-radius: 16px;
    border: 1px solid rgba(210, 185, 130, 0.42);
    background: linear-gradient(165deg, rgba(255, 254, 250, 0.99), rgba(252, 246, 232, 0.95));
    box-shadow: 0 2px 14px rgba(60, 42, 18, 0.06);
    overflow: hidden;
}

.pro-reading-bundle__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    width: 100%;
    min-height: 3.25rem;
    padding: 0.85rem 1rem;
    box-sizing: border-box;
    border: 0;
    cursor: pointer;
    text-align: left;
    font: inherit;
    color: inherit;
    /* 高亮条：更亮的浅金/近白渐变 + 强内高光 + 外晕光 */
    background:
        radial-gradient(120% 180% at 50% -20%, rgba(255, 255, 255, 0.95) 0%, rgba(255, 255, 255, 0) 55%),
        linear-gradient(
            125deg,
            rgba(255, 255, 252, 1) 0%,
            rgba(255, 252, 235, 1) 38%,
            rgba(255, 246, 215, 0.98) 72%,
            rgba(255, 238, 198, 0.96) 100%
        );
    box-shadow:
        inset 0 2px 0 rgba(255, 255, 255, 0.95),
        inset 0 -1px 0 rgba(255, 220, 160, 0.35),
        0 0 0 1px rgba(230, 195, 130, 0.55),
        0 0 28px rgba(255, 210, 120, 0.38),
        0 6px 22px rgba(200, 150, 60, 0.12);
    transition:
        background 0.22s ease,
        box-shadow 0.22s ease;
}

.pro-reading-bundle__header:hover {
    background:
        radial-gradient(110% 160% at 50% -25%, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 50%),
        linear-gradient(
            125deg,
            rgba(255, 255, 255, 1) 0%,
            rgba(255, 253, 242, 1) 40%,
            rgba(255, 248, 225, 1) 75%,
            rgba(255, 242, 210, 0.98) 100%
        );
    box-shadow:
        inset 0 2px 0 rgba(255, 255, 255, 1),
        inset 0 -1px 0 rgba(255, 228, 170, 0.45),
        0 0 0 1px rgba(235, 205, 140, 0.65),
        0 0 36px rgba(255, 220, 130, 0.48),
        0 8px 28px rgba(210, 165, 70, 0.14);
}

@media (prefers-reduced-motion: reduce) {
    .pro-reading-bundle__header {
        transition: none;
    }
}

.pro-reading-bundle__header:focus-visible {
    outline: 2px solid rgba(188, 132, 56, 0.65);
    outline-offset: 2px;
}

.pro-reading-bundle__header[aria-disabled='true'] {
    cursor: pointer;
}

.pro-reading-bundle__title-row {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.18rem;
    flex: 0 1 auto;
    min-width: 0;
}

.pro-reading-bundle__prompt {
    flex: 1;
    min-width: 0;
    /* 与左侧「专业解盘」标题 .pro-reading-bundle__title 一致：无衬线、加粗、深色 */
    font-family: inherit;
    font-size: 1.08rem;
    font-weight: 700;
    line-height: 1.35;
    letter-spacing: 0.02em;
    color: var(--text-strong, #2b2215);
    text-align: center;
    padding: 0;
    margin: 0;
    transform: none;
    max-width: none;
    background: none;
    border-radius: 0;
    box-shadow: none;
    text-shadow: none;
    white-space: normal;
    word-break: keep-all;
    overflow-wrap: break-word;
    writing-mode: horizontal-tb;
    text-orientation: mixed;
}

.pro-reading-bundle__end {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex-shrink: 0;
}

.pro-reading-bundle__title {
    font-size: 1.08rem;
    font-weight: 700;
    color: var(--text-strong, #2b2215);
    letter-spacing: 0.02em;
}
.pro-reading-bundle__title-note {
    font-size: 0.82em;
    font-weight: 600;
    color: #7a7064;
    margin-left: 0.15em;
}


.pro-reading-bundle__hint {
    font-size: 0.78rem;
    line-height: 1.35;
    color: rgba(120, 82, 30, 0.78);
    display: none;
}

.pro-reading-bundle.is-locked .pro-reading-bundle__hint {
    display: block;
}

.pro-reading-bundle .pro-reading-bundle__lock {
    position: static;
    flex-shrink: 0;
    align-self: center;
}

.pro-reading-bundle__chevron {
    flex-shrink: 0;
    width: 0.55rem;
    height: 0.55rem;
    margin-left: 0.25rem;
    border-right: 2px solid rgba(120, 82, 30, 0.55);
    border-bottom: 2px solid rgba(120, 82, 30, 0.55);
    transform: rotate(45deg);
    transition: transform 0.22s ease, opacity 0.2s ease;
}

.pro-reading-bundle.is-open .pro-reading-bundle__chevron {
    transform: rotate(225deg);
}

.kb-predict-bundle.is-open .pro-reading-bundle__chevron {
    transform: rotate(225deg);
}

.pro-reading-bundle.is-locked .pro-reading-bundle__chevron {
    opacity: 0.38;
}

/* 平板与手机：专业解盘顶栏改为两行栅格，避免标语被挤成「一字一列」、锁标与文字叠压 */
@media (max-width: 1024px) {
    .pro-reading-bundle__header {
        position: relative;
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-rows: auto auto;
        align-items: start;
        column-gap: 0.55rem;
        row-gap: 0.5rem;
        min-height: auto;
        padding: 0.75rem 0.85rem;
    }

    .pro-reading-bundle__title-row {
        grid-column: 1;
        grid-row: 1;
        min-width: 0;
        max-width: 100%;
        overflow: hidden;
    }

    .pro-reading-bundle__end {
        grid-column: 2;
        grid-row: 1;
        justify-self: end;
        align-self: start;
        margin-top: 0.05rem;
        max-width: 4.6rem;
        min-width: 3.2rem;
    }

    .pro-reading-bundle__prompt {
        grid-column: 1 / -1;
        grid-row: 2;
        flex: none;
        width: 100%;
        max-width: none;
        margin: 0;
        transform: none;
        padding: 0;
        text-align: center;
        letter-spacing: 0.02em;
        font-size: clamp(0.98rem, 2.4vw, 1.08rem);
        font-weight: 700;
        line-height: 1.45;
        color: var(--text-strong, #2b2215);
        overflow-wrap: break-word;
        word-break: keep-all;
        white-space: normal;
        writing-mode: horizontal-tb;
        text-orientation: mixed;
    }

    .pro-reading-bundle__title {
        font-size: clamp(0.98rem, 2.4vw, 1.05rem);
    }

    .pro-reading-bundle__hint {
        font-size: 0.74rem;
        line-height: 1.35;
        max-width: 100%;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .ai-text {
        padding: 0.85rem 0.75rem;
        font-size: clamp(0.94rem, 3.4vw, 1.02rem);
        line-height: 1.68;
    }

    .fortune-topic-card__main {
        min-height: auto;
        padding: 0.62rem 0.8rem 0.38rem;
    }

    .fortune-topic-card__title,
    .fortune-topic-card__hint {
        max-width: 100%;
        overflow-wrap: break-word;
    }

    .fortune-topic-card__kicker {
        letter-spacing: 0.06em;
    }

    .fortune-topic-card__method-panel {
        position: static;
        width: calc(100% - 1.16rem);
        margin: 0 0.58rem 0.4rem;
    }

    .fortune-topic-card__dropdown {
        margin: 0 0.58rem 0.45rem;
    }

    .main-fortune-block-head {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.3rem;
    }

    .geju-ziping-card {
        padding: 0.85rem 0.72rem 0.9rem;
        margin-left: 0;
        margin-right: 0;
    }

    .geju-ziping-pattern {
        letter-spacing: 0.08em;
        font-size: clamp(1.32rem, 5.2vw, 1.88rem);
    }

    .geju-ziping-poem {
        font-size: clamp(1.02rem, 4vw, 1.12rem);
        padding: 0.62rem 0.65rem;
    }

    .useful-elements-card,
    .lifetime-fortune-card {
        padding: 0.72rem 0.7rem;
    }

    .pro-reading-bundle .pro-reading-bundle__panel {
        padding: 0.45rem 0.38rem 0.55rem;
    }
}

/* 超窄手机（含部分 iOS WebView）进一步收敛标题区比例，防止中间文案被挤窄 */
@media (max-width: 520px) {
    .pro-reading-bundle__header {
        grid-template-columns: minmax(0, 1fr) auto;
        row-gap: 0.42rem;
        column-gap: 0.42rem;
        padding: 0.72rem 0.72rem;
    }

    .pro-reading-bundle__title-row {
        gap: 0.14rem;
    }

    .pro-reading-bundle__prompt {
        font-size: 0.98rem;
        font-weight: 700;
        letter-spacing: 0.02em;
        line-height: 1.45;
        color: var(--text-strong, #2b2215);
        transform: none;
    }

    .pro-reading-bundle__end {
        gap: 0.26rem;
        margin-top: 0;
        max-width: 4rem;
        min-width: 2.9rem;
    }

    .pro-reading-bundle .pro-reading-bundle__lock {
        font-size: 0.62rem;
        padding: 0.08rem 0.22rem;
        border-radius: 999px;
    }
}

/* iOS Safari / WKWebView 渲染兼容：防止文字方向错误与字号膨胀 */
@supports (-webkit-touch-callout: none) {
    .pro-reading-bundle__prompt {
        -webkit-text-size-adjust: 100%;
        writing-mode: horizontal-tb;
        text-orientation: mixed;
    }
}

.pro-reading-bundle__panel {
    border-top: 1px solid rgba(195, 167, 111, 0.22);
    padding: 0.5rem 0.45rem 0.65rem;
}

.pro-reading-bundle__panel[hidden] {
    display: none !important;
}

.pro-reading-bundle__panel .fortune-topic-cards {
    margin-top: 0;
}

.fortune-topic-cards {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.72rem;
    margin-top: 0.75rem;
    max-width: 100%;
    align-items: stretch;
    --fortune-topic-sections-h: 11rem;
}

.fortune-topic-card {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.45rem;
    box-sizing: border-box;
    padding: 0.2rem;
    border-radius: 14px;
    border: 1px solid rgba(195, 167, 111, 0.32);
    background: linear-gradient(165deg, rgba(255, 252, 244, 0.95), rgba(247, 239, 226, 0.88));
    box-shadow: 0 2px 10px rgba(60, 42, 18, 0.06);
    transition:
        border-color 0.22s ease,
        box-shadow 0.22s ease,
        background 0.22s ease;
    cursor: pointer;
}

@media (prefers-reduced-motion: reduce) {
    .fortune-topic-card {
        transition: none;
    }
}

.fortune-topic-card:hover {
    border-color: rgba(188, 132, 56, 0.55);
    box-shadow:
        0 0 0 1px rgba(212, 168, 88, 0.28),
        0 6px 22px rgba(60, 42, 18, 0.12);
    background: linear-gradient(165deg, rgba(255, 253, 246, 0.99), rgba(252, 243, 228, 0.95));
}

.fortune-topic-card__main {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 0.22rem;
    min-height: 4.65rem;
    box-sizing: border-box;
    width: 100%;
    padding: 0.75rem 4.1rem 0.32rem 0.95rem;
    border-radius: 14px;
    border: 0;
    background: transparent;
    cursor: pointer;
    text-align: left;
    color: inherit;
    font: inherit;
    transition:
        transform 0.2s ease,
        background 0.2s ease,
        box-shadow 0.2s ease;
}

.fortune-topic-card__method-panel {
    position: relative;
    display: flex;
    flex-direction: column;
    align-self: stretch;
    width: calc(100% - 1.2rem);
    margin: -0.1rem 0.6rem 0.15rem;
    padding: 0.52rem 0.55rem 0.48rem;
    border-radius: 12px;
    border: 1px solid rgba(190, 165, 120, 0.5);
    background: linear-gradient(180deg, rgba(255, 253, 246, 0.97), rgba(250, 244, 233, 0.93));
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.7),
        0 2px 8px rgba(98, 71, 33, 0.08);
    box-sizing: border-box;
}

.fortune-topic-card__method-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.94rem;
    font-weight: 600;
    color: #5c492e;
    line-height: 1.38;
    margin: 0.18rem 0;
    padding: 0.2rem 0.28rem;
    border-radius: 8px;
    transition: background 0.18s ease;
    cursor: pointer;
}
.fortune-topic-card__method-item.is-disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

.fortune-topic-card__method-item--unavailable {
    display: block;
    margin: 0.18rem 0;
    padding: 0.2rem 0.28rem;
    font-size: 0.94rem;
    font-weight: 500;
    line-height: 1.38;
    color: #a8a095;
    cursor: default;
    user-select: none;
}

.fortune-topic-card__method-item:hover {
    background: rgba(205, 168, 103, 0.12);
}

.fortune-topic-card__method-check {
    margin: 0;
    width: 1.05rem;
    height: 1.05rem;
    border-radius: 4px;
    border: 1px solid rgba(185, 136, 66, 0.62);
    background: #fffdf8;
    appearance: none;
    -webkit-appearance: none;
    position: relative;
    flex: 0 0 auto;
    cursor: pointer;
    transition:
        border-color 0.18s ease,
        background 0.18s ease,
        box-shadow 0.18s ease;
}

.fortune-topic-card__method-check:hover {
    border-color: rgba(171, 116, 40, 0.88);
}

.fortune-topic-card__method-check:checked {
    border-color: #b97d38;
    background: linear-gradient(180deg, #f1cb8e, #d9a65f);
    box-shadow: 0 0 0 2px rgba(217, 166, 95, 0.22);
}

.fortune-topic-card__method-check:checked::after {
    content: '';
    position: absolute;
    left: 0.31rem;
    top: 0.1rem;
    width: 0.26rem;
    height: 0.54rem;
    border: solid rgba(72, 42, 8, 0.92);
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

.fortune-topic-card__method-check:focus-visible {
    outline: none;
    box-shadow: 0 0 0 2px rgba(217, 166, 95, 0.25);
}

.fortune-topic-card__lock,
.pro-reading-bundle__lock,
#proReadingBundleHint {
    display: none !important;
}

.fortune-topic-card__method-panel .fortune-topic-card__copy-ai-btn.is-locked,
.fortune-topic-card__method-panel .fortune-topic-card__copy-ai-btn.is-no-profile {
    opacity: 0.82;
    filter: saturate(0.88);
    cursor: pointer;
}

.fortune-topic-card__method-panel .fortune-topic-card__copy-ai-btn.is-locked:hover,
.fortune-topic-card__method-panel .fortune-topic-card__copy-ai-btn.is-no-profile:hover {
    opacity: 0.92;
    filter: saturate(0.95);
}

.fortune-topic-card__method-panel .fortune-topic-card__copy-ai-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    width: 100%;
    margin-top: auto;
    padding: 0.62rem 0.9rem;
    border: 1px solid color-mix(in srgb, var(--tone-gold-deep) 62%, transparent);
    border-radius: 12px;
    background: linear-gradient(180deg, rgb(244, 214, 160) 0%, var(--tone-gold) 48%, var(--tone-gold-deep) 100%);
    color: var(--cream-text);
    font-size: 0.98rem;
    font-weight: 700;
    font-family: inherit;
    letter-spacing: 0.06em;
    cursor: pointer;
    box-shadow:
        0 6px 20px color-mix(in srgb, var(--tone-gold) 48%, transparent),
        inset 0 1px 0 rgba(255, 255, 255, 0.45);
    transition:
        background 0.2s ease,
        border-color 0.2s ease,
        transform 0.15s ease,
        box-shadow 0.2s ease;
}

.fortune-topic-card__method-panel .fortune-topic-card__copy-ai-btn::before {
    content: '⎘';
    font-size: 1.05rem;
    line-height: 1;
    opacity: 0.9;
}

.fortune-topic-card__method-panel .fortune-topic-card__copy-ai-btn:hover {
    background: linear-gradient(180deg, var(--accent-hover) 0%, var(--tone-gold) 100%);
    border-color: color-mix(in srgb, var(--tone-gold-deep) 82%, transparent);
    transform: translateY(-1px);
    box-shadow:
        0 8px 24px color-mix(in srgb, var(--tone-gold) 58%, transparent),
        inset 0 1px 0 rgba(255, 255, 255, 0.55);
}

.fortune-topic-card__method-panel .fortune-topic-card__copy-ai-btn:active {
    transform: translateY(0);
    box-shadow:
        0 3px 12px color-mix(in srgb, var(--tone-gold) 38%, transparent),
        inset 0 1px 0 rgba(255, 255, 255, 0.3);
}

.fortune-topic-card__method-panel .fortune-topic-card__copy-ai-btn:focus-visible {
    outline: none;
    box-shadow:
        0 0 0 3px color-mix(in srgb, var(--tone-gold) 38%, transparent),
        0 6px 20px color-mix(in srgb, var(--tone-gold) 48%, transparent);
}

.fortune-topic-card__method-panel .fortune-topic-card__copy-ai-btn.is-loading {
    cursor: wait;
    pointer-events: none;
    opacity: 0.92;
    transform: none;
}

.fortune-topic-card__method-panel .fortune-topic-card__copy-ai-btn.is-loading::before {
    content: '';
    width: 0.9rem;
    height: 0.9rem;
    border: 2px solid color-mix(in srgb, var(--cream-text) 35%, transparent);
    border-top-color: currentColor;
    border-radius: 50%;
    opacity: 1;
    animation: fortune-topic-copy-spin 0.7s linear infinite;
}

.fortune-topic-card__method-panel .fortune-topic-card__copy-ai-btn.is-copied::before {
    content: '✓';
    opacity: 1;
}

@keyframes fortune-topic-copy-spin {
    to {
        transform: rotate(360deg);
    }
}

body.theme-ink .fortune-topic-card__method-panel .fortune-topic-card__copy-ai-btn {
    border-color: color-mix(in srgb, var(--tone-gold) 52%, transparent);
    color: #2a2118;
    box-shadow:
        0 6px 22px rgba(236, 199, 131, 0.32),
        inset 0 1px 0 rgba(255, 255, 255, 0.38);
}

body.theme-ink .fortune-topic-card__method-panel .fortune-topic-card__copy-ai-btn:hover {
    box-shadow:
        0 8px 26px rgba(236, 199, 131, 0.42),
        inset 0 1px 0 rgba(255, 255, 255, 0.48);
}

.fortune-topic-card__ai-jumps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.35rem;
    width: 100%;
    margin-top: 0.42rem;
    box-sizing: border-box;
}

.fortune-topic-card__ai-jump {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.05rem;
    padding: 0.38rem 0.28rem;
    border: 1px solid rgba(126, 96, 58, 0.28);
    border-radius: 999px;
    background: rgba(255, 252, 247, 0.96);
    color: #5a4a34;
    font-family: inherit;
    font-size: 0.72rem;
    font-weight: 650;
    letter-spacing: 0.02em;
    line-height: 1.25;
    cursor: pointer;
    transition:
        background 0.18s ease,
        border-color 0.18s ease,
        transform 0.12s ease,
        box-shadow 0.18s ease;
}

.fortune-topic-card__ai-jump:hover {
    background: #fff8ee;
    border-color: rgba(185, 136, 66, 0.55);
    transform: translateY(-1px);
    box-shadow: 0 3px 10px rgba(98, 71, 33, 0.1);
}

.fortune-topic-card__ai-jump:active {
    transform: translateY(0);
}

.fortune-topic-card__ai-jump:focus-visible {
    outline: none;
    box-shadow: 0 0 0 2px rgba(217, 166, 95, 0.35);
}

.fortune-topic-card__ai-jump.is-locked,
.fortune-topic-card__ai-jump.is-no-profile {
    opacity: 0.82;
    filter: saturate(0.88);
}

.fortune-topic-card__result-area {
    margin: 0.22rem 0.6rem 0.4rem;
    display: grid;
    gap: 0.42rem;
}
.fortune-topic-result-empty,
.fortune-topic-result-loading {
    border: 1px dashed rgba(190, 158, 109, 0.42);
    border-radius: 12px;
    padding: 0.7rem 0.85rem;
    font-size: 0.96rem;
    line-height: 1.68;
    color: var(--text-muted);
    background: var(--panel-2);
}
.fortune-topic-result-item {
    border-radius: 12px;
    padding: 0.9rem 1rem;
    background: var(--panel-2);
    border: 1px solid var(--plain-white-soft);
    border-left: 4px solid #b79a72;
    margin-top: 0.18rem;
}
.fortune-topic-result-item__title {
    margin: 0;
    font-size: 0.98rem;
    font-weight: 700;
    color: var(--gold);
    letter-spacing: 0.02em;
}
.fortune-topic-result-item__body {
    margin: 0.4rem 0 0;
    font-size: 0.96rem;
    line-height: 1.72;
    color: var(--text-muted);
    white-space: pre-wrap;
}
/* 性格学历面板：13 子标题排版（ft-13，勿用于其他运势专题模态） */
.ft-13 {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}
.ft-13--embedded {
    gap: 0.28rem;
}
.ft-13__part {
    border-radius: 12px;
    padding: 0.75rem 0.85rem 0.85rem;
    border: 1px solid rgba(195, 167, 111, 0.35);
    background: linear-gradient(165deg, rgba(255, 252, 246, 0.98), rgba(249, 241, 226, 0.92));
}
.ft-13__part--ziwei {
    background: linear-gradient(165deg, rgba(248, 244, 255, 0.98), rgba(232, 224, 255, 0.5));
    border-color: rgba(160, 140, 200, 0.35);
}
.ft-13__part--syn {
    background: linear-gradient(165deg, rgba(236, 252, 244, 0.95), rgba(220, 245, 228, 0.45));
    border-color: rgba(120, 170, 130, 0.38);
}
.ft-13__part-title {
    margin: 0 0 0.55rem;
    font-size: 1.02rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    color: rgba(58, 44, 24, 0.95);
    border-bottom: 1px solid rgba(195, 167, 111, 0.35);
    padding-bottom: 0.4rem;
}
.ft-13__part--ziwei .ft-13__part-title {
    color: rgba(62, 48, 98, 0.95);
    border-bottom-color: rgba(160, 140, 200, 0.35);
}
.ft-13__part--syn .ft-13__part-title {
    color: rgba(34, 78, 48, 0.92);
    border-bottom-color: rgba(120, 170, 130, 0.4);
}
.ft-13__divider {
    border: none;
    border-top: 1px dashed rgba(160, 140, 200, 0.45);
    margin: 0.35rem 0;
}
.ft-13__sec {
    margin-bottom: 0.42rem;
}
.ft-13__h {
    margin: 0 0 0.2rem;
    font-size: 0.88rem;
    font-weight: 700;
    color: rgba(43, 34, 21, 0.9);
}
.ft-13__part--ziwei .ft-13__h {
    color: rgba(62, 48, 98, 0.88);
}
.ft-13__p {
    margin: 0;
    font-size: 0.84rem;
    line-height: 1.65;
    color: rgba(43, 34, 21, 0.88);
    word-break: break-word;
}
.ft-13__p--syn {
    font-weight: 500;
}
.ft-13__ul {
    margin: 0 0 0.1rem 1rem;
    padding: 0;
    font-size: 0.84rem;
    line-height: 1.62;
    color: rgba(43, 34, 21, 0.88);
}
.ft-13__ul li {
    margin: 0 0 0.22rem;
}
.ft-13__muted {
    margin: 0;
    font-size: 0.84rem;
    color: rgba(78, 52, 120, 0.85);
}
.ft-13__foot {
    margin: 0.35rem 0 0;
    padding: 0.5rem 0.6rem;
    border-radius: 10px;
    background: rgba(184, 134, 11, 0.08);
    font-size: 0.76rem;
    line-height: 1.5;
    color: rgba(58, 47, 33, 0.78);
}
.ft-13__kv {
    margin-top: 0.45rem;
    padding-top: 0.45rem;
    border-top: 1px solid rgba(195, 167, 111, 0.25);
    font-size: 0.78rem;
    line-height: 1.55;
    color: rgba(58, 47, 33, 0.78);
}
.ft-13__part--ziwei .ft-13__kv {
    border-top-color: rgba(160, 140, 200, 0.28);
}
.ft-13__kv-p {
    margin: 0 0 0.25rem;
}

/* 财富层次：ft-13 分块（与性格学历同系视觉） */
.ft-13--wealth {
    gap: 0.5rem;
}
.ft-13__part--wealth-bazi .wealth-tier-alert {
    margin-bottom: 0.35rem;
}
.ft-13__part--wealth-bazi .wealth-report-headline {
    margin: 0 0 0.4rem;
}
.ft-13__wealth-secs {
    display: flex;
    flex-direction: column;
    gap: 0.32rem;
}
.ft-13__sec--wealth {
    margin-bottom: 0.08rem;
}
.ft-13__sec--wealth .ft-13__h {
    margin-bottom: 0.2rem;
}
.ft-13__wealth-richtext.wealth-report-body {
    font-size: 0.86rem;
    line-height: 1.68;
}
.ft-13__part--wealth-debt {
    background: linear-gradient(165deg, rgba(255, 252, 246, 0.96), rgba(249, 241, 226, 0.85));
    border: 1px solid rgba(195, 167, 111, 0.32);
    border-radius: 12px;
    padding: 0.65rem 0.85rem;
}
.ft-13__part--wealth-chart {
    background: rgba(255, 252, 246, 0.55);
    border: 1px solid rgba(195, 167, 111, 0.28);
    border-radius: 12px;
    padding: 0.65rem 0.75rem 0.75rem;
}
.ft-13__part--wealth-chart.wealth-k-wrap {
    margin-top: 0;
}
.ft-13--wealth-divination {
    gap: 0.42rem;
    margin-bottom: 0.25rem;
}
.ft-13__part--wealth-method {
    padding: 0.72rem 0.86rem 0.8rem;
}
.ft-13__part--wealth-method .ft-13__wealth-richtext.wealth-report-body {
    font-size: 0.85rem;
}
.ft-13__p--wealth-hint {
    font-size: 0.8rem;
    color: rgba(58, 47, 33, 0.78);
    margin: 0 0 0.42rem;
}

.fortune-panel .ft-13--wealth .ft-13__part--wealth-bazi {
    padding: 1.1rem 1.2rem;
}
.fortune-panel .ft-13--wealth .ft-13__h {
    font-size: 1.08rem;
}
.fortune-panel .ft-13--wealth .ft-13__wealth-richtext.wealth-report-body,
.fortune-panel .ft-13--wealth .ft-13__wealth-richtext .wealth-report-ul {
    font-size: 1rem;
}
.fortune-panel .ft-13--wealth-divination .ft-13__part-title {
    font-size: 1.04rem;
}

.fortune-topic-modal-result {
    margin-top: 0.88rem;
    border-top: 1px dashed var(--plain-white-soft);
    padding-top: 0.8rem;
}
.fortune-topic-result-block__heading {
    margin: 0 0 0.52rem 0;
    font-size: 0.98rem;
    font-weight: 600;
    color: var(--cream-text);
    line-height: 1.5;
}
.fortune-topic-result-item--bazi {
    border-left-color: #d35b4e;
}
.fortune-topic-result-item--ziwei {
    border-left-color: #7e57c2;
    background: var(--panel-2);
    border-color: var(--plain-white-soft);
}
.fortune-topic-result-item--qizheng {
    border-left-color: #2f74d0;
}
.fortune-topic-result-item--qimen {
    border-left-color: #2e9b5b;
}
.fortune-topic-result-item--liuren {
    border-left-color: #c47a2c;
}

.fortune-topic-result-group {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.fortune-topic-result-group--qimen {
    margin-top: 0.65rem;
    padding-top: 0.72rem;
    border-top: 1px dashed rgba(188, 132, 56, 0.45);
}

.fortune-topic-result-group__title {
    margin: 0 0 0.12rem 0;
    font-size: 0.92rem;
    font-weight: 700;
    color: var(--gold);
    letter-spacing: 0.02em;
}

.fortune-topic-result-group__hint {
    margin: 0 0 0.08rem 0;
    font-size: 0.76rem;
    line-height: 1.45;
    font-weight: 600;
    color: rgba(120, 92, 56, 0.88);
}

/* 性格学历：八字与紫微双解并排（宽屏） */
.fortune-topic-result-pe-duo {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.55rem;
    margin-bottom: 0.35rem;
}

@media (min-width: 880px) {
    .fortune-topic-result-pe-duo {
        grid-template-columns: 1fr 1fr;
        align-items: start;
    }
}

.fortune-topic-result-pe-duo .fortune-topic-result-item--bazi {
    background: linear-gradient(180deg, rgba(255, 244, 228, 0.95), rgba(255, 228, 198, 0.42));
}

.fortune-topic-result-pe-duo .fortune-topic-result-item--ziwei {
    background: linear-gradient(180deg, rgba(238, 232, 255, 0.95), rgba(220, 206, 255, 0.42));
}

@media (prefers-reduced-motion: reduce) {
    .fortune-topic-card__main {
        transition: none;
    }
}

.fortune-topic-card__main:hover {
    transform: translateY(-1px);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.55), rgba(255, 248, 232, 0.45));
    box-shadow:
        inset 0 0 0 1px rgba(188, 132, 56, 0.35),
        0 3px 14px rgba(90, 62, 24, 0.08);
}

.fortune-topic-card__main:focus-visible {
    outline: 2px solid rgba(188, 132, 56, 0.65);
    outline-offset: 2px;
}

.fortune-topic-card__lock {
    position: absolute;
    top: 0.62rem;
    right: 0.65rem;
    max-width: calc(100% - 1.2rem);
    padding: 0.12rem 0.42rem;
    border-radius: 999px;
    font-size: 0.66rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.35;
    white-space: nowrap;
    border: 1px solid rgba(188, 132, 56, 0.42);
    background: rgba(255, 252, 244, 0.92);
    color: rgba(120, 82, 30, 0.88);
    pointer-events: none;
}

.fortune-topic-card__lock.is-unlocked {
    border-color: rgba(90, 140, 90, 0.45);
    background: rgba(235, 248, 236, 0.88);
    color: rgba(45, 95, 52, 0.92);
}

.fortune-topic-card__kicker {
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(120, 82, 30, 0.72);
}

.fortune-topic-card__title {
    font-size: 1.02rem;
    font-weight: 700;
    color: var(--text-strong, #2b2215);
}

.fortune-topic-card__hint {
    font-size: 0.82rem;
    line-height: 1.45;
    color: rgba(43, 34, 21, 0.68);
}

.fortune-topic-card__toggle {
    margin: 0 0.75rem 0.45rem;
    align-self: flex-start;
    border: 1px solid rgba(188, 132, 56, 0.42);
    background: rgba(255, 252, 244, 0.92);
    color: rgba(120, 82, 30, 0.9);
    border-radius: 999px;
    font-size: 0.74rem;
    line-height: 1.2;
    padding: 0.28rem 0.62rem;
    cursor: pointer;
    transition:
        border-color 0.2s ease,
        background 0.2s ease,
        color 0.2s ease,
        box-shadow 0.2s ease;
}

/* 已改为直接展示类目列表，不再显示「查看类目」按钮 */
.fortune-topic-card__toggle {
    display: none !important;
}

.fortune-topic-card__toggle:hover {
    border-color: rgba(166, 112, 42, 0.75);
    background: rgba(255, 246, 228, 0.98);
    color: rgba(85, 55, 18, 0.98);
    box-shadow: 0 2px 10px rgba(120, 82, 30, 0.14);
}

.fortune-topic-card__toggle:focus-visible {
    outline: 2px solid rgba(188, 132, 56, 0.65);
    outline-offset: 2px;
}

.fortune-topic-card__dropdown {
    margin: 0 0.75rem 0.72rem;
    padding: 0.46rem 0.48rem 0.44rem 0.52rem;
    height: auto;
    min-height: var(--fortune-topic-sections-h);
    max-height: calc(var(--fortune-topic-sections-h) + 7.5rem);
    box-sizing: border-box;
    border: 1px solid rgba(188, 132, 56, 0.28);
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.65);
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.2rem;
    align-content: start;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: rgba(188, 132, 56, 0.45) transparent;
}

.fortune-topic-card__dropdown::-webkit-scrollbar {
    width: 4px;
}

.fortune-topic-card__dropdown::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: rgba(188, 132, 56, 0.42);
}

@media (min-width: 1025px) {
    .fortune-topic-card {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        grid-template-areas:
            'main methods'
            'dropdown methods';
        align-items: stretch;
        column-gap: 0.72rem;
        row-gap: 0.34rem;
    }

    .fortune-topic-card__main {
        grid-area: main;
        width: 100%;
        min-height: 4.1rem;
    }

    .fortune-topic-card__toggle {
        display: none;
    }

    .fortune-topic-card__dropdown {
        grid-area: dropdown;
        margin: 0 0 0.55rem 0.75rem;
        grid-template-columns: 1fr 1fr;
        column-gap: 0.55rem;
        row-gap: 0.22rem;
    }

    .fortune-topic-card__method-panel {
        grid-area: methods;
        grid-row: 1 / -1;
        align-self: stretch;
        justify-self: stretch;
        width: auto;
        min-height: 100%;
        margin: 0.15rem 0.6rem 0.55rem 0;
    }
}

.fortune-topic-card__dropdown span,
.fortune-topic-card__section-title {
    font-size: 0.96rem;
    line-height: 1.45;
    color: rgba(43, 34, 21, 0.86);
    padding-left: 0.56rem;
    position: relative;
    cursor: default;
    overflow-wrap: anywhere;
}

.fortune-topic-card__dropdown span::before,
.fortune-topic-card__section-title::before {
    content: '•';
    position: absolute;
    left: 0;
    top: 0.08em;
    font-size: 0.92em;
    color: rgba(188, 132, 56, 0.95);
}

.fortune-topic-card__questions {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.35rem;
    margin: 0.28rem 0 0;
    grid-column: 1 / -1;
    box-sizing: border-box;
}

.fortune-topic-card__section-title--custom {
    display: flex;
    align-items: flex-start;
    gap: 0.3rem;
    grid-column: 1 / -1;
    padding-right: 0.15rem;
}

.fortune-topic-card__section-title--custom .fortune-topic-card__q-text {
    flex: 1 1 auto;
    min-width: 0;
    font-size: inherit;
    line-height: inherit;
    color: inherit;
    word-break: break-word;
}

.fortune-topic-card__section-title--custom .fortune-topic-card__q-remove {
    flex: 0 0 auto;
    width: 1.25rem;
    height: 1.25rem;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: #9a7a4a;
    font-size: 0.95rem;
    line-height: 1;
    cursor: pointer;
}

.fortune-topic-card__section-title--custom .fortune-topic-card__q-remove:hover {
    background: rgba(188, 132, 56, 0.14);
    color: #6a4a22;
}

.fortune-topic-card__q-list {
    list-style: none;
    margin: 0;
    padding: 0;
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 0.28rem;
}

.fortune-topic-card__q-item {
    display: flex;
    align-items: flex-start;
    gap: 0.35rem;
    padding: 0.32rem 0.4rem;
    border-radius: 8px;
    border: 1px solid rgba(188, 132, 56, 0.22);
    background: rgba(255, 252, 246, 0.92);
}

.fortune-topic-card__q-text {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 0.78rem;
    line-height: 1.45;
    color: #5a4a34;
    word-break: break-word;
}

.fortune-topic-card__q-remove {
    flex: 0 0 auto;
    width: 1.35rem;
    height: 1.35rem;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: #9a7a4a;
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
}

.fortune-topic-card__q-remove:hover {
    background: rgba(188, 132, 56, 0.14);
    color: #6a4a22;
}

.fortune-topic-card__add-q-btn,
.fortune-topic-card__del-q-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 0.28rem 0.72rem;
    border: 1px dashed rgba(166, 112, 42, 0.55);
    border-radius: 999px;
    background: rgba(255, 250, 240, 0.95);
    color: #7a5a28;
    font: inherit;
    font-size: 0.76rem;
    font-weight: 650;
    cursor: pointer;
    transition:
        background 0.18s ease,
        border-color 0.18s ease,
        color 0.18s ease;
}

.fortune-topic-card__add-q-btn:hover:not(:disabled),
.fortune-topic-card__del-q-btn:hover:not(:disabled) {
    border-style: solid;
    border-color: rgba(166, 112, 42, 0.78);
    background: rgba(255, 244, 224, 0.98);
    color: #5a3e16;
}

.fortune-topic-card__add-q-btn:disabled,
.fortune-topic-card__del-q-btn:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

.fortune-topic-card__q-editor {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 0.32rem;
    padding: 0.4rem;
    border-radius: 10px;
    border: 1px solid rgba(188, 132, 56, 0.28);
    background: rgba(255, 255, 255, 0.78);
    box-sizing: border-box;
}

.fortune-topic-card__q-editor[hidden] {
    display: none !important;
}

.fortune-topic-card__q-input {
    width: 100%;
    min-height: 2.6rem;
    margin: 0;
    padding: 0.4rem 0.48rem;
    border: 1px solid rgba(188, 132, 56, 0.32);
    border-radius: 8px;
    background: #fffdf8;
    color: #3a2f1f;
    font: inherit;
    font-size: 0.8rem;
    line-height: 1.45;
    resize: vertical;
    box-sizing: border-box;
}

.fortune-topic-card__q-input:focus {
    outline: 2px solid rgba(188, 132, 56, 0.45);
    outline-offset: 1px;
}

.fortune-topic-card__q-editor-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.35rem;
    flex-wrap: wrap;
}

.fortune-topic-card__q-max-hint {
    margin-right: auto;
    font-size: 0.68rem;
    color: #9a8a72;
}

.fortune-topic-card__q-cancel,
.fortune-topic-card__q-confirm {
    margin: 0;
    padding: 0.22rem 0.62rem;
    border-radius: 999px;
    font: inherit;
    font-size: 0.74rem;
    font-weight: 650;
    cursor: pointer;
}

.fortune-topic-card__q-cancel {
    border: 1px solid rgba(140, 120, 90, 0.35);
    background: transparent;
    color: #6a5a44;
}

.fortune-topic-card__q-confirm {
    border: 1px solid rgba(196, 146, 62, 0.5);
    background: linear-gradient(180deg, #f8e4b8, #e8b86a);
    color: #3a2f1f;
}

.nc-panel {
    display: grid;
    gap: 0.75rem;
}

.nc-summary {
    border: 1px solid rgba(195, 167, 111, 0.28);
    border-radius: 12px;
    padding: 0.75rem 0.9rem;
    background: rgba(255, 252, 244, 0.72);
    color: rgba(43, 34, 21, 0.86);
    font-size: 0.92rem;
    line-height: 1.65;
}

.nc-card {
    border: 1px solid rgba(195, 167, 111, 0.28);
    border-radius: 12px;
    padding: 0.72rem 0.86rem;
    background: rgba(255, 252, 244, 0.72);
}

.nc-card h3 {
    margin: 0 0 0.4rem;
    font-size: 0.96rem;
    color: rgb(188, 132, 56);
}

.nc-card p {
    margin: 0 0 0.36rem;
    font-size: 0.88rem;
    line-height: 1.58;
    color: rgba(43, 34, 21, 0.82);
}

.nc-jobs {
    margin: 0;
    padding-left: 1rem;
    display: grid;
    gap: 0.24rem;
}

.nc-jobs li {
    font-size: 0.86rem;
    color: rgba(43, 34, 21, 0.8);
}

.fortune-panel-overlay {
    position: fixed;
    inset: 0;
    background: rgba(9, 7, 5, 0.5);
    z-index: 1200;
    padding: 1.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.32s ease, visibility 0.32s ease;
}

.fortune-panel-overlay.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.fortune-panel {
    width: min(1200px, 80vw);
    max-height: 90vh;
    overflow: hidden;
    border-radius: 18px;
    border: 1px solid var(--bg-card-border);
    background: var(--bg-card);
    box-shadow: 0 24px 52px rgba(0, 0, 0, 0.45);
    display: flex;
    flex-direction: column;
    transform: translateY(10px) scale(0.985);
    opacity: 0.96;
    transition: transform 0.32s ease, opacity 0.32s ease;
}

.fortune-panel-overlay.is-open .fortune-panel {
    transform: translateY(0) scale(1);
    opacity: 1;
}

.fortune-panel--wide {
    width: min(1120px, 94vw);
}

.fortune-panel-body--scroll {
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

.pe-panel-mount {
    min-height: 120px;
}

/* 前世今生·修行方向：长报告排版 */
.cx-report {
    max-width: 52rem;
    margin: 0 auto;
    padding-bottom: 0.5rem;
}

.cx-report__h1 {
    margin: 1.1rem 0 0.45rem;
    font-size: 1.05rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    color: rgb(138, 96, 42);
    border-bottom: 1px solid rgba(195, 167, 111, 0.35);
    padding-bottom: 0.25rem;
}

.cx-report__h1:first-child {
    margin-top: 0;
}

.cx-report__h2 {
    margin: 0.85rem 0 0.35rem;
    font-size: 0.95rem;
    font-weight: 700;
    color: rgba(58, 47, 33, 0.92);
}

.cx-report__p {
    margin: 0 0 0.65rem;
    font-size: 0.9rem;
    line-height: 1.72;
    color: rgba(43, 34, 21, 0.88);
    white-space: pre-wrap;
}

.cx-report__note {
    margin: 0 0 0.65rem;
    font-size: 0.82rem;
    line-height: 1.65;
    color: rgba(120, 92, 48, 0.78);
}

.cx-report__warn {
    margin: 0.5rem 0 0.65rem;
    font-size: 0.86rem;
    line-height: 1.6;
    color: rgba(110, 72, 30, 0.88);
}

.cx-report__ul {
    margin: 0 0 0.75rem;
    padding-left: 1.15rem;
    display: grid;
    gap: 0.4rem;
}

.cx-report__ul li {
    font-size: 0.88rem;
    line-height: 1.68;
    color: rgba(43, 34, 21, 0.86);
}

.cx-report__disclaimer {
    margin-top: 1.25rem;
    padding: 0.75rem 0.85rem;
    border-radius: 10px;
    background: rgba(184, 134, 11, 0.08);
    font-size: 0.82rem;
    line-height: 1.65;
    color: rgba(58, 47, 33, 0.78);
}

body.theme-ink .cx-report__h1 {
    color: rgb(212, 180, 120);
    border-bottom-color: rgba(95, 78, 58, 0.45);
}

body.theme-ink .cx-report__h2 {
    color: color-mix(in srgb, var(--text-primary) 92%, transparent);
}

body.theme-ink .cx-report__p,
body.theme-ink .cx-report__ul li {
    color: color-mix(in srgb, var(--text-primary) 88%, transparent);
}

body.theme-ink .cx-report__note {
    color: var(--text-muted);
}

body.theme-ink .cx-report__disclaimer {
    background: rgba(95, 78, 58, 0.2);
    color: color-mix(in srgb, var(--text-primary) 78%, transparent);
}

.pe-panel-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem 1.75rem;
    align-items: start;
}

.pe-panel-grid.pe-panel-grid--personality {
    grid-template-columns: 1fr 1fr;
}

.pe-col {
    background: rgba(255, 252, 244, 0.65);
    border: 1px solid rgba(195, 167, 111, 0.28);
    border-radius: 14px;
    padding: 1rem 1.1rem 1.15rem;
}

.pe-col h3 {
    margin: 0 0 0.65rem;
    font-size: 1.02rem;
    color: var(--text-strong, #2b2215);
    letter-spacing: 0.02em;
}

.pe-block {
    margin-bottom: 0.85rem;
}

.pe-block:last-child {
    margin-bottom: 0;
}

.pe-block h4 {
    margin: 0 0 0.35rem;
    font-size: 0.88rem;
    font-weight: 600;
    color: rgba(43, 34, 21, 0.88);
}

.pe-block p,
.pe-block li {
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.62;
    color: rgba(43, 34, 21, 0.82);
}

.pe-block--mm-rich .mm-rich strong {
    font-weight: 600;
    color: var(--text-strong, #2b2215);
}

/* 性格学历：八字 / 紫微 同题双列（取代原白底左右大栏） */
.pe-dual-panel {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.pe-dual-foot {
    margin-top: 0.35rem;
    padding: 0.55rem 0.65rem;
    border-radius: 10px;
    background: rgba(184, 134, 11, 0.08);
    font-size: 0.78rem;
    line-height: 1.55;
    color: rgba(58, 47, 33, 0.78);
}

.pe-dual-row__h {
    margin: 0 0 0.38rem;
    font-size: 0.9rem;
    font-weight: 700;
    color: rgba(43, 34, 21, 0.92);
    letter-spacing: 0.02em;
}

.pe-dual-cols {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
    align-items: stretch;
}

@media (max-width: 720px) {
    .pe-dual-cols {
        grid-template-columns: 1fr;
    }
}

.pe-dual-col {
    border-radius: 12px;
    border: 1px solid rgba(195, 167, 111, 0.32);
    padding: 0.55rem 0.62rem 0.62rem;
    min-width: 0;
}

.pe-dual-col--bazi {
    background: linear-gradient(180deg, rgba(255, 244, 228, 0.95), rgba(255, 228, 198, 0.38));
}

.pe-dual-col--ziwei {
    background: linear-gradient(180deg, rgba(238, 232, 255, 0.95), rgba(220, 206, 255, 0.38));
}

.pe-dual-colhead {
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    color: rgba(120, 82, 30, 0.88);
    margin-bottom: 0.28rem;
}

.pe-dual-col--ziwei .pe-dual-colhead {
    color: rgba(78, 52, 120, 0.9);
}

.pe-dual-body {
    margin: 0;
    font-size: 0.86rem;
    line-height: 1.62;
    color: rgba(43, 34, 21, 0.86);
    white-space: pre-wrap;
    word-break: break-word;
}

.pe-dual-body--empty {
    color: rgba(58, 47, 33, 0.45);
    font-style: italic;
}

.pe-dual-meta-block {
    margin-top: 0.15rem;
    padding-top: 0.45rem;
    border-top: 1px dashed rgba(195, 167, 111, 0.45);
}

.pe-dual-meta-block > .pe-dual-row__h {
    margin-bottom: 0.45rem;
}

/* 性格学历：八字 / 紫微分段 + 综合结论 */
.pe-structured {
    display: flex;
    flex-direction: column;
    gap: 1.1rem;
    max-width: 52rem;
    margin: 0 auto;
}

.pe-structured__part {
    border-radius: 14px;
    border: 1px solid rgba(195, 167, 111, 0.35);
    padding: 0.85rem 1rem 0.95rem;
    background: linear-gradient(165deg, rgba(255, 252, 246, 0.98), rgba(249, 241, 226, 0.92));
}

.pe-structured__part--ziwei {
    background: linear-gradient(165deg, rgba(248, 244, 255, 0.98), rgba(232, 224, 255, 0.5));
    border-color: rgba(160, 140, 200, 0.35);
}

.pe-structured__part--syn {
    background: linear-gradient(165deg, rgba(236, 252, 244, 0.95), rgba(220, 245, 228, 0.45));
    border-color: rgba(120, 170, 130, 0.38);
}

.pe-structured__part-title {
    margin: 0 0 0.65rem;
    font-size: 1.05rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    color: rgba(58, 44, 24, 0.95);
    border-bottom: 1px solid rgba(195, 167, 111, 0.35);
    padding-bottom: 0.45rem;
}

.pe-structured__part--ziwei .pe-structured__part-title {
    color: rgba(62, 48, 98, 0.95);
    border-bottom-color: rgba(160, 140, 200, 0.35);
}

.pe-structured__part--syn .pe-structured__part-title {
    color: rgba(34, 78, 48, 0.92);
    border-bottom-color: rgba(120, 170, 130, 0.4);
}

.pe-structured__h {
    margin: 0.75rem 0 0.35rem;
    font-size: 0.92rem;
    font-weight: 700;
    color: rgba(43, 34, 21, 0.9);
}

.pe-structured__part--ziwei .pe-structured__h {
    color: rgba(62, 48, 98, 0.88);
}

.pe-structured__p {
    margin: 0 0 0.45rem;
    font-size: 0.86rem;
    line-height: 1.68;
    color: rgba(43, 34, 21, 0.88);
    word-break: break-word;
}

.pe-structured__p--syn {
    font-weight: 500;
}

.pe-structured__ul {
    margin: 0 0 0.35rem 1.1rem;
    padding: 0;
    font-size: 0.86rem;
    line-height: 1.65;
    color: rgba(43, 34, 21, 0.88);
}

.pe-structured__ul li {
    margin: 0 0 0.28rem;
}

.pe-structured__muted {
    margin: 0;
    font-size: 0.86rem;
    color: rgba(78, 52, 120, 0.85);
}

.pe-structured__foot {
    margin: 0;
    padding: 0.55rem 0.65rem;
    border-radius: 10px;
    background: rgba(184, 134, 11, 0.08);
    font-size: 0.78rem;
    line-height: 1.55;
    color: rgba(58, 47, 33, 0.78);
}

.pe-structured__kv {
    margin-bottom: 0.25rem;
}

/* 婚恋感情面板：两栏平衡 + 右侧专题卡片化 */
.mm-panel-grid {
    gap: 1.35rem 1.85rem;
    grid-template-columns: 1fr;
}

/* 兜底：婚恋专题强制单列（避免被历史双列样式覆盖） */
.pe-panel-grid.mm-panel-grid {
    grid-template-columns: 1fr !important;
}

/* 健康运势：单列（体质 / 薄弱 / 建议） */
.hf-panel {
    background: rgba(255, 252, 244, 0.65);
    border: 1px solid rgba(195, 167, 111, 0.28);
    border-radius: 14px;
    padding: 0.95rem 1.05rem 1.05rem;
}

.hc-panel-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.1rem 1.35rem;
    align-items: start;
}

.hc-col {
    background: rgba(255, 252, 244, 0.65);
    border: 1px solid rgba(195, 167, 111, 0.28);
    border-radius: 14px;
    padding: 0.95rem 1.05rem 1.05rem;
}

.hc-col h3 {
    margin: 0 0 0.65rem;
    font-size: 1.02rem;
    color: var(--text-strong, #2b2215);
}

.hc-block {
    margin-bottom: 0.85rem;
}

.hc-block:last-child {
    margin-bottom: 0;
}

.hc-block h4 {
    margin: 0 0 0.35rem;
    font-size: 0.88rem;
    font-weight: 600;
    color: rgba(43, 34, 21, 0.88);
}

.hc-block p,
.hc-block li {
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.62;
    color: rgba(43, 34, 21, 0.82);
}

.hc-list {
    margin: 0.15rem 0 0;
    padding-left: 1.15rem;
}

.hc-list li + li {
    margin-top: 0.35rem;
}

.cp-panel {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.cp-panel--stack {
    gap: 0;
    padding: 0.35rem 0.15rem 0.5rem;
    border-radius: 14px;
    background: color-mix(in srgb, var(--panel-2, #faf6ee) 92%, var(--tone-gold, #e8c683) 8%);
    border: 1px solid rgba(195, 167, 111, 0.28);
}

.cp-section {
    padding: 0.75rem 0.65rem;
}

.cp-section + .cp-section {
    border-top: 1px solid rgba(58, 47, 33, 0.09);
}

.cp-section__title {
    margin: 0 0 0.45rem;
    font-size: 0.98rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: rgb(196, 138, 58);
}

.cp-section__body {
    margin: 0;
    font-size: 0.92rem;
    line-height: 1.68;
    color: rgba(43, 34, 21, 0.88);
}

.cp-section__para {
    margin: 0;
    font-size: inherit;
    line-height: inherit;
    color: inherit;
}

.cp-section__para + .cp-section__para {
    margin-top: 0.55rem;
}

body.theme-ink .cp-panel--stack {
    background: color-mix(in srgb, var(--panel-2) 88%, rgb(95, 78, 58) 12%);
    border-color: rgba(95, 78, 58, 0.45);
}

body.theme-ink .cp-section + .cp-section {
    border-top-color: rgba(255, 255, 255, 0.08);
}

body.theme-ink .cp-section__title {
    color: rgb(232, 188, 118);
}

body.theme-ink .cp-section__body {
    color: rgba(245, 236, 220, 0.9);
}

body.theme-ink .cp-section__para {
    color: inherit;
}

.cp-card {
    padding: 0.85rem 1rem;
    border-radius: 12px;
    border: 1px solid rgba(195, 167, 111, 0.3);
    background: rgba(255, 255, 255, 0.72);
}

.cp-card h4 {
    margin: 0 0 0.35rem;
    font-size: 0.9rem;
    font-weight: 600;
    color: rgba(43, 34, 21, 0.9);
}

.cp-card p,
.cp-card ul {
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.65;
    color: rgba(43, 34, 21, 0.82);
}

.cp-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.35rem;
}

.cp-tag {
    display: inline-block;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 600;
    background: rgba(236, 199, 131, 0.35);
    border: 1px solid rgba(212, 160, 80, 0.45);
    color: rgba(60, 42, 18, 0.9);
}

@media (max-width: 760px) {
    .hc-panel-grid {
        grid-template-columns: 1fr;
    }
}

.pe-col--mm-marriage .mm-marriage-lead .pe-block {
    margin-bottom: 0.95rem;
}

.pe-col--mm-marriage .mm-marriage-lead .pe-block:last-child {
    margin-bottom: 0;
    padding-bottom: 0.35rem;
}

.mm-rich-stack {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
    margin: 0.15rem 0 1.05rem;
}

.mm-rich-card {
    margin: 0;
    padding: 0.88rem 1.05rem 0.95rem;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.78);
    border: 1px solid rgba(195, 167, 111, 0.34);
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.9) inset;
}

.mm-rich-card .mm-rich {
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.74;
    color: rgba(43, 34, 21, 0.86);
}

.mm-rich-card .mm-rich strong:first-of-type {
    display: block;
    font-size: 0.94rem;
    font-weight: 650;
    letter-spacing: 0.02em;
    margin: 0 0 0.48rem;
    padding-bottom: 0.42rem;
    border-bottom: 1px solid rgba(195, 167, 111, 0.24);
    color: var(--text-strong, #2b2215);
}

.mm-marriage-foot {
    margin-top: 0.1rem;
    padding-top: 0.9rem;
    border-top: 1px dashed rgba(195, 167, 111, 0.35);
}

.mm-marriage-foot .pe-block {
    margin-bottom: 0;
}

.mm-spouse-extra {
    margin-top: 0.35rem;
}

.mm-soft-rule {
    border: none;
    height: 1px;
    margin: 0 0 0.88rem;
    background: linear-gradient(
        90deg,
        transparent,
        rgba(195, 167, 111, 0.42) 15%,
        rgba(195, 167, 111, 0.42) 85%,
        transparent
    );
}

.mm-spouse-rich {
    font-size: 0.9rem;
    line-height: 1.74;
    color: rgba(43, 34, 21, 0.86);
}

.mm-spouse-rich strong:first-of-type {
    display: block;
    margin: 0 0 0.45rem;
    font-size: 0.93rem;
    font-weight: 650;
    color: var(--text-strong, #2b2215);
    letter-spacing: 0.02em;
}

.pe-list {
    margin: 0.25rem 0 0;
    padding-left: 1.15rem;
}

.pe-list li + li {
    margin-top: 0.35rem;
}

.pe-overview-line {
    font-weight: 600;
    color: rgba(43, 34, 21, 0.92);
}

.pe-para + .pe-para {
    margin-top: 0.45rem;
}

.pe-dl {
    margin: 0;
    display: grid;
    gap: 0.5rem 0.35rem;
}

.pe-dl > div {
    display: grid;
    grid-template-columns: 7.2rem 1fr;
    gap: 0.35rem 0.65rem;
    align-items: start;
    font-size: 0.88rem;
    line-height: 1.55;
}

.pe-dl dt {
    margin: 0;
    font-weight: 600;
    color: rgba(43, 34, 21, 0.78);
}

.pe-dl dd {
    margin: 0;
    color: rgba(43, 34, 21, 0.85);
}

@media (max-width: 760px) {
    .pe-panel-grid.pe-panel-grid--personality {
        grid-template-columns: 1fr;
    }

    .pe-dl > div {
        grid-template-columns: 1fr;
    }
}

.fortune-unlock-overlay {
    position: fixed;
    inset: 0;
    z-index: 1210;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(16, 12, 8, 0.48);
    padding: 1.25rem;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.32s ease, visibility 0.32s ease;
}

.fortune-unlock-overlay.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.fortune-unlock-modal {
    width: min(1200px, 80vw);
    max-height: 90vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: linear-gradient(180deg, rgba(247, 239, 224, 0.98), rgba(242, 233, 215, 0.98));
    border: 1px solid rgba(195, 167, 111, 0.35);
    border-radius: 14px;
    box-shadow: 0 18px 44px rgba(26, 19, 11, 0.24);
    transform: translateY(10px) scale(0.985);
    opacity: 0.96;
    transition: transform 0.32s ease, opacity 0.32s ease;
}

.fortune-unlock-overlay.is-open .fortune-unlock-modal {
    transform: translateY(0) scale(1);
    opacity: 1;
}

.fortune-unlock-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-shrink: 0;
    padding: 1rem 2rem 0.75rem;
    gap: 0.75rem;
}

.fortune-unlock-head h3 {
    margin: 0;
    font-size: 22px;
    line-height: 1.35;
    color: var(--cream-text);
}

.fortune-unlock-body .unlock-classical-hint {
    margin-top: 0.75rem;
    padding-top: 0.75rem;
    border-top: 1px solid rgba(195, 167, 111, 0.28);
    font-size: 0.93rem;
    line-height: 1.68;
    color: var(--text-muted);
}

.fortune-unlock-body {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    padding: 0.5rem 2rem 1rem;
    color: var(--text-primary);
    font-size: 1rem;
    line-height: 1.75;
    -webkit-overflow-scrolling: touch;
}

.unlock-wealth-intro {
    margin-bottom: 0.85rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--line-soft, rgba(58, 47, 33, 0.12));
}

.unlock-bundle-topic-list {
    margin: 0.5rem 0 0 1.1rem;
    padding: 0;
    line-height: 1.55;
}

.unlock-bundle-topic-bullets {
    margin: 0.28rem 0 0 0.85rem;
    padding: 0;
    list-style: disc;
    line-height: 1.48;
    font-size: 0.94em;
    color: #4a4034;
}

.unlock-bundle-price {
    margin: 0 0 0.75rem;
    font-size: 0.92rem;
    font-weight: 600;
    color: rgba(120, 82, 30, 0.92);
}

.fortune-unlock-body p {
    margin: 0 0 0.65rem;
}

.fortune-unlock-body p:last-child {
    margin-bottom: 0;
}

.fortune-unlock-actions {
    display: flex;
    justify-content: flex-end;
    flex-shrink: 0;
    flex-wrap: wrap;
    gap: 0.55rem;
    padding: 1rem 2rem 1.25rem;
}

.fortune-unlock-actions .primary-btn,
.fortune-unlock-actions .secondary-btn {
    min-width: 110px;
    font-size: 1rem;
}

/* 专业解盘：付费未解锁提示（替代原生 alert；暖白色） */
.pro-reading-hint-overlay {
    position: fixed;
    inset: 0;
    z-index: 1305;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(9, 7, 5, 0.48);
    padding: 1.25rem;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.32s ease, visibility 0.32s ease;
}

.pro-reading-hint-overlay.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.pro-reading-hint-modal {
    width: min(680px, 92vw);
    border-radius: 16px;
    border: 1px solid rgba(195, 167, 111, 0.35);
    background: linear-gradient(180deg, rgba(247, 239, 224, 0.99), rgba(242, 233, 215, 0.99));
    box-shadow: 0 22px 56px rgba(26, 19, 11, 0.22);
    overflow: hidden;
    transform: translateY(10px) scale(0.985);
    opacity: 0.96;
    transition: transform 0.32s ease, opacity 0.32s ease;
}

.pro-reading-hint-overlay.is-open .pro-reading-hint-modal {
    transform: translateY(0) scale(1);
    opacity: 1;
}

.pro-reading-hint-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 1rem 1.25rem 0.75rem;
    border-bottom: 1px solid rgba(195, 167, 111, 0.22);
}

.pro-reading-hint-head h3 {
    margin: 0;
    font-size: 20px;
    color: var(--cream-text);
    letter-spacing: 0.02em;
}

.pro-reading-hint-body {
    padding: 0.9rem 1.25rem 0.2rem;
}

.pro-reading-hint-text {
    margin: 0;
    color: var(--text-primary);
    font-size: 0.98rem;
    line-height: 1.7;
}

.pro-reading-hint-actions {
    display: flex;
    justify-content: flex-end;
    padding: 0.85rem 1.25rem 1.1rem;
    gap: 0.55rem;
}

.pro-reading-hint-actions--split {
    justify-content: space-between;
    flex-wrap: wrap;
}

/* 移动端：更紧凑，避免遮挡底部按钮 */
@media (max-width: 560px) {
    .pro-reading-hint-modal {
        width: min(680px, 96vw);
        border-radius: 14px;
    }

    .pro-reading-hint-body {
        padding-left: 0.95rem;
        padding-right: 0.95rem;
    }

    .pro-reading-hint-actions {
        padding-left: 0.95rem;
        padding-right: 0.95rem;
    }

    .pro-reading-hint-head {
        padding-left: 0.95rem;
        padding-right: 0.95rem;
    }
}

.app-notice-overlay {
    position: fixed;
    inset: 0;
    z-index: 1310;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    background: rgba(34, 24, 10, 0.38);
    backdrop-filter: blur(2px);
}

.app-notice-overlay.is-open {
    display: flex;
}

.app-notice-modal {
    width: min(440px, 94vw);
    max-height: min(82vh, 640px);
    display: flex;
    flex-direction: column;
    border-radius: 16px;
    border: 1px solid rgba(196, 154, 88, 0.45);
    background: linear-gradient(165deg, rgba(255, 252, 244, 0.98), rgba(249, 240, 223, 0.96));
    box-shadow:
        0 16px 46px rgba(53, 38, 18, 0.28),
        inset 0 1px 0 rgba(255, 255, 255, 0.75);
    overflow: hidden;
}

.app-notice-modal--help {
    width: min(520px, 94vw);
}

.app-notice-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.72rem 0.9rem 0.62rem;
    border-bottom: 1px solid rgba(196, 154, 88, 0.28);
}

.app-notice-head h3 {
    margin: 0;
    font-size: 1rem;
    font-weight: 700;
    color: #755125;
}

.app-notice-body {
    padding: 0.82rem 0.95rem 0.56rem;
    overflow: auto;
    flex: 1 1 auto;
    min-height: 0;
}

.app-notice-text {
    margin: 0;
    font-size: 0.93rem;
    line-height: 1.65;
    color: rgba(58, 42, 21, 0.92);
    white-space: pre-line;
}

.app-notice-loading-row {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    white-space: nowrap;
}

.app-notice-loading-spinner {
    width: 1rem;
    height: 1rem;
    flex-shrink: 0;
    border: 2px solid rgba(126, 96, 58, 0.28);
    border-top-color: #c4923e;
    border-radius: 50%;
    animation: fortune-topic-copy-spin 0.7s linear infinite;
}

.app-notice-actions .primary-btn.is-loading {
    cursor: wait;
    opacity: 0.88;
    pointer-events: none;
}

.app-notice-actions {
    display: flex;
    justify-content: flex-end;
    padding: 0.35rem 0.95rem 0.88rem;
}

.app-notice-prompt-box {
    margin-top: 0.7rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.app-notice-prompt-ta {
    width: 100%;
    box-sizing: border-box;
    min-height: 7.5rem;
    max-height: 40vh;
    padding: 0.55rem 0.65rem;
    border-radius: 10px;
    border: 1px solid rgba(126, 96, 58, 0.28);
    background: rgba(255, 252, 247, 0.98);
    color: #3a2a15;
    font-family: inherit;
    font-size: 0.78rem;
    line-height: 1.45;
    resize: vertical;
}

.app-notice-prompt-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.app-notice-prompt-actions .primary-btn,
.app-notice-prompt-open {
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.2rem;
    padding: 0.4rem 0.9rem;
    box-sizing: border-box;
}

/* 奇门九宫：点选查看十干克应（下方面板） */
.qimen-palace-cell[data-qimen-gong] {
    cursor: pointer;
    transition: box-shadow 0.15s ease, transform 0.12s ease;
}
.qimen-palace-cell[data-qimen-gong]:hover {
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.45),
        0 0 0 2px rgba(176, 128, 64, 0.42);
    z-index: 2;
}
.qimen-palace-cell[data-qimen-gong]:focus-visible,
.qimen-palace-cell[data-qimen-gong].is-keying-active {
    outline: 2px solid rgba(176, 128, 64, 0.75);
    outline-offset: -2px;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.45),
        0 0 0 2px rgba(176, 128, 64, 0.55);
    z-index: 2;
}

.qimen-hit {
    cursor: help;
}
.qimen-hit.is-xiangyi-active {
    outline: 2px solid rgba(176, 128, 64, 0.9);
    outline-offset: 1px;
    border-radius: 3px;
    background: rgba(201, 162, 39, 0.22);
    box-shadow: 0 0 0 1px rgba(255, 248, 230, 0.65);
    z-index: 3;
    position: relative;
}

/* 右侧栏内嵌象意：样式与十干克应卡片一致 */
.qimen-keying-panel__scroll {
    display: flex;
    flex-direction: column;
    min-height: 0;
    max-height: inherit;
    overflow: auto;
}
.qimen-xiangyi-slot {
    flex: 0 0 auto;
    margin: 0;
    padding: 0.7rem 0.8rem 0.55rem;
    background: transparent;
    border: 0;
    border-bottom: 1px dashed rgba(176, 128, 64, 0.28);
    box-shadow: none;
    color: inherit;
}
.qimen-xiangyi-slot[hidden] {
    display: none !important;
}
.qimen-xiangyi-slot .qimen-keying-rel {
    margin-bottom: 0;
}
.qimen-xiangyi-slot__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    margin: 0 0 0.45rem;
}
.qimen-xiangyi-slot__tag {
    margin: 0 !important;
}

.qimen-keying-section {
    margin-bottom: 0.85rem;
    padding-bottom: 0.65rem;
    border-bottom: 1px dashed rgba(176, 128, 64, 0.28);
}
.qimen-keying-section:last-of-type {
    border-bottom: 0;
    margin-bottom: 0.35rem;
    padding-bottom: 0;
}
.qimen-keying-section__title {
    margin: 0 0 0.35rem;
    font-size: 0.92rem;
    font-weight: 700;
    color: #6b4a1e;
}

.qimen-keying-panel {
    margin-top: 0.75rem;
    width: 100%;
    max-width: min(52rem, 100%);
    margin-left: auto;
    margin-right: auto;
    border-radius: 12px;
    border: 1px solid rgba(196, 154, 88, 0.4);
    background: linear-gradient(165deg, rgba(255, 252, 244, 0.98), rgba(249, 240, 223, 0.95));
    box-shadow: 0 4px 16px rgba(53, 38, 18, 0.08);
    overflow: hidden;
}
.qimen-keying-panel[hidden] {
    display: none !important;
}

/* 电脑端：九宫与克应并排；克应高度与九宫对齐（JS 同步 max-height） */
@media (min-width: 992px) {
    .qimen-board-keying-row {
        display: flex;
        flex-direction: row;
        align-items: flex-start;
        gap: 0.85rem 1rem;
        width: 100%;
        min-width: 0;
    }

    .qimen-board-keying-row .qimen-grid-composite,
    .qimen-board-keying-row .qimen-grid-composite--outer {
        flex: 0 0 auto;
        width: auto;
        max-width: none;
        margin-inline: 0;
        align-self: flex-start;
    }

    .qimen-board-keying-row .qimen-keying-panel {
        flex: 1 1 0;
        min-width: 18rem;
        max-width: none;
        width: auto;
        margin: 0;
        margin-top: 0;
        align-self: flex-start;
        max-height: min(78vh, 48rem);
        overflow: hidden;
        display: flex;
        flex-direction: column;
        box-sizing: border-box;
    }
    .qimen-board-keying-row .qimen-keying-panel__scroll {
        flex: 1 1 auto;
        min-height: 0;
        overflow: auto;
    }
    .qimen-board-keying-row .qimen-keying-panel__body,
    .qimen-board-keying-row .qimen-xiangyi-slot {
        padding-left: 0.95rem;
        padding-right: 0.95rem;
    }
    .qimen-board-keying-row .qimen-keying-name {
        font-size: 1.08rem;
    }
    .qimen-board-keying-row .qimen-keying-summary,
    .qimen-board-keying-row .qimen-keying-note {
        font-size: 0.92rem;
        line-height: 1.55;
    }
    .qimen-board-keying-row .qimen-keying-rel {
        padding: 0.72rem 0.8rem;
    }

    /* 固定九宫核心边长：有无六壬/建神外圈都相同，外圈向外扩 */
    .qimen-board-keying-row .qimen-ring-stack {
        --qimen-core-size: min(38rem, 64vh);
        --qimen-core-col: calc(var(--qimen-core-size) / 3);
        --qimen-core-max: var(--qimen-core-size);
        --qimen-core-max-vh: var(--qimen-core-size);
        --qimen-liuren-band: 2.65rem;
        --qimen-jianchu-band: 1.35rem;
        margin-inline: 0;
    }

    .qimen-board-keying-row
        .qimen-ring-stack:not(.qimen-ring-stack--liuren):not(.qimen-ring-stack--jianchu) {
        display: block;
        width: var(--qimen-core-size);
        height: var(--qimen-core-size);
    }

    .qimen-board-keying-row
        .qimen-ring-stack:not(.qimen-ring-stack--liuren):not(.qimen-ring-stack--jianchu)
        .qimen-palace-grid,
    .qimen-board-keying-row
        .qimen-grid-composite--outer
        .qimen-ring-stack:not(.qimen-ring-stack--liuren):not(.qimen-ring-stack--jianchu)
        .qimen-palace-grid {
        width: var(--qimen-core-size);
        height: var(--qimen-core-size);
        max-width: none;
        margin: 0;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        grid-template-rows: repeat(3, minmax(0, 1fr));
    }

    .qimen-board-keying-row .qimen-ring-stack--liuren:not(.qimen-ring-stack--jianchu) {
        width: calc(var(--qimen-core-size) + var(--qimen-stack-liuren-extra));
        height: calc(var(--qimen-core-size) + var(--qimen-stack-liuren-extra));
        aspect-ratio: unset;
        grid-template-columns:
            var(--qimen-liuren-band) var(--qimen-core-col) var(--qimen-core-col) var(--qimen-core-col)
            var(--qimen-liuren-band);
        grid-template-rows:
            var(--qimen-liuren-band) var(--qimen-core-col) var(--qimen-core-col) var(--qimen-core-col)
            var(--qimen-liuren-band);
    }

    .qimen-board-keying-row .qimen-ring-stack--jianchu:not(.qimen-ring-stack--liuren) {
        width: calc(var(--qimen-core-size) + var(--qimen-stack-jianchu-extra));
        height: calc(var(--qimen-core-size) + var(--qimen-stack-jianchu-extra));
        aspect-ratio: unset;
        grid-template-columns:
            var(--qimen-jianchu-band) var(--qimen-core-col) var(--qimen-core-col) var(--qimen-core-col)
            var(--qimen-jianchu-band);
        grid-template-rows:
            var(--qimen-jianchu-band) var(--qimen-core-col) var(--qimen-core-col) var(--qimen-core-col)
            var(--qimen-jianchu-band);
    }

    .qimen-board-keying-row .qimen-ring-stack--liuren.qimen-ring-stack--jianchu {
        width: calc(
            var(--qimen-core-size) + var(--qimen-stack-liuren-extra) + var(--qimen-stack-jianchu-extra)
        );
        height: calc(
            var(--qimen-core-size) + var(--qimen-stack-liuren-extra) + var(--qimen-stack-jianchu-extra)
        );
        aspect-ratio: unset;
        grid-template-columns:
            var(--qimen-jianchu-band) var(--qimen-liuren-band) var(--qimen-core-col) var(--qimen-core-col)
            var(--qimen-core-col) var(--qimen-liuren-band) var(--qimen-jianchu-band);
        grid-template-rows:
            var(--qimen-jianchu-band) var(--qimen-liuren-band) var(--qimen-core-col) var(--qimen-core-col)
            var(--qimen-core-col) var(--qimen-liuren-band) var(--qimen-jianchu-band);
    }

    .qimen-board-keying-row .qimen-ring-stack--liuren .qimen-palace-grid,
    .qimen-board-keying-row .qimen-ring-stack--jianchu .qimen-palace-grid {
        width: auto;
        height: auto;
        min-height: 0;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        grid-template-rows: repeat(3, minmax(0, 1fr));
    }

    .qimen-board-keying-row .qimen-grid-composite--outer .qimen-palace-cell {
        min-height: 0;
    }

    /*
     * 九宫位置固定：有无克应提示都靠左，与打开克应栏时同位置；
     * 打开克应后右侧自然让出克应栏，九宫不再左右跳动。
     */
    .main-inner.view-qimen.has-qimen-result .qimen-result-right {
        justify-content: flex-start;
        align-items: stretch;
        min-height: 0;
    }

    .main-inner.view-qimen.has-qimen-result .qimen-board-keying-row {
        justify-content: center;
        align-items: flex-start;
        width: 100%;
    }

    .main-inner.view-qimen.has-qimen-result .qimen-board-keying-row .qimen-grid-composite {
        margin-inline: auto;
        align-self: flex-start;
    }
}

@media (max-width: 991px) {
    .main-inner.view-qimen.has-qimen-result .qimen-board-keying-row {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 0.65rem;
        width: 100%;
    }

    .main-inner.view-qimen.has-qimen-result .qimen-board-keying-row .qimen-grid-composite {
        width: 100%;
        max-width: 100%;
        margin-inline: auto;
    }

    .main-inner.view-qimen.has-qimen-result .qimen-board-keying-row .qimen-keying-panel {
        max-width: 100%;
        width: 100%;
    }
}

@media (max-width: 480px) {
    .qimen-pan-opts-bar {
        top: 0.35rem;
        left: 0.35rem;
    }

    .qimen-pan-opts-toggle {
        min-height: 2rem;
        padding: 0.3rem 0.7rem;
        font-size: 0.8rem;
    }

    .qimen-pan-settings {
        top: 2.45rem;
        left: 0.35rem;
        width: min(22rem, calc(100% - 0.7rem));
        padding: 0.45rem 0.5rem 0.6rem;
        border-radius: 12px;
        max-height: min(64vh, 30rem);
    }

    .qimen-pan-settings__title {
        font-size: 0.84rem;
    }

    .qimen-pan-settings .qimen-inline-settings--in-panel .qimen-toggle-btn,
    .qimen-pan-settings .qimen-inline-settings--in-panel .qimen-segment-btn {
        font-size: 0.78rem;
        padding: 0.32rem 0.6rem;
    }
}
.qimen-keying-panel__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.55rem 0.75rem;
    border-bottom: 1px solid rgba(196, 154, 88, 0.28);
}
.qimen-keying-panel__title {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 700;
    color: #755125;
}
.qimen-keying-panel__close {
    border: none;
    background: transparent;
    color: #8a6640;
    font-size: 1.25rem;
    line-height: 1;
    cursor: pointer;
    padding: 0.15rem 0.35rem;
    border-radius: 6px;
}
.qimen-keying-panel__close:hover {
    background: rgba(196, 154, 88, 0.18);
}
.qimen-keying-panel__body {
    padding: 0.7rem 0.8rem 0.85rem;
}
.qimen-keying-source {
    margin: 0 0 0.55rem;
    font-size: 0.72rem;
    color: rgba(90, 70, 40, 0.68);
}
.qimen-keying-rel {
    margin: 0 0 0.65rem;
    padding: 0.55rem 0.6rem;
    border-radius: 10px;
    border: 1px solid rgba(196, 154, 88, 0.28);
    background: rgba(255, 255, 255, 0.45);
}
.qimen-keying-rel:last-of-type {
    margin-bottom: 0.4rem;
}
.qimen-keying-rel__role {
    display: inline-flex;
    align-items: center;
    margin: 0 0 0.35rem;
    padding: 0.08rem 0.42rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 800;
    color: #6a4a22;
    background: rgba(196, 154, 88, 0.2);
}
.qimen-keying-pair {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.3rem 0.45rem;
    margin: 0 0 0.4rem;
    font-size: 0.86rem;
    color: rgba(58, 42, 21, 0.9);
}
.qimen-keying-pair__gan {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.45rem;
    padding: 0.08rem 0.28rem;
    border-radius: 6px;
    font-weight: 800;
    background: rgba(196, 154, 88, 0.18);
    border: 1px solid rgba(196, 154, 88, 0.35);
}
.qimen-keying-name-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
    margin: 0 0 0.35rem;
}
.qimen-keying-name {
    margin: 0;
    font-size: 1.02rem;
    font-weight: 800;
    color: #5c3d18;
    letter-spacing: 0.02em;
}
.qimen-keying-level {
    display: inline-flex;
    align-items: center;
    padding: 0.1rem 0.42rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 800;
    border: 1px solid transparent;
}
.qimen-keying-level--daJi {
    color: #0d6b2e;
    background: #dff7e8;
    border-color: rgba(40, 140, 70, 0.35);
}
.qimen-keying-level--ji {
    color: #1b5e3a;
    background: #eef8f1;
    border-color: rgba(40, 140, 70, 0.25);
}
.qimen-keying-level--ping {
    color: #6a5430;
    background: #f4ecdc;
    border-color: rgba(150, 120, 70, 0.3);
}
.qimen-keying-level--xiong {
    color: #8a3020;
    background: #fcece8;
    border-color: rgba(180, 70, 50, 0.3);
}
.qimen-keying-level--daXiong {
    color: #9a1020;
    background: #ffe0e4;
    border-color: rgba(200, 50, 70, 0.4);
}
.qimen-keying-summary {
    margin: 0;
    font-size: 0.86rem;
    line-height: 1.6;
    color: rgba(58, 42, 21, 0.9);
}
.qimen-keying-note,
.qimen-keying-hint {
    margin: 0.4rem 0 0;
    font-size: 0.76rem;
    line-height: 1.5;
    color: rgba(90, 70, 40, 0.78);
}
.qimen-keying-meta {
    margin: 0.5rem 0 0;
    padding-top: 0.45rem;
    border-top: 1px dashed rgba(196, 154, 88, 0.35);
    font-size: 0.74rem;
    line-height: 1.5;
    color: rgba(90, 70, 40, 0.72);
}
.qimen-keying-meta span {
    margin-right: 0.55rem;
}

.wechat-pay-overlay {
    position: fixed;
    inset: 0;
    z-index: 1320;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    background: rgba(34, 24, 10, 0.42);
    backdrop-filter: blur(2px);
}

.wechat-pay-overlay:not(.is-open) {
    display: none !important;
}

.wechat-pay-overlay.is-open {
    display: flex;
}

.wechat-pay-modal {
    width: min(420px, 94vw);
    max-height: min(92vh, 640px);
    overflow: auto;
    border-radius: 16px;
    border: 1px solid rgba(196, 154, 88, 0.45);
    background: linear-gradient(165deg, rgba(255, 252, 244, 0.98), rgba(249, 240, 223, 0.96));
    box-shadow:
        0 16px 46px rgba(53, 38, 18, 0.28),
        inset 0 1px 0 rgba(255, 255, 255, 0.75);
}

.wechat-pay-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.72rem 0.9rem 0.62rem;
    border-bottom: 1px solid rgba(196, 154, 88, 0.28);
}

.wechat-pay-head h3 {
    margin: 0;
    font-size: 1rem;
    font-weight: 700;
    color: #755125;
}

.wechat-pay-body {
    padding: 0.85rem 0.95rem 0.5rem;
    text-align: center;
}

.wechat-pay-plan {
    margin: 0 0 0.25rem;
    font-size: 0.95rem;
    font-weight: 600;
    color: rgba(58, 42, 21, 0.92);
}

.wechat-pay-amount {
    margin: 0 0 0.75rem;
    font-size: 1.35rem;
    font-weight: 700;
    color: #c45a1a;
}

.wechat-pay-qr-wrap {
    margin: 0 auto 0.75rem;
    padding: 0.5rem;
    border-radius: 12px;
    background: #fff;
    border: 1px solid rgba(196, 154, 88, 0.25);
    display: inline-block;
}

.wechat-pay-qr {
    display: block;
    width: min(240px, 72vw);
    height: auto;
    border-radius: 8px;
}

.wechat-pay-hint {
    margin: 0;
    font-size: 0.82rem;
    line-height: 1.55;
    color: rgba(58, 42, 21, 0.78);
}

.wechat-pay-actions {
    display: flex;
    justify-content: center;
    padding: 0.35rem 0.95rem 0.88rem;
}

.fortune-panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.8rem;
    flex-shrink: 0;
    padding: 1.25rem 2rem;
    border-bottom: 1px solid var(--plain-white-soft);
}

/** 性格学历：标题左、命主信息居中占满中间、关闭键右 */
.fortune-panel-head--pe {
    flex-wrap: nowrap;
    gap: 0.65rem 1rem;
}

.fortune-panel-head--pe .fortune-panel-title {
    flex-shrink: 0;
    margin: 0;
}

.personality-panel-bazi-meta {
    flex: 1;
    margin: 0;
    min-width: 0;
    text-align: center;
    font-size: clamp(0.78rem, 1.1vw, 0.95rem);
    line-height: 1.45;
    letter-spacing: 0.06em;
    color: rgba(60, 48, 32, 0.82);
    font-weight: 500;
}

.personality-panel-bazi-meta[hidden] {
    display: none !important;
}

/* 前事验证面板 */
.pv-root {
    max-width: 52rem;
    margin: 0 auto;
}

.pv-section {
    margin-bottom: 1.35rem;
}

.pv-h {
    margin: 0 0 0.55rem;
    font-size: 1.05rem;
    color: var(--ink, #3c3020);
    letter-spacing: 0.04em;
}

.pv-p {
    margin: 0 0 0.45rem;
    line-height: 1.65;
    color: rgba(60, 48, 32, 0.88);
    font-size: 0.94rem;
}

.pv-ol {
    margin: 0;
    padding: 0 0 0 0.15rem;
    list-style: none;
}

.pv-li {
    display: flex;
    gap: 0.45rem;
    align-items: flex-start;
    margin-bottom: 0.65rem;
    line-height: 1.55;
    font-size: 0.92rem;
    color: rgba(60, 48, 32, 0.92);
}

.pv-li__n {
    flex-shrink: 0;
    font-weight: 700;
    color: var(--gold, #b8860b);
    min-width: 1.5rem;
}

.pv-li__body {
    flex: 1;
    min-width: 0;
}

.pv-li__text {
    display: block;
}

.pv-li__ev {
    display: block;
    margin-top: 0.2rem;
    font-size: 0.82rem;
    color: rgba(60, 48, 32, 0.55);
}

.pv-timeline {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.pv-step {
    border: 1px solid rgba(184, 134, 11, 0.22);
    border-radius: 10px;
    padding: 0.65rem 0.85rem;
    background: rgba(255, 252, 247, 0.65);
}

.pv-step__head {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.65rem;
    align-items: baseline;
    margin-bottom: 0.45rem;
    font-size: 0.9rem;
}

.pv-step__gz {
    font-weight: 700;
    font-size: 1.05rem;
    letter-spacing: 0.08em;
}

.pv-step__god {
    color: rgba(120, 90, 50, 0.85);
}

.pv-step__span,
.pv-step__age {
    font-size: 0.82rem;
    color: rgba(60, 48, 32, 0.62);
}

.pv-step__anchors {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
}

.pv-anchor {
    padding: 0.45rem 0.5rem;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.75);
}

.pv-anchor__head {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.5rem;
    align-items: center;
    margin-bottom: 0.25rem;
    font-size: 0.86rem;
}

.pv-anchor__gz {
    font-weight: 600;
    letter-spacing: 0.06em;
}

.pv-anchor__xs {
    font-size: 0.8rem;
    color: rgba(60, 48, 32, 0.55);
}

.pv-anchor-line {
    margin: 0.15rem 0 0;
    font-size: 0.82rem;
    line-height: 1.5;
    color: rgba(60, 48, 32, 0.78);
}

@media (max-width: 720px) {
    .fortune-panel-head--pe {
        flex-wrap: wrap;
    }

    .personality-panel-bazi-meta {
        order: 3;
        flex: 1 1 100%;
        text-align: left;
        padding-right: 2.5rem;
    }

    .fortune-panel-head--pe .result-close-btn {
        position: absolute;
        top: 1rem;
        right: 1.25rem;
    }

    .fortune-panel-head--pe {
        position: relative;
        padding-right: 3rem;
    }
}

.fortune-panel-title {
    margin: 0;
    color: var(--gold);
    font-size: 22px;
    letter-spacing: 0.04em;
    line-height: 1.3;
}

.fortune-panel-sub {
    margin: 0.35rem 0 0;
    font-size: 0.9375rem;
    line-height: 1.6;
    color: var(--text-muted);
    max-width: 42em;
    font-weight: 400;
}

.fortune-panel-sub strong {
    color: var(--cream-text);
    font-weight: 600;
}

.wealth-dayun-disclaimer {
    margin: 0 0 0.45rem;
    font-size: 0.8rem;
    color: var(--text-muted);
    line-height: 1.5;
}

.wealth-k-wrap {
    background: var(--panel-2);
    border: 1px solid var(--plain-white-soft);
    border-radius: 12px;
    padding: 0.8rem 0.85rem 0.9rem;
}

.wealth-k-head h3 {
    margin: 0;
    font-size: 0.92rem;
    color: var(--cream-text);
    font-weight: 700;
}

.wealth-k-head p {
    margin: 0.28rem 0 0;
    font-size: 0.76rem;
    color: var(--text-muted);
    line-height: 1.5;
}

.wealth-k-minor-tip {
    color: #9a6732;
}

.wealth-k-chart {
    margin-top: 0.56rem;
    width: 100%;
    height: 320px;
    border-radius: 10px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.45), rgba(255, 255, 255, 0.18));
}

.wealth-k-empty {
    padding: 0.85rem;
    border-radius: 8px;
    background: var(--panel-3);
    color: var(--text-muted);
    font-size: 0.8rem;
}

.wealth-loading {
    display: flex;
    align-items: center;
    gap: 1rem;
    min-height: 128px;
    border-radius: 12px;
    padding: 1.1rem 1rem;
    border: 1px solid var(--plain-white-soft);
    background: linear-gradient(180deg, rgba(240, 230, 212, 0.8), rgba(247, 241, 227, 0.82));
    color: var(--text-primary);
}

.wealth-loading--compact {
    min-height: 94px;
    padding: 0.8rem 0.85rem;
    margin-bottom: 0.65rem;
}

.wealth-loading-spinner {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    border: 3px solid rgba(181, 144, 73, 0.22);
    border-top-color: var(--gold);
    animation: wealth-spin 0.9s linear infinite;
    flex: 0 0 auto;
}

.wealth-loading-texts h3 {
    margin: 0;
    font-size: 1.18rem;
    line-height: 1.2;
    color: var(--cream-text);
    font-weight: 700;
}

.wealth-loading-texts p {
    margin: 0.48rem 0 0;
    font-size: 0.88rem;
    color: var(--text-muted);
}

@keyframes wealth-spin {
    to {
        transform: rotate(360deg);
    }
}

.wealth-report {
    background: var(--panel-2);
    border: 1px solid var(--plain-white-soft);
    border-radius: 12px;
    padding: 1rem 1.05rem;
    margin-top: 0.5rem;
}

.wealth-tier-alert {
    display: flex;
    gap: 0.55rem;
    align-items: flex-start;
    padding: 0.65rem 0.8rem 0.65rem 0.72rem;
    margin: 0 0 0.75rem;
    border-radius: 10px;
    border: 1px solid rgba(230, 126, 34, 0.35);
    border-left: 4px solid #e67e22;
    background: rgba(255, 248, 220, 0.95);
    color: #5c4818;
    font-size: 0.88rem;
    line-height: 1.55;
}

.wealth-tier-alert--short {
    font-size: 0.84rem;
    margin-bottom: 0.65rem;
}

.wealth-tier-alert__icon {
    flex-shrink: 0;
    color: #d97706;
    line-height: 0;
    margin-top: 0.12rem;
}

.wealth-tier-alert__svg {
    display: block;
}

.wealth-tier-alert__text {
    margin: 0;
}

body.theme-ink .wealth-tier-alert {
    background: rgba(120, 90, 40, 0.24);
    color: #efe4d2;
    border-color: rgba(232, 153, 51, 0.35);
    border-left-color: #e89933;
}

body.theme-ink .wealth-tier-alert__icon {
    color: #f4a84d;
}

.wealth-report-headline {
    margin: 0 0 0.65rem;
    font-size: 0.98rem;
    font-weight: 600;
    color: var(--cream-text);
    line-height: 1.5;
}

.wealth-report-summary {
    margin-bottom: 1rem;
    padding-bottom: 0.85rem;
    border-bottom: 1px dashed var(--plain-white-soft);
}

.wealth-report-summary strong {
    display: block;
    font-size: 0.78rem;
    color: var(--gold);
    margin-bottom: 0.35rem;
}

.wealth-report-section {
    margin-bottom: 1rem;
}

.wealth-report-section:last-child {
    margin-bottom: 0;
}

.wealth-report-h {
    margin: 0 0 0.4rem;
    font-size: 0.96rem;
    font-weight: 700;
    color: var(--gold);
    letter-spacing: 0.02em;
}

.wealth-report-body {
    font-size: 0.96rem;
    color: var(--text-muted);
    line-height: 1.72;
}

.wealth-report-body p {
    margin: 0 0 0.45rem;
}

.wealth-report-body p:last-child {
    margin-bottom: 0;
}

.wealth-report-ul {
    margin: 0.25rem 0 0.5rem 1.1rem;
    padding: 0;
    color: var(--text-muted);
    font-size: 0.82rem;
    line-height: 1.6;
}

.wealth-report-ul li {
    margin-bottom: 0.25rem;
}

.wealth-report-empty {
    color: var(--text-muted);
    font-style: italic;
}

.wealth-a-legend {
    background: var(--panel-3);
    border: 1px solid var(--plain-white-soft);
    border-radius: 10px;
    padding: 0.65rem 0.85rem;
    margin-bottom: 0.65rem;
}

.wealth-a-legend-title {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--gold);
    margin: 0 0 0.35rem;
}

.wealth-a-legend-intro,
.wealth-a-legend-note {
    margin: 0 0 0.4rem;
    font-size: 0.76rem;
    color: var(--text-muted);
    line-height: 1.5;
}

.wealth-a-legend-list {
    margin: 0;
    padding-left: 1.15rem;
    font-size: 0.76rem;
    color: var(--text-muted);
    line-height: 1.55;
}

.wealth-a-legend-list li {
    margin-bottom: 0.2rem;
}

.wealth-a-legend-list strong {
    color: var(--cream-text);
}

@media (max-width: 768px) {
    .wealth-k-chart {
        height: 260px;
    }

    .wealth-loading {
        min-height: 108px;
        padding: 0.9rem;
        gap: 0.8rem;
    }

    .wealth-loading-texts h3 {
        font-size: 1.02rem;
    }

    .wealth-loading-texts p {
        font-size: 0.82rem;
    }
}

.fortune-panel-body {
    flex: 1;
    min-height: 0;
    overflow: auto;
    padding: 2rem;
    font-size: 1rem;
    line-height: 1.65;
    -webkit-overflow-scrolling: touch;
}

.fortune-panel .fortune-panel-body .result-heading {
    font-size: 1.25rem;
    margin-top: 1.1rem;
}

.fortune-panel .fortune-panel-body .result-heading:first-child {
    margin-top: 0;
}

.fortune-panel .fortune-panel-body .ai-text {
    font-size: 1rem;
    line-height: 1.7;
}

.fortune-panel .fortune-panel-body .fortune-card p {
    font-size: 1rem;
}

.fortune-panel .fortune-panel-body .fortune-card h3 {
    font-size: 1.125rem;
}

.fortune-panel .fortune-panel-body .fortune-card-btn strong {
    font-size: 1rem;
}

.fortune-panel .fortune-panel-body .fortune-card-btn span,
.fortune-panel .fortune-panel-body .fortune-card-btn em {
    font-size: 0.8125rem;
}

.fortune-panel .fortune-panel-body .liunian-overview p {
    font-size: 1rem;
}

.fortune-panel .wealth-report {
    padding: 1.25rem 1.35rem;
}

.fortune-panel .wealth-report-headline {
    font-size: 1.0625rem;
}

.fortune-panel .wealth-report-h {
    font-size: 1.125rem;
}

.fortune-panel .wealth-report-body,
.fortune-panel .wealth-report-ul {
    font-size: 1rem;
}

.fortune-panel .fortune-topic-modal-result {
    margin-top: 1rem;
    padding-top: 0.9rem;
}

.fortune-panel .fortune-topic-result-block__heading {
    font-size: 1.0625rem;
}

.fortune-panel .fortune-topic-result-item {
    padding: 1.05rem 1.15rem;
}

.fortune-panel .fortune-topic-result-item__title {
    font-size: 1.125rem;
}

.fortune-panel .fortune-topic-result-item__body {
    font-size: 1rem;
    line-height: 1.72;
}

.fortune-panel .fortune-qiyun-meta {
    font-size: 1rem;
}

.fortune-qiyun-meta {
    display: none;
    margin: 0 0 0.75rem;
    padding: 0.55rem 0.75rem;
    font-size: 0.82rem;
    line-height: 1.5;
    color: var(--text-primary);
    background: var(--panel-2);
    border: 1px solid var(--plain-white-soft);
    border-radius: 10px;
}

.fortune-qiyun-meta .fortune-qiyun-inner p {
    margin: 0.2rem 0;
}

.fortune-qiyun-meta .fortune-qiyun-inner p:first-child {
    margin-top: 0;
}

.fortune-qiyun-meta .fortune-qiyun-inner p:last-child {
    margin-bottom: 0;
}

/* —— 大运流年 · 图一式（起运 KPI + 大运表 + 流年行） —— */
.fortune-dy-body {
    padding-top: 1.1rem;
}

.fortune-dy-kpis {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.65rem;
    margin-bottom: 1.15rem;
}

.fortune-dy-kpi {
    background: var(--panel-2);
    border: 1px solid var(--plain-white-soft);
    border-radius: 12px;
    padding: 0.65rem 0.75rem;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
}

.fortune-dy-kpi-label {
    display: block;
    font-size: 0.72rem;
    color: var(--text-muted);
    margin-bottom: 0.2rem;
}

.fortune-dy-kpi-value {
    display: block;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--text-primary);
    letter-spacing: 0.02em;
}

.fortune-dy-kpi-sub {
    display: block;
    font-size: 0.72rem;
    color: var(--text-muted);
    margin-top: 0.15rem;
}

.fortune-dy-kpi-note {
    grid-column: 1 / -1;
    margin: -0.35rem 0 0;
    font-size: 0.72rem;
    line-height: 1.35;
    color: var(--text-muted);
    text-align: center;
}

.fortune-dy-kpi-warn {
    grid-column: 1 / -1;
    margin: 0;
    padding: 0.5rem 0.65rem;
    font-size: 0.8rem;
    line-height: 1.45;
    color: #8b4513;
    background: rgba(248, 208, 142, 0.35);
    border-radius: 10px;
    border: 1px solid rgba(195, 167, 111, 0.45);
}

.fortune-dy-block {
    margin-bottom: 1rem;
}

.fortune-dy-block-head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.35rem 0.75rem;
    margin-bottom: 0.5rem;
}

.fortune-dy-block-title {
    margin: 0;
    font-size: 1.08rem;
    font-weight: 700;
    color: var(--cream-text, var(--text-primary));
}

.fortune-dy-block-hint,
.main-fortune-block-hint,
#mainLiunianRangeLabel,
#mainLiuyueRangeLabel,
#mainLiuriRangeLabel {
    display: none !important;
}

.fortune-dy-block-hint {
    margin: 0;
    font-size: 0.78rem;
    color: var(--text-muted);
    line-height: 1.45;
    max-width: 42rem;
}

/* 大运：<table> 矩阵，横向滚动 */
.fortune-dayun-scroll {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin-bottom: 0.35rem;
    border-radius: 12px;
    border: 1px solid var(--plain-white-soft);
    background: var(--panel-2);
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
}

/* 隐藏滚动条后：鼠标拖拽 / 悬停滚轮横向滑动 */
.fortune-dayun-scroll.fortune-h-scroll-drag,
.fortune-liunian-scroll.fortune-h-scroll-drag {
    cursor: grab;
    touch-action: pan-x;
}
.fortune-dayun-scroll.fortune-h-scroll-drag.is-h-dragging,
.fortune-liunian-scroll.fortune-h-scroll-drag.is-h-dragging {
    cursor: grabbing;
    user-select: none;
}
.fortune-dayun-scroll.fortune-h-scroll-drag.is-h-dragging *,
.fortune-liunian-scroll.fortune-h-scroll-drag.is-h-dragging * {
    pointer-events: none;
}

.fortune-dy-matrix {
    width: max-content;
    min-width: 100%;
    border-collapse: collapse;
    font-size: 0.8rem;
    color: var(--text-primary);
}

.fortune-dy-matrix-corner,
.fortune-dy-matrix-rowhead {
    position: sticky;
    left: 0;
    z-index: 3;
    background: var(--bg-card, var(--panel-2));
    border: 1px solid var(--plain-white-soft);
    padding: 0.42rem 0.5rem;
    text-align: left;
    white-space: nowrap;
    font-weight: 700;
    min-width: 4.6rem;
    box-shadow: 2px 0 6px rgba(0, 0, 0, 0.04);
}

.fortune-dy-matrix thead th {
    border: 1px solid var(--plain-white-soft);
    padding: 0.48rem 0.42rem;
    text-align: center;
    vertical-align: bottom;
    min-width: 5.4rem;
    background: rgba(248, 208, 142, 0.12);
    font-weight: 700;
}

.fortune-dy-matrix-gz {
    display: inline-block;
    font-size: 0.95rem;
}

.fortune-dy-pill {
    display: inline-block;
    margin-left: 0.15rem;
    font-size: 0.58rem;
    font-weight: 700;
    padding: 0.06rem 0.28rem;
    border-radius: 6px;
    background: rgba(198, 120, 45, 0.25);
    vertical-align: middle;
}

.fortune-dy-matrix tbody th {
    z-index: 2;
}

.fortune-dy-matrix tbody td {
    border: 1px solid var(--plain-white-soft);
    padding: 0.4rem 0.35rem;
    text-align: center;
    vertical-align: middle;
}

.fortune-dy-matrix-top.is-current-yun,
.fortune-dy-matrix-cell.is-current-yun {
    background: rgba(248, 208, 142, 0.26);
}

.fortune-dy-matrix-top.is-selected-yun,
.fortune-dy-matrix-cell.is-selected-yun {
    box-shadow: inset 0 0 0 2px rgba(198, 120, 45, 0.42);
}

.fortune-dy-expand-btn {
    display: inline-block;
    margin: 0;
    padding: 0.28rem 0.4rem;
    font-size: 0.68rem;
    font-weight: 600;
    color: var(--cream-text, #5c3d16);
    background: rgba(255, 255, 255, 0.45);
    border: 1px solid rgba(195, 167, 111, 0.45);
    border-radius: 8px;
    cursor: pointer;
    white-space: nowrap;
}

.fortune-dy-expand-btn:hover {
    background: rgba(248, 208, 142, 0.35);
}

.fortune-dy-expand-btn.is-active {
    background: rgba(248, 208, 142, 0.5);
    border-color: rgba(58, 47, 33, 0.28);
}

/* 流年：外层横向滚动（参考图三卡片条） */
.fortune-liunian-scroll {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    padding: 0.15rem 0.1rem 0.45rem;
    margin: 0 -0.15rem;
    -webkit-overflow-scrolling: touch;
    scrollbar-color: rgba(195, 167, 111, 0.55) transparent;
}

.fortune-liunian-scroll::-webkit-scrollbar {
    height: 8px;
}

.fortune-liunian-scroll::-webkit-scrollbar-thumb {
    background: rgba(195, 167, 111, 0.45);
    border-radius: 999px;
}

.fortune-liunian-strip {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: 0.55rem;
    min-height: 5.75rem;
    padding: 0.1rem 0.25rem 0.2rem;
    width: max-content;
}

.fortune-liunian-card {
    position: relative;
    flex: 0 0 auto;
    width: min(118px, 30vw);
    min-width: 92px;
    margin: 0;
    padding: 0.55rem 0.6rem 0.5rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 0.2rem;
    border-radius: 12px;
    border: 1px solid var(--plain-white-soft);
    background: var(--panel-2);
    box-shadow: 0 1px 6px rgba(0, 0, 0, 0.05);
    cursor: pointer;
    font: inherit;
    color: var(--text-primary);
}

.fortune-liunian-card:hover {
    border-color: rgba(195, 167, 111, 0.5);
}

.fortune-liunian-card.is-active {
    background: rgba(248, 208, 142, 0.38);
    border-color: rgba(58, 47, 33, 0.28);
    box-shadow: 0 2px 10px rgba(198, 120, 45, 0.15);
}

/* 流年逐年：只读展示，不可点击；选中态仅用于大运卡片 */
.fortune-liunian-card--static {
    cursor: default;
    pointer-events: none;
    user-select: none;
}

.fortune-liunian-card--static:hover {
    border-color: var(--plain-white-soft);
}

.fortune-liunian-card--pickable {
    cursor: pointer;
    pointer-events: auto;
    user-select: none;
    appearance: none;
    -webkit-appearance: none;
}

.fortune-liunian-card--pickable:hover {
    border-color: rgba(195, 167, 111, 0.5);
}

.main-fortune-card .fortune-liunian-card--pickable:hover {
    border-color: rgba(212, 168, 95, 0.55);
    background: linear-gradient(180deg, #fffdf8 0%, var(--fp-card-hover) 100%);
}

/* 当年/当月/当日：选中高亮与大运 is-selected-yun 一致 */
.main-fortune-card .fortune-liunian-card--pickable.is-active {
    border-color: rgba(200, 120, 35, 0.88);
    background: linear-gradient(
        180deg,
        rgba(255, 252, 240, 1) 0%,
        rgba(255, 240, 210, 0.97) 45%,
        rgba(255, 228, 188, 0.94) 100%
    );
    box-shadow:
        0 0 0 2px rgba(255, 160, 55, 0.55),
        0 0 24px rgba(220, 150, 55, 0.38),
        0 8px 22px rgba(170, 100, 30, 0.22);
    z-index: 2;
    position: relative;
}

.main-fortune-card .fortune-liunian-card--pickable.is-active:hover {
    border-color: rgba(185, 105, 25, 0.92);
    background: linear-gradient(
        180deg,
        rgba(255, 254, 248, 1) 0%,
        rgba(255, 244, 218, 0.98) 50%,
        rgba(255, 232, 198, 0.96) 100%
    );
    box-shadow:
        0 0 0 2px rgba(255, 150, 45, 0.62),
        0 0 28px rgba(230, 155, 60, 0.42),
        0 10px 26px rgba(170, 100, 30, 0.24);
}

.main-fortune-card .fortune-liunian-card--pickable.is-active::before {
    background: linear-gradient(180deg, rgb(255, 200, 120) 0%, rgb(220, 140, 50) 55%, rgb(190, 110, 35) 100%);
    opacity: 1;
}

.fortune-liunian-card--pickable.is-active {
    background: rgba(248, 208, 142, 0.38);
    border-color: rgba(58, 47, 33, 0.28);
    box-shadow: 0 2px 10px rgba(198, 120, 45, 0.15);
}

.fortune-liunian-card-hd {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    justify-content: space-between;
    width: 100%;
    gap: 0.25rem;
}

.fortune-liunian-card-y {
    font-weight: 800;
    font-size: 1rem;
    line-height: 1.2;
}

.fortune-liunian-card-gz {
    font-weight: 800;
    font-size: 1.05rem;
    letter-spacing: 0.06em;
    color: var(--cream-text, #6b4a1e);
    line-height: 1.25;
}

.fortune-liunian-card-sx,
.fortune-liunian-card-age {
    font-size: 0.76rem;
    color: var(--text-muted);
    line-height: 1.2;
}

/* —— 主结果区 · 大运流年横滑卡片（.main-fortune-card） —— */
.main-fortune-card .fortune-dy-kpi {
    background: var(--fp-card);
    border-color: rgba(236, 199, 131, 0.28);
    box-shadow: none;
}

.main-fortune-card .fortune-dy-kpi-label {
    color: var(--fp-muted);
}

.main-fortune-card .fortune-dy-kpi-value {
    color: var(--fp-text);
}

.main-fortune-card .fortune-dy-kpi-sub {
    color: var(--fp-muted);
}

.main-fortune-card .fortune-dy-kpi-note {
    color: var(--fp-muted);
}

.main-fortune-card .fortune-dy-kpi-warn {
    color: #6b4518;
    background: rgba(236, 199, 131, 0.28);
    border-color: rgba(212, 168, 95, 0.42);
}

.main-fortune-card .main-fortune-block-title {
    color: #8a6a38;
}

.main-fortune-card .fortune-dy-block-hint {
    color: var(--fp-muted);
}

.main-fortune-card .fortune-dy-block-hint code {
    color: #4a4238;
    background: rgba(236, 199, 131, 0.2);
    padding: 0.06rem 0.22rem;
    border-radius: 4px;
}

.main-fortune-card .fortune-dayun-scroll {
    background: var(--fp-card);
    border-color: rgba(236, 199, 131, 0.3);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.75);
    scrollbar-color: var(--fp-amber-dim) transparent;
}

.main-fortune-card .fortune-dayun-scroll::-webkit-scrollbar {
    height: 7px;
}

.main-fortune-card .fortune-dayun-scroll::-webkit-scrollbar-thumb {
    background: var(--fp-amber-dim);
    border-radius: 999px;
}

.main-fortune-card .fortune-dayun-scroll::-webkit-scrollbar-track {
    background: rgba(236, 199, 131, 0.12);
    border-radius: 999px;
}

.main-fortune-card .fortune-dy-strip {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    gap: 0.65rem;
    padding: 0.65rem 0.75rem 0.75rem;
    width: max-content;
    min-height: 0;
}

.main-fortune-card .fortune-dy-card {
    position: relative;
    flex: 0 0 auto;
    width: min(128px, 28vw);
    min-width: 104px;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: 5px minmax(0, 1fr);
    grid-template-rows: auto auto;
    align-items: stretch;
    text-align: left;
    border-radius: 12px;
    border: 1px solid rgba(236, 199, 131, 0.35);
    background: linear-gradient(180deg, #fffefb 0%, var(--fp-card) 100%);
    box-shadow: 0 4px 14px rgba(236, 199, 131, 0.14);
    cursor: pointer;
    font: inherit;
    color: var(--fp-text);
    overflow: hidden;
}

.main-fortune-card .fortune-dy-card:hover {
    border-color: rgba(212, 168, 95, 0.55);
    background: linear-gradient(180deg, #fffdf8 0%, var(--fp-card-hover) 100%);
}

/* 含当前公历年的大运步：轻提示（与「已选中」可叠加，选中样式在后覆盖） */
.main-fortune-card .fortune-dy-card.is-current-yun {
    box-shadow: 0 0 0 1px rgba(236, 199, 131, 0.55), 0 6px 18px rgba(236, 199, 131, 0.18);
}

/* 用户点击选中的大运：明显高亮（主结果区） */
.main-fortune-card .fortune-dy-card.is-selected-yun {
    border-color: rgba(200, 120, 35, 0.88);
    background: linear-gradient(
        180deg,
        rgba(255, 252, 240, 1) 0%,
        rgba(255, 240, 210, 0.97) 45%,
        rgba(255, 228, 188, 0.94) 100%
    );
    box-shadow:
        0 0 0 2px rgba(255, 160, 55, 0.55),
        0 0 24px rgba(220, 150, 55, 0.38),
        0 8px 22px rgba(170, 100, 30, 0.22);
    z-index: 2;
    position: relative;
}

.main-fortune-card .fortune-dy-card.is-selected-yun:hover {
    border-color: rgba(185, 105, 25, 0.92);
    background: linear-gradient(
        180deg,
        rgba(255, 254, 248, 1) 0%,
        rgba(255, 244, 218, 0.98) 50%,
        rgba(255, 232, 198, 0.96) 100%
    );
    box-shadow:
        0 0 0 2px rgba(255, 150, 45, 0.62),
        0 0 28px rgba(230, 155, 60, 0.42),
        0 10px 26px rgba(170, 100, 30, 0.24);
}

.main-fortune-card .fortune-dy-card.is-selected-yun .fortune-dy-card-foot {
    background: rgba(255, 220, 175, 0.55);
    border-top-color: rgba(200, 130, 45, 0.42);
}

.main-fortune-card .fortune-dy-card-bar {
    grid-column: 1;
    grid-row: 1 / -1;
    width: 5px;
    min-height: 100%;
    background: linear-gradient(180deg, rgb(244, 214, 160) 0%, var(--tone-gold) 55%, rgb(200, 155, 85) 100%);
}

.main-fortune-card .fortune-dy-card-main {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
    padding: 0.55rem 0.6rem 0.45rem;
    display: flex;
    flex-direction: column;
    gap: 0.22rem;
}

.main-fortune-card .fortune-dy-card-gz {
    font-size: 1.05rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    line-height: 1.25;
}

.main-fortune-card .fortune-dy-card-age,
.main-fortune-card .fortune-dy-card-cal {
    font-size: 0.72rem;
    color: var(--fp-muted);
    line-height: 1.3;
}

.main-fortune-card .fortune-dy-card-ss {
    font-size: 0.74rem;
    font-weight: 600;
    color: var(--fp-amber);
    margin-top: 0.1rem;
}

.main-fortune-card .fortune-dy-card-foot {
    grid-column: 2;
    grid-row: 2;
    display: block;
    padding: 0.35rem 0.55rem 0.42rem;
    border-top: 1px solid rgba(236, 199, 131, 0.28);
    background: rgba(247, 239, 226, 0.72);
    width: 100%;
    box-sizing: border-box;
}

.main-fortune-card .fortune-dy-expand-label {
    font-size: 0.65rem;
    font-weight: 600;
    color: var(--fp-muted);
    letter-spacing: 0.02em;
}

.main-fortune-card .fortune-dy-card.is-selected-yun .fortune-dy-expand-label {
    color: var(--fp-amber);
}

.main-fortune-card .fortune-dy-pill {
    background: rgba(236, 199, 131, 0.35);
    color: var(--fp-amber);
    vertical-align: middle;
}

.main-fortune-card .wx-木 {
    color: #00a870;
}

.main-fortune-card .wx-火 {
    color: #e05a5a;
}

.main-fortune-card .wx-土 {
    color: #c69035;
}

.main-fortune-card .wx-金 {
    color: rgb(211, 211, 211);
}

.main-fortune-card .wx-水 {
    color: #2d9ecf;
}

.main-fortune-card .fortune-liunian-scroll {
    scrollbar-color: rgba(236, 199, 131, 0.55) transparent;
}

.main-fortune-card .fortune-liunian-scroll::-webkit-scrollbar-thumb {
    background: rgba(236, 199, 131, 0.45);
}

.main-fortune-card .fortune-liunian-card {
    position: relative;
    overflow: hidden;
    padding-left: 0.72rem;
    background: var(--fp-card);
    border-color: rgba(236, 199, 131, 0.32);
    color: var(--fp-text);
    box-shadow: 0 2px 10px rgba(236, 199, 131, 0.12);
}

.main-fortune-card .fortune-liunian-card::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    border-radius: 12px 0 0 12px;
    background: linear-gradient(180deg, rgb(244, 214, 160) 0%, var(--tone-gold) 100%);
    opacity: 0.95;
}

.main-fortune-card .fortune-liunian-card:hover {
    border-color: rgba(212, 168, 95, 0.5);
}

.main-fortune-card .fortune-liunian-card--static:hover {
    border-color: rgba(236, 199, 131, 0.32);
    box-shadow: 0 2px 10px rgba(236, 199, 131, 0.12);
}

.main-fortune-card .fortune-liunian-card-y {
    color: var(--fp-text);
}

.main-fortune-card .fortune-liunian-card-gz {
    color: var(--fp-text);
}

.main-fortune-card .fortune-liunian-card-sx,
.main-fortune-card .fortune-liunian-card-age {
    color: var(--fp-muted);
}

.main-fortune-card .fortune-liunian-cur {
    color: var(--fp-liu-bar);
    font-weight: 700;
}

.lifetime-shell {
    margin-top: 0.35rem;
}

/* 饼图 + 条形图同一列，与喜用神并排，避免条形图通栏后右侧大块留白 */
.lifetime-visual-cluster {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    min-width: 0;
}

.lifetime-visual-cluster .life-visual-row {
    margin-bottom: 0;
}

.lifetime-visual-cluster .element-bars {
    margin-top: 0;
    margin-bottom: 0;
}

@media (min-width: 992px) {
    .lifetime-shell {
        display: grid;
        grid-template-columns: minmax(0, 1.22fr) minmax(300px, 0.88fr);
        column-gap: 1.15rem;
        row-gap: 0.75rem;
        align-items: stretch;
    }

    .lifetime-shell > .result-heading {
        grid-column: 1 / -1;
        grid-row: 1;
    }

    .lifetime-shell > .lifetime-visual-cluster {
        grid-column: 1;
        grid-row: 2;
        align-self: stretch;
    }

    .lifetime-shell > #usefulElementsCard {
        grid-column: 2;
        grid-row: 2;
        margin: 0;
        align-self: stretch;
        display: flex;
        flex-direction: column;
        gap: 0.55rem;
        min-height: 0;
        height: auto;
    }

    .lifetime-shell > #usefulElementsCard .useful-grid {
        flex: 1 1 auto;
        min-height: 0;
    }

    .lifetime-shell > #usefulElementsCard .useful-reason {
        margin-top: auto;
        padding-top: 0.5rem;
        border-top: 1px solid var(--plain-white-soft);
    }

    .lifetime-shell > #lifetimeFortuneCard {
        grid-column: 1 / -1;
        grid-row: 3;
    }
}

@media (min-width: 1200px) {
    .lifetime-visual-cluster {
        display: grid;
        /* 避免 min 宽度和超过父列导致条形区向右溢出、盖住喜用神卡片 */
        grid-template-columns: minmax(0, 0.48fr) minmax(0, 1fr);
        grid-template-rows: minmax(0, auto);
        align-items: start;
        column-gap: 1.25rem;
        row-gap: 0;
    }

    /* 饼图与图例：用 flex 换行避免图例被压扁后与条形图视觉重叠 */
    .lifetime-visual-cluster > .life-visual-row {
        grid-column: 1;
        grid-row: 1;
        align-self: start;
        display: flex;
        flex-wrap: wrap;
        align-items: flex-start;
        justify-content: center;
        gap: 0.75rem 1rem;
        min-width: 0;
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }

    .lifetime-visual-cluster > .life-visual-row .lifetime-pie {
        flex: 0 0 auto;
        min-width: 0;
    }

    .lifetime-visual-cluster > .life-visual-row .lifetime-legend {
        flex: 1 1 11rem;
        min-width: min(100%, 10.5rem);
        max-width: 100%;
        box-sizing: border-box;
    }

    .lifetime-visual-cluster .life-pie-svg {
        width: min(188px, 100%);
        height: min(188px, 100%);
        aspect-ratio: 1;
    }

    .lifetime-visual-cluster > .element-bars {
        grid-column: 2;
        grid-row: 1;
        margin: 0;
        align-self: stretch;
        min-width: 0;
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }
}

/* 中等宽屏：图例改单列，避免「木% / 火%」与条形区挤在一起 */
@media (min-width: 1200px) and (max-width: 1399px) {
    .lifetime-visual-cluster .lifetime-legend {
        grid-template-columns: 1fr;
        flex-basis: 100%;
        max-width: none;
    }

    .lifetime-visual-cluster > .life-visual-row .lifetime-pie {
        margin-inline: auto;
    }
}

@media (min-width: 1400px) {
    .lifetime-visual-cluster {
        grid-template-columns: minmax(0, 0.48fr) minmax(0, 1fr);
        column-gap: 1.35rem;
    }

    .lifetime-visual-cluster .lifetime-legend {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        flex: 1 1 13rem;
        min-width: 12rem;
    }
}

.life-visual-row {
    display: grid;
    grid-template-columns: minmax(0, 220px) minmax(0, 1fr);
    gap: 0.9rem;
    align-items: center;
    margin-bottom: 0.85rem;
    background: var(--panel-2);
    border: 1px solid var(--plain-white-soft);
    border-radius: 12px;
    padding: 0.75rem;
    min-width: 0;
}

.lifetime-pie {
    display: flex;
    justify-content: center;
    min-width: 0;
}

.life-pie-svg {
    width: 180px;
    height: 180px;
    max-width: 100%;
}

.lifetime-legend {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.45rem 0.6rem;
    min-width: 0;
    font-size: 0.82rem;
    line-height: 1.35;
    word-break: keep-all;
    overflow-wrap: anywhere;
}

.element-bars {
    margin: 0.15rem 0 0.95rem;
    background: var(--panel-2);
    border: 1px solid var(--plain-white-soft);
    border-radius: 12px;
    padding: 0.65rem 0.75rem;
    display: grid;
    gap: 0.45rem;
    min-width: 0;
}

.useful-elements-card {
    margin: 0.15rem 0 0.95rem;
    background: var(--panel-2);
    border: 1px solid var(--plain-white-soft);
    border-radius: 12px;
    padding: 0.8rem 0.85rem;
    color: var(--text-primary);
    display: grid;
    gap: 0.55rem;
}

/* 子平真诠·格局解析（判词 + 白话，与全站浅米金色调一致） */
.geju-ziping-card {
    margin: 0.35rem auto 1rem;
    padding: 1rem 1.05rem 1.05rem;
    background: var(--bg-card);
    border: 1px solid var(--bg-card-border);
    border-radius: 16px;
    box-shadow:
        0 8px 26px rgba(236, 199, 131, 0.16),
        0 2px 8px rgba(58, 47, 33, 0.05),
        inset 0 1px 0 rgba(255, 255, 255, 0.72);
    display: grid;
    gap: 0.65rem;
    max-width: min(720px, 100%);
    width: 100%;
    box-sizing: border-box;
    text-align: center;
}

.geju-ziping-card-head {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
}

.geju-ziping-card-title {
    margin: 0;
    font-size: 1.02rem;
    font-weight: 700;
    color: var(--gold-dim, #8a6a38);
    letter-spacing: 0.06em;
}

.geju-ziping-pattern:empty {
    display: none;
}

.geju-ziping-pattern {
    margin: 0.15rem 0 0.1rem;
    font-size: clamp(1.55rem, 4.2vw, 2.05rem);
    font-weight: 800;
    line-height: 1.35;
    letter-spacing: 0.14em;
    font-family: Georgia, "KaiTi", "STKaiti", "Noto Serif SC", serif;
    color: rgb(154, 98, 32);
    text-indent: 0.14em;
}

.geju-ziping-poem {
    margin: 0;
    padding: 0.75rem 0.85rem;
    font-size: 1.2rem;
    line-height: 1.75;
    font-family: Georgia, "KaiTi", "STKaiti", "Noto Serif SC", serif;
    color: rgb(196, 138, 58);
    background: color-mix(in srgb, var(--panel-2) 88%, var(--tone-gold) 12%);
    border-radius: 12px;
    border: 1px solid rgba(236, 199, 131, 0.28);
    text-align: center;
}

.geju-ziping-divider {
    height: 0;
    border: 0;
    border-top: 1px solid var(--line-soft, rgba(58, 47, 33, 0.1));
    margin: 0.15rem 0 0.1rem;
}

.geju-ziping-analysis {
    margin: 0;
    font-family: var(--font-ui);
    font-size: 14px;
    line-height: 1.6;
    color: color-mix(in srgb, var(--text-primary) 88%, transparent);
    text-align: left;
    justify-self: stretch;
}

.ai-classic-block {
    text-align: left;
    display: grid;
    gap: 0.65rem;
}

.ai-classic-sec {
    margin: 0;
    min-width: 0;
    box-sizing: border-box;
    padding: 0.1rem 0.05rem 0.15rem;
}

.ai-classic-sec__title {
    margin: 0 0 0.28rem;
    font-size: 1.02rem;
    line-height: 1.45;
    font-weight: 800;
    color: color-mix(in srgb, var(--text-primary) 92%, transparent);
}

.ai-classic-sec__body {
    margin: 0;
    font-size: 1rem;
    line-height: 1.8;
    color: color-mix(in srgb, var(--text-primary) 90%, transparent);
    white-space: normal;
}

/* 兜底：历史缓存里遗留的分页控件统一隐藏，避免错页与缺页。 */
.ai-classic-nav,
.ai-classic-dots,
.ai-classic-slider {
    display: none !important;
}


body.theme-ink .geju-ziping-pattern {
    color: rgb(232, 188, 118);
}

body.theme-ink .geju-ziping-poem {
    color: rgb(236, 196, 132);
    background: color-mix(in srgb, var(--panel-2) 75%, rgb(95, 78, 58) 25%);
    border-color: rgba(95, 78, 58, 0.45);
}

body.theme-ink .geju-ziping-card-title {
    color: rgb(212, 180, 120);
}

.useful-elements-card.is-loading {
    color: var(--text-muted);
}

.lifetime-fortune-card {
    margin: 0.15rem 0 0.95rem;
    background: var(--panel-2);
    border: 1px solid var(--plain-white-soft);
    border-radius: 12px;
    padding: 0.8rem 0.85rem;
    color: var(--text-primary);
}

.lifetime-fortune-title {
    font-size: 0.98rem;
    font-weight: 700;
    margin-bottom: 0.55rem;
}

.lifetime-fortune-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.55rem;
}

.lifetime-fortune-head .lifetime-fortune-title {
    margin: 0;
}

.lifetime-theory-btn {
    border: 1px solid rgba(196, 161, 103, 0.45);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.7);
    color: var(--text-primary);
    font-size: 0.76rem;
    line-height: 1;
    padding: 0.35rem 0.7rem;
    cursor: pointer;
}

.lifetime-theory-btn:hover {
    background: rgba(248, 208, 142, 0.2);
    border-color: rgba(196, 161, 103, 0.65);
}

.lifetime-theory-overlay {
    position: fixed;
    inset: 0;
    z-index: 1380;
    display: grid;
    place-items: center;
    padding: max(1rem, env(safe-area-inset-top, 0px)) max(1rem, env(safe-area-inset-right, 0px))
        max(1rem, env(safe-area-inset-bottom, 0px)) max(1rem, env(safe-area-inset-left, 0px));
    background: rgba(16, 12, 8, 0.45);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.24s ease, visibility 0.24s ease;
}

.lifetime-theory-overlay.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.lifetime-theory-modal {
    width: min(900px, 92vw);
    max-height: 88vh;
    border-radius: 18px;
    border: 1px solid rgba(195, 167, 111, 0.35);
    background: linear-gradient(180deg, rgba(250, 245, 236, 0.99), rgba(245, 236, 220, 0.99));
    box-shadow: 0 22px 56px rgba(26, 19, 11, 0.24);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.lifetime-theory-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.65rem;
    padding: 0.95rem 1rem 0.8rem;
    border-bottom: 1px solid rgba(195, 167, 111, 0.24);
}

.lifetime-theory-head h3 {
    margin: 0;
    font-size: 1rem;
    color: var(--cream-text);
}

.lifetime-theory-body {
    overflow: auto;
    padding: 0.9rem 1rem 1rem;
}

.lifetime-theory-pre {
    margin: 0;
    white-space: pre-wrap;
    word-break: break-word;
    color: var(--text-primary);
    font-size: 0.86rem;
    line-height: 1.65;
    font-family: inherit;
}

.lifetime-fortune-warning {
    margin: 0 0 0.55rem;
    font-size: 0.78rem;
    line-height: 1.5;
    color: #8b4513;
}

.lifetime-radar-wrap {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

.lifetime-radar-chart {
    width: 100%;
    max-width: min(420px, 100%);
    min-width: 320px;
    height: min(320px, 52vw);
    min-height: 260px;
    box-sizing: border-box;
}

.lifetime-radar-empty {
    height: 320px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-muted);
    font-size: 0.86rem;
}

.lifetime-fortune-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.6rem;
}

@media (max-width: 760px) {
    .lifetime-fortune-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.useful-elements-title {
    font-size: 0.98rem;
    font-weight: 700;
}

.useful-elements-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem 0.5rem;
}

.useful-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    border-radius: 999px;
    border: 1px solid var(--plain-white-soft);
    background: rgba(255, 255, 255, 0.04);
    padding: 0.18rem 0.55rem;
    font-size: 0.78rem;
}

.useful-chip-dot {
    width: 0.56rem;
    height: 0.56rem;
    border-radius: 50%;
}

.useful-chip--avoid .useful-chip-dot {
    background: #8f8f8f;
}

.useful-chip--idle {
    border-style: dashed;
    opacity: 0.92;
}

.useful-idle-hint {
    margin-left: 0.35rem;
    font-size: 0.72rem;
    color: rgba(255, 255, 255, 0.45);
    font-weight: 400;
}

.useful-idle-note {
    margin: 0.15rem 0 0.2rem;
    font-size: 0.72rem;
    line-height: 1.45;
    color: rgba(90, 72, 48, 0.72);
    font-weight: 400;
}

.useful-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.48rem 0.8rem;
}

.useful-row {
    font-size: 0.8rem;
    line-height: 1.55;
}

.useful-row b {
    margin-right: 0.3rem;
}

.useful-color-list {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.useful-color-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    border-radius: 999px;
    border: 1px solid var(--plain-white-soft);
    padding: 0.1rem 0.45rem;
}

.useful-color-block {
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 2px;
}

.useful-reason {
    font-size: 0.78rem;
    line-height: 1.65;
    color: var(--text-muted);
    word-break: break-word;
    overflow-wrap: anywhere;
    white-space: normal;
    max-height: 6.5rem;
    overflow-y: auto;
    padding-right: 0.15rem;
}

.useful-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.55rem;
    font-size: 0.76rem;
    color: var(--text-muted);
}

.useful-meta span {
    padding: 0.12rem 0.45rem;
    border-radius: 999px;
    border: 1px solid var(--plain-white-soft);
    background: rgba(255, 255, 255, 0.03);
}

.useful-chip--stem small {
    margin-left: 0.2rem;
    opacity: 0.72;
    font-size: 0.72em;
}

.useful-schools-details {
    margin: 0.1rem 0 0.15rem;
    border: 1px solid var(--plain-white-soft);
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.02);
    overflow: hidden;
}

.useful-schools-summary {
    cursor: pointer;
    padding: 0.45rem 0.65rem;
    font-size: 0.8rem;
    font-weight: 600;
    list-style: none;
    user-select: none;
}

.useful-schools-summary::-webkit-details-marker {
    display: none;
}

.useful-schools-summary::before {
    content: '▸ ';
    opacity: 0.65;
}

.useful-schools-details[open] .useful-schools-summary::before {
    content: '▾ ';
}

.useful-schools-body {
    display: grid;
    gap: 0.55rem;
    padding: 0 0.65rem 0.65rem;
    border-top: 1px solid var(--plain-white-soft);
}

.useful-school-row {
    padding-top: 0.55rem;
    font-size: 0.78rem;
    line-height: 1.55;
}

.useful-school-name {
    font-weight: 700;
    margin-bottom: 0.15rem;
    color: var(--gold-dim, #8a6a38);
}

.useful-school-line b {
    margin-right: 0.25rem;
}

.useful-school-note {
    margin-top: 0.15rem;
    color: var(--text-muted);
    font-size: 0.74rem;
}

.element-bar-row {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr) 2.85rem;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.78rem;
    color: var(--text-primary);
    min-width: 0;
}

.element-bar-row .name {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    min-width: 1.25rem;
    white-space: nowrap;
    line-height: 1.2;
}

.element-bar-row .bar {
    height: 8px;
    border-radius: 999px;
    background: rgba(58, 47, 33, 0.12);
    overflow: hidden;
}

.element-bar-row .bar i {
    display: block;
    height: 100%;
    border-radius: 999px;
}

.life-kong-tag {
    margin-left: 4px;
    font-size: 11px;
    color: #b45309;
    font-weight: 600;
}

.life-dominant-tag {
    margin-left: 0;
    font-size: 10px;
    color: #c0392b;
    font-weight: 600;
    line-height: 1;
    white-space: nowrap;
    writing-mode: horizontal-tb;
    flex-shrink: 0;
}

.life-legend-item .life-dominant-tag,
.life-legend-item .life-kong-tag {
    margin-left: 4px;
}

.lifetime-rule-hint {
    margin: 8px 0 0;
    font-size: 13px;
    line-height: 1.5;
    color: var(--muted, #666);
}

.element-bar-row .num {
    color: var(--text-muted);
    text-align: right;
}

.life-legend-item {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    color: var(--text-primary);
    font-size: 0.82rem;
}

.life-legend-item .dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
}

.life-legend-item b {
    margin-left: auto;
    color: var(--text-muted);
    font-weight: 600;
}

.fortune-track {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(118px, 1fr);
    gap: 0.55rem;
    overflow-x: auto;
    padding-bottom: 0.35rem;
    margin-bottom: 0.8rem;
}

.fortune-card-btn {
    border: 1px solid var(--plain-white-soft);
    background: var(--panel-2);
    color: var(--text-primary);
    border-radius: 12px;
    padding: 0.62rem 0.55rem;
    text-align: left;
    cursor: pointer;
}

.fortune-card-btn strong {
    display: block;
    font-size: 0.96rem;
}

.fortune-card-btn span,
.fortune-card-btn em {
    display: block;
    font-size: 0.72rem;
    color: var(--text-muted);
    font-style: normal;
    margin-top: 0.12rem;
}

.fortune-card-btn.is-active {
    background: rgba(248, 208, 142, 0.36);
    border-color: rgba(58, 47, 33, 0.25);
}

.fortune-track--liunian {
    grid-auto-columns: minmax(132px, 1fr);
}

.fortune-dayun-btn,
.fortune-liunian-btn {
    min-height: 5rem;
}

.fortune-dayun-btn strong {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.fortune-dayun-shishen {
    display: block;
    font-size: 0.68rem;
    color: var(--text-muted);
    margin-top: 0.2rem;
    line-height: 1.25;
}

.fortune-dayun-cur,
.fortune-liunian-cur {
    font-size: 0.62rem;
    font-weight: 600;
    padding: 0.05rem 0.3rem;
    border-radius: 6px;
    background: rgba(198, 120, 45, 0.22);
    color: var(--text-primary);
}

.fortune-liunian-btn strong {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.fortune-liunian-gz {
    display: block;
    font-size: 0.84rem !important;
    font-weight: 600;
    color: var(--text-primary) !important;
    margin-top: 0.12rem !important;
}

.fortune-liunian-meta {
    display: block;
    font-size: 0.7rem !important;
    color: var(--text-muted) !important;
    line-height: 1.3;
}

.fortune-liunian-loading {
    padding: 0.65rem 0.5rem;
    font-size: 0.82rem;
    color: var(--text-muted);
}

.liunian-input {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem;
    margin-bottom: 0.75rem;
}

.liunian-input label {
    font-size: 0.82rem;
    color: var(--text-muted);
}

.ai-text {
    background: var(--panel-1, #1c1a18);
    border: 1px solid var(--plain-white-thin, rgba(255, 255, 255, 0.06));
    border-radius: 14px;
    padding: 1rem;
    font-size: 1.02rem;
    line-height: 1.65;
    color: var(--text-muted);
    border-left: 3px solid var(--accent);
}

.liunian-overview {
    background: var(--panel-2);
    border: 1px solid var(--plain-white-soft);
    border-radius: 12px;
    padding: 0.85rem;
    margin-bottom: 0.75rem;
}

.liunian-overview-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.6rem;
    margin-bottom: 0.4rem;
    color: var(--gold);
}

.liunian-overview p {
    color: var(--text-muted);
    font-size: 0.96rem;
    line-height: 1.65;
}

.liunian-badge {
    font-size: 0.7rem;
    color: var(--cream-text);
    background: rgba(248, 208, 142, 0.85);
    border-radius: 999px;
    padding: 0.15rem 0.5rem;
    white-space: nowrap;
}

.liunian-badge--local {
    background: rgba(138, 123, 104, 0.85);
}

.liunian-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.6rem;
}

.fortune-card {
    background: var(--panel-2);
    border: 1px solid var(--plain-white-soft);
    border-radius: 12px;
    padding: 0.8rem;
}

.fortune-card h3 {
    font-size: 0.98rem;
    color: var(--gold);
    margin-bottom: 0.35rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.4rem;
}

.fortune-card h3 i {
    font-style: normal;
    color: var(--gold);
    font-size: 0.85rem;
    margin-right: 0.2rem;
}

.fortune-card h3 span {
    font-size: 0.76rem;
    color: var(--cream-text);
    background: rgba(248, 208, 142, 0.2);
    border: 1px solid rgba(248, 208, 142, 0.35);
    border-radius: 999px;
    padding: 0.08rem 0.42rem;
}

.fortune-card p {
    font-size: 0.94rem;
    color: var(--text-muted);
    line-height: 1.6;
}

.fortune-card--score-only {
    padding: 0.55rem 0.75rem;
}

.fortune-card--score-only h3 {
    margin-bottom: 0;
}

.liunian-radar-wrap {
    margin: 0.2rem 0 0.85rem;
    padding: 0.65rem;
    border-radius: 14px;
    background: var(--panel-3);
    border: 1px solid var(--plain-white-soft);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.45rem;
}

/* 终生能力雷达：图右侧展示「开发者团队老师言」 */
.lifetime-radar-wrap--fortune.liunian-radar-wrap {
    align-items: stretch;
}

.lifetime-radar-row {
    display: flex;
    flex-flow: row nowrap;
    align-items: flex-start;
    justify-content: center;
    gap: 0.75rem 1rem;
    width: 100%;
    box-sizing: border-box;
}

/* 图表列优先保留宽度：勿用 min-width:0 + 旁侧 flex-grow，否则 ECharts 容器被压成 0 宽「图没了」 */
.lifetime-radar-chart-slot {
    flex: 1 1 300px;
    min-width: 340px;
    max-width: 460px;
    display: flex;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
}

.lifetime-radar-teacher-note {
    flex: 0 1 240px;
    min-width: 0;
    max-width: min(300px, 42vw);
    margin: 0;
    padding: 0.5rem 0.65rem;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.07);
    border: 1px solid var(--plain-white-soft);
    box-sizing: border-box;
    align-self: flex-start;
}

.lifetime-radar-teacher-note__title {
    margin: 0 0 0.35rem;
    font-size: 0.86rem;
    font-weight: 700;
    color: #5c3d2e;
    line-height: 1.35;
}

.lifetime-radar-teacher-note__body {
    margin: 0;
    font-size: 0.78rem;
    line-height: 1.6;
    color: var(--text-primary);
}

@media (max-width: 720px) {
    .lifetime-radar-wrap--fortune .lifetime-radar-row {
        flex-flow: column wrap;
        align-items: stretch;
    }

    .lifetime-radar-wrap--fortune .lifetime-radar-chart-slot {
        flex: 1 1 auto;
        min-width: 0;
        max-width: 100%;
        width: 100%;
    }

    .lifetime-radar-wrap--fortune .lifetime-radar-chart {
        min-width: 0;
    }

    .lifetime-radar-wrap--fortune .lifetime-radar-teacher-note {
        flex: 0 1 auto;
        max-width: 100%;
        width: 100%;
    }
}

.radar-svg {
    width: 100%;
    max-width: 420px;
    height: auto;
}

.radar-ring {
    fill: none;
    stroke: var(--plain-white-soft);
    stroke-width: 1.3;
}

.radar-axis {
    stroke: var(--plain-white-soft);
    stroke-width: 1.1;
}

.radar-data-fill {
    fill: color-mix(in srgb, var(--accent) 26%, transparent);
}

.radar-data-stroke {
    fill: none;
    stroke: var(--accent);
    stroke-width: 2.8;
}

.radar-label {
    fill: var(--text-muted);
    font-size: 15px;
    text-anchor: middle;
    dominant-baseline: middle;
}

.radar-square-frame {
    fill: none;
    stroke: var(--plain-white-soft);
    stroke-width: 1.9;
    pointer-events: none;
}

.radar-svg--quad {
    display: block;
}

.liunian-grid--quad {
    gap: 0.65rem;
}

.secondary-btn {
    padding: 0.55rem 1.2rem;
    border-radius: var(--btn-radius, 10px);
    border: 1px solid var(--line-strong, rgba(248, 208, 142, 0.35));
    background: var(--accent);
    color: var(--cream-text);
    font-family: inherit;
    font-size: 0.85rem;
    cursor: pointer;
    transition: background 0.2s;
}

.secondary-btn:hover {
    background: var(--accent);
}

/* 保存八字：固定在结果区右下，滚动时保持可见 */
.save-bazi-fab {
    position: fixed;
    right: max(1.1rem, env(safe-area-inset-right, 0px));
    /* 固定叠放在「追问真人老师」上方，滚动时保持可见 */
    bottom: max(7.35rem, calc(env(safe-area-inset-bottom, 0px) + 6.7rem));
    z-index: 73;
    min-width: 8.2rem;
    height: 2.4rem;
    border-radius: 999px;
    box-shadow: 0 10px 22px rgba(236, 199, 131, 0.3);
}

.save-bazi-fab:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 28px rgba(236, 199, 131, 0.36);
}

.save-bazi-fab:active {
    transform: translateY(0);
}

/* 结果区进入 has-result 时会带 transform；这会影响其内部 fixed 按钮定位与可见性 */
.main-inner.has-result #caseDetailArea.result-shell {
    transform: none !important;
}

.site-footer {
    text-align: center;
    margin-top: 2rem;
    font-size: 0.72rem;
    color: var(--text-muted);
}

@media (max-width: 840px) {
    .app {
        flex-direction: column;
    }

    .app-rail {
        position: static;
        top: auto;
        height: auto;
        align-self: auto;
        min-height: 0;
        width: 100%;
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        justify-content: space-between;
        padding: 1rem 1.25rem;
        gap: 1rem;
    }

    .brand {
        flex: 0 1 auto;
        margin: 0;
        padding: 0.25rem 0;
        max-width: min(340px, 92vw);
        gap: 0.45rem;
    }

    .brand-taiji {
        width: 52px;
        height: 52px;
    }

    .brand-mark-cn {
        font-size: 1.05rem;
    }

    .brand-mark-en {
        font-size: 0.58rem;
    }

    .nav {
        flex-direction: row;
        flex-wrap: wrap;
    }

    .saved-box {
        position: static;
        top: auto;
        max-height: none;
        min-height: 0;
        width: 100%;
    }

    .saved-list {
        max-height: 220px;
    }

    .nav-item {
        padding: 0.5rem 0.75rem;
        font-size: 0.82rem;
    }
}

@media (max-width: 991px) {
    .app-rail {
        position: static;
        top: auto;
        height: auto;
        align-self: auto;
    }

    .content-grid {
        flex-direction: column;
        flex-wrap: nowrap;
        gap: 1rem;
    }

    .main-inner.has-result .form-shell {
        width: 100%;
        max-width: none;
        margin-inline: 0;
    }

    .main-inner.view-qimen.has-qimen-result #unifiedPaipanShell {
        width: 100%;
        max-width: none;
        margin-inline: 0;
    }

    .result-shell {
        max-width: none;
        transform: translateY(12px) scale(0.995);
    }

    .main-inner.has-result .result-shell {
        transform: translateY(0) scale(1);
    }

    .main-inner.has-qimen-result #qimenResultShell.result-shell {
        transform: translateY(0) scale(1);
    }

    .main-inner.has-liuren-result #liurenResultShell.result-shell {
        transform: translateY(0) scale(1);
    }

    /* 手机：各术数结果区通栏，不留左右缝 */
    .main-inner.has-result #caseDetailArea.result-shell.result-mode--ziwei,
    .main-inner.view-qimen.has-qimen-result #qimenResultShell.result-shell,
    .main-inner.view-liuren.has-liuren-result #liurenResultShell.result-shell {
        width: 100%;
        max-width: none;
        margin-inline: 0;
    }

    .saved-box {
        position: static;
        top: auto;
        max-height: none;
    }
}

@media (max-width: 520px) {
    .bazi-overview {
        flex-direction: column;
    }

    /* 四柱：与桌面一致四列（参考问真等 App 的一行四字排版），靠间距与字号缩放保持整洁 */
    .bazi-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 0;
        padding: 0.35rem 0.3rem;
        border-radius: 12px;
        border: 1px solid rgba(126, 96, 58, 0.16);
        background: linear-gradient(180deg, rgba(255, 253, 248, 0.98) 0%, rgba(248, 242, 232, 0.94) 100%);
        box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.75);
    }

    .bazi-grid .bazi-item {
        min-width: 0;
        padding: 0.42rem 0.18rem 0.48rem;
        border-radius: 0;
        border: none;
        border-right: 1px solid rgba(126, 96, 58, 0.12);
        background: transparent;
        box-shadow: none;
    }

    .bazi-grid .bazi-item:last-child {
        border-right: none;
    }

    .bazi-grid .bazi-item .label,
    .bazi-grid .bazi-item .bazi-label-top {
        font-size: 0.62rem;
        margin-bottom: 0.2rem;
        letter-spacing: 0.04em;
        color: rgba(90, 74, 52, 0.78);
    }

    .bazi-grid .bazi-item .shishen {
        font-size: 0.58rem;
        margin-bottom: 0.18rem;
        padding: 0.06rem 0.22rem;
        max-width: 100%;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .bazi-grid .bazi-item .pillar {
        font-size: clamp(1.05rem, 4.8vw, 1.55rem);
        letter-spacing: 0.02em;
        line-height: 1.08;
    }

    .bazi-grid .bazi-item .bazi-divider {
        margin: 0.32rem 0;
        opacity: 0.85;
    }

    .bazi-grid .bazi-item .bazi-canggan {
        font-size: 0.58rem;
        line-height: 1.32;
        min-height: 3.25em;
    }

    .bazi-grid .bazi-item .bazi-meta {
        font-size: 0.56rem;
        line-height: 1.32;
    }

    /* 命宫等四宫：与四柱同宽四列 */
    .palace-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 0.28rem;
    }

    .palace-item {
        padding: 0.38rem 0.2rem 0.4rem;
        border-radius: 10px;
    }

    .palace-item span {
        font-size: 0.58rem;
    }

    .palace-item b {
        font-size: clamp(0.82rem, 3.4vw, 0.95rem);
        margin-top: 0.12rem;
    }

    .palace-item em {
        font-size: 0.54rem;
        margin-top: 0.08rem;
    }

    /* 大运流年 KPI：三列一行，压缩高度 */
    .main-fortune-card {
        padding: 0.75rem 0.65rem 0.7rem;
        gap: 0.55rem;
    }

    .main-fortune-card .fortune-dy-kpis {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 0.38rem;
        margin-bottom: 0.5rem;
    }

    .main-fortune-card .fortune-dy-kpi {
        padding: 0.42rem 0.28rem;
        border-radius: 10px;
        text-align: center;
    }

    .main-fortune-card .fortune-dy-kpi-label {
        font-size: 0.6rem;
        margin-bottom: 0.12rem;
        line-height: 1.25;
    }

    .main-fortune-card .fortune-dy-kpi-value {
        font-size: 0.88rem;
    }

    .main-fortune-card .fortune-dy-kpi-note {
        margin-top: -0.12rem;
        font-size: 0.62rem;
        line-height: 1.3;
    }

    .main-fortune-block {
        gap: 0.28rem;
    }

    .main-fortune-block-head {
        margin-bottom: 0.28rem;
    }

    .fortune-liunian-strip,
    .main-fortune-card .fortune-liunian-strip {
        min-height: 0;
    }

    .fortune-liunian-scroll,
    .main-fortune-card .fortune-liunian-scroll {
        padding: 0.05rem 0.1rem 0.25rem;
        margin-bottom: 0;
    }

    /* 大运 / 流年横滑：手机端压缩为单行 8 卡视野，右滑查看更多 */
    .main-fortune-card .fortune-dy-strip,
    .main-fortune-card .fortune-liunian-strip {
        gap: 0.22rem;
        padding: 0.42rem 0.32rem 0.5rem;
    }

    .main-fortune-card .fortune-dy-card {
        width: clamp(42px, calc((100vw - 2.2rem) / 8), 68px);
        min-width: clamp(42px, calc((100vw - 2.2rem) / 8), 68px);
        grid-template-columns: 4px minmax(0, 1fr);
        grid-template-rows: auto;
        border-radius: 9px;
    }

    .main-fortune-card .fortune-dy-card-main {
        padding: 0.3rem 0.2rem;
        align-items: center;
        text-align: center;
        gap: 0.1rem;
    }

    .main-fortune-card .fortune-dy-card-gz {
        font-size: 0.84rem;
        letter-spacing: 0.02em;
        line-height: 1.1;
    }

    .main-fortune-card .fortune-dy-card-age,
    .main-fortune-card .fortune-dy-card-cal,
    .main-fortune-card .fortune-dy-card-ss,
    .main-fortune-card .fortune-dy-card-foot {
        display: none;
    }

    .main-fortune-card .fortune-dy-pill {
        font-size: 0.52rem;
        padding: 0.02rem 0.18rem;
    }

    .fortune-liunian-card {
        width: clamp(42px, calc((100vw - 2.2rem) / 8), 68px);
        min-width: clamp(42px, calc((100vw - 2.2rem) / 8), 68px);
        padding: 0.24rem 0.18rem;
        border-radius: 9px;
    }

    .fortune-liunian-card-y {
        font-size: 0.72rem;
        line-height: 1.1;
    }

    .fortune-liunian-card-gz {
        font-size: 0.74rem;
        line-height: 1.1;
        letter-spacing: 0.02em;
    }

    .main-fortune-card .fortune-liunian-card {
        width: clamp(42px, calc((100vw - 2.2rem) / 8), 68px);
        min-width: clamp(42px, calc((100vw - 2.2rem) / 8), 68px);
        padding: 0.24rem 0.15rem 0.2rem 0.3rem;
        border-radius: 9px;
    }

    .main-fortune-card .fortune-liunian-card-y {
        font-size: 0.72rem;
    }

    .main-fortune-card .fortune-liunian-card-gz {
        font-size: 0.74rem;
    }

    .main-fortune-card .fortune-liunian-card-sx,
    .main-fortune-card .fortune-liunian-card-age {
        display: none;
    }

    .wheel-viewport {
        max-width: 58px;
    }

    .paipan-datetime-picker__card .wheel-viewport {
        max-width: none;
    }

    .pillar-row {
        grid-template-columns: 1fr;
        gap: 0.4rem;
    }

    .pillar-chip {
        justify-self: start;
        margin-left: 2.75rem;
    }

    .liunian-grid {
        grid-template-columns: 1fr;
    }

    .life-visual-row {
        grid-template-columns: 1fr;
    }

    .lifetime-legend {
        grid-template-columns: 1fr 1fr;
    }

    .useful-grid {
        grid-template-columns: 1fr;
    }

    .fortune-panel-overlay {
        padding: 0.75rem;
    }

    .fortune-unlock-overlay {
        padding: 0.75rem;
    }

    .fortune-panel {
        max-height: min(90vh, calc(100vh - 1.5rem));
    }

    .fortune-unlock-modal {
        max-height: min(90vh, calc(100vh - 1.5rem));
    }

    /* 奇门九宫：手机端压缩宫格高度，与八字/紫微卡片节奏一致（无六壬外盘时） */
    .qimen-palace-grid:not(.qimen-ring-stack .qimen-palace-grid) {
        grid-template-rows: repeat(3, minmax(7.2rem, auto));
        border-radius: 10px;
    }

    .qimen-palace-cell {
        min-height: 7.2rem;
        padding: 0.28rem 0.3rem 0.32rem;
        font-size: 0.62rem;
        line-height: 1.18;
    }

    .qimen-grid-composite--outer .qimen-palace-cell,
    .qimen-ring-stack .qimen-palace-cell {
        min-height: 0;
        padding: 0.16rem 0.18rem 0.2rem;
    }
}

@media (max-width: 767px) {
    .main {
        padding: 0.35rem 0.4rem 0.75rem;
    }

    .main-inner {
        width: 100%;
        max-width: none;
    }

    .form-shell,
    .result-shell {
        padding: 1.1rem 0.85rem 1rem;
        border-radius: 16px;
    }

    .fortune-panel,
    .fortune-unlock-modal {
        width: min(1200px, 95%);
    }

    .fortune-panel-overlay,
    .fortune-unlock-overlay {
        padding: 0.75rem;
    }

    .fortune-panel-head {
        padding: 1rem;
    }

    .fortune-panel-body {
        padding: 1rem;
        font-size: 1rem;
    }

    .fortune-panel-title {
        font-size: 20px;
    }

    .fortune-panel-sub {
        font-size: 0.9375rem;
    }

    .fortune-panel .fortune-panel-body .result-heading {
        font-size: 1.125rem;
    }

    .fortune-panel .fortune-panel-body .ai-text,
    .fortune-panel .fortune-panel-body .fortune-card p,
    .fortune-panel .wealth-report-body,
    .fortune-panel .wealth-report-ul {
        font-size: 1rem;
    }

    .fortune-unlock-head h3 {
        font-size: 20px;
    }

    .fortune-unlock-body {
        font-size: 1rem;
        padding: 0.35rem 1rem 0.85rem;
    }

    .fortune-unlock-head {
        padding: 0.85rem 1rem 0.6rem;
    }

    .fortune-unlock-actions {
        padding: 0.85rem 1rem 1.1rem;
    }

    .fortune-unlock-actions .primary-btn,
    .fortune-unlock-actions .secondary-btn {
        font-size: 0.9375rem;
    }
}

@media (max-width: 840px) {
    .save-bazi-fab {
        right: 50%;
        transform: translateX(50%);
        bottom: max(1rem, env(safe-area-inset-bottom, 0px));
        min-width: 7.2rem;
        height: 2.2rem;
        font-size: 0.8rem;
    }

    .save-bazi-fab:hover {
        transform: translateX(50%);
    }
}

/* Mobile button normalization: keep controls compact and app-like */
@media (max-width: 768px) {
    :root {
        --m-btn-maxw: 8.6rem;
        --m-btn-minh: 2.12rem;
        --m-btn-fz: 0.8rem;
        --m-btn-py: 0.38rem;
        --m-btn-px: 0.76rem;
    }

    .secondary-btn,
    .primary-btn:not(.register-lifebook-save-btn):not(.archive-edit-save-btn),
    .fortune-unlock-actions .primary-btn,
    .fortune-unlock-actions .secondary-btn {
        width: auto;
        max-width: var(--m-btn-maxw);
        min-height: var(--m-btn-minh);
        padding: var(--m-btn-py) var(--m-btn-px);
        font-size: var(--m-btn-fz);
        line-height: 1.2;
        border-radius: 999px;
        white-space: nowrap;
    }

    .register-lifebook-actions .primary-btn,
    .archive-edit-actions .primary-btn {
        width: 100%;
        max-width: none;
        min-height: 2.75rem;
        padding: 0.85rem 1.1rem;
        font-size: 0.95rem;
        border-radius: 14px;
        white-space: normal;
    }

    .fortune-unlock-actions {
        gap: 0.55rem;
    }

    .fortune-unlock-actions .primary-btn,
    .fortune-unlock-actions .secondary-btn {
        flex: 0 1 auto;
    }

    #saveBtn.secondary-btn {
        max-width: 7.9rem;
    }

}

@media (max-width: 520px) {
    :root {
        --m-btn-maxw: 8.2rem;
        --m-btn-minh: 2.05rem;
        --m-btn-fz: 0.78rem;
        --m-btn-py: 0.34rem;
        --m-btn-px: 0.68rem;
    }

    .secondary-btn,
    .primary-btn {
        width: auto;
        max-width: var(--m-btn-maxw);
        min-height: var(--m-btn-minh);
        padding: var(--m-btn-py) var(--m-btn-px);
        font-size: var(--m-btn-fz);
        line-height: 1.2;
        border-radius: 999px;
        white-space: nowrap;
    }

    #saveBtn.secondary-btn {
        max-width: 7.4rem;
    }

    .ask-human-teacher-fab {
        min-width: 5.9rem;
        height: 1.95rem;
        padding: 0.2rem 0.55rem;
        font-size: 0.72rem;
        line-height: 1.1;
    }
}

@media (max-width: 390px) {
    :root {
        --m-btn-maxw: 7.4rem;
        --m-btn-minh: 1.95rem;
        --m-btn-fz: 0.74rem;
        --m-btn-py: 0.3rem;
        --m-btn-px: 0.56rem;
    }

    .ask-human-teacher-fab {
        min-width: 5.45rem;
        height: 1.85rem;
        font-size: 0.68rem;
        padding: 0.18rem 0.46rem;
    }
}

/* ==================== AI 问答（会员：每日限次）==================== */
.ai-master-dock {
    position: fixed;
    left: 50%;
    bottom: max(0.9rem, env(safe-area-inset-bottom, 0px));
    transform: translateX(-50%);
    width: min(860px, calc(100vw - 16.5rem));
    z-index: 72;
}

.ai-master-panel {
    display: flex;
    flex-direction: column;
    min-height: 0;
    max-height: min(58vh, 520px);
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
    overflow: visible;
}

.ai-master-panel__head {
    display: none;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.2rem 0.25rem 0.5rem;
    border-bottom: none;
}

.ai-master-new-btn {
    flex-shrink: 0;
    min-width: 6.1rem;
}

.ai-chat-body {
    padding: 1.5rem 2rem 1rem;
}

.ai-chat-quota {
    font-size: 0.9rem;
    margin: 0 0 0.85rem;
    color: rgba(60, 48, 32, 0.82);
}

.ai-chat-messages {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 0.3rem 0.25rem 0.35rem;
    overflow: auto;
    min-height: 130px;
    max-height: min(42vh, 360px);
}

.ai-chat-bubble {
    max-width: 88%;
    padding: 0.85rem 0.95rem;
    border-radius: 16px;
    line-height: 1.7;
    white-space: pre-wrap;
    border: 1px solid rgba(236, 199, 131, 0.22);
}

.ai-chat-bubble--user {
    align-self: flex-end;
    background: rgba(255, 244, 220, 0.85);
    color: rgba(59, 45, 27, 0.98);
    border-color: rgba(248, 208, 142, 0.45);
}

.ai-chat-bubble--ai {
    align-self: flex-start;
    background: rgba(255, 255, 255, 0.6);
    color: rgba(43, 34, 21, 0.9);
}

.ai-chat-input-row {
    flex-shrink: 0;
    display: flex;
    gap: 0.85rem;
    align-items: flex-end;
    padding: 1rem 2rem 1.25rem;
    border-top: 1px solid rgba(236, 199, 131, 0.22);
}

.ai-chat-input-row--dock {
    margin-top: auto;
    padding: 0.45rem 0.5rem;
    border: 1px solid rgba(126, 96, 58, 0.16);
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.94);
    box-shadow: 0 10px 24px rgba(58, 47, 33, 0.1);
    gap: 0.5rem;
    align-items: flex-end;
}

.ai-chat-input {
    flex: 1;
    resize: none;
    border-radius: 10px;
    padding: 0.58rem 0.72rem;
    background: transparent;
    border: none;
    color: var(--text-primary, #2c2823);
    outline: none;
    min-height: 1.9rem;
    max-height: 7.2rem;
    font-size: 0.95rem;
    line-height: 1.4;
}

.ai-chat-input:focus {
    box-shadow: none;
}

.ai-chat-input:disabled {
    opacity: 0.75;
    cursor: not-allowed;
}

.ai-chat-input-row--dock #aiChatSendBtn {
    width: 2.05rem;
    height: 2.05rem;
    min-width: 2.05rem;
    padding: 0;
    border-radius: 50%;
    display: grid;
    place-items: center;
    flex-shrink: 0;
}

.ai-chat-input-row--dock #aiChatSendBtn .primary-btn-icon {
    margin: 0;
    font-size: 0.95rem;
}

.ai-chat-input-row--dock #aiChatSendBtn span:not(.primary-btn-icon) {
    display: none;
}

@media (max-width: 1199px) {
    .main-inner {
        padding-right: 0;
    }
    .ai-master-dock {
        width: min(860px, calc(100vw - 2rem));
    }
    .ai-master-panel {
        max-height: min(56vh, 500px);
        min-height: 0;
    }
    .ai-chat-messages {
        max-height: min(38vh, 300px);
    }
}

@media (max-width: 767px) {
    .ai-master-dock {
        width: calc(100vw - 1rem);
        bottom: max(0.4rem, env(safe-area-inset-bottom, 0px));
    }
    .ai-master-panel__head {
        padding: 0 0.1rem 0.35rem;
    }
}

/* —— 侧栏：产品区 + 主导航 + 我的档案（案例迁入） —— */
.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.rail-product {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    padding: 0 0.15rem 0.35rem;
    border-bottom: 1px solid rgba(126, 96, 58, 0.12);
}

.rail-nav-item--brand {
    justify-content: flex-start;
    gap: 0.4rem;
    font-weight: 700;
    font-size: 0.96rem;
    color: #342a1f;
    padding: 0.32rem 0.4rem 0.28rem;
    border-radius: 12px;
}

.rail-nav-item--brand .rail-brand-btn__ico {
    width: 1.85rem;
    height: 1.85rem;
    display: grid;
    place-items: center;
    border-radius: 10px;
    background: linear-gradient(145deg, rgba(239, 212, 154, 0.95), #e6c37a);
    color: #4a3616;
    font-size: 1.05rem;
    line-height: 1;
}

.rail-nav-item--brand .rail-brand-btn__name {
    letter-spacing: 0.08em;
}

.rail-nav-item.rail-nav-item--tag.rail-nav-item--soon {
    position: relative;
    padding-top: 0.48rem;
}

.rail-nav-badge {
    position: absolute;
    top: -0.15rem;
    left: 2.15rem;
    font-size: 0.55rem;
    color: #fff;
    background: #c94a4a;
    padding: 0.08rem 0.3rem;
    border-radius: 5px;
    font-weight: 700;
    line-height: 1;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12);
}

.rail-product-desc {
    font-size: 0.72rem;
    color: rgba(47, 39, 28, 0.72);
    line-height: 1.35;
}

.rail-new-chat-btn {
    appearance: none;
    width: 100%;
    border: none;
    border-radius: 999px;
    padding: 0.48rem 0.65rem;
    font-size: 0.78rem;
    font-weight: 600;
    cursor: pointer;
    background: linear-gradient(145deg, #efd49a, #e6c37a);
    color: #3d2f18;
    box-shadow: 0 2px 10px rgba(180, 130, 70, 0.28);
}

.rail-new-chat-btn:hover {
    filter: brightness(1.03);
}

.rail-new-chat-slot {
    padding: 0.35rem 0.15rem 0.45rem;
    border-bottom: 1px solid rgba(126, 96, 58, 0.12);
}

.nav-rail-main {
    flex: 0 1 auto;
    overflow-y: auto;
    padding: 0.35rem 0 0.25rem;
    gap: 0.12rem;
}

.rail-nav-group {
    display: flex;
    flex-direction: column;
    gap: 0.08rem;
}

/* 无「命理运势 / 占卜问事」父级时：子项平铺为同级入口 */
.rail-nav-group--flat {
    gap: 0.1rem;
}

.rail-nav-sublist {
    display: flex;
    flex-direction: column;
    gap: 0.05rem;
    padding: 0 0 0.4rem 0.45rem;
    margin: 0 0 0.15rem 0.35rem;
    border-left: 2px solid rgba(126, 96, 58, 0.14);
}

.rail-nav-sublist--radio {
    gap: 0.22rem;
    padding-top: 0.08rem;
}

.rail-nav-item--section {
    font-weight: 600;
}

.rail-nav-radio {
    display: flex;
    align-items: center;
    gap: 0.42rem;
    padding: 0.2rem 0.3rem;
    border-radius: 8px;
    color: rgba(62, 45, 21, 0.9);
    font-size: 0.75rem;
    line-height: 1.25;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}

.rail-nav-radio:hover {
    background: rgba(248, 208, 142, 0.18);
}

.rail-nav-radio input[type='radio'] {
    margin: 0;
    accent-color: #c79d5f;
    width: 0.82rem;
    height: 0.82rem;
    cursor: pointer;
}

.rail-nav-radio input[type='radio']:checked + span {
    font-weight: 700;
    color: #6e4d1f;
}

.rail-nav-item--sub {
    font-size: 0.74rem;
    padding: 0.3rem 0.42rem;
    line-height: 1.25;
}

.rail-nav-item--sub:not(:disabled) {
    font-weight: 500;
}

.rail-nav-item--sub.rail-nav-item--soon:disabled {
    cursor: not-allowed;
    opacity: 0.62;
}

.rail-nav-item.rail-nav-item--soon:disabled {
    cursor: not-allowed;
    opacity: 0.62;
}

.rail-nav-item {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    width: 100%;
    text-align: left;
    padding: 0.42rem 0.45rem;
    border: none;
    border-radius: 10px;
    background: transparent;
    color: var(--text-primary);
    font-size: 0.8rem;
    cursor: pointer;
    transition: background 0.15s ease;
}

a.rail-nav-item--link {
    text-decoration: none;
    box-sizing: border-box;
}

.rail-nav-item:hover:not(:disabled) {
    background: rgba(248, 208, 142, 0.2);
}

.rail-nav-item--active {
    background: rgba(248, 208, 142, 0.35);
    font-weight: 600;
}

.rail-nav-hidden-inputs {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.u-hidden-input {
    position: absolute !important;
    left: -9999px !important;
    width: 1px !important;
    height: 1px !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

.field-label--sub {
    display: block;
    font-size: 0.78rem;
    font-weight: 500;
    margin-bottom: 0.28rem;
    color: rgba(47, 39, 28, 0.72);
}

.unified-paipan-shell .paipan-datetime-picker__toolbar {
    flex-wrap: wrap;
}

.unified-paipan-shell .paipan-datetime-picker__fill-btn {
    flex: 1 1 auto;
    min-width: 5.2rem;
}

.unified-paipan-submit-row {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.65rem;
    margin-top: 0.35rem;
}

.unified-paipan-submit-row .primary-btn--paipan-submit {
    flex: 1 1 auto;
    min-width: 8rem;
}

.unified-paipan-submit-row .unified-paipan-save-btn {
    flex: 0 0 auto;
    min-width: 4.5rem;
    min-height: 2.65rem;
    padding: 0.55rem 1rem;
    font-weight: 600;
}

.unified-paipan-submit-row .unified-paipan-save-btn[hidden] {
    display: none !important;
}

.unified-paipan-submit-row--bazi {
    margin-top: 0.5rem;
}

.case-archive-item-wrap {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 0.4rem;
}

.case-archive-item-wrap .case-archive-item {
    flex: 1;
    min-width: 0;
}

.case-archive-item__edit {
    flex: 0 0 auto;
    align-self: center;
    font-size: 0.72rem;
    padding: 0.28rem 0.48rem;
    white-space: nowrap;
    line-height: 1.2;
}

.case-archive-item__actions {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.35rem;
    flex: 0 0 auto;
    align-self: center;
}

.case-archive-item__delete {
    flex: 0 0 auto;
    align-self: center;
    font-size: 0.72rem;
    padding: 0.28rem 0.48rem;
    white-space: nowrap;
    line-height: 1.2;
}

.case-archive-item__tools {
    flex: 1 1 100%;
    display: flex;
    align-items: stretch;
    gap: 0.32rem;
    margin-top: 0.05rem;
    padding: 0 0.05rem 0.1rem;
}

.case-archive-item__tool-btn {
    flex: 1 1 0;
    min-width: 0;
    min-height: 1.65rem;
    padding: 0.2rem 0.12rem;
    border: 1px solid rgba(126, 96, 58, 0.22);
    border-radius: 8px;
    background: rgba(255, 252, 244, 0.96);
    color: rgba(58, 42, 21, 0.88);
    font-size: 0.68rem;
    font-weight: 650;
    line-height: 1.2;
    text-align: center;
    cursor: pointer;
    font-family: inherit;
    transition: background 0.15s ease, border-color 0.15s ease;
}

.case-archive-item__tool-btn:hover {
    background: rgba(248, 208, 142, 0.28);
    border-color: rgba(196, 154, 88, 0.45);
}

.case-archive-item__tool-btn:active {
    transform: translateY(1px);
}

.case-archive-item-wrap--batch .case-archive-item__tools {
    display: none;
}

.rail-nav-item--muted {
    opacity: 0.55;
    cursor: not-allowed;
}

.rail-nav-item--soon:not(:disabled) {
    opacity: 0.75;
}

.rail-nav-ico {
    width: 1.15rem;
    text-align: center;
    opacity: 0.88;
    flex-shrink: 0;
}

.rail-personal {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    margin-top: 0.35rem;
    padding-top: 0.45rem;
    border-top: 1px solid rgba(126, 96, 58, 0.12);
    /* 勿用 flex:1：侧栏内历史会话区移除后，会整块撑满剩余高度，把「追问真人老师」挤到视口最底 */
    flex-shrink: 0;
}

.rail-section-label {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: rgba(47, 39, 28, 0.55);
    padding: 0 0.35rem;
}

.rail-archive {
    border: none;
    margin: 0;
    padding: 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
    flex: 1;
}

.rail-archive-summary {
    list-style: none;
    cursor: pointer;
    font-size: 0.82rem;
    font-weight: 600;
    padding: 0.35rem 0.45rem;
    border-radius: 10px;
    color: #2f271c;
}

.rail-archive-summary::-webkit-details-marker {
    display: none;
}

.rail-archive[open] .rail-archive-summary {
    background: rgba(248, 208, 142, 0.15);
}

.chat-history-archive .saved-search {
    margin-bottom: 0.35rem;
}

.chat-history-item {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.12rem;
    border: 1px solid rgba(126, 96, 58, 0.14);
    background: rgba(255, 255, 255, 0.72);
    border-radius: 10px;
    padding: 0.45rem 0.5rem;
    text-align: left;
    cursor: pointer;
}

.chat-history-item:hover {
    background: rgba(248, 208, 142, 0.2);
}

.chat-history-item.is-active {
    border-color: rgba(209, 156, 76, 0.6);
    background: rgba(248, 208, 142, 0.3);
}

.chat-history-item__title {
    font-size: 0.75rem;
    color: #3e3325;
    font-weight: 600;
    line-height: 1.3;
}

.chat-history-item__meta {
    font-size: 0.66rem;
    color: rgba(62, 51, 37, 0.7);
}

.saved-box--in-archive {
    margin-top: 0.35rem;
    flex: 1;
    min-height: 4rem;
    max-height: min(38vh, 280px);
}

.rail-app-badges {
    display: flex;
    gap: 0.35rem;
    justify-content: center;
    padding: 0.5rem 0 0;
    flex-shrink: 0;
}

.rail-app-pill {
    font-size: 0.62rem;
    color: rgba(47, 39, 28, 0.45);
    padding: 0.15rem 0.45rem;
    border: 1px solid rgba(126, 96, 58, 0.18);
    border-radius: 999px;
}

/* —— 主区 AI 门户（默认屏） —— */
.main.main--ai-portal-welcome {
    background: #f9f4e8;
}

/* 首页「立即体验」：主区易智落地（侧栏始终保留） */
body.bazi-ai-hero-landing {
    background: #f9f4e8 !important;
}

body.bazi-ai-hero-landing .app {
    background: transparent;
}

body.bazi-ai-hero-landing .app-header {
    background: rgba(249, 244, 232, 0.96);
    border-bottom: 1px solid rgba(126, 96, 58, 0.1);
}

body.bazi-ai-hero-landing .main {
    padding: 1rem 1rem 2rem;
    flex: 1 1 auto;
    align-items: stretch;
}

body.bazi-ai-hero-landing .main-inner.view-ai-hub,
body.bazi-ai-hero-landing .main-inner.view-ai-chat-history,
body.bazi-ai-hero-landing .main-inner.view-paipan {
    max-width: none;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: calc(100vh - 58px);
}

body.bazi-ai-hero-landing #aiChatMessages,
body.bazi-ai-hero-landing #aiChatQuotaLine {
    display: none !important;
}

body.bazi-ai-hero-landing .lang-switch {
    background: transparent;
    border: none;
    box-shadow: none;
    padding: 0;
    gap: 0.2rem;
}

body.bazi-ai-hero-landing .lang-switch__btn {
    background: transparent;
    padding: 0.2rem 0.5rem;
}

body.bazi-ai-hero-landing .ai-hub-portal-card {
    background: transparent;
    border: none;
    box-shadow: none;
    max-width: 680px;
    width: 100%;
    padding: 2.5rem 1rem 3rem;
    min-height: min(560px, calc(100vh - 100px));
    justify-content: center;
}

body.bazi-ai-hero-landing .ai-hub:not(.ai-hub--has-thread) .ai-hub-portal-card {
    min-height: calc(100vh - 120px);
}

.ai-hub-portal-card {
    width: 100%;
    max-width: 560px;
    margin: 0 auto;
    padding: 1.35rem 1.2rem 1.15rem;
    background: rgba(255, 255, 255, 0.94);
    border: 1px solid rgba(126, 96, 58, 0.14);
    border-radius: 20px;
    box-shadow: 0 14px 40px rgba(58, 47, 33, 0.08);
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.ai-hub:not(.ai-hub--has-thread) .ai-hub-portal-card {
    min-height: min(520px, calc(100vh - 168px));
    justify-content: center;
}

.ai-hub-welcome-block .ai-hub__hero {
    margin-bottom: 0.15rem;
}

.ai-hub__avatar--portal {
    width: 3.6rem;
    height: 3.6rem;
    margin-bottom: 0.85rem;
    font-size: 1.65rem;
    line-height: 1;
    background: linear-gradient(145deg, #efd49a, #e6c37a);
    border: none;
    color: #fff;
}

.ai-hub__title--portal {
    font-size: clamp(1.35rem, 3.6vw, 1.65rem);
    margin-bottom: 0.28rem;
    color: #2f2418;
    letter-spacing: 0.02em;
}

.ai-hub__subtitle--portal {
    font-size: clamp(0.95rem, 2.4vw, 1.08rem);
    color: rgba(47, 36, 24, 0.72);
}

.ai-hub-thread-head {
    width: 100%;
}

.ai-hub-thread-head .ai-chat-stream-head {
    padding: 0.15rem 0.1rem 0.35rem;
}

.ai-chat-quota--portal {
    text-align: center;
    font-size: 0.78rem;
    min-height: 1.1rem;
    color: rgba(62, 51, 37, 0.72);
}

.ai-hub__input-row--portal {
    max-width: 100%;
    border-radius: 999px;
    padding: 0.35rem 0.45rem 0.35rem 1.1rem;
    background: #fff;
    box-shadow: 0 6px 28px rgba(58, 47, 33, 0.08);
    border: 1px solid rgba(200, 175, 130, 0.35);
}

.ai-hub__input-row--portal .ai-hub__input {
    min-height: 2.45rem;
    max-height: 7rem;
    resize: none;
    line-height: 1.45;
    padding: 0.45rem 0;
    font-size: 0.98rem;
}

.ai-hub__input-row--portal .ai-hub__input::placeholder {
    color: rgba(90, 78, 62, 0.45);
}

.ai-hub__send .ai-hub__send-plane {
    display: block;
    color: #fff;
}

.ai-hub__pills--portal {
    margin-top: 0.15rem;
}

.ai-hub__pill-ico {
    font-size: 0.92rem;
    margin-right: 0.32rem;
    line-height: 1;
    opacity: 0.92;
}

.ai-hub__pill--tag {
    position: relative;
    padding-top: 0.42rem;
}

.ai-hub__pill--tag .ai-hub__pill-badge {
    position: absolute;
    top: -0.42rem;
    left: 0.2rem;
    margin-left: 0;
    border-radius: 6px;
    font-weight: 700;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12);
}

.ai-hub #aiChatMessages:empty {
    min-height: 8rem;
    border-style: dashed;
    opacity: 0.85;
}

.ai-hub {
    display: none;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    width: 100%;
    max-width: 720px;
    margin: 0 auto;
    padding: 0.55rem 0.5rem 1rem;
    gap: 0.65rem;
}

.main-inner.view-ai-hub:not(.has-result) .ai-hub {
    display: flex;
}

.main-inner.has-result .ai-hub {
    display: none !important;
}

.ai-hub__hero {
    text-align: center;
}

.ai-hub__avatar {
    width: 3.25rem;
    height: 3.25rem;
    margin: 0 auto 0.65rem;
    border-radius: 50%;
    display: grid;
    place-items: center;
    font-size: 1.65rem;
    background: rgba(255, 255, 255, 0.65);
    border: 1px solid rgba(126, 96, 58, 0.15);
    color: #8b7355;
}

.ai-hub__title {
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--text-primary);
    letter-spacing: 0.04em;
    margin-bottom: 0.35rem;
}

.ai-hub__subtitle {
    font-size: 0.95rem;
    color: rgba(47, 39, 28, 0.62);
}

.ai-chat-stream-head {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 0.65rem;
}

.ai-chat-messages--page {
    width: 100%;
    max-height: calc(100vh - 285px);
    min-height: 320px;
    border: 1px solid rgba(126, 96, 58, 0.14);
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.7);
    padding: 0.75rem;
}

.ai-chat-item {
    display: flex;
    flex-direction: column;
    gap: 0.18rem;
}

.ai-chat-item--user {
    align-items: flex-end;
}

.ai-chat-item--ai {
    align-items: flex-start;
}

.ai-chat-item__meta {
    font-size: 0.7rem;
    color: rgba(62, 51, 37, 0.62);
    padding: 0 0.2rem;
}

.ai-chat-bubble--thinking {
    opacity: 0.78;
    font-style: italic;
}

.ai-chat-input-row--page {
    width: 100%;
    position: sticky;
    bottom: 0;
    border: 1px solid rgba(126, 96, 58, 0.16);
    border-radius: 14px;
    padding: 0.45rem 0.5rem;
    background: rgba(255, 255, 255, 0.94);
    box-shadow: 0 8px 18px rgba(58, 47, 33, 0.1);
    border-top: 1px solid rgba(126, 96, 58, 0.16);
}

.ai-chat-input-row--page #aiChatSendBtn {
    width: 2.2rem;
    height: 2.2rem;
    min-width: 2.2rem;
    border-radius: 50%;
    padding: 0;
    display: grid;
    place-items: center;
}

.ai-chat-input-row--page #aiChatSendBtn span:not(.primary-btn-icon) {
    display: none;
}

.rail-user-card {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.45rem 0.2rem 0.35rem;
    border-bottom: 1px solid rgba(126, 96, 58, 0.12);
}

.rail-user-card__avatar {
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    display: grid;
    place-items: center;
    font-size: 0.9rem;
    font-weight: 700;
    color: #fff;
    background: linear-gradient(145deg, #d4a968, #9e6e35);
}

.rail-user-card__meta strong {
    display: block;
    font-size: 0.74rem;
    color: #392d1e;
}

.rail-user-card__meta span {
    display: block;
    font-size: 0.66rem;
    color: rgba(57, 45, 30, 0.7);
}

.rail-bottom-auth {
    margin-top: auto;
    padding-top: 0.5rem;
    border-top: 1px solid rgba(126, 96, 58, 0.12);
}

.auth-bar--rail {
    margin-right: 0;
    justify-content: flex-start;
    margin-bottom: 0.4rem;
}

.lang-switch--rail {
    width: 100%;
}

/* ===== AI聊天页重设计（2026-04） ===== */
.app-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 0.8rem;
    background: rgba(247, 241, 231, 0.94);
    backdrop-filter: blur(8px);
    border-bottom: 1px solid rgba(196, 163, 107, 0.28);
    z-index: 95;
}

.app-header__left,
.app-header__right {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.42rem;
}

.app-header__left {
    flex: 0 0 230px;
    min-width: 230px;
}

.app-header__right {
    flex: 1 1 auto;
    justify-content: flex-end;
    min-width: 0;
}

.app-header__brand {
    display: inline-flex;
    align-items: center;
    gap: 0.52rem;
    text-decoration: none;
    width: 100%;
    min-width: 0;
    white-space: nowrap;
}

.app-header__logo {
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.92);
    width: 34px;
    height: 34px;
}

.app-header__brand-text {
    display: flex;
    flex-direction: column;
    line-height: 1.02;
    min-width: 0;
}

.app-header__brand-text strong {
    color: #3f3324;
    font-family: var(--font-brand-calligraphy, "Ma Shan Zheng", "KaiTi", serif);
    font-size: 0.94rem;
    font-weight: 400;
    letter-spacing: 0.06em;
}

.app-header__brand-text small {
    color: rgba(63, 51, 36, 0.62);
    font-size: 0.52rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.app-header .auth-bar {
    margin-right: 0;
    gap: 0.32rem;
    flex-wrap: nowrap;
    min-width: 0;
}

.app-header .auth-bar__hello {
    font-size: 0.68rem;
    max-width: 10.8rem;
}

.app-header .auth-bar__btn {
    padding: 0.24rem 0.58rem;
    font-size: 0.72rem;
    line-height: 1.2;
    min-width: 3rem;
    white-space: nowrap;
}

.app-header .lang-switch {
    border-radius: 999px;
    padding: 0.12rem;
    background: rgba(255, 255, 255, 0.85);
}

.app-header .lang-switch__btn {
    font-size: 0.66rem;
    padding: 0.22rem 0.5rem;
    border-radius: 999px;
}

.app-header__icon-btn {
    display: none;
    width: 34px;
    height: 34px;
    border-radius: 8px;
    border: 1px solid rgba(141, 112, 72, 0.26);
    color: #5b4731;
    background: rgba(255, 255, 255, 0.76);
}

/* 顶栏预留曾写死 padding-top:56px，但当前 shipped 页面无 .app-header，会导致整页下移、左侧栏无法从视口顶铺满 */
.app {
    padding-top: 0;
}

.app-rail {
    width: 260px;
    top: 0;
    height: 100vh;
    min-height: 100vh;
    max-height: 100vh;
    box-sizing: border-box;
    background: linear-gradient(180deg, rgba(244, 236, 223, 0.96), rgba(237, 228, 211, 0.92));
    border-right: 1px solid rgba(196, 163, 107, 0.24);
    color: #473a2a;
}

.rail-product {
    border-bottom-color: rgba(218, 175, 106, 0.16);
}

.rail-product-desc,
.rail-section-label,
.rail-nav-item,
.rail-archive-summary,
.chat-history-item__meta {
    color: #5e4b34;
}

.rail-nav-item:hover:not(:disabled),
.rail-archive[open] .rail-archive-summary,
.chat-history-item:hover {
    background: rgba(214, 183, 128, 0.28);
}

.rail-nav-item--active,
.chat-history-item.is-active {
    background: rgba(226, 199, 150, 0.5);
    color: #3e311f;
}

.chat-history-item {
    background: rgba(255, 255, 255, 0.62);
    border-color: rgba(196, 163, 107, 0.3);
}

.chat-history-item__title {
    color: #4a3b28;
}

.main {
    padding-top: 1.1rem;
}

.ai-hub.ai-hub--chat-active {
    width: min(980px, 100%);
    max-width: none;
    gap: 0.7rem;
    padding: 0.45rem 0.5rem calc(0.85rem + env(safe-area-inset-bottom, 0px));
}

.ai-hub.ai-hub--chat-active .ai-hub-portal-card {
    max-width: min(920px, 100%);
    min-height: 0;
    justify-content: flex-start;
}

.ai-hub.ai-hub--has-thread .ai-chat-messages--page {
    min-height: min(360px, 42vh);
}

.ai-chat-stream-head {
    padding: 0.45rem 0.2rem;
}

.ai-chat-messages--page {
    max-height: calc(100vh - 260px);
    min-height: 360px;
    background: rgba(255, 252, 246, 0.82);
    border-color: rgba(196, 163, 107, 0.28);
}

.ai-chat-item__meta {
    font-size: 0.68rem;
    color: rgba(99, 78, 50, 0.68);
}

.ai-chat-bubble--user {
    background: linear-gradient(145deg, #f1d298, #e2b96f);
    color: #4b3314;
    border-color: rgba(184, 138, 63, 0.48);
}

.ai-chat-bubble--ai {
    background: rgba(255, 255, 255, 0.88);
    color: #3b2d1f;
    border-color: rgba(193, 165, 117, 0.3);
}

.ai-chat-input-row--page {
    margin-top: 0.2rem;
    background: rgba(255, 252, 247, 0.95);
    border-color: rgba(196, 163, 107, 0.32);
    box-shadow: 0 8px 18px rgba(113, 88, 50, 0.1);
}

@media (max-width: 767px) {
    .app-header__icon-btn {
        display: inline-grid;
        place-items: center;
    }
    .app-header .lang-switch {
        display: none;
    }
    body:not(:has(.hd-mobile-bottom-nav)) .app-rail {
        position: fixed;
        top: 0;
        left: 0;
        bottom: 0;
        height: auto;
        min-height: 0;
        max-height: none;
        transform: translateX(-100%);
        transition: transform 0.2s ease;
        z-index: 96;
    }
    body:not(:has(.hd-mobile-bottom-nav)).sidebar-open .app-rail {
        transform: translateX(0);
    }
    .main {
        padding: 0.7rem 0.65rem 1.5rem;
    }
    .ai-chat-messages--page {
        min-height: 320px;
        max-height: calc(100vh - 250px);
    }
}

.ai-hub__form {
    width: 100%;
}

.case-archive-view {
    width: 100%;
    max-width: min(900px, 100%);
    margin: 0 auto;
    background: rgba(255, 255, 255, 0.65);
    border: 1px solid rgba(126, 96, 58, 0.18);
    border-radius: 16px;
    padding: 1rem;
    box-shadow: 0 8px 24px rgba(58, 47, 33, 0.08);
}

.case-archive-view[hidden] {
    display: none !important;
}

.chat-history-page-view {
    width: 100%;
    max-width: min(900px, 100%);
    margin: 0 auto;
    background: rgba(255, 255, 255, 0.65);
    border: 1px solid rgba(126, 96, 58, 0.18);
    border-radius: 16px;
    padding: 1rem;
    box-shadow: 0 8px 24px rgba(58, 47, 33, 0.08);
}

.chat-history-page-view[hidden] {
    display: none !important;
}

.chat-history-page-view__head {
    margin-bottom: 0.65rem;
}

.chat-history-page-view__title {
    font-size: 1.08rem;
    color: #3b2d1b;
    margin-bottom: 0.25rem;
}

.chat-history-page-view__sub {
    font-size: 0.8rem;
    color: rgba(60, 48, 32, 0.74);
}

.chat-history-page-view__list {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    overflow: visible;
    max-height: none;
    padding-right: 0;
}

.case-archive-view__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.6rem;
    margin-bottom: 0.65rem;
}

.case-archive-add-btn {
    flex-shrink: 0;
    align-self: flex-start;
    height: 1.85rem;
    border-radius: 999px;
    border: 1px solid rgba(200, 165, 110, 0.55);
    background: linear-gradient(165deg, #fffef9 0%, #faf4e6 48%, #f5ecd8 100%);
    color: #4a361f;
    padding: 0 0.72rem;
    font-size: 0.74rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    cursor: pointer;
    white-space: nowrap;
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.85) inset,
        0 2px 10px rgba(200, 160, 90, 0.22),
        0 0 0 1px rgba(255, 248, 230, 0.65);
    transition:
        background 0.18s ease,
        border-color 0.18s ease,
        box-shadow 0.18s ease,
        color 0.18s ease;
}

.case-archive-add-btn:hover {
    background: linear-gradient(165deg, #fffffc 0%, #fdf6e8 50%, #f8eed8 100%);
    border-color: rgba(200, 150, 75, 0.72);
    color: #3d2a14;
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.92) inset,
        0 3px 14px rgba(200, 150, 80, 0.28),
        0 0 0 1px rgba(255, 252, 238, 0.9);
}

.case-archive-add-btn:focus-visible {
    outline: 2px solid rgba(200, 160, 100, 0.55);
    outline-offset: 2px;
}

.case-archive-view__title {
    font-size: 1.08rem;
    color: #3b2d1b;
    margin-bottom: 0.25rem;
}

.case-archive-view__sub {
    font-size: 0.8rem;
    color: rgba(60, 48, 32, 0.74);
}

.case-archive-view__search {
    display: flex;
    gap: 0.4rem;
    margin-bottom: 0.55rem;
}

.case-archive-view__batch-bar {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    margin-bottom: 0.65rem;
}

.case-archive-view__batch-bar-main,
.case-archive-view__batch-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.38rem 0.45rem;
}

.case-archive-batch-btn {
    flex-shrink: 0;
    height: 1.85rem;
    border-radius: 9px;
    border: 1px solid rgba(200, 165, 110, 0.45);
    background: rgba(255, 254, 249, 0.96);
    color: #4a361f;
    padding: 0 0.68rem;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    cursor: pointer;
    font-family: inherit;
    line-height: 1.2;
}

.case-archive-batch-btn:hover:not(:disabled) {
    background: rgba(248, 208, 142, 0.18);
    border-color: rgba(209, 156, 76, 0.42);
}

.case-archive-batch-btn:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

.case-archive-batch-btn--danger {
    border-color: rgba(190, 72, 98, 0.35);
    color: #7a3040;
    background: rgba(255, 248, 248, 0.96);
}

.case-archive-batch-btn--danger:hover:not(:disabled) {
    background: rgba(255, 232, 236, 0.95);
    border-color: rgba(190, 72, 98, 0.48);
}

.case-archive-batch-select-all {
    display: inline-flex;
    align-items: center;
    gap: 0.28rem;
    font-size: 0.74rem;
    color: #4a361f;
    cursor: pointer;
    user-select: none;
}

.case-archive-item-wrap--batch {
    align-items: stretch;
}

.case-archive-item__check {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    padding-left: 0.12rem;
    cursor: pointer;
}

.case-archive-item__checkbox {
    width: 1rem;
    height: 1rem;
    margin: 0;
    accent-color: #c9a06a;
    cursor: pointer;
}

.case-archive-item-wrap--batch .case-archive-item {
    cursor: pointer;
}

.case-archive-view__search .saved-search-input {
    flex: 1;
}

.case-archive-view__list {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    max-height: min(64vh, 560px);
    overflow: auto;
    padding-right: 0.1rem;
}

.case-archive-item {
    border: 1px solid rgba(126, 96, 58, 0.16);
    background: rgba(255, 255, 255, 0.86);
    border-radius: 12px;
    padding: 0.6rem 0.72rem;
    text-align: left;
    display: flex;
    flex-direction: column;
    gap: 0.22rem;
    cursor: pointer;
}

.case-archive-item__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.55rem;
}

.case-archive-item:hover {
    background: rgba(248, 208, 142, 0.24);
}

.case-archive-item--self {
    border-color: rgba(228, 176, 82, 0.78);
    box-shadow:
        inset 0 0 0 1px rgba(255, 236, 182, 0.88),
        0 0 0 2px rgba(244, 206, 122, 0.32),
        0 8px 18px rgba(215, 162, 60, 0.16);
    background: linear-gradient(165deg, rgba(255, 253, 246, 0.96), rgba(255, 244, 215, 0.9));
}

.case-archive-item__self-tag {
    flex: 0 0 auto;
    min-width: 1.75rem;
    height: 1.75rem;
    padding: 0 0.5rem;
    border-radius: 0.55rem;
    border: 1px solid rgba(212, 160, 72, 0.78);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.85rem;
    font-weight: 700;
    color: #6a4616;
    background: linear-gradient(180deg, rgba(255, 251, 238, 0.98), rgba(250, 224, 158, 0.92));
    box-shadow: 0 3px 10px rgba(215, 162, 60, 0.22);
}

.case-archive-item__name {
    font-size: 0.86rem;
    color: #3b2d1b;
    font-weight: 600;
}

.case-archive-item__meta {
    font-size: 0.73rem;
    color: rgba(62, 51, 37, 0.75);
}

.case-archive-item__bazi {
    font-size: 0.76rem;
    color: rgba(62, 51, 37, 0.86);
}

.ai-hub__input-row {
    display: flex;
    align-items: stretch;
    gap: 0.5rem;
    background: #fff;
    border-radius: 16px;
    padding: 0.4rem 0.45rem 0.4rem 0.85rem;
    box-shadow: 0 4px 22px rgba(62, 48, 32, 0.1);
    border: 1px solid rgba(126, 96, 58, 0.12);
}

.ai-hub__input {
    flex: 1;
    border: none;
    background: transparent;
    font-size: 0.95rem;
    min-width: 0;
    outline: none;
    color: var(--text-primary);
}

.ai-hub__send {
    width: 2.65rem;
    height: 2.65rem;
    border-radius: 50%;
    border: none;
    flex-shrink: 0;
    background: linear-gradient(145deg, #efd49a, #e6c37a);
    color: #fff;
    font-size: 1.05rem;
    cursor: pointer;
    display: grid;
    place-items: center;
}

.ai-hub__pills {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    justify-content: center;
}

.ai-hub__pill {
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(126, 96, 58, 0.2);
    background: rgba(255, 255, 255, 0.75);
    border-radius: 999px;
    padding: 0.38rem 0.75rem;
    font-size: 0.78rem;
    color: #5c4f42;
    cursor: pointer;
}

.ai-hub__pill--ghost {
    background: transparent;
    border-style: dashed;
    opacity: 0.85;
}

.ai-hub__pill--tag {
    position: relative;
    padding-right: 0.45rem;
}

.ai-hub__pill-badge {
    margin-left: 0.25rem;
    font-size: 0.58rem;
    color: #fff;
    background: #c94a4a;
    padding: 0.06rem 0.28rem;
    border-radius: 4px;
    vertical-align: middle;
}

.ai-hub__jieqi {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.45rem;
    justify-content: center;
    padding: 0.65rem 0.5rem;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.45);
    border: 1px solid rgba(126, 96, 58, 0.1);
}

.ai-hub__jieqi span {
    font-size: 0.68rem;
    color: rgba(68, 54, 35, 0.75);
}

/* 紫微斗数排盘 — 参考「居中白卡 + 四化条 + 方盘」布局 */
#caseDetailArea.result-mode--ziwei #resultHeadingPillars {
    display: none;
}
.main-inner.has-result #caseDetailArea.result-shell.result-mode--ziwei {
    max-width: min(64rem, 100%);
    margin-left: auto;
    margin-right: auto;
    width: 100%;
}
#caseDetailArea.result-mode--ziwei #baziGrid {
    display: flex;
    justify-content: center;
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.ziwei-paipan {
    width: 100%;
    max-width: min(58rem, 100%);
    margin: 0 auto;
    padding: 0 0.25rem;
}
.ziwei-paipan-card {
    background: var(--bg-card);
    border: 1px solid var(--bg-card-border);
    border-radius: 20px;
    padding: 1.1rem 1.15rem 1.15rem;
    box-shadow:
        0 14px 40px color-mix(in srgb, var(--text-primary) 6%, transparent),
        0 2px 12px color-mix(in srgb, var(--tone-gold) 18%, transparent),
        inset 0 1px 0 color-mix(in srgb, #fff 55%, transparent);
}
.ziwei-paipan-card__hero {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.65rem 1rem;
    margin-bottom: 0.75rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--line-soft);
}
.ziwei-paipan-card__hero--tabs-only {
    justify-content: flex-end;
    margin-bottom: 0.55rem;
    padding-bottom: 0.55rem;
}
.ziwei-paipan-card__heroMain {
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
    min-width: 0;
    flex: 1 1 12rem;
}
.ziwei-paipan-card__accent {
    width: 4px;
    align-self: stretch;
    min-height: 2.6rem;
    border-radius: 4px;
    background: linear-gradient(180deg, var(--tone-gold-deep), var(--tone-gold));
    flex-shrink: 0;
}
.ziwei-paipan-card__titleBlock {
    min-width: 0;
}
.ziwei-paipan-card__title {
    font-family: var(--font-brand);
    font-size: 1.28rem;
    font-weight: 800;
    margin: 0 0 0.28rem;
    color: color-mix(in srgb, var(--text-primary) 88%, var(--tone-gold-deep) 12%);
    letter-spacing: 0.04em;
}
.ziwei-paipan-card__dates {
    margin: 0;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--text-muted);
    line-height: 1.45;
}
.ziwei-paipan-card__sep {
    margin: 0 0.35rem;
    opacity: 0.55;
}
.ziwei-tabbar {
    display: flex;
    gap: 0.35rem;
    flex-wrap: wrap;
}
.ziwei-paipan-card__heroActions {
    display: flex;
    align-items: center;
    gap: 0.45rem 0.55rem;
    flex-wrap: wrap;
    justify-content: flex-end;
}
.ziwei-tabbar--hero {
    flex-shrink: 0;
    align-self: center;
}
.ziwei-sync-bazi-btn {
    font-family: inherit;
    font-size: 0.76rem;
    font-weight: 800;
    padding: 0.34rem 0.72rem;
    border-radius: 999px;
    border: 1px solid color-mix(in srgb, var(--tone-gold-deep) 28%, var(--bg-card-border) 72%);
    background: linear-gradient(165deg, color-mix(in srgb, var(--tone-gold) 30%, var(--bg-card) 70%), var(--bg-card));
    color: color-mix(in srgb, var(--text-primary) 78%, var(--tone-gold-deep) 22%);
    cursor: pointer;
    box-shadow: 0 2px 8px color-mix(in srgb, var(--text-primary) 8%, transparent);
    transition:
        transform 0.15s ease,
        border-color 0.15s ease,
        background 0.15s ease;
}
.ziwei-sync-bazi-btn:hover {
    transform: translateY(-1px);
    border-color: color-mix(in srgb, var(--accent) 48%, var(--tone-gold-deep) 52%);
    background: linear-gradient(165deg, color-mix(in srgb, var(--tone-gold) 45%, var(--bg-card) 55%), var(--bg-card));
}
.ziwei-tab {
    font-family: inherit;
    font-size: 0.78rem;
    font-weight: 700;
    padding: 0.32rem 0.65rem;
    border-radius: 999px;
    border: 1px solid color-mix(in srgb, var(--text-primary) 14%, var(--bg-card-border) 86%);
    background: color-mix(in srgb, var(--bg-card) 88%, var(--tone-gold) 12%);
    color: var(--text-primary);
    cursor: pointer;
    transition:
        background 0.15s ease,
        border-color 0.15s ease,
        color 0.15s ease;
}
.ziwei-tab:hover {
    border-color: color-mix(in srgb, var(--accent) 55%, var(--text-primary) 20%);
    background: var(--bg-card);
}
.ziwei-tab--active {
    border-color: color-mix(in srgb, var(--accent-hover) 50%, #c06080 50%);
    background: linear-gradient(
        165deg,
        color-mix(in srgb, var(--accent-hover) 35%, var(--bg-card) 65%),
        color-mix(in srgb, var(--tone-gold) 22%, var(--bg-card) 78%)
    );
    color: color-mix(in srgb, var(--text-primary) 70%, #6b1f3d 30%);
    box-shadow: 0 2px 10px color-mix(in srgb, var(--text-primary) 8%, transparent);
}
.ziwei-paipan[data-zw-mode='sanhe'] .ziwei-tab[data-zw-set-mode='sanhe'],
.ziwei-paipan[data-zw-mode='sihua'] .ziwei-tab[data-zw-set-mode='sihua'] {
    border-width: 2px;
    transform: translateY(-1px);
}

/* 生年四化横条（图二色块） */
.ziwei-sihua-ribbon {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.4rem 0.5rem;
    margin: 0 0 0.85rem;
}
.ziwei-sihua-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.28rem;
    padding: 0.28rem 0.65rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 800;
    border: 1px solid transparent;
    box-shadow: 0 1px 3px color-mix(in srgb, var(--text-primary) 6%, transparent);
}
.ziwei-sihua-chip__hua {
    opacity: 0.92;
}
.ziwei-sihua-chip__star {
    font-weight: 900;
    letter-spacing: 0.02em;
}
.ziwei-sihua-chip--lu {
    background: linear-gradient(180deg, #ebfff2, #c9f5dc);
    border-color: rgba(40, 140, 70, 0.42);
    color: #0d6b2e;
}
.ziwei-sihua-chip--quan {
    background: linear-gradient(180deg, #f3eaff, #dfccff);
    border-color: rgba(120, 70, 160, 0.4);
    color: #4a1a6e;
}
.ziwei-sihua-chip--ke {
    background: linear-gradient(180deg, #dff8ff, #7ad4f0);
    border-color: rgba(0, 130, 170, 0.65);
    color: #004e68;
    box-shadow: 0 0 0 1px rgba(0, 170, 210, 0.35), 0 2px 6px rgba(0, 140, 180, 0.22);
}
.ziwei-sihua-chip--ji {
    background: linear-gradient(180deg, #fff0f2, #ffd7dd);
    border-color: rgba(200, 50, 70, 0.45);
    color: #9a1020;
}

/* 四化盘：星旁禄权科忌角标放大加粗 */
.ziwei-paipan[data-zw-mode='sihua'] .zw-sihua-mark {
    font-size: 0.78rem;
    padding: 0.1rem 0.28rem;
    border-radius: 4px;
    border-width: 1.5px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);
    transform: none;
}
.ziwei-paipan[data-zw-mode='sihua'] .zw-sihua-mark--ke {
    font-size: 0.84rem;
    padding: 0.12rem 0.32rem;
    letter-spacing: 0.04em;
    box-shadow:
        0 0 0 2px rgba(0, 180, 220, 0.45),
        0 2px 6px rgba(0, 140, 180, 0.28);
}
.zw-sihua-mark {
    display: none;
}
.ziwei-paipan[data-zw-mode='sihua'] .zw-sihua-mark {
    display: inline-block;
}
.ziwei-paipan[data-zw-mode='sanhe'] .ziwei-fei-svg,
.ziwei-paipan[data-zw-mode='sihua'] .ziwei-fei-svg {
    opacity: 0.32;
}
.ziwei-square-wrap {
    position: relative;
    width: 100%;
    max-width: min(52rem, 100%);
    margin: 0 auto;
}
.ziwei-fei-svg {
    position: absolute;
    inset: 0;
    z-index: 2;
    width: 100%;
    height: 100%;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.2s ease;
}
.ziwei-square-board {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-template-rows: repeat(4, minmax(4.85rem, auto));
    gap: 6px;
    padding: 8px;
    border-radius: 14px;
    background: #f7f1e5;
    box-shadow: inset 0 0 0 1px rgba(100, 82, 58, 0.1);
}
.ziwei-paipan[data-zw-mode='sanhe'] .ziwei-square-board {
    background: linear-gradient(180deg, #f7f1e5, #f3ead8);
    box-shadow:
        inset 0 0 0 2px rgba(177, 142, 83, 0.3),
        0 3px 12px rgba(122, 96, 52, 0.08);
}
.ziwei-paipan[data-zw-mode='sihua'] .ziwei-square-board {
    background: linear-gradient(180deg, #f3f7ff, #eaf1ff);
    box-shadow:
        inset 0 0 0 2px rgba(77, 121, 196, 0.28),
        0 3px 12px rgba(66, 98, 156, 0.1);
}
body.theme-ink .ziwei-square-board {
    background: color-mix(in srgb, var(--panel-2) 94%, var(--gold) 6%);
    box-shadow: inset 0 0 0 1px var(--line-soft);
}

/* 十二宫：图二式白格 + 上宫名地支 + 中竖主星 + 侧辅曜 + 下大限干支 */
.zw-palace.zw-palace--classic {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 5.1rem;
    padding: 0.34rem 0.38rem 0.28rem;
    border-radius: 10px;
    background: #fff;
    border: 1px solid rgba(58, 47, 33, 0.08);
    box-shadow: 0 1px 3px rgba(58, 47, 33, 0.06);
    overflow: hidden;
}
.zw-palace--classic.zw-palace--ming {
    background: linear-gradient(180deg, #fffef6 0%, #fff4d4 100%);
    border-color: rgba(200, 150, 70, 0.42);
    box-shadow:
        0 1px 4px rgba(200, 140, 60, 0.12),
        inset 0 0 0 1px rgba(255, 220, 160, 0.35);
}
.zw-palace--classic.zw-palace--shen {
    border-color: color-mix(in srgb, var(--accent) 42%, rgba(58, 47, 33, 0.08) 58%);
    box-shadow:
        0 0 0 2px color-mix(in srgb, var(--accent) 32%, transparent),
        0 1px 3px rgba(58, 47, 33, 0.06);
}
.zw-palace--classic.zw-palace--focus {
    border-color: #e3a232;
    background: linear-gradient(180deg, #fffdf6 0%, #fff6e6 100%);
    box-shadow:
        0 0 0 2px rgba(227, 162, 50, 0.42),
        0 0 0 5px rgba(227, 162, 50, 0.18),
        0 6px 14px rgba(185, 122, 22, 0.24);
}
.zw-palace--classic.zw-palace--sanfang {
    border-color: #e3a232;
    background: linear-gradient(180deg, #fffef9 0%, #fff9ed 100%);
    box-shadow:
        0 0 0 2px rgba(227, 162, 50, 0.24),
        0 0 0 4px rgba(227, 162, 50, 0.1),
        0 3px 9px rgba(185, 122, 22, 0.16);
}
.zw-palace--classic.zw-palace--duigong {
    border-color: #e3a232;
    background: linear-gradient(180deg, #fffefb 0%, #fffaf0 100%);
    box-shadow:
        0 0 0 2px rgba(227, 162, 50, 0.24),
        0 0 0 4px rgba(227, 162, 50, 0.1),
        0 3px 9px rgba(185, 122, 22, 0.16);
}
body.theme-ink .zw-palace.zw-palace--classic {
    background: var(--bg-card);
    border-color: var(--bg-card-border);
}
body.theme-ink .zw-palace--classic.zw-palace--focus {
    border-color: color-mix(in srgb, #e3a232 78%, var(--text-primary) 22%);
    background: linear-gradient(
        180deg,
        color-mix(in srgb, var(--bg-card) 82%, #5b441f 18%),
        color-mix(in srgb, var(--bg-card) 70%, #7a5a24 30%)
    );
}
body.theme-ink .zw-palace--classic.zw-palace--sanfang {
    border-color: color-mix(in srgb, #e3a232 70%, var(--text-primary) 30%);
    background: linear-gradient(
        180deg,
        color-mix(in srgb, var(--bg-card) 86%, #4a3a1e 14%),
        color-mix(in srgb, var(--bg-card) 78%, #5f4821 22%)
    );
}
body.theme-ink .zw-palace--classic.zw-palace--duigong {
    border-color: color-mix(in srgb, #e3a232 70%, var(--text-primary) 30%);
    background: linear-gradient(
        180deg,
        color-mix(in srgb, var(--bg-card) 86%, #4a3a1e 14%),
        color-mix(in srgb, var(--bg-card) 78%, #5f4821 22%)
    );
}
body.theme-ink .zw-palace--classic .zw-palace__pname,
body.theme-ink .zw-palace--classic .zw-palace__branch,
body.theme-ink .zw-palace--classic .zw-palace__gzfull {
    color: var(--text-primary);
}
body.theme-ink .zw-palace--classic .zw-palace__minorCol {
    color: color-mix(in srgb, #9ec8f0 45%, var(--text-primary) 55%);
}
.zw-palace--classic .zw-palace__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.25rem;
    margin-bottom: 0.18rem;
    padding-bottom: 0.14rem;
    border-bottom: 1px solid rgba(58, 47, 33, 0.08);
    position: relative;
    min-height: 1.48rem;
    padding-right: 1.45rem;
}
.zw-palace__ming-tag {
    font-size: 0.55rem;
    font-weight: 900;
    padding: 0.06rem 0.24rem;
    border-radius: 5px;
    background: linear-gradient(180deg, #ffb24a, #f09020);
    color: #fff;
    border: 1px solid rgba(180, 90, 20, 0.45);
    line-height: 1.2;
}
.zw-palace--classic .zw-palace__ribbons {
    position: absolute;
    top: -0.22rem;
    right: 0.04rem;
    z-index: 2;
    display: flex;
    gap: 0.12rem;
    pointer-events: none;
}
.zw-ribbon {
    font-size: 0.52rem;
    font-weight: 800;
    padding: 0.04rem 0.22rem;
    border-radius: 4px;
    line-height: 1.2;
}
.zw-ribbon--shen {
    color: color-mix(in srgb, var(--text-primary) 55%, #7a3010 45%);
    background: linear-gradient(180deg, color-mix(in srgb, var(--accent-hover) 55%, var(--bg-card) 45%), var(--accent));
    border: 1px solid color-mix(in srgb, var(--tone-gold-deep) 45%, var(--text-primary) 15%);
}
.zw-palace__mode-meta,
.zw-palace__sihua-limit {
    display: none;
    font-size: 0.56rem;
    line-height: 1.25;
    margin-top: 0.06rem;
    padding: 0.08rem 0.16rem;
    border-radius: 5px;
    border: 1px solid transparent;
}
/* 与下方流年/小限区同宽对齐：占满宫格内容宽、左右内边距一致 */
.zw-palace--classic .zw-palace__mode-meta,
.zw-palace--classic .zw-palace__sihua-limit {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    margin-left: 0;
    margin-right: 0;
    padding: 0.07rem 0.1rem;
}
.ziwei-paipan[data-zw-mode='sanhe'] .zw-palace__mode-meta {
    display: block;
    color: #6f4522;
    background: rgba(247, 228, 191, 0.82);
    border-color: rgba(177, 142, 83, 0.35);
    font-weight: 700;
}
.ziwei-paipan[data-zw-mode='sihua'] .zw-palace__sihua-limit {
    display: block;
    color: #1b4f92;
    background: rgba(217, 231, 255, 0.88);
    border-color: rgba(77, 121, 196, 0.35);
    font-weight: 700;
}
.ziwei-paipan[data-zw-mode='sihua'] .zw-palace__sihua {
    display: block;
}
.ziwei-paipan:not([data-zw-mode='sihua']) .zw-palace__sihua {
    display: none;
}
.zw-line-sf4z {
    stroke: #b1864d;
    stroke-width: 0.52;
    stroke-dasharray: 2.6 1.8;
}
.zw-palace--miao {
    box-shadow: inset 0 0 0 2px #caa33a, 0 1px 3px rgba(58, 47, 33, 0.06);
}
.zw-palace--wang {
    box-shadow: inset 0 0 0 2px #bfc7d1, 0 1px 3px rgba(58, 47, 33, 0.06);
}
.zw-palace--de {
    box-shadow: inset 0 0 0 2px #6ea8d9, 0 1px 3px rgba(58, 47, 33, 0.06);
}
.zw-palace--li {
    box-shadow: inset 0 0 0 2px #78b67a, 0 1px 3px rgba(58, 47, 33, 0.06);
}
.zw-palace--ping {
    box-shadow: inset 0 0 0 2px #d2c7b6, 0 1px 3px rgba(58, 47, 33, 0.06);
}
.zw-palace--bu {
    box-shadow: inset 0 0 0 2px #a7a7a7, 0 1px 3px rgba(58, 47, 33, 0.06);
}
.zw-palace--xian {
    box-shadow: inset 0 0 0 2px #8f8f8f, 0 1px 3px rgba(58, 47, 33, 0.06);
}
.zw-palace--classic .zw-palace__body {
    flex: 1;
    min-height: 0;
    display: grid;
    grid-template-columns: minmax(0, 0.95fr) minmax(2.4rem, auto) minmax(0, 1.05fr);
    gap: 0.2rem 0.4rem;
    align-items: start;
    padding: 0.12rem 0 0;
    min-height: 5.4rem;
}
/* 流年 / 小限虚岁（与常见三合盘宫格一致，立春流年、自然虚岁） */
.zw-palace--classic .zw-palace__ages {
    flex-shrink: 0;
    text-align: right;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    padding: 0.08rem 0.1rem 0.06rem;
    margin-top: 0.04rem;
    border-top: 1px dashed rgba(58, 47, 33, 0.1);
    font-size: 0.58rem;
    line-height: 1.35;
    color: #2a6b3e;
}
.zw-palace__ages-line {
    display: grid;
    grid-template-columns: 2.15rem minmax(0, 1fr);
    column-gap: 0.28rem;
    align-items: baseline;
    width: 100%;
    box-sizing: border-box;
}
.zw-palace__ages-lab {
    flex: unset;
    font-weight: 700;
    opacity: 0.92;
    text-align: left;
    white-space: nowrap;
}
.zw-palace__ages-val {
    flex: unset;
    min-width: 0;
    text-align: right;
    letter-spacing: 0.02em;
    word-break: break-all;
}
body.theme-ink .zw-palace--classic .zw-palace__ages {
    color: color-mix(in srgb, var(--text-secondary) 35%, #3d8f5a 65%);
    border-top-color: var(--line-soft);
}
.zw-palace--classic .zw-palace__mainCol {
    grid-column: 2;
    grid-row: 1;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: flex-start;
    gap: 0.4rem;
    min-width: 0;
    max-height: none;
    font-size: 0.78rem;
    line-height: 1.16;
    color: #111;
    overflow: visible;
    padding: 0.12rem 0 0.08rem;
}
.zw-palace--classic .zw-palace__minorCol {
    grid-column: 3;
    grid-row: 1;
    align-self: start;
    min-width: 0;
    text-align: right;
    font-size: 0.5rem;
    line-height: 1.22;
    color: #2a4a7a;
    overflow: visible;
    max-height: none;
}
.zw-palace--classic .zw-palace__minorCol--left {
    grid-column: 1;
    text-align: left;
    color: #375274;
}
.zw-palace--classic .zw-palace__minorCol--left .zw-minor-star {
    margin-left: 0;
    margin-right: auto;
    text-align: left;
}
.zw-palace--classic .zw-palace__minorCol--right {
    grid-column: 3;
}
.zw-palace--classic .zw-minor-star {
    display: block;
    margin: 0 0 0.04rem 0;
    margin-left: auto;
    white-space: nowrap;
    text-align: right;
}
.zw-minor-star {
    display: inline;
    margin-right: 0.12rem;
    white-space: nowrap;
}
.zw-minor-ph,
.zw-main-ph {
    opacity: 0.25;
}
.zw-palace--classic .zw-main-block {
    margin: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
}
.zw-main-block {
    margin-bottom: 0.18rem;
}
.zw-palace--classic .zw-main-nameRow {
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.12rem;
}
.zw-main-nameRow {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.1rem;
}
.zw-palace--classic .zw-main-name {
    writing-mode: vertical-rl;
    text-orientation: mixed;
    font-weight: 900;
    font-size: 1.16rem;
    letter-spacing: 0.18em;
    line-height: 1.12;
    color: #111;
    text-shadow: 0 0 0.02rem rgba(0, 0, 0, 0.16);
}
.zw-main-name {
    font-weight: 900;
    font-size: 0.78rem;
    letter-spacing: 0.03em;
    color: color-mix(in srgb, var(--zw-main-color) 88%, #5a1530 12%);
}
.zw-palace--classic .zw-main-name--fire {
    color: #c41e3a !important;
}
.zw-palace--classic .zw-main-name--water {
    color: #1a56b8 !important;
}
.zw-main-name--fire {
    color: #b01028 !important;
}
.zw-main-name--water {
    color: #1560a8 !important;
}
/* 星曜级别（甲乙丙丁戊） */
.star-level-jia {
    color: #d32f2f;
    font-weight: 800;
}
.star-level-yi {
    color: #9c27b0;
    font-weight: 600;
}
.star-level-bing {
    color: #8d6e63;
    font-weight: 600;
}
.star-level-ding {
    color: #999999;
    font-weight: 500;
}
.star-level-wu {
    color: #cccccc;
    font-weight: 500;
}
.zw-main-name.star-level-jia {
    font-size: 1.2rem;
}
.zw-main-name.star-level-yi {
    font-size: 1.02rem;
}
.zw-main-name.star-level-bing {
    font-size: 0.94rem;
}
.zw-main-name.star-level-ding {
    font-size: 0.88rem;
}
.zw-main-name.star-level-wu {
    font-size: 0.82rem;
}
.zw-minor-star.star-level-jia {
    font-size: 0.8rem;
}
.zw-minor-star.star-level-yi {
    font-size: 0.7rem;
}
.zw-minor-star.star-level-bing {
    font-size: 0.62rem;
}
.zw-minor-star.star-level-ding {
    font-size: 0.58rem;
}
.zw-minor-star.star-level-wu {
    font-size: 0.54rem;
}
/* 四化优先（覆盖级别色） */
.star-fourhua {
    font-weight: 900 !important;
}
.star-fourhua.star-fourhua-lu {
    color: #2e7d32 !important;
}
.star-fourhua.star-fourhua-quan {
    color: #d32f2f !important;
}
.star-fourhua.star-fourhua-ke {
    color: #0088aa !important;
    text-shadow: 0 0 0.35rem rgba(0, 190, 230, 0.45);
}
.star-fourhua.star-fourhua-ji {
    color: #333333 !important;
}
.zw-main-name.zw-star-hit,
.zw-minor-star.zw-star-hit {
    display: inline-block;
    border-radius: 4px;
    border: 1px solid transparent;
    box-shadow:
        inset 0 0 0 1px rgba(255, 255, 255, 0.25),
        0 1px 2px rgba(0, 0, 0, 0.08);
}
.zw-main-name.zw-star-hit {
    padding: 0.08rem 0.05rem;
}
.zw-minor-star.zw-star-hit {
    padding: 0.02rem 0.18rem;
}
.zw-main-name.zw-star-hit--lu,
.zw-minor-star.zw-star-hit--lu {
    color: #156a37 !important;
    background: linear-gradient(180deg, #eaffef, #c9f6d8);
    border-color: rgba(33, 144, 80, 0.5);
}
.zw-main-name.zw-star-hit--quan,
.zw-minor-star.zw-star-hit--quan {
    color: #4c1f8e !important;
    background: linear-gradient(180deg, #f3eaff, #ddccff);
    border-color: rgba(114, 76, 186, 0.5);
}
.zw-main-name.zw-star-hit--ke,
.zw-minor-star.zw-star-hit--ke {
    color: #003f54 !important;
    background: linear-gradient(180deg, #e0f9ff, #6ecfef);
    border-color: rgba(0, 150, 190, 0.7);
    box-shadow:
        inset 0 0 0 1px rgba(255, 255, 255, 0.45),
        0 0 0 2px rgba(0, 190, 230, 0.35),
        0 2px 5px rgba(0, 140, 180, 0.2);
}
.zw-main-name.zw-star-hit--ji,
.zw-minor-star.zw-star-hit--ji {
    color: #9b1d2a !important;
    background: linear-gradient(180deg, #fff0f2, #ffd7dd);
    border-color: rgba(206, 76, 96, 0.56);
}
.zw-palace--classic .zw-main-miao {
    writing-mode: vertical-rl;
    text-orientation: mixed;
    font-size: 0.62rem;
    font-weight: 700;
    color: rgba(58, 47, 33, 0.55);
    margin-top: 0;
    letter-spacing: 0.08em;
}
.zw-main-miao {
    font-size: 0.54rem;
    font-weight: 600;
    color: var(--zw-accent-muted);
    margin-top: 0.04rem;
}
.zw-palace--classic .zw-palace__foot {
    margin-top: auto;
    padding-top: 0.18rem;
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.2rem 0.45rem;
    border-top: 1px solid rgba(58, 47, 33, 0.07);
}
.zw-palace__foot {
    margin-top: auto;
    padding-top: 0.12rem;
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.15rem 0.35rem;
    border-top: 1px solid rgba(120, 100, 80, 0.1);
}
.zw-palace--classic .zw-palace__sihua {
    display: none;
    margin-top: 0.08rem;
    padding: 0.14rem 0.26rem;
    border-radius: 6px;
    border: 1px dashed color-mix(in srgb, var(--accent) 24%, rgba(58, 47, 33, 0.15) 76%);
    background: linear-gradient(180deg, rgba(255, 250, 232, 0.95), rgba(255, 245, 216, 0.95));
    color: color-mix(in srgb, var(--text-primary) 76%, #8b3f58 24%);
    font-size: 0.56rem;
    line-height: 1.35;
    font-weight: 700;
    text-align: left;
}
.zw-palace__sihua-item {
    font-weight: 800;
}
.zw-palace__sihua-item--lu {
    color: #1f9d4c;
}
.zw-palace__sihua-item--quan {
    color: #7a3fd4;
}
.zw-palace__sihua-item--ke {
    color: #006a88;
    background: rgba(110, 210, 240, 0.35);
    border-radius: 3px;
    padding: 0 0.12rem;
    box-shadow: inset 0 0 0 1px rgba(0, 160, 200, 0.45);
}
.zw-palace__sihua-item--ji {
    color: #c43a3a;
}
.zw-palace__sihua-empty {
    color: color-mix(in srgb, var(--text-primary) 66%, var(--text-muted) 34%);
}
.zw-palace--classic.zw-palace--focus .zw-palace__sihua {
    display: block;
}
body.theme-ink .zw-palace--classic .zw-palace__sihua {
    border-color: color-mix(in srgb, var(--accent) 44%, var(--line-soft) 56%);
    background: linear-gradient(
        180deg,
        color-mix(in srgb, var(--bg-card) 84%, #5a3f1f 16%),
        color-mix(in srgb, var(--bg-card) 74%, #6d4a20 26%)
    );
    color: color-mix(in srgb, var(--text-primary) 78%, #ffc86a 22%);
}
.zw-palace--classic .zw-palace__pname {
    font-size: 0.78rem;
    font-weight: 800;
    color: #2a241c;
    letter-spacing: 0.04em;
}
.zw-palace__pname {
    font-size: 0.68rem;
    font-weight: 900;
    color: var(--text-primary);
    letter-spacing: 0.02em;
}
.zw-palace--classic .zw-palace__branch {
    font-size: 0.82rem;
    font-weight: 800;
    color: #3a3228;
}
.zw-palace__branch {
    font-size: 0.72rem;
    font-weight: 800;
    color: color-mix(in srgb, var(--text-primary) 92%, var(--text-muted) 8%);
}
.zw-palace--classic .zw-palace__daxian {
    font-size: 0.66rem;
    font-weight: 800;
    color: #3c2e1f;
    white-space: nowrap;
    background: rgba(245, 233, 205, 0.9);
    border: 1px solid rgba(171, 136, 82, 0.45);
    border-radius: 4px;
    padding: 0.03rem 0.16rem;
}
.zw-palace__daxian {
    font-size: 0.6rem;
    font-weight: 800;
    color: color-mix(in srgb, var(--text-primary) 84%, var(--tone-gold-deep) 16%);
    white-space: nowrap;
    background: color-mix(in srgb, var(--bg-card) 92%, var(--tone-gold) 8%);
    border: 1px solid color-mix(in srgb, var(--bg-card-border) 76%, var(--tone-gold-deep) 24%);
    border-radius: 4px;
    padding: 0.03rem 0.16rem;
}
.zw-palace--classic .zw-palace__gzfull {
    font-size: 0.64rem;
    font-weight: 800;
    color: rgba(58, 47, 33, 0.78);
    letter-spacing: 0.1em;
}
.zw-palace__gzfull {
    font-size: 0.56rem;
    font-weight: 700;
    color: color-mix(in srgb, var(--text-primary) 78%, var(--text-muted) 22%);
    letter-spacing: 0.06em;
}
.zw-sihua-mark {
    display: inline-block;
    font-size: 0.52rem;
    font-weight: 900;
    line-height: 1;
    padding: 0.05rem 0.14rem;
    border-radius: 3px;
    vertical-align: middle;
}
.zw-sihua-mark--lu {
    color: #0d6b2e;
    background: rgba(210, 255, 220, 0.95);
    border: 1px solid rgba(40, 140, 70, 0.45);
}
.zw-sihua-mark--quan {
    color: #4a1a6e;
    background: rgba(235, 220, 255, 0.95);
    border: 1px solid rgba(120, 70, 160, 0.4);
}
.zw-sihua-mark--ke {
    color: #fff;
    background: linear-gradient(180deg, #2bb8e0, #0a8fb8);
    border: 1px solid rgba(0, 110, 150, 0.75);
    text-shadow: 0 1px 0 rgba(0, 40, 60, 0.25);
}
.zw-sihua-mark--ji {
    color: #9a1020;
    background: rgba(255, 220, 224, 0.95);
    border: 1px solid rgba(200, 50, 70, 0.45);
}
.zw-center__ming-shen {
    font-size: 0.76rem;
    font-weight: 700;
    color: var(--text-primary);
    letter-spacing: 0.04em;
}
.zw-center__pillars {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.35rem 0.5rem;
    margin: 0.12rem 0 0.08rem;
    width: 100%;
}
.zw-pillar-cell {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.08rem;
}
.zw-pillar-gz {
    font-size: 0.72rem;
    font-weight: 800;
    color: var(--text-primary);
    letter-spacing: 0.08em;
}
.zw-pillar-mark {
    font-size: 0.52rem;
    font-weight: 900;
    width: 1.15rem;
    height: 1.15rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
    line-height: 1;
}
.zw-pillar-mark--lu {
    color: #0d6b2e;
    background: rgba(200, 255, 210, 0.95);
    border: 1px solid rgba(40, 130, 70, 0.5);
}
.zw-pillar-mark--quan {
    color: #4a1a6e;
    background: rgba(225, 210, 255, 0.95);
    border: 1px solid rgba(110, 60, 150, 0.45);
}
.zw-pillar-mark--ke {
    color: #0a4a7a;
    background: rgba(205, 228, 255, 0.95);
    border: 1px solid rgba(45, 95, 150, 0.45);
}
.zw-pillar-mark--ji {
    color: #9a1020;
    background: rgba(255, 210, 215, 0.95);
    border: 1px solid rgba(190, 45, 65, 0.5);
}
.zw-center {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    gap: 0.22rem;
    padding: 0.55rem 0.5rem;
    border-radius: 12px;
    background: radial-gradient(
        ellipse at 50% 30%,
        color-mix(in srgb, var(--bg-card) 96%, var(--tone-gold) 4%) 0%,
        color-mix(in srgb, var(--panel-1) 88%, var(--tone-gold) 12%) 55%,
        color-mix(in srgb, var(--panel-2) 82%, var(--tone-gold-deep) 18%) 100%
    );
    box-shadow:
        inset 0 0 0 1px color-mix(in srgb, var(--text-primary) 10%, var(--bg-card-border) 90%),
        0 2px 14px color-mix(in srgb, var(--text-primary) 6%, transparent);
}
.zw-center__yyju {
    font-size: 0.95rem;
    font-weight: 800;
    color: var(--text-primary);
    letter-spacing: 0.06em;
}
.zw-center__solar {
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--text-primary);
}
.zw-center__lunar {
    font-size: 0.62rem;
    color: var(--text-muted);
}
.zw-center__gz {
    font-size: 0.64rem;
    font-weight: 700;
    color: color-mix(in srgb, var(--text-primary) 85%, var(--tone-gold-deep) 15%);
}
.zw-center__ms {
    font-size: 0.62rem;
    color: color-mix(in srgb, var(--text-primary) 88%, var(--text-muted) 12%);
}
.zw-center__sheng {
    font-size: 0.58rem;
    line-height: 1.35;
    color: color-mix(in srgb, var(--text-primary) 82%, var(--text-muted) 18%);
    max-width: 100%;
}
.zw-center__sheng--palace {
    color: color-mix(in srgb, var(--text-primary) 66%, var(--accent) 34%);
    font-weight: 700;
}
.zw-center__limit {
    font-size: 0.58rem;
    font-weight: 700;
    color: color-mix(in srgb, var(--text-primary) 76%, #2a66b6 24%);
    background: color-mix(in srgb, var(--bg-card) 90%, #d7e7ff 10%);
    border: 1px solid color-mix(in srgb, var(--bg-card-border) 72%, #74a0dd 28%);
    border-radius: 7px;
    padding: 0.08rem 0.26rem;
    line-height: 1.34;
}
.zw-limit-strip {
    margin: 0.58rem 0 0.35rem;
    border: 1px solid color-mix(in srgb, var(--bg-card-border) 78%, var(--tone-gold-deep) 22%);
    border-radius: 8px;
    background: color-mix(in srgb, var(--bg-card) 92%, var(--tone-gold) 8%);
    display: grid;
    grid-template-columns: 4.2rem minmax(0, 1fr);
    grid-template-rows: repeat(5, auto);
    overflow: hidden;
}
.zw-limit-strip__label {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.9rem;
    font-weight: 800;
    color: color-mix(in srgb, var(--text-primary) 88%, var(--tone-gold-deep) 12%);
    border-right: 1px solid color-mix(in srgb, var(--bg-card-border) 78%, var(--tone-gold-deep) 22%);
    background: color-mix(in srgb, var(--panel-1) 86%, var(--tone-gold) 14%);
    border-top: 1px solid color-mix(in srgb, var(--bg-card-border) 80%, var(--tone-gold-deep) 20%);
}
.zw-limit-strip__label:first-child {
    border-top: 0;
}
.zw-limit-strip__track {
    grid-column: 2;
    grid-row: 1 / span 5;
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(6rem, 1fr);
    overflow-x: auto;
    background: color-mix(in srgb, var(--bg-card) 96%, var(--panel-1) 4%);
}
.zw-limit-strip__col {
    border-right: 1px solid color-mix(in srgb, var(--bg-card-border) 74%, var(--tone-gold-deep) 26%);
    min-height: 10.8rem;
    display: grid;
    grid-template-rows: repeat(5, minmax(2.05rem, auto));
    align-items: stretch;
}
.zw-limit-strip__cell {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 0.16rem 0.24rem;
    font-size: 0.84rem;
    font-weight: 600;
    color: color-mix(in srgb, var(--text-primary) 90%, var(--text-muted) 10%);
    border-top: 1px solid color-mix(in srgb, var(--bg-card-border) 76%, var(--tone-gold-deep) 24%);
}
.zw-limit-strip__cell:first-child {
    border-top: 0;
}
.zw-limit-strip__cell--daxian,
.zw-limit-strip__cell--year {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}
.zw-limit-strip__main {
    font-size: 0.9rem;
    font-weight: 800;
    color: color-mix(in srgb, var(--text-primary) 92%, var(--tone-gold-deep) 8%);
    line-height: 1.24;
}
.zw-limit-strip__sub {
    font-size: 0.75rem;
    font-weight: 600;
    color: color-mix(in srgb, var(--text-primary) 74%, var(--text-muted) 26%);
    line-height: 1.2;
}
body.theme-ink .zw-limit-strip {
    background: var(--panel-1);
    border-color: var(--line-soft);
}
body.theme-ink .zw-limit-strip__label {
    background: var(--panel-2);
    color: var(--text-primary);
    border-right-color: var(--line-soft);
    border-top-color: var(--line-soft);
}
body.theme-ink .zw-limit-strip__track {
    background: var(--bg-card);
}
body.theme-ink .zw-limit-strip__col {
    border-right-color: var(--line-soft);
}
body.theme-ink .zw-limit-strip__cell {
    color: var(--text-primary);
    border-top-color: var(--line-soft);
}
body.theme-ink .zw-limit-strip__main {
    color: var(--text-primary);
}
body.theme-ink .zw-limit-strip__sub {
    color: var(--text-secondary);
}
.zw-center__yun {
    font-size: 0.54rem;
    color: var(--text-muted);
}

/* 中宫四柱大字配色（参考图二） */
.zw-pillar-cell--year .zw-pillar-gz {
    color: #c43a3a;
    font-size: 0.9rem;
}
.zw-pillar-cell--month .zw-pillar-gz {
    color: #2563c4;
    font-size: 0.9rem;
}
.zw-pillar-cell--day .zw-pillar-gz {
    color: #15803c;
    font-size: 0.9rem;
}
.zw-pillar-cell--hour .zw-pillar-gz {
    color: #b91c1c;
    font-size: 0.9rem;
}

/* 排盘说明（淡黄底） */
.ziwei-paipan-notes {
    margin-top: 1rem;
    padding: 0.78rem 0.9rem;
    border-radius: 14px;
    background: linear-gradient(180deg, #fffbeb, #fff3d0);
    border: 1px solid rgba(220, 180, 100, 0.38);
}
.zw-analysis-panel {
    margin-top: 0.78rem;
    padding: 0.72rem 0.86rem;
    border-radius: 12px;
    border: 1px solid rgba(206, 176, 120, 0.32);
    background: linear-gradient(180deg, #fffdf7, #fff8ea);
}
.zw-analysis-block h4 {
    margin: 0 0 0.42rem;
    font-size: 0.9rem;
    font-weight: 800;
    color: color-mix(in srgb, var(--text-primary) 86%, var(--tone-gold-deep) 14%);
}
.zw-analysis-block p {
    margin: 0.2rem 0;
    font-size: 0.75rem;
    line-height: 1.5;
    color: color-mix(in srgb, var(--text-primary) 86%, var(--text-muted) 14%);
}
.zw-analysis-sub {
    margin-top: 0.45rem;
    font-size: 0.76rem;
    font-weight: 700;
    color: color-mix(in srgb, var(--text-primary) 82%, #5c3f1f 18%);
}
.zw-analysis-lines {
    margin-top: 0.18rem;
    font-size: 0.72rem;
    line-height: 1.48;
    color: var(--text-primary);
}
.zw-analysis-list {
    margin: 0.32rem 0 0;
    padding-left: 1.1rem;
}
.zw-analysis-list li {
    margin: 0.12rem 0;
    font-size: 0.72rem;
    line-height: 1.45;
}
body.theme-ink .ziwei-paipan-notes {
    background: linear-gradient(180deg, color-mix(in srgb, var(--panel-1) 90%, #5c4020 10%), var(--panel-2));
    border-color: var(--line-soft);
}
.ziwei-paipan-notes__title {
    margin: 0 0 0.45rem;
    font-size: 0.88rem;
    font-weight: 800;
    color: var(--text-primary);
    letter-spacing: 0.06em;
}
.ziwei-paipan-notes__body {
    margin: 0;
    line-height: 1.55;
}

/* 紫微斗数方盘 — 手机端完整可读（可滚动，避免一屏硬裁切丢信息） */
@media (max-width: 719px) {
    :root {
        --ziwei-mobile-nav-h: calc(4.6rem + env(safe-area-inset-bottom, 0px));
        --ziwei-mobile-strip-h: 0px;
    }

    body:has(.site-compliance-strip:not([hidden])) {
        --ziwei-mobile-strip-h: 2.6rem;
    }

    body:has(.main-inner.has-result #caseDetailArea.result-mode--ziwei) {
        overflow-x: hidden;
        overflow-y: auto;
    }

    body:has(.main-inner.has-result #caseDetailArea.result-mode--ziwei) .main {
        padding: 0;
        overflow: visible;
    }

    /* 页脚/回顶 FAB 藏起；长截屏栏与八字一样保留（截图此案例） */
    body:has(.main-inner.has-result #caseDetailArea.result-mode--ziwei) .result-scrolltop-fab,
    body:has(.main-inner.has-result #caseDetailArea.result-mode--ziwei) .site-footer {
        display: none !important;
    }

    .main-inner.has-result:has(#caseDetailArea.result-mode--ziwei) {
        height: auto;
        max-height: none;
        min-height: calc(100dvh - var(--ziwei-mobile-nav-h) - var(--ziwei-mobile-strip-h));
        overflow: visible;
        display: flex;
        flex-direction: column;
        width: 100%;
        max-width: 100%;
        margin: 0;
        padding: 0 0 calc(var(--ziwei-mobile-nav-h) + 0.65rem);
        box-sizing: border-box;
    }

    .main-inner.has-result:has(#caseDetailArea.result-mode--ziwei) #mainContentGrid,
    .main-inner.has-result:has(#caseDetailArea.result-mode--ziwei) #baziPaipanStack {
        flex: 1 1 auto;
        min-height: 0;
        height: auto;
        max-height: none;
        width: 100%;
        max-width: 100%;
        margin: 0;
        overflow: visible;
    }

    /* 须压过 .main-inner.has-result.view-paipan #caseDetailArea.result-shell { display:block !important } */
    .main-inner.has-result.view-paipan #caseDetailArea.result-shell.result-mode--ziwei,
    .main-inner.has-result #caseDetailArea.result-shell.result-mode--ziwei,
    #caseDetailArea.result-mode--ziwei {
        flex: 1 1 auto;
        min-height: 0;
        height: auto;
        max-height: none;
        overflow: visible;
        display: flex !important;
        flex-direction: column !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 0.2rem 0.28rem 0.35rem !important;
        box-sizing: border-box;
        border-radius: 0 !important;
        box-shadow: none !important;
        border: none !important;
        background: transparent !important;
    }

    /*
     * 顶栏：左「三」| 右「AI + ×」
     * 必须压过 mobile-responsive.css 的 column 堆叠与 #baziZiweiCopyForAiBtn{width:100%}
     */
    #caseDetailArea.result-mode--ziwei .result-shell-head.result-shell-head--bazi-extra,
    #caseDetailArea.result-mode--ziwei .result-shell-head {
        flex: 0 0 auto;
        display: grid !important;
        grid-template-columns: auto 1fr auto !important;
        grid-template-rows: auto !important;
        align-items: center !important;
        column-gap: 0.4rem !important;
        row-gap: 0 !important;
        padding: 0.1rem 0.05rem 0.28rem !important;
        margin: 0 !important;
        border: none !important;
        min-height: 2.4rem;
        width: 100%;
    }

    #caseDetailArea.result-mode--ziwei .result-shell-head .result-shell-title,
    #caseDetailArea.result-mode--ziwei .bazi-result-overview-wrap,
    #caseDetailArea.result-mode--ziwei #resultHeadingPillars,
    #caseDetailArea.result-mode--ziwei #gejuZipingCard,
    #caseDetailArea.result-mode--ziwei .bazi-extra-charts--in-head {
        display: none !important;
    }

    #caseDetailArea.result-mode--ziwei .paipan-result-title-block {
        display: inline-flex !important;
        grid-column: 1 !important;
        grid-row: 1 !important;
        align-items: center;
        justify-content: flex-start;
        gap: 0;
        min-width: 0;
        width: auto !important;
        max-width: none !important;
    }

    #caseDetailArea.result-mode--ziwei .result-shell-head--bazi-extra .result-shell-actions,
    #caseDetailArea.result-mode--ziwei .result-shell-actions {
        grid-column: 3 !important;
        grid-row: 1 !important;
        display: inline-flex !important;
        flex-direction: row !important;
        align-items: center !important;
        justify-content: flex-end !important;
        justify-self: end !important;
        width: auto !important;
        max-width: none !important;
        gap: 0.4rem !important;
        flex-wrap: nowrap !important;
        min-width: 0;
    }

    #caseDetailArea.result-mode--ziwei .bazi-result-shell__pillar-actions {
        display: grid !important;
        grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
        width: 100%;
    }

    #caseDetailArea.result-mode--ziwei .bazi-ziwei-copy-hint,
    #caseDetailArea.result-mode--ziwei .save-bazi-fab,
    #caseDetailArea.result-mode--ziwei > .compliance-note,
    #caseDetailArea.result-mode--ziwei #aiText {
        display: none !important;
    }

    #caseDetailArea.result-mode--ziwei #baziZiweiCopyForAiBtn,
    #caseDetailArea.result-mode--ziwei #baziZiweiExportFactsBtn,
    #caseDetailArea.result-mode--ziwei .result-copy-for-ai-btn,
    #caseDetailArea.result-mode--ziwei .result-export-facts-btn,
    #caseDetailArea.result-mode--ziwei .result-shell-actions .result-copy-for-ai-btn,
    #caseDetailArea.result-mode--ziwei .result-shell-actions .result-export-facts-btn,
    #caseDetailArea.result-mode--ziwei .result-shell-actions .result-open-modal-btn {
        flex: 1 1 auto !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        height: auto !important;
        min-height: 2.35rem !important;
        padding: 0.35rem 0.4rem !important;
        font-size: 0.68rem !important;
        font-weight: 700 !important;
        line-height: 1.25 !important;
        white-space: normal !important;
        overflow: hidden;
        text-align: center !important;
        border-radius: 10px !important;
        box-shadow: none !important;
        transform: none !important;
    }

    #caseDetailArea.result-mode--ziwei .result-close-btn {
        width: 2.05rem !important;
        height: 2.05rem !important;
        min-width: 2.05rem !important;
        min-height: 2.05rem !important;
        font-size: 1.05rem !important;
        padding: 0 !important;
        flex: 0 0 auto !important;
        align-self: center !important;
        border-radius: 999px !important;
        line-height: 1 !important;
    }

    #caseDetailArea.result-mode--ziwei #baziGrid {
        flex: 1 1 auto;
        min-height: 0;
        overflow: visible !important;
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
        width: 100%;
        max-width: 100%;
        margin: 0;
        padding: 0;
    }

    .ziwei-paipan {
        flex: 1 1 auto;
        min-height: 0;
        height: auto;
        display: flex;
        flex-direction: column;
        padding: 0;
        margin: 0;
        max-width: 100%;
        width: 100%;
    }

    .ziwei-paipan-card {
        flex: 1 1 auto;
        min-height: 0;
        height: auto;
        display: flex;
        flex-direction: column;
        padding: 0.28rem 0.2rem 0.35rem;
        border-radius: 12px;
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }

    .ziwei-paipan-notes {
        display: block !important;
        margin-top: 0.55rem;
        font-size: 0.72rem;
        line-height: 1.45;
        color: color-mix(in srgb, var(--text-primary, #3a2f21) 78%, transparent);
    }

    /* 大限 / 流年小限 / 流月 / 流日 / 流时：贴底占满宽度 */
    .zw-limit-strip {
        display: grid !important;
        flex: 0 0 auto;
        margin: 0.2rem 0 0;
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
        grid-template-columns: 2.85rem minmax(0, 1fr);
        border-radius: 8px;
        overflow: hidden;
    }

    .zw-limit-strip__label {
        font-size: 0.56rem;
        font-weight: 700;
        letter-spacing: 0;
        padding: 0 0.06rem;
        text-align: center;
        line-height: 1.12;
    }

    .zw-limit-strip__track {
        grid-auto-columns: minmax(3.85rem, 1fr);
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior-x: contain;
        scrollbar-width: thin;
    }

    .zw-limit-strip__col {
        min-height: 0;
        min-width: 3.85rem;
        grid-template-rows: repeat(5, minmax(1.22rem, auto));
    }

    .zw-limit-strip__cell {
        font-size: 0.58rem;
        font-weight: 600;
        padding: 0.06rem 0.1rem;
        line-height: 1.15;
    }

    .zw-limit-strip__main {
        font-size: 0.62rem;
        line-height: 1.15;
    }

    .zw-limit-strip__sub {
        font-size: 0.5rem;
        line-height: 1.1;
    }

    .ziwei-paipan-card__hero {
        flex: 0 0 auto;
        flex-direction: column;
        align-items: stretch;
        gap: 0.28rem;
        margin-bottom: 0.16rem;
        padding-bottom: 0.16rem;
    }

    .ziwei-paipan-card__heroMain {
        gap: 0.45rem;
    }

    .ziwei-paipan-card__accent {
        min-height: 2.2rem;
    }

    .ziwei-paipan-card__title {
        font-size: 1.05rem;
        margin-bottom: 0.2rem;
    }

    .ziwei-paipan-card__dates {
        font-size: 0.66rem;
        line-height: 1.38;
    }

    .ziwei-paipan-card__sep {
        display: none;
    }

    .ziwei-paipan-card__dates span:not(.ziwei-paipan-card__sep) {
        display: block;
    }

    .ziwei-tabbar--hero {
        align-self: stretch;
        justify-content: center;
        gap: 0.28rem;
    }

    .ziwei-tab {
        flex: 1 1 0;
        min-width: 0;
        text-align: center;
        font-size: 0.72rem;
        padding: 0.28rem 0.42rem;
    }

    .ziwei-sihua-ribbon {
        flex: 0 0 auto;
        gap: 0.14rem 0.18rem;
        margin-bottom: 0.14rem;
        justify-content: space-between;
    }

    .ziwei-sihua-chip {
        flex: 1 1 0;
        min-width: 0;
        justify-content: center;
        font-size: 0.56rem;
        padding: 0.16rem 0.2rem;
    }

    .ziwei-square-wrap {
        flex: 0 0 auto;
        width: 100%;
        max-width: 100%;
        min-height: min(100vw - 0.7rem, 72dvh);
        container-type: inline-size;
        display: flex;
        align-items: center;
        justify-content: center;
        overflow: visible;
    }

    .ziwei-square-board {
        width: 100%;
        height: auto;
        max-width: 100%;
        margin: 0 auto;
        gap: 2px;
        padding: 3px;
        border-radius: 8px;
        grid-template-rows: repeat(4, minmax(4.85rem, auto));
        grid-template-columns: repeat(4, minmax(0, 1fr));
        min-height: 0;
        overflow: visible;
        aspect-ratio: auto;
        align-self: center;
    }

    @supports not (width: 100cqw) {
        .ziwei-square-board {
            width: 100%;
            height: auto;
            max-height: none;
            aspect-ratio: auto;
        }
    }

    .zw-palace.zw-palace--classic {
        min-height: 4.85rem;
        height: auto;
        overflow: visible;
        padding: 0.18rem 0.12rem 0.14rem;
        border-radius: 6px;
    }

    .zw-palace--classic .zw-palace__top {
        min-height: auto;
        margin-bottom: 0.06rem;
        padding-bottom: 0.05rem;
        padding-right: 0.85rem;
    }

    .zw-palace--classic .zw-palace__pname {
        font-size: 0.52rem;
    }

    .zw-palace--classic .zw-palace__branch {
        font-size: 0.54rem;
    }

    .zw-palace__ming-tag {
        font-size: 0.44rem;
        padding: 0.03rem 0.12rem;
    }

    .zw-ribbon {
        font-size: 0.44rem;
        padding: 0.03rem 0.16rem;
    }

    .zw-palace--classic .zw-palace__body {
        flex: 1 1 auto;
        min-height: 2.8rem;
        display: grid;
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto auto;
        gap: 0.06rem 0.1rem;
        padding: 0.04rem 0;
        overflow: visible;
    }

    .zw-palace--classic .zw-palace__mainCol {
        grid-column: 1 / -1;
        grid-row: 1;
        flex-wrap: wrap;
        justify-content: center;
        gap: 0.08rem 0.14rem;
        font-size: 0.56rem;
        padding: 0.02rem 0;
        width: 100%;
    }

    .zw-palace--classic .zw-palace__minorCol--left {
        grid-column: 1;
        grid-row: 2;
        display: flex;
        flex-wrap: wrap;
        justify-content: flex-end;
        gap: 0.04rem 0.1rem;
        text-align: right;
    }

    .zw-palace--classic .zw-palace__minorCol--right {
        grid-column: 2;
        grid-row: 2;
        display: flex;
        flex-wrap: wrap;
        justify-content: flex-start;
        gap: 0.04rem 0.1rem;
        text-align: left;
    }

    .zw-palace--classic .zw-palace__minorCol--left .zw-minor-star,
    .zw-palace--classic .zw-palace__minorCol--right .zw-minor-star {
        display: inline;
        margin: 0;
        white-space: nowrap;
    }

    .zw-palace--classic .zw-main-name {
        writing-mode: horizontal-tb;
        text-orientation: mixed;
        font-size: 0.74rem;
        letter-spacing: 0.04em;
    }

    .zw-palace--classic .zw-main-miao {
        writing-mode: horizontal-tb;
        text-orientation: mixed;
    }

    .zw-palace--classic .zw-main-nameRow {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        gap: 0.06rem;
    }

    .zw-palace--classic .zw-main-name.star-level-jia {
        font-size: 0.78rem;
    }

    .zw-palace--classic .zw-main-name.star-level-yi {
        font-size: 0.74rem;
    }

    .zw-palace--classic .zw-main-name.star-level-bing {
        font-size: 0.7rem;
    }

    .zw-palace--classic .zw-main-name.star-level-ding {
        font-size: 0.66rem;
    }

    .zw-palace--classic .zw-main-name.star-level-wu {
        font-size: 0.62rem;
    }

    .zw-palace--classic .zw-main-miao {
        font-size: 0.5rem;
        letter-spacing: 0.04em;
    }

    .zw-palace--classic .zw-palace__minorCol {
        font-size: 0.52rem;
        line-height: 1.22;
    }

    .zw-minor-star.star-level-jia,
    .zw-minor-star.star-level-yi,
    .zw-minor-star.star-level-bing,
    .zw-minor-star.star-level-ding,
    .zw-minor-star.star-level-wu {
        font-size: inherit;
    }

    .zw-sihua-mark {
        font-size: 0.62rem;
        padding: 0.06rem 0.16rem;
    }

    .ziwei-paipan[data-zw-mode='sihua'] .zw-sihua-mark {
        font-size: 0.7rem;
        padding: 0.08rem 0.22rem;
        transform: none;
    }

    .ziwei-paipan[data-zw-mode='sihua'] .zw-sihua-mark--ke {
        font-size: 0.76rem;
        padding: 0.1rem 0.26rem;
    }

    /* 恢复宫格流年/小限虚岁与大运脚注，保证信息完整 */
    .zw-palace--classic .zw-palace__ages {
        display: flex;
        flex-wrap: wrap;
        gap: 0.08rem 0.2rem;
        font-size: 0.48rem;
        line-height: 1.2;
        margin-top: 0.04rem;
    }

    .zw-palace--classic .zw-palace__foot {
        margin-top: 0.08rem;
        padding-top: 0.1rem;
        gap: 0.1rem 0.2rem;
    }

    .zw-palace--classic .zw-palace__foot .zw-palace__daxian {
        display: inline;
        font-size: 0.48rem;
        line-height: 1.2;
    }

    .zw-palace--classic .zw-palace__gzfull {
        font-size: 0.5rem;
        width: 100%;
        text-align: center;
    }

    .zw-palace--classic .zw-palace__mode-meta,
    .zw-palace--classic .zw-palace__sihua-limit {
        font-size: 0.48rem;
        padding: 0.04rem 0.06rem;
        margin-top: 0.04rem;
        line-height: 1.25;
    }

    .zw-palace--classic .zw-palace__sihua {
        font-size: 0.48rem;
        padding: 0.06rem 0.08rem;
        margin-top: 0.04rem;
        line-height: 1.28;
    }

    .zw-center {
        padding: 0.28rem 0.2rem;
        gap: 0.12rem;
        border-radius: 8px;
    }

    .zw-center__yyju {
        font-size: 0.68rem;
    }

    .zw-center__ming-shen {
        font-size: 0.54rem;
        line-height: 1.3;
    }

    .zw-center__pillars {
        gap: 0.22rem 0.32rem;
        margin: 0.06rem 0 0.04rem;
    }

    .zw-pillar-gz {
        font-size: 0.64rem;
    }

    .zw-pillar-cell--year .zw-pillar-gz,
    .zw-pillar-cell--month .zw-pillar-gz,
    .zw-pillar-cell--day .zw-pillar-gz,
    .zw-pillar-cell--hour .zw-pillar-gz {
        font-size: 0.7rem;
    }

    .zw-pillar-mark {
        font-size: 0.48rem;
        width: 0.95rem;
        height: 0.95rem;
    }

    .zw-center__ms,
    .zw-center__yun {
        font-size: 0.5rem;
        line-height: 1.3;
    }

    .zw-center__sheng {
        display: block;
        font-size: 0.5rem;
        line-height: 1.3;
        margin-top: 0.06rem;
    }

    .zw-center__limit {
        display: block;
        font-size: 0.5rem;
        line-height: 1.28;
        margin-top: 0.04rem;
    }
}

@media (min-width: 720px) {
    .ziwei-square-wrap {
        max-width: min(46rem, 96vw);
    }
    .ziwei-square-board {
        grid-template-rows: repeat(4, minmax(5.75rem, auto));
        gap: 7px;
        padding: 10px;
    }
    .zw-palace.zw-palace--classic {
        min-height: 5.85rem;
        padding: 0.4rem 0.44rem 0.32rem;
    }
    .zw-palace--classic .zw-palace__body {
        min-height: 6.25rem;
    }
    .zw-palace--classic .zw-main-name {
        font-size: 1.14rem;
    }
    .zw-palace--classic .zw-palace__minorCol {
        font-size: 0.7rem;
    }
    .zw-pillar-cell--year .zw-pillar-gz,
    .zw-pillar-cell--month .zw-pillar-gz,
    .zw-pillar-cell--day .zw-pillar-gz,
    .zw-pillar-cell--hour .zw-pillar-gz {
        font-size: 1rem;
    }
}
@media (min-width: 1100px) {
    .ziwei-square-wrap {
        max-width: min(54rem, 92vw);
    }
    .ziwei-square-board {
        grid-template-rows: repeat(4, minmax(6.6rem, auto));
    }
    .zw-palace--classic .zw-main-name {
        font-size: 1.24rem;
    }
    .zw-palace--classic .zw-palace__pname {
        font-size: 0.84rem;
    }
    .zw-palace--classic .zw-palace__branch {
        font-size: 0.88rem;
    }
}
.preview-text--muted {
    color: var(--text-muted);
    font-size: 0.82rem;
}
.preview-text--muted a {
    color: color-mix(in srgb, var(--accent) 58%, var(--text-primary) 42%);
    text-decoration: underline;
    text-underline-offset: 0.12em;
}
.preview-text--muted a:hover {
    color: var(--text-primary);
}

/* 紫微结果：隐藏八字专属区块（大运、终生五行等） */
#caseDetailArea.result-mode--ziwei .lifetime-shell,
#caseDetailArea.result-mode--ziwei #palaceSection,
#caseDetailArea.result-mode--ziwei #mainFortuneSection,
#caseDetailArea.result-mode--ziwei #dayunList {
    display: none !important;
}

/* —— 侧栏品牌区 / 命理设置 / 同参提示（2026-04） —— */
.rail-header {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 0.45rem;
    flex-shrink: 0;
}

.rail-menu-btn {
    flex-shrink: 0;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 10px;
    border: 1px solid rgba(126, 96, 58, 0.22);
    background: rgba(255, 252, 244, 0.85);
    color: #3a2f22;
    font-size: 1.05rem;
    line-height: 1;
    cursor: pointer;
    transition: background 0.2s ease, border-color 0.2s ease;
}

.rail-menu-btn:hover {
    background: rgba(248, 208, 142, 0.28);
    border-color: rgba(209, 156, 76, 0.45);
}

.rail-brand-mark {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 50%;
    background: rgba(255, 252, 244, 0.92);
    border: 1px solid rgba(126, 96, 58, 0.18);
    box-shadow: 0 2px 8px rgba(40, 28, 15, 0.06);
}

.rail-brand-mark__img {
    display: block;
    width: 2.2rem;
    height: 2.2rem;
}

/* 与首页 .brand / .brand-mark-* 一致的横向 lockup（排盘侧栏） */
.rail-brand-mark--hero {
    flex-shrink: 0;
    display: grid;
    place-items: center;
    line-height: 0;
    width: auto;
    height: auto;
    border-radius: 0;
    background: transparent;
    border: none;
    box-shadow: none;
}

.rail-brand-mark--hero .rail-brand-mark__img {
    width: 56px;
    height: 56px;
    filter: drop-shadow(0 1px 2px rgba(40, 30, 18, 0.07));
}

.rail-tagline {
    margin: -0.35rem 0 0;
    padding: 0 0.35rem;
    font-size: 0.68rem;
    line-height: 1.35;
    text-align: center;
    color: rgba(47, 39, 28, 0.55);
    letter-spacing: 0.04em;
}

.rail-profile-detail {
    display: flex;
    flex-direction: column;
    gap: 0.12rem;
    padding: 0.35rem 0.45rem;
    border-radius: 10px;
    background: rgba(255, 252, 244, 0.55);
    border: 1px solid rgba(126, 96, 58, 0.12);
}

.rail-profile-nick {
    font-size: 0.78rem;
    font-weight: 650;
    color: #2f271c;
    word-break: break-all;
}

.rail-profile-member {
    font-size: 0.66rem;
    color: rgba(47, 39, 28, 0.62);
}

.rail-auth-spacer {
    flex: 1 1 auto;
    min-height: 0.5rem;
}

.rail-auth-block {
    flex-shrink: 0;
    margin-top: 0.25rem;
}

.rail-nav-group--sortable .rail-nav-item--draggable {
    cursor: grab;
}

.rail-nav-item--draggable:active {
    cursor: grabbing;
}

.rail-drag-hint {
    margin-right: 0.28rem;
    font-size: 0.62rem;
    color: rgba(47, 39, 28, 0.35);
    user-select: none;
}

.rail-nav-item--dragging {
    opacity: 0.55;
}

.rail-nav-item--drag-over {
    outline: 2px dashed rgba(209, 156, 76, 0.65);
    outline-offset: 2px;
}

.result-cross-discipline-hint {
    margin: 0.45rem 0.65rem 0;
    padding: 0.42rem 0.55rem;
    font-size: 0.76rem;
    line-height: 1.45;
    color: rgba(47, 39, 28, 0.88);
    background: rgba(248, 208, 142, 0.2);
    border: 1px solid rgba(209, 156, 76, 0.28);
    border-radius: 10px;
}

.result-open-modal-btn--primary {
    border-color: rgba(209, 156, 76, 0.55);
    background: linear-gradient(180deg, rgba(248, 208, 142, 0.5) 0%, rgba(236, 186, 88, 0.35) 100%);
}

.metaphysics-settings-overlay {
    z-index: 1300;
}

.metaphysics-settings-panel {
    width: min(520px, 92vw);
}

.metaphysics-settings-body {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.metaphysics-settings-lead,
.metaphysics-settings-note {
    font-size: 0.74rem;
    line-height: 1.45;
    color: rgba(47, 39, 28, 0.72);
    margin: 0;
}

.metaphysics-settings-field {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.metaphysics-settings-field--row {
    flex-direction: row;
    align-items: center;
    gap: 0.45rem;
}

.metaphysics-settings-subh {
    margin: 0.35rem 0 0;
    font-size: 0.78rem;
    font-weight: 700;
    color: #2f271c;
}

.metaphysics-settings-checks {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.metaphysics-settings-check {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.78rem;
    cursor: pointer;
}

.metaphysics-settings-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-top: 0.35rem;
}

@media (max-width: 767px) {
    .rail-header {
        flex-wrap: nowrap;
    }
    .metaphysics-settings-panel {
        width: min(100%, 94vw);
        max-height: 88vh;
    }
}

/* —— 左侧全宽导航（2026-04 独立排盘版） —— */
.app {
    align-items: stretch;
}

.app-rail {
    width: min(34vw, 420px);
    min-width: 320px;
    max-width: 420px;
    padding: 1.2rem 1rem;
    gap: 0.9rem;
}

/* —— 桌面侧栏 v2：品牌下登录 / 主功能 / 运势专项 / 个人中心（与产品稿一致） —— */
@media (min-width: 901px) {
    .rail-quick-settings--mobile-only {
        display: none !important;
    }
}

.app-rail--desktop-v2 {
    gap: 0.65rem;
    display: flex;
    flex-direction: column;
    flex: 1 0 auto;
    align-self: stretch;
    min-height: 100vh;
    min-height: 100dvh;
}

/* 桌面：侧栏加宽（约稿示意宽度）、固定视口左侧、主区让位，个人区沉底 */
@media (min-width: 901px) {
    .app-rail.app-rail--desktop-v2 {
        width: 22rem;
        min-width: 22rem;
        max-width: 22rem;
        padding: 1.1rem 1.05rem;
        padding-bottom: calc(1.1rem + env(safe-area-inset-bottom, 0px));
        box-sizing: border-box;
        position: fixed;
        top: 0;
        left: 0;
        z-index: 20;
        height: 100vh;
        height: 100dvh;
        min-height: 100vh;
        min-height: 100dvh;
        max-height: 100vh;
        max-height: 100dvh;
        overflow-x: hidden;
        overflow-y: auto;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
    }

    .app:has(> .app-rail.app-rail--desktop-v2) > .main {
        margin-left: 22rem;
    }

    .app-rail--desktop-v2 .rail-block--personal {
        margin-top: auto;
    }
}

.app-rail--desktop-v2 .rail-block--main {
    flex: 0 0 auto;
    min-height: 0;
    overflow: visible;
    padding-right: 0.1rem;
}

/* 服务类目：运势专项、课程等（与「我的」档案分离） */
.rail-fortune-under-main,
.rail-service-slot {
    display: flex;
    flex-direction: column;
    gap: 0.28rem;
    width: 100%;
}

.app-rail--desktop-v2 .rail-block--service {
    flex: 0 0 auto;
    min-height: 0;
}

/* 侧栏正文字号整体上调 */
.app-rail--desktop-v2 .rail-nav-item {
    font-size: 0.92rem;
    padding: 0.52rem 0.55rem;
}

.app-rail--desktop-v2 .rail-section-label--left {
    font-size: 0.84rem;
}

.app-rail--desktop-v2 .rail-login-pill,
.app-rail--desktop-v2 .rail-register-pill {
    font-size: 0.86rem;
    padding: 0.42rem 0.95rem;
}

.app-rail--desktop-v2 .rail-auth-user-nick {
    font-size: 0.98rem;
}

.app-rail--desktop-v2 .rail-auth-user-badge {
    font-size: 0.76rem;
}

.app-rail--desktop-v2 .rail-account-pill {
    font-size: 0.8rem;
    padding: 0.36rem 0.68rem;
}

.app-rail--desktop-v2 .rail-nav-ico {
    width: 1.5rem;
    height: 1.5rem;
}

.app-rail--desktop-v2 .rail-nav-ico--bazi::after,
.app-rail--desktop-v2 .rail-nav-ico--ziwei::after,
.app-rail--desktop-v2 .rail-nav-ico--qimen::after,
.app-rail--desktop-v2 .rail-nav-ico--liuren::after,
.app-rail--desktop-v2 .rail-nav-ico--qizheng::after,
.app-rail--desktop-v2 .rail-nav-ico--kezhan::after,
.app-rail--desktop-v2 .rail-nav-ico--liuyao::after,
.app-rail--desktop-v2 .rail-nav-ico--zeji::after,
.app-rail--desktop-v2 .rail-nav-ico--archive::after,
.app-rail--desktop-v2 .rail-nav-ico--fortune-topics::after,
.app-rail--desktop-v2 .rail-nav-ico--ask-teacher::after,
.app-rail--desktop-v2 .rail-nav-ico--exam-bank::after,
.app-rail--desktop-v2 .rail-nav-ico--exam-favorites::after,
.app-rail--desktop-v2 .rail-nav-ico--celebrity-db::after,
.app-rail--desktop-v2 .rail-nav-ico--celeb-favorites::after,
.app-rail--desktop-v2 .rail-nav-ico--course::after,
.app-rail--desktop-v2 .rail-nav-ico--settings::after,
.app-rail--desktop-v2 .rail-nav-ico--help::after,
.app-rail--desktop-v2 .rail-nav-ico--user::after,
.app-rail--desktop-v2 .rail-nav-ico--recharge::after,
.app-rail--desktop-v2 .rail-nav-ico--message::after {
    font-size: 0.78rem;
}

.app-rail--desktop-v2 .rail-soon-tag {
    font-size: 0.68rem;
}

.rail-brand-stack {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.45rem;
    padding-bottom: 0.35rem;
    width: 100%;
}

.rail-brand-row {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.35rem;
    width: 100%;
    min-width: 0;
}

.rail-brand-row .rail-brand-lockup {
    flex: 1 1 auto;
    min-width: 0;
    width: auto;
}

/* DeepSeek 式侧栏搜索 */
.rail-search-slot {
    position: relative;
    flex: 0 0 auto;
    width: 100%;
    padding: 0.05rem 0 0.15rem;
}

.rail-search {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    width: 100%;
    min-height: 2.15rem;
    padding: 0.35rem 0.7rem;
    border-radius: 10px;
    border: 1px solid rgba(126, 96, 58, 0.16);
    background: rgba(255, 255, 255, 0.72);
    color: rgba(70, 56, 40, 0.72);
    cursor: text;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.rail-search:hover {
    border-color: rgba(126, 96, 58, 0.28);
    background: rgba(255, 255, 255, 0.88);
}

.rail-search:focus-within {
    border-color: rgba(201, 160, 106, 0.55);
    box-shadow: 0 0 0 2px rgba(248, 208, 142, 0.28);
    background: #fff;
}

.rail-search__ico {
    flex: 0 0 auto;
    display: block;
    opacity: 0.72;
}

.rail-search__input {
    flex: 1 1 auto;
    min-width: 0;
    width: 100%;
    border: none;
    outline: none;
    background: transparent;
    color: var(--text-primary, #2f271c);
    font-size: 0.86rem;
    line-height: 1.3;
    padding: 0;
}

.rail-search__input::placeholder {
    color: rgba(70, 56, 40, 0.45);
}

.rail-search__input::-webkit-search-cancel-button {
    -webkit-appearance: none;
    appearance: none;
}

.rail-search-results {
    position: absolute;
    left: 0;
    right: 0;
    top: calc(100% + 0.28rem);
    z-index: 40;
    max-height: min(52vh, 22rem);
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 0.28rem;
    border-radius: 12px;
    border: 1px solid rgba(126, 96, 58, 0.16);
    background: rgba(255, 253, 249, 0.98);
    box-shadow: 0 10px 28px rgba(60, 42, 22, 0.14);
}

.rail-search-results__item {
    display: flex;
    align-items: center;
    width: 100%;
    margin: 0;
    padding: 0.48rem 0.62rem;
    border: none;
    border-radius: 8px;
    background: transparent;
    color: #3d2f18;
    font-size: 0.86rem;
    text-align: left;
    cursor: pointer;
}

.rail-search-results__item:hover,
.rail-search-results__item--active {
    background: rgba(201, 160, 106, 0.18);
}

.rail-search-results__empty {
    padding: 0.65rem 0.55rem;
    font-size: 0.8rem;
    color: rgba(70, 56, 40, 0.55);
    text-align: center;
}

/* DeepSeek 式侧栏收紧按钮 */
.app-rail-collapse-btn {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    margin-top: 0.35rem;
    padding: 0;
    border: none;
    border-radius: 8px;
    background: transparent;
    color: rgba(70, 56, 40, 0.62);
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}

.app-rail-collapse-btn:hover {
    background: rgba(201, 160, 106, 0.18);
    color: #5c4630;
}

.app-rail-collapse-btn:focus-visible {
    outline: 2px solid rgba(248, 208, 142, 0.7);
    outline-offset: 2px;
}

.app-rail-collapse-btn__ico {
    display: block;
}

@media (max-width: 900px) {
    .app-rail-collapse-btn {
        display: none !important;
    }
}

/* 桌面：侧栏收紧为图标轨 */
@media (min-width: 901px) {
    html.app-rail-collapsed .app-rail.app-rail--desktop-v2 {
        width: 4.35rem;
        min-width: 4.35rem;
        max-width: 4.35rem;
        padding: 0.85rem 0.4rem;
        align-items: center;
    }

    html.app-rail-collapsed .app:has(> .app-rail.app-rail--desktop-v2) > .main {
        margin-left: 4.35rem;
    }

    html.app-rail-collapsed .app-rail--desktop-v2 .rail-brand-row {
        flex-direction: column;
        align-items: center;
        gap: 0.4rem;
    }

    html.app-rail-collapsed .app-rail--desktop-v2 .rail-brand-lockup {
        justify-content: center;
        padding: 0;
        width: auto;
    }

    html.app-rail-collapsed .app-rail--desktop-v2 .rail-brand-text,
    html.app-rail-collapsed .app-rail--desktop-v2 .rail-section-label,
    html.app-rail-collapsed .app-rail--desktop-v2 .rail-soon-tag,
    html.app-rail-collapsed .app-rail--desktop-v2 .rail-drag-hint,
    html.app-rail-collapsed .app-rail--desktop-v2 .rail-auth-user-meta,
    html.app-rail-collapsed .app-rail--desktop-v2 .rail-auth-guest-pair,
    html.app-rail-collapsed .app-rail--desktop-v2 .rail-nav-item > span:not(.rail-nav-ico):not(.rail-drag-hint),
    html.app-rail-collapsed .app-rail--desktop-v2 .rail-search__input {
        display: none !important;
    }

    html.app-rail-collapsed .app-rail--desktop-v2 .rail-search {
        justify-content: center;
        width: 2.15rem;
        min-height: 2.15rem;
        padding: 0;
        margin-inline: auto;
        cursor: pointer;
    }

    html.app-rail-collapsed .app-rail--desktop-v2 .rail-search-results {
        left: calc(100% + 0.45rem);
        right: auto;
        width: 14.5rem;
        top: 0;
    }

    html.app-rail-collapsed .app-rail--desktop-v2 .rail-brand-mark--hero .rail-brand-mark__img {
        width: 36px;
        height: 36px;
    }

    html.app-rail-collapsed .app-rail--desktop-v2 .app-rail-collapse-btn {
        margin-top: 0;
        order: -1;
    }

    html.app-rail-collapsed .app-rail--desktop-v2 .rail-nav-item {
        justify-content: center;
        padding-left: 0.35rem;
        padding-right: 0.35rem;
        gap: 0;
    }

    html.app-rail-collapsed .app-rail--desktop-v2 .rail-nav-item--draggable {
        cursor: pointer;
    }

    html.app-rail-collapsed .app-rail--desktop-v2 .rail-auth-user-block {
        justify-content: center;
        padding: 0.25rem;
    }

    html.app-rail-collapsed .app-rail--desktop-v2 .rail-auth-user-avatar {
        margin: 0 auto;
    }
}

/* 与首页 .brand 一致：太极在左，中英文在右 */
.rail-brand-lockup {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 0.62rem;
    padding: 0.2rem 0.1rem 0 0;
    width: 100%;
    text-align: left;
    text-decoration: none;
    color: inherit;
    border: none;
    background: transparent;
    box-shadow: none;
    cursor: pointer;
    transition: opacity 0.2s ease;
}

.rail-brand-lockup:hover {
    opacity: 0.92;
}

.rail-brand-lockup:hover .rail-brand-title {
    color: #2a2118;
}

.rail-brand-lockup:focus-visible {
    outline: 2px solid rgba(248, 208, 142, 0.65);
    outline-offset: 3px;
    border-radius: 8px;
}

.rail-brand-text {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.05rem;
    line-height: 1.05;
    min-width: 0;
}

.rail-brand-title {
    font-family: var(--font-brand-calligraphy);
    font-size: 1.42rem;
    font-weight: 400;
    letter-spacing: 0.07em;
    color: #1e1812;
    transition: color 0.2s ease;
}

.rail-brand-sub {
    font-family: "Segoe UI", ui-sans-serif, system-ui, sans-serif;
    font-size: 0.68rem;
    font-weight: 650;
    letter-spacing: 0.18em;
    color: rgba(46, 38, 26, 0.55);
}

.rail-auth-root {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.5rem;
    margin-top: 0.15rem;
}

.rail-auth-guest-pair {
    display: flex;
    flex-direction: row;
    justify-content: center;
    gap: 0.45rem;
    flex-wrap: wrap;
}

.rail-login-pill,
.rail-register-pill {
    border: none;
    cursor: pointer;
    font-size: 0.78rem;
    padding: 0.38rem 0.85rem;
    border-radius: var(--btn-radius, 10px);
    font-weight: 600;
    color: #3a2f21;
    background: #fff;
    border: 1px solid rgba(126, 96, 58, 0.22);
    box-shadow: 0 2px 8px rgba(58, 47, 33, 0.06);
}

.rail-register-pill {
    background: linear-gradient(145deg, #f6e0c8, #e8c89a);
    border-color: rgba(184, 138, 63, 0.35);
}

.rail-login-pill--as-logout {
    background: rgba(255, 252, 247, 0.95);
    border-color: rgba(126, 96, 58, 0.22);
}

/* 个人中心内：与「我的档案 / 帮助中心」同款的纵向导航行 */
.rail-personal-account-actions {
    display: flex;
    flex-direction: column;
    gap: 0.28rem;
    width: 100%;
    margin: 0.12rem 0 0.15rem;
}

.rail-auth-user-block {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 0.55rem;
    padding: 0.45rem 0.55rem;
    border-radius: 14px;
    background: rgba(255, 252, 247, 0.92);
    border: 1px solid rgba(200, 170, 120, 0.28);
}

button.rail-auth-user-block.rail-auth-user-block--tap {
    width: 100%;
    text-align: left;
    font: inherit;
    color: inherit;
    cursor: pointer;
    appearance: none;
}

button.rail-auth-user-block.rail-auth-user-block--tap:focus-visible {
    outline: 2px solid rgba(248, 208, 142, 0.65);
    outline-offset: 2px;
}

.rail-auth-user-avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: linear-gradient(145deg, #e8d4b4, #d4b68a);
    display: grid;
    place-items: center;
    flex-shrink: 0;
    border: 1px solid rgba(126, 96, 58, 0.2);
}

.rail-auth-user-avatar__fallback {
    font-size: 1rem;
    font-weight: 700;
    color: #4a3b28;
}

.rail-auth-user-meta {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.12rem;
    min-width: 0;
}

.rail-auth-user-nick {
    font-size: 0.88rem;
    font-weight: 700;
    color: #3a2f21;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rail-auth-user-badge {
    font-size: 0.68rem;
    color: rgba(58, 47, 33, 0.58);
}

.rail-account-pills {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.35rem;
}

.rail-account-pill {
    border: none;
    cursor: pointer;
    font-size: 0.72rem;
    padding: 0.32rem 0.62rem;
    border-radius: 999px;
    background: #fff;
    color: #3a2f21;
    border: 1px solid rgba(126, 96, 58, 0.2);
    font-weight: 600;
}

.rail-account-pill--outline {
    background: transparent;
}

.rail-block {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 0.28rem;
}

.rail-section-label--left {
    text-align: left;
    font-size: 0.72rem;
    color: rgba(58, 47, 33, 0.55);
    letter-spacing: 0.06em;
    padding-left: 0.15rem;
}

.rail-section-label--fortune {
    font-weight: 600;
    color: rgba(58, 47, 33, 0.72);
}

.rail-divider {
    height: 1px;
    width: 100%;
    background: linear-gradient(90deg, transparent, rgba(126, 96, 58, 0.22), transparent);
    margin: 0.15rem 0;
}

.rail-divider--accent {
    margin: 0.35rem 0;
}

.rail-nav-item--has-ico {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 0.45rem;
    text-align: left;
}

.rail-nav-ico {
    width: 1.35rem;
    height: 1.35rem;
    flex-shrink: 0;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.55);
    border: 1px solid rgba(126, 96, 58, 0.14);
    position: relative;
}

.rail-nav-ico--bazi::after {
    content: '八';
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    font-size: 0.72rem;
    font-weight: 700;
    color: #6b4e2d;
}

.rail-nav-ico--ziwei::after {
    content: '微';
    font-size: 0.72rem;
    font-weight: 700;
    color: #6b4e2d;
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
}

.rail-nav-ico--qimen::after {
    content: '奇';
    font-size: 0.7rem;
    font-weight: 700;
    color: #6b4e2d;
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
}

.rail-nav-ico--liuren::after {
    content: '壬';
    font-size: 0.68rem;
    font-weight: 700;
    color: #6b4e2d;
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
}

.rail-nav-ico--qizheng::after {
    content: '政';
    font-size: 0.7rem;
    font-weight: 700;
    color: #6b4e2d;
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
}

.rail-nav-ico--kezhan::after {
    content: '栈';
    font-size: 0.7rem;
    font-weight: 700;
    color: #6b4e2d;
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
}

.rail-nav-ico--liuyao::after {
    content: '爻';
    font-size: 0.7rem;
    font-weight: 700;
    color: #8a7a68;
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
}

.rail-nav-ico--zeji::after {
    content: '吉';
    font-size: 0.7rem;
    font-weight: 700;
    color: #8a7a68;
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
}

.rail-nav-ico--archive::after {
    content: '档';
    font-size: 0.68rem;
    font-weight: 700;
    color: #6b4e2d;
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
}

.rail-nav-ico--course::after {
    content: '课';
    font-size: 0.68rem;
    font-weight: 700;
    color: #5a6b2d;
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
}

.rail-nav-ico--exam-bank::after {
    content: '题';
    font-size: 0.68rem;
    font-weight: 700;
    color: #6b4a8a;
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
}

.rail-nav-ico--exam-favorites::after {
    content: '藏';
    font-size: 0.68rem;
    font-weight: 700;
    color: #9a6a28;
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
}

.rail-nav-ico--celebrity-db::after {
    content: '名';
    font-size: 0.68rem;
    font-weight: 700;
    color: #7a5a2d;
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
}

/* 运势专项解读：与「课程」等同款左图标 + 文案行 */
.rail-nav-ico--fortune-topics::after {
    content: '运';
    font-size: 0.68rem;
    font-weight: 700;
    color: #8a5a2a;
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
}

.rail-nav-ico--ask-teacher::after {
    content: '师';
    font-size: 0.68rem;
    font-weight: 700;
    color: #8a5a2a;
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
}

.rail-nav-ico--settings::after {
    content: '⚙';
    font-size: 0.75rem;
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    color: #6b4e2d;
}

.rail-nav-ico--help::after {
    content: '?';
    font-size: 0.85rem;
    font-weight: 700;
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    color: #6b4e2d;
}

.rail-nav-ico--user::after {
    content: '我';
    font-size: 0.68rem;
    font-weight: 700;
    color: #6b4e2d;
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
}

.rail-nav-ico--recharge::after {
    content: '充';
    font-size: 0.68rem;
    font-weight: 700;
    color: #6b4e2d;
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
}

.rail-nav-ico--message::after {
    content: '讯';
    font-size: 0.68rem;
    font-weight: 700;
    color: #6b4e2d;
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
}

.rail-soon-tag {
    margin-left: auto;
    font-size: 0.62rem;
    padding: 0.12rem 0.38rem;
    border-radius: 999px;
    background: rgba(232, 168, 96, 0.35);
    color: #7a4a12;
    font-weight: 600;
}

.rail-nav-item--soon {
    opacity: 0.82;
    cursor: not-allowed;
}

.rail-app-badges--muted {
    opacity: 0.45;
    margin-top: auto;
}

@media (min-width: 901px) {
    .app-rail--desktop-v2 .rail-nav-group--sortable .rail-drag-hint {
        display: none;
    }
    .app-rail--desktop-v2 .rail-nav-item--draggable {
        cursor: pointer;
    }
}

.rail-header {
    justify-content: center;
}

.rail-tagline,
.rail-section-label {
    text-align: center;
}

.rail-personal,
.nav-rail-main,
.rail-auth-block,
.app-rail--desktop-v2 .rail-block {
    align-items: stretch;
}

.rail-personal .rail-nav-item,
.nav-rail-main .rail-nav-item,
.auth-bar--rail .auth-bar__btn,
.app-rail--desktop-v2 .rail-block .rail-nav-item {
    width: 100%;
    justify-content: flex-start;
    text-align: left;
}

.rail-profile-detail {
    width: 100%;
    text-align: center;
}

.rail-quick-settings {
    width: 100%;
    border: 1px solid rgba(126, 96, 58, 0.14);
    border-radius: 12px;
    padding: 0.5rem 0.6rem;
    background: rgba(255, 252, 244, 0.6);
}

.rail-quick-settings__title {
    margin: 0 0 0.35rem;
    text-align: center;
    font-size: 0.72rem;
    color: rgba(47, 39, 28, 0.7);
}

.rail-quick-settings__item {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    font-size: 0.76rem;
    margin: 0.2rem 0;
}

.qimen-datetime-row--settings {
    margin-top: 0.45rem;
    gap: 0.45rem;
    align-items: center;
}

.qimen-datetime-row--settings .select-dark {
    min-width: 8.4rem;
}

@media (max-width: 1200px) {
    .app-rail {
        width: min(38vw, 420px);
        min-width: 290px;
    }
}

@media (max-width: 900px) {
    .app {
        flex-direction: column;
    }
    body:not(:has(.hd-mobile-bottom-nav)) .app-rail {
        width: 100%;
        max-width: none;
        min-width: 0;
        height: auto;
        min-height: 0;
        position: relative;
        top: auto;
        border-right: none;
        border-bottom: 1px solid rgba(126, 96, 58, 0.14);
    }
    .main {
        width: 100%;
    }
}

.me-profile-view {
    width: 100%;
    max-width: min(480px, 100%);
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 0.5rem 0.35rem 1.75rem;
    background: transparent;
    border: none;
    box-shadow: none;
}

.me-profile-view[hidden] {
    display: none !important;
}

.me-profile-hero {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 0.85rem;
    flex-wrap: nowrap;
    padding: 0.95rem 1rem;
    background: var(--bg-card);
    border: 1px solid var(--bg-card-border);
    border-radius: 16px;
    box-shadow: 0 4px 18px rgba(58, 47, 33, 0.06);
}

.me-profile-hero__avatar {
    width: 3.35rem;
    height: 3.35rem;
    border-radius: 50%;
    flex-shrink: 0;
    display: grid;
    place-items: center;
    background: linear-gradient(160deg, color-mix(in srgb, var(--tone-cream-deep) 88%, var(--tone-gold) 12%), var(--tone-cream-deep));
    border: 1px solid color-mix(in srgb, var(--tone-gold) 45%, transparent);
    color: color-mix(in srgb, var(--text-primary) 72%, #6b5340 28%);
}

.me-profile-hero__avatar-svg {
    display: block;
    opacity: 0.88;
}

.me-profile-hero__avatar-fallback {
    font-size: 1.25rem;
    font-weight: 700;
    color: #4a3b28;
}

.me-profile-hero__meta {
    flex: 1 1 auto;
    min-width: 0;
}

.me-profile-hero__nick {
    margin: 0;
    font-size: 1.12rem;
    font-weight: 700;
    color: var(--text-primary);
    word-break: break-all;
    line-height: 1.25;
}

.me-profile-hero__subline {
    margin: 0.28rem 0 0;
    font-size: 0.78rem;
    color: var(--text-muted);
    line-height: 1.35;
}

.me-profile-hero__edit {
    flex-shrink: 0;
    margin-left: auto;
    padding: 0.38rem 0.65rem;
    font-size: 0.76rem;
    font-weight: 600;
    color: var(--text-primary);
    background: color-mix(in srgb, var(--bg-card) 92%, var(--tone-gold) 8%);
    border: 1px solid color-mix(in srgb, var(--tone-gold) 55%, var(--line-soft));
    border-radius: 10px;
    cursor: pointer;
    font-family: inherit;
    transition: background 0.15s ease, border-color 0.15s ease;
}

.me-profile-hero__edit:hover {
    background: color-mix(in srgb, var(--bg-card) 82%, var(--tone-gold) 18%);
    border-color: color-mix(in srgb, var(--tone-gold) 70%, transparent);
}

/* Plus 会员卡 */
.me-profile-member-card {
    border-radius: 16px;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--tone-gold-deep) 35%, transparent);
    background: linear-gradient(
        145deg,
        color-mix(in srgb, var(--tone-gold) 52%, #f5e6d0) 0%,
        color-mix(in srgb, var(--tone-gold) 28%, #e8d4bc) 48%,
        color-mix(in srgb, var(--tone-gold-deep) 22%, #dcc4a8) 100%
    );
    box-shadow: 0 6px 22px rgba(58, 47, 33, 0.08);
    padding: 0.85rem 0.95rem 0.75rem;
}

.me-profile-member-card__head {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    width: 100%;
    padding: 0.15rem 0.2rem 0.65rem;
    margin: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    text-align: left;
    font: inherit;
    color: inherit;
    border-radius: 10px;
    transition: background 0.15s ease;
}

.me-profile-member-card__head:hover,
.me-profile-member-card__head:focus-visible {
    background: rgba(255, 255, 255, 0.22);
    outline: none;
}

.me-profile-member-card__chev {
    flex-shrink: 0;
    font-size: 1.15rem;
    line-height: 1;
    opacity: 0.55;
}

.me-profile-member-card__subtitle {
    display: block;
    margin-top: 0.15rem;
    font-size: 0.72rem;
    line-height: 1.4;
    color: color-mix(in srgb, var(--text-primary) 58%, var(--text-muted) 42%);
    font-weight: 500;
}

.me-profile-member-card__share-hero {
    position: relative;
    display: block;
    width: 100%;
    margin: 0 0 0.55rem;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    font: inherit;
    text-align: left;
}

.me-profile-member-card__share-hero-glow {
    position: absolute;
    inset: 0;
    border-radius: 12px;
    background: linear-gradient(135deg, rgba(255, 248, 230, 0.95), rgba(255, 236, 200, 0.85));
    border: 1px solid rgba(255, 255, 255, 0.65);
    box-shadow: 0 4px 14px rgba(58, 47, 33, 0.08);
}

.me-profile-member-card__share-hero-inner {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.62rem 0.72rem;
}

.me-profile-member-card__share-hero-ico {
    flex-shrink: 0;
    font-size: 1.05rem;
    line-height: 1;
}

.me-profile-member-card__share-hero-text {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.12rem;
}

.me-profile-member-card__share-hero-text strong {
    font-size: 0.82rem;
    font-weight: 800;
    color: var(--text-primary);
}

.me-profile-member-card__share-hero-text em {
    font-style: normal;
    font-size: 0.68rem;
    line-height: 1.45;
    color: color-mix(in srgb, var(--text-primary) 62%, var(--text-muted) 38%);
}

.me-profile-member-card__share-hero-arrow {
    flex-shrink: 0;
    font-size: 1rem;
    opacity: 0.65;
}

.me-profile-member-card__invite-entry {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0.48rem 0.65rem;
    border: 1px dashed rgba(58, 47, 33, 0.22);
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.35);
    color: color-mix(in srgb, var(--text-primary) 72%, #5c4020 28%);
    font-size: 0.72rem;
    font-weight: 650;
    text-align: center;
    cursor: pointer;
    font-family: inherit;
    line-height: 1.45;
}

.me-profile-member-card__invite-entry:hover {
    background: rgba(255, 255, 255, 0.5);
}

.me-profile-member-card__row {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 0.65rem;
    padding: 0.85rem 0.95rem 0.75rem;
}

.me-profile-member-card__crown {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 50%;
    display: grid;
    place-items: center;
    flex-shrink: 0;
    background: color-mix(in srgb, #fff 55%, var(--tone-gold) 45%);
    border: 1px solid rgba(255, 255, 255, 0.65);
    color: color-mix(in srgb, var(--tone-gold-deep) 75%, #5c4020 25%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5);
}

.me-profile-member-card__copy {
    flex: 1 1 auto;
    min-width: 0;
}

.me-profile-member-card__title {
    margin: 0;
    font-size: 1.02rem;
    font-weight: 800;
    color: var(--text-primary);
    letter-spacing: 0.02em;
}

.me-profile-member-card__tagline {
    margin: 0.2rem 0 0;
    font-size: 0.74rem;
    color: color-mix(in srgb, var(--text-primary) 58%, var(--text-muted) 42%);
}

.me-profile-member-card__cta-pill {
    flex-shrink: 0;
    padding: 0.42rem 0.85rem;
    font-size: 0.76rem;
    font-weight: 700;
    color: #5c4020;
    background: rgba(255, 253, 248, 0.96);
    border: 1px solid rgba(255, 255, 255, 0.85);
    border-radius: 999px;
    cursor: pointer;
    font-family: inherit;
    box-shadow: 0 2px 8px rgba(58, 47, 33, 0.08);
    transition: transform 0.12s ease, box-shadow 0.12s ease;
}

.me-profile-member-card__cta-pill:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(58, 47, 33, 0.1);
}

.me-profile-member-card__promo {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.55rem 0.95rem;
    margin: 0;
    background: color-mix(in srgb, var(--tone-gold-deep) 22%, rgba(40, 30, 20, 0.12));
    border-top: 1px solid color-mix(in srgb, #fff 22%, transparent);
    font-size: 0.72rem;
    color: color-mix(in srgb, var(--text-primary) 75%, #fff 25%);
}

.me-profile-member-card__promo-left {
    margin: 0;
    display: flex;
    align-items: center;
    gap: 0.35rem;
    min-width: 0;
}

.me-profile-member-card__gift {
    font-size: 0.85rem;
    line-height: 1;
    opacity: 0.92;
}

.me-profile-member-card__promo-link {
    flex-shrink: 0;
    padding: 0;
    border: none;
    background: none;
    font: inherit;
    font-size: 0.72rem;
    font-weight: 650;
    color: var(--text-primary);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.15rem;
}

.me-profile-member-card__promo-link::after {
    content: '›';
    font-size: 0.95rem;
    font-weight: 700;
    opacity: 0.75;
}

.me-profile-member-card__promo-link:hover {
    text-decoration: underline;
}

/* 快捷双色块 */
.me-profile-quick--1 {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.5rem;
    margin-top: 0.5rem;
}

.me-profile-quick--2 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.5rem;
}

.me-profile-quick--3 {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.5rem;
}

.me-profile-quick--4 {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.4rem;
    margin-top: 0.5rem;
}

.me-profile-quick--4 .me-profile-quick__tile {
    min-height: 4.1rem;
    padding: 0.45rem 0.2rem;
    gap: 0.35rem;
}

.me-profile-quick--4 .me-profile-quick__tile-text {
    font-size: 0.68rem;
    letter-spacing: -0.01em;
}

.me-profile-quick--4 .me-profile-quick__ico {
    width: 1.45rem;
    height: 1.45rem;
    background-size: 0.95rem 0.95rem;
}

.me-profile-quick__tile {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    min-height: 4.35rem;
    padding: 0.55rem 0.35rem;
    border: none;
    border-radius: 14px;
    cursor: pointer;
    font-family: inherit;
    transition: transform 0.12s ease, box-shadow 0.12s ease;
}

.me-profile-quick__tile:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(58, 47, 33, 0.08);
}

.me-profile-quick__tile-text {
    font-size: 0.78rem;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
}

.me-profile-quick__ico {
    width: 1.65rem;
    height: 1.65rem;
    border-radius: 8px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 1.05rem 1.05rem;
    opacity: 0.95;
}

.me-profile-quick__tile--archive {
    background: linear-gradient(165deg, #e8f2ff, #d4e8fc);
    color: #1a5f9e;
}

.me-profile-quick__tile--archive .me-profile-quick__ico--archive {
    background-color: color-mix(in srgb, #1a5f9e 18%, transparent);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231a5f9e' stroke-width='1.7'%3E%3Cpath d='M8 6h12M8 6a2 2 0 1 0-4 0h4M8 6v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-2M6 10h12'/%3E%3C/svg%3E");
}

.me-profile-quick__tile--report {
    background: linear-gradient(165deg, #e8f7ef, #d2eedf);
    color: #1f6b45;
}

.me-profile-quick__tile--report .me-profile-quick__ico--report {
    background-color: color-mix(in srgb, #1f6b45 16%, transparent);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f6b45' stroke-width='1.7'%3E%3Cpath d='M7 4h10l1 3H6l1-3zm-1 4h12v12a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2V8z'/%3E%3Cpath d='M9 12h6M9 16h4'/%3E%3C/svg%3E");
}

.me-profile-quick__tile--orders {
    background: linear-gradient(165deg, #fff0e6, #ffe4d4);
    color: #b45309;
}

.me-profile-quick__tile--orders .me-profile-quick__ico--orders {
    background-color: color-mix(in srgb, #b45309 16%, transparent);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b45309' stroke-width='1.7'%3E%3Cpath d='M6 8h15l-1 12H7L6 8zm0 0L5 4H2'/%3E%3Ccircle cx='9' cy='20' r='1'/%3E%3Ccircle cx='18' cy='20' r='1'/%3E%3C/svg%3E");
}

.me-profile-quick__tile--exam {
    background: linear-gradient(165deg, #f3ecff, #e6dcfc);
    color: #5b3d8f;
}

.me-profile-quick__tile--exam .me-profile-quick__ico--exam {
    background-color: color-mix(in srgb, #5b3d8f 16%, transparent);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235b3d8f' stroke-width='1.7'%3E%3Cpath d='M4 19.5A2.5 2.5 0 0 1 6.5 17H20'/%3E%3Cpath d='M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z'/%3E%3C/svg%3E");
}

.me-profile-quick__tile--favorites {
    background: linear-gradient(165deg, #fff8e6, #ffefc8);
    color: #9a6700;
}

.me-profile-quick__tile--favorites .me-profile-quick__ico--favorites {
    background-color: color-mix(in srgb, #9a6700 14%, transparent);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23c9a06a' stroke='%23b8860b' stroke-width='0.6'%3E%3Cpath d='M12 17.3l-5.5 3 1.05-6.15L2.5 9.5l6.2-.9L12 3l3.3 5.6 6.2.9-4.95 4.65 1.05 6.15z'/%3E%3C/svg%3E");
}

.me-profile-quick__tile--celeb-fav {
    background: linear-gradient(165deg, #e8f2ff, #d4e8fc);
    color: #1a5f9e;
}

.me-profile-quick__tile--celeb-fav .me-profile-quick__ico--celeb-fav {
    background-color: color-mix(in srgb, #1a5f9e 18%, transparent);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231a5f9e' stroke-width='1.7'%3E%3Ccircle cx='12' cy='8' r='3.2'/%3E%3Cpath d='M5.5 19.5c1.2-3.2 3.6-4.8 6.5-4.8s5.3 1.6 6.5 4.8'/%3E%3Cpath d='M17.2 7.2l1.1-.4.4-1.1.4 1.1 1.1.4-1.1.4-.4 1.1-.4-1.1z' fill='%231a5f9e' stroke='none'/%3E%3C/svg%3E");
}

/* 更多设置 + 合规 */
.me-profile-more-card {
    background: var(--bg-card);
    border: 1px solid var(--bg-card-border);
    border-radius: 16px;
    padding: 0.85rem 0.75rem 0.75rem;
    box-shadow: 0 4px 18px rgba(58, 47, 33, 0.05);
}

.me-profile-more-card__title {
    margin: 0 0 0.45rem 0.2rem;
    font-size: 0.92rem;
    font-weight: 800;
    color: var(--text-primary);
}

.me-profile-more-rows {
    list-style: none;
    margin: 0;
    padding: 0;
}

.me-profile-more-rows > li + li {
    border-top: 1px solid var(--line-soft);
}

.me-profile-more-row {
    width: 100%;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 0.55rem;
    padding: 0.62rem 0.35rem 0.62rem 0.25rem;
    border: none;
    background: transparent;
    font: inherit;
    font-size: 0.86rem;
    font-weight: 600;
    color: var(--text-primary);
    text-align: left;
    cursor: pointer;
    border-radius: 10px;
    transition: background 0.12s ease;
}

.me-profile-more-row:hover {
    background: color-mix(in srgb, var(--tone-gold) 12%, transparent);
}

.me-profile-more-row__ico {
    width: 1.85rem;
    height: 1.85rem;
    border-radius: 10px;
    flex-shrink: 0;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 1.1rem 1.1rem;
}

.me-profile-more-row__ico--shield {
    background-color: color-mix(in srgb, var(--tone-gold) 22%, transparent);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235c4a32' stroke-width='1.6'%3E%3Cpath d='M12 3l8 4v7c0 5-3.5 9-8 10-4.5-1-8-5-8-10V7l8-4z'/%3E%3C/svg%3E");
}

.me-profile-more-row__ico--feedback {
    background-color: color-mix(in srgb, #7eb8ff 22%, transparent);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232d5a8a' stroke-width='1.6'%3E%3Cpath d='M4 6h16v10H9l-3 3v-3H4V6z'/%3E%3C/svg%3E");
}

.me-profile-more-row__ico--about {
    background-color: color-mix(in srgb, var(--tone-gold) 18%, transparent);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235c4a32' stroke-width='1.6'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 16v-1M12 8v4'/%3E%3C/svg%3E");
}

.me-profile-more-row__ico--share {
    background-color: color-mix(in srgb, #f0b27a 28%, transparent);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238a5a28' stroke-width='1.6'%3E%3Ccircle cx='18' cy='5' r='2.5'/%3E%3Ccircle cx='6' cy='12' r='2.5'/%3E%3Ccircle cx='18' cy='19' r='2.5'/%3E%3Cpath d='M8.5 13.2l7 3.6M15.5 7.2l-7 3.6'/%3E%3C/svg%3E");
}

.me-profile-more-row__label {
    flex: 1 1 auto;
    min-width: 0;
}

.me-profile-more-row__chev {
    width: 0.5rem;
    height: 0.5rem;
    flex-shrink: 0;
    border-right: 2px solid color-mix(in srgb, var(--text-primary) 35%, transparent);
    border-bottom: 2px solid color-mix(in srgb, var(--text-primary) 35%, transparent);
    transform: rotate(-45deg);
    margin-right: 0.25rem;
    opacity: 0.65;
}

.me-profile-compliance {
    margin-top: 0.75rem;
    padding: 0.75rem 0.55rem 0.55rem;
    border-radius: 14px;
    background: linear-gradient(165deg, color-mix(in srgb, var(--panel-1) 92%, var(--tone-gold) 8%), var(--panel-1));
    border: 1px solid color-mix(in srgb, var(--tone-gold) 28%, var(--line-soft));
}

.me-profile-compliance__title {
    margin: 0 0 0.5rem;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    color: color-mix(in srgb, var(--text-primary) 88%, var(--tone-gold-deep) 12%);
    text-transform: none;
}

.me-profile-compliance__grid {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.me-profile-compliance__chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.38rem 0.65rem;
    font-size: 0.72rem;
    font-weight: 650;
    color: var(--text-primary);
    text-decoration: none;
    border-radius: 999px;
    background: color-mix(in srgb, #fff 88%, var(--tone-cream) 12%);
    border: 1px solid color-mix(in srgb, var(--tone-gold) 42%, var(--line-soft));
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.85) inset;
    transition: background 0.12s ease, border-color 0.12s ease, color 0.12s ease;
}

.me-profile-compliance__chip:hover {
    background: color-mix(in srgb, var(--tone-gold) 22%, #fff 78%);
    border-color: color-mix(in srgb, var(--tone-gold) 65%, transparent);
}

.me-profile-compliance__hint {
    margin: 0.55rem 0 0;
    font-size: 0.68rem;
    line-height: 1.45;
    color: var(--text-muted);
    text-align: center;
}

.me-profile-logout {
    width: 100%;
    margin-top: 0.15rem;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    padding: 0.72rem 1rem;
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--text-primary);
    font-family: inherit;
    cursor: pointer;
    border: 1px solid color-mix(in srgb, var(--tone-gold) 38%, var(--line-soft));
    border-radius: 14px;
    background: linear-gradient(180deg, color-mix(in srgb, var(--cream) 94%, #fff 6%), var(--tone-cream-deep));
    box-shadow: 0 2px 10px rgba(58, 47, 33, 0.06);
    transition: background 0.15s ease, transform 0.12s ease;
}

.me-profile-logout:hover {
    background: linear-gradient(180deg, color-mix(in srgb, var(--tone-gold) 18%, var(--cream)), var(--tone-cream-deep));
    transform: translateY(-1px);
}

.me-profile-logout__ico {
    width: 1.15rem;
    height: 1.15rem;
    flex-shrink: 0;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233a2f21' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 17l5-5-5-5M15 12H3'/%3E%3Cpath d='M8 5V3h10v18H8v-2'/%3E%3C/svg%3E")
        center / contain no-repeat;
    opacity: 0.88;
}

.me-profile-version {
    margin: 0.35rem 0 0;
    text-align: center;
    font-size: 0.68rem;
    color: var(--text-muted);
    letter-spacing: 0.02em;
}

@media (max-width: 640px) {
    .me-profile-quick.me-profile-quick--3,
    .me-profile-quick.me-profile-quick--4 {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 0.4rem;
        margin-top: 0.15rem;
    }

    .me-profile-quick.me-profile-quick--4 {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 0.32rem;
    }

    .me-profile-quick--3 .me-profile-quick__tile,
    .me-profile-quick--4 .me-profile-quick__tile {
        min-height: 4.55rem;
        padding: 0.42rem 0.12rem 0.48rem;
        gap: 0.28rem;
    }

    .me-profile-quick--3 .me-profile-quick__tile-text,
    .me-profile-quick--4 .me-profile-quick__tile-text {
        font-size: 0.62rem;
        font-weight: 700;
        line-height: 1.25;
        letter-spacing: 0;
        max-width: 100%;
        overflow-wrap: anywhere;
    }

    .me-profile-quick--3 .me-profile-quick__ico,
    .me-profile-quick--4 .me-profile-quick__ico {
        width: 1.35rem;
        height: 1.35rem;
        background-size: 0.88rem 0.88rem;
    }
}

@media (max-width: 380px) {
    .me-profile-quick--4 {
        gap: 0.28rem;
    }

    .me-profile-quick--4 .me-profile-quick__tile {
        min-height: 3.85rem;
        padding: 0.35rem 0.12rem;
        border-radius: 12px;
    }

    .me-profile-quick--4 .me-profile-quick__tile-text {
        font-size: 0.6rem;
    }

    .me-profile-member-card__row {
        flex-wrap: wrap;
    }

    .me-profile-member-card__cta-pill {
        width: 100%;
        margin-top: 0.35rem;
    }
}

/* 个人中心弹层：遮罩加深 + 不透底，避免背后会员卡片文字叠在弹窗上 */
.me-security-overlay.fortune-panel-overlay {
    z-index: 1312;
    background: rgba(22, 14, 8, 0.58);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
}

.me-security-overlay .auth-modal-panel,
.me-plus-panel.fortune-panel,
.me-security-panel.fortune-panel {
    width: min(24rem, calc(100vw - 1.5rem));
    max-width: 24rem;
    max-height: min(92vh, 680px);
    background: #fffdf9;
    border: 1px solid rgba(196, 154, 88, 0.42);
    box-shadow:
        0 18px 48px rgba(34, 22, 10, 0.32),
        inset 0 1px 0 rgba(255, 255, 255, 0.85);
    opacity: 1;
}

.me-plus-panel.me-plus-panel--simple.fortune-panel {
    width: min(34rem, calc(100vw - 1.1rem));
    max-width: 34rem;
    max-height: min(94vh, 860px);
}

.me-plus-panel--simple .fortune-panel-title {
    font-size: 1.45rem;
    letter-spacing: 0.04em;
}

.me-plus-panel--simple .me-plus-panel__body {
    padding: 1.1rem 1.2rem 1.25rem;
}

.me-plus-simple-rule {
    margin: 0 0 0.85rem;
    padding: 0.95rem 1rem;
    border-radius: 14px;
    font-size: 1.12rem;
    font-weight: 750;
    line-height: 1.55;
    letter-spacing: 0.02em;
    text-align: center;
    color: #5c3208;
    background: linear-gradient(105deg, #fff4d6 0%, #ffe2a8 48%, #f7c86a 100%);
    border: 1px solid rgba(196, 130, 40, 0.45);
    box-shadow: 0 4px 14px rgba(180, 120, 40, 0.16);
}

.me-plus-pricing--simple {
    gap: 0.55rem;
    margin-bottom: 1rem;
}

.me-plus-panel--simple .me-plus-price-card {
    padding: 0.85rem 0.65rem 0.8rem;
}

.me-plus-panel--simple .me-plus-price-card__label {
    font-size: 0.98rem;
    margin-bottom: 0.28rem;
}

.me-plus-panel--simple .me-plus-price-card__price {
    font-size: 1.35rem;
}

.me-plus-panel--simple .me-plus-price-card__price small {
    font-size: 0.9rem;
    margin-left: 0.1rem;
}

.me-plus-panel--simple .me-plus-price-card__list {
    display: block;
    margin: 0.2rem 0 0;
    font-size: 0.9rem;
}

.me-plus-panel--simple .me-plus-kefu {
    margin: 0 0 1rem;
    padding: 1rem 0.85rem 1.05rem;
}

.me-plus-panel--simple .me-plus-kefu__title {
    font-size: 1.08rem;
    margin-bottom: 0.65rem;
}

.me-plus-panel--simple .me-plus-kefu__qr {
    width: min(220px, 58vw);
    max-width: 220px;
}

.me-plus-panel--simple .me-plus-actions__share {
    min-height: 3.1rem;
    font-size: 1.08rem;
}

.me-plus-panel--simple .me-plus-actions__pay .secondary-btn,
.me-plus-panel--simple .me-plus-actions__pay .primary-btn {
    min-height: 2.85rem;
    font-size: 0.95rem;
    padding: 0.55rem 0.4rem;
}

.me-security-overlay.fortune-panel-overlay.is-open .fortune-panel {
    transform: translateY(0) scale(1);
    opacity: 1;
}

.me-plus-panel .fortune-panel-head,
.me-security-panel .fortune-panel-head {
    padding: 0.85rem 1rem 0.75rem;
    background: #fffdf9;
    border-bottom: 1px solid rgba(196, 154, 88, 0.25);
}

.me-plus-panel .fortune-panel-title {
    font-size: 1.15rem;
}

.me-plus-panel__body.fortune-panel-body,
.me-security-panel .fortune-panel-body {
    padding: 0.85rem 1rem 1rem;
    background: #fffdf9;
}

.me-plus-pricing {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.45rem;
    margin-bottom: 0.85rem;
}

@media (min-width: 560px) {
    .me-plus-pricing {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

.me-plus-price-card--celeb {
    border-color: rgba(120, 100, 160, 0.4);
    background: linear-gradient(165deg, #f7f3fb 0%, #eee6f6 100%);
}

.me-plus-price-card__list {
    display: inline-block;
    margin-left: 0.3rem;
    font-size: 0.72rem;
    font-weight: 500;
    color: rgba(58, 42, 21, 0.45);
    text-decoration: line-through;
}

.me-plus-share-promo {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.55rem;
    margin: 0 0 0.85rem;
    padding: 0.7rem 0.85rem;
    border-radius: 12px;
    text-decoration: none;
    color: #5c3208;
    background: linear-gradient(105deg, #fff4d6 0%, #ffe2a8 48%, #f7c86a 100%);
    border: 1px solid rgba(196, 130, 40, 0.45);
    box-shadow: 0 4px 14px rgba(180, 120, 40, 0.18);
}

.me-plus-share-promo:hover {
    filter: brightness(1.03);
}

.me-plus-share-promo__tag {
    flex: 0 0 auto;
    padding: 0.12rem 0.45rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    color: #fffdf8;
    background: #b54a3a;
}

.me-plus-share-promo__text {
    flex: 1 1 auto;
    font-size: 0.86rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.35;
}

.me-plus-share-promo__text strong {
    color: #b54a3a;
}

.me-plus-share-promo__deadline {
    flex: 1 1 100%;
    font-size: 0.72rem;
    line-height: 1.4;
    color: #7a5a2e;
}

.me-plus-price-card {
    position: relative;
    padding: 0.65rem 0.5rem 0.58rem;
    border-radius: 12px;
    border: 1px solid rgba(196, 154, 88, 0.28);
    background: #fffaf2;
    text-align: center;
}

.me-plus-price-card--year {
    border-color: rgba(184, 130, 48, 0.45);
    background: linear-gradient(165deg, #fff8e6 0%, #f9ebd0 100%);
}

.me-plus-price-card--fortune {
    border-color: rgba(88, 140, 96, 0.42);
    background: linear-gradient(165deg, #f3fbf4 0%, #e6f4e8 100%);
}

.me-plus-free-note {
    margin: 0 0 0.65rem;
    font-size: 0.74rem;
    line-height: 1.45;
    color: rgba(58, 42, 21, 0.68);
    text-align: center;
}

.me-plus-price-card__badge {
    position: absolute;
    top: 0.32rem;
    right: 0.32rem;
    margin: 0;
    padding: 0.1rem 0.36rem;
    font-size: 0.62rem;
    font-weight: 700;
    color: #7a4f12;
    background: rgba(255, 236, 190, 0.96);
    border-radius: 999px;
    line-height: 1.3;
}

.me-plus-price-card__label {
    margin: 0 0 0.18rem;
    font-size: 0.78rem;
    font-weight: 650;
    color: rgba(58, 42, 21, 0.84);
}

.me-plus-price-card__price {
    margin: 0 0 0.22rem;
    font-size: 1.02rem;
    font-weight: 800;
    color: #5c3f18;
    line-height: 1.2;
}

.me-plus-price-card__price small {
    font-size: 0.7rem;
    font-weight: 600;
}

.me-plus-price-card__hint {
    margin: 0;
    font-size: 0.64rem;
    line-height: 1.38;
    color: rgba(58, 42, 21, 0.62);
}

.me-plus-benefits {
    margin: 0 0 0.75rem;
    padding: 0.62rem 0.72rem 0.62rem 1.3rem;
    border-radius: 12px;
    background: #f9f2e4;
    border: 1px solid rgba(196, 154, 88, 0.2);
    display: grid;
    gap: 0.4rem;
    list-style: disc;
}

.me-plus-benefits li {
    font-size: 0.76rem;
    line-height: 1.48;
    color: rgba(58, 42, 21, 0.9);
}

.me-plus-footnote {
    margin: 0 0 0.85rem;
    font-size: 0.68rem;
    line-height: 1.45;
    color: rgba(58, 42, 21, 0.55);
    text-align: center;
}

.me-plus-actions {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
}

.me-plus-actions__share {
    width: 100%;
    min-height: 2.65rem;
}
.me-plus-price-legend {
    margin: 0 0 0.55rem;
    font-size: 0.72rem;
    line-height: 1.4;
    color: rgba(58, 42, 21, 0.62);
    text-align: center;
    letter-spacing: 0.02em;
}

.me-plus-price-card__badge--promo {
    background: #b54a3a;
    color: #fffdf8;
}

.me-plus-price-card__meta {
    margin: 0.15rem 0 0.2rem;
    font-size: 0.68rem;
    line-height: 1.35;
    color: rgba(58, 42, 21, 0.58);
}

.me-plus-actions__hint {
    margin: 0.15rem 0 0;
    font-size: 0.7rem;
    line-height: 1.4;
    color: rgba(58, 42, 21, 0.55);
    text-align: center;
}

.me-plus-kefu {
    margin: 0.15rem 0 0.35rem;
    padding: 0.75rem 0.7rem 0.8rem;
    border-radius: 12px;
    border: 1px solid rgba(7, 193, 96, 0.28);
    background: linear-gradient(165deg, #f4fff9 0%, #eaf8f0 100%);
    text-align: center;
}

.me-plus-kefu__title {
    margin: 0 0 0.35rem;
    font-size: 0.88rem;
    font-weight: 800;
    color: #1a5c38;
    letter-spacing: 0.04em;
}

.me-plus-kefu__lead {
    margin: 0 0 0.55rem;
    font-size: 0.72rem;
    line-height: 1.5;
    color: #3d5c4a;
    text-align: left;
}

.me-plus-kefu__qr {
    display: block;
    width: 140px;
    height: auto;
    margin: 0 auto 0.35rem;
    border-radius: 10px;
    border: 1px solid rgba(7, 193, 96, 0.2);
    background: #fff;
}

.me-plus-kefu__cap {
    margin: 0;
    font-size: 0.68rem;
    line-height: 1.4;
    color: #2d6b4a;
    font-weight: 600;
}

.me-plus-actions__share {
    font-weight: 800;
    letter-spacing: 0.04em;
    background: linear-gradient(105deg, #f0c56a 0%, #e8b04a 55%, #d49a2e 100%);
    border-color: rgba(180, 120, 40, 0.45);
    color: #3a2a15;
}


.me-plus-actions__pay {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.4rem;
}

.me-plus-actions__pay .secondary-btn,
.me-plus-actions__pay .primary-btn {
    width: 100%;
    min-height: 2.45rem;
    padding: 0.45rem 0.35rem;
    font-size: 0.76rem;
    line-height: 1.25;
    white-space: normal;
}

.me-security-hint {
    margin: 0 0 0.75rem;
    font-size: 0.8rem;
    line-height: 1.55;
    color: rgba(58, 42, 21, 0.72);
}

.me-security-footnote {
    margin: 0.65rem 0 0;
    font-size: 0.72rem;
    line-height: 1.45;
    color: rgba(58, 42, 21, 0.55);
}

@media (max-width: 520px) {
    .me-plus-pricing:not(.me-plus-pricing--simple),
    .me-plus-actions__pay {
        grid-template-columns: 1fr;
    }

    .me-plus-pricing--simple {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .me-plus-simple-rule {
        font-size: 1.05rem;
        padding: 0.85rem 0.9rem;
    }
}

.me-settings-view {
    background: rgba(255, 252, 244, 0.8);
    border: 1px solid rgba(126, 96, 58, 0.14);
    border-radius: 16px;
    padding: 1rem;
}

.me-settings-title {
    margin: 0 0 0.7rem;
    color: #2f271c;
}

.me-settings-block {
    border: 1px solid rgba(126, 96, 58, 0.14);
    background: #fff;
    border-radius: 12px;
    padding: 0.7rem 0.8rem;
    margin-bottom: 0.55rem;
}

.me-settings-block h3 {
    margin: 0 0 0.3rem;
    font-size: 0.95rem;
}

.me-settings-block p {
    margin: 0;
    font-size: 0.78rem;
    color: rgba(47, 39, 28, 0.66);
}

.me-settings-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.5rem;
    margin-top: 0.45rem;
}

.me-settings-row label {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    font-size: 0.78rem;
}

.compliance-note {
    margin: 0.7rem 0 0;
    font-size: 0.74rem;
    color: rgba(47, 39, 28, 0.6);
    text-align: center;
}

.mobile-bottom-nav {
    display: none !important;
}

@media (max-width: 991px) {
    body:has(.hd-mobile-bottom-nav) {
        padding-bottom: calc(4.6rem + env(safe-area-inset-bottom));
    }

    /* 手机 App：底部四 Tab 已承担导航，隐藏桌面侧栏，避免与主区叠在一起 */
    body:has(.hd-mobile-bottom-nav) .app-rail.app-rail--desktop-v2 {
        display: none !important;
    }

    body:has(.hd-mobile-bottom-nav) .app:has(> .app-rail.app-rail--desktop-v2) > .main {
        margin-left: 0 !important;
        width: 100% !important;
        max-width: none !important;
    }

    .hd-mobile-bottom-nav a.hd-mobile-bottom-nav__btn {
        text-decoration: none;
        color: #6b6154;
    }

    body:has(.hd-mobile-bottom-nav) .ask-human-teacher-fab {
        bottom: calc(4.75rem + env(safe-area-inset-bottom));
    }
}

@media (max-width: 900px) {
    .me-settings-row {
        grid-template-columns: 1fr;
    }
}

/* 未探测到 FastAPI/Node 时页顶说明（script.js maybeShowApiBackendMissingBanner） */
.app-api-missing-banner {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1400;
    padding: 0.55rem 2.5rem 0.55rem 0.75rem;
    background: linear-gradient(90deg, #5c1a1a 0%, #7a2424 40%, #6b2020 100%);
    color: #fff8f0;
    font-family: var(--font-ui);
    font-size: 0.82rem;
    line-height: 1.45;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.22);
}

.app-api-missing-banner__inner {
    max-width: 56rem;
    margin: 0 auto;
    position: relative;
}

.app-api-missing-banner__title {
    display: block;
    font-size: 0.92rem;
    margin-bottom: 0.25rem;
}

.app-api-missing-banner__text {
    margin: 0.2rem 0 0;
    opacity: 0.95;
}

.app-api-missing-banner__cmd {
    margin: 0.35rem 0 0;
    padding: 0.35rem 0.5rem;
    background: rgba(0, 0, 0, 0.25);
    border-radius: 6px;
    font-size: 0.78rem;
    overflow-x: auto;
    white-space: pre-wrap;
    word-break: break-all;
}

.app-api-missing-banner__close {
    position: absolute;
    top: 0.15rem;
    right: 0.1rem;
    width: 2rem;
    height: 2rem;
    border: none;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
    font-size: 1.25rem;
    line-height: 1;
    cursor: pointer;
}

.app-api-missing-banner__close:hover {
    background: rgba(255, 255, 255, 0.22);
}

/* 首页命书 iframe：与排盘页同一套表单（?embedLifebook=1） */
html.embed-lifebook .app-rail,
html.embed-lifebook .mobile-bottom-nav,
html.embed-lifebook .hd-mobile-bottom-nav,
html.embed-lifebook nav.hd-mobile-bottom-nav.hd-mobile-only {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    max-height: 0 !important;
    overflow: hidden !important;
    pointer-events: none !important;
}

html.embed-lifebook #caseDetailArea,
html.embed-lifebook #baziModalOverlay,
html.embed-lifebook .bazi-modal-overlay {
    display: none !important;
}

html.embed-lifebook .site-compliance-strip,
html.embed-lifebook .site-footer {
    display: none !important;
}

html.embed-lifebook #mainContentGrid {
    display: block !important;
}

html.embed-lifebook .main-inner.view-paipan {
    padding-top: 0.35rem;
}

html.embed-lifebook .ai-hub,
html.embed-lifebook #caseArchiveView,
html.embed-lifebook #examBankView,
html.embed-lifebook #chatHistoryPageView,
html.embed-lifebook #meProfileView {
    display: none !important;
}

html.embed-lifebook #qimenResultShell,
html.embed-lifebook #liurenResultShell,
html.embed-lifebook #qizhengResultShell,
html.embed-lifebook #caseDetailArea,
html.embed-lifebook #fortuneTopicsGuideCard,
html.embed-lifebook #baziPaipanStack > :not(#unifiedPaipanShell) {
    display: none !important;
}

html.embed-lifebook .main-inner.view-qimen,
html.embed-lifebook .main-inner.view-liuren,
html.embed-lifebook .main-inner.view-qizheng {
    display: block !important;
}

html.embed-lifebook .main-inner.view-qimen #qimenResultShell,
html.embed-lifebook .main-inner.view-liuren #liurenResultShell,
html.embed-lifebook .main-inner.view-qizheng #qizhengResultShell {
    display: none !important;
}

.embed-lifebook-banner {
    display: none !important;
}

html.embed-lifebook body {
    padding-top: 0;
    padding-bottom: 0;
    background: var(--bg-page, #f7efe2);
    overflow-y: auto;
}

/* 命书 iframe 内：紧凑表单，避免几行字占满屏 */
html.embed-lifebook-compact .main-inner.view-paipan,
html.embed-lifebook-compact #mainContentGrid,
html.embed-lifebook-compact .content-grid {
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
}

html.embed-lifebook-compact #unifiedPaipanShell.unified-paipan-shell {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0.35rem 0.45rem 0.55rem !important;
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
    overflow: visible !important;
}

html.embed-lifebook .hd-menu-toggle--form,
html.embed-lifebook .hd-menu-toggle--inline,
html.embed-lifebook-compact .hd-menu-toggle--form,
html.embed-lifebook-compact .hd-menu-toggle--inline {
    display: none !important;
}

html.embed-lifebook-compact .form-shell__head,
html.embed-lifebook-compact #collapseFormWithResultBtn,
html.embed-lifebook-compact .qimen-ts-location-hint,
html.embed-lifebook-compact #qimenFormDisclaimer,
html.embed-lifebook-compact .paipan-datetime-picker__sublabels {
    display: none !important;
}

html.embed-lifebook-compact #unifiedNameRow,
html.embed-lifebook-compact #baziMode .field--name {
    display: block !important;
}

html.embed-lifebook-compact #unifiedNameRow .input-dark--name,
html.embed-lifebook-compact #baziMode .input-dark--name {
    width: 100%;
    font-size: 0.78rem;
    padding: 0.42rem 0.55rem;
    border-radius: 10px;
}

html.embed-lifebook-compact .tabs {
    display: flex !important;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin: 0 0 0.5rem;
    padding: 0;
}

html.embed-lifebook-compact .tabs .tab {
    flex: 1 1 0;
    min-width: 0;
    padding: 0.38rem 0.5rem;
    font-size: 0.74rem;
    border-radius: 999px;
}

html.embed-lifebook-compact .field:has(#quickDateTime) {
    display: block !important;
}

html.embed-lifebook-compact .field:has(#quickDateTime) .field-hint--quick {
    font-size: 0.68rem;
    margin-top: 0.25rem;
}

html.embed-lifebook-compact .quick-input-row {
    display: flex;
    gap: 0.35rem;
    align-items: stretch;
}

html.embed-lifebook-compact .quick-input-row .input-dark {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 0.78rem;
    padding: 0.4rem 0.5rem;
}

html.embed-lifebook-compact .quick-input-row .secondary-btn {
    flex-shrink: 0;
    padding: 0.38rem 0.55rem;
    font-size: 0.72rem;
    border-radius: 999px;
}

html.embed-lifebook-compact #baziMode .pillar-rows {
    gap: 0.35rem;
}

html.embed-lifebook-compact #baziMode .pillar-row {
    gap: 0.35rem;
}

html.embed-lifebook-compact #baziMode .select-dark {
    font-size: 0.78rem;
    padding: 0.38rem 0.45rem;
}

html.embed-lifebook-compact .field {
    margin-bottom: 0.45rem;
}

html.embed-lifebook-compact .field-label {
    font-size: 0.74rem;
    margin-bottom: 0.28rem;
}

html.embed-lifebook-compact .gender-toggle .gender-btn {
    padding: 0.38rem 0.55rem;
    font-size: 0.74rem;
}

html.embed-lifebook-compact .qimen-ts-location-static-head {
    font-size: 0.74rem;
    padding: 0.35rem 0.45rem;
    margin-bottom: 0.25rem;
}

html.embed-lifebook-compact .qimen-ts-location-panel {
    padding: 0.35rem 0.4rem 0.45rem;
}

html.embed-lifebook-compact .qimen-ts-location-label {
    font-size: 0.68rem;
}

html.embed-lifebook-compact .select-dark.qimen-ts-location-select {
    padding: 0.38rem 0.45rem;
    font-size: 0.78rem;
}

html.embed-lifebook-compact .paipan-datetime-picker__card {
    padding: 0.25rem 0.15rem 0.35rem;
}

html.embed-lifebook-compact .paipan-datetime-picker__card .wheel-viewport {
    height: 240px;
    max-height: 240px;
    scroll-padding-block: 96px;
}

html.embed-lifebook-compact .paipan-datetime-picker__card .wheel-item {
    height: 48px;
    font-size: 0.95rem;
}

html.embed-lifebook-compact .paipan-datetime-picker__card .wheel-item.is-selected {
    font-size: 1.05rem;
}

html.embed-lifebook-compact .paipan-datetime-picker__toolbar {
    margin-top: 0.35rem;
}

html.embed-lifebook-compact .paipan-datetime-picker__fill-btn {
    padding: 0.35rem 0.55rem;
    font-size: 0.72rem;
}

html.embed-lifebook-compact .datetime-head {
    margin-bottom: 0.25rem;
}

html.embed-lifebook-compact .cal-toggle .cal-btn {
    padding: 0.32rem 0.55rem;
    font-size: 0.72rem;
}

html.embed-lifebook-compact .unified-paipan-submit-row {
    position: sticky;
    bottom: 0;
    z-index: 2;
    margin: 0.35rem 0 0;
    padding: 0.35rem 0 max(0.15rem, env(safe-area-inset-bottom, 0px));
    background: linear-gradient(180deg, rgba(247, 239, 226, 0) 0%, rgba(247, 239, 226, 0.92) 28%, rgba(247, 239, 226, 1) 100%);
}

html.embed-lifebook-compact .primary-btn--paipan-submit-full {
    min-height: 2.65rem;
    padding: 0.55rem 0.85rem;
    font-size: 0.88rem;
}

html.embed-lifebook-compact .primary-btn-icon {
    display: none;
}

@media (max-width: 991px) {
    html.embed-lifebook-compact .paipan-datetime-picker__card .wheel-viewport {
        height: 220px;
        max-height: 220px;
        scroll-padding-block: 88px;
    }

    html.embed-lifebook-compact #unifiedPaipanShell.unified-paipan-shell {
        padding-inline: 0.15rem !important;
    }
}

/* 首页档案编辑 iframe：?embedArchiveEdit=1&editIdx=N */
html.embed-archive-edit .app-rail,
html.embed-archive-edit .mobile-bottom-nav,
html.embed-archive-edit .hd-mobile-bottom-nav,
html.embed-archive-edit .site-compliance-strip,
html.embed-archive-edit .site-footer,
html.embed-archive-edit #mainContentGrid,
html.embed-archive-edit #caseDetailArea,
html.embed-archive-edit .ai-hub,
html.embed-archive-edit #caseArchiveView,
html.embed-archive-edit #examBankView,
html.embed-archive-edit #chatHistoryPageView,
html.embed-archive-edit #meProfileView,
html.embed-archive-edit #baziModalOverlay,
html.embed-archive-edit #registerLifebookModalOverlay,
html.embed-archive-edit #fortuneTopicsArchiveModalOverlay {
    display: none !important;
}

html.embed-archive-edit #archiveEditModalOverlay.is-open {
    position: fixed !important;
    inset: 0 !important;
    z-index: 10000 !important;
    display: flex !important;
    align-items: stretch !important;
    justify-content: center !important;
    padding: 0 !important;
    background: var(--page-bg, #f7f0e4) !important;
}

html.embed-archive-edit #archiveEditModalOverlay:not(.is-open) {
    display: none !important;
}

html.embed-archive-edit #archiveEditModal {
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    max-height: 100% !important;
    margin: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

html.embed-archive-edit .archive-edit-mount {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
}

html.embed-archive-edit body {
    overflow: hidden;
}

/* ── 术数题库 ── */
.exam-bank-view {
    width: 100%;
    max-width: min(820px, 100%);
    margin: 0 auto;
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid rgba(126, 96, 58, 0.18);
    border-radius: 18px;
    padding: 1.35rem 1.15rem 1.6rem;
    box-shadow: 0 10px 32px rgba(58, 47, 33, 0.08);
}

.exam-bank-view[hidden] {
    display: none !important;
}

.exam-bank-view__head {
    margin-bottom: 1.1rem;
    text-align: center;
}

.exam-bank-view__title {
    margin: 0 0 0.35rem;
    font-size: 1.45rem;
    font-weight: 700;
    color: var(--text-primary, #3a2f21);
}

.exam-bank-view__sub {
    margin: 0;
    font-size: 0.88rem;
    color: var(--text-muted, #7a6a58);
    line-height: 1.5;
}

.exam-bank-setup {
    padding-bottom: 0.25rem;
}

.exam-bank-filters {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-bottom: 0.85rem;
}

.exam-bank-setup__hint {
    margin: 0 0 0.85rem;
    text-align: center;
    font-size: 0.86rem;
    color: var(--text-muted, #7a6a58);
    line-height: 1.5;
}

.exam-bank-setup__actions {
    display: flex;
    justify-content: center;
    margin-bottom: 0.25rem;
}

.exam-bank-confirm-btn {
    appearance: none;
    border: none;
    border-radius: 999px;
    padding: 0.62rem 2.2rem;
    font-size: 0.92rem;
    font-weight: 600;
    cursor: pointer;
    color: #3a2f21;
    background: linear-gradient(180deg, #f0d9a8 0%, #e8c078 100%);
    box-shadow: 0 4px 14px rgba(180, 140, 80, 0.22);
    transition: opacity 0.15s ease, transform 0.15s ease;
}

.exam-bank-confirm-btn:hover:not(:disabled) {
    filter: brightness(1.03);
    transform: translateY(-1px);
}

.exam-bank-confirm-btn:disabled {
    opacity: 0.45;
    cursor: not-allowed;
    box-shadow: none;
}

.exam-bank-loading {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    padding: 2rem 1rem 2.5rem;
    text-align: center;
}

.exam-bank-loading[hidden] {
    display: none !important;
}

.exam-bank-loading__spinner {
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    border: 3px solid rgba(180, 140, 80, 0.22);
    border-top-color: #c89850;
    animation: exam-bank-spin 0.75s linear infinite;
}

@keyframes exam-bank-spin {
    to {
        transform: rotate(360deg);
    }
}

.exam-bank-loading__text {
    margin: 0;
    font-size: 0.92rem;
    color: var(--text-muted, #7a6a58);
}

.exam-bank-paper {
    margin-top: 0.5rem;
    padding-top: 1rem;
    border-top: 1px dashed rgba(126, 96, 58, 0.22);
}

.exam-bank-paper__title {
    margin: 0 0 1rem;
    text-align: center;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--text-primary, #3a2f21);
}

.exam-bank-paper__title[hidden] {
    display: none !important;
}

.exam-bank-question--classic .exam-bank-question__stem {
    font-family: 'Noto Serif SC', 'Source Han Serif SC', serif;
    line-height: 1.65;
}

.exam-bank-question__tag {
    display: inline-block;
    margin-right: 0.35rem;
    padding: 0.08rem 0.4rem;
    font-size: 0.68rem;
    font-weight: 600;
    color: #8b6914;
    background: rgba(200, 152, 80, 0.15);
    border-radius: 4px;
    vertical-align: middle;
}

.exam-bank-paper[hidden] {
    display: none !important;
}

.exam-bank-filter-group__label {
    display: block;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--text-muted, #7a6a58);
    margin-bottom: 0.45rem;
    letter-spacing: 0.04em;
}

.exam-bank-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.exam-bank-chip-group {
    margin-bottom: 0.65rem;
}

.exam-bank-chip-group:last-child {
    margin-bottom: 0;
}

.exam-bank-chip-group__label {
    display: block;
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--text-muted, #7a6a58);
    margin-bottom: 0.35rem;
    letter-spacing: 0.03em;
}

.exam-bank-chips--nested {
    gap: 0.4rem;
}

.exam-bank-chip {
    appearance: none;
    border: 1px solid rgba(126, 96, 58, 0.28);
    background: var(--panel-1, #fcf9f2);
    color: var(--text-primary, #3a2f21);
    border-radius: 999px;
    padding: 0.38rem 0.85rem;
    font-size: 0.82rem;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.exam-bank-chip:hover {
    border-color: rgba(180, 140, 80, 0.55);
    background: color-mix(in srgb, var(--tone-gold, #ecc783) 12%, var(--panel-1, #fcf9f2));
}

.exam-bank-chip--active {
    border-color: rgba(180, 140, 80, 0.75);
    background: color-mix(in srgb, var(--tone-gold, #ecc783) 28%, var(--panel-1, #fcf9f2));
    font-weight: 600;
}

.exam-bank-chip:disabled {
    opacity: 0.55;
    cursor: wait;
}

.exam-bank-placeholder {
    margin: 0;
    padding: 2rem 1rem;
    text-align: center;
    color: var(--text-muted, #7a6a58);
    font-size: 0.92rem;
    line-height: 1.6;
}

.exam-bank-pager {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin: 0 0 1rem;
    padding: 0.55rem 0.65rem;
    border-radius: 10px;
    background: rgba(236, 199, 131, 0.12);
    border: 1px solid rgba(126, 96, 58, 0.12);
}

.exam-bank-pager[hidden] {
    display: none !important;
}

.exam-bank-pager__btn {
    appearance: none;
    border: 1px solid rgba(126, 96, 58, 0.3);
    background: var(--panel-1, #fcf9f2);
    color: var(--text-primary, #3a2f21);
    border-radius: 999px;
    padding: 0.38rem 0.85rem;
    font-size: 0.82rem;
    cursor: pointer;
    min-width: 4.5rem;
}

.exam-bank-pager__btn:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

.exam-bank-pager__progress {
    flex: 1;
    text-align: center;
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--text-primary, #3a2f21);
}

.exam-bank-question-list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.exam-bank-question-list--paged .exam-bank-question:not(.exam-bank-question--active) {
    display: none !important;
}

.exam-bank-question {
    border: 1px solid rgba(126, 96, 58, 0.14);
    border-radius: 12px;
    padding: 0.85rem 0.9rem;
    background: rgba(255, 255, 255, 0.5);
}

.exam-bank-question__title {
    margin: 0 0 0.5rem;
    font-size: 0.92rem;
    font-weight: 700;
    color: var(--text-primary, #3a2f21);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.exam-bank-question__title-main {
    flex: 1 1 auto;
    min-width: 0;
}

.exam-bank-fav-btn {
    flex: 0 0 auto;
    margin: 0;
    padding: 0.12rem 0.35rem;
    border: none;
    border-radius: 8px;
    background: transparent;
    color: rgba(122, 106, 88, 0.75);
    font-size: 1.15rem;
    line-height: 1;
    cursor: pointer;
    transition: color 0.15s ease, transform 0.12s ease;
}

.exam-bank-fav-btn:hover {
    color: #c9a06a;
    transform: scale(1.08);
}

.exam-bank-fav-btn--active {
    color: #c9a06a;
}

.exam-bank-question__pts {
    font-weight: 500;
    font-size: 0.75rem;
    color: var(--text-muted, #7a6a58);
}

.exam-bank-question__stem {
    margin: 0 0 0.65rem;
    font-size: 0.95rem;
    line-height: 1.55;
    color: var(--text-primary, #3a2f21);
}

.exam-bank-question__options {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.exam-bank-option {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    padding: 0.45rem 0.55rem;
    border-radius: 8px;
    border: 1px solid transparent;
    cursor: pointer;
    transition: background 0.12s ease, border-color 0.12s ease;
}

.exam-bank-option:hover {
    background: rgba(236, 199, 131, 0.12);
}

.exam-bank-option__input {
    margin-top: 0.2rem;
    flex-shrink: 0;
}

.exam-bank-option__label {
    font-size: 0.88rem;
    line-height: 1.45;
}

.exam-bank-option--correct {
    background: rgba(72, 140, 90, 0.12);
    border-color: rgba(72, 140, 90, 0.35);
}

.exam-bank-option--wrong {
    background: rgba(180, 70, 60, 0.1);
    border-color: rgba(180, 70, 60, 0.35);
}

.exam-bank-option--missed {
    outline: 1px dashed rgba(72, 140, 90, 0.5);
}

.exam-bank-option:has(.exam-bank-option__input:disabled) {
    cursor: default;
}

.exam-bank-question--answered .exam-bank-option:not(.exam-bank-option--correct):not(.exam-bank-option--wrong):not(.exam-bank-option--missed):hover {
    background: transparent;
}

.exam-bank-question__verdict {
    margin: 0.55rem 0 0;
    font-size: 0.88rem;
    font-weight: 700;
}

.exam-bank-question__verdict--ok {
    color: #3d7a4f;
}

.exam-bank-question__verdict--bad {
    color: #a05040;
}

.exam-bank-question--correct {
    border-color: rgba(72, 140, 90, 0.35);
}

.exam-bank-question--wrong {
    border-color: rgba(180, 70, 60, 0.35);
}

.exam-bank-question__explain {
    margin: 0.65rem 0 0;
    padding: 0.55rem 0.65rem;
    font-size: 0.82rem;
    line-height: 1.55;
    color: var(--text-muted, #5a5048);
    background: rgba(236, 199, 131, 0.1);
    border-radius: 8px;
}

.exam-bank-explain__answer {
    margin-bottom: 0.35rem;
}

.exam-bank-explain__cite {
    margin: 0.25rem 0 0.35rem;
    font-size: 0.8rem;
    line-height: 1.45;
    color: var(--text-primary, #3a3228);
}

.exam-bank-explain__quote,
.exam-bank-explain__point {
    margin: 0.2rem 0 0.3rem;
    font-size: 0.8rem;
    line-height: 1.5;
    color: var(--text-primary, #3a3228);
}

.exam-bank-explain__quote {
    color: #4a4036;
}

.exam-bank-explain__label {
    margin: 0.35rem 0 0.2rem;
    font-size: 0.78rem;
    color: var(--text-muted, #6a6058);
}

.exam-bank-explain__body {
    white-space: pre-wrap;
    word-break: break-word;
}

.exam-favorites-item__cite {
    display: block;
    margin-top: 0.3rem;
    line-height: 1.45;
    font-size: 0.82rem;
    color: var(--text-primary, #3a3228);
}

.exam-favorites-item__cite-label {
    display: block;
    font-weight: 650;
    font-size: 0.76rem;
    color: var(--text-muted, #6a6058);
    margin-bottom: 0.1rem;
}

.exam-favorites-item__cite-body {
    white-space: pre-wrap;
    word-break: break-word;
}

.exam-favorites-item__explain {
    display: block;
    margin-top: 0.35rem;
    line-height: 1.55;
}

.exam-favorites-item__explain-label {
    display: block;
    font-weight: 600;
    font-size: 0.78rem;
    margin-bottom: 0.15rem;
    color: var(--text-muted, #6a6058);
}

.exam-favorites-item__explain-body {
    display: block;
    white-space: pre-wrap;
    word-break: break-word;
}

.exam-bank-actions {
    margin-top: 1.25rem;
    text-align: center;
}

.exam-bank-submit-btn {
    appearance: none;
    border: none;
    border-radius: 999px;
    padding: 0.65rem 2rem;
    font-size: 0.95rem;
    font-weight: 600;
    cursor: pointer;
    color: #3a2f21;
    background: linear-gradient(180deg, #f0d9a8 0%, #e8c078 100%);
    box-shadow: 0 4px 14px rgba(180, 140, 80, 0.25);
}

.exam-bank-submit-btn:hover:not(:disabled) {
    filter: brightness(1.03);
}

.exam-bank-submit-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    box-shadow: none;
}

.exam-bank-result {
    margin-top: 1.25rem;
    padding: 1rem;
    border-radius: 12px;
    border: 1px solid rgba(126, 96, 58, 0.2);
    background: color-mix(in srgb, var(--tone-gold, #ecc783) 15%, #fff);
    text-align: center;
}

.exam-bank-result[hidden] {
    display: none !important;
}

.exam-bank-result__score {
    margin: 0 0 0.5rem;
    font-size: 1.1rem;
}

.exam-bank-result__score strong {
    font-size: 1.45rem;
    color: #8a5a2a;
}

.exam-bank-result__warn {
    margin: 0 0 0.75rem;
    font-size: 0.85rem;
    color: #a05040;
}

.exam-bank-result__retry {
    appearance: none;
    border: 1px solid rgba(126, 96, 58, 0.35);
    background: transparent;
    border-radius: 999px;
    padding: 0.4rem 1.1rem;
    font-size: 0.85rem;
    cursor: pointer;
    color: var(--text-primary, #3a2f21);
}

.exam-bank-result__retry:hover {
    background: rgba(255, 255, 255, 0.5);
}

@media (max-width: 767px) {
    .exam-bank-view {
        padding: 1rem 0.75rem 1.25rem;
        border-radius: 12px;
    }

    .exam-bank-chip {
        font-size: 0.78rem;
        padding: 0.35rem 0.7rem;
    }

    .exam-bank-paper__title {
        font-size: 0.95rem;
        margin-bottom: 0.75rem;
    }

    .exam-bank-question {
        padding: 1rem 0.85rem;
        min-height: 12rem;
    }

    .exam-bank-question__stem {
        font-size: 0.92rem;
    }

    .exam-bank-option {
        padding: 0.55rem 0.65rem;
    }

    .exam-bank-actions {
        position: sticky;
        bottom: 0;
        padding: 0.75rem 0 0.25rem;
        background: linear-gradient(180deg, transparent 0%, var(--panel-1, #fcf9f2) 35%);
    }
}

/* 收藏题目 */
.exam-favorites-modal-backdrop {
    z-index: 1310;
}

body.exam-favorites-modal-open {
    overflow: hidden;
}

/* 面板必须实色不透明，避免透过 backdrop 看到下层内容 */
.exam-favorites-modal,
.hd-modal--exam-favorites {
    width: min(94vw, 720px);
    max-height: min(88vh, 820px);
    display: flex;
    flex-direction: column;
    border-radius: 16px;
    padding: 0.55rem 0.85rem max(0.75rem, env(safe-area-inset-bottom, 0px));
    background: #fffefb;
    background: var(--hd-card, #fffefb);
    border: 1px solid rgba(126, 96, 58, 0.18);
    box-shadow: 0 18px 48px rgba(42, 30, 18, 0.14);
    color: var(--text-primary, #3a2f21);
    box-sizing: border-box;
    overflow: hidden;
}

.exam-favorites-modal__body {
    padding: 0.65rem 0.85rem 1rem;
    max-height: min(72vh, 640px);
    overflow: auto;
    background: #fffefb;
    background: var(--hd-card, #fffefb);
}

.exam-favorites-empty {
    margin: 0.75rem 0 0;
    padding: 1rem;
    text-align: center;
    font-size: 0.88rem;
    color: var(--text-muted, #7a6a58);
    border-radius: 12px;
    background: #f7f3e9;
    background: var(--hd-page, #f7f3e9);
}

.exam-favorites-list {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    margin-top: 0.65rem;
}

.exam-favorites-item {
    border: 1px solid rgba(126, 96, 58, 0.16);
    border-radius: 12px;
    padding: 0.75rem 0.85rem;
    background: #f7f3e9;
    background: var(--hd-page, #f7f3e9);
}

@media (max-width: 991px) {
    #examFavoritesModalBackdrop.exam-favorites-modal-backdrop,
    #examFavoritesModalBackdrop.hd-modal-backdrop--sheet {
        align-items: flex-end;
        justify-content: center;
        padding: max(0.45rem, env(safe-area-inset-top, 0px)) 0 0;
        background: rgba(74, 64, 52, 0.35);
        backdrop-filter: none;
    }

    #examFavoritesModalBackdrop .exam-favorites-modal,
    #examFavoritesModalBackdrop .hd-modal--exam-favorites {
        width: 100%;
        max-width: 100%;
        height: min(92dvh, 860px);
        max-height: min(92dvh, 860px);
        margin: 0;
        border-radius: 18px 18px 0 0;
        background: #fffefb;
        background: var(--hd-card, #fffefb);
        box-shadow: 0 -8px 32px rgba(42, 30, 18, 0.16);
    }

    #examFavoritesModalBackdrop .exam-favorites-modal__body {
        flex: 1 1 auto;
        min-height: 0;
        max-height: none;
        background: #fffefb;
        background: var(--hd-card, #fffefb);
    }
}

.exam-favorites-item__head {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    margin-bottom: 0.45rem;
}

.exam-favorites-item__idx {
    flex: 0 0 auto;
    width: 1.35rem;
    height: 1.35rem;
    border-radius: 999px;
    display: inline-grid;
    place-items: center;
    font-size: 0.72rem;
    font-weight: 700;
    background: rgba(201, 160, 106, 0.18);
    color: #6b4f1f;
}

.exam-favorites-item__meta {
    flex: 1 1 auto;
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    min-width: 0;
}

.exam-favorites-item__tag {
    font-size: 0.68rem;
    font-weight: 700;
    padding: 0.12rem 0.4rem;
    border-radius: 999px;
    background: rgba(58, 47, 33, 0.06);
    color: var(--text-secondary, #5c5346);
}

.exam-favorites-item__remove {
    flex: 0 0 auto;
    border: none;
    background: transparent;
    color: #c9a06a;
    font-size: 1.1rem;
    line-height: 1;
    cursor: pointer;
    padding: 0.15rem 0.25rem;
}

.exam-favorites-item__stem {
    margin: 0 0 0.5rem;
    font-size: 0.92rem;
    line-height: 1.55;
    color: var(--text-primary, #3a2f21);
}

.exam-favorites-item__opts {
    margin: 0;
    padding: 0 0 0 1rem;
    font-size: 0.84rem;
    line-height: 1.45;
    color: var(--text-secondary, #5c5346);
}

.exam-favorites-item__opt--answer {
    color: #1f6b45;
    font-weight: 700;
}

.exam-favorites-item__explain {
    margin: 0.45rem 0 0;
    font-size: 0.82rem;
    line-height: 1.5;
    color: var(--text-muted, #7a6a58);
}

/* ── 排盘录入壳：仅 embed 命书 / 注册·档案编辑挂载区可见 ── */
html:not(.embed-lifebook) #baziPaipanStack > #unifiedPaipanShell {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    max-height: 0 !important;
    overflow: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    pointer-events: none !important;
}

html:not(.embed-lifebook) .register-lifebook-mount #unifiedPaipanShell,
html:not(.embed-lifebook) .archive-edit-mount #unifiedPaipanShell,
html:not(.embed-lifebook) #archiveEditMount #unifiedPaipanShell,
#archiveEditMount #unifiedPaipanShell {
    display: block !important;
    visibility: visible !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    pointer-events: auto !important;
    margin: 0 !important;
    padding-block: 0.35rem !important;
}

/* 命书 iframe：盖过各术数主区「隐藏录入壳」规则（含七政 view-qizheng） */
html.embed-lifebook #unifiedPaipanShell,
html.embed-lifebook .main-inner.view-paipan #unifiedPaipanShell,
html.embed-lifebook .main-inner.view-qimen #unifiedPaipanShell,
html.embed-lifebook .main-inner.view-liuren #unifiedPaipanShell,
html.embed-lifebook .main-inner.view-qizheng #unifiedPaipanShell,
html.embed-lifebook .main-inner.view-qizheng.has-qizheng-result #unifiedPaipanShell,
html.embed-lifebook .main-inner.view-qizheng.qizheng-fetch-active #unifiedPaipanShell {
    display: block !important;
    visibility: visible !important;
}

.calc-paipan-prompt__question {
    padding: 0 1rem 1rem;
}

.calc-paipan-prompt__textarea {
    width: 100%;
    box-sizing: border-box;
    min-height: 6rem;
    margin-bottom: 0.75rem;
    resize: vertical;
}

.calc-paipan-prompt__confirm {
    width: 100%;
}

.calc-paipan-prompt .hd-lifebook-frame[hidden] {
    display: none !important;
}

#calcPaipanPromptQuestionPane[hidden] + .hd-lifebook-frame,
.calc-paipan-prompt #calcPaipanPromptLifebookFrame:not([hidden]) {
    min-height: min(62vh, 520px);
}

@media (max-width: 991px) {
    #calcPaipanPromptQuestionPane[hidden] + .hd-lifebook-frame,
    .calc-paipan-prompt #calcPaipanPromptLifebookFrame:not([hidden]) {
        min-height: 0;
    }
}

.qimen-inline-settings--header:not([hidden]),
.liuren-inline-settings--header:not([hidden]) {
    display: block !important;
}

.main-inner:not(.view-qimen) #qimenInlineSettingsRow {
    display: none !important;
}

.main-inner:not(.view-liuren) #liurenInlineSettingsRow {
    display: none !important;
}

/* ── 术数题库模态框 ── */
.exam-bank-modal-backdrop {
    z-index: 1100;
}

.exam-bank-modal {
    width: min(92vw, 820px);
    max-height: min(92vh, 900px);
    display: flex;
    flex-direction: column;
    border-radius: 16px;
    padding: 0.55rem 0.85rem max(0.75rem, env(safe-area-inset-bottom, 0px));
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid rgba(126, 96, 58, 0.18);
    box-shadow: 0 18px 48px rgba(42, 30, 18, 0.12);
    color: var(--text-primary, #3a2f21);
    box-sizing: border-box;
    overflow: hidden;
}

.exam-bank-modal__head {
    flex-shrink: 0;
    align-items: center;
}

.exam-bank-modal__head .hd-menu-toggle--exam {
    align-self: center;
}

.exam-bank-modal__head .hd-lifebook-close {
    align-self: center;
}

.exam-bank-modal__body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y;
}

.exam-bank-modal .exam-bank-view {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0 0 0.5rem;
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
}

.exam-bank-modal .exam-bank-view__head {
    margin-bottom: 0.85rem;
}

.exam-bank-modal .exam-bank-view__sub {
    margin: 0;
}

body.exam-bank-modal-open {
    overflow: hidden;
}

/* 手机：全屏铺满（顶到底栏上），保留底栏；底色与弹层一致，避免底栏上方双色断层 */
@media (max-width: 991px) {
    #examBankModalBackdrop.exam-bank-modal-backdrop,
    #examBankModalBackdrop.hd-modal-backdrop--sheet {
        --exam-bank-page-bg: #f7f3e9;
        z-index: 1100;
        align-items: stretch;
        justify-content: stretch;
        place-items: stretch;
        padding: 0;
        padding-bottom: calc(4.6rem + env(safe-area-inset-bottom, 0px));
        background: var(--exam-bank-page-bg);
        backdrop-filter: none;
    }

    #examBankModalBackdrop .hd-modal-sheet-handle {
        display: none !important;
    }

    #examBankModalBackdrop .exam-bank-modal,
    #examBankModalBackdrop .hd-modal--exam-bank {
        width: 100%;
        max-width: 100%;
        height: 100%;
        max-height: none;
        margin: 0;
        border: none;
        border-radius: 0;
        box-shadow: none;
        padding: max(0.35rem, env(safe-area-inset-top, 0px)) 0.75rem 0.55rem;
        display: flex;
        flex-direction: column;
        overflow: hidden;
        background: var(--exam-bank-page-bg);
    }

    #examBankModalBackdrop .exam-bank-modal__body {
        flex: 1 1 auto;
        min-height: 0;
        overflow-y: auto;
        padding-bottom: 0.85rem;
        background: transparent;
    }

    #examBankModalBackdrop .exam-bank-modal .exam-bank-view {
        background: transparent;
        min-height: 100%;
    }

    #examBankModalBackdrop .exam-bank-pager {
        position: sticky;
        top: 0;
        z-index: 5;
        margin-bottom: 0.75rem;
        background: rgba(252, 249, 242, 0.98);
        box-shadow: 0 6px 14px rgba(42, 30, 18, 0.06);
    }

    #examBankModalBackdrop .exam-bank-pager__btn:not(:disabled):not([hidden]) {
        opacity: 1;
        font-weight: 700;
        border-color: rgba(196, 146, 62, 0.55);
        background: linear-gradient(135deg, #f0d49a, #e8b86a);
        color: #2a2018;
    }

    body.exam-bank-modal-open .hd-mobile-bottom-nav,
    body:has(#examBankModalBackdrop:not([hidden])) .hd-mobile-bottom-nav {
        display: flex !important;
        z-index: 1200;
    }
}

/* ── 七政四余 · 手机端（≤768）：顶栏四柱隐藏、字号缩小、微调分行 ── */
@media screen and (max-width: 768px) {
    #qizhengResultShell .qizheng-result-shell__pillars-panel .qizheng-result-pillars-row,
    #qizhengResultShell .qizheng-result-shell__pillars-panel .qizheng-result-fourpillars,
    #qizhengResultShell .qizheng-result-shell__pillars-panel .qizheng-result-pillars-caption {
        display: none !important;
    }

    #qizhengResultShell .qizheng-result-shell__pillars-panel {
        margin: 0 0 0.35rem !important;
        padding: 0.35rem 0.5rem !important;
    }

    #qizhengResultShell .qizheng-result-when,
    #qizhengResultShell .qizheng-result-place,
    #qizhengResultShell .qizheng-result-calc-line {
        font-size: 0.7rem !important;
        line-height: 1.35 !important;
    }

    #qizhengResultShell .result-shell-title {
        font-size: 0.92rem !important;
    }

    #qizhengResultShell .qizheng-result-shell__pillar-actions .paipan-result-datetime-btn,
    #qizhengResultShell .qizheng-result-shell__pillar-actions .qizheng-repaipan-btn {
        font-size: 0.6rem !important;
        padding: 0.28rem 0.15rem !important;
        min-height: 1.9rem !important;
    }

    #qizhengResultShell .qizheng-wheel-stage--moira {
        position: relative !important;
        min-height: 0 !important;
        padding: 0 !important;
        margin: 0 !important;
        width: 100vw !important;
        max-width: none !important;
        margin-left: calc(50% - 50vw) !important;
        background: radial-gradient(ellipse at 50% 42%, #faf6ee 0%, #f0e8d8 68%, #e8dcc8 100%) !important;
        border: none !important;
        box-shadow: none !important;
        border-radius: 0 !important;
        overflow: hidden !important;
    }

    #qizhengResultShell .qizheng-wheel-zoom-viewport {
        width: 100% !important;
        height: 100vw !important;
        max-height: min(100vw, 92dvh) !important;
        overflow: hidden !important;
        touch-action: pan-y !important;
        scrollbar-width: none !important;
        -ms-overflow-style: none !important;
    }

    #qizhengResultShell .qizheng-wheel-zoom-viewport::-webkit-scrollbar {
        display: none !important;
        width: 0 !important;
        height: 0 !important;
    }

    #qizhengResultShell .qizheng-wheel-zoom-sizer {
        position: relative;
    }

    #qizhengResultShell .qizheng-wheel-zoom-inner {
        transform-origin: 0 0;
        backface-visibility: hidden;
        -webkit-backface-visibility: hidden;
    }

    #qizhengResultShell .qizheng-wheel-stage--moira .qizheng-wheel-svg {
        width: 100%;
        max-width: none !important;
        max-height: none !important;
        height: auto !important;
        aspect-ratio: 1 / 1 !important;
        display: block !important;
        margin: 0 !important;
    }

    #qizhengResultShell .qizheng-pan-area {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        position: relative !important;
        gap: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        border-radius: 0 !important;
        border: none !important;
        background: transparent !important;
        box-shadow: none !important;
        overflow: visible !important;
    }

    #qizhengResultShell .qizheng-chart-info-card {
        position: relative !important;
        top: auto !important;
        left: auto !important;
        z-index: 2 !important;
        order: -1;
        width: 100% !important;
        max-width: none !important;
        max-height: none !important;
        margin: 0 0 0.25rem !important;
        font-size: 0.72rem !important;
        padding: 0.35rem 0.45rem !important;
        border: 1px solid rgba(160, 130, 80, 0.28) !important;
        border-radius: 10px !important;
        background: rgba(255, 252, 245, 0.96) !important;
        box-shadow: none !important;
    }

    #qizhengResultShell .qizheng-chart-info-card__pillars {
        font-size: 0.82rem !important;
        margin: 0 !important;
    }

    #qizhengResultShell .qizheng-quick-bar--corner {
        top: 0.2rem !important;
        right: 0.2rem !important;
        max-width: min(11.5rem, 56%) !important;
        gap: 0.2rem !important;
        padding: 0.22rem 0.24rem !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        z-index: 8 !important;
    }

    #qizhengResultShell .qizheng-quick-top-row {
        display: flex !important;
        flex-direction: row !important;
        align-items: stretch !important;
        gap: 0.2rem !important;
        width: 100% !important;
    }

    #qizhengResultShell .qizheng-quick-mobile-only {
        display: block !important;
    }

    #qizhengResultShell .qizheng-quick-info-menu {
        display: none !important;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 0.15rem !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0.15rem 0 0 !important;
        border-top: 1px solid rgba(160, 130, 80, 0.22);
    }

    #qizhengResultShell .qizheng-quick-info-menu.is-open {
        display: flex !important;
    }

    #qizhengResultShell .qizheng-quick-bar--corner .qizheng-quick-btn {
        display: block !important;
        width: 100% !important;
        font-size: 0.62rem !important;
        padding: 0.28rem 0.32rem !important;
        line-height: 1.3 !important;
        text-align: center !important;
    }

    #qizhengResultShell .qizheng-quick-top-row > .qizheng-quick-btn {
        flex: 1 1 0 !important;
        width: auto !important;
        min-width: 0 !important;
        font-size: 0.66rem !important;
        font-weight: 700 !important;
        padding: 0.34rem 0.28rem !important;
        white-space: nowrap !important;
    }

    #qizhengResultShell .qizheng-quick-btn--info-menu.is-open,
    #qizhengResultShell .qizheng-quick-btn--pan-opts.is-open {
        background: linear-gradient(180deg, #f0d49a, #e0b56a) !important;
        border-color: rgba(160, 120, 50, 0.55) !important;
        font-weight: 700 !important;
    }

    #qizhengResultShell .qizheng-sidereal-corner.qizheng-sidereal-corner--panel {
        position: static !important;
        left: auto !important;
        bottom: auto !important;
        max-width: none !important;
        width: 100% !important;
        margin-top: 0.2rem !important;
        padding: 0.32rem 0.28rem !important;
        border: 1px solid rgba(160, 130, 80, 0.35) !important;
        border-radius: 8px !important;
        background: rgba(255, 252, 245, 0.98) !important;
        box-shadow: 0 4px 14px rgba(40, 28, 12, 0.12) !important;
        gap: 0.22rem !important;
    }

    #qizhengResultShell .qizheng-sidereal-corner.qizheng-sidereal-corner--panel:not(.is-open) {
        display: none !important;
    }

    #qizhengResultShell .qizheng-sidereal-corner.qizheng-sidereal-corner--panel .qizheng-sidereal-corner__select,
    #qizhengResultShell .qizheng-sidereal-corner.qizheng-sidereal-corner--panel .qizheng-sidereal-corner__transit-btn {
        max-width: none !important;
        width: 100% !important;
    }

    #qizhengResultShell .qizheng-wheel-stage > .qizheng-sidereal-corner:not(.qizheng-sidereal-corner--panel) {
        display: none !important;
    }

    #qizhengFineTuneBar.qizheng-fine-tune--bottom,
    #qizhengBottomBarMount .qizheng-fine-tune--bottom {
        padding: 0.4rem 0.35rem !important;
        font-size: 0.75rem !important;
    }

    /* 流年时间 + 出生信息 + 快速输入同一行；真太阳时下一行 */
    #qizhengFineTuneBar .qizheng-time-stack,
    #qizhengBottomBarMount .qizheng-time-stack {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: wrap !important;
        align-items: flex-end !important;
        gap: 0.28rem 0.32rem !important;
        width: 100% !important;
    }

    #qizhengFineTuneBar .qizheng-time-col--transit,
    #qizhengBottomBarMount .qizheng-time-col--transit {
        order: 1 !important;
        flex: 1 1 34% !important;
        width: auto !important;
        min-width: 0 !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 0 !important;
        border: none !important;
    }

    #qizhengFineTuneBar .qizheng-time-col--birth,
    #qizhengBottomBarMount .qizheng-time-col--birth {
        order: 2 !important;
        display: flex !important;
        flex-direction: column !important;
        flex-wrap: nowrap !important;
        align-items: stretch !important;
        gap: 0.22rem !important;
        flex: 1 1 58% !important;
        width: auto !important;
        min-width: 0 !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 0 !important;
        border: none !important;
    }

    #qizhengFineTuneBar .qizheng-time-col--loc,
    #qizhengBottomBarMount .qizheng-time-col--loc {
        order: 3 !important;
        flex: 1 1 100% !important;
        width: 100% !important;
        max-width: none !important;
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        gap: 0.28rem !important;
        margin: 0.1rem 0 0 !important;
        padding: 0.28rem 0 0 !important;
        border: none !important;
        border-top: 1px dashed rgba(160, 130, 80, 0.22) !important;
    }

    #qizhengFineTuneBar .qizheng-time-row--birth,
    #qizhengBottomBarMount .qizheng-time-row--birth,
    #qizhengFineTuneBar .qizheng-time-row--transit,
    #qizhengBottomBarMount .qizheng-time-row--transit {
        flex: 0 0 auto !important;
        flex-direction: column !important;
        align-items: stretch !important;
        min-width: 0 !important;
        width: 100% !important;
        gap: 0.12rem !important;
    }

    #qizhengFineTuneBar .qizheng-fine-tune__label,
    #qizhengBottomBarMount .qizheng-fine-tune__label,
    #qizhengFineTuneBar .qizheng-birth-quick__label,
    #qizhengBottomBarMount .qizheng-birth-quick__label {
        display: block !important;
        width: 100% !important;
        font-size: 0.58rem !important;
        font-weight: 700 !important;
        margin: 0 0 0.08rem !important;
        line-height: 1.2 !important;
        white-space: nowrap !important;
    }

    #qizhengFineTuneBar .qizheng-fine-tune__when--transit,
    #qizhengBottomBarMount .qizheng-fine-tune__when--transit {
        font-size: 0.62rem !important;
        line-height: 1.25 !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }

    #qizhengFineTuneBar .qizheng-fine-tune__controls,
    #qizhengBottomBarMount .qizheng-fine-tune__controls,
    #qizhengFineTuneBar .qizheng-time-row--transit .qizheng-fine-tune__controls,
    #qizhengBottomBarMount .qizheng-time-row--transit .qizheng-fine-tune__controls {
        display: flex !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        gap: 0.16rem !important;
        width: 100% !important;
    }

    #qizhengFineTuneBar .qizheng-fine-tune__step-btn,
    #qizhengBottomBarMount .qizheng-fine-tune__step-btn,
    #qizhengFineTuneBar .qizheng-fine-tune__action-btn,
    #qizhengBottomBarMount .qizheng-fine-tune__action-btn,
    #qizhengFineTuneBar .qizheng-birth-quick__btn,
    #qizhengBottomBarMount .qizheng-birth-quick__btn {
        min-height: 1.55rem !important;
        height: 1.55rem !important;
        padding: 0 0.28rem !important;
        font-size: 0.58rem !important;
        line-height: 1 !important;
        flex: 0 0 auto !important;
    }

    #qizhengFineTuneBar .qizheng-fine-tune__unit,
    #qizhengBottomBarMount .qizheng-fine-tune__unit {
        flex: 1 1 auto !important;
        min-width: 0 !important;
        min-height: 1.55rem !important;
        height: 1.55rem !important;
        font-size: 0.58rem !important;
        padding: 0 0.15rem !important;
    }

    #qizhengFineTuneBar .qizheng-birth-datetime-selects,
    #qizhengBottomBarMount .qizheng-birth-datetime-selects {
        display: grid !important;
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: 0.14rem !important;
        width: 100% !important;
    }

    #qizhengFineTuneBar .qizheng-birth-select,
    #qizhengBottomBarMount .qizheng-birth-select {
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        font-size: 0.58rem !important;
        min-height: 1.55rem !important;
        height: 1.55rem !important;
        padding: 0 0.08rem !important;
    }

    #qizhengFineTuneBar .qizheng-birth-quick,
    #qizhengBottomBarMount .qizheng-birth-quick {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        flex: 0 0 auto !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        gap: 0.12rem !important;
    }

    #qizhengFineTuneBar .qizheng-birth-quick__row,
    #qizhengBottomBarMount .qizheng-birth-quick__row {
        width: 100% !important;
        display: flex !important;
        flex-wrap: nowrap !important;
        gap: 0.14rem !important;
    }

    #qizhengFineTuneBar .qizheng-birth-quick__input,
    #qizhengBottomBarMount .qizheng-birth-quick__input {
        flex: 1 1 auto !important;
        width: auto !important;
        min-width: 0 !important;
        max-width: none !important;
        font-size: 0.58rem !important;
        min-height: 1.55rem !important;
        height: 1.55rem !important;
        padding: 0 0.2rem !important;
    }

    #qizhengFineTuneBar .qizheng-birth-quick__hint,
    #qizhengBottomBarMount .qizheng-birth-quick__hint {
        display: none !important;
    }

    #qizhengFineTuneBar .qizheng-time-col--loc > .qizheng-fine-tune__label,
    #qizhengBottomBarMount .qizheng-time-col--loc > .qizheng-fine-tune__label {
        flex: 0 0 auto !important;
        width: auto !important;
        margin-bottom: 0 !important;
        white-space: nowrap !important;
    }

    #qizhengFineTuneBar .qizheng-time-col--loc .qizheng-time-col__loc-row,
    #qizhengBottomBarMount .qizheng-time-col--loc .qizheng-time-col__loc-row {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        flex: 1 1 auto !important;
        width: auto !important;
        max-width: none !important;
        gap: 0.28rem !important;
        min-width: 0 !important;
    }

    #qizhengFineTuneBar .qizheng-time-col--loc .qizheng-fine-tune__select,
    #qizhengBottomBarMount .qizheng-time-col--loc .qizheng-fine-tune__select {
        flex: 1 1 0 !important;
        width: auto !important;
        max-width: none !important;
        min-width: 0 !important;
        font-size: 0.62rem !important;
        min-height: 1.55rem !important;
        height: 1.55rem !important;
        padding: 0 0.2rem !important;
    }

    /* 宿度制等：手机端改由右上角「盘制设置」面板承载，勿再叠左下角 */
    #qizhengResultShell .qizheng-sidereal-corner:not(.qizheng-sidereal-corner--panel) {
        display: none !important;
    }

    #qizhengResultShell .qizheng-sidereal-corner__select {
        font-size: 0.68rem !important;
        min-height: 1.65rem !important;
        height: auto !important;
        padding: 0.18rem 0.35rem !important;
        line-height: 1.3 !important;
        color: #3a2f21 !important;
        -webkit-text-fill-color: #3a2f21 !important;
        background: #fffdf8 !important;
    }

    #qizhengResultShell .qizheng-sidereal-corner__transit-btn {
        font-size: 0.68rem !important;
        min-height: 1.7rem !important;
        padding: 0.2rem 0.4rem !important;
    }

    #qizhengResultShell .qizheng-quick-bar--corner .qizheng-quick-btn {
        font-size: 0.68rem !important;
        padding: 0.28rem 0.45rem !important;
    }
}


/* === SITE_BTN_RADIUS_UNIFY === */
/* 全站操作按钮强制统一为 --btn-radius，覆盖历史 999px 胶囊 */
.primary-btn,
.secondary-btn,
.qimen-action-btn,
.qimen-sheet-btn,
.qimen-show-paipan-btn,
.paipan-result-datetime-btn,
.liuren-repaipan-btn,
.bazi-repaipan-btn,
.qizheng-repaipan-btn,
.qizheng-pillar-action-btn,
.result-open-modal-btn,
.result-copy-for-ai-btn,
.result-export-facts-btn,
.result-edit-case-btn,
.metaphysics-pillar-quick__btn,
.paipan-datetime-picker__fill-btn,
.hd-cta,
button.hd-cta,
.hd-cta--small,
.hd-cta--outline,
.auth-primary-btn,
.auth-secondary-btn,
.fortune-unlock-actions .primary-btn,
.fortune-unlock-actions .secondary-btn,
.rail-login-pill,
.rail-register-pill,
.qimen-result-actions .primary-btn,
.qimen-result-actions .qimen-sheet-btn,
.liuren-result-actions .primary-btn,
.liuren-result-actions .qimen-sheet-btn,
.qizheng-result-actions .primary-btn,
.qizheng-result-actions .qimen-sheet-btn {
    border-radius: var(--btn-radius, 10px) !important;
}

@media (max-width: 768px) {
    .secondary-btn,
    .primary-btn:not(.register-lifebook-save-btn):not(.archive-edit-save-btn),
    .fortune-unlock-actions .primary-btn,
    .fortune-unlock-actions .secondary-btn,
    .qimen-result-actions .primary-btn,
    .qimen-result-actions .qimen-action-btn,
    .qimen-result-actions .qimen-sheet-btn,
    .qimen-result-actions .paipan-result-datetime-btn,
    .liuren-result-actions .primary-btn,
    .liuren-result-actions .qimen-action-btn,
    .liuren-result-actions .paipan-result-datetime-btn,
    .qizheng-result-actions .primary-btn,
    .qizheng-result-actions .qimen-action-btn {
        border-radius: var(--btn-radius, 10px) !important;
    }
}


/* === SITE_MOBILE_BTN_TEXT_WRAP === */
/* 手机端：操作按钮文案完整换行显示，禁止挤成一行截断 */
@media (max-width: 768px) {
    .primary-btn,
    .secondary-btn,
    .qimen-action-btn,
    .qimen-sheet-btn,
    .paipan-result-datetime-btn,
    .qimen-show-paipan-btn,
    .liuren-repaipan-btn,
    .bazi-repaipan-btn,
    .qizheng-repaipan-btn,
    .qizheng-pillar-action-btn,
    .result-open-modal-btn,
    .result-copy-for-ai-btn,
    .result-export-facts-btn,
    .result-edit-case-btn,
    .metaphysics-pillar-quick__btn,
    .auth-primary-btn,
    .auth-secondary-btn,
    .hd-cta,
    .hd-cta--small,
    .hd-cta--outline,
    .hd-btn-primary,
    .hd-nav-btn,
    .hd-footer__link-btn,
    .ph-tool-tile,
    .ph-notice__ok,
    .fortune-unlock-actions .primary-btn,
    .fortune-unlock-actions .secondary-btn,
    .qimen-result-top-toolbar .primary-btn,
    .qimen-result-top-toolbar .qimen-action-btn,
    .qimen-result-top-toolbar .qimen-sheet-btn,
    .qimen-result-top-toolbar .paipan-result-datetime-btn,
    .liuren-result-top-toolbar .primary-btn,
    .liuren-result-top-toolbar .qimen-action-btn,
    .liuren-result-top-toolbar .paipan-result-datetime-btn,
    .qimen-result-actions .primary-btn,
    .qimen-result-actions .qimen-action-btn,
    .qimen-result-actions .qimen-sheet-btn,
    .qimen-result-actions .paipan-result-datetime-btn,
    .liuren-result-actions .primary-btn,
    .liuren-result-actions .qimen-action-btn,
    .liuren-result-actions .paipan-result-datetime-btn,
    .qizheng-result-actions .primary-btn,
    .qizheng-result-actions .qimen-action-btn,
    .result-shell-actions .result-copy-for-ai-btn,
    .result-shell-actions .result-export-facts-btn {
        white-space: normal !important;
        overflow-wrap: anywhere !important;
        word-break: break-word !important;
        height: auto !important;
        max-width: none !important;
        line-height: 1.35 !important;
        text-align: center;
    }
}
/* ===== 全站隐藏滚动条视觉（保留滚动；覆盖局部 thin 规则） ===== */
html,
body {
    scrollbar-width: none;
    -ms-overflow-style: none;
}
html::-webkit-scrollbar,
body::-webkit-scrollbar {
    width: 0;
    height: 0;
    display: none;
}
*,
*::before,
*::after {
    scrollbar-width: none !important;
    -ms-overflow-style: none !important;
    scrollbar-gutter: auto !important;
}
*::-webkit-scrollbar,
*::-webkit-scrollbar-button,
*::-webkit-scrollbar-thumb,
*::-webkit-scrollbar-track,
*::-webkit-scrollbar-corner,
*::-webkit-resizer {
    width: 0 !important;
    height: 0 !important;
    display: none !important;
    background: transparent !important;
}