/* Critical utility fallback in case the Tailwind CDN is unavailable. */
.hidden {
  display: none !important;
}

/* ---------- Bottom sheets ---------- */
.sheet {
  will-change: transform;
}
.sheet.open {
  transform: translateY(0);
}
.sheet-handle {
  width: 36px;
  height: 4px;
  border-radius: 999px;
  background: #E5E5E5;
  margin: 10px auto 6px;
}

/* ---------- Category rail active state ---------- */
.cat-item {
  position: relative;
  transition: background-color .15s ease;
}
.cat-item.active {
  background: #fff;
  font-weight: 700;
}
.cat-item.active::before {
  content: '';
  position: absolute;
  left: 0; top: 14px; bottom: 14px;
  width: 3px;
  border-radius: 0 3px 3px 0;
  background: #FFC300;
}

/* ---------- Product card press feedback ---------- */
.product-card { transition: background-color .12s ease; }
.product-card:active { background-color: #FAFAFA; }

.qty-btn {
  width: 26px; height: 26px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 999px;
  transition: transform .1s ease;
}
.qty-btn:active { transform: scale(0.88); }

.add-fab {
  width: 26px; height: 26px;
  border-radius: 999px;
  display: flex; align-items: center; justify-content: center;
  transition: transform .1s ease;
}
.add-fab:active { transform: scale(0.85); }

/* ---------- Fly-to-cart animation dot ---------- */
.fly-dot {
  position: fixed;
  width: 14px; height: 14px;
  border-radius: 999px;
  background: #FF5A36;
  z-index: 80;
  pointer-events: none;
}

/* ---------- Line clamp helpers ---------- */
.clamp-2 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ---------- Scrollbar tidy for category rail ---------- */
#categoryRail::-webkit-scrollbar { display: none; }
#categoryRail { scrollbar-width: none; }

/* ---------- Toast ---------- */
#toast.show {
  opacity: 1;
  transform: translate(-50%, -6px);
}

/* ---------- Admin: status filter chips ---------- */
.status-chip {
  flex-shrink: 0;
  font-size: 12.5px;
  font-weight: 600;
  padding: 6px 14px;
  border-radius: 999px;
  background: #F0F0F0;
  color: #737373;
  white-space: nowrap;
}
.status-chip.active {
  background: #26210E;
  color: #FFC300;
}

/* ---------- Admin: bottom nav tabs ---------- */
.nav-tab { color: #A3A3A3; }
.nav-tab.active { color: #26210E; }

/* ---------- Admin: availability toggle switch ---------- */
.toggle-track {
  display: block;
  width: 36px;
  height: 20px;
  border-radius: 999px;
  background: #E5E5E5;
  position: relative;
  transition: background-color .15s ease;
}
.toggle-track::after {
  content: '';
  position: absolute;
  top: 2px; left: 2px;
  width: 16px; height: 16px;
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 1px 2px rgba(0,0,0,0.25);
  transition: transform .15s ease;
}
.sold-out-toggle:checked + .toggle-track {
  background: #FFC300;
}
.sold-out-toggle:checked + .toggle-track::after {
  transform: translateX(16px);
}

/* ---------- Admin: order/product cards ---------- */
.order-card, .admin-product-card {
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 1px 2px rgba(20,20,20,0.06);
}

/* ---------- Generic toggle switch (checkboxes, sr-only) ---------- */
.switch-label {
  display: inline-flex;
  cursor: pointer;
}
.switch-label input.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}
.switch-label input.sr-only:checked + .toggle-track {
  background: #FFC300;
}
.switch-label input.sr-only:checked + .toggle-track::after {
  transform: translateX(16px);
}
.switch-label input.sr-only:not(:checked) + .toggle-track {
  background: #E5E5E5;
}

/* ---------- Settings sub-tab chips ---------- */
.subtab-chip {
  flex-shrink: 0;
  font-size: 11px;
  font-weight: 600;
  padding: 5px 12px;
  border-radius: 999px;
  background: #F0F0F0;
  color: #737373;
  white-space: nowrap;
  transition: all .15s ease;
}
.subtab-chip.active {
  background: #26210E;
  color: #FFC300;
}

/* ---------- Star rating row ---------- */
#ratingStars {
  min-height: 16px;
}

/* ---------- Verified badges container ---------- */
#verifiedBadges {
  min-height: 0;
}
