/* Scoped to the Winter WITT schedule and its admin screen. */
.pw-ww-schedule { --ww-ink:#16052f; --ww-purple:#54229a; --ww-lime:#d1ff60; color:var(--ww-ink); width:100%; max-width:none; min-width:0; flex:1 1 100%; margin:0; padding:0; }
.pw-ww-schedule *, .pw-ww-schedule-admin * { box-sizing:border-box; }
.pw-ww-schedule [hidden], .pw-ww-schedule-admin [hidden] { display:none !important; }
.pw-ww-schedule .pw-ww-schedule-heading { text-align:center; margin:0 0 38px; }
.pw-ww-schedule-heading > span { display:inline-block; color:var(--ww-purple); background:#f3edf9; border:1px solid #e8dcf5; border-radius:20px; padding:6px 16px; text-transform:uppercase; letter-spacing:.15em; font-size:12px; }
.pw-ww-schedule .pw-ww-schedule-heading::after { content:""; display:block; width:64px; height:4px; margin:22px auto 0; background:var(--ww-lime); border-radius:4px; }
.pw-ww-schedule .pw-ww-schedule-heading h2 { color:var(--ww-ink); font-size:clamp(28px,4vw,40px); margin:10px 0 12px; line-height:1.2; text-transform:uppercase; }
.pw-ww-schedule-heading p { color:#67616f; margin:0; font-size:16px; }
.pw-ww-schedule .pw-ww-schedule-filters { display:flex; align-items:end; gap:16px; padding:24px; margin-bottom:36px; border:1px solid #e8e0f0; border-top:3px solid var(--ww-purple); border-radius:14px; background:linear-gradient(120deg,#faf7fe,#fff); box-shadow:0 8px 24px rgba(43,17,75,.06); }
.pw-ww-schedule-filters label { display:flex; flex:1; flex-direction:column; gap:8px; color:var(--ww-ink); font-size:13px; min-width:0; }
.pw-ww-schedule-filters label.pw-ww-schedule-search { flex:1.6; }
.pw-ww-schedule .pw-ww-schedule-filters select, .pw-ww-schedule .pw-ww-schedule-filters input { width:100%; min-width:0; margin:0; height:46px; border:1px solid #d7d0e0; border-radius:6px; background-color:#fff; color:var(--ww-ink); padding:10px 14px; font-family:inherit; font-size:14px; line-height:1.4; box-shadow:none; }
.pw-ww-schedule button.pw-ww-schedule-search-button, .pw-ww-schedule button.pw-ww-schedule-more { display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:46px; padding:12px 24px; border:1px solid var(--ww-purple); border-radius:6px; color:#fff; background:var(--ww-purple); font:inherit; font-size:14px; line-height:1.4; text-transform:none; box-shadow:none; cursor:pointer; transition:background .15s,color .15s; }
.pw-ww-schedule button.pw-ww-schedule-search-button:hover, .pw-ww-schedule button.pw-ww-schedule-more:hover { color:var(--ww-ink); background:var(--ww-lime); border-color:var(--ww-lime); }
.pw-ww-schedule button:focus-visible, .pw-ww-schedule input:focus-visible, .pw-ww-schedule select:focus-visible { outline:2px solid var(--ww-purple); outline-offset:3px; }
.pw-ww-schedule .pw-ww-schedule-day { margin:0 0 32px; }
.pw-ww-schedule .pw-ww-schedule-day-heading { display:flex; align-items:center; flex-wrap:wrap; gap:14px; margin:0 0 20px; padding:16px 20px; border:1px solid #54229a; border-radius:10px; background:linear-gradient(110deg,#321158,#54229a); box-shadow:0 5px 14px rgba(52,17,88,.12); }
.pw-ww-schedule-day-heading > span { background:var(--ww-lime); color:var(--ww-ink); padding:8px 13px; border-radius:6px; font-size:12px; white-space:nowrap; }
.pw-ww-schedule .pw-ww-schedule-day-heading h3 { margin:0; font-size:18px; line-height:1.4; color:#fff; }
.pw-ww-schedule-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.pw-ww-schedule-match { position:relative; border:1px solid #e7dfef; border-radius:14px; overflow:hidden; background:#fff; padding:0 22px; box-shadow:0 5px 18px rgba(39,14,65,.07); transition:box-shadow .2s,border-color .2s; }
.pw-ww-schedule-match:hover { border-color:#c8b5e0; box-shadow:0 9px 26px rgba(39,14,65,.12); }
.pw-ww-schedule-match-meta { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 -22px; padding:15px 22px; border-bottom:1px solid #eee8f4; background:linear-gradient(100deg,#f5effc,#fcfbfe); color:#64566f; font-size:13px; }
.pw-ww-schedule-match-meta > span:last-child { display:inline-flex; align-items:center; gap:7px; }
.pw-ww-schedule-match-meta > span:last-child::before { content:""; width:7px; height:7px; border-radius:50%; background:#84a82c; box-shadow:0 0 0 3px #ebf4d4; }
.pw-ww-schedule-division { background:var(--ww-purple); border:1px solid var(--ww-purple); color:#fff; border-radius:6px; padding:5px 12px; }
.pw-ww-schedule-players { display:flex; align-items:center; justify-content:space-between; gap:14px; min-height:106px; padding:26px 0; font-size:17px; line-height:1.5; }
.pw-ww-schedule-players > span { flex:1; overflow-wrap:anywhere; }
.pw-ww-schedule-players > span:last-child:not(:first-child) { text-align:right; }
.pw-ww-schedule-players small { display:flex; align-items:center; justify-content:center; flex:0 0 32px; height:32px; border:1px solid #e8e0f0; border-radius:50%; background:#faf7fd; color:#84748f; font-size:11px; }
.pw-ww-schedule-time { display:flex; align-items:center; gap:8px; border-top:1px solid #eee8f4; margin:0 -22px; padding:14px 22px; background:#fcfbfe; color:#64566f; font-size:13px; }
.pw-ww-schedule-match.is-open { background:#faf9fc; border-style:dashed; box-shadow:none; }
.pw-ww-schedule-match.is-open .pw-ww-schedule-division { background:#eee7f6; color:var(--ww-purple); border-color:#ded0ec; }
.pw-ww-schedule-footer { display:flex; flex-direction:column; align-items:center; gap:12px; padding:8px 0 20px; }
.pw-ww-schedule .pw-ww-schedule-count { margin:0; color:#706877; font-size:13px; }
.pw-ww-schedule button.pw-ww-schedule-more { min-width:190px; background:var(--ww-lime); border-color:var(--ww-lime); color:var(--ww-ink); border-radius:28px; padding:14px 28px; box-shadow:0 5px 16px rgba(88,117,24,.14); }
.pw-ww-schedule button.pw-ww-schedule-more:hover { background:var(--ww-purple); border-color:var(--ww-purple); color:white; }
.pw-ww-schedule button.pw-ww-schedule-more:disabled { cursor:wait; opacity:.7; }
.pw-ww-schedule-spinner { display:none; width:16px; height:16px; border:2px solid currentColor; border-right-color:transparent; border-radius:50%; animation:pw-ww-schedule-spin .7s linear infinite; }
.pw-ww-schedule-more.is-loading .pw-ww-schedule-spinner { display:inline-block; }
.pw-ww-schedule .pw-ww-schedule-status { text-align:center; color:#706877; font-size:13px; margin:0 0 12px; }
.pw-ww-schedule .pw-ww-schedule-status.is-error { color:#b32d2e; }
.pw-ww-schedule-empty { padding:35px 20px; background:#faf9fc; border:1px dashed #d7d0e0; border-radius:10px; text-align:center; }
.pw-ww-schedule-admin-card { background:#fff; padding:24px; border:1px solid #dcdcde; border-radius:8px; margin:22px 0; }
.pw-ww-schedule-admin-card h2 { margin-top:0; }
.pw-ww-schedule-admin fieldset { display:flex; align-items:center; flex-wrap:wrap; gap:14px; margin:20px 0; }
.pw-ww-schedule-admin fieldset label { flex-basis:100%; font-weight:600; }
.pw-ww-schedule-admin progress { width:min(650px,100%); height:18px; accent-color:#54229a; }
.pw-ww-schedule-admin #pw-ww-schedule-import-result { padding:14px; margin:16px 0; }
.pw-ww-schedule-admin-toolbar { display:flex; align-items:center; gap:15px; flex-wrap:wrap; margin:22px 0 12px; }
.pw-ww-schedule-admin-toolbar form { display:flex; flex-wrap:wrap; gap:6px; }
.pw-ww-schedule-admin-table { overflow:auto; }
.pw-ww-schedule-admin-table table { min-width:900px; }
.pw-ww-schedule-admin .pw-ww-schedule-delete { display:inline; margin-left:12px; }
.pw-ww-schedule-admin .page-numbers { padding:6px 10px; display:inline-block; }
@keyframes pw-ww-schedule-spin { to { transform:rotate(360deg); } }
@media(prefers-reduced-motion:reduce) { .pw-ww-schedule-spinner { animation:none; } .pw-ww-schedule button, .pw-ww-schedule-match { transition:none; } }
@media(max-width:700px) {
    .pw-ww-schedule .pw-ww-schedule-filters { flex-wrap:wrap; padding:18px; gap:14px; }
    .pw-ww-schedule-filters label { flex:1 1 40%; }
    .pw-ww-schedule-filters label.pw-ww-schedule-search { flex:1 1 100%; }
    .pw-ww-schedule .pw-ww-schedule-search-button { width:100%; }
    .pw-ww-schedule-cards { grid-template-columns:1fr; }
    .pw-ww-schedule-match { padding:0 18px; }
    .pw-ww-schedule-match-meta, .pw-ww-schedule-time { margin-left:-18px; margin-right:-18px; padding-left:18px; padding-right:18px; }
    .pw-ww-schedule .pw-ww-schedule-day-heading { padding:14px; gap:10px; }
    .pw-ww-schedule .pw-ww-schedule-day-heading h3 { font-size:16px; }
}

/* Quick views keep this week's matches and the full season one click away. */
.pw-ww-schedule .pw-ww-schedule-views { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 12px; }
.pw-ww-schedule button.pw-ww-schedule-view { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:11px 22px; border:1px solid #ddd2e9; border-radius:8px; background:#fff; color:var(--ww-purple); font:inherit; font-size:14px; line-height:1.4; text-transform:none; box-shadow:none; cursor:pointer; }
.pw-ww-schedule button.pw-ww-schedule-view:hover { border-color:var(--ww-purple); background:#f5effb; color:var(--ww-purple); }
.pw-ww-schedule button.pw-ww-schedule-view[aria-pressed="true"],
.pw-ww-schedule button.pw-ww-schedule-view[aria-pressed="true"]:hover { background:var(--ww-purple); border-color:var(--ww-purple); color:#fff; }
.pw-ww-schedule .pw-ww-schedule-context { margin:0 0 22px; color:#67616f; font-size:14px; line-height:1.6; }
@media(max-width:700px) {
    .pw-ww-schedule .pw-ww-schedule-view { flex:1 1 auto; padding:11px 14px; }
}

/* Date-based week names remain readable in the filter on smaller screens. */
.pw-ww-schedule .pw-ww-schedule-filters > label:first-child { flex:1.65; }
@media(max-width:700px) {
    .pw-ww-schedule .pw-ww-schedule-filters > label:first-child { flex:1 1 100%; }
}
