/* Phone layouts prioritize reading and comfortable touch controls. */
@media (max-width:600px), (max-width:900px) and (max-height:500px) {
  .main-content { width:calc(100% - 32px); padding:26px 0 40px; }
  .site-header { height:76px; padding-inline:20px; }
  .header-status { max-width:116px; font-size:.7rem; }
  .setup-hero { padding:0 4px 30px; }
  .hero-content h1 { font-size:2.25rem; line-height:1.12; margin:12px 0 14px; }
  .hero-content .eyebrow { font-size:.7rem; margin-bottom:10px; }
  .hero-description { font-size:1rem; line-height:1.65; }
  .setup-layout { gap:28px; }
  .setup-card { padding:26px 20px; border-radius:18px; }
  .setup-card-heading { gap:12px; margin-bottom:28px; align-items:center; }
  .setup-card-heading h2 { font-size:2rem; line-height:1.15; }
  .setup-card-heading .eyebrow { font-size:.68rem; margin-bottom:6px; }
  .step-number { width:38px; height:38px; flex:0 0 38px; font-size:.85rem; }
  .level-picker legend,.mode-picker legend,.setup-field .field-label { font-size:1rem; margin-bottom:12px; font-weight:600; }
  .level-options { gap:8px; }
  .level-option { flex-direction:column; align-items:center; justify-content:center; gap:10px; min-height:90px; padding:12px 6px; border-radius:10px; }
  .level-code { width:34px; height:34px; font-size:.95rem; }
  .level-text { font-size:.85rem; line-height:1.3; }
  .setup-fields { grid-template-columns:minmax(0,1fr); gap:24px; margin-top:28px; }
  .setup-field { gap:0; }
  .setup-field .field-label { margin:0 0 10px; }
  .select-field { min-height:56px; padding:12px 14px; font-size:1rem; line-height:1.4; border-radius:10px; }
  .mode-picker { margin-top:30px; }
  .mode-options { grid-template-columns:minmax(0,1fr); gap:12px; margin-top:0; }
  .mode-option { min-height:80px; align-items:center; padding:16px; gap:14px; border-radius:10px; }
  .mode-option input { width:22px; height:22px; flex:0 0 22px; }
  .mode-option span { display:block; }
  .mode-option strong { font-size:1rem; line-height:1.4; }
  .mode-option small { display:block; font-size:.875rem; line-height:1.5; margin-top:5px; }
  #mode-description { margin:14px 0 0; font-size:.875rem; line-height:1.6; }
  .timer-setting { gap:14px; align-items:center; margin:26px 0 28px; }
  .timer-setting strong { font-size:1rem; line-height:1.4; }
  .timer-setting small { font-size:.875rem; line-height:1.5; margin-top:5px; }
  .switch-track { flex-shrink:0; }
  .setup-card > .button { min-height:56px; padding:14px 16px; font-size:1rem; border-radius:10px; }
  .exam-summary { margin:16px 0 0; font-size:.875rem; line-height:1.6; }
  .last-result-button { min-height:48px; margin-top:14px; font-size:.95rem; }
  .how-card { padding:28px 24px; border-radius:18px; }
  .how-card .eyebrow,.library-heading .eyebrow { font-size:.75rem; }
  .how-card h2,.library-heading h2 { font-size:2rem; line-height:1.15; }
  .how-list { gap:24px; margin:28px 0; }
  .how-list p { font-size:1rem; line-height:1.65; }
  .how-footer { font-size:.875rem; line-height:1.5; }
  .library-section { margin-top:36px; }
  .paper-library { grid-template-columns:1fr; margin-top:20px; }
  .library-item,.library-item:nth-child(n) { grid-column:auto; border-right:0; border-top:1px solid var(--line); padding:20px; min-height:104px; }
  .library-item:first-child { border-top:0; }
  .library-item strong { font-size:1.25rem; }
  .library-item span { font-size:1rem; }
  .library-item em { font-size:.72rem; line-height:1.5; margin-top:10px; }
  .official-note { font-size:.875rem; line-height:1.6; margin-top:20px; }

  .runner-topbar { min-height:90px; }
  .back-button { font-size:.875rem; min-height:44px; }
  .runner-paper-label { font-size:.65rem; }
  .timer-widget { min-width:136px; }
  .timer-value { font-size:1.15rem; }
  .timer-toggle { width:44px; height:44px; }
  .section-nav { gap:10px; margin:18px 0 28px; }
  .section-nav button { min-height:50px; font-size:.875rem; }
  .section-intro { margin-bottom:24px; }
  .section-intro h1 { font-size:2.4rem; line-height:1.1; }
  .section-intro > div:first-child > p:last-child { font-size:1rem; line-height:1.6; }
  .section-progress > span { font-size:.875rem; }
  .document-toolbar { padding:16px; gap:12px; }
  .document-title { min-width:0; }
  .document-title strong { font-size:.875rem; line-height:1.4; }
  .document-title small { font-size:.75rem; line-height:1.4; margin-top:4px; }
  .document-part-tabs { padding:14px 16px; gap:10px; }
  .document-part-tabs button { min-height:48px; min-width:72px; font-size:.875rem; }
  .question-content { padding:22px 18px; gap:28px; }
  .question-page { padding:0; }
  .question-page + .question-page { padding-top:24px; }
  .question-page-label { font-size:.75rem; }
  .question-copy,.question-copy-layout { font-size:1rem; line-height:1.85; }
  .question-text-heading { font-size:1.75rem; line-height:1.25; }
  .question-map-summary { padding:16px; font-size:.875rem; line-height:1.5; }
  .document-panel > .question-map { margin:16px 16px 0; }
  .document-panel .answer-panel { padding:22px 16px; }
  .document-panel .answer-fields { gap:18px; }
  .answer-item.has-option-text { padding:16px; gap:12px; }
  .answer-item.has-option-text > .answer-stem { font-size:1rem; line-height:1.65; }
  .answer-item.has-option-text > .answer-choices { gap:10px; }
  .answer-item.has-option-text .answer-choice { min-height:52px; padding:13px 14px; font-size:1rem; line-height:1.5; }
  #question-content .inline-answer > .question-flag { width:44px; flex-basis:44px; }
  .inline-answer input,.inline-answer select { min-height:48px; }
  .answer-choices .answer-choice { min-height:48px; font-size:1rem; }
  .answer-help,.part-instruction { font-size:.875rem; line-height:1.6; }
  .answer-item input[type="text"],.answer-select { font-size:1rem; min-height:48px; }
  .answer-footer,.runner-answer-status { font-size:.8rem; line-height:1.5; }
  .runner-actions { gap:12px; margin-top:28px; padding-top:24px; }
  .runner-actions .button { min-height:54px; font-size:.95rem; padding:12px; }
  .runner-view > .audio-panel { padding:18px; gap:12px; grid-template-columns:minmax(0,1fr); }
  .runner-view > .audio-panel .audio-heading,.runner-view > .audio-panel .audio-speed-label,.runner-view > .audio-panel .audio-speed,.runner-view > .audio-panel .audio-tracks { grid-column:1; grid-row:auto; }
  .runner-view > .audio-panel .audio-speed-label { font-size:.875rem; }
  .runner-view > .audio-panel .audio-speed,.runner-view > .audio-panel .audio-track-select { font-size:1rem; min-height:48px; }
  .runner-view > .audio-panel .audio-track-label,.runner-view > .audio-panel .audio-track-note { font-size:.875rem; line-height:1.5; }
  .runner-view > .audio-panel .audio-tracks { gap:10px; }

  .writing-response,.speaking-response { padding:24px 18px; margin-top:24px; }
  .writing-prompts { gap:28px; }
  .writing-prompt-card { padding:20px 16px; }
  .writing-prompt-text,.writing-prompt-card ul,.writing-instruction,.speaking-response p:last-child { font-size:1rem; line-height:1.75; }
  .writing-prompt-context,.writing-prompt-instruction,.writing-counter,.writing-limit,.writing-group-heading > span { font-size:.875rem; line-height:1.6; }
  .writing-option strong,.writing-field label { font-size:1rem; }
  .writing-option small { font-size:.875rem; }
  .writing-field textarea { padding:16px; font-size:1rem; min-height:280px; }
  .speaking-task { padding:22px 18px; }
  .speaking-task > p:not(.speaking-context),.speaking-task ul,.speaking-part-intro p,.speaking-list-block ul { font-size:1rem; line-height:1.75; }
  .speaking-context,.speaking-stimuli figcaption,.speaking-followups,.speaking-callout { font-size:.875rem; line-height:1.6; }
  .speaking-controls { gap:18px; margin-top:24px; grid-template-columns:1fr; }
  .speaking-controls .button { min-height:54px; font-size:1rem; }
  .assessment-panel { padding:26px 18px; margin-top:28px; }
  .assessment-panel h2 { font-size:2rem; line-height:1.2; margin-bottom:16px; }
  .assessment-panel p,.assessment-panel label { font-size:1rem; line-height:1.7; }
  .assessment-panel .button { min-height:54px; font-size:.95rem; padding:12px 16px; }
  .assessment-actions { gap:14px; margin-top:20px; }
  .assessment-task { padding-top:26px; margin-top:26px; }
  .assessment-note { font-size:.875rem !important; line-height:1.65; }
  .assessment-panel audio { margin:20px 0; }
  .assessment-criteria { grid-template-columns:1fr; gap:18px; margin:24px 0; }
  .assessment-criteria > * { padding:20px 16px; }
  .assessment-criteria h4 { font-size:1rem; margin-bottom:12px; }
  .assessment-criteria p,.assessment-feedback li { font-size:1rem; line-height:1.7; }
  .assessment-feedback li { margin:12px 0; }
  .assessment-access summary,.assessment-transcript summary { font-size:.95rem; line-height:1.6; padding:16px 0; }
  .result-banner { padding:30px 24px; }
  .result-banner > p:last-child,.result-key-card p:not(.eyebrow),.grade-estimate-description { font-size:1rem; line-height:1.65; }
  .result-review,.result-key-card,.grade-estimate { padding:24px 18px; }
  .grade-component > span,.grade-component small,.grade-adjustment-fields label,.grade-adjustment-fields label span,.grade-estimate-note,.result-part strong,.result-part span { font-size:.875rem; line-height:1.5; }
  .grade-component { padding:14px; }
  .grade-adjustment-fields { gap:20px; }
  .grade-adjustment-fields input { font-size:1rem; }
  .result-summary-grid { grid-template-columns:1fr; }
  .result-stat,.result-stat:nth-child(n) { min-height:86px; padding:20px 0; border-right:0; border-top:1px solid var(--line); grid-column:auto; }
  .result-stat:first-child { border-top:0; }
  .result-stat span { font-size:.875rem; }
  .result-review-part > summary strong,.result-review-part > summary span,.review-answer p strong { font-size:.95rem; line-height:1.5; }
  .review-answer-state,.review-answer p small { font-size:.8rem; }
  .site-footer { padding:24px 20px max(24px,env(safe-area-inset-bottom)); gap:14px; font-size:.8rem; line-height:1.5; }
}
@media (max-width:359px) {
  .main-content { width:calc(100% - 24px); }
  .setup-card { padding:24px 18px; }
  .level-options { grid-template-columns:1fr; }
  .level-option { flex-direction:row; justify-content:flex-start; gap:14px; padding:12px 16px; min-height:64px; }
  .level-text { font-size:1rem; }
  .hero-content h1 { font-size:2rem; }
  .setup-card-heading h2 { font-size:1.8rem; }
  .setup-card-heading .eyebrow { font-size:.63rem; }
}
@media (max-width:900px) and (max-height:500px) {
  .runner-topbar { position:static; }
}
