.grid,
.grid-2col {
    display: grid;
    grid-column: span 2 / span 2;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    padding: 0;
}

.grid-1col {
    grid-column: span 1 / span 1;
    grid-template-columns: repeat(1, minmax(0, 1fr));
}

.grid-3col {
    grid-column: span 3 / span 3;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.grid-4col {
    grid-column: span 4 / span 4;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.grid-5col {
    grid-column: span 5 / span 5;
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.grid-6col {
    grid-column: span 5 / span 5;
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.grid-7col {
    grid-column: span 7 / span 7;
    grid-template-columns: repeat(7, minmax(0, 1fr));
}

.grid-8col {
    grid-column: span 8 / span 8;
    grid-template-columns: repeat(8, minmax(0, 1fr));
}

.grid-9col {
    grid-column: span 9 / span 9;
    grid-template-columns: repeat(9, minmax(0, 1fr));
}

.grid-10col {
    grid-column: span 10 / span 10;
    grid-template-columns: repeat(10, minmax(0, 1fr));
}

.grid-11col {
    grid-column: span 11 / span 11;
    grid-template-columns: repeat(11, minmax(0, 1fr));
}

.grid-12col {
    grid-column: span 12 / span 12;
    grid-template-columns: repeat(12, minmax(0, 1fr));
}

.flex-group-center,
.flex-group-left,
.flex-group-right {
    justify-content: center;
    align-items: center;
    text-align: center;
    padding: 5px;
    border: 1px solid #999;
}

.flex-group-left {
    justify-content: flex-start;
    text-align: left;
}

.flex-group-right {
    justify-content: flex-end;
    text-align: right;
}