:host {
  display: block;
}

.hb-form-item {
  display: flex;
  align-items: flex-start;
  gap: var(--hb-spacing-sm);
}

.hb-form-item__label {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  height: var(--hb-size-default);
  font-size: var(--hb-font-size-sm);
  color: var(--hb-color-text);
  white-space: nowrap;
  flex-shrink: 0;
}

.hb-form-item__required {
  color: var(--hb-color-danger);
  margin-right: 4px;
}

.hb-form-item__content {
  flex: 1;
  position: relative;
}

.hb-form-item__error {
  font-size: var(--hb-font-size-xs);
  color: var(--hb-color-danger);
  margin-top: 4px;
  line-height: 1;
  animation: hb-form-error-fade-in 0.2s ease-out;
}

@keyframes hb-form-error-fade-in {
  from { opacity: 0; transform: translateY(-4px); }
  to   { opacity: 1; transform: translateY(0); }
}
