.setup-select-area(){
    &.focus-search{
        .wrap > .selected{
            opacity: 0.3;
        }
    }

    &.searching{
        .wrap > .selected{
            visibility: hidden;
        }
    }

    &.showlist{
        .wrap{
            > mor-textinput{
                cursor: initial;
            }

            > .drop{
                transform: rotateX(180deg);
            }
        }
    }

    &.is-max{
        .wrap{
            cursor: default;

            > .drop{
                display: none;
            }
        }

        li{
            cursor: default;
        }
    }

    &.select-item{
        .wrap{
            > mor-textinput{
                input{
                    color: @colorFormTextFocus !important;
                    box-shadow: none !important;
                }
            }

            > .selected{
                color: @colorFormTextFocus;
            }
        }
    }

    &.align-left{
        text-align: left;
    }

    &.align-center{
        text-align: center;
    }

    &.align-right{
        text-align: right;
    }

    &.align-center{
        .wrap > mor-multiinput{
            width: calc(100% - 1em);
            padding-right: calc(30px + 1em);

            input{
                text-align: center;
            }
        }
    }

    &.align-right{
        .wrap > mor-multiinput{
            width: calc(100% - 1em);
            padding-right: calc(30px + 1em);

            input{
                text-align: right;
            }
        }
    }

    &.input-group{
        .wrap{
            border-top-left-radius: 0;
            border-bottom-left-radius: 0;
        }
    }

    &.st-disabled,
    &.st-readonly{
        .wrap {
            background-color: @colorFormBackgroundDisable;
            border-color: @colorFormBorderDisable;
            -webkit-user-select: none;
            cursor: not-allowed !important;

            > .selected{
                color: @colorFormTextDisable;
            }
        }

        .wrap > mor-multiinput{
            background: transparent;
        }

        .wrap > mor-textinput{
            display: none;
        }

        .list{
            // border-color: @colorFormBorderDisable;
            background-color: @colorFormBackgroundDisable;
            -webkit-user-select: none;
            cursor: not-allowed !important;

            li{
                -webkit-user-select: none;
                cursor: not-allowed !important;
            }
        }
    }
}
.setup-wrap(@is-separate){
    .wrap{
        border: 1px solid @colorFormBorder;
        border-top-width: if(@is-separate, 0, 1px);
        border-left-width: if(@is-separate, 0, 1px);
        border-right-width: if(@is-separate, 0, 1px);
        border-radius: @borderRadius;
        position: relative;
        cursor: pointer;
        transition: border-radius 0.2s, border 0.2s;
        -webkit-user-select: none;
        background-color: #FFF;
        overflow: hidden;

        > mor-textinput{
            width: if(@is-separate, 100%, calc(100% - 30px));
            padding: 0;
            cursor: pointer;
            margin: 0;
            position: absolute;

            input{
                vertical-align: top !important;
                border: none;
                box-shadow: none !important;
            }
        }

        > mor-multiinput{
            margin: 0;
            width: calc(100% - @fontSize*2.5);
            background-color: #FFF;
            vertical-align: top;
            left: 0.35em;

            .multiinput-itemlist{
                width: 100%;
            }

            .form-body{
                border: none;

                &.focus{
                    box-shadow: none !important;
                }

                > input{
                    cursor: pointer;
                }

                .cleanicon{
                    display: none !important;
                }
            }
        }

        > .selected{
            color: @colorFormPlaceholder;
            width: calc(100% - @fontSize*2.5);
            padding: if(@is-separate, 0 2em 0 1em, 0 1em);
            position: relative;
            pointer-events: none;
            z-index: 1;
            text-overflow: ellipsis;
            white-space: nowrap;
            overflow: hidden;
            box-sizing: border-box;

            img,
            mor-img {
                height: 2em !important;
                width: 2em !important;
                margin-right: 0.5em;
                vertical-align: middle;
            }

            mor-img > img{
                vertical-align: top;
            }
        }

        > .mo-icon{
            position: absolute;
            width: 24px;
            transform: rotateX(0deg);
            transition: transform 0.2s;
            z-index: 2;
            top: 0;
            right: 0;
            color: @colorFormPlaceholder;

            &.cleanicon{
                display: none;
                font-size: @fontSize*0.875;
                color: @colorFormPlaceholder;
                background: @colorWhite;
                z-index: 3;

                &:hover{
                    color: @colorFormPlaceholderHover;
                    cursor: pointer;
                }
            }

            &.drop{
                font-size: 30px;
                text-indent: 1px;
            }
        }

        &:hover,
        &.hover{
            > .mo-icon.cleanicon{
                display: block;
            }
        }

        &.hover{
            border-color: @colorFormBorderHover;
        }
    }

    &.si-m{
        .wrap{
            > mor-textinput{
                height: @formHeight - 2px;
                line-height: @formHeight - 2px;
            }

            > mor-multiinput{
                min-height: @formHeight - 2px;
                font-size: @formInputFontSize;
            }

            .textinput-wrap > input{
                height: @formHeight - 2px;
                line-height: @formHeight - 2px;
                font-size: @formInputFontSize;
            }

            > .selected{
                height: @formHeight - 2px;
                line-height: @formHeight - 2px;
                font-size: @formInputFontSize;
            }

            > .mo-icon{
                line-height: @formHeight - 2px;
            }
        }

        &.input-group {
            .input-group-addon{
                height: @formHeight;
                line-height: @formHeight - 2px;
                font-size: @formInputFontSize;
            }
        }
    }

    &.si-s{
        .wrap{
            > mor-textinput{
                height: @formHeightS - 2px;
                line-height: @formHeightS - 2px;
            }

            > mor-multiinput{
                min-height: @formHeightS - 2px;
                font-size: @formInputFontSizeS;
            }

            .textinput-wrap > input{
                height: @formHeightS - 2px;
                line-height: @formHeightS - 2px;
                font-size: @formInputFontSizeS;
            }

            > .selected{
                height: @formHeightS - 2px;
                line-height: @formHeightS - 2px;
                font-size: @formInputFontSizeS;
            }

            > .mo-icon{
                line-height: @formHeightS - 2px;
            }
        }

        &.input-group {
            .input-group-addon{
                height: @formHeightS;
                line-height: @formHeightS - 2px;
                font-size: @formInputFontSizeS;
            }
        }
    }

    &.si-xs{
        .wrap{
            > mor-textinput{
                height: @formHeightXs - 2px;
                line-height: @formHeightXs - 2px;
            }

            > mor-multiinput{
                min-height: @formHeightXs - 2px;
                font-size: @formInputFontSizeXs;
            }

            .textinput-wrap > input{
                height: @formHeightXs - 2px;
                line-height: @formHeightXs - 2px;
                font-size: @formInputFontSizeXs;
            }

            > .selected{
                height: @formHeightXs - 2px;
                line-height: @formHeightXs - 2px;
                font-size: @formInputFontSizeXs;
            }

            > .mo-icon{
                line-height: @formHeightXs - 2px;
            }
        }

        &.input-group {
            .input-group-addon{
                height: @formHeightXs;
                line-height: @formHeightXs - 2px;
                font-size: @formInputFontSizeXs;
            }
        }
    }

    &{
        .si-m;
    }
}

