.openplay-app header{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.button-link{display:inline-block;text-decoration:none;padding:11px 14px;border-radius:10px}.op-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.dashboard-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:16px;margin:16px 0}.court-card,.player-row,.game-card,.audit-item{border:1px solid #e5e7eb;border-radius:12px;padding:12px;margin:8px 0}.court-card{display:flex;align-items:center;justify-content:space-between;gap:12px}.op-add-player{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:8px;margin:12px 0}.player-row{display:grid;grid-template-columns:minmax(130px,2fr) 1fr 1fr 1fr auto;gap:8px;align-items:center}.game-card .teams{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;margin:10px 0}.game-actions{display:flex;gap:8px;flex-wrap:wrap}.score-entry{display:flex;align-items:center;gap:6px}.score-entry input{width:70px}.summary-strip{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}.summary-pill{padding:8px 10px;border-radius:999px;background:#f3f4f6;color:#111827}.audit-list{max-height:460px;overflow:auto}.audit-item small{display:block;color:#6b7280}.status-dot{width:9px;height:9px;border-radius:50%;display:inline-block;background:currentColor;margin-right:6px}.table-scroll{overflow:auto}@media(max-width:850px){.dashboard-grid{grid-template-columns:1fr}.openplay-app header{display:block}.op-add-player,.player-row{grid-template-columns:1fr 1fr}.player-row .player-actions{grid-column:1/-1}.game-card .teams{grid-template-columns:1fr}.game-card .teams .vs{text-align:left}}
.player-actions{display:flex;gap:7px;justify-content:flex-end;align-items:center}.icon-button{width:40px;height:40px;padding:0;display:grid;place-items:center;border-radius:11px}.icon-button svg{width:18px;height:18px;pointer-events:none}.player-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px}.player-pagination .muted{margin:0}.pagination-actions{display:flex;gap:8px}.edit-player-form{grid-column:1/-1;display:grid;grid-template-columns:2fr 1fr 1fr auto auto;gap:8px;padding-top:10px;border-top:1px solid var(--border)}
@media(max-width:850px){.edit-player-form{grid-template-columns:1fr 1fr}.edit-player-form .edit-name{grid-column:1/-1}.player-pagination{align-items:flex-start;flex-direction:column}}
.openplay-app input[type=text],.openplay-app input[type=date],.openplay-app input[type=time],.openplay-app input:not([type]){width:100%;border:1px solid var(--border);background:var(--panel2);color:var(--text);border-radius:14px;padding:12px;font:inherit}

