:root{--ivory:#f8f4ea;--white:#fff;--sand:#efeadd;--sand-2:#e6e0cf;--line:#e2dccb;--line-soft:#ece6d8;--line-strong:#cfc6b0;--ink:#14211b;--ink-2:#2f3a33;--muted:#5a6259;--subtle:#636b62;--rule:#b5ae9c;--forest:#173b2e;--forest-2:#20503e;--cream:#f4efe2;--cream-quiet:#f4efe2a3;--cream-soft:#f4efe2c2;--marigold:#f4b63f;--marigold-soft:#fbe9bf;--clay:#b8401f;--clay-soft:#fde3d9;--sage:#0e4a2b;--sage-soft:#c8ecd6;--ochre:#5e3f00;--ochre-soft:#fbe0a0;--brick:#8e2614;--brick-soft:#fbd6cc;--rmp-ink:#24221e;--rmp-hi-bg:#dbe9d4;--rmp-hi:#234d2c;--rmp-mid-bg:#f2e5bf;--rmp-mid:#5e4507;--rmp-lo-bg:#f4d8d1;--rmp-lo:#7e2615;--rmp-none-bg:#f0ece5;--rmp-none:#6f6a61;--display:"Familjen Grotesk Variable", "Familjen Grotesk", system-ui, sans-serif;--sans:"Hanken Grotesk Variable", "Hanken Grotesk", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--bar:72px;--side:clamp(280px, 21vw, 330px);--ease:cubic-bezier(.2, .8, .2, 1);--shadow-pop:0 18px 50px #14211b24, 0 2px 6px #14211b0d}*,:before,:after{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--bar) + 70px)}html,body{margin:0}body{background:var(--ivory);color:var(--ink);font:14px/1.45 var(--sans);font-feature-settings:"cv11", "ss01";-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}button,input{font:inherit;color:inherit}button{cursor:pointer}h1,h2,h3{margin:0}ul{margin:0;padding:0;list-style:none}:focus-visible{outline:2px solid var(--clay);outline-offset:2px;border-radius:6px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip{z-index:100;background:var(--ink);color:#fff;border-radius:10px;padding:10px 16px;font-weight:600;text-decoration:none;transition:top .15s;position:fixed;top:-60px;left:12px}.skip:focus{top:10px}.btn{border:0;border-radius:99px;justify-content:center;align-items:center;gap:8px;height:38px;padding:0 16px;font-size:13.5px;font-weight:600;transition:background .12s,transform .1s;display:inline-flex}.btn:active{transform:scale(.98)}.btn--dark{background:var(--forest);color:var(--cream)}.btn--dark:hover{background:var(--forest-2)}.btn--quiet{background:var(--sand);color:var(--ink)}.btn--quiet:hover{background:var(--sand-2)}.btn--sm{height:34px;padding:0 14px;font-size:13px}.linkbtn{color:var(--muted);background:0 0;border:0;padding:4px 6px;font-size:13px;font-weight:500}.linkbtn:hover{color:var(--ink);text-underline-offset:3px;text-decoration:underline}.more{color:var(--clay);background:0 0;border:0;padding:2px 0;font-size:13px;font-weight:600}.more:hover{text-underline-offset:3px;text-decoration:underline}.crn{font:500 12px var(--sans);color:var(--subtle);font-variant-numeric:tabular-nums;cursor:copy;background:0 0;border:0;border-radius:4px;padding:0;transition:color .12s,background .12s}.crn:hover{color:var(--ink-2);background:var(--sand);box-shadow:0 0 0 3px var(--sand)}.rmp{vertical-align:middle;font:650 12px/1 var(--sans);font-variant-numeric:tabular-nums;border-radius:5px;flex:none;align-items:stretch;display:inline-flex;overflow:hidden;box-shadow:inset 0 0 0 1px #1e190f12}.rmp-src{background:var(--rmp-ink);color:#fbf8f2;letter-spacing:.09em;align-items:center;padding:3px 4px 2px;font-size:7.5px;font-weight:700;display:flex}.rmp-n{justify-content:center;align-items:center;min-width:27px;padding:3px 5px;display:flex}.rmp--hi .rmp-n{background:var(--rmp-hi-bg);color:var(--rmp-hi)}.rmp--mid .rmp-n{background:var(--rmp-mid-bg);color:var(--rmp-mid)}.rmp--lo .rmp-n{background:var(--rmp-lo-bg);color:var(--rmp-lo)}.rmp--none .rmp-src{background:#6f6a61}.rmp--none .rmp-n{background:var(--rmp-none-bg);color:var(--rmp-none);font-weight:500}.pchip{min-width:0;max-width:100%;color:var(--ink-2);text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:8px;padding:4px 8px 4px 4px;font-size:14px;transition:background .15s,transform .12s;display:inline-flex}.pchip-name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.pchip:hover{background:var(--sand)}.pchip:hover .rmp{box-shadow:0 0 0 2px #173b2e2e}.pchip:active{transform:scale(.97)}.pchip--plain{cursor:default;padding-left:4px}.staff{color:var(--subtle);font-size:13px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.bar{z-index:50;height:var(--bar);background:var(--ivory);box-shadow:0 2px 0 var(--ivory);justify-content:space-between;align-items:center;gap:16px;padding:12px 28px 0;display:flex;position:sticky;top:0}.brand{white-space:nowrap;text-align:left;background:0 0;border:0;padding:0;display:block}.brand-name{font:700 28px/1 var(--display);letter-spacing:-.03em;display:inline-block}.brand-term{vertical-align:-4px;color:var(--forest);background:#dcebd9;border-radius:99px;margin-left:10px;padding:3px 9px;font-size:12px;font-weight:600;line-height:1.3;display:inline-block;overflow:hidden}.deadline{color:var(--muted);white-space:nowrap;font-size:13.5px}.deadline b{color:var(--ink);font-weight:650}.deadline.is-urgent b{color:var(--clay)}.wk-deadline{display:none}.app{grid-template-columns:minmax(0, 1fr) var(--side);column-gap:16px;display:grid}.main{--gut:clamp(20px, 2.4vw, 36px);min-width:0;padding:0 0 64px var(--gut);outline:none;container-type:inline-size}.main:has(.landing){padding-bottom:12px}.main .box{margin-left:calc(-1 * var(--gut));border-left:0;border-radius:0 16px 16px 0}.side{top:calc(var(--bar) + 16px);margin-top:var(--pane-top,24px);max-height:calc(100vh - var(--bar) - 32px);outline:none;align-self:start;display:flex;position:sticky}.side>.wk{flex:1;min-height:0}.crash{text-align:center;max-width:420px;margin:18vh auto;padding:0 20px}.crash h1{font:600 28px var(--display);margin-bottom:8px}.crash p{color:var(--muted);margin:0 0 18px}@media (max-width:1100px){.bar-deadline{display:none}.wk-deadline{align-self:flex-start;display:inline-block}}.landing{--row-h:clamp(26px, calc((100vh - 300px) / 16.5), 40px);padding-top:18px}.quick{flex-wrap:wrap;gap:8px;margin-bottom:18px;display:flex}.browse+.browse{margin-top:14px}.browse h2{font:700 20px var(--display);letter-spacing:-.02em;margin:0 0 10px}.rule-list{--cols:4;--rows:var(--rows-wide);grid-auto-flow:column;grid-template-columns:repeat(var(--cols), minmax(0, 1fr));grid-template-rows:repeat(var(--rows), auto);padding:6px 14px 6px calc(14px + var(--gut));background:var(--white);border:1px solid var(--line);border-radius:16px;column-gap:22px;display:grid}.rule-list--reqs{grid-template-columns:repeat(var(--cols), minmax(max-content, 1fr))}.rule-list li{border-bottom:1px solid var(--line-soft)}.rule-list li[data-end*=w]{border-bottom-color:#0000}.rule-list button{width:100%;height:var(--row-h);text-align:left;color:var(--ink);background:0 0;border:0;border-radius:0;align-items:center;gap:8px;padding:0 8px;font-size:15px;transition:background .12s,border-radius .12s;display:flex}.rule-list .rl-name{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-weight:500;overflow:hidden}.rule-list button:after{content:"›" / "";width:10px;color:var(--rule);flex:none;font-size:20px;line-height:1;transition:color .12s}.rule-list button:hover,.rule-list button:focus-visible{background:#fdf1d3;border-radius:8px}.rule-list button:hover:after,.rule-list button:focus-visible:after{color:var(--ink)}.rule-list .tick{width:17px;height:17px;box-shadow:inset 0 0 0 1.5px var(--line-strong);border-radius:50%;flex:none;place-items:center;display:grid}.rule-list .is-covered .tick{background:var(--forest);color:var(--cream);box-shadow:none}@container (width<=880px){.rule-list button{height:auto;min-height:var(--row-h);padding-block:1px;font-size:14px;line-height:1.15}.rule-list .rl-name{white-space:normal}}@container (width<=760px){.rule-list{--cols:2;--rows:var(--rows-narrow);grid-template-columns:repeat(2,minmax(0,1fr))}.rule-list li[data-end*=w]{border-bottom-color:var(--line-soft)}.rule-list li[data-end*=n]{border-bottom-color:#0000}}.fbar{top:var(--bar);z-index:30;margin-left:calc(-1 * var(--gut));padding:14px 0 12px var(--gut);background:linear-gradient(var(--ivory) 80%, #f8f4ea00);flex-wrap:wrap;align-items:center;gap:8px;display:flex;position:sticky}.pop-wrap{position:relative}.chip{border:1px solid var(--line);background:var(--white);height:34px;color:var(--ink-2);white-space:nowrap;border-radius:99px;align-items:center;gap:6px;padding:0 13px;font-size:13px;transition:border-color .15s,background .15s;display:inline-flex}.chip:hover{border-color:var(--line-strong)}.chip svg{color:var(--subtle)}.chip.on{background:var(--forest);border-color:var(--forest);color:var(--cream);font-weight:600}.chip.on svg{color:#ffffffbf}.chip b{font-weight:600}.chip--swap{background:var(--clay-soft);color:#8a2a14;border-color:#f6c6b6}.chip--swap svg{color:var(--clay)}.pop{z-index:60;background:var(--white);border:1px solid var(--line);min-width:260px;box-shadow:var(--shadow-pop);border-radius:14px;padding:8px;animation:.14s pop;position:absolute;top:calc(100% + 8px);left:0}.pop--right{min-width:230px;left:auto;right:0}.pop--wide{width:520px}.pop-head{display:none}@keyframes pop{0%{opacity:0;transform:scale(.98)translateY(4px)}}.pop-search{border:1px solid var(--line);background:var(--ivory);border-radius:9px;width:100%;height:36px;margin-bottom:6px;padding:0 11px;font-size:13.5px}.pop-search:focus{border-color:var(--line-strong);background:var(--white);outline:none}.pop-search:focus-visible{outline:2px solid var(--clay);outline-offset:1px}.ge-match{margin:0 0 8px}.ge-match button{flex:1}.opts{overscroll-behavior:contain;gap:1px;max-height:340px;display:grid;overflow-y:auto}.opts--two{grid-template-columns:1fr 1fr;column-gap:6px}.opt{cursor:pointer;border-radius:8px;align-items:center;gap:9px;padding:6px 8px;font-size:13.5px;display:flex;position:relative}.opt:hover{background:var(--sand)}.opt input{opacity:0;width:1px;height:1px;position:absolute}.opt:has(input:focus-visible){outline:2px solid var(--clay);outline-offset:-2px}.opt .ck{border:1.5px solid #a39d91;border-radius:4px;flex:none;place-items:center;width:15px;height:15px;transition:background .1s;display:grid}.opt--radio .ck{border-radius:50%}.opt input:checked+.ck{background:var(--forest);border-color:var(--forest)}.opt input:checked+.ck:after{content:"";border-top:0;border-bottom:1.6px solid #fff;border-left:1.6px solid #fff;border-right:0;width:6px;height:3px;transform:rotate(-45deg)translate(1px,-1px)}.opt--radio input:checked+.ck:after{background:#fff;border:0;border-radius:50%;width:5px;height:5px;transform:none}.opt-name{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.opt-none{color:var(--muted);margin:6px 8px;font-size:13px}.slots{color:var(--muted);gap:4px;padding:4px;font-size:11.5px;display:grid}.slots-row{grid-template-columns:74px repeat(5,40px);align-items:center;gap:4px;display:grid}.slots-row>span{place-items:center;display:grid}.slots-row>.slots-part{justify-content:start}.slots button{border:1px solid var(--line);background:var(--ivory);border-radius:8px;width:40px;height:30px;transition:background .1s}.slots button:hover{border-color:var(--line-strong)}.slots button.on{background:var(--forest);border-color:var(--forest)}.rhead{justify-content:space-between;align-items:flex-end;gap:16px;margin:14px 0;display:flex}.rhead>div:first-child{min-width:0}.rhead h1{font:700 38px/1.05 var(--display);letter-spacing:-.03em;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}.rhead p{color:var(--muted);margin:5px 0 0;font-size:13.5px}.rhead-tools{flex:none;align-items:center;gap:12px;display:flex}.sortbtn{color:var(--muted);white-space:nowrap;background:0 0;border:0;align-items:center;gap:5px;padding:6px 2px;font-size:13px;display:inline-flex}.sortbtn b{color:var(--ink);font-weight:600}.list{background:var(--white);border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:0 1px 2px #1c1b1708}.dept-h{padding:18px 20px 6px calc(20px + var(--gut));letter-spacing:.06em;text-transform:uppercase;color:var(--subtle);border-top:1px solid var(--line-soft);font-size:11.5px;font-weight:600}.list>.dept-h:first-child{border-top:0}.empty{text-align:center;color:var(--muted);padding:56px 24px}.empty b{font:700 22px var(--display);color:var(--ink);margin-bottom:6px;display:block}.course{border-top:1px solid var(--line-soft);content-visibility:auto;contain-intrinsic-size:auto 82px;transition:background .15s}.dept-h+.course,.list>.course:first-child{border-top:0}.course.open{content-visibility:visible;background:#fbf8f1}.chead{padding:17px 22px 17px calc(22px + var(--gut));cursor:pointer;grid-template-columns:86px minmax(0,1fr) 212px 202px 88px 14px;align-items:center;gap:18px;transition:background .12s;display:grid}.chead:hover{background:#fcfbf8}.course.open .chead{background:0 0}.ccode{color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap;letter-spacing:.01em;justify-items:start;gap:3px;font-size:15.5px;font-weight:700;display:grid}.ccode .crn{font-size:13.5px}.ctitle{min-width:0}.ctitle-btn{text-align:left;font:600 17px/1.3 var(--display);letter-spacing:-.01em;color:var(--ink);text-wrap:pretty;background:0 0;border:0;padding:0;display:block}.ctitle-btn:focus-visible{outline-offset:4px}.ctitle small{color:var(--muted);flex-wrap:wrap;align-items:center;gap:5px;margin-top:5px;font-size:13px;display:flex}.ge{background:var(--sand);height:20px;color:var(--ink-2);letter-spacing:.04em;border-radius:99px;align-items:center;padding:0 8px;font-size:11px;font-weight:650;display:inline-flex}.ge:last-of-type{margin-right:4px}.when{color:var(--ink-2);font-variant-numeric:tabular-nums;white-space:nowrap;gap:4px;font-size:15px;display:grid}.wl{grid-template-columns:46px 102px auto;align-items:baseline;column-gap:6px;display:grid}.wl b{color:var(--ink);font-weight:650}.wl i{color:var(--muted);background:var(--sand);border-radius:5px;justify-self:start;padding:1px 6px;font-size:11px;font-style:normal;font-weight:600}.when small,.when-tba{color:var(--muted);font-size:12.5px}.profs{flex-direction:column;align-items:flex-start;gap:3px;min-width:0;margin-left:-4px;display:flex}.profs .staff{padding-left:4px}.profs .pchip,.profs .staff{font-size:15px}.pmore{background:var(--sand);height:22px;color:var(--ink-2);white-space:nowrap;border-radius:99px;align-items:center;margin-left:4px;padding:0 8px;font-size:11.5px;font-weight:600;display:inline-flex}.status{white-space:nowrap;border-radius:99px;justify-self:start;align-items:center;gap:6px;height:28px;padding:0 11px;font-size:13px;font-weight:700;display:inline-flex}.status:empty{visibility:hidden}.status i{background:currentColor;border-radius:50%;flex:none;width:6px;height:6px}.status--fits{color:var(--sage);background:var(--sage-soft)}.status--fixable{color:var(--ochre);background:var(--ochre-soft)}.status--clash{color:var(--brick);background:var(--brick-soft)}.status--in{color:var(--ink);background:var(--pc)}.chev{color:var(--subtle);transition:transform .2s var(--ease)}.course.open .chev{transform:rotate(90deg)}.cbody{padding:2px 22px 22px calc(114px + var(--gut));animation:open .2s var(--ease);grid-template-columns:minmax(0,1fr) auto;gap:16px 24px;display:grid}@keyframes open{0%{opacity:0;transform:translateY(-4px)}}.about{min-width:0;max-width:72ch}.desc{font:16px/1.6 var(--sans);color:#000;margin:0 0 .6em}.desc:last-child{margin-bottom:0}.desc--none{color:var(--muted)}.desc-wrap.is-folded{-webkit-line-clamp:8;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.prereq{font:15px/1.55 var(--sans);color:#000;margin:10px 0 0}.prereq b{font:600 13px var(--sans);margin-right:4px}.facts{color:var(--muted);flex-wrap:wrap;gap:6px;margin-top:12px;font-size:13px;display:flex}.facts li{background:var(--sand);border-radius:99px;padding:4px 10px}.facts .fact--warn{color:var(--ochre);background:var(--ochre-soft)}.cb-profs{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.inline-week{background:var(--white);border:1px solid var(--line);border-radius:12px;grid-column:1/-1;padding:12px 12px 10px}.inline-week p{color:var(--muted);margin:0 0 8px;font-size:12px;font-weight:600}.secs{background:var(--white);border:1px solid var(--line);border-radius:16px;grid-column:1/-1;overflow:hidden}.sec{border-top:1px solid var(--line-soft);grid-template-columns:26px minmax(0,1fr) 96px 214px;align-items:center;gap:14px;padding:12px 14px 12px 16px;font-size:14px;transition:background .12s;display:grid}.secs--profs .sec{grid-template-columns:26px minmax(150px,1fr) 200px 96px 214px}.sec:first-child{border-top:0}.sec:hover{background:#fdfcfa}.sec.is-in{background:color-mix(in srgb, var(--pc) 16%, white)}.sec-l{background:var(--forest);min-width:24px;height:24px;color:var(--cream);border-radius:8px;place-items:center;padding:0 4px;font-size:12px;font-weight:700;display:grid}.sec-w{min-width:0}.sec-topic{color:var(--ink);margin-bottom:2px;font-weight:600;display:block}.sec--expandable{cursor:pointer}.sec--expandable .sec-about{cursor:auto}.sec--expandable:hover .sec-topic--more{color:var(--clay)}.sec-topic--more{text-align:left;font:inherit;color:var(--ink);background:0 0;border:0;border-radius:4px;align-items:center;gap:4px;padding:0;font-weight:600;display:inline-flex}.sec-topic--more:hover{color:var(--clay)}.sec-topic--more svg{color:var(--subtle);transition:transform .2s var(--ease);flex:none}.sec-topic--more[aria-expanded=true] svg{transform:rotate(90deg)}.sec-about{max-width:72ch;animation:open .2s var(--ease);grid-column:2/-1;padding:2px 0 4px}.sec-about p{font:15px/1.6 var(--sans);color:#000;margin:0 0 .6em}.sec-about p:last-child{margin-bottom:0}.sec-w b{font-variant-numeric:tabular-nums;font-weight:550;display:block}.sec-w small{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px;display:block}.sec-p{flex-direction:column;align-items:flex-start;gap:2px;min-width:0;margin-left:-4px;display:flex}.sec-r{color:var(--muted);white-space:nowrap;justify-items:end;gap:2px;font-size:13px;display:grid}.act{white-space:nowrap;text-overflow:ellipsis;border:0;border-radius:99px;justify-self:end;align-items:center;gap:6px;max-width:214px;height:34px;padding:0 15px;font-size:13px;font-weight:600;transition:background .12s,transform .1s,color .12s;display:inline-flex;overflow:hidden}.act:active{transform:scale(.97)}.act--add{background:var(--forest);color:var(--cream);justify-content:center;min-width:64px}.act--add:hover{background:var(--forest-2)}.act--move{background:var(--ochre-soft);color:var(--ochre)}.act--move:hover{background:#f8d482}.act--swap{background:var(--white);color:var(--ink-2);box-shadow:inset 0 0 0 1px var(--line)}.act--swap:hover{box-shadow:inset 0 0 0 1px var(--line-strong)}.act--in{color:var(--ink);background:0 0;padding:0 8px 0 10px}.act--in svg:last-child{opacity:.5;margin-left:2px}.act--in:hover{background:var(--brick-soft);color:var(--brick)}.act--in:hover svg:last-child{opacity:1}.act--clash{color:var(--muted);cursor:default;background:0 0;padding-right:4px;font-weight:500}@container (width<=860px){.chead{grid-template-columns:78px auto minmax(0,1fr) auto 14px;grid-template-areas:"code title title status chev"".when profs profs.";gap:8px 14px}.chead .ccode{grid-area:code}.chead .ctitle{grid-area:title}.chead .when{grid-area:when}.chead .profs{grid-area:profs}.chead .status{grid-area:status;align-self:start}.chead .chev{grid-area:chev}.cbody{padding-left:calc(20px + var(--gut));grid-template-columns:1fr}.cb-profs{flex-flow:wrap;align-items:center}.sec,.secs--profs .sec{grid-template-columns:26px minmax(0,1fr) auto;grid-template-areas:"l w act""l p act""l r act";row-gap:4px}.sec-l{grid-area:l;align-self:start}.sec-w{grid-area:w}.sec-p{flex-flow:wrap;grid-area:p}.sec-r{grid-area:r;justify-items:start;gap:10px;display:flex}.act{grid-area:act}.sec-about{grid-column:2/-1}}.wk{background:var(--forest);color:var(--cream);border:1px solid var(--forest);border-right:0;border-radius:24px 0 0 24px;flex-direction:column;gap:16px;padding:20px 24px 20px 22px;display:flex;overflow-y:auto}.wk :focus-visible{outline-color:var(--marigold)}.wk-head{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.wk-head h2{font:700 22px var(--display);letter-spacing:-.02em;color:var(--cream)}.wk-n{color:var(--cream-quiet);font-size:12.5px}.wk>.mw{flex:none;grid-template-rows:auto clamp(210px,100vh - 500px,340px)}.wk-list{gap:1px;margin:0 -8px;display:grid}.wk-row{text-align:left;background:0 0;border:0;border-radius:9px;grid-template-columns:8px 56px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;padding:8px;font-size:13px;transition:background .12s;display:grid}.wk-row:hover{background:#ffffff12}.wk-row i{background:var(--pc);border-radius:50%;width:8px;height:8px}.wk-row b{color:var(--cream);white-space:nowrap;font-weight:700}.wk-row span{color:var(--cream-soft);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.wk-row small{color:var(--cream-quiet);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:12px}.wk-row .wk-clash{color:#ff9a82;font-weight:600}.wk-row.is-swap{opacity:.5}.wk-empty{color:var(--cream-soft);margin:0;font-size:13px}.wk .btn--quiet{background:var(--marigold);color:var(--forest)}.wk .btn--quiet:hover{background:#f7c768}.wk .deadline{color:var(--cream-soft)}.wk .deadline b{color:var(--cream)}.wk .deadline.is-urgent b{color:var(--marigold)}.wk-foot{margin-top:auto;padding-top:4px;display:grid}.wk-foot .btn{width:100%}.mw{grid-template-rows:auto minmax(0,1fr);gap:4px;min-height:0;display:grid}.mw--inline{grid-template-rows:auto 190px}.mw-days{color:var(--subtle);text-align:center;letter-spacing:.04em;text-transform:uppercase;grid-template-columns:20px repeat(5,minmax(0,1fr));column-gap:3px;font-size:10.5px;font-weight:700;display:grid}.mw-body{grid-template-columns:20px minmax(0,1fr);min-height:0;padding:6px 0;display:grid}.mw-hours{position:relative}.mw-hours span{color:var(--subtle);font-variant-numeric:tabular-nums;font-size:10px;line-height:1;position:absolute;left:0;transform:translateY(-50%)}.mw-cols{background-image:repeating-linear-gradient(to bottom, var(--line-soft) 0 1px, transparent 1px calc(100% * 60 / 510));border-radius:6px;grid-template-columns:repeat(5,minmax(0,1fr));column-gap:3px;display:grid;position:relative}.mw-cols:focus-visible{outline-offset:4px}.mw-col{cursor:cell;border-radius:6px;transition:background .15s;position:relative}.mw--inline .mw-col{cursor:default}.mw-cols:not(.is-previewing) .mw-col:hover{background:#1c1b1706}.wk .mw-days,.wk .mw-hours span{color:var(--cream-quiet)}.wk .mw-cols{background-image:repeating-linear-gradient(#ffffff17 0 1px,#0000 1px 11.7647%)}.wk .mw-cols:not(.is-previewing) .mw-col:hover{background:#ffffff0a}.blk{text-align:center;cursor:pointer;background:var(--pc);color:#10241b;border:0;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;padding:2px;line-height:1.2;transition:opacity .2s,box-shadow .15s,background .15s;display:flex;position:absolute;left:0;right:0;overflow:hidden}.blk.is-lab{background-image:repeating-linear-gradient(135deg,#10241b21 0 4px,#0000 4px 9px)}.blk b{letter-spacing:-.015em;white-space:nowrap;font-size:10.5px;font-weight:800}.blk:hover{background-color:color-mix(in srgb, var(--pc) 86%, white)}.mw-cols.is-previewing .blk:not(.is-hit){opacity:.45}.mw-cols.has-spotlight .blk:not(.is-focus){opacity:.3}.mw-cols.has-spotlight .mw-ghosts{opacity:0}.blk.is-clash{box-shadow:0 0 0 2px #ff7a5c}.blk.is-swap{color:var(--cream-quiet);background:0 0;box-shadow:inset 0 0 0 1.5px #f4efe266}.mw--inline .blk b{font-size:9.5px}.mw-ghosts{pointer-events:none;z-index:2;grid-template-columns:repeat(5,minmax(0,1fr));column-gap:3px;transition:opacity .15s;display:grid;position:absolute;inset:0}.gcol{position:relative}.ghost{z-index:2;pointer-events:auto;cursor:pointer;animation:ghost .16s var(--ease) both;border:0;border-radius:6px;place-items:center;padding:0;line-height:1.1;transition:background .12s,color .12s;display:grid;position:absolute;overflow:hidden}.ghost b{white-space:nowrap;font-size:10.5px;font-weight:650}.ghost.is-ok{background:var(--white);color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink)}.ghost.is-ok:hover{background:var(--ink);color:#fff}.ghost.is-meh{color:var(--muted);box-shadow:inset 0 0 0 1px var(--rule);outline:1px dashed var(--rule);outline-offset:-1px;background:#ffffffbf}.ghost.is-hit{pointer-events:none;background:0 0;box-shadow:inset 0 0 0 1px #a8362759}.ghost.is-hit b{display:none}.overlap{z-index:3;box-shadow:inset 0 0 0 2px var(--brick);pointer-events:none;background:#a8362714;border-radius:5px;position:absolute;left:0;right:0}.mw--inline .mw-col{position:relative}@keyframes ghost{0%{opacity:0}}.mk{border-top:2px solid var(--marigold);z-index:3;pointer-events:none;position:absolute;left:0;right:0}.mk:before{content:"";background:var(--marigold);border-radius:50%;width:6px;height:6px;position:absolute;top:-4px;left:-3px}.kcursor{z-index:4;box-shadow:0 0 0 2px var(--marigold);pointer-events:none;border-radius:5px;position:absolute;left:-1px;right:-1px}.wk .ghost.is-ok{color:var(--cream);box-shadow:inset 0 0 0 1.5px var(--cream);background:#f4efe21f}.wk .ghost.is-ok:hover{background:var(--cream);color:var(--forest)}.wk .ghost.is-meh{color:var(--cream-soft);box-shadow:none;background:0 0;outline:1.5px dashed #f4efe280}.wk .ghost.is-hit{box-shadow:inset 0 0 0 1px #ff7a5c99}.wk .overlap{background:#ef6a4e38;box-shadow:inset 0 0 0 2.5px #ff7a5c}.dialog{max-width:none;max-height:none;color:inherit;background:0 0;border:0;padding:0;overflow:visible}.dialog::backdrop{background:#1c1b174d;animation:.18s fade}.dialog--anchored::backdrop{background:0 0}@keyframes fade{0%{opacity:0}}.dialog-body{overscroll-behavior:contain;background:var(--white);width:min(460px,100vw - 32px);max-height:calc(100vh - 48px);animation:pop .2s var(--ease);border-radius:26px;padding:22px 24px 20px;position:relative;overflow-y:auto;box-shadow:0 30px 80px #14211b47}.dialog--block .dialog-body{border:1px solid var(--line);border-radius:18px;width:350px;max-height:calc(100vh - 90px);padding:18px;box-shadow:0 22px 60px #1c1b172e,0 2px 6px #1c1b170d}.dialog-x{background:var(--sand);width:32px;height:32px;color:var(--muted);border:0;border-radius:50%;place-items:center;display:grid;position:absolute;top:12px;right:12px}.dialog-x:hover{color:var(--ink);background:var(--sand-2)}.blkpop-code{color:var(--muted);align-items:center;gap:8px;margin:0;font-size:12px;font-weight:600;display:flex}.blkpop-code i{background:var(--pc);border-radius:50%;width:9px;height:9px}.blkpop h2{font:700 21px/1.2 var(--display);letter-spacing:-.02em;margin:4px 36px 6px 0}.blkpop-course{color:var(--muted);margin:-4px 0 6px;font-size:13px}.blkpop-when{color:var(--muted);margin:0 0 10px;font-size:13px}.blkpop-profs{border-bottom:1px solid var(--line-soft);flex-wrap:wrap;gap:6px;margin-left:-4px;padding-bottom:12px;display:flex}.blkpop-k{color:var(--subtle);margin:12px 0 4px;font-size:12px;font-weight:600}.blkpop-sec{text-align:left;background:0 0;border:0;border-radius:8px;grid-template-columns:18px 1fr auto;align-items:center;gap:8px;width:calc(100% + 16px);margin:0 -8px;padding:7px 8px;font-size:12.5px;display:grid}.blkpop-sec span{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.blkpop-sec em{color:var(--forest);font-style:normal;font-weight:700}.blkpop-sec:hover:not(:disabled){background:var(--sand)}.blkpop-sec:disabled{cursor:default;color:var(--muted)}.blkpop-sec:disabled em{color:var(--muted);font-size:11.5px;font-weight:500}.blkpop-acts{border-top:1px solid var(--line-soft);gap:8px;margin-top:12px;padding-top:12px;display:flex}.dialog--rmp .dialog-body{width:min(500px,100vw - 32px);padding:24px 26px 18px}.rmpd-head{margin:0 40px 18px 0}.rmpd-src{color:var(--muted);align-items:center;gap:8px;margin:0 0 6px;font-size:12px;display:flex}.rmpd-src .rmp-src{border-radius:4px;padding:3px 5px}.rmpd h2{font:700 25px/1.2 var(--display);letter-spacing:-.02em}.rmpd-none{color:var(--ink-2);margin:0 0 18px;font-size:15px;line-height:1.55}.rmpd-nums{grid-template-columns:1.35fr 1fr 1fr;gap:8px;margin:0 0 22px;display:grid}.rmpd-num{background:#f3efe4;border:1px solid #0000;border-radius:16px;flex-direction:column;justify-content:space-between;gap:6px;min-width:0;padding:12px 14px;display:flex}.rmpd-num dd{margin:0}.rmpd-num--rating.rmp--hi{background:var(--rmp-hi-bg);color:var(--rmp-hi);border-color:#0000}.rmpd-num--rating.rmp--mid{background:var(--rmp-mid-bg);color:var(--rmp-mid);border-color:#0000}.rmpd-num--rating.rmp--lo{background:var(--rmp-lo-bg);color:var(--rmp-lo);border-color:#0000}.rmpd-val{font:700 24px/1 var(--display);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.rmpd-num:not(.rmpd-num--rating) .rmpd-val{color:var(--ink);order:-1;font-size:20px}.rmpd-val small{font-size:12px;font-weight:500}.rmpd-num:not(.rmpd-num--rating) .rmpd-val small{color:var(--muted)}.rmpd-cap{color:var(--muted);margin:0;font-size:12px;line-height:1.3}.rmpd-num--rating .rmpd-cap{color:inherit}.rmpd-part{border-top:1px solid var(--line-soft);padding:18px 0 20px}.rmpd-k{letter-spacing:.05em;text-transform:uppercase;color:var(--subtle);margin:0 0 10px;font-size:11.5px;font-weight:600}.rmpd-says{color:var(--ink);margin:0;font-size:15px;line-height:1.55}.rmpd-basis{color:var(--subtle);margin:6px 0 0;font-size:12px}.rmpd-tags{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.rmpd-tags li{background:var(--marigold-soft);color:var(--ochre);border-radius:99px;padding:3px 10px;font-size:12px;font-weight:600}.m-list{display:grid}.m-row{grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:8px 0;font-size:13px;display:grid}.m-row+.m-row{border-top:1px solid var(--line-soft)}.m-c{min-width:0}.m-c b{font-weight:600}.m-c small{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;display:block;overflow:hidden}.m-w{color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:12px}.m-row .act{max-width:180px;height:30px}.m-in{color:var(--sage);align-items:center;gap:4px;font-size:12px;font-weight:600;display:inline-flex}.m-bad{color:var(--muted);font-size:12px}.rv-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.rv-head .rmpd-k{margin:0}.switch{background:var(--sand);border-radius:10px;gap:2px;padding:3px;display:flex}.switch button{color:var(--muted);white-space:nowrap;background:0 0;border:0;border-radius:7px;padding:4px 10px;font-size:12.5px;font-weight:500}.switch button span{font-variant-numeric:tabular-nums;opacity:.8;margin-left:3px}.switch button[aria-pressed=true]{background:var(--forest);color:var(--cream);font-weight:600}.rv-list{gap:8px;display:grid}.rv-item{background:#f6f2e8;border-radius:16px;padding:12px 14px}.rv-item p{color:var(--ink);margin:8px 0 0;font-size:14px;line-height:1.55}.rv-meta{color:var(--muted);align-items:center;gap:8px;font-size:12px;display:flex}.rv-what{color:var(--ink-2);font-weight:500}.rv-extra{white-space:nowrap;margin-left:auto}.rv-q{font-variant-numeric:tabular-nums;border-radius:5px;padding:2px 6px;font-size:11.5px;font-weight:700}.rv-q.rmp--hi{background:var(--rmp-hi-bg);color:var(--rmp-hi)}.rv-q.rmp--mid{background:var(--rmp-mid-bg);color:var(--rmp-mid)}.rv-q.rmp--lo{background:var(--rmp-lo-bg);color:var(--rmp-lo)}.rv-foot{justify-content:space-between;align-items:center;gap:12px;margin-top:10px;display:flex}.rv-foot:empty{display:none}.rv-status,.rv-note{color:var(--muted);margin:0;font-size:12.5px}.rmpd-foot{border-top:1px solid var(--line-soft);color:var(--subtle);justify-content:space-between;align-items:center;gap:12px;padding-top:14px;font-size:12px;display:flex}.rmpd-foot a{color:var(--clay);align-items:center;gap:5px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}.rmpd-foot a:hover{text-underline-offset:3px;text-decoration:underline}@media (max-width:480px){.rmpd-nums{grid-template-columns:1fr 1fr}.rmpd-num--rating{grid-column:1/-1}.rv-meta{flex-wrap:wrap}.rv-extra{width:100%;margin-left:0}}.toast{--ink:var(--forest);left:calc((100vw - var(--side)) / 2);opacity:0;pointer-events:none;background:var(--ink);color:var(--ivory);transition:opacity .2s, transform .25s var(--ease);z-index:90;white-space:nowrap;border-radius:99px;align-items:center;gap:10px;max-width:90vw;padding:7px 7px 7px 18px;font-size:13.5px;display:flex;position:fixed;bottom:24px;transform:translate(-50%,12px);box-shadow:0 14px 34px #1c1b1738}.toast.show{opacity:1;pointer-events:auto;transform:translate(-50%)}.toast span{text-overflow:ellipsis;overflow:hidden}.toast button{color:#fff;background:#ffffff24;border:0;border-radius:99px;flex:none;padding:6px 12px;font-weight:600}.toast button:hover{background:#ffffff3d}.toast .toast-x{background:0 0;width:28px;padding:6px 0;font-size:16px;line-height:1}.toast :focus-visible{outline-color:#fff}@media (max-width:900px){.bar{padding:12px 14px 0}.app{padding:0 16px;display:block}.main{--gut:0px;padding:0 0 72px}.main .box{border-left:1px solid var(--line);border-radius:16px}.ccode{font-size:13.5px}.ccode .crn{font-size:12px}.phone-deadline{padding-top:14px;display:block}.mw-hours span{font-size:9px}.blk b{font-size:11px}.landing{--row-h:40px;padding-top:20px}.toast{left:50%;bottom:calc(16px + env(safe-area-inset-bottom));max-width:calc(100vw - 24px)}.fbar{scrollbar-width:none;flex-wrap:nowrap;margin:0 -16px;padding:12px 16px 10px;overflow-x:auto}.fbar::-webkit-scrollbar{display:none}.fbar .pop-wrap,.rhead .pop-wrap{position:static}.pop,.pop--wide,.pop--right{width:auto;max-height:80vh;overscroll-behavior:contain;max-height:80dvh;padding:8px 12px calc(16px + env(safe-area-inset-bottom));z-index:75;animation:sheet .22s var(--ease);border-radius:20px 20px 0 0;flex-direction:column;display:flex;position:fixed;inset:auto 0 0;overflow:hidden;box-shadow:0 -10px 40px #1c1b172e}.pop>*{flex:none}.pop>.opts{flex:auto;min-height:0}.pop--wide{height:80vh;height:80dvh}.pop-head{font:600 17px var(--display);justify-content:space-between;align-items:center;padding:6px 4px 10px;display:flex}.pop-done{background:var(--sand);font:600 13px var(--sans);border:0;border-radius:99px;padding:6px 14px}.opts{align-content:start;max-height:none}.opts--two{grid-template-columns:1fr}.opt{padding:10px 8px;font-size:15px}.slots-row{grid-template-columns:84px repeat(5,minmax(0,1fr))}.slots button{width:100%;height:40px}.quick{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.quick .chip{background:var(--forest);color:#fff;white-space:normal;text-align:left;border:0;border-radius:16px;gap:10px;height:54px;padding:0 12px 0 10px;font-size:14.5px;font-weight:600;line-height:1.15;box-shadow:0 1px 2px #14211b1f,0 6px 14px #14211b1a}.quick .chip svg{box-sizing:content-box;color:#fff;background:#ffffff24;border-radius:50%;flex:none;padding:8px;box-shadow:inset 0 0 0 1px #ffffff1a}.quick .chip:last-child:nth-child(odd){grid-column:1/-1}.quick .chip:active{background:var(--forest-2)}.quick .chip:focus-visible{outline:2px solid var(--marigold);outline-offset:2px}.main .box.list{box-shadow:none;background:0 0;border:0;border-radius:0;gap:10px;display:grid;overflow:visible}.main .list>.course{border:1px solid var(--line);background:var(--white);-webkit-tap-highlight-color:transparent;border-radius:18px;overflow:hidden;box-shadow:0 1px 2px #14211b0d,0 4px 12px #14211b0d}.main .list>.course.open{border-color:var(--line-strong)}.course .chead:active{background:var(--sand)}.list .dept-h{border-top:0;padding:12px 4px 0}.dialog{width:100%;margin:auto 0 0}.dialog-body,.dialog--block .dialog-body,.dialog--rmp .dialog-body{width:100%;max-height:88vh;padding-bottom:calc(20px + env(safe-area-inset-bottom));animation:sheet .24s var(--ease);border:0;border-radius:22px 22px 0 0}.dialog--anchored::backdrop{background:#1c1b174d}}@keyframes sheet{0%{opacity:0;transform:translateY(24px)}}@media (max-width:640px){.chead{grid-template-columns:58px minmax(0,1fr) auto 30px;grid-template-areas:"code title title chev"".when when."".profs status status";column-gap:10px;padding:14px}.chead .status{align-self:center}.chead .chev{box-sizing:content-box;background:var(--sand);color:var(--ink);border-radius:50%;margin:-4px 0 0 -6px;padding:8px}.chead .pmore{display:none}.rule-list{column-gap:10px;padding:4px 10px}.rule-list button{gap:6px;padding:0 4px 0 6px;font-size:13.5px;line-height:1.2}.rule-list .rl-name{white-space:normal;-webkit-hyphens:auto;hyphens:auto}.rule-list button:after{width:8px}.rule-list button:active{background:#fdf1d3;border-radius:8px}.rhead h1{font-size:25px}.cbody{padding:0 14px 16px}.act{max-width:170px}.m-row{grid-template-columns:minmax(0,1fr) auto}.m-w{grid-area:2/1}.m-row .act,.m-in,.m-bad{grid-area:1/2/3}}@media (max-width:380px){.quick .chip{gap:8px;padding:0 8px;font-size:13.5px}.quick .chip svg{padding:6px}.brand-name{font-size:24px}.profs .pchip,.profs .staff{font-size:14px}}
