.container {
    padding: 0;
    border-radius: 5px;
    margin: 0 auto;
    border: 1px solid black;
    width: fit-content;
    display: grid;
    position: relative;
    grid-template-columns: repeat(13, 1fr);
    grid-template-rows: repeat(18, 1fr);
    background-color: #00000000;
}

.container.shake {
    --dx: 0px;
    --dy: 0px;
    animation: shake 0.05s;
}

.block {
    display: inline-flex;
    width: 50px;
    height: 50px;
    padding: 0;
    margin: 0;
    align-items: center;
}

.reserved {
    background-color: var(--reserved-color);
    background-image: var(--reserved-bg);
    background-position: center;
    background-size: contain;
background-repeat: no-repeat;
}

.free {
    background-color: var(--free-color);
    background-image: var(--free-bg);
    background-position: center;
    background-size: contain;
background-repeat: no-repeat;
}

.visited {
    background-color: var(--visited-color);
    background-image: var(--visited-bg);
    background-position: center;
    background-size: contain;
background-repeat: no-repeat;
}

.player {
    background-color: var(--player-color);
    background-image: var(--player-bg);
    background-position: center;
    background-size: contain;
    background-repeat: no-repeat;
    width: 50px;
    height: 50px;
}

button {
    padding: 10px 18px;
    border: none;
    background: #4f46e5;
    color: white;
    border-radius: 8px;
    cursor: pointer;
    font-size: 14px;
    transition: 0.2s;
}

button:hover {
    background: #615be4;
    animation: btn-ani 0.5s;
}

.header {
    position: relative;
    background: #ffffff;
    padding: 20px 30px;
    border-radius: 12px;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
    display: flex;
    flex-direction: row;
    gap: 15px;
    align-items: center;
    margin: 5px auto 50px auto;
    width: 50%;
}

select {
    background-color: unset;
    border: unset;
}

@keyframes btn-ani {

    0%,
    100% {
        box-shadow: 5px 0 5px #00000055;
    }

    25% {
        box-shadow: 0 5px 5px #00000055;
    }

    50% {
        box-shadow: -5px 0 5px #00000055;
    }

    75% {
        box-shadow: 0 -5px 5px #00000055;
    }
}



@keyframes shake {
    0% { transform: translate(0, 0); }
    30% { transform: translate(var(--dx), var(--dy)); }
    60% { transform: translate(calc(var(--dx) * -0.5), calc(var(--dy) * -0.5)); }
    100% { transform: translate(0, 0); }
}