.schedule-wrapper .desktop { display: block; }
.schedule-wrapper .mobile  { display: none; }

/* Desktop table */
.table-responsive { overflow-x: auto; }
.table-schedule { table-layout: fixed; width: 100%; }
.table-schedule th, .table-schedule td { vertical-align: middle; text-align: center; }
.table-schedule th { background: #f8f9fa; }
.table-schedule thead th { white-space: nowrap; }
.cell-empty { height: 64px; }

.slot {
  border: 1px solid #e5e7eb; border-radius: 10px; padding: .4rem .55rem;
  margin: .3rem 0; line-height: 1.25; text-align: left;
}
.slot .mk   { font-weight: 600; display:block; }
.slot .meta { font-size: 12px; opacity:.9; display:block; }
.slot .time {
  display:inline-block; padding:2px 6px; border-radius: 6px;
  background:#fff3cd; border:1px solid #ffe69c; font-size:12px;
  margin-top:3px; white-space:nowrap;
}
.highlight-slot { border: 2px solid #198754; background: #d1e7dd; }

/* Mobile cards */
.mobile .day-group { margin-bottom: 1rem; }
.mobile .day-title {
  display:flex; align-items:center; justify-content:space-between;
  font-weight:700; font-size: 15px; padding:.5rem .75rem; border-radius:10px;
  background:#f8fafc; border:1px solid #e5e7eb;
}
.mobile .today-badge {
  font-weight:600; font-size:12px; padding:2px 8px; border-radius:999px;
  background:#e0f2fe; border:1px solid #bae6fd;
}
.mobile .slot-card {
  border:1px solid #e5e7eb; border-radius:12px; padding:.65rem .75rem;
  margin:.5rem 0; background:#fff;
}
.mobile .slot-top {
  display:flex; justify-content:space-between; align-items:center;
  gap:.5rem; margin-bottom:.35rem;
}
.mobile .slot-time {
  font-size:12px; padding:2px 6px; border-radius:6px; background:#fff3cd;
  border:1px solid #ffe69c; white-space:nowrap;
}
.mobile .slot-title { font-weight:600; }
.mobile .slot-meta  { font-size:12px; opacity:.9; }

@media (max-width: 768px) {
  .schedule-wrapper .desktop { display: none; }
  .schedule-wrapper .mobile  { display: block; }
}
