/* Touch-target floor (UX audit t_7d8eaadf P1; remediated Sep 11 2026).
   Every interactive control must reach 44x44 CSS px (the iOS 44 / Android 48
   minimum-touch-target guideline). Loaded after the tool's own stylesheet so
   the floor wins without !important wars.

   WHY THIS FILE CHANGED (audit P1 root cause): the original floor set
   `min-height` only. That clamped height but left narrow controls sub-44 WIDE,
   which is where all 99 flagged instances came from — MapLibre zoom buttons
   29x44, close ✕ 11-36x44, copy ⧉ 38x44, remove ✕ 30x44, calendar day cells
   41x44, Schengen edit/delete 32x44. A width floor is required, not optional. */

button, [role="button"], a.btn, .btn,
select, input[type="text"], input[type="search"], input[type="email"],
input[type="date"], input[type="number"], input[type="tel"], input[type="url"],
input[type="checkbox"], input[type="radio"] {
  min-height: 44px;
}
/* A bare <input> carries no type attribute, so it matches none of the
   input[type=...] selectors above (deals-globe's airport search was 236x36). */
input:not([type]) { min-height: 44px; }

input[type="checkbox"], input[type="radio"] {
  min-width: 24px; min-height: 24px; width: 24px; height: 24px;
  accent-color: var(--accent, rgb(5,32,60));
}
/* Range sliders: enlarge the thumb, keep the track slim */
input[type="range"] { height: 44px; background: transparent; }
input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none; width: 28px; height: 28px; border-radius: 50%;
  background: var(--accent, rgb(5,32,60)); border: none; margin-top: -8px;
}
input[type="range"]::-webkit-slider-runnable-track { height: 6px; border-radius: 3px; background: var(--border-light, rgb(226,232,240)); }
input[type="range"]::-moz-range-thumb { width: 28px; height: 28px; border-radius: 50%; background: var(--accent, rgb(5,32,60)); border: none; }
input[type="range"]::-moz-range-track { height: 6px; border-radius: 3px; background: var(--border-light, rgb(226,232,240)); }

/* Width floor — control-shaped elements only, and only where a finger is
   plausible (<=960px, or a coarse pointer at any width). Deliberately NOT
   applied to inputs: a text field narrower than 44px is a layout decision, not
   a touch target, and widening fields would reflow the desktop layouts that
   passed the audit. Scoping this way leaves desktop mouse layouts unchanged.
   [role="button"] covers the map pins (price-map .fare-pin 44x44, visa-checker
   .vp-pin as narrow as 33px). MapLibre's own 29x29 zoom buttons are covered by
   the same rule — their stock stylesheet loads before this file, so the floor
   wins the tie on specificity. */
@media (max-width: 960px), (pointer: coarse) {
  button, [role="button"], a.btn, .btn, select { min-width: 44px; }
}
