.modal {
    --transition-duration: 300ms;
    --border-radius: 6px;
    
    transition: var(--transition-duration) opacity;
    position: fixed;
    width: 100%;
    height: 100%;
    background: rgba(var(--color),.3);
    z-index: 20;
    opacity: 0;
    pointer-events: none;
}

.modal.active {
    opacity: 1;
    pointer-events: initial;
}

.modal .inner {
    transition: var(--transition-duration) transform;
    position: absolute;
    box-sizing: border-box;
    max-height: 90%;
    width: calc(100% - 50px);
    max-width: 500px;
    padding: var(--box-padding-inner);
    background: rgb(var(--color-text));
    border-radius: 20px;
    box-shadow: 0 0 0 calc(var(--box-padding-inner) / 2) rgba(var(--color),.1);
    overflow-x: hidden;
    transform: scale(.8);
    opacity: 0;
}

.modal.active .inner {
    transform: scale(1);
    opacity: 1;
}

.modal .inner::-webkit-scrollbar {
    width: 10px;
}

.modal .inner::-webkit-scrollbar-thumb {
    background: rgb(var(--color));
    border-radius: 10px;
}

.modal .header {
    display: flex;
    justify-content: space-between;
    margin-bottom: var(--box-padding-inner);
}

.modal .header * {
    margin: 0;
}

.modal .header .close {
    --size: 40px;
    position: relative;
    width: var(--size);
    height: var(--size);
    margin-left: 25px;
    cursor: pointer;
}

.modal .header .close .line {
    position: absolute;
    width: 3px;
    height: 100%;
    background: black; 
    transform: rotate(45deg);
}

.modal .header .close .line:last-child {
    transform: rotate(-45deg);
}

/* -- Categories -- */

.modal .categories {
	width: calc(100% - 50px);
	max-width: 400px;
}

.modal .categories .list {
	font-size: 18px;
	cursor: pointer;
}

.modal .categories .item:hover {
	transition: 300ms background;
	background: rgba(var(--color),.05);
}

.modal .categories .list p:first-child {
	--size: 64px;
	background: rgb(var(--color-accent));
	color: rgb(var(--color-text));
	font-size: 30px;
	width: var(--size);
	height: var(--size);
	display: flex;
	justify-content: center;
	align-items: center;
	border-radius: 100%;
}

.modal .categories .list .item[data="0"] p:first-child {
	background: transparent;
	color: rgb(var(--color));
	border: dotted 2px rgba(var(--color),.3);
}

/* -- Bulk -- */

.modal input[type="number"] {
    height: 40px;
    width: 50px;
    background: rgba(var(--color),.1);
    padding: 5px 15px 5px 15px;
    margin-left: auto;
    border: none;
    border-radius: var(--border-radius);
    font-size: 1.2em;
}

.modal input[type="number"]::-webkit-inner-spin-button, 
.modal input[type="number"]::-webkit-outer-spin-button {  
   opacity: 1;
}

.modal input[type="number"]::selection {
    color: rgb(var(--color-text));
    background: rgb(var(--color-accent));
}

.modal .bulk {
    --background-color: transparent;
    position: relative;
    box-sizing: border-box;
    padding: 0  var(--box-padding-inner) 0 var(--box-padding-inner);
    background: var(--background-color);
    border-radius: var(--border-radius);
}

.modal .bulk p {
    font-weight: initial !important;
}

.modal .summary {
    --background-color: rgb(var(--color-text));
    position: relative;
    box-sizing: border-box;
    padding: var(--box-padding-inner);
    background: var(--background-color);
    border-radius: 20px;
}

/* .modal .summary::after {
    content: " ";
    display: block;
    position: absolute;
    bottom: calc((var(--pseudo-height) / 2) * -1);
    left: 0px;
    width: 100%;
    height: var(--pseudo-height);
    background: -webkit-linear-gradient(rgb(var(--color-text)) 0%, transparent 0%), -webkit-linear-gradient(135deg, rgb(var(--color-text)) 33.33%, transparent 33.33%) 0 0%, rgb(var(--color-text)) -webkit-linear-gradient(45deg, rgb(var(--color-text)) 33.33%, var(--background-color) 33.33%) 0 0%;
    background-repeat: repeat-x;
    background-size: 0px 100%, 9px 27px, 9px 27px;
} */

.modal .summary > * {
    margin-bottom: var(--box-padding-inner);
}

.modal .summary > *:last-child {
    margin-bottom: unset;
}

.modal .summary .list {
    padding: 15px 25px 15px 25px;
    background: rgba(var(--color),.03);
    border-radius: var(--border-radius);
}

.modal .item {
    --sprite-thumbnail-width: 85px;
    --sprite-thumbnail-height: 85px;
    width: 100%;
    height: var(--sprite-thumbnail-height);
	justify-content: flex-start;
	padding-top: calc(var(--box-padding-inner) / 2);
    padding-bottom: calc(var(--box-padding-inner) / 2);
    border-radius: 6px;
}

.modal .item.remove > p,
.modal .item.remove + .item[multipack] > p {
    text-decoration: line-through;
    text-decoration-thickness: 2px;
    opacity: .5;
}

.modal .item.remove .img {
    opacity: .3;
}

.modal .item[multipack] {
    height: 10px;
    margin-top: 10px;
    margin-bottom: 10px;
    background: rgba(var(--color),.1);
    border-radius: 100px;
}

.modal .item[multipack] + .item[multipack] {
    margin-top: unset;
}

.modal .item[multipack] p::before {
    content: "+";
    margin-right: 10px;
    opacity: .5;
}

.modal .item p {
    margin-left: var(--box-padding-inner);
    font-size: 1.2em;
    font-weight: bold;
    word-break: break-all;
}

.modal .item .img {
    background-image: url("../img/sheets/thumb-0.3x.png");
    background-size: var(--sprite-thumbnail-width);
    background-position-y: calc(var(--sprite-thumbnail-height) * -0);
    width: var(--sprite-thumbnail-width);
    height: var(--sprite-thumbnail-height);
}

.modal .button {
    padding: 20px;
}

.modal .button.disabled {
    pointer-events: none;
    background: rgba(var(--color),.3);
}

/* Scale 0.25x */
@media screen and (max-width: 581px) {

    .modal input[type="number"] {
        flex: 1 1 auto;
    }

    .modal .summary .list {
        padding: 5px 25px 5px 25px;
    }

    .modal .summary .item {
        flex-wrap: wrap;
        height: calc(var(--sprite-thumbnail-height) * 1.8);
    }

}