/* font */
a, p, h1, h2, h3, h4, h5, text, lable, select, ul, li{
    font-family: 'Segoe UI';
}

/* header */
.header h1{
    font-weight: 300;
}
.header{
    text-align: center;
}

/* hide buttons by number inputs */
input[type=number]::-webkit-inner-spin-button, 
input[type=number]::-webkit-outer-spin-button { 
  -webkit-appearance: none; 
}

input[type=number] {
  -moz-appearance: textfield;
}

body{
    background-color: #f8f8f8;
}
.sudoku-container input{
    width: 24px;
    height: 24px;
    border-radius: 0px;
    border: 1px solid lightgrey;
    text-align: center;
    font-size: 17px;
    color: #383838;
}

.sudoku-container{
    display: block;
    position: relative;
    user-select: none;
    width: fit-content;
    margin: auto;
}
.sudoku{
    margin: auto;
    width: 273px; /* for IE */
    width: fit-content;
    width: -moz-fit-content;
    min-width: 273px;
}
.button-container{
    text-align: center;
    padding-top: 25px;
    padding-bottom: 15px;
}
.sudoku-button{
    border: 1.5px solid #d6d6d6;
    width: 112px;
    height: 32.5px;
    white-space: nowrap;
    margin-bottom: 8px;
    border-radius: 4px;
    font-size: 15px;
    transition: background-color .2s;
}
.ghost-button{
    visibility: hidden;
    width: 55px;
}
.sudoku-button:hover{
    cursor: pointer;
}
#buttonSolve{
 background-color: #f2fff0;
}
#buttonClear{
    background-color: #fff4f0;
}
#buttonSeed{
    background-color: #f0f5ff;
}
#buttonpencil{
    width: 130px;
}
#buttonCamera, #buttonpencil{
    background-color: #f2f2f2;
}
#buttonSeed2{
    background-color: #f0f5ff;
}
#buttonPuzzle{
    background-color: #fffaf0;
}
#buttonrandom{
    background-color: #fffff0;
    width: 153px;
}

#buttonSolve:hover{
    background-color: #cdffc6;
}
#buttonClear:hover{
    background-color: #ffd0bf;
}
#buttonSeed:hover,#buttonSeed2:hover{
    background-color: #bdd3ff;
}
#buttonpencil:hover, #buttonCamera:hover{
    background-color: #d0d0d0;
}
#buttonrandom:hover{
    background-color: #ffffc4;
}

.progress-container{
    text-align: center;
}
input[row="3"], input[row="6"], input[row="9"]{
    border-bottom: 1.5px solid #898989;
}
input[col="3"], input[col="6"], input[col="9"]{
    border-right: 1.5px solid #898989;
}
input[col="1"]{
    border-left: 1.5px solid #898989;
}
input[row="1"]{
    border-top: 1.5px solid #898989;
}
input:focus{
    border: 1px solid rgb(255, 123, 0);
    outline: 0px;
}
.pencil-mark{
    position: absolute;
    font-size: 9px;
    margin-left: -29px;
    color: #8c8c8c;
    width: 25px;
    height: 27px;
    overflow-wrap: break-word;
    overflow: hidden;
    pointer-events: none;
}
.seed{
    margin: auto;
    font-size: 11px;
    padding-top: 15px;
    padding-bottom: 15px;
    max-width: 200px;
    display: block;
    clear: both;
    overflow-wrap: break-word;
}
.info-container{
    width: 100%;
    padding-top: 5px;
    height: 143px;
    height: fit-content;
}
.info-subcontainer{
    margin: auto;
    width: 200px;
    height: 143px;
}
.info-subcontainer h3{
    font-weight: 400;
    margin: 0px;
}
.can-assist{
    padding-top: 15px;
}
lable{
    font-size: 19px;
}
.general-info{
    font-size: 12px;
}
.divider{
    border-top: 1px solid lightgray;
}
.sudoku-select{
    border: 1px solid lightgray;
    background-color: #fff0;
    width: 185px;
    height: 30px;
    font-size: 16px;
    border-radius: 3px;
}
#modeBack{
    font-size: 13px;
    width: 300px;
    text-align: center;
    height: 42px;
    padding-bottom: 9px;
    height: fit-content;
}
.exp-text{
    margin-top: 5px;
}
.explanation h3{
    margin: 0px;
    font-size: 22px;
    font-weight: 500;
    text-align: center;
    padding-top: 10px;
}
.explanation a{
    font-size: 16px;
}
.explanation{
    /* width: 500px; */
    max-width: 700px;
    margin: auto;
    padding-bottom: 15px;
}
#infoCustom{
    display: none;
}
#infoBack{
    display: none;
}
#infoHelper{
    display: none;
}

/* algorithm selection */
.algorithm-selection{
    width: 200px;
    margin: 0px 8px 8px 8px;
    font-size: 14px;
    z-index: 10;
    background-color: white;
    /* box-shadow: 1px 1px 4px 1px #d4d4d4; */
    padding: 3px 7px 7px 7px;
    border: 1.5px solid #898989;
    position: absolute;
    top: 85px;
    right: 10px;
}
.algorithm-selection-title{
    text-align: center;
    border-bottom: 1px solid lightgray;
    padding-top: 5px;
    font-weight: 500;
}
.algorithm-selection-row{
    display: flex;
    flex-direction: row;
    line-height: 14px;
}
.algorithm-selection-checkbox{
    margin-right: 10px;
}
.algorithm-selection-text{
    width: 200px;
}
.algorithm-selection-header{
    margin: 0px;
    text-align: center;
    font-weight: 400;
}

#cameraInfoHeader{
    padding: 25px 0px 0px 0px;
}
#cameraInfoHeader:hover{
    cursor: pointer;
}
#cameraInfoContent{
    height: 0px;
    overflow: hidden;
    transition: height 1s;
}
#cameraInfoHeader{
    user-select: none;
}
.svg-arrow{
    height: 10px;
    width: 20px;
    transform: scale(0.5);
}
.exp-list{
    margin: 0;
    padding-left: 25px;
}
.button-icon{
    width: 21px;
    float: right;
}
.pencil-icon{
    width: 17px;
}
.grid-icon{
    width: 17px;
}

#loadOverlay{
    position: fixed;
    width: 100%;
    height: 100%;
    background-color: #0000005e;
    top: 0px;
    left: 0px;
    z-index: 20;
    display: none;
}
.loader-circle{
    width: 150px;
    height: 150px;
    border: 12px solid #ffffff;
    border-radius: 50%;
    position: absolute;
    top: 50%;
    left: 50%;
    -ms-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
}
.loader-spinner-hour, .loader-spinner-minute, .loader-spinner-second{
    animation: spin 3s linear infinite;
    width: 10px;
    height: 100%;
    position: absolute;
    left: calc(50% - 5px);
}
.loader-spinner-minute{
    width: 5px;
    left: calc(50% - 2.5px);
    animation: spin 2s linear infinite;
}
.loader-spinner-second{
    width: 2px;
    left: calc(50% - 1px);
    animation: spin 1s linear infinite;
}
.loader-spinner{
    width: 100%;
    background-color: white;
    height: 50%;
    border-radius: 10px;
}
.loader-dot{
    width: 12px;
    height: 12px;
    background-color: white;
    border-radius: 50%;
    position: absolute;
    left: calc(50% - 6px);
    top: calc(50% - 6px);
}

@keyframes spin {
	0% { transform: rotate(0deg); }
	100% { transform: rotate(360deg); }
}

@media (max-width:800px) { 
    .algorithm-selection{
        position: inherit;
        margin: auto;
        margin-top: 8px;
    }
}