/* Preserve pinch zoom while preventing iOS focus zoom and double-tap zoom. */
html,
body,
a,
button,
input,
select,
textarea,
summary,
label,
[role="button"],
[role="tab"] {
  touch-action: manipulation;
}

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

@media (max-width: 1024px), (hover: none), (pointer: coarse) {
  body:is([data-app-shell="1"], .tt-attendance-map-page, .tt-attendance-result-page, .tt-attendance-face-map-page) .tt-app-pressable {
    -webkit-tap-highlight-color: transparent;
    transform-origin: center;
    transition:
      scale 160ms cubic-bezier(0.22, 1, 0.36, 1),
      filter 160ms ease,
      box-shadow 160ms ease !important;
    will-change: scale;
  }

  body:is([data-app-shell="1"], .tt-attendance-map-page, .tt-attendance-result-page, .tt-attendance-face-map-page) .tt-app-pressable.tt-app-pressing {
    scale: 0.965;
    filter: brightness(0.94) saturate(1.04);
    box-shadow: inset 0 2px 8px rgba(10, 37, 64, 0.18) !important;
  }

  body:is([data-app-shell="1"], .tt-attendance-map-page, .tt-attendance-result-page, .tt-attendance-face-map-page) .tt-app-pressable.tt-is-loading {
    scale: 0.985;
  }

  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]):not([type="button"]):not([type="submit"]):not([type="reset"]),
  textarea,
  select,
  [contenteditable="true"] {
    font-size: max(16px, 1em) !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  body:is([data-app-shell="1"], .tt-attendance-map-page, .tt-attendance-result-page, .tt-attendance-face-map-page) .tt-app-pressable {
    transition: filter 80ms ease, box-shadow 80ms ease !important;
    will-change: auto;
  }

  body:is([data-app-shell="1"], .tt-attendance-map-page, .tt-attendance-result-page, .tt-attendance-face-map-page) .tt-app-pressable.tt-app-pressing,
  body:is([data-app-shell="1"], .tt-attendance-map-page, .tt-attendance-result-page, .tt-attendance-face-map-page) .tt-app-pressable.tt-is-loading {
    scale: 1;
  }
}
