/* Form Section Headers Styling */
.form-section-header {
  display: flex;
  align-items: center;
  padding: 8px 12px;
  margin-bottom: 10px;
  font-size: 0.95rem;
  font-weight: 600;
  background-color: #f0f5ff; /* Light blue background */
  color: #0056b3; /* Darker blue text */
  border-left: 4px solid #007bff; /* Accent border */
  border-radius: 0 4px 4px 0;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
  position: relative;
}

/* Variant with different color scheme */
.form-section-header.secondary {
  background-color: #eef6ee; /* Light green background */
  color: #28a745; /* Green text */
  border-left: 4px solid #28a745; /* Green accent border */
}

/* More compact variant for subsections */
.form-section-header.compact {
  padding: 6px 10px;
  font-size: 0.9rem;
  margin-bottom: 8px;
  background-color: #f8f9fa;
  border-left-width: 3px;
}

/* Add a subtle icon if needed */
.form-section-header.with-icon::before {
  content: "▶";
  font-size: 0.8rem;
  margin-right: 8px;
  opacity: 0.7;
}

/* Optional: Add help text slot */
.form-section-header .header-help-text {
  font-size: 0.8rem;
  font-weight: normal;
  font-style: italic;
  opacity: 0.8;
  margin-left: 10px;
}


/* Responsive adjustments */
@media (max-width: 768px) {
  .form-section-header {
    font-size: 0.9rem;
    padding: 6px 10px;
  }

  .form-section-header.compact {
    font-size: 0.85rem;
    padding: 5px 8px;
  }
}

/* Form Content Styling to complement headers */
.form-description {
  padding: 0 12px;
  margin-bottom: 15px;
  font-size: 0.9rem;
  color: #505050;
  line-height: 1.5;
}

/* Highlighted form description */
.form-description.highlighted {
  padding: 10px 12px;
  background-color: #f8f9fa;
  border-radius: 4px;
  border-left: 3px solid #dee2e6;
}

/* Important notice styling */
.form-notice {
  display: block;
  padding: 8px 12px;
  margin: 10px 0;
  background-color: #fff8e6; /* Light yellow background */
  border-left: 3px solid #ffc107; /* Warning yellow accent */
  border-radius: 0 4px 4px 0;
  font-size: 0.9rem;
  color: #856404;
}

/* Important notice - alternative styling */
.form-notice.info {
  background-color: #e6f3ff; /* Light blue background */
  border-left-color: #007bff; /* Blue accent */
  color: #0056b3;
}

/* Styling for tips and additional information */
.form-tip {
  display: block;
  font-size: 0.85rem;
  font-style: italic;
  color: #6c757d;
  margin: 5px 0 10px;
  padding-left: 12px;
  border-left: 2px solid #e9ecef;
}

/* Styling for requirements text */
.form-requirements {
  font-size: 0.85rem;
  color: #6c757d;
  margin-top: 5px;
  margin-bottom: 15px;
  font-style: italic;
}

/* Form button styling */
.form-button-primary {
  background-color: #007bff;
  border-color: #007bff;
  color: white;
  font-weight: 500;
  padding: 0.375rem 0.75rem;
  border-radius: 0.25rem;
  transition: background-color 0.15s ease-in-out;
}

.form-button-primary:hover {
  background-color: #0069d9;
  border-color: #0062cc;
}

.form-button-secondary {
  background-color: #6c757d;
  border-color: #6c757d;
  color: white;
  font-weight: 500;
  padding: 0.375rem 0.75rem;
  border-radius: 0.25rem;
  transition: background-color 0.15s ease-in-out;
}

.form-button-secondary:hover {
  background-color: #5a6268;
  border-color: #545b62;
}

/* Optional customization indicators styling */
.form-customization-option {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  padding: 12px 16px;
  margin: 15px 0;
  background-color: #f9f0ff; /* Purple-tinted background to differentiate from headers */
  background-image: linear-gradient(
    to right,
    #f9f0ff,
    #fcf8ff
  ); /* Subtle gradient */
  border: 1px solid #e6d2f6; /* Subtle border */
  border-left: 4px solid #8e44ad; /* Purple accent color */
  border-radius: 8px;
  box-shadow: 0 3px 6px rgba(142, 68, 173, 0.08), 0 1px 2px rgba(0, 0, 0, 0.08);
  transition: all 0.25s ease;
  position: relative;
}

.form-customization-option:hover {
  background-color: #f5ebfc;
  background-image: linear-gradient(to right, #f5ebfc, #f9f5ff);
  box-shadow: 0 4px 8px rgba(142, 68, 173, 0.12), 0 2px 4px rgba(0, 0, 0, 0.08);
  transform: translateY(-2px);
}


.form-customization-option label {
  margin: 0;
  padding-left: 6px;
  font-size: 0.95rem;
  font-weight: 600;
  color: #6a1b9a; /* Darker purple */
  cursor: pointer;
  flex-grow: 1;
  position: relative;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.8);
  letter-spacing: 0.01em;
}

.form-customization-option .form-check-input {
  width: 22px;
  height: 22px;
  cursor: pointer;
  border: 2px solid #8e44ad;
  border-radius: 4px;
  transition: all 0.2s ease;
  position: relative;
}

.form-customization-option .form-check-input:focus {
  box-shadow: 0 0 0 3px rgba(142, 68, 173, 0.25);
}

.form-customization-option .form-check-input:checked {
  background-color: #8e44ad;
  border-color: #8e44ad;
}

.form-customization-option .option-help-text {
  display: block;
  width: 100%;
  font-size: 0.85rem;
  font-style: italic;
  color: #6c757d;
  margin-top: 6px;
  margin-left: 36px; /* Aligns with text after icon and checkbox */
  line-height: 1.4;
  padding-bottom: 2px;
}

/* Add a badge-like indicator for optional items */
.form-customization-option::after {
  content: "Optional";
  position: absolute;
  top: -8px;
  right: 10px;
  background-color: #8e44ad;
  color: white;
  font-size: 0.75rem;
  padding: 1px 8px;
  border-radius: 10px;
  font-weight: 600;
  opacity: 0.85;
  letter-spacing: 0.02em;
}

/* Responsive adjustments for customization options */
@media (max-width: 768px) {
  .form-customization-option {
    padding: 10px 12px;
    margin: 12px 0;
  }

  .form-customization-option label {
    font-size: 0.9rem;
  }

  .form-customization-option .option-help-text {
    font-size: 0.8rem;
    margin-left: 32px;
  }

  .form-customization-option::after {
    font-size: 0.7rem;
    padding: 1px 6px;
  }
}
