/* /Components/FeedbackDialog.razor.rz.scp.css */
.feedback-dialog-shell[b-412zgdy4uy] {
    padding: 0;
}

.feedback-dialog-hero[b-412zgdy4uy] {
    margin-bottom: 1rem;
    padding: 1rem 1.1rem;
    border: 1px solid rgba(237, 32, 36, 0.28);
    border-radius: 14px;
    background:
        radial-gradient(circle at top right, rgba(255, 255, 255, 0.1), transparent 34%),
        linear-gradient(135deg, rgba(237, 32, 36, 0.24), rgba(18, 20, 24, 0.94));
}

.feedback-dialog-hero__icon[b-412zgdy4uy] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
    flex: 0 0 auto;
}

.feedback-dialog-hero__title[b-412zgdy4uy] {
    font-weight: 700;
    color: #fff;
}

.feedback-dialog-hero__subtitle[b-412zgdy4uy] {
    color: rgba(255, 255, 255, 0.82);
}

.feedback-dialog-panel[b-412zgdy4uy] {
    padding: 1rem 1.1rem 1.1rem;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.02);
}

.feedback-dialog-required-hint[b-412zgdy4uy] {
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #ed2024;
}

.feedback-dialog-consent[b-412zgdy4uy] {
    padding: 0.85rem 0.95rem;
    border: 1px solid rgba(237, 32, 36, 0.22);
    border-radius: 12px;
    background: rgba(237, 32, 36, 0.05);
}

.feedback-dialog-message[b-412zgdy4uy] {
    width: 100%;
    display: block;
}

.feedback-dialog-message[b-412zgdy4uy]  .mud-compat-input-wrap {
    width: 100%;
}

.feedback-dialog-actions[b-412zgdy4uy] {
    display: flex;
    justify-content: flex-end;
    gap: 0.75rem;
    padding: 0.75rem 0 0.25rem;
}
/* /Components/Fehlerauffangnetz.razor.rz.scp.css */
/*
    Aussehen der Fehlermeldung (Befund vom 05.08.2026).

    Bewusst ohne Radzen-/MudCompat-Bauteile und ohne Palette-Variablen gebaut: Diese Meldung
    erscheint genau dann, wenn etwas kaputt ist. Sie muss auch dann noch lesbar sein, wenn die
    Ursache im Theme oder in einer Komponentenbibliothek liegt. Deshalb feste Farben, die in
    hellem wie dunklem Erscheinungsbild funktionieren.
*/

.fehlernetz[b-7wvbm9x8vj] {
    display: flex;
    justify-content: center;
    padding: 48px 16px;
}

.fehlernetz-karte[b-7wvbm9x8vj] {
    max-width: 560px;
    width: 100%;
    background: #1e1e1e;
    color: #f3f4f6;
    border: 1px solid rgba(237, 32, 36, 0.55);
    border-radius: 16px;
    padding: 28px 32px 32px;
    text-align: center;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
}

/* Das Ausrufezeichen im roten Kreis - traegt die Meldung optisch, ohne ein Symbolpaket
   zu brauchen, das im Fehlerfall womoeglich selbst nicht geladen ist. */
.fehlernetz-zeichen[b-7wvbm9x8vj] {
    width: 56px;
    height: 56px;
    margin: 0 auto 16px;
    border-radius: 50%;
    background: #ed2024;
    color: #ffffff;
    font-size: 34px;
    font-weight: 700;
    line-height: 56px;
}

.fehlernetz-titel[b-7wvbm9x8vj] {
    margin: 0 0 12px;
    font-size: 1.35rem;
    font-weight: 700;
}

.fehlernetz-text[b-7wvbm9x8vj] {
    margin: 0 0 12px;
    font-size: 0.95rem;
    line-height: 1.5;
    color: #d1d5db;
}

.fehlernetz-knoepfe[b-7wvbm9x8vj] {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: center;
    margin-top: 20px;
}

.fehlernetz-knopf[b-7wvbm9x8vj] {
    appearance: none;
    cursor: pointer;
    border-radius: 10px;
    padding: 10px 20px;
    font-size: 0.95rem;
    font-weight: 600;
    border: 1px solid rgba(243, 244, 246, 0.35);
    background: transparent;
    color: #f3f4f6;
}

.fehlernetz-knopf:hover[b-7wvbm9x8vj] {
    border-color: rgba(243, 244, 246, 0.7);
}

.fehlernetz-knopf-haupt[b-7wvbm9x8vj] {
    background: #ed2024;
    border-color: #ed2024;
    color: #ffffff;
}

.fehlernetz-knopf-haupt:hover[b-7wvbm9x8vj] {
    background: #c81b1f;
    border-color: #c81b1f;
}

/* Schmale Bildschirme: Knoepfe untereinander, sonst brechen sie unschoen um. */
@media (max-width: 420px) {
    .fehlernetz-knoepfe[b-7wvbm9x8vj] {
        flex-direction: column;
    }

    .fehlernetz-karte[b-7wvbm9x8vj] {
        padding: 24px 20px 26px;
    }
}
/* /Components/LivestreamKarte.razor.rz.scp.css */
/* LivestreamKarte (Entwurf D, 14.11.2026): Sedna-Karte mit dem Player. Nur echte Sedna-Variablen. */

.tn-livestream[b-rwhsbp0js3] { margin: 0; }

/* Zwei Streams stehen nebeneinander, ein einzelner bekommt eine schmalere Maximalbreite, damit er nicht riesig
   über die ganze Seite gezogen wird (wie vorher). */
.tn-livestream-raster[b-rwhsbp0js3] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    width: 100%;
    max-width: 1180px;
    margin: 0 auto;
    align-items: start;
}

.tn-livestream-einzeln[b-rwhsbp0js3] { grid-template-columns: minmax(0, 1fr); max-width: 760px; }

.tn-livestream-kopf[b-rwhsbp0js3] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
}

.tn-livestream-name[b-rwhsbp0js3] { font-weight: 650; font-size: 15px; color: var(--fg); min-width: 0; overflow-wrap: anywhere; }

/* Der Rahmen hält das 16:9-Seitenverhältnis; der Player darin füllt ihn aus (siehe LivestreamFrame). */
.tn-livestream-rahmen[b-rwhsbp0js3] {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: var(--radius-surface);
    border: 1px solid var(--border);
    background: #000;
}

@media (max-width: 700px) {
    .tn-livestream-raster[b-rwhsbp0js3] { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- Vollbild ---------- */
/* Bewusst dunkel mit fester Farbe: ein Video-Overlay ist unabhängig vom hellen oder dunklen Thema. */
.tn-vollbild[b-rwhsbp0js3] {
    position: fixed;
    inset: 0;
    z-index: 1600;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: rgba(0, 0, 0, 0.92);
}

.tn-vollbild-innen[b-rwhsbp0js3] { display: flex; flex-direction: column; gap: 12px; width: min(1600px, 100%); height: min(90vh, 100%); }
.tn-vollbild-leiste[b-rwhsbp0js3] { display: flex; justify-content: flex-end; }
.tn-vollbild-player[b-rwhsbp0js3] { position: relative; flex: 1; min-height: 0; overflow: hidden; border-radius: 12px; background: #000; }
/* /Components/Turnier/ArchivErgebnisliste.razor.rz.scp.css */
/* Stile der Archiv-Ergebnisliste (H9, 14.11.2026). Nur echte Sedna-Variablen (siehe its-turnier.css). Die Klassen der
   ErgebnisAnsicht (tn-*) liegen in ihrem Kindbaustein, darum ::deep. */

/* Eine Liste, deren einziger Inhalt eine Trennlinie ist (Gruppe, die nur aus Podium besteht): keine leere Karte zeigen.
   Die Linie bleibt im Markup (Ergebnis-Vergleich), nur die Karte entfällt. */
.tn-archiv[b-amw4t7knk1]  .tn-liste:has(> .tn-trenner:only-child) { display: none; }

/* Springen: Der Ergebnistext („Fehler 0,00 / Zeit 49,50“) ist lang und steht in der Gesamtspalte – kleiner als eine Zahl. */
.tn-archiv-text[b-amw4t7knk1]  .tn-gesamt .tn-wert-haupt { font-size: 16px; font-weight: 700; }
.tn-archiv-text[b-amw4t7knk1]  .tn-pod-gesamt .tn-wert-haupt { font-size: 20px; }

/* Pausen-Hinweise (Pause, Unterbrechung, Besichtigung) fallen auf. */
.tn-archiv[b-amw4t7knk1]  .tn-hinweis-pause .tn-hinweis-vorsatz { color: var(--brand-text); }

/* Rohdaten (nur Entwicklungsansicht). */
.tn-archiv[b-amw4t7knk1]  .tn-archiv-roh { display: grid; grid-template-columns: max-content 1fr; gap: 2px 12px; padding: 8px 0 4px; font-size: 13px; color: var(--muted); }
.tn-archiv[b-amw4t7knk1]  .tn-archiv-roh-schluessel { font-weight: 700; color: var(--fg-soft); }
/* /Components/Turnier/ProfilErgebnisKarte.razor.rz.scp.css */
/* Ergebniskarte der Profilseiten (Entwurf D, 14.11.2026). Nur echte Sedna-Variablen (hell und dunkel).
   Kontrast: --fg bzw. --fg-soft auf --card-bg / --bg-hover; --muted nur für Nebenangaben ab 13 px;
   „platziert“ steht in --brand-text auf --card-bg (Sedna-Markenschrift für Text, AA in beiden Modi). */

.tn-pr-ergebnis[b-u2aj7wb8ul] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 0;
    padding: 12px 14px;
    box-sizing: border-box;
    background: var(--card-bg);
    border: 1px solid var(--border);
    border-radius: 12px;
}

.tn-pr-kopf[b-u2aj7wb8ul] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    min-width: 0;
}

.tn-pr-titelblock[b-u2aj7wb8ul] { min-width: 0; flex: 1; }
.tn-pr-pruefung[b-u2aj7wb8ul] { margin: 0; font-size: 16px; font-weight: 650; line-height: 1.3; color: var(--fg); overflow-wrap: anywhere; }
.tn-pr-meta[b-u2aj7wb8ul] { margin: 2px 0 0; font-size: 14px; color: var(--muted); }

.tn-pr-pillen[b-u2aj7wb8ul] { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; flex: 0 0 auto; }

/* Rang-Pille: .tn-rang-plakette kommt aus its-turnier.css; hier nur die Länge („Rang 12“ ist länger als „12“). */
.tn-pr-rang[b-u2aj7wb8ul] { white-space: nowrap; }

.tn-pr-platziert[b-u2aj7wb8ul] {
    display: inline-flex;
    align-items: center;
    height: 30px;
    padding: 0 12px;
    box-sizing: border-box;
    border: 1px solid var(--brand);
    border-radius: var(--radius-control);
    color: var(--brand-text);
    font-size: 14px;
    font-weight: 650;
    white-space: nowrap;
}

.tn-pr-status[b-u2aj7wb8ul] {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    font-size: 14px;
    color: var(--muted);
}
.tn-pr-status strong[b-u2aj7wb8ul] { color: var(--fg); font-weight: 650; text-align: right; }

/* Die Zusammenfassung ist der Wert der Karte: groß und fett wie der Gesamtwert der Ergebnisliste. */
.tn-pr-wert[b-u2aj7wb8ul] { margin: 0; font-size: 18px; font-weight: 800; color: var(--fg); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }

.tn-pr-details summary[b-u2aj7wb8ul] { cursor: pointer; font-size: 14px; font-weight: 650; color: var(--fg-soft); }
.tn-pr-details summary:hover[b-u2aj7wb8ul] { text-decoration: underline; }
.tn-pr-details summary:focus-visible[b-u2aj7wb8ul] { outline: none; box-shadow: 0 0 0 2px var(--focus-ring); border-radius: 4px; }

.tn-pr-metriken[b-u2aj7wb8ul] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
    gap: 8px;
    margin-top: 10px;
}

.tn-pr-metrik[b-u2aj7wb8ul] {
    min-width: 0;
    padding: 8px 10px;
    background: var(--bg-hover);
    border: 1px solid var(--border);
    border-radius: 10px;
}
.tn-pr-metrik span[b-u2aj7wb8ul] { display: block; font-size: 13px; color: var(--muted); }
.tn-pr-metrik strong[b-u2aj7wb8ul] { display: block; font-size: 15px; color: var(--fg); font-weight: 650; overflow-wrap: anywhere; }

@media (max-width: 640px) {
    .tn-pr-kopf[b-u2aj7wb8ul] { flex-direction: column; }
    .tn-pr-pillen[b-u2aj7wb8ul] { justify-content: flex-start; }
    .tn-pr-status[b-u2aj7wb8ul] { flex-direction: column; gap: 0; }
    .tn-pr-status strong[b-u2aj7wb8ul] { text-align: left; }
}
/* /Components/Turnier/ProfilStartZeile.razor.rz.scp.css */
/* Start-ohne-Ergebnis-Zeile der Profilseiten (Entwurf D, 14.11.2026). Nur echte Sedna-Variablen
   (hell und dunkel); Kontrast: --fg bzw. --muted (ab 13 px) auf --bg-hover. */

.tn-pr-start[b-m70ioxbgia] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    min-width: 0;
    padding: 10px 14px;
    box-sizing: border-box;
    background: var(--bg-hover);
    border: 1px solid var(--border);
    border-radius: 10px;
}

.tn-pr-start-text[b-m70ioxbgia] { min-width: 0; }
.tn-pr-start-text strong[b-m70ioxbgia] { display: block; font-size: 15px; font-weight: 650; color: var(--fg); overflow-wrap: anywhere; }
.tn-pr-start-text span[b-m70ioxbgia] { display: block; margin-top: 2px; font-size: 14px; color: var(--muted); }

.tn-pr-startpos[b-m70ioxbgia] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    height: 28px;
    padding: 0 10px;
    box-sizing: border-box;
    border: 1px solid var(--border-strong);
    border-radius: var(--radius-control);
    color: var(--fg);
    font-size: 13px;
    font-weight: 650;
    white-space: nowrap;
}

@media (max-width: 640px) {
    .tn-pr-start[b-m70ioxbgia] { flex-direction: column; }
}
/* /Components/Turnier/TorisListeBuchstabenLeiste.razor.rz.scp.css */
/* Sprungleiste der Toris-Listen (Entwurf D, 14.11.2026): kleine Kontur-Pillen wie die Chips der
   Leiste unter dem Kopfband. Nur echte Sedna-Variablen. */
.tn-tor-nav[b-7izr1ihe51] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 18px;
}

.tn-tor-nav-link[b-7izr1ihe51] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 38px;
    min-height: 38px;
    padding: 0 10px;
    box-sizing: border-box;
    border: 1px solid var(--border-strong);
    border-radius: var(--radius-pill);
    color: var(--fg);
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
}

.tn-tor-nav-link:hover[b-7izr1ihe51] { background: var(--bg-hover); }
.tn-tor-nav-link:focus-visible[b-7izr1ihe51] { outline: none; box-shadow: 0 0 0 2px var(--focus-ring); }

@media (max-width: 700px) {
    .tn-tor-nav-link[b-7izr1ihe51] { min-width: 44px; min-height: 44px; }
}
/* /Components/Turnier/TorisListeGruppe.razor.rz.scp.css */
/* Karte einer Buchstabengruppe der Toris-Listen (Entwurf D, 14.11.2026). Nur echte Sedna-Variablen
   (hell und dunkel). Kontrast: --fg bzw. --muted auf --card-bg (Sedna-Thema, AA in beiden Modi);
   der Buchstabe steht auf --badge-bg in --fg. */
.tn-tor-gruppe[b-krgc7u644f] {
    background: var(--card-bg);
    border: 1px solid var(--border);
    border-radius: var(--radius-surface);
    overflow: hidden;
    /* Beim Anspringen der Gruppe nicht unter dem festen Seitenkopf verschwinden. */
    scroll-margin-top: 96px;
}

.tn-tor-gruppenkopf[b-krgc7u644f] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    min-height: 48px;
    padding: 6px 20px;
    box-sizing: border-box;
    background: var(--bg-hover);
    border-bottom: 1px solid var(--border);
}

.tn-tor-buchstabe[b-krgc7u644f] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 34px;
    height: 34px;
    padding: 0 8px;
    box-sizing: border-box;
    border-radius: var(--radius-control);
    background: var(--badge-bg);
    color: var(--fg);
    font-size: 17px;
    font-weight: 800;
}

.tn-tor-anzahl[b-krgc7u644f] {
    font-size: 13px;
    font-weight: 650;
    letter-spacing: .04em;
    color: var(--muted);
}

@media (max-width: 700px) {
    .tn-tor-gruppenkopf[b-krgc7u644f] { padding-inline: 14px; }
}
/* /Components/TurnierKopf.razor.rz.scp.css */
/* Gemeinsamer Turnierkopf nach Entwurf D (Frank, 14.11.2026). Alter Stand: TurnierKopf.razor.css.ersetzt-2026-11-14.txt.

   ZWEI TEILE:
   1. Das Foto-Kopfband (.tk-banner): wie das Kopfband der Info-Seiten (.its-page-hero) IMMER dunkel,
      egal ob die Seite hell oder dunkel ist – Text liegt auf einem Foto, darum feste Farben mit Absicht.
      Kontrast: #f5f5f5 auf #121212 = 17,2 : 1; Nebentext #d4d4d4 = 12,6 : 1; rote Oberzeile #ff9a9c = 8,6 : 1
      (alle gegen den fast deckenden linken Schatten, auf dem der Text steht).
   2. Die Leiste darunter (.tn-leiste): normale Seitenfarben aus Sedna (hell und dunkel).
   Das Foto kommt als <img> aus dem Markup (kein url() hier). */

/* ---------- Teil 1: das Band ---------- */
/* Seit 15.11.2026 (Frank, NOT-1525): Sednas Baustein „.page-head--hero“ (Fassung B) in Inhaltsbreite; das Band trägt außer den
   Stellwerten keine eigene Gestaltung mehr. Sedna liefert Bild (.page-head-image), Schleier und dunkle Farben (data-variant="dark").
   Stellwerte: eckig (Umweg, Sedna #283), rechts hell (Schleier läuft auf „durchsichtig“), Textspalte 820 px = Logo + Text nebeneinander
   (vorher 66 % der Inhaltsbreite), Mindesthöhe so, dass das Band bei 1280 px etwa so hoch ist wie bisher (rund 180 px). */
/* Nachbesserung 15.11.2026 (Frank: Foto zu dunkel, „ab einem Drittel erkennbar, spätestens ab 55 % volle Helligkeit“): Sednas
   Schleier ist abgeschaltet (--hero-scrim-strong und -soft durchsichtig), dafür derselbe eigene Verlauf wie in its-public.css
   (.its-kopf::before). Umweg: Sedna hat keinen Stellwert für das Ende des Schleiers (Sedna #283).
   ERSETZT: nur „--hero-scrim-soft: transparent“ (Sednas Schleier lief bis an den rechten Rand, Foto zu dunkel). */
.tk-banner[b-aiu8q4bzsf] {
    --radius-surface: 0;
    --hero-scrim-strong: transparent;
    --hero-scrim-soft: transparent;
    --hero-measure: 820px;
    --hero-height: 170px;
    min-width: 0;
}
/* Verlauf wie in its-public.css (.its-kopf::before, Frank 15.11.2026: Mischung „C“/„B“), nur etwas weiter nach rechts, weil der
   Turnierkopf Logo + Text nebeneinander hat (Ort und Kennzeichen reichen bei 1280 px bis etwa 60 %): volles Foto ab 66 %. */
.tk-banner[b-aiu8q4bzsf]::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background: linear-gradient(90deg, rgba(0,0,0,.8) 0, rgba(0,0,0,.7) 30%, rgba(0,0,0,.55) max(48%, 480px), rgba(0,0,0,.3) max(58%, 580px), transparent max(66%, 680px));
}
/* Weicher dunkler Schein um die Schrift wie bei .its-kopf. */
.tk-banner .tk-inhalt[b-aiu8q4bzsf] { text-shadow: 0 0 18px rgba(0,0,0,.55), 0 1px 3px rgba(0,0,0,.6); }
/* --- ERSETZT am 2026-11-15: eigene Gestaltung des Bands. Grund: Sedna 0.34 .page-head--hero (Frank, NOT-1525).
.tk-banner { position: relative; overflow: hidden; background: #121212; color: #f5f5f5; box-sizing: border-box; min-width: 0; width: 100%; }
   --- ENDE ERSETZT --- */
/* 1.2.18 (Frank 14.11.2026): Foto und Schatten liegen im Rahmen der Inhaltsbreite (gleiches Maß wie .its-wrap in der jeweiligen
   Breitenstufe, siehe its-public.css), nicht mehr über die volle Fensterbreite: Die rechte Bildkante steht auf der Inhaltskante,
   dahinter ist nur der dunkle Grund des Bands. Es gibt keinen Zoom; overflow:hidden am Band schneidet alles Überstehende ab.
   ERSETZT: .tk-foto { position:absolute; inset:0; width:100%; height:100%; ... } – Grund: Foto reichte bis an den Fensterrand. */
/* --- ERSETZT am 2026-11-15: Breite des Fotos über --tk-w und eigene Lage des Fotos. Grund: Das Band selbst steht jetzt in der Inhaltsbreite
   (.its-wrap im Markup), Sednas .page-head-image füllt es.
.tk-banner { --tk-w: min(1240px, 100% - 80px); }
@media (max-width: 1100px) { .tk-banner { --tk-w: calc(100% - 56px); } }
@media (min-width: 1500px) { .tk-banner { --tk-w: min(1740px, 100% - 112px); } }
@media (max-width: 700px) { .tk-banner { --tk-w: 100%; } }
.tk-foto { position: absolute; top: 0; bottom: 0; left: 50%; transform: translateX(-50%); width: var(--tk-w); height: 100%; object-fit: cover; object-position: center 55%; display: block; }
   --- ENDE ERSETZT --- */
/* Nur der Bildausschnitt bleibt eigen (am Bild-Element, das Sedna sonst von der Mitte her zuschneidet). */
.tk-foto[b-aiu8q4bzsf] { object-position: center 55%; }
/* ERSETZT am 2026-11-15 (die folgenden Erläuterungen gehören zum alten, auskommentierten Schatten und gelten nicht mehr; heute liefert Sedna 0.34
   .page-head--hero den Schleier, Frank, NOT-1525). Frühere Umweg-Notiz: https://github.com/dennisrahmen/Sedna.UI/issues/257 (Kopfband mit Bild)
   Gilt für das ganze Foto-Kopfband (.tk-banner, .tk-foto, .tk-schatten, .tk-inhalt) samt seinen festen Farben.

   Links fast deckend, nach rechts durchsichtiger (Entwurf .hero::before). GEÄNDERT 14.11.2026: Das Ende war früher nur
   40 % deckend (#12121266). Lange Metazeilen und Sponsorzeilen liefen bei 1024/1440/2560 px bis in den hellen Teil des
   Fotos, wo die Abdunklung dünn war. Rechnung für den ungünstigsten Fall (ein weißes Foto): Nebentext #d4d4d4 braucht
   einen Grund, der dunkler ist als etwa #5d5d5d (4,5 : 1); das schafft eine Abdunklung ab rund 69 %. Darum bleibt sie
   jetzt überall mindestens 75 % deckend (#121212bf am rechten Rand ergibt auf Weiß #595959, #d4d4d4 darauf 4,7 : 1,
   der Titel #f5f5f5 mehr als 6 : 1). Zusätzlich begrenzt .tk-text die Textspalte, damit nichts bis ganz an den Rand läuft. */
/* GEÄNDERT 14.11.2026 (1.2.18, Frank): rechts voll hell. Der Schatten deckt nur die Fläche des Fotos (wie .tk-foto) und läuft bis
   0 % Deckkraft an der rechten Bildkante (vorher #121212bf = 75 % bis ganz rechts). Damit der Text trotzdem lesbar bleibt, endet die
   Textspalte (.tk-links) bei 66 % der Inhaltsbreite; bis dort ist der Schatten fast deckend (>= 91 %, Rechnung siehe Bericht:
   Nebentext #d4d4d4 auf dem hellsten möglichen Grund >= 7 : 1). */
/* --- ERSETZT am 2026-11-15: eigener Schatten (.tk-schatten) und Innenabstand (.tk-inhalt). Grund: Den Schleier liefert jetzt Sedna
   (.page-head--hero::after, an der Textbreite --hero-measure ausgerichtet); den Innenabstand das Band selbst.
.tk-schatten { position: absolute; top: 0; bottom: 0; left: 50%; transform: translateX(-50%); width: var(--tk-w); background: linear-gradient(90deg, #121212 0, #121212 54%, #121212d9 74%, #12121240 90%, #12121200 100%); }
.tk-inhalt { position: relative; padding-block: 34px; box-sizing: border-box; }
.tk-links { display: flex; align-items: center; gap: 28px; min-width: 0; max-width: 66%; }
   --- ENDE ERSETZT --- */
