:root {
	--bg: #080b12;
	--bg-soft: #0d121c;
	--panel: #121926;
	--panel-2: #172030;
	--text: #f4f6fb;
	--muted: #a9b2c3;
	--muted-2: #737f93;
	--line: rgba(255,255,255,.12);
	--red: #e53935;
	--red-2: #ff4b45;
	--gold: #ffd447;
	--green: #27e08a;
	--blue: #4aa3ff;
	--violet: #9a6cff;
	--radius: 22px;
	--shadow: 0 22px 70px rgba(0,0,0,.45);
	--max: 1500px;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
	margin: 0;
	background:
		radial-gradient(circle at 15% 0%, rgba(229,57,53,.14), transparent 28%),
		radial-gradient(circle at 80% 6%, rgba(255,212,71,.10), transparent 26%),
		linear-gradient(180deg, #06080d 0%, var(--bg) 45%, #06080d 100%);
	color: var(--text);
	font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-size: 17px;
	line-height: 1.65;
}

a { color: inherit; text-decoration: none; }
img { max-width: 100%; }

.site-shell {
	min-height: 100vh;
}

.page {
	width: min(var(--max), calc(100% - 36px));
	margin: 0 auto;
}

.topbar {
	position: sticky;
	top: 0;
	z-index: 1000;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	width: min(var(--max), calc(100% - 36px));
	margin: 14px auto 0;
	padding: 14px 18px;
	border: 1px solid var(--line);
	border-radius: 999px;
	background: rgba(8,11,18,.84);
	backdrop-filter: blur(18px);
	box-shadow: 0 18px 50px rgba(0,0,0,.32);
}

.brand {
	display: inline-flex;
	align-items: center;
	gap: 11px;
	font-family: Rajdhani, sans-serif;
	font-weight: 700;
	font-size: 1.55rem;
	letter-spacing: .05em;
	text-transform: uppercase;
}

.brand-mark {
	width: 26px;
	height: 26px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	overflow: hidden;
	flex: 0 0 26px;
}

.brand-mark img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.main-nav {
	display: flex;
	align-items: center;
	gap: 6px;
	flex-wrap: wrap;
}

.main-nav a {
	padding: 9px 13px;
	border-radius: 999px;
	color: var(--muted);
	font-weight: 700;
	font-size: .93rem;
	transition: .18s ease;
}

.main-nav a:hover {
	color: var(--text);
	background: rgba(255,255,255,.07);
}

.hero,
.page-hero,
.profile-hero {
	position: relative;
	overflow: hidden;
	margin: 34px 0 28px;
	padding: clamp(38px, 6vw, 82px);
	border: 1px solid var(--line);
	border-radius: 34px;
	background:
		linear-gradient(135deg, rgba(229,57,53,.22), transparent 45%),
		linear-gradient(220deg, rgba(255,212,71,.12), transparent 36%),
		linear-gradient(180deg, rgba(255,255,255,.055), rgba(255,255,255,.02)),
		var(--panel);
	box-shadow: var(--shadow);
}

.hero:after,
.page-hero:after,
.profile-hero:after {
	content: "";
	position: absolute;
	inset: auto -80px -140px auto;
	width: 420px;
	height: 420px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(255,212,71,.18), transparent 66%);
	pointer-events: none;
}

.hero-home {
	min-height: 460px;
	display: flex;
	align-items: center;
}

.hero-content {
	max-width: 980px;
	position: relative;
	z-index: 1;
}

.eyebrow {
	margin: 0 0 10px;
	color: var(--gold) !important;
	font-family: Rajdhani, sans-serif;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .22em;
	font-size: .9rem;
}

h1, h2, h3 {
	font-family: Rajdhani, sans-serif;
	font-weight: 700;
	letter-spacing: .01em;
	line-height: 1.04;
	color: var(--text);
}

h1 {
	margin: 0 0 20px;
	font-size: clamp(3.1rem, 8vw, 7.2rem);
	color: var(--red-2);
	text-shadow: 0 0 28px rgba(229,57,53,.22);
}

h2 {
	margin: 0 0 18px;
	font-size: clamp(2rem, 3vw, 3rem);
	color: var(--red-2);
}

h3 {
	margin: 0 0 7px;
	font-size: 1.45rem;
}

.lead {
	max-width: 860px;
	color: #d5dbea;
	font-size: clamp(1.12rem, 1.8vw, 1.42rem);
	line-height: 1.55;
}

p {
	color: var(--muted);
}

.actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 28px;
}

.btn,
button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	min-height: 48px;
	padding: 13px 22px;
	border-radius: 999px;
	border: 1px solid var(--line);
	color: var(--text);
	background: rgba(255,255,255,.06);
	font: inherit;
	font-weight: 800;
	cursor: pointer;
	transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}

.btn:hover,
button:hover {
	transform: translateY(-1px);
	box-shadow: 0 12px 34px rgba(0,0,0,.28);
}

.btn-primary {
	border: 0;
	background: linear-gradient(135deg, var(--red), #ff7a3d);
	box-shadow: 0 12px 34px rgba(229,57,53,.26);
}

.btn-ghost {
	background: rgba(255,255,255,.045);
}

.panel,
.map-panel {
	margin: 28px 0;
	padding: clamp(22px, 3vw, 34px);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background:
		linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.018)),
		var(--panel);
	box-shadow: 0 14px 44px rgba(0,0,0,.28);
}

.map-panel {
	padding: 10px;
}

.stats-grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 18px;
	margin: 28px 0;
}

.stat-card {
	position: relative;
	overflow: hidden;
	display: block;
	padding: 28px;
	min-height: 150px;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background:
		linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.02)),
		var(--panel);
	box-shadow: 0 14px 44px rgba(0,0,0,.24);
}

.stat-card:before {
	content: "";
	position: absolute;
	inset: auto -50px -70px auto;
	width: 170px;
	height: 170px;
	border-radius: 50%;
	background: var(--accent, var(--red));
	opacity: .16;
	filter: blur(4px);
}

.stat-card strong {
	position: relative;
	z-index: 1;
	display: block;
	font-family: Rajdhani, sans-serif;
	font-size: clamp(3rem, 5vw, 5.4rem);
	line-height: .85;
	color: var(--text);
}

.stat-card span {
	position: relative;
	z-index: 1;
	display: block;
	margin-top: 12px;
	color: var(--muted);
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .08em;
}


.stat-green { --accent: var(--green); }
.stat-blue { --accent: var(--blue); }
.stat-red { --accent: var(--red); }
.stat-gold { --accent: var(--gold); }
.stat-violet { --accent: var(--violet); }

.content-grid,
.cards-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
	margin: 28px 0;
}

.feature-card {
	position: relative;
	overflow: hidden;
	min-height: 280px;
	padding: 32px;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background:
		linear-gradient(145deg, rgba(255,255,255,.055), rgba(255,255,255,.018)),
		var(--panel);
	box-shadow: 0 14px 44px rgba(0,0,0,.25);
	transition: transform .18s ease, border-color .18s ease;
}

.feature-card:hover {
	transform: translateY(-3px);
	border-color: rgba(255,212,71,.4);
}

.feature-card:after {
	content: "";
	position: absolute;
	right: -70px;
	bottom: -90px;
	width: 230px;
	height: 230px;
	border-radius: 50%;
	background: var(--accent, var(--red));
	opacity: .15;
}

.feature-card h2,
.compact-card h2 {
	position: relative;
	z-index: 1;
	font-size: clamp(2rem, 3vw, 3.2rem);
}

.feature-card p {
	position: relative;
	z-index: 1;
}

.feature-clubs { --accent: var(--green); }
.feature-events { --accent: var(--blue); }
.feature-fighters { --accent: var(--red); }

.compact-card {
	min-height: 220px;
}

.section-head {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 18px;
	margin-bottom: 22px;
}

.mediatheque-section .section-head {
	flex-wrap: wrap;
}

.mediatheque-section .section-actions {
	margin-top: 0;
}

.mediatheque-section .section-actions .btn {
	flex-shrink: 0;
}

@media (max-width: 720px) {
	.mediatheque-section .section-head {
		flex-direction: column;
		align-items: stretch;
	}

	.mediatheque-section .section-actions {
		flex-direction: column;
		align-items: stretch;
		gap: 10px;
	}

	.mediatheque-section .section-actions .btn {
		border-radius: 16px;
		text-align: center;
	}

	.mediatheque-section > .blog-grid,
	.mediatheque-section > .podcast-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.mediatheque-section > .blog-grid > .blog-card:nth-child(n + 4),
	.mediatheque-section > .podcast-grid > .podcast-card:nth-child(n + 4) {
		display: none;
	}
}

.soft-count {
	color: var(--muted);
	font-weight: 800;
}

.filters-panel {
	padding-bottom: 18px;
}

.filter-form {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 280px auto;
	gap: 14px;
	align-items: center;
}

.filter-form-4 {
	grid-template-columns: minmax(0, 1fr) 220px 170px auto;
}

input,
select {
	width: 100%;
	min-height: 50px;
	padding: 13px 16px;
	border-radius: 16px;
	border: 1px solid var(--line);
	background: rgba(255,255,255,.07);
	color: var(--text);
	font: inherit;
}

option {
	color: #111;
}

#clubs-map,
#club-map,
#events-map,
#event-map {
	height: 520px;
	border-radius: calc(var(--radius) - 4px);
	overflow: hidden;
	background: #0d121c;
}

#club-map,
#event-map {
	height: 360px;
}

.leaflet-popup-content-wrapper,
.leaflet-popup-tip {
	background: #121926;
	color: var(--text);
	border: 1px solid var(--line);
	box-shadow: 0 16px 40px rgba(0,0,0,.45);
}

.leaflet-popup-content a {
	color: var(--gold);
	font-weight: 800;
}

.marker-dot {
	width: 15px;
	height: 15px;
	border-radius: 50%;
	border: 2px solid #fff;
	box-shadow:
		0 0 0 5px rgba(255,255,255,.12),
		0 0 18px currentColor,
		0 6px 20px rgba(0,0,0,.5);
}

.directory-list,
.event-list,
.results-list,
.mini-card-list {
	display: grid;
	gap: 13px;
}

