.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 var(--border-soft);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:var(--surface-secondary);--control-ink:var(--text-primary);color:var(--text-primary)}.audit-list{max-height:460px;overflow:auto}.audit-item small{display:block;color:var(--text-secondary)}.status-dot{width:9px;height:9px;border-radius:50%;display:inline-block;background:currentColor;--control-ink:var(--text-primary);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);--control-ink:var(--text-primary);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:var(--surface);--control-ink:var(--text-primary);z-index:1000;padding:24px;overflow:auto}.schedule-modal-panel{max-width:1050px;margin:0 auto;background:var(--surface,var(--surface));--control-ink:var(--text-primary);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:var(--surface)!important;--control-ink:var(--text-primary)!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:var(--text-primary)!important}.schedule-table th,.schedule-table td{border-color:var(--border-soft)!important}.schedule-print-meta div,.schedule-court-chip{border-color:var(--border-soft)!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:var(--text-primary)!important;background:var(--surface);--control-ink:var(--text-primary)}
.schedule-print-content .muted,.schedule-open-slot .muted{color:var(--text-secondary)!important}
.schedule-table th{background:var(--surface-secondary)!important;--control-ink:var(--text-primary)!important}
.schedule-open-slot td{background:var(--surface)!important;--control-ink:var(--text-primary)!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:var(--surface);--control-ink:var(--text-primary);z-index:1001;padding:24px;overflow:auto}.activity-modal-panel{max-width:650px;margin:8vh auto 0;background:var(--surface);--control-ink:var(--text-primary);color:var(--text-primary);border-radius:16px;padding:18px}.activity-modal-panel .audit-item{color:var(--text-primary)}.activity-modal-panel .audit-item small{color:var(--text-secondary)}.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 var(--border-soft);border-radius:10px;padding:7px 9px;background:var(--surface);--control-ink:var(--text-primary);color:var(--text-primary)}.schedule-search input,.schedule-filter select{border:0!important;background:var(--surface)!important;--control-ink:var(--text-primary)!important;color:var(--text-primary)!important;padding:0!important;min-width:130px;outline:none}.schedule-close{color:var(--text-primary)!important;background:var(--surface)!important;--control-ink:var(--text-primary)!important;border-color:var(--border-soft)!important}.schedule-planned-label{font-size:.72rem;color:var(--text-secondary);margin-top:2px}.schedule-results{font-size:.85rem;color:var(--text-secondary);margin:6px 0 10px}.schedule-table td,.schedule-table th{color:var(--text-primary)!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:var(--surface-secondary);--control-ink:var(--text-primary)}

/* 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 var(--brand-fill);border-radius:11px;background:var(--action-bg,var(--brand-fill));--control-ink:var(--on-brand);color:var(--on-brand);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:var(--action-bg,var(--brand-fill));--control-ink:var(--on-brand);border-color:var(--brand-fill)}
.schedule-edit-score:focus-visible{outline:2px solid var(--border-soft);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;--control-ink:var(--text-primary);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:var(--surface-secondary);--control-ink:var(--text-primary)}.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:var(--surface);--control-ink:var(--text-primary);color:var(--text-primary);box-shadow:0 10px 30px var(--shadow-color);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:var(--surface);--control-ink:var(--text-primary);border:1px solid var(--border-soft);border-radius:16px;padding:14px;box-shadow:0 10px 28px var(--shadow-color);overflow:hidden}.match-card.state-playing{border-color:var(--success-border);box-shadow:0 0 0 1px var(--shadow-color),0 12px 30px var(--shadow-color)}.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 var(--border-soft);background:var(--surface-secondary);--control-ink:var(--text-primary);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:var(--success-text);background:var(--success-surface);--control-ink:var(--text-primary);border:1px solid var(--success-border)}.status-up-next{color:var(--info-text);background:var(--info-surface);--control-ink:var(--text-primary);border:1px solid var(--info-border)}.status-completed{color:var(--text-secondary);background:var(--surface-secondary);--control-ink:var(--text-primary);border:1px solid var(--border-soft)}.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 var(--border-soft)}.match-card-footer .match-shuffle{width:34px;height:34px}.lineup-message{color:var(--warning-text);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 var(--border-soft)}.score-control{display:flex;align-items:center;justify-content:center;gap:10px}.score-btn{width:44px;height:44px;border-radius:12px;border:1px solid var(--border-soft);background:var(--surface-secondary);--control-ink:var(--text-primary);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:var(--surface-secondary);--control-ink:var(--text-primary);border-color:var(--border-soft)}.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 var(--success-border);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:var(--surface);--control-ink:var(--text-primary);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:var(--border-soft)}.score-input:focus{outline:2px solid var(--success-border);outline-offset:2px;border-color:var(--success-border);background:var(--surface);--control-ink:var(--text-primary)}.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 var(--border-soft)}.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 var(--danger-border);border-radius:10px;background:var(--danger-surface);--control-ink:var(--text-primary);color:var(--text-primary);font-size:.82rem}.confirm-overlay{position:fixed;inset:0;z-index:1700;display:grid;place-items:center;padding:20px;background:var(--surface);--control-ink:var(--text-primary)}.confirm-panel{width:min(420px,100%);padding:20px;border-radius:16px;border:1px solid var(--border-soft);background:var(--surface);--control-ink:var(--text-primary);color:var(--text-primary);box-shadow:0 24px 70px var(--shadow-color)}.confirm-panel h3{margin:0 0 7px}.confirm-panel p{margin:0;color:var(--text-secondary)}.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:var(--text-secondary);background:var(--surface-secondary);--control-ink:var(--text-primary);border:1px solid var(--border-soft)}@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:var(--info-text);border-color:var(--info-border);background:var(--info-surface);--control-ink:var(--text-primary)}
@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 var(--success-border);border-radius:16px;background:var(--success-surface);--control-ink:var(--text-primary);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 var(--border-soft);border-radius:13px;background:var(--surface-secondary);--control-ink:var(--text-primary)}.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:var(--warning-surface);--control-ink:var(--text-primary)}.summary-leaderboard .rank-2{background:var(--surface-secondary);--control-ink:var(--text-primary)}.summary-leaderboard .rank-3{background:var(--warning-surface);--control-ink:var(--text-primary)}.session-history-list{display:grid;gap:12px;margin-top:16px}.history-card{padding:18px;border:1px solid var(--border-soft);border-radius:15px;background:var(--surface-secondary);--control-ink:var(--text-primary)}.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 var(--border-soft);border-radius:999px;color:var(--muted);font-size:.8rem}.history-podium .rank-1{border-color:var(--warning-border);color:var(--warning-text)}.history-podium .rank-2{border-color:var(--border-soft);color:var(--text-primary)}.history-podium .rank-3{border-color:var(--warning-border);color:var(--warning-text)}@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 var(--border-soft);border-radius:12px;background:var(--surface-secondary);--control-ink:var(--text-primary)}.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:var(--surface);--control-ink:var(--text-primary);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:var(--surface);--control-ink:var(--text-primary);overflow:auto}.choose-players-panel{width:min(1040px,100%);max-height:calc(100vh - 40px);margin:auto;background:var(--card,var(--surface));--control-ink:var(--text-primary);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:var(--surface);--control-ink:var(--text-primary)}.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,var(--surface));--control-ink:var(--text-primary)}.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;--control-ink:var(--text-primary);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:var(--surface-secondary);--control-ink:var(--text-primary);border:2px dashed var(--border-soft);color:var(--text-primary);box-shadow:none;
}
#courts .court-management-card.court-status-ready{
  background:var(--surface-secondary);--control-ink:var(--text-primary);border:2px solid var(--success-border);box-shadow:0 2px 5px var(--shadow-color);
}
#courts .court-management-card.court-status-in-progress{
  background:var(--surface-secondary);--control-ink:var(--text-primary);border:2px solid var(--success-border);
}
#courts .court-management-card.court-status-waiting{background:var(--surface-secondary);--control-ink:var(--text-primary);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:var(--text-primary);white-space:nowrap}
#courts .court-state-badge{padding:5px 10px;border:0;border-radius:999px;background:var(--success-surface);--control-ink:var(--text-primary);color:var(--success-text);font-size:12px;font-weight:900;letter-spacing:.04em;line-height:1.4}
#courts .court-card-close{font-size:32px;line-height:1;color:var(--text-secondary);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:var(--text-secondary);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:var(--surface);--control-ink:var(--text-primary);border:1px solid var(--border-soft);border-radius:12px;box-shadow:0 12px 30px var(--shadow-color)}
#courts .court-time-editor .court-time-label{color:var(--text-secondary);margin:0;font-size:11px}
#courts .court-time-editor input{width:110px;background:var(--surface-secondary);--control-ink:var(--text-primary);color:var(--text-primary);border:1px solid var(--border-soft);border-radius:9px;padding:7px}
#courts .court-match-preview{margin:24px auto 18px;padding:0;border:0;border-radius:0;background:transparent;--control-ink:var(--text-primary);text-align:center;font-size:18px;line-height:1.35;font-weight:800;color:var(--text-primary)}
#courts .court-match-preview .court-team{font-weight:850}
#courts .court-match-preview .court-vs{display:inline;margin:0 7px;color:var(--text-secondary);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:var(--action-bg,var(--brand-fill));--control-ink:var(--on-brand);color:var(--on-brand)}
#courts .court-action-row .secondary{background:var(--surface);--control-ink:var(--text-primary);color:var(--brand-fill);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:var(--text-secondary)}
#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:var(--text-primary);
  box-shadow:none;
  box-sizing:border-box;
}
#nextGames .queue-court-ready{
  background:var(--surface-secondary);--control-ink:var(--text-primary);
  border:2px solid var(--success-border);
  box-shadow:0 2px 5px var(--shadow-color);
}
#nextGames .queue-court-empty{
  background:var(--surface-secondary);--control-ink:var(--text-primary);
  border:2px dashed var(--border-soft);
}
#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:var(--text-primary);
  white-space:nowrap;
}
#nextGames .queue-court-empty .queue-court-title strong{color:var(--text-secondary)}
#nextGames .queue-ready-badge{
  display:inline-flex;
  align-items:center;
  padding:5px 10px;
  border-radius:999px;
  background:var(--success-surface);--control-ink:var(--text-primary);
  color:var(--success-text);
  font-size:12px;
  font-weight:900;
  letter-spacing:.04em;
  line-height:1.4;
}
#nextGames .queue-edit-mark{
  color:var(--text-secondary);
  font-size:23px;
  line-height:1;
}
#nextGames .queue-close-mark{
  color:var(--text-secondary);
  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:var(--text-primary);
}
#nextGames .queue-vs{
  margin:0 7px;
  color:var(--text-secondary);
  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:var(--action-bg,var(--brand-fill));--control-ink:var(--on-brand);color:var(--on-brand)}
#nextGames .queue-court-actions .secondary{background:var(--surface);--control-ink:var(--text-primary);color:var(--brand-fill);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:var(--surface);--control-ink:var(--text-primary);overflow:auto}.import-players-panel{width:min(1000px,100%);max-height:calc(100vh - 40px);margin:auto;background:var(--card,var(--surface));--control-ink:var(--text-primary);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,var(--surface));--control-ink:var(--text-primary);font-size:.75rem;font-weight:850}.import-row.has-error{background:var(--danger-surface);--control-ink:var(--text-primary)}.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:var(--text-primary)}.import-actions{display:flex;justify-content:flex-end;gap:8px}.match-inline-error.success{border-color:var(--success-border);background:var(--success-surface);--control-ink:var(--text-primary);color:var(--success-text)}
@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:var(--surface);--control-ink:var(--text-primary)}
.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,var(--surface));--control-ink:var(--text-primary);color:var(--text);border-radius:999px;padding:9px 16px;font:inherit;font-weight:800;cursor:pointer}.level-button.selected{background:var(--success-surface);--control-ink:var(--text-primary);color:var(--brand-fill);border-color:var(--brand-fill)}.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,var(--surface));--control-ink:var(--text-primary);box-shadow:0 16px 40px var(--shadow-color);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;--control-ink:var(--text-primary);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:var(--surface);--control-ink:var(--text-primary)}.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:var(--danger-text)}
@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:var(--success-text)}.court-availability-status.in-use .status-dot{color:var(--warning-text)}.court-availability-status.closed .status-dot{color:var(--text-secondary)}
.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}}
.edit-playing-panel{width:min(660px,calc(100vw - 24px));max-height:calc(100vh - 24px);overflow:auto}.edit-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.edit-modal-header h3,.replacement-picker h3{margin:0}.icon-only{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;padding:0;border:1px solid var(--border,var(--border-soft));border-radius:11px;background:transparent;--control-ink:var(--text-primary);color:var(--text);font-size:24px;cursor:pointer}.icon-only:hover,.icon-only:focus-visible,.replace-player-icon:hover,.replace-player-icon:focus-visible,.select-player-icon:hover,.select-player-icon:focus-visible{border-color:var(--accent);color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--shadow-color)}.edit-playing-teams{display:grid;grid-template-columns:1fr;gap:14px;margin:18px 0}.edit-playing-team{display:grid;gap:8px}.edit-playing-team-title{font-size:.78rem;letter-spacing:.08em;color:var(--muted)}.edit-playing-vs{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:.78rem;font-weight:900}.edit-playing-vs:before,.edit-playing-vs:after{content:"";height:1px;flex:1;background:var(--border,var(--surface));--control-ink:var(--text-primary)}.edit-player-slot{display:grid;grid-template-columns:42px minmax(0,1fr) 42px;gap:11px;align-items:center;padding:11px;border:1px solid var(--border,var(--border-soft));border-radius:12px}.player-initials{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--success-surface);--control-ink:var(--text-primary);color:var(--accent);font-size:.78rem;font-weight:900}.edit-player-info{min-width:0}.edit-player-info strong{display:block;overflow-wrap:anywhere;line-height:1.25}.edit-player-info small,.replacement-row small{display:block;color:var(--muted);margin-top:4px}.replace-player-icon,.select-player-icon{display:grid;place-items:center;width:42px;height:42px;padding:0;border:1px solid var(--border,var(--border-soft));border-radius:10px;background:transparent;--control-ink:var(--text-primary);color:var(--muted);cursor:pointer}.replace-player-icon svg,.select-player-icon svg{width:19px;height:19px}.cross-category-note{display:block;margin-top:5px;color:var(--warning-text);font-size:.74rem;font-weight:750}.cross-warning-icon{color:var(--warning-text);margin-right:4px}.replacement-picker{padding-top:4px}.replacement-back{padding:0;margin:0 0 12px;border:0;background:transparent;--control-ink:var(--text-primary);color:var(--accent);font-weight:800;cursor:pointer}.replacement-target{padding:10px 0 14px;color:var(--muted)}.replacement-tools{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:10px}.replacement-search-wrap{position:relative}.replacement-search-wrap input{width:100%;padding-left:40px;padding-right:38px}.replacement-search-icon{position:absolute;left:13px;top:50%;transform:translateY(-50%);font-size:22px;color:var(--muted);pointer-events:none}.replacement-clear{position:absolute;right:7px;top:50%;transform:translateY(-50%);width:30px;height:30px;border:0;background:transparent;--control-ink:var(--text-primary);color:var(--muted);font-size:20px;cursor:pointer}.available-heading{margin:18px 0 9px;font-size:.76rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.replacement-list{display:grid;gap:7px;max-height:340px;overflow:auto}.replacement-row{display:grid;grid-template-columns:38px minmax(0,1fr) 42px;gap:10px;align-items:center;padding:10px;border:1px solid var(--border,var(--border-soft));border-radius:11px;cursor:pointer}.replacement-row:hover,.replacement-row:focus-visible{border-color:var(--success-border);background:var(--success-surface);--control-ink:var(--text-primary);outline:none}.empty-replacements{text-align:center;padding:28px 12px}.empty-replacements strong{display:block;margin-bottom:6px}.playing-edit-btn{white-space:nowrap}.cross-confirm-panel{width:min(500px,calc(100vw - 24px))}.cross-confirm-route{display:flex;align-items:center;justify-content:center;gap:10px;padding:12px;margin:14px 0;border:1px solid var(--warning-border);border-radius:11px;color:var(--warning-text);font-weight:850}.cross-confirm-input{text-transform:uppercase}
@media(max-width:580px){.edit-playing-panel{width:calc(100vw - 16px);max-height:calc(100vh - 16px);padding:16px}.replacement-tools{grid-template-columns:1fr}.active-score-row{flex-wrap:wrap}.playing-edit-btn{width:100%;order:10}.edit-player-slot{grid-template-columns:40px minmax(0,1fr) 44px}.replace-player-icon,.select-player-icon{width:44px;height:44px}}
.replacement-search-icon{font-size:0;width:16px;height:16px;border:2px solid currentColor;border-radius:50%}.replacement-search-icon:after{content:"";position:absolute;width:7px;height:2px;background:currentColor;--control-ink:var(--text-primary);right:-5px;bottom:-2px;transform:rotate(45deg);border-radius:2px}
.replacement-row-disabled{cursor:not-allowed;opacity:.62}.replacement-row-disabled:hover{border-color:var(--border,var(--border-soft));background:transparent;--control-ink:var(--text-primary)}.replacement-blocked{font-size:.72rem;font-weight:800;color:var(--danger-text);text-align:right}.player-search-highlight{border-color:var(--accent)!important;box-shadow:0 0 0 3px var(--shadow-color);animation:player-search-pulse .6s ease 2}@keyframes player-search-pulse{50%{background:var(--success-surface);--control-ink:var(--text-primary)}}
.upcoming-card-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.upcoming-edit-button{flex:0 0 40px;width:40px;height:40px;border-color:var(--success-border);color:var(--accent)}.upcoming-edit-button svg{width:17px;height:17px;pointer-events:none}@media(max-width:580px){.upcoming-card-actions{align-items:flex-end;flex-direction:column}.upcoming-edit-button{width:44px;height:44px;flex-basis:44px}}

/* Replacement search controls share one stable geometry on every screen. */
#editPlayingMatchModal .replacement-tools{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:10px;align-items:start}
#editPlayingMatchModal .replacement-search-wrap{position:relative;display:block;height:52px;min-width:0}
#editPlayingMatchModal .replacement-search-wrap input,#editPlayingMatchModal .replacement-tools>select{display:block;width:100%;height:52px;min-height:52px;box-sizing:border-box;margin:0;border-radius:12px}
#editPlayingMatchModal .replacement-search-wrap input{padding:0 40px 0 42px}
#editPlayingMatchModal .replacement-search-icon{position:absolute;z-index:2;left:15px;top:18px;transform:none;pointer-events:none}
#editPlayingMatchModal .replacement-clear{position:absolute;z-index:2;right:7px;top:11px;transform:none}
@media(max-width:580px){#editPlayingMatchModal .replacement-tools{grid-template-columns:1fr;gap:10px}}

/* Keep Edit Match isolated from legacy/global button and row styles. */
#editPlayingMatchModal .edit-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
#editPlayingMatchModal .modal-close-icon{display:grid;place-items:center;position:static;flex:0 0 42px;width:42px;height:42px;min-width:42px;min-height:42px;margin:0;padding:0;border:1px solid var(--border,var(--border-soft));border-radius:11px;background:transparent;--control-ink:var(--text-primary);color:var(--text);font-size:24px;line-height:1}
#editPlayingMatchModal .edit-player-slot{display:grid;grid-template-columns:42px minmax(0,1fr) 42px;gap:11px;align-items:center}
#editPlayingMatchModal .player-initials{display:grid;place-items:center;width:38px;height:38px;min-width:38px;min-height:38px;padding:0;border-radius:50%;line-height:1}
#editPlayingMatchModal .edit-player-info{display:block;min-width:0}
#editPlayingMatchModal .edit-player-info strong,#editPlayingMatchModal .edit-player-info small{display:block}
#editPlayingMatchModal .replace-player-icon,#editPlayingMatchModal .select-player-icon{display:grid;place-items:center;position:static;width:42px;height:42px;min-width:42px;min-height:42px;margin:0;padding:0;border:1px solid var(--border,var(--border-soft));border-radius:10px;background:transparent;--control-ink:var(--text-primary);color:var(--muted);line-height:1}
#editPlayingMatchModal .replace-player-icon svg,#editPlayingMatchModal .select-player-icon svg{display:block;width:19px;height:19px;fill:none}
@media(max-width:580px){#editPlayingMatchModal .edit-player-slot{grid-template-columns:40px minmax(0,1fr) 44px}#editPlayingMatchModal .replace-player-icon,#editPlayingMatchModal .select-player-icon{width:44px;height:44px;min-width:44px;min-height:44px}}

/* Manual-ready court refinements */
#nextGames .queue-edit-mark{border:0;background:transparent;--control-ink:var(--text-primary);padding:2px 4px;cursor:pointer;color:var(--text-secondary);border-radius:6px}
#nextGames .queue-edit-mark:hover,#nextGames .queue-edit-mark:focus-visible{color:var(--text-primary);background:var(--surface);--control-ink:var(--text-primary);outline:2px solid var(--purple-border);outline-offset:1px}
#nextGames .queue-matchup{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:14px}
#nextGames .queue-team{display:grid;gap:8px}
#nextGames .queue-player{display:grid;gap:2px}
#nextGames .queue-player small{font-size:12px;color:var(--text-secondary);font-weight:700}
.rename-court-panel label{display:grid;gap:8px;margin-top:14px;font-weight:800}
.rename-court-panel input{width:100%}

/* Post-completion AVAILABLE court state - compact dark card, manual actions only */
#nextGames .queue-court-card.queue-court-empty{
  min-height:0;
  padding:20px 22px;
  border-radius:18px;
  background:var(--surface);--control-ink:var(--text-primary);
  border:1px solid var(--border-soft);
  color:var(--text-primary);
  box-shadow:0 10px 28px var(--shadow-color);
}
#nextGames .queue-court-empty .queue-court-top{
  margin-bottom:18px;
}
#nextGames .queue-court-empty .queue-court-title{
  display:flex;
  align-items:center;
  gap:9px;
  flex-wrap:wrap;
}
#nextGames .queue-court-empty .queue-court-title>strong{
  color:var(--text-primary);
  font-size:20px;
}
#nextGames .queue-court-empty .queue-edit-mark{
  color:var(--text-secondary);
}
#nextGames .queue-available-badge{
  display:inline-flex;
  align-items:center;
  margin-left:auto;
  padding:5px 10px;
  border-radius:999px;
  border:1px solid var(--border-soft);
  background:var(--surface-secondary);--control-ink:var(--text-primary);
  color:var(--text-secondary);
  font-size:11px;
  font-weight:900;
  letter-spacing:.06em;
}
#nextGames .queue-empty-copy{
  display:grid;
  gap:4px;
  padding:14px 0 18px;
  border-top:1px solid var(--border-soft);
}
#nextGames .queue-empty-copy strong{
  color:var(--text-primary);
  font-size:15px;
}
#nextGames .queue-empty-copy small{
  color:var(--text-secondary);
  line-height:1.45;
}
#nextGames .queue-court-empty .queue-empty-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin:0;
}
#nextGames .queue-court-empty .queue-empty-actions button{
  min-height:46px;
  padding:10px 14px;
  border-radius:11px;
  background:var(--surface);--control-ink:var(--text-primary);
  border:1px solid var(--border-soft);
  color:var(--text-primary);
  font-size:14px;
  font-weight:800;
}
#nextGames .queue-court-empty .queue-empty-actions button:hover,
#nextGames .queue-court-empty .queue-empty-actions button:focus-visible{
  background:var(--surface);--control-ink:var(--text-primary);
  border-color:var(--border-soft);
  outline:none;
}
@media(max-width:560px){
  #nextGames .queue-court-card.queue-court-empty{padding:17px}
  #nextGames .queue-court-empty .queue-empty-actions{grid-template-columns:1fr}
  #nextGames .queue-available-badge{margin-left:0}
}