/* Logo und Text nebeneinander in Sednas Textfläche (.page-head-text); die Breite begrenzt --hero-measure. */
.tk-links[b-aiu8q4bzsf] { display: flex; align-items: center; gap: 28px; min-width: 0; }
/* max-width: wie .its-page-hero-copy (its-public.css, 600/760 px) – die Textspalte endet vor dem hellen rechten Teil des Fotos
   (siehe Rechnung bei .tk-schatten); längere Metazeilen und Sponsoren brechen um statt weiterzulaufen. */
.tk-text[b-aiu8q4bzsf] { display: flex; flex-direction: column; gap: 0; min-width: 0; flex: 1; max-width: 760px; }
.tk-logo[b-aiu8q4bzsf] {
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 132px;
    height: 96px;
    padding: 8px;
    background: #fff;
    border-radius: var(--radius-surface);
    box-sizing: border-box;
}
.tk-gross .tk-logo[b-aiu8q4bzsf] { width: 168px; height: 112px; }
.tk-logo-bild[b-aiu8q4bzsf] { width: 100%; height: 100%; object-fit: contain; }

.tk-krumen[b-aiu8q4bzsf] { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; margin-bottom: 10px; font-size: 13px; color: #d4d4d4; }
.tk-krumen[b-aiu8q4bzsf]  a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }

