/* One type scale across pages and viewports. Instructor size overrides remain local. */
:root{font-size:16px;--type-label:14px;--type-body:16px;--type-section:20px;--type-title:28px}
body,button,input,select,textarea,label,small,code,pre,table,summary{font-size:var(--type-body)}
code{font-size:inherit}
h1{font-size:var(--type-title)}
h2,.brand,.credit-row strong{font-size:var(--type-section)}
h3,.guide-section>.lead,.question-item h2,.ranking-label h2,.sidebar-title h2,.package-files h2,.package-comments h2{font-size:var(--type-body)}
.guide-section>.lead{font-weight:400;line-height:1.7}
.example-header h1,.document-heading h2{font-size:var(--type-section)}
.standing-band strong{font-size:var(--type-title)}
.assignment-facts strong{font-size:var(--type-body)}
small,.eyebrow,.section-label,.review-label,.proposed,.due,.meta,.example-link small,
.sample-caption,.guide-section .sample-caption,.source-note,.form-note,.table-note,
.quota,.status,.version-date,.question-number,.question-topic,.repeat-note,.public-badge,
.staff-tag,.you-tag,.alias-avatar,.standing-band>div>span,.ranking-label>span,
.version-field small,.review-label-text,.review-toolbar output,#review-save-state,
.code-heading>span,.code-status,#review-comment-form label,.review-note header button,
.review-note blockquote,#review-note-quote,.review-note .note-anchor,th{font-size:var(--type-label)}
.brand small{font-size:var(--type-label)}
.app-header .brand{font-size:28px}
.app-header .brand small{font-size:16px}
.app-header .course-mark img{width:88px}
.package-files a,.review-toolbar button,.review-toolbar .button{font-size:var(--type-label)}
.CodeMirror{font-size:var(--type-body)}
.CodeMirror pre{font-size:inherit}
.document #document-text{font-size:var(--type-body);line-height:1.85}
.record-link,.example-link{line-height:1.6}
.formula{font-size:var(--type-body)}
.review-note{font-size:var(--type-body)}
.guide-section td,.guide-section th{white-space:normal;overflow-wrap:anywhere}
.definition-list dt{overflow-wrap:anywhere}
.standing-band small,.standing-band a{line-height:1.5}
.sample pre.sample-prose{line-height:1.75}
.guide-content a:not(.button),.table-note a,.form-note a,.standing-band a,.client-answer a{text-decoration:underline;text-underline-offset:3px}
.edited-paragraph{display:block;margin:0;min-height:0}
.edited-paragraph+.edited-paragraph{margin-top:16px}
[data-review-key][contenteditable] div,[data-review-key][contenteditable] p{display:block;margin:16px 0 0;min-height:0}
[data-review-key][contenteditable] div:first-child,[data-review-key][contenteditable] p:first-child{margin-top:0}
.guide-section>.lead{margin-bottom:16px}
.northstar-brief .client-letterhead{margin-bottom:20px;padding-bottom:16px}
.northstar-brief .client-letter{margin:0 0 16px}
.northstar-brief .client-letter p{margin-bottom:16px}
.northstar-brief .client-signature{margin-top:24px}
.client-editor-layout{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:28px}
.client-editor-layout section{min-width:0;display:flex;flex-direction:column;gap:12px}
.client-editor-layout textarea{line-height:1.65;resize:vertical;min-height:240px}
#client-editor{max-width:1250px;margin:auto}
.client-editor-layout details p{margin-top:12px}
@media(max-width:800px){.client-editor-layout{grid-template-columns:1fr}}
@media(max-width:650px){
  .app-header .course-mark img{width:58px}
  .app-header .brand{font-size:20px}
  .app-header .course-mark{padding-right:12px}
  .app-header .brand{gap:12px}
  .app-header .profile-button{max-width:110px}
  #record-list .record-link{flex-basis:190px;max-height:85px}
  .standing-band{grid-template-columns:1fr;gap:18px}
  .standing-band>div{border-right:0;border-bottom:1px solid var(--border);padding-bottom:18px}
  .standing-band>div:last-child{border-bottom:0;padding-bottom:0}
  .ranking-label{flex-wrap:wrap}
  .page-heading{flex-wrap:wrap}
  .review-toolbar{column-gap:7px}
  #review-save-state{max-width:155px}
}
