.field {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}

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

.field__hint {
  color: var(--color-text-subtle);
  font-size: var(--text-xs);
}

.field__error {
  color: var(--color-danger-text);
  font-size: var(--text-xs);
}

.input,
.select {
  width: 100%;
  padding: var(--space-2) var(--space-3);
  border: var(--border-width) solid var(--color-border-strong);
  border-radius: var(--radius-md);
  background-color: var(--color-surface);
  color: var(--color-text);
  font-size: var(--text-base);
  transition:
    border-color var(--transition-fast),
    box-shadow var(--transition-fast);
}

.input:focus,
.select:focus {
  border-color: var(--color-primary);
  outline: none;
  box-shadow: var(--focus-ring);
}

.input--invalid {
  border-color: var(--color-danger);
}

.input--code {
  font-family: var(--font-mono);
  font-size: var(--text-lg);
  letter-spacing: var(--tracking-code);
}

.input--duration {
  width: var(--input-width-duration);
  font-family: var(--font-mono);
  text-align: right;
}

.checkbox {
  width: var(--checkbox-size);
  height: var(--checkbox-size);
  accent-color: var(--color-primary);
}

.form_errors {
  padding: var(--space-3);
  border: var(--border-width) solid var(--color-danger);
  border-radius: var(--radius-md);
  background-color: var(--color-danger-subtle);
  color: var(--color-danger-text);
  font-size: var(--text-sm);
}

.form_errors__list {
  margin: 0;
  padding-left: var(--space-4);
}

.document_upload {
  display: grid;
  align-items: center;
  gap: var(--space-2);
  grid-template-columns: minmax(12rem, 18rem) minmax(0, 1fr) auto;
}

@media (width <= 40rem) {
  .document_upload {
    grid-template-columns: minmax(0, 1fr);
  }
}
