* {
    margin: 0;
}

/*  Content Wrappers
    Used in lobby and game for dice

*/
.contentWrapper {
    display: flex;
    align-items: center;
    justify-content: flex-start;
}

.centerWrapper {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100vh;
}

.verticalWrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.horizontalWrapper {
    display: flex; 
    justify-content: center;
}

.centerWrapper .contentBox {
    background-color: #404040;
    width: 450px;
    border-style: solid;
    border-radius: 10px;
    display: flex;
    justify-content: center;
    align-items: center;
}

.gridWrapper {
    display: grid;
    height: 100vh;
    grid-template-columns: 190px 1fr;
    width: clamp(500px, 60vw, 800px);
    grid-template-rows: auto;
    margin: 0 auto;
    gap: 20px;
}

/* Holds every element related to the game */
#gameContentBox {
    background-color: #404040;
    width: auto;
    height: 380px;
    
    border-style: solid;
    border-radius: 10px;
    display: flex;
    justify-content: center;
    align-items: center;
}

/*  Makes game elements stack vertically when screen is too small
    and changes lobby elements to stack
*/
@media (max-width: 700px)  {
    /* Game CSS */
    #gameContentBox {
        flex-direction: column;
        height: auto;
    }

    .diceImage {
        width: 60px !important;
    }

    .diceContainer {
        margin-bottom: 10px !important;
    }

    .keepDiceButton {
        width: 55px;
        padding-left: 0px !important;
        padding-right: 0px !important;
        margin-right: 15px !important;
    }

    .keepDiceButtonLower {
        width: 55px;
        padding-left: 0px !important;
        padding-right: 0px !important;
        margin-right: 15px !important;
        margin-top: -13px !important;
    }

    #gameInformationVBox {
        height: 150px !important;
    }
    
    /* Lobby CSS */
    .contentBox {
        flex-direction: column;
    }

    .centerWrapper .contentBox {
        width: auto;
    }

    #roomDisplayBox {
        background-color: darkgray;
        border-left: 0px solid;
        border-top-right-radius: 0px;
        border-bottom-left-radius: 10px;
        border-top: 4px solid;
        overflow-y: auto;
    }

    /* Instructions page */
    .gridWrapper {
        transform: translate(0%);
        transition: .2s;
        width: 100vw;
        grid-template-columns: 160px 1fr;
    }

    .sideBar {
        width: 160px !important;
    }
}

/* Puts a box around the game information and dice */
.gameElementWrapper {
    background-color: white;
    border-style: solid;
    border-width: 4px;
    padding: 7px;
    margin: 0px 10px;
    border-radius: 10px;
}

/*  Navigation bar 

*/

nav {
    background-color: #404040;
    margin-bottom: 10px;
    box-shadow: 0px -10px 100px black;
    top: 0;
    left: 0;
    margin: 0;
    padding: 0;
    z-index: 1;
    position: sticky;
}

nav ul {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    justify-content: flex-end;
}

nav li {
    height: 35px;
}

nav a {
    text-decoration: none;
    height: 100%;
    padding: 0 20px;
    display: flex;
    align-items: center;
    color: aliceblue;
    transition: 0.2s;
}

nav li:first-child {
    margin-right: auto;
}

nav a:hover{
    background-color: black;
}

nav img {
    transition: 1s;
    width: 30px;
    height: 70%;
}

nav img:hover {
    width: 100px;
}

nav button {
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0px;
    margin-left: 6px;
    padding: 5px;
    background-color: #404040;
    color: aliceblue;
    font-family: cursive;
}

/*  Side bar
*/

.sideBar {
    display: flex;
    justify-content: center;
    height: 100vh;
    width: 190px;
    border-right: solid #404040;
    border-left: solid #404040;
}

.sideBarElement ul:first-child{
    margin-top: 50px;
}

.sideBarElement a {
    text-decoration: none;
    padding: 5px 20px;
    display: flex;
    align-items: center;
    color: black;
    transition: 0.2s;
}

.sideBarElement a:hover {
    background-color: lightgray;
}


