@font-face {
    font-family: 'Poppins';
    src: url('/Assets/Fonts/Poppins/Poppins-Regular.ttf');
}

@font-face {
    font-family: 'OpenSans';
    src: url('/Assets/Fonts/OpenSans/OpenSans-Regular.ttf');
}

[disabled="true"] {
    pointer-events: none;
    opacity: 0.5;
}

.pointer-events-none {
    pointer-events: none;
}

* {
    box-sizing: border-box;
    background: initial;
    border: initial;
    outline: initial;
    color: inherit;
    font-size: inherit;
    font-family: inherit;
    font-weight: inherit;
    font-style: inherit;
    text-align: inherit;
    text-decoration: inherit;
    margin: initial;
    padding: initial;
}

html {
    font-size: 18px;
    font-family: 'Poppins';
    font-weight: 400;
    overflow-y: auto;
    overflow-x: hidden;
    max-width: 100vw;
}

b,
strong {
    font-weight: 700;
}

i {
    font-style: italic;
}

a {
    cursor: pointer;
}

table {
    border-collapse: collapse;
    border-radius: 10px;
    width: 100%;
    overflow: hidden;
}

table tr {}

table tr th {
    text-align: center;
    text-transform: uppercase;
    padding: 1rem;
}

table tr td {
    padding: 1rem;
}

hr {
    border-bottom: 1px solid #7f7f7f;
}

iframe {
    display: block;
    width: 100%;
}

img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: initial;
}

video {
    display: block;
    width: 100%;
    max-width: 100%;
}

label {
    display: block;
    width: 100%;
}

input {
    display: block;
    width: 100%;
}

textarea {
    resize: vertical;
    display: block;
    width: 100%;
    overflow-y: auto;
}

textarea[rows] {
    resize: none;
}

select {
    display: block;
    width: 100%;
}

option {
    font-family: Arial, Helvetica, sans-serif;
    letter-spacing: 0.1em;
}

button {
    cursor: pointer;
    display: block;
    width: 100%;
    transition: 0.4s opacity;
}

button:hover {
    opacity: 0.5;
}

ul {
    padding-left: 2rem;
}

ol {
    padding-left: 2rem;
}

fieldset {
    padding-inline-start: 0.25rem;
}

fieldset legend {
    padding-inline-start: 0.25rem;
    padding-inline-end: 0.25rem;
}

.alert {
    background-color: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    position: fixed;
    left: 0px;
    top: 0px;
    width: 100%;
    height: 100%;
    z-index: 999;
    transition: 0.4s opacity;
}

.alert:not([open="true"]) {
    opacity: 0;
}

.alert .alert-content {
    background-color: white;
    color: black;
    display: flex;
    flex-direction: column;
    min-width: 360px;
    transition: 0.4s transform;
}

.alert:not([open="true"]) .alert-content {
    transform: translateY(-100px);
}

.alert .alert-content .alert-buttons {
    display: flex;
    justify-content: flex-end;
}

.alert .alert-content .alert-button {
    color: #7f7f7f;
    cursor: pointer;
    align-self: flex-end;
    padding: 1rem;
}

.alert .alert-content .alert-inside {
    padding: 1rem;
}

.alert .alert-content .alert-inside .alert-title {
    color: black;
}

.alert .alert-content .alert-inside .alert-main {
    color: black;
}

.alert[type="Error"] .alert-content .alert-inside .alert-title {
    color: crimson;
}

.alert[type="Warning"] .alert-content .alert-inside .alert-title {
    color: goldenrod;
}

.alert[type="Success"] .alert-content .alert-inside .alert-title {
    color: forestgreen;
}

.block-shop-category-list {
    display: flex;
    flex-wrap: wrap;
}

.block-shop-manufacturer-list {
    display: flex;
    flex-wrap: wrap;
}

.block-shop-product-list {
    display: flex;
    flex-wrap: wrap;
}

.color-picker {
    display: flex;
    flex-direction: column;
    padding: 15px;
    gap: 15px;
    --hue: 0;
    --saturation: 50%;
    --lightness: 50%;
    --left: hsl(var(--hue), 0%, 50%);
    --right: hsl(var(--hue), 100%, 50%);
    --top: rgba(255, 255, 255, 1);
    --middle: rgba(255, 255, 255, 0);
    --bottom: rgba(0, 0, 0, 1);
}

.color-picker .color-picker-main-input {
    background-image: linear-gradient(to bottom, var(--top), var(--middle), var(--bottom)), linear-gradient(to right, var(--left), var(--right));
    aspect-ratio: 1/1;
    position: relative;

}

.color-picker .color-picker-main-input::after {
    position: absolute;
    display: block;
    border-radius: 8px;
    box-shadow: 0px 0px 4px #7f7f7f;
    border: 1px solid black;
    content: '';
    left: var(--saturation);
    bottom: var(--lightness);
    transform: translate(-4px, 4px);
    width: 8px;
    height: 8px;
}

