* {
  touch-action: manipulation;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0.1);
}

.touch-target {
  min-height: 44px;
  min-width: 44px;
  cursor: pointer;
}
.touch-target:active {
  transform: scale(0.95);
  transition: transform 100ms ease-out;
}

a.inline-link {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 8px 12px;
  margin: -8px -12px;
}
a.inline-link:active {
  opacity: 0.7;
  transition: opacity 100ms ease-out;
}

button,
input[type=submit],
input[type=button],
.btn {
  min-height: 44px;
  min-width: 44px;
  touch-action: manipulation;
}
button:active,
input[type=submit]:active,
input[type=button]:active,
.btn:active {
  transform: scale(0.95);
  transition: transform 100ms ease-out;
}

table a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  min-width: 44px;
  padding: 8px 12px;
  margin: -8px -12px;
  border-radius: 4px;
}
table a:hover {
  background-color: rgba(59, 130, 246, 0.05);
}
table a:active {
  background-color: rgba(59, 130, 246, 0.1);
  transform: scale(0.98);
}

.no-select-on-touch {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

@media (max-width: 1024px) {
  html {
    -webkit-overflow-scrolling: touch;
    scroll-behavior: smooth;
  }
  .scroll-container {
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }
}
@supports (padding: env(safe-area-inset-bottom)) {
  @media (max-width: 1024px) {
    @supports (-webkit-touch-callout: none) {
      body {
        padding-top: env(safe-area-inset-top);
        padding-bottom: env(safe-area-inset-bottom);
        padding-left: env(safe-area-inset-left);
        padding-right: env(safe-area-inset-right);
      }
      main.content {
        padding-bottom: max(100px, env(safe-area-inset-bottom) + 66px);
        transition: padding-bottom 0.3s cubic-bezier(0.4, 0, 0.2, 1);
      }
      .fixed-bottom,
      .sticky-bottom {
        bottom: env(safe-area-inset-bottom);
        padding-bottom: 20px;
      }
      form .form-actions,
      form .button-group,
      form .submit-buttons {
        padding-bottom: calc(env(safe-area-inset-bottom) + 24px);
      }
      .content > *:last-child,
      .container > *:last-child {
        margin-bottom: max(40px, env(safe-area-inset-bottom) + 20px);
      }
    }
  }
  @media (max-width: 1024px) and (orientation: landscape) {
    @supports (-webkit-touch-callout: none) {
      body {
        padding-left: env(safe-area-inset-left);
        padding-right: env(safe-area-inset-right);
      }
      main.content {
        padding-bottom: calc(env(safe-area-inset-bottom) + 40px);
      }
    }
  }
}
@supports not (padding: env(safe-area-inset-bottom)) {
  @media (max-width: 1024px) {
    main.content {
      padding-bottom: 120px;
    }
    form .form-actions {
      padding-bottom: 40px;
    }
  }
}
@media (min-width: 1025px) {
  main.content {
    padding-bottom: 40px;
  }
}
@media (max-width: 1024px) {
  html,
  body {
    overscroll-behavior-y: contain;
  }
}
@media (max-width: 1024px) {
  body {
    padding-left: 0;
    padding-right: 0;
  }
  .main-content,
  main.content {
    width: 100%;
    max-width: 100vw;
    margin: 0;
    padding-left: 0;
    padding-right: 0;
  }
  .container,
  .page-container {
    width: 100%;
    max-width: 100vw;
    padding-left: 16px;
    padding-right: 16px;
    margin-left: 0;
    margin-right: 0;
  }
  .form,
  .form_fields,
  .form-fields {
    width: 100%;
    padding-left: 16px;
    padding-right: 16px;
  }
  .form-group {
    width: 100%;
    max-width: 100%;
  }
  .form-control,
  input[type=text],
  input[type=email],
  input[type=password],
  select,
  textarea {
    width: 100%;
    max-width: 100%;
  }
  .table-container {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  * {
    max-width: 100%;
    box-sizing: border-box;
  }
  .row {
    margin-left: 0;
    margin-right: 0;
  }
}
@media (max-width: 1024px) {
  html, body {
    overflow-x: hidden;
    width: 100%;
    max-width: 100vw;
  }
}
