.goal-widget {
	width: 100%;
	padding: 16px;
	font-family: 'Pretendard', sans-serif;
}

.goal-widget--loading {
	color: #666;
	text-align: center;
}

.goal-title {
	text-align: center;
	margin-bottom: 12px;
	text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.4);
	font-size: var(--goal-title-font-size);
	color: var(--goal-title-color);
	font-weight: 700;
}

.goal-bar-wrapper {
	position: relative;
	width: 100%;
	border-radius: 8px;
	overflow: hidden;
	height: var(--goal-bar-height);
	min-height: 24px;
}

.goal-bar-bg {
	width: 100%;
	height: 100%;
	border-radius: 8px;
	background-color: var(--goal-bar-bg-color);
}

.goal-bar-fill {
	height: 100%;
	border-radius: 8px;
	width: var(--goal-bar-fill-width, 0%);
	transition: width 0.8s cubic-bezier(0.4, 0, 0.2, 1);
	position: relative;
	background-color: var(--goal-bar-color);

	&::after {
		content: '';
		position: absolute;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.2) 50%, transparent 100%);
		animation: shimmer 2s infinite;
	}
}

.goal-bar-text {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 1;
	font-size: var(--goal-amount-font-size);
	color: var(--goal-amount-color);
	font-weight: 600;
	white-space: nowrap;
	text-shadow: 0 1px 3px rgba(0, 0, 0, 0.7), 0 0 2px rgba(0, 0, 0, 0.5);
	pointer-events: none;
}

@keyframes shimmer {
	0% { transform: translateX(-100%); }
	100% { transform: translateX(100%); }
}