@keyframes fadeIn {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: translateY(0); }
}
@keyframes fadeOut {
    from { opacity: 1; transform: translateY(0); }
    to   { opacity: 0; transform: translateY(-4px); }
}


.kselect {
    position: relative;
    width: 100%;
    border-radius: 4px;
    box-sizing: border-box;
    background-color: var(--dropdown-background);
    border: 2px solid var(--dropdown-background);
    user-select: none;
    outline: none;
    &:hover, &:has(.selected-item:focus), &.open {
        border: 2px solid var(--border-focus);
        border-radius: 5px;
    }

    &.open { & i.arrow { transform: rotate(180deg); } }
    &.default .selected-item { 
        color: var(--input-placeholder); 
        & :not(span):before { color:var(--input-placeholder); }
    }

    &.r1 { --max-height: 50px;  }
    &.r2 { --max-height: 90px;  }
    &.r3 { --max-height: 130px; }
    &.r4 { --max-height: 170px; }
    &.r5 { --max-height: 210px; }
    &.r6 { --max-height: 250px; }
    &.r7 { --max-height: 290px; }
    &.r8 { --max-height: 330px; }

    & input.ksearch-input:not([type="checkbox"]):not([type="radio"]):focus {
        border:0 !important;
    }

    & .ksearch-input {
        display: block;
        width: 100%;
        box-sizing: border-box;
        padding: 0 12px !important;
        border: none;
        color: var(--input-color);
        font-size: var(--input-size);
        outline: none;
        &:hover { border:0 !important; }
    }
}

.selected-item {
    cursor: pointer;
    color: var(--input-color);
    opacity: .87;
    padding: 0 4px 0 12px;
    height: 36px;
    line-height: 36px;
    background-color: var(--dropdown-background);
    margin: 0;
    outline: none;
    display: flex;
    & span { flex: 1; }
    & :not(span) {
        width: 30px !important;
        color:var(--input-color);
        cursor: pointer;
    }
    & i.arrow {
        display: flex;
        align-items: center;
        justify-content: center;
        transition: transform 0.25s ease;
        &:before { content: "\f0d7"; top: 45%; }
    }
    & .kft.x:before { top: 46%; }
}

.popover {
    box-sizing: border-box;
    display: none;
    position: absolute;
    top: 100%;
    left: -2px;
    right: -2px;
    max-height: var(--max-height, 170px);
    overflow-y: auto;
    z-index: 1000;
    background-color: var(--dropdown-background);
    scrollbar-color: var(--border-hover) transparent;
    border-radius: 0 0 5px 5px;
    box-shadow: 12px 12px 12px -10px rgba(0, 0, 0, .4);
    padding: 4px 0;
    border: 2px solid var(--border-focus);
    border-top: 0;
    &.open {
        display: block;
        animation: fadeIn 0.25s ease forwards;
    }
    &.closing {
        display: block;
        animation: fadeOut 0.25s ease forwards;
    }
}

.item {
    font-size: var(--input-size);
    padding: 0 0 0 32px;
    height: 40px;
    line-height: 40px;
    min-height: 40px;
    border-radius: 5px;
    margin: 0 5px;
    cursor: pointer;
    color: var(--dropdown-item-color);
    border-top: 0;
    &:hover { background-color: var(--dropdown-item-hover-background); }
    &.active {
        color: var(--dropdown-item-selected-color);
        background-color: var(--dropdown-item-selected);
        font-weight: normal;
        position: relative;
        &:before {
            font-family: "kui";
            content: "\e90b";
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            left: 10px;
            color: var(--dropdown-item-selected-color);
            font-size: 14px;
            font-weight: normal;
        }
    }
}