.form {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.form__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-md);
}

@media (max-width: 640px) {
  .form__row {
    grid-template-columns: 1fr;
  }
}

.form__field, .field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.form__label, .field__label {
  font-size: var(--fs-sm);
  font-weight: 500;
  color: var(--color-text);
}

.field--required .form__label::after,
.field--required .field__label::after {
  content: ' *';
  color: var(--color-price);
}

.form__input,
.form__textarea,
.form__select {
  width: 100%;
  padding: 10px 14px;
  font-family: var(--font-body);
  font-size: var(--fs-md);
  line-height: 1.4;
  color: var(--color-text);
  background-color: var(--color-surface);
  border: var(--border-width) solid var(--color-border);
  border-radius: var(--radius-sm);
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.form__textarea {
  min-height: 120px;
  resize: vertical;
}

.form__input:focus,
.form__textarea:focus,
.form__select:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 2px rgba(0, 160, 70, 0.15);
}

.field--error .form__input,
.field--error .form__textarea,
.field--error .form__select {
  border-color: var(--color-price);
}

.field--error .form__input:focus,
.field--error .form__textarea:focus {
  box-shadow: 0 0 0 2px rgba(230, 42, 64, 0.15);
}

.form__error {
  font-size: var(--fs-sm);
  color: var(--color-price);
}

.form__hint {
  font-size: var(--fs-xs);
  color: var(--color-text-muted);
}

.form__actions {
  display: flex;
  gap: var(--space-sm);
  margin-top: var(--space-md);
}

.form__checkbox,
.form__radio {
  display: inline-flex;
  align-items: center;
  gap: var(--space-sm);
  font-size: var(--fs-sm);
  cursor: pointer;
}

.form__checkbox input,
.form__radio input {
  margin: 0;
  cursor: pointer;
}
