html,body{min-height:100%}body{min-height:100dvh}.top .mark{width:34px;height:34px}.top{z-index:var(--z-nav);justify-content:space-between;align-items:center;gap:16px;min-height:66px;padding:7px max(24px,50% - 560px);display:flex;position:sticky;top:0}.top nav{align-items:center;gap:2px;display:flex;overflow:visible}.top nav>a,.navDropdown>summary{border-radius:var(--r-sm);min-height:34px;color:var(--ink-2);font-size:var(--text-base);font-weight:var(--fw-medium);white-space:nowrap;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;transition:color var(--dur-fast) var(--ease-out-quart), background-color var(--dur-fast) var(--ease-out-quart);align-items:center;padding:6px 12px;display:inline-flex}.top nav>a:hover,.navDropdown>summary:hover{color:var(--ink);background:var(--panel-2)}.top nav>a:active,.navDropdown>summary:active{color:var(--ink);background:var(--line)}.top nav>a.active,.navDropdown.active>summary{color:var(--accent-strong);background:var(--accent-soft);font-weight:var(--fw-medium)}.navDropdown{position:relative}.navDropdown>summary{cursor:pointer;gap:5px;list-style:none}.navDropdown>summary::-webkit-details-marker{display:none}.navDropdownChevron{transition:transform var(--dur) var(--ease-out-quart);flex:none}.navDropdown[open] .navDropdownChevron{transform:rotate(180deg)}.navDropdownMenu{z-index:calc(var(--z-nav) + 1);border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel);width:244px;box-shadow:var(--shadow-lg);max-height:min(520px,100dvh - 90px);animation:navDropdownIn var(--dur) var(--ease-out-quart) both;gap:2px;padding:6px;display:grid;position:absolute;top:calc(100% + 8px);left:50%;overflow-y:auto;transform:translate(-50%)}.navDropdownMenu a{border-radius:var(--r-sm);min-height:52px;color:var(--ink-2);transition:color var(--dur-fast) var(--ease-out-quart), background-color var(--dur-fast) var(--ease-out-quart);grid-template-columns:24px minmax(0,1fr);align-items:center;gap:9px;padding:8px 10px;display:grid}.navDropdownMenu a:hover{color:var(--ink);background:var(--panel-2)}.navDropdownMenu a:active{background:var(--line)}.navDropdownMenu a.active{color:var(--accent-strong);background:var(--accent-soft)}.navDropdownMenu svg{justify-self:center}.navDropdownMenu a>span{gap:1px;min-width:0;display:grid}.navDropdownMenu strong{color:inherit;font-size:var(--text-base);font-weight:var(--fw-semi)}.navDropdownMenu small{color:var(--ink-3);font-size:var(--text-xs);font-weight:var(--fw-regular)}@keyframes navDropdownIn{0%{opacity:0;transform:translate(-50%,-4px)}to{opacity:1;transform:translate(-50%)}}.topActions{align-items:center;gap:8px;display:inline-flex}.top.menuOpen .menuButton span:first-child{top:17px;transform:rotate(45deg)}.top.menuOpen .menuButton span:last-child{top:17px;transform:rotate(-45deg)}.accountTriggerName{min-width:0;max-width:12ch;color:inherit;font-size:var(--text-base);font-weight:var(--fw-medium);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.accountChevron{color:var(--ink-3);flex:none}.accountTrigger[aria-expanded=true] .accountChevron{transform:rotate(180deg)}.accountChevron{transition:transform var(--dur) var(--ease-out-quart)}.accountIdentity .accountIdentityText{gap:1px;min-width:0;display:grid}.accountIdentity strong{color:var(--ink);font-size:var(--text-base);font-weight:var(--fw-semi);overflow-wrap:anywhere}.accountIdentityMeta{color:var(--ink-3);font-size:var(--text-xs);overflow-wrap:anywhere}@media (prefers-reduced-motion:reduce){.accountChevron{transition:none}}main:where(:not(.legalMain)){width:min(1120px,100% - 48px);margin:var(--sp-8) auto var(--sp-12)}.portalFooter{text-align:center;color:var(--ink-3);font-size:var(--text-sm);flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;padding:24px;display:flex}.portalFooter>span:after{content:"·";margin-left:10px}.portalFooter a{color:var(--ink-2);font-weight:var(--fw-medium);text-decoration:underline;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);text-underline-offset:3px}.portalFooter a:hover{color:var(--accent-strong);text-decoration-color:currentColor}.portalFooter a+a:before{content:"·";color:var(--ink-3);margin-right:10px;display:inline-block}.nextUp{margin-bottom:var(--sp-4);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--panel);transition:border-color var(--dur-fast) var(--ease-out-quart), background-color var(--dur-fast) var(--ease-out-quart);align-items:center;gap:16px;padding:12px 18px;display:flex}.nextUp:hover{border-color:var(--accent-soft-line);background:var(--accent-soft)}.nextUp:active{background:var(--accent-soft-2)}.nextUp:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.nextUp.isLive{border-color:var(--ok-line);background:var(--ok-soft)}.nextUpTime{text-align:right;flex:none;gap:1px;min-width:46px;display:grid}.nextUpTime b{font-size:var(--text-base);font-weight:var(--fw-semi);font-variant-numeric:tabular-nums}.nextUpTime span{color:var(--ink-3);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.nextUpMain{flex:1;gap:1px;min-width:0;display:grid}.nextUpLabel{color:var(--ink-3);font-size:var(--text-xs);font-weight:var(--fw-semi)}.nextUpTitle{color:var(--ink);font-size:var(--text-md);font-weight:var(--fw-bold);overflow-wrap:anywhere}.nextUpMeta{color:var(--ink-2);font-size:var(--text-sm);overflow-wrap:anywhere}.nextUpWhen{color:var(--accent-strong);font-size:var(--text-base);font-weight:var(--fw-semi);font-variant-numeric:tabular-nums;white-space:nowrap;flex:none}.nextUp.isLive .nextUpWhen{color:var(--ok)}.nextUpEmpty{margin-bottom:var(--sp-4);color:var(--ink-2)}.nextUpSkeleton{margin-bottom:var(--sp-4);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--panel);align-items:center;gap:16px;padding:18px;display:flex}.liveDot{background:var(--ok);vertical-align:1px;border-radius:999px;width:6px;height:6px;margin-right:6px;display:inline-block}.weekStrip{border-bottom:1px solid var(--line);background:var(--panel);grid-template-columns:repeat(7,minmax(0,1fr));padding:0;display:grid}.weekStripDay{border-inline-start:1px solid var(--line);justify-items:center;gap:1px;padding:10px 2px 12px;display:grid}.weekStripDay:first-child{border-inline-start:0}.weekStripLabel{color:var(--ink-3);font-size:var(--text-2xs);font-weight:var(--fw-medium)}.weekStripDate{color:var(--ink-2);font-size:var(--text-sm);font-weight:var(--fw-semi);font-variant-numeric:tabular-nums}.weekStripCount{color:var(--ink-3);font-size:var(--text-2xs);text-align:center;font-variant-numeric:tabular-nums;line-height:1.25}.weekStripCount strong{font-size:var(--text-xs);font-weight:var(--fw-medium)}.weekStripDay.hasLessons .weekStripCount{color:var(--ink);font-weight:var(--fw-semi)}.weekStripDay.isToday{box-shadow:inset 0 -2px 0 var(--accent)}.weekStripDay.isToday .weekStripLabel,.weekStripDay.isToday .weekStripDate{color:var(--accent-strong)}.rowMark{background:var(--line-strong);border-radius:999px;flex:none;width:8px;height:8px}.rowMark.isImportant{background:var(--danger)}.listRow>.duePill,.listRow>.scorePill{min-width:76px}.metaFlag{color:var(--danger);font-weight:var(--fw-semi)}.metaFlag:after{content:" · ";color:var(--ink-3);font-weight:var(--fw-regular)}.listRow.isCancelled .listRowTitle{color:var(--ink-2);text-decoration:line-through}.duePill,.scorePill{background:var(--panel-2);border:1px solid var(--line);min-width:52px;color:var(--ink-2);font-size:var(--text-xs);font-weight:var(--fw-semi);font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;padding:3px 9px;display:inline-flex}.duePill.warn,.scorePill.warn{background:var(--warn-soft);border-color:var(--warn-line);color:var(--warn)}.duePill.danger,.scorePill.danger{background:var(--danger-soft);border-color:var(--danger-line);color:var(--danger)}.scorePill.ok{background:var(--ok-soft);border-color:var(--ok-line);color:var(--ok)}.dashError .meta{max-width:44ch}.clickableCard .card{height:100%;transition:border-color var(--dur-fast) var(--ease-out-quart), box-shadow var(--dur-fast) var(--ease-out-quart), transform var(--dur-fast) var(--ease-out-quart)}.clickableCard:hover .card{border-color:var(--line-strong);box-shadow:var(--shadow-md);transform:translateY(-2px)}.scheduleTop{margin-bottom:12px}.scheduleTop .pageHead{margin-bottom:0}.scheduleToolbar{justify-content:space-between;align-items:center;gap:16px;margin-top:16px;display:flex}.scheduleToolbar .tabs{flex:none;margin:0}.calendarNav{border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel-2);align-items:center;gap:4px;padding:3px;display:inline-flex}.calendarNav>strong{text-align:center;min-width:188px;font-size:var(--text-sm);font-weight:var(--fw-semi);font-variant-numeric:tabular-nums;white-space:nowrap;padding-inline:10px}.calendarNavButton,.calendarTodayButton{border-radius:var(--r-sm);min-height:30px;color:var(--ink-2);font-weight:var(--fw-semi);transition:color var(--dur-fast) var(--ease-out-quart), background-color var(--dur-fast) var(--ease-out-quart);background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex}.calendarNavButton{width:30px;font-size:var(--text-md)}.calendarTodayButton{border-inline:1px solid var(--line);font-size:var(--text-xs);border-radius:0;padding:0 10px}.calendarNavButton:hover,.calendarTodayButton:hover{background:var(--panel);color:var(--accent-strong)}.calendarNavButton:active,.calendarTodayButton:active{background:var(--accent-soft)}@media (pointer:coarse){.calendarNavButton,.calendarTodayButton{min-height:40px;position:relative}.calendarNavButton:after,.calendarTodayButton:after{content:"";position:absolute;inset-block:-3px;inset-inline:0}.calendarNavButton{width:44px}}.calendarScroller{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--panel);overscroll-behavior:contain;scrollbar-gutter:stable;max-width:100%;max-height:min(72dvh,680px);overflow:auto}.scheduleCalendar{--time-width:64px;background:var(--panel);min-width:920px;box-shadow:var(--shadow-sm);border:0;border-radius:0;overflow:hidden}.dayCalendar{min-width:620px}.calendarHeader{z-index:5;grid-template-columns:var(--time-width) repeat(7, minmax(0, 1fr));border-bottom:1px solid var(--line);background:var(--panel);display:grid;position:sticky;top:0}.dayCalendar .calendarHeader{grid-template-columns:var(--time-width) minmax(0, 1fr)}.calendarCorner{z-index:7;border-right:1px solid var(--line);background:var(--panel);position:sticky;left:0}.calendarDayHead{border-right:1px solid var(--line);color:var(--ink-3);justify-items:center;gap:1px;padding:10px 6px;display:grid}.calendarDayHead:last-child{border-right:0}.calendarDayHead span{font-size:var(--text-2xs);font-weight:var(--fw-semi);text-transform:uppercase;letter-spacing:.04em}.calendarDayHead strong{font-size:var(--text-sm);font-weight:var(--fw-semi)}.calendarDayHead.isToday{background:var(--accent-soft);color:var(--accent-strong)}.calendarBody{grid-template-columns:var(--time-width) minmax(0, 1fr);height:721px;display:grid;position:relative;overflow:hidden}.calendarTimes{z-index:4;border-right:1px solid var(--line);background:#fbfcff;position:sticky;left:0}.calendarTimes span{color:var(--ink-3);font-size:var(--text-2xs);font-variant-numeric:tabular-nums;position:absolute;right:10px;transform:translateY(-50%)}.calendarTimes span:first-child{transform:translateY(4px)}.calendarTimes span:last-child{transform:translateY(calc(-100% - 4px))}.calendarDays{grid-template-columns:repeat(7,minmax(0,1fr));min-width:0;display:grid}.dayCalendar .calendarDays{grid-template-columns:minmax(0,1fr)}.calendarDay{border-right:1px solid var(--line);background-image:repeating-linear-gradient(to bottom, transparent 0, transparent 59px, var(--line) 60px);min-width:0;position:relative}.calendarDay:last-child{border-right:0}.calendarDay.isToday{background-color:#eef4ff61}.calendarEvent{z-index:1;border:1px solid var(--accent);border-radius:var(--r-sm);background:var(--accent-soft);min-height:44px;color:var(--ink);transition:background-color var(--dur-fast) var(--ease-out-quart), box-shadow var(--dur-fast) var(--ease-out-quart), transform var(--dur-fast) var(--ease-out-quart);align-content:start;gap:1px;padding:7px 8px;display:grid;position:absolute;left:5px;right:5px;overflow:hidden}.calendarEvent:hover{z-index:2;box-shadow:var(--shadow-md);background:#e4edff;transform:translateY(-1px)}.calendarEvent.isShared{padding-inline:6px}.calendarEvent:focus-visible{z-index:3;outline:2px solid var(--accent);outline-offset:2px}.calendarEvent strong{font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap;line-height:1.25;overflow:hidden}.calendarEvent span{color:var(--ink-2);font-size:var(--text-2xs);text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums;line-height:1.25;overflow:hidden}.calendarEvent.isCancelled{border-color:var(--danger);background:var(--danger-soft);opacity:.72;text-decoration:line-through}.calendarEmpty{border:1px solid var(--line);border-radius:0 0 var(--r-lg) var(--r-lg);background:var(--panel);color:var(--ink-2);text-align:center;margin:-1px 0 0;padding:18px}.scheduleAgenda{display:none}.agendaDay+.agendaDay{margin-top:var(--sp-5)}.agendaDayHead{align-items:baseline;gap:var(--sp-2);margin:0 0 var(--sp-2);font-size:var(--text-sm);font-weight:var(--fw-semi);color:var(--ink-2);padding-inline:2px;display:flex}.agendaDay.isToday .agendaDayHead{color:var(--accent-strong)}.agendaToday{color:var(--accent-strong);font-size:var(--text-xs);font-weight:var(--fw-bold)}.agendaList{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--panel);margin:0;padding:0;list-style:none;display:grid;overflow:hidden}.agendaList>li+li{border-top:1px solid var(--line)}.agendaItem{gap:var(--sp-3);min-height:56px;padding:12px var(--sp-4);color:inherit;transition:background-color var(--dur-fast) var(--ease-out-quart);border-radius:0;grid-template-columns:auto minmax(0,1fr);align-items:start;display:grid}.agendaItem:hover{background:var(--panel-2)}.agendaItem:active{background:var(--accent-soft)}.agendaTime{font-variant-numeric:tabular-nums;gap:1px;min-width:46px;display:grid}.agendaTime b{font-size:var(--text-sm);font-weight:var(--fw-semi)}.agendaTime span{color:var(--ink-3);font-size:var(--text-xs)}.agendaMain{gap:2px;min-width:0;display:grid}.agendaTitle{color:var(--ink);font-size:var(--text-md);font-weight:var(--fw-semi);text-wrap:pretty}.agendaMeta{color:var(--ink-2);font-size:var(--text-sm)}.agendaKind{font-weight:var(--fw-semi)}.agendaKind--lecture{color:var(--accent-strong)}.agendaKind--seminar,.agendaKind--practice{color:var(--accent-2)}.agendaKind--lab{color:var(--ok)}.agendaKind--exam{color:var(--danger)}.agendaKind--online{color:var(--warn)}.agendaCancelled{color:var(--danger);font-weight:var(--fw-semi)}.agendaItem.isCancelled .agendaTitle{text-decoration:line-through}.agendaMaterials{color:var(--accent-strong);font-size:var(--text-xs);font-weight:var(--fw-semi)}.agendaEmpty{color:var(--ink-3);font-size:var(--text-sm);margin:0;padding:2px}@media (max-width:920px){.calendarScroller[data-view=week],.calendarEmpty[data-view=week]{display:none}.scheduleAgenda[data-view=week]{display:block}}.gradeSummary{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--panel);box-shadow:var(--shadow-sm);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:18px;display:grid;overflow:hidden}.gradeSummary>div{border-right:1px solid var(--line);gap:1px;padding:16px 20px;display:grid}.gradeSummary>div:last-child{border-right:0}.gradeSummary span{color:var(--ink-2);font-size:var(--text-sm);font-weight:var(--fw-medium)}.gradeSummary strong{font-size:var(--text-3xl);line-height:1.2;font-weight:var(--fw-bold);font-variant-numeric:tabular-nums}.gradeSummary small{color:var(--ink-3);font-size:var(--text-xs)}.gradebook{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--panel);box-shadow:var(--shadow-sm);overflow:hidden}.gradeToolbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:12px 16px;display:flex}.gradeSearch{width:min(440px,100%);display:block;position:relative}.gradeSearch svg{z-index:1;color:var(--ink-3);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.gradeSearch input{background:#fbfcff;min-height:38px;padding:8px 36px}.gradeSearch input::-webkit-search-cancel-button{cursor:pointer}.gradeSearchCount{color:var(--ink-3);font-size:var(--text-sm);font-variant-numeric:tabular-nums;flex-shrink:0}.gradebookScroll{overflow-x:auto}.gradeTable{table-layout:fixed;min-width:820px}.gradeTable th:first-child{width:28%}.gradeTable th:nth-child(2){width:15%}.gradeTable th:nth-child(3){width:18%}.gradeTable th:nth-child(4){width:13%}.gradeTable th:nth-child(5){width:26%}.gradeTable thead th{font-size:var(--text-xs);padding-block:10px}.gradeCourseRow th,.gradeCourseRow td{border-top:1px solid var(--line-strong);background:#f7f9ff;padding-block:14px}.gradeTable tbody:first-of-type .gradeCourseRow th,.gradeTable tbody:first-of-type .gradeCourseRow td{border-top:0}:is(.gradeCourseRow:has(.gradeCourseToggle:hover) th,.gradeCourseRow:has(.gradeCourseToggle:hover) td){background:#f1f5ff}.gradeCourseRow th{text-align:left;padding-block:0}.gradeCourseToggle{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:14px 0;display:block}.gradeCourseToggle:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:var(--r-sm)}.gradeCourseRow th span{color:var(--ink);font-size:var(--text-md);font-weight:var(--fw-bold);display:block}.gradeCourseRow .gradeCourseTitle{align-items:center;gap:var(--sp-2);display:flex}.gradeCourseRow .gradeCourseChevron{color:var(--ink-2);transition:transform var(--dur) var(--ease-out-quart);flex:none;display:block;transform:rotate(-90deg)}.gradeTable tbody.isExpanded .gradeCourseChevron{transform:rotate(0)}.gradeCourseRow th small{color:var(--ink-3);font-size:var(--text-xs);font-weight:var(--fw-medium);margin-top:1px;display:block}.courseAverage,.finalGrade,.notFinal{font-size:var(--text-sm);font-weight:var(--fw-semi);white-space:nowrap}.courseAverage{color:var(--accent-strong)}.finalGrade{color:var(--ok)}.notFinal{color:var(--ink-3);font-weight:var(--fw-medium)}.gradeResultRow td{vertical-align:middle}.gradeResultRow td:first-child a{border-radius:var(--r-sm);display:block}.gradeResultRow td:first-child a strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gradeType{color:var(--ink-2);font-size:var(--text-sm);text-transform:capitalize}.gradeResultRow time{color:var(--ink-2);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.gradeScore{border:1px solid var(--line);border-radius:var(--r-sm);min-width:54px;font-weight:var(--fw-bold);font-variant-numeric:tabular-nums;align-items:baseline;padding:3px 8px;display:inline-flex}.gradeScore small{font-size:var(--text-2xs);font-weight:var(--fw-medium)}.gradeScore.ok{border-color:var(--ok-line);background:var(--ok-soft);color:var(--ok)}.gradeScore.warn{border-color:var(--warn-line);background:var(--warn-soft);color:var(--warn)}.gradeScore.danger{border-color:var(--danger-line);background:var(--danger-soft);color:var(--danger)}.gradeFeedback{color:var(--ink-2);font-size:var(--text-sm)}.gradeFeedback>span{color:var(--ink-3)}@media (max-width:700px){.gradebookScroll{overflow-x:visible}.gradeTable{table-layout:auto;min-width:0;display:block}.gradeTable thead{display:none}.gradeTable tbody{display:block}.gradeTable tr:not([hidden]){column-gap:var(--sp-3);grid-template-columns:minmax(0,1fr) auto;display:grid}.gradeTable th,.gradeTable td{border:0;display:block}.gradeCourseRow{padding:10px var(--sp-4);border-top:1px solid var(--line-strong);align-items:center;row-gap:2px}.gradeTable tbody:first-of-type .gradeCourseRow{border-top:0}.gradeCourseRow th{grid-area:1/1/span 2;padding-inline:0}.gradeCourseRow td{text-align:right;grid-column:2;padding:0}.gradeCourseRow td:first-of-type{grid-row:1}.gradeCourseRow td:nth-of-type(2){grid-row:2}.gradeCourseRow th,.gradeCourseRow td,:is(.gradeCourseRow:has(.gradeCourseToggle:hover) th,.gradeCourseRow:has(.gradeCourseToggle:hover) td){background:0 0}.gradeCourseRow{background:#f7f9ff}.gradeCourseRow:has(.gradeCourseToggle:hover){background:#f1f5ff}.gradeResultRow:not([hidden]){padding:10px var(--sp-4);border-top:1px solid var(--line);grid-template-areas:"title score""type date""note note";row-gap:2px}.gradeResultRow td{padding:0}.gradeResultRow td:first-of-type{grid-area:title}.gradeResultRow td:nth-of-type(2){grid-area:type}.gradeResultRow td:nth-of-type(3){text-align:right;grid-area:date}.gradeResultRow td:nth-of-type(4){text-align:right;grid-area:score}.gradeResultRow td:nth-of-type(5){grid-area:note}.gradeResultRow td:first-child a strong{white-space:normal;text-wrap:pretty;overflow:visible}}.workFilterRow{align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-3);flex-wrap:wrap;display:flex}.workFilterRow .uiSegmented{margin-bottom:0}.dueSoonNote{color:var(--warn);font-size:var(--text-sm);font-weight:var(--fw-semi);font-variant-numeric:tabular-nums;margin:0 0 0 auto}.workTable table{table-layout:fixed}.workTable th:first-child{width:27%}.workTable th:nth-child(2){width:19%}.workTable th:nth-child(3){width:11%}.workTable th:nth-child(4){width:18%}.workTable th:nth-child(5){width:17%}.workTable th:nth-child(6){width:8%}.workTable td{vertical-align:middle}.workTable td:nth-child(2),.workTable time{color:var(--ink-2);font-size:var(--text-sm)}.workTable time{font-variant-numeric:tabular-nums;display:block}.workType{color:var(--ink-2);font-size:var(--text-sm);text-transform:capitalize}.deadlineState{color:var(--ink-3);font-size:var(--text-xs);font-weight:var(--fw-semi);margin-top:2px;display:block}.deadlineState.warn{color:var(--warn)}.deadlineState.danger{color:var(--danger)}.deadlineState.done{color:var(--ok)}.commentAvailable{color:var(--accent-strong);font-size:var(--text-2xs);margin-top:3px;display:block}@media (max-width:560px){.workFilterRow{align-items:stretch}.workFilterRow .uiSegmented{width:100%}.dueSoonNote{margin-inline:0}.workTable table{table-layout:auto}.workTable{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--panel);overflow:hidden}.workTable table,.workTable tbody{gap:0}.workTable tbody tr{border:0;border-top:1px solid var(--line);box-shadow:none;padding:12px var(--sp-4);column-gap:var(--sp-3);border-radius:0;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title title""course type""due due""status points";align-items:baseline;row-gap:5px}.workTable tbody td[data-label=Required\ work]{grid-area:title}.workTable tbody td[data-label=Course]{grid-area:course}.workTable tbody td[data-label=Type]{grid-area:type}.workTable tbody td[data-label=Deadline]{grid-area:due}.workTable tbody td[data-label=Status]{grid-area:status}.workTable tbody td[data-label=Points]{grid-area:points}.workTable tbody td[data-label=Course]:before,.workTable tbody td[data-label=Type]:before,.workTable tbody td[data-label=Deadline]:before,.workTable tbody td[data-label=Status]:before{display:none}.workTable tbody td[data-label=Course],.workTable tbody td[data-label=Type],.workTable tbody td[data-label=Status]{grid-template-columns:minmax(0,1fr);gap:2px}.workTable tbody td[data-label=Type]{justify-items:end}.workTable tbody td[data-label=Deadline]{flex-wrap:wrap;align-items:baseline;gap:2px 6px;display:flex}.workTable tbody td[data-label=Deadline] time{display:inline}.workTable tbody td[data-label=Deadline] .deadlineState{margin-top:0;display:inline}.workTable tbody td[data-label=Points]{justify-content:flex-end;align-items:baseline;gap:4px;display:flex}.workTable tbody td[data-label=Points]:before{text-transform:lowercase;order:2}.workTable tbody tr:first-child{border-top:0}.workTable tbody .cellTitle{font-size:var(--text-md)}}.detailBack{color:var(--accent-strong);font-weight:var(--fw-semi);margin-bottom:18px;display:inline-flex}.detailBack:hover{text-underline-offset:3px;text-decoration:underline}.detailCard{max-width:760px}.detailCard dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:0 0 20px;display:grid}.detailCard dl div{border-bottom:1px solid var(--line);padding:12px 0}.detailCard dl div:nth-child(odd){padding-right:20px}.detailCard dt{color:var(--ink-3);font-size:var(--text-xs);font-weight:var(--fw-semi)}.detailCard dd{font-weight:var(--fw-medium);margin:2px 0 0}.lessonChangeNote{border:1px solid var(--warn-line);border-radius:var(--r-md);background:var(--warn-soft);color:var(--warn);padding:10px 12px}.profilePage{gap:var(--sp-5);max-width:720px;display:grid}.profileTone--blue{--tone-wash:#f1f7ff;--tone-field:#deecff;--tone-line:#cedff9;--tone-arc:#d9e9ff8c}@supports (color:lab(0% 0 0)){.profileTone--blue{--tone-wash:lab(96.9355% -1.04359 -6.28934);--tone-field:lab(92.8885% -2.34211 -16.4472);--tone-line:lab(88.2676% -2.12464 -14.6383);--tone-arc:lab(91.7066% -2.51004 -18.2359/.55)}}.profileTone--violet{--tone-wash:#f6f4ff;--tone-field:#ede7ff;--tone-line:#e0d9f7;--tone-arc:#eae3ff8c}@supports (color:lab(0% 0 0)){.profileTone--violet{--tone-wash:lab(96.5517% 2.95097 -6.42437);--tone-field:lab(92.512% 7.7256 -16.0622);--tone-line:lab(87.9407% 6.72671 -14.0734);--tone-arc:lab(91.3042% 8.41487 -17.3754/.55)}}.profileTone--teal{--tone-wash:#e8fbfa;--tone-field:#c7f6f6;--tone-line:#c0e7e7;--tone-arc:#c2f3f38c}@supports (color:lab(0% 0 0)){.profileTone--teal{--tone-wash:lab(97.0797% -6.48701 -2.15038);--tone-field:lab(93.5464% -15.5721 -5.12608);--tone-line:lab(88.8223% -12.9763 -4.27785);--tone-arc:lab(92.4073% -16.2211 -5.33658/.55)}}.profileTone--green{--tone-wash:#eafbf1;--tone-field:#cff6e0;--tone-line:#c7e7d5;--tone-arc:#cbf3dd8c}@supports (color:lab(0% 0 0)){.profileTone--green{--tone-wash:lab(97.0502% -7.09739 2.66478);--tone-field:lab(93.7148% -16.2236 6.07839);--tone-line:lab(88.9673% -13.6107 5.10178);--tone-arc:lab(92.5815% -16.8814 6.32362/.55)}}.profileTone--amber{--tone-wash:#fff6e4;--tone-field:#fde9c0;--tone-line:#f0e0be;--tone-arc:#fde9c08c}@supports (color:lab(0% 0 0)){.profileTone--amber{--tone-wash:lab(97.203% .714839 10.014);--tone-field:lab(93.2367% 2.16427 22.8368);--tone-line:lab(89.7297% 1.67242 18.7841);--tone-arc:lab(93.2367% 2.16427 22.8368/.55)}}.profileTone--rose{--tone-wash:#fff1f7;--tone-field:#ffe1ee;--tone-line:#f4d4e1;--tone-arc:#ffddeb8c}@supports (color:lab(0% 0 0)){.profileTone--rose{--tone-wash:lab(96.3855% 6.35409 -.94372);--tone-field:lab(92.4329% 15.2977 -2.28038);--tone-line:lab(87.8722% 13.3136 -1.98354);--tone-arc:lab(91.22% 16.6131 -2.47791/.55)}}.profileIdentity{min-height:300px;padding:var(--sp-8) var(--sp-7) var(--sp-7);border:1px solid var(--tone-line);border-radius:var(--r-xl);background:var(--panel);box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.profileToneField{background:radial-gradient(115% 85% at 8% 0%, var(--tone-field) 0%, transparent 62%), linear-gradient(180deg, var(--tone-wash) 0%, var(--panel) 66%);position:absolute;inset:0}.profileToneField:after{content:"";border:20px solid var(--tone-arc);border-radius:999px;width:420px;height:420px;position:absolute;top:-190px;right:-150px}.profileIdentityMain{position:relative}.profileNameLine{margin-top:var(--sp-5)}.profileName{color:var(--ink);font-size:var(--text-2xl);font-weight:var(--fw-bold);font-optical-sizing:auto;letter-spacing:-.018em;overflow-wrap:anywhere;margin:0;line-height:1.2}.profileAccount{margin:var(--sp-1) 0 0;color:var(--ink-2);font-size:var(--text-md);font-weight:var(--fw-medium)}.profileBio{margin:var(--sp-5) 0 0;max-width:54ch;color:var(--ink);font-size:var(--text-lg);overflow-wrap:anywhere;text-wrap:pretty;line-height:1.55}.profileNote{margin:var(--sp-5) 0 0;max-width:54ch;color:var(--ink-3);font-size:var(--text-md)}.profileIdentityAction{margin:var(--sp-6) 0 0}.profilePrivate{padding:var(--sp-6);border:1px solid var(--line);border-radius:var(--r-xl);background:var(--panel);box-shadow:var(--shadow-sm)}.profilePrivate h2{color:var(--ink-2);font-size:var(--text-base);font-weight:var(--fw-semi);align-items:center;gap:7px;margin:0;display:flex}.profilePrivate h2 svg{color:var(--ink-3);flex:none}.profilePrivateNote{margin:var(--sp-1) 0 var(--sp-4);color:var(--ink-3);font-size:var(--text-sm)}.profilePrivateActions{gap:var(--sp-2);margin-top:var(--sp-5);flex-wrap:wrap;display:flex}.profileFacts{grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:0;display:grid}.profileFacts>div{border-bottom:1px solid var(--line);padding:10px 0}.profileFacts>div:nth-child(odd){padding-right:var(--sp-5)}.profileFacts dt{color:var(--ink-3);font-size:var(--text-xs);font-weight:var(--fw-semi)}.profileFacts dd{font-weight:var(--fw-medium);overflow-wrap:anywhere;margin:2px 0 0}.profilePrivate .profileFacts>div:last-child:nth-child(odd){grid-column:1/-1;padding-right:0}@media (prefers-contrast:more){.profileIdentity{border-color:var(--line-strong)}}.profileForm{gap:var(--sp-5);max-width:640px;margin-bottom:var(--sp-8);display:grid}.profileForm>.uiField{gap:4px}.profileCount{color:var(--ink-3);font-size:var(--text-xs);font-variant-numeric:tabular-nums;margin:-14px 0 0}.profileColors .uiRadioOptions{gap:var(--sp-2) var(--sp-5);flex-wrap:wrap;display:flex}.profileInstitution{max-width:640px}.profileInstitution .meta{margin-bottom:var(--sp-2)}.supportForm{gap:var(--sp-5);max-width:640px;display:grid}.supportForm>.uiField{gap:4px}.supportCount{color:var(--ink-3);font-size:var(--text-xs);font-variant-numeric:tabular-nums;text-align:right;margin:-14px 0 0}.personLink{align-items:center;gap:var(--sp-2);border-radius:var(--r-sm);min-width:0;color:inherit;font-weight:inherit;text-decoration:none;display:inline-flex}.personLink .personName{overflow-wrap:anywhere}.personLink:hover .personName{text-underline-offset:2px;text-decoration:underline}.personLink:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.personLink:active{color:var(--accent-strong)}.communityAuthor .personLink{font-weight:var(--fw-semi)}.lessonIndexToolbar{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px 12px;margin-bottom:18px;display:grid}.lessonSearch{width:min(420px,100%)}.lessonSearch input{background:var(--panel);min-height:38px}.lessonToolbarSelects{justify-self:end;gap:8px;display:inline-flex}.lessonToolbarSelects .uiChoiceField{width:auto;min-height:38px;font-size:var(--text-base)}.lessonUpNext{border:1px solid var(--accent-soft-line);border-radius:var(--r-lg);background:var(--accent-soft);transition:box-shadow var(--dur-fast) var(--ease-out-quart), transform var(--dur-fast) var(--ease-out-quart);gap:2px;margin-bottom:18px;padding:14px 18px;display:grid}.lessonUpNext:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.lessonUpNext:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.lessonUpNextLabel{color:var(--accent-strong);font-size:var(--text-xs);font-weight:var(--fw-bold)}.lessonUpNextTitle{font-weight:var(--fw-bold);letter-spacing:-.005em}.lessonUpNextMeta{color:var(--ink-2);font-size:var(--text-sm)}.lessonIndexBody{transition:opacity var(--dur-fast) var(--ease-out-quart);gap:16px;display:grid}.lessonIndexBody.isRefreshing{opacity:.6}.lessonCourseGroup{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--panel);box-shadow:var(--shadow-sm);overflow:hidden}.lessonCourseHead{border-bottom:1px solid var(--line);background:#fbfcff;justify-content:space-between;align-items:center;gap:16px;padding:14px 20px;display:flex}.lessonCourseHeadMain{min-width:0}.lessonCourseCode{color:var(--ink-3);font-size:var(--text-xs);font-weight:var(--fw-bold)}.lessonCourseHead h2{font-size:var(--text-md);font-weight:var(--fw-bold);letter-spacing:-.005em;margin:1px 0 0}.lessonCourseHead h2 a:hover{color:var(--accent-strong);text-underline-offset:3px;text-decoration:underline}.lessonCourseTeachers{color:var(--ink-2);font-size:var(--text-sm);margin-top:1px;display:block}.lessonCourseProgress{flex-shrink:0;justify-items:end;gap:5px;display:grid}.lessonCourseProgress>span:first-child{color:var(--ink-2);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.lessonProgressTrack{background:var(--panel-2);border:1px solid var(--line);border-radius:999px;width:120px;height:4px;display:block;overflow:hidden}.lessonProgressFill{border-radius:inherit;background:linear-gradient(90deg, var(--brand-blue), var(--brand-violet));transform-origin:0;height:100%;transition:transform var(--dur-slow) var(--ease-out-quint);display:block}.listRowList{display:block}.listRowList>li{padding:0}.listRowList>li+li{border-top:1px solid var(--line)}.listRow{min-height:68px;transition:background-color var(--dur-fast) var(--ease-out-quart);align-items:center;gap:14px;padding:13px 22px;display:flex}.listRow:hover{background:var(--panel-2)}.listRow:active{background:var(--accent-soft)}.listRow:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.courseDot{border:1.5px solid var(--line-strong);color:#fff;border-radius:999px;flex-shrink:0;place-items:center;width:18px;height:18px;display:grid}.courseDot.inProgress{border-color:var(--accent);background:linear-gradient(90deg, var(--accent) 50%, transparent 50%)}.courseDot.completed{border-color:var(--ok);background:var(--ok)}.courseDot.locked{border-style:dashed}.courseDot.expired{border-color:var(--line);background:var(--panel-2)}.courseDot.submitted{border-color:var(--accent);background:var(--accent)}.courseDot.overdue{border-color:var(--danger);background:var(--danger-soft)}.listRowMain{flex:1;gap:2px;min-width:0;display:grid}.listRowTitle{-webkit-line-clamp:2;overflow-wrap:anywhere;font-size:var(--text-md);font-weight:var(--fw-bold);-webkit-box-orient:vertical;line-height:1.35;display:-webkit-box;overflow:hidden}.listRowMeta{color:var(--ink-2);font-size:var(--text-sm);overflow-wrap:anywhere}.listRowSide{text-align:right;flex-shrink:0;justify-items:end;gap:3px;display:grid}.listRowSide time{color:var(--ink-3);font-size:var(--text-xs);font-variant-numeric:tabular-nums;white-space:nowrap}.listRowSide time.isOverdue{color:var(--danger);font-weight:var(--fw-semi)}.listRowState{font-size:var(--text-xs);font-weight:var(--fw-semi);color:var(--ink-3)}.listRowState.upcoming{color:var(--warn)}.listRowSkeleton{gap:14px;padding:20px 22px;display:grid}.courseHeadPending{justify-items:start;gap:7px;display:grid}.courseHeadPending .skeletonBar:first-child{height:19px}.courseHeadPending .skeletonBar:nth-child(2){height:29px}.courseHeadPending .skeletonBar:nth-child(3){height:21px}.courseHeadUnavailable{color:var(--ink-3);font-size:var(--text-md);margin:0;padding-block:30px}.lessonPageSkeleton{gap:12px;display:grid}.lessonCrumbs{color:var(--ink-3);font-size:var(--text-sm);flex-wrap:wrap;align-items:baseline;gap:8px;margin-bottom:16px;display:flex}.lessonCrumbs a{color:var(--ink-2);font-weight:var(--fw-medium);border-radius:var(--r-sm)}@media (pointer:coarse){.lessonCrumbs a{align-items:center;min-height:44px;display:inline-flex}}.lessonCrumbs a:hover{color:var(--accent-strong);text-underline-offset:3px;background:0 0;text-decoration:underline}.lessonCrumbs [aria-current]{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;max-width:34ch;overflow:hidden}.coursePage{width:100%}.coursePage .lessonCrumbs{margin-bottom:12px}.courseHead{border:1px solid var(--line);background:var(--panel);border-radius:18px 18px 0 0;justify-content:space-between;align-items:center;gap:32px;margin-bottom:0;padding:24px 26px 24px 30px;display:flex;position:relative;overflow:hidden}.courseHead:before{content:"";background:var(--course-edge);opacity:.45;width:4px;position:absolute;inset-block:0;inset-inline-start:0}.courseHeadMain,.courseHeadProgress{z-index:1;position:relative}.courseHead .pageContext{color:var(--course-edge);font-size:var(--text-sm);font-weight:var(--fw-semi);margin-bottom:6px}.courseHead h1{font-size:var(--text-2xl);font-weight:var(--fw-bold);letter-spacing:-.015em;text-wrap:balance;margin:0;line-height:1.2}.courseHeadTeachers{color:var(--ink-2);font-size:var(--text-base);margin:9px 0 0}.courseHeadProgress{flex-shrink:0;grid-template-columns:auto auto;place-items:baseline end;gap:2px 10px;min-width:170px;display:grid}.courseProgressNumber{color:var(--ink);font-size:var(--text-2xl);font-weight:var(--fw-bold);letter-spacing:-.03em;font-variant-numeric:tabular-nums}.courseHeadProgressText{color:var(--ink-2);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.courseHeadProgress .lessonProgressTrack{grid-column:1/-1;width:100%;margin-top:5px}.courseToolbar{border:1px solid var(--line);background:var(--panel);border-top:0;border-radius:0 0 18px 18px;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px;padding:10px 12px;display:flex}.courseSearch{width:min(260px,100%);height:var(--control-h);margin:0;display:block}.courseSearch input{min-height:var(--control-h);height:var(--control-h);background:var(--panel);font-size:var(--text-sm);border-color:#0000}.courseToolbar{min-height:calc(var(--control-h) + 20px)}.courseBody{grid-template-columns:264px minmax(0,1fr);align-items:start;gap:16px;display:grid}.courseBody.isSingleSection{grid-template-columns:minmax(0,1fr)}.courseBody.isSingleSection .courseIndex,.courseBody.isSingleSection .courseSectionPicker,.courseSectionPicker{display:none}.courseIndex{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--panel);box-shadow:var(--shadow-sm);position:sticky;top:72px;overflow:hidden}.courseIndex ul{width:100%;display:block}.courseIndex li{padding:0}.courseIndex button{width:100%;color:var(--ink-2);text-align:left;font:inherit;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out-quart), color var(--dur-fast) var(--ease-out-quart);background:0 0;border:0;gap:1px;padding:12px 16px;display:grid}.courseIndex button:hover{background:var(--panel-2);color:var(--ink)}.courseIndex button:active{background:var(--accent-soft)}.courseIndex button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.courseIndex button.isCurrent{background:var(--accent-soft);color:var(--ink)}.courseIndex button.isCurrent .courseIndexTitle{color:var(--accent-strong)}.courseIndexTitle{font-weight:var(--fw-semi);font-size:var(--text-base)}.courseIndexMeta{color:var(--ink-3);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.courseSectionMain,.listPanel{border:1px solid var(--line);background:var(--panel);border-radius:14px;overflow:hidden}.listPanel{margin-bottom:16px}.dashGrid{display:grid}@media (min-width:1080px){.dashGrid{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:start;column-gap:16px}.dashGrid>:first-child{grid-area:1/2}.dashGrid>:nth-child(2){grid-area:1/1}.dashGrid>:nth-child(3){grid-area:2/1}.dashGrid>:nth-child(4){grid-area:2/2}}.listPanelHead{justify-content:space-between;align-items:baseline;gap:var(--sp-4);border-bottom:1px solid var(--line);background:#fcfcfd;padding:16px 22px 14px;display:flex}.listPanelHeadMain{min-width:0}.listPanelHead h2{font-size:var(--text-lg);font-weight:var(--fw-bold);letter-spacing:-.015em;margin:0}.listPanelHead p{color:var(--ink-2);font-size:var(--text-sm);max-width:65ch;margin:4px 0 0}.listPanelAction{flex:none}.panelLink{color:var(--accent-strong);font-size:var(--text-sm);font-weight:var(--fw-semi);white-space:nowrap;border-radius:var(--r-sm)}.panelLink:hover{text-underline-offset:3px;text-decoration:underline}@media (pointer:coarse){.listPanelHead{align-items:center}.panelLink,.portalFooter a{align-items:center;min-height:44px;display:inline-flex}}.listEmpty{justify-items:start;gap:var(--sp-3);color:var(--ink-2);padding:22px;display:grid}.listEmpty p{max-width:60ch;margin:0}.listPanelHead .courseSectionUpcoming{color:var(--warn);font-weight:var(--fw-semi)}.courseSectionEmpty{color:var(--ink-3);padding:24px 20px}.courseSectionNav{border-top:1px solid var(--line);background:#fbfcff;justify-content:space-between;gap:12px;padding:12px 16px;display:flex}.courseSectionNav button{min-height:var(--control-h);border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel);max-width:46%;color:var(--ink-2);text-align:left;cursor:pointer;transition:color var(--dur-fast) var(--ease-out-quart), border-color var(--dur-fast) var(--ease-out-quart), background-color var(--dur-fast) var(--ease-out-quart);gap:1px;padding:7px 12px;display:grid}.courseSectionNav button.isNext{text-align:right}.courseSectionNavLabel{color:var(--ink-3);font-size:var(--text-xs);font-weight:var(--fw-semi)}.courseSectionNavTitle{color:var(--ink);font-size:var(--text-sm);font-weight:var(--fw-semi);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.courseSectionNav button:hover .courseSectionNavTitle{color:var(--accent-strong)}.courseSectionNav button:hover{color:var(--accent-strong);border-color:var(--line-strong);background:var(--panel-2)}.courseSectionNav button:active{background:var(--accent-soft)}.courseSectionNav button:disabled{opacity:.5;cursor:not-allowed}.lessonPage{grid-template-columns:minmax(0,1fr) 288px;align-items:start;gap:24px;display:grid}.lessonMain{min-width:0;max-width:68ch}.lessonHead{margin-bottom:8px}.lessonHeadSection{color:var(--accent-strong);font-size:var(--text-sm);font-weight:var(--fw-bold);margin:0 0 4px}.lessonHead h1{font-size:var(--text-2xl);font-weight:var(--fw-bold);letter-spacing:-.015em;margin:0;line-height:1.25}.lessonSummary{color:var(--ink-2);font-size:var(--text-md);text-wrap:pretty;margin:8px 0 0;line-height:1.55}.lessonHeadMeta{border-bottom:1px solid var(--line);color:var(--ink-2);font-size:var(--text-sm);flex-wrap:wrap;gap:6px 0;margin:12px 0 0;padding-bottom:16px;display:flex}.lessonHeadMeta>span+span:before{content:"·";color:var(--ink-3);margin:0 8px}.lessonHeadDone{color:var(--ok);font-weight:var(--fw-bold)}.lessonCompletion{border:1px solid var(--line);border-radius:var(--r-lg);background:#fbfcff;margin-top:28px;padding:16px 18px}.lessonCompletion p{color:var(--ink-2);font-size:var(--text-md);margin:0 0 10px}.courseInlineError,.courseModalError,.lessonCompletion .lessonProgressError{color:var(--danger);font-size:var(--text-xs);font-weight:var(--fw-medium);line-height:1.35}.lessonPager{justify-content:space-between;gap:12px;margin-top:20px;display:flex}.lessonPagerLink{border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel);max-width:46%;transition:border-color var(--dur-fast) var(--ease-out-quart), background-color var(--dur-fast) var(--ease-out-quart);gap:1px;padding:10px 14px;display:grid}.lessonPagerLink:hover{border-color:var(--accent-soft-line);background:var(--accent-soft)}.lessonPagerLink.next{text-align:right}.lessonPagerLink span{color:var(--ink-3);font-size:var(--text-xs);font-weight:var(--fw-semi)}.lessonPagerLink strong{font-size:var(--text-base);font-weight:var(--fw-semi);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.lessonAside{gap:12px;display:grid;position:sticky;top:72px}.lessonAsideCard{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--panel);box-shadow:var(--shadow-sm);padding:14px 16px}.lessonAsideCard h2{color:var(--ink-3);font-size:var(--text-xs);font-weight:var(--fw-bold);margin:0 0 8px}.lessonAsideStrong{font-weight:var(--fw-semi);font-size:var(--text-md);margin:0}.lessonAsideMeta{color:var(--ink-2);font-size:var(--text-sm);margin:2px 0 0}.lessonAsideNote{border:1px solid var(--warn-line);border-radius:var(--r-sm);background:var(--warn-soft);color:var(--warn);font-size:var(--text-sm);margin:8px 0 0;padding:8px 10px}.lessonAsideLink{color:var(--accent-strong);font-size:var(--text-sm);font-weight:var(--fw-semi);margin-top:8px;display:inline-flex}.lessonAsideLink:hover{text-underline-offset:3px;text-decoration:underline}.lessonWorkList{gap:0;display:grid}.lessonWorkList li{padding:0}.lessonWorkList a{border-radius:var(--r-sm);transition:background-color var(--dur-fast) var(--ease-out-quart);gap:1px;margin-inline:-8px;padding:10px 8px;display:grid}.lessonWorkList a:hover{background:var(--panel-2)}.lessonWorkList strong{font-size:var(--text-base);font-weight:var(--fw-semi)}.lessonWorkList span{color:var(--ink-2);font-size:var(--text-xs)}.lessonWorkState{font-weight:var(--fw-bold)}.lessonWorkState.submitted,.lessonWorkState.graded{color:var(--ok)}.lessonWorkState.late{color:var(--danger)}.lessonWorkState.returned{color:var(--warn)}.lessonLocked{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--panel);text-align:center;justify-items:center;gap:8px;max-width:560px;margin:48px auto;padding:40px 28px;display:grid}.lessonLockedArt{background:var(--accent-soft);width:52px;height:52px;color:var(--accent-strong);border-radius:999px;place-items:center;display:grid}.lessonLocked h1{font-size:var(--text-xl);font-weight:var(--fw-bold);margin:4px 0 0}.lessonLocked p{color:var(--ink-2);max-width:44ch;margin:0}.sessionHead{margin-bottom:18px}.sessionHead .badge{margin-top:8px}.sessionDetail{gap:16px;max-width:640px;display:grid}.sessionFacts{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--panel);box-shadow:var(--shadow-sm);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid;overflow:hidden}.sessionFacts>div{border-bottom:1px solid var(--line);padding:14px 18px}.sessionFacts>div:nth-child(odd){border-right:1px solid var(--line)}.sessionFacts>div:nth-last-child(-n+2){border-bottom:0}.sessionFacts dt{color:var(--ink-3);font-size:var(--text-xs);font-weight:var(--fw-bold)}.sessionFacts dd{font-weight:var(--fw-medium);font-size:var(--text-md);margin:2px 0 0}.sessionFacts a{color:var(--accent-strong);font-weight:var(--fw-semi)}.sessionFacts a:hover{text-underline-offset:3px;text-decoration:underline}.sessionMaterials{border:1px solid var(--accent-soft-line);border-radius:var(--r-lg);background:var(--accent-soft);transition:box-shadow var(--dur-fast) var(--ease-out-quart), transform var(--dur-fast) var(--ease-out-quart);gap:2px;padding:16px 18px;display:grid}.sessionMaterials:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.sessionMaterials:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sessionMaterialsLabel{color:var(--accent-strong);font-size:var(--text-xs);font-weight:var(--fw-bold)}.sessionMaterials strong{font-weight:var(--fw-bold)}.sessionMaterialsHint{color:var(--ink-2);font-size:var(--text-sm)}.sessionNoMaterials{border:1px dashed var(--line-strong);border-radius:var(--r-lg);color:var(--ink-2);margin:0;padding:14px 18px}.calendarEventMaterials{color:var(--accent-strong);font-size:var(--text-2xs);font-weight:var(--fw-bold);align-items:center;gap:4px;display:inline-flex}.calendarEventMaterialsDot{background:var(--accent);border-radius:999px;width:5px;height:5px}@media (max-width:1120px){.top nav>a,.navDropdown>summary{padding-inline:10px}}@media (max-width:920px){.top{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;min-height:58px;padding:8px 16px;display:grid}.topActions{justify-self:end}.menuButton{display:inline-flex}.menuButton:after{content:"";position:absolute;inset:-4px}.top nav{height:calc(100dvh - 58px);z-index:var(--z-drawer);width:100%;padding:8px 16px max(24px, env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--panel);opacity:0;pointer-events:none;visibility:hidden;transition:opacity var(--dur) var(--ease-out-quart), transform var(--dur) var(--ease-out-quart), visibility var(--dur) var(--ease-out-quart);align-content:start;display:grid;position:absolute;top:100%;left:0;right:0;overflow:auto;transform:translateY(-6px)}.top.menuOpen{background:var(--panel);-webkit-backdrop-filter:none}.top.menuOpen nav{opacity:1;pointer-events:auto;visibility:visible;transform:translateY(0)}.top nav>a,.navDropdown>summary{border-bottom:1px solid var(--line);min-height:52px;color:var(--ink);font-size:var(--text-lg);font-weight:var(--fw-medium);background:0 0;border-radius:0;padding:14px 10px}.top nav>a:last-of-type{border-bottom:1px solid var(--line)}.top nav>a.active,.navDropdown.active>summary{color:var(--accent-strong);font-weight:var(--fw-medium);background:0 0}.navDropdown{width:100%}.navDropdown>summary{justify-content:space-between}.navDropdownMenu{border:0;border-bottom:1px solid var(--line);width:auto;box-shadow:none;background:0 0;border-radius:0;gap:1px;padding:2px 0 8px 18px;animation:none;position:static;transform:none}.navDropdownMenu a{border-radius:var(--r-sm);min-height:48px;font-size:var(--text-base);border:0;padding:7px 10px}.navDropdownMenu a.active{background:var(--accent-soft)}main:where(:not(.legalMain)){width:min(100% - 32px,1120px);margin-top:24px}.two,.three,.four{grid-template-columns:minmax(0,1fr)}.grid.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.lessonPage{grid-template-columns:minmax(0,1fr)}.lessonAside{position:static}.courseBody{grid-template-columns:minmax(0,1fr)}.courseIndex{display:none}.courseSectionPicker{margin-bottom:4px;display:grid}.courseHead{flex-direction:column;align-items:stretch;gap:10px}.courseHead:after{top:-275px;right:-230px}.courseHeadProgress{grid-template-columns:auto 1fr;justify-items:start}.courseToolbar{flex-direction:column;align-items:stretch;gap:10px;padding:10px 14px 14px}.coursePageTabs,.courseSearch{width:100%}}@media (max-width:560px){.top{min-height:54px;padding:6px 12px}.top .mark{width:30px;height:30px}.accountTriggerName,.accountChevron{display:none}.accountTrigger{justify-content:center;min-width:44px;padding:4px}.top nav{height:calc(100dvh - 54px)}main:where(:not(.legalMain)){width:min(100% - 24px,1120px)}.detailCard dl,.profileFacts{grid-template-columns:1fr}.detailCard dl div:nth-child(odd),.profileFacts>div:nth-child(odd){padding-right:0}.profileIdentity{min-height:240px;padding:var(--sp-6) var(--sp-4) var(--sp-5)}.profileToneField:after{top:-215px;right:-250px}.profileIdentity .avatar-xl{width:76px;height:76px;font-size:1.75rem}.profileName{font-size:var(--text-xl)}.profileBio{font-size:var(--text-md)}.profilePrivate{padding:var(--sp-4)}.scheduleToolbar{flex-direction:column;align-items:stretch;gap:10px}.scheduleToolbar .tabs{align-self:flex-start}.calendarNav{flex-wrap:wrap;row-gap:2px;width:100%;display:flex}.calendarNav>strong{min-width:0;font-size:var(--text-xs);text-align:center;flex:1 0 100%;order:-1;padding-block:4px}.calendarNavButton{flex:none}.calendarTodayButton{border-inline:0;flex:1}.gradeSummary{grid-template-columns:1fr}.gradeSummary>div{border-right:0;border-bottom:1px solid var(--line);grid-template-columns:1fr auto;align-items:baseline}.gradeSummary>div:last-child{border-bottom:0}.gradeSummary strong{font-size:var(--text-xl);grid-area:1/2/span 2}.gradeToolbar{flex-direction:column;align-items:stretch;gap:6px}.gradeSearchCount{align-self:flex-end}.lessonIndexToolbar{grid-template-columns:minmax(0,1fr)}.lessonToolbarSelects{justify-self:start;width:100%}.lessonToolbarSelects label{flex:1}.lessonToolbarSelects .uiChoiceField{width:100%}.lessonFilters{grid-template-columns:repeat(2,1fr);width:100%;display:grid}.lessonFilters button{padding-inline:6px}.lessonSearch{width:100%}.listRow{flex-wrap:wrap;row-gap:7px;padding-inline:14px}.nextUp{flex-wrap:wrap;row-gap:6px;padding-inline:14px}.nextUpWhen{flex-basis:100%;padding-inline-start:62px}.listRowSide{text-align:left;flex-basis:100%;grid-auto-flow:column;justify-content:start;place-items:center start;gap:10px;padding-inline-start:32px}.lessonCourseHead{flex-direction:column;align-items:stretch;gap:8px;padding:12px 14px}.lessonCourseProgress{justify-items:start}.lessonPager{flex-direction:column}.lessonPagerLink{max-width:none}.lessonPagerLink.next{text-align:left}.sessionFacts{grid-template-columns:minmax(0,1fr)}.sessionFacts>div:nth-child(odd){border-right:0}.sessionFacts>div:nth-last-child(-n+2){border-bottom:1px solid var(--line)}.sessionFacts>div:last-child{border-bottom:0}.lessonHeadMeta>span+span:before{margin:0 6px}.courseSectionNav{flex-direction:column}.courseSectionNav button{max-width:none}.courseHead{padding:22px 20px}.courseHeadProgress{min-width:0}.duePill,.scorePill{min-width:46px;padding-inline:7px}}.courseSearch{flex:none;width:min(320px,100%)}.courseSearch input{border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel);width:100%;min-height:42px;color:var(--ink);font:inherit;padding:9px 12px}.courseCatalogToolbar{margin-bottom:var(--sp-5);border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-end;gap:24px;display:flex}.courseCatalogSearch{width:min(300px,100%);margin-bottom:7px}.courseCatalogSearch input{min-height:36px}.courseViewTabs{flex:none;margin:0}.courseTheme--1{--course-edge:#1c65c8}@supports (color:lab(0% 0 0)){.courseTheme--1{--course-edge:lab(42.8111% 7.80365 -59.0146)}}.courseTheme--2{--course-edge:#6a43c4}@supports (color:lab(0% 0 0)){.courseTheme--2{--course-edge:lab(38.8384% 40.1574 -62.5928)}}.courseTheme--3{--course-edge:#00696d}@supports (color:lab(0% 0 0)){.courseTheme--3{--course-edge:lab(39.3854% -28.0992 -11.5121)}}.courseTheme--4{--course-edge:#056641}@supports (color:lab(0% 0 0)){.courseTheme--4{--course-edge:lab(37.5155% -33.4705 13.1338)}}.courseTheme--5{--course-edge:#8a5600}@supports (color:lab(0% 0 0)){.courseTheme--5{--course-edge:lab(41.7465% 18.1642 51.2672)}}.courseTheme--6{--course-edge:#9d3265}@supports (color:lab(0% 0 0)){.courseTheme--6{--course-edge:lab(38.8821% 48.2443 -4.35996)}}.myCourseAction{gap:var(--sp-4);flex-wrap:nowrap}.myCourseProgress{gap:5px;width:132px;display:grid}.myCourseProgressText{color:var(--ink-2);font-size:var(--text-sm);font-variant-numeric:tabular-nums;text-align:left}.myCourseProgressText b{color:var(--ink);font-weight:var(--fw-bold)}.myCourseProgressText.isQuiet{color:var(--ink-3)}.myCourseRow .lessonProgressTrack{width:100%;height:6px}.myCourseRow .lessonProgressFill{transition-duration:.2s}.myCourseGo{min-height:34px;padding:0 var(--sp-3);border:1px solid var(--line);background:var(--panel);color:var(--accent-strong);font-size:var(--text-sm);font-weight:var(--fw-semi);white-space:nowrap;transition:border-color var(--dur-fast) var(--ease-out-quart), background-color var(--dur-fast) var(--ease-out-quart);border-radius:999px;align-items:center;gap:6px;display:inline-flex}@media (hover:hover) and (pointer:fine){.myCourseRow:has(.catalogRowTarget:hover) .myCourseGo{border-color:var(--accent-soft-line);background:var(--accent-soft)}}.myCourseRow:has(.catalogRowTarget:active) .myCourseGo{background:var(--accent-soft-line)}.catalogList{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--panel);box-shadow:var(--shadow-sm);margin:0;padding:0;list-style:none;display:grid;overflow:hidden}.catalogRow{column-gap:var(--sp-5);border-bottom:1px solid var(--line);transition:background-color var(--dur-fast) var(--ease-out-quart), box-shadow var(--dur-fast) var(--ease-out-quart);grid-template-columns:4px minmax(0,1fr) auto;align-items:center;padding:0;display:grid;position:relative}.catalogRow:last-child{border-bottom:0}.catalogRowTarget{z-index:1;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:0;padding:0;position:absolute;inset:0}.catalogRowTarget:disabled{cursor:wait}.catalogRowTarget:focus-visible{outline:0}.catalogRow:first-child .catalogRowTarget{border-start-start-radius:var(--r-lg);border-start-end-radius:var(--r-lg)}.catalogRow:last-child .catalogRowTarget{border-end-end-radius:var(--r-lg);border-end-start-radius:var(--r-lg)}@media (hover:hover) and (pointer:fine){.catalogRow.isInteractive:has(.catalogRowTarget:not(:disabled)):hover{background:var(--panel-2)}}.catalogRow:has(.catalogRowTarget:focus-visible){z-index:1;box-shadow:inset 0 0 0 2px var(--accent)}.catalogRow.isInteractive:has(.catalogRowTarget:not(:disabled):active){background:var(--accent-soft)}@media (forced-colors:active){.catalogRow:has(.catalogRowTarget:focus-visible){outline-offset:-2px;box-shadow:none;outline:2px solid highlight}}.catalogSwatch{background:var(--course-edge);opacity:.45;grid-area:1/1/-1;align-self:stretch}.catalogMain{min-width:0;padding:var(--sp-4) 0;grid-column:2}.catalogMeta{color:var(--ink-3);font-size:var(--text-xs);font-weight:var(--fw-semi);flex-wrap:wrap;align-items:baseline;gap:0 7px;margin:0;display:flex}.catalogCode{color:var(--course-edge);font-weight:var(--fw-bold);letter-spacing:.05em;text-transform:uppercase}.catalogTitle{color:var(--ink);font-size:var(--text-md);font-weight:var(--fw-bold);letter-spacing:-.008em;margin:2px 0 0;line-height:1.3}.catalogDescription{color:var(--ink-3);font-size:var(--text-sm);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:3px 0 0;line-height:1.4;display:-webkit-box;overflow:hidden}.catalogPeople{color:var(--ink-2);font-size:var(--text-sm);flex-wrap:wrap;align-items:baseline;gap:0 7px;margin:5px 0 0;display:flex}.catalogTeachers{overflow-wrap:anywhere;min-width:0}.catalogCount{color:var(--ink-3);font-variant-numeric:tabular-nums}.catalogAction{justify-content:flex-end;align-items:center;gap:var(--sp-2);padding:var(--sp-4) var(--sp-5) var(--sp-4) 0;text-align:right;flex-wrap:wrap;grid-column:3;display:flex}.catalogAction .courseInlineError{text-align:right;flex-basis:100%;max-width:260px}.courseStatus{border:1px solid var(--line);background:var(--panel-2);min-height:26px;color:var(--ink-2);font-size:var(--text-xs);font-weight:var(--fw-bold);white-space:nowrap;border-radius:999px;align-items:center;padding:3px 9px;display:inline-flex}.courseStatus.isEnrolled{color:#17633a;background:#eaf8f0;border-color:#a9dec0}.courseStatus.open{border-color:var(--accent-soft-line);background:var(--accent-soft);color:var(--accent-strong)}.courseStatus.password{color:#795514;background:#fff8e8;border-color:#e6d2a2}.courseStatus.closed{color:var(--ink-3)}.coursePasswordForm{gap:var(--sp-2);display:grid}.coursePasswordForm label{color:var(--ink-2);font-size:var(--text-sm);font-weight:var(--fw-semi)}.catalogSkeleton{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--panel);display:grid;overflow:hidden}.catalogSkeleton span{border-bottom:1px solid var(--line);height:97px}.catalogSkeleton span:last-child{border-bottom:0}.catalogSkeleton span{border-color:var(--line);background:var(--panel-2);position:relative;overflow:hidden}.catalogSkeleton span:after{content:"";background:linear-gradient(90deg,#0000,#ffffffb3,#0000);background:linear-gradient(90deg,#0000,lab(100% 0 0/.7),#0000);animation:1.4s ease-out infinite shimmer;position:absolute;inset:0;transform:translate(-100%)}.courseInlineError{max-width:260px}@media (prefers-reduced-motion:reduce){.myCourseRow .lessonProgressFill,.myCourseGo,.catalogRow{transition:none}.catalogSkeleton span:after{animation:none}}@media (prefers-contrast:more){.myCourseGo{border-color:var(--accent-strong)}.courseHead,.courseToolbar{border-color:var(--line-strong)}.coursePageTabs .uiTablineItem.isSelected{outline:1px solid var(--accent-strong);outline-offset:-1px}.catalogList{border-color:var(--line-strong)}.catalogSwatch{opacity:1}.courseStatus{border-color:currentColor}}@media (max-width:760px){.calendarScroller,.calendarEmpty{display:none}.scheduleAgenda{display:block}.courseCatalogToolbar{flex-direction:column-reverse;align-items:stretch;gap:8px}.courseCatalogToolbar .lessonSearch{width:100%;margin-bottom:0}.catalogRow{grid-template-columns:4px minmax(0,1fr)}.catalogMain{padding:var(--sp-4) var(--sp-4) var(--sp-2) 0}.catalogAction{padding:0 var(--sp-4) var(--sp-4) 0;text-align:left;grid-column:2;justify-content:flex-start}.catalogAction .courseInlineError{text-align:left}}.coursePageTabs{border-bottom:0;flex:none;margin:0}.coursePageTabs .uiTablineList{gap:2px;padding:0;overflow:visible}.coursePageTabs .uiTablineItem{border-radius:var(--r-sm);min-height:34px;color:var(--ink-2);font-weight:var(--fw-medium);transition:color var(--dur-fast) var(--ease-out-quart), background-color var(--dur-fast) var(--ease-out-quart);padding:6px 12px}.coursePageTabs .uiTablineItem:after{display:none}@media (pointer:coarse){.coursePageTabs .uiTablineItem{min-height:44px}}.coursePageTabs .uiTablineItem:hover{color:var(--ink);background:var(--panel-2)}.coursePageTabs .uiTablineItem:active{color:var(--ink);background:var(--line)}.coursePageTabs .uiTablineItem.isSelected{color:var(--accent-strong);background:var(--accent-soft);font-weight:var(--fw-medium)}.workDetail{grid-template-columns:minmax(0,1fr) 280px;align-items:start;gap:24px;display:grid}.workMain{gap:20px;display:grid}.workHead h1{margin:4px 0 8px}.workHeadMeta{color:var(--ink-2);font-size:var(--text-md);flex-wrap:wrap;align-items:center;gap:8px 18px;margin:0;display:flex}.workDeadline.isOverdue{color:var(--danger);font-weight:var(--fw-semi)}.workStateChip{font-size:var(--text-sm);font-weight:var(--fw-semi);border:1px solid var(--line);background:var(--panel-2);color:var(--ink-2);border-radius:999px;padding:2px 10px}.workStateChip.ok{color:var(--ok);background:var(--ok-soft);border-color:var(--ok-line)}.workStateChip.warn{color:var(--warn);background:var(--warn-soft);border-color:var(--warn-line)}.workSection{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);padding:18px 20px}.workSection h2{font-size:var(--text-md);margin:0 0 10px}.workSection h3{font-size:var(--text-md);margin:16px 0 8px}.workReturnedNote{background:var(--warn-soft);border:1px solid var(--warn-line);border-radius:var(--r-md);color:var(--warn);padding:12px 16px}.workReturnedNote p{color:var(--ink);margin:6px 0 0}.workGrade{background:var(--accent-soft);border:1px solid var(--accent-soft-line);border-radius:var(--r-lg);padding:18px 20px}.workGrade h2{font-size:var(--text-md);margin:0 0 6px}.workGradeValue{font-size:var(--text-3xl);font-weight:var(--fw-bold);color:var(--accent-strong);margin:0}.workGradeValue small{font-size:var(--text-md);color:var(--ink-2);font-weight:var(--fw-semi)}.workFeedback{background:var(--panel);border:1px solid var(--accent-soft-line);border-radius:var(--r-md);white-space:pre-wrap;margin:10px 0 0;padding:10px 14px}.workSubmittedText{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r-md);white-space:pre-wrap;margin:0 0 10px;padding:10px 14px}.workTextField{font-size:var(--text-base);font-weight:var(--fw-semi);color:var(--ink-2);gap:6px;display:grid}.workTextField textarea{font:inherit;font-weight:var(--fw-regular)}.workDraftState{min-height:1.2em;font-size:var(--text-sm);color:var(--ink-3);margin:4px 0 0}.workSubmitRow{flex-wrap:wrap;align-items:center;gap:12px;margin-top:16px;display:flex}.workAside{gap:16px;display:grid}@media (max-width:920px){.workDetail{grid-template-columns:1fr}}.community{gap:var(--sp-2);flex-direction:column;display:flex}@keyframes badgePop{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}.announcementStrip{gap:var(--sp-2);display:grid}.announcementItem{align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border:1px solid var(--accent-soft-line);border-radius:var(--r-md);background:var(--accent-soft);transition:border-color var(--dur-fast) var(--ease-out-quart), box-shadow var(--dur-fast) var(--ease-out-quart);display:flex}.announcementItem:hover{border-color:var(--accent);box-shadow:var(--shadow-sm)}.announcementItem.unread:before{content:"";background:var(--accent);border-radius:999px;flex:none;width:7px;height:7px}.announcementItem.unread{border-color:var(--accent-soft-line)}.announcementTitle{min-width:0;font-weight:var(--fw-semi);flex:1}.announcementItem .meta{font-variant-numeric:tabular-nums;flex:none}.activityFeed,.notifList,.topicList,.chatList{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--panel);box-shadow:var(--shadow-sm);overflow:hidden}.activityFeed>li.activityRow,.notifList>li.notifRow,.topicList>li.topicRow,.chatList>li.chatListRow{padding:var(--sp-3) var(--sp-4);border-radius:0}.activityFeed,.notifList,.topicList,.postList,.chatList{margin:0;padding:0;list-style:none;display:block}.activityRow,.topicRow,.chatListRow,.notifRow{align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-2);border-bottom:1px solid var(--line);border-radius:var(--r-sm);transition:background-color var(--dur-fast) var(--ease-out-quart);display:flex}.activityRow:last-child,.topicRow:last-child,.chatListRow:last-child,.notifRow:last-child{border-bottom:0}.activityRow:hover,.topicRow:hover,.chatListRow:hover,.notifRow:hover{background:var(--panel-2)}.activityMain,.topicMain,.chatListMain,.notifMain{flex:1;gap:2px;min-width:0;display:grid}.activityTitle,.topicTitle,.chatListName,.notifTitle{color:var(--ink);font-weight:var(--fw-semi);-webkit-line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.activityMain:focus-visible,.topicMain:focus-visible,.chatListMain:focus-visible,.notifMain:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}.chatListSide{text-align:right;flex:none;justify-items:end;gap:3px;display:grid}.chatListSide time{font-variant-numeric:tabular-nums;white-space:nowrap}.topicRow.unread .topicTitle,.notifRow.unread .notifTitle,.chatListRow.unread .chatListName{color:var(--accent-strong)}.topicRow.unread:before,.notifRow.unread:before,.chatListRow.unread:before{content:"";background:var(--accent);border-radius:999px;flex:none;width:7px;height:7px;margin-inline-start:-3px}.filterBar{grid-template-columns:minmax(180px,2fr) repeat(3,minmax(0,1fr));display:grid}.filterBar.lostFoundFilters{grid-template-columns:minmax(180px,2fr) repeat(3,minmax(130px,1fr));align-items:center}.gradeSearch,.lessonSearch,.courseSearch,.courseCatalogSearch{min-width:0;max-width:100%}.gradeSearch input[type=search],.lessonSearch input[type=search],.courseSearch input[type=search],.courseCatalogSearch input[type=search],.filterInput{text-overflow:ellipsis;min-width:0;max-width:100%;overflow:hidden}.marketGrid{gap:var(--sp-4);grid-template-columns:repeat(auto-fill,minmax(232px,1fr));display:grid}.marketCard{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--panel);box-shadow:var(--shadow-sm);transition:border-color var(--dur) var(--ease-out-quart), box-shadow var(--dur) var(--ease-out-quart), transform var(--dur) var(--ease-out-quart);flex-direction:column;display:flex;overflow:hidden}.marketCard:hover{border-color:var(--line-strong);box-shadow:var(--shadow-md);transform:translateY(-2px)}.marketCard:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.marketThumb{aspect-ratio:3/2;border-bottom:1px solid var(--line);background:var(--panel-2);place-items:center;display:grid;position:relative;overflow:hidden}.marketThumb img{object-fit:cover;width:100%;height:100%}.marketThumbEmpty{padding:var(--sp-1) var(--sp-2);color:var(--ink-2);font-size:var(--text-xs);font-weight:var(--fw-medium)}.marketThumb.isEmpty{background-image:repeating-linear-gradient(-45deg,#0000 0 7px,#2768f40b 7px 14px)}.marketThumb:has(.marketThumbEmpty){background-image:repeating-linear-gradient(-45deg,#0000 0 7px,#2768f40b 7px 14px)}.marketThumb.isEmpty:after{content:"No image";padding:var(--sp-1) var(--sp-2);color:var(--ink-2);font-size:var(--text-xs);font-weight:var(--fw-medium)}.marketBody{padding:var(--sp-3) var(--sp-3) var(--sp-4);gap:3px;display:grid}.marketTitle{font-weight:var(--fw-semi);order:-1;line-height:1.3}.marketPrice{color:var(--accent-strong);font-size:var(--text-base);font-weight:var(--fw-bold);font-variant-numeric:tabular-nums}.marketBody .badge{margin-top:var(--sp-1);justify-self:start}.detailLayout{gap:var(--sp-5);grid-template-columns:minmax(0,1fr) 300px;align-items:start;display:grid}.detailMain{min-width:0}.detailRail{gap:var(--sp-3);min-width:0;display:grid}.railActions{align-items:center;gap:var(--sp-3);padding-inline:var(--sp-1);flex-wrap:wrap;display:flex}.imageGallery{gap:var(--sp-2);margin-bottom:var(--sp-3);flex-wrap:wrap;display:flex}.imageGallery img{border:1px solid var(--line);border-radius:var(--r-md);max-width:220px}.imageGallery.editable img{max-width:120px}.editImage{justify-items:center;gap:var(--sp-1);display:grid}.communityAuthor{align-items:center;gap:var(--sp-2);font-weight:var(--fw-semi);display:inline-flex}.categoryGrid{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--line);box-shadow:var(--shadow-sm);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1px;display:grid;overflow:hidden}.categoryCard{padding:var(--sp-3) var(--sp-4);background:var(--panel);transition:background-color var(--dur-fast) var(--ease-out-quart);align-content:start;gap:2px;display:grid}.categoryCard:hover{background:var(--panel-2)}.categoryCard:active{background:var(--accent-soft)}.categoryCard:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.categoryName{font-weight:var(--fw-semi)}.categoryCard .meta:last-child{color:var(--ink-3);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.postRow{align-items:flex-start;gap:var(--sp-3);padding:var(--sp-4) 0;border-bottom:1px solid var(--line);display:flex}.postRow:last-child{border-bottom:0}.postBody{flex:1;min-width:0}.attachments ul{margin:var(--sp-1) 0 0;padding-left:18px}.attachments li{border:0;padding:2px 0}@media (max-width:920px){.detailLayout{grid-template-columns:minmax(0,1fr)}.filterBar.lostFoundFilters{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.lostFoundFilters .filterInput{grid-column:1/-1}}@media (max-width:560px){.marketGrid{gap:var(--sp-3);grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.filterBar{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.filterBar .filterInput{grid-column:1/-1}.chatMsg{max-width:92%}.communityNav{margin-bottom:var(--sp-4)}}@media (prefers-reduced-motion:reduce){.chatMsgBody,.notificationsLink .countBadge{animation:none}}.notificationsLink{border-radius:var(--r-sm);width:36px;height:36px;color:var(--ink-2);transition:color var(--dur-fast) var(--ease-out-quart), background-color var(--dur-fast) var(--ease-out-quart);justify-content:center;align-items:center;display:inline-flex;position:relative}.notificationsLink:after{content:"";position:absolute;inset:-4px}.notificationsLink:hover{color:var(--ink);background:var(--panel-2)}.notificationsLink:active{background:var(--line)}.notificationsLink.active{color:var(--accent-strong);background:var(--accent-soft)}.notificationsLink .countBadge{box-shadow:0 0 0 2px var(--panel);animation:badgePop var(--dur) var(--ease-out-quart) both;position:absolute;top:-2px;right:-3px}.prefToggle{border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel-2);cursor:pointer;transition:border-color var(--dur-fast) var(--ease-out-quart), background-color var(--dur-fast) var(--ease-out-quart);grid-template-columns:36px minmax(0,1fr);align-items:start;gap:12px;padding:14px}.prefToggle:hover{border-color:var(--line-strong)}.legalInlineAction{color:var(--accent-strong);cursor:pointer;font:inherit;font-weight:var(--fw-semi);text-underline-offset:3px;background:0 0;border:0;padding:0;text-decoration:underline}.legalInlineAction:hover{color:var(--accent-pressed)}.legalTranslationStatus{color:var(--ink-2);font-size:var(--text-sm);font-weight:var(--fw-medium);margin-bottom:8px}.legalClosing{border-top:1px solid var(--line);margin-top:42px;padding-top:24px}.termsGatePage{background:var(--canvas);min-height:100dvh;padding:14px max(24px,50% - 560px)}.termsGateState{text-align:center;place-items:center;width:min(640px,100% - 32px);min-height:calc(100dvh - 100px);margin:0 auto;display:grid}.termsGateState h1{margin-bottom:8px}.termsGateState p{color:var(--ink-2);margin:0 0 18px}.termsDialog{max-height:min(92dvh,880px)}.termsDialog .uiDialogBody{min-height:0}.termsDialogScroll{overscroll-behavior:contain;scrollbar-gutter:stable;max-height:min(54dvh,520px);padding:4px 14px 4px 2px;overflow-y:auto}.termsDialogScroll:focus-visible{outline-offset:-2px}.termsDialog .legalArticle{font-size:var(--text-base);line-height:1.6}.termsDialog .legalIntro{margin-bottom:22px;padding:15px 16px}.termsDialog .legalSection+.legalSection{margin-top:22px;padding-top:22px}.termsDialog .legalSection h2{font-size:var(--text-md)}.termsDialogAside{color:var(--ink-3);font-size:var(--text-sm);margin:0}.termsDialogAside a{color:var(--accent-strong);font-weight:var(--fw-semi);text-underline-offset:3px;text-decoration:underline}@media (max-width:560px){.portalFooter{flex-direction:column;gap:5px}.portalFooter>span:after,.portalFooter a+a:before{content:none}.termsGatePage{padding:12px 16px}.termsDialog{max-height:96dvh}.termsDialogScroll{max-height:48dvh;padding-right:8px}}.prefToggle:focus-within{outline:none}.prefToggle.isSelected{border-color:var(--accent-soft-line);background:var(--accent-soft)}.prefToggle[data-disabled]{cursor:not-allowed;opacity:.62}.prefToggle .uiSwitchText{min-width:0;color:var(--ink);font-size:var(--text-base);font-weight:var(--fw-bold)}.prefToggle .uiFieldHint{color:var(--ink-2);font-size:var(--text-sm);text-wrap:pretty;line-height:1.5}.prefStatus{min-height:1.4em;color:var(--ok);font-size:var(--text-sm);font-weight:var(--fw-medium);margin:10px 0 0}@media (max-width:560px){.notifRow{flex-wrap:wrap;align-items:flex-start}.notifRow.unread:before{margin-top:7px}.notifRow .uiActions{width:100%;margin-top:2px}}@media (forced-colors:active){.liveDot{forced-color-adjust:none;background:highlight}.coursePageTabs .uiTablineItem.isSelected{outline-offset:-1px;color:highlight;outline:1px solid highlight}}.calendarEventKind{font-size:var(--text-2xs);font-weight:var(--fw-bold);letter-spacing:.02em;text-transform:uppercase;color:var(--ink-3);align-self:start}.calendarEvent--lecture{border-inline-start:2px solid var(--accent)}.calendarEvent--seminar,.calendarEvent--practice{border-inline-start:2px solid var(--accent-2)}.calendarEvent--lab{border-inline-start:2px solid var(--ok)}.calendarEvent--exam{border-inline-start:2px solid var(--danger)}.calendarEvent--online{border-inline-start:2px solid var(--warn)}.calendarEvent[style*="height: 44px"] .calendarEventKind,.calendarEvent[style*="height: 45px"] .calendarEventKind{display:none}@media (prefers-reduced-motion:reduce){.calendarEvent:hover{transform:none}}.libraryToolbar{gap:var(--sp-3);margin-bottom:var(--sp-3);display:grid}@media (min-width:900px){.libraryToolbar{grid-template-columns:minmax(220px,1fr) auto;align-items:center}}.librarySearch{align-items:center;gap:var(--sp-2);border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel);min-width:0;color:var(--ink-3);padding-inline:12px;display:flex}.librarySearch:focus-within{border-color:var(--accent);outline:2px solid var(--accent);outline-offset:-1px}.librarySearch svg{flex:none}.librarySearch input{width:100%;min-width:0;color:var(--ink);background:0 0;border:0;padding-inline:0}.librarySearch input:focus,.librarySearch input:focus-visible{border-color:#0000;outline:none}.libraryFilters{gap:var(--sp-2);flex-wrap:wrap;min-width:0;display:flex}.libraryFilters .uiChoiceField{min-width:0}.libraryStatus{align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-3);flex-wrap:wrap;display:flex}.libraryStatus p{color:var(--ink-2);font-size:var(--text-sm);font-variant-numeric:tabular-nums;margin:0}.libraryList{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--panel);margin:0;padding:0;list-style:none;display:block;overflow:hidden}.libraryList>li.libraryRow{gap:var(--sp-2) var(--sp-4);padding:14px var(--sp-4);border-bottom:1px solid var(--line);border-radius:0;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;display:grid}.libraryList>li.libraryRow:last-child{border-bottom:0}@media (hover:hover) and (pointer:fine){.libraryRow:hover{background:var(--panel-2)}}.libraryIcon{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--panel-2);width:32px;height:32px;color:var(--ink-2);flex:none;justify-content:center;align-items:center;display:inline-flex}.libraryMain{gap:2px;min-width:0;display:grid}.libraryTitle{color:var(--ink);font-size:var(--text-md);font-weight:var(--fw-semi);overflow-wrap:anywhere;text-wrap:pretty;margin:0;line-height:1.35}.libraryDescription{color:var(--ink-2);font-size:var(--text-sm);text-wrap:pretty;margin:1px 0 0;line-height:1.45}.libraryMeta{color:var(--ink-3);font-size:var(--text-sm);overflow-wrap:anywhere;margin:2px 0 0}.libraryAdded{font-variant-numeric:tabular-nums;white-space:nowrap}.librarySource{color:var(--ink-2);font-size:var(--text-sm);overflow-wrap:anywhere;margin:2px 0 0}.libraryCourseCode{color:var(--ink);font-weight:var(--fw-semi);letter-spacing:.03em}.librarySourceLink{color:var(--accent-strong);font-weight:var(--fw-medium);border-radius:var(--r-sm)}.librarySourceLink:hover{text-underline-offset:3px;text-decoration:underline}.libraryAction{justify-content:flex-end;align-items:center;display:flex}.libraryUnavailable{min-height:var(--control-h-compact);border:1px solid var(--line);background:var(--panel-2);color:var(--ink-3);font-size:var(--text-xs);font-weight:var(--fw-semi);white-space:nowrap;border-radius:999px;align-items:center;padding:3px 10px;display:inline-flex}.libraryList--loading .libraryIcon{border-color:var(--line);background:var(--panel-2)}.libraryList--loading .skeletonBar{display:block}.libraryPager{justify-content:center;align-items:center;gap:var(--sp-4);margin-top:var(--sp-4);display:flex}.libraryPageCount{color:var(--ink-2);font-size:var(--text-sm);font-variant-numeric:tabular-nums}@media (max-width:640px){.libraryList>li.libraryRow{padding:12px var(--sp-4);grid-template-columns:minmax(0,1fr)}.libraryIcon{display:none}.libraryAction{justify-content:flex-start}}@media (pointer:coarse){.libraryAction .uiBtn{min-height:44px}.librarySourceLink{align-items:center;min-height:44px;display:inline-flex}.librarySearch,.librarySearch input{min-height:44px}}
