/* Shared reading scale for dashboard, forms, tables and public account pages. */
:root{--reading-text:#203650;--reading-muted:#52657e;--reading-link:#245fad}
body{font-size:15px;line-height:1.6;color:var(--reading-text)}
button,input,select,textarea{font-family:inherit}
a{color:var(--reading-link)}
.dashboard-title h1{font-size:clamp(21px,1.8vw,28px);line-height:1.3}
.dashboard-title .eyebrow,.public-heading .eyebrow,.login-form .eyebrow{font-size:10px;color:var(--reading-muted);letter-spacing:1.5px}
.topbar h2{font-size:clamp(21px,1.7vw,26px);line-height:1.4}
.topbar p,.context{font-size:14px;color:var(--reading-muted)}
.sidebar .nav-link,.sidebar .settings-nav>summary{font-size:14px;line-height:1.5;min-height:46px}
.sidebar .settings-nav .sub-link{font-size:13px}
.sidebar .school-label{font-size:10px;color:#bbcee8}
.sidebar .tenant-picker label,.sidebar .tenant-picker button{font-size:12px;color:#c4d8f3}
.sidebar .tenant-picker select{font-size:13px;min-height:44px}
.sidebar .brand>.app-brand-name{font-size:18px}
.sidebar .app-brand-name small{font-size:11px;line-height:1.5;color:#d4e1f3;opacity:1}
.sidebar-bottom,.sidebar-bottom strong{font-size:13px}
.sidebar-bottom p,.sidebar-bottom button,.sidebar-bottom .version{font-size:12px;color:#c4d6ed}
.stat p{font-size:14px;line-height:1.5;color:#374f70}
.stat strong{font-size:34px;line-height:1.2}
.stat>a,.panel-head>a{font-size:13px;color:var(--reading-link)}
.stat>a{margin-top:18px}
.panel h3,.form-panel h3,.table-toolbar h3{font-size:17px;line-height:1.45}
.row-body strong,.agenda-row strong,.announcement strong{font-size:15px;line-height:1.5;color:var(--reading-text)}
.row-sub,.agenda-row p,.agenda-time,.announcement p,.announcement time,.progress-line>span{font-size:13px;line-height:1.65;color:var(--reading-muted)}
.completion strong{font-size:13px;color:#304e70}
.completion p,.main-footer{font-size:12px;line-height:1.65;color:var(--reading-muted)}
.empty,.table-empty{font-size:14px;color:var(--reading-muted)}
label,.form-panel label,.login-form label{font-size:14px;line-height:1.5;color:#3c526d}
input,select,textarea,.login-form input{font-size:16px;line-height:1.5;min-height:46px;color:var(--reading-text)}
input::placeholder,textarea::placeholder{color:#65758a;opacity:1}
.primary,.secondary,.danger-primary,.confirm-actions button{font-size:14px;min-height:44px}
.back-button{font-size:13px;min-height:42px}
.form-panel p,.record-heading p,.table-toolbar p,.muted-copy,.secret-note{font-size:13px!important;line-height:1.75;color:var(--reading-muted)}
table,.crud-table,.crud-table td{font-size:14px;line-height:1.6}
th,.crud-table thead th{font-size:12px;color:#52657e;letter-spacing:.3px}
td small,.crud-table td small,.person-cell small,.table-toolbar .table-count,.pagination,.pagination span{font-size:13px;color:var(--reading-muted)}
.person-cell strong,.crud-table td strong{font-size:14px}
.role-tag,.status-badge,.pill,.action-btn,.row-number,.search-field input{font-size:12px}
.action-btn{min-height:36px}
.record-fields dt{font-size:13px;color:var(--reading-muted)}
.record-fields dd{font-size:15px}
.indicator strong{font-size:15px;line-height:1.8}
.indicator summary,.indicator details p{font-size:13px;line-height:1.75;color:var(--reading-muted)}
.instrument-group>h3 span,.score small{font-size:13px;color:var(--reading-muted)}
.assessment-tab-list a{font-size:13px;min-height:46px}
.assessment-tab-list small,.assessment-dock-heading,.assessment-dock-heading strong{font-size:12px}
.notice,.public-card .notice,.login-form .notice,.success-toast-copy p{font-size:14px;line-height:1.7}
.success-toast-copy strong{font-size:15px}
.profile-summary strong,.notification-item strong,.profile-menu-item{font-size:14px}
.profile-summary small,.popover-heading small,.notification-item p,.notification-item time,.notification-footer button{font-size:12px}
.login-form>p,.public-heading>p,.registration-summary p{font-size:14px;line-height:1.75;color:var(--reading-muted)}
.login-foot,.registration-note,.lookup-status,.source-copy{font-size:13px;line-height:1.75;color:var(--reading-muted)}
.registration-step{font-size:15px}
.registration-step>span{font-size:12px}
.public-heading h1{font-size:clamp(24px,2vw,29px);line-height:1.35}
.login-story p{font-size:15px;color:#d4e2f5}
.login-story>small{font-size:12px;color:#bfd2ed}
.npsn-field button{font-size:13px}
@media(max-width:1100px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.agenda-row{flex-wrap:wrap}.agenda-time{margin-left:auto}}
@media(max-width:780px){
 .dashboard-title h1{font-size:20px}.dashboard-title .eyebrow{font-size:9px}
 .topbar h2{font-size:21px}.topbar p{font-size:13px}
 .panel-head{gap:12px;flex-wrap:wrap}.panel h3,.table-toolbar h3{font-size:16px}
 .stat{padding:18px 14px}.stat p{font-size:13px}.stat strong{font-size:30px}.stat>a{font-size:12px}
 .stat>div{gap:10px}.stat .icon{width:35px;height:38px;flex-shrink:0}
 .agenda-row strong,.row-body strong,.announcement strong{font-size:14px}
 .agenda-row p,.agenda-time,.announcement p,.announcement time,.row-sub{font-size:13px}
 .announcement{flex-wrap:wrap}.announcement time{margin-left:0}
 .page-title-row .back-button{font-size:13px}.assessment-tab-list a{font-size:13px}
 .sidebar .nav-link,.sidebar .settings-nav>summary{font-size:14px}
 .sidebar .settings-nav .sub-link{font-size:13px}
 .main-footer{font-size:12px}.npsn-field button{font-size:12px}
}
@media(max-width:380px){.stat>div{align-items:flex-start;flex-direction:column}.stat p{font-size:13px}.stat strong{font-size:28px}.title-lockup{gap:7px}.dashboard-title h1{font-size:18px}.dashboard-title .eyebrow{font-size:8px;letter-spacing:1px}.indicator{grid-template-columns:minmax(0,1fr) 65px;gap:12px;padding:18px}.header-tools{gap:5px}}
html[data-theme=dark]{--reading-text:#e0e9f6;--reading-muted:#b5c4d9;--reading-link:#a9caff}
html[data-theme=dark] .topbar p,html[data-theme=dark] .form-panel p,html[data-theme=dark] .row-sub,html[data-theme=dark] .agenda-row p,html[data-theme=dark] .agenda-time,html[data-theme=dark] .announcement p,html[data-theme=dark] .announcement time,html[data-theme=dark] .completion p,html[data-theme=dark] .main-footer,html[data-theme=dark] .table-toolbar p,html[data-theme=dark] .pagination span,html[data-theme=dark] .record-fields dt,html[data-theme=dark] .indicator details p{color:var(--reading-muted)}
html[data-theme=dark] .stat p,html[data-theme=dark] label,html[data-theme=dark] .form-panel label,html[data-theme=dark] .completion strong{color:#c7d7ed}
html[data-theme=dark] .stat>a,html[data-theme=dark] .panel-head>a{color:var(--reading-link)}
html[data-theme=dark] input::placeholder,html[data-theme=dark] textarea::placeholder{color:#9eafc6}
html[data-theme=dark] .crud-table td small,html[data-theme=dark] .person-cell small{color:var(--reading-muted)}

.announcement{display:grid;grid-template-columns:38px minmax(0,1fr);align-items:start;gap:10px 12px}.announcement>div{min-width:0}.announcement time{grid-column:2;margin:0;text-align:left}.announcement .icon{width:36px;height:38px}.stat>div>div{min-width:0}html[data-theme=dark] .row-body strong,html[data-theme=dark] .agenda-row strong,html[data-theme=dark] .announcement strong{color:var(--reading-text)}html[data-theme=dark] .public-heading>p,html[data-theme=dark] .login-form>p,html[data-theme=dark] .login-foot,html[data-theme=dark] .registration-note,html[data-theme=dark] .source-copy,html[data-theme=dark] .muted-copy{color:var(--reading-muted)}

.dashboard-title .title-lockup{align-items:center}.dashboard-title .title-lockup h1{margin:0;line-height:1.3;letter-spacing:-.5px}.dashboard-title .title-lockup>div{min-width:0}