.directory-card,
.event-card,
.result-row,
.mini-card {
	display: grid;
	gap: 16px;
	align-items: center;
	padding: 18px;
	border: 1px solid var(--line);
	border-radius: 20px;
	background: rgba(255,255,255,.038);
	transition: transform .18s ease, background .18s ease, border-color .18s ease;
}

.directory-card {
	grid-template-columns: 68px minmax(0, 1fr) auto;
}

.event-card {
	grid-template-columns: 110px minmax(0, 1fr);
}

.result-row {
	grid-template-columns: 115px minmax(0, 1fr);
}

.mini-card {
	grid-template-columns: auto minmax(0, 1fr) auto;
}

.directory-card:hover,
.event-card:hover,
.mini-card:hover {
	transform: translateY(-2px);
	background: rgba(255,255,255,.06);
	border-color: rgba(255,212,71,.35);
}

.directory-icon,
.avatar-placeholder,
.small-avatar {
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--red), var(--gold));
	color: #fff;
	font-family: Rajdhani, sans-serif;
	font-weight: 700;
	box-shadow: 0 0 22px rgba(229,57,53,.25);
}

.directory-icon {
	width: 58px;
	height: 58px;
	font-size: 1.8rem;
}

.small-avatar {
	width: 42px;
	height: 42px;
}

.avatar-placeholder {
	width: 72px;
	height: 72px;
	font-size: 2.3rem;
}

.badges {
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
	margin-top: 10px;
}

.badge {
	--accent: var(--red);
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 7px 11px;
	border-radius: 999px;
	border: 1px solid color-mix(in srgb, var(--accent), white 22%);
	background: color-mix(in srgb, var(--accent), transparent 78%);
	color: #fff;
	font-size: .84rem;
	font-weight: 800;
	line-height: 1.1;
}

.badge-gold { --accent: var(--gold); color: #fff; }
.badge-red { --accent: var(--red); }

.status-pill {
	white-space: nowrap;
	color: var(--muted);
	font-size: .9rem;
	font-weight: 700;
}

.date-block {
	display: grid;
	place-items: center;
	width: 88px;
	min-height: 88px;
	border-radius: 22px;
	border: 1px solid rgba(74,163,255,.36);
	background: rgba(74,163,255,.10);
}

.date-block strong {
	font-family: Rajdhani, sans-serif;
	font-size: 1.9rem;
	line-height: .95;
	color: var(--blue);
}

.date-block span {
	color: var(--muted);
	font-size: .85rem;
	font-weight: 800;
}

.split-layout {
	display: grid;
	grid-template-columns: minmax(0, 1.45fr) minmax(340px, .55fr);
	gap: 28px;
	align-items: start;
}

.sticky-panel {
	position: sticky;
	top: 112px;
}

.panel-main {
	min-height: 420px;
}

.section-separator {
	height: 1px;
	margin: 30px 0;
	background: linear-gradient(90deg, transparent, rgba(255,255,255,.14), transparent);
}

.info-list,
.meta-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	gap: 12px;
}

.info-list li,
.meta-list li {
	display: grid;
	gap: 4px;
	padding: 14px;
	border-radius: 16px;
	background: rgba(255,255,255,.035);
}

.info-list strong,
.meta-list span {
	color: var(--muted);
	text-transform: uppercase;
	letter-spacing: .08em;
	font-size: .78rem;
}

.meta-list strong {
	font-family: Rajdhani, sans-serif;
	font-size: 1.35rem;
	color: var(--text);
}

.timeline {
	position: relative;
	display: grid;
	gap: 22px;
	margin-top: 10px;
}

.timeline:before {
	content: "";
	position: absolute;
	left: 112px;
	top: 0;
	bottom: 0;
	width: 2px;
	background: linear-gradient(180deg, transparent, var(--gold), transparent);
	box-shadow: 0 0 20px rgba(255,212,71,.45);
}

.timeline-item {
	position: relative;
	display: grid;
	grid-template-columns: 145px minmax(0, 1fr);
	gap: 24px;
}

.timeline-pin {
	position: absolute;
	left: 104px;
	top: 16px;
	z-index: 2;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: var(--gold);
	border: 3px solid #fff7c0;
	box-shadow: 0 0 22px rgba(255,212,71,.9);
}

.timeline-year {
	font-family: Rajdhani, sans-serif;
	font-size: 2rem;
	font-weight: 700;
	color: var(--gold);
	line-height: 1;
	padding-top: 10px;
}

.timeline-content {
	padding: 20px 22px;
	border: 1px solid rgba(255,212,71,.18);
	border-radius: 20px;
	background: rgba(255,212,71,.045);
}

.timeline-content h3 {
	color: var(--text);
}

.inline-links {
	display: flex;
	gap: 9px;
	flex-wrap: wrap;
}

.inline-links a {
	padding: 7px 10px;
	border-radius: 999px;
	background: rgba(255,255,255,.06);
	color: var(--muted);
	font-weight: 800;
}

.color-dot {
	display: inline-block;
	width: 13px;
	height: 13px;
	border-radius: 50%;
	background: var(--accent);
	box-shadow: 0 0 14px var(--accent);
}

.fighter-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(310px, 1fr));
	gap: 18px;
}

.fighter-card {
	display: grid;
	grid-template-columns: 82px minmax(0, 1fr);
	gap: 18px;
	padding: 22px;
	border: 1px solid var(--line);
	border-radius: 22px;
	background: rgba(255,255,255,.04);
	transition: .18s ease;
}

.fighter-card:hover {
	transform: translateY(-2px);
	border-color: rgba(229,57,53,.42);
}

.medal {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	width: fit-content;
	min-width: 86px;
	padding: 9px 12px;
	border-radius: 999px;
	background: rgba(255,255,255,.08);
	font-size: .88rem;
	font-weight: 900;
}

.medal.gold {
	background: rgba(255,212,71,.20);
	border: 1px solid rgba(255,212,71,.42);
	color: #ffe680;
}

.medal.silver {
	background: rgba(203,213,225,.18);
	border: 1px solid rgba(203,213,225,.38);
	color: #e2e8f0;
}

.medal.bronze {
	background: rgba(180,83,9,.22);
	border: 1px solid rgba(180,83,9,.42);
	color: #fdba74;
}

.pagination {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 24px;
}

.pagination a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	border: 1px solid var(--line);
	border-radius: 12px;
	color: var(--muted);
	font-weight: 800;
}

.pagination a.active {
	background: var(--red);
	border-color: var(--red);
	color: #fff;
}

.footer {
	width: min(var(--max), calc(100% - 36px));
	margin: 70px auto 0;
	padding: 32px 0 42px;
	display: flex;
	justify-content: space-between;
	gap: 20px;
	color: var(--muted-2);
	border-top: 1px solid var(--line);
	font-weight: 700;
}

@media (max-width: 1100px) {
	.stats-grid,
	.content-grid,
	.cards-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.split-layout {
		grid-template-columns: 1fr;
	}

	.sticky-panel {
		position: static;
	}

	.filter-form,
	.filter-form-4 {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 720px) {
	body {
		font-size: 16px;
	}

	.page,
	.topbar,
	.footer {
		width: min(100% - 22px, var(--max));
	}

	.topbar {
		border-radius: 24px;
		align-items: flex-start;
		flex-direction: column;
	}

	.main-nav {
		width: 100%;
	}

	.hero,
	.page-hero,
	.profile-hero {
		padding: 30px 22px;
		border-radius: 24px;
	}

	h1 {
		font-size: clamp(2.7rem, 14vw, 4.2rem);
	}

	.stats-grid,
	.content-grid,
	.cards-grid,
	.fighter-grid {
		grid-template-columns: 1fr;
	}

	.directory-card,
	.event-card,
	.result-row,
	.mini-card {
		grid-template-columns: 1fr;
	}

	.timeline:before {
		left: 8px;
	}

	.timeline-item {
		grid-template-columns: 1fr;
		padding-left: 34px;
	}

	.timeline-pin {
		left: 0;
	}

	.timeline-year {
		padding: 0;
	}

	.footer {
		flex-direction: column;
	}
}


/* V20.D.1 UX fixes */

.utility-bar {
	position: sticky;
	top: 0;
	z-index: 1001;
	background: rgba(6,8,13,.92);
	backdrop-filter: blur(14px);
	border-bottom: 1px solid rgba(255,255,255,.08);
	transition: transform .18s ease, opacity .18s ease;
}

.utility-inner {
	width: min(var(--max), calc(100% - 36px));
	margin: 0 auto;
	min-height: 34px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	color: var(--muted-2);
	font-size: .78rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .08em;
}

.utility-links {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}

.utility-links a {
	padding: 4px 9px;
	border-radius: 999px;
	color: var(--muted);
	background: rgba(255,255,255,.045);
}

.utility-links a:hover {
	color: var(--text);
	background: rgba(255,255,255,.09);
}

.topbar {
	top: 44px;
	margin-top: 10px;
}

h1 {
	font-size: clamp(3rem, 4.5vw, 4.8rem);
}

h2 {
	font-size: clamp(2rem, 3vw, 3.15rem);
}

.hero-home {
	min-height: 390px;
}

.tile-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 18px;
}

.club-tile-grid,
.event-tile-grid {
	grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));
}

.tile-card {
	position: relative;
	display: flex;
	flex-direction: column;
	min-height: 245px;
	padding: 22px;
	border: 1px solid var(--line);
	border-radius: 22px;
	background:
		linear-gradient(180deg, rgba(255,255,255,.052), rgba(255,255,255,.018)),
		var(--panel);
	box-shadow: 0 14px 42px rgba(0,0,0,.24);
	transition: transform .18s ease, border-color .18s ease, background .18s ease;
}

.tile-card:hover {
	transform: translateY(-3px);
	border-color: rgba(255,212,71,.35);
	background:
		linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.025)),
		var(--panel);
}

.tile-card h3 {
	font-size: 1.55rem;
	margin-top: 14px;
}

.tile-card p {
	margin-top: 0;
}

.tile-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.status-dot {
	width: 14px;
	height: 14px;
	border-radius: 50%;
	border: 2px solid rgba(255,255,255,.8);
	box-shadow: 0 0 16px currentColor;
}

.status-dot.ok {
	color: var(--green);
	background: var(--green);
}

.status-dot.pending {
	color: var(--gold);
	background: var(--gold);
}

