:root {
	--paper-color: #fdf5e6;
	--tan-border: #d2b48c;
	--vintage-tan: #faebd7;
	--brighton-blue: #0057b7;
	--classic-brown: #8b4513;
	--accent-brown: #a0522d;
}

.vintage-container {
	display: flex;
	flex-direction: column;
	gap: 1.875rem; /* 30px */
	padding: 2.5rem; /* 40px */
}

.classic-ticket {
	display: flex;
	width: 100%;
	max-width: 40.625rem; /* 650px */
	min-height: 11.25rem; /* 180px */
	background: var(--paper-color);
	border: 0.0625rem solid var(--tan-border);
	box-shadow: 0.1875rem 0.1875rem 0 rgba(0, 0, 0, 0.1);
	position: relative;
	font-family: 'Courier New', Courier, monospace;
}

/* Stub Styling */
.stub {
	width: 6.25rem; /* 100px */
	border-right: 0.125rem dashed #bda07b;
	display: flex;
	padding: 0.625rem;
	position: relative;
	background: var(--vintage-tan);
	transition: background 0.3s ease;
}

.stub-vertical-text {
	writing-mode: vertical-rl;
	transform: rotate(180deg);
	text-align: center;
	font-weight: bold;
	font-size: 0.8rem;
	color: var(--classic-brown);
	letter-spacing: 0.125rem;
}

.stub-details {
	display: flex;
	flex-direction: column;
	justify-content: center;
	margin-left: 0.625rem;
	height: 100%;
}

.stub-details dl {
	margin: 0;
}

.stub-label {
	font-size: 0.6rem;
	color: var(--accent-brown);
}

.stub-value {
	font-size: 1.2rem;
	font-weight: bold;
	color: #333;
	margin: 0;
}

/* Main Ticket Body */
.ticket-contents {
	flex: 1;
	padding: 0.9375rem 1.5625rem; /* 15px 25px */
	display: flex;
	flex-direction: column;
}

.top-row {
	display: flex;
	justify-content: space-between;
	font-size: 0.7rem;
	font-weight: bold;
	color: var(--accent-brown);
	margin-bottom: 0.625rem;
	border-bottom: 0.0625rem solid var(--tan-border);
	padding-bottom: 0.3125rem;
}

.match-heading {
	margin-bottom: 1.25rem;
}

.club-title {
	font-size: 1.6rem;
	font-weight: 900;
	color: #004b8d;
}

.versus-title {
	font-size: 1.3rem;
	color: #333;
}

/* Logistics Grid using Definition List */
.logistics-grid {
	display: grid;
	grid-template-columns: 1.5fr 1.5fr 1fr;
	gap: 0.9375rem;
	margin: 1.25rem 0 0 0;
}

.log-item dt {
	font-size: 0.65rem;
	color: var(--classic-brown);
	margin: 0;
}

.log-item dd {
	font-size: 0.9rem;
	font-weight: bold;
	margin: 0;
}

/* Home State Overrides */
.is-home .stub {
	background: var(--brighton-blue);
	border-right-color: rgba(255, 255, 255, 0.4);
}

.is-home .stub-vertical-text,
.is-home .stub-label,
.is-home .stub-value {
	color: #ffffff;
}

.is-home.classic-ticket {
	border-color: var(--brighton-blue);
}

.is-home .log-item dt {
	color: var(--brighton-blue);
}

.top-stadiums-grid {
	display: grid;
	gap: 1.5rem;
	max-width: 40.625rem; /* Matches your ticket width */
}

.stadium-card {
	background: var(--paper-color);
	border: 0.0625rem solid var(--tan-border);
	box-shadow: 0.1875rem 0.1875rem 0 rgba(0, 0, 0, 0.1);
	display: flex;
	flex-direction: column;
	overflow: hidden; /* Keeps the map image inside the borders */
}

.stadium-map {
	width: 100%;
	height: 9.375rem; /* 150px */
	background: #e0e0e0;
	border-bottom: 0.0625rem solid var(--tan-border);
}

.stadium-map img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.map-placeholder {
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: 'Courier New', Courier, monospace;
	color: var(--accent-brown);
	font-size: 0.8rem;
}

.stadium-details {
	padding: 1.25rem;
	font-family: 'Courier New', Courier, monospace;
}

.stadium-name {
	margin: 0 0 1rem 0;
	color: var(--brighton-blue); /* Or your primary club color */
	font-size: 1.4rem;
	font-weight: 900;
}

.stadium-stats-list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1rem;
	margin: 0;
}

.stat-item dt {
	font-size: 0.65rem;
	color: var(--classic-brown);
	margin-bottom: 0.25rem;
}

.stat-item dd {
	font-size: 1rem;
	font-weight: bold;
	color: #333;
	margin: 0;
}

.stadium-map-container {
	width: 100%;
	height: 12.5rem; /* 200px */
	background: #eee;
	border-bottom: 0.0625rem solid var(--tan-border);
	/* Prevents the map from capturing cursor events */
	pointer-events: none;
}

/* Ensure the map canvas fills the container */
.stadium-map-container .maplibregl-canvas {
	width: 100% !important;
	height: 100% !important;
}

.dashboard-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 2rem; /* Spacing between the two columns */
	margin-top: 2rem;
}

/* On large screens, give each section a flexible width */
.dashboard-grid > section {
	flex: 1 1 400px; /* Grow, Shrink, and a basis of 400px */
	min-width: 0; /* Prevents grid blowout from map containers */
}

/* Optional: If you want the match list to be slightly wider than the stadium list */
@media (min-width: 1024px) {
	.match-list {
		flex: 2 1 0;
	}
	.top-stadiums-list {
		flex: 1 1 0;
	}
}

/* Europa League Theme Variables */
.europa-league {
	--uel-black: #050505;
	--uel-orange: #f8971d;
	--uel-orange-glow: #f15a22;
	--uel-white: #ffffff;
}

/* Ticket Background Override */
.classic-ticket.europa-league {
	background: var(--uel-white);
	border-color: var(--uel-orange);
	color: var(--uel-black);
	/* Sublte gradient to mimic the UEL "energy wave" */
}

/* Stub Override */
.europa-league .stub {
	background: linear-gradient(
		135deg,
		var(--uel-orange),
		var(--uel-orange-glow)
	);
	border-right-color: var(--uel-black);
}

/* Text Color Adjustments */
.europa-league .stub-vertical-text,
.europa-league .stub-value {
	color: var(--uel-black); /* Dark text on orange stub for legibility */
}

.europa-league .stub-label {
	color: rgba(0, 0, 0, 0.7);
}

.europa-league .club-title,
.europa-league .versus-title,
.europa-league dd {
	color: var(--uel-black);
}

.europa-league .top-row,
.europa-league dt {
	color: var(--uel-black);
	border-bottom-color: var(--uel-orange-glow);
}
