/* Student surfaces only. Keep paper-answer hotspots at their authored coordinates;
   enlarge the image through its own viewport instead of stretching the hotspots. */
.student-library,.student-reader { -webkit-text-size-adjust:100%; text-size-adjust:100%; }
.student-library button,.student-reader button:not(.textbook-answer-spot) { min-height:44px; }
.student-library input,.student-library select,.student-reader input { font-size:max(16px,1em); }
.student-library .sort-label select { min-height:44px; font-size:16px; }
.student-library .bookmark-button,.student-library .dialog-close,.student-reader .dialog>.close { width:44px; height:44px; min-width:44px; }
.student-library .dialog-heading>div { min-width:0; }
.student-library .dialog-heading h2,.student-reader .dialog h2 { overflow-wrap:anywhere; }
.student-reader .dialog>.close { z-index:2; background:#fffefb; }
.student-reader .dialog>h2 { padding-right:24px; }
.student-reader .dialog,.student-library .portal-dialog { max-height:calc(100vh - 24px); max-height:calc(100dvh - 24px); overflow:auto; overscroll-behavior:contain; }
.student-reader .dialog p,.student-library .portal-dialog p { overflow-wrap:anywhere; }
.student-library .book-card-actions { flex-wrap:wrap; }
.student-library .book-cover { min-width:0; width:calc(100% - 28px); }
.student-library .open-book { max-width:100%; }
.student-library .book-card-actions small { flex-shrink:0; }
.student-library .library-total { max-width:100%; }
.student-library .menu-backdrop { display:none; }
.student-reader .topbar .brand { min-width:0; }
.student-reader .brand-mark { flex-shrink:0; }
.student-reader .topbar .brand>span:last-child { min-width:0; }
.student-reader .topbar .brand strong { overflow-wrap:anywhere; }
.student-reader .topbar .nav-link { flex-shrink:0; min-height:44px; }
.student-reader .reading-size button { font-size:16px; }
.student-reader .reader-pagination button { min-width:0; overflow-wrap:anywhere; }
.student-reader .learning-sync-bar>div { min-width:0; }
.student-reader .lesson-prose,.student-reader .lesson-takeaway,.student-reader .story-question { overflow-wrap:anywhere; }
.student-reader .term-dictionary summary,.student-reader .comic-transcript summary,.student-reader .mistake-hint summary { min-height:44px; padding-block:8px; }
.student-reader .comic-zoom-stage,.student-reader .supplement-media-stage { max-height:60dvh; touch-action:pan-x pan-y pinch-zoom; }

@media(max-width:1200px) {
  .student-reader .topbar { gap:10px 16px; }
  .student-reader .topbar nav { flex-wrap:nowrap; overflow-x:auto; scrollbar-width:thin; padding-bottom:3px; }
}
@media(max-width:850px) {
  .student-library .portal-sidebar { top:var(--portal-header-height,74px); bottom:auto; height:calc(100dvh - var(--portal-header-height,74px)); align-self:auto; width:min(280px,calc(100vw - 56px)); padding-bottom:max(22px,env(safe-area-inset-bottom)); overscroll-behavior:contain; }
  .student-library .menu-backdrop { display:block; position:fixed; z-index:14; inset:var(--portal-header-height,74px) 0 0; width:100%; height:auto; border:0; border-radius:0; background:#10263b66; }
  .student-library .book-card-actions>.open-book { width:100%; }
  .student-reader .lesson-jumps a { gap:8px; padding-inline:10px; }
}
@media(max-width:640px) {
  .student-reader .topbar { gap:6px; padding:8px 12px; }
  .student-reader .topbar .brand strong { font-size:21px; }
  .student-reader .topbar .brand small { font-size:9px; letter-spacing:.5px; }
  .student-reader .student-session>span { max-width:64px; font-size:14px; }
  .student-reader .topbar nav { flex-wrap:nowrap; align-items:stretch; }
  .student-reader .topbar .nav-link { display:flex; align-items:center; padding:8px 12px; font-size:16px; }
  .student-reader .topbar #diagnosticNavTitle { white-space:nowrap; max-width:none; }
  .student-reader .page-search input,.student-reader .page-search button { font-size:16px; }
  .student-reader .reader-drawer-layout>main { padding-inline:12px; }
  .student-reader .reader-article { padding:22px 16px 0; }
  .student-reader .lesson-footer { margin-inline:-16px; padding-inline:16px; }
  .student-reader .chapter-cover h1,.student-reader .lesson-heading h2 { font-size:clamp(28px,7.5vw,34px); }
  .student-reader .lesson-takeaway { padding:16px 14px; }
  .student-reader .reader-article>.reader-section { margin-inline:-4px; padding:18px 12px; }
  .student-reader .lesson-example { padding:15px 12px; }
  .student-reader .learning-sync-bar { flex-wrap:wrap; }
  .student-reader .learning-sync-bar>div { flex:1 1 180px; }
  .student-reader .learning-sync-bar button { font-size:16px; }
  .student-reader .chapter-progress { grid-template-columns:auto minmax(30px,1fr); }
  .student-reader .chapter-progress button { grid-column:1 / -1; }
  .student-reader .lesson-jumps a { padding-inline:5px; font-size:18px; }
  .student-reader .dialog { padding:26px 16px; border-radius:16px; }
  .student-reader .dialog h2 { font-size:26px; }
  .student-reader .choice { padding:14px 12px; font-size:19px; overflow-wrap:anywhere; }
  .student-reader .dialog-summary { font-size:16px; }
  .student-reader .supplement-image-controls { gap:8px; }
}
@media(max-width:520px) {
  .student-library .portal-header { display:grid; grid-template-columns:44px minmax(0,1fr); gap:0 8px; padding:8px 12px 0; }
  .student-library .menu-toggle { grid-column:1; grid-row:1; margin:0; padding:10px; }
  .student-library .portal-brand { grid-column:2; grid-row:1; padding:0; min-height:44px; }
  .student-library .portal-brand>span:last-child { min-width:0; }
  .student-library .portal-brand strong { font-size:18px; }
  .student-library .portal-header-actions { grid-column:1 / -1; width:100%; padding:6px 0; gap:8px; }
  .student-library .portal-header-actions #focusSearch { display:flex; }
  .student-library .session-button { flex:1; max-width:none; min-width:0; font-size:16px; }
  .student-library .logout-button { padding-inline:12px; font-size:16px; }
  .student-library main { padding:20px 14px 0; }
  .student-library .library-intro { gap:18px; }
  .student-library .library-breadcrumb { margin-bottom:18px; }
  .student-library .library-filters { padding:16px 12px; }
  .student-library .filter-row { gap:12px; }
  .student-library .book-card-actions { flex-direction:column; align-items:stretch; }
  .student-library .book-card-body h3 { font-size:22px; }
  .student-library .results-heading { gap:12px; flex-wrap:wrap; }
  .student-library .portal-dialog { padding:24px 16px; }
  .student-library .chapter-link { gap:10px; padding:14px 10px; }
  .student-library .chapter-link>div { min-width:0; overflow-wrap:anywhere; }
  .student-library .google-login-button { padding-inline:10px; font-size:18px; }
}
@media(max-width:380px) {
  .student-reader .student-session>span { display:none; }
  .student-library .gate-card { padding-inline:14px; }
  .student-library .library-total { padding:14px 10px; gap:5px; }
}
/* Landscape phones and zoomed-in windows must retain space for the lesson. */
@media(max-height:500px) and (max-width:1100px) {
  .student-reader .topbar { position:relative; }
  .student-reader .reader-sidebar-dock { top:12px; bottom:12px; }
  .student-reader #mainContent,.student-reader main>section[id],.student-reader #readerExplanation,.student-reader #readerStory,.student-reader #readerCheck { scroll-margin-top:16px; }
}
@media(pointer:coarse) {
  .student-reader .reader-sidebar-trigger,.student-reader .reader-sidebar-dock::before { display:none; }
  .student-reader .reader-drawer-layout>main { padding-left:clamp(12px,3vw,32px); }
}
