:root {
    /* Colors */
    --color-primary: #17C2FF;
    --color-primary-dark: #3f7285;
    --color-grey: #8e8e8e;
    --color-white: #fff;
    --color-black: #000;
    /* Background Colors */
    --bg-primary: rgba(16, 16, 16, 0.95);
    --bg-dark: #1a1a1a;
    --bg-darker: #101010;
    --bg-panel: rgba(28, 28, 28, 0.9);
    --bg-slot: rgba(31, 31, 31, 0.6);
    /* Gradients */
    --gradient-header: linear-gradient(90deg,
            rgba(4, 62, 55, 0.8) 0%,
            rgba(4, 62, 55, 0.8) 100%);
    --gradient-active: linear-gradient(90deg,
            rgba(4, 62, 55, 0.8) 0%,
            rgba(4, 62, 55, 0.8) 100%);
    /* Sizing Units */
    --px: calc(1vh * (100 / 1440));
    --spacing-xs: calc(4 * var(--px));
    --spacing-sm: calc(8 * var(--px));
    --spacing-md: calc(16 * var(--px));
    --spacing-lg: calc(24 * var(--px));
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: "Bai Jamjuree";
}

body {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-right: var(--spacing-lg);
    padding-left: var(--spacing-lg);
    min-height: 100vh;
    background-color: transparent;
    font-family: Arial, sans-serif;
    background-repeat: no-repeat;
    background-size: cover;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

/* Shop Block */
.shop {
    width: calc(512 * var(--px));
    background-color: var(--bg-panel);
    padding: var(--spacing-md);
    color: var(--color-white);
    position: relative;
}

.shop__header {
    margin: calc(-1 * var(--spacing-md));
    margin-bottom: var(--spacing-md);
    padding: var(--spacing-md);
    background: var(--bg-dark);
}

.shop__footer {
    margin: calc(-1 * var(--spacing-md));
    padding: var(--spacing-md);
    background: var(--bg-dark);
}

/* Shop Corner Elements */
.shop__corner {
    position: absolute;
    width: calc(35 * var(--px));
    height: calc(35 * var(--px));
}

.shop__corner--top-left {
    top: calc(-5 * var(--px));
    left: calc(-5 * var(--px));
    border-top: 2px solid var(--color-primary);
    border-left: 2px solid var(--color-primary);
    visibility: hidden;
}

.shop__corner--bottom-right {
    bottom: calc(-5 * var(--px));
    right: calc(-5 * var(--px));
    border-bottom: 2px solid var(--color-primary);
    border-right: 2px solid var(--color-primary);
    visibility: hidden;
}

.shop__corner--top-right {
    top: calc(-8 * var(--px));
    right: calc(-8 * var(--px));
    border-top: calc(3 * var(--px)) solid #8e8e8e85;
    border-right: calc(3 * var(--px)) solid #8e8e8e85;
}

.shop__corner--bottom-left {
    bottom: calc(-8 * var(--px));
    left: calc(-8 * var(--px));
    border-bottom: calc(3 * var(--px)) solid #8e8e8e85;
    border-left: calc(3 * var(--px)) solid #8e8e8e85;
}

/* Header Block */
.header {
    text-align: center;
    position: relative;
    border: 1px solid rgba(255, 255, 255, 0.1);
    padding: var(--spacing-md);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.header__icon {
    position: absolute;
    top: -12px;
}

.header__icon-svg {
    width: calc(24 * var(--px));
    height: calc(24 * var(--px));
}

.header__title {
    color: var(--color-primary);
    font-size: calc(24 * var(--px));
    margin-bottom: var(--spacing-xs);
}

.header__subtitle {
    color: var(--color-grey);
    font-size: calc(14 * var(--px));
    padding: calc(5 * var(--px));
    border: 1px solid #343434;
    background: var(--bg-dark);
    width: calc(240 * var(--px));
}

.header__subtitle::before,
.header__subtitle::after {
    content: "+";
    position: absolute;
    font-size: calc(24 * var(--px));
    margin-top: calc(-7 * var(--px));
}

.header__subtitle::before {
    margin-left: calc(-30 * var(--px));
}

.header__subtitle::after {
    margin-left: calc(15 * var(--px));
}

/* Items Block */
.items {
    margin-bottom: var(--spacing-lg);
}

.items__row {
    display: flex;
    justify-content: space-between;
    margin-bottom: var(--spacing-sm);
}

.item {
    display: flex;
    align-items: center;
    background-color: var(--bg-dark);
    border: 1px solid #343434;
    padding: var(--spacing-sm);
    width: 49%;
    justify-content: space-between;
    gap: var(--spacing-sm); /* Add gap between name and controls */
}

.item__name {
    margin-right: var(--spacing-sm);
    font-weight: 600;
    font-size: calc(12 * var(--px));
    white-space: nowrap; /* Prevent wrapping */
    overflow: hidden; /* Hide overflow */
    text-overflow: ellipsis; /* Add ellipsis for overflow */
    flex: 1; /* Allow name to shrink */
    min-width: 0; /* Enable text truncation */
    display: inline-block; /* Ensure inline scrolling */
    position: relative;
}


/* Controls Block */
.controls {
    display: flex;
    align-items: center;
    position: relative;
}

.controls__button {
    background-color: #3b3b3b;
    color: var(--color-white);
    border: none;
    padding: calc(4 * var(--px)) calc(8 * var(--px));
    cursor: pointer;
    font-weight: bold;
    font-size: calc(18 * var(--px));
    -webkit-tap-highlight-color: transparent;
}

.controls__button:focus {
    outline: none;
}

.controls__value {
    margin: 0 var(--spacing-xs);
    width: calc(45 * var(--px));
    background-color: var(--bg-dark);
    color: var(--color-white);
    border: none;
    text-align: center;
    padding: calc(4 * var(--px));
    font-family: inherit;
    font-size: calc(18 * var(--px));
}

.controls__value--active {
    outline: 1px solid var(--color-primary);
}

/* Slider Block */
.slider {
    position: absolute;
    top: 100%;
    left: calc(-28 * var(--px));
    width: calc(160 * var(--px));
    background: linear-gradient(0deg, rgb(4 51 62 / 80%), rgb(4 48 62 / 75%)), rgb(9 9 9 / 75%);
    padding: calc(10 * var(--px));
    margin-top: calc(9 * var(--px));
    box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.5);
    display: none;
    z-index: 10;
    border: 1px solid var(--color-primary);
}

.slider__container {
    position: relative;
    width: 100%;
    height: calc(14 * var(--px));
    background: linear-gradient(180deg, rgb(52 99 92) 0%, rgb(35 111 101) 100%);
    border-radius: 4px;
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.5);
}

