: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)); } */