.tk-kennung[b-aiu8q4bzsf] { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; }
.tk-kennung-text[b-aiu8q4bzsf] { color: #ff9a9c; font-size: 12px; font-weight: 650; letter-spacing: .08em; text-transform: uppercase; }
.tk-kennung-zusatz[b-aiu8q4bzsf] { color: #d4d4d4; font-size: 13px; line-height: 1.5; }
.tk-kennung-linie[b-aiu8q4bzsf] { width: 24px; height: 1px; background: #ffffff59; }
.tk-titel[b-aiu8q4bzsf] {
    margin: 6px 0 10px;
    color: #f5f5f5;
    font-size: clamp(28px, 2.8vw, 40px);
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: -.025em;
    word-break: normal;
    overflow-wrap: break-word;
    hyphens: none;
}
/* Der rote Punkt hinter dem Titel (Entwurf .hero h1::after); reine Gestaltung, steht nicht im Text. */
.tk-titel[b-aiu8q4bzsf]::after { content: "."; color: #ed2024; }
.tk-gross .tk-titel[b-aiu8q4bzsf] { font-size: clamp(30px, 3.2vw, 46px); }

.tk-meta[b-aiu8q4bzsf] { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 22px; color: #d4d4d4; font-size: 14px; }
.tk-untertitel[b-aiu8q4bzsf] { font-size: 14px; line-height: 1.5; color: #f5f5f5; font-weight: 650; }
.tk-ort[b-aiu8q4bzsf] { display: flex; align-items: center; gap: 6px; }
.tk-ort svg[b-aiu8q4bzsf] { flex-shrink: 0; }
.tk-sponsor[b-aiu8q4bzsf] { display: flex; align-items: baseline; gap: 8px; min-width: 0; }
.tk-sponsor-label[b-aiu8q4bzsf] { color: #d4d4d4; font-size: 12px; text-transform: uppercase; letter-spacing: .06em; }
.tk-sponsor-text[b-aiu8q4bzsf] { display: flex; flex-wrap: wrap; gap: 0 14px; color: #d4d4d4; font-size: 14px; line-height: 1.5; }
.tk-chips[b-aiu8q4bzsf] { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.tk-chip[b-aiu8q4bzsf] { display: inline-flex; align-items: center; gap: 6px; padding: 2px 10px; min-height: 26px; box-sizing: border-box; border: 1px solid #ffffff59; border-radius: var(--radius-pill); background: #ffffff14; color: #f5f5f5; font-size: 12px; font-weight: 600; line-height: 1.4; }
.tk-flagge[b-aiu8q4bzsf] { width: 20px; max-height: 14px; object-fit: contain; }

/* ---------- Teil 2: die Leiste unter dem Foto ---------- */
.tn-leiste[b-aiu8q4bzsf] { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; }
.tk-rechts[b-aiu8q4bzsf] { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; min-width: 0; }
.tk-kennzahlen[b-aiu8q4bzsf] { display: flex; flex-wrap: wrap; gap: 8px 10px; }
.tk-kennzahl[b-aiu8q4bzsf] { display: inline-flex; gap: 6px; min-height: 34px; padding: 0 14px; box-sizing: border-box; align-items: center; border: 1px solid var(--border-strong); border-radius: var(--radius-pill); color: var(--fg); font-size: 13px; line-height: 1.4; }
.tk-kennzahl-wert[b-aiu8q4bzsf] { font-weight: 700; font-variant-numeric: tabular-nums; }
.tk-kennzahl-label[b-aiu8q4bzsf] { color: var(--muted); font-weight: 500; }
.tk-disziplinen[b-aiu8q4bzsf] { display: flex; flex-wrap: wrap; gap: 8px; }
.tk-disziplinen .tk-chip[b-aiu8q4bzsf] { min-height: 34px; padding: 0 14px; border: 1px solid var(--border-strong); background: transparent; color: var(--fg); font-size: 13px; }
.tk-disziplin-bild[b-aiu8q4bzsf] { width: 28px; height: 21px; object-fit: contain; background: #fff; border-radius: 3px; padding: 1px; }
.tk-rechts-unten[b-aiu8q4bzsf] { max-width: 100%; }
/* Knöpfe rechts; fehlt links etwas, rutschen sie trotzdem an den rechten Rand. */
.tk-aktionen[b-aiu8q4bzsf] { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-left: auto; }

/* Die Knöpfe kommen als fremdes Markup der Seiten (tk-btn …) und sehen aus wie Sedna-.btn
   (gleiche Variablen: Höhe, Radius, Hintergrund, Rahmen, Schrift). Umweg, bis die Seiten auf
   „btn“-Markup umgestellt sind; danach fallen diese Regeln weg. */
.tk-aktionen[b-aiu8q4bzsf]  .tk-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: var(--control-height);
    padding: var(--space-3) var(--space-7);
    border: 1px solid var(--border);
    border-radius: var(--radius-control);
    color: var(--fg);
    background: var(--bg-elevated);
    text-decoration: none;
    font-size: var(--text-4);
    font-family: inherit;
    font-weight: 500;
    line-height: 1.4;
    white-space: nowrap;
    cursor: pointer;
    box-sizing: border-box;
}
.tk-aktionen[b-aiu8q4bzsf]  .tk-btn:hover { background: var(--bg-hover); border-color: var(--border-strong); }
/* „zweit“ = Markenton (Sedna .btn--brand): helle Markenfläche, Markenschrift. */
.tk-aktionen[b-aiu8q4bzsf]  .tk-btn-zweit { color: var(--brand-text); background: var(--brand-tint); border-color: var(--brand-soft); }
.tk-aktionen[b-aiu8q4bzsf]  .tk-btn-zweit:hover { background: var(--brand-tint-strong); border-color: var(--brand); }
.tk-aktionen[b-aiu8q4bzsf]  .tk-btn:focus-visible { outline: none; box-shadow: 0 0 0 2px var(--focus-ring); }
.tk-aktionen[b-aiu8q4bzsf]  .tk-btn svg { flex-shrink: 0; }

/* ---------- Handy: Band untereinander, Leiste gestreckt ---------- */
@media (max-width: 700px) {
    /* ERSETZT am 2026-11-15: .tk-schatten { background: linear-gradient(180deg, #121212e6 0, #121212cc 100%); } und
       .tk-inhalt { padding-block: 22px; } – Grund: Schleier und Abstand kommen von Sedna (am Handy ist das ganze Band „stark“). */
    .tk-banner[b-aiu8q4bzsf] { --hero-height: 0px; }
    /* Handy: Text über der ganzen Breite, darum gleichmäßiger Schleier von oben nach unten (wie .its-kopf). */
    .tk-banner[b-aiu8q4bzsf]::before { background: linear-gradient(180deg, rgba(0,0,0,.5) 0, rgba(0,0,0,.72) 100%); }
    .tk-links[b-aiu8q4bzsf] { flex-direction: column; align-items: flex-start; gap: 14px; max-width: none; }
    .tk-text[b-aiu8q4bzsf] { width: 100%; flex: none; }
    .tk-logo[b-aiu8q4bzsf], .tk-gross .tk-logo[b-aiu8q4bzsf] { width: 104px; height: 76px; padding: 6px; }
    .tk-titel[b-aiu8q4bzsf], .tk-gross .tk-titel[b-aiu8q4bzsf] { font-size: 28px; }
    .tk-meta[b-aiu8q4bzsf] { gap: 4px 14px; font-size: 13px; }
    .tk-sponsor-text[b-aiu8q4bzsf] { font-size: 13px; }
    .tk-aktionen[b-aiu8q4bzsf] { width: 100%; margin-left: 0; }
    .tk-aktionen[b-aiu8q4bzsf]  .tk-btn { flex: 1; min-height: 44px; }
    .tk-rechts[b-aiu8q4bzsf] { width: 100%; }
}
/* /Components/Turnierschleife.razor.rz.scp.css */
/*
    Größe und Anmutung der Turnierschleife.

    Die Form selbst steckt im SVG der Komponente, hier steht nur, wie groß sie erscheint
    und wie der Sieger hervorgehoben wird.
*/

/*
    Der Halter sorgt dafür, dass die Schleife denselben Platz einnimmt wie die graue Plakette
    der nicht platzierten Reiter (dort min-width: 44px). Stehen beide in derselben Liste
    untereinander, springt die Rang-Spalte sonst sichtbar hin und her. Die Schleife selbst
    bleibt unverzerrt und sitzt mittig. (Frank, 12.09.2026)
*/
.turnierschleife-halter[b-stl3pr3ru3] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
}

.turnierschleife[b-stl3pr3ru3] {
    display: block;
    width: 32px;
    height: 41px;

    /* Die Bänder laufen bis an den unteren Rand des Zeichenbereichs. Ohne diese Angabe
       würde eine Tabellenzeile die Schleife an ihrer Unterkante abschneiden. */
    overflow: visible;

    /* Die Zeilenhöhe soll sich an der Schleife ausrichten und nicht an der Schriftzeile,
       in der sie steht - sonst entsteht unter jeder Schleife ein zufälliger Zwischenraum. */
    vertical-align: middle;
}

/* Die Platzziffer in der Mitte. Bewusst hier und nicht im SVG: So bleibt sie über die
   Schriftfamilie der Seite gesteuert und passt zum übrigen Text. */
.turnierschleife text[b-stl3pr3ru3] {
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-size: 10.5px;
    font-weight: 700;

    /* Die Schleife ist klein; ohne engere Laufweite wird eine zweistellige Zahl zu breit. */
    letter-spacing: -0.02em;
}

/*
    Der Sieger bekommt zusätzlich einen weichen Schimmer.

    Warum: Auf dem dunklen Seitenhintergrund ist die weiße Schleife von Platz 3 heller als
    das Gold von Platz 1 - der dritte Platz sprang dadurch stärker ins Auge als der Sieger.
    Die Schleifenfarben bleiben fachlich korrekt, nur das Gewicht wird geradegerückt
    (Frank, 12.09.2026).
*/
.turnierschleife-sieger[b-stl3pr3ru3] {
    filter: drop-shadow(0 0 3px rgba(242, 201, 92, 0.5));
}

/*
    Auf schmalen Bildschirmen kleiner.

    Die Grenze liegt bei 599,98 Pixeln - genau dort, wo die Equi-Score-Ergebnisliste von der
    Tabelle auf ihre Kartenansicht umschaltet (siehe EquiscoreErgebnisliste.razor). Auf einem
    Handy steht dann jede Angabe untereinander, und eine Liste mit dreißig Startern wird sonst
    unnötig lang. Frank hat den ursprünglich gemeldeten Fehler auf genau so einem Bildschirm
    entdeckt.

    Bewusst NICHT 760 Pixel: Das ist die Grenze der Archiv-Listen, und dazwischen - auf einem
    Tablet im Hochformat - soll die Schleife noch in voller Größe stehen. Eine der beiden
    Grenzen muss es sein; die engere ist die richtige, weil nur dort der Platz wirklich knapp
    wird.
*/
@media (max-width: 599.98px) {
    /* --- ZURÜCKGENOMMEN am 2026-09-12: Hier schrumpfte der Halter auf schmalen Bildschirmen
       auf 36 Pixel mit. Verworfene Fassung:
       .turnierschleife-halter { min-width: 36px; }
       Grund: Die graue Plakette der nicht platzierten Reiter bleibt auf allen Seiten bei
       44 Pixeln. Der schrumpfende Halter hat damit auf dem Handy genau das Springen der
       Rang-Spalte wieder eingeführt, das er verhindern sollte - nur 8 Pixel statt 12, also
       subtiler und schwerer zu bemerken. Gefunden hat es die Codex-Zweitprüfung.
       Der Halter bleibt deshalb überall 44 Pixel breit. Die kleinere Schleife hat dann auf
       dem Handy etwas mehr Luft um sich - das ist der Preis dafür, dass nichts springt, und
       er kostet keinen Platz: Die Spalte muss für die Plakette ohnehin 44 Pixel breit sein. --- */

    .turnierschleife[b-stl3pr3ru3] {
        width: 26px;
        height: 33px;
    }

    .turnierschleife text[b-stl3pr3ru3] {
        font-size: 11.5px;
    }
}

/* Bewegungsempfindliche Nutzer: Der Schimmer ist statisch, hier gibt es nichts zu
   entschärfen - der Block steht nur, damit ein späterer Animationswunsch nicht
   unbedacht hinzukommt. */
@media (prefers-reduced-motion: reduce) {
    .turnierschleife[b-stl3pr3ru3] {
        transition: none;
    }
}

/*
    Größen der neuen Ergebnisansicht (Turnierseiten-Umbau Entwurf D, 14.11.2026).

    Bewusst als eigene Klassen mit doppeltem Selektor und OHNE Bildschirmregel: Die Ergebnisansicht
    hat PC- und Handy-Teil beide im Markup und nennt die Größe je Teil selbst (Parameter Groesse).
    Der doppelte Selektor sorgt dafür, dass diese Maße auch den Handy-Block oben (26×33 unter
    600 px) überstimmen. Die Standardgröße bleibt unverändert, damit Bestandsseiten sich nicht ändern.
*/
.turnierschleife.tn-s-liste[b-stl3pr3ru3] { width: 54px; height: 69px; }
.turnierschleife.tn-s-liste-handy[b-stl3pr3ru3] { width: 48px; height: 61px; }
.turnierschleife.tn-s-podium[b-stl3pr3ru3] { width: 80px; height: 100px; }
.turnierschleife.tn-s-podium1[b-stl3pr3ru3] { width: 100px; height: 126px; }
.turnierschleife.tn-s-podium-handy[b-stl3pr3ru3] { width: 60px; height: 76px; }
.turnierschleife.tn-s-podium1-handy[b-stl3pr3ru3] { width: 80px; height: 100px; }
/* /Components/WertungsZeilen.razor.rz.scp.css */
/*
    Aussehen der Wertungszeilen.

    WARUM UNTEREINANDER: Frank hat am 13.09.2026 entschieden, dass die Werte eines Reiters
    nicht mehr in einer Zeile nebeneinander stehen, getrennt durch einen senkrechten Strich
    ("H: 69,688 % | C: 68,750 %"). Stattdessen bekommt jeder Wert seine eigene Zeile, und ein
    vorhandenes Gesamt steht fett unter einem feinen Trennstrich.

    FALLS ES DOCH WIEDER NEBENEINANDER SOLL: Dafür genügt es, in der ersten Regel die
    Richtung von "column" auf "row" umzustellen und den Abstand (gap) etwas zu vergrößern,
    damit die Werte nicht aneinanderkleben. Der Trennstrich müsste dann senkrecht werden
    (border-left statt border-top). Am Aufbau der Seiten ändert sich dafür nichts.

    Diese Datei gilt für alle Stellen, die den Baustein benutzen (Live-Ticker am Rechner und
    auf dem Handy, Handy-Karte der Ergebnisliste). Deshalb bewusst ohne Bildschirmregeln:
    Das Aussehen soll überall gleich sein.
*/

/*
    Der Behälter. inline-flex, damit er sich wie ein Stück Text in eine Tabellenzelle oder
    eine Kartenzeile einfügt, innen aber die Zeilen untereinander stapelt.
    align-items: flex-start sorgt dafür, dass jede Zeile nur so breit ist wie ihr Text und
    alle linksbündig untereinander beginnen.

    text-align: left, weil der Baustein auch in rechtsbündigen Behältern sitzt (etwa in der
    Handy-Karte der Ergebnisliste). Die Zeilen sollen trotzdem linksbündig untereinander
    stehen - sonst beginnen "H:", "C:" und "M:" versetzt und die Noten lassen sich nicht
    mehr auf einen Blick vergleichen.
*/
.wertungszeilen[b-vrvf6wsfg0] {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.08rem;
    line-height: 1.25;
    text-align: left;
}

/*
    Eine einzelne Wertungszeile, z. B. "H: 69,688 %".

    font-weight: 400 steht hier ausdrücklich, obwohl das die normale Schriftstärke ist: Der
    umgebende Behälter einer Seite kann selbst fett sein (so in der Handy-Karte der
    Ergebnisliste). Ohne diese Angabe würden die Einzelnoten die Fettschrift erben, und das
    fette Gesamt hebt sich nicht mehr von ihnen ab.
*/
.wertungszeilen-zeile[b-vrvf6wsfg0] {
    display: block;
    font-weight: 400;
    /* Nachtrag 13.09.2026 (Version 1.1.40): Eine Wertungszeile wie "H: 72,353 %" darf nie
       innerhalb der Zeile umbrechen. Live gemessen in 1.1.39: In der Computer-Tabelle des
       Live-Tickers ist die Spalte "Wertung" schmal (bei 1024 Pixeln Fensterbreite nur 88 Pixel),
       dort brachen 24 von 26 Zeilen in "H:" / "72,353" / "%" auseinander, bei 1280 Pixeln noch jede
       Gesamtzeile. Mit nowrap bleibt jede Angabe einzeilig; die Tabellenspalte wird dafür etwas breiter. */
    white-space: nowrap;
}

/*
    Der feine Strich zwischen den Einzelwerten und dem Gesamt.

    align-self: stretch zieht ihn über die volle Breite des Behälters, also so breit wie die
    längste Zeile - sonst hätte er als leeres Element gar keine Breite.
    Die Farbe ist die Sekundärtextfarbe des Themes, stark abgeschwächt: Der Strich soll
    gliedern, nicht auffallen. Über die Variable passt er sich hellem und dunklem
    Erscheinungsbild automatisch an (definiert in wwwroot/css/mud-compat.css).
*/
.wertungszeilen-trenner[b-vrvf6wsfg0] {
    display: block;
    align-self: stretch;
    height: 0;
    margin: 0.12rem 0;
    border-top: 1px solid color-mix(in srgb, var(--mud-palette-text-secondary) 35%, transparent);
}

/* Die Gesamtzeile, z. B. "Gesamt: 68,646 %" - fett, weil sie das eigentliche Ergebnis ist. */
.wertungszeilen-gesamt[b-vrvf6wsfg0] {
    display: block;
    font-weight: 700;
    /* Nachtrag 13.09.2026 (Version 1.1.40): Auch "Gesamt: 71,225 %" bleibt einzeilig — bei 1280 Pixeln
       Fensterbreite brach die fette Gesamtzeile im Live-Ticker sonst bei jedem Reiter um (siehe oben). */
    white-space: nowrap;
}
/* /Layout/MainLayout.razor.rz.scp.css */
.page[b-3sfrbqmz31] {
    position: relative;
    display: flex;
    flex-direction: column;
}

main[b-3sfrbqmz31] {
    flex: 1;
}

.sidebar[b-3sfrbqmz31] {
    background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%);
}

.top-row[b-3sfrbqmz31] {
    background-color: #f7f7f7;
    border-bottom: 1px solid #d6d5d5;
    justify-content: flex-end;
    height: 3.5rem;
    display: flex;
    align-items: center;
}

    .top-row[b-3sfrbqmz31]  a, .top-row[b-3sfrbqmz31]  .btn-link {
        white-space: nowrap;
        margin-left: 1.5rem;
        text-decoration: none;
    }

    .top-row[b-3sfrbqmz31]  a:hover, .top-row[b-3sfrbqmz31]  .btn-link:hover {
        text-decoration: underline;
    }

    .top-row[b-3sfrbqmz31]  a:first-child {
        overflow: hidden;
        text-overflow: ellipsis;
    }

@media (max-width: 640.98px) {
    .top-row[b-3sfrbqmz31] {
        justify-content: space-between;
    }

    .top-row[b-3sfrbqmz31]  a, .top-row[b-3sfrbqmz31]  .btn-link {
        margin-left: 0;
    }
}

@media (min-width: 641px) {
    .page[b-3sfrbqmz31] {
        flex-direction: row;
    }

    .sidebar[b-3sfrbqmz31] {
        width: 250px;
        height: 100vh;
        position: sticky;
        top: 0;
    }

    .top-row[b-3sfrbqmz31] {
        position: sticky;
        top: 0;
        z-index: 1;
    }

    .top-row.auth[b-3sfrbqmz31]  a:first-child {
        flex: 1;
        text-align: right;
        width: 0;
    }

    .top-row[b-3sfrbqmz31], article[b-3sfrbqmz31] {
        padding-left: 2rem !important;
        padding-right: 1.5rem !important;
    }
}

.site-appbar-logo[b-3sfrbqmz31] {
    height: 40px;
    margin-left: 16px;
}

/* --- STILLGELEGT am 08.09.2026: Gestaltung des roten Feedback-Riegels und seines
       Zwillings in der Kopfzeile. Beide Bedienelemente sind in MainLayout.razor
       auskommentiert (Grund dort ausführlich beschrieben), deshalb greift diese
       Gestaltung ins Leere. Sie bleibt stehen, damit das Wiedereinschalten nur aus
       dem Entfernen der Kommentarklammern besteht. ---
.site-feedback-appbar-trigger {
    display: none;
}

.site-feedback-ribbon {
    position: fixed;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    z-index: 1200;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.85rem 0.8rem 0.9rem 0.55rem;
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-right: none;
    border-radius: 18px 0 0 18px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0)),
        linear-gradient(180deg, #ed2024, #971417);
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.32);
    color: #fff;
    cursor: pointer;
    transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
}

.site-feedback-ribbon:hover {
    transform: translateY(-50%) translateX(-4px);
    box-shadow: 0 22px 48px rgba(0, 0, 0, 0.36);
    filter: saturate(1.05);
}

.site-feedback-ribbon:focus-visible {
    outline: 2px solid rgba(255, 255, 255, 0.85);
    outline-offset: 2px;
}

.site-feedback-ribbon__badge {
    width: 12px;
    height: 12px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.16);
    flex: 0 0 auto;
}

.site-feedback-ribbon__text {
    writing-mode: vertical-rl;
    text-orientation: mixed;
    transform: rotate(180deg);
    letter-spacing: 0.2em;
    font-size: 0.84rem;
    font-weight: 800;
    text-transform: uppercase;
}
*/

[b-3sfrbqmz31] .site-appbar-title {
    letter-spacing: 0.01em;
}

/* Abgedunkelter Hintergrund hinter dem offenen Menü — ergänzt am 05.09.2026 (Ticket #3987).
   Das Element wird in MainLayout.razor nur gerendert, solange das Menü offen ist. Am Desktop
   steht das Menü dauerhaft neben dem Inhalt, dort darf nichts abgedunkelt werden — deshalb ist
   die Fläche standardmäßig unsichtbar und wird erst in der Handy-Regel weiter unten eingeblendet. */
.site-drawer-backdrop[b-3sfrbqmz31] {
    display: none;
}

/* Handy-Breite: Die Grenze ist bewusst 959.98px und nicht 960px, damit sie exakt zur
   JavaScript-Entscheidung passt (equiDeckViewport.isDesktopLayout: Breite >= 960 = Desktop).
   Bei genau 960 px öffnet das Programm das Menü beim Start automatisch als Desktop-Menü; würde
   dort der Vorhang erscheinen, wäre der Inhalt dauerhaft abgedunkelt und unbedienbar. */
@media (max-width: 959.98px) {
    .site-drawer-backdrop[b-3sfrbqmz31] {
        display: block;
        position: fixed;
        /* Beginnt unter der Kopfzeile: Die AppBar ist auf schmalen Bildschirmen 52 px hoch
           (mud-compat.css, @media max-width 959.98px), das Menü selbst startet dort ebenfalls bei
           52 px. So bleibt der Hamburger-Knopf in der Kopfzeile frei antippbar. */
        inset: 52px 0 0 0;
        /* Schichtung: AppBar 1200 > Drawer 1190 > diese Fläche 1189 > Seiteninhalt.
           Damit liegt der Vorhang über dem Inhalt, aber unter Menü und Kopfzeile. */
        z-index: 1189;
        background: rgba(0, 0, 0, 0.45);
        cursor: pointer;
    }
}

/* --- STILLGELEGT am 08.09.2026: Diese Regel schaltete auf schmalen Bildschirmen und
       Touchgeräten vom Riegel auf den Knopf in der Kopfzeile um. Beide sind stillgelegt,
       also wird nichts mehr umgeschaltet. ---
@media (max-width: 1280px), (pointer: coarse) {
    .site-feedback-ribbon {
        display: none;
    }

    .site-feedback-appbar-trigger {
        display: inline-flex;
        align-items: center;
    }
}
*/

/* Geändert am 05.09.2026 (Codex-Nacharbeit zu Ticket #3987): vorher max-width 960px. Bei genau
   960 px gilt laut JavaScript und DrawerLayoutRegeln bereits Desktop; die Handy-Maße dürfen dort
   nicht mehr greifen. Dieselbe Grenze wie beim Vorhang oben und in mud-compat.css. */
@media (max-width: 959.98px) {
    .site-appbar-logo[b-3sfrbqmz31] {
        height: 32px;
        margin-left: 8px;
    }

    [b-3sfrbqmz31] .site-appbar-title {
        font-size: 1rem !important;
    }

    [b-3sfrbqmz31] .site-shell {
        margin-top: 0.75rem !important;
        margin-bottom: 1.5rem !important;
        padding-left: 0.65rem !important;
        padding-right: 0.65rem !important;
    }
}

@media (max-width: 640px) {
    .site-appbar-logo[b-3sfrbqmz31] {
        height: 28px;
        margin-left: 6px;
    }

    [b-3sfrbqmz31] .site-appbar-title {
        display: none !important;
    }

    [b-3sfrbqmz31] .site-shell {
        margin-top: 0.6rem !important;
        margin-bottom: 1.25rem !important;
        padding-left: 0.5rem !important;
        padding-right: 0.5rem !important;
    }
}
/* /Layout/NavMenu.razor.rz.scp.css */
.navbar-toggler[b-xjg6ljx32o] {
    background-color: rgba(255, 255, 255, 0.1);
}

.top-row[b-xjg6ljx32o] {
    height: 3.5rem;
    background-color: rgba(0,0,0,0.4);
}

.navbar-brand[b-xjg6ljx32o] {
    font-size: 1.1rem;
}

.bi[b-xjg6ljx32o] {
    display: inline-block;
    position: relative;
    width: 1.25rem;
    height: 1.25rem;
    margin-right: 0.75rem;
    top: -1px;
    background-size: cover;
}

.bi-house-door-fill-nav-menu[b-xjg6ljx32o] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-house-door-fill' viewBox='0 0 16 16'%3E%3Cpath d='M6.5 14.5v-3.505c0-.245.25-.495.5-.495h2c.25 0 .5.25.5.5v3.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.146-.354L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.354 1.146a.5.5 0 0 0-.708 0l-6 6A.5.5 0 0 0 1.5 7.5v7a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5Z'/%3E%3C/svg%3E");
}

.bi-plus-square-fill-nav-menu[b-xjg6ljx32o] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-plus-square-fill' viewBox='0 0 16 16'%3E%3Cpath d='M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2zm6.5 4.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3a.5.5 0 0 1 1 0z'/%3E%3C/svg%3E");
}

.bi-list-nested-nav-menu[b-xjg6ljx32o] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-list-nested' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M4.5 11.5A.5.5 0 0 1 5 11h10a.5.5 0 0 1 0 1H5a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 3 7h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 1 3h10a.5.5 0 0 1 0 1H1a.5.5 0 0 1-.5-.5z'/%3E%3C/svg%3E");
}

.bi-graph-up-nav-menu[b-xjg6ljx32o] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-graph-up' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M0 0h1v15h15v1H0zm14.817 3.113a.5.5 0 0 1 .07.704l-4.5 5.5a.5.5 0 0 1-.74.037L7.06 6.767l-3.656 5.027a.5.5 0 0 1-.808-.588l4-5.5a.5.5 0 0 1 .758-.06l2.609 2.61 4.15-5.073a.5.5 0 0 1 .704-.07'/%3E%3C/svg%3E");
}

.bi-broadcast-nav-menu[b-xjg6ljx32o] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-broadcast' viewBox='0 0 16 16'%3E%3Cpath d='M3.05 3.05a7 7 0 0 0 0 9.9.5.5 0 0 1-.707.707 8 8 0 0 1 0-11.314.5.5 0 0 1 .707.707m2.122 2.122a4 4 0 0 0 0 5.656.5.5 0 1 1-.708.708 5 5 0 0 1 0-7.072.5.5 0 0 1 .708.708m5.656-.708a.5.5 0 0 1 .708 0 5 5 0 0 1 0 7.072.5.5 0 1 1-.708-.708 4 4 0 0 0 0-5.656.5.5 0 0 1 0-.708m2.122-2.12a.5.5 0 0 1 .707 0 8 8 0 0 1 0 11.313.5.5 0 0 1-.707-.707 7 7 0 0 0 0-9.9.5.5 0 0 1 0-.707M8 7a1 1 0 1 0 0 2 1 1 0 0 0 0-2'/%3E%3C/svg%3E");
}

.bi-archive-nav-menu[b-xjg6ljx32o] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-archive' viewBox='0 0 16 16'%3E%3Cpath d='M0 2a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1v7.5a2.5 2.5 0 0 1-2.5 2.5h-9A2.5 2.5 0 0 1 1 12.5V5a1 1 0 0 1-1-1zm2 3v7.5A1.5 1.5 0 0 0 3.5 14h9a1.5 1.5 0 0 0 1.5-1.5V5zm13-3H1v2h14zM5 7.5a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1-.5-.5'/%3E%3C/svg%3E");
}

.nav-item[b-xjg6ljx32o] {
    font-size: 0.9rem;
    padding-bottom: 0.5rem;
}

    .nav-item:first-of-type[b-xjg6ljx32o] {
        padding-top: 1rem;
    }

    .nav-item:last-of-type[b-xjg6ljx32o] {
        padding-bottom: 1rem;
    }

    .nav-item[b-xjg6ljx32o]  a {
        color: #d7d7d7;
        border-radius: 4px;
        height: 3rem;
        display: flex;
        align-items: center;
        line-height: 3rem;
    }

.nav-item[b-xjg6ljx32o]  a.active {
    background-color: rgba(255,255,255,0.37);
    color: white;
}

.nav-item[b-xjg6ljx32o]  a:hover {
    background-color: rgba(255,255,255,0.1);
    color: white;
}

@media (min-width: 641px) {
    .navbar-toggler[b-xjg6ljx32o] {
        display: none;
    }

    .collapse[b-xjg6ljx32o] {
        /* Never collapse the sidebar for wide screens */
        display: block;
    }
    
    .nav-scrollable[b-xjg6ljx32o] {
        /* Allow sidebar to scroll for tall menus */
        height: calc(100vh - 3.5rem);
        overflow-y: auto;
    }
}
/* /Pages/Admin/Zeiteinteilung/IndexEmbedded.razor.rz.scp.css */
.timeplanning-status[b-fj4egfyhbw] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-weight: 600;
    justify-content: center;
}

.timeplanning-status-ok[b-fj4egfyhbw] {
    color: #15803d;
}

.timeplanning-status-missing[b-fj4egfyhbw] {
    color: #b91c1c;
}

.timeplanning-shows-page[b-fj4egfyhbw] {
    margin-top: 4px;
}

.timeplanning-shows-section-toggle[b-fj4egfyhbw] {
    width: 100%;
    min-height: 44px;
    display: flex;
    align-items: center;
    padding: 10px 12px;
    box-sizing: border-box;
}

.timeplanning-shows-section-future[b-fj4egfyhbw] {
    background-color: color-mix(in srgb, #38bdf8 12%, transparent);
    cursor: pointer;
}

.timeplanning-shows-section-running[b-fj4egfyhbw] {
    background-color: color-mix(in srgb, #22c55e 16%, transparent);
    border-left: 4px solid #22c55e;
}

.timeplanning-shows-col-check[b-fj4egfyhbw] {
    text-align: center;
    white-space: nowrap;
}

.timeplanning-shows-col-actions[b-fj4egfyhbw] {
    text-align: right;
    white-space: nowrap;
}

[b-fj4egfyhbw] .timeplanning-shows-table tbody tr:hover {
    background-color: color-mix(in srgb, var(--mud-palette-primary) 14%, transparent) !important;
    transition: background-color 0.2s ease;
}

@media (min-width: 761px) {
    /* Das feste Raster muss auf dem echten table-Element liegen, nicht auf dem MudTable-Wrapper. */
    [b-fj4egfyhbw] .timeplanning-shows-table .mud-table-container > table {
        width: 100%;
        table-layout: fixed;
    }

    /* Die Summe bleibt bewusst bei 100 %, damit beide Tabellen identisch ausgerichtet bleiben. */
    [b-fj4egfyhbw] .timeplanning-shows-table .timeplanning-shows-col-show {
        width: 22%;
    }

    [b-fj4egfyhbw] .timeplanning-shows-table .timeplanning-shows-col-date {
        width: 19%;
        white-space: nowrap;
    }

    [b-fj4egfyhbw] .timeplanning-shows-table .timeplanning-shows-col-venue {
        width: 25%;
    }

    [b-fj4egfyhbw] .timeplanning-shows-table .timeplanning-shows-col-status {
        width: 10%;
        white-space: nowrap;
    }

    [b-fj4egfyhbw] .timeplanning-shows-table .timeplanning-shows-col-check {
        width: 7%;
    }

    [b-fj4egfyhbw] .timeplanning-shows-table .timeplanning-shows-col-actions {
        width: 10%;
    }

    [b-fj4egfyhbw] .timeplanning-shows-table td.timeplanning-shows-col-actions,
    [b-fj4egfyhbw] .timeplanning-shows-table th.timeplanning-shows-col-actions,
    [b-fj4egfyhbw] .timeplanning-shows-table td.timeplanning-shows-col-check,
    [b-fj4egfyhbw] .timeplanning-shows-table th.timeplanning-shows-col-check {
        text-align: center;
    }

    [b-fj4egfyhbw] .timeplanning-shows-table td.timeplanning-shows-col-actions,
    [b-fj4egfyhbw] .timeplanning-shows-table th.timeplanning-shows-col-actions {
        text-align: right;
    }
}

[b-fj4egfyhbw] .schedule-hero {
    width: 100%;
    border-radius: 16px;
    border: 1px solid color-mix(in srgb, var(--mud-palette-primary) 24%, transparent);
    background:
        radial-gradient(circle at 12% 18%, color-mix(in srgb, var(--mud-palette-primary) 18%, transparent), transparent 34%),
        radial-gradient(circle at 82% 24%, color-mix(in srgb, #0f766e 18%, transparent), transparent 32%),
        linear-gradient(145deg, color-mix(in srgb, var(--mud-palette-surface) 94%, transparent), color-mix(in srgb, var(--mud-palette-surface) 86%, black 14%));
}

.schedule-hero-header[b-fj4egfyhbw],
.schedule-day-header[b-fj4egfyhbw],
.schedule-day-header-main[b-fj4egfyhbw] {
    display: flex;
    align-items: center;
}

.schedule-hero-header[b-fj4egfyhbw] {
    justify-content: space-between;
    gap: 1rem;
}

.schedule-hero-header-editor[b-fj4egfyhbw] {
    align-items: flex-start;
}

.schedule-hero-copy[b-fj4egfyhbw] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    min-width: 0;
}

.schedule-chip-row[b-fj4egfyhbw] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.35rem;
}

.schedule-hero-actions[b-fj4egfyhbw] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    justify-content: flex-end;
}

.timeplanning-mail-message-panel[b-fj4egfyhbw] {
    display: grid;
    gap: 8px;
    max-width: 760px;
    padding: 14px;
    border: 1px solid color-mix(in srgb, var(--mud-palette-primary) 24%, transparent);
    border-radius: 14px;
    background: color-mix(in srgb, var(--mud-palette-surface) 94%, var(--mud-palette-primary) 6%);
}

.timeplanning-mail-message-input[b-fj4egfyhbw] {
    min-height: 112px;
    resize: vertical;
    line-height: 1.45;
}

[b-fj4egfyhbw] .schedule-notice-panel {
    width: 100%;
    border-radius: 14px;
    border: 1px solid color-mix(in srgb, var(--mud-palette-primary) 30%, transparent);
    background:
        linear-gradient(180deg, color-mix(in srgb, var(--mud-palette-surface) 98%, color-mix(in srgb, var(--mud-palette-primary) 10%, transparent) 2%), color-mix(in srgb, var(--mud-palette-surface) 94%, #151922 6%));
    box-shadow: 0 10px 22px rgba(0, 0, 0, 0.16);
}

.schedule-editor-toolbar[b-fj4egfyhbw] {
    width: 100%;
}

.timeplanning-sticky-panel[b-fj4egfyhbw] {
    position: sticky;
    top: 12px;
    z-index: 20;
}

[b-fj4egfyhbw] .schedule-day-group {
    width: 100%;
    border-radius: 14px;
    border: 1px solid color-mix(in srgb, var(--mud-palette-text-secondary) 26%, transparent);
    background:
        linear-gradient(180deg, color-mix(in srgb, var(--mud-palette-surface) 98%, #20242b 2%), color-mix(in srgb, var(--mud-palette-surface) 94%, #151922 6%));
    box-shadow: 0 10px 22px rgba(0, 0, 0, 0.18);
}

.schedule-day-stack[b-fj4egfyhbw] {
    width: 100%;
    align-items: stretch !important;
}

.schedule-day-header[b-fj4egfyhbw] {
    justify-content: space-between;
    gap: 1rem;
    padding: 0.2rem 0 0.95rem;
    border-bottom: 2px solid color-mix(in srgb, #ed2024 70%, transparent);
}

.schedule-day-header-main[b-fj4egfyhbw] {
    gap: 0.85rem;
    min-width: 0;
}

.schedule-day-badge[b-fj4egfyhbw] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 62px;
    padding: 0.45rem 0.55rem;
    border-radius: 12px;
    background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(239,239,239,0.96));
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.18);
}

.schedule-day-badge-number[b-fj4egfyhbw] {
    color: #222;
    font-size: 1.15rem;
    font-weight: 700;
    line-height: 1;
}

.schedule-day-badge-month[b-fj4egfyhbw] {
    margin-top: 0.2rem;
    padding: 0.1rem 0.45rem;
    border-radius: 999px;
    background: #ed2024;
    color: #fff;
    font-size: 0.64rem;
    font-weight: 700;
    line-height: 1.2;
}

.schedule-discipline-section[b-fj4egfyhbw] {
    width: 100%;
    border-radius: 12px;
    border: 1px solid color-mix(in srgb, var(--mud-palette-text-secondary) 16%, transparent);
    overflow: hidden;
    background: color-mix(in srgb, var(--mud-palette-surface) 95%, #0f1420 5%);
}

.schedule-discipline-header[b-fj4egfyhbw] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.7rem 0.85rem;
    background: color-mix(in srgb, var(--mud-palette-background-grey) 86%, transparent);
    border-bottom: 1px solid color-mix(in srgb, var(--mud-palette-text-secondary) 18%, transparent);
}

.schedule-discipline-section-dressage .schedule-discipline-header[b-fj4egfyhbw] {
    border-left: 4px solid #1d4ed8;
}

.schedule-discipline-section-jumping .schedule-discipline-header[b-fj4egfyhbw] {
    border-left: 4px solid #b91c1c;
}

.schedule-discipline-section-other .schedule-discipline-header[b-fj4egfyhbw] {
    border-left: 4px solid #64748b;
}

.schedule-grid-table[b-fj4egfyhbw] {
    width: 100%;
}

.schedule-grid-table-editor[b-fj4egfyhbw] {
    --schedule-grid-columns: minmax(7.4rem, 1.05fr) minmax(5.8rem, 0.85fr) minmax(16rem, 2.2fr) minmax(7rem, 0.9fr) minmax(7.4rem, 0.95fr) minmax(16rem, 1.65fr) minmax(14rem, 1.3fr);
}

.schedule-grid-header[b-fj4egfyhbw],
.schedule-grid-row[b-fj4egfyhbw] {
    display: grid;
    grid-template-columns: var(--schedule-grid-columns);
    align-items: stretch;
}

.schedule-grid-header[b-fj4egfyhbw] {
    background: color-mix(in srgb, var(--mud-palette-surface) 88%, #0b1019 12%);
    color: color-mix(in srgb, var(--mud-palette-text-primary) 82%, #cfd8e3 18%);
    font-size: 0.86rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    border-bottom: 1px solid color-mix(in srgb, var(--mud-palette-text-secondary) 18%, transparent);
}

.schedule-grid-row[b-fj4egfyhbw] {
    min-height: 58px;
    border-bottom: 1px solid color-mix(in srgb, var(--mud-palette-text-secondary) 14%, transparent);
}

.schedule-grid-row:nth-child(even)[b-fj4egfyhbw] {
    background: color-mix(in srgb, var(--mud-palette-text-primary) 7%, transparent);
}

.schedule-grid-row:hover[b-fj4egfyhbw] {
    background: rgba(63, 5, 8, 0.42);
    transition: background-color 0.18s ease;
}

.schedule-grid-row:last-child[b-fj4egfyhbw] {
    border-bottom: 0;
}

.schedule-grid-cell[b-fj4egfyhbw] {
    display: flex;
    align-items: center;
    min-width: 0;
    padding: 0.8rem 0.95rem;
    text-align: left;
}

.schedule-grid-cell-caption[b-fj4egfyhbw],
.schedule-grid-cell-editor-drop[b-fj4egfyhbw] {
    justify-content: flex-start;
    text-align: left;
}

.schedule-grid-cell-editor-field[b-fj4egfyhbw],
.schedule-grid-cell-editor-drop[b-fj4egfyhbw] {
    align-items: stretch;
}

[b-fj4egfyhbw] .schedule-number-chip {
    font-weight: 700 !important;
    letter-spacing: 0.01em;
    background: #b91c1c !important;
    border-color: #991b1b !important;
    color: #fff !important;
}

[b-fj4egfyhbw] .schedule-number-chip .mud-chip-content {
    color: #fff !important;
    font-weight: 700 !important;
}

.schedule-time-text[b-fj4egfyhbw] {
    font-weight: 700;
    color: color-mix(in srgb, var(--mud-palette-text-primary) 92%, white 8%);
}

.schedule-caption-text[b-fj4egfyhbw] {
    width: 100%;
    text-align: left;
    font-weight: 500;
    line-height: 1.35;
}

.schedule-edit-input[b-fj4egfyhbw] {
    background: color-mix(in srgb, var(--mud-palette-surface) 92%, #0f1420 8%);
    border-color: color-mix(in srgb, var(--mud-palette-text-secondary) 32%, transparent);
}

.schedule-dropzone[b-fj4egfyhbw] {
    width: 100%;
}

.timeplanning-sticky-grid[b-fj4egfyhbw] {
    display: grid;
    grid-template-columns: minmax(260px, 360px) minmax(0, 1fr);
    gap: 24px;
}

.timeplanning-selector-row[b-fj4egfyhbw],
.timeplanning-button-row[b-fj4egfyhbw] {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 12px;
}

.timeplanning-selector-row-search[b-fj4egfyhbw] {
    align-items: flex-start;
}

.timeplanning-select[b-fj4egfyhbw],
.timeplanning-input[b-fj4egfyhbw] {
    width: 100%;
    min-height: 38px;
    border: 1px solid color-mix(in srgb, var(--mud-palette-text-secondary) 28%, transparent);
    border-radius: 10px;
    padding: 8px 12px;
    background: var(--mud-palette-surface);
    color: var(--mud-palette-text-primary);
    box-sizing: border-box;
}

.timeplanning-select[b-fj4egfyhbw] {
    flex: 1 1 220px;
}

.timeplanning-judge-search[b-fj4egfyhbw] {
    flex: 1 1 300px;
    min-width: 260px;
}

.timeplanning-judge-search-status[b-fj4egfyhbw] {
    margin-top: 8px;
    font-size: 0.78rem;
    color: var(--mud-palette-text-secondary);
}

.timeplanning-judge-search-suggestions[b-fj4egfyhbw] {
    display: grid;
    gap: 8px;
    margin-top: 8px;
    max-height: 260px;
    overflow-y: auto;
    padding: 8px;
    border: 1px solid color-mix(in srgb, var(--mud-palette-primary) 20%, transparent);
    border-radius: 12px;
    background: color-mix(in srgb, var(--mud-palette-surface) 96%, var(--mud-palette-primary) 4%);
    box-shadow: 0 12px 24px rgba(15, 23, 42, 0.08);
}

.timeplanning-judge-search-suggestion[b-fj4egfyhbw] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    width: 100%;
    padding: 10px 12px;
    border: 1px solid color-mix(in srgb, var(--mud-palette-text-secondary) 20%, transparent);
    border-radius: 10px;
    background: color-mix(in srgb, var(--mud-palette-surface) 98%, transparent);
    color: var(--mud-palette-text-primary);
    cursor: pointer;
    text-align: left;
}

.timeplanning-judge-search-suggestion:hover[b-fj4egfyhbw] {
    border-color: color-mix(in srgb, var(--mud-palette-primary) 36%, transparent);
    background: color-mix(in srgb, var(--mud-palette-primary) 8%, transparent);
}

.timeplanning-judge-search-suggestion-name[b-fj4egfyhbw] {
    font-weight: 700;
}

.timeplanning-judge-search-suggestion-mail[b-fj4egfyhbw] {
    font-size: 0.8rem;
    color: var(--mud-palette-text-secondary);
}

.timeplanning-button[b-fj4egfyhbw] {
    min-height: 38px;
    border: none;
    border-radius: 10px;
    padding: 0 14px;
    background: var(--mud-palette-primary);
    color: white;
    cursor: pointer;
}

.timeplanning-button-secondary[b-fj4egfyhbw] {
    background: color-mix(in srgb, var(--mud-palette-text-secondary) 30%, transparent);
    color: var(--mud-palette-text-primary);
}

.timeplanning-button-danger[b-fj4egfyhbw] {
    background: #b91c1c;
    color: white;
}

.timeplanning-new-judge-panel[b-fj4egfyhbw] {
    display: grid;
    gap: 10px;
    margin-top: 14px;
    padding: 12px;
    border: 1px solid color-mix(in srgb, var(--mud-palette-primary) 20%, transparent);
    border-radius: 12px;
    background: color-mix(in srgb, var(--mud-palette-primary) 5%, transparent);
}

.timeplanning-import-panel[b-fj4egfyhbw] {
    display: grid;
    gap: 10px;
    margin-top: 14px;
    padding: 12px;
    border: 1px solid color-mix(in srgb, var(--mud-palette-primary) 24%, transparent);
    border-radius: 12px;
    background: color-mix(in srgb, var(--mud-palette-primary) 6%, transparent);
}

.timeplanning-judge-pool[b-fj4egfyhbw] {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 12px;
}

.timeplanning-judge-pool-card[b-fj4egfyhbw] {
    position: relative;
    min-width: 180px;
    max-width: 220px;
    padding: 12px 34px 12px 12px;
    border-radius: 14px;
    cursor: grab;
    border: 1px solid transparent;
    color: #1f2937;
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.08);
}

.timeplanning-judge-pool-card-active[b-fj4egfyhbw] {
    border-color: #b91c1c;
    box-shadow: 0 0 0 2px rgba(185, 28, 28, 0.16), 0 12px 24px rgba(15, 23, 42, 0.12);
}

.timeplanning-judge-pool-card-green[b-fj4egfyhbw] {
    background: color-mix(in srgb, #16a34a 18%, white);
    border-color: color-mix(in srgb, #16a34a 30%, transparent);
}

.timeplanning-judge-pool-card-orange[b-fj4egfyhbw] {
    background: color-mix(in srgb, #ea580c 18%, white);
    border-color: color-mix(in srgb, #ea580c 30%, transparent);
}

.timeplanning-judge-pool-card-red[b-fj4egfyhbw] {
    background: color-mix(in srgb, #dc2626 20%, white);
    border-color: color-mix(in srgb, #dc2626 42%, transparent);
}

.timeplanning-judge-pool-name[b-fj4egfyhbw] {
    font-weight: 700;
    color: #111827;
    line-height: 1.2;
}

.timeplanning-judge-pool-mail[b-fj4egfyhbw] {
    margin-top: 4px;
    font-size: 0.82rem;
    color: #374151;
    opacity: 1;
    word-break: break-word;
}

.timeplanning-judge-pool-actions[b-fj4egfyhbw] {
    margin-top: 10px;
}

.timeplanning-judge-preview-hint[b-fj4egfyhbw] {
    display: block;
    margin-top: 4px;
    color: #475569;
}

.timeplanning-judge-preview-link[b-fj4egfyhbw] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 34px;
    padding: 0 12px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.76);
    border: 1px solid rgba(185, 28, 28, 0.28);
    color: #991b1b;
    font-size: 0.78rem;
    font-weight: 700;
    text-decoration: none;
    box-shadow: 0 6px 14px rgba(153, 27, 27, 0.12);
}

.timeplanning-judge-preview-link:hover[b-fj4egfyhbw] {
    background: rgba(255, 255, 255, 0.92);
    color: #7f1d1d;
}

.timeplanning-judge-edit-panel[b-fj4egfyhbw] {
    display: grid;
    gap: 10px;
    margin-top: 14px;
    padding: 12px;
    border: 1px solid color-mix(in srgb, #b91c1c 24%, transparent);
    border-radius: 12px;
    background: color-mix(in srgb, #b91c1c 6%, var(--mud-palette-surface));
}

.timeplanning-judge-remove[b-fj4egfyhbw] {
    position: absolute;
    top: 8px;
    right: 8px;
    border: none;
    background: transparent;
    color: #6b7280;
    font-size: 18px;
    cursor: pointer;
}

.timeplanning-judge-remove:hover[b-fj4egfyhbw] {
    color: #111827;
}

.timeplanning-cell-dropzone[b-fj4egfyhbw] {
    min-height: 54px;
    border: 1px dashed color-mix(in srgb, var(--mud-palette-primary) 25%, transparent);
    border-radius: 12px;
    padding: 8px;
    background: color-mix(in srgb, var(--mud-palette-primary) 4%, transparent);
}

.timeplanning-drop-placeholder[b-fj4egfyhbw] {
    color: var(--mud-palette-text-secondary);
    font-size: 0.86rem;
}

.timeplanning-assignment-list[b-fj4egfyhbw] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.timeplanning-assignment-chip[b-fj4egfyhbw] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 8px 10px;
    border-radius: 10px;
    background: color-mix(in srgb, var(--mud-palette-primary) 14%, transparent);
    cursor: context-menu;
}

.timeplanning-assignment-remove[b-fj4egfyhbw] {
    border: none;
    background: transparent;
    color: inherit;
    font-size: 16px;
    cursor: pointer;
}

.timeplanning-position-menu-backdrop[b-fj4egfyhbw] {
    position: fixed;
    inset: 0;
    z-index: 89;
}

.timeplanning-position-menu[b-fj4egfyhbw] {
    position: fixed;
    box-sizing: border-box;
    width: 240px;
    max-width: calc(100vw - 24px);
    max-height: calc(100vh - 24px);
    overflow-y: auto;
    padding: 12px;
    border: 1px solid color-mix(in srgb, var(--mud-palette-primary) 22%, transparent);
    border-radius: 14px;
    background: var(--mud-palette-surface);
    box-shadow: 0 18px 32px rgba(0, 0, 0, 0.18);
    z-index: 90;
}

@media print {
    @page {
        size: A4 portrait;
        margin: 12mm;
    }

    body[b-fj4egfyhbw] {
        background: white !important;
    }

    .timeplanning-sticky-panel[b-fj4egfyhbw],
    button[b-fj4egfyhbw],
    .mud-button-root[b-fj4egfyhbw] {
        display: none !important;
    }

    .mud-container[b-fj4egfyhbw],
    .mud-paper[b-fj4egfyhbw] {
        max-width: 100% !important;
    }

    .schedule-grid-row[b-fj4egfyhbw] {
        break-inside: avoid;
    }

    .mud-paper[b-fj4egfyhbw] {
        box-shadow: none !important;
        border: 1px solid #d1d5db !important;
    }

    .schedule-grid-table-editor[b-fj4egfyhbw] {
        --schedule-grid-columns: 90px 70px minmax(180px, 1.2fr) 80px 90px minmax(170px, 1fr) minmax(140px, 0.85fr);
    }
}

@media (max-width: 1200px) {
    .schedule-grid-table-editor[b-fj4egfyhbw] {
        --schedule-grid-columns: 100px 86px minmax(220px, 1fr);
    }

    .schedule-grid-table-editor .schedule-grid-header > :nth-child(n+4)[b-fj4egfyhbw],
    .schedule-grid-table-editor .schedule-grid-row > :nth-child(n+4)[b-fj4egfyhbw] {
        grid-column: 1 / -1;
    }
}

@media (max-width: 900px) {
    .schedule-hero-header-editor[b-fj4egfyhbw] {
        flex-direction: column;
    }

    .schedule-hero-actions[b-fj4egfyhbw] {
        width: 100%;
        justify-content: flex-start;
    }

    .schedule-day-header[b-fj4egfyhbw] {
        align-items: flex-start;
        flex-direction: column;
    }

    .schedule-day-header-main[b-fj4egfyhbw] {
        width: 100%;
    }

    .schedule-day-badge[b-fj4egfyhbw] {
        min-width: 54px;
        padding: 0.35rem 0.45rem;
    }

    .timeplanning-shows-toolbar[b-fj4egfyhbw] {
        gap: 12px;
        flex-direction: column;
        align-items: stretch;
    }

    .timeplanning-shows-section-toggle[b-fj4egfyhbw] {
        padding-left: 10px;
        padding-right: 10px;
    }

    .timeplanning-sticky-grid[b-fj4egfyhbw] {
        grid-template-columns: 1fr;
    }
}
/* /Pages/Archiv.razor.rz.scp.css */
/* Archiv-Übersicht (H9, 14.11.2026). Nur echte Sedna-Variablen (--bg, --card-bg, --border, --fg, --fg-soft, --muted, --brand, --on-solid …). */

.tn-arch-jahre[b-7f3cnsy2p8] { display: flex; flex-wrap: wrap; gap: 6px; }
.tn-arch-suche[b-7f3cnsy2p8] { display: block; flex: 1 1 320px; min-width: 220px; max-width: 520px; }
.tn-arch-suche input[b-7f3cnsy2p8] { width: 100%; }
.tn-arch-suchstatus[b-7f3cnsy2p8] { margin: 0 0 14px; font-size: 14px; color: var(--muted); }

.archive-year-group[b-7f3cnsy2p8] { margin-top: 8px; padding: 6px 0 18px; border-top: 1px solid var(--border); }
.archive-year-group:first-of-type[b-7f3cnsy2p8] { margin-top: 0; border-top: 0; }
.archive-year-heading[b-7f3cnsy2p8] { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 6px 2px 12px; }
.archive-year-heading h2[b-7f3cnsy2p8] { margin: 0; font-size: 24px; color: var(--fg); }

.tn-arch-raster[b-7f3cnsy2p8] { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }

.archive-event-link[b-7f3cnsy2p8] { display: block; height: 100%; color: inherit; text-decoration: none; }
.archive-event-link:hover[b-7f3cnsy2p8], .archive-event-link:focus-visible[b-7f3cnsy2p8] { text-decoration: none; }
.archive-event-link:focus-visible .archive-event-card[b-7f3cnsy2p8] { outline: 2px solid var(--brand); outline-offset: 2px; }

.archive-event-card[b-7f3cnsy2p8] { height: 100%; box-sizing: border-box; overflow: hidden; background: var(--card-bg); border: 1px solid var(--border); border-radius: var(--radius-surface); transition: border-color .16s ease; }
.archive-event-card:hover[b-7f3cnsy2p8] { border-color: var(--brand); }

.archive-event-header[b-7f3cnsy2p8] { display: grid; grid-template-columns: 74px minmax(0, 1fr); align-items: stretch; min-height: 140px; border-bottom: 1px solid var(--border); background: var(--bg-hover); }
.archive-event-date-column[b-7f3cnsy2p8] { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; padding: 7px 5px; border-right: 1px solid var(--border); }
.archive-event-date-badge[b-7f3cnsy2p8] { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; min-width: 50px; padding: 4px 6px; border-radius: 8px; border: 1px solid var(--border-strong); background: var(--card-bg); }
.archive-event-date-badge-single[b-7f3cnsy2p8] { min-width: 54px; }
.archive-event-date-day[b-7f3cnsy2p8] { color: var(--fg); font-size: 16px; font-weight: 700; line-height: 1; }
.archive-event-date-month[b-7f3cnsy2p8] { margin-top: 3px; color: var(--on-solid); background: var(--brand); border-radius: 4px; padding: 1px 7px; font-size: 11px; font-weight: 700; letter-spacing: .03em; line-height: 1.2; }
.archive-event-date-arrow[b-7f3cnsy2p8] { color: var(--muted); font-size: 13px; line-height: 1; }

.archive-event-logo-wrap[b-7f3cnsy2p8] { min-height: 140px; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.archive-event-logo[b-7f3cnsy2p8] { width: 100%; height: 100%; object-fit: contain; padding: 10px; }
.archive-event-logo-fallback[b-7f3cnsy2p8] { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; }
.archive-event-logo-fallback-image[b-7f3cnsy2p8] { max-width: 86%; max-height: 86%; object-fit: contain; opacity: .88; }

.archive-event-content[b-7f3cnsy2p8] { padding: 12px 14px 14px; }
.archive-event-content p[b-7f3cnsy2p8] { margin: 0; }
.archive-event-title[b-7f3cnsy2p8] { margin: 0 0 4px; font-size: 17px; line-height: 1.25; color: var(--fg); }
.archive-event-location[b-7f3cnsy2p8] { font-size: 14px; color: var(--fg-soft); }
.archive-event-date-range[b-7f3cnsy2p8] { margin-top: 4px; font-size: 14px; color: var(--muted); }
.archive-event-vnr[b-7f3cnsy2p8], .archive-event-lead[b-7f3cnsy2p8] { margin-top: 2px; font-size: 13px; color: var(--muted); }

/* Kleine Handys: kompakte, zweispaltige Kartenköpfe, damit grosse Handys mehrere Karten im Blick haben. */
@media (max-width: 599.98px) {
    .tn-arch-raster[b-7f3cnsy2p8] { grid-template-columns: 1fr; gap: 10px; }
    .tn-arch-suchstatus[b-7f3cnsy2p8] { display: none; }
    .archive-year-heading h2[b-7f3cnsy2p8] { font-size: 18px; }
    .archive-event-header[b-7f3cnsy2p8] { grid-template-columns: 56px minmax(0, 1fr) !important; min-height: 88px !important; }
    .archive-event-date-column[b-7f3cnsy2p8] { padding: 4px 3px; gap: 2px; }
    .archive-event-date-badge[b-7f3cnsy2p8] { min-width: 40px; padding: 2px 4px; border-radius: 6px; }
    .archive-event-date-badge-single[b-7f3cnsy2p8] { min-width: 44px; }
    .archive-event-date-day[b-7f3cnsy2p8] { font-size: 14px; }
    .archive-event-date-month[b-7f3cnsy2p8] { margin-top: 2px; padding: 1px 4px; font-size: 11px; }
    .archive-event-date-arrow[b-7f3cnsy2p8] { font-size: 11px; }
    .archive-event-logo-wrap[b-7f3cnsy2p8] { min-height: 88px !important; }
    .archive-event-logo[b-7f3cnsy2p8] { padding: 6px; }
    .archive-event-content[b-7f3cnsy2p8] { padding: 8px 10px 10px; }
    .archive-event-lead[b-7f3cnsy2p8] { display: none; }
}

/* Handy-Grenze 959.98px statt 960px: einheitlich mit Menü-Layout und DrawerLayoutRegeln (05.09.2026) */
@media (max-width: 959.98px) {
    .archive-event-header[b-7f3cnsy2p8] { grid-template-columns: 66px minmax(0, 1fr); min-height: 132px; }
    .archive-event-logo-wrap[b-7f3cnsy2p8] { min-height: 132px; }
}
/* /Pages/ArchivErgebnisRouter.razor.rz.scp.css */
/* Ergebnis-Weiche (H9, 14.11.2026): schmale Karte in der Mitte. */
.tn-weiche[b-x6e5fl1zex] { max-width: 720px; }
.tn-weiche-laden[b-x6e5fl1zex] { display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 16px; color: var(--fg-soft); }
.tn-weiche-knoepfe[b-x6e5fl1zex] { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
/* /Pages/ArchivEvent.razor.rz.scp.css */
/* Archiv-Veranstaltung (H9, 14.11.2026): Tageskarten mit flachen Prüfungszeilen wie die Zeiteinteilung in Entwurf D.
   Nur echte Sedna-Variablen (--card-bg, --border, --bg-hover, --fg, --fg-soft, --muted, --brand, --on-solid …). */

.tn-tage[b-oxo8j6v1zj] { display: grid; gap: 22px; }

/* Eine Karte je Tag. Der Rahmen ist ein benannter Container: Die Zeilen richten sich nach der Breite der KARTE (nicht des
   Fensters) – das offene Seitenmenü nimmt am PC Platz weg (Franks Meldung vom 15.09.2026: Knöpfe wurden abgeschnitten). */
.tn-tag[b-oxo8j6v1zj] { container: archive-competition / inline-size; background: var(--card-bg); border: 1px solid var(--border); border-radius: var(--radius-surface); overflow: hidden; }
.tn-tag-kopf[b-oxo8j6v1zj] { display: flex; align-items: center; gap: 14px; padding: 14px 20px; border-bottom: 1px solid var(--border); background: var(--bg-hover); }
.archive-day-date-badge[b-oxo8j6v1zj] { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; min-width: 52px; padding: 4px 8px; border-radius: 8px; border: 1px solid var(--border-strong); background: var(--card-bg); }
.archive-day-date-number[b-oxo8j6v1zj] { color: var(--fg); font-size: 18px; font-weight: 700; line-height: 1; }
.archive-day-date-month[b-oxo8j6v1zj] { margin-top: 3px; padding: 1px 7px; border-radius: 4px; background: var(--brand); color: var(--on-solid); font-size: 11px; font-weight: 700; letter-spacing: .03em; line-height: 1.2; }
.tn-tag-name[b-oxo8j6v1zj] { display: flex; flex-direction: column; min-width: 0; }
.tn-tag-name h2[b-oxo8j6v1zj] { margin: 0; font-size: 20px; text-transform: capitalize; color: var(--fg); }
.tn-tag-name span[b-oxo8j6v1zj] { font-size: 14px; color: var(--muted); }
.tn-tag-zahl[b-oxo8j6v1zj] { margin-left: auto; }

.archive-place-group + .archive-place-group[b-oxo8j6v1zj] { border-top: 1px solid var(--border-strong); }
.archive-place-heading[b-oxo8j6v1zj] { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 20px 6px; }
.archive-place-heading h3[b-oxo8j6v1zj] { margin: 0; font-size: 13px; font-weight: 650; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }

/* Zeilen: Prüfung | Zeit | Bezeichnung | Platz/Richter | Zahlen | Knöpfe (zwei feste Plätze). */
.tn-pr-kopfzeile[b-oxo8j6v1zj], .tn-pr-zeile[b-oxo8j6v1zj] { display: grid; grid-template-columns: 120px 64px minmax(0, 2fr) minmax(0, 1.2fr) 150px 200px; gap: 0 16px; align-items: center; padding: 8px 20px; box-sizing: border-box; }
.tn-pr-kopfzeile[b-oxo8j6v1zj] { min-height: 36px; border-bottom: 1px solid var(--border); font-size: 13px; font-weight: 650; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); }
.tn-pr-zeile[b-oxo8j6v1zj] { min-height: 58px; border-bottom: 1px solid var(--border); }
.tn-pr-liste > :last-child[b-oxo8j6v1zj] { border-bottom: 0; }

.tn-pr-nr[b-oxo8j6v1zj] { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.tn-pr-nr-marken[b-oxo8j6v1zj] { display: flex; flex-wrap: wrap; gap: 4px; }
.tn-pr-zeit[b-oxo8j6v1zj] { font-size: 18px; font-weight: 700; font-variant-numeric: tabular-nums; color: var(--fg); }
.tn-pr-titel[b-oxo8j6v1zj] { display: flex; flex-direction: column; gap: 2px; min-width: 0; overflow-wrap: anywhere; }
.tn-pr-name[b-oxo8j6v1zj] { font-size: 16px; font-weight: 650; color: var(--fg); }
.tn-pr-klein[b-oxo8j6v1zj] { font-size: 13px; color: var(--muted); }
.tn-pr-titel a.tn-pr-klein[b-oxo8j6v1zj] { color: var(--brand-text); }
.tn-pr-richter[b-oxo8j6v1zj], .tn-pr-zahlen[b-oxo8j6v1zj] { display: flex; flex-direction: column; gap: 1px; font-size: 14px; color: var(--fg-soft); min-width: 0; overflow-wrap: anywhere; }
.tn-pr-knoepfe[b-oxo8j6v1zj] { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.tn-pr-knoepfe .btn[b-oxo8j6v1zj] { justify-content: center; }
.tn-pr-leer[b-oxo8j6v1zj] { display: block; }

/* Schmale Karte (Handy bzw. enger Platz neben dem offenen Menü): Zeile als Block, Knöpfe nebeneinander, gestreckt. */
@container archive-competition (max-width: 900px) {
    .tn-pr-kopfzeile[b-oxo8j6v1zj] { display: none; }
    .tn-pr-zeile[b-oxo8j6v1zj] { grid-template-columns: 56px minmax(0, 1fr); grid-template-areas: "zeit titel" "nr nr" "richter richter" "zahlen zahlen" "knoepfe knoepfe"; gap: 6px 12px; padding: 12px 16px; align-items: start; }
    .tn-pr-zeit[b-oxo8j6v1zj] { grid-area: zeit; }
    .tn-pr-titel[b-oxo8j6v1zj] { grid-area: titel; }
    .tn-pr-nr[b-oxo8j6v1zj] { grid-area: nr; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 4px 10px; }
    .tn-pr-richter[b-oxo8j6v1zj] { grid-area: richter; }
    .tn-pr-zahlen[b-oxo8j6v1zj] { grid-area: zahlen; flex-direction: row; flex-wrap: wrap; gap: 2px 14px; }
    .tn-pr-knoepfe[b-oxo8j6v1zj] { grid-area: knoepfe; display: flex; }
    .tn-pr-knoepfe .btn[b-oxo8j6v1zj] { flex: 1; min-height: 44px; min-width: 0; }
    .tn-pr-leer[b-oxo8j6v1zj] { display: none; }
    .tn-tag-kopf[b-oxo8j6v1zj] { padding: 12px 16px; }
    .archive-place-heading[b-oxo8j6v1zj] { padding-inline: 16px; }
}
/* /Pages/ArchivStarterliste.razor.rz.scp.css */
/* Archiv-Starterliste (H9, 14.11.2026). Nur echte Sedna-Variablen. Die gemeinsamen tn-Klassen (Karte, Marke, Hinweis) liegen in its-turnier.css. */

.tn-start-kopf[b-v018rbz24m],
.tn-start-zeile[b-v018rbz24m] { display: grid; grid-template-columns: 110px minmax(0, 1fr) minmax(0, 1.4fr); gap: 0 16px; align-items: center; padding: 10px 20px; box-sizing: border-box; }
.tn-start-kopf[b-v018rbz24m] { min-height: 40px; background: var(--bg-hover); border-bottom: 1px solid var(--border); font-size: 13px; font-weight: 650; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); }
.tn-start-zeile[b-v018rbz24m] { min-height: 72px; border-bottom: 1px solid var(--border); }
.tn-liste > :last-child[b-v018rbz24m] { border-bottom: 0; }

.tn-start-nr[b-v018rbz24m] { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; }
.tn-start-neben[b-v018rbz24m] { font-size: 13px; color: var(--muted); }
.tn-start-reiter[b-v018rbz24m] { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.tn-start-pferd[b-v018rbz24m] { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.tn-start-pferd .tn-abstammung[b-v018rbz24m] { margin-left: 0; }
.tn-hinweis-pause .tn-hinweis-vorsatz[b-v018rbz24m] { color: var(--brand-text); }

/* Handy: Platz, Reiter und Pferd untereinander, die Kopfzeile entfällt. */
@media (max-width: 700px) {
    .tn-start-kopf[b-v018rbz24m] { display: none; }
    .tn-start-zeile[b-v018rbz24m] { grid-template-columns: 64px minmax(0, 1fr); gap: 2px 12px; padding: 10px 14px; }
    .tn-start-nr[b-v018rbz24m] { grid-row: 1 / span 2; align-self: start; }
    .tn-start-pferd[b-v018rbz24m] { grid-column: 2; }
}
/* /Pages/EquiscoreErgebnisliste.razor.rz.scp.css */
/* =====================================================================================
   Stile der Equi-Score-Ergebnisliste (Entwurf D, 14.11.2026). Eingegrenzt auf diese Seite.
   Alter Stand: EquiscoreErgebnisliste.razor.ersetzt-2026-11-14.txt (Style-Block, 510 Zeilen).

   Gemeinsames (Podium, Liste, Karten, Kopfnummer-Marke, Rang) steht in wwwroot/css/its-turnier.css.
   Hier nur, was die Seite selbst zeichnet: Profil-Links, die Wertung mit festen Teilbreiten und die
   Rohdaten-Ansicht für Entwickler. Nur echte Sedna-Variablen (--fg, --muted, --border, --card-bg ...).
   ===================================================================================== */

/* Profil-Links (nur für angemeldete Mitarbeiter ein Link, sonst Text): sehen aus wie der Text daneben. Sie werden von
   der Komponente AdminOnlyProfileLink gezeichnet (fremdes Markup), darum ::deep unter dem Rahmen der Seite. */
.tn-inhalt[b-vgyopkr8aq]  .tn-profil-link,
.tn-inhalt[b-vgyopkr8aq]  .tn-profil-link:visited {
    color: inherit;
    font-weight: inherit;
    line-height: inherit;
    text-decoration: none;
}

.tn-inhalt[b-vgyopkr8aq]  a.tn-profil-link:hover {
    text-decoration: underline;
}

/* Wertung einer Springprüfung, z. B. "Fehler: 0 | Zeit: 61,70" (Frank, 13.09.2026): Die Striche " | " bleiben,
   stehen aber in allen Zeilen genau untereinander - auch bei Zeiten über 100 Sekunden und bei Stechen-Zeilen mit
   mehr Teilen. Die Seite misst beim Laden aus den Daten DIESER Liste die Breite jeder Teil-Position
   (EquiscoreErgebnisRechnung.BerechneWertungsBreiten) und gibt sie als Mindestbreite mit; der Strich steckt in
   einem Kasten fester Breite (2ch, MUSS zu WertungsTrennerBreiteCh in der Rechnung passen). Ziffern sind
   gleich breit (tabular-nums), innerhalb der Zeile wird nicht umgebrochen. */
.wertung-teile[b-vgyopkr8aq] {
    display: inline-block;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
    text-align: left;
    font-size: 16px;
    font-weight: 700;
    color: var(--fg);
}

.wertung-teil[b-vgyopkr8aq] {
    display: inline-block;
    text-align: right;
}

/* Der erste Teil steht rechtsbündig direkt vor dem ersten Strich, alle weiteren linksbündig. */
.wertung-trenner + .wertung-teil[b-vgyopkr8aq] {
    text-align: left;
}

.wertung-trenner[b-vgyopkr8aq] {
    display: inline-block;
    width: 2ch;
    text-align: center;
    white-space: pre;
}

/* Podium: Eine Podiumskarte ist schmal (bei 1024 px Fensterbreite rund 300 px). Eine Stechen-Wertung wie
   "Fehler: 0 | Zeit: 69,19 | jumpoff 1: Fehler: 0 | Zeit: 31,82" passte nicht hinein und schob die Seite seitlich
   aus dem Fenster (gemessen 14.11.2026, Kaarst Prüfung 23). Auf der Karte gibt es keine Nachbarzeilen, an denen die
   Striche ausgerichtet werden müssten – deshalb darf die Wertung dort umbrechen und steht mittig. Die festen
   Teilbreiten kommen als Inline-Stil von der Seite; nur !important setzt sie hier außer Kraft.
   Umbruch über flex-wrap: Zwischen den aneinanderhängenden Teil-Kästen (ohne Leerzeichen im Markup) bricht der Browser
   eine normale Zeile nicht um (gemessen: Breite blieb 569 px). Die mittige Ausrichtung des Podium-Werts selbst steht
   in its-turnier.css (.tn-gesamt.tn-pod-gesamt). */
.tn-pod-gesamt .wertung-teile[b-vgyopkr8aq] {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    white-space: normal;
    /* Feste Breite = Kartenbreite: Ohne sie nahm der Kasten seine volle Inhaltsbreite (569 px) und brach nicht um. */
    width: 100%;
    /* Die Seite gibt auch dem ganzen Kasten eine Inline-Mindestbreite (z. B. 62ch) – die gilt auf der Karte nicht. */
    min-width: 0 !important;
}

.tn-pod-gesamt .wertung-teil[b-vgyopkr8aq] {
    min-width: 0 !important;
    text-align: center;
}

/* Rohdaten (nur lokal für Entwickler: Schalter "Rohdaten anzeigen"). */
.tn-raw-grid[b-vgyopkr8aq] {
    display: grid;
    gap: 6px;
    padding: 8px 20px 12px;
}

.tn-raw-item[b-vgyopkr8aq] {
    display: grid;
    gap: 2px;
    padding: 6px 10px;
    border-radius: var(--radius-control);
    background: var(--bg-hover);
    border: 1px solid var(--border);
}

.tn-raw-key[b-vgyopkr8aq] {
    font-size: 12px;
    font-weight: 700;
    color: var(--muted);
}

.tn-raw-value[b-vgyopkr8aq] {
    font-size: 13px;
    color: var(--fg);
    word-break: break-word;
}
/* /Pages/EquiscoreLiveTicker.razor.rz.scp.css */
/* =====================================================================================
   Stile des Equi-Score-Live-Tickers (Entwurf D, 14.11.2026). Eingegrenzt auf diese Seite.
   Alter Stand: EquiscoreLiveTicker.razor.ersetzt-2026-11-14.txt (Style-Block, 431 Zeilen).

   Liste, Karten, Rang-Plakette, Kopfnummer, Abstammung und Status-Pille kommen aus wwwroot/css/its-turnier.css
   (tn-…). Hier nur, was der Ticker zusätzlich braucht. Nur echte Sedna-Variablen. Der laufende Ticker zeigt keine
   Schleifen und kein Podium - jede Platzierung ist eine schlichte Plakette.
   ===================================================================================== */

.tn-tk-seite[b-cjc7sqyb14] {
    display: grid;
    gap: 22px;
}

.tn-tk-aktualisiert[b-cjc7sqyb14] {
    margin: 0;
    font-size: 14px;
    color: var(--muted);
}

/* Ein Feld ("Aktuelle Ergebnisse", "Noch offen"): Kopf mit Überschrift und Zähler, darunter die Liste. */
.tn-tk-feld[b-cjc7sqyb14] {
    display: grid;
    gap: 12px;
    min-width: 0;
}

.tn-tk-feldkopf[b-cjc7sqyb14] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 4px 16px;
}

.tn-tk-feldkopf h2[b-cjc7sqyb14] {
    margin: 0;
    font-size: 20px;
    font-weight: 700;
    color: var(--fg);
}

.tn-tk-feldkopf span[b-cjc7sqyb14] {
    font-size: 14px;
    color: var(--muted);
}

/* Spalten der Ergebnisliste im Ticker: Rang | Teilnehmer | Pferd | Wertung | Status. Die Wertung braucht Platz für die
   einzeilige fette Gesamtzeile ("Gesamt: 71,225 %" ist rund 134 Pixel breit, Version 1.1.40, Frank 13.09.2026): Sie bricht
   nicht um, also bekommt die Spalte mindestens 150 Pixel (bei 1024 Pixeln Fensterbreite gemessen, ohne Überlappung mit
   dem Status). Die gemeinsame Aufteilung aus its-turnier.css gäbe ihr dort nur rund 100 Pixel. */
.tn-tk-liste-ergebnis .tn-kopfzeile[b-cjc7sqyb14],
.tn-tk-liste-ergebnis .tn-zeile[b-cjc7sqyb14] {
    grid-template-columns: 76px minmax(0, 1fr) minmax(0, 1.5fr) minmax(150px, auto) minmax(96px, auto);
}

/* Offene Starter: Start | Reiter | Pferd | Status (keine Wertung). */
.tn-tk-liste-offen .tn-kopfzeile[b-cjc7sqyb14],
.tn-tk-liste-offen .tn-zeile[b-cjc7sqyb14] {
    grid-template-columns: 76px minmax(0, 1fr) minmax(0, 1.5fr) minmax(96px, auto);
}

.tn-tk-leer[b-cjc7sqyb14] {
    margin: 0;
    padding: 14px 20px;
    border: 1px solid var(--border);
    border-radius: var(--radius-surface);
    background: var(--card-bg);
    color: var(--fg-soft);
}

/* Profil-Links (nur für angemeldete Mitarbeiter ein Link, sonst Text): sehen aus wie der Text daneben. Sie werden von
   der Komponente AdminOnlyProfileLink gezeichnet (fremdes Markup), darum ::deep unter dem Rahmen der Seite. */
.tn-tk-seite[b-cjc7sqyb14]  .tn-profil-link,
.tn-tk-seite[b-cjc7sqyb14]  .tn-profil-link:visited {
    color: inherit;
    font-weight: inherit;
    line-height: inherit;
    text-decoration: none;
}

.tn-tk-seite[b-cjc7sqyb14]  a.tn-profil-link:hover {
    text-decoration: underline;
}

/* Rang-Zelle mit Plakette; darunter bei Bedarf die kleine Marke ("Letztes Ergebnis", "Zeit: …"). Die gemeinsame
   Regel gibt der Rang-Zelle eine feste Höhe für die Schleife - hier gibt es keine Schleife. */
.tn-zeile .tn-tk-rang[b-cjc7sqyb14] {
    height: auto;
    flex-direction: column;
    gap: 4px;
    padding-block: 8px;
    text-align: center;
}

.tn-tk-letzte-marke[b-cjc7sqyb14] {
    font-size: 13px;
    font-weight: 650;
    color: var(--muted);
    line-height: 1.2;
}

/* Das zuletzt eingetroffene Ergebnis: Rand in der Markenfarbe (früher grün hinterlegt). */
.tn-zeile.tn-tk-letzte[b-cjc7sqyb14] {
    box-shadow: inset 4px 0 0 var(--brand);
    background: var(--bg-hover);
}

.tn-karte.tn-tk-letzte[b-cjc7sqyb14] {
    border-color: var(--brand);
    box-shadow: inset 4px 0 0 var(--brand);
}

.tn-tk-letzte-marke.tn-zusatz[b-cjc7sqyb14] {
    color: var(--brand-text);
}

.tn-tk-status[b-cjc7sqyb14] {
    font-size: 15px;
    font-weight: 650;
    color: var(--fg-soft);
}

.tn-tk-wertung[b-cjc7sqyb14] {
    font-size: 15px;
    font-weight: 650;
    color: var(--fg);
}

.tn-tk-start-zeit[b-cjc7sqyb14] {
    font-size: 14px;
    font-weight: 650;
    color: var(--fg-soft);
    font-variant-numeric: tabular-nums;
}
/* /Pages/EquiscoreStarterliste.razor.rz.scp.css */
/* Starterliste (Equi-Score) – Inhalt in einer Karte nach Entwurf D, 14.11.2026. Alter Stand: im <style>-Block
   von EquiscoreStarterliste.razor.ersetzt-2026-11-14.txt. Nur echte Sedna-Variablen (hell und dunkel).
   Kontrast: --fg und --fg-soft auf --card-bg; --muted nur für Nebenangaben ab 13 px (Sedna-Thema, AA in
   beiden Modi). Kopfnummer-Feld (.tn-kn): its-turnier.css.

   EIN Markup für PC und Handy: am PC eine flache Zeile (Start | Reiter | Pferd | Aufgabe) unter einer
   Kopfzeile, ab 700 px abwärts wird jede Zeile zur Karte. */

/* Ladeanzeige als Karte: Kreisel und Text untereinander, mittig. */
.tn-st-hinweis[b-rgh08pongq] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 36px 20px;
    text-align: center;
    color: var(--muted);
}
.tn-st-hinweis p[b-rgh08pongq] { margin: 0; }

.tn-st-liste[b-rgh08pongq] {
    background: var(--card-bg);
    border: 1px solid var(--border);
    border-radius: var(--radius-surface);
    overflow: hidden;
    min-width: 0;
}

/* ---------- PC: Kopfzeile und Zeilen ---------- */
.tn-st-kopfzeile[b-rgh08pongq],
.tn-st-zeile[b-rgh08pongq] {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr) minmax(0, 1.4fr);
    gap: 0 20px;
    align-items: start;
    padding: 10px 20px;
    box-sizing: border-box;
}
.tn-st-mit-aufgabe .tn-st-kopfzeile[b-rgh08pongq],
.tn-st-mit-aufgabe .tn-st-zeile[b-rgh08pongq] {
    grid-template-columns: 150px minmax(0, 1fr) minmax(0, 1.4fr) minmax(0, .8fr);
}

.tn-st-kopfzeile[b-rgh08pongq] {
    align-items: center;
    min-height: 40px;
    background: var(--bg-hover);
    border-bottom: 1px solid var(--border);
    font-size: 13px;
    font-weight: 650;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--muted);
}

.tn-st-zeile[b-rgh08pongq] {
    min-height: 72px;
    border-bottom: 1px solid var(--border);
}
.tn-st-liste > :last-child[b-rgh08pongq] { border-bottom: 0; }

/* Gruppenkopf („1. Gruppe“, „Abteilung 2“) und Pause: eigene Streifen quer über die Karte. */
.tn-st-gruppe[b-rgh08pongq] {
    padding: 10px 20px;
    font-size: 13px;
    font-weight: 650;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--muted);
    background: var(--bg-hover);
    border-bottom: 1px solid var(--border);
}

.tn-st-pause[b-rgh08pongq] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 20px;
    font-size: 15px;
    color: var(--fg-soft);
    border-bottom: 1px solid var(--border);
}
.tn-st-pause i[b-rgh08pongq] { font-size: 20px; color: var(--muted); }

/* ---------- Spalte „Start“: Startnummer, AK, Zeit ---------- */
.tn-st-start[b-rgh08pongq] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 8px;
    min-width: 0;
}

.tn-st-nr[b-rgh08pongq] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 38px;
    height: 32px;
    padding: 0 10px;
    box-sizing: border-box;
    border-radius: var(--radius-control);
    border: 1px solid var(--border-strong);
    color: var(--fg);
    font-size: 16px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

.tn-st-zeit[b-rgh08pongq] {
    flex-basis: 100%;
    font-size: 14px;
    color: var(--muted);
    font-variant-numeric: tabular-nums;
}

/* ---------- Spalte „Reiter“ ---------- */
.tn-st-reiter[b-rgh08pongq] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

/* Der Reitername ist ein Verweis im Bauteil AdminOnlyProfileLink (oder ein einfaches span): ::deep trifft beides. */
.tn-st-reiter[b-rgh08pongq]  .tn-st-reitername { font-size: 17px; font-weight: 650; color: var(--fg); overflow-wrap: anywhere; }

.tn-st-reiter-zusatz[b-rgh08pongq] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 2px 12px;
    font-size: 14px;
    color: var(--muted);
}

/* Fester Platz für die Flagge (siehe Kommentar im Markup): verhindert das Springen beim Nachladen. */
.tn-st-flagge-slot[b-rgh08pongq] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    min-height: 15px;
    margin-right: -4px;
}
.tn-st-flagge[b-rgh08pongq] { width: 22px; max-height: 15px; object-fit: contain; }

/* ---------- Spalte „Pferd“ ---------- */
.tn-st-pferd[b-rgh08pongq] { min-width: 0; }
.tn-st-pferd-zeile[b-rgh08pongq] { display: flex; align-items: center; gap: 2px; min-width: 0; }
.tn-st-pferd[b-rgh08pongq]  .tn-st-pferdename { font-size: 16px; font-weight: 500; color: var(--fg-soft); overflow-wrap: anywhere; }
.tn-st-pferd-zusatz[b-rgh08pongq] { margin-top: 2px; font-size: 14px; color: var(--muted); }

.tn-st-aufgabe[b-rgh08pongq] { font-size: 15px; color: var(--fg-soft); min-width: 0; overflow-wrap: anywhere; }

/* Die Verweise stecken im Bauteil AdminOnlyProfileLink (fremdes Markup): darum ::deep. */
.tn-st-zeile[b-rgh08pongq]  .tn-st-link,
.tn-st-zeile[b-rgh08pongq]  .tn-st-link:visited {
    color: inherit;
    text-decoration: none;
}
.tn-st-zeile[b-rgh08pongq]  a.tn-st-link:hover { text-decoration: underline; }

/* Nur am Handy bzw. nur am PC sichtbare Beschriftungen (Spaltenköpfe fehlen am Handy). */
.tn-st-nur-handy[b-rgh08pongq] { display: none; }
.tn-st-beschriftung[b-rgh08pongq] { margin-right: 8px; font-size: 13px; font-weight: 650; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); }

/* ---------- Handy: jede Zeile wird zur Karte ---------- */
@media (max-width: 700px) {
    .tn-st-kopfzeile[b-rgh08pongq] { display: none; }

    .tn-st-liste[b-rgh08pongq] {
        background: none;
        border: 0;
        border-radius: 0;
        overflow: visible;
        display: grid;
        gap: 8px;
    }

    .tn-st-zeile[b-rgh08pongq],
    .tn-st-mit-aufgabe .tn-st-zeile[b-rgh08pongq] {
        grid-template-columns: minmax(0, 1fr);
        gap: 6px;
        padding: 12px 14px;
        background: var(--card-bg);
        border: 1px solid var(--border);
        border-radius: 12px;
    }
    .tn-st-liste > :last-child[b-rgh08pongq] { border-bottom: 1px solid var(--border); }

    .tn-st-gruppe[b-rgh08pongq] { padding: 8px 4px; background: none; border-bottom: 0; }
    .tn-st-pause[b-rgh08pongq] { padding: 8px 4px; border-bottom: 0; }

    .tn-st-zeit[b-rgh08pongq] { flex-basis: auto; margin-left: auto; font-size: 15px; }
    .tn-st-start[b-rgh08pongq] { flex-wrap: nowrap; }
    .tn-st-reiter[b-rgh08pongq]  .tn-st-reitername { font-size: 16px; }
    .tn-st-pferd[b-rgh08pongq]  .tn-st-pferdename { font-size: 15px; }
    .tn-st-nur-pc[b-rgh08pongq] { display: none; }
    .tn-st-nur-handy[b-rgh08pongq] { display: inline; }
}
/* /Pages/News.razor.rz.scp.css */
/* News-Detailseite (Entwurf D, 14.11.2026). Alter Stand: News.razor.ersetzt-2026-11-14.txt (Stilblock in der Seite).
   Eingegrenzt (Blazor-CSS-Isolierung); der Hinweistext kommt als fertiger Text (MarkupString) und wird deshalb nur
   über ::deep erreicht. Nur echte Sedna-Variablen. Eigene Klassen: tn-news-*; die Klassen im Hinweistext
   (hinweis-*) erzeugt HinweisMarkup. */

.tn-news-seite[b-3c6bx7gnwq] { display: grid; gap: 18px; min-width: 0; }
.tn-news-seite > *[b-3c6bx7gnwq] { min-width: 0; }

.tn-news-melden[b-3c6bx7gnwq] { display: grid; justify-items: center; padding: 32px 20px; text-align: center; }
.tn-news-melden p[b-3c6bx7gnwq] { margin: 0; color: var(--fg-soft); }

.tn-news-hinweis-inhalt[b-3c6bx7gnwq] { font-size: 15px; line-height: 1.6; color: var(--fg); }
.tn-news-hinweis-inhalt[b-3c6bx7gnwq]  div[style*="max-width"] { width: 100% !important; max-width: none !important; }
.tn-news-hinweis-inhalt[b-3c6bx7gnwq]  img { display: block; max-width: min(100%, 420px) !important; max-height: 18rem !important; height: auto; margin: .75rem 0; border-radius: 12px; }
.tn-news-hinweis-inhalt[b-3c6bx7gnwq]  a.hinweis-bild-link { display: inline-block; max-width: 100%; cursor: zoom-in; }
.tn-news-hinweis-inhalt[b-3c6bx7gnwq]  a.hinweis-bild-link img { margin: 0; }
.tn-news-hinweis-inhalt[b-3c6bx7gnwq]  p { margin: 0 0 .7rem; }
.tn-news-hinweis-inhalt[b-3c6bx7gnwq]  p:last-child { margin-bottom: 0; }
.tn-news-hinweis-inhalt[b-3c6bx7gnwq]  ul, .tn-news-hinweis-inhalt[b-3c6bx7gnwq]  ol { width: 100%; margin: .15rem 0 .75rem; padding-left: 1.1rem; }
.tn-news-hinweis-inhalt[b-3c6bx7gnwq]  li { margin: .2rem 0; break-inside: avoid; }

/* Listen mit mindestens zwei Einträgen stehen in zwei Spalten (HinweisMarkup.FuerNews). */
.tn-news-hinweis-inhalt[b-3c6bx7gnwq]  .hinweis-spalten { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); width: 100%; gap: .75rem; align-items: start; margin: .15rem 0 .75rem; }
.tn-news-hinweis-inhalt[b-3c6bx7gnwq]  .hinweis-spalten ul, .tn-news-hinweis-inhalt[b-3c6bx7gnwq]  .hinweis-spalten ol { width: 100%; margin: 0; padding-left: 1.1rem; }

/* Die Offiziellen (Turnierleitung, Parcoursbauer, LK-Beauftragter): auto-fit, damit 1, 2 oder 3 Angaben die Zeile
   gleichmäßig füllen. */
.tn-news-hinweis-inhalt[b-3c6bx7gnwq]  .hinweis-offizielle { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: .75rem; width: 100%; margin: 1rem 0 0; }
.tn-news-hinweis-inhalt[b-3c6bx7gnwq]  .hinweis-offizieller { display: flex; flex-direction: column; gap: .25rem; min-width: 0; padding: .85rem .95rem; border-radius: var(--radius-control); border: 1px solid var(--border); background: var(--bg-hover); }
.tn-news-hinweis-inhalt[b-3c6bx7gnwq]  .hinweis-offizieller-label { font-size: 13px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--muted); }
.tn-news-hinweis-inhalt[b-3c6bx7gnwq]  .hinweis-offizieller-wert { font-size: 15px; font-weight: 700; line-height: 1.35; color: var(--fg); word-break: break-word; }

.tn-news-aktion .card-body[b-3c6bx7gnwq] { display: grid; justify-items: center; gap: 14px; text-align: center; }
.tn-news-aktion h2[b-3c6bx7gnwq] { margin: 0; font-size: 18px; }

@media (max-width: 700px) {
    .tn-news-hinweis-inhalt[b-3c6bx7gnwq]  .hinweis-spalten, .tn-news-hinweis-inhalt[b-3c6bx7gnwq]  .hinweis-offizielle { grid-template-columns: 1fr; }
    .tn-news-hinweis-inhalt[b-3c6bx7gnwq]  img { max-width: 100% !important; max-height: 12rem !important; }
}
/* /Pages/PferdProfil.razor.rz.scp.css */
/* Pferdeprofil – Karten nach Entwurf D, 14.11.2026. Alter Stand: im <style>-Block von
   PferdProfil.razor.ersetzt-2026-11-14.txt. Nur echte Sedna-Variablen (hell und dunkel).
   Kontrast: --fg / --fg-soft auf --card-bg; --muted nur für Nebenangaben ab 13 px; Zähler stehen in --fg-soft
   auf --badge-bg (Sedna-Thema, AA in beiden Modi). Ergebnis- und Startkarten: ProfilErgebnisKarte.razor.css /
   ProfilStartZeile.razor.css.

   ACHTUNG: PferdProfilSchmalesFensterTests liest DIESE Datei und nagelt die Regeln für
   .event-profile-layout-grid, .event-profile-rider-section, .event-profile-rider-content und
   .event-profile-subcolumn fest (umbrechende Flex-Zeile 260 px / 320 px, :only-child nach den :nth-child-Regeln,
   Regel bis 1000 px, keine Container-Abfrage). Diese Selektoren darum schlicht lassen (kein ::deep). */

.tn-pr-spalte-seite[b-q9n7njbwsh] { display: grid; gap: 18px; min-width: 0; }

/* Ladeanzeige als Karte: Kreisel und Text untereinander, mittig. */
.tn-pr-hinweis[b-q9n7njbwsh] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 36px 20px;
    text-align: center;
    color: var(--muted);
}
.tn-pr-hinweis p[b-q9n7njbwsh] { margin: 0; }

.tn-pr-karte[b-q9n7njbwsh] {
    min-width: 0;
    padding: 18px 20px;
    box-sizing: border-box;
    background: var(--card-bg);
    border: 1px solid var(--border);
    border-radius: var(--radius-surface);
}

/* ---------- Seitenraster: Stammdaten links, Reiter rechts ---------- */
.event-profile-layout-grid[b-q9n7njbwsh] {
    display: grid;
    grid-template-columns: minmax(250px, 320px) minmax(0, 1fr);
    gap: 18px;
    align-items: start;
}

.event-profile-layout-grid-single[b-q9n7njbwsh] { grid-template-columns: 1fr; }

.event-profile-sidebar[b-q9n7njbwsh],
.event-profile-main-column[b-q9n7njbwsh] {
    display: flex;
    flex-direction: column;
    gap: 18px;
    min-width: 0;
}

/* ---------- Karte „Stammdaten“ ---------- */
.tn-pr-stammdaten[b-q9n7njbwsh] { display: grid; grid-template-columns: 1fr; gap: 12px; }
.tn-pr-fakt[b-q9n7njbwsh] { min-width: 0; }
.tn-pr-fakt > span[b-q9n7njbwsh] { display: block; font-size: 13px; font-weight: 650; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); }
.tn-pr-fakt > strong[b-q9n7njbwsh] { display: block; margin-top: 2px; font-size: 16px; font-weight: 650; color: var(--fg); overflow-wrap: anywhere; }

