#sidebar{
    display: grid;
    grid-template-rows: 1fr var(--moves-button-size);
    gap: var(--padding-size);
    overflow: hidden;

    background-color: rgba(34, 34, 34, 0.4);
    color: white;
}

/* controls */

#controls{
    overflow-y: scroll;
}

#controls .moves{
    display: grid;
    gap: var(--padding-size);
}

#controls .moves>section{
    display: grid;
    grid-template-rows: var(--moves-button-size) 1fr;
    gap: var(--padding-size);

}
#controls .moves>section>p{
    display: grid;
    place-items: center;
    text-align: center;
    background-color: rgba(34, 34, 34, 0.4);
}
#controls .moves>section>div{
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--padding-size);
}

#controls .moves button,
#controls .tools .playbackControls button{
    display: grid;
    place-items: center;

    height: var(--moves-button-size);
    
    opacity: 1;
    background-color: rgba(34, 34, 34, 0.4);
}

#controls .moves button:active,
#controls .tools .playbackControls button:active,
#controls .tools .resetColor button:active,
#controls .tools .resetPos button:active,
#controls .tools .solve button:active,
#commands button:active{
    background-color: rgba(34, 34, 34, 1);
}

#controls .moves button:disabled,
#controls .tools .playbackControls button:disabled,
#controls .tools .resetColor button:disabled,
#controls .tools .resetPos button:disabled,
#controls .tools .solve button:disabled,
#commands button:disabled{
    background-color: rgba(34, 34, 34, 1);
}

/* tools */

#controls .tools{
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--padding-size);
    overflow-y: scroll;
    max-height: 100%;

    display: none;
}

#controls .tools section{
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--padding-size);
}

#controls .tools section h2{
    display: grid;
    place-items: center;
    letter-spacing: 10px;
    padding-inline: var(--padding-size);
    height: var(--moves-button-size);
}

/*  */

.resetColor,
.resetPos,
.debug,
.solve{
    position: relative;
    width: 100%;
    height: var(--moves-button-size);
    min-height: var(--moves-button-size);
    user-select: none;
}

.resetColor button,
.resetPos button,
.debug input,
.solve button{
    all: unset;
    width: 100%;
    height: 100%;
    cursor: pointer;
}

.resetColor button,
.resetPos button,
.debug label,
.solve button{
    display: grid;
    place-items: center;

    background-color: rgba(34, 34, 34, 0.4);
}

/*  */

#controls .tools .paintCube{
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: repeat(2, var(--moves-button-size));
    gap: var(--padding-size);
    padding: var(--padding-size);

    background-color: rgba(34, 34, 34, 0.4);
}
#controls .tools .paintCube span{
    position: relative;
    background-color: rgba(34, 34, 34, 0.4);
    border: 2px solid rgba(34, 34, 34, 0.4);
}
#controls .tools .paintCube span input{
    all: unset;
    position: absolute;
    width: 100%; height: 100%;
    visibility: hidden;
}

.debug input{
    position: absolute;
    top: 0; left: 0;
    cursor: pointer;
    background-color: rgba(34, 34, 34, 0.4);
}
.debug label{
    position: absolute;
    width: 100%;
    height: 100%;
    
    z-index: 1;
    background-color: transparent;
    pointer-events: none;
}

.debug input:checked{
    filter: invert(1);
}
.debug:has(input:checked) label{
    color: black;
}

#controls .tools .playbackControls{
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    grid-template-rows: var(--moves-button-size);
    gap: var(--padding-size);
}

#controls .tools .playbackControls button{
    width: 100%;
}

.solvingDelay {
    display: grid;
    grid-template-rows: auto calc(var(--moves-button-size) / 2) auto;
    background-color: rgba(34, 34, 34, .4);
    gap: var(--padding-size)
}

.solvingDelay label{
    display: grid;
}
.solvingDelay label:nth-of-type(1){
    grid-template-columns: repeat(3, 1fr);
}
.solvingDelay label:nth-of-type(2){
    grid-template-columns: 1fr;
    text-align: center;
}

.solvingDelay label span:nth-of-type(2){
    text-align: center;
}
.solvingDelay label span:nth-of-type(3){
    text-align: right;
}

.solvingDelay input {
    appearance: none;
    -webkit-appearance: none;
    background-color: transparent;

    background-color: rgba(34, 34, 34, .4);
}

.solvingDelay input::-webkit-slider-thumb {
    appearance: none;
    -webkit-appearance: none;

    width: calc(var(--moves-button-size) / 2);
    height: calc(var(--moves-button-size) / 2);

    background-color: rgba(34, 34, 34, 1);
    border: none; border-radius: 0;
    cursor: pointer;
}
.solvingDelay input::-moz-range-thumb {
    width: calc(var(--moves-button-size) / 2);
    height: calc(var(--moves-button-size) / 2);

    background-color: rgba(34, 34, 34, 1);
    border: none; border-radius: 0;
    cursor: pointer;
}

.customHistory{
    display: grid;
    grid-template-columns: 1fr auto;
    height: var(--moves-button-size)
}
.customHistory input{
    all: unset;
    height: 100%;
    padding-inline: var(--padding-size);
    background-color: rgba(34, 34, 34, .1);
}
.customHistory button{
    padding-inline: var(--padding-size);
    background-color: rgba(34, 34, 34, .4);
}
.customHistory button:disabled{
    background-color: rgba(34, 34, 34, 1);
}


/* commands */

#commands{
    display: grid;
    grid-template-columns: 1fr var(--moves-button-size) var(--moves-button-size); 
    grid-template-rows: 1fr; 
    gap: var(--padding-size);
    
    width: 100%; 
}

#commands button{
    display: grid;
    place-items: center;
    
    height: var(--moves-button-size);
    font-size: 2em;

    background-color: rgba(34, 34, 34, 0.4);
}

#commands .reset{
    font-size: 1em;
    aspect-ratio: unset;
    text-align: center;
}

#commands .resolve.active{
    filter: invert(1);
}