@import '@/styles/mixins.scss'; .subpage-content { padding-bottom: calc(96rpx + env(safe-area-inset-bottom)) !important; } .subpage-nav { display: flex; align-items: center; margin-bottom: 28rpx; } .subpage-back { width: 72rpx; height: 72rpx; margin-right: 20rpx; border-radius: 24rpx; display: flex; align-items: center; justify-content: center; font-size: 42rpx; color: $brand-primary-deep; background: rgba(255, 255, 255, 0.84); box-shadow: $shadow-soft; transition: transform 260ms cubic-bezier(0.22, 1, 0.36, 1), box-shadow 260ms ease; } .subpage-back:active { transform: scale(0.95); box-shadow: 0 12rpx 26rpx rgba(54, 77, 64, 0.08); } .subpage-title-wrap { flex: 1; } .subpage-title { display: block; font-size: 44rpx; font-weight: 700; color: $text-primary; } .subpage-subtitle { display: block; margin-top: 10rpx; font-size: 24rpx; color: $text-secondary; line-height: 1.7; } .subpage-card { @include outlined-card(0.9); padding: 34rpx; margin-bottom: 24rpx; transition: transform 320ms cubic-bezier(0.22, 1, 0.36, 1), box-shadow 320ms ease, border-color 320ms ease; } .subpage-card:active { transform: translateY(2rpx) scale(0.996); box-shadow: 0 18rpx 36rpx rgba(54, 77, 64, 0.08); } .subpage-hero { position: relative; overflow: hidden; padding: 36rpx; margin-bottom: 28rpx; transition: transform 360ms cubic-bezier(0.22, 1, 0.36, 1), box-shadow 360ms ease; } .subpage-hero:active { transform: translateY(-4rpx); box-shadow: 0 22rpx 42rpx rgba(54, 77, 64, 0.1); } .subpage-hero::before { content: ''; position: absolute; right: -80rpx; top: -24rpx; width: 300rpx; height: 300rpx; border-radius: 50%; background: radial-gradient(circle, rgba(100, 140, 118, 0.055), rgba(100, 140, 118, 0)); animation: lfFloatSoft 10.8s ease-in-out infinite; } .subpage-hero::after { content: ''; position: absolute; right: 26rpx; top: 36rpx; width: 168rpx; height: 168rpx; border-radius: 50%; border: 2rpx solid rgba(210, 191, 156, 0.12); animation: lfPulseSoft 8.4s ease-in-out infinite; } .hero-kicker { position: relative; z-index: 2; display: inline-block; font-size: 20rpx; letter-spacing: 4rpx; color: rgba(143, 118, 86, 0.82); animation: lfRevealUp 760ms cubic-bezier(0.22, 1, 0.36, 1) 0.08s both; } .hero-title { position: relative; z-index: 2; display: block; margin-top: 14rpx; font-size: 40rpx; line-height: 1.35; font-weight: 700; animation: lfRevealUp 760ms cubic-bezier(0.22, 1, 0.36, 1) 0.16s both; } .hero-desc { position: relative; z-index: 2; display: block; margin-top: 14rpx; font-size: 24rpx; line-height: 1.8; color: $text-secondary; animation: lfRevealUp 760ms cubic-bezier(0.22, 1, 0.36, 1) 0.24s both; } .meta-grid { display: flex; flex-wrap: wrap; margin: 18rpx -8rpx 0; } .meta-pill { margin: 8rpx; @include chip-soft; transition: transform 240ms ease, box-shadow 240ms ease; } .meta-pill:active { transform: scale(0.97); } .meta-pill.rose { @include chip-rose; } .info-list { padding: 8rpx 0; } .info-row { display: flex; justify-content: space-between; align-items: flex-start; padding: 18rpx 0; border-bottom: 1rpx solid rgba(100, 140, 118, 0.08); } .info-row:last-child { border-bottom: 0; padding-bottom: 0; } .info-label { width: 160rpx; font-size: 24rpx; color: $text-secondary; } .info-value { flex: 1; text-align: right; font-size: 24rpx; line-height: 1.5; color: $text-primary; font-weight: 400; } .section-gap { margin-bottom: 28rpx; } .soft-panel { padding: 24rpx; border-radius: 28rpx; background: rgba(210, 191, 156, 0.1); box-shadow: $shadow-soft; transition: transform 280ms ease, box-shadow 280ms ease; } .cta-row { display: flex; gap: 18rpx; margin-top: 8rpx; animation: lfRevealUp 780ms cubic-bezier(0.22, 1, 0.36, 1) 0.18s both; } .cta-row .primary-button, .cta-row .secondary-button { flex: 1; width: 0; min-width: 0; height: 92rpx; padding: 0 24rpx; justify-content: center; text-align: center; border-radius: 44rpx; } .cta-row .primary-button { box-shadow: 0 24rpx 54rpx rgba(36, 74, 61, 0.16); } .cta-row .secondary-button { background: rgba(255, 255, 255, 0.92); border-color: rgba(210, 191, 156, 0.24); box-shadow: 0 16rpx 34rpx rgba(54, 77, 64, 0.07); } .empty-tip { text-align: center; font-size: 24rpx; color: $text-secondary; } .empty-card { text-align: center; } .empty-title, .empty-desc { display: block; } .empty-title { font-size: 32rpx; font-weight: 700; color: $text-primary; } .empty-desc { margin-top: 14rpx; font-size: 24rpx; line-height: 1.8; color: $text-secondary; } .empty-button { width: 100%; margin-top: 28rpx; animation: lfRevealUp 780ms cubic-bezier(0.22, 1, 0.36, 1) 0.16s both; } /* 统一二级/三级页面文字层级 */ .hero-kicker, .address-kicker, .wish-badge, .auth-kicker { font-size: 20rpx; letter-spacing: 4rpx; } .wish-name, .order-name, .address-main, .setting-title, .flow-title, .panel-title { font-size: 30rpx; line-height: 1.5; font-weight: 700; color: $text-primary; } .wish-desc, .product-desc, .detail-copy, .spec-item, .address-detail, .setting-desc, .flow-desc, .panel-desc, .empty-desc, .note-desc { font-size: 24rpx; line-height: 1.8; color: $text-secondary; } .wish-price, .order-amount, .product-price { font-weight: 700; color: $brand-primary-deep; }