/*Structure styling as follows: 
    position and display of *this* element

    box model (margin, padding, etc.)

    Size, color, text-color

    Positioning of child elements

    Need: find a better font
        settings looks ugly rn
        endless mode line animation
*/

/*everything*/
* {
    margin: 0px;
    color: white;
}

/*main structure*/
body {
    height: 100%;
    position: fixed;

    display: flex;
    flex-direction: column;
    
    overflow-y: scroll;
}
body::-webkit-scrollbar {
  display: none;
}
header {
    height: 12vh;
    background-color: rgb(10,10,10);

    border-bottom: 1px solid orangered;

    display: flex;
    flex-direction: row;
    justify-content: flex-start;
    align-items: center;
}
main {
    flex-grow: 1;

    background-color: rgb(20, 20, 20);
    width: 100vw;
}
footer {
    height: 5vh;
    background-color: rgb(10,10,10);

    display: flex;
    flex-direction: row;
    align-items: center;
}
section {
    padding: 30px;

    display: flex;
    flex-direction: column;
    justify-content: center;
    flex-direction: center;
}
#homepageMain {
    display: flex;
    flex-direction: row;
    justify-content: flex-start;
    align-items: center;
}
#settingsMain {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
}
#examSettings {
    width: 15vw;

    border-left: 1px solid orangered;
}
#examBox {
    flex-grow: 1;

    height: 100%;
    width: 75vw;
}
#statsBox {
    width: 20vw;

    border-right: 1px solid orangered;
}
#statsBox p {
    margin: 10px 0;
}
#examHolder {
    flex-grow: 1;
    width: 90%;
    align-self: center;

    padding: 20px;

    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: center;
    flex-wrap: wrap;
}
#examText {
    flex-shrink: 1;

    margin-bottom: 40px;

    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
}
.keyDisplay {

    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}
#homeKeyDisplay {
    margin-bottom: 100px;
}
.keyDisplay div {
    display: flex;
    flex-direction: row;
    justify-content: flex-start;
    align-items: center;
}

/*smaller elements*/
#examSettings > div {
    margin: 10px;
}
#examText div {
    display: flex;
    line-height: 1;
    font-size: 30px;
}
#examText #makeExamButton, #examText #endlessModeButton {
    margin: 15px 10px 0 10px;
    border: 2px solid orangered;
    border-radius: 5px;
    padding: 5px;

    background-color: black;
    font-size: 18px;
}
h1 {
    flex-grow: 1;

    margin: 10px 30px;

    font-size: 2vw;
}
header a,footer p{
    flex-shrink: 1;

    margin: 20px 40px 0 0;
}
.keyDisplay p {
    margin: 2px;
    padding: 4px;
    border-radius: 3px;

    width: 22px;
    height: 22px;
    font-size: 14px;

    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
}
#keyFocus {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
}
#targetedKeyButton, #howManyWords {
    margin: 3px;
    border: 1px solid orangered;
    border-radius: 3px;
    padding: 4px;
    
    width: 1em;
    background-color: black;
    text-indent: 0;

    display: flex;
    justify-content: center;
    align-items: center;
}

/*classes*/
.none, .fade {
    background-color: rgb(95, 95, 95);
    border: 1px solid white;
}
.fade {
    opacity: 0.6;
}
.silver {
    background-color: silver;
    border: 1px solid rgb(121, 121, 121);
}
.gold {
    background-color: gold;
    border: 1px solid yellow;
}
.diamond {
    background-color: aqua;
    border: 1px solid blue;
}
.slider {
    background-color: black;
    border-radius: 4px;

    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
}
.dropDown {
    display: none;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
}
.slider .button {
    margin-left: 15px;
}
.button, button, .switch, .sliderButton {
    margin: 3px;
    border: 1px solid orangered;
    border-radius: 3px;
    padding: 4px;
    
    min-width: 1em;
    min-height: 1em;
    background-color: black;

    display: flex;
    justify-content: center;
    align-items: center;
}
.selectorBoxHeader {
    width: 100%;

    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
}

/*virtual keyboard*/
.keyDisplay #Backspace {
    width: 55px;
}
.keyDisplay #Backquote {
    width: 14px;
}
.keyDisplay #Tab {
    width: 39px;
}
.keyDisplay #Backslash {
    width: 31px;
}
.keyDisplay #CapsLock {
    width: 50px;
}
.keyDisplay #Enter {
    width: 56px;
}
.keyDisplay #ShiftLeft, .keyDisplay #ShiftRight {
    width: 71px;
}
.keyDisplay #Space {
    width: 186px;
}  
.keyDisplay #HoldRight {
    width: 100px;
}