.phk-schedule-manager {
  --phk-ink: var(--color-ink, #071b16);
  --phk-forest: var(--color-forest-950, #052e24);
  --phk-forest-mid: var(--color-forest-800, #07533f);
  --phk-lime: var(--color-tennis, #e4f13b);
  --phk-surface: var(--color-surface, #f5f7f2);
  --phk-surface-strong: var(--color-surface-strong, #e7ece5);
  --phk-white: var(--color-white, #fff);
  --phk-muted: #071b16;
  --phk-border: var(--color-border, #cfd8d2);
  color: var(--phk-ink);
}

.phk-schedule-manager .screen-reader-text {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.phk-schedule-filters {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
  gap: 14px;
  align-items: end;
  margin-bottom: 14px;
  padding: 22px;
  background: var(--phk-white);
  border: 1px solid var(--phk-border);
  border-radius: 16px;
  min-width: 0;
}

.phk-schedule-field { display: flex; flex-direction: column; gap: 8px; }
.phk-schedule-field label { font: 700 .82rem/1.4 "Be Vietnam Pro", Arial, sans-serif; }
.phk-schedule-field select {
  width: 100%;
  min-height: 48px;
  padding: 11px 38px 11px 14px;
  color: var(--phk-ink);
  background-color: var(--phk-white);
  border: 1px solid #8f9f96;
  border-radius: 8px;
  font: inherit;
}

.phk-schedule-field select:hover { border-color: var(--phk-forest-mid); }
.phk-schedule-field select:focus-visible,
.phk-schedule-reset:focus-visible,
.phk-schedule-action:focus-visible,
.phk-schedule-admin-link:focus-visible { outline: 3px solid var(--phk-lime); outline-offset: 3px; }

.phk-schedule-reset,
.phk-schedule-action {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 11px 18px;
  color: var(--phk-white);
  background: var(--phk-forest);
  border: 1px solid var(--phk-forest);
  border-radius: 999px;
  font: 700 .92rem/1.15 "Be Vietnam Pro", Arial, sans-serif;
  text-decoration: none;
  cursor: pointer;
  transition: color .2s ease, background-color .2s ease, transform .2s ease;
}

.phk-schedule-reset:hover,
.phk-schedule-action:hover { color: var(--phk-ink); background: var(--phk-lime); border-color: var(--phk-lime); transform: translateY(-2px); }
.phk-schedule-result { min-height: 24px; margin: 0 0 12px; color: var(--phk-muted); font-size: .88rem; text-align: right; }
.phk-schedule-table-wrap { overflow: hidden; background: var(--phk-white); border: 1px solid var(--phk-border); border-radius: 16px; }
.phk-schedule-table { width: 100%; border-collapse: collapse; }
.phk-schedule-table th,
.phk-schedule-table td { padding: 18px 16px; text-align: left; vertical-align: middle; border-bottom: 1px solid var(--phk-border); }
.phk-schedule-table th { color: var(--phk-white); background: var(--phk-forest); font: 700 .76rem/1.4 "Be Vietnam Pro", Arial, sans-serif; letter-spacing: .05em; text-transform: uppercase; }
.phk-schedule-table tbody tr:last-child td { border-bottom: 0; }
.phk-schedule-table tbody tr:hover { background: var(--phk-surface); }
.phk-schedule-table td:first-child strong { display: block; margin-top: 9px; }
.phk-schedule-table td:last-child { text-align: right; }
.phk-schedule-table td:nth-child(3),
.phk-schedule-card dd { font-variant-numeric: tabular-nums; }
.phk-schedule-table .phk-schedule-action { min-height: 44px; padding: 10px 15px; white-space: nowrap; }
.phk-schedule-table tr[hidden], .phk-schedule-card[hidden] { display: none; }

.phk-schedule-sport {
  min-height: 28px;
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  color: var(--phk-forest);
  background: var(--phk-lime);
  border-radius: 999px;
  font: 800 .72rem/1.4 "Be Vietnam Pro", Arial, sans-serif;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.phk-schedule-status { display: inline-flex; align-items: center; gap: 7px; color: var(--phk-ink); font-size: .78rem; font-weight: 700; white-space: nowrap; }
.phk-schedule-status::before { width: 8px; height: 8px; flex: 0 0 auto; content: ""; background: #1f8d58; border-radius: 50%; }
.phk-schedule-status.is-limited::before { background: #b7791f; }
.phk-schedule-status.is-full::before,
.phk-schedule-status.is-paused::before { background: #b42318; }
.phk-schedule-status.is-contact::before { background: #8a6116; }
.phk-schedule-cards { display: none; }
.phk-schedule-manager.is-filter-empty .phk-schedule-table-wrap,
.phk-schedule-manager.is-filter-empty .phk-schedule-cards { display: none; }

.phk-schedule-card { padding: 22px; background: var(--phk-white); border: 1px solid var(--phk-border); border-radius: 16px; }
.phk-schedule-card + .phk-schedule-card { margin-top: 12px; }
.phk-schedule-card-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.phk-schedule-card h3 { margin: 18px 0 10px; font-size: clamp(1.25rem, 5vw, 1.55rem); }
.phk-schedule-description { margin: 0 0 18px; color: var(--phk-muted); }
.phk-schedule-card dl { display: grid; grid-template-columns: 94px 1fr; gap: 9px 12px; margin: 0 0 20px; }
.phk-schedule-card dt { color: var(--phk-muted); font-size: .8rem; }
.phk-schedule-card dd { margin: 0; font-weight: 600; }
.phk-schedule-card .phk-schedule-action { width: 100%; }

.phk-schedule-empty {
  padding: 42px 24px;
  text-align: center;
  background: var(--phk-white);
  border: 1px dashed var(--phk-border);
  border-radius: 16px;
}
.phk-schedule-empty[hidden] { display: none; }
.phk-schedule-empty h2 { margin: 0 0 10px; font-size: clamp(1.35rem, 4vw, 1.85rem); }
.phk-schedule-empty p { max-width: 58ch; margin: 0 auto 22px; color: var(--phk-muted); }
.phk-schedule-empty .phk-schedule-action { margin: 0 auto; }
.phk-schedule-admin-link { display: block; width: fit-content; margin: 18px auto 0; color: var(--phk-forest-mid); font-weight: 700; text-underline-offset: 4px; }
.phk-schedule-reset-inline { margin: 0 auto; }
.phk-schedule-note { max-width: 72ch; margin: 24px 0 0; color: var(--phk-muted); font-size: .88rem; }

@media (max-width: 1000px) {
  .phk-schedule-filters { grid-template-columns: 1fr 1fr; }
  .phk-schedule-reset { align-self: end; }
  .phk-schedule-table-wrap { display: none; }
  .phk-schedule-cards { display: block; }
}

@media (max-width: 640px) {
  .phk-schedule-filters { grid-template-columns: 1fr; padding: 18px; }
  .phk-schedule-result { text-align: left; }
  .phk-schedule-card { padding: 20px; }
  .phk-schedule-card-head { align-items: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
  .phk-schedule-reset, .phk-schedule-action { transition: none; }
}
