.basic-form {
    width: 100%;

    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: center;
}

.basic-form > * {
    margin-bottom: 1rem;
}

.basic-form > .form-grid {
    display: grid;
    grid-template-columns: 1fr;
    grid-gap: 0.5rem;
}

.form-grid > label {
    margin-top: auto;
    margin-bottom: auto;
}

.basic-form input[type="text"],
.basic-form input[type="password"],
.basic-form textarea {
    padding: 0.5em;
}

@media (min-width: 700px) {
    .basic-form > .form-grid {
        grid-template-columns: auto 1fr;
    }

    .basic-form input[type="text"],
    .basic-form input[type="password"] {
        min-width: 25em;
    }
}