/* ----------------------- Default ----------------------- */
input[type="checkbox"], input[type="radio"] {
    display: inline-block;
    margin-right: 7px;
}

/* ----------------------- Settings ----------------------- */
.e-select:focus, .checker:focus, .radio:focus, .uploader:focus {
    outline: none;
}

/* ----------------------- Select ----------------------- */
.e-select {
    position: relative;
    z-index: auto;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
}

.e-select select {
    position: absolute;
    z-index: 5;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    height: 100%;
    width: 100%;
    filter: alpha(opacity=0);
    -moz-opacity: 0;
    opacity: 0;
    border: none;
    background: none;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
}

/* ----------------------- Radio-buttons and checkboxes ----------------------- */
.radio,
.checker {
    display: inline-block;
    position: relative;
    width: 19px;
    height: 19px;
    color: #545454;
    background: transparent;
    border: 1px solid #9e9e9e;
    cursor: pointer;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    -webkit-transition: all 250ms;
    -o-transition: all 250ms;
    transition: all 250ms;
    overflow: hidden;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
}

.radio input,
.checker input {
    position: absolute !important;
    z-index: 50;
    left: 0 !important;
    top: 0 !important;
    width: 100% !important;
    height: 100% !important;
    filter: alpha(opacity=0);
    -moz-opacity: 0;
    opacity: 0;
    border: none;
    background: none;
    cursor: pointer;
}

.radio span,
.checker span {
    display: block;
    position: relative;
    text-align: center;
}

.radio span:before,
.checker span:before {
    -webkit-transition: all 250ms;
    -o-transition: all 250ms;
    transition: all 250ms;
}

.radio.hover, label:hover .radio {
}

.checker.hover, label:hover .checker {
}

.radio.focus,
.checker.focus {
}

.m-error .radio,
.m-error .checker {
    border-color: #f00 !important;
    -webkit-box-shadow: 0 0 8px rgba(255, 0, 0, .15);
    box-shadow: 0 0 8px rgba(255, 0, 0, .15);
}

.radio.disabled,
.checker.disabled {
    cursor: default !important;
    pointer-events: none;
}

.radio.disabled input,
.checker.disabled input {
    cursor: default;
}


/* ----------------------- Checkboxes states ----------------------- */
.checker {
    width: 19px;
    height: 19px;
    -webkit-border-radius: 5px;
    border-radius: 5px;
}

.checker span {
    position: absolute;
    z-index: 1;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
}

.checker span:before {
    display: block;
    width: 17px;
    height: 17px;
    content: '';
    visibility: hidden;
    opacity: 0;
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTdweCIgaGVpZ2h0PSIxN3B4IiB2aWV3Qm94PSIwIDAgMTcgMTciIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+PHBhdGggZmlsbD0iIzU0NTQ1NCIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNy41NDM3NjI3MSw5LjY1MzEzNzc5IEwxMS42OTAwOTgsNS40MDU3NjI1NCBDMTEuOTQxMTA3Nyw1LjE0NjM5OCAxMi4yODYzNTcsNSAxMi42NDcwMDQ4LDUgQzEzLjAwNzY1MjcsNSAxMy4zNTI5MDIsNS4xNDYzOTggMTMuNjAzOTExNyw1LjQwNTc2MjU0IEMxNC4xMzIwMjk0LDUuOTUyNDA2NDYgMTQuMTMyMDI5NCw2LjgyMDA2Nzk0IDEzLjYwMzkxMTcsNy4zNjY3MTE4NiBMOC41MDA3NDI2MSwxMi41OTQyMzc1IEM4LjI0OTczMjk1LDEyLjg1MzYwMiA3LjkwNDQ4MzYyLDEzIDcuNTQzODM1NzgsMTMgQzcuMTgzMTg3OTQsMTMgNi44Mzc5Mzg2MiwxMi44NTM2MDIgNi41ODY5Mjg5NiwxMi41OTQyMzc1IEwzLjM5NzU3MzU1LDkuMzI2NjU3NjMgQzIuODY3NDc1NDgsOC43ODEyMDc0MSAyLjg2NzQ3NTQ4LDcuOTEyMTYyMDggMy4zOTc1NzM1NSw3LjM2NjcxMTg2IEMzLjY0ODMwMjQyLDcuMTA2ODMwMDUgMy45OTM2NTY2OCw2Ljk2MDA3MDMzIDQuMzU0NDgwMzcsNi45NjAwNzAzMyBDNC43MTUzMDQwNyw2Ljk2MDA3MDMzIDUuMDYwNjU4MzIsNy4xMDY4MzAwNSA1LjMxMTM4NzE5LDcuMzY2NzExODYgTDcuNTQzNzYyNzEsOS42NTMxMzc3OSBaIj48L3BhdGg+PC9zdmc+) center center no-repeat;
}

.checker span.checked:before {
    visibility: visible;
    opacity: 1;
}

.checker.disabled span:before {
    opacity: .5;
}


/* ----------------------- Radio-buttons states ----------------------- */
.radio {
    width: 19px;
    height: 19px;
    -webkit-border-radius: 50%;
    border-radius: 50%;
}

.radio span {
    position: absolute;
    z-index: 1;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
}

.radio span:before {
    display: block;
    margin: 5px;
    width: 7px;
    height: 7px;
    background: #1fa6a3;
    -webkit-border-radius: 50%;
    border-radius: 50%;
    content: '';
    visibility: hidden;
    opacity: 0;
}

.radio span.checked:before {
    visibility: visible;
    opacity: 1;
}

.radio.disabled span:before {
    background: #c8c8c8;
}


/* ----------------------- Uploader ----------------------- */
.e-uploader {
    display: block !important;
    position: relative;
    margin: 0 !important;
    padding: 0 !important;
    cursor: pointer;
    white-space: normal;
}

.e-uploader input {
    visibility: hidden;
    position: absolute !important;
    z-index: 5;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    height: 100%;
    width: 100%;
    filter: alpha(opacity=0);
    -moz-opacity: 0;
    opacity: 0;
    border: none;
    background: none;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
}

.e-uploader_btn {
    display: inline-block;
    vertical-align: middle !important;
    padding: 8px 4px;
    height: 32px;
    width: 82px;
    font: 400 14px/1 'Roboto', sans-serif;
    -webkit-border-radius: 5px;
    border-radius: 5px;
    -webkit-transition: all 250ms !important;
    -o-transition: all 250ms !important;
    transition: all 250ms !important;
}

.e-uploader_file {
    display: inline-block;
    vertical-align: middle;
    min-width: 156px;
    padding-right: 16px;
    font: 400 16px 'Roboto', sans-serif;
    color: #000;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}