:root{
  --navy:#0F2E5C;
  --navy-2:#1B4A8A;
  --accent:#E8503A;
  --accent-2:#FF7A45;
  --gold:#D99A2B;
  --green:#18A058;
  --bg:#F4F6FB;
  --card:#FFFFFF;
  --line:#E4E9F2;
  --text:#16233A;
  --text-2:#5B6B85;
  --text-3:#93A0B5;
  --radius:14px;
  --shadow:0 2px 10px rgba(15,46,92,.07);
  --shadow-2:0 8px 28px rgba(15,46,92,.14);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0;height:100%}
body{
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  background:var(--bg);color:var(--text);font-size:15px;line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
input,select,textarea{font-family:inherit;font-size:15px}
h1,h2,h3{margin:0;font-weight:700}

/* ---------------- 屏幕 ---------------- */
.screen{display:none;min-height:100vh;padding-bottom:84px}
.screen.active{display:block;animation:fade .18s ease}
@keyframes fade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}

/* ---------------- 注册页 ---------------- */
#screen-auth{padding-bottom:24px;background:linear-gradient(180deg,#0F2E5C 0%,#17427C 42%,var(--bg) 42.1%)}
.auth-hero{padding:38px 24px 22px;color:#fff;text-align:center}
.auth-logo{width:56px;height:56px;margin:0 auto 12px;border-radius:16px;background:linear-gradient(135deg,var(--accent),var(--accent-2));
  display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:800;letter-spacing:0;
  box-shadow:0 8px 22px rgba(232,80,58,.4)}
.auth-hero h1{font-size:21px;letter-spacing:.5px}
.auth-sub{color:rgba(255,255,255,.75);font-size:13px;margin:8px 0 0}
.auth-tags{margin-top:14px;display:flex;gap:8px;justify-content:center}
.auth-tags span{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);
  padding:3px 12px;border-radius:20px;font-size:12px}
.auth-card{margin:0 16px;background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow-2);padding:18px 18px 20px}

