.btn.fa {
    font-family: 'FontAwesome';
}

.dataTable thead tr:nth-child(2) {
    display: none;
}

.dataTable.searchActive thead tr:nth-child(2) {
    display: table-row;
}

.dataTable .actions {
    margin: 0 .5em;
}

.dataTable .btn.actions:first-of-type {
    margin-left: 0;
}

.dataTable .btn.actions:last-of-type {
    margin-right: 0;
}

.dataTable .form-group {
    margin-bottom: 0;
}

.form-group {
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -ms-flex-direction: row;
    flex-direction: row;
    min-height: 2.25rem;
    margin-top: .2rem;
    margin-bottom: 2.25rem;
}

.form-group .input-group {
    position: relative;
    display: block;
}

.form-group .input-group {
    -ms-flex-item-align: end;
    align-self: flex-end;
}

.input-group {
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-align: stretch;
    -ms-flex-align: stretch;
    align-items: stretch;
    width: 100%;
}

.form-group .input-group input.form-control, .form-group .input-group textarea, .form-group .input-group select {
    display: block;
    background: none;
    padding: .125rem .125rem .0625rem;
    font-size: 1rem;
    border: 0 transparent;
    line-height: 1.9;
    width: 100%;
    -webkit-transition: all .28s ease;
    transition: all .28s ease;
    -webkit-box-shadow: none;
    box-shadow: none;
    height: 2.1rem;
}

.form-group .control-label {
    position: absolute;
    top: .25rem;
    left: 0;
    max-width: 100%;
    white-space: nowrap;
    text-overflow: ellipsis;
    pointer-events: none;
    padding-left: .125rem;
    z-index: 1;
    color: #de5050;
    font-size: 1rem;
    font-weight: 400;
    -webkit-transition: all .28s ease;
    transition: all .28s ease;
}

.form-group input[required] + .control-label:after {
    position: absolute;
    top: 0;
    right: -1.2em;
    width: 1em;
    height: 1em;
    content: '*';
}

.form-group .bar {
    position: relative;
    border-bottom: .0625rem solid #999;
    display: block;
}

.form-group .bar:before {
    content: "";
    height: .125rem;
    width: 0;
    left: 50%;
    bottom: -.0625rem;
    position: absolute;
    background: #555;
    -webkit-transition: left .28s ease, width .28s ease;
    transition: left .28s ease, width .28s ease;
    z-index: 2;
}

.form-group input:focus, .form-group select:focus, .form-group textarea:focus {
    outline: none;
    border-color: transparent;
    -webkit-box-shadow: none;
    -moz-box-shadow: none;
    box-shadow: none;
}

.form-group.show input ~ .control-label, .form-group input.form-file ~ .control-label, .form-group input.has-value ~ .control-label, .form-group input:focus ~ .control-label, .form-group input:valid ~ .control-label, .form-group select ~ .control-label, .form-group textarea.form-file ~ .control-label, .form-group textarea.has-value ~ .control-label, .form-group textarea:focus ~ .control-label, .form-group textarea:valid ~ .control-label {
    font-size: .6rem;
    color: #4ae387;
    font-weight: 600;
    text-transform: uppercase;
    top: -.75rem;
    left: 0;
}

.form-group .select2 ~ .control-label {
    top: -1rem;
}

.form-group .select2-container--default .select2-selection--single {
    border: none;
}

.form-group input:focus ~ .bar:before, .form-group select:focus ~ .bar:before, .form-group textarea:focus ~ .bar:before {
    width: 100%;
    left: 0;
}

.form-group .alert {
    font-size: .75rem;
    padding: .35rem;
}

.toast {
    width: 300px;
    -webkit-animation-name: bounceOutRight;
    -moz-animation-name: bounceOutRight;
    -o-animation-name: bounceOutRight;
    animation-name: bounceOutRight;
    -webkit-animation-duration: 1s;
    -moz-animation-duration: 1s;
    -o-animation-duration: 1s;
    animation-duration: 1s;
    transform: translate3d(2000px, 0, 0);
}

.toast.showing {
    opacity: 0;
}

.toast.show {
    -webkit-animation-name: bounceInRight;
    -moz-animation-name: bounceInRight;
    -o-animation-name: bounceInRight;
    animation-name: bounceInRight;
    transform: none;
}

.toast-wrapper:hover .toast.show, .toast-wrapper:hover .toast.show .progress-bar {
    -webkit-animation-play-state: paused;
    -moz-animation-play-state: paused;
    -o-animation-play-state: paused;
    animation-play-state: paused;
}

.toast-header {
    color: #474747;
}

.toast .progress {
    height: 4px;
}

.toast .progress-bar {
    transform: none;
}

.toast.show .progress-bar {
    width: 0;
    -webkit-animation-name: progressBar;
    -moz-animation-name: progressBar;
    -o-animation-name: progressBar;
    animation-name: progressBar;
    -webkit-animation-duration: 10s;
    -moz-animation-duration: 10s;
    -o-animation-duration: 10s;
    animation-duration: 10s;
}

.toast.alert-danger {
    background-color: var(--bs-alert-bg);
    color: var(--bs-alert-color);
}

@keyframes bounceInRight {
    from, 60%, 75%, 90%, to {
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    }
    from {
        opacity: 0;
        transform: translate3d(3000px, 0, 0);
    }
    60% {
        opacity: 1;
        transform: translate3d(-25px, 0, 0);
    }
    75% {
        transform: translate3d(10px, 0, 0);
    }
    90% {
        transform: translate3d(-5px, 0, 0);
    }
    to {
        transform: none;
    }
}

@keyframes bounceOutRight {
    from {
        opacity: 1;
        transform: none;
    }
    20% {
        opacity: 1;
        transform: translate3d(-20px, 0, 0);
    }
    40% {
        opacity: 1;
        transform: none;
    }
    to {
        opacity: 0;
        transform: translate3d(2000px, 0, 0);
    }
}

@keyframes progressBar {
    from {
        width: 100%
    }
    to {
        width: 0;
    }
}