.roster-console { margin-bottom:24px; border:1px solid #d8bb7e; }
.roster-heading,.roster-upload { display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap; }
.roster-heading h2 { margin-bottom:12px; }
.roster-count { font:700 22px Arena,sans-serif; padding:12px 20px; border-radius:16px; background:#f5eedf; color:#826022; }
.roster-modes,.roster-actions { display:flex; flex-wrap:wrap; gap:10px; margin:18px 0; }
.roster-upload { padding:20px; border:1px dashed #cabfae; border-radius:16px; background:#faf8f3; }
.roster-upload .form-group { flex:1; min-width:220px; margin:0; }
.roster-upload input[type=file] { width:100%; background:white; padding:12px; border:1px solid #dbd8d0; border-radius:10px; }
.roster-upload small { display:block; line-height:1.7; margin-top:8px; color:#68645c; }
#roster-sheet-group { margin-top:16px; }
.roster-message { margin:16px 0; padding:12px 16px; background:#f2f6f4; border-radius:10px; line-height:1.7; color:#315c48; overflow-wrap:anywhere; }
.roster-message.is-error { background:#fff0ed; color:#a33a28; }
.roster-table { max-height:300px; overflow:auto; margin:12px 0 16px; }
.roster-table th { position:sticky; top:0; background:#f5f3ee; }
.roster-draw-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); padding:0; gap:12px; list-style:none; }
.roster-draw-list li { display:flex; align-items:center; gap:14px; padding:18px; background:#f8f5ee; border-radius:14px; }
.roster-draw-list li>b { font:700 28px Arena,sans-serif; color:#997331; }
.roster-draw-list strong { display:block; font-size:20px; overflow-wrap:anywhere; }
.roster-draw-list small { display:block; color:#777; margin-top:6px; overflow-wrap:anywhere; }
.roster-saved { margin-top:18px; }
.roster-saved summary { cursor:pointer; color:#777; }
.stage-mode-badge { font-size:11px; letter-spacing:1px; color:#9e793b; }
.roster-stage-mode .reveal-card b { font-size:13px; overflow-wrap:anywhere; }
.roster-stage-mode .queue-item em { overflow-wrap:anywhere; }
@media(max-width:720px) {
 .roster-draw-list { grid-template-columns:1fr; }
 .roster-upload { padding:14px; }
 .roster-modes .btn,.roster-actions .btn { flex:1 1 180px; }
}
.roster-modes .btn[aria-pressed="true"] { background:#155894; border-color:#155894; color:#fff; }

/* Roster results contain names only; position in the list conveys speaking order. */
.roster-stage-mode .queue-item>div { display:block; }
.roster-stage-mode .queue-item strong { font-size:22px; }
.roster-stage-mode .queue-list { list-style:none; }
.roster-stage-mode .reveal-card { display:block; }
.roster-stage-mode .reveal-card strong { display:block; font-size:18px; }
