.settings summary,.roster summary{cursor:pointer;font-size:14px;font-weight:700}.settings form{padding-top:18px}.check-label{display:flex;gap:9px;align-items:center}.check-label input{width:19px;height:19px;margin:0;accent-color:var(--blue)}.settings input[type=number]{max-width:120px}.roster .section-title{margin-top:0}.player-badges{display:flex;flex-wrap:wrap;gap:10px}.player-chip{display:inline-flex;align-items:stretch;border:1px solid #bfd0ef;background:#edf3ff;border-radius:14px;overflow:hidden;max-width:100%}.player-chip.out{background:#f5f6f8;border-color:var(--line);opacity:.7}.player-chip button{border:0;background:transparent;border-radius:0;min-height:48px}.player-chip .person{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:9px 12px}.person strong{font-size:14px;word-break:break-word}.person small{font-size:11px;color:var(--muted);font-weight:400}.player-chip .grade{padding:8px;border-left:1px solid #d3dff2;color:var(--blue);font-size:12px;min-width:40px}.roster details{border-top:1px solid var(--line);padding-top:15px}.roster form{margin-top:16px}.group-picks{border:0;display:flex;gap:9px;padding:0;margin:12px 0 16px}.group-picks legend{font-size:12px;margin-bottom:10px}.group-picks label{display:flex;align-items:center;gap:5px;background:var(--wash);padding:9px 14px;border-radius:9px;margin:0}.group-picks input{width:17px;height:17px;margin:0;accent-color:var(--blue)}.game-list{display:flex;flex-direction:column;gap:14px;margin-bottom:24px}.game-list .court-card{width:100%}.court-head>div{display:flex;align-items:center;gap:12px}.game-no{font-size:22px;color:var(--blue);font-variant-numeric:tabular-nums}.court-label{font-size:12px;color:var(--muted);font-weight:400}.team small{font-size:11px;color:var(--muted);font-weight:400;display:block;margin-top:3px}.court-card.finished{background:#f9fafc}.court-card.finished .teams{padding-top:14px;padding-bottom:14px}.court-card.next{border:2px solid #9dbaf2;background:#fff}.automatic-note{font-size:12px;color:var(--muted);padding:0 18px;margin-top:0}.draft-controls{background:#edf3ff;padding:16px;border-radius:14px}.draft-controls p{font-size:12px;line-height:1.7;color:var(--muted);margin-top:0}.draft-controls button{width:100%}.group-buttons{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.group-buttons button{flex:1}.player-badges>button{border-radius:30px;font-size:13px}.player-badges>button.selected{background:var(--blue);color:white}.my-card .hint{color:#fff}.game-list .teams{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}#swap-target{margin-bottom:18px}.session-heading h1{font-size:28px}.settings{padding:15px 20px}.hero{min-height:0}.hero h1{font-size:clamp(32px,5vw,52px)}@media(max-width:700px){.player-badges{gap:7px}.player-chip .person{padding:8px 10px}.player-chip .grade{min-width:34px;padding:6px}.person strong{font-size:13px}.roster .section-title{align-items:flex-start;gap:8px}.roster .section-title>span{max-width:90px;line-height:1.5;text-align:right}.section-title h2{font-size:17px}.game-no{font-size:20px}.team span,.team button{font-size:14px}}
.departure-actions,.participant-heading,.dialog-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.departure-actions{border-bottom:1px solid var(--line);padding-bottom:16px}.departure-actions button{flex:1}.participant-heading h3{font-size:15px}.participant-heading label{margin:0;white-space:nowrap}#partner-section{border-top:1px solid var(--line);padding-top:18px;margin-bottom:20px}#partner-options{margin:14px 0;max-height:180px;overflow:auto}#partner-selection{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:16px}#partner-selection[hidden]{display:none}#partner-selection label{display:flex;align-items:center;gap:6px;margin:0;white-space:nowrap}#partner-minimum{width:64px;margin:0;text-align:center}.group-buttons button[aria-pressed=true]{background:var(--blue);color:white}.player-chip .return{color:var(--blue)}dialog{max-height:85dvh;overflow:auto}
.match-kind{flex-wrap:wrap}.gender-settings{border:0;padding:0;margin:18px 0}.gender-settings legend{font-size:14px;font-weight:700}.gender-settings .group-buttons{margin:10px 0}.waiting-reason{color:var(--blue)!important}.dialog-notice{padding:12px;background:var(--wash);color:var(--blue);border-radius:10px;font-size:13px}.sync-line{flex-wrap:wrap;gap:8px}
.roster-label{display:block;font-size:13px;font-weight:700;margin:18px 0 10px}.registration-badges{display:flex;flex-wrap:wrap;gap:7px}.registration-chip{display:inline-flex;align-items:center;gap:5px;border:1px solid #bfd0ef;background:#edf3ff;border-radius:20px;padding:3px 5px 3px 12px;font-size:13px}.registration-chip button{border:0;background:transparent;padding:4px 7px;min-height:28px;color:var(--muted)}.add-person{margin-top:12px;font-size:13px;padding:9px 13px;border-style:dashed}.player-chip .person{padding:6px 9px;min-height:38px}.player-chip .grade{min-height:38px}.person strong{font-size:13px}.person small{font-size:10px}#add-person-dialog{max-width:360px;width:calc(100% - 32px)}
html,body{background:#fff;background-image:none}
dialog{height:fit-content;min-height:0;max-height:calc(var(--dialog-viewport-height,100vh) - 32px);margin:auto;overflow-y:auto;overscroll-behavior:contain}
.native-game body>header,.native-game body>footer,.native-game #connection,.native-game .session-heading .eyebrow,.native-game #back,.native-game .hero,.native-game #create{display:none!important}.native-game:not(.native-lobby) #lobby{display:none}.native-game .session-heading{margin:16px 0;align-items:center}.native-game .session-heading>div:first-child{min-width:0;flex:1}.native-game .session-heading h1{font-size:22px;margin:0}.native-game .session-heading .cloud-actions{display:flex;gap:4px;flex-shrink:0}.native-game .cloud-actions button{display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;background:transparent}.native-game .lobby-grid{grid-template-columns:1fr;padding-top:16px}
#group-add-dialog #group-add-options{max-height:calc(var(--dialog-viewport-height,100vh) * .45);min-height:48px}
#group-add-options .group-add-option{flex-shrink:0}
.confirmation-dialog{max-width:380px;padding:24px;background:var(--paper);box-shadow:0 12px 40px #17233b20}.confirmation-dialog .hint{font-size:14px;line-height:1.7;margin:0 0 24px;white-space:pre-line}.confirmation-dialog .dialog-actions button{min-width:80px}
.attendance-group{width:100%}.attendance-group h3{font-size:13px;margin:0 0 10px;color:var(--muted)}.attendance-group h3 small{font-weight:400;margin-left:4px}.attendance-group.attended{border-top:1px solid var(--line);padding-top:16px;margin-top:8px}
.player-chip .person{background:#fff}.player-chip .grade{background:#edf3ff}
.preview-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.preview-actions button{width:100%;min-width:0}
.roster-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}.roster-actions .add-person{margin:0}.roster-actions>button{font-size:12px}.attendance-mode{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;padding:12px;background:#edf3ff;border-radius:10px;font-size:12px}.attendance-mode[hidden]{display:none}.status-selecting .player-chip{border-style:dashed}.status-selecting .status-marked{border:2px solid var(--blue);opacity:1}.status-selecting .grade{pointer-events:none;opacity:.5}
.roster-actions[hidden]{display:none}.status-selecting .player-chip{border:1px dashed #737373}.status-selecting .player-chip.status-marked{border:2px dashed #222;opacity:1}
.status-selecting .player-chip.status-marked{border:2px solid var(--blue);opacity:1}
.roster .section-title>span{white-space:nowrap;max-width:none;flex-shrink:0}
.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.dialog-heading h2{margin:0}.dialog-heading .dialog-close{flex:0 0 36px;width:36px;height:36px;padding:0;border:0;background:transparent;color:var(--muted);font-size:27px;line-height:1;cursor:pointer}.dialog-close:hover{background:#f3f4f6}.dialog-actions:empty{display:none}#add-person-cancel[hidden]{display:none}
body>header,body>main,body>footer{width:100%;max-width:960px;margin-left:auto;margin-right:auto;box-sizing:border-box}#workspace{width:100%;max-width:760px;margin-left:auto;margin-right:auto}.lobby-grid{width:100%;max-width:880px;margin-left:auto;margin-right:auto}.lobby-grid>.panel{min-width:0;width:100%;max-width:440px;margin-left:auto;margin-right:auto}.hero{max-width:760px;margin-left:auto;margin-right:auto}.game-list,.roster,.settings,.my-card{box-sizing:border-box;max-width:760px}dialog{box-sizing:border-box;width:calc(100% - 32px);max-width:480px}#add-person-dialog{max-width:360px}
.game-list .court-card.finished:has(.badge.completed){background:#fff}
.court-card .badge.completed{display:inline-flex;align-items:center;gap:7px;background:#fff;color:#389775;font-weight:700}
.court-card:has(.badge.completed) .team>span,.court-card:has(.badge.completed) .player-name{color:#727B89}
.game-list .court-card.finished:has(.badge.cancelled){background:#f7f7f7;border-color:#dedede;color:#7B7B7B}.court-card:has(.badge.cancelled) .game-no,.court-card:has(.badge.cancelled) .team span,.court-card:has(.badge.cancelled) .team small,.court-card:has(.badge.cancelled) .court-label{color:#7B7B7B}.court-card:has(.badge.cancelled) .court-head{border-color:#e3e3e3}.court-card .badge.cancelled{background:#e9e9e9;color:#616161}
.settings-divider{border:0;border-top:1px solid var(--line);margin:22px 0}#court-custom-wrap{margin-top:16px}#court-numbers-wrap .hint{display:block;margin-top:7px}#court-numbers-wrap input{max-width:280px}
body>header .brand{margin-left:0;display:inline-flex;align-items:center;gap:10px}body>header .brand img{display:block;width:48px;height:48px;object-fit:contain}
.connection-status{font-size:11px;color:var(--muted);margin:0 0 12px}.session-toolbar{display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:12px}.session-toolbar #summary{min-width:0;line-height:1.6}.session-toolbar #open-settings{display:inline-flex;align-items:center;justify-content:center;flex:0 0 40px;width:40px;height:40px;padding:0;border:0;background:transparent;color:inherit}.session-toolbar #open-settings:hover{background:#f3f4f6}#settings-dialog{max-width:480px;padding:24px}#settings-dialog form{padding-top:0}
.player-chip.resting{opacity:1;background:#e3f3e8;border-color:#8abd9b}.player-chip.resting .person{background:#e3f3e8;padding:9px 12px}.player-chip.resting .person strong{color:#28583b}.player-chip.resting .person small{font-size:12px;font-weight:700;color:#28583b}.player-chip.resting .grade{display:none}
.group-buttons[hidden]{display:none}
.court-toggle-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:16px}.court-toggle-row .check-label{margin:0}.court-toggle-row #court-custom-wrap{margin:0}.court-input-row{display:flex;align-items:flex-start;gap:16px}.court-input-row>label{margin:0;min-width:0}.court-input-row #court-count-wrap{flex:0 0 82px}.court-input-row #court-numbers-wrap{flex:1;border-left:1px solid var(--line);padding-left:16px}.court-input-row input{width:100%;box-sizing:border-box}.court-input-row #court-numbers-wrap .hint{font-size:11px;line-height:1.5}
.game-history{border:1px solid #dce0e6;border-radius:16px;background:#eef0f3;overflow:hidden}.game-history.cancelled{background:#f7f7f7;color:#737373}.game-history>summary{display:flex;align-items:center;gap:12px;padding:16px;cursor:pointer;list-style:none;font-size:13px;min-height:48px;box-sizing:border-box}.game-history>summary::-webkit-details-marker{display:none}.game-history>summary:after{content:'+';font-size:20px}.game-history[open]>summary:after{content:'−'}.game-history>summary>span:first-of-type{flex:1;color:var(--muted)}.game-history .court-card{border:0;border-top:1px solid #dce0e6;border-radius:0}.history-state{font-weight:700}.game-actions{display:flex;align-items:center;gap:10px}.game-actions>.primary{flex:1}.game-options{position:relative;flex:0 0 44px}.game-options>summary{list-style:none;cursor:pointer;font-size:26px;text-align:center;width:44px;line-height:44px;border:1px solid var(--line);border-radius:10px}.game-options>summary::-webkit-details-marker{display:none}.game-options>button{position:absolute;right:0;bottom:52px;white-space:nowrap;background:#fff;box-shadow:0 5px 20px #0002;z-index:3;min-width:112px}.player-chip .person,.player-chip .grade{min-height:44px}.registration-chip button{min-width:36px;min-height:36px}.dialog-heading .dialog-close{width:44px;height:44px;flex-basis:44px}.group-buttons button[aria-pressed=true]{box-shadow:inset 0 0 0 2px #174b9c;font-weight:800}.group-buttons button[aria-pressed=true]:after{content:' ✓'}.player-badges>button.selected{box-shadow:inset 0 0 0 2px #174b9c;font-weight:800}.player-badges>button.selected:before{content:'✓ ';font-weight:800}.attendance-mode{margin:0 0 16px;position:sticky;top:8px;z-index:4;border:1px solid #bfd0ef}.attendance-mode button{white-space:nowrap;font-weight:700}.connection-status{font-size:10px;opacity:.75}.court-head>div{min-width:0;flex-wrap:wrap;gap:8px}.court-head .badge{flex-shrink:0}.dialog-actions{justify-content:flex-end}dialog p.hint{font-size:12px;line-height:1.65}button:focus-visible,summary:focus-visible{outline:3px solid #8aafea;outline-offset:3px}@media(max-width:700px){body:has(#workspace:not([hidden])) main{padding-bottom:110px}#workspace:not([hidden]):has(#tab-games:not([hidden])) [data-action=propose]{position:fixed;right:20px;bottom:max(20px,env(safe-area-inset-bottom));z-index:8;box-shadow:0 5px 20px #173b6a30;min-height:48px;border-radius:24px;padding:12px 20px}.game-history>summary{gap:8px;padding:14px 12px}.game-history>summary>span:first-of-type{font-size:11px}}
.cycle-block{width:100%;min-width:0}.cycle-heading{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border-top:2px solid #cdd6e3;padding:16px 0;margin-top:10px}.cycle-heading strong{font-size:17px}.cycle-heading span{font-size:12px;color:var(--muted);flex:1}.cycle-heading small{color:var(--muted)}.cycle-games{display:flex;flex-direction:column;gap:14px}.cycle-history>summary{cursor:pointer;list-style:none}.cycle-history>summary::-webkit-details-marker{display:none}.cycle-history>summary:after{content:'펼치기 +';font-size:12px;color:var(--blue);font-weight:700}.cycle-history[open]>summary:after{content:'접기 −'}
.player-chip .grade[hidden],.participant-heading label[hidden]{display:none}.matching-help{margin:14px 0 20px}.matching-help>summary{font-size:13px;color:var(--muted);cursor:pointer;padding:8px 0}.matching-help[open]{border-bottom:1px solid var(--line);padding-bottom:8px}
.settings-submit{display:flex;justify-content:flex-end;margin-top:24px}#settings-dialog .matching-help{margin-bottom:0}#settings-dialog .matching-help[open]{border-bottom:0}
.player-chip.awaiting-attendance{opacity:1;border-color:#8baee9}.player-chip.awaiting-attendance .person{background:#f2f6ff;padding:10px 12px}.player-chip.awaiting-attendance .person strong{display:flex;align-items:center;gap:7px;color:#263d60}.player-chip.awaiting-attendance .person strong:before{content:'';display:inline-block;width:14px;height:14px;border:1.5px solid #537bb7;border-radius:4px;background:#fff;flex-shrink:0}.player-chip.awaiting-attendance .person small{font-size:11px;font-weight:700;color:#376cbb}.status-selecting .player-chip.awaiting-attendance{border-color:#737373}
.roster .section-title{display:flex;align-items:center;gap:10px}.roster .section-title>h2{margin-right:auto}.roster .section-title>span:empty{display:none}#attendance-status{flex:0 0 36px;width:36px;min-height:44px;padding:0;border:0;background:transparent;font-size:27px;line-height:1;color:var(--muted)}#attendance-status[hidden]{display:none}.attendance-group h3{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.attendance-check-hint{margin-left:auto;font-size:11px;font-weight:400;color:var(--muted)}.attendance-check-hint[hidden]{display:none}@media(max-width:420px){.roster .section-title{flex-wrap:wrap}.roster .section-title>span{font-size:10px}#attendance-status{flex-basis:30px;width:30px}}
.roster .section-title{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:4px 12px;align-items:center}.roster .section-title>h2{grid-column:1;grid-row:1;margin:0}.roster .section-title>span{grid-column:1;grid-row:2;justify-self:start;text-align:left;max-width:none;font-size:11px;line-height:1.5}.roster .section-title>#attendance-status{grid-column:2;grid-row:1 / span 2;width:44px;height:44px;justify-self:end}.game-options>summary,#attendance-status{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:44px;height:44px;min-height:44px;padding:0;font-size:0;line-height:normal}.game-options>summary:before,#attendance-status:before{content:'';display:block;flex:0 0 4px;width:4px;height:4px;border-radius:50%;background:currentColor;box-shadow:0 -6px 0 currentColor,0 6px 0 currentColor}.game-options>summary{color:#334155}#attendance-status[hidden]{display:none}
.player-chip .partner-number{align-self:center;min-height:32px;min-width:32px;padding:5px 7px;margin:4px 6px 4px 0;border:1px solid #abc2ec;border-radius:9px;background:#e9f0ff;color:#2757a5;font-size:11px;font-weight:800;line-height:1}.player-chip .partner-number:hover{background:#dce8ff}.player-chip .partner-number:focus-visible{outline:2px solid #386fe0;outline-offset:1px}#partner-info-dialog{max-width:360px}
.partner-pair-card{display:inline-flex;flex-direction:column;max-width:100%;border:1px solid #a9c0e8;border-radius:14px;background:#fff;overflow:hidden}.partner-pair-card>.player-chip{border:0;border-radius:0;max-width:none;width:100%;box-sizing:border-box}.partner-pair-card>.player-chip+.player-chip{border-top:1px solid #d8e2f2}.partner-pair-card .person{flex:1}.partner-pair-card .grade{flex-shrink:0}.status-selecting .partner-pair-card>.player-chip{border:1px dashed #737373}.status-selecting .partner-pair-card>.status-marked{border:2px solid var(--blue)}
.partner-pair-card{flex-direction:row}.partner-pair-card>.player-chip{width:auto;min-width:0;flex:1}.partner-pair-card>.player-chip+.player-chip{border-top:0;border-left:1px solid #d8e2f2}
.partner-pair-card{border:0;border-radius:0;background:transparent;overflow:visible;align-items:center;gap:6px}.partner-pair-card>.player-chip{border:1px solid #bfd0ef;border-radius:14px;width:auto;flex:0 1 auto}.partner-pair-card>.player-chip.resting{border-color:#8abd9b}.partner-link-icon{display:flex;align-items:center;justify-content:center;flex:0 0 24px;color:#b75e7b}.partner-link-icon svg{display:block;width:24px;height:24px}
.partner-link-icon{flex-direction:column;gap:3px;flex-basis:32px}.partner-link-label{font-size:10px;line-height:1.2;font-weight:600;white-space:nowrap}
.player-chip .grade.participant-menu{display:flex;align-items:center;justify-content:center;min-width:34px;padding:0;align-self:stretch}.player-chip .grade.participant-menu:before{content:'';width:3px;height:3px;border-radius:50%;background:currentColor;box-shadow:0 -5px 0 currentColor,0 5px 0 currentColor}.player-chip .grade.participant-menu[hidden],.player-chip.resting .grade.participant-menu{display:none}
#players,#players .attendance-group>.player-badges{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}#players>.attendance-group{grid-column:1/-1}#players .player-chip{width:100%;min-width:0;min-height:64px;box-sizing:border-box;border-radius:12px;align-items:stretch}#players .player-chip .person{flex:1;min-width:0;padding:10px;justify-content:center;gap:5px}#players .person strong{font-size:13px;line-height:1.3}#players .person small{font-size:10px;line-height:1.4}#players .grade.participant-menu{flex:0 0 32px;min-width:32px;background:#fff;color:#788393;border-left:0}#players .partner-pair-card{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);position:relative;gap:10px;overflow:visible}#players .partner-pair-card>.player-chip{width:100%;min-width:0}#players .partner-link-icon{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:1;width:28px;gap:1px;padding:4px 0;background:#fff;border-radius:8px;pointer-events:none}#players .partner-link-icon svg{width:19px;height:19px}#players .partner-link-label{font-size:8px}#players .partner-pair-card>.player-chip:first-child .person{padding-right:13px}#players .partner-pair-card>.player-chip:last-child .person{padding-left:14px}#players .player-chip.resting .person{padding:10px;justify-content:center}#players .player-chip.resting .person small{font-size:11px}#players .player-chip.awaiting-attendance .person{padding:10px}@media(min-width:701px){#players,#players .attendance-group>.player-badges{grid-template-columns:repeat(4,minmax(0,1fr))}#players .partner-pair-card{grid-column:span 2}}
#players .player-chip.resting .person{align-items:center;justify-content:center;text-align:center;gap:5px}#players .player-chip.resting .person strong{font-size:12px;color:#426650}#players .player-chip.resting .person small{font-size:13px;font-weight:800;line-height:1.4;color:#205336}
#players:not(.status-selecting) .partner-pair-card>.player-chip{border:2px solid var(--blue)}#players:not(.status-selecting) .partner-pair-card>.player-chip.resting{border-color:var(--blue)}#players .partner-link-icon{color:var(--blue)}
#players,#players .attendance-group>.player-badges{gap:6px}#players .player-chip{min-height:54px}#players .player-chip .person,#players .player-chip.resting .person,#players .player-chip.awaiting-attendance .person{padding:7px 8px;gap:3px}#players .grade.participant-menu{flex-basis:28px;min-width:28px}#players .partner-pair-card{gap:6px}#players .partner-link-label{display:none}#players .partner-link-icon{width:24px;padding:3px 0}#players .partner-pair-card>.player-chip:first-child .person{padding-right:11px}#players .partner-pair-card>.player-chip:last-child .person{padding-left:11px}
#workspace .roster{background:transparent;border:0;border-radius:0;box-shadow:none;padding:0}#players,#players .attendance-group>.player-badges{grid-template-columns:repeat(3,minmax(0,1fr))}#players .partner-pair-card{grid-column:span 2}
#workspace .roster+nav{border-top:8px solid #f0f1f3;padding-top:16px;margin-top:24px}
#workspace .roster+nav{position:relative;border-top-color:transparent;padding-top:0}#workspace .roster+nav:before{content:'';position:absolute;top:-8px;left:-24px;right:-24px;height:8px;background:#f0f1f3}@media(max-width:700px){#workspace .roster+nav:before{left:-18px;right:-18px}}
#me.player-badges>button.selected{box-shadow:none;border-color:transparent}
@media(max-width:700px){#me.player-badges>button{font-size:12px}}
#players .skill-group{grid-column:1/-1;width:100%;min-width:0;border-top:1px solid var(--line);padding-top:12px;margin-top:6px}#players .skill-group h4{font-size:12px;color:var(--muted);margin:0 0 9px;font-weight:700}#players .skill-group-players{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
#attendance-dialog .participant-tools,#attendance-dialog>.group-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}#attendance-dialog .participant-tools button,#attendance-dialog>.group-buttons button{width:100%;min-height:48px}#attendance-dialog .settings-divider{margin:18px 0}#attendance-dialog>.group-buttons{margin:0}
#attendance-dialog{max-width:360px;width:calc(100% - 48px);padding:22px}
#group-dialog{max-width:380px}#partner-dialog{max-width:440px}#group-dialog .dialog-actions{display:none}#partner-dialog #partner-section{margin-top:16px}
#players .player-chip .person{align-items:center;text-align:center}
.cloud-actions{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.cloud-actions button{font-size:12px;padding:8px 12px}
.group-add-card{display:flex;align-items:center;justify-content:center;min-height:54px;width:100%;padding:0;border:1px dashed #8aa9df;border-radius:12px;background:#f5f8ff;color:var(--blue);font-size:27px}#group-add-dialog{max-width:420px}#group-add-options{display:flex;flex-direction:column;gap:8px;max-height:45dvh;overflow:auto;margin:16px 0}.group-add-option{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:10px;margin:0;cursor:pointer}.group-add-option input{width:18px;height:18px;margin:0;accent-color:var(--blue)}.group-add-option small{margin-left:auto;color:var(--muted);font-size:11px}.group-add-option:has(input:checked){border-color:var(--blue);background:#edf3ff}.group-add-option:has(input:disabled){opacity:.55}
.partner-name-row{display:flex;align-items:center;gap:6px;min-width:0}#partner-remove{display:inline-flex;align-items:center;justify-content:center;flex:0 0 36px;width:36px;min-height:36px;padding:0;border:0;background:transparent;color:var(--muted);font-size:23px;line-height:1}#partner-remove[hidden]{display:none}#partner-remove:hover{background:#f3f4f6}
/* Shared compact match header for public and native operator views. */
html,body{background:#fff}
#workspace>.connection-status{display:none}
#workspace .session-heading{display:flex;align-items:center;gap:12px;margin:14px 0 12px}
#workspace .session-heading>div:first-child{flex:1;min-width:0}
#workspace .session-heading h1{margin:0;font-size:clamp(24px,4.8vw,32px);line-height:1.25;letter-spacing:-1px}
#workspace #session-actions{display:flex;align-items:center;flex:0 0 auto;gap:4px;margin:0}
#workspace #session-actions button{display:inline-flex;align-items:center;justify-content:center;flex:0 0 40px;width:40px;min-height:44px;padding:8px;border:0;border-radius:10px;background:transparent;color:var(--ink)}
#workspace #session-actions button:hover{background:#f4f6f9}
#workspace #session-actions svg{width:25px;height:25px}
#workspace .session-toolbar{display:block;margin:0 0 22px}
#workspace #summary{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
#workspace .session-stat{display:inline-flex;align-items:center;gap:6px;padding:8px 10px;border:1px solid #edf0f4;border-radius:14px;background:#fff;color:#526078;font-size:13px;line-height:1.3;white-space:nowrap}
#workspace .session-stat svg{width:17px;height:17px;flex-shrink:0;color:#647087}
#workspace .stat-male svg,#workspace .stat-complete svg{color:#2876df}
#workspace .stat-female svg{color:#dc3b87}
body>.public-header #back{margin-left:auto;font-size:12px;padding:8px 12px}
#settings-dialog>#back,#settings-dialog>button{margin-top:12px}
@media(max-width:480px){#workspace .session-heading{gap:8px}#workspace #session-actions{gap:0}#workspace #session-actions button{width:36px;flex-basis:36px}#workspace #summary{gap:6px}#workspace .session-stat{font-size:11px;padding:7px;gap:4px;border-radius:12px}#workspace .session-stat svg{width:14px;height:14px}}
#workspace .roster .matching-guide{margin:12px 0 16px;padding:0;border:1px solid var(--line);border-radius:12px;background:transparent}
#workspace .matching-guide>summary{display:flex;align-items:center;gap:10px;padding:12px;list-style:none;cursor:pointer;font-size:13px;font-weight:400;line-height:1.5;color:var(--ink)}
#workspace .matching-guide>summary::-webkit-details-marker{display:none}
#workspace .matching-guide>summary>span{flex:1;min-width:0}
#workspace .matching-guide-info{flex:0 0 20px;width:20px;height:20px;color:var(--muted)}
#workspace .matching-guide-chevron{flex:0 0 20px;width:20px;height:20px;color:var(--muted)}
#workspace .matching-guide[open] .matching-guide-chevron{transform:rotate(180deg)}
#workspace .matching-guide>.hint{margin:0;padding:0 12px 12px 42px;font-size:12px;line-height:1.7}
#workspace .matching-guide>summary:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:12px}
@media(max-width:480px){#workspace .matching-guide>summary{font-size:12px;gap:8px;padding:10px}#workspace .matching-guide>.hint{padding:0 10px 10px 38px}}
#attendance-dialog{width:calc(100% - 32px);max-width:440px;padding:22px;border-radius:20px;background:#fff}
#attendance-dialog .dialog-heading h2{font-size:20px;line-height:1.35}
#attendance-dialog .attendance-instruction{font-size:12px;line-height:1.65;margin:14px 0 18px}
#attendance-dialog .participant-tools,#attendance-dialog>.group-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0}
#attendance-dialog button[data-attendance-mode]{display:flex;align-items:center;justify-content:flex-start;gap:10px;min-width:0;min-height:74px;padding:12px;text-align:left;border:1px solid var(--line);border-radius:14px;background:transparent;color:var(--ink)}
#attendance-dialog button[data-attendance-mode]>svg{width:24px;height:24px;flex:0 0 24px;fill:none;stroke:var(--muted);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#attendance-dialog button[data-attendance-mode]>span{display:flex;flex-direction:column;gap:4px;min-width:0}
#attendance-dialog button[data-attendance-mode] strong{font-size:14px;font-weight:600;line-height:1.35}
#attendance-dialog button[data-attendance-mode] small{font-size:11px;font-weight:400;line-height:1.4;color:var(--muted);word-break:keep-all}
#attendance-dialog button[data-attendance-mode]:hover,#attendance-dialog button[data-attendance-mode]:focus-visible{border-color:var(--blue);color:var(--blue)}
#attendance-dialog button[data-attendance-mode]:hover>svg,#attendance-dialog button[data-attendance-mode]:focus-visible>svg{stroke:var(--blue)}
#attendance-dialog .attendance-section-label{font-size:12px;font-weight:600;color:var(--muted);margin:20px 0 9px}
@media(max-width:380px){#attendance-dialog{padding:18px}#attendance-dialog button[data-attendance-mode]{padding:10px;gap:8px}#attendance-dialog button[data-attendance-mode]>svg{width:21px;height:21px;flex-basis:21px}#attendance-dialog button[data-attendance-mode] strong{font-size:13px}#attendance-dialog button[data-attendance-mode] small{font-size:10px}}
.game-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:28px 16px 36px;gap:0;background:transparent}
.game-empty>img{display:block;width:112px;height:112px;object-fit:contain;margin:0 0 10px}
.game-empty>h3{margin:0 0 8px;font-size:18px;font-weight:600;line-height:1.4;letter-spacing:-.4px;color:var(--ink)}
.game-empty>p{max-width:420px;margin:0;font-size:13px;line-height:1.7;color:var(--muted);word-break:keep-all}
@media(max-width:480px){.game-empty{padding:22px 12px 30px}.game-empty>img{width:100px;height:100px}.game-empty>h3{font-size:16px}.game-empty>p{font-size:12px}}
#workspace .roster .section-title{row-gap:2px;margin-bottom:6px}
#workspace .roster .section-title #ready-count{font-size:inherit;font-weight:inherit;color:inherit}
#workspace #players>.attendance-group.pending{border-top:1px solid var(--line);padding-top:8px;margin-top:0}
#workspace #players .attendance-check-hint{display:block;margin:0 0 8px;text-align:left;font-size:11px;font-weight:400;line-height:1.5;color:var(--muted)}
#attendance-dialog button[data-attendance-mode]{display:grid;grid-template-columns:18px minmax(0,1fr);grid-template-rows:auto auto;align-content:center;align-items:center;gap:6px 8px}
#attendance-dialog button[data-attendance-mode]>svg{grid-column:1;grid-row:1;width:18px;height:18px}
#attendance-dialog button[data-attendance-mode]>span{display:contents}
#attendance-dialog button[data-attendance-mode] strong{grid-column:2;grid-row:1}
#attendance-dialog button[data-attendance-mode] small{grid-column:1 / -1;grid-row:2;text-align:left}
.compact-toggle{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin:0 0 0 auto;white-space:nowrap;font-size:12px;font-weight:500;color:var(--muted)}.compact-toggle input[type=checkbox]{appearance:none;display:inline-block;flex-shrink:0;width:32px;height:19px;min-height:0;padding:2px;margin:0;border:0;border-radius:20px;background:#c6cfdb;cursor:pointer}.compact-toggle input:before{content:'';display:block;width:15px;height:15px;border-radius:50%;background:white}.compact-toggle input:checked{background:var(--blue)}.compact-toggle input:checked:before{transform:translateX(13px)}#tab-viewer>.compact-toggle{margin-bottom:12px}.compact-games .court-card,.compact-games .game{border:0;border-bottom:1px solid var(--line);border-radius:0;box-shadow:none;background:transparent;margin:0;padding:8px 0}.compact-games .court-head,.compact-games .game header{border:0;padding:4px 0;font-size:12px}.compact-games .court-card .teams,.compact-games .game .teams{display:flex;justify-content:center;gap:8px;padding:6px 0;overflow-x:auto;white-space:nowrap}.compact-games .teams .team{display:flex;flex:0 0 auto;gap:0;align-items:center;min-width:0}.compact-games .team>button,.compact-games .team>span,.compact-games .team>div{display:inline-block;flex:0 0 auto;border:0;background:transparent;border-radius:0;padding:2px 0;min-height:0;font-size:13px;white-space:nowrap;word-break:normal}.compact-games .team>:not(:last-child):after{content:', ';white-space:pre}.compact-games .team small,.compact-games .team .player-gender,.compact-games .automatic-note{display:none}.compact-games .court-card .actions{padding:4px 0;gap:6px;justify-content:flex-end}.compact-games .court-card .actions>button{flex:0 0 auto;min-height:30px;padding:5px 10px;font-size:11px;border-radius:7px}.compact-games .cycle-games{gap:0}.compact-games .game-no{font-size:14px}.compact-games .badge{font-size:10px;padding:3px 6px}
.pending-games{border-top:1px solid var(--line);margin-top:14px;padding-top:14px}.pending-games>h3{margin:0 0 6px;font-size:15px}.pending-games .automatic-note{display:none}.court-card .actions>.game-delete{display:inline-flex;align-items:center;justify-content:flex-start;gap:6px;flex:0 0 auto;border:0;background:transparent;color:var(--muted);margin-right:auto}.compact-games .court-card{padding:10px 0}.compact-games .court-head,.compact-games .game header{font-size:14px;padding:5px 0}.compact-games .court-head .court-label{font-size:13px}.compact-games .game-no{font-size:21px;color:var(--blue)}.compact-games .badge{font-size:12px;padding:5px 10px}.compact-games .court-card .teams,.compact-games .game .teams{padding:12px 0;gap:14px}.compact-games .team>button,.compact-games .team>span,.compact-games .team>div{font-size:16px;font-weight:600}.compact-games .team>:not(:last-child):after{content:' · '}.compact-games .vs,.compact-games .versus{font-size:14px}.compact-games .court-card .actions{justify-content:space-between;padding:5px 0 8px}.compact-games .court-card .actions>button{font-size:14px;min-height:38px;padding:8px 12px}.compact-games .court-card .actions>.primary{min-width:120px}.compact-games .court-card .actions>.game-delete{padding-left:0}.compact-games .pending-games .court-card:last-child{border-bottom:0}.compact-games .pending-games{background:transparent}

#swap{max-width:560px;padding:24px}#swap #rest{display:none}#swap .dialog-heading{margin-bottom:12px}#swap-label{margin:0 0 18px;font-size:13px;line-height:1.6;color:#566780}
.swap-current{display:flex;align-items:center;gap:18px;padding:15px 16px;background:#f0f5ff;border-radius:12px;font-size:12px;color:#62738c}.swap-current strong{font-size:16px;color:var(--ink);min-width:0;overflow-wrap:anywhere}.swap-current-tag{margin-left:auto;flex-shrink:0;background:#e0ecff;color:#326ced;padding:5px 8px;border-radius:7px;font-size:11px;font-weight:600}
.swap-departure{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 0;margin:16px 0}.swap-option{display:flex;align-items:center;gap:14px;width:100%;text-align:left;min-height:48px;padding:12px 14px;margin:0;border:1px solid #dfe6f1;border-radius:12px;cursor:pointer;background:#fff}.swap-option:hover:not(:disabled){background:#edf4ff;border-color:#a9c5fa}.swap-option strong{font-size:14px;color:var(--ink);min-width:0;overflow-wrap:anywhere}.swap-option-meta{font-size:12px;color:#62738c;line-height:1.5;flex:1;min-width:0}
.swap-depart-icon{font-size:27px;color:var(--ink);flex:0 0 30px;text-align:center}.swap-depart-copy{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.swap-depart-copy small{font-size:11px;color:#62738c;line-height:1.5}
.swap-list-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.swap-list-heading h3{font-size:14px;margin:0;white-space:nowrap}.swap-search{position:relative;flex:0 1 205px;margin:0}.swap-search input{width:100%;min-height:36px;padding:8px 30px 8px 12px;border-radius:20px;font-size:12px;background:#f7f9fc}.swap-search>span{position:absolute;right:11px;top:7px;font-size:20px;color:#77859b;pointer-events:none}
#swap-target{display:flex;flex-direction:column;gap:7px;margin:0}#swap-empty{margin:12px 0;text-align:center}.swap-help{font-size:12px;line-height:1.5;color:#62738c;margin:18px 0 0;display:flex;align-items:center;gap:8px}.swap-help>span{font-size:18px;color:#5d87cc}
@media(max-width:450px){#swap{padding:20px}.swap-list-heading{flex-direction:column;align-items:stretch;gap:10px}.swap-search{flex:auto}.swap-option{gap:10px;padding:11px 12px}.swap-option-meta{font-size:11px}.swap-current{gap:12px}}
.compact-games .court-card{display:grid;grid-template-columns:58px minmax(0,1fr) auto;grid-template-rows:auto auto;align-items:center;row-gap:10px;padding:12px 0}.compact-games .court-card .court-head,.compact-games .court-card .actions{display:contents}.compact-games .court-head>div{grid-column:1 / 3;grid-row:1;display:flex;align-items:center;gap:6px;min-width:0;flex-wrap:wrap}.compact-games .court-head>div>span:not(.game-no){display:flex;align-items:center;gap:6px;flex-wrap:wrap}.compact-games .court-head .game-word{display:none}.compact-games .court-head .badge{display:inline-flex;margin-left:4px;vertical-align:middle;font-size:10px;padding:3px 7px}.compact-games .court-card .actions>.primary{grid-column:3;grid-row:1;min-width:84px;min-height:32px;font-size:12px;padding:6px 10px;justify-self:end}.compact-games .court-card .actions>[data-action=start]{background:#e9f3ee;border-color:#c5ddcf;color:#286247}.compact-games .court-card .actions>[data-action=complete]{background:#edf0f5;border-color:#d7dfe9;color:#465571}.compact-games .court-card .actions>.game-delete{grid-column:1;grid-row:2;align-self:center;font-size:11px;gap:3px;padding:4px 0;min-height:32px;z-index:1}.compact-games .game-delete svg{width:15px;height:15px}.compact-games .court-card .teams{grid-column:1 / -1;grid-row:2;margin:0 58px;padding:6px 0;gap:10px;min-width:0}.compact-games .team>button[data-swap]{text-decoration:underline;text-underline-offset:4px;text-decoration-color:#9caac0;text-decoration-thickness:1px}.compact-games .team>button[data-swap]:active{color:var(--blue);text-decoration-color:var(--blue)}
/* MATCHUI056 compact layout restored; later behavior remains unchanged. */
.compact-games .court-card{display:block;border:0;border-bottom:1px solid var(--line);border-radius:0;box-shadow:none;background:transparent;margin:0;padding:8px 0}.compact-games .court-card .court-head{display:flex;align-items:center;justify-content:space-between;padding:4px 0;border:0;font-size:12px}.compact-games .court-head>div{display:flex;align-items:center;gap:6px;width:100%;flex-wrap:nowrap}.compact-games .court-head>div>span:not(.game-no):not(.badge){display:inline;flex:1;min-width:0}.compact-games .court-head .game-word{display:inline}.compact-games .court-head .court-label{font-size:11px}.compact-games .game-no{font-size:14px}.compact-games .court-head .badge{flex:0 0 auto;margin-left:auto;font-size:10px;padding:3px 6px}.compact-games .court-card .teams{display:flex;justify-content:center;margin:0;padding:6px 0;gap:8px;overflow-x:auto;white-space:nowrap}.compact-games .team>button,.compact-games .team>span,.compact-games .team>div{font-size:13px;font-weight:700;padding:2px 0;min-height:0}.compact-games .team>:not(:last-child):after{content:', ';white-space:pre}.compact-games .team>button[data-swap]{text-decoration:none}.compact-games .vs,.compact-games .versus{font-size:11px}.compact-games .court-card .actions{display:flex;gap:6px;padding:4px 0;justify-content:space-between;align-items:stretch}.compact-games .court-card .actions>button,.compact-games .court-card .actions>.primary,.compact-games .court-card .actions>.game-delete{display:flex;align-items:center;justify-content:center;flex:1 1 0;min-width:0;min-height:30px;padding:5px 10px;margin:0;font-size:11px;border:1px solid var(--line);border-radius:7px}.compact-games .court-card .actions>.primary{background:var(--blue);border-color:var(--blue);color:#fff}.compact-games .court-card .actions>.game-delete{background:#fff;color:var(--ink)}.compact-games .game-delete svg{display:none}
.compact-games .team>button,.compact-games .team>span,.compact-games .team>div{font-size:15px}.compact-games .team .player-gender{display:inline;font-size:inherit;font-weight:inherit}.compact-games .team>button[data-swap]{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:#8d9bb0}.compact-games .team>button[data-swap]:disabled{text-decoration:none}
.compact-games .team>button[data-swap],.compact-games .team>button[data-swap]:active{ text-decoration:none }.compact-games .team .player-name{font-size:inherit;font-weight:inherit}.compact-games .team>button[data-swap]:not(:disabled)>.player-name{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:#8d9bb0}.compact-games .team>button[data-swap]:not(:disabled):active>.player-name{text-decoration-color:var(--blue)}
.court-card .team>button[data-swap],.court-card .team>button[data-swap]:active{text-decoration:none}.court-card .team>button[data-swap]:not(:disabled)>.player-name{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:#8d9bb0}.court-card .team>button[data-swap]:not(:disabled):active>.player-name{text-decoration-color:var(--blue)}
.player-gender{display:inline;font-size:calc(1em - 1px);font-weight:500;color:#626B78;text-decoration:none}.court-card .team .player-gender{display:inline;font-size:calc(1em - 3px);font-weight:500;color:#626B78;text-decoration:none}
.court-card .team>button[data-swap]:not(:disabled)>.player-name{color:#2F5FB5}
/* Shared game action palette for compact and detailed views. */
#workspace .court-card .actions>button.primary,html.compact-games body .court-card .actions>button.primary{background:#EAF1FD;border-color:#EAF1FD;color:#2F5FB5}
#workspace .court-card .actions>button.game-delete,html.compact-games body .court-card .actions>button.game-delete{background:#F3F4F6;border:1px solid #F3F4F6;color:#626B78}
.next-game-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:16px;margin:16px 0}.next-game-row>.hint{min-width:0;margin:0}.next-game-row>[data-action=propose]{width:100%;min-width:0;min-height:48px;font-size:15px}
@media(max-width:700px){.next-game-row{display:block}.next-game-row>.hint:empty{display:none}.next-game-row>[data-action=propose]{width:auto}}
/* Player replacement uses the same layout on every screen. */
  #swap{max-width:720px;font-size:17px}
  #swap h2{font-size:21px}#swap-label{font-size:14px}
  #swap .swap-current{font-size:13px}#swap .swap-current strong{font-size:17px}#swap .swap-current-tag{font-size:12px}
  #swap .swap-option strong,#swap .swap-list-heading h3{font-size:15px}
  #swap .swap-option-meta,#swap .swap-search input,#swap .swap-help,#swap #swap-empty{font-size:13px}
  #swap .swap-depart-copy strong{font-size:15px}#swap .swap-depart-copy small{font-size:12px}
  #swap-target.swap-gender-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}
  .swap-gender-column{display:flex;flex-direction:column;gap:7px;min-width:0}
  .swap-gender-column h4{margin:0 0 5px;padding:8px;text-align:center;border-radius:8px;background:#f0f5ff;color:var(--ink);font-size:14px}
  #swap .swap-gender-column .swap-option{flex-wrap:wrap;gap:4px 10px;padding:12px}
  .swap-group-divider{width:100%;border:0;border-top:1px solid #cad6e8;margin:7px 0}
.court-card:has(.badge.running) .vs{color:var(--green);font-weight:600}
#workspace .roster .section-title{grid-template-columns:minmax(0,1fr) auto}
#workspace .roster .section-title .roster-actions{grid-column:2;grid-row:1 / span 2;display:flex;align-items:center;gap:6px;margin:0}
#workspace .roster-actions button{white-space:nowrap;padding:8px 10px;min-height:38px;font-size:12px}
@media(max-width:600px){#workspace .roster .section-title{column-gap:6px}#workspace .roster .section-title h2{font-size:14px}#workspace .roster .section-title>span{font-size:10px;white-space:normal}#workspace .roster-actions button{font-size:11px;padding:7px 6px}}
.swap-initial-filters{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:6px;margin:0 0 12px}
#swap .swap-initial-filters button{width:auto;min-height:32px;padding:6px 10px;border:1px solid #d5dff1;border-radius:20px;background:#fff;color:#71839e;font-size:13px;white-space:nowrap}
#swap .swap-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 16px}
#swap .swap-summary .swap-current{min-width:0;flex-direction:column;align-items:flex-start;justify-content:center;gap:5px;padding:12px;font-size:12px}
#swap .swap-summary .swap-current strong{max-width:100%;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#swap .swap-summary .swap-departure{min-width:0;border:0;padding:0;margin:0}
#swap .swap-summary #depart{height:100%;padding:10px;gap:6px}
#swap .swap-summary .swap-depart-icon{font-size:20px;flex-basis:20px}
#swap .swap-summary .swap-depart-copy strong{font-size:13px;white-space:nowrap}
#swap .swap-summary .swap-depart-copy small{font-size:11px;white-space:nowrap}
@media(max-width:360px){#swap .swap-summary #depart{padding:8px;gap:4px}#swap .swap-summary .swap-depart-icon{display:none}#swap .swap-summary .swap-depart-copy strong{font-size:12px}}
#swap .swap-initial-filters button[aria-pressed=true]{background:#376ee8;border-color:#376ee8;color:#fff}
@media(max-width:700px){#swap-target.swap-gender-columns{gap:10px}#swap .swap-gender-column .swap-option{padding:10px;overflow-wrap:anywhere}}
/* Tablet roster and game readability. */
@media(min-width:701px) and (max-width:1366px){
  #workspace .skill-group h4{font-size:14px}
  #workspace .player-chip .person strong{font-size:15px}
  #workspace .player-chip .person small{font-size:12px}
  #workspace .player-chip .player-gender{font-size:14px}
  #workspace .add-person{font-size:15px}
  #workspace #group-matching-hint summary,#workspace #group-matching-hint p{font-size:14px}
  #workspace #tab-games>.hint,#workspace .next-game-row>.hint{font-size:14px}
  #workspace .draft-controls strong{font-size:18px}
  #workspace .draft-controls p{font-size:14px}
  #workspace .cycle-heading strong{font-size:19px}
  #workspace .cycle-heading small{font-size:14px}
  #workspace .court-card .court-head{font-size:14px}
  #workspace .court-card .game-no{font-size:16px}
  #workspace .court-card .court-label{font-size:13px}
  #workspace .court-card .court-head .badge{font-size:12px}
  #workspace .court-card .actions>button{font-size:13px}
  .compact-games #workspace .court-card .teams{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:12px;overflow:visible;white-space:normal;padding:12px 0}
  .compact-games #workspace .court-card .team{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-width:0}
  .compact-games #workspace .court-card .team>button,.compact-games #workspace .court-card .team>span,.compact-games #workspace .court-card .team>div{display:block;min-width:0;width:100%;padding:12px 6px;min-height:48px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:18px;text-align:center;overflow-wrap:anywhere}
  .compact-games #workspace .court-card .team>:not(:last-child):after{content:none}
  .compact-games #workspace .court-card .team>button[data-swap]:not(:disabled)>.player-name{text-decoration:none}
  .compact-games #workspace .court-card .team .player-gender{font-size:14px}
  .compact-games #workspace .court-card .vs{font-size:13px;align-self:center}
}
/* Center the full delete label in detailed game cards as well. */
#workspace .court-card .actions>.game-delete{justify-content:center;text-align:center}
/* Mobile readability for participant status summaries and compact game headers. */
@media(max-width:700px){.draft-controls strong{font-size:17px}.draft-controls p{font-size:13px}.compact-games .court-card .court-head{font-size:13px}.compact-games .game-no{font-size:15px}.compact-games .court-head .court-label{font-size:12px}.compact-games .court-head .badge{font-size:11px}}
