/* Form styling with dark theme support */
.form-control,
.form-select {
  background-color: var(--bg-color);
  color: var(--text-color);
  border-color: var(--border-color);
}

.form-control:focus,
.form-select:focus {
  background-color: var(--bg-color);
  color: var(--text-color);
  border-color: var(--border-color);
  box-shadow: 0 0 0 0.25rem rgba(var(--primary-rgb), 0.25);
}

.form-control::placeholder {
  color: var(--text-color-light);
  opacity: 0.7;
}

[data-theme="dark"] .form-control::placeholder {
  color: rgba(255, 255, 255, 0.5);
}

.form-label {
  color: var(--text-color);
}

.form-text,
.help {
  color: var(--text-color) !important;
}

/* Dark theme support for input groups */
.input-group-text {
  background-color: var(--bg-color);
  color: var(--text-color);
  border-color: var(--border-color);
}

/* Custom styling for form validation states */
.form-control.is-invalid,
.was-validated .form-control:invalid {
  border-color: var(--border-color);
  background-color: var(--bg-color);
}

.form-control.is-valid,
.was-validated .form-control:valid {
  border-color: var(--border-color);
  background-color: var(--bg-color);
}

.form-control:disabled {
  background-color: var(--bg-color);
  color: var(--text-color);
  border-color: var(--border-color);
}

/* Form check elements (checkboxes and radios) */
.form-check-input {
  background-color: var(--bg-color);
  border-color: var(--border-color);
}

.form-check-input:checked {
  background-color: var(--primary-color);
  border-color: var(--border-color);
}

.form-check-label {
  color: var(--text-color);
}

/* Form range input */
.form-range::-webkit-slider-thumb {
  background-color: var(--primary-color);
}

.form-range::-webkit-slider-runnable-track {
  background-color: var(--border-color);
}

/* Form switch */
.form-switch .form-check-input {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e");
}

.form-switch .form-check-input:checked {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e");
}

.modal-content {
  background-color: var(--bg-color);
  border-color: var(--border-color);
  color: var(--text-color);
}

.modal-header,
.modal-footer {
  border-color: var(--border-color);
}

/* Placeholder styling for all browsers */
::placeholder {
  color: var(--text-color) !important;
  opacity: 0.7;
}

[data-theme="dark"] ::placeholder {
  color: rgba(255, 255, 255, 0.5) !important;
}

/* For Firefox */
::-moz-placeholder {
  color: var(--text-color) !important;
  opacity: 0.7;
}

[data-theme="dark"] ::-moz-placeholder {
  color: rgba(255, 255, 255, 0.5) !important;
}

/* For Internet Explorer */
:-ms-input-placeholder {
  color: var(--text-color) !important;
  opacity: 0.7;
}

[data-theme="dark"] :-ms-input-placeholder {
  color: rgba(255, 255, 255, 0.5) !important;
}

/* For Microsoft Edge */
::-ms-input-placeholder {
  color: var(--text-color) !important;
  opacity: 0.7;
}

[data-theme="dark"] ::-ms-input-placeholder {
  color: rgba(255, 255, 255, 0.5) !important;
}