.control-bar,.course-controls{display:flex;flex-wrap:wrap;align-items:center;gap:1.5rem;margin-bottom:1rem;padding:1rem;background:var(--color-surface-hover);border-radius:.5rem}[data-theme=light] .control-bar,[data-theme=light] .course-controls{border:1px solid var(--color-border);box-shadow:0 2px 6px #0000001a}.control-group{display:flex;align-items:center;border:none;padding:0;margin:0}.control-group--reset{margin-left:auto}.control-group--stacked{display:block;flex:1 1 100%}.control-group__legend{padding:0;margin-bottom:.5rem;font-size:var(--text-base);font-weight:500;color:var(--color-text)}.control-group--search{flex:1 1 100%}.control-group--search .form-input{max-width:36rem}.control-row,.semester-controls{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}.control-row__label,.semester-controls__label{color:var(--color-text-muted);font-size:var(--text-base)}.control-link{background:none;border:none;padding:0;font-family:inherit;font-size:var(--text-base);color:var(--color-primary);cursor:pointer;text-decoration:none}.control-link:hover{text-decoration:underline}.control-link:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:2px}.control-separator{color:var(--color-text-muted);margin:0 .5rem}.segmented-control{display:flex;background:var(--color-bg);border:1px solid var(--color-primary);border-radius:.375rem;overflow:hidden}.segmented-control input[type=radio]{position:absolute;opacity:0;pointer-events:none}.segmented-control label{padding:.5rem 1rem;font-size:var(--text-base);color:var(--color-text-muted);cursor:pointer;border-right:1px solid var(--color-primary)}.segmented-control label:last-of-type{border-right:none}.segmented-control label:hover{text-decoration:underline;text-underline-offset:3px}.segmented-control input[type=radio]:checked+label{background:var(--color-primary);color:#fff}.segmented-control input[type=radio]:focus-visible+label{outline:2px solid var(--color-primary);outline-offset:2px}.checkbox-group{display:flex;flex-wrap:wrap;gap:1rem}.checkbox-pill{display:flex;align-items:stretch;cursor:pointer}.checkbox-pill input[type=checkbox]{position:absolute;opacity:0;pointer-events:none}.checkbox-pill__label{display:flex;align-items:center;padding:.5rem .75rem;font-size:var(--text-base);color:var(--color-text-muted);background:var(--color-bg);border:1px solid var(--color-primary);border-radius:.375rem}.checkbox-pill:hover .checkbox-pill__label{outline:2px solid var(--color-primary);outline-offset:2px}.checkbox-pill input[type=checkbox]:checked+.checkbox-pill__label{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.checkbox-pill input[type=checkbox]:focus-visible+.checkbox-pill__label{outline:2px solid var(--color-primary);outline-offset:2px}.filter-disclosure{--fd-box: 1.25rem;--fd-gap: .625rem;--fd-pad: .5rem;--fd-pad-block: max(.25rem, (2.75rem - 1lh) / 2)}@supports not (height: 1lh){.filter-disclosure{--fd-pad-block: .625rem}}.filter-disclosure .control-link{position:relative}.filter-disclosure .control-link:before{content:"";position:absolute;inset:50% 0 auto;height:2.75rem;transform:translateY(-50%)}.filter-disclosure__head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:0 1rem;margin-bottom:.5rem}.filter-disclosure__label{margin-bottom:0}.filter-disclosure__trigger{display:flex;align-items:center;justify-content:space-between;min-height:2.75rem;padding:.625rem .875rem;font-size:var(--text-base);line-height:1.5;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:.375rem;cursor:pointer;list-style:none;user-select:none}.filter-disclosure__trigger::-webkit-details-marker{display:none}.filter-disclosure__trigger::marker{content:""}.filter-disclosure__trigger:hover{border-color:var(--color-primary)}.filter-disclosure__value{flex:1;text-align:left}.filter-disclosure__chevron{width:1rem;height:1rem;flex-shrink:0;margin-left:.5rem;color:var(--color-text-muted);transition:transform .15s ease}.filter-disclosure__details[open] .filter-disclosure__chevron{transform:rotate(180deg)}.filter-disclosure__panel{display:grid;gap:1.25rem;min-width:0;margin:.5rem 0 0;padding:1rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:.375rem;overflow-wrap:anywhere}.filter-disclosure__panel>*{min-width:0}.filter-disclosure__group{margin:0;padding:0;border:none}.filter-disclosure__group-label{padding:0;font-size:var(--text-small);font-weight:700;color:var(--color-text)}.filter-disclosure__group-label--plain{padding:var(--fd-pad-block) calc(var(--fd-pad) + var(--fd-box) + var(--fd-gap));line-height:1.5}.filter-disclosure__options{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(18rem,100%),1fr));column-gap:2rem}.filter-disclosure__group>.filter-disclosure__options{padding-left:calc(var(--fd-box) + var(--fd-gap))}.filter-disclosure__option{padding:var(--fd-pad-block) var(--fd-pad);border-radius:.375rem}.filter-disclosure__option:hover{background:var(--color-surface-hover)}.filter-disclosure__option:has(input:checked) .filter-disclosure__name{font-weight:700;color:var(--color-primary)}.filter-disclosure__footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1.5rem;padding-top:.75rem;border-top:1px solid var(--color-border-muted)}@media (max-width: 1200px){.control-bar{flex-wrap:wrap}.control-group--reset{width:100%;margin-left:0;justify-content:flex-start}}@media (max-width: 1024px){.control-group--type{width:100%;order:2}.control-group--reset{order:3}.checkbox-group{justify-content:flex-start}.control-bar .checkbox-group{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;width:100%}.control-bar .checkbox-pill{width:100%}.control-bar .checkbox-pill__label{width:100%;justify-content:center}}@media (max-width: 768px){.control-bar .checkbox-group{grid-template-columns:repeat(2,1fr)}}@media (max-width: 500px){.control-group--semester{width:100%}.segmented-control{flex-direction:column;width:100%}.segmented-control label{border-right:none;border-bottom:1px solid var(--color-primary)}.segmented-control label:last-of-type{border-bottom:none}.checkbox-group{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.checkbox-pill{width:100%}.checkbox-pill__label{width:100%;justify-content:center}}@media (max-width: 400px){.checkbox-group{grid-template-columns:repeat(2,1fr)}.control-bar .checkbox-group{grid-template-columns:1fr}}[data-theme=dark] .segmented-control{background:var(--color-surface);border-color:var(--color-border)}[data-theme=dark] .segmented-control label{background:var(--color-surface);color:var(--color-text-muted);border-color:var(--color-border)}[data-theme=dark] .segmented-control input[type=radio]:checked+label{background:var(--color-surface);color:var(--color-primary);box-shadow:inset 0 0 0 2px var(--color-primary)}[data-theme=dark] .segmented-control label:hover{text-decoration:underline;text-underline-offset:3px}[data-theme=dark] .checkbox-pill__label{background:var(--color-surface);color:var(--color-text-muted);border-color:var(--color-border)}[data-theme=dark] .checkbox-pill input[type=checkbox]:checked+.checkbox-pill__label{background:var(--color-surface);color:var(--color-primary);border-color:var(--color-primary)}[data-theme=dark] .checkbox-pill input[type=checkbox]:not(:checked)+.checkbox-pill__label{opacity:1;color:var(--color-text-muted);border-color:var(--color-border)}[data-theme=dark] .checkbox-pill:hover input[type=checkbox]:checked+.checkbox-pill__label,[data-theme=dark] .checkbox-pill:hover input[type=checkbox]:not(:checked)+.checkbox-pill__label{outline:2px solid var(--color-primary);outline-offset:2px}@media (max-width: 500px){[data-theme=dark] .segmented-control label{border-right:none;border-bottom:1px solid var(--color-border)}[data-theme=dark] .segmented-control label:last-of-type{border-bottom:none}}[data-theme=high-contrast] .control-bar,[data-theme=high-contrast] .course-controls{background:#000;border:2px solid var(--color-border)}[data-theme=high-contrast] .control-link{color:#ff0}[data-theme=high-contrast] .control-link:focus-visible{outline:3px solid #ffff00;outline-offset:2px}[data-theme=high-contrast] .segmented-control{background:#000;border:none}[data-theme=high-contrast] .segmented-control label{background:#000;border-color:var(--color-border);color:#ff0}[data-theme=high-contrast] .segmented-control label:hover{text-decoration:underline;text-underline-offset:3px}[data-theme=high-contrast] .segmented-control input[type=radio]:checked+label{background:#ff0;color:#000}[data-theme=high-contrast] .checkbox-pill__label{background:#000;border:2px solid var(--color-border);color:#ff0}[data-theme=high-contrast] .checkbox-pill:hover .checkbox-pill__label{border-color:var(--color-border);outline:3px solid #fff;outline-offset:3px}[data-theme=high-contrast] .checkbox-pill input[type=checkbox]:checked+.checkbox-pill__label{background:#ff0;border-color:#ff0;color:#000}[data-theme=high-contrast] .checkbox-pill input[type=checkbox]:not(:checked)+.checkbox-pill__label{opacity:1}[data-theme=high-contrast] .filter-disclosure__trigger,[data-theme=high-contrast] .filter-disclosure__panel{background:#000;border:2px solid #fff}[data-theme=high-contrast] .filter-disclosure__trigger:hover,[data-theme=high-contrast] .filter-disclosure__trigger:focus-visible{border-color:#ff0;outline:3px solid #fff;outline-offset:2px}[data-theme=high-contrast] .filter-disclosure__chevron{transition:none}[data-theme=high-contrast] .filter-disclosure__option:hover{background:#000;outline:3px solid #fff;outline-offset:3px}[data-theme=high-contrast] .filter-disclosure__option:has(input:checked) .filter-disclosure__name{color:#ff0}@media (max-width: 500px){[data-theme=high-contrast] .segmented-control label{border-right:none;border-bottom:2px solid var(--color-border)}[data-theme=high-contrast] .segmented-control label:last-of-type{border-bottom:none}}.filter-controls{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end;margin-top:1.5rem;margin-bottom:2rem}.filter-field{display:flex;flex-direction:column;gap:.5rem}.filter-field label{font-weight:500;color:var(--color-text)}.filter-field.filter-field--button{flex-direction:row;gap:1rem;align-self:flex-end}@media (max-width: 640px){.filter-controls{flex-direction:column;align-items:stretch}.filter-field{width:100%}.filter-field--button{align-self:stretch}}.filter-results{min-height:100px}.filter-empty-state,.filter-no-results{text-align:center;color:var(--color-text-muted);padding:2rem;background:var(--color-surface-hover);border-radius:.5rem}[data-theme=high-contrast] .filter-empty-state,[data-theme=high-contrast] .filter-no-results{background:transparent;border:1px solid var(--color-border)}
