html.vk-app-is-loading,
html.vk-app-is-loading body { overflow: hidden !important; }

.vk-app-loader {
  position: fixed; inset: 0; z-index: 20000;
  display: grid; place-items: center;
  background: #050510;
  opacity: 1; visibility: visible;
  transition: opacity .22s ease, visibility .22s ease;
}
.vk-app-loader.is-hidden {
  opacity: 0; visibility: hidden; pointer-events: none;
}
.vk-app-loader__inner { display: grid; justify-items: center; gap: 14px; }
.vk-app-loader__logo {
  width: 82px; height: 82px; object-fit: contain;
  animation: vkLogoPulse .95s ease-in-out infinite;
}
.vk-app-loader__ring {
  width: 42px; height: 42px;
  border: 4px solid rgba(255,255,255,.12);
  border-top-color: #00FF9D;
  border-right-color: #7B2EFF;
  border-radius: 50%;
  animation: vkLogoSpin .7s linear infinite;
}
@keyframes vkLogoPulse {
  0%,100% { transform: scale(.94); opacity: .74; }
  50% { transform: scale(1.04); opacity: 1; }
}
@keyframes vkLogoSpin { to { transform: rotate(360deg); } }

body.vk-home-page { background: #050510 !important; }
body.vk-home-page .vk-app-header {
  background: #050510 !important;
  border-bottom-color: transparent !important;
  box-shadow: none !important;
}
body.vk-home-page .vk-home-search,
body.vk-home-page .vk-home-restaurants > h1 { display: none !important; }

.vk-home-location.is-loading { opacity: .72; pointer-events: none; }
.vk-home-location.is-success strong { color: #00FF9D; }
.vk-home-location.is-error strong { color: #FF5A6F; }
.vk-home-distance { color: #00CFFF; white-space: nowrap; }
.vk-home-restaurant-card[hidden] { display: none !important; }

#vkHeaderCartBtn { overflow: visible !important; cursor: pointer !important; }
#vkHeaderCartBtn .vk-header-cart-badge {
  position: absolute !important; z-index: 50 !important;
  top: -7px !important; right: -7px !important;
  min-width: 22px !important; height: 22px !important;
  padding: 0 6px !important;
  display: inline-grid !important; place-items: center !important;
  border: 2px solid #050510 !important; border-radius: 999px !important;
  background: linear-gradient(135deg,#00FF9D,#FFD43B) !important;
  color: #050510 !important;
  font: 900 .68rem/1 "Roboto",system-ui,sans-serif !important;
  box-shadow: 0 6px 18px rgba(0,0,0,.36) !important;
  pointer-events: none !important;
}
#vkHeaderCartBtn .vk-header-cart-badge[hidden] { display: none !important; }

@media (prefers-reduced-motion: reduce) {
  .vk-app-loader__logo,.vk-app-loader__ring { animation: none !important; }
}

/* VK_CANONICAL_CART_BADGE */
#vkHeaderCartBtn {
  position: relative !important;
  overflow: visible !important;
}

#vkHeaderCartBtn > .vk-header-cart-badge {
  position: absolute !important;
  z-index: 100 !important;
  top: -8px !important;
  right: -8px !important;

  display: inline-grid !important;
  place-items: center !important;

  min-width: 23px !important;
  height: 23px !important;
  padding: 0 6px !important;

  border: 2px solid #050510 !important;
  border-radius: 999px !important;

  background:
    linear-gradient(
      135deg,
      #00FF9D,
      #FFD43B
    ) !important;

  color: #050510 !important;

  font-family:
    "Roboto",
    system-ui,
    sans-serif !important;
  font-size: 0.7rem !important;
  font-weight: 900 !important;
  line-height: 1 !important;

  box-shadow:
    0 6px 18px rgba(0,0,0,.42) !important;

  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: none !important;
}

#vkHeaderCartBtn > .vk-header-cart-badge[hidden] {
  display: none !important;
}

/* VK_CART_MODAL_OPEN_FORCE */
#vkCartModal.vk-cart-modal {
  position: fixed !important;
  inset: 0 !important;
  z-index: 2147483000 !important;
}

#vkCartModal.vk-cart-modal.is-open {
  display: flex !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}

#vkCartModal.vk-cart-modal.is-open .vk-cart-modal__panel {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}

body.vk-modal-open {
  overflow: hidden !important;
}

@media (max-width: 760px) {
  #vkCartModal.vk-cart-modal.is-open {
    align-items: flex-end !important;
    justify-content: center !important;
    padding: 0 !important;
  }

  #vkCartModal.vk-cart-modal.is-open .vk-cart-modal__panel {
    width: 100% !important;
    max-width: 100% !important;
    height: min(92dvh, 920px) !important;
    max-height: 92dvh !important;
    margin: 0 !important;
    padding-bottom:
      calc(24px + env(safe-area-inset-bottom)) !important;
    border-radius: 26px 26px 0 0 !important;
    overflow-y: auto !important;
    transform: none !important;
  }
}
