// ─────────────────────────────────────────────────────────────
// D3 보상/응원/지위아이템 — 장착 배지 · 닉네임 이펙트 · 레벨 진행바 · 상점 미리보기
// D6 토큰 변수만 사용. 등락엔 --az-accent 미사용(D6 원칙).
// ─────────────────────────────────────────────────────────────

// ── 장착 배지 (닉네임 옆) ──
.equipped-badge {
	display: inline-flex;
	align-items: center;
	gap: 3px;
	margin-left: var(--sp-2);
	padding: 1px 7px;
	border-radius: 999px;
	background: var(--bg-subtle);
	border: 1px solid var(--border-default);
	font-size: var(--fs-2xs);
	font-weight: 600;
	line-height: 1.5;
	white-space: nowrap;
	vertical-align: middle;

	&__icon {
		width: 12px;
		height: 12px;
		object-fit: contain;
	}

	&__emoji {
		font-size: var(--fs-xs);
		line-height: 1;
	}

	&__label {
		max-width: 8em;
		overflow: hidden;
		text-overflow: ellipsis;
	}
}

// ── 닉네임 이펙트 ──
.nickname-effect {
	font-weight: 700;

	// EffectPayload.animation 키에 대응하는 프리셋 (없으면 색상만)
	&--glow {
		text-shadow: 0 0 6px currentColor;
	}

	&--pulse {
		animation: nickname-pulse 1.6s ease-in-out infinite;
	}

	&--gradient {
		background: linear-gradient(90deg, var(--az-accent), var(--price-up));
		-webkit-background-clip: text;
		background-clip: text;
		color: transparent;
	}
}

@keyframes nickname-pulse {
	0%, 100% { opacity: 1; }
	50% { opacity: 0.55; }
}

// 접근성 — 모션 최소화 선호 시 애니메이션 정지
@media (prefers-reduced-motion: reduce) {
	.nickname-effect--pulse {
		animation: none;
	}
}

// ── 레벨/보상 위젯 ──
.level-card {
	display: flex;
	flex-direction: column;
	gap: var(--sp-5);
	padding: var(--sp-6);
	border: 1px solid var(--border-default);
	border-radius: var(--radius);
	background: var(--bg-elevated);

	&__grade {
		display: flex;
		align-items: center;
		gap: var(--sp-4);
	}

	&__grade-img {
		width: 40px;
		height: 40px;
		object-fit: contain;
	}

	&__grade-name {
		font-size: var(--fs-xl);
		font-weight: 800;
	}

	&__exp {
		font-size: var(--fs-sm);
		color: var(--text-muted);
		font-variant-numeric: tabular-nums;
	}

	&__bar {
		position: relative;
		height: 12px;
		border-radius: 999px;
		background: var(--bg-subtle);
		overflow: hidden;
	}

	&__bar-fill {
		position: absolute;
		inset: 0 auto 0 0;
		background: var(--az-accent);
		border-radius: 999px;
		transition: width .3s ease;
	}

	&__next {
		font-size: var(--fs-sm);
		color: var(--text-secondary);
		font-variant-numeric: tabular-nums;
	}
}

// ── 오늘 보상 캡 표 ──
.reward-today {
	border: 1px solid var(--border-default);
	border-radius: var(--radius);
	overflow: hidden;

	&__header {
		display: flex;
		justify-content: space-between;
		gap: var(--sp-4);
		padding: var(--sp-5) var(--sp-6);
		background: var(--bg-elevated);
		border-bottom: 1px solid var(--border-default);
		font-weight: 700;
	}

	&__total {
		font-variant-numeric: tabular-nums;
		color: var(--az-accent);
	}

	&__row {
		display: grid;
		grid-template-columns: 1fr auto auto;
		gap: var(--sp-4);
		align-items: center;
		padding: var(--sp-4) var(--sp-6);
		border-bottom: 1px solid var(--border-light);
		font-size: var(--fs-sm);

		&:last-child {
			border-bottom: 0;
		}
	}

	&__name {
		font-weight: 600;
	}

	&__earned {
		font-variant-numeric: tabular-nums;
		color: var(--text-secondary);
	}

	&__cap {
		font-variant-numeric: tabular-nums;
		font-size: var(--fs-xs);
		color: var(--text-muted);
	}

	&__cap--full {
		color: var(--price-down);
	}
}
