:root{--ep-primary:#409eff;--ep-primary-light:#66b1ff;--ep-primary-bg:#ecf5ff;--ep-success:#67c23a;--ep-warning:#e6a23c;--ep-danger:#f56c6c;--ep-info:#909399;--ep-text:#303133;--ep-text-regular:#606266;--ep-border:#e4e7ed;--ep-border-light:#ebeef5;--ep-fill:#f5f7fa}*{box-sizing:border-box}body.mall-body{margin:0;background:#fff;color:var(--ep-text);font:14px/1.6 Helvetica Neue,Helvetica,PingFang SC,Microsoft YaHei,Arial,sans-serif}a{color:var(--ep-primary);text-decoration:none}.mall-layout{min-height:100vh;display:flex;flex-direction:column}.mall-header{height:60px;border-bottom:1px solid var(--ep-border);position:sticky;top:0;background:#fff;z-index:100}.mall-header-inner{max-width:1200px;margin:0 auto;display:flex;align-items:center;height:100%;padding:0 12px}.mall-logo{font-size:20px;font-weight:700;margin-right:40px;cursor:pointer;white-space:nowrap;color:var(--ep-primary)}.mall-nav{flex:1 1;display:flex;align-items:center;border-bottom:none}.mall-nav-item{padding:0 20px;height:60px;line-height:60px;font-size:14px;color:var(--ep-text-regular);cursor:pointer;border-bottom:2px solid transparent}.mall-nav-item.active,.mall-nav-item:hover{color:var(--ep-primary)}.mall-nav-item.active{border-bottom-color:var(--ep-primary)}.mall-account{margin-left:20px;display:flex;align-items:center;gap:10px;position:relative}.mall-account-name{cursor:pointer;color:var(--ep-primary)}.mall-account-menu{position:absolute;top:40px;right:0;background:#fff;border:1px solid var(--ep-border-light);border-radius:4px;box-shadow:0 2px 12px rgba(0,0,0,.1);padding:6px 0;min-width:110px;display:none;z-index:110}.mall-account-menu.open{display:block}.mall-account-menu a,.mall-account-menu span{display:block;padding:6px 16px;font-size:13px;color:var(--ep-text-regular);cursor:pointer}.mall-account-menu a:hover,.mall-account-menu span:hover{background:var(--ep-primary-bg);color:var(--ep-primary)}.mall-main{max-width:1200px;margin:0 auto;width:100%;flex:1 1;padding:20px 12px 40px}.mall-footer{text-align:center;color:var(--ep-info);font-size:12px;padding:18px 0;border-top:1px solid var(--ep-border-light)}.mall-btn{display:inline-block;padding:9px 20px;font-size:14px;border-radius:4px;border:1px solid var(--ep-border);background:#fff;color:var(--ep-text-regular);cursor:pointer;line-height:1.4}.mall-btn:hover{color:var(--ep-primary);border-color:var(--ep-primary-light);background:var(--ep-primary-bg)}.mall-btn.primary{background:var(--ep-primary);border-color:var(--ep-primary);color:#fff}.mall-btn.primary:hover{background:var(--ep-primary-light)}.mall-btn.warning{background:var(--ep-warning);border-color:var(--ep-warning);color:#fff}.mall-btn.danger{background:var(--ep-danger);border-color:var(--ep-danger);color:#fff}.mall-btn.large{padding:13px 28px;font-size:16px}.mall-btn.small{padding:5px 12px;font-size:12px}.mall-btn.link{border:none;background:none;color:var(--ep-primary);padding:2px 6px}.mall-btn.link.danger{color:var(--ep-danger)}.mall-btn:disabled{opacity:.5;cursor:not-allowed}.mall-card{border:1px solid var(--ep-border-light);border-radius:4px;background:#fff;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.03)}.mall-card+.mall-card{margin-top:16px}.mall-card-header{padding:12px 18px;border-bottom:1px solid var(--ep-border-light);font-weight:600;font-size:14px}.mall-card-body{padding:18px}.mall-banner{height:320px;border-radius:6px;overflow:hidden;margin-bottom:24px;background:linear-gradient(135deg,#409eff,#66b1ff);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center}.mall-banner h1{font-size:38px;margin:0 0 8px}.mall-banner p{font-size:16px;opacity:.9;margin:0}.mall-banner img{width:100%;height:320px;object-fit:cover}.mall-section{margin-bottom:28px}.mall-section h3{font-size:17px;border-left:3px solid var(--ep-primary);padding-left:10px;margin:0 0 16px}.mall-category-list{display:flex;gap:22px;flex-wrap:wrap}.mall-category-item{display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;width:96px}.mall-category-img{width:64px;height:64px;border-radius:50%;background:var(--ep-primary-bg);color:var(--ep-primary);font-size:26px;display:flex;align-items:center;justify-content:center;overflow:hidden}.mall-category-img img{width:100%;height:100%;object-fit:cover}.mall-category-item span{font-size:13px;color:var(--ep-text-regular)}.mall-category-item:hover span{color:var(--ep-primary)}.mall-product-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.mall-product-card{border:1px solid var(--ep-border-light);border-radius:4px;cursor:pointer;transition:box-shadow .2s;background:#fff}.mall-product-card:hover{box-shadow:0 4px 16px rgba(0,0,0,.09)}.mall-product-img{width:100%;height:200px;object-fit:cover;display:block;background:var(--ep-fill)}.mall-product-body{padding:10px 12px 14px}.mall-product-name{font-size:14px;color:var(--ep-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mall-product-price{color:var(--ep-danger);font-size:16px;font-weight:600;margin-top:6px}.mall-product-price .unit{font-size:12px;color:var(--ep-info);font-weight:400}.mall-filter-bar{display:flex;align-items:center;gap:16px;border-bottom:2px solid var(--ep-primary);margin-bottom:20px;padding-bottom:0}.mall-filter-tabs{display:flex;flex:1 1;flex-wrap:nowrap;overflow-x:auto}.mall-filter-tab{padding:10px 18px;font-size:14px;color:var(--ep-text-regular);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;white-space:nowrap}.mall-filter-tab.active,.mall-filter-tab:hover{color:var(--ep-primary);border-bottom-color:var(--ep-primary)}.mall-search{display:flex}.mall-search input{width:220px;padding:8px 12px;border:1px solid var(--ep-border);border-right:none;border-radius:4px 0 0 4px;outline:none;font-size:13px}.mall-search input:focus{border-color:var(--ep-primary)}.mall-search button{border:1px solid var(--ep-border);background:var(--ep-fill);padding:8px 16px;border-radius:0 4px 4px 0;cursor:pointer}.mall-search button:hover{color:var(--ep-primary);border-color:var(--ep-primary-light)}.mall-pagination{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:24px;color:var(--ep-text-regular);font-size:13px}.mall-pagination button{min-width:30px;height:30px;border:1px solid var(--ep-border);background:#fff;border-radius:4px;cursor:pointer;padding:0 8px}.mall-pagination button.active{background:var(--ep-primary);border-color:var(--ep-primary);color:#fff}.mall-pagination button:disabled{opacity:.4;cursor:not-allowed}.mall-login-page{min-height:calc(100vh - 240px);display:flex;align-items:center;justify-content:center}.mall-login-card{width:380px;border:1px solid var(--ep-border-light);border-radius:6px;box-shadow:0 2px 12px rgba(0,0,0,.06);padding:32px 34px 24px}.mall-login-card h2{text-align:center;color:var(--ep-primary);margin:0 0 24px;font-size:22px}.mall-form label{display:block;font-size:13px;color:var(--ep-text-regular);margin-bottom:6px}.mall-form .field{margin-bottom:18px}.mall-form input,.mall-form select,.mall-form textarea{width:100%;padding:10px 12px;border:1px solid #92a9ba;border-radius:4px;font-size:14px;outline:none;background:#fff}.mall-form input:focus,.mall-form textarea:focus{border-color:var(--ep-primary)}.mall-login-tip{text-align:center;color:var(--ep-info);font-size:12px;margin:14px 0 0}.mall-login-btn{width:100%}.mall-table{width:100%;border-collapse:collapse;font-size:14px}.mall-table th{background:var(--ep-primary-bg);color:var(--ep-text);font-weight:600;text-align:left}.mall-table td,.mall-table th{padding:12px 14px;border-bottom:1px solid var(--ep-border-light);vertical-align:middle}.mall-table tr:hover td{background:#fafbfc}.mall-empty{padding:60px 0;text-align:center;color:var(--ep-info);font-size:14px}.mall-tag{display:inline-block;padding:2px 10px;font-size:12px;border-radius:3px;line-height:20px}.mall-tag.blue{background:var(--ep-primary-bg);color:var(--ep-primary);border:1px solid #d9ecff}.mall-tag.green{background:#f0f9eb;color:var(--ep-success);border:1px solid #e1f3d8}.mall-tag.orange{background:#fdf6ec;color:var(--ep-warning);border:1px solid #faecd8}.mall-tag.red{background:#fef0f0;color:var(--ep-danger);border:1px solid #fde2e2}.mall-tag.gray{background:#f4f4f5;color:var(--ep-info);border:1px solid #e9e9eb}.mall-detail{display:flex;gap:32px}.mall-detail-gallery{width:420px;max-width:100%;flex-shrink:0}.mall-detail-gallery .mall-detail-image{max-width:100%}.mall-detail-thumbnails{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.mall-detail-thumbnails button{width:64px;height:64px;padding:2px;background:#fff;border:1px solid var(--ep-border-light);border-radius:4px;cursor:pointer}.mall-detail-thumbnails button[aria-pressed=true]{border:2px solid var(--ep-primary)}.mall-detail-thumbnails img{width:100%;height:100%;object-fit:contain}.mall-detail-image{width:420px;height:420px;object-fit:contain;border:1px solid var(--ep-border-light);border-radius:4px;background:#fff}.mall-detail-info{flex:1 1}.mall-detail-info h2{margin:0 0 14px;font-size:20px}.mall-price-row{margin-bottom:10px}.mall-price-row .price{color:var(--ep-danger);font-size:26px;font-weight:700}.mall-price-row .unit{color:var(--ep-info);font-size:13px}.mall-stock{color:var(--ep-text-regular);margin-bottom:16px}.mall-spec-group{margin-bottom:14px;display:flex;align-items:center;gap:8px}.mall-spec-label{color:var(--ep-text-regular);font-size:13px;min-width:50px}.mall-spec-btn{padding:7px 16px;border:1px solid var(--ep-border);border-radius:3px;background:#fff;cursor:pointer;font-size:13px}.mall-spec-btn.active{background:var(--ep-primary);border-color:var(--ep-primary);color:#fff}.mall-count-row{display:flex;align-items:center;gap:10px;margin:18px 0 26px}.mall-count-row input{width:130px;padding:8px 10px;border:1px solid #92a9ba;border-radius:4px;text-align:center;font-size:14px}.mall-actions{display:flex;gap:12px}.mall-detail-images{margin-top:24px}.mall-detail-images img{width:100%;display:block}.mall-order-card{border:1px solid var(--ep-border-light);border-radius:4px;margin-bottom:14px;cursor:pointer}.mall-order-card:hover{box-shadow:0 2px 10px rgba(0,0,0,.07)}.mall-order-header{display:flex;justify-content:space-between;padding:12px 18px;border-bottom:1px solid var(--ep-border-light);font-size:13px;color:var(--ep-text-regular)}.mall-order-items{padding:12px 18px;display:flex;flex-direction:column;gap:8px}.mall-order-item{display:flex;align-items:center;gap:12px;font-size:14px}.mall-order-item img{width:56px;height:56px;object-fit:cover;border-radius:4px;background:var(--ep-fill)}.mall-order-item .name{flex:1 1}.mall-order-footer{padding:10px 18px;text-align:right;border-top:1px solid var(--ep-border-light);font-size:13px;color:var(--ep-text-regular)}.mall-order-footer .price{color:var(--ep-danger);font-size:16px}.mall-cart-footer{display:flex;justify-content:space-between;align-items:center;margin-top:18px;padding:14px 18px;border:1px solid var(--ep-border-light);border-radius:4px;background:var(--ep-fill)}.mall-cart-footer .total{color:var(--ep-danger);font-size:18px}.mall-tabs{display:flex;border-bottom:2px solid var(--ep-border);margin-bottom:18px}.mall-tab{padding:10px 20px;cursor:pointer;font-size:14px;color:var(--ep-text-regular);border-bottom:2px solid transparent;margin-bottom:-2px}.mall-tab.active{color:var(--ep-primary);border-bottom-color:var(--ep-primary)}.mall-page-title{font-size:17px;margin:0 0 18px;border-left:3px solid var(--ep-primary);padding-left:10px}.mall-qty{display:inline-flex;align-items:center;border:1px solid var(--ep-border);border-radius:4px}.mall-qty button{width:32px;height:30px;border:none;background:none;cursor:pointer;font-size:15px}.mall-qty input{width:54px;height:30px;border:none;text-align:center;outline:none}.mall-summary{text-align:right;margin-top:16px;font-size:14px}.mall-summary .price{color:var(--ep-danger);font-size:22px;font-weight:700}.mall-checkbox{margin-right:6px}.mall-link-danger{color:var(--ep-danger);cursor:pointer}.mall-loading{padding:80px;text-align:center;color:var(--ep-info)}@media (max-width:1000px){.mall-product-grid{grid-template-columns:repeat(2,1fr)}.mall-detail{flex-direction:column}}