.slider__progress {
    position: absolute;
    top: calc(2 * var(--px));
    left: calc(2 * var(--px));
    height: calc(100% - calc(4 * var(--px)));
    background: linear-gradient(180deg, rgb(52 177 255) 0%, rgb(90 191 251) 100%);
    border-radius: 4px;
    pointer-events: none;
    box-shadow: 0 0 4px rgba(255, 0, 0, 0.5);
}

.slider__input {
    position: absolute;
    top: calc(-4 * var(--px));
    left: 0;
    width: 100%;
    height: calc(20 * var(--px));
    -webkit-appearance: none;
    appearance: none;
    background: transparent;
    margin: 0;
    padding: 0;
    cursor: pointer;
}

/* Categories Block */
.categories {
    display: flex;
    justify-content: space-between;
    margin-bottom: var(--spacing-sm);
    position: relative;
    border: 1px solid rgba(255, 255, 255, 0.1);
    padding: var(--spacing-md);
}

.category {
    width: calc(60 * var(--px));
    height: calc(60 * var(--px));
    background-color: var(--bg-slot);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #343434;
}

.category--active {
    background: linear-gradient(90deg, rgb(4 43 62) 0%, rgb(4 44 62) 100%);
    border: 1px solid var(--color-primary);
}

.category__icon {
    width: calc(48 * var(--px));
    height: calc(48 * var(--px));
}

