/*
* @vendor      Asinteger Media
* @created     2022-05-01
* @package     UI Styles
*
* Copyright (C) 2024 Dmitriy Kudryashov <asinteger-media@yandex.ru>
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*/

/*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Buttons
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*/

.btn {
    padding: 0.525rem 0.75rem 0.525rem 0.75rem;
    line-height: 1.5;
    border: 1px solid #ddd;
    text-decoration: none;
    letter-spacing: .8px;
    border-radius: 5px;
    overflow: hidden;
    background: transparent;
    cursor: pointer;
    font-size: 10pt;
}

/* default */
.btn.default {
    background: transparent;
}

.btn.default:hover {

}

/* primary */
.btn.primary {
    background: #6fa3d6;
    color: #fff;
    border: 0;
}

.btn.primary:hover {
    background: rgba(111, 163, 214, 0.8);
}

/* element */
.btn.element {
    background: #925e8b;
    color: #fff;
    border: 0;
}

.btn.element:hover {
    background: rgba(146, 94, 139, 0.8);
}


.btn:disabled {
    opacity: 0.2;
}

.btn.hidden {
    display: none;
}


/* cancel */
.btn.cancel {
    background: silver;
    color: #fff;
    border: 0;
}

.btn.cancel:hover {
    background-color: #cccccc;
}


/* cancel */
.btn.delete {
    background: red;
    color: #fff;
    border: 0;
}

.btn.delete:hover {
    opacity: 0.5;
}

.btn.reload {
    background: #925e8b;
    color: #fff;
    border: 0;
}


/*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Tables
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*/

.st-table-container {
    overflow: auto;
    margin-top: 1em;

}

.st-table {
    width: 100%;
    padding: 0;
    margin: 0;
    border-collapse: collapse;
    display: table;
    box-sizing: border-box;
    border-spacing: 2px;
    border-color: grey;
}

.st-table th, td {
    padding: 5px;
    text-align: left;
    font-size: 10pt;
    border: 1px solid #ddd;
}


