/* ============ 作答 / 考试 / 学习报告 ============ */

/* ---------- 章节训练：作答与批改 ---------- */
.q-kind{
  display:inline-block;font-size:11px;font-weight:700;color:var(--accent);
  background:var(--accent-soft);padding:2px 8px;border-radius:6px;margin-bottom:7px;
}
.q-card.answered{background:#fbfdff}

.q-opts{display:grid;gap:6px;margin-top:9px}
.q-opt{
  display:flex;gap:8px;align-items:flex-start;text-align:left;line-height:1.6;
  padding:9px 12px;border:1px solid var(--line);border-radius:10px;
  background:#fff;font-size:13.5px;color:var(--ink-2);transition:.15s;
}
.q-opt b{flex:0 0 auto;color:var(--accent);font-weight:700}
.q-opt:hover{border-color:var(--accent-2);background:var(--accent-soft)}
.q-opt.right{border-color:#16a34a;background:#f0fdf4;color:#15803d}
.q-opt.right b{color:#16a34a}
.q-opt.wrong{border-color:#ef4444;background:#fef2f2;color:#b91c1c}
.q-opt.wrong b{color:#ef4444}
.q-card.answered .q-opt{pointer-events:none}

.q-input{
  width:100%;margin-top:9px;padding:10px 12px;border:1px solid var(--line);
  border-radius:10px;font-size:14px;font-family:inherit;color:var(--ink);
  background:#fff;outline:none;transition:.15s;
}
.q-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.q-textarea{min-height:96px;line-height:1.7;resize:vertical}
.q-actions{display:flex;gap:8px;margin-top:9px}
.btn-primary.sm{padding:7px 16px;font-size:13px;border-radius:9px}

.q-result{
  margin-top:11px;border-radius:11px;padding:12px 14px;
  border:1px solid var(--line);background:#fbfcfe;
}
.q-result.ok{border-color:#bbf7d0;background:#f6fef9}
.q-result.part{border-color:#fde68a;background:#fffdf5}
.q-result.bad{border-color:#fecaca;background:#fff7f7}
.qr-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.qr-verdict{font-size:13.5px;font-weight:800}
.q-result.ok .qr-verdict{color:#15803d}
.q-result.part .qr-verdict{color:#b45309}
.q-result.bad .qr-verdict{color:#b91c1c}
.qr-rate{font-size:12px;color:var(--muted);margin-left:auto}
.qr-row{font-size:13px;line-height:1.75;color:var(--ink-2);margin-top:6px}
.qr-row b{
  display:inline-block;font-size:11.5px;color:var(--accent);background:var(--accent-soft);
  padding:1px 7px;border-radius:5px;margin-right:7px;font-weight:700;vertical-align:1px;
}
.qr-btns{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.qr-btn{
  font-size:12px;padding:6px 12px;border-radius:8px;border:1px solid var(--line);
  background:#fff;color:var(--ink-2);font-weight:600;
}
.qr-btn:hover{border-color:var(--accent-2);color:var(--accent)}
.qr-btn.ok{border-color:#bbf7d0;color:#15803d;background:#f0fdf4}

/* ---------- 考试首页 ---------- */
.exam-hero{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:20px;box-shadow:var(--shadow);
}
.exam-hero h2{font-size:20px}
.exam-hero>p{font-size:13.5px;color:var(--muted);margin-top:7px;max-width:640px}
.exam-tabs{display:flex;gap:8px;margin-top:15px;flex-wrap:wrap}
.exam-tabs button{
  padding:8px 18px;border-radius:10px;border:1px solid var(--line);background:#fff;
  font-size:13.5px;font-weight:600;color:var(--ink-2);transition:.15s;
}
.exam-tabs button.on{background:var(--accent);border-color:var(--accent);color:#fff}

.exam-panel{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:16px 18px;margin-top:14px;box-shadow:var(--shadow);
}
.panel-title{font-size:14px;font-weight:700;margin-bottom:11px}
.panel-title .pt-sub{font-size:11.5px;color:var(--muted);font-weight:500;margin-left:6px}
.panel-tip{font-size:12.5px;color:var(--muted);margin:2px 0 12px;line-height:1.7}

.exam-ch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px}
.exam-ch{
  display:flex;align-items:center;gap:8px;padding:11px 13px;text-align:left;
  border:1px solid var(--line);border-radius:11px;background:#fff;transition:.15s;
}
.exam-ch:hover{border-color:var(--accent-2);background:var(--accent-soft)}
.ec-no{
  flex:0 0 auto;font-size:11.5px;font-weight:700;color:var(--accent);
  background:var(--accent-soft);padding:2px 7px;border-radius:6px;
}
.ec-title{
  flex:1;min-width:0;font-size:13.5px;font-weight:600;color:var(--ink-2);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.ec-score{flex:0 0 auto;font-size:12px;font-weight:700;color:var(--muted)}
.ec-score.good{color:#0f9d76}
.ec-score.mid{color:#d97706}
.ec-score.bad{color:#dc2626}

.mock-card{
  background:linear-gradient(135deg,#fffdf6,#fff);
  border:1px solid #f0e6cd;border-radius:14px;padding:18px;
}
.mock-card h3{font-size:16px}
.mock-list{margin:10px 0 16px;padding-left:19px;font-size:13px;color:var(--ink-2);line-height:2}
.btn-primary.big{padding:11px 26px;font-size:14.5px;border-radius:11px}

.hist-list{display:flex;flex-direction:column;gap:7px}
.hist-row,.exam-hist{
  display:flex;align-items:center;gap:10px;padding:9px 12px;
  background:#f8fafd;border-radius:9px;font-size:13px;
}
.hr-title,.eh-title{flex:1;min-width:0;color:var(--ink-2);font-weight:600;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hr-score,.eh-score{font-weight:800;font-size:14px}
.hr-score.good,.eh-score.good{color:#0f9d76}
.hr-score.mid,.eh-score.mid{color:#d97706}
.hr-score.bad,.eh-score.bad{color:#dc2626}
.hr-date,.eh-date{font-size:11.5px;color:var(--muted);flex:0 0 auto}
.eh-score span{font-size:11.5px;font-weight:600;color:var(--muted)}
.eh-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}

/* ---------- 答题页 ---------- */
.paper-head{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:15px 18px;box-shadow:var(--shadow);
}
.ph-left h2{font-size:17px}
.ph-left p{font-size:12.5px;color:var(--muted);margin-top:3px}
.ph-right{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.clock{
  font-family:ui-monospace,Consolas,monospace;font-size:17px;font-weight:700;
  color:var(--ink);background:#f1f5f9;padding:6px 12px;border-radius:9px;letter-spacing:.5px;
}
.clock.warn{color:#b91c1c;background:#fee2e2}

.paper-progress{height:4px;background:var(--line);border-radius:2px;margin:12px 0;overflow:hidden}
.paper-progress i{display:block;height:100%;background:var(--accent);transition:width .3s ease;border-radius:2px}

.paper-body{display:flex;flex-direction:column;gap:11px}
.ex-item{
  background:var(--card);border:1px solid var(--line);border-radius:14px;
  padding:15px 17px;box-shadow:0 1px 2px rgba(22,33,58,.03);
}
.ex-head{display:flex;align-items:center;gap:8px;margin-bottom:9px;flex-wrap:wrap}
.ex-no{
  width:24px;height:24px;border-radius:8px;background:var(--accent);color:#fff;
  font-size:12.5px;font-weight:700;display:flex;align-items:center;justify-content:center;
}
.ex-kind{
  font-size:11.5px;font-weight:700;color:var(--accent);
  background:var(--accent-soft);padding:2px 8px;border-radius:6px;
}
.ex-pt{font-size:11.5px;color:var(--muted);font-weight:600}
.ex-ch{font-size:11.5px;color:var(--muted);margin-left:auto}
.ex-q{font-size:14px;line-height:1.75;color:var(--ink);white-space:pre-wrap}

.ex-opts{display:grid;gap:7px;margin-top:10px}
.ex-opt{
  display:flex;gap:9px;align-items:flex-start;text-align:left;line-height:1.6;
  padding:10px 13px;border:1px solid var(--line);border-radius:10px;
  background:#fff;font-size:13.5px;color:var(--ink-2);transition:.15s;
}
.ex-opt b{flex:0 0 auto;color:var(--accent)}
.ex-opt:hover{border-color:var(--accent-2);background:var(--accent-soft)}
.ex-opt.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:600}

.ex-input{
  width:100%;margin-top:10px;padding:10px 13px;border:1px solid var(--line);
  border-radius:10px;font-size:14px;font-family:inherit;color:var(--ink);
  background:#fff;outline:none;transition:.15s;
}
.ex-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.ex-textarea{min-height:112px;line-height:1.75;resize:vertical}

.paper-foot{display:flex;gap:10px;justify-content:center;margin-top:20px;flex-wrap:wrap}

/* ---------- 成绩单 ---------- */
.result-card{
  display:flex;gap:22px;align-items:center;flex-wrap:wrap;
  background:var(--card);border:1px solid var(--line);border-left:5px solid var(--accent);
  border-radius:var(--radius);padding:20px 22px;box-shadow:var(--shadow);
}
.result-card.mid{border-left-color:#f59e0b}
.result-card.bad{border-left-color:#ef4444}
.rc-score{display:flex;align-items:baseline;gap:5px;flex:0 0 auto}
.rc-score b{font-size:46px;line-height:1;color:var(--accent);font-weight:800}
.result-card.mid .rc-score b{color:#d97706}
.result-card.bad .rc-score b{color:#dc2626}
.rc-score span{font-size:14px;color:var(--muted);font-weight:600}
.rc-meta{flex:1;min-width:200px}
.rc-meta h3{font-size:16px}
.rc-meta p{font-size:12.5px;color:var(--muted);margin-top:4px}
.kind-rows{display:flex;gap:14px;margin-top:9px;flex-wrap:wrap}
.kr{font-size:12.5px;color:var(--muted)}
.kr b{color:var(--ink);margin-left:5px}

.result-tip{
  margin-top:12px;font-size:12.5px;color:var(--muted);
  background:var(--accent-soft);border-radius:10px;padding:9px 13px;
}

.rs-list{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.rs-item{
  background:var(--card);border:1px solid var(--line);border-left:4px solid var(--line);
  border-radius:12px;padding:13px 15px;
}
.rs-item.ok{border-left-color:#16a34a}
.rs-item.part{border-left-color:#f59e0b}
.rs-item.bad{border-left-color:#ef4444}
.rs-head{display:flex;align-items:center;gap:9px;margin-bottom:7px;flex-wrap:wrap}
.rs-no{
  width:22px;height:22px;border-radius:7px;background:#f1f5f9;color:var(--ink-2);
  font-size:11.5px;font-weight:700;display:flex;align-items:center;justify-content:center;
}
.rs-item.ok .rs-no{background:#dcfce7;color:#15803d}
.rs-item.part .rs-no{background:#fef3c7;color:#b45309}
.rs-item.bad .rs-no{background:#fee2e2;color:#b91c1c}
.rs-mark{font-weight:800;font-size:14px}
.rs-item.ok .rs-mark{color:#16a34a}
.rs-item.part .rs-mark{color:#f59e0b}
.rs-item.bad .rs-mark{color:#ef4444}
.rs-score{font-size:12px;color:var(--muted);font-weight:600}
.rs-ch{font-size:11.5px;color:var(--muted);margin-left:auto}
.rs-q{font-size:13.5px;line-height:1.7;color:var(--ink);white-space:pre-wrap}
.rs-opts{display:grid;gap:5px;margin-top:8px}
.rs-opt{
  display:flex;gap:8px;font-size:13px;line-height:1.6;color:var(--ink-2);
  padding:7px 11px;border-radius:8px;background:#f8fafd;
}
.rs-opt b{flex:0 0 auto;color:var(--muted)}
.rs-opt.right{background:#f0fdf4;color:#15803d}
.rs-opt.right b{color:#16a34a}
.rs-opt.wrong{background:#fef2f2;color:#b91c1c}
.rs-opt.wrong b{color:#ef4444}
.rs-ans{font-size:13px;line-height:1.7;color:var(--ink-2);margin-top:7px;
  background:#f8fafd;border-radius:8px;padding:8px 11px}
.rs-ans.right{background:#f0fdf4;color:#15803d}
.rs-ans b,.rs-exp b{
  display:inline-block;font-size:11px;color:var(--accent);background:#fff;
  padding:1px 7px;border-radius:5px;margin-right:7px;font-weight:700;
}
.rs-exp{font-size:12.5px;line-height:1.7;color:var(--muted);margin-top:7px;padding-left:2px}
.rs-self{font-size:11.5px;color:var(--muted);margin-top:6px}

/* ---------- 学习报告 ---------- */
.rep-hero{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:20px;box-shadow:var(--shadow);
}
.rep-hero h2{font-size:20px}
.rep-hero>p{font-size:13.5px;color:var(--muted);margin-top:7px}

.rep-stats{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(108px,1fr));
  gap:9px;margin-top:15px;
}
.rs-card{
  background:#f8fafd;border:1px solid var(--line-2);border-radius:12px;
  padding:12px 10px;text-align:center;
}
.rs-card b{display:block;font-size:20px;color:var(--accent);line-height:1.3}
.rs-card span{font-size:11.5px;color:var(--muted)}

.rep-tabs{display:flex;gap:8px;margin-top:15px;flex-wrap:wrap}
.rep-tabs button{
  padding:7px 15px;border-radius:10px;border:1px solid var(--line);background:#fff;
  font-size:13px;font-weight:600;color:var(--ink-2);
}
.rep-tabs button.on{background:var(--accent);border-color:var(--accent);color:#fff}

.rep-panel{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:16px 18px;margin-top:14px;box-shadow:var(--shadow);
}
.rep-empty{font-size:13px;color:var(--muted);line-height:1.8;padding:8px 0}

.rep-ch-list{display:flex;flex-direction:column;gap:7px}
.rep-ch{display:flex;align-items:center;gap:10px}
.rc-check{
  flex:0 0 auto;width:24px;height:24px;border-radius:8px;border:1.5px solid var(--line);
  background:#fff;color:transparent;font-size:12px;font-weight:800;transition:.15s;
}
.rc-check.on{background:var(--accent);border-color:var(--accent);color:#fff}
.rc-main{flex:1;min-width:0}
.rc-line{display:flex;align-items:center;gap:8px}
.rc-no{font-size:11px;color:var(--muted);font-weight:700;flex:0 0 auto}
.rc-title{font-size:13.5px;color:var(--ink-2);font-weight:600;flex:1;min-width:0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rc-rate{font-size:11.5px;font-weight:700;color:var(--muted);flex:0 0 auto}
.rc-rate.good{color:#0f9d76}
.rc-rate.mid{color:#d97706}
.rc-rate.bad{color:#dc2626}
.rc-bar{height:4px;background:var(--line-2);border-radius:2px;margin-top:5px;overflow:hidden}
.rc-bar i{display:block;height:100%;border-radius:2px;background:var(--muted);transition:width .4s}
.rc-bar i.good{background:#0f9d76}
.rc-bar i.mid{background:#f59e0b}
.rc-bar i.bad{background:#ef4444}
.rc-go{
  flex:0 0 auto;font-size:12px;color:var(--accent);font-weight:600;
  padding:5px 9px;border-radius:8px;background:var(--accent-soft);
}

.weak-list{display:flex;flex-direction:column;gap:7px}
.weak-row{display:flex;align-items:center;gap:9px;padding:9px 12px;background:#fff7f7;border-radius:9px}
.wk-rate{font-size:12px;font-weight:800;color:#dc2626;flex:0 0 auto;min-width:38px}
.wk-name{flex:1;min-width:0;font-size:13px;color:var(--ink-2);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wk-n{font-size:11.5px;color:var(--muted);flex:0 0 auto}
.wk-go{flex:0 0 auto;font-size:11.5px;color:var(--accent);font-weight:600;
  background:var(--accent-soft);padding:4px 9px;border-radius:7px}

.wrong-list{display:flex;flex-direction:column;gap:9px}
.wrong-card{
  border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:#fff;
}
.wc-head{display:flex;align-items:center;gap:8px;cursor:pointer;flex-wrap:wrap}
.wc-tag{font-size:11px;font-weight:700;color:#b91c1c;background:#fee2e2;padding:2px 7px;border-radius:6px}
.wc-ch{font-size:11.5px;color:var(--muted);flex:1;min-width:0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wc-arrow{font-size:11.5px;color:var(--accent);font-weight:600}
.wc-q{font-size:13.5px;line-height:1.7;color:var(--ink);margin-top:7px;white-space:pre-wrap}
.wc-body{margin-top:10px;padding-top:10px;border-top:1px dashed var(--line)}
.wc-ans{font-size:13px;line-height:1.7;color:var(--ink-2);background:#f8fafd;
  border-radius:8px;padding:8px 11px;margin-bottom:7px}
.wc-ans.right{background:#f0fdf4;color:#15803d}
.wc-ans b,.wc-exp b{display:inline-block;font-size:11px;color:var(--accent);
  background:#fff;padding:1px 7px;border-radius:5px;margin-right:7px;font-weight:700}
.wc-exp{font-size:12.5px;line-height:1.7;color:var(--muted);margin-bottom:9px}
.wc-btns{display:flex;gap:8px;flex-wrap:wrap}
.wc-btns .btn-ghost{font-size:12px;padding:6px 12px}

.rep-actions{display:flex;gap:10px;flex-wrap:wrap}

/* ---------- 手机适配 ---------- */
@media (max-width:640px){
  .exam-hero,.rep-hero,.exam-panel,.rep-panel{padding:14px}
  .exam-hero h2,.rep-hero h2{font-size:17px}
  .exam-ch-grid{grid-template-columns:1fr}
  .result-card{gap:14px;padding:16px}
  .rc-score b{font-size:38px}
  .paper-head{flex-direction:column;align-items:flex-start;gap:10px}
  .ph-right{width:100%;justify-content:space-between}
  .ex-item{padding:13px 14px}
  .ex-ch{display:none}
  .rep-stats{grid-template-columns:repeat(3,1fr)}
  .rs-card b{font-size:17px}
  .rep-ch .rc-go{display:none}
  .weak-row{flex-wrap:wrap}
  .wk-name{flex:1 1 100%;order:2}
}
