/* Shared minimum type size for small labels, captions, and helper text. */
body :is(
  .about-note, .admin-badge, .admin-field, .admin-form-message, .admin-kicker,
  .admin-live, .admin-privacy-note, .admin-question-item p, .admin-stat small,
  .admin-stat > span, .admin-table-wrap th, .admin-tabs button,
  .admin-topbar-actions > a, .announcement, .announcement-pill,
  .auth-aside-footer, .auth-aside-kicker, .auth-field label,
  .auth-modal form > label, .auth-panel .auth-field input, .auth-panel .auth-field label,
  .auth-panel .auth-switch, .auth-panel .form-message, .auth-panel .form-submit,
  .auth-panel .google-button, .auth-panel .modal-eyebrow, .auth-panel .modal-subtitle,
  .auth-panel .password-label label, .auth-panel .password-wrap input,
  .auth-panel .password-wrap > button, .auth-panel .remember-row,
  .auth-panel .terms-note, .auth-panel #emailInput, .auth-switch,
  .auth-switch button, .block-kicker,
  .catalog-count, .catalog-course-top, .catalog-empty,
  .catalog-progress-meta, .chart-bars small, .copyright,
  .course-calculator-note, .course-continue, .course-dialog-eyebrow,
  .course-footer button, .course-footer > span,
  .course-mode-nav a, .course-page-actions a, .course-practice-controls label,
  .course-practice-kicker, .course-practice-note,
  .course-practice-progress, .course-practice-question > span,
  .course-practice-session-actions > span, .course-progress-meta, .course-tag,
  .course-topic-button small, .course-topic-button > span:first-child,
  .courses-page-body .courses-back-link, .cta-footnote,
  .daily-question-date, .daily-question-feedback, .daily-question-footnote,
  .daily-question-meta span, .daily-question-streak, .daily-review-item button,
  .daily-review-item small, .daily-review-list,
  .daily-save-button, .dash-course-card > p, .dash-course-label, .dash-toast,
  .dashboard-footer, .dashboard-preview-link, .date-chip, .date-chip > span:first-child,
  .demo-badge, .demo-input, .demo-question, .demo-reply p, .demo-top, .divider,
  .drawer-date, .drawer-disclaimer, .drawer-head small, .drawer-message,
  .essay-checklist label, .essay-checklist > span, .essay-field, .essay-field small,
  .essay-guide-kicker, .essay-guide-list li, .essay-meter-row, .essay-privacy,
  .eyebrow, .faq-intro .section-kicker,
  .float-card b, .float-card small,
  .focus-button, .focus-kicker, .focus-meta span, .focus-speech,
  .form-message, .google-button, .header-actions .button-small,
  .hero-bottom-note, .hero-proof, .hero-scene-caption,
  .hero-scene-caption strong, .hint-chip, .home-question-count-live,
  .ivyn-chat-footnote, .ivyn-chat-heading p, .ivyn-chat-identity small,
  .ivyn-chat-local-note, .ivyn-chat-message p,
  .lesson-key-point span, .lesson-meta, .lesson-quiz-feedback,
  .lesson-quiz-label, .mascot-label, .match-badge, .mobile-octo b,
  .mobile-octo small, .modal-eyebrow, .modal-subtitle, .octo-name,
  .placement-feedback, .placement-info-row small, .placement-kicker,
  .placement-result-score > span, .placement-result-score > b,
  .placement-result-score > .placement-result-course, .placement-review-heading small,
  .placement-review-item p, .placement-review-mark, .placement-skill,
  .placement-small-note, .placement-test-controls > span, .placement-test-meta,
  .sat-countdown, .sat-domain-row, .sat-insights-kicker, .sat-practice-choice > span,
  .sat-practice-facts span, .sat-practice-form b, .sat-practice-format span,
  .sat-practice-format b, .sat-practice-intro > small,
  .sat-practice-kicker, .sat-practice-review summary, .sat-practice-review-item h5,
  .sat-practice-review-item p, .sat-practice-review-item small,
  .sat-practice-runbar, .sat-practice-scoreline p, .sat-practice-section-score p,
  .sat-practice-analysis p, .sat-practice-topic, .sat-tests-home,
  .sat-tests-title span, .sat-tests-brand b, .sat-stat-note, .daily-review-list,
  .settings-field > span, .settings-feedback,
  .settings-note, .settings-provider-row > span, .settings-provider-row strong,
  .settings-sidecard .block-kicker, .settings-sidecard a,
  .step-card > a, .step-number, .trust-inner > span:first-child,
  .trust-note, .university-disclaimer, .university-empty,
  .university-empty p, .university-field > span, .university-field small,
  .university-metrics > small, .university-metrics > span,
  .university-metrics > a, .university-profile-note, .university-results,
  .university-results-head p, .university-range-label, .university-submit,
  .study-plan-grid article > span, .study-plan-grid article p, .study-plan-grid a,
  .study-plan-builder label, .study-plan-context, .study-plan-ai-note, .study-plan-create,
  .result-count, .demo-badge, .accuracy-field, .accuracy-field span,
  .accuracy-note, .accuracy-result, .sat-estimate-label, .sat-estimate-range,
  .subject-mark, .subject-total, .university-tabs button span,
  .university-marquee-heading > span, .university-marquee > small,
  .university-mark b, .sat-date-control, .sat-date-control input,
  .sat-road-card > p, .sat-road-footer > span, .sat-road-kicker, .road-start,
  .home-question-count-copy > span, .site-footer > p, .auth-panel .terms-note,
  .auth-panel .remember-row, .auth-panel .form-message, .auth-panel .auth-switch,
  .auth-panel .auth-switch button, .auth-panel .auth-field input,
  .auth-panel .password-wrap input, .auth-panel .form-submit,
  .sat-practice-controls button, .sat-practice-controls > span,
  .sat-practice-section-score > div:first-child,
  .sat-practice-scoreline .sat-practice-secondary,
  .sat-calculator-tools a, .sat-calculator-display label,
  .daily-choice .choice-letter, .daily-review-item small, .accuracy-result,
  .university-emblem:not(:has(img)) span, .sidebar-caption, .side-count, .plan-top,
  .stat-label, .stat-note, .stat-value small, .today-label, .course-status,
  .course-progress-meta, .activity-total span, .tip-label, .chart-bars small,
  .see-all, .dashboard-body .dashboard-content :is(.stat-label, .stat-note)
) {
  font-size: 12px !important;
  line-height: 1.5;
}

/* Keep form controls comfortable to tap and type into on narrow screens. */
body.dashboard-body .preview-banner[hidden] { display: none !important; }

@media (max-width: 650px) {
  body :is(input, select, textarea) { min-height: 40px; font-size: 14px !important; }
}
