#openMobileRoster{display:block;margin:6px 0 12px;padding:8px 0;color:#a72130}
#mobileRosterDialog{box-sizing:border-box;width:min(620px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:16px;border:1px solid #e4dddd;border-radius:12px;color:#242424;background:white;overflow:auto}
#mobileRosterDialog::backdrop{background:#0006}
#mobileRosterDialog header,#mobileRosterDialog footer,#rosterPages{display:flex;align-items:center;justify-content:space-between;gap:10px}
#mobileRosterDialog h2{font-size:18px;margin:0}
#mobileRosterDialog p,#rosterStatus{font-size:13px;line-height:1.5;margin:10px 0;color:#666}
#mobileRosterDialog button{min-height:40px;height:auto;width:auto;padding:6px 12px;flex:none;border:1px solid #e0d6d6;border-radius:7px;background:white;color:#96222b;font-size:13px}
#mobileRosterDialog button:disabled{opacity:.45}
#mobileRosterDialog input{width:100%;font-size:14px;margin:6px 0;min-width:0}
#rosterRows{max-height:48dvh;overflow:auto;overscroll-behavior:contain}
.roster-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 8px;padding:9px 0;border-bottom:1px solid #eee;font-size:14px}
.roster-row strong{overflow-wrap:anywhere}.roster-row small{grid-column:1/-1;color:#666;font-size:12px}
#rosterPages{justify-content:center;margin:8px 0;font-size:13px}
#mobileRosterDialog footer{position:sticky;bottom:-16px;background:white;padding:12px 0 0}
#mobileRosterDialog footer button{flex:1}#mobileRosterDialog #applyRoster{background:#ac2230;color:white;border-color:#ac2230}
