.class-roster-dialog { width: min(760px, 100%); }
.class-roster-picker { min-width: 0; }
.class-roster-filters { display:grid; grid-template-columns:1.3fr 1fr; gap:16px; margin:20px 0 12px; }
.class-roster-filters label { display:grid; gap:7px; min-width:0; }
.class-roster-tools,.class-roster-actions { display:flex; align-items:center; flex-wrap:wrap; gap:14px; }
.class-roster-tools { margin:12px 0; }
.class-roster-tools [data-class-count] { margin-left:auto; }
.class-roster-list { max-height:48vh; overflow-y:auto; border:1px solid var(--line); border-radius:12px; background:var(--paper,#fff); }
.class-roster-list > p { padding:16px; }
.class-roster-person { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px; }
.class-roster-person + .class-roster-person { border-top:1px solid var(--line); }
.class-roster-person > label { display:flex; align-items:center; gap:12px; min-width:0; flex:1; cursor:pointer; }
.class-roster-person input { width:18px; height:18px; flex:0 0 18px; margin:0; }
.class-roster-person label > span { display:grid; min-width:0; gap:4px; overflow-wrap:anywhere; }
.class-roster-person label span span,.class-roster-person label small { color:var(--muted); font-size:12px; }
.class-roster-member-actions { display:flex; flex-wrap:wrap; gap:10px; align-items:center; justify-content:flex-end; max-width:230px; }
.class-roster-member-actions button { font-size:12px; }
.class-roster-actions { justify-content:space-between; margin-top:16px; }
.class-roster-picker [data-class-status]:empty,.class-roster-picker [data-class-error]:empty { display:none; }
.class-roster-picker [data-class-status] { line-height:1.5; }
@media(max-width:600px) {
  .class-roster-filters { grid-template-columns:1fr; gap:12px; }
  .class-roster-person { align-items:stretch; flex-direction:column; gap:12px; }
  .class-roster-member-actions { justify-content:flex-start; margin-left:30px; max-width:none; }
  .class-roster-actions { align-items:stretch; flex-direction:column; }
  .class-roster-tools [data-class-count] { flex-basis:100%; margin-left:0; }
}
