/* Qualiveil Premium Components */

/* Enhanced Card System */
.qv-card {
  background: var(--bs-dark);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 12px;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08), 0 1px 2px rgba(0, 0, 0, 0.04);
  transition: all 0.2s ease-in-out;
}

.qv-card:hover {
  border-color: rgba(255, 255, 255, 0.2);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.12), 0 2px 4px rgba(0, 0, 0, 0.06);
  transform: translateY(-1px);
}

.qv-card-elevated {
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.15), 0 3px 6px rgba(0, 0, 0, 0.08);
}

.qv-card-metric {
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.05) 0%, rgba(255, 255, 255, 0.02) 100%);
  border: 1px solid rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(10px);
}

/* Role-based card theming */
.qv-card-manufacturer {
  border-color: var(--manufacturer-accent);
  background: linear-gradient(135deg, rgba(30, 64, 175, 0.05) 0%, rgba(59, 130, 246, 0.02) 100%);
}

.qv-card-supplier {
  border-color: var(--supplier-accent);
  background: linear-gradient(135deg, rgba(5, 150, 105, 0.05) 0%, rgba(16, 185, 129, 0.02) 100%);
}

/* Enhanced Button System */
.qv-btn-primary {
  background: var(--qv-gradient-primary);
  border: none;
  border-radius: 8px;
  font-weight: 500;
  padding: var(--qv-space-3) var(--qv-space-6);
  transition: all 0.2s ease-in-out;
  color: white;
}

.qv-btn-primary:hover {
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(59, 130, 246, 0.2);
  color: white;
}

.qv-btn-manufacturer {
  background: var(--manufacturer-gradient);
  border: none;
  border-radius: 8px;
  font-weight: 500;
  padding: var(--qv-space-3) var(--qv-space-6);
  transition: all 0.2s ease-in-out;
  color: white;
}

.qv-btn-manufacturer:hover {
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(30, 64, 175, 0.2);
  color: white;
}

.qv-btn-supplier {
  background: var(--supplier-gradient);
  border: none;
  border-radius: 8px;
  font-weight: 500;
  padding: var(--qv-space-3) var(--qv-space-6);
  transition: all 0.2s ease-in-out;
  color: white;
}

.qv-btn-supplier:hover {
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(5, 150, 105, 0.2);
  color: white;
}

.qv-btn-ghost {
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: rgba(255, 255, 255, 0.9);
  border-radius: 8px;
  font-weight: 500;
  padding: var(--qv-space-3) var(--qv-space-6);
  transition: all 0.2s ease-in-out;
}

.qv-btn-ghost:hover {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.3);
  color: rgba(255, 255, 255, 0.95);
}

/* Enhanced Form Controls */
.qv-form-control {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 8px;
  color: var(--bs-body-color);
  padding: var(--qv-space-3) var(--qv-space-4);
  transition: all 0.2s ease-in-out;
}

.qv-form-control:focus {
  background: rgba(255, 255, 255, 0.08);
  border-color: var(--qv-primary);
  box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.05);
  outline: none;
  color: var(--bs-body-color);
}

/* Status Indicators */
.qv-status-indicator {
  display: flex;
  align-items: center;
  gap: var(--qv-space-2);
}

.qv-status-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  display: inline-block;
}

.qv-status-text {
  font-size: var(--qv-text-sm);
  font-weight: 500;
}

/* Override Bootstrap's shadow-sm for moderate shadows */
.shadow-sm {
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08), 0 1px 2px rgba(0, 0, 0, 0.04) !important;
}

/* Balanced padding for modal headers with centered titles */
.modal-header.text-center {
  padding: 1.25rem 1rem 0.75rem 1rem !important; /* Increased top: 16px→20px, moderate bottom: 8px→12px */
}