.navigation-toggle { display: none; }
.account-dropdown { max-height: calc(100dvh - 100px); overflow-y: auto; overscroll-behavior: contain; }
.account-school-year { border-bottom: 1px solid var(--line); padding-bottom: 14px; }
.personal-days, .personal-week-toggle { display: none; }
@media (max-width: 850px) {
  .topbar { min-height: 64px; height: auto; padding: 10px 16px; gap: 8px; flex-wrap: wrap; overflow: visible; }
  .topbar .brand { font-size: 17px; gap: 8px; }
  .topbar .brand-mark { width: 34px; height: 34px; }
  .topbar .account-details { margin-left: auto; min-width: 0; }
  .account-details > summary { max-width: 140px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-height: 44px; display: block; box-sizing: border-box; }
  .topbar nav { position: static; inset: auto; order: 4; flex: 0 0 100%; padding: 8px 0; border: 0; display: flex; flex-wrap: wrap; gap: 6px; overflow: visible; }
  .topbar nav a { font-size: 15px; min-height: 44px; display: flex; align-items: center; padding: 8px 12px; box-sizing: border-box; }
  .topbar[data-menu-ready] .navigation-toggle { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 44px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 9px; background: var(--card); color: var(--ink); font: inherit; cursor: pointer; }
  .topbar[data-menu-ready] nav { display: none; }
  .topbar[data-menu-ready][data-menu-open] nav { display: flex; }
  .account-dropdown { position: fixed; top: 74px; right: 12px; width: 310px; max-width: calc(100vw - 24px); box-sizing: border-box; max-height: calc(100dvh - 90px); }
  .shell { padding: 24px 16px 48px; }
  footer { padding: 20px 16px; gap: 12px; flex-wrap: wrap; }
  #personal-timetable { padding: 20px 16px; min-width: 0; }
  #personal-timetable .section-heading { gap: 12px; }
  #personal-timetable h2 { font-size: 26px; }
  .personal-days { display: grid; gap: 10px; }
  .personal-day { border: 1px solid var(--line); border-radius: 10px; padding: 0 12px; }
  .personal-day > summary { padding: 14px 0; cursor: pointer; font-weight: 700; }
  .personal-day ul { padding: 0; margin: 0 0 12px; list-style: none; display: grid; gap: 10px; }
  .personal-day li { border-left: 4px solid var(--slot-color, var(--green)); background: var(--sage); padding: 12px; border-radius: 8px; display: grid; gap: 5px; }
  .personal-day time, .personal-day small { color: var(--muted); }
  .personal-week { display: none; margin-top: 14px; }
  .personal-week.is-visible { display: block; }
  .personal-week .week-grid { position: relative; max-width: 100%; margin-left: 0; margin-right: 0; }
  .personal-week-toggle { display: inline-flex; margin-top: 14px; }
  .personal-week-toggle[hidden] { display: none; }
}
@media (max-width: 480px) {
  .topbar .brand > span:last-child { display: none; }
  .account-details > summary { max-width: 150px; }
}
@media print {
  .personal-days, .personal-week-toggle { display: none !important; }
  .personal-week { display: block !important; }
}
