form {
    padding: 1em 0 0 0;
}

fieldset {
    border: 1px solid #eee;
    border-radius: 4px;
    margin: 1em 0;
}

legend {
    font-size: .875em;
}

input[type=checkbox],
input[type=email],
input[type=file],
input[type=number],
input[type=password],
input[type=radio],
input[type=search],
input[type=tel],
input[type=text],
select,
textarea {
    background: #fafafa none no-repeat right center;
    border: 1px solid rgba(159, 163, 181, 0.15);
    border-radius: 4px;
    box-shadow: none;
    color: #262a3e;
    font-size: .875rem;
    font-weight: 400;
    line-height: 1.375rem;
    outline: none;
    padding: 8px 12px;
    position: relative;
    width: 100%;
    transition: border-color .5s;
}

input[type=number] {
    display: block;
    width: auto;
}

input[type=checkbox],
input[type=radio] {
    display: inline-block;
    line-height: 1;
    margin-right: .5em;
    padding: .75em;
    position: relative;
    width: .75em;
    height: .75em;
    vertical-align: middle;
}

input[type=checkbox]::-ms-check,
input[type=radio]::-ms-check {
    border: none;
    background: transparent;
    color: #0091ff;
    font-size: 1em;
    width: 1.5em;
    height: 1.5em;
}

input[type=checkbox]:after,
input[type=radio]:after {
    font-family: "Material Icons", sans-serif;
    color: #0091ff;
    content: "done";
    display: block;
    font-size: 2rem;
    line-height: 1rem;
    opacity: 0;
    position: absolute;
    left: 0; top: 0;
    right: 0; bottom: 0;
    transition: .2s ease;
    transform: scale(.2);
}

input[type=checkbox]:checked:after,
input[type=radio]:checked:after {
    opacity: 1;
    transform: scale(1);
    animation: checkbox-drop-in .2s;
}

@keyframes checkbox-drop-in {
    0% { transform: scale(3); opacity: 0}
    100% { transform: scale(1); opacity: 1}
}

select:not([multiple]) {
    background-image: url(../svg/expand_more.svg);
    background-size: 16px 16px;
    background-position: right .5em center;
}

.filters input[type],
.filters select {
    background-color: rgba(159, 163, 181, 0.1);
    border-color: transparent;
    padding: 4px 6px;
}

form table input[type]:not([type=checkbox]),
form table select {
    padding: 4px 6px;
}

input[type=text]:focus,
input[type=tel]:focus,
input[type=file]:focus,
input[type=email]:focus,
input[type=password]:focus,
input[type=search]:focus,
select:focus,
textarea:focus {
    border-color: #6b5aed;
}

.form-group.has-error input[type],
.form-group.has-error input[type=text],
.form-group.has-error input[type=tel],
.form-group.has-error input[type=file],
.form-group.has-error input[type=email],
.form-group.has-error input[type=password],
.form-group.has-error input[type=search],
.form-group.has-error select,
.form-group.has-error textarea {
    border-color: mediumvioletred;
}

::-webkit-file-upload-button {
    visibility: hidden;
    width: 1px;
}

input[type=file]::-ms-value {
    background: transparent;
    border: none;
}
::-ms-browse {
    display: none;
}
::-webkit-input-placeholder { /* Chrome/Opera/Safari */
    color: #9fa3b5;
}
::-moz-placeholder { /* Firefox 19+ */
    color: #9fa3b5;
}
:-ms-input-placeholder { /* IE 10+ */
    color: #9fa3b5;
}
:-moz-placeholder { /* Firefox 18- */
    color: #9fa3b5;
}

input[type=checkbox],
input[type=radio],
select {
    -webkit-appearance: none;
}

select:-moz-focusring {
    color: transparent;
    text-shadow: 0 0 0 #000;
}

label {
    display: inline-block;
    font-size: .875em;
    font-weight: 600;
    padding: .5em .5em .5em 0;
}

form > .row {
    /*background: red;*/
    align-content: flex-start;
    display: flex;
    flex-flow: row wrap;
    justify-content: flex-start;
    /*justify-content: space-between;*/
    padding: 0 0 0 2em;
    margin: 0 -2em 0 -2em;
}

form > .row > .form-group {
    /*background: blue;*/
    flex: 1 1 auto;
    margin: 0 2em .5em 0;
    min-width: 140px;
}

form > .form-group {
    margin: .5em 0;
}

form > .form-group:last-child {
    margin-top: 2em;
}

td .form-group, tr:first-child td .form-group + .form-group {
    margin: 0;
}

tr:first-child td .form-group {
    margin-top: .5em;
}

.hint-block,
.error-summary,
.help-block {
    color: #9fa3b5;
    display: block;
    font-size: .875em;
    padding: .25em 0;
}

.help-block,
.error-summary {
    color: mediumvioletred;
}

.hint-block:empty,
.help-block:empty {
    display: none;
}
