.profile-header { width: 100%; display: flex; flex-direction: column; flex-shrink: 0; } /* 顶栏固定:仅白底导航栏吸顶,下方用户信息可滚动 */ .profile-header__toolbar { position: fixed; top: 0; left: 0; right: 0; z-index: 100; width: 100%; background-color: var(--bg-white, #ffffff); box-sizing: border-box; } .profile-header__toolbar-spacer { width: 100%; flex-shrink: 0; } .profile-header__nav { position: relative; display: flex; flex-direction: row; align-items: center; height: 44px; padding-left: 16px; box-sizing: border-box; } .profile-header__nav-left { display: flex; flex-direction: row; align-items: center; gap: 12px; min-width: 56px; flex-shrink: 0; position: relative; z-index: 2; } .profile-header__nav-right { min-width: 72px; flex-shrink: 0; position: relative; z-index: 2; margin-left: auto; } .profile-header__title { position: absolute; left: 50%; transform: translateX(-50%); max-width: 42%; text-align: center; font-size: var(--font-size-md, 16px); font-family: var(--font-family); font-weight: 600; color: var(--text-dark); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; pointer-events: none; z-index: 1; } .profile-header__icon-bell, .profile-header__icon-settings { width: 22px; height: 22px; flex-shrink: 0; display: block; } /* settings.png 为白色线稿,白底顶栏需着色后才可见 */ .profile-header__icon-settings { filter: brightness(0) saturate(100%) invert(52%) sepia(98%) saturate(1800%) hue-rotate(346deg) brightness(102%) contrast(101%); } /* 用户信息渐变区 */ .profile-header__hero { width: 100%; background-position: center; background-size: 100% 100%; background-repeat: no-repeat; background-image: url("data:image/svg+xml;utf8,%3Csvg%20viewBox%3D'0%200%20390%20239'%20preserveAspectRatio%3D'none'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%0A%20%20%20%20%20%20%3Cdefs%3E%0A%20%20%20%20%20%20%20%20%3ClinearGradient%20id%3D'grad'%20gradientUnits%3D'objectBoundingBox'%20x1%3D'0'%20y1%3D'0.5'%20x2%3D'1'%20y2%3D'0.5'%20gradientTransform%3D'matrix(-0.0000%2C%201.0000%2C%20-1.0000%2C%20-0.0000%2C%201.0000%2C%200.0000)'%3E%0A%20%20%20%20%20%20%20%20%20%20%3Cstop%20stop-color%3D'rgba(11%2C43%2C75%2C1)'%20offset%3D'0'%2F%3E%3Cstop%20stop-color%3D'rgba(26%2C74%2C111%2C1)'%20offset%3D'1'%2F%3E%0A%20%20%20%20%20%20%20%20%3C%2FlinearGradient%3E%0A%20%20%20%20%20%20%3C%2Fdefs%3E%0A%20%20%20%20%20%20%3Crect%20width%3D'100%25'%20height%3D'100%25'%20fill%3D'url(%23grad)'%2F%3E%0A%20%20%20%20%3C%2Fsvg%3E"); } .profile-header__inner { display: flex; flex-direction: column; align-items: flex-start; padding: 16px 20px 28px; width: 100%; box-sizing: border-box; } .profile-header__user { width: 100%; display: flex; flex-direction: row; align-items: center; } .profile-header__user-inner { display: flex; flex-direction: row; gap: 14px; align-items: center; width: 100%; } .profile-header__avatar-wrap { position: relative; width: 72px; height: 72px; flex-shrink: 0; overflow: visible; } .profile-header__avatar-ring { width: 72px; height: 72px; border-radius: 50%; border: 3px solid #ffffff; overflow: hidden; box-sizing: border-box; background-color: rgba(255, 255, 255, 0.12); } .profile-header__avatar { width: 100%; height: 100%; display: block; } .profile-header__avatar-badge { position: absolute; right: -1px; bottom: -1px; width: 24px; height: 24px; border-radius: 50%; border: 2px solid #ffffff; background-color: #2ecc71; display: flex; align-items: center; justify-content: center; z-index: 2; box-sizing: border-box; } .profile-header__avatar-badge-icon { width: 12px; height: 12px; display: block; flex-shrink: 0; filter: brightness(0) invert(1); } .profile-header__user-meta { flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; } .profile-header__user-meta-inner { display: flex; flex-direction: column; gap: var(--spacing-xs, 4px); align-items: flex-start; width: 100%; } .profile-header__name { font-size: var(--font-size-xl, 20px); font-family: var(--font-family); font-weight: 700; color: var(--text-inverse); white-space: nowrap; } .profile-header__phone { font-size: var(--font-size-base, 14px); font-family: var(--font-family); font-weight: 400; color: rgba(255, 212, 184, 1); white-space: nowrap; } .profile-header__badge { display: flex; flex-direction: row; gap: var(--spacing-xs, 4px); align-items: center; padding: 3px 10px; border-radius: 10px; background-color: var(--accent-orange); } .profile-header__badge-icon { width: 12px; height: 12px; flex-shrink: 0; display: block; } .profile-header__level { font-size: var(--font-size-sm, 12px); font-family: var(--font-family); font-weight: 600; color: var(--text-inverse); white-space: nowrap; } .profile-header__stats { width: 100%; } .profile-header__stats-inner { display: flex; flex-direction: row; align-items: flex-start; padding-top: 16px; width: 100%; } .profile-header__stat { flex: 1; display: flex; flex-direction: column; align-items: center; min-width: 0; } .profile-header__stat-inner { display: flex; flex-direction: column; gap: 2px; align-items: center; width: 100%; } .profile-header__stat-value { font-size: var(--font-size-2xl, 22px); font-family: var(--font-family); font-weight: 700; color: var(--text-inverse); white-space: nowrap; } .profile-header__stat-label { font-size: var(--font-size-sm, 12px); font-family: var(--font-family); font-weight: 400; color: rgba(255, 212, 184, 1); white-space: nowrap; } .profile-header__stat-divider { width: 1px; height: 32px; flex-shrink: 0; background-color: rgba(255, 255, 255, 0.31); }