:root{
  --bg:#FBF6F0; --card:#fff; --ink:#26211C; --sub:#9A9088; --line:#EFE7DC;
  --primary:#E4684A; --primary-ink:#C4472A; --primary-soft:#FCECE6;
  --sage:#6E8F80; --sage-soft:#EAF1EC; --gold:#D9A441; --gold-soft:#FBF1DC;
  --violet:#8B7BD8; --violet-soft:#EFEBFB;
  --shadow:0 10px 28px rgba(38,33,28,.07); --shadow-sm:0 4px 14px rgba(38,33,28,.06);
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html,body{height:100%}
body{background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased}
.app{max-width:480px;margin:0 auto;min-height:100vh;background:var(--bg);position:relative;padding:0 18px 40px}
.page{animation:fade .2s ease}
@keyframes fade{from{opacity:.6}to{opacity:1}}

.nav{display:flex;align-items:center;height:48px;position:relative;font-weight:800;font-size:16px;justify-content:center}
.nav .back{position:absolute;left:0;font-size:22px;color:#6E655D;cursor:pointer;width:40px}
.nav .right{position:absolute;right:0;font-size:18px;color:#6E655D;cursor:pointer}

.hero{background:linear-gradient(160deg,#FDEDE5 0%,#F7EFE4 60%,#EAF1EC 100%);border-radius:22px;padding:18px;position:relative;overflow:hidden;margin-top:4px}
.hero h2{font-size:21px;font-weight:800;line-height:1.3;white-space:pre-line}
.hero .sub{font-size:12.5px;color:#8A7F74;margin-top:7px}
.hero .emoji{position:absolute;right:14px;bottom:10px;font-size:46px}
.tries{display:flex;align-items:center;justify-content:space-between;background:var(--sage-soft);border-radius:16px;padding:11px 15px;margin-top:12px}
.tries b{color:#3E5B50;font-size:14.5px}
.tries .hint{font-size:11px;color:#7E8F86;margin-top:2px}
.practice{display:flex;align-items:center;gap:12px;background:#fff;border-radius:18px;padding:12px 14px;margin-top:10px;box-shadow:var(--shadow-sm);border:1px solid #F1E9DE}
.practice .pi{width:40px;height:40px;border-radius:12px;background:var(--sage-soft);display:flex;align-items:center;justify-content:center;font-size:20px;flex:0 0 40px}
.practice .pt{flex:1}
.practice .ptt{font-size:14px;font-weight:800;display:flex;align-items:center;gap:6px}
.practice .pts{font-size:11px;color:var(--sub);margin-top:2px}
.badge{font-size:10px;font-weight:700;color:var(--sage);background:var(--sage-soft);border-radius:999px;padding:2px 7px}
.adbox{margin:12px 0 2px;border-radius:16px;height:62px;display:flex;align-items:center;justify-content:center;color:#9C928A;font-size:12px;border:1px dashed #DCD2C6;background:linear-gradient(120deg,#EFE7DC,#E7EEE9)}

.sec-head{display:flex;align-items:baseline;justify-content:space-between;margin:16px 2px 10px}
.sec-head h3{font-size:16px;font-weight:800}
.sec-head span{font-size:11.5px;color:#A69C92}
.card{background:var(--card);border-radius:18px;box-shadow:var(--shadow-sm);padding:14px;display:flex;gap:13px;margin-bottom:10px;cursor:pointer}
.cover{width:54px;height:54px;border-radius:15px;display:flex;align-items:center;justify-content:center;font-size:26px;flex:0 0 54px}
.main{flex:1;min-width:0}
.top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.pill{display:inline-flex;border-radius:999px;font-size:11px;font-weight:700;padding:3px 9px}
.meta{font-size:11px;color:var(--sub)}
.title{font-size:15px;font-weight:800;margin-top:7px}
.tsub{font-size:11.5px;color:var(--sub);margin-top:3px;line-height:1.5}
.foot{display:flex;align-items:center;justify-content:space-between;margin-top:9px}
.people{font-size:11px;color:#B0A69C}
.go{font-size:12px;font-weight:800;color:var(--primary)}

.btn{display:flex;align-items:center;justify-content:center;border-radius:999px;font-weight:800;font-size:14px;padding:12px 20px;border:none;font-family:inherit;cursor:pointer;width:100%}
.btn-primary{background:var(--primary);color:#fff;box-shadow:0 8px 18px rgba(228,104,74,.28)}
.btn-ghost{background:#fff;color:var(--ink);border:1px solid var(--line)}
.btn-sage{background:var(--sage);color:#fff}
.btn-sm{padding:9px 14px;font-size:12px;width:auto}

/* 介绍页 */
.itag{display:inline-flex;background:var(--primary-soft);color:var(--primary-ink);font-size:11px;font-weight:700;border-radius:999px;padding:4px 11px;margin-top:10px}
.ititle{font-size:26px;font-weight:800;line-height:1.32;margin-top:14px}
.isub{font-size:13.5px;color:var(--sub);margin-top:10px;line-height:1.7}
.imeta{display:flex;background:#fff;border-radius:18px;padding:16px 0;margin-top:20px;box-shadow:var(--shadow-sm)}
.imeta div{flex:1;text-align:center}
.imeta b{font-size:19px;font-weight:800;display:block}
.imeta span{font-size:11px;color:var(--sub)}
.gender{display:flex;gap:12px;margin-top:16px}
.gcard{flex:1;background:#fff;border-radius:18px;padding:13px;border:1.5px solid transparent;box-shadow:var(--shadow-sm);text-align:center;cursor:pointer;position:relative}
.gcard.on{border-color:var(--primary);background:var(--primary-soft)}
.gcard .gt{font-size:15px;font-weight:800}
.gcard .gi{font-size:38px;margin:4px 0 2px}
.gcard .gn{font-size:10.5px;color:var(--sub)}
.gcard .gcheck{position:absolute;top:8px;right:8px;width:19px;height:19px;border-radius:50%;background:var(--primary);color:#fff;font-size:11px;display:flex;align-items:center;justify-content:center}
.icard{background:#fff;border-radius:18px;padding:16px;margin-top:14px;box-shadow:var(--shadow-sm)}
.icard h4{font-size:13.5px;font-weight:800;display:flex;align-items:center;gap:8px}
.icard h4::before{content:"";width:4px;height:14px;border-radius:2px;background:var(--primary)}
.icard.sage h4::before{background:var(--sage)}
.icard p{font-size:12.5px;line-height:1.8;color:#5C544D;margin-top:9px}
.intro-foot{margin-top:22px}

/* 答题 */
.qprogress{display:flex;align-items:center;gap:12px;margin-top:12px}
.qbar{flex:1;height:7px;border-radius:4px;background:#EDE5DB;overflow:hidden}
.qbar i{display:block;height:100%;background:linear-gradient(90deg,#F0A183,#E4684A);border-radius:4px}
.qnum{font-size:12px;font-weight:800;color:var(--primary)}
.qtext{font-size:21px;font-weight:800;line-height:1.45;margin-top:26px}
.opts{margin-top:22px;display:flex;flex-direction:column;gap:12px}
.opt{display:flex;align-items:center;gap:12px;padding:16px;border-radius:16px;background:#fff;box-shadow:var(--shadow-sm);border:1.5px solid transparent;font-size:14.5px;font-weight:600;cursor:pointer}
.opt .mark{width:22px;height:22px;border-radius:50%;border:2px solid #E2D8CC;flex:0 0 22px;display:flex;align-items:center;justify-content:center;font-size:12px;color:#fff}
.opt.on{border-color:var(--primary);background:var(--primary-soft)}
.opt.on .mark{background:var(--primary);border-color:var(--primary)}
.qfoot{margin-top:24px}
.qrow{display:flex;gap:12px}
.qrow .btn{flex:1}
.legal-mini{font-size:10.5px;color:#B6ADA4;text-align:center;margin-top:12px;line-height:1.5}

/* 报告 */
.report-top{background:linear-gradient(160deg,#FDEDE5,#F4EDE3);border-radius:24px;padding:26px 20px;text-align:center;margin-top:6px}
.report-top .tag{font-size:12px;color:#9A8E82;font-weight:700;letter-spacing:2px}
.report-top h2{font-size:30px;font-weight:800;margin-top:10px;letter-spacing:1px}
.report-body{margin-top:16px;background:#fff;border-radius:18px;padding:18px;box-shadow:var(--shadow-sm)}
.report-body h4{font-size:14px;font-weight:800;margin-bottom:10px;display:flex;align-items:center;gap:8px}
.report-body h4::before{content:"";width:4px;height:15px;border-radius:2px;background:var(--primary)}
.report-body p{font-size:13.5px;line-height:1.85;color:#4A423C}
.sugg{margin-top:14px;background:#fff;border-radius:18px;padding:18px;box-shadow:var(--shadow-sm)}
.sugg .item{display:flex;gap:10px;padding:9px 0;font-size:13px;line-height:1.7;color:#4A423C}
.sugg .no{flex:0 0 20px;height:20px;border-radius:50%;background:var(--sage-soft);color:var(--sage);font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;margin-top:2px}
.lock{margin-top:14px;border-radius:18px;background:linear-gradient(150deg,#2E2A27,#3D3833);color:#fff;padding:18px}
.lock h4{font-size:14.5px;font-weight:800}
.lock p{font-size:12px;color:#C9BFB6;margin-top:6px;line-height:1.6}
.lock .btn{margin-top:14px;background:#F0A183}
.legal-box{margin:14px 0 16px;background:#F5F0E9;border-radius:14px;padding:12px 14px;font-size:11px;color:#8F857B;line-height:1.7}
.report-actions{display:flex;gap:12px;margin:16px 0}
.report-actions .btn{flex:1}

/* 兑换码 */
.redeem-wrap{padding-top:40px;text-align:center}
.redeem-ic{font-size:64px}
.redeem-h{font-size:24px;font-weight:800;margin-top:16px}
.redeem-p{font-size:13px;color:var(--sub);margin-top:10px;line-height:1.7}
.redeem-input{width:100%;margin-top:28px;padding:16px;border-radius:14px;border:1.5px solid var(--line);background:#fff;font-size:16px;text-align:center;letter-spacing:2px;font-weight:700;outline:none}
.redeem-input:focus{border-color:var(--primary)}
.redeem-btn{margin-top:16px}

/* 历史 */
.hsum{display:flex;justify-content:space-between;margin:16px 2px 14px;font-size:13px}
.hitem{background:#fff;border-radius:18px;padding:16px;box-shadow:var(--shadow-sm);margin-bottom:12px;cursor:pointer}
.hitem .ht{display:flex;justify-content:space-between}
.hitem .hname{font-size:15px;font-weight:800}
.hitem .hdate{font-size:11px;color:#B6ADA4}
.hitem .hres{display:inline-flex;margin-top:12px;background:var(--primary-soft);color:var(--primary-ink);font-size:12px;font-weight:700;border-radius:999px;padding:5px 12px}
.empty{text-align:center;padding:80px 20px;color:var(--sub)}
.empty .eic{font-size:52px}

/* 免责 */
.doc .em{background:var(--primary-soft);border-radius:12px;padding:14px;font-size:12.5px;line-height:1.8;color:var(--primary-ink);font-weight:600;margin-top:10px}
.doc h2{font-size:18px;font-weight:800;margin:20px 0 8px}
.doc p{font-size:13px;line-height:1.9;color:#4A423C;margin-bottom:8px}

/* toast */
.toast{position:fixed;left:50%;bottom:80px;transform:translateX(-50%) translateY(10px);background:rgba(38,33,28,.88);color:#fff;font-size:13px;padding:10px 18px;border-radius:999px;opacity:0;pointer-events:none;transition:.25s;z-index:99}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

.hist-foot{display:flex;flex-direction:column;gap:10px;margin-top:20px}
.del-link{background:none;border:none;color:#C4472A;font-size:12px;cursor:pointer;font-family:inherit}
