/* Bulk Add to Cart — Category page toolbar */

/* Checkbox on each product card */
.card--product .bulk-check {
  position: absolute;
  top: 8px;
  left: 8px;
  z-index: 10;
  width: 22px;
  height: 22px;
  accent-color: var(--accent, #2563eb);
  cursor: pointer;
  opacity: 0;
  transition: opacity 0.15s ease;
}
.bulk-mode .card--product .bulk-check,
.card--product:hover .bulk-check,
.card--product .bulk-check:checked,
.card--product .bulk-check:focus-visible {
  opacity: 1;
}
.card--product .bulk-check:focus-visible {
  outline: 2px solid var(--accent, #2563eb);
  outline-offset: 2px;
  border-radius: 4px;
}
.card--product .bulk-check:checked ~ .card__link {
  outline: 2px solid var(--accent, #2563eb);
  outline-offset: -2px;
  border-radius: 8px;
}
/* Ensure card has relative positioning for the checkbox */
.card--product {
  position: relative;
}

/* Floating toolbar */
.bulk-toolbar {
  position: fixed;
  bottom: -80px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 900;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 20px;
  background: var(--surface, #fff);
  border: 1px solid var(--border, #e2e8f0);
  border-radius: 12px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
  transition: bottom 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  max-width: calc(100vw - 32px);
}
.bulk-toolbar.is-visible {
  bottom: 24px;
}
.bulk-toolbar__count {
  font-size: 14px;
  font-weight: 600;
  color: var(--text, #1e293b);
  white-space: nowrap;
}
.bulk-toolbar__count strong {
  color: var(--accent, #2563eb);
}
.bulk-toolbar__actions {
  display: flex;
  gap: 8px;
  align-items: center;
}
.bulk-toolbar__add {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  font-size: 14px;
  font-weight: 600;
  color: #fff;
  background: var(--accent, #2563eb);
  border: none;
  border-radius: 8px;
  cursor: pointer;
  transition: background 0.15s ease, transform 0.1s ease;
  white-space: nowrap;
}
.bulk-toolbar__add:hover {
  background: var(--accent-hover, #1d4ed8);
}
.bulk-toolbar__add:active {
  transform: scale(0.97);
}
.bulk-toolbar__add:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
  box-shadow: 0 0 0 4px var(--accent, #2563eb);
}
.bulk-toolbar__add:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.bulk-toolbar__add svg {
  flex-shrink: 0;
}
.bulk-toolbar__clear {
  padding: 8px 12px;
  font-size: 13px;
  color: var(--text-muted, #64748b);
  background: transparent;
  border: 1px solid var(--border, #e2e8f0);
  border-radius: 8px;
  cursor: pointer;
  transition: background 0.15s ease;
  white-space: nowrap;
}
.bulk-toolbar__clear:hover {
  background: var(--surface-hover, #f1f5f9);
}
.bulk-toolbar__clear:focus-visible {
  outline: 2px solid var(--accent, #2563eb);
  outline-offset: 2px;
  border-radius: 8px;
}

/* Select all toggle */
.bulk-select-all {
  display: none;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: var(--text-muted, #64748b);
  cursor: pointer;
  user-select: none;
  margin-bottom: 8px;
}
.bulk-mode .bulk-select-all {
  display: inline-flex;
}
.bulk-select-all input {
  width: 18px;
  height: 18px;
  accent-color: var(--accent, #2563eb);
  cursor: pointer;
}

/* Progress indicator during bulk add */
.bulk-toolbar__progress {
  font-size: 13px;
  color: var(--text-muted, #64748b);
  white-space: nowrap;
}
.bulk-toolbar__spinner {
  display: inline-block;
  width: 16px;
  height: 16px;
  border: 2px solid var(--border, #e2e8f0);
  border-top-color: var(--accent, #2563eb);
  border-radius: 50%;
  animation: bulk-spin 0.6s linear infinite;
  vertical-align: middle;
  margin-right: 6px;
}
@keyframes bulk-spin {
  to { transform: rotate(360deg); }
}

/* Reduced motion: disable animations for vestibular disorders (WCAG 2.3.3) */
@media (prefers-reduced-motion: reduce) {
  .card--product .bulk-check { transition: none; }
  .bulk-toolbar { transition: none; }
  .bulk-toolbar__add { transition: none; }
  .bulk-toolbar__clear { transition: none; }
  .bulk-toolbar__spinner { animation: none; border-top-color: var(--accent, #2563eb); border-right-color: var(--accent, #2563eb); }
  .bulk-toolbar__add:active { transform: none; }
}

/* Forced colors (Windows High Contrast — WCAG 1.4.11) */
@media (forced-colors: active) {
  .bulk-toolbar__add { border: 2px solid ButtonText; }
  .bulk-toolbar__spinner { forced-color-adjust: none; }
}

/* Print: hide interactive bulk-select UI */
@media print {
  .bulk-toolbar,
  .bulk-check,
  .bulk-select-all { display: none !important; }
}

/* Mobile adjustments */
@media (max-width: 767px) {
  .card--product .bulk-check {
    width: 44px;
    height: 44px;
    top: 0;
    left: 0;
  }
  .bulk-toolbar {
    left: 16px;
    right: 16px;
    transform: none;
    max-width: none;
    padding: 10px 14px;
    gap: 8px;
    border-radius: 10px;
  }
  .bulk-toolbar.is-visible {
    bottom: 16px;
  }
  .bulk-toolbar__add {
    padding: 8px 12px;
    font-size: 13px;
    min-height: 44px;
  }
  .bulk-toolbar__clear {
    padding: 6px 10px;
    font-size: 12px;
    min-height: 44px;
  }
}
