body, html, div, ul, li, h1, h2, h3, h4, p { margin: 0; padding: 0; } html, body { overflow-x: hidden; } * { box-sizing: border-box; font-family: Poppins; } h1, h2, h3, h4, h5, h6, .products-title { font-family: Poppins, sans-serif; font-weight: 600; letter-spacing: 2px; } @keyframes loading { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } @keyframes opacity-in { 0% { opacity: 0; } 100% { opacity: 1; } } @keyframes z-index-10to-1 { 0% { z-index: 10; } 100% { z-index: -1; } } .flex { display: flex; } .flex-center { justify-content: center; align-items: center; } .flex-1 { flex: 1; } .flex-col { flex-direction: column; } .align-center { align-items: center; } .space-between { justify-content: space-between; } .justify-center { justify-content: center; } .relative { position: relative; } .el-overlay { --el-color-primary: #ff7a51; --el-color-primary-light-3: #ffa785; --el-color-primary-light-5: #ffc2aa; --el-color-primary-light-7: #ffddcf; --el-color-primary-light-8: #ffe8df; --el-color-primary-light-9: #fff2ec; --el-color-primary-dark-2: #cc6241; } .el-select, .el-popper { --el-color-primary: #6c6c6c; /* 主灰色 */ --el-color-primary-light-3: #8a8a8a; /* 较浅的灰色(混合20%白) */ --el-color-primary-light-5: #a8a8a8; /* 更浅的灰色(混合33%白) */ --el-color-primary-light-7: #c6c6c6; /* 浅灰色(混合47%白) */ --el-color-primary-light-8: #d4d4d4; /* 很浅的灰色(混合53%白) */ --el-color-primary-light-9: #e3e3e3; /* 极浅的灰色(混合60%白) */ --el-color-primary-dark-2: #565656; /* 深灰色(加深20%) */ } .mini-scrollbar { --mini-scrollbar-width: 0.4rem; } .mini-scrollbar::-webkit-scrollbar { width: var(--mini-scrollbar-width); } .mini-scrollbar::-webkit-scrollbar-thumb { border-radius: 0.4rem; background: rgba(0, 0, 0, 0.2); } .mosaic-bg { --mosaic-bg-size: 1rem; --mosaic-bg-color1: #efefef; --mosaic-bg-color2: #fff; background-image: repeating-conic-gradient(var(--mosaic-bg-color1) 0% 25%, var(--mosaic-bg-color2) 0% 50%); background-repeat: repeat; background-position: 50% 50%; background-size: var(--mosaic-bg-size) var(--mosaic-bg-size); } button[custom], button[custom="red"] { width: 100%; height: 38px; border-radius: 4px; border: none; background-color: #9a2125; color: #fff; transition: all 0.3s ease-in-out; box-shadow: 0 2px 5px rgba(7, 129, 105, 0.3); cursor: pointer; font-size: 12px; display: flex; align-items: center; justify-content: center; } button[custom]:hover, button[custom="red"]:hover { background-color: var(--hover-backcolor, #99494c); } button[custom] > .iconfont, button[custom="red"] > .iconfont { margin-right: 4px; font-size: 16px; } button[custom] > .label, button[custom="red"] > .label { font-size: 14px; } .hover-bottom-animation { position: relative; cursor: pointer; } .hover-bottom-animation.center { --right: auto; --left: 50%; --transform: translateX(-50%); } .hover-bottom-animation::before { content: ''; position: absolute; height: 2px; width: 0; right: var(--right, 0); left: var(--left, auto); bottom: 0; transform: var(--transform); transition: width 0.2s ease-in-out; -webkit-transition: width 0.2s ease-in-out; background-color: var(--background-color, #fff); } .hover-bottom-animation:not(.center):hover::before { width: 100%; --left: 0; --right: auto; } .hover-bottom-animation.center:hover::before { width: 100%; --right: auto; --left: 50%; --transform: translateX(-50%); } .hover-bottom-animation.active:before, .hover-bottom-animation.router-link-exact-active:before { width: 100%; }