:root {
  --bvt-safe-top: env(safe-area-inset-top, 0px);
  --bvt-safe-right: env(safe-area-inset-right, 0px);
  --bvt-safe-bottom: env(safe-area-inset-bottom, 0px);
  --bvt-safe-left: env(safe-area-inset-left, 0px);
}

html {
  min-height: 100%;
  overscroll-behavior-y: none;
  -webkit-tap-highlight-color: transparent;
}

body {
  min-height: 100%;
  padding-left: var(--bvt-safe-left);
  padding-right: var(--bvt-safe-right);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

button,
a,
[role="button"],
input,
select,
textarea {
  touch-action: manipulation;
}

button,
a,
[role="button"] {
  -webkit-user-select: none;
  user-select: none;
}

input,
select,
textarea {
  -webkit-user-select: text;
  user-select: text;
}

html.bvt-standalone .bvt-navbar {
  padding-top: var(--bvt-safe-top);
}

html.bvt-standalone body {
  padding-bottom: var(--bvt-safe-bottom);
}

body.bvt-is-loading {
  overflow: hidden !important;
  cursor: wait;
}

.bvt-app-navigation-overlay[hidden] {
  display: none;
}

.bvt-app-navigation-overlay {
  position: fixed;
  inset: 0;
  z-index: 50000;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(237, 247, 255, .72);
  backdrop-filter: blur(10px);
}

.bvt-app-navigation-overlay__card {
  display: flex;
  min-width: min(100%, 230px);
  align-items: center;
  gap: 14px;
  padding: 15px 18px;
  border: 1px solid rgba(24, 116, 174, .15);
  border-radius: 22px;
  color: #12314c;
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 18px 50px rgba(3, 38, 67, .2);
}

.bvt-app-navigation-overlay__card span:last-child {
  display: flex;
  flex-direction: column;
}

.bvt-app-navigation-overlay__card strong {
  font-size: .9rem;
  font-weight: 800;
}

.bvt-app-navigation-overlay__card small {
  color: #64788d;
  font-size: .72rem;
}

.bvt-app-navigation-overlay__spinner {
  position: relative;
  display: grid;
  width: 54px;
  height: 54px;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 50%;
  background: #f4fbff;
}

.bvt-app-navigation-overlay__spinner::before {
  position: absolute;
  inset: 0;
  border: 3px solid rgba(26, 154, 218, .16);
  border-top-color: #1a9ada;
  border-radius: inherit;
  content: "";
  animation: bvt-app-spin .8s linear infinite;
}

.bvt-app-navigation-overlay__spinner img {
  object-fit: contain;
}

@keyframes bvt-app-spin {
  to { transform: rotate(360deg); }
}

.bvt-app-toast[hidden] {
  display: none;
}

.bvt-app-toast {
  position: fixed;
  top: calc(72px + var(--bvt-safe-top));
  left: 50%;
  z-index: 1100;
  display: flex;
  width: max-content;
  max-width: calc(100% - 28px);
  min-height: 42px;
  align-items: center;
  gap: 9px;
  padding: 9px 12px;
  border: 1px solid rgba(24, 116, 174, .16);
  border-radius: 999px;
  color: #12314c;
  background: rgba(255, 255, 255, .97);
  box-shadow: 0 12px 34px rgba(3, 38, 67, .2);
  font-size: .78rem;
  font-weight: 700;
  transform: translateX(-50%);
  backdrop-filter: blur(14px);
}

.bvt-app-toast i {
  color: #187eb8;
  font-size: 1rem;
}

.bvt-app-toast button {
  min-height: 30px;
  padding: 0 12px;
  border: 0;
  border-radius: 999px;
  color: #fff;
  background: linear-gradient(135deg, #149edc, #315ed9);
  font: inherit;
}

@media (max-width: 767.98px) {
  input,
  select,
  textarea {
    font-size: 16px !important;
  }

  .bvt-app-toast {
    top: calc(70px + var(--bvt-safe-top));
  }
}

@media (display-mode: standalone) {
  body {
    overscroll-behavior-y: contain;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }

  .bvt-app-navigation-overlay__spinner::before {
    animation-duration: 1.8s !important;
  }
}