.player-main{position:relative;padding-right:30px}.player-delete-small{position:absolute;top:-5px;right:-3px;width:26px;height:26px;border-radius:8px}.player-delete-small svg{width:13px;height:13px}.player-pagination{justify-content:flex-end}.player-pagination .pagination-actions{margin-left:auto}
.compact-copy{margin:2px 0 0}.compact-head{margin-top:14px}.schedule-block{margin-top:12px}.next-games-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.compact-game{margin:0}.compact-game .teams{font-size:.95rem}.game-time{font-size:.84rem;color:var(--muted);margin-top:3px}.court-info{min-width:0}.court-hours{font-size:.78rem;margin-top:4px;font-weight:600;color:var(--text)}.standings-head{align-items:flex-start}.standings-filters{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.standings-filters select,.standings-filters input{min-width:130px}.standings-filters input{max-width:170px}
@media(max-width:850px){.next-games-grid{grid-template-columns:1fr}.standings-head{display:block}.standings-filters{margin-top:10px;justify-content:flex-start}.standings-filters select,.standings-filters input{width:100%;max-width:none}}

.court-controls{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap;justify-content:flex-end}.court-limit-label{font-size:.76rem;color:var(--muted);display:grid;gap:3px}.court-limit-label input{width:92px;padding:7px 8px}.court-hours strong{color:var(--text)}

.court-time-fields{display:flex;gap:6px;align-items:flex-end;flex-wrap:wrap}.court-time-label{font-size:.76rem;color:var(--muted);display:grid;gap:3px}.court-time-label input{width:116px;padding:7px 8px}.court-hours{line-height:1.35}.pagination-actions .icon-nav{display:inline-flex;align-items:center;gap:6px}.pagination-actions .icon-nav svg{width:15px;height:15px}.schedule-modal{position:fixed;inset:0;background:rgba(15,23,42,.56);z-index:1000;padding:24px;overflow:auto}.schedule-modal-panel{max-width:1050px;margin:0 auto;background:var(--surface,#fff);color:var(--text);border-radius:16px;padding:18px}.schedule-modal-toolbar{display:flex;justify-content:space-between;gap:14px;align-items:center;border-bottom:1px solid var(--border);padding-bottom:12px;margin-bottom:14px}.schedule-print-header{margin-bottom:16px}.schedule-print-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:10px 0 16px}.schedule-print-meta div{border:1px solid var(--border);border-radius:10px;padding:9px}.schedule-table{width:100%;border-collapse:collapse}.schedule-table th,.schedule-table td{border-bottom:1px solid var(--border);padding:9px;text-align:left;vertical-align:top}.schedule-court-list{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 16px}.schedule-court-chip{border:1px solid var(--border);border-radius:999px;padding:6px 9px;font-size:.85rem}@media(max-width:700px){.schedule-modal{padding:8px}.schedule-modal-panel{padding:12px;border-radius:12px}.schedule-modal-toolbar{align-items:flex-start;flex-direction:column}.schedule-print-meta{grid-template-columns:1fr 1fr}.court-time-label input{width:106px}}@media print{body>*{display:none!important}.schedule-modal{display:block!important;position:static!important;background:#fff!important;padding:0!important}.schedule-modal-panel{display:block!important;max-width:none!important;padding:0!important;border-radius:0!important}.no-print{display:none!important}.schedule-print-content{display:block!important;color:#000!important}.schedule-table th,.schedule-table td{border-color:#bbb!important}.schedule-print-meta div,.schedule-court-chip{border-color:#bbb!important}}

/* v11 visibility, modal contrast, standings controls */
.schedule-modal-panel,.schedule-print-content,.schedule-print-content h1,.schedule-print-content h2,.schedule-print-content h3,.schedule-print-content strong,.schedule-table,.schedule-table th,.schedule-table td{color:#111827!important;background:#fff}
.schedule-print-content .muted,.schedule-open-slot .muted{color:#4b5563!important}
.schedule-table th{background:#f3f4f6!important}
.schedule-open-slot td{background:#fafafa!important}
.battle-launch{display:flex;align-items:center;gap:12px;justify-content:center;margin:16px 0}.battle-button{padding:14px 22px;font-size:1rem}.standings-full{margin-top:16px}.filter-toggle{display:inline-flex;align-items:center;gap:6px}.filter-icon{font-size:1.1rem;line-height:1}.activity-icon-btn{width:38px;height:38px;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:1.1rem}.standings-filters{margin:10px 0 12px;justify-content:flex-start}.activity-modal{position:fixed;inset:0;background:rgba(15,23,42,.56);z-index:1001;padding:24px;overflow:auto}.activity-modal-panel{max-width:650px;margin:8vh auto 0;background:#fff;color:#111827;border-radius:16px;padding:18px}.activity-modal-panel .audit-item{color:#111827}.activity-modal-panel .audit-item small{color:#6b7280}.hidden{display:none!important}
.playing-games-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.playing-games-grid .game-card{margin:0}.schedule-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.schedule-search,.schedule-filter{display:flex;align-items:center;gap:6px;border:1px solid #d1d5db;border-radius:10px;padding:7px 9px;background:#fff;color:#111827}.schedule-search input,.schedule-filter select{border:0!important;background:#fff!important;color:#111827!important;padding:0!important;min-width:130px;outline:none}.schedule-close{color:#111827!important;background:#fff!important;border-color:#d1d5db!important}.schedule-planned-label{font-size:.72rem;color:#6b7280;margin-top:2px}.schedule-results{font-size:.85rem;color:#4b5563;margin:6px 0 10px}.schedule-table td,.schedule-table th{color:#111827!important}.schedule-table tr.hidden{display:none!important}@media(max-width:850px){.playing-games-grid{grid-template-columns:1fr}.schedule-tools{width:100%}.schedule-search,.schedule-filter{flex:1 1 160px}.schedule-search input,.schedule-filter select{width:100%;min-width:0}}
@media print{.schedule-table tr.hidden{display:none!important}.schedule-results{display:none!important}}
/* v19: compact schedule modal titles + locked court availability state */
#scheduleModalTitle{font-size:1.15rem;line-height:1.3;margin:0}
.schedule-print-header h1{font-size:1.35rem;line-height:1.25;margin:0 0 4px}
.court-time-label input:disabled{opacity:.65;cursor:not-allowed;background:#f3f4f6}

/* v21: compact completed-score edit icon in View Full Schedule */
.schedule-edit-score{width:40px;height:40px;padding:0;display:inline-grid;place-items:center;border:1px solid #000;border-radius:11px;background:#000;color:#fff;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,transform .15s ease}
.schedule-edit-score svg{width:18px;height:18px;pointer-events:none}
.schedule-edit-score:hover{background:#1f2937;border-color:#1f2937}
.schedule-edit-score:focus-visible{outline:2px solid #6b7280;outline-offset:2px}
.schedule-edit-score:active{transform:translateY(1px)}


/* v22: compact upcoming-match controls + reactive schedule feedback */
.match-head-actions{display:flex;align-items:center;gap:7px}.team-player-list>span{display:grid;gap:4px}.match-player{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:28px}.match-player-actions{display:inline-flex;gap:4px}.mini-match-action{width:28px;height:28px;padding:0;border-radius:8px;display:inline-grid;place-items:center;background:transparent;color:var(--text);border:1px solid var(--border);cursor:pointer}.mini-match-action svg{width:14px;height:14px;pointer-events:none}.mini-match-action:hover{background:rgba(148,163,184,.12)}.mini-match-action:focus-visible{outline:2px solid currentColor;outline-offset:2px}.match-shuffle{width:30px;height:30px}.op-toast{position:fixed;right:20px;bottom:20px;z-index:1500;padding:10px 14px;border-radius:10px;background:#111827;color:#fff;box-shadow:0 10px 30px rgba(0,0,0,.28);opacity:0;transform:translateY(8px);pointer-events:none;transition:.18s ease}.op-toast.show{opacity:1;transform:translateY(0)}

/* v23: state-aware tournament match cards and explicit scorekeeping lifecycle */
.match-card{background:linear-gradient(180deg,rgba(15,23,42,.94),rgba(15,23,42,.82));border:1px solid rgba(148,163,184,.22);border-radius:16px;padding:14px;box-shadow:0 10px 28px rgba(0,0,0,.14);overflow:hidden}.match-card.state-playing{border-color:rgba(57,255,20,.48);box-shadow:0 0 0 1px rgba(57,255,20,.06),0 12px 30px rgba(0,0,0,.18)}.match-card.state-completed{opacity:.82}.match-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.match-title-row{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.match-title-row>strong{font-size:1.02rem}.match-chip{display:inline-flex;align-items:center;min-height:24px;padding:3px 8px;border-radius:999px;border:1px solid rgba(148,163,184,.24);background:rgba(148,163,184,.08);color:var(--muted);font-size:.72rem;font-weight:700}.match-status{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;border-radius:999px;padding:5px 9px;font-size:.68rem;font-weight:850;letter-spacing:.04em}.status-playing{color:#7cff6b;background:rgba(57,255,20,.10);border:1px solid rgba(57,255,20,.26)}.status-up-next{color:#9cc8ff;background:rgba(59,130,246,.10);border:1px solid rgba(96,165,250,.25)}.status-completed{color:#a8b1bf;background:rgba(148,163,184,.08);border:1px solid rgba(148,163,184,.18)}.match-card .teams{grid-template-columns:minmax(0,1fr) 44px minmax(0,1fr)!important;gap:10px!important;margin:14px 0!important}.team-side{display:grid;gap:5px;min-width:0}.team-side:first-child{text-align:left}.team-side:last-child{text-align:right}.match-player-name{font-weight:700;line-height:1.25;overflow-wrap:anywhere}.team-side:last-child .match-player{flex-direction:row-reverse}.team-side:last-child .match-player-actions{flex-direction:row-reverse}.match-card .vs{align-self:center;text-align:center;color:var(--muted);font-size:.72rem;letter-spacing:.08em}.match-card-footer{display:flex;align-items:center;gap:10px;padding-top:11px;border-top:1px solid rgba(148,163,184,.14)}.match-card-footer .match-shuffle{width:34px;height:34px}.lineup-message{color:#f6ad55;font-size:.78rem;margin-right:auto}.start-game-btn{margin-left:auto;min-height:40px;padding:9px 15px;font-weight:800}.start-game-btn:disabled{opacity:.45;cursor:not-allowed}.active-score-row{display:grid;grid-template-columns:1fr auto 1fr auto;align-items:center;gap:14px;padding-top:12px;border-top:1px solid rgba(148,163,184,.14)}.score-control{display:flex;align-items:center;justify-content:center;gap:10px}.score-btn{width:44px;height:44px;border-radius:12px;border:1px solid rgba(148,163,184,.26);background:rgba(148,163,184,.08);color:var(--text);font-size:1.35rem;font-weight:800;cursor:pointer;transition:transform .12s ease,background .12s ease,border-color .12s ease}.score-btn:hover{background:rgba(148,163,184,.16);border-color:rgba(148,163,184,.42)}.score-btn:active{transform:translateY(1px) scale(.98)}.score-btn:focus-visible,.start-game-btn:focus-visible,.complete-game-btn:focus-visible{outline:2px solid #7cff6b;outline-offset:2px}.score-number{min-width:58px;text-align:center;font-size:2.35rem;line-height:1;font-weight:900;font-variant-numeric:tabular-nums}.score-input{width:72px;height:52px;padding:0 6px;border:1px solid transparent;border-radius:10px;background:rgba(2,6,23,.42);color:var(--text);appearance:textfield;-moz-appearance:textfield}.score-input::-webkit-outer-spin-button,.score-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.score-input:hover{border-color:rgba(148,163,184,.3)}.score-input:focus{outline:2px solid #7cff6b;outline-offset:2px;border-color:rgba(57,255,20,.4);background:rgba(2,6,23,.7)}.score-separator{font-size:1.35rem;color:var(--muted)}.complete-game-btn{min-height:44px;white-space:nowrap;font-weight:850}.completed-score-row{display:flex;align-items:center;justify-content:center;gap:14px;padding-top:12px;border-top:1px solid rgba(148,163,184,.14)}.completed-score-row strong{font-size:2rem;font-variant-numeric:tabular-nums}.completed-label{margin-left:auto;color:var(--muted);font-weight:750}.match-inline-error{margin-top:10px;padding:8px 10px;border:1px solid rgba(248,113,113,.28);border-radius:10px;background:rgba(127,29,29,.18);color:#fecaca;font-size:.82rem}.confirm-overlay{position:fixed;inset:0;z-index:1700;display:grid;place-items:center;padding:20px;background:rgba(2,6,23,.72)}.confirm-panel{width:min(420px,100%);padding:20px;border-radius:16px;border:1px solid rgba(148,163,184,.24);background:#0f172a;color:#f8fafc;box-shadow:0 24px 70px rgba(0,0,0,.45)}.confirm-panel h3{margin:0 0 7px}.confirm-panel p{margin:0;color:#a8b1bf}.confirm-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}
@media(max-width:850px){.match-card .teams{grid-template-columns:minmax(0,1fr) 38px minmax(0,1fr)!important}.active-score-row{grid-template-columns:1fr auto 1fr}.complete-game-btn{grid-column:1/-1;width:100%}.score-number{font-size:2.35rem}.score-btn{width:42px;height:42px}}
@media(max-width:560px){.match-card{padding:12px}.match-card-head{gap:8px}.match-status{font-size:.63rem}.match-card .teams{grid-template-columns:1fr!important}.team-side,.team-side:last-child{text-align:left}.team-side:last-child .match-player{flex-direction:row}.team-side:last-child .match-player-actions{flex-direction:row}.match-card .vs{padding:2px 0}.match-card-footer{flex-wrap:wrap}.start-game-btn{flex:1 1 160px}.active-score-row{grid-template-columns:1fr}.score-separator{display:none}.score-control{justify-content:space-between}.score-number{font-size:2.55rem}.complete-game-btn{grid-column:auto}.completed-score-row{flex-wrap:wrap}.completed-label{width:100%;margin-left:0;text-align:center}}

.next-four-games-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.next-four-card{opacity:.9}.next-four-card .match-player-name{display:block}.status-future{color:#94a3b8;background:rgba(148,163,184,.1);border:1px solid rgba(148,163,184,.25)}@media(max-width:850px){.next-four-games-grid{grid-template-columns:1fr}}
.match-card-compact-actions{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto}.match-card-footer .match-next-slot{width:34px;height:34px}.match-next-slot:hover{color:#9cc8ff;border-color:rgba(96,165,250,.45);background:rgba(59,130,246,.10)}
@media(max-width:560px){.match-card-compact-actions{order:0}.lineup-message{flex:1 1 auto}.start-game-btn{order:2}}

/* Session completion, summary, and history */
.session-page{max-width:1180px}.session-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.summary-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 0 20px}.summary-kicker{font-size:.72rem;letter-spacing:.12em;font-weight:900;color:var(--accent)}.winner-card{min-width:190px;padding:16px;border:1px solid rgba(156,255,87,.34);border-radius:16px;background:rgba(156,255,87,.08);text-align:center}.winner-card span{display:block;color:var(--muted);font-size:.8rem}.winner-card strong{display:block;margin-top:4px;font-size:1.35rem}.summary-stats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:24px}.summary-stats>div{padding:14px;border:1px solid rgba(148,163,184,.18);border-radius:13px;background:rgba(148,163,184,.05)}.summary-stats span{display:block;color:var(--muted);font-size:.76rem}.summary-stats strong{display:block;margin-top:4px;font-size:1.2rem}.summary-section{margin-top:18px}.summary-leaderboard .rank-1{background:rgba(250,204,21,.12)}.summary-leaderboard .rank-2{background:rgba(203,213,225,.09)}.summary-leaderboard .rank-3{background:rgba(217,119,6,.11)}.session-history-list{display:grid;gap:12px;margin-top:16px}.history-card{padding:18px;border:1px solid rgba(148,163,184,.18);border-radius:15px;background:rgba(148,163,184,.04)}.history-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.history-card-head h2{margin:0 0 5px}.history-meta,.history-podium{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.history-meta span,.history-podium span{padding:6px 9px;border:1px solid rgba(148,163,184,.16);border-radius:999px;color:var(--muted);font-size:.8rem}.history-podium .rank-1{border-color:rgba(250,204,21,.35);color:#fde68a}.history-podium .rank-2{border-color:rgba(203,213,225,.35);color:#e2e8f0}.history-podium .rank-3{border-color:rgba(217,119,6,.35);color:#fdba74}@media(max-width:900px){.summary-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:620px){.summary-hero,.history-card-head{align-items:stretch;flex-direction:column}.summary-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.session-actions{flex-direction:column}.session-actions>*{width:100%;justify-content:center}}
.final-score-list{display:grid;gap:9px}.final-score-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border:1px solid rgba(148,163,184,.16);border-radius:12px;background:rgba(148,163,184,.04)}.final-score-row>div:first-child{display:grid;gap:3px}.final-score-row span{color:var(--muted);font-size:.82rem}.final-score-value{text-align:right}.final-score-value strong{display:block;font-size:1.15rem}.final-score-value small{color:var(--muted)}.history-leaderboard{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.history-leaderboard span{font-size:.76rem;color:var(--muted)}@media(max-width:560px){.final-score-row{align-items:flex-start;flex-direction:column}.final-score-value{text-align:left}}

/* Court management manual assignment upgrade - uses existing palette and components */
.court-card.court-management-card{display:grid;gap:12px}.court-management-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.court-state-badge{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:999px;padding:5px 9px;font-size:.72rem;font-weight:850;letter-spacing:.04em}.court-match-preview{padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:rgba(255,255,255,.035);text-align:center}.court-match-preview .court-team{font-weight:800}.court-match-preview .court-vs{margin:4px 0;color:var(--muted);font-size:.75rem}.court-action-row{display:flex;gap:8px;flex-wrap:wrap}.court-action-row button{flex:1 1 150px}.choose-players-modal{position:fixed;inset:0;z-index:1800;padding:20px;background:rgba(2,6,23,.72);overflow:auto}.choose-players-panel{width:min(1040px,100%);max-height:calc(100vh - 40px);margin:auto;background:var(--card,#0f172a);color:var(--text);border:1px solid var(--border);border-radius:16px;padding:18px;display:flex;flex-direction:column;gap:12px}.choose-players-head{flex:0 0 auto}.choose-player-toolbar{display:grid;grid-template-columns:minmax(210px,1.4fr) repeat(3,minmax(145px,1fr));gap:8px}.manual-lineup{display:grid;grid-template-columns:1fr 54px 1fr;gap:10px;align-items:center}.manual-lineup section{border:1px solid var(--border);border-radius:12px;padding:10px}.manual-lineup h3{margin:0 0 8px}.manual-team-slots{display:grid;gap:6px}.manual-slot{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:38px;padding:7px 9px;border:1px solid var(--border);border-radius:10px;background:rgba(255,255,255,.035)}.manual-slot.empty{color:var(--muted)}.manual-vs{text-align:center;font-weight:900;color:var(--muted)}.selection-meta{display:flex;align-items:center;justify-content:space-between;gap:10px}.choose-players-list{overflow:auto;border:1px solid var(--border);border-radius:12px;min-height:180px}.choose-player-row{display:grid;grid-template-columns:70px minmax(150px,1.5fr) 95px 70px 70px 85px 110px 100px;gap:8px;align-items:center;padding:9px 10px;border-bottom:1px solid var(--border)}.choose-player-row:last-child{border-bottom:0}.choose-player-row.header{position:sticky;top:0;z-index:1;font-size:.72rem;font-weight:800;background:var(--card,#0f172a)}.choose-player-row .muted-small{font-size:.72rem;color:var(--muted)}.recommended-chip{display:inline-flex;width:max-content;border:1px solid var(--border);border-radius:999px;padding:2px 6px;font-size:.65rem;font-weight:800}.player-name-button{appearance:none;border:0;background:none;color:inherit;padding:0;text-align:left;font:inherit;font-weight:800;cursor:pointer}.choose-player-row button[data-manual-select]:disabled{opacity:.45;cursor:not-allowed}.choose-players-actions{display:flex;justify-content:flex-end;gap:8px;flex:0 0 auto}.player-details-popover{grid-column:1/-1;padding:8px 10px;border-top:1px dashed var(--border);font-size:.82rem;color:var(--muted)}
@media(max-width:850px){.choose-player-toolbar{grid-template-columns:1fr}.choose-player-row{grid-template-columns:55px minmax(130px,1fr) 70px 55px 55px 70px 90px}.choose-player-row>*:nth-child(6){display:none}.manual-lineup{grid-template-columns:1fr}.manual-vs{padding:0}.court-management-top{flex-direction:column}}
@media(max-width:560px){.choose-players-modal{padding:8px}.choose-players-panel{max-height:calc(100vh - 16px);padding:12px;border-radius:12px}.choose-player-row{grid-template-columns:48px minmax(120px,1fr) 65px 86px}.choose-player-row>*:nth-child(4),.choose-player-row>*:nth-child(5),.choose-player-row>*:nth-child(6){display:none}.selection-meta{align-items:flex-start;flex-direction:column}.choose-players-actions button{flex:1}}

/* Court cards reference layout */
#courts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:14px}
#courts .court-card.court-management-card{
  min-height:278px;margin:0;padding:24px 28px 26px;border-radius:24px;
  display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;
  background:#f7f8fa;border:2px dashed #cfd4dc;color:#192437;box-shadow:none;
}
#courts .court-management-card.court-status-ready{
  background:#effff6;border:2px solid #69efaa;box-shadow:0 2px 5px rgba(20,44,33,.12);
}
#courts .court-management-card.court-status-in-progress{
  background:#f4fff8;border:2px solid #69efaa;
}
#courts .court-management-card.court-status-waiting{background:#f7f8fa;border-style:dashed}
#courts .court-management-top{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:34px}
#courts .court-title-row{display:flex;align-items:center;gap:8px;min-width:0}
#courts .court-name{font-size:24px;line-height:1.1;letter-spacing:-.035em;color:#172235;white-space:nowrap}
#courts .court-state-badge{padding:5px 10px;border:0;border-radius:999px;background:#a9f4c6;color:#08723e;font-size:12px;font-weight:900;letter-spacing:.04em;line-height:1.4}
#courts .court-card-close{font-size:32px;line-height:1;color:#9ba5b5;font-weight:300;transform:translateY(-2px)}
#courts .court-time-editor{position:relative;margin:0}
#courts .court-time-editor summary{list-style:none;display:grid;place-items:center;width:26px;height:26px;color:#c7cdd7;font-size:23px;cursor:pointer;user-select:none}
#courts .court-time-editor summary::-webkit-details-marker{display:none}
#courts .court-time-editor .court-time-fields{position:absolute;z-index:20;top:34px;left:0;display:flex;gap:8px;padding:10px;background:#fff;border:1px solid #d9dee6;border-radius:12px;box-shadow:0 12px 30px rgba(23,34,53,.15)}
#courts .court-time-editor .court-time-label{color:#596579;margin:0;font-size:11px}
#courts .court-time-editor input{width:110px;background:#f4f6f8;color:#192437;border:1px solid #d9dee6;border-radius:9px;padding:7px}
#courts .court-match-preview{margin:24px auto 18px;padding:0;border:0;border-radius:0;background:transparent;text-align:center;font-size:18px;line-height:1.35;font-weight:800;color:#202b3c}
#courts .court-match-preview .court-team{font-weight:850}
#courts .court-match-preview .court-vs{display:inline;margin:0 7px;color:#8b95a6;font-size:16px;font-weight:800;text-transform:lowercase}
#courts .court-action-row{width:min(360px,82%);margin:0 auto;display:flex;flex-direction:column;gap:10px;flex-wrap:nowrap}
#courts .court-action-row button{width:100%;min-height:58px;flex:none;border-radius:14px;padding:12px 18px;font-size:18px;font-weight:850;border:0}
#courts .court-action-row .primary{background:#08ad4b;color:#fff}
#courts .court-action-row .secondary{background:#e7e9ed;color:#263247;border:0}
#courts .court-management-card:not(.court-status-ready):not(.court-status-in-progress) .court-action-row{margin-top:42px}
#courts .court-management-card:not(.court-status-ready):not(.court-status-in-progress) .court-name{color:#9aa4b4}
#courts .court-management-card.court-status-in-progress .court-action-row{display:none}
@media(max-width:850px){#courts{grid-template-columns:1fr}#courts .court-management-top{flex-direction:row}}
@media(max-width:560px){#courts .court-card.court-management-card{min-height:250px;padding:20px}#courts .court-name{font-size:21px}#courts .court-action-row{width:100%}#courts .court-action-row button{min-height:52px;font-size:16px}#courts .court-match-preview{font-size:16px}}

/* Court-style queue cards: mirrors the requested Court 1 / READY reference. */
#nextGames.court-reference-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}
#nextGames .queue-court-card{
  min-height:278px;
  padding:24px 28px 26px;
  border-radius:24px;
  display:flex;
  flex-direction:column;
  color:#192437;
  box-shadow:none;
  box-sizing:border-box;
}
#nextGames .queue-court-ready{
  background:#effff6;
  border:2px solid #69efaa;
  box-shadow:0 2px 5px rgba(20,44,33,.12);
}
#nextGames .queue-court-empty{
  background:#f7f8fa;
  border:2px dashed #cfd4dc;
}
#nextGames .queue-court-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  min-height:34px;
}
#nextGames .queue-court-title{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
}
#nextGames .queue-court-title strong{
  font-size:24px;
  line-height:1.1;
  letter-spacing:-.035em;
  color:#172235;
  white-space:nowrap;
}
#nextGames .queue-court-empty .queue-court-title strong{color:#9aa4b4}
#nextGames .queue-ready-badge{
  display:inline-flex;
  align-items:center;
  padding:5px 10px;
  border-radius:999px;
  background:#a9f4c6;
  color:#08723e;
  font-size:12px;
  font-weight:900;
  letter-spacing:.04em;
  line-height:1.4;
}
#nextGames .queue-edit-mark{
  color:#c7cdd7;
  font-size:23px;
  line-height:1;
}
#nextGames .queue-close-mark{
  color:#9ba5b5;
  font-size:32px;
  line-height:1;
  font-weight:300;
  transform:translateY(-2px);
}
#nextGames .queue-matchup{
  margin:24px auto 18px;
  text-align:center;
  font-size:18px;
  line-height:1.35;
  font-weight:850;
  color:#202b3c;
}
#nextGames .queue-vs{
  margin:0 7px;
  color:#8b95a6;
  font-size:16px;
  font-weight:800;
  text-transform:lowercase;
}
#nextGames .queue-court-actions{
  width:min(360px,82%);
  margin:0 auto;
  display:flex;
  flex-direction:column;
  gap:10px;
}
#nextGames .queue-empty-actions{margin-top:62px}
#nextGames .queue-court-actions button{
  width:100%;
  min-height:58px;
  border-radius:14px;
  padding:12px 18px;
  border:0;
  font-size:18px;
  font-weight:850;
}
#nextGames .queue-court-actions .primary{background:#08ad4b;color:#fff}
#nextGames .queue-court-actions .secondary{background:#e7e9ed;color:#263247;border:0}
@media(max-width:850px){#nextGames.court-reference-grid{grid-template-columns:1fr}}
@media(max-width:560px){
  #nextGames .queue-court-card{min-height:250px;padding:20px}
  #nextGames .queue-court-title strong{font-size:21px}
  #nextGames .queue-court-actions{width:100%}
  #nextGames .queue-court-actions button{min-height:52px;font-size:16px}
  #nextGames .queue-matchup{font-size:16px}
}

/* Player management bulk actions */
.player-section-head{align-items:flex-start;gap:12px;flex-wrap:wrap}.player-counts{margin:4px 0 0}.player-bulk-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.player-bulk-actions button{white-space:nowrap}.player-actions{flex-wrap:wrap}
.import-players-modal{position:fixed;inset:0;z-index:1850;padding:20px;background:rgba(2,6,23,.72);overflow:auto}.import-players-panel{width:min(1000px,100%);max-height:calc(100vh - 40px);margin:auto;background:var(--card,#0f172a);color:var(--text);border:1px solid var(--border);border-radius:16px;padding:18px;display:flex;flex-direction:column;gap:16px;overflow:auto}.import-players-head{align-items:flex-start}.import-players-head h2,.import-step h3{margin-top:0}.import-step{display:grid;gap:10px}.import-step textarea{width:100%;min-height:150px;resize:vertical;font:inherit;box-sizing:border-box}.import-paste-actions{align-items:center;flex-wrap:wrap}.import-preview{overflow:auto;border:1px solid var(--border);border-radius:12px;min-height:90px}.import-preview>p{padding:14px}.import-table{min-width:720px}.import-row{display:grid;grid-template-columns:minmax(210px,2fr) 120px 160px minmax(220px,1.5fr);gap:8px;align-items:start;padding:9px 10px;border-bottom:1px solid var(--border)}.import-row:last-child{border-bottom:0}.import-row.import-header{position:sticky;top:0;z-index:1;background:var(--card,#0f172a);font-size:.75rem;font-weight:850}.import-row.has-error{background:rgba(127,29,29,.12)}.import-status{display:grid;gap:3px}.import-status small{color:var(--muted);line-height:1.3}.import-row.has-error .import-status strong,.import-row.has-error .import-status small{color:#fecaca}.import-actions{display:flex;justify-content:flex-end;gap:8px}.match-inline-error.success{border-color:rgba(34,197,94,.32);background:rgba(20,83,45,.22);color:#bbf7d0}
@media(max-width:850px){.player-section-head{flex-direction:column}.player-bulk-actions{width:100%;justify-content:flex-start}.player-bulk-actions button{flex:1 1 150px}.player-actions{justify-content:flex-start}.import-players-modal{padding:10px}.import-players-panel{max-height:calc(100vh - 20px);padding:14px}}
@media(max-width:560px){.player-bulk-actions{display:grid;grid-template-columns:1fr}.player-bulk-actions button{width:100%}.op-add-player{grid-template-columns:1fr}.import-actions{flex-direction:column-reverse}.import-actions button{width:100%}.confirm-actions{flex-wrap:wrap}.confirm-actions button{flex:1 1 140px}}

/* Fast add-player search + level-first import */
.add-player-experience{display:grid;gap:14px;margin:12px 0 18px;padding:16px;border:1px solid var(--border);border-radius:16px;background:rgba(255,255,255,.02)}
.add-player-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.add-player-title-row h3{margin:0 0 4px}.add-player-title-row .primary{white-space:nowrap}
.level-picker{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.level-picker>span{font-weight:800}.level-buttons{display:flex;gap:8px;flex-wrap:wrap}.level-button{border:1px solid var(--border);background:var(--card,#0f172a);color:var(--text);border-radius:999px;padding:9px 16px;font:inherit;font-weight:800;cursor:pointer}.level-button.selected{background:#08ad4b;color:#fff;border-color:#08ad4b}.level-select{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.player-search-wrap{position:relative}.op-add-player{display:grid;grid-template-columns:minmax(220px,1fr) minmax(130px,180px) auto;gap:10px}.player-search-matches{position:absolute;left:0;right:0;top:calc(100% + 8px);z-index:40;border:1px solid var(--border);border-radius:14px;background:var(--card,#0f172a);box-shadow:0 16px 40px rgba(0,0,0,.25);overflow:hidden}.player-search-title,.player-search-empty{padding:11px 14px;color:var(--muted);font-size:.9rem}.player-search-title{font-weight:800;border-bottom:1px solid var(--border)}.player-search-result{width:100%;display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 14px;border:0;border-bottom:1px solid var(--border);background:transparent;color:var(--text);font:inherit;text-align:left;cursor:pointer}.player-search-result:last-child{border-bottom:0}.player-search-result:hover:not(:disabled){background:rgba(255,255,255,.05)}.player-search-result:disabled{opacity:.58;cursor:not-allowed}.player-search-result span:first-child{display:grid;gap:2px}.player-search-result small{color:var(--muted)}
.import-simple-panel{width:min(650px,100%)}.import-name-label{font-weight:800}.import-simple-panel textarea{min-height:240px}.import-detected-row{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}.import-name-preview{border:1px solid var(--border);border-radius:12px;max-height:240px;overflow:auto}.import-name-row{display:flex;justify-content:space-between;gap:14px;padding:10px 12px;border-bottom:1px solid var(--border)}.import-name-row:last-child{border-bottom:0}.import-name-row span{color:var(--muted);text-align:right}.import-name-row.skipped{opacity:.62}.import-name-row.skipped span{color:#fca5a5}
@media(max-width:700px){.op-add-player{grid-template-columns:1fr}.add-player-title-row .primary{width:100%}.level-picker{align-items:flex-start;flex-direction:column}.level-buttons{width:100%}.level-button{flex:1 1 80px}.player-search-matches{position:static;margin-top:8px}.import-name-row{align-items:flex-start;flex-direction:column}.import-name-row span{text-align:left}}


/* Simplified court availability + Extend Open Play controls */
.court-section-head{align-items:center}.court-head-actions{align-items:center;justify-content:flex-end}.court-head-actions #courtSummary{font-weight:750;color:var(--muted)}
#courts{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}
#courts .court-card.court-availability-card{display:grid;gap:14px;align-items:stretch;min-height:0;padding:16px;margin:0}
.court-availability-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.court-availability-head .court-name{font-size:1.05rem}.court-availability-status{display:flex;align-items:center;gap:2px;margin-top:5px;color:var(--muted);font-size:.86rem}.court-availability-status .status-dot{color:#22c55e}.court-availability-status.in-use .status-dot{color:#f59e0b}.court-availability-status.closed .status-dot{color:#94a3b8}
.court-availability-hours{line-height:1.55;font-size:.9rem}.court-availability-hours strong{color:var(--text)}.court-remaining{color:var(--muted);font-size:.82rem;font-weight:650}
#courts .court-simple-times{display:grid;grid-template-columns:1fr 1fr;gap:10px}.court-simple-times .court-time-label{font-size:.76rem;color:var(--muted);display:grid;gap:5px}.court-simple-times input{width:100%;box-sizing:border-box;min-width:0}
.extend-open-play-panel{width:min(520px,calc(100vw - 32px));display:grid;gap:14px}.extend-open-play-panel .head{align-items:flex-start}.extend-open-play-panel h3{margin:0}.extend-field{display:grid;gap:6px;color:var(--muted);font-size:.82rem}.extend-field input,.extend-field select{width:100%;box-sizing:border-box}.extend-check{display:flex;align-items:center;gap:9px;font-size:.9rem}.extend-check input{width:auto}.extend-target-block{display:grid;gap:7px}.target-stepper{display:grid;grid-template-columns:48px 1fr 48px;gap:8px}.target-stepper input{text-align:center;font-weight:850}.target-stepper button{padding:8px;font-size:1.2rem}.extend-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px}.extend-summary>div{border:1px solid var(--border);border-radius:12px;padding:10px;display:grid;gap:4px}.extend-summary span{font-size:.74rem;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.04em}.extend-summary strong{font-size:.88rem;line-height:1.4}
@media(max-width:700px){.court-section-head{align-items:flex-start;flex-direction:column}.court-head-actions{width:100%;justify-content:space-between}.court-head-actions button{margin-left:auto}#courts{grid-template-columns:1fr}.extend-summary{grid-template-columns:1fr}}
@media(max-width:480px){#courts .court-simple-times{grid-template-columns:1fr}.court-head-actions{align-items:flex-start;flex-direction:column}.court-head-actions button{width:100%;margin-left:0}}