.event-tile .date-block {
	margin-bottom: 18px;
}

.compact-actions {
	margin-top: 16px;
}

.compact-actions .btn {
	width: 100%;
}

.info-list a,
.info-list span {
	overflow-wrap: anywhere;
}

@media (min-width: 1500px) {
	.club-tile-grid,
	.event-tile-grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

@media (min-width: 1050px) and (max-width: 1499px) {
	.club-tile-grid,
	.event-tile-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 720px) {
	.utility-inner {
		width: min(100% - 22px, var(--max));
		align-items: flex-start;
		flex-direction: column;
		gap: 6px;
		padding: 8px 0;
	}

	.topbar {
		top: 74px;
	}

	h1 {
		font-size: clamp(2.55rem, 12vw, 3.5rem);
	}

	.tile-grid,
	.club-tile-grid,
	.event-tile-grid {
		grid-template-columns: 1fr;
	}
}

/* V20.6 Media */

.media-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
	gap: 18px;
}

.media-card {
	overflow: hidden;
	display: block;
	border: 1px solid var(--line);
	border-radius: 22px;
	background: rgba(255,255,255,.04);
	box-shadow: 0 14px 42px rgba(0,0,0,.24);
	transition: transform .18s ease, border-color .18s ease;
}

.media-card:hover {
	transform: translateY(-3px);
	border-color: rgba(255,212,71,.35);
}

.media-card img {
	display: block;
	width: 100%;
	aspect-ratio: 16/11;
	object-fit: cover;
	background: #0d121c;
}

.media-card-body {
	display: grid;
	gap: 3px;
	padding: 14px 16px 16px;
}

.event-videos-grid {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.event-videos-pagination {
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	margin-top: 24px;
}

.event-videos-pagination > span {
	color: var(--muted);
}

.event-videos-pagination a {
	padding-inline: 14px;
}

@media (min-width: 1600px) {
	.event-videos-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}

@media (max-width: 1100px) {
	.event-videos-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 800px) {
	.event-videos-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 480px) {
	.event-videos-grid { grid-template-columns: minmax(0, 1fr); }
}

.event-videos-grid .media-card > a {
	display: block;
}

.event-videos-grid .video-thumb-with-play,
.event-videos-grid .video-thumb {
	aspect-ratio: 16/9;
	height: auto;
}

.event-videos-grid .media-card img {
	aspect-ratio: 16/9;
	height: auto;
}

.event-videos-grid .media-card-body small {
	color: var(--muted);
	font-size: .85rem;
}

.media-card-body strong {
	font-family: Rajdhani, sans-serif;
	font-size: 1.25rem;
}

.media-card-body span {
	color: var(--muted);
	font-size: .85rem;
	text-transform: uppercase;
	letter-spacing: .08em;
	font-weight: 800;
}

.media-strip {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
	gap: 12px;
}

.media-strip a {
	overflow: hidden;
	display: block;
	border-radius: 16px;
	border: 1px solid var(--line);
	background: rgba(255,255,255,.04);
}

.media-strip img {
	display: block;
	width: 100%;
	aspect-ratio: 4/3;
	object-fit: cover;
	transition: transform .18s ease;
}

.media-strip a:hover img {
	transform: scale(1.04);
}

.media-full img {
	width: 100%;
	border-radius: 22px;
	border: 1px solid var(--line);
	box-shadow: 0 18px 60px rgba(0,0,0,.34);
}

.video-thumb {
	display: grid;
	place-items: center;
	width: 100%;
	aspect-ratio: 16/11;
	background:
		radial-gradient(circle, rgba(229,57,53,.24), transparent 55%),
		linear-gradient(135deg, #151b26, #0d121c);
}

.video-thumb.small {
	aspect-ratio: 4/3;
}

.video-thumb span {
	display: grid;
	place-items: center;
	width: 58px;
	height: 58px;
	border-radius: 50%;
	background: var(--red);
	box-shadow: 0 0 28px rgba(229,57,53,.45);
	font-weight: 900;
}

.video-embed {
	position: relative;
	overflow: hidden;
	border-radius: 22px;
	border: 1px solid var(--line);
	background: #000;
	aspect-ratio: 16/9;
}

.video-embed iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.dropzone {
	display: grid;
	place-items: center;
	min-height: 260px;
	border: 2px dashed rgba(255,212,71,.38);
	border-radius: 26px;
	background:
		radial-gradient(circle, rgba(255,212,71,.08), transparent 55%),
		rgba(255,255,255,.035);
	text-align: center;
	cursor: pointer;
	font-family: Rajdhani, sans-serif;
	font-size: 2rem;
	font-weight: 700;
	color: var(--text);
	transition: border-color .18s ease, background .18s ease;
}

.dropzone:hover,
.dropzone.dragover {
	border-color: var(--gold);
	background:
		radial-gradient(circle, rgba(255,212,71,.14), transparent 55%),
		rgba(255,255,255,.055);
}

.dropzone input {
	display: none;
}

.dropzone em {
	display: block;
	margin-top: 6px;
	color: var(--muted);
	font-family: Inter, sans-serif;
	font-size: 1rem;
	font-style: normal;
}

.upload-preview {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
	gap: 12px;
	margin-top: 16px;
}

.upload-preview img {
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: 16px;
	border: 1px solid var(--line);
}

.checkline {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 12px;
	align-items: start;
	margin: 18px 0;
	color: var(--muted);
}

.checkline input {
	width: auto;
	min-height: auto;
	margin-top: 6px;
}

.report-form {
	display: grid;
	gap: 12px;
}

.report-form textarea {
	min-height: 120px;
	padding: 13px 16px;
	border-radius: 16px;
	border: 1px solid var(--line);
	background: rgba(255,255,255,.07);
	color: var(--text);
	font: inherit;
	resize: vertical;
}


/* V20.6.1 navigation + integrated upload */

.utility-bar {
	display: none;
}

.topbar {
	top: 0;
	margin-top: 14px;
}

.brand {
	letter-spacing: .07em;
}

.brand-led {
	color: var(--red-2);
	text-shadow: 0 0 18px rgba(229,57,53,.35);
}

h1 {
	text-transform: uppercase;
}

.footer.site-footer {
	display: grid;
	grid-template-columns: minmax(260px, .8fr) minmax(0, 1.2fr);
	gap: 28px;
	align-items: start;
}

.footer-brand {
	display: grid;
	gap: 4px;
}

.footer-brand strong {
	font-family: Rajdhani, sans-serif;
	font-size: 1.6rem;
	letter-spacing: .08em;
}

.footer-brand span {
	color: var(--muted-2);
}

.footer-links {
	display: flex;
	justify-content: flex-end;
	flex-wrap: wrap;
	gap: 10px;
}

.footer-links a {
	padding: 8px 12px;
	border-radius: 999px;
	background: rgba(255,255,255,.045);
	color: var(--muted);
	font-weight: 800;
	font-size: .92rem;
}

.footer-links a:hover {
	color: var(--text);
	background: rgba(255,255,255,.08);
}

.inline-upload-form {
	display: grid;
	gap: 12px;
	margin-top: 12px;
	padding: 18px;
	border: 1px solid rgba(255,212,71,.18);
	border-radius: 22px;
	background:
		radial-gradient(circle at 100% 0%, rgba(255,212,71,.10), transparent 36%),
		rgba(255,255,255,.035);
}

.inline-upload-form > label:not(.dropzone):not(.checkline) {
	color: var(--muted);
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .08em;
	font-size: .8rem;
}

.compact-dropzone {
	min-height: 170px;
	font-size: 1.45rem;
}

.inline-upload-form .btn {
	width: fit-content;
}

@media (max-width: 720px) {
	.footer.site-footer {
		grid-template-columns: 1fr;
	}

	.footer-links {
		justify-content: flex-start;
	}

	.topbar {
		top: 0;
	}
}


/* V20.6.2 clean navigation + admin dashboard */

.footer-links {
	justify-content: flex-end;
}

.admin-tile-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 18px;
}


.admin-validation-grid {
	grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));
}

.admin-validation-grid .admin-tile {
	min-width: 0;
}

.admin-validation-grid .admin-metrics {
	grid-template-columns: repeat(3, minmax(105px, 1fr));
}

.admin-validation-grid .admin-metrics span {
	white-space: nowrap;
}

@media (max-width: 720px) {
	.admin-validation-grid {
		grid-template-columns: 1fr;
	}

	.admin-validation-grid .admin-metrics {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.admin-validation-grid .admin-metrics span {
		white-space: nowrap;
	}
}

.admin-tile {
	position: relative;
	display: block;
	min-height: 225px;
	padding: 24px;
	border: 1px solid var(--line);
	border-radius: 22px;
	background:
		linear-gradient(180deg, rgba(255,255,255,.052), rgba(255,255,255,.018)),
		var(--panel);
	box-shadow: 0 14px 42px rgba(0,0,0,.24);
	transition: transform .18s ease, border-color .18s ease, background .18s ease;
}

.admin-tile:hover {
	transform: translateY(-3px);
	border-color: rgba(255,212,71,.35);
	background:
		linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.025)),
		var(--panel);
}

.admin-tile.disabled {
	opacity: .58;
	filter: grayscale(.2);
	cursor: default;
}

.admin-tile.disabled:hover {
	transform: none;
	border-color: var(--line);
	background:
		linear-gradient(180deg, rgba(255,255,255,.052), rgba(255,255,255,.018)),
		var(--panel);
}

.admin-tile-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 58px;
	height: 58px;
	margin-bottom: 18px;
	border-radius: 18px;
	background:
		radial-gradient(circle at 30% 20%, rgba(255,212,71,.22), transparent 60%),
		rgba(229,57,53,.16);
	border: 1px solid rgba(255,212,71,.22);
	color: var(--gold);
	font-family: Rajdhani, sans-serif;
	font-weight: 700;
	font-size: 1.05rem;
	letter-spacing: .06em;
}

.admin-tile h3 {
	font-size: 1.65rem;
	margin-bottom: 8px;
	color: var(--text);
}

.admin-tile p {
	margin: 0;
}

.admin-tile em {
	position: absolute;
	left: 24px;
	bottom: 20px;
	color: var(--muted-2);
	font-style: normal;
	font-size: .82rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .09em;
}

