.search-bar,
.newsletter,
.calculator-panel,
.article-content,
.faq-answer,
.toc {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-sm);
}

label,
legend {
  display: inline-block;
  font-weight: 600;
  color: var(--color-text);
  margin-bottom: 0.45rem;
}

input,
textarea,
select {
  width: 100%;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 0.9rem 1rem;
  background: var(--color-surface);
  color: var(--color-text);
  transition: border-color var(--transition), box-shadow var(--transition), background-color var(--transition);
}

input[aria-invalid="true"],
textarea[aria-invalid="true"],
select[aria-invalid="true"] {
  border-color: var(--color-danger);
  box-shadow: 0 0 0 3px rgba(214, 69, 69, 0.16);
}

input:disabled,
textarea:disabled,
select:disabled,
button:disabled {
  opacity: 0.7;
  cursor: not-allowed;
}

.form-help,
.form-error,
.form-success {
  font-size: 0.92rem;
  margin-top: 0.4rem;
}

.form-error {
  color: var(--color-danger);
}

.form-success {
  color: var(--color-success);
}

input:focus,
textarea:focus,
select:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(33, 107, 47, 0.16);
}

textarea {
  min-height: 140px;
  resize: vertical;
}

::placeholder {
  color: var(--color-text-secondary);
}

fieldset {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: var(--space-3);
}

form button[type="submit"] {
  margin-top: var(--space-2);
}
