.ui-icon{flex:none}.ui-icon--nudge-up{translate:0 -.5px}.ui-icon--nudge-down{translate:0 .5px}.ui-icon--nudge-left{translate:-.5px}.ui-icon--nudge-right{translate:.5px}.ui-skip-link{z-index:var(--z-tour);padding:var(--space-2) var(--space-4);background:var(--surface);color:var(--text-primary);border:2px solid var(--focus-ring);border-radius:var(--radius-md);font-weight:var(--weight-semibold);position:absolute;inset-block-start:-4rem;inset-inline-start:var(--space-3)}.ui-skip-link:focus{inset-block-start:var(--space-3)}.ui-deferred>*{animation:ui-fade-in var(--dur-fast) var(--ease-out)}@keyframes ui-pulse{50%{opacity:.45}}@keyframes ui-fade-in{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.ui-skeleton__line{animation:none}}.ui-empty__action a:not(.ui-btn),.ui-error-state a:not(.ui-btn){color:var(--accent-text)}.ui-empty__action a:not(.ui-btn):hover,.ui-error-state a:not(.ui-btn):hover{text-decoration:underline}.ui-error-state{justify-items:center;gap:var(--space-1);max-inline-size:26rem;padding:var(--space-8) var(--space-4);text-align:center;margin-inline:auto;display:grid}.ui-error-state__icon{color:var(--danger-fg);margin-block-end:var(--space-2);display:inline-flex}.ui-error-state__title{color:var(--text-primary);font-size:var(--text-body);font-weight:var(--weight-semibold);line-height:var(--leading-snug);letter-spacing:var(--tracking-subhead);margin:0}.ui-error-state__message{color:var(--text-secondary);font-size:var(--text-sm);line-height:var(--leading-normal);margin:0}.ui-error-state__action{justify-content:center;gap:var(--space-3);flex-wrap:wrap;margin-block-start:var(--space-3);display:flex}.ui-error-state__ref{margin:var(--space-4) 0 0;color:var(--text-tertiary);font-size:var(--text-xs)}.ui-error-state__ref code{font-family:var(--font-mono);color:var(--text-secondary);-webkit-user-select:all;user-select:all}.ui-panel{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.ui-panel__header{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-block-end:1px solid var(--border);display:flex}.ui-panel__title{font-size:var(--text-section)}.ui-panel__actions{align-items:center;gap:var(--space-2);display:flex}.ui-panel__body{padding:var(--card-pad)}.ui-panel__body--flush{padding:0}.ui-panel--plain{background:0 0;border:0;border-radius:0}.ui-panel--plain .ui-panel__header,.ui-panel--plain .ui-panel__body{padding-inline:0}.ui-panel--plain .ui-panel__body--flush{padding:0}.ui-segmented{background:var(--surface-muted);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:2px;display:inline-flex}.ui-segmented__option{display:inline-flex;position:relative}.ui-segmented__input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.ui-segmented__text{min-height:calc(var(--target-min) - 6px);padding:0 var(--space-3);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:var(--text-sm);font-weight:var(--weight-medium);transition:background-color var(--dur-fast) var(--ease-standard), color var(--dur-fast) var(--ease-standard);align-items:center;display:inline-flex}.ui-segmented__input:hover:not(:checked)+.ui-segmented__text{color:var(--text-primary)}.ui-segmented__input:checked+.ui-segmented__text{background:var(--surface);color:var(--text-primary);box-shadow:inset 0 0 0 1px var(--border-strong)}.ui-segmented__input:focus-visible+.ui-segmented__text{outline:2px solid var(--focus-ring);outline-offset:2px}.ui-timeline{gap:0;margin:0;padding:0;list-style:none;display:grid}.ui-timeline__item{gap:var(--space-3);grid-template-columns:1rem minmax(0,1fr);padding-block-end:var(--space-4);display:grid;position:relative}.ui-timeline__item:last-child{padding-block-end:0}.ui-timeline__item:before{content:"";background:var(--border-default);width:1px;position:absolute;inset-block:1.25rem .125rem;inset-inline-start:calc(.5rem - .5px)}.ui-timeline__item:last-child:before{display:none}.ui-timeline__item[data-state=done]:before{background:var(--success-border)}.ui-timeline__marker{z-index:1;background:var(--surface);width:1rem;height:1rem;color:var(--accent-fg);border:1.5px solid var(--border-strong);border-radius:var(--radius-pill);place-items:center;margin-block-start:2px;display:grid}.ui-timeline__marker .ui-icon{width:.625rem;height:.625rem}.ui-timeline__item[data-state=done] .ui-timeline__marker{background:var(--success-fg);border-color:var(--success-fg);color:var(--surface)}.ui-timeline__item[data-state=current] .ui-timeline__marker{border-color:var(--accent);background:radial-gradient(circle, var(--accent) 0 3px, transparent 3.5px)}.ui-timeline__item[data-state=failed] .ui-timeline__marker{background:var(--danger-fg);border-color:var(--danger-fg);color:var(--surface)}.ui-timeline__title{color:var(--text-primary);font-size:var(--text-sm);font-weight:var(--weight-medium)}.ui-timeline__item[data-state=upcoming] .ui-timeline__title{color:var(--text-tertiary);font-weight:var(--weight-regular)}.ui-timeline__meta{color:var(--text-tertiary);font-size:var(--text-xs)}.ui-timeline__detail{color:var(--text-secondary);font-size:var(--text-sm);margin-block-start:var(--space-1)}.ui-timeline--horizontal{align-items:center;gap:var(--space-2) 0;flex-wrap:wrap;display:flex}.ui-timeline--horizontal .ui-timeline__item{align-items:center;gap:var(--space-2);padding-block:0;display:flex}.ui-timeline--horizontal .ui-timeline__marker{margin-block-start:0}.ui-timeline--horizontal .ui-timeline__item:before{display:none}.ui-timeline--horizontal .ui-timeline__item:not(:last-child):after{content:"";block-size:1px;inline-size:1.5rem;margin-inline:var(--space-3);background:var(--border-default)}.ui-timeline--horizontal .ui-timeline__item[data-state=done]:not(:last-child):after{background:var(--success-border)}@media (max-width:30rem){.ui-timeline--horizontal{flex-direction:column;align-items:flex-start}.ui-timeline--horizontal .ui-timeline__item:not(:last-child):after{display:none}}[data-surface=student] .ui-btn,[data-surface=student] .ui-control,[data-surface=student] .ui-icon-btn,[data-surface=student] .ui-option,[data-surface=student] .ui-tabs__tab{min-height:var(--target-touch)}[data-surface=student] .ui-icon-btn{min-width:var(--target-touch)}[data-surface=student] .ui-btn--sm{min-height:var(--target-touch)}.shell{grid-template-columns:var(--nav-width) minmax(0, 1fr);min-height:100vh;display:grid}.shell__nav{background:var(--surface);border-inline-end:1px solid var(--border-subtle);padding:var(--space-4) var(--space-3);align-content:start;gap:var(--space-4);height:100vh;display:grid;position:sticky;top:0;overflow-y:auto}.shell__brand{gap:var(--space-0-5);padding:0 var(--space-2);display:grid}.shell__brand-name{font-weight:var(--weight-semibold);font-size:var(--text-md);letter-spacing:-.01em}.shell__brand-surface{color:var(--text-secondary);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em}.shell__main{grid-template-rows:auto 1fr;min-width:0;display:grid}.shell__banner{padding:var(--space-2) var(--space-5)}.shell__content{padding:var(--space-5);max-width:var(--content-max);gap:var(--space-5);align-content:start;width:100%;display:grid}.nav-list,.nav-sub{gap:var(--space-0-5);margin:0;padding:0;list-style:none;display:grid}.nav-group-label{padding:var(--space-3) var(--space-2) var(--space-1);color:var(--text-secondary);font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.06em}.nav-link{min-height:var(--target-min);padding:0 var(--space-2);border-radius:var(--radius-md);color:var(--text-primary);border-inline-start:3px solid #0000;align-items:center;text-decoration:none;display:flex}.nav-link:hover{background:var(--surface-inset)}.nav-link[aria-current=page]{background:var(--accent-subtle);color:var(--accent-text);border-inline-start-color:var(--accent);font-weight:var(--weight-semibold)}.nav-sub .nav-link{font-size:var(--text-sm);padding-inline-start:var(--space-5)}@media (max-width:52rem){.shell{grid-template-columns:minmax(0,1fr)}.shell__nav{border-inline-end:0;border-block-end:1px solid var(--border-subtle);height:auto;position:static}.shell__content{padding:var(--space-4)}}.public{min-height:100vh;padding:var(--space-5);place-items:center;display:grid}.page-center{place-content:center;justify-items:start;gap:var(--space-3);min-height:60vh;padding:var(--space-5);max-width:40rem;margin-inline:auto;display:grid}.page-center nav a{min-height:2.75rem;padding-inline:var(--space-2);line-height:2.75rem;display:inline-block}@keyframes motion-pop{0%{opacity:0;transform:scale(.98)}}@keyframes motion-step{0%{opacity:0;transform:translateY(var(--space-2))}}.motion-swap{animation:motion-swap var(--dur-fast) var(--ease-out)}@keyframes motion-swap{0%{opacity:0;transform:scale(.8)}}.pulse-tween{display:contents}@media (prefers-reduced-motion:reduce){.motion-swap{animation-name:ui-fade-in;animation-duration:var(--dur-fast)}}
