/* Bausteine der Shortcodes – im Stil der Coming-Soon-Seite (dunkel, Rot, Barlow) */
:root {
	--fa-black: #0a0a0a;
	--fa-red: #e0242c;
	--fa-red-dark: #a3161c;
	--fa-white: #f5f5f5;
	--fa-grey: #9a9a9a;
	--fa-line: rgba(255, 255, 255, 0.14);
	--fa-card: rgba(255, 255, 255, 0.03);
	--fa-radius: 14px;
}

/* ---- Begrüßung [float_start] ---- */
/* Lesbar über dem Video: weicher dunkler Schleier hinter dem Text (kein Kasten), Schrift mit Schatten, kräftiger */
.float-at-hero { position: relative; isolation: isolate; }
.float-at-hero::before {
	content: ''; position: absolute; z-index: -1; inset: -4% -18%; pointer-events: none;
	inset-inline: max(-18%, calc((100% - 100vw) / 2 + 8px)); /* nie über den Bildschirmrand: am Handy sonst seitlich verschiebbar */
	background: radial-gradient(ellipse 60% 55% at 50% 50%, rgba(5, 5, 5, 0.62), rgba(5, 5, 5, 0.35) 55%, transparent 80%);
}
.float-at-hero :is(.float-at-kicker, .float-at-headline, .float-at-lead, .float-at-feature span, .float-at-tagline) {
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.75), 0 2px 18px rgba(0, 0, 0, 0.5);
}
.float-at-hero .float-at-feature svg { filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.7)); }
.float-at-hero .float-at-feature { border-left-color: rgba(255, 255, 255, 0.28); }
.float-at-hero .float-at-btn { background: rgba(10, 10, 10, 0.5); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.float-at-hero .float-at-btn:hover, .float-at-hero .float-at-btn:focus-visible { background: rgba(10, 10, 10, 0.62); }
.float-at-hero { max-width: 760px; margin: 0 auto; padding: clamp(1.5rem, 5vw, 3rem) 0 1rem; text-align: center; color: var(--fa-white); }
/* PNG mit transparentem Grund: kein mix-blend-mode – in der Einblend-Animation (eigener Stapelkontext) stünde sonst ein schwarzer Kasten über dem Video */
.float-at-hero-logo { display: block; width: clamp(240px, 62vw, 400px); height: auto; margin: 0 auto; filter: drop-shadow(0 2px 10px rgba(0, 0, 0, 0.35)); }
.float-at-kicker {
	display: flex; align-items: center; justify-content: center; gap: 1rem;
	margin: clamp(1.6rem, 5vw, 2.6rem) 0;
	font-size: clamp(0.85rem, 3vw, 1.05rem); letter-spacing: 0.5em; text-indent: 0.5em; text-transform: uppercase;
}
.float-at-kicker::before, .float-at-kicker::after { content: ''; height: 1px; width: clamp(30px, 8vw, 60px); }
.float-at-kicker::before { background: linear-gradient(90deg, transparent, var(--fa-red)); }
.float-at-kicker::after { background: linear-gradient(90deg, var(--fa-white), transparent); }
.float-at-headline {
	margin: 0;
	font-family: 'Barlow Condensed', 'Barlow', sans-serif; font-weight: 700;
	font-size: clamp(1.9rem, 7.5vw, 3.1rem); letter-spacing: 0.06em; text-transform: uppercase;
}
.float-at-lead { max-width: 32rem; margin: 0.9rem auto 0; color: #ececec; font-size: clamp(1.05rem, 3.6vw, 1.25rem); font-weight: 400; line-height: 1.6; }

.float-at-features { display: grid; grid-template-columns: repeat(4, 1fr); margin: clamp(2.2rem, 6vw, 3.5rem) 0; }
.float-at-feature { display: flex; flex-direction: column; align-items: center; gap: 0.7rem; padding: 0.25rem 0.5rem; border-left: 1px solid var(--fa-line); }
.float-at-feature:first-child { border-left: none; }
.float-at-feature svg { width: 44px; height: 44px; fill: none; stroke: var(--fa-red); stroke-width: 1.6; }
.float-at-feature span { color: var(--fa-white); font-size: 0.78rem; font-weight: 600; letter-spacing: 0.12em; line-height: 1.45; text-transform: uppercase; }

.float-at-tagline {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0.8em; margin: 0;
	font-family: 'Barlow Condensed', 'Barlow', sans-serif; font-weight: 700;
	font-size: clamp(1.4rem, 5.5vw, 2rem); letter-spacing: 0.22em; text-indent: 0.22em; text-transform: uppercase;
}
.float-at-tagline i { color: var(--fa-red); font-size: 0.6em; font-style: normal; }
.float-at-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem; margin-top: clamp(2rem, 6vw, 3rem); }

/* ---- Knöpfe ---- */
.float-at-btn {
	display: inline-flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0.3rem 0.8rem;
	box-sizing: border-box; max-width: 100%; text-align: center; overflow-wrap: anywhere; /* am Handy volle Breite samt Rand, lange Texte und Adressen brechen um */
	padding: 0.9rem 1.5rem; border: 1.5px solid var(--fa-red); border-radius: 18px;
	background: transparent; color: var(--fa-white); cursor: pointer;
	font: inherit; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; text-decoration: none;
	box-shadow: 0 0 24px rgba(224, 36, 44, 0.28), inset 0 0 18px rgba(224, 36, 44, 0.07);
	transition: box-shadow 0.25s ease, transform 0.25s ease, background 0.25s ease;
}
.float-at-btn:hover, .float-at-btn:focus-visible {
	color: var(--fa-white); background: rgba(224, 36, 44, 0.06); transform: translateY(-2px);
	box-shadow: 0 0 40px rgba(224, 36, 44, 0.5), inset 0 0 24px rgba(224, 36, 44, 0.12);
}
.float-at-btn:focus-visible { outline: 2px solid var(--fa-red); outline-offset: 4px; }
.float-at-btn svg { width: 26px; height: 26px; flex-shrink: 0; }
.float-at-btn em { color: var(--fa-red); font-style: normal; letter-spacing: 0.1em; text-transform: none; }

/* ---- Karte ---- */
.float-at-map { width: 100%; height: min(var(--fa-karte-h, 480px), 72vh); min-height: 300px; border: 1px solid var(--fa-line); border-radius: var(--fa-radius); z-index: 0; }
.float-at-map .leaflet-tile-pane { filter: invert(1) hue-rotate(180deg) brightness(0.85) contrast(0.9); }
.float-at-map .leaflet-popup-content-wrapper, .float-at-map .leaflet-popup-tip { background: #151515; color: var(--fa-white); }
.float-at-map .leaflet-control-attribution { background: rgba(10, 10, 10, 0.7); color: var(--fa-grey); }
.float-at-map .leaflet-control-attribution a { color: var(--fa-white); }

/* ---- Treffpunkte ---- */
.float-at-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1rem; margin: 0; padding: 0; list-style: none; }
.float-at-card { padding: 1.1rem 1.25rem; border: 1px solid var(--fa-line); border-radius: var(--fa-radius); background: var(--fa-card); color: var(--fa-white); }
.float-at-card h3 { margin: 0 0 0.25rem; font-family: 'Barlow Condensed', 'Barlow', sans-serif; letter-spacing: 0.06em; text-transform: uppercase; }
.float-at-card p { color: #cfcfcf; }
.float-at-ort { margin: 0 0 0.5rem; color: var(--fa-red) !important; font-weight: 600; letter-spacing: 0.06em; }
.float-at-empty { color: var(--fa-grey); }

/* ---- Social Media ---- */
.float-at-social { display: flex; flex-wrap: wrap; gap: 0.75rem; margin: 0; padding: 0; list-style: none; }

/* ---- Anmeldung ---- */
.float-at-form { max-width: 560px; }
.float-at-form label { display: block; margin-bottom: 0.3rem; color: var(--fa-grey); font-size: 0.8rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; }
.float-at-form input[type="text"], .float-at-form input[type="email"], .float-at-form textarea {
	box-sizing: border-box; width: 100%; padding: 0.7rem 0.8rem;
	border: 1px solid var(--fa-line); border-radius: 10px; background: #151515; color: var(--fa-white); font: inherit;
}
.float-at-form :is(input, textarea):focus { border-color: var(--fa-red); outline: none; box-shadow: 0 0 0 3px rgba(224, 36, 44, 0.25); }
.float-at-form .float-at-check { color: #cfcfcf; font-size: 0.95rem; font-weight: 400; letter-spacing: 0; text-transform: none; }
.float-at-hp { position: absolute; left: -9999px; }

.float-at-notice { margin-bottom: 1rem; padding: 0.9rem 1rem; border-radius: 10px; color: var(--fa-white); }
.float-at-ok { border: 1px solid #2e7d32; background: rgba(46, 125, 50, 0.15); }
.float-at-error { border: 1px solid var(--fa-red); background: rgba(224, 36, 44, 0.12); }

/* ---- Hintergrund der Startseite: Bild oder Video (Bild als Fallback) ---- */
/* über die ganze Breite: steht direkt im <body> (wp_body_open); falls doch im Inhalt, hebt das die Inhaltsbreite des Themes auf */
.float-at-bg { position: fixed; inset: 0; z-index: -1; width: 100vw; max-width: none !important; margin: 0 !important; background: center / cover no-repeat; pointer-events: none; }
.float-at-bg::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10, 10, 10, 0.55), rgba(10, 10, 10, 0.8)); }
.float-at-bg video { width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity 0.8s ease; }
.float-at-bg.is-playing video { opacity: 1; }

/* ---- Galerie (Datendatei, aus medien_import.py oder dem Instagram-Export) ---- */
.float-at-galerie { max-width: 1200px; margin: clamp(2rem, 6vw, 3.5rem) auto; color: var(--fa-white); }
.float-at-galerie ul { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); gap: 1rem; margin: 0; padding: 0; list-style: none; }
.float-at-galerie figure { position: relative; margin: 0; overflow: hidden; border: 1px solid var(--fa-line); border-radius: var(--fa-radius); background: var(--fa-card); }
.float-at-galerie a { display: block; color: inherit; text-decoration: none; }
.float-at-galerie a:focus-visible { outline: 2px solid var(--fa-red); outline-offset: -3px; border-radius: var(--fa-radius); }
.float-at-galerie img { display: block; width: 100%; aspect-ratio: 1; height: auto; object-fit: cover; transition: transform 0.4s ease; }
.float-at-galerie a:hover img, .float-at-galerie a:focus-visible img { transform: scale(1.04); }
.float-at-galerie figcaption {
	position: absolute; inset: auto 0 0; padding: 2rem 1rem 0.8rem;
	background: linear-gradient(180deg, transparent, rgba(10, 10, 10, 0.85));
	font-size: 0.8rem; letter-spacing: 0.12em; text-transform: uppercase;
	display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; pointer-events: none;
}
.float-at-play {
	position: absolute; top: 0.7rem; right: 0.7rem; width: 2.4rem; height: 2.4rem; border-radius: 50%;
	background: rgba(10, 10, 10, 0.6); border: 1.5px solid var(--fa-red); box-shadow: 0 0 18px rgba(224, 36, 44, 0.4);
}
.float-at-play::after { content: ''; position: absolute; top: 50%; left: 54%; transform: translate(-50%, -50%); border: 0.45rem solid transparent; border-left: 0.75rem solid var(--fa-white); border-right: 0; }
.float-at-galerie-mehr { margin: 2rem 0 0; text-align: center; }

