/* Weekly schedule: keep names visible while scrolling through days. */
.summary-heading { margin-bottom: 18px; }
.section-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.week-copy { display: block; margin-top: 7px; border: 0; background: transparent; color: #52685a; padding: 0; min-height: 28px; font-size: 11px; text-decoration: underline; }
.summary-heading h2 { font-size: 18px; }
.summary-heading p { margin-bottom: 0; font-size: 13px; }
.schedule-explanation { font-size: 13px; margin: 0 0 20px; }
.schedule-explanation a { color: var(--accent); text-decoration: underline; }
.week-period { font-size: 14px; margin: 8px 0 0; }
.fixed-filter { display: grid; gap: 6px; min-width: 90px; padding-bottom: 10px; }
.fixed-filter span { color: var(--muted); font-size: 12px; }
.fixed-filter strong { font-size: 14px; }
.meal-stats { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.schedule-scroll { position: relative; max-height: 65vh; }
.schedule-table th { position: sticky; top: 0; z-index: 2; }
.schedule-table .student-name {
  position: sticky; left: 0; z-index: 1; background: #fff;
  min-width: 180px; max-width: 250px; white-space: normal;
  border-right: 1px solid var(--line);
}
.schedule-table th.student-name { z-index: 3; background: #f7f7f5; }
.schedule-table .student-teacher { max-width: 180px; white-space: normal; }
.schedule-table th[data-day] { text-align: center; font-size: 13px; }
.schedule-table abbr { text-decoration: none; }
.meal-cell { min-width: 115px; padding: 10px 8px; vertical-align: middle; }
.meal-options { display: grid; gap: 6px; }
.meal-toggle, .meal-badge {
  display: flex; align-items: center; gap: 7px; border: 1px solid #dededb;
  padding: 6px 8px; border-radius: 8px; font-size: 12px; background: #fff;
}
.meal-toggle { cursor: pointer; font-weight: 500; min-height: 36px; }
.meal-toggle input { flex: 0 0 16px; width: 16px; height: 16px; min-height: 16px; }
.meal-toggle:has(input:checked), .meal-badge { background: #e8f2eb; border-color: #a6c6b1; color: #254d3d; }
.meal-toggle.lunch:has(input:checked), .meal-badge.lunch { background: #edf0fa; border-color: #b0bddf; color: #354d85; }
.meal-toggle.lunch input { accent-color: #354d85; }
.no-meals { color: var(--muted); font-size: 12px; text-align: center; }
.schedule-table .selected-day { background-color: #f1f6f2; }
.schedule-table th.selected-day { color: #254d3d; background: #e2ede5; }
.schedule-table .date-label { display: block; color: var(--muted); font-size: 11px; font-weight: 400; margin-top: 3px; }
.schedule-table .is-override { background: #f4f3ff; }
.override-label { display: block; margin-top: 6px; text-align: center; color: #665895; font-size: 10px; }
.restore-week { color: #665895; }
.schedule-table .is-locked { background-color: #f1f1ef; }
.schedule-table .is-locked .meal-toggle { cursor: default; opacity: .75; }
.cutoff-label { display: block; margin-top: 6px; text-align: center; color: #6a6056; font-size: 10px; font-weight: 500; }
.schedule-table .is-dirty { box-shadow: inset 0 0 0 2px #cf9c3c; background-color: #fff9e9; }
#pending-changes { font-size: 13px; }
.filters label:has(select[name="day"]), .filters label:has(select[name="meal"]) { width: 175px; }
@media (max-width: 900px) {
  .meal-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
  .meal-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .schedule-table .student-name { min-width: 115px; max-width: 140px; font-size: 13px; }
  .meal-cell { min-width: 110px; }
  .table-footer { align-items: stretch; }
  #save-status { width: 100%; }
}
