/* User Valid/Invalid */
input { outline-color: var(--bs-border-color); }
input:user-valid { outline: 2px solid var(--bs-success); }
input:user-invalid { outline: 2px solid var(--bs-danger); }

/* Flex & Grid - Center */
.flex-center {
    display: flex;
    align-items: center;
    justify-content: center;
}
.place-items-center {
    display: grid;
    place-items: center;
}
.full-screen { height: 100%; }
.full-size { width: 100%; height: 100%; }

.pointer { cursor: pointer; }

.footer-grid-autofit {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 1rem;
}

.flex-1 { flex: 1; }