/* ---------- Hauptkarte: ein Abschnitt je Reiter ---------- */
.tn-pr-titel[b-q9n7njbwsh] { margin: 0 0 14px; font-size: 13px; font-weight: 650; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }

.tn-pr-abschnitte[b-q9n7njbwsh] { display: flex; flex-direction: column; gap: 16px; }

.event-profile-rider-section[b-q9n7njbwsh] {
    min-width: 0;
    padding: 14px 16px 16px;
    box-sizing: border-box;
    overflow: hidden;
    background: var(--bg-hover);
    border: 1px solid var(--border);
    border-radius: 14px;
}

.tn-pr-abschnittkopf[b-q9n7njbwsh] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    min-width: 0;
}

.tn-pr-titelblock[b-q9n7njbwsh] { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.tn-pr-titelzeile[b-q9n7njbwsh] { display: flex; align-items: center; gap: 10px; min-width: 0; }
.tn-pr-info[b-q9n7njbwsh] { font-size: 14px; color: var(--muted); }

/* Reservierter Platz für die Flagge (siehe Kommentar im Markup): exakt so groß wie .tn-pr-flagge, damit der
   Reitername nicht springt, wenn die Flagge erst im Hintergrund nachgeladen wird. */
.tn-pr-flagge-slot[b-q9n7njbwsh] { display: inline-flex; align-items: center; justify-content: center; width: 2rem; height: 1.35rem; flex: 0 0 auto; }
.tn-pr-flagge[b-q9n7njbwsh] { width: 2rem; height: 1.35rem; flex: 0 0 auto; border-radius: 4px; object-fit: cover; box-shadow: 0 0 0 1px var(--border); }

/* Der Reitername ist ein Verweis im Bauteil AdminOnlyProfileLink: ::deep. */
.tn-pr-titelblock[b-q9n7njbwsh]  .tn-pr-name,
.tn-pr-titelblock[b-q9n7njbwsh]  .tn-pr-name:visited { font-size: 17px; font-weight: 650; color: var(--fg); line-height: 1.25; text-decoration: none; overflow-wrap: anywhere; }
.tn-pr-titelblock[b-q9n7njbwsh]  a.tn-pr-name:hover { text-decoration: underline; }

.tn-pr-zaehler[b-q9n7njbwsh] { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; flex: 0 0 auto; }
.tn-pr-zaehler span[b-q9n7njbwsh] {
    padding: 3px 10px;
    border-radius: var(--radius-pill);
    background: var(--badge-bg);
    color: var(--fg-soft);
    font-size: 13px;
    font-weight: 650;
}

/* Reiter-Abschnitt: „Starts ohne Ergebnis“ und „Ergebnisse“ nebeneinander, solange beide Platz haben — sonst
   rutschen sie von selbst untereinander (Franks Entscheidung, 15.09.2026). Umgesetzt mit einer umbrechenden
   Flex-Zeile statt Raster: Jede Spalte hat eine Wunschbreite (260 px bzw. 320 px) und teilt sich den Rest im
   Verhältnis 0,9 : 1,4. Passen beide nicht mehr nebeneinander, bricht die zweite in die nächste Zeile um und
   nimmt dort die volle Breite. Vorteil gegenüber einer Breiten-Messung (CSS-Container): Die Profilseite richtet
   ihre Breite nach dem Inhalt; eine Messregel ließ den Abschnitt im Browser auf 216 px schrumpfen. Die
   Flex-Zeile meldet als Mindestbreite nur noch die breitere der beiden Spalten (320 px) statt 594 px — deshalb
   schneidet der Rahmen („overflow: hidden“) nichts mehr ab. */
.event-profile-rider-content[b-q9n7njbwsh] {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 14px;
}

/* Erste Spalte (meist „Starts ohne Ergebnis“): Wunschbreite 260 px, Anteil 0,9. */
.event-profile-rider-content > .event-profile-subcolumn:nth-child(1)[b-q9n7njbwsh] {
    flex: 0.9 1 260px;
}

/* Zweite Spalte („Ergebnisse“): Wunschbreite 320 px, Anteil 1,4. */
.event-profile-rider-content > .event-profile-subcolumn:nth-child(2)[b-q9n7njbwsh] {
    flex: 1.4 1 320px;
}

/* Nur eine Spalte vorhanden: sie nimmt die ganze Breite. Muss NACH den :nth-child-Regeln stehen (gleiche
   Spezifität, die spätere gewinnt). */
.event-profile-rider-content > .event-profile-subcolumn:only-child[b-q9n7njbwsh] {
    flex: 1 1 100%;
}

.event-profile-subcolumn[b-q9n7njbwsh] { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.tn-pr-liste[b-q9n7njbwsh] { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.tn-pr-untertitel[b-q9n7njbwsh] { margin: 0; font-size: 13px; font-weight: 650; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }

@media (max-width: 1000px) {
    .event-profile-layout-grid[b-q9n7njbwsh] {
        grid-template-columns: 1fr;
    }

    /* Bis 1000 px Fensterbreite stehen „Starts ohne Ergebnis“ und „Ergebnisse“ grundsätzlich untereinander.
       „:nth-child(n)“ trifft jede Unterspalte und ist nur da, damit diese Regel genauso „schwer“ wiegt wie die
       Grundregeln mit :nth-child(1)/(2) weiter oben — sonst gewinnen die. Bei gleichem Gewicht gewinnt diese,
       weil sie später steht. */
    .event-profile-rider-content > .event-profile-subcolumn:nth-child(n)[b-q9n7njbwsh] {
        flex-basis: 100%;
    }
}

@media (max-width: 640px) {
    .tn-pr-karte[b-q9n7njbwsh] { padding: 14px; }
    .event-profile-rider-section[b-q9n7njbwsh] { padding: 12px; }
    .tn-pr-abschnittkopf[b-q9n7njbwsh] { flex-direction: column; }
    .tn-pr-zaehler[b-q9n7njbwsh] { justify-content: flex-start; }
}
/* /Pages/ReiterProfil.razor.rz.scp.css */
/* Reiterprofil – Karten nach Entwurf D, 14.11.2026. Alter Stand: im <style>-Block von
   ReiterProfil.razor.ersetzt-2026-11-14.txt. Nur echte Sedna-Variablen (hell und dunkel).
   Kontrast: --fg / --fg-soft auf --card-bg; --muted nur für Nebenangaben ab 13 px; Zähler stehen in --fg-soft
   auf --badge-bg (Sedna-Thema, AA in beiden Modi). Ergebnis- und Startkarten: ProfilErgebnisKarte.razor.css /
   ProfilStartZeile.razor.css; Kopfnummer-Feld (.tn-kn): its-turnier.css. */

.tn-pr-spalte-seite[b-c910p94kag] { display: grid; gap: 18px; min-width: 0; }

/* Ladeanzeige als Karte: Kreisel und Text untereinander, mittig. */
.tn-pr-hinweis[b-c910p94kag] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 36px 20px;
    text-align: center;
    color: var(--muted);
}
.tn-pr-hinweis p[b-c910p94kag] { margin: 0; }

.tn-pr-karte[b-c910p94kag] {
    min-width: 0;
    padding: 18px 20px;
    box-sizing: border-box;
    background: var(--card-bg);
    border: 1px solid var(--border);
    border-radius: var(--radius-surface);
}

/* ---------- Karte „Angaben“ (Nation, Verein, Reservierungen) ---------- */
.tn-pr-fakten[b-c910p94kag] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 14px 24px;
}
.tn-pr-fakt[b-c910p94kag] { min-width: 0; }
.tn-pr-fakt-breit[b-c910p94kag] { grid-column: 1 / -1; }
.tn-pr-fakt > span[b-c910p94kag] { display: block; font-size: 13px; font-weight: 650; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); }
.tn-pr-fakt > strong[b-c910p94kag] { display: block; margin-top: 2px; font-size: 17px; font-weight: 650; color: var(--fg); overflow-wrap: anywhere; }
.tn-pr-nation[b-c910p94kag] { display: flex; align-items: center; gap: 10px; margin-top: 2px; }
.tn-pr-nation strong[b-c910p94kag] { font-size: 17px; font-weight: 650; color: var(--fg); }