@media (max-width: 720px) {
	.footer-links {
		justify-content: flex-start;
	}
}


/* V20.6.3 homepage stat hover */

.stat-card {
	transition: transform .18s ease, border-color .18s ease, background .18s ease, box-shadow .18s ease;
}

a.stat-card:hover,
.stat-card:hover {
	transform: translateY(-3px);
	border-color: rgba(255,212,71,.35);
	background:
		linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.025)),
		var(--panel);
	box-shadow: 0 18px 54px rgba(0,0,0,.34);
}

a.stat-card:hover strong,
.stat-card:hover strong {
	color: var(--gold);
}

/* V20.7 Blog */

.blog-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
	gap: 20px;
}

.blog-card {
	overflow: hidden;
	display: flex;
	flex-direction: column;
	border: 1px solid var(--line);
	border-radius: 24px;
	background:
		linear-gradient(180deg, rgba(255,255,255,.052), rgba(255,255,255,.018)),
		var(--panel);
	box-shadow: 0 14px 42px rgba(0,0,0,.24);
	transition: transform .18s ease, border-color .18s ease, background .18s ease;
}

.blog-card:hover {
	transform: translateY(-3px);
	border-color: rgba(255,212,71,.35);
	background:
		linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.025)),
		var(--panel);
}

.blog-cover,
.blog-cover-placeholder {
	width: 100%;
	aspect-ratio: 16/9;
	background:
		radial-gradient(circle at 20% 20%, rgba(229,57,53,.30), transparent 40%),
		radial-gradient(circle at 80% 70%, rgba(255,212,71,.18), transparent 45%),
		#111827;
}

.blog-cover img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.blog-card-body {
	display: grid;
	gap: 8px;
	padding: 22px;
}

.blog-card h3 {
	font-size: 1.75rem;
}

.blog-card em {
	margin-top: auto;
	color: var(--muted-2);
	font-style: normal;
	font-weight: 800;
	font-size: .86rem;
	text-transform: uppercase;
	letter-spacing: .08em;
}

.article-hero {
	position: relative;
	overflow: hidden;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(320px, .7fr);
	gap: 34px;
	align-items: center;
	margin: 34px 0 28px;
	padding: clamp(38px, 6vw, 72px);
	border: 1px solid var(--line);
	border-radius: 34px;
	background:
		linear-gradient(135deg, rgba(229,57,53,.22), transparent 45%),
		linear-gradient(220deg, rgba(255,212,71,.12), transparent 36%),
		var(--panel);
	box-shadow: var(--shadow);
}

.article-cover {
	width: 100%;
	aspect-ratio: 4/3;
	object-fit: cover;
	border-radius: 24px;
	border: 1px solid var(--line);
	box-shadow: 0 18px 60px rgba(0,0,0,.34);
}

.article-body {
	font-size: 1.13rem;
	line-height: 1.85;
	color: #dce3f2;
	white-space: normal;
}

@media (max-width: 900px) {
	.article-hero {
		grid-template-columns: 1fr;
	}
}

/* V20.8.1 Médiathèque publique + Ressources */
.podcast-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:18px}.podcast-card{display:grid;grid-template-columns:88px minmax(0,1fr);gap:18px;align-items:start;min-height:220px;padding:22px;border:1px solid var(--line);border-radius:24px;background:linear-gradient(180deg,rgba(255,255,255,.052),rgba(255,255,255,.018)),var(--panel);box-shadow:0 14px 42px rgba(0,0,0,.24);transition:transform .18s ease,border-color .18s ease,background .18s ease}.podcast-card:hover{transform:translateY(-3px);border-color:rgba(255,212,71,.35);background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.025)),var(--panel)}.podcast-icon{display:grid;place-items:center;width:82px;height:82px;border-radius:24px;background:radial-gradient(circle at 30% 20%,rgba(255,212,71,.22),transparent 60%),rgba(29,185,84,.16);border:1px solid rgba(255,212,71,.22);color:var(--gold);font-family:Rajdhani,sans-serif;font-weight:700;letter-spacing:.08em;font-size:.95rem}.video-content-card .podcast-icon{background:radial-gradient(circle at 30% 20%,rgba(255,212,71,.20),transparent 60%),rgba(229,57,53,.16)}.content-embed{position:relative;overflow:hidden;border-radius:24px;border:1px solid var(--line);background:#000;aspect-ratio:16/9}.content-embed.spotify-embed{aspect-ratio:auto;height:420px}.content-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}@media(max-width:720px){.podcast-card{grid-template-columns:1fr}}

/* V20.8.2 podcasts/videos split */

.video-content-card .podcast-icon {
	background:
		radial-gradient(circle at 30% 20%, rgba(255,212,71,.20), transparent 60%),
		rgba(229,57,53,.16);
}

.content-embed {
	position: relative;
	overflow: hidden;
	border-radius: 24px;
	border: 1px solid var(--line);
	background: #000;
	aspect-ratio: 16/9;
}

.content-embed.spotify-embed {
	aspect-ratio: auto;
	height: 420px;
}

.content-embed iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

/* V20.9 Contributions */

.profile-actions {
	margin-top: 24px;
}

.contribution-form {
	display: grid;
	gap: 14px;
}

.contribution-form label,
.contribution-admin-form label {
	color: var(--muted);
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .08em;
	font-size: .8rem;
}

.contribution-form textarea,
.contribution-admin-form textarea {
	min-height: 180px;
	padding: 13px 16px;
	border-radius: 16px;
	border: 1px solid var(--line);
	background: rgba(255,255,255,.07);
	color: var(--text);
	font: inherit;
	resize: vertical;
}

.contribution-admin-form textarea {
	min-height: 110px;
}

.form-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}

.form-help,
.muted-small {
	color: var(--muted-2);
	font-size: .95rem;
}

.contribution-list {
	display: grid;
	gap: 18px;
}

.contribution-card {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(280px, .42fr);
	gap: 22px;
	padding: 24px;
	border: 1px solid var(--line);
	border-radius: 24px;
	background:
		linear-gradient(180deg, rgba(255,255,255,.052), rgba(255,255,255,.018)),
		var(--panel);
	box-shadow: 0 14px 42px rgba(0,0,0,.24);
}

.contribution-card h3 {
	font-size: 1.8rem;
}

.contribution-admin-form {
	display: grid;
	gap: 10px;
	align-content: start;
}

@media (max-width: 900px) {
	.contribution-card,
	.form-grid {
		grid-template-columns: 1fr;
	}
}

/* V20.9.1 Contributions fix */

.page-actions {
	margin-top: 24px;
}

.page-actions .btn {
	margin-right: 10px;
	margin-bottom: 10px;
}

@media (max-width: 720px) {
	.page-actions {
		display: grid;
		gap: 10px;
	}

	.page-actions .btn {
		width: 100%;
		margin: 0;
	}
}

/* V20.9.2 Structured entity forms */

.entity-form {
	display: grid;
	gap: 14px;
}

.entity-form label {
	color: var(--muted);
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .08em;
	font-size: .8rem;
}

.entity-form textarea {
	min-height: 170px;
	padding: 13px 16px;
	border-radius: 16px;
	border: 1px solid var(--line);
	background: rgba(255,255,255,.07);
	color: var(--text);
	font: inherit;
	resize: vertical;
}

.entity-form .large-textarea {
	min-height: 360px;
}

.pending-tile {
	min-height: 300px;
}

.pending-actions {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
	margin-top: 24px;
}

.pending-actions .btn {
	min-height: 40px;
	padding: 9px 14px;
}

/* V20.9.3 Entity full forms */
.entity-form { display:grid; gap:14px; }
.entity-form label { color:var(--muted); font-weight:800; text-transform:uppercase; letter-spacing:.08em; font-size:.8rem; }
.entity-form textarea { min-height:170px; padding:13px 16px; border-radius:16px; border:1px solid var(--line); background:rgba(255,255,255,.07); color:var(--text); font:inherit; resize:vertical; }
.entity-form .large-textarea { min-height:420px; }
.pending-actions { display:flex; gap:10px; flex-wrap:wrap; margin-top:24px; }
.pending-actions form { margin:0; }
.pending-actions .btn { min-height:40px; padding:9px 14px; }


/* rich entity relation picker */
.relation-picker {
	margin: 14px 0 18px;
	padding: 14px;
	border: 1px solid var(--line);
	border-radius: 16px;
	background: rgba(255,255,255,.035);
}

.relation-search {
	margin-bottom: 8px;
}

.relation-help {
	color: var(--muted-2);
	font-size: .9rem;
	margin: 4px 0 10px;
}

.relation-options {
	display: grid;
	gap: 4px;
	max-height: 280px;
	overflow: auto;
}

.relation-option {
	display: flex;
	align-items: center;
	gap: 8px;
	min-height: 28px;
	margin: 0;
	color: var(--text);
	font-weight: 600;
	text-transform: none;
	letter-spacing: 0;
	font-size: .95rem;
	line-height: 1.25;
}

.relation-option input[type="checkbox"],
.entity-form input[type="checkbox"] {
	width: 16px !important;
	height: 16px !important;
	min-width: 16px !important;
	min-height: 16px !important;
	margin: 0 !important;
	padding: 0 !important;
	flex: 0 0 16px;
	accent-color: var(--gold);
}

.relation-option span {
	display: inline-flex;
	flex-direction: column;
	gap: 2px;
}

.relation-option em {
	color: var(--muted-2);
	font-style: normal;
	font-size: .82rem;
}


/* V4.3 media bulk deletion */
.media-card-wrap {
	position: relative;
}

.media-select-box {
	position: absolute;
	top: 10px;
	left: 10px;
	z-index: 4;
	width: 28px;
	height: 28px;
	display: grid;
	place-items: center;
	border-radius: 9px;
	background: rgba(0,0,0,.62);
	border: 1px solid rgba(255,255,255,.25);
	cursor: pointer;
	backdrop-filter: blur(8px);
}

.media-select-box input {
	width: 16px;
	height: 16px;
	margin: 0;
	accent-color: var(--gold);
}

.btn-danger {
	background: rgba(229,57,53,.18);
	border-color: rgba(229,57,53,.55);
	color: #fff;
}

.btn-danger:hover {
	background: rgba(229,57,53,.32);
}


