/* Theme colors */
:root {
  --primary: #0D6EFD;
  --secondary: #6BD5E1;
  --accent: #F8FAFF;
}

/* Font defaults */
body {
  min-height: max(884px, 100dvh);
  font-family: 'Work Sans', 'Noto Sans', 'Segoe UI', sans-serif;
}

/* Material Icons */
.material-symbols-outlined {
  font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}

.icon-vending-machine {
  font-size: 32px;
  font-variation-settings: 'FILL' 1, 'wght' 300;
}

/* Shared backgrounds */
.bg-soft-blue {
  background: linear-gradient(180deg, #F8FAFF 0%, #E0F2FF 100%);
}

.bg-soft-success {
  background: linear-gradient(180deg, #F8FAFF 0%, #E3F5FF 100%);
}

.bg-soft-error {
  background: linear-gradient(180deg, #FFF2F2 0%, #F8FAFF 100%);
}

/* Status dot animation */
.status-dot {
  animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

@keyframes pulse {
  50% {
    opacity: 0.5;
  }
}

/* Card effects */
.card-gloss {
  background-image: linear-gradient(135deg, rgba(255, 255, 255, 0.5) 0%, rgba(255, 255, 255, 0) 50%);
}

.product-image-wrapper {
  background: radial-gradient(circle at 50% 90%, rgba(107, 213, 225, 0.25) 0%, rgba(13, 110, 253, 0) 60%);
}

.product-card {
  border: 1px solid rgba(255, 255, 255, 0.6);
  backdrop-filter: blur(2px);
}

/* Product image hover effects */
.group:hover .product-image {
  transform: translateY(-8px) scale(1.05);
}

.group:active .product-image {
  transform: translateY(-4px) scale(1.02);
}