/* End Session */
.end-session-btn{white-space:nowrap;font-weight:850}.end-session-panel{max-width:520px;text-align:left}.end-session-icon{display:grid;place-items:center;width:42px;height:42px;margin-bottom:14px;border-radius:12px;background:var(--danger-surface);--control-ink:var(--text-primary);border:1px solid var(--danger-border);color:var(--danger-text);font-size:.9rem}.end-session-panel h3{margin-bottom:8px}.end-session-note{display:grid;gap:5px;margin:18px 0;padding:14px 15px;border:1px solid var(--border-soft);border-radius:13px;background:var(--surface-secondary);--control-ink:var(--text-primary)}.end-session-note strong{font-size:.9rem}.end-session-note span{color:var(--muted);font-size:.82rem;line-height:1.45}@media(max-width:700px){.court-head-actions{flex-wrap:wrap}.court-head-actions #courtSummary{width:100%}.court-head-actions .end-session-btn{margin-left:0}}@media(max-width:480px){.court-head-actions .end-session-btn{width:100%}}

/* Partner Lock - isolated Open Play enhancement */
.partner-inline{display:block;margin-top:5px;padding:0;border:0;background:transparent;--control-ink:var(--text-primary);color:var(--accent);font-size:.76rem;font-weight:800;cursor:pointer;text-align:left}.partner-set-btn{white-space:nowrap}.partner-lock-panel{width:min(520px,calc(100vw - 24px))}.partner-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}.partner-form-grid label,#partnerTemporaryOptions label{display:grid;gap:6px;font-size:.8rem;color:var(--muted);font-weight:800}.partner-type-field{display:flex;gap:18px;flex-wrap:wrap;margin:12px 0;padding:12px;border:1px solid var(--border,var(--border-soft));border-radius:12px}.partner-type-field legend{padding:0 6px;color:var(--muted);font-size:.75rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.partner-type-field label{display:flex;align-items:center;gap:7px}.partner-action-spacer{flex:1}.partner-pair-chip{display:inline-flex;width:max-content;margin:0 0 8px;padding:4px 8px;border-radius:999px;background:var(--purple-surface);--control-ink:var(--text-primary);color:var(--success-text);font-size:11px;font-weight:900;letter-spacing:.04em}@media(max-width:580px){.partner-form-grid{grid-template-columns:1fr}.partner-actions{flex-wrap:wrap}.partner-action-spacer{display:none}}

.partner-inline-wrap{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.partner-unlink-mini{padding:0;border:0;background:transparent;--control-ink:var(--text-primary);color:var(--muted);font-size:.7rem;font-weight:800;text-decoration:underline;cursor:pointer}.partner-unlink-mini:hover{color:var(--text)}

/* Partner Lock manager: isolated UI addition */
.player-head-actions{align-items:center}.partner-lock-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 0 14px;padding:10px 12px;border:1px solid var(--purple-border);border-radius:12px;background:var(--purple-surface);--control-ink:var(--text-primary);font-size:.78rem}.partner-lock-summary strong{color:var(--success-text)}.partner-lock-summary span{color:var(--muted)}.partner-manager-panel{width:min(640px,calc(100vw - 24px));max-height:80vh;overflow:auto}.partner-manager-new{width:100%;margin:14px 0}.active-partner-locks{display:grid;gap:10px}.partner-manager-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--border,var(--border-soft));border-radius:12px}.partner-manager-row>div:first-child{display:grid;gap:4px}.partner-manager-row span,.partner-manager-empty span{font-size:.76rem;color:var(--muted)}.partner-manager-empty{display:grid;gap:5px;padding:18px;text-align:center;border:1px dashed var(--border,var(--border-soft));border-radius:12px}.partner-set-btn{border-color:var(--purple-border)!important}.partner-set-btn:hover,#managePartners:hover{border-color:var(--success-border)!important}@media(max-width:680px){.player-section-head{align-items:flex-start}.player-head-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.partner-lock-summary,.partner-manager-row{align-items:flex-start;flex-direction:column}.partner-manager-row .row{width:100%}.partner-manager-row .row button{flex:1}}

/* Organizer-driven Upcoming Games workflow */
.upcoming-add-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:18px}.upcoming-add-row .compact-copy{margin:0}.upcoming-workflow-card{border:1px solid var(--line,var(--border-soft));padding:16px}.upcoming-review-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.upcoming-player-detail{display:flex;flex-direction:column;gap:2px;padding:6px 0}.upcoming-player-detail small{font-size:12px;opacity:.72}.upcoming-confirmed{font-weight:800}.upcoming-waiting{font-weight:700}.upcoming-proposed{font-weight:700}.upcoming-card-note{font-size:12px;opacity:.72;margin-top:12px}.upcoming-edit-panel{max-width:760px}.upcoming-edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}.upcoming-edit-grid label{display:flex;flex-direction:column;gap:6px}.upcoming-edit-grid select{width:100%}@media(max-width:720px){.upcoming-edit-grid{grid-template-columns:1fr}.upcoming-review-actions>*{flex:1 1 45%}}
/* 2026-09-09 isolated court auto-READY + compact match editor update */
#nextGames .queue-court-card{min-height:0;height:auto;padding:14px 16px;gap:12px}
#nextGames .queue-court-empty .queue-empty-copy{padding:4px 0;min-height:0}
#nextGames .queue-court-empty .queue-empty-copy strong{font-size:.9rem}
#nextGames .queue-court-empty .queue-empty-copy small{display:block;margin-top:3px;color:var(--muted);font-size:.76rem}
#nextGames .queue-court-ready .queue-matchup{margin:2px 0 4px}
#nextGames .queue-player strong{font-size:.94rem;line-height:1.2}
#nextGames .queue-player small{font-size:.7rem;color:var(--muted)}
#editPlayingMatchModal .edit-playing-panel{width:min(760px,calc(100vw - 28px));padding:18px;max-height:calc(100vh - 28px)}
#editPlayingMatchModal .edit-playing-teams{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:14px;margin:14px 0}
#editPlayingMatchModal .edit-playing-vs{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--border);border-radius:999px;font-size:.68rem}
#editPlayingMatchModal .edit-playing-vs:before,#editPlayingMatchModal .edit-playing-vs:after{display:none}
#editPlayingMatchModal .replacement-list{max-height:360px;overflow-y:auto;overscroll-behavior:contain;padding-right:3px}
#editPlayingMatchModal .replacement-row{min-height:58px;padding:9px 10px}
#editPlayingMatchModal .replacement-row .edit-player-info strong{font-size:.9rem}
#editPlayingMatchModal .replacement-row .edit-player-info small{font-size:.72rem;line-height:1.25}
#editPlayingMatchModal .picker-partner{color:var(--accent)!important;font-weight:750}
@media(max-width:680px){#editPlayingMatchModal .edit-playing-teams{grid-template-columns:1fr}.edit-playing-vs{justify-self:center}#editPlayingMatchModal .edit-playing-panel{width:calc(100vw - 14px);max-height:calc(100vh - 14px);padding:14px}}

/* V7: Partner category filter */
.partner-category-filter{display:flex;flex-direction:column;gap:6px;margin:10px 0 4px;padding:10px 12px;border:1px solid var(--border,var(--border-soft));border-radius:10px;background:var(--surface);--control-ink:var(--text-primary)}
.partner-category-filter label{display:flex;align-items:center;gap:8px;font-weight:700;cursor:pointer}.partner-category-filter input{width:auto;margin:0}.partner-category-filter small{line-height:1.35}

/* V8 advance queue controls */
.next-queue-chip{display:inline-flex;margin-left:.55rem;padding:.18rem .5rem;border-radius:999px;font-size:.68rem;font-weight:800;letter-spacing:.04em;background:var(--success-surface);--control-ink:var(--text-primary);color:var(--success-text);vertical-align:middle}
.upcoming-send-row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.upcoming-send-row select{min-width:140px;max-width:220px}.waiting-for-court{font-weight:700}.queue-next-preview small{display:block;margin-top:.3rem}.upcoming-review-actions>.primary{white-space:nowrap}

/* V9 - explicit continue-after-confirm + compact upcoming icon actions */
.icon-action-button{display:inline-grid!important;place-items:center;flex:0 0 44px!important;width:44px;min-width:44px;height:44px;padding:0!important;border-radius:12px;font-size:1.2rem;line-height:1}.icon-action-button span{display:block;transform:translateY(-1px)}.icon-action-button:hover{transform:translateY(-1px)}.upcoming-continue-choice{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:14px;padding:12px 14px;border:1px solid var(--purple-border);border-radius:13px;background:var(--purple-surface);--control-ink:var(--text-primary)}.upcoming-continue-choice>div:first-child{display:grid;gap:3px}.upcoming-continue-choice strong{font-size:.86rem}.upcoming-continue-choice small{color:var(--muted);font-size:.74rem;line-height:1.35}.upcoming-continue-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.upcoming-continue-actions button{white-space:nowrap}@media(max-width:680px){.upcoming-continue-choice{align-items:stretch;flex-direction:column}.upcoming-continue-actions{display:grid;grid-template-columns:1fr 1fr}.upcoming-continue-actions button{width:100%}.upcoming-review-actions .icon-action-button{flex:0 0 44px!important}}

/* V10: keep Ready for Available Courts stable across state re-renders. */
#nextGames.court-reference-grid{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  grid-auto-flow:row;
  align-items:stretch;
  width:100%;
  gap:18px;
}
#nextGames.court-reference-grid > .queue-court-card{
  width:100%;
  min-width:0;
  max-width:none;
  margin:0;
  box-sizing:border-box;
}
@media(max-width:720px){
  #nextGames.court-reference-grid{
    grid-template-columns:minmax(0,1fr) !important;
  }
}


/* V11 — stable unified Live Courts grid + simple Add/Remove Court controls */
.court-management-name-row{display:flex;align-items:center;gap:8px;min-width:0}
.court-remove-action{appearance:none;border:1px solid var(--danger-border);background:var(--danger-surface);--control-ink:var(--text-primary);color:var(--danger-text);border-radius:9px;padding:7px 10px;font-weight:800;cursor:pointer}
.court-remove-action:hover{background:var(--danger-surface);--control-ink:var(--text-primary)}
#nextGames.court-reference-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px!important;align-items:stretch}
#nextGames.court-reference-grid>.queue-court-card{width:100%!important;min-width:0!important;max-width:none!important;margin:0!important;box-sizing:border-box}
#nextGames .queue-court-playing{border-color:var(--purple-border);background:var(--purple-surface);--control-ink:var(--text-primary)}
.queue-playing-badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 10px;font-size:.72rem;font-weight:900;letter-spacing:.04em;background:var(--purple-surface);--control-ink:var(--text-primary);color:var(--info-text)}
#nextGames .queue-court-playing .active-score-row{margin-top:auto;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
#nextGames .queue-court-playing .active-score-row .complete-game-btn{flex:1 1 180px}
@media(max-width:720px){#nextGames.court-reference-grid{grid-template-columns:1fr!important}}

/* V12 — dark-theme visibility + court UI polish (visual only) */
/* PLAYING Live Court cards use a dark surface, so explicitly override the
   light-card typography rules without affecting READY/AVAILABLE cards. */
#nextGames .queue-court-playing{
  background:var(--surface);--control-ink:var(--text-primary);
  border-color:var(--purple-border);
  color:var(--text-primary);
  box-shadow:0 10px 28px var(--shadow-color),inset 0 1px 0 var(--shadow-color);
}
#nextGames .queue-court-playing .queue-court-title strong{
  color:var(--text-primary);
  text-shadow:0 1px 1px var(--shadow-color);
}
#nextGames .queue-court-playing .queue-edit-mark{
  color:var(--text-primary);
}
#nextGames .queue-court-playing .queue-matchup{
  color:var(--text-primary);
}
#nextGames .queue-court-playing .queue-player strong{
  color:var(--text-primary);
  font-weight:850;
}
#nextGames .queue-court-playing .queue-player small{
  color:var(--text-secondary);
  font-weight:750;
}
#nextGames .queue-court-playing .queue-vs,
#nextGames .queue-court-playing .score-separator{
  color:var(--text-secondary);
}
#nextGames .queue-court-playing .active-score-row{
  border-top-color:var(--border-soft);
}
#nextGames .queue-court-playing .score-btn{
  background:var(--surface);--control-ink:var(--text-primary);
  border-color:var(--border-soft);
  color:var(--text-primary);
}
#nextGames .queue-court-playing .score-btn:hover,
#nextGames .queue-court-playing .score-btn:focus-visible{
  background:var(--surface);--control-ink:var(--text-primary);
  border-color:var(--info-border);
}
#nextGames .queue-court-playing .score-input{
  background:var(--surface);--control-ink:var(--text-primary);
  border-color:var(--info-border);
  color:var(--text-primary);
  font-weight:800;
  caret-color:var(--success-text);
}
#nextGames .queue-court-playing .score-input:hover{
  border-color:var(--info-border);
}
#nextGames .queue-court-playing .score-input:focus{
  background:var(--surface);--control-ink:var(--text-primary);
  border-color:var(--success-border);
  color:var(--text-primary);
}
#nextGames .queue-court-playing .playing-edit-btn{
  background:var(--surface);--control-ink:var(--text-primary);
  border-color:var(--border-soft);
  color:var(--text-primary);
}
#nextGames .queue-court-playing .playing-edit-btn:hover,
#nextGames .queue-court-playing .playing-edit-btn:focus-visible{
  background:var(--surface);--control-ink:var(--text-primary);
  border-color:var(--info-border);
}
#nextGames .queue-court-playing .complete-game-btn{
  color:var(--danger-text);
  box-shadow:0 3px 10px var(--shadow-color);
}

/* Court Management / Add Court cards always sit on the dark management panel. */
#courts .court-card.court-availability-card{
  background:var(--surface);--control-ink:var(--text-primary);
  border-color:var(--border-soft);
  box-shadow:0 8px 24px var(--shadow-color);
}
#courts .court-availability-card .court-name{
  color:var(--text-primary);
  font-weight:900;
  letter-spacing:-.025em;
}
#courts .court-availability-card .queue-edit-mark{
  color:var(--text-primary);
  background:var(--surface);--control-ink:var(--text-primary);
  border:1px solid var(--border-soft);
  border-radius:10px;
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  padding:0;
  line-height:1;
}
#courts .court-availability-card .queue-edit-mark:hover,
#courts .court-availability-card .queue-edit-mark:focus-visible{
  background:var(--surface);--control-ink:var(--text-primary);
  color:var(--text-primary);
  border-color:var(--info-border);
  outline:2px solid var(--info-border);
  outline-offset:2px;
}
#courts .court-availability-status{
  color:var(--text-primary);
  font-weight:650;
}
#courts .court-availability-hours{
  color:var(--text-primary);
}
#courts .court-availability-hours strong{
  color:var(--text-primary);
  font-weight:850;
}
#courts .court-remaining{
  color:var(--text-secondary);
  font-weight:750;
}
#courts .court-time-label{
  color:var(--text-primary);
  font-weight:800;
}
#courts .court-simple-times input{
  background:var(--surface);--control-ink:var(--text-primary);
  border-color:var(--info-border);
  color:var(--text-primary);
  font-weight:800;
  color-scheme:dark;
}
#courts .court-simple-times input:focus{
  border-color:var(--success-border);
  box-shadow:0 0 0 3px var(--shadow-color);
  outline:none;
}
#courts .court-remove-action{
  background:var(--danger-surface);--control-ink:var(--text-primary);
  border-color:var(--danger-border);
  color:var(--text-primary);
}
#courts .court-remove-action:hover,
#courts .court-remove-action:focus-visible{
  background:var(--danger-surface);--control-ink:var(--text-primary);
  border-color:var(--danger-border);
  color:var(--text-primary);
  outline:none;
}

/* Prevent generic dark heading rules from winning during state re-renders. */
#nextGames .queue-court-playing strong,
#courts .court-availability-card strong{
  opacity:1;
}

@media(max-width:720px){
  #nextGames .queue-court-playing,
  #courts .court-card.court-availability-card{padding:18px}
  #courts .court-availability-card .queue-edit-mark{width:38px;height:38px}
}

/* V13 — professional live-event dashboard UI/UX pass (visual only) */
body{background:var(--page-bg)!important;--control-ink:var(--text-primary)!important;color:var(--text-primary)}
.openplay-app{
  --op-bg:var(--page-bg);--op-card:var(--surface);--op-panel:var(--surface);--op-panel-2:var(--surface-secondary);
  --op-text:var(--text-primary);--op-muted:var(--text-secondary);--op-border:var(--border-soft);--op-purple:var(--brand-fill);
  --op-purple-hover:var(--brand-hover);--op-green:var(--success-text);--op-danger:var(--danger-text);
  width:min(1580px,calc(100% - 32px));color:var(--op-text)
}
.openplay-app .card{background:var(--op-card);--control-ink:var(--text-primary);border:1px solid var(--op-border);border-radius:18px;box-shadow:0 10px 30px var(--shadow-color)}
.openplay-app .pad{padding:22px}
.openplay-app .head{border-color:var(--op-border);align-items:center;gap:16px}
.openplay-app h1,.openplay-app h2,.openplay-app h3,.openplay-app h4,.openplay-app strong{color:var(--op-text)}
.openplay-app h1{font-size:clamp(32px,4vw,50px);line-height:1.02}
.openplay-app h2{font-size:1.2rem;letter-spacing:-.02em}
.openplay-app h3{font-size:1rem;letter-spacing:-.01em}
.openplay-app .muted,.openplay-app .tag{color:var(--op-muted)!important}
.openplay-app .tag{max-width:900px}
.openplay-app button,.openplay-app .button-link{min-height:42px;border-radius:11px;transition:background-color .14s ease,border-color .14s ease,transform .14s ease,box-shadow .14s ease}
.openplay-app button:active,.openplay-app .button-link:active{transform:translateY(1px)}
.openplay-app .primary{background:var(--action-bg,var(--brand-fill));--control-ink:var(--on-brand);color:var(--on-brand);box-shadow:0 4px 14px var(--shadow-color)}
.openplay-app .primary:hover,.openplay-app .primary:focus-visible{background:var(--action-bg,var(--brand-fill));--control-ink:var(--on-brand);box-shadow:0 6px 20px var(--shadow-color)}
.openplay-app .secondary{background:var(--surface);--control-ink:var(--text-primary);color:var(--brand-fill);border:1px solid var(--brand-fill)}
.openplay-app .secondary:hover,.openplay-app .secondary:focus-visible{background:var(--surface-hover);--control-ink:var(--text-primary);border-color:var(--brand-fill)}
.openplay-app .danger{background:var(--surface);--control-ink:var(--text-primary);color:var(--danger-text);border:1px solid var(--danger-text)}
.openplay-app input,.openplay-app select,.openplay-app textarea{background:var(--surface)!important;--control-ink:var(--text-primary)!important;color:var(--text-primary)!important;border-color:var(--border-soft)!important}
.openplay-app input::placeholder,.openplay-app textarea::placeholder{color:var(--text-secondary)!important;opacity:1}
.openplay-app input:focus,.openplay-app select:focus,.openplay-app textarea:focus{outline:none;border-color:var(--op-purple)!important;box-shadow:0 0 0 3px var(--shadow-color)}
.openplay-app option{background:var(--surface);--control-ink:var(--text-primary);color:var(--text-primary)}
.openplay-app button:disabled{opacity:.5;color:var(--text-secondary)}

/* Top-level dashboard spacing */
.openplay-app header{margin-bottom:24px;align-items:flex-start}
.openplay-app header .row{margin-top:0;gap:8px;justify-content:flex-end}
.openplay-app #workspace{display:grid;gap:18px}
.openplay-app .dashboard-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:18px;margin:0}
.openplay-app .battle-launch{background:var(--op-card);--control-ink:var(--text-primary);border:1px solid var(--op-border);border-radius:16px;padding:12px 16px;margin:0;justify-content:flex-start}
.openplay-app .battle-button{background:var(--action-bg,var(--brand-fill));--control-ink:var(--on-brand);color:var(--on-brand)}

/* Courts management */
.openplay-app .court-section-head,.openplay-app .player-section-head{margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid var(--op-border)}
.openplay-app .court-head-actions,.openplay-app .player-head-actions{margin:0;align-items:center}
.openplay-app #courtSummary{color:var(--op-muted);font-size:.82rem;font-weight:750;white-space:nowrap}
.openplay-app #courts{display:grid;grid-template-columns:1fr;gap:10px}
.openplay-app #courts .court-card.court-availability-card{display:grid;gap:14px;margin:0;padding:16px;background:var(--surface);--control-ink:var(--text-primary);border:1px solid var(--border-soft);border-radius:14px;box-shadow:none}
.openplay-app #courts .court-availability-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.openplay-app #courts .court-management-name-row{gap:7px}
.openplay-app #courts .court-availability-card .court-name{font-size:1.05rem;color:var(--text-primary)!important;font-weight:850}
.openplay-app #courts .court-availability-card .queue-edit-mark{width:34px;height:34px;border-radius:9px;background:var(--surface)!important;--control-ink:var(--text-primary)!important;color:var(--text-secondary)!important;border:1px solid var(--border-soft)!important;font-size:.95rem}
.openplay-app #courts .court-availability-status{margin-top:7px;color:var(--text-secondary);font-size:.82rem;font-weight:700}
.openplay-app #courts .court-availability-status .status-dot{color:var(--success-text)}
.openplay-app #courts .court-availability-status.in-use .status-dot{color:var(--warning-text)}
.openplay-app #courts .court-availability-hours{color:var(--text-secondary)!important;font-size:.88rem;line-height:1.55}
.openplay-app #courts .court-availability-hours strong{color:var(--text-primary)!important}
.openplay-app #courts .court-remaining{color:var(--text-secondary)!important}
.openplay-app #courts .court-simple-times{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.openplay-app #courts .court-time-label{color:var(--text-secondary)!important;font-size:.76rem;font-weight:800}
.openplay-app #courts .court-simple-times input{min-height:44px;background:var(--surface)!important;--control-ink:var(--text-primary)!important;border-color:var(--border-soft)!important;color:var(--text-primary)!important}
.openplay-app #courts .court-remove-action{min-height:36px;padding:7px 10px;font-size:.8rem}