/* V4.3 club federation dot colors */
.status-dot.federation-dot {
	color: var(--dot-color, var(--gold));
	background: var(--dot-color, var(--gold));
}

.status-dot.federation-dot.pending {
	color: var(--dot-color, var(--gold));
	background: transparent;
	border-color: var(--dot-color, var(--gold));
	box-shadow: 0 0 16px var(--dot-color, var(--gold));
	opacity: .72;
}


/* V4.3 map-driven club list filtering */
.club-tile.is-map-filtered-out,
.event-tile.is-map-filtered-out {
	display: none;
}

.status-dot.federation-dot.ok,
.status-dot.federation-dot.pending {
	background-color: currentColor;
}

.status-dot.federation-dot.pending {
	background-color: transparent;
}


/* V4.3 all clubs map filter note */
#club-map-visible-count { margin-left: 8px; }


/* V4.3 dynamic club pagination */
.club-tile.is-dynamic-page-hidden,
.event-tile.is-dynamic-page-hidden {
	display: none;
}

.dynamic-pagination {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 24px;
}

.dynamic-page-btn {
	min-width: 38px;
	height: 38px;
	border-radius: 12px;
	border: 1px solid rgba(255,255,255,.16);
	background: rgba(255,255,255,.055);
	color: var(--text);
	font-family: Rajdhani, Inter, sans-serif;
	font-weight: 800;
	cursor: pointer;
}

.dynamic-page-btn:hover:not(:disabled),
.dynamic-page-btn.active {
	border-color: rgba(255,214,102,.55);
	background: rgba(255,214,102,.14);
	color: #fff;
}

.dynamic-page-btn:disabled {
	opacity: .38;
	cursor: default;
}

.dynamic-page-ellipsis {
	color: var(--muted);
	padding: 0 4px;
}


/* V4.3 club card compact header */
.club-card-head {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	margin-bottom: 16px;
}

.club-card-head .entity-round-thumb,
.club-card-head .club-icon {
	flex: 0 0 auto;
	width: 64px !important;
	height: 64px !important;
	border-radius: 20px !important;
}

.club-card-title {
	min-width: 0;
	flex: 1;
}

.club-card-title h3 {
	margin: 0 0 4px 0;
	font-size: 1.35rem;
	line-height: 1.05;
	white-space: normal;
	overflow-wrap: anywhere;
}

.club-card-title p {
	margin: 0;
	font-size: .95rem;
	line-height: 1.25;
	color: var(--muted);
}

.club-tile .badges {
	margin-top: 10px;
}


/* V4.3 club default thumbnail gradient */
.club-default-thumb {
	background:
		radial-gradient(circle at 28% 22%, rgba(255,255,255,.34), transparent 34%),
		radial-gradient(circle at 80% 90%, rgba(0,0,0,.32), transparent 46%),
		linear-gradient(135deg, var(--club-color, var(--gold)) 0%, rgba(15,18,26,.92) 115%);
	border: 1px solid color-mix(in srgb, var(--club-color, var(--gold)) 72%, white 28%);
	color: rgba(255,255,255,.92);
	text-shadow: 0 2px 14px rgba(0,0,0,.40);
	box-shadow:
		inset 0 1px 0 rgba(255,255,255,.22),
		0 12px 26px rgba(0,0,0,.28),
		0 0 18px color-mix(in srgb, var(--club-color, var(--gold)) 42%, transparent);
	font-size: 1.85rem;
	font-weight: 900;
}

@supports not (color: color-mix(in srgb, red, white)) {
	.club-default-thumb {
		border-color: var(--club-color, var(--gold));
		box-shadow:
			inset 0 1px 0 rgba(255,255,255,.22),
			0 12px 26px rgba(0,0,0,.28);
	}
}


/* V4.3 federation page clubs map/cards */
#federation-clubs-map {
	width: 100%;
	height: 520px;
	border-radius: 24px;
	overflow: hidden;
	border: 1px solid rgba(255,255,255,.12);
}

.federation-clubs-map-panel {
	padding: 18px;
}

.federation-club-card.is-dynamic-page-hidden {
	display: none;
}


/* V4.3 RESTORE — visual layout rules lost after federation patch */

/* Uniform cropped covers for article/event/podcast/video cards */
.blog-cover,
.entity-card-cover {
	width: 100%;
	height: 180px;
	border-radius: 18px;
	overflow: hidden;
	background: rgba(255,255,255,.06);
	border: 1px solid rgba(255,255,255,.10);
	margin-bottom: 14px;
	position: relative;
}

.blog-cover img,
.entity-card-cover img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
}

.blog-cover-placeholder,
.entity-card-cover-placeholder {
	width: 100%;
	height: 100%;
	display: grid;
	place-items: center;
	font-family: Rajdhani, Inter, sans-serif;
	font-weight: 800;
	letter-spacing: .12em;
	color: var(--muted);
	background:
		radial-gradient(circle at 30% 20%, rgba(229,57,53,.22), transparent 38%),
		radial-gradient(circle at 80% 80%, rgba(255,214,102,.12), transparent 35%),
		rgba(255,255,255,.04);
}

/* Podcast/video cards: image on top, text below */
.podcast-card,
.video-content-card {
	display: flex;
	flex-direction: column;
	align-items: stretch;
}

.podcast-card > div:not(.entity-card-cover),
.video-content-card > div:not(.entity-card-cover) {
	width: 100%;
}

/* Club cards: thumbnail left, title right */
.club-card-head {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	margin-bottom: 16px;
}

.club-card-head .entity-round-thumb,
.club-card-head .club-icon {
	flex: 0 0 auto;
	width: 64px !important;
	height: 64px !important;
	border-radius: 20px !important;
}

.club-card-title {
	min-width: 0;
	flex: 1;
}

.club-card-title h3 {
	margin: 0 0 4px 0;
	font-size: 1.35rem;
	line-height: 1.05;
	white-space: normal;
	overflow-wrap: anywhere;
}

.club-card-title p {
	margin: 0;
	font-size: .95rem;
	line-height: 1.25;
	color: var(--muted);
}

.club-tile .badges {
	margin-top: 10px;
}

/* Default club thumbnail gradient */
.club-default-thumb {
	background:
		radial-gradient(circle at 28% 22%, rgba(255,255,255,.34), transparent 34%),
		radial-gradient(circle at 80% 90%, rgba(0,0,0,.32), transparent 46%),
		linear-gradient(135deg, var(--club-color, var(--gold)) 0%, rgba(15,18,26,.92) 115%);
	border: 1px solid var(--club-color, var(--gold));
	color: rgba(255,255,255,.92);
	text-shadow: 0 2px 14px rgba(0,0,0,.40);
	box-shadow:
		inset 0 1px 0 rgba(255,255,255,.22),
		0 12px 26px rgba(0,0,0,.28);
	font-size: 1.85rem;
	font-weight: 900;
}

/* Entity fiche cover on the right, like articles */
.profile-hero {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(280px, 38%);
	gap: 28px;
	align-items: center;
}

.profile-hero > .actions.profile-actions {
	grid-column: 1;
}

.profile-hero .entity-cover-link {
	grid-column: 2;
	grid-row: 1 / span 2;
	display: block;
	align-self: stretch;
	min-height: 240px;
}

.profile-hero .entity-cover-link .entity-cover-hero,
.profile-hero .entity-cover-link .article-cover {
	width: 100%;
	height: 100%;
	max-height: 380px;
	min-height: 240px;
	object-fit: cover;
	margin-top: 0;
	transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.profile-hero .entity-cover-link:hover .entity-cover-hero,
.profile-hero .entity-cover-link:hover .article-cover {
	transform: translateY(-2px);
	border-color: rgba(255,214,102,.45);
	box-shadow: 0 18px 50px rgba(0,0,0,.30);
}

/* Explicit portrait crops keep their selected framing. */
.fighter-portrait-window {
	display: block;
	position: relative;
	overflow: hidden;
	width: min(100%, calc(380px * var(--portrait-ratio)));
	aspect-ratio: var(--portrait-ratio);
	border-radius: 24px;
	border: 1px solid rgba(255,255,255,.12);
}

.fighter-portrait-window .fighter-portrait-image {
	position: absolute;
	width: var(--portrait-width);
	height: var(--portrait-height);
	max-width: none;
	left: var(--portrait-left);
	top: var(--portrait-top);
}

.fighter-portrait-thumb {
	width: 72px;
	height: 72px;
	flex: 0 0 72px;
	border-radius: 50%;
}

.fighter-card img.entity-round-thumb {
	object-fit: cover;
	object-position: center 25%;
}

.profile-fighter .entity-cover-link {
	display: flex;
	align-items: center;
	justify-content: center;
	align-self: center;
	min-height: 0;
}

.profile-fighter .entity-cover-link .entity-cover-hero {
	width: 100%;
	max-width: 100%;
	height: clamp(240px, 30vw, 380px);
	min-height: 0;
	object-fit: cover;
	object-position: center 25%;
}

.article-cover,
.entity-cover-hero {
	width: 100%;
	max-height: 360px;
	object-fit: cover;
	border-radius: 24px;
	margin-top: 24px;
	border: 1px solid rgba(255,255,255,.12);
}

/* Event date overlay on cover */
.event-card-cover-wrap {
	position: relative;
}

.event-card-cover-wrap .event-date-overlay {
	position: absolute;
	left: 14px;
	top: 14px;
	z-index: 2;
	backdrop-filter: blur(10px);
	background: rgba(0,0,0,.52);
	border: 1px solid rgba(255,255,255,.18);
	box-shadow: 0 12px 28px rgba(0,0,0,.28);
	margin-bottom: 0;
}

/* Dynamic pagination retained */
.club-tile.is-map-filtered-out,
.club-tile.is-dynamic-page-hidden,
.event-tile.is-map-filtered-out,
.event-tile.is-dynamic-page-hidden,
.federation-club-card.is-dynamic-page-hidden {
	display: none;
}

.dynamic-pagination {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 24px;
}

.dynamic-page-btn {
	min-width: 38px;
	height: 38px;
	border-radius: 12px;
	border: 1px solid rgba(255,255,255,.16);
	background: rgba(255,255,255,.055);
	color: var(--text);
	font-family: Rajdhani, Inter, sans-serif;
	font-weight: 800;
	cursor: pointer;
}

.dynamic-page-btn:hover:not(:disabled),
.dynamic-page-btn.active {
	border-color: rgba(255,214,102,.55);
	background: rgba(255,214,102,.14);
	color: #fff;
}

.dynamic-page-btn:disabled {
	opacity: .38;
	cursor: default;
}

.dynamic-page-ellipsis {
	color: var(--muted);
	padding: 0 4px;
}

/* Federation page map */
#federation-clubs-map {
	width: 100%;
	height: 520px;
	border-radius: 24px;
	overflow: hidden;
	border: 1px solid rgba(255,255,255,.12);
}

