.schedule-main {
  max-width: 52rem;
  margin: 0 auto;
  padding: 1rem;
}

.schedule-toolbar,
.schedule-switch {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0.75rem 0;
}

.schedule-switch button,
.schedule-toolbar button,
.schedule-toolbar a {
  min-height: 44px;
  min-width: 44px;
}

.agenda-item,
.calendar-day {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 0.6rem;
  padding: 0.85rem 1rem;
  margin-bottom: 0.75rem;
}

.agenda-item.is-cancelled,
.calendar-day .is-cancelled {
  text-decoration: line-through;
}

.calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 0.35rem;
}

.calendar-column h3 {
  font-size: 0.75rem;
  margin: 0 0 0.35rem;
}

.assign-form {
  display: grid;
  gap: 0.75rem;
  margin: 0.75rem 0 1rem;
}

.assign-form label,
.schedule-main form label {
  display: grid;
  gap: 0.35rem;
}

.assign-form input,
.assign-form select,
.assign-form button {
  min-height: 44px;
}

.calendar-day {
  min-height: 4.5rem;
  padding: 0.35rem;
  font-size: 0.8rem;
}

.calendar-day button {
  min-height: 44px;
  width: 100%;
}

.pay-note,
.restriction {
  color: var(--muted);
  font-size: 0.92rem;
}

@media (max-width: 700px) {
  .calendar-grid {
    grid-template-columns: 1fr;
  }
}
