/* Bedburger Schachverein – Rätsel-Sprint. Paket zu style.css, geladen von inc/css-pakete.php. */

/* ==========================================================================
   Rätsel-Sprint ([raetsel-sprint], [sprint-bestenliste]) – Rätsel auf Zeit mit Bestenliste
   ========================================================================== */

.sprint {
	--sprint-ok: #1d8a3e;
	--sprint-no: #d0302f;
	--sprint-gold: #f2c94c;
	display: grid;
	gap: 1.75rem;
	margin: 1.5rem 0 2.5rem;
	scroll-margin-top: 0.5rem;
}

.sprint__buehne {
	min-width: 0;
}

/* Während des Spiels nur das Spiel */
.sprint.is-spiel .sprint-liste {
	display: none;
}

/* ---------- Startbild ---------- */
.sprint-start {
	padding: clamp(1.25rem, 3.2vw, 2rem);
	border-radius: 10px;
	background: var(--bsv-paper);
}

.entry-content .sprint-start__lead {
	margin: 0 0 0.6rem;
	font-size: clamp(1.125rem, 1rem + 0.5vw, 1.375rem);
	font-weight: 800;
	line-height: 1.3;
}

.entry-content .sprint-start__regeln {
	margin: 0 0 1.4rem;
	padding: 0;
	list-style: none;
	color: var(--bsv-muted);
	font-size: 1rem;
	line-height: 1.45;
}

.entry-content .sprint-start__regeln li {
	position: relative;
	margin: 0 0 0.3rem;
	padding-left: 1.4rem;
}

.sprint-start__regeln li::before {
	content: "";
	position: absolute;
	top: 0.5em;
	left: 0.2rem;
	width: 0.5rem;
	height: 0.5rem;
	border-radius: 2px;
	background: var(--bsv-blue);
	transform: rotate(45deg);
}

.sprint-start__modi {
	display: grid;
	gap: 0.6rem;
	margin: 0 0 1.4rem;
}

