/* ====== 109 绩点倒推 · 青蓝 + 荧光笔黄 ====== */
.tsk.gpa{
  --tsk-bg:#eef4f6;
  --tsk-card:#ffffff;
  --tsk-card-2:#f6fafb;
  --tsk-ink:#132a32;
  --tsk-sub:#4c6270;
  --tsk-faint:#8899a3;
  --tsk-line:#dbe7ec;
  --tsk-line-2:#eaf2f5;
  --tsk-brand:#0e7490;
  --tsk-brand-2:#0a5c73;
  --tsk-brand-soft:#e4f3f7;
  --tsk-brand-ink:#0a5c73;
  --tsk-mark:#f2d24b;
  --tsk-red:#b03a30;
  --tsk-red-soft:#f9ebe9;
  background:
    radial-gradient(760px 330px at 100% -12%, rgba(14,116,144,.11), transparent 62%),
    radial-gradient(500px 230px at -6% 12%, rgba(242,210,75,.14), transparent 60%),
    var(--tsk-bg);
}
:root[data-theme="dark"] .tsk.gpa{
  --tsk-bg:#0d161b;
  --tsk-card:#16222a;
  --tsk-card-2:#1b2831;
  --tsk-ink:#e6eff2;
  --tsk-sub:#a6b7c0;
  --tsk-faint:#76878f;
  --tsk-line:#26333c;
  --tsk-line-2:#1f2b33;
  --tsk-brand:#5ec9e0;
  --tsk-brand-2:#8bdeef;
  --tsk-brand-soft:rgba(94,201,224,.13);
  --tsk-brand-ink:#8bdeef;
  --tsk-mark:#e8cd5c;
  --tsk-red:#ff9d92;
  --tsk-red-soft:rgba(255,157,146,.12);
}
.gpa-hero{display:grid;grid-template-columns:minmax(0,1fr) 384px;gap:30px;padding:30px 0 24px;align-items:stretch;}
.gpa-hero-l{display:flex;flex-direction:column;}
.gpa-hero-l>.tsk-hs{flex:1 1 auto;}
.gpa-hero-l .tsk-h1 b{color:var(--tsk-brand-ink);}

.gpa-panel{align-self:start;background:var(--tsk-card);border:1px solid var(--tsk-line);border-radius:14px;box-shadow:var(--tsk-shadow);overflow:hidden;position:relative;}
.gpa-panel::after{content:"";position:absolute;right:-46px;top:-46px;width:150px;height:150px;border-radius:50%;background:radial-gradient(circle,rgba(242,210,75,.22),transparent 70%);}
.gpa-panel-top{display:flex;justify-content:space-between;align-items:center;padding:15px 20px 12px;border-bottom:1px solid var(--tsk-line-2);position:relative;z-index:1;}
.gpa-panel-top span{font-size:12.5px;font-weight:800;color:var(--tsk-ink);}
.gpa-panel-top i{font-style:normal;font:700 10px/1 var(--tsk-num);color:var(--tsk-faint);letter-spacing:.14em;}
.gpa-panel-body{padding:8px 20px 18px;position:relative;z-index:1;}
.gpa-panel-body label{display:block;margin:11px 0 5px;font-size:11.5px;font-weight:800;color:var(--tsk-sub);}
.gpa-panel-body input{width:100%;height:37px;padding:0 11px;border:1px solid var(--tsk-line);border-radius:8px;background:var(--tsk-card-2);color:var(--tsk-ink);font:700 13.5px/37px var(--tsk-num);outline:none;transition:border-color .16s,box-shadow .16s;}
.gpa-panel-body input:focus{border-color:var(--tsk-brand);box-shadow:0 0 0 3px var(--tsk-brand-soft);}
.gpa-row2{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.gpa-panel .tsk-btn-main{width:100%;margin-top:17px;background:linear-gradient(135deg,var(--tsk-brand),var(--tsk-brand-2));}
.gpa-panel-foot{margin-top:10px;font-size:10.5px;line-height:1.7;color:var(--tsk-faint);}

.gpa-result{margin:4px 0 26px;background:var(--tsk-card);border:1px solid var(--tsk-line);border-radius:16px;box-shadow:var(--tsk-shadow);padding:22px 24px;}
.gpa-res-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(158px,1fr));gap:11px;}
.gpa-res-card{background:var(--tsk-card-2);border:1px solid var(--tsk-line-2);border-radius:11px;padding:15px 17px;}
.gpa-res-card b{display:block;font:800 25px/1.15 var(--tsk-num);color:var(--tsk-ink);font-variant-numeric:tabular-nums;}
.gpa-res-card span{display:block;margin-top:5px;font-size:11.5px;font-weight:700;color:var(--tsk-faint);}
.gpa-res-card i{display:block;margin-top:3px;font-style:normal;font-size:10.5px;color:var(--tsk-sub);}
.gpa-res-card.gpa-main{background:var(--tsk-brand-soft);border-color:rgba(14,116,144,.26);}
.gpa-res-card.gpa-main b{color:var(--tsk-brand-ink);}
.gpa-alert{margin-top:13px;padding:12px 14px;border-radius:9px;background:var(--tsk-brand-soft);border:1px solid rgba(14,116,144,.2);font-size:12px;line-height:1.8;color:var(--tsk-sub);}
.gpa-alert b{color:var(--tsk-brand-ink);background:linear-gradient(transparent 62%,var(--tsk-mark) 0);padding:0 1px;}
.gpa-alert.is-warn{background:var(--tsk-red-soft);border-color:rgba(176,58,48,.28);}
.gpa-alert.is-warn b{color:var(--tsk-red);background:none;}
.gpa-plan{margin-top:14px;overflow-x:auto;border-radius:11px;border:1px solid var(--tsk-line);}

