/* Shared phone typography. Screen-only so printed reports keep their layout. */
@media screen and (max-width: 750px) {
  html { font-size: 16px; }
  body { font-size: 1.125rem; line-height: 1.85; --muted: #53627a; }
  body p, body li, body label, body summary { font-size: 1rem; line-height: 1.85; }
  body small { font-size: .875rem; line-height: 1.7; }
  body h1 { font-size: 1.75rem; line-height: 1.5; }
  body h2 { font-size: 1.5rem; line-height: 1.6; }
  body h3, body h4 { font-size: 1.25rem; line-height: 1.6; }
  body button, body .button, body input, body select, body textarea,
  body .primary, body .secondary, body .smallbtn, body .field label,
  body .field input, body .field select, body .message, body .party-field {
    font-size: 1rem; line-height: 1.7;
  }
  body button, body .button, body input:not([type=checkbox]):not([type=radio]), body select { min-height: 44px; }
  body button, body .button { white-space: normal; }
  body input, body select, body textarea { max-width: 100%; min-width: 0; }
  body .close { min-width: 44px; font-size: 1.5rem; }
  body .note, body .tip, body .check, body .notice, body .reportnote,
  body .reportcaption p, body .reportstamp, body .reportstate, body .requeststate p,
  body .plan-catalog p, body .plan-catalog li, body .fin-item p, body .fin-balance,
  body .fin-muted, body .party-card summary { font-size: 1rem; }
  body .modalhead h3, body .panelhead b, body .box h3, body .planoption b { font-size: 1.25rem; }
  body .modalhead p, body .panelhead small, body .box p, body .stat label,
  body .stat small, body .tenant small, body .cellnote, body .status,
  body .filters small, body .planoption small, body .fin-card span, body .fin-card small,
  body .fin-tag, body .bank-snapshot, body .tag, body .muted { font-size: .875rem; }
  body td, body th, body .wide td, body .wide th, body .fin-modal td,
  body .fin-modal th, body .finance td, body .finance th, body .tenant b { font-size: 1rem; line-height: 1.8; }
  body th { color: #4e607a; }
  body .tabs button, body .filters select { font-size: 1rem; }
  body .finance button, body .finance input, body .finance select,
  body .fin-modal button, body .fin-modal input, body .fin-modal select,
  body .fin-modal textarea, body .fin-modal .field label,
  body .tools button, body .tools select, body header .button { font-size: 1rem; }
  body .tabs, body .filters, body .panelhead { flex-wrap: wrap; gap: 8px; }
  body .panelhead > *, body .field, body .stat, body .fin-card { min-width: 0; }
  body .stat strong, body .fin-card b, body .metric b, body .chartval { font-size: 1.75rem; overflow-wrap: anywhere; }
  body .chartval small, body .col small, body .followtext small, body .followtext b, body .days { font-size: .875rem; }
  body .bars { height: 125px; }
  body .col small { text-align: center; }
  body .modal, body dialog { max-height: calc(100dvh - 24px); }
  body .modalfoot, body .reportactions { gap: 10px; }
  body .modalfoot > button { flex: 1 1 140px; }
  body .toast { font-size: 1rem; }
  body .wafq-install-dialog p, body .wafq-install-help { font-size: 1rem; }
  body .wafq-install-steps small, body .wafq-install-note { font-size: .875rem; }
  body .wafq-install-launcher { font-size: 1rem; }

  /* Workspace: make room for the larger text instead of squeezing it. */
  .wafq-workspace .top { height: auto; min-height: 80px; padding-block: 12px; gap: 10px; flex-wrap: wrap; }
  .wafq-workspace .greet b { font-size: 1.125rem; }
  .wafq-workspace .greet small { font-size: .875rem; }
  .wafq-workspace .user b { font-size: .875rem !important; }
  .wafq-workspace .head h1 { font-size: 1.625rem; }
  .wafq-workspace .head p { font-size: 1rem; }
  .wafq-workspace .head { flex-wrap: wrap; gap: 14px; }
  .wafq-workspace .hero { align-items: flex-start; flex-direction: column; gap: 18px; padding: 20px; }
  .wafq-workspace .hero h2 { font-size: 1.375rem; }
  .wafq-workspace .hero p { font-size: 1rem; max-width: none; }
  .wafq-workspace .hero small, .wafq-workspace .total span { font-size: .875rem; }
  .wafq-workspace .total { text-align: right; }
  .wafq-workspace .total strong { font-size: 2rem; }
  .wafq-workspace .stat { padding: 16px 12px; }
  .wafq-workspace .bottom button { font-size: .875rem; flex: 1; min-width: 0; padding: 6px 2px; line-height: 1.6; overflow-wrap: anywhere; }
  .wafq-workspace .bottom span { font-size: 1.25rem; }
  .wafq-workspace .main { padding-bottom: calc(100px + env(safe-area-inset-bottom, 0px)); }
  .wafq-workspace .toast { bottom: calc(100px + env(safe-area-inset-bottom, 0px)); }
  .wafq-workspace .empty, .wafq-workspace .whats button { font-size: 1rem; }

  /* Public home retains its larger hero while enlarging all supporting copy. */
  .wafq-home h1 { font-size: 2.75rem; }
  .wafq-home .lead { font-size: 1.125rem; }
  .wafq-home .nav, .wafq-home .nav-actions, .wafq-home .hero-actions, .wafq-home .use-tags { flex-wrap: wrap; }
  .wafq-home .nav { padding-block: 12px; }
  .wafq-home .nav-actions { gap: 12px; }
  .wafq-home .login, .wafq-home .text-link, .wafq-home .button.small { font-size: 1rem; }
  .wafq-home .hero-actions .button, .wafq-home .nav-actions .button,
  .wafq-home .plan-card .button { font-size: 1rem; }
  .wafq-home .logo small, .wafq-home .micro, .wafq-home .eyebrow,
  .wafq-home .use-tags span, .wafq-home .trust-items, .wafq-home .plan-card > small,
  .wafq-home .closing span, .wafq-home .closing p, .wafq-home .footer > span,
  .wafq-home .footer > div { font-size: .875rem; }
  .wafq-home .features { grid-template-columns: 1fr; }
  .wafq-home .features h3, .wafq-home .steps h3 { font-size: 1.25rem; }
  .wafq-home .features p, .wafq-home .steps p, .wafq-home .section-heading p,
  .wafq-home .plan-card p, .wafq-home .faq p, .wafq-home .faq summary { font-size: 1rem; }
  .wafq-home .preview small, .wafq-home .preview em, .wafq-home .demo-label,
  .wafq-home .preview-intro, .wafq-home .preview-stats span, .wafq-home .pill { font-size: .875rem; }
  .wafq-home .preview strong, .wafq-home .preview-footer strong,
  .wafq-home .preview-list h3, .wafq-home .demo-row > b { font-size: 1rem; }
  .wafq-home .demo-row { flex-wrap: wrap; }
  .wafq-home .demo-row > div { min-width: 120px; }
  .wafq-home .preview-list h3 { flex-wrap: wrap; gap: 8px; }
  .wafq-home .preview-list h3 span { font-size: .875rem; }

  .wafq-auth { padding: 16px; }
  .wafq-auth main { padding: 24px 20px; }
  .wafq-auth p, .wafq-auth label { font-size: 1.0625rem; color: #465c7b; }
  .wafq-auth h2 { font-size: 1.5rem; }
  .wafq-auth #submit { font-size: 1.125rem; font-weight: 700; }
  .wafq-portal header { flex-wrap: wrap; }
}
