/* =====================================================================
   盲派八字排盘 —— 宣纸质风格（light · 大气版）
   纸底米白 · 界格暗纹 · 松烟墨字 · 朱砂朱批 · 鎏金点缀
   ===================================================================== */

:root{
  --paper:      #f4efe6;
  --paper-2:    #fffdf8;
  --paper-3:    #faf6ee;
  --ink:        #2b2620;
  --ink-2:      #5c5348;
  --ink-3:      #8b8175;
  --line:       #ddd3c2;
  --line-2:     #ebe3d5;
  --red:        #8c2f24;
  --red-soft:   #a8543f;
  --red-deep:   #6f231b;
  --gold:       #9a7b3f;
  --gold-soft:  #c2a76a;
  --ok:         #3d6b45;
  --warn:       #a8322a;

  --wx-mu:  #2f6b4f;   /* 木 青 */
  --wx-huo: #a8322a;   /* 火 赤 */
  --wx-tu:  #8a6a2f;   /* 土 黄 */
  --wx-jin: #7a6f5c;   /* 金 白（取灰褐） */
  --wx-shui:#274b73;   /* 水 玄（取靛） */

  --shadow-sm: 0 1px 3px rgba(90,70,40,.05), 0 2px 10px rgba(90,70,40,.04);
  --shadow-md: 0 2px 6px rgba(90,70,40,.06), 0 8px 26px rgba(90,70,40,.08);
}

*{box-sizing:border-box}

html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}

body{
  margin:0;
  background:var(--paper);
  background-image:
    /* 界格暗纹（竖） */
    repeating-linear-gradient(90deg,
      rgba(120,95,60,.028) 0 1px, transparent 1px 132px),
    /* 纸色晕染 */
    radial-gradient(circle at 15% 8%,  rgba(168,140,95,.07) 0 42%, transparent 43%),
    radial-gradient(circle at 88% 74%, rgba(168,140,95,.055) 0 38%, transparent 39%),
    radial-gradient(circle at 55% 40%, rgba(200,170,120,.03) 0 60%, transparent 61%);
  background-attachment:fixed;
  color:var(--ink);
  font:15.5px/1.92 "Noto Serif SC","Source Han Serif SC","Songti SC",SimSun,"Times New Roman",serif;
}

