/* v4.1 — fluid, accessible typography shared by the public site and account panels. */
html{font-size:clamp(16px,15px + .22vw,19px);-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{font-size:1rem;line-height:1.75}
button,input,select,textarea{font:inherit}
.public-page p,.public-page li{font-size:clamp(.96rem,.92rem + .12vw,1.06rem);line-height:1.9}
.public-page .site-nav a,.public-page .btn{font-size:clamp(.82rem,.8rem + .08vw,.91rem)}
.public-page h1,.content-page-copy h1,.news-hero h1{font-size:clamp(2rem,1.45rem + 2.25vw,3.5rem);line-height:1.24}
.public-page h2,.section-heading h2{font-size:clamp(1.55rem,1.25rem + 1.15vw,2.65rem);line-height:1.35}
.public-page h3{font-size:clamp(1.08rem,1rem + .35vw,1.42rem);line-height:1.5}
.panel-page{font-size:clamp(15px,14px + .17vw,18px)}
.panel-page .side-nav a{font-size:.86rem;line-height:1.5}
.panel-page .nav-caption{font-size:.7rem}
.panel-page .topbar-title small{font-size:.72rem}.panel-page .topbar-title strong{font-size:.9rem}
.panel-page .page-head h1{font-size:clamp(1.5rem,1.28rem + .65vw,2.05rem);line-height:1.35}
.panel-page .page-head p,.panel-page .panel-head small{font-size:.82rem;line-height:1.75}
.panel-page .panel-head h2{font-size:1.05rem;line-height:1.45}
.panel-page label{font-size:.84rem;line-height:1.65}
.panel-page input,.panel-page select,.panel-page textarea{font-size:.86rem;min-height:44px}
.panel-page textarea{min-height:110px}
.panel-page .btn,.panel-page button{font-size:.8rem;min-height:38px}
.panel-page th{font-size:.74rem;line-height:1.5}.panel-page td{font-size:.82rem;line-height:1.65}
.panel-page small{font-size:.72rem;line-height:1.6}
.panel-page .status,.panel-page .pill{font-size:.69rem}
.expected-grade-message{display:block;margin-top:8px;padding:9px 11px;border-radius:9px;background:#eef3ff;color:#3157e7;font-weight:700}
.expected-grade-message.is-success{background:#eaf8ef;color:#187a3d}.expected-grade-message.is-error{background:#fff0f0;color:#b52626}
.year-close-panel{border:1px solid #f0d1d1}.year-close-panel .btn-danger{width:max-content}
@media(max-width:900px){
  html{font-size:17px}.panel-page{font-size:16px}
  .public-page .container{width:min(100% - 28px,var(--container,1180px))}
  .panel-page .content{padding-inline:18px}
  .panel-page .table-wrap{font-size:.95rem}
}
@media(max-width:600px){
  html{font-size:16px}
  .public-page h1,.content-page-copy h1,.news-hero h1{font-size:clamp(1.8rem,8vw,2.45rem)}
  .public-page h2,.section-heading h2{font-size:clamp(1.4rem,6vw,1.9rem)}
  .panel-page .page-head h1{font-size:1.45rem}
  .panel-page .content{padding-inline:13px}
  .panel-page td,.panel-page th{font-size:.78rem}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
