/* Shared readability and accessibility layer for Web and native WebView. */
html {
  font-size: 16px;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body { line-height: 1.5; }

button,
input,
select,
textarea {
  font-size: 16px;
  line-height: 1.35;
}

/* Authentication and user navigation. */
.user-page .eyebrow { font-size: 12px; line-height: 1.35; }
.user-page .auth-field { gap: 7px; font-size: 14px; }
.user-page .auth-field input { min-height: 56px; padding-inline: 16px; font-size: 16px; }
.user-page .auth-button { min-height: 56px; font-size: 16px; }
.user-page .text-button,
.user-page .auth-recovery-link { font-size: 15px; }
.user-page .auth-status,
.user-page .privacy-note,
.user-page .consent-option,
.user-page .policy-version { font-size: 14px; }
.user-page .policy-content,
.user-page .sheet-copy { font-size: 15px; }
.user-page .environment-card small,
.user-page .location-choice small,
.user-page .destination-card small,
.user-page .next-anchor small,
.user-page .route-summary-card small { font-size: 11px; line-height: 1.35; }
.user-page .environment-card strong,
.user-page .location-choice strong { font-size: 17px; }
.user-page .environment-card em,
.user-page .location-choice em { font-size: 14px; line-height: 1.35; }
.user-page .section-title h2 { font-size: 19px; }
.user-page .shortcut span,
.user-page .place-item small,
.user-page .qr-banner small { font-size: 13px; }
.user-page .recent-list p,
.user-page .empty,
.user-page .engineer-link,
.user-page .local-note,
.user-page .destination-card div,
.user-page .progress-label { font-size: 14px; }
.user-page .chip,
.user-page .favorite-toggle,
.user-page .report-problem { font-size: 14px; }
.user-page .primary-cta { font-size: 17px; }
.user-page .bottom-sheet h2 { font-size: clamp(26px, 7vw, 31px); }
.user-page .search-field,
.user-page .place-item,
.user-page .demo-button,
.user-page .anomaly-field { font-size: 15px; }
.user-page .qr-help { font-size: 14px; line-height: 1.45; }
.user-page #toast { font-size: 14px; line-height: 1.4; }

/* Admin/Master dashboards. */
.admin-page,
.master-page,
.diagnostics-page { font-size: 16px; }
.admin-page label,
.master-page label,
.diagnostics-page label { font-size: 14px; line-height: 1.4; }
.admin-page .button,
.master-page .button,
.diagnostics-page .button { font-size: 15px; }
.admin-page .dashboard-tab,
.master-page .dashboard-tab { font-size: 14px; }
.admin-page .workspace-context,
.master-page .workspace-context,
.admin-page .workflow-notice,
.master-page .workflow-notice,
.admin-page .master-support-banner p:last-child,
.master-page .master-support-banner p:last-child { font-size: 14px; line-height: 1.5; }
.admin-page .empty-state,
.master-page .empty-state,
.admin-page .form-hint,
.master-page .form-hint,
.admin-page .data-list small,
.master-page .data-list small { font-size: 14px; line-height: 1.5; }
.admin-page .metric-card small,
.master-page .metric-card small,
.admin-page .heatmap-card small,
.master-page .heatmap-card small { font-size: 13px; }
.admin-page .map-heat-legend,
.master-page .map-heat-legend,
.admin-page .live-presence-summary,
.master-page .live-presence-summary { font-size: 14px; }
.admin-page #toast,
.master-page #toast,
.diagnostics-page #toast { font-size: 14px; line-height: 1.4; }

/* Field training on Android/iOS. */
.training-page { font-size: 16px; }
.training-page .diagnostics-trigger,
.training-page .offline,
.training-page .eyebrow { font-size: 12px; line-height: 1.35; }
.training-page label { font-size: 14px; }
.training-page input,
.training-page select,
.training-page textarea { min-height: 52px; font-size: 16px; }
.training-page button { min-height: 48px; font-size: 16px; }
.training-page .setup-status,
.training-page .sensor-state,
.training-page .diagnostics-summary span { font-size: 14px; }
.training-page .metrics small { font-size: 11px; line-height: 1.3; }
.training-page .metrics strong { font-size: 28px; }
.training-page .metrics em,
.training-page .mapping-status span,
.training-page .mapping-status small,
.training-page .qr-note,
.training-page .hint.compact,
.training-page .diagnostic-item small { font-size: 13px; line-height: 1.45; }
.training-page .diagnostic-item strong { font-size: 14px; }
.training-page #toast { font-size: 14px; line-height: 1.4; }

@media (min-width: 900px) {
  .admin-page .dashboard-tab,
  .master-page .dashboard-tab { font-size: 15px; }

  .admin-page .page-section > .section-heading p,
  .master-page .page-section > .section-heading p { font-size: 16px; line-height: 1.55; }
}

@media (max-width: 380px) {
  .user-page .screen { padding-inline: 18px; }
  .user-page .login h1,
  .user-page .home h1,
  .user-page .trip h1,
  .user-page .summary h1,
  .user-page .arrival h1 { font-size: 33px; }
}