.sideBarElement li{
    list-style: none;
    position: relative;
    right: 20px;
}

.sideBarElement h3 {
    margin-top: 20px;
    margin-left: 23px;
    margin-bottom: 10px;
    text-decoration: underline;
}

.mainContent {
    grid-column-start: 2;
    grid-row-start: 1;
    display: flex;
    margin-left: 5px;
    overflow-y: auto;
    width: auto;
    word-wrap: break-word;
    border-right: solid #404040;
}

.mainContentSection {
    margin-top: 10px;
    margin-bottom: 30px;
}

.mainContentSection h1 h2 h3 p {
    word-wrap: break-word;
    max-width: auto;
}

.mainContentSection h1 {
    font-size: 30px;
    line-height: 35px;
    margin-bottom: 10px;
}

.mainContentSection h2 {
    font-size: 25px;
    line-height: 30px;
    margin-left: 5px;
    margin-bottom: 5px;
    margin-top: 20px;
}

.mainContentSection img {
    margin-top: 10px;
    margin-bottom: 10px;
}

.mainContentSection p {
    margin-left: 5px;
    margin-right: 5px;
    line-height: 30px;
    font-size: 20px;
}

.mainContentSection .noteBox {
    height: fit-content;
    background-color: darkgray;
    border-left: solid;
    padding: 7px;
    margin: 15px 0px;
    border-radius: 2px;
}

p {
    color: black;
}

img {
    padding: 5px;
}

body {
    background-color: gray;
}

button {
    display: block;
    margin-top: 5px;
    background-color: gray;
}

#leaveRoomButton {
    position: absolute;
    
}

input { 
    max-width: 190px;
    background-color: white;
    height: 20px;
    border-radius: .5rem;
    transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1);
}

/* Lobby CSS */
#inputContainer {
    /* background-color: #404040; */
    padding: 10px;
    position: relative;
    width: 200px;
    
}

#inputContainer p {
    color: aliceblue;
    font-size: 20px;
}

#inputContainer button {
    width: 110px;
}

.roomDisplayBox{
    width: 220px;
    height: 160px;
    padding: 5px;
    
    background-color: darkgray;
    border-left: 4px solid;
    border-top-right-radius: 10px;
    border-bottom-right-radius: 10px;
    overflow-y: auto;

    display: flex;
    flex-direction: column;
    align-items: center;
}

.roomDisplayBox p {
    display: block;
    color: black;
    margin: 0;
}

.roomDisplayBox u {
    display: block;
}

/* .roomDisplayBox:hover{
    transform: scale(1.05);
    background-color: maroon;
} */


/* Game Page CSS */
/* Gives margin to dice */
.diceContainer {
    margin-bottom: 30px;
}

.diceImage {
    width: 66px;
}

#extraDiceBox {
    display: none;
}

.keepDiceButton {
    background-color: LightGray;
    padding-left: 15px;
    padding-right: 15px;
    margin-left: 5px;
    margin-right: 11px;
    margin-bottom: 1px;
}

.keepDiceButtonLower {
    background-color: LightGray;
    padding-left: 15px;
    padding-right: 15px;
    margin-left: 5px;
    margin-right: 11px;
    margin-top: -40px;
}

#turnDisplay {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 200px;
    height: 10px;
    padding: 20px;
    margin-bottom: 10px;
    background-color: darkgray;
    border-style: solid;
    border-radius: 10px;
}

#turnDisplay p {
    margin: 0;
    font-size: 20px;
}

#gameInformationVBox {
    border: #404040 ;
    border-style: solid;
    width: 200px;
    height: 200px;
    padding: 20px;
    margin-bottom: 10px;
    background-color: darkgray;
    border-radius: 0px;
    overflow-y: auto;
}

#gameInformationVBox p {
    height: 25px;
    margin-left: 5px;
    margin-bottom: 10px;
    font-size: 20px;
    border: #404040 ;
    border-style: solid;
    border-radius: 10px;
    padding-left: 10px;
    background-color: white;
}

#clientCount {
    font-size: large;
}



