/**
 * 小程序样式 1:1 移植（wxss 自动换算：rpx → var(--rpx)）
 * --rpx：手机端 100vw/750（与小程序完全同比例）；PC 端固定 0.5px（375px 列宽居中，保持小程序观感）
 */
:root { --rpx: calc(100vw / 750); }
@media (min-width: 768px) {
    :root { --rpx: 0.5px; }
    body { background: #e7e5e4 !important; }
    .mp-shell {
        max-width: 420px; margin: 0 auto; min-height: 100vh;
        box-shadow: 0 0 24px rgba(0,0,0,0.12);
    }
}
/* 小程序外壳（顶栏/底栏），手机与 PC 列内都显示 */
.mp-topbar {
    background: #7f1d1d; color: #fff; text-align: center;
    font-size: calc(32 * var(--rpx)); font-weight: 600;
    padding: calc(18 * var(--rpx)) 0;
    position: sticky; top: 0; z-index: 40;
}
.mp-tabbar {
    display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 40;
    background: #fff; border-top: 1px solid #e7e5e4;
    padding-bottom: env(safe-area-inset-bottom);
}
@media (min-width: 768px) {
    .mp-tabbar { left: 50%; right: auto; width: 420px; transform: translateX(-50%); }
}
.mp-tab {
    flex: 1; display: flex; flex-direction: column; align-items: center;
    padding: calc(12 * var(--rpx)) 0 calc(8 * var(--rpx));
    color: #78716c; text-decoration: none;
}
.mp-tab img { width: calc(44 * var(--rpx)); height: calc(44 * var(--rpx)); }
.mp-tab span { font-size: calc(20 * var(--rpx)); margin-top: calc(2 * var(--rpx)); }
.mp-tab.active { color: #7f1d1d; }

/* WXML 标签映射：view/text 默认 block/inline 行为对齐 */
view { display: block; }
/* ==== miniprogram/pages/index/index.wxss ==== */
.mp-shell {
    background: #f5f5f4;
    color: #292524;
    font-size: calc(28 * var(--rpx));
}

.page { padding: calc(24 * var(--rpx)) calc(24 * var(--rpx)) calc(60 * var(--rpx)); }

/* 标题 */
.header { text-align: center; padding: calc(24 * var(--rpx)) 0 calc(32 * var(--rpx)); }
.title { font-size: calc(52 * var(--rpx)); font-weight: bold; color: #7f1d1d; letter-spacing: calc(12 * var(--rpx)); }
.subtitle { font-size: calc(24 * var(--rpx)); color: #78716c; margin-top: calc(8 * var(--rpx)); }
.records-link { font-size: calc(24 * var(--rpx)); color: #0369a1; margin-top: calc(12 * var(--rpx)); }

/* 主卡片 */
.card { background: white; border-radius: calc(24 * var(--rpx)); box-shadow: 0 calc(8 * var(--rpx)) calc(24 * var(--rpx)) rgba(0,0,0,0.08); overflow: hidden; }
.section { padding: calc(28 * var(--rpx)) calc(32 * var(--rpx)); border-bottom: calc(1 * var(--rpx)) solid #e7e5e4; }

.label { font-size: calc(24 * var(--rpx)); font-weight: 600; color: #57534e; margin-bottom: calc(12 * var(--rpx)); }
.input {
    background: white; border: calc(1 * var(--rpx)) solid #d6d3d1; border-radius: calc(12 * var(--rpx));
    padding: calc(20 * var(--rpx)) calc(24 * var(--rpx)); font-size: calc(28 * var(--rpx)); margin-bottom: calc(16 * var(--rpx));
}
.picker {
    background: white; border: calc(1 * var(--rpx)) solid #d6d3d1; border-radius: calc(12 * var(--rpx));
    padding: calc(20 * var(--rpx)) calc(24 * var(--rpx)); font-size: calc(28 * var(--rpx)); color: #292524;
}
.picker-empty { color: #a8a29e; }

/* 快捷类型 */
.chips { display: flex; flex-wrap: wrap; gap: calc(12 * var(--rpx)); margin-top: calc(16 * var(--rpx)); align-items: center; }
.chips-label { font-size: calc(22 * var(--rpx)); color: #a8a29e; }
.chip {
    font-size: calc(24 * var(--rpx)); color: #57534e; background: white;
    border: calc(1 * var(--rpx)) solid #d6d3d1; border-radius: calc(999 * var(--rpx)); padding: calc(6 * var(--rpx)) calc(20 * var(--rpx));
}
.chip-active { background: #991b1b; border-color: #991b1b; color: white; }

/* 摇卦区 */
.cast-area { text-align: center; }
.status {
    display: inline-block; padding: calc(8 * var(--rpx)) calc(28 * var(--rpx)); border-radius: calc(999 * var(--rpx));
    background: #fef2f2; color: #991b1b; font-size: calc(24 * var(--rpx)); margin-bottom: calc(28 * var(--rpx));
}
.status-shaking { background: #fffbeb; color: #92400e; }
.cast-flex { display: flex; align-items: center; justify-content: center; }

/* 铜钱（透明底图片，rotateY 翻转不露背） */
.coins { display: flex; gap: calc(28 * var(--rpx)); }
.coin-wrapper { display: flex; flex-direction: column; align-items: center; gap: calc(8 * var(--rpx)); }
.coin-flip {
    width: calc(110 * var(--rpx)); height: calc(110 * var(--rpx)); position: relative;
    transform-style: preserve-3d;
    transition: transform 0.5s ease;
}
.coin-img {
    position: absolute; left: 0; top: 0; width: 100%; height: 100%;
    backface-visibility: hidden;
}
.coin-back-img { transform: rotateY(180deg); }
.coin-back-show { transform: rotateY(180deg); }
.coin-spin { animation: flip 0.5s linear infinite; }
@keyframes flip {
    from { transform: rotateY(0deg); }
    to { transform: rotateY(360deg); }
}
.coin-hint { font-size: calc(22 * var(--rpx)); color: #a8a29e; }

/* 已摇记录 */
/* 已摇记录：摇卦区下方纵向，由下至上（第6次在上、初爻在下） */
.cast-list { display: flex; flex-direction: column; align-items: center; gap: calc(10 * var(--rpx)); margin-top: calc(24 * var(--rpx)); }
.cast-tag {
    display: flex; align-items: center; gap: calc(16 * var(--rpx));
    background: #fafaf9; border: calc(1 * var(--rpx)) solid #e7e5e4; border-radius: calc(8 * var(--rpx));
    padding: calc(8 * var(--rpx)) calc(16 * var(--rpx)); font-size: calc(22 * var(--rpx));
}
.cast-num { color: #78716c; }
.cast-mark { color: #b91c1c; font-weight: bold; width: calc(32 * var(--rpx)); text-align: center; }
.cast-name { color: #57534e; }

.tip { font-size: calc(22 * var(--rpx)); color: #a8a29e; margin-top: calc(24 * var(--rpx)); }
.btn-reset {
    margin-top: calc(20 * var(--rpx)); display: inline-block; font-size: calc(26 * var(--rpx));
    border: calc(1 * var(--rpx)) solid #d6d3d1; border-radius: calc(12 * var(--rpx)); padding: calc(10 * var(--rpx)) calc(40 * var(--rpx));
    background: white; color: #57534e;
}

/* 卦名横幅 */
.gua-banner { background: #7f1d1d; padding: calc(28 * var(--rpx)); text-align: center; }
.gua-name { font-size: calc(44 * var(--rpx)); font-weight: bold; color: #fef3c7; }
.gua-info { font-size: calc(22 * var(--rpx)); color: #fecaca; margin-top: calc(8 * var(--rpx)); }

/* 区块 */
.block { padding: calc(24 * var(--rpx)) calc(32 * var(--rpx)); border-bottom: calc(1 * var(--rpx)) solid #e7e5e4; }
.block-title {
    font-size: calc(28 * var(--rpx)); font-weight: bold; color: #292524;
    border-left: calc(8 * var(--rpx)) solid #991b1b; padding-left: calc(16 * var(--rpx)); margin-bottom: calc(16 * var(--rpx));
}
.block-title-sky { border-left-color: #0369a1; }

/* 起课信息表 */
.info-table { border: calc(1 * var(--rpx)) solid #e7e5e4; border-radius: calc(12 * var(--rpx)); overflow: hidden; }
.tr { display: flex; border-bottom: calc(1 * var(--rpx)) solid #e7e5e4; }
.tr:last-child { border-bottom: none; }
.tr:nth-child(even) { background: #fafaf9; }
.th {
    background: #f5f5f4; color: #57534e; font-weight: 600;
    padding: calc(12 * var(--rpx)) calc(8 * var(--rpx)); font-size: calc(22 * var(--rpx)); text-align: center;
    border-right: calc(1 * var(--rpx)) solid #e7e5e4; flex: 1; min-width: calc(100 * var(--rpx));
}
.td {
    padding: calc(12 * var(--rpx)) calc(8 * var(--rpx)); font-size: calc(22 * var(--rpx)); text-align: center;
    border-right: calc(1 * var(--rpx)) solid #e7e5e4; flex: 1; color: #292524;
}
.td:last-child, .th:last-child { border-right: none; }
.td-left { text-align: left; padding-left: calc(16 * var(--rpx)); }
.shensha { display: flex; flex-wrap: wrap; gap: calc(4 * var(--rpx)) calc(16 * var(--rpx)); }
.shensha-item { font-size: calc(20 * var(--rpx)); white-space: nowrap; }

/* 排盘 */
.pan-scroll { white-space: nowrap; }
.pan { display: inline-block; background: #fafaf9; border: calc(1 * var(--rpx)) solid #e7e5e4; border-radius: calc(16 * var(--rpx)); padding: calc(16 * var(--rpx)) calc(20 * var(--rpx)); }
.pan-row { display: flex; align-items: center; gap: calc(12 * var(--rpx)); padding: calc(18 * var(--rpx)) 0; border-bottom: calc(1 * var(--rpx)) solid #e7e5e4; }
.pan-row:last-child { border-bottom: none; }
.c { font-size: calc(24 * var(--rpx)); text-align: center; }
.liushen { width: calc(36 * var(--rpx)); color: #57534e; }
.liuqin { width: calc(64 * var(--rpx)); font-weight: 600; }
.dizhi { width: calc(88 * var(--rpx)); color: #44403c; }
.tiangan { width: calc(36 * var(--rpx)); color: #57534e; }
.fushen { width: calc(96 * var(--rpx)); font-size: calc(20 * var(--rpx)); color: #78716c; text-align: left; }
.shiying { width: calc(56 * var(--rpx)); }
.tag { display: inline-block; padding: calc(2 * var(--rpx)) calc(10 * var(--rpx)); border-radius: calc(6 * var(--rpx)); font-size: calc(20 * var(--rpx)); font-weight: bold; color: white; }
.tag-shi { background: #b91c1c; }
.tag-ying { background: #1d4ed8; }
.fumu { color: #1d4ed8; }
.zi { color: #16a34a; }
.guan { color: #b91c1c; }
.cai { color: #d97706; }
.xiong { color: #7c3aed; }
.mark-extra { font-size: calc(18 * var(--rpx)); color: #b45309; }

.yao-area { display: flex; align-items: center; gap: calc(6 * var(--rpx)); width: calc(84 * var(--rpx)); justify-content: center; }
.yao { width: calc(60 * var(--rpx)); height: calc(4 * var(--rpx)); background: #1c1917; border-radius: calc(2 * var(--rpx)); }
.yao.yin { background: transparent; display: flex; justify-content: space-between; }
.yao.yin::before, .yao.yin::after { content: ""; width: calc(24 * var(--rpx)); height: calc(4 * var(--rpx)); background: #1c1917; border-radius: calc(2 * var(--rpx)); }
.yao.dong { box-shadow: 0 0 0 calc(3 * var(--rpx)) rgba(185, 28, 28, 0.25); }
.yao-mark { font-size: calc(22 * var(--rpx)); color: #b91c1c; font-weight: bold; width: calc(24 * var(--rpx)); }

/* 用神 */
.yongshen {
    background: #fffbeb; border: calc(1 * var(--rpx)) solid #fde68a; border-radius: calc(12 * var(--rpx));
    padding: calc(20 * var(--rpx)) calc(24 * var(--rpx)); font-size: calc(26 * var(--rpx)); color: #44403c; line-height: 1.7;
}

/* AI 解卦 */
.ai-box { background: white; border: calc(1 * var(--rpx)) solid #bae6fd; border-radius: calc(12 * var(--rpx)); padding: calc(24 * var(--rpx)); }
.btn-ai {
    display: inline-block; background: #0369a1; color: white; font-size: calc(26 * var(--rpx));
    border-radius: calc(12 * var(--rpx)); padding: calc(12 * var(--rpx)) calc(32 * var(--rpx));
}
.btn-ai[disabled] { opacity: 0.5; }
.ai-status { font-size: calc(22 * var(--rpx)); color: #78716c; margin-left: calc(16 * var(--rpx)); display: block; margin-top: calc(12 * var(--rpx)); }
.ai-conclusion { font-size: calc(28 * var(--rpx)); font-weight: 600; color: #292524; line-height: 1.8; white-space: pre-wrap; margin-top: calc(16 * var(--rpx)); }
.detail-title { font-size: calc(24 * var(--rpx)); color: #0369a1; margin-top: calc(20 * var(--rpx)); padding-top: calc(16 * var(--rpx)); border-top: calc(1 * var(--rpx)) solid #bae6fd; }
.ai-detail { font-size: calc(24 * var(--rpx)); color: #57534e; line-height: 1.8; white-space: pre-wrap; margin-top: calc(12 * var(--rpx)); }
.fb-bar { display: flex; align-items: center; gap: calc(20 * var(--rpx)); margin-top: calc(20 * var(--rpx)); padding-top: calc(16 * var(--rpx)); border-top: calc(1 * var(--rpx)) solid #bae6fd; }
.fb-label { font-size: calc(24 * var(--rpx)); color: #78716c; }
.fb-btn { font-size: calc(24 * var(--rpx)); padding: calc(6 * var(--rpx)) calc(20 * var(--rpx)); border-radius: calc(999 * var(--rpx)); border: calc(1 * var(--rpx)) solid; }
.fb-good { color: #15803d; border-color: #15803d; }
.fb-bad { color: #b91c1c; border-color: #b91c1c; }
.fb-thanks { font-size: calc(22 * var(--rpx)); color: #a8a29e; margin-top: calc(16 * var(--rpx)); }

/* 页脚 */
.footer { text-align: center; font-size: calc(22 * var(--rpx)); color: #a8a29e; margin-top: calc(32 * var(--rpx)); }

/* 返回排盘解卦入口 */
.result-entry { background: #f0f9ff; border: calc(1 * var(--rpx)) solid #bae6fd; cursor: pointer; }
.result-entry-gua { font-size: calc(30 * var(--rpx)); font-weight: 600; color: #0c4a6e; }
.result-entry-tip { font-size: calc(24 * var(--rpx)); color: #0369a1; margin-top: calc(6 * var(--rpx)); }

/* 手动输入六爻 */
.manual-area { border-top: calc(1 * var(--rpx)) solid #e7e5e4; }
.manual-line { display: flex; align-items: center; gap: calc(16 * var(--rpx)); margin-bottom: calc(16 * var(--rpx)); }
.manual-yao { width: calc(64 * var(--rpx)); font-size: calc(24 * var(--rpx)); color: #57534e; font-weight: 600; text-align: center; }
.manual-opts { display: flex; gap: calc(10 * var(--rpx)); flex: 1; }
.manual-opt {
    flex: 1; text-align: center; font-size: calc(24 * var(--rpx)); padding: calc(8 * var(--rpx)) 0;
    border: calc(1 * var(--rpx)) solid #d6d3d1; border-radius: calc(999 * var(--rpx)); color: #57534e;
}
.manual-opt-active { background: #991b1b; border-color: #991b1b; color: white; }
.btn-manual-submit {
    margin-top: calc(8 * var(--rpx)); width: 100%; background: #7f1d1d; color: white;
    font-size: calc(28 * var(--rpx)); border-radius: calc(12 * var(--rpx)); padding: calc(12 * var(--rpx)) 0;
}

/* 模式切换胶囊 */
.mode-tabs {
    display: flex; justify-content: center; gap: calc(12 * var(--rpx));
    padding: calc(16 * var(--rpx)) calc(32 * var(--rpx)) 0;
}
.mode-tab {
    flex: 1; text-align: center; font-size: calc(26 * var(--rpx)); padding: calc(10 * var(--rpx)) 0;
    border: calc(1 * var(--rpx)) solid #d6d3d1; border-radius: calc(999 * var(--rpx)); color: #57534e;
}
.mode-tab-active { background: #991b1b; border-color: #991b1b; color: white; }

/* ==== miniprogram/pages/result/result.wxss ==== */
.mp-shell { background: #f5f5f4; color: #292524; font-size: calc(28 * var(--rpx)); }
.page { padding: 0 0 calc(180 * var(--rpx)); }
.empty { text-align: center; color: #a8a29e; padding: calc(120 * var(--rpx)) 0; }
/* 卦名横幅 */
.gua-banner { background: #7f1d1d; padding: calc(28 * var(--rpx)); text-align: center; }
.gua-name { font-size: calc(44 * var(--rpx)); font-weight: bold; color: #fef3c7; }
.gua-info { font-size: calc(22 * var(--rpx)); color: #fecaca; margin-top: calc(8 * var(--rpx)); }

/* 区块 */
.block { padding: calc(24 * var(--rpx)) calc(32 * var(--rpx)); border-bottom: calc(1 * var(--rpx)) solid #e7e5e4; }
.block-title {
    font-size: calc(28 * var(--rpx)); font-weight: bold; color: #292524;
    border-left: calc(8 * var(--rpx)) solid #991b1b; padding-left: calc(16 * var(--rpx)); margin-bottom: calc(16 * var(--rpx));
}
.block-title-sky { border-left-color: #0369a1; }

/* 起课信息表 */
.info-table { border: calc(1 * var(--rpx)) solid #e7e5e4; border-radius: calc(12 * var(--rpx)); overflow: hidden; }
.tr { display: flex; border-bottom: calc(1 * var(--rpx)) solid #e7e5e4; }
.tr:last-child { border-bottom: none; }
.tr:nth-child(even) { background: #fafaf9; }
.th {
    background: #f5f5f4; color: #57534e; font-weight: 600;
    padding: calc(12 * var(--rpx)) calc(8 * var(--rpx)); font-size: calc(22 * var(--rpx)); text-align: center;
    border-right: calc(1 * var(--rpx)) solid #e7e5e4; flex: 1; min-width: calc(100 * var(--rpx));
}
.td {
    padding: calc(12 * var(--rpx)) calc(8 * var(--rpx)); font-size: calc(22 * var(--rpx)); text-align: center;
    border-right: calc(1 * var(--rpx)) solid #e7e5e4; flex: 1; color: #292524;
}
.td:last-child, .th:last-child { border-right: none; }
.td-left { text-align: left; padding-left: calc(16 * var(--rpx)); }
.shensha { display: flex; flex-wrap: wrap; gap: calc(4 * var(--rpx)) calc(16 * var(--rpx)); }
.shensha-item { font-size: calc(20 * var(--rpx)); white-space: nowrap; }

/* 排盘 */
.pan-scroll { white-space: nowrap; }
.pan { display: inline-block; background: #fafaf9; border: calc(1 * var(--rpx)) solid #e7e5e4; border-radius: calc(16 * var(--rpx)); padding: calc(16 * var(--rpx)) calc(20 * var(--rpx)); }
.pan-row { display: flex; align-items: center; gap: calc(12 * var(--rpx)); padding: calc(18 * var(--rpx)) 0; border-bottom: calc(1 * var(--rpx)) solid #e7e5e4; }
.pan-row:last-child { border-bottom: none; }
.c { font-size: calc(24 * var(--rpx)); text-align: center; }
.liushen { width: calc(36 * var(--rpx)); color: #57534e; }
.liuqin { width: calc(64 * var(--rpx)); font-weight: 600; }
.dizhi { width: calc(88 * var(--rpx)); color: #44403c; }
.tiangan { width: calc(36 * var(--rpx)); color: #57534e; }
.fushen { width: calc(96 * var(--rpx)); font-size: calc(20 * var(--rpx)); color: #78716c; text-align: left; }
.shiying { width: calc(56 * var(--rpx)); }
.tag { display: inline-block; padding: calc(2 * var(--rpx)) calc(10 * var(--rpx)); border-radius: calc(6 * var(--rpx)); font-size: calc(20 * var(--rpx)); font-weight: bold; color: white; }
.tag-shi { background: #b91c1c; }
.tag-ying { background: #1d4ed8; }
.fumu { color: #1d4ed8; }
.zi { color: #16a34a; }
.guan { color: #b91c1c; }
.cai { color: #d97706; }
.xiong { color: #7c3aed; }
.mark-extra { font-size: calc(18 * var(--rpx)); color: #b45309; }

.yao-area { display: flex; align-items: center; gap: calc(6 * var(--rpx)); width: calc(84 * var(--rpx)); justify-content: center; }
.yao { width: calc(60 * var(--rpx)); height: calc(4 * var(--rpx)); background: #1c1917; border-radius: calc(2 * var(--rpx)); }
.yao.yin { background: transparent; display: flex; justify-content: space-between; }
.yao.yin::before, .yao.yin::after { content: ""; width: calc(24 * var(--rpx)); height: calc(4 * var(--rpx)); background: #1c1917; border-radius: calc(2 * var(--rpx)); }
.yao.dong { box-shadow: 0 0 0 calc(3 * var(--rpx)) rgba(185, 28, 28, 0.25); }
.yao-mark { font-size: calc(22 * var(--rpx)); color: #b91c1c; font-weight: bold; width: calc(24 * var(--rpx)); }

/* 用神 */
.yongshen {
    background: #fffbeb; border: calc(1 * var(--rpx)) solid #fde68a; border-radius: calc(12 * var(--rpx));
    padding: calc(20 * var(--rpx)) calc(24 * var(--rpx)); font-size: calc(26 * var(--rpx)); color: #44403c; line-height: 1.7;
}

/* AI 解卦 */
.ai-box { background: white; border: calc(1 * var(--rpx)) solid #bae6fd; border-radius: calc(12 * var(--rpx)); padding: calc(24 * var(--rpx)); }
.ai-gen-wrap { display: flex; justify-content: center; padding: calc(12 * var(--rpx)) 0; }
.btn-ai {
    display: inline-block; background: #0369a1; color: white; font-size: calc(26 * var(--rpx));
    border-radius: calc(12 * var(--rpx)); padding: calc(12 * var(--rpx)) calc(32 * var(--rpx));
}
.btn-ai[disabled] { opacity: 0.5; }
.ai-status { font-size: calc(22 * var(--rpx)); color: #78716c; margin-left: calc(16 * var(--rpx)); display: block; margin-top: calc(12 * var(--rpx)); }
.ai-conclusion { font-size: calc(28 * var(--rpx)); font-weight: 600; color: #292524; line-height: 1.8; white-space: pre-wrap; margin-top: calc(16 * var(--rpx)); }
.detail-title { font-size: calc(24 * var(--rpx)); color: #0369a1; margin-top: calc(20 * var(--rpx)); padding-top: calc(16 * var(--rpx)); border-top: calc(1 * var(--rpx)) solid #bae6fd; }
.ai-detail { font-size: calc(24 * var(--rpx)); color: #57534e; line-height: 1.8; white-space: pre-wrap; margin-top: calc(12 * var(--rpx)); }
.fb-bar { display: flex; align-items: center; gap: calc(20 * var(--rpx)); margin-top: calc(20 * var(--rpx)); padding-top: calc(16 * var(--rpx)); border-top: calc(1 * var(--rpx)) solid #bae6fd; }
.fb-label { font-size: calc(24 * var(--rpx)); color: #78716c; }
.fb-btn { font-size: calc(24 * var(--rpx)); padding: calc(6 * var(--rpx)) calc(20 * var(--rpx)); border-radius: calc(999 * var(--rpx)); border: calc(1 * var(--rpx)) solid; }
.fb-good { color: #15803d; border-color: #15803d; }
.fb-bad { color: #b91c1c; border-color: #b91c1c; }
.fb-thanks { font-size: calc(22 * var(--rpx)); color: #a8a29e; margin-top: calc(16 * var(--rpx)); }

/* 不准的部分选择 */
.fb-parts { margin-top: calc(20 * var(--rpx)); padding-top: calc(16 * var(--rpx)); border-top: calc(1 * var(--rpx)) solid #bae6fd; }
.fb-part-row { display: flex; gap: calc(16 * var(--rpx)); margin-top: calc(12 * var(--rpx)); }
.part-chip {
    font-size: calc(24 * var(--rpx)); color: #57534e; background: white;
    border: calc(1 * var(--rpx)) solid #d6d3d1; border-radius: calc(999 * var(--rpx)); padding: calc(6 * var(--rpx)) calc(28 * var(--rpx));
}
.part-chip-active { background: #b91c1c; border-color: #b91c1c; color: white; }
.part-chip-selected { border-color: #b91c1c; color: #b91c1c; }
.fb-reason {
    width: 100%; margin-top: calc(16 * var(--rpx)); border: calc(1 * var(--rpx)) solid #d6d3d1; border-radius: calc(12 * var(--rpx));
    padding: calc(14 * var(--rpx)) calc(18 * var(--rpx)); font-size: calc(26 * var(--rpx)); min-height: calc(100 * var(--rpx)); box-sizing: border-box;
}
.fb-submit {
    margin-top: calc(16 * var(--rpx)); display: inline-block; background: #b91c1c; color: white;
    font-size: calc(26 * var(--rpx)); border-radius: calc(12 * var(--rpx)); padding: calc(8 * var(--rpx)) calc(40 * var(--rpx));
}

/* 页脚 */
.footer { text-align: center; font-size: calc(22 * var(--rpx)); color: #a8a29e; margin-top: calc(32 * var(--rpx)); }

.btn-recast {
    margin: calc(32 * var(--rpx)) auto 0; display: block; background: white;
    border: calc(1 * var(--rpx)) solid #d6d3d1; border-radius: calc(12 * var(--rpx));
    font-size: calc(26 * var(--rpx)); color: #57534e; padding: 0 calc(40 * var(--rpx));
}
.block { padding: calc(24 * var(--rpx)) calc(32 * var(--rpx)); }

/* 自定义底部导航 */
.bottom-nav {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 10;
    display: flex; background: white; border-top: calc(1 * var(--rpx)) solid #e7e5e4;
    padding-bottom: env(safe-area-inset-bottom);
}
.nav-item {
    flex: 1; display: flex; flex-direction: column; align-items: center;
    padding: calc(12 * var(--rpx)) 0; color: #78716c;
}
.nav-icon-img { width: calc(44 * var(--rpx)); height: calc(44 * var(--rpx)); }
.nav-text { font-size: calc(20 * var(--rpx)); margin-top: calc(2 * var(--rpx)); }

.btn-save-img {
    margin: calc(20 * var(--rpx)) auto 0; display: block; background: #0369a1; color: white;
    border-radius: calc(12 * var(--rpx)); font-size: calc(26 * var(--rpx)); padding: 0 calc(40 * var(--rpx));
}

/* 底部按钮行：两胶囊等大 */
.btn-row { display: flex; gap: calc(24 * var(--rpx)); margin: calc(32 * var(--rpx)) calc(32 * var(--rpx)) 0; }
.btn-pill {
    flex: 1; text-align: center; background: white;
    border: calc(1 * var(--rpx)) solid #d6d3d1; border-radius: calc(999 * var(--rpx));
    font-size: calc(26 * var(--rpx)); color: #57534e; padding: calc(14 * var(--rpx)) 0;
}
.btn-pill-sky { background: #0369a1; border-color: #0369a1; color: white; }

.shensha-line { display: flex; flex-wrap: wrap; gap: calc(4 * var(--rpx)) calc(16 * var(--rpx)); }
.shensha-toggle { font-size: calc(20 * var(--rpx)); color: #0d9488; margin-top: calc(4 * var(--rpx)); }

/* 权限提示弹窗（自定义；微信号可双击复制） */
.perm-mask {
    position: fixed; inset: 0; z-index: 30;
    background: rgba(0,0,0,0.45);
    display: flex; align-items: center; justify-content: center;
}
.perm-modal {
    width: calc(600 * var(--rpx)); background: white; border-radius: calc(20 * var(--rpx));
    padding: calc(40 * var(--rpx)) calc(40 * var(--rpx)) calc(32 * var(--rpx)); box-sizing: border-box;
}
.perm-title { font-size: calc(32 * var(--rpx)); font-weight: 600; color: #292524; text-align: center; }
.perm-content { font-size: calc(28 * var(--rpx)); color: #44403c; line-height: 1.7; margin-top: calc(24 * var(--rpx)); }
.perm-wx { color: #b91c1c; font-weight: 600; text-decoration: underline; }
.perm-btn {
    margin-top: calc(32 * var(--rpx)); background: #7f1d1d; color: white;
    font-size: calc(28 * var(--rpx)); border-radius: calc(12 * var(--rpx)); padding: calc(8 * var(--rpx)) 0; width: 100%;
}

/* ==== profile/profile.wxss ==== */
/* 个人中心页：沿用深红主题 + 米底卡片风格 */
.page {
    min-height: 100vh;
    background: #f5f5f4;
    padding: calc(24 * var(--rpx));
    box-sizing: border-box;
}

.card {
    background: #fff;
    border-radius: calc(16 * var(--rpx));
    padding: calc(32 * var(--rpx));
    margin-bottom: calc(24 * var(--rpx));
    box-shadow: 0 calc(2 * var(--rpx)) calc(12 * var(--rpx)) rgba(0, 0, 0, 0.06);
}

.card-title {
    font-size: calc(30 * var(--rpx));
    font-weight: 600;
    color: #7f1d1d;
    margin-bottom: calc(24 * var(--rpx));
}

/* 账号卡片（微信头像信息栏样式） */
.account-card {
    display: flex;
    align-items: center;
    padding: calc(24 * var(--rpx)) calc(20 * var(--rpx));
    font-size: 0;   /* 消除 WXML 标签间空白文本节点造成的隐性间隙 */
}

.avatar-btn {
    /* 压制微信 button 组件默认样式（含 margin-left/right:auto 居中） */
    display: flex;
    align-items: center;
    justify-content: center;
    flex: none;
    width: calc(112 * var(--rpx)) !important;
    height: calc(112 * var(--rpx));
    min-height: 0;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent;
    line-height: 1;
    font-size: 0;
    border-radius: calc(12 * var(--rpx));
    overflow: hidden;
    box-sizing: border-box;
}

.avatar {
    width: calc(112 * var(--rpx));
    height: calc(112 * var(--rpx));
    border-radius: calc(12 * var(--rpx));   /* 微信为圆角方形头像 */
    display: block;
}

.avatar-placeholder {
    background: #7f1d1d;
    color: #fff;
    font-size: calc(48 * var(--rpx));
    display: flex;
    align-items: center;
    justify-content: center;
}

.account-info {
    flex: 1;
    min-width: 0;
    margin-left: calc(20 * var(--rpx));   /* 头像与昵称间隙 */
}

/* 角色徽标：作为信息栏的独立 flex 子项，整栏垂直居中 */
.role-badge {
    flex: none;
    align-self: center;
    white-space: nowrap;
    margin-left: calc(12 * var(--rpx));
    padding: calc(4 * var(--rpx)) calc(16 * var(--rpx));
    font-size: calc(20 * var(--rpx));
    color: #fff;
    background: #7f1d1d;
    border-radius: calc(20 * var(--rpx));
}

.nick-row {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
}



.nick-input {
    flex: 1;
    min-width: 0;
    font-size: calc(34 * var(--rpx));
    font-weight: 600;
    color: #292524;
    padding: calc(8 * var(--rpx)) 0;
}

.account-tip {
    font-size: calc(22 * var(--rpx));
    color: #a8a29e;
    margin-top: calc(8 * var(--rpx));
}

.openid-row {
    font-size: calc(22 * var(--rpx));
    color: #a8a29e;
    margin-top: calc(6 * var(--rpx));
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;   /* 单行显示，复制仍取完整 ID */
}

/* 管理员管理 */
.admin-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: calc(16 * var(--rpx)) 0;
    border-bottom: calc(1 * var(--rpx)) solid #f5f5f4;
}

.admin-openid {
    font-size: calc(24 * var(--rpx));
    color: #57534e;
    word-break: break-all;
}

.admin-remove {
    flex-shrink: 0;
    margin-left: calc(16 * var(--rpx));
    font-size: calc(24 * var(--rpx));
    color: #991b1b;
}

.admin-add {
    display: flex;
    align-items: center;
    margin-top: calc(24 * var(--rpx));
}

.admin-input {
    flex: 1;
    font-size: calc(24 * var(--rpx));
    background: #f5f5f4;
    border-radius: calc(12 * var(--rpx));
    padding: calc(16 * var(--rpx)) calc(20 * var(--rpx));
}

.admin-add-btn {
    flex-shrink: 0;
    margin: 0 0 0 calc(16 * var(--rpx));
    padding: 0 calc(32 * var(--rpx));
    font-size: calc(26 * var(--rpx));
    line-height: calc(72 * var(--rpx));
    color: #fff;
    background: #7f1d1d;
    border-radius: calc(12 * var(--rpx));
}

.admin-add-btn::after {
    border: none;
}

/* 统计 */
.stats {
    display: flex;
    justify-content: space-around;
}

.stat-item {
    text-align: center;
}

.stat-num {
    font-size: calc(44 * var(--rpx));
    font-weight: 700;
    color: #7f1d1d;
}

.stat-label {
    font-size: calc(24 * var(--rpx));
    color: #78716c;
    margin-top: calc(8 * var(--rpx));
}

/* 复盘入口 */
.entry-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.entry-text {
    font-size: calc(30 * var(--rpx));
    color: #292524;
}

.entry-arrow {
    font-size: calc(32 * var(--rpx));
    color: #7f1d1d;
}

.footer {
    text-align: center;
    font-size: calc(22 * var(--rpx));
    color: #a8a29e;
    padding: calc(24 * var(--rpx)) 0;
}

/* 视角切换 */
.role-switch { display: flex; align-items: center; gap: calc(12 * var(--rpx)); margin-bottom: calc(16 * var(--rpx)); }
.role-switch-label { font-size: calc(22 * var(--rpx)); color: #a8a29e; }
.role-chip {
    font-size: calc(22 * var(--rpx)); color: #57534e; background: white;
    border: calc(1 * var(--rpx)) solid #d6d3d1; border-radius: calc(999 * var(--rpx)); padding: calc(4 * var(--rpx)) calc(20 * var(--rpx));
}
.role-chip-active { background: #7f1d1d; border-color: #7f1d1d; color: white;
}

/* 角色下拉菜单 */
.role-mask { position: fixed; inset: 0; z-index: 30; }
.role-menu {
    position: fixed; top: calc(200 * var(--rpx)); right: calc(32 * var(--rpx)); z-index: 31;
    background: white; border-radius: calc(16 * var(--rpx)); min-width: calc(240 * var(--rpx));
    box-shadow: 0 calc(8 * var(--rpx)) calc(30 * var(--rpx)) rgba(0,0,0,0.15); overflow: hidden;
}
.role-menu-title {
    font-size: calc(22 * var(--rpx)); color: #a8a29e; padding: calc(16 * var(--rpx)) calc(24 * var(--rpx));
    border-bottom: calc(1 * var(--rpx)) solid #f5f5f4;
}
.role-menu-item {
    display: flex; justify-content: space-between; align-items: center;
    padding: calc(20 * var(--rpx)) calc(24 * var(--rpx)); font-size: calc(28 * var(--rpx)); color: #292524;
}
.role-menu-item:active { background: #f5f5f4; }
.role-menu-active { color: #7f1d1d; font-weight: 600; }
.role-menu-check { color: #7f1d1d; }

/* ==== history/history.wxss ==== */
page { background: #f5f5f4; color: #292524; font-size: calc(28 * var(--rpx)); }
.page { padding: 0 0 calc(180 * var(--rpx)); }
.empty { text-align: center; color: #a8a29e; padding: calc(120 * var(--rpx)) 0; }
/* 卦名横幅 */
.gua-banner { background: #7f1d1d; padding: calc(28 * var(--rpx)); text-align: center; }
.gua-name { font-size: calc(44 * var(--rpx)); font-weight: bold; color: #fef3c7; }
.gua-info { font-size: calc(22 * var(--rpx)); color: #fecaca; margin-top: calc(8 * var(--rpx)); }

/* 区块 */
.block { padding: calc(24 * var(--rpx)) calc(32 * var(--rpx)); border-bottom: calc(1 * var(--rpx)) solid #e7e5e4; }
.block-title {
    font-size: calc(28 * var(--rpx)); font-weight: bold; color: #292524;
    border-left: calc(8 * var(--rpx)) solid #991b1b; padding-left: calc(16 * var(--rpx)); margin-bottom: calc(16 * var(--rpx));
}
.block-title-sky { border-left-color: #0369a1; }

/* 起课信息表 */
.info-table { border: calc(1 * var(--rpx)) solid #e7e5e4; border-radius: calc(12 * var(--rpx)); overflow: hidden; }
.tr { display: flex; border-bottom: calc(1 * var(--rpx)) solid #e7e5e4; }
.tr:last-child { border-bottom: none; }
.tr:nth-child(even) { background: #fafaf9; }
.th {
    background: #f5f5f4; color: #57534e; font-weight: 600;
    padding: calc(12 * var(--rpx)) calc(8 * var(--rpx)); font-size: calc(22 * var(--rpx)); text-align: center;
    border-right: calc(1 * var(--rpx)) solid #e7e5e4; flex: 1; min-width: calc(100 * var(--rpx));
}
.td {
    padding: calc(12 * var(--rpx)) calc(8 * var(--rpx)); font-size: calc(22 * var(--rpx)); text-align: center;
    border-right: calc(1 * var(--rpx)) solid #e7e5e4; flex: 1; color: #292524;
}
.td:last-child, .th:last-child { border-right: none; }
.td-left { text-align: left; padding-left: calc(16 * var(--rpx)); }
.shensha { display: flex; flex-wrap: wrap; gap: calc(4 * var(--rpx)) calc(16 * var(--rpx)); }
.shensha-item { font-size: calc(20 * var(--rpx)); white-space: nowrap; }

/* 排盘 */
.pan-scroll { white-space: nowrap; }
.pan { display: inline-block; background: #fafaf9; border: calc(1 * var(--rpx)) solid #e7e5e4; border-radius: calc(16 * var(--rpx)); padding: calc(16 * var(--rpx)) calc(20 * var(--rpx)); }
.pan-row { display: flex; align-items: center; gap: calc(12 * var(--rpx)); padding: calc(18 * var(--rpx)) 0; border-bottom: calc(1 * var(--rpx)) solid #e7e5e4; }
.pan-row:last-child { border-bottom: none; }
.c { font-size: calc(24 * var(--rpx)); text-align: center; }
.liushen { width: calc(36 * var(--rpx)); color: #57534e; }
.liuqin { width: calc(64 * var(--rpx)); font-weight: 600; }
.dizhi { width: calc(88 * var(--rpx)); color: #44403c; }
.tiangan { width: calc(36 * var(--rpx)); color: #57534e; }
.fushen { width: calc(96 * var(--rpx)); font-size: calc(20 * var(--rpx)); color: #78716c; text-align: left; }
.shiying { width: calc(56 * var(--rpx)); }
.tag { display: inline-block; padding: calc(2 * var(--rpx)) calc(10 * var(--rpx)); border-radius: calc(6 * var(--rpx)); font-size: calc(20 * var(--rpx)); font-weight: bold; color: white; }
.tag-shi { background: #b91c1c; }
.tag-ying { background: #1d4ed8; }
.fumu { color: #1d4ed8; }
.zi { color: #16a34a; }
.guan { color: #b91c1c; }
.cai { color: #d97706; }
.xiong { color: #7c3aed; }
.mark-extra { font-size: calc(18 * var(--rpx)); color: #b45309; }

.yao-area { display: flex; align-items: center; gap: calc(6 * var(--rpx)); width: calc(84 * var(--rpx)); justify-content: center; }
.yao { width: calc(60 * var(--rpx)); height: calc(4 * var(--rpx)); background: #1c1917; border-radius: calc(2 * var(--rpx)); }
.yao.yin { background: transparent; display: flex; justify-content: space-between; }
.yao.yin::before, .yao.yin::after { content: ""; width: calc(24 * var(--rpx)); height: calc(4 * var(--rpx)); background: #1c1917; border-radius: calc(2 * var(--rpx)); }
.yao.dong { box-shadow: 0 0 0 calc(3 * var(--rpx)) rgba(185, 28, 28, 0.25); }
.yao-mark { font-size: calc(22 * var(--rpx)); color: #b91c1c; font-weight: bold; width: calc(24 * var(--rpx)); }

/* 用神 */
.yongshen {
    background: #fffbeb; border: calc(1 * var(--rpx)) solid #fde68a; border-radius: calc(12 * var(--rpx));
    padding: calc(20 * var(--rpx)) calc(24 * var(--rpx)); font-size: calc(26 * var(--rpx)); color: #44403c; line-height: 1.7;
}

/* AI 解卦 */
.ai-box { background: white; border: calc(1 * var(--rpx)) solid #bae6fd; border-radius: calc(12 * var(--rpx)); padding: calc(24 * var(--rpx)); }
.ai-gen-wrap { display: flex; justify-content: center; padding: calc(12 * var(--rpx)) 0; }
.btn-ai {
    display: inline-block; background: #0369a1; color: white; font-size: calc(26 * var(--rpx));
    border-radius: calc(12 * var(--rpx)); padding: calc(12 * var(--rpx)) calc(32 * var(--rpx));
}
.btn-ai[disabled] { opacity: 0.5; }
.ai-status { font-size: calc(22 * var(--rpx)); color: #78716c; margin-left: calc(16 * var(--rpx)); display: block; margin-top: calc(12 * var(--rpx)); }
.ai-conclusion { font-size: calc(28 * var(--rpx)); font-weight: 600; color: #292524; line-height: 1.8; white-space: pre-wrap; margin-top: calc(16 * var(--rpx)); }
.detail-title { font-size: calc(24 * var(--rpx)); color: #0369a1; margin-top: calc(20 * var(--rpx)); padding-top: calc(16 * var(--rpx)); border-top: calc(1 * var(--rpx)) solid #bae6fd; }
.ai-detail { font-size: calc(24 * var(--rpx)); color: #57534e; line-height: 1.8; white-space: pre-wrap; margin-top: calc(12 * var(--rpx)); }
.fb-bar { display: flex; align-items: center; gap: calc(20 * var(--rpx)); margin-top: calc(20 * var(--rpx)); padding-top: calc(16 * var(--rpx)); border-top: calc(1 * var(--rpx)) solid #bae6fd; }
.fb-label { font-size: calc(24 * var(--rpx)); color: #78716c; }
.fb-btn { font-size: calc(24 * var(--rpx)); padding: calc(6 * var(--rpx)) calc(20 * var(--rpx)); border-radius: calc(999 * var(--rpx)); border: calc(1 * var(--rpx)) solid; }
.fb-good { color: #15803d; border-color: #15803d; }
.fb-bad { color: #b91c1c; border-color: #b91c1c; }
.fb-thanks { font-size: calc(22 * var(--rpx)); color: #a8a29e; margin-top: calc(16 * var(--rpx)); }

/* 不准的部分选择 */
.fb-parts { margin-top: calc(20 * var(--rpx)); padding-top: calc(16 * var(--rpx)); border-top: calc(1 * var(--rpx)) solid #bae6fd; }
.fb-part-row { display: flex; gap: calc(16 * var(--rpx)); margin-top: calc(12 * var(--rpx)); }
.part-chip {
    font-size: calc(24 * var(--rpx)); color: #57534e; background: white;
    border: calc(1 * var(--rpx)) solid #d6d3d1; border-radius: calc(999 * var(--rpx)); padding: calc(6 * var(--rpx)) calc(28 * var(--rpx));
}
.part-chip-active { background: #b91c1c; border-color: #b91c1c; color: white; }
.fb-reason {
    width: 100%; margin-top: calc(16 * var(--rpx)); border: calc(1 * var(--rpx)) solid #d6d3d1; border-radius: calc(12 * var(--rpx));
    padding: calc(14 * var(--rpx)) calc(18 * var(--rpx)); font-size: calc(26 * var(--rpx)); min-height: calc(100 * var(--rpx)); box-sizing: border-box;
}
.fb-submit {
    margin-top: calc(16 * var(--rpx)); display: inline-block; background: #b91c1c; color: white;
    font-size: calc(26 * var(--rpx)); border-radius: calc(12 * var(--rpx)); padding: calc(8 * var(--rpx)) calc(40 * var(--rpx));
}

/* 页脚 */
.footer { text-align: center; font-size: calc(22 * var(--rpx)); color: #a8a29e; margin-top: calc(32 * var(--rpx)); }

.btn-recast {
    margin: calc(32 * var(--rpx)) auto 0; display: block; background: white;
    border: calc(1 * var(--rpx)) solid #d6d3d1; border-radius: calc(12 * var(--rpx));
    font-size: calc(26 * var(--rpx)); color: #57534e; padding: 0 calc(40 * var(--rpx));
}
.block { padding: calc(24 * var(--rpx)) calc(32 * var(--rpx)); }

/* 自定义底部导航 */
.bottom-nav {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 10;
    display: flex; background: white; border-top: calc(1 * var(--rpx)) solid #e7e5e4;
    padding-bottom: env(safe-area-inset-bottom);
}
.nav-item {
    flex: 1; display: flex; flex-direction: column; align-items: center;
    padding: calc(12 * var(--rpx)) 0; color: #78716c;
}
.nav-icon { font-size: calc(36 * var(--rpx)); }
.nav-text { font-size: calc(20 * var(--rpx)); margin-top: calc(2 * var(--rpx)); }

/* 历史记录页 */
.pager-num { text-align: center; font-size: calc(24 * var(--rpx)); color: #78716c; margin-bottom: calc(20 * var(--rpx)); }
.rec-swiper { height: calc(100vh - calc(140 * var(--rpx))); }
.swiper-scroll { height: 100%; padding: 0 calc(4 * var(--rpx)); box-sizing: border-box; }
.empty { text-align: center; color: #a8a29e; padding: calc(120 * var(--rpx)) 0; }
.empty-small { color: #a8a29e; font-size: calc(24 * var(--rpx)); padding: calc(30 * var(--rpx)) 0; text-align: center; }

/* 补充评价 */
.fb-block { display: flex; align-items: center; gap: calc(20 * var(--rpx)); }
.fb-done { font-size: calc(24 * var(--rpx)); color: #a8a29e; }
.popup-mask { position: fixed; inset: 0; background: rgba(0,0,0,0.4); z-index: 20; }
.popup {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 21;
    background: white; border-radius: calc(24 * var(--rpx)) calc(24 * var(--rpx)) 0 0;
    padding: calc(32 * var(--rpx)) calc(28 * var(--rpx)) calc(calc(32 * var(--rpx)) + env(safe-area-inset-bottom));
    transform: translateY(100%); transition: transform 0.25s ease;
}
.popup-show { transform: translateY(0); }
.popup-title { font-size: calc(28 * var(--rpx)); font-weight: 600; color: #292524; margin-bottom: calc(16 * var(--rpx)); }
.fb-part-row { display: flex; gap: calc(16 * var(--rpx)); margin-bottom: calc(16 * var(--rpx)); }
.part-chip {
    font-size: calc(24 * var(--rpx)); color: #57534e; background: white;
    border: calc(1 * var(--rpx)) solid #d6d3d1; border-radius: calc(999 * var(--rpx)); padding: calc(6 * var(--rpx)) calc(28 * var(--rpx));
}
.part-chip-active { background: #b91c1c; border-color: #b91c1c; color: white; }
.fb-reason {
    width: 100%; border: calc(1 * var(--rpx)) solid #d6d3d1; border-radius: calc(12 * var(--rpx));
    padding: calc(14 * var(--rpx)) calc(18 * var(--rpx)); font-size: calc(26 * var(--rpx)); min-height: calc(100 * var(--rpx)); box-sizing: border-box;
}
.fb-submit {
    margin-top: calc(20 * var(--rpx)); background: #b91c1c; color: white;
    font-size: calc(28 * var(--rpx)); border-radius: calc(12 * var(--rpx)); padding: calc(10 * var(--rpx)) 0; width: 100%;
}

/* 删除按钮 */
.fb-del { font-size: calc(24 * var(--rpx)); color: #b91c1c; margin-left: auto; padding: calc(6 * var(--rpx)) calc(16 * var(--rpx)); }

.btn-save-img { width: 100%; background: #0369a1; color: white; font-size: calc(26 * var(--rpx)); border-radius: calc(12 * var(--rpx)); padding: calc(10 * var(--rpx)) 0; }

.fb-adjust { font-size: calc(24 * var(--rpx)); color: #0369a1; text-decoration: underline; }

.shensha-line { display: flex; flex-wrap: wrap; gap: calc(4 * var(--rpx)) calc(16 * var(--rpx)); }
.shensha-toggle { font-size: calc(20 * var(--rpx)); color: #0d9488; margin-top: calc(4 * var(--rpx)); }

/* 评价弹层选择行 */
.fb-choice-row { display: flex; gap: calc(20 * var(--rpx)); }
.fb-choice-btn { flex: 1; font-size: calc(28 * var(--rpx)); border-radius: calc(12 * var(--rpx)); padding: calc(12 * var(--rpx)) 0; }
.fb-choice-btn.fb-good { background: #15803d; color: white; }
.fb-choice-btn.fb-bad { background: #b91c1c; color: white; }

/* ==== records/records.wxss ==== */
page {
    background: #f5f5f4;
    color: #292524;
    font-size: calc(28 * var(--rpx));
}

.page { padding: calc(24 * var(--rpx)) calc(24 * var(--rpx)) calc(60 * var(--rpx)); }
.empty { text-align: center; color: #a8a29e; padding: calc(80 * var(--rpx)) 0; }
.empty-small { color: #a8a29e; font-size: calc(24 * var(--rpx)); padding: calc(30 * var(--rpx)) 0; text-align: center; }
.empty-btn { margin-top: calc(24 * var(--rpx)); background: #7f1d1d; color: white; font-size: calc(26 * var(--rpx)); border-radius: calc(12 * var(--rpx)); padding: 0 calc(48 * var(--rpx)); }

/* 顶部页码 */
.pager-num { text-align: center; font-size: calc(24 * var(--rpx)); color: #78716c; margin-bottom: calc(20 * var(--rpx)); }

/* 记录头部 */
.rec-header { background: #7f1d1d; border-radius: calc(16 * var(--rpx)); padding: calc(20 * var(--rpx)) calc(28 * var(--rpx)); color: #fef3c7; margin-bottom: calc(20 * var(--rpx)); }
.rec-gua { font-size: calc(34 * var(--rpx)); font-weight: bold; }
.rec-meta { font-size: calc(22 * var(--rpx)); color: #fecaca; margin-top: calc(8 * var(--rpx)); }
.rec-q { font-size: calc(24 * var(--rpx)); color: #fecaca; margin-top: calc(6 * var(--rpx)); }
.rec-fb-detail { font-size: calc(20 * var(--rpx)); color: #fde68a; margin-top: calc(6 * var(--rpx)); }
.fb-badge { font-size: calc(20 * var(--rpx)); padding: calc(2 * var(--rpx)) calc(12 * var(--rpx)); border-radius: calc(6 * var(--rpx)); margin-left: calc(10 * var(--rpx)); color: white; }
.fb-good { background: #15803d; }
.fb-bad { background: #b91c1c; }

/* 记录滑动容器 */
.rec-swiper { height: calc(100vh - calc(140 * var(--rpx))); }
.swiper-scroll { height: 100%; padding: 0 calc(4 * var(--rpx)); box-sizing: border-box; }

.rec-info { font-size: calc(22 * var(--rpx)); color: #78716c; margin-bottom: calc(12 * var(--rpx)); }

/* 正确 / 修正 */
.mark-bar { display: flex; gap: calc(24 * var(--rpx)); margin: calc(28 * var(--rpx)) 0; }
.mark-btn { flex: 1; font-size: calc(26 * var(--rpx)); border-radius: calc(12 * var(--rpx)); padding: calc(12 * var(--rpx)) 0; text-align: center; }
.mark-correct { background: #15803d; color: white; }
.mark-wrong { background: #d97706; color: white; }

/* 修正弹层 */
.popup-mask { position: fixed; inset: 0; background: rgba(0,0,0,0.4); z-index: 20; }
.popup {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 21;
    background: white; border-radius: calc(24 * var(--rpx)) calc(24 * var(--rpx)) 0 0; padding: calc(32 * var(--rpx)) calc(28 * var(--rpx)) calc(calc(32 * var(--rpx)) + env(safe-area-inset-bottom));
    transform: translateY(100%); transition: transform 0.25s ease;
}
.popup-show { transform: translateY(0); }
.popup-title { font-size: calc(28 * var(--rpx)); font-weight: 600; color: #292524; margin-bottom: calc(16 * var(--rpx)); }

.fb-part-row { display: flex; gap: calc(16 * var(--rpx)); margin-bottom: calc(16 * var(--rpx)); }
.part-chip {
    font-size: calc(24 * var(--rpx)); color: #57534e; background: white;
    border: calc(1 * var(--rpx)) solid #d6d3d1; border-radius: calc(999 * var(--rpx)); padding: calc(6 * var(--rpx)) calc(28 * var(--rpx));
}

.part-chip-active { background: #b91c1c; border-color: #b91c1c; color: white; }
.part-chip-selected { border-color: #b91c1c; color: #b91c1c; }
.fb-reason {
    width: 100%; border: calc(1 * var(--rpx)) solid #d6d3d1; border-radius: calc(12 * var(--rpx));
    padding: calc(14 * var(--rpx)) calc(18 * var(--rpx)); font-size: calc(26 * var(--rpx)); min-height: calc(100 * var(--rpx)); box-sizing: border-box;
}
.fb-submit {
    margin-top: calc(20 * var(--rpx)); background: #b91c1c; color: white;
    font-size: calc(28 * var(--rpx)); border-radius: calc(12 * var(--rpx)); padding: calc(10 * var(--rpx)) 0; width: 100%;
}

/* 卦名横幅 */
.gua-banner { background: #7f1d1d; padding: calc(28 * var(--rpx)); text-align: center; }
.gua-name { font-size: calc(44 * var(--rpx)); font-weight: bold; color: #fef3c7; }
.gua-info { font-size: calc(22 * var(--rpx)); color: #fecaca; margin-top: calc(8 * var(--rpx)); }

/* 区块 */
.block { padding: calc(24 * var(--rpx)) calc(32 * var(--rpx)); border-bottom: calc(1 * var(--rpx)) solid #e7e5e4; }
.block-title {
    font-size: calc(28 * var(--rpx)); font-weight: bold; color: #292524;
    border-left: calc(8 * var(--rpx)) solid #991b1b; padding-left: calc(16 * var(--rpx)); margin-bottom: calc(16 * var(--rpx));
}
.block-title-sky { border-left-color: #0369a1; }

/* 起课信息表 */
.info-table { border: calc(1 * var(--rpx)) solid #e7e5e4; border-radius: calc(12 * var(--rpx)); overflow: hidden; }
.tr { display: flex; border-bottom: calc(1 * var(--rpx)) solid #e7e5e4; }
.tr:last-child { border-bottom: none; }
.tr:nth-child(even) { background: #fafaf9; }
.th {
    background: #f5f5f4; color: #57534e; font-weight: 600;
    padding: calc(12 * var(--rpx)) calc(8 * var(--rpx)); font-size: calc(22 * var(--rpx)); text-align: center;
    border-right: calc(1 * var(--rpx)) solid #e7e5e4; flex: 1; min-width: calc(100 * var(--rpx));
}
.td {
    padding: calc(12 * var(--rpx)) calc(8 * var(--rpx)); font-size: calc(22 * var(--rpx)); text-align: center;
    border-right: calc(1 * var(--rpx)) solid #e7e5e4; flex: 1; color: #292524;
}
.td:last-child, .th:last-child { border-right: none; }
.td-left { text-align: left; padding-left: calc(16 * var(--rpx)); }
.shensha { display: flex; flex-wrap: wrap; gap: calc(4 * var(--rpx)) calc(16 * var(--rpx)); }
.shensha-item { font-size: calc(20 * var(--rpx)); white-space: nowrap; }

/* 排盘 */
.pan-scroll { white-space: nowrap; }
.pan { display: inline-block; background: #fafaf9; border: calc(1 * var(--rpx)) solid #e7e5e4; border-radius: calc(16 * var(--rpx)); padding: calc(16 * var(--rpx)) calc(20 * var(--rpx)); }
.pan-row { display: flex; align-items: center; gap: calc(12 * var(--rpx)); padding: calc(18 * var(--rpx)) 0; border-bottom: calc(1 * var(--rpx)) solid #e7e5e4; }
.pan-row:last-child { border-bottom: none; }
.c { font-size: calc(24 * var(--rpx)); text-align: center; }
.liushen { width: calc(36 * var(--rpx)); color: #57534e; }
.liuqin { width: calc(64 * var(--rpx)); font-weight: 600; }
.dizhi { width: calc(88 * var(--rpx)); color: #44403c; }
.tiangan { width: calc(36 * var(--rpx)); color: #57534e; }
.fushen { width: calc(96 * var(--rpx)); font-size: calc(20 * var(--rpx)); color: #78716c; text-align: left; }
.shiying { width: calc(56 * var(--rpx)); }
.tag { display: inline-block; padding: calc(2 * var(--rpx)) calc(10 * var(--rpx)); border-radius: calc(6 * var(--rpx)); font-size: calc(20 * var(--rpx)); font-weight: bold; color: white; }
.tag-shi { background: #b91c1c; }
.tag-ying { background: #1d4ed8; }
.fumu { color: #1d4ed8; }
.zi { color: #16a34a; }
.guan { color: #b91c1c; }
.cai { color: #d97706; }
.xiong { color: #7c3aed; }
.mark-extra { font-size: calc(18 * var(--rpx)); color: #b45309; }

.yao-area { display: flex; align-items: center; gap: calc(6 * var(--rpx)); width: calc(84 * var(--rpx)); justify-content: center; }
.yao { width: calc(60 * var(--rpx)); height: calc(4 * var(--rpx)); background: #1c1917; border-radius: calc(2 * var(--rpx)); }
.yao.yin { background: transparent; display: flex; justify-content: space-between; }
.yao.yin::before, .yao.yin::after { content: ""; width: calc(24 * var(--rpx)); height: calc(4 * var(--rpx)); background: #1c1917; border-radius: calc(2 * var(--rpx)); }
.yao.dong { box-shadow: 0 0 0 calc(3 * var(--rpx)) rgba(185, 28, 28, 0.25); }
.yao-mark { font-size: calc(22 * var(--rpx)); color: #b91c1c; font-weight: bold; width: calc(24 * var(--rpx)); }

/* 用神 */
.yongshen {
    background: #fffbeb; border: calc(1 * var(--rpx)) solid #fde68a; border-radius: calc(12 * var(--rpx));
    padding: calc(20 * var(--rpx)) calc(24 * var(--rpx)); font-size: calc(26 * var(--rpx)); color: #44403c; line-height: 1.7;
}

/* AI 解卦 */
.ai-box { background: white; border: calc(1 * var(--rpx)) solid #bae6fd; border-radius: calc(12 * var(--rpx)); padding: calc(24 * var(--rpx)); }
.ai-gen-wrap { display: flex; justify-content: center; padding: calc(12 * var(--rpx)) 0; }
.btn-ai {
    display: inline-block; background: #0369a1; color: white; font-size: calc(26 * var(--rpx));
    border-radius: calc(12 * var(--rpx)); padding: calc(12 * var(--rpx)) calc(32 * var(--rpx));
}
.btn-ai[disabled] { opacity: 0.5; }
.ai-status { font-size: calc(22 * var(--rpx)); color: #78716c; margin-left: calc(16 * var(--rpx)); display: block; margin-top: calc(12 * var(--rpx)); }
.ai-conclusion { font-size: calc(28 * var(--rpx)); font-weight: 600; color: #292524; line-height: 1.8; white-space: pre-wrap; margin-top: calc(16 * var(--rpx)); }
.detail-title { font-size: calc(24 * var(--rpx)); color: #0369a1; margin-top: calc(20 * var(--rpx)); padding-top: calc(16 * var(--rpx)); border-top: calc(1 * var(--rpx)) solid #bae6fd; }
.ai-detail { font-size: calc(24 * var(--rpx)); color: #57534e; line-height: 1.8; white-space: pre-wrap; margin-top: calc(12 * var(--rpx)); }
.fb-bar { display: flex; align-items: center; gap: calc(20 * var(--rpx)); margin-top: calc(20 * var(--rpx)); padding-top: calc(16 * var(--rpx)); border-top: calc(1 * var(--rpx)) solid #bae6fd; }
.fb-label { font-size: calc(24 * var(--rpx)); color: #78716c; }
.fb-btn { font-size: calc(24 * var(--rpx)); padding: calc(6 * var(--rpx)) calc(20 * var(--rpx)); border-radius: calc(999 * var(--rpx)); border: calc(1 * var(--rpx)) solid; }
.fb-good { color: #15803d; border-color: #15803d; }
.fb-bad { color: #b91c1c; border-color: #b91c1c; }
.fb-thanks { font-size: calc(22 * var(--rpx)); color: #a8a29e; margin-top: calc(16 * var(--rpx)); }

/* 不准的部分选择 */
.fb-parts { margin-top: calc(20 * var(--rpx)); padding-top: calc(16 * var(--rpx)); border-top: calc(1 * var(--rpx)) solid #bae6fd; }
.fb-part-row { display: flex; gap: calc(16 * var(--rpx)); margin-top: calc(12 * var(--rpx)); }
/* 注意：.part-chip 基础样式见上方弹层区块（line 48），此处不可重复定义，
   否则排在 -active/-selected 之后会覆盖高亮样式 */

.fb-reason {
    width: 100%; margin-top: calc(16 * var(--rpx)); border: calc(1 * var(--rpx)) solid #d6d3d1; border-radius: calc(12 * var(--rpx));
    padding: calc(14 * var(--rpx)) calc(18 * var(--rpx)); font-size: calc(26 * var(--rpx)); min-height: calc(100 * var(--rpx)); box-sizing: border-box;
}
.fb-submit {
    margin-top: calc(16 * var(--rpx)); display: inline-block; background: #b91c1c; color: white;
    font-size: calc(26 * var(--rpx)); border-radius: calc(12 * var(--rpx)); padding: calc(8 * var(--rpx)) calc(40 * var(--rpx));
}

/* 页脚 */
.footer { text-align: center; font-size: calc(22 * var(--rpx)); color: #a8a29e; margin-top: calc(32 * var(--rpx)); }

.btn-recast {
    margin: calc(32 * var(--rpx)) auto 0; display: block; background: white;
    border: calc(1 * var(--rpx)) solid #d6d3d1; border-radius: calc(12 * var(--rpx));
    font-size: calc(26 * var(--rpx)); color: #57534e; padding: 0 calc(40 * var(--rpx));
}
.block { padding: calc(24 * var(--rpx)) calc(32 * var(--rpx)); }

/* 自定义底部导航 */
.bottom-nav {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 10;
    display: flex; background: white; border-top: calc(1 * var(--rpx)) solid #e7e5e4;
    padding-bottom: env(safe-area-inset-bottom);
}
.nav-item {
    flex: 1; display: flex; flex-direction: column; align-items: center;
    padding: calc(12 * var(--rpx)) 0; color: #78716c;
}
.nav-icon { font-size: calc(36 * var(--rpx)); }
.nav-text { font-size: calc(20 * var(--rpx)); margin-top: calc(2 * var(--rpx)); }

/* 用户反馈小字 + 详情 + 删除按钮 */
.rec-fb { font-size: calc(20 * var(--rpx)); color: #fde68a; margin-top: calc(6 * var(--rpx)); }
.fb-detail-box {
    background: #fafaf9; border: calc(1 * var(--rpx)) solid #e7e5e4; border-radius: calc(12 * var(--rpx));
    padding: calc(16 * var(--rpx)); font-size: calc(24 * var(--rpx)); color: #57534e;
}
.facts-lines { background: #fafaf9; border: calc(1 * var(--rpx)) solid #e7e5e4; border-radius: calc(12 * var(--rpx)); padding: calc(16 * var(--rpx)); }
.facts-line { font-size: calc(22 * var(--rpx)); color: #44403c; line-height: 1.8; }
.mark-invalid { background: #78716c; color: white; }

.fb-detail-line { font-size: calc(24 * var(--rpx)); color: #57534e; line-height: 1.8; }

.ai-line { line-height: 1.8; margin-bottom: calc(2 * var(--rpx)); }

/* ==== review-history/review-history.wxss ==== */
page {
    background: #f5f5f4;
    color: #292524;
    font-size: calc(28 * var(--rpx));
}

.page { padding: calc(24 * var(--rpx)) calc(24 * var(--rpx)) calc(60 * var(--rpx)); }
.empty { text-align: center; color: #a8a29e; padding: calc(80 * var(--rpx)) 0; }
.empty-small { color: #a8a29e; font-size: calc(24 * var(--rpx)); padding: calc(30 * var(--rpx)) 0; text-align: center; }
.empty-btn { margin-top: calc(24 * var(--rpx)); background: #7f1d1d; color: white; font-size: calc(26 * var(--rpx)); border-radius: calc(12 * var(--rpx)); padding: 0 calc(48 * var(--rpx)); }

/* 顶部页码 */
.pager-num { text-align: center; font-size: calc(24 * var(--rpx)); color: #78716c; margin-bottom: calc(20 * var(--rpx)); }

/* 记录头部 */
.rec-header { background: #7f1d1d; border-radius: calc(16 * var(--rpx)); padding: calc(20 * var(--rpx)) calc(28 * var(--rpx)); color: #fef3c7; margin-bottom: calc(20 * var(--rpx)); }
.rec-gua { font-size: calc(34 * var(--rpx)); font-weight: bold; }
.rec-meta { font-size: calc(22 * var(--rpx)); color: #fecaca; margin-top: calc(8 * var(--rpx)); }
.rec-q { font-size: calc(24 * var(--rpx)); color: #fecaca; margin-top: calc(6 * var(--rpx)); }
.rec-fb-detail { font-size: calc(20 * var(--rpx)); color: #fde68a; margin-top: calc(6 * var(--rpx)); }
.fb-badge { font-size: calc(20 * var(--rpx)); padding: calc(2 * var(--rpx)) calc(12 * var(--rpx)); border-radius: calc(6 * var(--rpx)); margin-left: calc(10 * var(--rpx)); color: white; }
.fb-good { background: #15803d; }
.fb-bad { background: #b91c1c; }

/* 记录滑动容器 */
.rec-swiper { height: calc(100vh - calc(140 * var(--rpx))); }
.swiper-scroll { height: 100%; padding: 0 calc(4 * var(--rpx)); box-sizing: border-box; }

.rec-info { font-size: calc(22 * var(--rpx)); color: #78716c; margin-bottom: calc(12 * var(--rpx)); }

/* 正确 / 修正 */
.mark-bar { display: flex; gap: calc(24 * var(--rpx)); margin: calc(28 * var(--rpx)) 0; }
.mark-btn { flex: 1; font-size: calc(26 * var(--rpx)); border-radius: calc(12 * var(--rpx)); padding: calc(12 * var(--rpx)) 0; text-align: center; }
.mark-correct { background: #15803d; color: white; }
.mark-wrong { background: #d97706; color: white; }

/* 修正弹层 */
.popup-mask { position: fixed; inset: 0; background: rgba(0,0,0,0.4); z-index: 20; }
.popup {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 21;
    background: white; border-radius: calc(24 * var(--rpx)) calc(24 * var(--rpx)) 0 0; padding: calc(32 * var(--rpx)) calc(28 * var(--rpx)) calc(calc(32 * var(--rpx)) + env(safe-area-inset-bottom));
    transform: translateY(100%); transition: transform 0.25s ease;
}
.popup-show { transform: translateY(0); }
.popup-title { font-size: calc(28 * var(--rpx)); font-weight: 600; color: #292524; margin-bottom: calc(16 * var(--rpx)); }

.fb-part-row { display: flex; gap: calc(16 * var(--rpx)); margin-bottom: calc(16 * var(--rpx)); }
.part-chip {
    font-size: calc(24 * var(--rpx)); color: #57534e; background: white;
    border: calc(1 * var(--rpx)) solid #d6d3d1; border-radius: calc(999 * var(--rpx)); padding: calc(6 * var(--rpx)) calc(28 * var(--rpx));
}

.part-chip-active { background: #b91c1c; border-color: #b91c1c; color: white; }
.part-chip-selected { border-color: #b91c1c; color: #b91c1c; }
.fb-reason {
    width: 100%; border: calc(1 * var(--rpx)) solid #d6d3d1; border-radius: calc(12 * var(--rpx));
    padding: calc(14 * var(--rpx)) calc(18 * var(--rpx)); font-size: calc(26 * var(--rpx)); min-height: calc(100 * var(--rpx)); box-sizing: border-box;
}
.fb-submit {
    margin-top: calc(20 * var(--rpx)); background: #b91c1c; color: white;
    font-size: calc(28 * var(--rpx)); border-radius: calc(12 * var(--rpx)); padding: calc(10 * var(--rpx)) 0; width: 100%;
}

/* 卦名横幅 */
.gua-banner { background: #7f1d1d; padding: calc(28 * var(--rpx)); text-align: center; }
.gua-name { font-size: calc(44 * var(--rpx)); font-weight: bold; color: #fef3c7; }
.gua-info { font-size: calc(22 * var(--rpx)); color: #fecaca; margin-top: calc(8 * var(--rpx)); }

/* 区块 */
.block { padding: calc(24 * var(--rpx)) calc(32 * var(--rpx)); border-bottom: calc(1 * var(--rpx)) solid #e7e5e4; }
.block-title {
    font-size: calc(28 * var(--rpx)); font-weight: bold; color: #292524;
    border-left: calc(8 * var(--rpx)) solid #991b1b; padding-left: calc(16 * var(--rpx)); margin-bottom: calc(16 * var(--rpx));
}
.block-title-sky { border-left-color: #0369a1; }

/* 起课信息表 */
.info-table { border: calc(1 * var(--rpx)) solid #e7e5e4; border-radius: calc(12 * var(--rpx)); overflow: hidden; }
.tr { display: flex; border-bottom: calc(1 * var(--rpx)) solid #e7e5e4; }
.tr:last-child { border-bottom: none; }
.tr:nth-child(even) { background: #fafaf9; }
.th {
    background: #f5f5f4; color: #57534e; font-weight: 600;
    padding: calc(12 * var(--rpx)) calc(8 * var(--rpx)); font-size: calc(22 * var(--rpx)); text-align: center;
    border-right: calc(1 * var(--rpx)) solid #e7e5e4; flex: 1; min-width: calc(100 * var(--rpx));
}
.td {
    padding: calc(12 * var(--rpx)) calc(8 * var(--rpx)); font-size: calc(22 * var(--rpx)); text-align: center;
    border-right: calc(1 * var(--rpx)) solid #e7e5e4; flex: 1; color: #292524;
}
.td:last-child, .th:last-child { border-right: none; }
.td-left { text-align: left; padding-left: calc(16 * var(--rpx)); }
.shensha { display: flex; flex-wrap: wrap; gap: calc(4 * var(--rpx)) calc(16 * var(--rpx)); }
.shensha-item { font-size: calc(20 * var(--rpx)); white-space: nowrap; }

/* 排盘 */
.pan-scroll { white-space: nowrap; }
.pan { display: inline-block; background: #fafaf9; border: calc(1 * var(--rpx)) solid #e7e5e4; border-radius: calc(16 * var(--rpx)); padding: calc(16 * var(--rpx)) calc(20 * var(--rpx)); }
.pan-row { display: flex; align-items: center; gap: calc(12 * var(--rpx)); padding: calc(18 * var(--rpx)) 0; border-bottom: calc(1 * var(--rpx)) solid #e7e5e4; }
.pan-row:last-child { border-bottom: none; }
.c { font-size: calc(24 * var(--rpx)); text-align: center; }
.liushen { width: calc(36 * var(--rpx)); color: #57534e; }
.liuqin { width: calc(64 * var(--rpx)); font-weight: 600; }
.dizhi { width: calc(88 * var(--rpx)); color: #44403c; }
.tiangan { width: calc(36 * var(--rpx)); color: #57534e; }
.fushen { width: calc(96 * var(--rpx)); font-size: calc(20 * var(--rpx)); color: #78716c; text-align: left; }
.shiying { width: calc(56 * var(--rpx)); }
.tag { display: inline-block; padding: calc(2 * var(--rpx)) calc(10 * var(--rpx)); border-radius: calc(6 * var(--rpx)); font-size: calc(20 * var(--rpx)); font-weight: bold; color: white; }
.tag-shi { background: #b91c1c; }
.tag-ying { background: #1d4ed8; }
.fumu { color: #1d4ed8; }
.zi { color: #16a34a; }
.guan { color: #b91c1c; }
.cai { color: #d97706; }
.xiong { color: #7c3aed; }
.mark-extra { font-size: calc(18 * var(--rpx)); color: #b45309; }

.yao-area { display: flex; align-items: center; gap: calc(6 * var(--rpx)); width: calc(84 * var(--rpx)); justify-content: center; }
.yao { width: calc(60 * var(--rpx)); height: calc(4 * var(--rpx)); background: #1c1917; border-radius: calc(2 * var(--rpx)); }
.yao.yin { background: transparent; display: flex; justify-content: space-between; }
.yao.yin::before, .yao.yin::after { content: ""; width: calc(24 * var(--rpx)); height: calc(4 * var(--rpx)); background: #1c1917; border-radius: calc(2 * var(--rpx)); }
.yao.dong { box-shadow: 0 0 0 calc(3 * var(--rpx)) rgba(185, 28, 28, 0.25); }
.yao-mark { font-size: calc(22 * var(--rpx)); color: #b91c1c; font-weight: bold; width: calc(24 * var(--rpx)); }

/* 用神 */
.yongshen {
    background: #fffbeb; border: calc(1 * var(--rpx)) solid #fde68a; border-radius: calc(12 * var(--rpx));
    padding: calc(20 * var(--rpx)) calc(24 * var(--rpx)); font-size: calc(26 * var(--rpx)); color: #44403c; line-height: 1.7;
}

/* AI 解卦 */
.ai-box { background: white; border: calc(1 * var(--rpx)) solid #bae6fd; border-radius: calc(12 * var(--rpx)); padding: calc(24 * var(--rpx)); }
.ai-gen-wrap { display: flex; justify-content: center; padding: calc(12 * var(--rpx)) 0; }
.btn-ai {
    display: inline-block; background: #0369a1; color: white; font-size: calc(26 * var(--rpx));
    border-radius: calc(12 * var(--rpx)); padding: calc(12 * var(--rpx)) calc(32 * var(--rpx));
}
.btn-ai[disabled] { opacity: 0.5; }
.ai-status { font-size: calc(22 * var(--rpx)); color: #78716c; margin-left: calc(16 * var(--rpx)); display: block; margin-top: calc(12 * var(--rpx)); }
.ai-conclusion { font-size: calc(28 * var(--rpx)); font-weight: 600; color: #292524; line-height: 1.8; white-space: pre-wrap; margin-top: calc(16 * var(--rpx)); }
.detail-title { font-size: calc(24 * var(--rpx)); color: #0369a1; margin-top: calc(20 * var(--rpx)); padding-top: calc(16 * var(--rpx)); border-top: calc(1 * var(--rpx)) solid #bae6fd; }
.ai-detail { font-size: calc(24 * var(--rpx)); color: #57534e; line-height: 1.8; white-space: pre-wrap; margin-top: calc(12 * var(--rpx)); }
.fb-bar { display: flex; align-items: center; gap: calc(20 * var(--rpx)); margin-top: calc(20 * var(--rpx)); padding-top: calc(16 * var(--rpx)); border-top: calc(1 * var(--rpx)) solid #bae6fd; }
.fb-label { font-size: calc(24 * var(--rpx)); color: #78716c; }
.fb-btn { font-size: calc(24 * var(--rpx)); padding: calc(6 * var(--rpx)) calc(20 * var(--rpx)); border-radius: calc(999 * var(--rpx)); border: calc(1 * var(--rpx)) solid; }
.fb-good { color: #15803d; border-color: #15803d; }
.fb-bad { color: #b91c1c; border-color: #b91c1c; }
.fb-thanks { font-size: calc(22 * var(--rpx)); color: #a8a29e; margin-top: calc(16 * var(--rpx)); }

/* 不准的部分选择 */
.fb-parts { margin-top: calc(20 * var(--rpx)); padding-top: calc(16 * var(--rpx)); border-top: calc(1 * var(--rpx)) solid #bae6fd; }
.fb-part-row { display: flex; gap: calc(16 * var(--rpx)); margin-top: calc(12 * var(--rpx)); }
/* 注意：.part-chip 基础样式见上方弹层区块（line 48），此处不可重复定义，
   否则排在 -active/-selected 之后会覆盖高亮样式 */

.fb-reason {
    width: 100%; margin-top: calc(16 * var(--rpx)); border: calc(1 * var(--rpx)) solid #d6d3d1; border-radius: calc(12 * var(--rpx));
    padding: calc(14 * var(--rpx)) calc(18 * var(--rpx)); font-size: calc(26 * var(--rpx)); min-height: calc(100 * var(--rpx)); box-sizing: border-box;
}
.fb-submit {
    margin-top: calc(16 * var(--rpx)); display: inline-block; background: #b91c1c; color: white;
    font-size: calc(26 * var(--rpx)); border-radius: calc(12 * var(--rpx)); padding: calc(8 * var(--rpx)) calc(40 * var(--rpx));
}

/* 页脚 */
.footer { text-align: center; font-size: calc(22 * var(--rpx)); color: #a8a29e; margin-top: calc(32 * var(--rpx)); }

.btn-recast {
    margin: calc(32 * var(--rpx)) auto 0; display: block; background: white;
    border: calc(1 * var(--rpx)) solid #d6d3d1; border-radius: calc(12 * var(--rpx));
    font-size: calc(26 * var(--rpx)); color: #57534e; padding: 0 calc(40 * var(--rpx));
}
.block { padding: calc(24 * var(--rpx)) calc(32 * var(--rpx)); }

/* 自定义底部导航 */
.bottom-nav {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 10;
    display: flex; background: white; border-top: calc(1 * var(--rpx)) solid #e7e5e4;
    padding-bottom: env(safe-area-inset-bottom);
}
.nav-item {
    flex: 1; display: flex; flex-direction: column; align-items: center;
    padding: calc(12 * var(--rpx)) 0; color: #78716c;
}
.nav-icon { font-size: calc(36 * var(--rpx)); }
.nav-text { font-size: calc(20 * var(--rpx)); margin-top: calc(2 * var(--rpx)); }

/* 用户反馈小字 + 详情 + 删除按钮 */
.rec-fb { font-size: calc(20 * var(--rpx)); color: #fde68a; margin-top: calc(6 * var(--rpx)); }
.fb-detail-box {
    background: #fafaf9; border: calc(1 * var(--rpx)) solid #e7e5e4; border-radius: calc(12 * var(--rpx));
    padding: calc(16 * var(--rpx)); font-size: calc(24 * var(--rpx)); color: #57534e;
}
.facts-lines { background: #fafaf9; border: calc(1 * var(--rpx)) solid #e7e5e4; border-radius: calc(12 * var(--rpx)); padding: calc(16 * var(--rpx)); }
.facts-line { font-size: calc(22 * var(--rpx)); color: #44403c; line-height: 1.8; }
.mark-invalid { background: #78716c; color: white; }

.fb-detail-line { font-size: calc(24 * var(--rpx)); color: #57534e; line-height: 1.8; }

.ai-line { line-height: 1.8; margin-bottom: calc(2 * var(--rpx)); }

/* 复盘结果徽标 */
.rv-badge { font-size: calc(20 * var(--rpx)); padding: calc(2 * var(--rpx)) calc(14 * var(--rpx)); border-radius: calc(6 * var(--rpx)); color: white; }
.rv-ok { background: #15803d; }
.rv-fix { background: #d97706; }
.rv-invalid { background: #78716c; }

/* ===== 全局防溢出（不影响排盘横滑 pan-scroll 与顶栏 sticky） ===== */
img { max-width: 100%; height: auto; }
.td, .th, .ai-line, .facts-line, .fb-detail-line, .ai-conclusion, .ai-detail,
.rec-q, .rec-fb, .rec-gua, .yongshen, .openid-row, .nick-row, .ai-status,
.stat-label, .entry-text, .popup-title, .fb-label {
    overflow-wrap: anywhere;
    word-break: break-word;
}
.ai-conclusion, .ai-detail { white-space: pre-wrap; }
/* 长 ID/编号等等宽内容允许折行 */
span[style*="monospace"], .font-mono { overflow-wrap: anywhere; }

/* ===== 起课信息表防裁切：行不低于内容宽度，整表可横滑 ===== */
.info-table { overflow-x: auto; }
.info-table .tr { min-width: max-content; }
.info-table .th, .info-table .td { flex-shrink: 0; }
