/* Shared across [haer_song_list] and [haer_koleksi_list] (both grid + detail
   views): search toolbar, type filter pills, pagination, loading spinner.
   Keep this file loaded wherever song-list.css or koleksi.css is loaded. */

.haer-filter-type { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 15px; }
.haer-filter-type a {
	padding: 8px 16px; border-radius: 30px; text-decoration: none;
	background: #f0f0f1; color: #333; font-size: 14px; transition: 0.2s; cursor: pointer;
}
.haer-filter-type a:hover { background: #ddd; }
.haer-filter-type a.active { background: #2271b1; color: #fff; }

.haer-toolbar { display: flex; flex-wrap: nowrap; align-items: center; gap: 12px; margin-bottom: 25px; }
.haer-search-box { position: relative; flex: 1 1 auto; min-width: 0; max-width: 420px; margin-bottom: 0; }
.haer-search-box input {
	width: 100%; padding: 10px 40px 10px 14px; border: 1px solid #c3c4c7;
	border-radius: 6px; font-size: 15px; box-sizing: border-box;
}
.haer-search-box .haer-clear-btn {
	position: absolute; right: 10px; top: 50%; transform: translateY(-50%);
	background: none; border: none; font-size: 18px; cursor: pointer; color: #666; display: none;
}
.haer-per-page-box {
	display: flex; align-items: center; gap: 6px; font-size: 14px; color: #333;
	white-space: nowrap; flex: 0 0 auto;
}
.haer-per-page-box select {
	padding: 7px 10px; border: 1px solid #c3c4c7; border-radius: 6px; font-size: 14px;
}
.haer-per-page-suffix { color: #666; }

.haer-no-result { text-align: center; padding: 40px 20px; color: #666; }

.haer-pagination-container { margin-top: 20px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.haer-pagination-info { font-size: 13px; color: #666; }
.haer-pagination { display: flex; flex-wrap: wrap; gap: 6px; }
.haer-page-btn {
	min-width: 34px; height: 34px; padding: 0 8px; border: 1px solid #c3c4c7; background: #fff;
	border-radius: 6px; font-size: 14px; cursor: pointer; color: #333;
}
.haer-page-btn:hover:not(:disabled) { background: #f0f0f1; }
.haer-page-btn.active { background: #2271b1; border-color: #2271b1; color: #fff; }
.haer-page-btn:disabled { opacity: 0.4; cursor: not-allowed; }
.haer-page-ellipsis { padding: 0 4px; color: #999; align-self: center; }

.haer-loading-overlay {
	position: absolute; inset: 0; background: rgba(255,255,255,0.6);
	align-items: center; justify-content: center; z-index: 5;
}
.haer-spinner {
	width: 30px; height: 30px; border: 3px solid #dcdcdc; border-top-color: #2271b1;
	border-radius: 50%; animation: haer-spin 0.7s linear infinite;
}
@keyframes haer-spin { to { transform: rotate(360deg); } }

@media (max-width: 600px) {
	.haer-toolbar { flex-wrap: nowrap; gap: 8px; }
	.haer-search-box input { padding: 8px 34px 8px 10px; font-size: 14px; }
	.haer-per-page-box { gap: 4px; font-size: 13px; }
	.haer-per-page-label { display: none; }
	.haer-per-page-box select { padding: 6px 6px; font-size: 13px; }
}
