.mark-glyph{flex:none;vertical-align:-2px}.class-switch{display:flex;flex-wrap:wrap;gap:0;border:1px solid var(--line);border-radius:var(--r-control);overflow:hidden;width:100%}.switch-item{flex:1 1;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;min-width:0;padding:0 var(--s-2);border:0;border-left:1px solid var(--line);background:var(--card);color:var(--ink);font:inherit;font-weight:600;cursor:pointer}.switch-item:first-child{border-left:0}.switch-item .num{color:var(--muted);font-weight:500}.switch-item[aria-pressed=true]{background:var(--raised);box-shadow:inset 0 -3px 0 var(--accent)}.switch-item.is-target{outline:2px dashed var(--accent);outline-offset:-4px}.switch-item[aria-pressed=true] .num{color:var(--ink)}@media (min-width:48rem){.class-switch{display:none}}@media (max-width:47.99rem){.class-col:not(.is-shown){display:none}}.col-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:0 var(--s-3)}.col-head h3{font-size:1.25rem;margin:0}.col-teacher{font-size:1rem;font-weight:500;color:var(--graphite)}.col-count{margin:0;font-weight:600}.col-count.over{color:var(--bad)}.col-count .mark-glyph{margin-right:var(--s-1)}.student-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line-soft)}.student-row{position:relative;display:flex;align-items:flex-start;gap:var(--s-1);min-height:56px;padding:6px 0;border-bottom:1px solid var(--line-soft);transition:background-color var(--t-fast) var(--ease-out)}.student-row:hover{background:var(--raised)}.student-row.has-warning{box-shadow:inset 4px 0 0 var(--bad)}.student-row.is-marked{background:var(--raised);box-shadow:inset 4px 0 0 var(--accent)}.student-row.is-dragged{background:var(--raised);outline:2px dashed var(--accent);outline-offset:-2px}.student-main{flex:1 1;min-width:0;padding-top:2px}.student-name{display:flex;flex-wrap:wrap;align-items:center;gap:0 var(--s-2);margin:0;line-height:1.4}.student-name strong{font-weight:600;overflow-wrap:anywhere}.lock-note{display:inline-flex;align-items:center;gap:var(--s-1);font-size:.875rem;font-weight:600;color:var(--graphite)}.student-meta{margin:0;font-size:.875rem;line-height:1.45;color:var(--muted)}.row-actions{position:relative;flex:none}.move-button{padding:0 var(--s-3)}.move-scrim{display:none}.move-panel{position:absolute;right:0;top:calc(100% + 4px);z-index:25;width:20rem;display:flex;flex-direction:column;gap:2px;padding:var(--s-2);background:var(--card);border:1px solid var(--line);border-radius:var(--r-control);box-shadow:var(--shadow-2)}.move-panel-title{margin:0;padding:var(--s-1) var(--s-2) var(--s-2);font-size:.875rem;font-weight:700;color:var(--graphite);border-bottom:1px solid var(--line-soft)}.move-item{display:flex;align-items:center;gap:var(--s-2);width:100%;min-height:44px;padding:0 var(--s-2);border:0;border-radius:var(--r-box);background:none;color:var(--ink);font:inherit;font-weight:600;text-align:left;cursor:pointer}.move-item:hover:not(:disabled){background:var(--raised)}.move-item:disabled{opacity:.55;cursor:not-allowed}.move-item[aria-pressed=true]{background:var(--accent-soft)}.move-class{flex-direction:column;align-items:flex-start;justify-content:center;gap:0;padding:var(--s-2)}.move-preview{display:flex;gap:var(--s-1);align-items:flex-start;font-size:.875rem;font-weight:500;line-height:1.4}.move-preview .mark-glyph{margin-top:2px}.move-preview.bad{color:var(--bad)}.move-preview.ok{color:var(--ok)}.move-cancel{border-top:1px solid var(--line-soft);border-radius:0;margin-top:var(--s-1)}.move-reason{margin:0;padding:var(--s-1) var(--s-2);font-size:.875rem;color:var(--graphite)}@media (max-width:47.99rem){.move-scrim{display:block;position:fixed;inset:0;z-index:44;background:rgb(26 27 46/.4)}.move-panel{position:fixed;left:0;right:0;top:auto;bottom:0;z-index:45;width:auto;max-height:80vh;overflow-y:auto;padding:var(--s-3) var(--gutter) calc(var(--s-4) + env(safe-area-inset-bottom));border:0;border-radius:var(--r-card) var(--r-card) 0 0;animation:sheet-in var(--t-move) var(--ease-out)}}@keyframes sheet-in{0%{transform:translateY(100%)}}