﻿/**
 * Eltern-Rückmeldung: Seiten-Look-Presets.
 * Wird NACH Brand-CSS geladen (sonst überschreibt z. B. RSV .app-shell den Look).
 *
 * Wichtig: Hintergrund als position:fixed — sonst „verschwindet“ der Look beim Scrollen
 * (prozentuale Verläufe am wachsenden .app-shell).
 */

/* ========== Gemeinsam: fester Viewport-Hintergrund ========== */
body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="spielfunk"]::before,
body.sf-guest-shell[data-page^="public-attendance"]:not([data-portal-theme])::before,
body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sportlich"]::before,
body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="dezent"]::before,
body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sgm"]::before,
body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="tsv-einsingen"]::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="spielfunk"] .app-shell,
body.sf-guest-shell[data-page^="public-attendance"]:not([data-portal-theme]) .app-shell,
body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sportlich"] .app-shell,
body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="dezent"] .app-shell,
body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sgm"] .app-shell,
body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="tsv-einsingen"] .app-shell {
  background: transparent !important;
  position: relative;
  z-index: 1;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="spielfunk"] .content,
body.sf-guest-shell[data-page^="public-attendance"]:not([data-portal-theme]) .content,
body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sportlich"] .content,
body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="dezent"] .content,
body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sgm"] .content,
body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="tsv-einsingen"] .content {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  max-width: 40rem;
  margin-inline: auto;
  width: 100%;
}

