/* ===== CSS VARIABLES ===== */
:root {
  --primary: #1677ff;
  --primary-light: #e6f0ff;
  --primary-dark: #0958d9;
  --success: #52c41a;
  --danger: #ff4d4f;
  --warning: #faad14;
  --bg: #f5f5f5;
  --card: #ffffff;
  --text: #1a1a1a;
  --text-sub: #8c8c8c;
  --border: #e8e8e8;
  --radius: 12px;
  --radius-sm: 8px;
  --shadow: 0 2px 12px rgba(0,0,0,0.06);
  --nav-h: 60px;
  --header-h: 56px;
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --safe-top: env(safe-area-inset-top, 0px);
  /* Wuxing colors */
  --jin: #d4af37;
  --mu: #4caf50;
  --shui: #2196f3;
  --huo: #f44336;
  --tu: #8d6e63;
}
/* ===== RESET ===== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html,body{height:100%;width:100%;overflow:hidden;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;}
body{font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Hiragino Sans GB','Microsoft YaHei',sans-serif;font-size:14px;color:var(--text);background:var(--bg);line-height:1.6;}
input,textarea,select,button{font-family:inherit;font-size:16px;outline:none;border:none;}
button{cursor:pointer;background:none;}
a{text-decoration:none;color:inherit;}

/* ===== AUTH SCREEN ===== */
#authScreen{position:fixed;inset:0;z-index:9999;background:linear-gradient(135deg,#1677ff 0%,#764ba2 100%);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:20px;padding-top:calc(var(--safe-top) + 24px);padding-bottom:calc(var(--safe-bottom) + 24px);overflow-y:auto;-webkit-overflow-scrolling:touch;}
.auth-logo{text-align:center;margin-bottom:20px;}
.auth-logo-icon{font-size:44px;color:#fff;display:block;margin-bottom:8px;}
.auth-logo-title{font-size:22px;font-weight:700;color:#fff;letter-spacing:2px;}
.auth-logo-subtitle{font-size:12px;color:rgba(255,255,255,0.8);margin-top:3px;}
.auth-card{background:#fff;border-radius:20px;padding:18px 16px;width:100%;max-width:380px;box-shadow:0 20px 60px rgba(0,0,0,0.15);flex-shrink:0;}
.auth-tabs{display:flex;background:#f5f5f5;border-radius:10px;padding:3px;margin-bottom:16px;}
.auth-tab{flex:1;padding:7px;text-align:center;border-radius:8px;font-size:14px;font-weight:500;color:var(--text-sub);transition:.2s;}
.auth-tab.active{background:#fff;color:var(--primary);box-shadow:0 1px 4px rgba(0,0,0,0.1);}
.auth-panel{display:none;}
.auth-panel.active{display:block;}
.auth-field{margin-bottom:11px;}
.auth-label{display:block;font-size:12px;color:var(--text-sub);margin-bottom:3px;}
.auth-input{width:100%;height:44px;padding:0 12px;border:1.5px solid var(--border);border-radius:10px;font-size:15px;color:var(--text);background:#fafafa;transition:.2s;}
.auth-input:focus{border-color:var(--primary);background:#fff;}
.auth-btn-primary{width:100%;height:46px;background:linear-gradient(135deg,#1677ff,#764ba2);color:#fff;border-radius:12px;font-size:16px;font-weight:600;margin-top:6px;letter-spacing:1px;transition:.15s;}
.auth-btn-primary:active{opacity:.85;transform:scale(.98);}
.auth-divider{display:flex;align-items:center;gap:12px;margin:16px 0 12px;color:#9aa4b2;font-size:12px;}
.auth-divider::before,.auth-divider::after{content:'';flex:1;height:1px;background:#e9edf3;}
.auth-btn-wechat{width:100%;height:46px;background:#07c160;color:#fff;border-radius:12px;font-size:15px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:8px;transition:.15s;}
.auth-btn-wechat:active{opacity:.9;transform:scale(.98);}
.auth-btn-wechat[disabled]{opacity:.6;cursor:not-allowed;}
.auth-wechat-tip{font-size:12px;color:var(--text-sub);text-align:center;line-height:1.6;margin-top:10px;}
.auth-error{color:var(--danger);font-size:13px;margin-top:6px;text-align:center;min-height:18px;}
/* Register panel extra compact */
#registerPanel .auth-field{margin-bottom:9px;}
#registerPanel .auth-input{height:42px;font-size:15px;}

/* ===== APP SHELL ===== */
#appShell{position:fixed;inset:0;display:none;flex-direction:column;background:var(--bg);padding-top:var(--safe-top);}
#appShell.visible{display:flex;}

/* ===== PAGE WRAP ===== */
.page-wrap{flex:1;overflow:hidden;position:relative;}
.page{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;background:var(--bg);display:none;padding-bottom:calc(var(--nav-h) + var(--safe-bottom) + 10px);}
.page.active{display:block;}
/* Chat tab is special - no scroll on page, managed internally */
#pageChat{padding-bottom:0;display:none;flex-direction:column;}
#pageChat.active{display:flex;}

/* ===== BOTTOM NAV ===== */
.bottom-nav{flex-shrink:0;height:calc(var(--nav-h) + var(--safe-bottom));padding-bottom:var(--safe-bottom);background:#fff;border-top:1px solid var(--border);display:flex;z-index:100;}
.nav-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;color:var(--text-sub);font-size:9px;transition:.15s;touch-action:manipulation;padding:0 1px;}
.nav-btn .nav-icon{font-size:17px;line-height:1;}
.nav-btn.active{color:var(--primary);}
.nav-btn:active{opacity:.7;}

/* ── 解读内容排版 ── */
.jiedu-ai-text{font-size:14px;line-height:1.9;color:#fff;word-break:break-word;overflow-wrap:break-word;}
/* H3 — 深色加粗，细左边框点缀 */
.jiedu-ai-text h3{font-size:15px;font-weight:700;color:#1f2937;margin:18px 0 8px;padding:6px 10px;border-left:3px solid var(--primary);background:#f8f9fc;border-radius:0 4px 4px 0;}
.jiedu-ai-text h3:first-child{margin-top:4px;}
/* H4 — 深灰加粗，无背景 */
.jiedu-ai-text h4{font-size:14px;font-weight:700;color:#374151;margin:14px 0 4px;padding:0;border:none;display:block;}
.jiedu-ai-text h4::before{display:none;}
/* 段落 */
.jiedu-ai-text p{margin:6px 0;color:#4b5563;font-size:14px;line-height:1.9;}
/* 加粗 — 深色，仅加粗不加颜色 */
.jiedu-ai-text strong{font-weight:700;color:#1f2937;}
/* 强调 — 主色点缀 */
.jiedu-ai-text em{font-style:normal;color:var(--primary);font-weight:600;}
/* 列表 */
.jiedu-ai-text ul{margin:6px 0;padding:0;list-style:none;}
.jiedu-ai-text li{padding:3px 0 3px 16px;position:relative;color:#4b5563;font-size:13.5px;line-height:1.8;}
.jiedu-ai-text li::before{content:'•';position:absolute;left:3px;color:var(--primary);font-size:15px;line-height:1.5;}
.jiedu-ai-text .jiedu-block-sep{display:block;height:6px;}
/* 五行天干地支颜色（仅点缀，不加粗） */
.jz-wood{color:#16a34a;}
.jz-fire{color:#dc2626;}
.jz-earth{color:#d97706;}
.jz-metal{color:#6b7280;}
.jz-water{color:#2563eb;}
/* 流式光标 */
.jiedu-ai-text.streaming::after{content:'▋';animation:blink .9s step-end infinite;color:var(--primary);font-size:13px;}
@keyframes blink{0%,100%{opacity:1}50%{opacity:0}}

/* ===== 主盘弹窗 ===== */
.main-bazi-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:8000;display:flex;align-items:center;justify-content:center;padding:14px;}
.main-bazi-modal{background:#fff;border-radius:22px;padding:18px 16px 20px;width:min(100%,560px);max-width:560px;max-height:min(90vh,860px);overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,.18);}
.main-bazi-modal-title{font-size:17px;font-weight:700;color:var(--text);margin-bottom:8px;display:flex;align-items:center;gap:8px;}
.main-bazi-modal-desc{font-size:13px;color:var(--text-sub);line-height:1.6;margin-bottom:20px;}
.main-bazi-modal-name{font-size:15px;font-weight:600;color:var(--primary);background:#f0f5ff;border-radius:8px;padding:8px 14px;margin-bottom:18px;}
.main-bazi-modal-btns{display:flex;gap:10px;}
.main-bazi-modal-btns .btn-cancel{flex:1;height:46px;border-radius:12px;border:1.5px solid var(--border);font-size:15px;color:var(--text-sub);background:#fafafa;}
.main-bazi-modal-btns .btn-confirm{flex:2;height:46px;border-radius:12px;background:linear-gradient(135deg,#1677ff,#764ba2);color:#fff;font-size:15px;font-weight:600;}
.chat-add-bazi-modal-shell{display:flex;flex-direction:column;gap:12px;}
.chat-add-bazi-modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:8px;border-bottom:1px solid #f1f3f7;}
.chat-add-bazi-modal-head .main-bazi-modal-title{margin:0;font-size:18px;}
.chat-add-bazi-modal-close{font-size:18px;color:var(--text-sub);padding:6px;line-height:1;}
.chat-add-bazi-modal-body{margin:0 -2px;}
.chat-add-bazi-modal-body .paipan-form-section{padding:0;}
.chat-add-bazi-modal-body .m-card{margin:0;box-shadow:none;border:1px solid #eef1f6;border-radius:18px;}
.chat-add-bazi-modal-body .m-card-body{padding:16px 14px 18px;}
.chat-add-bazi-modal-body .m-field{margin-bottom:12px;}
.chat-add-bazi-modal-body .m-input{height:46px;font-size:15px;border-radius:12px;}
.chat-add-bazi-modal-body .m-toggle{height:42px;border-radius:12px;font-size:13px;}
.chat-add-bazi-modal-body .row-2{grid-template-columns:1.3fr 1.2fr;gap:4px;}
.chat-add-bazi-modal-body .row-2 .m-input{width:100%;font-size:14px;padding:0 10px;}
.chat-add-bazi-modal-body .m-btn-primary{height:48px;border-radius:14px;}

/* ===== 修改主盘警告弹窗 ===== */
.change-main-warning-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:8100;display:flex;align-items:center;justify-content:center;padding:20px;}
.change-main-warning{background:#fff;border-radius:16px;padding:24px 20px;width:100%;max-width:360px;}
.change-main-warning-title{font-size:16px;font-weight:700;color:var(--text);margin-bottom:10px;}
.change-main-warning-list{font-size:13px;color:var(--text-sub);line-height:1.8;margin:10px 0 18px;padding-left:16px;}
.change-main-warning-btns{display:flex;gap:10px;}
.change-main-warning-btns button{flex:1;height:44px;border-radius:10px;font-size:14px;font-weight:500;}
.change-main-warning-btns .btn-cancel{border:1.5px solid var(--border);color:var(--text-sub);background:#fafafa;}
.change-main-warning-btns .btn-ok{background:linear-gradient(135deg,#ff4d4f,#ff7875);color:#fff;}

/* ===== CARDS ===== */
.m-card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);margin:12px 14px;overflow:hidden;}
.m-card-header{padding:14px 16px 10px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #f0f0f0;}
.m-card-title{font-size:15px;font-weight:600;color:var(--text);display:flex;align-items:center;gap:6px;}
.m-card-body{padding:14px 16px;}

/* ===== FORM ELEMENTS ===== */
.m-input{width:100%;height:48px;padding:0 14px;border:1.5px solid var(--border);border-radius:10px;font-size:16px;color:var(--text);background:#fafafa;transition:.2s;}
.m-input:focus{border-color:var(--primary);background:#fff;}
.m-field{margin-bottom:14px;}
.m-field label{display:block;font-size:12px;font-weight:500;color:var(--text-sub);margin-bottom:5px;}
.m-toggle-group{display:flex;gap:8px;}
.m-toggle{flex:1;height:44px;border:1.5px solid var(--border);border-radius:10px;font-size:14px;font-weight:500;color:var(--text-sub);background:#fafafa;transition:.2s;touch-action:manipulation;}
.m-toggle.active{border-color:var(--primary);background:var(--primary-light);color:var(--primary);}
.m-btn-primary{width:100%;height:50px;background:linear-gradient(135deg,#1677ff,#764ba2);color:#fff;border-radius:12px;font-size:16px;font-weight:600;letter-spacing:1px;transition:.15s;touch-action:manipulation;}
.m-btn-primary:active{opacity:.85;transform:scale(.99);}
.m-btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none;}
.m-btn-secondary{height:40px;padding:0 16px;background:#f0f5ff;color:var(--primary);border-radius:8px;font-size:14px;font-weight:500;transition:.15s;}
.m-btn-secondary:active{opacity:.8;}
/* ===== PAIPAN (Tab 1) ===== */
.paipan-form-section{padding:12px 14px 0;}
.row-2{display:grid;grid-template-columns:3fr 2fr;gap:10px;}
.row-2 .m-field{min-width:0;}
.row-2 .m-input{font-size:15px;padding:0 8px;}
@media(max-width:360px){.row-2{grid-template-columns:1fr;gap:6px;}}

/* 八字命盘 grid */
.bazi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:4px 0;}
.bazi-col-header{display:none;}
.bazi-pillar{background:#f8f9ff;border-radius:12px;padding:12px 4px 10px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:5px;box-shadow:0 2px 8px rgba(0,0,0,0.06);border:1.5px solid #e8eaf6;position:relative;}
.bazi-pillar-label{font-size:10px;font-weight:600;color:var(--text-sub);letter-spacing:0.5px;line-height:1;}
.bazi-stem{font-size:26px;font-weight:700;line-height:1;}
.bazi-divider{width:20px;height:1px;background:#d0d0d0;margin:1px 0;}
.bazi-branch{font-size:24px;font-weight:600;line-height:1;}
.bazi-tg{font-size:11px;padding:2px 7px;background:rgba(0,0,0,0.06);border-radius:10px;color:var(--text-sub);font-weight:500;margin-top:1px;}
.bazi-current{border:2px solid var(--primary)!important;background:linear-gradient(160deg,#f0f7ff,#e8f0fe)!important;box-shadow:0 3px 12px rgba(22,119,255,0.15)!important;}
.bazi-current .bazi-pillar-label{color:var(--primary);font-weight:700;}
.bazi-pillar.bazi-unknown{opacity:.55;border-style:dashed!important;}
.bazi-pillar.bazi-unknown .bazi-pillar-label::after{content:'?';color:#faad14;margin-left:2px;}

/* Wuxing bars */
.wuxing-bars{display:flex;flex-direction:column;gap:8px;}
.wx-row{display:flex;align-items:center;gap:10px;}
.wx-label{width:28px;font-size:13px;font-weight:600;flex-shrink:0;}
.wx-bar-wrap{flex:1;height:18px;background:#f0f0f0;border-radius:9px;overflow:hidden;}
.wx-bar{height:100%;border-radius:9px;transition:width .6s ease;}
.wx-count{width:24px;text-align:right;font-size:12px;color:var(--text-sub);}

/* Dayun chips */
.dayun-scroll{display:flex;gap:8px;overflow-x:auto;padding:2px 0;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
.dayun-scroll::-webkit-scrollbar{display:none;}
.dayun-chip{flex-shrink:0;background:#f0f5ff;border-radius:10px;padding:8px 12px;text-align:center;border:1.5px solid transparent;transition:.2s;}
.dayun-chip.current{background:#fff3e0;border-color:#faad14;}
.dayun-chip-stem{font-size:15px;font-weight:700;}
.dayun-chip-branch{font-size:14px;font-weight:600;}
.dayun-chip-age{font-size:11px;color:var(--text-sub);margin-top:2px;}

/* AI quick actions */
.ai-chips{display:flex;flex-wrap:wrap;gap:8px;}
.ai-chip{padding:9px 16px;background:#f0f5ff;border-radius:20px;font-size:13px;color:var(--primary);font-weight:500;border:1px solid #d0e4ff;transition:.15s;touch-action:manipulation;}
.ai-chip:active{background:var(--primary);color:#fff;}
/* AI 解读入口按钮 */
.ai-guide-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:12px;padding:13px;background:linear-gradient(135deg,#7c3aed,#4f6ef7);color:#fff;border:none;border-radius:14px;font-size:15px;font-weight:600;cursor:pointer;touch-action:manipulation;transition:.15s;box-shadow:0 3px 12px rgba(124,58,237,.3);}
.ai-guide-btn:active{opacity:.88;transform:scale(.98);}
.ai-guide-btn .ai-guide-arrow{font-size:18px;transition:transform .2s;}
.ai-guide-btn:active .ai-guide-arrow{transform:translateX(4px);}

/* Result section */
.result-section{display:none;}
.result-section.visible{display:block;}
.section-divider{height:1px;background:var(--border);margin:0 16px;}

/* ===== QZSY (Tab 2) ===== */
.qzsy-empty{text-align:center;padding:60px 24px;}
.qzsy-empty-icon{font-size:48px;margin-bottom:16px;}
.qzsy-empty-text{font-size:15px;color:var(--text-sub);margin-bottom:20px;}

/* 命盘摘要卡 */
.qzsy-info-card{margin:12px 14px 0;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:14px;padding:14px 16px 12px;color:#fff;}
.qzsy-info-title{font-size:11px;opacity:.75;margin-bottom:10px;letter-spacing:.5px;}
.qzsy-info-row{display:flex;justify-content:space-between;}
.qzsy-info-item{text-align:center;flex:1;}
.qzsy-info-label{font-size:10px;opacity:.7;margin-bottom:2px;}
.qzsy-info-val{font-size:16px;font-weight:700;}

/* 宫位网格外层 - info-card 风格白色包裹卡 */
.qzsy-palace-wrapper{margin:10px 14px 0;background:#fff;border-radius:14px;border:1px solid #eef0f6;box-shadow:0 2px 14px rgba(80,80,120,0.09);position:relative;overflow:hidden;padding:14px 10px 10px;}
.qzsy-palace-wrapper::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);}
.qzsy-palace-section-title{font-size:13px;font-weight:700;color:#1a1a2e;margin-bottom:10px;letter-spacing:.3px;display:flex;align-items:center;gap:5px;padding:0 2px;}

/* 宫位网格 */
.palace-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:0;}

/* ── 宫位卡片 ── 参考神煞分析卡片风格：白底、左色条、badge */
.palace-card{
  background:#fff;
  border-radius:10px;
  padding:0 0 8px;
  min-height:88px;
  border:1px solid var(--border,#e8e8e8);
  box-shadow:var(--shadow,0 2px 12px rgba(0,0,0,0.06));
  position:relative;
  overflow:hidden;
}
/* 默认左色条（无五行时用主色） */
.palace-card::before{
  content:'';position:absolute;top:0;left:0;bottom:0;width:3px;
  background:var(--primary,#1677ff);border-radius:10px 0 0 10px;
}

/* ── 五行左色条 ── */
.palace-card.wux-water::before {background:var(--shui,#2196f3);}
.palace-card.wux-wood::before  {background:var(--mu,#4caf50);}
.palace-card.wux-fire::before  {background:var(--huo,#f44336);}
.palace-card.wux-metal::before {background:var(--jin,#d4af37);}
.palace-card.wux-earth::before {background:var(--tu,#8d6e63);}

/* 命宫 — warning 金边框高亮 */
.palace-card.mingong{
  border-color:rgba(250,173,20,0.5)!important;
  box-shadow:0 2px 12px rgba(250,173,20,0.14)!important;
}
.palace-card.mingong::before{background:var(--warning,#faad14)!important;}

/* ── 卡片头部 ── */
.palace-card-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:7px 8px 4px 10px;  /* 左边让出色条位置 */
}
.palace-num{display:none;}
.palace-name{font-size:10.5px;font-weight:700;color:var(--text,#1a1a1a);flex:1;letter-spacing:.3px;}

/* 地支 badge（对齐神煞的右侧 "命中/未见" badge 风格） */
.palace-dizhi-tag{
  font-size:9px;font-weight:700;
  padding:1px 6px;border-radius:10px;flex-shrink:0;
  background:var(--primary-light,#e6f0ff);
  color:var(--primary,#1677ff);
  border:1px solid rgba(22,119,255,0.2);
}
/* 五行 dizhi-tag 颜色 */
.palace-card.wux-water .palace-dizhi-tag{background:rgba(33,150,243,0.1);color:#1565c0;border-color:rgba(33,150,243,0.25);}
.palace-card.wux-wood  .palace-dizhi-tag{background:rgba(76,175,80,0.1); color:#2e7d32;border-color:rgba(76,175,80,0.25);}
.palace-card.wux-fire  .palace-dizhi-tag{background:rgba(244,67,54,0.1); color:#c62828;border-color:rgba(244,67,54,0.25);}
.palace-card.wux-metal .palace-dizhi-tag{background:rgba(212,175,55,0.12);color:#8a6200;border-color:rgba(212,175,55,0.3);}
.palace-card.wux-earth .palace-dizhi-tag{background:rgba(141,110,99,0.1);color:#5d4037;border-color:rgba(141,110,99,0.25);}
.palace-card.mingong .palace-name{color:#7c4d00;}
.palace-card.mingong .palace-dizhi-tag{background:rgba(250,173,20,0.12);color:#ad6800;border-color:rgba(250,173,20,0.35);}

/* ── 地支大字 ── */
.palace-dizhi{font-size:20px;font-weight:800;text-align:center;line-height:1;padding:2px 5px 5px;}

/* ── 星曜区域 ── */
.palace-stars-main{display:flex;flex-wrap:wrap;gap:3px;padding:0 8px 3px 10px;}

/* ── 化耀标记 ── */
.star-huayao{font-size:7.5px;font-weight:700;padding:0 3px;margin-left:2px;border-radius:3px;vertical-align:middle;line-height:1.6;}
.star-huayao.hy-pos{color:#237804;background:rgba(82,196,26,0.18);}
.star-huayao.hy-neg{color:#a8071a;background:rgba(255,77,79,0.14);}
.star-huayao.hy-neu{color:#595959;background:rgba(0,0,0,0.07);}

/* ── 分隔线 ── */
.palace-stars-sep{margin:3px 10px 3px;border:none;border-top:1px solid var(--border,#e8e8e8);}

/* ── 七政四余AI解读按钮 ── */
.qzsy-ai-type-btn{padding:7px 14px;border:1.5px solid #7c3aed;border-radius:20px;background:#fff;color:#6d28d9;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s;}
.qzsy-ai-type-btn:active,.qzsy-ai-type-btn.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:#764ba2;}

/* ── 星曜明细表 ── */
.qzsy-star-detail-wrapper{background:#fff;border-radius:12px;margin:10px 0 4px;padding:10px 12px 6px;box-shadow:0 1px 4px rgba(0,0,0,0.07);}
.sdt-header{font-size:12px;color:#444;padding:4px 0 8px;border-bottom:1px solid #e8ecf0;margin-bottom:6px;font-weight:500;}
.sdt-header .sdt-liming{color:#d4450c;font-weight:600;}
.sdt-header .sdt-anshen{color:#1677ff;font-weight:600;}
.sdt-table{width:100%;border-collapse:collapse;font-size:11.5px;}
.sdt-table th{padding:4px 6px;background:#f5f7fa;color:#666;font-weight:600;text-align:left;border-bottom:1px solid #e0e4ea;}
.sdt-table td{padding:4px 6px;border-bottom:1px solid #f0f2f5;vertical-align:middle;}
.sdt-table tr:last-child td{border-bottom:none;}
.sdt-star-name{font-weight:700;color:#222;min-width:14px;}
.sdt-xiu{color:#8b5cf6;}
.sdt-palace{color:#0958d9;}
.sdt-status{display:flex;flex-wrap:wrap;gap:2px;}
.sdt-status-tag{font-size:10px;padding:1px 4px;border-radius:3px;font-weight:600;}
.sdt-mw-yuan{background:#fff7e6;color:#d46b08;}
.sdt-mw-miao{background:#f0fff4;color:#237804;}
.sdt-mw-wang{background:#e8f4ff;color:#0958d9;}
.sdt-mw-li{background:#f9f0ff;color:#531dab;}
.sdt-mw-ping{background:#f5f5f5;color:#8c8c8c;}
.sdt-mw-xian{background:#fff1f0;color:#cf1322;}
.sdt-sn-shun{background:#f0fff4;color:#237804;}
.sdt-sn-ni{background:#fff1f0;color:#cf1322;}
.sdt-sn-other{background:#f5f5f5;color:#595959;}

/* ── 神煞区域 ── */
.palace-stars-shensha{display:flex;flex-wrap:wrap;gap:3px;padding:0 8px 2px 10px;}
.palace-more{font-size:9px;color:var(--text-sub,#8c8c8c);padding:1px 4px;line-height:1.5;}

/* ── 星曜 pill — 对齐系统 pill 风格 ── */
.palace-star{font-size:9.5px;padding:2px 6px;border-radius:10px;font-weight:500;line-height:1.5;white-space:nowrap;}
/* 七政 - 主色蓝 */
.star-main{background:rgba(22,119,255,0.08);color:var(--primary-dark,#0958d9);border:1px solid rgba(22,119,255,0.2);}
/* 四余 - 金/琥珀 */
.star-secondary{background:rgba(212,175,55,0.1);color:#7c5800;border:1px solid rgba(212,175,55,0.28);}
/* 吉神 - 成功绿 */
.star-shen{background:rgba(82,196,26,0.1);color:#237804;border:1px solid rgba(82,196,26,0.25);}
/* 煞星 - 危险红 */
.star-sha{background:rgba(255,77,79,0.1);color:#a8071a;border:1px solid rgba(255,77,79,0.22);}
/* 其他 - 系统灰 */
.star-neutral{background:#f5f5f5;color:var(--text-sub,#8c8c8c);border:1px solid var(--border,#e8e8e8);}

/* 神煞汇总 */
.shensha-summary-card{margin:10px 14px 12px;background:#fff;border-radius:12px;border:1.5px solid #eef0f6;overflow:hidden;}
.shensha-summary-header{padding:10px 14px;background:#f8f9ff;border-bottom:1px solid #eef0f6;display:flex;align-items:center;justify-content:space-between;cursor:pointer;user-select:none;}
.shensha-summary-title{font-size:13px;font-weight:700;color:var(--text);}
.shensha-summary-count{font-size:11px;color:var(--text-sub);}
.shensha-summary-body{padding:10px 14px 12px;display:flex;flex-wrap:wrap;gap:5px;}
.shensha-item{font-size:10.5px;padding:2px 7px;border-radius:10px;font-weight:500;}

/* 图例 */
.qzsy-legend{display:flex;flex-wrap:wrap;gap:6px;padding:10px 14px 14px;}

/* Summary strip（兼容旧引用，保留但不再用于主显示）*/
.qzsy-summary{display:flex;gap:12px;overflow-x:auto;padding:12px 16px;background:var(--card);border-bottom:1px solid var(--border);-webkit-overflow-scrolling:touch;scrollbar-width:none;}
.qzsy-summary::-webkit-scrollbar{display:none;}
.qzsy-summary-item{flex-shrink:0;text-align:center;}
.qzsy-summary-label{font-size:11px;color:var(--text-sub);}
.qzsy-summary-val{font-size:15px;font-weight:700;color:var(--text);}

/* ===== CHAT (Tab 3) ===== */
.chat-bazi-selector{flex-shrink:0;height:44px;background:var(--card);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 14px;gap:8px;}
.chat-bazi-label{font-size:12px;color:var(--text-sub);flex-shrink:0;}
.chat-bazi-name{font-size:13px;font-weight:600;color:var(--text);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.chat-bazi-change{font-size:12px;color:var(--primary);padding:4px 10px;background:var(--primary-light);border-radius:12px;flex-shrink:0;}
.chat-hepan-btn{background:#fff3e0;color:#d46b08;border:1px solid #ffd591;}
.chat-hepan-btn.active{background:#f6ffed;color:#389e0d;border-color:#b7eb8f;}
.chat-hepan-info{border-left-color:#d46b08;background:#fff8f0;}
.chat-messages{flex:1;overflow-y:auto;padding:12px 10px;-webkit-overflow-scrolling:touch;}
.chat-empty{text-align:center;padding:40px 20px;color:var(--text-sub);}
.chat-empty-icon{font-size:40px;margin-bottom:12px;}
/* ===== 追问气泡 ===== */
.followup-bar{padding:8px 14px 4px;display:flex;flex-wrap:wrap;gap:7px;}
.followup-chip{background:#f0f5ff;color:#4f6ef7;border:1px solid #c7d7fc;border-radius:16px;padding:6px 14px;font-size:13px;cursor:pointer;transition:.15s;white-space:normal;line-height:1.4;}
.followup-chip:active{background:#4f6ef7;color:#fff;}
/* ===== 分析分类快捷气泡行 ===== */
.analysis-quick-chips{overflow-x:auto;-webkit-overflow-scrolling:touch;display:flex;gap:7px;padding:6px 14px 8px;scrollbar-width:none;background:#f8f5ff;border-left:3px solid var(--primary);margin-bottom:4px;}
.analysis-quick-chips::-webkit-scrollbar{display:none;}
.aq-chip{background:#fff;color:#4f6ef7;border:1px solid #c7d7fc;border-radius:16px;padding:5px 13px;font-size:12px;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:.15s;}
.aq-chip:active{background:#4f6ef7;color:#fff;border-color:#4f6ef7;}
.aq-chip.active{background:#4f6ef7;color:#fff;border-color:#4f6ef7;font-weight:600;box-shadow:0 2px 8px rgba(79,110,247,.35);}
.msg-row{margin-bottom:12px;display:flex;gap:8px;align-items:flex-end;}
.msg-row.ai{display:flex;flex-direction:column;align-items:flex-start;gap:6px;width:100%;}
.msg-row.user{flex-direction:row-reverse;}
.msg-avatar{display:none;}
.msg-avatar.ai{background:linear-gradient(135deg,#1677ff,#764ba2);color:#fff;}
.msg-avatar.user{background:#e8f5e9;color:#2e7d32;}
.msg-bubble{max-width:72%;padding:10px 14px;border-radius:16px;font-size:14px;line-height:1.6;word-break:break-word;}
.msg-row.ai .msg-bubble{background:#fff;box-shadow:0 1px 4px rgba(0,0,0,0.08);border-bottom-left-radius:4px;color:var(--text);}
.msg-row.user .msg-bubble{background:var(--primary);color:#fff;border-bottom-right-radius:4px;}
.msg-row.ai .msg-bubble-pro{background:#fff;border-radius:16px;box-shadow:0 2px 12px rgba(0,0,0,.07);padding:14px 16px;max-width:min(98%, 1120px);width:fit-content;}
.msg-row.ai .msg-bubble-pro .jiedu-ai-text{font-size:14px;line-height:1.95;color:#4b5563;max-width:100%;}
@media (min-width: 1200px){.msg-row.ai .msg-bubble-pro{max-width:min(99%, 1320px);}}
.msg-row.ai .msg-bubble-pro .jiedu-ai-text h3{font-size:15px;font-weight:700;color:#1f2937;margin:18px 0 8px;padding:7px 10px;border-left:3px solid var(--primary);background:#f8f9fc;border-radius:0 5px 5px 0;line-height:1.55;}
.msg-row.ai .msg-bubble-pro .jiedu-ai-text h3:first-child{margin-top:2px;}
.msg-row.ai .msg-bubble-pro .jiedu-ai-text h4{font-size:14px;font-weight:700;color:#374151;margin:14px 0 5px;padding:5px 9px;border-left:3px solid #d8e1ff;background:#fbfcff;border-radius:0 5px 5px 0;display:block;line-height:1.6;}
.msg-row.ai .msg-bubble-pro .jiedu-ai-text h4:first-child{margin-top:2px;}
.msg-row.ai .msg-bubble-pro .jiedu-ai-text p{margin:7px 0;color:#4b5563;font-size:14px;line-height:1.9;}
.msg-row.ai .msg-bubble-pro .jiedu-ai-text p:first-child,.msg-row.ai .msg-bubble-pro .jiedu-ai-text ul:first-child,.msg-row.ai .msg-bubble-pro .jiedu-ai-text ol:first-child{margin-top:2px;}
.msg-row.ai .msg-bubble-pro .jiedu-ai-text p:last-child,.msg-row.ai .msg-bubble-pro .jiedu-ai-text ul:last-child,.msg-row.ai .msg-bubble-pro .jiedu-ai-text ol:last-child{margin-bottom:0;}
.msg-row.ai .msg-bubble-pro .jiedu-ai-text strong{font-weight:700;color:#1f2937;}
.msg-row.ai .msg-bubble-pro .jiedu-ai-text em{font-style:normal;color:var(--primary);font-weight:600;}
.msg-row.ai .msg-bubble-pro .jiedu-ai-text ul,.msg-row.ai .msg-bubble-pro .jiedu-ai-text ol{margin:7px 0 8px;padding:0;list-style:none;}
.msg-row.ai .msg-bubble-pro .jiedu-ai-text li{padding:3px 0 3px 18px;position:relative;color:#4b5563;font-size:13.5px;line-height:1.85;}
.msg-row.ai .msg-bubble-pro .jiedu-ai-text li::before{content:'•';position:absolute;left:3px;color:var(--primary);font-size:15px;line-height:1.5;}
.msg-row.ai .msg-bubble-pro .jiedu-ai-text ol{counter-reset:ai-list;}
.msg-row.ai .msg-bubble-pro .jiedu-ai-text ol li{counter-increment:ai-list;padding-left:24px;}
.msg-row.ai .msg-bubble-pro .jiedu-ai-text ol li::before{content:counter(ai-list) ".";font-size:12px;font-weight:700;line-height:1.9;}
.msg-row.ai .msg-bubble-pro .jiedu-ai-text a{color:#1677ff;text-decoration:none;overflow-wrap:anywhere;}
.msg-row.ai .msg-bubble-pro .jiedu-ai-text a:hover{text-decoration:underline;}
.msg-row.ai .msg-bubble-pro .jiedu-ai-text .jiedu-block-sep{display:block;height:7px;}
.msg-row.ai .msg-bubble-pro .jiedu-ai-text .ai-section-label{font-weight:700;color:#1f2937;}
.msg-row.ai .msg-bubble-pro .msg-time{margin-top:10px;color:#9ca3af;}
.msg-time{font-size:10px;opacity:0.6;margin-top:4px;text-align:right;}
.typing-dot{display:inline-flex;gap:4px;padding:8px 12px;}
.typing-dot span{width:7px;height:7px;background:#bbb;border-radius:50%;animation:typing .8s infinite;}
.typing-dot span:nth-child(2){animation-delay:.15s;}
.typing-dot span:nth-child(3){animation-delay:.3s;}
@keyframes typing{0%,60%,100%{transform:translateY(0);}30%{transform:translateY(-5px);}}
.chat-input-bar{flex-shrink:0;background:#fff;border-top:1px solid var(--border);padding:8px 12px;padding-bottom:calc(8px + var(--safe-bottom));display:flex;align-items:flex-end;gap:8px;}
.chat-textarea{flex:1;min-height:40px;max-height:100px;padding:10px 12px;border:1.5px solid var(--border);border-radius:20px;font-size:16px;color:var(--text);background:#fafafa;resize:none;line-height:1.4;overflow-y:auto;}
.chat-textarea:focus{border-color:var(--primary);background:#fff;}
.chat-send-btn{height:40px;padding:0 18px;background:var(--primary);border-radius:20px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:.15s;color:#fff;font-size:13px;font-weight:600;white-space:nowrap;}
.chat-send-btn:active{opacity:.85;transform:scale(.96);}
.chat-send-btn:disabled{background:#ccc;}
.chat-send-btn.is-stop{background:#ff4d4f;}
.chat-send-btn.is-stop.stopping{background:#bfbfbf;cursor:wait;}
.chat-followup-btn{height:40px;padding:0 16px;background:#fff7f0;color:#ff7043;border:1px solid #ffb48a;border-radius:20px;display:none;align-items:center;justify-content:center;flex-shrink:0;transition:.15s;font-size:13px;font-weight:600;white-space:nowrap;}
.chat-followup-btn:active{opacity:.85;transform:scale(.96);}
.chat-followup-btn:disabled{background:#f3f3f3;color:#bbb;border-color:#ddd;}
/* 确认弹窗（居中） */
.analysis-confirm-backdrop{position:fixed;inset:0;z-index:5999;background:rgba(0,0,0,.45);display:none;align-items:center;justify-content:center;}
.analysis-confirm-backdrop.show{display:flex;}
.analysis-confirm-card{background:#fff;border-radius:16px;width:calc(100% - 48px);max-width:400px;padding:24px 20px 20px;box-shadow:0 8px 32px rgba(0,0,0,.18);opacity:0;transform:scale(.94);transition:opacity .22s ease,transform .22s ease;pointer-events:none;}
.analysis-confirm-backdrop.show .analysis-confirm-card{opacity:1;transform:scale(1);pointer-events:auto;}
.acc-title{font-size:15px;font-weight:700;color:#333;margin-bottom:4px;}
.acc-sub{font-size:13px;color:#888;margin-bottom:18px;}
.acc-btns{display:flex;gap:10px;}
.acc-btn{flex:1;height:44px;border-radius:12px;border:none;font-size:14px;font-weight:600;cursor:pointer;transition:.15s;}
.acc-btn.ghost{background:#f0f4ff;color:var(--primary);}
.acc-btn.primary{background:linear-gradient(135deg,#7c3aed,#4f6ef7);color:#fff;box-shadow:0 3px 10px rgba(79,110,247,.35);}
.acc-btn:active{opacity:.85;transform:scale(.97);}
.chat-send-btn .send-spinner,.chat-followup-btn .send-spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite;display:block;}
.chat-followup-btn .send-spinner{border-color:rgba(255,112,67,.25);border-top-color:#ff7043;}
@keyframes spin{to{transform:rotate(360deg);}}
.stream-cursor{display:inline-block;color:var(--primary,#6c5ce7);animation:blink-cursor 1s step-start infinite;}
@keyframes blink-cursor{50%{opacity:0;}}
.stream-hint{font-size:11px;color:var(--text-sub);margin-top:6px;font-style:italic;opacity:.7;animation:stream-hint-blink 1.5s ease infinite;}
@keyframes stream-hint-blink{0%,100%{opacity:.7;}50%{opacity:.3;}}
.msg-copy-btn{display:inline-block;font-size:11px;color:var(--text-sub);background:#f5f5f5;border:1px solid var(--border);border-radius:10px;padding:3px 10px;margin-top:6px;cursor:pointer;transition:.15s;touch-action:manipulation;}
.msg-copy-btn:active{background:#e8e8e8;}
.msg-copy-btn.copied{color:var(--success);border-color:var(--success);background:#f6ffed;}
.msg-save-img-btn{display:inline-block;font-size:11px;color:#1677ff;background:#f0f5ff;border:1px solid #d0e4ff;border-radius:10px;padding:3px 10px;margin-top:6px;margin-left:6px;cursor:pointer;transition:.15s;touch-action:manipulation;}
.msg-save-img-btn:active{background:#e6f0ff;}
.msg-rating-btn{display:inline-block;font-size:11px;color:#c92a2a;background:#fff5f5;border:1px solid #ffd6d6;border-radius:10px;padding:3px 10px;margin-top:6px;margin-left:6px;cursor:pointer;transition:.15s;touch-action:manipulation;}
.msg-rating-btn:active{background:#ffecec;}
.msg-rating-btn.rated{color:#b42318;border-color:#f4b8b8;background:#fff1f1;font-weight:600;}
/* 解析全文按钮 */
.msg-parse-btn{display:inline-block;font-size:11px;color:#e65100;background:#fff3e0;border:1px solid #ffcc80;border-radius:10px;padding:3px 10px;margin-top:6px;margin-left:6px;cursor:pointer;transition:.15s;touch-action:manipulation;}
.msg-parse-btn:active{background:#ffe0b2;}
/* AI 回复评分弹窗 */
.rating-backdrop{position:fixed;inset:0;z-index:9900;background:rgba(0,0,0,.42);display:flex;align-items:center;justify-content:center;animation:pfBackdropIn .18s ease;}
.rating-modal{width:calc(100% - 48px);max-width:340px;background:#fff;border-radius:18px;padding:24px 20px 20px;text-align:center;box-shadow:0 10px 40px rgba(0,0,0,.18);animation:pfModalIn .22s ease;}
.rating-modal-title{font-size:16px;font-weight:700;color:#1a1a2e;margin-bottom:6px;}
.rating-modal-sub{font-size:12px;color:#888;margin-bottom:18px;}
.rating-stars{display:flex;justify-content:center;gap:8px;margin-bottom:18px;}
.rating-star{border:none;background:transparent;color:#d6d9e6;font-size:32px;line-height:1;cursor:pointer;padding:0 1px;transition:.12s;touch-action:manipulation;}
.rating-star.on{color:#d92d20;text-shadow:0 2px 8px rgba(217,45,32,.18);}
.rating-modal-cancel{width:100%;height:42px;border:none;border-radius:12px;background:#f5f5f7;color:#666;font-size:14px;font-weight:600;cursor:pointer;}
/* 解析全文确认弹窗（居中 Modal） */
.parse-full-backdrop{position:fixed;inset:0;z-index:9800;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;animation:pfBackdropIn .2s ease;}
@keyframes pfBackdropIn{from{opacity:0;}to{opacity:1;}}
.parse-full-modal{background:#fff;border-radius:18px;padding:28px 22px 22px;width:calc(100% - 48px);max-width:340px;box-shadow:0 10px 40px rgba(0,0,0,.2);animation:pfModalIn .25s ease;text-align:center;}
@keyframes pfModalIn{from{opacity:0;transform:scale(.92) translateY(16px);}to{opacity:1;transform:scale(1) translateY(0);}}
.parse-full-modal-icon{font-size:36px;margin-bottom:12px;}
.parse-full-modal-title{font-size:17px;font-weight:700;color:#1a1a2e;margin-bottom:8px;}
.parse-full-modal-desc{font-size:13px;color:#888;line-height:1.65;margin-bottom:22px;}
.parse-full-modal-btns{display:flex;gap:10px;}
.parse-full-modal-cancel{flex:1;padding:13px;background:#f5f5f5;border:none;border-radius:12px;font-size:14px;color:#666;cursor:pointer;}
.parse-full-modal-confirm{flex:1;padding:13px;background:linear-gradient(135deg,#ff6d00,#e65100);border:none;border-radius:12px;font-size:14px;color:#fff;font-weight:600;cursor:pointer;}

/* ===== PROFILE (Tab 4) ===== */
.profile-hero{background:linear-gradient(135deg,#1677ff,#764ba2);margin:0;border-radius:0;padding:20px 16px calc(20px + var(--safe-top));color:#fff;margin-top:calc(-1 * var(--safe-top));}
.profile-avatar{width:60px;height:60px;border-radius:50%;background:rgba(255,255,255,0.25);display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:700;color:#fff;margin-bottom:10px;overflow:hidden;cursor:pointer;position:relative;}
.profile-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%;}
.profile-avatar-edit{position:absolute;bottom:0;left:0;right:0;height:20px;background:rgba(0,0,0,0.4);font-size:10px;display:flex;align-items:center;justify-content:center;opacity:0;transition:.2s;}
.profile-avatar:hover .profile-avatar-edit{opacity:1;}
.profile-name{font-size:20px;font-weight:700;margin-bottom:4px;}
.profile-meta{font-size:13px;opacity:.85;}
.profile-logout-btn{position:absolute;right:16px;top:calc(16px + var(--safe-top));color:rgba(255,255,255,0.9);font-size:13px;padding:6px 12px;border:1px solid rgba(255,255,255,0.5);border-radius:16px;}
/* 个人中心弹窗通用 */
.profile-modal{position:fixed;inset:0;z-index:9000;background:rgba(0,0,0,0.5);display:none;align-items:center;justify-content:center;}
.profile-modal.active{display:flex;}
.profile-modal-box{background:#fff;border-radius:16px;width:calc(100% - 32px);max-width:440px;max-height:85vh;overflow-y:auto;padding:20px 20px 24px;}
.profile-modal-title{font-size:16px;font-weight:700;margin-bottom:16px;text-align:center;color:var(--text);}
.profile-modal-close{position:absolute;right:16px;top:16px;font-size:20px;color:var(--text-sub);cursor:pointer;}
.pm-field{margin-bottom:14px;}
.pm-field label{display:block;font-size:12px;font-weight:500;color:var(--text-sub);margin-bottom:5px;}
.pm-input{width:100%;height:48px;padding:0 14px;border:1.5px solid var(--border);border-radius:10px;font-size:16px;color:var(--text);background:#fafafa;}
.pm-input:focus{border-color:var(--primary);background:#fff;outline:none;}
.pm-msg{font-size:13px;margin:8px 0;min-height:18px;text-align:center;}
.pm-phone-row{display:flex;gap:8px;}
.pm-phone-row .pm-input{flex:1;}
.pm-send-btn{padding:0 12px;background:var(--primary);color:#fff;border-radius:10px;font-size:13px;white-space:nowrap;height:48px;flex-shrink:0;}
.pm-send-btn:disabled{opacity:.5;}
.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);margin:0 14px;border-radius:12px;overflow:hidden;box-shadow:var(--shadow);}
.stat-cell{background:#fff;padding:14px 8px;text-align:center;}
.stat-num{font-size:20px;font-weight:700;color:var(--primary);}
.stat-label{font-size:11px;color:var(--text-sub);margin-top:2px;}
/* 使用量统计卡片（与PC端 dashboard.html 同步） */
.usage-stats-card{margin:10px 14px 0;border-radius:12px;background:#fff;box-shadow:var(--shadow);padding:12px 16px;}
.usage-period-label{font-size:11px;font-weight:600;color:var(--text-sub);letter-spacing:.5px;margin-bottom:8px;}
.usage-period-cells{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.usage-cell{background:#f8f9ff;border-radius:10px;padding:10px 8px;text-align:center;}
.usage-cell-icon{font-size:17px;margin-bottom:2px;}
.usage-cell-label{font-size:11px;color:var(--text-sub);}
.usage-cell-count{font-size:15px;font-weight:700;color:var(--primary);margin-top:2px;}
.usage-period-divider{height:1px;background:var(--border);margin:10px 0;}
.m-section-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 8px;}
.m-section-title{font-size:14px;font-weight:600;color:var(--text);}
.m-section-action{font-size:13px;color:var(--primary);}
.m-list{background:#fff;border-radius:12px;margin:0 14px;box-shadow:var(--shadow);overflow:hidden;}
.m-list-item{display:flex;align-items:center;padding:14px 16px;gap:12px;border-bottom:1px solid #f5f5f5;touch-action:manipulation;transition:.1s;}
.m-list-item:last-child{border-bottom:none;}
.m-list-item:active{background:#f5f5f5;}
.m-list-icon{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;}
.m-list-content{flex:1;min-width:0;}
.m-list-title{font-size:14px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.m-list-sub{font-size:12px;color:var(--text-sub);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.m-list-arrow{color:#ccc;font-size:14px;}
.m-list-badge{font-size:12px;color:var(--text-sub);margin-right:4px;}
.m-list-del{padding:6px 10px;color:var(--danger);font-size:14px;background:#fff5f5;border-radius:8px;}
.profile-not-logged{text-align:center;padding:60px 24px;}

/* ===== 神煞 WIKI MODAL ===== */
#shenshaWikiModal{position:fixed;inset:0;z-index:8000;background:rgba(0,0,0,.5);display:none;align-items:flex-end;justify-content:center;}
#shenshaWikiModal.open{display:flex;}
.ss-wiki-sheet{background:#fff;border-radius:22px 22px 0 0;width:100%;max-height:88vh;display:flex;flex-direction:column;animation:ssSheetUp .28s cubic-bezier(.22,1,.36,1);}
@keyframes ssSheetUp{from{transform:translateY(60%);opacity:0;}to{transform:translateY(0);opacity:1;}}
.ss-wiki-header{padding:18px 20px 14px;display:flex;align-items:center;gap:12px;border-bottom:1px solid #f0f0f5;flex-shrink:0;}
.ss-wiki-icon{font-size:30px;line-height:1;}
.ss-wiki-title-wrap{flex:1;}
.ss-wiki-name{font-size:18px;font-weight:800;color:#1a1a2e;}
.ss-wiki-subtitle{font-size:12px;color:#8c8fa8;margin-top:2px;}
.ss-wiki-close{font-size:24px;color:#bbb;padding:4px 8px;cursor:pointer;}
.ss-wiki-body{overflow-y:auto;padding:16px 20px 32px;flex:1;}
.ss-wiki-badge-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px;}
.ss-wiki-badge{font-size:11px;padding:3px 10px;border-radius:20px;font-weight:600;}
.ss-wiki-badge.ji{background:#d6f0e0;color:#1a6e3a;}
.ss-wiki-badge.xiong{background:#ffe5e8;color:#b02030;}
.ss-wiki-badge.zhong{background:#fff3e0;color:#b25000;}
.ss-wiki-badge.shu{background:#eef0f8;color:#5046b5;}
.ss-wiki-section{margin-bottom:16px;}
.ss-wiki-section-title{font-size:12px;font-weight:700;color:#8c8fa8;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;display:flex;align-items:center;gap:5px;}
.ss-wiki-toggle-title:active{opacity:.7;}
.ss-wiki-section-title::before{content:'';display:block;width:3px;height:12px;border-radius:2px;background:var(--primary);}
.ss-wiki-text{font-size:13.5px;color:#3a3a4a;line-height:1.75;}
.ss-wiki-trigger-list{list-style:none;padding:0;margin:0;}
.ss-wiki-trigger-list li{font-size:13px;color:#3a3a4a;padding:7px 10px;background:#f8f9ff;border-radius:9px;margin-bottom:5px;border-left:3px solid var(--primary);}
.ss-wiki-table{width:100%;border-collapse:collapse;font-size:12px;margin-top:4px;}
.ss-wiki-table th{background:#f3f4fa;color:#8c8fa8;font-weight:600;padding:6px 8px;text-align:left;}
.ss-wiki-table td{padding:6px 8px;border-bottom:1px solid #f0f0f5;color:#3a3a4a;}
.ss-wiki-table tr:last-child td{border-bottom:none;}
.ss-wiki-hit-box{background:linear-gradient(135deg,#d6f0e0,#c8f0dc);border-radius:12px;padding:12px 14px;margin-bottom:8px;}
.ss-wiki-miss-box{background:#f5f6fb;border-radius:12px;padding:12px 14px;}
.ss-wiki-box-label{font-size:11px;font-weight:700;color:#666;margin-bottom:4px;}
.ss-wiki-box-text{font-size:13px;color:#1a1a2e;line-height:1.6;}

/* ===== BAZI SELECTOR MODAL ===== */
#baziSelectModal{position:fixed;inset:0;z-index:5000;background:rgba(0,0,0,0.5);display:none;align-items:center;justify-content:center;}
#baziSelectModal.open{display:flex;}
.bazi-modal-content{background:#fff;border-radius:16px;width:calc(100% - 32px);max-width:440px;max-height:70vh;display:flex;flex-direction:column;}
.bazi-modal-header{padding:16px 20px;border-bottom:1px solid var(--border);font-size:16px;font-weight:600;display:flex;justify-content:space-between;align-items:center;}
.bazi-modal-close{font-size:22px;color:var(--text-sub);padding:4px;}
.bazi-modal-list{flex:1;overflow-y:auto;}

/* ===== TOAST ===== */
#toastContainer{position:fixed;top:calc(var(--safe-top) + 64px);left:50%;transform:translateX(-50%);z-index:99999;display:flex;flex-direction:column;gap:8px;pointer-events:none;}
.toast{background:rgba(0,0,0,0.8);color:#fff;padding:10px 20px;border-radius:20px;font-size:14px;text-align:center;white-space:nowrap;animation:toastIn .2s ease;max-width:80vw;}
.toast.success{background:rgba(82,196,26,0.9);}
.toast.error{background:rgba(255,77,79,0.9);}
@keyframes toastIn{from{opacity:0;transform:translateY(-8px);}to{opacity:1;transform:translateY(0);}}

/* ===== BOTTOM SHEET ===== */
#bottomSheet{position:fixed;inset:0;z-index:8000;background:rgba(0,0,0,0.5);display:none;align-items:center;justify-content:center;}
#bottomSheet.open{display:flex;}
.bottom-sheet-content{background:#fff;border-radius:16px;width:calc(100% - 32px);max-width:440px;padding:20px 20px 24px;}
.bottom-sheet-title{font-size:16px;font-weight:600;text-align:center;margin-bottom:8px;}
.bottom-sheet-desc{font-size:14px;color:var(--text-sub);text-align:center;margin-bottom:20px;}
.bottom-sheet-btns{display:flex;flex-direction:column;gap:10px;}
.bs-btn{height:50px;border-radius:12px;font-size:16px;font-weight:500;width:100%;transition:.15s;}
.bs-btn:active{opacity:.85;}
.bs-btn-danger{background:var(--danger);color:#fff;}
.bs-btn-cancel{background:#f5f5f5;color:var(--text);}

/* ===== LOADING ===== */
.m-loading{text-align:center;padding:30px;color:var(--text-sub);}
.spinner{display:inline-block;width:24px;height:24px;border:3px solid #e8e8e8;border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite;margin-bottom:8px;}
@keyframes spin{to{transform:rotate(360deg);}}

/* ===== MISC ===== */
.tag{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600;}
.tag-blue{background:#e6f0ff;color:#1677ff;}
.tag-gold{background:#fffbe6;color:#d48806;}
.tag-green{background:#f6ffed;color:#389e0d;}
.section-page-title{font-size:16px;font-weight:700;padding:16px 16px 8px;color:var(--text);}
.empty-state{text-align:center;padding:50px 24px;color:var(--text-sub);}
.empty-icon{font-size:44px;margin-bottom:12px;}
.highlight-bar{height:3px;background:linear-gradient(90deg,#1677ff,#764ba2);border-radius:2px;width:24px;margin-bottom:8px;}

/* ===== CHAT ACTION BAR ===== */
.chat-action-bar{flex-shrink:0;background:var(--card);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:6px 14px;gap:8px;}
.chat-action-btn{height:30px;padding:0 12px;border-radius:15px;font-size:12px;font-weight:500;background:#f0f5ff;color:var(--primary);border:1px solid #d0e4ff;flex-shrink:0;white-space:nowrap;touch-action:manipulation;}
.chat-action-btn:active{background:var(--primary);color:#fff;}
.chat-action-btn.selected{background:var(--primary);color:#fff;border-color:var(--primary);font-weight:600;}
/* 分析分类按钮：同款发送按钮风格 */
.chat-action-btn.analysis-main{background:var(--primary);color:#fff;border-color:var(--primary);font-weight:600;box-shadow:0 2px 8px rgba(79,110,247,.35);}
.chat-action-btn.analysis-main:active{opacity:.85;transform:scale(.96);}
.chat-action-btn.analysis-main.selected{background:linear-gradient(135deg,#7c3aed,#4f6ef7);border-color:transparent;box-shadow:0 2px 10px rgba(124,58,237,.4);}
.chat-bazi-info{background:#f0f5ff;border-left:3px solid var(--primary);padding:8px 14px;font-size:12px;line-height:1.8;color:#333;border-radius:0 6px 6px 0;}
.chat-bazi-info-title{font-weight:600;color:var(--primary);margin-bottom:2px;}
.bazi-tag-btn{display:inline-block;margin-top:4px;padding:2px 10px;border-radius:10px;font-size:11px;font-weight:500;background:#e8f0fe;color:#1677ff;border:1px solid #b0c8ff;cursor:pointer;touch-action:manipulation;}
.bazi-tag-panel{margin-top:6px;padding:6px 0 2px;border-top:1px dashed #c5d8ff;}
.bazi-tag-row{margin-bottom:4px;display:flex;align-items:center;flex-wrap:wrap;gap:4px;}
.bazi-tag-label{font-size:11px;color:#666;margin-right:2px;white-space:nowrap;}
.bazi-tag-opt{padding:2px 9px;border-radius:10px;font-size:11px;background:#fff;border:1px solid #c5d8ff;color:#555;cursor:pointer;touch-action:manipulation;}
.bazi-tag-opt.selected{background:#1677ff;color:#fff;border-color:#1677ff;}
.msg-indicator{display:block;font-size:11px;opacity:0.45;margin-top:3px;}

/* ===== ANALYSIS MODAL ===== */
#analysisModal{position:fixed;inset:0;z-index:5000;background:rgba(0,0,0,0.5);display:none;align-items:center;justify-content:center;}
#analysisModal.open{display:flex;}
.analysis-modal-content{background:#fff;border-radius:16px;width:calc(100% - 32px);max-width:440px;max-height:75vh;display:flex;flex-direction:column;}
.analysis-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;padding:14px 16px;overflow-y:auto;}
.analysis-item{padding:14px 10px;background:#f8f9ff;border-radius:12px;text-align:center;border:1.5px solid transparent;transition:.15s;touch-action:manipulation;}
.analysis-item:active{border-color:var(--primary);background:#f0f5ff;}
.analysis-item.disabled{opacity:.38;pointer-events:none;filter:grayscale(1);}
.analysis-item.disabled::after{content:'合盘不可用';display:block;font-size:10px;color:#aaa;margin-top:3px;}
.analysis-item-icon{display:none;}
.analysis-item-title{display:flex;align-items:center;justify-content:center;gap:5px;min-width:0;flex-wrap:wrap;}
.analysis-item-name{font-size:13px;font-weight:600;color:var(--text);}
.analysis-rating-badge{font-size:12px;font-weight:700;color:#d92d20;white-space:nowrap;line-height:1;}
.analysis-item-desc{font-size:11px;color:var(--text-sub);margin-top:3px;line-height:1.4;}
.analysis-loading{grid-column:1/-1;padding:34px 12px;text-align:center;color:var(--text-sub);font-size:13px;}
.analysis-loading::before{content:'';display:block;width:22px;height:22px;margin:0 auto 10px;border:2px solid #edf0f7;border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite;}

/* ===== CHAT HISTORY MODAL ===== */
#chatHistoryModal{position:fixed;inset:0;z-index:5000;background:rgba(0,0,0,0.5);display:none;align-items:center;justify-content:center;}
#chatHistoryModal.open{display:flex;}

/* ===== HEPAN SAME-GENDER WARNING MODAL ===== */
#hepanGenderWarnModal{position:fixed;inset:0;z-index:6000;background:rgba(0,0,0,0.5);display:none;align-items:center;justify-content:center;}
#hepanGenderWarnModal.open{display:flex;}
.hepan-gender-warn-box{background:#fff;border-radius:16px;width:calc(100% - 48px);max-width:320px;padding:24px 20px 20px;text-align:center;}

/* ===== HEPAN TAG HINT MODAL ===== */
#hepanTagHintModal{position:fixed;inset:0;z-index:6000;background:rgba(0,0,0,0.5);display:none;align-items:center;justify-content:center;}
#hepanTagHintModal.open{display:flex;}
.hepan-hint-box{background:#fff;border-radius:16px;width:calc(100% - 48px);max-width:320px;padding:24px 20px 20px;text-align:center;}
.hepan-hint-icon{font-size:32px;margin-bottom:10px;}
.hepan-hint-title{font-size:16px;font-weight:700;color:var(--text);margin-bottom:8px;}
.hepan-hint-desc{font-size:13px;color:var(--text-sub);line-height:1.6;margin-bottom:18px;}
.hepan-hint-desc strong{color:#d46b08;}
.hepan-hint-btns{display:flex;gap:10px;}
.hepan-hint-btn{flex:1;padding:10px 0;border-radius:10px;border:none;font-size:14px;font-weight:600;cursor:pointer;}
.hepan-hint-btn.primary{background:var(--primary);color:#fff;}
.hepan-hint-btn.ghost{background:#f5f5f5;color:var(--text-sub);}

/* ===== QZSY LOADING STATE ===== */
.qzsy-loading-state{text-align:center;padding:50px 24px;}
.qzsy-loading-state .spinner{width:32px;height:32px;}

/* ===== QZSY BADGE in Profile List ===== */
.qzsy-badge{display:inline-flex;align-items:center;gap:3px;font-size:11px;padding:2px 7px;border-radius:10px;font-weight:600;flex-shrink:0;cursor:pointer;transition:.15s;}
.qzsy-badge.linked{background:#f6ffed;color:#389e0d;border:1px solid #b7eb8f;}
.qzsy-badge.unlinked{background:#f5f5f5;color:#8c8c8c;border:1px solid #e8e8e8;}
.qzsy-badge:active{opacity:.75;}

/* ===== WIZARD / ONBOARDING ===== */
#wizardBackdrop{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:9000;transition:opacity .3s;}
.wizard-card{
  position:fixed;left:0;right:0;bottom:0;z-index:9002;
  background:#fff;border-radius:20px 20px 0 0;
  /* padding-bottom 留出底部导航栏高度（约56px）+ 安全区 */
  padding:20px 20px calc(56px + env(safe-area-inset-bottom, 0px) + 12px);
  box-shadow:0 -6px 32px rgba(0,0,0,.18);
  transform:translateY(100%);
  transition:transform .38s cubic-bezier(.32,1,.32,1);
  will-change:transform;
}
.wizard-card.show{transform:translateY(0);}
.wizard-dots{display:flex;gap:7px;justify-content:center;margin-bottom:16px;}
.wizard-dots span{width:7px;height:7px;border-radius:50%;background:#e0e0e0;transition:all .3s;}
.wizard-dots span.on{background:var(--primary);width:18px;border-radius:4px;}
.wizard-title{font-size:18px;font-weight:700;color:#111;margin-bottom:8px;text-align:center;line-height:1.4;}
.wizard-desc{font-size:13px;color:var(--text-sub);line-height:1.75;text-align:center;margin-bottom:20px;}
.wizard-btns{display:flex;gap:10px;align-items:center;}
.wizard-btn-primary{flex:1;background:var(--primary);color:#fff;border:none;border-radius:12px;padding:14px;font-size:15px;font-weight:600;cursor:pointer;touch-action:manipulation;transition:.15s;}
.wizard-btn-primary:active{opacity:.85;}
.wizard-btn-skip{flex:none;background:none;border:none;color:#bbb;font-size:13px;cursor:pointer;padding:14px 8px;touch-action:manipulation;}
/* 聚光灯：目标元素浮出遮罩 */
.wizard-spotlight{position:relative;z-index:9001 !important;border-radius:10px;box-shadow:0 0 0 5px rgba(124,58,237,.35);outline:2px solid var(--primary);}
/* ===== 六爻卦 (pageLiuyao) ===== */
.lyg-header{display:flex;align-items:center;padding:14px 16px 10px;gap:8px;background:var(--card);border-bottom:1px solid var(--border);}
.lyg-header-back{background:none;border:none;font-size:22px;cursor:pointer;padding:0 6px;color:#666;line-height:1;}
.lyg-header-title{font-size:17px;font-weight:600;color:#333;}
.lyg-step{padding:12px 14px 20px;}
.lyg-question-area{width:100%;min-height:80px;border:1.5px solid var(--border);border-radius:10px;padding:10px 12px;font-size:14px;color:var(--text);background:#fafafa;resize:none;line-height:1.6;}
.lyg-question-area:focus{border-color:var(--primary);background:#fff;outline:none;}
.lyg-label{font-size:12px;color:var(--text-sub);margin-bottom:6px;display:block;}
.lyg-type-chips{display:flex;flex-wrap:wrap;gap:8px;}
.lyg-type-chip{padding:6px 14px;border-radius:20px;border:1.5px solid var(--border);background:#fafafa;font-size:12px;font-weight:500;color:var(--text-sub);cursor:pointer;transition:.2s;touch-action:manipulation;}
.lyg-type-chip.active{background:var(--primary-light);border-color:var(--primary);color:var(--primary);}
.lyg-progress-bar{background:var(--border);height:4px;border-radius:2px;margin-bottom:16px;overflow:hidden;}
.lyg-progress-fill{height:100%;border-radius:2px;background:var(--primary);transition:width .35s;}
.lyg-gua-display{display:flex;flex-direction:column-reverse;align-items:center;gap:7px;padding:10px 0 18px;}
.lyg-yao-row{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:14px;}
.lyg-yao-label{font-size:11px;color:var(--text-sub);width:20px;text-align:center;flex-shrink:0;}
.lyg-yao-line{display:flex;align-items:center;gap:4px;flex:1;max-width:200px;justify-content:center;}
.lyg-yao-bar{height:7px;border-radius:3.5px;background:#2c3e50;transition:background .3s;}
.lyg-yao-bar.yang{width:88px;}
.lyg-yao-bar.yin-l,.lyg-yao-bar.yin-r{width:37px;}
.lyg-yao-bar.ch-yang{background:var(--primary);}
.lyg-yao-bar.ch-yin{background:var(--danger);}
.lyg-yao-marker{font-size:13px;font-weight:700;width:14px;text-align:center;margin-left:4px;}
.lyg-yao-ph{height:7px;width:88px;border-radius:3.5px;background:#e0e0e0;}
.lyg-shake-btn{width:100%;height:52px;border-radius:14px;background:linear-gradient(135deg,#2c3e50,#3498db);color:#fff;font-size:16px;font-weight:600;border:none;cursor:pointer;margin-top:4px;transition:.15s;touch-action:manipulation;letter-spacing:.5px;}
.lyg-shake-btn:active{opacity:.82;transform:scale(.97);}
.lyg-shake-btn:disabled{background:#c8c8c8;transform:none;cursor:default;}
.lyg-gua-card{margin-bottom:12px;background:var(--card);border-radius:14px;overflow:hidden;box-shadow:var(--shadow);}
.lyg-gua-card-head{padding:14px 16px 10px;display:flex;align-items:center;justify-content:space-between;}
.lyg-gua-name{font-size:19px;font-weight:700;color:#1a1a1a;}
.lyg-gua-badge{font-size:11px;padding:3px 9px;border-radius:10px;font-weight:600;}
.lyg-gua-badge.ben{background:#e8f4ff;color:#1677ff;}
.lyg-gua-badge.bian{background:#fff3e0;color:#e65c00;}
.lyg-gua-body{padding:4px 16px 14px;display:flex;gap:16px;align-items:flex-start;}
.lyg-gua-lines{display:flex;flex-direction:column-reverse;gap:5px;flex-shrink:0;}
.lyg-guaci-text{font-size:13px;color:#555;line-height:1.8;flex:1;}
.lyg-tabs{display:flex;border-bottom:1px solid var(--border);}
.lyg-tab{flex:1;padding:11px 4px;font-size:13px;font-weight:500;color:var(--text-sub);border:none;background:none;border-bottom:2px solid transparent;cursor:pointer;transition:.2s;touch-action:manipulation;}
.lyg-tab.active{color:var(--primary);border-bottom-color:var(--primary);}
.lyg-tab-content{padding:12px 16px 4px;}
.lyg-yaoci-item{padding:10px 0;border-bottom:1px solid var(--border);}
.lyg-yaoci-item:last-child{border-bottom:none;}
.lyg-yaoci-yao{font-size:13px;font-weight:600;color:#333;margin-bottom:4px;}
.lyg-yaoci-yao.changing{color:var(--primary);}
.lyg-yaoci-detail{font-size:12px;color:var(--text-sub);line-height:1.65;}
.lyg-ai-btn{width:100%;padding:14px;border-radius:12px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-size:15px;font-weight:600;border:none;cursor:pointer;margin-bottom:14px;touch-action:manipulation;transition:.15s;}
.lyg-ai-btn:active{opacity:.85;}
.lyg-ai-output{font-size:13px;line-height:1.9;color:#222;white-space:pre-wrap;word-break:break-word;min-height:40px;padding-bottom:16px;}
@keyframes lygYaoIn{from{opacity:0;transform:scaleX(.4)}to{opacity:1;transform:scaleX(1)}}
.lyg-yao-anim{animation:lygYaoIn .28s ease;}

/* ── 手动起卦弹窗 ── */
.lyg-manual-backdrop{position:fixed;inset:0;z-index:8000;background:rgba(0,0,0,.5);display:none;align-items:center;justify-content:center;padding:20px;}
.lyg-manual-backdrop.open{display:flex;}
.lyg-manual-sheet{background:#fff;border-radius:16px;width:100%;max-width:480px;max-height:86vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 8px 40px rgba(0,0,0,.18);}
.lyg-manual-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 12px;border-bottom:1px solid var(--border);flex-shrink:0;}
.lyg-manual-head-title{font-size:16px;font-weight:700;color:#1a1a1a;}
.lyg-manual-close{font-size:20px;color:#aaa;background:none;border:none;cursor:pointer;padding:2px 4px;line-height:1;}
.lyg-manual-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0 16px 8px;}
.lyg-rule-box{background:#f8f9ff;border-radius:10px;padding:12px 14px;margin:12px 0 10px;}
.lyg-rule-title{font-size:12px;font-weight:700;color:#555;margin-bottom:8px;}
.lyg-rule-row{display:flex;align-items:center;gap:10px;padding:3px 0;}
.lyg-rule-coin{font-size:11px;color:#888;width:60px;flex-shrink:0;}
.lyg-rule-yao-demo{display:flex;align-items:center;gap:4px;}
.lyg-rule-bar{height:5px;border-radius:2.5px;background:#2c3e50;}
.lyg-rule-bar.yang-bar{width:56px;}
.lyg-rule-bar.yin-bar{width:23px;}
.lyg-rule-bar.blue-bar{background:var(--primary);}
.lyg-rule-bar.red-bar{background:var(--danger);}
.lyg-rule-mk{font-size:12px;font-weight:700;}
.lyg-rule-name{font-size:11px;color:#888;margin-left:4px;}
.lyg-manual-row{display:flex;align-items:center;padding:8px 0;border-bottom:1px solid #f0f0f0;}
.lyg-manual-row:last-child{border-bottom:none;}
.lyg-manual-yao-label{font-size:13px;font-weight:600;color:#333;width:30px;flex-shrink:0;}
.lyg-manual-opts{display:flex;gap:6px;flex:1;flex-wrap:nowrap;}
.lyg-manual-opt{flex:1;min-width:0;padding:7px 2px;border-radius:8px;border:1.5px solid var(--border);background:#fafafa;font-size:11px;font-weight:500;color:var(--text-sub);cursor:pointer;transition:.15s;text-align:center;touch-action:manipulation;line-height:1.3;}
.lyg-manual-opt.active{border-color:var(--primary);background:var(--primary-light);color:var(--primary);}
.lyg-manual-opt .opt-shape{font-size:10px;display:block;margin-bottom:2px;letter-spacing:-1px;}
.lyg-manual-foot{padding:14px 16px;border-top:1px solid var(--border);flex-shrink:0;}
.lyg-manual-confirm{width:100%;height:48px;border-radius:12px;background:linear-gradient(135deg,#2c3e50,#764ba2);color:#fff;font-size:15px;font-weight:600;border:none;cursor:pointer;touch-action:manipulation;}
.lyg-manual-confirm:active{opacity:.85;}

/* ── 并排卦象 ── */
.lyg-duo{display:flex;gap:8px;margin-bottom:12px;align-items:flex-start;}
.lyg-duo-half{flex:1;background:var(--card);border-radius:12px;padding:10px 8px 12px;box-shadow:var(--shadow);min-width:0;text-align:center;}
.lyg-duo-arrow{flex-shrink:0;align-self:center;font-size:18px;color:#bbb;}
.lyg-duo-name{font-size:13px;font-weight:700;color:#1a1a1a;margin-bottom:2px;}
.lyg-duo-badge-inline{font-size:9px;padding:1px 5px;border-radius:6px;font-weight:600;vertical-align:middle;margin-left:3px;}
.lyg-duo-badge-inline.ben{background:#e8f4ff;color:#1677ff;}
.lyg-duo-badge-inline.bian{background:#fff3e0;color:#e65c00;}
.lyg-duo-lines{display:flex;flex-direction:column-reverse;gap:5px;align-items:center;margin:8px 0 6px;}
.lyg-duo-guaci{font-size:10px;color:#aaa;line-height:1.5;text-align:left;padding:0 4px;}
/* ── 纳甲表 ── */
.lyg-nj-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.lyg-nj-table{width:100%;border-collapse:collapse;font-size:11px;min-width:320px;}
.lyg-nj-table th{background:#f4f6ff;color:#666;padding:6px 3px;text-align:center;font-weight:600;border-bottom:2px solid #e0e4f0;font-size:10px;white-space:nowrap;}
.lyg-nj-table td{padding:7px 3px;text-align:center;vertical-align:middle;border-bottom:1px solid #f2f2f2;white-space:nowrap;}
.lyg-nj-table tr:last-child td{border-bottom:none;}
.lyg-nj-table tr.nj-shi td{background:#fffbea;}
.lyg-nj-table tr.nj-ying td{background:#f0fff8;}
.lyg-nj-table tr.nj-shen td{background:#f5f0ff;}
/* 四柱 card */
.lyg-sizhu-row{display:flex;gap:4px;justify-content:space-around;}
.lyg-sizhu-col{display:flex;flex-direction:column;align-items:center;gap:1px;flex:1;}
.lyg-sizhu-label{font-size:10px;color:#aaa;margin-bottom:2px;}
.lyg-sizhu-gz{display:flex;flex-direction:column;align-items:center;}
.lyg-sizhu-stem{font-size:18px;font-weight:700;color:#333;line-height:1.3;}
.lyg-sizhu-branch{font-size:16px;font-weight:600;color:#555;line-height:1.3;}
.lyg-sizhu-kw{font-size:9px;color:#bbb;margin-top:2px;}
.lyg-ls{font-size:10px;font-weight:700;}
.lyg-ls-ql{color:#16a34a;}.lyg-ls-zq{color:#dc2626;}.lyg-ls-gc{color:#d97706;}
.lyg-ls-ts{color:#7c3aed;}.lyg-ls-bh{color:#475569;}.lyg-ls-xw{color:#1677ff;}
.lyg-lq{font-size:10px;font-weight:600;}
.lyg-lq-xd{color:#dc2626;}.lyg-lq-zs{color:#16a34a;}.lyg-lq-qc{color:#d97706;}
.lyg-lq-gg{color:#7c3aed;}.lyg-lq-fm{color:#475569;}
.lyg-wx-jin{color:#d97706;}.lyg-wx-mu{color:#16a34a;}.lyg-wx-shui{color:#1677ff;}
.lyg-wx-huo{color:#dc2626;}.lyg-wx-tu{color:#7c3aed;}
.nj-yao-sm{display:flex;align-items:center;justify-content:center;gap:2px;}
.nj-bar{height:5px;border-radius:2.5px;background:#2c3e50;}
.nj-bar.ny{width:36px;}.nj-bar.nl{width:14px;}.nj-bar.nr{width:14px;}
.nj-bar.ncy{background:var(--primary);}.nj-bar.ncr{background:var(--danger);}
.nj-mk{font-size:11px;font-weight:700;margin-left:2px;}
