.notification-bell {
	position: relative;
	display: inline-flex;

	&__button {
		position: relative;
		background: none;
		border: none;
		cursor: pointer;
		padding: 6px;
		font-size: 1.25rem;
		color: var(--text-head);
		border-radius: 50%;
		transition: background 0.15s;

		&:hover {
			outline: 1px solid var(--outline-default);
			background: var(--bg-icon);
		}
	}

	&__badge {
		position: absolute;
		top: 0;
		right: 0;
		background: var(--color-danger);
		color: #fff;
		border-radius: 50%;
		width: 18px;
		height: 18px;
		font-size: 0.625rem;
		font-weight: 700;
		display: flex;
		align-items: center;
		justify-content: center;
		pointer-events: none;
	}

	// ── 토스트 알림 ─────────────────────────────────────
	&__toast {
		position: fixed;
		top: 16px;
		right: 16px;
		background: var(--text-primary, #1f2937);
		color: #fff;
		padding: 10px 16px;
		border-radius: 10px;
		font-size: 0.8125rem;
		z-index: 9999;
		box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25);
		animation: notif-bell-fade-in 0.3s ease;
	}

	// ── 드롭다운 패널 ───────────────────────────────────
	&__dropdown {
		position: absolute;
		right: 0;
		top: calc(100% + 8px);
		width: 340px;
		max-height: 420px;
		overflow-y: auto;
		background: var(--bg-page);
		border: 1px solid var(--border-default);
		border-radius: 12px;
		box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
		z-index: 1000;
	}

	&__header {
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding: 14px 16px;
		border-bottom: 1px solid var(--border-default);

		&:hover {
			border: 1px solid var(--border-default);
		}
	}

	&__header-title {
		font-size: 0.875rem;
		font-weight: 700;
	}

	&__read-all-btn {
		background: none;
		border: none;
		color: var(--color-blue);
		cursor: pointer;
		font-size: 0.75rem;
		font-weight: 500;

		&:hover {
			text-decoration: underline;
		}
	}

	// ── 상태 ────────────────────────────────────────────
	&__loading,
	&__empty {
		padding: 24px 16px;
		text-align: center;
		color: var(--text-muted);
		font-size: 0.8125rem;
	}

	// ── 알림 아이템 ─────────────────────────────────────
	&__item {
		display: flex;
		gap: 10px;
		padding: 10px 16px;
		cursor: pointer;
		transition: background 0.15s;

		&:not(:last-child) {
			border-bottom: 1px solid var(--border-subtle, rgba(0, 0, 0, 0.05));
		}

		&:hover {
			background: var(--bg-subtle);
		}

		&--unread {
			background: var(--color-blue-bg);
		}
	}

	&__item-image {
		width: 36px;
		height: 36px;
		border-radius: 50%;
		object-fit: cover;
		flex-shrink: 0;
	}

	&__item-content {
		flex: 1;
		overflow: hidden;
		min-width: 0;
	}

	&__item-title {
		font-size: 0.8125rem;
		color: var(--text-primary);
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;

		&--unread {
			font-weight: 600;
		}

		&--read {
			font-weight: 400;
		}
	}

	&__item-message {
		font-size: 0.75rem;
		color: var(--text-muted);
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
		margin-top: 1px;
	}

	&__item-time {
		font-size: 0.625rem;
		color: var(--text-muted);
		margin-top: 3px;
	}

	&__item-dot {
		width: 8px;
		height: 8px;
		border-radius: 50%;
		background: var(--color-blue);
		flex-shrink: 0;
		margin-top: 6px;
	}

	// ── 하단 푸터 ───────────────────────────────────────
	&__footer {
		padding: 10px 16px;
		text-align: center;
		border-top: 1px solid var(--border-default);
	}

	&__footer-link {
		font-size: 0.75rem;
		color: var(--color-blue);
		text-decoration: none;
		font-weight: 500;

		&:hover {
			text-decoration: underline;
		}
	}

	&__footer-divider {
		margin: 0 8px;
		color: var(--border-default);
	}
}

@keyframes notif-bell-fade-in {
	from {
		opacity: 0;
		transform: translateY(-8px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}