/* Players */
.openplay-app .add-player-experience{background:var(--surface);--control-ink:var(--text-primary);border:1px solid var(--border-soft);border-radius:14px;padding:14px;margin-bottom:14px}
.openplay-app .add-player-title-row{align-items:flex-start}
.openplay-app .level-buttons button{min-height:36px}
.openplay-app .op-add-player{grid-template-columns:minmax(180px,2fr) minmax(130px,.75fr) auto;gap:9px}
.openplay-app #players{display:grid;gap:7px}
.openplay-app .player-row{margin:0;grid-template-columns:minmax(175px,1.65fr) minmax(95px,.65fr) minmax(90px,.65fr) minmax(72px,.45fr) auto;gap:10px;padding:11px 12px;border:1px solid var(--border-soft);background:var(--surface);--control-ink:var(--text-primary);border-radius:12px}
.openplay-app .player-row:hover{border-color:var(--border-soft);background:var(--surface);--control-ink:var(--text-primary)}
.openplay-app .player-main>strong{font-size:.94rem;font-weight:850;line-height:1.25}
.openplay-app .player-main>.muted{font-size:.73rem;margin-top:2px}
.openplay-app .player-row>span{font-size:.78rem;color:var(--text-secondary);white-space:nowrap}
.openplay-app .player-row>span:nth-of-type(1){display:inline-flex;width:max-content;max-width:100%;padding:5px 8px;border-radius:999px;background:var(--surface);--control-ink:var(--text-primary);border:1px solid var(--border-soft);font-weight:800;font-size:.68rem;text-transform:uppercase;letter-spacing:.035em}
.openplay-app .player-actions{gap:6px}
.openplay-app .player-actions button{min-height:34px;padding:6px 9px;font-size:.72rem;border-radius:9px}
.openplay-app .player-actions .icon-button{width:34px;height:34px;padding:0}
.openplay-app .partner-inline{font-size:.7rem;color:var(--info-text)}
.openplay-app .partner-unlink-mini{font-size:.66rem}

/* Battle / live courts = primary dashboard area */
.openplay-app #battleArea>.card:first-child{border-color:var(--border-soft)}
.openplay-app #battleArea>.card:first-child>.pad{padding:22px}
.openplay-app .summary-strip{gap:8px;margin:12px 0 18px}
.openplay-app .summary-pill{background:var(--surface);--control-ink:var(--text-primary);color:var(--text-secondary);border:1px solid var(--border-soft);border-radius:999px;padding:7px 10px;font-size:.76rem;font-weight:750}
.openplay-app .schedule-block>.head.compact-head{margin:8px 0 12px;padding:0 0 10px;border-bottom:1px solid var(--border-soft)}
.openplay-app #nextGames.court-reference-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px!important;align-items:stretch}
.openplay-app #nextGames .queue-court-card{min-height:320px;padding:18px;border-radius:16px;display:flex;flex-direction:column;justify-content:flex-start;gap:12px;overflow:hidden}
.openplay-app #nextGames .queue-court-top{min-height:38px}
.openplay-app #nextGames .queue-court-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.openplay-app #nextGames .queue-court-title>strong{font-size:1.16rem;font-weight:900;letter-spacing:-.025em}
.openplay-app #nextGames .queue-edit-mark{width:30px;height:30px;display:grid;place-items:center;padding:0;border-radius:8px}
.openplay-app #nextGames .queue-ready-badge,.openplay-app #nextGames .queue-available-badge,.openplay-app #nextGames .queue-playing-badge{padding:5px 9px;border-radius:999px;font-size:.66rem;font-weight:900;letter-spacing:.055em}
.openplay-app #nextGames .queue-ready-badge{background:var(--success-surface);--control-ink:var(--text-primary);color:var(--success-text)}
.openplay-app #nextGames .queue-available-badge{background:var(--surface-secondary);--control-ink:var(--text-primary);color:var(--text-secondary);border:1px solid var(--border-soft)}
.openplay-app #nextGames .queue-playing-badge{background:var(--purple-surface);--control-ink:var(--text-primary);color:var(--text-primary)}
.openplay-app #nextGames .queue-court-empty{background:var(--surface);--control-ink:var(--text-primary);border:1px solid var(--border-soft);color:var(--text-primary)}
.openplay-app #nextGames .queue-court-ready{background:var(--surface);--control-ink:var(--text-primary);border:1px solid var(--success-border);color:var(--text-primary)}
.openplay-app #nextGames .queue-court-playing{background:var(--surface)!important;--control-ink:var(--text-primary)!important;border:1px solid var(--purple-border)!important;color:var(--text-primary)!important}
.openplay-app #nextGames .queue-court-ready .queue-court-title strong,.openplay-app #nextGames .queue-court-empty .queue-court-title strong{color:var(--text-primary)!important}
.openplay-app #nextGames .queue-matchup{display:grid;grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr);align-items:center;gap:12px;margin:10px 0 4px;color:var(--text-primary)!important;flex:1}
.openplay-app #nextGames .queue-team{display:grid;gap:11px}
.openplay-app #nextGames .queue-team:last-child{text-align:right}
.openplay-app #nextGames .queue-player strong{font-size:.92rem!important;color:var(--text-primary)!important;font-weight:850!important;line-height:1.2}
.openplay-app #nextGames .queue-player small{font-size:.7rem!important;color:var(--text-secondary)!important;font-weight:700!important;margin-top:2px}
.openplay-app #nextGames .queue-vs{color:var(--text-secondary)!important;font-size:.72rem;font-weight:900;text-transform:uppercase;text-align:center}
.openplay-app #nextGames .queue-court-actions{display:grid;grid-template-columns:1fr;gap:8px;margin-top:auto}
.openplay-app #nextGames .queue-court-actions button{width:100%;min-height:46px}
.openplay-app #nextGames .queue-court-ready .queue-court-actions .primary{background:var(--action-bg,var(--brand-fill))!important;--control-ink:var(--on-brand)!important;color:var(--on-brand)!important}
.openplay-app #nextGames .queue-empty-copy{display:grid;gap:5px;margin:auto 0;color:var(--text-secondary)}
.openplay-app #nextGames .queue-empty-copy strong{font-size:.92rem}
.openplay-app #nextGames .queue-empty-copy small{color:var(--text-secondary);line-height:1.45}
.openplay-app #nextGames .active-score-row{display:grid!important;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:9px!important;align-items:center!important;margin-top:auto!important;padding-top:14px;border-top:1px solid var(--border-soft)}
.openplay-app #nextGames .score-control{display:grid;grid-template-columns:40px minmax(64px,1fr) 40px;gap:7px;align-items:center}
.openplay-app #nextGames .score-btn{width:40px;height:40px;min-height:40px;padding:0;border-radius:10px}
.openplay-app #nextGames .score-input{height:44px;min-width:0;text-align:center;border-radius:10px;font-size:1.15rem;background:var(--surface)!important;--control-ink:var(--text-primary)!important;color:var(--text-primary)!important;border-color:var(--border-soft)!important}
.openplay-app #nextGames .score-separator{color:var(--text-secondary)!important}
.openplay-app #nextGames .playing-edit-btn{grid-column:1/2;min-height:40px;font-size:.78rem}
.openplay-app #nextGames .complete-game-btn{grid-column:1/-1!important;min-height:46px;background:var(--surface)!important;--control-ink:var(--text-primary)!important;color:var(--danger-text)!important;font-size:.92rem}

/* Upcoming / Up Next */
.openplay-app .upcoming-add-row{display:flex;align-items:center;gap:12px;margin-top:18px;padding-top:16px;border-top:1px solid var(--border-soft);flex-wrap:wrap}
.openplay-app #addUpcomingMatch{background:var(--action-bg,var(--brand-fill));--control-ink:var(--on-brand);color:var(--on-brand)}
.openplay-app .next-four-games-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.openplay-app .upcoming-workflow-card{background:var(--surface)!important;--control-ink:var(--text-primary)!important;border:1px solid var(--border-soft)!important;border-radius:15px!important;padding:15px!important;box-shadow:none!important}
.openplay-app .upcoming-workflow-card:first-child{border-color:var(--purple-border)!important;box-shadow:0 0 0 1px var(--shadow-color)!important}
.openplay-app .upcoming-workflow-card .upcoming-head strong{font-size:1rem}
.openplay-app .upcoming-workflow-card .queue-player strong{color:var(--text-primary)!important}
.openplay-app .upcoming-workflow-card .queue-player small{color:var(--text-secondary)!important}
.openplay-app .next-queue-chip{background:var(--purple-surface);--control-ink:var(--text-primary);color:var(--info-text)}
.openplay-app .upcoming-review-actions{gap:7px}
.openplay-app .upcoming-review-actions button{min-height:40px}
.openplay-app .icon-action-button{width:40px!important;min-width:40px!important;height:40px!important}
.openplay-app .upcoming-send-row{border-top:1px solid var(--border-soft);padding-top:10px;margin-top:10px}

/* Standings */
.openplay-app .standings-full{margin-top:0}
.openplay-app #standings{overflow:auto;border:1px solid var(--border-soft);border-radius:12px}
.openplay-app #standings table{margin:0;min-width:680px}
.openplay-app #standings th{color:var(--text-secondary);background:var(--surface);--control-ink:var(--text-primary);font-size:.7rem;text-transform:uppercase;letter-spacing:.06em}
.openplay-app #standings td{color:var(--text-primary);background:var(--surface);--control-ink:var(--text-primary)}
.openplay-app #standings tr:hover td{background:var(--surface);--control-ink:var(--text-primary)}

/* Modals / pickers */
.openplay-app .confirm-overlay,.openplay-app .choose-players-modal{background:var(--surface);--control-ink:var(--text-primary);backdrop-filter:blur(5px)}
.openplay-app .confirm-panel,.openplay-app .choose-players-panel{background:var(--surface)!important;--control-ink:var(--text-primary)!important;color:var(--text-primary)!important;border:1px solid var(--border-soft)!important;box-shadow:0 24px 80px var(--shadow-color)}
.openplay-app .confirm-panel p,.openplay-app .confirm-panel label,.openplay-app .choose-players-panel label{color:var(--text-secondary)}
.openplay-app .replacement-row,.openplay-app .choose-player-row{background:var(--surface);--control-ink:var(--text-primary);border-color:var(--border-soft);color:var(--text-primary)}
.openplay-app .replacement-row:hover,.openplay-app .choose-player-row:hover{background:var(--surface);--control-ink:var(--text-primary);border-color:var(--border-soft)}
.openplay-app .match-inline-error,.openplay-app .status.err{color:var(--text-primary)!important;background:var(--danger-surface)!important;--control-ink:var(--text-primary)!important;border-color:var(--danger-border)!important}

/* Responsive: 3 courts on wide desktop, 2 on tablet/desktop, 1 on mobile */
@media(min-width:1460px){
  .openplay-app #nextGames.court-reference-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .openplay-app .next-four-games-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:1100px){
  .openplay-app{width:min(100% - 24px,1100px)}
  .openplay-app .dashboard-grid{grid-template-columns:1fr}
  .openplay-app #courts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .openplay-app .player-row{grid-template-columns:minmax(160px,1.3fr) minmax(90px,.7fr) minmax(95px,.7fr) auto}
  .openplay-app .player-row>span:nth-of-type(3){display:none}
  .openplay-app .player-actions{grid-column:1/-1;justify-content:flex-start}
}
@media(max-width:760px){
  .openplay-app{width:calc(100% - 16px);padding-top:14px}
  .openplay-app header{display:block}.openplay-app header .row{justify-content:flex-start;margin-top:14px}
  .openplay-app .pad{padding:15px}
  .openplay-app #nextGames.court-reference-grid,.openplay-app #courts,.openplay-app .next-four-games-grid{grid-template-columns:1fr!important}
  .openplay-app #nextGames .queue-court-card{min-height:0}
  .openplay-app .player-row{grid-template-columns:1fr auto;gap:7px;padding:11px}
  .openplay-app .player-row>span{display:none!important}
  .openplay-app .player-actions{grid-column:1/-1}
  .openplay-app .op-add-player{grid-template-columns:1fr}.openplay-app .op-add-player button{width:100%}
  .openplay-app #courts .court-simple-times{grid-template-columns:1fr 1fr}
  .openplay-app #nextGames .active-score-row{grid-template-columns:1fr}
  .openplay-app #nextGames .score-separator{display:none}
  .openplay-app #nextGames .playing-edit-btn{grid-column:auto}
  .openplay-app #nextGames .complete-game-btn{grid-column:auto!important}
}
@media(max-width:430px){
  .openplay-app h1{font-size:32px}.openplay-app .pad{padding:13px}.openplay-app .card{border-radius:14px}
  .openplay-app #nextGames .queue-matchup{grid-template-columns:1fr;gap:6px}.openplay-app #nextGames .queue-team:last-child{text-align:left}.openplay-app #nextGames .queue-vs{justify-self:start}
  .openplay-app #courts .court-simple-times{grid-template-columns:1fr}
  .openplay-app .court-head-actions,.openplay-app .player-head-actions{width:100%;justify-content:flex-start}
}


/* =========================================================
   V15 — Full Schedule toolbar visibility
   Light schedule modal must use light form controls.
   ========================================================= */
.schedule-modal input[type="search"],
.schedule-modal input[type="text"],
.schedule-modal select,
.full-schedule-modal input[type="search"],
.full-schedule-modal input[type="text"],
.full-schedule-modal select,
.schedule-toolbar input,
.schedule-toolbar select,
[data-schedule-modal] input,
[data-schedule-modal] select {
  background:var(--surface) !important;--control-ink:var(--text-primary)!important;
  color:var(--text-primary) !important;
  border:1px solid var(--border-soft) !important;
  box-shadow:none !important;
  -webkit-text-fill-color:var(--text-primary) !important;
  color-scheme:light;
}

.schedule-modal input::placeholder,
.full-schedule-modal input::placeholder,
.schedule-toolbar input::placeholder,
[data-schedule-modal] input::placeholder {
  color:var(--text-secondary) !important;
  opacity:1;
  -webkit-text-fill-color:var(--text-secondary) !important;
}

.schedule-modal select option,
.full-schedule-modal select option,
.schedule-toolbar select option,
[data-schedule-modal] select option {
  background:var(--surface);--control-ink:var(--text-primary);
  color:var(--text-primary);
}

.schedule-modal input:focus,
.schedule-modal select:focus,
.full-schedule-modal input:focus,
.full-schedule-modal select:focus,
.schedule-toolbar input:focus,
.schedule-toolbar select:focus,
[data-schedule-modal] input:focus,
[data-schedule-modal] select:focus {
  border-color:var(--success-border) !important;
  outline:2px solid var(--success-border) !important;
  outline-offset:1px;
}

/* Keep search/category icons readable on the white controls. */
.schedule-toolbar svg,
.schedule-toolbar .icon,
.full-schedule-modal .schedule-toolbar svg,
[data-schedule-modal] .schedule-toolbar svg {
  color:var(--text-primary) !important;
  fill:currentColor;
}

/* 2026-09-10 Live Courts + Up Next white-card refresh */
.queue-court-card { background:var(--surface);--control-ink:var(--text-primary); }
.upcoming-workflow-card { background:var(--surface);--control-ink:var(--text-primary); }
.openplay-app #nextGames .queue-court-card{
  background:var(--surface)!important;--control-ink:var(--text-primary)!important;color:var(--text-primary)!important;border:1px solid var(--border-soft)!important;
  border-radius:20px!important;box-shadow:0 8px 26px var(--shadow-color)!important;
  padding:20px!important;min-height:320px;position:relative;overflow:visible!important;
}
.openplay-app #nextGames .queue-court-top{display:flex!important;align-items:flex-start;justify-content:space-between;gap:14px;width:100%;min-height:44px}
.openplay-app #nextGames .queue-court-title{display:flex!important;align-items:center!important;gap:14px!important;flex-wrap:wrap}
.openplay-app #nextGames .queue-court-title>strong{font-size:1.55rem!important;color:var(--text-primary)!important;font-weight:900!important;letter-spacing:-.03em}
.openplay-app #nextGames .queue-playing-badge,.openplay-app #nextGames .queue-ready-badge,.openplay-app #nextGames .queue-available-badge{border-radius:999px!important;padding:8px 14px!important;font-size:.78rem!important;font-weight:900!important;letter-spacing:.02em}
.openplay-app #nextGames .queue-playing-badge{background:var(--surface-secondary)!important;--control-ink:var(--text-primary)!important;color:var(--success-text)!important}
.openplay-app #nextGames .queue-ready-badge{background:var(--surface-secondary)!important;--control-ink:var(--text-primary)!important;color:var(--info-text)!important}
.openplay-app #nextGames .queue-available-badge{background:var(--surface-secondary)!important;--control-ink:var(--text-primary)!important;color:var(--text-secondary)!important}
.openplay-app #nextGames .queue-matchup{display:grid!important;grid-template-columns:1fr 46px 1fr!important;align-items:center!important;gap:18px!important;margin:8px 0 2px!important}
.openplay-app #nextGames .queue-team{display:grid!important;gap:16px!important}
.openplay-app #nextGames .queue-player{display:grid!important;gap:6px!important}
.openplay-app #nextGames .queue-player strong{font-size:1.08rem!important;color:var(--text-primary)!important;font-weight:900!important}
.openplay-app #nextGames .queue-player-meta{display:flex!important;gap:8px!important;flex-wrap:wrap!important}
.openplay-app #nextGames .queue-player small{display:inline-flex!important;align-items:center!important;background:var(--surface-secondary)!important;--control-ink:var(--text-primary)!important;color:var(--text-secondary)!important;border-radius:8px!important;padding:5px 9px!important;font-size:.75rem!important;font-weight:800!important}
.openplay-app #nextGames .queue-vs{color:var(--text-secondary)!important;font-weight:900!important;text-transform:uppercase}
.openplay-app #nextGames .active-score-row{display:grid!important;grid-template-columns:minmax(120px,1fr) 26px minmax(120px,1fr)!important;gap:12px!important;align-items:center!important;border-top:1px solid var(--border-soft)!important;padding-top:16px!important;margin-top:auto!important}
.openplay-app #nextGames .complete-game-btn{width:100%!important;min-height:52px!important;background:var(--surface)!important;--control-ink:var(--text-primary)!important;color:var(--danger-text)!important;border-radius:12px!important;margin-top:2px!important;font-size:1rem!important;font-weight:900!important}
.openplay-app #nextGames .queue-court-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:12px!important;margin-top:auto!important}
.openplay-app #nextGames .queue-court-actions button{min-height:54px!important;border-radius:12px!important;font-size:1rem!important;font-weight:850!important}
.openplay-app #nextGames .queue-court-actions .primary{background:var(--action-bg,var(--brand-fill))!important;--control-ink:var(--on-brand)!important;color:var(--on-brand)!important}
.openplay-app #nextGames .queue-court-actions .secondary{background:var(--surface)!important;--control-ink:var(--text-primary)!important;color:var(--brand-fill)!important;border:1px solid var(--brand-fill)!important}
.openplay-app #nextGames .queue-empty-copy{margin:auto 0 18px!important;text-align:center!important;color:var(--text-primary)!important}
.openplay-app #nextGames .queue-empty-copy strong{font-size:1.15rem!important;color:var(--text-primary)!important}
.openplay-app #nextGames .queue-empty-copy small{display:block!important;color:var(--text-secondary)!important;margin-top:7px!important;font-size:.95rem!important}
.openplay-app #nextGames .queue-empty-visual{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;margin:20px auto 4px;background:var(--surface-secondary);--control-ink:var(--text-primary);color:var(--text-secondary);font-size:2.2rem}
.queue-court-kebab,.upcoming-kebab{position:relative;z-index:30}
.queue-court-kebab>summary,.upcoming-kebab>summary{list-style:none;display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--border-soft);border-radius:12px;background:var(--surface);--control-ink:var(--text-primary);color:var(--text-primary);font-size:1.55rem;font-weight:900;cursor:pointer;line-height:1}
.queue-court-kebab>summary::-webkit-details-marker,.upcoming-kebab>summary::-webkit-details-marker{display:none}
.queue-court-kebab-menu,.upcoming-kebab-menu{position:absolute;right:0;top:50px;min-width:210px;background:var(--surface);--control-ink:var(--text-primary);border:1px solid var(--border-soft);border-radius:14px;box-shadow:0 18px 40px var(--shadow-color);padding:8px;z-index:60}
.queue-court-kebab-menu button,.upcoming-kebab-menu button{width:100%;border:0;background:transparent;--control-ink:var(--text-primary);color:var(--text-secondary);display:flex;align-items:center;gap:10px;padding:12px;border-radius:9px;text-align:left;font-weight:800;cursor:pointer}
.queue-court-kebab-menu button:hover,.upcoming-kebab-menu button:hover{background:var(--surface-secondary);--control-ink:var(--text-primary)}.queue-court-kebab-menu button.danger,.upcoming-kebab-menu button.danger{color:var(--danger-text)}
.openplay-app .upcoming-workflow-card{background:var(--surface)!important;--control-ink:var(--text-primary)!important;color:var(--text-primary)!important;border:1px solid var(--border-soft)!important;border-radius:20px!important;padding:22px!important;box-shadow:0 10px 28px var(--shadow-color)!important;overflow:visible!important}
.openplay-app .upcoming-workflow-card:first-child{border-color:var(--border-soft)!important;box-shadow:0 10px 28px var(--shadow-color)!important}
.upnext-card-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.upnext-title{display:flex;align-items:center;gap:12px;font-size:1.42rem;font-weight:950;letter-spacing:-.025em;color:var(--text-primary)}.next-queue-chip{display:inline-flex!important;align-items:center!important;background:var(--surface-secondary)!important;--control-ink:var(--text-primary)!important;color:var(--info-text)!important;border-radius:999px!important;padding:6px 13px!important;font-size:.72rem!important;font-weight:950!important}.upnext-state-chip{display:inline-flex;margin-left:10px;background:var(--surface-secondary);--control-ink:var(--text-primary);color:var(--text-secondary);border-radius:999px;padding:5px 10px;font-size:.68rem}
.upnext-lineup{display:grid;grid-template-columns:1fr 54px 1fr;gap:20px;align-items:center;margin:28px 0 22px}.upnext-team{display:grid;gap:20px}.upnext-player{display:grid;gap:7px}.upnext-player strong{font-size:1.12rem;color:var(--text-primary);font-weight:900}.upnext-player-meta{display:flex;gap:8px;flex-wrap:wrap}.upnext-player-meta span{background:var(--surface-secondary);--control-ink:var(--text-primary);color:var(--text-secondary);border-radius:8px;padding:5px 9px;font-size:.76rem;font-weight:800}.upnext-vs{height:100%;display:grid;grid-template-rows:1fr auto 1fr;place-items:center;color:var(--text-secondary);font-weight:900}.upnext-vs span{width:1px;background:var(--surface-secondary);--control-ink:var(--text-primary);height:100%}.upnext-footer{border-top:1px solid var(--border-soft);padding-top:16px;display:flex;align-items:center;justify-content:space-between;gap:16px;color:var(--text-secondary);font-size:.88rem}.upnext-footer>.primary,.upnext-footer .primary{background:var(--action-bg,var(--brand-fill))!important;--control-ink:var(--on-brand)!important;color:var(--on-brand)!important;border:0!important;border-radius:12px!important;min-height:48px!important;padding:0 20px!important;font-weight:900!important}.upcoming-review-actions{border-top:1px solid var(--border-soft);padding-top:16px}.openplay-app .upcoming-workflow-card .secondary{background:var(--surface)!important;--control-ink:var(--text-primary)!important;color:var(--brand-fill)!important;border:1px solid var(--brand-fill)!important}.openplay-app .upcoming-workflow-card .danger{background:var(--surface)!important;--control-ink:var(--text-primary)!important;color:var(--danger-text)!important;border:1px solid var(--danger-text)!important}
@media(max-width:760px){.openplay-app #nextGames .queue-matchup,.upnext-lineup{grid-template-columns:1fr}.openplay-app #nextGames .queue-vs,.upnext-vs{height:auto;display:block;text-align:center}.upnext-vs span{display:none}.openplay-app #nextGames .queue-court-actions{grid-template-columns:1fr}.upnext-footer{align-items:stretch;flex-direction:column}.upnext-footer .primary{width:100%}}

/* 2026-09-10 final target alignment: keep dark page, white cards only */
.openplay-app #battleArea,
.openplay-app #battleArea > .card,
.openplay-app #battleArea > .card > .pad,
.openplay-app .schedule-block,
.openplay-app .next-four-block{
  background:transparent!important;--control-ink:var(--text-primary)!important;
}
.openplay-app #battleArea > .card{
  box-shadow:none!important;
}
.openplay-app .live-courts-head{
  align-items:center!important;
  margin-bottom:16px!important;
}
.openplay-app .live-courts-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:14px;
  margin-left:auto;
}
.openplay-app .live-add-court-btn{
  min-height:48px;
  padding:0 20px;
  border-radius:12px;
  background:var(--action-bg,var(--brand-fill))!important;--control-ink:var(--on-brand)!important;
  color:var(--on-brand)!important;
  font-weight:900;
  white-space:nowrap;
}
.openplay-app #nextGames.court-reference-grid,
.openplay-app .next-four-games-grid{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:18px!important;
}
.openplay-app #nextGames .queue-court-card,
.openplay-app .upcoming-workflow-card{
  background:var(--surface)!important;--control-ink:var(--text-primary)!important;
  color:var(--text-primary)!important;
  border:1px solid var(--border-soft)!important;
  border-radius:20px!important;
  box-shadow:0 10px 30px var(--shadow-color)!important;
}
.openplay-app #nextGames .queue-court-card *:not(button):not(.queue-playing-badge):not(.queue-ready-badge):not(.queue-available-badge),
.openplay-app .upcoming-workflow-card *:not(button):not(.next-queue-chip):not(.upnext-state-chip){
  text-shadow:none;
}
.openplay-app #nextGames .queue-team:last-of-type,
.openplay-app .upnext-team:last-of-type{
  text-align:right;
}
.openplay-app #nextGames .queue-team:last-of-type .queue-player-meta,
.openplay-app .upnext-team:last-of-type .upnext-player-meta{
  justify-content:flex-end;
}
.openplay-app .upnext-lineup{
  margin:24px 0 20px!important;
}
.openplay-app .upnext-player-meta span{
  background:transparent!important;--control-ink:var(--text-primary)!important;
  padding:0!important;
  border-radius:0!important;
  color:var(--text-secondary)!important;
  font-weight:700!important;
}
.openplay-app .upnext-player-meta span + span::before{
  content:'•';
  margin-right:8px;
  color:var(--text-secondary);
}
.openplay-app .upnext-footer{
  min-height:52px;
}
.openplay-app .upcoming-card-note.waiting-for-court{
  color:var(--text-secondary)!important;
  font-weight:700;
}
@media(max-width:760px){
  .openplay-app #nextGames.court-reference-grid,
  .openplay-app .next-four-games-grid{
    grid-template-columns:1fr!important;
  }
  .openplay-app .live-courts-head,
  .openplay-app .live-courts-actions{
    align-items:stretch!important;
  }
  .openplay-app .live-courts-actions{
    flex-direction:column;
    width:100%;
  }
  .openplay-app .live-add-court-btn{
    width:100%;
  }
  .openplay-app #nextGames .queue-team:last-of-type,
  .openplay-app .upnext-team:last-of-type{
    text-align:left;
  }
  .openplay-app #nextGames .queue-team:last-of-type .queue-player-meta,
  .openplay-app .upnext-team:last-of-type .upnext-player-meta{
    justify-content:flex-start;
  }
}

