:root{--bs-primary:#2563eb; color-scheme: light;}
body{background:#fcfbf8;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;scroll-behavior:smooth; color:#0f172a;}
html{scroll-padding-top:80px;}
.text-primary{color:#2563eb!important;}
.bg-footer{background-color: rgb(174 181 189);}
.btn-primary{background:#2563eb;border-color:#2563eb;}
.btn-primary:hover{background:#1d4ed8;border-color:#1d4ed8;}
.btn-outline-primary{color:#2563eb;border-color:#2563eb;}
.btn-outline-primary:hover{background:#2563eb;color:#fff;}
.hero{background:linear-gradient(180deg,#eef4ff,#f8fafc);}
.hero-icon{width:80px;height:80px;border-radius:50%;background:#dbeafe;display:flex;align-items:center;justify-content:center;font-size:2rem;color:#2563eb;}
.feature{background:#fff;border-radius:14px;padding:1.5rem;height:100%;box-shadow:0 1px 3px rgba(0,0,0,.04);}
.feature .ico{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5rem;margin:0 auto 1rem;}
.bg-purple-subtle{background:#f3e8ff!important;}.text-purple{color:#9333ea!important;}
.bg-light-soft{background:linear-gradient(180deg,#f8fafc,#eef4ff);}
.cat-card{background:#fff;border-radius:18px;padding:1.75rem;box-shadow:0 2px 8px rgba(0,0,0,.05);}
.cat-head{display:flex;gap:1rem;align-items:center;}
.cat-ico{width:48px;height:48px;border-radius:12px;color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.4rem;}
.tile{display:block;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:1rem;text-decoration:none;color:inherit;transition:.15s;}
.tile:hover{border-color:#2563eb;transform:translateY(-2px);box-shadow:0 4px 12px rgba(37,99,235,.1);}
.tile h6{margin:0 0 .25rem;color:#0f172a;}
.calc-card{background:#fff;border-radius:18px;padding:2rem;margin-bottom:2rem;box-shadow:0 2px 8px rgba(0,0,0,.05);scroll-margin-top:80px;}
.calc-card h2{font-size:1.5rem;font-weight:700;margin-bottom:1.25rem;}
.basic-calc{max-width:360px;}
.bc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;}
.bc-grid .btn{padding:1rem 0;font-size:1.15rem;font-weight:500;}
.bc-zero{grid-column:span 2;}
.sci-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:.4rem;}
.sci-grid .btn{padding:.6rem 0;font-size:.95rem;}
.sci-eq{grid-column:span 6;padding:.75rem!important;}
@media(max-width:575px){
  .sci-grid{grid-template-columns:repeat(4,1fr);}
  .sci-grid .btn:nth-child(1),.sci-grid .btn:nth-child(2),.sci-grid .btn:nth-child(3),.sci-grid .btn:nth-child(4){grid-column:span 1;}
  .sci-eq{grid-column:span 4;}
  .sci-grid .btn{padding:.55rem 0;font-size:.82rem;}
}
#sw-display,#tm-display{font-family:monospace;font-weight:600;}


/* Footer links — black text, no underline */
footer a.link-light{color:#0f172a!important;text-decoration:none!important;}
footer a.link-light:hover{color:#2563eb!important;text-decoration:none!important;}

/* ===== PERCENTAGE PAGE ===== */
.pct-hero{background:linear-gradient(180deg,#eef4ff,#f0f4ff);padding:2.5rem 1rem 2rem;}
.pct-icon-wrap{width:64px;height:64px;border-radius:50%;background:#fff3e0;display:flex;align-items:center;justify-content:center;font-size:1.8rem;color:#f97316;margin:0 auto 1rem;box-shadow:0 2px 8px rgba(249,115,22,.15);}
.pct-card{background:#fff;border-radius:16px;padding:1.5rem;box-shadow:0 2px 10px rgba(0,0,0,.07);height:100%;}
.pct-card-icon{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.2rem;color:#fff;flex-shrink:0;}
.pct-result{background:#f0f4ff;border-radius:10px;padding:.75rem 1rem;color:#2563eb;font-weight:600;text-align:center;font-size:1.05rem;min-height:42px;}
.pct-result.has-error{background:#fff0f0;color:#dc2626;}
.pct-inline{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;}
.pct-inline input{flex:1;min-width:80px;}
.pct-inline .lbl{white-space:nowrap;font-size:.9rem;color:#64748b;font-weight:500;}
.pct-inline .unit{font-size:.9rem;color:#64748b;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;padding:.35rem .6rem;white-space:nowrap;}
.hint-bar{background:#fff9e6;border-radius:8px;padding:.4rem 1rem;font-size:.82rem;color:#92400e;display:inline-flex;align-items:center;gap:.4rem;}

/* ===== BMI PAGE ===== */
.bmi-hero{background:linear-gradient(180deg,#eef4ff,#f0f4ff);padding:2.5rem 1rem 2rem;}
.bmi-hero-icon{width:64px;height:64px;border-radius:50%;background:#fee2e2;display:flex;align-items:center;justify-content:center;font-size:1.8rem;color:#ef4444;margin:0 auto 1rem;box-shadow:0 2px 8px rgba(239,68,68,.15);}
.bmi-card{background:#fff;border-radius:16px;padding:1.75rem;box-shadow:0 2px 10px rgba(0,0,0,.07);height:100%;}
.bmi-unit-label{display:flex;}
.bmi-unit-label .bmi-unit-btn{background:#eef4ff;color:#2563eb;border-radius:8px;padding:.45rem 1rem;font-size:.9rem;font-weight:600;border:none;cursor:default;}
.bmi-input-wrap{position:relative;}
.bmi-input{padding-right:2.5rem;border-radius:10px;border-color:#e2e8f0;font-size:1rem;}
.bmi-input:focus{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.1);}
.bmi-input-icon{position:absolute;right:.85rem;top:50%;transform:translateY(-50%);font-size:1.1rem;pointer-events:none;}
.bmi-cat-item{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:1rem;margin-bottom:.75rem;}
.bmi-dot{width:14px;height:14px;border-radius:50%;display:inline-block;flex-shrink:0;}
.bmi-note{background:#fefce8;border:1px solid #fde68a;border-radius:10px;padding:.9rem 1rem;font-size:.85rem;color:#78350f;line-height:1.5;}
.bmi-result-box{background:#f8fafc;border-radius:12px;padding:1.25rem;border:1px solid #e2e8f0;}
.bmi-value-badge{background:#2563eb;color:#fff;border-radius:8px;padding:.3rem .9rem;font-size:1.3rem;font-weight:700;}
.bmi-bar{position:relative;height:10px;border-radius:999px;background:linear-gradient(to right,#3b82f6 0%,#22c55e 28%,#f59e0b 55%,#ef4444 80%,#991b1b 100%);overflow:visible;margin:0 .5rem;}
.bmi-marker{position:absolute;top:50%;width:16px;height:16px;border-radius:50%;background:#fff;border:3px solid #0f172a;transform:translate(-50%,-50%);transition:left .4s ease;}
.bmi-cat-label{font-size:1.1rem;}

.mortgage-page{background:#F0F4F8;}
.mortgage-card{background:#fff;border:1px solid #e3eaef;border-radius:1rem;padding:1.75rem;box-shadow:0 1rem 2rem rgba(15,23,42,.04);}
.mortgage-info-box{background:linear-gradient(135deg,#7c3aed,#4338ca);color:#fff;border-radius:1rem;}
.mortgage-info-box ul{margin-bottom:0;padding-left:1.1rem;}
.donut-chart{width:220px;height:220px;border-radius:50%;position:relative;margin:auto;}
.donut-chart::before{content:'';position:absolute;inset:26px;border-radius:50%;background:#F0F4F8;}
.chart-legend li{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem;}
.chart-legend .legend-swatch{width:14px;height:14px;border-radius:4px;display:inline-block;}
.result-label{color:#6c757d;}
.data-row dt{color:#6c757d;}
.data-row dd{margin-bottom:.75rem;}
@media(max-width:991.98px){.mortgage-card{padding:1.25rem;}}

/* ===== LOAN / MORTGAGE PAGE ===== */
.lc-hero{background:linear-gradient(180deg,#eef4ff,#f0f4ff);padding:2rem 1rem;}
.lc-hero-icon{width:64px;height:64px;border-radius:50%;background:#dcfce7;display:flex;align-items:center;justify-content:center;font-size:1.8rem;color:#16a34a;margin:0 auto 1rem;box-shadow:0 2px 8px rgba(22,163,74,.15);}
.lc-card{background:#fff;border-radius:16px;padding:1.5rem;box-shadow:0 2px 10px rgba(0,0,0,.07);}
.lc-type-btn{background:#fff;border:2px solid #e2e8f0;border-radius:14px;padding:1rem .75rem;text-align:center;cursor:pointer;transition:.15s;line-height:1.3;}
.lc-type-btn:hover{border-color:#2563eb;}
.lc-type-btn.active{border-color:#16a34a;background:#f0fdf4;}
.lc-type-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.4rem;margin:0 auto;}
.lc-input-group{position:relative;display:flex;align-items:center;}
.lc-input-prefix{position:absolute;left:.75rem;color:#94a3b8;font-size:1rem;pointer-events:none;z-index:2;}
.lc-input-suffix{position:absolute;right:.75rem;color:#94a3b8;font-size:1rem;pointer-events:none;z-index:2;}
.lc-input{border-radius:10px;border-color:#e2e8f0;font-size:.95rem;width:100%;}
.lc-input:focus{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.1);outline:none;}
.lc-input-group .lc-input{padding-left:2rem;}
.lc-input-icon-right{padding-right:2.2rem!important;padding-left:.75rem!important;}
.lc-optional-section{background:#f8fafc;border-radius:12px;padding:1rem;}
.lc-big-num{font-size:2.2rem;font-weight:800;color:#16a34a;letter-spacing:-.5px;}
.lc-summary-row{display:flex;justify-content:space-between;padding:.6rem 0;border-bottom:1px solid #f1f5f9;font-size:.93rem;}
.lc-breakdown-box{border-radius:12px;padding:1rem;text-align:center;}
.lc-progress-bar{height:8px;background:#e2e8f0;border-radius:999px;overflow:hidden;}
.lc-progress-fill{height:100%;background:linear-gradient(to right,#2563eb,#16a34a);border-radius:999px;transition:width .4s ease;}
.lc-schedule-table th{font-size:.8rem;color:#64748b;font-weight:600;padding:.5rem .6rem;}
.lc-schedule-table td{font-size:.82rem;padding:.45rem .6rem;}
.lc-schedule-table tbody tr:nth-child(odd){background:#f8fafc;}
.lc-schedule-table .td-principal{color:#2563eb;font-weight:500;}
.lc-schedule-table .td-interest{color:#dc2626;font-weight:500;}

/* ===== DISCOUNT PAGE ===== */
.dc-hero{background:linear-gradient(180deg,#eef4ff,#f0f4ff);padding:2.5rem 1rem 2rem;}
.dc-hero-icon{width:64px;height:64px;border-radius:50%;background:#dcfce7;display:flex;align-items:center;justify-content:center;font-size:1.8rem;color:#16a34a;margin:0 auto 1rem;box-shadow:0 2px 8px rgba(22,163,74,.15);}
.dc-card{background:#fff;border-radius:16px;padding:1.5rem;box-shadow:0 2px 10px rgba(0,0,0,.07);}
.dc-tab-btn{background:#fff;border:2px solid #e2e8f0;border-radius:14px;padding:.9rem .5rem;text-align:center;cursor:pointer;transition:.15s;line-height:1.4;color:#374151;}
.dc-tab-btn:hover{border-color:#16a34a;}
.dc-tab-btn.active{border-color:#16a34a;background:#f0fdf4;color:#16a34a;}
.dc-tab-icon{font-size:1.3rem;font-weight:700;color:inherit;}
.dc-input-wrap{position:relative;display:flex;align-items:center;}
.dc-input{border-radius:10px;border-color:#e2e8f0;font-size:.95rem;width:100%;}
.dc-input:focus{border-color:#16a34a;box-shadow:0 0 0 3px rgba(22,163,74,.1);outline:none;}
.dc-input-wrap .dc-input{padding-left:2rem;}
.dc-input-pct{padding-left:.75rem!important;padding-right:2rem!important;}
.dc-prefix{position:absolute;left:.75rem;color:#94a3b8;pointer-events:none;z-index:2;font-size:.95rem;}
.dc-suffix{position:absolute;right:.75rem;color:#94a3b8;pointer-events:none;z-index:2;font-size:.95rem;}
.dc-quick-btn{background:#f0fdf4;border:1px solid #bbf7d0;color:#15803d;border-radius:8px;padding:.3rem .65rem;font-size:.78rem;font-weight:600;cursor:pointer;transition:.15s;}
.dc-quick-btn:hover,.dc-quick-btn.active-quick{background:#16a34a;color:#fff;border-color:#16a34a;}
.dc-result-hero{background:#f0fdf4;border-radius:12px;padding:1.25rem;text-align:center;border:1px solid #bbf7d0;}
.dc-big-price{font-size:2.2rem;font-weight:800;color:#16a34a;}
.dc-row-item{display:flex;justify-content:space-between;padding:.65rem 0;border-bottom:1px solid #f1f5f9;font-size:.92rem;}
.dc-row-final{background:#f0fdf4;border-radius:8px;padding:.65rem .75rem;border:none;margin-top:.5rem;}
/* compare tab */
.dc-compare-item{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:1rem;margin-bottom:.75rem;}
.dc-compare-item-title{font-weight:600;margin-bottom:.75rem;font-size:.95rem;}
.dc-add-btn{background:#fff;border:2px dashed #d1d5db;border-radius:12px;padding:.75rem;color:#6b7280;font-size:.9rem;cursor:pointer;transition:.15s;}
.dc-add-btn:hover{border-color:#16a34a;color:#16a34a;}
.dc-compare-result-card{border-radius:12px;padding:1rem;margin-bottom:.75rem;border:2px solid #e2e8f0;}
.dc-compare-result-card.best{border-color:#16a34a;background:#f0fdf4;}
.dc-compare-price{font-size:1.3rem;font-weight:800;}
.dc-best-deal{background:linear-gradient(135deg,#f0fdf4,#dcfce7);border:1px solid #86efac;border-radius:12px;padding:1rem;margin-top:.5rem;}

/* ===== UNIT CONVERTER PAGE ===== */
.uc-hero{background:linear-gradient(180deg,#f5f3ff,#ede9fe);padding:2.5rem 1rem 2rem;}
.uc-hero-icon{width:64px;height:64px;border-radius:50%;background:#ede9fe;display:flex;align-items:center;justify-content:center;font-size:1.8rem;color:#7c3aed;margin:0 auto 1rem;box-shadow:0 2px 8px rgba(124,58,237,.15);}
.uc-cat-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.6rem;}
@media(max-width:767px){.uc-cat-grid{grid-template-columns:repeat(3,1fr);}}
@media(max-width:480px){.uc-cat-grid{grid-template-columns:repeat(2,1fr);}}
.uc-cat-btn{background:#fff;border:2px solid #e2e8f0;border-radius:12px;padding:.75rem .5rem;text-align:center;cursor:pointer;transition:.15s;display:flex;flex-direction:column;align-items:center;gap:.35rem;font-size:.82rem;color:#374151;font-weight:500;line-height:1.2;}
.uc-cat-btn i{font-size:1.2rem;color:#94a3b8;}
.uc-cat-btn:hover{border-color:#7c3aed;color:#7c3aed;}
.uc-cat-btn:hover i{color:#7c3aed;}
.uc-cat-btn.active{border-color:#7c3aed;background:#faf5ff;color:#7c3aed;font-weight:600;}
.uc-cat-btn.active i{color:#7c3aed;}
.uc-card{background:#fff;border-radius:16px;padding:2rem;box-shadow:0 2px 10px rgba(0,0,0,.07);}
.uc-select{border-radius:10px;border-color:#e2e8f0;font-size:.95rem;padding:.6rem .9rem;}
.uc-select:focus{border-color:#7c3aed;box-shadow:0 0 0 3px rgba(124,58,237,.1);outline:none;}
.uc-input{border-radius:10px;border-color:#e2e8f0;font-size:1rem;padding:.65rem .9rem;}
.uc-input:focus{border-color:#7c3aed;box-shadow:0 0 0 3px rgba(124,58,237,.1);outline:none;}
.uc-output{background:#f5f3ff!important;color:#5b21b6;font-weight:600;}
.uc-swap-btn{width:44px;height:44px;border-radius:50%;background:#ede9fe;border:none;color:#7c3aed;font-size:1.1rem;cursor:pointer;transition:.15s;display:inline-flex;align-items:center;justify-content:center;}
.uc-swap-btn:hover{background:#7c3aed;color:#fff;}
.uc-result-line{background:#faf5ff;border:1px solid #ddd6fe;border-radius:10px;padding:.65rem 1rem;color:#6d28d9;font-weight:600;font-size:.95rem;text-align:center;}

/* ===== RANDOM GENERATOR PAGE ===== */
.rng-mode-tabs .rng-mode-btn{border-radius:999px;min-width:180px;white-space:nowrap;}
.rng-mode-tabs .rng-mode-btn.active{background:#ecfdf5;border-color:#22c55e;color:#166534;}
.rng-stat-card{background:#f8fafc;border-radius:1rem;}
.rng-chip{padding:.55rem .9rem;border:1px solid #d1fae5;border-radius:999px;background:#ecfdf5;color:#166534;font-weight:600;}
#output-panel{min-height:140px;}

/* ===== STANDARD DEVIATION PAGE ===== */
.btn-mode.active{background:#2563eb;color:#fff;border-color:#2563eb;}
.btn-mode{min-width:150px;}
#analysis-card{min-height:280px;}
#analysis-card .text-start{max-width:100%;}
.hero-h1{
  font-size: clamp(2rem, 5vw, 3.25rem);
  letter-spacing: -0.02em;
  line-height: 1.1;
  margin-bottom: 1rem;
}
 
/* Feature card H3s — same visual weight as before (h5-ish),
   just now semantically correct as heading level 3 */
.feature-h3{
  font-size: 1.1rem;
  font-weight: 700;
  margin-bottom: .4rem;
}
 
/* Section H2 used above category groups + FAQ */
.section-h2{
  font-size: 1.6rem;
  color: #0f172a;
}
 
/* Intro copy block under the hero */
.intro-copy p{
  font-size: 1.02rem;
  line-height: 1.75;
}
.intro-copy{
  text-align: center;
}
 
/* Subtle top accent rule to separate intro from category list visually */
.intro-copy::after{
  content:"";
  display:block;
  width:64px;
  height:4px;
  background:#2563eb;
  border-radius:999px;
  margin:1.75rem auto 0;
  opacity:.55;
}
 
/* FAQ accordion — restyled to match the existing card language
   (rounded corners, soft shadow) used elsewhere on the page */
.faq-item{
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:14px !important;
  overflow:hidden;
  margin-bottom:.85rem;
  box-shadow:0 1px 3px rgba(0,0,0,.04);
}
.faq-item .accordion-button{
  font-weight:600;
  color:#0f172a;
  background:#fff;
  padding:1rem 1.25rem;
}
.faq-item .accordion-button:not(.collapsed){
  color:#2563eb;
  background:#f8fafc;
  box-shadow:none;
}
.faq-item .accordion-button:focus{
  box-shadow:0 0 0 3px rgba(37,99,235,.12);
}
.faq-item .accordion-button::after{
  filter: none;
}
.faq-item .accordion-body{
  padding:0 1.25rem 1.1rem;
  line-height:1.65;
}
 
/* Slightly stronger hover lift on category cards for a more
   "alive" feel without altering existing .tile rules in styles.css */
.cat-card{
  transition: box-shadow .2s ease, transform .2s ease;
}
.cat-card:hover{
  box-shadow:0 6px 20px rgba(15,23,42,.08);
}
 
/* Respect reduced motion preference */
@media (prefers-reduced-motion: reduce){
  .cat-card, .tile{ transition: none !important; }
}

/* ===== GPA CALCULATOR PAGE ===== */
.gpa-hero{background:linear-gradient(180deg,#eef4ff,#f8fafc);padding:2rem 1rem 1.5rem;}
.gpa-hero-icon{width:56px;height:56px;border-radius:50%;background:#dbeafe;display:flex;align-items:center;justify-content:center;font-size:1.5rem;color:#2563eb;margin:0 auto .75rem;box-shadow:0 2px 8px rgba(37,99,235,.15);}
.gpa-card{background:#fff;border-radius:16px;padding:1.25rem;box-shadow:0 2px 10px rgba(0,0,0,.07);}
.gpa-toggle{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:#f8fafc;border-radius:12px;border:1px solid #e2e8f0;}
.gpa-toggle-label{font-weight:600;font-size:.9rem;color:#0f172a;}
.gpa-toggle-sub{font-size:.75rem;color:#64748b;}
.switch{position:relative;display:inline-block;width:44px;height:24px;flex-shrink:0;}
.switch input{opacity:0;width:0;height:0;}
.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#cbd5e1;transition:.3s;border-radius:24px;}
.slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;transition:.3s;border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,.15);}
input:checked+.slider{background-color:#2563eb;}
input:checked+.slider:before{transform:translateX(20px);}
.semester-section{background:#f8fafc;border-radius:12px;padding:1rem;margin-bottom:1rem;border:1px solid #e2e8f0;position:relative;}
.semester-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;flex-wrap:wrap;gap:.5rem;}
.semester-title{font-weight:700;font-size:.95rem;color:#0f172a;}
.gpa-table{width:100%;border-collapse:collapse;}
.gpa-table th{font-size:.7rem;text-transform:uppercase;letter-spacing:.03em;color:#64748b;font-weight:600;padding:.4rem .3rem;border-bottom:2px solid #e2e8f0;white-space:nowrap;}
.gpa-table td{padding:.3rem .4rem;vertical-align:middle;}
.gpa-table input,.gpa-table select{border-radius:6px;border-color:#e2e8f0;font-size:.82rem;padding:.3rem .5rem;}
.gpa-table input:focus,.gpa-table select:focus{border-color:#2563eb;box-shadow:0 0 0 2px rgba(37,99,235,.1);outline:none;}
@media(max-width:767px){
  .gpa-table input,.gpa-table select{font-size:.8rem;padding:.35rem .5rem;}
}
.gpa-table .btn-remove{width:28px;height:28px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;padding:0;font-size:.75rem;}
.gpa-course-name{width:auto;min-width:0;}
.gpa-grade{width:auto;min-width:0;}
.gpa-credits{width:auto;min-width:0;}
.gpa-type{width:auto;min-width:0;}
.gpa-actions{width:28px;text-align:center;}
.gpa-add-row{color:#2563eb;font-size:.82rem;font-weight:600;cursor:pointer;border:none;background:none;padding:.4rem 0;display:inline-flex;align-items:center;width:100%;justify-content:center;}
.gpa-add-row:hover{color:#1d4ed8;}
.gpa-semester-gpa{font-size:.82rem;font-weight:600;color:#16a34a;white-space:nowrap;}
.gpa-result-box{background:#f0f4ff;border-radius:12px;padding:1rem;text-align:center;border:1px solid #dbeafe;margin-top:1.25rem;}
.gpa-big-num{font-size:2rem;font-weight:800;color:#2563eb;line-height:1;}
.gpa-letter{font-size:1rem;font-weight:600;color:#64748b;margin-top:.2rem;}
.gpa-details{font-size:.8rem;color:#64748b;margin-top:.4rem;}
@media(max-width:767px){
  .gpa-card{padding:1rem;}
  .gpa-toggle{flex-direction:column;align-items:flex-start;gap:.5rem;}
  .gpa-toggle .switch{align-self:flex-end;}
  .gpa-table{width:100%;border-collapse:collapse;table-layout:auto;display:table;}
  .gpa-table thead{display:table-header-group;position:relative;background:#f8fafc;}
  .gpa-table tbody{display:table-row-group;}
  .gpa-table tr{display:table-row;margin-bottom:0;border:none;background:none;}
  .gpa-table td{display:table-cell;padding:.5rem .3rem;border:none;background:none;white-space:nowrap;min-width:90px;}
  .gpa-table th{font-size:.7rem;padding:.4rem .3rem;white-space:nowrap;text-align:center;display:table-cell;font-weight:600;color:#64748b;border-bottom:2px solid #e2e8f0;}
  .gpa-table input,.gpa-table select{font-size:.82rem;padding:.35rem .5rem;min-width:70px;}
  .gpa-table .btn-remove{width:30px;height:30px;font-size:.75rem;}
  .gpa-add-row{width:100%;justify-content:center;padding:.6rem;border:1px dashed #cbd5e1;border-radius:8px;margin-top:.5rem;}
  .semester-header{flex-direction:column;align-items:flex-start;gap:.5rem;}
  .gpa-semester-gpa{align-self:flex-start;}
  .gpa-card .d-flex.gap-2{flex-direction:column;}
  .gpa-card .d-flex.gap-2 .btn{width:100%;}
  .semester-section{padding:.75rem;}
  .table-responsive{border:1px solid #e2e8f0;border-radius:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;}
}