/* Vergrößerung (assets/galerie.js) */
.float-at-lightbox {
	box-sizing: border-box; width: 100vw; max-width: none; height: 100dvh; max-height: none; margin: 0; padding: 3.5rem 0.75rem 1rem;
	border: 0; background: rgba(10, 10, 10, 0.96); color: var(--fa-white);
}
.float-at-lightbox[open] { display: flex; flex-direction: column; }
.float-at-lightbox::backdrop { background: rgba(10, 10, 10, 0.85); }
.float-at-lb-buehne { flex: 1; min-height: 0; display: flex; align-items: center; justify-content: center; touch-action: pan-y pinch-zoom; }
.float-at-lb-buehne img, .float-at-lb-buehne video { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 6px; }
.float-at-lb-text { margin: 0.8rem auto 0; max-width: 46rem; color: #cfcfcf; font-size: 0.95rem; text-align: center; white-space: pre-wrap; }
.float-at-lightbox button {
	position: absolute; display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; padding: 0;
	border: 1.5px solid var(--fa-red); border-radius: 50%; background: rgba(10, 10, 10, 0.7); color: var(--fa-white);
	font: 300 2rem/1 'Barlow', sans-serif; cursor: pointer;
}
.float-at-lightbox button:hover, .float-at-lightbox button:focus-visible { box-shadow: 0 0 24px rgba(224, 36, 44, 0.5); outline: none; }
.float-at-lb-zu { top: 0.5rem; right: 0.75rem; }
.float-at-lb-zurueck, .float-at-lb-weiter { top: 50%; transform: translateY(-50%); }
.float-at-lb-zurueck { left: 0.75rem; }
.float-at-lb-weiter { right: 0.75rem; }
.float-at-lb-einzeln .float-at-lb-zurueck, .float-at-lb-einzeln .float-at-lb-weiter { display: none; }
@media (max-width: 600px) {
	.float-at-galerie ul { grid-template-columns: repeat(2, 1fr); gap: 0.5rem; }
	.float-at-galerie figcaption { padding: 1.5rem 0.6rem 0.5rem; font-size: 0.75rem; letter-spacing: 0.08em; -webkit-line-clamp: 2; }
	.float-at-play { top: 0.4rem; right: 0.4rem; width: 2rem; height: 2rem; }
	/* auf dem Handy die Pfeile unten, damit sie nicht über dem Bild liegen; Wischen geht auch */
	.float-at-lb-zurueck, .float-at-lb-weiter { top: auto; bottom: 0.75rem; transform: none; }
	.float-at-lightbox { padding-bottom: 4.5rem; }
}

/* ---- Community: Menü, Formulare, Karten ---- */
.float-at-menu { display: flex; flex-wrap: wrap; align-items: center; gap: 0.2rem 1.2rem; margin: 0 0 1.5rem; padding: 0.5rem 0; border-bottom: 1px solid var(--fa-line); }
.float-at-menu a, .float-at-menu button {
	padding: 0.6rem 0.2rem; min-height: 44px; background: none; border: 0; border-bottom: 2px solid transparent; color: var(--fa-white); cursor: pointer;
	font: inherit; font-family: 'Barlow Condensed', 'Barlow', sans-serif; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; text-decoration: none;
}
.float-at-menu a:hover, .float-at-menu button:hover, .float-at-menu a[aria-current] { color: var(--fa-white); border-bottom-color: var(--fa-red); }
.float-at-menu form { margin: 0 0 0 auto; }
.float-at-gate { padding: 1.5rem; border: 1px solid var(--fa-line); border-radius: var(--fa-radius); text-align: center; }
.float-at-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 2rem; }
.float-at-form input[type="password"], .float-at-form input[type="datetime-local"], .float-at-form select {
	width: 100%; box-sizing: border-box; padding: 0.7rem 0.8rem; border: 1px solid var(--fa-line); border-radius: 10px; font: inherit; font-size: 1rem; background: #151515; color: var(--fa-white);
}
.float-at-form { margin-bottom: 1rem; }
.float-at-new { margin: 0 0 1.5rem; }
.float-at-new summary { display: inline-flex; list-style: none; }
.float-at-new summary::-webkit-details-marker { display: none; }
.float-at-new[open] summary { margin-bottom: 1rem; }
.float-at-inline { display: inline-block; margin: 0.4rem 0.6rem 0 0; }
.float-at-link { background: none; border: 0; color: var(--fa-grey); cursor: pointer; font: inherit; text-decoration: underline; padding: 0.6rem 0; }
.float-at-small { color: var(--fa-grey); font-size: 0.9rem; }
.float-at-plain { padding-left: 1.2rem; }
.float-at-news { display: grid; gap: 1rem; }
@media (max-width: 600px) {
	.float-at-menu form { margin-left: 0; }
	.float-at-inline .float-at-btn { width: 100%; }
}

@media (max-width: 480px) {
	.float-at-tagline { gap: 0.5em; font-size: 1.25rem; letter-spacing: 0.14em; text-indent: 0.14em; }
}
@media (max-width: 560px) {
	.float-at-features { grid-template-columns: repeat(2, 1fr); row-gap: 1.8rem; }
	.float-at-feature:nth-child(3) { border-left: none; }
}
@media (prefers-reduced-motion: no-preference) {
	.float-at-rise { opacity: 0; transform: translateY(18px); animation: float-at-rise 0.7s ease forwards; }
	.float-at-rise-2 { animation-delay: 0.2s; }
	.float-at-rise-3 { animation-delay: 0.35s; }
	.float-at-rise-4 { animation-delay: 0.5s; }
	.float-at-rise-5 { animation-delay: 0.65s; }
	@keyframes float-at-rise { to { opacity: 1; transform: none; } }
}

/* ---- Abschnitte, Kennzahlen, Fahrten (includes/fahrten.php) ---- */
.float-at-abschnitt { margin: clamp(2.5rem, 7vw, 4.5rem) auto; }
.float-at-abschnitt > .float-at-kicker { margin-top: 0; }
.float-at-kacheln { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 170px), 1fr)); gap: 1rem; margin: 0 0 2rem; }
.float-at-kachel { margin: 0; padding: 1.2rem 1rem; border: 1px solid var(--fa-line); border-radius: var(--fa-radius); background: var(--fa-card); text-align: center; }
.float-at-kachel dt { color: var(--fa-grey); font-size: 0.75rem; letter-spacing: 0.18em; text-transform: uppercase; }
.float-at-kachel dd { margin: 0.35rem 0 0; }
.float-at-zahl { display: block; color: var(--fa-white); font-family: 'Barlow Condensed', 'Barlow', sans-serif; font-weight: 700; font-size: clamp(2rem, 6vw, 2.8rem); line-height: 1.1; font-variant-numeric: tabular-nums; }
.float-at-kachel small { color: var(--fa-red); font-size: 0.75rem; letter-spacing: 0.12em; text-transform: uppercase; }

.float-at-fahrten { grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); }
.float-at-werte { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 0.6rem 1rem; margin: 0.8rem 0; }
.float-at-werte div { margin: 0; }
.float-at-werte dt { color: var(--fa-grey); font-size: 0.75rem; letter-spacing: 0.12em; text-transform: uppercase; }
.float-at-werte dd { margin: 0.1rem 0 0; color: var(--fa-white); font-weight: 600; font-variant-numeric: tabular-nums; }

.float-at-rangliste { display: grid; gap: 0.6rem; margin: 0; padding: 0; list-style: none; counter-reset: rang; }
.float-at-rangliste li {
	display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.3rem 1.2rem; padding: 0.9rem 1.1rem 0.9rem 3.4rem; position: relative;
	border: 1px solid var(--fa-line); border-radius: var(--fa-radius); background: var(--fa-card); counter-increment: rang; color: #cfcfcf;
}
.float-at-rangliste li::before { content: counter(rang); position: absolute; left: 1rem; top: 50%; transform: translateY(-50%); color: var(--fa-red); font-family: 'Barlow Condensed', 'Barlow', sans-serif; font-size: 1.6rem; font-weight: 700; }
.float-at-rangliste strong { flex: 1 1 10rem; color: var(--fa-white); font-family: 'Barlow Condensed', 'Barlow', sans-serif; font-size: 1.15rem; letter-spacing: 0.06em; text-transform: uppercase; }
.float-at-rangliste span { font-variant-numeric: tabular-nums; }

