.hb-chart, .hb-ranking, .hb-song-detail, .hb-artist-detail {
	font-family: inherit;
	max-width: 100%;
	margin: 1.5em 0;
}
.hb-chart-title {
	margin-bottom: 0.5em;
}
.hb-chart-list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.hb-chart-row {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 0;
	border-bottom: 1px solid #e5e5e5;
}
.hb-rank {
	font-weight: 700;
	min-width: 32px;
	color: #1a56db;
}
.hb-artwork {
	border-radius: 4px;
	object-fit: cover;
	flex-shrink: 0;
}
.hb-meta {
	display: flex;
	flex-direction: column;
	flex-grow: 1;
	min-width: 0;
}
.hb-title {
	font-weight: 600;
	text-decoration: none;
	color: inherit;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
a.hb-title:hover {
	text-decoration: underline;
}
.hb-artist {
	color: #646970;
	font-size: 0.9em;
}
.hb-movement {
	font-weight: 600;
	font-size: 0.9em;
	white-space: nowrap;
}
.hb-movement-new { color: #1a56db; }
.hb-movement-same { color: #999; }
.hb-chart-footer {
	margin-top: 10px;
	font-size: 0.85em;
	color: #646970;
}
.hb-chart-empty {
	padding: 20px;
	background: #f7f7f7;
	border-radius: 6px;
	text-align: center;
}
.hb-empty-reason {
	font-size: 0.85em;
	color: #646970;
}
.hb-song-header, .hb-artist-header {
	display: flex;
	gap: 20px;
	align-items: flex-start;
	margin-bottom: 1em;
}
.hb-song-header img, .hb-artist-header img {
	border-radius: 8px;
	object-fit: cover;
	flex-shrink: 0;
}
.hb-history-table {
	width: 100%;
	border-collapse: collapse;
}
.hb-history-table th, .hb-history-table td {
	text-align: left;
	padding: 6px 10px;
	border-bottom: 1px solid #e5e5e5;
}

@media (max-width: 480px) {
	.hb-artwork { width: 44px; height: 44px; }
	.hb-song-header, .hb-artist-header { flex-direction: column; }
}
