:root{--zhusha:#C23A30;--zhusha-dark:#9E2B22;--jin:#D4A843;--mo:#1A1A1A;--mo-muted:#666;--xuanzhi:#F7F3E9;--xuanzhi-dark:#EDE8D8;--font-serif:'Noto Serif SC',serif;--font-sans:'Noto Sans SC',sans-serif;}
.bazi-page-wrap{background:var(--xuanzhi);min-height:100vh;color:var(--mo);font-family:var(--font-sans);}
.bazi-hero{background:linear-gradient(135deg,var(--zhusha-dark),var(--zhusha));padding:60px 20px;text-align:center;border-bottom:3px solid var(--jin);position:relative;overflow:hidden;}
.bazi-hero h1{font-size:2.5em;color:var(--jin);text-shadow:0 2px 10px rgba(0,0,0,0.3);margin-bottom:15px;font-family:var(--font-serif);}
.bazi-hero p{color:rgba(255,255,255,0.9);font-size:1.1em;}
.bazi-container{max-width:900px;margin:0 auto;padding:40px 20px;}
.auth-status{background:#fff;border-radius:12px;padding:15px 20px;margin-bottom:25px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 2px 8px rgba(0,0,0,0.06);flex-wrap:wrap;gap:10px;}
.status-dot{width:10px;height:10px;border-radius:50%;background:#dc3545;transition:all 0.3s;}
.status-dot.authorized{background:#28a745;}
.user-id-tag{background:var(--xuanzhi-dark);color:var(--zhusha);padding:6px 14px;border-radius:20px;font-size:0.9em;font-family:monospace;font-weight:600;border:1px solid var(--jin);}
.btn-copy-id{background:var(--zhusha);border:none;color:#fff;padding:6px 14px;border-radius:20px;font-size:0.85em;cursor:pointer;}
.input-panel{background:#fff;border:1px solid var(--xuanzhi-dark);border-radius:16px;padding:35px;margin-bottom:30px;box-shadow:0 4px 20px rgba(0,0,0,0.08);}
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-bottom:25px;}
.form-group{display:flex;flex-direction:column;}
.form-group.full-width{grid-column:1/-1;}
.form-group label{color:var(--zhusha);margin-bottom:8px;font-weight:600;font-family:var(--font-serif);}
.form-group input,.form-group select{padding:14px 16px;border:2px solid var(--xuanzhi-dark);border-radius:10px;background:var(--xuanzhi-light);font-size:1em;}
.btn-calculate{width:100%;padding:18px;background:linear-gradient(135deg,var(--zhusha),var(--zhusha-dark));border:none;border-radius:12px;color:#fff;font-size:1.2em;font-weight:700;cursor:pointer;font-family:var(--font-serif);letter-spacing:2px;}
.loading-panel{display:none;text-align:center;padding:60px 20px;}
.loading-panel.active{display:block;}
.bazi-spinner{width:60px;height:60px;border:3px solid var(--xuanzhi-dark);border-top-color:var(--zhusha);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 25px;}
@keyframes spin{to{transform:rotate(360deg);}}
.result-panel{display:none;}.result-panel.active{display:block;animation:fadeIn 0.6s ease;}
@keyframes fadeIn{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:translateY(0);}}
.result-card{background:#fff;border:1px solid var(--xuanzhi-dark);border-radius:16px;padding:30px;margin-bottom:25px;box-shadow:0 4px 20px rgba(0,0,0,0.08);position:relative;overflow:hidden;}
.result-card::before{content:'';position:absolute;top:0;left:0;width:4px;height:100%;background:linear-gradient(to bottom,var(--zhusha),var(--jin));}
.result-card h3{color:var(--zhusha);font-size:1.3em;margin-bottom:20px;display:flex;align-items:center;gap:10px;padding-bottom:15px;border-bottom:2px solid var(--xuanzhi-dark);font-family:var(--font-serif);}
.bazi-paipan{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:25px 0;}
.paipan-item{background:linear-gradient(135deg,var(--xuanzhi-light),var(--xuanzhi));border-radius:12px;padding:20px 15px;text-align:center;border:2px solid var(--xuanzhi-dark);}
.paipan-ganzhi{font-size:2em;color:var(--zhusha);font-weight:700;font-family:var(--font-serif);}
.paipan-hidden{filter:blur(8px);user-select:none;color:transparent;text-shadow:0 0 8px rgba(194,58,48,0.3);}
.lock-panel{background:linear-gradient(135deg,rgba(194,58,48,0.05),rgba(139,69,19,0.05));border:2px dashed var(--zhusha);border-radius:16px;padding:40px 30px;text-align:center;margin:20px 0;}
.wechat-guide{background:#fff;border-radius:12px;padding:25px;max-width:400px;margin:0 auto;border:1px solid var(--xuanzhi-dark);}
.wechat-id-box{background:var(--xuanzhi-light);border:2px solid var(--jin);border-radius:10px;padding:15px;margin:15px 0;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:15px;}
.wechat-id-text{font-size:1.4em;color:var(--zong);font-weight:700;font-family:monospace;}
.ai-content{line-height:2;color:var(--mo-light);}
.ai-content h4{color:var(--zhusha);margin:20px 0 10px;font-size:1.1em;font-family:var(--font-serif);border-left:3px solid var(--jin);padding-left:10px;}
.ai-content p{margin-bottom:12px;text-indent:2em;}
.btn-reset{width:100%;padding:16px;background:transparent;border:2px solid var(--zhusha);border-radius:12px;color:var(--zhusha);font-size:1.1em;font-weight:700;cursor:pointer;margin-top:10px;font-family:var(--font-serif);}

/* ==================== 藏干样式 ==================== */
.zhi-hidden-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-top:15px;}
.zhi-hidden-item{background:linear-gradient(135deg,var(--xuanzhi-light),var(--xuanzhi));border-radius:12px;padding:20px 15px;text-align:center;border:2px solid var(--xuanzhi-dark);}
.zhi-hidden-title{font-size:0.85em;color:var(--mo-muted);margin-bottom:8px;font-weight:500;}
.zhi-hidden-ganzhi{font-size:1.5em;color:var(--zhusha);font-weight:700;font-family:var(--font-serif);margin-bottom:10px;}
.zhi-hidden-list{font-size:0.9em;color:var(--mo-light);line-height:1.8;}
.zhi-hidden-tag{display:inline-block;background:rgba(194,58,48,0.1);color:var(--zhusha);padding:2px 8px;border-radius:10px;margin:2px;font-size:0.85em;}

/* 手机端修复：藏干自动变成 2 列，不挤压、不裁切、显示完整 */
@media (max-width: 768px) {
  .zhi-hidden-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 10px !important;
  }
}

/* ==================== 合冲刑害样式 ==================== */
.relations-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px;margin-top:15px;}
.relation-item{border-radius:12px;padding:15px;text-align:center;border:2px solid;}
.relation-he{border-color:#28a745;background:rgba(40,167,69,0.05);}
.relation-chong{border-color:#dc3545;background:rgba(220,53,69,0.05);}
.relation-xing{border-color:#fd7e14;background:rgba(253,126,20,0.05);}
.relation-hai{border-color:#6f42c1;background:rgba(111,66,193,0.05);}
.relation-title{font-size:1em;font-weight:700;margin-bottom:8px;font-family:var(--font-serif);}
.relation-he .relation-title{color:#28a745;}
.relation-chong .relation-title{color:#dc3545;}
.relation-xing .relation-title{color:#fd7e14;}
.relation-hai .relation-title{color:#6f42c1;}
.relation-desc{font-size:0.9em;color:var(--mo-muted);}

/* ==================== 五行力量图样式 ==================== */
.wuxing-chart{display:flex;align-items:flex-end;justify-content:center;gap:20px;height:200px;margin:20px 0;padding:20px;background:linear-gradient(135deg,var(--xuanzhi-light),var(--xuanzhi));border-radius:12px;border:1px solid var(--xuanzhi-dark);}
.wuxing-bar-item{text-align:center;flex:1;max-width:80px;}
.wuxing-bar{transition:height 1s ease;border-radius:8px 8px 0 0;position:relative;}
.wuxing-bar-label{position:absolute;bottom:5px;left:0;right:0;text-align:center;color:#fff;font-weight:700;font-size:0.9em;text-shadow:0 1px 3px rgba(0,0,0,0.5);}
.wuxing-bar-name{margin-top:10px;font-size:0.9em;color:var(--mo);font-weight:600;}
.wuxing-bar-value{margin-top:4px;font-size:0.8em;color:var(--mo-muted);}
.wuxing-jin{background:linear-gradient(to top,#B8860B,#D4A843);}
.wuxing-mu{background:linear-gradient(to top,#2E7D32,#4CAF50);}
.wuxing-shui{background:linear-gradient(to top,#1565C0,#2196F3);}
.wuxing-huo{background:linear-gradient(to top,#C62828,#EF5350);}
.wuxing-tu{background:linear-gradient(to top,#6D4C41,#8D6E63);}

/* ==================== 旺衰样式 ==================== */
.wang-shuai-box{border-radius:16px;padding:25px;text-align:center;margin:15px 0;position:relative;overflow:hidden;}
.wang-shuai-wang{background:linear-gradient(135deg,rgba(194,58,48,0.1),rgba(212,168,67,0.1));border:2px solid var(--zhusha);}
.wang-shuai-zhong{background:linear-gradient(135deg,rgba(212,168,67,0.1),rgba(40,167,69,0.05));border:2px solid var(--jin);}
.wang-shuai-ruo{background:linear-gradient(135deg,rgba(40,167,69,0.1),rgba(33,150,243,0.1));border:2px solid #2196F3;}
.wang-shuai-level{font-size:2em;font-weight:700;font-family:var(--font-serif);margin-bottom:10px;}
.wang-shuai-wang .wang-shuai-level{color:var(--zhusha);}
.wang-shuai-zhong .wang-shuai-level{color:var(--jin);}
.wang-shuai-ruo .wang-shuai-level{color:#2196F3;}
.wang-shuai-score{font-size:1.2em;color:var(--mo);margin-bottom:10px;}
.wang-shuai-desc{font-size:0.95em;color:var(--mo-muted);line-height:1.6;}

/* ==================== 喜用神样式 ==================== */
.xiyong-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:15px;}
.xiyong-item{border-radius:12px;padding:20px;text-align:center;border:2px solid;position:relative;}
.xiyong-xi{border-color:#28a745;background:rgba(40,167,69,0.05);}
.xiyong-yong{border-color:var(--jin);background:rgba(212,168,67,0.05);}
.xiyong-ji{border-color:#dc3545;background:rgba(220,53,69,0.05);}
.xiyong-label{position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:#fff;padding:2px 12px;border-radius:15px;font-size:0.8em;font-weight:700;border:2px solid;}
.xiyong-xi .xiyong-label{color:#28a745;border-color:#28a745;}
.xiyong-yong .xiyong-label{color:var(--jin-dark);border-color:var(--jin);}
.xiyong-ji .xiyong-label{color:#dc3545;border-color:#dc3545;}
.xiyong-value{font-size:1.8em;font-weight:700;font-family:var(--font-serif);margin-top:10px;}
.xiyong-xi .xiyong-value{color:#28a745;}
.xiyong-yong .xiyong-value{color:var(--jin-dark);}
.xiyong-ji .xiyong-value{color:#dc3545;}
.xiyong-desc{font-size:0.85em;color:var(--mo-muted);margin-top:8px;}

/* ==================== 大运流年童限样式 ==================== */
.dayun-table{width:100%;border-collapse:collapse;margin-top:15px;font-size:0.95em;}
.dayun-table th{background:linear-gradient(135deg,var(--zhusha),var(--zhusha-dark));color:#fff;padding:12px 8px;text-align:center;font-family:var(--font-serif);}
.dayun-table td{padding:12px 8px;text-align:center;border-bottom:1px solid var(--xuanzhi-dark);}
.dayun-table tr:hover td{background:rgba(194,58,48,0.03);}
.dayun-table .current-row{background:rgba(212,168,67,0.1)!important;font-weight:700;}
.dayun-table .age-range{color:var(--mo-muted);font-size:0.85em;}
.dayun-table .ten-star{color:var(--zhusha);font-weight:600;}
.child-limit-info{background:linear-gradient(135deg,rgba(212,168,67,0.08),rgba(194,58,48,0.05));border-radius:12px;padding:20px;margin:15px 0;border:1px solid var(--jin);}
.child-limit-info p{margin:8px 0;text-indent:0;}
.fortune-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:15px;}
.fortune-item{background:var(--xuanzhi-light);border-radius:10px;padding:15px 8px;text-align:center;border:1px solid var(--xuanzhi-dark);transition:all 0.3s;}
.fortune-item:hover{border-color:var(--zhusha);transform:translateY(-2px);}
.fortune-item.current{background:linear-gradient(135deg,rgba(194,58,48,0.1),rgba(212,168,67,0.1));border-color:var(--zhusha);}
.fortune-year{font-size:1.1em;font-weight:700;color:var(--zhusha);font-family:var(--font-serif);}
.fortune-age{font-size:0.85em;color:var(--mo-muted);margin-top:4px;}
.fortune-ganzhi{font-size:0.9em;color:var(--mo);margin-top:4px;}
.fortune-star{font-size:0.8em;color:var(--zhusha);margin-top:4px;font-weight:600;}
.kongwang-tag{display:inline-block;background:var(--xuanzhi-dark);color:var(--zhusha);padding:3px 10px;border-radius:15px;font-size:0.8em;margin:2px;font-family:var(--font-serif);}
.god-tag{display:inline-block;padding:3px 10px;border-radius:15px;font-size:0.8em;margin:2px;}
.god-good{background:rgba(40,167,69,0.1);color:#28a745;border:1px solid rgba(40,167,69,0.3);}
.god-bad{background:rgba(220,53,69,0.1);color:#dc3545;border:1px solid rgba(220,53,69,0.3);}
.nayin-box{background:linear-gradient(135deg,var(--xuanzhi-light),var(--xuanzhi));border-radius:10px;padding:15px;text-align:center;border:1px solid var(--jin);margin-top:10px;}
.nayin-item{display:inline-block;padding:5px 15px;margin:5px;font-size:0.9em;color:var(--zong);font-family:var(--font-serif);font-weight:600;}

@media(max-width:768px){.bazi-hero h1{font-size:1.8em;}.form-grid{grid-template-columns:1fr;}.bazi-paipan{grid-template-columns:repeat(2,1fr);}.paipan-ganzhi{font-size:1.5em;}.input-panel{padding:20px;}.fortune-grid{grid-template-columns:repeat(3,1fr);}.dayun-table{font-size:0.85em;}.dayun-table th,.dayun-table td{padding:8px 4px;}}

/* ==================== PDF 打印修复：竖版 + 不乱码 + 内容连续不切断 ==================== */
@media print {
  @page {
    size: A4 portrait; /* 强制竖版 */
    margin: 10mm;
  }
  * {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
    font-family: "Microsoft YaHei", SimHei, sans-serif !important;
  }
  .zhi-hidden-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 8px !important;
  }
  .result-card {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }
}