/* Phase 16: shared responsive and accessibility guarantees. */
html { min-width:320px; text-size-adjust:100%; -webkit-text-size-adjust:100%; overflow-x:hidden; }
body { width:100%; max-width:100%; overflow-x:hidden; overflow-wrap:anywhere; }
img,svg,canvas,video,table { max-width:100%; }
button,input,select,a { touch-action:manipulation; }
button,input,select { min-height:44px; }
.login-page,.student-page,.teacher-page,.admin-page {
  padding-top:max(1rem,env(safe-area-inset-top));
  padding-right:max(1rem,env(safe-area-inset-right));
  padding-bottom:max(1.5rem,env(safe-area-inset-bottom));
  padding-left:max(1rem,env(safe-area-inset-left));
}
.teacher-toolbar { margin-top:calc(-1 * max(1rem,env(safe-area-inset-top))); }
.ui-dialog,.admin-dialog { max-height:calc(100dvh - 2rem); overflow:auto; }
.admin-dialog-backdrop { padding:max(1rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left)); }
.status-icon { display:inline-grid; place-items:center; min-width:1.5rem; font-size:1.25rem; font-weight:900; }
@media (max-width:480px) {
  .toolbar,.welcome,.section-title,.score-card header,.teacher-results>header { flex-wrap:wrap; }
  .admin-page table { display:block; overflow-x:auto; }
  .admin-change { width:100%; min-width:0; margin:.5rem 0; }
  .teacher-pagination { flex-wrap:wrap; }
}
@media (max-height:560px), (max-width:350px) {
  .login-page { min-height:100dvh; display:block; }
  .login-panel { margin:auto; }
  .brand-lockup { width:100px; height:88px; transform:scale(.65); transform-origin:top center; margin-bottom:-1rem; }
}
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { scroll-behavior:auto!important; animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }
}
