@font-face{font-family:Poppins;src:url('/assets/fonts/poppins/Poppins-Regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Poppins;src:url('/assets/fonts/poppins/Poppins-Medium.ttf') format('truetype');font-style:normal;font-weight:500;font-display:swap}
@font-face{font-family:Poppins;src:url('/assets/fonts/poppins/Poppins-SemiBold.ttf') format('truetype');font-style:normal;font-weight:600;font-display:swap}
@font-face{font-family:Poppins;src:url('/assets/fonts/poppins/Poppins-Bold.ttf') format('truetype');font-style:normal;font-weight:700;font-display:swap}
:root{--font-sans:'Poppins',sans-serif;--font-mono:'Poppins',sans-serif;--type-title:clamp(1.5rem,2.6vw,2rem);--type-section:1.125rem;--type-subheading:.9375rem;--type-body:.875rem;--type-small:.8125rem;--type-caption:.75rem;--type-micro:.6875rem}
body{font-family:var(--font-sans);font-size:var(--type-body);line-height:1.65}
/* Apply the requested family to legacy components, controls and audit text too. */
body *{font-family:var(--font-sans)!important}
h1,h2,h3{font-weight:600;line-height:1.4;letter-spacing:-.02em}
h2,.panel-head h2{font-size:var(--type-section)}
h3{font-size:var(--type-subheading)}
strong,b{font-weight:600}
label,legend{font-size:var(--type-small);font-weight:500;line-height:1.5}
input:not([type=checkbox]),select,textarea{font-size:var(--type-body);font-weight:400;line-height:1.6}
textarea{line-height:1.7}
.button,.secondary,.text-link,.danger{font-size:var(--type-small);line-height:1.5}
.hint,.subtext,.empty p{font-size:var(--type-small);line-height:1.75}
.eyebrow{font-size:var(--type-micro);font-weight:600;letter-spacing:.1em;line-height:1.6}
.badge,.period,.dash-status{font-size:var(--type-caption);line-height:1.5;font-weight:500}
.notice,.error{font-size:var(--type-body);line-height:1.7}
.app-layout .topbar .school-name{font-size:1.0625rem;font-weight:600;line-height:1.4}
.account-profile strong{font-size:var(--type-body);font-weight:600}
.account .account-profile small{font-size:var(--type-caption)}
.account .header-period{font-size:var(--type-caption);font-weight:400}
.sidebar .brand{font-size:var(--type-body);font-weight:600;letter-spacing:.035em}
.sidebar .brand small{display:inline-block;margin-top:4px;font-size:var(--type-micro);line-height:1.6;letter-spacing:.015em;opacity:.8}
.sidebar nav a{font-size:var(--type-small);line-height:1.6}
.sidebar .nav-label,.nav-group>summary{font-size:var(--type-micro);font-weight:600;letter-spacing:.08em}
.sidebar-period-label,.sidebar-period-note,.sidebar-period-value>span{font-size:var(--type-micro);line-height:1.6}
.sidebar-period-value>strong{font-size:.9375rem;font-weight:600}
.sidebar-logout{font-size:var(--type-small)}
table,table.dataTable{font-size:var(--type-small);line-height:1.6}
th,table.dataTable thead>tr>th{font-size:var(--type-micro);font-weight:600;letter-spacing:.04em;line-height:1.5}
td,table.dataTable tbody>tr>td{font-size:var(--type-small);line-height:1.65}
div.dt-container{font-size:var(--type-small)}
div.dt-container .dt-search label,div.dt-container .dt-length label,div.dt-container .dt-info,div.dt-container .dt-paging .dt-paging-button{font-size:var(--type-caption);line-height:1.6}
div.dt-container .dt-search input,div.dt-container .dt-length select,.roster-filters select,.roster-filters label{font-size:var(--type-small)}
.footer{font-size:var(--type-caption);line-height:1.65}
.page-title,.dash-welcome h2{font-size:var(--type-title);font-weight:600;line-height:1.3}
.dash-welcome p:not(.eyebrow){font-size:var(--type-body);line-height:1.75}
.dash-stat>strong,.stat strong{font-size:2rem;font-weight:600;line-height:1.2}
.dash-stat>span,.dash-task p,.dash-module-row p,.dash-today-item span,.dash-guide p{font-size:var(--type-small);line-height:1.7}
.dash-stat>p,.dash-task-module,.dash-cell-note,.dash-module-progress>div,.dash-period span{font-size:var(--type-caption);line-height:1.65}
.dash-task h3,.dash-module-row h3{font-size:var(--type-subheading)}
.dash-today-item strong,.uh-stats strong,.followup-summary strong,.journal-counts strong{font-size:1.75rem;font-weight:600;line-height:1.3}
.dash-period strong{font-size:1.5rem;font-weight:600}
.followup-summary span,.journal-counts span{font-size:var(--type-small)}
.attendance-heading,.grade-section-title,.uh-heading,.student-form-section>summary{font-size:var(--type-subheading);font-weight:600;line-height:1.5}
.grade-progress,.grade-history-item,.attendance-changes,.uh-changes,.student-detail-grid dd,.student-detail-grid dt{font-size:var(--type-small);line-height:1.75}
.grade-scope,.grade-missing,.uh-max,#semester-grade-grid th small{font-size:var(--type-caption);line-height:1.5}
.grade-structure,.uh-form-grid textarea,[data-uh-notes] textarea,.student-field-grid textarea{font-size:var(--type-body);line-height:1.7}
.followup-history pre,.journal-history pre,pre,code{font-size:var(--type-caption);line-height:1.75}
.student-dialog-head h2{font-size:1.5rem;font-weight:600;line-height:1.35}
.auth-story .brand{font-size:.9375rem}
.auth-story .brand small{font-size:var(--type-caption)}
.auth-story h1{font-size:clamp(2rem,3.5vw,2.75rem);font-weight:600;line-height:1.25}
.auth-story p:not(.eyebrow){font-size:var(--type-body);line-height:1.8}
.auth-story .story-foot{font-size:var(--type-caption)}
@media(max-width:767px){
 .app-layout .topbar .school-name{font-size:.9375rem}
 .account-profile strong{font-size:var(--type-small)}
 .account .account-profile small,.account .header-period{font-size:var(--type-micro)}
 .dash-welcome h2{font-size:1.5rem}
 .dash-stat>strong{font-size:1.75rem}
 input:not([type=checkbox]),select,textarea,div.dt-container .dt-search input,div.dt-container .dt-length select,.uh-form-grid textarea,[data-uh-notes] textarea,.student-field-grid textarea,.grade-structure{font-size:1rem}
}
