/* Ausgabe der Spielerkarten */
/* Der gesamte Block steht zentriert auf der Seite, die Inhalte darin bleiben
   linksbuendig. */
.svsk-wrap {
	margin: 0 auto 1.5em;
	text-align: left;
	display: flex;
	flex-direction: column;
	align-items: center;
}

.svsk-title,
.svsk-group,
.svsk-empty,
.svsk-error {
	align-self: stretch;
	text-align: left;
}

.svsk-title {
	margin: 0 0 .6em;
}

.svsk-grid {
	display: grid;
	/* In eine Reihe passen so viele Karten, wie die verfuegbare Breite zulaesst,
	   hoechstens jedoch der eingestellte Wert (Karten pro Reihe). Reicht die
	   Breite nicht aus, ruecken die Karten automatisch untereinander. */
	grid-template-columns: repeat(auto-fill, var(--svsk-card-w, 416px));
	max-width: min(100%, calc(var(--svsk-cols, 3) * var(--svsk-card-w, 416px) + (var(--svsk-cols, 3) - 1) * var(--svsk-gap, 10px)));
	gap: var(--svsk-gap, 10px);
	justify-content: start;
	align-items: start;
	margin: 0 auto var(--svsk-gap, 10px);
}

.svsk-card {
	position: relative;
	overflow: hidden;
	box-sizing: content-box;
}

/* Platzhalter fuer nicht besetzte Plaetze der letzten Reihe: unsichtbar,
   belegt aber den Platz, damit die Karten linksbuendig stehen. */
.svsk-card-leer {
	visibility: hidden;
}

.svsk-card-inner {
	position: relative;
	transform-origin: top left;
}

.svsk-card-bg {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	display: block;
	margin: 0;
	padding: 0;
	border: 0;
	max-width: none;
}

.svsk-f {
	position: absolute;
	display: flex;
	box-sizing: border-box;
	overflow: hidden;
	pointer-events: none;
}

.svsk-f-text > span {
	display: block;
	max-width: 100%;
	white-space: nowrap;
	overflow: hidden;
	transform-origin: inherit;
}

.svsk-f-flagge img,
.svsk-f-logo img,
.svsk-f-foto img {
	width: 100%;
	height: 100%;
	display: block;
	max-width: none;
}

/* Gruppenueberschrift: Auszeichnung (H1 bis H5) und Schriftgroesse kommen aus
   den Einstellungen. Ist dort keine Groesse eingetragen, gilt die Groesse des
   WordPress-Themes; hier wird nur Abstand und Fettschrift vorgegeben. */
.svsk-group {
	margin: 1em 0 .4em;
	font-weight: 600;
	line-height: 1.25;
}

/* Zweite Absicherung: ist in den Einstellungen eine Groesse eingetragen, gilt
   sie auch dann, wenn das Theme eigene Schriftgroessen erzwingt. */
.svsk-wrap .svsk-group[style*="--svsk-group-size"] {
	font-size: var(--svsk-group-size) !important;
	line-height: 1.25 !important;
}

/* Gruppenueberschrift innerhalb des Rasters: volle Breite, linke Kante genau
   ueber der ersten Spielerkarte, kein zusaetzlicher Aussenabstand. */
.svsk-grid > .svsk-group {
	grid-column: 1 / -1;
	margin: 0;
	align-self: start;
}

/* Abstand zwischen zwei Gruppierungen. Der Wert kommt aus den Einstellungen
   („Abstand zwischen Gruppierungen“) und wird als Variable mitgegeben. Das
   !important sichert den Abstand gegen Theme-Regeln ab, die Aussenabstaende
   von Rastern zuruecksetzen. */
.svsk-grid.svsk-grid-gruppe {
	margin-top: var(--svsk-group-gap, 20px) !important;
}

.svsk-break {
	display: block;
	width: 100%;
	grid-column: 1 / -1;
	flex: 0 0 auto;
}

.svsk-empty,
.svsk-error {
	padding: .6em .8em;
	background: #f6f7f7;
	border-left: 4px solid #b8bcbf;
}

.svsk-error {
	border-left-color: #b32d2e;
	color: #8a1f20;
}

@media print {
	.svsk-topbar,
	.svsk-tabs {
		display: none !important;
	}

	.svsk-card,
	.svsk-card-inner {
		break-inside: avoid;
		page-break-inside: avoid;
	}

	.svsk-card-bg {
		-webkit-print-color-adjust: exact;
		print-color-adjust: exact;
	}
}

@media (max-width: 782px) {
	.svsk-wrap {
		max-width: 100%;
	}

	/* Auf schmalen Geraeten entfallen die unsichtbaren Fuellkarten, damit unter
	   der Liste keine leeren Reihen entstehen. */
	.svsk-grid > .svsk-card-leer {
		display: none;
	}

	/* Ist eine einzelne Karte breiter als der Bildschirm, laesst sich der ganze
	   Block seitlich schieben; das Seitenlayout bleibt unveraendert. */
	.svsk-wrap {
		overflow-x: auto;
	}
}
