:root{--font-size-root:24px;--line-height-body:2;--font-family-body:sans-serif;--color-text:#000;--color-bg:#fff;--layout-page-max-width:960px;--gap-actions:.5rem;--debug-outline-width:1px;--debug-color-html:#16a34a;--debug-color-body:#2563eb;--debug-color-page:#ea580c;--debug-color-page-header:#11646c;--debug-color-page-header-title:#14f232;--debug-color-class-list:#11646c;--debug-color-class-list-items:#bbdf1d;--debug-color-class-list-item:#f51b1b}*,:before,:after{box-sizing:border-box}html{font-size:var(--font-size-root)}body{min-height:100vh;line-height:var(--line-height-body);font-family:var(--font-family-body);color:var(--color-text);background-color:var(--color-bg);margin:0}:root{--button-primary:#4f46e5;--button-primary-hover:#4338ca;--button-text:#344054;--button-text-strong:#1d2939;--button-border:#d0d5dd;--button-border-hover:#b8bec7;--button-surface:#fff;--button-surface-hover:#f9fafb;--button-ghost-hover:#f2f4f7;--button-danger:#dc2626;--button-danger-hover:#b91c1c;--button-danger-soft-bg:#fef2f2;--button-danger-soft-hover:#fee4e2;--button-danger-soft-text:#b42318;--button-focus-ring:#6366f142;--button-shadow-xs:0 1px 2px #1018280f;--button-shadow-sm:0 2px 5px #10182814, 0 1px 2px #1018280a}.button{min-height:2.5rem;font:inherit;color:var(--button-text);white-space:nowrap;-webkit-user-select:none;user-select:none;cursor:pointer;background-color:#0000;border:1px solid #0000;border-radius:.625rem;justify-content:center;align-items:center;gap:.5rem;padding:0 .875rem;font-size:.875rem;font-weight:600;line-height:1;text-decoration:none;transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s,transform 80ms;display:inline-flex}.button:hover{text-decoration:none}.button:active{transform:translateY(1px)}.button:focus-visible{box-shadow:0 0 0 4px var(--button-focus-ring);outline:none}.button:disabled,.button[aria-disabled=true]{opacity:.48;cursor:not-allowed;pointer-events:none}.button__icon{flex:none;width:1rem;height:1rem}.button--primary{color:#fff;background-color:var(--button-primary);border-color:var(--button-primary);box-shadow:var(--button-shadow-sm)}.button--primary:hover{background-color:var(--button-primary-hover);border-color:var(--button-primary-hover)}.button--secondary{color:var(--button-text);background-color:var(--button-surface);border-color:var(--button-border);box-shadow:var(--button-shadow-xs)}.button--secondary:hover{color:var(--button-text-strong);background-color:var(--button-surface-hover);border-color:var(--button-border-hover)}.button--ghost{color:#475467;background-color:#0000}.button--ghost:hover{color:var(--button-text-strong);background-color:var(--button-ghost-hover)}.button--danger-soft{color:var(--button-danger-soft-text);background-color:var(--button-danger-soft-bg)}.button--danger-soft:hover{background-color:var(--button-danger-soft-hover)}.button--danger-ghost{color:var(--button-danger-soft-text);background-color:#0000}.button--danger-ghost:hover{background-color:var(--button-danger-soft-bg)}.button--danger{color:#fff;background-color:var(--button-danger);border-color:var(--button-danger);box-shadow:var(--button-shadow-xs)}.button--danger:hover{background-color:var(--button-danger-hover);border-color:var(--button-danger-hover)}.button--sm{border-radius:.5rem;min-height:2rem;padding:0 .625rem;font-size:.8125rem}.button--icon{width:2.5rem;padding:0}.button--icon.button--sm{width:2rem}.button__spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:.9375rem;height:.9375rem;animation:.7s linear infinite button-spin}@keyframes button-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.button{transition:none}.button__spinner{animation-duration:1.4s}}.page{max-width:var(--layout-page-max-width);margin-inline:auto}.page-header{flex-direction:row;justify-content:space-between;align-items:center;display:flex}.page-header__title{margin:0}.class-list__status{color:#667085;margin:0 0 .75rem}.class-list__items{margin:0;padding:0;list-style:none}.class-list__item{justify-content:space-between;align-items:center;gap:var(--gap-actions);border-bottom:1px solid #eaecf0;flex-direction:row;padding-block:.5rem;display:flex}.class-list__item:last-child{border-bottom:0}.class-list__name{min-width:0}.class-list__name-link{color:inherit;text-decoration:none}.class-list__name-link:hover,.class-list__name-link:focus-visible{color:#2563eb;text-underline-offset:.2em;text-decoration:underline}.class-list__name-link:focus-visible{outline:none}.class-list__actions{align-items:center;gap:var(--gap-actions);flex-direction:row;display:flex}.class-delete-dialog{width:min(34em,100vw - 32px)}.class-delete-dialog__status,.class-delete-dialog__summary-title,.class-delete-dialog__blocked-title{margin:0}.class-delete-dialog__status{color:#667085}.class-delete-dialog__summary{gap:.35em;display:grid}.class-delete-dialog__summary-title{font:inherit;font-weight:600}.class-delete-dialog__impact,.class-delete-dialog__reasons{gap:.25em;margin:0;padding-left:1.35em;display:grid}.class-delete-dialog__summary,.class-delete-dialog__warning,.class-delete-dialog__blocked{border-radius:4px;padding:.6em .7em}.class-delete-dialog__summary{color:#344054;background-color:#f9fafb;border:1px solid #eaecf0}.class-delete-dialog__warning{color:#93370d;background-color:#fffaeb;border:1px solid #fedf89;margin:0}.class-delete-dialog__blocked{color:#b42318;background-color:#fef2f2;border:1px solid #fecaca;gap:.4em;display:grid}.class-delete-dialog__blocked-title{font-weight:600}.student-page{padding-block:.75rem}.student-page__header{gap:.75rem}.student-page__class-select{min-width:0;max-width:100%;color:var(--color-text);font:inherit;cursor:pointer;background-color:#0000;border:0;border-bottom:1px solid #0000;border-radius:0;padding:.15em 1.8em .15em 0;font-size:1.5rem;font-weight:700;line-height:1.2}.student-page__class-select:hover{border-bottom-color:#d0d5dd}.student-page__class-select:focus-visible{border-bottom-color:#4f46e5;outline:none;box-shadow:0 3px #4f46e529}.student-page__actions{justify-content:flex-end;gap:var(--gap-actions);flex-wrap:wrap;display:flex}.student-page__hint{color:#667085;margin:.4rem 0 .75rem;font-size:.875rem;line-height:1.4}.student-page__hint:empty{display:none}.student-table__status{color:#667085;margin:0 0 .75rem;font-size:.875rem;line-height:1.4}.student-table__status:empty{display:none}.student-table__wrap{border:1px solid #eaecf0;border-radius:6px;width:100%;overflow-x:auto}.student-table__table{border-collapse:collapse;background-color:#fff;width:100%;min-width:24rem;font-size:.875rem;line-height:1.4}.student-table__table th,.student-table__table td{text-align:left;vertical-align:middle;border-bottom:1px solid #eaecf0;padding:.55rem .6rem}.student-table__table th{color:#475467;white-space:nowrap;background-color:#f9fafb;font-weight:600}.student-table__table tr:last-child td{border-bottom:0}.student-table__table tbody tr:hover{background-color:#f9fafb}.student-table__actions{justify-content:flex-end;gap:var(--gap-actions);white-space:nowrap;display:flex}.student-table__empty{color:#667085;text-align:center;background-color:#fff;margin:0;padding:1.5rem .75rem;font-size:.875rem;line-height:1.4}@media (width<=720px){.student-page__header{flex-direction:column;align-items:stretch}.student-page__class-select{width:100%}.student-page__actions{justify-content:flex-start}}.course-page__header{gap:var(--gap-actions);margin-bottom:.75rem}.course-table__status{color:#667085;margin:0 0 .75rem;font-size:.875rem;line-height:1.4}.course-table__status:empty{display:none}.course-table__wrap{border:1px solid #eaecf0;border-radius:6px;width:100%;overflow-x:auto}.course-table__table{border-collapse:collapse;background-color:#fff;width:100%;min-width:34rem;font-size:.875rem;line-height:1.4}.course-table__table th,.course-table__table td{text-align:left;vertical-align:middle;border-bottom:1px solid #eaecf0;padding:.55rem .6rem}.course-table__table th{color:#475467;white-space:nowrap;background-color:#f9fafb;font-weight:600}.course-table__table tr:last-child td{border-bottom:0}.course-table__table tbody tr:hover{background-color:#f9fafb}.course-table__actions{justify-content:flex-end;gap:var(--gap-actions);white-space:nowrap;display:flex}.course-table__empty{color:#667085;text-align:center;background-color:#fff;margin:0;padding:1.5rem .75rem;font-size:.875rem;line-height:1.4}.course-class-summary{background-color:#f9fafb;border:1px solid #eaecf0;border-radius:6px;justify-content:space-between;align-items:center;gap:.75em;padding:.65em;display:flex}.course-class-summary__title{font:inherit;margin:0 0 .2em;font-weight:600}.course-class-summary__text{color:#667085;margin:0}.course-class-picker{width:min(36em,100vw - 32px)}.course-class-picker__toolbar{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.75em;display:grid}.course-class-picker__search{gap:.25em;display:grid}.course-class-picker__toggle{color:#475467;white-space:nowrap;align-items:center;gap:.4em;min-height:1.85em;display:inline-flex}.course-class-picker__status{color:#667085;margin:0}.course-class-picker__list{background-color:#fff;border:1px solid #eaecf0;border-radius:6px;max-height:11rem;display:grid;overflow:auto}.course-class-picker__option{color:#344054;border-bottom:1px solid #eaecf0;align-items:center;gap:.55em;padding:.55em .65em;display:flex}.course-class-picker__option:last-child{border-bottom:0}.course-class-picker__option:hover{background-color:#f9fafb}.course-class-picker__option input{flex:none}.course-class-picker__empty{color:#667085;text-align:center;margin:0;padding:1.25rem .75rem}.course-delete-dialog__status{color:#667085;margin:0}.course-delete-dialog__impact{color:#344054;background-color:#f9fafb;border:1px solid #eaecf0;border-radius:4px;gap:.25em;margin:0;padding:.65em .65em .65em 2em;display:grid}.course-delete-dialog__warning{color:#93370d;background-color:#fffaeb;border:1px solid #fedf89;border-radius:4px;margin:0;padding:.5em .65em}.quick-evaluation-dialog{width:min(36em,100vw - 32px)}.quick-evaluation-dialog__list{gap:.45em;display:grid}.quick-evaluation-dialog__labels,.quick-evaluation-dialog__row{grid-template-columns:minmax(0,1fr) 6em 2rem;gap:.5em;display:grid}.quick-evaluation-dialog__labels{color:#475467;padding:0 .1em;font-size:.875em}.quick-evaluation-dialog__row{border-bottom:1px solid #eaecf0;align-items:start;padding-bottom:.45em}.quick-evaluation-dialog__row:last-child{border-bottom:0;padding-bottom:0}.quick-evaluation-dialog__mobile-label{display:none}.quick-evaluation-dialog__delete{margin-top:.05em}.quick-evaluation-dialog__empty{color:#667085;text-align:center;border:1px dashed #d0d5dd;border-radius:4px;margin:0;padding:1.25em .75em}.quick-evaluation-dialog__footer{justify-content:space-between;align-items:center;gap:.75em;display:flex}.quick-evaluation-dialog__footer>div{align-items:center;gap:.5em;display:flex}.quick-evaluation-dialog__count{color:#667085;font-variant-numeric:tabular-nums}@media (width<=720px){.course-page__header,.course-class-summary,.course-class-picker__toolbar{flex-direction:column;grid-template-columns:1fr;align-items:stretch}.course-page__header{display:flex}.quick-evaluation-dialog__labels{display:none}.quick-evaluation-dialog__row{grid-template-columns:minmax(0,1fr) 5.5em 2rem}.quick-evaluation-dialog__footer{flex-direction:column;align-items:stretch}.quick-evaluation-dialog__footer>div,.quick-evaluation-dialog__footer .class-dialog__actions{justify-content:space-between}}.class-dialog{width:min(24em,100vw - 32px);color:var(--color-text);background:var(--color-bg);font-family:var(--font-family-body);border:1px solid #d0d5dd;border-radius:6px;padding:0;font-size:.875rem;line-height:1.4;box-shadow:0 10px 24px #00000024}.class-dialog::backdrop{background:#0000005c}.class-dialog__header{border-bottom:1px solid #eaecf0;justify-content:space-between;align-items:center;gap:.75em;padding:.6em .75em;display:flex}.class-dialog__title{font:inherit;margin:0;font-weight:600}.class-dialog__header .button{border-radius:4px;width:1.75em;min-height:1.75em}.class-dialog__form,.class-dialog__body{gap:.65em;padding:.75em;display:grid}.class-dialog__message{color:#b42318;background:#fef2f2;border:1px solid #fecaca;border-radius:4px;margin:0;padding:.35em .5em}.class-dialog__text{color:#475467;margin:0}.class-dialog__emphasis{color:var(--color-text);font-weight:600}.class-dialog__fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:.35em .75em;display:grid}.class-dialog__field{gap:.25em;display:grid}.class-dialog__field--wide{grid-column:1/-1}.class-dialog__label{font-weight:400;line-height:1.3}.class-dialog__input{width:100%;min-height:1.85em;color:inherit;font:inherit;background-color:#fff;border:1px solid #d0d5dd;border-radius:4px;padding:0 .5em}.class-dialog__input:focus{border-color:#2563eb;outline:none;box-shadow:0 0 0 3px #2563eb24}.class-dialog__input[aria-invalid=true]{border-color:#dc2626}.class-dialog__error{color:#b42318;font-size:.85em;line-height:1.3}.class-dialog__error:empty{display:none}.class-dialog__actions{justify-content:flex-end;gap:.5em;display:flex}.class-dialog__actions .button{min-height:1.85em;font-size:inherit;border-radius:4px;padding:0 .75em}@media (width<=640px){.class-dialog__fields{grid-template-columns:1fr}.class-dialog__actions{flex-direction:column-reverse}.class-dialog__actions .button{width:100%}}.student-import-dialog{width:min(48rem,100vw - 32px);max-height:calc(100vh - 32px);overflow:auto}.student-import-dialog__file{min-height:2.4em;padding:.35em .5em}.student-import-dialog__help,.student-import-dialog__sheet{color:#667085;font-size:.85em}.student-import-dialog__preview{gap:.6em;display:grid}.student-import-dialog__preview-header{justify-content:space-between;align-items:baseline;gap:.75em;display:flex}.student-import-dialog__subtitle{font:inherit;margin:0;font-weight:600}.student-import-dialog__summary{border-block:1px solid #eaecf0;grid-template-columns:repeat(4,minmax(0,1fr));margin:0;display:grid}.student-import-dialog__summary div{padding:.55em .65em}.student-import-dialog__summary div+div{border-left:1px solid #eaecf0}.student-import-dialog__summary dt{color:#667085;font-size:.85em}.student-import-dialog__summary dd{margin:.1em 0 0;font-size:1.2em;font-weight:600}.student-import-dialog__notice{color:#667085;margin:0}.student-import-dialog__issues{border:1px solid #eaecf0;border-radius:4px;max-height:14rem;overflow:auto}.student-import-dialog__table{border-collapse:collapse;width:100%;min-width:36rem;font-size:.9em}.student-import-dialog__table th,.student-import-dialog__table td{text-align:left;vertical-align:top;border-bottom:1px solid #eaecf0;padding:.45em .55em}.student-import-dialog__table th{color:#475467;white-space:nowrap;background:#f9fafb;font-weight:600;position:sticky;top:0}.student-import-dialog__table tr:last-child td{border-bottom:0}@media (width<=640px){.student-import-dialog__preview-header{flex-direction:column;align-items:flex-start;gap:.2em}.student-import-dialog__summary{grid-template-columns:repeat(2,minmax(0,1fr))}.student-import-dialog__summary div:nth-child(3){border-left:0}.student-import-dialog__summary div:nth-child(n+3){border-top:1px solid #eaecf0}}.pagination{font:inherit;justify-content:space-between;align-items:center;gap:16px;margin-top:14px;line-height:1;display:flex}.pagination__meta,.pagination__size,.pagination__pages{align-items:center;display:flex}.pagination__meta{gap:12px;min-width:0}.pagination__size{gap:6px}.pagination__label,.pagination__range{white-space:nowrap}.pagination__select{min-width:4.5em;height:1.75em;font:inherit;cursor:pointer;background-color:#fff;border:1px solid #d0d5dd;border-radius:6px;padding:0 1.4em 0 .55em;box-shadow:0 1px 2px #1018280d}.pagination__select:focus-visible,.pagination__page:focus-visible{z-index:1;outline:none;position:relative;box-shadow:0 0 0 3px #4f46e52e}.pagination__pages{background-color:#fff;border:1px solid #d0d5dd;border-radius:4px;margin:0;padding:0;list-style:none;overflow:hidden;box-shadow:0 1px 2px #1018280d}.pagination__pages>li{display:flex}.pagination__page,.pagination__ellipsis{min-width:2.1em;height:1.75em;font:inherit;background-color:#fff;border:0;border-left:1px solid #eaecf0;justify-content:center;align-items:center;padding:0 .5em;line-height:1.75em;display:inline-flex}.pagination__pages>li:first-child .pagination__page{border-left:0}.pagination__page{cursor:pointer}.pagination__page:hover{color:#1d2939;background-color:#f9fafb}.pagination__page.is-current{color:#2563eb;background-color:#eff6ff}.pagination__page:disabled{color:#98a2b3;cursor:not-allowed}.pagination__page:disabled:hover{background-color:#fff}.pagination__ellipsis{color:#98a2b3;cursor:default;-webkit-user-select:none;user-select:none}@media (width<=640px){.pagination{flex-direction:column;align-items:flex-start}.pagination__meta{flex-direction:column;align-items:flex-start;gap:8px;width:100%}.pagination__range{white-space:normal}.pagination__pages{max-width:100%;overflow-x:auto}}html{outline:var(--debug-outline-width) dashed var(--debug-color-html)}body{outline:var(--debug-outline-width) dashed var(--debug-color-body)}.page{outline:var(--debug-outline-width) dashed var(--debug-color-page)}.page-header{outline:var(--debug-outline-width) dashed var(--debug-color-page-header)}.page-header__title{outline:var(--debug-outline-width) dashed var(--debug-color-page-header-title)}.class-list{outline:var(--debug-outline-width) dashed var(--debug-color-class-list)}.class-list__items{outline:var(--debug-outline-width) dashed var(--debug-color-class-list-items)}.class-list__item{outline:var(--debug-outline-width) dashed var(--debug-color-class-list-item)}
