/**
 * Global CEP layout styles (extracted from resources/views/master/app.blade.php).
 */
@import url(https://fonts.googleapis.com/css?family=Raleway:500);

.form-control:disabled,
.form-control[readonly] {
    background-color: #f2f2f2;
    opacity: 1;
}

input[type="checkbox"] {
    width: auto !important;
}

/*
 * Modal sizing: keep a responsive max width without fit-content min-width,
 * which forced wide content (tables, pre blocks) to expand past the viewport.
 */
.modal-dialog {
    width: auto;
    max-width: min(800px, calc(100vw - 1.5rem));
    margin: 1.75rem auto;
}

.modal-dialog.modal-lg {
    max-width: min(800px, calc(100vw - 1.5rem));
}

.modal-dialog.modal-max,
.modal-max {
    max-width: min(1140px, calc(100vw - 1.5rem));
}

.modal-content {
    max-width: 100%;
}

.modal-body {
    max-height: min(70vh, 720px);
    overflow-y: auto;
}

.modal-header {
    cursor: move;
}

.modal {
    overflow-x: hidden;
    overflow-y: auto;
}

.dt-paging {
    display: flex;
    justify-content: end;
}

.dt-length {
    margin: 10px;
}

.dt-search {
    float: inline-end;
    margin: 10px;
}

.table-responsive select {
    margin-bottom: auto;
    margin-top: auto;
}

.table-responsive table {
    margin: 10px 0 !important;
}

.progressbar {
    text-align: center;
    width: 100%;
    zoom: 2;
}

.progressbar .counter div {
    background-color: white;
    display: inline-block;
    border: 2px solid grey;
    border-radius: 50%;
    width: 2em;
    height: 2em;
    vertical-align: top;
    z-index: 101;
    position: inherit;
}

.progressbar img {
    height: 1.3em;
    margin-top: 2.5px;
}

.progressbar .active img.inactive {
    display: none !important;
}

.progressbar .active img.active {
    display: inherit !important;
}

.progressbar .counter td {
    cursor: pointer;
    text-align: center;
    position: relative;
}

.progressbar .counter span {
    position: absolute;
    top: 1em;
    left: -50%;
    width: 100%;
    border-top: 2px solid grey;
    z-index: 100;
}

.progressbar strong {
    font-size: 8px;
    width: 70px;
    display: inline-block;
}

.progressbar .active,
.progressbar .active * {
    border-color: orange !important;
    color: orange !important;
}

.table td,
.table th {
    vertical-align: middle;
}

/* Toggle switch */
.switch {
    position: relative;
    display: inline-block;
    width: 40px;
    height: 21px;
}

.switch input {
    opacity: 0;
    width: 0;
    height: 0;
}

.slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #ccc;
    -webkit-transition: 0.4s;
    transition: 0.4s;
}

.slider:before {
    position: absolute;
    content: "";
    height: 15px;
    width: 15px;
    left: 2px;
    bottom: 3px;
    background-color: white;
    -webkit-transition: 0.4s;
    transition: 0.4s;
}

input:checked + .slider {
    background-color: #2196f3;
}

input:focus + .slider {
    box-shadow: 0 0 1px #2196f3;
}

input:checked + .slider:before {
    -webkit-transform: translateX(20px);
    -ms-transform: translateX(20px);
    transform: translateX(20px);
}

.slider.round {
    border-radius: 34px;
}

.slider.round:before {
    border-radius: 50%;
}

table {
    border-spacing: 0;
}

@media (max-width: 990px) {
    .not-for-mobile {
        display: none;
    }
}

@media (min-width: 992px) {
    .not-for-desktop {
        display: none;
    }
}

[data-toggle="collapse"] {
    cursor: pointer;
}

/* Hide only sidenav scrollbars; keep page/table scrollbars usable */
#mainNav .navbar-sidenav::-webkit-scrollbar {
    width: 0;
    height: 0;
}

.table-responsive::-webkit-scrollbar,
.modal-body::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

.table-responsive::-webkit-scrollbar-track,
.modal-body::-webkit-scrollbar-track {
    background: #c8ebff;
}

.table-responsive::-webkit-scrollbar-thumb,
.modal-body::-webkit-scrollbar-thumb {
    background: #00519b;
    border-radius: 4px;
}

.table-responsive::-webkit-scrollbar-thumb:hover,
.modal-body::-webkit-scrollbar-thumb:hover {
    background: #003b72;
}

[data-lity] {
    cursor: pointer;
}

@-moz-keyframes leftAnim {
    100% {
        -moz-transform: translateX(97px);
        transform: translateX(97px);
    }

    0% {
        -moz-transform: translateX(0);
        transform: translateX(0);
    }
}

@-webkit-keyframes leftAnim {
    100% {
        -webkit-transform: translateX(97px);
        transform: translateX(97px);
    }

    0% {
        -webkit-transform: translateX(0);
        transform: translateX(0);
    }
}

