.mls-grid {
	display: grid;
	grid-template-columns: repeat(var(--mls-columns, 3), minmax(0, 1fr));
	gap: 1.25rem;
	margin-block: 1.25rem;
}

.mls-card {
	--mls-ink: #14213d;
	--mls-muted: #667085;
	--mls-line: #dfe4ec;
	--mls-accent: #e63946;
	--mls-gold: #ffb703;
	box-sizing: border-box;
	position: relative;
	min-width: 0;
	padding: 1.35rem;
	border: 1px solid var(--mls-line);
	border-top: 4px solid var(--mls-accent);
	border-radius: 0.9rem;
	background: #fff;
	box-shadow: 0 12px 30px rgba(20, 33, 61, 0.08);
	color: var(--mls-ink);
	font-size: 1rem;
	line-height: 1.5;
}

.mls-card *,
.mls-card *::before,
.mls-card *::after {
	box-sizing: border-box;
}

.mls-card__header {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 1.15rem;
}

.mls-card__title {
	margin: 0;
	color: var(--mls-ink);
	font-size: clamp(1.25rem, 2vw, 1.6rem);
	line-height: 1.2;
}

.mls-card__location,
.mls-card__updated,
.mls-card__source,
.mls-draw-date,
.mls-cash-value {
	margin: 0.3rem 0 0;
	color: var(--mls-muted);
	font-size: 0.82rem;
}

.mls-section {
	padding-block: 1rem;
	border-top: 1px solid var(--mls-line);
}

.mls-section--jackpot {
	background: linear-gradient(135deg, rgba(255, 183, 3, 0.12), rgba(255, 183, 3, 0));
	margin-inline: -0.55rem;
	padding-inline: 0.55rem;
}

.mls-label {
	margin: 0 0 0.7rem;
	color: var(--mls-muted);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.mls-game-info ul {
	display: grid;
	gap: 0.35rem;
	margin: 0;
	padding-left: 1.15rem;
	color: var(--mls-muted);
	font-size: 0.9rem;
}

.mls-balls {
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem;
}

.mls-ball {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.55rem;
	height: 2.55rem;
	padding-inline: 0.45rem;
	border: 1px solid #cfd6e1;
	border-radius: 999px;
	background: #f8fafc;
	color: var(--mls-ink);
	font-size: 0.95rem;
	font-weight: 800;
	font-variant-numeric: tabular-nums;
}

.mls-ball--bonus {
	border-color: var(--mls-accent);
	background: var(--mls-accent);
	color: #fff;
}

.mls-ball--option {
	border-color: var(--mls-gold);
	background: var(--mls-gold);
	color: #352300;
}

.mls-ball--pick {
	width: auto;
	min-width: 3.4rem;
	border-radius: 0.65rem;
}

.mls-jackpot {
	margin: 0;
	color: var(--mls-ink);
	font-size: clamp(1.65rem, 4vw, 2.35rem);
	font-weight: 850;
	letter-spacing: -0.035em;
	line-height: 1.08;
}

.mls-row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	padding-block: 0.8rem;
	border-top: 1px solid var(--mls-line);
}

.mls-row span {
	color: var(--mls-muted);
}

.mls-row strong {
	text-align: right;
}

.mls-unavailable,
.mls-message {
	padding: 0.8rem 1rem;
	border-radius: 0.6rem;
	background: #f3f5f8;
	color: var(--mls-muted);
	font-size: 0.9rem;
}

.mls-message--error {
	border-left: 4px solid #b42318;
	color: #7a271a;
}

.mls-card__updated {
	margin-top: 0.75rem;
}

.mls-card__source {
	margin-top: 0.2rem;
}

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

@media (max-width: 600px) {
	.mls-grid {
		grid-template-columns: 1fr;
	}

	.mls-card {
		padding: 1.1rem;
	}
}

@media (prefers-reduced-motion: no-preference) {
	.mls-card {
		transition: transform 160ms ease, box-shadow 160ms ease;
	}

	.mls-card:hover {
		transform: translateY(-2px);
		box-shadow: 0 16px 38px rgba(20, 33, 61, 0.12);
	}
}
