/* Keep editable controls readable before focus so iPhone does not zoom them. */
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
#app input:not([type="checkbox"]):not([type="radio"]),
#app select, #app textarea {
  font-size: 16px;
  min-height: 44px;
  min-width: 0;
  max-width: 100%;
}
#app .set input { font-size: 18px; }
/* Fast repeated taps on controls; retain scrolling and two-finger zoom. */
button, a, summary, input, select, textarea { touch-action: manipulation; }
.profile-grid > label, .settings-field, .language-card { min-width: 0; }
.language-card { grid-template-columns: minmax(0, 1fr) auto; }
.brand > b, .day > span, .exercise-heading .row, .stat { min-width: 0; }
.card p, .card small, .card b, .source { overflow-wrap: anywhere; }
@media (max-width: 480px) {
  .brand, .section-title { flex-wrap: wrap; }
  .brand-mark, .exercise-thumb { flex-shrink: 0; }
  .exercise-heading .row { flex-wrap: wrap; }
  .coach-choice { flex-wrap: wrap; }
  .coach-choice select { max-width: 100%; }
  .duration-setting { flex-wrap: wrap; }
  .lesson summary { flex-wrap: wrap; gap: 5px; }
}
