.input{
    position: relative;
    margin: 30px 0px;
}

.file input {
    display: none;
}
/* inicio inputs de texto */
.input input[type=text],
.input input[type=date],
.input input[type=time],
.input input[type=password],
.input input[type=email],
.input input[type=number]{
    display: block;
    width: 100%;
    border: none;
    outline: none;
    height: 60px;
    background-color: transparent;
    border-radius: 11px;
    padding: 5px;
    font-size: 1.2rem;
    margin: 10px 0;
}

input[type="date"]::-webkit-calendar-picker-indicator {
    cursor: pointer;
    filter: invert(1);
}

.slim input[type=text],
.slim input[type=date],
.slim input[type=time],
.slim input[type=password],
.slim input[type=email],
.slim input[type=number]{
    width: 100%;
    padding: 5px 5px;
    display: inline-block;
    border: none;
    outline: none;
    min-width: 180px;
    font-size: 1rem;
    transition: all .3s ease-out;
    color: #000;
    border-bottom: 1px solid #D9D9D9;
    border-radius: 0px;
    background-color: transparent;
    height: 30px;
}
.slim input:focus,
.slim :not(input:placeholder-shown),
/* .input input:valid, */
.input.date input{
    border-color: #C90054;
}

.input label{
    color: #969696;
    position: absolute;
    font-size: 1.1rem;
    top: 0;
    left: 0;
    margin-top: 18px;
    margin-left: 20px;
    text-shadow: -5px 4px 14px rgba(0, 0, 0, 0.1);
    transition: all .3s ease-out;
    z-index: 5;
    width: 100%;
    display: flex;
    justify-content: space-between;
}
.input.slim label{
    margin-top: 10px;
}

.input .erro{
    display: inline-block;
    margin-right: 30px;
    color: #ff0000;
    font-weight: 500;
    font-size: 1rem;
    text-align: end;
}
.input .erro:not(:empty)::before{
    content: '*';
}

.input input:focus + label,
.input :not(input:placeholder-shown) + label,
/* .input input:valid + label, */
.input.date input + label{
    font-size: 13px;
    margin: 0;
    top: -20px;
    font-weight: 400;
    font-size: 16px;
    color: #000
}
/* fim inputs de texto */

/* inicio Radio e Checkbox */
.radio,
.checkbox{
    display: flex;
    align-items: center;
}

.radio input,
.checkbox input{
    display: none;
}

.radio label,
.checkbox label{
    all: unset;
    display: inline-flex;
    border: 3px solid;
    aspect-ratio: 1 / 1;
    transition: background .3s;
    border-radius: 8px;
}
.checkbox label{
    border-radius: 100px;
}

.radio input:checked + label::after,
.checkbox input:checked + label::after{
    content: '';
    display: inline-block;
    background-color: #000000;
    width: 70%;
    aspect-ratio: 1/1;
    margin: auto;
    border-radius: 8px;
}
.checkbox input:checked + label::after{
    border-radius: inherit;
}

.radio p,
.checkbox p{
    display: inline-block;
    margin-left: 10px;
}
/* fim Radio e Checkbox */

/* inicio select */
.input.select{
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 10px;
    width: 100%;
    background-color: #d9d9d9;
    font-size: 18px;
    border-radius: 0;
    border-top-left-radius: 15px;
    border-top-right-radius: 15px;
    padding: 0 10px;
    z-index: 100;
}
.input.select.fillter{
    color: white;
    background-color: #151515;
}

.input.select.disable{
    z-index: 1;
}

.input.select input[type="text"]{
    width: 100%;
    height: 100%;
    outline: none;
    border: none;
    background-color: transparent;
    box-shadow: none;
    transition: .3s;
    text-transform: capitalize;
}
.input.select.fillter input[type="text"]{
    color: white;
}
.input.select .options{
    position: absolute;
    left: -0;
    top: 100%;
    width: 100%;
    max-height: 170px;
    background-color: #555555;
    border-left: #000 4px solid;
    border-right: #000 4px solid;
    border-bottom: #000 4px solid;
    border-bottom-left-radius: 5px;
    border-bottom-right-radius: 5px;
    overflow: auto;
    transition: .3s;
    z-index: 2;
}

.input.select.fillter .options{
    border-color: white;  
    border-width: 2px;
    background-color: #151515;
    left: -2px;
    width: calc(100% + 4px);
}
.input.select.fillter .option{
    color: white;
    border-color: white;  
    background-color: #151515;
}

.input .options .title{
    display: flex;
    justify-content: space-between;
    font-size: 1rem;
    position: sticky;
    top: 0;
    z-index: 10;
    background-color: #555555;
    padding: 10px;
    padding-right: 0;
    border-top: 4px solid #000;
}