.sprint-modus {
	display: grid;
	grid-template-columns: 3.25rem minmax(0, 1fr);
	grid-template-areas: "zeichen name" "zeichen text";
	align-items: center;
	column-gap: 0.75rem;
	width: 100%;
	margin: 0;
	padding: 0.75rem 1rem;
	border: 2px solid var(--bsv-line);
	border-radius: 8px;
	background: var(--bsv-white);
	color: var(--bsv-ink);
	font: inherit;
	text-align: left;
	cursor: pointer;
	transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.sprint-modus:hover {
	border-color: var(--bsv-blue);
}

.sprint-modus[aria-checked="true"] {
	border-color: var(--bsv-blue);
	box-shadow: 0 0 0 3px rgba(0, 100, 197, 0.18);
}

.sprint-modus:focus-visible {
	outline: 3px solid var(--bsv-black);
	outline-offset: 2px;
}

.sprint-modus__zeichen {
	grid-area: zeichen;
	display: grid;
	place-items: center;
	width: 3.25rem;
	height: 3.25rem;
	border-radius: 50%;
	background: var(--bsv-blue-mist);
	color: var(--bsv-blue);
	font-size: 1.75rem;
	font-weight: 800;
	line-height: 1;
	transition: background-color 0.15s ease, color 0.15s ease;
}

.sprint-modus[aria-checked="true"] .sprint-modus__zeichen {
	background: var(--bsv-blue);
	color: var(--bsv-white);
}

.sprint-modus__name {
	grid-area: name;
	align-self: end;
	font-size: 1.0625rem;
	font-weight: 800;
	line-height: 1.2;
}

.sprint-modus__text {
	grid-area: text;
	align-self: start;
	color: var(--bsv-muted);
	font-size: 0.875rem;
	line-height: 1.3;
}

.sprint-start__los {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem 1.25rem;
}

.sprint-start__knopf {
	min-height: 3.5rem;
	padding-inline: 2rem;
	font-size: 1.125rem;
}

.sprint-start__knopf:disabled {
	opacity: 0.6;
	cursor: progress;
}

.entry-content .sprint-start__rekord {
	margin: 0;
	color: var(--bsv-muted);
	font-size: 1rem;
}

.sprint-start__rekord strong {
	color: var(--bsv-ink);
}

.entry-content .sprint-start__meldung {
	margin: 1rem 0 0;
	padding: 0.7rem 1rem;
	border-radius: 4px;
	background: #fdecec;
	color: #8a1c1b;
	font-size: 0.9375rem;
	font-weight: 600;
}

@media (max-width: 39.99em) {
	.sprint-start__knopf {
		flex: 1 1 auto;
	}

	.sprint-start__ton {
		order: 2;
	}

	.entry-content .sprint-start__rekord {
		order: 3;
		flex-basis: 100%;
	}
}

.sprint-modus[data-modus="ueberleben"] .sprint-modus__zeichen {
	font-size: 2.1rem;
}

@media (min-width: 40em) {
	.sprint-start__modi {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.sprint-modus {
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas: "zeichen" "name" "text";
		align-items: start;
		row-gap: 0.2rem;
		padding: 1rem;
	}

	.sprint-modus__zeichen {
		margin-bottom: 0.45rem;
	}
}

/* ---------- Bestenliste ---------- */
.sprint-liste {
	min-width: 0;
	padding: 1.15rem 1.15rem 1rem;
	border: 1px solid var(--bsv-line);
	border-radius: 10px;
	background: var(--bsv-white);
	scroll-margin-top: 0.5rem;
}

.entry-content .sprint-liste__titel,
.sprint-liste__titel {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0 0 0.85rem;
	font-size: 1.375rem;
	line-height: 1.2;
}

.sprint-liste__pokal {
	flex: none;
	color: #c9a227;
}

.sprint-liste__tabs {
	display: flex;
	gap: 0.2rem;
	margin: 0 0 0.45rem;
	padding: 0.2rem;
	border-radius: 999px;
	background: var(--bsv-paper);
}

.entry-content .sprint-liste__tab,
.sprint-liste__tab {
	flex: 1 1 0;
	min-width: 0;
	padding: 0.4rem 0.5rem;
	border-radius: 999px;
	color: var(--bsv-ink);
	font-size: 0.875rem;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	white-space: nowrap;
	transition: background-color 0.15s ease, color 0.15s ease;
}

.sprint-liste__tab:hover {
	background: rgba(5, 14, 17, 0.06);
	color: var(--bsv-ink);
}

.entry-content .sprint-liste__tab[aria-pressed="true"],
.sprint-liste__tab[aria-pressed="true"] {
	background: var(--bsv-black);
	color: var(--bsv-white);
}

.entry-content .sprint-liste__tabs--zeit .sprint-liste__tab[aria-pressed="true"],
.sprint-liste__tabs--zeit .sprint-liste__tab[aria-pressed="true"] {
	background: var(--bsv-white);
	color: var(--bsv-ink);
	box-shadow: 0 1px 3px rgba(5, 14, 17, 0.18);
}

.sprint-liste__tab:focus-visible {
	outline: 3px solid var(--bsv-blue);
	outline-offset: 1px;
}

.sprint-liste__inhalt {
	transition: opacity 0.2s ease;
}

.sprint-liste.is-laden .sprint-liste__inhalt {
	opacity: 0.55;
}

.entry-content .sprint-liste__tabelle,
.sprint-liste__tabelle {
	width: 100%;
	margin: 0.4rem 0 0;
	border-collapse: collapse;
	font-size: 0.9375rem;
	line-height: 1.3;
	font-variant-numeric: tabular-nums;
}

.entry-content .sprint-liste__tabelle thead th,
.sprint-liste__tabelle thead th {
	padding: 0.45rem 0.4rem;
	border-bottom: 1px solid var(--bsv-line);
	background: none;
	color: var(--bsv-muted);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.entry-content .sprint-liste__tabelle td,
.sprint-liste__tabelle td {
	padding: 0.45rem 0.4rem;
	border-bottom: 1px solid var(--bsv-line);
	vertical-align: middle;
}

.entry-content .sprint-liste__tabelle tbody tr:nth-child(even),
.entry-content .sprint-liste__tabelle tbody tr:hover {
	background: none;
}

.sprint-liste__tabelle tbody tr:last-child td {
	border-bottom: 0;
}

.sprint-liste__tabelle th:nth-child(3),
.sprint-liste__tabelle th:nth-child(4) {
	text-align: right;
}

.entry-content .sprint-liste__tabelle th:first-child {
	width: 2.6rem;
}

.sprint-liste__platz span {
	display: inline-grid;
	place-items: center;
	width: 1.8rem;
	height: 1.8rem;
	border-radius: 50%;
	background: var(--bsv-paper);
	font-size: 0.8125rem;
	font-weight: 800;
}

.is-platz1 .sprint-liste__platz span {
	background: var(--sprint-gold, #f2c94c);
	color: #4a3700;
	box-shadow: inset 0 -2px 0 rgba(0, 0, 0, 0.12);
}

.is-platz2 .sprint-liste__platz span {
	background: #d9dee2;
	color: #2f3a40;
	box-shadow: inset 0 -2px 0 rgba(0, 0, 0, 0.1);
}

.is-platz3 .sprint-liste__platz span {
	background: #e3ac7a;
	color: #4d2708;
	box-shadow: inset 0 -2px 0 rgba(0, 0, 0, 0.12);
}

.sprint-liste__name {
	font-weight: 600;
	overflow-wrap: anywhere;
}

.entry-content .sprint-liste__punkte,
.sprint-liste__punkte {
	font-size: 1.0625rem;
	font-weight: 800;
	text-align: right;
}

.entry-content .sprint-liste__datum,
.sprint-liste__datum {
	color: var(--bsv-muted);
	font-size: 0.8125rem;
	text-align: right;
	white-space: nowrap;
}

.entry-content .sprint-liste__tabelle tr.is-du td {
	background: var(--bsv-blue-mist);
}

.sprint-liste__du {
	display: inline-block;
	margin-left: 0.2rem;
	padding: 0.05rem 0.4rem;
	border-radius: 999px;
	background: var(--bsv-blue);
	color: var(--bsv-white);
	font-size: 0.6875rem;
	font-weight: 800;
	vertical-align: 0.1em;
}

.sprint-liste__tabelle tr.is-neu td {
	animation: bsv-sprint-neu 2.4s ease;
}

@keyframes bsv-sprint-neu {
	0%,
	40% {
		background: #fff1bf;
	}
}

.entry-content .sprint-liste__leer {
	margin: 0.5rem 0 0;
	padding: 1.25rem 1rem;
	border-radius: 6px;
	background: var(--bsv-paper);
	color: var(--bsv-muted);
	font-size: 0.9375rem;
	text-align: center;
}

.entry-content .sprint-liste__fuss {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 0.5rem 1rem;
	margin: 0.6rem 0 0;
	font-size: 0.9375rem;
}

.entry-content .sprint-liste__fuss:not(:has(> :not([hidden]))) {
	display: none;
}

.sprint-liste__mehr {
	padding: 0;
	border: 0;
	background: none;
	color: var(--bsv-blue);
	font: inherit;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 0.15em;
	cursor: pointer;
}

.sprint-liste__mehr[hidden] {
	display: none;
}

.sprint-liste__link {
	margin-left: auto;
	font-weight: 700;
}

.sprint-liste--klein {
	margin: 1.5rem 0 2rem;
}

/* ---------- Spiel ---------- */
.sprint-spiel {
	--sprint-brett: min(100%, calc(100vh - var(--bsv-header-h) - 10.5rem));
	display: grid;
	grid-template-areas: "leiste" "brett" "seite";
	gap: 0.75rem;
	scroll-margin-top: 0.5rem;
}

@supports (height: 100svh) {
	.sprint-spiel {
		--sprint-brett: min(100%, calc(100svh - var(--bsv-header-h) - 10.5rem));
	}
}

.sprint-spiel__leiste {
	grid-area: leiste;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto auto auto;
	align-items: center;
	gap: 0.6rem 0.85rem;
	padding: 0.6rem 0.5rem 0.85rem 0.9rem;
	border-radius: 8px;
	background: var(--bsv-black);
	color: var(--bsv-white);
}

.sprint-uhr {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	min-width: 0;
	font-variant-numeric: tabular-nums;
}

.sprint-uhr svg {
	flex: none;
	color: #9fc6ee;
}

.sprint-spiel--ohne-uhr .sprint-uhr svg {
	color: #ff8a8a;
}

.sprint-uhr__zeit {
	font-size: 1.75rem;
	font-weight: 800;
	line-height: 1;
}

/* Handy: Zeitbalken als dünne Linie unten in der Leiste */
.sprint-spiel__leiste {
	position: relative;
}

.sprint-uhr__balken {
	position: absolute;
	right: 0.9rem;
	bottom: 0.3rem;
	left: 0.9rem;
	height: 4px;
	overflow: hidden;
	border-radius: 3px;
	background: rgba(255, 255, 255, 0.16);
}

.sprint-uhr__balken > span {
	display: block;
	height: 100%;
	border-radius: inherit;
	background: #6fb6f5;
	transform-origin: left center;
	transition: transform 0.2s linear, background-color 0.3s ease;
}

.sprint-uhr__modus {
	color: rgba(255, 255, 255, 0.7);
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.sprint-spiel.is-knapp .sprint-uhr__zeit {
	color: #ff7b7b;
	animation: bsv-sprint-puls 1s ease-in-out infinite;
}

.sprint-spiel.is-knapp .sprint-uhr__balken > span {
	background: #ff7b7b;
}

@keyframes bsv-sprint-puls {
	50% {
		opacity: 0.55;
	}
}

.sprint-punkte {
	display: flex;
	flex-direction: column;
	align-items: center;
	line-height: 1;
}

.sprint-punkte__zahl {
	font-size: 1.75rem;
	font-weight: 800;
	font-variant-numeric: tabular-nums;
}

.sprint-punkte__zahl.is-pop,
.sprint-ende__zahl.is-pop {
	animation: bsv-sprint-pop 0.38s cubic-bezier(0.2, 0.9, 0.3, 1.45);
}

@keyframes bsv-sprint-pop {
	from {
		transform: scale(1.45);
		color: #7ee29a;
	}
}

.sprint-punkte__label {
	margin-top: 0.15rem;
	color: rgba(255, 255, 255, 0.7);
	font-size: 0.625rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.sprint-fehler {
	display: flex;
	gap: 0.3rem;
}

.sprint-fehler__x {
	width: 1.3rem;
	height: 1.3rem;
	border: 2px solid rgba(255, 255, 255, 0.3);
	border-radius: 50%;
	background-position: center;
	background-repeat: no-repeat;
	background-size: 72%;
}

.sprint-fehler__x.is-on {
	border-color: var(--sprint-no);
	background-color: var(--sprint-no);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 7l10 10m0-10L7 17' fill='none' stroke='%23fff' stroke-width='3.4' stroke-linecap='round'/%3E%3C/svg%3E");
	animation: bsv-ok-pop 0.34s cubic-bezier(0.2, 0.9, 0.3, 1.35) both;
}

.sprint-spiel__brett {
	grid-area: brett;
	position: relative;
	justify-self: center;
	width: var(--sprint-brett);
	min-width: min(100%, 17rem);
}

.sprint-board {
	box-shadow: 0 14px 34px rgba(5, 14, 17, 0.16);
	touch-action: none;
	-webkit-touch-callout: none;
}

.sprint-board .sq {
	cursor: pointer;
	touch-action: none;
}

.sprint-board .sq.is-drag-from .piece {
	opacity: 0.3;
}

.sprint-board .sq.is-drop {
	box-shadow: inset 0 0 0 0.25rem rgba(5, 14, 17, 0.4);
}

.sprint-board .sq__no {
	animation-duration: 0.3s;
}

.sprint-ghost {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 1000;
	pointer-events: none;
	filter: drop-shadow(0 8px 10px rgba(5, 14, 17, 0.35));
	will-change: transform;
}

.sprint-spiel.is-aus .sprint-board {
	filter: saturate(0.4);
	pointer-events: none;
}

.sprint-spiel__countdown {
	position: absolute;
	inset: 0;
	z-index: 10;
	display: grid;
	place-items: center;
	border-radius: var(--bsv-radius);
	background: rgba(5, 14, 17, 0.93);
	color: var(--bsv-white);
}

.sprint-spiel__countdown[hidden] {
	display: none;
}

.sprint-spiel__countdown span {
	font-size: clamp(5rem, 22vw, 9rem);
	font-weight: 800;
	line-height: 1;
}

.sprint-spiel__countdown span.is-tick {
	animation: bsv-sprint-count 0.65s ease-out both;
}

@keyframes bsv-sprint-count {
	from {
		opacity: 0;
		transform: scale(1.6);
	}
	35% {
		opacity: 1;
		transform: scale(1);
	}
}

.sprint-spiel__seite {
	grid-area: seite;
	min-width: 0;
}

.entry-content .sprint-spiel__zug {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0;
	font-size: 1.0625rem;
	font-weight: 800;
	line-height: 1.3;
}

.sprint-spiel__farbe {
	flex: none;
	width: 1rem;
	height: 1rem;
	border: 2px solid var(--bsv-black);
	border-radius: 50%;
}

.sprint-spiel__farbe--w {
	background: var(--bsv-white);
}

.sprint-spiel__farbe--b {
	background: var(--bsv-black);
}

.entry-content .sprint-spiel__meldung {
	min-height: 1.45em;
	margin: 0.25rem 0 0.6rem;
	color: var(--bsv-muted);
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.45;
}

.entry-content .sprint-spiel__meldung.is-ok {
	color: var(--sprint-ok);
}

.entry-content .sprint-spiel__meldung.is-no {
	color: #c22a29;
}

.entry-content .sprint-verlauf {
	display: flex;
	flex-wrap: wrap;
	gap: 0.3rem;
	margin: 0 0 0.9rem;
	padding: 0;
	list-style: none;
}

.entry-content .sprint-verlauf__punkt {
	display: grid;
	place-items: center;
	min-width: 1.6rem;
	height: 1.6rem;
	margin: 0;
	padding: 0 0.25rem;
	border-radius: 4px;
	color: var(--bsv-white);
	font-size: 0.75rem;
	font-weight: 800;
	line-height: 1;
	animation: bsv-ok-pop 0.3s cubic-bezier(0.2, 0.9, 0.3, 1.35) both;
}

.sprint-verlauf__punkt.is-ok {
	background: var(--sprint-ok);
}

.sprint-verlauf__punkt.is-no {
	background: var(--sprint-no);
}

.entry-content .sprint-spiel__aktionen {
	margin: 0;
}

.sprint-spiel__stopp {
	padding: 0.3rem 0;
	border: 0;
	background: none;
	color: var(--bsv-muted);
	font: inherit;
	font-size: 0.9375rem;
	text-decoration: underline;
	text-underline-offset: 0.15em;
	cursor: pointer;
}

.sprint-spiel__stopp.is-armed {
	color: #c22a29;
	font-weight: 700;
}

/* ---------- Ergebnis ---------- */
.sprint-ende {
	display: grid;
	gap: 1.75rem;
}

.sprint-ende__karte {
	padding: clamp(1.4rem, 3.5vw, 2.25rem) clamp(1rem, 3vw, 2rem);
	border-radius: 10px;
	background: var(--bsv-black);
	background-image: radial-gradient(120% 90% at 50% 0%, rgba(0, 100, 197, 0.55), transparent 70%);
	color: var(--bsv-white);
	text-align: center;
	scroll-margin-top: 0.5rem;
}

.entry-content .sprint-ende__grund {
	margin: 0;
	color: #9fc6ee;
	font-size: 0.8125rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.entry-content .sprint-ende__zahl {
	margin: 0.3rem 0 0;
	font-size: clamp(4.5rem, 3rem + 7vw, 6.5rem);
	font-weight: 800;
	line-height: 1;
	letter-spacing: -0.02em;
	font-variant-numeric: tabular-nums;
}

.entry-content .sprint-ende__label {
	margin: 0.35rem 0 1rem;
	color: rgba(255, 255, 255, 0.85);
	font-size: 1.0625rem;
	font-weight: 700;
}

.entry-content .sprint-ende__rekord {
	display: inline-block;
	margin: 0 0 1rem;
	padding: 0.3rem 0.85rem;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.12);
	font-size: 0.9375rem;
	font-weight: 700;
}

.entry-content .sprint-ende__rekord.is-neu {
	background: var(--sprint-gold);
	color: #3d2e00;
}

.entry-content .sprint-ende__plaetze {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.3rem 1rem;
	margin: 0 0 1.25rem;
	padding: 0;
	list-style: none;
	font-size: 0.9375rem;
}

.entry-content .sprint-ende__plaetze li {
	margin: 0;
}

.sprint-ende__plaetze strong {
	color: var(--sprint-gold);
}

.sprint-ende__form {
	max-width: 27rem;
	margin: 0 auto 1.25rem;
	padding: 1rem;
	border-radius: 8px;
	background: rgba(255, 255, 255, 0.08);
	text-align: left;
}

.sprint-ende__formlabel {
	display: block;
	margin-bottom: 0.45rem;
	font-weight: 700;
}

.sprint-ende__eingabe {
	display: flex;
	gap: 0.5rem;
}

.sprint-ende__eingabe input {
	flex: 1;
	min-width: 0;
}

.sprint-ende__eingabe .button {
	flex: none;
	border-color: var(--bsv-blue);
}

.sprint-ende__klein {
	display: block;
	margin-top: 0.5rem;
	color: rgba(255, 255, 255, 0.72);
	font-size: 0.8125rem;
	line-height: 1.4;
}

.sprint-ende__klein a {
	color: inherit;
	text-decoration: underline;
}

.sprint-ende__klein a:hover {
	color: var(--bsv-white);
}

.sprint-ende__formfehler {
	display: block;
	margin-top: 0.5rem;
	color: #ffb0b0;
	font-size: 0.875rem;
	font-weight: 700;
}

.sprint-ende__formfehler[hidden] {
	display: none;
}

.entry-content .sprint-ende__ok {
	max-width: 27rem;
	margin: 0 auto 1.25rem;
	padding: 0.7rem 1rem;
	border-radius: 6px;
	background: rgba(29, 138, 62, 0.3);
	color: #c3f2d0;
	font-weight: 700;
}

.entry-content .sprint-ende__hinweis {
	max-width: 30rem;
	margin: 0 auto 1.25rem;
	color: rgba(255, 255, 255, 0.85);
	font-size: 0.9375rem;
}

.entry-content .sprint-ende__hinweis.is-fehler {
	color: #ffc0c0;
}

.entry-content .sprint-ende__knoepfe {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.6rem;
	margin: 0;
}

@media (max-width: 39.99em) {
	.entry-content .sprint-ende__knoepfe > .button {
		flex: 1 1 0;
	}

	.entry-content .sprint-ende__knoepfe > [data-nochmal],
	.entry-content .sprint-ende__knoepfe > [data-fehler-ansehen] {
		flex-basis: 100%;
	}
}

.entry-content .sprint-ende__teilen-msg {
	margin: 0.8rem 0 0;
	color: rgba(255, 255, 255, 0.85);
	font-size: 0.875rem;
	overflow-wrap: anywhere;
}

/* Rückblick: alle Rätsel des Durchgangs */
.entry-content .sprint-rueckblick__titel {
	margin: 0 0 0.25rem;
	font-size: 1.25rem;
}

.sprint-rueckblick__titel span {
	margin-left: 0.35rem;
	color: var(--bsv-muted);
	font-size: 0.9375rem;
	font-weight: 600;
	font-stretch: 100%;
	letter-spacing: 0;
}

.entry-content .sprint-rueckblick__text {
	margin: 0 0 0.75rem;
	color: var(--bsv-muted);
	font-size: 0.9375rem;
}

.entry-content .sprint-rueckblick__liste {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
	margin: 0 0 1rem;
	padding: 0;
	list-style: none;
}

.entry-content .sprint-rueckblick__liste li {
	margin: 0;
}

.sprint-rueckblick__knopf {
	min-width: 2.35rem;
	height: 2.35rem;
	padding: 0 0.3rem;
	border: 0;
	border-radius: 6px;
	color: var(--bsv-white);
	font: inherit;
	font-size: 0.875rem;
	font-weight: 800;
	cursor: pointer;
	transition: transform 0.12s ease;
}

.sprint-rueckblick__knopf:hover {
	transform: translateY(-1px);
}

.sprint-rueckblick__knopf.is-ok {
	background: var(--sprint-ok);
}

.sprint-rueckblick__knopf.is-no {
	background: var(--sprint-no);
}

.sprint-rueckblick__knopf.is-offen {
	background: var(--bsv-paper);
	color: var(--bsv-ink);
	box-shadow: inset 0 0 0 2px var(--bsv-line);
}

.sprint-rueckblick__knopf[aria-pressed="true"] {
	outline: 3px solid var(--bsv-black);
	outline-offset: 2px;
}

.sprint-rueckblick__knopf:focus-visible {
	outline: 3px solid var(--bsv-blue);
	outline-offset: 2px;
}

.sprint-rueckblick__brett {
	padding-top: 1rem;
	border-top: 1px solid var(--bsv-line);
}

.sprint-rueckblick__brett[hidden] {
	display: none;
}

.sprint .sprint-rueckblick__puzzle .bsv-training__board {
	width: min(100%, 32rem);
}

.entry-content .sprint-rueckblick__kopf {
	margin: 0 0 0.75rem;
	color: var(--bsv-muted);
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

/* Fehler im Rückblick: roter Pfeil für den eigenen Zug und kurze Erklärung */
.sprint-rueckblick__puzzle .board {
	position: relative;
}

.sprint-fehlzug {
	position: absolute;
	inset: 0;
	z-index: 4;
	width: 100%;
	height: 100%;
	pointer-events: none;
	animation: sprint-pfeil-ein 0.35s ease both;
}

@keyframes sprint-pfeil-ein {
	from {
		opacity: 0;
	}
}

.sprint-fehlzug-info {
	margin: 0 0 0.85rem;
	padding: 0.7rem 0.9rem;
	border-left: 4px solid var(--sprint-no);
	border-radius: 0 var(--bsv-radius) var(--bsv-radius) 0;
	background: #fdeeee;
}

.entry-content .sprint-fehlzug-info p {
	margin: 0;
	font-size: 0.9375rem;
	line-height: 1.45;
}

.entry-content .sprint-fehlzug-info .sprint-fehlzug-info__zug {
	display: flex;
	align-items: center;
	gap: 0.45rem;
	margin-bottom: 0.2rem;
	font-size: 1rem;
}

.sprint-fehlzug-info__pfeil {
	flex: none;
	width: 1.4rem;
	height: 0.7rem;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 14'%3E%3Cpath d='M2 7h18' stroke='%23d0302f' stroke-width='3.2' stroke-linecap='round'/%3E%3Cpath d='M18 1.5 27 7l-9 5.5z' fill='%23d0302f'/%3E%3C/svg%3E") center / contain no-repeat;
}

.entry-content .sprint-fehlzug-info .sprint-fehlzug-info__vorher {
	margin-top: 0.3rem;
	color: var(--bsv-muted);
	font-size: 0.875rem;
}

.entry-content .sprint-rueckblick__nav {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem 1rem;
	margin: 1rem 0 0;
	padding-top: 0.85rem;
	border-top: 1px solid var(--bsv-line);
}

.sprint-rueckblick__nav span {
	color: var(--bsv-muted);
	font-size: 0.9375rem;
	font-weight: 700;
}

.sprint-rueckblick__lichess {
	width: auto;
	padding-inline: 1rem;
	font-size: 0.875rem;
}

.entry-content .sprint-rueckblick__training {
	margin: 1rem 0 0;
	font-size: 0.9375rem;
}

/* ---------- Computer: Spiel und Liste nebeneinander, großes Brett ---------- */
@media (min-width: 56em) {
	.entry-content > .sprint {
		width: min(66rem, 100vw - 2 * var(--bsv-gutter));
		max-width: none;
		margin-inline: calc(50% - min(66rem, 100vw - 2 * var(--bsv-gutter)) / 2);
	}

	.sprint {
		grid-template-columns: minmax(0, 1fr) minmax(19rem, 23rem);
		align-items: start;
		column-gap: 2rem;
	}

	.sprint.is-spiel {
		grid-template-columns: minmax(0, 1fr);
	}

	.sprint-spiel {
		--sprint-brett: clamp(20rem, min(100vw - 2 * var(--bsv-gutter) - 21rem, 100vh - var(--bsv-header-h) - 3rem), 40rem);
		grid-template-columns: var(--sprint-brett) minmax(15rem, 19rem);
		grid-template-rows: auto minmax(0, 1fr);
		grid-template-areas: "brett leiste" "brett seite";
		justify-content: center;
		align-items: start;
		gap: 1.25rem 2rem;
	}

	@supports (height: 100svh) {
		.sprint-spiel {
			--sprint-brett: clamp(20rem, min(100vw - 2 * var(--bsv-gutter) - 21rem, 100svh - var(--bsv-header-h) - 3rem), 40rem);
		}
	}

	.sprint-spiel__brett {
		justify-self: stretch;
		width: auto;
	}

	.sprint-spiel__leiste {
		grid-template-columns: minmax(0, 1fr) auto;
		grid-template-areas: "uhr ton" "punkte fehler";
		gap: 1.1rem 1rem;
		padding: 1.1rem 1.25rem 1.2rem;
		border-radius: 10px;
	}

	.sprint-uhr {
		grid-area: uhr;
		flex-wrap: wrap;
	}

	.sprint-uhr__zeit {
		font-size: 2.75rem;
	}

	.sprint-uhr__balken {
		position: static;
		flex: 1 1 100%;
		height: 7px;
	}

	.sprint-punkte {
		grid-area: punkte;
		flex-direction: row;
		align-items: baseline;
		gap: 0.45rem;
	}

	.sprint-punkte__zahl {
		font-size: 2.25rem;
	}

	.sprint-fehler {
		grid-area: fehler;
		align-self: center;
	}

	.sprint-spiel__ton {
		grid-area: ton;
		align-self: start;
		margin: -0.35rem -0.45rem 0 0;
	}

	.sprint-fehler__x {
		width: 1.5rem;
		height: 1.5rem;
	}

	.sprint-spiel__seite {
		padding-top: 0.25rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.sprint-punkte__zahl.is-pop,
	.sprint-ende__zahl.is-pop,
	.sprint-spiel.is-knapp .sprint-uhr__zeit,
	.sprint-spiel__countdown span.is-tick,
	.sprint-liste__tabelle tr.is-neu td,
	.sprint-fehler__x.is-on,
	.entry-content .sprint-verlauf__punkt {
		animation: none;
	}
}
