@import '../../../styles/variables.scss'; @import '../../../styles/mixins.scss'; .exchange-page { min-height: 100vh; background: $bg; padding-bottom: 140px; } /* ===== 商品预览 ===== */ .product-card { display: flex; align-items: center; padding: 32px 24px; background: $card; margin: 20px 24px 16px; border-radius: $r-lg; box-shadow: $shadow-sm; } .product-icon-wrap { width: 128px; height: 128px; border-radius: $r; @include flex-center; margin-right: 24px; flex-shrink: 0; &--physical { background: $acc; } &--service { background: $pri; } &--privilege { background: $pri-d; } } .product-icon-char { font-family: 'Georgia', 'Times New Roman', serif; font-size: var(--tk-font-hero); font-weight: bold; color: $white; } .product-meta { flex: 1; min-width: 0; } .product-name { font-size: var(--tk-font-num); font-weight: bold; color: $tx; display: block; margin-bottom: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .product-type-tag { @include tag($pri-l, $pri-d); } /* ===== 兑换明细 ===== */ .detail-section { padding: 0 24px; margin-bottom: 16px; } .detail-section-title { @include section-title; } .detail-card { background: $card; border-radius: $r; box-shadow: $shadow-sm; padding: 0 24px; } .detail-row { display: flex; justify-content: space-between; align-items: center; padding: 24px 0; border-bottom: 1px solid $bd-l; &.last { border-bottom: none; } } .detail-label { font-size: var(--tk-font-body-lg); color: $tx2; } .detail-value { @include serif-number; font-size: var(--tk-font-body-lg); color: $tx; font-weight: bold; &.detail-cost { color: $pri; font-size: var(--tk-font-num-lg); } &.detail-sufficient { color: $acc; } &.detail-insufficient { color: $dan; } } /* ===== 温馨提示 ===== */ .notice-section { background: $card; padding: 24px; margin: 0 24px; border-radius: $r; box-shadow: $shadow-sm; } .notice-title { @include section-title; font-size: var(--tk-font-body-lg); margin-bottom: 12px; } .notice-text { font-size: var(--tk-font-h2); color: $tx3; display: block; line-height: 1.7; margin-bottom: 4px; } /* ===== 底部操作栏 ===== */ .exchange-footer { position: fixed; bottom: 0; left: 0; right: 0; display: flex; align-items: center; padding: 16px 24px; padding-bottom: calc(16px + env(safe-area-inset-bottom)); background: $card; box-shadow: 0 -2px 12px rgba(45, 42, 38, 0.06); z-index: 10; } .footer-cost { flex: 1; display: flex; flex-direction: column; } .footer-cost-label { font-size: var(--tk-font-body); color: $tx3; } .footer-cost-num { @include serif-number; font-size: var(--tk-font-num-lg); font-weight: bold; color: $pri; } .footer-cost-unit { font-size: var(--tk-font-body); color: $tx2; margin-left: 4px; } .confirm-btn { background: $pri; padding: 20px 48px; border-radius: $r-pill; transition: opacity 0.2s; &.disabled { background: $bd; opacity: 0.7; } } .confirm-btn-text { font-size: var(--tk-font-num); color: $white; font-weight: bold; }