.category:not(.category--active) .category__icon {
    filter: brightness(0) saturate(100%) invert(50%) sepia(0%) saturate(0%) hue-rotate(250deg) brightness(94%) contrast(92%);
}

.category--active .category__icon {
    filter: brightness(0) saturate(100%) invert(69%) sepia(83%) saturate(1755%) hue-rotate(165deg) brightness(101%) contrast(101%);
}

/* Footer Block */
.footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border: 1px solid #343434;
    padding: var(--spacing-sm);
}

.footer__price {
    display: flex;
    flex-direction: column;
}

.footer__price-label {
    font-size: calc(12 * var(--px));
    color: #878587;
    text-transform: uppercase;
    font-weight: 600;
}

.footer__price-value {
    font-size: calc(18 * var(--px));
    color: var(--color-primary);
    font-weight: 600;
}

.footer__button {
    background: linear-gradient(90deg, rgb(4 43 62) 0%, rgb(4 44 62) 100%);
    border: 1px solid var(--color-primary);
    color: var(--color-white);
    padding: var(--spacing-sm) var(--spacing-md);
    cursor: pointer;
    text-transform: uppercase;
}

.footer__button:focus {
    outline: none;
}

.footer__button:hover {
    transform: scale(1.05);
}

/* Preset Block */
.preset {
    width: calc(350 * var(--px));
    background-color: var(--bg-panel);
    padding: var(--spacing-md);
    color: var(--color-white);
}

.preset__header {
    font-size: calc(24 * var(--px));
    margin-bottom: var(--spacing-md);
    color: var(--color-primary);
    font-weight: bold;
    text-transform: uppercase;
    text-align: center;
}

.preset__label {
    color: var(--color-grey);
    font-size: calc(14* var(--px));
}

.preset__input-group {
    width: 100%;
    margin-bottom: var(--spacing-md);
    margin-left: calc(-2 * var(--px));
    display: flex;
    justify-content: space-around;
    align-items: center;
}

.preset__input {
    width: 84%;
    padding: var(--spacing-sm);
    background-color: var(--bg-dark);
    border: 1px solid var(--color-grey);
    color: var(--color-white);
    font-size: calc(16 * var(--px));
    height: calc(40 * var(--px));
}

.preset__button {
    width: 13%;
    height: calc(40* var(--px));
    padding: var(--spacing-xs);
    background: linear-gradient(90deg, rgb(4 43 62) 0%, rgb(4 44 62) 100%);
    border: 1px solid var(--color-primary);
    color: var(--color-white);
    cursor: pointer;
    text-transform: uppercase;
}

.preset__button:hover {
    opacity: 0.9;
}

.preset__button:hover svg path {
    fill: var(--color-primary);
}

.preset__list {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-xs);
}

.preset__item {
    display: flex;
    align-items: center;
    padding: var(--spacing-sm);
    background-color: var(--bg-dark);
    border: 1px solid #343434;
    cursor: pointer;
}

.preset__item:hover {
    background: linear-gradient(90deg, rgb(4 43 62) 0%, rgb(4 44 62) 100%);
    border: 1px solid var(--color-primary);
}

.preset__item-text {
    flex-grow: 1;
    font-size: calc(16 * var(--px));
    color: var(--color-white);
}

.preset__item-text:hover {
    color: var(--color-primary);
}

.preset__item-icon {
    background: #1b2c38;
    width: calc(25 * var(--px));
    height: calc(25 * var(--px));
    display: flex;
    align-items: center;
    justify-content: center;
}

.preset__item-icon:hover {
    border: 1px solid var(--color-primary);
}

.preset__item-icon:hover img {
    filter: brightness(0) saturate(100%) invert(69%) sepia(83%) saturate(1755%) hue-rotate(165deg) brightness(101%) contrast(101%);
}

.preset__item-icon img {
    width: calc(16 * var(--px));
    height: calc(16 * var(--px));
    filter: brightness(0) saturate(100%) invert(58%) sepia(0%) saturate(294%) hue-rotate(202deg) brightness(94%) contrast(92%);
}

