.full-mock{max-width:1040px;margin:24px auto;padding:clamp(16px,3vw,32px)}
.full-mock h1{font-size:clamp(22px,3vw,30px);line-height:1.25;margin:20px 0}
.full-mock p,.full-mock label{line-height:1.6}.mock-clock{display:flex;justify-content:space-between;gap:16px;padding:12px 16px;background:#edf5f1;border-radius:12px;color:#245c48}
.mock-source{font-size:18px;line-height:1.8;white-space:pre-wrap;margin:20px 0}.mock-source .gap{font:inherit;max-width:100%;min-width:100px;margin:4px;padding:8px;border:1px solid #c5b7bd;border-radius:8px;background:white}
.full-mock textarea{box-sizing:border-box;width:100%;padding:14px;font-size:16px;line-height:1.6;border:1px solid #c5b7bd;border-radius:12px}.full-mock .choice{display:flex;gap:12px;align-items:flex-start;padding:12px;margin:8px 0;border:1px solid #e4dce0;border-radius:10px}.full-mock input[type=checkbox],.full-mock input[type=radio]{min-width:20px;min-height:20px;accent-color:#ac4e6b}
.mock-phase{display:grid;grid-template-columns:1fr auto;gap:8px;margin:20px 0 12px;padding:14px;border-radius:12px;background:#f5f7f6}.mock-phase progress{grid-column:1/-1;width:100%;height:10px;border:0;border-radius:8px;overflow:hidden;accent-color:#348568}.mock-phase progress[data-level=mid]{accent-color:#c38321}.mock-phase progress[data-level=low]{accent-color:#c44848}
.mock-phase progress::-webkit-progress-bar{background:#dfe5e2}.mock-phase progress::-webkit-progress-value{background:#348568}.mock-phase progress[data-level=mid]::-webkit-progress-value{background:#c38321}.mock-phase progress[data-level=low]::-webkit-progress-value{background:#c44848}
.full-mock .exercise-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.full-mock .btn{min-height:48px}.mock-highlight{line-height:2.3}.mock-highlight .word{font:inherit;padding:5px 8px;border:1px solid transparent;border-radius:6px;background:transparent}.mock-highlight .word[aria-pressed=true]{background:#fae7ee;border-color:#ac4e6b;color:#82334c}.mock-order{display:flex;align-items:center;gap:8px;padding:12px;border:1px solid #e4dce0;border-radius:10px;margin:8px 0}.mock-order p{flex:1;margin:0}.mock-order button{min-width:44px;min-height:44px}.mock-word-bank{display:flex;flex-wrap:wrap;gap:8px}.full-mock .history-row{border:1px solid #e4dce0;border-radius:12px;padding:14px;margin:10px 0}.full-mock summary{cursor:pointer;font-weight:600}.full-mock [role=status]{line-height:1.5;color:#79515e}.full-mock audio{width:100%;margin:16px 0}#introClock{display:block;font-size:36px;color:#245c48;font-variant-numeric:tabular-nums}
@media(max-width:600px){.full-mock{margin:12px 0}.mock-source{font-size:16px}.mock-clock{font-size:14px}.full-mock .exercise-actions .btn{flex:1;min-width:130px}.full-mock .text-btn{min-height:44px}.full-mock .mock-phase{position:relative}.mock-order{align-items:flex-start}}

.full-mock [hidden]{display:none!important}#mockSubmit{font-size:14px}.full-mock .btn:disabled{cursor:not-allowed;opacity:.55}

/* Scoped exam player: the library and ordinary practice retain their own layout. */
.full-mock.mock-exam{position:fixed;inset:0;z-index:1200;max-width:none;margin:0;padding:0;overflow-y:auto;overscroll-behavior:contain;background:#fff;border:0;border-radius:0;color:#202a35;font:16px Arial,sans-serif;text-align:left}
.mock-exam-header{position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px max(20px,calc((100vw - 1100px)/2));background:#184b60;color:#fff;border-bottom:4px solid #82c3cc}
.mock-exam-header>div{display:flex;align-items:baseline;gap:18px;flex-wrap:wrap}.mock-exam-brand{font-weight:700;font-size:18px}.mock-exam-label{font-size:13px;color:#d9eaf0}.mock-exam-header .text-btn{color:#fff;border:1px solid #91b6c2;border-radius:4px;padding:8px 14px;min-height:40px;white-space:nowrap}
.mock-exam .mock-exam-content{max-width:1100px;margin:auto;padding:24px 28px 0;min-height:calc(100dvh - 80px);display:flex;flex-direction:column;box-sizing:border-box}.mock-exam h1{font:700 22px Arial,sans-serif;margin:8px 0 20px;color:#253e4b;outline:none}
.mock-exam .mock-clock{order:-1;background:#f1f4f6;border:1px solid #d5dfe4;border-radius:3px;color:#263e4b;font-size:14px;margin-bottom:18px;align-items:center}.mock-time-remaining{display:flex;align-items:center;gap:12px}.mock-time-remaining strong{font-size:20px;font-variant-numeric:tabular-nums;min-width:62px;text-align:right}
.mock-exam .mock-instruction{font-size:17px;line-height:1.55;margin:0 0 14px}.mock-exam .mock-source{font:18px/1.65 Arial,sans-serif;margin:18px 0 24px}.mock-exam .choice{background:#fff;border-radius:3px;border-color:#d0dbe1;align-items:center}.mock-exam .choice:has(input:checked){background:#e8f2f8;border-color:#327493}.mock-exam input[type=checkbox],.mock-exam input[type=radio]{accent-color:#1e627e}
.mock-exam .btn{border-radius:4px;background:#1e627e;color:#fff;font:600 16px Arial,sans-serif;min-height:46px;padding:12px 24px;border:1px solid #1e627e;box-shadow:none}.mock-exam .btn.light{background:#eef5f8;color:#1e627e}.mock-exam .text-btn{font:14px Arial,sans-serif;color:#36576a}.mock-exam-header .text-btn{color:white}.mock-exam button:focus-visible,.mock-exam select:focus-visible,.mock-exam input:focus-visible,.mock-exam textarea:focus-visible{outline:3px solid #e8a62d;outline-offset:3px}
.mock-exam .mock-phase{max-width:560px;background:#f4f7f9;border:1px solid #ccd8df;border-radius:4px;padding:16px;margin:24px 0}.mock-exam .mock-phase #mockRecord{grid-column:1/-1;justify-self:start;background:#fff;color:#36576a;border-color:#9fb5c1;font-size:14px;padding:8px 14px;min-height:40px}.mock-exam .mock-phase:has(#mockRecord:not([hidden])) #mockPhase{font-weight:700}.mock-exam .mock-phase:has(#mockRecord:not(:disabled)) #mockPhase{color:#234c60}
.mock-exam .mock-exam-footer{position:sticky;bottom:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:20px;background:#f4f7f9;border-top:1px solid #c9d7df;padding:14px 0;margin-top:auto}.mock-exam-footer p{font:13px/1.5 Arial,sans-serif;color:#526774;margin:0}.mock-exam #fullMockStatus{order:1;font-size:14px;min-height:22px;color:#65452b;padding:8px 0;margin:0}.mock-exam .mock-exam-footer{order:2}.mock-exam .mock-source .gap,.mock-exam textarea{border-radius:3px;border-color:#a4b6c0}.mock-exam .mock-audio-start{align-self:flex-start;margin:8px 0}.mock-exam .mock-highlight .word[aria-pressed=true]{background:#dcecf5;border-color:#427b98;color:#193d51}
@media(max-width:600px){.mock-exam-header{padding:12px 16px}.mock-exam-label{display:none}.mock-exam .mock-exam-content{padding:16px 16px 0}.mock-exam .mock-clock{align-items:flex-start;gap:12px;font-size:13px}.mock-time-remaining{display:block;text-align:right;white-space:nowrap}.mock-time-remaining strong{display:block;margin-top:4px}.mock-exam .mock-exam-footer{align-items:center;gap:10px;padding:12px 0}.mock-exam-footer p{font-size:11px;max-width:48%}.mock-exam .exercise-actions{gap:8px}.mock-exam .exercise-actions .btn{min-width:88px;flex:none;padding:12px 16px}.mock-exam #mockSkip{max-width:75px;min-height:44px}.mock-exam .mock-source{font-size:17px}.mock-exam .mock-phase{max-width:100%}}