.color-picker .color-picker-hue-input {
    -webkit-appearance: none;
    background-image: linear-gradient(to right,
            hsl(0, 100%, 50%),
            hsl(45, 100%, 50%),
            hsl(90, 100%, 50%),
            hsl(135, 100%, 50%),
            hsl(180, 100%, 50%),
            hsl(225, 100%, 50%),
            hsl(270, 100%, 50%),
            hsl(315, 100%, 50%),
            hsl(360, 100%, 50%));
    border-radius: 100px;

}

.color-picker .color-picker-hue-input::-moz-range-thumb {
    width: 16px;
    height: 16px;
    background: #7f7f7f;
    border: none;
    cursor: pointer;
    border-radius: 100px;
}

.color-picker .color-picker-alpha-input {
    -webkit-appearance: none;
    background-image: linear-gradient(to right, rgba(0, 0, 0, 0), var(--right));
    border-radius: 100px;

}

.color-picker .color-picker-alpha-input::-moz-range-thumb {
    width: 16px;
    height: 16px;
    background: #7f7f7f;
    border: none;
    cursor: pointer;
    border-radius: 100px;
}

.color-picker .color-picker-input {}

.color-picker .color-picker-saved {
    display: flex;
    flex-wrap: wrap;
}

.color-picker .color-picker-saved .color-picker-color {
    padding: 0.5rem;
    width: 20%;
}

.color-picker .color-picker-saved .color-picker-color .color-picker-color-content {
    background-image: url('/Assets/Images/Checkerboard.png');
    cursor: pointer;
    border-radius: 100px;
    outline: 1px solid #7f7f7f;
    aspect-ratio: 1/1;
    position: relative;
    width: 100%;
    transition: 0.4s outline;
    overflow: hidden;
}

.color-picker .color-picker-saved .color-picker-color .color-picker-color-content::after {
    background-color: var(--background-color);
    content: '';
    display: block;
    position: absolute;
    left: 0px;
    top: 0px;
    right: 0px;
    bottom: 0px;
}

.color-picker .color-picker-saved .color-picker-color .color-picker-color-content:hover {
    outline-color: black;
}

.context {
    position: fixed;
    left: 0px;
    top: 0px;
    width: 100%;
    height: 100%;
    user-select: none;
    z-index: 999;
}

.context .context-content {
    position: absolute;
    left: calc(var(--x) * 1px);
    top: calc(var(--y) * 1px);
}

.context .context-content .context-title {
    background-color: #333;
    color: goldenrod;
    box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.5);
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 5px;
    white-space: nowrap;
}

.context .context-content .context-main {
    background-color: white;
    color: black;
    box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.5);
    display: flex;
    flex-direction: column;
}

.context .context-button {
    background-color: black;
    color: white;
    padding: 5px;
    cursor: pointer;
    position: relative;
    white-space: nowrap;
    transition: 0.4s background-color, 0.4s color;
}

.context .context-button:hover {
    background-color: white;
    color: black;
}

.context .context-button>.context-button-menu {
    background-color: white;
    color: black;

    position: absolute;
    left: 100%;
    top: 0px;
}

.context .context-button:not(:hover)>.context-button-menu {
    display: none;
}

.drag-list {
    user-select: none;
}

.drag-list .drag-item {
    display: flex;
    flex-direction: column;
}

.drag-list .drag-item .drag-item-header {
    display: flex;
    padding: 0.25rem;
    width: 100%;
}

.drag-list .drag-item .drag-item-header .drag-button {
    cursor: grab;
    padding: 0.25rem;
}

.drag-list .drag-item .drag-item-header .drag-content {
    flex-grow: 1;
    padding: 0.25rem;
    width: 0%;
}

.drag-list .drag-item .drag-item-children {
    padding-left: 1rem;
    width: 100%;
}

.row {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
}

.col {
    display: flex;
    flex-direction: column;
}

.col-1 {
    width: calc(1 / 12 * 100%);
}

.col-2 {
    width: calc(2 / 12 * 100%);
}

.col-3 {
    width: calc(3 / 12 * 100%);
}

.col-4 {
    width: calc(4 / 12 * 100%);
}

.col-5 {
    width: calc(5 / 12 * 100%);
}

.col-6 {
    width: calc(6 / 12 * 100%);
}

.col-7 {
    width: calc(7 / 12 * 100%);
}

.col-8 {
    width: calc(8 / 12 * 100%);
}

.col-9 {
    width: calc(9 / 12 * 100%);
}

.col-10 {
    width: calc(10 / 12 * 100%);
}

.col-11 {
    width: calc(11 / 12 * 100%);
}

.col-12 {
    width: calc(12 / 12 * 100%);
}

