/**
 * Premium Button Styles for LicenseShipper SaaS
 * Applies to: btn-primary, btn-secondary, btn-success, btn-danger, btn-info, btn-warning
 * + outline variants with premium hover animations
 */

/* ========== Base: All Buttons (Standard Professional Sizes) ========== */
.btn {
  position: relative;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  border-radius: 8px;
  font-weight: 500;
  letter-spacing: 0.02em;
  padding: 0.5rem 1.25rem;
  font-size: 0.875rem;
}

.btn-sm {
  padding: 0.35rem 0.75rem;
  font-size: 0.8125rem;
  border-radius: 6px;
}

.btn-lg {
  padding: 0.625rem 1.5rem;
  font-size: 0.9375rem;
  border-radius: 8px;
}
.btn:not(:disabled):not(.disabled):hover {
  transform: translateY(-2px);
}
.btn:not(:disabled):not(.disabled):active {
  transform: translateY(0);
  transition-duration: 0.1s;
}

/* ========== Primary ========== */
.btn-primary {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  border: none;
  box-shadow: 0 4px 14px rgba(102, 126, 234, 0.35);
}
.btn-primary:hover {
  background: linear-gradient(135deg, #5a6fd6 0%, #6b4190 100%);
  box-shadow: 0 6px 20px rgba(102, 126, 234, 0.45);
}
.btn-check:focus + .btn-primary,
.btn-primary:focus {
  box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.4);
}
.btn-primary:disabled,
.btn-primary.disabled {
  transform: none;
  box-shadow: 0 2px 8px rgba(102, 126, 234, 0.2);
}

/* ========== Secondary ========== */
.btn-secondary {
  background: linear-gradient(135deg, #64748b 0%, #475569 100%);
  border: none;
  color: #fff;
  box-shadow: 0 2px 10px rgba(100, 116, 139, 0.3);
}
.btn-secondary:hover {
  background: linear-gradient(135deg, #475569 0%, #334155 100%);
  color: #fff;
  box-shadow: 0 4px 16px rgba(100, 116, 139, 0.4);
}
.btn-check:focus + .btn-secondary,
.btn-secondary:focus {
  box-shadow: 0 0 0 3px rgba(100, 116, 139, 0.35);
}
.btn-secondary:disabled,
.btn-secondary.disabled {
  transform: none;
}

/* ========== Success ========== */
.btn-success {
  background: linear-gradient(135deg, #22c55e 0%, #16a34a 100%);
  border: none;
  box-shadow: 0 4px 14px rgba(34, 197, 94, 0.35);
}
.btn-success:hover {
  background: linear-gradient(135deg, #16a34a 0%, #15803d 100%);
  box-shadow: 0 6px 20px rgba(34, 197, 94, 0.45);
}
.btn-check:focus + .btn-success,
.btn-success:focus {
  box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.35);
}
.btn-success:disabled,
.btn-success.disabled {
  transform: none;
}

/* ========== Danger ========== */
.btn-danger {
  background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
  border: none;
  box-shadow: 0 4px 14px rgba(239, 68, 68, 0.35);
}
.btn-danger:hover {
  background: linear-gradient(135deg, #dc2626 0%, #b91c1c 100%);
  box-shadow: 0 6px 20px rgba(239, 68, 68, 0.45);
}
.btn-check:focus + .btn-danger,
.btn-danger:focus {
  box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.35);
}
.btn-danger:disabled,
.btn-danger.disabled {
  transform: none;
}

/* ========== Info ========== */
.btn-info {
  background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
  border: none;
  color: #fff;
  box-shadow: 0 4px 14px rgba(59, 130, 246, 0.35);
}
.btn-info:hover {
  background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%);
  color: #fff;
  box-shadow: 0 6px 20px rgba(59, 130, 246, 0.45);
}
.btn-check:focus + .btn-info,
.btn-info:focus {
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.35);
}
.btn-info:disabled,
.btn-info.disabled {
  transform: none;
}

/* ========== Warning ========== */
.btn-warning {
  background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
  border: none;
  color: #fff;
  box-shadow: 0 4px 14px rgba(245, 158, 11, 0.35);
}
.btn-warning:hover {
  background: linear-gradient(135deg, #d97706 0%, #b45309 100%);
  color: #fff;
  box-shadow: 0 6px 20px rgba(245, 158, 11, 0.45);
}
.btn-check:focus + .btn-warning,
.btn-warning:focus {
  box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.35);
}
.btn-warning:disabled,
.btn-warning.disabled {
  transform: none;
}

/* ========== Outline Primary ========== */
.btn-outline-primary {
  border-width: 2px;
  border-radius: 10px;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}
.btn-outline-primary:hover {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  border-color: transparent;
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 4px 14px rgba(102, 126, 234, 0.35);
}
.btn-outline-primary:disabled,
.btn-outline-primary.disabled {
  transform: none;
}

/* ========== Outline Secondary ========== */
.btn-outline-secondary {
  border-width: 2px;
  border-radius: 10px;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}
.btn-outline-secondary:hover {
  background: linear-gradient(135deg, #64748b 0%, #475569 100%);
  border-color: transparent;
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 4px 14px rgba(100, 116, 139, 0.3);
}
.btn-outline-secondary:disabled,
.btn-outline-secondary.disabled {
  transform: none;
}

/* ========== Outline Success ========== */
.btn-outline-success {
  border-width: 2px;
  border-radius: 10px;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}
.btn-outline-success:hover {
  background: linear-gradient(135deg, #22c55e 0%, #16a34a 100%);
  border-color: transparent;
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 4px 14px rgba(34, 197, 94, 0.35);
}
.btn-outline-success:disabled,
.btn-outline-success.disabled {
  transform: none;
}

/* ========== Outline Danger ========== */
.btn-outline-danger {
  border-width: 2px;
  border-radius: 10px;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}
.btn-outline-danger:hover {
  background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
  border-color: transparent;
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 4px 14px rgba(239, 68, 68, 0.35);
}
.btn-outline-danger:disabled,
.btn-outline-danger.disabled {
  transform: none;
}

/* ========== Outline Info ========== */
.btn-outline-info {
  border-width: 2px;
  border-radius: 10px;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}
.btn-outline-info:hover {
  background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
  border-color: transparent;
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 4px 14px rgba(59, 130, 246, 0.35);
}
.btn-outline-info:disabled,
.btn-outline-info.disabled {
  transform: none;
}

/* ========== Light Variants (btn-light-primary etc) ========== */
.btn-light-primary,
.btn-light-success,
.btn-light-danger,
.btn-light-info,
.btn-light-warning,
.btn-light-secondary {
  border-radius: 10px;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}
.btn-light-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 14px rgba(102, 126, 234, 0.25);
}
.btn-light-success:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 14px rgba(34, 197, 94, 0.25);
}
.btn-light-danger:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 14px rgba(239, 68, 68, 0.25);
}
.btn-light-info:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 14px rgba(59, 130, 246, 0.25);
}
.btn-light-warning:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 14px rgba(245, 158, 11, 0.25);
}
.btn-light-secondary:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 14px rgba(100, 116, 139, 0.2);
}
