:root{
  --exam-bg:#f5f7f5;
  --exam-paper:#fff;
  --exam-ink:#171a18;
  --exam-muted:#626a65;
  --exam-line:#dce2dd;
  --exam-green:#176b4d;
  --exam-green-dark:#0f563c;
  --exam-green-soft:#eaf5ef;
  --exam-yellow:#f3c54b;
  --exam-yellow-soft:#fff7d6;
  --exam-red:#b33b32;
  --exam-red-soft:#fff0ed;
  --exam-blue:#315d8a;
}
*{box-sizing:border-box}
body{margin:0;background:var(--exam-bg);color:var(--exam-ink);font-family:"Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;letter-spacing:0}
button,input,select{font:inherit;letter-spacing:0}
button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid rgba(23,107,77,.23);outline-offset:2px}
[hidden]{display:none!important}
.exam-shell{width:min(1120px,100%);margin:0 auto;padding:38px 24px 80px}
.exam-workspace-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding-bottom:22px;border-bottom:1px solid var(--exam-line)}
.exam-workspace-head h1{margin:0;font-size:40px;line-height:1.18;font-weight:800;letter-spacing:0}
.exam-workspace-head p{max-width:560px;margin:10px 0 0;color:var(--exam-muted);font-size:15px;line-height:1.7}
.exam-today-link{display:inline-flex;align-items:center;gap:7px;min-height:42px;padding:0 14px;border:1px solid var(--exam-line);border-radius:7px;background:#fff;color:var(--exam-ink);font-size:14px;font-weight:700;text-decoration:none;white-space:nowrap}
.exam-today-link:hover{border-color:var(--exam-green);color:var(--exam-green)}
.exam-progress{display:grid;grid-template-columns:repeat(4,1fr);margin:22px 0 34px;padding:0;list-style:none;border-block:1px solid var(--exam-line);background:#fff}
.exam-progress li{position:relative;padding:12px 10px 12px 36px;color:#7a827d;font-size:13px;font-weight:650}
.exam-progress li+li{border-left:1px solid var(--exam-line)}
.exam-progress span{position:absolute;left:10px;top:50%;display:grid;place-items:center;width:19px;height:19px;transform:translateY(-50%);border:1px solid #b8c0bb;border-radius:50%;font-size:11px}
.exam-progress li.is-active{color:var(--exam-green);background:var(--exam-green-soft)}
.exam-progress li.is-active span,.exam-progress li.is-done span{border-color:var(--exam-green);background:var(--exam-green);color:#fff}
.exam-progress li.is-done{color:#435049}
.exam-view{min-height:430px}
.exam-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:22px}
.exam-section-head h2{margin:0;font-size:23px;line-height:1.3}
.exam-section-head p{margin:5px 0 0;color:var(--exam-muted);font-size:14px;line-height:1.6}
.exam-intent-switch{display:grid;grid-template-columns:1fr 1fr;width:min(500px,100%);margin-bottom:22px;padding:4px;border:1px solid var(--exam-line);border-radius:8px;background:#e9eeea}
.exam-intent-switch button{min-height:44px;border:0;border-radius:6px;background:transparent;color:#59615c;font-weight:700;cursor:pointer}
.exam-intent-switch button[aria-selected="true"]{background:#fff;color:var(--exam-green);box-shadow:0 1px 3px rgba(23,32,26,.12)}
.exam-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 22px;max-width:760px}
.exam-field{display:grid;gap:7px}
.exam-field--wide{grid-column:1/-1}
.exam-field label,.exam-field>span{font-size:13px;font-weight:750;color:#38423c}
.exam-field small{color:var(--exam-muted);font-size:12px;line-height:1.5}
.exam-field input,.exam-field select{width:100%;min-height:46px;padding:9px 11px;border:1px solid #bdc6c0;border-radius:6px;background:#fff;color:var(--exam-ink)}
.exam-field input:focus,.exam-field select:focus{border-color:var(--exam-green)}
.exam-upload-zone{grid-column:1/-1;position:relative;display:grid;place-items:center;min-height:190px;padding:26px;border:1.5px dashed #9eaaa2;border-radius:8px;background:#fff;text-align:center;cursor:pointer}
.exam-upload-zone:hover,.exam-upload-zone.is-dragging{border-color:var(--exam-green);background:var(--exam-green-soft)}
.exam-upload-zone input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.exam-upload-mark{display:grid;place-items:center;width:42px;height:42px;margin-bottom:10px;border-radius:50%;background:var(--exam-green-soft);color:var(--exam-green);font-size:24px;font-weight:400}
.exam-upload-zone strong{font-size:16px}
.exam-upload-zone p{margin:6px 0 0;color:var(--exam-muted);font-size:13px;line-height:1.6}
.exam-file-list{grid-column:1/-1;display:grid;gap:7px;margin:0;padding:0;list-style:none}
.exam-file-list li{display:flex;justify-content:space-between;gap:12px;padding:9px 11px;border-bottom:1px solid var(--exam-line);background:#fff;font-size:13px}
.exam-file-list span:last-child{color:var(--exam-muted);white-space:nowrap}
.exam-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:24px}
.exam-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border:1px solid transparent;border-radius:7px;background:#fff;color:var(--exam-ink);font-weight:750;text-decoration:none;cursor:pointer}
.exam-btn:hover{text-decoration:none}
.exam-btn:disabled{opacity:.5;cursor:not-allowed}
.exam-btn--primary{background:var(--exam-green);color:#fff}
.exam-btn--primary:hover{background:var(--exam-green-dark);color:#fff}
.exam-btn--secondary{border-color:#aeb8b1;background:#fff}
.exam-btn--secondary:hover{border-color:var(--exam-green);color:var(--exam-green)}
.exam-btn--danger{border-color:#e5b6b1;color:var(--exam-red)}
.exam-status{min-height:22px;margin-top:14px;color:var(--exam-muted);font-size:13px}
.exam-status.is-error{color:var(--exam-red)}
.exam-processing{display:grid;grid-template-columns:120px minmax(0,560px);align-items:center;gap:34px;padding:52px 0}
.exam-processing-wheel{display:grid;place-items:center;width:112px;height:112px;border:8px solid #dce8e0;border-top-color:var(--exam-green);border-radius:50%;animation:exam-spin 1s linear infinite}
.exam-processing-wheel span{font-size:13px;font-weight:800;color:var(--exam-green)}
.exam-processing h2{margin:0 0 10px;font-size:25px}
.exam-processing p{margin:0;color:var(--exam-muted);line-height:1.7}
.exam-processing-steps{display:flex;gap:7px;flex-wrap:wrap;margin-top:20px}
.exam-processing-steps span{padding:6px 9px;border:1px solid var(--exam-line);border-radius:6px;background:#fff;color:#66706a;font-size:12px}
@keyframes exam-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.exam-processing-wheel{animation:none;border-color:var(--exam-green)}}
.exam-score-band{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:26px;padding:18px 0;border-block:1px solid var(--exam-line)}
.exam-score-band .exam-field--score{min-width:0}
.exam-review-toolbar{position:sticky;top:70px;z-index:20;margin:0 -10px 16px;padding:12px 10px;border-block:1px solid var(--exam-line);background:rgba(245,247,245,.96);backdrop-filter:blur(10px)}
.exam-review-summary{display:flex;align-items:center;justify-content:space-between;gap:14px}
.exam-review-summary strong{font-size:14px}
.exam-review-summary span{color:var(--exam-muted);font-size:13px}
.exam-question-list{display:grid;gap:10px}
.exam-question{display:grid;grid-template-columns:74px minmax(180px,1fr) minmax(330px,1.4fr) 36px;gap:13px;align-items:start;padding:14px;border:1px solid var(--exam-line);border-radius:8px;background:#fff}
.exam-question.is-loss{border-left:4px solid var(--exam-red)}
.exam-q-number input{width:100%;min-height:40px;padding:7px 8px;border:1px solid #c7cec9;border-radius:6px;text-align:center;font-weight:800}
.exam-q-content{min-width:0}
.exam-q-content summary{cursor:pointer;font-size:13px;font-weight:700;color:#3f4943;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.exam-q-content p{max-height:150px;overflow:auto;margin:10px 0 0;padding:10px;border-left:2px solid var(--exam-line);color:#4e5852;font-size:12px;line-height:1.65;white-space:pre-wrap}
.exam-q-content-input{display:grid;gap:6px;color:var(--exam-muted);font-size:11px;font-weight:700}
.exam-q-content-input textarea{width:100%;min-height:92px;resize:vertical;padding:9px;border:1px solid #c7cec9;border-radius:6px;background:#fff;color:var(--exam-ink);font:inherit;font-size:12px;line-height:1.6;letter-spacing:0}
.exam-q-controls{display:grid;gap:9px}
.exam-result-switch{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:3px;border-radius:7px;background:#edf0ee}
.exam-result-switch button{min-height:36px;padding:5px 7px;border:0;border-radius:5px;background:transparent;color:#5e6761;font-size:12px;font-weight:750;cursor:pointer}
.exam-result-switch button[aria-pressed="true"]{background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.12);color:var(--exam-ink)}
.exam-result-switch button[data-result="correct"][aria-pressed="true"]{color:var(--exam-green)}
.exam-result-switch button[data-result="wrong"][aria-pressed="true"],.exam-result-switch button[data-result="unattempted"][aria-pressed="true"]{color:var(--exam-red)}
.exam-result-switch button[data-result="partial"][aria-pressed="true"]{color:#8a6200}
.exam-q-details{display:grid;grid-template-columns:1fr 120px;gap:8px}
.exam-q-details select,.exam-q-details input{min-height:38px;width:100%;padding:6px 8px;border:1px solid #c7cec9;border-radius:6px;background:#fff;font-size:12px}
.exam-points{display:flex;align-items:center;gap:6px}
.exam-points input{width:62px}
.exam-points label{display:flex;align-items:center;gap:4px;color:var(--exam-muted);font-size:11px;white-space:nowrap}
.exam-points label input{width:16px;height:16px;min-height:0}
.exam-q-delete{width:36px;height:36px;padding:0;border:1px solid transparent;border-radius:6px;background:transparent;color:#8b938e;cursor:pointer}
.exam-q-delete:hover{border-color:#ecc8c4;background:var(--exam-red-soft);color:var(--exam-red)}
.exam-mapping{grid-column:2/-1;color:#68716c;font-size:11px}
.exam-mapping b{color:var(--exam-blue)}
.exam-add-row{margin-top:12px}
.exam-report-intro{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:34px;padding-bottom:28px;border-bottom:1px solid var(--exam-line)}
.exam-report-intro h2{margin:0 0 10px;font-size:28px}
.exam-report-intro p{margin:0;color:var(--exam-muted);line-height:1.7}
.exam-report-score{display:grid;align-content:center;padding:18px;border-left:5px solid var(--exam-yellow);background:var(--exam-yellow-soft)}
.exam-report-score strong{font-size:28px;line-height:1.2}
.exam-report-score span{margin-top:5px;color:#735c1f;font-size:12px}
.exam-priority-list{counter-reset:priority;display:grid;margin-top:28px;border-top:1px solid var(--exam-line)}
.exam-priority{counter-increment:priority;display:grid;grid-template-columns:52px minmax(0,1fr) 180px;gap:16px;padding:22px 4px;border-bottom:1px solid var(--exam-line)}
.exam-priority::before{content:counter(priority);display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--exam-green);color:#fff;font-weight:800}
.exam-priority h3{margin:0 0 6px;font-size:19px}
.exam-priority p{margin:0;color:var(--exam-muted);font-size:13px;line-height:1.6}
.exam-priority-meta{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;text-align:right;font-size:12px;color:var(--exam-muted)}
.exam-priority-meta strong{font-size:15px;color:var(--exam-ink)}
.exam-priority.is-insufficient::before{background:#7b837e}
.exam-priority.is-insufficient .exam-priority-meta strong{color:var(--exam-red)}
.exam-plan{margin-top:34px}
.exam-plan h2{margin:0 0 16px;font-size:22px}
.exam-plan-list{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-block:1px solid var(--exam-line);background:#fff}
.exam-plan-day{min-width:0;padding:13px 10px}
.exam-plan-day+.exam-plan-day{border-left:1px solid var(--exam-line)}
.exam-plan-day span{display:block;color:var(--exam-muted);font-size:11px}
.exam-plan-day strong{display:block;margin-top:6px;font-size:12px;line-height:1.5;overflow-wrap:anywhere}
.exam-plan-day.is-today{background:var(--exam-green-soft)}
.exam-report-actions{display:flex;justify-content:space-between;gap:12px;margin-top:28px}
.exam-empty{padding:54px 0;text-align:center}
.exam-empty h2{margin:0 0 8px;font-size:22px}
.exam-empty p{margin:0 auto 20px;max-width:520px;color:var(--exam-muted);line-height:1.7}
.exam-recent{margin-top:48px;padding-top:24px;border-top:1px solid var(--exam-line)}
.exam-recent h2{margin:0 0 12px;font-size:17px}
.exam-recent-list{display:grid;background:#fff;border-block:1px solid var(--exam-line)}
.exam-recent-item{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:16px;align-items:center;padding:13px 14px;color:var(--exam-ink);text-decoration:none}
.exam-recent-item+.exam-recent-item{border-top:1px solid var(--exam-line)}
.exam-recent-item span{color:var(--exam-muted);font-size:12px}
.exam-recent-item b{font-size:13px}
@media(max-width:800px){
  .exam-shell{padding:26px 16px 64px}
  .exam-workspace-head{align-items:flex-start;flex-direction:column}
  .exam-progress{grid-template-columns:1fr 1fr}
  .exam-progress li:nth-child(3){border-left:0;border-top:1px solid var(--exam-line)}
  .exam-progress li:nth-child(4){border-top:1px solid var(--exam-line)}
  .exam-score-band{grid-template-columns:1fr 1fr}
  .exam-question{grid-template-columns:64px minmax(0,1fr) 36px}
  .exam-q-content{grid-column:2/3}
  .exam-q-controls{grid-column:1/-1}
  .exam-mapping{grid-column:1/-1}
  .exam-plan-list{grid-template-columns:1fr}
  .exam-plan-day+.exam-plan-day{border-left:0;border-top:1px solid var(--exam-line)}
}
@media(max-width:520px){
  .exam-shell{padding-inline:12px}
  .exam-workspace-head h1{font-size:28px}
  .exam-progress li{padding-left:34px;font-size:12px}
  .exam-form-grid{grid-template-columns:1fr}
  .exam-field--wide,.exam-upload-zone,.exam-file-list{grid-column:auto}
  .exam-score-band{grid-template-columns:1fr 1fr;gap:12px}
  .exam-score-band .exam-field:last-child{grid-column:1/-1}
  .exam-review-toolbar{top:58px}
  .exam-question{grid-template-columns:56px minmax(0,1fr) 34px;padding:11px;gap:9px}
  .exam-result-switch{grid-template-columns:1fr 1fr}
  .exam-q-details{grid-template-columns:1fr}
  .exam-processing{grid-template-columns:1fr;padding:36px 8px;text-align:center}
  .exam-processing-wheel{margin:auto}
  .exam-processing-steps{justify-content:center}
  .exam-report-intro{grid-template-columns:1fr}
  .exam-report-score{border-left:0;border-top:5px solid var(--exam-yellow)}
  .exam-priority{grid-template-columns:40px minmax(0,1fr)}
  .exam-priority-meta{grid-column:2;align-items:flex-start;text-align:left}
  .exam-report-actions{align-items:stretch;flex-direction:column}
  .exam-recent-item{grid-template-columns:minmax(0,1fr) auto}
  .exam-recent-item span:last-child{display:none}
}
