/* Keep the same font geometry and controls on phones and tablets. */
@media (max-width: 899px) {
  .topbar { height: auto; min-height: 68px; padding: 16px 20px; gap: 12px; flex-wrap: wrap; }
  .brand { gap: 10px; }
  .font-count { font-size: .8rem; }
  main { width: calc(100% - 32px); padding-top: 20px; }
  .editor { padding: 16px; gap: 12px; }
  .sizing-panel { padding: 16px; }
  .sizing-heading, .section-head { align-items: flex-start; flex-direction: column; gap: 8px; }
  .sizing-heading { margin-bottom: 16px; }
  .layout-controls { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 18px; }
  .width-control { grid-column: 1 / -1; }
  .width-inputs > input { flex: 1; min-width: 0; }
  .color-picker { align-items: stretch; flex-direction: column; padding: 16px; gap: 14px; }
  .color-options { justify-content: flex-start; }
  .color-option { min-height: 44px; }
  .unit-switch button { min-height: 38px; min-width: 44px; }
  .alignment-options span { min-height: 44px; padding: 12px 6px; }
  .layout-controls input[type="range"] { height: 44px; }
  .dimension-input input { min-height: 44px; font-size: 16px; }
  .font-grid { gap: 14px; }
  .card-meta { padding: 12px; gap: 8px; }
  .card-actions { gap: 6px; }
  .preview-button, .select-state { opacity: 1; transform: none; min-height: 44px; min-width: 0; padding: 10px 12px; }
  .card-dimensions { padding: 12px; line-height: 1.5; overflow-wrap: anywhere; }
  .selection-bar { bottom: max(12px, env(safe-area-inset-bottom)); width: calc(100% - 24px); padding: 12px; gap: 10px; flex-wrap: wrap; }
  .selection-copy { flex: 1 1 100%; grid-template-columns: auto minmax(0, 1fr); gap: 5px 10px; }
  .selection-actions { width: 100%; }
  .selection-actions button { min-height: 44px; }
  .selection-copy-button { flex: 1; }
  .desktop-app.has-selection main { padding-bottom: calc(180px + env(safe-area-inset-bottom)); }
  .export-dialog { width: calc(100% - 24px); max-width: 780px; max-height: calc(100vh - 24px); max-height: calc(100dvh - 24px); overscroll-behavior: contain; }
  .export-dialog header { position: sticky; top: 0; z-index: 2; padding: 16px; background: #111116; align-items: flex-start; }
  .export-heading { gap: 10px; }
  .export-heading h2 { overflow-wrap: anywhere; }
  .close-button { width: 44px; height: 44px; }
  .export-body { padding: 16px 16px max(16px, env(safe-area-inset-bottom)); }
  .export-dialog .layout-controls { grid-template-columns: minmax(0, 1fr); gap: 16px; padding: 14px; }
  .export-options { gap: 8px; }
  .background-option { min-height: 44px; }
  .export-actions { flex-wrap: wrap; }
  .export-actions button { min-width: 120px; }
}
@media (max-width: 599px) {
  /* Full measurements are repeated below; edge guides have no room on phones. */
  .dimension-guides { display: none; }
  .topbar { padding: 14px 16px; }
  .font-count { margin-left: 44px; }
  .font-grid { grid-template-columns: minmax(0, 1fr); }
  .editor { grid-template-columns: minmax(0, 1fr); }
  .reset-button { justify-self: end; min-height: 44px; }
  textarea { min-height: 100px; padding: 14px; font-size: 18px; }
  .layout-controls { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .font-card:hover { transform: none; }
  .font-name { flex: 1 1 100%; }
  .card-meta { flex-wrap: wrap; }
  .card-actions { width: 100%; }
  .card-actions button { flex: 1; }
  .selection-copy { grid-template-columns: minmax(0, 1fr); }
}