/* 2026-09-10 Up Next header alignment */
.openplay-app .upnext-section-head{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:16px!important;margin-top:18px!important}
.openplay-app .upnext-section-head h3{margin:0!important}
.openplay-app .upnext-section-head #addUpcomingMatch{margin-left:auto!important;min-height:46px!important;padding:0 18px!important;border-radius:12px!important;background:var(--action-bg,var(--brand-fill))!important;--control-ink:var(--on-brand)!important;color:var(--on-brand)!important;font-weight:900!important;white-space:nowrap}
@media(max-width:560px){.openplay-app .upnext-section-head{align-items:center!important}.openplay-app .upnext-section-head #addUpcomingMatch{min-height:42px!important;padding:0 14px!important}}

/* 2026-09-10 playing lineup alignment: Team A under Court title, Team B mirrored right */
@media(min-width:761px){
  .openplay-app #nextGames .queue-court-playing .queue-team:first-child{
    padding-left:0!important;
    justify-items:start!important;
    text-align:left!important;
  }
  .openplay-app #nextGames .queue-court-playing .queue-team:last-of-type{
    padding-right:0!important;
    justify-items:end!important;
    text-align:right!important;
  }
  .openplay-app #nextGames .queue-court-playing .queue-team:first-child .queue-player,
  .openplay-app #nextGames .queue-court-playing .queue-team:first-child .queue-player-meta{
    justify-items:start!important;
    justify-content:flex-start!important;
  }
  .openplay-app #nextGames .queue-court-playing .queue-team:last-of-type .queue-player,
  .openplay-app #nextGames .queue-court-playing .queue-team:last-of-type .queue-player-meta{
    justify-items:end!important;
    justify-content:flex-end!important;
  }
}

/* Up Next: organizer-selected AVAILABLE court */
.upcoming-court-picker{position:relative}
.upcoming-court-picker>summary{list-style:none;display:flex;align-items:center;gap:10px;padding:12px;border-radius:9px;font-weight:800;color:var(--info-text);cursor:pointer}
.upcoming-court-picker>summary::-webkit-details-marker{display:none}
.upcoming-court-picker>summary:hover{background:var(--surface-secondary);--control-ink:var(--text-primary)}
.upcoming-court-picker-menu{margin:2px 4px 8px 28px;padding:5px;border-left:2px solid var(--border-soft)}
.upcoming-court-picker-menu button{color:var(--info-text)!important;padding:9px 10px!important}
.upcoming-no-court{padding:12px;color:var(--text-secondary);font-weight:800}

/* 2026-09-10 READY court alignment: mirror PLAYING court player columns */
@media(min-width:761px){
  .openplay-app #nextGames .queue-court-ready .queue-team:first-child{
    padding-left:0!important;
    justify-items:start!important;
    text-align:left!important;
  }
  .openplay-app #nextGames .queue-court-ready .queue-team:last-of-type{
    padding-right:0!important;
    justify-items:end!important;
    text-align:right!important;
  }
  .openplay-app #nextGames .queue-court-ready .queue-team:first-child .queue-player,
  .openplay-app #nextGames .queue-court-ready .queue-team:first-child .queue-player-meta{
    justify-items:start!important;
    justify-content:flex-start!important;
    text-align:left!important;
  }
  .openplay-app #nextGames .queue-court-ready .queue-team:last-of-type .queue-player,
  .openplay-app #nextGames .queue-court-ready .queue-team:last-of-type .queue-player-meta{
    justify-items:end!important;
    justify-content:flex-end!important;
    text-align:right!important;
  }
}
.openplay-app #nextGames .queue-court-ready .queue-court-title>strong{
  color:var(--text-primary)!important;
  opacity:1!important;
}

/* Matching Mode setup: preserve existing Session Setup styling while keeping the new Open Games toggle compact. */
#opOpenGames{width:auto!important;min-width:0!important;margin-right:6px;vertical-align:middle}
#matchingModeHelp{margin-top:6px;line-height:1.35}

/* Session Setup v15.0.1 — simplified controls + matching mode cards */
.openplay-app .event-setup-card .pad{padding:30px 32px}
.openplay-app .event-setup-heading{margin-bottom:24px}
.openplay-app .event-setup-heading h2{margin-bottom:6px}
.openplay-app .setup-core-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 22px;align-items:start}
.openplay-app .setup-core-grid>div{min-width:0}
.openplay-app .setup-core-grid label{display:block;margin-bottom:8px;font-weight:800}
.openplay-app .setup-core-grid input,
.openplay-app .setup-core-grid select{width:100%;min-height:56px}
.openplay-app .setup-label-note{font-weight:600;color:var(--muted,var(--text-secondary));font-size:.85em}
.openplay-app #targetGamesHelp{margin-top:7px;line-height:1.4}
.openplay-app .matching-mode-section{margin-top:30px}
.openplay-app .matching-mode-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:14px}
.openplay-app .matching-mode-heading label{display:block;font-size:1.05rem;font-weight:900;margin-bottom:4px}
.openplay-app .matching-mode-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.openplay-app .matching-mode-card{position:relative;display:flex;align-items:flex-start;gap:12px;min-height:112px;padding:17px 18px;border:1px solid var(--border-soft);border-radius:16px;background:var(--surface);--control-ink:var(--text-primary);cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease,transform .16s ease;user-select:none}
.openplay-app .matching-mode-card:hover{border-color:var(--success-border);background:var(--surface);--control-ink:var(--text-primary)}
.openplay-app .matching-mode-card.selected{border-color:var(--brand-fill);background:var(--success-surface);--control-ink:var(--text-primary);box-shadow:none}
.openplay-app .matching-mode-card input[type="radio"]{position:absolute;opacity:0;pointer-events:none}
.openplay-app .matching-mode-radio{flex:0 0 22px;width:22px;height:22px;margin-top:1px;border:2px solid var(--border-soft);border-radius:50%;display:grid;place-items:center;box-sizing:border-box}
.openplay-app .matching-mode-card.selected .matching-mode-radio{border-color:var(--brand-fill);background:var(--brand-fill);--control-ink:var(--on-brand);box-shadow:none}
.openplay-app .matching-mode-card.selected .matching-mode-radio:after{content:"";width:7px;height:7px;border-radius:50%;background:var(--surface);--control-ink:var(--text-primary)}
.openplay-app .matching-mode-content{display:flex;flex-direction:column;gap:6px;min-width:0}
.openplay-app .matching-mode-title{font-weight:900;line-height:1.25;color:var(--text-primary)}
.openplay-app .matching-mode-description{font-size:.9rem;line-height:1.35;color:var(--text-secondary)}
.openplay-app .matching-mode-badge{display:inline-flex;align-items:center;margin-left:7px;padding:4px 8px;border-radius:999px;background:var(--warning-surface);--control-ink:var(--text-primary);color:var(--warning-text);font-size:.68rem;line-height:1;font-weight:900;letter-spacing:.02em;vertical-align:2px}
.openplay-app .event-setup-actions{margin-top:18px}
.openplay-app .event-setup-actions button{min-height:48px}
.openplay-app .event-setup-card #opStatus{margin-top:14px}
.openplay-app .sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@media(max-width:1180px){.openplay-app .matching-mode-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.openplay-app .event-setup-card .pad{padding:22px 18px}.openplay-app .setup-core-grid,.openplay-app .matching-mode-grid{grid-template-columns:1fr}.openplay-app .matching-mode-card{min-height:0}.openplay-app .event-setup-actions{align-items:stretch}.openplay-app .event-setup-actions button{flex:1}}


/* Final white-card title contrast guard: wins over legacy dark-theme !important rules. */
.openplay-app #nextGames .queue-court-empty .queue-court-title>strong,
.openplay-app #nextGames .queue-court-ready .queue-court-title>strong{
  color:var(--text-primary)!important;
  opacity:1!important;
}

/* Organizer assistance: rest-time visibility + repeat matchup heads-up */
.player-rest-time{display:inline-block;margin-top:3px;font-size:.72rem;font-weight:800;color:var(--muted,var(--text-secondary))}
.matchup-heads-up{margin:12px 0;border:1px solid var(--warning-border);border-radius:12px;background:var(--warning-surface);--control-ink:var(--text-primary);overflow:hidden}
.matchup-heads-up>summary{list-style:none;display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:10px 12px;cursor:pointer;color:inherit}
.matchup-heads-up>summary::-webkit-details-marker{display:none}.matchup-heads-up>summary>span{font-size:.76rem;font-weight:950;letter-spacing:.04em;color:var(--warning-text)}.matchup-heads-up>summary>small{min-width:0;color:var(--muted,var(--text-secondary));font-weight:700}.matchup-heads-up>summary>b{font-size:.72rem;color:var(--warning-text);white-space:nowrap}.matchup-heads-up[open]>summary>b{font-size:0}.matchup-heads-up[open]>summary>b:after{content:'Hide details';font-size:.72rem}.matchup-heads-up-details{display:grid;gap:8px;padding:0 12px 12px}.matchup-heads-up-details>div{display:flex;justify-content:space-between;gap:12px;padding-top:8px;border-top:1px solid var(--warning-border)}.matchup-heads-up-details strong{font-size:.78rem}.matchup-heads-up-details span{font-size:.74rem;color:var(--muted,var(--text-secondary));text-align:right}@media(max-width:640px){.matchup-heads-up>summary{grid-template-columns:1fr auto}.matchup-heads-up>summary>span{grid-column:1/-1}.matchup-heads-up-details>div{display:grid}.matchup-heads-up-details span{text-align:left}}
.matchup-relationship{border-top:1px solid var(--border-soft);padding:.45rem 0}
.matchup-relationship:first-child{border-top:0}
.matchup-relationship>summary{cursor:pointer;display:flex;flex-direction:column;gap:.15rem;list-style:none}
.matchup-relationship>summary::-webkit-details-marker{display:none}
.matchup-relationship>summary strong{font-weight:800}
.matchup-relationship>summary span{font-size:.82rem;opacity:.78}
.matchup-history-list{margin:.45rem 0 0 1.1rem;padding:0;font-size:.8rem;opacity:.78}
.matchup-history-list li{margin:.18rem 0}

.matchup-player-names{font-size:.9rem!important;font-weight:900!important;color:var(--text-primary)!important;line-height:1.25}

/* V15.2.8 — approved compact Courts / Active Matches + Standings End Session placement */
.openplay-app .courts-management-card .court-section-head{
  align-items:center;
}
.openplay-app .courts-management-card .court-section-head>div:first-child{
  display:grid;
  gap:4px;
}
.openplay-app .courts-management-card .court-section-head h2,
.openplay-app .courts-management-card .court-section-head p{
  margin:0;
}
.openplay-app .court-head-actions{
  gap:12px;
}
.openplay-app #courtSummary{
  display:inline-flex;
  align-items:center;
  min-height:42px;
  padding:0 14px;
  border:1px solid var(--border-soft);
  border-radius:11px;
  background:var(--surface);--control-ink:var(--text-primary);
  color:var(--text-secondary)!important;
  font-weight:850;
}
.openplay-app #courts{
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
}
.openplay-app #courts .court-card.court-availability-card.compact-court-card{
  display:grid;
  grid-template-columns:68px minmax(0,1fr) auto;
  align-items:center;
  gap:18px;
  min-height:0;
  margin:0;
  padding:18px 20px;
  background:var(--surface);--control-ink:var(--text-primary);
  border:1px solid var(--border-soft);
  border-radius:15px;
  box-shadow:inset 3px 0 0 var(--success-border);
}
.openplay-app #courts .court-number-badge{
  display:grid;
  place-items:center;
  width:58px;
  height:58px;
  border:1px solid transparent;
  border-radius:13px;
  background:var(--court-label-surface);--control-ink:var(--text-primary);
  color:var(--text-secondary);
  font-size:1.55rem;
  line-height:1;
  font-weight:500;
}
.openplay-app #courts .court-card-main{
  min-width:0;
  display:grid;
  gap:10px;
}
.openplay-app #courts .court-management-name-row{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}
.openplay-app #courts .court-availability-card .court-name{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--text-primary)!important;
  font-size:1.25rem;
  line-height:1.15;
  font-weight:900;
}
.openplay-app #courts .court-availability-card .queue-edit-mark{
  display:grid;
  place-items:center;
  flex:0 0 38px;
  width:38px;
  height:38px;
  min-height:38px;
  padding:0;
  border:1px solid var(--border-soft)!important;
  border-radius:10px;
  background:var(--surface)!important;--control-ink:var(--text-primary)!important;
  color:var(--text-primary)!important;
}
.openplay-app #courts .court-availability-card .queue-edit-mark svg{
  width:18px;
  height:18px;
}
.openplay-app #courts .court-availability-card .queue-edit-mark:hover,
.openplay-app #courts .court-availability-card .queue-edit-mark:focus-visible{
  border-color:var(--success-border)!important;
  background:var(--surface)!important;--control-ink:var(--text-primary)!important;
  color:var(--success-text)!important;
  outline:none;
  box-shadow:0 0 0 3px var(--shadow-color);
}
.openplay-app #courts .court-availability-status{
  display:flex;
  align-items:center;
  gap:8px;
  margin:0;
  color:var(--text-secondary)!important;
  font-size:.86rem;
  font-weight:750;
}
.openplay-app #courts .court-availability-status .status-dot{
  flex:0 0 10px;
  width:10px;
  height:10px;
  margin:0;
  color:var(--success-text);
  box-shadow:0 0 10px var(--shadow-color);
}
.openplay-app #courts .court-availability-status.in-use .status-dot{color:var(--warning-text)}
.openplay-app #courts .court-availability-status.closed .status-dot{color:var(--text-secondary)}
.openplay-app #courts .court-remove-action{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  min-width:118px;
  min-height:44px;
  padding:9px 15px;
  border:1px solid var(--danger-border);
  border-radius:11px;
  background:var(--danger-surface);--control-ink:var(--text-primary);
  color:var(--danger-text);
  font-size:.88rem;
  font-weight:850;
}
.openplay-app #courts .court-remove-action svg{
  width:18px;
  height:18px;
}
.openplay-app #courts .court-remove-action:hover,
.openplay-app #courts .court-remove-action:focus-visible{
  background:var(--danger-surface);--control-ink:var(--text-primary);
  border-color:var(--danger-border);
  color:var(--text-primary);
  outline:none;
}

.openplay-app .standings-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-top:12px;
  padding:16px 8px 0;
  border-top:1px solid var(--op-border);
}
.openplay-app .standings-footer-info{
  display:flex;
  align-items:center;
  gap:11px;
  min-width:0;
}
.openplay-app .standings-info-icon{
  display:grid;
  place-items:center;
  flex:0 0 26px;
  width:26px;
  height:26px;
  border:2px solid var(--border-soft);
  border-radius:50%;
  color:var(--text-primary);
  font-size:.76rem;
  font-weight:900;
  font-family:Georgia,serif;
}
.openplay-app .standings-footer-info>div{
  display:grid;
  gap:2px;
}
.openplay-app .standings-footer-info strong{
  font-size:.84rem;
  font-weight:850;
}
.openplay-app .standings-footer-info span:not(.standings-info-icon){
  color:var(--op-muted);
  font-size:.76rem;
}
.openplay-app .standings-footer .end-session-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  min-width:150px;
  min-height:44px;
  padding:9px 16px;
  border:1px solid var(--danger-border);
  border-radius:11px;
  background:var(--danger-surface);--control-ink:var(--text-primary);
  color:var(--danger-text);
  font-weight:850;
  box-shadow:none;
}
.openplay-app .standings-footer .end-session-btn.hidden{display:none!important}
.openplay-app .standings-footer .end-session-btn:hover,
.openplay-app .standings-footer .end-session-btn:focus-visible{
  background:var(--danger-surface);--control-ink:var(--text-primary);
  border-color:var(--danger-border);
  color:var(--text-primary);
  outline:none;
}
.openplay-app .end-session-square{
  width:13px;
  height:13px;
  border-radius:2px;
  background:currentColor;--control-ink:var(--text-primary);
}

@media(max-width:700px){
  .openplay-app .courts-management-card .court-section-head{
    align-items:flex-start;
  }
  .openplay-app .court-head-actions{
    width:100%;
    justify-content:space-between;
  }
  .openplay-app #courtSummary{width:auto}
  .openplay-app #courts .court-card.court-availability-card.compact-court-card{
    grid-template-columns:54px minmax(0,1fr);
    gap:14px;
    padding:16px;
  }
  .openplay-app #courts .court-number-badge{
    width:50px;
    height:50px;
    font-size:1.3rem;
  }
  .openplay-app #courts .court-remove-action{
    grid-column:1/-1;
    justify-self:stretch;
    width:100%;
  }
  .openplay-app .standings-footer{
    align-items:stretch;
    flex-direction:column;
  }
  .openplay-app .standings-footer .end-session-btn{
    align-self:flex-end;
  }
}
@media(max-width:480px){
  .openplay-app .court-head-actions{
    align-items:stretch;
    flex-direction:column;
  }
  .openplay-app #courtSummary,
  .openplay-app .court-head-actions #addCourt{
    width:100%;
    box-sizing:border-box;
  }
  .openplay-app .standings-footer .end-session-btn{
    align-self:stretch;
    width:100%;
  }
}

/* 2026-09-28 active-session control-center hierarchy */
.event-setup-anchor{display:none}
.openplay-app .openplay-topbar{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;margin-bottom:14px;padding:10px 0 14px;border-bottom:1px solid var(--border-soft)}
.openplay-app .topbar-brand{display:flex;align-items:center;gap:14px;min-width:0}
.openplay-app .topbar-brand .brand{white-space:nowrap;font-weight:950}
.openplay-app .topbar-session-title{display:flex;align-items:center;gap:8px}
.openplay-app .topbar-session-title h1{margin:0;font-size:1rem;line-height:1.1}
.openplay-app .live-header-badge,.openplay-app .active-live-badge{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;background:var(--success-surface);--control-ink:var(--text-primary);color:var(--success-text);font-size:.72rem;font-weight:950;letter-spacing:.03em}
.openplay-app .topbar-nav{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}
.openplay-app .topbar-nav .button-link{padding:9px 12px}
.openplay-app .topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px}
.openplay-app .topbar-mode{display:flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid var(--border-soft);border-radius:10px;background:var(--surface);--control-ink:var(--text-primary);white-space:nowrap}
.openplay-app .topbar-mode span{font-size:.76rem;color:var(--muted,var(--text-secondary))}
.openplay-app .topbar-mode strong{font-size:.82rem}
.openplay-app .topbar-actions .end-session-btn{margin:0;white-space:nowrap}

.openplay-app .active-session-dashboard{display:grid;gap:12px}
.openplay-app .active-session-summary{padding:0 2px 4px}
.openplay-app .active-session-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:10px}
.openplay-app .active-session-title-row{display:flex;align-items:center;gap:10px}
.openplay-app .active-session-title-row h2{margin:0;font-size:1.35rem}
.openplay-app #sessionElapsed{margin:3px 0 0;font-size:.8rem}
.openplay-app .full-schedule-main{min-height:40px}
.openplay-app .session-stat-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.openplay-app .session-stat{min-height:62px;padding:10px 14px;border:1px solid var(--border-soft);border-radius:12px;background:var(--surface);--control-ink:var(--text-primary);display:flex;align-items:center;gap:11px}
.openplay-app .session-stat strong{font-size:1.2rem;line-height:1;color:var(--text-primary)}
.openplay-app .session-stat span{font-size:.78rem;color:var(--text-secondary);line-height:1.25}

