.roster-row { grid-template-columns: 42px minmax(140px,1fr) minmax(145px,.75fr) minmax(110px,.55fr) minmax(110px,.55fr) auto; }
.roster-birth-date { width:100%; min-height:50px; border:1px solid var(--line); border-radius:12px; background:#fff; padding:0 12px; color:var(--ink); outline:none; }
.roster-birth-date:focus { border-color:var(--green); box-shadow:0 0 0 3px rgba(37,129,83,.13); }
.schedule-upload-block b { display:inline-block; margin-left:5px; border-radius:999px; padding:2px 7px; background:#a4321e; color:#fff; font-size:10px; }
.schedule-upload-control { display:flex; align-items:center; justify-content:space-between; gap:12px; border:1px dashed var(--green); border-radius:14px; padding:15px; background:#f4fbf6; cursor:pointer; }
.schedule-upload-control span { font-weight:900; color:var(--green); }
.schedule-upload-control small { color:var(--muted); overflow-wrap:anywhere; text-align:right; }
#schedule-image { position:absolute; width:1px; height:1px; overflow:hidden; opacity:0; }
#schedule-image-preview { width:min(100%,560px); max-height:420px; object-fit:contain; border:1px solid var(--line); border-radius:14px; background:#fff; }
.application-consent-list { display:grid; gap:9px; border:1px solid var(--line); border-radius:14px; padding:16px; background:#fff; }
.application-consent-list legend { padding:0 7px; font-weight:900; }
@media(max-width:760px){.roster-row{grid-template-columns:38px 1fr}.roster-name,.roster-birth-date,.roster-grade,.roster-division,.roster-remove{grid-column:2}.schedule-upload-control{align-items:flex-start;flex-direction:column}.schedule-upload-control small{text-align:left}}

.application-roster li .player-birth-date { background:#fff4db; color:#765400; }
.application-roster-head button:disabled { opacity:.5; cursor:not-allowed; }
.application-editor-row { grid-template-columns:28px minmax(0,1fr) 130px 100px 110px auto; }
.application-schedule-dialog { width:min(980px,calc(100vw - 28px)); max-height:calc(100vh - 34px); border:0; border-radius:18px; padding:20px; box-shadow:0 28px 90px #061b2c66; }
.application-schedule-dialog::backdrop { background:#061b2ccc; }
.application-schedule-dialog header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.application-schedule-dialog header small { color:var(--blue); font:800 10px monospace; }
.application-schedule-dialog h2 { margin:5px 0 14px; }
.application-schedule-dialog button { border:0; background:transparent; color:var(--navy); font-size:24px; cursor:pointer; }
.application-schedule-dialog output { display:block; min-height:20px; color:var(--muted); }
.application-schedule-dialog img { width:100%; max-height:calc(100vh - 160px); object-fit:contain; border-radius:12px; background:#f4f7f9; }
@media(max-width:700px){.application-editor-row{grid-template-columns:24px minmax(0,1fr)}.application-editor-row label,.application-editor-row button{grid-column:2}}
