:root {
  --mock-navy: #173f5f;
  --mock-blue: #1d78b5;
  --mock-sky: #eaf5fb;
  --mock-mint: #e7f6ef;
  --mock-green: #138a5b;
  --mock-red: #c44141;
  --mock-ink: #172a3a;
  --mock-muted: #617487;
  --mock-line: #d5e1ea;
  --mock-bg: #f3f7fa;
}

body { background: var(--mock-bg); color: var(--mock-ink); font-size: 17px; }
button, input, select { font: inherit; }
.mock-shell, .mock-exam-view, .mock-result-view { width: min(1560px, calc(100% - 32px)); margin: 28px auto 60px; }
.mock-title-row { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:24px; }
.mock-title-row h1 { margin:6px 0 8px; font-size:clamp(28px, 3vw, 42px); letter-spacing:-.04em; }
.mock-title-row p { margin:0; color:var(--mock-muted); }
.bank-badge { min-width:220px; padding:18px 22px; border:1px solid #b9d9eb; border-radius:18px; background:#fff; color:var(--mock-navy); font-weight:800; text-align:center; box-shadow:0 10px 26px rgba(31,79,111,.08); }
.mock-teacher-grid { display:grid; grid-template-columns:1fr; gap:22px; align-items:start; }
.mock-teacher-grid:has(.mock-room-panel:not(.hidden)) { grid-template-columns:minmax(0, 1.08fr) minmax(420px, .92fr); }
.mock-settings-panel, .mock-room-panel, .recent-room-panel, #teacher-results-panel { padding:clamp(22px, 2.2vw, 34px); }
.mock-settings-panel, .mock-room-panel { min-height:0; }
.mock-settings-panel .info-box { font-size:15px; }
.mock-basic-fields { display:grid; grid-template-columns:minmax(0, 1.25fr) minmax(340px, .75fr); gap:18px; align-items:end; }
.mock-basic-fields > label, .mock-group-field > label { margin-top:0; }
.mock-group-field { display:grid; }
.mock-settings-panel label { display:grid; gap:8px; margin-top:16px; color:#30495d; font-weight:750; }
.mock-settings-panel input, .mock-settings-panel select { min-height:48px; border:1px solid #bdccd8; border-radius:11px; padding:0 14px; background:#fff; color:var(--mock-ink); }
.roster-toggle-button { width:100%; min-height:46px; margin-top:10px; border-style:dashed; color:var(--mock-navy); }
.mock-roster-editor { margin-top:18px; padding:22px; border:1px solid #b9d9eb; border-radius:16px; background:#f4faff; }
.mock-roster-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.mock-roster-heading strong { display:block; color:var(--mock-navy); }
.mock-roster-heading small { display:block; margin-top:3px; color:var(--mock-muted); }
.mock-roster-editor textarea { width:100%; min-height:130px; resize:vertical; border:1px solid #bdccd8; border-radius:11px; padding:12px 14px; background:#fff; color:var(--mock-ink); line-height:1.55; }
.mock-roster-editor .roster-format-help { display:block; margin:8px 0 12px; color:var(--mock-muted); }
.mock-retake { align-self:end; min-height:48px; margin:0 !important; padding:10px 12px; border:1px solid #bdccd8; border-radius:11px; background:#fff; }
.mock-retake span { display:grid; gap:2px; }
.mock-retake small { color:var(--mock-muted); font-weight:500; }
.frequency-plan { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin:22px 0; }
.frequency-plan div { padding:14px 8px; border-radius:14px; background:var(--mock-sky); text-align:center; }
.frequency-plan div:last-child { background:#fff3dc; }
.frequency-plan strong { display:block; font-size:26px; color:var(--mock-navy); }
.frequency-plan span { display:block; margin-top:2px; color:var(--mock-muted); font-size:14px; font-weight:700; }
.mock-settings-panel > .primary-button { min-height:56px; font-size:17px; }
.room-share-grid { display:grid; grid-template-columns:220px minmax(0,1fr); gap:24px; margin-top:20px; align-items:start; }
.mock-room-panel .qr-box { width:210px; height:210px; display:grid; place-items:center; margin:0 auto 12px; background:#fff; border:1px solid var(--mock-line); border-radius:16px; }
.mock-room-panel .qr-box canvas, .mock-room-panel .qr-box img { max-width:188px; max-height:188px; }
.mock-room-panel small { display:block; margin:8px 0 14px; color:var(--mock-muted); text-align:center; line-height:1.5; }
.mock-metrics { grid-template-columns:repeat(2,1fr); margin-bottom:16px; }
.mock-metrics div { min-height:108px; }
.button-stack { display:grid; gap:10px; }
.recent-room-panel, #teacher-results-panel { margin-top:20px; }
.recent-room-list { display:grid; gap:10px; }
.recent-room-item { display:grid; grid-template-columns:minmax(220px,1fr) repeat(4,minmax(78px,auto)) auto; gap:14px; align-items:center; padding:14px 16px; border:1px solid var(--mock-line); border-radius:13px; background:#fff; }
.recent-room-item strong { display:block; }
.recent-room-item small { display:block; margin-top:3px; color:var(--mock-muted); }
.recent-room-stat { text-align:center; }
.recent-room-stat b { display:block; color:var(--mock-navy); font-size:18px; }
.recent-room-stat span { display:block; color:var(--mock-muted); font-size:12px; }
.room-open-button { white-space:nowrap; }
.table-scroll { overflow:auto; border:1px solid var(--mock-line); border-radius:12px; }
.mock-result-table { width:100%; border-collapse:collapse; background:#fff; }
.mock-result-table th, .mock-result-table td { padding:13px 14px; border-bottom:1px solid #e8eef3; text-align:center; white-space:nowrap; }
.mock-result-table th { background:#edf4f8; color:#27495f; font-size:14px; }
.mock-result-table td:first-child, .mock-result-table th:first-child { text-align:left; }


.student-gate {
  width:min(1100px,94vw);
  min-height:585px;
  margin:42px auto;
  display:grid;
  grid-template-columns:58% 42%;
  overflow:hidden;
  border-radius:28px;
  background:#164f73;
  box-shadow:0 18px 50px rgba(29,55,70,.12);
}
.student-gate-copy {
  padding:66px 58px 60px;
  color:#fff;
  background:#164f73;
}
.student-gate-copy .eyebrow {
  display:block;
  margin:0 0 18px;
  color:#7ee0ff;
  font-size:16px;
  letter-spacing:.03em;
  font-weight:700;
}
.student-gate-copy h1 {
  margin:0 0 24px;
  color:#fff;
  font-size:52px;
  line-height:1.08;
  letter-spacing:-.055em;
  font-weight:800;
  white-space:nowrap;
  word-break:keep-all;
}
.student-gate-copy > p {
  margin:0;
  color:#fff;
  font-size:18px;
  line-height:1.55;
  letter-spacing:-.02em;
  white-space:nowrap;
  word-break:keep-all;
}
.student-gate-copy ul {
  margin:62px 0 0 20px;
  padding:0;
  color:#fff;
  font-size:17px;
  line-height:2.05;
}
.student-login-card {
  display:flex;
  flex-direction:column;
  align-content:initial;
  gap:0;
  padding:64px 52px 58px;
  background:#fff;
}
.student-login-card h2 {
  margin:0 0 28px;
  color:#102c42;
  font-size:32px;
  letter-spacing:-.04em;
}
.student-sso-card {
  padding:20px;
  margin:0 0 30px;
  border:1px solid #d6e1e8;
  border-radius:16px;
  background:#f5f8fb;
}
.student-sso-card strong {
  display:block;
  margin-bottom:7px;
  color:#102c42;
  font-size:19px;
}
.student-sso-card span {
  display:block;
  color:#607381;
  font-size:15px;
  line-height:1.5;
}
.student-login-card label {
  display:grid;
  gap:9px;
  margin:0 0 22px;
  color:#345064;
  font-size:16px;
  font-weight:800;
}
.student-login-card input {
  width:100%;
  min-height:56px;
  border:1px solid #aac0cf;
  border-radius:14px;
  padding:0 14px;
  font-size:19px;
  letter-spacing:.04em;
}
.student-login-card button {
  min-height:58px;
  margin:0;
  border-radius:10px;
  font-size:17px;
}
.student-login-card .form-message {
  min-height:24px;
  margin:14px 0 0;
}
@media (max-width:1050px) and (min-width:821px){
  .student-gate{grid-template-columns:56% 44%}
  .student-gate-copy{padding:56px 42px}
  .student-gate-copy h1{font-size:46px}
  .student-gate-copy > p{font-size:16px}
  .student-gate-copy ul{margin-top:48px}
}
@media (max-width:820px){
  .student-gate{grid-template-columns:1fr;margin:18px auto}
  .student-gate-copy,.student-login-card{padding:34px 28px}
  .student-gate-copy h1{font-size:42px;white-space:normal}
  .student-gate-copy > p{white-space:normal}
  .student-gate-copy ul{margin-top:36px}
}

body.cbt-waiting-active { overflow:hidden; background:#fff; }
body.cbt-waiting-active .service-header { display:none; }
body.cbt-waiting-active main { min-height:100dvh; }
.cbt-waiting-view { width:100%; height:100dvh; margin:0; display:grid; grid-template-rows:84px minmax(0,1fr) 78px; overflow:hidden; background:#fff; color:#111; }
.waiting-topbar { display:grid; grid-template-columns:minmax(300px,.8fr) minmax(380px,1.35fr) minmax(400px,1fr); align-items:center; min-height:84px; padding:0 18px; background:#29466f; color:#fff; }
.waiting-candidate-block { display:flex; align-items:center; gap:13px; min-width:0; }
.waiting-candidate-badge { display:grid; place-items:center; flex:0 0 60px; width:60px; height:60px; border-radius:50%; background:#51c9df; color:#fff; font-size:31px; font-weight:900; }
.waiting-candidate-block > div { display:grid; gap:5px; min-width:0; }
.waiting-candidate-block strong { overflow:hidden; font-size:17px; text-overflow:ellipsis; white-space:nowrap; }
.waiting-candidate-block b { font-weight:900; }
.waiting-topbar h1 { min-width:0; margin:0; overflow:hidden; font-size:clamp(23px,2.1vw,34px); letter-spacing:-.035em; text-align:center; text-overflow:ellipsis; white-space:nowrap; }
.waiting-clock-block { display:grid; grid-template-columns:48px minmax(165px,auto) minmax(150px,auto); align-items:center; justify-content:end; gap:10px; min-width:0; }
.waiting-clock-icon { position:relative; display:block; width:46px; height:46px; border-radius:50%; background:#51c9df; }
.waiting-clock-icon::before, .waiting-clock-icon::after { content:""; position:absolute; left:22px; top:10px; width:3px; height:15px; border-radius:2px; background:#fff; transform-origin:50% 13px; }
.waiting-clock-icon::after { transform:rotate(125deg); }
.waiting-clock-block > div { display:grid; gap:5px; }
.waiting-clock-block strong { font-size:15px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.waiting-entry-time { padding-left:13px; border-left:1px solid rgba(255,255,255,.65); }
.waiting-body { min-height:0; display:grid; grid-template-columns:220px minmax(0,1fr); overflow:hidden; }
.waiting-sidebar { min-height:0; display:grid; grid-template-rows:repeat(5,minmax(58px,90px)); border-right:1px solid #b8c8dc; background:#fff; }
.waiting-sidebar span { display:grid; place-items:center; border-bottom:1px solid #b8c8dc; color:#a9b1ba; font-size:23px; font-weight:900; letter-spacing:-.035em; }
.waiting-sidebar span.active { background:#315792; color:#fff; }
.waiting-content { min-width:0; min-height:0; display:grid; grid-template-rows:90px minmax(0,1fr); overflow:auto; background:#fff; }
.waiting-content > h2 { display:grid; place-items:center; margin:0; border-bottom:1px solid #c7d2df; background:#f8fafc; font-size:34px; letter-spacing:-.04em; }
.waiting-panel { width:min(1000px,calc(100% - 56px)); margin:38px auto; padding:52px 72px 44px; border:1px solid #c3ceda; border-radius:18px; background:#eef3f8; text-align:center; }
.waiting-panel h3 { margin:0; color:#111; font-size:clamp(28px,2.3vw,39px); line-height:1.35; letter-spacing:-.045em; word-break:keep-all; }
.waiting-instruction, .waiting-warning { margin:14px 0 0; font-size:21px; line-height:1.55; word-break:keep-all; }
.waiting-instruction { color:#1548c8; }
.waiting-warning { margin-top:2px; color:#ed174c; font-weight:900; }
.waiting-exam-table { width:100%; margin:42px 0 30px; border-collapse:collapse; background:#fff; table-layout:fixed; text-align:left; }
.waiting-exam-table th, .waiting-exam-table td { min-height:52px; padding:15px 18px; border:1px solid #b8c9df; font-size:17px; line-height:1.45; vertical-align:middle; word-break:keep-all; }
.waiting-exam-table th { width:25%; color:#315fb2; text-align:center; }
.waiting-exam-table td { font-weight:800; }
.waiting-note { margin:0 0 24px; font-size:16px; font-weight:750; line-height:1.55; word-break:keep-all; }
.waiting-start-button { min-width:150px; min-height:50px; padding:10px 28px; border:0; border-radius:5px; background:#e30d48; color:#fff; font-size:18px; font-weight:900; }
.waiting-start-button:hover { background:#c80b3e; }
.waiting-start-button:disabled { opacity:.66; cursor:wait; }
.waiting-footer { display:flex; align-items:center; justify-content:center; gap:20px; min-height:78px; border-top:1px solid #bdcad9; background:#dbe4f0; color:#29466f; }
.waiting-footer span { font-size:15px; }
.waiting-footer strong { padding:11px 24px; border-radius:5px; background:#fff; font-size:20px; }

body.cbt-exam-active { overflow:hidden; background:#fff; }
body.cbt-exam-active .service-header { display:none; }
body.cbt-exam-active main { min-height:100dvh; }
.mock-exam-view { --exam-scale:1; width:100%; height:100dvh; margin:0; display:grid; grid-template-rows:78px minmax(0,1fr) 78px; overflow:hidden; background:#fff; color:#111; }
.mock-exam-view[data-font-scale="80"] { --exam-scale:.8; }
.mock-exam-view[data-font-scale="125"] { --exam-scale:1.25; }

.exam-sticky-header { position:relative; z-index:30; display:grid; grid-template-columns:minmax(260px,.78fr) minmax(340px,1.15fr) auto; align-items:center; min-height:78px; padding:0 16px; background:#29466f; color:#fff; box-shadow:none; }
.candidate-block { display:flex; align-items:center; gap:12px; min-width:0; }
.candidate-number-badge { display:grid; place-items:center; flex:0 0 58px; width:58px; height:58px; border-radius:50%; background:#51c9df; color:#fff; font-size:29px; font-weight:900; }
.candidate-block > div { display:grid; gap:5px; min-width:0; }
.candidate-block strong { overflow:hidden; font-size:16px; text-overflow:ellipsis; white-space:nowrap; }
.candidate-block b { font-weight:900; }
.exam-title-block { min-width:0; text-align:center; }
.exam-title-block > strong { display:block; overflow:hidden; font-size:clamp(19px,1.7vw,29px); text-overflow:ellipsis; white-space:nowrap; }
.exam-title-block > span { display:block; margin-top:4px; color:#d9e8fb; font-size:12px; }
.cbt-toolbar { display:flex; align-items:stretch; justify-content:flex-end; gap:10px; height:64px; }
.toolbar-group { display:flex; align-items:center; gap:6px; padding-left:10px; border-left:1px solid rgba(255,255,255,.45); }
.toolbar-group > span { font-size:13px; line-height:1.15; text-align:center; }
.toolbar-group button { position:relative; display:grid; place-items:center; min-width:48px; height:48px; padding:0 4px; border:1px solid rgba(255,255,255,.32); border-radius:4px; background:#fff; color:#0f3354; }
.toolbar-group button b { font-size:22px; }
.toolbar-group button small { position:absolute; top:49px; color:#fff; font-size:9px; white-space:nowrap; }
.toolbar-group button.active { border-color:#1885ce; background:#0870b8; color:#fff; box-shadow:inset 0 -4px 0 rgba(0,0,0,.16); }
.layout-toolbar button i { display:block; width:31px; height:30px; border:1px solid currentColor; border-radius:3px; background:transparent; }
.layout-toolbar button[data-screen-layout="2"] i { background:linear-gradient(90deg,transparent 48%,currentColor 49%,currentColor 52%,transparent 53%); }
.timer-block { display:flex; align-items:center; gap:9px; min-width:224px; padding:7px 13px; border-radius:30px; background:#1e385d; }
.timer-block > span { display:grid; place-items:center; width:30px; height:30px; border-radius:50%; background:#ffc400; color:#1e385d; font-size:0; }
.timer-block > span::after { content:"◷"; font-size:23px; }
.timer-block div { display:grid; gap:1px; }
.timer-block strong { font-size:14px; white-space:nowrap; }
#exam-timer { color:#ffea00; font-variant-numeric:tabular-nums; }
#exam-timer.urgent { color:#ff3b30; background:#ffec00; padding:0 4px; }

.exam-layout { min-height:0; display:grid; grid-template-columns:minmax(0,1fr) 252px; overflow:hidden; background:#fff; }
.exam-question-panel { min-width:0; overflow:auto; padding:24px clamp(28px,5vw,74px) 52px; background:#fff; }
.question-heading-row, .question-guide, .question-content-layout { width:min(920px,100%); margin-left:auto; margin-right:auto; }
.question-heading-row { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.question-heading-row > div { display:flex; align-items:center; gap:10px; color:#536b7d; }
.question-heading-row #question-number { position:relative; padding:7px 13px; border-radius:7px; background:#17466e; color:#fff; font-size:16px; font-weight:900; }
.question-heading-row #question-number.checked::after { content:"✓"; position:absolute; right:-10px; top:-11px; display:grid; place-items:center; width:22px; height:22px; border:2px solid #f2a1c0; border-radius:50%; background:#fff; color:#e55790; font-size:14px; font-weight:1000; line-height:1; box-shadow:0 2px 5px rgba(140,31,75,.12); }
#question-area { font-size:14px; }
.check-question-button { display:flex; align-items:center; gap:5px; min-height:44px; padding:6px 10px; border:0; border-radius:4px; background:#f0f2f4; color:#111; font-size:13px; font-weight:800; }
.check-question-button span { color:#b9c2c9; font-size:22px; }
.check-question-button.active { background:#fff0f6; color:#b83268; }
.check-question-button.active span { color:#e55790; }
.question-guide { margin-top:16px; margin-bottom:8px; font-size:calc(21px * var(--exam-scale)); line-height:1.5; }
.question-content-layout { display:block; }
.mock-exam-view[data-screen-layout="2"] .question-content-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,.92fr); gap:38px; align-items:start; }
.exam-question-panel h2 { margin:14px 0 18px; font-size:calc(28px * var(--exam-scale)); line-height:1.55; letter-spacing:-.025em; white-space:pre-wrap; }
.question-example { margin:8px 0 24px; padding:12px 16px; border:1.5px solid #222; background:#fff; font-size:calc(22px * var(--exam-scale)); line-height:1.55; }
.question-example p { margin:2px 0; }
.mock-question-image { display:block; max-width:100%; margin:12px auto 22px; border-radius:0; cursor:zoom-in; }
.image-dialog{width:min(94vw,980px);max-height:94vh;padding:46px 18px 18px;border:0;border-radius:14px;background:#fff;box-shadow:0 20px 80px rgba(0,0,0,.35)}
.image-dialog::backdrop{background:rgba(4,20,31,.78)}
.image-dialog img{display:block;max-width:100%;max-height:calc(94vh - 70px);margin:auto;object-fit:contain}
.image-dialog button{position:absolute;right:12px;top:8px;width:38px;height:38px;border:0;border-radius:50%;background:#edf2f4;color:#17394b;font-size:28px;line-height:1;cursor:pointer}
.mock-options { display:grid; gap:2px; margin-top:16px; }
.mock-option { display:grid; grid-template-columns:42px minmax(0,1fr); gap:2px; align-items:start; width:100%; min-height:46px; padding:6px 9px; border:0; border-radius:3px; background:#fff; color:#111; text-align:left; font-size:calc(23px * var(--exam-scale)); line-height:1.5; cursor:pointer; }
.mock-option:hover { background:#f0f7fd; }
.mock-option.selected { background:#e2f1ff; color:#073f72; outline:2px solid #83bce4; font-weight:800; }
.mock-option b { display:block; width:auto; height:auto; background:transparent; color:inherit; font-size:calc(27px * var(--exam-scale)); line-height:1.25; }
.mock-option.selected b { background:transparent; color:#075e9c; }

.answer-sheet-panel { min-height:0; display:grid; grid-template-rows:46px 34px minmax(0,1fr); overflow:hidden; border-left:1px solid #9caec6; background:#fff; }
.answer-sheet-title { display:flex; align-items:center; justify-content:center; margin:0; background:#3c5d8d; color:#fff; font-size:18px; }
.answer-sheet-title button { display:none; border:0; background:transparent; color:#fff; font-size:28px; }
.mobile-answer-filters { display:none; }
.answer-sheet-head, .answer-sheet-row { display:grid; grid-template-columns:42px repeat(5,minmax(34px,1fr)); align-items:center; text-align:center; }
.answer-sheet-head { border-bottom:1px solid #c8d3e0; background:#eef3f9; color:#38609a; font-size:13px; font-weight:900; }
.answer-sheet { min-height:0; overflow-y:auto; }
.answer-sheet-row { min-height:39px; border-bottom:1px solid #e0e6ee; border-left:4px solid transparent; }
.answer-sheet-row.current { border-left-color:#0870b8; background:#f0f7fd; }
.answer-sheet-row.checked { border-left-color:#e55790; background:#fff8fb; }
.answer-sheet-row.filter-hidden { display:none; }
.answer-sheet-row button { display:grid; place-items:center; width:30px; height:30px; margin:auto; padding:0; border:0; border-radius:50%; background:transparent; color:#4d78d1; font-size:18px; }
.answer-question-number { position:relative; width:38px !important; height:39px !important; border-radius:0 !important; background:#e8eef7 !important; color:#3970c4 !important; font-size:12px !important; font-weight:900; }
.answer-sheet-row.current .answer-question-number { background:#cfe5f5 !important; color:#064f83 !important; }
.answer-sheet-row.checked .answer-question-number::after { content:"✓"; position:absolute; right:1px; top:1px; color:#e55790; font-size:13px; font-weight:1000; line-height:1; }
.answer-sheet-row .answer-mark { width:24px; height:24px; border:1px solid #a7bfe2; border-radius:50%; background:#fff; color:#5076b5; font-size:13px; font-weight:850; line-height:1; }
.answer-sheet-row .answer-mark:hover { border-color:#8eb6d8; background:#f3faff; }
.answer-sheet-row .answer-mark.selected { border-color:#8fc7e7; background:#eaf7ff; color:#2778a7; font-weight:950; box-shadow:inset 0 0 0 1px rgba(49,151,201,.08); }
.answer-sheet.empty::after { content:attr(data-empty-message); display:block; padding:34px 12px; color:#6c7d8c; text-align:center; }

.exam-bottom-bar { position:relative; z-index:25; display:grid; grid-template-columns:minmax(230px,1fr) auto minmax(560px,1fr); align-items:center; gap:12px; min-height:78px; padding:8px 16px; border-top:1px solid #bdcad9; background:#dbe4f0; }
.footer-save { color:#52687a; font-size:12px; }
.footer-save > span:first-child { color:#0c6b9f; font-weight:900; }
.question-navigation { display:flex; align-items:center; gap:0; margin:0; }
.question-navigation button { min-width:96px; min-height:46px; border:0; background:#fff; color:#142d43; font-size:18px; font-weight:900; }
.question-navigation strong { min-width:58px; padding:0 10px; font-size:18px; text-align:center; }
.footer-actions { display:flex; justify-content:flex-end; gap:7px; }
.footer-actions button { min-height:46px; padding:8px 12px; border:1px solid #d5dfea; border-radius:4px; background:#fff; color:#1e2d3a; font-size:15px; font-weight:900; white-space:nowrap; }
.footer-actions button.active { border-color:#4a83b2; background:#e1f0fb; color:#0b5789; }
.footer-actions .submit-answer-button { border-color:#29466f; background:#29466f; color:#fff; }

.mock-result-view { max-width:1180px; }
.result-hero { padding:38px; border-radius:24px; background:linear-gradient(145deg,#123a58,#1f6b91); color:#fff; text-align:center; }
.result-hero .eyebrow { color:#8bd5ff; }
.result-hero h1 { margin:8px 0 20px; }
.result-decision { display:inline-flex; flex-direction:column; align-items:center; justify-content:center; min-width:300px; min-height:132px; padding:20px 34px; border:7px solid rgba(255,255,255,.24); border-radius:22px; background:#fff; box-shadow:inset 0 0 0 1px #c7dce8; }
.result-decision.pass { color:#087046; }
.result-decision.fail { color:#ae3434; }
.result-decision strong { font-size:48px; line-height:1.1; }
.result-decision span { max-width:420px; margin-top:10px; font-weight:800; line-height:1.45; }
.decision-standard { margin:0 auto 22px; color:#d6e8f3; font-size:14px; font-weight:800; }
.decision-text { font-weight:900; }
.decision-text.pass { color:#087046; }
.decision-text.fail { color:#ae3434; }
.result-metrics { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; max-width:720px; margin:24px auto; }
.result-metrics div { padding:13px; border-radius:13px; background:rgba(255,255,255,.12); }
.result-metrics strong { display:block; font-size:24px; }
.result-metrics span { display:block; margin-top:3px; color:#d6e8f3; font-size:13px; }
.result-actions { justify-content:center; }
.review-panel { margin-top:18px; }
.review-list { display:grid; gap:12px; }
.review-item { padding:18px; border:1px solid var(--mock-line); border-left:6px solid var(--mock-green); border-radius:13px; background:#fff; }
.review-item.wrong { border-left-color:var(--mock-red); background:#fffafa; }
.review-item h3 { margin:0 0 10px; font-size:17px; line-height:1.5; }
.review-question-example { margin:10px 0 13px; padding:10px 12px; border:1px solid #57636c; background:#fff; line-height:1.5; }
.review-question-example p { margin:2px 0; }
.review-item .review-meta { display:flex; gap:8px; margin-bottom:8px; color:var(--mock-muted); font-size:13px; }
.review-answer { display:grid; gap:5px; color:#40596b; font-size:14px; }
.review-answer .correct-answer { color:#087046; font-weight:800; }
.review-answer .wrong-answer { color:#ae3434; font-weight:800; }

@media (max-width: 1400px) {
  .waiting-topbar { grid-template-columns:minmax(240px,.7fr) minmax(320px,1fr) minmax(350px,.9fr); padding:0 12px; }
  .waiting-candidate-badge { flex-basis:50px; width:50px; height:50px; font-size:25px; }
  .waiting-candidate-block strong { font-size:14px; }
  .waiting-clock-block { grid-template-columns:40px minmax(145px,auto) minmax(130px,auto); gap:7px; }
  .waiting-clock-icon { width:39px; height:39px; }
  .waiting-clock-icon::before, .waiting-clock-icon::after { left:19px; top:8px; height:13px; transform-origin:50% 11px; }
  .waiting-clock-icon::after { transform:rotate(125deg); }
  .waiting-clock-block strong { font-size:13px; }
  .waiting-panel { margin:26px auto; padding:38px 54px 34px; }
  .exam-sticky-header { grid-template-columns:minmax(220px,.68fr) minmax(280px,1fr) auto; padding:0 10px; }
  .candidate-number-badge { flex-basis:48px; width:48px; height:48px; font-size:24px; }
  .candidate-block strong { font-size:14px; }
  .toolbar-group { gap:4px; padding-left:6px; }
  .toolbar-group > span { display:none; }
  .toolbar-group button { min-width:42px; }
  .timer-block { min-width:194px; padding:7px 10px; }
  .timer-block strong { font-size:12px; }
  .exam-bottom-bar { grid-template-columns:minmax(190px,.7fr) auto minmax(500px,1fr); }
  .footer-actions button { padding:7px 9px; font-size:13px; }
}

@media (max-width: 1180px) {
  .mock-teacher-grid, .student-gate { grid-template-columns:1fr; }
  .mock-room-panel { min-height:auto; }
  .student-gate-copy { padding:38px; }
  .student-login-card { padding:38px; }
  .recent-room-item { grid-template-columns:1fr repeat(2,minmax(80px,auto)); }
  .recent-room-item .room-open-button { grid-column:1/-1; }
  .waiting-topbar { grid-template-columns:minmax(220px,.8fr) minmax(270px,1fr) minmax(300px,.9fr); }
  .waiting-topbar h1 { font-size:21px; }
  .waiting-clock-icon { display:none; }
  .waiting-clock-block { grid-template-columns:minmax(140px,auto) minmax(125px,auto); }
  .waiting-body { grid-template-columns:180px minmax(0,1fr); }
  .waiting-sidebar span { font-size:19px; }
  .waiting-panel { width:min(900px,calc(100% - 36px)); padding:34px 40px 30px; }
  .exam-title-block > strong { font-size:18px; }
  .font-toolbar { display:none; }
  .exam-bottom-bar { grid-template-columns:auto minmax(0,1fr); }
  .footer-save { display:none; }
  .question-navigation { grid-column:1; }
  .footer-actions { grid-column:2; overflow-x:auto; }
}

@media (max-width: 900px) {
  body.cbt-waiting-active { overflow:hidden; }
  .cbt-waiting-view { grid-template-rows:auto minmax(0,1fr) 58px; }
  .waiting-topbar { grid-template-columns:minmax(0,1fr) auto; grid-template-rows:auto auto; gap:7px 12px; padding:9px 13px 11px; }
  .waiting-candidate-block { grid-column:1; grid-row:1; }
  .waiting-candidate-badge { flex-basis:42px; width:42px; height:42px; font-size:21px; }
  .waiting-candidate-block strong { font-size:12px; }
  .waiting-topbar h1 { grid-column:1/-1; grid-row:2; font-size:19px; text-align:left; }
  .waiting-clock-block { grid-column:2; grid-row:1; grid-template-columns:auto auto; gap:7px; }
  .waiting-clock-block strong { font-size:11px; }
  .waiting-entry-time { padding-left:8px; }
  .waiting-body { grid-template-columns:1fr; grid-template-rows:48px minmax(0,1fr); }
  .waiting-sidebar { grid-template-columns:repeat(5,minmax(0,1fr)); grid-template-rows:48px; border-right:0; border-bottom:1px solid #b8c8dc; }
  .waiting-sidebar span { border-right:1px solid #d0d9e4; border-bottom:0; font-size:13px; }
  .waiting-content { grid-template-rows:56px minmax(0,1fr); }
  .waiting-content > h2 { font-size:24px; }
  .waiting-panel { width:calc(100% - 24px); margin:16px auto; padding:24px 22px 22px; border-radius:12px; }
  .waiting-panel h3 { font-size:22px; line-height:1.4; }
  .waiting-instruction, .waiting-warning { margin-top:8px; font-size:15px; }
  .waiting-warning { margin-top:0; }
  .waiting-exam-table { margin:20px 0 17px; }
  .waiting-exam-table th, .waiting-exam-table td { padding:10px 12px; font-size:14px; }
  .waiting-note { margin-bottom:14px; font-size:13px; }
  .waiting-start-button { min-width:136px; min-height:44px; font-size:16px; }
  .waiting-footer { min-height:58px; gap:12px; }
  .waiting-footer span { font-size:12px; }
  .waiting-footer strong { padding:8px 18px; font-size:16px; }
  body.cbt-exam-active { overflow:hidden; }
  .mock-exam-view { width:100%; height:100dvh; margin:0; grid-template-rows:58px minmax(0,1fr) 56px; }
  .exam-sticky-header { position:relative; grid-template-columns:minmax(0,1fr) auto; gap:8px; min-height:58px; padding:7px 10px; }
  .candidate-block, .cbt-toolbar { display:none; }
  .exam-title-block { grid-column:1; grid-row:1; text-align:left; }
  .exam-title-block > strong { overflow:hidden; font-size:16px; text-overflow:ellipsis; white-space:nowrap; }
  .exam-title-block > span { display:block; margin-top:2px; font-size:11px; }
  .timer-block { grid-column:2; grid-row:1; min-width:116px; height:44px; padding:4px 8px; border-radius:8px; }
  .timer-block > span { display:none; }
  .timer-block strong:first-child { display:none; }
  .timer-block strong { font-size:12px; }
  #exam-timer { font-size:16px; }
  .exam-layout { grid-template-columns:1fr; }
  .exam-question-panel { min-height:0; overflow-y:auto; overscroll-behavior:contain; padding:11px 12px 18px; scrollbar-gutter:stable; }
  .mock-exam-view[data-screen-layout="2"] .question-content-layout { display:block; }
  .question-heading-row { gap:8px; }
  .question-heading-row > div { min-width:0; flex:1 1 auto; }
  .question-heading-row #question-number { padding:6px 10px; font-size:14px; }
  .question-heading-row #question-number.checked::after { right:-8px; top:-8px; width:19px; height:19px; font-size:12px; }
  #question-area { min-width:0; max-width:none; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .check-question-button { min-height:34px; padding:3px 7px; font-size:11px; }
  .check-question-button span { font-size:17px; }
  .question-guide { display:none; }
  .exam-question-panel h2 { margin:10px 0 11px; font-size:20px; line-height:1.42; }
  .question-example { margin:5px 0 12px; padding:9px 11px; font-size:17px; line-height:1.42; }
  .mock-options { gap:4px; margin-top:7px; }
  .mock-option { grid-template-columns:30px minmax(0,1fr); gap:5px; min-height:39px; padding:6px 7px; border:1px solid #cbd9e3; border-radius:8px; font-size:17px; line-height:1.38; }
  .mock-option.selected { outline:1px solid #83bce4; }
  .mock-option b { font-size:20px; line-height:1.2; }
  .answer-sheet-panel { position:fixed; z-index:80; top:6px; right:6px; bottom:62px; width:min(370px,calc(100% - 12px)); grid-template-rows:46px 48px 34px minmax(0,1fr); border:1px solid #8fa4bd; box-shadow:0 18px 60px rgba(12,38,62,.32); transform:translateX(calc(100% + 14px)); transition:transform .2s ease; }
  body.answers-open .answer-sheet-panel { transform:translateX(0); }
  .answer-sheet-title { justify-content:space-between; padding:0 12px; }
  .answer-sheet-title button { display:block; }
  .mobile-answer-filters { display:grid; grid-template-columns:repeat(3,1fr); gap:5px; padding:6px; border-bottom:1px solid #c8d3e0; background:#f5f7fa; }
  .mobile-answer-filters button { min-width:0; border:1px solid #c7d2df; border-radius:7px; background:#fff; color:#445c70; font-size:12px; font-weight:900; white-space:nowrap; }
  .mobile-answer-filters button b { display:inline-grid; place-items:center; min-width:20px; height:20px; margin-left:2px; padding:0 4px; border-radius:10px; background:#edf2f6; font-size:11px; }
  .mobile-answer-filters button.active { border-color:#72add3; background:#eaf5fb; color:#0b5d90; }
  .mobile-answer-filters button[data-mobile-answer-filter="checked"].active { border-color:#efa0bf; background:#fff0f6; color:#b83268; }
  .mobile-answer-filters button[data-mobile-answer-filter="unanswered"].active { border-color:#dfbd68; background:#fff7dd; color:#7b5800; }
  .exam-bottom-bar { display:flex; align-items:center; justify-content:center; gap:5px; min-height:56px; padding:5px 6px; overflow:hidden; }
  .question-navigation { flex:0 0 auto; gap:0; }
  .question-navigation button { min-width:57px; min-height:42px; padding:5px 7px; font-size:13px; }
  .question-navigation strong { min-width:35px; padding:0 3px; font-size:13px; }
  .footer-actions { flex:0 0 auto; display:flex; justify-content:flex-start; gap:4px; width:auto; overflow:visible; padding:0; }
  .footer-actions button { display:none; min-height:42px; padding:5px 7px; flex:0 0 auto; font-size:11px; }
  .footer-actions #show-all-questions, .footer-actions .submit-answer-button { display:block; }
  .footer-save { display:none; }
}

@media (max-width: 680px) {
  .service-header { position:static; }
  .mock-shell, .mock-result-view { width:min(100% - 20px, 1440px); margin-top:14px; }
  .mock-title-row { align-items:flex-start; flex-direction:column; }
  .mock-basic-fields { grid-template-columns:1fr; }
  .bank-badge { width:100%; }
  .three-fields, .frequency-plan, .result-metrics { grid-template-columns:repeat(2,1fr); }
  .room-share-grid { grid-template-columns:1fr; }
  .mock-room-panel .qr-box { width:230px; height:230px; }
  .student-gate { margin:16px auto; border-radius:20px; }
  .student-gate-copy, .student-login-card { padding:28px 22px; }
  .student-gate-copy h1 { font-size:36px; }
  .waiting-topbar { gap:6px 8px; padding:8px 9px 9px; }
  .waiting-candidate-block { gap:7px; }
  .waiting-candidate-badge { flex-basis:38px; width:38px; height:38px; font-size:19px; }
  .waiting-candidate-block strong, .waiting-clock-block strong { font-size:10px; }
  .waiting-clock-block { gap:5px; }
  .waiting-entry-time { padding-left:5px; }
  .waiting-topbar h1 { font-size:17px; }
  .waiting-sidebar span { font-size:11px; }
  .waiting-content { grid-template-rows:48px minmax(0,1fr); }
  .waiting-content > h2 { font-size:21px; }
  .waiting-panel { padding:20px 14px 18px; }
  .waiting-panel h3 { font-size:19px; }
  .waiting-exam-table th { width:31%; }
  .waiting-exam-table th, .waiting-exam-table td { padding:9px 8px; font-size:13px; overflow-wrap:anywhere; }
  .waiting-note { font-size:12px; }
  .exam-title-block > strong { font-size:14px; }
  .timer-block { min-width:105px; }
  .exam-question-panel h2 { font-size:20px; }
  .question-example { font-size:17px; }
  .mock-option { grid-template-columns:29px 1fr; font-size:17px; }
  .mock-option b { font-size:20px; }
  .question-navigation button { min-width:52px; padding:4px 5px; }
  .footer-actions button { padding:5px 6px; font-size:10px; }
  .recent-room-item { grid-template-columns:1fr 1fr; }
  .recent-room-item > div:first-child { grid-column:1/-1; }
  .result-hero { padding:28px 16px; }
  .mock-roster-heading { align-items:flex-start; flex-direction:column; }
}

.question-example{font-size:calc(19px * var(--exam-scale))!important;line-height:1.65!important;border:1px solid #9aabb5!important;border-radius:10px!important;background:#f8fafb!important}
.question-example p{margin:5px 0!important}
.recent-room-actions{display:flex;gap:6px;align-items:center}
.room-delete-button{border-color:#e1a2a2!important;color:#a93232!important;background:#fff7f7!important}
@media(max-width:560px){.question-example{font-size:16px!important}.recent-room-actions{flex-direction:column}}


.question-example .ab-head{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 10px}.question-example .ab-head span{display:block;padding:8px 10px;border-radius:10px;background:#eef5f9;color:#204862;font-weight:700}.question-example .ab-head strong{margin-right:6px}.mock-option .option-split{display:grid;grid-template-columns:minmax(115px,.9fr) minmax(0,1.5fr);gap:10px;width:100%}.mock-option .ab-left{display:block;padding-right:10px;border-right:1px solid #d6e0e7;font-weight:700;color:#0e4f82}.mock-option .ab-right{display:block}.review-option .option-split{display:grid;grid-template-columns:minmax(110px,.9fr) minmax(0,1.5fr);gap:10px;width:100%}.review-option .ab-left{display:block;padding-right:10px;border-right:1px solid #d6e0e7;font-weight:700;color:#0e4f82}

/* V17.5.4: 가/나/다/라 제시문은 각각 독립된 칸으로 표시 */
.question-example p{
  padding:7px 9px!important;
  border:1px solid #d4dfe6!important;
  border-radius:7px!important;
  background:#fff!important;
  margin:6px 0!important;
}

/* V17.5.7 그림 선택지 숫자만 표시 */
.number-only-option{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:52px!important;
}
.image-number-only{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:24px;
  font-weight:900;
  color:#176a92;
}
.number-only-option.selected .image-number-only{color:#0b5a91}


/* V17.8.9 모의고사 관리자 입력·선택 가독성 */
.mock-settings-panel label{
  font-size:18px;
  line-height:1.45;
  font-weight:800;
}
.mock-settings-panel input,
.mock-settings-panel select{
  min-height:54px;
  font-size:18px;
  font-weight:650;
  padding:0 16px;
}
.mock-settings-panel select option{
  font-size:18px;
}
.mock-group-field .roster-format-help{
  margin-top:8px;
  font-size:15px;
  line-height:1.55;
}
.mock-retake{
  min-height:58px;
  padding:12px 14px;
}
.mock-retake strong{
  font-size:17px;
}
.mock-retake small{
  font-size:14px;
  line-height:1.45;
}
.mock-settings-panel > .primary-button{
  min-height:60px;
  font-size:18px;
  font-weight:850;
}

.mock-settings-panel .panel-title-row h2{
  font-size:30px;
  line-height:1.2;
  letter-spacing:-.03em;
}
.mock-basic-fields{
  align-items:end;
}
.mock-basic-fields > label,
.mock-group-field{
  min-height:92px;
}
.mock-basic-fields > label,
.mock-group-field > label{
  display:grid;
  grid-template-rows:auto 54px;
  align-content:end;
}
.mock-group-field .roster-format-help{
  display:none!important;
}
.three-fields{
  align-items:end;
}
.three-fields > label{
  min-height:92px;
}
.mock-retake{
  min-height:54px;
  height:54px;
  display:flex;
  align-items:center;
}
.mock-retake span{
  display:flex;
  align-items:center;
}
.mock-retake strong{
  line-height:1.25;
}


/* V17.8.9 관리자 모의고사 폼 가독성 개선 */
.mock-settings-panel{
  padding:38px 40px 40px;
  border-radius:20px;
  border:1px solid #d7e1e8;
  box-shadow:0 8px 24px rgba(28,59,79,.045);
}
.mock-settings-panel .panel-title-row{
  margin-bottom:34px;
  padding-bottom:24px;
  border-bottom:1px solid #e5ecf1;
}
.mock-settings-panel .panel-kicker{
  display:block;
  margin-bottom:7px;
  font-size:14px;
  letter-spacing:.05em;
}
.mock-settings-panel .panel-title-row h2{
  margin:0;
  font-size:34px;
  line-height:1.2;
  letter-spacing:-.035em;
}
.mock-basic-fields{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);
  gap:28px;
  align-items:end;
  margin-bottom:30px;
}
.mock-basic-fields > label,
.mock-group-field{
  min-height:auto;
}
.mock-basic-fields > label,
.mock-group-field > label{
  display:grid;
  grid-template-rows:auto 58px;
  gap:12px;
  align-content:end;
}
.mock-settings-panel label{
  margin:0;
  font-size:19px;
  line-height:1.45;
  font-weight:800;
  color:#243f53;
}
.mock-settings-panel input,
.mock-settings-panel select{
  min-height:58px;
  height:58px;
  border:1px solid #b9cbd8;
  border-radius:12px;
  padding:0 17px;
  background:#fff;
  font-size:18px;
  font-weight:650;
  color:#16344a;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5);
}
.mock-settings-panel input:focus,
.mock-settings-panel select:focus{
  outline:3px solid rgba(42,120,166,.16);
  border-color:#4c8eb5;
}
.three-fields{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:22px;
  align-items:end;
  margin:0 0 32px;
}
.three-fields > label{
  min-height:auto;
  display:grid;
  grid-template-rows:auto 58px;
  gap:12px;
}
.mock-retake{
  min-height:58px;
  height:58px;
  margin:0!important;
  padding:0 18px;
  display:flex;
  align-items:center;
  gap:12px;
  border:1px solid #b9cbd8;
  border-radius:12px;
  background:#f9fbfc;
}
.mock-retake input{
  width:19px;
  height:19px;
  min-height:0;
  margin:0;
  flex:0 0 auto;
}
.mock-retake span{
  display:flex;
  align-items:center;
}
.mock-retake strong{
  font-size:17px;
  line-height:1.35;
}
.mock-settings-panel > .primary-button{
  min-height:64px;
  margin-top:4px;
  border-radius:12px;
  font-size:19px;
  font-weight:850;
  letter-spacing:-.01em;
}
.recent-room-panel{
  margin-top:28px;
}
@media(max-width:980px){
  .mock-settings-panel{padding:30px 26px}
  .mock-basic-fields{grid-template-columns:1fr}
  .three-fields{grid-template-columns:1fr}
}
