/* Online roster rows add two readable question panels below their existing summary. */
#roster .roster-live-summary>td{border-bottom:0;padding-bottom:4px;background:#f4fafc}
#roster .roster-live-detail>td{padding:8px 12px 14px;background:#f4fafc;border-bottom:2px solid #b9d4e4;max-width:none}
.roster-problems{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}
.roster-problem{min-width:0;background:#fff;border:1px solid #d3e2ed;border-radius:10px;padding:10px 14px}
.roster-problem h3{font-size:17px;line-height:1.5;margin:0 0 4px;display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.roster-problem h3 small{font-weight:400}
.roster-question-scroll{max-height:118px;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:4px 6px 5px 0;font-size:17px;line-height:1.8;overflow-wrap:anywhere}
.roster-question-scroll:focus-visible{outline:2px solid #005f94;outline-offset:2px}
.roster-prompt,.roster-passage{white-space:pre-wrap}.roster-passage{margin-top:8px}
.roster-field-label,.roster-options{display:block}.roster-options{color:#345c70}
.roster-response{margin:5px 0 0;font-size:15px;line-height:1.7;overflow-wrap:anywhere}
.roster-correct{color:#00634e}.roster-incorrect{color:#a33427}
.roster-empty{margin:10px 0;color:#517183;font-size:17px}
.roster-support{display:flex;flex-wrap:wrap;gap:8px 22px;align-items:center;margin-top:10px;font-size:15px}
.roster-todo-count{font-weight:700}.roster-todo-count small{font-weight:400}
.roster-concern{display:flex;gap:6px 12px;align-items:center;flex-wrap:wrap;color:#713907}
.roster-concern b{background:#fff0ca;border:1px solid #e2be68;border-radius:20px;padding:2px 12px;white-space:nowrap}
.roster-no-concern{color:#517183}
.roster-question-scroll svg{display:block;max-width:100%;height:auto;max-height:240px}
.roster-question-scroll .om-frac{display:inline-flex;flex-direction:column;vertical-align:middle;text-align:center;line-height:1.15;white-space:nowrap;margin:0 .12em;font-family:"Cambria Math","Times New Roman",serif}
.roster-question-scroll .om-num{border-bottom:1.4px solid;padding:0 .14em .1em}.roster-question-scroll .om-den{padding:.1em .14em 0}
.roster-question-scroll .om-root{display:inline-flex;align-items:stretch;vertical-align:middle;margin:0 .08em;line-height:1.25}
.roster-question-scroll .om-radical{position:relative;width:.62em;min-width:.62em}.roster-question-scroll .om-radical svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.roster-question-scroll .om-radicand{border-top:1.4px solid;padding:.06em .1em 0 0}.roster-question-scroll .om-power{font-size:.7em;vertical-align:super;line-height:1.15}.roster-question-scroll .om-group{white-space:nowrap}
@media(min-width:801px){#roster .teacher-student-actions{flex-wrap:wrap;gap:6px}#roster .teacher-student-actions>*{font-size:15px}#roster th:nth-child(1){width:110px}#roster th:nth-child(2){width:22%}#roster th:nth-child(3){width:26%}#roster th:nth-child(4),#roster th:nth-child(5){white-space:nowrap}}
@media(max-width:700px){.roster-problems{grid-template-columns:minmax(0,1fr)}.roster-question-scroll{max-height:150px}}

/* Grade headings apply only to disconnected students; online rows stay above. */
#roster .roster-grade-separator>th{background:#203454;color:#fff;border:0;padding:7px 12px;font-size:15px;line-height:1.5;text-align:left;font-weight:700;white-space:normal}
#roster .roster-grade-count{margin-left:12px;font-size:14px;font-weight:400;color:#e2e9f2;white-space:nowrap}
#roster .roster-grade-group+.roster-grade-group .roster-grade-separator>th{border-top:10px solid #fff}
