/*
 * Styles for form components
 *
 * Include:
 *   ui-form
 *   ui-form-item
 *   ui-radio
 *   ui-radio-group
 *   ui-checkbox
 *   ui-checkbox-group
 *   ui-select
 *   ui-option
 *   ui-upload
 *
 * Nice to meet you
 *
 */

/* form */
.ui-form-footer {
    margin-top: @form-gap-vertical;
    display: flex;
    justify-content: center;

    .ui-button {
        min-width: @form-footer-button-width;
    }
    .ui-button + .ui-button {
        margin-left: @form-footer-button-gap;
    }
}
/* form-item */
.ui-form-item {
    display: flex;
    margin-bottom: @form-item-outer-vertical;
    position: relative;
}
.ui-form-label {
    flex: 0 0 auto;
    color: @form-item-label-color;
    margin-right: @form-item-label-outer-horizontal;
}
.ui-form-label-text {
    line-height: @form-item-label-line-height;
    padding: @form-item-label-inner-vertical 0;
    display: block;

    .ui-form-item.is-required &::before {
        content: @form-item-label-required-content;
        color: @form-item-label-required-color;
        margin-right: .5em;
    }
}
.ui-form-item-content {
    .clearfix();
    flex: 1 1 0%;
    position: relative;
    line-height: @form-item-height;
}
.ui-form-item-error {
    position: absolute;
    top: 100%;
    line-height: @form-item-error-height;
    margin: 0 @form-item-error-inner-horizontal;
    font-size: @form-item-error-font-size;
    color: @form-item-error-color;
}
/* radio */
.ui-radio-group {
    font-size: 0;
    display: block;
    // vertical-align: middle;
}
.ui-radio {
    font-size: @font-size-base;
    line-height: 0;
    cursor: pointer;
    display: inline-block;
    vertical-align: middle;
    white-space: nowrap;

    .ui-radio-group & {
        margin-right: @unit-outer-horizontal;

        &:last-child {
            margin-right: 0;
        }
    }
}
.ui-radio-inner {
    display: inline-block;
    line-height: 0;
    position: relative;
    margin-right: .5em;
}
.ui-radio-icon {
    border: 1px solid @color-border-regular;
    border-radius: 100%;
    width: 1em;
    height: 1em;
    background-color: @color-white;
    position: relative;
    display: inline-block;
    box-sizing: border-box;

    &::after {
        width: 4px;
        height: 4px;
        border-radius: 100%;
        background-color: @color-white;
        content: "";
        position: absolute;
        left: 50%;
        top: 50%;
        transform: translate(-50%,-50%);
    }

    .ui-radio.is-checked & {
        border-color: @color-primary;
        background-color: @color-primary;
    }
}
.ui-radio-input {
    position: absolute;
    opacity: 0;
    z-index: -1;
}
.ui-radio {
    .ui-radio-inner, .ui-radio-text {
        vertical-align: middle;
    }
}
.ui-radio-button {
    border-color: @radio-button-border-color;
    background-color: @radio-button-bg-color;
    color: @radio-button-color-text;
    // font-size: @font-size-base;
    position: relative;
    &:hover {
        background-color: @radio-button-bg-color-hover;
    }

    &.is-checked {
        background-color: @radio-button-bg-color-checked;
        border-color: @radio-button-border-color-checked;
        color: @radio-button-color-text-checked;
    }
    .ui-radio-inner {
        position: absolute;
        opacity: 0;
        z-index: -1;
    }
}
/* checkbox */
.ui-checkbox-group {
    font-size: 0;
    display: block;
    // vertical-align: middle;
}
.ui-checkbox {
    font-size: @font-size-base;
    line-height: 0;
    cursor: pointer;
    display: inline-block;
    vertical-align: middle;
    white-space: nowrap;

    .ui-checkbox-group & {
        margin-right: @unit-outer-horizontal;

        &:last-child {
            margin-right: 0;
        }
    }
}
.ui-checkbox-inner {
    display: inline-block;
    line-height: 0;
    position: relative;
    vertical-align: middle;
    margin-right: .5em;
}
.ui-checkbox-icon {
    border: 1px solid @color-border-regular;
    border-radius: @checkbox-icon-border-radius;
    width: 1em;
    height: 1em;
    background-color: @color-white;
    position: relative;
    display: inline-block;
    box-sizing: border-box;

    &::after {
        box-sizing: content-box;
        content: "";
        border: 1px solid #fff;
        border-left: 0;
        border-top: 0;
        height: 7px;
        left: 4px;
        position: absolute;
        top: 1px;
        transform: rotate(45deg);
        width: 3px;
        transform-origin: center;
    }

    .ui-checkbox.is-checked & {
        border-color: @color-primary;
        background-color: @color-primary;
    }
}
.ui-checkbox-input {
    position: absolute;
    opacity: 0;
    z-index: -1;
}
.ui-checkbox {
    .ui-checkbox-inner, .ui-checkbox-text {
        vertical-align: middle;
    }
}
.ui-checkbox-button {
    border-color: @color-border-regular;
    background-color: @color-white;
    color: @color-text-regular;
    // font-size: @font-size-base;
    position: relative;
    &:hover {
        background-color: @color-bg-active-regular;
    }

    &.is-checked {
        background-color: @color-primary;
        border-color: @color-primary;
        color: @color-text-alt;
    }
    .ui-checkbox-inner {
        position: absolute;
        opacity: 0;
        z-index: -1;
    }
}
/* select */
.ui-select {
    position: relative;
    width: 100%;
    cursor: text;
    font-size: @unit-font-size;
    .ui-input {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        pointer-events: none;
    }
    &:focus-within .ui-input-border {
        border-color: @select-border-color-focus;
    }
}
.ui-select-tags {
    box-sizing: border-box;
    padding: @unit-inner-vertical @unit-inner-horizontal;
    min-height: @unit-height;
    line-height: 1;
    .ui-tag-group {
        margin: -@select-tag-gap;
        .ui-tag {
            margin: @select-tag-gap;
        }
    }
}
.ui-select-input {
    box-sizing: border-box;
    border: none;
    outline: none;
    margin: @select-tag-gap 0;
    padding: 0 @select-tag-gap;
    font-size: @font-size-base;
    line-height: @font-line-height-base;
    appearance: none;
    min-width: 4em;
    max-width: 100%;
    background-color: transparent;
}
.ui-select-dropdown-menu {
    margin-top: -@unit-border-width;
}
.ui-select-option {
    white-space: normal;
    &.is-selected {
        color: @color-text-secondary;
        background-color: initial;
    }
}
.ui-select-dropdown-menu-empty {
    line-height: @unit-height;
    text-align: center;
    color: @color-text-secondary;
    cursor: initial;
}
/* upload */
.ui-upload {
    font-size: 0;
}
.ui-upload-area {
    height: @unit-height;
}
.ui-upload-label {
    display: block;
    font-size: @unit-font-size;
    cursor: pointer;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.ui-upload-input {
    display: none;
}
.ui-upload-list {
    font-size: @font-size-base;
}
