page { background: #0c0e12; color: #f6f6fc } .page { min-height: 100vh; background: #0c0e12; box-sizing: border-box; overflow-x: hidden } .content { height: calc(100vh - 120rpx); padding: 96rpx 40rpx 180rpx; box-sizing: border-box } .empty-state { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 80rpx 32rpx 64rpx; text-align: center } .empty-state.small { padding-top: 24rpx; padding-bottom: 28rpx } .empty-title { display: block; font-size: 36rpx; font-weight: 800; line-height: 1.2; margin-bottom: 8rpx; color: #f6f6fc } .empty-subtitle { display: block; font-size: 24rpx; line-height: 1.6; color: #aaabb0 } .error-banner { display: flex; flex-direction: column; align-items: center; gap: 20rpx; padding: 32rpx 28rpx; border: 1rpx solid rgba(255, 255, 255, .08); border-radius: 32rpx; background: rgba(23, 26, 31, .6); backdrop-filter: blur(24rpx); margin-bottom: 32rpx } .error-text { color: #ff6e84; font-size: 24rpx; text-align: center } .secondary-btn { border: none; background: #23262c; color: #f6f6fc; border-radius: 9999rpx; padding: 0 28rpx; line-height: 72rpx; font-size: 24rpx } .error-btn { min-width: 200rpx } .hero-section { display: flex; align-items: center; gap: 28rpx; margin-bottom: 48rpx } .hero-avatar-wrap { padding: 2rpx; border-radius: 9999rpx; background: linear-gradient(135deg, #c19cff, #9146ff, #00e3fd); box-shadow: 0 10rpx 10rpx rgba(193, 156, 255, .2) } .hero-avatar-wrap.avatar-choose-btn { display: inline-flex; align-items: center; justify-content: center; width: auto; flex-shrink: 0; box-sizing: border-box } .avatar-choose-btn { margin: 0; padding: 2rpx; line-height: normal; height: auto; background: transparent; border: none; font-size: inherit } .avatar-choose-btn::after { border: none } .hero-avatar-border { position: relative; width: 176rpx; height: 176rpx; border-radius: 9999rpx; overflow: hidden; border: 6rpx solid #0c0e12; background: #1d2025 } .hero-avatar { width: 100%; height: 100% } .avatar-mask { position: absolute; left: 0; right: 0; bottom: 0; padding: 14rpx 12rpx; background: linear-gradient(180deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, .72)); display: flex; align-items: flex-end; justify-content: center } .avatar-mask-text { font-size: 20rpx; color: #fff; font-weight: 600; letter-spacing: .04em } .avatar-canvas { position: absolute; left: -9999rpx; top: -9999rpx; width: 320rpx; height: 320rpx; opacity: 0 } .hero-info { display: flex; flex-direction: column; justify-content: center } .nickname-input { width: 100%; height: 72rpx; margin-bottom: 12rpx; padding: 0 20rpx; border-radius: 18rpx; border: 1rpx solid rgba(255, 255, 255, .08); background: #171a1f; color: #f6f6fc; font-size: 26rpx; box-sizing: border-box } .hero-name { display: block; font-size: 56rpx; font-weight: 800; line-height: 1.1; margin-bottom: 12rpx } .hero-badge { display: inline-flex; align-items: center; gap: 12rpx; padding: 12rpx 18rpx; border-radius: 9999rpx; background: #1d2025; border: 1rpx solid rgba(255, 255, 255, .1); width: fit-content } .pulse-dot { width: 16rpx; height: 16rpx; border-radius: 9999rpx; background: #00e3fd; box-shadow: 0 0 16rpx rgba(0, 227, 253, .8) } .badge-text { font-size: 22rpx; color: #aaabb0 } .grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24rpx; margin-bottom: 40rpx } .glass-card { position: relative; overflow: hidden; display: flex; flex-direction: column; min-height: 214rpx; padding: 28rpx; border: 1rpx solid rgba(255, 255, 255, .08); border-radius: 24rpx; background: rgba(29, 32, 37, .6); backdrop-filter: blur(24rpx); box-shadow: 0 20rpx 40rpx rgba(0, 0, 0, .08) } .card-glow { position: absolute; right: -48rpx; top: -48rpx; width: 180rpx; height: 180rpx; border-radius: 50%; filter: blur(48rpx); opacity: .8 } .accent-tertiary .card-glow { background: rgba(255, 108, 149, .18) } .accent-secondary .card-glow { background: rgba(0, 227, 253, .18) } .card-icon { position: relative; z-index: 1; width: 96rpx; height: 96rpx; border-radius: 9999rpx; display: flex; align-items: center; justify-content: center; margin-bottom: 20rpx; background: rgba(255, 255, 255, .06); border: 1rpx solid rgba(255, 255, 255, .05); font-size: 40rpx } .icon-tertiary { color: #ff6c95; box-shadow: 0 0 24rpx rgba(255, 108, 149, .35) } .icon-secondary { color: #00e3fd; box-shadow: 0 0 24rpx rgba(0, 227, 253, .35) } .card-title { position: relative; z-index: 1; display: block; font-size: 34rpx; line-height: 1.2; font-weight: 800; color: #f6f6fc; margin-bottom: 8rpx } .card-subtitle { position: relative; z-index: 1; display: block; font-size: 22rpx; line-height: 1.5; color: #aaabb0 } .divider-row { display: flex; align-items: center; gap: 24rpx; margin: 8rpx 0 24rpx } .divider { height: 2rpx; flex: 1; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .1), transparent) } .section-kicker { font-size: 20rpx; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: rgba(170, 171, 176, .6) } .management-grid { margin-bottom: 40rpx } .small-action { display: flex; align-items: center; gap: 24rpx; padding: 24rpx; border: 1rpx solid rgba(255, 255, 255, .05); border-radius: 24rpx; background: rgba(17, 19, 24, .8); backdrop-filter: blur(16rpx) } .small-icon { width: 80rpx; height: 80rpx; border-radius: 9999rpx; display: flex; align-items: center; justify-content: center; flex-shrink: 0; border: 1rpx solid rgba(255, 255, 255, .05); font-size: 34rpx } .small-icon.primary { background: rgba(193, 156, 255, .1); color: #c19cff } .small-icon.secondary { background: rgba(0, 227, 253, .1); color: #00e3fd } .small-icon.tertiary { background: rgba(255, 108, 149, .1); color: #ff6c95 } .small-icon.primary-fixed { background: rgba(182, 138, 255, .1); color: #b68aff } .small-text { font-size: 26rpx; font-weight: 600; color: #f6f6fc } .settings-card { display: flex; align-items: center; justify-content: space-between; padding: 30rpx 32rpx; border-radius: 24rpx; border: 1rpx solid rgba(255, 255, 255, .08); background: rgba(35, 38, 44, .4); backdrop-filter: blur(24rpx); box-shadow: 0 10rpx 30rpx rgba(0, 0, 0, .1) } .settings-icon { width: 96rpx; height: 96rpx; border-radius: 9999rpx; display: flex; align-items: center; justify-content: center; background: rgba(255, 255, 255, .06); border: 1rpx solid rgba(255, 255, 255, .05); font-size: 38rpx; color: #f6f6fc } .settings-text { flex: 1; padding-left: 20rpx; font-size: 28rpx; font-weight: 600; letter-spacing: .04em; color: #f6f6fc } .chevron { width: 64rpx; height: 64rpx; border-radius: 9999rpx; display: flex; align-items: center; justify-content: center; background: rgba(255, 255, 255, .04); color: #aaabb0; font-size: 44rpx } .modal-mask { position: fixed; inset: 0; z-index: 80; display: flex; align-items: center; justify-content: center; padding: 40rpx; background: rgba(0, 0, 0, .55); backdrop-filter: blur(16rpx) } .modal-card { width: 100%; max-width: 620rpx; padding: 32rpx; border-radius: 32rpx; background: #171a1f; border: 1rpx solid rgba(255, 255, 255, .08); box-shadow: 0 24rpx 80rpx rgba(0, 0, 0, .45) } .modal-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 24rpx } .modal-title { font-size: 32rpx; font-weight: 800; color: #f6f6fc } .modal-close { width: 56rpx; height: 56rpx; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 40rpx; color: #aaabb0; background: rgba(255, 255, 255, .04) } .modal-input { width: 100%; height: 84rpx; box-sizing: border-box; padding: 0 24rpx; border-radius: 20rpx; border: 1rpx solid rgba(255, 255, 255, .08); background: #0f1216; color: #f6f6fc; font-size: 28rpx; margin-bottom: 28rpx } .modal-actions { display: flex; gap: 20rpx } .modal-btn { flex: 1; border: none; border-radius: 20rpx; height: 80rpx; line-height: 80rpx; font-size: 26rpx } .modal-btn.ghost { background: #23262c; color: #f6f6fc } .modal-btn.primary { background: linear-gradient(135deg, #c19cff, #9146ff); color: #fff } .bottom-nav { position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; display: flex; justify-content: space-around; align-items: center; padding: 20rpx 24rpx 40rpx; background: rgba(12, 14, 18, .7); backdrop-filter: blur(32rpx); border-top: 1rpx solid rgba(255, 255, 255, .08); border-radius: 32rpx 32rpx 0 0; box-shadow: 0 -10rpx 40rpx rgba(0, 0, 0, .4) } .nav-item { display: flex; flex-direction: column; align-items: center; gap: 6rpx; color: #aaabb0 } .nav-item.active { color: #00e3fd; transform: translateY(-6rpx) } .nav-icon { width: 56rpx; height: 56rpx; border-radius: 9999rpx; background: rgba(255, 255, 255, .05); display: flex; align-items: center; justify-content: center; font-size: 34rpx } .nav-label { font-size: 20rpx }