.openplay-app .active-panel{margin:0;border:1px solid var(--border-soft);border-radius:14px;background:var(--surface);--control-ink:var(--text-primary);padding:10px}
.openplay-app .active-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;padding:0 2px 8px}
.openplay-app .active-section-head h2{margin:0;font-size:1.08rem}
.openplay-app .active-section-head .compact-copy{margin:3px 0 0}
.openplay-app .active-legacy-summary{display:none!important}
.openplay-app .live-courts-block{margin:0!important;padding:0!important;border:0!important;background:transparent!important;--control-ink:var(--text-primary)!important}
.openplay-app .live-courts-meta{display:flex;justify-content:flex-end;min-height:18px;margin:-2px 2px 4px;font-size:.74rem}
.openplay-app .live-add-court-btn{white-space:nowrap;min-width:112px}
.openplay-app .upnext-count{margin-left:5px;color:var(--text-secondary);font-size:.92rem;font-weight:700}
.openplay-app .next-four-block{margin:0!important}

.openplay-app .active-support-grid{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(360px,1fr);gap:12px;align-items:start}
.openplay-app .active-players-slot,.openplay-app .active-players-slot>.card{min-width:0}
.openplay-app .active-support-grid .players-management-card,.openplay-app .active-support-grid .standings-full{margin:0!important}
.openplay-app .active-support-grid .players-management-card .pad,.openplay-app .active-support-grid .standings-full .pad{padding:12px 14px}
.openplay-app .active-support-grid .add-player-experience{margin-top:8px;padding:10px 12px}
.openplay-app .active-support-grid .add-player-title-row h3{font-size:.9rem}
.openplay-app .active-support-grid .add-player-title-row .compact-copy{display:none}
.openplay-app .active-support-grid .player-row{padding:8px 10px;margin:6px 0}
.openplay-app .active-support-grid .table-scroll{max-height:430px}

.openplay-app .active-settings-wrap{border:1px solid var(--border-soft);border-radius:12px;background:var(--surface);--control-ink:var(--text-primary);overflow:hidden}
.openplay-app .active-settings-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 12px}
.openplay-app .active-settings-copy{display:flex;align-items:center;gap:18px;min-width:0}
.openplay-app .active-settings-copy strong{white-space:nowrap}
.openplay-app .active-settings-copy span{font-size:.78rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.openplay-app .active-settings-details{padding:0 10px 10px}
.openplay-app .active-settings-details .event-setup-card{margin:0}
.openplay-app .active-settings-details .event-setup-card .pad{padding:18px}
.openplay-app .active-settings-details .event-setup-heading h2{font-size:1rem}
.openplay-app .active-settings-details .matching-mode-grid{grid-template-columns:repeat(3,minmax(0,1fr))}

@media(max-width:1180px){
  .openplay-app .openplay-topbar{grid-template-columns:1fr auto}.openplay-app .topbar-nav{grid-column:1/-1;grid-row:2;justify-content:flex-start}
  .openplay-app .active-support-grid{grid-template-columns:1fr}
  .openplay-app .session-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:760px){
  .openplay-app .openplay-topbar{display:flex;flex-direction:column;align-items:stretch}.openplay-app .topbar-brand,.openplay-app .topbar-actions{justify-content:space-between}.openplay-app .topbar-nav{justify-content:flex-start}.openplay-app .topbar-mode{flex:1;justify-content:space-between}
  .openplay-app .active-session-heading,.openplay-app .active-section-head,.openplay-app .active-settings-bar{align-items:stretch;flex-direction:column}
  .openplay-app .session-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .openplay-app .session-stat:last-child{grid-column:1/-1}
  .openplay-app .full-schedule-main,.openplay-app .live-add-court-btn,.openplay-app #addUpcomingMatch{width:100%}
  .openplay-app .active-settings-copy{display:grid;gap:4px}.openplay-app .active-settings-copy span{white-space:normal}
  .openplay-app .active-settings-details .matching-mode-grid{grid-template-columns:1fr}
}
.openplay-app .upnext-title-line{display:flex;align-items:baseline;gap:6px}.openplay-app .upnext-title-line h3{margin:0;font-size:1.08rem}

/* 2026-09-28 full-width support sections + collapsible active panels */
.openplay-app .active-session-dashboard,
.openplay-app .active-panel,
.openplay-app .active-support-grid,
.openplay-app .active-players-slot,
.openplay-app #playersCard,
.openplay-app #standingsCard,
.openplay-app .active-settings-wrap{
  width:100%;
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
}
.openplay-app .active-support-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
  align-items:stretch;
}
.openplay-app .active-support-grid .players-management-card,
.openplay-app .active-support-grid .standings-full{
  width:100%;
  max-width:100%;
}
.openplay-app .player-section-head,
.openplay-app .standings-head{
  gap:14px;
  align-items:center;
}
.openplay-app .section-collapse-toggle{
  appearance:none;
  border:0;
  background:transparent;--control-ink:var(--text-primary);
  color:inherit;
  padding:0;
  margin:0;
  min-width:0;
  display:flex;
  align-items:center;
  gap:10px;
  text-align:left;
  cursor:pointer;
  box-shadow:none;
}
.openplay-app .section-collapse-toggle:hover,
.openplay-app .section-collapse-toggle:focus-visible{
  background:transparent;--control-ink:var(--text-primary);
  box-shadow:none;
}
.openplay-app .section-collapse-toggle:focus-visible{
  outline:2px solid var(--success-border);
  outline-offset:4px;
  border-radius:8px;
}
.openplay-app .section-collapse-chevron{
  width:18px;
  flex:0 0 18px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:var(--text-primary);
  font-size:1rem;
  font-weight:900;
  line-height:1;
  transition:transform .18s ease,color .18s ease;
}
.openplay-app .section-collapse-copy{
  min-width:0;
  display:flex;
  align-items:baseline;
  gap:9px;
  flex-wrap:wrap;
}
.openplay-app .section-collapse-title{
  color:var(--text-primary);
  font-size:1.05rem;
  font-weight:900;
  line-height:1.15;
}
.openplay-app .section-collapse-copy .muted,
.openplay-app .settings-collapse-toggle #activeSettingsSummary{
  font-size:.78rem;
  color:var(--text-secondary);
  font-weight:600;
}
.openplay-app .collapsible-section-body{
  max-height:6000px;
  opacity:1;
  overflow:hidden;
  transition:max-height .24s ease,opacity .18s ease,margin .24s ease,padding .24s ease;
}
.openplay-app .collapsible-section-body.is-collapsed{
  max-height:0!important;
  opacity:0;
  margin-top:0!important;
  margin-bottom:0!important;
  padding-top:0!important;
  padding-bottom:0!important;
  pointer-events:none;
}
.openplay-app #standingsSectionBody{
  min-width:0;
}
.openplay-app #standings,
.openplay-app #standings .table-scroll,
.openplay-app #players{
  max-width:100%;
  min-width:0;
}
.openplay-app #standings .table-scroll,
.openplay-app #players .table-scroll{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.openplay-app #standings table{
  width:100%;
  min-width:760px;
}
.openplay-app #players table{
  width:100%;
}
.openplay-app .active-settings-bar{
  min-width:0;
}
.openplay-app .settings-collapse-toggle{
  flex:1 1 auto;
  min-width:0;
}
.openplay-app .settings-collapse-toggle .section-collapse-copy{
  min-width:0;
}
.openplay-app .settings-collapse-toggle #activeSettingsSummary{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:min(62vw,760px);
}
.openplay-app #preBattleGrid .players-collapse-toggle .section-collapse-chevron{
  display:none;
}
.openplay-app #preBattleGrid .players-collapse-toggle{
  cursor:default;
  pointer-events:none;
}
@media(max-width:760px){
  .openplay-app .player-section-head,
  .openplay-app .standings-head{
    align-items:stretch;
    flex-direction:column;
  }
  .openplay-app .player-head-actions,
  .openplay-app .standings-head>.row{
    width:100%;
    justify-content:flex-start;
  }
  .openplay-app .player-head-actions>*{
    flex:1 1 auto;
  }
  .openplay-app .section-collapse-copy{
    align-items:flex-start;
    flex-direction:column;
    gap:2px;
  }
  .openplay-app .active-settings-bar{
    align-items:stretch;
  }
  .openplay-app .settings-collapse-toggle #activeSettingsSummary{
    max-width:100%;
    white-space:normal;
  }
  .openplay-app #manageActiveSettings{
    width:100%;
  }
}


/* 2026-09-28 Open Play header/footer cleanup */
.openplay-app{padding-bottom:12px!important}

/* 2026-09-28 Open Play final edge cleanup */
.openplay-app{padding-bottom:0!important}
.openplay-app .active-settings-wrap{margin-bottom:0!important}

/* 2026-09-28 Open Play natural page-height fix
   Keep the organizer page content-sized so Session & Court Settings is the
   final document section. Do not use viewport/fixed-height stretching. */
.openplay-app,
.openplay-app #workspace,
.openplay-app #battleArea,
.openplay-app .active-session-dashboard{
  height:auto!important;
  min-height:0!important;
}
.openplay-app{padding-bottom:24px!important}
.openplay-app .active-settings-wrap{margin-bottom:0!important}

/* 2026-09-28 collapsed settings scroll-height fix
   The Session Setup card is moved into the collapsed settings body during an
   active session. A zero-height wrapper alone still lets that large child
   contribute to the root document's scrollable overflow in Chromium. Remove
   the child from layout only while the settings body is collapsed. */
.openplay-app .active-settings-details.is-collapsed > .event-setup-card{
  display:none!important;
}

/* 2026-09-28 Organizer header + priority dashboard */
.openplay-app .openplay-topbar{
  position:relative;
  z-index:60;
  display:grid;
  grid-template-columns:minmax(300px,auto) minmax(0,1fr) auto;
  align-items:center;
  gap:16px;
  padding:8px 0 12px;
  margin-bottom:10px;
  overflow:visible;
}
.openplay-app .topbar-brand{display:flex;align-items:center;gap:14px;min-width:0}
.openplay-app .topbar-brand .brand{font-size:.94rem;letter-spacing:.02em;color:var(--success-text)}
.openplay-app .topbar-session-title{flex:0 0 auto}
.openplay-app .topbar-session-title h1{font-size:.9rem}
.openplay-app .topbar-nav{display:flex;align-items:center;justify-content:center;gap:8px;min-width:0;flex-wrap:nowrap}
.openplay-app .topbar-nav .button-link{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:9px 14px;white-space:nowrap}
.openplay-app .topbar-actions{position:relative;display:flex;align-items:center;justify-content:flex-end;gap:9px;overflow:visible}
.openplay-app .topbar-mode-wrap,.openplay-app .organizer-menu-wrap{position:relative;overflow:visible}
.openplay-app .topbar-mode,.openplay-app .organizer-menu-trigger{
  min-height:40px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  margin:0;
  white-space:nowrap;
}
.openplay-app button.topbar-mode{color:var(--text);cursor:pointer}
.openplay-app .topbar-caret{font-size:.78rem;color:var(--text-secondary);transition:transform .16s ease}
.openplay-app .topbar-mode-wrap.menu-open .topbar-caret,
.openplay-app .organizer-menu-wrap.menu-open .topbar-caret{transform:rotate(180deg)}
.openplay-app .header-mode-menu,
.openplay-app .organizer-menu{
  position:absolute;
  top:calc(100% + 8px);
  right:0;
  z-index:4000;
  width:min(310px,calc(100vw - 28px));
  padding:8px;
  border:1px solid var(--border-soft);
  border-radius:13px;
  background:var(--surface);--control-ink:var(--text-primary);
  box-shadow:0 18px 48px var(--shadow-color);
  overflow:visible;
}
.openplay-app .header-mode-menu{width:min(290px,calc(100vw - 28px))}
.openplay-app .header-mode-menu button,
.openplay-app .organizer-menu-item{
  width:100%;
  min-height:42px;
  display:flex;
  align-items:center;
  gap:11px;
  padding:9px 11px;
  border:0;
  border-radius:9px;
  background:transparent;--control-ink:var(--text-primary);
  color:var(--text-primary);
  text-decoration:none;
  text-align:left;
  font:inherit;
  font-weight:700;
  cursor:pointer;
  box-sizing:border-box;
}
.openplay-app .header-mode-menu button:hover,
.openplay-app .header-mode-menu button:focus-visible,
.openplay-app .organizer-menu-item:hover,
.openplay-app .organizer-menu-item:focus-visible{background:var(--surface-secondary);--control-ink:var(--text-primary);outline:none}
.openplay-app .header-mode-menu button.active{background:var(--success-surface);--control-ink:var(--text-primary);color:var(--success-text)}
.openplay-app .organizer-menu-label{padding:7px 11px 6px;color:var(--text-secondary);font-size:.7rem;letter-spacing:.08em;font-weight:800}
.openplay-app .organizer-menu-divider{height:1px;margin:7px 5px;background:var(--surface-secondary);--control-ink:var(--text-primary)}
.openplay-app .organizer-menu-danger{color:var(--danger-text)!important;background:var(--danger-surface)!important;--control-ink:var(--text-primary)!important;border:1px solid var(--danger-border)!important}
.openplay-app .organizer-menu-danger:hover,.openplay-app .organizer-menu-danger:focus-visible{background:var(--danger-surface)!important;--control-ink:var(--text-primary)!important}
.openplay-app .organizer-mobile-mode{display:none}

/* Active status becomes a compact operational banner. */
.openplay-app .battle-launch.is-live{
  min-height:42px;
  padding:9px 14px;
  margin:0 0 12px;
  border-radius:12px;
  justify-content:flex-start;
  background:var(--surface);--control-ink:var(--text-primary);
}
.openplay-app .battle-launch.is-live::before{
  content:"";
  width:10px;
  height:10px;
  flex:0 0 10px;
  border-radius:999px;
  background:var(--success-surface);--control-ink:var(--text-primary);
  box-shadow:0 0 0 4px var(--shadow-color);
}
.openplay-app .battle-launch.is-live #battleHint{margin:0;font-size:.8rem;color:var(--text-secondary)}
.openplay-app .battle-launch.is-live #battleBtn{display:none!important}
.openplay-app .active-session-heading{margin-bottom:9px}
.openplay-app .active-session-summary{padding-top:0}

@media(max-width:1100px){
  .openplay-app .openplay-topbar{grid-template-columns:minmax(250px,auto) minmax(0,1fr) auto;gap:10px}
  .openplay-app .topbar-brand{gap:9px}
  .openplay-app .topbar-brand .brand{font-size:.82rem}
  .openplay-app .topbar-nav .button-link{padding-inline:11px}
}
@media(max-width:900px){
  .openplay-app .topbar-nav .nav-history{display:none}
  .openplay-app .topbar-brand .brand{font-size:.78rem}
  .openplay-app .topbar-session-title h1{font-size:.82rem}
}
@media(max-width:760px){
  .openplay-app .openplay-topbar{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:9px 10px;
  }
  .openplay-app .topbar-brand{grid-column:1/-1;justify-content:flex-start}
  .openplay-app .topbar-nav{grid-column:1;grid-row:2;justify-content:flex-start}
  .openplay-app .topbar-actions{grid-column:2;grid-row:2}
  .openplay-app .topbar-nav .button-link{min-height:38px;padding:8px 11px;font-size:.8rem}
  .openplay-app .organizer-menu-trigger{min-height:38px;padding:8px 11px}
}
@media(max-width:640px){
  .openplay-app .topbar-mode-wrap{display:none}
  .openplay-app .organizer-mobile-mode{display:flex}
  .openplay-app .topbar-nav{gap:6px}
  .openplay-app .topbar-nav .button-link{padding-inline:9px}
  .openplay-app .topbar-brand{gap:7px}
  .openplay-app .topbar-brand .brand{font-size:.72rem}
  .openplay-app .topbar-session-title h1{font-size:.76rem}
  .openplay-app .live-header-badge{padding:4px 7px;font-size:.64rem}
  .openplay-app .organizer-menu{position:fixed;top:auto;right:12px;left:12px;width:auto;max-height:min(70vh,520px);overflow:auto}
  .openplay-app .session-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* 2026-09-28 compact live cards */
.openplay-app #nextGames .queue-court-card{min-height:0!important;padding:14px 16px!important;gap:8px!important}
.openplay-app #nextGames .queue-court-top{min-height:32px!important}
.openplay-app #nextGames .queue-matchup{flex:0 0 auto!important;margin:4px 0!important;gap:10px!important}
.openplay-app #nextGames .queue-team{gap:7px!important}
.openplay-app #nextGames .queue-empty-visual{width:52px!important;height:52px!important;margin:8px auto 0!important;font-size:1.55rem!important}
.openplay-app #nextGames .queue-empty-copy{margin:0!important;gap:3px!important}
.openplay-app #nextGames .queue-empty-copy strong{font-size:1rem!important}
.openplay-app #nextGames .queue-empty-copy small{margin-top:2px!important;font-size:.82rem!important;line-height:1.3!important}
.openplay-app #nextGames .queue-court-actions{margin-top:6px!important;gap:7px!important}
.openplay-app #nextGames .queue-court-actions button{min-height:42px!important}
.openplay-app #nextGames .active-score-row{margin-top:6px!important;padding-top:10px!important}
.openplay-app #nextGames .score-btn{width:36px!important;height:36px!important;min-height:36px!important}
.openplay-app #nextGames .score-control{grid-template-columns:36px minmax(58px,1fr) 36px!important;gap:6px!important}
.openplay-app #nextGames .score-input{height:40px!important}
.openplay-app #nextGames .complete-game-btn{min-height:42px!important;box-shadow:inset 0 0 0 1px var(--danger-text)}
.openplay-app .upcoming-workflow-card{padding:16px 18px!important}
.openplay-app .upnext-lineup{margin:14px 0 12px!important;gap:14px!important}
.openplay-app .upnext-team{gap:10px!important}
.openplay-app .upnext-player{gap:3px!important}
.openplay-app .upnext-player strong{font-size:1.04rem!important}
.openplay-app .upnext-footer{min-height:0!important;padding-top:10px!important;gap:10px!important}
.openplay-app .upcoming-review-actions{padding-top:10px!important;margin-top:8px!important}
.openplay-app .upcoming-card-note{margin-top:8px!important}
@media(max-width:760px){
  .openplay-app #nextGames .queue-court-card{padding:13px 14px!important}
  .openplay-app .upcoming-workflow-card{padding:14px!important}
  .openplay-app .upnext-lineup{margin:10px 0!important}
}

/* 2026-09-29 checkout standings + player row alignment */
@media(min-width:851px){
  .openplay-app .player-row{grid-template-columns:minmax(175px,1.65fr) 120px 110px 80px 390px}
  .openplay-app .player-actions{width:100%;justify-content:flex-end}
}

/* Approved Add Match modal */
.add-match-modal-shell{position:relative;width:min(680px,100%);padding:26px 28px 28px;border:1px solid var(--border-soft);border-radius:20px;background:var(--surface);--control-ink:var(--text-primary);color:var(--text-primary);box-shadow:0 24px 70px var(--shadow-color)}
.add-match-modal-shell h3{margin:0 50px 4px 0!important;font-size:1.72rem;line-height:1.08;color:var(--text-primary)}.add-match-subtitle{margin:0 0 18px!important;color:var(--text-secondary)!important;font-size:.96rem}.add-match-close{position:absolute;right:20px;top:18px;width:42px;height:42px;border:1px solid var(--border-soft);border-radius:12px;background:var(--surface);--control-ink:var(--text-primary);color:var(--text-secondary);font-size:1.72rem;line-height:1;cursor:pointer}.add-match-choice-stack{display:grid;gap:12px}.add-match-choice{width:100%;display:grid;grid-template-columns:58px minmax(0,1fr) 42px;align-items:center;gap:16px;padding:18px 20px;text-align:left;background:var(--surface);--control-ink:var(--text-primary);border:1px solid var(--border-soft);border-radius:16px;color:var(--text-primary);cursor:pointer}.add-match-choice.generate-choice{border:2px solid var(--success-border)}.add-match-choice-icon{display:grid;place-items:center;width:56px;height:56px;border-radius:15px;background:var(--surface-secondary);--control-ink:var(--text-primary);color:var(--success-text)}.add-match-choice.manual-choice .add-match-choice-icon{background:var(--surface-secondary);--control-ink:var(--text-primary);color:var(--text-primary)}.add-match-choice-copy{display:grid;gap:5px}.add-match-choice-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:1.3rem;font-weight:900;color:var(--text-primary)}.add-match-choice small{font-size:.94rem;line-height:1.35;color:var(--text-secondary)}.recommended-chip{display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;background:var(--warning-surface);--control-ink:var(--text-primary);color:var(--warning-text);font-size:.76rem;font-weight:850}.add-match-arrow{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--surface-secondary);--control-ink:var(--text-primary);color:var(--success-text);font-size:1.8rem;font-weight:700}.manual-choice .add-match-arrow{background:var(--surface-secondary);--control-ink:var(--text-primary);color:var(--text-secondary)}.add-match-eyebrow{margin:0 0 6px!important;color:var(--text-secondary)!important;font-size:.78rem;font-weight:850;letter-spacing:.08em}.manual-queue-panel{width:min(620px,100%);padding:26px 28px 28px}.manual-category-label{display:grid;gap:7px;margin-top:18px;font-weight:850;color:var(--text-primary)}.add-match-modal-shell select{background:var(--surface);--control-ink:var(--text-primary);color:var(--text-primary);border:1px solid var(--border-soft);border-radius:12px;min-height:50px;padding:0 14px}.manual-queue-teams{display:grid;grid-template-columns:1fr 54px 1fr;gap:14px;align-items:stretch;margin:16px 0}.manual-queue-teams section{display:grid;gap:10px;padding:16px;border:1px solid var(--border-soft);border-radius:15px;background:var(--surface);--control-ink:var(--text-primary)}.manual-queue-teams h4{margin:0 0 2px;color:var(--text-primary);font-size:1rem}.manual-vs{display:grid;grid-template-rows:1fr auto 1fr;place-items:center;color:var(--text-secondary)}.manual-vs span{width:1px;height:100%;background:var(--surface-secondary);--control-ink:var(--text-primary)}.manual-player-count{padding:12px 14px;border:1px solid var(--border-soft);border-radius:12px;background:var(--surface-secondary);--control-ink:var(--text-primary);color:var(--text-secondary)}.manual-match-info{display:grid;grid-template-columns:42px 1fr;gap:12px;align-items:center;margin-top:14px;padding:14px 16px;border:1px solid var(--border-soft);border-radius:13px;background:var(--surface-secondary);--control-ink:var(--text-primary)}.manual-info-icon{display:grid;place-items:center;width:32px;height:32px;border:2px solid var(--success-border);border-radius:50%;color:var(--success-text);font-weight:900}.manual-match-info strong{color:var(--success-text)}.manual-match-info p{margin:2px 0 0!important;color:var(--text-secondary)!important;line-height:1.35;font-size:.92rem}.manual-match-actions{border-top:1px solid var(--border-soft);padding-top:16px;margin-top:16px}.add-match-modal-shell .secondary{background:var(--surface);--control-ink:var(--text-primary);color:var(--brand-fill);border:1px solid var(--brand-fill)}.add-match-modal-shell .primary{background:var(--action-bg,var(--brand-fill));--control-ink:var(--on-brand);color:var(--on-brand)}.add-match-modal-shell .primary:disabled{opacity:.5}
@media(max-width:700px){.add-match-modal-shell,.manual-queue-panel{width:min(94vw,620px);padding:22px 18px 22px}.add-match-close{right:14px;top:14px;width:38px;height:38px}.add-match-choice{grid-template-columns:48px 1fr 34px;padding:15px;gap:12px}.add-match-choice-icon{width:46px;height:46px}.add-match-choice-title{font-size:1.12rem}.add-match-choice small{font-size:.88rem}.manual-queue-teams{grid-template-columns:1fr}.manual-vs{grid-template-columns:1fr auto 1fr;grid-template-rows:auto}.manual-vs span{width:100%;height:1px}}
/* 2026-09-29 compact white Add Match modal refinement */
.add-match-modal-shell{width:min(610px,92vw);padding:22px 24px 24px!important;background:var(--surface)!important;--control-ink:var(--text-primary)!important;color:var(--text-primary)!important;border-color:var(--border-soft)!important;border-radius:18px!important}
.add-match-modal-shell h3{color:var(--text-primary)!important;font-size:1.52rem!important}.add-match-subtitle{color:var(--text-secondary)!important;font-size:.91rem!important;margin-bottom:15px!important}.add-match-close{width:38px!important;height:38px!important;right:16px!important;top:16px!important;font-size:1.5rem!important}
.add-match-choice{grid-template-columns:50px minmax(0,1fr) 36px!important;gap:13px!important;padding:14px 16px!important;border-radius:14px!important;background:var(--surface)!important;--control-ink:var(--text-primary)!important}.add-match-choice-icon{width:48px!important;height:48px!important;border-radius:13px!important}.add-match-choice-title{font-size:1.16rem!important}.add-match-choice small{font-size:.87rem!important;line-height:1.28!important}.recommended-chip{padding:4px 9px!important;font-size:.7rem!important}.add-match-arrow{width:34px!important;height:34px!important;font-size:1.55rem!important}
.manual-queue-panel{width:min(570px,92vw)!important;padding:21px 24px 23px!important;background:var(--surface)!important;--control-ink:var(--text-primary)!important}.manual-queue-panel .add-match-eyebrow{color:var(--text-secondary)!important}.manual-queue-panel .manual-category-label{margin-top:14px!important;color:var(--text-primary)!important}.add-match-modal-shell select{min-height:44px!important;background:var(--surface)!important;--control-ink:var(--text-primary)!important;color:var(--text-primary)!important;border-color:var(--border-soft)!important;font-size:.92rem!important}
.manual-queue-teams{grid-template-columns:1fr 42px 1fr!important;gap:11px!important;margin:13px 0!important}.manual-queue-teams section{gap:8px!important;padding:13px!important;border-radius:13px!important;background:var(--surface)!important;--control-ink:var(--text-primary)!important}.manual-queue-teams h4{font-size:.92rem!important}.manual-player-count{padding:10px 12px!important;background:var(--surface-secondary)!important;--control-ink:var(--text-primary)!important;color:var(--text-secondary)!important;font-size:.88rem!important}.manual-match-info{grid-template-columns:36px 1fr!important;gap:10px!important;margin-top:11px!important;padding:11px 13px!important;background:var(--surface-secondary)!important;--control-ink:var(--text-primary)!important}.manual-info-icon{width:28px!important;height:28px!important}.manual-match-info p{font-size:.84rem!important;line-height:1.3!important}.manual-match-actions{padding-top:13px!important;margin-top:13px!important}.manual-match-actions button{min-height:40px!important;padding:8px 16px!important}
@media(max-width:700px){.add-match-modal-shell,.manual-queue-panel{width:min(94vw,570px)!important;padding:19px 16px 20px!important}.manual-queue-teams{grid-template-columns:1fr!important}.manual-vs{grid-template-columns:1fr auto 1fr!important;grid-template-rows:auto!important}.manual-vs span{width:100%!important;height:1px!important}}

