/* ========================================== 门店选择页面 - 浅色高级感设计 ========================================== */ .page-container { min-height: 100vh; background: var(--bg-page); position: relative; } /* 顶部装饰背景 */ .hero-bg { position: absolute; top: 0; left: 0; right: 0; height: 320rpx; background: transparent; pointer-events: none; } .hero-pattern { display: none; } /* 页面标题 */ .page-header { position: relative; z-index: 1; text-align: center; padding: 48rpx 24rpx 32rpx; animation: fadeInUp 0.5s cubic-bezier(0.4, 0, 0.2, 1); border-bottom: 1rpx solid rgba(0, 0, 0, 0.04); } .page-title { display: block; font-size: 52rpx; font-weight: 700; color: #1a1a1a; margin-bottom: 8rpx; letter-spacing: 1rpx; } .page-subtitle { display: block; font-size: 26rpx; color: #999; font-weight: 400; letter-spacing: 0.5rpx; } /* 当前门店卡片 */ .current-store-card { position: relative; z-index: 1; margin: 0 24rpx 24rpx; background: var(--bg-white); border-radius: var(--radius-xl); padding: 28rpx; box-shadow: var(--shadow-lg); overflow: hidden; animation: fadeInScale 0.5s cubic-bezier(0.4, 0, 0.2, 1) 0.1s backwards; } .current-store-accent { position: absolute; top: 0; left: 0; right: 0; height: 4rpx; background: var(--primary-gradient); } .current-store-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16rpx; } .current-store-badge { display: flex; align-items: center; gap: 8rpx; padding: 8rpx 16rpx; background: var(--primary-soft); border-radius: var(--radius-full); } .badge-dot { width: 10rpx; height: 10rpx; border-radius: 50%; background: var(--primary); animation: pulse 2s ease-in-out infinite; } .badge-text { font-size: 24rpx; color: var(--primary); font-weight: 500; } .current-store-change { font-size: 24rpx; color: var(--text-muted); } .current-store-info { display: flex; align-items: center; gap: 16rpx; } .store-icon-wrapper { width: 80rpx; height: 80rpx; border-radius: var(--radius-md); background: linear-gradient(135deg, #FFF0EB, #FFE4D9); display: flex; align-items: center; justify-content: center; } .store-icon-wrapper image { width: 44rpx; height: 44rpx; } .store-details { flex: 1; } .store-name { display: block; font-size: 32rpx; font-weight: 700; color: var(--text-primary); margin-bottom: 6rpx; } .store-address { display: block; font-size: 24rpx; color: var(--text-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } /* 门店列表区域 */ .store-section { position: relative; z-index: 1; padding: 0 24rpx; } .section-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 20rpx; animation: fadeInUp 0.5s cubic-bezier(0.4, 0, 0.2, 1) 0.15s backwards; } .section-title { display: flex; align-items: center; gap: 12rpx; } .section-icon { font-size: 28rpx; } .section-text { font-size: 30rpx; font-weight: 600; color: var(--text-primary); } .section-count { font-size: 24rpx; color: var(--text-muted); } /* 门店列表 */ .store-list { } .store-item { display: flex; align-items: center; padding: 24rpx; background: var(--bg-white); border-radius: var(--radius-lg); margin-bottom: 16rpx; box-shadow: var(--shadow-sm); transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); animation: fadeInUp 0.5s cubic-bezier(0.4, 0, 0.2, 1) backwards; } .store-item:nth-child(1) { animation-delay: 0.2s; } .store-item:nth-child(2) { animation-delay: 0.25s; } .store-item:nth-child(3) { animation-delay: 0.3s; } .store-item:nth-child(4) { animation-delay: 0.35s; } .store-item:nth-child(5) { animation-delay: 0.4s; } .store-item:active { transform: scale(0.98); } .store-item.selected { background: var(--bg-warm); border: 2rpx solid var(--border-primary); } .store-item-icon { width: 72rpx; height: 72rpx; border-radius: var(--radius-md); background: var(--bg-soft); display: flex; align-items: center; justify-content: center; margin-right: 16rpx; } .store-item-icon.selected { background: linear-gradient(135deg, #FFF0EB, #FFE4D9); } .store-item-icon image { width: 40rpx; height: 40rpx; } .store-item-info { flex: 1; overflow: hidden; } .store-item-name { display: block; font-size: 28rpx; font-weight: 600; color: var(--text-primary); margin-bottom: 6rpx; } .store-item-address { display: block; font-size: 24rpx; color: var(--text-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .store-item-meta { display: flex; align-items: center; gap: 12rpx; margin-top: 8rpx; } .store-distance { padding: 4rpx 12rpx; background: var(--bg-soft); border-radius: var(--radius-full); font-size: 22rpx; color: var(--text-muted); } .store-users { font-size: 22rpx; color: var(--text-muted); } .store-item-action { display: flex; align-items: center; justify-content: center; width: 72rpx; height: 72rpx; } .select-btn { width: 56rpx; height: 56rpx; border-radius: 50%; border: 2rpx solid var(--border-light); background: var(--bg-white); display: flex; align-items: center; justify-content: center; transition: all 0.3s ease; } .select-btn.selected { border-color: var(--primary); background: var(--primary); } .select-icon { font-size: 28rpx; color: #FFF; display: none; } .select-btn.selected .select-icon { display: block; } /* 空状态 */ .empty-state { display: flex; flex-direction: column; align-items: center; padding: 100rpx 48rpx; animation: fadeInUp 0.5s cubic-bezier(0.4, 0, 0.2, 1) 0.2s backwards; } .empty-icon { width: 180rpx; height: 180rpx; margin-bottom: 32rpx; opacity: 0.7; } .empty-title { font-size: 30rpx; font-weight: 600; color: var(--text-secondary); margin-bottom: 12rpx; } .empty-desc { font-size: 26rpx; color: var(--text-muted); } /* 加载状态 */ .loading-state { display: flex; align-items: center; justify-content: center; padding: 48rpx; color: var(--text-muted); font-size: 26rpx; } /* 底部安全区域 */ .safe-bottom { height: 80rpx; }