/* Zanderjaz Bulk Download — toolbar & leading checkbox column (.zj-bulk-table only) */



.zj-bulk-bar {

	margin: 0 0 1rem;

	padding: 0.75rem 1rem;

	background: rgba(0, 0, 0, 0.35);

	border: 1px solid rgba(253, 100, 39, 0.45);

	border-radius: 4px;

	transition: border-color 0.2s ease, box-shadow 0.2s ease;

}



.zj-bulk-bar--loading {

	border-color: rgba(253, 100, 39, 0.85);

	box-shadow: 0 0 0 1px rgba(253, 100, 39, 0.25), 0 0 18px rgba(253, 100, 39, 0.12);

	animation: zj-bulk-bar-pulse 2s ease-in-out infinite;

}



@keyframes zj-bulk-bar-pulse {

	0%,

	100% {

		box-shadow: 0 0 0 1px rgba(253, 100, 39, 0.25), 0 0 18px rgba(253, 100, 39, 0.12);

	}

	50% {

		box-shadow: 0 0 0 1px rgba(253, 100, 39, 0.45), 0 0 26px rgba(253, 100, 39, 0.2);

	}

}



.zj-bulk-bar-inner {

	display: flex;

	flex-wrap: wrap;

	align-items: center;

	gap: 0.5rem 1rem;

}



/* Loading panel: spinner + message */

.zj-bulk-loading-panel {

	display: flex;

	align-items: center;

	gap: 0.85rem;

	margin-top: 0.65rem;

	padding: 0.75rem 1rem;

	background: rgba(253, 100, 39, 0.1);

	border: 1px solid rgba(253, 100, 39, 0.55);

	border-radius: 4px;

	flex: 1 1 100%;

}



.zj-bulk-loading-panel[hidden] {

	display: none !important;

}



.zj-bulk-loading {

	display: inline-block;

	flex-shrink: 0;

	width: 2.25rem;

	height: 2.25rem;

	border: 3px solid rgba(255, 255, 255, 0.25);

	border-top-color: #fd6427;

	border-right-color: rgba(253, 100, 39, 0.65);

	border-radius: 50%;

	animation: zj-bulk-spin 0.75s linear infinite;

}



.zj-bulk-loading-text {

	font-size: 1em;

	font-weight: 600;

	color: #ffe8df;

	letter-spacing: 0.01em;

	line-height: 1.4;

}



@keyframes zj-bulk-spin {

	to {

		transform: rotate(360deg);

	}

}



@media (prefers-reduced-motion: reduce) {

	.zj-bulk-bar--loading {

		animation: none;

	}



	.zj-bulk-loading {

		animation: none;

		border-top-color: #fd6427;

		border-right-color: #fd6427;

		opacity: 0.85;

	}

}



.zj-bulk-btn {

	cursor: pointer;

	padding: 0.35rem 0.85rem;

	font: inherit;

	border-radius: 3px;

	border: 1px solid rgba(255, 255, 255, 0.35);

	background: rgba(30, 30, 30, 0.9);

	color: inherit;

}



.zj-bulk-btn:hover,

.zj-bulk-btn:focus {

	border-color: #fd6427;

	outline: none;

}



.zj-bulk-btn:disabled {

	opacity: 0.55;

	cursor: not-allowed;

}



.zj-bulk-primary {

	background: #fd6427;

	border-color: #fd6427;

	color: #111;

	font-weight: 600;

}



.zj-bulk-primary:hover,

.zj-bulk-primary:focus {

	filter: brightness(1.05);

}



.zj-bulk-count {

	font-size: 0.95em;

	opacity: 0.9;

	min-width: 10em;

}



.zj-bulk-hint {

	margin: 0.5rem 0 0;

	padding: 0;

	font-size: 0.85em;

	line-height: 1.35;

	color: rgba(255, 255, 255, 0.65);

	flex: 1 1 100%;

	min-height: 1.2em;

}



.zj-bulk-status {

	margin: 0.35rem 0 0;

	padding: 0;

	font-size: 0.9em;

	color: #ffb4a1;

	flex: 1 1 100%;

	line-height: 1.45;

}



.zj-bulk-status--error {

	color: #ffb4a1;

	padding: 0.5rem 0.65rem;

	margin-top: 0.5rem;

	background: rgba(255, 80, 60, 0.08);

	border: 1px solid rgba(255, 120, 100, 0.35);

	border-radius: 3px;

}



.zj-bulk-status--notice {

	color: #ffe0b8;

	padding: 0.5rem 0.65rem;

	margin-top: 0.5rem;

	background: rgba(253, 100, 39, 0.12);

	border: 1px solid rgba(253, 100, 39, 0.35);

	border-radius: 3px;

}



.zj-bulk-status--success {

	color: #b8f0d0;

	padding: 0.55rem 0.75rem;

	margin-top: 0.5rem;

	background: rgba(80, 200, 130, 0.12);

	border: 1px solid rgba(100, 210, 150, 0.45);

	border-radius: 3px;

	font-weight: 600;

}



@media (min-width: 600px) {

	.zj-bulk-status {

		flex: 1 1 auto;

	}

}



/* Sticky thead: keep header cells above scaled body checkboxes when scrolling */

.zj-bulk-table thead th {

	position: sticky;

	top: 0;

	z-index: 2;

	background-color: #212121;

}



.zj-bulk-table thead th.zj-bulk-select-col {

	z-index: 3;

}



/* Checkbox column: scoped to bulk table only (.zj-bulk-table) */

.zj-bulk-table th.zj-bulk-select-col.zj-bulk-head,

.zj-bulk-table td.zj-bulk-select-col.zj-bulk-cell {

	min-width: 3.25rem;

	width: 3.75rem;

	text-align: center;

	box-sizing: border-box;

}