/* Add Match modal final specificity fix */
.openplay-app .confirm-panel.add-match-modal-shell{
  width:min(560px,90vw)!important;
  padding:20px 22px 22px!important;
  background:var(--surface)!important;--control-ink:var(--text-primary)!important;
  color:var(--text-primary)!important;
  border:1px solid var(--border-soft)!important;
  border-radius:18px!important;
  box-shadow:0 24px 70px var(--shadow-color)!important;
}
.openplay-app .confirm-panel.add-match-modal-shell h3,
.openplay-app .confirm-panel.add-match-modal-shell h4,
.openplay-app .confirm-panel.add-match-modal-shell label,
.openplay-app .confirm-panel.add-match-modal-shell strong{color:var(--text-primary)!important}
.openplay-app .confirm-panel.add-match-modal-shell p{color:var(--text-secondary)!important}
.openplay-app .confirm-panel.add-match-modal-shell .add-match-subtitle{color:var(--text-secondary)!important}
.openplay-app .confirm-panel.add-match-modal-shell select{
  background:var(--surface)!important;--control-ink:var(--text-primary)!important;
  color:var(--text-primary)!important;
  border-color:var(--border-soft)!important;
}
.openplay-app .confirm-panel.add-match-modal-shell.manual-queue-panel{
  width:min(520px,90vw)!important;
  padding:19px 22px 21px!important;
}
.openplay-app .confirm-panel.add-match-modal-shell .manual-queue-teams section{background:var(--surface)!important;--control-ink:var(--text-primary)!important;border-color:var(--border-soft)!important}
.openplay-app .confirm-panel.add-match-modal-shell .manual-player-count{background:var(--surface-secondary)!important;--control-ink:var(--text-primary)!important;color:var(--text-secondary)!important}
.openplay-app .confirm-panel.add-match-modal-shell .manual-match-info{background:var(--surface-secondary)!important;--control-ink:var(--text-primary)!important}
.openplay-app .confirm-panel.add-match-modal-shell .manual-match-info strong{color:var(--success-text)!important}
.openplay-app .confirm-panel.add-match-modal-shell .manual-match-info p{color:var(--text-secondary)!important}
.openplay-app .confirm-panel.add-match-modal-shell .add-match-choice{background:var(--surface)!important;--control-ink:var(--text-primary)!important}
@media(max-width:700px){
  .openplay-app .confirm-panel.add-match-modal-shell,
  .openplay-app .confirm-panel.add-match-modal-shell.manual-queue-panel{width:min(94vw,520px)!important;padding:18px 16px 19px!important}
}

/* 2026-09-29: approved white Edit Upcoming Game + Replacement Player modal */
#editPlayingMatchModal .edit-playing-panel{background:var(--surface)!important;--control-ink:var(--text-primary)!important;color:var(--text-primary)!important;border:1px solid var(--border-soft)!important;box-shadow:0 24px 70px var(--shadow-color)!important;width:min(700px,calc(100vw - 28px))!important;padding:22px!important;border-radius:22px!important}
#editPlayingMatchModal .edit-modal-header h3,#editPlayingMatchModal .replacement-picker h3,#editPlayingMatchModal .replacement-picker h4,#editPlayingMatchModal .edit-playing-team-title,#editPlayingMatchModal .edit-player-info strong,#editPlayingMatchModal .replacement-row strong{color:var(--text-primary)!important}
#editPlayingMatchModal .edit-modal-header .muted,#editPlayingMatchModal .replacement-target,#editPlayingMatchModal .edit-player-info small,#editPlayingMatchModal .replacement-row small,#editPlayingMatchModal .available-heading,#editPlayingMatchModal .empty-replacements .muted{color:var(--text-secondary)!important}
#editPlayingMatchModal .modal-close-icon{background:var(--surface)!important;--control-ink:var(--text-primary)!important;color:var(--text-secondary)!important;border-color:var(--border-soft)!important}
#editPlayingMatchModal .modal-close-icon:hover,#editPlayingMatchModal .modal-close-icon:focus-visible{background:var(--surface-secondary)!important;--control-ink:var(--text-primary)!important;color:var(--text-primary)!important;border-color:var(--border-soft)!important;box-shadow:0 0 0 3px var(--shadow-color)!important}
#editPlayingMatchModal .edit-playing-teams{gap:16px!important;margin:18px 0!important}
#editPlayingMatchModal .edit-player-slot{background:var(--surface)!important;--control-ink:var(--text-primary)!important;border-color:var(--border-soft)!important;border-radius:15px!important;padding:11px 12px!important;box-shadow:none!important}
#editPlayingMatchModal .player-initials{background:var(--surface-secondary)!important;--control-ink:var(--text-primary)!important;color:var(--success-text)!important}
#editPlayingMatchModal .replace-player-icon,#editPlayingMatchModal .select-player-icon{background:var(--surface)!important;--control-ink:var(--text-primary)!important;color:var(--text-secondary)!important;border-color:var(--border-soft)!important}
#editPlayingMatchModal .replace-player-icon:hover,#editPlayingMatchModal .replace-player-icon:focus-visible,#editPlayingMatchModal .select-player-icon:hover,#editPlayingMatchModal .select-player-icon:focus-visible{background:var(--surface-secondary)!important;--control-ink:var(--text-primary)!important;color:var(--success-text)!important;border-color:var(--success-border)!important;box-shadow:0 0 0 3px var(--shadow-color)!important}
#editPlayingMatchModal .edit-playing-vs{background:var(--surface-secondary)!important;--control-ink:var(--text-primary)!important;color:var(--text-secondary)!important;border-color:var(--border-soft)!important}
#editPlayingMatchModal .confirm-actions{border-top:1px solid var(--border-soft)!important;padding-top:17px!important;margin-top:18px!important}
#editPlayingMatchModal .confirm-actions .secondary{background:var(--surface)!important;--control-ink:var(--text-primary)!important;color:var(--brand-fill)!important;border-color:var(--brand-fill)!important}
#editPlayingMatchModal .confirm-actions .primary{background:var(--action-bg,var(--brand-fill))!important;--control-ink:var(--on-brand)!important;color:var(--on-brand)!important;border-color:var(--brand-fill)!important}
#editPlayingMatchModal .confirm-actions .primary:disabled{background:var(--disabled-surface)!important;--control-ink:var(--text-primary)!important;color:var(--text-secondary)!important;border-color:var(--brand-fill)!important;opacity:1!important}
#editPlayingMatchModal .replacement-picker{color:var(--text-primary)!important;padding-top:2px!important}
#editPlayingMatchModal .replacement-back{color:var(--success-text)!important;margin-bottom:15px!important}
#editPlayingMatchModal .replacement-target{padding:8px 0 14px!important;line-height:1.45!important}
#editPlayingMatchModal .replacement-target strong{color:var(--text-secondary)!important}
#editPlayingMatchModal .replacement-tools input,#editPlayingMatchModal .replacement-tools select{background:var(--surface)!important;--control-ink:var(--text-primary)!important;color:var(--text-primary)!important;border:1px solid var(--border-soft)!important;box-shadow:none!important}
#editPlayingMatchModal .replacement-tools input::placeholder{color:var(--text-secondary)!important}
#editPlayingMatchModal .replacement-tools input:focus,#editPlayingMatchModal .replacement-tools select:focus{outline:none!important;border-color:var(--success-border)!important;box-shadow:0 0 0 3px var(--shadow-color)!important}
#editPlayingMatchModal .replacement-search-icon,#editPlayingMatchModal .replacement-clear{color:var(--text-secondary)!important}
#editPlayingMatchModal .available-heading{margin:16px 0 9px!important}
#editPlayingMatchModal .replacement-list{gap:9px!important;max-height:330px!important}
#editPlayingMatchModal .replacement-row{background:var(--surface)!important;--control-ink:var(--text-primary)!important;border-color:var(--border-soft)!important;border-radius:14px!important;padding:10px 11px!important;min-height:62px!important}
#editPlayingMatchModal .replacement-row:hover,#editPlayingMatchModal .replacement-row:focus-visible{background:var(--surface-secondary)!important;--control-ink:var(--text-primary)!important;border-color:var(--success-border)!important;box-shadow:0 0 0 2px var(--shadow-color)!important}
#editPlayingMatchModal .player-rest-time{color:var(--text-secondary)!important}
#editPlayingMatchModal .picker-partner{color:var(--success-text)!important}
#editPlayingMatchModal .match-inline-error{background:var(--surface-secondary)!important;--control-ink:var(--text-primary)!important;color:var(--danger-text)!important;border-color:var(--warning-border)!important}
@media(max-width:680px){#editPlayingMatchModal .edit-playing-panel{width:calc(100vw - 16px)!important;padding:16px!important;border-radius:18px!important}#editPlayingMatchModal .replacement-tools{grid-template-columns:1fr!important}#editPlayingMatchModal .replacement-list{max-height:300px!important}}

/* Manual Match searchable player picker */
.manual-hidden-select{display:none!important}
.manual-player-trigger{width:100%;min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;border:1px solid var(--border-soft);border-radius:12px;background:var(--surface);--control-ink:var(--text-primary);color:var(--text-primary);text-align:left;cursor:pointer;font:inherit}
.manual-player-trigger:hover,.manual-player-trigger:focus-visible{border-color:var(--success-border);box-shadow:0 0 0 3px var(--shadow-color);outline:none}
.manual-trigger-player{display:grid;grid-template-columns:34px minmax(0,1fr);gap:9px;align-items:center;min-width:0}.manual-trigger-player .player-initials{width:34px;height:34px;background:var(--surface-secondary);--control-ink:var(--text-primary);color:var(--success-text)}.manual-trigger-player strong{display:block;color:var(--text-primary);font-size:.9rem}.manual-trigger-player small{display:block;color:var(--text-secondary);font-size:.7rem;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.manual-trigger-chevron{color:var(--text-secondary);font-size:1.35rem}.manual-player-picker{color:var(--text-primary)}.manual-player-picker h3{margin:0 0 3px!important;color:var(--text-primary)!important}.manual-picker-subtitle{margin:0 0 16px!important;color:var(--text-secondary)!important}.manual-player-picker .replacement-back{color:var(--success-text)}.manual-player-picker .replacement-tools input,.manual-player-picker .replacement-tools select{background:var(--surface)!important;--control-ink:var(--text-primary)!important;color:var(--text-primary)!important;border-color:var(--border-soft)!important}.manual-player-picker .available-heading{color:var(--text-primary)!important}.manual-player-picker .replacement-row{background:var(--surface)!important;--control-ink:var(--text-primary)!important;border-color:var(--border-soft)!important;color:var(--text-primary)!important;min-height:62px;padding:10px 11px;border-radius:14px}.manual-player-picker .replacement-row:hover,.manual-player-picker .replacement-row:focus-visible{background:var(--surface-secondary)!important;--control-ink:var(--text-primary)!important;border-color:var(--success-border)!important}.manual-player-picker .replacement-row strong{color:var(--text-primary)!important}.manual-player-picker .replacement-row small{color:var(--text-secondary)!important}.manual-player-picker .select-player-icon{background:var(--surface)!important;--control-ink:var(--text-primary)!important;border-color:var(--border-soft)!important;color:var(--text-secondary)!important}.manual-player-picker .player-initials{background:var(--surface-secondary)!important;--control-ink:var(--text-primary)!important;color:var(--success-text)!important}.manual-player-picker .replacement-list{max-height:390px}.manual-player-picker .replacement-search-icon{color:var(--text-secondary)!important}

/* Manual Match player picker: mirror replacement-player modal proportions */
#manualMatchModal .manual-queue-panel.manual-picker-active{width:min(700px,calc(100vw - 28px))!important;max-height:calc(100vh - 28px)!important;padding:22px!important;overflow:hidden!important}
#manualMatchModal .manual-picker-active .manual-player-picker{padding-top:0!important}
#manualMatchModal .manual-picker-active .replacement-tools{display:grid!important;grid-template-columns:minmax(0,1fr) 150px!important;gap:10px!important;align-items:start!important}
#manualMatchModal .manual-picker-active .replacement-search-wrap{position:relative!important}
#manualMatchModal .manual-picker-active .replacement-tools input,#manualMatchModal .manual-picker-active .replacement-tools>select{display:block!important;width:100%!important;height:52px!important;min-height:52px!important;box-sizing:border-box!important;margin:0!important;border-radius:12px!important}
#manualMatchModal .manual-picker-active .replacement-search-wrap input{padding-left:40px!important;padding-right:38px!important}
#manualMatchModal .manual-picker-active .replacement-search-icon{position:absolute!important;left:13px!important;top:50%!important;transform:translateY(-50%)!important;z-index:1!important;pointer-events:none!important}
#manualMatchModal .manual-picker-active .replacement-list{max-height:330px!important;overflow-y:auto!important;overscroll-behavior:contain!important;padding-right:3px!important}
#manualMatchModal .manual-picker-active .replacement-row{min-height:62px!important}
@media(max-width:680px){#manualMatchModal .manual-queue-panel.manual-picker-active{width:calc(100vw - 16px)!important;max-height:calc(100vh - 16px)!important;padding:16px!important}#manualMatchModal .manual-picker-active .replacement-tools{grid-template-columns:1fr!important}#manualMatchModal .manual-picker-active .replacement-list{max-height:300px!important}}

/* 2026-09-29 approved Standings filter redesign */
.openplay-app #standingsCard{background:var(--surface);--control-ink:var(--text-primary);border:1px solid var(--border-soft);border-radius:18px;overflow:hidden}
.openplay-app #standingsCard>.pad{padding:22px}
.openplay-app #standingsCard .standings-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0}
.openplay-app #standingsCard .standings-head:before{content:'▥';display:inline-flex;width:44px;height:44px;flex:0 0 44px;align-items:center;justify-content:center;border-radius:12px;background:var(--surface);--control-ink:var(--text-primary);color:var(--success-text);font-size:22px;font-weight:800;order:0}
.openplay-app #standingsCard .standings-head #standingsCollapseToggle{order:1;flex:1}
.openplay-app #standingsCard .standings-head>.row{order:2;margin-left:auto}
.openplay-app #standingsCard .section-collapse-title{font-size:1.35rem}
.openplay-app #standingsCard .section-collapse-copy:after{content:'View player standings and match statistics.';display:block;flex-basis:100%;font-size:.84rem;font-weight:500;color:var(--text-secondary);margin-top:3px}
.openplay-app #standingsCard .filter-toggle,.openplay-app #standingsCard .activity-icon-btn{min-height:44px;border-radius:12px;background:var(--surface);--control-ink:var(--text-primary);border:1px solid var(--border-soft);color:var(--text-primary)}
.openplay-app #standingsCard .filter-toggle{padding:0 16px;font-weight:800}
.openplay-app #standingsCard .activity-icon-btn{width:44px;height:44px}
.openplay-app #standingFilters{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;margin:20px 0 16px}
.openplay-app #standingFilters select,.openplay-app #standingFilters input{width:100%;max-width:none;min-width:0;height:72px;box-sizing:border-box;border:1px solid var(--border-soft);border-radius:14px;background:var(--surface);--control-ink:var(--text-primary);color:var(--text-primary);padding:24px 16px 8px;font-size:1rem;box-shadow:none}
.openplay-app #standingFilters input{padding:0 18px 0 48px;background-image:var(--surface)}
.openplay-app #standingFilters input::placeholder{color:var(--text-secondary)}
.openplay-app #standingFilters select:focus,.openplay-app #standingFilters input:focus{outline:none;border-color:var(--success-border);box-shadow:0 0 0 3px var(--shadow-color)}
.openplay-app #standingFilters.hidden{display:none!important}
@media(max-width:850px){.openplay-app #standingsCard>.pad{padding:16px}.openplay-app #standingsCard .standings-head:before{display:none}.openplay-app #standingFilters{grid-template-columns:1fr}.openplay-app #standingFilters select,.openplay-app #standingFilters input{height:56px;padding:0 14px}.openplay-app #standingFilters input{padding-left:16px}}

/* 2026-09-29 standings redesign v2 - explicit live markup */
.openplay-app #standingsCard>.pad{padding:20px 22px!important}
.openplay-app #standingsCard .standings-head{display:flex!important;align-items:center!important;gap:14px!important;padding:0!important}
.openplay-app #standingsCard .standings-head:before{display:none!important}
.openplay-app #standingsCollapseToggle{display:flex!important;align-items:center!important;gap:12px!important;min-width:0!important;padding:0!important;background:transparent!important;--control-ink:var(--text-primary)!important;border:0!important;text-align:left!important}
.openplay-app #standingsCollapseToggle .standings-collapse-chevron{color:var(--text-primary)!important;font-size:1.05rem!important;flex:0 0 auto!important}
.openplay-app .standings-title-icon{width:44px;height:44px;flex:0 0 44px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;background:var(--surface);--control-ink:var(--text-primary);color:var(--success-text)}
.openplay-app .standings-title-icon svg,.openplay-app .filter-icon svg,.openplay-app #standingReset svg,.openplay-app .standing-filter-icon svg,.openplay-app .standing-search-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.openplay-app #standingsCard .section-collapse-copy{display:flex!important;flex-direction:column!important;align-items:flex-start!important;min-width:0!important}
.openplay-app #standingsCard .section-collapse-copy:after{display:none!important}
.openplay-app .standings-title-line{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.openplay-app #standingsCard .section-collapse-title{font-size:1.45rem!important;color:var(--text-primary)!important;line-height:1.1!important}
.openplay-app #standingsHeaderCount{font-size:.9rem!important;color:var(--text-secondary)!important;font-weight:700!important}
.openplay-app .standings-subtitle{margin-top:5px;color:var(--text-secondary);font-size:.88rem;font-weight:500;line-height:1.25}
.openplay-app .standings-head-actions{display:flex!important;align-items:center!important;gap:10px!important;flex:0 0 auto!important}
.openplay-app #standingsCard .filter-toggle,.openplay-app #standingReset{height:46px!important;min-height:46px!important;border-radius:12px!important;background:var(--surface)!important;--control-ink:var(--text-primary)!important;border:1px solid var(--border-soft)!important;color:var(--text-primary)!important;box-shadow:none!important}
.openplay-app #standingsCard .filter-toggle{padding:0 17px!important;gap:9px!important}
.openplay-app #standingReset{width:46px!important;padding:0!important;display:inline-flex!important;align-items:center!important;justify-content:center!important}
.openplay-app #standingFilters{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr)!important;gap:14px!important;margin:20px 0 16px!important}
.openplay-app #standingFilters.hidden{display:none!important}
.openplay-app .standing-filter-field{min-width:0;height:76px;border:1px solid var(--border-soft);border-radius:14px;background:var(--surface);--control-ink:var(--text-primary);display:flex;align-items:center;gap:12px;padding:0 15px;box-sizing:border-box;cursor:text}
.openplay-app .standing-filter-field:focus-within{border-color:var(--success-border);box-shadow:0 0 0 3px var(--shadow-color)}
.openplay-app .standing-filter-icon{width:42px;height:42px;flex:0 0 42px;display:flex;align-items:center;justify-content:center;border-radius:10px;background:var(--surface);--control-ink:var(--text-primary);color:var(--success-text)}
.openplay-app .standing-filter-copy{min-width:0;flex:1;display:flex;flex-direction:column;justify-content:center}
.openplay-app .standing-filter-label{font-size:.76rem;color:var(--text-secondary);line-height:1.15;margin-bottom:3px}
.openplay-app #standingFilters .standing-filter-field select{width:100%!important;height:auto!important;min-height:0!important;max-width:none!important;border:0!important;border-radius:0!important;background:transparent!important;--control-ink:var(--text-primary)!important;color:var(--text-primary)!important;padding:0 28px 0 0!important;font-size:1rem!important;font-weight:650!important;box-shadow:none!important;outline:none!important}
.openplay-app .standing-search-field{cursor:text}
.openplay-app .standing-search-icon{width:28px;flex:0 0 28px;display:flex;align-items:center;justify-content:center;color:var(--text-secondary)}
.openplay-app #standingFilters .standing-search-field input{width:100%!important;height:auto!important;min-height:0!important;max-width:none!important;border:0!important;border-radius:0!important;background:transparent!important;--control-ink:var(--text-primary)!important;color:var(--text-primary)!important;padding:0!important;font-size:1rem!important;box-shadow:none!important;outline:none!important}
.openplay-app #standingFilters .standing-search-field input::placeholder{color:var(--text-secondary)!important}
@media(max-width:900px){.openplay-app #standingFilters{grid-template-columns:1fr 1fr!important}.openplay-app .standing-search-field{grid-column:1/-1}.openplay-app #standingsCard>.pad{padding:18px!important}}
@media(max-width:620px){.openplay-app #standingsCard .standings-head{align-items:flex-start!important;flex-wrap:wrap!important}.openplay-app .standings-head-actions{margin-left:auto!important}.openplay-app .standings-title-icon{display:none}.openplay-app #standingFilters{grid-template-columns:1fr!important}.openplay-app .standing-search-field{grid-column:auto}.openplay-app .standing-filter-field{height:62px}.openplay-app #standingsCard>.pad{padding:15px!important}}

/* 2026-09-29 standings-header-alignment-fix */
.openplay-app #standingsCard .standings-head{
  min-height:54px!important;
  align-items:center!important;
  gap:12px!important;
}
.openplay-app #standingsCollapseToggle{
  gap:10px!important;
  align-items:center!important;
}
.openplay-app #standingsCollapseToggle .standings-collapse-chevron{
  width:18px!important;
  flex:0 0 18px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  line-height:1!important;
}
.openplay-app .standings-title-icon{
  width:38px!important;
  height:38px!important;
  flex:0 0 38px!important;
  border-radius:10px!important;
}
.openplay-app .standings-title-icon svg{
  width:19px!important;
  height:19px!important;
}
.openplay-app #standingsCard .section-collapse-copy{
  justify-content:center!important;
  gap:0!important;
}
.openplay-app .standings-title-line{
  gap:8px!important;
  flex-wrap:nowrap!important;
  align-items:baseline!important;
}
.openplay-app #standingsCard .section-collapse-title{
  font-size:1.35rem!important;
  line-height:1.05!important;
}
.openplay-app #standingsHeaderCount{
  font-size:.86rem!important;
  line-height:1!important;
}
.openplay-app .standings-subtitle{
  margin-top:2px!important;
  font-size:.82rem!important;
  line-height:1.2!important;
}
.openplay-app .standings-head-actions{
  align-self:center!important;
}
@media(max-width:620px){
  .openplay-app #standingsCard .standings-head{min-height:0!important;align-items:center!important}
  .openplay-app #standingsCollapseToggle{gap:8px!important}
  .openplay-app .standings-title-line{flex-wrap:wrap!important}
}

/* 2026-09-29 standings-approved-header-scale */
.openplay-app #standingsCard .standings-head{
  min-height:70px!important;
  align-items:center!important;
  gap:16px!important;
}
.openplay-app #standingsCollapseToggle{
  gap:12px!important;
  align-items:center!important;
}
.openplay-app #standingsCollapseToggle .standings-collapse-chevron{
  width:18px!important;
  flex:0 0 18px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.openplay-app .standings-title-icon{
  width:48px!important;
  height:48px!important;
  flex:0 0 48px!important;
  border-radius:12px!important;
}
.openplay-app .standings-title-icon svg{
  width:23px!important;
  height:23px!important;
}
.openplay-app #standingsCard .section-collapse-copy{
  justify-content:center!important;
}
.openplay-app .standings-title-line{
  gap:10px!important;
  flex-wrap:nowrap!important;
  align-items:baseline!important;
}
.openplay-app #standingsCard .section-collapse-title{
  font-size:1.6rem!important;
  line-height:1.1!important;
}
.openplay-app #standingsHeaderCount{
  font-size:.95rem!important;
  line-height:1!important;
}
.openplay-app .standings-subtitle{
  margin-top:4px!important;
  font-size:.92rem!important;
  line-height:1.25!important;
}
.openplay-app .standings-head-actions{
  align-self:center!important;
}
.openplay-app #standingsCard .filter-toggle,
.openplay-app #standingReset{
  height:50px!important;
  min-height:50px!important;
}
.openplay-app #standingReset{width:50px!important;}
@media(max-width:620px){
  .openplay-app #standingsCard .standings-head{min-height:0!important;align-items:center!important}
  .openplay-app .standings-title-icon{width:42px!important;height:42px!important;flex-basis:42px!important}
  .openplay-app #standingsCard .section-collapse-title{font-size:1.35rem!important}
  .openplay-app .standings-subtitle{font-size:.82rem!important}
  .openplay-app .standings-title-line{flex-wrap:wrap!important}
}

