.head{align-items:end;gap:16px;display:grid}@media (width>=64rem){.head{grid-template-columns:minmax(0,1fr) auto;gap:24px}}.wordmark{font-size:24px}@media (width>=48rem){.wordmark{font-size:28px}}.wordmark a{color:inherit;margin-block:-9px;padding-block:9px;text-decoration:none;display:inline-block}.wordmark a:hover{color:var(--orange-ink)}.tb{background:var(--rule-soft);border:1.5px solid var(--rule);grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;min-width:0;margin:0;display:grid}@media (width>=40rem){.tb{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=64rem){.tb{grid-template-columns:repeat(5,auto);min-width:36rem}}.tb>div{background:var(--paper);min-width:0;padding:6px 10px 8px}@media (width<64rem){.tb>div:last-child{grid-column:span 2}}.tb dt{color:var(--muted);font-size:14px;font-weight:600}.tb dd{margin:0;font-size:15px}.tabs{border-bottom:1px solid var(--rule);flex-wrap:wrap;gap:4px;margin:8px 0 0;padding:0;list-style:none;display:flex}.tabs a{border:1px solid var(--rule);background:var(--head);min-height:44px;color:var(--ink);transition:background-color .15s var(--ease), color .15s var(--ease);align-items:center;margin-bottom:-1px;padding:0 14px;font-size:15px;font-weight:500;text-decoration:none;display:inline-flex}@media (width<=26rem){.tabs a{padding:0 9px;font-size:14px}}.tabs a:hover{background:var(--orange-soft);color:var(--orange-ink)}.tabs a[aria-current=page]{background:var(--paper);border-bottom-color:var(--paper);font-weight:700}.sheet-nav{container:sheet-nav/inline-size}@container sheet-nav (width>=768px){.tabs>.group-start{margin-inline-start:20px}}main{min-height:60dvh;padding-top:24px}main>h2+.lead{margin-bottom:24px}.notice{border:1.5px solid var(--rule);background:var(--paper);overflow-wrap:anywhere;gap:8px;margin-bottom:24px;padding:12px 16px;display:grid}.notice p{margin:0}.notice-items{margin:4px 0 0;padding-left:20px}.grid-ov{gap:32px;display:grid}@media (width>=72rem){.grid-ov{grid-template:"figure gpa""figure goals"1fr"courses courses"/minmax(0,5fr) minmax(0,6fr);align-items:start;gap:32px 40px}.grid-ov:not(:has(.ov-figure)){grid-template-areas:"gpa goals""courses courses"}.ov-gpa{grid-area:gpa}.ov-figure{grid-area:figure}.ov-goals{grid-area:goals}.ov-courses{grid-area:courses}}.stack{gap:28px;display:grid}.sec-title{flex-wrap:wrap;align-items:baseline;gap:12px;margin-bottom:10px;display:flex}.sec-title .small{margin-left:auto}.spec{border-collapse:collapse;background:var(--paper);border:1.5px solid var(--rule);table-layout:fixed;width:100%}.spec th,.spec td{border:1px solid var(--rule-soft);text-align:left;vertical-align:top;min-width:0;padding:6px 8px}.spec th{color:var(--muted);font-size:14px;font-weight:600}.spec td.big{font-family:var(--font-fig);padding-top:8px;font-size:22px;font-weight:500;line-height:1.2}@media (width>=40rem){.spec td.big{font-size:28px}}.spec td.big.empty{font-family:var(--font-ui);color:var(--muted);padding-top:12px;font-size:16px;font-weight:600}@media (width<=40rem){.spec th,.spec td{padding-inline:6px}.spec td.big{font-size:18px}}.spec .notes td{color:var(--muted);border-top:0;padding-top:0;font-size:14px}.dimfig{margin:0}.dim{width:100%;display:block;overflow:visible}.dim text{font-family:var(--font-fig);fill:var(--ink);paint-order:stroke;stroke:var(--paper);stroke-width:5px;stroke-linejoin:round;font-size:14px}.dim text.lbl{font-size:15px;font-weight:600}.dim text.lbl.pace{fill:var(--orange-ink)}.dim text.tr,.dim text.tk{fill:var(--muted)}.dim text.m-pace{fill:var(--orange-ink)}.dim text.m-best{fill:var(--blue)}.dim text.m-lock,.dim text.m-current{fill:var(--ink)}.dim .dl{stroke:var(--orange);stroke-width:1.5px;fill:none}.dim .ah{fill:var(--orange)}.dim .ext{stroke:var(--ext);stroke-width:1px;fill:none}.dim .ext.pace{stroke:var(--orange)}.dim .scale{stroke:var(--ink);stroke-width:1.5px;fill:none}.dim .tick{stroke:var(--ink);stroke-width:1px;fill:none}.dim .lead{stroke:var(--ext);stroke-width:1px;fill:none}.dim .mk-lock,.dim .ah-off{fill:var(--ink)}.dim .mk-current{fill:var(--paper);stroke:var(--ink);stroke-width:1.5px}.dim .mk-pace{fill:var(--orange)}.dim .mk-best{fill:var(--blue)}figcaption{color:var(--muted);max-width:60ch;margin-top:10px;font-size:14px}.key{flex-wrap:wrap;gap:4px 16px;margin:6px 0 10px;font-size:14px;display:flex}.key span{align-items:center;gap:6px;display:inline-flex}.key i{border-top:1.5px solid;width:18px;height:0;display:inline-block}.key .key-glyph{fill:none;stroke:currentColor;stroke-width:1.5px;width:12px;height:10px}.key .m-pace i{border-top-color:var(--orange)}.parts{border-collapse:collapse;background:var(--paper);border:1.5px solid var(--rule);width:100%}.parts th,.parts td{border:1px solid var(--rule-soft);text-align:left;vertical-align:top;min-width:0;padding:8px;font-size:15px}.parts thead th{color:var(--muted);background:var(--head);white-space:normal;font-size:14px;font-weight:600}.parts th[scope=row]{overflow-wrap:anywhere;font-weight:500}.parts th[scope=row] a{margin-block:-11px;padding-block:11px;display:inline-block}.table-note{margin-top:8px}.parts.list th[scope=row],.parts.list thead th:first-child{width:40%}@media (width>=72rem){.parts.list{table-layout:fixed}.parts.list .fit{width:9.5rem}}.parts th[scope=rowgroup]{background:var(--head);font-size:15px;font-weight:600}.parts th[scope=rowgroup] .small{margin-left:8px;font-weight:400}.parts .num{font-family:var(--font-fig);text-align:right;white-space:nowrap}.parts .fit{width:1%}.parts .num .sub{white-space:normal;font-family:var(--font-ui)}.parts thead .num{font-family:var(--font-ui)}.parts tfoot td,.parts tfoot th{background:var(--head);border-top:1.5px solid var(--rule);font-weight:600}.parts .sub{color:var(--muted);margin-top:2px;font-size:14px;font-weight:400;display:block}.parts .ltr{font-family:var(--font-ui);margin-left:4px;font-weight:600}@media (width<=40rem){.parts .ph-hide{display:none}.parts.stacked,.parts.stacked tbody{display:block}.parts.stacked thead{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.parts.stacked td.num{white-space:normal}.parts.stacked tr{border-top:1px solid var(--rule-soft);grid-template-columns:minmax(0,1fr) auto;display:grid}.parts.stacked td.fit{width:auto}.parts.stacked tr:first-child{border-top:0}.parts.stacked th,.parts.stacked td{border:0}.parts.stacked th[scope=row]{grid-column:1/-1;padding-bottom:2px}.parts.stacked td{padding-top:2px}.parts.list th[scope=row]{width:auto}.parts td,.parts th{padding:7px 6px}}@media (width>40rem){.parts .ph-only{display:none}}.status-pace,.status-best,.status-lock,.status-none{white-space:nowrap}.status-pace{color:var(--orange-ink);font-weight:600}.status-best{color:var(--blue);font-weight:600}.status-lock{color:var(--ink);font-weight:600}.status-none{color:var(--muted);font-weight:600}.footer{border-top:1px solid var(--rule);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:16px;margin-top:40px;padding-top:12px;font-size:14px;display:flex}.grid-c{gap:28px;display:grid}.grid-c>*{min-width:0}@media (width>=72rem){.grid-c{grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:start;gap:28px 40px}.grid-c>*{grid-column:1}.grid-c>.c-items{grid-area:1/2/span 6}}.course-meta span[translate=no]{font-family:var(--font-fig);font-size:15px}.specg{background:var(--rule-soft);border:1.5px solid var(--rule);grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin:0;display:grid}.specg-year{margin-top:12px}.specg>div{background:var(--paper);min-width:0;padding:6px 8px 8px}.specg dt{color:var(--muted);font-size:14px;font-weight:600}.specg dd{margin:0;font-size:22px;font-weight:500;line-height:1.2}.specg dd .fig{font-size:inherit}.specg dd .unit{font-family:var(--font-ui);color:var(--muted);font-size:14px;font-weight:400}.specg dd .sub{font-family:var(--font-fig);color:var(--muted);font-size:14px;font-weight:400;display:block}.specg dd .empty{font-family:var(--font-ui);color:var(--muted);font-size:15px;font-weight:600}@media (width<=40rem){.specg dd{font-size:18px}}.field{border:1px solid var(--rule);background:var(--paper);width:3.75rem;height:44px;color:var(--ink);font:500 16px var(--font-fig);font-variant-numeric:tabular-nums;text-align:right;transition:border-color .15s var(--ease), background-color .15s var(--ease);border-radius:0;margin:0;padding:0 8px}.field:hover:not(:disabled){border-color:var(--ink);background:var(--head)}.field-draft{color:var(--orange-ink);border:1px solid var(--orange)}.field-draft[data-empty]{border-style:dashed}.field[aria-invalid=true]{border-color:var(--bad);box-shadow:inset 0 0 0 1px var(--bad)}.field:disabled{color:var(--muted);background:var(--head);border-style:dotted}.parts .cell-in{width:1%;padding:2px}.parts .cell-in .field{width:100%;min-width:calc(5ch + 18px)}@media (width<=40rem){.parts .cell-in .field{min-width:calc(5ch + 14px);padding-inline:6px}}.parts .cell-in.empty{background:var(--head)}.parts .max-cell{width:1%}.parts .item-cell label{cursor:pointer;margin-block:-11px;padding-block:11px;display:inline-block}.parts .item-status{font-weight:500}.parts .item-status-draft{color:var(--orange-ink)}.parts .item-status-open{color:var(--blue)}.parts .item-row-nested th[scope=row]{padding-left:20px}.parts .fill-pace{color:var(--muted)}.toggle{gap:6px;display:grid}.toggle-row{cursor:pointer;align-items:center;gap:12px;width:fit-content;min-height:44px;display:flex;position:relative}.toggle-row:hover .toggle-track{border-color:var(--ink)}.toggle-track{border:1px solid var(--rule);background:var(--paper);width:44px;height:24px;transition:background-color .15s var(--ease), border-color .15s var(--ease);flex:none;position:relative}.toggle-knob{z-index:1;background:var(--ink);width:18px;height:18px;transition:transform .18s var(--ease), background-color .15s var(--ease);position:absolute;top:2px;left:2px}.toggle-track:after{content:"";border:1px solid var(--rule-soft);width:18px;height:18px;transition:transform .18s var(--ease), border-color .15s var(--ease);position:absolute;top:2px;right:2px}.toggle input:checked+.toggle-track{background:var(--orange);border-color:var(--orange)}.toggle input:checked+.toggle-track:after{border-color:color-mix(in srgb, var(--paper) 55%, transparent);transform:translate(-20px)}.toggle input:checked+.toggle-track .toggle-knob{background:var(--paper);transform:translate(20px)}.toggle input:focus-visible+.toggle-track{outline:2px solid var(--orange);outline-offset:2px}.toggle input[aria-disabled=true]+.toggle-track{border-style:dashed;border-color:var(--ext);background:var(--head)}.toggle input[aria-disabled=true]+.toggle-track .toggle-knob{background:var(--ext)}.toggle-label{min-width:0}.toggle input[aria-disabled=true]~.toggle-label{color:var(--muted)}.toggle:has(input[aria-disabled=true]) .toggle-row{cursor:default}.toggle-hint{color:var(--muted);max-width:60ch;margin:0;font-size:14px}.note{border-top:1px solid var(--rule);padding-top:12px}.button{border:1px solid var(--rule);background:var(--paper);min-width:44px;min-height:44px;color:var(--ink);font:600 15px var(--font-ui);cursor:pointer;touch-action:manipulation;transition:background-color .15s var(--ease), color .15s var(--ease), transform .1s var(--ease);border-radius:0;justify-content:center;align-items:center;padding:0 16px;display:inline-flex}.button:hover{background:var(--orange-soft);color:var(--orange-ink)}.button:active{transform:translateY(1px)}.button-primary{border-color:var(--ink);background:var(--ink);color:var(--paper)}.button-primary:hover{border-color:var(--orange-ink);background:var(--orange-ink);color:var(--paper)}.button-danger{border-color:var(--bad);color:var(--bad)}.button-danger:hover{background:color-mix(in srgb, var(--bad) 10%, var(--paper));color:var(--bad)}.button[aria-disabled=true]{color:var(--muted);border-color:var(--rule-soft);background:var(--paper);cursor:default}.button[aria-disabled=true]:active{transform:none}.draft-actions{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:16px;display:flex}.draft-count{flex:100%;font-weight:600}.draft-count .sub{color:var(--muted);max-width:60ch;font-size:14px;font-weight:400;display:block}.specg-three{grid-template-columns:repeat(3,minmax(0,1fr));max-width:40rem}@media (width<=40rem){.specg-three{grid-template-columns:repeat(2,minmax(0,1fr))}.specg-three>div:last-child{grid-column:1/-1}}.drafts-table{margin-top:12px}.drafts{margin-top:28px}.draft-block{border:1.5px solid var(--rule);background:var(--paper);padding:12px 16px 16px}.draft-title{overflow-wrap:anywhere;font-size:18px}.draft-title a{color:inherit;margin-block:-12px;padding-block:12px;text-decoration:none;display:inline-block}.draft-title a:hover{color:var(--orange-ink);text-decoration:underline}.draft-label{overflow-wrap:anywhere;min-width:0;display:block}.draft-group{color:var(--muted);font-size:14px;display:block}:root{--modal-open-dur:.25s;--modal-close-dur:.15s;--modal-scale:.96;--modal-scale-close:.96;--modal-ease:cubic-bezier(.22, 1, .36, 1)}.dialog{overscroll-behavior:contain;border:1.5px solid var(--rule);background:var(--paper);width:min(100% - 32px,28rem);color:var(--ink);border-radius:0;padding:0}.dialog::backdrop{background:var(--scrim);opacity:0;transition:opacity var(--modal-open-dur) var(--modal-ease)}.t-modal.is-open::backdrop{opacity:1}@starting-style{.t-modal.is-open::backdrop{opacity:0}}.t-modal.is-closing::backdrop{opacity:0;transition-duration:var(--modal-close-dur)}.dialog-body{padding:20px}.dialog-title{overflow-wrap:anywhere;margin:0;font-size:17px}.dialog-body p{margin-top:8px}.dialog-list{color:var(--muted);overflow-wrap:anywhere;margin:8px 0 0;padding-left:20px;font-size:14px}.dialog-actions{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.t-modal{transform-origin:50%;transform:scale(var(--modal-scale));opacity:0;pointer-events:none;transition:transform var(--modal-open-dur) var(--modal-ease), opacity var(--modal-open-dur) var(--modal-ease);will-change:transform, opacity}.t-modal.is-open{opacity:1;pointer-events:auto;transform:scale(1)}@starting-style{.t-modal.is-open{transform:scale(var(--modal-scale));opacity:0}}.t-modal.is-closing{transform:scale(var(--modal-scale-close));opacity:0;pointer-events:none;transition:transform var(--modal-close-dur) var(--modal-ease), opacity var(--modal-close-dur) var(--modal-ease)}@media (prefers-reduced-motion:reduce){.t-modal,.t-modal::backdrop{transition:none!important}.button{transition:none}}.stepper-row{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:12px;display:flex}.stepper{border:1px solid var(--rule);background:var(--paper);align-items:stretch;display:inline-flex}.stepper-button{border:0;min-width:44px;padding:0;font-size:20px;line-height:1}.stepper-button+.stepper-value{border-left:1px solid var(--rule-soft)}.stepper-button[aria-disabled=true]{color:var(--muted);cursor:default;background:var(--paper)}.stepper-button[aria-disabled=true]:active{transform:none}.stepper-value{border-right:1px solid var(--rule-soft);min-width:48px;font:500 16px var(--font-fig);justify-content:center;align-items:center;padding:0 8px;display:inline-flex}.shift-list{margin:0 0 8px;padding:0;list-style:none}.shift-list li+li{margin-top:4px}.cliffs{margin-bottom:12px}.parts .effect-cell{white-space:normal;font-size:14px}.nowrap{white-space:nowrap}.item-group{color:var(--muted);font-size:14px;display:block}.parts .needs-cell{font-size:15px}.needed{color:var(--muted);margin-top:4px;font-size:14px}.needed summary{cursor:pointer;min-height:44px;padding-block:10px;display:list-item}.needed summary:hover{color:var(--orange-ink)}.needed ul{margin:4px 0 0;padding-left:20px}.settings-section{border-top:1px solid var(--rule);margin-top:28px;padding-top:16px}.setting{margin-top:16px}.setting-label{padding:0;font-weight:600;display:block}.setting-control{align-items:center;gap:8px;margin-top:6px;display:flex}.setting-control .field{width:5rem}.field-unit{color:var(--muted)}.setting-hint{color:var(--muted);max-width:60ch;margin-top:4px;font-size:14px}.form-error{color:var(--bad);overflow-wrap:anywhere;margin-top:6px;font-size:14px}.choice{border:0;min-width:0;margin:16px 0 0;padding:0}.segmented{border:1px solid var(--rule);background:var(--paper);margin-top:6px;display:inline-flex}.segment{cursor:pointer;display:block}.segment+.segment{border-left:1px solid var(--rule-soft)}.segment,.toggle-row,.needed summary{touch-action:manipulation;-webkit-tap-highlight-color:transparent}.segment-face{text-align:center;min-width:5rem;min-height:44px;color:var(--muted);transition:color .15s var(--ease), background-color .15s var(--ease);padding:10px 14px;font-weight:600;display:block}.segment:hover .segment-face{color:var(--orange-ink);background:var(--orange-soft)}.segment input:checked+.segment-face{color:var(--paper);background:var(--orange-ink)}.segment input:focus-visible+.segment-face{outline:2px solid var(--orange);outline-offset:2px}.file-pick{margin-top:6px;position:relative}.file-pick input:focus-visible+.button{outline:2px solid var(--orange);outline-offset:2px}.file-pick input[aria-invalid=true]+.button{border-color:var(--bad);box-shadow:inset 0 0 0 1px var(--bad)}.file-pick input[aria-invalid=true]:focus+.button{outline:2px solid var(--orange);outline-offset:2px}.data-actions{flex-wrap:wrap;gap:8px 12px;margin-top:16px;display:flex}:root{--paper:#fff;--grid:#e6ebf0;--ink:#26303a;--muted:#5b6774;--rule:#26303a;--rule-soft:#c9d1d9;--ext:#7c8794;--head:#f7f9fb;--orange:#d9541e;--orange-ink:#a8390b;--orange-soft:#fbe9e0;--blue:#2b6cb0;--blue-soft:#e4eef9;--bad:#b3261e;--scrim:#26303a73;--selection:#f7d9cb;--thumb:#9aa5b1;--font-ui:"Exo 2", system-ui, sans-serif;--font-fig:"Roboto Mono", ui-monospace, "SF Mono", Menlo, monospace;--ease:cubic-bezier(.2, .8, .2, 1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-family:var(--font-ui)}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}:root:not([data-theme=light]){--paper:#171c22;--grid:#232a32;--ink:#e6ebf0;--muted:#a3adb8;--rule:#e6ebf0;--rule-soft:#3a434d;--ext:#6c7784;--head:#1e242b;--orange:#f07a45;--orange-ink:#f5915f;--orange-soft:#3a2418;--blue:#7fb0ea;--blue-soft:#1e2f44;--bad:#ff8a80;--scrim:#0009;--selection:#5a3a2a;--thumb:#5b6774}}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--paper:#171c22;--grid:#232a32;--ink:#e6ebf0;--muted:#a3adb8;--rule:#e6ebf0;--rule-soft:#3a434d;--ext:#6c7784;--head:#1e242b;--orange:#f07a45;--orange-ink:#f5915f;--orange-soft:#3a2418;--blue:#7fb0ea;--blue-soft:#1e2f44;--bad:#ff8a80;--scrim:#0009;--selection:#5a3a2a;--thumb:#5b6774}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scrollbar-color:var(--thumb) transparent}body{min-height:100dvh;color:var(--ink);background-color:var(--paper);background-image:repeating-linear-gradient(to right, var(--grid) 0 1px, transparent 1px 8px), repeating-linear-gradient(to bottom, var(--grid) 0 1px, transparent 1px 8px);font:400 16px/1.5 var(--font-ui);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-wrap:pretty;caret-color:var(--orange);margin:0}::selection{background:var(--selection);color:var(--ink)}main[data-quiet]:focus-visible{outline:none}h1,h2,h3,h4{text-wrap:balance;margin:0;font-weight:700;line-height:1.15}h2{font-size:32px}h3{font-size:22px}p{margin:0}a,button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}a{color:var(--ink);text-underline-offset:3px;text-decoration-thickness:1px}a:hover{color:var(--orange-ink)}.skip-link{z-index:1;background:var(--ink);color:var(--paper);padding:8px 12px;position:absolute;top:8px;left:8px;transform:translateY(-200%)}.skip-link:focus-visible{transform:none}:focus-visible{outline:2px solid var(--orange);outline-offset:2px}.sheet{max-width:72rem;margin-inline:auto;padding:16px 16px 40px;overflow-x:clip}@media (width>=48rem){.sheet{padding:24px 32px 56px}}.fig{font-family:var(--font-fig)}.small{color:var(--muted);font-size:14px}.muted{color:var(--muted)}.lead{color:var(--muted);margin-top:4px}.m-lock{color:var(--ink)}.m-pace{color:var(--orange-ink)}.m-best{color:var(--blue)}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
