.gpa-app{gap:var(--space-9) var(--space-12);grid-template:"editor summary""editor out""editor list"1fr/minmax(0,7fr) minmax(0,5fr);align-items:start;display:grid}.gpa-summary{gap:var(--space-4);grid-area:summary;min-width:0;display:grid}.gpa-editor{gap:var(--space-6);grid-area:editor;min-width:0;display:grid}.gpa-out{gap:var(--space-2);grid-area:out;min-width:0;display:grid}.gpa-list{gap:var(--space-4);grid-area:list;min-width:0;display:grid}.gpa-summary-label{margin:0 0 var(--space-2);color:var(--soft-grey);font-size:var(--text-sm);font-weight:650}.gpa-figures{gap:var(--space-4) var(--space-9);flex-wrap:wrap;display:flex}.gpa-figures .tk-figure-value{font-size:clamp(64px,8vw,104px)}.gpa-figures.is-pair .tk-figure-value{font-size:clamp(56px,6.4vw,80px)}.gpa-working{margin:var(--space-3) 0 0;color:var(--soft-grey);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.gpa-note{padding-top:var(--space-3);color:var(--ink-text);font-size:var(--text-sm);border-top:1px solid #e7e5ec;margin:0}.gpa-empty{padding:var(--space-9) var(--space-6)}.gpa-scale summary{min-height:44px;color:var(--dark-purple);font-size:var(--text-sm);cursor:pointer;align-items:center;font-weight:650;list-style:none;display:inline-flex}.gpa-scale summary::-webkit-details-marker{display:none}.gpa-scale summary:after{content:"";width:7px;height:7px;margin-left:var(--space-2);transition:transform var(--duration-base) var(--ease-out);border:2px solid;border-width:0 2px 2px 0;transform:translateY(-2px)rotate(45deg)}.gpa-scale[open] summary:after{transform:translateY(2px)rotate(-135deg)}.gpa-scale-table{gap:var(--space-2);width:100%;margin:var(--space-2) 0 var(--space-3);border-collapse:collapse;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));display:grid}.gpa-scale-table thead{display:none}.gpa-scale-table tbody{display:contents}.gpa-scale-table tr{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--wash-purple);gap:2px;display:grid}.gpa-scale-table th,.gpa-scale-table td{text-align:left;font-variant-numeric:tabular-nums;padding:0}.gpa-scale-table th{color:var(--dark-purple);font-family:Plus Jakarta Sans Variable,Plus Jakarta Sans,system-ui,sans-serif;font-size:var(--text-lg);font-weight:700}.gpa-scale-table td{color:var(--soft-grey);font-size:var(--text-sm)}.gpa-out-actions{padding-top:var(--space-1)}.gpa-editor-head{justify-content:space-between;align-items:flex-end;gap:var(--space-4) var(--space-6);padding-bottom:var(--space-6);border-bottom:2px solid var(--wash-purple);flex-wrap:wrap;display:flex}.gpa-term-field{flex:220px;max-width:320px}.gpa-term-input{font-family:Plus Jakarta Sans Variable,Plus Jakarta Sans,system-ui,sans-serif;font-size:var(--text-xl);letter-spacing:-.02em;font-weight:700}.gpa-term-result{text-align:right;justify-items:end;gap:2px;display:grid}.gpa-term-label,.gpa-term-meta{color:var(--soft-grey);font-size:var(--text-xs);margin:0;font-weight:650}.gpa-term-value{color:var(--dark-purple);font-family:Plus Jakarta Sans Variable,Plus Jakarta Sans,system-ui,sans-serif;font-size:var(--text-5xl);letter-spacing:-.04em;font-variant-numeric:tabular-nums;margin:0;font-weight:600;line-height:1}.gpa-term-value.is-empty{color:#c9c5d6}.gpa-term-sep{color:#c9c5d6;margin:0 .18em;font-weight:300}.gpa-term-weighted{color:var(--cloud-purple)}.gpa-weighting{gap:var(--space-2);display:grid}.gpa-switch{align-items:center;gap:var(--space-3);min-height:44px;color:var(--ink-text);font-size:var(--text-sm);text-align:left;cursor:pointer;background:0 0;border:0;justify-self:start;padding:0;font-weight:650;display:inline-flex}.gpa-switch-track{width:44px;height:26px;transition:background-color var(--duration-base) var(--ease-out);background:#dedbe7;border-radius:999px;flex:none;position:relative}.gpa-switch-thumb{background:var(--pure-white);width:20px;height:20px;transition:transform var(--duration-base) var(--ease-out);border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #241f222e}.gpa-switch[aria-checked=true] .gpa-switch-track{background:var(--dark-purple)}.gpa-switch[aria-checked=true] .gpa-switch-thumb{transform:translate(18px)}.gpa-switch:hover .gpa-switch-text{color:var(--dark-purple)}.gpa-bonus{gap:var(--space-4) var(--space-9);margin-top:var(--space-2);padding:var(--space-4) 0 0 var(--space-4);border-left:2px solid var(--wash-purple);flex-wrap:wrap;display:flex}.gpa-bonus-item{gap:var(--space-2);display:grid}.gpa-bonus-item .tk-label{margin:0}.gpa-bonus-hint{flex:100%}.gpa-cols,.gpa-row{column-gap:var(--space-2);grid-template-columns:minmax(0,1fr) 108px 88px 44px;align-items:center;display:grid}.gpa-cols.has-level,.is-weighted .gpa-row{grid-template-columns:minmax(0,1fr) 100px 80px 128px 44px}.gpa-cols{color:var(--soft-grey);font-size:var(--text-xs);margin-bottom:calc(var(--space-6) * -1 + var(--space-2));font-weight:650}.gpa-col-level{display:none}.gpa-cols.has-level .gpa-col-level{display:block}.gpa-rows{gap:var(--space-2);counter-reset:none;margin:0;padding:0;list-style:none;display:grid}.gpa-row{row-gap:var(--space-1)}.gpa-cell{gap:var(--space-1);min-width:0;display:grid}.gpa-cell-label{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.gpa-cell-credits .tk-input{text-align:center;font-variant-numeric:tabular-nums}.gpa-row-note{grid-column:1/-1}.gpa-row-note:empty{display:none}.gpa-row-note .tk-error{padding:var(--space-2) var(--space-3)}.gpa-tag{color:var(--soft-grey);font-size:var(--text-xs);margin:0;font-weight:650}.gpa-row.is-excluded .tk-select,.gpa-row.is-excluded .tk-input{background-color:#faf9fc}.gpa-editor-foot{align-items:center;gap:var(--space-3) var(--space-4);flex-wrap:wrap;display:flex}.gpa-excluded:empty{display:none}.gpa-next{gap:var(--space-2);padding-top:var(--space-2);justify-items:start;display:grid}.gpa-sems{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.gpa-sem{border-radius:var(--radius-md);background:var(--pure-white);transition:border-color var(--duration-base) var(--ease-out);border:1px solid #efedf3}.gpa-sem:hover{border-color:#dcd9ea}.gpa-sem.is-open{border-color:#d9d7f5}.gpa-sem-toggle{align-items:center;gap:var(--space-3);width:100%;min-height:64px;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);color:var(--ink-text);text-align:left;cursor:pointer;background:0 0;border:0;display:flex}.gpa-sem-body{flex:auto;gap:2px;min-width:0;display:grid}.gpa-sem-name{overflow-wrap:anywhere;font-weight:650;line-height:1.35}.gpa-sem-meta{align-items:center;gap:var(--space-2);color:var(--soft-grey);font-size:var(--text-xs);flex-wrap:wrap;display:flex}.gpa-open-tag{padding:1px var(--space-2);background:var(--wash-purple);color:var(--dark-purple);border-radius:999px;font-weight:650}.gpa-sem-gpa{color:var(--dark-purple);font-family:Plus Jakarta Sans Variable,Plus Jakarta Sans,system-ui,sans-serif;font-size:var(--text-2xl);letter-spacing:-.03em;font-variant-numeric:tabular-nums;white-space:nowrap;justify-items:end;font-weight:700;line-height:1.1;display:grid}.gpa-sem-w{color:var(--cloud-purple);font-family:Inter Variable,Inter,system-ui,sans-serif;font-size:var(--text-xs);letter-spacing:0;font-weight:650}.gpa-chevron{color:var(--soft-grey);transition:transform var(--duration-base) var(--ease-out);flex:none}.gpa-sem.is-expanded .gpa-chevron{transform:rotate(180deg)}.gpa-sem-panel{gap:var(--space-3);padding:0 var(--space-4) var(--space-4);display:grid}.gpa-table{border-collapse:collapse;width:100%;font-size:var(--text-sm);font-variant-numeric:tabular-nums}.gpa-table th,.gpa-table td{padding:var(--space-2) var(--space-2) var(--space-2) 0;text-align:left;vertical-align:top;border-bottom:1px solid #efedf3}.gpa-table thead th{color:var(--soft-grey);font-size:var(--text-xs);font-weight:650}.gpa-table tbody th{overflow-wrap:anywhere;font-weight:600}.gpa-table td{white-space:nowrap;width:4.5em}.gpa-table tr.is-excluded{color:var(--soft-grey)}.gpa-level-tag{color:var(--dark-purple);font-size:var(--text-xs);font-weight:650;display:inline-block}.gpa-list-foot{justify-content:flex-end;display:flex}@media (width<=1040px){.gpa-app{grid-template-rows:none;grid-template-columns:minmax(0,1fr);grid-template-areas:"summary""editor""list""out"}}@media (width<=680px){.gpa-cols{display:none}.gpa-row,.is-weighted .gpa-row{gap:var(--space-2);padding:var(--space-3) 0 var(--space-4);border-bottom:1px solid #efedf3;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 44px}.gpa-rows{gap:0}.gpa-cell-label{clip:auto;width:auto;height:auto;color:var(--ink-text);font-size:var(--text-xs);font-weight:650;position:static;overflow:visible}.gpa-cell-name{grid-area:1/1/auto/3}.gpa-row .gpa-remove{grid-area:1/3;align-self:end}.gpa-cell-grade{grid-area:2/1}.gpa-cell-credits{grid-area:2/2}.gpa-cell-level{grid-area:3/1/auto/3}.gpa-editor-head{gap:var(--space-4);flex-wrap:nowrap}.gpa-term-field{flex:1 1 0;max-width:none}.gpa-term-value{font-size:var(--text-4xl)}.is-weighted .gpa-term-value{font-size:var(--text-3xl)}.gpa-next .tk-btn{width:100%}.gpa-out-actions .tk-btn{flex:100%}.gpa-figures.is-pair{gap:var(--space-4) var(--space-6)}.gpa-bonus-item{flex:100%}}@media (prefers-reduced-motion:reduce){.gpa-switch-track,.gpa-switch-thumb,.gpa-chevron,.gpa-scale summary:after{transition:none}}@media print{.gpa-page .gpa-app{display:none!important}.gpa-print{color:var(--dark-purple);font-size:10.5pt}.gpa-print-total{margin:0 0 6mm;font-size:14pt;font-weight:700}.gpa-print-sem{break-inside:avoid;margin-bottom:6mm}.gpa-print-sem-head{justify-content:space-between;align-items:baseline;gap:6mm;margin-bottom:2mm;display:flex}.gpa-print-sem-head h2{color:var(--dark-purple);letter-spacing:-.01em;margin:0;font-size:13pt}.gpa-print-sem-head p{margin:0;font-size:10pt;font-weight:650}.gpa-print .gpa-table{font-size:10pt}.gpa-print .gpa-table th,.gpa-print .gpa-table td{color:var(--dark-purple);border-bottom:.5pt solid #c9cbfe;padding:1.4mm 2mm 1.4mm 0}.gpa-print .gpa-table thead th{border-bottom:1pt solid var(--dark-purple)}.gpa-print .gpa-level-tag{color:var(--dark-purple)}}@media (width>=1041px){.gpa-out{margin-top:calc(var(--space-6) * -1)}}
