/* Locally hosted Latin subsets. SIL Open Font License files are in assets/fonts. */
@font-face {
  font-family: Inter;
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url('./assets/fonts/inter-latin.woff2') format('woff2');
}
@font-face {
  font-family: 'Work Sans';
  font-style: normal;
  font-weight: 500 600;
  font-display: swap;
  src: url('./assets/fonts/work-sans-latin.woff2') format('woff2');
}
:root {
  --font-ui: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-display: 'Work Sans', var(--font-ui);
  font-family: var(--font-ui);
  font-optical-sizing: auto;
  font-feature-settings: 'calt' 1;
}
b, strong { font-weight: 600; }
.wordmark { font-family: var(--font-display); font-weight: 600; letter-spacing: -.8px; }
.model-title h1, .board-top h1, .modal h2 {
  font-family: var(--font-display);
  font-weight: 600;
  letter-spacing: -.035em;
  line-height: 1.15;
}
.model-title h1 { font-size: clamp(30px, 2.6vw, 38px); }
.board-top h1 { font-size: 32px; }
.modal h2 { font-size: 30px; }
.model-title h1 span {
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0;
}
.panel-heading { font-size: 20px; font-weight: 600; letter-spacing: -.025em; }
.review-heading h2 { font-size: 18px; font-weight: 600; letter-spacing: -.025em; }
.eyebrow, .model-title .eyebrow { font-size: 10px; font-weight: 500; letter-spacing: .12em; }
.model-title > p:last-child { font-size: 13px; line-height: 1.5; }
.panel-subheading, .board-top p { font-size: 12px; line-height: 1.6; }
.role-switch button, .profile { font-size: 13px; font-weight: 500; }
.side-menu button, .main-dock button { font-size: 12px; font-weight: 500; }
.person-card strong, .project-card strong { font-size: 13px; font-weight: 600; }
.role-tag { font-size: 10px; font-weight: 500; }
.project-card p, .next-meeting small, .progress-label, .section-caption { font-size: 11px; }
.mini-task, .next-meeting strong { font-size: 12px; }
.comment h3, .task-card h3 { font-size: 14px; font-weight: 600; line-height: 1.45; letter-spacing: -.012em; }
.comment p, .task-card p { font-size: 13px; line-height: 1.6; }
.comment-top strong { font-size: 11px; font-weight: 500; }
.comment-top small, .comment-number, .review-summary { font-size: 11px; }
.comment-actions { flex-wrap: wrap; }
.comment-actions button { font-size: 11px; font-weight: 500; padding: 8px 9px; }
.review-tabs button, .primary, .secondary { font-size: 12px; font-weight: 500; }
.count-badge, .small-note, .material-option small { font-size: 11px; }
.material-option strong { font-size: 13px; font-weight: 500; }
.spec-row, .slider-label, .form-field { font-size: 12px; }
textarea, input[type=text], input[type=search], select { font-size: 14px; line-height: 1.5; }
.searchbox input { font-size: 12px; }
.model-controls #zoom-label { font-size: 11px; }
.model-caption { font-size: 10px; }
.column-title { font-size: 13px; font-weight: 600; }
.board-subnav, .board-subnav button, .task-card-footer, .add-column { font-size: 11px; }
.task-card .task-top span:last-child { font-size: 10px; }
.requirements-table { font-size: 13px; }
.requirements-table strong { font-weight: 600; }
.requirements-table th, .requirements-table small, .requirement-footer { font-size: 11px; }
.requirements-table .secondary { font-size: 11px; }
.meeting-person strong, .agenda-item, .approved { font-size: 13px; }
.meeting-person small { font-size: 11px; }
.modal > p, .modal #task-dialog-content > p, .modal .dialog-intro { font-size: 14px; line-height: 1.65; }
.guide-list b { font-size: 14px; font-weight: 600; }
.guide-list p { font-size: 13px; }
.fine-print { font-size: 11px !important; }
.source-links a, .asset-notes b { font-size: 12px; }
.asset-notes p { font-size: 11px; }
.progress-label, .spec-row, #zoom-label, .task-card-footer, .comment-top small, .count-badge {
  font-variant-numeric: tabular-nums;
}
.app-footer, .app-footer button { font-size: 10px; }
@media (min-width: 1550px) {
  .model-title h1 { font-size: 40px; }
  .panel-heading { font-size: 22px; }
  .comment p, .task-card p { font-size: 14px; }
}
@media (max-width: 1200px) {
  .role-switch button { font-size: 12px; }
  .panel-heading { font-size: 18px; }
  .side-menu button { font-size: 12px; gap: 9px; }
}
@media (max-width: 850px) {
  .main-dock button span { font-size: 11px; }
  .board-top h1 { font-size: 29px; }
  .model-title h1 { font-size: 30px; }
}
@media (max-width: 600px) {
  .model-title h1 { font-size: 34px; }
  .comment p, .task-card p { font-size: 14px; }
  .main-dock { gap: 0; }
  .main-dock button { padding: 7px 7px; gap: 5px; }
  .main-dock button span { font-size: 10px; }
  .main-dock .dock-icon { width: 27px; padding: 4px; }
  .main-dock .tool-divider { margin: 0 2px; }
  .app-footer, .app-footer button { font-size: 9px; }
  .requirements-table td { font-size: 12px; }
  .requirements-table small { font-size: 11px; }
  .requirements-table .secondary { font-size: 10px; }
  .board-tools .primary, .board-tools .searchbox input { font-size: 11px; }
  .modal h2 { font-size: 28px; }
}
@media (max-width: 380px) {
  .main-dock button { padding-inline: 3px; }
  .main-dock button span { font-size: 9px; }
  .main-dock .dock-icon { width: 25px; }
  .role-switch button { padding-inline: 16px; }
  .model-controls button { width: 30px; }
  .model-controls #zoom-label { font-size: 10px; min-width: 28px; }
}