/* Reservierter Platz für die Flagge (siehe Kommentar im Markup): exakt so groß wie .tn-pr-flagge, damit der
   Nationsname nicht springt, wenn die Flagge erst im Hintergrund nachgeladen wird. */
.tn-pr-flagge-slot[b-c910p94kag] { display: inline-flex; align-items: center; justify-content: center; width: 2rem; height: 1.35rem; flex: 0 0 auto; }
.tn-pr-flagge[b-c910p94kag] { width: 2rem; height: 1.35rem; flex: 0 0 auto; border-radius: 4px; object-fit: cover; box-shadow: 0 0 0 1px var(--border); }

/* ---------- Hauptkarte: ein Abschnitt je Pferd ---------- */
.tn-pr-titel[b-c910p94kag] { margin: 0 0 14px; font-size: 13px; font-weight: 650; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }

.tn-pr-abschnitte[b-c910p94kag] { display: flex; flex-direction: column; gap: 16px; }

.event-profile-horse-section[b-c910p94kag] {
    min-width: 0;
    padding: 14px 16px 16px;
    box-sizing: border-box;
    overflow: hidden;
    background: var(--bg-hover);
    border: 1px solid var(--border);
    border-radius: 14px;
}

.tn-pr-abschnittkopf[b-c910p94kag] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    min-width: 0;
}

