.student-page .student-shell { padding-bottom: 110px; }
.student-page input, .student-page select, .student-page textarea { font-size: 16px; }
.student-page .student-nav { grid-template-columns: repeat(5, minmax(0,1fr)); }
.student-page .student-nav button { min-height: 48px; font-size: 12px; }
.student-page .assignment-card h3, .student-page .assignment-card strong,
.student-page .attempt-heading strong { white-space: normal; overflow: visible; text-overflow: clip; overflow-wrap: anywhere; }
.student-page button:focus-visible, .student-page a:focus-visible,
.student-page input:focus-visible, .student-page textarea:focus-visible { outline: 3px solid #3169bc; outline-offset: 3px; }
.student-page .auth-card > .button { margin-top: 16px; }
.student-page .autosave-caption { min-height: 32px; }
.student-page [data-student-panel][hidden] { display: none !important; }
.student-page [hidden] { display: none !important; }
.student-page.attempt-active:not(.attempt-restrict-copy) { user-select: text; -webkit-user-select: text; -webkit-touch-callout: default; }
.student-page.attempt-active input, .student-page.attempt-active textarea { user-select: text; -webkit-user-select: text; -webkit-touch-callout: default; }
.student-page .pill, .student-page small { font-size: max(12px, .8rem); }
@media (prefers-reduced-motion: reduce) {
  .student-page * { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}

/* Long titles, references and file names must fit the available mobile width. */
.student-page { overflow-wrap: anywhere; }
.student-page .student-shell, .student-page .stack, .student-page .stack > *,
.student-page .assignment-list, .student-page .assignment-card__body > *,
.student-page .course-progress-card, .student-page .row > *,
.student-page .question-answer, .student-page .long-answer,
.student-page .long-answer textarea { min-width: 0; }
.student-page .assignment-list, .student-page .assignment-card__body,
.student-page .long-answer { grid-template-columns: minmax(0,1fr); }
.student-page .pill { max-width: 100%; }
.work-filters { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,2fr); gap: 12px; margin: 18px 0; }
.student-work-entry { display: grid; gap: 8px; }
.student-work-entry > .button { justify-self: start; }
.submission-screen { width: min(100%, 820px); margin: 0 auto; }
.submission-header { margin: 24px 0; }
.submission-header h1 { font-size: clamp(24px, 6vw, 36px); overflow-wrap: anywhere; }
.submission-answers { display: grid; gap: 20px; }
.submission-question, .submission-result { padding: clamp(18px,4vw,30px); border: 1px solid var(--line); border-radius: var(--radius-lg); background: white; }
.submission-question h2 { font-size: 20px; margin: 0; }
.submission-question h3 { font-size: 16px; margin: 20px 0 10px; }
.submission-question .question-prompt { font-size: 18px; margin: 18px 0; }
.submission-own-answer { padding: 16px; background: #f4f6f9; border-radius: 12px; }
.submission-options { display: grid; gap: 8px; list-style: none; padding: 0; }
.submission-options li { display: flex; align-items: start; justify-content: space-between; flex-wrap: wrap; gap: 8px; padding: 12px; border: 1px solid var(--line); border-radius: 10px; }
.submission-options li.is-selected { background: #edf3fb; border-color: #3169bc; }
.submission-options li > strong { font-size: 12px; color: #254e84; }
.submission-screen > .button:last-child { margin-top: 24px; }
.student-page .attempt-return { min-height: 44px; padding: 8px; font-size: 12px; }
.student-page .section-heading { flex-wrap: wrap; }
.student-page .student-hero--compact > div:first-child { min-width: 0; flex: 1 1 190px; }
.student-page .save-indicator { flex: 0 0 8px; }
@media (max-width: 640px) {
  .work-filters { grid-template-columns: minmax(0,1fr); }
  .student-page .student-hero--compact { flex-wrap: wrap; }
  .student-page .button { padding-top: 8px; padding-bottom: 8px; }
  .student-page .row--spread { flex-wrap: wrap; }
}
html[data-grade="common"] .student-hero::after {
  background: linear-gradient(135deg, var(--ten), var(--eleven));
}
