:root{--font-sans:system-ui, -apple-system, BlinkMacSystemFont, "Inter", sans-serif;--font-size-footnote:13px;--font-size-caption:14px;--font-size-callout:16px;--font-size-body:17px;--font-size-title-3:21px;--font-size-title-2:24px;--font-size-title-1:32px;--font-size-large-title:40px;--line-height-body:1.47;--line-height-tight:1.25;--line-height-heading:1.12;--tracking-heading:-.015em;--tracking-large-title:-.025em;--tracking-caption:.005em;--weight-regular:400;--weight-semibold:600;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--radius-control:8px;--radius-field:12px;--radius-card:11px;--radius-sheet:18px;--radius-bento:24px;--radius-thumb:6px;--radius-pill:980px;--radius-round:50%;--measure-reading:720px;--content-width:1280px;--content-width-narrow:680px;--gutter:var(--space-8);--tap-size:44px;--bar-height:56px;--bento-gap:20px;--bento-min-height:220px;--bento-padding:var(--space-6);--color-canvas:#fff;--color-sheet:#f5f5f7;--color-sheet-raised:#fff;--color-paper:#fff;--color-paper-ink:#3a3a3c;--color-chip:#1d1d1fb8;--color-chip-ink:#fff;--color-ink:#1d1d1f;--color-ink-muted:#636366;--color-ink-faint:#a1a1a6;--color-hairline:#00000014;--color-hairline-strong:#00000029;--color-control:#0000000d;--color-control-pressed:#0000001a;--color-segment-thumb:#fff;--color-accent:#06c;--color-accent-soft:#0066cc1a;--color-accent-ink:#fff;--color-focus:#0071e3;--color-danger:#c4291c;--color-danger-soft:#c4291c14;--color-success:#1b7d36;--color-scrim:#00000047;--color-drop:#0066cc0f;--color-highlight-yellow:#ffd60a59;--color-highlight-green:#34c75947;--color-highlight-blue:#0071e338;--color-highlight-pink:#ff375f38;--color-highlight-purple:#af52de3d;--course-blue:#0a84ff;--course-green:#30b158;--course-orange:#f59a0a;--course-pink:#ff375f;--course-purple:#a65ee0;--course-teal:#30a8c8;--course-tint:10%;--course-glyph-ink:#fff;--course-glyph-shade:#000;--course-glyph-shade-amount:16%;--course-glyph-neutral:var(--color-ink-faint);--color-info-soft:var(--color-control);--material-bar:#ffffffb8;--material-sheet:#ffffffdb;--material-overlay:#ffffffb3;--material-filter:blur(20px) saturate(180%);--print-paper:#fff;--print-ink:#000;--print-muted:#48484a;--print-faint:#6e6e73;--print-rule:#d2d2d7;--shadow-sheet:0 24px 64px #00000024, 0 2px 8px #0000000f;--shadow-toast:0 8px 28px #00000024;--shadow-thumb:0 0 0 1px var(--color-hairline);--press-scale:.97;--press-scale-card:.985;--press-duration:.1s;--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-in-out:cubic-bezier(.77, 0, .175, 1);--ease-drawer:cubic-bezier(.32, .72, 0, 1);--spring-default:linear(0, .0751, .2266, .3895, .5357, .656, .75, .821, .8734, .9113, .9383, .9574, .9707, .98, .9864, .9908, .9938, .9958, 1);--duration-spring:.45s;--duration-enter:.22s;--duration-exit:.18s;--duration-fade:.16s;--duration-theme:.2s;--duration-toast:.26s}@supports not (transition-timing-function:linear(0, 1)){:root{--spring-default:var(--ease-drawer)}}@media (max-width:1023px){:root{--gutter:var(--space-6);--bento-gap:16px}}@media (max-width:599px){:root{--gutter:var(--space-4);--bento-gap:12px;--bento-min-height:168px;--bento-padding:var(--space-5);--font-size-large-title:34px}}@media (prefers-color-scheme:dark){:root:where(:not([data-theme=light])){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-canvas:#1d1d1f;--color-sheet:#272729;--color-sheet-raised:#2a2a2c;--color-paper:#f5f5f7;--color-ink:#f5f5f7;--color-ink-muted:#aeaeb2;--color-ink-faint:#6e6e73;--color-hairline:#ffffff1a;--color-hairline-strong:#fff3;--color-control:#ffffff14;--color-control-pressed:#ffffff24;--color-segment-thumb:#3a3a3c;--color-accent:#2997ff;--color-accent-soft:#2997ff29;--color-accent-ink:#000;--color-focus:#2997ff;--color-danger:#ff6961;--color-danger-soft:#ff69611f;--color-success:#4cd964;--color-scrim:#00000080;--color-drop:#2997ff1a;--course-tint:16%;--material-bar:#1d1d1fb8;--material-sheet:#2a2a2ce0;--material-overlay:#0009;--shadow-sheet:0 24px 64px #00000080;--shadow-toast:0 8px 28px #00000080}}:root:where([data-theme=dark]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-canvas:#1d1d1f;--color-sheet:#272729;--color-sheet-raised:#2a2a2c;--color-paper:#f5f5f7;--color-ink:#f5f5f7;--color-ink-muted:#aeaeb2;--color-ink-faint:#6e6e73;--color-hairline:#ffffff1a;--color-hairline-strong:#fff3;--color-control:#ffffff14;--color-control-pressed:#ffffff24;--color-segment-thumb:#3a3a3c;--color-accent:#2997ff;--color-accent-soft:#2997ff29;--color-accent-ink:#000;--color-focus:#2997ff;--color-danger:#ff6961;--color-danger-soft:#ff69611f;--color-success:#4cd964;--color-scrim:#00000080;--color-drop:#2997ff1a;--course-tint:16%;--material-bar:#1d1d1fb8;--material-sheet:#2a2a2ce0;--material-overlay:#0009;--shadow-sheet:0 24px 64px #00000080;--shadow-toast:0 8px 28px #00000080}:root:where([data-theme=light]){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-reduced-transparency:reduce){:root{--material-bar:var(--color-canvas);--material-sheet:var(--color-sheet-raised);--material-overlay:var(--color-canvas);--material-filter:none}}@media (prefers-contrast:more){:root{--color-hairline:#00000059;--color-hairline-strong:#00000080;--color-ink-muted:#4a4a4a;--material-bar:var(--color-canvas);--material-sheet:var(--color-sheet-raised);--material-filter:none}}@media (prefers-contrast:more) and (prefers-color-scheme:dark){:root:where(:not([data-theme=light])){--color-hairline:#fff6;--color-hairline-strong:#fff9;--color-ink-muted:#d1d1d6}}@media (prefers-contrast:more){:root:where([data-theme=dark]){--color-hairline:#fff6;--color-hairline-strong:#fff9;--color-ink-muted:#d1d1d6}}@media (prefers-reduced-motion:reduce){:root{--press-scale:1;--press-scale-card:1;--press-duration:0s;--duration-theme:0s;--spring-default:ease;--duration-spring:.2s}}*,:before,:after{box-sizing:border-box}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;-webkit-tap-highlight-color:transparent}@media (prefers-color-scheme:dark){html{--lightningcss-light: ;--lightningcss-dark:initial}}*{scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--color-ink) 22%, transparent) transparent}@media (pointer:coarse),(max-width:640px){*{scrollbar-width:none}::-webkit-scrollbar{display:none}}body{min-height:100dvh;font-family:var(--font-sans);font-size:var(--font-size-body);font-weight:var(--weight-regular);line-height:var(--line-height-body);color:var(--color-ink);background:var(--color-canvas);-webkit-font-smoothing:antialiased;font-optical-sizing:auto;transition:background-color var(--duration-theme) var(--ease-out), color var(--duration-theme) var(--ease-out);margin:0}::view-transition-old(root){animation-duration:var(--duration-theme);animation-timing-function:var(--ease-out)}::view-transition-new(root){animation-duration:var(--duration-theme);animation-timing-function:var(--ease-out)}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:var(--weight-semibold);line-height:var(--line-height-heading);letter-spacing:var(--tracking-heading);overflow-wrap:anywhere}a{color:var(--color-accent);text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.pressable{transition:transform var(--press-duration) var(--ease-out);-webkit-user-select:none;user-select:none}.pressable:active{transform:scale(var(--press-scale))}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--tap-size);min-width:var(--tap-size);padding:var(--space-2) var(--space-5);border-radius:var(--radius-pill);background:var(--color-control);font-size:var(--font-size-callout);font-weight:var(--weight-semibold);line-height:var(--line-height-tight);text-align:center;white-space:nowrap;-webkit-user-select:none;user-select:none;transition:transform var(--press-duration) var(--ease-out), background-color var(--duration-fade) ease, opacity var(--duration-fade) ease;border:none;display:inline-flex}.btn:active:not(:disabled){transform:scale(var(--press-scale));background-color:var(--color-control-pressed)}.btn:disabled,.btn[aria-disabled=true]{opacity:.45;cursor:default}.btn-primary{background:var(--color-accent);color:var(--color-accent-ink)}.btn-primary:active:not(:disabled){background:var(--color-accent);opacity:.85}.btn-plain{color:var(--color-accent);padding-inline:var(--space-3);background:0 0}.btn-plain:active:not(:disabled){background:var(--color-accent-soft)}.btn-tinted{min-height:var(--tap-size);background:color-mix(in srgb, var(--color-accent) 10%, transparent);color:var(--color-accent);font-weight:var(--weight-semibold);border-radius:11px}.btn-tinted:active:not(:disabled){transform:scale(var(--press-scale));background:color-mix(in srgb, var(--color-accent) 16%, transparent)}.btn-danger{background:var(--color-danger-soft);color:var(--color-danger)}.btn-danger:active:not(:disabled){background:var(--color-danger-soft);opacity:.8}.btn-small{min-height:36px;padding:var(--space-1) var(--space-4);font-size:var(--font-size-caption);position:relative}.btn-small:before{content:"";position:absolute;inset:-4px}.btn-block{width:100%}.icon-btn{width:var(--tap-size);height:var(--tap-size);border-radius:var(--radius-round);color:var(--color-accent);-webkit-user-select:none;user-select:none;transition:transform var(--press-duration) var(--ease-out), background-color var(--duration-fade) ease;background:0 0;border:none;flex:none;place-items:center;padding:0;display:inline-grid}.icon-btn:active{transform:scale(var(--press-scale));background:var(--color-control-pressed)}.icon-btn-filled{background:var(--color-control);color:var(--color-ink)}.icon{flex:none;width:22px;height:22px}.icon-small{width:18px;height:18px}.field{width:100%;min-height:var(--tap-size);padding:var(--space-3) var(--space-4);border-radius:var(--radius-field);background:var(--color-control);font-size:var(--font-size-body);line-height:var(--line-height-tight);transition:border-color var(--duration-fade) ease, background-color var(--duration-fade) ease;border:1px solid #0000;display:block}.field:focus{border-color:var(--color-focus);background:var(--color-sheet-raised);outline:none}.field[aria-invalid=true]{border-color:var(--color-danger)}select.field{appearance:none;text-overflow:ellipsis;background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - 22px) 52%,calc(100% - 17px) 52%;background-repeat:no-repeat;background-size:5px 5px;padding-inline-end:var(--space-10)}.label{margin-bottom:var(--space-2);font-size:var(--font-size-caption);font-weight:var(--weight-semibold);color:var(--color-ink-muted);display:block}.hint{margin-top:var(--space-2);font-size:var(--font-size-caption);color:var(--color-ink-muted);overflow-wrap:anywhere}.muted{color:var(--color-ink-muted)}.caption{font-size:var(--font-size-caption);line-height:var(--line-height-tight);letter-spacing:var(--tracking-caption)}.error-text{color:var(--color-danger);font-size:var(--font-size-caption);overflow-wrap:anywhere}.segmented{background:var(--color-control);isolation:isolate;border-radius:10px;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;padding:2px;display:inline-grid;position:relative}.segmented-thumb{z-index:-1;background:var(--color-segment-thumb);transition:transform var(--duration-enter) var(--ease-out);border-radius:8px;position:absolute;inset-block:2px;inset-inline-start:2px;box-shadow:0 3px 8px #0000001f,0 0 0 .5px #0000000a}.segmented-option{min-height:36px;min-width:var(--tap-size);padding:var(--space-1) var(--space-4);font-size:var(--font-size-caption);font-weight:var(--weight-regular);line-height:var(--line-height-tight);white-space:nowrap;-webkit-user-select:none;user-select:none;transition:transform var(--press-duration) var(--ease-out);background:0 0;border:none;border-radius:8px;position:relative}.segmented-option:before{content:"";inset:calc((var(--tap-size) - 40px) / -2) 0;position:absolute}.segmented-option[aria-checked=true],.segmented-option[aria-selected=true]{font-weight:var(--weight-semibold)}.segmented-option:active{transform:scale(var(--press-scale))}.segmented-large .segmented-option{min-height:var(--tap-size);min-width:112px;font-size:var(--font-size-callout)}.progress{border-radius:var(--radius-pill);background:var(--color-control);height:4px;position:relative;overflow:hidden}.progress-fill{border-radius:inherit;background:var(--color-accent);transform-origin:0;transition:transform .24s var(--ease-out);position:absolute;inset:0}.progress[data-indeterminate=true] .progress-fill{width:40%;animation:progress-slide 1.1s var(--ease-in-out) infinite}@keyframes progress-slide{0%{transform:translate(-100%)}to{transform:translate(250%)}}@media (prefers-reduced-motion:reduce){.progress[data-indeterminate=true] .progress-fill{width:100%;animation:1.6s ease-in-out infinite progress-pulse}@keyframes progress-pulse{50%{opacity:.4}}}.spinner{border:2px solid var(--color-control-pressed);border-top-color:var(--color-ink-muted);border-radius:var(--radius-round);width:20px;height:20px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:2s}}.skeleton{border-radius:var(--radius-bento);background:var(--color-sheet)}.switch-group{border-radius:var(--radius-field);background:var(--color-control);display:grid}.switch-row{justify-content:space-between;align-items:center;gap:var(--space-4);min-height:56px;padding:var(--space-3) var(--space-4);display:flex}.switch-row+.switch-row{border-top:1px solid var(--color-hairline)}.switch-text{cursor:pointer;gap:2px;min-width:0;display:grid}.switch-label{font-size:var(--font-size-callout)}.switch-hint{color:var(--color-ink-muted);font-size:var(--font-size-caption);line-height:var(--line-height-tight)}.switch{border-radius:var(--radius-pill);background:var(--color-control-pressed);appearance:none;cursor:pointer;width:51px;height:31px;transition:background-color var(--duration-enter) var(--ease-out);flex:none;margin:0;position:relative}.switch:before{content:"";position:absolute;inset:-7px -2px}.switch:after{content:"";border-radius:var(--radius-round);width:27px;height:27px;transition:transform var(--duration-enter) var(--ease-out);background:#fff;position:absolute;top:2px;left:2px;box-shadow:0 3px 8px #00000026,0 1px 1px #00000029}.switch:checked{background:var(--color-success)}.switch:checked:after{transform:translate(20px)}.confirm-row{align-items:flex-start;gap:var(--space-3);min-height:var(--tap-size);margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-hairline);font-size:var(--font-size-callout);cursor:pointer;display:flex}.confirm-row input{width:22px;height:22px;accent-color:var(--color-accent);flex:none;margin:1px 0 0}.color-dot{border-radius:var(--radius-round);background:var(--course-color,var(--color-ink-faint));flex:none;width:12px;height:12px;display:inline-block}[data-course-color=blue]{--course-color:var(--course-blue)}[data-course-color=green]{--course-color:var(--course-green)}[data-course-color=orange]{--course-color:var(--course-orange)}[data-course-color=pink]{--course-color:var(--course-pink)}[data-course-color=purple]{--course-color:var(--course-purple)}[data-course-color=teal]{--course-color:var(--course-teal)}.toast-region{inset-inline:0;bottom:max(var(--space-6), env(safe-area-inset-bottom));z-index:30;padding:0 var(--gutter);pointer-events:none;justify-content:center;display:flex;position:fixed}.toast{align-items:center;gap:var(--space-3);max-width:min(560px,100%);min-height:var(--tap-size);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-5);border-radius:var(--radius-pill);background:var(--material-sheet);-webkit-backdrop-filter:var(--material-filter);backdrop-filter:var(--material-filter);box-shadow:var(--shadow-toast);font-size:var(--font-size-callout);pointer-events:auto;opacity:1;transition:opacity var(--duration-toast) var(--ease-out), transform var(--duration-toast) var(--ease-out);display:flex;transform:translateY(0)}@starting-style{.toast{opacity:0;transform:translateY(100%)}}.toast[data-leaving=true]{opacity:0;transition-duration:var(--duration-exit);transform:translateY(100%)}.toast:not(:has(.toast-action)){padding-inline-end:var(--space-5)}.toast[data-tone=error] .toast-message{color:var(--color-danger)}.toast-message{overflow-wrap:anywhere;min-width:0;line-height:var(--line-height-tight)}@media (prefers-reduced-motion:reduce){.toast,.toast[data-leaving=true]{transform:none}@starting-style{.toast{transform:none}}}html.search-locked{overflow:hidden}.search-trigger{align-items:center;gap:var(--space-2);min-height:36px;padding:0 var(--space-3) 0 var(--space-4);border-radius:var(--radius-pill);background:var(--color-control);color:var(--color-ink-muted);font-size:var(--font-size-caption);line-height:var(--line-height-tight);white-space:nowrap;border:none;display:inline-flex;position:relative}.search-trigger:before{content:"";position:absolute;inset:-4px}.search-trigger-kbd{padding:1px var(--space-2);border-radius:var(--radius-control);background:var(--color-sheet-raised);color:var(--color-ink-faint);font-family:inherit;font-size:var(--font-size-footnote);box-shadow:0 0 0 1px var(--color-hairline)}.search-dialog{width:100%;max-width:none;height:100%;max-height:none;padding:max(var(--space-12), 9vh) var(--gutter) var(--space-6);color:inherit;background:0 0;border:0;place-items:start center;margin:0;display:grid;position:fixed;inset:0;overflow:hidden}.search-dialog:not([open]){display:none}.search-dialog::backdrop{background:0 0}.search-scrim{background:var(--color-scrim);position:absolute;inset:0}.search-panel{border-radius:var(--radius-bento);background:var(--material-sheet);width:min(720px,100%);max-height:min(680px,100%);-webkit-backdrop-filter:var(--material-filter);backdrop-filter:var(--material-filter);box-shadow:var(--shadow-sheet);flex-direction:column;display:flex;position:relative;overflow:hidden}.search-field{align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-4) var(--space-4) var(--space-5);border-bottom:1px solid var(--color-hairline);color:var(--color-ink-muted);flex:none;display:flex}.search-input{min-width:0;min-height:var(--tap-size);color:var(--color-ink);font-size:var(--font-size-title-3);letter-spacing:var(--tracking-heading);appearance:none;background:0 0;border:none;outline:none;flex:1;padding:0}.search-input::placeholder{color:var(--color-ink-faint)}.search-input::-webkit-search-cancel-button{appearance:none}.search-input::-webkit-search-decoration{appearance:none}.search-clear{width:var(--tap-size);height:var(--tap-size);border-radius:var(--radius-round);color:var(--color-ink-faint);background:0 0;border:none;flex:none;place-items:center;padding:0;display:grid}.search-cancel{flex:none;display:none}.search-filters{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5) var(--space-1);flex-wrap:wrap;flex:none;display:flex}.search-chip{min-height:36px;padding:0 var(--space-4);border:1px solid var(--color-hairline-strong);border-radius:var(--radius-pill);color:var(--color-ink-muted);font-size:var(--font-size-caption);font-weight:var(--weight-semibold);transition:transform var(--press-duration) var(--ease-out), background-color var(--duration-fade) ease, color var(--duration-fade) ease;background:0 0;position:relative}.search-chip:before{content:"";position:absolute;inset:-4px}.search-chip:active{transform:scale(var(--press-scale))}.search-chip[aria-pressed=true]{background:var(--color-accent-soft);color:var(--color-accent);border-color:#0000}.search-body{min-height:120px;padding:var(--space-2) var(--space-3) var(--space-4);overscroll-behavior:contain;flex:auto;overflow-y:auto}.search-group+.search-group{margin-top:var(--space-3)}.search-group-head{justify-content:space-between;align-items:baseline;gap:var(--space-3);padding:var(--space-3) var(--space-3) var(--space-1);display:flex}.search-group-title{color:var(--color-ink-muted);font-size:var(--font-size-footnote);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-caption)}.search-group-count{color:var(--color-ink-faint);font-size:var(--font-size-footnote);font-variant-numeric:tabular-nums}.search-option{min-height:var(--tap-size);padding:var(--space-2) var(--space-3);border-radius:var(--radius-field);cursor:pointer;-webkit-user-select:none;user-select:none;transition:transform var(--press-duration) var(--ease-out);gap:2px;display:grid}.search-option[data-active=true]{background:var(--color-accent-soft)}.search-option:active{background:var(--color-control-pressed);transform:scale(var(--press-scale-card))}.search-option-title{font-size:var(--font-size-callout);font-weight:var(--weight-semibold);line-height:var(--line-height-tight);overflow-wrap:anywhere;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.search-option-body{font-weight:var(--weight-regular);-webkit-line-clamp:3;line-clamp:3;line-height:1.4}.search-option-snippet{color:var(--color-ink-muted);font-size:var(--font-size-caption);overflow-wrap:anywhere;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;line-height:1.4;display:-webkit-box;overflow:hidden}.search-option-meta{color:var(--color-ink-faint);font-size:var(--font-size-footnote);line-height:var(--line-height-tight);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.search-mark{background:var(--color-highlight-yellow);color:inherit;border-radius:3px}.search-more{margin:var(--space-1) 0 0 var(--space-1)}.search-state{justify-items:center;gap:var(--space-2);padding:var(--space-10) var(--space-6);text-align:center;display:grid}.search-state-title{font-size:var(--font-size-title-3);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-heading);overflow-wrap:anywhere}.search-state-body{max-width:44ch;color:var(--color-ink-muted);font-size:var(--font-size-caption)}.search-state .btn{margin-top:var(--space-2)}.search-notice{justify-content:space-between;align-items:center;gap:var(--space-3);margin:var(--space-2) var(--space-1) 0;padding:var(--space-4) var(--space-5);border-radius:var(--radius-field);background:var(--color-control);flex-wrap:wrap;display:flex}.search-notice-title{font-size:var(--font-size-callout);font-weight:var(--weight-semibold)}.search-status{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-4);color:var(--color-ink-muted);font-size:var(--font-size-caption);display:flex}.search-status-inline{padding:var(--space-3);justify-content:flex-start}.search-footer{gap:var(--space-5);padding:var(--space-3) var(--space-5);border-top:1px solid var(--color-hairline);color:var(--color-ink-faint);font-size:var(--font-size-footnote);flex:none;display:flex}.search-footer kbd{min-width:20px;padding:0 var(--space-1);background:var(--color-control);color:var(--color-ink-muted);font-family:inherit;font-size:var(--font-size-footnote);border-radius:5px;place-items:center;margin-inline-end:2px;display:inline-grid}@media (pointer:coarse){.search-trigger-kbd,.search-footer{display:none}.search-cancel{display:inline-flex}.search-trigger{min-height:var(--tap-size)}}@media (max-width:599px){.search-dialog{padding:0}.search-panel{width:100%;height:100%;max-height:none;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);border-radius:0}.search-cancel{display:inline-flex}.search-trigger-label,.search-trigger-kbd{display:none}.search-trigger{width:var(--tap-size);min-height:var(--tap-size);justify-content:center;padding:0}}.topbar{z-index:20;padding-top:env(safe-area-inset-top);background:var(--material-bar);-webkit-backdrop-filter:var(--material-filter);backdrop-filter:var(--material-filter);transition:box-shadow var(--duration-fade) ease, background-color var(--duration-fade) ease;position:sticky;top:0;box-shadow:0 1px #0000}.topbar[data-condensed=true]{box-shadow:0 1px 0 var(--color-hairline)}.topbar[data-condensed=false]{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0}.topbar[data-has-back=false]{margin-bottom:calc(-1 * (var(--bar-height) + env(safe-area-inset-top)))}.topbar[data-has-back=false][data-condensed=false]{pointer-events:none}.topbar[data-has-back=false][data-condensed=false] .skip-link{pointer-events:auto}.topbar-inner{align-items:center;gap:var(--space-2);max-width:calc(var(--content-width) + 2 * var(--gutter));min-height:var(--bar-height);padding:var(--space-1) max(calc(var(--gutter) - var(--space-3)), env(safe-area-inset-right)) var(--space-1) max(calc(var(--gutter) - var(--space-3)), env(safe-area-inset-left));grid-template-columns:minmax(auto,1fr) minmax(0,auto) minmax(auto,1fr);margin:0 auto;display:grid}.topbar-leading,.topbar-trailing{align-items:center;gap:var(--space-1);display:flex}.topbar-back-label{max-width:40vw}.topbar-trailing{justify-content:flex-end}.topbar-title{min-width:0;max-width:44vw;font-size:var(--font-size-body);font-weight:var(--weight-semibold);text-align:center;text-overflow:ellipsis;white-space:nowrap;opacity:0;transition:opacity var(--duration-fade) ease;overflow:hidden}.topbar[data-condensed=true] .topbar-title{opacity:1}.topbar-back{min-width:0;min-height:var(--tap-size);padding:0 var(--space-3) 0 var(--space-1);border-radius:var(--radius-pill);color:var(--color-accent);font-size:var(--font-size-body);align-items:center;gap:2px;display:inline-flex}.topbar-back-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.skip-link{top:var(--space-2);left:var(--space-2);z-index:40;padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);background:var(--color-accent);color:var(--color-accent-ink);position:absolute;transform:translateY(-200%)}.skip-link:focus-visible{transform:none}.page{max-width:calc(var(--content-width) + 2 * var(--gutter));padding:var(--space-4) max(var(--gutter), env(safe-area-inset-right)) var(--space-16) max(var(--gutter), env(safe-area-inset-left));outline:none;margin:0 auto}.page[data-has-back=false]{padding-top:calc(env(safe-area-inset-top) + var(--space-6))}.page[data-width=narrow]{max-width:calc(var(--content-width-narrow) + 2 * var(--gutter))}.page-header{gap:var(--space-2);margin-bottom:var(--space-8);display:grid}.page-title-row{align-items:flex-start;gap:var(--space-3);min-width:0;font-size:var(--font-size-large-title);line-height:var(--line-height-heading);display:flex}.page-title-row:has(.page-title[data-long=true]){font-size:var(--font-size-title-1)}.page-title-row>:not(.page-title){flex:none;margin-top:calc(.5lh - 7px)}.page-title-row>.page-title-actions{align-items:center;gap:var(--space-1);height:1lh;margin-top:0;margin-inline:auto calc((22px - var(--tap-size)) / 2);padding-inline-start:var(--space-3);display:flex}@media (max-width:599px){.page-title-row:has(.page-title[data-long=true]){font-size:var(--font-size-title-2)}}.page-title{min-width:0;font-size:inherit;letter-spacing:var(--tracking-large-title);line-height:var(--line-height-heading);overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto}.page-subtitle{color:var(--color-ink-muted);font-size:var(--font-size-callout)}.state-panel{justify-items:center;gap:var(--space-3);padding:var(--space-16) var(--space-6);border-radius:var(--radius-bento);background:var(--color-sheet);text-align:center;display:grid}.state-panel h2{font-size:var(--font-size-title-3)}.state-panel p{max-width:44ch;color:var(--color-ink-muted)}.state-panel .btn{margin-top:var(--space-2)}@media (max-width:599px){.page-header{margin-bottom:var(--space-6)}.topbar-title{max-width:50vw}}.bento{grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:minmax(var(--bento-min-height), auto);gap:var(--bento-gap);margin:0;padding:0;list-style:none;display:grid}.bento[data-layout=medium]{grid-template-columns:repeat(6,minmax(0,1fr))}.bento[data-layout=narrow]{grid-template-columns:minmax(0,1fr)}.bento-cell{min-width:0;display:flex}.bento-cell>*{flex:auto;min-width:0}.card{min-height:100%;padding:var(--bento-padding);border-radius:var(--radius-bento);background:var(--color-sheet);isolation:isolate;transition:transform var(--press-duration) var(--ease-out);flex-direction:column;display:flex;position:relative;overflow:hidden}.card:has(.card-link:active){transform:scale(var(--press-scale-card))}.card-link{color:inherit;outline:none}.card-link:after{content:"";z-index:0;border-radius:inherit;position:absolute;inset:0}.card-link:focus-visible:after{outline:2px solid var(--color-focus);outline-offset:-2px}.card-raise{z-index:1;position:relative}.card-button{width:100%;color:inherit;font:inherit;text-align:start;-webkit-user-select:none;user-select:none;border:none;flex-direction:column;display:flex}.card-button:active{transform:scale(var(--press-scale-card))}.add-card{justify-content:space-between;gap:var(--space-6);background:var(--color-sheet)}.add-card-icon{border-radius:var(--radius-round);background:var(--color-accent-soft);width:52px;height:52px;color:var(--color-accent);place-items:center;display:grid}.add-card-text{gap:var(--space-1);display:grid}.add-card-title{font-size:var(--font-size-title-3);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-heading);line-height:var(--line-height-tight);color:var(--color-accent)}.add-card-hint{color:var(--color-ink-muted);font-size:var(--font-size-caption);line-height:var(--line-height-tight)}.skeleton-card{min-height:var(--bento-min-height);border-radius:var(--radius-bento);background:var(--color-sheet);animation:skeleton-appear var(--duration-fade) ease .25s both}@keyframes skeleton-appear{0%{opacity:0}}.doc-thumb{justify-content:center;align-items:center;min-width:0;display:flex}.doc-paper{aspect-ratio:1/1.414;border-radius:var(--radius-thumb);background:var(--color-paper);max-width:100%;height:100%;box-shadow:var(--shadow-thumb);color:var(--color-ink-faint);place-items:center;display:grid;position:relative;overflow:hidden}.doc-paper[data-has-image=true]{aspect-ratio:auto;height:auto;max-height:100%}.doc-paper-image{opacity:0;width:auto;max-width:100%;height:auto;max-height:172px;transition:opacity var(--duration-fade) ease;display:block}.doc-paper-image[data-loaded=true]{opacity:1}.doc-paper-excerpt{height:100%;color:var(--color-paper-ink);text-align:start;overflow-wrap:anywhere;align-self:start;margin:0;padding:10% 9%;font-size:7px;line-height:1.45;overflow:hidden;-webkit-mask-image:linear-gradient(#000 70%,#0000);mask-image:linear-gradient(#000 70%,#0000)}.doc-paper-glyph{opacity:.7}.doc-thumb[data-variant=mini]{flex:none;width:64px}.doc-thumb[data-variant=mini] .doc-paper{width:100%;height:auto}.doc-thumb[data-variant=mini] .doc-paper-image{width:100%;max-height:none}.doc-thumb[data-variant=mini] .doc-paper-excerpt{font-size:4px}.doc-thumb[data-variant=mini] .icon{width:18px;height:18px}.doc-cover{--cover-height:188px;height:var(--cover-height);flex:none;justify-content:center;align-items:flex-end;min-width:0;display:flex}.doc-page{width:min(100%, calc(var(--cover-height) * var(--page-aspect)));aspect-ratio:var(--page-aspect);background:var(--color-paper);box-shadow:var(--shadow-thumb);color:var(--color-ink-faint);border-radius:3px;flex:none;place-items:center;display:grid;position:relative;overflow:hidden}.doc-page[data-kind=placeholder] .icon{opacity:.7}.doc-page-image{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity var(--duration-fade) ease;display:block;position:absolute;inset:0}.doc-page-image[data-loaded=true]{opacity:1}.doc-page[data-kind=docx]{color:var(--color-paper-ink);text-align:start;flex-direction:column;gap:5px;padding:11% 10%;display:flex}.doc-docx-title{font-size:9px;font-weight:var(--weight-semibold);overflow-wrap:anywhere;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;flex:none;line-height:1.4;display:-webkit-box;overflow:hidden}.doc-docx-text{overflow-wrap:anywhere;flex:auto;min-height:0;font-size:6.5px;line-height:1.45;overflow:hidden;-webkit-mask-image:linear-gradient(#000 70%,#0000);mask-image:linear-gradient(#000 70%,#0000)}.course-card{column-gap:var(--space-6);grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr) auto;display:grid;container-type:inline-size}.course-card[data-tinted=true]{background:color-mix(in srgb, var(--course-color) var(--course-tint), var(--color-sheet))}.course-card-top{justify-content:space-between;align-items:flex-start;gap:var(--space-3);grid-column:1/-1;display:flex}.course-glyph{background:color-mix(in srgb, var(--course-color,var(--course-glyph-neutral)), var(--course-glyph-shade) var(--course-glyph-shade-amount));width:52px;height:52px;color:var(--course-glyph-ink);font-size:24px;font-weight:var(--weight-semibold);border-radius:15px;place-items:center;line-height:1;display:grid}.course-options{color:var(--color-ink-muted);margin:-8px -10px 0 0}.course-card-body{align-self:end;gap:var(--space-1);min-width:0;padding-top:var(--space-6);grid-column:1;display:grid}.course-card-title{font-size:var(--font-size-title-2);line-height:var(--line-height-heading);overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.course-card-meta{color:var(--color-ink-muted);font-size:var(--font-size-caption);line-height:var(--line-height-tight)}.course-card-processing{color:var(--color-ink);font-weight:var(--weight-semibold)}.course-previews{align-self:end;gap:var(--space-2);padding-top:var(--space-6);grid-area:2/2;display:flex}@container (width<=560px){.course-previews>:nth-child(n+4){display:none}}@container (width<=480px){.course-previews>:nth-child(n+3){display:none}}@container (width<=400px){.course-previews{display:none}}.courses-empty{justify-items:center;gap:var(--space-3);max-width:520px;margin:var(--space-8) auto 0;text-align:center;display:grid}.courses-empty h2{font-size:var(--font-size-title-1)}.courses-empty p{color:var(--color-ink-muted)}.courses-empty .btn{margin-top:var(--space-4);min-width:180px}.courses-empty-art{width:220px;margin-bottom:var(--space-6);grid-template-columns:1fr 1fr 2fr;gap:8px;display:grid}.courses-empty-art span{background:var(--color-sheet);border-radius:14px;height:64px}.courses-empty-art span:last-child{background:var(--color-accent-soft)}.color-picker{gap:var(--space-2);flex-wrap:wrap;display:flex}.color-swatch{width:var(--tap-size);height:var(--tap-size);border-radius:var(--radius-round);transition:transform var(--press-duration) var(--ease-out);background:0 0;border:none;place-items:center;padding:0;display:grid}.color-swatch:active{transform:scale(var(--press-scale))}.color-swatch-fill{border-radius:var(--radius-round);background:var(--course-color,var(--color-sheet));width:32px;height:32px;box-shadow:inset 0 0 0 1px var(--color-hairline-strong);color:#fff;place-items:center;display:grid}.color-swatch:not([data-course-color]) .color-swatch-fill{color:var(--color-ink);background:linear-gradient(135deg, var(--color-sheet) 45%, var(--color-hairline-strong) 45%, var(--color-hairline-strong) 55%, var(--color-sheet) 55%)}.color-swatch[aria-checked=true] .color-swatch-fill{box-shadow:0 0 0 2px var(--color-canvas), 0 0 0 4px var(--course-color,var(--color-ink-faint))}@media (max-width:599px){.course-card-title{font-size:var(--font-size-title-3)}.course-glyph{border-radius:13px;width:44px;height:44px;font-size:20px}}.course-title-dot{width:14px;height:14px}.course-documents{gap:var(--bento-gap);display:grid}.doc-card{gap:var(--space-4);padding:var(--space-4)}.doc-card[data-size=regular] .doc-cover{margin-top:var(--space-2)}.doc-card[data-size=compact]{grid-template-columns:88px minmax(0,1fr);align-items:start;display:grid}.doc-card[data-size=compact] .doc-cover{height:auto}.doc-card[data-size=compact] .doc-page{width:100%}.doc-card[data-size=wide]{align-items:stretch;gap:var(--space-5);flex-direction:row}.doc-card[data-size=wide] .doc-cover{max-width:50%;height:auto;min-height:232px;aspect-ratio:var(--page-aspect);align-self:stretch;align-items:center}.doc-card[data-size=wide] .doc-page{width:100%}.doc-body{gap:var(--space-1);min-width:0;padding:0 var(--space-1) var(--space-1);flex-direction:column;flex:auto;display:flex}.doc-card[data-size=compact] .doc-body{padding:0}.doc-heading{justify-content:space-between;align-items:flex-start;gap:var(--space-2);display:flex}.doc-title{min-width:0;font-size:var(--font-size-body);line-height:var(--line-height-tight);letter-spacing:0;overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;padding-top:10px;display:-webkit-box;overflow:hidden}.doc-card[data-status=queued] .doc-title{color:var(--color-ink-muted)}.doc-options{color:var(--color-ink-muted);flex:none;margin:0 -10px 0 0}.doc-meta{color:var(--color-ink-muted);font-size:var(--font-size-caption);line-height:var(--line-height-tight)}.doc-footer:empty{display:none}.doc-footer{justify-content:space-between;align-items:flex-end;gap:var(--space-3);padding-top:var(--space-4);flex-wrap:wrap;margin-top:auto;display:flex}.doc-status,.doc-notes{gap:var(--space-2);flex:160px;min-width:0;display:grid}.doc-status-label{align-items:center;gap:var(--space-1);min-width:0;font-size:var(--font-size-caption);font-weight:var(--weight-semibold);line-height:var(--line-height-tight);overflow-wrap:anywhere;display:flex}.doc-status-count{color:var(--color-ink-muted);font-weight:var(--weight-regular);font-variant-numeric:tabular-nums}.doc-status-detail{color:var(--color-ink-muted);font-size:var(--font-size-caption);line-height:var(--line-height-tight);overflow-wrap:anywhere;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}[data-tone=error]>.doc-status-label{color:var(--color-danger)}.doc-status-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.doc-status-actions>.btn-plain:first-child{margin-inline-start:calc(-1 * var(--space-3))}.doc-notes-row{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-3);flex-wrap:wrap;flex:100%;min-width:0;display:flex}.doc-notes-toggle{width:36px;height:36px;position:relative}.doc-notes-toggle:before{content:"";position:absolute;inset:-4px}.doc-make-notes{padding-inline:var(--space-4);font-size:var(--font-size-callout)}.doc-facts{margin-top:var(--space-2);overflow-wrap:anywhere}.doc-regenerate{justify-self:start}.drop-zone{align-items:center;gap:var(--space-5);width:100%;min-height:112px;padding:var(--space-5) var(--space-6);border:2px dashed var(--color-hairline-strong);border-radius:var(--radius-bento);color:inherit;text-align:start;-webkit-user-select:none;user-select:none;transition:transform var(--press-duration) var(--ease-out), background-color var(--duration-fade) ease, border-color var(--duration-fade) ease;background:0 0;display:flex}.drop-zone[data-prominent=true]{justify-content:center;gap:var(--space-4);text-align:center;flex-direction:column;min-height:340px}.drop-zone:active{background:var(--color-drop);transform:scale(.995)}@media (hover:hover) and (pointer:fine){.drop-zone:hover{border-color:var(--color-accent);background:var(--color-drop)}}.drop-zone-icon{border-radius:var(--radius-round);background:var(--color-accent-soft);width:52px;height:52px;color:var(--color-accent);flex:none;place-items:center;display:grid}.drop-zone[data-prominent=true] .drop-zone-icon{width:72px;height:72px}.drop-zone-text{gap:2px;min-width:0;display:grid}.drop-zone-title{font-size:var(--font-size-title-3);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-heading)}.drop-zone-body{color:var(--color-ink-muted);font-size:var(--font-size-callout)}.drop-zone-cta{pointer-events:none;margin-inline-start:auto}.drop-zone[data-prominent=true] .drop-zone-cta{margin:var(--space-2) 0 0}.drop-overlay{z-index:25;padding:var(--space-6);background:var(--material-overlay);-webkit-backdrop-filter:var(--material-filter);backdrop-filter:var(--material-filter);pointer-events:none;opacity:0;visibility:hidden;transition:opacity var(--duration-fade) ease, visibility 0s linear var(--duration-fade);position:fixed;inset:0}.drop-overlay[data-active=true]{opacity:1;visibility:visible;transition:opacity var(--duration-fade) ease, visibility 0s}.drop-overlay-frame{place-content:center;justify-items:center;gap:var(--space-2);border:2px dashed var(--color-accent);border-radius:var(--radius-bento);background:var(--color-drop);text-align:center;height:100%;display:grid}.drop-overlay-icon{width:80px;height:80px;margin-bottom:var(--space-2);border-radius:var(--radius-round);background:var(--color-accent);color:var(--color-accent-ink);place-items:center;display:grid}.drop-overlay-title{max-width:24ch;font-size:var(--font-size-title-1);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-heading);line-height:var(--line-height-heading);overflow-wrap:anywhere}.drop-overlay-body{color:var(--color-ink-muted)}.upload-issues{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.upload-issue{align-items:center;gap:var(--space-3);padding:var(--space-1) var(--space-1) var(--space-1) var(--space-4);border-radius:var(--radius-field);background:var(--color-danger-soft);color:var(--color-danger);font-size:var(--font-size-callout);display:flex}.upload-issues:empty{position:absolute}.upload-issue[data-tone=info]{background:var(--color-info-soft);color:var(--color-ink)}.upload-issue[data-tone=info] .upload-issue-dismiss{color:var(--color-ink-muted)}.upload-issue-text{overflow-wrap:anywhere;flex:auto;min-width:0}.upload-issue-dismiss{color:var(--color-danger)}.course-empty{gap:var(--space-2);display:grid}.course-empty h2{font-size:var(--font-size-title-3)}.course-empty p,.course-empty-hint{color:var(--color-ink-muted)}.course-empty-hint{text-align:center}@media (max-width:599px){.doc-card[data-size=compact] .doc-footer{padding-top:var(--space-3)}}.settings{gap:var(--space-8);display:grid}.settings-group{gap:var(--space-2);display:grid}.settings-group-title{padding:0 var(--space-4);color:var(--color-ink-muted);font-size:var(--font-size-caption);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-caption)}.settings-card{border-radius:var(--radius-bento);background:var(--color-sheet);overflow:hidden}.settings-row{justify-content:space-between;align-items:center;gap:var(--space-3) var(--space-4);min-height:60px;padding:var(--space-4) var(--space-5);flex-wrap:wrap;display:flex}.settings-row+.settings-row,.settings-card>.switch-row{border-top:1px solid var(--color-hairline)}.settings-card>.switch-row{min-height:60px;padding:var(--space-4) var(--space-5)}.settings-row-stack{justify-content:stretch;gap:var(--space-2);display:grid}.settings-row-stack .label{margin:0}.settings-row-title{font-size:var(--font-size-body)}.settings-value{font-size:var(--font-size-body);overflow-wrap:anywhere}.settings-footnote{padding:0 var(--space-4);color:var(--color-ink-muted);font-size:var(--font-size-caption)}.settings-actions{gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.settings-danger{color:var(--color-danger)}.settings-danger:active:not(:disabled){background:var(--color-danger-soft)}.settings-inline-btn{justify-self:start}.settings-guide{color:var(--color-ink-muted);font-size:var(--font-size-callout)}.settings-links{gap:var(--space-1) var(--space-5);flex-wrap:wrap;display:flex}.settings-links a{align-items:center;gap:var(--space-1);min-height:var(--tap-size);display:inline-flex}.key-field{position:relative}.key-input{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--font-size-callout);padding-inline-end:52px}.key-visibility{color:var(--color-ink-muted);position:absolute;top:0;right:0}.key-status{min-height:22px}.key-status:empty{min-height:0;margin-top:calc(-1 * var(--space-2))}.key-status-line{align-items:center;gap:var(--space-2);color:var(--color-ink-muted);font-size:var(--font-size-caption);overflow-wrap:anywhere;display:flex}.key-status-line[data-tone=ok]{color:var(--color-success)}.key-status-line[data-tone=error]{color:var(--color-danger)}.storage-meter{margin-top:var(--space-1)}.storage-persist{flex-wrap:nowrap}.storage-persist-text{gap:2px;min-width:0;display:grid}.storage-persist-text .hint{margin-top:0}.storage-persist-value{color:var(--color-ink-muted);font-size:var(--font-size-body);white-space:nowrap;flex:none}.model-summary{text-align:start;width:100%;transition:background-color var(--press-duration) var(--ease-out);background:0 0;border:0;flex-wrap:nowrap;margin:0}.model-summary:active{background:var(--color-control-pressed)}.model-summary:focus-visible{outline-offset:-2px}.model-summary-text{gap:2px;min-width:0;display:grid}.model-summary-meta{color:var(--color-ink-muted);font-size:var(--font-size-caption);font-variant-numeric:tabular-nums}.model-summary-meta[data-unavailable]{color:var(--color-danger)}.model-summary-value{align-items:center;gap:var(--space-1);color:var(--color-ink-muted);white-space:nowrap;flex:none;display:inline-flex}.model-summary-value .icon{color:var(--color-ink-faint)}@media (max-width:599px){.settings-actions .btn{flex:auto}}
