* {
    --clr-white: white;
    --clr-almost-white: whitesmoke;
    --clr-light-gray: silver;
    --clr-medium-gray: darkgray;
    --clr-dark-gray: dimgray;
    --clr-red: indianred;
    --clr-green: seagreen;
    --clr-blue: lightsteelblue;

    font-family: sans-serif;

    box-sizing: border-box;
    user-select: none;
}

body {
    margin: 0;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background-color: var(--clr-almost-white);
}

main {
    flex: 1;
    display: grid;
    place-items: center;
    gap: 2rem;
}

.boards {
    display: flex;
    gap: calc(min(7.5vw, 10rem));
}

.side {
    display: grid;
    place-items: center;
    color: var(--clr-dark-gray);
    gap: 2rem;
}

.side__name {
    text-align: center;
    font-size: 1.5rem;
    font-weight: bold;
}

.board {
    display: grid;
    grid-template-columns: repeat(10, 1fr);
    gap: 0.1rem;
}

.cell {
    aspect-ratio: 1;
    height: 2rem;
    border: 1px solid var(--clr-medium-gray);
}

.cell--clickable:hover {
    cursor: crosshair;
    border-color: var(--clr-dark-gray);
}

.cell--player {
    border-color: var(--clr-green);
    background-color: var(--clr-green);
}

.cell--water {
    border-color: var(--clr-blue);
    background-color: var(--clr-blue);
}

.cell--hit {
    border-color: var(--clr-red);
    background-color: var(--clr-red);
}

.cell--sunk {
    border-color: var(--clr-medium-gray);
    background-color: var(--clr-medium-gray);
}

.ships {
    max-width: 20rem;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .5rem .5rem;
}

.ship {
    display: flex;
    gap: .1rem;
}

.ship--sunk .square {
    background-color: var(--clr-light-gray) !important;
}

.square {
    aspect-ratio: 1;
    height: 1.25rem;
}

#player-ships .square {
    background-color: var(--clr-green);
}

#computer-ships .square {
    background-color: var(--clr-red);
}

.game-over-dialog {
    border: 1px solid var(--clr-dark-gray);
    border-radius: 15px;
    background-color: rgba(255, 255, 255, .9);
}

.game-over-message {
    padding-bottom: 3rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.5rem;
}

.result {
    margin: 2rem 6rem;
    font-size: 2rem;
    font-weight: bold;
    color: var(--clr-dark-gray);
}

button {
    cursor: pointer;

    &:focus {
        outline: none;
    }
}

.close-button {
    align-self: flex-end;
    border: 0;
    padding: 0 .25rem;
    font-size: 1.25rem;
    font-weight: bold;
    color: var(--clr-medium-gray);
    background-color: transparent;

    &:hover {
        color: var(--clr-dark-gray);
    }
}

.new-game-button {
    padding: .5rem 1.5rem;
    font-size: 1rem;
}

footer {
    padding: .5rem;
    width: 100%;
    display: flex;
    justify-content: space-between;
    color: var(--clr-light-gray);

    a {
        color: inherit;
        text-decoration: none;

        &:hover {
            color: var(--clr-medium-gray);
        }
    }
}

.links {
    display: flex;
    gap: 1.5rem;
}
