/* app-polish.css — SAFE mobile polish, re-added 7 Sep 2026 in one careful pass.

   This contains ONLY rules that cannot affect scrolling or touch gestures. The rules that
   DID break scrolling in the app WebView (touch-action, overscroll-behavior, scroll-behavior,
   -webkit-overflow-scrolling) are deliberately NOT here and must never be re-added without
   on-device verification. Everything below is cosmetic/typographic and has no mechanism to
   block a scroll. */

/* 1. No grey/blue highlight box when you tap something. (Paint only.) */
* { -webkit-tap-highlight-color: transparent; }

/* 2. Stop the OS selecting text or popping the long-press menu on UI chrome (buttons, nav,
      chips). Real text content and form fields stay fully selectable/typable (rule 3). */
button, .btn, [role="button"], .plan-btn, .tb-cta, .signout, label,
nav, header, .pill, .badge {
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  user-select: none;
}

/* 3. Never disable selection/typing on inputs or genuine text content. */
input, textarea, select, [contenteditable="true"], p, li, td {
  -webkit-user-select: text;
  user-select: text;
}

/* 4. Stop the page zoom-jumping when you focus an input whose font is < 16px. Mobile only.
      This is just a font-size floor on form fields; it does not touch scrolling. */
@media (max-width: 640px) {
  input:not([type="checkbox"]):not([type="radio"]),
  textarea, select { font-size: 16px !important; }
}

/* 5. Subtle press feedback: a tiny scale ONLY while a button is actively pressed. Respects
      reduced-motion. Applies to nothing at rest, so it cannot affect layout or scrolling. */
@media (prefers-reduced-motion: no-preference) {
  button, .btn, [role="button"], .plan-btn, .tb-cta {
    transition: transform .12s ease, opacity .12s ease, background-color .15s ease;
  }
  button:active, .btn:active, [role="button"]:active, .plan-btn:active, .tb-cta:active {
    transform: scale(.97);
  }
}
