page { min-height: 100vh; background: linear-gradient(180deg, #eff4fb 0%, #e8eff7 100%); } .page { min-height: 100vh; } .shell { display: grid; gap: 24rpx; padding: 28rpx 24rpx 40rpx; } .hero, .panel { display: grid; gap: 16rpx; padding: 24rpx; border-radius: 24rpx; } .hero { background: linear-gradient(135deg, #163a66 0%, #1f5da1 100%); color: #ffffff; } .hero__eyebrow { font-size: 22rpx; letter-spacing: 0.16em; text-transform: uppercase; color: rgba(255, 255, 255, 0.72); } .hero__title { font-size: 40rpx; font-weight: 700; } .hero__desc { font-size: 24rpx; color: rgba(255, 255, 255, 0.84); line-height: 1.6; } .panel { background: rgba(255, 255, 255, 0.94); box-shadow: 0 14rpx 32rpx rgba(40, 63, 95, 0.08); } .panel__title { font-size: 30rpx; font-weight: 700; color: #17345a; } .summary, .row__label, .row__value { font-size: 24rpx; line-height: 1.6; color: #30465f; } .row { display: flex; justify-content: space-between; gap: 16rpx; padding: 10rpx 0; border-bottom: 2rpx solid #edf2f7; } .row:last-child { border-bottom: 0; } .row__value { max-width: 70%; text-align: right; font-weight: 700; color: #17345a; } .actions { display: flex; gap: 16rpx; flex-wrap: wrap; } .device-list { display: grid; gap: 14rpx; } .variant-list { display: grid; gap: 14rpx; } .variant-card { display: grid; gap: 8rpx; padding: 18rpx; border-radius: 18rpx; background: #f6f9fc; border: 2rpx solid transparent; } .variant-card--active { background: #edf5ff; border-color: #4f86c9; } .variant-card__main { display: grid; gap: 8rpx; } .variant-card__title-row { display: flex; gap: 10rpx; align-items: center; flex-wrap: wrap; } .variant-card__name { font-size: 26rpx; font-weight: 700; color: #17345a; } .variant-card__badge { padding: 4rpx 10rpx; border-radius: 999rpx; background: #dff3e8; color: #1f6a45; font-size: 20rpx; } .variant-card__meta { font-size: 22rpx; color: #5c7288; line-height: 1.5; } .picker-mask { position: fixed; inset: 0; background: rgba(10, 22, 38, 0.42); z-index: 30; } .picker-sheet { position: fixed; left: 0; right: 0; bottom: 0; z-index: 31; display: grid; gap: 16rpx; padding: 24rpx 24rpx 36rpx; border-top-left-radius: 28rpx; border-top-right-radius: 28rpx; background: rgba(255, 255, 255, 0.98); box-shadow: 0 -14rpx 36rpx rgba(22, 43, 71, 0.18); } .picker-sheet__header { display: flex; align-items: center; justify-content: space-between; gap: 16rpx; } .picker-sheet__title { font-size: 30rpx; font-weight: 700; color: #17345a; } .picker-sheet__close { margin: 0; min-height: 60rpx; padding: 0 18rpx; line-height: 60rpx; border-radius: 999rpx; font-size: 22rpx; background: #eef3f8; color: #455a72; } .picker-sheet__close::after { border: 0; } .device-card { display: flex; justify-content: space-between; gap: 16rpx; align-items: center; padding: 18rpx; border-radius: 18rpx; background: #f6f9fc; } .device-card__main { display: grid; gap: 8rpx; min-width: 0; flex: 1; } .device-card__title-row { display: flex; gap: 10rpx; align-items: center; flex-wrap: wrap; } .device-card__name { font-size: 26rpx; font-weight: 700; color: #17345a; } .device-card__badge { padding: 4rpx 10rpx; border-radius: 999rpx; background: #e1ecfa; color: #35567d; font-size: 20rpx; } .device-card__badge--active { background: #dff3e8; color: #1f6a45; } .device-card__meta { font-size: 22rpx; color: #5c7288; } .device-card__action { flex: none; } .btn { margin: 0; min-height: 76rpx; padding: 0 24rpx; line-height: 76rpx; border-radius: 18rpx; font-size: 26rpx; } .btn::after { border: 0; } .btn--primary { background: #173d73; color: #ffffff; } .btn--secondary { background: #dfeaf8; color: #173d73; } .btn--ghost { background: #ffffff; color: #52657d; border: 2rpx solid #d8e2ec; }