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

.label {
  font-size: var(--text-sm);
  font-weight: var(--fw-semibold);
  color: var(--ppt-text);
  display: flex;
  align-items: center;
  gap: var(--space-1);
}

.required {
  color: var(--ppt-danger);
  font-size: var(--text-base);
  line-height: 1;
}

.hint {
  font-size: var(--text-xs);
  color: var(--ppt-text-subtle);
  margin: 0;
  line-height: var(--lh-relaxed);
}

.error {
  font-size: var(--text-xs);
  color: var(--ppt-danger);
  margin: 0;
  display: flex;
  align-items: center;
  gap: var(--space-1);
}

.inputError {
  border-color: var(--ppt-danger) !important;
  background-color: #fff8f8;
}

.hasError .label { color: var(--ppt-danger); }