/* ========== SpielFunk = Plakat (wie parent-handout) ========== */
body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="spielfunk"]::before,
body.sf-guest-shell[data-page^="public-attendance"]:not([data-portal-theme])::before {
  background:
    radial-gradient(ellipse 70% 55% at 100% -10%, rgba(26, 127, 212, 0.42), transparent 55%),
    radial-gradient(ellipse 60% 50% at -5% 100%, rgba(107, 198, 40, 0.38), transparent 50%),
    linear-gradient(160deg, #e8eef8 0%, #d5e6f8 42%, #e4f3d8 100%);
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="spielfunk"] .page > .card,
body.sf-guest-shell[data-page^="public-attendance"]:not([data-portal-theme]) .page > .card {
  border: 1px solid rgba(26, 127, 212, 0.18) !important;
  box-shadow:
    0 22px 50px rgba(15, 26, 46, 0.16),
    0 0 0 1px rgba(255, 255, 255, 0.7) inset !important;
  border-radius: 20px !important;
  overflow: hidden;
  background: #fff !important;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="spielfunk"] .card-header,
body.sf-guest-shell[data-page^="public-attendance"]:not([data-portal-theme]) .card-header {
  background: linear-gradient(145deg, #f4f7fb 0%, #dce9f8 48%, #e8f4e0 100%) !important;
  border-bottom: none !important;
  padding: 1.2rem 1.15rem 1.1rem !important;
  position: relative;
  overflow: hidden;
}

/* Plakat-Hero: weiche Farbflächen + Markenbalken */
body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="spielfunk"] .card-header::before,
body.sf-guest-shell[data-page^="public-attendance"]:not([data-portal-theme]) .card-header::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 7px;
  background: linear-gradient(180deg, #1a7fd4 0%, #6bc628 100%);
  z-index: 1;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="spielfunk"] .card-header::after,
body.sf-guest-shell[data-page^="public-attendance"]:not([data-portal-theme]) .card-header::after {
  content: "";
  position: absolute;
  right: -2.5rem;
  top: -2.5rem;
  width: 8rem;
  height: 8rem;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(26, 127, 212, 0.28) 0%, transparent 70%);
  pointer-events: none;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="spielfunk"] .card-header h3,
body.sf-guest-shell[data-page^="public-attendance"]:not([data-portal-theme]) .card-header h3 {
  color: #0f1a2e !important;
  font-weight: 800 !important;
  letter-spacing: -0.025em;
  font-size: 1.22rem !important;
  position: relative;
  z-index: 1;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="spielfunk"] .card-header .muted,
body.sf-guest-shell[data-page^="public-attendance"]:not([data-portal-theme]) .card-header .muted {
  color: #0d5a9e !important;
  font-weight: 600 !important;
  position: relative;
  z-index: 1;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="spielfunk"] .cta:not(.ghost),
body.sf-guest-shell[data-page^="public-attendance"]:not([data-portal-theme]) .cta:not(.ghost) {
  background: linear-gradient(135deg, #6bc628, #4a9a18) !important;
  border: none !important;
  color: #fff !important;
  box-shadow: 0 10px 26px rgba(107, 198, 40, 0.38);
  font-weight: 700 !important;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="spielfunk"] .cta.ghost,
body.sf-guest-shell[data-page^="public-attendance"]:not([data-portal-theme]) .cta.ghost {
  border: 2px solid #1a7fd4 !important;
  color: #0d5a9e !important;
  background: #fff !important;
  font-weight: 650 !important;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="spielfunk"] .public-light-session-card,
body.sf-guest-shell[data-page^="public-attendance"]:not([data-portal-theme]) .public-light-session-card {
  border-radius: 14px !important;
  box-shadow: 0 8px 22px rgba(15, 26, 46, 0.08), 0 0 0 1px rgba(26, 127, 212, 0.12) !important;
}

/* ========== Sportlich: dunkler Rahmen bleibt beim Scrollen ========== */
body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sportlich"]::before {
  background: linear-gradient(165deg, #0a1424 0%, #0f1a2e 28%, #0d5a9e 72%, #1a7fd4 100%);
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sportlich"] .page > .card {
  border: none !important;
  box-shadow:
    0 24px 56px rgba(0, 0, 0, 0.38),
    0 0 0 1px rgba(255, 255, 255, 0.08) !important;
  border-radius: 18px !important;
  overflow: hidden;
  background: #fff !important;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sportlich"] .card-header {
  background: linear-gradient(115deg, #0f1a2e 0%, #0d5a9e 50%, #1a7fd4 100%) !important;
  border-bottom: 5px solid #6bc628 !important;
  padding: 1.25rem 1.15rem 1.15rem !important;
  position: relative;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sportlich"] .card-header::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 7px;
  background: #6bc628;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sportlich"] .card-header h3,
body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sportlich"] .card-header .muted {
  color: #f8fafc !important;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sportlich"] .card-header h3 {
  font-weight: 800 !important;
  letter-spacing: -0.02em;
  font-size: 1.2rem !important;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sportlich"] .cta:not(.ghost) {
  background: #6bc628 !important;
  border: none !important;
  color: #fff !important;
  box-shadow: 0 10px 24px rgba(107, 198, 40, 0.4);
  font-weight: 700 !important;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sportlich"] .cta.ghost {
  border: 2px solid #0d5a9e !important;
  color: #0d5a9e !important;
  background: #fff !important;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sportlich"] .public-light-session-card {
  border-radius: 14px !important;
  box-shadow: 0 6px 18px rgba(15, 26, 46, 0.1), 0 0 0 1px rgba(13, 90, 158, 0.14) !important;
}

/* ========== Dezent: ruhig, aber klar gestaltet (kein flaches Grau) ========== */
body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="dezent"]::before {
  background:
    radial-gradient(ellipse 80% 50% at 50% -20%, rgba(55, 90, 130, 0.12), transparent 55%),
    linear-gradient(180deg, #dbe3ec 0%, #eef2f6 55%, #e7edf4 100%);
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="dezent"] .page > .card {
  border: 1px solid rgba(47, 64, 86, 0.14) !important;
  box-shadow: 0 14px 36px rgba(31, 45, 66, 0.1) !important;
  border-radius: 12px !important;
  overflow: hidden;
  background: #fbfcfe !important;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="dezent"] .card-header {
  background: linear-gradient(180deg, #2f4056 0%, #243447 100%) !important;
  border-bottom: 3px solid #5b8fb8 !important;
  padding: 1rem 1.05rem 0.95rem !important;
  position: relative;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="dezent"] .card-header::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 4px;
  background: #5b8fb8;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="dezent"] .card-header h3 {
  color: #f4f7fb !important;
  font-weight: 700 !important;
  letter-spacing: -0.015em;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="dezent"] .card-header .muted {
  color: #b7c5d6 !important;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="dezent"] .cta:not(.ghost) {
  background: #2f4056 !important;
  border: none !important;
  color: #fff !important;
  box-shadow: 0 6px 16px rgba(47, 64, 86, 0.28);
  font-weight: 650 !important;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="dezent"] .cta.ghost {
  border: 1.5px solid #5b8fb8 !important;
  color: #2f4056 !important;
  background: #fff !important;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="dezent"] .public-light-session-card {
  border-radius: 10px !important;
  box-shadow: 0 4px 14px rgba(31, 45, 66, 0.07), 0 0 0 1px rgba(47, 64, 86, 0.08) !important;
}

/* ========== Dark Mode ========== */
body[data-theme="dark"].sf-guest-shell[data-page^="public-attendance"][data-portal-theme="spielfunk"]::before,
body[data-theme="dark"].sf-guest-shell[data-page^="public-attendance"]:not([data-portal-theme])::before {
  background:
    radial-gradient(ellipse 70% 50% at 90% 0%, rgba(26, 127, 212, 0.28), transparent 55%),
    radial-gradient(ellipse 55% 45% at 0% 100%, rgba(107, 198, 40, 0.16), transparent 50%),
    linear-gradient(180deg, #0b1220 0%, #121f33 100%);
}

body[data-theme="dark"].sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sportlich"]::before {
  background: linear-gradient(165deg, #070d16 0%, #0b1220 40%, #12253f 100%);
}

body[data-theme="dark"].sf-guest-shell[data-page^="public-attendance"][data-portal-theme="dezent"]::before {
  background: linear-gradient(180deg, #12181f 0%, #0f1419 100%);
}

body[data-theme="dark"].sf-guest-shell[data-page^="public-attendance"][data-portal-theme="spielfunk"] .page > .card,
body[data-theme="dark"].sf-guest-shell[data-page^="public-attendance"]:not([data-portal-theme]) .page > .card,
body[data-theme="dark"].sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sportlich"] .page > .card,
body[data-theme="dark"].sf-guest-shell[data-page^="public-attendance"][data-portal-theme="dezent"] .page > .card {
  background: #1a2744 !important;
  border-color: rgba(110, 168, 255, 0.18) !important;
}

body[data-theme="dark"].sf-guest-shell[data-page^="public-attendance"][data-portal-theme="spielfunk"] .card-header,
body[data-theme="dark"].sf-guest-shell[data-page^="public-attendance"]:not([data-portal-theme]) .card-header {
  background: linear-gradient(145deg, #1a2744 0%, #243352 55%, #1e3a2a 100%) !important;
}

body[data-theme="dark"].sf-guest-shell[data-page^="public-attendance"][data-portal-theme="spielfunk"] .card-header h3,
body[data-theme="dark"].sf-guest-shell[data-page^="public-attendance"]:not([data-portal-theme]) .card-header h3 {
  color: #e8eef6 !important;
}

body[data-theme="dark"].sf-guest-shell[data-page^="public-attendance"][data-portal-theme="spielfunk"] .card-header .muted,
body[data-theme="dark"].sf-guest-shell[data-page^="public-attendance"]:not([data-portal-theme]) .card-header .muted {
  color: #9bbcff !important;
}

body[data-theme="dark"].sf-guest-shell[data-page^="public-attendance"][data-portal-theme="dezent"] .card-header {
  background: linear-gradient(180deg, #1c2430 0%, #151b24 100%) !important;
  border-bottom-color: #6ea8ff !important;
}

/* ========== SGM Ermingen / Eggingen / Einsingen (Custom Style, config-freigeschaltet) ========== */
body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sgm"] {
  --sf-sgm-logo: url("rsv/logo-composite.png?v=20260720a");
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sgm"]::before {
  background: linear-gradient(180deg, #0b2d63 0%, #0e1a2b 55%, #122244 100%);
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sgm"] .page > .card {
  border: 1px solid #b8cae6 !important;
  box-shadow: 0 22px 52px rgba(14, 26, 43, 0.35) !important;
  border-radius: 16px !important;
  overflow: hidden;
  background: #ffffff !important;
  position: relative;
  isolation: isolate;
}

/* Dezent: Wasserzeichen im Karten-Hintergrund */
body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sgm"] .page > .card::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 42%;
  width: min(72%, 17rem);
  height: min(52%, 17rem);
  transform: translate(-50%, -40%);
  background: var(--sf-sgm-logo) center / contain no-repeat;
  opacity: var(--sf-portal-wm-opacity, 0.07);
  pointer-events: none;
  z-index: 0;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sgm"] .page > .card > * {
  position: relative;
  z-index: 1;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sgm"] .card-header {
  background: linear-gradient(180deg, #e8f0fc 0%, #ffffff 100%) !important;
  border-bottom: 2px solid #1e4fa1 !important;
  padding: 1.15rem 4.6rem 1.05rem 1.1rem !important;
  position: relative;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sgm"] .card-header::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 6px;
  background: linear-gradient(180deg, #0b2d63 0%, #1e4fa1 100%);
}

/* Logo oben rechts im Header */
body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sgm"] .card-header::after {
  content: "";
  position: absolute;
  top: 0.65rem;
  right: 0.75rem;
  width: 3.35rem;
  height: 3.35rem;
  background: var(--sf-sgm-logo) center / contain no-repeat;
  border-radius: 10px;
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.95),
    0 2px 10px rgba(14, 26, 43, 0.18);
  pointer-events: none;
  z-index: 2;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sgm"] .card-header h3 {
  color: #0b2d63 !important;
  font-weight: 800 !important;
  letter-spacing: -0.02em;
  font-size: 1.18rem !important;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sgm"] .card-header .muted {
  color: #4a5d7a !important;
  font-weight: 600 !important;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sgm"] .cta:not(.ghost) {
  background: linear-gradient(135deg, #1e4fa1, #0b2d63) !important;
  border: none !important;
  color: #fff !important;
  box-shadow: 0 10px 24px rgba(30, 79, 161, 0.35);
  font-weight: 700 !important;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sgm"] .cta.ghost {
  border: 2px solid #1e4fa1 !important;
  color: #0b2d63 !important;
  background: #fff !important;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sgm"] .public-light-session-card {
  border-radius: 12px !important;
  box-shadow: 0 8px 24px rgba(14, 26, 43, 0.1), 0 0 0 1px rgba(30, 79, 161, 0.22) !important;
}

body[data-theme="dark"].sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sgm"]::before {
  background: linear-gradient(180deg, #07152e 0%, #0e1a2b 100%);
}

body[data-theme="dark"].sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sgm"] .page > .card {
  background: #1a2744 !important;
  border-color: #3d5a80 !important;
}

body[data-theme="dark"].sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sgm"] .page > .card::after {
  opacity: calc(var(--sf-portal-wm-opacity, 0.07) * 1.55);
  filter: brightness(1.15);
}

body[data-theme="dark"].sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sgm"] .card-header {
  background: linear-gradient(180deg, #1e2f4a 0%, #1a2744 100%) !important;
  border-bottom-color: #6ea8ff !important;
}

body[data-theme="dark"].sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sgm"] .card-header::after {
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.2),
    0 2px 10px rgba(0, 0, 0, 0.35);
}

body[data-theme="dark"].sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sgm"] .card-header h3,
body[data-theme="dark"].sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sgm"] .card-header .muted {
  color: #e8eef6 !important;
}


/* ========== TSV Einsingen (Custom Style, config-freigeschaltet) ========== */
body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="tsv-einsingen"] {
  --sf-tsv-logo: url("tsv-einsingen/logo.png");
  --sf-tsv-red: #e4211e;
  --sf-tsv-red-dark: #b41816;
  --sf-tsv-green: #54c04e;
  --sf-tsv-green-dark: #3a9e34;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="tsv-einsingen"]::before {
  background:
    radial-gradient(ellipse 65% 45% at 100% 0%, rgba(228, 33, 30, 0.22), transparent 55%),
    radial-gradient(ellipse 55% 40% at 0% 100%, rgba(84, 192, 78, 0.28), transparent 50%),
    linear-gradient(165deg, #f4fbf3 0%, #eef7ec 45%, #fdeceb 100%);
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="tsv-einsingen"] .page > .card {
  border: 2px solid rgba(84, 192, 78, 0.45) !important;
  box-shadow: 0 20px 48px rgba(180, 24, 22, 0.12) !important;
  border-radius: 16px !important;
  overflow: hidden;
  background: #ffffff !important;
  position: relative;
  isolation: isolate;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="tsv-einsingen"] .page > .card::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 44%;
  width: min(58%, 14rem);
  height: min(48%, 14rem);
  transform: translate(-50%, -42%);
  background: var(--sf-tsv-logo) center / contain no-repeat;
  opacity: var(--sf-portal-wm-opacity, 0.08);
  pointer-events: none;
  z-index: 0;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="tsv-einsingen"] .page > .card > * {
  position: relative;
  z-index: 1;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="tsv-einsingen"] .card-header {
  background: linear-gradient(125deg, #e4211e 0%, #c41e1a 55%, #9e1815 100%) !important;
  border-bottom: 5px solid var(--sf-tsv-green) !important;
  padding: 1.15rem 4.6rem 1.05rem 1.1rem !important;
  position: relative;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="tsv-einsingen"] .card-header::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 6px;
  background: linear-gradient(180deg, #54c04e 0%, #3a9e34 100%);
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="tsv-einsingen"] .card-header::after {
  content: "";
  position: absolute;
  top: 0.55rem;
  right: 0.7rem;
  width: 3.5rem;
  height: 3.5rem;
  background: #fff var(--sf-tsv-logo) center / 86% no-repeat;
  border-radius: 12px;
  box-shadow:
    0 0 0 2px #54c04e,
    0 2px 10px rgba(0, 0, 0, 0.22);
  pointer-events: none;
  z-index: 2;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="tsv-einsingen"] .card-header h3 {
  color: #ffffff !important;
  font-weight: 800 !important;
  letter-spacing: -0.02em;
  font-size: 1.18rem !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="tsv-einsingen"] .card-header .muted {
  color: rgba(255, 255, 255, 0.9) !important;
  font-weight: 600 !important;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="tsv-einsingen"] .cta:not(.ghost) {
  background: linear-gradient(135deg, #54c04e, #3a9e34) !important;
  border: none !important;
  color: #fff !important;
  box-shadow: 0 10px 24px rgba(84, 192, 78, 0.35);
  font-weight: 700 !important;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="tsv-einsingen"] .cta.ghost {
  border: 2px solid #e4211e !important;
  color: #b41816 !important;
  background: #fff !important;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="tsv-einsingen"] .public-light-session-card {
  border-radius: 12px !important;
  box-shadow: 0 8px 22px rgba(180, 24, 22, 0.08), 0 0 0 1px rgba(84, 192, 78, 0.28) !important;
}

body[data-theme="dark"].sf-guest-shell[data-page^="public-attendance"][data-portal-theme="tsv-einsingen"]::before {
  background:
    radial-gradient(ellipse 60% 40% at 90% 0%, rgba(228, 33, 30, 0.28), transparent 55%),
    radial-gradient(ellipse 50% 40% at 0% 100%, rgba(84, 192, 78, 0.18), transparent 50%),
    linear-gradient(180deg, #140a0a 0%, #0f1410 100%);
}

body[data-theme="dark"].sf-guest-shell[data-page^="public-attendance"][data-portal-theme="tsv-einsingen"] .page > .card {
  background: #1c2220 !important;
  border-color: rgba(84, 192, 78, 0.35) !important;
}

body[data-theme="dark"].sf-guest-shell[data-page^="public-attendance"][data-portal-theme="tsv-einsingen"] .page > .card::after {
  opacity: calc(var(--sf-portal-wm-opacity, 0.08) * 1.5);
  filter: brightness(1.2);
}

body[data-theme="dark"].sf-guest-shell[data-page^="public-attendance"][data-portal-theme="tsv-einsingen"] .card-header {
  background: linear-gradient(125deg, #9e1815 0%, #6e1110 100%) !important;
  border-bottom-color: #54c04e !important;
}

body[data-theme="dark"].sf-guest-shell[data-page^="public-attendance"][data-portal-theme="tsv-einsingen"] .card-header::after {
  box-shadow:
    0 0 0 2px #54c04e,
    0 2px 10px rgba(0, 0, 0, 0.4);
}

body[data-theme="dark"].sf-guest-shell[data-page^="public-attendance"][data-portal-theme="tsv-einsingen"] .card-header h3,
body[data-theme="dark"].sf-guest-shell[data-page^="public-attendance"][data-portal-theme="tsv-einsingen"] .card-header .muted {
  color: #ffffff !important;
}

/* ========== Teamseite (Mannschaftslink): Hero statt .card-header ========== */
/* Lite-Hintergrund abschalten — Viewport-::before der Presets übernimmt. */
body.sf-team-schedule-lite.sf-guest-shell[data-page^="public-attendance"][data-portal-theme] {
  background: transparent !important;
}

body.sf-team-schedule-lite.sf-guest-shell[data-page^="public-attendance"][data-portal-theme] .sf-team-schedule {
  backdrop-filter: none;
}

/*
 * Teamseite: Wasserzeichen über die volle Listenhöhe wiederholen
 * (ein einziges Logo bei top:52% verschwindet bei vielen Terminen aus dem sichtbaren Bereich).
 * Alle ~42rem ein Logo (Maske: 14rem sichtbar, 28rem Pause) — nicht tile-dicht.
 */
body.sf-team-schedule-lite.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sgm"] .page > .card::after {
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  width: auto;
  height: auto;
  transform: none;
  background-image: var(--sf-sgm-logo);
  background-position: center 8rem;
  background-size: min(68%, 14rem);
  background-repeat: repeat-y;
  -webkit-mask-image: repeating-linear-gradient(
    to bottom,
    #000 0,
    #000 14rem,
    transparent 14rem,
    transparent 42rem
  );
  mask-image: repeating-linear-gradient(
    to bottom,
    #000 0,
    #000 14rem,
    transparent 14rem,
    transparent 42rem
  );
  -webkit-mask-size: 100% 42rem;
  mask-size: 100% 42rem;
  -webkit-mask-repeat: repeat-y;
  mask-repeat: repeat-y;
  -webkit-mask-position: 0 8rem;
  mask-position: 0 8rem;
  display: block !important;
  content: "" !important;
  opacity: var(--sf-portal-wm-opacity, 0.14);
}

body.sf-team-schedule-lite.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="tsv-einsingen"] .page > .card::after {
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  width: auto;
  height: auto;
  transform: none;
  background-image: var(--sf-tsv-logo);
  background-position: center 8rem;
  background-size: min(58%, 13rem);
  background-repeat: repeat-y;
  -webkit-mask-image: repeating-linear-gradient(
    to bottom,
    #000 0,
    #000 13rem,
    transparent 13rem,
    transparent 42rem
  );
  mask-image: repeating-linear-gradient(
    to bottom,
    #000 0,
    #000 13rem,
    transparent 13rem,
    transparent 42rem
  );
  -webkit-mask-size: 100% 42rem;
  mask-size: 100% 42rem;
  -webkit-mask-repeat: repeat-y;
  mask-repeat: repeat-y;
  -webkit-mask-position: 0 8rem;
  mask-position: 0 8rem;
  display: block !important;
  content: "" !important;
  opacity: var(--sf-portal-wm-opacity, 0.08);
}

body.sf-team-schedule-lite.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sgm"]:has(#publicLightLogoWrap:not([hidden])) .sf-team-schedule__hero::after,
body.sf-team-schedule-lite.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="tsv-einsingen"]:has(#publicLightLogoWrap:not([hidden])) .sf-team-schedule__hero::after {
  content: none !important;
  display: none !important;
}

body.sf-team-schedule-lite.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sgm"] .sf-team-schedule__list,
body.sf-team-schedule-lite.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="tsv-einsingen"] .sf-team-schedule__list {
  gap: 0.95rem;
  padding: 0.95rem 1.1rem 1.35rem !important;
  background: transparent;
}

/* Kein Listen-eigenes Wasserzeichen — nur card::after wie auf der Rückmeldeseite. */
body.sf-team-schedule-lite.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sgm"] .sf-team-schedule__list::before,
body.sf-team-schedule-lite.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="tsv-einsingen"] .sf-team-schedule__list::before {
  content: none !important;
  display: none !important;
}