.preset__confirm {
    width: 100%;
    margin-top: var(--spacing-md);
    padding: var(--spacing-sm);
    background: linear-gradient(90deg, rgb(4 43 62) 0%, rgb(4 44 62) 100%);
    border: 1px solid var(--color-primary);
    color: var(--color-white);
    cursor: pointer;
    font-size: calc(16 * var(--px));
    text-transform: uppercase;
}

.preset__confirm:hover {
    opacity: 0.9;
}

/* Utility Classes */
.wrapper {
    margin: calc(-1 * var(--spacing-md));
    padding: var(--spacing-md);
    background: var(--bg-dark);
}

/* Input Number Styles */
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

input[type="number"] {
    -moz-appearance: textfield;
}

/* Custom Slider Styles */
.slider__input::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: calc(10 * var(--px));
    height: calc(22 * var(--px));
    background: linear-gradient(180deg,
            rgba(255, 255, 255, 0.8) 0%,
            rgba(200, 200, 200, 1) 100%);
    border: none;
    border-radius: 5px;
    cursor: pointer;
    box-shadow: 0 0 4px rgba(0, 0, 0, 0.3);
    margin-top: calc(1 * var(--px));
    margin-left: calc(2 * var(--px));
}

.slider__input::-moz-range-thumb {
    width: calc(20 * var(--px));
    height: calc(20 * var(--px));
    background: linear-gradient(180deg,
            rgba(255, 255, 255, 0.8) 0%,
            rgba(200, 200, 200, 1) 100%);
    border: none;
    border-radius: 50%;
    cursor: pointer;
    box-shadow: 0 0 4px rgba(0, 0, 0, 0.3);
}

.slider__input::-webkit-slider-runnable-track {
    width: 100%;
    height: 100%;
    background: transparent;
    border: none;
    cursor: pointer;
}

.slider__input::-moz-range-track {
    width: 100%;
    height: 100%;
    background: transparent;
    border: none;
    cursor: pointer;
}

/* Header Corner Elements */
.header__corner {
    position: absolute;
    width: calc(20 * var(--px));
    height: calc(20 * var(--px));
}

.header__corner--top-right {
    top: calc(-2 * var(--px));
    right: calc(-2 * var(--px));
    border-top: calc(3 * var(--px)) solid #838383;
    border-right: calc(3 * var(--px)) solid #838383;
}

.header__corner--bottom-left {
    bottom: calc(-2 * var(--px));
    left: calc(-2 * var(--px));
    border-bottom: calc(3 * var(--px)) solid #838383;
    border-left: calc(3 * var(--px)) solid #838383;
}

/* Categories Corner Elements */
.categories__corner {
    position: absolute;
    width: calc(20 * var(--px));
    height: calc(20 * var(--px));
}

.categories__corner--top-right {
    top: calc(-2 * var(--px));
    right: calc(-2 * var(--px));
    border-top: 2px solid #838383;
    border-right: 2px solid #838383;
}

.categories__corner--bottom-left {
    bottom: calc(-2 * var(--px));
    left: calc(-2 * var(--px));
    border-bottom: 2px solid #838383;
    border-left: 2px solid #838383;
}




.presets {
    width: calc(350* var(--px));
    padding: var(--spacing-md);
}

input:focus,
input:active,
input:focus-visible {
    outline: none;
    box-shadow: none;
    border-color: transparent;
    /* ถ้าต้องการให้มี border เป็นสีอื่นแทน สามารถกำหนดได้ที่นี่ */
    /* border-color: #your-color; */
}

/* สำหรับ Safari บางกรณี */
input[type="text"],
input[type="password"],
input[type="email"],
input[type="search"],
input[type="tel"] {
    -webkit-appearance: none;
}

/* .category-buttons {
    margin-top: var(--spacing-md);
    display: flex;
    justify-content: center;
    align-items: center;
    gap: var(--spacing-sm);
} */

/* .category-buttons button {
    background: linear-gradient(90deg, rgb(4 43 62) 0%, rgb(4 44 62) 100%);
    border: 1px solid var(--color-primary);
    color: var(--color-white);
    padding: var(--spacing-sm);
    cursor: pointer;
    font-size: calc(16* var(--px));
} */