
.gpa-tool{--gpa-accent:var(--gw-lake-text,var(--gw-ink));box-sizing:border-box;width:100%;max-width:1060px;margin:var(--gw-space-5,24px) 0 var(--gw-space-6,32px);border:1px solid var(--gw-rule);border-radius:16px;background:var(--gw-paper-raised,#fff);color:var(--gw-ink);font-family:var(--gw-font);overflow:clip}
.gpa-tool *{box-sizing:border-box}
.gpa-tool [hidden]{display:none!important}


.gpa-tabs{display:flex;gap:4px;padding:8px;border-bottom:1px solid var(--gw-rule);background:var(--gw-card)}
body .gpa-tool .gpa-tabs button{flex:1 1 0;min-height:44px;padding:0 16px;border:0;border-radius:8px;background:none;color:var(--gw-muted);font:600 15px/1 var(--gw-font);cursor:pointer}
body .gpa-tool .gpa-tabs button[aria-selected="true"]{background:var(--gw-paper-raised,#fff);color:var(--gw-ink);box-shadow:0 1px 2px rgb(0 0 0/.08),0 1px 6px rgb(0 0 0/.06)}
body .gpa-tool .gpa-tabs button:focus-visible{outline:2px solid var(--gw-focus,var(--gw-signal));outline-offset:-2px}

.gpa-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)}
.gpa-inputs{padding:var(--gw-space-5,24px)}
.gpa-result{display:flex;flex-direction:column;padding:var(--gw-space-5,24px);border-left:1px solid var(--gw-rule);background:var(--gw-card)}
.gpa-answer{display:flex;flex-direction:column;align-items:flex-start}


.gpa-heads,.gpa-row{display:grid;grid-template-columns:minmax(0,1fr) 72px 132px 44px;gap:8px;align-items:center}
.gpa-heads{margin:0 0 6px;color:var(--gw-muted);font:500 13px/1.2 var(--gw-font)}
.gpa-row{margin:0 0 8px}
body .gpa-tool :is(.gpa-row input,.gpa-row select,.gpa-prior input){width:100%;min-width:0;min-height:48px;margin:0;padding:0 12px;border:1px solid var(--gw-input-line,var(--gw-rule-strong));border-radius:8px!important;background:var(--gw-paper-raised,#fff);color:var(--gw-ink);font:400 16px/1.2 var(--gw-font)!important;font-variant-numeric:tabular-nums}
body .gpa-tool .gpa-row .gpa-hours{text-align:center;padding:0 6px}
body .gpa-tool .gpa-row select{padding-right:8px}
body .gpa-tool :is(input,select):focus{outline:2px solid var(--gw-focus,var(--gw-signal));outline-offset:1px;border-color:transparent}
body .gpa-tool .gpa-x{display:grid;place-items:center;width:44px;height:44px;min-height:0;padding:0;border:0;border-radius:50%;background:none;color:var(--gw-ink);font:400 26px/1 var(--gw-font);cursor:pointer}
body .gpa-tool .gpa-x:hover{background:var(--gw-card);color:var(--gw-ink)}
.gpa-actions{display:flex;gap:8px;margin:12px 0 0}
body .gpa-tool .gpa-actions button,body .gpa-tool .gpa-copy{min-height:44px;padding:0 16px;border:1px solid var(--gw-rule-strong);border-radius:8px;background:var(--gw-paper-raised,#fff);color:var(--gw-ink);font:600 14px/1 var(--gw-font);cursor:pointer}
body .gpa-tool .gpa-actions button:hover,body .gpa-tool .gpa-copy:hover{background:var(--gw-card)}
body .gpa-tool .gpa-actions [data-gpa-clear]{border-color:transparent;background:none;color:var(--gw-muted)}
.gpa-prior{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:var(--gw-space-5,24px) 0 0;padding:var(--gw-space-4,16px) 0 0;border:0;border-top:1px solid var(--gw-rule)}
.gpa-prior legend{float:left;width:100%;grid-column:1/-1;margin:0 0 2px;padding:0;font:600 15px/1.3 var(--gw-font);color:var(--gw-ink)}
.gpa-prior label{display:grid;gap:6px;color:var(--gw-muted);font:500 13px/1.2 var(--gw-font)}


.gpa-sentence{margin:0;color:var(--gw-ink);font:400 22px/2.3 var(--gw-font);text-wrap:pretty}
body .gpa-tool .gpa-sentence input{display:inline-block;width:4.2em;min-height:44px;margin:0 2px;padding:0 6px;border:0;border-bottom:2px solid var(--gpa-accent);border-radius:8px 8px 0 0!important;background:var(--gw-card);color:var(--gw-ink);font:600 22px/1 var(--gw-font)!important;font-variant-numeric:tabular-nums;text-align:center}


.gpa-label{margin:0;color:var(--gw-muted);font:500 15px/1.3 var(--gw-font)}
body .gpa-tool .gpa-number{margin:4px 0 6px;color:var(--gw-ink);font:700 clamp(52px,5.4vw,76px)/1 var(--gw-font);letter-spacing:-.03em;font-variant-numeric:tabular-nums}
body .gpa-tool .gpa-verdict{margin:0 0 var(--gw-space-4,16px);color:var(--gw-ink);font:500 17px/1.35 var(--gw-font);text-wrap:balance}

body .gpa-tool svg.gpa-scale{display:block;flex:none;width:100%;max-width:400px;height:auto;aspect-ratio:400/44;margin:0 0 var(--gw-space-3,12px);overflow:visible;fill:initial;stroke:none}
.gpa-track{fill:none;stroke:var(--gw-rule-strong);stroke-width:4;stroke-linecap:round}
.gpa-tick{fill:none;stroke:var(--gw-rule-strong);stroke-width:1.5}
.gpa-scale text{fill:var(--gw-muted);font:500 13px var(--gw-font);text-anchor:middle}
.gpa-marker{fill:var(--gpa-accent);stroke:var(--gw-paper-raised,#fff);stroke-width:3;transition:cx var(--gw-fast,200ms) ease-out}
body .gpa-tool :is(.gpa-detail,.gpa-overall){margin:0 0 6px;color:var(--gw-muted);font:400 15px/1.45 var(--gw-font);font-variant-numeric:tabular-nums}
body .gpa-tool .gpa-overall{color:var(--gw-ink);font-weight:600}
.gpa-more{margin-top:var(--gw-space-3,12px)}
.gpa-math{width:100%;border-top:1px solid var(--gw-rule)}
.gpa-math summary{min-height:44px;display:flex;align-items:center;color:var(--gw-ink);font:600 14px/1.2 var(--gw-font);cursor:pointer}
.gpa-math table{width:100%;border-collapse:collapse;font:400 14px/1.3 var(--gw-font);font-variant-numeric:tabular-nums}
body .gpa-tool .gpa-math :is(th,td){padding:8px 0}
body .gpa-tool .gpa-math tbody :is(th,td){color:var(--gw-ink)}
body .gpa-tool .gpa-math tfoot :is(th,td){color:var(--gw-ink);font-weight:600;border-bottom:0}
.gpa-math p{margin:8px 0 12px;color:var(--gw-ink);font:400 15px/1.4 var(--gw-font);font-variant-numeric:tabular-nums}
body .gpa-tool .gpa-copy{margin-top:var(--gw-space-3,12px)}

.gpa-outcomes{width:100%;margin:var(--gw-space-5,24px) 0 0;border-collapse:collapse;font:400 15px/1.3 var(--gw-font);font-variant-numeric:tabular-nums}
body .gpa-tool :is(.gpa-outcomes,.gpa-math) :is(th,td){min-width:0;padding:10px 12px;border:0;border-bottom:1px solid var(--gw-rule);background:none;text-align:right;font-weight:400;color:var(--gw-muted)}
body .gpa-tool :is(.gpa-outcomes,.gpa-math) :is(th,td):first-child{text-align:left}
body .gpa-tool :is(.gpa-outcomes,.gpa-math) thead th{font-weight:500;font-size:14px}
body .gpa-tool .gpa-outcomes tbody th{color:var(--gw-ink)}
body .gpa-tool .gpa-outcomes tbody td:nth-child(3){color:var(--gw-ink);font-weight:600}
body .gpa-tool .gpa-outcomes td:last-child{width:7.5em;color:var(--gw-oak-text,var(--gw-ink));font-weight:600;font-size:14px}
body .gpa-tool .gpa-outcomes tr.is-hit :is(th,td){background:color-mix(in srgb,var(--gw-oak) 9%,transparent)}
.gpa-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.gpa-noscript{margin:0;padding:12px var(--gw-space-5,24px);border-top:1px solid var(--gw-rule);color:var(--gw-muted);font-size:14px}


@media (max-width:760px){
  .gpa-tool{margin-top:var(--gw-space-4,16px);border-radius:12px;overflow:visible}
  .gpa-tabs{border-radius:12px 12px 0 0}
  .gpa-grid{grid-template-columns:minmax(0,1fr)}
  .gpa-result{display:contents}
  .gpa-answer{order:-1;position:sticky;top:0;z-index:2;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:16px;padding:12px 16px;border-bottom:1px solid var(--gw-rule);background:var(--gw-card)}
  .gpa-more{order:2;margin:0;padding:0 16px 16px}
  .gpa-label{grid-column:1/-1}
  body .gpa-tool .gpa-number{margin:2px 0;font-size:44px}
  body .gpa-tool .gpa-verdict{margin:0;font-size:16px}
  .gpa-scale{grid-column:1/-1;margin:8px 0 2px}
  body .gpa-tool .gpa-detail{grid-column:1/-1;margin:0;font-size:14px}
  body .gpa-tool .gpa-overall{grid-column:1/-1}
  .gpa-inputs{padding:16px}
  .gpa-heads,.gpa-row{grid-template-columns:minmax(0,1fr) 54px 108px 44px;gap:5px}
  .gpa-outcomes td:nth-child(2),.gpa-outcomes th:nth-child(2){display:none}
  body .gpa-tool .gpa-outcomes :is(th,td){padding-inline:8px}
  body .gpa-tool .gpa-outcomes td:last-child{width:auto;white-space:nowrap}
  .gpa-sentence{font-size:18px;line-height:2.5}
  body .gpa-tool .gpa-sentence input{font-size:18px !important}
}
@media (prefers-reduced-motion:reduce){.gpa-marker{transition:none}}
