/**
 * @file payment-modal.css
 * @brief Payment modal styling
 * @note Styles for payment modal components and Recent Payment History section
 * @copyright Copyright (c) 2025 GLT Design. All rights reserved.
 */

/* Recent Payment History Section - Custom column widths */
#addPaymentModal .card-body .row .col-4:first-child {
  flex: 0 0 35%;
  max-width: 35%;
  padding-left: 0.25rem;
  padding-right: 0.25rem;
}

#addPaymentModal .card-body .row .col-4:nth-child(2) {
  flex: 0 0 25%;
  max-width: 25%;
  text-align: right;
  font-weight: 500;
  padding-left: 0.25rem;
  padding-right: 0.25rem;
}

#addPaymentModal .card-body .row .col-4:last-child {
  flex: 0 0 40%;
  max-width: 40%;
  text-align: right;
  padding-left: 0.25rem;
  padding-right: 0.5rem;
}

/* Payment type badges in Recent Payment History */
#addPaymentModal .card-body .badge {
  font-size: 0.7rem;
  padding: 0.2rem 0.4rem;
  white-space: nowrap;
  max-width: 100%;
  display: inline-block;
}

/* Responsive adjustments for payment history */
@media (max-width: 768px) {
  #addPaymentModal .card-body .badge {
    font-size: 0.65rem;
    padding: 0.15rem 0.3rem;
  }

  #addPaymentModal .card-body .col-4 {
    padding-left: 0.1rem;
    padding-right: 0.1rem;
  }
}

/* Fix for payment type badges extending outside container */
#addPaymentModal .card-body .row {
  margin-left: 0;
  margin-right: 0;
}

#addPaymentModal .card-body .row > [class*="col-"] {
  padding-left: 0.25rem;
  padding-right: 0.25rem;
}

/* Ensure badges stay within their column boundaries */
#addPaymentModal .badge {
  max-width: 100%;
  box-sizing: border-box;
}

/* Payment history card improvements */
#addPaymentModal .card.border-light {
  border: 1px solid #e9ecef !important;
  border-radius: 6px;
}

#addPaymentModal .card.border-light .card-body {
  padding: 0.5rem;
}

/* Specific fix for payment type column alignment */
#addPaymentModal .card-body .col-4:nth-child(3) {
  display: flex;
  justify-content: flex-end;
  align-items: center;
}

/* Ensure payment type badges don't break layout */
#addPaymentModal .card-body .col-4:nth-child(3) .badge {
  flex-shrink: 1;
  min-width: 0;
}

/* Payment Mode Toggle Styling */
.payment-mode-toggle .btn-group {
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  border-radius: 6px;
}

.payment-mode-toggle .btn {
  border: 1px solid transparent;
  font-weight: 500;
  font-size: 0.875rem;
  padding: 0.375rem 0.75rem;
  transition: all 0.2s ease-in-out;
}

.payment-mode-toggle .btn:first-child {
  border-top-left-radius: 6px;
  border-bottom-left-radius: 6px;
}

.payment-mode-toggle .btn:last-child {
  border-top-right-radius: 6px;
  border-bottom-right-radius: 6px;
}

.payment-mode-toggle .btn-check:checked + .btn-outline-success {
  background-color: #198754;
  border-color: #198754;
  color: white;
}

.payment-mode-toggle .btn-check:checked + .btn-outline-danger {
  background-color: #dc3545;
  border-color: #dc3545;
  color: white;
}

.payment-mode-toggle .btn-outline-success:hover {
  background-color: #157347;
  border-color: #146c43;
  color: white;
}

.payment-mode-toggle .btn-outline-danger:hover {
  background-color: #bb2d3b;
  border-color: #b02a37;
  color: white;
}

/* Modal Header Styling for Withdrawal Mode */
#addPaymentModal.withdrawal-mode .modal-header {
  background: linear-gradient(135deg, #dc3545 0%, #c82333 100%);
  color: white;
}

#addPaymentModal.withdrawal-mode .modal-title {
  color: white;
}

#addPaymentModal.withdrawal-mode .btn-close-white {
  filter: brightness(0) invert(1);
}

/* Modal Content Styling for Withdrawal Mode */
#addPaymentModal.withdrawal-mode .modal-body h6 {
  color: #dc3545;
  border-bottom: 2px solid #dc3545;
  padding-bottom: 0.25rem;
  margin-bottom: 1rem;
}

#addPaymentModal.withdrawal-mode .btn-success {
  background-color: #dc3545;
  border-color: #dc3545;
}

#addPaymentModal.withdrawal-mode .btn-success:hover {
  background-color: #bb2d3b;
  border-color: #b02a37;
}

#addPaymentModal.withdrawal-mode .alert-light {
  background-color: #f8d7da;
  border-color: #f5c6cb;
  color: #721c24;
}

/* Form Field Styling for Withdrawal Mode */
#addPaymentModal.withdrawal-mode .form-control:focus {
  border-color: #dc3545;
  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
}

#addPaymentModal.withdrawal-mode .form-select:focus {
  border-color: #dc3545;
  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
}

/* Badge Styling for Withdrawal Mode */
#addPaymentModal.withdrawal-mode .badge.bg-success {
  background-color: #dc3545 !important;
}

#addPaymentModal.withdrawal-mode .badge.bg-primary {
  background-color: #6f42c1 !important;
}

/* Toggle Switch Styling for Withdrawal Mode */
#addPaymentModal.withdrawal-mode .toggle-slider {
  background-color: #dc3545;
}

#addPaymentModal.withdrawal-mode .toggle-slider:before {
  background-color: white;
}

/* Responsive adjustments for payment mode toggle */
@media (max-width: 768px) {
  .payment-mode-toggle {
    margin-right: 0.5rem !important;
  }

  .payment-mode-toggle .btn {
    font-size: 0.75rem;
    padding: 0.25rem 0.5rem;
  }

  #addPaymentModal .modal-header .d-flex {
    flex-wrap: wrap;
    gap: 0.5rem;
  }

  #addPaymentModal .modal-title {
    font-size: 1rem;
  }
}

/* Animation for mode transitions */
#addPaymentModal {
  transition: all 0.3s ease-in-out;
}

#addPaymentModal .modal-header {
  transition: background 0.3s ease-in-out, color 0.3s ease-in-out;
}

#addPaymentModal .modal-body h6 {
  transition: color 0.3s ease-in-out, border-color 0.3s ease-in-out;
}

/* Error Alert Styling - Fix for poor contrast */
.alert-danger {
  color: #000 !important;
  background-color: #f8d7da !important;
  border-color: #f5c6cb !important;
}

.alert-danger .alert-heading,
.alert-danger h1,
.alert-danger h2,
.alert-danger h3,
.alert-danger h4,
.alert-danger h5,
.alert-danger h6 {
  color: #000 !important;
}

/* Ensure all text in error alerts is black for readability */
.alert-danger * {
  color: #000 !important;
}

/* Fix for any Bootstrap alert variants that might have poor contrast */
.alert {
  color: #000 !important;
}

.alert .alert-heading {
  color: #000 !important;
}
