/* ============================================================
   РАЗДЕЛ: расписание занятий. Префикс: schedule-
   ============================================================ */
.schedule-page {
  margin: 0 auto;
  max-width: 1000px;
  padding: var(--sp-7) var(--sp-5) var(--sp-8);
}

.schedule-head { margin-bottom: var(--sp-6); max-width: 680px; }

.schedule-head h1 {
  font-family: var(--font-heading);
  font-size: clamp(2.2rem, 4vw, 3.4rem);
  line-height: 1.06;
  margin: 0 0 var(--sp-3);
}

.schedule-intro { color: var(--color-text-soft); font-size: 1.08rem; }

.schedule-empty, .schedule-none { color: var(--color-text-soft); padding: var(--sp-6) 0; }

/* ---------- фильтры ---------- */
.schedule-filters {
  border-bottom: 1px solid var(--color-border);
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-5);
  margin-bottom: var(--sp-6);
  padding-bottom: var(--sp-5);
}

.schedule-filter-group { display: flex; flex-direction: column; gap: var(--sp-2); }

.schedule-filter-label {
  color: var(--color-text-soft);
  font-size: 0.74rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.schedule-chips { display: flex; flex-wrap: wrap; gap: 6px; }

.schedule-chip {
  background: transparent;
  border: 1px solid var(--color-border);
  border-radius: 999px;
  color: var(--color-text-soft);
  font: inherit;
  font-size: 0.9rem;
  padding: 6px 14px;
  transition: background var(--tr-fast), color var(--tr-fast), border-color var(--tr-fast);
}

.schedule-chip:hover { border-color: var(--color-accent); color: var(--color-text); }

.schedule-chip.is-active {
  background: var(--color-accent);
  border-color: var(--color-accent);
  color: var(--color-white);
}

/* ---------- дни и слоты ---------- */
.schedule-days { display: flex; flex-direction: column; gap: var(--sp-6); }

.schedule-day-title {
  border-bottom: 1px solid var(--color-border);
  font-family: var(--font-heading);
  font-size: 1.35rem;
  margin: 0 0 var(--sp-3);
  padding-bottom: var(--sp-2);
}

.schedule-list { list-style: none; margin: 0; padding: 0; }

.schedule-slot {
  align-items: baseline;
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
  display: grid;
  gap: var(--sp-4);
  grid-template-columns: 150px 1fr 140px 90px;
  padding: 14px 0;
}

.schedule-slot:last-child { border-bottom: none; }

.schedule-time {
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  white-space: nowrap;
}

.schedule-title a { border-bottom: 1px solid var(--color-accent); color: inherit; text-decoration: none; }

.schedule-title a:hover { color: var(--color-accent); }

.schedule-group {
  color: var(--color-text-soft);
  display: block;
  font-size: 0.82rem;
  margin-top: 2px;
}

.schedule-teacher { color: var(--color-text-soft); }

.schedule-room {
  color: var(--color-text-soft);
  font-size: 0.85rem;
  letter-spacing: 0.08em;
  text-align: right;
  text-transform: uppercase;
}

@media (max-width: 720px) {
  .schedule-page { padding: var(--sp-5) var(--sp-4) var(--sp-7); }
  .schedule-slot {
    gap: 4px var(--sp-3);
    grid-template-columns: 1fr auto;
  }
  .schedule-time { grid-column: 1; }
  .schedule-room { grid-column: 2; grid-row: 1; }
  .schedule-title { grid-column: 1 / -1; }
  .schedule-teacher { font-size: 0.9rem; grid-column: 1 / -1; }
}
