@charset "utf-8";

.label-container:has(.input--container) {
    min-height: 40px;
    /*max-height: 40px;*/
}

:is(.input--container):where(.checkbox, .radio) {
    position: relative;
    display: flex;
    font-weight: var(--typescale-body-small-font-weight);
    font-size: 16px;
    color:var(--color-on-background);
    /*width: max-content;*/
    /*font-size: var(--typescale-body-small-font-size);*/
    letter-spacing: var(--typescale-body-small-letter-spacing);
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    justify-content: start;
    -webkit-tap-highlight-color: transparent;
    flex-direction: row-reverse;
    gap: 9px;
    padding: 0;
}

:is(.input--container):where(.checkbox, .radio):not(.disabled) {
    cursor: pointer
}

:is(.input--container).checkbox {
    min-height: 18px;
    margin: 1px;
    line-height: 18px;

}
:is(.input--container).radio {
    min-height: 20px;
    line-height: 20px;

}

/* Label > Input */
:is(.input--container):where(.checkbox, .radio) input {
    position: absolute;
    opacity: 0;
    cursor: pointer;
    height: 0;
    width: 0;
}

/* Span.checkmark */
:is(.input--container):where(.checkbox, .radio) .checkmark {
    position: relative;
    display: block;
    left: 0;
    top: 0;
    border: 2px solid var(--color-outline);
}
:is(.input--container).checkbox .checkmark{
    min-width: 18px;
    height:18px;
    max-width: 18px;
    border-radius: 2px;
}
:is(.input--container).radio .checkmark {
    min-width: 20px;
    width: 20px;
    max-width: 20px;
    height: 20px;
    border-radius: 50%;
}

/* Span.checkmark:before  */
:is(.input--container):where(.checkbox, .radio) .checkmark:before {
    content: "";
    position: relative;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    display: block;
    bottom: 13px;
    right: 13px;
}
:is(.input--container).radio .checkmark:before {
    bottom: 12px;
    right: 12px;
}

/* :hover */
:is(.input--container):where(.checkbox, .radio):hover :not(input:disabled) ~ .checkmark:before {
    display: block;
    background-color: rgb(var(--color-on-background--rgb) / .04)
}

:is(.input--container):where(.checkbox, .radio):hover input:not(input:disabled):checked ~ .checkmark:before {
    background-color: rgb(var(--color-primary--rgb) / .05)
}

/* Span.checkmark:after  */
:is(.input--container):where(.checkbox, .radio) .checkmark:after {
    content: "";
    position: absolute;
    display: none
}
:is(.input--container).checkbox :not(.unselected) ~ .checkmark:after {
    left: 4px;
    top: 0;
    width: 3px;
    height: 9px;
    border: solid var(--color-on-primary);
    border-width: 0 3px 3px 0;
    -webkit-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    transform: rotate(45deg)
}
:is(.input--container).checkbox .unselected ~ .checkmark:after {
    left: 1px;
    top: 6px;
    border: solid var(--color-on-primary);
    width: 9px;
    border-width: 0 3px 3px 0;
}
:is(.input--container).radio .checkmark:after {
    left: 3px;
    top: 3px;
    background: var(--color-primary);
    height: 10px;
    width: 10px;
    min-width: 10px;
    max-width: 10px;
    border-radius: 50%
}

/* CHECKED */
:is(.input--container):where(.checkbox, .radio) input:checked ~ .checkmark:after {
    display: flex;
}

:is(.input--container).checkbox.filled input:hover ~ .checkmark {
    background: var(--color-outline);
}
:is(.input--container).checkbox.filled input:hover ~ .checkmark:after {
    display: flex; !important;
}


:is(.input--container).checkbox input:checked ~ .checkmark {
    border-color: transparent;
    background-color: var(--color-primary);
}

:is(.input--container).radio input:not(:disabled):checked ~ .checkmark {
    border-color: var(--color-primary);
}

/* DISABLED */
:is(.input--container):where(.checkbox, .radio):has( input:disabled) {
    color: rgb(var(--color-outline--rgb) / .50) !important;
}

:is(.input--container):where(.checkbox, .radio) input:disabled ~ .checkmark {
    border-color: rgb(var(--color-outline--rgb) / .50);
}

:is(.input--container).checkbox input:disabled:checked ~ .checkmark,
:is(.input--container).radio input:disabled:checked ~ .checkmark:after {
    background-color: rgb(var(--color-outline--rgb) / .50);
}
