@layer brand, theme, normalize;

main {
  display: grid;

  width: 100%;
}

form {
  display: grid;
  place-self: center;
  grid-gap: 1rem;

  width: 100%;
  max-width: 480px;

  label {
    display: grid;
    grid-auto-flow: row;
    place-self: center;

    padding: 0;
    width: 100%;
  }

  input {
    border: 1px solid var(--shadow-100);
    border-radius: 8px;
    padding: 12px;
  }

  input:focus,
  select:focus {
    outline: 1px solid var(--apex-orange);
    border: 1px solid var(--apex-orange);
  }

  button {
    place-self: center end;

    border: 0;
    border-radius: 8px;
    background-color: var(--apex-blue);
    padding: 16px;
    width: max-content;

    color: white;
  }

  .message {
    opacity: 1;
    transition: opacity 400ms linear;
    border: 1px solid;
    border-radius: 8px;
    padding: 12px;

    text-align: center;
  }

  .hidden {
    opacity: 0;
  }

  .message {
    border-color: var(--signal-blue);
    background-color: var(--signal-blue-90);
    color: var(--signal-blue);
  }

  .message.error {
    border-color: var(--signal-red);
    background-color: var(--signal-red-90);
    color: var(--signal-red);
  }
}