.tn-pr-titelblock[b-c910p94kag] { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; min-width: 0; }
.tn-pr-info[b-c910p94kag] { flex-basis: 100%; font-size: 14px; color: var(--muted); }

/* Der Pferdename ist ein Verweis im Bauteil AdminOnlyProfileLink (oder ein einfaches span): ::deep trifft beides. */
.tn-pr-titelblock[b-c910p94kag]  .tn-pr-name,
.tn-pr-titelblock[b-c910p94kag]  .tn-pr-name:visited { font-size: 17px; font-weight: 650; color: var(--fg); line-height: 1.25; text-decoration: none; overflow-wrap: anywhere; }
.tn-pr-titelblock[b-c910p94kag]  a.tn-pr-name:hover { text-decoration: underline; }

.tn-pr-zaehler[b-c910p94kag] { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; flex: 0 0 auto; }
.tn-pr-zaehler span[b-c910p94kag] {
    padding: 3px 10px;
    border-radius: var(--radius-pill);
    background: var(--badge-bg);
    color: var(--fg-soft);
    font-size: 13px;
    font-weight: 650;
}

/* „Starts ohne Ergebnis“ und „Ergebnisse“ nebeneinander, solange beide Platz haben – sonst rutschen sie von selbst
   untereinander (Franks Entscheidung, 15.09.2026, gleiche Regel wie im Pferdeprofil): eine umbrechende Flex-Zeile
   mit Wunschbreiten 260 px / 320 px; eine einzelne Spalte nimmt die volle Breite. Keine Breiten-Messung per
   Container-Abfrage (sie ließ den Abschnitt schrumpfen). */
.event-profile-horse-content[b-c910p94kag] { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 14px; }
.event-profile-horse-content > .event-profile-subcolumn:nth-child(1)[b-c910p94kag] { flex: 0.9 1 260px; }
.event-profile-horse-content > .event-profile-subcolumn:nth-child(2)[b-c910p94kag] { flex: 1.4 1 320px; }
.event-profile-horse-content > .event-profile-subcolumn:only-child[b-c910p94kag] { flex: 1 1 100%; }

.event-profile-subcolumn[b-c910p94kag] { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.tn-pr-liste[b-c910p94kag] { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.tn-pr-untertitel[b-c910p94kag] { margin: 0; font-size: 13px; font-weight: 650; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }

@media (max-width: 1000px) {
    /* Bis 1000 px Fensterbreite stehen die beiden Spalten untereinander. */
    .event-profile-horse-content > .event-profile-subcolumn:nth-child(n)[b-c910p94kag] { flex-basis: 100%; }
}

@media (max-width: 640px) {
    .tn-pr-karte[b-c910p94kag] { padding: 14px; }
    .event-profile-horse-section[b-c910p94kag] { padding: 12px; }
    .tn-pr-abschnittkopf[b-c910p94kag] { flex-direction: column; }
    .tn-pr-zaehler[b-c910p94kag] { justify-content: flex-start; }
}
/* /Pages/TorisNennungsliste.razor.rz.scp.css */
/* Nennungsliste (Toris) – Inhalt in Karten nach Entwurf D, 14.11.2026. Alter Stand: im <style>-Block von
   TorisNennungsliste.razor.ersetzt-2026-11-14.txt. Nur echte Sedna-Variablen (hell und dunkel).
   Kontrast: --fg und --fg-soft auf --card-bg, --muted nur für Nebenangaben ab 13 px (Sedna-Thema, AA in
   beiden Modi). Buchstaben-Karten: TorisListeGruppe.razor.css, Sprungleiste: TorisListeBuchstabenLeiste.razor.css,
   Kopfnummer-Feld (.tn-kn): its-turnier.css.

   EIN Markup für PC und Handy: am PC eine flache Zeile (Teilnehmer | Pferde | Zahl) unter einer
   Kopfzeile, ab 700 px abwärts wird jede Zeile zur Karte. */

.tn-tor-gruppen[b-e2e51xbgof] {
    display: grid;
    gap: 18px;
    min-width: 0;
}

/* Ladeanzeige als Karte: Kreisel und Text untereinander, mittig. */
.tn-tor-hinweis[b-e2e51xbgof] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 36px 20px;
    text-align: center;
    color: var(--muted);
}
.tn-tor-hinweis p[b-e2e51xbgof] { margin: 0; }
.tn-tor-hinweis-klein[b-e2e51xbgof] { font-size: 14px; }
.tn-tor-meldung[b-e2e51xbgof] { margin: 0 0 8px; }

/* ---------- Kopfzeile und Zeilen (PC) ---------- */
.tn-tor-kopfzeile[b-e2e51xbgof],
.tn-tor-zeile[b-e2e51xbgof] {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.8fr) 190px;
    gap: 0 20px;
    align-items: start;
    padding: 10px 20px;
    box-sizing: border-box;
}

.tn-tor-kopfzeile[b-e2e51xbgof] {
    align-items: center;
    min-height: 40px;
    border-bottom: 1px solid var(--border);
    font-size: 13px;
    font-weight: 650;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--muted);
}
/* Das lange Wort „Startplatzreservierungen“ bleibt in Normalschrift (Großbuchstaben mit Sperrung wären zu breit). */
.tn-tor-spalte-zahl[b-e2e51xbgof] { text-align: right; text-transform: none; letter-spacing: 0; overflow-wrap: anywhere; }

.tn-tor-zeile[b-e2e51xbgof] {
    min-height: 64px;
    border-bottom: 1px solid var(--border);
}
.tn-tor-zeile:last-child[b-e2e51xbgof] { border-bottom: 0; }

.tn-tor-reiter[b-e2e51xbgof] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.tn-tor-reiter-zusatz[b-e2e51xbgof] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 2px 12px;
    font-size: 14px;
    color: var(--muted);
}

.tn-tor-flagge[b-e2e51xbgof] { width: 22px; max-height: 15px; object-fit: contain; }

/* Der Reitername und die Pferdenamen sind Verweise im Bauteil AdminOnlyProfileLink (fremdes Markup): ::deep. */
.tn-tor-reiter[b-e2e51xbgof]  .tn-tor-reitername,
.tn-tor-reiter[b-e2e51xbgof]  .tn-tor-reitername:visited {
    font-size: 17px;
    font-weight: 650;
    color: var(--fg);
    text-decoration: none;
    overflow-wrap: anywhere;
}
.tn-tor-pferd[b-e2e51xbgof]  .tn-tor-link,
.tn-tor-pferd[b-e2e51xbgof]  .tn-tor-link:visited {
    color: inherit;
    text-decoration: none;
}
.tn-tor-zeile[b-e2e51xbgof]  a.tn-tor-link:hover { text-decoration: underline; }

/* ---------- Pferde ---------- */
.tn-tor-pferdespalte[b-e2e51xbgof] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
    min-width: 0;
}

.tn-tor-pferdeliste[b-e2e51xbgof] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
    flex: 1;
}

.tn-tor-pferd[b-e2e51xbgof] {
    display: flex;
    align-items: center;
    gap: 2px;
    min-width: 0;
    font-size: 16px;
    color: var(--fg-soft);
    overflow-wrap: anywhere;
}
.tn-tor-pferdename[b-e2e51xbgof] { font-weight: 500; }

.tn-tor-weitere[b-e2e51xbgof] {
    align-self: flex-start;
    padding: 4px 0;
    border: 0;
    background: none;
    color: var(--brand-text);
    font: inherit;
    font-size: 14px;
    font-weight: 650;
    cursor: pointer;
    text-align: left;
}
.tn-tor-weitere:hover[b-e2e51xbgof] { text-decoration: underline; }
.tn-tor-weitere:focus-visible[b-e2e51xbgof] { outline: none; box-shadow: 0 0 0 2px var(--focus-ring); border-radius: 4px; }

.tn-tor-schalter[b-e2e51xbgof] { flex: 0 0 auto; }

/* ---------- Zahl der Startplatzreservierungen ---------- */
.tn-tor-zahl[b-e2e51xbgof] {
    text-align: right;
    font-size: 22px;
    font-weight: 800;
    color: var(--fg);
    font-variant-numeric: tabular-nums;
}
/* „SP“ steht nur am Handy vor der Zahl (dort fehlt die Spaltenüberschrift). */
.tn-tor-zahl-vorsatz[b-e2e51xbgof] { display: none; }

/* ---------- Handy: jede Zeile wird zur Karte ---------- */
@media (max-width: 700px) {
    .tn-tor-kopfzeile[b-e2e51xbgof] { display: none; }

    .tn-tor-zeile[b-e2e51xbgof] {
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-areas: "reiter zahl" "pferde pferde";
        gap: 8px 12px;
        padding: 12px 14px;
    }
    .tn-tor-reiter[b-e2e51xbgof] { grid-area: reiter; }
    .tn-tor-pferdespalte[b-e2e51xbgof] { grid-area: pferde; }
    .tn-tor-zahl[b-e2e51xbgof] {
        grid-area: zahl;
        align-self: start;
        font-size: 15px;
        font-weight: 700;
        padding: 2px 10px;
        border-radius: var(--radius-pill);
        background: var(--badge-bg);
    }
    .tn-tor-zahl-vorsatz[b-e2e51xbgof] { display: inline; }
    .tn-tor-reiter[b-e2e51xbgof]  .tn-tor-reitername,
    .tn-tor-reiter[b-e2e51xbgof]  .tn-tor-reitername:visited { font-size: 16px; }
    .tn-tor-pferd[b-e2e51xbgof] { font-size: 15px; }
    .tn-tor-schalter[b-e2e51xbgof] { min-width: 44px; min-height: 44px; }
}
/* /Pages/TorisPferdeliste.razor.rz.scp.css */
/* Pferdeliste (Toris) – Inhalt in Karten nach Entwurf D, 14.11.2026. Alter Stand: im <style>-Block von
   TorisPferdeliste.razor.ersetzt-2026-11-14.txt. Nur echte Sedna-Variablen (hell und dunkel);
   Kontrast: --fg auf --card-bg. Buchstaben-Karten: TorisListeGruppe.razor.css, Sprungleiste:
   TorisListeBuchstabenLeiste.razor.css, Kopfnummer-Feld (.tn-kn): its-turnier.css. */

.tn-tor-gruppen[b-rd0p45qsaf] {
    display: grid;
    gap: 18px;
    min-width: 0;
}

/* Ladeanzeige als Karte: Kreisel und Text untereinander, mittig. */
.tn-tor-hinweis[b-rd0p45qsaf] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 36px 20px;
    text-align: center;
    color: var(--muted);
}
.tn-tor-hinweis p[b-rd0p45qsaf] { margin: 0; }

/* Die Pferde als flache Zellen in mehreren Spalten (PC): Kopfnummer-Marke, dann der Name. */
.tn-tor-pferde[b-rd0p45qsaf] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    min-width: 0;
}

.tn-tor-pferd[b-rd0p45qsaf] {
    min-width: 0;
    min-height: 52px;
    display: flex;
    align-items: center;
    gap: 2px;
    padding: 8px 20px;
    box-sizing: border-box;
    border-bottom: 1px solid var(--border);
    font-size: 16px;
    color: var(--fg);
    overflow-wrap: anywhere;
}

.tn-tor-pferdename[b-rd0p45qsaf] { font-weight: 650; }

/* Der Link steckt im Bauteil AdminOnlyProfileLink (fremdes Markup): darum ::deep. */
.tn-tor-pferd[b-rd0p45qsaf]  .tn-tor-link,
.tn-tor-pferd[b-rd0p45qsaf]  .tn-tor-link:visited {
    color: inherit;
    font-weight: 650;
    line-height: 1.25;
    text-decoration: none;
}
.tn-tor-pferd[b-rd0p45qsaf]  a.tn-tor-link:hover { text-decoration: underline; }

@media (max-width: 700px) {
    .tn-tor-pferde[b-rd0p45qsaf] { grid-template-columns: 1fr; }
    .tn-tor-pferd[b-rd0p45qsaf] { padding-inline: 14px; min-height: 48px; }
}
/* /Pages/TorisTeilnehmerliste.razor.rz.scp.css */
/* Teilnehmerliste (Toris) – Inhalt in Karten nach Entwurf D, 14.11.2026. Alter Stand: im <style>-Block von
   TorisTeilnehmerliste.razor.ersetzt-2026-11-14.txt. Nur echte Sedna-Variablen (hell und dunkel);
   Kontrast: --fg auf --card-bg. Die Buchstaben-Karten selbst kommen aus TorisListeGruppe.razor.css. */

.tn-tor-gruppen[b-xm9nt8v7pg] {
    display: grid;
    gap: 18px;
    min-width: 0;
}

/* Ladeanzeige als Karte: Kreisel und Text untereinander, mittig. */
.tn-tor-hinweis[b-xm9nt8v7pg] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 36px 20px;
    text-align: center;
    color: var(--muted);
}
.tn-tor-hinweis p[b-xm9nt8v7pg] { margin: 0; }

/* Die Namen als flache Zellen in mehreren Spalten (PC), je Zelle eine Zeile mit feiner Trennlinie. */
.tn-tor-namen[b-xm9nt8v7pg] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    min-width: 0;
}

.tn-tor-name[b-xm9nt8v7pg] {
    min-width: 0;
    min-height: 52px;
    display: flex;
    align-items: center;
    padding: 8px 20px;
    box-sizing: border-box;
    border-bottom: 1px solid var(--border);
    font-size: 17px;
    font-weight: 650;
    color: var(--fg);
    overflow-wrap: anywhere;
}

/* Der Link steckt im Bauteil AdminOnlyProfileLink (fremdes Markup): darum ::deep. */
.tn-tor-name[b-xm9nt8v7pg]  .tn-tor-link,
.tn-tor-name[b-xm9nt8v7pg]  .tn-tor-link:visited {
    color: inherit;
    font-weight: inherit;
    line-height: 1.25;
    text-decoration: none;
}
.tn-tor-name[b-xm9nt8v7pg]  a.tn-tor-link:hover { text-decoration: underline; }

@media (max-width: 700px) {
    .tn-tor-namen[b-xm9nt8v7pg] { grid-template-columns: 1fr; }
    .tn-tor-name[b-xm9nt8v7pg] { padding-inline: 14px; min-height: 48px; font-size: 16px; }
}
/* /Pages/UeberUns.razor.rz.scp.css */
/* Über uns im Startseiten-Stil (Homepage-Redesign Schritt B, NOT-1508, 2026-11-14).
   Die gemeinsamen Bausteine (Kopfband, Abschnitte, Karten, Kennzahlen) stehen in wwwroot/css/its-public.css (Klassen
   "its-page-…"). Hier steht nur, was allein diese Seite braucht: Teamkarten mit Bildfläche und die Zeitleiste der
   Firmengeschichte. Farben kommen ausschließlich aus den Sedna-Werten (--bg --fg --muted --border --card-bg --brand
   --brand-text), damit hell und dunkel lesbar bleiben.
   Die alte Fassung (about-page-shell, feste dunkle Farben, 1046 Zeilen) liegt unverändert als
   UeberUns.razor.css.ersetzt-2026-11-14.txt daneben. */

/* ---- Logo-Karte ---- */
.about-logo-image[b-chb64lalvq] { display: block; width: min(100%, 220px); height: auto; margin-bottom: 18px; }
.about-capability-list[b-chb64lalvq] { margin-top: 14px; }

/* ---- Teamkarten ---- */
.about-team-grid[b-chb64lalvq] { align-items: stretch; }
.about-team-card[b-chb64lalvq] { display: grid; grid-template-rows: 340px 1fr; height: 100%; }
/* Bildfläche: neutraler Grund (kein Abdunkeln), Foto füllt sie; Platzhalter-Porträt mittig. */
.about-team-media[b-chb64lalvq] { position: relative; height: 340px; min-height: 0; overflow: hidden; background: var(--bg); border-bottom: 1px solid var(--border); }
.about-team-media.is-placeholder[b-chb64lalvq] { display: grid; place-items: center; padding: 22px; }
.about-team-media.is-placeholder img[b-chb64lalvq] { width: min(100%, 250px); height: auto; }
.about-team-media.has-gallery[b-chb64lalvq]  .services-carousel { height: 100%; border-radius: 0; background: transparent; box-shadow: none; }
.about-team-media.has-gallery[b-chb64lalvq]  .services-carousel::after { background: none; }
.about-team-media.has-gallery[b-chb64lalvq]  .services-carousel-slide img { object-fit: cover; object-position: var(--about-team-image-position, center 18%); }
/* Karte mit festem Fotoformat (Sarah Steinfort, 1180x1000): Das echte Format bestimmt die Höhe der Fläche, sonst
   würden bei untereinander stehenden Karten Kopf und Füße abgeschnitten (Nachbesserung 23.09.2026, unverändert). */
.about-team-card.has-fixed-aspect[b-chb64lalvq] { grid-template-rows: auto 1fr; }
.about-team-media.has-fixed-aspect[b-chb64lalvq] { height: auto; }
/* Hinweis „KI-bearbeitet“ (EU-KI-Verordnung, Art. 50): normaler Text über dem Foto, dauerhaft sichtbar, fängt keine
   Klicks ab. Er liegt auf einem Foto, deshalb bleibt sein dunkler Grund fest (#f5f7fa auf ~#0b0f14b8 über Foto >= 9 : 1). */
