Просто измените этот CSS и вы закончите с наилучшим возможным способом ... с
.grid > * > *{
grid-template-columns: repeat(auto-fill, minmax(35px, 1fr));
}
до
.grid > * > *{
grid-template-columns: repeat(auto-fit, minmax(35px, 1fr));
}
.grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
grid-gap: 10px;
border: 2px red solid;
}
.grid > * > * {
border: 2px blue dashed;
display: grid;
grid-auto-rows: auto;
}
.grid > * > * > * {
border: 1px green dashed;
}
.grid > * > * {
grid-template-columns: repeat(auto-fit, minmax(35px, 1fr));
}
<div class="grid">
<div>
<div>
<div>1</div>
<div>1</div>
</div>
</div>
<div>
<div>
<div>2</div>
<div>2</div>
<div>2</div>
<div>2</div>
<div>2</div>
<div>2</div>
<div>2</div>
</div>
</div>
<div>
<div>
<div>3</div>
<div>3</div>
<div>3</div>
<div>3</div>
<div>3</div>
<div>3</div>
</div>
</div>
<div>
<div>
<div>4</div>
<div>4</div>
<div>4</div>
<div>4</div>
<div>4</div>
</div>
</div>
</div>