.rank-table {
	border-collapse: collapse;
	width: 100%;
	max-width: 600px;
	font-size: 15px;
	box-shadow: 0 2px 8px rgba(0,0,0,0.15);
}

.rank-table th {
	padding: 8px 14px;
	text-align: center;
	border: 1px solid #aaa;
}

.rank-table td {
	padding: 8px 14px;
	text-align: left;
	border: 1px solid #ddd;
}

/* header row */
.rank-table thead tr {
	background: #3a3a6e;
	color: #fff;
}

/* rank number column */
.rank-table .rank-no {
	text-align: center;
	font-weight: bold;
	width: 50px;
}

/* ticket count column */
.rank-table .rank-votes {
	text-align: right;
	width: 80px;
	color: #555;
}

/* general rows */
.rank-table tbody tr {
	background: #f8f8f8;
	transition: background 0.15s;
}

.rank-table tbody tr:hover {
	background: #e8eaf6;
}

/* top 3 */
.rank-table tbody tr:nth-child(1) {
	background: linear-gradient(90deg, #fff8dc, #ffe066);
	font-weight: bold;
	font-size: 16px;
}
.rank-table tbody tr:nth-child(1) .rank-no::before { content: "🥇 "; }

.rank-table tbody tr:nth-child(2) {
	background: linear-gradient(90deg, #f5f5f5, #e0e0e0);
	font-weight: bold;
}
.rank-table tbody tr:nth-child(2) .rank-no::before { content: "🥈 "; }

.rank-table tbody tr:nth-child(3) {
	background: linear-gradient(90deg, #fff3e0, #ffcc88);
	font-weight: bold;
}
.rank-table tbody tr:nth-child(3) .rank-no::before { content: "🥉 "; }
