& {
    word-break: break-all;
    display: inline-block;
}

&[type=select] {
    position: relative;

    .placeholder {
        color: #0009;
        padding-left: 6px;
        position: absolute;
        top: 50%;
        margin-top: -.5em;
        line-height: 1;
        margin-bottom: -1em;
        z-index: 1;
        pointer-events: none;
        display: block;
        border: none;
        outline: none;
        background: none;
    }

    .placeholder+.select[empty] {
        color: transparent;
    }

}

&[type=date] {
    >input {
        width: 8em;
        cursor: default;
    }
}

&[type=gen] {
    font-size: 14px;
}

&[type=datetime] {
    >input {
        width: 10em;
        cursor: default;
    }
}

&[type=int],
&[type=number],
&[type=digit],
&[type=money],
&[type=price],
&[type=num] {
    >input {
        text-align: right;
        width: 8em;

        +span {
            pointer-events: none;
        }
    }
}

@u(@l) {
    @w: @{l}em/2 + .5em;

    &[u@l] {
        >input {
            margin-right: -@w;
            padding-right: @w+.2em;
        }
    }
}

@u(1);
@u(2);
@u(3);
@u(4);
@u(5);
@u(6);

&[readonly] {

    &[type=radio] {
        &:before {
            vertical-align: middle;
            content: '';
            border-radius: 50%;
            box-sizing: border-box;
            border: 6px solid;
            display: inline-block;
            margin: 0 6px;
        }

        label {
            color: #333;
        }
    }
}