/* SLS3 R2.5.3 — Exam Navigation Scale Authority
   Rendering containment only; domain data and API contracts are unchanged. */
:root { --sls3-card-intrinsic-size: 104px 360px; }
html.sls3-nav-frame *, html.sls3-nav-frame *::before, html.sls3-nav-frame *::after {
  animation-duration: 0.001ms !important;
  animation-delay: 0ms !important;
  transition-duration: 0.001ms !important;
  transition-delay: 0ms !important;
  scroll-behavior: auto !important;
}
/* Off-screen cards do not participate in layout/paint until they approach the viewport. */
:is(
  #studentListsCards, #studentListCards, #studentsCards, #savedStudentLists,
  [data-student-lists], [data-student-list-grid], .student-list-grid,
  #examCards, #examsCards, #examsList, #examApprovedList, #examStoredListsTabs,
  #hallChoices, #examList, [data-exam-grid], .exam-grid, .stageCards
) > :is(
  article, section, .card, [class*="card"], [data-card],
  .approvedExamCard, .examListTab, .hallChoice, .slotItem, .examScopeGroup, .stageColumn
) {
  content-visibility: auto;
  contain-intrinsic-size: var(--sls3-card-intrinsic-size);
  contain: layout style paint;
}
:is(
  .student-list-card, .students-list-card, .studentListOnlyCard,
  .exam-card, .approvedExamCard, .examListTab, .hallChoice, .slotItem,
  [data-student-list-card], [data-exam-card]
) {
  content-visibility: auto;
  contain-intrinsic-size: var(--sls3-card-intrinsic-size);
  contain: layout style paint;
}
/* Large tables remain semantically intact while off-screen row painting is skipped. */
:is(#studentListTable, .student-list-table, [data-student-table]) tbody tr {
  content-visibility: auto;
  contain-intrinsic-size: 42px 800px;
}
:is(
  #studentListsCards, #studentListCards, #examCards, #examsCards,
  #examApprovedList, #examStoredListsTabs, #hallChoices,
  [data-student-list-grid], [data-exam-grid]
) { overflow-anchor: none; }
/* A pending local projection must never collapse hall cards or move the form. */
#hallChoices .hallChoice.pending { min-height: 64px; }

/* R2.3: approved exam cards must never be browser-culled as if they were disposable off-screen rows.
   Some WebKit/Chromium builds can leave content-visibility:auto cards blank after rapid tab changes. */
#examApprovedList > .approvedExamCard,
#approvedExamList > .approvedExamCard,
.approvedExamCard {
  content-visibility: visible !important;
  contain: layout style !important;
  contain-intrinsic-size: auto !important;
}

/* Keep the immediately opened details shell paintable while its authoritative payload hydrates. */
#globalExamDetailsModal[aria-busy="true"],
#globalExamDetailsModal[aria-busy="true"] * {
  content-visibility: visible !important;
}
