/* ========= 命理 App · 深色主题（移动优先） ========= */
:root{
  --bg:#0b0d14;
  --bg2:#141a26;
  --card:rgba(255,255,255,.045);
  --card-br:rgba(212,175,55,.22);
  --gold:#d4af37;
  --gold-l:#f0d97a;
  --txt:#f2f4f8;
  --txt2:#a9b2c4;
  --txt3:#6f7889;
  --up:#e5484d;
  --down:#3fb950;
  --r:14px;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0}
body{
  background:var(--bg);color:var(--txt);
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;
  font-size:15px;line-height:1.65;overflow-x:hidden;
}
#app{max-width:520px;margin:0 auto;min-height:100vh;position:relative;padding-bottom:64px}

/* 星空背景 */
.stars{position:fixed;inset:0;pointer-events:none;z-index:0}
.stars i{position:absolute;width:2px;height:2px;border-radius:50%;background:#fff;opacity:.5;animation:tw 3s infinite}
@keyframes tw{0%,100%{opacity:.15;transform:scale(.8)}50%{opacity:.85;transform:scale(1.2)}}

/* ========= 屏幕容器 ========= */
.screen{display:none;position:relative;z-index:1;animation:fade .32s ease}
.screen.active{display:block}
@keyframes fade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* ========= 引导页 ========= */
#screen-intro{min-height:100vh;display:none;place-items:center;background:radial-gradient(120% 80% at 50% 0%,#1a2133 0%,#0b0d14 60%)}
#screen-intro.active{display:grid}
.intro-wrap{text-align:center;padding:0 30px}
.seal{
  width:86px;height:86px;margin:0 auto 26px;border-radius:50%;
  display:grid;place-items:center;font-size:42px;color:var(--gold);
  border:1px solid rgba(212,175,55,.4);
  background:radial-gradient(circle at 50% 40%,rgba(212,175,55,.18),transparent 70%);
  box-shadow:0 0 40px rgba(212,175,55,.22);animation:breathe 4s ease-in-out infinite;
}
@keyframes breathe{0%,100%{transform:scale(1);box-shadow:0 0 34px rgba(212,175,55,.16)}50%{transform:scale(1.06);box-shadow:0 0 56px rgba(212,175,55,.34)}}
.hero-title{font-size:29px;letter-spacing:3px;margin:0 0 16px;background:linear-gradient(180deg,#fff,var(--gold-l));-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:600}
.hero-line{color:var(--txt2);font-size:13.5px;margin:0 0 20px;letter-spacing:.5px}
.hero-line i{color:var(--gold);opacity:.6;margin:0 5px;font-style:normal}
.hero-sub{color:var(--txt3);font-size:14px;margin:0 0 34px;line-height:1.9}
.hero-sub b{color:var(--gold-l)}
.tiny-note{color:var(--txt3);font-size:11.5px;text-align:center;margin:16px 0 0;opacity:.75}

/* ========= 按钮 ========= */
.btn{display:block;width:100%;border:none;border-radius:999px;padding:14px 20px;font-size:16px;font-weight:600;cursor:pointer;transition:.22s;font-family:inherit}
.btn-gold{background:linear-gradient(135deg,#e9c95c,#c79a1e);color:#1a1405;box-shadow:0 8px 26px rgba(212,175,55,.28)}
.btn-gold:active{transform:scale(.975);box-shadow:0 4px 14px rgba(212,175,55,.2)}
.btn-ghost{background:transparent;color:var(--txt3);border:1px solid rgba(255,255,255,.1);font-size:13px;padding:10px;font-weight:400;margin-top:10px}

/* ========= 头部 ========= */
.hd{display:flex;align-items:center;gap:10px;padding:16px 18px 12px;position:sticky;top:0;z-index:20;background:linear-gradient(180deg,var(--bg) 72%,transparent);backdrop-filter:blur(8px)}
.hd h2{font-size:17px;margin:0;font-weight:600;flex:1}
.back{background:none;border:none;color:var(--txt2);font-size:21px;cursor:pointer;padding:0 4px;line-height:1}
.share-ico{background:rgba(212,175,55,.12);border:1px solid var(--card-br);color:var(--gold);width:32px;height:32px;border-radius:50%;font-size:15px;cursor:pointer}
.hd-tag{font-size:11px;color:var(--gold);border:1px solid var(--card-br);border-radius:999px;padding:2px 9px;background:rgba(212,175,55,.08)}

/* ========= 命理方式列表 ========= */
.method-list{padding:6px 16px}
.m-item{display:flex;align-items:center;gap:14px;padding:16px;margin-bottom:12px;border-radius:var(--r);background:var(--card);border:1px solid rgba(255,255,255,.07);cursor:pointer;transition:.22s;position:relative;overflow:hidden}
.m-item:active{transform:scale(.985);border-color:var(--card-br)}
.m-item .ico{width:46px;height:46px;flex:0 0 46px;border-radius:12px;display:grid;place-items:center;font-size:22px;background:linear-gradient(140deg,rgba(212,175,55,.2),rgba(212,175,55,.04));border:1px solid rgba(212,175,55,.2)}
.m-item .info{flex:1;min-width:0}
.m-item .nm{font-size:16px;font-weight:600;margin-bottom:3px}
.m-item .ds{font-size:12.5px;color:var(--txt2);line-height:1.5}
.m-item .ar{color:var(--txt3);font-size:16px}
.hint-bar{margin:4px 16px 20px;padding:11px 14px;border-radius:10px;background:rgba(212,175,55,.07);border:1px solid var(--card-br);font-size:12.5px;color:var(--txt2);text-align:center}
.hint-bar b{color:var(--gold-l)}

/* ========= 表单 ========= */
.form-card{margin:6px 16px;padding:20px;border-radius:var(--r);background:var(--card);border:1px solid rgba(255,255,255,.07)}
.method-badge{display:inline-block;font-size:12px;color:var(--gold);border:1px solid var(--card-br);background:rgba(212,175,55,.08);border-radius:999px;padding:3px 12px;margin-bottom:18px}
.field{margin-bottom:17px}
.field.hide{display:none}
.hide{display:none !important}
.field label{display:block;font-size:13px;color:var(--txt2);margin-bottom:7px}
.field .opt{color:var(--txt3);font-size:11.5px}
.field input,.field textarea{width:100%;background:rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:12px 13px;color:var(--txt);font-size:15px;font-family:inherit;outline:none;transition:.2s}
.field input:focus,.field textarea:focus{border-color:rgba(212,175,55,.5);background:rgba(0,0,0,.4)}
.field textarea{resize:vertical}
.field input[type=date],.field input[type=datetime-local]{-webkit-appearance:none;appearance:none;min-height:46px}
.seg{display:flex;gap:10px}
.seg button{flex:1;padding:11px;border-radius:10px;border:1px solid rgba(255,255,255,.1);background:rgba(0,0,0,.28);color:var(--txt2);font-size:15px;cursor:pointer;font-family:inherit;transition:.2s}
.seg button.on{background:linear-gradient(135deg,rgba(233,201,92,.22),rgba(199,154,30,.12));border-color:rgba(212,175,55,.55);color:var(--gold-l);font-weight:600}
/* 日历切换 / 字段提示 */
.seg-cal{margin-bottom:9px}
.seg-cal button{padding:8px;font-size:13.5px}
.fld-tip{font-size:11.5px;color:var(--txt3);line-height:1.6;margin:8px 0 0}
.q-tip-e{color:var(--gold);font-size:12px;line-height:1.8}
.q-tip-l{color:var(--txt3)}

/* ========= 结果页 ========= */
.res-body{padding:0 16px 24px}
.card{border-radius:var(--r);background:var(--card);border:1px solid rgba(255,255,255,.07);padding:18px;margin-bottom:14px}
.chart-card{background:linear-gradient(150deg,rgba(212,175,55,.09),rgba(255,255,255,.03));border-color:var(--card-br)}
.chart-title{font-size:17px;font-weight:600;color:var(--gold-l);margin:0 0 5px}
.chart-sub{font-size:13px;color:var(--txt2);margin:0 0 14px;line-height:1.6}
.chart-summary{font-size:14px;color:var(--txt);line-height:1.85;border-top:1px dashed rgba(255,255,255,.1);padding-top:13px;margin-top:13px;white-space:pre-line}
.chart-extras{display:flex;gap:9px;flex-wrap:wrap;margin-top:13px}
.chart-extras span{font-size:12px;color:var(--gold);background:rgba(212,175,55,.1);border:1px solid var(--card-br);border-radius:8px;padding:4px 10px}
.pillar-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:13px 0}
.pillar{text-align:center;padding:11px 5px;border-radius:10px;background:rgba(0,0,0,.26);border:1px solid rgba(255,255,255,.07)}
.pillar .pz{font-size:11px;color:var(--txt3)}
.pillar .pg{font-size:19px;color:var(--gold-l);font-weight:600;letter-spacing:1px;margin:3px 0}
.pillar .pd{font-size:10px;color:var(--txt3);line-height:1.35}
.ele-bars{margin-top:12px}
.ele-row{display:flex;align-items:center;gap:9px;margin-bottom:6px;font-size:12px}
.ele-row .el{width:26px;color:var(--txt2)}
.ele-row .bar{flex:1;height:7px;border-radius:4px;background:rgba(255,255,255,.08);overflow:hidden}
.ele-row .bar i{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,var(--gold),var(--gold-l))}
.ele-row .ct{width:18px;text-align:right;color:var(--txt3)}

/* 六爻爻线（含地支 / 六亲 / 世应） */
.yao-list{margin:14px 0;display:flex;flex-direction:column-reverse;gap:8px}
.yao{display:flex;align-items:center;gap:8px;font-size:12px}
.yao .yn{width:30px;color:var(--txt3);font-size:11px;flex:none}
.yao .yb{flex:1;display:flex;gap:7px;height:9px}
.yao .yb i{background:var(--txt2);border-radius:2px;flex:1}
.yao .yb i.gap{background:transparent}
.yao.mv .yb i{background:var(--gold)}
.yao .yd{width:20px;text-align:center;color:var(--txt2);font-size:11px;flex:none}
.yao .yq{width:40px;text-align:center;color:var(--gold);font-size:11px;flex:none}
.yao .ym{width:40px;font-size:10px;color:var(--gold);text-align:right;flex:none}
.yao.shi .yn,.yao.shi .yq{color:#7ee787}
.yao.ying .yn,.yao.ying .yq{color:#79c0ff}
.yao.shi,.yao.ying{background:rgba(255,255,255,.04);border-radius:7px;padding:2px 4px;margin:0 -4px}

/* 六爻：卦象要素 + 吉凶成败应期 */
.ly-meta{display:flex;gap:8px;flex-wrap:wrap;font-size:11.5px;color:var(--txt2);margin-bottom:11px}
.ly-meta span{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.07);border-radius:7px;padding:4px 9px}
.ly-judge{margin:12px 0;border-radius:11px;border:1px solid var(--card-br);background:rgba(212,175,55,.06);overflow:hidden}
.ly-row{display:flex;align-items:center;gap:10px;padding:9px 13px;border-bottom:1px dashed rgba(255,255,255,.08)}
.ly-row:last-child{border-bottom:0}
.ly-row span{width:38px;flex:none;font-size:11.5px;color:var(--txt3)}
.ly-row b{flex:1;font-size:13.5px;color:var(--txt);font-weight:600;line-height:1.6}
.ly-row b.up{color:#ff8085}
.ly-row b.mid{color:var(--gold-l)}
.ly-row b.down{color:#7ee787}
.ly-lock{margin:12px 0;padding:11px 13px;border-radius:11px;border:1px dashed rgba(212,175,55,.4);background:rgba(212,175,55,.05);font-size:12.5px;color:var(--gold-l);text-align:center}

/* 紫微十二宫 */
.zw-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:14px 0}
.zw{padding:9px 4px;border-radius:9px;background:rgba(0,0,0,.26);border:1px solid rgba(255,255,255,.07);text-align:center;min-height:66px}
.zw.ming{border-color:rgba(212,175,55,.6);background:rgba(212,175,55,.1)}
.zw.shen{border-color:rgba(120,180,255,.45)}
.zw .zn{font-size:10.5px;color:var(--txt3)}
.zw .zs{font-size:13px;color:var(--gold-l);font-weight:600;margin:2px 0}
.zw .zt{font-size:9px;color:var(--txt3);line-height:1.3}

/* 奇门：落宫头 + 九宫盘 + 三才 + 择方择时 */
.qm-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}
.qm{padding:12px 6px;border-radius:10px;background:rgba(0,0,0,.26);border:1px solid rgba(255,255,255,.07);text-align:center}
.qm .ql{font-size:10.5px;color:var(--txt3)}
.qm .qv{font-size:15px;color:var(--gold-l);font-weight:600;margin-top:3px}
.qm.hl{border-color:rgba(212,175,55,.55);background:rgba(212,175,55,.09)}

.qm-head{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:12px 0}
.qm-hl{padding:9px 5px;border-radius:9px;background:rgba(0,0,0,.26);border:1px solid rgba(255,255,255,.07);text-align:center}
.qm-hl span{display:block;font-size:10px;color:var(--txt3)}
.qm-hl b{display:block;font-size:13px;color:var(--gold-l);font-weight:600;margin-top:3px}
.qm-hl b.up{color:#ff8085}
.qm-hl b.mid{color:var(--gold-l)}
.qm-hl b.down{color:#7ee787}

.qm-palaces{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:12px 0}
.qm-cell{position:relative;padding:8px 3px;border-radius:9px;background:rgba(0,0,0,.3);border:1px solid rgba(255,255,255,.07);text-align:center;min-height:88px}
.qm-cell.empty{background:transparent;border-style:dashed;opacity:.35}
.qm-cell.lv-吉{border-color:rgba(212,175,55,.4)}
.qm-cell.lv-凶{border-color:rgba(120,140,170,.3)}
.qm-cell.use{background:rgba(212,175,55,.12);border-color:rgba(212,175,55,.75);box-shadow:0 0 0 1px rgba(212,175,55,.35) inset}
.qm-cn{font-size:9.5px;color:var(--txt3);line-height:1.25}
.qm-cn i{display:block;font-style:normal;color:var(--txt2)}
.qm-cd{font-size:12px;color:var(--gold-l);font-weight:600;margin-top:3px}
.qm-cs{font-size:10px;color:var(--txt2)}
.qm-cg{font-size:10px;color:var(--txt2)}
.qm-cy{font-size:9.5px;color:var(--txt3);margin-top:2px;letter-spacing:.5px}
.qm-flag{position:absolute;top:-6px;left:50%;transform:translateX(-50%);font-size:9px;background:var(--gold);color:#1a1400;border-radius:999px;padding:1px 7px;font-weight:700}

.qm-sancai{display:flex;flex-direction:column;gap:8px;margin:12px 0}
.qm-sc{padding:10px 12px;border-radius:10px;background:rgba(255,255,255,.04);border-left:2px solid rgba(212,175,55,.55)}
.qm-sc span{font-size:11px;color:var(--gold);font-weight:600}
.qm-sc p{margin:3px 0 0;font-size:12.5px;color:var(--txt2);line-height:1.7}

.qm-pick{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:12px 0}
.qm-pk{padding:9px 5px;border-radius:9px;background:rgba(212,175,55,.08);border:1px solid var(--card-br);text-align:center}
.qm-pk.bad{background:rgba(120,140,170,.1);border-color:rgba(160,175,200,.25)}
.qm-pk span{display:block;font-size:10px;color:var(--txt3)}
.qm-pk b{display:block;font-size:13px;color:var(--gold-l);font-weight:600;margin-top:2px}
.qm-pk.bad b{color:#9fb0c8}
.qm-pk i{display:block;font-style:normal;font-size:9.5px;color:var(--txt3);margin-top:1px}

.qm-times{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:12px 0}
.qm-tm{padding:9px 5px;border-radius:9px;background:rgba(0,0,0,.26);border:1px solid rgba(255,255,255,.07);text-align:center}
.qm-tm span{display:block;font-size:9.5px;color:var(--txt3)}
.qm-tm b{display:block;font-size:13px;color:var(--gold-l);font-weight:600;margin-top:2px}
.qm-tm i{display:block;font-style:normal;font-size:9.5px;color:var(--txt3);margin-top:1px}

/* 维度提示卡 */
.dim-note{padding:15px 18px}
.dim-note-hd{font-size:13px;color:var(--txt2);margin-bottom:10px}
.dim-chips{display:flex;flex-wrap:wrap;gap:8px}
.dim-chips span{font-size:13px;padding:6px 12px;border-radius:999px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.09)}
.dim-note-ft{font-size:11.5px;color:var(--txt3);margin-top:11px}

/* 年份卡 */
.year-card{border-radius:var(--r);background:var(--card);border:1px solid rgba(255,255,255,.07);padding:16px;margin-bottom:13px;animation:up .45s ease both}
@keyframes up{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.year-hd{display:flex;align-items:center;gap:11px;margin-bottom:11px}
.year-num{font-size:24px;font-weight:700;color:var(--gold-l);letter-spacing:1px;font-variant-numeric:tabular-nums}
.year-gz{font-size:12px;color:var(--txt3);border:1px solid rgba(255,255,255,.1);border-radius:7px;padding:2px 8px}
.year-score{margin-left:auto;text-align:right}
.year-score .sv{font-size:21px;font-weight:700;font-variant-numeric:tabular-nums}
.year-score .sl{font-size:10px;color:var(--txt3)}
.year-head{font-size:14px;color:var(--txt);margin:0 0 13px;padding:9px 12px;border-radius:9px;background:rgba(212,175,55,.07);border-left:2px solid var(--gold);line-height:1.6}
.dim-row{display:flex;align-items:flex-start;gap:11px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.05)}
.dim-row:last-child{border-bottom:none}
.dim-row .di{width:30px;height:30px;flex:0 0 30px;border-radius:9px;display:grid;place-items:center;font-size:15px;background:rgba(255,255,255,.055)}
.dim-row .dn{width:40px;flex:0 0 40px;font-size:13.5px;color:var(--txt);font-weight:500;padding-top:4px}
.dim-row .dc{flex:1;min-width:0}
.dim-row .dl{display:flex;align-items:center;gap:8px;margin-bottom:3px}
.dim-row .lv{font-size:11px;padding:1.5px 8px;border-radius:6px;font-weight:600}
.dim-row .dt{font-size:12.5px;color:var(--txt2);line-height:1.55}
.lv-上上{background:rgba(229,72,77,.16);color:#ff8085}
.lv-上{background:rgba(229,120,72,.16);color:#ffab7a}
.lv-中{background:rgba(212,175,55,.16);color:var(--gold-l)}
.lv-下{background:rgba(63,185,80,.16);color:#7ee787}
.lv-下下{background:rgba(63,185,80,.24);color:#56d364}
.year-bar{height:6px;border-radius:3px;background:rgba(255,255,255,.08);overflow:hidden;margin-top:11px}
.year-bar i{display:block;height:100%;border-radius:3px;transition:width .8s ease}

/* 锁定区 */
.lock-zone{border-radius:var(--r);border:1px dashed rgba(212,175,55,.45);background:linear-gradient(160deg,rgba(212,175,55,.09),rgba(255,255,255,.02));padding:22px 18px;text-align:center;margin-bottom:14px}
.lock-zone .lk{font-size:30px;margin-bottom:8px}
.lock-zone h4{margin:0 0 7px;font-size:16px;color:var(--gold-l)}
.lock-zone p{margin:0 0 16px;font-size:13px;color:var(--txt2);line-height:1.7}
.lock-zone .btn{padding:12px;font-size:15px}
.locked-year{border-radius:var(--r);border:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.025);padding:16px;margin-bottom:13px;filter:blur(.6px);opacity:.55}
.locked-year .lh{font-size:17px;font-weight:600;color:var(--txt2);margin-bottom:9px}
.locked-year .ll{height:9px;border-radius:5px;background:rgba(255,255,255,.07);margin-bottom:8px}
.locked-year .ll:nth-child(3){width:82%}.locked-year .ll:nth-child(4){width:64%}

/* 师傅卡 */
.master-card{text-align:center}
.master-card .mt{font-size:13px;color:var(--txt2);margin-bottom:13px}
.master-card .qr{width:170px;height:170px;margin:0 auto;border-radius:12px;background:#fff;display:grid;place-items:center;overflow:hidden;position:relative}
.master-card .qr img{width:100%;height:100%;object-fit:contain}
.master-card .qr .ph{color:#9aa;font-size:12.5px;padding:14px;line-height:1.6;text-align:center}
.master-card .mw{margin-top:12px;font-size:13.5px;color:var(--gold-l);font-weight:600}
.master-card .tip{font-size:11.5px;color:var(--txt3);margin-top:7px}

.disclaimer{font-size:11.5px;color:var(--txt3);text-align:center;line-height:1.75;padding:8px 10px 0;opacity:.8}

/* ========= 测试工具条 ========= */
.test-bar{background:rgba(88,166,255,.07);border-color:rgba(88,166,255,.3)}
.tb-hd{font-size:12px;color:#79c0ff;margin-bottom:11px;font-weight:600}
.tb-btns{display:flex;gap:9px;margin-bottom:10px}
.tb-btns button{flex:1;background:rgba(88,166,255,.12);border:1px solid rgba(88,166,255,.35);color:#a8d0ff;border-radius:9px;padding:10px 6px;font-size:12.5px;cursor:pointer;font-family:inherit;transition:.18s}
.tb-btns button:active{background:rgba(88,166,255,.24)}
.tb-info{font-size:11.5px;color:var(--txt3);text-align:center}

/* ========= 一句话概括卡 ========= */
.brief-card{
  border-radius:var(--r);padding:17px 18px;margin-bottom:14px;
  background:linear-gradient(150deg,rgba(212,175,55,.14),rgba(255,255,255,.03));
  border:1px solid rgba(212,175,55,.35);
  box-shadow:0 6px 26px rgba(212,175,55,.09);
  animation:up .4s ease both;
}
.brief-hd{display:flex;align-items:center;gap:9px;margin-bottom:10px}
.brief-label{font-size:11.5px;color:var(--gold);letter-spacing:1.5px;border:1px solid var(--card-br);border-radius:5px;padding:2px 8px;background:rgba(212,175,55,.1)}
.brief-grade{margin-left:auto;font-size:12px;padding:2.5px 11px;border-radius:999px;font-weight:600}
.g-up{background:rgba(229,72,77,.16);color:#ff8085}
.g-mid{background:rgba(212,175,55,.16);color:var(--gold-l)}
.brief-text{margin:0;font-size:16px;line-height:1.85;color:#fff;letter-spacing:.3px}
.brief-hook{margin-top:13px;padding:11px 13px;border-radius:9px;background:rgba(0,0,0,.28);border-left:2px solid var(--gold);font-size:12.5px;color:var(--txt2);line-height:1.7}
.brief-ok{margin-top:13px;padding:9px 13px;border-radius:9px;background:rgba(63,185,80,.12);border-left:2px solid var(--ok,#3fb950);font-size:12.5px;color:#7ee787}

/* ========= 术数分级标记 ========= */
.method-list .m-item.invite{border-color:rgba(212,175,55,.24);background:linear-gradient(120deg,rgba(212,175,55,.05),rgba(255,255,255,.03))}
.mk{font-size:10.5px;padding:2px 7px;border-radius:5px;font-weight:500;margin-left:6px;vertical-align:middle}
.mk.free{background:rgba(63,185,80,.16);color:#7ee787}
.mk.inv{background:rgba(212,175,55,.2);color:var(--gold-l)}
.mk.ok{background:rgba(88,166,255,.16);color:#79c0ff}
.lock-tip{margin:2px 16px 14px;padding:11px 14px;border-radius:10px;font-size:12.5px;line-height:1.7;color:var(--txt2);background:rgba(212,175,55,.07);border:1px solid var(--card-br)}
.lock-tip b{color:var(--gold-l)}
.lock-tip .ok-mark{color:#7ee787;font-weight:600}

/* ========= 详细解读预览（未解锁） ========= */
.preview-card{padding:16px 18px;background:rgba(255,255,255,.035);border-color:rgba(255,255,255,.08)}
.preview-hd{font-size:13.5px;color:var(--txt2);margin-bottom:13px}
.preview-dims{display:flex;flex-direction:column;gap:2px}
.pd-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.05)}
.pd-row:last-child{border-bottom:none}
.pd-ico{width:32px;height:32px;flex:0 0 32px;border-radius:9px;display:grid;place-items:center;font-size:15px;background:rgba(255,255,255,.055)}
.pd-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.pd-txt b{font-size:14px;color:var(--txt);font-weight:600}
.pd-txt span{font-size:11.5px;color:var(--txt3);line-height:1.5}
.pd-lk{font-size:13px;opacity:.6}
.unlock-list-ul{text-align:left;margin:0 0 17px;padding:0 0 0 4px;list-style:none;font-size:13px;color:var(--txt2);line-height:2}
.unlock-list-ul li::before{content:'✦';color:var(--gold);margin-right:8px;font-size:11px}

/* ========= 分区标题 ========= */
.sec-title{display:flex;align-items:baseline;gap:10px;margin:22px 2px 13px}
.sec-title span{font-size:17px;font-weight:600;color:var(--gold-l)}
.sec-title i{font-style:normal;font-size:11.5px;color:var(--txt3)}

/* ========= 详细解读卡 ========= */
.dim-card{padding:17px 18px;margin-bottom:13px;position:relative;overflow:hidden;animation:up .45s ease both}
.dim-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px}
.dim-card.tone-good::before{background:linear-gradient(180deg,#e5484d,#ff8085)}
.dim-card.tone-mid::before{background:linear-gradient(180deg,#c79a1e,#f0d97a)}
.dim-card.tone-bad::before{background:linear-gradient(180deg,#3fb950,#7ee787)}
.dim-card-hd{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.dc-ico{width:38px;height:38px;flex:0 0 38px;border-radius:11px;display:grid;place-items:center;font-size:18px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.07)}
.dc-tt{flex:1;min-width:0}
.dc-name{font-size:15.5px;font-weight:600;color:var(--txt)}
.dc-head{font-size:11.5px;color:var(--gold);margin-top:2px}
.dc-score{text-align:right;flex:0 0 auto}
.dc-sv{font-size:20px;font-weight:700;color:var(--gold-l);font-variant-numeric:tabular-nums;line-height:1.15}
.dc-sl{font-size:10px;color:var(--txt3)}
.dc-text{margin:0 0 12px;font-size:14px;line-height:1.9;color:#e8ebf2}
.dc-bar{height:5px;border-radius:3px;background:rgba(255,255,255,.08);overflow:hidden}
.dc-bar i{display:block;height:100%;border-radius:3px;transition:width .9s ease}

/* ========= 10 年财运曲线 ========= */
.curve-card{padding:18px 16px}
.curve-hd{margin-bottom:14px}
.curve-title{font-size:16px;font-weight:600;color:var(--gold-l)}
.curve-sub{font-size:11.5px;color:var(--txt3);margin-top:3px}
.curve-svg-wrap{background:rgba(0,0,0,.22);border-radius:11px;padding:8px 4px 2px;margin-bottom:14px}
.curve-svg{width:100%;height:150px;display:block}
.curve-stats{display:flex;gap:9px;margin-bottom:13px}
.cs{flex:1;background:rgba(0,0,0,.22);border-radius:9px;padding:9px 8px;text-align:center}
.cs-l{display:block;font-size:10.5px;color:var(--txt3);margin-bottom:3px}
.cs-v{display:block;font-size:12.5px;font-weight:600;color:var(--txt)}
.cs-v.up{color:#ff8085}
.cs-v.down{color:#7ee787}
.curve-summary{margin:0 0 11px;font-size:13px;line-height:1.85;color:var(--txt2)}
.curve-advice{padding:11px 13px;border-radius:9px;background:rgba(212,175,55,.07);border:1px solid var(--card-br);font-size:12.5px;line-height:1.75;color:var(--txt2);margin-bottom:14px}
.curve-years{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin-bottom:15px}
.cy{background:rgba(0,0,0,.22);border-radius:8px;padding:8px 4px;text-align:center}
.cy-y{font-size:10px;color:var(--txt3);font-variant-numeric:tabular-nums}
.cy-v{font-size:15px;font-weight:700;font-variant-numeric:tabular-nums;margin:2px 0}
.cy-l{font-size:9.5px;color:var(--txt3)}
.curve-notes{display:flex;flex-direction:column;gap:8px;border-top:1px dashed rgba(255,255,255,.1);padding-top:13px}
.cn{font-size:12.5px;line-height:1.7;color:var(--txt2)}
.cn b{color:var(--gold);margin-right:7px;font-weight:600}

/* ========= 夫妻合盘 ========= */
.hepan-entry{padding:17px 18px;background:linear-gradient(150deg,rgba(255,120,180,.09),rgba(255,255,255,.02));border-color:rgba(255,140,190,.28)}
.he-hd{display:flex;align-items:center;gap:13px;margin-bottom:15px}
.he-ico{width:42px;height:42px;flex:0 0 42px;border-radius:12px;display:grid;place-items:center;font-size:20px;background:rgba(255,140,190,.14)}
.he-name{font-size:16px;font-weight:600}
.he-sub{font-size:12px;color:var(--txt3);margin-top:2px}
.hepan-card{padding:18px;background:linear-gradient(155deg,rgba(255,120,180,.1),rgba(255,255,255,.025));border-color:rgba(255,140,190,.3)}
.hepan-hd{display:flex;align-items:center;gap:10px;margin-bottom:9px}
.hp-tt{font-size:17px;font-weight:600;color:#ff9ec7}
.hp-lv{margin-left:auto;font-size:11.5px;padding:3px 11px;border-radius:999px;background:rgba(255,140,190,.18);color:#ffb3d4;font-weight:600}
.hp-sub{font-size:12.5px;color:var(--txt2);margin-bottom:14px;line-height:1.65}
.hp-score-row{display:flex;align-items:center;gap:16px;padding:13px 0;border-top:1px solid rgba(255,255,255,.07);border-bottom:1px solid rgba(255,255,255,.07);margin-bottom:13px}
.hp-score{text-align:center;flex:0 0 auto;padding-right:16px;border-right:1px solid rgba(255,255,255,.07)}
.hp-score span{display:block;font-size:27px;font-weight:700;color:#ff9ec7;font-variant-numeric:tabular-nums;line-height:1.1}
.hp-score i{font-style:normal;font-size:10.5px;color:var(--txt3)}
.hp-rel{flex:1;font-size:11.5px;color:var(--txt3);line-height:1.7}
.hp-rel b{color:var(--txt);font-size:13px}
.hp-summary{margin:0 0 14px;font-size:13.5px;line-height:1.85;color:#e8ebf2}
.hp-aspects{display:flex;flex-direction:column;gap:1px;margin-bottom:14px}
.hp-a{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.05)}
.hp-a:last-child{border-bottom:none}
.hp-ak{flex:0 0 60px;font-size:12.5px;color:#ff9ec7;font-weight:500}
.hp-av{flex:1;font-size:12.5px;line-height:1.75;color:var(--txt2)}
.hp-advice{padding:11px 13px;border-radius:9px;background:rgba(255,140,190,.09);font-size:12.5px;line-height:1.75;color:var(--txt2);margin-bottom:14px}
.modal .unlock-list{display:block;text-align:left;margin-top:11px;font-size:12.5px;color:var(--txt2);line-height:2}


/* ========= 商品橱窗 ========= */
.shop-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px;padding:6px 16px 24px}
.p-card{border-radius:12px;overflow:hidden;background:var(--card);border:1px solid rgba(255,255,255,.07);display:flex;flex-direction:column;transition:.24s;cursor:pointer}
.p-card:active{transform:scale(.98);border-color:var(--card-br)}
.p-img{width:100%;aspect-ratio:1/1;background:linear-gradient(150deg,#1c2333,#12161f);display:grid;place-items:center;font-size:34px;position:relative;overflow:hidden}
.p-img img{width:100%;height:100%;object-fit:cover}
.p-tag{position:absolute;top:7px;left:7px;font-size:10px;background:linear-gradient(135deg,#e9c95c,#c79a1e);color:#1a1405;border-radius:6px;padding:2px 7px;font-weight:600}
.p-body{padding:9px 10px 11px;flex:1;display:flex;flex-direction:column}
.p-title{font-size:13px;line-height:1.45;color:var(--txt);margin-bottom:7px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:38px}
.p-price{display:flex;align-items:baseline;gap:6px;margin-top:auto}
.p-price .now{color:var(--up);font-size:17px;font-weight:700;font-variant-numeric:tabular-nums}
.p-price .now small{font-size:11px;font-weight:400}
.p-price .old{color:var(--txt3);font-size:11px;text-decoration:line-through}
.loading{grid-column:1/-1;text-align:center;color:var(--txt3);font-size:13px;padding:36px 0}
.empty{grid-column:1/-1;text-align:center;color:var(--txt3);font-size:13px;padding:46px 20px;line-height:1.8}

/* ========= 底部 tab ========= */
.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;max-width:520px;margin:0 auto;background:rgba(13,16,23,.94);backdrop-filter:blur(16px);border-top:1px solid rgba(255,255,255,.07)}
.tabbar button{flex:1;background:none;border:none;padding:9px 0 11px;color:var(--txt3);font-family:inherit;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:1px;transition:.2s}
.tabbar button span{font-size:18px;line-height:1.15}
.tabbar button i{font-size:10.5px;font-style:normal}
.tabbar button.on{color:var(--gold)}

/* ========= 弹窗 ========= */
.modal-mask{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.72);backdrop-filter:blur(4px);display:none;place-items:center;padding:24px}
.modal-mask.show{display:grid;animation:fade .2s}
.modal{width:100%;max-width:340px;border-radius:20px;padding:26px 22px 20px;background:linear-gradient(160deg,#1a2133,#10141d);border:1px solid var(--card-br);text-align:center;position:relative;animation:pop .3s cubic-bezier(.2,1.2,.4,1)}
@keyframes pop{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:none}}
.modal-x{position:absolute;top:12px;right:14px;background:none;border:none;color:var(--txt3);font-size:17px;cursor:pointer;padding:4px}
.lock-ico{font-size:34px;margin-bottom:8px}
.modal h3{margin:0 0 9px;font-size:17px;color:var(--gold-l)}
.modal-sub{margin:0 0 18px;font-size:13.5px;color:var(--txt2);line-height:1.75}
.modal-sub b{color:var(--gold-l)}
.progress-box{margin-bottom:19px}
.progress-txt{font-size:13.5px;color:var(--txt);margin-bottom:9px;font-weight:500}
.progress-bar{height:8px;border-radius:4px;background:rgba(255,255,255,.09);overflow:hidden}
.progress-bar i{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,#e9c95c,#c79a1e);transition:width .45s ease}
.modal .btn{padding:12px;font-size:15px}

/* toast */
.toast{position:fixed;left:50%;bottom:92px;transform:translate(-50%,20px);z-index:200;background:rgba(28,34,48,.96);border:1px solid var(--card-br);color:var(--txt);padding:11px 20px;border-radius:999px;font-size:13.5px;opacity:0;pointer-events:none;transition:.3s;white-space:nowrap;max-width:88vw;overflow:hidden;text-overflow:ellipsis}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* ========= 白话解读正文（结论 → 原因 → 建议） ========= */
.dc-body{margin-top:12px}
.dc-block{margin-bottom:13px;padding-left:11px;border-left:2px solid rgba(212,175,55,.35)}
.dc-block:last-child{margin-bottom:0}
.dc-bt{font-size:13.5px;font-weight:700;color:var(--gold-l);margin-bottom:5px;letter-spacing:.3px}
.dc-bp{margin:0 0 5px;font-size:14px;line-height:1.9;color:var(--txt2)}
.dc-bp:last-child{margin-bottom:0}
.dc-tips{border-left-color:rgba(63,185,80,.5)}
.dc-tul{margin:0;padding-left:17px}
.dc-tul li{font-size:13.5px;line-height:1.85;color:var(--txt);margin-bottom:4px}
.dc-tul li:last-child{margin-bottom:0}
.dc-liunian{margin-top:13px;padding:11px 13px;border-radius:10px;
  background:rgba(212,175,55,.075);border:1px solid rgba(212,175,55,.24)}
.dc-lb{display:inline-block;font-size:11.5px;font-weight:700;color:var(--gold-l);
  background:rgba(212,175,55,.16);border-radius:6px;padding:2px 8px;margin-bottom:6px}
.dc-liunian p{margin:0;font-size:13.5px;line-height:1.85;color:var(--txt2)}

/* ========= 流年太岁卡（民俗温和版） ========= */
.taisui-card{border-left:3px solid var(--gold);background:linear-gradient(180deg,rgba(212,175,55,.055),var(--card))}
.ts-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.ts-title{font-size:16px;font-weight:700;color:var(--gold-l);letter-spacing:1px}
.ts-year{font-size:12px;color:var(--txt3)}
.ts-state{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.ts-badge{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:12px;font-size:12.5px;font-weight:700;letter-spacing:.5px}
.ts-state.warn .ts-badge{background:rgba(212,175,55,.16);color:var(--gold-l);border:1px solid rgba(212,175,55,.4)}
.ts-state.ok .ts-badge{background:rgba(63,185,80,.14);color:#6fd57c;border:1px solid rgba(63,185,80,.32)}
.ts-zodiac{font-size:12.5px;color:var(--txt2)}
/* 多重犯：值太岁 + 刑太岁 之类，逐项拆成小标签 */
.ts-chips{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:2px 0 10px}
.ts-chip{display:inline-flex;align-items:center;height:22px;padding:0 9px;border-radius:11px;font-size:11.5px;font-weight:600;background:rgba(212,175,55,.1);color:var(--gold-l);border:1px solid rgba(212,175,55,.28)}
.ts-plus{font-size:12px;color:var(--txt2);opacity:.7}
.ts-lead{margin:0;font-size:14.5px;line-height:1.85;color:var(--txt)}
.ts-block{margin-top:12px;padding-top:12px;border-top:1px dashed rgba(255,255,255,.09)}
.ts-label{font-size:13px;font-weight:700;color:var(--gold-l);margin-bottom:7px;letter-spacing:.5px}
.ts-list{margin:0;padding-left:18px}
.ts-list li{font-size:14px;line-height:1.85;color:var(--txt2);margin-bottom:3px}
.ts-list.ts-adv li{color:var(--txt)}
.ts-fu{margin-top:12px;padding:10px 12px;border-radius:10px;background:rgba(212,175,55,.08);border:1px solid rgba(212,175,55,.24);font-size:13.5px;line-height:1.8;color:var(--txt2)}
.ts-link{color:var(--gold-l);font-weight:700;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.ts-next{margin-top:10px;font-size:12.5px;line-height:1.7;color:var(--txt3)}
.ts-lock{margin-top:12px;padding:14px 12px;border-radius:10px;background:rgba(255,255,255,.035);border:1px dashed rgba(212,175,55,.3);text-align:center}
.ts-lock p{margin:0 0 10px;font-size:13.5px;color:var(--txt2)}
.btn.btn-sm{display:inline-block;width:auto;padding:8px 18px;font-size:14px;border-radius:999px}

/* ==========================================================
 *  模块改造新增样式
 *  A 入口卡（结果页） · B 模块页骨架 · C 状态块
 *  沿用现有 CSS 变量，不新增主题色
 * ========================================================== */

/* ---------- A. 结果页模块入口卡 ---------- */
.entry-card{border-color:rgba(212,175,55,.18);background:linear-gradient(180deg,rgba(212,175,55,.05),var(--card))}
.ec-hd{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:12px}
.ec-hd span{font-size:15px;font-weight:600;color:var(--txt)}
.ec-hd i{font-size:11.5px;color:var(--gold);font-style:normal;opacity:.85}
.ec-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ec-item{
  display:flex;flex-direction:column;align-items:flex-start;gap:2px;
  padding:12px 12px 11px;border-radius:12px;cursor:pointer;text-align:left;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);
  color:var(--txt);font-family:inherit;transition:.2s;
}
.ec-item:active{transform:scale(.97);background:rgba(212,175,55,.1)}
.ec-ico{font-size:20px;line-height:1}
.ec-nm{font-size:14px;font-weight:600;margin-top:2px}
.ec-ds{font-size:11.5px;color:var(--txt3);line-height:1.5}
.ec-go{
  margin-top:7px;font-size:11px;color:var(--gold-l);opacity:.9;
  letter-spacing:.2px;
}
.ec-item:active .ec-go{opacity:1}

/* 未解锁清单里的免锁提示 */
.pd-free{
  margin-top:8px;padding:7px 10px;border-radius:9px;
  background:rgba(63,185,80,.1);border:1px solid rgba(63,185,80,.22);
  font-size:11.5px;color:#7ee787;line-height:1.5;
}

/* ---------- B. 模块页骨架 ---------- */
.mod-body{padding:0 16px 28px}
.mod-profile{
  display:flex;align-items:center;gap:12px;padding:12px 14px;margin-bottom:14px;
  border-radius:var(--r);background:var(--card);border:1px solid rgba(255,255,255,.07);
}
.mp-av{
  width:38px;height:38px;flex:0 0 38px;border-radius:50%;display:grid;place-items:center;
  font-size:16px;font-weight:600;color:#1a1405;
  background:linear-gradient(135deg,#e9c95c,#c79a1e);
}
.mp-info{flex:1;min-width:0}
.mp-nm{font-size:14.5px;font-weight:600}
.mp-g{font-size:11px;color:var(--txt3);margin-left:6px}
.mp-b{font-size:11.5px;color:var(--txt3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mp-h{font-size:11px;border-radius:999px;padding:3px 9px;white-space:nowrap}
.mp-h.ok{color:var(--gold-l);background:rgba(212,175,55,.12);border:1px solid rgba(212,175,55,.28)}
.mp-h.warn{color:#e0a04a;background:rgba(224,160,74,.1);border:1px dashed rgba(224,160,74,.4)}

.mod-summary{border-left:3px solid var(--gold)}
.msm-label{font-size:11.5px;color:var(--gold);letter-spacing:1px;margin-bottom:6px}
.msm-text{font-size:14.5px;line-height:1.8;margin:0}
.mod-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.mod-badge{font-size:10.5px;border-radius:999px;padding:2px 8px;border:1px solid rgba(255,255,255,.12);color:var(--txt3)}
.mod-badge.b-llm{color:var(--gold-l);border-color:rgba(212,175,55,.3);background:rgba(212,175,55,.08)}
.mod-badge.b-rule{color:var(--txt2)}
.mod-badge.b-dim{opacity:.6}

/* 高亮卡：命理客观特征 */
.mod-hl{border-color:rgba(212,175,55,.14)}
.mhl-hd{font-size:12.5px;color:var(--gold);margin-bottom:10px;letter-spacing:.5px}
.mhl-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.mhl-i{display:flex;flex-direction:column;gap:2px;padding:9px 10px;border-radius:10px;background:rgba(255,255,255,.035)}
.mhl-i .k{font-size:11px;color:var(--txt3)}
.mhl-i .v{font-size:14px;font-weight:600}
.mhl-i .v-dim{font-style:normal;color:var(--txt3);font-weight:400}
.lv-hi{color:var(--gold-l)}
.lv-mid{color:var(--txt)}
.lv-lo{color:#8fb7e8}

.mhl-bars{margin-top:4px}
.mb-row{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.mb-k{font-size:12.5px;width:44px;flex:0 0 44px;color:var(--txt2)}
.mb-bar{flex:1;height:6px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden}
.mb-bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#c79a1e,#f0d97a)}
.mb-v{font-size:11.5px;color:var(--txt3);width:30px;text-align:right}
.mb-plain{font-size:11px;color:var(--txt3);margin:0 0 10px 52px;line-height:1.5}

.mhl-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.mhl-tag{font-size:11px;padding:3px 9px;border-radius:999px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);color:var(--txt2)}
.mhl-tag.t-ok{color:var(--gold-l);border-color:rgba(212,175,55,.28);background:rgba(212,175,55,.08)}
.mhl-tag.t-warn{color:#e0a04a;border-color:rgba(224,160,74,.3);background:rgba(224,160,74,.08)}
.mhl-sub{font-size:12px;color:var(--txt2);margin-top:10px}
.mhl-timing{margin-top:10px;border-top:1px dashed rgba(255,255,255,.1);padding-top:8px}
.mt-row{display:flex;align-items:center;gap:8px;font-size:12.5px;padding:3px 0}
.mt-row b{color:var(--gold-l);width:44px}
.mt-row span{color:var(--txt2)}
.mt-row em{font-style:normal;color:var(--txt3);font-size:11.5px}
.mhl-note{margin:10px 0 0;font-size:11.5px;color:var(--txt3);line-height:1.6}

/* 章节卡 */
.mod-sec{border-left:2px solid rgba(212,175,55,.28)}
.sec-hd{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.sec-ico{font-size:17px}
.sec-hd h3{font-size:15px;margin:0;font-weight:600;flex:1}
.sec-src{font-size:10px;padding:2px 7px;border-radius:999px;color:var(--txt3);border:1px solid rgba(255,255,255,.1)}
.sec-src.src-llm{color:var(--gold-l);border-color:rgba(212,175,55,.3);background:rgba(212,175,55,.08)}
.sec-src.src-blocked{color:#e0a04a;border-color:rgba(224,160,74,.35)}
.sec-hint{font-size:11.5px;color:var(--txt3);margin:0 0 10px}
.sec-body p{margin:0 0 9px;font-size:14px;line-height:1.85;color:var(--txt)}
.sec-body p:last-child{margin-bottom:0}

/* 待补充规则 */
.mod-pending{border-style:dashed;border-color:rgba(255,255,255,.12)}
.mp-hd{font-size:12.5px;color:var(--txt2);margin-bottom:8px}
.mod-pending ul{margin:0;padding-left:18px}
.mod-pending li{font-size:11.5px;color:var(--txt3);line-height:1.7}

/* 免责声明 */
.mod-disc{border-color:rgba(212,175,55,.2);background:linear-gradient(180deg,rgba(212,175,55,.05),var(--card))}
.md-hd{font-size:12.5px;color:var(--gold);margin-bottom:8px}
.md-t{font-size:12.5px;line-height:1.8;color:var(--txt2);margin:0 0 10px;white-space:pre-line}
.md-list{margin:0;padding-left:18px}
.md-list li{font-size:11.5px;color:var(--txt3);line-height:1.75}

.mod-actions{margin-top:6px}

/* ---------- C. 状态块：加载 / 失败 / 空 / 解锁 ---------- */
.mod-state{text-align:center;padding:44px 24px;margin-top:20px;border-radius:var(--r);background:var(--card);border:1px solid rgba(255,255,255,.07)}
.ms-ico{font-size:34px;margin-bottom:12px}
.ms-t{font-size:15px;font-weight:600;margin:0 0 8px}
.ms-d{font-size:12.5px;color:var(--txt3);line-height:1.75;margin:0 0 18px}
.ms-btns{max-width:260px;margin:0 auto}
.mod-spin{
  width:34px;height:34px;margin:0 auto 16px;border-radius:50%;
  border:2px solid rgba(212,175,55,.2);border-top-color:var(--gold);
  animation:mspin .8s linear infinite;
}
@keyframes mspin{to{transform:rotate(360deg)}}
.mod-state.lock{border-color:rgba(212,175,55,.3);background:linear-gradient(180deg,rgba(212,175,55,.07),var(--card))}

/* ==========================================================
 *  添加师傅弹窗 + 取名工具
 * ========================================================== */

/* ---------- 添加师傅弹窗 ---------- */
.mm-ico{font-size:34px;margin-bottom:6px}
.mm-lead{font-size:14px;color:var(--gold-l);font-weight:600;margin-bottom:14px;text-align:center}
.mm-qr{width:190px;height:190px;margin:0 auto;border-radius:14px;background:#fff;display:grid;place-items:center;overflow:hidden}
.mm-qr img{width:100%;height:100%;object-fit:contain}
.mm-qr .mm-ph{color:#9aa;font-size:12.5px;line-height:1.6;text-align:center;padding:16px}
.mm-name{margin-top:12px;font-size:14px;color:var(--gold-l);font-weight:600}
.mm-rec{
  margin:9px 4px 0;padding:9px 12px;border-radius:10px;
  background:rgba(212,175,55,.09);border:1px solid rgba(212,175,55,.2);
  font-size:12.5px;color:var(--txt2);line-height:1.75;text-align:left;
}
.mm-rec.hide{display:none}

/* 师傅联系方式（微信 / QQ，点击复制） */
.mm-contact{
  width:100%;margin-top:10px;display:flex;flex-direction:column;gap:6px;
}
.mm-contact.hide{display:none}
.mm-crow{
  display:flex;align-items:center;gap:8px;padding:8px 11px;border-radius:9px;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);
  cursor:pointer;transition:.18s;
}
.mm-crow:active{background:rgba(212,175,55,.14)}
.mm-ck{
  flex:0 0 auto;font-size:11px;color:var(--gold-l);background:rgba(212,175,55,.14);
  border-radius:5px;padding:2px 6px;
}
.mm-cv{flex:1;font-size:13.5px;color:var(--txt);word-break:break-all;text-align:left}
.mm-cb{flex:0 0 auto;font-size:11.5px;color:var(--txt3)}
.mm-tip{font-size:12px;color:var(--txt3);line-height:1.8;margin:8px 0 4px}

/* 商品详情：多图切换 + 联系方式 */
.pd-gal{
  position:relative;width:100%;aspect-ratio:1.4/1;border-radius:12px;overflow:hidden;
  background:linear-gradient(150deg,#1c2333,#12161f);display:grid;place-items:center;
  margin-bottom:14px;
}
.pd-gal.multi{cursor:pointer}
.pd-gimg{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:0;transition:opacity .28s;
}
.pd-gimg.on{opacity:1}
.pd-gph{font-size:46px}
.pd-dots{
  position:absolute;left:0;right:0;bottom:8px;display:flex;justify-content:center;gap:5px;
}
.pd-dots i{
  width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.35);transition:.2s;
}
.pd-dots i.on{background:var(--gold-l);width:14px;border-radius:3px}
.pd-contact{
  background:rgba(212,175,55,.07);border:1px solid var(--card-br);border-radius:10px;
  padding:11px 13px;margin-bottom:15px;
}
.pd-ct-hd{font-size:12.5px;color:var(--txt2);margin-bottom:8px}
.pd-ct-row{
  display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:8px;
  background:rgba(255,255,255,.05);margin-bottom:6px;cursor:pointer;
}
.pd-ct-row:last-child{margin-bottom:0}
.pd-ct-row.none{color:var(--txt3);font-size:12px;cursor:default;background:transparent;padding:2px 0}
.pd-ct-row .k{
  flex:0 0 auto;font-size:11px;color:var(--gold-l);background:rgba(212,175,55,.14);
  border-radius:5px;padding:2px 6px;
}
.pd-ct-row .v{flex:1;font-size:13.5px;color:var(--txt);word-break:break-all}
.pd-ct-row .b{flex:0 0 auto;font-size:11.5px;color:var(--txt3)}

/* ---------- 取名：表单 ---------- */
.mod-form{border-color:rgba(212,175,55,.16)}
.mf-hd{font-size:13px;color:var(--gold);margin-bottom:12px;letter-spacing:.5px}
.mf-note{margin:12px 0 0;font-size:11.5px;color:var(--txt3);line-height:1.7;text-align:center}
.seg-wrap{flex-wrap:wrap;gap:6px}
.seg-wrap button{flex:0 0 auto;min-width:56px}

/* ---------- 取名：候选名字 ---------- */
.nm-item{padding:13px 0;border-bottom:1px dashed rgba(255,255,255,.1)}
.nm-item:last-child{border-bottom:none;padding-bottom:0}
.nm-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.nm-name{font-size:22px;font-weight:700;letter-spacing:2px;color:var(--txt)}
.nm-score{font-size:16px;font-weight:700;color:var(--gold-l);white-space:nowrap}
.nm-score i{font-size:10.5px;font-style:normal;font-weight:400;color:var(--txt3);margin-left:2px}
.nm-py{font-size:11.5px;color:var(--txt3);margin-top:2px}
.nm-dims{display:flex;flex-wrap:wrap;gap:8px;margin-top:9px}
.nm-dim{display:flex;align-items:center;gap:5px;font-size:10.5px;color:var(--txt3)}
.nm-dim b{font-weight:500}
.nm-dbar{display:inline-block;width:38px;height:5px;border-radius:999px;background:rgba(255,255,255,.09);overflow:hidden}
.nm-dbar i{display:block;height:100%;background:linear-gradient(90deg,#c79a1e,#f0d97a)}
.nm-dim em{font-style:normal;color:var(--txt2)}
.nm-hl{font-size:12.5px;line-height:1.75;color:var(--txt2);margin:10px 0 0}
.nm-chars{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:9px}
.nm-c{padding:8px 10px;border-radius:10px;background:rgba(255,255,255,.035)}
.nm-c b{font-size:15px;color:var(--gold-l)}
.nm-c span{display:block;font-size:10.5px;color:var(--txt3);margin-top:1px}
.nm-c em{display:block;font-style:normal;font-size:11px;color:var(--txt2);line-height:1.6;margin-top:4px}
.nm-caution{margin-top:9px;font-size:11px;color:var(--txt3);line-height:1.7;background:rgba(224,160,74,.07);border-radius:8px;padding:7px 9px}

/* ICP 备案页脚 */
.icp-footer{padding:22px 0 30px;text-align:center;font-size:12px}
.icp-footer a{color:#8a93a6;text-decoration:none}

/* 微信转发引导浮层 */
.share-guide{position:fixed;inset:0;z-index:130;background:rgba(13,17,23,.82);display:flex;align-items:center;justify-content:center}
.share-guide.hide{display:none}
.share-guide .sg-arrow{position:absolute;top:18px;right:16px;color:#D4AF37;font-size:17px;font-weight:700;animation:sg-pulse 1.2s infinite}
@keyframes sg-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(1.08)}}
.share-guide .sg-card{background:#161B22;border:1px solid #D4AF37;border-radius:14px;padding:20px 22px;text-align:center;max-width:300px;margin-top:60px}
.share-guide .sg-t{font-size:15px;font-weight:700;color:#fff;margin-bottom:10px}
.share-guide p{font-size:14px;color:#c9d1d9;line-height:1.9;margin:0}
.share-guide b{color:#D4AF37}
.share-guide .sg-dots{display:inline-block;border:1px solid #D4AF37;border-radius:4px;padding:0 6px;letter-spacing:1px}
.share-guide .sg-sub{font-size:12px;color:#8a93a6;margin-top:8px}
.share-guide .btn{margin-top:14px;width:100%}
