// ─────────────────────────────────────────────────────────────
// D2 커뮤니티 — 예측 배지 / 트랙레코드 배지 / $종목 태그 / 종목 토론 / 리더보드 / 트렌딩
// 토큰 변수만 사용 (색·간격·타이포). 등락엔 포인트 컬러(--az-accent) 미사용.
// ─────────────────────────────────────────────────────────────

// ── 예측 배지 (방향 + 기간 + 상태) ──
.prediction-badge {
	display: inline-flex;
	align-items: center;
	gap: var(--sp-2);
	padding: 2px 8px;
	border: 1px solid var(--border-strong);
	border-radius: 999px;
	font-size: var(--fs-2xs);
	line-height: 1.6;
	white-space: nowrap;
	vertical-align: middle;

	&__dir {
		display: inline-flex;
		align-items: center;
		gap: 2px;
		font-weight: 700;
		font-variant-numeric: tabular-nums;

		&--up {
			color: var(--price-up);
		}

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

	&__horizon {
		color: var(--text-muted);
	}

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

	// 상태 점 + 라벨
	&__status {
		display: inline-flex;
		align-items: center;
		gap: 4px;
		font-weight: 600;
	}

	&__dot {
		width: 6px;
		height: 6px;
		border-radius: 50%;
		background: var(--text-muted);
	}

	&--pending &__status { color: var(--text-muted); }
	&--pending &__dot { background: var(--text-muted); }

	&--hit &__status { color: var(--price-up); }
	&--hit &__dot { background: var(--price-up); }

	&--miss &__status { color: var(--price-down); }
	&--miss &__dot { background: var(--price-down); }

	&--void &__status { color: var(--text-muted); }
	&--void &__dot { background: var(--text-muted); }

	// 상세 뷰용 확장 배지
	&--detail {
		padding: var(--sp-3) var(--sp-4);
		border-radius: 8px;
		font-size: var(--fs-sm);
		gap: var(--sp-4);
	}
}

// 상세 뷰 예측 배지 래퍼
.post-prediction {
	margin-bottom: var(--sp-4);
}

// 작은 예측 표식 (목록 행에서 아이콘만)
.prediction-tag {
	display: inline-flex;
	align-items: center;
	gap: 3px;
	font-size: var(--fs-2xs);
	font-weight: 700;
	vertical-align: middle;

	&--up { color: var(--price-up); }
	&--down { color: var(--price-down); }
	&--flat { color: var(--text-muted); }
}

// ── 트랙레코드 등급 배지 ──
.tier-badge {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 1px 8px;
	border-radius: 999px;
	border: 1px solid var(--border-strong);
	font-size: var(--fs-2xs);
	font-weight: 700;
	line-height: 1.6;
	white-space: nowrap;
	vertical-align: middle;

	&__icon {
		font-size: 0.9em;
	}

	&--none {
		color: var(--text-muted);
		border-color: var(--border-default);
	}

	&--bronze {
		color: #a15c2f;
		border-color: #a15c2f;
	}

	&--silver {
		color: #7a7f87;
		border-color: #9aa0a8;
	}

	&--gold {
		color: #b8860b;
		border-color: #d4a017;
	}

	&--goldant {
		color: #fff;
		background: linear-gradient(135deg, #d4a017, #b8860b);
		border-color: #b8860b;
	}
}

// ── $종목 태그 (본문 인라인 배지) ──
.stock-tag {
	display: inline-flex;
	align-items: baseline;
	gap: 3px;
	padding: 0 5px;
	border-radius: 4px;
	background: var(--bg-subtle-hover);
	border: 1px solid var(--border-light);
	color: var(--text-primary);
	font-size: 0.95em;
	text-decoration: none;
	white-space: nowrap;

	&:hover {
		border-color: var(--az-accent);
		color: var(--az-accent);
	}

	&__code {
		color: var(--text-muted);
		font-variant-numeric: tabular-nums;
		font-size: 0.85em;
	}

	&--missing {
		color: var(--text-secondary);
	}
}

// ── 종목 토론 탭 (/stock/[code]?tab=discussion) ──
.stock-discussion {
	// 통계 헤더
	&__stats {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		gap: var(--sp-3) var(--sp-6);
		padding-bottom: var(--sp-4);
		margin-bottom: var(--sp-4);
		border-bottom: 1px solid var(--border-default);

		span {
			font-size: var(--fs-xs);
			color: var(--text-muted);

			strong {
				color: var(--text-primary);
				font-variant-numeric: tabular-nums;
				margin-left: var(--sp-2);
			}
		}
	}

	&__head {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: var(--sp-4);
		margin-bottom: var(--sp-3);
	}

	&__table {
		width: 100%;
		border-collapse: collapse;

		thead th {
			height: var(--row-h);
			padding: 0 var(--cell-px);
			font-size: var(--cell-fs);
			font-weight: 600;
			color: var(--text-muted);
			text-align: left;
			border-bottom: 1px solid var(--border-strong);

			&.stock-discussion__col--num,
			&.stock-discussion__col--num-h { text-align: center; width: 48px; }
		}

		tbody td {
			height: var(--row-h);
			padding: 0 var(--cell-px);
			font-size: var(--cell-fs);
			color: var(--text-primary);
			border-bottom: 1px solid var(--border-light);
			vertical-align: middle;
		}

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

		&-num { text-align: center; color: var(--text-muted); font-variant-numeric: tabular-nums; }
		&-meta { color: var(--text-muted); font-variant-numeric: tabular-nums; white-space: nowrap; text-align: right; }
	}

	&__subject {
		display: inline-flex;
		align-items: center;
		gap: var(--sp-2);
		color: var(--text-primary);

		&:hover { color: var(--az-accent); }

		em { font-style: normal; }
		.stock-discussion__comments { color: var(--az-accent); font-size: 0.9em; }
	}

	&__empty,
	&__error {
		padding: var(--sp-7) var(--sp-5);
		font-size: var(--fs-base);
		color: var(--text-muted);
		text-align: center;
	}

	// mobile drop
	@media (max-width: 767.98px) {
		&__col--author,
		&__col--views { display: none; }
	}
}

// ── 종목 글쓰기 폼 (토론 탭 내) ──
.stock-write {
	margin-top: var(--sp-5);
	padding: var(--sp-5);
	border: 1px solid var(--border-default);
	border-radius: 8px;
	background: var(--bg-elevated);

	&__title {
		font-size: var(--fs-base);
		font-weight: 600;
		color: var(--text-primary);
		margin-bottom: var(--sp-4);
	}

	&__field {
		margin-bottom: var(--sp-4);

		label {
			display: block;
			font-size: var(--fs-xs);
			color: var(--text-secondary);
			margin-bottom: var(--sp-2);
		}

		input[type='text'],
		input[type='number'],
		textarea,
		select {
			width: 100%;
			padding: var(--sp-3);
			border: 1px solid var(--border-strong);
			border-radius: 6px;
			background: var(--bg-base, var(--bg-elevated));
			color: var(--text-primary);
			font-size: var(--fs-sm);

			&:focus {
				outline: none;
				border-color: var(--az-accent);
			}
		}

		textarea { min-height: 120px; resize: vertical; }
	}

	&__prediction {
		margin-top: var(--sp-4);
		padding: var(--sp-4);
		border: 1px dashed var(--border-strong);
		border-radius: 6px;
	}

	&__prediction-head {
		display: flex;
		align-items: center;
		gap: var(--sp-3);
		margin-bottom: var(--sp-4);
		font-size: var(--fs-sm);
		color: var(--text-secondary);
	}

	&__prediction-grid {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: var(--sp-3);

		@media (max-width: 640px) {
			grid-template-columns: 1fr;
		}
	}

	&__actions {
		display: flex;
		justify-content: flex-end;
		gap: var(--sp-3);
		margin-top: var(--sp-4);
	}

	&__btn {
		padding: var(--sp-3) var(--sp-5);
		border-radius: 6px;
		font-size: var(--fs-sm);
		font-weight: 600;
		border: 1px solid var(--border-strong);
		background: transparent;
		color: var(--text-primary);
		cursor: pointer;

		&--primary {
			background: var(--az-accent);
			border-color: var(--az-accent);
			color: #fff;
		}

		&:disabled { opacity: 0.5; cursor: not-allowed; }
	}

	&__hint {
		margin-top: var(--sp-3);
		font-size: var(--fs-2xs);
		color: var(--text-muted);
	}

	&__error {
		margin-top: var(--sp-3);
		font-size: var(--fs-xs);
		color: var(--color-danger);
	}
}

.stock-write-toggle {
	display: inline-flex;
	align-items: center;
	gap: var(--sp-2);
	padding: var(--sp-2) var(--sp-4);
	border-radius: 6px;
	font-size: var(--fs-sm);
	font-weight: 600;
	background: var(--az-accent);
	color: #fff;
	border: none;
	cursor: pointer;
}

.stock-write-login {
	margin-top: var(--sp-4);
	padding: var(--sp-4);
	font-size: var(--fs-sm);
	color: var(--text-muted);
	text-align: center;
	border: 1px dashed var(--border-default);
	border-radius: 8px;

	a { color: var(--az-accent); font-weight: 600; }
}

// ── 적중률 리더보드 (/ranking/track-record) ──
.track-leaderboard {
	padding: var(--sp-6) var(--sp-7);

	@media (max-width: 767.98px) {
		padding: var(--sp-5) var(--sp-4);
	}

	&__head {
		margin-bottom: var(--sp-5);
	}

	&__title {
		font-size: var(--fs-2xl);
		font-weight: 700;
		color: var(--text-primary);
	}

	&__subtitle {
		display: block;
		margin-top: var(--sp-2);
		font-size: var(--fs-xs);
		color: var(--text-muted);
	}

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

	&__name {
		color: var(--text-primary);

		&:hover { color: var(--az-accent); }
	}

	&__hitrate {
		font-variant-numeric: tabular-nums;
		font-weight: 700;
		color: var(--text-primary);
	}

	&__error,
	&__empty {
		padding: var(--sp-7) var(--sp-5);
		text-align: center;
		color: var(--text-muted);
	}

	&__table-wrap {
		overflow-x: auto;
	}

	&__actions {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: var(--sp-3);
		margin-top: var(--sp-5);
	}

	&__btn {
		padding: var(--sp-2) var(--sp-5);
		border: 1px solid var(--border-strong);
		border-radius: 6px;
		font-size: var(--fs-sm);
		color: var(--text-primary);

		&:hover { border-color: var(--az-accent); }
	}
}

// ── 트렌딩 위젯 (지금 뜨는 종목) ──
.trending-widget {
	&__title {
		display: flex;
		align-items: center;
		gap: var(--sp-2);
		font-size: var(--fs-sm);
		font-weight: 700;
		color: var(--text-primary);
		margin-bottom: var(--sp-3);
	}

	&__list {
		display: flex;
		flex-direction: column;
	}

	&__item {
		display: flex;
		align-items: center;
		gap: var(--sp-3);
		padding: var(--sp-2) 0;
		border-bottom: 1px solid var(--border-light);
		font-size: var(--fs-xs);
		color: var(--text-primary);

		&:last-child { border-bottom: none; }
		&:hover { color: var(--az-accent); }
	}

	&__rank {
		width: 18px;
		text-align: center;
		font-weight: 700;
		color: var(--text-muted);
		font-variant-numeric: tabular-nums;
	}

	&__name {
		flex: 1;
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
	}

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

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

	&__empty {
		font-size: var(--fs-xs);
		color: var(--text-muted);
		padding: var(--sp-3) 0;
	}
}

// 프로필 트랙레코드 탭에서 상단 배지 줄
.track-summary {
	display: flex;
	align-items: center;
	gap: var(--sp-3);
	margin-bottom: var(--sp-4);

	&__label {
		font-size: var(--fs-xs);
		color: var(--text-muted);
	}
}
