/* Classement HockeyNet — affichage public */

.hnsp-classement {
	--hnsp-accent: #c8102e;
	--hnsp-border: rgba(0, 0, 0, .1);
	--hnsp-muted: rgba(0, 0, 0, .55);
	margin: 0 0 1.5em;
	font-variant-numeric: tabular-nums;
}

.hnsp-classement__titre {
	margin: 0 0 .5em;
	font-size: 1.1em;
}

.hnsp-classement__table {
	width: 100%;
	border-collapse: collapse;
	font-size: .95em;
}

.hnsp-classement__table th,
.hnsp-classement__table td {
	padding: .5em .4em;
	text-align: center;
	border-bottom: 1px solid var(--hnsp-border);
}

.hnsp-classement__table thead th {
	font-size: .8em;
	text-transform: uppercase;
	letter-spacing: .04em;
	color: var(--hnsp-muted);
	border-bottom-width: 2px;
	white-space: nowrap;
}

.hnsp-classement__table thead th abbr {
	text-decoration: none;
	border: 0;
	cursor: help;
}

.hnsp-classement__table .hnsp-col-position {
	width: 2.5em;
	color: var(--hnsp-muted);
}

.hnsp-classement__table .hnsp-col-equipe {
	text-align: left;
	font-weight: 500;
	white-space: nowrap;
}

.hnsp-classement__table .hnsp-col-points {
	font-weight: 700;
}

.hnsp-classement__logo {
	width: 24px;
	height: 24px;
	object-fit: contain;
	vertical-align: middle;
	margin-right: .5em;
}

.hnsp-classement__nom {
	vertical-align: middle;
}

.hnsp-classement__nom a {
	color: inherit;
	text-decoration: none;
}

.hnsp-classement__nom a:hover {
	text-decoration: underline;
}

.hnsp-classement__ligne--club {
	background: rgba(200, 16, 46, .07);
	box-shadow: inset 3px 0 0 var(--hnsp-accent);
}

.hnsp-classement__ligne--club .hnsp-col-equipe {
	font-weight: 700;
}

.hnsp-classement__source {
	margin: .6em 0 0;
	font-size: .8em;
	color: var(--hnsp-muted);
}

.hnsp-classement__notice {
	padding: .6em .8em;
	border-left: 3px solid #d63638;
	background: rgba(214, 54, 56, .06);
	font-size: .9em;
}

/* Lisibilité sur mobile : on fait défiler le tableau plutôt que l'écraser. */
@media (max-width: 600px) {
	.hnsp-classement {
		overflow-x: auto;
	}

	.hnsp-classement__table {
		min-width: 520px;
	}
}

@media (prefers-color-scheme: dark) {
	.hnsp-classement {
		--hnsp-border: rgba(255, 255, 255, .15);
		--hnsp-muted: rgba(255, 255, 255, .6);
	}

	.hnsp-classement__ligne--club {
		background: rgba(200, 16, 46, .18);
	}
}

/* Calendrier des rencontres */

.hnsp-matchs {
	--hnsp-accent: #c8102e;
	--hnsp-border: rgba(0, 0, 0, .1);
	--hnsp-muted: rgba(0, 0, 0, .55);
	margin: 0 0 1.5em;
}

.hnsp-matchs__titre {
	margin: 0 0 .5em;
	font-size: 1.1em;
}

.hnsp-matchs__liste {
	list-style: none;
	margin: 0;
	padding: 0;
}

.hnsp-match {
	display: grid;
	grid-template-columns: 5.5em 1fr auto;
	align-items: center;
	gap: .4em 1em;
	padding: .7em .2em;
	border-bottom: 1px solid var(--hnsp-border);
}

.hnsp-match__date {
	display: flex;
	flex-direction: column;
	line-height: 1.25;
	font-size: .85em;
	color: var(--hnsp-muted);
}

.hnsp-match__jour {
	font-weight: 600;
	text-transform: capitalize;
	color: inherit;
}

.hnsp-match__journee {
	font-size: .85em;
	opacity: .75;
}

.hnsp-match__equipes {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: .6em;
}

.hnsp-match__equipe {
	display: inline-flex;
	align-items: center;
	gap: .45em;
	min-width: 0;
}

.hnsp-match__equipes .hnsp-match__equipe:last-child {
	justify-content: flex-end;
	text-align: right;
}

.hnsp-match__equipe--club .hnsp-match__nom {
	font-weight: 700;
}

.hnsp-match__nom {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.hnsp-match__logo {
	width: 22px;
	height: 22px;
	object-fit: contain;
	flex: 0 0 auto;
}

.hnsp-match__score {
	min-width: 3.5em;
	text-align: center;
	font-variant-numeric: tabular-nums;
}

.hnsp-match__vs {
	color: var(--hnsp-muted);
	font-size: .85em;
}

.hnsp-match__lieu {
	font-size: .82em;
	color: var(--hnsp-muted);
	text-align: right;
}

.hnsp-match--a-venir .hnsp-match__score {
	color: var(--hnsp-muted);
}

@media (max-width: 600px) {
	.hnsp-match {
		grid-template-columns: 4.5em 1fr;
	}

	.hnsp-match__lieu {
		grid-column: 2;
		text-align: left;
	}

	.hnsp-match__nom {
		font-size: .9em;
	}
}

/* Prochain match */

.hnsp-prochain {
	--hnsp-accent: #c8102e;
	--hnsp-border: rgba(0, 0, 0, .12);
	--hnsp-muted: rgba(0, 0, 0, .55);
	border: 1px solid var(--hnsp-border);
	border-radius: 10px;
	padding: 1.2em 1em;
	text-align: center;
	margin: 0 0 1.5em;
}

.hnsp-prochain__surtitre {
	margin: 0 0 .2em;
	font-size: .78em;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--hnsp-accent);
	font-weight: 700;
}

.hnsp-prochain__date {
	margin: 0 0 1em;
	font-size: 1.05em;
	text-transform: capitalize;
}

.hnsp-prochain__heure {
	font-weight: 700;
	margin-left: .4em;
}

.hnsp-prochain__affiche {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: .8em 1.2em;
}

.hnsp-prochain__equipe {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: .4em;
	/* Jamais en dessous d'une largeur lisible : dans une colonne étroite,
	   le bloc passe à la ligne au lieu d'écraser le nom de l'équipe. */
	flex: 1 1 6em;
	min-width: 5.5em;
	max-width: 12em;
}

.hnsp-prochain__logo {
	width: 56px;
	height: 56px;
	object-fit: contain;
}

.hnsp-prochain__nom {
	font-size: .92em;
	line-height: 1.2;
	overflow-wrap: break-word;
	hyphens: auto;
}

.hnsp-prochain__equipe--club .hnsp-prochain__nom {
	font-weight: 700;
}

.hnsp-prochain__vs {
	color: var(--hnsp-muted);
	font-size: .85em;
	flex: 0 0 auto;
}

.hnsp-prochain__lieu {
	margin: 1em 0 0;
	font-size: .88em;
	color: var(--hnsp-muted);
}

.hnsp-prochain__compte {
	margin: .6em 0 0;
	font-size: 1.1em;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}

@media (prefers-color-scheme: dark) {
	.hnsp-matchs,
	.hnsp-prochain {
		--hnsp-border: rgba(255, 255, 255, .15);
		--hnsp-muted: rgba(255, 255, 255, .6);
	}
}

.hnsp-prochain__score {
	font-size: 1.4em;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}