mor-select{
    position: relative;
    display: inline-block;
    width: 100%;
    box-sizing: border-box;
    vertical-align: middle;
    min-height: @formHeight;

    .setup-form();

    .select-area{
        position: relative;
        z-index: 2;

        .setup-select-area();
    }

    .setup-wrap(false);

    .wrap{
        &.focus{
            .setup-form-focus();
        }
    }

    &.separate{
        height: 0;
        min-height: 0;
        width: auto;
        position: absolute;

        .mor-select-wrap .wrap > .selected{
            min-width: 100px;
        }
    }

    &.input-group {
        .select-wrap{
            display: flex;
            vertical-align: middle;
        }

        .input-group-addon {
            padding: @fontSize*0.375 @fontSize*0.75;
            color: @colorFormAddonFont;
            text-align: center;
            background-color: @colorFormAddonBg;
            border: 1px solid @colorFormBorder;
            white-space: nowrap;
            border-top-left-radius: @borderRadius;
            border-bottom-left-radius: @borderRadius;
            display: flex;
            align-items: center;
            justify-content: center;
            border-right: 0;
        }

        .select-area{
            width: 100%;
            position: relative;
        }

        .input-group-addon,
        .select-area {
            vertical-align: middle;
            margin: 0;
        }
    }

    &.st-normal{}

    &.st-disabled,
    &.st-readonly{}

    // default status
    &{
        .st-normal;
    }
}

.mor-select-wrap{
    .select-btn{
        padding: @fontSize*0.5 0;
        border-bottom: 1px lighten(@colorFormBorder, 5%) solid;
        display: flex;
        justify-content: flex-end;

        mor-btn{
            margin-right: @fontSize*0.5;
        }
    }

    .list{
        margin: 0;
        padding: 0;
        list-style: none;
        border-top-width: 0;
        border-radius: 0 0 @borderRadius @borderRadius;
        overflow-x: hidden;
        overflow-y: auto;
        background-color: @colorWhite;
        box-sizing: border-box;
        width: 100%;

        .setup-scrollbar();
    }

    li{
        padding: 0.5em 1em;
        border-top: 1px lighten(@colorFormBorder, 5%) solid;
        cursor: pointer;
        font-size: 14px;
        color: darken(@colorFormPlaceholder, 15%);
        position: relative;
        word-break: break-all;

        &:first-child{
            border-top-width: 0;
        }

        img,
        mor-img {
            height: 2em;
            width: 2em;
            margin-right: 0.5em;
            vertical-align: middle;
            padding: 0;
        }

        mor-img > img{
            vertical-align: top;
        }

        .mo-select-selected-icon{
            font-size: @fontSize*0.75;
            position: absolute;
            right: 5px;
            display: inline-block;
            width: 20px;
            top: 50%;
            transform: translateY(-50%);
            box-sizing: border-box;
            color: @colorTheme;
        }

        &.selected{
            background: @colorFormBackgroundHover;
            // border-left: 3px @colorTheme solid;
            color: @colorTheme;
            padding-right: 2.5em;

            &.hover{
                color: @colorTheme;
            }
        }

        &.hide{
            display: none;
        }

        &.hover{
            color: darken(@colorFormPlaceholderHover, 5%);
            background: @colorFormBackgroundHover;
        }

        &.infoitem{
            color: @colorFormTextMisc;
            cursor: default;
            display: none;

            &.show{
                display: list-item;
            }

            &:hover{
                color: @colorFormTextMisc;
                background: @colorWhite;
            }
        }

        &.noitem{
            border-top: none;
        }

        &.maxshow{
            font-size: 12px;
            text-align: center;
            padding: 7.5px 0;
        }
    }

    .setup-wrap(true);

    .wrap{
        border-radius: @borderRadius @borderRadius 0 0;

        > .selected{
            width: 100%;
        }

        > .mo-icon{
            display: none;
        }
    }

    &{
        .setup-select-area();
    }

    &.hide-selected li{
        padding: 0.5em 1em;
        padding-right: 1em;
    }

    &.hide-selected li.selected,
    .hide-selected li.selected{
        display: none;
    }
}

.mor-select-popover{
    .popover-con .popover-body{
        padding: 0;
    }

    &.no-animation{
        .tip-wrap{
            transition: none;
        }
    }
}