body.sf-team-schedule-lite.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sgm"] .sf-team-schedule__hint,
body.sf-team-schedule-lite.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="tsv-einsingen"] .sf-team-schedule__hint,
body.sf-team-schedule-lite.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sgm"] .sf-team-schedule__actions,
body.sf-team-schedule-lite.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="tsv-einsingen"] .sf-team-schedule__actions {
  background: transparent;
}

body.sf-team-schedule-lite.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sgm"] .sf-team-schedule__card,
body.sf-team-schedule-lite.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="tsv-einsingen"] .sf-team-schedule__card {
  position: relative;
  z-index: 1;
  /* wie Rückmelde-Karten: Logo scheint durch */
  background: rgba(255, 255, 255, 0.52) !important;
  backdrop-filter: blur(0.5px);
  box-shadow:
    0 8px 22px rgba(14, 26, 43, 0.08),
    0 0 0 1px rgba(30, 79, 161, 0.18) !important;
}

body.sf-team-schedule-lite.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="tsv-einsingen"] .sf-team-schedule__card {
  box-shadow:
    0 8px 22px rgba(180, 24, 22, 0.08),
    0 0 0 1px rgba(84, 192, 78, 0.28) !important;
}

/* Hero bleibt deckend, damit das Wasserzeichen nur im Listenbereich wirkt. */
body.sf-team-schedule-lite.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sgm"] .sf-team-schedule__hero,
body.sf-team-schedule-lite.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="tsv-einsingen"] .sf-team-schedule__hero {
  z-index: 2;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="spielfunk"] .sf-team-schedule__hero,
