.thgpa-root{--ink:#1f2a37;--muted:#6b7280;--cream:#fffaf3;--line:#eadfcf;--teal:#0f766e;--teal-d:#0b5a54;--amber:#f59e0b;--rose:#e11d48;--card:#ffffff;
max-width:860px;margin:24px auto;font-family:"Trebuchet MS","Segoe UI",Tahoma,sans-serif;color:var(--ink);box-sizing:border-box}
.thgpa-root *{box-sizing:border-box}
.thgpa-wrap{background:var(--cream);border:2px solid var(--line);border-radius:14px;overflow:hidden}
.thgpa-head{background:var(--teal);color:#fff;padding:18px 24px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.thgpa-head h2{margin:0;font-family:Georgia,"Times New Roman",serif;font-size:24px;color:#fff;line-height:1.2}
.thgpa-head span{font-size:13px;opacity:.85;letter-spacing:.04em}
.thgpa-body{padding:22px 24px}
.thgpa-cols,.thgpa-row{display:grid;grid-template-columns:1fr 110px 120px 38px;gap:10px;align-items:center}
.thgpa-cols{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:0 2px 8px}
.thgpa-row{margin-bottom:10px}
.thgpa-root input,.thgpa-root select{width:100%;height:42px;padding:0 12px;border:1.5px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink);font-size:15px;font-family:inherit;margin:0}
.thgpa-root input:focus,.thgpa-root select:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(15,118,110,.15)}
.thgpa-del{height:42px;width:38px;border:none;border-radius:8px;background:#fde8ec;color:var(--rose);font-size:18px;font-weight:700;cursor:pointer;padding:0;line-height:1}
.thgpa-del:hover{background:var(--rose);color:#fff}
.thgpa-actions{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0 4px}
.thgpa-btn{border:none;border-radius:8px;padding:11px 18px;font-size:15px;font-weight:700;cursor:pointer;font-family:inherit}
.thgpa-add{background:var(--amber);color:#3b2a00}
.thgpa-add:hover{background:#d98a06;color:#fff}
.thgpa-reset{background:transparent;color:var(--teal);border:1.5px solid var(--teal)}
.thgpa-reset:hover{background:var(--teal);color:#fff}
.thgpa-results{margin-top:22px;background:var(--card);border:2px solid var(--line);border-radius:12px;padding:22px}
.thgpa-top{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-bottom:18px}
.thgpa-gpa{min-width:150px;text-align:center;background:var(--ink);color:#fff;border-radius:12px;padding:16px 20px}
.thgpa-gpa small{display:block;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#fcd34d}
.thgpa-gpa strong{display:block;font-family:Georgia,serif;font-size:48px;line-height:1.1}
.thgpa-meter{flex:1;min-width:220px}
.thgpa-badge{display:inline-block;padding:5px 14px;border-radius:999px;font-weight:700;font-size:14px;background:#ccfbf1;color:var(--teal-d);margin-bottom:12px}
.thgpa-badge.warn{background:#fee2e2;color:#991b1b}
.thgpa-badge.mid{background:#fef3c7;color:#92400e}
.thgpa-bar{height:14px;background:#efe7d8;border-radius:999px;overflow:hidden}
.thgpa-bar>i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--amber),var(--teal));border-radius:999px;transition:width .4s}
.thgpa-scale{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-top:4px}
.thgpa-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:18px}
.thgpa-stat{background:var(--cream);border:1.5px solid var(--line);border-radius:10px;padding:12px;text-align:center}
.thgpa-stat small{display:block;font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.thgpa-stat b{font-size:22px;font-family:Georgia,serif}
.thgpa-split h4{margin:0 0 8px;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.thgpa-stack{display:flex;height:22px;border-radius:6px;overflow:hidden;background:#efe7d8}
.thgpa-stack i{display:block;height:100%;transition:width .4s}
.thgpa-legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:8px;font-size:13px;color:var(--ink)}
.thgpa-legend span:before{content:"";display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;background:var(--c)}
@media(max-width:600px){
.thgpa-cols{display:none}
.thgpa-row{grid-template-columns:1fr 1fr;padding:12px;background:var(--card);border:1.5px solid var(--line);border-radius:10px}
.thgpa-row .thgpa-name{grid-column:1/3}
.thgpa-row .thgpa-del{width:100%;grid-column:1/3}
.thgpa-stats{grid-template-columns:1fr}
.thgpa-body{padding:16px}
}
