/* Teacher Mi horario presentation; scheduling and event actions remain in ScheduleManager. */
#class-schedule-grid { container-type: inline-size; }
#class-schedule-grid .sched-week-summary { margin: 4px 0 18px; }
#class-schedule-grid .sched-week-summary .sched-stat { align-items: flex-start; padding: 16px; border-color: #e6e7ef; }
#class-schedule-grid .sched-week-summary .sched-stat-ic { width: 38px; height: 38px; background: #f1edfa; color: #6546a2; }
#class-schedule-grid .sched-week-summary .sched-stat-tx { gap: 3px; }
#class-schedule-grid .sched-week-summary .sched-stat-tx span { color: #545d70; font-size: .72rem; }
#class-schedule-grid .sched-week-summary .sched-stat-tx b { font-size: 1.55rem; }
#class-schedule-grid .sched-week-summary .sched-stat-tx small { color: #526075; font-size: .72rem; line-height: 1.35; }
#class-schedule-grid .sched-summary-partial,
#class-schedule-grid .sched-availability-note { padding: 10px 13px; border: 1px solid #e4e4ef; border-radius: 10px; color: #4e5870; background: #f8f8fc; font-size: .8rem; }
#class-schedule-grid .sched-page-control { display: inline-flex; gap: 8px; margin: 0 8px 12px 0; }
#class-schedule-grid .sched-page-control button { min-height: 44px; border: 1px solid #d9d6e7; border-radius: 8px; padding: 8px 12px; color: #4b347a; background: #faf9fd; cursor: pointer; }
#class-schedule-grid .sched-main-layout { display: grid; grid-template-columns: minmax(0,1fr); gap: 16px; align-items: start; }
#class-schedule-grid .sched-calendar-stack { min-width: 0; }
#class-schedule-grid .sched-time-cell { position: relative; }
#class-schedule-grid .sched-time-cell.sched-time-cell-current { color: transparent; }
#class-schedule-grid .sched-now-gutter-label { position: absolute; z-index: 3; right: 3px; transform: translateY(-50%); border-radius: 4px; padding: 2px 4px; background: #8b214d; color: #fff; font-size: .67rem; font-weight: 800; line-height: 1.15; white-space: nowrap; }
#class-schedule-grid .sched-day-cell { position: relative; }
#class-schedule-grid .sched-day-cell .sched-type-event { position: relative; z-index: 3; }
#class-schedule-grid .sched-type-event[data-session-type="group"] { background: #f0eef8; border-left-color: #312e81; }
#class-schedule-grid .sched-type-event[data-session-type="one_to_one"] { background: #e9f5f2; border-left-color: #0f766e; }
#class-schedule-grid .sched-type-event[data-session-type="trial"] { background: #faf0e8; border-left-color: #9a3412; }
#class-schedule-grid .sched-availability-band { position: absolute; z-index: 2; left: 4px; right: 4px; top: var(--avail-top); height: var(--avail-height); min-height: 3px; border: 1px dashed #a393bf; border-radius: 6px; background: rgba(124, 99, 166, .085); color: #4f4366; pointer-events: none; overflow: hidden; font-size: .65rem; line-height: 1.25; }
#class-schedule-grid .sched-availability-band span { display: inline-block; padding: 3px 5px; background: rgba(255,255,255,.72); font-weight: 700; }
#class-schedule-grid .sched-now-line { position: absolute; z-index: 1; left: 0; right: 0; height: 2px; background: #a32958; pointer-events: none; box-shadow: 0 0 0 1px rgba(255,255,255,.6); }
#class-schedule-grid .sched-now-line::before { content: ''; position: absolute; left: -3px; top: -3px; width: 8px; height: 8px; border-radius: 50%; background: #a32958; }
#class-schedule-grid .sched-now-outside:not([hidden]) { display: inline-block; color: #8b214d; font-size: .76rem; font-weight: 700; }
#class-schedule-grid .sched-m-availability { display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 9px 11px; border: 1px dashed #a393bf; border-radius: 10px; background: rgba(124,99,166,.085); color: #4f4366; }
#class-schedule-grid .sched-m-availability span { font-weight: 700; font-size: .78rem; }
#class-schedule-grid .sched-m-availability small { color: inherit; font-size: .74rem; }
#class-schedule-grid .sched-mobile-now { color: #8b214d; font-size: .76rem; font-weight: 700; padding: 5px 2px; }
#class-schedule-grid .sched-legend { display: flex; flex-wrap: wrap; gap: 8px 15px; margin: 12px 2px 0; color: #526075; font-size: .72rem; }
#class-schedule-grid .sched-legend span { display: inline-flex; align-items: center; gap: 5px; }
#class-schedule-grid .sched-legend span::before { content: ''; width: 9px; height: 9px; border-radius: 3px; background: #0f766e; }
#class-schedule-grid .sched-legend span:nth-child(2)::before { background: #312e81; }
#class-schedule-grid .sched-legend span:nth-child(3)::before { background: #9a3412; }
#class-schedule-grid .sched-legend .sched-legend-availability::before { background: transparent; border: 1px dashed #816d9f; }
#class-schedule-grid .sched-legend .sched-legend-now::before { width: 12px; height: 2px; border-radius: 0; background: #a32958; }
#class-schedule-grid .sched-upcoming { margin: 0; min-width: 0; padding: 16px; background: #fff; border: 1px solid #e6e7ef; border-radius: 14px; }
#class-schedule-grid .sched-agenda details { width: 100%; border: 1px solid #e6e7ef; border-radius: 10px; background: #fff; }
#class-schedule-grid .sched-agenda summary { min-height: 44px; padding: 11px 13px; color: #374151; font-size: .85rem; font-weight: 700; cursor: pointer; }
#class-schedule-grid .sched-agenda details[open] { padding: 0 10px 10px; }
#class-schedule-grid .sched-agenda details[open] summary { padding-left: 3px; }
#class-schedule-grid .sched-upcoming-heading { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 12px; margin-bottom: 8px; }
#class-schedule-grid .sched-upcoming h3 { margin: 0; font-size: 1rem; color: #1d2638; }
#class-schedule-grid .sched-upcoming-heading small { color: #526075; }
#class-schedule-grid .sched-upcoming-row { display: flex; align-items: center; width: 100%; gap: 13px; min-height: 48px; padding: 9px 4px; background: transparent; border: 0; border-top: 1px solid #ececf2; color: #1d2638; font: inherit; text-align: left; cursor: pointer; }
#class-schedule-grid .sched-upcoming-row:focus-visible { outline: 2px solid #7c3aed; outline-offset: 2px; }
#class-schedule-grid .sched-upcoming-time { flex: 0 0 72px; font-size: .78rem; color: #6d4b9e; font-weight: 800; }
#class-schedule-grid .sched-upcoming-copy { display: flex; flex-direction: column; min-width: 0; }
#class-schedule-grid .sched-upcoming-copy b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .82rem; }
#class-schedule-grid .sched-upcoming-copy small { color: #526075; font-size: .71rem; }
#class-schedule-grid .sched-upcoming p { margin: 4px 0 0; color: #526075; font-size: .82rem; }
[data-theme="dark"] #class-schedule-grid .sched-week-summary .sched-stat,
[data-theme="dark"] #class-schedule-grid .sched-upcoming,
[data-theme="dark"] #class-schedule-grid .sched-agenda details { background: #1f2233; border-color: #454158; }
[data-theme="dark"] #class-schedule-grid .sched-agenda summary { color: #e3e5f0; }
[data-theme="dark"] #class-schedule-grid .sched-type-event[data-session-type="group"] { background: #302c4b; }
[data-theme="dark"] #class-schedule-grid .sched-type-event[data-session-type="one_to_one"] { background: #173d3b; }
[data-theme="dark"] #class-schedule-grid .sched-type-event[data-session-type="trial"] { background: #493326; }
[data-theme="dark"] #class-schedule-grid .sched-week-summary .sched-stat-ic { background: #33294d; color: #d4c2f6; }
[data-theme="dark"] #class-schedule-grid .sched-week-summary .sched-stat-tx span,
[data-theme="dark"] #class-schedule-grid .sched-week-summary .sched-stat-tx small,
[data-theme="dark"] #class-schedule-grid .sched-upcoming-heading small,
[data-theme="dark"] #class-schedule-grid .sched-upcoming-copy small,
[data-theme="dark"] #class-schedule-grid .sched-upcoming p,
[data-theme="dark"] #class-schedule-grid .sched-legend { color: #c4c9d8; }
[data-theme="dark"] #class-schedule-grid .sched-summary-partial,
[data-theme="dark"] #class-schedule-grid .sched-availability-note { background: #272a3c; border-color: #454158; color: #d5d8e5; }
[data-theme="dark"] #class-schedule-grid .sched-page-control button { background: #292c41; border-color: #55506e; color: #e3d8fa; }
[data-theme="dark"] #class-schedule-grid .sched-availability-band,
[data-theme="dark"] #class-schedule-grid .sched-m-availability { background: rgba(177,153,221,.14); border-color: #a694ca; color: #eee8fb; }
[data-theme="dark"] #class-schedule-grid .sched-availability-band span { background: rgba(29,30,45,.75); }
[data-theme="dark"] #class-schedule-grid .sched-now-line,
[data-theme="dark"] #class-schedule-grid .sched-now-line::before { background: #ff95b7; }
[data-theme="dark"] #class-schedule-grid .sched-now-gutter-label { background: #9d365c; color: #fff; }
[data-theme="dark"] #class-schedule-grid .sched-now-outside:not([hidden]),
[data-theme="dark"] #class-schedule-grid .sched-mobile-now { color: #ffabc6; }
[data-theme="dark"] #class-schedule-grid .sched-upcoming h3,
[data-theme="dark"] #class-schedule-grid .sched-upcoming-row { color: #f0eff8; }
[data-theme="dark"] #class-schedule-grid .sched-upcoming-row { border-color: #454158; }
/* 7 readable day columns + the time gutter + 310px upcoming panel + gap. */
@container (min-width: 1270px) {
  #class-schedule-grid .sched-main-layout { grid-template-columns: minmax(0,1fr) minmax(286px,310px); }
}
@media (max-width: 640px) {
  #class-schedule-grid .sched-week-summary .sched-stat { padding: 11px; }
  #class-schedule-grid .sched-week-summary .sched-stat-tx b { font-size: 1.18rem; }
  #class-schedule-grid .sched-week-summary .sched-stat-tx small { font-size: .66rem; }
  #class-schedule-grid .sched-upcoming { padding: 13px; }
}
