.mock-answer-question {
  position: sticky;
  top: 0;
  z-index: 1;
  margin: 0;
  padding: 11px 4px;
  background: #e9f6f3;
  border-bottom: 1px solid #bedbd3;
  color: #176b61;
  font-size: .95rem;
}
.mock-answer-item input {
  width: 100%;
  border: 1px solid #cbdbe4;
  border-radius: 7px;
  background: #fafcfd;
  color: #18334a;
  padding: 9px 11px;
}
.mock-answer-item label { line-height: 1.5; }
.mock-answer-format { color: #647f90; font-size: .75rem; margin-top: -5px; }
.mock-question-nav { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.mock-question-nav button { border: 1px solid #bfd8d4; border-radius: 6px; background: #f3faf8; color: #176b61; padding: 6px 9px; font-weight: 700; cursor: pointer; }
.mock-question-nav button:hover { background: #e2f2ed; }
.mock-question-selection { display: grid; gap: 10px; margin: 15px 0 17px; }
.mock-question-selection[hidden] { display: none; }
.mock-question-selection strong { color: #183f50; font-size: .9rem; }
.mock-question-selection>span { color: #647f90; font-size: .8rem; }
.mock-selection-options { display: flex; flex-wrap: wrap; gap: 8px; }
.mock-selection-options label { display: flex; align-items: center; gap: 6px; padding: 7px 10px; border: 1px solid #cbdbe4; border-radius: 7px; background: #fff; cursor: pointer; }
.mock-selection-options label:has(input:checked) { border-color: #2f9c87; background: #eaf7f3; }
.mock-report-row { grid-template-columns: minmax(120px, 180px) 86px minmax(0, 1fr); }
.mock-report-summary { grid-template-columns: repeat(auto-fit, minmax(135px, 1fr)); }
.answer-panel a { display: inline-block; margin-top: 6px; color: #087e70; font-weight: 700; }
@media (max-width: 610px) {
  .mock-report-row { grid-template-columns: minmax(0, 1fr) 80px; }
  .mock-report-row p { grid-column: 1 / -1; }
}
.quiz-paper { margin: 1.25rem 0; }
.quiz-paper-source { font-size: .88rem; line-height: 1.6; color: #52677a; }
.quiz-paper-controls { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; margin: .75rem 0; }
.quiz-paper-controls button { border: 1px solid #bfd0d9; border-radius: .5rem; background: #fff; color: #16354c; padding: .45rem .7rem; cursor: pointer; }
.quiz-paper-controls button:disabled { opacity: .45; cursor: default; }
.quiz-paper-controls span { min-width: 7rem; text-align: center; font-size: .85rem; }
.quiz-paper-scroll { width: 100%; max-height: 65vh; overflow: auto; border: 1px solid #d7e1e8; background: #f7f9fa; }
.quiz-paper-scroll canvas { display: block; }
.quiz-paper-hint { font-size: .88rem; color: #52677a; line-height: 1.6; }
.quiz-text { margin: 1.25rem 0; }
.quiz-text-stem { white-space: pre-wrap; line-height: 1.85; font-size: 1.08rem; color: #18334a; }
.mock-session-active .main { max-width: none; padding-inline: clamp(16px, 2vw, 32px); }
.mock-session-active .mock-columns { grid-template-columns: minmax(0, 3fr) minmax(300px, 1fr); }
.mock-session-active .mock-document-scroll { height: auto; overflow: visible; }
.mock-session-active .mock-question-pane iframe { height: 82vh; min-height: 760px; }
.mock-session-active .mock-answer-pane { position: sticky; top: 16px; }
@media (max-width: 1200px) {
  .mock-session-active .mock-columns { grid-template-columns: 1fr; }
  .mock-session-active .mock-answer-pane { position: static; }
}
/* Keep explanations readable on phones, including long protocol names. */
.choice-explanations { margin-top: 22px; color: var(--ink, #102a43); }
.choice-explanations h2 { font-size: 1rem; margin: 0 0 12px; }
.choice-note { padding: 14px; margin: 10px 0; background: #fff; border: 1px solid #d9e2ec; border-radius: 10px; overflow-wrap: anywhere; }
.choice-note h3 { font-size: .95rem; margin: 0 0 8px; }
.choice-note p { margin: 6px 0 0; line-height: 1.8; }
.choice-note.is-answer { border-left: 4px solid #16816a; }
.choice-note.is-selected { outline: 2px solid #334e68; outline-offset: 1px; }
.choice-note-option { color: #526577; font-size: .9rem; }
.document-page { max-width: 1100px; margin: auto; padding: 20px; }
.document-page h1 { font-size: 1.4rem; }
.topbar { justify-content: flex-end; }
@media (max-width: 610px) { .topbar { display: none; } }
.question-content { white-space: normal; line-height: 1.85; overflow-wrap: anywhere; min-width: 0; }
.question-content p { white-space: pre-wrap; margin: 0 0 1.1em; }
.question-content pre { white-space: pre-wrap; overflow-wrap: anywhere; padding: 14px; background: #f1f5f8; border-radius: 8px; font-size: .92em; }
.question-table-scroll { overflow-x: auto; max-width: 100%; margin: 16px 0; }
.question-content table { border-collapse: collapse; font-size: .92em; width: 100%; }
.question-content th,.question-content td { border: 1px solid #b9cbd5; padding: 8px 10px; min-width: 58px; text-align: left; }
.question-content th { background: #eaf1f5; }
.question-figure { margin: 20px 0; padding: 12px; background: white; border: 1px solid #d9e2ec; border-radius: 10px; }
.question-figure img { display: block; max-width: 100%; max-height: 680px; width: auto; height: auto; margin: auto; }
.question-figure figcaption { color: #526577; font-size: .82rem; margin-top: 8px; }
.figure-enlarge,.text-question-controls button { background: white; border: 1px solid #7c99a9; border-radius: 7px; color: #18334a; padding: 9px 12px; margin-top: 8px; min-height: 44px; }
.figure-dialog { width: min(1100px, 96vw); max-width: 96vw; padding: 14px; border: 0; border-radius: 12px; max-height: 92dvh; }
.figure-dialog::backdrop { background: #102a43bb; }
.figure-dialog-controls { display: flex; gap: 10px; align-items: center; margin-bottom: 12px; }
.figure-dialog-controls strong { flex: 1; font-size: .9rem; }
.figure-dialog-controls button { min-width: 44px; min-height: 44px; }
.figure-dialog-scroll { overflow: auto; max-height: 72dvh; background: white; }
.figure-dialog-scroll img { display: block; width: 100%; max-width: none; height: auto; }
.choice > span:last-child { min-width: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.choice[aria-pressed="true"] { border-color: #087e70; background: #e9f7f2; }
#mock-text-questions { padding: clamp(14px, 3vw, 28px); }
.text-question-controls { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 22px; }
.text-question-controls button { margin: 0; }
.frequency-note { color: #376f65; background: #eaf7f3; padding: 10px 12px; border-radius: 8px; font-size: .88rem; line-height: 1.7; overflow-wrap: anywhere; }
.question-position { display:flex; align-items:center; gap:7px; flex-wrap:wrap; font-size:.88rem; }
.question-position input { width:70px; min-height:44px; padding:8px; font:inherit; border:1px solid #9bb2c2; border-radius:7px; }
.question-actions { justify-content:space-between; align-items:center; gap:12px; }
.question-actions .text-button { min-height:44px; }
.resume-button { display:block; margin-top:16px; }
#storage-status { color:#a12a25; line-height:1.7; }
#app-settings { margin-top:20px; padding:16px; border:1px solid #d9e2ec; border-radius:10px; }
#app-settings summary { cursor:pointer; font-weight:700; margin-bottom:12px; }
#app-settings .field { margin:12px 0; }
#app-settings input[type="url"],#app-settings input[type="time"] { min-height:44px; font:inherit; padding:8px; min-width:0; max-width:100%; }
.reminder-toggle { display:flex; align-items:center; gap:10px; line-height:1.6; }
.reminder-toggle input { width:20px; height:20px; }
.settings-note,#download-status { color:#526577; font-size:.9rem; line-height:1.7; }
.glossary { margin-top: 22px; padding-top: 16px; border-top: 1px solid #cbd5e1; }
.glossary dt { font-weight: 700; margin-top: 10px; }
.glossary dd { margin: 3px 0 10px; overflow-wrap: anywhere; }
#site-overview { margin-top: 32px; padding: 24px; background: #fff; border-radius: 16px; }
#site-overview ul { display: grid; gap: 10px; padding-left: 20px; }
.android-app #site-overview { display: none; }
.text-question-controls { flex-wrap: wrap; }
.text-question-controls input { width: 66px; min-height: 44px; border: 1px solid #7c99a9; border-radius: 7px; font: inherit; padding: 6px; }
.question-originals summary { cursor: pointer; margin: 18px 0; color: #526577; }
.sidebar { position:sticky; top:0; height:100dvh; min-height:0; overflow-y:auto; }
.menu-toggle,.menu-close { display:none; }
.notification-settings { margin:24px 0; border-top:1px solid #35536a; padding-top:18px; }
.notification-settings summary { font-weight:700; cursor:pointer; min-height:44px; display:flex; align-items:center; }
.notification-description,.notification-settings .settings-note,.reminder-empty { color:#c6d7e4; font-size:.8rem; line-height:1.7; }
.reminder-row { display:flex; align-items:center; flex-wrap:wrap; gap:10px; padding:14px 0; border-bottom:1px solid #35536a; }
.reminder-row label { display:flex; align-items:center; gap:6px; font-size:.85rem; }
.reminder-row input[type=checkbox] { width:20px; height:20px; }
.reminder-row input[type=time] { min-height:44px; width:122px; font:inherit; border:1px solid #9bb2c2; border-radius:7px; padding:6px; color:#18334a; background:#fff; }
.reminder-row button,#add-reminder { min-height:44px; border:1px solid #6f91a8; color:#fff; background:#23445d; padding:8px 12px; border-radius:7px; font:inherit; }
#add-reminder { margin-top:16px; width:100%; }
#add-reminder:disabled { opacity:.5; cursor:default; }
#reminder-status { color:#ffd7ce; line-height:1.6; font-size:.85rem; }
#app-settings.notification-settings { margin:24px 0; padding:18px 0 0; border:0; border-top:1px solid #35536a; border-radius:0; }
#app-settings.notification-settings summary { margin:0; }
.menu-backdrop { position:fixed; inset:0; z-index:50; border:0; background:#102a4399; }
@media(max-width:850px) {
  .shell { display:block; }
  .main,.mock-session-active .main { padding-top:62px; }
  .sidebar { position:fixed; inset:0 auto 0 0; z-index:60; width:min(320px,88vw); height:100dvh; padding:18px 20px; min-height:0; flex-direction:column; align-items:stretch; flex-wrap:nowrap; gap:0; transform:translateX(-100%); visibility:hidden; }
  .sidebar .brand { padding:16px 0 24px; }
  .sidebar .navigation { display:grid; width:100%; margin:0; gap:8px; }
  .sidebar .nav-button { justify-content:flex-start; flex:initial; padding:15px 14px; font-size:1rem; }
  .sidebar .nav-icon { display:inline-block; }
  .sidebar .sidebar-note { display:block; margin-top:auto; }
  .menu-open { overflow:hidden; }
  .menu-open .sidebar { transform:none; visibility:visible; }
  .menu-toggle { display:block; position:fixed; top:12px; left:16px; z-index:40; min-height:44px; color:#fff; background:#102a43; border:0; border-radius:8px; padding:10px 15px; font:inherit; }
  .menu-close { display:block; align-self:flex-end; min-height:44px; padding:8px 12px; color:#fff; background:#23445d; border:1px solid #6f91a8; border-radius:7px; font:inherit; }
}
