.schedule { min-width: 0; }
.schedule-sync { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 20px 0; }
.schedule-sync p { margin: 0; }
.schedule-sync button { min-height: 48px; }
.schedule-score { margin-top: 8px; font-weight: 700; color: var(--ink); overflow-wrap: anywhere; }
.schedule-table td.schedule-complete,
.schedule-personal > li.schedule-complete { background: #eef0f2; color: #0b1f2a; }
.schedule-complete .schedule-score { color: #0b1f2a; }
.schedule-complete .schedule-match__vs { color: #5d7079; }
.schedule-search { margin: 24px 0; }
.schedule-search label { display: block; margin-bottom: 8px; font-weight: 700; }
.schedule-search__controls { display: flex; align-items: end; gap: 12px; }
.schedule-search__field { position: relative; flex: 1; min-width: 0; }
.schedule-search__court { width: 170px; }
.schedule-search input,
.schedule-search select,
.schedule-search button { min-height: 48px; font: inherit; color: var(--ink); background: var(--surface); border: 1px solid var(--muted); border-radius: 8px; padding: 10px 12px; }
.schedule-search input,
.schedule-search select { width: 100%; font-size: 16px; }
.schedule-search button { cursor: pointer; }
.schedule-search input:focus-visible,
.schedule-search select:focus-visible,
.schedule-search button:focus-visible,
.schedule__scroll:focus-visible { outline: 3px solid var(--link); outline-offset: 3px; }
.schedule-search__status { color: var(--ink-soft); min-height: 1.75em; }
.schedule-search__suggestions { position: absolute; z-index: 20; top: 100%; left: 0; right: 0; max-height: 280px; overflow-y: auto; margin: 4px 0 0; padding: 4px; list-style: none; background: var(--surface); border: 1px solid var(--muted); border-radius: 8px; box-shadow: var(--shadow-1); }
.schedule-search__suggestions li { margin: 0; }
.schedule-search__suggestions button { display: block; width: 100%; text-align: left; border: 0; }
.schedule-search__suggestions button:hover,
.schedule-search__suggestions button[aria-selected="true"] { background: var(--surface-2); box-shadow: inset 3px 0 var(--link); }
.schedule__scroll-hint { color: var(--ink-soft); }
.schedule__scroll { width: 100%; max-height: 70vh; overflow: auto; border: 1px solid var(--line); border-radius: 12px; }
.schedule .schedule-table { width: max-content; min-width: 100%; border-collapse: separate; border-spacing: 0; margin: 0; font-size: 15px; }
.schedule-table th,
.schedule-table td { padding: 12px; text-align: left; vertical-align: top; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.schedule-table td { width: 220px; min-width: 220px; max-width: 220px; overflow-wrap: anywhere; background: var(--surface); }
.schedule-table th { background: var(--surface-2); color: var(--ink); }
.schedule-table thead th { position: sticky; top: 0; z-index: 2; }
.schedule-table tr > th:first-child { position: sticky; left: 0; z-index: 1; min-width: 110px; max-width: 130px; white-space: pre-line; }
.schedule-table thead tr > th:first-child { z-index: 3; }
.schedule-match { display: grid; gap: 0; padding-left: 10px; border-left: 4px solid var(--court); }
.schedule-match--ruby { border-color: #b42345; }
.schedule-match--sapphire { border-color: #0067ac; }
.schedule-match--women { border-color: #8751a3; }
.schedule-match__label { margin-bottom: 8px; font-size: 16px; font-weight: 700; }
.schedule-match__vs,
.schedule-table__empty { color: var(--muted); }
.schedule-personal { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 16px; list-style: none; padding: 0; }
.schedule-personal > li { margin: 0; padding: 16px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.schedule-personal h3 { margin: 0 0 12px; white-space: pre-line; }
.schedule-card-line { overflow-wrap: anywhere; }
:root[data-theme="dark"] .schedule-match--ruby { border-color: #ff8da6; }
:root[data-theme="dark"] .schedule-match--sapphire { border-color: #8fd3ff; }
:root[data-theme="dark"] .schedule-match--women { border-color: #d3a6ef; }
@media (max-width: 600px) {
  .schedule-search__controls { flex-wrap: wrap; }
  .schedule-search__field { flex-basis: 100%; }
  .schedule-search__court { flex: 1; }
  .schedule-personal { grid-template-columns: minmax(0, 1fr); }
  .schedule-table tr > th:first-child { min-width: 96px; max-width: 110px; }
}
