/**
 * Form field pattern v2 (Phase 1, new). Coexists with forms.css during the
 * migration window — a page adopts .field/.field__* wholesale when touched,
 * never mixes .form-* and .field__* on the same input.
 */

.field {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-1-5);
  margin-bottom: var(--spacing-4);
}

.field__label {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: var(--color-text-default);
}

.field__label .required {
  color: var(--color-danger);
  margin-left: var(--spacing-half);
}

.field__input {
  height: 2.25rem; /* 36px default */
  padding: 0 var(--spacing-3);
  font-size: var(--font-size-base);
  font-family: var(--font-family-sans);
  color: var(--color-text-strong);
  background: var(--bg-elevated);
  border: 1px solid var(--border-default);
  border-radius: var(--radius-control);
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.field__input:focus {
  outline: none;
  border-color: var(--color-brand);
  box-shadow: var(--focus-ring);
}

.dark .field__input:focus {
  box-shadow: var(--focus-ring-dark);
}

.field__input--touch {
  height: 2.75rem; /* 44px — touch target */
}

.field__textarea {
  height: auto;
  min-height: 5rem; /* 80px, matches .tf-textarea's prior min-height */
  padding: var(--spacing-2) var(--spacing-3);
  font-size: var(--font-size-base);
  font-family: var(--font-family-sans);
  color: var(--color-text-strong);
  background: var(--bg-elevated);
  border: 1px solid var(--border-default);
  border-radius: var(--radius-control);
  line-height: var(--line-height-normal);
  resize: vertical;
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.field__textarea:focus {
  outline: none;
  border-color: var(--color-brand);
  box-shadow: var(--focus-ring);
}

.dark .field__textarea:focus {
  box-shadow: var(--focus-ring-dark);
}

.field__input--auto {
  background: var(--bg-tertiary);
  font-family: var(--font-family-mono);
  font-weight: var(--font-weight-semibold);
  color: var(--color-brand);
  cursor: default;
}

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

.field--error .field__input {
  border-color: var(--color-danger);
}

.field__error {
  display: flex;
  align-items: center;
  gap: var(--spacing-1);
  font-size: var(--font-size-xs);
  color: var(--color-danger);
}

.field__error i { font-size: 0.75em; }

.field__input:disabled {
  background: var(--bg-tertiary);
  color: var(--color-text-disabled);
  box-shadow: none;
  cursor: not-allowed;
}
