@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:optional;src:url(/fonts/inter-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ease-popup-spring:cubic-bezier(.32, 1.08, .42, 1);--popup-spring-ms:.3s;--squircle-scale:1;--tab-bar-h:50px}@supports (corner-shape:squircle){:root{--squircle-scale:2}}:root{--fw-class-name:500;--fw-grade-value:600;--fw-grade-breakdown:400;--fw-breakdown-value:400;--fw-assessment-label:500;--color-hover-overlay:color-mix(in srgb, var(--color-gray-light) 50%, transparent)}html{overscroll-behavior:none;scrollbar-width:none;-ms-overflow-style:none}html::-webkit-scrollbar{display:none}#app{display:contents}body{background-color:var(--color-background);font-optical-sizing:auto;overscroll-behavior:none;min-height:100vh;margin:0;font-family:Inter,sans-serif;font-style:normal;font-weight:400}.page-content{padding:16px 48px 64px}.page-content--flush-bottom{padding-bottom:32px}.page-content--fill{box-sizing:border-box;height:calc(100vh - var(--tab-bar-h));flex-direction:column;display:flex}.page-footer{color:var(--color-gray-dark);text-align:center;pointer-events:none;margin:0;font-size:12px;position:fixed;bottom:12px;left:0;right:0}.page-footer-link{pointer-events:auto;font:inherit;color:var(--color-gray-dark);cursor:pointer;background:0 0;border:none;margin-left:2px;padding:0;font-size:12px;text-decoration:underline}:root[data-theme=dark] .page-footer,:root[data-theme=dark] .page-footer-link{color:var(--color-gray-light)}.placeholder-card{background:var(--color-surface);border-radius:calc(20px * var(--squircle-scale));corner-shape:squircle;max-width:480px;box-shadow:var(--shadow-card);padding:32px}.placeholder-card h2{font-size:28px;font-weight:var(--fw-class-name);color:var(--color-text-primary);margin:0 0 8px}.placeholder-card p{color:var(--color-gray-dark);margin:0;font-size:16px}@keyframes page-enter{0%{opacity:0;transform:translateY(6px)}}.classes-container,.domain-card-nav,.calendar-side,.gpa-layout,.admin-calendar-layout,.suggestions-card{animation:.32s cubic-bezier(.2,.7,.2,1) backwards page-enter}@media (prefers-reduced-motion:reduce){.classes-container,.domain-card-nav,.calendar-side,.gpa-layout,.admin-calendar-layout,.suggestions-card{animation:none}}.tab-bar{z-index:20;height:var(--tab-bar-h);background:var(--color-background);scrollbar-width:none;align-items:center;gap:4px;padding:0 48px;display:flex;position:sticky;top:0;overflow:auto hidden}.tab-bar::-webkit-scrollbar{display:none}.tab-bar-logo{box-sizing:border-box;width:calc((var(--tab-bar-h) - 20px) * 4);flex-shrink:0;align-self:stretch;margin-right:20px;padding:10px 0}.tab-bar-logo--dark,:root[data-theme=dark] .tab-bar-logo--light{display:none}:root[data-theme=dark] .tab-bar-logo--dark{display:block}.tab{color:var(--color-gray-dark);white-space:nowrap;-webkit-user-select:none;user-select:none;flex-shrink:0;padding:14px 28px;font-size:17px;font-weight:600;text-decoration:none;position:relative}.tab:hover{color:var(--color-text-primary)}.tab-underline{transform-origin:0;background:var(--color-accent);border-radius:3px;height:3px;position:absolute;bottom:8px;left:28px;right:28px}.tab--admin-only{display:none}.tab--active,.tab--active:hover{color:var(--color-tab-accent)}.auth-container{flex-shrink:0;align-self:center;align-items:center;gap:10px;margin-left:auto;display:flex}.auth-signin-btn{font:inherit;color:var(--color-text-primary);background:var(--color-surface);cursor:pointer;box-shadow:0 2px 8px var(--color-shadow);border:none;border-radius:999px;align-items:center;gap:10px;padding:8px 16px;font-size:14px;font-weight:600;display:inline-flex}.auth-signin-btn:hover{background:var(--color-gray-lighter)}.auth-signin-icon{flex-shrink:0;width:18px;height:18px}.auth-avatar-btn{box-shadow:0 0 0 1px var(--color-gray-lighter);cursor:pointer;background:#fff;border:none;border-radius:50%;margin-left:16px;padding:0;display:block}:root[data-theme=dark] .auth-avatar-btn{background:#000}.auth-avatar-btn:hover,.auth-avatar-btn--open{box-shadow:none}.auth-avatar{object-fit:cover;--avatar-ring-opacity:75%;--avatar-hover-border:transparent;width:32px;height:32px;box-shadow:0 0 0 1px var(--color-gray-lighter), 0 0 0 5px color-mix(in srgb, var(--color-gray-light) 0%, transparent);background:#fff;border-radius:50%;transition:box-shadow .125s,opacity .3s;display:block}img.auth-avatar{opacity:0}img.auth-avatar--loaded{opacity:1}:root[data-theme=dark] .auth-avatar{--avatar-ring-opacity:45%;--avatar-hover-border:var(--color-gray-lighter);background:#000}.auth-avatar-btn:hover .auth-avatar,.auth-avatar-btn--open .auth-avatar{box-shadow:0 0 0 1px var(--avatar-hover-border), 0 0 0 5px color-mix(in srgb, var(--color-gray-light) var(--avatar-ring-opacity), transparent)}.segmented-control{isolation:isolate;background:var(--color-gray-lighter);border-radius:999px;gap:4px;padding:4px;display:inline-flex;position:relative}.segmented-control[hidden]{display:none}.segmented-thumb{z-index:-1;background:var(--color-segment-active);border-radius:999px;transition:left .2s,width .2s;position:absolute;top:4px;bottom:4px;left:0}.segmented-option{color:var(--color-text-primary);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:999px;padding:8px 16px;font-size:14px;font-weight:600;position:relative}.segmented-option:before{content:"";z-index:-2;border-radius:inherit;background:0 0;position:absolute;inset:0}.segmented-option:hover:not(.segmented-option--active):before{background:var(--color-hover-overlay)}.segmented-option--active{color:#111}.segmented-option--active:before{transition:background-color 0s linear .2s}.toggle-switch{flex-shrink:0;width:44px;height:24px;display:inline-block;position:relative}.toggle-switch input{opacity:0;width:0;height:0;position:absolute}.toggle-slider{background:var(--color-gray-light);cursor:pointer;border-radius:999px;transition:background-color .15s;position:absolute;inset:0}.toggle-slider:before{content:"";background:var(--color-surface);border-radius:50%;width:18px;height:18px;transition:transform .15s;position:absolute;top:3px;left:3px}.toggle-switch input:checked+.toggle-slider{background:var(--color-accent)}:root[data-theme=dark] .toggle-switch input:checked+.toggle-slider{background:var(--color-segment-active)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(20px)}.toggle-switch input:focus-visible+.toggle-slider{outline:2px solid var(--color-accent);outline-offset:2px}.toggle-switch--instant .toggle-slider,.toggle-switch--instant .toggle-slider:before{transition:none}.division-picker{flex-shrink:0;align-items:center;gap:6px;display:flex;position:relative}.division-picker[hidden]{display:none}.division-picker-label{color:var(--color-gray-dark);white-space:nowrap;margin-bottom:4px;font-size:12px;position:absolute;bottom:100%;left:0}.division-option{background:var(--color-gray-lighter);width:34px;height:34px;color:var(--color-text-primary);font:inherit;cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:15px;font-weight:600;transition:background-color .15s,color 0s linear 60ms;display:flex}.division-option:hover:not(.division-option--selected){background:color-mix(in srgb, var(--color-gray-dark) 12%, var(--color-gray-lighter))}.division-option--selected{background:var(--color-accent);color:#fff}.close-icon{vertical-align:middle;background-color:currentColor;width:.6em;height:.6em;display:inline-block;-webkit-mask:url(/icons/close.svg) 50%/contain no-repeat;mask:url(/icons/close.svg) 50%/contain no-repeat}.signin-toast{z-index:100;opacity:0;pointer-events:none;background:var(--color-surface);max-width:calc(100% - 64px);color:var(--color-text-primary);box-shadow:0 8px 24px var(--color-shadow-popover);text-align:center;border-radius:20px;padding:20px 32px;font-size:17px;transition:transform .25s,opacity .25s;position:fixed;bottom:32px;left:50%;transform:translate(-50%,16px)}.signin-toast--visible{opacity:1;transform:translate(-50%)}.toast-link{font:inherit;color:var(--color-accent);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.signin-toast--visible .toast-link{pointer-events:auto}.class-countdown-pill{background:var(--color-surface);box-sizing:border-box;color:inherit;font:inherit;cursor:pointer;--pill-ring-opacity:75%;--pill-hover-border:transparent;box-shadow:0 0 0 1px var(--color-gray-lighter), 0 0 0 5px color-mix(in srgb, var(--color-gray-light) 0%, transparent);border:none;border-radius:999px;flex-shrink:0;align-items:center;gap:8px;margin-left:auto;padding:7px 16px;font-size:14px;transition:box-shadow .125s;display:flex}:root[data-theme=dark] .class-countdown-pill{--pill-ring-opacity:55%;--pill-hover-border:transparent}:root[data-theme=dark] .class-countdown-pill:not(:hover),:root[data-theme=dark] .class-countdown-pill--settled:hover{box-shadow:0 0 0 1px transparent, 0 0 0 5px color-mix(in srgb, var(--color-gray-light) 0%, transparent)}.class-countdown-pill:hover,.class-countdown-pill--open{box-shadow:0 0 0 1px var(--pill-hover-border), 0 0 0 5px color-mix(in srgb, var(--color-gray-light) var(--pill-ring-opacity), transparent)}.class-countdown-pill--settled:hover{box-shadow:0 0 0 1px var(--color-gray-lighter), 0 0 0 5px color-mix(in srgb, var(--color-gray-light) 0%, transparent)}.class-countdown-pill:not([hidden])+.auth-container{margin-left:0}.class-countdown-pill:not([hidden])+.auth-container .auth-avatar-btn{margin-left:8px}body>.class-countdown-pill{z-index:40;max-width:calc(100% - 64px);position:fixed;bottom:32px;left:48px}.class-countdown-pill[hidden]{display:none}.class-countdown-icon{width:16px;height:16px;color:var(--color-accent);flex-shrink:0}.class-countdown-time{color:var(--color-text-primary);flex-shrink:0;font-weight:700}.class-countdown-sep{color:var(--color-gray-dark);flex-shrink:0}.class-countdown-label{color:var(--color-gray-dark);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.hover-tooltip{--glass-tint:#ffffff1f;--glass-lift:1.03;--glass-edge-glow:#ffffff80;--glass-rim-bright:#fffffff2;--glass-rim-dim:#ffffff59;--glass-outline:#00000014;--glass-shadow:#0000001f;--glass-text-halo:#ffffffb3;z-index:300;box-sizing:border-box;background:var(--glass-tint);-webkit-backdrop-filter:blur(2.5px) saturate(180%) brightness(var(--glass-lift));backdrop-filter:blur(2.5px) saturate(180%) brightness(var(--glass-lift));box-shadow:inset 0 0 3px var(--glass-edge-glow), 0 0 0 1px var(--glass-outline), 0 6px 16px var(--glass-shadow);color:#1c1c1c;text-shadow:0 0 4px var(--glass-text-halo);white-space:nowrap;opacity:0;pointer-events:none;border-radius:6px;padding:3px 7px;font-family:system-ui,-apple-system,sans-serif;font-size:12px;line-height:16px;transition:opacity .12s;position:fixed}.hover-tooltip:before{content:"";border-radius:inherit;background:linear-gradient(135deg, var(--glass-rim-bright), var(--glass-rim-dim) 30%, var(--glass-rim-dim) 70%, var(--glass-rim-bright));-webkit-mask-composite:xor;pointer-events:none;padding:1px;position:absolute;inset:0;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor,source-over;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}:root[data-theme=dark] .hover-tooltip{--glass-tint:#ffffff0f;--glass-lift:1.25;--glass-edge-glow:#ffffff1f;--glass-rim-bright:#ffffff7a;--glass-rim-dim:#ffffff24;--glass-outline:transparent;--glass-shadow:#00000059;--glass-text-halo:#0000008c;color:#f5f5f5}.hover-tooltip--visible{opacity:1}.page-domain .hover-tooltip{--glass-tint:#ffffffa6}:root[data-theme=dark] .page-domain .hover-tooltip{--glass-tint:#00000059;--glass-lift:1}.formative-link-tip{--tip-outline:#00000024;--tip-pointer:6px;padding:4px 8px calc(4px + var(--tip-pointer));box-shadow:none;border-radius:0;align-items:center;gap:8px;font-size:13px;line-height:18px;transition:opacity .2s,translate .2s;display:flex;translate:0 4px}.formative-link-tip:before{display:none}:root[data-theme=dark] .formative-link-tip{--tip-outline:#ffffff29}.formative-link-tip-edge{pointer-events:none;position:absolute;inset:0;overflow:visible}.formative-link-tip-edge .rim{fill:none;stroke-width:4px}:root[data-theme=dark] .formative-link-tip-edge .rim{display:none}.formative-link-tip-edge .outline{fill:none;stroke:var(--tip-outline);stroke-width:2px}.formative-link-tip-ok{background:var(--color-accent);color:#fff;font:inherit;cursor:pointer;border:none;border-radius:999px;padding:1px 8px;font-size:12px;font-weight:600;line-height:16px}.formative-link-tip-ok:hover{background:color-mix(in srgb, var(--color-accent) 85%, #000)}.formative-link-tip--visible{opacity:1;pointer-events:auto;translate:0}@media (prefers-reduced-motion:reduce){.formative-link-tip{translate:none}}.popup-menu{z-index:50;background:var(--color-surface);border-radius:calc(12px * var(--squircle-scale));corner-shape:squircle;min-width:160px;box-shadow:0 0 0 1px var(--color-popup-outline), var(--shadow-card);opacity:0;transform:translateY(var(--popup-shift,-4px)) scale(.92);transform-origin:100% 0;transition:opacity .15s ease, transform var(--popup-spring-ms) var(--ease-popup-spring);margin:0;padding:6px;position:fixed}.popup-menu--visible{opacity:1;transform:translateY(0)scale(1)}.popup-menu-item{width:100%;color:var(--color-text-primary);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:10px 12px;font-size:15px;display:block}.popup-menu-item:hover{background:var(--color-gray-lighter)}.popup-menu-divider{background:var(--color-gray-lighter);height:1px;margin:6px 4px}.today-schedule-panel{--schedule-shadow-near:0 1px 3px #00000014;--schedule-shadow-far:0 12px 32px #0000001f;z-index:50;background:var(--color-surface);box-shadow:0 0 0 1px var(--color-gray-lighter), 0 1px 3px #0000, 0 12px 32px #0000;border-radius:20px;transition:box-shadow .38s;position:fixed;overflow:hidden}:root[data-theme=dark] .today-schedule-panel:not(.today-schedule-panel--lifted){box-shadow:0 0 0 1px #0000,0 1px 3px #0000,0 12px 32px #0000}.today-schedule-panel--lifted{box-shadow:0 0 0 1px transparent, var(--schedule-shadow-near), var(--schedule-shadow-far)}:root[data-theme=dark] .today-schedule-panel{--schedule-shadow-near:0 1px 3px #0000004d;--schedule-shadow-far:0 14px 36px #00000073}.today-schedule-panel--morphing .today-schedule{transform-origin:100% 0;position:absolute;top:0;right:0}.today-schedule-pill-ghost{transform-origin:100%}.today-schedule{--event-color:var(--color-accent);--schedule-accent-soft:color-mix(in srgb, var(--event-color) 22%, var(--color-surface));--schedule-accent-wash:oklch(from color-mix(in oklch, var(--event-color) 22%, var(--color-surface)) l calc(c * 1.8) h);--schedule-event-text:color-mix(in srgb, var(--event-color) 35%, var(--color-text-primary));box-sizing:border-box;width:340px;padding:0 8px 6px}.today-schedule-header{cursor:pointer;align-items:center;gap:8px;margin:0 -8px 12px;padding:16px 18px 0;display:flex}.today-schedule-heading{align-items:center;gap:8px;margin:0;display:flex}.today-schedule-pill-ghost{white-space:nowrap;pointer-events:none;align-items:center;gap:8px;padding:0 16px;font-size:14px;display:flex;position:absolute;top:0;right:0}.today-schedule-day{color:var(--color-text-primary);font-size:17px;font-weight:700}.today-schedule-type{color:var(--color-gray-dark);font-size:15px;font-weight:400}.today-schedule-strip{gap:3px;margin:0 10px 8px;display:flex}.today-schedule-segment{background:var(--color-gray-lighter);border-radius:999px;flex-basis:0;height:5px}.today-schedule-segment--past{background:color-mix(in srgb, var(--color-gray-light) 70%, var(--color-gray-dark))}.today-schedule-segment--now{background:linear-gradient(to right, var(--event-color) var(--done), var(--schedule-accent-soft) var(--done))}.today-schedule-list{margin:0;padding:0;list-style:none}.today-schedule-row{color:var(--color-text-primary);border-radius:10px;gap:10px;padding:7px 10px;font-size:14px;display:flex}.today-schedule-row--past{color:var(--color-gray-dark)}.today-schedule-row--now{background:var(--schedule-accent-wash);color:var(--schedule-event-text);margin:4px 0;padding:10px;font-weight:700}.today-schedule-mark{width:16px;height:20px;color:var(--color-gray-dark);flex:none;justify-content:center;align-items:center;display:flex}.today-schedule-row--now .today-schedule-mark:before{content:"";background:var(--event-color);border-radius:50%;width:9px;height:9px}.today-schedule-row--future .today-schedule-mark:before{content:"";border:1.5px solid var(--color-gray-light);border-radius:50%;width:5px;height:5px}.today-schedule-main{flex:1;min-width:0}.today-schedule-line{align-items:center;gap:8px;min-height:20px;display:flex}.today-schedule-name{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.today-schedule-time{color:var(--color-gray-dark);flex-shrink:0;margin-left:auto}.today-schedule-row--now .today-schedule-time{color:inherit}.today-schedule-remaining{font-variant-numeric:tabular-nums;margin-top:2px;font-size:13px;font-weight:400}.today-schedule-footer{border:none;border-top:1px solid var(--color-gray-lighter);width:calc(100% - 4px);color:var(--color-gray-dark);font:inherit;text-align:left;cursor:pointer;background:0 0;border-radius:0 0 8px 8px;justify-content:space-between;align-items:center;gap:8px;margin:8px 2px 0;padding:12px 8px 10px;font-size:13px;display:flex}.today-schedule-footer b{color:var(--color-text-primary);font-weight:600}.today-schedule-footer:hover{color:var(--color-text-primary)}.today-schedule-footer[hidden]{display:none}.today-schedule-footer svg{flex:none;width:16px;height:16px}.today-schedule-footer--back{justify-content:flex-start}.today-schedule-footer--back svg{transform:scaleX(-1)}.decryption-prompt-overlay{z-index:200;opacity:0;background:#00000080;justify-content:center;align-items:center;padding:24px;transition:opacity .25s;display:flex;position:fixed;inset:0}.decryption-prompt-overlay--visible{opacity:1}.decryption-prompt{scrollbar-width:none;-ms-overflow-style:none;background:var(--color-surface);width:100%;max-width:440px;max-height:75vh;box-shadow:0 8px 24px var(--color-shadow-popover);opacity:0;border-radius:20px;flex-direction:column;gap:16px;padding:32px;transition:transform .25s,opacity .25s;display:flex;overflow-y:auto;transform:translateY(100vh)}.decryption-prompt--visible{opacity:1;transform:translateY(0)}.decryption-prompt::-webkit-scrollbar{display:none}.decryption-prompt-title{font-size:22px;font-weight:var(--fw-class-name);color:var(--color-text-primary);margin:0}.decryption-prompt-text{color:var(--color-gray-dark);margin:0;font-size:14px;line-height:1.5}.decryption-prompt-input{box-sizing:border-box;background:linear-gradient(var(--color-accent), var(--color-accent)) bottom center / 0% 2px no-repeat, linear-gradient(var(--color-gray-light), var(--color-gray-light)) bottom / 100% 1px no-repeat;width:100%;color:var(--color-text-primary);font:inherit;border:none;border-radius:0;outline:none;padding:6px 2px 8px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:17px;transition:background-size .2s}.decryption-prompt-input::placeholder{color:var(--color-gray-dark);font-family:Inter,system-ui,sans-serif}.decryption-prompt-input:focus{background-size:100% 2px,100% 1px}.decryption-prompt-error{color:#e5484d;margin:0;font-size:14px}.decryption-prompt-scan-btn{border:1px solid var(--color-gray-light);color:var(--color-text-primary);font:inherit;cursor:pointer;background:0 0;border-radius:999px;padding:12px 20px;font-size:15px;font-weight:600}.decryption-prompt-scan-btn:hover{background:var(--color-gray-lighter)}.decryption-prompt-camera{flex-direction:column;gap:12px;display:flex}.decryption-prompt-camera[hidden]{display:none}.decryption-prompt-video{aspect-ratio:1;object-fit:cover;background:#000;border-radius:12px;width:100%}.decryption-prompt-use-code-btn{border:1px solid var(--color-gray-light);color:var(--color-text-primary);font:inherit;cursor:pointer;background:0 0;border-radius:999px;padding:12px 20px;font-size:15px;font-weight:600}.decryption-prompt-use-code-btn:hover{background:var(--color-gray-lighter)}.decryption-prompt-manual{flex-direction:column;gap:16px;display:flex}.decryption-prompt-manual[hidden]{display:none}.decryption-prompt-reset-prompt{color:var(--color-gray-dark);align-self:center;margin:0;font-size:13px}.decryption-prompt-reset-prompt[hidden]{display:none}.decryption-prompt-reset-link{color:var(--color-gray-dark);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-size:13px;text-decoration:underline}.decryption-prompt-reset-link:hover{color:var(--color-text-primary)}.decryption-prompt-reset-confirm{flex-direction:column;gap:16px;display:flex}.decryption-prompt-reset-confirm[hidden]{display:none}.decryption-prompt-reset-actions{justify-content:flex-end;gap:12px;display:flex}.decryption-prompt-reset-cancel-btn{border:1px solid var(--color-gray-light);color:var(--color-text-primary);font:inherit;cursor:pointer;background:0 0;border-radius:999px;padding:12px 20px;font-size:15px;font-weight:600}.decryption-prompt-reset-cancel-btn:hover{background:var(--color-gray-lighter)}.decryption-prompt-reset-confirm-btn{color:#fff;font:inherit;cursor:pointer;background:#e5484d;border:none;border-radius:999px;padding:12px 20px;font-size:15px;font-weight:600}.decryption-prompt-reset-confirm-btn:hover{opacity:.9}.decryption-prompt-reset-cancel-btn:disabled,.decryption-prompt-reset-confirm-btn:disabled{opacity:.6;cursor:default}.confirm-dialog-overlay{z-index:200;opacity:0;background:#00000080;justify-content:center;align-items:center;padding:24px;transition:opacity .25s;display:flex;position:fixed;inset:0}.confirm-dialog-overlay--visible{opacity:1}.confirm-dialog{scrollbar-width:none;-ms-overflow-style:none;background:var(--color-surface);width:100%;max-width:440px;max-height:75vh;box-shadow:0 8px 24px var(--color-shadow-popover);opacity:0;border-radius:20px;flex-direction:column;gap:16px;padding:32px;transition:transform .25s,opacity .25s;display:flex;overflow-y:auto;transform:translateY(100vh)}.confirm-dialog::-webkit-scrollbar{display:none}.confirm-dialog--visible{opacity:1;transform:translateY(0)}.confirm-dialog-title{font-size:22px;font-weight:var(--fw-class-name);color:var(--color-text-primary);margin:0}.confirm-dialog-text{color:var(--color-gray-dark);margin:0;font-size:14px;line-height:1.5}.confirm-dialog-input{font:inherit;color:var(--color-text-primary);background:var(--color-gray-lighter);border:none;border-radius:10px;padding:12px 14px;font-size:15px}.confirm-dialog-input:focus{outline:2px solid var(--color-accent);outline-offset:-2px}.confirm-dialog-actions{justify-content:flex-end;gap:12px;display:flex}.confirm-dialog-cancel-btn{border:1px solid var(--color-gray-light);color:var(--color-text-primary);font:inherit;cursor:pointer;background:0 0;border-radius:999px;padding:12px 20px;font-size:15px;font-weight:600}.confirm-dialog-cancel-btn:hover{background:var(--color-gray-lighter)}.confirm-dialog-confirm-btn{color:#fff;font:inherit;cursor:pointer;background:#e5484d;border:none;border-radius:999px;padding:12px 20px;font-size:15px;font-weight:600}.confirm-dialog-confirm-btn:hover{opacity:.9}.confirm-dialog-confirm-btn:disabled{opacity:.5;cursor:default}.settings-card{background:var(--color-surface);border-radius:calc(20px * var(--squircle-scale));corner-shape:squircle;box-shadow:var(--shadow-card);flex-direction:column;flex:0 0 500px;gap:16px;padding:32px;display:flex}.settings-title{font-size:28px;font-weight:var(--fw-class-name);color:var(--color-text-primary);margin:0}.settings-row{justify-content:space-between;align-items:center;gap:16px;display:flex}.settings-label{color:var(--color-text-primary);font-size:17px}.settings-divider{background:var(--color-gray-lighter);height:1.5px}.settings-danger-row{gap:12px;display:flex}.settings-danger-btn{background:var(--color-gray-lighter);color:var(--color-text-primary);font:inherit;cursor:pointer;border:none;border-radius:999px;padding:10px 20px;font-size:15px;font-weight:600}.settings-danger-btn:hover{background:linear-gradient(var(--color-hover-overlay), var(--color-hover-overlay)), var(--color-gray-lighter)}.settings-layout{align-items:flex-start;gap:24px;display:flex}.login-keys-card{flex:0 0 360px}.login-keys-card[hidden]{display:none}.settings-encryption-hint{color:var(--color-gray-dark);margin:0;font-size:14px;line-height:1.5}.settings-encryption-code-row{gap:12px;display:flex}.settings-encryption-code-pill{background:var(--color-gray-lighter);border-radius:999px;flex:1;align-items:center;min-width:0;display:flex;overflow:hidden}.settings-encryption-code{scrollbar-width:none;white-space:nowrap;min-width:0;color:var(--color-text-primary);-webkit-user-select:text;user-select:text;outline:none;flex:1;padding:10px 14px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:14px;line-height:normal;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#0000,#000 14px calc(100% - 14px),#0000);mask-image:linear-gradient(90deg,#0000,#000 14px calc(100% - 14px),#0000)}.settings-encryption-code::-webkit-scrollbar{display:none}.settings-copy-btn{background:var(--color-gray-lighter);width:40px;height:40px;color:var(--color-text-primary);cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.settings-copy-btn:hover{--copy-hover-tint:color-mix(in srgb, var(--color-gray-light) 20%, transparent);background:linear-gradient(var(--copy-hover-tint), var(--copy-hover-tint)), var(--color-gray-lighter)}.settings-copy-icon{width:18px;height:18px}.settings-copy-glyph{background-color:currentColor;display:block;-webkit-mask:url(/icons/copy.svg) 50%/contain no-repeat;mask:url(/icons/copy.svg) 50%/contain no-repeat}.settings-copy-check{background-color:currentColor;display:block;-webkit-mask:url(/icons/light/check.png) 50%/contain no-repeat;mask:url(/icons/light/check.png) 50%/contain no-repeat}.settings-encryption-qr{aspect-ratio:1;background:#fff;border-radius:12px;align-self:center;width:240px;margin-top:-10px;padding:30px;position:relative}:root[data-theme=dark] .settings-encryption-qr{background:var(--color-surface)}:root[data-theme=dark] .settings-encryption-qr svg rect{fill:#0000}:root[data-theme=dark] .settings-encryption-qr svg path{fill:#fff}.settings-encryption-qr:before{--mark:var(--color-accent);--mark-length:18px;--mark-width:2.5px;content:"";pointer-events:none;background:linear-gradient(var(--mark), var(--mark)) top left / var(--mark-length) var(--mark-width), linear-gradient(var(--mark), var(--mark)) top left / var(--mark-width) var(--mark-length), linear-gradient(var(--mark), var(--mark)) top right / var(--mark-length) var(--mark-width), linear-gradient(var(--mark), var(--mark)) top right / var(--mark-width) var(--mark-length), linear-gradient(var(--mark), var(--mark)) bottom left / var(--mark-length) var(--mark-width), linear-gradient(var(--mark), var(--mark)) bottom left / var(--mark-width) var(--mark-length), linear-gradient(var(--mark), var(--mark)) bottom right / var(--mark-length) var(--mark-width), linear-gradient(var(--mark), var(--mark)) bottom right / var(--mark-width) var(--mark-length);background-repeat:no-repeat;position:absolute;inset:8px}.settings-encryption-qr svg{aspect-ratio:1;width:100%;height:auto;animation:.3s ease-out settings-qr-fade-in;display:block}@keyframes settings-qr-fade-in{0%{opacity:0}}.settings-modal-overlay{z-index:200;opacity:0;background:#00000080;justify-content:center;align-items:center;padding:24px;transition:opacity .25s;display:flex;position:fixed;inset:0}.settings-modal-overlay[hidden]{display:none}.settings-modal-overlay--visible{opacity:1}.settings-modal-card{scrollbar-width:none;-ms-overflow-style:none;opacity:0;max-height:75vh;transition:transform .25s,opacity .25s;position:relative;overflow-y:auto;transform:translateY(100vh)}.settings-modal-card::-webkit-scrollbar{display:none}.settings-modal-card--visible{opacity:1;transform:translateY(0)}.settings-modal-close-btn{width:28px;height:28px;color:var(--color-gray-dark);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;font-size:26.4px;line-height:1;display:flex;position:absolute;top:16px;right:16px}.login-keys-card .settings-title,.login-keys-card .settings-encryption-hint{text-align:center}.my-courses-modal-card{flex:0 0 520px;gap:0}.my-courses-modal-card .settings-divider{margin:6px 0}.my-courses-modal-card .settings-title{margin-bottom:8px}.schedule-row{cursor:text;align-items:center;gap:20px;padding:10px 0;display:flex;position:relative}.schedule-label{font-size:17px;font-weight:var(--fw-assessment-label);color:var(--color-gray-dark);text-align:left;flex:0 0 78px}.show-course-btn{cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;padding:0;display:flex}.show-course-btn[hidden]{display:none}.show-course-icon{width:100%;height:100%;display:block}.schedule-field{border-radius:10px;flex:1;padding:6px 10px;transition:background-color .15s;position:relative}.schedule-row:hover .schedule-field,.schedule-field:focus-within{background:var(--color-gray-lighter)}.schedule-input{width:100%;font:inherit;color:var(--color-text-primary);background:0 0;border:none;margin:0;padding:0 26px 0 0;font-size:22px}.schedule-input::placeholder{color:var(--color-gray-light)}.schedule-input:focus{outline:none}.schedule-clear-btn{width:30px;height:30px;color:var(--color-gray-dark);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;font-size:30px;line-height:1;display:none;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.schedule-row:hover .schedule-field.has-value .schedule-clear-btn{display:flex}.schedule-dropdown{z-index:10;background:var(--color-surface);box-shadow:0 8px 24px var(--color-shadow-popover);border-radius:12px;max-height:240px;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 8px);left:0;right:0;overflow-y:auto}.schedule-dropdown:empty{display:none}.schedule-dropdown--floating{z-index:300;box-sizing:border-box;position:fixed;right:auto}.schedule-dropdown-item{color:var(--color-text-primary);cursor:pointer;border-radius:8px;padding:8px 12px;font-size:17px;position:relative}.schedule-dropdown-item:hover,.schedule-dropdown-item--highlighted{background:var(--color-accent-soft);color:var(--color-accent)}:root[data-theme=dark] .schedule-dropdown-item:hover,:root[data-theme=dark] .schedule-dropdown-item--highlighted{color:var(--color-text-primary)}.schedule-dropdown-item--highlighted:after{content:"Enter";background:var(--color-gray-lighter);color:var(--color-gray-dark);border-radius:999px;padding:2px 8px;font-size:12px;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.schedule-dropdown:not(:has(.schedule-dropdown-item--highlighted)) .schedule-dropdown-item:first-child:after{content:"Enter";background:var(--color-gray-lighter);color:var(--color-gray-dark);border-radius:999px;padding:2px 8px;font-size:12px;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.schedule-dropdown-item--highlighted:after{background:var(--color-surface)}.assessment-calendar-card{background:var(--color-surface);border-radius:calc(20px * var(--squircle-scale));corner-shape:squircle;width:560px;box-shadow:var(--shadow-card);flex-direction:column;flex-shrink:0;padding:24px 32px 32px;display:flex}.assessment-calendar-card[hidden]{display:none}.page-content--calendar{--cal-top-gap:16px;padding:var(--cal-top-gap) 48px 0 0}.my-courses-calendar{--cal-label-h:24px;--cal-cell-h:max(90px, calc((100vh - var(--tab-bar-h) - var(--cal-top-gap,0px) - var(--cal-label-h) - 4px) / 4));flex:none;gap:36px;display:flex}.my-courses-calendar[hidden]{display:none}.my-courses-calendar-box{background:var(--color-surface);min-width:0;box-shadow:var(--shadow-card);flex:1;overflow:hidden}.my-courses-calendar-box .assessment-calendar-loading{min-width:320px;min-height:260px}.assessment-calendar-title{font-size:28px;font-weight:var(--fw-class-name);color:var(--color-text-primary);margin:0 0 16px}.assessment-calendar-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.assessment-calendar-label{font-size:18px;font-weight:var(--fw-assessment-label);color:var(--color-text-primary)}.assessment-calendar-nav-btn{width:30px;height:30px;color:var(--color-text-primary);cursor:pointer;background:0 0;border:none;border-radius:50%;font-size:18px;line-height:1}.assessment-calendar-nav-btn:hover:not(:disabled){background:var(--color-gray-lighter)}.assessment-calendar-nav-btn:disabled{color:var(--color-gray-light);cursor:default}.assessment-calendar-weekday-row,.assessment-calendar-grid{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.assessment-calendar-weekday-row{margin-bottom:6px}.assessment-calendar-weekday-row[hidden]{display:none}.assessment-calendar-weekday-row span{text-align:center;letter-spacing:.04em;text-transform:uppercase;color:var(--color-gray-dark);font-size:11px}.assessment-calendar-day{aspect-ratio:1;border-radius:calc(10px * var(--squircle-scale));corner-shape:squircle;width:100%;font:inherit;color:var(--color-text-primary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;font-size:15px;display:flex;position:relative}.assessment-calendar-day--outside{visibility:hidden;cursor:default}.assessment-calendar-day:hover:not(.assessment-calendar-day--selected){background:var(--color-gray-lighter)}.assessment-calendar-day-number--today{background:var(--color-tab-accent);width:26px;height:26px;color:var(--color-surface);border-radius:50%;justify-content:center;align-items:center;font-weight:700;display:flex}.assessment-calendar-day--selected .assessment-calendar-day-number--today{background:var(--color-surface);color:var(--color-accent)}.assessment-calendar-day--selected{background:var(--color-accent);color:var(--color-on-accent)}.assessment-calendar-day-dots{gap:3px;display:flex;position:absolute;bottom:6px;left:50%;transform:translate(-50%)}.assessment-calendar-day-dot{background:var(--color-accent);border-radius:50%;flex-shrink:0;width:5px;height:5px}.assessment-calendar-day-dot--five{border-radius:0}.assessment-calendar-day--selected .assessment-calendar-day-dot{background:var(--color-surface)}.assessment-calendar-day-type{color:var(--color-gray-dark);font-size:11px;font-weight:400;position:absolute;top:6px;right:8px}.assessment-calendar-day--selected .assessment-calendar-day-type{color:color-mix(in srgb, var(--color-surface) 70%, transparent)}.assessment-calendar-entry-type{--chip-color:var(--color-dark-blue);color:color-mix(in srgb, var(--chip-color) 35%, var(--color-text-primary));border:1.5px solid #0000;border-radius:999px;flex-shrink:0;align-items:center;gap:6px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.assessment-calendar-entry-type:before{content:"";background:var(--chip-color);border-radius:50%;flex:none;width:7px;height:7px}.assessment-calendar-entry-type--summative{background:oklch(from color-mix(in oklch, var(--chip-color) 22%, var(--color-surface)) l calc(c * 1.8) h)}.assessment-calendar-entry-type--formative{border-color:var(--chip-color);border-style:dashed}.assessment-calendar-weeks{grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:var(--cal-label-h);grid-auto-rows:var(--cal-cell-h);height:calc(var(--cal-label-h) + 4 * var(--cal-cell-h) + 4px);overscroll-behavior:contain;scroll-snap-type:y mandatory;scroll-padding-top:calc(var(--cal-label-h) + 1px);background:color-mix(in srgb, var(--color-gray-lighter) 50%, var(--color-gray-light));scrollbar-width:none;gap:1px;display:grid;overflow-y:auto}.assessment-calendar-weeks::-webkit-scrollbar{display:none}.assessment-calendar-weeks[hidden]{display:none}.class-grid{--class-grid-course-w:168px;--class-grid-head-h:52px;height:calc(var(--cal-label-h) + 4 * var(--cal-cell-h) + 4px);overscroll-behavior:contain;background:color-mix(in srgb, var(--color-gray-lighter) 50%, var(--color-gray-light));scrollbar-width:none;gap:1px 0;display:grid;overflow:auto}.class-grid::-webkit-scrollbar{display:none}.class-grid[hidden]{display:none}.class-grid-corner,.class-grid-head,.class-grid-course,.class-grid-cell{background:var(--color-surface)}.class-grid-corner{z-index:3;justify-content:space-between;align-items:flex-end;gap:8px;padding:0 10px 6px 14px;display:flex;position:sticky;top:0;left:0}.class-grid-corner-month{color:var(--color-text-primary);font-size:16px;font-weight:600;line-height:24px}.class-grid-today-btn{background:var(--color-background);height:24px;color:var(--color-tab-accent);font:inherit;white-space:nowrap;cursor:pointer;opacity:0;visibility:hidden;border:none;border-radius:999px;align-items:center;gap:4px;padding:0 10px;font-size:12px;transition:opacity .15s,visibility .15s;display:flex}.class-grid-today-arrow{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:12px;height:12px}.class-grid-today-btn--ahead .class-grid-today-arrow--left,.class-grid-today-btn:not(.class-grid-today-btn--ahead) .class-grid-today-arrow--right{display:none}.class-grid-today-btn--shown{opacity:1;visibility:visible}.class-grid-today-btn:hover{background:linear-gradient(var(--color-hover-overlay), var(--color-hover-overlay)), var(--color-background)}:root[data-theme=dark] .class-grid-today-btn{--today-btn-fill:color-mix(in srgb, var(--color-gray-lighter) 75%, var(--color-gray-light));color:var(--color-filter-text);background:var(--today-btn-fill)}:root[data-theme=dark] .class-grid-today-btn:hover{background:linear-gradient(var(--color-hover-overlay), var(--color-hover-overlay)), var(--today-btn-fill)}.class-grid-head{z-index:2;flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex;position:sticky;top:0}.class-grid-head-weekday{letter-spacing:.04em;text-transform:uppercase;color:var(--color-gray-dark);font-size:11px}.class-grid-head-row{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-self:stretch;align-items:center;display:grid}.class-grid-head-month{color:var(--color-gray-dark);grid-column:1;justify-self:start;padding-left:10px;font-size:13px}.class-grid-head-type{color:var(--color-gray-dark);opacity:0;pointer-events:none;grid-area:1/3;justify-self:center;font-size:13px;transition:opacity .15s}.class-grid-head--hover .class-grid-head-type{opacity:1}.class-grid-head-date{box-sizing:border-box;min-width:24px;height:24px;color:var(--color-text-primary);border-radius:999px;grid-column:2;justify-content:center;align-items:center;padding:0 6px;font-size:14px;font-weight:600;display:flex}.class-grid-head-date--today{background:var(--color-tab-accent);width:28px;min-width:0;height:28px;color:var(--color-surface);border-radius:50%;padding:0}:root[data-theme=dark] .class-grid-head-date--today,:root[data-theme=dark] .assessment-week-day-number--today,:root[data-theme=dark] .assessment-calendar-day:not(.assessment-calendar-day--selected) .assessment-calendar-day-number--today{color:#000;background:#fff}.class-grid-course:after,.class-grid-corner:after{content:"";background:linear-gradient(to right, rgba(0, 0, 0, var(--column-shadow,.12)), transparent);pointer-events:none;width:8px;position:absolute;top:-1px;bottom:0;left:100%}:root[data-theme=dark] .class-grid-course:after,:root[data-theme=dark] .class-grid-corner:after{background:linear-gradient(90deg,#0000003d,#0000001a 2px,#00000006 4px,#0000 6px),linear-gradient(90deg,#0003,#00000021 15%,#00000012 35%,#00000008 58%,#00000003 80%,#0000);width:28px}.class-grid-course,.class-grid-corner{--glass-tint:#ffffffa6;--glass-lift:1.03;--glass-edge:#fffffff2;--glass-halo:#fffc;background:var(--glass-tint);-webkit-backdrop-filter:blur(4px) saturate(180%) brightness(var(--glass-lift));backdrop-filter:blur(4px) saturate(180%) brightness(var(--glass-lift));box-shadow:inset -1px 0 0 var(--glass-edge);text-shadow:0 0 4px var(--glass-halo)}.class-grid-today-btn{text-shadow:none}:root[data-theme=dark] .class-grid-course,:root[data-theme=dark] .class-grid-corner{--glass-tint:color-mix(in srgb, var(--color-surface) 65%, transparent);--glass-lift:1.15;--glass-edge:#ffffff0d;--glass-halo:#0000008c}.class-grid-course{z-index:1;align-items:center;gap:8px;min-width:0;padding:0 14px;display:flex;position:sticky;left:0}.class-grid-course-dot{background:var(--chip-color,var(--color-gray-dark));border-radius:50%;flex:none;width:10px;height:10px}.class-grid-course-name{white-space:nowrap;text-overflow:ellipsis;min-width:0;color:var(--color-text-primary);font-size:15px;font-weight:600;overflow:hidden}.class-grid-cell{cursor:pointer;flex-direction:column;min-width:0;min-height:0;display:flex;position:relative}.class-grid-cell-pills{scrollbar-width:none;flex-direction:column;flex:1;gap:4px;min-height:0;padding:6px 4px;display:flex;overflow-y:auto}.class-grid-cell-pills::-webkit-scrollbar{display:none}.class-grid-cell:has(.class-grid-cell-add:not([hidden])) .class-grid-cell-pills{padding-bottom:30px}.class-grid-cell:hover:has(.class-grid-cell-add:not([hidden])) .class-grid-cell-pills{--pills-fade-inset:24px}@media (hover:none){.class-grid-cell:has(.class-grid-cell-add:not([hidden])) .class-grid-cell-pills{--pills-fade-inset:24px}}.class-grid-cell-add{height:20px;color:var(--color-gray-dark);cursor:pointer;opacity:0;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;margin:0 4px 4px;padding:0;transition:opacity .15s;display:flex;position:absolute;bottom:0;left:0;right:0}.class-grid-cell:hover .class-grid-cell-add,.class-grid-cell-add:focus-visible{opacity:1}@media (hover:none){.class-grid-cell-add{opacity:1}}.class-grid-cell-add[hidden]{display:none}.class-grid-cell-add svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;width:14px;height:14px}.class-grid-cell{box-shadow:inset -1px 0 0 color-mix(in srgb, var(--color-gray-lighter) 50%, var(--color-gray-light))}.class-grid-head--weekend,.class-grid-cell--weekend{background:color-mix(in srgb, var(--color-gray-lighter) 50%, var(--color-surface))}.class-grid-cell.class-grid-cell--selected{background:var(--color-gray-lighter)}.assessment-week-day{scroll-snap-align:start;cursor:pointer;background:var(--color-surface);flex-direction:column;gap:4px;min-width:0;min-height:0;padding:6px 4px 0;display:flex;position:relative}.assessment-week-day--weekend{background:color-mix(in srgb, var(--color-gray-lighter) 50%, var(--color-surface))}.assessment-week-day--selected{background:var(--color-gray-lighter)}@property --weekday-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}.assessment-week-day-weekday{--weekday-fill:var(--color-surface);--weekday-alpha:100%;z-index:2;background:linear-gradient(to bottom, var(--weekday-fill), color-mix(in srgb, var(--weekday-fill) var(--weekday-alpha), transparent) 6px, color-mix(in srgb, var(--weekday-fill) var(--weekday-alpha), transparent) calc(100% - 1px), var(--weekday-fill) calc(100% - 1px));letter-spacing:.04em;text-transform:uppercase;color:var(--color-gray-dark);justify-content:center;align-items:center;margin-bottom:-1px;padding-top:3px;font-size:11px;transition:--weekday-alpha .25s,-webkit-backdrop-filter 0s linear .25s,backdrop-filter 0s linear .25s;display:flex;position:sticky;top:0}.assessment-calendar-weeks--scrolling .assessment-week-day-weekday{--weekday-alpha:70%;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:--weekday-alpha .25s}.assessment-week-day-weekday--weekend{--weekday-fill:color-mix(in srgb, var(--color-gray-lighter) 50%, var(--color-surface))}.assessment-week-day:not(.assessment-week-day--top-week) .assessment-week-day-month--top-only{visibility:hidden}.assessment-week-day-head{flex-shrink:0;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;display:grid}.assessment-week-day-month{color:var(--color-gray-dark);grid-area:1/1;justify-self:start;padding-left:7.5px;font-size:13px}.assessment-week-day-number{box-sizing:border-box;min-width:22px;height:22px;color:var(--color-text-primary);grid-area:1/2;justify-content:center;align-items:center;padding:0 6px;font-size:13px;display:flex}.assessment-week-day-number--today{background:var(--color-tab-accent);width:24px;min-width:0;height:24px;color:var(--color-surface);border-radius:50%;padding:0;font-weight:700}.assessment-week-day-pills{scrollbar-width:thin;scrollbar-color:var(--color-scrollbar-thumb) transparent;flex-direction:column;flex:1;gap:3px;min-width:0;min-height:0;display:flex;overflow-y:auto}.assessment-week-day-pills::-webkit-scrollbar{width:3px}@property --pills-fade-top{syntax:"<length>";inherits:false;initial-value:0}@property --pills-fade-bottom{syntax:"<length>";inherits:false;initial-value:0}@keyframes pills-fade-top{0%{--pills-fade-top:0px}10%,to{--pills-fade-top:16px}}@keyframes pills-fade-bottom{0%,90%{--pills-fade-bottom:16px}to{--pills-fade-bottom:0px}}@supports (animation-timeline:scroll()){.assessment-week-day-pills,.class-grid-cell-pills{-webkit-mask-image:linear-gradient(to bottom, transparent, #000 var(--pills-fade-top), #000 calc(100% - var(--pills-fade-bottom) - var(--pills-fade-inset,0px)), transparent calc(100% - var(--pills-fade-inset,0px)));-webkit-mask-image:linear-gradient(to bottom, transparent, #000 var(--pills-fade-top), #000 calc(100% - var(--pills-fade-bottom) - var(--pills-fade-inset,0px)), transparent calc(100% - var(--pills-fade-inset,0px)));mask-image:linear-gradient(to bottom, transparent, #000 var(--pills-fade-top), #000 calc(100% - var(--pills-fade-bottom) - var(--pills-fade-inset,0px)), transparent calc(100% - var(--pills-fade-inset,0px)));animation:linear both pills-fade-top,linear both pills-fade-bottom;animation-timeline:scroll(self),scroll(self)}}.assessment-week-day-pills::-webkit-scrollbar-track{background:0 0}.assessment-week-day-pills::-webkit-scrollbar-thumb{background:var(--color-scrollbar-thumb);border-radius:3px}.assessment-week-day-type{color:var(--color-gray-dark);opacity:0;pointer-events:none;grid-area:1/3;justify-self:end;padding-right:7.5px;font-size:13px;transition:opacity .15s}.assessment-week-day:hover .assessment-week-day-type{opacity:1}.assessment-pill{cursor:default;background:var(--color-gray-lighter);min-width:0;color:var(--color-text-primary);border-radius:999px;padding:3px 8px;font-size:13px;font-weight:600;display:block}.assessment-pill-slot{flex-shrink:0;overflow:hidden}.assessment-pill-slot--leaving{pointer-events:none}.assessment-chip{--chip-color:var(--color-dark-blue);cursor:default;-webkit-user-select:none;user-select:none;border:1.5px solid #0000;border-radius:999px;flex-shrink:0;align-items:center;gap:6px;min-width:0;padding:3px 8px;display:flex;overflow:hidden}.assessment-chip--summative{background:oklch(from color-mix(in oklch, var(--chip-color) 22%, var(--color-surface)) l calc(c * 1.8) h)}.assessment-chip--formative{border-color:var(--chip-color);border-style:dashed}.assessment-chip--assignment{border-radius:0;align-items:flex-start}.assessment-chip--assignment .assessment-chip-dot{box-shadow:inset 0 0 0 1.5px var(--chip-color);background:0 0;margin-top:4px}.assessment-chip-lines{flex-direction:column;flex:1;min-width:0;display:flex}.assessment-chip-lines .assessment-pill-name{flex:none}.assessment-chip-subtitle{white-space:nowrap;color:color-mix(in srgb, var(--chip-color) 35%, var(--color-text-primary));margin-right:-8px;font-size:11.5px;font-weight:500;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 14px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 14px),#0000)}.assessment-chip--assignment .assessment-chip-subtitle{grid-template-rows:1fr;transition:grid-template-rows .25s,opacity .25s;display:grid}.assessment-chip-subtitle>span{min-height:0;overflow:hidden}.assessment-chip--done .assessment-pill-text{text-decoration:line-through}.assessment-chip--done .assessment-chip-dot{height:15px;box-shadow:none;background:oklch(from color-mix(in oklch, var(--chip-color) 22%, var(--color-surface)) l calc(c * 1.8) h);flex-basis:15px;margin:.5px -3.5px 0;position:relative}.assessment-chip--done .assessment-chip-dot:after{content:"";background:var(--chip-color);position:absolute;inset:2px;-webkit-mask:url(/icons/light/check.png) 50%/contain no-repeat;mask:url(/icons/light/check.png) 50%/contain no-repeat}.assessment-chip--done .assessment-chip-subtitle{opacity:0;grid-template-rows:0fr}.assessment-chip-dot{background:var(--chip-color);border-radius:50%;flex:0 0 8px;height:8px}.assessment-chip .assessment-pill-name{min-width:0;color:color-mix(in srgb, var(--chip-color) 35%, var(--color-text-primary));flex:1;margin-right:-8px;font-size:13px;font-weight:600;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 14px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 14px),#0000)}.assessment-pill-name,.assessment-pill-testing-label{white-space:nowrap;display:block;overflow:hidden}.assessment-pill-testing-label{color:color-mix(in srgb, var(--chip-color) 35%, var(--color-text-primary));font-size:11.5px;font-weight:400}.assessment-chip--stacked{border-radius:11.5px;align-items:flex-start}.assessment-chip--stacked .assessment-chip-dot{margin-top:4px}.assessment-pill-text{display:inline-block}.assessment-calendar-loading{flex:1;justify-content:center;align-items:center;display:flex}#assessment-cal-loading{z-index:1;pointer-events:none;position:fixed;inset:0}.assessment-calendar-loading[hidden]{display:none}.assessment-calendar-spinner{border:3px solid var(--color-gray-light);border-top-color:var(--color-gray-dark);border-radius:50%;width:32px;height:32px;animation:.7s linear infinite assessment-calendar-spin}@keyframes assessment-calendar-spin{to{transform:rotate(360deg)}}.calendar-side{box-sizing:border-box;flex-direction:column;flex:none;width:340px;padding:0 0 32px;display:flex}.calendar-side-divider{background:var(--color-gray-lighter);border-radius:999px;flex:none;height:1.5px;margin:0 -11px}:root:not([data-theme=dark]) .calendar-side-divider,:root:not([data-theme=dark]) .upcoming-divider{background:var(--color-divider-on-background)}.todo-card{--todo-pad-top:0px;--todo-header-h:32px;--todo-header-gap:16px;min-height:0;padding:var(--todo-pad-top) 0 0;flex-direction:column;flex:1;display:flex;position:relative}.upcoming-blur{z-index:1;height:calc(var(--todo-pad-top) + var(--todo-header-h) + var(--todo-header-gap));pointer-events:none;-webkit-mask-image:linear-gradient(to bottom, #00000059, #0000008c calc(var(--todo-pad-top) + var(--todo-header-h) / 2), #0009 calc(var(--todo-pad-top) + var(--todo-header-h)), transparent);-webkit-mask-image:linear-gradient(to bottom, #00000059, #0000008c calc(var(--todo-pad-top) + var(--todo-header-h) / 2), #0009 calc(var(--todo-pad-top) + var(--todo-header-h)), transparent);mask-image:linear-gradient(to bottom, #00000059, #0000008c calc(var(--todo-pad-top) + var(--todo-header-h) / 2), #0009 calc(var(--todo-pad-top) + var(--todo-header-h)), transparent);position:absolute;top:0;left:-24px;right:-34px;overflow:hidden}.upcoming-blur-copy{filter:blur(6px)}.todo-card-header{z-index:2;height:var(--todo-header-h);justify-content:space-between;align-items:center;gap:16px;display:flex;position:relative}.todo-card-title{font-size:22px;font-weight:var(--fw-class-name);color:var(--color-text-primary);margin:0}.todo-add-btn{background:var(--color-surface);width:32px;height:32px;color:var(--color-gray-dark);cursor:pointer;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;transition:box-shadow .15s;display:flex;box-shadow:0 0 0 1px #0000}.todo-add-btn--covered{box-shadow:0 0 0 1px color-mix(in srgb, var(--color-text-primary) 15%, transparent)}.todo-add-btn[hidden]{display:none}.todo-add-btn:hover{background:linear-gradient(color-mix(in srgb, var(--color-gray-light) 20%, transparent), color-mix(in srgb, var(--color-gray-light) 20%, transparent)), var(--color-surface)}.upcoming-list{contain:size;min-height:0;margin:calc(-1 * (var(--todo-pad-top) + var(--todo-header-h))) -22px 0 -12px;padding:calc(var(--todo-pad-top) + var(--todo-header-h) + var(--todo-header-gap)) 2px 36px 0;-webkit-mask-image:linear-gradient(to bottom, transparent calc(var(--todo-pad-top) + var(--todo-header-h) - 8px), #000 calc(var(--todo-pad-top) + var(--todo-header-h) + var(--todo-header-gap)), #000 calc(100% - 36px), transparent), linear-gradient(#000, #000);-webkit-mask-image:linear-gradient(to bottom, transparent calc(var(--todo-pad-top) + var(--todo-header-h) - 8px), #000 calc(var(--todo-pad-top) + var(--todo-header-h) + var(--todo-header-gap)), #000 calc(100% - 36px), transparent), linear-gradient(#000, #000);mask-image:linear-gradient(to bottom, transparent calc(var(--todo-pad-top) + var(--todo-header-h) - 8px), #000 calc(var(--todo-pad-top) + var(--todo-header-h) + var(--todo-header-gap)), #000 calc(100% - 36px), transparent), linear-gradient(#000, #000);-webkit-mask-size:100% 100%, var(--upcoming-scrollbar-w,0px) 100%;-webkit-mask-size:100% 100%, var(--upcoming-scrollbar-w,0px) 100%;mask-size:100% 100%, var(--upcoming-scrollbar-w,0px) 100%;flex:1;list-style:none;position:relative;overflow:hidden auto;-webkit-mask-position:0 0,100% 0;mask-position:0 0,100% 0;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.upcoming-list::-webkit-scrollbar{width:8px}.upcoming-list::-webkit-scrollbar-track{margin:calc(var(--todo-pad-top) + var(--todo-header-h) + var(--todo-header-gap)) 0 16px;background:0 0}.upcoming-list::-webkit-scrollbar-thumb{background:var(--color-scrollbar-thumb) padding-box;border:2px solid #0000;border-radius:4px}@supports not selector(::-webkit-scrollbar){.upcoming-list{scrollbar-width:thin;scrollbar-color:var(--color-scrollbar-thumb) transparent}}.upcoming-item{cursor:pointer;border-radius:12px;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;column-gap:12px;padding:10px 12px;display:grid;overflow:hidden}.upcoming-divider{background:var(--color-gray-lighter);border-radius:999px;flex:none;height:1.5px;margin:6px 11px;list-style:none}.upcoming-check{box-sizing:border-box;border:2px solid var(--chip-color,var(--color-gray-dark));cursor:pointer;background:0 0;border-radius:50%;flex:none;grid-row:1/3;justify-content:center;align-items:center;width:20px;height:20px;padding:0;transition:background-color .15s;display:flex}.upcoming-check-icon{background:var(--chip-color,var(--color-gray-dark));opacity:0;width:12px;height:12px;transition:opacity .15s,background-color .15s;-webkit-mask:url(/icons/light/check.png) 50%/contain no-repeat;mask:url(/icons/light/check.png) 50%/contain no-repeat}.upcoming-item:hover .upcoming-check{background:var(--chip-color,var(--color-gray-dark))}.upcoming-item:hover .upcoming-check-icon{background:oklch(from var(--chip-color,var(--color-gray-dark)) clamp(0, (.78 - l) * 1000, 1) 0 0);opacity:1}.upcoming-item--done .upcoming-check{background:var(--chip-color,var(--color-gray-dark))}.upcoming-item--done .upcoming-check-icon{background:oklch(from var(--chip-color,var(--color-gray-dark)) clamp(0, (.78 - l) * 1000, 1) 0 0);opacity:1}.upcoming-title{max-width:100%;color:var(--color-text-primary);overflow-wrap:anywhere;align-self:end;font-size:15px;line-height:22px}.upcoming-item--single-line .upcoming-title{grid-row:1/3;align-self:center}.upcoming-item--done .upcoming-title{color:var(--color-gray-dark);text-decoration:line-through}.upcoming-course{white-space:nowrap;text-overflow:ellipsis;max-width:100%;color:color-mix(in srgb, var(--chip-color,var(--color-gray-dark)) 35%, var(--color-text-primary));align-self:start;font-size:13px;line-height:18px;overflow:hidden}.upcoming-due{flex-direction:column;grid-area:1/3/3;align-items:flex-end;gap:4px;display:flex}.upcoming-date-chip{border:1px solid var(--color-gray-light);background:var(--color-background);color:var(--color-gray-dark);white-space:nowrap;border-radius:999px;padding:2px 10px;font-size:12px;line-height:18px}.upcoming-date-chip--overdue{border-color:color-mix(in srgb, var(--color-red) 45%, transparent);color:var(--color-red)}:root[data-theme=dark] .upcoming-date-chip--overdue{border-color:color-mix(in srgb, var(--color-f-red) 75%, transparent);color:var(--color-f-red)}.upcoming-countdown{align-items:flex-end;gap:.3em;line-height:15px;display:inline-flex}.upcoming-date-chip-label[hidden]{display:none}.upcoming-countdown-part{align-items:flex-end;display:flex}.upcoming-countdown[hidden],.upcoming-countdown-part[hidden]{display:none}.upcoming-empty{color:var(--color-gray-dark);padding:10px 12px;font-size:15px}.upcoming-completed-toggle{width:100%;color:var(--color-gray-dark);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:12px;align-items:center;gap:6px;margin-top:6px;padding:10px 12px;font-size:14px;font-weight:600;line-height:17px;display:flex}.upcoming-completed-count{vertical-align:top;height:17px;display:inline-block}.upcoming-completed-toggle:hover{background:var(--color-hover-overlay)}.upcoming-completed-toggle svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px;transition:transform .2s}.upcoming-completed-toggle[aria-expanded=true] svg{transform:rotate(180deg)}.upcoming-item--completed>:not(.upcoming-check){opacity:.55}.todo-add-btn svg{fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;width:16px;height:16px}.calendar-legend-card{flex:none;gap:29px;padding:24px 0 0;display:flex}.calendar-legend-column{flex-direction:column;flex:1;gap:14px;min-width:0;display:flex}.calendar-legend-column:has(.calendar-view-toggle){grid-template-columns:minmax(0,max-content);align-content:start;display:grid}.calendar-legend-label{color:var(--color-gray-dark);font-size:14px}.calendar-view-toggle{background:var(--color-surface);margin-top:-6px;margin-bottom:4px;padding:2px;display:flex}.calendar-view-toggle .segmented-option{flex:1;min-width:0;padding:6px 2px;font-size:13px;font-weight:400}.calendar-view-toggle .segmented-thumb{background:var(--color-hover-overlay);transition:none;top:2px;bottom:2px}.calendar-view-toggle .segmented-option--active:before{transition:none}.calendar-view-toggle .segmented-option--active{color:var(--color-text-primary)}.calendar-filter-list{flex-direction:column;gap:8px;width:max-content;max-width:100%;display:flex}.calendar-filter{color:var(--color-filter-text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:1.5px solid #0000;border-radius:999px;align-items:center;gap:6px;padding:3px 15px 3px 3px;font-size:13px;transition:color .15s;display:flex}.calendar-filter--filled{background:var(--color-surface)}.calendar-filter--dashed{border-color:var(--color-filter-border);border-style:dashed}.calendar-filter:before{content:"";background:var(--color-filter-check) url(/icons/light/check.png) center / 10px no-repeat;border-radius:50%;flex:none;width:16px;height:16px}:root[data-theme=dark] .calendar-filter:not(.calendar-filter--off):before{background-image:url(/icons/dark/check.png)}.calendar-filter:hover:before{background-color:color-mix(in srgb, var(--color-filter-check) 80%, #000)}:root[data-theme=dark] .calendar-filter:hover:before{background-color:color-mix(in srgb, var(--color-filter-check) 55%, #fff)}.calendar-filter--off{color:color-mix(in srgb, var(--color-filter-text) 45%, transparent)}.calendar-filter--off:before{box-shadow:inset 0 0 0 1.5px var(--color-filter-check);background:0 0}.calendar-filter--off:hover:before{box-shadow:inset 0 0 0 1.5px color-mix(in srgb, var(--color-filter-check) 80%, #000);background-color:#0000}:root[data-theme=dark] .calendar-filter--off:hover:before{box-shadow:inset 0 0 0 1.5px color-mix(in srgb, var(--color-filter-check) 55%, #fff);background-color:#0000}.course-color-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.course-color-item{max-width:100%;font:inherit;color:var(--color-text-primary);text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;padding:0;font-size:15px;display:flex}.course-color-dot{background:var(--chip-color);border-radius:50%;flex:none;width:14px;height:14px}.course-color-name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.course-color-picker{z-index:50;background:var(--color-surface);filter:drop-shadow(0 0 .75px var(--color-popover-outline)) drop-shadow(0 0 2px var(--color-popover-outline));opacity:0;transition:transform var(--popup-spring-ms) var(--ease-popup-spring), opacity .18s ease;border-radius:14px;grid-template-columns:repeat(4,26px);gap:10px;padding:14px;display:grid;position:fixed;transform:scale(.85)}.course-color-picker:after{content:"";top:calc(var(--pointer-y,50%) - 11px);background:inherit;z-index:-1;border-top-right-radius:4px;width:22px;height:22px;position:absolute;right:-11px;transform:rotate(45deg)}.course-color-picker--visible{opacity:1;transform:scale(1)}.course-color-swatch{background:var(--chip-color);cursor:pointer;border:none;border-radius:50%;width:26px;height:26px;padding:0;transition:transform .12s}.course-color-swatch:hover{transform:scale(1.12)}.course-color-swatch--selected{box-shadow:0 0 0 2px var(--color-surface), 0 0 0 4px var(--chip-color)}.add-popup{--add-popup-pad:20px;z-index:60;box-sizing:border-box;width:400px;max-width:calc(100vw - 32px);padding:var(--add-popup-pad);scrollbar-width:none;background:var(--color-surface);border-radius:calc(20px * var(--squircle-scale));corner-shape:squircle;box-shadow:0 0 0 1px var(--color-popup-outline), var(--shadow-card);opacity:0;transform:translateY(var(--popup-shift,-4px)) scale(.92);transform-origin:100% 0;transition:opacity .15s ease, transform var(--popup-spring-ms) var(--ease-popup-spring);position:fixed;overflow:hidden auto}.add-popup.calendar-glass,.popup-menu.calendar-glass{--glass-tint:#fff9;--glass-lift:1.03;--glass-edge-glow:#fff9;--glass-rim:#ffffffe6;--glass-outline:#00000014;--glass-shadow:#00000024;background:var(--glass-tint);-webkit-backdrop-filter:blur(16px) saturate(180%) brightness(var(--glass-lift));backdrop-filter:blur(16px) saturate(180%) brightness(var(--glass-lift));box-shadow:inset 0 0 0 1px var(--glass-rim), inset 0 0 6px var(--glass-edge-glow), 0 0 0 1px var(--glass-outline), 0 12px 32px var(--glass-shadow)}:root[data-theme=dark] .add-popup.calendar-glass,:root[data-theme=dark] .popup-menu.calendar-glass{--glass-tint:color-mix(in srgb, var(--color-surface) 55%, transparent);--glass-lift:1.2;--glass-edge-glow:#ffffff14;--glass-rim:#ffffff1f;--glass-outline:transparent;--glass-shadow:#0006}.popup-menu.calendar-glass .popup-menu-item:hover{background:#0000000f}:root[data-theme=dark] .popup-menu.calendar-glass .popup-menu-item:hover{background:#ffffff14}.add-popup.calendar-glass .add-popup-course{--course-tint:oklch(from color-mix(in oklch, var(--chip-color) 22%, var(--color-surface)) l calc(c * 1.8) h);box-shadow:inset 0 0 0 100px color-mix(in srgb, var(--course-tint) 0%, transparent);background-color:#0000000f;transition:box-shadow .1s,color .1s}.add-popup.calendar-glass .add-popup-course:hover,.add-popup.calendar-glass .add-popup-course--active{box-shadow:inset 0 0 0 100px var(--course-tint)}:root[data-theme=dark] .add-popup.calendar-glass .add-popup-course{background-color:#ffffff14}.add-popup.calendar-glass .add-popup-course:hover,.add-popup.calendar-glass .add-popup-course--active{background-color:#0000000f}:root[data-theme=dark] .add-popup.calendar-glass .add-popup-course:hover,:root[data-theme=dark] .add-popup.calendar-glass .add-popup-course--active{background-color:#ffffff14}.add-popup::-webkit-scrollbar{display:none}.add-popup--visible{opacity:1;transform:none}.add-popup-step--leaving{top:var(--add-popup-pad);left:var(--add-popup-pad);right:var(--add-popup-pad);pointer-events:none;position:absolute}.add-popup-header{align-items:center;gap:8px;margin-bottom:18px;display:flex}.add-popup-title{min-width:0;color:var(--color-text-primary);flex:1;align-items:center;gap:10px;margin:0;font-size:22px;font-weight:600;line-height:32px;display:flex}.add-popup-icon-btn{width:32px;height:32px;color:var(--color-gray-dark);cursor:pointer;background:0 0;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;display:flex}.add-popup-header .add-popup-icon-btn:first-child:not(:last-child){margin-left:-8px}.add-popup-icon-btn:hover:not(:has(.close-icon)){color:var(--color-text-primary)}.add-popup-icon-btn svg,.add-popup-course-chevron svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round}.add-popup-icon-btn svg{width:18px;height:18px}.add-popup-icon-btn .close-icon{width:16.8px;height:16.8px}.add-popup-prompt{color:var(--color-text-primary);margin:0 0 14px 4px;font-size:17px;font-weight:600}.add-popup-label{color:var(--color-gray-dark);margin:0 0 8px 4px;font-size:15px;display:block}.add-popup-hint{color:var(--color-gray-dark);margin:0 4px;font-size:14px}.add-popup-courses{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.add-popup-course{background:var(--color-gray-lighter);width:100%;min-width:0;color:color-mix(in srgb, var(--color-gray-dark) 60%, var(--color-text-primary));font:inherit;text-align:left;cursor:pointer;border:none;border-radius:999px;align-items:center;gap:10px;padding:12px 10px 12px 14px;font-size:15px;font-weight:500;transition:background-color .1s,color .1s;display:flex}.add-popup-course:hover,.add-popup-course--active{background-color:oklch(from color-mix(in oklch, var(--chip-color) 22%, var(--color-surface)) l calc(c * 1.8) h);color:color-mix(in srgb, var(--chip-color) 35%, var(--color-text-primary))}.add-popup-course-dot{background:var(--chip-color);border-radius:50%;flex:none;width:14px;height:14px}.add-popup-title-text{white-space:nowrap;flex:1;min-width:0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 18px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 18px),#0000)}.add-popup-title .add-popup-course-dot{width:12px;height:12px}.add-popup-course-name{white-space:nowrap;flex:1;min-width:0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 14px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 14px),#0000)}.add-popup-course-chevron{width:0;color:var(--color-gray-dark);opacity:0;flex:none;justify-content:flex-end;margin-left:-10px;transition:opacity .15s,width .15s,margin-left .15s;display:flex;overflow:hidden}.add-popup-course:hover .add-popup-course-chevron,.add-popup-course--active .add-popup-course-chevron{opacity:1;width:16px;margin-left:-6px}.add-popup-course-chevron svg{flex:none;width:16px;height:16px}.add-popup-input{box-sizing:border-box;background:linear-gradient(var(--chip-color), var(--chip-color)) bottom center / 0% 2px no-repeat, linear-gradient(var(--color-gray-light), var(--color-gray-light)) bottom / 100% 1px no-repeat;width:100%;color:var(--color-text-primary);font:inherit;border:none;border-radius:0;outline:none;margin-bottom:20px;padding:6px 2px 8px;font-size:20px;transition:background-size .2s}.add-popup-input::placeholder{color:var(--color-gray-dark)}.add-popup-input:focus{background-size:100% 2px,100% 1px}.add-popup-due-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.add-popup-due-row .add-popup-label{margin:0 0 0 4px}.add-popup-date-btn{background:var(--color-gray-lighter);min-width:0;color:var(--color-text-primary);font:inherit;text-align:left;cursor:pointer;border:none;border-radius:10px;flex:0 250px;align-items:center;gap:8px;padding:9.5px 11.5px 9.5px 15.5px;display:flex}.add-popup-date-btn:hover{background:color-mix(in srgb, var(--color-gray-dark) 12%, var(--color-gray-lighter))}.add-popup-date-btn-text{white-space:nowrap;flex:1;align-items:baseline;gap:8px;min-width:0;display:flex}.add-popup-date-icon{flex:none;width:16px;height:16px}.add-popup-date-btn svg{fill:none;width:16px;height:16px;stroke:var(--color-gray-dark);stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex:none;transition:transform .2s}.add-popup-date-btn--open svg{transform:rotate(180deg)}.add-popup-time-field{margin-top:10px}.add-popup-time-options{box-sizing:border-box;border:1.5px solid var(--color-gray-lighter);border-radius:10px;flex-direction:column;gap:2px;width:250px;max-width:100%;margin:6px 0 0 auto;padding:4px;display:flex}.add-popup-time-options[hidden]{display:none}.add-popup-time-option{box-sizing:border-box;min-height:36px;color:var(--color-text-primary);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:6px 10px;font-size:15px;display:flex}.add-popup-time-option[hidden]{display:none}.add-popup-time-option:hover{background:var(--color-hover-overlay)}.add-popup-time-option--selected,.add-popup-time-option--selected:hover{background:color-mix(in srgb, var(--chip-color) 12%, var(--color-surface));color:color-mix(in srgb, var(--chip-color) 35%, var(--color-text-primary));font-weight:600}.add-popup-time-input{color:inherit;font:inherit;background:0 0;border:none;border-radius:6px;outline:none;padding:2px 6px;font-size:14px;font-weight:400}.add-popup-time-input::-webkit-calendar-picker-indicator{display:none}.add-popup-time-option--selected .add-popup-time-input{background:#ffffffbf}:root[data-theme=dark] .add-popup-time-option--selected .add-popup-time-input{background:#ffffff1a}.add-popup-date-label{font-size:15px;font-weight:600}.add-popup-date-sub{color:var(--color-gray-dark);font-size:13px}.add-popup-footer{justify-content:flex-end;gap:10px;margin-top:24px;display:flex}.add-popup-primary-btn{font:inherit;cursor:pointer;background:var(--chip-color);color:oklch(from var(--chip-color) clamp(0, (.78 - l) * 1000, 1) 0 0);border:none;border-radius:999px;padding:10px 20px;font-size:15px;font-weight:600}.add-popup-primary-btn:hover:not(:disabled){opacity:.9}.add-popup-primary-btn:disabled{background:var(--color-gray-lighter);color:var(--color-gray-dark);cursor:not-allowed}.calendar-pick-overlay{z-index:70;opacity:0;background:#00000059;transition:opacity .2s;position:fixed;inset:0}.calendar-pick-overlay--visible{opacity:1}.my-courses-calendar-box--raised{z-index:80;position:relative}.add-popup--lifted{z-index:85}.add-popup--picking{opacity:0;pointer-events:none;transform:translateY(-4px)scale(.98)}.my-courses-calendar-box .assessment-chip{transition:opacity .2s}.my-courses-calendar-box--picking .assessment-chip{opacity:.5}.my-courses-calendar-box--picking .assessment-week-day,.my-courses-calendar-box--picking .class-grid-head{cursor:pointer}.class-grid-pick-col:after{--pick-border:2px solid color-mix(in srgb, var(--chip-color) 35%, var(--color-text-primary));content:"";z-index:0;border-left:var(--pick-border);border-right:var(--pick-border);pointer-events:none;position:absolute;inset:-1px 0 0}.class-grid-head.class-grid-pick-col:after{border-top:var(--pick-border);top:0}.class-grid-pick-col--last:after{border-bottom:var(--pick-border)}.my-courses-calendar-box--picking .class-grid-cell-add{display:none}.my-courses-calendar-box--picking .assessment-week-day:hover:after{content:"";z-index:3;border:2px solid color-mix(in srgb, var(--chip-color) 35%, var(--color-text-primary));pointer-events:none;position:absolute;inset:-1px}.my-courses-calendar-box--picking .assessment-week-day:nth-child(7n+1):hover:after{border-left:none;left:0}.my-courses-calendar-box--picking .assessment-week-day:nth-child(7n):hover:after{border-right:none;right:0}.my-courses-calendar-box--picking .assessment-week-day:nth-last-child(-n+7):hover:after{border-bottom:none;bottom:0}@media (width<=900px){.page-content--calendar{height:auto;padding:var(--cal-top-gap) 0 32px}.my-courses-calendar{flex-direction:column;gap:32px}.assessment-calendar-weeks{overscroll-behavior:auto}.calendar-side{width:auto;padding:0 48px}.calendar-side .todo-card{flex:none;height:min(480px,70vh)}}.assessment-week-day-head,.assessment-week-day-weekday,.class-grid-head{-webkit-user-select:none;user-select:none}.admin-not-authorized{text-align:center;font-size:32px;font-weight:var(--fw-class-name);color:var(--color-text-primary);margin:48px 0 0}.admin-not-authorized[hidden]{display:none}.admin-calendar-layout{align-items:stretch;gap:32px;display:flex}.admin-calendar-layout[hidden]{display:none}.admin-calendar-layout .assessment-calendar-card{height:600px;position:relative}#admin-cal-loading{pointer-events:none;position:absolute;inset:0}.admin-calendar-layout .assessment-calendar-day-number--today{width:30px;height:30px}.admin-calendar-layout .assessment-calendar-day:not(.assessment-calendar-day--selected) .assessment-calendar-day-number--today,:root[data-theme=dark] .admin-calendar-layout .assessment-calendar-day:not(.assessment-calendar-day--selected) .assessment-calendar-day-number--today{background:var(--color-accent);color:#fff}.admin-day-panel{background:var(--color-surface);border-radius:calc(20px * var(--squircle-scale));corner-shape:squircle;min-width:320px;height:600px;box-shadow:var(--shadow-card);flex-direction:column;flex:1;padding:24px 32px 32px;display:flex}.admin-day-panel-header{justify-content:space-between;align-items:center;gap:16px;min-height:32px;margin-bottom:16px;display:flex}.admin-day-panel-header-actions{align-items:center;gap:12px;display:flex}.admin-schedule-open-btn{width:32px;height:32px;color:var(--color-gray-dark);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex}.admin-schedule-open-btn[hidden]{display:none}.admin-schedule-open-btn:hover{background:var(--color-gray-lighter);color:var(--color-text-primary)}.admin-schedule-open-icon{width:20px;height:20px}.admin-day-panel-title{font-size:22px;font-weight:var(--fw-class-name);color:var(--color-text-primary);margin:0}.admin-day-entry-list{flex-direction:column;flex:1;min-height:0;margin:0;padding:0 0 32px;list-style:none;display:flex;overflow-y:auto;-webkit-mask-image:linear-gradient(#000 calc(100% - 32px),#0000);mask-image:linear-gradient(#000 calc(100% - 32px),#0000)}.admin-day-entry-list[hidden]{display:none}.admin-day-entry-list::-webkit-scrollbar{width:10px}.admin-day-entry-list::-webkit-scrollbar-track{background:0 0}.admin-day-entry-list::-webkit-scrollbar-thumb{background:var(--color-scrollbar-thumb);background-clip:content-box;border:3px solid #0000;border-radius:5px}@supports not selector(::-webkit-scrollbar){.admin-day-entry-list{scrollbar-width:thin;scrollbar-color:var(--color-scrollbar-thumb) transparent;scrollbar-gutter:stable}}.admin-day-select-hint{color:var(--color-gray-dark);margin:auto;font-size:20px;position:relative;top:6px}.admin-day-entry-empty{color:var(--color-gray-dark);font-size:14px}.admin-day-entry{align-items:center;gap:10px;padding:10px 0;display:flex}.admin-day-entry+.admin-day-entry{border-top:1px solid var(--color-gray-lighter)}.admin-day-entry-name{color:var(--color-text-primary);flex:1;font-size:15px}.admin-day-entry-delete{width:26px;height:26px;color:var(--color-gray-dark);cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:20px;line-height:1;display:flex}.admin-day-entry-delete:hover{background:var(--color-gray-lighter)}.admin-add-form{flex-direction:column;gap:16px;padding-top:16px;display:flex}.admin-add-field{flex-direction:column;gap:6px;display:flex}.admin-add-field[hidden]{display:none}.admin-add-label{color:var(--color-gray-dark);font-size:13px;font-weight:600}.admin-course-field,.admin-course-field:focus-within{background:0 0;border-radius:0;align-items:center;padding:0;display:flex}.admin-course-field .admin-course-input{box-sizing:border-box;background:linear-gradient(var(--color-accent), var(--color-accent)) bottom center / 0% 2px no-repeat, linear-gradient(var(--color-gray-light), var(--color-gray-light)) bottom / 100% 1px no-repeat;border-radius:0;padding:6px 2px 8px;font-size:20px;transition:background-size .2s}.admin-course-field .admin-course-input::placeholder{color:var(--color-gray-dark)}.admin-course-field .admin-course-input:focus{background-size:100% 2px,100% 1px}#admin-type-toggle{box-sizing:border-box;align-items:stretch;height:50px;display:flex}.admin-type-other-input{box-sizing:border-box;min-width:0;height:100%;color:var(--color-text-primary);font:inherit;background:0 0;border:none;flex:1;padding:0 12px;font-size:15px}.admin-type-other-input:focus{outline:none}.admin-add-submit-btn{box-sizing:border-box;background:var(--color-accent);color:#fff;height:50px;font:inherit;cursor:pointer;border:none;border-radius:999px;justify-content:center;align-items:center;font-size:15px;font-weight:600;display:flex}.admin-add-submit-btn:hover{opacity:.9}.admin-schedule-rows{flex-direction:column;gap:14px;display:flex}.admin-schedule-row{background:var(--color-surface);border-radius:10px;align-items:center;gap:10px;display:flex;position:relative}.admin-schedule-row-label{min-width:0;color:var(--color-text-primary);flex:1;font-size:14px}.admin-schedule-remove-btn{width:28px;height:28px;color:var(--color-gray-dark);cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-right:-6px;padding:0;display:flex}.admin-schedule-remove-btn:hover{background:var(--color-gray-lighter)}.admin-schedule-remove-btn svg,.admin-schedule-add-pill svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;width:12px;height:12px}.admin-schedule-add-pills{flex-wrap:wrap;flex:1;gap:8px;min-width:0;display:flex;position:relative}.admin-schedule-add-pills:not(:empty){margin-top:8px}.admin-schedule-add-pill{box-sizing:border-box;border:1.5px solid var(--color-gray-light);height:28px;color:var(--color-gray-dark);font:inherit;white-space:nowrap;cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:6px;padding:0 12px 0 10px;font-size:13px;font-weight:400;transition:border-color .15s,color .15s;display:flex}.admin-schedule-add-pill svg{width:10px;height:10px}.admin-schedule-add-pill:hover{border-color:var(--color-gray-dark);color:var(--color-text-primary)}.admin-schedule-heading{flex-direction:column;gap:2px;display:flex}.admin-schedule-date{color:var(--color-gray-dark);margin:0;font-size:15px}.admin-schedule-footer{align-items:flex-start;gap:12px;margin:0;display:flex}.admin-schedule-reset-slot{opacity:0;flex:none;width:0;margin-left:0;overflow:hidden}.admin-schedule-reset-slot--open{opacity:1;margin-left:8px}.admin-schedule-reset-slot--animated{transition:width .25s,margin-left .25s,opacity .2s}.admin-schedule-reset-btn{box-sizing:border-box;background:var(--color-gray-lighter);height:44px;color:var(--color-text-primary);font:inherit;white-space:nowrap;cursor:pointer;border:none;border-radius:999px;flex:none;padding:0 20px;font-size:15px;font-weight:600}.admin-schedule-reset-btn:hover{background:color-mix(in srgb, var(--color-gray-dark) 12%, var(--color-gray-lighter))}.admin-schedule-row-sep{color:var(--color-gray-dark)}.admin-schedule-time-input{box-sizing:border-box;background:var(--color-gray-lighter);width:110px;color:var(--color-text-primary);font:inherit;border:none;border-radius:8px;padding:5px 10px;font-size:14px}.admin-schedule-time-input::-webkit-calendar-picker-indicator{display:none}.admin-schedule-time-input:focus{outline:2px solid var(--color-accent);outline-offset:-2px}.admin-schedule-overlay{z-index:200;opacity:0;background:#00000080;justify-content:center;align-items:center;padding:24px;transition:opacity .25s;display:flex;position:fixed;inset:0}.admin-schedule-overlay--visible{opacity:1}.admin-schedule-dialog{scrollbar-width:none;-ms-overflow-style:none;background:var(--color-surface);border-radius:calc(24px * var(--squircle-scale));corner-shape:squircle;width:100%;max-width:540px;max-height:80vh;box-shadow:0 8px 24px var(--color-shadow-popover);opacity:0;flex-direction:column;gap:16px;padding:32px;transition:transform .25s,opacity .25s;display:flex;position:relative;overflow-y:auto;transform:translateY(100vh)}.admin-schedule-dialog::-webkit-scrollbar{display:none}.admin-schedule-dialog--visible{opacity:1;transform:translateY(0)}.admin-schedule-close-btn{width:28px;height:28px;color:var(--color-gray-dark);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;font-size:26.4px;line-height:1;display:flex;position:absolute;top:16px;right:16px}.admin-schedule-title{font-size:22px;font-weight:var(--fw-class-name);color:var(--color-text-primary);margin:0}.admin-schedule-actions{margin-top:8px;display:flex}.admin-schedule-save-btn{box-sizing:border-box;background:var(--color-accent);color:#fff;min-width:0;height:44px;font:inherit;cursor:pointer;border:none;border-radius:999px;flex:1;font-size:15px;font-weight:600}.admin-schedule-save-btn:hover{opacity:.9}:is(#admin-cal-grid,#admin-cal-grid-leaving).admin-cal-grid--testing-block{--block-day-fill:oklch(from color-mix(in oklch, var(--color-dark-blue) 22%, var(--color-surface)) l calc(c * 1.8) h);isolation:isolate}:is(#admin-cal-grid,#admin-cal-grid-leaving).admin-cal-grid--testing-block .assessment-calendar-day--block-day:hover:not(.assessment-calendar-day--selected){background:color-mix(in oklch, var(--block-day-fill), var(--color-dark-blue) 12%)}:is(#admin-cal-grid,#admin-cal-grid-leaving).admin-cal-grid--testing-block .assessment-calendar-day--block-day:before{content:"";z-index:-1;background:var(--block-day-fill);pointer-events:none;position:absolute;inset:0 0 -6px}:is(#admin-cal-grid,#admin-cal-grid-leaving).admin-cal-grid--testing-block .assessment-calendar-day--block-day-first:before{border-top-left-radius:calc(10px * var(--squircle-scale));border-top-right-radius:calc(10px * var(--squircle-scale));corner-shape:squircle}:is(#admin-cal-grid,#admin-cal-grid-leaving).admin-cal-grid--testing-block .assessment-calendar-day--block-day-last:before{border-bottom-left-radius:calc(10px * var(--squircle-scale));border-bottom-right-radius:calc(10px * var(--squircle-scale));corner-shape:squircle;bottom:0}.assessment-calendar-nav-btn{justify-content:center;align-items:center;padding:0;display:flex}.assessment-calendar-nav-btn svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.admin-cal-days-window{position:relative}.admin-cal-days-window--sliding{overflow:hidden}.admin-cal-grid--leaving{pointer-events:none;position:absolute;top:0;left:0;right:0}.domain-loading{z-index:1;pointer-events:none;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.domain-loading[hidden]{display:none}.classes-container{overscroll-behavior-x:contain;scrollbar-width:none;gap:32px;padding:16px 48px 32px;display:flex;overflow:auto hidden}.classes-container::-webkit-scrollbar{display:none}.classes-scrollbar{z-index:2;height:0;position:relative}.classes-scrollbar-thumb{transform-origin:0;background:var(--color-scrollbar-thumb);opacity:0;pointer-events:none;border-radius:2px;height:4px;transition:opacity .3s;position:absolute;top:-3px;left:0}.classes-container--scrolling~.classes-scrollbar .classes-scrollbar-thumb{opacity:1}@supports (animation-timeline:scroll()){body{timeline-scope:--classes-scroll}.classes-container{scroll-timeline:--classes-scroll x}.classes-scrollbar-thumb{animation:linear both classes-thumb-travel;animation-timeline:--classes-scroll}}@keyframes classes-thumb-travel{0%{translate:var(--thumb-from,0px) 0}to{translate:var(--thumb-to,0px) 0}}.classes-container--scrolling~.classes-scrollbar .classes-scrollbar-thumb,.classes-scrollbar-thumb:hover,.classes-scrollbar-thumb--dragging{pointer-events:auto;cursor:default}.classes-scrollbar-thumb:hover,.classes-scrollbar-thumb--dragging{opacity:1}.classes-scrollbar-thumb:before{content:"";position:absolute;inset:-8px 0}.domain-current-divider{background:var(--color-gray-light);border-radius:1px;flex:none;align-self:stretch;width:2px;margin:24px 0}.class-card--current-label:after{content:"Current Class";text-align:center;color:var(--color-gray-dark);pointer-events:none;font-size:15px;font-weight:400;transition:opacity .3s;position:absolute;top:calc(100% + 8px);left:0;right:0}.classes-container--scrolling .class-card--current-label:after{opacity:0}.domain-card-nav{justify-content:flex-end;gap:8px;margin-top:-16px;padding:0 48px 16px;display:flex}.domain-card-nav[hidden]{display:none}.domain-card-nav{transition:opacity .3s}.classes-container--scrolling~.domain-card-nav{opacity:0;pointer-events:none}.domain-card-nav-btn{background:var(--color-surface);width:36px;height:36px;color:var(--color-gray-dark);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:opacity .15s;display:flex}.domain-card-nav-btn:focus,.domain-card-nav-btn:focus-visible{outline:none}.domain-card-nav-btn--pressed,.domain-card-nav-btn:hover:not(:disabled){background:linear-gradient(color-mix(in srgb, var(--color-gray-light) 20%, transparent), color-mix(in srgb, var(--color-gray-light) 20%, transparent)), var(--color-surface)}.domain-card-nav-btn--at-end,.domain-card-nav-btn--at-end:hover:not(:disabled){background:var(--color-surface)}.domain-card-nav-btn:disabled{opacity:.4;cursor:default}.domain-card-nav-btn svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.domain-empty-hint{background:var(--color-surface);border-radius:calc(20px * var(--squircle-scale));corner-shape:squircle;text-align:center;color:var(--color-text-primary);box-shadow:var(--shadow-card);flex:0 0 300px;align-self:center;margin:0;padding:64px 32px;font-size:22px}.domain-empty-hint-link{font:inherit;color:var(--color-accent);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}:root[data-theme=dark] .domain-empty-hint-link{color:var(--color-segment-active)}.class-card{background:var(--color-surface);border-radius:calc(20px * var(--squircle-scale));corner-shape:squircle;min-height:520px;box-shadow:var(--shadow-card);flex-direction:column;flex:0 0 380px;padding:24px 32px 32px;display:flex;position:relative}.card-hide-btn{cursor:pointer;opacity:0;background:0 0;border:none;width:22px;height:22px;padding:0;transition:opacity .15s;position:absolute;top:24px;right:24px}.class-card:hover .card-hide-btn{opacity:.65}.class-card:hover .card-hide-btn:hover{opacity:1}.card-hide-icon{width:100%;height:100%;display:block}.class-name{font-size:28px;font-weight:var(--fw-class-name);color:var(--color-text-primary);margin:0 0 4px}.class-name--editable{cursor:text}.grade-summary{align-items:center;gap:8px;height:54px;margin-bottom:12px;display:flex}.letter-grade{object-fit:cover;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;border-radius:50%;flex-shrink:0;width:34px;height:34px}img[data-slug]{background-color:var(--grade-color,transparent);border-radius:50%}img[data-slug=a-plus],img[data-slug=a]{--grade-color:var(--color-dark-blue);--grade-highlight:var(--color-dark-blue-highlight)}.score-list label:has(img[data-slug=a-plus]){--grade-color:var(--color-dark-blue);--grade-highlight:var(--color-dark-blue-highlight)}.grade-summary:has(.letter-grade--lg:not(.letter-grade-lg-fade)[data-slug=a-plus]){--grade-color:var(--color-dark-blue);--grade-highlight:var(--color-dark-blue-highlight)}.score-list label:has(img[data-slug=a]){--grade-color:var(--color-dark-blue);--grade-highlight:var(--color-dark-blue-highlight)}.grade-summary:has(.letter-grade--lg:not(.letter-grade-lg-fade)[data-slug=a]){--grade-color:var(--color-dark-blue);--grade-highlight:var(--color-dark-blue-highlight)}img[data-slug=a-minus]{--grade-color:var(--color-light-blue)}.score-list label:has(img[data-slug=a-minus]){--grade-color:var(--color-light-blue)}.grade-summary:has(.letter-grade--lg:not(.letter-grade-lg-fade)[data-slug=a-minus]){--grade-color:var(--color-light-blue)}img[data-slug=b-plus]{--grade-color:var(--color-teal)}.score-list label:has(img[data-slug=b-plus]){--grade-color:var(--color-teal)}.grade-summary:has(.letter-grade--lg:not(.letter-grade-lg-fade)[data-slug=b-plus]){--grade-color:var(--color-teal)}img[data-slug=b]{--grade-color:var(--color-green)}.score-list label:has(img[data-slug=b]){--grade-color:var(--color-green)}.grade-summary:has(.letter-grade--lg:not(.letter-grade-lg-fade)[data-slug=b]){--grade-color:var(--color-green)}img[data-slug=b-minus]{--grade-color:var(--color-lime)}.score-list label:has(img[data-slug=b-minus]){--grade-color:var(--color-lime)}.grade-summary:has(.letter-grade--lg:not(.letter-grade-lg-fade)[data-slug=b-minus]){--grade-color:var(--color-lime)}img[data-slug=c-plus]{--grade-color:var(--color-yellow)}.score-list label:has(img[data-slug=c-plus]){--grade-color:var(--color-yellow)}.grade-summary:has(.letter-grade--lg:not(.letter-grade-lg-fade)[data-slug=c-plus]){--grade-color:var(--color-yellow)}img[data-slug=c]{--grade-color:var(--color-amber)}.score-list label:has(img[data-slug=c]){--grade-color:var(--color-amber)}.grade-summary:has(.letter-grade--lg:not(.letter-grade-lg-fade)[data-slug=c]){--grade-color:var(--color-amber)}img[data-slug=c-minus]{--grade-color:var(--color-orange)}.score-list label:has(img[data-slug=c-minus]){--grade-color:var(--color-orange)}.grade-summary:has(.letter-grade--lg:not(.letter-grade-lg-fade)[data-slug=c-minus]){--grade-color:var(--color-orange)}img[data-slug=d-plus],img[data-slug=d],img[data-slug=d-minus],img[data-slug=f]{--grade-color:var(--color-f-red)}.score-list label:has(img[data-slug=d-plus]){--grade-color:var(--color-f-red)}.grade-summary:has(.letter-grade--lg:not(.letter-grade-lg-fade)[data-slug=d-plus]){--grade-color:var(--color-f-red)}.score-list label:has(img[data-slug=d]){--grade-color:var(--color-f-red)}.grade-summary:has(.letter-grade--lg:not(.letter-grade-lg-fade)[data-slug=d]){--grade-color:var(--color-f-red)}.score-list label:has(img[data-slug=d-minus]){--grade-color:var(--color-f-red)}.grade-summary:has(.letter-grade--lg:not(.letter-grade-lg-fade)[data-slug=d-minus]){--grade-color:var(--color-f-red)}.score-list label:has(img[data-slug=f]){--grade-color:var(--color-f-red)}.grade-summary:has(.letter-grade--lg:not(.letter-grade-lg-fade)[data-slug=f]){--grade-color:var(--color-f-red)}img[data-slug=ng]{--grade-color:var(--color-gray)}.score-list label:has(img[data-slug=ng]){--grade-color:var(--color-gray)}.grade-summary:has(.letter-grade--lg:not(.letter-grade-lg-fade)[data-slug=ng]){--grade-color:var(--color-gray)}.letter-grade--lg{width:54px;height:54px}.letter-grade-lg-wrap{flex-shrink:0;width:54px;height:54px;position:relative}.letter-grade-lg-wrap .letter-grade--lg{position:absolute;inset:0}.letter-grade-lg-fade{opacity:0;pointer-events:none;transition:opacity .2s}.letter-grade--empty{background:0 0}.score-list .letter-grade{cursor:pointer}.score-list .letter-grade--empty{cursor:text}img.letter-grade--preview[data-slug]{--grade-color:var(--color-gray-dark);opacity:var(--preview-opacity);filter:grayscale()}.privacy-blur-changing .class-card .score-value,.privacy-blur-changing .class-card .score-original,.privacy-blur-changing .class-card .grade-value{transition:filter .2s,color .2s}.privacy-blur-changing .class-card img.letter-grade:not(.letter-grade--preview){transition:background-color .2s,opacity .2s}html[data-privacy-blur] .class-card .score-value,html[data-privacy-blur] .class-card .score-original{filter:blur(4px)}html[data-privacy-blur] .class-card .grade-value:not([data-empty]){filter:blur(6px)}html.privacy-blur-settled[data-privacy-blur] .class-card .score-value,html.privacy-blur-settled[data-privacy-blur] .class-card .score-original,html.privacy-blur-settled[data-privacy-blur] .class-card .grade-value:not([data-empty]){transition:filter .2s,color .2s}html[data-privacy-blur] .class-card .score-value,html[data-privacy-blur] .class-card .grade-value:not([data-empty]){color:var(--color-gray-dark)}html[data-privacy-blur] .class-card img.letter-grade[data-slug]:not(.letter-grade--preview){background-color:var(--blurred-circle-bg)}html[data-privacy-blur] .class-card .score-list :is(li:is(:hover,:focus-within),li:has(+li:is(:hover,:focus-within)),li:is(:hover,:focus-within)+li) img.letter-grade[data-slug]:not(.letter-grade--preview),html[data-privacy-blur] .class-card .grade-summary:hover img.letter-grade[data-slug],html[data-privacy-blur] .class-card[data-reveal-domain] .grade-summary img.letter-grade[data-slug]{background-color:var(--grade-color,transparent)}html[data-privacy-blur] .class-card .score-list :is(li:is(:hover,:focus-within),li:has(+li:is(:hover,:focus-within)),li:is(:hover,:focus-within)+li) .score-value,html[data-privacy-blur] .class-card .score-list :is(li:is(:hover,:focus-within),li:has(+li:is(:hover,:focus-within)),li:is(:hover,:focus-within)+li) .score-original,html[data-privacy-blur] .class-card .grade-summary:hover .grade-value{filter:none}html[data-privacy-blur] .class-card .score-list :is(li:is(:hover,:focus-within),li:has(+li:is(:hover,:focus-within)),li:is(:hover,:focus-within)+li) .score-value,html[data-privacy-blur] .class-card .grade-summary:hover .grade-value{color:var(--color-text-primary)}html[data-privacy-blur] .class-card li[data-reveal-score] .score-value,html[data-privacy-blur] .class-card li[data-reveal-score] .score-original{filter:none}html[data-privacy-blur] .class-card li[data-reveal-score] .score-value{color:var(--color-text-primary)}html[data-privacy-blur] .class-card[data-reveal-domain] .grade-summary .grade-value{filter:none;color:var(--color-text-primary)}html[data-privacy-blur] .class-card[data-reveal-domain] .grade-summary .letter-grade-lg-wrap,html[data-privacy-blur] .class-card .score-list :is(li:is(:hover,:focus-within),li:has(+li:is(:hover,:focus-within)),li:is(:hover,:focus-within)+li) .letter-grade:not(.letter-grade--preview),html[data-privacy-blur] .class-card .grade-summary:hover .letter-grade-lg-wrap{filter:none}.grade-value{font-size:44px;font-weight:var(--fw-grade-value);color:var(--color-text-primary)}.grade-breakdown{font-size:15px;font-weight:var(--fw-grade-breakdown);color:var(--color-gray-dark);margin:0 0 20px;display:grid}.breakdown-empty,.breakdown-values,.breakdown-single{opacity:0;filter:blur(4px);visibility:hidden;grid-area:1/1;transition:opacity .25s,filter .25s,visibility 0s linear .25s}.grade-breakdown[data-state=empty] .breakdown-empty,.grade-breakdown[data-state=values] .breakdown-values,.grade-breakdown[data-state=single] .breakdown-single{opacity:1;filter:blur();visibility:visible;transition:opacity .25s,filter .25s,visibility}.grade-breakdown--instant .breakdown-empty,.grade-breakdown--instant .breakdown-values,.grade-breakdown--instant .breakdown-single{transition:none!important}html:not([data-hide-upcoming-assessments]) .grade-breakdown:has(+.assessment-groups .next-assessment-line:not(:empty)){margin-bottom:6px}html[data-hide-breakdown] .grade-breakdown,html[data-hide-upcoming-assessments] .next-assessment-line{display:none}.grade-breakdown .divider{color:var(--color-gray-light);margin:0}.grade-breakdown .breakdown-value{font-weight:var(--fw-breakdown-value);color:var(--color-text-primary)}.next-assessment-line{font-size:15px;font-weight:var(--fw-grade-breakdown);color:var(--color-gray-dark);flex:none;margin:0 0 20px}.next-assessment-line-date{font-weight:var(--fw-breakdown-value);color:var(--color-text-primary)}.next-assessment-line:empty{display:none}.assessment-groups{cursor:text;flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.assessment-fs-row{flex:1;gap:16px;min-height:0;display:flex}.formative-link-btn{z-index:5;background:var(--color-surface);width:28px;height:28px;box-shadow:0 2px 6px var(--color-shadow-popover);cursor:pointer;opacity:0;pointer-events:none;-webkit-mask-image:var(--edge-mask,none);mask-image:var(--edge-mask,none);border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:opacity .15s;display:flex;position:absolute;left:50%;transform:translate(-50%,-50%);-webkit-mask-position:-12px -12px;mask-position:-12px -12px;-webkit-mask-size:calc(100% + 24px) calc(100% + 24px);mask-size:calc(100% + 24px) calc(100% + 24px);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-clip:no-clip;mask-clip:no-clip}.assessment-groups:hover .formative-link-btn{opacity:1;pointer-events:auto}.formative-link-btn:hover{background:var(--color-gray-lighter)}.formative-link-icon{width:16px;height:16px;display:block}.assessment-box{--score-pad-top:10px;--score-label-h:24px;--score-under-label-h:calc(var(--score-pad-top) + var(--score-label-h) + 6px);border:1.5px solid var(--color-gray-light);min-height:0;padding:var(--score-pad-top) 16px 0;cursor:text;border-radius:14px;flex-direction:column;flex:1;display:flex;position:relative}.assessment-box--wide{flex:none;margin-top:16px;margin-bottom:8px;padding-bottom:16px}.assessment-box:after{content:"";z-index:3;background:linear-gradient(to bottom, transparent, var(--color-surface));pointer-events:none;border-radius:0 0 12.5px 12.5px;height:36px;position:absolute;bottom:0;left:0;right:0}.assessment-box:before{content:"";z-index:3;height:var(--score-under-label-h);background:linear-gradient(to bottom, var(--color-surface) calc(var(--score-pad-top) + var(--score-label-h) - 8px), transparent);pointer-events:none;border-radius:12.5px 12.5px 0 0;position:absolute;top:0;left:0;right:0}.score-blur{z-index:3;height:var(--score-under-label-h);pointer-events:none;-webkit-mask-image:linear-gradient(to bottom, #0000001f, #00000040 calc(var(--score-pad-top) + var(--score-label-h) / 2), #0006 calc(var(--score-pad-top) + var(--score-label-h)), transparent);-webkit-mask-image:linear-gradient(to bottom, #0000001f, #00000040 calc(var(--score-pad-top) + var(--score-label-h) / 2), #0006 calc(var(--score-pad-top) + var(--score-label-h)), transparent);mask-image:linear-gradient(to bottom, #0000001f, #00000040 calc(var(--score-pad-top) + var(--score-label-h) / 2), #0006 calc(var(--score-pad-top) + var(--score-label-h)), transparent);border-radius:12.5px 12.5px 0 0;position:absolute;top:0;left:0;right:0;overflow:hidden}.score-blur>.score-list{filter:blur(6px);margin:0;overflow:visible}.score-blur .score-list li label{transition:none}.assessment-box--wide .score-blur,.assessment-box--wide:before,.assessment-box--wide:after{display:none}.assessment-label{z-index:4;height:var(--score-label-h);font-size:20px;line-height:var(--score-label-h);font-weight:var(--fw-assessment-label);color:var(--color-text-primary);cursor:text;position:relative}.score-list{margin:calc(-1 * (var(--score-pad-top) + var(--score-label-h))) -8px 0 0;padding:var(--score-under-label-h) 0 36px;cursor:text;scrollbar-width:none;flex-direction:column;flex:1;min-height:0;list-style:none;display:flex;overflow-y:auto}.score-list::-webkit-scrollbar{display:none}.score-scroll-thumb{z-index:1;background:var(--color-scrollbar-thumb);opacity:0;cursor:default;border-radius:2px;width:3px;transition:opacity .15s;position:absolute}.score-scroll-thumb[hidden]{display:none}.score-list:hover~.score-scroll-thumb,.score-scroll-thumb:hover,.score-scroll-thumb--dragging{opacity:1}.assessment-box--wide .score-list{margin-top:4px;padding-top:0;padding-bottom:0;overflow:clip}.assessment-box--wide .score-scroll-thumb{display:none}.score-list li{padding:2px 0;position:relative}.score-list li:first-child{margin-top:-2px}.score-list li:last-child{margin-bottom:-2px}.score-list li label{border-radius:17px;align-items:center;gap:6px;transition:background-color .15s;display:flex}.assessment-box:hover:not(:has(.score-value:focus)) .score-list li:has(.letter-grade--empty) label{background:var(--color-gray-lighter)}.score-list li label>*{z-index:2}.score-list li label>.letter-grade,.score-list li label>.score-value{position:relative}.score-list li label:focus-within{background:var(--color-focus-highlight)}.score-list li label:has(img[data-slug]) .score-value::selection{background:color-mix(in srgb, var(--grade-highlight,var(--grade-color)) 35%, transparent);color:inherit}.grade-summary .grade-value::selection{background:color-mix(in srgb, var(--grade-highlight,var(--grade-color)) 35%, transparent);color:inherit}.score-value{font:inherit;color:var(--color-text-primary);background:0 0;border:none;width:6ch;margin:0;padding:0;font-size:24px}.score-value:focus{outline:none}.score-type-hint{color:#0000;white-space:nowrap;pointer-events:none;font-size:16.8px;position:absolute;top:50%;left:8px;transform:translateY(-50%)}.assessment-box:hover .score-type-hint{color:var(--color-gray-light)}.score-target{color:var(--color-gray-light);white-space:nowrap;pointer-events:none;align-items:center;gap:.25em;font-size:16.8px;transition:color .15s;display:flex;position:absolute;top:50%;left:8px;transform:translateY(-50%)}.score-target:empty{visibility:hidden}.score-list label:has(.score-value:focus) .score-target{visibility:hidden}.score-target{opacity:0;transition:opacity .15s,color .15s}.class-card:hover .score-target,.class-card--in-class .score-target{opacity:1}.assessment-box:hover:not(:has(.score-value:focus)) .score-list li:has(.letter-grade--empty) .score-target{color:color-mix(in srgb, var(--color-gray-light), var(--color-gray-dark) 25%)}.score-target-grade{background:color-mix(in srgb, var(--color-gray-dark) calc(var(--preview-opacity) * 100%), transparent);border-radius:50%;width:20px;height:20px;display:block}:root[data-theme=dark] .score-target-grade{background:color-mix(in srgb, color-mix(in srgb, var(--color-surface), #000 60%) calc(var(--preview-opacity) * 100%), transparent)}.score-target-letter{width:100%;height:100%;-webkit-mask:var(--letter) center / cover no-repeat;-webkit-mask:var(--letter) center / cover no-repeat;mask:var(--letter) center / cover no-repeat;background:currentColor;display:block}:root:not([data-theme=dark]) .score-target-letter{background:#fff}.score-list:has(.score-value:focus) .score-type-hint{color:#0000}.score-original{transform-origin:0;color:var(--color-gray-dark);pointer-events:none;font-size:15px;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.score-original:empty{display:none}.score-list li:has(.score-date-label:not(:empty)) .score-original{display:none}.score-list li.force-original:has(.score-original:not(:empty)) .score-original{display:inline}.score-list li.force-original:has(.score-original:not(:empty)) .score-date-label{display:none}.score-list li.swap-animating:has(.score-date-label:not(:empty)) .score-original{display:inline}.score-list li.swap-animating .score-date-label{display:none}.score-date-label{color:var(--color-gray-dark);white-space:nowrap;pointer-events:none;font-size:15px;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.score-date-label:empty,.score-list li:hover .score-date-label{display:none}.score-list li:has(.score-date-btn--active) .score-date-label{display:none}.score-date-btn{opacity:0;pointer-events:none;cursor:pointer;background:0 0;border:none;width:18px;height:18px;padding:0;transition:opacity .15s;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.score-date-icon{width:100%;height:100%;display:block}.score-date-btn--active{opacity:1;pointer-events:auto}.score-list li:hover:has(.letter-grade:not(.letter-grade--empty)) .score-date-btn{opacity:1;pointer-events:auto}.score-list li:has(.score-original:not(:empty)):has(.score-date-label:empty) .score-date-btn{right:34px}.score-date-calendar{z-index:50;background:var(--color-surface);width:240px;box-shadow:0 8px 24px var(--color-shadow-popover);opacity:0;transition:transform var(--popup-spring-ms) var(--ease-popup-spring), opacity .18s ease;border-radius:14px;padding:12px;transform:scale(.85)}.score-date-calendar--visible{opacity:1;transform:scale(1)}.score-date-calendar-clear-row{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.score-date-calendar-clear-label{color:var(--color-gray-dark);font-size:13px}.score-date-calendar-clear-btn{background:var(--color-gray-lighter);color:var(--color-gray-dark);font:inherit;cursor:pointer;border:none;border-radius:999px;flex-shrink:0;padding:5px 12px;font-size:13px;line-height:1}.score-date-calendar-clear-btn:hover{background:linear-gradient(color-mix(in srgb, var(--color-gray-light) 20%, transparent), color-mix(in srgb, var(--color-gray-light) 20%, transparent)), var(--color-gray-lighter)}.score-date-calendar-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.score-date-calendar-label{font-size:15px;font-weight:var(--fw-assessment-label);color:var(--color-text-primary)}.score-date-nav-btn{width:24px;height:24px;color:var(--color-text-primary);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex}.score-date-nav-btn svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:14px;height:14px}.score-date-nav-btn:hover:not(:disabled){background:var(--color-gray-lighter)}.score-date-nav-btn:disabled{color:var(--color-gray-light);cursor:default}.score-date-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.score-date-days-window{position:relative;overflow:hidden}.score-date-days--leaving{pointer-events:none;position:absolute;top:0;left:0;right:0}.score-date-weekday-row{margin-bottom:4px}.score-date-weekday{text-align:center;color:var(--color-gray-dark);font-size:12px}.score-date-day{aspect-ratio:1;width:100%;font:inherit;color:var(--color-text-primary);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:13px;display:flex}.score-date-day--other-month{color:var(--color-gray-light)}.score-date-day:hover{background:var(--color-gray-lighter)}.score-date-day--today,.score-date-day--today:hover{background:var(--color-accent);color:#fff;font-weight:700}.score-date-day--selected{box-shadow:inset 0 0 0 2px var(--color-accent)}.score-date-day--other-month.score-date-day--selected:not(.score-date-day--today){box-shadow:inset 0 0 0 1px}.score-date-day--today.score-date-day--selected{box-shadow:inset 0 0 0 2px var(--color-accent), inset 0 0 0 4px var(--color-surface)}:root[data-theme=dark] .formative-link-btn{box-shadow:0 0 6px var(--color-shadow-popover)}.score-fraction-slash{color:var(--color-gray-dark)}.gpa-layout{align-items:flex-start;gap:24px;display:flex}.gpa-card{background:var(--color-surface);border-radius:calc(20px * var(--squircle-scale));corner-shape:squircle;box-shadow:var(--shadow-card);padding:32px}.gpa-classes-card{width:320px;min-width:300px}.gpa-classes-title{font-size:28px;font-weight:var(--fw-class-name);color:var(--color-text-primary);margin:0 0 4px}.gpa-classes-description{color:var(--color-gray-dark);margin:0 0 16px;font-size:14px;overflow:hidden}.gpa-class-list{flex-direction:column;gap:4px;margin:0 0 16px;padding:0;list-style:none;display:flex}.gpa-class-row{justify-content:space-between;align-items:center;padding:0;display:flex;position:relative}.gpa-class-name{color:var(--color-text-primary);font-size:19px}.gpa-grade-badge-btn{cursor:pointer;background:0 0;border:none;border-radius:50%;width:42px;height:42px;padding:0;line-height:0;position:relative}.gpa-clear-btn{width:30px;height:30px;color:var(--color-gray-dark);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;font-size:30px;line-height:1;display:none;position:absolute;top:50%;right:50px;transform:translateY(-50%)}.gpa-class-row[data-slug]:not([data-slug=""]):hover .gpa-clear-btn{display:flex}.gpa-class-row--flipping .gpa-clear-btn{display:none!important}.grade-badge--empty{border:2px solid var(--color-gray-light);box-sizing:border-box;background:0 0;border-radius:50%;width:34px;height:34px;display:inline-block}.gpa-class-row .letter-grade,.gpa-class-row .grade-badge--empty{width:42px;height:42px}.gpa-paste-btn{width:100%;font:inherit;color:var(--color-tab-accent);background:var(--color-background);cursor:pointer;border:none;border-radius:999px;justify-content:center;align-items:center;padding:11px;font-size:15px;display:flex}:root[data-theme=dark] .gpa-paste-btn{color:var(--color-filter-text);background:var(--color-gray-lighter)}:root[data-theme=dark] .gpa-paste-btn:hover:not(:disabled){background:linear-gradient(var(--color-hover-overlay), var(--color-hover-overlay)), var(--color-gray-lighter)}.gpa-paste-btn:hover:not(:disabled){background:linear-gradient(var(--color-hover-overlay), var(--color-hover-overlay)), var(--color-background)}.gpa-paste-btn:disabled{cursor:default}.paste-spinner{border:2px solid var(--color-gray-light);border-top-color:var(--color-gray-dark);border-radius:50%;flex-shrink:0;width:14px;height:14px;margin-right:8px;animation:.6s linear infinite paste-spinner-spin;display:inline-block}@keyframes paste-spinner-spin{to{transform:rotate(360deg)}}.gpa-summary-card{flex-direction:column;display:flex}.gpa-summary-title{font-size:28px;font-weight:var(--fw-class-name);color:var(--color-text-primary);margin:0 0 20px}.gpa-summary-values{gap:48px;display:flex}.gpa-summary-values:has(.gpa-summary-item--combined:not([hidden])){justify-content:center}.gpa-summary-item{flex-direction:column;align-items:center;gap:4px;display:flex}.gpa-summary-item[hidden]{display:none}.gpa-summary-item strong{color:var(--color-text-primary);justify-content:center;font-size:40px;font-weight:600}html.privacy-blur-settled .gpa-summary-item strong{transition:filter .2s,color .2s}html[data-privacy-blur] .gpa-summary-item strong{filter:blur(7px);color:var(--color-gray-dark)}html[data-privacy-blur] .gpa-summary-item:hover strong,html[data-privacy-blur] .gpa-summary-card[data-reveal-gpa] .gpa-summary-item strong{filter:none;color:var(--color-text-primary)}.gpa-summary-item>span{min-width:160px;color:var(--color-gray-dark);white-space:nowrap;text-align:center;font-size:17px}.gpa-grade-dropdown{z-index:10;background:var(--color-surface);transform-origin:-16px;opacity:0;transition:transform var(--popup-spring-ms) var(--ease-popup-spring), opacity .18s ease;filter:drop-shadow(0 0 .75px var(--color-popover-outline)) drop-shadow(0 0 2px var(--color-popover-outline));border-radius:14px;position:absolute;top:50%;left:calc(100% + 24px);transform:translateY(-50%)scale(.85)}.gpa-grade-dropdown:empty{display:none}.gpa-grade-dropdown--visible{opacity:1;transform:translateY(-50%)scale(1)}.gpa-grade-dropdown:after{content:"";z-index:-1;background:inherit;border-bottom-left-radius:4px;width:22px;height:22px;position:absolute;top:calc(50% - 11px);left:-11px;transform:rotate(45deg)}.gpa-grade-grid{--option-size:36px;--option-gap:10px;--grid-pad:14px;box-sizing:border-box;grid-template-columns:repeat(3, var(--option-size));gap:var(--option-gap);max-height:calc(var(--grid-pad) + 2.5 * var(--option-size) + 2 * var(--option-gap));padding:var(--grid-pad);scrollbar-width:none;border-radius:inherit;margin:0;list-style:none;display:grid;overflow-y:auto}.gpa-grade-grid::-webkit-scrollbar{display:none}.gpa-grade-option{width:var(--option-size);height:var(--option-size);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;line-height:0;display:flex}.gpa-grade-option img{width:var(--option-size);height:var(--option-size);object-fit:cover;border-radius:50%;transition:transform .12s;display:block}.gpa-grade-option:hover img{transform:scale(1.12)}.gpa-grade-option--selected img{box-shadow:0 0 0 2px var(--color-surface), 0 0 0 4px var(--grade-color)}.suggestions-card{background:var(--color-surface);border-radius:calc(20px * var(--squircle-scale));corner-shape:squircle;width:100%;max-width:800px;height:654px;box-shadow:var(--shadow-card);flex-direction:column;padding:24px 32px 32px;display:flex}.suggestions-card[hidden]{display:none}.suggestions-title{font-size:28px;font-weight:var(--fw-class-name);color:var(--color-text-primary);flex-shrink:0;align-items:center;gap:10px;margin:0 0 20px;display:flex}.suggestions-count{box-sizing:border-box;background:var(--color-dark-blue);color:#fff;font-variant-numeric:tabular-nums;border-radius:999px;justify-content:center;align-items:center;min-width:26px;height:26px;padding:0 8px;font-size:14px;font-weight:600;display:inline-flex}.suggestions-count[hidden]{display:none}.suggestions-empty{color:var(--color-gray-dark);margin:0;font-size:15px}.suggestions-list{flex-direction:column;flex:1;min-height:0;display:flex}.suggestions-list[hidden]{display:none}.suggestions-row{grid-template-columns:130px 80px 1fr 100px 70px 1.6fr 310px;align-items:center;gap:16px;padding:14px 0;display:grid}.suggestions-row--header{border-bottom:1px solid var(--color-gray-lighter);color:var(--color-gray-dark);flex-shrink:0;padding-bottom:10px;font-size:13px;font-weight:600}.suggestions-row--header .suggestions-cell--emails{color:var(--color-text-primary)}.suggestions-rows{flex:1;min-height:0;overflow-y:auto}.suggestions-rows .suggestions-row{border-bottom:1px solid var(--color-gray-lighter)}.suggestions-rows .suggestions-row:last-child{border-bottom:none}.suggestions-cell{min-width:0;color:var(--color-text-primary);overflow-wrap:break-word;font-size:14px}.suggestions-cell--count{text-align:center}.suggestions-cell--emails{color:var(--color-gray-dark)}.suggestions-rows .suggestions-cell--emails{filter:blur(4px);transition:filter .15s}.suggestions-rows .suggestions-row:hover .suggestions-cell--emails{filter:blur()}.suggestions-cell--actions{justify-content:flex-end;gap:8px;display:flex}.suggestions-accept-btn,.suggestions-decline-btn{white-space:nowrap;font:inherit;cursor:pointer;border:none;border-radius:999px;flex:none;padding:8px 14px;font-size:13px;font-weight:600}.suggestions-accept-btn{background:var(--color-accent);color:#fff}.suggestions-accept-btn:hover{opacity:.9}.suggestions-decline-btn{background:var(--color-gray-lighter);color:var(--color-text-primary)}.suggestions-decline-btn:hover{background:linear-gradient(var(--color-hover-overlay), var(--color-hover-overlay)), var(--color-gray-lighter)}.admin-calendar-layout+.suggestions-card{box-sizing:border-box;max-width:none;height:auto;max-height:654px;margin-top:32px}.grade-protection-overlay{z-index:200;opacity:0;background:#00000080;justify-content:center;align-items:center;padding:24px;transition:opacity .25s;display:flex;position:fixed;inset:0}.grade-protection-overlay--visible{opacity:1}.grade-protection-dialog{scrollbar-width:none;-ms-overflow-style:none;background:var(--color-surface);border-radius:calc(24px * var(--squircle-scale));corner-shape:squircle;width:100%;max-width:640px;max-height:75vh;box-shadow:0 8px 24px var(--color-shadow-popover);opacity:0;padding:40px;transition:transform .25s,opacity .25s;position:relative;overflow-y:auto;transform:translateY(100vh)}.grade-protection-dialog::-webkit-scrollbar{display:none}.grade-protection-dialog--visible{opacity:1;transform:translateY(0)}.grade-protection-close-btn{width:28px;height:28px;color:var(--color-gray-dark);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;font-size:26.4px;line-height:1;display:flex;position:absolute;top:16px;right:16px}.grade-protection-title{font-size:26px;font-weight:var(--fw-class-name);color:var(--color-text-primary);margin:0 0 16px}.grade-protection-intro{color:var(--color-text-primary);margin:0 0 20px;font-size:15px;line-height:1.5}.grade-protection-intro a{color:var(--color-accent);text-decoration:underline}:root[data-theme=dark] .grade-protection-intro a{color:var(--color-segment-active)}.grade-protection-section-title{color:var(--color-text-primary);margin:0 0 6px;font-size:15px;font-weight:700}.grade-protection-section-text{color:var(--color-gray-dark);margin:0 0 18px;font-size:14px;line-height:1.5}.grade-protection-compare{gap:16px;margin:4px 0 20px;display:flex}.grade-protection-compare-column{background:var(--color-gray-lighter);border-radius:14px;flex-direction:column;flex:1;gap:10px;min-width:0;padding:16px;display:flex}.grade-protection-compare-heading{color:var(--color-text-primary);font-size:14px;font-weight:700}.grade-protection-grades{flex-direction:column;gap:4px;display:flex}.grade-protection-grade-row{color:var(--color-text-primary);align-items:center;gap:6px;font-size:18px;font-weight:400;display:flex}.grade-protection-grade-row .letter-grade{width:26px;height:26px}.grade-protection-cipher-box{scrollbar-width:none;-ms-overflow-style:none;background:var(--color-surface);height:52px;color:var(--color-gray-dark);word-break:break-all;border-radius:10px;padding:10px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:11px;line-height:1.5;overflow-y:auto}.grade-protection-cipher-box::-webkit-scrollbar{display:none}.grade-protection-key-note{color:var(--color-gray-dark);align-items:flex-start;gap:8px;margin-top:4px;font-size:12px;display:flex}.grade-protection-key-icon{flex-shrink:0;width:26px;height:26px;margin-top:-2px}:root{--color-background:#e8ebf1;--color-surface:#fff;--color-text-primary:#111;--color-gray-dark:#828282;--color-gray-light:#c3c9d6;--color-gray-lighter:#eee;--blurred-circle-bg:#6b7280;--color-accent:var(--color-dark-blue);--color-on-accent:#fff;--color-accent-soft:#e6edff;--color-tab-accent:#3a3a3a;--color-tab-accent-soft:#dde0e0;--color-tab-accent-strong:#2b2b2b;--color-divider-on-background:#00000026;--color-scrollbar-thumb:#0000004d;--color-shadow:#959da54d;--shadow-card:0 1px 2px #1e293b12, 0 6px 14px -4px #1e293b1a;--color-shadow-popover:#959da54d;--color-popover-outline:#0f172a47;--color-popup-outline:#0f172a1f;--color-focus-highlight:#00296b14;--preview-opacity:.35;--color-segment-active:#90c2ff;--color-filter-check:#828282;--color-filter-fill:#eee;--color-filter-border:#a8a8a8;--color-filter-text:#111;--color-dark-blue:#1051cf;--color-light-blue:#0a98ff;--color-teal:#21bbb6;--color-green:#00bb61;--color-lime:#b3dd27;--color-true-green:#5cbf2a;--color-yellow:#ffc925;--color-amber:#ffad32;--color-orange:#ff893e;--color-f-red:#f64949;--color-red:#d80032;--color-rose:#f83662;--color-purple:#b05ee0;--color-pink:#e8508f;--color-indigo:#5b4fe0;--color-cyan:#00a9c7;--color-magenta:#d63fc4;--color-coral:#ff6f59;--color-brown:#a0673a;--color-slate:#5f7389;--color-gray:#767676;--color-dark-blue-highlight:#4a6bff}:root[data-theme=dark]{--color-background:#121212;--color-surface:#363636;--color-text-primary:#fff;--color-gray-dark:#bababa;--color-gray-light:gray;--color-gray-lighter:#464646;--blurred-circle-bg:#6b7280;--color-accent:#2f6bff;--color-accent-soft:#5a5a5a;--color-tab-accent:#fff;--color-tab-accent-soft:#272727;--color-tab-accent-strong:#fff;--color-divider-on-background:#ffffff26;--color-scrollbar-thumb:#ffffff4d;--color-focus-highlight:#aee1ff14;--color-shadow:transparent;--shadow-card:0 0 0 transparent;--color-shadow-popover:#ffffff14;--color-popover-outline:#ffffff4d;--color-popup-outline:#ffffff24;--color-filter-check:#a3a3a3;--color-filter-fill:#404040;--color-filter-border:#6e6e6e;--color-filter-text:#ececec;--color-dark-blue:#1d65f1;--color-light-blue:#00c2ff;--color-teal:#33d9c0;--color-green:#00e376;--color-lime:#aee100;--color-true-green:#74d63c;--color-yellow:#efda19;--color-amber:#ffb12d;--color-orange:#ff8b49;--color-f-red:#ff6161;--color-red:#f0284f;--color-rose:#ff5c80;--color-purple:#c77dff;--color-pink:#ff6fae;--color-indigo:#7d74ff;--color-cyan:#22d3ee;--color-magenta:#f062dc;--color-coral:#ff8a78;--color-brown:#c98a58;--color-slate:#8ea3ba;--preview-opacity:.45}
