.mobile-agenda { display: none; }
#public-schedule-filters, #public-schedule-filters label { min-width: 0; max-width: 100%; }
#public-schedule-filters select { min-width: 0; max-width: 100%; text-overflow: ellipsis; }
#public-schedule-filters label:first-child { flex: 1 1 420px; }
.public-timetable .wrap, .public-timetable .card { min-width: 0; }
.public-timetable .public-table-scroll { max-width: 100%; overflow-x: auto; padding: 3px 2px 10px; }
.public-timetable .schedule .subject-event { min-width: 0; overflow-wrap: anywhere; border-left: 5px solid var(--event-accent, #618eb0); }
@media screen and (max-width: 1000px) {
  .public-timetable .wrap { padding: 0 12px; margin: 16px auto; }
  .public-timetable .card { padding: 14px; }
  .public-timetable table.schedule { min-width: 880px; }
  .public-timetable .schedule .subject-event { padding: 10px; }
  .public-timetable .event-detail { flex-wrap: wrap; }
}
@media screen and (max-width: 767px) and (orientation: portrait) {
  #public-schedule-filters { display: grid; grid-template-columns: minmax(0, 1.4fr) repeat(2, minmax(0, 1fr)); gap: 12px 8px; }
  #public-schedule-filters label:first-child, #public-schedule-filters label:nth-child(5), #public-schedule-filters .public-tools { grid-column: 1 / -1; }
  #public-schedule-filters select { width: 100%; padding: 10px 6px; font-size: 16px; }
  #public-schedule-filters label { font-size: 12px; }
  #public-schedule-filters .public-tools { display: flex; gap: 6px; }
  #public-schedule-filters .public-tools button { flex: 1 1 auto; padding: 10px 8px; font-size: 13px; }
  .agenda-ready .public-table-scroll { display: none; }
  .agenda-ready .mobile-agenda { display: block; width: 100%; min-width: 0; }
  .mobile-agenda .agenda-day { margin: 0 0 20px; }
  .mobile-agenda h2 { font-size: 17px; margin: 0 0 10px; padding: 8px 0; border-bottom: 1px solid #dce5ec; }
  .public-timetable .mobile-agenda .subject-event { margin: 0 0 10px; padding: 13px 14px; }
  .public-timetable .mobile-agenda .subject-event strong { font-size: 14px; line-height: 1.4; }
  .public-timetable .mobile-agenda .event-time { font-size: 13px; margin-top: 5px; }
  .public-timetable .mobile-agenda .event-detail { font-size: 12px; }
  .agenda-empty { color: #677787; font-size: 13px; margin: 8px 0; }
}
@media print {
  .mobile-agenda { display: none !important; }
  .agenda-ready .public-table-scroll { display: block !important; padding: 0; overflow: visible; }
}
