:root{--color-beaver-orange:#d73f09;--color-paddletail-black:#000;--color-bucktooth-white:#fff;--color-off-white:#f7f5f5;--color-pine-stand:#4a773c;--color-dark-bg:#212529;--color-reindeer-moss:#c4d6a4;--color-star-canvas:#003b5c;--color-moondust:#c6dae7;--color-copy:#423e3c;--color-crater:#8e9089;--color-bg:var(--color-dark-bg);--color-edge:var(--color-crater);--color-node-bg:var(--color-copy);--color-node-text:var(--color-bucktooth-white);--color-node-border:#fff6;--color-selected:var(--color-beaver-orange);--color-selected-text:var(--color-bucktooth-white);--color-ancestor:var(--color-moondust);--color-ancestor-text:var(--color-paddletail-black);--color-ancestor-path:var(--color-moondust);--color-child:var(--color-reindeer-moss);--color-child-text:var(--color-paddletail-black);--color-child-path:var(--color-reindeer-moss);--color-top-bar-header-bg:var(--color-copy);--color-top-bar-selection-bg:var(--color-dark-bg);--color-top-bar-text:var(--color-bucktooth-white);--color-top-bar-border:#ffffff1f;--color-top-bar-input-border:#ffffff80;--color-focus:var(--color-moondust)}@media (prefers-color-scheme:light){:root:not([data-theme]){--color-bg:var(--color-off-white);--color-edge:var(--color-dark-bg);--color-node-bg:var(--color-dark-bg);--color-node-text:var(--color-bucktooth-white);--color-node-border:var(--color-dark-bg);--color-ancestor:var(--color-star-canvas);--color-ancestor-text:var(--color-bucktooth-white);--color-ancestor-path:var(--color-star-canvas);--color-child:var(--color-pine-stand);--color-child-text:var(--color-bucktooth-white);--color-child-path:var(--color-pine-stand);--color-top-bar-header-bg:#e9e5e4;--color-top-bar-selection-bg:var(--color-off-white);--color-top-bar-text:var(--color-paddletail-black);--color-top-bar-border:#0000001f;--color-top-bar-input-border:#00000080;--color-focus:var(--color-star-canvas)}}:root[data-theme=light]{--color-bg:var(--color-off-white);--color-edge:var(--color-dark-bg);--color-node-bg:var(--color-dark-bg);--color-node-text:var(--color-bucktooth-white);--color-node-border:var(--color-dark-bg);--color-ancestor:var(--color-star-canvas);--color-ancestor-text:var(--color-bucktooth-white);--color-ancestor-path:var(--color-star-canvas);--color-child:var(--color-pine-stand);--color-child-text:var(--color-bucktooth-white);--color-child-path:var(--color-pine-stand);--color-top-bar-header-bg:#e9e5e4;--color-top-bar-selection-bg:var(--color-off-white);--color-top-bar-text:var(--color-paddletail-black);--color-top-bar-border:#0000001f;--color-top-bar-input-border:#00000080;--color-focus:var(--color-star-canvas)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{background-color:var(--color-bg);height:100%;font-family:system-ui,-apple-system,sans-serif}html.scrollable,html.scrollable body{overflow:auto}html:not(.scrollable),html:not(.scrollable) body{overflow:hidden}#graph-container{width:100vw;position:relative}#edge-layer{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}.course-node{background:var(--color-node-bg);color:var(--color-node-text);border:.0625rem solid var(--color-node-border);cursor:pointer;border-radius:.375rem;justify-content:center;align-items:center;font-size:.875rem;font-weight:600;transition:transform .15s,opacity .15s,border-color .15s,background-color .15s;display:flex;position:absolute}.course-node-detailed{text-align:left;flex-direction:column;justify-content:center;align-items:flex-start;gap:.0625rem;padding:.25rem .5rem}.course-node-detailed .course-node-label{font-size:.75rem;font-weight:700;line-height:1.2}.course-node-detailed .course-node-title{text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.5625rem;font-weight:400;line-height:1.2;display:-webkit-box;overflow:hidden}.course-node[data-core=true]:before{content:"*";pointer-events:none;font-size:.75rem;font-weight:700;line-height:1;position:absolute;top:.125rem;right:.25rem}.course-node:focus-visible{outline:.1875rem solid var(--color-focus);outline-offset:.1875rem;z-index:10}.course-node.search-highlighted{box-shadow:0 0 0 .1875rem var(--color-selected);z-index:10}.course-node:hover{z-index:10;transform:scale(1.08)}.course-node.selected{background:var(--color-selected);border-color:var(--color-selected);color:var(--color-selected-text);z-index:10}.course-node.ancestor{background:var(--color-ancestor);border-color:var(--color-ancestor);color:var(--color-ancestor-text);z-index:5}.course-node.child{background:var(--color-child);border-color:var(--color-child);color:var(--color-child-text);z-index:5}.course-node.dimmed,.course-node.search-dimmed{opacity:.25}.course-node.dimmed:hover,.course-node.dimmed:focus-visible,.course-node.search-dimmed:hover,.course-node.search-dimmed:focus-visible{opacity:1}#edge-layer line,#edge-layer path{stroke:var(--edge-stroke,var(--color-edge));stroke-width:var(--edge-width,.09375rem);stroke-opacity:var(--edge-opacity,.75);transition:opacity .15s,stroke .15s}#arrowhead polygon{fill:var(--color-edge);fill-opacity:.75}#arrowhead-ancestor polygon{fill:var(--color-ancestor-path)}#arrowhead-child polygon{fill:var(--color-child-path)}.edge-ancestor{--edge-stroke:var(--color-ancestor-path);--edge-width:.125rem;--edge-opacity:1}.edge-child{--edge-stroke:var(--color-child-path);--edge-width:.125rem;--edge-opacity:1}.edge-dimmed,.edge-search-dimmed{opacity:.15}.edge-or{stroke-dasharray:.25rem .1875rem}.top-bar{z-index:20;flex-direction:column;font-family:inherit;display:flex;position:fixed;top:0;left:0;right:0}.top-bar-header{background:var(--color-top-bar-header-bg);border-bottom:.0625rem solid var(--color-top-bar-border);justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 1.25rem;display:flex}.top-bar-brand{align-items:center;gap:.5rem;display:flex}.top-bar-icon{width:auto;height:2rem}.top-bar-title{color:var(--color-top-bar-text);margin:0;font-size:1rem;font-weight:600;line-height:1}.top-bar-selection{background:var(--color-top-bar-selection-bg);border-bottom:.0625rem solid var(--color-top-bar-border);justify-content:space-between;align-items:center;gap:.75rem;min-height:2.5rem;padding:.5rem 1.25rem;display:flex}.top-bar-selection-label{color:var(--color-top-bar-text);text-overflow:ellipsis;white-space:nowrap;visibility:hidden;min-width:0;font-size:.875rem;overflow:hidden}.top-bar-selection.visible .top-bar-selection-label{visibility:visible}.top-bar-clear{color:var(--color-top-bar-text);border:.0625rem solid var(--color-top-bar-text);cursor:pointer;white-space:nowrap;background:0 0;border-radius:.25rem;flex-shrink:0;padding:.25rem .75rem;font-family:inherit;font-size:.8125rem;font-weight:500}.top-bar-clear:disabled{opacity:.4;cursor:default}.top-bar-controls{flex-wrap:wrap;align-items:center;gap:.75rem;margin-left:auto;display:flex}.top-bar-settings{color:var(--color-top-bar-text);border:.0625rem solid var(--color-top-bar-input-border);cursor:pointer;white-space:nowrap;background:0 0;border-radius:.25rem;flex-shrink:0;padding:.375rem .75rem;font-family:inherit;font-size:.875rem;font-weight:500}.top-bar-settings:focus-visible{outline:.125rem solid var(--color-selected);outline-offset:.0625rem}.top-bar-search{flex-shrink:0}.top-bar-search-input{border:.0625rem solid var(--color-top-bar-input-border);width:13.75rem;color:var(--color-top-bar-text);background:0 0;border-radius:.25rem;padding:.375rem .625rem;font-family:inherit;font-size:1rem}.top-bar-search-input::placeholder{color:var(--color-top-bar-text);opacity:.5}.top-bar-search-input:focus-visible{outline:.125rem solid var(--color-selected);outline-offset:.0625rem}.legend{z-index:10;background:var(--color-top-bar-header-bg);border:.0625rem solid var(--color-top-bar-border);color:var(--color-top-bar-text);border-radius:.375rem;padding:.5rem .75rem;font-size:.8125rem;position:fixed;bottom:1rem;left:1rem}.legend-items{flex-wrap:wrap;align-items:center;gap:.375rem .75rem;list-style:none;display:flex}.legend-item{align-items:center;gap:.375rem;display:flex}.legend-item+.legend-item:before{content:"";background:var(--color-top-bar-border);width:1px;height:1em;margin-right:.375rem}.legend-swatch{border:.0625rem solid var(--color-node-border);border-radius:.1875rem;width:.875rem;height:.875rem;display:inline-block}.legend-swatch-selected{background:var(--color-selected)}.legend-swatch-prereq{background:var(--color-ancestor)}.legend-swatch-unlocks{background:var(--color-child)}.legend-asterisk{justify-content:center;align-items:center;width:.875rem;height:.875rem;font-weight:700;line-height:1;display:inline-flex}.legend-edge-or{border-top:.125rem dashed var(--color-edge);width:.875rem;height:0;display:inline-block}@media (width<=36em){.legend{padding:.375rem .5rem;font-size:.75rem;bottom:.5rem;left:.5rem}.legend-items{gap:.25rem .5rem}.legend-item+.legend-item:before{display:none}}@media (width<=48em){.top-bar-header{flex-wrap:wrap}.top-bar-controls{width:100%}.top-bar-search{flex:auto;order:0}.top-bar-settings{flex-shrink:0;order:1}.top-bar-search-input{width:100%}.top-bar-selection-label{white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:2.6em;line-height:1.3;display:-webkit-box}}@media (width<=30em){.top-bar-controls{justify-content:space-between}.top-bar-search{flex:auto}}.settings-dialog{border:.0625rem solid var(--color-top-bar-border);background:var(--color-top-bar-header-bg);color:var(--color-top-bar-text);border-radius:.875rem;width:min(28rem,100vw - 2rem);margin:auto;padding:0;box-shadow:0 1.25rem 2.5rem #00000059,0 .25rem .75rem #00000040}.settings-dialog[open]{animation:.18s cubic-bezier(.2,0,0,1) settings-dialog-open}.settings-dialog::backdrop{-webkit-backdrop-filter:blur(.25rem);background:#00000073}.settings-dialog[open]::backdrop{animation:.18s settings-backdrop-fade}@keyframes settings-dialog-open{0%{opacity:0;transform:scale(.97)translateY(-.375rem)}to{opacity:1;transform:none}}@keyframes settings-backdrop-fade{0%{opacity:0}to{opacity:1}}.settings-form{flex-direction:column;display:flex}.settings-header{border-bottom:.0625rem solid var(--color-top-bar-border);justify-content:space-between;align-items:center;gap:.75rem;padding:1.125rem 1.375rem;display:flex}.settings-dialog-title{letter-spacing:-.005em;font-size:1.125rem;font-weight:600}.settings-close{width:2rem;height:2rem;color:inherit;cursor:pointer;opacity:.7;background:0 0;border:0;border-radius:.375rem;justify-content:center;align-items:center;margin:-.375rem -.5rem -.375rem 0;padding:0;transition:opacity .12s,background-color .12s;display:inline-flex}.settings-close:hover{opacity:1;background:var(--color-top-bar-border)}.settings-close:focus-visible{outline:.125rem solid var(--color-focus);outline-offset:.0625rem;opacity:1}.settings-body{flex-direction:column;gap:1.25rem;padding:1.25rem 1.375rem;display:flex}.settings-fieldset{border:0;flex-direction:column;gap:.5rem;padding:0;display:flex}.settings-fieldset legend{text-transform:uppercase;letter-spacing:.04em;opacity:.7;margin-bottom:.375rem;font-size:.8125rem;font-weight:600}.settings-row{cursor:pointer;border-radius:.375rem;align-items:center;gap:.625rem;margin:0 -.5rem;padding:.375rem .5rem;transition:background-color .12s;display:flex}.settings-row:hover{background:var(--color-top-bar-border)}.settings-row input[type=checkbox],.settings-row input[type=radio]{cursor:pointer;width:1.125rem;height:1.125rem;accent-color:var(--color-selected)}.settings-actions{border-top:.0625rem solid var(--color-top-bar-border);flex-direction:row-reverse;justify-content:flex-start;gap:.5rem;padding:1rem 1.375rem;display:flex}.settings-apply,.settings-cancel{cursor:pointer;border-radius:.375rem;padding:.5rem 1rem;font-family:inherit;font-size:.9375rem;font-weight:500;transition:background-color .12s,border-color .12s,transform 80ms}.settings-apply:active,.settings-cancel:active{transform:translateY(.0625rem)}.settings-apply{background:var(--color-selected);color:var(--color-selected-text);border:.0625rem solid var(--color-selected)}.settings-apply:hover{filter:brightness(1.08)}.settings-cancel{color:var(--color-top-bar-text);border:.0625rem solid var(--color-top-bar-input-border);background:0 0}.settings-cancel:hover{background:var(--color-top-bar-border)}.settings-apply:focus-visible,.settings-cancel:focus-visible{outline:.125rem solid var(--color-focus);outline-offset:.0625rem}@media (prefers-reduced-motion:reduce){.settings-dialog[open],.settings-dialog[open]::backdrop{animation:none}.settings-apply,.settings-cancel,.settings-close,.settings-row{transition:none}}
