///
/// Form Control
///
.o-form-ctrl {

  // Define a mesma altura dos inputs quando o campo estiver
  // em formato somente leitura no Zeev BPMS ou em campos
  // anexo com arquivo já definido
  // Ex. <div xid="meuid">Valor do campo</div>
  div[xid] {
    display: inline-flex;
  }

  // Oculta o `o-form-ctrl` quando não houver nada renderizado
  // no container, previnindo exibir ícones ou elementos que
  // possam acompanhar o `o-form-ctrl`
  &:empty {
    display: none;
  }

  // Adiciona espaçamento entre campos de formulário.
  // O espaçamento é adicionado diretamente aos controles
  // HTML para evitar "espaços fantasmas" quando não houver
  // campos renderizados no `o-form-ctrl` por conta da
  // configuração de visibilidade do campo no Zeev BPMS
  &:not(.-gapless) {
    input,
    textarea,
    select,
    .o-radio-cards {
      margin-bottom: $space-8;
    }
  }

  &.-gapless {
    > * { margin-bottom: 0; }
  }

  &.-full {
    min-width: 100%;

    select,
    textarea,
    input[type=text],
    .o-input {
      width: 100% !important;
    }
  }

  ///
  /// Validation States
  ///
  &.-success,
  &.-error {
    & + .o-form-hint:before {
      font-family: $font-icons;
      font-weight: 900;
      font-size: $font-sm;
      margin-right: 1px;
    }
  }

  &.-success {
    @include ctrl-success;
  }

  &.-error {
    @include ctrl-error;
  }
}
