/* V31: Stable sidebar scrolling. Student navigation remains visible on desktop,
   scrolls internally if shorter viewport, and retains mobile drawer behavior. */
@media (min-width: 741px) {
  .app > .sidebar {
    position: fixed; inset: 0 auto 0 0; height: 100dvh; min-height: 0;
    overflow-y: auto; overscroll-behavior: contain;
  }
  .app > .content { margin-left: 246px; min-width: 0; flex: 1 1 auto; }
}
@media (min-width: 821px) {
  .tr-layout > .tr-side {
    position: fixed; inset: 0 auto 0 0; height: 100dvh; min-height: 0;
    overflow-y: auto; overscroll-behavior: contain;
  }
  .tr-layout > .tr-work { margin-left: 246px; min-width: 0; flex: 1 1 auto; }
}
@media (max-width: 740px) {
  .app > .sidebar { height: 100dvh; min-height: 0; overflow-y: auto; }
  .app > .content { margin-left: 0; }
}
@media (max-width: 820px) {
  .tr-layout > .tr-side.open { height: 100dvh; min-height: 0; overflow-y: auto; }
  .tr-layout > .tr-work { margin-left: 0; }
}
