.detail-page { background: var(--bg-page); } .detail-bg { height: 300rpx; background: linear-gradient(135deg, var(--primary-color), var(--primary-dark)); position: absolute; top: 0; left: 0; width: 100%; z-index: 0; border-radius: 0 0 40rpx 40rpx; } .profile-card { position: relative; z-index: 1; margin: 160rpx var(--spacing-md) 0; background: #fff; border-radius: var(--border-radius-lg); padding: var(--spacing-lg); box-shadow: var(--shadow-base); display: flex; align-items: flex-start; } .avatar { width: 140rpx; height: 140rpx; border-radius: 50%; border: 4rpx solid #fff; box-shadow: var(--shadow-sm); margin-top: -60rpx; /* Overlap effect */ background: #fff; } .profile-info { flex: 1; margin-left: var(--spacing-md); padding-top: var(--spacing-xs); } .name-row { display: flex; align-items: baseline; flex-wrap: wrap; gap: 12rpx; margin-bottom: 8rpx; } .name { font-size: 36rpx; font-weight: 600; color: var(--text-main); } .title { font-size: 24rpx; color: var(--primary-color); background: rgba(142, 34, 48, 0.08); /* Primary opacity */ padding: 2rpx 12rpx; border-radius: 8rpx; } .firm-name { font-size: 24rpx; color: var(--text-tertiary); display: block; } .qr-btn { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 10rpx; } .qr-icon-text { font-size: 32rpx; color: var(--text-secondary); margin-bottom: 4rpx; } .qr-btn text { font-size: 20rpx; color: var(--text-secondary); } .content-body { padding: var(--spacing-md); } .section-card { background: #fff; border-radius: var(--border-radius-base); padding: var(--spacing-md); margin-bottom: var(--spacing-md); box-shadow: var(--shadow-sm); } .section-header { font-size: 28rpx; font-weight: 600; color: var(--text-secondary); margin-bottom: var(--spacing-md); position: relative; padding-left: 16rpx; } .section-header::before { content: ''; position: absolute; left: 0; top: 6rpx; bottom: 6rpx; width: 6rpx; background: var(--accent-color); border-radius: 4rpx; } .contact-item { display: flex; align-items: center; padding: 16rpx 0; } .contact-label { width: 80rpx; color: var(--text-tertiary); font-size: 26rpx; } .contact-value { flex: 1; color: var(--text-main); font-size: 28rpx; font-weight: 500; } .action-icon { width: 60rpx; text-align: center; font-size: 32rpx; } .divider { height: 1rpx; background: var(--bg-page); margin: 0 0; } .tags-row { display: flex; flex-wrap: wrap; gap: 16rpx; } .tag { font-size: 24rpx; color: var(--primary-color); background: rgba(142, 34, 48, 0.05); padding: 8rpx 20rpx; border-radius: 30rpx; } .bio-text { font-size: 28rpx; color: var(--text-secondary); line-height: 1.6; text-align: justify; white-space: pre-wrap; } .bio-scroll { height: 360rpx; box-sizing: border-box; padding-right: 8rpx; } .firm-mini-card { background: #fff; padding: var(--spacing-md); border-radius: var(--border-radius-base); display: flex; align-items: center; gap: 20rpx; } .firm-logo-mini-placeholder { height: 60rpx; width: 140rpx; background: var(--bg-surface); border-radius: 8rpx; display: flex; align-items: center; justify-content: center; } .mini-logo-text { font-size: 24rpx; font-weight: 700; color: var(--primary-color); font-family: serif; } .firm-mini-info { flex: 1; display: flex; flex-direction: column; } .firm-mini-name { font-size: 26rpx; color: var(--text-main); font-weight: 500; } .firm-mini-address { font-size: 22rpx; color: var(--text-tertiary); } .arrow { color: var(--text-placeholder); } .detail-bottom-space { height: 160rpx; } .not-found-action { padding: var(--spacing-lg); text-align: center; } .back-btn { background: var(--primary-color); color: #fff; font-size: 28rpx; border-radius: 40rpx; }