.roster-preview-note{margin:0 0 28px;color:var(--muted);font-size:14px}.roster-group{margin:0;padding:0}.roster-group+.roster-group{border-top:1px solid var(--line);margin-top:30px;padding-top:28px}.roster-group h2{font-size:22px;line-height:1.4;margin:0 0 18px;font-weight:800;color:var(--ink)}.roster-grid{display:grid;grid-template-columns:repeat(auto-fill,200px);gap:28px}.roster-card{width:200px;margin:0}.roster-photo{display:block;width:200px;height:200px;object-fit:cover;border-radius:0;background:#eef1f5}.roster-card figcaption{display:flex;align-items:center;justify-content:center;gap:10px;line-height:1.5;margin-top:12px;font-size:16px;overflow-wrap:anywhere}.roster-number{color:var(--muted);white-space:nowrap}.roster-divider{color:#c1c8d2}.roster-card strong{color:var(--ink);font-weight:800}.roster-empty{color:var(--muted);font-size:14px;margin:0;padding:12px 0 20px}
.roster-edit{display:block;margin:8px auto 0}.roster-dialog{width:min(480px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto}.roster-dialog fieldset{border:0;margin:0;padding:0;min-width:0}.roster-dialog label{display:block;margin-bottom:14px}.roster-dialog input:not([type=checkbox]),.roster-dialog select{width:100%;margin-top:6px}.roster-form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.roster-photo-help{font-size:13px;color:var(--muted);margin:0 0 14px;line-height:1.6}.roster-dialog .roster-photo{margin:0 auto 14px}.roster-dialog .roster-photo-remove{display:flex;align-items:center;gap:8px;font-size:14px}.roster-form-actions{display:flex;align-items:center;justify-content:flex-end;gap:16px}.roster-form-actions .danger{margin-right:auto;color:#a83142}.roster-delete-confirm{padding:14px;margin-top:16px;border:1px solid var(--line);border-radius:10px;background:#f7f8fb}.roster-delete-confirm p{margin:0 0 12px}.roster-delete-confirm button+button{margin-left:8px}
.roster-dialog .roster-photo-remove input{width:auto;flex:0 0 auto;margin:0}
.roster-heading-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.roster-heading-actions button{white-space:nowrap}
