
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;background:#f4f5f7;color:#1f2329;font-size:14px;line-height:1.5}
#app{max-width:430px;margin:0 auto;min-height:100vh;background:#f4f5f7;position:relative;padding-bottom:64px}
a{color:inherit;text-decoration:none}
svg{display:block}

/* 通用卡片 */
.card{background:#fff;border-radius:14px;padding:14px;margin:10px 0;box-shadow:0 2px 10px rgba(20,30,60,.04)}
.card-h{font-weight:700;font-size:15px;margin-bottom:10px}
.sec-h{display:flex;align-items:center;gap:8px;font-weight:700;font-size:14px;margin:16px 4px 4px}
.sec-n{background:#3b5bdb;color:#fff;font-size:11px;width:20px;height:20px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center}

/* 首页 hero / 角色选择 */
.hero{background:linear-gradient(135deg,#3b5bdb,#5c7cfa);padding:54px 24px 30px;text-align:center;color:#fff}
.hero-emoji{font-size:46px}
.hero-title{font-size:23px;font-weight:800;margin-top:8px}
.hero-sub{font-size:13px;opacity:.9;margin-top:6px}
.uc-wrap{padding:0 14px}
.feat-g{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.feat{display:flex;gap:10px;align-items:center;background:#f8f9ff;border-radius:12px;padding:11px}
.feat-ic{font-size:22px}
.feat-t{font-weight:700;font-size:13.5px}
.feat-s{font-size:11px;color:#646a73;margin-top:1px}
.btn-primary{display:block;text-align:center;color:#fff;font-weight:700;font-size:15px;padding:13px;border-radius:12px;margin-top:14px;background:#3b5bdb}
.login-ent{display:block;text-align:center;color:#3b5bdb;font-size:13px;margin-top:12px}
.foot-note{text-align:center;color:#9aa0a6;font-size:11.5px;margin-top:18px}

/* 登录 */
.login-hero{background:linear-gradient(135deg,#3b5bdb,#5c7cfa);padding:50px 24px 26px;text-align:center;color:#fff}
.login-card .lc-role{display:flex;align-items:center;gap:8px;font-weight:700;margin-bottom:14px}
.lc-dot{width:10px;height:10px;border-radius:50%}
.lc-dot.seek{background:#2f9e44}
.fld{display:block;width:100%;border:1px solid #e3e6eb;border-radius:10px;padding:12px;font-size:14px;margin-bottom:10px;background:#fbfcfe;outline:none}
.fld:focus{border-color:#3b5bdb}
.fld-row{display:flex;gap:8px}
.fld-row .fld{flex:1;margin-bottom:10px}
.fld-btn{border:none;background:#eef1f8;color:#3b5bdb;font-weight:700;border-radius:10px;padding:0 16px}
.lc-tip{font-size:11.5px;color:#868e96;margin-top:10px;text-align:center}
.login-back{display:block;text-align:center;color:#868e96;font-size:13px;margin-top:14px}

/* 子页头部 */
.sub-hero{background:linear-gradient(135deg,#3b5bdb,#5c7cfa);padding:46px 18px 20px;color:#fff}
.sh-top{display:flex;justify-content:space-between;font-weight:700;font-size:16px}
.sh-msg{font-size:18px}
.avatar{background:#eef2ff;color:#3b5bdb;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:20px}
.sh-search{margin-top:12px;background:rgba(255,255,255,.22);border-radius:10px;display:flex;align-items:center;padding:0 12px}
.sh-si{opacity:.85;font-size:14px}
.sh-search input{border:none;background:transparent;color:#fff;outline:none;padding:11px 8px;width:100%;font-size:13px}
.sh-search input::placeholder{color:rgba(255,255,255,.8)}

/* 成绩总览 */
.latest{background:linear-gradient(135deg,#3b5bdb,#4263eb);color:#fff}
.lv-tag{font-size:12px;opacity:.9;display:inline-block;background:rgba(255,255,255,.2);padding:3px 10px;border-radius:20px}
.lv-t{font-size:34px;font-weight:800;margin-top:10px}
.lv-f{font-size:15px;font-weight:500;opacity:.8;margin-left:4px}
.lv-row{display:flex;gap:24px;margin-top:12px}
.lv-k{font-size:11px;opacity:.85;display:block}
.lv-v{font-size:15px;font-weight:700}
.pf-stats2{display:grid;grid-template-columns:repeat(4,1fr);gap:0;background:#fff;border-radius:14px;padding:14px 6px;margin:10px 0;box-shadow:0 2px 10px rgba(20,30,60,.04)}
.pf-st2{text-align:center}
.pf-v2{font-size:18px;font-weight:800}
.pf-l2{font-size:11px;color:#868e96;margin-top:2px}
.quick-g{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.quick{background:#fff;border-radius:12px;padding:14px 8px;text-align:center;box-shadow:0 2px 10px rgba(20,30,60,.04)}
.quick-ic{font-size:24px;display:block;margin-bottom:6px}
.quick span:last-child{font-size:12px;color:#1f2329}
.notice{background:#eef4ff;border-radius:12px;padding:12px;font-size:12.5px;color:#2b44b8;display:flex;gap:8px;line-height:1.6;margin-top:12px}
.nt-ic{font-size:15px}

/* 导航栏 */
.navbar{position:sticky;top:0;z-index:20;background:#3b5bdb;color:#fff;height:48px;display:flex;align-items:center;padding:0 12px}
.nb-back{font-size:26px;line-height:1;color:#fff;width:30px}
.nb-title{flex:1;text-align:center;font-weight:700;font-size:16px;margin-right:30px}
.nb-right{font-size:16px;width:30px;text-align:right}

/* 底部 tab */
.tabbar{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:430px;display:flex;background:#fff;border-top:1px solid #eef0f3;z-index:30}
.tb{flex:1;text-align:center;padding:7px 0;color:#9aa0a6;font-size:11px}
.tb.on{color:#3b5bdb}
.tb-ic{display:block;font-size:20px;margin-bottom:1px}

/* 考试记录 */
.ex{display:flex;justify-content:space-between;align-items:center;padding:13px 4px;border-bottom:1px solid #f1f3f5}
.ex:last-child{border-bottom:none}
.ex-name{font-weight:700;font-size:14px}
.ex-date{font-size:11.5px;color:#868e96;margin-top:2px}
.ex-total{font-size:19px;font-weight:800;text-align:right}
.ex-f{font-size:12px;color:#adb5bd;font-weight:500;margin-left:2px}
.ex-d{font-size:12px;font-weight:700;text-align:right;margin-top:2px}
.ex-rank{font-size:11px;color:#868e96;text-align:right;margin-top:2px}

/* 考试详情 */
.eh-t{font-size:17px;font-weight:800}
.eh-d{font-size:12px;color:#868e96;margin:4px 0 12px}
.eh-row{display:flex;justify-content:space-between}
.eh-i{flex:1;text-align:center}
.eh-v{display:block;font-size:18px;font-weight:800}
.eh-k{display:block;font-size:11px;color:#868e96;margin-top:2px}
.sub{display:flex;justify-content:space-between;align-items:center;padding:11px 2px;border-bottom:1px solid #f1f3f5}
.sub:last-child{border-bottom:none}
.sub-n{font-weight:700;font-size:13.5px}
.sub-meta{font-size:11px;color:#868e96;margin-top:2px}
.sub-v{font-size:16px;font-weight:800}
.sub-f{font-size:11px;color:#adb5bd;font-weight:500;margin-left:2px}
.sub-d{font-size:11px;font-weight:700;margin-top:3px;text-align:right}

/* 学科分析 chip */
.chip-row{display:flex;gap:8px;flex-wrap:wrap;margin:12px 2px}
.chip{background:#eef1f8;color:#495057;font-size:12.5px;padding:6px 14px;border-radius:20px;cursor:pointer}
.chip.on{background:#3b5bdb;color:#fff}
.tg{display:inline-block;font-size:12px;padding:3px 10px;border-radius:8px;margin-right:6px}
.tg.good{background:#e6fcf0;color:#2f9e44}
.tg.bad{background:#fff0f0;color:#e03131}

/* 多维度对比 */
.cmp-h,.cmp-r{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr 1fr;gap:4px;align-items:center;padding:10px 2px}
.cmp-h{font-size:11px;color:#868e96;border-bottom:1px solid #f1f3f5;font-weight:700}
.cmp-r{border-bottom:1px solid #f7f8fa}
.cmp-n{font-weight:700;font-size:13px}
.cmp-v{text-align:right;font-size:13px;font-weight:700}
.cmp-top{color:#f08c00}

/* 排名 */
.ring-card{padding:16px}
.rb{display:grid;grid-template-columns:36px 1fr 44px 54px 46px;gap:4px;align-items:center;padding:10px 2px;border-bottom:1px solid #f7f8fa;font-size:13px}
.rb.me{background:#e7f5ff;border-radius:10px;padding:10px 6px;font-weight:700}
.rb-rk{width:26px;height:26px;border-radius:50%;background:#eef1f8;color:#495057;display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:13px}
.rb.me .rb-rk{background:#3b5bdb;color:#fff}
.rb-c{color:#868e96;font-size:12px}
.rb-t{text-align:right;font-weight:800}
.rb-d{text-align:right;color:#2f9e44;font-size:12px}

/* 错题本 */
.mk{border-bottom:1px solid #f1f3f5;padding:12px 2px}
.mk:last-child{border-bottom:none}
.mk-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.mk-sub{font-weight:800;color:#3b5bdb;font-size:13.5px}
.mk-st{font-size:11px;padding:2px 9px;border-radius:20px}
.st-ok{background:#e6fcf0;color:#2f9e44}
.st-no{background:#fff0f0;color:#e03131}
.mk-q{font-weight:700;font-size:13.5px;margin-bottom:5px}
.mk-k{font-size:11.5px;color:#868e96;margin-bottom:5px}
.mk-r{font-size:12px;color:#e8590c;background:#fff4e6;padding:7px 9px;border-radius:8px;margin-bottom:6px}
.mk-fix{display:flex;gap:8px}
.mk-w{font-size:11.5px;background:#fff0f0;color:#e03131;padding:4px 10px;border-radius:8px}
.mk-right{font-size:11.5px;background:#e6fcf0;color:#2f9e44;padding:4px 10px;border-radius:8px}

/* 我的 */
.uc-hero{background:linear-gradient(135deg,#3b5bdb,#5c7cfa);color:#fff;border-radius:14px;padding:18px;margin:12px 0}
.uc-name{font-size:18px;font-weight:800}
.uc-id{font-size:12px;opacity:.9;margin-top:4px}
.resume-bar{height:7px;background:rgba(255,255,255,.3);border-radius:6px;margin-top:12px;overflow:hidden}
.resume-fill{height:7px;background:#fff;border-radius:6px}
.resume-t{font-size:11.5px;opacity:.95;margin-top:6px}
.li{display:flex;align-items:center;gap:12px;padding:13px 4px;border-bottom:1px solid #f1f3f5}
.li:last-child{border-bottom:none}
.li-ic{font-size:20px;width:26px;text-align:center}
.li-mn{flex:1}
.li-t{font-size:14px;font-weight:600}
.li-ar{color:#adb5bd;font-size:20px}
.logout{display:block;text-align:center;color:#e03131;font-size:13.5px;margin:16px 0;font-weight:600}

/* 消息 */
.msg-i{border-bottom:1px solid #f1f3f5;padding:12px 2px;position:relative}
.msg-i:last-child{border-bottom:none}
.msg-i-top{display:flex;align-items:center;gap:8px;margin-bottom:5px}
.msg-type{font-size:11px;padding:2px 9px;border-radius:6px;background:#eef1f8;color:#3b5bdb}
.msg-type.t-成绩{background:#e7f5ff;color:#1971c2}
.msg-type.t-考试{background:#fff4e6;color:#e8590c}
.msg-type.t-提醒{background:#f3f0ff;color:#6741d9}
.cv-time{font-size:11px;color:#adb5bd}
.cv-un{width:7px;height:7px;border-radius:50%;background:#fa5252;display:inline-block}
.msg-title{font-weight:700;font-size:13.5px}
.msg-body{font-size:12px;color:#646a73;margin-top:3px;line-height:1.5}