body.sf-guest-shell[data-page^="public-attendance"]:not([data-portal-theme]) .sf-team-schedule__hero {
  background: linear-gradient(145deg, #f4f7fb 0%, #dce9f8 48%, #e8f4e0 100%) !important;
  color: #0f1a2e !important;
  position: relative;
  overflow: hidden;
  padding: 1.45rem 1.25rem 1.2rem !important;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="spielfunk"] .sf-team-schedule__hero::before,
body.sf-guest-shell[data-page^="public-attendance"]:not([data-portal-theme]) .sf-team-schedule__hero::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 7px;
  background: linear-gradient(180deg, #1a7fd4 0%, #6bc628 100%);
  z-index: 1;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="spielfunk"] .sf-team-schedule__hero::after,
body.sf-guest-shell[data-page^="public-attendance"]:not([data-portal-theme]) .sf-team-schedule__hero::after {
  content: "";
  position: absolute;
  right: -2.5rem;
  top: -2.5rem;
  width: 8rem;
  height: 8rem;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(26, 127, 212, 0.28) 0%, transparent 70%);
  pointer-events: none;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="spielfunk"] .sf-team-schedule__title,
body.sf-guest-shell[data-page^="public-attendance"]:not([data-portal-theme]) .sf-team-schedule__title {
  color: #0f1a2e !important;
  position: relative;
  z-index: 1;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="spielfunk"] .sf-team-schedule__club,