/* 2026-10-01 Open Play Standings specific spacing update */
.openplay-app #standingsSectionBody > #standings{
  margin-top:28px!important;
}
.openplay-app #standingFilters:not(.hidden) + #standings{
  margin-top:12px!important;
}

/* 2026-10-01 Open Play Standings title consistency update */
.openplay-app #standingsCard .section-collapse-title{
  font-size:1.05rem!important;
}
@media(max-width:620px){
  .openplay-app #standingsCard .section-collapse-title{
    font-size:1.05rem!important;
  }
}

/* 2026-10-01 Open Play Standings header divider removal */
.openplay-app #standingsCard .standings-head{
  border-bottom:0!important;
}

/* 2026-10-01 Open Play mobile app shell - mobile only */
.mobile-menu-trigger,.mobile-app-drawer,.mobile-drawer-backdrop,.mobile-bottom-nav,.mobile-ready-stat{display:none}

@media(max-width:700px){
  html,body{max-width:100%;overflow-x:hidden}
  body.mobile-drawer-open{overflow:hidden!important;touch-action:none}
  .openplay-app{width:100%!important;max-width:100%!important;padding:0 12px calc(86px + env(safe-area-inset-bottom))!important;box-sizing:border-box}
  .openplay-app>.auth-bar{display:none!important}

  /* Compact app header */
  .openplay-app .openplay-topbar{
    position:sticky!important;top:0;z-index:900!important;
    display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:space-between!important;
    min-height:58px!important;margin:0 -12px 10px!important;padding:9px 12px!important;
    border-bottom:1px solid var(--border-soft)!important;
    background:var(--surface)!important;--control-ink:var(--text-primary)!important;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  }
  .openplay-app .topbar-brand{display:flex!important;align-items:center!important;min-width:0!important;gap:8px!important}
  .openplay-app .topbar-brand .brand{font-size:0!important;line-height:1!important;color:var(--success-text)!important;white-space:nowrap!important}
  .openplay-app .topbar-brand .brand:before{content:'SMASH X';font-size:.96rem;letter-spacing:.04em;font-weight:950}
  .openplay-app .topbar-session-title{display:flex!important;align-items:center!important;gap:7px!important}
  .openplay-app .topbar-session-title h1{display:none!important}
  .openplay-app .live-header-badge{padding:4px 7px!important;font-size:.62rem!important;line-height:1!important}
  .openplay-app .topbar-nav,.openplay-app .topbar-actions{display:none!important}
  .mobile-menu-trigger{
    display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
    width:44px;height:44px;min-width:44px;margin:0;padding:0;border:1px solid var(--border-soft);
    border-radius:12px;background:var(--surface);--control-ink:var(--text-primary);color:var(--text-primary);box-shadow:none;cursor:pointer
  }
  .mobile-menu-trigger span{display:block;width:19px;height:2px;border-radius:3px;background:currentColor;--control-ink:var(--text-primary)}

  /* Drawer */
  .mobile-drawer-backdrop{position:fixed;inset:0;z-index:4000;background:var(--surface);--control-ink:var(--text-primary);backdrop-filter:blur(2px)}
  .mobile-drawer-backdrop:not(.hidden){display:block}
  .mobile-app-drawer{
    display:flex;position:fixed;z-index:4010;top:0;right:0;bottom:0;width:min(88vw,360px);
    transform:translateX(105%);transition:transform .22s ease;background:var(--surface);--control-ink:var(--text-primary);color:var(--text-primary);
    border-left:1px solid var(--border-soft);box-shadow:-20px 0 48px var(--shadow-color);
    flex-direction:column;padding:0 0 env(safe-area-inset-bottom);visibility:hidden
  }
  .mobile-app-drawer.is-open{transform:translateX(0);visibility:visible}
  .mobile-drawer-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 16px 14px;border-bottom:1px solid var(--border-soft)}
  .mobile-drawer-head h2{margin:2px 0 0;font-size:1.05rem}
  .mobile-drawer-kicker,.mobile-drawer-section-label{display:block;color:var(--success-text);font-size:.66rem;font-weight:900;letter-spacing:.09em}
  .mobile-drawer-close{width:44px;height:44px;min-height:44px;padding:0;border-radius:12px;border:1px solid var(--border-soft);background:var(--surface);--control-ink:var(--text-primary);color:var(--text-primary);font-size:1.45rem;line-height:1}
  .mobile-drawer-scroll{flex:1;min-height:0;display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain;padding:10px 12px 16px}
  .mobile-drawer-nav{display:grid;gap:4px}
  .mobile-drawer-item{width:100%;min-height:48px;display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 11px;border:0;border-radius:11px;background:transparent;--control-ink:var(--text-primary);color:var(--text-primary);text-align:left;text-decoration:none;font:inherit;font-weight:750;box-sizing:border-box}
  .mobile-drawer-item:hover,.mobile-drawer-item:focus-visible{background:var(--surface-secondary);--control-ink:var(--text-primary);outline:none}
  .mobile-drawer-item>span:first-child{display:inline-flex;align-items:center;justify-content:center;color:var(--text-secondary);font-size:1.02rem}
  .mobile-drawer-item>b{color:var(--text-secondary);font-size:1.15rem;transition:transform .18s ease}
  .mobile-drawer-item[aria-expanded="true"]>b{transform:rotate(90deg)}
  .mobile-session-details{margin:1px 4px 8px;padding:10px;border:1px solid var(--border-soft);border-radius:12px;background:var(--surface);--control-ink:var(--text-primary);display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .mobile-session-details.hidden{display:none!important}
  .mobile-session-details div{min-width:0;padding:9px 10px;border-radius:9px;background:var(--surface);--control-ink:var(--text-primary)}
  .mobile-session-details span{display:block;color:var(--text-secondary);font-size:.68rem;font-weight:700}
  .mobile-session-details strong{display:block;margin-top:3px;color:var(--text-primary);font-size:.86rem;overflow-wrap:anywhere}
  .mobile-account-card{margin:14px 4px 10px;margin-top:auto;padding:13px;border:1px solid var(--border-soft);border-radius:13px;background:var(--surface);--control-ink:var(--text-primary);display:grid;gap:5px}
  .mobile-account-card>strong{margin-top:5px;font-size:.92rem}.mobile-account-card>span:not(.mobile-drawer-section-label){color:var(--text-secondary);font-size:.76rem}
  .mobile-drawer-account-action{margin-top:8px;min-height:44px;border-radius:10px;border:1px solid var(--border-soft);background:var(--surface);--control-ink:var(--text-primary);color:var(--text-primary);font-weight:800}
  .mobile-end-session{width:calc(100% - 8px);min-height:48px;margin:8px 4px 4px;padding:0 13px;display:flex;align-items:center;gap:10px;border-radius:11px;border:1px solid var(--danger-border);background:var(--danger-surface);--control-ink:var(--text-primary);color:var(--danger-text);font-weight:850}
  .mobile-end-session.hidden{display:none!important}

  /* Active session app hierarchy */
  .openplay-app .battle-launch.is-live{display:none!important}
  .openplay-app .active-session-dashboard{gap:10px!important}
  .openplay-app .active-session-summary{padding:0!important;margin:0!important}
  .openplay-app .active-session-heading{display:none!important}
  .openplay-app .session-stat-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:7px!important}
  .openplay-app .session-stat{display:none!important}
  .openplay-app .session-stat.mobile-primary-stat,
  .openplay-app .mobile-ready-stat{display:flex!important;min-height:50px!important;padding:7px 8px!important;border-radius:11px!important;gap:5px!important;flex-direction:column;align-items:flex-start;justify-content:center}
  .openplay-app .session-stat strong{font-size:1.02rem!important}
  .openplay-app .session-stat span{font-size:.64rem!important;line-height:1.12!important}
  .mobile-ready-stat{display:flex}

  .openplay-app .active-panel{padding:10px!important;border-radius:14px!important}
  .openplay-app .active-section-head{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;padding:0 1px 8px!important}
  .openplay-app .active-section-head>div{min-width:0}
  .openplay-app .active-section-head h2,.openplay-app .upnext-title-line h3{font-size:1rem!important;line-height:1.15!important}
  .openplay-app .active-section-head .compact-copy{display:none!important}
  .openplay-app .live-add-court-btn,.openplay-app #addUpcomingMatch{width:auto!important;min-width:0!important;min-height:44px!important;padding:0 13px!important;border-radius:11px!important;font-size:.8rem!important;white-space:nowrap!important}
  .openplay-app .live-courts-meta{display:none!important}
  .openplay-app #nextGames.court-reference-grid{grid-template-columns:1fr!important;gap:10px!important}
  .openplay-app #nextGames .queue-court-card{width:100%!important;min-height:0!important;padding:12px!important;border-radius:15px!important;gap:7px!important}
  .openplay-app #nextGames .queue-court-top{min-height:30px!important}
  .openplay-app #nextGames .queue-matchup{margin:2px 0!important;gap:7px!important}
  .openplay-app #nextGames .queue-team{gap:5px!important;min-width:0}
  .openplay-app #nextGames .queue-player{min-width:0}
  .openplay-app #nextGames .queue-player strong,.openplay-app #nextGames .match-player-name{overflow-wrap:anywhere;word-break:break-word}
  .openplay-app #nextGames .queue-court-actions{margin-top:5px!important;gap:7px!important}
  .openplay-app #nextGames .queue-court-actions button,.openplay-app #nextGames .complete-game-btn{min-height:44px!important}
  .openplay-app #nextGames .score-btn{width:44px!important;height:44px!important;min-height:44px!important}
  .openplay-app #nextGames .score-control{grid-template-columns:44px minmax(52px,1fr) 44px!important}
  .openplay-app #nextGames .score-input{height:44px!important}

  /* One section at a time via bottom navigation */
  .openplay-app.mobile-tab-live #upcomingGamesBlock,
  .openplay-app.mobile-tab-live #activeSupportGrid,
  .openplay-app.mobile-tab-upnext #liveMatchControl,
  .openplay-app.mobile-tab-upnext #activeSessionSummary,
  .openplay-app.mobile-tab-upnext #activeSupportGrid,
  .openplay-app.mobile-tab-players #liveMatchControl,
  .openplay-app.mobile-tab-players #activeSessionSummary,
  .openplay-app.mobile-tab-players #upcomingGamesBlock,
  .openplay-app.mobile-tab-standings #liveMatchControl,
  .openplay-app.mobile-tab-standings #activeSessionSummary,
  .openplay-app.mobile-tab-standings #upcomingGamesBlock{display:none!important}
  .openplay-app.mobile-tab-players #activeSupportGrid,.openplay-app.mobile-tab-standings #activeSupportGrid{display:block!important}
  .openplay-app.mobile-tab-players #standingsCard{display:none!important}
  .openplay-app.mobile-tab-standings #activePlayersSlot{display:none!important}
  .openplay-app:not(.mobile-settings-visible) #activeSettingsBar{display:none!important}
  .openplay-app.mobile-settings-visible #activeSessionSummary,
  .openplay-app.mobile-settings-visible #liveMatchControl,
  .openplay-app.mobile-settings-visible #upcomingGamesBlock,
  .openplay-app.mobile-settings-visible #activeSupportGrid{display:none!important}
  .openplay-app.mobile-settings-visible #activeSettingsBar{display:block!important}
  .openplay-app .active-support-grid{gap:0!important}

  /* Up Next compact cards */
  .openplay-app .next-four-games-grid{grid-template-columns:1fr!important;gap:9px!important}
  .openplay-app .upcoming-workflow-card{padding:12px!important;border-radius:15px!important}
  .openplay-app .upnext-lineup{grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr)!important;gap:8px!important;margin:9px 0!important;align-items:stretch!important}
  .openplay-app .upnext-team{gap:8px!important;min-width:0}
  .openplay-app .upnext-player{gap:2px!important;min-width:0}
  .openplay-app .upnext-player strong{font-size:.9rem!important;line-height:1.2!important;overflow-wrap:anywhere}
  .openplay-app .upnext-player-meta{gap:4px!important}.openplay-app .upnext-player-meta span{padding:3px 6px!important;font-size:.66rem!important}
  .openplay-app .upnext-vs{font-size:.7rem!important}
  .openplay-app .upnext-footer{padding-top:9px!important;gap:8px!important;font-size:.74rem!important;flex-wrap:wrap!important}
  .openplay-app .upnext-footer>.primary,.openplay-app .upnext-footer .primary{min-height:44px!important;padding:0 13px!important;font-size:.78rem!important}
  .openplay-app .upcoming-review-actions{padding-top:9px!important;margin-top:6px!important;gap:6px!important}
  .openplay-app .upcoming-review-actions button{min-height:44px!important;font-size:.75rem!important}
  .openplay-app .upcoming-card-note{font-size:.72rem!important;margin-top:6px!important}
  .openplay-app .matchup-heads-up{margin:7px 0!important;border-radius:10px!important}
  .openplay-app .matchup-heads-up>summary{display:grid!important;grid-template-columns:auto 1fr auto!important;gap:6px!important;padding:7px 8px!important}
  .openplay-app .matchup-heads-up>summary>span{grid-column:auto!important;font-size:.66rem!important;white-space:nowrap}
  .openplay-app .matchup-heads-up>summary>small{font-size:.67rem!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .openplay-app .matchup-heads-up>summary>b{font-size:.68rem!important}

  /* Players tab */
  .openplay-app #playersCard{margin:0!important;border-radius:14px!important}
  .openplay-app #playersCard>.pad{padding:12px!important}
  .openplay-app .player-section-head{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:10px!important}
  .openplay-app .players-collapse-toggle{min-height:44px!important}
  .openplay-app .player-head-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:7px!important}
  .openplay-app .player-head-actions>*{min-height:44px!important;min-width:0!important;font-size:.76rem!important;padding-inline:8px!important}
  .openplay-app .add-player-experience{padding:10px!important;margin-top:8px!important}
  .openplay-app .add-player-title-row{align-items:center!important;gap:8px!important}.openplay-app .add-player-title-row .compact-copy{display:none!important}
  .openplay-app .add-player-title-row #openImportPlayers{min-height:44px!important;padding-inline:10px!important;font-size:.76rem!important}
  .openplay-app .op-add-player{grid-template-columns:minmax(0,1fr) 88px!important;gap:7px!important}
  .openplay-app .op-add-player #playerName{grid-column:1/-1}.openplay-app .op-add-player #savePlayer{min-height:44px!important}
  .openplay-app .player-row{grid-template-columns:minmax(0,1fr) auto!important;gap:8px!important;padding:10px!important}
  .openplay-app .player-row .player-actions{grid-column:1/-1!important;display:flex!important;flex-wrap:wrap!important}.openplay-app .player-row .player-actions button{min-height:44px!important}

  /* Standings retains approved look, with mobile fit */
  .openplay-app #standingsCard{margin:0!important;border-radius:14px!important;overflow:hidden!important}
  .openplay-app #standingsCard>.pad{padding:12px!important}
  .openplay-app #standingsCard .standings-head{display:flex!important;flex-direction:row!important;align-items:center!important;flex-wrap:nowrap!important;gap:8px!important}
  .openplay-app #standingsCollapseToggle{min-width:0!important;flex:1 1 auto!important;gap:7px!important}
  .openplay-app .standings-title-icon{display:none!important}
  .openplay-app #standingsCard .section-collapse-copy{display:flex!important;align-items:flex-start!important;gap:2px!important}
  .openplay-app #standingsCard .section-collapse-title{font-size:1rem!important}
  .openplay-app #standingsHeaderCount{font-size:.76rem!important}
  .openplay-app .standings-subtitle{display:none!important}
  .openplay-app .standings-head-actions{width:auto!important;margin:0!important;flex:0 0 auto!important}
  .openplay-app #standingsCard .filter-toggle{height:44px!important;min-height:44px!important;padding:0 11px!important;font-size:.76rem!important}
  .openplay-app #standingsSectionBody>#standings{margin-top:18px!important}
  .openplay-app #standingFilters:not(.hidden)+#standings{margin-top:10px!important}
  .openplay-app #standings table{min-width:720px!important}

  /* Modals and dialogs must stay on-screen */
  .confirm-overlay,.choose-players-modal,.schedule-modal,.activity-modal{padding:8px!important;box-sizing:border-box}
  .confirm-panel,.choose-players-panel,.schedule-modal-panel,.activity-modal-panel{max-width:calc(100vw - 16px)!important;max-height:calc(100dvh - 16px)!important;overflow:auto!important;margin:auto!important;box-sizing:border-box}
  .choose-player-toolbar{grid-template-columns:1fr!important}.manual-lineup{grid-template-columns:1fr!important}.manual-vs{display:none!important}

  /* Fixed bottom app navigation */
  .mobile-bottom-nav{
    position:fixed;z-index:850;left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));
    min-height:64px;padding:6px;display:grid;grid-template-columns:repeat(4,1fr);gap:3px;
    border:1px solid var(--border-soft);border-radius:18px;background:var(--surface);--control-ink:var(--text-primary);
    box-shadow:0 14px 34px var(--shadow-color);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)
  }
  .mobile-bottom-nav.hidden{display:none!important}
  .mobile-bottom-tab{min-width:0;min-height:52px;padding:5px 3px;border:0;border-radius:13px;background:transparent;--control-ink:var(--text-primary);color:var(--text-secondary);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:.66rem;font-weight:800}
  .mobile-bottom-tab svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
  .mobile-bottom-tab.active{background:var(--success-surface);--control-ink:var(--text-primary);color:var(--success-text)}
  .mobile-bottom-tab:focus-visible{outline:2px solid var(--success-border);outline-offset:-2px}
}

@media(max-width:350px){
  .openplay-app{padding-left:9px!important;padding-right:9px!important}
  .openplay-app .openplay-topbar{margin-left:-9px!important;margin-right:-9px!important;padding-left:9px!important;padding-right:9px!important}
  .openplay-app .session-stat-grid{gap:5px!important}
  .openplay-app .session-stat{padding:7px 6px!important}.openplay-app .session-stat span{font-size:.6rem!important}
  .openplay-app .upnext-lineup{grid-template-columns:minmax(0,1fr) 22px minmax(0,1fr)!important;gap:5px!important}
  .mobile-bottom-nav{left:5px;right:5px}.mobile-bottom-tab{font-size:.62rem!important}
}

/* 2026-10-01 Mobile Players action grid refinement */
@media(max-width:700px){
  .openplay-app .player-row .player-actions{
    grid-column:1/-1!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:8px!important;
    width:100%!important;
    justify-content:stretch!important;
    align-items:stretch!important;
  }
  .openplay-app .player-row .player-actions button{
    width:100%!important;
    min-width:0!important;
    min-height:48px!important;
    margin:0!important;
    padding:9px 8px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    text-align:center!important;
    white-space:normal!important;
    line-height:1.15!important;
  }
  .openplay-app .player-row .player-actions .icon-button{
    width:100%!important;
    height:auto!important;
  }
  .openplay-app .player-row .player-actions .icon-button::after{
    content:'Edit';
    margin-left:7px;
  }
}

