/* Compact touch controls: two columns on phones, more on tablets. */
html body .coach-squad-grid,html body #coachTeamList{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(min(100%,145px),1fr));gap:6px!important;align-items:stretch;margin:10px 0}
html body .coach-squad-card{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:3px;width:100%;min-width:0;min-height:64px!important;margin:0!important;padding:8px!important;font:13px/1.3 system-ui!important;text-align:left;white-space:normal;overflow-wrap:anywhere;border:1px solid #5a768a;border-radius:10px;touch-action:manipulation}
.coach-squad-card strong{font-size:13px}.coach-squad-card small{font-size:11px;color:#bed0de}.coach-squad-card span{font-size:11px}
html body .coach-squad-card[aria-pressed=true]{background:#155e4b!important;border:2px solid #7de4b6!important;color:#fff!important}.coach-squad-card[aria-pressed=true] small{color:#dcfff0}
html body .coach-squad-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,145px),1fr));gap:8px}.coach-squad-filters label{font-size:12px}
html body .coach-squad-filters input,html body .coach-squad-filters select{display:block;width:100%;box-sizing:border-box;min-height:44px;font-size:16px!important;margin:4px 0}
.coach-squad-selected-filter{display:flex;align-items:center;gap:7px;min-height:44px}
#coachMatchSelectedCount,#coachRosterContext{font-size:13px;font-weight:700;color:#a8e6d1}
html body .coach-squad-modal{position:fixed;inset:0;z-index:2147483646;background:#06131ef5;overflow-y:auto;overscroll-behavior:contain;padding:12px;box-sizing:border-box;touch-action:pan-y}
html body .coach-squad-modal[hidden]{display:none!important}
.coach-squad-modal>form,.coach-squad-modal>section{width:min(100%,660px);margin:auto;padding:14px;box-sizing:border-box;border:1px solid #7995aa;background:#142a3a;border-radius:16px;color:#fff}
.coach-squad-modal header{display:flex;justify-content:space-between;align-items:center}.coach-squad-modal label{display:block;margin:10px 0;font-size:14px}
html body .coach-squad-modal input,html body .coach-squad-modal select{display:block;width:100%;box-sizing:border-box;min-height:46px;font-size:16px!important;line-height:1.4;background:#fff;color:#102030;-webkit-text-fill-color:#102030;padding:9px;border-radius:8px}
html body .coach-squad-modal button{min-height:44px;padding:8px;font-size:13px;margin:4px}
.coach-position-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,130px),1fr));gap:5px}.coach-position-grid button{margin:0!important;overflow-wrap:anywhere;white-space:normal}
#coachSpecialTeamsEditor{padding:10px;border:1px solid #4d7188;border-radius:10px;margin:12px 0}#coachSpecialTeamsEditor details{padding:8px 0;border-bottom:1px solid #496074}#coachSpecialTeamsEditor select{width:100%;min-height:44px;font-size:16px}
#coachPlayerFormNotice:not(:empty){padding:8px;border:1px solid #f5b36e;color:#ffe1bf}
@media(min-width:700px){html body .coach-squad-grid,html body #coachTeamList{grid-template-columns:repeat(auto-fill,minmax(155px,1fr))}}
/* The visible visual viewport shrinks around the keyboard; menus remain scrollable. */
html.coach-editing #coach212Shade,html.coach-editing #coach294panel,html.coach-editing #coachTeams,html.coach-editing #coachAccountDialog{top:var(--coach-visible-top,0px)!important;bottom:auto!important;height:var(--coach-visible-height,100dvh)!important;box-sizing:border-box;align-items:flex-start}
html.coach-editing #coach212Sheet,html.coach-editing #coachTeams>section,html.coach-editing #coachAccountDialog>section{max-height:calc(var(--coach-visible-height,100dvh) - 24px)!important;overflow-y:auto}
/* Destination and player chooser: no native player wheel, 44px touch targets. */
html body .roster-change,html body .roster-move{min-height:44px;padding:8px;font-size:13px;touch-action:manipulation}
html body .coach-roster-chooser{position:fixed;inset:var(--coach-roster-safe-top,0px) 0 0;z-index:2147483646;display:flex;flex-direction:column;box-sizing:border-box;background:#101d2d;color:#fff;padding:max(8px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));overscroll-behavior:contain}
.coach-roster-chooser header{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-shrink:0}.coach-roster-chooser h2{font-size:20px;margin:4px 0}.coach-roster-chooser h3{font-size:16px;margin:6px 0 12px}.coach-roster-chooser>p{font-size:13px;margin:5px 0}.coach-roster-chooser nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;flex-shrink:0}
html body .coach-roster-chooser button{min-height:44px;margin:0;padding:9px;white-space:normal;overflow-wrap:anywhere;min-width:0;font-size:14px;touch-action:manipulation}
.coach-roster-chooser [aria-pressed=true]{background:#155e4b;border:2px solid #7de4b6}.coach-roster-chooser-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:8px 0 20px;touch-action:pan-y}.coach-roster-chooser-body p{font-size:14px}.coach-roster-chooser-body input{width:100%;box-sizing:border-box;min-height:46px;font-size:16px;margin:5px 0 8px;padding:9px}.coach-roster-chooser-body label{display:block;margin-top:12px}
/* 30.26 responsive compact player cards: five per row when readable, fewer on narrow phones. */
.coach-roster-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.coach-roster-choice-grid button{display:flex;flex-direction:column;align-items:center;text-align:center;justify-content:center;gap:3px;padding:7px 3px!important;min-width:0;min-height:68px!important;font-size:13px!important;line-height:1.3;overflow-wrap:anywhere}
.coach-roster-choice-grid strong{display:block;width:100%;font-size:13px;line-height:1.3;overflow-wrap:anywhere}
.coach-roster-choice-grid small{font-size:11px;color:#c4deed;line-height:1.2;overflow-wrap:anywhere}
@media(min-width:350px){.coach-roster-choice-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:480px){.coach-roster-choice-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(min-width:600px){.coach-roster-choice-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(min-width:700px){.coach-roster-choice-grid{gap:8px}.coach-roster-choice-grid button{font-size:13px!important;padding:10px 6px!important}.coach-roster-choice-grid strong{font-size:13px}.coach-roster-choice-grid small{font-size:11px}}.coach-roster-chooser button:focus-visible,.coach-roster-chooser input:focus-visible{outline:3px solid #ffd369;outline-offset:-3px}#rosterChooserNotice:not(:empty){color:#ffe1bf;border:1px solid #f5b36e;padding:6px}

@media(max-height:450px){.coach-roster-chooser nav{grid-template-columns:repeat(6,minmax(0,1fr))}.coach-roster-chooser>p{margin:2px 0}.coach-roster-chooser h2{font-size:17px}}
html.coach-editing .coach-roster-chooser{top:calc(var(--coach-visible-top,0px) + var(--coach-roster-safe-top,0px));bottom:auto;height:calc(var(--coach-visible-height,100dvh) - var(--coach-roster-safe-top,0px))}
/* In landscape keep the first player row visible below the search controls. */
@media(max-height:450px){
 .coach-roster-chooser-body h3,.coach-roster-chooser-body>p{display:none}
 .coach-roster-chooser-body>button{float:right;margin-left:8px!important}
 .coach-roster-chooser-body label{margin-top:0;font-size:12px}
 .coach-roster-chooser-body input{width:calc(100% - 150px);margin:3px 0;min-height:44px}
 .coach-roster-choice-grid{clear:both;margin-top:6px}
}
/* Short screens prioritize player cards; the selected card still identifies the occupant. */
@media(max-height:650px){
 .coach-roster-chooser-body>p:first-of-type{display:none}
 html body .coach-roster-chooser nav button{font-size:13px;padding:6px}
 .coach-roster-chooser-body label{margin-top:6px}
}
