:root {
    --main-color: rgb(82, 157, 35);
    --white: rgb(255, 255, 255);
    --box-shadow: 2px 4px 6px -3px rgb(0, 0, 0);
    --orange: rgb(255, 140, 0);
}

* {
    box-sizing: border-box;
    padding: 0;
    margin: 0;
}

html {
    height: 100%;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
}

body {
    height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
}

header {
    margin: 1.3rem;
    text-align: center;
}

/*--- GAMEBOARD ---*/
.gameboard-wrapper {
    display: grid;
    justify-items: center;
    grid-template-columns: repeat(3, 1fr);
    grid-template-areas:
    'game-mode game-mode game-mode'
    'game-status game-status game-status'
    'left-side gameboard right-side'
    'left-side game-controls right-side';
    gap: 1.3rem;
}

.game-mode {
    grid-area: game-mode;
}

button.mode {
    padding: 0.8rem 1.5rem 0.8rem 1.5rem;
    border-radius: 10px;
    border: none;
    cursor: pointer;
    background-color: var(--orange);
    color: var(--white);
    font-weight: bold;
}

.game-status {
    grid-area: game-status;
    padding: 1rem;
    width: 21rem;
    border: 1px solid var(--orange);
    border-radius: 5px;
    display: flex;
    justify-content: center;
    word-break: break-all;
    user-select: none;
    font-weight: bold;
}

.gameBoard {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    width: 21rem;
    height: 21rem;
    grid-area: gameboard;
}

.box {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 7rem;
    user-select: none;
    cursor: pointer;
    font-size: 3rem;
}

.box.r {
    border-right: 0.2rem solid var(--orange);
}

.box.b {
    border-bottom: 0.2rem solid var(--orange);
}

/*--- PLAYERS STYLES ---*/
.players {
    width: 10.5rem;
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.player1 {
    grid-area: left-side;
}

.player2 {
    grid-area: right-side;
}

.computer {
    grid-area: right-side;
    visibility: hidden;
    font-weight: bold;
    font-size: 1.3rem;
}

.computer span {
    align-self: center;
}

.player1 label,
.player2 label {
    align-self: center;
    font-weight: bold;
    font-size: 1.3rem;
    word-break: break-all;
}

.players input[type=button] {
    align-self: center;
    padding: 0.5rem 0.8rem 0.5rem 0.8rem;
    border-radius: 10px;
    cursor: pointer;
    width: fit-content;
}

.players input[type=text] {
    padding: .3rem;
    border-radius: 5px;
}

/*--- GAME CONTROLS ---*/
.game-controls {
    grid-area: game-controls;
}

button.new-game {
    padding: 0.8rem 1.5rem 0.8rem 1.5rem;
    border-radius: 10px;
    border: none;
    cursor: pointer;
    background-color: var(--main-color);
    color: var(--white);
    font-weight: bold;
}

button.new-game:hover {
    box-shadow: var(--box-shadow);
}

/* --- FOOTER ---*/
footer {
    position: sticky;
    top: 100vh;
    text-align: center;
    padding: 1.3rem;
}

footer a {
    color: var(--orange);
    text-decoration: none;
}