.padding-5 {
    padding: 5px;
}

.padding-10 {
    padding: 10px;
}

.padding-20 {
    padding: 20px;
}

.buttons {
    display: flex;
    align-items: center;
    text-align: center;
    gap: 10px;
}

.modal {
    background-color: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 5rem;
    position: fixed;
    left: 0px;
    top: 0px;
    width: 100%;
    height: 100%;
    overflow-y: auto;
    z-index: 999;
    transition: 0.4s opacity;
}

.modal[position="right"] {
    padding: 0rem;
    padding-left: 4rem;
    align-items: stretch;
    justify-content: right;
}

.modal[position="left"] {
    padding: 0rem;
    padding-right: 4rem;
    align-items: stretch;
    justify-content: left;
}

.modal[position="bottom"] {
    align-items: flex-end;
}

.modal:not([open="true"]) {
    opacity: 0;
}

.modal .modal-content {
    display: flex;
    flex-direction: column;
    position: relative;
    width: 100%;
    max-width: min(1080px, 100%);
    transition: 0.4s transform;
}

.modal[position="right"] .modal-content {
    max-width: 540px;
    height: 100%;
}

.modal[position="left"] .modal-content {
    max-width: 540px;
    height: 100%;
}

.modal:not([open="true"]) .modal-content {
    transform: translateY(-100px);
}

.modal[position="right"]:not([open="true"]) .modal-content {
    transform: translateX(100px);
}

.modal[position="left"]:not([open="true"]) .modal-content {
    transform: translateX(-100px);
}

.modal .modal-content>.modal-button-close {
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: black;
    position: absolute;
    top: 0px;
    right: 0px;
    width: 45px;
    height: 45px;
    z-index: 10;
}

.modal .modal-content .modal-main {
    background-color: white;
    color: black;
    box-shadow: 0rem 2rem -1rem #7f7f7f;
    display: flex;
    flex-direction: column;
    min-height: 90px;
    width: 100%;
}

.modal[position="right"] .modal-content .modal-main {
    width: 100%;
    height: 100%;
    overflow-y: auto;
}

.modal[position="left"] .modal-content .modal-main {
    width: 100%;
    height: 100%;
    overflow-y: auto;
}

@media (max-width: 1080px) {
    .modal {
        padding: 1rem;
        width: 100%;
        height: 100%;
    }

    .modal:not([position="bottom"]):not([position="top"]) .modal-content {
        width: 100%;
        height: 100%;
        overflow: hidden;
    }

    .modal .modal-content .modal-main {
        width: 100%;
        height: 100%;
        overflow-y: auto;
    }
}

.slider {
    --i: 0;
    --c: 3;
    --w: calc(1 / var(--c));
    user-select: none;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    position: relative;
    width: 100%;
    overflow: hidden;
}

.slider > div:not(.slider-button) {
    position: relative;
    flex-shrink: 0;
    transform: translate(calc(var(--i) * -100%));
    transition: 0.4s transform;
}

.slider[align="center"] > div:not(.slider-button) {
    left: 50%;
    transform: translateX(-50%) translate(calc(var(--i) * -100%));
}

.slider .slider-button-left {
    background-color: white;
    color: black;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    position: absolute;
    left: 1rem;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
}

.slider .slider-button-right {
    background-color: white;
    color: black;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    position: absolute;
    right: 1rem;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
}

.toolbox {
    position: fixed;
    left: 0px;
    top: 0px;
    width: 100%;
    height: 100%;
    z-index: 999;
}

.toolbox .toolbox-content {
    position: absolute;
    left: calc(var(--x) * 1px);
    top: calc(var(--y) * 1px);
}

.toolbox .toolbox-content .toolbox-main {
    background-color: white;
    color: black;
    box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.5);
    display: flex;
    flex-direction: column;
}

#tooltip {
    background-color: #7f7f7f;
    color: white;
    box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.5);
    font-size: 14px;
    padding: 2px;
    position: fixed;
    z-index: 10000000;
    width: auto;
    height: auto;
    max-width: 450px;
}

@keyframes spin {
    0% {
        transform: rotate(0deg);
    }

    50% {
        transform: rotate(180deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

.spin {
    animation-name: spin;
    animation-duration: 1s;
    animation-iteration-count: infinite;
    animation-timing-function: ease-in-out;
}

.r-0 {
    transform: rotateZ(0deg);
}

.r-45 {
    transform: rotateZ(45deg);
}

.r-90 {
    transform: rotateZ(90deg);
}

.r-135 {
    transform: rotateZ(135deg);
}

.r-180 {
    transform: rotateZ(180deg);
}

.r-225 {
    transform: rotateZ(225deg);
}

.r-270 {
    transform: rotateZ(270deg);
}

.r-315 {
    transform: rotateZ(315deg);
}