.federation-clubs-map-panel {
	padding: 18px;
}

@media (max-width: 820px) {
	.profile-hero {
		grid-template-columns: 1fr;
	}

	.profile-hero .entity-cover-link {
		grid-column: 1;
		grid-row: auto;
	}
}


/* V4.3 history admin */
.admin-table-wrap {
	overflow-x: auto;
}

.admin-table {
	width: 100%;
	border-collapse: collapse;
}

.admin-table th,
.admin-table td {
	padding: 14px 12px;
	border-bottom: 1px solid rgba(255,255,255,.10);
	text-align: left;
	vertical-align: top;
}

.admin-table th {
	color: var(--muted);
	font-size: .85rem;
	text-transform: uppercase;
	letter-spacing: .08em;
}

.admin-table td p {
	margin: 6px 0 0 0;
	color: var(--muted);
}

.admin-table-actions {
	display: flex;
	align-items: center;
	gap: 8px;
	justify-content: flex-end;
}

.admin-table-actions form {
	margin: 0;
}


/* V4.3 history intro */
.history-intro-panel {
	margin-bottom: 28px;
}

.history-intro-text {
	display: grid;
	gap: 14px;
	max-width: 980px;
}

.history-intro-text p {
	margin: 0;
	font-size: 1.04rem;
	line-height: 1.72;
	color: var(--text);
}

.history-stats-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
	margin-top: 28px;
}

.history-stat-card {
	border: 1px solid rgba(255,255,255,.10);
	border-radius: 18px;
	padding: 18px;
	background:
		radial-gradient(circle at 25% 15%, rgba(255,214,102,.14), transparent 36%),
		rgba(255,255,255,.045);
}

.history-stat-card strong {
	display: block;
	font-family: Rajdhani, Inter, sans-serif;
	font-size: clamp(1.6rem, 3vw, 2.2rem);
	line-height: .95;
	color: #fff;
}

.history-stat-card span {
	display: block;
	margin-top: 8px;
	color: var(--muted);
	font-size: .95rem;
}

@media (max-width: 900px) {
	.history-stats-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 560px) {
	.history-stats-grid {
		grid-template-columns: 1fr;
	}
}


/* V4.3 history precise timeline */
.history-top-layout {
	align-items: flex-start;
}

.history-federations-panel {
	align-self: start;
	top: 120px;
	scroll-margin-top: 200px;
}

.history-federations-panel .mini-card-list {
	margin-top: 18px;
}

.history-timeline-panel {
	margin-top: 28px;
}

.timeline-title-row {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 14px;
}

.timeline-title-row h3 {
	margin: 0;
}

.timeline-title-row .badge {
	flex: 0 0 auto;
	max-width: 100%;
	white-space: normal;
	overflow-wrap: anywhere;
}

@media (max-width: 720px) {
	.timeline-title-row {
		flex-direction: column;
		gap: 10px;
	}

	.timeline-title-row h3 {
		width: 100%;
	}
}


/* V4.3 history layout left intro+timeline, right federations */
.history-top-layout {
	align-items: flex-start;
}

.history-left-column {
	display: grid;
	gap: 28px;
	min-width: 0;
}

.history-left-column .history-intro-panel,
.history-left-column .history-timeline-panel {
	margin: 0;
}

.history-federations-panel {
	align-self: start;
	top: 120px;
}

.timeline-year span {
	white-space: nowrap;
}


/* V4.3 history federation admin link */
.page-actions {
	flex-wrap: wrap;
}

.admin-table-actions {
	display: flex;
	align-items: center;
	gap: 8px;
	justify-content: flex-end;
	flex-wrap: wrap;
}


/* V4.3 federation gallery + events column */
.federation-media-events-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(300px, 360px);
	gap: 28px;
	align-items: start;
	margin-top: 28px;
}

.federation-events-column {
	display: grid;
	gap: 20px;
}

.federation-event-rail {
	padding: 22px;
}

.compact-event-list {
	display: grid;
	gap: 12px;
}

.compact-event-card {
	display: grid;
	grid-template-columns: 72px minmax(0, 1fr);
	gap: 12px;
	align-items: center;
	padding: 10px;
	border-radius: 16px;
	border: 1px solid rgba(255,255,255,.10);
	background: rgba(255,255,255,.045);
	text-decoration: none;
	transition: transform .18s ease, border-color .18s ease, background .18s ease;
}

.compact-event-card:hover {
	transform: translateY(-2px);
	border-color: rgba(255,214,102,.35);
	background: rgba(255,255,255,.07);
}

.compact-event-card img {
	width: 72px;
	height: 58px;
	object-fit: cover;
	border-radius: 12px;
	border: 1px solid rgba(255,255,255,.12);
}

.compact-event-card:not(:has(img)) {
	grid-template-columns: 1fr;
}

.compact-event-card strong {
	display: block;
	color: #fff;
	line-height: 1.1;
	overflow-wrap: anywhere;
}

.compact-event-card span,
.compact-event-card em {
	display: block;
	margin-top: 3px;
	color: var(--muted);
	font-size: .9rem;
	font-style: normal;
}

.muted {
	color: var(--muted);
}

@media (max-width: 1050px) {
	.federation-media-events-layout {
		grid-template-columns: 1fr;
	}
}


/* V4.3 federation events rail see all */
.compact-event-actions {
	margin-top: 14px;
}

.compact-event-actions .btn {
	width: 100%;
	justify-content: center;
}


/* V4.3 compact event filters */
.filters-panel .filter-form {
	grid-template-columns: minmax(180px, 1.3fr) minmax(130px, .8fr) minmax(130px, .8fr) minmax(150px, .9fr) auto;
	align-items: center;
}

.filters-panel .filter-form input[type="search"] {
	min-width: 0;
}

@media (min-width: 1051px) {
	.filters-panel .fighter-filter-form {
		grid-template-columns: minmax(180px, 1.5fr) minmax(130px, 1fr) minmax(180px, 1fr) auto;
	}
}

.filters-panel .filter-form .btn,
.filters-panel .filter-form button {
	min-width: 92px;
	padding-left: 14px;
	padding-right: 14px;
	white-space: nowrap;
}

