:root{
  --ast-brand:#001ae6;
  --ast-brand-2:#0a2bd6;
  --ast-soft:#f4f6ff;
  --ast-ink:#1c2333;
  --ast-muted:#6b7280;
  --ast-line:#e6e9f2;
  --ast-ok:#1f9d55;
  --ast-bad:#e23b3b;
  --ast-warn:#e08a00;
}
.ast-guidebar{
  display:flex;gap:10px;align-items:center;
  background:linear-gradient(90deg,#eef2ff,#f7f9ff);
  border:1px solid var(--ast-line);
  border-left:4px solid var(--ast-brand);
  border-radius:10px;padding:12px 16px;margin-bottom:18px;
  color:var(--ast-ink);font-size:14px;
}
.ast-guidebar span{font-size:20px;}
.ast-toolbar{margin-bottom:16px;}
.ast-tabs{display:inline-flex;gap:6px;background:#fff;border:1px solid var(--ast-line);border-radius:999px;padding:5px;}
.ast-tab{
  border:0;background:transparent;color:var(--ast-muted);
  font-size:14px;font-weight:600;padding:8px 16px;border-radius:999px;cursor:pointer;
  display:inline-flex;align-items:center;gap:6px;transition:.15s;
}
.ast-tab.active{background:var(--ast-brand);color:#fff;}
.ast-badge{background:var(--ast-bad);color:#fff;font-size:11px;line-height:1;padding:3px 7px;border-radius:999px;min-width:18px;text-align:center;}
.ast-tab.active .ast-badge{background:rgba(255,255,255,.25);}
.ast-card{
  background:#fff;border:1px solid var(--ast-line);border-radius:16px;
  padding:26px;margin-bottom:18px;box-shadow:0 6px 24px rgba(20,40,120,.05);
}
.ast-hidden{display:none !important;}
.ast-h2{font-size:20px;margin:0 0 16px;color:var(--ast-ink);}
.ast-panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;}
.ast-panel-head .ast-h2{margin:0;}
.ast-muted{color:var(--ast-muted);font-size:14px;}

/* form */
.ast-form{display:flex;flex-direction:column;gap:18px;max-width:760px;}
.ast-field{display:flex;flex-direction:column;gap:8px;}
.ast-label{font-size:14px;font-weight:600;color:var(--ast-ink);}
.ast-input{
  width:100%;padding:11px 14px;border:1px solid var(--ast-line);border-radius:10px;
  font-size:15px;color:var(--ast-ink);background:#fff;outline:none;transition:.15s;
}
.ast-input:focus{border-color:var(--ast-brand);box-shadow:0 0 0 3px rgba(0,26,230,.12);}
.ast-input-sm{width:140px;}
.ast-radio-group{display:flex;flex-wrap:wrap;gap:10px;}
.ast-radio{
  display:inline-flex;align-items:center;gap:8px;cursor:pointer;
  border:1px solid var(--ast-line);border-radius:10px;padding:10px 14px;font-size:14px;
  background:#fff;transition:.15s;
}
.ast-radio:has(input:checked){border-color:var(--ast-brand);background:var(--ast-soft);color:var(--ast-brand);font-weight:600;}
.ast-radio input{accent-color:var(--ast-brand);}
.ast-cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;}
.ast-cat{
  display:flex;justify-content:space-between;align-items:center;gap:8px;cursor:pointer;
  border:1px solid var(--ast-line);border-radius:10px;padding:9px 12px;font-size:14px;background:#fff;transition:.15s;
}
.ast-cat:has(input:checked){border-color:var(--ast-brand);background:var(--ast-soft);}
.ast-cat input{accent-color:var(--ast-brand);}
.ast-cat .cnt{color:var(--ast-muted);font-size:12px;}
.ast-start{margin-top:6px;align-self:flex-start;}
.ast-loading{color:var(--ast-muted);font-size:13px;margin:6px 0 0;}

/* quiz */
.ast-quiz-head{margin-bottom:16px;}
.ast-progress{display:flex;justify-content:space-between;align-items:center;font-size:14px;color:var(--ast-ink);font-weight:600;margin-bottom:8px;}
.ast-qmeta{color:var(--ast-muted);font-weight:500;display:flex;gap:6px;}
.ast-progressbar{height:8px;background:var(--ast-line);border-radius:999px;overflow:hidden;}
.ast-progressbar-fill{height:100%;width:0;background:linear-gradient(90deg,var(--ast-brand),var(--ast-brand-2));transition:width .25s;}
.ast-q{font-size:18px;line-height:1.6;color:var(--ast-ink);margin:6px 0 18px;font-weight:600;}
.ast-q .ast-qno{color:var(--ast-brand);margin-right:6px;}
.ast-options{display:flex;flex-direction:column;gap:10px;}
.ast-opt{
  display:flex;gap:12px;align-items:flex-start;cursor:pointer;
  border:1px solid var(--ast-line);border-radius:12px;padding:13px 15px;font-size:15px;color:var(--ast-ink);
  transition:.15s;background:#fff;
}
.ast-opt:hover{border-color:var(--ast-brand);}
.ast-opt .mark{
  flex:0 0 26px;height:26px;border-radius:50%;border:1px solid var(--ast-line);
  display:flex;align-items:center;justify-content:center;font-weight:700;color:var(--ast-muted);font-size:14px;
}
.ast-opt.selected{border-color:var(--ast-brand);background:var(--ast-soft);}
.ast-opt.selected .mark{background:var(--ast-brand);color:#fff;border-color:var(--ast-brand);}
.ast-opt.correct{border-color:var(--ast-ok);background:#eafaef;}
.ast-opt.correct .mark{background:var(--ast-ok);color:#fff;border-color:var(--ast-ok);}
.ast-opt.wrong{border-color:var(--ast-bad);background:#fdeaea;}
.ast-opt.wrong .mark{background:var(--ast-bad);color:#fff;border-color:var(--ast-bad);}
.ast-opt.dim{opacity:.55;}
.ast-quiz-nav{display:flex;gap:10px;justify-content:space-between;margin-top:20px;}

/* score */
.ast-score-wrap{display:flex;flex-wrap:wrap;gap:20px;align-items:center;margin-bottom:20px;}
.ast-score-ring{
  --p:0;width:140px;height:140px;border-radius:50%;flex:0 0 140px;
  background:conic-gradient(var(--ast-brand) calc(var(--p)*1%), #eef0f7 0);
  display:flex;align-items:center;justify-content:center;position:relative;
}
.ast-score-ring::after{content:"";position:absolute;inset:12px;background:#fff;border-radius:50%;}
.ast-score-ring .inner{position:relative;text-align:center;}
.ast-score-ring .num{font-size:30px;font-weight:800;color:var(--ast-ink);line-height:1;}
.ast-score-ring .lbl{font-size:12px;color:var(--ast-muted);}
.ast-score-info{flex:1;min-width:220px;}
.ast-score-info .row{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:8px;}
.ast-score-info .stat{font-size:14px;color:var(--ast-ink);}
.ast-score-info .stat b{font-size:20px;margin-right:4px;}
.ast-pass{display:inline-block;padding:5px 14px;border-radius:999px;font-weight:700;font-size:14px;}
.ast-pass.ok{background:#eafaef;color:var(--ast-ok);}
.ast-pass.no{background:#fdeaea;color:var(--ast-bad);}

.ast-cat-breakdown{margin:8px 0 18px;display:flex;flex-direction:column;gap:8px;}
.ast-cat-row{display:grid;grid-template-columns:160px 1fr 70px;gap:10px;align-items:center;font-size:13px;color:var(--ast-ink);}
.ast-cat-bar{height:10px;background:var(--ast-line);border-radius:999px;overflow:hidden;}
.ast-cat-bar > i{display:block;height:100%;background:var(--ast-brand);}
.ast-cat-row .pct{text-align:right;color:var(--ast-muted);}

.ast-result-actions{display:flex;flex-wrap:wrap;gap:10px;margin:6px 0 20px;}

.ast-detail{display:flex;flex-direction:column;gap:14px;}
.ast-dq{border:1px solid var(--ast-line);border-radius:12px;padding:14px 16px;}
.ast-dq.ok{border-left:4px solid var(--ast-ok);}
.ast-dq.no{border-left:4px solid var(--ast-bad);}
.ast-dq .q{font-weight:600;color:var(--ast-ink);margin-bottom:8px;font-size:15px;}
.ast-dq .ans{font-size:14px;margin:3px 0;color:var(--ast-ink);}
.ast-dq .ans .tag{font-weight:700;margin-right:6px;}
.ast-dq .ans.you.ok .tag{color:var(--ast-ok);}
.ast-dq .ans.you.no .tag{color:var(--ast-bad);}
.ast-dq .ans.right .tag{color:var(--ast-ok);}
.ast-dq .exp{font-size:13px;color:var(--ast-muted);margin-top:8px;background:var(--ast-soft);padding:8px 10px;border-radius:8px;}

/* wrong / history lists */
.ast-wrong-list,.ast-history-list{display:flex;flex-direction:column;gap:12px;}
.ast-witem{border:1px solid var(--ast-line);border-left:4px solid var(--ast-bad);border-radius:12px;padding:13px 15px;}
.ast-witem .q{font-weight:600;color:var(--ast-ink);margin-bottom:6px;font-size:15px;}
.ast-witem .a{font-size:13px;color:var(--ast-muted);}
.ast-witem .a b{color:var(--ast-ink);}
.ast-hitem{display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid var(--ast-line);border-radius:12px;padding:13px 15px;font-size:14px;}
.ast-hitem .meta{color:var(--ast-muted);font-size:12px;}
.ast-hitem .sc{font-weight:800;font-size:18px;color:var(--ast-brand);}

/* transcript (print) */
.ast-transcript{display:none;padding:0;}
.ast-transcript.show{display:block;}
@media print{
  body *{visibility:hidden;}
  #transcript,#transcript *{visibility:visible;}
  #transcript{position:absolute;left:0;top:0;width:100%;padding:24px;background:#fff;}
  .ast-transcript .noprint{display:none !important;}
  @page{margin:16mm;}
}
.ast-transcript .tp{font-family:"Microsoft YaHei","PingFang SC",sans-serif;color:#1c2333;max-width:820px;margin:0 auto;}
.ast-transcript .tp-head{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:3px solid var(--ast-brand);padding-bottom:14px;margin-bottom:18px;}
.ast-transcript .tp-head h1{font-size:24px;margin:0 0 4px;}
.ast-transcript .tp-head .sub{color:#6b7280;font-size:13px;}
.ast-transcript .tp-logo{font-weight:800;color:var(--ast-brand);font-size:18px;}
.ast-transcript .tp-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px;}
.ast-transcript .tp-cell{border:1px solid #e6e9f2;border-radius:10px;padding:12px;text-align:center;}
.ast-transcript .tp-cell .v{font-size:22px;font-weight:800;color:var(--ast-brand);}
.ast-transcript .tp-cell .k{font-size:12px;color:#6b7280;margin-top:4px;}
.ast-transcript .tp-sec{margin-bottom:16px;}
.ast-transcript .tp-sec h2{font-size:16px;border-left:4px solid var(--ast-brand);padding-left:8px;margin:0 0 10px;}
.ast-transcript table{width:100%;border-collapse:collapse;font-size:13px;}
.ast-transcript th,.ast-transcript td{border:1px solid #e6e9f2;padding:8px 10px;text-align:left;vertical-align:top;}
.ast-transcript th{background:#f4f6ff;color:#1c2333;}
.ast-transcript .ok{color:#1f9d55;font-weight:700;}
.ast-transcript .no{color:#e23b3b;font-weight:700;}
.ast-transcript .tp-foot{margin-top:24px;font-size:12px;color:#9aa3b2;border-top:1px dashed #e6e9f2;padding-top:10px;}

@media (max-width:640px){
  .ast-card{padding:18px;}
  .ast-cat-row{grid-template-columns:110px 1fr 54px;}
  .ast-transcript .tp-grid{grid-template-columns:repeat(2,1fr);}
}

/* ===== 导出与保存成绩（优化） ===== */
.ast-export{margin:10px 0 22px;padding:16px 18px;border:1px solid var(--ast-line,#e5e9f2);border-radius:14px;background:linear-gradient(180deg,#f6f9ff,#ffffff);}
.ast-export-hd{display:flex;gap:12px;align-items:flex-start;margin-bottom:14px;}
.ast-export-ico{font-size:26px;line-height:1;flex:0 0 auto;}
.ast-export-title{font-size:18px;font-weight:700;color:var(--ast-ink,#0c1430);}
.ast-export-sub{font-size:13px;color:#5b6478;margin-top:4px;line-height:1.6;}
.ast-export-sub b{color:#1f2a4a;}
.ast-export-grid{display:flex;flex-wrap:wrap;gap:10px;}
.ast-export-grid .btn{font-size:14px;padding:9px 16px;}
.ast-export-grid .btn-primary{box-shadow:0 4px 14px rgba(0,23,230,.18);}


/* === 成绩单 PDF 清晰度 / 移动端增强（2026-08-29） === */
.ast-transcript.show{padding:24px;background:#fff;margin:0 0 24px;border:1px solid var(--ast-line);border-radius:14px;}
.ast-transcript .tp tr{page-break-inside:avoid;}
.ast-transcript .tp td,.ast-transcript .tp th{word-break:break-word;word-wrap:break-word;overflow-wrap:break-word;}
.ast-transcript .tp-verdict{display:inline-block;padding:2px 12px;border-radius:999px;font-weight:800;font-size:14px;line-height:1.5;}
.ast-transcript .tp-verdict.ok{background:#eafaef;color:#1f9d55;border:1px solid #b7e8c9;}
.ast-transcript .tp-verdict.no{background:#fdeaea;color:#e23b3b;border:1px solid #f3bcbc;}
@media (max-width:640px){
  .ast-export-grid .btn{width:100%;justify-content:center;}
  .ast-quiz-nav{flex-wrap:wrap;}
  .ast-quiz-nav .btn{flex:1 1 auto;min-width:120px;}
  .ast-score-wrap{gap:14px;}
  .ast-export-grid{gap:8px;}
  .ast-transcript .tp-grid{grid-template-columns:repeat(2,1fr);gap:10px;}
}
