/* File: prj-setlist-builder/assets/css/frontend/prj-frontend-shortcodes.css */

.prj-upcoming-list { max-width:750px; margin:2rem auto; }
.prj-upcoming-item { display:flex; align-items:center; gap:18px; margin-bottom:32px; }
.prj-upcoming-img-wrap { flex:0 0 auto; }
.prj-upcoming-img { width:110px; height:110px; object-fit:cover; border-radius:50%; }
.prj-upcoming-content { flex:1 1 auto; }
.prj-upcoming-title { font-size:16px; font-weight:700; color:var(--prj-color-accent, #ff0373); text-decoration:none; display:block; margin-bottom:4px; }
.prj-upcoming-title:hover { text-decoration:underline; }
.prj-upcoming-meta { font-size:12px; text-transform:uppercase; letter-spacing:0.08em; color:#eee; opacity:0.85; }
.prj-upcoming-status-row { margin-top:6px; }
.prj-upcoming-status-label { color:#ffffff; font-weight:600; opacity:0.7; margin-right:6px; text-transform:none; }
.prj-upcoming-status { font-weight:700; font-size:16px; text-transform:uppercase; color:#eee; }
.prj-upcoming-status.prj-status-open_songs,.prj-upcoming-status.prj-status-open_instruments { color:var(--prj-color-accent-secondary, #b6f500); }
@media (max-width:600px){ .prj-upcoming-list { padding:0 16px; } }
.prj-upcoming-list.prj-list-grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:32px 24px; }
.prj-upcoming-list.prj-list-grid-2 .prj-upcoming-item { margin-bottom:0; }
@media (max-width:700px){ .prj-upcoming-list.prj-list-grid-2 { grid-template-columns:1fr; } }
.prj-setlists-pagination { margin:2rem auto 0; display:flex; align-items:center; justify-content:center; gap:16px; text-align:center; }
.prj-setlists-page-link { display:inline-block; padding:6px 10px; border-radius:999px; border:1px solid #444; text-decoration:none; font-size:12px; text-transform:uppercase; letter-spacing:0.08em; color:#eee; }
.prj-setlists-page-link:hover { border-color:var(--prj-color-accent-secondary, #b6f500); color:var(--prj-color-accent-secondary, #b6f500); }
.prj-setlists-page-info { font-size:12px; text-transform:uppercase; letter-spacing:0.08em; color:#aaa; }
.prj-upcoming-venue-address-link { font-size:13px; opacity:0.8; }


.prj-archive-setlists {
	max-width: 1180px;
	margin: 2rem auto;
}

.prj-archive-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 34px 42px;
}

.prj-archive-cols-1 .prj-archive-grid { grid-template-columns: 1fr; }
.prj-archive-cols-3 .prj-archive-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.prj-archive-cols-4 .prj-archive-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.prj-archive-card {
	display: flex;
	align-items: center;
	gap: 18px;
	min-width: 0;
}

.prj-archive-image-link {
	flex: 0 0 auto;
	display: block;
}

.prj-archive-image {
	width: 120px;
	height: 120px;
	object-fit: cover;
	display: block;
}

.prj-archive-img-circle .prj-archive-image {
	border-radius: 50%;
}

.prj-archive-img-rounded .prj-archive-image {
	border-radius: 18px;
}

.prj-archive-img-rectangle .prj-archive-image {
	width: 150px;
	height: 95px;
	border-radius: 12px;
}

.prj-archive-card-content {
	min-width: 0;
}

.prj-archive-title {
	display: block;
	color: var(--prj-archive-accent, var(--prj-color-accent, #ff0373));
	font-size: 16px;
	font-weight: 800;
	line-height: 1.25;
	text-decoration: none;
	margin-bottom: 6px;
}

.prj-archive-title:hover {
	text-decoration: underline;
}

.prj-archive-meta {
	color: #eee;
	font-size: 12px;
	font-weight: 700;
	text-transform: none;
	letter-spacing: 0.02em;
	opacity: 0.9;
}

.prj-archive-address {
	color: var(--prj-archive-accent, var(--prj-color-accent, #ff0373));
	font-size: 12px;
	line-height: 1.5;
	margin-top: 4px;
	opacity: 0.75;
}

.prj-archive-status {
	display: flex;
	align-items: center;
	gap: 5px;
	color: #fff;
	font-size: 14px;
	font-weight: 800;
	margin-top: 7px;
	opacity: 0.85;
	text-transform: uppercase;
}

.prj-archive-status-label {
	text-transform: none;
	font-weight: 700;
}

.prj-archive-status-value {
	color: #fff;
}

.prj-archive-status-value.prj-status-open_songs,
.prj-archive-status-value.prj-status-open_instruments {
	color: var(--prj-archive-timeline-heading, var(--prj-color-accent-secondary, #b6f500));
}

.prj-archive-status-value.prj-status-voting {
	color: var(--prj-archive-accent, var(--prj-color-accent, #ff0373));
}

.prj-archive-status-value.prj-status-final {
	color: #fff;
}

.prj-archive-status-value.prj-status-archived {
	color: #fff;
	opacity: 0.75;
}

.prj-archive-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 10px;
	padding: 7px 14px;
	border-radius: 999px;
	background: var(--prj-archive-accent, var(--prj-color-accent, #ff0373));
	color: #fff;
	font-size: 11px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	text-decoration: none;
}

.prj-archive-button:hover {
	color: #fff;
	filter: brightness(1.08);
}

.prj-archive-layout-compact {
	max-width: 760px;
}

.prj-archive-layout-compact .prj-archive-grid {
	grid-template-columns: 1fr;
	gap: 28px;
}

.prj-archive-layout-compact .prj-archive-button {
	display: none;
}

.prj-archive-timeline-heading {
	color: var(--prj-archive-timeline-heading, var(--prj-color-accent-secondary, #b6f500));
	font-size: 18px;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	margin: 34px 0 18px;
}

.prj-archive-filterbar {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	justify-content: center;
	margin-bottom: 32px;
}

.prj-archive-filter {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 8px 14px;
	border: 1px solid rgba(255,255,255,0.22);
	border-radius: 999px;
	color: #fff;
	font-size: 12px;
	font-weight: 800;
	text-transform: uppercase;
	text-decoration: none;
}

.prj-archive-filter:hover,
.prj-archive-filter.is-active {
	border-color: var(--prj-archive-accent, var(--prj-color-accent, #ff0373));
	background: var(--prj-archive-accent, var(--prj-color-accent, #ff0373));
	color: #fff;
}

@media (max-width: 900px) {
	.prj-archive-tablet-cols-1 .prj-archive-grid { grid-template-columns: 1fr; }
	.prj-archive-tablet-cols-2 .prj-archive-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.prj-archive-tablet-cols-3 .prj-archive-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.prj-archive-tablet-cols-4 .prj-archive-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
	.prj-archive-mobile-cols-1 .prj-archive-grid { grid-template-columns: 1fr; }
	.prj-archive-mobile-cols-2 .prj-archive-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.prj-archive-mobile-cols-3 .prj-archive-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.prj-archive-mobile-cols-4 .prj-archive-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
	.prj-archive-setlists {
		padding: 0 16px;
	}

	.prj-archive-card {
		align-items: flex-start;
		gap: 14px;
	}

	.prj-archive-image {
		width: 96px;
		height: 96px;
	}

	.prj-archive-img-rectangle .prj-archive-image {
		width: 110px;
		height: 80px;
	}

	.prj-archive-title {
		font-size: 15px;
	}
}

/* Song History / Song Archive search layout */

.prz-archive-search-toolbar {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 14px;
	margin: 0 0 18px 0;
}

.prz-archive-search-row {
	display: grid;
	gap: 14px;
	width: 100%;
}

.prz-archive-search-row-main {
	grid-template-columns: 1fr 1fr 1.25fr;
}

.prz-archive-search-row-secondary {
	grid-template-columns: 220px 220px auto;
	align-items: center;
	justify-content: start;
}

.prz-archive-search-toolbar .prz-input,
.prz-archive-search-toolbar .prz-select {
	width: 100%;
	max-width: 100%;
}

.prz-archive-search-toolbar .prz-btn {
	width: auto;
	white-space: nowrap;
}

@media (max-width: 782px) {
	.prz-archive-search-row-main,
	.prz-archive-search-row-secondary {
		grid-template-columns: 1fr;
	}

	.prz-archive-search-toolbar .prz-btn {
		width: 100%;
	}
}

.prj-widget-link { margin-bottom: 8px; }
.prj-widget-link--last,
.prj-widget-description { margin-bottom: 0; }
.prj-widget-description,
.prj-widget-meta { opacity: 0.75; }
.prj-widget-list { margin: 0 0 0 18px; }
.prj-widget-list-item { margin-bottom: 10px; }
.prj-widget-list-item--compact { margin-bottom: 8px; }
.prj-widget-meta--strong { opacity: 0.8; }
.prj-widget-meta--soft { opacity: 0.7; }
.prz-toolbar--end { justify-content: flex-end; }
