/* Read-only form styles */
.form-control[readonly] {
  background-color: #f8f9fa;
  cursor: default;
  border-color: #ced4da;
}

.form-control[readonly]:focus {
  box-shadow: none;
  border-color: #ced4da;
}

/* Processing state indicators */
.form-processing .form-control {
  background-color: #f8f9fa;
  opacity: 0.8;
}

.form-processing .form-label {
  opacity: 0.8;
}

/* Form validation error states with better visibility */
.is-invalid,
.form-control.is-invalid {
  border-color: var(--danger-color);
  padding-right: calc(1.5em + 0.75rem);
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right calc(0.375em + 0.1875rem) center;
  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
}

.is-invalid:focus,
.form-control.is-invalid:focus {
  border-color: var(--danger-color);
  box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25);
}

/* Form buttons with loading states */
.btn-processing {
  position: relative;
  pointer-events: none;
  opacity: 0.8;
}

.btn-processing .spinner-border {
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -0.5rem;
  margin-left: -0.5rem;
}

/* Info notice for read-only forms */
.form-readonly-notice {
  margin-top: 10px;
  padding: 8px 12px;
  background-color: rgba(13, 110, 253, 0.05);
  border-left: 4px solid var(--primary-color);
  font-size: 0.9rem;
  color: var(--primary-color);
}

.required-field::after {
  content: "*";
  color: var(--danger-color);
  margin-left: 4px;
  font-weight: bold;
}

.form-check-input[type="checkbox"] {
  width: 1.25rem;
  height: 1.25rem;
  border: 2px solid #0d6efd;
  background-color: #ffffff;
}

.form-check-input[type="checkbox"]:checked {
  background-color: #0d6efd;
  border-color: #0d6efd;
}