.schedules{--hour-h: 44px}.sp-plans-bar{margin-bottom:16px}.sp-plans{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:0 20px;overflow-x:auto;scrollbar-width:none}.sp-plans::-webkit-scrollbar{display:none}.sp-rename{font:inherit;font-size:15px;font-weight:600;width:180px;padding:2px 8px;margin:-3px 0;border:1px solid var(--accent);border-radius:6px;background:transparent;color:var(--ink)}.sp-rename:focus{outline:none}.sp-actions{gap:16px}.sp-confirm{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px 12px;font-size:13px;color:var(--ink)}.sp-totals{display:flex;flex-wrap:wrap;gap:4px 24px;margin:0 0 16px;font-size:13px;color:var(--muted)}.sp-totals strong{font-size:18px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums;margin-right:2px}.sp-totals .bad,.sp-totals .bad strong{color:var(--accent)}.sp-add{display:flex;align-items:flex-start;gap:12px}.sp-add .planner-search{flex:1;min-width:0}.sp-add .lib-seg{flex:none;margin-top:2px}.planner-search{position:relative}.planner-search-input{font:inherit;font-size:15px;width:100%;max-width:480px;padding:6px 12px;border:1px solid var(--border);border-radius:8px;background:transparent;color:var(--ink)}.planner-search-input:focus{outline:none;border-color:var(--accent)}.planner-results{list-style:none;max-width:640px;margin:4px 0 0;padding:4px;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow)}.planner-results>li.sp-muted{padding:8px}.planner-result{all:unset;box-sizing:border-box;width:100%;display:grid;grid-template-columns:auto 1fr auto auto;align-items:baseline;gap:4px 12px;padding:8px;border-radius:6px;cursor:pointer;font-size:13px}.planner-result:hover:not(:disabled),.planner-result:focus-visible{background:var(--grid)}.planner-result:disabled{cursor:default;opacity:.5}.planner-result-code{font-weight:600;white-space:nowrap}.planner-result-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-2)}.planner-result-add{font-weight:600;color:var(--accent);white-space:nowrap}.sp-muted{color:var(--muted);font-size:13px}.sp-starred{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px}.sp-starred-label{font-size:13px;color:var(--muted);margin-right:4px}.sp-conflicts{list-style:none;margin:16px 0 0;padding:0;font-size:13px;color:var(--accent)}.sp-conflicts li+li{margin-top:4px}.sp-hint{color:var(--muted)}.planner-cal{display:grid;grid-template-columns:32px repeat(5,minmax(0,1fr));grid-template-rows:auto calc(var(--hours) * var(--hour-h));margin-top:24px}.planner-cal-day{text-align:center;font-size:13px;color:var(--muted);padding-bottom:8px;border-bottom:1px solid var(--grid)}.planner-cal-corner{border-bottom:1px solid var(--grid)}.planner-cal-gutter{position:relative}.planner-cal-gutter span{position:absolute;right:6px;transform:translateY(-50%);font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.planner-cal-gutter span:first-child{transform:none}.planner-cal-lane{position:relative;border-left:1px solid var(--grid);overflow:hidden}.planner-cal-line{position:absolute;left:0;right:0;border-top:1px solid color-mix(in srgb,var(--grid) 55%,transparent)}.planner-overlap{position:absolute;left:0;right:0;z-index:0;pointer-events:none;background:repeating-linear-gradient(-45deg,transparent 0 5px,color-mix(in srgb,var(--accent) 16%,transparent) 5px 7px)}.planner-event{all:unset;box-sizing:border-box;position:absolute;z-index:1;display:flex;flex-direction:column;gap:2px;padding:4px 6px;min-height:20px;overflow:hidden;border-radius:6px;background:color-mix(in srgb,var(--ink) 6%,var(--page));border-left:3px solid var(--baseline);cursor:pointer;color:var(--ink)}.planner-event:hover{background:color-mix(in srgb,var(--ink) 10%,var(--page))}.planner-event:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.planner-event.conflict{background:color-mix(in srgb,var(--accent) 12%,var(--page));border-left-color:var(--accent)}.planner-event-code{font-size:12px;font-weight:600;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.planner-event.conflict .planner-event-code{color:var(--accent)}.planner-event-time{font-size:12px;line-height:1.2;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sp-unplaced{font-size:13px;color:var(--muted);margin-top:12px}.sp-unplaced p{margin:4px 0}.sp-rows{list-style:none;margin:24px 0 0;padding:0;border-top:1px solid var(--grid)}.sp-row{display:grid;align-items:center;gap:8px 16px;padding:8px 0;border-bottom:1px solid var(--grid)}.sp-row.compact{grid-template-columns:112px minmax(0,1fr) auto}.sp-row.full{grid-template-columns:minmax(0,1.3fr) minmax(0,1.4fr) 136px auto;padding:12px 0}.sp-code{font-weight:600;font-size:13px;color:var(--ink);text-decoration:none;white-space:nowrap}.sp-code:hover{text-decoration:underline}.sp-row.conflict .sp-code{color:var(--accent)}.sp-row.conflict .sp-code:before{content:"⚠ "}.sp-select{font:inherit;font-size:13px;width:100%;max-width:520px;min-width:0;padding:4px 8px;border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--ink);text-overflow:ellipsis}.sp-select option{background:var(--surface);color:var(--ink)}.sp-section-one{font-size:13px;color:var(--ink-2);min-width:0;overflow-wrap:anywhere}.sp-row.flash{animation:sp-flash 1.2s ease-out}@keyframes sp-flash{0%{background:color-mix(in srgb,var(--accent) 14%,transparent)}to{background:transparent}}.sp-row-main{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px;min-width:0}.sp-row-title{font-size:13px;color:var(--ink-2);min-width:0;overflow-wrap:anywhere}.sp-row-section{min-width:0}.sp-row-stats{display:flex;flex-direction:column;font-size:13px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}.sp-row-stats strong{color:var(--ink);font-weight:600}.sp-row-stats-src{font-size:12px;overflow:hidden;text-overflow:ellipsis}.sp-badge{font-size:13px;color:var(--muted);white-space:nowrap}.sp-badge.bad{color:var(--accent)}@media(max-width:640px){.schedules{--hour-h: 40px}.sp-actions{width:100%;justify-content:flex-end;padding:4px 0}.sp-plans-bar{border-bottom:none}.sp-plans{flex-basis:100%;border-bottom:1px solid var(--grid);-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 24px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 24px),transparent);padding-right:24px}.sp-totals{gap:4px 16px}.sp-add{flex-direction:column-reverse;align-items:stretch}.sp-add .lib-seg{align-self:flex-end}.planner-search-input,.sp-rename,.sp-select{font-size:16px}.planner-result{grid-template-columns:auto 1fr auto}.planner-result-title{grid-column:1 / -1;grid-row:2;white-space:normal}.planner-result>.sp-muted{display:none}.planner-result-add{grid-column:3;grid-row:1;justify-self:end}.planner-cal{grid-template-columns:24px repeat(5,minmax(0,1fr))}.planner-cal-gutter span{right:4px}.planner-event{padding:2px 3px;border-left-width:2px}.planner-event-code{white-space:normal;text-overflow:clip}.planner-event-part{display:block;white-space:nowrap;overflow:hidden}.planner-event-time{display:none}.sp-row.compact{grid-template-columns:minmax(0,1fr) auto}.sp-row.compact .sp-select,.sp-row.compact .sp-section-one,.sp-row.compact>.sp-muted{grid-column:1 / -1;grid-row:2}.sp-row.full{grid-template-columns:minmax(0,1fr) auto}.sp-row-main{grid-column:1;grid-row:1}.sp-row.full>.compare-remove{grid-column:2;grid-row:1}.sp-row-section{grid-column:1 / -1}.sp-row-stats{grid-column:1 / -1;flex-direction:row;flex-wrap:wrap;gap:4px 16px}}.schedules .lib-head-actions{flex-wrap:wrap;justify-content:flex-end}.plan-view-bar{display:flex;align-items:center;gap:var(--space-3);margin:0 0 var(--space-4)}.plan-sched{--pc0: #2a78d6;--pc1: #2f8f4e;--pc2: #b7791f;--pc3: #7c5cc4;--pc4: #0f8b8d;--pc5: #c4622d;--pc6: #b4508a;--pc7: #5b6b82}@media(prefers-color-scheme:dark){.plan-sched{--pc0: #5d9be6;--pc1: #58b073;--pc2: #d29a43;--pc3: #9d83dc;--pc4: #3fb1b3;--pc5: #e08452;--pc6: #d27aac;--pc7: #8494ac}}.plan-sched .pc0{--pc: var(--pc0)}.plan-sched .pc1{--pc: var(--pc1)}.plan-sched .pc2{--pc: var(--pc2)}.plan-sched .pc3{--pc: var(--pc3)}.plan-sched .pc4{--pc: var(--pc4)}.plan-sched .pc5{--pc: var(--pc5)}.plan-sched .pc6{--pc: var(--pc6)}.plan-sched .pc7{--pc: var(--pc7)}.plan-sched-note{margin:0 0 var(--space-5);font-size:var(--fs-sm);color:var(--muted);max-width:820px}.plan-sched .bad{color:var(--accent)}.plan-sched{container:plan-sched / inline-size}.plan-sched-terms{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-6) var(--space-5)}@container plan-sched (min-width: 560px){.plan-sched-terms{grid-template-columns:repeat(2,minmax(0,1fr))}}@container plan-sched (min-width: 1240px){.plan-sched-terms{grid-template-columns:repeat(4,minmax(0,1fr))}}.plan-sched-term{min-width:0}.plan-sched-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px var(--space-3);margin-bottom:var(--space-2)}.plan-sched-name{margin:0;font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--ink)}.plan-sched-summary{display:flex;flex-wrap:wrap;gap:0 var(--space-3);margin:0;font-size:var(--fs-xs);color:var(--muted)}.plan-sched-summary strong{color:var(--ink);font-weight:var(--fw-bold);font-variant-numeric:tabular-nums}.plan-sched-summary .bad strong{color:var(--accent)}.plan-sched-empty{margin:0;padding:var(--space-3) 0;font-size:var(--fs-sm);color:var(--muted);border-top:1px solid var(--grid)}.schedule-grid.plan-sched-cal{--hour-h: 20px;grid-template-columns:26px repeat(5,minmax(0,1fr));margin-top:0}.plan-sched-cal .schedule-day{font-size:var(--fs-xs);padding-bottom:4px}.plan-sched-cal .schedule-gutter .schedule-lane span{right:4px;font-size:10px}.schedule-event.plan-sched-event{font:inherit;color:var(--ink);text-align:left;cursor:pointer;justify-content:flex-start;gap:0;padding:1px 3px;min-height:0;border:none;border-left:2px solid var(--pc, var(--baseline));border-radius:3px;background:color-mix(in srgb,var(--pc, var(--ink)) 14%,var(--page))}.schedule-event.plan-sched-event:hover{background:color-mix(in srgb,var(--pc, var(--ink)) 24%,var(--page))}.schedule-event.plan-sched-event.estimated{border-left-style:dashed}.schedule-event.plan-sched-event.conflict{background:color-mix(in srgb,var(--accent) 16%,var(--page));border-left-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.plan-sched-event .schedule-event-code{font-size:10px;line-height:1.15;white-space:normal;text-overflow:clip}.plan-sched-event .schedule-event-part{display:block;white-space:nowrap;overflow:hidden}.plan-sched-event.conflict .schedule-event-code{color:var(--accent)}.plan-sched-sec{color:var(--ink-2);font-weight:var(--fw-regular)}.plan-sched-rows{list-style:none;margin:var(--space-2) 0 0;padding:0}.plan-sched-row{display:flex;align-items:center;gap:6px;min-width:0;padding:3px 0;font-size:var(--fs-xs);border-top:1px solid color-mix(in srgb,var(--grid) 60%,transparent)}.plan-sched-dot{flex:none;width:8px;height:8px;border-radius:2px;background:var(--pc, var(--baseline))}.plan-sched-row.conflict .plan-sched-dot{background:var(--accent)}.plan-sched-code{flex:none;font-weight:var(--fw-bold);color:var(--ink);text-decoration:none;white-space:nowrap}.plan-sched-code:hover{text-decoration:underline}.plan-sched-row.conflict .plan-sched-code{color:var(--accent)}.plan-sched-time{min-width:0;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plan-sched-select{flex:1 1 auto;min-width:0;max-width:100%;font:inherit;font-size:var(--fs-xs);color:var(--ink-2);background:transparent;border:1px solid var(--border);border-radius:4px;padding:1px 2px;text-overflow:ellipsis}.plan-sched-select:focus{outline:none;border-color:var(--accent);color:var(--ink)}.plan-sched-select option{background:var(--surface);color:var(--ink)}.plan-sched-tag{flex:none;font-size:var(--fs-xs);color:var(--muted);white-space:nowrap}.plan-sched-tag.bad{color:var(--accent)}.plan-sched-untimed{margin:var(--space-2) 0 0;font-size:var(--fs-xs);color:var(--muted)}.plan-sched-untimed a{color:var(--ink-2);text-decoration:none}.plan-sched-untimed a:hover{text-decoration:underline}@media(max-width:700px){.schedule-grid.plan-sched-cal{--hour-h: 30px}.plan-sched-select{font-size:16px}}.conc-picker{position:relative;display:flex;flex-direction:column;gap:var(--space-2)}.conc-picker .conc-picker-button,.conc-picker .conc-track-select{width:100%;max-width:none;height:36px;border-radius:var(--radius-sm);font-size:var(--fs-base);color:var(--ink)}.conc-picker-button{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2);text-align:left;cursor:pointer}.conc-picker-button[aria-expanded=true] .plan-chev{transform:rotate(-135deg);margin-bottom:-3px}.conc-picker-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conc-picker .conc-track-select{font-size:var(--fs-sm);color:var(--ink-2)}.conc-picker-pop{position:absolute;top:40px;left:0;right:0;z-index:20;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-float);padding:var(--space-2)}.conc-picker-input{width:100%;box-sizing:border-box;border-color:var(--border)}.conc-picker-input:focus{border-color:var(--accent)}.conc-picker-list{max-height:340px;overflow-y:auto;margin-top:var(--space-2)}.conc-picker-division{font-size:var(--fs-sm);color:var(--muted);padding:var(--space-3) var(--space-2) var(--space-1)}.conc-option,.conc-option-header{font:inherit;font-size:var(--fs-sm);width:100%;display:flex;justify-content:space-between;gap:var(--space-2);text-align:left;padding:6px var(--space-2);border-radius:var(--radius-sm)}.conc-option{color:var(--ink);background:none;border:none;cursor:pointer}.conc-option.track{padding-left:var(--space-5)}.conc-option.active{background:var(--fill)}.conc-option.selected{font-weight:var(--fw-bold);color:var(--accent)}.conc-option-header{font-weight:var(--fw-bold);color:var(--ink-2);box-sizing:border-box}.conc-option-sub{font-size:var(--fs-sm);color:var(--muted);font-weight:var(--fw-regular);white-space:nowrap}.conc-option-clear{color:var(--muted)}.conc-picker-none{padding:var(--space-2);font-size:var(--fs-sm);color:var(--muted)}@media(max-width:700px){.conc-picker-input{font-size:16px}}.conc-track-field{display:flex;flex-direction:column;gap:2px}.conc-track-label{font-size:var(--fs-sm);color:var(--muted)}.pc-note{margin:var(--space-1) 0 var(--space-2);font-size:var(--fs-sm);color:var(--muted)}.pc-empty{margin:0 0 var(--space-2);font-size:var(--fs-sm);color:var(--muted)}.pc-list{list-style:none;margin:0 0 var(--space-2);padding:0;display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-2)}.pc-chip{display:inline-flex;align-items:center;gap:2px;padding:1px 2px 1px 8px;border:1px solid var(--border);border-radius:999px;font-size:var(--fs-sm);white-space:nowrap}.pc-chip a{color:inherit;text-decoration:none}.pc-chip a:hover{color:var(--accent);text-decoration:underline}.pc-remove{border:0;background:none;color:var(--muted);cursor:pointer;font-size:11px;line-height:1;padding:3px 5px;border-radius:999px}.pc-remove:hover{color:var(--ink);background:var(--grid)}.pc-actions{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-1)}.pc-quick{display:flex;flex-wrap:wrap;gap:var(--space-1)}.pc-quick-btn{border:1px dashed var(--border-strong);background:none;color:var(--muted);cursor:pointer;font:inherit;font-size:var(--fs-xs);padding:1px 7px;border-radius:999px;white-space:nowrap}.pc-quick-btn:hover,.pc-quick-btn:focus-visible{color:var(--accent);border-color:var(--accent)}.pc-picker{position:relative}.pc-waived{display:inline-flex;align-items:baseline;gap:4px;margin-left:6px;font-size:11px;font-weight:400;font-style:italic;color:var(--muted);white-space:nowrap}.pc-waived-undo{border:0;background:none;padding:0;cursor:pointer;font:inherit;font-style:normal;color:var(--muted);text-decoration:underline;text-underline-offset:2px}.pc-waived-undo:hover{color:var(--accent)}.pc-waive{font-size:var(--fs-sm);white-space:nowrap}.planner .lib-head{margin-bottom:var(--space-2)}.plan-totals{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-5);margin:0 0 var(--space-5);font-size:var(--fs-sm);color:var(--muted)}.plan-totals strong{font-size:var(--fs-md);font-weight:var(--fw-bold);color:var(--ink);font-variant-numeric:tabular-nums;margin-right:2px}.planner .plan-panes{display:none;margin-bottom:var(--space-4);justify-content:flex-start;gap:0 var(--space-5)}.plan-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:var(--space-6);align-items:start}.plan-side{padding:0 var(--space-1) var(--space-5) var(--space-5);border-left:1px solid var(--hairline)}.plan-years{container:plan-years / inline-size;min-width:0;display:flex;flex-wrap:wrap;gap:var(--space-6) var(--space-8, 48px)}.plan-year{flex:1 1 100%;min-width:0}.plan-year-name{margin:0 0 var(--space-2);font-size:var(--fs-sm);font-weight:var(--fw-regular);color:var(--muted)}.plan-year-terms{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-6)}.plan-term{min-width:0}@container plan-years (max-width: 699px){.plan-year-terms{grid-template-columns:minmax(0,1fr);gap:var(--space-5)}}@container plan-years (min-width: 1480px){.plan-year{flex-basis:calc(50% - var(--space-8, 48px) / 2)}}.plan-grid{display:grid;grid-template-columns:minmax(0,1fr) 44px 44px 60px;align-items:center;column-gap:var(--space-2)}.plan-num{text-align:right;font-variant-numeric:tabular-nums}.plan-term-head{padding-bottom:var(--space-2);border-bottom:1px solid var(--baseline)}.plan-term-head h3{display:flex;align-items:center;gap:var(--space-1);margin:0;font-size:var(--fs-base);font-weight:var(--fw-bold);min-height:28px}.plan-col{font-size:var(--fs-sm);color:var(--muted);cursor:help}.plan-rows{list-style:none;margin:0;padding:0}.plan-slot{border-bottom:1px solid var(--hairline)}.plan-row{padding:var(--space-2) 0}.plan-course{display:flex;flex-direction:column;min-width:0;text-decoration:none;color:inherit}.plan-code{font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--ink)}.plan-title{font-size:var(--fs-sm);color:var(--ink-2);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;overflow-wrap:anywhere}.plan-course:hover .plan-code{color:var(--accent);text-decoration:underline}.plan-score,.plan-hours{font-size:var(--fs-base);color:var(--ink)}.plan-actions{display:flex;justify-content:flex-end;align-items:center;gap:2px}.plan-move{-webkit-appearance:none;appearance:none;font:inherit;font-size:var(--fs-sm);width:28px;height:28px;padding:0;text-align:center;text-align-last:center;color:var(--muted);background:none;border:none;border-radius:var(--radius-sm);cursor:pointer}.plan-move:hover,.plan-move:focus-visible{color:var(--ink);background:var(--fill)}.plan-icon-btn{font:inherit;font-size:var(--fs-sm);width:28px;height:28px;color:var(--muted);background:none;border:none;border-radius:var(--radius-sm);cursor:pointer}.plan-icon-btn:hover{color:var(--ink);background:var(--fill)}@media(hover:hover){.plan-row .plan-actions{opacity:0;transition:opacity .12s}.plan-row:hover .plan-actions,.plan-row:focus-within .plan-actions{opacity:1}}.plan-empty-row{border-bottom-color:transparent}.plan-empty-row~.plan-empty-row:not(.extra):not(.picking){display:none}.plan-empty{display:flex;align-items:center;justify-content:space-between;min-height:40px}.plan-empty .plan-add{opacity:.85}.plan-term.is-empty .plan-col{visibility:hidden}.plan-add{flex:1;display:flex;align-items:center;gap:var(--space-2);align-self:stretch;font:inherit;font-size:var(--fs-sm);color:var(--muted);text-align:left;background:none;border:none;padding:0;cursor:pointer}.plan-add span{font-size:var(--fs-base);width:12px;text-align:center}.plan-add-note{font-style:normal;font-size:var(--fs-xs);color:var(--muted);opacity:.85;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plan-add-note:before{content:"· "}.plan-add:hover,.plan-add:focus-visible{color:var(--accent)}.plan-term-foot{padding-top:var(--space-2);font-size:var(--fs-sm);color:var(--muted)}.plan-term-foot .plan-num{color:var(--ink-2);font-weight:var(--fw-bold)}.plan-unknown{color:var(--muted);font-weight:var(--fw-regular);margin-left:2px;cursor:help}.plan-picker{position:relative;display:flex;align-items:center;gap:var(--space-1);min-height:44px}.plan-picker-input{font:inherit;font-size:var(--fs-sm);flex:1;min-width:0;height:32px;padding:0 var(--space-2);color:var(--ink);background:transparent;border:1px solid var(--accent);border-radius:var(--radius-sm)}.plan-picker-input:focus{outline:none}.plan-picker-results{position:absolute;top:calc(100% - 6px);left:0;right:0;z-index:15;margin:0;padding:var(--space-1);list-style:none;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-float);max-height:320px;overflow-y:auto}.plan-picker-hit{font:inherit;font-size:var(--fs-sm);width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:var(--space-2);align-items:baseline;text-align:left;color:var(--ink);background:none;border:none;border-radius:var(--radius-sm);padding:6px var(--space-2);cursor:pointer}.plan-picker-hit.active{background:var(--fill)}.plan-picker-hit.taken{display:block;cursor:default}.plan-picker-hit.taken .plan-hit-title{display:block;color:var(--muted)}.plan-picker-hit.taken .plan-hit-code{color:var(--ink-2)}.plan-hit-code{font-weight:var(--fw-bold);white-space:nowrap}.plan-hit-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink-2)}.plan-hit-stats{color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}.plan-picker-empty{position:absolute;top:calc(100% - 8px);left:0;font-size:var(--fs-sm);color:var(--muted)}.plan-side-section+.plan-side-section{margin-top:var(--space-6);padding-top:var(--space-5);border-top:1px solid var(--hairline)}.plan-section-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-3)}.plan-section-title{margin:0;font-size:var(--fs-md);font-weight:var(--fw-bold)}.plan-section-count{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-sm);color:var(--muted);font-variant-numeric:tabular-nums}.plan-section-count strong{color:var(--ink);font-weight:var(--fw-bold)}.plan-hint{font-size:var(--fs-sm);color:var(--muted);margin:var(--space-3) 0 0}.ring{flex:none;display:block}.ring-bg{fill:none;stroke:var(--fill-strong);stroke-width:2.5}.ring-fg{fill:none;stroke:var(--series);stroke-width:2.5;stroke-linecap:round}.ring.done .ring-fg{stroke:var(--positive)}.plan-side summary{list-style:none;cursor:pointer}.plan-side summary::-webkit-details-marker{display:none}.plan-side summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}.plan-chev{flex:none;width:7px;height:7px;margin:0 4px 3px;border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);transform:rotate(45deg);transition:transform .15s}details[open]>summary .plan-chev{transform:rotate(-135deg);margin-bottom:-3px}.plan-overview{margin:0 0 var(--space-5);padding:var(--space-1) var(--space-3);background:var(--fill);border-radius:var(--radius)}.plan-overview ul{list-style:none;margin:0;padding:0}.plan-overview li+li{border-top:1px solid var(--hairline)}.plan-ov-row{font:inherit;width:100%;min-height:36px;display:flex;align-items:center;gap:var(--space-2);padding:0;text-align:left;color:var(--ink);background:none;border:none;cursor:pointer}.plan-ov-name{flex:1;min-width:0;font-size:var(--fs-base);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plan-ov-kind{font-size:var(--fs-sm);color:var(--muted)}.plan-ov-count{flex:none;font-size:var(--fs-sm);color:var(--muted);font-variant-numeric:tabular-nums}.plan-ov-row.done .plan-ov-count{color:var(--positive)}.plan-ov-row:hover .plan-ov-name{color:var(--accent)}.plan-ov-row:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}.plan-progress{margin-top:var(--space-4);font-size:var(--fs-sm)}.plan-progress+.plan-progress{margin-top:var(--space-5)}.plan-progress-summary{display:flex;align-items:flex-start;gap:var(--space-2);margin-bottom:var(--space-2)}.plan-progress-summary>.ring{margin-top:1px}.plan-progress-text{flex:1;min-width:0;display:flex;flex-direction:column}.plan-progress-heading{margin:0;font-size:var(--fs-base);font-weight:var(--fw-bold);line-height:1.35}.plan-progress-kicker{font-weight:var(--fw-regular);color:var(--muted)}.plan-progress-sub{color:var(--muted)}.plan-progress-sub strong{color:var(--ink-2);font-weight:var(--fw-bold);font-variant-numeric:tabular-nums}.plan-groups{border-top:1px solid var(--hairline)}.plan-group{border-bottom:1px solid var(--hairline)}.plan-group-sum,.gen-sum{display:flex;align-items:center;gap:var(--space-2);min-height:40px}.plan-group-name{flex:1;min-width:0;font-size:var(--fs-base);color:var(--ink)}.plan-group.done .plan-group-name{color:var(--ink-2)}.plan-group-sum:hover .plan-group-name{color:var(--accent)}.plan-group .plan-req-list{padding:0 0 var(--space-2) var(--space-5)}.plan-req-list{list-style:none;margin:0;padding:0}.plan-req-sum{display:flex;align-items:center;gap:var(--space-2);min-height:32px;padding:2px 0}.plan-req-sum>.ring,.plan-req-sum>.plan-req-manual{align-self:flex-start;margin-top:7px}.plan-req-manual{flex:none;width:14px;height:14px;border:1.5px dashed var(--baseline);border-radius:50%;box-sizing:border-box}.plan-req-label{flex:1;min-width:0;color:var(--ink);line-height:1.4;padding:5px 0}.plan-req.done>details>summary .plan-req-label,.plan-req.manual>details>summary .plan-req-label{color:var(--muted)}.plan-req-sum:hover .plan-req-label{color:var(--accent)}.plan-req-count{flex:none;font-size:var(--fs-sm);color:var(--muted);font-variant-numeric:tabular-nums}.plan-req.done .plan-req-count{color:var(--positive)}.plan-req-have{color:inherit}.plan-req-more{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:0 0 var(--space-2) 22px;font-size:var(--fs-sm);color:var(--muted)}.plan-req-courses{color:var(--ink-2);overflow-wrap:anywhere}.plan-req.todo .plan-req-courses,.plan-req-note{color:var(--muted)}.plan-req-areas{display:flex;flex-wrap:wrap;gap:2px var(--space-2);color:var(--muted)}.plan-areas-head{color:var(--muted)}.plan-area{white-space:nowrap}.plan-area.done{color:var(--ink-2)}.plan-area.done .plan-area-mark{color:var(--positive)}.planner .conc-flag{margin-left:6px;font-size:var(--fs-sm);font-style:normal;color:var(--muted);border-bottom:1px dotted var(--baseline);cursor:help}.gen-list{border-top:1px solid var(--hairline);font-size:var(--fs-sm)}.gen-req{border-bottom:1px solid var(--hairline)}.gen-sum .plan-req-label{font-size:var(--fs-base);padding:0}.gen-req.done .gen-sum .plan-req-label{color:var(--ink-2)}.gen-sum>.ring{align-self:center;margin:0 1px}.gen-body{padding:0 0 var(--space-3) var(--space-5);gap:var(--space-1)}.gen-slots{display:flex;flex-direction:column;align-self:stretch}.gen-slot{display:flex;justify-content:space-between;gap:var(--space-2);color:var(--muted);padding:2px 0}.gen-slot-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.gen-slot-course{flex:none;font-variant-numeric:tabular-nums}.gen-slot.filled .gen-slot-course{color:var(--ink)}.gen-credits{font-weight:var(--fw-regular);color:inherit}.gen-placed{display:flex;gap:var(--space-2);align-items:center;color:var(--ink-2);cursor:pointer}.gen-placed input{accent-color:var(--accent);margin:0}.gen-warn{display:block;padding:0 0 var(--space-2) var(--space-5);font-size:var(--fs-sm);color:var(--accent)}.gen-notes{display:flex;flex-direction:column;gap:2px;margin-top:var(--space-1)}.plan-about{margin-top:var(--space-2);font-size:var(--fs-sm);color:var(--muted)}.plan-about>summary{width:max-content;max-width:100%;padding:4px 0}.plan-about>summary:before{content:"+ "}.plan-about[open]>summary:before{content:"− "}.plan-about>summary:hover{color:var(--ink)}.plan-notes{margin:var(--space-1) 0 0;padding-left:var(--space-4);color:var(--ink-2)}.plan-notes li+li{margin-top:var(--space-1)}.plan-source{margin:var(--space-2) 0 0}.plan-source a{color:var(--ink-2)}.plan-source a:hover{color:var(--accent)}.plan-mode{flex:none}.plan-pickers{display:grid;grid-template-columns:52px minmax(0,1fr);column-gap:var(--space-2);row-gap:var(--space-1);align-items:start}.plan-joint-field{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.plan-joint-role{font-size:var(--fs-sm);color:var(--muted);line-height:36px}.plan-swap-cell{position:relative;height:0}.planner .plan-joint-swap{position:absolute;left:-4px;top:0;transform:translateY(-50%);width:26px;height:26px;font-size:var(--fs-sm)}.plan-joint-swap:disabled{opacity:.4;cursor:default}.plan-joint-blocked{margin-top:var(--space-4);padding-left:var(--space-3);border-left:2px solid var(--accent);font-size:var(--fs-sm);color:var(--ink-2)}.plan-joint-blocked strong{display:block;color:var(--ink);font-weight:var(--fw-bold)}.plan-joint-blocked ul{margin:var(--space-1) 0;padding-left:var(--space-4)}.plan-joint-blocked>span{color:var(--muted)}.plan-joint-blocked .plan-joint-swap-btn{display:flex;margin:var(--space-2) 0}@media(max-width:960px){.planner .plan-panes{display:flex}.plan-layout{grid-template-columns:minmax(0,1fr)}.plan-side{padding:0;border-left:none}.plan-layout.pane-courses .plan-side,.plan-layout.pane-reqs .plan-years{display:none}.plan-side>*{max-width:560px}}@media(max-width:700px){.plan-year-terms{grid-template-columns:minmax(0,1fr);gap:var(--space-5)}.plan-years{row-gap:var(--space-5)}.plan-grid{grid-template-columns:minmax(0,1fr) 36px 40px 56px}.plan-picker-input{font-size:16px}.plan-totals{gap:var(--space-1) var(--space-4)}}@media(min-width:1500px){.plan-layout{grid-template-columns:minmax(0,1fr) 360px;gap:var(--space-8, 48px)}}.plan-addon{border-bottom:1px solid var(--hairline)}.plan-section-head+.plan-addon{border-top:1px solid var(--hairline)}.plan-addon-toggle{display:flex;align-items:center;gap:var(--space-2);min-height:40px;font-size:var(--fs-base);color:var(--ink);cursor:pointer}.plan-addon-toggle input{accent-color:var(--accent);margin:0}.plan-addon-toggle:has(input:disabled){cursor:default;color:var(--muted)}.plan-addon-sub{margin-left:auto;font-size:var(--fs-sm);color:var(--muted)}.plan-addon-toggle.on .plan-addon-sub{display:none}.plan-addon-body{padding:0 0 var(--space-3) var(--space-5)}.plan-addon-body .plan-progress{margin-top:var(--space-4)}.planner .plan-addon-select{width:100%;max-width:none;height:36px;border-radius:var(--radius-sm);font-size:var(--fs-base)}.plan-addon-warn{margin:var(--space-3) 0 0;padding-left:var(--space-3);border-left:2px solid var(--accent);font-size:var(--fs-sm);color:var(--ink-2)}.plan-facts{margin-top:var(--space-3);display:flex;flex-direction:column;gap:2px}.plan-addon-line{margin:0;font-size:var(--fs-sm);color:var(--muted)}.plan-addon-line strong{color:var(--ink);font-variant-numeric:tabular-nums}.plan-addon-codes{color:var(--muted)}.plan-addon-line.over strong,.plan-addon-flag{color:var(--accent);font-weight:var(--fw-bold)}.plan-addon-facts{list-style:none;margin:var(--space-1) 0 0;padding:0;display:flex;flex-direction:column;gap:var(--space-1);color:var(--ink-2)}.plan-addon-key{color:var(--ink);font-weight:var(--fw-bold)}.plan-addon-body .plan-joint-blocked{margin-top:var(--space-3)}@media(max-width:700px){.planner .plan-addon-select{font-size:16px}.plan-addon-body{padding-left:0}}.plan-req-sum.gen-sum{min-height:40px;padding:0}.plan-conflicts{margin:calc(-1 * var(--space-3)) 0 var(--space-5)}@media(max-width:700px){.plan-empty{min-height:44px}}.plan-section-head{flex-wrap:wrap;column-gap:var(--space-2);row-gap:var(--space-2)}.planner .plan-mode.small button{padding:2px 6px}.plan-shared-banner{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--space-1) var(--space-4);margin:0 0 var(--space-5);padding:var(--space-3) var(--space-4);border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:var(--radius-sm)}.plan-shared-text{margin:0;font-size:var(--fs-base);color:var(--ink);overflow-wrap:anywhere}.plan-shared-sub{grid-column:1;margin:0;font-size:var(--fs-sm);color:var(--ink-2)}.plan-shared-actions{grid-column:2;grid-row:1 / span 2;display:flex;gap:var(--space-2)}.plan-shared-actions .lib-btn{text-decoration:none}.plan-ro-value{margin:var(--space-1) 0 0;font-size:var(--fs-base);font-weight:var(--fw-bold);color:var(--ink)}.plan-ro-sub{margin:2px 0 0;font-size:var(--fs-sm);color:var(--ink-2)}.plan-ro-mode{font-size:var(--fs-sm);color:var(--muted)}.plan-ro-addon{cursor:default}.plan-ro-addon .plan-addon-sub{display:inline}.plan-ro-empty{min-height:40px;display:flex;align-items:center;font-size:var(--fs-sm);color:var(--muted)}.plan-share-error{max-width:520px}.plan-share-error p{color:var(--ink-2);margin:var(--space-2) 0 var(--space-4)}.plan-share-error .lib-btn{display:inline-block;text-decoration:none}@media(max-width:700px){.plan-share{padding:var(--space-3)}.plan-share-name,.plan-share-url{font-size:16px}.plan-share-row{flex-wrap:wrap}.plan-share-row .plan-share-url{flex-basis:100%}.plan-shared-banner{grid-template-columns:minmax(0,1fr)}.plan-shared-actions{grid-column:1;grid-row:auto;margin-top:var(--space-2)}}.plan-head-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px}.plan-head-btn:disabled{opacity:.5;cursor:default}.plan-head-icon{width:14px;height:14px;flex:none;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.plan-autofill .plan-head-icon{fill:currentColor;stroke:none}.plan-share-btn.on{border-color:var(--accent);color:var(--accent)}.lib-head-actions .plan-clear{margin-left:4px}@media(max-width:600px){.plan-head-btn{padding:6px 10px}}.planner,.af-preview{--check-error: var(--accent);--check-warn: #a86400;--check-info: var(--muted)}@media(prefers-color-scheme:dark){.planner,.af-preview{--check-warn: #e0a44a}}.plan-flag{display:inline-flex;vertical-align:-2px;margin-left:5px;width:14px;height:14px;flex:none}.plan-flag svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.plan-flag.sev-error{color:var(--check-error)}.plan-flag.sev-warn{color:var(--check-warn)}.plan-flag.sev-info{color:var(--check-info)}.plan-checks{margin:calc(-1 * var(--space-3)) 0 var(--space-5);font-size:var(--fs-sm)}.plan-conflicts+.plan-checks{margin-top:0}.plan-checks-head{font:inherit;display:flex;align-items:center;gap:6px;width:100%;padding:0;border:0;background:none;color:var(--ink);cursor:pointer;text-align:left}.plan-checks-head .plan-flag{margin-left:0}.plan-checks-head strong{white-space:nowrap}.plan-checks-sub{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}@media(max-width:600px){.plan-checks-hint{display:none}}.plan-checks-caret{margin-left:auto;color:var(--muted);width:16px;text-align:center}.plan-checks-list{list-style:none;margin:var(--space-2) 0 0;padding:0 0 0 var(--space-3);border-left:2px solid var(--grid)}.plan-check{display:flex;align-items:baseline;gap:var(--space-2);padding:3px 0}.plan-check-msg{font:inherit;padding:0;border:0;background:none;color:var(--ink-2);text-align:left;cursor:pointer;min-width:0}.plan-check-msg:hover{color:var(--ink);text-decoration:underline;text-decoration-color:var(--border-strong)}.plan-check-term{color:var(--muted);white-space:nowrap}.plan-check:before{content:"";flex:none;width:6px;height:6px;border-radius:50%;transform:translateY(-1px);background:var(--check-info)}.plan-check.sev-error:before{background:var(--check-error)}.plan-check.sev-warn:before{background:var(--check-warn)}.plan-check.sev-info .plan-check-msg{color:var(--muted)}.plan-check-fix{font-size:var(--fs-sm);white-space:nowrap}.plan-flag.sev-none{color:var(--muted)}.plan-check-dismiss{font:inherit;font-size:11px;line-height:1;flex:none;margin-left:auto;padding:2px 5px;border:0;border-radius:4px;background:none;color:var(--muted);opacity:.5;cursor:pointer}.plan-check:hover .plan-check-dismiss,.plan-check-dismiss:focus-visible{opacity:1}.plan-check-dismiss:hover{color:var(--ink);background:var(--grid)}@media(hover:none){.plan-check-dismiss{opacity:.8}}.plan-check.is-dismissed:before{background:var(--border-strong)}.plan-check.is-dismissed .plan-check-msg{color:var(--muted)}.plan-check.is-dismissed .plan-check-term{opacity:.8}.plan-check-tag{color:var(--muted);font-size:11px;white-space:nowrap;font-style:italic}.plan-check-restore{font-size:var(--fs-sm);white-space:nowrap;margin-left:auto}.plan-checks-more{display:flex;gap:var(--space-3);padding:4px 0 0}.plan-checks-more .lib-link{font-size:var(--fs-sm);color:var(--muted)}@keyframes plan-row-flash{0%{background:var(--accent-soft)}to{background:transparent}}.plan-row-flash{animation:plan-row-flash 1.6s ease-out}@media(prefers-reduced-motion:reduce){.plan-row-flash{animation:none}}.plan-week-link{margin:0 0 var(--space-4);font-size:var(--fs-sm)}:root{color-scheme:light;--page: #f9f9f7;--surface: #fcfcfb;--fill: rgba(11, 11, 11, .045);--fill-strong: rgba(11, 11, 11, .08);--ink: #0b0b0b;--ink-2: #52514e;--muted: #898781;--grid: #e1e0d9;--hairline: var(--grid);--baseline: #c3c2b7;--border: rgba(11, 11, 11, .1);--border-strong: rgba(11, 11, 11, .2);--accent: #a51c30;--accent-soft: rgba(165, 28, 48, .08);--on-accent: #fff;--crimson: var(--accent);--series: #2a78d6;--series-soft: rgba(42, 120, 214, .12);--positive: #2f8f4e;--font: system-ui, -apple-system, "Segoe UI", sans-serif;--fs-xs: 12px;--fs-sm: 13px;--fs-base: 15px;--fs-md: 18px;--fs-lg: 24px;--fs-xl: 32px;--fw-regular: 400;--fw-bold: 600;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--radius-sm: 6px;--radius: 10px;--radius-lg: 14px;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgba(11, 11, 11, .05);--shadow-float: 0 4px 24px rgba(11, 11, 11, .1);--shadow: var(--shadow-sm);--shadow-hover: var(--shadow-sm);--card-bg: var(--surface);--card-border: 1px solid var(--border);--card-radius: 12px;--card-pad: var(--space-4)}@media(prefers-color-scheme:dark){:root{color-scheme:dark;--page: #0d0d0d;--surface: #161615;--fill: rgba(255, 255, 255, .06);--fill-strong: rgba(255, 255, 255, .1);--ink: #f4f4f2;--ink-2: #c3c2b7;--muted: #8e8c86;--grid: #2a2a28;--baseline: #383835;--border: rgba(255, 255, 255, .09);--border-strong: rgba(255, 255, 255, .2);--accent: #e05a6d;--accent-soft: rgba(224, 90, 109, .14);--series: #3987e5;--series-soft: rgba(57, 135, 229, .18);--positive: #4cb071;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-float: 0 8px 32px rgba(0, 0, 0, .5)}}*{box-sizing:border-box}::selection{background:color-mix(in srgb,var(--accent) 22%,transparent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}body{margin:0;background:var(--page);color:var(--ink);font-family:var(--font);font-size:var(--fs-base);line-height:1.5;-webkit-font-smoothing:antialiased}.app{margin:0 auto;padding:0 clamp(16px,3vw,48px)}.topbar{display:flex;align-items:center;gap:var(--space-5);padding:var(--space-3) 0;position:sticky;top:0;background:var(--page);z-index:10;border-bottom:1px solid var(--hairline)}.wordmark{display:inline-flex;align-items:center;gap:var(--space-2);border:none;background:none;font:inherit;color:var(--ink);font-size:var(--fs-md);font-weight:var(--fw-bold);letter-spacing:-.02em;cursor:pointer;white-space:nowrap;padding:0}.wordmark-q{display:inline-grid;place-items:center;width:28px;height:28px;color:var(--on-accent);background:var(--accent);border-radius:7px;font-size:17px;font-weight:700}.search-wrap{flex:1;max-width:720px;position:relative}.count-link{font:inherit;font-size:inherit;font-weight:var(--fw-bold);color:var(--accent);background:none;border:none;padding:0;cursor:pointer}.count-link:hover{text-decoration:underline}.search{width:100%;height:40px;padding:0 40px 0 var(--space-4);font:inherit;color:var(--ink);background:var(--fill);border:1px solid transparent;border-radius:var(--radius);outline:none;transition:background .12s,border-color .12s,box-shadow .12s}.search::placeholder{color:var(--muted)}.search:hover{background:var(--fill-strong)}.search::-webkit-search-cancel-button{-webkit-appearance:none;display:none}.search-clear{position:absolute;right:5px;top:50%;transform:translateY(-50%);width:30px;height:30px;display:flex;align-items:center;justify-content:center;font:inherit;font-size:var(--fs-sm);line-height:1;color:var(--muted);background:none;border:none;border-radius:var(--radius-sm);cursor:pointer}.search-clear:hover{color:var(--ink);background:var(--fill)}.search:focus{background:var(--surface);border-color:var(--border-strong)}.search:focus-visible{outline:none}.topnav{display:flex;align-items:center;gap:var(--space-1);margin-left:auto}.topnav .nav-link{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 var(--space-3);font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--ink-2);text-decoration:none;border-radius:var(--radius-sm)}.topnav .nav-link:hover{color:var(--ink);background:var(--fill)}.topnav .nav-link.active{color:var(--accent);background:var(--accent-soft)}.topnav .nav-icon{display:none;flex:none}.nav-count{font-size:var(--fs-xs);font-weight:var(--fw-regular);color:var(--muted);font-variant-numeric:tabular-nums}.nav-link.active .nav-count{color:inherit;opacity:.7}.section-tabs{display:flex;gap:var(--space-5);margin-top:var(--space-4);border-bottom:1px solid var(--hairline)}.section-tab{display:inline-flex;align-items:baseline;gap:6px;padding:var(--space-2) 0;margin-bottom:-1px;font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--muted);text-decoration:none;border-bottom:2px solid transparent}.section-tab:hover{color:var(--ink)}.section-tab.active{color:var(--ink);border-bottom-color:var(--accent)}.section-tab-count{font-size:var(--fs-xs);font-weight:var(--fw-regular);color:var(--muted);font-variant-numeric:tabular-nums}.layout{display:grid;grid-template-columns:230px 1fr;gap:28px;padding:24px 0;align-items:start}@media(max-width:800px){.layout{grid-template-columns:1fr}}.filters{display:flex;flex-direction:column;gap:16px;position:sticky;top:78px}.filter{display:flex;flex-direction:column;gap:7px;font-size:13px;color:var(--ink-2)}.filter>span{font-size:11px;font-weight:650;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.filter em{font-style:normal;font-weight:400;color:var(--muted)}.filter select{font:inherit;font-weight:400;color:var(--ink);padding:7px 10px;background:var(--surface);border:1px solid var(--border);border-radius:8px}.filter input[type=range]{accent-color:var(--series)}.nav-link{font:inherit;font-size:14px;font-weight:600;color:var(--ink-2);background:none;border:none;padding:6px 10px;border-radius:8px;cursor:pointer;white-space:nowrap}.nav-link:hover{color:var(--accent)}.nav-link.active{color:var(--accent);background:var(--accent-soft)}.chip-row{display:flex;flex-wrap:wrap;gap:var(--space-1)}.chip{font:inherit;font-size:var(--fs-sm);font-weight:var(--fw-regular);line-height:20px;color:var(--ink-2);background:transparent;border:1px solid transparent;border-radius:var(--radius-pill);padding:4px var(--space-3);cursor:pointer;white-space:nowrap}.chip:hover{color:var(--ink);background:var(--fill)}.chip.active{background:var(--accent-soft);border-color:transparent;color:var(--accent);font-weight:var(--fw-bold)}.card-upcoming{font-size:11px;font-weight:var(--fw-bold);color:var(--muted);background:var(--fill);border-radius:4px;padding:1px 5px;margin-left:6px;white-space:nowrap;vertical-align:1px;letter-spacing:0}.upcoming-panel{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 14px;margin-top:14px;padding:10px 14px;background:var(--surface);border:1px solid var(--border);border-radius:10px;font-size:13px}.upcoming-title{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.upcoming-empty{color:var(--muted)}.upcoming-term{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px}.upcoming-term-name{font-weight:600;color:var(--ink)}.upcoming-list{display:flex;flex-direction:column;gap:3px;margin:0;padding:0;list-style:none}.upcoming-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px}.upcoming-section{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.upcoming-meta{color:var(--ink)}.upcoming-instructors{color:var(--ink-2)}.upcoming-q{font-size:11px;font-weight:600;border-radius:5px;padding:1px 5px;white-space:nowrap}.upcoming-q.course{color:var(--accent);background:var(--accent-soft)}.upcoming-q.global{color:var(--ink-2);background:var(--accent-soft)}.upcoming-q.none{color:var(--muted);border:1px dashed var(--border)}.upcoming-link{font-size:12px;color:var(--accent);text-decoration:none;white-space:nowrap}.upcoming-link:hover{text-decoration:underline}.upcoming-more{font:inherit;font-size:12px;font-weight:600;color:var(--accent);background:none;border:none;padding:0;cursor:pointer}.instructor-upcoming{flex-direction:column;align-items:flex-start;margin-top:20px;margin-bottom:26px}.schedule-block{margin-top:48px}.schedule-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}.schedule-head h2{margin:0;font-size:18px;font-weight:600}.schedule-head-links{display:flex;align-items:center;gap:16px;margin-left:auto}.schedule-conflict-note{color:var(--accent);font-size:13px;margin:12px 0 0}.schedule-dual{margin-top:12px;font-size:13px;color:var(--ink-2)}.schedule-dual summary{cursor:pointer;color:var(--muted);width:fit-content}.schedule-dual summary:hover{color:var(--ink)}.schedule-dual-rows{display:flex;flex-direction:column;gap:8px;padding:8px 0 0}.schedule-dual-row{display:flex;align-items:center;gap:12px}.schedule-dual-code{font-weight:600;color:var(--ink);min-width:104px}.schedule-grid{--hour-h: 44px;display:grid;grid-template-columns:40px repeat(5,minmax(0,1fr));grid-template-rows:auto auto;grid-auto-flow:column;margin-top:16px}.schedule-col{display:contents}.schedule-day{text-align:center;font-size:13px;color:var(--muted);padding-bottom:8px;border-bottom:1px solid var(--grid)}.schedule-lane{position:relative;height:calc(var(--hours) * var(--hour-h));border-left:1px solid var(--grid);overflow:hidden}.schedule-gutter .schedule-lane{border-left:none;overflow:visible}.schedule-gutter .schedule-lane span{position:absolute;right:8px;transform:translateY(-50%);font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.schedule-gutter .schedule-lane span:first-child{transform:none}.schedule-hourline{position:absolute;left:0;right:0;border-top:1px solid color-mix(in srgb,var(--grid) 55%,transparent)}.schedule-event{position:absolute;display:flex;flex-direction:column;justify-content:center;gap:2px;padding:4px 8px;border-radius:6px;background:color-mix(in srgb,var(--ink) 6%,var(--page));border-left:3px solid var(--baseline);overflow:hidden;min-height:22px}.schedule-event.conflict{background:var(--accent-soft);border-left-color:var(--accent)}.schedule-event-code{font-size:12px;font-weight:600;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.schedule-event-time{font-size:12px;color:var(--ink-2);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.schedule-untimed{font-size:13px;color:var(--muted);margin:12px 0 0}@media(max-width:700px){.schedule-head-links{margin-left:0;width:100%}.schedule-grid{--hour-h: 40px;grid-template-columns:28px repeat(5,minmax(0,1fr))}.schedule-gutter .schedule-lane span{right:4px}.schedule-event{padding:2px 3px;border-left-width:2px}.schedule-event-code{white-space:normal;text-overflow:clip}.schedule-event-part{display:block;white-space:nowrap;overflow:hidden}.schedule-event-time{display:none}}.insights-h2{font-size:18px;margin:30px 0 12px}.insights-boards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}@media(max-width:760px){.insights-boards{grid-template-columns:minmax(0,1fr)}}.scatter-block{margin-top:0}.scatter-wrap{position:relative}.scatter{width:100%;height:auto;display:block;touch-action:none}.scatter.zoomed{cursor:grab}.scatter.zoomed:active{cursor:grabbing}.scatter-reset{position:absolute;top:6px;right:8px;z-index:2;font:inherit;font-size:12px;font-weight:600;color:var(--accent);background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:4px 12px;cursor:pointer;box-shadow:var(--shadow)}.scatter-reset:hover{border-color:var(--accent)}.scatter-grid{stroke:var(--grid);stroke-width:1}.scatter-axis{stroke:var(--baseline);stroke-width:1}.scatter-tick{font-size:10px;fill:var(--muted)}.scatter-label{font-size:11px;fill:var(--ink-2);font-weight:600}.scatter-dot{fill:var(--series);fill-opacity:.55;cursor:pointer;transition:r .1s}.scatter-dot.active{fill-opacity:1}.scatter-tip-bg{fill:var(--surface);stroke:var(--border);filter:drop-shadow(0 2px 6px rgba(0,0,0,.15))}.scatter-tip-code{font-size:10px;font-weight:700;fill:var(--crimson)}.scatter-tip-title{font-size:10px;fill:var(--ink-2)}.board{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;counter-reset:board}.board li{counter-increment:board}.board-row{display:flex;align-items:baseline;gap:8px;width:100%;font:inherit;font-size:13px;text-align:left;color:var(--ink);background:none;border:none;border-top:1px solid var(--grid);padding:7px 2px;cursor:pointer}.board li:first-child .board-row{border-top:none}.board-row:before{content:counter(board);width:16px;flex-shrink:0;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.board-row:hover .board-code{text-decoration:underline}.board-code{font-weight:700;font-size:12px;color:var(--crimson);white-space:nowrap;flex-shrink:0}.board-title{flex:1;color:var(--ink-2);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.board-value{font-variant-numeric:tabular-nums;font-weight:600;font-size:12px;white-space:nowrap;flex-shrink:0}.star{font:inherit;font-size:14px;color:var(--muted);background:none;border:none;padding:0 0 0 6px;cursor:pointer;line-height:1}.star:hover,.star.saved{color:var(--crimson)}.star-lg{font-size:22px;vertical-align:2px;padding-left:10px}.compare-wrap{overflow-x:auto}.compare{width:100%;border-collapse:collapse;font-size:13px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow)}.compare th{text-align:left;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:10px 12px;border-bottom:1px solid var(--grid);white-space:nowrap}.compare td{padding:10px 12px;border-bottom:1px solid var(--grid);font-variant-numeric:tabular-nums;vertical-align:top}.compare tr:last-child td{border-bottom:none}.compare td.best{font-weight:700;color:var(--series)}.compare-course{font:inherit;text-align:left;background:none;border:none;padding:0;cursor:pointer;display:flex;flex-direction:column;gap:1px;color:var(--ink)}.compare-course:hover .board-code{text-decoration:underline}.compare-title{font-weight:600;font-size:13px}.compare-muted{color:var(--ink-2)}.compare-remove{font:inherit;font-size:12px;color:var(--muted);background:none;border:none;cursor:pointer;padding:2px 6px}.compare-remove:hover{color:var(--crimson)}.section-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px}.section-label{font-size:12px;font-weight:600;color:var(--ink-2)}.shared-note{font-size:12px;color:var(--muted)}.dept-row{cursor:pointer;border-radius:6px}.dept-row:hover{background:var(--accent-soft)}.dept-row:hover .dept-name{color:var(--accent)}.dept-name{width:220px!important;color:var(--ink-2)}.dept-vals{width:84px!important}.clear-filters{align-self:center;font:inherit;font-size:13px;font-weight:600;color:var(--accent);background:none;border:none;padding:0 4px;cursor:pointer}.clear-filters:hover{text-decoration:underline}.results-count{font-size:13px;color:var(--muted);margin-bottom:12px}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-3)}.card{position:relative;text-align:left;font:inherit;color:var(--ink);background:var(--card-bg);border:var(--card-border);border-radius:var(--card-radius);padding:var(--card-pad);cursor:pointer;display:flex;flex-direction:column;gap:var(--space-1);transition:border-color .12s,background .12s}.card:hover{border-color:var(--border-strong)}.card-top{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-2)}.card-code{font-weight:var(--fw-bold);font-size:var(--fs-xs);letter-spacing:.02em;color:var(--ink-2);white-space:nowrap}.card-formerly{margin-top:-2px;font-size:var(--fs-xs);color:var(--muted)}.card-term{display:inline-flex;align-items:baseline;font-size:var(--fs-xs);color:var(--muted);text-align:right;white-space:nowrap}.card-title{font-size:var(--fs-base);font-weight:var(--fw-bold);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-instructor{font-size:var(--fs-sm);color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.instructor-link{font:inherit;color:inherit;background:none;border:none;padding:0;cursor:pointer;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:2px;transition:text-decoration-color .12s,color .12s}.instructor-link:hover{color:var(--ink);text-decoration-color:currentColor}.card .star{font-size:var(--fs-base);padding:0 0 0 var(--space-2);color:var(--muted)}.card .star:hover,.card .star.saved{color:var(--accent)}@media(hover:hover){.card .star:not(.saved){opacity:0;transition:opacity .12s}.card:hover .star,.card:focus-within .star{opacity:1}}.card-foot{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:var(--space-1) var(--space-3);margin-top:auto;padding-top:var(--space-3)}.card-prof{font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--ink-2);background:var(--fill);border-radius:var(--radius-sm);padding:1px 7px;white-space:nowrap}.card-rating{font-size:var(--fs-md);font-weight:var(--fw-bold);letter-spacing:-.01em;font-variant-numeric:tabular-nums}.card-rating em{font-style:normal;font-size:var(--fs-xs);font-weight:var(--fw-regular);color:var(--muted);margin-left:1px}.card-foot-stats{font-size:var(--fs-xs);color:var(--muted);font-variant-numeric:tabular-nums}.card-foot-stats strong{color:var(--ink-2);font-weight:var(--fw-regular)}.card-foot-stats .dotsep{margin:0 6px}.card-new{font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--ink-2);background:var(--fill);border-radius:var(--radius-sm);padding:1px 7px}.card .conc-tags{flex-wrap:nowrap;overflow:hidden;margin-top:var(--space-1);-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 24px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 24px),transparent)}.card .conc-tag{flex:none;max-width:none}.detail{padding:20px 0 40px}.back{font:inherit;font-size:13px;color:var(--accent);background:none;border:none;padding:0;cursor:pointer;margin-bottom:16px}.detail-code{font-weight:700;font-size:14px;letter-spacing:.03em;color:var(--crimson)}.detail-title{margin:2px 0 4px;font-size:28px;letter-spacing:-.02em;line-height:1.2}.detail-meta{color:var(--ink-2);font-size:14px}.detail-meta-note{color:var(--muted);font-size:12px}.term-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}.term-tab{font:inherit;font-size:13px;padding:5px 12px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--ink-2);cursor:pointer}.term-tab.active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.term-tab-static{cursor:default}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin:22px 0}.stat-tile{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px 16px;box-shadow:var(--shadow)}.stat-label{font-size:12px;font-weight:600;color:var(--ink-2)}.stat-value{font-size:26px;font-weight:700;letter-spacing:-.02em;margin-top:2px}.stat-sub{font-size:12px;color:var(--muted)}.chart-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}.dist-block{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px;box-shadow:var(--shadow)}.dist-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px}.dist-title{font-size:13px;font-weight:600;color:var(--ink-2)}.dist-mean{font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}.dist-rows{display:flex;flex-direction:column;gap:7px}.dist-row{display:flex;align-items:center;gap:10px}.dist-score{width:14px;font-size:12px;color:var(--muted);text-align:right;font-variant-numeric:tabular-nums;flex-shrink:0}.dist-score.wide{width:84px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dist-track{flex:1;height:12px;border-left:2px solid var(--baseline)}.dist-bar{height:100%;background:var(--series);border-radius:0 4px 4px 0;min-width:0;transition:width .25s ease}.dist-pct{width:36px;font-size:12px;color:var(--ink-2);font-variant-numeric:tabular-nums;text-align:right;flex-shrink:0}.trend{width:100%;height:auto;display:block}.trend-baseline{stroke:var(--baseline);stroke-width:1}.trend-line{fill:none;stroke:var(--series);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.trend-pt{cursor:pointer}.trend-hit{fill:transparent}.trend-dot{fill:var(--series);stroke:var(--surface);stroke-width:2}.trend-pt.active .trend-dot{r:5.5}.trend-value{font-size:10px;fill:var(--ink-2);text-anchor:middle;font-variant-numeric:tabular-nums}.trend-pt.active .trend-value{font-weight:700;fill:var(--ink)}.trend-term{font-size:10px;fill:var(--muted);text-anchor:middle}.review-summary{margin-top:48px;max-width:720px}.review-summary h2{font-size:18px;font-weight:600;margin:0 0 8px}.rs-overview{margin:0;font-size:15px;line-height:1.6;color:var(--ink-2)}.rs-themes{display:grid;grid-template-columns:1fr 1fr;gap:16px 32px;margin-top:16px}.rs-col h3{font-size:13px;font-weight:600;color:var(--ink);margin:0 0 4px}.rs-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.rs-col li{position:relative;padding-left:16px;font-size:15px;line-height:1.5;color:var(--ink-2)}.rs-col li:before{content:"–";position:absolute;left:0;color:var(--muted)}.rs-foot{margin:16px 0 0;font-size:13px;line-height:1.5;color:var(--muted)}@media(max-width:640px){.rs-themes{grid-template-columns:1fr}}.comments{margin-top:28px;scroll-margin-top:76px}.comments-header{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.comments-header h2{font-size:18px;margin:0}.comments-count{color:var(--muted);font-weight:400;font-size:14px}.comments-search{font:inherit;font-size:13px;padding:7px 12px;color:var(--ink);background:var(--surface);border:1px solid var(--border);border-radius:8px;width:220px;outline:none}.comments-search:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.comment-list{list-style:none;padding:0;margin:14px 0 0;display:flex;flex-direction:column;gap:10px;max-width:860px}.comment{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--grid);border-radius:8px;padding:13px 18px;font-size:14.5px;line-height:1.65;color:var(--ink-2);overflow-wrap:anywhere}.comment mark{background:var(--accent-soft);color:var(--accent);font-weight:600;border-radius:3px;padding:0 2px}.empty{color:var(--muted);padding:24px 0}.show-more{display:block;margin:var(--space-5) auto var(--space-1);font:inherit;font-size:var(--fs-sm);color:var(--ink-2);background:var(--fill);border:none;border-radius:var(--radius-pill);padding:var(--space-2) var(--space-5);cursor:pointer}.show-more:hover{color:var(--ink);background:var(--fill-strong)}.footer{border-top:1px solid var(--hairline);color:var(--muted);font-size:var(--fs-xs);padding:var(--space-4) 0 var(--space-6);margin-top:var(--space-6);display:flex;flex-wrap:wrap;gap:6px 16px}.footer .credit{margin-left:auto;color:var(--muted);text-decoration:none}.footer .credit span{text-decoration:underline;text-decoration-color:var(--baseline);text-underline-offset:3px}.footer .credit:hover{color:var(--accent)}.footer .credit:hover span{text-decoration-color:currentColor}@media(max-width:640px){.footer .credit{flex-basis:100%;margin-left:0}}.comment-global-search{width:100%;max-width:560px;margin-top:14px;font-size:15px!important;padding:10px 14px!important}.cg-summary{font-size:13.5px;color:var(--ink-2);padding:12px 0 14px}.cg-summary strong{color:var(--ink);font-weight:650}.cg-progress{font-size:13px;color:var(--muted);padding:10px 0 0}.cg-group{margin-top:22px}.cg-head{display:flex;align-items:baseline;gap:10px;width:100%;max-width:860px;font:inherit;text-align:left;background:none;border:none;padding:0 0 2px;cursor:pointer;color:var(--ink)}.cg-head:hover .board-code{text-decoration:underline}.cg-title{font-weight:650;font-size:15px}.cg-count{margin-left:auto;font-size:12px;color:var(--accent);font-weight:600;white-space:nowrap}.cg-term{display:inline-block;font-size:11px;font-weight:650;color:var(--muted);margin-right:8px}.cg-more{font:inherit;font-size:12.5px;font-weight:600;color:var(--accent);background:none;border:none;padding:6px 0 0;cursor:pointer}.cg-more:hover{text-decoration:underline}.related{margin-top:32px}.related-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.related-head h2{font-size:18px;margin:0 0 12px}.related-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}.related-card{font:inherit;text-align:left;color:var(--ink);background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:11px 13px;cursor:pointer;display:flex;flex-direction:column;gap:3px;box-shadow:var(--shadow);transition:border-color .12s,box-shadow .12s}.related-card:hover{border-color:var(--accent);box-shadow:var(--shadow-hover)}.related-title{font-size:13px;font-weight:600;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.related-stats{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.related-stats strong{color:var(--ink);font-weight:650}.action-btn{font:inherit;font-size:13px;font-weight:600;color:var(--accent);background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:7px 16px;cursor:pointer}.action-btn:hover{border-color:var(--accent)}.loading-pulse{animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.9}50%{opacity:.4}}@media(max-width:640px){.wordmark-text{display:none}.topbar{gap:10px}.app{padding:0 14px}.search,.comments-search,.comment-global-search{font-size:16px!important}.detail-title{font-size:23px}.detail-hero .stat-tile+.stat-tile{border-left:none}.detail-hero .stat-row{border-top:none}.detail-hero .stat-tile{border-top:1px solid var(--grid)}.comments-header h2{font-size:16px}.comments-search{width:100%}.dept-name{width:118px!important;font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dept-vals{width:auto!important}}.browse{padding:0 0 var(--space-5)}.filter-bar{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;padding:var(--space-5) 0 var(--space-4)}.filter-spacer{flex:1}.filter-selects{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.filters-toggle{display:none}.empty-hint{display:block;margin-top:var(--space-2);font-size:var(--fs-xs);color:var(--muted)}.empty-hint code{font-size:var(--fs-xs);background:var(--fill);border-radius:4px;padding:1px 5px}.bar-select{font:inherit;font-size:var(--fs-sm);color:var(--ink-2);background-color:transparent;border:1px solid var(--border);border-radius:var(--radius-pill);height:32px;padding:0 var(--space-3);max-width:190px;cursor:pointer}.bar-select:hover{color:var(--ink);border-color:var(--border-strong)}.bar-select.is-set{color:var(--accent);background-color:var(--accent-soft);border-color:transparent;font-weight:var(--fw-bold)}.count-line{font-size:var(--fs-sm);color:var(--muted);margin-bottom:var(--space-3)}.count-line .count-link{font-weight:var(--fw-regular);color:var(--ink-2);text-decoration:underline;text-decoration-color:var(--baseline);text-underline-offset:3px}.count-line .count-link:hover{color:var(--accent);text-decoration-color:currentColor}.hero-strip{padding:var(--space-7) 0 0}.hero-title{font-size:var(--fs-lg);font-weight:var(--fw-bold);letter-spacing:-.02em;line-height:1.25;margin:0}.hero-sub{margin-top:var(--space-1);color:var(--muted);font-size:var(--fs-sm);font-variant-numeric:tabular-nums}.hero-sub strong{color:var(--ink-2);font-weight:var(--fw-regular)}.hero-links{display:flex;gap:14px;margin-top:var(--space-2);font-size:13px}.hero-link{font:inherit;font-size:13px;font-weight:600;color:var(--accent);background:none;border:none;padding:0;cursor:pointer;text-decoration:none}.hero-link:hover{text-decoration:underline}.results-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.results-bar .results-count{margin-bottom:0}.results-controls{display:flex;align-items:center;gap:8px}.sort-select{font:inherit;font-size:13px;color:var(--ink);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:6px 8px}.detail-hero{background:var(--surface);border:1px solid var(--border);border-top:3px solid var(--accent);border-radius:14px;box-shadow:var(--shadow);padding:22px 24px 8px;margin-bottom:18px}.detail-hero .detail-header{margin-bottom:4px}.detail-hero .stat-row{margin:18px -24px 0;padding:4px 12px 0;border-top:1px solid var(--grid);gap:0}.detail-hero .stat-tile{background:none;border:none;box-shadow:none;border-radius:0;padding:12px}.detail-hero .stat-tile+.stat-tile{border-left:1px solid var(--grid)}a.card,a.related-card,a.board-row,a.compare-course,a.cg-head{text-decoration:none;color:inherit}.star-count{display:inline-block;animation:star-pop .35s ease}@keyframes star-pop{0%{transform:scale(1.6)}to{transform:scale(1)}}@media(prefers-reduced-motion:reduce){.star-count{animation:none}}.course-desc{margin-top:16px;max-width:72ch}.course-desc-text{font-size:15px;line-height:1.6;color:var(--ink-2);white-space:pre-line;overflow-wrap:anywhere}.course-desc-text.clamped{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden}.course-desc-toggle{margin-top:4px}.course-page{max-width:880px;padding:24px 0 48px}.cp-back{font:inherit;font-size:13px;color:var(--muted);background:none;border:none;padding:0;margin-bottom:24px;cursor:pointer}.cp-back:hover{color:var(--accent)}.cp-code{font-size:13px;font-weight:600;letter-spacing:.04em;color:var(--muted)}.cp-formerly{font-weight:400;letter-spacing:0;text-transform:none}.cp-title{margin:4px 0 8px;font-size:32px;font-weight:600;line-height:1.15;letter-spacing:-.02em}.cp-title .star-lg{font-size:24px;vertical-align:3px;padding-left:12px}.cp-meta{font-size:15px;color:var(--ink-2)}.cp-new{color:var(--muted);cursor:help}.cp-muted{color:var(--muted)}.cp-toggle{align-self:flex-start;font:inherit;font-size:13px;font-weight:600;color:var(--accent);background:none;border:none;padding:0;cursor:pointer}.cp-toggle:hover{text-decoration:underline}.cp-toggle.cp-inline{font-size:inherit;font-weight:400}.cp-seg{display:inline-flex;max-width:100%;margin-top:24px;padding:2px;gap:2px;border-radius:8px;background:color-mix(in srgb,var(--ink) 5%,transparent);overflow-x:auto;scrollbar-width:none}.cp-seg::-webkit-scrollbar{display:none}.cp-seg-btn{flex:none;font:inherit;font-size:13px;white-space:nowrap;color:var(--ink-2);background:none;border:none;border-radius:6px;padding:4px 12px;cursor:pointer}.cp-seg-btn:hover{color:var(--ink)}.cp-seg-btn.active{color:var(--ink);font-weight:600;background:var(--surface);box-shadow:0 0 0 1px var(--border),0 1px 2px #0000000f}.cp-sections{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:8px}.cp-sections-label{font-size:13px;color:var(--muted)}.cp-sections-label[title]{cursor:help}.cp-sections .cp-seg{margin-top:0}.cp-stats{display:grid;grid-template-columns:repeat(3,minmax(0,max-content));gap:48px;margin-top:24px}.cp-stat-value{font-size:32px;font-weight:600;line-height:1.1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.cp-stat-unit{font-size:13px;font-weight:400;letter-spacing:0;color:var(--muted)}.cp-stat-label{margin-top:4px;font-size:13px;font-weight:600;color:var(--ink-2)}.cp-stat-sub{font-size:13px;color:var(--muted)}.cp-stat .skel-value{width:64px;height:32px;margin-bottom:8px}.cp-stat .skel-label{width:88px}.cp-stat-foot{margin-top:16px;font-size:13px;color:var(--muted)}.course-page .course-desc{margin-top:32px}.cp-rows{margin-top:32px;border-top:1px solid var(--grid)}.cp-row{display:flex;align-items:baseline;gap:16px;padding:12px 0;border-bottom:1px solid var(--grid);font-size:15px}.cp-label{flex:none;width:120px;font-size:13px;color:var(--muted)}.cp-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.cp-term-line{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 12px}.cp-term-name{min-width:96px;font-weight:600;color:var(--ink)}.cp-term-what{color:var(--ink-2)}.cp-ext{font-size:13px;color:var(--muted);text-decoration:none;white-space:nowrap}.cp-ext:hover{color:var(--accent);text-decoration:underline}.cp-action{align-self:flex-start;margin-top:4px;font-size:13px;font-weight:600;color:var(--accent);text-decoration:none}.cp-action:hover{text-decoration:underline}.cp-term+.cp-term{margin-top:8px}.cp-secs{list-style:none;margin:4px 0 0;padding:0}.cp-sec{display:flex;align-items:baseline;gap:12px;padding:4px 0;font-size:13px;color:var(--ink-2)}.cp-sec-num{flex:none;width:28px;color:var(--muted);font-variant-numeric:tabular-nums}.cp-sec-main{flex:1;min-width:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:0 12px}.cp-sec-meta{color:var(--ink)}.course-page .upcoming-q,.course-page .upcoming-q.course,.course-page .upcoming-q.global{font-size:13px;font-weight:400;color:var(--muted);background:none;border:none;padding:0}.course-page .upcoming-q.none{font-style:italic}details.cp-row{display:block}details.cp-row>summary{display:flex;align-items:baseline;gap:16px;list-style:none;cursor:pointer}details.cp-row>summary::-webkit-details-marker{display:none}details.cp-row>summary .cp-body{display:block}.cp-summary-text{color:var(--ink)}details.cp-row>summary:after{content:"";flex:none;align-self:center;width:6px;height:6px;margin:0 4px 4px auto;border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);transform:rotate(45deg);transition:transform .15s}details.cp-row[open]>summary:after{transform:rotate(-135deg);margin-bottom:0}details.cp-row>summary:hover .cp-summary-text{color:var(--accent)}@media(prefers-reduced-motion:reduce){details.cp-row>summary:after{transition:none}}.cp-conc-full{padding:8px 0 4px 136px}.cp-conc-full .conc-panel,.cp-conc-bare .conc-panel{margin:0;padding:0;background:none;border:none;border-radius:0;font-size:13px}.cp-conc-full .conc-panel>.upcoming-title{display:none}.cp-conc-full .conc-panel-list{gap:4px}.cp-conc-full .conc-panel-name,.cp-conc-bare .conc-panel-name{min-width:56px;font-size:13px;font-weight:600;letter-spacing:0;color:var(--ink)}.cp-conc-full .conc-plan-link,.cp-conc-bare .conc-plan-link{display:inline-block;margin-top:8px;font-size:13px;font-weight:600}.cp-conc-bare .conc-panel{padding:12px 0;border-bottom:1px solid var(--grid);gap:4px 16px}.cp-conc-bare .conc-panel>.upcoming-title{width:120px;font-size:13px;font-weight:400;letter-spacing:0;text-transform:none}.cp-chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4);margin:var(--space-4) 0 var(--space-3)}.chart-cell{display:flex;min-width:0}.chart-cell>.chart-card{flex:1;min-width:0}.chart-wide{grid-column:1 / -1}.chart-wide .dist-rows{max-width:760px}.course-page .chart-card{background:var(--surface);border:1px solid var(--grid);border-radius:var(--card-radius);box-shadow:none;padding:var(--space-4) 20px 20px}.course-page .chart-card .dist-header{display:flex;flex-wrap:nowrap;justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-4)}.dist-heading{min-width:0}.course-page .dist-title{margin:0;font-size:var(--fs-base);font-weight:var(--fw-bold);line-height:1.3;color:var(--ink)}.dist-caption{margin-top:2px;font-size:var(--fs-xs);line-height:1.4;color:var(--muted)}.course-page .dist-mean{flex:none;font-size:var(--fs-md);font-weight:var(--fw-bold);line-height:1.2;color:var(--ink)}.course-page .dist-rows{gap:6px}.course-page .dist-row{gap:var(--space-3)}.course-page .dist-score{width:14px;font-size:var(--fs-xs);color:var(--muted)}.course-page .dist-score.wide{width:96px;color:var(--ink-2)}.course-page .dist-track{height:12px;border-left-width:1px}.course-page .dist-bar{border-radius:0 3px 3px 0}.course-page .dist-pct{width:40px;font-size:var(--fs-xs);color:var(--ink-2)}.trend-wrap{width:100%;min-height:168px}.course-page .trend{width:100%;height:auto;display:block;overflow:visible}.trend-grid{stroke:var(--grid);stroke-width:1}.trend-tick{font-size:11px;fill:var(--muted);font-variant-numeric:tabular-nums}.course-page .trend-term{font-size:11px;fill:var(--muted)}.course-page .trend-value{font-size:12px;fill:var(--ink-2)}.course-page .trend-pt.active .trend-term{fill:var(--ink);font-weight:var(--fw-bold)}.trend-fas{fill:none;stroke:var(--muted);stroke-width:1.25;stroke-dasharray:4 4}.trend-fas-label{font-size:11px;fill:var(--muted)}.course-page .trend-pt:hover .trend-dot{r:5.5}@media(max-width:720px){.cp-chart-grid{grid-template-columns:minmax(0,1fr);gap:var(--space-3)}.course-page .chart-card{padding:14px var(--space-4) var(--space-4)}.course-page .dist-score.wide{width:88px}}.cp-prereqs .cp-body{gap:2px;font-size:14px;line-height:1.5}.cp-pre-line{color:var(--ink)}.cp-pre-kind{color:var(--ink-2)}.cp-pre-group{white-space:normal}.cp-pre-sep{color:var(--muted)}.cp-pre-code{color:var(--ink);font-weight:var(--fw-bold);text-decoration:none;white-space:nowrap}a.cp-pre-code:hover{color:var(--accent);text-decoration:underline}.cp-pre-check{color:var(--positive);font-weight:var(--fw-bold)}.cp-pre-note{font-size:var(--fs-sm);color:var(--muted)}.cp-pre-text{margin:0;color:var(--ink-2)}.cp-pre-source a{color:inherit;text-decoration:underline;text-underline-offset:2px}.cp-pre-source a:hover{color:var(--accent)}.cp-pre-wording{margin-top:2px;font-size:var(--fs-sm)}.cp-pre-wording>summary{display:inline;cursor:pointer;color:var(--accent);font-weight:var(--fw-bold);list-style:none}.cp-pre-wording>summary::-webkit-details-marker{display:none}.cp-pre-wording>summary:hover{text-decoration:underline}.cp-pre-wording[open]>summary{color:var(--muted)}.cp-pre-wording p{margin:4px 0 0;max-width:72ch;color:var(--ink-2);line-height:1.5}.course-page .comments{margin-top:48px}.course-page .comments-header{max-width:720px}.course-page .comments-header h2{font-size:18px;font-weight:600}.course-page .comments-count{font-size:15px;margin-left:4px}.course-page .comments-search{width:200px;background:transparent}.course-page .comment-list{max-width:720px;margin-top:8px;gap:0}.course-page .comment{background:none;border:none;border-bottom:1px solid var(--grid);border-radius:0;padding:16px 0;font-size:15px;line-height:1.6}.course-page .comment.has-save{padding-right:40px}.course-page .review-save{top:12px;right:0}.cp-more-comments{margin-top:16px}.course-page .related{margin-top:48px}.course-page .related-head h2{font-size:18px;font-weight:600;margin-bottom:16px}.course-page .related-row{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:24px}.course-page .related-card{background:none;border:none;border-radius:0;box-shadow:none;padding:0;gap:4px}.course-page .related-card:hover{box-shadow:none}.course-page .related-card .board-code{color:var(--muted)}.course-page .related-card:hover .related-title{color:var(--accent)}@media(max-width:640px){.course-page{padding-top:16px}.cp-back{margin-bottom:16px}.cp-title{font-size:24px}.cp-title .star-lg{font-size:20px;vertical-align:1px;padding-left:8px}.cp-seg{margin-top:16px}.cp-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.cp-stat-value{font-size:24px}.cp-row,details.cp-row>summary{flex-wrap:wrap;gap:4px 16px}.cp-label{width:100%}details.cp-row>summary .cp-body{flex:1}.cp-conc-full{padding-left:0}.cp-term-name{min-width:0}.cp-sec{flex-wrap:wrap}.course-page .comments-search{width:100%}.course-page .comment.has-save{padding-right:36px}}.skel{border-radius:6px;background:linear-gradient(90deg,var(--grid) 25%,var(--baseline) 50%,var(--grid) 75%);background-size:200% 100%;animation:shimmer 1.3s linear infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.skel{animation:none;background:var(--grid)}}.skel-label{width:70%;height:12px;margin-bottom:8px}.skel-value{width:45%;height:24px;margin-bottom:8px}.skel-sub{width:85%;height:10px}.skel-chart-title{width:40%;height:13px;margin-bottom:14px}.skel-chart-body{width:100%;height:120px}.recent-strip{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--space-1) var(--space-3);padding:var(--space-4) 0 0;font-size:var(--fs-sm)}.recent-label{color:var(--muted)}.recent-chip{font:inherit;color:var(--ink-2);background:none;border:none;padding:0;cursor:pointer;text-decoration:underline;text-decoration-color:var(--baseline);text-underline-offset:3px}.recent-chip:hover{color:var(--accent);text-decoration-color:currentColor}.recent-clear{font:inherit;font-size:var(--fs-xs);color:var(--muted);background:none;border:none;padding:0 var(--space-1);cursor:pointer;border-radius:4px;opacity:.7}.recent-clear:hover{color:var(--ink);opacity:1}.upcoming-compare{margin-left:10px;font-size:12px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--accent);text-decoration:none}.upcoming-compare:hover{text-decoration:underline}.upcoming-topic{color:var(--ink);font-style:italic}.expos-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:8px 20px;margin:8px 0 16px}.expos-head .term-tabs{margin:0}.expos-head .detail-meta a{color:var(--accent)}.expos-filters{flex-wrap:wrap;gap:8px}.expos-search{flex:1 1 200px;max-width:320px}.expos-list{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}.expos-card{display:grid;grid-template-columns:1fr 180px;gap:20px;padding:14px 18px;background:var(--surface);border:1px solid var(--border);border-radius:10px}.expos-topic{margin:0;font-size:16px;font-weight:650;line-height:1.3}.expos-topic a{color:var(--ink);text-decoration:none}.expos-topic a:hover{color:var(--accent);text-decoration:underline}.expos-topic-missing{color:var(--muted);font-weight:500;font-style:italic}.expos-or{color:var(--muted);font-weight:400}.expos-byline{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:13.5px;color:var(--ink-2)}.expos-badge{font-size:11px;font-weight:600;color:var(--series);background:var(--series-soft);border-radius:999px;padding:0 7px}.expos-note{font-size:12px;color:var(--muted);cursor:help}.expos-blurb{margin:6px 0 0;font-size:13.5px;color:var(--ink-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;cursor:pointer}.expos-blurb.open{display:block;cursor:default}.expos-sections{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px}.expos-section{font-size:12.5px;color:var(--ink);text-decoration:none;border:1px solid var(--border);border-radius:999px;padding:2px 9px;white-space:nowrap}.expos-section:hover{border-color:var(--accent);background:var(--accent-soft)}.expos-section-num{color:var(--muted);font-variant-numeric:tabular-nums;margin-right:5px}.expos-comments-toggle{font-size:12.5px;margin-left:4px}.expos-comments{list-style:none;margin:10px 0 0;padding:0;max-height:280px;overflow-y:auto;display:flex;flex-direction:column;gap:6px}.expos-comments li{font-size:13px;color:var(--ink-2);border-left:2px solid var(--grid);padding-left:10px}.expos-comment-term{color:var(--muted);font-size:11.5px;margin-right:6px}.expos-stats{display:grid;grid-template-columns:repeat(3,1fr);align-content:start;text-align:center;border-left:1px solid var(--grid);padding-left:14px}.expos-stat{display:flex;flex-direction:column}.expos-stat-val{font-size:17px;font-weight:650;font-variant-numeric:tabular-nums}.expos-stat-label{font-size:11px;color:var(--muted)}.expos-stat-foot{grid-column:1 / -1;font-size:11.5px;color:var(--muted);margin-top:4px}.expos-studio>summary{cursor:pointer;font-size:14px;color:var(--ink-2);margin:8px 0 12px}.expos-studio>summary:hover{color:var(--accent)}@media(max-width:700px){.expos-card{grid-template-columns:1fr;gap:10px;padding:14px}.expos-stats{border-left:none;border-top:1px solid var(--grid);padding:10px 0 0}.expos-search{max-width:none}}.board-all{margin-top:8px;padding:0;font:inherit;font-size:13px;font-weight:600;color:var(--accent);background:none;border:none;cursor:pointer}.board-all:hover{text-decoration:underline}.moved-note{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding:10px 14px;border-radius:8px;background:var(--accent-soft);color:var(--ink);font-size:14px}.moved-note-close{border:none;background:none;color:var(--muted);font-size:18px;line-height:1;cursor:pointer;padding:0 2px}.expos-section{display:inline-flex;align-items:center;gap:4px;padding-left:4px}.expos-section a{color:inherit;text-decoration:none}.expos-section.starred{border-color:var(--accent);background:var(--accent-soft)}.expos-star{border:none;background:none;padding:0 2px;font-size:14px;line-height:1;color:var(--muted);cursor:pointer}.expos-star:hover,.expos-section.starred .expos-star{color:var(--accent)}.expos-topic-btn{all:unset;cursor:pointer;color:var(--ink)}.expos-topic-btn:hover{color:var(--accent);text-decoration:underline}.expos-topic-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}.expos-ext{font-size:12px;color:var(--muted);text-decoration:none}.expos-ext:hover{color:var(--accent);text-decoration:underline}.expos-card.focused{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}a.schedule-event{color:inherit;text-decoration:none}a.schedule-event:hover{filter:brightness(.96);border-width:2px}.picker-callout{display:flex;align-items:center;gap:18px;margin-top:14px;padding:14px 18px;background:var(--accent-soft);border:1px solid var(--accent);border-radius:10px;color:var(--ink);text-decoration:none}.picker-callout:hover{box-shadow:0 0 0 3px var(--accent-soft)}.picker-callout-text{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}.picker-callout-title{font-size:15.5px;font-weight:650}.picker-callout-sub{font-size:13.5px;color:var(--ink-2)}.picker-callout-terms{display:flex;flex-wrap:wrap;gap:2px 18px;margin-top:2px;font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums}.picker-callout-terms strong{color:var(--ink-2);font-weight:600}.picker-callout-btn{flex:none;padding:8px 14px;border-radius:999px;background:var(--accent);color:#fff;font-size:13.5px;font-weight:600;white-space:nowrap}.picker-callout:hover .picker-callout-btn{filter:brightness(1.1)}@media(max-width:700px){.picker-callout{flex-direction:column;align-items:stretch;gap:10px}.picker-callout-btn{text-align:center}}.expos-reports{grid-column:1 / -1;display:flex;flex-wrap:wrap;justify-content:center;gap:4px;margin-top:6px}.expos-report{font-size:11.5px;color:var(--accent);text-decoration:none;border:1px solid var(--border);border-radius:999px;padding:0 7px;white-space:nowrap}.expos-report:hover{border-color:var(--accent);background:var(--accent-soft)}.comment.has-save{position:relative;padding-right:46px}.review-save{position:absolute;top:8px;right:8px;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:none;border-radius:7px;background:none;color:var(--muted);cursor:pointer}@media(hover:hover)and (pointer:fine){.comment.has-save .review-save:not(.saved){opacity:0;transition:opacity .12s}.comment.has-save:hover .review-save,.comment.has-save .review-save:focus-visible{opacity:1}}.review-save:hover,.review-save:focus-visible{color:var(--crimson);background:var(--accent-soft)}.review-save.saved{color:var(--crimson)}.review-save svg{display:block}.nav-saved{display:inline-flex;align-items:center;gap:4px}.nav-saved svg{display:block}.sr-group{margin-top:32px;max-width:720px}.sr-group:first-of-type{margin-top:0}.sr-head{display:flex;align-items:baseline;gap:8px;padding-bottom:8px;border-bottom:1px solid var(--grid);color:var(--ink);text-decoration:none}.saved-reviews .lib-head{max-width:720px}.saved-reviews .sr-head .board-code{color:var(--muted)}.sr-title{font-size:15px;font-weight:600}a.sr-head:hover .sr-title{text-decoration:underline}.sr-list{list-style:none;margin:0;padding:0}.sr-item{position:relative;padding:16px 40px 16px 0;border-bottom:1px solid var(--grid)}.sr-item:last-child{border-bottom:none}.sr-text{margin:0;font-size:15px;line-height:1.6;color:var(--ink);overflow-wrap:anywhere}.sr-text mark{background:var(--accent-soft);color:inherit;border-radius:2px;padding:0 2px}.sr-meta{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:8px;font-size:13px;color:var(--muted)}.sr-view{color:var(--muted);text-decoration:underline;text-decoration-color:var(--grid);text-underline-offset:3px}.sr-view:hover{color:var(--accent);text-decoration-color:currentColor}.sr-gone{font-size:13px;color:var(--muted)}.sr-head .sr-gone{margin-left:auto}.saved-reviews .review-save{top:12px;right:-6px;color:var(--ink-2)}.saved-reviews .review-save:hover,.saved-reviews .review-save:focus-visible{color:var(--accent)}a.cg-more{display:inline-block;text-decoration:none}@media(max-width:640px){.nav-link{padding:6px}.comment.has-save{padding-right:38px}.review-save{top:6px;right:4px}}.schedule-plans-link{font-size:13px;font-weight:600;color:var(--accent);text-decoration:none}.schedule-plans-link:hover{text-decoration:underline}.nav-icon{vertical-align:-2px;margin-right:5px}@media(max-width:640px){.nav-label{display:none}.nav-icon{margin-right:0}}.lib-head{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:12px 16px;margin:0 0 24px}.lib-head-text{min-width:0}.lib-title{margin:0;font-size:24px;font-weight:600;letter-spacing:-.01em;line-height:1.25}.lib-meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin:4px 0 0;font-size:13px;color:var(--muted)}.lib-head-actions{display:flex;align-items:center;gap:8px}.lib-btn{font:inherit;font-size:13px;font-weight:600;color:var(--ink);background:transparent;border:1px solid var(--border);border-radius:8px;padding:6px 14px;cursor:pointer;white-space:nowrap}.lib-btn:hover{border-color:var(--baseline)}.lib-btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.lib-btn.primary:hover{filter:brightness(1.08)}.lib-link{font:inherit;font-size:13px;font-weight:600;color:var(--accent);background:none;border:none;padding:4px 0;cursor:pointer;text-decoration:none;white-space:nowrap}.lib-link:hover{text-decoration:underline}.lib-link.quiet{color:var(--ink-2);font-weight:400}.lib-link.quiet:hover{color:var(--ink);text-decoration:none}.lib-link.quiet.on{color:var(--ink);font-weight:600}.lib-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:0 16px;border-bottom:1px solid var(--grid)}.lib-toolbar-end{display:flex;align-items:center;gap:16px;margin-left:auto}.lib-tab{flex:none;display:inline-flex;align-items:baseline;gap:6px;font:inherit;font-size:15px;color:var(--ink-2);background:none;border:none;padding:10px 0;cursor:pointer;white-space:nowrap}.lib-tab:hover{color:var(--ink)}.lib-tab.active{color:var(--ink);font-weight:600;box-shadow:inset 0 -2px 0 var(--accent)}.lib-count{font-size:13px;font-weight:400;color:var(--muted);font-variant-numeric:tabular-nums}.lib-icon-btn{flex:none;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;font:inherit;font-size:15px;line-height:1;color:var(--muted);background:none;border:none;border-radius:6px;cursor:pointer}.lib-icon-btn:hover,.lib-icon-btn[aria-expanded=true]{color:var(--ink);background:var(--grid)}.lib-select{font:inherit;font-size:13px;color:var(--ink-2);background:transparent;border:none;padding:4px 0;cursor:pointer;max-width:180px}.lib-select:hover{color:var(--ink)}.lib-seg{display:inline-flex;gap:2px;padding:2px;border:1px solid var(--border);border-radius:8px}.lib-seg button{font:inherit;font-size:13px;color:var(--ink-2);background:none;border:none;border-radius:6px;padding:4px 12px;cursor:pointer;white-space:nowrap}.lib-seg button:hover{color:var(--ink)}.lib-seg button.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.lib-seg.small button{padding:2px 8px}.lib-empty{color:var(--muted);font-size:15px;padding:24px 0;margin:0}.lib-empty strong{color:var(--ink);font-weight:600}.lib-search{font:inherit;font-size:13px;color:var(--ink);background:transparent;border:1px solid var(--border);border-radius:8px;padding:6px 10px;width:200px}.lib-search:focus{outline:none;border-color:var(--accent)}.lib-toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom));transform:translate(-50%);z-index:50;display:flex;align-items:center;gap:16px;padding:8px 8px 8px 16px;font-size:13px;color:var(--page);background:var(--ink);border-radius:8px;box-shadow:var(--shadow-hover);white-space:nowrap}.lib-toast .lib-link{color:var(--page);text-decoration:underline}.lib-toast-x{font:inherit;font-size:13px;color:inherit;opacity:.6;background:none;border:none;padding:4px 8px;cursor:pointer}.lib-toast-x:hover{opacity:1}.lib-page .board-code{font-size:13px;font-weight:600;color:var(--ink)}.share-url{display:block;width:100%;max-width:520px;margin:-12px 0 24px;font:inherit;font-size:13px;color:var(--ink-2);background:transparent;border:1px solid var(--border);border-radius:8px;padding:6px 10px}.saved-controls{margin-bottom:8px}.folder-tabs{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:0 20px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.folder-tabs::-webkit-scrollbar{display:none}.folder-tab-wrap{flex:none;display:inline-flex;align-items:center;gap:2px}.folder-manage{display:flex;align-items:center;flex-wrap:wrap;gap:4px 16px;padding:8px 0;font-size:13px;color:var(--ink-2)}.folder-manage strong{color:var(--ink);font-weight:600}.folder-form{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;padding:8px 0}.folder-input{font:inherit;font-size:15px;color:var(--ink);background:transparent;border:1px solid var(--border);border-radius:8px;padding:6px 10px;flex:1;min-width:160px;max-width:320px}.folder-input:focus{outline:none;border-color:var(--accent)}.folder-btn{font:inherit;font-size:13px;font-weight:600;color:var(--ink);background:transparent;border:1px solid var(--border);border-radius:8px;padding:6px 14px;cursor:pointer}.folder-btn:hover{border-color:var(--baseline)}.folder-btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.folder-btn.primary:disabled{opacity:.4;cursor:default}.folder-btn.danger{color:var(--accent);border-color:var(--accent)}.tag-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:12px 0 4px}.tag-pill{display:inline-flex;align-items:baseline;gap:6px;font:inherit;font-size:13px;color:var(--ink-2);background:transparent;border:1px solid var(--border);border-radius:999px;padding:2px 10px;cursor:pointer;white-space:nowrap}.tag-pill:hover{border-color:var(--baseline);color:var(--ink)}.tag-pill.active{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.tag-pill.active .lib-count{color:inherit}.tag-x{font:inherit;font-size:12px;color:var(--muted);background:none;border:none;padding:0 0 0 2px;cursor:pointer}.tag-x:hover{color:var(--ink)}.shortlist .compare{background:none;border:none;border-radius:0;box-shadow:none;font-size:13px}.shortlist .compare th{font-size:13px;font-weight:400;text-transform:none;letter-spacing:0;color:var(--muted);padding:12px 12px 8px}.shortlist .compare td{padding:16px 12px;color:var(--ink)}.shortlist .compare th:first-child,.shortlist .compare td:first-child{padding-left:0}.shortlist .compare th:last-child,.shortlist .compare td:last-child{padding-right:0}.shortlist .compare .num{text-align:right}.shortlist .compare td.best{font-weight:600;color:var(--ink)}.shortlist .compare-course{gap:2px}.shortlist .compare-title{font-size:13px;font-weight:400;color:var(--ink-2)}.shortlist .compare-muted{color:var(--ink-2)}.saved-labels{display:flex;flex-wrap:wrap;gap:2px 12px;margin-top:4px}.saved-label{font:inherit;font-size:13px;color:var(--muted);background:none;border:none;padding:0;cursor:pointer}.saved-label:hover{color:var(--ink)}.saved-label.active{color:var(--accent)}.saved-actions{white-space:nowrap;text-align:right}.organize-btn{font:inherit;font-size:13px;color:var(--ink-2);background:none;border:none;padding:2px 8px;cursor:pointer}.organize-btn:hover{color:var(--ink);text-decoration:underline}.shortlist .compare-remove{font-size:13px;padding:2px 4px 2px 8px}.shortlist a.schedule-event:hover{filter:none;border-width:0 0 0 3px;background:color-mix(in srgb,var(--ink) 10%,var(--page))}.shortlist a.schedule-event.conflict:hover{background:color-mix(in srgb,var(--accent) 16%,var(--page))}.sheet-backdrop{position:fixed;inset:0;z-index:100;background:#00000052;display:flex;align-items:center;justify-content:center;padding:16px;animation:sheet-fade .15s ease}.sheet{width:100%;max-width:420px;max-height:calc(100vh - 32px);overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 48px #0003;padding:20px 24px;animation:sheet-rise .18s ease}.sheet-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.sheet-title{font-size:18px;font-weight:600;line-height:1.3;margin-top:2px}.sheet-close{font:inherit;font-size:13px;color:var(--muted);background:none;border:none;border-radius:6px;width:28px;height:28px;flex:none;cursor:pointer}.sheet-close:hover{color:var(--ink);background:var(--grid)}.sheet-section{margin-top:16px;padding-top:16px;border-top:1px solid var(--grid);display:flex;flex-direction:column;gap:8px;align-items:flex-start}.sheet-label{font-size:13px;color:var(--muted)}.sheet-empty{font-size:13px;color:var(--ink-2)}.sheet-folders{display:flex;flex-direction:column;width:100%}.sheet-folder{position:relative;display:flex;align-items:center;gap:12px;padding:8px 0;cursor:pointer;font-size:15px}.sheet-folder input{position:absolute;opacity:0;pointer-events:none}.sheet-folder:focus-within .sheet-check{outline:2px solid var(--accent);outline-offset:2px}.sheet-check{width:18px;height:18px;flex:none;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:#fff;border:1.5px solid var(--baseline);border-radius:4px}.sheet-folder:hover .sheet-check{border-color:var(--ink-2)}.sheet-folder.on .sheet-check{background:var(--accent);border-color:var(--accent)}.sheet-folder-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sheet-tags{display:flex;flex-wrap:wrap;gap:8px}.sheet .folder-form{padding:0;width:100%}.sheet-foot{display:flex;align-items:center;justify-content:space-between;margin-top:20px;padding-top:16px;border-top:1px solid var(--grid)}@keyframes sheet-fade{0%{opacity:0}}@keyframes sheet-rise{0%{transform:translateY(12px);opacity:0}}@media(prefers-reduced-motion:reduce){.sheet-backdrop,.sheet{animation:none}}.folder-btn,.lib-link,.lib-tab,.lib-icon-btn,.tag-pill,.organize-btn,.saved-label,.sheet-folder{-webkit-tap-highlight-color:transparent}@media(max-width:640px){.lib-head{margin-bottom:16px}.lib-search{width:100%;font-size:16px}.lib-head-actions:has(.lib-search){flex:1 1 100%}.lib-head-actions{flex-wrap:wrap;min-width:0;max-width:100%}.folder-input{font-size:16px}.folder-form{width:100%}.sheet-backdrop{align-items:flex-end;padding:0}.sheet{max-width:none;max-height:85vh;border-radius:12px 12px 0 0;padding:16px 16px calc(16px + env(safe-area-inset-bottom))}.saved-controls .lib-toolbar{border-bottom:none}.saved-controls .folder-tabs{flex-basis:100%;border-bottom:1px solid var(--grid);-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 24px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 24px),transparent);padding-right:24px}.saved-controls .lib-toolbar-end{padding-top:4px}.saved-table,.saved-table tbody{display:block}.saved-table thead{display:none}.saved-table tr{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:16px 0;border-bottom:1px solid var(--grid)}.shortlist .saved-table td{padding:0;border:none;min-width:0}.shortlist .saved-table td.num{text-align:left}.saved-table td.saved-course-cell{grid-column:1 / -1}.saved-table td[data-label=Term],.saved-table td[data-label=Instructor]{grid-column:span 2}.saved-table td.saved-instructor{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.saved-table td[data-label=Term]:before,.saved-table td[data-label=Instructor]:before{content:none!important}.saved-table td[data-label=Term]{grid-column:span 1;white-space:nowrap}.saved-table td[data-label=Instructor]{grid-column:span 3}.saved-table td[data-label]:before{content:attr(data-label);display:block;font-size:13px;font-weight:400;color:var(--muted)}.saved-table td[data-label=Enrolled]{display:none}.saved-table td.saved-actions{grid-column:1 / -1;display:flex;justify-content:flex-end;gap:8px}.saved-table td.saved-actions:empty{display:none}.organize-btn,.shortlist .compare-remove{padding:6px 8px}}@media(prefers-color-scheme:dark){.sheet-backdrop{background:#0009}}.conc-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}.conc-tag{font-size:var(--fs-xs);font-weight:var(--fw-regular);color:var(--ink-2);background:var(--fill);border-radius:4px;padding:0 6px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conc-tag.more{color:var(--muted);background:none}.conc-panel{margin-top:10px;padding:10px 14px;background:var(--surface);border:1px solid var(--border);border-radius:10px;font-size:13px;display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px}.conc-panel-list{display:flex;flex-direction:column;gap:3px;flex:1;min-width:220px}.conc-panel-row{display:flex;gap:8px;align-items:baseline}.conc-panel-name{flex:none;min-width:46px;font-size:11px;font-weight:700;color:var(--series);letter-spacing:.02em}.conc-panel-reqs{color:var(--ink-2)}.conc-flag{color:var(--muted);font-size:11.5px;font-style:italic}.conc-plan-link{white-space:nowrap}@media(max-width:700px){.nav-link{padding:6px}}@media(max-width:640px){.topbar{gap:var(--space-2);padding:10px 0}.search{height:38px;padding-left:var(--space-3)}.topnav{gap:0}.topnav .nav-link{position:relative;justify-content:center;width:38px;height:38px;padding:0}.topnav .nav-icon{display:block;width:18px;height:18px}.topnav .nav-label{display:none}.topnav .nav-count{position:absolute;top:3px;right:2px;font-size:10px;line-height:1}.section-tabs{margin-top:var(--space-2)}.hero-strip{padding-top:var(--space-6)}.hero-title{font-size:20px}.filter-bar{flex-wrap:wrap;padding-top:var(--space-4)}.filter-bar .chip-row{flex:1 1 100%;min-width:0;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 16px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 16px),transparent)}.filter-bar .chip-row::-webkit-scrollbar{display:none}.filter-spacer{display:none}.filters-toggle{display:inline-flex;align-items:center;gap:6px;flex:none;font:inherit;font-size:var(--fs-sm);color:var(--ink-2);background:none;border:1px solid var(--border);border-radius:var(--radius-pill);height:32px;padding:0 var(--space-3);cursor:pointer}.filters-toggle.is-set,.filters-toggle.open{color:var(--ink);border-color:var(--border-strong)}.filters-toggle-count{font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--accent)}.filter-selects{display:none;flex:1 0 100%}.filter-selects.open{display:flex}.filter-selects{min-width:0}.filter-selects .bar-select{flex:1 1 140px;min-width:0;max-width:100%;font-size:16px}}.gen-tag{color:#2b7a46;background:#2f8f4e1f}.gen-tag.gen-qrd,.gen-tag.gen-expos{color:#8a5a00;background:#c4880021}.gen-tag.gen-lang{color:#6b4bb8;background:#6b4bb81c}.gen-verify{margin-left:2px;opacity:.7}.gen-panel-tags{display:flex;flex-wrap:wrap;gap:4px}.conc-track-line{display:block}.conc-track-name{color:var(--muted);font-size:12px}@media(prefers-color-scheme:dark){.gen-tag{color:#7fd29b;background:#7fd29b21}.gen-tag.gen-qrd,.gen-tag.gen-expos{color:#f0c062;background:#f0c06221}.gen-tag.gen-lang{color:#c3a8ff;background:#c3a8ff21}}.detail-hero{background:none;border:none;border-radius:0;box-shadow:none;padding:0;margin-bottom:var(--space-6)}.detail-code{font-size:var(--fs-sm);font-weight:var(--fw-bold);letter-spacing:.04em;color:var(--muted)}.detail-title{margin:var(--space-1) 0 var(--space-2);font-size:var(--fs-xl);font-weight:var(--fw-bold);line-height:1.15}.detail-meta{font-size:var(--fs-base);color:var(--ink-2)}.detail-hero .stat-row{grid-template-columns:repeat(auto-fit,minmax(150px,max-content));gap:var(--space-5) var(--space-7);margin:var(--space-5) 0 0;padding:0;border:none}.detail-hero .stat-tile,.detail-hero .stat-tile+.stat-tile{padding:0;border:none}.stat-value{order:-1;font-size:var(--fs-lg);font-weight:var(--fw-bold);line-height:1.2;font-variant-numeric:tabular-nums}.stat-tile{display:flex;flex-direction:column}.stat-label{margin-top:var(--space-1);font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--ink-2)}.stat-sub{font-size:var(--fs-sm);color:var(--muted)}.dist-block{background:none;border:none;border-radius:0;box-shadow:none;padding:0}.dist-header{flex-wrap:wrap;gap:var(--space-1) var(--space-4)}.dist-title{font-size:var(--fs-base);font-weight:var(--fw-bold);color:var(--ink)}.dist-mean{font-size:var(--fs-sm);font-weight:var(--fw-regular);color:var(--muted)}.scatter-block{margin-bottom:var(--space-6)!important}.scatter-reset{color:var(--ink-2);box-shadow:none}.scatter-reset:hover{color:var(--ink);border-color:var(--border-strong)}.scatter-tip-code{fill:var(--ink)}.scatter-tip-bg{filter:none}.ins-section{margin-top:var(--space-7)}.ins-section.ins-scatter{margin-top:0}.ins-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--space-2) var(--space-4);padding-bottom:var(--space-2);margin-bottom:var(--space-3);border-bottom:1px solid var(--hairline)}.ins-h2{margin:0;font-size:var(--fs-md);font-weight:var(--fw-bold)}.ins-h3{margin:0;font-size:var(--fs-base);font-weight:var(--fw-bold)}.ins-hint{margin:0;font-size:var(--fs-sm);color:var(--muted)}.ins-head .lib-seg{align-self:center}.insights .insights-boards{gap:var(--space-6) var(--space-7)}.ins-board-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:0 var(--space-3)}.ins-sub{margin-bottom:var(--space-2)}.insights .board{margin-top:var(--space-1)}.insights .board-row,.dept-row{min-height:36px}.insights .board-row{padding:var(--space-2) 0;font-size:var(--fs-sm)}.insights .board li:first-child .board-row{border-top:1px solid var(--hairline)}.insights .board-row:before{font-size:var(--fs-sm);width:20px}.insights .board-row:hover .board-code{color:var(--accent)}.insights .board-value{font-size:var(--fs-sm);font-weight:var(--fw-regular);color:var(--ink-2)}.insights .board-all{margin-top:var(--space-2)}.insights .ins-hint+.dist-rows{margin-top:var(--space-4)}.insights .dist-rows{gap:var(--space-1)}.insights .dept-row{cursor:pointer;border-radius:var(--radius-sm)}.insights .dept-row:hover .dept-name{color:var(--ink)}.insights .dist-track{height:8px;border-left-width:1px}.insights .dist-bar{border-radius:0 2px 2px 0}.insights .dept-name{font-size:var(--fs-sm);color:var(--ink-2)}.insights .dept-vals{font-size:var(--fs-sm)}@media(max-width:640px){.ins-section{margin-top:var(--space-6)}.ins-head .ins-hint{flex-basis:100%}.detail-title{font-size:var(--fs-lg)}.detail-hero .stat-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}.detail-hero .stat-tile{border-top:none}}.instructor-upcoming{margin:0 0 var(--space-6);padding:var(--space-4) 0 0;background:none;border:none;border-top:1px solid var(--hairline);border-radius:0;font-size:var(--fs-sm)}.instructor-upcoming .upcoming-title{font-size:var(--fs-sm);font-weight:var(--fw-bold);letter-spacing:0;text-transform:none;color:var(--ink-2)}.instructor-upcoming .count-link{color:var(--ink)}.instructor-upcoming .count-link:hover{color:var(--accent);text-decoration:underline}.instructor-upcoming .upcoming-link{color:var(--muted)}.instructor-upcoming .upcoming-link:hover{color:var(--accent)}.comment-search .comment-global-search{max-width:560px;background:transparent;margin-top:var(--space-4);padding:var(--space-2) var(--space-3)!important}.comment-search .comment-global-search:focus{box-shadow:none}.comment-search .cg-summary{font-size:var(--fs-sm);color:var(--muted);padding:var(--space-3) 0 0}.comment-search .cg-summary strong{font-weight:var(--fw-bold)}.comment-search .cg-group{margin-top:var(--space-6);max-width:720px}.comment-search .cg-head{padding-bottom:var(--space-2);border-bottom:1px solid var(--hairline)}.comment-search .cg-head .board-code{font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--muted)}.comment-search .cg-title{font-size:var(--fs-base);font-weight:var(--fw-bold);min-width:0}.comment-search .cg-head:hover .cg-title{text-decoration:underline}.comment-search .cg-count{font-size:var(--fs-sm);font-weight:var(--fw-regular);color:var(--muted)}.comment-search .comment-list{max-width:720px;margin-top:0;gap:0}.comment-search .comment{background:none;border:none;border-bottom:1px solid var(--hairline);border-radius:0;padding:var(--space-4) 40px var(--space-4) 0;font-size:var(--fs-base);line-height:1.6;color:var(--ink)}.comment-search .comment mark{color:inherit;font-weight:var(--fw-regular)}.comment-search .review-save{top:12px;right:0}.comment-search .cg-term{font-size:var(--fs-sm);font-weight:var(--fw-regular)}.comment-search .cg-more{font-size:var(--fs-sm);padding-top:var(--space-3)}.expos .expos-head{margin:0 0 var(--space-5)}.expos .detail-title{font-size:var(--fs-lg);margin-top:0}.expos .detail-meta{font-size:var(--fs-sm);color:var(--muted)}.expos .detail-meta a,.expos .detail-meta .count-link{color:var(--ink-2);font-weight:var(--fw-regular)}.expos .detail-meta a:hover,.expos .detail-meta .count-link:hover{color:var(--accent)}.expos .term-tabs{gap:2px;padding:2px;border:1px solid var(--border);border-radius:8px}.expos .term-tab{border:none;border-radius:6px;background:none;padding:4px 12px}.expos .term-tab:hover{color:var(--ink)}.expos .term-tab.active{background:var(--accent-soft);color:var(--accent)}.expos .expos-filters{padding-top:0}.expos .expos-search{border-radius:8px}.expos-list{gap:0;border-top:1px solid var(--hairline)}.expos-card{gap:var(--space-5);padding:var(--space-4) 0;background:none;border:none;border-bottom:1px solid var(--hairline);border-radius:0}.expos-topic{font-size:var(--fs-md);font-weight:var(--fw-bold)}.expos-byline{font-size:var(--fs-sm)}.expos-badge{color:var(--ink-2);background:var(--fill);font-weight:var(--fw-regular)}.expos-blurb{font-size:var(--fs-sm)}.expos-section{font-size:var(--fs-sm);border-color:transparent;background:var(--fill)}.expos-section:hover{border-color:transparent;background:var(--fill-strong)}.expos-stats{border-left:none;padding-left:0}.expos-stat-val{font-size:var(--fs-md);font-weight:var(--fw-bold)}.expos-stat-label,.expos-stat-foot,.expos-comments li{font-size:var(--fs-sm)}.expos-studio>summary{font-size:var(--fs-sm)}@media(max-width:700px){.expos-card{padding:var(--space-4) 0}.expos-stats{border-top:none;padding-top:0;text-align:left}}.expos-card.focused{border-color:var(--hairline);box-shadow:inset 2px 0 0 var(--accent);padding-left:var(--space-3)}.expos-reports{justify-content:flex-start;gap:var(--space-1);margin-top:var(--space-2)}.expos-report{font-size:var(--fs-sm);color:var(--ink-2);border-color:transparent;background:var(--fill)}.expos-report:hover{color:var(--ink);border-color:transparent;background:var(--fill-strong)}.expos-stats{text-align:left}.expos-comments-toggle{font-size:var(--fs-sm)}.insights .dept-row{min-height:28px}.insights .lib-meta{gap:4px 8px}.insights .lib-meta span+span:before{content:"·";margin-right:8px}.expos-stats{grid-template-columns:repeat(3,max-content);column-gap:var(--space-4);justify-content:start}@media(min-width:701px){.expos-card{grid-template-columns:minmax(0,1fr) max-content}.expos-reports{max-width:220px}}.course-page{max-width:none}.cp-main{display:contents}.cp-layout{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"head head" "seg  seg" "sect sect" "desc desc" "stats foot" "side side" "rows rows" "sum  sum" "com  com";column-gap:48px;align-items:end}.cp-layout .cp-header{grid-area:head}.cp-layout .cp-seg{grid-area:seg;justify-self:start}.cp-layout .cp-sections{grid-area:sect}.cp-layout .cp-stats{grid-area:stats;margin-top:24px;justify-content:start}.cp-layout .cp-stat-foot{grid-area:foot;justify-self:end;align-self:end;text-align:right}.cp-layout .course-desc{grid-area:desc;max-width:none;align-self:start}.cp-layout .cp-aside{grid-area:side;align-self:start}.cp-layout .cp-rows-main{grid-area:rows;margin-top:0;border-top:none;align-self:start}.cp-layout .review-summary{grid-area:sum;max-width:none;align-self:start}.cp-layout .comments{grid-area:com;align-self:start}.cp-aside .cp-rows{margin-top:32px}.course-page .comments-header{max-width:none}.course-page .comment-list,.comment-search .comment-list,.saved-reviews .comment-list{display:block;max-width:none;column-width:400px;column-gap:48px}.comment-cols{display:grid;grid-template-columns:repeat(var(--comment-cols, 1),minmax(0,1fr));column-gap:48px;align-items:start;margin-top:8px}.course-page .comment-cols .comment-list{columns:auto;margin-top:0}.course-page .comment,.comment-search .comment,.saved-reviews .comment{break-inside:avoid}.comment-search .cg-group,.sr-group,.saved-reviews .lib-head{max-width:none}@media(max-width:1000px){.cp-layout{grid-template-columns:minmax(0,1fr);grid-template-areas:"head" "seg" "sect" "desc" "stats" "foot" "side" "rows" "sum" "com"}.cp-layout .cp-stats{justify-content:start;margin-top:24px}.cp-layout .cp-stat-foot{justify-self:start;text-align:left}}@media(max-width:640px){.cp-aside .cp-label{width:88px}}.cp-aside .conc-panel-reqs{display:flex;flex-wrap:wrap;gap:4px;min-width:0}.cp-aside .conc-tag{max-width:100%;white-space:normal}.lib-link.danger{color:var(--accent)}.lib-link.danger:hover{text-decoration:underline}.not-found .detail-header{margin:8px 0 16px}.not-found-actions{font-size:15px;color:var(--muted)}.filter-bar{position:relative}.req-picker{position:static}.req-picker-button{display:inline-flex;align-items:center;gap:6px;max-width:260px;text-align:left}.req-picker-icon{flex:none;opacity:.8}.req-picker-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.req-chev{flex:none;width:6px;height:6px;margin:0 2px 3px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);transition:transform .15s}.req-picker-button[aria-expanded=true] .req-chev{transform:rotate(-135deg);margin-bottom:-3px}.rq-panel{position:absolute;top:calc(100% - var(--space-2));right:0;z-index:30;width:min(720px,100%);height:min(560px,calc(100vh - 160px));min-height:360px;box-sizing:border-box;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-float);overflow:hidden;text-align:left}.rq-panel:focus{outline:none}.rq-top{padding:var(--space-3) var(--space-3) 0;border-bottom:1px solid var(--hairline)}.rq-top>:last-child:not(.rq-quick){margin-bottom:var(--space-3)}.rq-title-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-2)}.rq-title{font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--ink-2)}.rq-close{font:inherit;font-size:13px;width:28px;height:28px;border:none;border-radius:50%;background:none;color:var(--muted);cursor:pointer}.rq-close:hover{background:var(--fill);color:var(--ink)}.rq-search{position:relative}.rq-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}.rq-input{width:100%;box-sizing:border-box;height:40px;font:inherit;font-size:var(--fs-base);color:var(--ink);background:var(--fill);border:1px solid transparent;border-radius:var(--radius);padding:0 var(--space-3) 0 34px}.rq-input:focus{outline:none;border-color:var(--accent);background:var(--surface)}.rq-quick{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:var(--space-3) 0}.rq-quick-label{font-size:var(--fs-xs);color:var(--muted);margin-right:2px}.rq-quick-chip{font:inherit;font-size:var(--fs-sm);color:var(--ink-2);background:var(--fill);border:none;border-radius:var(--radius-pill);height:28px;padding:0 var(--space-3);white-space:nowrap;cursor:pointer}.rq-quick-chip:hover{color:var(--ink);background:var(--fill-strong)}.rq-quick-chip.is-set{color:var(--accent);background:var(--accent-soft);font-weight:var(--fw-bold)}.rq-quick-chip.rq-clear{background:none;color:var(--muted);text-decoration:underline;text-underline-offset:2px}.rq-body{flex:1;min-height:0;display:grid;grid-template-columns:190px 1fr}.rq-body.is-searching{grid-template-columns:1fr}.rq-cats{display:flex;flex-direction:column;gap:2px;padding:var(--space-2);border-right:1px solid var(--hairline);overflow-y:auto}.rq-cat{font:inherit;font-size:var(--fs-sm);color:var(--ink-2);text-align:left;background:none;border:none;border-radius:var(--radius-sm);padding:8px var(--space-3);display:flex;flex-direction:column;cursor:pointer}.rq-cat:hover{background:var(--fill);color:var(--ink)}.rq-cat.active{background:var(--fill-strong);color:var(--ink);font-weight:var(--fw-bold)}.rq-cat-sub{font-size:var(--fs-xs);color:var(--muted);font-weight:var(--fw-regular)}.rq-cat-plan{color:var(--accent)}.rq-cat-plan.active{color:var(--accent);background:var(--accent-soft)}.rq-items{min-width:0;min-height:0;display:flex;flex-direction:column}.rq-list{flex:1;min-height:0;overflow-y:auto;padding:var(--space-1) var(--space-2) var(--space-3)}.rq-hint{margin:0;padding:var(--space-2) var(--space-4) 0;font-size:var(--fs-xs);color:var(--muted)}.rq-hint:empty{display:none}.rq-empty{padding:var(--space-4) var(--space-2);font-size:var(--fs-sm);color:var(--muted)}.rq-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:var(--space-2) var(--space-3) var(--space-1);font-size:var(--fs-sm);min-width:0}.rq-back{font:inherit;color:var(--accent);background:none;border:none;padding:2px 4px;border-radius:var(--radius-sm);cursor:pointer}.rq-back:hover{background:var(--accent-soft)}.rq-crumb-sep{color:var(--muted)}.rq-crumb-here{font-weight:var(--fw-bold);color:var(--ink);min-width:0;overflow-wrap:anywhere}.rq-track{font:inherit;font-size:var(--fs-xs);color:var(--ink-2);background:var(--fill);border:none;border-radius:var(--radius-pill);height:26px;padding:0 var(--space-2);max-width:100%;margin-left:auto}.rq-list-filter{margin:var(--space-2) var(--space-3) 0;height:32px;box-sizing:border-box;font:inherit;font-size:var(--fs-sm);color:var(--ink);background:none;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 var(--space-2)}.rq-list-filter:focus{outline:none;border-color:var(--accent)}.rq-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-2);font-size:var(--fs-xs);color:var(--muted);padding:var(--space-3) var(--space-2) var(--space-1)}.rq-letter{padding-top:var(--space-2);font-weight:var(--fw-bold)}.rq-plan-head{font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--ink)}.rq-plan-head .rq-head-sub{font-weight:var(--fw-regular);font-size:var(--fs-xs);color:var(--muted)}.rq-opt{display:flex;align-items:center;gap:var(--space-2);font-size:var(--fs-sm);color:var(--ink);padding:7px var(--space-2);border-radius:var(--radius-sm);cursor:pointer}.rq-opt.active{background:var(--fill)}.rq-opt.selected .rq-opt-label,.rq-opt.selected .rq-tile-label{color:var(--accent);font-weight:var(--fw-bold)}.rq-indent{padding-left:var(--space-5)}.rq-opt-main{flex:1;display:flex;flex-direction:column;min-width:0}.rq-opt-label{overflow-wrap:anywhere}.rq-opt-context{font-size:var(--fs-xs);color:var(--muted);overflow-wrap:anywhere}.rq-opt mark{background:none;color:inherit;font-weight:var(--fw-bold);text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:2px}.rq-count{flex:none;font-size:var(--fs-xs);color:var(--muted);font-variant-numeric:tabular-nums}.rq-chev-right{flex:none;color:var(--muted);font-size:16px;line-height:1}.rq-opt.met .rq-opt-label{color:var(--ink-2)}.rq-status{flex:none;display:inline-grid;place-items:center;width:14px;height:14px;box-sizing:border-box;border-radius:50%;font-size:10px;line-height:1;vertical-align:-2px}.rq-status.is-open{border:1.5px solid var(--accent)}.rq-status.is-met{color:var(--positive);background:#2f8f4e24}.rq-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2);align-content:start;padding:var(--space-3)}.rq-tile{flex-direction:column;align-items:flex-start;justify-content:space-between;gap:var(--space-1);min-height:64px;box-sizing:border-box;padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--fs-base)}.rq-list:not(.rq-grid) .rq-tile{margin:var(--space-2) var(--space-1) 0;min-height:0}.rq-tile:hover,.rq-tile.active{border-color:var(--border-strong);background:var(--fill)}.rq-tile.selected{border-color:var(--accent);background:var(--accent-soft)}.rq-tile-label{font-weight:var(--fw-bold)}.rq-tile-count{font-size:var(--fs-xs);color:var(--muted)}.req-active{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin:calc(-1 * var(--space-2)) 0 var(--space-3)}.req-chip{display:inline-flex;align-items:center;gap:6px;max-width:100%;min-width:0;box-sizing:border-box;font-size:var(--fs-sm);line-height:20px;color:var(--accent);background:var(--accent-soft);border-radius:var(--radius-pill);padding:4px 6px 4px var(--space-3)}.req-chip-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.req-chip-text strong{font-weight:var(--fw-bold)}.req-chip-x{flex:none;font:inherit;font-size:12px;line-height:1;color:inherit;background:none;border:none;border-radius:50%;width:20px;height:20px;cursor:pointer}.req-chip-x:hover{background:var(--fill)}.req-note{font-size:var(--fs-xs);color:var(--muted)}.req-link{color:inherit;text-decoration:none}.req-link:hover{color:var(--accent);text-decoration:underline}a.conc-tag.req-link:hover,a.gen-tag.req-link:hover{text-decoration:none;filter:brightness(.95)}@media(max-width:640px){.req-picker{flex:1 1 100%;min-width:0}.filter-selects .req-picker-button{width:100%;max-width:100%;font-size:16px}.filter-selects .req-picker-value{flex:1}.rq-panel{position:fixed;inset:0;width:100%;height:100%;height:100dvh;min-height:0;border:none;border-radius:0;box-shadow:none;z-index:1000}.rq-top{padding:var(--space-3) var(--space-4) 0}.rq-title{font-size:var(--fs-base);color:var(--ink)}.rq-close{width:36px;height:36px;font-size:15px;background:var(--fill);color:var(--ink)}.rq-input,.rq-list-filter,.rq-track{font-size:16px}.rq-quick{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 calc(-1 * var(--space-4));padding:var(--space-3) var(--space-4)}.rq-quick::-webkit-scrollbar,.rq-cats::-webkit-scrollbar{display:none}.rq-body{display:flex;flex-direction:column}.rq-cats{flex:none;flex-direction:row;gap:6px;overflow-x:auto;scrollbar-width:none;border-right:none;border-bottom:1px solid var(--hairline);padding:var(--space-2) var(--space-4)}.rq-cat{flex:none;white-space:nowrap;border-radius:var(--radius-pill);padding:6px var(--space-3);background:var(--fill)}.rq-cat-sub{display:none}.rq-items{flex:1}.rq-list{padding:var(--space-1) var(--space-3) var(--space-5)}.rq-opt{padding:10px var(--space-2);font-size:var(--fs-base)}.rq-grid{grid-template-columns:1fr;padding:var(--space-3) var(--space-4)}.rq-tile{min-height:56px}.req-chip{border-radius:var(--radius)}.req-chip-text{white-space:normal}}