@media (max-width: 1050px) {
	.filters-panel .filter-form {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 620px) {
	.filters-panel .filter-form {
		grid-template-columns: 1fr;
	}
}


/* V5 club detail contact/events/mobile */
.club-contact-form {
	display: grid;
	gap: 10px;
	margin-top: 14px;
}

.club-contact-form textarea {
	min-height: 130px;
	resize: vertical;
}

.club-event-rail {
	display: grid;
	gap: 12px;
}

.club-detail-layout {
	align-items: flex-start;
}

.club-side-column {
	align-self: start;
}

.compact-event-list {
	display: grid;
	gap: 12px;
}

.compact-event-card {
	display: grid;
	grid-template-columns: 72px minmax(0, 1fr);
	gap: 12px;
	align-items: center;
	padding: 10px;
	border-radius: 16px;
	border: 1px solid rgba(255,255,255,.10);
	background: rgba(255,255,255,.045);
	text-decoration: none;
	transition: transform .18s ease, border-color .18s ease, background .18s ease;
}

.compact-event-card:hover {
	transform: translateY(-2px);
	border-color: rgba(255,214,102,.35);
	background: rgba(255,255,255,.07);
}

.compact-event-card img {
	width: 72px;
	height: 58px;
	object-fit: cover;
	border-radius: 12px;
	border: 1px solid rgba(255,255,255,.12);
}

.compact-event-card:not(:has(img)) {
	grid-template-columns: 1fr;
}

.compact-event-card strong {
	display: block;
	color: #fff;
	line-height: 1.1;
	overflow-wrap: anywhere;
}

.compact-event-card span,
.compact-event-card em {
	display: block;
	margin-top: 3px;
	color: var(--muted);
	font-size: .9rem;
	font-style: normal;
}

.compact-event-actions {
	margin-top: 14px;
}

.compact-event-actions .btn {
	width: 100%;
	justify-content: center;
}

.muted {
	color: var(--muted);
}

@media (max-width: 1100px) {
	.club-detail-layout {
		display: flex;
		flex-direction: column;
	}

	.club-side-column {
		order: 1;
		width: 100%;
	}

	.club-main-column {
		order: 2;
		width: 100%;
	}

	.club-mobile-upload-title,
	.club-upload-video-label,
	.club-upload-video-field,
	.club-upload-rights,
	.club-upload-title-label,
	.club-upload-title-field {
		display: none !important;
	}

	.club-inline-upload-form {
		margin-top: 8px;
		padding: 12px;
		border-radius: 16px;
		background: rgba(255,255,255,.035);
		border: 1px solid rgba(255,255,255,.08);
	}

	.club-inline-upload-form .dropzone {
		min-height: 96px;
		margin: 0;
	}

	.club-inline-upload-form .btn {
		width: 100%;
	}
}


/* V5 club map address */
.club-map-address {
	margin: 12px 0 0 0;
	color: var(--muted);
	line-height: 1.45;
}


/* V5 federation contact + mobile layout */
.federation-contact-form {
	display: grid;
	gap: 10px;
	margin-top: 14px;
}

.federation-contact-form textarea {
	min-height: 130px;
	resize: vertical;
}

@media (max-width: 1050px) {
	.federation-media-events-layout {
		display: flex;
		flex-direction: column;
	}

	.federation-events-column {
		order: 1;
		width: 100%;
	}

	.federation-gallery-panel {
		order: 2;
		width: 100%;
	}

	.federation-mobile-upload-title,
	.federation-upload-video-label,
	.federation-upload-video-field,
	.federation-upload-rights,
	.federation-upload-title-label,
	.federation-upload-title-field {
		display: none !important;
	}

	.federation-inline-upload-form {
		margin-top: 8px;
		padding: 12px;
		border-radius: 16px;
		background: rgba(255,255,255,.035);
		border: 1px solid rgba(255,255,255,.08);
	}

	.federation-inline-upload-form .dropzone {
		min-height: 96px;
		margin: 0;
	}

	.federation-inline-upload-form .btn {
		width: 100%;
	}
}


/* V5 fighter contact + mobile media upload */
.fighter-contact-form {
	display: grid;
	gap: 10px;
	margin-top: 14px;
}

.fighter-contact-form textarea {
	min-height: 130px;
	resize: vertical;
}

.fighter-contact-card {
	display: grid;
	gap: 10px;
}

@media (max-width: 820px) {
	.fighter-mobile-upload-title,
	.fighter-upload-video-label,
	.fighter-upload-video-field,
	.fighter-upload-rights,
	.fighter-upload-title-label,
	.fighter-upload-title-field {
		display: none !important;
	}

	.fighter-inline-upload-form {
		margin-top: 8px;
		padding: 12px;
		border-radius: 16px;
		background: rgba(255,255,255,.035);
		border: 1px solid rgba(255,255,255,.08);
	}

	.fighter-inline-upload-form .dropzone {
		min-height: 96px;
		margin: 0;
	}

	.fighter-inline-upload-form .btn {
		width: 100%;
	}
}


/* V5 event gallery/results/mobile media upload */
@media (max-width: 820px) {
	.event-mobile-upload-title,
	.event-upload-video-label,
	.event-upload-video-field,
	.event-upload-rights,
	.event-upload-title-label,
	.event-upload-title-field {
		display: none !important;
	}

	.event-inline-upload-form {
		margin-top: 8px;
		padding: 12px;
		border-radius: 16px;
		background: rgba(255,255,255,.035);
		border: 1px solid rgba(255,255,255,.08);
	}

	.event-inline-upload-form .dropzone {
		min-height: 96px;
		margin: 0;
	}

	.event-inline-upload-form .btn {
		width: 100%;
	}
}


/* V5 event map address */
.event-map-address {
	margin: 12px 0 0 0;
	color: var(--muted);
	line-height: 1.45;
}


/* V5 common gallery add collapsed panel */
.media-add-details {
	margin-top: 16px;
	border: 1px solid rgba(255,255,255,.10);
	border-radius: 18px;
	background: rgba(255,255,255,.035);
	overflow: hidden;
}

.media-add-summary {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	cursor: pointer;
	padding: 10px 12px;
	color: var(--muted);
	font-weight: 800;
	user-select: none;
	list-style: none;
}

.media-add-summary::-webkit-details-marker {
	display: none;
}

.media-add-summary span {
	display: inline-grid;
	place-items: center;
	width: 28px;
	height: 28px;
	border-radius: 10px;
	background: rgba(255,214,102,.14);
	border: 1px solid rgba(255,214,102,.35);
	color: #fff;
	font-size: 1.1rem;
	line-height: 1;
}

.media-add-summary em {
	font-style: normal;
	font-size: .95rem;
}

.media-add-details[open] .media-add-summary {
	border-bottom: 1px solid rgba(255,255,255,.08);
	width: 100%;
}

.media-add-details .inline-upload-form {
	padding: 14px;
}

/* Harmonise contact textareas with other dark form fields */
.club-contact-form textarea,
.federation-contact-form textarea,
.fighter-contact-form textarea {
	background: rgba(255,255,255,.055);
	border: 1px solid rgba(255,255,255,.14);
	border-radius: 14px;
	color: var(--text);
	padding: 12px 14px;
	font: inherit;
	outline: none;
}

.club-contact-form textarea:focus,
.federation-contact-form textarea:focus,
.fighter-contact-form textarea:focus {
	border-color: rgba(255,214,102,.55);
	box-shadow: 0 0 0 3px rgba(255,214,102,.10);
}

/* Event mobile: right column first */
@media (max-width: 820px) {
	.event-detail-layout {
		display: flex;
		flex-direction: column;
	}

	.event-side-column {
		order: 1;
		width: 100%;
	}

	.event-main-column {
		order: 2;
		width: 100%;
	}
}

/* Mobile: compact collapsed upload for all galleries */
@media (max-width: 820px) {
	.media-add-details {
		margin-top: 12px;
	}

	.media-add-summary em {
		font-size: .9rem;
	}
}


/* V5 inline gallery upload dropzone */
.inline-upload-preview {
	margin-top: 14px;
}

.upload-preview-item {
	position: relative;
	overflow: hidden;
	border-radius: 14px;
	border: 1px solid rgba(255,255,255,.10);
	background: rgba(255,255,255,.045);
	min-height: 92px;
	display: grid;
	place-items: center;
}

.upload-preview-item img {
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	display: block;
}

.upload-preview-item span {
	color: var(--muted);
	font-weight: 800;
}

.upload-preview-item em {
	position: absolute;
	left: 8px;
	right: 8px;
	bottom: 8px;
	padding: 5px 7px;
	border-radius: 9px;
	background: rgba(0,0,0,.55);
	color: #fff;
	font-size: .72rem;
	font-style: normal;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.dropzone[data-dropzone-ready="1"] {
	user-select: none;
}

/* V5 media link manager */
.media-link-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.media-link-row form {
	margin: 0;
}


/* V5 real Dropzone gallery integration */
.gallery-dropzone-form .dropzone {
	position: relative;
	min-height: 150px;
	border: 2px dashed rgba(255,212,71,.38);
	border-radius: 22px;
	background:
		radial-gradient(circle, rgba(255,212,71,.08), transparent 55%),
		rgba(255,255,255,.035);
	color: var(--text);
	padding: 24px;
}

.gallery-dropzone-form .dropzone.dz-drag-hover,
.gallery-dropzone-form .dropzone.dragover {
	border-color: var(--gold);
	background:
		radial-gradient(circle, rgba(255,212,71,.16), transparent 55%),
		rgba(255,255,255,.065);
}

.gallery-dropzone-form .dz-preview-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 14px;
}

.gallery-dropzone-form .dz-preview {
	margin: 0 !important;
	border-radius: 14px;
	background: rgba(255,255,255,.05) !important;
	border: 1px solid rgba(255,255,255,.10);
	overflow: hidden;
}

.gallery-dropzone-form .dz-preview .dz-image {
	border-radius: 14px !important;
	background: rgba(255,255,255,.08) !important;
}

.gallery-dropzone-form .dz-preview .dz-details,
.gallery-dropzone-form .dz-preview .dz-remove {
	color: #fff;
}

.gallery-dropzone-form .dz-preview .dz-remove {
	padding: 6px 0 8px;
	text-decoration: none;
}

.gallery-dropzone-form .dz-preview .dz-remove:hover {
	color: var(--gold);
}

.gallery-dropzone-form .dropzone input[type="file"] {
	display: none !important;
}


/* V5 gallery auto-upload and deletion */
.gallery-dropzone-form .dz-success-mark,
.gallery-dropzone-form .dz-error-mark {
	display: none !important;
}

.media-rights-message {
	margin: 10px 0 0 0;
	color: var(--muted);
	font-size: .9rem;
	line-height: 1.45;
}

.gallery-media-card {
	position: relative;
	display: inline-block;
}

.gallery-media-card > a {
	display: block;
}

.gallery-delete-trigger {
	position: absolute;
	top: 6px;
	right: 6px;
	z-index: 3;
	width: 30px;
	height: 30px;
	border-radius: 999px;
	border: 1px solid rgba(255,255,255,.22);
	background: rgba(0,0,0,.68);
	color: #fff;
	font-size: 1.25rem;
	line-height: 1;
	cursor: pointer;
	opacity: 0;
	transition: opacity .16s ease, transform .16s ease, background .16s ease;
}

.gallery-media-card:hover .gallery-delete-trigger {
	opacity: 1;
}

.gallery-delete-trigger:hover {
	transform: scale(1.05);
	background: rgba(229,57,53,.86);
}

.gallery-delete-modal {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: none;
	align-items: center;
	justify-content: center;
	padding: 20px;
	background: rgba(0,0,0,.68);
	backdrop-filter: blur(6px);
}

.gallery-delete-modal.is-open {
	display: flex;
}

.gallery-delete-dialog {
	width: min(520px, 100%);
	border-radius: 22px;
	border: 1px solid rgba(255,255,255,.14);
	background: rgba(20,22,30,.98);
	box-shadow: 0 24px 80px rgba(0,0,0,.45);
	padding: 22px;
}

.gallery-delete-dialog strong {
	display: block;
	font-family: Rajdhani, Inter, sans-serif;
	font-size: 1.45rem;
	color: #fff;
}

.gallery-delete-dialog p {
	color: var(--muted);
	line-height: 1.5;
}

.gallery-delete-dialog .actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.gallery-delete-dialog form {
	margin: 0;
}

@media (max-width: 820px) {
	.gallery-delete-trigger {
		opacity: 1;
	}
}


/* V5 gallery upload bugfix */
.gallery-dropzone-form .dz-preview .dz-remove {
	position: relative;
	z-index: 30;
	cursor: pointer;
}

.gallery-dropzone-form .dz-preview.dz-processing .dz-remove {
	opacity: .45;
	pointer-events: none;
}

.gallery-dropzone-form .dropzone.js-gallery-dropzone {
	cursor: pointer;
}


/* V5 gallery upload process fix */
.gallery-dropzone-form .dz-preview.dz-processing .dz-remove {
	opacity: .45;
	pointer-events: none;
}

.gallery-dropzone-form .dz-preview.dz-success .dz-remove {
	opacity: .45;
	pointer-events: none;
}


/* V5 gallery simplified upload + YouTube */
.gallery-youtube-form {
	margin-top: 16px;
	padding-top: 14px;
	border-top: 1px solid rgba(255,255,255,.08);
	display: grid;
	gap: 8px;
}

.gallery-youtube-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 10px;
	align-items: center;
}

.gallery-youtube-row input {
	min-width: 0;
}

.gallery-youtube-row .btn {
	white-space: nowrap;
}

@media (max-width: 620px) {
	.gallery-youtube-row {
		grid-template-columns: 1fr;
	}

	.gallery-youtube-row .btn {
		width: 100%;
	}
}


