.field {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-label);
  min-inline-size: 0;
}

.field__label {
  color: var(--color-text-muted);
  font-size: var(--text-sm);
}

.field__control {
  inline-size: 100%;
  min-block-size: var(--control-h);
  padding: var(--space-1) var(--space-4);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  background: var(--color-surface);
  font-size: var(--text-base);
  text-overflow: ellipsis;
  transition: border-color var(--dur-fast) var(--ease-out);
}

.field__control:focus-visible {
  border-color: var(--color-accent);
}

@media (hover: hover) {
  .field__control:hover {
    border-color: var(--color-border-strong);
  }
}

@media (max-width: 768px) {
  .field__control {
    min-block-size: var(--control-h-touch);
  }
}

.field__control--area {
  min-block-size: 24rem;
  padding: var(--space-3);
  font-family: var(--font-mono);
  font-size: var(--text-sm);
  resize: none;
}

.field__control--short {
  min-block-size: calc(3lh + 2 * var(--space-2));
  padding: var(--space-2) var(--space-4);
  font-size: max(var(--text-base), var(--text-input-min));
  line-height: 1.5;
  field-sizing: content;
  resize: none;
}

.field__control--prose {
  min-block-size: 9rem;
  padding: var(--space-3) var(--space-4);
  font-size: max(var(--text-base), var(--text-input-min));
  line-height: 1.5;
  resize: none;
}

.field__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
  gap: var(--space-field);
}
