.lobby-roster-panel{min-width:0;margin:20px 0;padding:24px;border:1px solid var(--border,#665237);border-radius:12px;background:var(--panel,#0e1118);color:var(--text,#eee4cc)}
.lobby-roster-panel>header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.lobby-roster-panel h2{display:flex;align-items:center;gap:10px;margin:0;font-size:clamp(22px,3vw,30px)}
.lobby-roster-panel h3{margin:0 0 12px;font-size:20px}
.lobby-roster-panel p{line-height:1.5;margin:12px 0}
.lobby-roster-count{font-weight:700;font-variant-numeric:tabular-nums}
.lobby-roster-note{color:var(--muted,#bbb3a0);font-size:14px}
.lobby-roster-groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:24px}
.lobby-roster-list{list-style:none;margin:0;padding:0}
.lobby-roster-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid var(--border,#665237)}
.lobby-roster-list li>div{min-width:0;overflow-wrap:anywhere}.lobby-roster-list small{display:block;margin-top:6px;line-height:1.4}
.lobby-roster-status{display:flex;align-items:center;gap:5px;flex-shrink:0;font-size:13px}.lobby-roster-status.is-ready{color:var(--gold,#e6b85f)}
.lobby-roster-self{display:inline-block;margin-left:8px;font-size:12px;color:var(--muted,#bbb3a0)}
.lobby-roster-mode{display:block;width:fit-content;margin-top:6px;padding:3px 7px;border:1px solid var(--line);border-radius:6px;color:var(--cream);font-size:13px;line-height:1.4}
.teacher-presence-roster{margin:12px 0}.teacher-presence-roster>summary{cursor:pointer;min-height:44px;padding:12px;border:1px solid var(--line);border-radius:8px}.teacher-presence-roster .lobby-roster-panel{margin:8px 0}
.lobby-roster-action{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:16px 0}.lobby-roster-action p{flex:1;min-width:180px}
.lobby-roster-panel .button{min-height:44px;white-space:normal}
@media(max-width:900px){.lobby-roster-groups{grid-template-columns:1fr}}
@media(max-width:480px){.lobby-roster-panel{padding:16px}.lobby-roster-list li{align-items:flex-start;flex-wrap:wrap}.lobby-roster-panel>header .button{width:100%}}