.about-team-image-notice[b-chb64lalvq] { position: absolute; left: 10px; bottom: 10px; z-index: 3; padding: 3px 8px; border-radius: var(--radius-surface); background: #0b0f14e6; color: #f5f7fa; font-size: 11px; font-weight: 700; line-height: 1.3; white-space: nowrap; pointer-events: none; }
.about-team-body[b-chb64lalvq] { display: flex; flex-direction: column; gap: 14px; height: 100%; }
.about-team-header[b-chb64lalvq] { display: flex; justify-content: space-between; align-items: flex-start; gap: 14px; }
.about-team-header .badge[b-chb64lalvq] { margin-bottom: 10px; }
.about-team-header h3[b-chb64lalvq] { margin: 0; }
.about-team-since[b-chb64lalvq] { color: var(--muted); font-size: 13px; font-weight: 650; line-height: 1.45; text-align: right; }
.about-team-body p[b-chb64lalvq] { margin: 0; }
.about-team-focus-list[b-chb64lalvq] { margin-top: auto; }

/* ---- Historie ---- */
.about-history-subtitle[b-chb64lalvq] { margin-top: 10px !important; font-size: 16px !important; color: var(--fg) !important; }
.about-history-source[b-chb64lalvq] { margin-top: 8px !important; }
.about-history-quote[b-chb64lalvq] { position: relative; margin: 0 0 21px; padding: 22px 24px 22px 28px; border: 1px solid var(--border); border-left: 3px solid var(--brand); border-radius: var(--radius-surface); background: var(--card-bg); }
.about-history-quote p[b-chb64lalvq] { margin: 0; font-size: 16px; line-height: 1.7; color: var(--fg); }

.about-timeline-shell .card-body[b-chb64lalvq] { padding: 22px; }
.about-timeline-toolbar[b-chb64lalvq] { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 14px; align-items: center; margin-bottom: 22px; }
.about-timeline-jump[b-chb64lalvq] { width: 44px; height: 44px; font-size: 24px; line-height: 1; }
.about-timeline-years[b-chb64lalvq] { display: flex; gap: 10px; overflow-x: auto; padding-bottom: 4px; scroll-behavior: smooth; scroll-snap-type: x proximity; scrollbar-width: thin; }
.about-timeline-year[b-chb64lalvq] { min-width: 102px; padding: 10px 13px; border: 1px solid var(--border); border-radius: var(--radius-surface); background: var(--bg); color: var(--muted); text-align: left; scroll-snap-align: center; cursor: pointer; transition: border-color 160ms ease, color 160ms ease; }
.about-timeline-year:hover[b-chb64lalvq] { border-color: var(--brand); color: var(--fg); }
.about-timeline-year span[b-chb64lalvq],
.about-timeline-year small[b-chb64lalvq] { display: block; }
.about-timeline-year span[b-chb64lalvq] { font-size: 15px; font-weight: 800; color: inherit; }
.about-timeline-year small[b-chb64lalvq] { margin-top: 3px; font-size: 11px; letter-spacing: .04em; text-transform: uppercase; color: inherit; }
.about-timeline-year.is-active[b-chb64lalvq] { border-color: var(--brand); background: var(--card-bg); color: var(--fg); box-shadow: inset 0 0 0 1px var(--brand); }

.about-timeline-stage[b-chb64lalvq] { display: grid; grid-template-columns: minmax(0, 1.02fr) minmax(320px, .98fr); gap: 22px; align-items: start; }
.about-timeline-stage-media[b-chb64lalvq] { min-width: 0; }
.about-timeline-stage-media[b-chb64lalvq]  .services-carousel { border-radius: var(--radius-surface); box-shadow: none; border: 1px solid var(--border); }
.about-timeline-stage-media[b-chb64lalvq]  .services-carousel::after { background: none; }
/* Archivbilder zeigen oft ganze Dokumente: vollständig sichtbar (contain) auf dem Kartengrund. */
.about-timeline-stage-media[b-chb64lalvq]  .services-carousel-slide img { object-fit: contain; padding: 16px; background: var(--bg); }
.about-timeline-stage-media.is-white-surface[b-chb64lalvq]  .services-carousel { background: #fff; }
.about-timeline-stage-media.is-white-surface[b-chb64lalvq]  .services-carousel-slide img { background: #fff; }
.about-timeline-stage-copy[b-chb64lalvq] { padding: 4px 2px; }
.about-timeline-stage-head[b-chb64lalvq] { display: flex; justify-content: space-between; gap: 14px; align-items: flex-start; margin-bottom: 16px; }
.about-timeline-stage-head .badge[b-chb64lalvq] { margin-bottom: 10px; }
.about-timeline-stage-copy h3[b-chb64lalvq] { margin: 0; font-size: clamp(22px, 2.2vw, 32px); max-width: 16ch; line-height: 1.15; letter-spacing: -.03em; }
.about-timeline-stage-index[b-chb64lalvq] { color: var(--muted); font-size: 12px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; white-space: nowrap; }
.about-timeline-stage-copy p[b-chb64lalvq] { font-size: 14px; line-height: 1.7; color: var(--muted); margin: 0; }
.about-timeline-stage-copy p + p[b-chb64lalvq] { margin-top: 12px; }
.about-timeline-image-hint[b-chb64lalvq] { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--border); color: var(--muted); font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }

.about-history-placeholder[b-chb64lalvq] { position: relative; min-height: clamp(260px, 35vw, 520px); border: 1px solid var(--border); border-radius: var(--radius-surface); padding: 24px; display: flex; flex-direction: column; justify-content: flex-end; gap: 10px; background: var(--bg); }
.about-history-placeholder-year[b-chb64lalvq] { display: block; font-size: clamp(48px, 7vw, 80px); font-weight: 900; letter-spacing: -.06em; color: var(--border); line-height: .92; }
.about-history-placeholder strong[b-chb64lalvq] { font-size: 20px; color: var(--fg); max-width: 14ch; line-height: 1.15; }
.about-history-placeholder p[b-chb64lalvq] { max-width: 28ch; color: var(--muted); line-height: 1.55; margin: 0; }

.about-timeline-footer[b-chb64lalvq] { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 16px; align-items: center; margin-top: 22px; }
.about-timeline-nav-button[b-chb64lalvq] { min-height: 44px; padding: 0 18px; }
.about-timeline-progress-shell[b-chb64lalvq] { position: relative; padding-top: 4px; }
.about-timeline-progress-labels[b-chb64lalvq] { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; margin-bottom: 12px; color: var(--muted); font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; gap: 12px; }
.about-timeline-progress-labels span:first-child[b-chb64lalvq] { text-align: left; }
.about-timeline-progress-labels span:nth-child(2)[b-chb64lalvq] { text-align: center; color: var(--fg); }
.about-timeline-progress-labels span:last-child[b-chb64lalvq] { text-align: right; }
.about-timeline-progress[b-chb64lalvq] { position: relative; height: 74px; display: grid; place-items: center; overflow: visible; }
.about-timeline-progress-line[b-chb64lalvq] { width: 100%; height: 8px; border-radius: var(--radius-pill); background: var(--border); display: block; position: absolute; top: 50%; left: 0; transform: translateY(-50%); }
.about-timeline-progress-fill[b-chb64lalvq] { position: absolute; top: 50%; left: 0; height: 8px; border-radius: var(--radius-pill); background: var(--brand); transform: translateY(-50%); transition: width 220ms ease; }
.about-timeline-progress-current[b-chb64lalvq] { position: absolute; top: 50%; z-index: 1; transform: translate(-50%, -50%); min-width: 112px; display: inline-flex; flex-direction: column; align-items: center; gap: 2px; padding: 9px 12px 8px; border: 1px solid var(--brand); border-radius: var(--radius-surface); background: var(--card-bg); }
.about-timeline-progress-current.is-edge-start[b-chb64lalvq] { transform: translate(0, -50%); }
.about-timeline-progress-current.is-edge-end[b-chb64lalvq] { transform: translate(-100%, -50%); }
.about-timeline-progress-current strong[b-chb64lalvq],
.about-timeline-progress-current small[b-chb64lalvq] { display: block; line-height: 1; }
.about-timeline-progress-current strong[b-chb64lalvq] { color: var(--fg); font-size: 16px; font-weight: 900; letter-spacing: -.04em; }
.about-timeline-progress-current small[b-chb64lalvq] { color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }

@media (max-width: 1149.98px) {
    .about-timeline-stage[b-chb64lalvq] { grid-template-columns: 1fr; }
}

@media (max-width: 899.98px) {
    .about-timeline-footer[b-chb64lalvq] { grid-template-columns: 1fr 1fr; }
    .about-timeline-progress-shell[b-chb64lalvq] { grid-column: 1 / -1; grid-row: 1; }
    .about-timeline-stage-head[b-chb64lalvq] { flex-direction: column; }
}

@media (max-width: 767.98px) {
    .about-team-card[b-chb64lalvq] { grid-template-rows: 300px 1fr; }
    .about-team-media[b-chb64lalvq] { height: 300px; }
    .about-team-media.is-placeholder[b-chb64lalvq] { padding: 16px; }
    .about-team-card.has-fixed-aspect[b-chb64lalvq] { grid-template-rows: auto 1fr; }
    .about-timeline-shell .card-body[b-chb64lalvq] { padding: 16px; }
    .about-timeline-year[b-chb64lalvq] { min-width: 92px; }
    .about-history-quote[b-chb64lalvq] { padding: 18px 18px 18px 20px; }
}
/* /Pages/Videowall.razor.rz.scp.css */
/* =====================================================================================
   Videowall mieten - Seiten-CSS der Blazor-Seite Pages/Videowall.razor

   HERKUNFT: Das ist das <style>-Blatt der früheren statischen Seite
   wwwroot/videowall/index.html (Kopie: railway/ersetzt/videowall-index.html). Seit 1.1.75 ist
   /videowall/ eine normale Blazor-Seite im gewöhnlichen Layout (Menü + Fuß); Farben, Abstände,
   Rundungen und Medienabfragen sind unverändert übernommen.

   WIE ES WIRKT: Dieses Blatt gehört zur Komponente (Blazor "CSS-Isolation"): Blazor hängt an jedes
   Element der Seite ein Kennzeichen und an jeden Selektor unten das passende Gegenstück. Die Regeln
   gelten also nur für Elemente dieser einen Seite und färben nicht auf andere Seiten ab.

   DREI ANPASSUNGEN GEGENÜBER DER ALTEN DATEI:
   1. Alle Klassennamen tragen das Präfix "vw-" (.btn -> .vw-btn, .hero -> .vw-hero ...). Grund: Die
      allgemeinen Stylesheets der Anwendung (css/app.css, css/mud-compat.css, css/page-showcase.css)
      benutzen ähnliche Namen - z. B. gibt es in app.css eine alte allgemeine Knopffarbe. Ohne
      Präfix würden sich die Regeln gegenseitig stören. (Ids wie "kontakt" tragen KEIN Präfix: sie sind
      Sprungziele der Links und stehen nicht in diesem Blatt.)
   2. Was früher an :root, html, body und * hing, hängt jetzt am äußeren Rahmen .vw-seite
      (Farbvariablen, Hintergrund, Schrift, Zeilenhöhe, box-sizing). Das Layout der Anwendung bleibt
      dadurch unangetastet.
   3. JEDE Regel beginnt mit ".vw-seite ". Grund: Dieses Blatt wird in der Seite VOR css/app.css und
      css/mud-compat.css geladen. Bei gleicher Gewichtung gewinnt dann das spätere, also das
      allgemeine Blatt - z. B. färbt mud-compat.css besuchte Links ("a:visited") mit der Hauptfarbe
      der Anwendung. Mit dem Rahmen vorweg wiegt jede Regel hier einen Schritt schwerer. Weil das für
      ALLE Regeln gleich gilt, bleibt die Rangfolge untereinander wie in der alten Datei erhalten
      (z. B. schlägt ".vw-btn-primary" weiterhin die allgemeine Link-Regel "a").

   ENTFALLEN sind die Regeln für Teile der alten Datei, die es in der Blazor-Seite nicht mehr gibt,
   weil Menü und Fuß jetzt vom Layout kommen: .skip-link (Sprunglink), .site-header mit .logo-link und
   .home-link (eigener Seitenkopf), .site-footer (eigener Seitenfuß) samt der Handy-Regel, die den
   Logo-Schriftzug ausblendete. Die Medienabfragen unten sind sonst unverändert.
   ===================================================================================== */

/* =====================================================================================
   Farben (dunkel wie die Homepage) und Kontrast nach WCAG AA.
   Berechnet aus den echten Werten (verlangt: Fließtext 4,5 : 1, große Schrift und Knöpfe 3 : 1):
     Fließtext  #eef2f6 auf #121212 = 16,7 : 1 | auf Karte #181d24 = 15,1 : 1
                | auf Kopf/Fuß #0c0e12 = 17,2 : 1 | auf Kopfbereich #0a0d12 bis #181e26 = 14,9 bis 17,3 : 1
     Nebentext  #aeb8c5 auf #121212 = 9,3 : 1 | auf Karte = 8,4 : 1 | auf Kopfbereich = 8,4 bis 9,7 : 1
     Kleinzeile #ffd7cf auf #121212 = 14,2 : 1 | auf Karte = 12,8 : 1 | auf Kopfbereich = 12,7 bis 14,7 : 1
     Knopf rot  #ffffff auf #c81b1f = 5,8 : 1 (beim Überfahren #a9161a = 7,5 : 1)
     Knopf weiß umrandet: Schrift und Rand #ffffff auf #121212 = 18,7 : 1
   Das iTS-Rot #ed2024 hat auf #121212 nur 4,3 : 1 (auf der Karte 3,9 : 1) und wird deshalb
   NIE für Text benutzt, nur für Zierelemente (Strich vor Überschriften, Punkte der Liste,
   Unterstreichung der Links). Zierelemente brauchen mindestens 3 : 1 - erfüllt.
   ===================================================================================== */

/* Äußerer Rahmen der Seite: trägt die Farbvariablen (früher :root), den Seitenhintergrund und die
   Grundschrift (früher body). Der Hintergrund liegt hier am Rahmen, weil die Seite jetzt im
   Layout der Anwendung steht und nicht mehr die ganze Browserseite besitzt. */
.vw-seite[b-7g79o7frc0] {
    --bg: #121212;
    --band: #0c0e12;
    --card: #181d24;
    --text: #eef2f6;
    --muted: #aeb8c5;
    --eyebrow: #ffd7cf;
    --accent: #ed2024;
    --accent-strong: #c81b1f;
    --line: rgba(255, 255, 255, 0.14);

    width: 100%;
    background: var(--bg);
    color: var(--text);
    /* --- ERSETZT am 2026-10-19 (1.1.76): font-family: "Roboto", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
       Grund: Der Name "Roboto" gehört auch Radzens 730-KB-Schrift RobotoFlex (die hier als ERSTE Schrift sogar am
       Windows-PC geladen würde); "iTS Roboto" ist die eigene, kleine Schrift (fonts/roboto.css). --- */
    font-family: "iTS Roboto", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
    font-size: 1rem;
    line-height: 1.65;
    -webkit-text-size-adjust: 100%;
}

/* Früher "* { box-sizing: border-box }": gilt jetzt für den Rahmen und alles darin. */
.vw-seite[b-7g79o7frc0],
.vw-seite *[b-7g79o7frc0] {
    box-sizing: border-box;
}

.vw-seite img[b-7g79o7frc0] {
    display: block;
    max-width: 100%;
    height: auto;
}

.vw-seite a[b-7g79o7frc0] {
    color: var(--text);
    text-decoration: underline;
    text-decoration-color: var(--accent);
    text-underline-offset: 3px;
    text-decoration-thickness: 2px;
}

.vw-seite a:hover[b-7g79o7frc0] {
    text-decoration-color: var(--text);
}

/* Sichtbarer Tastatur-Fokus. Die helle Farbe hat auf dem dunklen Grund weit mehr als 3 : 1. */
.vw-seite a:focus-visible[b-7g79o7frc0] {
    outline: 3px solid var(--eyebrow);
    outline-offset: 3px;
    border-radius: 4px;
}

/* ENTFALLEN (siehe Kopf): .skip-link - das Layout der Anwendung hat seine eigene Navigation. */

.vw-seite .vw-wrap[b-7g79o7frc0] {
    width: 100%;
    max-width: 72rem;
    margin: 0 auto;
    padding: 0 16px;
}

/* ENTFALLEN (siehe Kopf): "Kopfzeile" mit .site-header, .logo-link, .home-link - Kopf und Menü
   kommen jetzt vom Layout. */

/* ---------- Kopfbereich der Seite ---------- */
.vw-seite .vw-hero[b-7g79o7frc0] {
    padding: 40px 0 32px;
    background:
        radial-gradient(circle at top right, rgba(237, 32, 36, 0.16), transparent 40%),
        linear-gradient(145deg, #0a0d12, #181e26);
    border-bottom: 1px solid var(--line);
}

.vw-seite .vw-eyebrow[b-7g79o7frc0] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 14px;
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--eyebrow);
}

.vw-seite .vw-eyebrow[b-7g79o7frc0]::before {
    content: "";
    width: 26px;
    height: 2px;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--accent), rgba(237, 32, 36, 0.2));
}

.vw-seite h1[b-7g79o7frc0] {
    margin: 0 0 16px;
    font-size: 1.75rem;
    line-height: 1.2;
    font-weight: 700;
    color: var(--text);
    /* Umbruch nur an Wortgrenzen bzw. mit Trennstrich, nie mitten im Wort. */
    overflow-wrap: normal;
    word-break: normal;
    hyphens: auto;
}

.vw-seite h2[b-7g79o7frc0] {
    margin: 0 0 14px;
    padding-left: 12px;
    border-left: 4px solid var(--accent);
    font-size: 1.4rem;
    line-height: 1.25;
    font-weight: 700;
    color: var(--text);
}

.vw-seite h3[b-7g79o7frc0] {
    margin: 0 0 8px;
    font-size: 1.2rem;
    line-height: 1.25;
    font-weight: 700;
    color: var(--text);
}

.vw-seite p[b-7g79o7frc0] {
    margin: 0 0 1rem;
}

.vw-seite .vw-lead[b-7g79o7frc0] {
    max-width: 46rem;
    font-size: 1.05rem;
    color: var(--text);
}

.vw-seite .vw-muted[b-7g79o7frc0] {
    color: var(--muted);
}

/* ---------- Knöpfe ---------- */
.vw-seite .vw-actions[b-7g79o7frc0] {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 22px;
}

.vw-seite .vw-btn[b-7g79o7frc0] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 0 22px;
    border-radius: 999px;
    border: 1px solid transparent;
    font-weight: 700;
    text-align: center;
    text-decoration: none;
}

.vw-seite .vw-btn-primary[b-7g79o7frc0] {
    background: var(--accent-strong);
    border-color: var(--accent-strong);
    color: #fff;
}

.vw-seite .vw-btn-primary:hover[b-7g79o7frc0] {
    background: #a9161a;
    border-color: #a9161a;
}

.vw-seite .vw-btn-secondary[b-7g79o7frc0] {
    background: transparent;
    border-color: #fff;
    color: #fff;
}

.vw-seite .vw-btn-secondary:hover[b-7g79o7frc0] {
    background: rgba(255, 255, 255, 0.12);
}

/* ---------- Abschnitte ---------- */
.vw-seite section[b-7g79o7frc0] {
    padding: 32px 0 8px;
}

.vw-seite .vw-card[b-7g79o7frc0] {
    border-radius: 24px;
    padding: 22px 20px;
    background:
        radial-gradient(circle at top right, rgba(237, 32, 36, 0.1), transparent 34%),
        var(--card);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.1);
}

.vw-seite .vw-check-list[b-7g79o7frc0] {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 12px;
}

.vw-seite .vw-check-list li[b-7g79o7frc0] {
    position: relative;
    padding-left: 30px;
}

/* Haken als Zierzeichen vor jedem Listenpunkt; der Text daneben trägt die Aussage. */
.vw-seite .vw-check-list li[b-7g79o7frc0]::before {
    content: "";
    position: absolute;
    left: 4px;
    top: 0.55em;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--accent);
}

.vw-seite .vw-wall-grid[b-7g79o7frc0] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 290px), 1fr));
    gap: 16px;
}

.vw-seite .vw-wall-card[b-7g79o7frc0] {
    display: flex;
    flex-direction: column;
}

.vw-seite .vw-wall-card p[b-7g79o7frc0] {
    color: var(--text);
}

.vw-seite .vw-wall-card dl[b-7g79o7frc0] {
    margin: auto 0 0;
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 6px 14px;
    padding-top: 14px;
    border-top: 1px solid var(--line);
}

.vw-seite .vw-wall-card dt[b-7g79o7frc0] {
    color: var(--muted);
}

/* Werte wie "4,48 m × 2,56 m" nie mitten in der Angabe umbrechen. */
.vw-seite .vw-wall-card dd[b-7g79o7frc0] {
    margin: 0;
    font-weight: 500;
    white-space: nowrap;
}

.vw-seite .vw-gallery[b-7g79o7frc0] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
    gap: 16px;
    margin: 0;
}

.vw-seite .vw-gallery figure[b-7g79o7frc0] {
    margin: 0;
    border-radius: 20px;
    overflow: hidden;
    background: var(--card);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.1);
}

.vw-seite .vw-gallery img[b-7g79o7frc0] {
    width: 100%;
    height: auto;
}

.vw-seite .vw-gallery figcaption[b-7g79o7frc0] {
    padding: 10px 14px 12px;
    font-size: 0.95rem;
    color: var(--muted);
}

/* NEU am 29.10.2026 (Bibliothek NOT-1061): Abschnitt "Einsatzbereiche" mit fünf Karten (3 + 2).
   Die Regeln stehen bewusst als eigene Klasse .vw-einsatz neben .vw-gallery und nicht in dieser selbst, damit
   die Galerie "So sieht es aus" unverändert bleibt. Jede Regel hier hat drei Klassen im Selektor und gewinnt
   damit gegen die Galerie-Regeln oben, egal in welcher Reihenfolge sie stehen.
   Bilder immer im Format 16:9 zuschneiden (object-fit: cover), damit die Karten gleich hoch sind, auch wenn
   eine Datei ein, zwei Pixel von 1600 x 900 abweicht. Farben kommen von .vw-gallery figure/figcaption
   (Beschriftung #aeb8c5 auf Karte #181d24 = 8,4 : 1, siehe Kontrastliste im Kopf dieser Datei). */
.vw-seite .vw-gallery.vw-einsatz[b-7g79o7frc0] {
    grid-template-columns: 1fr;
}

.vw-seite .vw-gallery.vw-einsatz img[b-7g79o7frc0] {
    aspect-ratio: 16 / 9;
    object-fit: cover;
}

/* Ab 600 px zwei Spalten; die fünfte Karte allein in der letzten Reihe läuft über die ganze Breite. */
@media (min-width: 600px) {
    .vw-seite .vw-gallery.vw-einsatz[b-7g79o7frc0] {
        grid-template-columns: repeat(2, 1fr);
    }

    .vw-seite .vw-gallery.vw-einsatz figure:last-child[b-7g79o7frc0] {
        grid-column: 1 / -1;
    }
}

/* Ab 960 px sechs Spalten: obere Reihe drei Karten (je 2 von 6), untere Reihe zwei Karten (je 3 von 6) -
   beide Reihen füllen die Breite, es bleibt keine Lücke. */
@media (min-width: 960px) {
    .vw-seite .vw-gallery.vw-einsatz[b-7g79o7frc0] {
        grid-template-columns: repeat(6, 1fr);
    }

    .vw-seite .vw-gallery.vw-einsatz figure[b-7g79o7frc0] {
        grid-column: span 2;
    }

    .vw-seite .vw-gallery.vw-einsatz figure:nth-child(n + 4)[b-7g79o7frc0] {
        grid-column: span 3;
    }
}

.vw-seite .vw-contact-card address[b-7g79o7frc0] {
    margin: 0 0 1rem;
    font-style: normal;
}

.vw-seite .vw-contact-card .vw-big[b-7g79o7frc0] {
    font-size: 1.15rem;
    font-weight: 700;
}

.vw-seite .vw-more[b-7g79o7frc0] {
    padding: 24px 0 40px;
}

/* ENTFALLEN (siehe Kopf): "Fußzeile" mit .site-footer samt .wrap und nav - der Fuß kommt jetzt vom
   Layout. */

/* ---------- Größere Bildschirme ---------- */
@media (min-width: 700px) {
    .vw-seite .vw-wrap[b-7g79o7frc0] {
        padding: 0 28px;
    }

    .vw-seite .vw-hero[b-7g79o7frc0] {
        padding: 56px 0 44px;
    }

    .vw-seite h1[b-7g79o7frc0] {
        font-size: 2.4rem;
    }

    .vw-seite h2[b-7g79o7frc0] {
        font-size: 1.7rem;
    }

    .vw-seite .vw-card[b-7g79o7frc0] {
        padding: 28px;
    }

    .vw-seite section[b-7g79o7frc0] {
        padding: 44px 0 8px;
    }
}

/* ENTFALLEN (siehe Kopf): Handy-Regel (max-width: 420px), die den Logo-Schriftzug im alten Seitenkopf
   ausblendete - den Seitenkopf gibt es hier nicht mehr. */

/* NEU in der Blazor-Seite: Sprungziele (Knöpfe "Unsere Videowalls ansehen" und "Preis und Verfügbarkeit anfragen")
   landen unter der festen Kopfleiste der Anwendung (56 px hoch), wenn sie ganz oben am Fensterrand anliegen. Der
   Abstand schiebt den Abschnitt darunter. Die alte statische Seite hatte keine feste Kopfleiste. */
.vw-seite section[id][b-7g79o7frc0] {
    scroll-margin-top: 72px;
}
/* /Pages/Zeiteinteilung.razor.rz.scp.css */
/* =====================================================================================
   Zeiteinteilung (Entwurf D, 14.11.2026). Alter Stand: Zeiteinteilung.razor.ersetzt-2026-11-14.txt
   (ein 1483 Zeilen langer Stilblock in der Seite). Diese Datei ist eingegrenzt (Blazor-CSS-Isolierung);
   was die Seite als fertigen Text einfügt (Hinweistext) erreicht nur ::deep.

   Regeln (Bauvorgaben): nur ECHTE Sedna-Variablen (--bg, --card-bg, --bg-hover, --border, --border-strong, --fg,
   --fg-soft, --muted, --brand, --brand-tint, --brand-text, --on-solid, --radius-surface, --radius-control …),
   keine Farbfläche über die volle Breite, keine Umgestaltung von Sedna-Klassen. Eigene Klassen: tn-zt-*.
   Knöpfe (btn, btn--sm, btn--brand, btn--solid) und Karten (card) sind Sedna; hier steht nur Anordnung.
   ===================================================================================== */