/* Desktop live-control focus: remove redundant topbar session title/status.
   Mobile keeps its compact LIVE indicator via the existing mobile rules. */
@media (min-width:821px){
  .openplay-app .openplay-topbar .topbar-session-title{display:none!important}
}

/* 2026-10-01 Desktop live-first session layout
   Compact the active-session summary into one horizontal strip so Live Match
   Control sits higher on the page. Mobile layout remains unchanged. */
@media (min-width:901px){
  .openplay-app .battle-launch.is-live{
    display:none!important;
  }

  .openplay-app .active-session-dashboard{
    gap:14px!important;
  }

  .openplay-app .active-session-summary{
    display:grid!important;
    grid-template-columns:minmax(300px,.9fr) minmax(720px,1.65fr)!important;
    align-items:center!important;
    gap:18px!important;
    padding:8px 12px!important;
    margin:0!important;
    min-height:78px!important;
    border:1px solid var(--border-soft)!important;
    border-radius:14px!important;
    background:var(--surface)!important;--control-ink:var(--text-primary)!important;
  }

  .openplay-app .active-session-heading{
    margin:0!important;
    align-items:center!important;
  }

  .openplay-app .active-session-title-row{
    gap:10px!important;
  }

  .openplay-app .active-session-title-row h2{
    font-size:1.05rem!important;
  }

  .openplay-app #sessionElapsed{
    margin:4px 0 0!important;
    font-size:.76rem!important;
  }

  .openplay-app .session-stat-grid{
    display:grid!important;
    grid-template-columns:repeat(6,minmax(0,1fr))!important;
    gap:8px!important;
    min-width:0!important;
  }

  .openplay-app .session-stat{
    min-width:0!important;
    min-height:56px!important;
    padding:8px 10px!important;
    border-radius:11px!important;
    justify-content:center!important;
    gap:8px!important;
  }

  .openplay-app .session-stat strong{
    font-size:1.08rem!important;
    flex:0 0 auto!important;
  }

  .openplay-app .session-stat span{
    font-size:.72rem!important;
    line-height:1.15!important;
  }

  .openplay-app .live-match-control{
    padding:12px!important;
  }

  .openplay-app .live-match-control .active-section-head{
    align-items:center!important;
    padding:0 2px 6px!important;
  }

  .openplay-app .live-match-control .active-section-head h2{
    font-size:1.48rem!important;
  }

  .openplay-app .live-match-control .compact-copy{
    display:none!important;
  }
}

@media (min-width:901px) and (max-width: 1250px){
  .openplay-app .active-session-summary{
    grid-template-columns:minmax(240px,.75fr) minmax(0,1.75fr)!important;
  }
  .openplay-app .session-stat-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
}

/* 2026-10-02 Desktop Players action visibility fix
   Keep the action controls inside the visible row at common desktop widths. */
@media (min-width:851px){
  .openplay-app #players .player-row{
    grid-template-columns:minmax(180px,1.35fr) minmax(120px,.72fr) minmax(105px,.58fr) minmax(70px,.42fr) minmax(300px,1.2fr)!important;
    column-gap:12px!important;
    align-items:center!important;
    overflow:visible!important;
  }
  .openplay-app #players .player-actions{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
    width:100%!important;
    min-width:0!important;
    justify-content:stretch!important;
    align-items:stretch!important;
  }
  .openplay-app #players .player-actions button{
    width:100%!important;
    min-width:0!important;
    min-height:40px!important;
    padding:8px 10px!important;
    white-space:normal!important;
    line-height:1.12!important;
  }
  .openplay-app #players .player-actions .icon-button{
    width:100%!important;
    height:40px!important;
  }
}
@media (min-width:851px) and (max-width:1180px){
  .openplay-app #players .player-row{
    grid-template-columns:minmax(165px,1.2fr) 110px 100px 70px minmax(260px,1fr)!important;
    gap:9px!important;
  }
  .openplay-app #players .player-actions button{
    font-size:.7rem!important;
    padding:7px 8px!important;
  }
}

/* 2026-10-02 Players panel container-responsive layout fix
   The Players card can sit in a half-width desktop column, so viewport media
   queries alone are not enough. Keep all status/action text visible. */
.openplay-app .players-management-card{
  container-type:inline-size;
  container-name:players-card;
}

@container players-card (max-width:820px){
  .openplay-app #players .player-row{
    grid-template-columns:minmax(0,1.5fr) minmax(105px,.72fr) minmax(88px,.56fr) minmax(58px,.42fr)!important;
    gap:8px 12px!important;
    align-items:center!important;
    overflow:hidden!important;
  }
  .openplay-app #players .player-main,
  .openplay-app #players .player-status-cell,
  .openplay-app #players .player-games-cell,
  .openplay-app #players .player-record-cell{
    min-width:0!important;
  }
  .openplay-app #players .player-main strong,
  .openplay-app #players .player-main .muted{
    overflow-wrap:anywhere;
  }
  .openplay-app #players .player-status-cell,
  .openplay-app #players .player-games-cell,
  .openplay-app #players .player-record-cell{
    white-space:nowrap;
  }
  .openplay-app #players .player-actions{
    grid-column:1/-1!important;
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:8px!important;
    width:100%!important;
    min-width:0!important;
    justify-content:stretch!important;
  }
  .openplay-app #players .player-actions button,
  .openplay-app #players .player-actions .icon-button{
    width:100%!important;
    min-width:0!important;
    min-height:40px!important;
    height:40px!important;
    padding:7px 8px!important;
    font-size:.72rem!important;
    line-height:1.08!important;
    white-space:normal!important;
    overflow-wrap:anywhere;
  }
}

@container players-card (max-width:620px){
  .openplay-app #players .player-row{
    grid-template-columns:minmax(0,1fr) auto!important;
  }
  .openplay-app #players .player-games-cell,
  .openplay-app #players .player-record-cell{
    grid-row:2;
  }
  .openplay-app #players .player-games-cell{
    grid-column:1;
  }
  .openplay-app #players .player-record-cell{
    grid-column:2;
  }
  .openplay-app #players .player-actions{
    grid-row:3;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}

/* 2026-10-04 Open Play Players compact management layout
   Scoped to Players only. Keeps player actions behind the pen menu. */
.openplay-app #playersCard .player-section-head{
  align-items:center;
  margin-bottom:0;
}
.openplay-app #playersCard .player-head-actions{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:10px;
  margin:10px 0 12px;
}
.openplay-app #playersCard .player-head-actions button{
  min-height:42px;
  white-space:nowrap;
}
.openplay-app #playersCard .add-player-experience{
  margin-bottom:8px;
}
.openplay-app #playersCard .add-player-title-row{
  display:block;
}
.openplay-app #playersCard .op-add-player{
  grid-template-columns:minmax(220px,1fr) minmax(130px,180px) auto auto;
  align-items:stretch;
}
.openplay-app #playersCard .op-add-player #savePlayer,
.openplay-app #playersCard .op-add-player #openImportPlayers{
  min-height:44px;
  white-space:nowrap;
}
.openplay-app #playersCard .level-button.selected{
  background:var(--success-surface)!important;--control-ink:var(--text-primary)!important;
  color:var(--brand-fill)!important;
  border-color:var(--brand-fill)!important;
  box-shadow:0 0 0 1px var(--shadow-color) inset!important;
}
.openplay-app #playersCard .level-button.selected:hover{
  background:var(--success-surface)!important;--control-ink:var(--text-primary)!important;
}

.openplay-app #players .player-row{
  position:relative;
  grid-template-columns:minmax(160px,1.45fr) minmax(105px,.72fr) minmax(92px,.58fr) minmax(62px,.42fr) auto!important;
  gap:10px 14px!important;
  min-height:66px;
  padding:11px 12px!important;
  margin:7px 0!important;
  overflow:visible!important;
  align-items:center!important;
}
.openplay-app #players .player-main{
  min-width:0;
  padding-right:0;
}
.openplay-app #players .player-main>strong{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.openplay-app #players .player-status-cell,
.openplay-app #players .player-games-cell,
.openplay-app #players .player-record-cell{
  min-width:0;
  white-space:nowrap;
}
.openplay-app #players .player-actions{
  display:flex!important;
  grid-column:auto!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:8px!important;
  width:auto!important;
  min-width:0!important;
}
.openplay-app #players .player-actions>.player-checkin-btn{
  width:auto!important;
  min-width:92px!important;
  min-height:40px!important;
  height:40px!important;
  padding:8px 14px!important;
  white-space:nowrap!important;
  font-size:.78rem!important;
}
.openplay-app #players .player-action-wrap{
  position:relative;
  flex:0 0 auto;
  z-index:8;
}
.openplay-app #players .player-menu-trigger{
  width:42px!important;
  min-width:42px!important;
  height:42px!important;
  min-height:42px!important;
  padding:0!important;
  border-radius:11px!important;
  display:grid!important;
  place-items:center!important;
}
.openplay-app #players .player-menu-trigger[aria-expanded="true"]{
  border-color:var(--purple-border)!important;
  box-shadow:0 0 0 1px var(--shadow-color) inset!important;
}
.openplay-app #players .player-action-menu{
  display:none;
  position:absolute;
  right:calc(100% + 8px);
  top:50%;
  transform:translateY(-50%);
  z-index:200;
  width:max-content;
  min-width:190px;
  max-width:240px;
  padding:5px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--card,var(--surface));--control-ink:var(--text-primary);
  box-shadow:0 16px 40px var(--shadow-color);
}
.openplay-app #players .player-action-menu.is-open{
  display:grid;
}
.openplay-app #players .player-menu-action{
  width:100%!important;
  min-height:38px!important;
  padding:8px 10px!important;
  border:0!important;
  border-radius:8px!important;
  background:transparent!important;--control-ink:var(--text-primary)!important;
  color:var(--text)!important;
  display:grid!important;
  grid-template-columns:24px minmax(0,1fr)!important;
  align-items:center!important;
  gap:8px!important;
  text-align:left!important;
  font:inherit!important;
  font-size:.78rem!important;
  font-weight:700!important;
  white-space:nowrap!important;
  cursor:pointer;
}
.openplay-app #players .player-menu-action:hover,
.openplay-app #players .player-menu-action:focus-visible{
  background:var(--surface-secondary)!important;--control-ink:var(--text-primary)!important;
  outline:none;
}
.openplay-app #players .player-menu-pencil,
.openplay-app #players .player-menu-pencil svg{
  width:17px;
  height:17px;
  display:block;
}
.openplay-app #players .edit-player-form{
  grid-column:1/-1!important;
}

/* The Players card can be a narrow desktop column. Keep rows compact without
   allowing action menus to resize the row. */
@container players-card (max-width:820px){
  .openplay-app #playersCard .op-add-player{
    grid-template-columns:minmax(0,1fr) minmax(120px,.45fr) auto auto!important;
  }
  .openplay-app #players .player-row{
    grid-template-columns:minmax(120px,1.3fr) minmax(92px,.72fr) minmax(76px,.55fr) minmax(48px,.38fr) auto!important;
    overflow:visible!important;
  }
  .openplay-app #players .player-actions{
    grid-column:auto!important;
    display:flex!important;
  }
}

@media(max-width:850px){
  .openplay-app #playersCard .player-head-actions{
    width:100%;
    justify-content:flex-end;
  }
  .openplay-app #playersCard .op-add-player{
    grid-template-columns:minmax(0,1fr) minmax(120px,.45fr) auto auto!important;
  }
}

@media(max-width:620px){
  .openplay-app #playersCard .op-add-player{
    grid-template-columns:1fr 1fr!important;
  }
  .openplay-app #playersCard .op-add-player #playerName{
    grid-column:1/-1;
  }
  .openplay-app #playersCard .op-add-player #playerSkill{
    grid-column:1/-1;
  }
  .openplay-app #playersCard .op-add-player #savePlayer,
  .openplay-app #playersCard .op-add-player #openImportPlayers{
    width:100%;
  }
  .openplay-app #playersCard .player-head-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    margin-top:10px;
  }
  .openplay-app #playersCard .player-head-actions button{
    width:100%;
    min-width:0;
    white-space:normal;
  }
  .openplay-app #players .player-row{
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:7px 10px!important;
    min-height:82px;
    padding:12px!important;
    overflow:visible!important;
  }
  .openplay-app #players .player-main{
    grid-column:1;
    grid-row:1;
  }
  .openplay-app #players .player-status-cell{
    grid-column:1;
    grid-row:2;
    width:max-content;
  }
  .openplay-app #players .player-games-cell{
    grid-column:1;
    grid-row:3;
  }
  .openplay-app #players .player-record-cell{
    grid-column:1;
    grid-row:4;
  }
  .openplay-app #players .player-actions{
    grid-column:2!important;
    grid-row:1/5!important;
    align-self:center!important;
    display:grid!important;
    grid-template-columns:auto!important;
    gap:7px!important;
  }
  .openplay-app #players .player-actions>.player-checkin-btn{
    min-width:76px!important;
    padding:7px 10px!important;
  }
  .openplay-app #players .player-action-menu{
    right:0;
    top:calc(100% + 7px);
    transform:none;
    min-width:min(210px,calc(100vw - 40px));
    max-width:calc(100vw - 40px);
  }
}
.openplay-app #players .player-action-menu.menu-flip-up{
  top:auto!important;
  bottom:calc(100% + 7px)!important;
  transform:none!important;
}
.openplay-app #players .player-action-menu.menu-nudge-down{
  top:0!important;
  transform:none!important;
}

/* 2026-10-04 mobile Players action menu alignment refinement.
   Mobile only: pen icon has no text and the floating menu opens directly
   beside (to the left of) the pen, vertically aligned with the trigger. */
@media(max-width:620px){
  .openplay-app #players .player-menu-trigger{
    font-size:0!important;
    line-height:0!important;
  }
  .openplay-app #players .player-menu-trigger svg{
    width:18px!important;
    height:18px!important;
  }
  .openplay-app #players .player-action-menu{
    left:auto!important;
    right:calc(100% + 8px)!important;
    top:50%!important;
    bottom:auto!important;
    transform:translateY(-50%)!important;
    min-width:min(210px,calc(100vw - 76px))!important;
    max-width:calc(100vw - 76px)!important;
  }
  .openplay-app #players .player-action-menu.menu-flip-up,
  .openplay-app #players .player-action-menu.menu-nudge-down{
    left:auto!important;
    right:calc(100% + 8px)!important;
    bottom:auto!important;
  }
  .openplay-app #players .player-action-menu.menu-flip-up{
    top:auto!important;
    bottom:0!important;
    transform:none!important;
  }
  .openplay-app #players .player-action-menu.menu-nudge-down{
    top:0!important;
    transform:none!important;
  }
}

/* Compact live match schedule, scoped to the existing modal. */
#scheduleModal{background:var(--surface);--control-ink:var(--text-primary);padding:32px 20px;overscroll-behavior:contain}
#scheduleModal .schedule-modal-panel{width:100%;max-width:1180px;max-height:calc(100dvh - 64px);overflow:auto;box-sizing:border-box;padding:24px;background:var(--surface);--control-ink:var(--text-primary);color:var(--text-primary);border-radius:18px;box-shadow:0 24px 80px var(--shadow-color)}
#scheduleModal .schedule-modal-toolbar{position:sticky;top:-24px;z-index:2;background:var(--surface);--control-ink:var(--text-primary);display:flex;flex-direction:row;align-items:flex-start;border:0;padding:8px 8px 20px;margin:0;gap:16px}
#scheduleModalTitle{font-size:clamp(25px,3vw,40px);font-weight:800;letter-spacing:-.04em;line-height:1.12;margin:0;color:var(--text-primary)}
#scheduleModal .schedule-subtitle{font-size:18px;color:var(--text-secondary);margin:5px 0 0}
#scheduleModal .schedule-close{flex:0 0 44px;width:44px;height:44px;padding:0;border:0;font-size:34px;line-height:1;color:var(--text-secondary)!important;border-radius:8px;background:var(--surface)!important;--control-ink:var(--text-primary)!important}
#scheduleModal .schedule-close:hover{background:var(--surface-secondary)!important;--control-ink:var(--text-primary)!important}
#scheduleModal :focus-visible{outline:3px solid var(--success-border);outline-offset:2px}
#scheduleModal .schedule-section{border:1px solid var(--border-soft);border-radius:15px;padding:16px;margin:0 0 18px;background:var(--surface);--control-ink:var(--text-primary)}
#scheduleModal .schedule-section:last-child{margin-bottom:0}
#scheduleModal .schedule-section h3{display:flex;align-items:center;gap:12px;margin:0 0 12px;font-size:24px;line-height:1.25;letter-spacing:-.035em;color:var(--text-primary)!important}
#scheduleModal .schedule-live-dot{width:12px;height:12px;border-radius:50%;background:var(--success-surface);--control-ink:var(--text-primary);display:inline-block}
#scheduleModal .schedule-section-scroll{overflow-x:auto;border-radius:8px;overscroll-behavior-x:contain}
#scheduleModal .schedule-table{table-layout:fixed;min-width:740px;width:100%;font-size:15px}
#scheduleModal .schedule-col-game{width:10%}
#scheduleModal .schedule-col-team{width:25%}
#scheduleModal .schedule-col-court{width:17%}
#scheduleModal .schedule-col-category{width:13%}
#scheduleModal .schedule-col-score{width:10%}
#scheduleModal .schedule-section:first-child .schedule-col-category{width:23%}
#scheduleModal .schedule-table th,#scheduleModal .schedule-table td{padding:11px 13px;border-bottom:1px solid var(--border-soft);vertical-align:middle;white-space:normal;overflow-wrap:anywhere;color:var(--text-primary)!important;line-height:1.45}
#scheduleModal .schedule-table th{background:var(--surface-secondary)!important;--control-ink:var(--text-primary)!important;font-weight:650;font-size:14px;border:0}
#scheduleModal .schedule-table tbody tr:last-child td{border-bottom:0}
#scheduleModal .schedule-game{font-weight:750}
#scheduleModal .schedule-score{white-space:nowrap!important;font-variant-numeric:tabular-nums}
#scheduleModal .schedule-category-badge{display:inline-block;background:var(--surface-secondary);--control-ink:var(--text-primary);color:var(--success-text);border-radius:999px;padding:4px 12px;font-size:13px;font-weight:650}
#scheduleModal .schedule-table .schedule-winner{color:var(--success-text)!important;font-weight:750;background:transparent;--control-ink:var(--text-primary)}
#scheduleModal .schedule-empty{color:var(--text-secondary)!important;padding:18px 13px}
@media(max-width:700px){
 #scheduleModal{padding:8px}
 #scheduleModal .schedule-modal-panel{padding:14px;max-height:calc(100dvh - 16px);border-radius:14px}
 #scheduleModal .schedule-modal-toolbar{top:-14px;padding:4px 0 16px}
 #scheduleModal .schedule-subtitle{font-size:16px}
 #scheduleModal .schedule-section{padding:10px;margin-bottom:12px}
 #scheduleModal .schedule-section h3{font-size:21px}
}

/* Latest completed result: inline score correction. */
#scheduleModal .schedule-score-actions{display:inline-flex;align-items:center;gap:5px}
#scheduleModal .schedule-edit-score{flex:0 0 28px;width:28px;height:32px;border:0;border-radius:6px;background:var(--action-bg,var(--brand-fill));--control-ink:var(--on-brand);color:var(--on-brand)}
#scheduleModal .schedule-edit-score:hover{background:var(--action-bg,var(--brand-fill));--control-ink:var(--on-brand);color:var(--on-brand)}
#scheduleModal .schedule-edit-score svg{width:17px;height:17px}
#scheduleModal .schedule-col-court{width:15%}
#scheduleModal .schedule-col-score{width:12%}
#scheduleModal .schedule-section:first-child .schedule-col-category{width:25%}
#editResultModal{z-index:1100}

/* Last ten completed matches: fixed-height results and heading-aligned search. */
#scheduleModal .schedule-section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
#scheduleModal .schedule-section-heading h3{margin:0;min-width:0}
#scheduleModal .schedule-completed-search{margin:0 0 0 auto;flex:0 1 270px;width:270px;min-width:0;box-sizing:border-box;padding:9px 12px;border:1px solid var(--border-soft);border-radius:9px;font-size:14px;background:var(--surface);--control-ink:var(--text-primary);color:var(--text-primary)}
#scheduleModal .schedule-completed-scroll{max-height:600px;overflow:auto;scrollbar-gutter:stable}
#scheduleModal .schedule-completed-scroll th{position:sticky;top:0;z-index:1}
#scheduleModal .schedule-table tr[hidden]{display:none!important}
@media(max-width:700px){
 #scheduleModal .schedule-section-heading{flex-wrap:wrap}
 #scheduleModal .schedule-completed-search{flex:1 1 100%;width:100%}
}

/* Open Play surface accents: no layout or interaction changes. */
.openplay-app{--court-label-surface:#F1F5F5;--row-alternate:var(--surface-secondary)}
.openplay-app .event-setup-heading,
.openplay-app .court-section-head,
.openplay-app #playersCard .player-section-head{background:var(--success-surface);--control-ink:var(--text-primary)}
.openplay-app .event-setup-heading h2,
.openplay-app .court-section-head h2,
.openplay-app #playersCard .player-section-head .section-collapse-title{position:relative}
.openplay-app .event-setup-heading h2::before,
.openplay-app .court-section-head h2::before,
.openplay-app #playersCard .player-section-head .section-collapse-title::before{content:"";position:absolute;left:-9px;top:15%;bottom:15%;width:3px;border-radius:2px;background:var(--orange-accent);--control-ink:var(--text-primary);pointer-events:none}
.openplay-app #courts .court-availability-card{background:var(--surface);--control-ink:var(--text-primary);box-shadow:inset 3px 0 0 var(--success-border)}
.openplay-app #courts .court-number-badge{box-shadow:none;cursor:default}
.openplay-app #courts .court-availability-status:not(.in-use):not(.closed){background:var(--success-surface);--control-ink:var(--text-primary);color:var(--success-text)}
.openplay-app #playersCard .add-player-experience{background:var(--surface-secondary);--control-ink:var(--text-primary)}
.openplay-app #players .player-row:nth-child(odd){background:var(--surface);--control-ink:var(--text-primary)}
.openplay-app #players .player-row:nth-child(even){background:var(--row-alternate);--control-ink:var(--text-primary)}
.openplay-app .player-status-cell[data-status="CHECKED_OUT"]{background:var(--surface-secondary);--control-ink:var(--text-primary);color:var(--text-secondary);border-color:var(--border-soft)}
.openplay-app .matching-mode-card:has(input:focus-visible){outline:2px solid var(--brand-fill);outline-offset:3px}

.openplay-app #courts .court-availability-status{width:fit-content;border-radius:6px}

/* Session format */
.match-format-setup{margin-bottom:18px;max-width:420px}.match-format-setup select{background:#fff;color:#075056;border:1px solid #075056}.match-format-setup select:focus{outline:2px solid #075056;outline-offset:2px}.match-format-setup select:disabled{color:#374151;border-color:#d1d5db}.openplay-app [hidden]{display:none!important}.singles-session [data-set-partner],.singles-session [data-edit-partner],.singles-session [data-unlink-partner],.singles-session [data-request="teammate"]{display:none!important}

[data-manual-slot][hidden],#editUpcomingProposalModal [hidden]{display:none!important}
