/* Cross-device layout guardrails for both dashboard shells. */
html { min-height: 100%; overflow-x: clip; }
body { min-width: 0; overflow-x: clip; }
main, header, .wrap, .view, .card, .task, .lesson-summary { min-width: 0; }
img, video, iframe { max-width: 100%; }
button, a { touch-action: manipulation; }
input, select, textarea { max-width: 100%; }
#dashboardAuthGate { padding: max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left)); }
.auth-card { max-height: calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); overflow-y: auto; }
@media (max-width: 767px) {
  body { -webkit-text-size-adjust: 100%; }
  .desktop-page-tabs { scrollbar-width: none; }
  .desktop-page-tabs::-webkit-scrollbar { display: none; }
  .calendar-day { flex: 0 0 auto; }
  .homework-task, .task { overflow-wrap: anywhere; }
  .modal, [role="dialog"] { max-height: 100dvh; }
  .field-control, .auth-card input { font-size: 16px; }
}
@media (min-width: 768px) {
  #dashboardAuthGate { padding: 32px; }
  .auth-card { max-width: 460px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}