@keyframes leftAnim {
    100% {
        -moz-transform: translateX(97px);
        -ms-transform: translateX(97px);
        -webkit-transform: translateX(97px);
        transform: translateX(97px);
    }

    0% {
        -moz-transform: translateX(0);
        -ms-transform: translateX(0);
        -webkit-transform: translateX(0);
        transform: translateX(0);
    }
}

@-moz-keyframes rightAnim {
    0% {
        -moz-transform: translateX(0);
        transform: translateX(0);
    }

    100% {
        -moz-transform: translateX(-93px);
        transform: translateX(-93px);
    }
}

@-webkit-keyframes rightAnim {
    0% {
        -webkit-transform: translateX(0);
        transform: translateX(0);
    }

    100% {
        -webkit-transform: translateX(-93px);
        transform: translateX(-93px);
    }
}

@keyframes rightAnim {
    0% {
        -moz-transform: translateX(0);
        -ms-transform: translateX(0);
        -webkit-transform: translateX(0);
        transform: translateX(0);
    }

    100% {
        -moz-transform: translateX(-93px);
        -ms-transform: translateX(-93px);
        -webkit-transform: translateX(-93px);
        transform: translateX(-93px);
    }
}

@keyframes z_in {
    0% {
        z-index: 10;
    }

    100% {
        z-index: 0;
    }
}

.loader {
    width: 300px;
    height: 150px;
    margin: 0 auto;
    position: relative;
}

.loader::after {
    display: inline-block;
    position: absolute;
    left: 50%;
    margin-left: -1px;
    width: 2px;
    z-index: 1;
    height: 150px;
    border-left: 2px dotted #000;
}

.loader__box {
    position: absolute;
    top: 0;
    width: 150px;
    height: 150px;
    z-index: 2;
}

.loader--left {
    animation: z_in 1s ease-in-out infinite;
    left: 0;
}

.loader--left .loader__circle {
    right: 10px;
    -moz-animation: leftAnim 1.3s ease-in-out alternate infinite;
    -webkit-animation: leftAnim 1.3s ease-in-out alternate infinite;
    animation: leftAnim 0.5s ease-in-out alternate infinite;
}

.loader--right {
    right: 0;
}

.loader--right .loader__circle {
    left: 10px;
    -moz-animation: rightAnim 1.3s ease-in-out alternate infinite;
    -webkit-animation: rightAnim 1.3s ease-in-out alternate infinite;
    animation: rightAnim 0.5s ease-in-out alternate infinite;
}

.loader__circle {
    width: 75px;
    height: 75px;
    -moz-border-radius: 50%;
    -webkit-border-radius: 50%;
    border-radius: 50%;
    position: absolute;
    top: 50%;
    margin-top: -37.5px;
}

.v-align {
    position: absolute;
    text-align: center;
    left: 0;
    width: 100%;
    max-height: 90vh;
    top: 50%;
    -moz-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
}

.showDiv {
    display: block;
}

.hideDiv {
    display: none;
}

.content-wrapper {
    opacity: 1;
    max-width: 100%;
}

.margin-right-10 {
    margin-right: 0.333em;
}

.pointer {
    cursor: pointer;
}

.center {
    text-align: center !important;
}

.fa-times,
.fa-times-circle,
.fa-times-circle-o,
.fa-times-rectangle,
.fa-times-rectangle-o {
    cursor: pointer;
}

/* Select2: keep menus above Bootstrap modal backdrops + center text */
.modal .select2-container {
    z-index: 1060;
}

.select2-container--open {
    z-index: 1065;
}

.select2-container .select2-selection--single {
    height: 28px !important;
    display: flex !important;
    align-items: center;
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 26px !important;
    top: 1px !important;
}

.select2-container .select2-selection--single .select2-selection__rendered,
.select2-container--default .select2-selection--single .select2-selection__rendered,
.select2-container--default .select2-selection--single .select2-selection__placeholder {
    display: block !important;
    width: 100% !important;
    box-sizing: border-box !important;
    text-align: center !important;
    line-height: 26px !important;
    padding-left: 28px !important;
    padding-right: 28px !important;
    margin: 0 !important;
}

.select2-container--default .select2-results__option {
    text-align: center !important;
}

/* Wide tables scroll inside their container, not the page */
.content-wrapper .table-responsive {
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

@media (max-width: 991.98px) {
    .content-wrapper {
        margin-left: 0;
        padding-left: 0.75rem;
        padding-right: 0.75rem;
    }

    .dt-search,
    .dt-length,
    .dt-paging {
        float: none;
        justify-content: flex-start;
        width: 100%;
    }
}

/* Snowfall animations (optional seasonal UI) */
@keyframes navbar-fall {
    to {
        transform: translateY(60px) translateX(var(--x-offset, 0));
        opacity: 0;
    }
}

@keyframes sidebar-fall {
    to {
        transform: translateY(calc(100vh - 60px)) translateX(var(--x-offset, 0));
        opacity: 0;
    }
}

.hidden-field {
    display: none;
}

.padding-15 {
    padding-right: 15px;
}

.Hide {
    display: none !important;
}