.tn-zt-seite[b-c159s4le7i] { display: grid; gap: 18px; min-width: 0; }
.tn-zt-seite > *[b-c159s4le7i] { min-width: 0; }

/* ---------- Turnierinformationen: Kacheln + Hinweis ---------- */
.tn-zt-info[b-c159s4le7i] { padding: 0 20px; }
.tn-zt-kacheln[b-c159s4le7i] { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 14px 28px; padding: 16px 0; }
.tn-zt-kachel[b-c159s4le7i] { display: flex; align-items: center; gap: 12px; min-width: 0; color: var(--fg); text-decoration: none; }
.tn-zt-kachel-icon[b-c159s4le7i] { display: inline-flex; flex: 0 0 auto; color: var(--muted); }
.tn-zt-kachel-text[b-c159s4le7i] { display: flex; flex-direction: column; min-width: 0; }
.tn-zt-kachel-label[b-c159s4le7i] { font-size: 13px; font-weight: 500; letter-spacing: .04em; color: var(--muted); }
.tn-zt-kachel-wert[b-c159s4le7i] { font-size: 15px; font-weight: 600; line-height: 1.4; overflow-wrap: anywhere; }
/* Die Online-Abhaken-Kachel ist ein Link und hebt sich in der Markenfarbe ab. */
.tn-zt-kachel-abhaken[b-c159s4le7i] { padding: 8px 12px; border: 1px solid var(--brand); border-radius: var(--radius-control); background: var(--brand-tint); color: var(--brand-text); }
.tn-zt-kachel-abhaken:hover[b-c159s4le7i] { background: var(--brand-tint-strong); }
.tn-zt-kachel-abhaken .tn-zt-kachel-icon[b-c159s4le7i], .tn-zt-kachel-abhaken .tn-zt-kachel-label[b-c159s4le7i] { color: var(--brand-text); }

.tn-zt-hinweis[b-c159s4le7i] { border-top: 0; }
.tn-zt-kacheln + .tn-zt-hinweis[b-c159s4le7i] { border-top: 1px solid var(--border); }
.tn-zt-hinweis-kopf[b-c159s4le7i] { display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 8px 0; cursor: pointer; list-style: none; }
.tn-zt-hinweis-kopf[b-c159s4le7i]::-webkit-details-marker { display: none; }
.tn-zt-hinweis-icon[b-c159s4le7i] { display: inline-flex; color: var(--muted); }
.tn-zt-hinweis-titel[b-c159s4le7i] { font-size: 15px; font-weight: 600; color: var(--fg); }
.tn-zt-hinweis-kopf > i[b-c159s4le7i] { margin-left: auto; font-size: 20px; color: var(--muted); transition: transform .15s; }
.tn-zt-hinweis[open] .tn-zt-hinweis-kopf > i[b-c159s4le7i] { transform: rotate(180deg); }
/* Die Farbe der Listenpunkte setzt das Skript „normalizeNoticeLists“ je Eintrag selbst (inline, hat Vorrang); fehlt
   sie, gilt dieser Grundwert - dasselbe Grün wie vorher (rgb(47, 133, 90)). */
.tn-zt-hinweis-inhalt[b-c159s4le7i] { --schedule-notice-marker-color: rgb(47, 133, 90); padding: 2px 0 18px; font-size: 15px; line-height: 1.6; color: var(--fg-soft); }

/* Der Hinweistext kommt als fertiger Text (MarkupString): nur ::deep erreicht ihn. */
.tn-zt-hinweis-inhalt[b-c159s4le7i]  div[style*="max-width"] { width: 100% !important; max-width: none !important; }
.tn-zt-hinweis-inhalt[b-c159s4le7i]  img { display: block; max-width: min(100%, 420px) !important; max-height: 18rem !important; height: auto; margin: .75rem 0; border-radius: 12px; }
.tn-zt-hinweis-inhalt[b-c159s4le7i]  a.hinweis-bild-link { display: inline-block; max-width: 100%; cursor: zoom-in; }
.tn-zt-hinweis-inhalt[b-c159s4le7i]  a.hinweis-bild-link img { margin: 0; }
.tn-zt-hinweis-inhalt[b-c159s4le7i]  p { margin: 0 0 .7rem; }
.tn-zt-hinweis-inhalt[b-c159s4le7i]  p:last-child { margin-bottom: 0; }
.tn-zt-hinweis-inhalt[b-c159s4le7i]  ul, .tn-zt-hinweis-inhalt[b-c159s4le7i]  ol { width: 100%; margin: .15rem 0 .75rem; padding-left: 1.1rem; }
.tn-zt-hinweis-inhalt[b-c159s4le7i]  li { margin: .2rem 0; break-inside: avoid; }
/* Klassen, die das Skript „normalizeNoticeLists“ (seitenhelfer.js, nur im Browser) an die Listen setzt. */
.tn-zt-hinweis-inhalt[b-c159s4le7i]  ul.schedule-notice-balanced-list-native, .tn-zt-hinweis-inhalt[b-c159s4le7i]  ol.schedule-notice-balanced-list-native { width: 100%; margin: .15rem 0 .75rem; padding-left: 1.1rem; column-count: 2; column-gap: 1.5rem; column-fill: balance; }
.tn-zt-hinweis-inhalt[b-c159s4le7i]  ul.schedule-notice-balanced-list-native > li, .tn-zt-hinweis-inhalt[b-c159s4le7i]  ol.schedule-notice-balanced-list-native > li { break-inside: avoid-column; overflow-wrap: anywhere; word-break: normal; }
.tn-zt-hinweis-inhalt[b-c159s4le7i]  ul.schedule-notice-balanced-list-native > li::marker, .tn-zt-hinweis-inhalt[b-c159s4le7i]  ol.schedule-notice-balanced-list-native > li::marker { color: var(--schedule-notice-marker-color, var(--brand-text)); }
.tn-zt-hinweis-inhalt[b-c159s4le7i]  li.schedule-notice-bullet-item { display: flex !important; align-items: flex-start; gap: .625rem; }
.tn-zt-hinweis-inhalt[b-c159s4le7i]  .schedule-notice-bullet-marker { flex: 0 0 auto; line-height: 1.5; color: var(--schedule-notice-marker-color, var(--brand-text)); }
.tn-zt-hinweis-inhalt[b-c159s4le7i]  .schedule-notice-bullet-content { flex: 1 1 auto; min-width: 0; }

/* ---------- Verzeichnisse ---------- */
.tn-zt-verzeichnisse[b-c159s4le7i] { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; }
.tn-zt-verzeichnisse-titel[b-c159s4le7i] { font-size: 13px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: var(--muted); }
.tn-zt-verzeichnisse-links[b-c159s4le7i] { display: flex; flex-wrap: wrap; gap: 8px; }
.tn-zt-verzeichnisse-links .btn[b-c159s4le7i] { gap: 8px; }

/* ---------- Meldungen (Laden, externer Anbieter) ---------- */
.tn-zt-melden[b-c159s4le7i] { display: grid; justify-items: center; gap: 14px; padding: 32px 20px; text-align: center; }
.tn-zt-melden h2[b-c159s4le7i] { margin: 0; font-size: 20px; }
.tn-zt-melden p[b-c159s4le7i] { margin: 0; max-width: 60ch; color: var(--fg-soft); }

/* ---------- Tagesleiste ---------- */
.tn-zt-tage[b-c159s4le7i] { display: flex; gap: 6px; overflow-x: auto; padding-bottom: 4px; scrollbar-width: thin; }
.tn-zt-tage > a[b-c159s4le7i] { flex: 0 0 auto; }

/* ---------- Ein Tag = eine Karte ---------- */
.tn-zt-tag[b-c159s4le7i] { scroll-margin-top: 112px; }
.tn-zt-tagkopf[b-c159s4le7i] { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 20px; background: var(--card-head-bg); }
.tn-zt-tagkopf-haupt[b-c159s4le7i] { display: flex; align-items: center; gap: 14px; min-width: 0; }
.tn-zt-tagbadge[b-c159s4le7i] { display: flex; flex-direction: column; align-items: center; justify-content: center; flex: 0 0 auto; width: 48px; height: 52px; border-radius: var(--radius-control); background: var(--brand); color: var(--on-solid); line-height: 1.1; }
.tn-zt-tagbadge-zahl[b-c159s4le7i] { font-size: 23px; font-weight: 700; }
.tn-zt-tagbadge-monat[b-c159s4le7i] { font-size: 11px; font-weight: 600; letter-spacing: .04em; }
.tn-zt-tagtext[b-c159s4le7i] { display: flex; flex-direction: column; min-width: 0; }
.tn-zt-wochentag[b-c159s4le7i] { margin: 0; font-size: 19px; font-weight: 650; line-height: 1.3; color: var(--fg); }
.tn-zt-datum[b-c159s4le7i] { font-size: 14px; color: var(--muted); overflow-wrap: anywhere; }
.tn-zt-tagkopf-rechts[b-c159s4le7i] { display: flex; align-items: center; gap: 12px; flex: 0 0 auto; }
.tn-zt-anzahl[b-c159s4le7i] { font-size: 13px; color: var(--muted); white-space: nowrap; }
.tn-zt-tag-zu .tn-zt-tagkopf[b-c159s4le7i] { border-bottom: 0; }

.tn-zt-eingeklappt[b-c159s4le7i] { display: flex; align-items: center; justify-content: space-between; gap: 16px; width: 100%; padding: 14px 20px; border: 0; border-top: 1px solid var(--border); background: transparent; color: var(--fg); font: inherit; text-align: left; cursor: pointer; }
.tn-zt-eingeklappt:hover[b-c159s4le7i] { background: var(--bg-hover); }
.tn-zt-eingeklappt-text[b-c159s4le7i] { display: flex; flex-direction: column; gap: 2px; font-size: 14px; color: var(--muted); }
.tn-zt-eingeklappt-text strong[b-c159s4le7i] { font-size: 15px; color: var(--fg); }

/* ---------- Platz ---------- */
.tn-zt-ort[b-c159s4le7i] { border-top: 1px solid var(--border); }
.tn-zt-ortkopf[b-c159s4le7i] { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 20px; background: var(--bg-hover); border-bottom: 1px solid var(--border); }
.tn-zt-ortname[b-c159s4le7i] { display: flex; align-items: center; gap: 10px; min-width: 0; }
.tn-zt-ortname h3[b-c159s4le7i] { margin: 0; font-size: 15px; font-weight: 650; color: var(--fg); overflow-wrap: anywhere; }
.tn-zt-ortname > i[b-c159s4le7i] { font-size: 18px; color: var(--muted); }
.tn-zt-ortbild[b-c159s4le7i] { object-fit: contain; background: #fff; border-radius: 3px; padding: 1px; }

/* =====================================================================================
   Die Liste: Zeitstrahl links, Zeilen rechts. Die Liste ist ein CONTAINER: ihre eigene Breite (nicht die des
   Fensters, die mit offenem Seitenmenü täuscht) entscheidet, ob die breite Tabellenansicht passt oder Karten
   kommen. Die Schwelle in der Container-Abfrage unten ist die Summe der Mindestbreiten der Spalten
   (--tn-zt-spalten) plus Zeitstrahl, Ränder und Lücken; ZeiteinteilungSchmalesFensterTests rechnet sie nach.
   Spalten der breiten Ansicht: Nr. | Prüfung | Richter | Nennungen | Status | vier Knopfplätze.
   Die Spalten Richter und Nennungen gibt es nur an Tagen mit Zusatzangaben (tn-zt-liste-zusatz).
   ===================================================================================== */
.tn-zt-liste[b-c159s4le7i] {
    container-type: inline-size;
    container-name: tn-zt;
    /* Nennungen-Spalte mindestens 5,5rem: Bei 3,5rem brach die Kopfzeile „NENNUNGEN“ bei 1440 px mitten im Wort um
       (gemessen 14.11.2026).
       Schwelle gesenkt am 14.11.2026 (Frank): Bei 1280 px Fensterbreite ist die Liste rund 1196 px breit und zeigte
       deshalb Karten; Entwurf D zeigt dort die Tabelle. Die Summe der Mindestbreiten sinkt von 1196 auf 1106 px:
         Spalten: 4 + 8 (Prüfung, vorher 9) + 5,5 (Richter, vorher 7) + 5,5 (Nennungen) + 5 (Status, vorher 5,5)
                  + 29,375 (Knopfplätze, UNVERÄNDERT) = 57,375 rem = 918 px
         Zeitstrahl: 5 (Uhrzeit, vorher 5,5) + 1,5 (Linie, vorher 1,75) + 0,75 (Klammer, vorher 0,875) = 7,25 rem = 116 px
         Ränder 2 × 16 px = 32 px (vorher 2 × 20), Lücken 5 × 8 px = 40 px (vorher 5 × 12)
         918 + 116 + 32 + 40 = 1106 px → Karten bis 1105 px. Nicht verkleinert: die Knopfplätze (Knopftexte bleiben
         ganz) und die Nennungen-Spalte (Kopfzeile bricht nicht um). */
    --tn-zt-spalten: minmax(4rem, 4rem) minmax(8rem, 2.4fr) minmax(5.5rem, 1.3fr) minmax(5.5rem, 0.6fr) minmax(5rem, 5rem) minmax(29.375rem, 29.375rem);
}

/* Tage ohne Zusatzangaben: ohne die Spalten Richter und Nennungen. */
.tn-zt-liste:not(.tn-zt-liste-zusatz)[b-c159s4le7i] {
    --tn-zt-spalten: minmax(4rem, 4rem) minmax(14rem, 1fr) minmax(5rem, 5rem) minmax(29.375rem, 29.375rem);
}

/* Der Zeitstrahl: Uhrzeit | Linie mit Punkt | Klammer | Zeilen. Kopfzeile und Blöcke teilen sich die Spalten. */
.tn-zt-kopfzeile[b-c159s4le7i], .tn-zt-block[b-c159s4le7i] { display: grid; grid-template-columns: 5rem 1.5rem 0.75rem minmax(0, 1fr); padding-left: 16px; }

.tn-zt-kopfzeile[b-c159s4le7i] { min-height: 44px; align-items: center; background: var(--bg-hover); border-bottom: 1px solid var(--border); font-size: 13px; font-weight: 650; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); }
.tn-zt-gitter[b-c159s4le7i] { display: grid; grid-template-columns: var(--tn-zt-spalten); gap: 0 8px; align-items: center; padding-right: 16px; }

.tn-zt-zeilen[b-c159s4le7i] { min-width: 0; padding-right: 16px; border-bottom: 1px solid var(--border); }
.tn-zt-block:last-child .tn-zt-zeilen[b-c159s4le7i] { border-bottom: 0; }

.tn-zt-zeit[b-c159s4le7i] { padding-top: 14px; font-size: 18px; font-weight: 800; line-height: 30px; font-variant-numeric: tabular-nums; color: var(--fg); }
.tn-zt-zeit small[b-c159s4le7i] { display: block; margin-top: -4px; font-size: 13px; font-weight: 600; line-height: 1.2; color: var(--muted); }

.tn-zt-schiene[b-c159s4le7i] { position: relative; }
.tn-zt-schiene[b-c159s4le7i]::before { content: ""; position: absolute; left: 13px; top: 0; bottom: 0; width: 2px; background: var(--border-strong); }
.tn-zt-schiene[b-c159s4le7i]::after { content: ""; position: absolute; left: 6px; top: 22px; width: 16px; height: 16px; box-sizing: border-box; border-radius: 50%; background: var(--card-bg); border: 3px solid var(--muted); }

/* Klammer bei gleichzeitigen Prüfungen (gleiche Startzeit im selben Platz). */
.tn-zt-klammer[b-c159s4le7i] { position: relative; }
.tn-zt-block-gleichzeitig .tn-zt-klammer[b-c159s4le7i]::before { content: ""; position: absolute; left: 2px; top: 12px; bottom: 12px; width: 8px; border: 2px solid var(--border-strong); border-right: 0; border-radius: 8px 0 0 8px; }

/* „Jetzt“-Marke: roter Punkt auf dem Zeitstrahl und eine rote Linie über die Zeilenbreite. */
.tn-zt-jetzt .tn-zt-zeit[b-c159s4le7i] { color: var(--brand-text); }
.tn-zt-jetzt .tn-zt-schiene[b-c159s4le7i]::after { background: var(--brand); border-color: var(--brand); box-shadow: 0 0 0 4px color-mix(in srgb, var(--brand) 25%, transparent); }
.tn-zt-jetzt-linie[b-c159s4le7i] { display: flex; align-items: center; min-height: 58px; padding-right: 16px; }
.tn-zt-jetzt-linie span[b-c159s4le7i] { display: block; flex: 1; height: 2px; background: var(--brand); }

/* Eine Zeile */
.tn-zt-zeile[b-c159s4le7i] { position: relative; display: grid; grid-template-columns: var(--tn-zt-spalten); gap: 0 8px; align-items: center; min-height: 58px; padding: 8px 0; }
.tn-zt-zeile + .tn-zt-zeile[b-c159s4le7i] { border-top: 1px dashed var(--border-strong); }

/* Die Uhrzeit jeder Zeile: für Vorlesehilfen da, sichtbar nur im Zeitstrahl. */
.tn-zt-vh[b-c159s4le7i] { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

.tn-zt-nr[b-c159s4le7i] { font-size: 14px; font-weight: 600; color: var(--muted); white-space: nowrap; }
.tn-zt-name[b-c159s4le7i] { font-size: 15px; font-weight: 650; line-height: 1.3; color: var(--fg); white-space: pre-line; overflow-wrap: anywhere; }
.tn-zt-pruefung[b-c159s4le7i] { min-width: 0; }
.tn-zt-zusatz[b-c159s4le7i] { display: flex; flex-direction: column; gap: 2px; margin-top: 3px; font-size: 13px; line-height: 1.4; color: var(--muted); overflow-wrap: anywhere; white-space: pre-line; }
.tn-zt-etikett[b-c159s4le7i] { margin-right: 4px; font-size: 12px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; }
.tn-zt-sponsoren[b-c159s4le7i] { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 12px; }
.tn-zt-richter[b-c159s4le7i] { display: flex; flex-direction: column; gap: 2px; min-width: 0; font-size: 14px; line-height: 1.4; color: var(--fg-soft); overflow-wrap: anywhere; }
.tn-zt-aufsicht[b-c159s4le7i] { color: var(--muted); }
.tn-zt-zahl[b-c159s4le7i] { font-size: 15px; font-variant-numeric: tabular-nums; color: var(--fg-soft); }
.tn-zt-status[b-c159s4le7i] { min-width: 0; }

/* Die vier festen Knopfplätze: Nennungen | Starter | Ergebnis | Live-Ticker. Breiten für Sedna-Knöpfe „btn--sm“
   (12 px) mit bis zu dreistelliger Zahl; 7 + 6 + 6.75 + 8.5 rem + 3 Lücken (0.375 rem) = 29.375 rem, so steht es
   auch in --tn-zt-spalten. Nicht im Browser gemessen. */
.tn-zt-knoepfe[b-c159s4le7i] { display: grid; grid-template-columns: 7rem 6rem 6.75rem 8.5rem; gap: 0 0.375rem; }
.tn-zt-platz[b-c159s4le7i] { display: flex; min-width: 0; }
.tn-zt-platz > .btn[b-c159s4le7i] { width: 100%; padding-inline: 6px; white-space: nowrap; }
.tn-zt-live[b-c159s4le7i]::before { content: ""; flex: 0 0 auto; width: 8px; height: 8px; margin-right: 4px; border-radius: 50%; background: var(--brand); }

/* =====================================================================================
   Karten-Ansicht: unter der Schwelle der breiten Ansicht (siehe oben: Summe der Mindestbreiten, 1106 px; die
   Abfrage gilt bis 1105 px). Jede Zeile wird eine Karte rechts vom Zeitstrahl; „flex“ statt Raster, damit leere
   Teile (kein Richter, keine Zahl, kein Knopf) keine Lücken hinterlassen.
   ===================================================================================== */
@container tn-zt (max-width: 1105px) {
    .tn-zt-kopfzeile[b-c159s4le7i] { display: none; }
    .tn-zt-block[b-c159s4le7i] { grid-template-columns: 4rem 1.5rem 0.625rem minmax(0, 1fr); padding-left: 0; }
    .tn-zt-zeilen[b-c159s4le7i] { display: grid; gap: 8px; padding-right: 0; padding-bottom: 12px; border-bottom: 0; }
    .tn-zt-zeit[b-c159s4le7i] { padding-top: 14px; font-size: 16px; }
    .tn-zt-zeit small[b-c159s4le7i] { font-size: 13px; }
    .tn-zt-schiene[b-c159s4le7i]::before { left: 8px; }
    .tn-zt-schiene[b-c159s4le7i]::after { left: 1px; width: 14px; height: 14px; top: 23px; }
    .tn-zt-block-gleichzeitig .tn-zt-klammer[b-c159s4le7i]::before { left: 1px; top: 6px; bottom: 18px; }
    .tn-zt-jetzt-linie[b-c159s4le7i] { padding-right: 0; }

    .tn-zt-zeile[b-c159s4le7i] { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; min-height: 0; padding: 12px; border: 1px solid var(--border); border-radius: 12px; background: var(--card-bg); }
    .tn-zt-zeile + .tn-zt-zeile[b-c159s4le7i] { border-top: 1px solid var(--border); }
    .tn-zt-nr[b-c159s4le7i] { order: 1; flex: 1 1 0; min-width: 0; }
    .tn-zt-status[b-c159s4le7i] { order: 2; }
    .tn-zt-pruefung[b-c159s4le7i] { order: 3; flex: 1 1 100%; }
    .tn-zt-richter[b-c159s4le7i] { order: 4; flex: 1 1 0; min-width: 10rem; }
    .tn-zt-zahl[b-c159s4le7i] { order: 5; flex: 0 0 auto; text-align: right; font-size: 14px; }
    .tn-zt-zahl:not(.tn-zt-leer)[b-c159s4le7i]::after { content: " " attr(data-label); color: var(--muted); }
    .tn-zt-knoepfe[b-c159s4le7i] { order: 6; display: flex; flex: 1 1 100%; flex-wrap: wrap; gap: 6px; padding-top: 6px; }
    .tn-zt-zeile-ohneknoepfe .tn-zt-knoepfe[b-c159s4le7i] { display: none; }
    .tn-zt-platz[b-c159s4le7i] { flex: 0 0 auto; }
    .tn-zt-platz > .btn[b-c159s4le7i] { width: auto; padding-inline: 12px; }
    .tn-zt-leer[b-c159s4le7i] { display: none; }
}

/* Handy: die vorhandenen Knöpfe stehen nebeneinander, gestreckt. */
@container tn-zt (max-width: 700px) {
    .tn-zt-block[b-c159s4le7i] { grid-template-columns: 46px 18px 10px minmax(0, 1fr); }
    .tn-zt-zeit[b-c159s4le7i] { font-size: 16px; }
    /* Grundbreite = Textbreite ("auto" statt 0): Bei gleich breiten Knöpfen wurde „Nennungen (15)“ bei 375 px
       abgeschnitten (gemessen 14.11.2026). So wachsen die Knöpfe nur in den freien Platz und brechen notfalls in
       eine zweite Reihe um (flex-wrap der Knopfleiste). */
    .tn-zt-platz[b-c159s4le7i] { flex: 1 1 auto; }
    .tn-zt-platz > .btn[b-c159s4le7i] { width: 100%; padding-inline: 8px; }
}

/* Schmale Fenster (Hinweisliste einspaltig, Kacheln zweispaltig, Tagesleiste enger). */
@media (max-width: 700px) {
    .tn-zt-info[b-c159s4le7i] { padding: 0 14px; }
    .tn-zt-kacheln[b-c159s4le7i] { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
    .tn-zt-kachel-icon[b-c159s4le7i] { display: none; }
    .tn-zt-verzeichnisse-titel[b-c159s4le7i] { display: none; }
    .tn-zt-verzeichnisse-links[b-c159s4le7i] { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
    .tn-zt-tagkopf[b-c159s4le7i] { padding: 12px 14px; }
    .tn-zt-ortkopf[b-c159s4le7i] { padding: 10px 14px; }
    .tn-zt-hinweis-inhalt[b-c159s4le7i]  ul.schedule-notice-balanced-list-native, .tn-zt-hinweis-inhalt[b-c159s4le7i]  ol.schedule-notice-balanced-list-native { column-count: 1; column-gap: 0; }
    .tn-zt-hinweis-inhalt[b-c159s4le7i]  img { max-width: 100% !important; max-height: 12rem !important; }
}