.gpa-scroll{overflow-x:auto;border-radius:11px;box-shadow:var(--tsk-shadow-sm);}
.gpa-table{width:100%;min-width:480px;border-collapse:collapse;background:var(--tsk-card);}
.gpa-table.is-wide{min-width:600px;border:1px solid var(--tsk-line);}
.gpa-table th,.gpa-table td{padding:10px 14px;font-size:12.5px;line-height:1.7;border-bottom:1px solid var(--tsk-line-2);text-align:left;}
.gpa-table thead th{background:var(--tsk-card-2);font-size:11px;font-weight:800;color:var(--tsk-brand-ink);letter-spacing:.04em;}
.gpa-table tbody tr:last-child td{border-bottom:0;}
.gpa-table tbody tr:hover td{background:var(--tsk-card-2);}
.gpa-strong{font-weight:800;color:var(--tsk-ink);}
.gpa-tag{display:inline-block;padding:2px 9px;border-radius:99px;background:var(--tsk-brand-soft);color:var(--tsk-brand-ink);font:800 11.5px/1.7 var(--tsk-num);}
.gpa-ok{color:var(--tsk-brand);font-weight:800;}
.gpa-no{color:var(--tsk-red);font-weight:800;}

.gpa-rules{display:grid;grid-template-columns:repeat(auto-fit,minmax(258px,1fr));gap:10px;}
.gpa-rule{display:grid;grid-template-columns:30px 1fr;gap:12px;padding:16px 18px;background:var(--tsk-card);border:1px solid var(--tsk-line);border-radius:11px;box-shadow:var(--tsk-shadow-sm);}
.gpa-rule>span{width:30px;height:30px;border-radius:8px;background:var(--tsk-brand-soft);color:var(--tsk-brand-ink);font:800 13px/30px var(--tsk-num);text-align:center;}
.gpa-rule b{font-size:13px;font-weight:800;color:var(--tsk-ink);}
.gpa-rule p{margin:5px 0 0;font-size:12px;line-height:1.8;color:var(--tsk-sub);}

.gpa-list{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:8px;}
.gpa-list li{position:relative;padding:12px 15px 12px 34px;background:var(--tsk-card);border:1px solid var(--tsk-line);border-radius:9px;font-size:12.5px;line-height:1.78;color:var(--tsk-sub);}
.gpa-list li::before{content:"↗";position:absolute;left:13px;top:11px;color:var(--tsk-brand);font-weight:800;}

@media (max-width:900px){
  .gpa-hero{grid-template-columns:1fr;gap:22px;}
  .gpa-panel{align-self:stretch;}
  .gpa-row2{grid-template-columns:1fr;}
}