/* V5 gallery video upload */
.video-embed video {
	width: 100%;
	max-height: 70vh;
	border-radius: 18px;
	background: #000;
}


/* V5 video thumbnail play overlay */
.video-thumb-with-play {
	position: relative;
	display: block;
	width: 100%;
	height: 100%;
	overflow: hidden;
	border-radius: inherit;
	background: #000;
}

.video-thumb-with-play img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.video-thumb-with-play .play-overlay {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	z-index: 2;
	width: 46px;
	height: 46px;
	border-radius: 999px;
	display: grid;
	place-items: center;
	padding-left: 3px;
	background: rgba(0,0,0,.68);
	color: #fff;
	border: 1px solid rgba(255,255,255,.32);
	box-shadow: 0 10px 30px rgba(0,0,0,.35);
	font-size: 1.15rem;
	line-height: 1;
	pointer-events: none;
}

.gallery-media-card:hover .video-thumb-with-play .play-overlay,
.media-card:hover .video-thumb-with-play .play-overlay {
	background: rgba(255,214,102,.92);
	color: #111;
	transform: translate(-50%, -50%) scale(1.06);
}


/* V5 red play overlay matching local video icon */
.video-thumb-with-play .play-overlay {
	width: 56px;
	height: 56px;
	border-radius: 999px;
	background: linear-gradient(135deg, #ff3b30, #b00020);
	color: #fff;
	border: 2px solid rgba(255,255,255,.85);
	box-shadow: 0 10px 28px rgba(176,0,32,.42), inset 0 0 0 1px rgba(255,255,255,.18);
	font-size: 1.35rem;
	padding-left: 4px;
}

.gallery-media-card:hover .video-thumb-with-play .play-overlay,
.media-card:hover .video-thumb-with-play .play-overlay {
	background: linear-gradient(135deg, #ff5148, #c40025);
	color: #fff;
	transform: translate(-50%, -50%) scale(1.07);
}


/* V5 media item delete button */
.page-actions form {
	margin: 0;
}


/* V5 club schedules */
.club-schedule-list {
	display: grid;
	gap: 10px;
	margin-top: 12px;
}

.club-schedule-item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	padding: 12px 14px;
	border: 1px solid rgba(255,255,255,.10);
	border-radius: 16px;
	background: rgba(255,255,255,.045);
}

.club-schedule-item strong {
	color: #fff;
}

.club-schedule-item span {
	color: var(--muted);
	font-weight: 800;
}

.club-schedule-editor {
	display: grid;
	gap: 10px;
	margin-top: 12px;
}

.club-schedule-row {
	display: grid;
	grid-template-columns: minmax(130px, 1fr) 130px 130px auto;
	gap: 10px;
	align-items: end;
}

@media (max-width: 720px) {
	.club-schedule-item {
		align-items: flex-start;
		flex-direction: column;
	}

	.club-schedule-row {
		grid-template-columns: 1fr;
	}
}

/* Admin tools */
.admin-metrics {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px;
	margin-top: 18px;
}

.admin-metrics span,
.admin-tile-count {
	padding: 9px 11px;
	border: 1px solid var(--line);
	border-radius: 14px;
	background: rgba(255,255,255,.045);
	color: var(--muted);
	font-size: .9rem;
	white-space: nowrap;
}

.admin-metrics span {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
}

.admin-metrics strong,
.admin-tile-count {
	color: var(--text);
	font-weight: 800;
}

.tool-form {
	display: grid;
	gap: 14px;
	margin-top: 18px;
}

.tool-form label {
	color: var(--muted);
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .08em;
	font-size: .8rem;
}

.tool-form input[type="url"],
.tool-form textarea {
	width: 100%;
	padding: 13px 16px;
	border: 1px solid var(--line);
	border-radius: 16px;
	background: rgba(255,255,255,.07);
	color: var(--text);
	font: inherit;
}

.tool-form textarea.large-textarea {
	min-height: 260px;
	resize: vertical;
}

.tool-form .checkbox-line {
	display: flex;
	align-items: center;
	gap: 10px;
	text-transform: none;
	letter-spacing: 0;
	font-size: .95rem;
	font-weight: 600;
}

.tool-message-panel {
	border-color: rgba(255,212,71,.35);
}

.tool-message-success {
	border-color: rgba(53, 229, 161, .35);
}

.tool-message-error {
	border-color: rgba(229,57,53,.45);
}

.tool-form input[type="text"],
.tool-form input[type="number"] {
	width: 100%;
	padding: 13px 16px;
	border: 1px solid var(--line);
	border-radius: 16px;
	background: rgba(255,255,255,.07);
	color: var(--text);
	font: inherit;
}

.tool-form-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 16px;
	margin: 14px 0;
}

.scan-progress {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 14px;
	margin: 18px 0 24px;
}

.scan-progress > div {
	border: 1px solid var(--line);
	border-radius: 18px;
	padding: 16px;
	background: rgba(255,255,255,.05);
}

.scan-progress strong {
	display: block;
	font-size: 1.6rem;
}

.scan-progress span {
	color: var(--muted);
	font-size: .9rem;
}

.scan-run-form {
	margin-top: 24px;
	padding-top: 20px;
	border-top: 1px solid var(--line);
}

.map-popup-separator
{
	border: 0;
	border-top: 1px solid rgba(148, 163, 184, 0.35);
	margin: 8px 0;
}

/* Competition result categories */
.competition-results {
	display: grid;
	gap: 18px;
	margin-top: 18px;
}

.competition-category-card,
.competition-admin-panel,
.legacy-results-block {
	padding: 18px;
	border: 1px solid rgba(255,255,255,.10);
	border-radius: 22px;
	background: rgba(255,255,255,.035);
}

.competition-category-card h3,
.competition-admin-panel h3,
.legacy-results-block h3 {
	margin-top: 0;
}

.compact-results-table td,
.compact-results-table th {
	padding: 10px 8px;
}

.competition-admin-panel {
	margin-top: 22px;
}

.competition-inline-form {
	margin-top: 18px;
	padding-top: 18px;
	border-top: 1px solid rgba(255,255,255,.10);
}

.competition-form-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 12px;
	align-items: end;
}

.competition-form-grid {
	display: grid;
	grid-template-columns: minmax(160px, 1.1fr) 100px minmax(180px, 1.2fr) minmax(180px, 1.2fr);
	gap: 12px;
	align-items: end;
	margin-bottom: 12px;
}

.competition-import-preview {
	margin-top: 18px;
	padding: 18px;
	border: 1px solid rgba(255,212,71,.25);
	border-radius: 22px;
	background: rgba(255,212,71,.06);
}

.competition-cancel-preview-form {
	margin-top: 10px;
}

.muted-text {
	color: var(--muted);
}

.btn-small {
	min-height: 34px;
	padding: 7px 10px;
	border-radius: 12px;
	font-size: .85rem;
}

@media (max-width: 860px) {
	.competition-form-row,
	.competition-form-grid {
		grid-template-columns: 1fr;
	}
}


.event-inline-indicators {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.event-status-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	border-radius: 999px;
	background: rgba(15, 23, 42, .82);
	border: 1px solid rgba(255, 255, 255, .25);
	box-shadow: 0 8px 18px rgba(0, 0, 0, .28);
}

.event-status-icon svg {
	display: block;
	width: 15px;
	height: 15px;
	fill: currentColor;
}

.event-status-icon-gallery {
	color: var(--blue);
}

.event-status-icon-podium {
	color: #ffd447;
}

.map-popup-event-icons {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-left: 6px;
	vertical-align: middle;
}

.map-popup-event-icons .event-status-icon {
	width: 15px;
	height: 15px;
	padding: 0;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
}

.map-popup-event-icons .event-status-icon-gallery,
.map-popup-event-icons .event-status-icon-podium {
	color: #93c5fd;
}

.map-popup-event-icons .event-status-icon svg {
	width: 14px;
	height: 14px;
}

.event-card-cover-wrap {
	position: relative;
}

.event-card-indicators {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 3;
}


.competition-category-head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 12px;
}

.competition-category-head h3 {
	margin: 0;
}

.competition-category-head form {
	margin: 0;
}

@media (max-width: 640px) {
	.competition-category-head {
		flex-direction: column;
	}
}

.inline-badges {
	display: inline-flex;
	flex-wrap: wrap;
	gap: 6px;
	align-items: center;
	vertical-align: middle;
	margin-left: 8px;
}

.inline-badges .badge {
	padding: 5px 8px;
	font-size: .72rem;
}

/* Corrections podcasts : tags, dates, troncature et embed Spotify */
.podcast-card-meta {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 8px;
	margin-bottom: 14px;
}

.podcast-card-provider,
.podcast-relation-badges,
.podcast-detail-badges {
	row-gap: 7px;
}

.podcast-relation-badges {
	margin-bottom: 4px;
}

.content-date {
	display: block;
	color: var(--muted);
	font-size: .9rem;
	line-height: 1.35;
}

.podcast-card h3 {
	margin-top: 0;
}

.podcast-card-description {
	overflow: hidden;
	display: -webkit-box;
	-webkit-line-clamp: 4;
	-webkit-box-orient: vertical;
	max-height: calc(1.55em * 4);
	line-height: 1.55;
	white-space: normal;
}

.podcast-detail-hero .lead {
	white-space: normal;
}

.content-embed.spotify-embed {
	aspect-ratio: auto;
}

/* Correction fiche podcast : conserver le titre et la description sur toute la largeur */
.podcast-detail-hero .podcast-detail-main,
.podcast-detail-hero .podcast-detail-actions {
	grid-column: 1 / -1;
}

.podcast-detail-hero .lead {
	max-width: none;
}


/* Correctifs podcasts v1.7 : tags regroupés, date sous les tags, ardoise Spotify ajustée */
.podcast-card-meta {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 9px;
	margin-bottom: 14px;
}

.podcast-card-tags {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}

.podcast-card-tags .badge {
	margin: 0;
}

.podcast-card-meta .content-date {
	margin-top: 0;
}

.podcast-embed-panel-spotify {
	min-height: 0;
}

.podcast-embed-panel-spotify .content-embed.spotify-embed {
	
}

.podcast-embed-panel-spotify .content-embed.spotify-embed iframe {
	display: block;
}

.event-status-icon-video { color: #a7f3d0; }