.st-table th {
    text-align: left;
    background-image: url(data:image/gif;base64,R0lGODlhAQAkAKIAAPT19/Lz9fP09vHy9PX2+Pb3+f///wAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OTJCN0YwNzMwODIzMTFFOEIyNDRDNzU5Rjc4RDBEMjQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OTJCN0YwNzQwODIzMTFFOEIyNDRDNzU5Rjc4RDBEMjQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5MkI3RjA3MTA4MjMxMUU4QjI0NEM3NTlGNzhEMEQyNCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5MkI3RjA3MjA4MjMxMUU4QjI0NEM3NTlGNzhEMEQyNCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAAAAAAALAAAAAABACQAAAMNaLrc9bCQSYC4YehREgA7);
    background-repeat: repeat-x;
    color: #646464;
    font-size: 10pt;
    height: 36px;
    cursor: default;
    white-space: nowrap;
    position: relative;
    padding-right: 32px;
    min-width: 100px;
}


.st-table th.sort {
    cursor: pointer;
}


.st-table th span {
    position: absolute;
    right: 5px;
    font-family: "Font Awesome 5 Free";
    width: 14px;
    font-size: 4pt;
    vertical-align: middle;
    color: #6fa3d6;
}

.st-table th span::after {
    content: "\f111";
    font-size: 4pt;
}

.st-table th.asc span:after {
    content: "\f0d8";
    font-size: 12pt;
    color: #646464;
}

.st-table th.dsc span:after {
    content: "\f0d7";
    font-size: 12pt;
    color: #646464;
}

.st-table tr:nth-child(odd) {
    background-color: #edeffe;
}

.st-table tr:hover {
    background: beige;
    cursor: pointer;
}

.st-table-settings-th {
    text-align: center !important;
    cursor: pointer !important;
    width: 32px !important;
    color: #646464;
}

.st-table-settings-td {
    text-align: center !important;
    cursor: pointer !important;
    width: 32px !important;
    color: #646464;
}

.st-table td {
    max-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.st-table td.true {
    background: #dfeed5;
}


/*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Forms
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*/
.st-form-group {
    padding-top: 1em;
    padding-bottom: 1em;
    position: relative;
}

.st-form-group button {
    margin-right: 0.5em;
}

.st-field-usb {
    top: 0;
    color: #999;
    float: right;
    margin-top: -34px;
    cursor: pointer;
    position: relative;
    width: 32px;
    height: 32px;
}

.st-field-usb::after {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    font-family: "Font awesome 5 Brands";
    font-weight: 900;
    content: "\f287";
    color: #6fa3d6;
}

.st-field-generate {
    top: 0;
    color: #999;
    float: right;
    margin-top: -34px;
    cursor: pointer;
    position: relative;
    width: 32px;
    height: 32px;
}

.st-field-generate::after {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    content: "\f522";
    color: #6fa3d6;
}

.st-field.hidden {
    display: none;
}


.st-form-passview {
    top: 0;
    color: #999;
    float: right;
    margin-top: -36px;
    cursor: pointer;
    position: relative;
    width: 32px;
    height: 32px;
}

.st-form-passview::after {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    font-family: "Font awesome 5 free";
    font-weight: 900;
    content: "\f023";
}

.st-form-passview.active::after {
    content: "\f13e";
}


.st-field {
    margin-bottom: 0.5em;
    padding: 0;
}


.st-field-error {
    font-size: 10pt;
    color: red;
    padding-top: 0.2em;
    padding-bottom: 0.2em;
    min-height: 10pt;
    display: none;
}


.st-field-error.active {
    display: flex;
}

.st-form-error {
    font-size: 10pt;
    color: red;
    width: 100%;
    text-align: center;
    padding: 0.5em;
}


.highlight {
    background: #fed330;
}

/* input */
input.default {
    position: relative;
    display: block;
    width: 100%;
    padding: 0.375rem 0.75rem;
    line-height: 1.5;
    font-size: 100%;
    color: #646464;
    background-color: #fff;
    background-clip: padding-box;
    border: 1px solid #ced4da;
    border-radius: 0.25rem;
    transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
}

input::placeholder {
    opacity: 0.7;
}

input:focus {
    border-color: #66afe9;
    outline: 0;
    /*-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 153, 204, 0.6);*/
    /*box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 153, 204, 0.6);*/
}

input.outlined {
    border: none;
    border-color: transparent;
    border-bottom: 1px solid darkgrey;
    border-radius: 0;
    box-shadow: none;
    font-size: 15px;
    background: transparent;
    padding-bottom: 1em;
    padding-top: 1em;
    width: 100%;
    color: #646464;
    text-indent: 0;
    outline: none;
    position: relative;
}

input.outlined:focus ~ label,
input.outlined:valid ~ label {
    top: -26px;
    left: 0;
}

label.default {
    display: inline-block;
    position: relative;
    background: #fff;
    color: #646464;
    white-space: nowrap;
    overflow: hidden;
    font-size: 10pt;
    margin: 0;
    line-height: 1em;
    font-weight: 600;
}

label.outlined {
    left: 0;
    top: 0;
    margin-top: 26px;
    position: absolute;
    color: #999;
    pointer-events: none;
    transition: .5s;
}

label.required:after {
    margin-left: 0.2em;
    content: '*';
    color: red;
}

label.top {
    color: #646464;
    position: absolute;
    top: 0.6em;
    left: 0.5em;
    background: #fff;
    font-size: 10pt;
    margin: 0;
    line-height: 1em;
    white-space: nowrap;
    overflow: hidden;
    border-radius: 0.25rem;
    padding-left: 0.5em;
    padding-right: 0.5em;
}

input[type="date"] {
    padding: 0.325rem 0.75rem;
}

/* switch */
.st-switch {
    position: relative;
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: 1.5em;
    min-width: 120px;
    max-width: 120px;
    padding: 0.475rem 0.75rem;
    line-height: 1.5;
    font-size: 100%;
    background-color: #fff;
    background-clip: padding-box;
    border: 1px solid #ced4da;
    border-radius: 0.25rem;
    transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
}


.st-switch label {
    position: absolute;
    width: 100%;
    height: 100%;
    left: 0;
    z-index: 2;
    cursor: pointer;
}

.st-switch input[type="checkbox"] {
    display: none;
}

.st-switch input[type="checkbox"]:checked ~ .switch {
    left: 0.2rem;
}

.st-switch .btn {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    margin: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    border: 0;
    color: #646464;
}

.st-switch .btn.active {
    color: #fff;
    transition: all 0.4s;
}

.st-switch .switch {
    width: 58px;
    height: calc(100% - 0.4rem);
    display: flex;
    position: absolute;
    cursor: pointer;
    background: #6fa3d6;
    background-clip: padding-box;
    border-radius: 0.25rem;
    color: #fff;
    z-index: 0;
    transition: all 0.4s;
    left: 58px;
    top: 0.2rem;
}

/* dropdown */
.st-dropdown {
    padding: 0;
    margin-bottom: 0.5em;
}

.st-dropdown input[type="checkbox"] {
    display: none;
}


.st-dropdown input[type="checkbox"]:checked ~ label .st-dropdown-body {
    visibility: visible;
    height: auto;
    box-sizing: border-box;
}


.st-dropdown-container {
    position: relative;
    display: block;
    padding: 0.375rem 0.75rem;
    line-height: 1.5em;
    color: #646464;
    background-color: #fff;
    background-clip: padding-box;
    border: 1px solid #ced4da;
    border-radius: 0.25rem;
    transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
    cursor: pointer;
    background-image: linear-gradient(to right, #999, #999);
    background-position: calc(100% - 30px), calc(0.85em + 2px), calc(100% - 2.5em);
    background-size: 1px 1.5em;
    background-repeat: no-repeat;
}

.st-dropdown-container:after {
    font-family: "Font Awesome 5 Free";
    position: absolute;
    content: '\f0d7';
    color: #66afe9;
    font-weight: 900;
    right: 10px;
    top: 7px;
    animation: rotateX-180-0 500ms ease-in-out forwards;

}

.st-dropdown input[type="checkbox"]:checked ~ label .st-dropdown-container:after {
    animation: rotateX-0-180 500ms ease-in-out forwards;
}


.st-dropdown .st-dropdown-header {
    width: calc(100% - 2.25em);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.st-dropdown .st-dropdown-body {
    left: 0;
    visibility: hidden;
    height: 0;
    background: #fff;
    border: 1px solid #66afe9;
    border-radius: 0.25rem;
    position: absolute;
    z-index: 100000;
    width: 100%;
    margin-top: 0.6em;
}


.st-dropdown ul {
    list-style-type: none;
    padding: 0;
    margin: 0;
    overflow-y: auto;
    max-height: 250px;
}

.st-dropdown li {
    padding: 0.375rem 0.75rem 0.375rem 0.75rem;
    cursor: pointer;
    white-space: nowrap;
    text-overflow: ellipsis;

}

.st-dropdown li:hover {
    background: beige;
    border-radius: 0.25rem;
}

.st-dropdown li.selected {
    background: beige;
    border-radius: 0.25rem;
}


/*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Media Elements
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*/

.st-media-container {
    display: flex;
    align-items: center;
    justify-content: center;
}


.st-media-path {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding-top: 1em;
    width: 100%;
}

.st-media-path ul {
    list-style-type: none;
    padding: 0;
    margin: 0;
}

.st-media-path li {
    float: left;
}

.st-media-path li a {
    cursor: pointer;
    color: #336699;
    border-bottom: 1px solid #5c85ad;
}

.st-media-path li a:hover {
    border-bottom: 1px solid red;
    color: red;
}

.st-media-path li:after {
    content: "▸";
    color: #5c85ad;
    cursor: default;
    margin: 0 12px;
}

.st-media-path li.last a {
    color: #336699;
    font-weight: bold;
    border: none;
    cursor: default;
}

.st-media-path li.last:after {
    content: "";
}


.st-media-empty {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 10em;
    font-weight: bold;
}

.st-media-elements {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5em;
    align-items: center;
    justify-content: center;
}

.st-media-element {
    padding: 1em;
    width: 280px;
    height: 165px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    font-size: 10pt;
    border: 1px dashed silver;
    border-radius: 12px;
}

.st-media-element a {
    text-decoration: none;
    outline: none;
    border: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}


.st-media-element.active {
    background: beige;
    border-radius: 12px;
}


.st-media-element:hover {
    background: beige;
    border-radius: 12px;
    cursor: pointer;
}

.st-media-element div {
    text-align: center;
}

.st-media-element img {
    filter: invert(71%) sepia(7%) saturate(3249%) hue-rotate(179deg) brightness(87%) contrast(91%);
}

.st-media-element .image i {
    font-size: 48px;
    color: rgba(111, 163, 214, 1);
}

.st-media-element .text {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
    overflow: hidden;
}

.st-media-element .update {
    visibility: hidden;
    cursor: pointer;
    top: 12px;
    right: 12px;
    position: absolute;
}

.st-media-element .update i {
    color: #5c85ad;
    font-size: 12pt;
}

.st-media-element:hover .update {
    visibility: visible;
}

.st-media-element .update:hover i {
    color: #925e8b;
}


/* IMAGE */
.st-image-element {
    padding: 1em;
    max-width: 425px;
    height: auto;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    border: 1px dashed silver;
    border-radius: 12px;
}

.st-image-element a {
    text-decoration: none;
    outline: none;
    border: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}


.st-image-element.active {
    background: beige;
    border-radius: 12px;
}


.st-image-element:hover {
    background: beige;
    border-radius: 12px;
    cursor: pointer;
}

.st-image-element .image-container {
    width:100%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
}



.st-image-element img {
    width:100%;
    height:auto;
    border-top-left-radius: 12px;
    border-top-right-radius: 12px;
}


.st-image-element .text {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
    overflow: hidden;
    font-size: 12pt;
    color: #233440;
    margin-top: 0.5em;
}

@media (max-width: 768px) {
    .st-image-element {
        width: calc(100% - 48px);
    }
}


/* Pagination */
.st-pagination {
    display: block;
    margin-top: 1em;
}

.st-pagination .control {
    display: flex;
    align-items: center;
}

.st-pagination .description {
    display: flex;
}


.st-pagination .page {
    display: inline-block;
    border-radius: 50%;
    cursor: pointer;
    min-width: 38px;
    font-size: 18px;
    line-height: 38px;
    text-align: center;
    margin: 0.5em;
}

.st-pagination .page:hover {
    background: beige;
}

.st-pagination .page.current {
    background: #edeffe;
}

.st-pagination .prev, .next {
    cursor: pointer;
}

.st-pagination .prev[disabled], .next[disabled] {
    pointer-events: none;
    cursor: none;
    opacity: 0.4;
}

/*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Modal
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*/
.st-overlay {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    margin: auto;
    z-index: 10001;
    background-color: rgba(0, 0, 0, .5);
    visibility: hidden;
    opacity: 0;
    transition: all 0.3s;
}

.st-overlay.open {
    opacity: 1;
    visibility: visible;
}

.st-modal-window {
    background: #fff;
    width: 100%;
    max-width: 480px;
    height: 100%;
    z-index: 10002;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    visibility: hidden;
    opacity: 0;
    transition: all 0.3s;
    animation-name: slideLeftRight;
    animation-duration: 1s;
}

.st-modal-window.open {
    opacity: 1;
    visibility: visible;
    animation-name: slideRight;
    animation-duration: 0.5s;
}

.st-modal-header {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
    background: #fff;
}

.st-modal-header .title {
    font-size: 14pt;
    line-height: 1.5;
    padding: 1em;
    width: 100%;
    border-bottom: 1px solid silver;
}

.st-modal-header .close {
    width: 16px;
    height: 16px;
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M1.793 1.796a1 1 0 0 0 0 1.414l4.793 4.793-4.793 4.793a1 1 0 0 0 1.414 1.414L8 9.417l4.793 4.793a1 1 0 0 0 1.414-1.414L9.414 8.003l4.793-4.793a1 1 0 0 0-1.414-1.414L8 6.589 3.207 1.796a1 1 0 0 0-1.414 0z' fill='%238b93a5'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    float: right;
    margin-left: -2em;
    cursor: pointer;
}

.st-modal-body {
    padding: 1.2em;
    background: #fff;
}

.st-modal-footer {
    padding: 1em;
    background: #fff;
}

.st-modal-footer .error {
    display: none;
}

.st-modal-footer .error.active {
    display: block;
    color: red;
}

/*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Gallery
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*/
.st-gallery-modal {
    position: fixed;
    display: flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    height: calc(100vh - 3em);
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    background: #fff;
    border-radius: 15px;
    z-index: 100001;
    padding: 1em;
    visibility: hidden;
    opacity: 0;
}

.st-gallery-modal__container {
    width: auto;
    height: 100%;
    overflow-x: hidden;
    overflow-y: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}

.st-gallery-modal__container .items {
    width: auto;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: left;
    flex-wrap: nowrap;
    opacity: 0;
    visibility: hidden;
}

.st-gallery-modal__container .items.active {
    opacity: 1;
    visibility: visible;
}


.st-gallery-modal img {
    width: auto;
    height: 100%;
    margin: 0;
    padding: 0;
    border-radius: 15px;
    outline: none;
}


.st-gallery-modal.open {
    visibility: visible;
    opacity: 1;
    transition: all 1000ms;
}

.st-gallery-modal__close {
    position: absolute;
    top: -18px;
    right: -18px;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 100002;
    cursor: pointer;
    font-size: 14pt;
    width: 48px;
    height: 48px;
}

.st-gallery-modal__close svg {

    padding: 1px;
    color: silver;
    width: 36px;
    height: 36px;
}

.st-gallery-modal__prev, .st-gallery-modal__next {
    position: absolute;
    top: calc(50% - 24px);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 100003;
    cursor: pointer;
    background: #fff;
    border-radius: 5px;
    width: 36px;
    height: 48px;
    visibility: hidden;
    opacity: 0;
}

.st-gallery-modal__prev.disabled {
    opacity: 0.5;
    pointer-events: none;
}

.st-gallery-modal__next.disabled {
    opacity: 0.5;
    pointer-events: none;
}

.st-gallery-modal__prev.active {
    visibility: visible;
    opacity: 1;
}

.st-gallery-modal__next.active {
    visibility: visible;
    opacity: 1;
}

.st-gallery-modal__prev:hover {
    background: #f4f4f4;
}

.st-gallery-modal__next:hover {
    background: #f4f4f4;
}


.st-gallery-modal__prev {
    left: 18px;
}

.st-gallery-modal__next {
    right: 18px;
}

.st-gallery-modal__prev svg {

}

@media (max-width: 768px) {
    .st-gallery-modal {
        width: calc(100% - 2em);
    }

    .st-gallery-modal img {
        width: 100%;
        height: auto;
    }
}

/*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Spinner
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*/
.spinner {
    -webkit-animation: rotate 2s linear infinite;
    animation: rotate 2s linear infinite;
    z-index: 1000000;
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    margin: auto;
    width: 50px;
    height: 50px;
    visibility: hidden;
    opacity: 0;
}

.spinner.open {
    opacity: 1;
    visibility: visible;
}

.spinner .path {
    stroke: #233440;
    stroke-linecap: round;
    -webkit-animation: dash 1.5s ease-in-out infinite;
    animation: dash 1.5s ease-in-out infinite;
}

@-webkit-keyframes rotate {
    100% {
        transform: rotate(360deg);
    }
}

@keyframes rotate {
    100% {
        transform: rotate(360deg);
    }
}

@-webkit-keyframes dash {
    0% {
        stroke-dasharray: 1, 150;
        stroke-dashoffset: 0;
    }
    50% {
        stroke-dasharray: 90, 150;
        stroke-dashoffset: -35;
    }
    100% {
        stroke-dasharray: 90, 150;
        stroke-dashoffset: -124;
    }
}

@keyframes dash {
    0% {
        stroke-dasharray: 1, 150;
        stroke-dashoffset: 0;
    }
    50% {
        stroke-dasharray: 90, 150;
        stroke-dashoffset: -35;
    }
    100% {
        stroke-dasharray: 90, 150;
        stroke-dashoffset: -124;
    }
}