.input.list .options .option{
    display: flex;
    justify-content: space-between;
    padding: 0;
}

.input.list .options .option .checkbox{
    display: flex;
    justify-content: center;
    align-items: center;
    margin: auto;
}

.input .options .nome {
    width: 50% !important;
}
.input .options input.nome{
    width: calc(50% - 20px) !important;
    border-radius: 2px;
    padding: 5px;
    margin: 10px;
    height: 70%;
}
.input .options .interprete{
    text-align: center;
    margin: auto;
    width: 25% !important;
}
.input .options .autor{
    text-align: center;
    margin: auto;
    width: 25% !important;
}
.input.select svg{
    cursor: pointer;
}
.input.select .option{
    height: 50px;
    width: 100%;
    display: flex;
    align-items: center;
    padding-left: 10px;
    border-bottom: #000 4px solid;
}
.input.select.fillter .option{
    border-width: 2px;
}

.input.select .option .radio{
    position: relative;
    border: #000 4px solid;
    top: 0;
    height: 25px;
    width: 25px;
    border-radius: 5px;
    margin-right: 20px;
    overflow: hidden;
    flex: none;
}

.input.select .option input[type="radio"] + .radio::after,
.input.select .option input[type="checkbox"] + .checkbox::after{
    content: '';
    position: absolute;
    width: 0px;
    height: 0px;
    background-image: linear-gradient(93.22deg, #C90054 10.92%, #FFB800 89.53%);
    margin: auto;
    transition: linear .3s;
    border-radius: 100px;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    z-index: 1;
} 
.input.select .option input[type="radio"]:checked + .radio::after,
.input.select .option input[type="checkbox"]:checked + .checkbox::after{
    width: 25px;
    height: 25px;

}
.input.select .option input[type="radio"] + .radio::before,
.input.select .option input[type="checkbox"] + .checkbox::before{
    content: '';
    position: absolute;
    width: 10px;
    height: 5px;
    top: 20%;
    left: 20%;
    rotate: -45deg;
    z-index: 2;
}

.input.select .option input[type="radio"]:checked + .radio::before,
.input.select .option input[type="checkbox"]:checked + .checkbox::before{
    content: '';
    position: absolute;
    width: 10px;
    height: 5px;
    border-bottom:2px solid white;
    border-left:2px solid white;
    top: 20%;
    left: 20%;
    rotate: -45deg;
    z-index: 2;
    transition: 0 .3s;
}

.input.select .option .txt{
    position: relative;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    top: unset;
    left: unset;
    margin: unset;
    text-transform: capitalize;
}

.input.select.fillter .option .txt{
    color: white;
}

.input.select .option.txt label{
    width: 20%;
    margin-right: 10px;
}


.input.select .option:first-child{
    border-top: #000 4px solid;
}
.input.select.fillter .option:first-child{
    border-top: #fff 1px solid;
}

.input.select.fillter .option .radio,
.input.select.fillter .option .checkbox{
    border-color: white;
}
.input.select .option:last-child{
    border-bottom: none;
}

.input.select .option input[type="radio"],
.input.select .option input[type="checkbox"]{
    display: none;
}
.input.select.disable{
    border-radius: 15px;
    transition: border-radius .3s .2s;
}
.input.select.disable .options{
    height: 0 !important;
    border-bottom: 0px;
}

.input.select.list .checkbox label{
    all: unset;
    display: inline-flex;
    border: 3px solid ;
    aspect-ratio: 1 / 1;
    width: 20px;
    border-radius: 8px;
    transition: background .3s;
}
.input.select.list .checkbox input[type=checkbox] + label::after{
    content: '';
}
.input.select.list .checkbox input[type=checkbox]:checked + label::after{
    content: '';
    display: inline-block;
    background-color: #000000;
    width: 70%;
    aspect-ratio: 1/1;
    margin: auto;
    border-radius: 4px;
}

.input .options .novo {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 10px 0;
    border-top: 4px solid #000;
    cursor: pointer;
}

@media only screen and (max-width: 820px) {
    .slim input[type=text],
    .slim input[type=date],
    .slim input[type=time],
    .slim input[type=password],
    .slim input[type=email],
    .slim input[type=number]{
        display: block;
        width: 100%;
        border: none;
        outline: none;
        height: 60px;
        background-color: #ffffff;
        border-radius: 11px;
        padding: 5px;
        font-size: 1.2rem;
        margin: 10px 0;
    }
    .slim input:focus,
    .slim :not(input:placeholder-shown),
    /* .input input:valid, */
    .input.date input{

    }
}