.float-at-upload { margin: 2rem 0; }
.float-at-upload .float-at-form { max-width: 760px; padding: 1.2rem; border: 1px solid var(--fa-line); border-radius: var(--fa-radius); background: var(--fa-card); }
.float-at-form input[type="file"] { width: 100%; box-sizing: border-box; padding: 0.9rem; border: 1px dashed var(--fa-red); border-radius: 10px; background: #151515; color: var(--fa-white); font: inherit; }
.float-at-vorschau { display: grid; gap: 0.6rem; margin: 0.5rem 0 1rem; }
.float-at-vorschau-zeile { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 0.3rem 0.8rem; padding: 0.7rem 0.8rem; border: 1px solid var(--fa-line); border-radius: 10px; }
.float-at-vorschau-zeile input[type="checkbox"] { width: 22px; height: 22px; accent-color: var(--fa-red); }
.float-at-vorschau-zeile input[type="text"] { width: 100%; min-width: 0; box-sizing: border-box; padding: 0.55rem 0.7rem; border: 1px solid var(--fa-line); border-radius: 8px; background: #151515; color: var(--fa-white); font: inherit; }
.float-at-vorschau-zeile .float-at-small { grid-column: 2; }
.float-at-vorschau-zeile input[type="datetime-local"] { grid-column: 2; justify-self: start; max-width: 100%; min-height: 44px; box-sizing: border-box; padding: 0.4rem 0.7rem; border: 1px solid var(--fa-red); border-radius: 8px; background: #151515; color: var(--fa-white); font: inherit; color-scheme: dark; } /* Float Control: Beginn geschätzt */
.float-at-btn:disabled { opacity: 0.45; cursor: not-allowed; transform: none; }

/* Treffpunkte: Karte und Liste nebeneinander, die Karte bleibt beim Scrollen stehen */
.float-at-split { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 1.5rem; align-items: start; }
.float-at-split-karte { position: sticky; top: 1rem; }
.float-at-split-liste { grid-template-columns: 1fr; }
@media (max-width: 900px) {
	.float-at-split { grid-template-columns: 1fr; }
	.float-at-split-karte { position: static; }
	.float-at-split-karte .float-at-map { height: min(var(--fa-karte-h, 480px), 55vh); }
}

/* Einblenden beim Scrollen (assets/seite.js) */
.float-at-js .float-at-reveal { opacity: 0; transform: translateY(16px); transition: opacity 0.6s ease, transform 0.6s ease; }
.float-at-js .float-at-reveal.ist-sichtbar { opacity: 1; transform: none; }

/* Handy: größere Tippflächen, Formulare über die volle Breite */
@media (max-width: 600px) {
	.float-at-btn { width: 100%; padding: 1rem 1.2rem; }
	.float-at-actions { flex-direction: column; }
	.float-at-card { padding: 1rem; }
	.float-at-kacheln { grid-template-columns: repeat(2, 1fr); gap: 0.6rem; }
	.float-at-kachel { padding: 0.9rem 0.5rem; }
	.float-at-rangliste li { padding-left: 2.8rem; }
	.float-at-rangliste li::before { left: 0.8rem; }
	.float-at-form input, .float-at-form select, .float-at-form textarea { font-size: 16px; } /* iOS zoomt sonst hinein */
}

/* ---- Impressum und Datenschutz (includes/rechtliches.php) ---- */
.float-at-recht { max-width: 760px; color: #cfcfcf; line-height: 1.7; }
.float-at-recht h2 { margin: 2.2rem 0 0.6rem; color: var(--fa-white); font-size: clamp(1.15rem, 4vw, 1.4rem); letter-spacing: 0.08em; }
.float-at-recht code { color: var(--fa-white); font-size: 0.9em; }
.float-at-impressum { display: grid; gap: 0; margin: 1.5rem 0; border-top: 1px solid var(--fa-line); }
.float-at-impressum div { display: grid; grid-template-columns: minmax(0, 15rem) minmax(0, 1fr); gap: 0.2rem 1.5rem; padding: 0.7rem 0; border-bottom: 1px solid var(--fa-line); }
.float-at-impressum dt { color: var(--fa-grey); font-size: 0.8rem; letter-spacing: 0.12em; text-transform: uppercase; padding-top: 0.15rem; }
.float-at-impressum dd { margin: 0; color: var(--fa-white); overflow-wrap: anywhere; }
@media (max-width: 600px) { .float-at-impressum div { grid-template-columns: 1fr; } }

/* ---- Tabellen (Boards im Vergleich, Fahrten vergleichen): am Handy seitlich wischen ---- */
.float-at-tabelle-rahmen { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--fa-line); border-radius: var(--fa-radius); }
.float-at-tabelle { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.float-at-tabelle :is(th, td) { padding: 0.7rem 0.9rem; border-bottom: 1px solid var(--fa-line); text-align: left; white-space: nowrap; }
.float-at-tabelle thead th { color: var(--fa-grey); font-size: 0.72rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; }
.float-at-tabelle tbody th { color: var(--fa-white); font-weight: 600; }
.float-at-tabelle tbody tr:last-child :is(th, td) { border-bottom: 0; }
.float-at-tabelle a { text-decoration: none; }
.float-at-bestwert { color: var(--fa-white); font-weight: 700; background: rgba(224, 36, 44, 0.16); }
.float-at-vergleich { margin: 0 0 1.5rem; padding: 1rem; border: 1px solid var(--fa-red); border-radius: var(--fa-radius); background: rgba(224, 36, 44, 0.05); }
.float-at-vergleich .float-at-kicker { margin: 0 0 0.8rem; justify-content: flex-start; }
.float-at-vergleich-wahl { cursor: pointer; }
.float-at-vergleich-wahl input { width: 20px; height: 20px; accent-color: var(--fa-red); vertical-align: -4px; margin-right: 0.4rem; }

/* ---- Boards ---- */
.float-at-boards { grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); }
.float-at-configs { display: grid; gap: 0.5rem; margin: 0.8rem 0; }
.float-at-config { padding: 0.6rem 0.8rem; border: 1px solid var(--fa-line); border-radius: 10px; }
.float-at-config summary { cursor: pointer; overflow-wrap: anywhere; }
.float-at-upload .float-at-cols { gap: 0 1.5rem; }

/* ---- Reiseberichte ---- */
.float-at-sprung ul { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0 0 2rem; padding: 0; list-style: none; }
.float-at-sprung a { display: inline-block; padding: 0.5rem 0.9rem; border: 1px solid var(--fa-line); border-radius: 999px; font-size: 0.85rem; text-decoration: none; }
.float-at-sprung a:hover { border-color: var(--fa-red); }
.float-at-bericht { margin: 0 0 clamp(3rem, 8vw, 5rem); scroll-margin-top: 1.5rem; }
.float-at-bericht-bild { aspect-ratio: 21 / 9; border-radius: var(--fa-radius); background: center / cover no-repeat #151515; }
.float-at-bericht-text { max-width: 760px; margin: 1.5rem auto 0; color: #d6d6d6; font-size: 1.05rem; line-height: 1.75; }
.float-at-bericht-text h2 { margin: 0.3rem 0 0.4rem; color: var(--fa-white); font-size: clamp(1.6rem, 5vw, 2.4rem); line-height: 1.15; }
.float-at-lead-klein { margin: 0 0 1.2rem; color: var(--fa-white); font-size: 1.15rem; font-weight: 600; }
.float-at-bericht-werte { margin: 1.5rem 0; padding: 1rem; border: 1px solid var(--fa-line); border-radius: var(--fa-radius); background: var(--fa-card); }
.float-at-bericht .float-at-map { margin-top: 1rem; }
.float-at-bilder { max-width: 1200px; margin: 1.5rem auto 0; }
.float-at-bilder ul { grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr)); gap: 0.6rem; }
.float-at-bilder-klein ul { grid-template-columns: repeat(auto-fill, minmax(min(100%, 150px), 1fr)); }
.float-at-bericht-links { display: flex; flex-wrap: wrap; gap: 0.8rem; margin: 1.2rem 0 0; }
.float-at-bericht > .float-at-bericht-links { justify-content: center; }

/* Vorschau auf der Startseite */
.float-at-teaser { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 1rem; margin: 0; padding: 0; list-style: none; }
.float-at-teaser a { display: block; height: 100%; overflow: hidden; border: 1px solid var(--fa-line); border-radius: var(--fa-radius); background: var(--fa-card); color: #cfcfcf; text-decoration: none; transition: border-color 0.25s ease, transform 0.25s ease; }
.float-at-teaser a:hover, .float-at-teaser a:focus-visible { border-color: var(--fa-red); transform: translateY(-3px); color: #cfcfcf; }
.float-at-teaser-bild { display: block; aspect-ratio: 16 / 9; background: center / cover no-repeat #151515; }
.float-at-teaser-karte { background: radial-gradient(circle at 30% 40%, rgba(224, 36, 44, 0.35), transparent 55%), linear-gradient(135deg, #1c1c1c, #0e0e0e); }
.float-at-teaser-text { display: block; padding: 1rem 1.1rem 1.2rem; line-height: 1.5; }
.float-at-teaser-text small { display: block; color: var(--fa-red); font-weight: 600; letter-spacing: 0.08em; }
.float-at-teaser-text strong { display: block; margin: 0.3rem 0; color: var(--fa-white); font-family: 'Barlow Condensed', 'Barlow', sans-serif; font-size: 1.3rem; letter-spacing: 0.04em; line-height: 1.2; }

/* ---- News ---- */
.float-at-news-raster { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 1rem; }
.float-at-news-karte { overflow: hidden; }
.float-at-news-raster .float-at-news-karte { padding-top: 0; }
.float-at-news-bild { aspect-ratio: 16 / 9; margin: 0 -1.25rem 1rem; background: center / cover no-repeat #151515; }
.float-at-news-offiziell .float-at-news-karte h3 { font-size: 1.4rem; }
.float-at-punkte { margin: 0.5rem 0 1rem; padding-left: 1.2rem; color: #cfcfcf; }
.float-at-punkte li { margin: 0.35rem 0; }
.float-at-punkte li::marker { color: var(--fa-red); }
/* Text aus dem visuellen Editor (News, Berichte, Über uns – includes/inhalte.php): Listen, Bilder, Bildunterschriften, Videos */
.float-at-inhalt :is(ul, ol) { margin: 0.5rem 0 1rem; padding-left: 1.2rem; color: #cfcfcf; }
.float-at-inhalt li { margin: 0.35rem 0; }
.float-at-inhalt ul li::marker { color: var(--fa-red); }
.float-at-inhalt a { color: var(--fa-white); text-decoration: underline; text-decoration-color: var(--fa-red); text-underline-offset: 3px; }
.float-at-inhalt :is(img, video, iframe) { max-width: 100%; height: auto; border-radius: 10px; }
.float-at-inhalt iframe { width: 100%; aspect-ratio: 16 / 9; height: auto; border: 0; }
.float-at-inhalt .wp-caption { max-width: 100% !important; margin: 1rem 0; }
.float-at-inhalt .wp-caption-text { margin: 0.4rem 0 0; color: var(--fa-grey); font-size: 0.85rem; }
.float-at-inhalt :is(.alignleft, .alignright) { max-width: 50%; }
.float-at-inhalt .alignleft { float: left; margin: 0.3rem 1rem 0.6rem 0; }
.float-at-inhalt .alignright { float: right; margin: 0.3rem 0 0.6rem 1rem; }
.float-at-inhalt .aligncenter { display: block; margin: 1rem auto; }
.float-at-inhalt::after { content: ''; display: block; clear: both; }
.float-at-inhalt blockquote { margin: 1rem 0; padding: 0.2rem 0 0.2rem 1rem; border-left: 3px solid var(--fa-red); color: #d6d6d6; }
.float-at-news-bild-gross { margin-top: 0.4rem; border-radius: 0; }
/* Blöcke aus dem Block-Editor (News, Berichte, Seiten) im Design der Website – auf der Seite und im Editor (includes/bausteine.php) */
:is(.float-at-inhalt, .editor-styles-wrapper) .wp-block-columns { gap: clamp(1rem, 3vw, 2rem); margin: 1.2rem 0; }
:is(.float-at-inhalt, .editor-styles-wrapper) .wp-block-media-text { gap: 0; margin: 1.2rem 0; }
:is(.float-at-inhalt, .editor-styles-wrapper) .wp-block-media-text__media img { border-radius: 10px; }
:is(.float-at-inhalt, .editor-styles-wrapper) .wp-block-media-text__content { padding: 0 0 0 clamp(1rem, 3vw, 2rem); }
:is(.float-at-inhalt, .editor-styles-wrapper) .wp-block-media-text.has-media-on-the-right .wp-block-media-text__content { padding: 0 clamp(1rem, 3vw, 2rem) 0 0; }
:is(.float-at-inhalt, .editor-styles-wrapper) .wp-block-gallery { gap: 0.5rem; margin: 1.2rem 0; }
:is(.float-at-inhalt, .editor-styles-wrapper) .wp-block-gallery img { border-radius: 8px; }
:is(.float-at-inhalt, .editor-styles-wrapper) .wp-block-image img { border-radius: 10px; }
:is(.float-at-inhalt, .editor-styles-wrapper) .wp-block-image figcaption, :is(.float-at-inhalt, .editor-styles-wrapper) .wp-element-caption { color: var(--fa-grey); font-size: 0.85rem; }
:is(.float-at-inhalt, .editor-styles-wrapper) .wp-block-quote { margin: 1.2rem 0; padding: 0.2rem 0 0.2rem 1rem; border-left: 3px solid var(--fa-red); color: #d6d6d6; font-size: 1.1em; }
:is(.float-at-inhalt, .editor-styles-wrapper) .wp-block-separator { border: 0; border-top: 1px solid var(--fa-line); margin: 1.6rem 0; opacity: 1; }
:is(.float-at-inhalt, .editor-styles-wrapper) .wp-block-cover { border-radius: 14px; overflow: hidden; }
:is(.float-at-inhalt, .editor-styles-wrapper, body.float-at-design) .wp-block-button__link {
	padding: 0.8rem 1.4rem; border: 1.5px solid var(--fa-red); border-radius: 18px; background: transparent; color: var(--fa-white);
	font-family: 'Barlow Condensed', 'Barlow', sans-serif; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; text-decoration: none;
}
:is(.float-at-inhalt, .editor-styles-wrapper, body.float-at-design) .wp-block-button__link:hover { background: rgba(224, 36, 44, 0.06); color: var(--fa-white); }
.float-at-inhalt a.float-at-btn { text-decoration: none; }
@media (max-width: 600px) {
	.float-at-inhalt .wp-block-media-text__content { padding: 1rem 0 0 !important; }
}

/* ---- Rennkalender ---- */
.float-at-rennen { display: grid; gap: 0.8rem; margin: 2rem 0 1rem; padding: 0; list-style: none; }
.float-at-rennen .float-at-card { position: relative; padding-left: 1.6rem; }
.float-at-rennen .float-at-card::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; border-radius: var(--fa-radius) 0 0 var(--fa-radius); background: var(--fa-line); }
.float-at-rennen-kommt .float-at-card::before, .float-at-rennen-laeuft .float-at-card::before { background: var(--fa-red); }
.float-at-rennen-finale .float-at-card { border-color: var(--fa-red); box-shadow: 0 0 24px rgba(224, 36, 44, 0.2); }
.float-at-rennen-vorbei .float-at-card { opacity: 0.85; }
.float-at-rennen h3 { margin: 0.2rem 0; }
.float-at-marke { display: inline-block; padding: 0.05rem 0.5rem; border: 1px solid var(--fa-line); border-radius: 999px; color: var(--fa-grey); font-size: 0.75rem; letter-spacing: 0.08em; text-transform: uppercase; }
.float-at-marke-eol { border-color: var(--fa-red); color: var(--fa-white); }
.float-at-rennen-zeile { display: flex; flex-wrap: wrap; align-items: center; gap: 0.3rem 0.6rem; }
.float-at-rennen-laeuft .float-at-rennen-zeile > .float-at-marke:nth-child(2) { background: var(--fa-red); color: #fff; border-color: var(--fa-red); }

@media (max-width: 600px) {
	.float-at-bericht-bild { aspect-ratio: 4 / 3; }
	.float-at-bericht-text { font-size: 1rem; }
	.float-at-tabelle :is(th, td) { padding: 0.55rem 0.7rem; }
	.float-at-news-bild { margin: 0 -1rem 1rem; }
}

/* ---- Bestenliste, Punkte, Ligen (includes/bestenliste.php) ---- */
.float-at-reiter { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0 0 1.5rem; }
.float-at-reiter a { display: inline-flex; align-items: center; min-height: 44px; box-sizing: border-box; padding: 0.4rem 1.1rem; border: 1px solid var(--fa-line); border-radius: 999px; font-family: 'Barlow Condensed', 'Barlow', sans-serif; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; text-decoration: none; }
.float-at-reiter a:hover { border-color: var(--fa-red); }
.float-at-reiter a[aria-current] { background: var(--fa-red); border-color: var(--fa-red); color: #fff; }
.float-at-rang .float-at-platz { color: var(--fa-red); font-family: 'Barlow Condensed', 'Barlow', sans-serif; font-size: 1.3rem; font-weight: 700; }
.float-at-rang tbody th small { display: block; color: var(--fa-grey); font-size: 0.78rem; font-weight: 400; }
.float-at-tabelle .float-at-zahl-sp { text-align: right; }
.float-at-tabelle td small { display: block; color: var(--fa-grey); font-size: 0.75rem; }
.float-at-tabelle tr.float-at-ich :is(th, td) { background: rgba(224, 36, 44, 0.14); }
.float-at-tabelle tr.float-at-freund :is(th, td) { background: rgba(255, 255, 255, 0.05); }
.float-at-leer { color: #555; }
.float-at-tabelle abbr { text-decoration: none; cursor: help; }
.float-at-mehr { margin: 1rem 0; }
.float-at-mehr summary { display: inline-flex; list-style: none; margin-bottom: 1rem; }
.float-at-mehr summary::-webkit-details-marker { display: none; }
.float-at-abzeichen { display: inline-block; margin-right: 0.15rem; font-size: 1.15rem; line-height: 1; }
.float-at-abzeichen-zeile { white-space: normal; }
.float-at-abzeichen-liste { display: grid; gap: 0.6rem; margin: 0; padding: 0; list-style: none; }
.float-at-abzeichen-liste li { display: grid; grid-template-columns: 2rem 1fr; gap: 0 0.6rem; align-items: center; }
.float-at-abzeichen-liste .float-at-abzeichen { grid-row: span 2; font-size: 1.5rem; text-align: center; }
.float-at-abzeichen-liste small { color: var(--fa-grey); }
.float-at-regeln .float-at-tabelle :is(th, td) { white-space: normal; }
.float-at-meine-punkte, .float-at-unsere { margin: 0 0 1.5rem; border-color: var(--fa-red); }
.float-at-meine-punkte .float-at-kicker, .float-at-unsere .float-at-kicker { justify-content: flex-start; margin: 0 0 0.6rem; }
.float-at-punktzahl { margin: 0; color: #cfcfcf; font-size: 1.1rem; }
.float-at-punktzahl strong { color: var(--fa-white); font-family: 'Barlow Condensed', 'Barlow', sans-serif; font-size: 2.6rem; line-height: 1; }
.float-at-balken { height: 8px; margin: 0.8rem 0 0.3rem; overflow: hidden; border-radius: 999px; background: rgba(255, 255, 255, 0.08); }
.float-at-balken span { display: block; height: 100%; border-radius: inherit; background: var(--fa-red); }
.float-at-punkte-teile { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 0.3rem 1.5rem; margin: 0.8rem 0; padding: 0; list-style: none; }
.float-at-punkte-teile li { display: flex; justify-content: space-between; gap: 1rem; padding: 0.3rem 0; border-bottom: 1px solid var(--fa-line); color: #cfcfcf; font-size: 0.9rem; }
.float-at-punkte-teile strong { color: var(--fa-white); font-variant-numeric: tabular-nums; }
.float-at-trails { grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); }
.float-at-zeiten { margin: 0.6rem 0 0; padding: 0; list-style: none; }
.float-at-zeiten li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.2rem 0.6rem; padding: 0.4rem 0; border-bottom: 1px solid var(--fa-line); }
.float-at-zeiten li:last-child { border-bottom: 0; }
.float-at-zeiten .float-at-platz { min-width: 1.6rem; color: var(--fa-red); font-weight: 700; }
.float-at-zeiten .float-at-name { flex: 1 1 auto; color: var(--fa-white); }
.float-at-zeiten .float-at-zeit { font-variant-numeric: tabular-nums; }
.float-at-zeiten small { color: var(--fa-grey); }
.float-at-zeiten li.float-at-ich .float-at-name { font-weight: 700; }

/* ---- Gründer (Startseite) ---- */
.float-at-gruender-liste { grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); }
.float-at-gruender-liste .float-at-card { position: relative; padding-top: 1.4rem; }
.float-at-initiale { display: inline-flex; align-items: center; justify-content: center; width: 3.2rem; height: 3.2rem; margin-bottom: 0.6rem; border: 1.5px solid var(--fa-red); border-radius: 50%; box-shadow: 0 0 24px rgba(224, 36, 44, 0.28); color: var(--fa-white); font-family: 'Barlow Condensed', 'Barlow', sans-serif; font-size: 1.5rem; font-weight: 700; }
.float-at-gruender-liste h3 { margin: 0; }

/* ---- Freunde, Nachrichten, Hinweise (includes/freunde.php, includes/nachrichten.php) ---- */
.float-at-knoepfe { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 0.8rem; margin: 0.8rem 0 0; }
.float-at-knoepfe .float-at-inline { margin: 0; }
.float-at-marke-freund { border-color: var(--fa-red); color: var(--fa-white); }
.float-at-mitglied .float-at-abzeichen-zeile { margin: 0.4rem 0 0; }
.float-at-form input[type="search"], .float-at-form textarea { width: 100%; box-sizing: border-box; padding: 0.7rem 0.8rem; border: 1px solid var(--fa-line); border-radius: 10px; font: inherit; font-size: 1rem; background: #151515; color: var(--fa-white); }
.float-at-suche { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 0 0.8rem; max-width: 560px; }
.float-at-suche p:first-child { flex: 1 1 14rem; }
.float-at-hinweise { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; border: 1px solid var(--fa-line); border-radius: var(--fa-radius); overflow: hidden; }
.float-at-hinweise li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.2rem 1rem; padding: 0.4rem 0.4rem 0.4rem 1rem; border-bottom: 1px solid var(--fa-line); }
.float-at-hinweise li:last-child { border-bottom: 0; }
.float-at-hinweise li.float-at-neu { background: rgba(224, 36, 44, 0.1); box-shadow: inset 3px 0 0 var(--fa-red); }
.float-at-hinweise a { flex: 1 1 14rem; padding: 0.35rem 0; text-decoration: none; }
.float-at-hinweise small { color: var(--fa-grey); }
.float-at-hinweis-rechts { display: flex; align-items: center; gap: 0.3rem; margin-left: auto; }
.float-at-hinweise .float-at-inline, .float-at-hinweise-fuss .float-at-inline { margin: 0; }
.float-at-hinweis-weg { display: inline-flex; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem; padding: 0; border-radius: 50%; font-size: 1.6rem; line-height: 1; text-decoration: none; }
.float-at-hinweis-weg:hover, .float-at-hinweis-weg:focus-visible { background: rgba(255, 255, 255, 0.08); color: var(--fa-white); }
.float-at-hinweise-fuss { display: flex; justify-content: flex-end; margin-top: 0.2rem; }
.float-at-postfach { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 1.5rem; align-items: start; }
.float-at-gespraeche .float-at-kicker { justify-content: flex-start; letter-spacing: 0.25em; text-indent: 0; } /* schmale Spalte neben der Unterhaltung */
.float-at-gespraeche .float-at-kicker::before { display: none; }
.float-at-gespraech-liste { display: grid; gap: 0.4rem; margin: 0; padding: 0; list-style: none; }
.float-at-gespraech-liste a { display: grid; grid-template-columns: 1fr auto; gap: 0.15rem 0.6rem; padding: 0.75rem 0.9rem; border: 1px solid var(--fa-line); border-radius: 12px; background: var(--fa-card); color: #cfcfcf; text-decoration: none; }
.float-at-gespraech-liste a:hover, .float-at-gespraech-liste [aria-current] a { border-color: var(--fa-red); color: #cfcfcf; }
.float-at-gespraech-liste strong { color: var(--fa-white); }
.float-at-gespraech-liste .float-at-badge { justify-self: end; font-size: 0.8rem; }
.float-at-vorschau-text { grid-column: 1 / -1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 0.9rem; }
.float-at-gespraech-liste small { grid-column: 1 / -1; color: var(--fa-grey); font-size: 0.78rem; }
.float-at-chat { padding: 1rem; border: 1px solid var(--fa-line); border-radius: var(--fa-radius); background: var(--fa-card); }
.float-at-chat-kopf { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.3rem 1rem; padding-bottom: 0.6rem; border-bottom: 1px solid var(--fa-line); }
.float-at-chat-kopf h3 { flex: 1 1 auto; margin: 0; }
.float-at-chat-kopf .float-at-zurueck { display: none; } /* nur im Chat: der Link zurück zur Liste erscheint erst am Handy */
.float-at-verlauf { display: flex; flex-direction: column; gap: 0.6rem; max-height: 60vh; margin: 1rem 0; padding: 0 0.2rem; overflow-y: auto; list-style: none; overscroll-behavior: contain; }
.float-at-verlauf li { max-width: min(85%, 34rem); padding: 0.6rem 0.9rem; border-radius: 16px; line-height: 1.5; overflow-wrap: anywhere; }
.float-at-verlauf p { margin: 0; }
.float-at-verlauf small { display: inline-block; margin-top: 0.2rem; color: rgba(255, 255, 255, 0.6); font-size: 0.72rem; }
.float-at-verlauf .float-at-inline { margin: 0 0 0 0.6rem; }
.float-at-verlauf .float-at-link { padding: 0; color: rgba(255, 255, 255, 0.6); font-size: 0.72rem; }
.float-at-ihre { align-self: flex-start; background: #2a2a2a; border-bottom-left-radius: 4px; }
.float-at-meine { align-self: flex-end; background: var(--fa-red-dark); border-bottom-right-radius: 4px; color: #fff; }
.float-at-verlauf .float-at-empty { align-self: center; max-width: none; }
.float-at-chat-form { margin: 0; }
.float-at-chat-form p { margin: 0 0 0.6rem; }
.screen-reader-text:not(:focus) { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
@media (max-width: 800px) {
	.float-at-postfach { grid-template-columns: minmax(0, 1fr); }
	.float-at-postfach-offen .float-at-gespraeche { display: none; } /* am Handy: offene Unterhaltung allein, mit Link zurück */
	.float-at-postfach-offen .float-at-zurueck { display: inline-block; flex-basis: 100%; }
	.float-at-chat { padding: 0.8rem; }
	.float-at-verlauf { max-height: none; }
}

/* ---- Handy: kompakter (Kopfzeilen, Reiter, Bestenliste, Häkchen) ---- */
.float-at-nur-handy { display: none; }
.float-at-form input[type="checkbox"] { width: 20px; height: 20px; accent-color: var(--fa-red); vertical-align: -4px; }
@media (max-width: 600px) {
	.float-at-tabelle .float-at-neben { display: none; } /* Bestenliste: Platz, Fahrer, Punkte – km, Höhenmeter, Fahrten am Computer */
	.float-at-tabelle .float-at-nur-handy { display: block; margin-top: 0.25rem; }
	.float-at-rang tbody th { white-space: normal; }
}
@media (max-width: 480px) {
	.float-at-kicker { gap: 0.7rem; letter-spacing: 0.3em; text-indent: 0.3em; }
	.float-at-kicker::before, .float-at-kicker::after { flex: none; width: 24px; }
	.float-at-reiter { gap: 0.4rem; }
	.float-at-reiter a { padding: 0.35rem 0.8rem; letter-spacing: 0.06em; }
}
@media (max-width: 600px) {
	/* Knopfreihen (Mein Bereich, Freunde, Fahrer): zwei Spalten, Textlinks wie „Ablehnen“ in eigener Zeile darunter */
	.float-at-knoepfe { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.5rem; }
	.float-at-knoepfe > .float-at-inline { display: block; margin: 0; }
	.float-at-knoepfe .float-at-btn { width: 100%; height: 100%; padding: 0.85rem 0.6rem; font-size: 0.95rem; letter-spacing: 0.08em; }
	.float-at-knoepfe > .float-at-inline:has(.float-at-link) { grid-column: 1 / -1; order: 1; }
	.float-at-knoepfe > .float-at-marke { justify-self: start; align-self: center; }
}

/* ---- Events [float_events]: links Termin und Beschreibung, rechts die Anmeldung; am Handy untereinander ---- */
.float-at-form input[type="number"] {
	box-sizing: border-box; width: 100%; max-width: 8rem; min-height: 44px; padding: 0.7rem 0.8rem;
	border: 1px solid var(--fa-line); border-radius: 10px; background: #151515; color: var(--fa-white); font: inherit; font-size: 1rem;
}
.float-at-events { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
.float-at-event { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 1.5rem 2.5rem; scroll-margin-top: 6rem; }
.float-at-event-info > :last-child { margin-bottom: 0; }
.float-at-event-anmeldung { padding-left: 2.5rem; border-left: 1px solid var(--fa-line); }
.float-at-event-anmeldung h4, .float-at-event-anmeldung-seite h4 { margin: 0 0 0.8rem; font-family: 'Barlow Condensed', 'Barlow', sans-serif; letter-spacing: 0.12em; text-transform: uppercase; }
.float-at-event .float-at-form { margin: 0; }
.float-at-event .float-at-form p:last-child { margin-bottom: 0; }
.float-at-plaetze { display: inline-block; padding: 0.35rem 0.8rem; border: 1px solid var(--fa-line); border-radius: 999px; color: var(--fa-white) !important; font-size: 0.9rem; font-weight: 600; letter-spacing: 0.08em; }
.float-at-plaetze.float-at-voll { border-color: var(--fa-red); }
@media (max-width: 800px) {
	.float-at-event { grid-template-columns: minmax(0, 1fr); }
	.float-at-event-anmeldung { padding: 1.25rem 0 0; border-left: 0; border-top: 1px solid var(--fa-line); }
}

/* ---- Shop [float_shop] und Warenkorb [float_warenkorb] ---- */
.float-at-korb-link { display: flex; justify-content: flex-end; margin: 0 0 1.25rem; }
.float-at-produkt { display: flex; flex-direction: column; overflow: hidden; padding-top: 0; }
.float-at-produkt-bild { aspect-ratio: 4 / 3; margin: 0 -1.25rem 1rem; overflow: hidden; background: #151515; border-bottom: 1px solid var(--fa-line); }
.float-at-produkt-bild img { display: block; width: 100%; height: 100%; object-fit: cover; }
.float-at-produkt-platzhalter { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.6rem; background: radial-gradient(ellipse at 50% 40%, rgba(224, 36, 44, 0.12), transparent 70%), #121212; }
.float-at-produkt-platzhalter img { width: 45%; height: auto; object-fit: contain; opacity: 0.55; }
.float-at-produkt-platzhalter span { color: var(--fa-grey); font-size: 0.75rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; }
.float-at-produkt .float-at-inline { margin: auto 0 0; }
.float-at-preis { margin: 0.4rem 0 0.9rem; color: var(--fa-white) !important; font-family: 'Barlow Condensed', 'Barlow', sans-serif; font-size: 1.5rem; font-weight: 700; letter-spacing: 0.04em; }
.float-at-korb { display: grid; gap: 0.8rem; margin: 0 0 1.25rem; padding: 0; list-style: none; }
.float-at-korb li { display: grid; grid-template-columns: minmax(0, 1fr) auto auto 7rem; align-items: center; gap: 0.5rem 1.25rem; }
.float-at-korb h3, .float-at-korb p { margin: 0; }
.float-at-korb .float-at-preis { margin: 0; text-align: right; }
.float-at-korb .float-at-inline { margin: 0; }
.float-at-menge { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin: 0; max-width: none; }
.float-at-menge label { margin: 0; }
.float-at-menge input[type="number"] { width: 5rem; }
.float-at-menge .float-at-btn { min-height: 44px; padding: 0.6rem 1rem; }
.float-at-korb .float-at-link { min-height: 44px; }
.float-at-summe { display: flex; justify-content: flex-end; align-items: baseline; gap: 1rem; margin: 0 0 1.5rem; font-family: 'Barlow Condensed', 'Barlow', sans-serif; font-size: 1.4rem; letter-spacing: 0.08em; text-transform: uppercase; }
.float-at-summe strong { color: var(--fa-white); font-size: 1.8rem; }
.float-at-kasse { max-width: 560px; margin-left: auto; }
.float-at-kasse .float-at-link { margin-left: 0.5rem; }
@media (max-width: 600px) {
	.float-at-korb-link { justify-content: stretch; }
	.float-at-korb-link .float-at-btn, .float-at-produkt .float-at-inline, .float-at-produkt .float-at-inline .float-at-btn { width: 100%; }
	.float-at-korb li { grid-template-columns: minmax(0, 1fr); }
	.float-at-korb .float-at-preis { text-align: left; }
	.float-at-kasse .float-at-inline { display: block; margin: 0 0 0.5rem; }
	.float-at-kasse .float-at-link { margin-left: 0; }
}

/* ---- Events: Kopf, Ergebnis, Strecke, Starter, Zeitläufe mit Stoppuhr, Heats und Bracket ---- */
.float-at-form input[type="date"] {
	box-sizing: border-box; width: 100%; min-height: 44px; padding: 0.6rem 0.8rem;
	border: 1px solid var(--fa-line); border-radius: 10px; background: #151515; color: var(--fa-white); font: inherit; color-scheme: dark;
}
.float-at-form h4 { margin: 1.5rem 0 0.6rem; }
.float-at-felder-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1rem; }
.float-at-zurueck { margin: 0 0 1rem; }
.float-at-event-anmeldung-seite .float-at-plaetze { margin-bottom: 1.25rem; }
p + .float-at-reiter { margin-top: 1.5rem; }
.float-at-zurueck a { display: inline-flex; align-items: center; min-height: 44px; text-decoration: none; }
.float-at-event-kopf h2 { margin: 0.2rem 0 0.4rem; }
.float-at-marke-jetzt { background: var(--fa-red); border-color: var(--fa-red); color: #fff; }
.float-at-events h3 a { text-decoration: none; }

.float-at-ergebnis { display: grid; gap: 0.5rem; margin: 0; padding: 0; list-style: none; }
.float-at-ergebnis li { display: flex; align-items: center; gap: 0.8rem; padding: 0.7rem 1rem; border: 1px solid var(--fa-line); border-radius: var(--fa-radius); background: var(--fa-card); }
.float-at-ergebnis .float-at-platz { min-width: 2rem; color: var(--fa-red); font-family: 'Barlow Condensed', 'Barlow', sans-serif; font-size: 1.3rem; font-weight: 700; text-align: center; }
.float-at-ergebnis strong { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.float-at-ergebnis small, .float-at-starter .float-at-nr, .float-at-heat-liste small { color: var(--fa-grey); font-size: 0.8rem; }
.float-at-ergebnis .float-at-podest { border-color: rgba(224, 36, 44, 0.6); }
.float-at-ergebnis .float-at-podest:first-child { box-shadow: 0 0 24px rgba(224, 36, 44, 0.2); }

.float-at-strecken { display: grid; gap: 0.4rem; margin: 1rem 0 0; padding: 0; list-style: none; }
.float-at-strecken li { display: flex; flex-wrap: wrap; align-items: center; gap: 0.2rem 1rem; }
.float-at-strecken li span { color: var(--fa-grey); font-variant-numeric: tabular-nums; }
.float-at-strecken .float-at-inline { margin: 0; }

.float-at-starter { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0 0 1rem; padding: 0; list-style: none; }
.float-at-starter li { display: inline-flex; align-items: center; gap: 0.5rem; max-width: 100%; box-sizing: border-box; min-height: 44px; padding: 0.3rem 0.4rem 0.3rem 0.9rem; border: 1px solid var(--fa-line); border-radius: 999px; overflow-wrap: anywhere; }
.float-at-starter li.float-at-ich { border-color: var(--fa-red); background: rgba(224, 36, 44, 0.12); }
.float-at-starter li:not(:has(form)) { padding-right: 0.9rem; }
.float-at-starter .float-at-inline { margin: 0; }
.float-at-starter .float-at-link { min-width: 36px; min-height: 36px; padding: 0; text-decoration: none; }
.float-at-zeile { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 0 1rem; max-width: none; }
.float-at-zeile p { margin: 0 0 0.6rem; }

.float-at-zeiten-tabelle td { vertical-align: middle; }
.float-at-zeiten-tabelle .float-at-beste { color: var(--fa-white); font-weight: 600; }
.float-at-zeit-feld { display: inline-flex; align-items: center; gap: 0.3rem; }
.float-at-zeit-feld input, .float-at-heat-eingabe input { box-sizing: border-box; width: 6.2em; min-height: 44px; padding: 0.4rem 0.5rem; border: 1px solid var(--fa-line); border-radius: 8px; background: #151515; color: var(--fa-white); font: inherit; font-size: 16px; font-variant-numeric: tabular-nums; }
.float-at-uhr, .float-at-ziel { min-width: 44px; min-height: 44px; padding: 0 0.6rem; border: 1px solid var(--fa-line); border-radius: 8px; background: transparent; color: var(--fa-white); font: inherit; font-variant-numeric: tabular-nums; cursor: pointer; }
.float-at-uhr.laeuft, .float-at-heat-start.laeuft { border-color: var(--fa-red); background: var(--fa-red); color: #fff; }
.float-at-uhr.laeuft { min-width: 5.5em; }
.float-at-ziel:disabled { opacity: 0.4; cursor: default; }
.float-at-zeiten-form > p:last-child { margin-top: 1rem; }

.float-at-bracket { display: grid; gap: 1.5rem; }
.float-at-runde h3 { margin: 0 0 0.6rem; font-size: 1.05rem; letter-spacing: 0.12em; text-transform: uppercase; }
.float-at-heats { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 0.8rem; }
.float-at-heat h4 { margin: 0 0 0.5rem; color: var(--fa-grey); font-size: 0.8rem; letter-spacing: 0.14em; text-transform: uppercase; }
.float-at-heat-fertig { border-color: rgba(255, 255, 255, 0.24); }
.float-at-heat-liste { display: grid; gap: 0.35rem; margin: 0; padding: 0; list-style: none; }
.float-at-heat-liste li { display: flex; flex-wrap: wrap; align-items: center; gap: 0.3rem 0.6rem; min-height: 32px; padding: 0.15rem 0.4rem; border-radius: 8px; }
.float-at-heat-liste .float-at-platz { min-width: 2.2rem; color: var(--fa-grey); font-variant-numeric: tabular-nums; }
.float-at-heat-liste .float-at-name { flex: 1 1 8rem; min-width: 0; overflow-wrap: anywhere; }
.float-at-heat-liste .float-at-zeit { color: var(--fa-grey); font-variant-numeric: tabular-nums; }
.float-at-heat-liste .float-at-weiter { background: rgba(224, 36, 44, 0.12); }
.float-at-heat-liste .float-at-weiter .float-at-platz, .float-at-heat-liste .float-at-sieger .float-at-platz { color: var(--fa-red); font-weight: 700; }
.float-at-heat-liste .float-at-im-ziel { background: rgba(46, 125, 50, 0.18); }
.float-at-heat-eingabe { display: flex; gap: 0.3rem; width: 100%; }
.float-at-heat-eingabe input { flex: 1 1 auto; width: 0; min-width: 0; }
.float-at-heat-eingabe .float-at-ziel { flex: 0 0 auto; }
.float-at-heat-eingabe select { min-height: 44px; padding: 0 0.4rem; border: 1px solid var(--fa-line); border-radius: 8px; font-size: 16px; }
.float-at-heat-uhr { display: flex; align-items: center; gap: 0.8rem; margin: 0 0 0.6rem; }
.float-at-heat-uhr .float-at-btn { padding: 0.55rem 1.1rem; }
.float-at-uhr-anzeige { font-family: 'Barlow Condensed', 'Barlow', sans-serif; font-size: 1.6rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.float-at-heat-form > p:last-child { margin: 0.8rem 0 0; }
.float-at-heat-form .float-at-btn { width: 100%; }
.float-at-heat-form .float-at-heat-uhr .float-at-btn { width: auto; }

@media (max-width: 600px) {
	.float-at-zeiten-tabelle tbody th { white-space: normal; }
}
@media (max-width: 820px) {
	/* Zeitnehmung am Handy und Tablet: je Fahrer eine Zeile mit Platz und Name, darunter die Läufe nebeneinander */
	.float-at-zeiten-form .float-at-tabelle-rahmen { overflow: visible; }
	.float-at-zeiten-form :is(table, tbody) { display: block; }
	.float-at-zeiten-form thead { display: none; }
	.float-at-zeiten-form tr { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 0.8rem; padding: 0.7rem 0.8rem; border-bottom: 1px solid var(--fa-line); }
	.float-at-zeiten-form tr:last-child { border-bottom: 0; }
	.float-at-zeiten-form :is(th, td) { padding: 0 !important; border: 0 !important; }
	.float-at-zeiten-form tbody th { flex: 1 1 60%; }
	.float-at-zeiten-form td.float-at-platz { flex: 0 0 auto; min-width: 2rem; }
	.float-at-zeiten-form td.float-at-lauf { flex: 1 1 8.5rem; max-width: 16rem; }
	.float-at-zeiten-form .float-at-lauf .float-at-nur-handy { display: block; margin: 0 0 0.2rem; color: var(--fa-grey); font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase; }
	.float-at-zeiten-form .float-at-zeit-feld { display: flex; }
	.float-at-zeiten-form .float-at-zeit-feld input { flex: 1 1 auto; width: 0; min-width: 0; }
	.float-at-zeiten-form td.float-at-zahl-sp { flex-basis: 100%; text-align: left; }
	.float-at-zeiten-form td.float-at-zahl-sp .float-at-nur-handy { display: inline; margin: 0 0.5rem 0 0; color: var(--fa-grey); font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase; }
}
@media (max-width: 480px) {
	.float-at-felder-2 { grid-template-columns: 1fr; }
}

/* Bestzeiten je Event und Strecke (includes/bestzeiten.php): bei Rennen neben der Starterliste, darunter am Tablet und Handy */
.float-at-nebeneinander { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 2.5rem; align-items: start; }
.float-at-nebeneinander > .float-at-abschnitt { min-width: 0; margin-right: 0; margin-bottom: 0; margin-left: 0; } /* ohne auto-Rand volle Spaltenbreite */
@media (max-width: 900px) {
	.float-at-nebeneinander { grid-template-columns: 1fr; }
}
.float-at-bestzeiten h3 { margin: 1.75rem 0 0.7rem; font-size: 1.05rem; overflow-wrap: anywhere; }
.float-at-bestzeiten .float-at-kacheln { grid-template-columns: repeat(auto-fit, minmax(min(100%, 125px), 1fr)); gap: 0.6rem; margin: 0 0 1rem; }
.float-at-bestzeiten .float-at-kachel { padding: 0.9rem 0.6rem; }
.float-at-bestzeiten .float-at-zahl { font-size: clamp(1.6rem, 5vw, 2.1rem); }
.float-at-bestzeiten .float-at-kachel small { display: block; margin-top: 0.15rem; }
.float-at-bestzeit-tabelle td.float-at-platz { width: 2.5rem; color: var(--fa-red); font-weight: 700; }
.float-at-bestzeit-tabelle tbody th { white-space: normal; overflow-wrap: anywhere; }
.float-at-bestzeit-tabelle .float-at-inline { margin: 0; }
.float-at-bestzeit-tabelle .float-at-link { min-width: 44px; min-height: 44px; padding: 0; text-decoration: none; }
.float-at-bestzeiten .float-at-upload { margin: 1.5rem 0 1rem; }
.float-at-bestzeit-eigene .float-at-link { min-height: 44px; }
.float-at-bestzeit-eigene span { overflow-wrap: anywhere; }
.float-at-bestzeit-tabelle tbody th small { display: block; color: var(--fa-grey); font-size: 0.75rem; font-weight: 400; }
/* Zeitvergleich: Hinweis „Keine offizielle Wertung“, Abschnitte gegen Platz 1, gefundene Läufe beim Hochladen */
.float-at-inoffiziell { margin: 0 0 1.25rem; padding: 0.8rem 1rem; border: 1px solid var(--fa-line); border-left: 3px solid var(--fa-red); border-radius: 10px; background: var(--fa-card); font-size: 0.9rem; line-height: 1.5; }
.float-at-abschnitte { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0 0 1rem; padding: 0; list-style: none; }
.float-at-abschnitte li { display: flex; flex-direction: column; min-width: 5.5rem; padding: 0.45rem 0.7rem; border: 1px solid var(--fa-line); border-radius: 10px; font-variant-numeric: tabular-nums; }
.float-at-abschnitte span { color: var(--fa-grey); font-size: 0.75rem; }
.float-at-zeit-zeile { display: block; margin: 0; overflow-wrap: anywhere; }
@media (max-width: 600px) {
	.float-at-bestzeit-tabelle :is(th, td) { padding: 0.55rem 0.5rem; }
}

/* Anmeldung mit Konto und Startgebühr (includes/events.php, includes/zahlung.php) */
.float-at-gebuehr { margin: 0.6rem 0 1rem; font-weight: 600; }
.float-at-meine-anmeldung { margin: 1rem 0 0; padding: 1rem 1.1rem; border: 1px solid var(--fa-line); border-radius: var(--fa-radius); background: var(--fa-card); }
.float-at-meine-anmeldung > :first-child { margin-top: 0; }
.float-at-meine-anmeldung > :last-child { margin-bottom: 0; }
.float-at-meine-stand { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
.float-at-bezahlt { font-weight: 600; }
.float-at-offen { font-weight: 700; }
.float-at-offen::before { content: '●'; margin-right: 0.45rem; color: var(--fa-red); }
.float-at-zahlen .float-at-btn { margin: 0.2rem 0 0; }
.float-at-ueberweisung { margin: 1.25rem 0 0.5rem; }
.float-at-ueberweisung h4 { margin: 0 0 0.8rem; }
.float-at-ueberweisung-inhalt { display: grid; grid-template-columns: 11rem minmax(0, 1fr); gap: 1.25rem; align-items: start; }
.float-at-qr { margin: 0; }
.float-at-qr svg { display: block; width: 100%; height: auto; border-radius: 8px; background: #fff; }
.float-at-qr figcaption { margin: 0.4rem 0 0; color: var(--fa-grey); font-size: 0.8rem; text-align: center; }
.float-at-ueberweisung dl { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: baseline; gap: 0.35rem 1rem; margin: 0; }
.float-at-ueberweisung dt { color: var(--fa-grey); font-size: 0.85rem; }
.float-at-ueberweisung dd { margin: 0; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.float-at-anm-liste { margin: 0; padding: 0; list-style: none; }
.float-at-anm-liste > li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.4rem 1rem; padding: 0.8rem 0; border-bottom: 1px solid var(--fa-line); }
.float-at-anm-wer { flex: 1 1 14rem; min-width: 0; }
.float-at-anm-wer small { display: block; color: var(--fa-grey); overflow-wrap: anywhere; }
.float-at-anm-zahlung { display: flex; flex-wrap: wrap; align-items: center; gap: 0.3rem 0.8rem; }
.float-at-anm-zahlung .float-at-inline { margin: 0; }
.float-at-btn-klein { min-height: 2.75rem; padding: 0.45rem 0.9rem; font-size: 0.8rem; } /* Tippfläche mind. 44 px */
@media (max-width: 600px) {
	.float-at-ueberweisung-inhalt { grid-template-columns: 1fr; }
	.float-at-qr { max-width: 14rem; }
}

/* Boards: Karten mit Bild, Seite eines Boards, Formular nach Bereichen (includes/boards.php) */
.float-at-einleitung { max-width: 46rem; color: #cfcfcf; }
.float-at-boards { grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); margin: 1.25rem 0 0; }
.float-at-board-karte { padding: 0; overflow: hidden; }
.float-at-board-link { display: flex; flex-direction: column; height: 100%; color: inherit; text-decoration: none; }
.float-at-board-link:hover h3, .float-at-board-link:focus-visible h3 { color: var(--fa-red); }
.float-at-board-bild { aspect-ratio: 4 / 3; overflow: hidden; background: #151515; border-bottom: 1px solid var(--fa-line); }
.float-at-board-bild img { display: block; width: 100%; height: 100%; object-fit: cover; }
.float-at-board-platzhalter { display: flex; align-items: center; justify-content: center; background: radial-gradient(ellipse at 50% 40%, rgba(224, 36, 44, 0.12), transparent 70%), #121212; }
.float-at-board-platzhalter img { width: 40%; height: auto; object-fit: contain; opacity: 0.5; }
.float-at-board-text { padding: 0.9rem 1.1rem 1rem; }
.float-at-board-text p { margin: 0.3rem 0 0; }
.float-at-board-fakten { color: var(--fa-white) !important; font-size: 0.92rem; }
.float-at-board-kopf { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 1.5rem 2rem; align-items: start; }
.float-at-board-kopf h2 { margin: 0 0 0.3rem; }
.float-at-board-kopf .float-at-board-bild { border: 1px solid var(--fa-line); border-radius: var(--fa-radius); }
.float-at-board-zahlen { grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 0.9rem 1.2rem; margin-top: 1.2rem; }
.float-at-board-zahlen dd { font-size: 1.25rem; }
.float-at-board-gruppen { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 1rem; }
.float-at-board-gruppe h3 { margin-bottom: 0.4rem; font-size: 1rem; letter-spacing: 0.12em; }
.float-at-board-fahrten { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.float-at-board-fahrten li { display: grid; grid-template-columns: 7rem minmax(0, 1fr) auto; gap: 0.2rem 1rem; align-items: baseline; padding: 0.65rem 0; border-bottom: 1px solid var(--fa-line); }
.float-at-board-fahrten strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.float-at-feldgruppe { margin: 0 0 1rem; padding: 0.9rem 1rem 0.2rem; border: 1px solid var(--fa-line); border-radius: var(--fa-radius); }
.float-at-feldgruppe legend { padding: 0 0.4rem; color: var(--fa-red); font-family: 'Barlow Condensed', 'Barlow', sans-serif; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; }
.float-at-felder-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 1rem; }
@media (max-width: 820px) {
	.float-at-board-kopf { grid-template-columns: 1fr; }
	.float-at-felder-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
	.float-at-felder-3 { grid-template-columns: 1fr; }
	.float-at-board-fahrten li { grid-template-columns: minmax(0, 1fr) auto; }
	.float-at-board-fahrten li > .float-at-small { grid-column: 1 / -1; }
}

/* Übersichtlicher: Technik der Fahrten zum Aufklappen, nächste Events, Punkte, Mein Bereich als Überblick */
.float-at-technik { margin: 0.2rem 0 0.6rem; }
.float-at-technik summary { display: inline-flex; align-items: center; min-height: 44px; color: var(--fa-grey); font-size: 0.8rem; letter-spacing: 0.12em; text-transform: uppercase; cursor: pointer; }
.float-at-technik[open] summary { color: var(--fa-white); }
.float-at-events-vorschau { grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); }
.float-at-event-kurz h3 { margin: 0.2rem 0 0.3rem; }
.float-at-event-kurz h3 a { color: inherit; text-decoration: none; }
.float-at-event-kurz p { margin: 0.25rem 0; }
.float-at-event-kurz .float-at-btn { margin-top: 0.5rem; }
.float-at-punkte-details { margin: 0.8rem 0 0.4rem; }
.float-at-punkte-details summary { display: inline-flex; align-items: center; min-height: 44px; color: var(--fa-grey); cursor: pointer; }
.float-at-punkte-details[open] summary { color: var(--fa-white); }
.float-at-bereich-raster { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 1rem; margin: 1.2rem 0; }
.float-at-bereich-karte h3 { margin-bottom: 0.6rem; }
.float-at-bereich-liste { margin: 0; padding: 0; list-style: none; }
.float-at-bereich-liste li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.2rem 0.8rem; padding: 0.55rem 0; border-bottom: 1px solid var(--fa-line); }
.float-at-bereich-liste li:last-child { border-bottom: 0; }
.float-at-bereich-liste li > .float-at-small:first-child { flex: 0 0 100%; }
.float-at-bereich-liste a { color: var(--fa-white); text-decoration: none; }
.float-at-bereich-liste .float-at-btn-klein { margin-left: auto; }
.float-at-profil { margin-top: 1.5rem; }
.float-at-technik summary, .float-at-punkte-details summary { list-style: none; gap: 0.5rem; }
.float-at-technik summary::-webkit-details-marker, .float-at-punkte-details summary::-webkit-details-marker { display: none; }
.float-at-technik summary::before, .float-at-punkte-details summary::before { content: '+'; display: inline-flex; align-items: center; justify-content: center; width: 1.3rem; height: 1.3rem; border: 1px solid var(--fa-line); border-radius: 50%; color: var(--fa-red); font-weight: 700; line-height: 1; }
.float-at-technik[open] summary::before, .float-at-punkte-details[open] summary::before { content: '–'; }

/* Clubs und Abgleich der Namen in den Ligen */
.float-at-marke-fa { border-color: var(--fa-red); background: var(--fa-red); color: #fff; }
.float-at-club { margin: 0.1rem 0 0.4rem; }
.float-at-liga-wer { display: flex; flex-wrap: wrap; align-items: center; gap: 0.25rem 0.5rem; margin-top: 0.2rem; font-weight: 400; }
.float-at-zeiten .float-at-liga-wer { display: inline-flex; margin: 0 0 0 0.5rem; }
.float-at-liga-mitglied { color: var(--fa-grey); font-size: 0.8rem; }
.float-at-liga-wer .float-at-marke { padding: 0 0.45rem; letter-spacing: 0.04em; white-space: nowrap; }
.float-at-liga-wer .float-at-marke-fa { background: transparent; color: var(--fa-white); }
.float-at-tabelle th small { display: block; color: var(--fa-grey); font-size: 0.75rem; font-weight: 400; }
.float-at-liga-status { margin: -0.4rem 0 1rem; font-size: 0.85rem; }
.float-at-liga-ok { color: var(--fa-white); }
.float-at-liga-ok::first-letter { color: var(--fa-red); }
.float-at-liga-plaetze { margin: 0.3rem 0 0.6rem; padding: 0; list-style: none; }
.float-at-liga-plaetze li + li { margin-top: 0.2rem; }
@supports selector(:has(*)) {
	.float-at-club-anderer { display: none; }
	.float-at-club-wahl:has(option[value="_anderer"]:checked) .float-at-club-anderer { display: block; }
}

/* Bezahlen: PayPal.me, Zahlungslink, gemeldete Zahlungen */
.float-at-zahlweg { margin: 0 0 1rem; }
.float-at-zahlweg > p { margin: 0 0 0.4rem; }
.float-at-melden .float-at-link, .float-at-zahlwege-mehr > summary { min-height: 44px; }
.float-at-gemeldet { margin: 0.6rem 0; padding: 0.7rem 0.9rem; border: 1px solid var(--fa-line); border-left: 3px solid var(--fa-red); border-radius: var(--fa-radius); }
.float-at-gemeldet-marke { display: block; color: var(--fa-white); font-size: 0.8rem; }
.float-at-zahlwege-details { margin: 0 0 1rem; }
.float-at-zahlwege-details > summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; color: var(--fa-white); font-weight: 600; }
.float-at-zahlwege-wahl { margin: 0.5rem 0 0; padding: 0.8rem 1rem; border: 1px solid var(--fa-line); border-radius: var(--fa-radius); }
.float-at-zahlwege-wahl legend { padding: 0 0.4rem; font-weight: 600; }
.float-at-zahlwege-wahl .float-at-check { display: inline-flex; gap: 0.5rem; align-items: flex-start; min-height: 44px; }
.float-at-zahlwege-wahl em { color: var(--fa-grey); font-style: normal; }

/* Grafiken (includes/grafik.php): Rot = Reihe a, Blau = Reihe b, geprüft auf dem dunklen Grund */
.float-at-reihe-a { --reihe: #e0242c; }
.float-at-reihe-b { --reihe: #4a9be0; }
.float-at-analysen { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; }
@media (min-width: 900px) {
	.float-at-analysen { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.float-at-analysen > .float-at-grafik-breit { grid-column: 1 / -1; }
}
.float-at-grafik { min-width: 0; margin: 0; padding: 1rem; border: 1px solid var(--fa-line); border-radius: var(--fa-radius); background: var(--fa-card); }
.float-at-grafik figcaption, .float-at-grafik-titel { display: flex; flex-direction: column; gap: 0.2rem; margin: 0 0 0.8rem; }
.float-at-grafik figcaption strong, .float-at-grafik-titel strong { color: var(--fa-white); font-size: 1rem; }
.float-at-grafik figcaption span, .float-at-grafik-titel span { color: var(--fa-grey); font-size: 0.85rem; }
.float-at-grafik-legende { display: flex; flex-wrap: wrap; gap: 0.3rem 1rem; margin: 0 0 0.4rem; padding: 0; list-style: none; color: var(--fa-grey); font-size: 0.8rem; }
.float-at-grafik-schluessel { display: inline-block; width: 16px; height: 2px; margin-right: 0.4rem; border-radius: 1px; background: var(--reihe); vertical-align: middle; }
.float-at-grafik-plot { position: relative; padding-left: 2.6rem; }
.float-at-grafik-flaeche { position: relative; height: 170px; margin-top: 1.4rem; }
.float-at-grafik-flaeche svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.float-at-grafik-raster { position: absolute; left: 0; right: 0; height: 0; border-top: 1px solid rgba(255, 255, 255, 0.08); }
.float-at-grafik-raster > span { position: absolute; left: -2.6rem; width: 2.3rem; transform: translateY(-50%); color: var(--fa-grey); font-size: 0.72rem; font-variant-numeric: tabular-nums; text-align: right; }
.float-at-grafik-einheit { position: absolute; top: -1.45rem; left: -2.6rem; color: var(--fa-grey); font-size: 0.72rem; }
.float-at-grafik-wert { position: absolute; bottom: 100%; left: 50%; transform: translate(-50%, -4px); color: var(--fa-white); font-size: 0.72rem; white-space: nowrap; pointer-events: none; }
.float-at-grafik-x { display: flex; justify-content: space-between; margin-top: 0.35rem; color: var(--fa-grey); font-size: 0.72rem; font-variant-numeric: tabular-nums; }
.float-at-grafik-x-titel { margin: 0.3rem 0 0; color: var(--fa-grey); font-size: 0.75rem; text-align: center; }
/* Säulen */
.float-at-grafik-spalten { position: absolute; inset: 0; display: flex; align-items: flex-end; gap: 2px; }
.float-at-grafik-spalte { display: flex; flex: 1 1 0; align-items: flex-end; justify-content: center; height: 100%; min-width: 0; outline: none; }
.float-at-grafik-saeule { position: relative; display: block; width: min(100%, 24px); background: var(--fa-red); border-radius: 4px 4px 0 0; }
.float-at-grafik-spalte.ist-aktiv .float-at-grafik-saeule, .float-at-grafik-spalte:hover .float-at-grafik-saeule { background: #ff5158; }
.float-at-grafik-spalte:focus-visible { outline: 2px solid var(--fa-white); outline-offset: 2px; border-radius: 4px; }
.float-at-grafik-x-werte { position: relative; display: block; height: 1rem; }
.float-at-grafik-x-werte span { position: absolute; transform: translateX(-50%); }
.float-at-grafik-streuung .float-at-grafik-x-werte span:last-child { transform: translateX(-100%); } /* letzter Wert am rechten Rand, ragt nicht hinaus */
/* Verlauf und Punkte */
.float-at-grafik-zug { fill: none; stroke: var(--reihe); stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
.float-at-grafik-feld { fill: var(--reihe); stroke: none; opacity: 0.1; }
.float-at-grafik-trend { stroke: var(--fa-white); stroke-width: 1.5; opacity: 0.5; }
.float-at-grafik-punkt { position: absolute; width: 10px; height: 10px; margin: -5px 0 0 -5px; border-radius: 50%; background: var(--reihe); box-shadow: 0 0 0 2px #121212; outline: none; }
.float-at-grafik-punkt.ist-ende .float-at-grafik-wert { left: auto; right: 0; transform: translateY(-6px); } /* der letzte Wert ragt nach links */
.float-at-grafik-spalte:last-child .float-at-grafik-wert { left: auto; right: 0; transform: translateY(-4px); }
.float-at-grafik-viele .float-at-grafik-punkt:not(.ist-aktiv):not(:focus-visible):not(.ist-ende) { background: transparent; box-shadow: none; }
.float-at-grafik-punkt.ist-aktiv, .float-at-grafik-punkt:focus-visible { transform: scale(1.35); box-shadow: 0 0 0 2px #121212, 0 0 0 4px var(--fa-white); }
.float-at-grafik-kreuz { position: absolute; top: 0; bottom: 0; width: 0; border-left: 1px solid rgba(255, 255, 255, 0.3); pointer-events: none; }
.float-at-grafik-richtwert { position: absolute; left: 0; right: 0; height: 0; border-top: 1px solid rgba(255, 255, 255, 0.45); pointer-events: none; }
.float-at-grafik-richtwert span { position: absolute; right: 0; bottom: 3px; color: var(--fa-grey); font-size: 0.72rem; }
/* waagrechte Balken: der Wert steht an der Spitze */
.float-at-grafik-balken { display: grid; gap: 0.6rem; margin: 0; padding: 0; list-style: none; }
.float-at-grafik-balken li { display: grid; grid-template-columns: minmax(0, 9rem) minmax(0, 1fr); gap: 0.6rem; align-items: center; font-size: 0.85rem; }
.float-at-grafik-balken-name { color: var(--fa-white); overflow-wrap: anywhere; }
.float-at-grafik-balken-spur { display: flex; align-items: center; gap: 0.5rem; min-width: 0; }
.float-at-grafik-balken-wert { flex: 0 0 calc((100% - 5.5rem) * var(--anteil)); min-width: 2px; height: 14px; background: var(--fa-red); border-radius: 0 4px 4px 0; }
.float-at-grafik-balken-zahl { color: var(--fa-grey); font-size: 0.8rem; font-variant-numeric: tabular-nums; white-space: nowrap; }
@media (max-width: 480px) {
	.float-at-grafik-balken li { grid-template-columns: minmax(0, 1fr); gap: 0.25rem; }
}
/* Kalender der Fahrtage: eine Farbe, stärker = mehr */
.float-at-kalender { padding-left: 0; overflow-x: auto; }
.float-at-kal-monate, .float-at-kal-tage { display: grid; grid-template-columns: repeat(var(--wochen), minmax(4px, 1fr)); gap: 2px; min-width: 300px; }
.float-at-kal-monate { margin-bottom: 0.3rem; color: var(--fa-grey); font-size: 0.72rem; }
.float-at-kal-monate span { grid-row: 1; white-space: nowrap; }
.float-at-kal-tage { grid-template-rows: repeat(7, auto); }
.float-at-kal-tag { display: block; aspect-ratio: 1; border-radius: 2px; background: rgba(255, 255, 255, 0.06); outline: none; }
.float-at-stufe-1 { background: rgba(224, 36, 44, 0.35); }
.float-at-stufe-2 { background: rgba(224, 36, 44, 0.55); }
.float-at-stufe-3 { background: rgba(224, 36, 44, 0.78); }
.float-at-stufe-4 { background: #e0242c; }
.float-at-kal-tag.ist-aktiv, .float-at-kal-tag:focus-visible { box-shadow: 0 0 0 2px var(--fa-white); }
.float-at-kal-skala { display: flex; align-items: center; justify-content: flex-end; gap: 3px; margin: 0.5rem 0 0; color: var(--fa-grey); font-size: 0.72rem; }
.float-at-kal-skala .float-at-kal-tag { width: 10px; }
/* Werte beim Zeigen, Tabelle */
.float-at-grafik-tip { position: absolute; z-index: 1000; display: flex; flex-direction: column; max-width: 260px; padding: 0.4rem 0.65rem; border: 1px solid var(--fa-line); border-radius: 8px; background: #1c1c1c; box-shadow: 0 6px 20px rgba(0, 0, 0, 0.5); pointer-events: none; }
.float-at-grafik-tip[hidden] { display: none; }
.float-at-grafik-tip strong { color: var(--fa-white); font-size: 0.95rem; }
.float-at-grafik-tip span { color: var(--fa-grey); font-size: 0.75rem; }
.float-at-grafik-tabelle { margin-top: 0.6rem; }
.float-at-grafik-tabelle > summary { display: flex; align-items: center; min-height: 44px; color: var(--fa-grey); font-size: 0.8rem; cursor: pointer; }
.float-at-grafik-kacheln .float-at-kacheln { margin: 0; }
/* Fortschritt */
.float-at-meter { height: 8px; overflow: hidden; border-radius: 4px; background: rgba(224, 36, 44, 0.18); }
.float-at-meter span { display: block; height: 100%; border-radius: 4px; background: var(--fa-red); }
/* Meilensteine */
.float-at-meilensteine { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0 0 1rem; padding: 0; list-style: none; }
.float-at-meilensteine li { display: flex; align-items: center; gap: 0.45rem; padding: 0.45rem 0.85rem; border: 1px solid var(--fa-line); border-radius: 999px; }
.float-at-meilensteine li:first-child { border-color: var(--fa-red); }
.float-at-ziele { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: 0.8rem; }
.float-at-ziel p { margin: 0 0 0.35rem; color: var(--fa-grey); font-size: 0.85rem; }
/* Wartung */
.float-at-erinnerungen { display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap: 0.7rem; margin: 0 0 1rem; padding: 0; list-style: none; }
.float-at-erinnerungen > li { margin: 0; }
.float-at-erinnerungen .ist-faellig { border-color: var(--fa-red); }
.float-at-erinnerungen p { margin: 0 0 0.5rem; }
.float-at-erinnerungen .float-at-meter { margin: 0 0 0.4rem; }
.float-at-wartungsbuch { margin: 1rem 0; padding: 0 0 0 1rem; border-left: 2px solid var(--fa-line); list-style: none; }
.float-at-wartungsbuch li { position: relative; padding: 0 0 0.9rem 0.4rem; }
.float-at-wartungsbuch li::before { content: ''; position: absolute; top: 0.35rem; left: -1.42rem; width: 10px; height: 10px; border-radius: 50%; background: var(--fa-red); box-shadow: 0 0 0 2px var(--fa-black); }
.float-at-wartungsbuch p { margin: 0.2rem 0 0; }
.float-at-wartung-karte { border-color: var(--fa-red); }
/* Bild zum Teilen */
.float-at-boardkarte-ergebnis img { display: block; width: min(100%, 360px); height: auto; margin: 0 0 0.8rem; border: 1px solid var(--fa-line); border-radius: var(--fa-radius); }
.float-at-config-unterschiede td { white-space: normal; overflow-wrap: anywhere; }

/* Blättern in „Alle Fahrten“ */
.float-at-blaettern { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0.75rem 1rem; margin: 1.5rem 0 0; }
.float-at-blaettern span { color: var(--fa-grey); font-size: 0.9rem; }

/* Live-Zeitnahme (includes/zeitnahme.php, assets/live.js) */
.float-at-live h3 { margin: 1.5rem 0 0.6rem; font-size: 1.05rem; }
.float-at-live-status { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin: 0 0 0.4rem; font-weight: 600; }
.float-at-live-bruecke { position: relative; margin: 0 0 0.8rem; padding-left: 1.1rem; }
.float-at-live-bruecke::before { content: ''; position: absolute; top: 0.45em; left: 0; width: 9px; height: 9px; border-radius: 50%; background: var(--fa-grey); }
.float-at-live-verbunden::before { background: #3ecf6e; }
.float-at-live-knoepfe { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem; margin: 0 0 0.6rem; }
.float-at-live-knoepfe .float-at-inline { margin: 0; }
.float-at-live-knoepfe .float-at-link { min-height: 44px; }
.float-at-live-strecke { margin: 1rem 0 0; }
.float-at-live-strecke svg { display: block; width: 100%; height: auto; max-height: 60vh; border: 1px solid var(--fa-line); border-radius: var(--fa-radius); background: var(--fa-card); }
.float-at-live-strecke figcaption { margin-top: 0.4rem; }
.float-at-live-linie { fill: none; stroke: rgba(255, 255, 255, 0.35); stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; }
.float-at-live-punkt circle { fill: var(--fa-black); stroke: var(--fa-white); stroke-width: 2; }
.float-at-live-ende circle { stroke: var(--fa-red); }
.float-at-live-strecke text { fill: var(--fa-white); font: 700 11px/1 'Barlow Condensed', 'Barlow', sans-serif; text-anchor: middle; }
.float-at-live-fahrer circle { fill: var(--fa-red); stroke: var(--fa-black); stroke-width: 2; }
.float-at-live-fahrer text { fill: #fff; }
.float-at-live-unterwegs, .float-at-live-zuletzt { margin: 0; padding: 0; list-style: none; }
.float-at-live-unterwegs li, .float-at-live-zuletzt li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.3rem 0.8rem; box-sizing: border-box; min-height: 44px; padding: 0.55rem 0; border-bottom: 1px solid var(--fa-line); overflow-wrap: anywhere; }
.float-at-live-unterwegs li.float-at-ich { border-bottom-color: var(--fa-red); }
.float-at-live-unterwegs small, .float-at-live-unterwegs span, .float-at-live-zuletzt span, .float-at-live-zuletzt time { color: var(--fa-grey); }
.float-at-live-unterwegs .float-at-live-uhr { margin-left: auto; color: var(--fa-white); font-size: 1.3rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.float-at-live-zuletzt time { min-width: 4.8em; font-variant-numeric: tabular-nums; }
.float-at-live-zuletzt .float-at-zahl-sp { margin-left: auto; color: var(--fa-white); font-variant-numeric: tabular-nums; }
.float-at-live-tabelle tr.float-at-ich th, .float-at-live-tabelle tr.float-at-ich td { background: rgba(224, 36, 44, 0.12); }
.float-at-live-getrennt .float-at-live-inhalt { opacity: 0.55; }
@media (max-width: 600px) {
	.float-at-live-knoepfe { display: grid; grid-template-columns: minmax(0, 1fr); }
	.float-at-live-knoepfe .float-at-btn { width: 100%; }
}

/* Rennablauf (includes/rennablauf.php): Ablaufleiste, Heats als Turnierbaum, Herkunft der Zeiten */
.float-at-ablauf { margin: 1.5rem 0 2rem; }
.float-at-ablauf ol { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 0.5rem; margin: 0; padding: 0; list-style: none; counter-reset: none; }
.float-at-ablauf li a { display: flex; align-items: center; gap: 0.7rem; height: 100%; box-sizing: border-box; padding: 0.7rem 0.9rem; border: 1px solid var(--fa-line); border-radius: var(--fa-radius); background: var(--fa-card); color: var(--fa-white); text-decoration: none; }
.float-at-ablauf li a:hover, .float-at-ablauf li a:focus-visible { border-color: rgba(255, 255, 255, 0.4); }
.float-at-ablauf-nr { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; width: 2rem; height: 2rem; border: 1px solid var(--fa-line); border-radius: 50%; color: var(--fa-grey); font-weight: 700; font-variant-numeric: tabular-nums; }
.float-at-ablauf-text { display: grid; min-width: 0; }
.float-at-ablauf-text strong { font-size: 0.95rem; letter-spacing: 0.06em; text-transform: uppercase; }
.float-at-ablauf-text small { color: var(--fa-grey); font-size: 0.8rem; }
.float-at-ablauf-fertig .float-at-ablauf-nr { border-color: rgba(255, 255, 255, 0.35); color: var(--fa-white); }
.float-at-ablauf-jetzt a { border-color: var(--fa-red); box-shadow: 0 0 18px rgba(224, 36, 44, 0.18); }
.float-at-ablauf-jetzt .float-at-ablauf-nr { border-color: var(--fa-red); background: var(--fa-red); color: #fff; }
.float-at-ablauf-spaeter :is(a, .float-at-ablauf-feld) { opacity: 0.6; }
.float-at-ablauf li .float-at-ablauf-feld { display: flex; align-items: center; gap: 0.7rem; height: 100%; box-sizing: border-box; padding: 0.7rem 0.9rem; border: 1px solid var(--fa-line); border-radius: var(--fa-radius); background: var(--fa-card); color: var(--fa-white); }
.float-at-ablauf-jetzt .float-at-ablauf-feld { border-color: var(--fa-red); }
.float-at-ablauf-hinweis { margin: 0.6rem 0 0; }

.float-at-hinweis-box { margin: 1rem 0; padding: 0.8rem 1rem; border: 1px solid var(--fa-line); border-left: 3px solid var(--fa-red); border-radius: 10px; background: var(--fa-card); font-size: 0.9rem; }
.float-at-hinweis-box p { margin: 0 0 0.4rem; }
.float-at-ohne-starter { display: flex; flex-wrap: wrap; gap: 0.3rem 1rem; margin: 0; padding: 0; list-style: none; color: var(--fa-grey); font-variant-numeric: tabular-nums; }
.float-at-live-quelle { padding: 0.05rem 0.4rem; border: 1px solid rgba(224, 36, 44, 0.6); border-radius: 999px; color: var(--fa-red); font-size: 0.7rem; letter-spacing: 0.08em; text-transform: uppercase; }

.float-at-bracket-info { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 1rem; margin: 0 0 0.6rem; color: var(--fa-grey); font-size: 0.9rem; }
.float-at-marke-vorlaeufig { border-style: dashed; color: var(--fa-white); }
.float-at-legende { display: inline-flex; align-items: center; gap: 0.4rem; }
.float-at-legende i { display: inline-block; width: 1.1rem; height: 0.8rem; border-radius: 4px; background: rgba(224, 36, 44, 0.35); }
.float-at-heat-kopf { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 0.2rem 0.6rem; margin: 0 0 0.5rem; }
.float-at-heat-kopf h4 { margin: 0; }
.float-at-heat-status { display: inline-flex; align-items: center; gap: 0.35rem; color: var(--fa-grey); font-size: 0.75rem; letter-spacing: 0.08em; text-transform: uppercase; }
.float-at-heat-fertig .float-at-heat-status::before { content: '✓'; color: var(--fa-white); }
.float-at-heat-laeuft { border-color: var(--fa-red); box-shadow: 0 0 24px rgba(224, 36, 44, 0.22); }
.float-at-heat-laeuft .float-at-heat-status { color: var(--fa-red); font-weight: 700; }
.float-at-live-punkt-an { width: 0.55rem; height: 0.55rem; border-radius: 50%; background: var(--fa-red); }
@media (prefers-reduced-motion: no-preference) { .float-at-live-punkt-an { animation: float-at-puls 1.2s ease-in-out infinite; } }
@keyframes float-at-puls { 50% { opacity: 0.25; } }
.float-at-heat-wartet, .float-at-heat-frei { border-style: dashed; }
.float-at-heat-wartet .float-at-heat-liste { opacity: 0.75; }
.float-at-heat-liste .float-at-setz { color: var(--fa-grey); font-size: 0.75rem; font-variant-numeric: tabular-nums; }
.float-at-heat-liste .float-at-weiter-text { color: var(--fa-red); font-size: 0.7rem; letter-spacing: 0.1em; text-transform: uppercase; }
.float-at-heat-liste .float-at-weiter-text::before { content: '→ '; }
.float-at-heat-liste .float-at-sieger { background: rgba(224, 36, 44, 0.2); }
.float-at-heat-liste .float-at-sieger .float-at-name { font-weight: 700; }
.float-at-heat-aktionen { margin: 0.8rem 0 0; }
.float-at-heat-aktionen .float-at-btn { width: 100%; }
.float-at-heat-aktionen .float-at-small { margin: 0.4rem 0 0; }
.float-at-heat-bearbeiten { margin: 0.7rem 0 0; }
.float-at-heat-bearbeiten summary { padding: 0.75rem 0; color: var(--fa-grey); font-size: 0.85rem; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.float-at-heat-bearbeiten[open] summary { margin-bottom: 0.6rem; color: var(--fa-white); }
.float-at-heat-bearbeiten .float-at-heat-liste li { display: grid; grid-template-columns: 1fr; padding: 0.2rem 0; }
.float-at-setzliste ol { display: grid; gap: 0.4rem; margin: 0.6rem 0; padding: 0; list-style: none; max-width: 28rem; }
.float-at-setzliste li { display: flex; align-items: center; justify-content: space-between; gap: 0.8rem; }
.float-at-setzliste input { width: 5em; min-height: 44px; padding: 0.3rem 0.5rem; border: 1px solid var(--fa-line); border-radius: 8px; background: #151515; color: var(--fa-white); font-size: 16px; }

/* Turnierbaum: am breiten Bildschirm die Runden nebeneinander, die Heats je Runde mittig untereinander */
@media (min-width: 900px) {
	.float-at-bracket { grid-template-columns: repeat(var(--runden, 1), minmax(250px, 1fr)); align-items: stretch; gap: 1rem; overflow-x: auto; }
	.float-at-runde { display: flex; flex-direction: column; }
	.float-at-runde .float-at-heats { display: flex; flex: 1; flex-direction: column; justify-content: space-around; gap: 0.8rem; }
}
.float-at-zeiten-tabelle :is(th, td):first-child { width: 4.5rem; }
.float-at-live-heat { display: flex; align-items: center; gap: 0.5rem; margin: 0.8rem 0; padding: 0.6rem 0.9rem; border: 1px solid var(--fa-red); border-radius: 10px; background: rgba(224, 36, 44, 0.1); font-weight: 600; }
.float-at-live-heat a { color: var(--fa-white); }
.float-at-live-alle { margin: 1rem 0; }
.float-at-live-alle summary { padding: 0.75rem 0; color: var(--fa-grey); cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.float-at-live-alle[open] summary { margin-bottom: 0.6rem; color: var(--fa-white); }

/* Zeitläufe wie Heats: je Lauf eine Karte mit Stand und Starten/Beenden; Rennen einstellen */
.float-at-laeufe-stand { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 0.8rem; margin: 0.8rem 0; }
.float-at-lauf-karte h4 { margin: 0; color: var(--fa-grey); font-size: 0.8rem; letter-spacing: 0.14em; text-transform: uppercase; }
.float-at-lauf-zahl { margin: 0.2rem 0 0.6rem; font-variant-numeric: tabular-nums; }
.float-at-lauf-karte .float-at-btn { width: 100%; }
.float-at-lauf-karte .float-at-inline { display: block; margin: 0; }
.float-at-lauf-laeuft { border-color: var(--fa-red); box-shadow: 0 0 24px rgba(224, 36, 44, 0.22); }
.float-at-lauf-laeuft .float-at-heat-status { color: var(--fa-red); font-weight: 700; }
.float-at-lauf-fertig .float-at-heat-status::before { content: '✓'; color: var(--fa-white); }
.float-at-lauf-offen { border-style: dashed; }
.float-at-zeiten-bearbeiten { margin: 0.4rem 0 1rem; }
.float-at-rennen-kurz { margin: 0 0 0.6rem; color: var(--fa-white); font-weight: 600; }
.float-at-rennen-form .float-at-felder-2 { align-items: end; }

/* Suchbare Fahrer-Auswahl (assets/auswahl.js) */
.float-at-suche-liste { background: #151515; color: var(--fa-white); border-color: var(--fa-line); }
.float-at-suche-liste li.float-at-suche-aktiv { background: rgba(224, 36, 44, 0.22); }
.float-at-suche-liste li[aria-selected="true"]::after { content: '✓'; margin-left: auto; padding-left: 0.6rem; color: var(--fa-red); }

/* Tags (RFID) je Fahrer: Name, Kennung, Anlernen */
.float-at-tags { display: grid; gap: 0.5rem; margin: 0.6rem 0; padding: 0; list-style: none; }
.float-at-tags li { display: grid; grid-template-columns: minmax(8rem, 1fr) minmax(8rem, 14rem) auto; align-items: center; gap: 0.5rem 0.8rem; padding: 0.4rem 0; border-bottom: 1px solid var(--fa-line); }
.float-at-tags li label { margin: 0; text-transform: none; letter-spacing: normal; font-size: 1rem; color: var(--fa-white); }
.float-at-tags input[type="text"] { min-height: 44px; font-variant-numeric: tabular-nums; }
.float-at-tags .float-at-btn-klein { min-height: 44px; }
.float-at-tag-jetzt { background: rgba(224, 36, 44, 0.12); border-radius: 8px; padding-left: 0.5rem !important; padding-right: 0.5rem !important; }
.float-at-tags-unbekannt .float-at-tag-zu { display: contents; }
.float-at-tags-unbekannt li { grid-template-columns: minmax(8rem, 1fr) minmax(10rem, 16rem) auto; }
.float-at-tag-kennung small { display: block; color: var(--fa-grey); }
@media (max-width: 600px) {
	.float-at-tags li, .float-at-tags-unbekannt li { grid-template-columns: 1fr auto; }
	.float-at-tags li label, .float-at-tag-kennung { grid-column: 1 / -1; }
}

/* Eckdaten unter dem Titel eines Events */
.float-at-eckdaten { display: flex; flex-wrap: wrap; gap: 0.35rem 1.4rem; margin: 0.3rem 0 1rem; padding: 0; list-style: none; color: var(--fa-white); }
.float-at-eckdaten li { margin: 0; }

/* Schritte der Event-Seite für Zeitnehmer und Administratoren (float_at_event_schritte_html): erledigt zu, dran offen, später nur die Zeile */
.float-at-schritte { display: grid; gap: 0.6rem; margin: 1.5rem 0 clamp(2.5rem, 7vw, 4.5rem); }
.float-at-schritt { margin: 0; border: 1px solid var(--fa-line); border-radius: var(--fa-radius); background: var(--fa-card); color: var(--fa-white); scroll-margin-top: 5rem; }
.float-at-schritt-kopf { display: flex; align-items: center; gap: 0.8rem; min-height: 44px; padding: 0.8rem 1rem; list-style: none; }
summary.float-at-schritt-kopf { cursor: pointer; border-radius: var(--fa-radius); }
summary.float-at-schritt-kopf::-webkit-details-marker { display: none; }
summary.float-at-schritt-kopf::after { content: ''; flex: 0 0 auto; width: 0.55rem; height: 0.55rem; margin: 0 0.3rem 0 auto; border-right: 2px solid var(--fa-grey); border-bottom: 2px solid var(--fa-grey); transform: rotate(45deg); transition: transform 0.2s ease; }
details[open] > summary.float-at-schritt-kopf::after { transform: rotate(-135deg); }
summary.float-at-schritt-kopf:hover { background: rgba(255, 255, 255, 0.03); }
summary.float-at-schritt-kopf:focus-visible { outline: 2px solid var(--fa-red); outline-offset: 2px; }
.float-at-schritt-titel { display: grid; min-width: 0; }
.float-at-schritt-titel strong { font-size: 1rem; letter-spacing: 0.08em; text-transform: uppercase; }
.float-at-schritt-titel small { color: var(--fa-grey); font-size: 0.85rem; }
.float-at-schritt-titel small.float-at-schritt-achtung { color: #ff8a8f; }
.float-at-schritt-inhalt { padding: 0.2rem clamp(1rem, 3vw, 1.5rem) 1.4rem; border-top: 1px solid var(--fa-line); }
.float-at-schritt-inhalt > :first-child { margin-top: 1rem; }
.float-at-schritt-inhalt > .float-at-abschnitt { margin: 1rem 0 0; } /* Live-Zeitnahme im Kasten */
.float-at-schritt-teil { margin-top: 1.6rem; padding-top: 1.2rem; border-top: 1px solid var(--fa-line); }
.float-at-schritt-inhalt > .float-at-schritt-teil:first-child { margin-top: 0.4rem; padding-top: 0.6rem; border-top: 0; }
.float-at-schritt-teil > h3 { margin: 0 0 0.8rem; color: var(--fa-grey); font-size: 0.8rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; }
.float-at-schritt-fertig .float-at-ablauf-nr { border-color: rgba(255, 255, 255, 0.35); color: var(--fa-white); }
.float-at-schritt-jetzt { border-color: var(--fa-red); box-shadow: 0 0 18px rgba(224, 36, 44, 0.15); }
.float-at-schritt-jetzt .float-at-ablauf-nr { border-color: var(--fa-red); background: var(--fa-red); color: #fff; }
.float-at-schritt-spaeter { background: transparent; border-style: dashed; }
.float-at-schritt-spaeter .float-at-schritt-kopf { opacity: 0.6; }