.zj-bulk-table th.zj-bulk-select-col.zj-bulk-head {

	vertical-align: middle;

	white-space: normal;

	padding: 0;

}



.zj-bulk-table th.zj-bulk-select-col.zj-bulk-head .zj-bulk-head-label {

	display: inline-flex;

	align-items: center;

	justify-content: center;

	width: 100%;

	padding: 0.65rem 0.5rem;

	line-height: 1.3;

	box-sizing: border-box;

}



.zj-bulk-table td.zj-bulk-select-col.zj-bulk-cell {

	vertical-align: middle;

	white-space: nowrap;

	overflow: hidden;

}



.zj-bulk-table th.zj-bulk-head:not(.zj-bulk-select-col) {

	padding: 0.65rem 0.5rem;

}



.zj-bulk-table td.zj-bulk-cell {

	padding: 0.55rem 0.65rem;

}



@media (max-width: 599px) {

	.zj-bulk-table th.zj-bulk-head:not(.zj-bulk-select-col) {

		padding: 0.5rem 0.4rem;

	}



	.zj-bulk-table th.zj-bulk-select-col.zj-bulk-head .zj-bulk-head-label {

		padding: 0.5rem 0.4rem;

	}



	.zj-bulk-table td.zj-bulk-cell {

		padding: 0.5rem 0.55rem;

	}

}



/* Native checkbox: larger hit target (bulk UI only: .zj-bulk-cb inside .zj-bulk-table) */

.zj-bulk-table .zj-bulk-cb {

	width: 1.35rem;

	height: 1.35rem;

	min-width: 1.35rem;

	min-height: 1.35rem;

	margin: 0;

	cursor: pointer;

	vertical-align: middle;

	transform: scale(1.15);

	transform-origin: center center;

	accent-color: #fd6427;

}



.zj-bulk-table .zj-bulk-cb:disabled {

	opacity: 0.4;

	cursor: not-allowed;

}



.zj-bulk-table td.zj-bulk-cell-disabled {
	opacity: 0.55;
}

/* Generic sortable headers (.zj-bulk-table only) */
.zj-bulk-table th.zj-bulk-sortable-th {
	padding: 0;
	vertical-align: middle;
}

.zj-bulk-table .zj-bulk-sort-btn {
	display: inline-flex;
	align-items: center;
	justify-content: flex-start;
	gap: 0.4rem;
	width: 100%;
	margin: 0;
	padding: 0.65rem 0.5rem;
	border: none;
	background: transparent;
	color: inherit;
	font: inherit;
	font-weight: inherit;
	cursor: pointer;
	text-align: left;
	line-height: 1.3;
}

.zj-bulk-table .zj-bulk-sort-btn:hover,
.zj-bulk-table .zj-bulk-sort-btn:focus {
	background: rgba(253, 100, 39, 0.12);
	outline: 2px solid rgba(253, 100, 39, 0.55);
	outline-offset: -2px;
}

.zj-bulk-table .zj-bulk-sort-label {
	flex: 0 1 auto;
	min-width: 0;
}

/* Match drum-kits / vst-plugins: side-by-side up/down triangles */
.zj-bulk-table .sort-arrows {
	flex-shrink: 0;
	font-size: 0.9em;
	margin-left: 6px;
}

.zj-bulk-table .sort-arrows .arrow {
	color: #666;
	margin-left: 2px;
	font-weight: normal;
}

.zj-bulk-table .sort-arrows .arrow.active {
	color: #fd6427;
	font-weight: bold;
}

.zj-bulk-table th.tablehead .zj-bulk-sort-btn:hover,
.zj-bulk-table th.tablehead .zj-bulk-sort-btn:focus {
	color: #fd6427;
}

@media (max-width: 599px) {
	.zj-bulk-table .zj-bulk-sort-btn {
		padding: 0.5rem 0.4rem;
	}
}

/* Downloaded file links: muted gray (visited state) */
.zj-bulk-table a.zj-bulk-downloaded {
	color: #7f7f7f;
	cursor: not-allowed;
	text-decoration: none;
}

.zj-bulk-table a.zj-bulk-downloaded:hover,
.zj-bulk-table a.zj-bulk-downloaded:focus {
	color: #7f7f7f;
	text-decoration: none;
}

.zj-bulk-table td.zj-bulk-cell-downloaded {
	opacity: 0.55;
	cursor: not-allowed;
}

/* Toast notifications (bottom center) */
.zj-bulk-toast {
	position: fixed;
	bottom: 1.5rem;
	left: 50%;
	z-index: 100000;
	max-width: min(90vw, 28rem);
	padding: 0.65rem 1.15rem;
	font-size: 0.95em;
	font-weight: 600;
	line-height: 1.45;
	text-align: center;
	border-radius: 4px;
	box-shadow: 0 8px 28px rgba(0, 0, 0, 0.5);
	opacity: 0;
	transform: translateX(-50%) translateY(0.75rem);
	transition: opacity 0.25s ease, transform 0.25s ease;
	pointer-events: none;
}

.zj-bulk-toast--success {
	color: #b8f0d0;
	background: rgba(80, 200, 130, 0.12);
	border: 1px solid rgba(100, 210, 150, 0.45);
}

.zj-bulk-toast--notice {
	color: #ffe0b8;
	background: rgba(253, 100, 39, 0.12);
	border: 1px solid rgba(253, 100, 39, 0.35);
}

.zj-bulk-toast--visible {
	opacity: 1;
	transform: translateX(-50%) translateY(0);
}

@media (prefers-reduced-motion: reduce) {
	.zj-bulk-toast {
		transition: none;
	}
}