body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="spielfunk"] .sf-team-schedule__meta,
body.sf-guest-shell[data-page^="public-attendance"]:not([data-portal-theme]) .sf-team-schedule__club,
body.sf-guest-shell[data-page^="public-attendance"]:not([data-portal-theme]) .sf-team-schedule__meta {
  color: #0d5a9e !important;
  position: relative;
  z-index: 1;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="spielfunk"] .sf-team-schedule__card,
body.sf-guest-shell[data-page^="public-attendance"]:not([data-portal-theme]) .sf-team-schedule__card {
  border-radius: 14px !important;
  box-shadow: 0 8px 22px rgba(15, 26, 46, 0.08), 0 0 0 1px rgba(26, 127, 212, 0.12) !important;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sportlich"] .sf-team-schedule__hero {
  background: linear-gradient(115deg, #0f1a2e 0%, #0d5a9e 50%, #1a7fd4 100%) !important;
  border-bottom: 5px solid #6bc628 !important;
  color: #f8fafc !important;
  position: relative;
  padding: 1.45rem 1.25rem 1.2rem !important;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sportlich"] .sf-team-schedule__hero::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 7px;
  background: #6bc628;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sportlich"] .sf-team-schedule__title,
body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sportlich"] .sf-team-schedule__club,
body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sportlich"] .sf-team-schedule__meta {
  color: #f8fafc !important;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sportlich"] .sf-team-schedule__card {
  border-radius: 14px !important;
  box-shadow: 0 6px 18px rgba(15, 26, 46, 0.1), 0 0 0 1px rgba(13, 90, 158, 0.14) !important;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="dezent"] .sf-team-schedule__hero {
  background: linear-gradient(180deg, #2f4056 0%, #243447 100%) !important;
  border-bottom: 3px solid #5b8fb8 !important;
  color: #f4f7fb !important;
  position: relative;
  padding: 1.45rem 1.25rem 1.2rem !important;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="dezent"] .sf-team-schedule__hero::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 4px;
  background: #5b8fb8;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="dezent"] .sf-team-schedule__title {
  color: #f4f7fb !important;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="dezent"] .sf-team-schedule__club,
body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="dezent"] .sf-team-schedule__meta {
  color: #b7c5d6 !important;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="dezent"] .sf-team-schedule__card {
  border-radius: 12px !important;
  box-shadow: 0 6px 16px rgba(15, 23, 42, 0.06), 0 0 0 1px rgba(100, 116, 139, 0.16) !important;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sgm"] .sf-team-schedule__hero {
  background: linear-gradient(180deg, #e8f0fc 0%, #ffffff 100%) !important;
  border-bottom: 2px solid #1e4fa1 !important;
  color: #0b2d63 !important;
  position: relative;
  padding: 1.45rem 4.6rem 1.2rem 1.25rem !important;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sgm"] .sf-team-schedule__hero::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 6px;
  background: linear-gradient(180deg, #0b2d63 0%, #1e4fa1 100%);
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sgm"] .sf-team-schedule__hero::after {
  content: "";
  position: absolute;
  top: 0.65rem;
  right: 0.75rem;
  width: 3.35rem;
  height: 3.35rem;
  background: var(--sf-sgm-logo) center / contain no-repeat;
  border-radius: 10px;
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.95),
    0 2px 10px rgba(14, 26, 43, 0.18);
  pointer-events: none;
  z-index: 2;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sgm"] .sf-team-schedule__title {
  color: #0b2d63 !important;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sgm"] .sf-team-schedule__club,
body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sgm"] .sf-team-schedule__meta {
  color: #4a5d7a !important;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="sgm"] .sf-team-schedule__card {
  border-radius: 12px !important;
  box-shadow: 0 8px 24px rgba(14, 26, 43, 0.1), 0 0 0 1px rgba(30, 79, 161, 0.22) !important;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="tsv-einsingen"] .sf-team-schedule__hero {
  background: linear-gradient(125deg, #e4211e 0%, #c41e1a 55%, #9e1815 100%) !important;
  border-bottom: 5px solid var(--sf-tsv-green, #54c04e) !important;
  color: #ffffff !important;
  position: relative;
  padding: 1.45rem 4.6rem 1.2rem 1.25rem !important;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="tsv-einsingen"] .sf-team-schedule__hero::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 6px;
  background: linear-gradient(180deg, #54c04e 0%, #3a9e34 100%);
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="tsv-einsingen"] .sf-team-schedule__hero::after {
  content: "";
  position: absolute;
  top: 0.55rem;
  right: 0.7rem;
  width: 3.5rem;
  height: 3.5rem;
  background: #fff var(--sf-tsv-logo) center / 86% no-repeat;
  border-radius: 12px;
  box-shadow:
    0 0 0 2px #54c04e,
    0 2px 10px rgba(0, 0, 0, 0.22);
  pointer-events: none;
  z-index: 2;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="tsv-einsingen"] .sf-team-schedule__title {
  color: #ffffff !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="tsv-einsingen"] .sf-team-schedule__club,
body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="tsv-einsingen"] .sf-team-schedule__meta {
  color: rgba(255, 255, 255, 0.9) !important;
}

body.sf-guest-shell[data-page^="public-attendance"][data-portal-theme="tsv-einsingen"] .sf-team-schedule__card {
  border-radius: 12px !important;
  box-shadow: 0 8px 22px rgba(180, 24, 22, 0.08), 0 0 0 1px rgba(84, 192, 78, 0.28) !important;
}

