.formulario {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.formulario__grade {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(200px, 100%), 1fr));
  gap: 18px;
}

.formulario__campo {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.formulario__rotulo {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--areia-suave);
}

.formulario__entrada {
  width: 100%;
  min-height: 48px;
  padding: 0 14px;
  border: 1px solid var(--obsidiana-borda);
  border-radius: var(--raio-pequeno);
  background: var(--obsidiana-elevada);
  color: var(--areia);
  font-size: 1rem;
  transition: border-color var(--duracao-transicao);
}

.formulario__entrada::placeholder {
  color: var(--areia-apagada);
}

.formulario__entrada:hover {
  border-color: var(--areia-apagada);
}

.formulario__entrada:focus {
  outline: 2px solid var(--magma);
  outline-offset: 2px;
}

.formulario__entrada:user-invalid {
  border-color: var(--magma);
}

.formulario__selecao {
  appearance: none;
  padding-right: 44px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23C9C4BD' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  background-size: 18px;
  cursor: pointer;
}

.formulario__texto-longo {
  padding-block: 12px;
  line-height: 1.5;
  resize: vertical;
}

.formulario__erro {
  padding: 12px 14px;
  border-left: 3px solid var(--magma);
  border-radius: var(--raio-pequeno);
  background: var(--obsidiana-elevada);
  font-size: 0.9375rem;
}

.formulario__aviso {
  font-size: 0.8125rem;
  color: var(--areia-suave);
}

.formulario__armadilha {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  opacity: 0;
}
