* {
  box-sizing: border-box;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

html, body {
  margin: 0;
  padding: 0;
  width: 100%;
  height: 100%;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  overscroll-behavior: none;
  overscroll-behavior-y: contain;
}

body {
  min-height: 100vh;
  position: relative;
}

::-webkit-scrollbar {
  display: none;
}

@media screen and (max-width: 768px) {
  body {
    -webkit-overflow-scrolling: touch;
    overflow-x: hidden;
    min-height: 100vh;
  }

  .mobile-height-fix {
    min-height: 100vh;
    height: 100%;
  }
}

button, input, select, textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  font-family: inherit;
  box-sizing: border-box;
}

:focus {
  outline: none;
  box-shadow: none;
}

a {
  color: inherit;
  text-decoration: none;
}

img {
  -webkit-user-drag: none;
  -khtml-user-drag: none;
  -moz-user-drag: none;
  -o-user-drag: none;
  user-drag: none;
}

.android-back-warning {
  position: fixed;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  background: rgba(0, 0, 0, 0.8);
  color: white;
  padding: 10px 20px;
  border-radius: 20px;
  font-size: 14px;
  z-index: 9999;
  transition: all 0.3s ease;
  box-sizing: border-box;
}

@media screen and (display-mode: standalone) {
  body {
    padding-top: env(safe-area-inset-top);
    padding-bottom: env(safe-area-inset-bottom);
  }
}

@media screen and (max-width: 768px) {
  .main-container {
    padding-top: env(safe-area-inset-top);
    min-height: 100vh;
    box-sizing: border-box;
  }
  
  .bottom-navigation {
    padding-bottom: env(safe-area-inset-bottom);
    box-sizing: border-box;
  }
}

@media screen and (max-width: 768px) and (max-height: 500px) {
  .main-container {
    min-height: 100vh;
  }
  
  .keyboard-active {
    min-height: 100vh;
  }
}

@media screen and (max-width: 768px) and (orientation: landscape) {
  body {
    min-height: 100vh;
  }
  
  .landscape-mode {
    min-height: 100vh;
  }
}

.flex-container {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  box-sizing: border-box;
}

@media screen and (max-width: 768px) {
  .chrome-browser {
    min-height: 100vh;
  }
  
  .samsung-browser {
    min-height: 100vh;
  }
  
  .in-app-browser {
    min-height: 100vh;
  }
}

* {
  will-change: auto;
}

.main-container {
  transform: translateZ(0);
  -webkit-transform: translateZ(0);
}

:root {
  --vh: 1vh;
}

.dynamic-height {
  min-height: calc(var(--vh, 1vh) * 100);
}

.full-height {
  min-height: 100vh;
  height: 100%;
}

.mobile-safe-height {
  min-height: 100vh;
}

@media screen and (max-width: 768px) {
  .mobile-safe-height {
    min-height: 100vh;
  }
}

@media screen and (max-width: 768px) {
  .viewport-height-fix {
    min-height: 100vh;
    height: 100%;
  }
}
