*{
    box-sizing: border-box;
    margin: 0px;
    padding: 0px;
    -webkit-user-select:none;
    user-select:none;
    font-family: 'Courier New', Courier, monospace;
}

body{
    display: flex;
    flex-direction: column;
    width: 100vw;
    height: 100vh;
    justify-content: center;
    align-items: center;
    background: #2b2b2b;
}

.mainWrapper{
    border: solid grey 1px;
    width: 500px;
    height: 500px;
    border-radius: 5px;
}

.modePick{
    display: flex;
    width: 100%;
    height: 50px;
    flex-flow: row nowrap;
    justify-content: center;
    align-items: center;
    gap: 20px;
    font-size: 1.2rem;
    color: #ccc;
}

.checkbox{
    height: 40px;
    width: 80px;
    background: #222;
    appearance: none;
    border-radius: 160px;
    box-shadow: inset 0 8px 60px rgba(0,0,0,0.1),
                inset 0 8px 8px rgba(0,0,0,0.1),
                inset 0 -4px 4px rgba(0,0,0,0.1);
    position: relative;
    outline: none;
    cursor: pointer;
    transition: 0.5s;  
              
}

.checkbox::before{
    height: 160px;
    width: 160px;
    position: absolute;
    top: -60px;
    left: -60px;
    content: "";
    background: linear-gradient(to bottom,#444,#222);
    border-radius: 160px;
    transition: 0.5s;
    box-shadow: 0 8px 40px rgba(0,0,0,0.5),
                inset 4px 4px rgba(255,255,255,0.2),
                inset -4px 4px rgba(255,255,255,0.2);
    transform: scale(0.2);
}

.checkbox:checked{
    box-shadow: inset 0 2px 60px rgba(0,0,0,0.1),
                inset 0 2px 8px rgba(0,0,0,0.1),
                inset 0 -4px 4px rgba(0,0,0,0.05);
}

.checkbox:checked::before{
    left: -20px;
}

.checkbox::after{
    content: "";
    position: absolute;
    height: 100vh;
    width: 100vw;
    background: #2b2b2b;
    top: -60px;
    left: -60px;
    z-index: -1;
    transform: translate(-50%,-50%);
    transition: 0.5s;
}

.inputsWrapper{
    display: flex;
    width: 100%;
    height: 350px;
    flex-direction: column;
    gap: 20px;
    justify-content: flex-start;
    align-items: center;
    margin-top: 20px;
}

.numberInput{
    width: 350px;
    height: 30px;
    padding: 2px;
    outline: none;
    background-color: #ccc;
    color: #2b2b2b;
}

.textInput{
    width: 350px;
    height: 200px;
    resize: none;
    padding: 2px;
    outline: none;
    background-color: #ccc;
    color: #2b2b2b;
}

.controlWrapper{
    width: 100%;
    height: 50px;
    display: flex;
    justify-content: center;
    align-items: center;
}

.scrambleButton{
    width: 200px;
    height: 50px;
    border-radius: 5px;
    font-size: 1.2rem;
    background-color: #ccc;
    color: #2b2b2b;
}

.dbEntriesWrapper{
    display: flex;
    width: 100%;
    height: 428px;
    flex-direction: column;
    gap: 5px;
    justify-content: flex-start;
    align-items: center;
    margin-top: 20px;
    border-radius: 4px;
}

.hidden{
    display: none;
}

.dbEntry{
    border: solid #ccc 1px;
    color: grey;
    width: 95%;
    height: 60px;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 20px;
    padding-left: 10px;
    transition: ease-in-out 0.3s;
}

.dbEntry:hover{
    color: #2b2b2b;
    background-color: #ccc;
    cursor: pointer;
}

.decipherOutput{
    border: solid grey 1px;
    width: 500px;
    height: 200px;
    margin-top: 20px;
    border-radius: 5px;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    padding: 5px;
    gap: 10px;

}

.keyOutput{
    width: 100%;
    height: 30px;
    display: flex;
    flex-flow: row nowrap;
    justify-content: flex-start;
    align-items: center;
    color: #ccc;
}
.textOutput{
    width: 100%;
    height: 110px;
    color: #ccc;
}

.primeList{
    display: flex;
    flex-flow: row wrap;
    justify-content: flex-start;
    align-items: flex-start;
    width: 500px;
    height: auto;
    color: #ccc;
}
