.hover-card {
  transition: box-shadow .15s, transform .15s;
}
.hover-card:hover {
  box-shadow: 0 .5rem 1rem rgba(0,0,0,.15) !important;
  transform: translateY(-2px);
}

.item-qty {
  cursor: pointer;
  padding: 2px 6px;
  border-radius: 4px;
  transition: background .1s;
  min-width: 2rem;
  text-align: center;
}
.item-qty:hover {
  background: var(--bs-gray-200);
}

body {
  background: var(--bs-gray-100);
}
.card {
  border: none;
}

/* Нижняя навигация (мобильная) */
#bottomNav {
  z-index: 1030;
  /* Safe area для скруглённых дисплеев (iPhone notch / Dynamic Island) */
  padding-bottom: env(safe-area-inset-bottom, 0px);
  padding-left: env(safe-area-inset-left, 0px);
  padding-right: env(safe-area-inset-right, 0px);
}
.bottom-nav-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex: 1;
  padding: 12px 4px 10px;
  font-size: .9rem;
  line-height: 1.3;
  color: var(--bs-secondary-color);
  text-decoration: none;
  gap: 4px;
  min-height: 75px;
  transition: color .15s;
}
.bottom-nav-item i {
  font-size: 1.9rem;
}
.bottom-nav-item.active {
  color: var(--bs-primary);
}
.bottom-nav-item:active {
  opacity: .6;
}
/* Отступ снизу — учитывает safe area */
@media (max-width: 767.98px) {
  .pb-bottom-nav {
    padding-bottom: calc(75px + env(safe-area-inset-bottom, 0px) + 1rem) !important;
  }
}
