/* Shared by both frontend layouts. Keep native radios, checkboxes and date pickers. */
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
button, input[type="button"], input[type="submit"], input[type="reset"] {
    -webkit-appearance: none;
    appearance: none;
}
button, input, select, textarea { font-family: inherit; }
button, a, input, select, textarea { touch-action: manipulation; }
input[type="date"], input[type="time"], input[type="datetime-local"] {
    min-width: 0;
    min-inline-size: 0;
    max-width: 100%;
}
input::-webkit-date-and-time-value { min-height: 1.4em; text-align: left; }
.kt-input input, .kt-input .select2-container, .ts-fields > div { min-width: 0; }
.kt-nav-links, .select2-results__options { -webkit-overflow-scrolling: touch; }
.kb-price-sliders input { -webkit-appearance: none; appearance: none; }
.kb-price-sliders input::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; }
.kt-wheel-spin { -webkit-transform-origin: 50px 50px; transform-origin: 50px 50px; }
.kt-skip:not(:focus) { -webkit-clip-path: inset(50%); clip-path: inset(50%); }

/* Preserve the compact map and drawer on browsers without newer viewport units. */
@supports not (height: 100svh) {
    .ts-seat-panel { height: min(800px, calc(100vh - 32px)); }
}
@supports not (height: 100dvh) {
    @media (max-width: 1099px) {
        .kt-header .kt-nav-links { height: calc(var(--kt-viewport-height, 1vh) * 100); }
    }
}
@media (min-width: 900px) {
    .ts-seat-panel { position: -webkit-sticky; position: sticky; }
}

/* Readable touch form fields without suppressing the user's pinch-to-zoom. */
@media (max-width: 767px) and (pointer: coarse) {
    body input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]):not([type="button"]):not([type="submit"]):not([type="reset"]),
    body textarea, body select, body .select2-search__field { font-size: 16px; }
}
