@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:var(--font-manrope), "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-serif:var(--font-merriweather), "Merriweather", "Iowan Old Style", "Palatino Linotype", Georgia, serif;--font-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--color-red-900:#82181a;--color-indigo-500:#625fff;--color-zinc-950:#09090b;--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-2xl:42rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--text-5xl:3rem;--text-5xl--line-height:1;--text-6xl:3.75rem;--text-6xl--line-height:1;--text-7xl:4.5rem;--text-7xl--line-height:1;--text-8xl:6rem;--text-8xl--line-height:1;--text-9xl:8rem;--text-9xl--line-height:1;--tracking-tighter:-.05em;--leading-tight:1.25;--radius-xs:.125rem;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--blur-3xl:64px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-brand-blue:#005ab9;--color-brand-blue-active:#003f8a;--color-brand-navy:#001e46;--color-shield-sky:#3cbbf9;--color-shield-gold:#e79d00;--color-shield-red:#d40924;--color-shield-red-deep:#960012;--color-academic-emerald:#11bc6d;--color-academic-teal:#008e82;--color-academic-purple:#9d5bf4;--color-academic-purple-deep:#4d008a;--color-academic-pink:#e942a2;--color-academic-bronze:#643400;--color-surface-base:#f4f7fa;--color-surface-raised:#fff;--color-surface-border:#e8e4e1;--color-text-primary:#0e1624;--color-text-secondary:#333e4d;--color-text-muted:#515f6e;--color-text-faint:#6d7c8c;--ease-spring:cubic-bezier(.16, 1, .3, 1);--duration-fast:.15s}@supports (color:lab(0% 0 0)){:root,:host{--color-red-900:lab(28.5139% 44.5539 29.0463);--color-indigo-500:lab(48.295% 38.3129 -81.9673);--color-zinc-950:lab(2.51107% .242703 -.886115);--color-brand-blue:lab(38.0483% 8.50707 -61.5517);--color-brand-blue-active:lab(26.4542% 10.4455 -54.6449);--color-brand-navy:lab(11.0242% 4.25354 -30.7759);--color-shield-sky:lab(71.0844% -19.8772 -41.5833);--color-shield-gold:lab(70.8089% 22.0394 75.9229);--color-shield-red:lab(45.5382% 69.8881 46.2994);--color-shield-red-deep:lab(30.6229% 63.8219 47.2003);--color-academic-emerald:lab(67.3907% -54.6404 28.2368);--color-academic-teal:lab(52.7219% -41.81 -4.18961);--color-academic-purple:lab(52.2932% 50.4727 -67.8536);--color-academic-purple-deep:lab(20.3432% 53.5335 -61.7302);--color-academic-pink:lab(56.4236% 69.6248 -13.561);--color-academic-bronze:lab(27.453% 27.2059 53.8034);--color-surface-base:lab(97.1082% -.82314 -1.65223);--color-surface-border:lab(90.7093% 1.00517 1.99319);--color-text-primary:lab(7.06747% -.19002 -10.6574);--color-text-secondary:lab(25.6628% -1.74692 -10.706);--color-text-muted:lab(39.6306% -2.81024 -10.4956);--color-text-faint:lab(51.2358% -2.90898 -10.535)}}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.top-4{top:calc(var(--spacing) * 4)}.right-4{right:calc(var(--spacing) * 4)}.isolate{isolation:isolate}.z-50{z-index:50}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mx-4{margin-inline:calc(var(--spacing) * 4)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.size-1{width:var(--spacing);height:var(--spacing)}.h-5{height:calc(var(--spacing) * 5)}.h-40{height:calc(var(--spacing) * 40)}.h-84{height:calc(var(--spacing) * 84)}.h-120{height:calc(var(--spacing) * 120)}.w-5{width:calc(var(--spacing) * 5)}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.shrink{flex-shrink:1}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-ping{animation:var(--animate-ping)}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.items-center{align-items:center}.justify-center{justify-content:center}.gap-4{gap:calc(var(--spacing) * 4)}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-lg{border-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-surface-border{border-color:var(--color-surface-border)}.bg-black{background-color:var(--color-black)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.bg-indigo-500{background-color:var(--color-indigo-500)}.bg-surface-base{background-color:var(--color-surface-base)}.bg-surface-raised{background-color:var(--color-surface-raised)}.bg-white{background-color:var(--color-white)}.bg-zinc-950{background-color:var(--color-zinc-950)}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.p-6{padding:calc(var(--spacing) * 6)}.py-20{padding-block:calc(var(--spacing) * 20)}.py-24{padding-block:calc(var(--spacing) * 24)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.text-7xl{font-size:var(--text-7xl);line-height:var(--tw-leading,var(--text-7xl--line-height))}.text-8xl{font-size:var(--text-8xl);line-height:var(--tw-leading,var(--text-8xl--line-height))}.text-9xl{font-size:var(--text-9xl);line-height:var(--tw-leading,var(--text-9xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-\[1\.1\]{--tw-leading:1.1;line-height:1.1}.leading-none{--tw-leading:1;line-height:1}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.tracking-tighter{--tw-tracking:var(--tracking-tighter);letter-spacing:var(--tracking-tighter)}.text-wrap{text-wrap:wrap}.tab-1{tab-size:1}.tab-2{tab-size:2}.\!text-red-900{color:var(--color-red-900)!important}.text-transparent{color:#0000}.text-white{color:var(--color-white)}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.lining-nums{--tw-numeric-figure:lining-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.overline{text-decoration-line:overline}.underline{text-decoration-line:underline}.opacity-50{opacity:.5}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.blur-3xl{--tw-blur:blur(var(--blur-3xl));filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}@media (hover:hover){.hover\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}}@media (min-width:48rem){.md\:flex{display:flex}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}}:root{--ubb-royal-blue:var(--color-brand-blue,#005ab9);--ubb-royal-blue-active:var(--color-brand-blue-active,#003f8a);--ubb-midnight-navy:var(--color-brand-navy,#001e46);--white:var(--color-surface-raised,#fff);--paper:var(--color-surface-base,#f4f7fa);--hairline:var(--color-surface-border,#e8e4e1);--ink-900:var(--color-text-primary,#0e1624);--ink-700:var(--color-text-secondary,#333e4d);--ink-500:var(--color-text-muted,#515f6e);--ink-400:var(--color-text-faint,#6d7c8c);--shield-sky:var(--color-shield-sky,#3cbbf9);--shield-gold:var(--color-shield-gold,#e79d00);--shield-red:var(--color-shield-red,#d40924);--shield-red-deep:var(--color-shield-red-deep,#960012);--academic-emerald:var(--color-academic-emerald,#11bc6d);--academic-teal:var(--color-academic-teal,#008e82);--academic-purple:var(--color-academic-purple,#9d5bf4);--academic-purple-deep:var(--color-academic-purple-deep,#4d008a);--academic-pink:var(--color-academic-pink,#e942a2);--academic-bronze:var(--color-academic-bronze,#643400);--color-primary:var(--ubb-royal-blue);--color-primary-active:var(--ubb-royal-blue-active);--color-secondary:var(--ubb-midnight-navy);--color-on-primary:var(--white);--color-primary-wash:#0055b812;--color-primary-tint:#0055b81a;--canvas:var(--white);--canvas-soft:var(--paper);--surface-card:var(--white);--border-hairline:var(--hairline);--text-body:var(--ink-900);--text-secondary:var(--ink-700);--text-muted:var(--ink-500);--text-faint:var(--ink-400);--text-on-dark:var(--white);--text-link:var(--color-primary);--font-core:var(--font-manrope,var(--font-sans)), "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-display:var(--font-merriweather,var(--font-serif)), "Merriweather", "Iowan Old Style", Georgia, serif;--font-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--num:lining-nums tabular-nums;--space-xxs:4px;--space-xs:8px;--space-sm:12px;--space-md:16px;--space-lg:24px;--space-xl:28px;--space-xxl:32px;--space-3xl:48px;--space-4xl:64px;--container-max:1240px;--container-pad:32px;--header-height:62px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--header-offset:calc(var(--header-height) + var(--safe-top));--radius-xs:4px;--radius-sm:5px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-full:9999px;--shadow-1:#00000003 0 .175px 1.041px, #00000005 0 .8px 2.925px, #00000007 0 2.025px 7.847px, #0000000a 0 4px 18px;--shadow-2:#00000003 0 .5px 2px, #00000005 0 2px 6px, #00000008 0 6px 18px, #0000000d 0 23px 52px;--shadow-focus:0 0 0 3px #0055b847;--transition-fast:.12s cubic-bezier(.2, 0, 0, 1);--transition-base:.18s cubic-bezier(.2, 0, 0, 1);--transition-slow:.26s cubic-bezier(.2, 0, 0, 1);--course-tone:var(--color-primary)}@supports (color:lab(0% 0 0)){:root{--ubb-royal-blue:var(--color-brand-blue,lab(38.0483% 8.50707 -61.5517));--ubb-royal-blue-active:var(--color-brand-blue-active,lab(26.4542% 10.4455 -54.6449));--ubb-midnight-navy:var(--color-brand-navy,lab(11.0242% 4.25354 -30.7759));--paper:var(--color-surface-base,lab(97.1082% -.82314 -1.65223));--hairline:var(--color-surface-border,lab(90.7093% 1.00517 1.99319));--ink-900:var(--color-text-primary,lab(7.06747% -.19002 -10.6574));--ink-700:var(--color-text-secondary,lab(25.6628% -1.74692 -10.706));--ink-500:var(--color-text-muted,lab(39.6306% -2.81024 -10.4956));--ink-400:var(--color-text-faint,lab(51.2358% -2.90898 -10.535));--shield-sky:var(--color-shield-sky,lab(71.0844% -19.8772 -41.5833));--shield-gold:var(--color-shield-gold,lab(70.8089% 22.0394 75.9229));--shield-red:var(--color-shield-red,lab(45.5382% 69.8881 46.2994));--shield-red-deep:var(--color-shield-red-deep,lab(30.6229% 63.8219 47.2003));--academic-emerald:var(--color-academic-emerald,lab(67.3907% -54.6404 28.2368));--academic-teal:var(--color-academic-teal,lab(52.7219% -41.81 -4.18961));--academic-purple:var(--color-academic-purple,lab(52.2932% 50.4727 -67.8536));--academic-purple-deep:var(--color-academic-purple-deep,lab(20.3432% 53.5335 -61.7302));--academic-pink:var(--color-academic-pink,lab(56.4236% 69.6248 -13.561));--academic-bronze:var(--color-academic-bronze,lab(27.453% 27.2059 53.8034))}}*,:before,:after{box-sizing:border-box}html{background:var(--canvas-soft);scroll-behavior:smooth}body{background:var(--canvas-soft);min-width:320px;min-height:100vh;color:var(--text-body);font-family:var(--font-core);-webkit-font-smoothing:antialiased;font-feature-settings:"lnum" 1;margin:0;font-size:16px;line-height:1.5}h1,h2,h3,h4,h5,h6{color:var(--text-body);text-wrap:balance;margin:0}p{text-wrap:pretty;margin:0}button,input,textarea,select{font:inherit;color:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;background:0 0;border:0}a{color:var(--text-link);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-primary-active)}img{max-width:100%}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-xs)}::selection{background:var(--color-primary-tint)}.eyebrow{color:var(--text-muted);font-size:12px;font-weight:600;line-height:1.33;display:block}.num{font-variant-numeric:var(--num)}.page-head h1,.section-title h2,.classroom-top h1,.course-card h3,.library-panel h2,.policy-page h1,.access-brand h1,.login-card h2{font-family:var(--font-display);font-feature-settings:"lnum" 1;font-weight:700}.manrope-family{font-family:var(--font-manrope,var(--font-sans)), "Manrope", sans-serif}.merriweather-family{font-family:var(--font-merriweather,var(--font-serif)), "Merriweather", serif;font-weight:600}.lato-family{font-family:var(--font-lato,var(--font-display)), "Lato", sans-serif}.playfair-display-family{font-family:var(--font-playfair,var(--font-serif)), "Playfair Display", serif}.boot-shell{background:var(--canvas-soft);grid-template:"header header""sidebar main"minmax(0,1fr)/268px minmax(0,1fr);min-height:100svh;display:grid}.sk{border-radius:var(--radius-sm);background:var(--hairline);display:block;position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.sk{background:color-mix(in srgb, var(--hairline) 62%, var(--canvas))}}.sk{animation:sk-settle .5s cubic-bezier(.16, 1, .3, 1) var(--sk-delay,0s) both}.sk:after{content:"";animation:1.55s cubic-bezier(.45,0,.25,1) infinite sk-sweep;animation-delay:var(--sk-delay,0s);background:linear-gradient(105deg,#0000 32%,#ffffffeb 50%,#0000 68%);position:absolute;inset:0}.sk-round{border-radius:var(--radius-full)}@keyframes sk-settle{0%{opacity:0;transform:translateY(6px)}}@keyframes sk-sweep{0%{transform:translate(-100%)}to{transform:translate(100%)}}.boot-header{min-height:var(--header-height);padding:0 var(--space-md) 0 10px;background:var(--canvas);border-bottom:1px solid var(--border-hairline);grid-area:header;align-items:center;gap:6px;display:flex;position:relative}.boot-header img{flex:none;width:auto;height:32px;margin-left:6px}.boot-header strong{font-family:var(--font-display);letter-spacing:-.015em;white-space:nowrap;flex:none;margin-left:10px;font-size:20px;font-weight:700;line-height:1.1}.boot-menu{flex:none;width:38px;height:38px}.boot-search{border-radius:var(--radius-full);flex:0 320px;min-width:0;height:38px;margin-left:auto}.boot-avatar{width:34px;height:34px;margin-left:var(--space-sm);flex:none}.boot-side{padding:var(--space-md) 10px;background:var(--canvas);border-right:1px solid var(--border-hairline);flex-direction:column;grid-area:sidebar;gap:7px;display:flex}.boot-row{border-radius:var(--radius-md);height:38px}.boot-legend{width:84px;height:11px;margin:var(--space-md) 0 4px 10px}.boot-main{gap:var(--space-lg);min-width:0;padding:var(--space-xl) var(--container-pad) var(--space-4xl);max-width:var(--container-max);flex-direction:column;grid-area:main;width:100%;margin:0 auto;display:flex}.boot-head{flex-direction:column;gap:10px;display:flex}.boot-title{width:min(58%,340px);height:30px}.boot-subtitle{width:min(76%,460px);height:13px}.boot-strip{border-radius:var(--radius-lg);height:74px}.boot-grid{gap:var(--space-lg);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.boot-card{padding:0 0 var(--space-md);background:var(--surface-card);border:1px solid var(--border-hairline);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);animation:sk-settle .5s cubic-bezier(.16, 1, .3, 1) var(--sk-delay,0s) both;flex-direction:column;gap:10px;display:flex;overflow:hidden}.boot-card>.sk{margin:0 var(--space-md);animation:none}.boot-cover{aspect-ratio:16/5;border-radius:0;margin:0!important}.boot-line{height:12px}.boot-line.wide{width:78%;height:17px;margin-top:4px}.boot-line.short{width:42%}@media (prefers-reduced-motion:reduce){.sk:after{display:none}}@media (max-width:1240px){.boot-shell{grid-template-columns:240px minmax(0,1fr)}}@media (max-width:1100px){.boot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:900px){.boot-shell{grid-template-columns:minmax(0,1fr);grid-template-areas:"header""main"}.boot-side,.boot-header strong{display:none}}@media (max-width:800px){.boot-grid{grid-template-columns:minmax(0,1fr)}}@media (max-width:520px){.boot-main{padding:var(--space-md) var(--space-md) var(--space-xxl)}.boot-search{border-radius:var(--radius-md);flex:0 0 38px}}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width:767px){:root{--safe-bottom:max(env(safe-area-inset-bottom,0px), 24px)}}.access-page{background:var(--canvas-soft);min-height:100svh;color:var(--text-body);grid-template-columns:1.05fr 1fr;display:grid}.access-brand{padding:calc(clamp(2rem, 4.5vw, 4.5rem) + var(--safe-top)) clamp(2rem, 4.5vw, 4.5rem) clamp(2rem, 4.5vw, 4.5rem);background:radial-gradient(120% 85% at 6% -8%, #38bdf847, transparent 58%), linear-gradient(158deg, #063d78, var(--ubb-midnight-navy) 55%, #001b3c);color:#eaf4fb;align-content:center;justify-items:center;display:grid;position:relative;overflow:hidden}.access-brand:before{content:"";filter:grayscale()brightness(1.75);opacity:.055;pointer-events:none;background:url(/brand/ubb-shield.webp) 72% 44%/cover no-repeat;position:absolute;inset:0;transform:scale(1.16)}.access-brand:after{content:"";background:linear-gradient(180deg, var(--ubb-royal-blue) 0 40%, var(--shield-sky) 40% 64%, var(--shield-gold) 64% 84%, var(--shield-red) 84%);width:.32rem;position:absolute;inset:0 0 0 auto}.access-brand-lockup{align-items:center;gap:clamp(1.1rem,2.5vw,2.5rem);max-width:min(100%,52rem);animation:.5s cubic-bezier(.16,1,.3,1) both access-rise;display:flex;position:relative}.access-brand-lockup>img{flex:none;width:clamp(4.5rem,9vw,10rem);height:auto}.access-brand h1{color:#eaf4fb;letter-spacing:-.035em;min-width:0;margin:0;font-size:clamp(2rem,4.6vw,6rem);font-weight:600;line-height:.98}.access-brand h1 strong{letter-spacing:-.04em;white-space:nowrap;font-weight:700;display:block}.access-panel{padding:clamp(2rem, 5vw, 4rem) clamp(1.3rem, 4vw, 3rem) calc(clamp(2rem, 5vw, 4rem) + var(--safe-bottom));background:var(--canvas-soft);align-content:center;justify-items:center;display:grid;position:relative}.access-panel-inner{gap:1.75rem;width:min(100%,26rem);animation:.5s cubic-bezier(.16,1,.3,1) 80ms both access-rise;display:grid}@keyframes access-rise{0%{opacity:0;transform:translateY(12px)}}.login-card{gap:1.35rem;display:grid}.login-rule{background:linear-gradient(90deg, var(--ubb-royal-blue) 0 40%, var(--shield-sky) 40% 64%, var(--shield-gold) 64% 84%, var(--shield-red) 84%);border-radius:999px;width:4.75rem;height:3px}.login-card h2{letter-spacing:-.032em;text-wrap:balance;margin:0;font-size:clamp(1.8rem,3.1vw,2.45rem);line-height:1.06}.google-button{border:1px solid var(--border-hairline);border-radius:var(--radius-md);background:var(--surface-card);width:100%;min-height:3.4rem;color:var(--text-body);cursor:pointer;box-shadow:var(--shadow-1);transition:border-color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-fast);justify-content:center;align-items:center;gap:.8rem;font-size:1rem;font-weight:600;display:flex}.google-button img{object-fit:contain;width:1.4rem;height:1.4rem}.google-button:hover:not(:disabled){border-color:var(--color-primary);box-shadow:var(--shadow-2);transform:translateY(-1px)}.google-button:active:not(:disabled){box-shadow:var(--shadow-1);transform:translateY(0)scale(.99)}.google-button:disabled{cursor:progress;color:var(--text-muted);box-shadow:none}.google-spinner{border:2px solid var(--hairline);border-top-color:var(--color-primary);border-radius:50%;flex:none;width:1.15rem;height:1.15rem;animation:.7s linear infinite spin}.institution-note{border-top:1px solid var(--border-hairline);color:var(--text-secondary);margin:0;padding-top:1.05rem;font-size:.82rem;line-height:1.6}.institution-note strong{color:var(--color-secondary)}.store-block{border-top:1px solid var(--border-hairline);padding-top:1.25rem}.store-badges{justify-content:center;align-items:center;gap:.6rem;display:flex}.store-badge{cursor:default;width:auto;height:2.45rem;display:inline-flex}.store-badge img{object-fit:contain;filter:grayscale()contrast(.9);opacity:.78;border-radius:.45rem;width:auto;height:2.45rem;display:block}.form-error{color:var(--shield-red-deep);border-radius:var(--radius-md);background:#fdeae8;border:1px solid #f6cdc9;margin:0;padding:.72rem .9rem;font-size:.82rem;line-height:1.4}.legal-note{color:var(--text-muted);text-align:center;text-wrap:balance;margin:0;font-size:.76rem;line-height:1.55}.legal-note a{color:var(--color-primary);text-underline-offset:2px;font-weight:600;text-decoration:underline}.policy-page{max-width:760px;padding:var(--space-3xl) var(--container-pad) var(--space-4xl);gap:var(--space-lg);flex-direction:column;margin:0 auto;display:flex}.policy-head{justify-content:space-between;align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}.policy-back{align-items:center;gap:var(--space-xs);border:1px solid var(--border-hairline);border-radius:var(--radius-md);background:var(--surface-card);color:var(--text-body);white-space:nowrap;transition:background var(--transition-fast), border-color var(--transition-fast);padding:8px 14px;font-size:15px;font-weight:500;line-height:1.33;display:inline-flex}.policy-back:hover{background:var(--canvas-soft);border-color:var(--text-faint)}.policy-back svg{transition:transform var(--transition-fast);flex:none}.policy-back:hover svg{transform:translate(-2px)}@media (pointer:coarse){.policy-back{min-height:44px}}@media (max-width:767px){.policy-head .app-brand strong{display:block}}.policy-page article{background:var(--surface-card);border:1px solid var(--border-hairline);border-radius:var(--radius-xl);padding:var(--space-xxl);gap:var(--space-md);flex-direction:column;display:flex}.policy-page .privacy-date{color:var(--text-muted);margin-bottom:-4px;font-size:13px}.policy-page h1{letter-spacing:-1px;font-size:40px;font-weight:700;line-height:1.1}.policy-page h2{letter-spacing:-.125px;margin-top:var(--space-xs);font-size:20px;font-weight:600;line-height:1.4}.policy-page p{color:var(--text-secondary);font-size:16px;line-height:1.5}.policy-page h3{color:var(--text-body);margin-top:var(--space-xs);font-size:16px;font-weight:600;line-height:1.4}.policy-page p a,.policy-page nav a,.policy-page li a,.policy-page dd a{text-decoration:underline}.policy-page nav{color:var(--text-muted);font-size:14px}.policy-page ul{gap:var(--space-xs);padding-left:var(--space-lg);color:var(--text-secondary);flex-direction:column;margin:0;font-size:16px;line-height:1.5;display:flex}.policy-page li::marker{color:var(--text-faint)}.policy-page dl{gap:var(--space-sm) var(--space-lg);padding:var(--space-md) 0 0;border-top:1px solid var(--border-hairline);grid-template-columns:minmax(11rem,15rem) 1fr;margin:0;font-size:16px;line-height:1.5;display:grid}.policy-page dt{color:var(--text-body);font-weight:600}.policy-page dd{color:var(--text-secondary);margin:0}.policy-page .policy-index{gap:var(--space-xxs);padding-left:0;font-size:15px;list-style:none}.policy-page .policy-index a{color:var(--text-secondary);text-decoration:none}.policy-page .policy-index a:hover{color:var(--text-link);text-decoration:underline}@media (max-width:600px){.policy-page dl{gap:var(--space-xxs) 0;grid-template-columns:1fr}.policy-page dd{margin-bottom:var(--space-xs)}}.app-shell{--rail-width:268px;grid-template-columns:var(--rail-width) minmax(0, 1fr);min-height:100vh;transition:grid-template-columns var(--transition-base);grid-template-rows:auto minmax(0,1fr);grid-template-areas:"header header""sidebar main";display:grid}.app-shell[data-sidebar=closed]{--rail-width:0px}.app-shell[data-sidebar=closed] .app-sidebar{opacity:0;pointer-events:none;transform:translate(-100%)}.app-header{z-index:40;min-height:var(--header-offset);padding:var(--safe-top) var(--space-md) 0 10px;background:var(--canvas);color:var(--text-body);border-bottom:1px solid var(--border-hairline);grid-area:header;align-items:center;gap:6px;display:flex;position:sticky;top:0}@media (min-width:768px){@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.app-header{background:var(--white)}@supports (color:color-mix(in lab, red, red)){.app-header{background:color-mix(in srgb, var(--white) 78%, transparent)}}.app-header{-webkit-backdrop-filter:saturate(180%)blur(16px);backdrop-filter:saturate(180%)blur(16px)}}}.icon-button{border-radius:var(--radius-md);width:38px;height:38px;color:var(--text-secondary);transition:background var(--transition-fast), color var(--transition-fast);flex:0 0 38px;place-items:center;display:inline-grid}.icon-button:hover:not(:disabled){background:var(--canvas-soft);color:var(--text-body)}.icon-button:disabled{opacity:.42;cursor:not-allowed}.app-brand{text-align:left;border-radius:var(--radius-md);min-width:0;transition:background var(--transition-fast);flex:none;align-items:center;gap:10px;padding:6px 10px 6px 6px;display:flex}.app-brand:hover{background:var(--canvas-soft)}.app-brand img{flex:none;width:auto;height:32px}.app-brand strong{font-family:var(--font-display);letter-spacing:-.015em;color:var(--text-body);white-space:nowrap;font-size:20px;font-weight:700;line-height:1.1}.header-context{align-items:center;gap:var(--space-xs);min-width:0;padding-right:var(--space-md);flex:auto;font-size:14.5px;display:flex}.header-context-sep{color:var(--text-faint);flex:none;font-size:20px;font-weight:300}.header-context-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-secondary);font-weight:600;overflow:hidden}.header-search{align-items:center;gap:var(--space-xs);border:1px solid var(--border-hairline);border-radius:var(--radius-full);background:var(--canvas-soft);min-width:0;height:38px;color:var(--text-muted);text-align:left;transition:background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);flex:0 320px;padding:0 8px 0 12px;font-size:14.5px;display:flex}.header-search:hover{background:var(--canvas);border-color:var(--text-faint);color:var(--text-body)}.header-search>span{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.header-search kbd,.palette-field kbd{border:1px solid var(--border-hairline);border-radius:var(--radius-xs);background:var(--canvas);font-family:var(--font-core);color:var(--text-faint);border-bottom-width:2px;flex:none;padding:2px 6px;font-size:12px;font-weight:600;line-height:1.33}.header-actions{align-items:center;gap:var(--space-xxs);flex:none;display:flex}.palette[open]{flex-direction:column;display:flex}.palette{width:min(560px, calc(100vw - 2 * var(--space-md)));border:1px solid var(--border-hairline);border-radius:var(--radius-xl);background:var(--surface-card);max-height:min(62vh,520px);color:var(--text-body);box-shadow:var(--shadow-2);margin:12vh auto auto;padding:0;animation:.24s cubic-bezier(.16,1,.3,1) palette-in;overflow:hidden}.palette::backdrop{background:#0f172a73;animation:.2s ease-out palette-veil}@media (min-width:768px){.palette::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0f172a4d}}@keyframes palette-in{0%{opacity:0;filter:blur(6px);transform:translateY(-10px)scale(.975)}}@keyframes palette-veil{0%{opacity:0}}.palette-field{min-height:54px;padding:0 var(--space-md);border-bottom:1px solid var(--border-hairline);color:var(--text-muted);flex:none;align-items:center;gap:10px;display:flex}.palette-field input{min-width:0;color:var(--text-body);caret-color:var(--color-primary);background:0 0;border:0;outline:0;flex:auto;font-size:16px}.palette-field input::placeholder{color:var(--text-faint)}.palette-list{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--hairline) transparent;flex:auto;min-height:0;padding:6px;overflow-y:auto}.palette-list::-webkit-scrollbar{width:10px}.palette-list::-webkit-scrollbar-thumb{border-radius:var(--radius-full);background:var(--hairline);background-clip:content-box;border:3px solid #0000}.palette-group{letter-spacing:.6px;text-transform:uppercase;color:var(--text-faint);padding:12px 10px 4px;font-size:12px;font-weight:600}.palette-item{border-radius:var(--radius-md);text-align:left;width:100%;min-height:42px;color:var(--text-secondary);align-items:center;gap:10px;padding:6px 10px;font-size:15px;display:flex}.palette-item[data-active=true]{background:var(--color-primary-wash);color:var(--color-primary);font-weight:600}.palette-icon{width:26px;color:var(--course-tone,var(--text-muted));flex:0 0 26px;place-items:center;display:inline-grid}.palette-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.palette-item small{font-family:var(--font-mono);color:var(--text-faint);flex:none;margin-left:auto;font-size:12px;font-weight:400}.palette-empty{padding:var(--space-lg) var(--space-md);color:var(--text-muted);font-size:15px;line-height:1.5}.palette-empty strong{color:var(--text-body);font-weight:600}.app-sidebar{top:var(--header-offset);width:268px;height:calc(100dvh - var(--header-offset));overscroll-behavior:contain;align-self:start;gap:var(--space-lg);padding:var(--space-sm) 10px var(--space-md);background:var(--canvas);border-right:1px solid var(--border-hairline);transition:transform var(--transition-base), opacity var(--transition-fast);scrollbar-width:thin;scrollbar-color:var(--hairline) transparent;flex-direction:column;grid-area:sidebar;display:flex;position:sticky;overflow:hidden auto}.app-sidebar::-webkit-scrollbar{width:10px}.app-sidebar::-webkit-scrollbar-thumb{border-radius:var(--radius-full);background:var(--hairline);background-clip:content-box;border:3px solid #0000}.side-nav,.side-group{flex-direction:column;gap:1px;display:flex}.side-group>.side-group-title,.side-group>.eyebrow{letter-spacing:.6px;color:var(--text-faint);margin-top:2px;padding:0 10px 6px;font-size:12px}.side-item{border-radius:var(--radius-md);text-align:left;width:100%;min-height:40px;color:var(--text-secondary);transition:background var(--transition-fast), color var(--transition-fast);align-items:center;gap:10px;padding:5px 10px;font-size:14.5px;display:flex;position:relative}.side-item:hover{background:var(--canvas-soft);color:var(--text-body)}.side-item:hover .side-icon{color:var(--text-body)}.side-item.active{background:var(--color-primary-wash);color:var(--color-primary);font-weight:600}.side-group .side-item.active{font-weight:inherit}.side-item.active:before{content:"";background:var(--color-primary);border-radius:0 2px 2px 0;width:3px;position:absolute;top:6px;bottom:6px;left:-10px}.side-icon{border-radius:var(--radius-sm);width:26px;height:26px;color:var(--text-muted);transition:background var(--transition-fast), color var(--transition-fast);flex:0 0 26px;place-items:center;display:inline-grid}.side-item.active .side-icon{color:var(--color-primary)}.side-icon.tone{box-shadow:none;color:var(--course-tone);background:0 0}.side-label{flex-direction:column;min-width:0;line-height:1.3;display:flex}.side-label small{font-family:var(--font-mono);letter-spacing:.2px;color:var(--text-faint);font-size:12px;font-weight:400}.side-name{-webkit-line-clamp:2;line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.side-empty{color:var(--text-faint);padding:2px 10px 4px;font-size:14px;line-height:1.43}.side-foot{border:1px solid var(--border-hairline);background:var(--canvas-soft);min-height:42px;color:var(--text-body);margin-top:auto;font-weight:500}.side-foot:hover{color:var(--text-body);background:var(--hairline)}.sidebar-scrim{display:none}.app-main{background:var(--canvas-soft);grid-area:main;min-width:0}.account-menu{position:relative}.account-menu summary{align-items:center;gap:var(--space-xs);border-radius:var(--radius-full);cursor:pointer;transition:background var(--transition-fast);padding:4px 8px 4px 4px;list-style:none;display:flex}.account-menu summary:hover{background:var(--canvas-soft)}.account-menu summary::-webkit-details-marker{display:none}.account-menu[open] summary{background:var(--canvas-soft);box-shadow:inset 0 0 0 1px var(--border-hairline)}.account-caret{color:var(--text-faint);transition:transform var(--transition-fast), color var(--transition-fast);flex:none}.account-menu[open] .account-caret{color:var(--text-secondary);transform:rotate(180deg)}.avatar{background:var(--color-primary-tint);width:32px;height:32px;color:var(--color-primary);border-radius:50%;flex:0 0 32px;place-items:center;font-size:13px;font-weight:600;display:inline-grid;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.app-header .avatar{box-shadow:0 0 0 1px var(--border-hairline)}.account-copy{text-align:left;flex-direction:column;line-height:1.25;display:flex}.account-copy strong{color:var(--text-body);font-size:14px;font-weight:600}.account-copy small{color:var(--text-muted);font-size:12px}.account-popover{min-width:248px;padding:var(--space-md);background:var(--surface-card);border:1px solid var(--border-hairline);border-radius:var(--radius-lg);box-shadow:var(--shadow-2);z-index:50;flex-direction:column;gap:2px;display:flex;position:absolute;top:calc(100% + 8px);right:0}.account-popover strong{color:var(--text-body);font-size:15px;font-weight:600}.account-popover span{color:var(--text-muted);word-break:break-all;font-size:13px}.account-popover button{margin-top:var(--space-sm);align-items:center;gap:var(--space-xs);border:1px solid var(--border-hairline);border-radius:var(--radius-md);min-height:34px;color:var(--text-body);transition:background var(--transition-fast);padding:4px 14px;font-size:15px;display:inline-flex}.account-popover button:hover{background:var(--canvas-soft)}.portal-main{width:100%;max-width:var(--container-max);padding:var(--space-xl) var(--container-pad) var(--space-4xl);gap:var(--space-lg);flex-direction:column;margin:0 auto;display:flex}.portal-main>section>.page-head{margin-bottom:var(--space-lg)}.math{font-family:var(--font-core)}.math mi,.math mn,.math mo{font-style:normal}.page-head{justify-content:space-between;align-items:flex-end;gap:var(--space-md);padding-bottom:var(--space-md);border-bottom:1px solid var(--border-hairline);flex-wrap:wrap;display:flex}.page-head>div{flex-direction:column;gap:6px;display:flex}.page-head h1{letter-spacing:-.02em;text-wrap:balance;font-size:clamp(28px,3.2vw,38px);line-height:1.1}.page-head p{color:var(--text-muted);font-variant-numeric:var(--num);font-size:15px;line-height:1.45}.page-head.lead{gap:var(--space-sm);padding-bottom:var(--space-lg);display:grid}.page-head.lead h1{letter-spacing:-.03em;font-size:clamp(38px,5.4vw,64px);line-height:1}.page-head.lead p{flex-wrap:wrap;gap:4px 10px;max-width:76ch;display:flex}.page-head.lead p b{color:var(--text-secondary);font-weight:600}.next-strip{align-items:center;gap:var(--space-md);background:var(--surface-card);border:1px solid var(--border-hairline);border-radius:var(--radius-md);box-shadow:var(--shadow-1);grid-template-columns:auto minmax(0,1fr) auto;padding:12px 16px 12px 12px;display:grid}.next-strip-date{border-radius:var(--radius-sm);background:var(--course-tone);align-content:center;justify-items:center;gap:1px;min-width:62px;padding:8px 10px 9px;display:grid}@supports (color:color-mix(in lab, red, red)){.next-strip-date{background:color-mix(in srgb, var(--course-tone) 12%, #fff)}}.next-strip-day{font-family:var(--font-display);letter-spacing:-.02em;color:var(--text-body);font-variant-numeric:var(--num);font-size:30px;font-weight:700;line-height:1}.next-strip-month{letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary);font-size:12px;font-weight:600}.next-strip-body{gap:2px;min-width:0;display:grid}.next-strip-line{color:var(--text-secondary);font-size:15px}.next-strip-line strong{color:var(--text-body);font-size:16px;font-weight:600}.next-strip-detail{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.next-strip-end{align-items:center;gap:var(--space-sm);display:flex}.next-strip-count{color:var(--text-secondary);font-variant-numeric:var(--num);white-space:nowrap;font-size:13px;font-weight:600}.next-strip-action,.course-action{border-radius:var(--radius-md);min-height:44px;color:var(--color-primary);white-space:nowrap;transition:background var(--transition-fast);align-items:center;gap:6px;padding:4px 10px;font-size:14px;font-weight:600;display:inline-flex}.next-strip-action:hover{background:var(--color-primary-wash)}.section-title{justify-content:space-between;align-items:baseline;gap:var(--space-md);margin-top:var(--space-xs);display:flex}.section-title h2{align-items:center;gap:var(--space-xs);letter-spacing:-.015em;font-size:23px;line-height:1.25;display:flex}.section-title h2 svg{color:var(--color-primary);flex:none}.section-title a{align-items:center;gap:6px;font-size:14px;font-weight:500;display:inline-flex}.section-title a:hover{text-underline-offset:3px;text-decoration:underline}.compact-title{margin-top:0}.compact-title h2{letter-spacing:-.01em;font-size:20px;line-height:1.3}.course-grid{gap:var(--space-lg);grid-template-columns:repeat(auto-fill,minmax(304px,1fr));align-items:stretch;display:grid}.course-card{background:var(--surface-card);border:1px solid var(--border-hairline);border-radius:var(--radius-lg);transition:box-shadow var(--transition-base), border-color var(--transition-base);flex-direction:column;display:flex;position:relative;overflow:hidden}.course-card:hover{box-shadow:var(--shadow-1);border-color:var(--course-tone)}@supports (color:color-mix(in lab, red, red)){.course-card:hover{border-color:color-mix(in srgb, var(--course-tone) 34%, var(--hairline))}}.course-card:focus-within{border-color:var(--color-primary)}.course-thumb{aspect-ratio:16/5;background:var(--course-tone);min-height:96px}@supports (color:color-mix(in lab, red, red)){.course-thumb{background:color-mix(in srgb, var(--course-tone) 13%, white)}}.course-thumb{border-bottom:1px solid var(--border-hairline)}.course-body{flex-direction:column;flex:1;gap:6px;padding:14px 20px 16px;display:flex}.course-head{justify-content:space-between;align-items:center;gap:var(--space-sm);min-height:22px;display:flex}.course-code{font-family:var(--font-mono);font-variant-numeric:var(--num);letter-spacing:.4px;color:var(--text-faint);font-size:12px}.course-head .fresh{border-radius:var(--radius-full);color:#92400e;letter-spacing:.2px;white-space:nowrap;background:#f59e0b29;padding:3px 9px;font-size:12px;font-weight:600}.course-card h3{letter-spacing:-.01em;text-wrap:balance;font-size:21px;line-height:1.2}.course-body>p{color:var(--text-muted);font-size:13.5px}.course-meta{border-top:1px solid var(--border-hairline);flex-direction:column;gap:3px;margin-top:auto;padding-top:12px;display:flex}.course-meta span,.course-meta time{color:var(--text-muted);font-variant-numeric:var(--num);font-size:13.5px}.course-meta time{color:var(--text-secondary);font-weight:500}.course-action{border-radius:var(--radius-md);color:var(--color-primary);transition:background var(--transition-fast);align-self:flex-start;margin:10px 0 -2px -10px;padding:4px 10px;font-size:15px;font-weight:600}.course-action:hover{background:var(--color-primary-wash)}.course-action svg{transition:transform var(--transition-fast)}.course-card:hover .course-action svg{transform:translate(3px)}.panel-navy{background:radial-gradient(120% 130% at 88% -30%, #38bdf838, transparent 58%), linear-gradient(158deg, #063d78, var(--color-secondary) 58%, #001b3c);color:var(--text-on-dark);border-radius:var(--radius-lg);position:relative;overflow:hidden}.panel-navy:before{content:"";background:var(--course-tone);z-index:1;inset-inline:0;height:3px;position:absolute;top:0}.panel-navy h1,.panel-navy h2,.panel-navy h3{color:var(--text-on-dark)}.panel-navy p{color:#e6f3ffeb}.panel-navy .eyebrow{color:var(--shield-sky)}.primary-button,.secondary-button{justify-content:center;align-items:center;gap:var(--space-xs);border-radius:var(--radius-full);min-height:44px;transition:background var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);padding:10px 22px;font-size:16px;font-weight:500;display:inline-flex}.primary-button{background:var(--color-primary);color:var(--color-on-primary);border:1px solid #0000}.primary-button:hover{background:var(--color-primary-active)}.secondary-button{background:var(--surface-card);color:var(--text-body);border:1px solid var(--border-hairline);box-shadow:var(--shadow-1)}.secondary-button:hover{background:var(--canvas-soft)}.primary-button:active,.secondary-button:active{transform:scale(.985)}.primary-button:disabled,.secondary-button:disabled{opacity:.4;cursor:not-allowed}.classroom-layout{width:100%;max-width:var(--container-max);padding:var(--space-xl) var(--container-pad) var(--space-4xl);margin:0 auto}.course-tabs{scrollbar-width:none;border-bottom:1px solid var(--border-hairline);gap:2px;display:flex;overflow-x:auto}.course-tabs::-webkit-scrollbar{display:none}.course-tabs button,.course-tabs span{min-height:46px;color:var(--text-secondary);white-space:nowrap;transition:color var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast);border-bottom:3px solid #0000;align-items:center;gap:8px;margin-bottom:-1px;padding:8px 16px;font-size:15px;display:inline-flex}.course-tabs button svg,.course-tabs span svg{color:var(--text-faint);transition:color var(--transition-fast)}.course-tabs button:hover{background:var(--canvas-soft);color:var(--text-body)}.course-tabs button:hover svg{color:var(--text-secondary)}.course-tabs button.active,.course-tabs span.active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:600}.course-tabs button.active svg,.course-tabs span.active svg{color:var(--color-primary)}.breadcrumb button{font:inherit;color:var(--text-muted);text-underline-offset:2px;text-decoration:underline}.breadcrumb button:hover{color:var(--color-primary)}.classroom-main,.classroom-main>div{gap:var(--space-xl);flex-direction:column;min-width:0;display:flex}.classroom-top{justify-content:space-between;align-items:flex-end;gap:var(--space-md);min-height:34px;display:flex}.classroom-top>div{flex-direction:column;gap:6px;min-width:0;display:flex}.classroom-top h1{letter-spacing:-.02em;text-wrap:balance;font-size:clamp(28px,3.2vw,40px);line-height:1.08}.classroom-meta{align-items:center;gap:var(--space-xs);flex-wrap:wrap;justify-content:flex-end;display:flex}.course-reference{border:1px solid var(--border-hairline);border-radius:var(--radius-md);min-height:44px;color:var(--text-faint);font-family:var(--font-mono);font-variant-numeric:var(--num);transition:background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);align-items:center;gap:5px;padding:4px 8px;font-size:12px;display:inline-flex}.course-reference:hover{background:var(--canvas-soft);border-color:var(--color-primary);color:var(--color-primary)}.breadcrumb{color:var(--text-muted);font-size:13px}.classroom-columns{gap:var(--space-lg);grid-template-columns:minmax(0,2fr) minmax(0,1fr);align-items:start;display:grid}.classroom-columns>section{gap:var(--space-md);flex-direction:column;display:flex}.unit-grid{gap:var(--space-sm);flex-direction:column;display:flex}.unit-grid article{align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background:var(--surface-card);border:1px solid var(--border-hairline);border-radius:var(--radius-md);transition:border-color var(--transition-fast), background var(--transition-fast);grid-template-columns:minmax(0,1fr) auto;display:grid}.unit-grid article:hover{border-color:var(--course-tone)}@supports (color:color-mix(in lab, red, red)){.unit-grid article:hover{border-color:color-mix(in srgb, var(--course-tone) 34%, var(--hairline))}}.unit-grid h3{font-size:16px;font-weight:600;line-height:1.4}.unit-grid p{color:var(--text-muted);font-size:14px}.unit-grid article>strong{color:var(--text-secondary);font-weight:400}.unit-check{color:var(--text-muted);white-space:nowrap;align-items:center;gap:6px;font-size:14px;display:inline-flex}.unit-check input{width:16px;height:16px;accent-color:var(--color-primary)}.course-rail{gap:var(--space-md);flex-direction:column;display:flex}.course-facts{background:var(--surface-card);border:1px solid var(--border-hairline);border-radius:var(--radius-xl);overflow:hidden}.course-facts dl{flex-direction:column;margin:0;display:flex}.course-facts dl>div{padding:var(--space-md) var(--space-lg);border-top:1px solid var(--border-hairline);flex-direction:column;gap:6px;display:flex}.course-facts dl>div:first-child{border-top:0}.course-facts dt{letter-spacing:.125px;text-transform:uppercase;color:var(--text-muted);font-size:12px;font-weight:600}.course-facts dd{flex-direction:column;gap:6px;margin:0;display:flex}.course-facts dd b{font-size:16px;font-weight:600}.course-facts dd small{color:var(--text-faint);font-size:13px}.mini-progress,.big-progress{border-radius:var(--radius-full);background:var(--canvas-soft);width:100%;height:6px;display:block;overflow:hidden}.mini-progress span,.big-progress span{border-radius:inherit;background:var(--color-primary);transform-origin:0;width:100%;height:100%;display:block}.big-progress{height:8px}.posts-section{gap:var(--space-md);flex-direction:column;display:flex}.post-list{gap:var(--space-sm);flex-direction:column;display:flex}.post-list article{gap:var(--space-md);padding:var(--space-lg);background:var(--surface-card);border:1px solid var(--border-hairline);border-radius:var(--radius-lg);content-visibility:auto;contain-intrinsic-size:auto 160px;grid-template-columns:auto minmax(0,1fr);display:grid}.post-list article>div{flex-direction:column;gap:6px;display:flex}.post-kind{border-radius:var(--radius-full);background:var(--color-primary-wash);color:var(--color-primary);letter-spacing:.125px;white-space:nowrap;align-self:flex-start;padding:4px 8px;font-size:12px;font-weight:600}.post-kind.guide{color:var(--academic-teal);background:#0d94881f}@supports (color:color-mix(in lab, red, red)){.post-kind.guide{color:color-mix(in srgb, var(--academic-teal) 62%, #0f172a)}}.post-kind.assessment{color:var(--shield-red-deep);background:#e31b231a}.post-kind.resource{color:#0369a1;background:#38bdf829}.post-list h3{font-size:16px;font-weight:600;line-height:1.4}.post-list p{color:var(--text-secondary);white-space:pre-line;font-size:15px;line-height:1.5}.post-list footer{align-items:center;gap:var(--space-sm);color:var(--text-faint);flex-wrap:wrap;font-size:13px;display:flex}.post-list footer a{align-items:center;gap:4px;font-size:13px;display:inline-flex}.post-list footer a:hover{text-decoration:underline}.content-actions{gap:var(--space-xs);display:inline-flex}.content-actions button{border:1px solid var(--border-hairline);border-radius:var(--radius-md);min-height:28px;color:var(--text-secondary);transition:background var(--transition-fast), color var(--transition-fast);padding:2px 10px;font-size:13px}.content-actions button:hover{background:var(--canvas-soft);color:var(--text-body)}.content-actions button:last-child:hover{color:var(--shield-red-deep);background:#e31b2314;border-color:#e31b2340}.materials-view{gap:var(--space-lg);grid-template-columns:minmax(0,1fr) 340px;align-items:start;display:grid}.materials-list{gap:var(--space-sm);flex-direction:column;display:flex}.material-folder{background:var(--surface-card);border:1px solid var(--border-hairline);border-radius:var(--radius-lg);overflow:hidden}.material-folder summary{justify-content:space-between;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);cursor:pointer;background:var(--canvas-soft);border-bottom:1px solid var(--border-hairline);transition:background var(--transition-fast);font-size:15px;font-weight:500;list-style:none;display:flex}.material-folder summary::-webkit-details-marker{display:none}.material-folder summary:hover{background:var(--hairline)}.material-folder summary b{letter-spacing:.125px;color:var(--text-muted);font-size:12px;font-weight:600}.material-row{align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-lg);border-top:1px solid var(--border-hairline);background:var(--surface-card);transition:background var(--transition-fast);content-visibility:auto;contain-intrinsic-size:auto 64px;grid-template-columns:auto minmax(0,1fr) auto;display:grid}.material-folder .material-row:first-of-type{border-top:0}.material-row:hover{background:var(--canvas-soft)}.material-row.featured{border:1px solid var(--border-hairline);border-radius:var(--radius-lg);padding:var(--space-md) var(--space-lg);color:var(--text-body)}.file-icon{border-radius:var(--radius-md);background:var(--canvas-soft);width:38px;height:38px;color:var(--text-muted);font-family:var(--font-mono);place-items:center;font-size:12px;font-weight:600;display:inline-grid}.material-row>div{flex-direction:column;gap:2px;min-width:0;display:flex}.material-row strong{overflow-wrap:anywhere;font-size:15px;font-weight:500}.material-row small{color:var(--text-faint);font-size:13px}.material-row b{color:var(--color-primary);align-items:center;gap:6px;font-size:14px;font-weight:500;display:inline-flex}.material-actions{align-items:center;gap:var(--space-xs);flex-wrap:wrap;justify-content:flex-end;display:inline-flex}.material-actions>button{border:1px solid var(--border-hairline);border-radius:var(--radius-md);min-height:34px;color:var(--text-body);transition:background var(--transition-fast);padding:4px 14px;font-size:14px}.material-actions>button:hover{background:var(--canvas-soft)}.teacher-tools{gap:var(--space-md);padding:var(--space-lg);background:var(--surface-card);border:1px solid var(--border-hairline);border-radius:var(--radius-xl);flex-direction:column;display:flex;position:sticky;top:84px}.teacher-tools h2{letter-spacing:-.125px;font-size:20px;font-weight:600;line-height:1.4}.teacher-tools form{gap:var(--space-sm);flex-direction:column;display:flex}.teacher-tools label{color:var(--text-secondary);flex-direction:column;gap:6px;font-size:14px;font-weight:500;display:flex}.teacher-tools input,.teacher-tools textarea,.teacher-tools select{background:var(--surface-card);border:1px solid var(--border-hairline);border-radius:var(--radius-xs);min-height:34px;color:var(--text-body);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);padding:6px 10px;font-size:15px;font-weight:400}.teacher-tools input::placeholder,.teacher-tools textarea::placeholder{color:var(--text-faint)}.teacher-tools input:focus,.teacher-tools textarea:focus,.teacher-tools select:focus{border-color:var(--color-primary);box-shadow:var(--shadow-focus);outline:none}.teacher-tools textarea{resize:vertical;min-height:96px;line-height:1.5}.teacher-tools input[type=file]{border-style:dashed;padding:4px}.teacher-tools input[type=file]::file-selector-button{margin-right:var(--space-sm);border:1px solid var(--border-hairline);border-radius:var(--radius-md);background:var(--canvas-soft);cursor:pointer;min-height:28px;padding:2px 12px;font-size:13px}.teacher-tools .primary-button,.teacher-tools .secondary-button{width:100%}.tool-divider{align-items:center;gap:var(--space-sm);display:flex}.tool-divider:before,.tool-divider:after{content:"";background:var(--border-hairline);flex:1;height:1px}.tool-divider span{letter-spacing:.125px;text-transform:uppercase;color:var(--text-faint);font-size:12px;font-weight:600}.tool-status{color:var(--text-muted);font-size:14px;line-height:1.43}.tool-status.ok{color:#047857}.tool-status.bad{color:var(--shield-red-deep)}.progress-view{gap:var(--space-md);flex-direction:column;display:flex}.personal-progress{align-items:center;gap:var(--space-lg);padding:var(--space-lg);background:var(--surface-card);border:1px solid var(--border-hairline);border-radius:var(--radius-xl);grid-template-columns:auto minmax(0,1fr);display:grid}.personal-progress>strong{font-family:var(--font-display);font-variant-numeric:var(--num);letter-spacing:-.02em;color:var(--color-primary);font-size:46px;font-weight:700;line-height:1}.personal-progress>div{flex-direction:column;gap:6px;display:flex}.personal-progress h3{letter-spacing:-.125px;font-size:20px;font-weight:600;line-height:1.4}.personal-progress p{color:var(--text-muted);font-size:15px}.progress-table,.admin-table,.grades-table,.grades-matrix{background:var(--surface-card);border:1px solid var(--border-hairline);border-radius:var(--radius-lg);overflow:hidden}.progress-table-head,.progress-table-row{gap:var(--space-md);padding:var(--space-sm) var(--space-md);grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);align-items:center;display:grid}.progress-table-head,.admin-head,.grades-head,.grades-matrix-head{background:var(--canvas-soft);border-bottom:1px solid var(--border-hairline);letter-spacing:.7px;text-transform:uppercase;color:var(--text-muted);font-size:12px;font-weight:600}.progress-table-row{border-top:1px solid var(--border-hairline);font-size:15px}.progress-table-row:first-of-type{border-top:0}.progress-table-row b,.progress-table-row small{display:block}.progress-table-row b{font-size:15px;font-weight:500}.progress-table-row small{color:var(--text-faint);font-size:13px}.progress-table-row i{border-radius:var(--radius-full);background:var(--canvas-soft);height:6px;margin-top:6px;display:block;overflow:hidden}.progress-table-row em{background:var(--color-primary);transform-origin:0;width:100%;height:100%;display:block}.people-grid{gap:var(--space-sm);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));display:grid}.people-grid article{align-items:center;gap:var(--space-sm);padding:var(--space-md);background:var(--surface-card);border:1px solid var(--border-hairline);border-radius:var(--radius-lg);display:flex}.avatar.large{flex:0 0 44px;width:44px;height:44px;font-size:15px}.people-grid article>div{flex-direction:column;min-width:0;display:flex}.people-grid strong{font-size:15px;font-weight:500}.people-grid small{color:var(--text-faint);overflow-wrap:anywhere;font-size:13px}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.planner{gap:var(--space-md);flex-direction:column;display:flex}.portal-main>.planner>.page-head{margin-bottom:0}.planner-lead p{flex-wrap:wrap;gap:4px 10px;display:flex}.planner-lead p b{color:var(--text-secondary);font-weight:600}.page-head>.planner-controls{align-items:center;gap:var(--space-xs);flex-flow:wrap;display:flex}.planner-step{background:var(--surface-card);border:1px solid var(--border-hairline);border-radius:var(--radius-md);align-items:center;display:inline-flex;overflow:hidden}.planner-step button{min-width:36px;height:34px;color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:0;justify-content:center;align-items:center;padding:0 10px;display:inline-flex}.planner-step button:hover{background:var(--color-primary-wash);color:var(--color-primary)}.planner-now-button{font-size:14px;font-weight:500;border-inline:1px solid var(--border-hairline)!important}.planner-jump input{background:var(--surface-card);border:1px solid var(--border-hairline);border-radius:var(--radius-md);height:34px;color:var(--text-secondary);font-variant-numeric:var(--num);padding:0 10px;font-size:14px}.planner-create{background:var(--color-primary);height:34px;color:var(--color-on-primary);border-radius:var(--radius-full);cursor:pointer;transition:background var(--transition-fast);border:0;align-items:center;gap:6px;padding:0 16px;font-size:14px;font-weight:500;display:inline-flex}.planner-create:hover{background:var(--color-primary-active)}.planner-filters{gap:var(--space-xs);flex-wrap:wrap;display:flex}.planner-pill{background:var(--surface-card);border:1px solid var(--border-hairline);border-radius:var(--radius-full);color:var(--text-secondary);cursor:pointer;transition:border-color var(--transition-fast), color var(--transition-fast), background var(--transition-fast), transform var(--transition-fast);align-items:center;gap:7px;padding:5px 13px 5px 10px;font-size:14px;display:inline-flex}.planner-pill:hover{border-color:var(--course-tone)}@supports (color:color-mix(in lab, red, red)){.planner-pill:hover{border-color:color-mix(in srgb, var(--course-tone) 42%, var(--hairline))}}.planner-pill:active{transform:scale(.97)}.planner-pill[aria-pressed=true]{border-color:var(--course-tone)}@supports (color:color-mix(in lab, red, red)){.planner-pill[aria-pressed=true]{border-color:color-mix(in srgb, var(--course-tone) 30%, var(--border-hairline))}}.planner-pill-dot{background:var(--course-tone);width:8px;height:8px;transition:background var(--transition-fast);border-radius:50%}.planner-pill[aria-pressed=false]{color:var(--text-faint);background:0 0}.planner-pill[aria-pressed=false] .planner-pill-dot{background:var(--border-hairline)}.planner-alert{background:var(--shield-red);padding:10px 14px}@supports (color:color-mix(in lab, red, red)){.planner-alert{background:color-mix(in srgb, var(--shield-red) 7%, white)}}.planner-alert{border:1px solid var(--shield-red)}@supports (color:color-mix(in lab, red, red)){.planner-alert{border:1px solid color-mix(in srgb, var(--shield-red) 22%, white)}}.planner-alert{border-radius:var(--radius-md);color:var(--shield-red-deep);font-size:14px}.planner-daybar{display:none}.planner-daychip{background:var(--surface-card);border:1px solid var(--border-hairline);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast);flex-direction:column;align-items:center;gap:1px;padding:7px 2px;display:flex}.planner-daychip small{letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);font-size:10px;font-weight:600}.planner-daychip b{font-variant-numeric:var(--num);font-size:15px;font-weight:600}.planner-daychip[data-today=true] b{color:var(--color-primary)}.planner-daychip[aria-current=date]{background:var(--color-primary);border-color:var(--color-primary)}.planner-daychip[aria-current=date] small,.planner-daychip[aria-current=date] b{color:var(--color-on-primary)}.planner-frame{--planner-gutter:68px;--planner-row:56px;--planner-line:var(--hairline)}@supports (color:color-mix(in lab, red, red)){.planner-frame{--planner-line:color-mix(in srgb, var(--hairline) 62%, white)}}.planner-frame{background:var(--surface-card);border:1px solid var(--border-hairline);border-radius:var(--radius-xl);flex-direction:column;display:flex;overflow:hidden}.planner-head,.planner-ribbon,.planner-grid{grid-template-columns:var(--planner-gutter) repeat(7, minmax(0, 1fr));display:grid}.planner-head,.planner-ribbon{scrollbar-gutter:stable;overflow-y:auto}.planner-head{border-bottom:1px solid var(--border-hairline)}.planner-zone{color:var(--text-faint);font-variant-numeric:var(--num);justify-content:center;align-items:center;font-size:11px;display:flex}.planner-headday{border-left:1px solid var(--border-hairline);flex-direction:column;align-items:center;gap:4px;padding:8px 4px;display:flex}.planner-headday small{letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);margin-inline-end:-.06em;font-size:11px;font-weight:600}.planner-headday b{font-family:var(--font-display);letter-spacing:-.02em;font-variant-numeric:var(--num);font-size:20px;font-weight:700;line-height:1}.planner-headday[data-today=true] small{color:var(--color-primary)}.planner-headday[data-today=true] b{background:var(--color-primary);width:34px;height:34px;color:var(--color-on-primary);font-family:var(--font-display);letter-spacing:-.01em;font-variant-numeric:normal;border-radius:50%;justify-content:center;align-items:center;margin:-3px auto;padding-top:1.5px;font-size:18.5px;font-weight:700;line-height:1;display:flex}.planner-ribbon{background:var(--paper);min-height:44px}@supports (color:color-mix(in lab, red, red)){.planner-ribbon{background:color-mix(in srgb, var(--paper) 55%, white)}}.planner-ribbon{border-bottom:1px solid var(--border-hairline)}.planner-ribbon-label{text-transform:uppercase;color:var(--text-faint);justify-content:flex-end;align-items:center;padding:0 8px;font-size:10px;font-weight:600;display:flex;overflow:hidden}.planner-ribbon-cell{border-left:1px solid var(--border-hairline);flex-direction:column;gap:3px;min-width:0;padding:6px 5px;display:flex}.planner-due{text-align:left;background:var(--course-tone);grid-template-columns:6px minmax(0,1fr);align-items:center;gap:0 7px;padding:5px 8px;display:grid}@supports (color:color-mix(in lab, red, red)){.planner-due{background:color-mix(in srgb, var(--course-tone) 12%, white)}}.planner-due{border:1px solid var(--course-tone)}@supports (color:color-mix(in lab, red, red)){.planner-due{border:1px solid color-mix(in srgb, var(--course-tone) 26%, white)}}.planner-due{border-radius:var(--radius-sm);cursor:pointer;transition:border-color var(--transition-fast), box-shadow var(--transition-fast)}.planner-due:hover{border-color:var(--course-tone)}@supports (color:color-mix(in lab, red, red)){.planner-due:hover{border-color:color-mix(in srgb, var(--course-tone) 52%, white)}}.planner-due:hover{box-shadow:var(--shadow-1)}.planner-due-dot{background:var(--course-tone);border-radius:50%;width:6px;height:6px}.planner-due-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--course-tone);font-size:12px;font-weight:600;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.planner-due-title{color:color-mix(in srgb, var(--course-tone) 38%, #0f172a)}}.planner-due small{text-overflow:ellipsis;white-space:nowrap;color:var(--course-tone);grid-column:2;font-size:11px;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.planner-due small{color:color-mix(in srgb, var(--course-tone) 26%, #334155)}}.planner-grid{max-height:min(58vh, calc(var(--planner-rows,13) * var(--planner-row)));scrollbar-gutter:stable;position:relative;overflow-y:auto}@keyframes planner-week{0%{opacity:0;transform:translate3d(calc(var(--planner-dir,0) * 30px), 0, 0)}to{opacity:1;transform:none}}.planner-frame[data-moved] .planner-head,.planner-frame[data-moved] .planner-ribbon,.planner-frame[data-moved] .planner-grid{animation:.26s cubic-bezier(.16,1,.3,1) planner-week}.planner-hours,.planner-col{height:calc(var(--planner-rows,13) * var(--planner-row));position:relative}.planner-hours span{color:var(--text-faint);font-variant-numeric:var(--num);font-size:11px;position:absolute;right:10px;transform:translateY(6px)}.planner-hours-now{z-index:1;border-radius:var(--radius-full);background:var(--shield-red);color:var(--white);font-variant-numeric:var(--num);transition:transform var(--duration-fast) var(--ease-spring);padding:1px 5px;font-size:10px;font-weight:600;position:absolute;right:6px;transform:translateY(-50%)}.planner-col{border-left:1px solid var(--border-hairline);background-image:repeating-linear-gradient(to bottom, var(--planner-line) 0 1px, transparent 1px var(--planner-row))}.planner-col[data-weekend=true]{background-color:var(--paper)}@supports (color:color-mix(in lab, red, red)){.planner-col[data-weekend=true]{background-color:color-mix(in srgb, var(--paper) 78%, white)}}.planner-col[data-today=true]{background-color:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.planner-col[data-today=true]{background-color:color-mix(in srgb, var(--color-primary) 4%, white)}}.planner-spent{z-index:0;transform-origin:top;height:100%;transform:scaleY(var(--planner-spent,0));background:var(--paper);inset-inline:0;position:absolute;top:0}@supports (color:color-mix(in lab, red, red)){.planner-spent{background:color-mix(in srgb, var(--paper) 68%, transparent)}}.planner-spent{pointer-events:none;transition:transform .6s cubic-bezier(.2,0,0,1)}.planner-slot{z-index:1;width:100%;height:var(--planner-row);color:var(--color-primary);opacity:0;cursor:pointer;transition:opacity var(--transition-fast), background var(--transition-fast);background:0 0;border:0;justify-content:center;align-items:center;display:flex;position:relative}.planner-slot:hover,.planner-slot:focus-visible{opacity:1;background:var(--color-primary-wash)}.planner-slot svg{transition:transform var(--transition-fast);transform:scale(.7)}.planner-slot:hover svg,.planner-slot:focus-visible svg{transform:none}.planner-block{z-index:2;background:var(--course-tone);grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:5px;padding:5px 7px;display:grid;position:absolute;overflow:hidden;container-type:size}@supports (color:color-mix(in lab, red, red)){.planner-block{background:color-mix(in srgb, var(--course-tone) 13%, white)}}.planner-block{border:1px solid var(--course-tone)}@supports (color:color-mix(in lab, red, red)){.planner-block{border:1px solid color-mix(in srgb, var(--course-tone) 38%, white)}}.planner-block{border-radius:var(--radius-md);transition:box-shadow var(--transition-fast), border-color var(--transition-fast);box-shadow:0 1px 2px #0f172a0d}.planner-block:hover{box-shadow:var(--shadow-1);border-color:var(--course-tone)}@supports (color:color-mix(in lab, red, red)){.planner-block:hover{border-color:color-mix(in srgb, var(--course-tone) 62%, white)}}.planner-block[data-done=true] .planner-block-open{opacity:.5}.planner-block[data-done=true] .planner-block-open strong{text-decoration:line-through}.planner-check{background:var(--white);border:1.5px solid var(--course-tone);place-items:center;width:14px;height:14px;margin-top:2px;padding:0;display:grid}@supports (color:color-mix(in lab, red, red)){.planner-check{border:1.5px solid color-mix(in srgb, var(--course-tone) 55%, white)}}.planner-check{color:var(--color-on-primary);cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast);border-radius:50%}.planner-check span{place-items:center;display:grid}.planner-block-remove{border-radius:var(--radius-xs);width:15px;height:15px;color:var(--course-tone);background:0 0;border:0;place-items:center;margin-top:1px;padding:0;display:grid}@supports (color:color-mix(in lab, red, red)){.planner-block-remove{color:color-mix(in srgb, var(--course-tone) 46%, #334155)}}.planner-block-remove{cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast), opacity var(--transition-fast)}.planner-block-remove:hover{background:var(--shield-red)}@supports (color:color-mix(in lab, red, red)){.planner-block-remove:hover{background:color-mix(in srgb, var(--shield-red) 12%, transparent)}}.planner-block-remove:hover{color:var(--shield-red)}@media (hover:hover){.planner-block-remove{opacity:0}.planner-block:hover .planner-block-remove,.planner-block-remove:focus-visible{opacity:1}}@container (max-width:104px){.planner-block-remove{display:none}}.planner-block[data-done=true] .planner-check{background:var(--course-tone);border-color:var(--course-tone)}.planner-block-open{text-align:left;cursor:pointer;min-width:0;transition:opacity var(--transition-base);background:0 0;border:0;flex-direction:column;gap:1px;padding:0;display:flex}.planner-block-open strong,.planner-block-open small{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.planner-block-open strong{color:var(--course-tone);font-size:12px;font-weight:600;line-height:1.25}@supports (color:color-mix(in lab, red, red)){.planner-block-open strong{color:color-mix(in srgb, var(--course-tone) 38%, #0f172a)}}.planner-block-open small{font-variant-numeric:var(--num);color:var(--course-tone);font-size:11px;line-height:1.2}@supports (color:color-mix(in lab, red, red)){.planner-block-open small{color:color-mix(in srgb, var(--course-tone) 26%, #334155)}}@container (max-width:104px){.planner-block-open small{display:none}}@container (min-height:74px){.planner-block-open strong,.planner-block-open small{white-space:normal}}.planner-now{z-index:3;border-top:2px solid var(--shield-red);pointer-events:none;height:0;position:absolute;left:0;right:0}.planner-now:before{content:"";background:var(--shield-red);border-radius:50%;width:8px;height:8px;position:absolute;top:-5px;left:-3px}.planner-blank{z-index:4;padding:56px var(--space-lg) var(--space-lg);pointer-events:none;background:linear-gradient(#ffffff80 0%,#fffc 46%);align-content:start;justify-items:center;animation:.24s cubic-bezier(.16,1,.3,1) planner-blank;display:grid;position:absolute;inset:0}@keyframes planner-blank{0%{opacity:0}to{opacity:1}}.planner-blank>div{align-items:center;gap:var(--space-sm);max-width:46ch;padding:var(--space-lg) var(--space-xl);text-align:center;pointer-events:auto;background:var(--surface-card);border:1px solid var(--border-hairline);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);flex-direction:column;display:flex}.planner-blank strong{font-family:var(--font-display);letter-spacing:-.01em;font-size:21px;font-weight:700}.planner-blank p{color:var(--text-muted);font-size:14px;line-height:1.55}.planner-dialog{background:var(--surface-card);border:1px solid var(--border-hairline);border-radius:var(--radius-xl);width:min(540px,100vw - 32px);max-height:calc(100dvh - 48px);box-shadow:var(--shadow-2);color:var(--text-body);margin:auto;padding:0}.planner-dialog::backdrop{background:#0f172a80}@media (min-width:768px){.planner-dialog::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0f172a66}}.planner-dialog form{gap:var(--space-sm);padding:var(--space-lg);flex-direction:column;display:flex}.planner-dialog header{justify-content:space-between;align-items:center;gap:var(--space-md);display:flex}.planner-dialog h2{font-family:var(--font-display);letter-spacing:-.015em;font-size:23px;font-weight:700}.planner-dialog header button{border:1px solid var(--border-hairline);border-radius:var(--radius-md);width:30px;height:30px;color:var(--text-muted);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);background:0 0;place-items:center;display:grid}.planner-dialog header button:hover{background:var(--canvas-soft);color:var(--text-body)}.planner-dialog label{min-width:0;color:var(--text-secondary);flex-direction:column;gap:5px;font-size:14px;font-weight:500;display:flex}.planner-dialog input,.planner-dialog select,.planner-dialog textarea{background:var(--canvas);border:1px solid var(--border-hairline);border-radius:var(--radius-md);width:100%;color:var(--text-body);padding:8px 10px;font-size:15px;font-weight:400}.planner-dialog textarea{resize:vertical}.planner-dialog-row{gap:var(--space-sm);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.planner-dialog-row.three{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr)}.planner-dialog-error{background:var(--shield-red);padding:8px 10px}@supports (color:color-mix(in lab, red, red)){.planner-dialog-error{background:color-mix(in srgb, var(--shield-red) 7%, white)}}.planner-dialog-error{border-radius:var(--radius-md);color:var(--shield-red-deep);font-size:14px}.planner-dialog footer{justify-content:flex-end;align-items:center;gap:var(--space-xs);margin-top:var(--space-xxs);display:flex}.planner-dialog footer button{border-radius:var(--radius-full);cursor:pointer;height:36px;transition:background var(--transition-fast), color var(--transition-fast);padding:0 16px;font-size:14px;font-weight:500}.planner-dialog-delete{border:1px solid var(--border-hairline);color:var(--shield-red-deep);background:0 0;align-items:center;gap:6px;margin-right:auto;display:inline-flex}.planner-dialog-delete:hover{background:var(--shield-red)}@supports (color:color-mix(in lab, red, red)){.planner-dialog-delete:hover{background:color-mix(in srgb, var(--shield-red) 7%, white)}}.planner-dialog-cancel{border:1px solid var(--border-hairline);color:var(--text-secondary);background:0 0}.planner-dialog-cancel:hover{background:var(--canvas-soft)}.planner-dialog-save{background:var(--color-primary);color:var(--color-on-primary);border:0}.planner-dialog-save:hover{background:var(--color-primary-active)}.planner-dialog-save:disabled{opacity:.6;cursor:progress}.planner :focus-visible,.planner-dialog :focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.field-hint{color:var(--text-faint);font-size:12px;font-weight:400;line-height:1.4}.resources-hub{gap:var(--space-xxl);display:grid}.portal-main>.resources-hub>.page-head{margin-bottom:0}.res-top{gap:var(--space-sm);display:grid}.library-panel{gap:var(--space-xl);padding:var(--space-xl) var(--space-lg);background:var(--surface-card);border:1px solid var(--border-hairline);border-radius:var(--radius-xl);grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);display:grid}.library-lead{gap:var(--space-xs);align-content:start;display:grid}.library-icon{margin-bottom:var(--space-xxs);border-radius:var(--radius-md);background:var(--color-primary-wash);width:46px;height:46px;color:var(--color-primary);place-items:center;display:inline-grid}.library-panel h2{letter-spacing:-.02em;text-wrap:balance;font-size:clamp(23px,2.6vw,30px);line-height:1.15}.library-panel p{max-width:52ch;color:var(--text-muted);font-size:15px;line-height:1.5}.library-cta{justify-self:start;align-items:center;gap:var(--space-xs);margin-top:var(--space-xs);min-height:44px;padding:0 var(--space-lg);background:var(--color-primary);border-radius:var(--radius-full);color:var(--color-on-primary);transition:background var(--transition-fast);font-size:15px;font-weight:500;display:inline-flex}.library-cta:hover{background:var(--color-primary-active);color:var(--color-on-primary)}.library-points{padding:0 0 0 var(--space-xl);gap:var(--space-sm);border-left:1px solid var(--border-hairline);align-content:center;margin:0;list-style:none;display:grid}.library-points li{align-items:flex-start;gap:var(--space-xs);color:var(--text-secondary);font-size:14.5px;line-height:1.5;display:flex}.library-points svg{color:var(--academic-teal);flex:none;margin-top:4px}.mobile-strip{align-items:center;gap:var(--space-sm) var(--space-md);padding:var(--space-sm) var(--space-md);background:var(--canvas-soft);border:1px solid var(--border-hairline);border-radius:var(--radius-lg);flex-wrap:wrap;display:flex}.mobile-strip-icon{border-radius:var(--radius-md);background:var(--surface-card);border:1px solid var(--border-hairline);width:34px;height:34px;color:var(--text-secondary);flex:none;place-items:center;display:inline-grid}.mobile-strip-text{flex:200px;gap:1px;display:grid}.mobile-strip-text b{font-size:14.5px;font-weight:600}.mobile-strip-text small{color:var(--text-muted);font-size:12.5px;line-height:1.45}.mobile-strip .store-badges{gap:var(--space-xs)}.mobile-strip .store-badge,.mobile-strip .store-badge img{height:30px}.mobile-strip-action{min-height:44px;padding:0 var(--space-sm);border-radius:var(--radius-md);color:var(--color-primary);transition:background var(--transition-fast);align-items:center;gap:6px;font-size:14.5px;font-weight:600;display:inline-flex}.mobile-strip-action:hover{background:var(--color-primary-wash);color:var(--color-primary)}.res-group{gap:var(--space-sm);display:grid}.res-group .section-title{margin-top:0}.res-group-count{color:var(--text-muted);font-size:14px;font-weight:600}.res-index{background:var(--surface-card);border:1px solid var(--border-hairline);border-radius:var(--radius-lg);grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));margin:0;padding:0;list-style:none;display:grid;overflow:hidden}.res-row{border-top:1px solid var(--border-hairline);border-left:1px solid var(--border-hairline);margin:-1px 0 0 -1px;display:flex}.res-row>a{align-items:center;gap:var(--space-sm);width:100%;min-height:64px;padding:12px var(--space-md);color:var(--text-body);transition:background var(--transition-fast);display:flex}.res-row>a:hover{background:var(--color-primary-wash);color:var(--text-body)}.res-row>a:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px;border-radius:0}.res-mark{flex:none;place-items:center;width:26px;height:26px;display:grid}.res-mark img{object-fit:contain;width:auto;height:22px}.brand-mark{object-fit:contain;flex:none;width:22px;height:22px}.brand-go{color:var(--text-faint);transition:color var(--transition-fast);flex:none}.res-row>a:hover .brand-go,.res-row>a:focus-visible .brand-go{color:var(--color-primary)}.res-body{flex:1;gap:2px;min-width:0;display:grid}.res-name{align-items:center;gap:var(--space-xs);min-width:0;display:flex}.res-name b{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:14.5px;font-weight:600;overflow:hidden}.res-body small{color:var(--text-muted);font-size:12.5px;line-height:1.45}.res-body small.res-host{font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;overflow:hidden}.res-tag{border-radius:var(--radius-full);letter-spacing:.015em;white-space:nowrap;flex:none;padding:2px 8px;font-size:12px;font-weight:600}.res-tag.free{color:#004b25;color:lab(27.1585% -35.8804 18.6309);background:#d6f6e0;background:lab(94.2261% -13.9684 7.15902)}.res-tag.plan{color:#653e00;color:lab(30.1335% 17.0953 48.7876);background:#feedc9;background:lab(94.3657% 2.03729 19.5421)}.res-notes{gap:3px;margin:0;padding:0;list-style:none;display:grid}.res-notes li,.res-disclaimer{max-width:76ch;color:var(--text-muted);font-size:12.5px;line-height:1.55}@media (max-width:400px){.res-name{flex-wrap:wrap}.res-name b{white-space:normal}}.res-group-ubb .res-index{position:relative}.res-group-ubb .res-index:before{content:"";z-index:1;background:linear-gradient(90deg, var(--ubb-royal-blue) 0 40%, var(--shield-sky) 40% 64%, var(--shield-gold) 64% 84%, var(--shield-red) 84%);height:3px;position:absolute;inset:0 0 auto}.admin-head,.admin-row{gap:var(--space-md);padding:var(--space-sm) var(--space-md);grid-template-columns:minmax(0,1fr) 200px 220px;align-items:center;display:grid}.admin-row{border-top:1px solid var(--border-hairline)}.admin-row:first-of-type{border-top:0}.admin-row b,.admin-row small{display:block}.admin-row b{font-size:15px;font-weight:500}.admin-row small{color:var(--text-faint);overflow-wrap:anywhere;font-size:13px}.admin-row select{background:var(--surface-card);border:1px solid var(--border-hairline);border-radius:var(--radius-xs);min-height:34px;padding:4px 10px;font-size:14px}.role-chip{border-radius:var(--radius-full);letter-spacing:.125px;background:var(--canvas-soft);color:var(--text-secondary);justify-self:start;padding:4px 8px;font-size:12px;font-weight:600}.role-chip.owner{color:var(--academic-purple-deep);background:#8b5cf624}.role-chip.teacher{background:var(--color-primary-wash);color:var(--color-primary)}.role-chip.student{color:#047857;background:#10b9811f}.admin-toolbar{margin-bottom:var(--space-md);justify-content:space-between;align-items:center;gap:var(--space-md);display:flex}.admin-search-box{align-items:center;width:100%;max-width:380px;display:flex;position:relative}.admin-search-icon{color:var(--text-faint);pointer-events:none;position:absolute;left:12px}.admin-search-input{background:var(--surface-card);border:1px solid var(--border-hairline);border-radius:var(--radius-sm);width:100%;min-height:38px;color:var(--ink);outline:none;padding:6px 36px 6px 38px;font-size:14px;transition:border-color .15s,box-shadow .15s}.admin-search-input:focus{border-color:var(--ubb-royal-blue);box-shadow:0 0 0 2px var(--color-primary-wash)}.admin-search-clear{background:var(--canvas-soft);width:20px;height:20px;color:var(--text-faint);border-radius:var(--radius-full);cursor:pointer;border:none;justify-content:center;align-items:center;padding:0;transition:color .15s,background-color .15s;display:inline-flex;position:absolute;right:10px}.admin-search-clear:hover{background:var(--border-hairline);color:var(--ink)}.admin-pagination{justify-content:center;align-items:center;gap:var(--space-md);margin-top:var(--space-lg);padding-top:var(--space-sm);display:flex}.admin-page-btn{background:var(--surface-card);border:1px solid var(--border-hairline);border-radius:var(--radius-sm);min-height:34px;color:var(--ink);cursor:pointer;align-items:center;gap:6px;padding:6px 14px;font-size:13px;font-weight:500;transition:background-color .15s,border-color .15s;display:inline-flex}.admin-page-btn:hover:not(:disabled){background:var(--canvas-soft);border-color:var(--text-faint)}.admin-page-btn:disabled{opacity:.4;cursor:not-allowed}.admin-page-info{color:var(--text-secondary);font-size:13px}.admin-page-info b{color:var(--ink)}.grades-view{gap:var(--space-lg);grid-template-columns:minmax(0,1fr) 320px;align-items:start;display:grid}.grades-teacher{gap:var(--space-md);flex-direction:column;display:flex}.grades-head,.grades-row{gap:var(--space-md);padding:var(--space-sm) var(--space-md);grid-template-columns:minmax(0,2fr) 84px 104px 104px minmax(148px,176px);align-items:center;display:grid}.grades-row{border-top:1px solid var(--border-hairline)}.grades-row:first-of-type{border-top:0}.grades-row b,.grades-row small{display:block}.grades-row b{font-size:15px;font-weight:500}.grades-row small{color:var(--text-faint);font-size:13px}.grades-weight,.grades-official{font-variant-numeric:var(--num);font-size:15px}.grades-official{font-weight:600}.grades-row input,.grades-editor input,.grades-matrix-row input{background:var(--surface-card);border:1px solid var(--border-hairline);border-radius:var(--radius-xs);font-variant-numeric:var(--num);width:100%;min-height:34px;transition:border-color var(--transition-fast), box-shadow var(--transition-fast);padding:4px 8px;font-size:15px}.grades-row input:focus,.grades-editor input:focus,.grades-matrix-row input:focus{border-color:var(--color-primary);box-shadow:var(--shadow-focus);outline:none}.grades-row input:disabled{background:var(--canvas-soft);color:var(--text-faint);cursor:not-allowed}.grades-submission{gap:var(--space-xxs);flex-direction:column;min-width:0;display:flex}.grades-attach{background:var(--surface-card);border:1px solid var(--border-hairline);border-radius:var(--radius-md);min-height:32px;color:var(--text-body);cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast);justify-content:center;align-self:start;align-items:center;gap:6px;padding:4px 12px;font-size:13px;font-weight:500;display:inline-flex}.grades-attach:hover{background:var(--canvas-soft);border-color:var(--color-primary)}.grades-attach:focus-visible{border-color:var(--color-primary);box-shadow:var(--shadow-focus);outline:none}.grades-receipt{gap:var(--space-xxs);flex-direction:column;align-items:flex-start;min-width:0;display:flex}.grades-receipt b{max-width:100%;color:var(--text-body);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;font-size:13px;font-weight:500;display:flex;overflow:hidden}.grades-receipt b svg{color:var(--academic-emerald);flex:none}@supports (color:color-mix(in lab, red, red)){.grades-receipt b svg{color:color-mix(in srgb, var(--academic-emerald) 30%, var(--ink-900))}}.grades-receipt small{color:var(--text-faint);font-size:12px}.grades-upload{flex-direction:column;gap:6px;display:flex}.grades-upload-track{border-radius:var(--radius-full);background:var(--canvas-soft);height:3px;overflow:hidden}.grades-upload-fill{border-radius:inherit;background:var(--color-primary);transform-origin:0;width:100%;height:100%;transition:transform var(--transition-base);display:block}.grades-upload small{color:var(--text-muted);font-size:12px}@media (prefers-reduced-motion:reduce){.grades-upload-fill,.grades-attach{transition:none}}.grades-summary{gap:var(--space-md);padding:var(--space-lg);background:var(--surface-card);border:1px solid var(--border-hairline);border-radius:var(--radius-xl);flex-direction:column;display:flex}.grades-average{align-items:center;gap:var(--space-md);display:flex}.grades-average>strong{font-family:var(--font-display);font-variant-numeric:var(--num);letter-spacing:-.02em;color:var(--color-primary);font-size:46px;font-weight:700;line-height:1}.grades-average>div{flex-direction:column;gap:2px;display:flex}.grades-average h3{font-size:16px;font-weight:600}.grades-average p{color:var(--text-muted);font-size:13px}.grades-targets{flex-direction:column;margin:0;display:flex}.grades-target{padding:var(--space-sm) 0;border-top:1px solid var(--border-hairline);flex-direction:column;gap:2px;display:flex}.grades-target:first-child{border-top:0}.grades-target dt{letter-spacing:.125px;text-transform:uppercase;color:var(--text-muted);font-size:12px;font-weight:600}.grades-target dd{color:var(--text-body);margin:0;font-size:15px;line-height:1.4}.grades-target.secured dd{color:#047857}.grades-target.impossible dd{color:var(--shield-red-deep)}.grades-note{color:var(--text-faint);font-size:13px;line-height:1.5}.grades-editor{gap:var(--space-sm);padding:var(--space-lg);background:var(--surface-card);border:1px solid var(--border-hairline);border-radius:var(--radius-xl);flex-direction:column;display:flex}.grades-editor-row{gap:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--border-hairline);grid-template-columns:minmax(0,2fr) 110px 160px auto;align-items:end;display:grid}.grades-editor-row:first-child{border-top:0;padding-top:0}.grades-editor label{letter-spacing:.125px;text-transform:uppercase;color:var(--text-muted);flex-direction:column;gap:6px;font-size:12px;font-weight:600;display:flex}.remove-row{border:1px solid var(--border-hairline);border-radius:var(--radius-md);min-height:34px;color:var(--text-secondary);transition:background var(--transition-fast), color var(--transition-fast);padding:4px 14px;font-size:14px}.remove-row:hover{color:var(--shield-red-deep);background:#e31b2314;border-color:#e31b2340}.grades-editor-foot{align-items:end;gap:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--border-hairline);flex-wrap:wrap;display:flex}.grades-editor-foot label{flex:0 0 160px}.weight-total{border-radius:var(--radius-full);color:#92400e;letter-spacing:.125px;background:#f59e0b26;margin-right:auto;padding:4px 8px;font-size:12px;font-weight:600}.weight-total.ok{color:#047857;background:#10b9811f}.grades-matrix{overflow-x:auto}.grades-matrix-head,.grades-matrix-row{align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-md);min-width:max-content;display:flex}.grades-matrix-row{border-top:1px solid var(--border-hairline)}.grades-matrix-head>span,.grades-matrix-row>span{flex:0 0 110px}.grades-matrix-head>span:first-child,.grades-matrix-row>span:first-child{flex:0 0 220px}.grades-matrix-row b,.grades-matrix-row small{display:block}.grades-matrix-row b{font-size:15px;font-weight:500}.grades-matrix-row small{color:var(--text-faint);overflow-wrap:anywhere;font-size:12px}.empty-state{padding:var(--space-xl) var(--space-lg);background:var(--canvas-soft);border:1px solid var(--border-hairline);border-radius:var(--radius-md);text-align:left;flex-direction:column;gap:6px;display:flex}.empty-state strong{font-size:16px;font-weight:600}.empty-state p{max-width:68ch;color:var(--text-muted);font-size:15px;line-height:1.55}.empty-state-action{align-items:center;gap:var(--space-xs);min-height:44px;margin:var(--space-xs) 0 -4px -10px;border-radius:var(--radius-md);color:var(--color-primary);align-self:flex-start;padding:6px 10px;font-size:15px;font-weight:600;display:inline-flex}.empty-state-action:hover{background:var(--color-primary-wash);color:var(--color-primary)}.empty-row{padding:var(--space-md);color:var(--text-muted);font-size:15px}@media (max-width:1240px){.app-shell{grid-template-columns:240px minmax(0,1fr)}}@media (max-width:1100px){.course-grid{grid-template-columns:repeat(2,1fr)}.classroom-columns,.materials-view,.grades-view{grid-template-columns:minmax(0,1fr)}.library-panel{gap:var(--space-lg);grid-template-columns:minmax(0,1fr)}.library-points{padding:var(--space-lg) 0 0;border-top:1px solid var(--border-hairline);border-left:0}.planner-frame{--planner-gutter:54px}.teacher-tools{position:static}.resources-hub{gap:var(--space-xxl)}}@media (max-width:900px){.access-page{grid-template-rows:auto 1fr;grid-template-columns:1fr}.access-brand{min-height:30svh;padding:2.6rem 1.4rem}.access-brand:before{background-position:50% 24%;transform:scale(2)}.access-brand:after{background:linear-gradient(90deg, var(--ubb-royal-blue) 0 40%, var(--shield-sky) 40% 64%, var(--shield-gold) 64% 84%, var(--shield-red) 84%);width:auto;height:.32rem;inset:auto 0 0}.access-brand-lockup{gap:1rem}.access-brand-lockup>img{width:clamp(3.5rem,14vw,6rem)}.access-brand h1{font-size:clamp(1.9rem,11.5vw,3.2rem)}.access-panel{padding:2.2rem 1.4rem 2.4rem}.access-panel-inner{gap:1.4rem}.store-block{padding-top:1.25rem}.app-shell,.app-shell[data-sidebar=closed]{grid-template-columns:minmax(0,1fr);grid-template-areas:"header""main"}.app-sidebar{top:var(--header-offset);z-index:45;width:284px;max-width:84vw;box-shadow:var(--shadow-2);position:fixed;left:0}.app-shell[data-sidebar=open] .sidebar-scrim{inset:var(--header-offset) 0 0;z-index:44;background:#0f172a6b;border:0;display:block;position:fixed}.planner-daybar{grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;display:grid}.planner-frame{--planner-gutter:48px}.planner-head,.planner-ribbon,.planner-grid{grid-template-columns:var(--planner-gutter) minmax(0, 1fr)}.planner-headday:not([data-focus=true]),.planner-ribbon-cell:not([data-focus=true]),.planner-col:not([data-focus=true]){display:none}.planner-grid{max-height:min(64vh, calc(var(--planner-rows,13) * var(--planner-row)))}.page-head>.planner-controls{justify-content:space-between;width:100%}.planner-ribbon-label{visibility:hidden}}@media (max-width:560px){.mobile-strip .store-badges{flex-wrap:wrap}}@media (max-width:520px){.header-context-sep{display:none}}@media (min-width:768px) and (max-width:1000px){.header-search{border-radius:var(--radius-md);flex:0 0 38px;justify-content:center;min-width:0;padding:0}.header-search>span,.header-search kbd{display:none}}@media (max-width:767px){.app-brand strong{display:none}.app-brand{padding:6px}.header-search{flex:auto;min-width:0;height:40px}.header-search kbd{display:none}}@media (max-width:800px){.account-copy{display:none}.course-grid,.people-grid{grid-template-columns:minmax(0,1fr)}.progress-table-head,.progress-table-row,.admin-head,.admin-row{grid-template-columns:minmax(0,1fr) auto}.progress-table-head span:last-child,.admin-head span:last-child{display:none}.progress-table-row span:last-child{color:var(--text-faint);grid-column:1/-1;font-size:13px}.admin-row span:last-child{grid-column:1/-1}}@media (max-width:700px){.next-strip{grid-template-columns:auto minmax(0,1fr)}.next-strip-end{grid-column:1/-1;justify-content:space-between}.next-strip-detail{white-space:normal}}@media (max-width:520px){.portal-main,.classroom-layout{padding:var(--space-md) var(--space-md) var(--space-xxl)}.unit-grid article,.post-list article,.material-row{grid-template-columns:minmax(0,1fr)}.unit-grid article>strong,.unit-check{justify-self:start}.material-actions{justify-content:flex-start}.personal-progress,.grades-average{flex-wrap:wrap;grid-template-columns:minmax(0,1fr)}.grades-head,.grades-row{grid-template-columns:minmax(0,1fr) 70px 70px}.grades-head span:nth-child(n+4),.grades-row span:nth-child(n+4){grid-column:1/-1}.grades-head span:nth-child(n+4){display:none}.grades-editor-row{grid-template-columns:minmax(0,1fr) 1fr}.grades-editor-row>label:first-child,.remove-row{grid-column:1/-1}.planner-frame{--planner-row:50px}.planner-blank>div{padding:var(--space-md)}.planner-dialog-row,.planner-dialog-row.three{grid-template-columns:minmax(0,1fr)}.planner-dialog footer{flex-wrap:wrap}.planner-dialog-delete{order:3;justify-content:center;width:100%;margin-right:0}.empty-state,.policy-page article{padding:var(--space-lg)}}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}