.tabs{display:flex;background:var(--bg);border-radius:11px;padding:4px;margin-bottom:16px}
.tab{flex:1;padding:9px 0;border-radius:8px;font-size:14px;color:var(--text-2);font-weight:600}
.tab.active{background:#fff;color:var(--navy);box-shadow:0 1px 4px rgba(15,46,92,.12)}

.field{display:block;margin-bottom:13px}
.field>span{display:block;font-size:13px;color:var(--text-2);margin-bottom:6px;font-weight:600}
.field>span i{color:var(--accent);font-style:normal}
.field input,.field select{width:100%;padding:12px 13px;border:1.5px solid var(--line);border-radius:11px;
  background:#FBFCFE;outline:none;transition:.15s;color:var(--text)}
.field input:focus,.field select:focus{border-color:var(--navy-2);background:#fff;box-shadow:0 0 0 3px rgba(27,74,138,.09)}
.field select{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path d='M2 4l4 4 4-4' stroke='%235B6B85' stroke-width='1.6' fill='none' stroke-linecap='round'/></svg>");
  background-repeat:no-repeat;background-position:right 13px center}
.auth-tip{color:var(--accent);font-size:13px;min-height:18px;margin-bottom:6px;font-weight:600}
.auth-note{font-size:11.5px;color:var(--text-3);text-align:center;margin:12px 0 0;line-height:1.6}

/* ---------------- 按钮 ---------------- */
.btn{border-radius:11px;padding:12px 18px;font-size:15px;font-weight:700;transition:.15s;display:inline-flex;
  align-items:center;justify-content:center;gap:6px}
.btn-primary{background:linear-gradient(135deg,var(--navy-2),var(--navy));color:#fff;box-shadow:0 4px 14px rgba(15,46,92,.24)}
.btn-primary:active{transform:translateY(1px);box-shadow:0 2px 8px rgba(15,46,92,.2)}
.btn-primary:disabled{opacity:.55;box-shadow:none}
.btn-ghost{background:#fff;border:1.5px solid var(--line);color:var(--text-2)}
.btn-ghost:active{background:var(--bg)}
.btn-danger{color:var(--accent);border-color:#F5D3CD}
.btn-block{width:100%}

/* ---------------- 顶栏 ---------------- */
.topbar{display:flex;align-items:center;justify-content:space-between;padding:18px 18px 10px}
.greet{font-size:19px;font-weight:800;letter-spacing:.3px}
.greet-sub{font-size:12.5px;color:var(--text-3);margin-top:2px}
.icon-btn{width:38px;height:38px;border-radius:11px;background:#fff;box-shadow:var(--shadow);font-size:17px;
  display:flex;align-items:center;justify-content:center;color:var(--navy)}
.unlock-badge{font-size:12px;font-weight:700;padding:5px 12px;border-radius:20px;background:#FDECEA;color:var(--accent)}
.unlock-badge.ok{background:#E7F6EE;color:var(--green)}

/* ---------------- 层次切换 ---------------- */
.level-switch{display:flex;gap:8px;padding:4px 18px 12px;overflow-x:auto;scrollbar-width:none}
.level-switch::-webkit-scrollbar{display:none}
.level-chip{white-space:nowrap;padding:7px 15px;border-radius:20px;background:#fff;border:1.5px solid var(--line);
  font-size:13px;font-weight:600;color:var(--text-2)}
.level-chip.active{background:var(--navy);border-color:var(--navy);color:#fff}

/* ---------------- 统计 ---------------- */
.stat-row{display:flex;gap:10px;padding:0 18px 6px}
.stat-box{flex:1;background:#fff;border-radius:12px;padding:12px 12px;box-shadow:var(--shadow);text-align:center}
.stat-box b{display:block;font-size:19px;color:var(--navy);font-weight:800}
.stat-box span{font-size:11.5px;color:var(--text-3)}

/* ---------------- 区块标题 ---------------- */
.sec-title{display:flex;align-items:center;gap:8px;padding:18px 18px 10px}
.sec-title h2{font-size:16px}
.badge-free{font-size:11px;font-weight:700;color:var(--green);background:#E7F6EE;padding:2px 8px;border-radius:20px}
.badge-paid{font-size:11px;font-weight:700;color:var(--gold);background:#FDF4E3;padding:2px 8px;border-radius:20px}

/* ---------------- 科目网格 ---------------- */
.subject-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px;padding:0 18px}
.subject-card{background:#fff;border-radius:13px;padding:15px 14px;box-shadow:var(--shadow);text-align:left;
  border:1.5px solid transparent;transition:.15s;position:relative;overflow:hidden}
.subject-card:active{transform:scale(.985)}
.subject-card b{display:block;font-size:15.5px;margin-bottom:5px}
.subject-card span{font-size:11.5px;color:var(--text-3);display:block}
.subject-card .sc-count{position:absolute;right:12px;top:12px;font-size:11px;color:var(--navy-2);
  background:#EAF1FB;padding:2px 8px;border-radius:20px;font-weight:700}
.subject-card .sc-bar{height:4px;background:#EEF2F8;border-radius:4px;margin-top:10px;overflow:hidden}
.subject-card .sc-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--navy-2),var(--accent));border-radius:4px}
/* 科目卡上的「开始练习」胶囊：让学员一眼知道点这里能进 */
.subject-card .sc-go{display:inline-block;margin-top:10px;padding:4px 11px;border-radius:20px;
  background:#EEF4FD;color:#1B4F9C;font-size:11.5px;font-weight:700}

/* ---------------- 快捷开始 ---------------- */
.quick-row{display:flex;gap:11px;padding:0 18px 24px}
.quick-card{flex:1;background:#fff;border-radius:13px;padding:16px 14px;box-shadow:var(--shadow);text-align:left}
.quick-card b{display:block;font-size:15px;margin-bottom:4px}
.quick-card span{font-size:11.5px;color:var(--text-3)}

/* ---------------- 答题页 ---------------- */
#screen-quiz{background:var(--bg);padding-bottom:96px}
.quiz-head{display:flex;align-items:center;gap:10px;padding:14px 14px 8px;background:#fff;
  border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.quiz-title{flex:1;text-align:center;font-size:15.5px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.progress-wrap{padding:12px 18px 10px;background:#fff;border-bottom:1px solid var(--line)}
.progress-info{display:flex;justify-content:space-between;font-size:12px;color:var(--text-3);margin-bottom:7px}
.progress-bar{height:5px;background:#EEF2F8;border-radius:5px;overflow:hidden}
.progress-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--navy-2),var(--accent));transition:width .25s}

.quiz-body{padding:16px 18px 24px}
.q-meta{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:11px}
.q-meta span{font-size:11px;padding:3px 9px;border-radius:20px;background:#EAF1FB;color:var(--navy-2);font-weight:600}
.q-meta span.src{background:#FDF4E3;color:var(--gold)}
.q-stem{font-size:16.5px;line-height:1.72;font-weight:600;margin-bottom:16px;white-space:pre-wrap;word-break:break-word}

.q-options{display:flex;flex-direction:column;gap:9px}
.opt{display:flex;gap:11px;align-items:flex-start;background:#fff;border:1.5px solid var(--line);border-radius:12px;
  padding:13px 14px;font-size:15px;line-height:1.6;transition:.15s;text-align:left;width:100%}
.opt .k{flex:0 0 24px;height:24px;border-radius:50%;background:#EEF2F8;color:var(--text-2);font-size:12.5px;
  font-weight:800;display:flex;align-items:center;justify-content:center;margin-top:1px}
.opt .v{flex:1;word-break:break-word}
.opt.sel{border-color:var(--navy-2);background:#F4F8FE}
.opt.sel .k{background:var(--navy-2);color:#fff}
.opt.right{border-color:var(--green);background:#F1FBF5}
.opt.right .k{background:var(--green);color:#fff}
.opt.wrong{border-color:var(--accent);background:#FEF3F1}
.opt.wrong .k{background:var(--accent);color:#fff}
.opt:disabled{opacity:1}

.q-fill textarea{width:100%;padding:13px;border:1.5px solid var(--line);border-radius:12px;outline:none;
  resize:vertical;line-height:1.7;background:#fff}
.q-fill textarea:focus{border-color:var(--navy-2)}

.q-result{margin-top:16px;background:#fff;border-radius:13px;padding:15px;box-shadow:var(--shadow);border-left:4px solid var(--green)}
.q-result.bad{border-left-color:var(--accent)}
.q-result .rst-head{display:flex;align-items:center;gap:8px;font-weight:800;font-size:14.5px;margin-bottom:9px}
.q-result .rst-head.ok{color:var(--green)}
.q-result .rst-head.no{color:var(--accent)}
.q-result .rst-ans{font-size:14px;margin-bottom:9px;color:var(--text)}
.q-result .rst-ans b{color:var(--navy)}
.q-result .rst-src{font-size:12px;color:var(--text-3)}
.q-result .rst-exp{font-size:13.5px;color:var(--text-2);line-height:1.75;white-space:pre-wrap;border-top:1px dashed var(--line);padding-top:10px}
.q-result .rst-exp b{color:var(--text)}
.q-result .rst-other{margin-top:11px;font-size:13px;line-height:1.72;color:#8A5A00;background:#FFF8E8;
  border-radius:9px;padding:10px 12px;white-space:pre-wrap}
.q-result .rst-other b{color:#B06A00}

.quiz-foot{position:fixed;left:0;right:0;bottom:0;display:flex;gap:11px;padding:12px 18px calc(12px + env(safe-area-inset-bottom));
  background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-top:1px solid var(--line);z-index:20}
.quiz-foot .btn{flex:1}
.quiz-foot .btn-ghost{flex:0 0 110px}

/* ---------------- 付费专区 ---------------- */
.paid-lock{margin:6px 18px 0;background:#fff;border-radius:16px;padding:26px 20px;box-shadow:var(--shadow-2);text-align:center}
.lock-icon{font-size:34px;margin-bottom:8px}
.paid-lock h3{font-size:17.5px;margin-bottom:16px}
.lock-list{list-style:none;margin:0 0 18px;padding:0;text-align:left}
.lock-list li{display:flex;justify-content:space-between;align-items:center;padding:11px 0;border-bottom:1px dashed var(--line)}
.lock-list li:last-child{border-bottom:none}
.lock-list b{font-size:14.5px}
.lock-list span{font-size:12px;color:var(--text-3)}
.price-row{display:flex;align-items:baseline;justify-content:center;gap:10px;margin:6px 0 16px}
.price-now{font-size:32px;font-weight:900;color:var(--accent);letter-spacing:-.5px}
.price-old{font-size:14px;color:var(--text-3);text-decoration:line-through}
.paid-note{font-size:11.5px;color:var(--text-3);margin:12px 0 0}

.paid-cards{padding-bottom:6px}
.paid-module{display:flex;align-items:center;gap:12px;background:#fff;border-radius:13px;padding:15px 14px;
  margin:0 18px 11px;box-shadow:var(--shadow)}
.paid-module:active{transform:scale(.99)}
.pm-icon{width:42px;height:42px;border-radius:12px;background:#F2F6FD;display:flex;align-items:center;
  justify-content:center;font-size:20px;flex:none}
.pm-body{flex:1;min-width:0}
.pm-body b{display:block;font-size:15.5px;margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pm-body span{display:block;font-size:12px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pm-share{flex:none;font-size:11.5px;font-weight:700;color:#1B4F9C;background:#EEF4FD;border:1px solid #D8E4F6;
  border-radius:20px;padding:5px 10px;margin-right:2px}
.pm-share:active{background:#DFEAFB}
.pm-arrow{color:#C3CCDA;font-size:18px;flex:none;margin-left:-4px}
/* 「进入课程」主按钮：付费区每张卡都有一眼可见的入口（原来最显眼的是「推广」，学员找不到怎么进） */
.paid-module .pm-go{flex:none;padding:9px 13px;border:none;border-radius:10px;
  background:linear-gradient(135deg,#1B4F9C,#2C6FBF);color:#fff;font-size:13px;font-weight:700;
  white-space:nowrap;box-shadow:0 3px 10px rgba(27,79,156,.28)}
.paid-module .pm-go:active{transform:scale(.96)}
/* 分享收成小图标，不再抢「进入课程」的位 */
.paid-module .pm-share{padding:8px 9px;font-size:13px;margin-right:0}

/* ---------------- 技巧 ---------------- */
.chip-row{display:flex;gap:8px;padding:12px 18px;overflow-x:auto;background:#fff;border-bottom:1px solid var(--line);
  position:sticky;top:58px;z-index:4;scrollbar-width:none}
.chip-row::-webkit-scrollbar{display:none}
.chip{white-space:nowrap;padding:6px 14px;border-radius:20px;background:var(--bg);font-size:13px;
  color:var(--text-2);font-weight:600;border:1.5px solid transparent}
.chip.active{background:var(--navy);color:#fff}
.tip-list{padding:14px 18px 30px;display:flex;flex-direction:column;gap:11px}
.tip-card{background:#fff;border-radius:13px;padding:15px;box-shadow:var(--shadow);border-left:4px solid var(--accent-2)}
.tip-card .tc-head{display:flex;align-items:center;gap:8px;margin-bottom:9px}
.tip-card .tc-head b{font-size:15px}
.tip-card .tc-tag{font-size:10.5px;padding:2px 8px;border-radius:20px;background:#FDECEA;color:var(--accent);font-weight:700}
.tip-card .tc-row{font-size:13.5px;line-height:1.72;color:var(--text-2);margin-bottom:7px}
.tip-card .tc-row em{font-style:normal;color:var(--text);font-weight:700}
.tip-card .tc-ex{font-size:12.5px;line-height:1.7;color:var(--text-2);background:#F7F9FD;border-radius:9px;
  padding:9px 11px;white-space:pre-wrap}

/* ---------------- 我的 ---------------- */
.me-card{margin:6px 18px 0;background:linear-gradient(135deg,var(--navy),var(--navy-2));border-radius:16px;
  padding:20px 18px;color:#fff;box-shadow:var(--shadow-2)}
.me-card .mc-name{font-size:20px;font-weight:800;margin-bottom:3px}
.me-card .mc-phone{font-size:13px;color:rgba(255,255,255,.72);margin-bottom:14px}
.me-card .mc-rows{display:flex;flex-direction:column;gap:8px}
.me-card .mc-row{display:flex;justify-content:space-between;font-size:13.5px;
  border-top:1px solid rgba(255,255,255,.14);padding-top:8px}
.me-card .mc-row span:first-child{color:rgba(255,255,255,.7)}
.me-card .mc-row span:last-child{font-weight:600}
.me-actions{padding:18px;display:flex;flex-direction:column;gap:11px}
.foot-note{font-size:11.5px;color:var(--text-3);text-align:center;padding:0 26px 20px;line-height:1.75}

/* ---------------- 底部导航 ---------------- */
.tabbar{position:fixed;left:0;right:0;bottom:0;display:flex;background:rgba(255,255,255,.97);
  backdrop-filter:blur(10px);border-top:1px solid var(--line);padding:6px 0 calc(6px + env(safe-area-inset-bottom));z-index:30}
.tabbar button{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:11px;color:var(--text-3);
  padding:5px 0;font-weight:600}
.tabbar button i{font-style:normal;font-size:19px;line-height:1;filter:grayscale(1);opacity:.55}
.tabbar button.active{color:var(--navy)}
.tabbar button.active i{filter:none;opacity:1}

/* ---------------- 弹窗 / 提示 ---------------- */
.modal-mask{position:fixed;inset:0;background:rgba(15,35,60,.5);display:none;align-items:center;justify-content:center;
  z-index:100;padding:24px;backdrop-filter:blur(2px)}
.modal-mask.show{display:flex;animation:fade .16s}
.modal{background:#fff;border-radius:16px;padding:22px 20px;width:100%;max-width:360px;box-shadow:var(--shadow-2);
  max-height:86vh;overflow:auto;text-align:center}
.modal h3{font-size:17px;margin-bottom:8px}
.modal p{font-size:13.5px;color:var(--text-2);line-height:1.7;margin:0 0 14px}
/* 支付二维码：**按自然像素 1:1 显示，绝不做 CSS 缩放**。
   原因：二维码是「模块整数倍」绘制的（见 lib/png.js）。一旦被 CSS 非整数缩放，
   模块宽度就变得不匀（有的 6px 有的 7px），浏览器 jsQR 能忍、**微信的解码器忍不了** ——
   微信检测不到二维码，长按菜单里就**不会出现「识别图中二维码」**（表现为「长按没反应」）。
   所以：服务端按容器宽度出图（整数模块、≤容器），前端 width:auto 原样显示。 */
.pay-qr{width:300px;max-width:100%;margin:14px auto;border:1px solid var(--line);border-radius:12px;
  display:flex;align-items:center;justify-content:center;background:#fff;padding:4px}
.pay-qr img{width:auto;height:auto;max-width:100%;-webkit-touch-callout:default;user-select:auto;
  image-rendering:pixelated;image-rendering:crisp-edges}
/* 支付面板：手机端按钮要好点（≥44px），二维码要够大（微信长按识别需要） */
.modal .btn-block{padding:13px 16px;font-size:15px}
.pay-row{display:flex;gap:9px;margin-top:2px}
.pay-row .btn{flex:1;margin-top:6px;padding:11px 8px;font-size:13.5px}
#payState{line-height:1.75}
@media (max-width:480px){
  .pay-qr{width:280px}
}
.pay-qr .ph{font-size:12.5px;color:var(--text-3);padding:16px;line-height:1.7}
.modal .btn{margin-top:6px}
.modal .btn+.btn{margin-top:9px}
.pay-amount{font-size:30px;font-weight:900;color:var(--accent);margin:4px 0 2px}
.pay-oid{font-size:11px;color:var(--text-3);word-break:break-all;margin-bottom:6px}
.demo-tag{display:inline-block;font-size:11px;background:#FDF4E3;color:var(--gold);padding:3px 10px;
  border-radius:20px;font-weight:700;margin-bottom:10px}

.toast{position:fixed;left:50%;bottom:96px;transform:translateX(-50%) translateY(12px);background:rgba(22,35,58,.94);
  color:#fff;font-size:13.5px;padding:10px 18px;border-radius:22px;opacity:0;pointer-events:none;transition:.22s;z-index:200;
  max-width:80vw;text-align:center;line-height:1.5}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

.empty{text-align:center;color:var(--text-3);font-size:13.5px;padding:44px 20px;line-height:1.8}

/* ---------------- 拍照搜题 ---------------- */
.solve-pick{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:4px 16px 0}
.pick-box{background:var(--card);border:1.5px dashed var(--line);border-radius:var(--radius);padding:20px 10px;
  display:flex;flex-direction:column;align-items:center;gap:6px;box-shadow:var(--shadow);transition:.16s}
.pick-box:active{transform:scale(.98);border-color:var(--accent)}
.pick-ico{font-size:28px;line-height:1}
.pick-box b{font-size:14.5px;color:var(--navy)}
.pick-tip{font-size:11.5px;color:var(--text-3)}
.solve-tip{text-align:center;font-size:13px;color:var(--text-3);margin:14px 0 0}
.solve-tip b{color:var(--navy-2);font-weight:600;border-bottom:1px dashed var(--navy-2);padding-bottom:1px}

.solve-preview{margin:14px 16px 0;background:var(--card);border-radius:var(--radius);padding:10px;box-shadow:var(--shadow)}
.solve-preview img{width:100%;border-radius:10px;display:block;max-height:340px;object-fit:contain;background:#F7F9FC}
.solve-actions{display:flex;gap:8px;margin-top:10px}
.solve-actions .btn{flex:1;padding-left:8px;padding-right:8px}

/* 取景框：拖拽圈住要识别的那道题 */
.crop-wrap{position:relative;display:block;line-height:0;overflow:hidden;border-radius:10px;
  touch-action:none;user-select:none;-webkit-user-select:none}
.crop-wrap img{max-height:42vh;object-fit:contain;margin:0 auto;pointer-events:none}
.crop-box{position:absolute;border:2px solid var(--accent);border-radius:8px;cursor:move;
  box-shadow:0 0 0 9999px rgba(8,18,38,.5);touch-action:none}
.crop-box::after{content:"";position:absolute;inset:0;border-radius:6px;
  background:linear-gradient(180deg,rgba(232,80,58,.06),transparent)}
.crop-h{position:absolute;width:20px;height:20px;background:#fff;border:2px solid var(--accent);
  border-radius:50%;box-shadow:0 2px 6px rgba(0,0,0,.25)}
.crop-h[data-h="nw"]{left:-11px;top:-11px;cursor:nwse-resize}
.crop-h[data-h="ne"]{right:-11px;top:-11px;cursor:nesw-resize}
.crop-h[data-h="sw"]{left:-11px;bottom:-11px;cursor:nesw-resize}
.crop-h[data-h="se"]{right:-11px;bottom:-11px;cursor:nwse-resize}
.crop-tip{font-size:12px;color:var(--text-3);text-align:center;margin:8px 0 0}
.crop-tip b{color:var(--accent)}

/* ============ 会员体系 ============ */
.mini-btn{border:0;background:var(--accent);color:#fff;font-size:12px;font-weight:700;
  padding:6px 12px;border-radius:20px;cursor:pointer;white-space:nowrap}
.mini-btn:active{opacity:.85}

.member-card{display:flex;align-items:center;gap:12px;margin:12px 16px 0;padding:14px 16px;
  border-radius:var(--radius);background:linear-gradient(120deg,#FFF6F3,#FFFDF9);border:1px solid #FFE0D6}
.member-card.on{background:linear-gradient(120deg,#FFF4EC,#FFFBF6);border-color:#F7D9B8}
.mbc-left{flex:1;min-width:0}
.mbc-title{font-size:14.5px;font-weight:800;color:var(--navy)}
.mbc-sub{font-size:12px;color:var(--text-3);margin-top:3px}
.mbc-sub b{color:var(--accent)}

/* 付费区顶部免费额度条 */
.paid-quota{display:flex;align-items:center;gap:9px;margin:12px 16px 0;padding:11px 14px;
  background:#FFF7F2;border:1px solid #FFE1D4;border-radius:12px;font-size:12.5px;color:#8A5B4B}
.pq-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);flex:none}
.pq-main{flex:1;min-width:0}
.pq-line{display:block;font-size:12.5px;white-space:nowrap}
.pq-line b{color:var(--accent);font-size:14px}
.pq-line em{font-style:normal;color:var(--text-3);font-size:11.5px;margin-left:4px}
.pq-tip{display:block;color:var(--text-3);font-size:11px;margin-top:2px;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
.paid-quota .mini-btn{margin-left:auto;flex:none;white-space:nowrap}

/* 锁住的题目入口 */
.locked-row{display:flex;align-items:center;gap:8px;margin-top:10px;padding:13px 14px;
  border:1px dashed #E2C9B8;border-radius:12px;background:#FFFAF7;font-size:13px;color:#8A6A58;cursor:pointer}
.locked-row b{flex:1;min-width:0;font-weight:600;color:#7A5245;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.locked-row .mini-btn{background:#B99A86;flex:none;white-space:nowrap}

/* 套餐选择 */
.plan-grid{display:flex;gap:9px;margin:12px 0 4px}
.plan{flex:1;position:relative;border:1.5px solid #E6EBF3;border-radius:14px;padding:12px 6px 10px;
  text-align:center;cursor:pointer;background:#fff;transition:.15s}
.plan.sel{border-color:var(--accent);background:#FFF7F4;box-shadow:0 4px 14px rgba(232,80,58,.14)}
.plan.hot{border-color:#F3C9B4}
.plan-tag{position:absolute;top:-9px;left:50%;transform:translateX(-50%);background:var(--accent);color:#fff;
  font-size:10.5px;padding:2px 8px;border-radius:10px;white-space:nowrap}
.plan-name{font-size:12.5px;color:var(--text-3);font-weight:700}
.plan-price{font-size:13px;color:var(--accent);font-weight:700;margin-top:4px}
.plan-price b{font-size:21px}
.plan-days{font-size:11px;color:var(--text-3);margin-top:2px}
.plan-note{font-size:10.5px;color:#B0BACB;margin-top:4px;line-height:1.35}
.modal-sub{font-size:12.5px;color:var(--text-3);margin:2px 0 4px}

/* 答题页免费额度提示 */
.free-chip{margin-top:8px;font-size:12.5px;color:#8A5B4B;display:flex;align-items:center;gap:8px}
.free-chip b{color:var(--accent)}

/* ============ 推广中心 ============ */
.ref-hero{margin:14px 16px 0;padding:16px;border-radius:var(--radius);text-align:center;
  background:linear-gradient(150deg,#FFF6F1,#FFFCFA);border:1px solid #FFE3D6}
.ref-hero-label{font-size:12px;color:var(--text-3);letter-spacing:1px}
.ref-code{font-size:29px;font-weight:900;letter-spacing:5px;color:var(--accent);margin:6px 0 10px;font-family:monospace}
.ref-qr img{width:148px;height:148px;border-radius:12px;background:#fff;padding:6px;box-shadow:var(--shadow)}
.ref-link{font-size:11px;color:var(--text-3);word-break:break-all;margin:10px 4px 12px;line-height:1.5}
.ref-btns{display:flex;gap:9px}
.ref-btns .btn{flex:1}
.stat-row{display:flex;gap:9px;margin:12px 16px 0}
.stat-box{flex:1;background:var(--card);border-radius:12px;padding:12px 6px;text-align:center;box-shadow:var(--shadow)}
.stat-box b{display:block;font-size:19px;color:var(--navy)}
.stat-box span{font-size:11px;color:var(--text-3)}
.ref-team,.ref-comm,.ref-src,.ref-wd{margin:8px 16px 0}
.ref-row{display:flex;align-items:center;gap:8px;padding:11px 12px;background:var(--card);
  border-radius:11px;margin-bottom:7px;font-size:13px;box-shadow:var(--shadow)}
.ref-lv{font-size:11px;color:#fff;background:#B9C4D6;border-radius:6px;padding:2px 7px;flex:none}
.ref-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--navy)}
.ref-tag{font-size:11px;color:var(--text-3);background:#F1F4F9;border-radius:6px;padding:2px 7px;flex:none}
.ref-tag.ok{color:var(--green);background:rgba(24,160,88,.12)}
.ref-date{font-size:11px;color:#B0BACB;flex:none}
.ref-amt{font-size:14px;font-weight:800;color:var(--accent);flex:none}

.solve-loading{display:flex;flex-direction:column;align-items:center;gap:10px;padding:30px 0;color:var(--text-2);font-size:13.5px}
.spin{width:26px;height:26px;border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:sp .8s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}

.solve-result{padding:14px 16px 0}
.sr-card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;margin-bottom:12px}
.sr-badge{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;padding:3px 10px;border-radius:20px;margin-bottom:10px}
.sr-badge.bank{background:rgba(24,160,88,.12);color:var(--green)}
.sr-badge.ai{background:rgba(232,80,58,.12);color:var(--accent)}
.sr-stem{font-size:15px;line-height:1.7;font-weight:600;margin-bottom:10px;white-space:pre-wrap;word-break:break-word}
.sr-opts{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}
.sr-opt{font-size:13.5px;color:var(--text-2);padding:7px 11px;border-radius:9px;background:#F7F9FC;line-height:1.6}
.sr-opt.right{background:rgba(24,160,88,.1);color:var(--green);font-weight:600}
.sr-label{font-size:12px;font-weight:700;color:var(--text-3);letter-spacing:.5px;margin:12px 0 6px}
/* 整页识题：每道题的小标题行 */
.sr-bnum{font-size:13px;font-weight:800;color:var(--navy);margin-bottom:8px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sr-bnum .sr-badge{margin-bottom:0}
.sr-answer{font-size:19px;font-weight:800;color:var(--navy);line-height:1.5;word-break:break-word}
.sr-steps{font-size:14px;line-height:1.85;color:var(--text);white-space:pre-wrap;word-break:break-word}
.sr-src{font-size:12px;color:var(--text-3);margin-top:10px;padding-top:10px;border-top:1px dashed var(--line)}
.sr-empty{text-align:center;padding:34px 20px;color:var(--text-2);font-size:13.5px;line-height:1.8}
.sr-row{display:flex;gap:10px;margin-top:12px}
.sr-row .btn{flex:1}

/* ---------------- 我的题库 ---------------- */
.mb-stat{margin:12px 16px 0;background:var(--card);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow);display:flex;gap:10px;flex-wrap:wrap}
.mb-stat .s{flex:1;min-width:80px;text-align:center}
.mb-stat .s b{display:block;font-size:19px;color:var(--navy)}
.mb-stat .s span{font-size:11.5px;color:var(--text-3)}
.mb-upload{margin:12px 16px 0;background:var(--card);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow)}
.mb-label{font-size:13.5px;font-weight:700;color:var(--navy);margin-bottom:10px}
.mb-upload .chip-row{padding:0;margin:0 0 10px}
.mb-pick{display:flex;gap:10px}
.mb-pick .btn{flex:1}
.mb-hint{font-size:11.5px;color:var(--text-3);margin:10px 0 0;line-height:1.6}
.mb-item{background:var(--card);border-radius:var(--radius);padding:13px 14px;box-shadow:var(--shadow);margin:10px 16px 0}
.mb-item-head{display:flex;align-items:flex-start;gap:8px}
.mb-item-stem{flex:1;font-size:14px;font-weight:600;line-height:1.65;white-space:pre-wrap;word-break:break-word}
.mb-del{flex:none;font-size:12px;color:var(--text-3);padding:2px 8px;border-radius:8px;background:#F4F6FB}
.mb-item-opts{font-size:12.5px;color:var(--text-2);line-height:1.75;margin-top:8px;white-space:pre-wrap;word-break:break-word}
.mb-item-meta{font-size:11.5px;color:var(--text-3);margin-top:8px;display:flex;gap:6px;flex-wrap:wrap}
.mb-tag{background:#EEF3FA;color:var(--navy-2);padding:2px 8px;border-radius:20px}
.mb-tag.dup{background:rgba(232,80,58,.1);color:var(--accent)}
.mb-tag.ok{background:rgba(24,160,88,.12);color:var(--green)}
.mb-bar{position:sticky;bottom:0;background:rgba(255,255,255,.97);border-top:1px solid var(--line);
  padding:10px 16px calc(10px + env(safe-area-inset-bottom));display:flex;gap:10px;margin-top:12px;z-index:20}
.mb-bar .btn{flex:1}

@media (min-width:640px){
  body{max-width:520px;margin:0 auto;background:#E9EDF5;box-shadow:0 0 40px rgba(15,46,92,.08)}
  .tabbar,.quiz-foot{max-width:520px;left:50%;transform:translateX(-50%)}
}

/* ---------------- 会员横幅 / 推广入口条 / 收益卡（2026-10-09） ---------------- */
.mem-banner{display:flex;align-items:center;gap:12px;margin:12px 16px 0;padding:14px 16px;border-radius:var(--radius);
  background:linear-gradient(120deg,#0F2E5C,#1B4F9C);color:#fff;box-shadow:var(--shadow-2)}
.mem-banner .mb-ico{width:38px;height:38px;border-radius:12px;background:rgba(255,255,255,.16);display:flex;
  align-items:center;justify-content:center;font-size:19px;flex:none}
.mem-banner .mb-txt{flex:1;min-width:0}
.mem-banner .mb-txt b{display:block;font-size:14.5px}
.mem-banner .mb-txt i{display:block;font-size:11.5px;font-style:normal;color:rgba(255,255,255,.72);margin-top:3px}
.mem-banner .mb-btn{flex:none;font-size:12px;font-weight:700;color:#0F2E5C;background:#fff;border-radius:20px;padding:6px 12px}

.promo-entry{display:flex;align-items:center;gap:11px;width:calc(100% - 32px);margin:14px 16px 22px;padding:14px 15px;
  border:1px dashed #F0C9A8;border-radius:var(--radius);background:linear-gradient(120deg,#FFF7F1,#FFFDFB);text-align:left}
.promo-entry:active{transform:scale(.99)}
.promo-entry .pe-icon{width:36px;height:36px;border-radius:11px;background:#FFF0E4;display:flex;align-items:center;
  justify-content:center;font-size:18px;flex:none}
.promo-entry .pe-text{flex:1;min-width:0}
.promo-entry .pe-text b{display:block;font-size:14px;color:var(--navy)}
.promo-entry .pe-text i{display:block;font-size:11.5px;font-style:normal;color:var(--text-3);margin-top:3px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.promo-entry .pe-arrow{color:#C9A88B;font-size:18px;flex:none}

.ref-balance{margin:14px 16px 0;padding:16px;border-radius:var(--radius);background:#fff;box-shadow:var(--shadow)}
.ref-balance .rb-label{font-size:12px;color:var(--text-3)}
.ref-balance .rb-amount{font-size:31px;font-weight:900;color:var(--accent);letter-spacing:.5px;margin:2px 0 10px}
.ref-balance .rb-amount small{font-size:16px;font-weight:700;margin-right:2px}
.ref-balance .rb-rows{display:flex;gap:8px;margin-bottom:12px}
.ref-balance .rb-cell{flex:1;background:var(--bg);border-radius:10px;padding:9px 8px;text-align:center}
.ref-balance .rb-cell b{display:block;font-size:14px;color:var(--navy)}
.ref-balance .rb-cell span{display:block;font-size:11px;color:var(--text-3);margin-top:2px}
.ref-balance .rb-btn{width:100%}
.ref-wd-empty,.ref-src-empty,.ref-team-empty{padding:16px 12px;text-align:center;font-size:12.5px;color:var(--text-3)}

.ref-chans{display:flex;flex-wrap:wrap;gap:8px;margin:8px 16px 0}
.ref-chan{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--navy);background:#fff;
  border:1px solid var(--line);border-radius:20px;padding:7px 12px}
.ref-chan:active{background:#F4F7FC}
.ref-chan i{font-style:normal;font-size:13px}
.ref-chan em{font-style:normal;color:#1B4F9C;font-weight:700;font-size:11.5px}

.ref-src-row{display:flex;align-items:center;gap:10px;padding:11px 12px;background:var(--card);border-radius:10px;
  margin-bottom:7px;font-size:12.5px;box-shadow:var(--shadow)}
.ref-src-row .rs-name{flex:1;min-width:0;color:var(--navy);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ref-src-row .rs-meta{flex:none;color:var(--text-3);font-size:11.5px}
.ref-src-row .rs-amt{flex:none;font-weight:800;color:var(--accent);font-size:13px;min-width:56px;text-align:right}
.wd-status{font-size:11px;border-radius:6px;padding:2px 7px;flex:none}
.wd-status.pending{color:#B4831B;background:#FDF4E3}
.wd-status.paid{color:var(--green);background:rgba(24,160,88,.12)}
.wd-status.rejected{color:#B4483C;background:#FDECEA}

/* 提现表单 */
.wd-form{display:flex;flex-direction:column;gap:10px;margin:12px 0 4px}
.wd-form label{display:flex;flex-direction:column;gap:5px;font-size:12.5px;color:var(--text-2)}
.wd-form input,.wd-form select{width:100%;padding:10px 12px;border:1px solid #E0E7F1;border-radius:10px;
  font-size:14px;background:#fff;color:var(--text-1)}
.wd-form input:focus,.wd-form select:focus{outline:none;border-color:var(--navy-2)}
.ref-from{font-style:normal;font-size:11px;color:var(--text-3);background:#F1F4F9;border-radius:5px;
  padding:1px 6px;margin-left:6px;white-space:nowrap}

/* 推广中心 · 分层成员明细 */
.ref-lvh{display:flex;align-items:center;justify-content:space-between;margin:14px 0 6px}
.ref-lvh b{font-size:13px;color:var(--navy)}
.ref-lvh span{font-size:11.5px;color:var(--text-3)}
.ref-mem{background:var(--card);border-radius:11px;padding:11px 12px;margin-bottom:7px;box-shadow:var(--shadow)}
.ref-mem .rm-top{display:flex;align-items:center;gap:7px;margin-bottom:6px}
.ref-mem .rm-top b{font-size:14px;color:var(--navy);letter-spacing:1px}
.ref-mem .rm-plan{flex:none;font-size:11px;color:var(--text-3);background:#F1F4F9;border-radius:6px;padding:2px 7px;margin-left:auto}
.ref-mem .rm-plan.ok{color:var(--green);background:rgba(24,160,88,.12)}
.ref-mem .rm-bot{display:flex;align-items:center;gap:10px;font-size:11.5px;color:var(--text-3)}
.ref-mem .rm-bot b{margin-left:auto;font-size:13.5px;color:var(--accent)}
.rb-hint{font-size:11px;color:var(--text-3);margin-top:9px;line-height:1.5}

/* ---------------- 填空题：横线 + 字格 ---------------- */
#fillWrap{display:block}
.fill-strip{display:flex;flex-wrap:wrap;gap:8px;min-height:54px;align-items:flex-end;padding:2px 2px 8px;
  border-bottom:2px solid var(--navy)}
.fill-cell{width:38px;height:46px;border:1.5px solid var(--line);border-radius:9px;background:#fff;
  display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:600;color:var(--navy)}
.fill-cell.ph{border-style:dashed;border-color:#DCE4EF;background:#FAFCFF}
.fill-cell.cur{border-color:var(--navy-2);box-shadow:0 0 0 3px rgba(27,79,156,.10)}
.fill-line{display:flex;justify-content:flex-end;margin:6px 2px 10px;font-size:11px;color:var(--text-3)}
.fill-input{width:100%;padding:11px 13px;border:1.5px solid var(--line);border-radius:12px;outline:none;
  font-size:15px;letter-spacing:1px;background:#fff}
.fill-input:focus{border-color:var(--navy-2)}
.fill-input:disabled{background:#F6F8FB;color:var(--text-2)}
.fill-ops{display:flex;align-items:center;gap:8px;margin-top:9px}
.fill-ops .mini-btn{background:#EEF4FD;color:#1B4F9C;border:1px solid #D8E4F6;border-radius:8px;
  padding:6px 12px;font-size:12.5px;white-space:nowrap}
.fill-ops .mini-btn:active{background:#DFEAFB}
.fill-tip{font-size:11px;color:var(--text-3);margin-left:auto}

/* 题型筛选（练习方式弹窗里） */
.qt-row{display:flex;flex-wrap:wrap;gap:7px;margin-top:13px;justify-content:center;
  padding-top:12px;border-top:1px dashed var(--line)}
.qt-row .chip{font-size:12px;padding:6px 11px;background:var(--bg)}

/* ---------------- 分享 ---------------- */
.share-tip{font-size:12.5px;color:var(--text-3);margin:10px 0 6px}
.share-text{width:100%;min-height:92px;padding:11px 12px;border:1.5px solid var(--line);border-radius:12px;
  font-size:13.5px;line-height:1.6;resize:vertical;outline:none;background:#fff;color:var(--text-1)}
.share-text:focus{border-color:var(--navy-2)}
.share-ch{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin-top:12px}
.share-ch button{display:flex;align-items:center;justify-content:center;gap:6px;padding:12px 8px;border-radius:12px;
  font-size:13px;font-weight:600;background:var(--bg);color:var(--navy);border:1px solid var(--line)}
.share-ch button:active{transform:scale(.98)}
.share-ch button.primary{background:var(--navy);color:#fff;border-color:var(--navy)}
.share-poster{width:100%;border-radius:12px;box-shadow:var(--shadow-2);margin-top:10px}
/* 答题页的分享入口：写明白「分享本题，向外求助」（免费/付费都有） */
.quiz-share-btn{flex:none;font-size:11.5px;font-weight:700;color:var(--navy);background:#EEF4FD;
  border:1px solid #D8E4F6;border-radius:20px;padding:6px 10px;white-space:nowrap;max-width:46vw;
  overflow:hidden;text-overflow:ellipsis}
.quiz-share-btn:active{background:#DFEAFB}
.share-help-bar{display:block;width:calc(100% - 36px);margin:0 18px 16px;padding:12px;
  font-size:13px;font-weight:700;color:#1B4F9C;background:#F2F7FE;border:1px dashed #C7DBF5;
  border-radius:12px;text-align:center}
.share-help-bar:active{background:#E4EEFC}

/* 被邀请落地 */
.iv-q{background:var(--bg);border-radius:12px;padding:14px;margin:6px 0 14px}
.iv-sub{font-size:11.5px;color:var(--text-3);margin-bottom:6px}
.iv-stem{font-size:15px;line-height:1.65;color:var(--text-1)}
.iv-opt{font-size:13.5px;color:var(--text-2);margin-top:7px;padding-left:2px}
.iv-exp{font-size:13.5px;line-height:1.7;color:var(--text-2);background:#F7F9FC;border-radius:10px;padding:12px;margin-bottom:12px}
.qt-row .chip.off{opacity:.42;text-decoration:line-through}

/* 上传题库：AI 分类确认 */
.mb-cat{display:flex;align-items:center;gap:8px;margin-top:10px;flex-wrap:wrap}
.mb-cat-label{font-size:12.5px;font-weight:700;color:var(--navy)}
.mb-cat select{padding:7px 10px;border:1.5px solid var(--line);border-radius:9px;font-size:13px;background:#fff;color:var(--text-1)}
.mb-cat-tip{font-size:11.5px;color:var(--text-3)}

/* ---------------- 积分 / 闯关 ---------------- */
.points-bar{display:flex;align-items:center;gap:10px;margin:12px 18px 0;padding:11px 14px;border-radius:12px;
  background:linear-gradient(120deg,#FFF7E8,#FFFDF7);border:1px solid #F3DFB8}
.points-bar .pb-ico{font-size:18px}
.points-bar b{font-size:17px;color:#B4831B}
.points-bar span{font-size:12px;color:var(--text-3)}
.points-bar button{margin-left:auto;flex:none;font-size:12px;font-weight:700;color:#8A6100;background:#FFF0D6;
  border:1px solid #F0D9A8;border-radius:20px;padding:6px 12px}
.pt-hero{margin:14px 16px 0;padding:18px;border-radius:var(--radius);background:linear-gradient(120deg,#0F2E5C,#1B4F9C);color:#fff}
.pt-hero .ph-label{font-size:12px;color:rgba(255,255,255,.72)}
.pt-hero .ph-points{font-size:34px;font-weight:900;letter-spacing:1px;margin:2px 0 10px}
.pt-hero .ph-rows{display:flex;gap:8px}
.pt-hero .ph-cell{flex:1;background:rgba(255,255,255,.14);border-radius:10px;padding:8px;text-align:center}
.pt-hero .ph-cell b{display:block;font-size:14px}
.pt-hero .ph-cell span{display:block;font-size:11px;color:rgba(255,255,255,.72);margin-top:2px}
.pt-list{margin:8px 16px 0}
.pt-item{display:flex;align-items:center;gap:10px;background:var(--card);border-radius:12px;padding:12px 13px;
  margin-bottom:8px;box-shadow:var(--shadow)}
.pt-item .pi-txt{flex:1;min-width:0}
.pt-item .pi-txt b{display:block;font-size:13.5px;color:var(--navy)}
.pt-item .pi-txt span{display:block;font-size:11.5px;color:var(--text-3);margin-top:3px;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
.pt-item .pi-cost{flex:none;font-size:13px;font-weight:800;color:#B4831B}
.pt-item button{flex:none}
.pt-item .pt-done{font-size:11.5px;color:var(--green);background:rgba(24,160,88,.12);border-radius:8px;padding:4px 9px}
.pt-empty{padding:16px;text-align:center;font-size:12.5px;color:var(--text-3)}

/* 闯关关卡列表 */
.st-row{display:flex;align-items:center;gap:11px;padding:12px 13px;border-radius:12px;background:var(--card);
  margin-bottom:9px;box-shadow:var(--shadow)}
.st-row .st-no{width:38px;height:38px;border-radius:11px;background:#EEF4FD;color:#1B4F9C;display:flex;
  align-items:center;justify-content:center;font-weight:800;font-size:15px;flex:none}
.st-row.done .st-no{background:#E7F6EE;color:var(--green)}
.st-row.lock .st-no{background:#F1F4F9;color:#B0BACB}
.st-row .st-txt{flex:1;min-width:0}
.st-row .st-txt b{display:block;font-size:14px;color:var(--navy)}
.st-row .st-txt span{display:block;font-size:11.5px;color:var(--text-3);margin-top:3px}
.st-row .st-btn{flex:none}
.q-boss{display:inline-block;font-size:11px;font-weight:800;color:#fff;background:#B4483C;border-radius:6px;
  padding:2px 7px;margin-right:6px}
.pt-toast{position:fixed;left:50%;transform:translateX(-50%);bottom:96px;background:rgba(15,46,92,.92);color:#fff;
  font-size:13px;padding:8px 14px;border-radius:20px;z-index:60;opacity:0;transition:opacity .18s}
.pt-toast.show{opacity:1}

/* ---------- 每日一练（打卡）卡片 ---------- */
.daily-card{display:flex;align-items:center;gap:10px;width:calc(100% - 32px);margin:12px 16px 0;
  padding:13px 15px;border:1px solid #D7E5F8;border-radius:14px;background:linear-gradient(120deg,#F3F8FF,#EAF2FE);
  text-align:left;-webkit-tap-highlight-color:transparent}
.daily-card:active{background:#E2EDFC}
.daily-card.done{background:linear-gradient(120deg,#F1FBF5,#E7F7EE);border-color:#C9E9D7}
.daily-card .dc-left{flex:1;min-width:0}
.daily-card .dc-t{display:flex;align-items:center;gap:7px}
.daily-card .dc-t b{font-size:14.5px;color:var(--navy)}
.daily-card .dc-issue{font-size:11px;color:#1B4F9C;background:rgba(27,79,156,.10);border-radius:999px;padding:2px 8px}
.daily-card .dc-s{font-size:11.5px;color:var(--text-3);margin-top:4px}
.daily-card .dc-right{flex:none;font-size:12.5px;font-weight:800;color:#1B4F9C;white-space:nowrap}
.daily-card.done .dc-right{color:var(--green)}

/* ---------- 学员共享题库卡片 ---------- */
.sh-card{background:var(--card);border-radius:13px;padding:13px;margin-bottom:9px;box-shadow:var(--shadow);
  position:relative}
.sh-card .sh-hd{display:flex;align-items:flex-start;gap:8px}
.sh-card .sh-hd b{flex:1;font-size:14px;color:var(--navy);line-height:1.4}
.sh-card .sh-price{flex:none;font-size:14px;font-weight:900;color:#C8342B}
.sh-card .sh-price.free{color:var(--green)}
.sh-card .sh-meta{font-size:11.5px;color:var(--text-3);margin-top:6px;line-height:1.7}
.sh-card .sh-owner{display:inline-block;font-size:11px;color:#1B4F9C;background:rgba(27,79,156,.09);
  border-radius:999px;padding:2px 8px;margin-right:6px}
.sh-card .sh-btns{display:flex;gap:8px;margin-top:10px}
.sh-card .sh-btns .btn{flex:1}
.sh-card .sh-tag{display:inline-block;font-size:11px;border-radius:7px;padding:2px 7px;margin-left:4px}
.sh-card .sh-tag.bought{background:rgba(24,160,88,.12);color:var(--green)}
.sh-card .sh-tag.mine{background:rgba(27,79,156,.12);color:#1B4F9C}
.sh-card .sh-tag.free{background:rgba(24,160,88,.10);color:var(--green)}
.sh-note{font-size:11px;color:var(--text-3);line-height:1.75;margin:6px 16px 0}

/* ---------- 上传题库 · 收益提示条 ---------- */
.earn-tip{margin:12px 16px 0;padding:13px 14px;border-radius:13px;background:linear-gradient(120deg,#FFF8EC,#FFF2DC);
  border:1px solid #F3DFB8}
.earn-tip b{display:block;font-size:13.5px;color:#8A5A00}
.earn-tip p{font-size:11.5px;color:#9A7B3A;margin-top:5px;line-height:1.7}
.earn-tip .et-btn{margin-top:9px;width:100%;padding:10px;border:0;border-radius:10px;background:#E8A33D;color:#fff;
  font-size:13.5px;font-weight:800}
.earn-tip .et-btn:active{background:#D4922F}
.mine-bank{background:var(--card);border-radius:12px;padding:12px 13px;margin-bottom:8px;box-shadow:var(--shadow)}
.mine-bank .mb-hd{display:flex;align-items:center;gap:8px}
.mine-bank .mb-hd b{flex:1;font-size:13.5px;color:var(--navy)}
.mine-bank .mb-stat{font-size:11.5px;color:var(--text-3);margin-top:5px}
.mine-bank .mb-stat em{font-style:normal;color:#C8342B;font-weight:800}

/* ---------- 分享卡片预览（发到微信长什么样） ---------- */
.sh-pv{margin:12px 0 4px;background:#F6F9FE;border:1px solid #E3EBF6;border-radius:12px;padding:10px}
.sh-pv-hd{font-size:11.5px;color:var(--text-3);margin-bottom:8px}
.sh-pv-card{display:flex;gap:10px;background:#fff;border-radius:10px;padding:9px;
  box-shadow:0 2px 8px rgba(15,46,92,.07)}
.sh-pv-card img{width:66px;height:66px;border-radius:7px;object-fit:cover;flex:none}
.sh-pv-tx{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:3px}
.sh-pv-tx b{font-size:13px;color:var(--navy);line-height:1.35;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.sh-pv-tx span{font-size:11px;color:var(--text-3);line-height:1.45;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.sh-pv-tx em{font-style:normal;font-size:10.5px;color:#9AA7BA}

/* ---------- 分享落地：注册页顶部邀请横幅 ---------- */
.invite-banner{margin:12px 16px 0;padding:12px 14px;border-radius:13px;
  background:linear-gradient(120deg,#FFF7E8,#FFF1D9);border:1px solid #F2DDB4}
.invite-banner b{display:block;font-size:13.5px;color:#8A5A00}
.invite-banner span{display:block;margin-top:4px;font-size:11.5px;color:#9A7B3A;line-height:1.6}

/* ---------- 支付面板：微信内「长按识别」大字提示 ---------- */
.pay-hint{margin:2px 0 12px;padding:10px 12px;font-size:13px;font-weight:800;line-height:1.55;
  color:#1B4F9C;background:#EEF4FD;border:1px dashed #C7DBF5;border-radius:11px;text-align:center}

/* 每日一练：按科目选择（学员自己的科目默认高亮） */
.sub-chips{display:flex;flex-wrap:wrap;gap:9px;margin:8px 0 2px}
.sub-chip{flex:1 1 46%;padding:13px 8px;border:1.5px solid #E4EBF5;border-radius:12px;background:#fff;
  font-size:14.5px;font-weight:600;color:#16233A;position:relative;line-height:1.4;cursor:pointer}
.sub-chip.on{border-color:#0F2E5C;background:#EAF1FF;color:#0F2E5C}
.sub-chip i{display:block;font-style:normal;font-size:10.5px;color:#8A97A8;font-weight:400;margin-top:2px}
.sub-chip.on i{color:#4B6FA5}
