/* Shared size and spacing rules; touch layouts through 767px. */
:root{--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--radius:16px;font-size:16px}
body{line-height:1.5;-webkit-text-size-adjust:100%;text-size-adjust:100%}
main{padding:24px 20px 40px}main>h1{font-size:30px;line-height:1.15;letter-spacing:-1px;margin:0 0 8px}
h2{font-size:21px;line-height:1.3;margin:0 0 12px}h3{font-size:18px;line-height:1.35;margin:20px 0 12px}p{margin:0 0 12px}p:last-child{margin-bottom:0}
.page-title{font-size:25px;margin:24px 0 16px}.card{padding:20px;margin:16px 0;border-radius:var(--radius)}.row{gap:12px}.grow{min-width:0}
.tiny,.delegate-tip,.number-help,.delegate-summary-sub,.status{font-size:13px;line-height:1.5}
button,input,select{font-family:inherit;line-height:1.35;border-radius:10px}button{min-height:48px;min-width:44px;padding:11px 16px;font-size:15px;font-weight:650;white-space:normal}
input:not([type=checkbox]),select{min-height:48px;min-width:0;padding:11px 12px;font-size:16px}
input[type=checkbox]{width:22px;height:22px;min-width:22px;min-height:22px;padding:0;margin:0;accent-color:#b7f26d;flex-shrink:0}
label.row,.payment-switch label,.manual-form .checkline{min-height:44px;align-items:center;gap:10px}
input[type=file]{display:block;width:100%;max-width:100%;font-size:14px;padding:6px;overflow:hidden}
input[type=file]::file-selector-button{font:inherit;min-height:36px;padding:7px 10px;margin-right:10px;border:0;border-radius:6px;color:#f1f7f2;background:#3c5443}
.password-wrap{min-width:0}.password-wrap button{min-height:44px;min-width:56px;padding:8px;font-size:14px}.link-button{padding:10px 0}
.layout{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.layout>.card{min-width:0}
.welcome-card{padding:24px;border-radius:var(--radius)}.welcome-card h3{font-size:27px;line-height:1.2;overflow-wrap:anywhere}.welcome-card p{font-size:15px}.home-quick{gap:12px}.home-quick article{padding:16px;border-radius:var(--radius)}.home-quick strong{font-size:28px;line-height:1.2;margin-bottom:8px}.home-quick span{font-size:14px}
.avatar{width:40px;height:40px;font-size:14px}.avatar.large{width:72px;height:72px;font-size:24px}.team-brand{gap:8px;font-size:15px;font-weight:650}
#who{font-size:14px;overflow-wrap:anywhere}#logout{flex-shrink:0}#teamTitle{font-size:21px;overflow-wrap:anywhere;margin:0}#inviteCode{max-width:100%;overflow-wrap:anywhere;font-size:14px}#teamSelect{max-width:100%;min-width:0}
.image-editor{gap:12px}.image-feedback{margin:0}.positions-row{gap:12px}.positions-row label,.manual-form label{font-size:14px;gap:8px}.positions-row label{min-width:0}.manual-form{gap:16px}
.number-editor{gap:8px}.number-editor input{width:76px;padding:10px}.number-editor button{font-size:14px;padding:10px 14px}.number-editor label{font-size:13px}.roster-person{gap:8px;padding:12px 0}.roster-person>.avatar{margin:0}.roster-person>span:not(.avatar){min-width:0;overflow-wrap:anywhere}
.match{min-height:60px;padding:12px;margin:8px 0;overflow-wrap:anywhere}.match .avatar{margin-right:8px}.match-kind{font-size:12px}.delegate-person{padding:12px;flex-wrap:wrap}.delegate-person>span{min-width:0;overflow-wrap:anywhere}.delegate-toolbar{gap:8px}.delegate-toolbar button{font-size:14px;min-height:44px;padding:10px 12px}.delegate-metric{padding:16px}.delegate-metric strong{font-size:26px}.delegate-metric small{font-size:13px}.delegate-stats{gap:12px}
.payment-switch{padding:12px}.payment-switch p{margin:8px 0 0}.payment-switch label{flex-wrap:nowrap}.payment-switch label strong{min-width:0}
#lineupPanel>div.row:first-child{align-items:flex-start}#lineupPanel h2{margin-bottom:8px}.lineup-chip{font-size:12px;padding:6px 10px}.pitch{border-width:3px;margin:16px auto;min-height:520px}.pitch:before{inset:9px}#pitchSlots{inset:16px 8px;gap:8px}.pitch-row{gap:4px}.pitch-position{gap:4px;min-width:0}.pitch-position label{font-size:11px;line-height:1.2}.pitch-position select[data-lineup-slot]{display:none}
.pitch-choose{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;width:100%;min-width:44px;min-height:96px;padding:3px 0;border:1px solid transparent;background:transparent;color:white;border-radius:10px;cursor:pointer}.pitch-choose:hover,.pitch-choose:focus-visible{background:#ffffff16;border-color:#c7fb84}.jersey-token{width:56px;height:56px;max-width:100%}.jersey-number{font-size:17px}.jersey-name,.lineup-viewer .jersey-name{font-size:12px;line-height:1.2;max-height:30px;min-height:14px;font-weight:700;max-width:100%}.pitch-choose .jersey-name{font-size:11px}.lineup-viewer .pitch{min-height:440px}.lineup-viewer .pitch-position{gap:6px}
#lineupBench{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:14px;padding:12px;line-height:1.6}#lineupAvailable{font-size:13px}#jerseyPreview{width:96px;height:96px}
.player-dialog{width:min(440px,calc(100% - 24px));max-height:calc(100dvh - 32px);padding:20px;border:1px solid #4a6652;border-radius:20px;background:#17211c;color:#f1f7f2;overflow:auto;box-shadow:0 16px 60px #0008}.player-dialog::backdrop{background:#000a}.player-dialog h2{font-size:22px}.player-dialog label{display:block;font-size:14px;margin-bottom:8px}.player-dialog select{width:100%;margin-bottom:20px}.player-dialog .row{justify-content:flex-end}.player-dialog .row button{flex:1}.player-dialog p{font-size:14px;color:#aec1b2}
@media(max-width:767px){
 main{padding:16px 12px calc(100px + env(safe-area-inset-bottom,0px));max-width:620px}main>h1{font-size:28px}main>p.muted{font-size:14px;margin-bottom:16px}.page-title{font-size:24px;margin:20px 0 12px}
 .card{padding:16px;margin:12px 0}.layout{grid-template-columns:minmax(0,1fr);gap:0}.layout>.card{margin:0 0 12px}
 .bottom-nav{position:fixed;top:auto;bottom:0;left:0;right:0;z-index:90;margin:0;border-radius:16px 16px 0 0;padding:6px 4px calc(6px + env(safe-area-inset-bottom,0px));gap:2px;border-bottom:0}.bottom-nav button{min-height:56px;min-width:0;font-size:21px;padding:6px 1px;gap:3px;line-height:1.15}.bottom-nav button span{font-size:11px;line-height:1.25;white-space:nowrap;letter-spacing:-.2px}.bottom-nav button.active{border-radius:10px}
 html{scroll-padding-bottom:calc(92px + env(safe-area-inset-bottom,0px))}
 .welcome-card{padding:20px}.welcome-card h3{font-size:25px}.welcome-card .primary{width:100%;margin-top:4px}.home-quick article{padding:16px 12px}.home-quick strong{font-size:28px}
 #setup>.row,#auth>.row,#passwordRecovery>.row,#onboard>.row{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}#setup input,#auth input,#passwordRecovery input,#onboard input{width:100%}#onboard>.row>label{margin-bottom:-8px}
 .password-wrap{width:100%}#auth>.row>button,#passwordRecovery>.row>button,#onboard>.row>button{width:100%}
 #teamSelect{width:100%}#saveFootballFormat,#loadFixture{width:100%}.positions-row{display:grid;grid-template-columns:minmax(0,1fr)}.positions-row label{width:100%;min-width:0}.manual-form{grid-template-columns:minmax(0,1fr)}.manual-form .full{grid-column:1}
 .image-editor>.row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.image-editor>.row button{padding:10px 8px}
 #jerseyPanel>.row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}#jerseyPanel>.row button{padding:10px 8px;font-size:14px}
 .number-editor{width:100%;justify-content:flex-start;flex-wrap:nowrap;display:grid;grid-template-columns:minmax(0,1fr) 72px 94px}.number-editor label{line-height:1.3}.number-editor input{width:100%}.number-editor button{width:100%;padding:10px 8px}
 .delegate-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.delegate-metric{padding:12px}.delegate-metric strong{font-size:24px}.delegate-toolbar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.delegate-section.row>button,#share,#delegateRefresh{width:100%}#rsvpControls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}#rsvpControls button{padding:10px 4px;font-size:14px}
 #games{max-height:360px;overscroll-behavior-y:contain}#pushPanel>.row{display:grid;grid-template-columns:minmax(0,1fr)}
 #lineupPanel>.row:nth-child(2){display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 12px}#lineupPanel>.row:nth-child(2)>button{grid-column:1/-1;width:100%}#lineupPanel>div.row:first-child>.grow{flex-basis:100%}
 .pitch,.lineup-viewer .pitch{width:100%;max-width:460px;aspect-ratio:auto;height:520px;min-height:520px}.lineup-viewer .pitch{height:500px;min-height:500px}.jersey-token{width:52px;height:52px}.pitch-choose{min-height:96px}.pitch-choose .jersey-name{font-size:11px}.jersey-number{font-size:16px}.lineup-chip{align-self:flex-start}
}
@media(max-width:359px){.card{padding:14px}.home-quick{gap:8px}.home-quick article{padding:12px 10px}.home-quick span{font-size:13px}.jersey-token{width:44px;height:46px}.jersey-number{font-size:15px}.pitch-choose .jersey-name{font-size:10px}.player-dialog{padding:16px}.bottom-nav button span{font-size:10px}}
#emailReminders+span{min-width:0;flex:1}label.row:has(#emailReminders){flex-wrap:nowrap;align-items:flex-start}#emailReminders{margin-top:2px}

/* Native date/time inputs must fit their grid cell, including WebKit on iOS. */
.manual-form{min-width:0;max-width:100%}
.manual-form>label{min-width:0;max-width:100%}
.manual-form input:not([type=checkbox]),.manual-form select{box-sizing:border-box;width:100%;min-width:0;max-width:100%}
.manual-form input[type=date],.manual-form input[type=time]{-webkit-appearance:none;appearance:none;display:block;box-sizing:border-box;inline-size:100%;min-inline-size:0;max-inline-size:100%;height:48px;min-height:48px;overflow:hidden;text-align:left}
.manual-form input[type=date]::-webkit-datetime-edit,.manual-form input[type=time]::-webkit-datetime-edit{min-width:0;padding:0}
.manual-form input[type=date]::-webkit-date-and-time-value,.manual-form input[type=time]::-webkit-date-and-time-value{min-width:0;min-height:1.35em;text-align:left}

@media(max-width:767px){
 .card{margin:16px 0;padding:18px}.layout>.card{margin-bottom:16px}.image-editor{gap:16px}
 .manual-form,.stats-form-grid{gap:18px}.manual-form label,.stats-form-grid label,.positions-row label{gap:10px}
 .team-stats-grid,.stats-player-body .team-stats-grid{gap:12px}.team-stats-grid article,.stats-player-body article{padding:16px}
 .stats-player summary{min-height:76px;gap:12px;padding:16px 0}.stats-player-body{padding:8px 0 20px}
 .number-editor{grid-template-columns:80px minmax(0,1fr);gap:8px 12px;margin-top:4px}.number-editor label{grid-column:1/-1}.number-editor input,.number-editor button{min-height:48px}
 .roster-person{padding:16px 0;gap:12px}.delegate-person{gap:12px;padding:14px}.delegate-list{gap:10px}
 .delegate-section.row>button{margin-top:4px}.delegate-toolbar{gap:10px}.season-toolbar{gap:16px}.season-toolbar label{min-width:0;width:100%}.season-toolbar button{width:100%}
 .stats-form-help{margin:20px 0 16px}.payment-switch{margin:18px 0;padding:16px}.positions-row{gap:18px}
 #manualMatchPanel>summary{min-height:48px;cursor:pointer;font-size:20px;font-weight:750;align-content:center}#manualMatchPanel[open]>summary{margin-bottom:16px}
}
@media(max-width:430px){.image-editor>.row,#jerseyPanel>.row{grid-template-columns:minmax(0,1fr);gap:12px}.image-editor>.row button,#jerseyPanel>.row button{width:100%}}
@media(max-width:359px){.card{padding:16px}.team-stats-grid article,.stats-player-body article{padding:14px}}

.password-wrap>button{display:inline-flex;align-items:center;justify-content:center;min-width:48px;min-height:48px}.password-wrap>button svg{display:block;pointer-events:none}

#matchEditor>summary{min-height:48px;align-content:center;cursor:pointer;font-weight:700}#matchEditForm{margin-top:18px}#responseWindow{line-height:1.7;padding:12px;border:1px solid #718477;border-radius:10px}#matchEditStatus,#responseStatus,#paymentConfigStatus{margin-top:12px}#responseStatus:empty,#paymentConfigStatus:empty{display:none}

.remove-player{color:#ffb9b9;border-color:#906060;margin-left:auto}.calendar-open{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:10px 16px;box-sizing:border-box;border:1px solid #728575;border-radius:10px;color:inherit}#calendarLinkBox{margin-top:20px}#calendarURL{box-sizing:border-box;width:100%;min-width:0;font-size:16px}#calendarStatus,#rosterStatus{margin-top:12px}#rosterStatus:empty,#calendarStatus:empty{display:none}@media(max-width:767px){.remove-player{width:100%;margin-top:8px}#calendarLinkBox .row>*{width:100%}}

.media-editor-row{display:flex;align-items:center;gap:16px}.media-choose{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:96px;min-height:96px;padding:8px;border:1px solid #536d59;border-radius:16px;cursor:pointer}.media-choose:focus-within{outline:3px solid #d3fb71;outline-offset:3px}.media-choose .avatar{margin:0}.media-file{position:absolute!important;width:1px!important;height:1px!important;min-width:0!important;min-height:0!important;padding:0!important;opacity:0;clip-path:inset(50%);overflow:hidden}.media-camera{position:absolute;bottom:0;right:0;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#d2fb70;color:#18251b}.media-trash{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;min-height:44px;padding:10px;border:1px solid #536d59;background:#213729;color:#dfebe1;border-radius:50%}.media-trash[hidden]{display:none}.media-choose #jerseyPreview{display:block;width:96px;height:96px;margin:0}.media-choose #jerseyPreview>*{width:100%;height:100%;display:block;object-fit:contain}.image-editor[aria-busy=true] .media-choose{opacity:.6;cursor:wait}.account-team-current,.team-form-fields{display:grid;gap:12px}.team-form-fields label{display:grid;gap:8px}.team-form-fields input,.team-form-fields select{width:100%;min-width:0;box-sizing:border-box}.account-team-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}.account-team-current select{width:100%;min-width:0}#accountTeamFormHost>.card{margin-top:20px;border:1px solid #536d59}#accountTeamRole{margin-top:8px}@media(max-width:430px){.account-team-actions{grid-template-columns:1fr}}

.match-map-link{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;max-width:100%;box-sizing:border-box;padding:10px 16px;border-radius:12px;background:#d2fb70;color:#18251b;text-decoration:none;font-weight:700;margin:0 0 12px;overflow-wrap:anywhere}.match-map-link:focus-visible{outline:3px solid #fff;outline-offset:3px}

.app-brand{display:flex;align-items:center;gap:12px}.app-brand img{flex:0 0 48px;border-radius:12px}.app-brand .brand-name{color:#f2fff5}.app-brand .brand-name span{color:#b7f26d}.welcome-card{border:1px solid #426149;background:linear-gradient(135deg,#243b2b,#15251c)}.welcome-card h3{margin:14px 0 12px}.home-venue{margin-bottom:12px;overflow-wrap:anywhere}.home-response{padding:12px 14px;border:1px solid #526c57;border-radius:12px;background:#0b1511;color:#eef9ee;font-weight:600;line-height:1.5}.home-response:empty{display:none}.home-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}.home-actions button{width:100%;margin:0!important;min-height:48px}.welcome-card .map-address-notice{font-size:13px;line-height:1.5;color:#c2d2c5;max-width:48ch}.welcome-card #homeMap .match-map-link{background:transparent;color:#d2fb70;border:1px solid #6c895e;margin:0}.welcome-card .eyebrow{color:#d2fb70;font-size:12px;letter-spacing:.08em;line-height:1.5}.home-quick{margin-top:16px}@media(max-width:430px){.home-actions{grid-template-columns:1fr}.app-brand{gap:10px}.app-brand img{width:44px;height:44px;flex-basis:44px}.welcome-card h3{font-size:25px;line-height:1.25}.home-response{font-size:14px}}

.app-brand .brand-name{font-style:italic;letter-spacing:-1.2px;font-weight:850}.app-brand img{object-fit:contain}

.delegate-transfer-field{display:grid;gap:8px;margin-top:16px}.delegate-transfer-field select{width:100%;min-width:0}#delegateTransferPanel p{line-height:1.5}#delegateTransferButton{min-height:48px;max-width:100%}@media(max-width:430px){#delegateTransferButton{width:100%}}

.payment-amount-form{display:grid;gap:12px;margin:16px 0;padding:16px;border:1px solid #536d59;border-radius:12px}.payment-amount-form label{display:grid;gap:8px}.payment-amount-form input{min-width:0;width:100%}.payment-amount-form p{margin:0}.payment-amount-summary{padding:12px;border-radius:10px;background:#25382c;font-weight:650;overflow-wrap:anywhere}.payment-amount-form button{min-height:48px}

.calendar-file-label,.calendar-review-row label{display:grid;gap:8px;margin:12px 0}.calendar-file-label input,.calendar-file-label select,#calendarExtractedText,.calendar-review-row input{width:100%;min-width:0;box-sizing:border-box}#calendarImportFile{padding:10px;font-size:14px}#calendarExtractedText{display:block;font:inherit;margin:12px 0;background:#25382c;color:#fff;border:1px solid #536d59;border-radius:10px;padding:12px}.calendar-review-row{display:grid;grid-template-columns:1fr 1fr;gap:0 12px;border:1px solid #536d59;border-radius:12px;padding:12px;margin:16px 0;min-width:0}.calendar-review-row legend{font-weight:700;padding:0 6px}.calendar-review-row button{grid-column:1/-1;min-height:44px}#calendarImportConfirm,#calendarReadText{min-height:48px;margin-top:12px}#calendarImportStatus{overflow-wrap:anywhere;line-height:1.5}@media(max-width:430px){.calendar-review-row{grid-template-columns:1fr}#calendarImportConfirm{width:100%}}

.calendar-review-entry{border:1px solid #536d59;border-radius:12px;margin:12px 0;padding:12px;min-width:0}.calendar-review-entry>summary{cursor:pointer;line-height:1.5;font-weight:650;overflow-wrap:anywhere}.calendar-review-entry .calendar-review-row{border:0;padding:0;margin-bottom:0}

#customFormationForm label{display:grid;gap:8px}#customFormationInput{width:100%;min-width:0;font-size:16px}#customFormationHint,#customFormationError{line-height:1.5}#customFormationButton{min-height:44px}

.pitch.pitch-extended{height:660px;min-height:660px;aspect-ratio:auto}.lineup-viewer .pitch.pitch-extended{height:620px;min-height:620px}

.calendar-mobile-help{margin-top:20px;border-top:1px solid #536d59;padding-top:16px}.calendar-mobile-help p,.calendar-mobile-help li{line-height:1.6;overflow-wrap:anywhere}.calendar-mobile-help details{border:1px solid #536d59;border-radius:10px;margin:12px 0;padding:12px}.calendar-mobile-help summary{cursor:pointer;font-weight:650;min-height:28px}.calendar-mobile-help ol{padding-left:22px}.calendar-mobile-help li+li{margin-top:12px}.calendar-mobile-help a{color:#c7fb84}.calendar-open{white-space:normal;text-align:center;overflow-wrap:anywhere;max-width:100%;box-sizing:border-box}

.team-context{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.team-context>div{display:grid;gap:4px;min-width:0;flex:1}.team-context strong{overflow-wrap:anywhere;font-size:20px}.team-context label{display:grid;gap:5px;max-width:100%;font-size:12px}.team-context select{max-width:100%;width:230px}.team-context p{width:100%;margin:0}.stats-view-tabs{display:flex;gap:8px;margin-top:12px}.stats-view-tabs button{flex:1;min-height:44px}.stats-view-tabs [aria-pressed="true"]{background:#b7f26d;color:#10200e;font-weight:700}.stats-view-hidden{display:none!important}@media(max-width:480px){.team-context label,.team-context select{width:100%}}

.lineup-share-dialog{width:min(94vw,560px);max-height:92dvh;overflow:auto;background:#17211c;color:#f1f7f2;border:1px solid #597460;border-radius:16px;padding:18px}.lineup-share-dialog::backdrop{background:#000b}.lineup-share-dialog img{display:block;width:100%;height:auto;max-height:54dvh;object-fit:contain}.lineup-share-dialog p{white-space:pre-line;overflow-wrap:anywhere}.lineup-share-dialog button{min-height:44px}
