/*
 * G_Scan - fenetre "Ajout rapide par scan" de la liste des produits
 * (gscan-quick-add.js) : une fiche par code scanne.
 */
.gscan-quick-scan {
  margin-bottom: 14px;
}

.gscan-quick-common {
  margin-bottom: 16px;
  padding: 12px 14px;
  border: 1px solid var(--bs-border-color, #dee2e6);
  border-radius: 12px;
  background: var(--bs-tertiary-bg, #f8f9fa);
}

.gscan-quick-common summary {
  font-weight: 600;
  cursor: pointer;
}

.gscan-quick-common-grid,
.gscan-quick-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px 14px;
  margin: 10px 0 8px;
}

.gscan-quick-field {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.gscan-quick-field .form-label {
  margin-bottom: 4px;
  font-size: 0.82rem;
  font-weight: 600;
}

.gscan-quick-wide {
  grid-column: span 2;
}

.gscan-quick-list {
  display: grid;
  gap: 14px;
}

.gscan-quick-card {
  padding: 14px 16px;
  border: 1px solid var(--bs-border-color, #dee2e6);
  border-left: 4px solid var(--bs-secondary-color, #6c757d);
  border-radius: 12px;
  background: var(--bs-body-bg, #ffffff);
}

.gscan-quick-card[data-state="found"] { border-left-color: var(--bs-success, #198754); }
.gscan-quick-card[data-state="partial"] { border-left-color: var(--bs-warning, #ffc107); }
.gscan-quick-card[data-state="exists"] { border-left-color: var(--bs-info, #0dcaf0); opacity: 0.85; }
.gscan-quick-card[data-state="error"] { border-left-color: var(--bs-danger, #dc3545); }
.gscan-quick-card[data-state="saved"] { border-left-color: var(--bs-success, #198754); background: rgba(25, 135, 84, 0.06); }

.gscan-quick-card.is-flash {
  animation: gscan-quick-flash 0.9s ease-out;
}

@keyframes gscan-quick-flash {
  from { box-shadow: 0 0 0 4px color-mix(in srgb, var(--primary-color, #4154f1) 45%, transparent); }
  to { box-shadow: 0 0 0 0 transparent; }
}

@media (prefers-reduced-motion: reduce) {
  .gscan-quick-card.is-flash { animation: none; }
}

.gscan-quick-card-head {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

.gscan-quick-photo {
  flex: 0 0 auto;
  width: 64px;
  height: 64px;
  object-fit: contain;
  border: 1px solid var(--bs-border-color, #dee2e6);
  border-radius: 8px;
  background: #ffffff;
}

.gscan-quick-card-title {
  flex: 1 1 auto;
  min-width: 0;
}

.gscan-quick-code {
  font-weight: 700;
}

.gscan-quick-meta {
  margin: 4px 0 0;
  color: var(--bs-secondary-color, #6c757d);
  font-size: 0.85rem;
  overflow-wrap: anywhere;
}

.gscan-quick-message {
  margin-top: 8px;
  padding: 8px 12px;
  border-radius: 8px;
  font-size: 0.875rem;
}

.gscan-quick-message.is-info { background: var(--bs-tertiary-bg, #f8f9fa); color: var(--bs-secondary-color, #6c757d); }
.gscan-quick-message.is-warning { background: rgba(255, 193, 7, 0.12); color: #7a5c00; }
.gscan-quick-message.is-error { background: rgba(220, 53, 69, 0.08); color: var(--bs-danger, #dc3545); }
.gscan-quick-message.is-success { background: rgba(25, 135, 84, 0.1); color: var(--bs-success-text-emphasis, #146c43); }

.gscan-quick-packs {
  display: grid;
  gap: 8px;
}

.gscan-quick-pack {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr 0.8fr 1.4fr auto;
  align-items: end;
  gap: 8px 12px;
  padding: 8px 10px;
  border: 1px dashed var(--bs-border-color, #dee2e6);
  border-radius: 10px;
}

.gscan-quick-card-foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-top: 10px;
}

@media (max-width: 991.98px) {
  .gscan-quick-common-grid,
  .gscan-quick-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gscan-quick-pack {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 575.98px) {
  .gscan-quick-common-grid,
  .gscan-quick-grid,
  .gscan-quick-pack {
    grid-template-columns: minmax(0, 1fr);
  }

  .gscan-quick-wide {
    grid-column: auto;
  }

  .gscan-quick-card-foot .btn {
    min-height: 44px;
  }
}