::selection{background:var(--red);color:#fff}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:var(--paper-3)}
::-webkit-scrollbar-thumb{background:#cbbd9e;border-radius:6px;border:2px solid var(--paper-3)}
::-webkit-scrollbar-thumb:hover{background:var(--gold-soft)}

a{color:var(--red);text-decoration:none;transition:color .15s ease}
a:hover{color:var(--red-soft);text-decoration:underline}
:focus-visible{outline:2px solid var(--gold-soft);outline-offset:2px;border-radius:2px}

/* ---------------- 站头 ---------------- */
.site-head{
  position:relative;
  background:var(--paper-2);
  border-bottom:1px solid var(--line);
  box-shadow:0 1px 0 #fff inset, 0 3px 18px rgba(90,70,40,.07);
}
.site-head::after{                       /* 鎏金衬线：仿线装书函 */
  content:"";position:absolute;left:0;right:0;bottom:-4px;height:2px;
  background:linear-gradient(90deg, transparent, var(--gold-soft) 18%,
             var(--gold-soft) 82%, transparent);
  opacity:.55;pointer-events:none;
}
.site-head .inner{max-width:1120px;margin:0 auto;padding:22px 22px 0}
.brand{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
.brand-seal{
  align-self:center;
  width:44px;height:44px;flex:none;border-radius:6px;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(150deg,var(--red-soft),var(--red-deep));
  color:#f8efe4;font-size:23px;font-weight:600;
  box-shadow:inset 0 0 0 1.5px rgba(255,244,226,.35), 0 3px 10px rgba(140,47,36,.3);
  text-shadow:0 1px 2px rgba(0,0,0,.25);
}
.brand .logo{
  font-size:26px;letter-spacing:5px;color:var(--ink);font-weight:600;
}
.brand .logo a{color:inherit;text-decoration:none}
.brand .logo a:hover{color:var(--red)}
.brand .logo a b{color:var(--red);font-weight:inherit}
.brand .sub{
  font-size:12.5px;color:var(--ink-3);letter-spacing:3px;
  padding-left:14px;border-left:1px solid var(--line);
}

nav.mainnav{display:flex;flex-wrap:wrap;gap:2px;margin-top:14px}
nav.mainnav a{
  position:relative;
  padding:9px 16px 11px;font-size:14px;color:var(--ink-2);
  letter-spacing:1.5px;border-bottom:3px solid transparent;text-decoration:none;
}
nav.mainnav a:hover{color:var(--red);background:linear-gradient(180deg,transparent 55%,rgba(140,47,36,.05));text-decoration:none}
nav.mainnav a.on{color:var(--red);border-bottom-color:var(--red);font-weight:600}
nav.mainnav a.on::after{
  content:"";position:absolute;left:50%;bottom:-1px;transform:translateX(-50%);
  width:5px;height:5px;border-radius:50%;background:var(--red);
}

/* ---------------- 版心 ---------------- */
.wrap{max-width:1120px;margin:0 auto;padding:34px 22px 70px}
.narrow{max-width:820px}

/* ---------------- 卡片 ---------------- */
.card{
  position:relative;
  background:var(--paper-2);
  border:1px solid var(--line);
  border-radius:8px;
  padding:28px 30px;
  margin-bottom:26px;
  box-shadow:var(--shadow-sm), inset 0 1px 0 rgba(255,255,255,.9);
}
.card > h2:first-child, .card > h3:first-child{margin-top:0}

h2.sec{
  display:flex;align-items:center;gap:12px;
  font-size:19px;letter-spacing:3px;color:var(--ink);margin:0 0 20px;
  padding-left:0;border-left:none;line-height:1.4;
}
h2.sec::before{                          /* 朱印方块 */
  content:"";flex:none;width:11px;height:11px;
  background:var(--red);border-radius:2px;
  box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.28), 0 1px 3px rgba(140,47,36,.4);
}
h2.sec::after{                           /* 收尾细线 */
  content:"";flex:1;height:1px;margin-left:6px;
  background:linear-gradient(90deg,var(--line),transparent);
}
h3.sub{
  font-size:16px;letter-spacing:1.5px;color:var(--red);margin:24px 0 12px;
  padding-bottom:7px;border-bottom:1px dashed var(--line);
}
h3.sub::before{content:"◆";font-size:10px;color:var(--gold);margin-right:8px;vertical-align:2px}
h4.minor{font-size:14.5px;color:var(--ink);margin:16px 0 6px;letter-spacing:1px}

p{margin:0 0 12px}
.muted{color:var(--ink-3)}
.small{font-size:13px}
.tiny{font-size:12.5px}
.red{color:var(--red)}
.center{text-align:center}
.mt0{margin-top:0}.mb0{margin-bottom:0}

/* ---------------- 首页 ---------------- */
.hero{
  position:relative;text-align:center;padding:26px 0 34px;overflow:hidden;
}
.hero::before{                           /* 巨字水印 */
  content:"命";position:absolute;left:50%;top:50%;
  transform:translate(-50%,-54%);
  font-size:300px;font-weight:600;line-height:1;
  color:var(--red);opacity:.035;pointer-events:none;user-select:none;
}
.hero h1{
  position:relative;
  font-size:38px;letter-spacing:14px;margin:0 0 6px;color:var(--ink);font-weight:600;
  text-shadow:0 1px 0 #fff, 0 3px 14px rgba(90,70,40,.12);
}
.hero h1 span{color:var(--red)}
.hero .lead{
  position:relative;
  font-size:14.5px;color:var(--ink-2);letter-spacing:1.5px;line-height:2.1;
  max-width:680px;margin:6px auto 0;
}
.hero .rule-line{
  position:relative;
  width:150px;height:1px;background:var(--line);margin:26px auto 0;
}
.hero .rule-line::after{
  content:"☯";position:absolute;left:50%;top:-12px;transform:translateX(-50%);
  background:var(--paper);padding:0 10px;color:var(--red);font-size:14px;
}

.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px}
.feature{
  position:relative;
  background:var(--paper-3);border:1px solid var(--line-2);border-radius:6px;
  padding:20px 22px 18px;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.feature:hover{transform:translateY(-2px);border-color:#d8c9a5;box-shadow:var(--shadow-md)}
.feature::before{
  content:"";position:absolute;left:0;top:14px;bottom:14px;width:3px;
  background:var(--gold-soft);border-radius:0 2px 2px 0;opacity:.8;
}
.feature h4{margin:0 0 8px;font-size:15.5px;color:var(--red);letter-spacing:2px}
.feature p{margin:0;font-size:13.5px;color:var(--ink-2);line-height:1.9}

/* ---------------- 表单 ---------------- */
.form-row{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end;margin-bottom:14px}
.field{display:flex;flex-direction:column;gap:5px}
.field > label{font-size:13px;color:var(--ink-2);letter-spacing:1px}
input[type=text],input[type=number],input[type=password],select,textarea{
  font-family:inherit;font-size:14.5px;color:var(--ink);
  background:var(--paper-2);border:1px solid var(--line);border-radius:4px;
  padding:9px 11px;outline:none;transition:border-color .15s, box-shadow .15s;
}
input:focus,select:focus,textarea:focus{
  border-color:var(--gold-soft);
  box-shadow:0 0 0 3px rgba(194,167,106,.16);
}
input[type=number]{width:80px}
textarea{width:100%;min-height:80px;line-height:1.7;resize:vertical}
select{cursor:pointer}

.checkline{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--ink-2);cursor:pointer}
.checkline input{width:15px;height:15px;accent-color:var(--red);cursor:pointer}

.btn{
  display:inline-block;padding:10px 28px;
  background:linear-gradient(180deg,var(--red-soft),var(--red));
  color:#fff;border:1px solid var(--red-deep);border-radius:4px;
  font-family:inherit;font-size:14.5px;letter-spacing:3px;cursor:pointer;
  text-decoration:none;box-shadow:0 2px 6px rgba(140,47,36,.28), inset 0 1px 0 rgba(255,255,255,.22);
  transition:transform .15s ease, box-shadow .15s ease, opacity .15s ease;
}
.btn:hover{opacity:.94;color:#fff;text-decoration:none;transform:translateY(-1px);box-shadow:0 4px 12px rgba(140,47,36,.32), inset 0 1px 0 rgba(255,255,255,.22)}
.btn:active{transform:translateY(0)}
.btn.ghost{
  background:none;color:var(--red);border:1px solid #d9b3aa;
  box-shadow:none;
}
.btn.ghost:hover{background:rgba(140,47,36,.06);color:var(--red);transform:translateY(-1px);box-shadow:0 2px 8px rgba(140,47,36,.1)}
.btn.sm{padding:6px 16px;font-size:13px;letter-spacing:1.5px}

/* ---------------- 四柱盘面 ---------------- */
.pan{width:100%;border-collapse:collapse;font-size:14px;margin-bottom:8px}
.pan th,.pan td{
  border:1px solid var(--line);padding:8px 6px;text-align:center;vertical-align:middle;
}
.pan thead th{
  background:var(--paper-3);font-weight:400;font-size:13px;color:var(--ink-2);letter-spacing:2px;
}
.pan th.rh{
  background:var(--paper-3);font-weight:400;font-size:12.5px;color:var(--ink-3);
  letter-spacing:1px;width:74px;text-align:center;
}
.pan .gz{font-size:26px;line-height:1.3;letter-spacing:3px}
.pan .gz small{display:block;font-size:11px;letter-spacing:1px;color:var(--ink-3);margin-top:2px}
.pan .ss{font-size:12.5px;color:var(--ink-2)}
.pan .hidden-gan{font-size:12.5px;color:var(--ink-3);line-height:1.7}
.pan tr.zhu td{background:rgba(140,47,36,.028)}

/* 五行着色 */
.wx-木{color:var(--wx-mu)}
.wx-火{color:var(--wx-huo)}
.wx-土{color:var(--wx-tu)}
.wx-金{color:var(--wx-jin)}
.wx-水{color:var(--wx-shui)}

.badge{
  display:inline-block;font-size:11.5px;line-height:18px;padding:0 8px;border-radius:3px;
  background:var(--paper-3);border:1px solid var(--line);color:var(--ink-2);
  margin:1px 3px 1px 0;white-space:nowrap;letter-spacing:.5px;
}
.badge.red{color:var(--red);border-color:#e2cec8;background:#fbf3f1}
.badge.ok{color:var(--ok);border-color:#cfe0d0;background:#eef4ee}
.badge.warn{color:var(--warn);border-color:#eccfcc;background:#fbf0ef}
.badge.ghost{opacity:.72}
/* 传统凶煞：赭褐（区别于命理神煞的朱砂红） */
.badge.sha{color:#6b4f2a;border-color:#ddd0b4;background:#f6f0e2}
/* 神煞层级图例 */
.sha-legend{margin:9px 0 0;font-size:12px;line-height:2;color:var(--ink-3)}
.sha-legend .badge{margin:0 2px}
/* 盘面神煞行：逐柱竖排，行高放宽 */
.pan-wz tr.sha-row td{padding:7px 3px;line-height:1.95}
.pan-wz tr.sha-row .badge{font-size:11px;padding:0 6px}

/* ---------------- 分析报告 ---------------- */
.rpt{margin:0;padding:0;list-style:none}
.rpt > li{
  padding:14px 0 14px 0;border-bottom:1px dashed var(--line-2);
}
.rpt > li:last-child{border-bottom:0}
.rpt .hd{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;margin-bottom:5px}
.rpt .hd .idx{
  flex:none;font-size:12px;color:#fff;background:linear-gradient(180deg,var(--red-soft),var(--red));
  border-radius:3px;padding:1px 8px;line-height:19px;letter-spacing:1px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.25);
}
.rpt .hd .t{font-size:14.5px;color:var(--ink);letter-spacing:1px;font-weight:600}
.rpt .bd{font-size:13.8px;color:var(--ink-2);line-height:1.98}
.rpt .rule{
  margin-top:8px;font-size:13px;color:var(--ink-3);line-height:1.85;
  padding:9px 14px;background:var(--paper-3);border-left:2px solid var(--gold);border-radius:0 3px 3px 0;
}
.rpt .rule b{color:var(--gold);font-weight:400;letter-spacing:1px}

.step-flow{display:flex;flex-direction:column;gap:9px;margin:0;padding:0;list-style:none}
.step-flow li{
  display:flex;gap:12px;align-items:flex-start;font-size:13.8px;line-height:1.85;
  padding:12px 15px;background:var(--paper-3);border:1px solid var(--line-2);border-radius:4px;
}
.step-flow li.hit{border-color:#dcc9a8;background:#fbf6ea}
.step-flow .no{
  flex:none;width:23px;height:23px;line-height:21px;text-align:center;font-size:12.5px;
  border-radius:50%;border:1px solid var(--line);color:var(--ink-3);background:var(--paper-2);
}
.step-flow li.hit .no{border-color:var(--gold);color:var(--gold);background:#fff}
.step-flow .tt{font-size:13px;color:var(--ink-3);letter-spacing:1px;margin-bottom:3px}
.step-flow .dd{color:var(--ink-2)}

/* ---------------- 大运 ---------------- */
.dayun{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.dayun li{
  min-width:96px;flex:1 1 96px;text-align:center;background:var(--paper-3);
  border:1px solid var(--line-2);border-radius:4px;padding:10px 6px;
  transition:border-color .15s, background .15s;
}
.dayun li:hover{border-color:var(--gold-soft);background:var(--paper-2)}
.dayun li .age{font-size:11.5px;color:var(--ink-3);letter-spacing:.5px}
.dayun li .gz{font-size:19px;letter-spacing:2px;margin:3px 0 1px}
.dayun li .yr{font-size:11.5px;color:var(--ink-3)}

/* ---------------- 表格 ---------------- */
table.tb{width:100%;border-collapse:collapse;font-size:13.8px}
table.tb th,table.tb td{border-bottom:1px solid var(--line-2);padding:10px 11px;text-align:left;vertical-align:top}
table.tb thead th{
  background:var(--paper-3);color:var(--ink-2);font-weight:400;font-size:13px;
  letter-spacing:1.5px;
  border-bottom:2px solid var(--line);
}
table.tb tbody tr:hover{background:rgba(154,123,63,.045)}
table.tb td.k{width:96px;color:var(--ink-3);font-size:13px}

/* ---------------- 列表 ---------------- */
.list{margin:0;padding:0;list-style:none}
.list > li{padding:15px 0;border-bottom:1px dashed var(--line-2)}
.list > li:last-child{border-bottom:0}
.list .t{font-size:15.5px;color:var(--ink);margin-bottom:4px;letter-spacing:.5px}
.list .t a{color:var(--ink)}
.list .t a:hover{color:var(--red)}
.list .m{font-size:12.5px;color:var(--ink-3);letter-spacing:.5px}
.list .d{font-size:13.5px;color:var(--ink-2);margin-top:5px;line-height:1.85}

.case-card{
  border:1px solid var(--line);border-radius:6px;background:var(--paper-2);
  padding:20px 22px;margin-bottom:16px;
  transition:box-shadow .18s ease, transform .18s ease, border-color .18s ease;
}
.case-card:hover{transform:translateY(-2px);border-color:#d8c9a5;box-shadow:var(--shadow-md)}
.case-card .tt{font-size:15.5px;letter-spacing:1px;margin-bottom:8px}
.case-card .gz{
  font-size:20px;letter-spacing:5px;color:var(--ink);margin:8px 0 10px;
  padding:9px 0;border-top:1px dashed var(--line-2);border-bottom:1px dashed var(--line-2);
}
.case-card .ex{font-size:13.5px;color:var(--ink-2);line-height:1.9}

/* ---------------- 分页 ---------------- */
nav.pager{display:flex;flex-wrap:wrap;gap:5px;justify-content:center;margin:26px 0 0}
nav.pager a,nav.pager span{
  min-width:34px;text-align:center;padding:6px 10px;font-size:13.5px;
  border:1px solid var(--line);border-radius:4px;background:var(--paper-2);color:var(--ink-2);
}
nav.pager a:hover{border-color:var(--red);color:var(--red);text-decoration:none}
nav.pager span.cur{background:linear-gradient(180deg,var(--red-soft),var(--red));border-color:var(--red-deep);color:#fff;box-shadow:0 2px 6px rgba(140,47,36,.25)}
nav.pager span.off{opacity:.42}
nav.pager span.dot{border:0;background:none}

/* ---------------- 标签页 ---------------- */
.tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px}
.tabs a{
  padding:6px 16px;font-size:13.5px;border:1px solid var(--line);border-radius:4px;
  background:var(--paper-2);color:var(--ink-2);letter-spacing:1px;text-decoration:none;
  transition:border-color .15s, color .15s;
}
.tabs a:hover{border-color:var(--red-soft);color:var(--red);text-decoration:none}
.tabs a.on{background:linear-gradient(180deg,var(--red-soft),var(--red));border-color:var(--red-deep);color:#fff;box-shadow:0 2px 6px rgba(140,47,36,.25)}

/* ---------------- 提示条 ---------------- */
.notice{
  background:var(--paper-3);border:1px solid var(--line-2);border-left:3px solid var(--gold);
  border-radius:0 4px 4px 0;padding:14px 18px;font-size:13.2px;color:var(--ink-2);line-height:1.85;
}
.notice b{color:var(--ink);font-weight:600}
.notice.err{border-left-color:var(--warn);background:#fbf3f2}

/* ---------------- 页脚 ---------------- */
.site-foot{
  position:relative;
  border-top:1px solid var(--line);background:var(--paper-2);
  padding:26px 22px 38px;text-align:center;
  box-shadow:0 -3px 18px rgba(90,70,40,.05);
}
.site-foot::before{                      /* 顶部鎏金衬线 + 太极 */
  content:"☯";
  display:block;margin:-43px auto 18px;width:34px;line-height:34px;
  background:var(--paper);border:1px solid var(--line);border-radius:50%;
  color:var(--red);font-size:15px;
}
.site-foot .inner{max-width:1120px;margin:0 auto}
.site-foot p{font-size:12.5px;color:var(--ink-3);line-height:1.9;margin:0 0 5px;letter-spacing:.5px}

/* ---------------- 流年 / 流月 / 流时 ---------------- */
.ln-group{margin:10px 0 16px}
.ln-head{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:8px}
.ln-grid{
  display:grid;grid-template-columns:repeat(10,1fr);gap:6px;
}
.ln-cell{
  display:flex;flex-direction:column;align-items:center;gap:1px;
  padding:8px 2px 6px;border:1px solid var(--line);border-radius:6px;
  background:var(--paper-3);text-decoration:none;color:var(--ink);
  transition:background .15s,border-color .15s,box-shadow .15s;
}
.ln-cell:hover{background:var(--paper-2);border-color:var(--gold-soft);box-shadow:0 3px 10px rgba(120,90,40,.1);text-decoration:none}
.ln-cell.sel{border-color:var(--red);background:var(--paper-2);box-shadow:0 0 0 1px var(--red)}
.ln-cell .y{font-size:12px;color:var(--ink-3);letter-spacing:.5px}
.ln-cell .gz{font-size:15.5px;letter-spacing:1px}
.ln-cell .tiny{font-size:10.5px;line-height:1.4}
@media (max-width:720px){
  .ln-grid{grid-template-columns:repeat(5,1fr)}
}

/* ---------------- 问真式盘面 ---------------- */
.pan-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.pan-wz{width:100%;border-collapse:collapse;table-layout:fixed;background:var(--paper-2)}
.pan-wz th,.pan-wz td{
  border:1px solid var(--line-2);padding:6px 3px;
  text-align:center;vertical-align:middle;
}
.pan-wz thead th{
  background:var(--paper-3);font-size:13.5px;color:var(--ink-2);
  letter-spacing:3px;font-weight:600;
}
.pan-wz th.rh{
  width:32px;background:var(--paper-3);
  font-size:11.5px;color:var(--ink-3);font-weight:400;
  writing-mode:vertical-rl;letter-spacing:4px;padding:8px 4px;
}
.pan-wz .big{font-size:27px;font-weight:600;letter-spacing:0}
.pan-wz tr.big-row td{padding:9px 3px}
.pan-wz .hi{display:block;font-size:15px;line-height:1.7}
.pan-wz .hi i{font-style:normal;font-size:10.5px;color:var(--ink-3);margin-left:2px}
.pan-wz .fu{display:block;font-size:11px;color:var(--ink-2);line-height:1.6}
.pan-wz td .badge{margin:1px 0;white-space:nowrap}
.pan-wz td{font-size:13px}

/* ---------------- 问真式大运横条 ---------------- */
.dy-wz-head{font-size:13.5px;margin:0 0 10px;color:var(--ink-2)}
.dy-wz{overflow-x:auto}
.dy-wz table{border-collapse:collapse;min-width:100%}
.dy-wz td,.dy-wz th{
  border:1px solid var(--line-2);padding:4px 9px;
  text-align:center;vertical-align:middle;min-width:44px;
}
.dy-wz th.rh{
  background:var(--paper-3);font-size:11.5px;
  color:var(--ink-3);font-weight:400;width:28px;
}
.dy-wz td span{font-size:21px;font-weight:600}
.dy-wz td i{font-style:normal;font-size:10.5px;color:var(--ink-3);display:block;line-height:1.3}
.dy-wz td.yr{font-size:11px;color:var(--ink-3)}
.dy-wz td.yr a{color:inherit;text-decoration:none;border-bottom:1px dotted var(--ink-3)}
.dy-wz td.yr a:hover{color:var(--red);border-bottom-color:var(--red)}
.dy-wz tr:nth-child(odd) td{background:var(--paper-3)}
/* 同参所选的那一步大运高亮 */
.dy-wz td.on{background:var(--red-soft)!important;box-shadow:inset 0 0 0 1px var(--red)}

/* ---------------- 运岁同参控制条（四柱 ↔ 大运 · 流年） ---------------- */
.ts-bar{
  border:1px solid var(--line);border-left:4px solid var(--red);
  background:var(--paper-3);border-radius:8px;padding:12px 14px;margin:0 0 14px;
}
.ts-sum{
  display:flex;flex-wrap:wrap;gap:10px;align-items:baseline;
  font-size:14.5px;line-height:1.9;
}
.ts-form{
  display:flex;flex-wrap:wrap;gap:14px;align-items:center;
  margin-top:10px;padding-top:10px;border-top:1px dashed var(--line);
}
.ts-lb{font-size:13.5px;color:var(--ink-2)}
.ts-cb{font-size:14px;cursor:pointer;user-select:none}
.ts-cb input{margin-right:4px;cursor:pointer}
.ts-form select{
  padding:4px 8px;border:1px solid var(--line);border-radius:6px;
  background:var(--paper-2);color:var(--ink);font-size:13.5px;font-family:inherit;
}
.ts-form .btn{margin:0}

/* ---------------- 页签（问真式：基本信息 / 基本排盘 / 专业排盘） ---------------- */
.wz-tabs{
  display:flex;flex-wrap:wrap;gap:6px;margin:0 0 18px;
  border-bottom:2px solid var(--red);padding-bottom:0;
}
.wz-tabs a{
  padding:10px 28px 9px;font-size:15.5px;letter-spacing:2px;text-decoration:none;
  color:var(--ink-2);background:var(--paper-2);
  border:1px solid var(--line);border-bottom:none;border-radius:9px 9px 0 0;
  transition:background .15s, color .15s;
}
.wz-tabs a:hover{background:var(--paper-3);color:var(--ink)}
.wz-tabs a.on{
  background:linear-gradient(180deg,var(--red-soft),var(--red));color:#fff;border-color:var(--red-deep);
  font-weight:600;box-shadow:0 1px 0 var(--red), inset 0 1px 0 rgba(255,255,255,.22);
}

/* ---------------- 打印 ---------------- */
@media print{
  body{background:#fff}
  .site-head,nav.mainnav,.site-foot,.no-print{display:none}
  .card{border:0;box-shadow:none;padding:0;margin-bottom:14px;break-inside:avoid}
  .wrap{max-width:none;padding:0}
  a{color:var(--ink)}
  .ln-cell{border-color:#bbb;background:#fff;break-inside:avoid}
  .pan-wz th,.pan-wz td,.dy-wz td,.dy-wz th{border-color:#bbb}
  .pan-scroll{overflow:visible}
  .pan-scroll .pan-wz{min-width:0!important}
  .ts-bar{background:#fff;border-color:#bbb}
}

/* ---------------- 窄屏 ---------------- */
@media (max-width:720px){
  .wrap{padding:20px 13px 48px}
  .card{padding:20px 16px}
  .hero{padding:16px 0 24px}
  .hero h1{font-size:26px;letter-spacing:6px}
  .hero::before{font-size:190px}
  .pan .gz{font-size:20px;letter-spacing:1px}
  .pan th,.pan td{padding:6px 3px}
  .pan th.rh{width:56px;font-size:11.5px}
  .brand .logo{font-size:21px;letter-spacing:3px}
  .brand-seal{width:36px;height:36px;font-size:18px;border-radius:5px}
  nav.mainnav a{padding:7px 11px;font-size:13px;letter-spacing:.5px}
}

/* ---------------- 会员体系 ---------------- */
nav.mainnav .memberbox{display:inline-flex;gap:8px;align-items:center;margin-left:auto}
nav.mainnav .memberbox a{padding:7px 11px;font-size:13px}
nav.mainnav .memberbox a.reg{color:var(--red)}

/* —— 等级徽章（导航 / 正文通用） —— */
.badge.lv1,.badge.lv2,.badge.lv3{border-radius:3px;padding:2px 9px;font-size:12.5px;letter-spacing:1px}
.badge.lv1{color:#7a5b1e;background:#f7efdb;border:1px solid #e2d3a8}
.badge.lv2{color:#274b73;background:#e3ecf5;border:1px solid #b9cfe2}
.badge.lv3{color:#8c2f24;background:#f9e9e6;border:1px solid #e0b9b0}

/* —— 注册审核状态徽标（后台会员管理 / 站点设置 / 待审核提示页） —— */
.badge.aud-wait{color:#8a5a12;background:#fbf3e2;border:1px solid #e6d3a6}
.badge.aud-ok{color:var(--ok);background:#eef4ee;border:1px solid #cfe0d0}
.badge.aud-no{color:#8c2f24;background:#fbf0ef;border:1px solid #e5c9c3}
/* 待审核队列：整块强调 */
.audit-box{border-left:3px solid #c9a227;background:#fdfaf1}
.audit-box h2.sec{margin-top:0}
.audit-row a.btn{padding:3px 10px;font-size:12.5px}

/* —— 锁定卡（宣纸封条式） —— */
.lock-box{
  position:relative;overflow:hidden;
  background:linear-gradient(135deg,#f8f3e9 0%,#f3ecdd 100%);
  border:1px dashed #c4ab7c;border-radius:6px;
  padding:22px 24px 20px;margin:6px 0 2px;text-align:center;
}
.lock-box::before,.lock-box::after{
  content:"";position:absolute;width:14px;height:14px;
  border-color:#c4ab7c;border-style:solid;
}
.lock-box::before{left:7px;top:7px;border-width:1px 0 0 1px}
.lock-box::after{right:7px;bottom:7px;border-width:0 1px 1px 0}
.lock-box .lk-seal{
  width:44px;height:44px;line-height:44px;margin:0 auto 10px;
  border:1.5px solid var(--red);border-radius:50%;
  color:var(--red);font-size:17px;font-weight:600;letter-spacing:0;
  background:rgba(140,47,36,.04);
}
.lock-box .lk-t{font-size:15px;color:var(--ink);font-weight:600;letter-spacing:1px}
.lock-box .lk-d{font-size:12.8px;color:var(--ink-3);margin-top:6px}
.lock-box .lk-a{margin-top:14px;display:flex;gap:10px;justify-content:center;flex-wrap:wrap}

/* —— 登录 / 注册窄卡 —— */
.auth-head{text-align:center;margin-bottom:18px}
.auth-head .seal{
  width:52px;height:52px;line-height:50px;margin:0 auto 12px;
  border:1.5px solid var(--red);border-radius:50%;
  color:var(--red);font-size:21px;font-weight:600;
  background:rgba(140,47,36,.04);
}
.auth-head .tt{font-size:20px;letter-spacing:5px;font-weight:600;color:var(--ink)}
.auth-head .ds{font-size:12.8px;color:var(--ink-3);margin-top:4px;letter-spacing:1px}
.auth-card .field input{background:var(--paper-3)}
.auth-card .field input:focus{border-color:var(--gold-soft)}
.auth-card form{max-width:340px;margin:0 auto}
.auth-card .full-row{display:flex;justify-content:center;gap:10px;margin-top:16px}
.auth-foot{
  text-align:center;margin-top:16px;padding-top:12px;border-top:1px dashed var(--line);
  font-size:13px;color:var(--ink-3);
}

/* —— 会员中心身份卡 —— */
.mbr-hero{
  position:relative;overflow:hidden;
  background:linear-gradient(150deg,#fffdf8 0%,#faf4e8 70%,#f5ecd9 100%);
  border:1px solid #dccfa9;border-radius:8px;
  padding:28px 30px;margin-bottom:26px;
  box-shadow:var(--shadow-md);
}
.mbr-hero::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:5px;
  background:var(--gold);opacity:.75;
}
.mbr-hero.lv2::before{background:#274b73}
.mbr-hero.lv3::before{background:var(--red)}
.mbr-hero .inner{display:flex;gap:22px;align-items:center;flex-wrap:wrap}
.mbr-seal{
  flex:0 0 auto;width:86px;height:86px;border-radius:50%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  border:2px solid var(--gold);color:#7a5b1e;
  background:radial-gradient(circle at 35% 30%,#fdf9ee,#f3e8cd);
  box-shadow:0 0 0 4px rgba(154,123,63,.08);
}
.mbr-seal .big{font-size:24px;font-weight:600;letter-spacing:2px;line-height:1.3}
.mbr-seal .sml{font-size:10.5px;letter-spacing:2px;opacity:.75}
.mbr-hero.lv2 .mbr-seal{border-color:#274b73;color:#274b73;background:radial-gradient(circle at 35% 30%,#f2f7fb,#dce8f2);box-shadow:0 0 0 4px rgba(39,75,115,.08)}
.mbr-hero.lv3 .mbr-seal{border-color:var(--red);color:var(--red);background:radial-gradient(circle at 35% 30%,#fbf0ec,#f3ddd4);box-shadow:0 0 0 4px rgba(140,47,36,.08)}
.mbr-seal.guest{border-color:var(--line);color:var(--ink-3);background:var(--paper-3);box-shadow:none}
.mbr-info{flex:1;min-width:230px}
.mbr-info .nm{font-size:20px;font-weight:600;letter-spacing:2px;color:var(--ink)}
.mbr-info .nm .badge{margin-left:10px;vertical-align:3px}
.mbr-info .meta{margin-top:10px;font-size:13px;color:var(--ink-2);display:grid;grid-template-columns:auto 1fr;gap:3px 16px}
.mbr-info .meta .k{color:var(--ink-3)}
.mbr-acts{display:flex;gap:9px;flex-wrap:wrap;margin-top:14px}

/* —— 三档权益卡 —— */
.tier-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;margin-top:16px}
.tier{
  position:relative;background:var(--paper-2);border:1px solid var(--line);
  border-radius:6px;padding:0 0 16px;overflow:hidden;
  transition:transform .18s ease, box-shadow .18s ease;
}
.tier:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.tier .bar{
  height:7px;background:linear-gradient(90deg,var(--gold),#c9ad72);
}
.tier.lv2 .bar{background:linear-gradient(90deg,#274b73,#5a83ab)}
.tier.lv3 .bar{background:linear-gradient(90deg,var(--red),#c06a55)}
.tier .body{padding:16px 18px 0}
.tier .nm{font-size:16.5px;font-weight:600;letter-spacing:2px;color:var(--ink)}
.tier .en{font-size:11px;letter-spacing:2px;color:var(--ink-3);margin-left:8px}
.tier .ds{font-size:12.8px;color:var(--ink-2);margin-top:7px;line-height:1.85}
.tier ul{margin:10px 0 0;padding:0;list-style:none;font-size:12.8px;color:var(--ink-2)}
.tier ul li{padding:3px 0 3px 16px;position:relative}
.tier ul li::before{content:"·";position:absolute;left:4px;color:var(--gold);font-weight:700}
.tier.lv2 ul li::before{color:#274b73}
.tier.lv3 ul li::before{color:var(--red)}
.tier .curtag{
  position:absolute;right:12px;top:16px;
  font-size:11px;letter-spacing:1px;color:var(--red);
  border:1px solid var(--red);border-radius:3px;padding:1px 7px;
  background:rgba(140,47,36,.05);
}
.tier.cur{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold) inset,0 4px 14px rgba(120,90,40,.1)}
.tier.cur.lv2{border-color:#274b73;box-shadow:0 0 0 1px #274b73 inset,0 4px 14px rgba(120,90,40,.1)}
.tier.cur.lv3{border-color:var(--red);box-shadow:0 0 0 1px var(--red) inset,0 4px 14px rgba(120,90,40,.1)}
.tier .go{margin-top:12px;text-align:right;padding-right:18px}

/* —— 权益对照表 —— */
.perks td{font-size:13.2px}
.perks .yes{color:var(--red);font-weight:600}
.perks .no{color:var(--ink-3);opacity:.55}
.perks .partial{color:var(--gold);font-size:12.3px}
.perks th{white-space:nowrap}
.perks .this-col{background:rgba(154,123,63,.07)}

/* —— 注册页等级选择卡 —— */
.level-pick{display:grid;grid-template-columns:1fr;gap:10px;margin-top:4px}
.level-pick .lv-opt{
  display:block;position:relative;cursor:pointer;
  border:1px solid var(--line);border-radius:6px;background:var(--paper-3);
  padding:12px 16px 11px;transition:border-color .15s, box-shadow .15s, background .15s;
}
.level-pick .lv-opt:hover{border-color:var(--gold-soft)}
.level-pick .lv-opt input{position:absolute;opacity:0;pointer-events:none}
.level-pick .lv-opt .hd{display:flex;align-items:baseline;gap:10px}
.level-pick .lv-opt .nm{font-size:14.5px;font-weight:600;letter-spacing:1px;color:var(--ink)}
.level-pick .lv-opt .dot{width:10px;height:10px;border-radius:50%;display:inline-block;background:var(--gold)}
.level-pick .lv-opt.lv2 .dot{background:#274b73}
.level-pick .lv-opt.lv3 .dot{background:var(--red)}
.level-pick .lv-opt .ds{font-size:12.5px;color:var(--ink-2);margin-top:3px;line-height:1.8}
.level-pick .lv-opt:has(input:checked){
  border-color:var(--gold);background:#fdf8ec;
  box-shadow:0 0 0 1px var(--gold) inset;
}
.level-pick .lv-opt.lv2:has(input:checked){border-color:#274b73;box-shadow:0 0 0 1px #274b73 inset;background:#f4f8fb}
.level-pick .lv-opt.lv3:has(input:checked){border-color:var(--red);box-shadow:0 0 0 1px var(--red) inset;background:#fbf2ef}
.level-pick .lv-opt .tick{
  position:absolute;right:12px;top:12px;display:none;
  color:var(--gold);font-size:13px;font-weight:700;
}
.level-pick .lv-opt.lv2 .tick{color:#274b73}
.level-pick .lv-opt.lv3 .tick{color:var(--red)}
.level-pick .lv-opt:has(input:checked) .tick{display:inline}

/* ---------------- 接口连接异常提示条 ---------------- */
.api-alert{
  position:relative;padding:10px 44px 10px 16px;
  background:#fbf2ef;border-bottom:1px solid var(--red);color:#6d2119;
  font-size:13.5px;line-height:1.85;
}
.api-alert b{color:var(--red)}
.api-alert a{color:var(--red);text-decoration:underline}
.api-alert .tiny{color:#8a6a62}
.api-alert-x{position:absolute;right:14px;top:8px;cursor:pointer;font-size:18px;line-height:1;color:#8a6a62}
.api-alert-x:hover{color:var(--red)}
@media print{.api-alert{display:none}}

/* =====================================================================
   移动端体验增强（手机 ≤700px；平板与桌面不受影响）
   宽表交互由 app.js 的 tblScrollInit() 配合：宽表统一包 .tbl-scroll，
   外层 .tbl-wrap 依据滚动状态点亮 ovf-l / ovf-r 渐隐遮罩。
   ===================================================================== */

/* —— 宽表滚动容器（双端通用，内容不超宽时无滚动条、零视觉影响） —— */
.tbl-wrap{position:relative}
.tbl-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.tbl-wrap.ovf-r::after{
  content:"";position:absolute;top:0;bottom:0;right:0;width:26px;
  pointer-events:none;border-radius:0 4px 4px 0;
  background:linear-gradient(90deg,rgba(255,253,248,0),rgba(255,253,248,.92));
}
.tbl-wrap.ovf-l::before{
  content:"";position:absolute;top:0;bottom:0;left:0;width:26px;
  pointer-events:none;border-radius:4px 0 0 4px;
  background:linear-gradient(270deg,rgba(255,253,248,0),rgba(255,253,248,.92));
}

@media (max-width:700px){
  /* 输入字号 ≥16px：避免 iOS Safari 聚焦时强制放大页面 */
  input,select,textarea{font-size:16px}

  /* 触控目标加高（导航 / 页签 / 按钮 ≥ 40px） */
  nav.mainnav a{padding:11px 14px 13px}
  .tabs a,.wz-tabs a{padding:10px 14px}
  .btn{padding:11px 20px}

  /* 排盘页签：窄屏改横向滑动，不再挤压换行 */
  .wz-tabs{
    flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  .wz-tabs::-webkit-scrollbar{display:none}
  .wz-tabs a{white-space:nowrap;flex:none}

  /* 问真盘面：行头列吸附——滑动盘面时「日期/主星/天干/地支」行名始终可见 */
  .pan-scroll th.rh{
    position:sticky;left:0;z-index:2;
    box-shadow:1px 0 0 var(--line-2);
  }
}

/* ======================================================================
   万年历（黄历）—— 桌面 SPA 版式（/calendar）
   与手机端 /m/#/calendar 同一套数据与口径，仅版式不同。
   ====================================================================== */
.cal-bar{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  margin:4px 0 14px;
}
.cal-ym{font-size:17px;letter-spacing:1px}
table.cal-tb{table-layout:fixed;width:100%}
table.cal-tb thead th{
  font-weight:400;font-size:12px;color:var(--ink-3);padding:6px 2px;
  border-bottom:1px solid var(--line);
}
table.cal-tb thead th:first-child,table.cal-tb thead th:last-child{color:var(--red)}
table.cal-tb td{
  text-align:center;vertical-align:top;padding:8px 2px 7px;
  border-bottom:1px solid var(--line-2);cursor:pointer;
}
table.cal-tb td.cal-blank{cursor:default;border-bottom:0}
table.cal-tb td b{display:block;font-size:16px;line-height:1.25}
table.cal-tb td span{display:block;font-size:10.5px;line-height:1.4;color:var(--ink-3)}
table.cal-tb td .cal-fest{color:var(--red);font-weight:600}
table.cal-tb td .cal-jq{color:var(--gold);font-weight:600}
table.cal-tb td .cal-lm{color:var(--ink-2)}
table.cal-tb td.today{background:var(--paper-3);box-shadow:inset 0 0 0 1px var(--gold-soft)}
table.cal-tb td.today b{color:var(--gold)}
table.cal-tb td.sel{background:var(--ink);color:#fff}
table.cal-tb td.sel b,table.cal-tb td.sel span{color:var(--gold-soft)}
table.cal-tb td:not(.cal-blank):hover{background:var(--paper-3)}

table.hr-tb td{
  text-align:center;vertical-align:middle;padding:8px 4px;
  border:1px solid var(--line-2);
}
table.hr-tb td b{display:block;font-size:12.5px}
table.hr-tb td .gz{display:block;font-size:16px;font-weight:700;margin:2px 0}
table.hr-tb td.ok{background:#f2f8f3}
table.hr-tb td.ok .gz{color:var(--ok)}
table.hr-tb td.no{background:var(--paper-3)}
table.hr-tb td.no .gz{color:var(--ink-3)}


/* ======================================================================
   排盘历史（/history）—— 按「命例」归并：一个命例一条，历次排盘时间可展开
   ====================================================================== */
.hist-list{display:flex;flex-direction:column;gap:10px}
.hist-item{
  border:1px solid var(--line);border-radius:8px;background:var(--paper-2);
  padding:12px 14px 10px;
}
.hist-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.hist-date{font-size:14.5px;color:var(--ink-2);letter-spacing:.5px}
.hist-gz{font-size:18px;letter-spacing:2px}
.hist-sp{flex:1;min-width:0}
.hist-sub{
  margin-top:6px;font-size:12.5px;color:var(--ink-3);
}
.hist-sub b{color:var(--red);font-weight:600;font-size:13.5px}
details.hist-det{margin-top:7px;border-top:1px dashed var(--line-2);padding-top:6px}
details.hist-det > summary{
  cursor:pointer;font-size:12.5px;color:var(--gold);list-style:none;
}
details.hist-det > summary::-webkit-details-marker{display:none}
details.hist-det > summary::before{content:"▸ ";font-size:11px}
details.hist-det[open] > summary::before{content:"▾ "}
ul.hist-times{list-style:none;margin:6px 0 2px;padding:0}
ul.hist-times li{
  display:flex;align-items:center;gap:12px;
  font-size:12.5px;color:var(--ink-2);
  padding:4px 0;border-bottom:1px dotted var(--line-2);
}
ul.hist-times li:last-child{border-bottom:0}
ul.hist-times li .tm{font-variant-numeric:tabular-nums}
ul.hist-times li.hist-more{color:var(--ink-3);font-style:italic;display:block}
a.mini{font-size:12px;color:var(--ink-3)}
a.mini:hover{color:var(--red)}
@media (max-width:700px){
  .hist-top{gap:8px}
  .hist-gz{font-size:17px;letter-spacing:1px}
  .hist-sp{display:none}
}

/* 原局提示（基本排盘 · 袁天罡称骨之下） */
ul.dy-list{list-style:none;margin:6px 0 8px;padding:0}
ul.dy-list li{
  position:relative;padding:6px 0 6px 16px;font-size:14.2px;line-height:1.9;
  border-bottom:1px dashed rgba(0,0,0,.08);
}
ul.dy-list li:last-child{border-bottom:0}
ul.dy-list li::before{content:"◦";position:absolute;left:2px;color:var(--gold);font-weight:700}
ul.dy-list li .tiny{display:block;margin-top:3px;font-size:11.5px;line-height:1.6}

