/* Verwaltung auf der Webseite – Backend-Seiten im Stil der Vereinsseite */
.vfl-v {
	--b: #0B3B8C; --bd: #072A66; --bm: #1F5BC4; --bh: #E8EFFA; --t: #14213D; --g: #5B6B85; --l: #D7E0EE; --pink: #2D7FF9;
	margin-top: 0 !important;
	padding: 22px 0 60px;
	color: var(--t);
	font-size: 15px;
}
.vfl-v *, .vfl-v *::before, .vfl-v *::after { box-sizing: border-box; }
.vfl-v a { color: var(--b); }

/* ---------- Navigation */
.vfl-v-nav { position: sticky; top: 8px; z-index: 20; display: flex; align-items: center; gap: 10px; margin: 0 0 26px; padding: 6px; background: #fff; border: 1px solid var(--l); border-radius: 18px; box-shadow: 0 10px 30px rgba(7, 42, 102, .10); }
.vfl-v-nav-spur { display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; flex: 1; -webkit-overflow-scrolling: touch; }
.vfl-v-nav-spur::-webkit-scrollbar { display: none; }
.vfl-v-nav-spur a { display: inline-flex; align-items: center; gap: 7px; padding: 10px 14px; border-radius: 12px; color: var(--bd) !important; text-decoration: none; font-weight: 800; font-size: 14px; white-space: nowrap; transition: background .2s, color .2s; }
.vfl-v-nav-spur a .dashicons { font-size: 18px; width: 18px; height: 18px; color: var(--bm); transition: color .2s; }
.vfl-v-nav-spur a:hover { background: var(--bh); }
.vfl-v-nav-spur a.ist-aktiv { background: var(--b); color: #fff !important; box-shadow: 0 6px 16px rgba(11, 59, 140, .3); }
.vfl-v-nav-spur a.ist-aktiv .dashicons { color: #fff; }
.vfl-v-wer { display: flex; flex-direction: column; align-items: flex-end; padding: 0 10px 0 6px; font-size: 12.5px; line-height: 1.3; white-space: nowrap; color: var(--g); }
.vfl-v-wer span { font-weight: 800; color: var(--t); }
.vfl-v-wer a { color: var(--pink) !important; font-weight: 700; text-decoration: none; }

/* ---------- Kopf je Bereich */
.vfl-v .vfl-wrap { margin: 0; }
.vfl-v .vfl-kopfzeile { margin: 0 0 20px; align-items: flex-end; }
.vfl-v .vfl-kopfzeile h2 { margin: 0; font-size: clamp(1.6rem, 3vw, 2.2rem); font-weight: 900; font-style: italic; letter-spacing: -.01em; color: var(--bd); line-height: 1.1; }
.vfl-v .vfl-kopfzeile p { margin: 4px 0 0; color: var(--g); font-size: 14px; }
.vfl-v h2 { font-size: 1.25rem; font-weight: 900; color: var(--bd); margin: 30px 0 12px; }
.vfl-v h3 { font-size: 1.02rem; font-weight: 900; color: var(--bd); margin: 0 0 10px; }
.vfl-v p { margin: 0 0 12px; }
.vfl-v .description { color: var(--g); font-size: 13.5px; }
.vfl-v code { background: var(--bh); color: var(--bd); padding: 1px 6px; border-radius: 6px; font-size: 12.5px; white-space: nowrap; }
.vfl-v .widefat td a:not(.button) { font-weight: 700; text-decoration: none; }
.vfl-v .widefat td a:not(.button):hover { text-decoration: underline; }

/* ---------- Knöpfe (WordPress-Klassen im Vereinsstil) */
.vfl-v .button { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 40px; padding: 8px 16px; border: 1.5px solid var(--l); border-radius: 999px; background: #fff; color: var(--bd) !important; font: inherit; font-size: 14px; font-weight: 800; line-height: 1.2; text-decoration: none !important; cursor: pointer; transition: transform .15s, box-shadow .2s, background .2s, border-color .2s; }
.vfl-v .button:hover { border-color: var(--b); background: var(--bh); }
.vfl-v .button:active { transform: scale(.97); }
.vfl-v .button-primary { background: var(--b); border-color: var(--b); color: #fff !important; box-shadow: 0 6px 16px rgba(11, 59, 140, .25); }
.vfl-v .button-primary:hover { background: var(--bd); border-color: var(--bd); }
.vfl-v .button-hero { min-height: 50px; padding: 12px 24px; font-size: 15.5px; }
.vfl-v .button-small { min-height: 32px; padding: 5px 12px; font-size: 12.5px; }
.vfl-v .vfl-wa { background: #25D366 !important; border-color: #25D366 !important; color: #fff !important; }
.vfl-v .vfl-link-rot { color: #B32D2E !important; }
.vfl-v .button.vfl-link-rot:hover { background: #FDECEA; border-color: #E5A49D; }
.vfl-v .vfl-rechts { margin-left: auto !important; }

/* ---------- Formularfelder */
.vfl-v input[type=text], .vfl-v input[type=search], .vfl-v input[type=email], .vfl-v input[type=tel], .vfl-v input[type=number], .vfl-v input[type=date], .vfl-v input[type=url], .vfl-v input[type=password], .vfl-v input:not([type]), .vfl-v select, .vfl-v textarea {
	min-height: 44px; padding: 9px 12px; border: 1.5px solid var(--l); border-radius: 12px; background: #fff; color: var(--t); font: inherit; font-size: 15px; max-width: 100%;
}
.vfl-v input:focus, .vfl-v select:focus, .vfl-v textarea:focus { outline: none; border-color: var(--bm); box-shadow: 0 0 0 3px rgba(31, 91, 196, .18); }
.vfl-v input[type=checkbox] { width: 18px; height: 18px; accent-color: var(--b); vertical-align: -3px; }
.vfl-v .vfl-gross { min-height: 46px; font-size: 15px !important; }
.vfl-v .vfl-gr-wahl .vfl-menge { min-height: 26px !important; height: 26px; padding: 0 4px !important; border-radius: 6px; border-width: 1px; font-size: 13px; }

/* ---------- Kacheln, Kästen */
.vfl-v .vfl-kacheln { grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 14px; }
.vfl-v .vfl-kachel { position: relative; overflow: hidden; padding: 18px 20px; border-radius: 18px; border: 1px solid var(--l); box-shadow: 0 6px 20px rgba(7, 42, 102, .06); transition: transform .2s, box-shadow .2s, border-color .2s; }
.vfl-v .vfl-kachel::after { content: ""; position: absolute; right: -30px; top: -30px; width: 90px; height: 90px; border-radius: 50%; background: var(--bh); z-index: 0; }
.vfl-v .vfl-kachel > * { position: relative; z-index: 1; }
.vfl-v a.vfl-kachel:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(7, 42, 102, .12); border-color: var(--b); }
.vfl-v .vfl-kachel strong { font-size: 2.3rem; font-weight: 900; font-style: italic; color: var(--b); }
.vfl-v .vfl-kachel--warn { border-color: #F4B400; }
.vfl-v .vfl-kachel--warn::after { background: #FFF4D6; }
.vfl-v .vfl-kachel--formular { flex-direction: row; }
.vfl-v .vfl-kachel--formular::after { display: none; }
.vfl-v .vfl-box, .vfl-v .vfl-schritt, .vfl-v .vfl-kat, .vfl-v .vfl-lager, .vfl-v .vfl-werhatwas, .vfl-v .vfl-modell { border-radius: 18px; border-color: var(--l); }
.vfl-v .vfl-box { padding: 16px 20px; box-shadow: 0 6px 20px rgba(7, 42, 102, .05); }
.vfl-v .vfl-box summary { font-size: 15px; }
.vfl-v .vfl-schritt > span:first-child { background: var(--pink); }
.vfl-v .vfl-ergebnis { border-radius: 18px; }
.vfl-v .vfl-absenden { border-radius: 18px; z-index: 5; }

/* ---------- Statusmarken (Theme nutzt .vfl-marke fürs Logo) */
.vfl-v .vfl-marke { display: inline-block !important; padding: 2px 9px; border-radius: 999px; font-size: 12px; font-weight: 800; background: #EEF1F5; color: var(--g) !important; white-space: nowrap; }
.vfl-v .vfl-marke--offen { background: #FFF4D6; color: #8A6200 !important; }
.vfl-v .vfl-marke--ok, .vfl-v .vfl-marke--unterschrieben { background: #E2F4EA; color: #136C43 !important; }
.vfl-v .vfl-marke--storniert { background: #F6E3E1; color: #9B2C20 !important; }
.vfl-v .vfl-chip { display: inline-block !important; margin: 0 !important; background: var(--bh); color: var(--bd); font-size: 12px !important; font-weight: 700; letter-spacing: 0; padding: 3px 9px; border-radius: 8px; }
.vfl-v .vfl-chip--offen { background: #FFF4D6; color: #8A6200; }

/* ---------- Tabellen */
.vfl-v .widefat { width: 100%; border-collapse: separate; border-spacing: 0; background: #fff; border: 1px solid var(--l); border-radius: 16px; overflow: hidden; font-size: 14px; margin: 0 0 14px; }
.vfl-v .widefat th { text-align: left; padding: 11px 14px; background: var(--bh); color: var(--bd); font-weight: 800; font-size: 12.5px; text-transform: uppercase; letter-spacing: .04em; border: 0; }
.vfl-v .widefat td { padding: 11px 14px; border: 0; border-top: 1px solid #EEF2F8; vertical-align: middle; }
.vfl-v .widefat.striped tbody tr:nth-child(odd) td { background: #FAFBFD; }
.vfl-v .widefat tbody tr:hover td { background: #F2F6FC; }
.vfl-v .widefat td.num, .vfl-v .widefat th.num { text-align: right; }
.vfl-v .vfl-tabelle-rolle { overflow-x: auto; }
.vfl-v .form-table { width: 100%; border-collapse: collapse; background: #fff; border: 1px solid var(--l); border-radius: 18px; overflow: hidden; margin-bottom: 16px; }
.vfl-v .form-table th { width: 220px; text-align: left; vertical-align: top; padding: 16px 18px; font-weight: 800; color: var(--bd); }
.vfl-v .form-table td { padding: 12px 18px; border-top: 0; }
.vfl-v .form-table tr + tr th, .vfl-v .form-table tr + tr td { border-top: 1px solid #EEF2F8; }
.vfl-v .regular-text, .vfl-v .large-text { width: 100%; max-width: 560px; }
.vfl-v .large-text { max-width: 100%; }

/* ---------- Hinweise */
.vfl-v .notice { position: relative; margin: 0 0 18px; padding: 12px 16px 12px 46px; border: 0; border-radius: 14px; background: #E6F5EC; color: #0E5A37; font-weight: 700; }
.vfl-v .notice::before { content: "✓"; position: absolute; left: 14px; top: 50%; transform: translateY(-50%); width: 22px; height: 22px; border-radius: 50%; background: #1A8F5A; color: #fff; display: flex; align-items: center; justify-content: center; font-size: 13px; }
.vfl-v .notice p { margin: 0; }
.vfl-v .notice-warning { background: #FFF4D6; color: #6B4C00; }
.vfl-v .notice-warning::before { content: "!"; background: #F4B400; }
.vfl-v .notice-info { background: var(--bh); color: var(--bd); }
.vfl-v .notice-info::before { content: "i"; background: var(--b); font-style: italic; }

/* ---------- Filter (Belege) */
.vfl-v .subsubsub { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 0 0 14px; padding: 0; font-size: 0; }
.vfl-v .subsubsub li { font-size: 14px; }
.vfl-v .subsubsub a { display: inline-block; padding: 7px 14px; border-radius: 999px; background: #fff; border: 1.5px solid var(--l); text-decoration: none; font-weight: 800; color: var(--bd); }
.vfl-v .subsubsub a.current { background: var(--bd); border-color: var(--bd); color: #fff; }
.vfl-v br.clear { display: none; }

/* ---------- Kader-Liste */
.vfl-v-filter { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; margin: 0 0 16px; }
.vfl-v-filter .vfl-gross { flex: 1; min-width: 220px; }
.vfl-v-reiter { display: inline-flex; padding: 4px; background: #fff; border: 1px solid var(--l); border-radius: 999px; }
.vfl-v-reiter a { padding: 8px 16px; border-radius: 999px; font-weight: 800; font-size: 14px; text-decoration: none; color: var(--bd) !important; }
.vfl-v-reiter a.ist-aktiv { background: var(--bd); color: #fff !important; }
.vfl-v-kader { display: grid; gap: 8px; }
.vfl-v-person { display: grid; grid-template-columns: minmax(220px, 1.3fr) 1.4fr auto; gap: 14px; align-items: center; padding: 10px 14px; background: #fff; border: 1px solid var(--l); border-radius: 16px; transition: border-color .2s, box-shadow .2s, transform .2s; }
.vfl-v-person:hover { border-color: var(--b); box-shadow: 0 10px 24px rgba(7, 42, 102, .08); }
.vfl-v-person.ist-inaktiv { opacity: .6; }
.vfl-v-person-link { display: flex; align-items: center; gap: 12px; text-decoration: none; color: inherit !important; min-width: 0; }
.vfl-v-person-link .vfl-avatar { width: 48px; height: 48px; font-size: 17px !important; }
.vfl-v-person-name strong { display: block; font-size: 15.5px; color: var(--t); }
.vfl-v-person-name small { color: var(--g); font-size: 12.5px; }
.vfl-v-person-info { display: flex; gap: 16px; flex-wrap: wrap; align-items: center; color: var(--g); font-size: 13.5px; }
.vfl-v-person-knoepfe { display: flex; gap: 6px; }

/* ---------- Person / Artikel bearbeiten */
.vfl-v-spalten { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 18px; align-items: start; margin-bottom: 16px; }
.vfl-v-seite { display: grid; gap: 14px; position: sticky; top: 90px; }
.vfl-v-seite .vfl-box { margin: 0; }
.vfl-v .vfl-maske fieldset { background: #fff; border: 1px solid var(--l); border-radius: 18px; padding: 14px 18px 6px; margin: 0 0 14px; }
.vfl-v .vfl-maske legend { padding: 4px 12px; border-radius: 999px; background: var(--bd); color: #fff; font-size: 13px; font-weight: 800; letter-spacing: .02em; }
.vfl-v .vfl-feld label { font-size: 13px; font-weight: 800; color: var(--g); }
.vfl-v .vfl-feld input:not([type=checkbox]), .vfl-v .vfl-feld select, .vfl-v .vfl-feld textarea { width: 100%; }
.vfl-v .vfl-feld--checkbox label { color: var(--t); }
.vfl-v-foto { display: grid; justify-items: center; gap: 10px; text-align: center; }
.vfl-v-foto h3 { justify-self: start; }
.vfl-v-foto .vfl-avatar { width: 160px; height: 160px; border-radius: 24px; object-fit: cover; box-shadow: 0 10px 24px rgba(7, 42, 102, .18); }
.vfl-v .vfl-hochladen { background: var(--bh); border-radius: 14px; }
.vfl-v-ausruestung h4 { margin: 14px 0 8px; color: var(--bd); }
.vfl-v .vfl-bild--gross-vorschau { width: 100%; height: auto; aspect-ratio: 1; margin-bottom: 12px; border-radius: 14px; }

/* ---------- Anmelden */
.vfl-v--anmelden { max-width: 480px; margin-left: auto !important; margin-right: auto !important; }
.vfl-v--anmelden .vfl-karte { padding: 26px; border-radius: 20px; box-shadow: 0 14px 40px rgba(7, 42, 102, .12); }
.vfl-v--anmelden form p { display: flex; flex-direction: column; gap: 6px; margin: 0 0 12px; }
.vfl-v--anmelden form p.login-remember { flex-direction: row; }
.vfl-v--anmelden input[type=text], .vfl-v--anmelden input[type=password] { width: 100%; }
.vfl-v--anmelden input[type=submit] { width: 100%; min-height: 50px; border: 0; border-radius: 999px; background: var(--b); color: #fff; font: inherit; font-weight: 800; font-size: 16px; cursor: pointer; }

/* ---------- Bewegung */
@media (prefers-reduced-motion: no-preference) {
	.vfl-v .vfl-wrap > * { animation: vfl-v-rein .45s cubic-bezier(.2, .7, .2, 1) both; }
	.vfl-v .vfl-wrap > *:nth-child(2) { animation-delay: .05s; }
	.vfl-v .vfl-wrap > *:nth-child(3) { animation-delay: .1s; }
	.vfl-v .vfl-wrap > *:nth-child(n+4) { animation-delay: .15s; }
	.vfl-v .vfl-kachel { animation: vfl-v-rein .5s cubic-bezier(.2, .7, .2, 1) both; }
	.vfl-v .vfl-kachel:nth-child(2) { animation-delay: .06s; }
	.vfl-v .vfl-kachel:nth-child(3) { animation-delay: .12s; }
	.vfl-v .vfl-kachel:nth-child(4) { animation-delay: .18s; }
	.vfl-v .vfl-kachel:nth-child(5) { animation-delay: .24s; }
}
@keyframes vfl-v-rein { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }

/* ---------- Handy */
@media (max-width: 900px) {
	.vfl-v-spalten { grid-template-columns: 1fr; }
	.vfl-v-seite { position: static; }
	.vfl-v-person { grid-template-columns: 1fr auto; }
	.vfl-v-person-info { grid-column: 1 / -1; order: 3; }
}
@media (max-width: 782px) {
	.vfl-v { font-size: 15px; padding-top: 14px; }
	.vfl-v-nav { top: 0; border-radius: 0 0 16px 16px; margin-left: -16px; margin-right: -16px; border-left: 0; border-right: 0; }
	.vfl-v-wer { display: none; }
	.vfl-v-nav-spur a { padding: 9px 12px; }
	.vfl-v .vfl-kopfzeile { flex-direction: column; align-items: flex-start; }
	.vfl-v .vfl-kopfzeile .vfl-rechts { margin-left: 0 !important; }
	.vfl-v .vfl-kacheln { grid-template-columns: 1fr 1fr; }
	.vfl-v .widefat { display: block; overflow-x: auto; white-space: nowrap; }
	.vfl-v .form-table, .vfl-v .form-table tbody, .vfl-v .form-table tr, .vfl-v .form-table th, .vfl-v .form-table td { display: block; width: 100%; }
	.vfl-v .form-table th { padding-bottom: 0; }
	.vfl-v-person { grid-template-columns: 1fr; }
	.vfl-v-person-knoepfe { order: 4; }
	.vfl-v-person-knoepfe .button { flex: 1; }
	.vfl-v .vfl-absenden .button-hero { width: 100%; }
}
.vfl-v .vfl-kat { padding: 14px 16px 16px; }
.vfl-v .vfl-kat-titel { margin: 0 0 12px; font-size: 13px; font-weight: 900; color: var(--pink); }

/* =========================================================== Vereinsplattform (1.0) */
/* Seitenleiste auf großen Bildschirmen */
@media (min-width: 1100px) {
	.vfl-v:not(.vfl-v--anmelden) { display: grid; grid-template-columns: 236px minmax(0, 1fr); gap: 28px; align-items: start; }
	.vfl-v-nav { position: sticky; top: 16px; flex-direction: column; align-items: stretch; gap: 0; padding: 10px; margin: 0; border-radius: 22px; max-height: calc(100vh - 32px); overflow: auto; }
	.vfl-v-nav-spur { flex-direction: column; overflow: visible; gap: 2px; }
	.vfl-v-nav-spur a { padding: 9px 12px; }
	.vfl-v-wer { order: -1; flex-direction: row; align-items: center; gap: 10px; padding: 6px 6px 12px; margin-bottom: 6px; border-bottom: 1px solid #EEF2F8; white-space: normal; }
	.vfl-v-wer > span { flex: 1; min-width: 0; display: grid; }
	.vfl-v-wer small { font-size: 11.5px; color: var(--g); overflow: hidden; text-overflow: ellipsis; }
	.vfl-v-wer .vfl-avatar { width: 36px; height: 36px; font-size: 13px !important; }
	.vfl-v-wer a { font-size: 12px; }
	.vfl-v-nav-gruppe { display: block; padding: 12px 12px 4px; font-size: 11px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; color: var(--pink); }
	.vfl-v-nav-gruppe:first-child { padding-top: 2px; }
}
@media (max-width: 1099px) {
	.vfl-v-nav-gruppe { display: none; }
	.vfl-v-wer .vfl-avatar, .vfl-v-wer small { display: none; }
	.vfl-v-wer > span { display: block; }
}
.vfl-v-inhalt { min-width: 0; }

/* Bereichswahl */
.vfl-kontext { display: inline-flex; align-items: center; gap: 10px; margin: -6px 0 18px; padding: 6px 6px 6px 14px; background: #fff; border: 1.5px solid var(--l); border-radius: 999px; box-shadow: 0 4px 12px rgba(7, 42, 102, .05); max-width: 100%; }
.vfl-kontext label { font-weight: 800; font-size: 13px; color: var(--g); display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; }
.vfl-kontext label .dashicons { font-size: 16px; width: 16px; height: 16px; color: var(--pink); }
.vfl-kontext select { border: 0 !important; background: var(--bh) !important; border-radius: 999px !important; font-weight: 800; color: var(--bd) !important; min-height: 36px !important; max-width: 70vw; }

/* Funktionen */
.vfl-fn-liste { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px; }
.vfl-fn { display: inline-block; padding: 2px 8px; border-radius: 999px; font-size: 11.5px; font-weight: 800; background: var(--bh); color: var(--bd); white-space: nowrap; }
.vfl-fn--leitung { background: var(--bd); color: #fff; }
.vfl-fn--helfer { background: color-mix(in srgb, var(--pink) 12%, #fff); color: color-mix(in srgb, var(--pink) 70%, #000); }
.vfl-fn--trainer { background: #E2F4EA; color: #0E5A37; }
.vfl-fn-zeilen { list-style: none; margin: 0 0 12px; padding: 0; display: grid; gap: 6px; }
.vfl-fn-zeilen li { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 8px 10px; background: #F6F8FC; border-radius: 12px; }
.vfl-fn-zeilen li > span:nth-child(2) { font-weight: 800; }
.vfl-fn-zeilen small { color: var(--g); }
.vfl-fn-weg { margin-left: auto; font-size: 12.5px; color: #B32D2E; font-weight: 700; display: inline-flex; align-items: center; gap: 4px; }
.vfl-anzahl { color: var(--g); font-weight: 700; font-size: 13px; }
.ist-nur-lesen input, .ist-nur-lesen select, .ist-nur-lesen textarea { pointer-events: none; background: #F6F8FC !important; }
.vfl-eltern { margin: 0 0 8px; padding: 8px 10px; background: #F6F8FC; border-radius: 12px; }

/* Vereinsbaum */
.vfl-baum { --linie: #C9D5E8; }
.vfl-baum-knoten { position: relative; }
.vfl-baum-kinder { position: relative; margin-left: 22px; padding-left: 18px; border-left: 2px solid var(--linie); }
.vfl-baum-kinder > .vfl-baum-knoten::before { content: ""; position: absolute; left: -18px; top: 30px; width: 16px; height: 2px; background: var(--linie); }
.vfl-baum details > summary { list-style: none; cursor: pointer; }
.vfl-baum details > summary::-webkit-details-marker { display: none; }
.vfl-baum-karte { position: relative; display: grid; grid-template-columns: 1fr auto; grid-template-areas: "typ auf" "name auf" "leute auf" "zahlen auf"; gap: 1px 10px; margin: 6px 0; padding: 10px 14px; background: #fff; border: 1px solid var(--l); border-radius: 16px; box-shadow: 0 4px 12px rgba(7, 42, 102, .05); max-width: 560px; transition: border-color .2s, box-shadow .2s; }
.vfl-baum details > summary .vfl-baum-karte::after { content: "▾"; position: absolute; right: 44px; top: 12px; color: var(--g); transition: transform .2s; }
.vfl-baum details:not([open]) > summary .vfl-baum-karte::after { transform: rotate(-90deg); }
.vfl-baum-karte:hover { border-color: var(--b); box-shadow: 0 8px 20px rgba(7, 42, 102, .1); }
.vfl-baum-typ { grid-area: typ; font-size: 10.5px; font-weight: 900; text-transform: uppercase; letter-spacing: .07em; color: var(--pink); }
.vfl-baum-karte b { grid-area: name; font-size: 15px; color: var(--bd); }
.vfl-baum-karte small { grid-area: leute; color: var(--g); font-size: 12.5px; }
.vfl-baum-zahlen { grid-area: zahlen; display: flex; gap: 8px; flex-wrap: wrap; margin-top: 3px; }
.vfl-baum-zahlen i { font-style: normal; font-size: 11.5px; font-weight: 800; padding: 1px 8px; border-radius: 999px; background: var(--bh); color: var(--bd); }
.vfl-baum-auf { grid-area: auf; align-self: center; width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; background: var(--b); color: #fff !important; text-decoration: none !important; font-weight: 900; }
.vfl-baum--verein > details > summary .vfl-baum-karte { background: linear-gradient(135deg, var(--b), var(--bd)); border: 0; }
.vfl-baum--verein > details > summary .vfl-baum-karte b, .vfl-baum--verein > details > summary .vfl-baum-karte small { color: #fff; }
.vfl-baum--verein > details > summary .vfl-baum-typ { color: #9CC9FF; }
.vfl-baum--verein > details > summary .vfl-baum-zahlen i { background: rgba(255, 255, 255, .15); color: #fff; }
.vfl-baum--verein > details > summary .vfl-baum-auf { background: #fff; color: var(--bd) !important; }
.vfl-baum--abteilung > details > summary .vfl-baum-karte { border-color: var(--b); border-width: 2px; }
.vfl-baum-knoten.ist-inaktiv .vfl-baum-karte { opacity: .55; }
.vfl-ho-liste { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.vfl-ho-liste li { display: flex; align-items: center; gap: 10px; padding: 6px 8px; border-radius: 12px; background: #F6F8FC; }
.vfl-ho-liste li a { font-weight: 800; text-decoration: none; }
.vfl-ho-liste li small { margin-left: auto; color: var(--g); font-size: 12px; text-align: right; }
.vfl-ho-liste li .vfl-avatar { width: 28px; height: 28px; font-size: 11px !important; }
.vfl-ho-logo { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 8px; background: #fff; overflow: hidden; }
.vfl-ho-logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.vfl-hinweise-ho { margin-bottom: 10px; }

/* Struktur-Editor */
.vfl-struktur { display: grid; gap: 4px; margin-bottom: 18px; }
.vfl-struktur-zeile { display: grid; grid-template-columns: 110px minmax(160px, 1fr) auto auto auto; gap: 10px; align-items: center; padding: 8px 12px; margin-left: calc(var(--tiefe) * 26px); background: #fff; border: 1px solid var(--l); border-radius: 12px; }
.vfl-struktur-zeile small { color: var(--g); }
.vfl-struktur-leute { display: flex; }
.vfl-struktur-leute span { margin-left: -6px; }
.vfl-struktur-leute .vfl-avatar { width: 24px; height: 24px; font-size: 9px !important; box-shadow: 0 0 0 2px #fff; }
.vfl-struktur-knoepfe { display: flex; gap: 4px; }
.vfl-rechte-tabelle td, .vfl-rechte-tabelle th { text-align: center; font-size: 12px; }
.vfl-rechte-tabelle td:first-child, .vfl-rechte-tabelle th:first-child { text-align: left; }
@media (max-width: 782px) {
	.vfl-struktur-zeile { grid-template-columns: 1fr auto; margin-left: calc(var(--tiefe) * 12px); }
	.vfl-struktur-zeile .vfl-baum-typ, .vfl-struktur-leute { display: none; }
	.vfl-struktur-knoepfe { grid-column: 1 / -1; }
}

/* Mitglieder */
.vfl-mitglieder-filter select { min-width: 160px; }
.vfl-v .vfl-mitglieder td { vertical-align: middle; }
.vfl-v .vfl-mitglieder small { color: var(--g); }
.vfl-v .notice.notice-warning > span { display: block; }

/* Sponsoren */
.vfl-v h2 small { color: var(--g); font-weight: 700; font-size: 14px; }
.vfl-sponsoren-raster { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; margin-bottom: 8px; }
.vfl-sponsor-karte { position: relative; display: grid; gap: 4px; padding: 14px; background: #fff; border: 1px solid var(--l); border-radius: 18px; text-decoration: none !important; color: var(--t) !important; transition: transform .2s, box-shadow .2s; }
.vfl-sponsor-karte:hover { transform: translateY(-2px); box-shadow: 0 12px 26px rgba(7, 42, 102, .1); }
.vfl-sponsor-karte::after { content: ""; position: absolute; top: 12px; right: 12px; width: 10px; height: 10px; border-radius: 50%; background: #1A8F5A; box-shadow: 0 0 0 3px #E2F4EA; }
.vfl-sponsor-karte.ampel-gelb::after { background: #F4B400; box-shadow: 0 0 0 3px #FFF4D6; }
.vfl-sponsor-karte.ampel-rot::after { background: #C0392B; box-shadow: 0 0 0 3px #FDECEA; }
.vfl-sponsor-logo { height: 70px; display: grid; place-items: center; background: #F6F8FC; border-radius: 12px; overflow: hidden; margin-bottom: 4px; }
.vfl-sponsor-logo img { max-width: 85%; max-height: 60px; object-fit: contain; }
.vfl-sponsor-initial { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 50%; background: var(--bd); color: #fff; font-weight: 900; font-size: 20px; }
.vfl-sponsor-initial--gross { width: 120px; height: 120px; font-size: 48px; }
.vfl-sponsor-logo-gross { max-width: 100%; height: auto; }
.vfl-sponsor-karte small { color: var(--g); font-size: 12.5px; }
.vfl-sponsor-fuss { display: flex; justify-content: space-between; gap: 6px; font-size: 12px; font-weight: 800; color: var(--bd); margin-top: 4px; }

/* Lager */
.vfl-lagerort { display: inline-block; margin-top: 3px; padding: 1px 8px; border-radius: 999px; font-size: 11px; font-weight: 800; background: #EEF2F8; color: var(--g); }
.vfl-lagerort.ist-team { background: color-mix(in srgb, var(--pink) 12%, #fff); color: color-mix(in srgb, var(--pink) 70%, #000); }
.vfl-umbuchen { grid-column: 1 / -1; }
.vfl-umbuchen summary { cursor: pointer; font-size: 12.5px; font-weight: 800; color: var(--b); }
.vfl-umbuchen form { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; margin-top: 6px; }
.vfl-umbuchen input[type=number] { width: 70px; }
.vfl-struktur-zeile .vfl-baum-typ { grid-area: auto; }
.vfl-struktur-zeile b { font-size: 14.5px; color: var(--bd); }
.vfl-v-wer .vfl-avatar { flex: none; }

/* ---------------------------------------------------------------- Fanshop in der Verwaltung */
.vfl-shop-bestellungen { display: grid; gap: 10px; margin: 0 0 28px; }
.vfl-shop-bestellung { padding: 14px 16px; background: #fff; border: 1px solid #D7E0EE; border-left: 5px solid #E8A33D; border-radius: 16px; }
.vfl-shop-bestellung.st-processing { border-left-color: #1F5BC4; }
.vfl-shop-bestellung.st-completed { border-left-color: #2E9E5B; opacity: .85; }
.vfl-shop-bestellung.st-cancelled, .vfl-shop-bestellung.st-refunded, .vfl-shop-bestellung.st-failed { border-left-color: #B9C3D3; opacity: .7; }
.vfl-shop-b-kopf { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.vfl-shop-st { font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: #5B6B85; }
.vfl-shop-b-text { margin: 6px 0 8px; color: #14213D; }
.vfl-shop-b-fuss { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; font-size: 13.5px; color: #5B6B85; }
.vfl-shop-b-knoepfe { display: flex; gap: 6px; flex-wrap: wrap; }
.vfl-shop-b-knoepfe form { margin: 0; }
.vfl-shop-artikel { display: grid; grid-template-columns: repeat(auto-fill, minmax(330px, 1fr)); gap: 12px; margin-bottom: 14px; }
.vfl-shop-art { display: flex; gap: 12px; padding: 12px; background: #fff; border: 1px solid #D7E0EE; border-radius: 16px; }
.vfl-shop-art-bild img { width: 72px; height: 72px; border-radius: 12px; object-fit: cover; display: block; }
.vfl-shop-art-text { flex: 1; min-width: 0; display: grid; gap: 4px; align-content: start; }
.vfl-shop-art-text small { color: #5B6B85; }
.vfl-shop-groessen { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }
.vfl-shop-groessen label { display: grid; gap: 2px; font-size: 11px; font-weight: 800; color: #5B6B85; text-align: center; }
.vfl-shop-groessen input { width: 54px !important; min-height: 34px !important; padding: 4px !important; text-align: center; }
.vfl-shop-groessen label.knapp { color: #C0392B; }
.vfl-shop-groessen label.knapp input { border-color: #E8A0A0 !important; background: #FFF4F4; }

/* Pink nur bei den Frauen: Seiten, App und Verwaltung der Frauenmannschaft */
.vfl-frauen, .vfl-frauen .vfl-app, .vfl-frauen .vfl-v { --pink: #E8317F; --vpink: #E8317F; --vakzent: #E8317F; --akzent: #E8317F; }
.vfl-v .vfl-kopfzeile h2, .vfl-v h2 { font-family: "Oswald", "Arial Narrow", sans-serif; font-style: normal; font-weight: 600; letter-spacing: .01em; text-transform: uppercase; }
.vfl-v .vfl-kachel strong { font-family: "Oswald", "Arial Narrow", sans-serif; font-style: normal; font-weight: 700; }

/* ---------------------------------------------------------------- Import / Excel */
.vfl-import-karten { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; margin-top: 14px; }
.vfl-import-karte h3 { margin-top: 0; }
.vfl-import-knoepfe { display: flex; flex-wrap: wrap; gap: 8px; }
.vfl-import-datei { position: relative; overflow: hidden; }
.vfl-import-datei input[type=file] { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.vfl-import-tabelle { overflow-x: auto; margin: 14px 0; border-radius: 14px; border: 1px solid #D7E0EE; }
.vfl-import-tabelle table { border: 0; min-width: 720px; }
.vfl-import-tabelle tr.ist-fehler td { background: #FFF4F4; }
.vfl-import-st { display: inline-block; padding: 2px 10px; border-radius: 999px; font-size: 12px; font-weight: 800; white-space: nowrap; }
.vfl-import-st.st-neu { background: #E3F5EC; color: #1A8F5A; }
.vfl-import-st.st-update { background: #E8EFFA; color: #1F5BC4; }
.vfl-import-st.st-fehler { background: #FDECEA; color: #C0392B; }
.vfl-import-los .vfl-schalter { display: flex; gap: 8px; align-items: center; margin: 8px 0; }
.vfl-shop-badge-feld { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; font-size: 12.5px; font-weight: 700; color: #5B6B85; } .vfl-shop-badge-feld select { padding: 2px 6px !important; min-height: 28px !important; font-size: 12.5px; }

/* Start-Popup bearbeiten */
.vfl-popup-folie legend { font-weight: 900; color: #072A66; }
.vfl-popup-folie-innen { display: grid; grid-template-columns: 300px 1fr; gap: 20px; }
.vfl-popup-bilder { display: grid; gap: 8px; align-content: start; }
.vfl-popup-vorschau { display: flex; gap: 6px; min-height: 90px; padding: 8px; border-radius: 12px; background: linear-gradient(160deg, #0A2A6E, #2350B5); }
.vfl-popup-vorschau img { width: 33%; aspect-ratio: 1; object-fit: cover; border-radius: 8px; border: 2px solid #fff; }
.vfl-popup-vorschau span { color: #fff; margin: auto; font-size: 13px; }
.vfl-popup-datei { position: relative; overflow: hidden; }
.vfl-popup-datei input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
@media (max-width: 800px) { .vfl-popup-folie-innen { grid-template-columns: 1fr; } }

/* ---------------------------------------------------------------- 1.4 Neuigkeiten, Newsletter, fussball.de */
.vfl-v .vfl-news-form-spalten { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 18px; align-items: start; }
.vfl-v .vfl-news-form-spalten > .vfl-box { margin: 0; }
.vfl-v .vfl-news-form-seite { position: sticky; top: 90px; }
.vfl-v .vfl-news-form input[type=text], .vfl-v .vfl-news-form input:not([type]), .vfl-v .vfl-news-form textarea, .vfl-v .vfl-nl-neu input:not([type]), .vfl-v .vfl-nl-neu textarea { width: 100%; }
.vfl-v #nf-titel { font-size: 1.25rem; font-weight: 800; }
.vfl-v .vfl-news-teamwahl { max-height: 260px; overflow: auto; display: grid; gap: 2px; padding: 8px 10px; border: 1px solid var(--l); border-radius: 10px; background: #fff; }
.vfl-v .vfl-news-teamwahl label { display: flex; gap: 8px; align-items: center; padding: 3px 0; font-weight: 600; }
.vfl-v .vfl-news-bild-vorschau img { max-width: 100%; height: auto; border-radius: 10px; margin: 4px 0 8px; }
.vfl-v .vfl-knoepfe { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.vfl-v .vfl-knopf-weg { color: #A42020 !important; border-color: #E9B4B4 !important; }
.vfl-v .vfl-news-freigabe { border-color: #F4B400; box-shadow: 0 0 0 3px rgba(244, 180, 0, .15); }
.vfl-v .vfl-news-freigabe ul { margin: 0; padding: 0; list-style: none; }
.vfl-v .vfl-news-freigabe li { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 8px 0; border-top: 1px solid var(--l); }
.vfl-v .vfl-news-freigabe form { margin-left: auto; }
.vfl-v .vfl-news-import { margin-top: 26px; }
.vfl-v .vfl-status { display: inline-block; padding: 2px 9px; border-radius: 999px; font-size: 12px; font-weight: 800; background: #EEF1F6; color: #5B6B85; }
.vfl-v .vfl-status--publish, .vfl-v .vfl-status--aktiv { background: #E6F6EC; color: #1B6B3A; }
.vfl-v .vfl-status--pending, .vfl-v .vfl-status--offen { background: #FFF4D6; color: #8A5A00; }
.vfl-v .vfl-status--future { background: #E8EFFA; color: #0B3B8C; }
.vfl-v .vfl-rechts-zelle { text-align: right; white-space: nowrap; }
.vfl-v .vfl-rechts-zelle form { display: inline; }
.vfl-v .vfl-tabs { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 18px; border-bottom: 2px solid var(--l); }
.vfl-v .vfl-tabs a { padding: 10px 16px; margin-bottom: -2px; border-bottom: 3px solid transparent; font-weight: 800; color: #5B6B85; text-decoration: none; }
.vfl-v .vfl-tabs a.ist-aktiv { color: var(--bd); border-color: var(--vakzent, #2D7FF9); }
.vfl-v .vfl-balken { height: 8px; border-radius: 8px; background: #E8EFFA; overflow: hidden; margin: 0 0 10px; }
.vfl-v .vfl-balken i { display: block; height: 100%; background: linear-gradient(90deg, #1F5BC4, #2D7FF9); }
.vfl-v .vfl-nl-abo-leiste { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 0 0 10px; }
.vfl-v .vfl-nl-abo-leiste .vfl-filter { margin: 0; }
.vfl-v .vfl-nl-beitraege { display: grid; gap: 6px; max-height: 420px; overflow: auto; }
.vfl-v .vfl-nl-beitraege label { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border: 1px solid var(--l); border-left: 4px solid #2D7FF9; border-radius: 10px; background: #fff; cursor: pointer; }
.vfl-v .vfl-nl-beitraege label.vfl-frauen { border-left-color: #E8317F; }
.vfl-v .vfl-nl-beitraege label span { display: flex; flex-direction: column; }
.vfl-v .vfl-nl-beitraege small { color: #5B6B85; }
.vfl-v .vfl-fb-hilfe summary, .vfl-v .vfl-fb-team summary { cursor: pointer; display: flex; flex-wrap: wrap; gap: 10px; align-items: center; font-size: 1.05rem; }
.vfl-v .vfl-fb-hilfe ol { margin: 12px 0 0 20px; line-height: 1.6; }
.vfl-v .vfl-fb-team { border-left: 5px solid #2D7FF9; }
.vfl-v .vfl-fb-team.vfl-frauen { border-left-color: #E8317F; }
.vfl-v .vfl-fb-team[open] summary { margin-bottom: 12px; }
.vfl-v .vfl-fb-slots { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(380px, 100%), 1fr)); gap: 12px; margin: 8px 0; }
.vfl-v .vfl-fb-slot { padding: 12px; border: 1px dashed var(--l); border-radius: 12px; background: #FAFCFF; }
.vfl-v .vfl-fb-slot.ist-belegt { border-style: solid; border-color: #9CC9FF; background: #fff; }
.vfl-v .vfl-fb-slot-kopf { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 0 0 8px; }
.vfl-v .vfl-fb-slot-kopf input[type=text] { flex: 1 1 140px; }
.vfl-v .vfl-fb-slot textarea { width: 100%; font-family: ui-monospace, Menlo, monospace; font-size: 12px; }
.vfl-v .vfl-fb-erkannt { color: #1B6B3A; font-weight: 700; }
.vfl-v .vfl-fb-fehler { color: #A42020; font-weight: 700; }
.vfl-v .vfl-klebend { position: sticky; bottom: 0; z-index: 5; margin: 0 -8px; padding: 12px 8px; background: linear-gradient(transparent, #F3F6FB 35%); }
@media (max-width: 900px) { .vfl-v .vfl-news-form-spalten { grid-template-columns: 1fr; } .vfl-v .vfl-news-form-seite { position: static; } }

/* ---------------------------------------------------------------- 1.4.1 Lange Listen: Kopf bleibt stehen */
.vfl-v { --vfl-oben-s: var(--vfl-oben, 0px); --vfl-kleb-s: var(--vfl-kleb-h, 0px); }
.vfl-v .vfl-kleben { position: sticky; top: calc(var(--vfl-oben-s) + 8px); z-index: 7; background: #fff; transition: box-shadow .2s; }
.vfl-v .vfl-kleben.ist-klebend { box-shadow: 0 10px 28px rgba(7, 42, 102, .16); }
.vfl-v .vfl-v-filter.vfl-kleben { padding: 10px 12px; border: 1px solid var(--l); border-radius: 16px; }
/* Kategorie-Überschriften (Ausgeben, Lager) bleiben unter der Suchleiste stehen */
.vfl-v .vfl-kat-titel, .vfl-v .vfl-lager-kat { position: sticky; top: calc(var(--vfl-oben-s) + var(--vfl-kleb-s) + 14px); z-index: 6; margin-left: -4px; margin-right: -4px; padding: 8px 12px; background: rgba(243, 246, 251, .96); backdrop-filter: blur(6px); border-radius: 10px; }
/* Tabellenkopf */
.vfl-v .widefat { overflow: clip; }
.vfl-v .widefat thead th { position: sticky; top: calc(var(--vfl-oben-s) + var(--vfl-kleb-s) + 8px); z-index: 4; background: #F3F6FB; box-shadow: inset 0 -1px 0 var(--l); }
/* Seitenleiste unter dem Seitenkopf */
@media (min-width: 1100px) {
	.vfl-v-nav { top: calc(var(--vfl-oben, 0px) + 16px); max-height: calc(100vh - var(--vfl-oben, 0px) - 32px); }
}
/* Handy: breite Tabellen scrollen in sich – der Kopf bleibt trotzdem oben */
@media (max-width: 782px) {
	.vfl-v .widefat { overflow: auto; max-height: calc(100dvh - var(--vfl-oben-s) - var(--vfl-kleb-s) - 28px); }
	.vfl-v .widefat thead th { top: 0; }
	.vfl-v .vfl-kleben { top: calc(var(--vfl-oben-s) + 4px); }
}
@media (max-width: 782px) {
	.vfl-v .vfl-schritt.vfl-kleben { gap: 6px 12px; padding: 10px 12px; }
	.vfl-v .vfl-schritt.vfl-kleben > span:first-child, .vfl-v .vfl-schritt.vfl-kleben > label[for] { display: none; }
	.vfl-v .vfl-schritt.vfl-kleben .vfl-nur { font-size: 13px; }
}
.vfl-v .vfl-absenden { z-index: 8; }

/* ---------------------------------------------------------------- 1.5 System, Spieltag, Belegung, Fristen, Berichte */
.vfl-v .vfl-kachel--fehler { border-color: #E5484D; box-shadow: 0 0 0 3px rgba(229, 72, 77, .14); }
.vfl-v .vfl-kachel--fehler strong { color: #C21D24; }
.vfl-v .vfl-check-gruppe { margin: 22px 0 8px; font-size: 13px; text-transform: uppercase; letter-spacing: .07em; color: #5B6B85; }
.vfl-v .vfl-check-liste { display: grid; gap: 8px; }
.vfl-v .vfl-check { display: flex; align-items: center; gap: 14px; padding: 12px 16px; background: #fff; border: 1px solid var(--l); border-radius: 14px; }
.vfl-v .vfl-check > div { flex: 1; display: flex; flex-direction: column; gap: 2px; }
.vfl-v .vfl-check small { color: #5B6B85; }
.vfl-v .vfl-check-ampel { flex: 0 0 16px; height: 16px; border-radius: 50%; background: #1F9D55; box-shadow: 0 0 0 4px rgba(31, 157, 85, .15); }
.vfl-v .vfl-check--hinweis .vfl-check-ampel { background: #F4B400; box-shadow: 0 0 0 4px rgba(244, 180, 0, .18); }
.vfl-v .vfl-check--fehler .vfl-check-ampel { background: #E5484D; box-shadow: 0 0 0 4px rgba(229, 72, 77, .18); }
.vfl-v .vfl-check--fehler { border-color: #F3B9BB; }
/* Ergebnisse */
.vfl-v .vfl-erg-form { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(420px, 100%), 1fr)); gap: 12px; }
.vfl-v .vfl-erg-form .vfl-absenden { grid-column: 1 / -1; }
.vfl-v .vfl-erg { margin: 0; padding: 14px 16px; background: #fff; border: 1px solid var(--l); border-left: 5px solid #2D7FF9; border-radius: 16px; }
.vfl-v .vfl-erg.vfl-frauen { border-left-color: #E8317F; }
.vfl-v .vfl-erg.ist-offen { box-shadow: 0 0 0 3px rgba(244, 180, 0, .25); }
.vfl-v .vfl-erg legend { display: flex; flex-direction: column; padding: 0; }
.vfl-v .vfl-erg legend small { color: #5B6B85; font-weight: 700; }
.vfl-v .vfl-erg-zeile { display: flex; align-items: flex-end; gap: 10px; margin: 10px 0; }
.vfl-v .vfl-erg-zeile label { display: flex; flex-direction: column; align-items: center; gap: 4px; font-size: 12px; font-weight: 800; color: #5B6B85; }
.vfl-v .vfl-erg-zeile input { width: 72px; height: 60px; text-align: center; font-size: 1.8rem; font-weight: 800; border-radius: 12px; }
.vfl-v .vfl-erg-zeile > b { font-size: 2rem; padding-bottom: 8px; }
.vfl-v .vfl-erg-tore { display: flex; flex-direction: column; gap: 4px; font-weight: 700; }
.vfl-v .vfl-erg-tore input { width: 100%; }
/* Kachel */
.vfl-v .vfl-kachel-box { margin-top: 18px; }
.vfl-v .vfl-kachel-wahl { display: flex; flex-wrap: wrap; gap: 12px; margin: 0 0 14px; }
.vfl-v .vfl-kachel-wahl label { display: flex; flex-direction: column; gap: 4px; font-weight: 700; }
.vfl-v .vfl-kachel-buehne { display: flex; justify-content: center; padding: 18px; background: repeating-conic-gradient(#EEF2F8 0 25%, #fff 0 50%) 0 0 / 20px 20px; border-radius: 16px; }
.vfl-v .vfl-kachel-buehne canvas { width: min(420px, 100%); height: auto; border-radius: 12px; box-shadow: 0 18px 40px rgba(7, 42, 102, .25); }
/* Belegung */
.vfl-v .vfl-woche { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin: 0 0 14px; }
.vfl-v .vfl-beleg-wrap { overflow-x: auto; border-radius: 16px; border: 1px solid var(--l); background: #fff; }
.vfl-v .vfl-beleg { width: 100%; min-width: 900px; border-collapse: collapse; table-layout: fixed; }
.vfl-v .vfl-beleg th, .vfl-v .vfl-beleg td { padding: 8px; border-bottom: 1px solid #EEF2F8; border-right: 1px solid #EEF2F8; vertical-align: top; }
.vfl-v .vfl-beleg thead th { background: #F3F6FB; font-size: 13px; }
.vfl-v .vfl-beleg thead th.ist-heute { background: #E1ECFF; color: #0B3B8C; }
.vfl-v .vfl-beleg tbody th { width: 170px; text-align: left; font-size: 13px; border-left: 5px solid var(--anl); }
.vfl-v .vfl-beleg-t { display: flex; flex-direction: column; margin: 0 0 6px; padding: 6px 8px; border-radius: 8px; background: #E8EFFA; border-left: 3px solid #2D7FF9; font-size: 12px; line-height: 1.3; }
.vfl-v .vfl-beleg-t--spiel { background: #E6F6EC; border-left-color: #1F9D55; }
.vfl-v .vfl-beleg-t.vfl-frauen { border-left-color: #E8317F; }
.vfl-v .vfl-beleg-t.ist-konflikt { background: #FDECEC; border-left-color: #E5484D; box-shadow: 0 0 0 2px #E5484D inset; }
.vfl-v .vfl-beleg-t small { color: #5B6B85; }
/* Fristen */
.vfl-v .vfl-frist { display: inline-block; padding: 2px 8px; border-radius: 6px; font-weight: 700; }
.vfl-v .vfl-frist--1 { background: #FFF4D6; color: #8A5A00; }
.vfl-v .vfl-frist--2 { background: #FFE2C2; color: #9A4A00; }
.vfl-v .vfl-frist--3 { background: #FDECEC; color: #B4161D; }
.vfl-v .vfl-jubel { display: inline-grid; place-items: center; min-width: 44px; height: 44px; border-radius: 50%; background: linear-gradient(135deg, #F5DC93, #D9A845); color: #2a1e05; font-weight: 900; }
/* Sponsoren-Bericht */
.vfl-v .vfl-bericht { padding: clamp(18px, 3vw, 36px); background: #fff; border: 1px solid var(--l); border-radius: 22px; }
.vfl-v .vfl-bericht-kopf { display: flex; align-items: center; gap: 18px; margin: 0 0 14px; padding-bottom: 14px; border-bottom: 4px solid #0B3B8C; }
.vfl-v .vfl-bericht-kopf h2 { margin: 2px 0 0; font-size: 1.8rem; color: #072A66; }
.vfl-v .vfl-bericht-kopf small { color: #5B6B85; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.vfl-v .vfl-bericht-logo { margin-left: auto; max-width: 200px; }
.vfl-v .vfl-bericht-logo img { max-width: 100%; height: auto; max-height: 90px; object-fit: contain; }
.vfl-v .vfl-bericht-balken { display: grid; grid-template-columns: repeat(12, 1fr); gap: 6px; align-items: end; height: 170px; padding: 10px 0; }
.vfl-v .vfl-bericht-balken div { display: flex; flex-direction: column; align-items: center; justify-content: flex-end; height: 100%; gap: 3px; }
.vfl-v .vfl-bericht-balken i { width: 100%; min-height: 2px; border-radius: 6px 6px 0 0; background: linear-gradient(#2D7FF9, #0B3B8C); }
.vfl-v .vfl-bericht-balken b { font-size: 12px; }
.vfl-v .vfl-bericht-balken small { font-size: 11px; color: #5B6B85; }
.vfl-v .vfl-bericht-liste { margin: 0; padding: 0; list-style: none; columns: 2 320px; }
.vfl-v .vfl-bericht-liste li { break-inside: avoid; padding: 4px 0; border-bottom: 1px solid #EEF2F8; }
.vfl-v .vfl-bericht-liste span { display: inline-block; width: 92px; color: #5B6B85; font-size: 13px; }
.vfl-v .vfl-haken { columns: 2 260px; }
.vfl-v .vfl-bericht-fuss { margin-top: 22px; padding-top: 12px; border-top: 1px solid var(--l); color: #5B6B85; font-size: 12px; }
@media print {
	.vfln-kopf, footer, .vfl-v-nav, .vfl-nicht-drucken, .vfl-kopfzeile .button, .vfl-demo-banner, .wp-block-template-part, .vfl-seitenkopf, .vfl-woche, #wpadminbar { display: none !important; }
	.vfl-v { display: block !important; }
	.vfl-v .vfl-bericht { border: 0; padding: 0; }
	body { background: #fff !important; }
}
.vfl-v .notice-error { background: #FDECEC; color: #8E1218; }
.vfl-v .notice-error::before { content: "!"; background: #E5484D; }
.vfl-baum-knoten { position: relative; }
.vfl-baum-auf--platz { visibility: hidden; }
.vfl-baum-knoten > .vfl-baum-auf--draussen { position: absolute; top: 26px; left: calc(min(100%, 560px) - 47px); z-index: 2; }

/* ================================================================ 1.6 */
.vfl-v .vfl-stat-zwei { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)); gap: 16px; margin: 16px 0; align-items: start; }
.vfl-v .vfl-stat-zwei > .vfl-box, .vfl-v .vfl-lsb, .vfl-v .vfl-mv-einladung { margin: 0; }
.vfl-v .vfl-lsb { margin-top: 16px; }
.vfl-v .vfl-stat-balken { grid-template-columns: repeat(6, 1fr); height: 190px; }
.vfl-v .vfl-stat-balken .vfl-stat-ea { color: #137A3A; }
.vfl-v .vfl-stat-alter { display: grid; gap: 8px; }
.vfl-v .vfl-stat-alter div { display: grid; grid-template-columns: 64px 1fr 36px; gap: 10px; align-items: center; font-size: 14px; }
.vfl-v .vfl-stat-alter i { display: block; height: 14px; min-width: 2px; border-radius: 8px; background: linear-gradient(90deg, #2D7FF9, #0B3B8C); }
.vfl-v .vfl-stat-alter b { text-align: right; }
.vfl-v .vfl-lsb-tab th, .vfl-v .vfl-lsb-tab td { padding: 8px 6px; font-size: 13px; }
.vfl-v .vfl-lsb-tab .vfl-lsb-w { border-left: 1px solid #E3EAF5; }
.vfl-v .vfl-lsb-tab tbody tr:first-child td { font-weight: 700; background: #F4F7FC; }
.vfl-v .vfl-beleg-wrap { overflow-x: auto; }
.vfl-v .vfl-hinweis-box { padding: 12px 16px; border-radius: 12px; background: #FFF4D6; color: #6B4C00; }
.vfl-v .vfl-hinweis-box--fehler { background: #FDECEC; color: #8E1218; }
.vfl-v .vfl-reiter { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0 18px; border-bottom: 1px solid #D7E0EE; }
.vfl-v .vfl-reiter a { padding: 10px 16px; border-radius: 10px 10px 0 0; text-decoration: none; font-weight: 700; color: #45526B; }
.vfl-v .vfl-reiter a.ist-aktiv { background: #fff; color: #0B3B8C; border: 1px solid #D7E0EE; border-bottom-color: #fff; margin-bottom: -1px; }
.vfl-v .vfl-pausch-balken { width: 120px; }
.vfl-v .vfl-pausch-balken.ist-voll i { background: #137A3A; }
.vfl-v .vfl-dienst-balken { height: 8px; border-radius: 8px; background: #E8EFFA; overflow: hidden; }
.vfl-v .vfl-dienst-balken i { display: block; height: 100%; background: #1D6AE0; }
.vfl-v .vfl-liste-karten { display: grid; gap: 10px; }
.vfl-v .vfl-liste-karten > details { margin: 0; }
.vfl-v .vfl-liste-karten summary { cursor: pointer; }
.vfl-v .vfl-liste-felder { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 4px 14px; margin-top: 12px; }
.vfl-v .vfl-liste-felder .vfl-feld--breit { grid-column: 1 / -1; }
.vfl-v .vfl-liste-felder .vfl-feld label { display: block; font-weight: 600; font-size: 13px; }
.vfl-v .vfl-liste-felder input:not([type=checkbox]), .vfl-v .vfl-liste-felder select, .vfl-v .vfl-liste-felder textarea { width: 100%; }
.vfl-v .vfl-anfragen td { vertical-align: top; }
.vfl-v .vfl-anfrage-knoepfe { margin-top: 6px; display: flex; flex-wrap: wrap; gap: 4px; }
.vfl-v .vfl-chip--neu { background: #FFF4D6; color: #6B4C00; }
.vfl-v .vfl-chip--aktiv, .vfl-v .vfl-chip--bestaetigt, .vfl-v .vfl-chip--ok, .vfl-v .vfl-chip--bezahlt, .vfl-v .vfl-chip--gewonnen, .vfl-v .vfl-chip--zusage { background: #E3F5E8; color: #11592B; }
.vfl-v .vfl-chip--abgelehnt, .vfl-v .vfl-chip--storniert, .vfl-v .vfl-chip--abgesagt, .vfl-v .vfl-chip--absage, .vfl-v .vfl-chip--gekuendigt { background: #FDECEC; color: #8E1218; }
.vfl-v .vfl-live-wahl { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 10px; }
.vfl-v .vfl-live-wahl .vfl-box { display: grid; gap: 4px; margin: 0; text-decoration: none; color: #14213D; }
.vfl-v .vfl-live-wahl .vfl-box:hover { border-color: #1F5BC4; }
.vfl-v .vfl-live-wahl small { color: #5B6B85; }
/* Live-Ticker-Eingabe */
.vfl-v .vfl-tick-knoepfe { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px; margin: 16px 0; }
.vfl-v .vfl-tick-knoepfe form { margin: 0; }
.vfl-v .vfl-tick-knopf { width: 100%; min-height: 64px; border: 0; border-radius: 16px; background: #E8EFFA; color: #072A66; font-size: 16px; font-weight: 800; cursor: pointer; }
.vfl-v .vfl-tick-knopf:hover { filter: brightness(.96); }
.vfl-v .vfl-tick-knopf.ist-gross { background: #0B3B8C; color: #fff; font-size: 20px; }
.vfl-v .vfl-tick-knopf.ist-dunkel { background: #14213D; color: #fff; }
.vfl-v .vfl-tick-knopf.ist-gelb { background: #FFE07A; color: #4A3700; }
.vfl-v .vfl-tick-knopf.ist-rot { background: #C9252B; color: #fff; }
.vfl-v .vfl-tick-tor select, .vfl-v .vfl-tick-tor input { min-height: 44px; }
.vfl-v .vfl-live { max-width: 640px; }
.vfl-v .vfl-live-verlauf--admin { max-width: 640px; }
.vfl-v .vfl-live-verlauf--admin li { display: grid; grid-template-columns: 42px 1fr auto; gap: 8px; align-items: center; padding: 4px 0; border-bottom: 1px solid #EEF2F8; }
.vfl-v .vfl-live-verlauf--admin form { margin: 0; }
/* Einlass */
.vfl-v .vfl-einlass { max-width: 560px; }
.vfl-v .vfl-einlass-video { position: relative; border-radius: 18px; overflow: hidden; background: #000; aspect-ratio: 1; max-width: 420px; }
.vfl-v .vfl-einlass-video video { width: 100%; height: 100%; object-fit: cover; }
.vfl-v .vfl-einlass-rahmen { position: absolute; inset: 18%; border: 4px solid rgba(255, 255, 255, .85); border-radius: 18px; }
.vfl-v .vfl-einlass-form { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 10px 0; }
.vfl-v .vfl-einlass-form input { font-size: 20px; letter-spacing: .1em; text-transform: uppercase; max-width: 220px; }
.vfl-v .vfl-einlass-karte { padding: 20px; border-radius: 18px; border: 3px solid; margin: 12px 0; }
.vfl-v .vfl-einlass-karte strong { display: block; font-size: 28px; }
.vfl-v .vfl-einlass-karte.ist-ok { border-color: #1E9E4A; background: #E3F5E8; }
.vfl-v .vfl-einlass-karte.ist-warn { border-color: #D99A00; background: #FFF4D6; }
.vfl-v .vfl-einlass-karte.ist-nein { border-color: #C9252B; background: #FDECEC; }
/* Turnier, Galerie, Werkstatt, MV */
.vfl-v .vfl-turnier-tab { width: 100%; border-collapse: collapse; background: #fff; }
.vfl-v .vfl-turnier-tab th, .vfl-v .vfl-turnier-tab td { padding: 6px 8px; border-bottom: 1px solid #EEF2F8; }
.vfl-v .vfl-turnier-tab .num { text-align: right; }
.vfl-v .vfl-turnier-erg { text-align: center; white-space: nowrap; }
.vfl-v .vfl-turnier-erg input { width: 3.6em; text-align: center; }
.vfl-v .vfl-turnier-gruppen { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 14px; }
.vfl-v .vfl-turnier-kinder { padding: 12px 16px; border-radius: 12px; background: #EAF7EE; color: #11592B; }
.vfl-v .vfl-galerie-verw { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
.vfl-v .vfl-galerie-foto { margin: 0; }
.vfl-v .vfl-galerie-foto img { width: 100%; height: 200px; object-fit: cover; border-radius: 10px; }
.vfl-v .vfl-galerie-namen { display: grid; gap: 4px; max-height: 220px; overflow: auto; padding: 6px 0; }
.vfl-v .vfl-galerie-foto input[type=text], .vfl-v .vfl-galerie-foto input:not([type]) { width: 100%; }
.vfl-v .vfl-galerie-weg { color: #8E1218; }
.vfl-v .vfl-uebungen { display: grid; gap: 14px; }
.vfl-v .vfl-uebung-wrap { background: #fff; border: 1px solid #D7E0EE; border-radius: 16px; padding: 16px; }
.vfl-v .vfl-uebung-wrap > p { margin: 10px 0 0; }
.vfl-uebung { display: grid; grid-template-columns: minmax(200px, 300px) 1fr; gap: 18px; align-items: start; }
.vfl-uebung h3 { margin: 6px 0; }
.vfl-uebung p, .vfl-uebung ul { margin: 0 0 6px; }
.vfl-uebung .vfl-chip { display: inline-block; }
.vfl-uebung-coach { font-size: 14px; }
.vfl-skizze { width: 100%; height: auto; display: block; border-radius: 10px; }
.vfl-v .vfl-skizze-feld { max-width: 640px; cursor: crosshair; touch-action: manipulation; }
.vfl-v .vfl-skizze-werkzeuge { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0; }
.vfl-v .vfl-skizze-werkzeuge .button.ist-aktiv { background: #0B3B8C !important; color: #fff !important; border-color: #0B3B8C !important; }
.vfl-v .vfl-uebung-form fieldset { border: 0; padding: 0; margin: 0 0 10px; }
.vfl-v .vfl-tplan { padding-left: 20px; display: grid; gap: 14px; }
.vfl-v .vfl-tplan-kopf h2 { margin-bottom: 4px; }
.vfl-v .vfl-mv-liste .vfl-unterschrift-zelle { width: 40%; }
.vfl-v .vfl-protokoll { width: 100%; font-family: ui-monospace, Menlo, monospace; font-size: 14px; }
.vfl-v .vfl-erklaerung { max-width: 760px; background: #fff; border: 1px solid #D7E0EE; border-radius: 16px; padding: 24px; }
.vfl-v .vfl-unterschriften { display: flex; gap: 40px; margin-top: 48px; }
.vfl-v .vfl-unterschriften span { flex: 1; border-top: 1px solid #14213D; padding-top: 4px; font-size: 13px; }
.vfl-nur-drucken, .vfl-v .vfl-nur-drucken { display: none !important; }
.vfl-v .vfl-uebung-form label { display: block; font-weight: 600; margin-bottom: 8px; }
.vfl-v .vfl-uebung-form input:not([type=checkbox]), .vfl-v .vfl-uebung-form select, .vfl-v .vfl-uebung-form textarea { width: 100%; box-sizing: border-box; }
.vfl-v .vfl-uebung-form .vfl-haken-zeile { display: inline-flex; font-weight: 500; margin-right: 12px; }
/* QR-Plakat */
.vfl-plakat { max-width: 560px; margin: 16px auto; padding: 36px; text-align: center; border: 2px solid #0B3B8C; border-radius: 28px; background: #fff; }
.vfl-plakat h2 { font-size: 2.2rem; margin: 8px 0; color: #0B3B8C; }
.vfl-plakat-qr { display: block; width: 72%; margin: 18px auto; }
.vfl-plakat-qr svg { width: 100%; height: auto; }
.vfl-plakat-url { font-weight: 800; font-size: 1.2rem; }
@media (max-width: 720px) { .vfl-uebung { grid-template-columns: 1fr; } }
@media print {
	.vfl-nur-drucken, .vfl-v .vfl-nur-drucken { display: block !important; }
	.vfl-v p.vfl-unterschriften.vfl-nur-drucken { display: flex !important; }
	.vfl-v td.vfl-nur-drucken, .vfl-v th.vfl-nur-drucken { display: table-cell !important; }
	.vfl-v .vfl-reiter, .vfl-v .vfl-anfrage-knoepfe, .vfl-v .vfl-filter { display: none !important; }
	.vfl-v .vfl-mv-liste td { height: 30px; }
	.vfl-v .vfl-uebung-wrap { break-inside: avoid; border: 1px solid #999; }
	.vfl-plakat { border: 0; page-break-inside: avoid; }
	.vfl-v .vfl-protokoll { display: none; }
	.vfl-protokoll-druck { white-space: pre-wrap; font-family: inherit; font-size: 12pt; }
}
.vfl-v .vfl-beleg-wrap thead th, .vfl-v .vfl-turnier-plan thead th, .vfl-v .vfl-turnier-gruppen thead th { position: static; }
.vfl-v .vfl-turnier-plan { overflow: visible; }
.vfl-v .vfl-stat-zwei form.vfl-box label, .vfl-v .vfl-filter label { display: inline-block; margin: 0 12px 8px 0; vertical-align: top; font-weight: 600; }
.vfl-v .vfl-stat-zwei form.vfl-box label input, .vfl-v .vfl-stat-zwei form.vfl-box label select { display: block; margin-top: 4px; }
/* 1.7 */
.vfl-v .vfl-platz-raster { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 14px; }
.vfl-v .vfl-platz { margin: 0; border-left: 6px solid #1E9E4A; }
.vfl-v .vfl-platz--eingeschraenkt { border-left-color: #D99A00; }
.vfl-v .vfl-platz--gesperrt { border-left-color: #C9252B; background: #FFF6F6; }
.vfl-v .vfl-platz h3 small { font-weight: 600; color: #5B6B85; }
.vfl-v .vfl-platz-knoepfe { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0; }
.vfl-v .vfl-platz-wahl { display: inline-flex; gap: 6px; align-items: center; padding: 8px 12px; border: 2px solid #D7E0EE; border-radius: 12px; cursor: pointer; font-weight: 700; }
.vfl-v .vfl-platz-wahl:has(input:checked) { border-color: #0B3B8C; background: #E8EFFA; }
.vfl-v .vfl-zuw-tab { width: 100%; border-collapse: collapse; margin: 10px 0; }
.vfl-v .vfl-zuw-tab th, .vfl-v .vfl-zuw-tab td { border: 1px solid #C9D3E3; padding: 8px 10px; text-align: left; vertical-align: top; font-size: 14px; }
.vfl-v .vfl-zuw-tab th { background: #F4F7FC; width: 22%; }
.vfl-v .vfl-saison-kacheln { grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); }
.vfl-v .vfl-camp-liste td { vertical-align: top; }
@media print { .vfl-v .vfl-zuw-tab th { background: none; } .vfl-v .vfl-camp-liste { font-size: 11pt; } }
/* Sponsoren-Bericht: Leistungen */
.vfl-v .vfl-bericht-leistungen { list-style: none; margin: 0 0 18px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.vfl-v .vfl-bericht-leistungen li { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 999px; background: #E8EFFA; color: #072A66; font-weight: 700; font-size: 14px; }
.vfl-v .vfl-bericht-leistungen li::before { content: "✓"; display: grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: #0B3B8C; color: #fff; font-size: 12px; }
.vfl-v .vfl-bericht-hinweis { margin: 0 0 6px; }
@media print { .vfl-v .vfl-bericht-leistungen li { border: 1px solid #C9D3E3; background: none; } }

/* =========================================================== 1.7.2 – Navigation oben mit Untermenüs */
@media (min-width: 1100px) {
	.vfl-v:not(.vfl-v--anmelden) { display: block; }
}
.vfl-v-nav.vfl-v-nav--oben { position: sticky; top: calc(var(--vfl-oben, 0px) + 8px); z-index: 30; display: flex; flex-direction: row; align-items: center; gap: 10px; max-height: none; overflow: visible; margin: 0 0 26px; padding: 6px; border-radius: 18px; }
.vfl-v-nav--oben .vfl-v-nav-spur { display: flex; flex-direction: row; align-items: center; flex-wrap: wrap; gap: 4px; flex: 1; overflow: visible; }
.vfl-v-nav--oben .vfl-v-direkt, .vfl-v-gruppe > summary { display: inline-flex; align-items: center; gap: 7px; padding: 10px 14px; border-radius: 12px; color: var(--bd) !important; font-weight: 800; font-size: 14px; white-space: nowrap; cursor: pointer; text-decoration: none; list-style: none; user-select: none; transition: background .2s; }
.vfl-v-gruppe > summary::-webkit-details-marker { display: none; }
.vfl-v-nav--oben .vfl-v-direkt:hover, .vfl-v-gruppe > summary:hover, .vfl-v-gruppe[open] > summary { background: var(--bh); }
.vfl-v-gruppe > summary:focus-visible, .vfl-v-nav--oben a:focus-visible { outline: 3px solid var(--bm); outline-offset: 2px; }
.vfl-v-nav--oben .vfl-v-direkt.ist-aktiv, .vfl-v-gruppe.ist-aktiv > summary { background: var(--b); color: #fff !important; box-shadow: 0 6px 16px rgba(11, 59, 140, .3); }
.vfl-v-nav--oben .vfl-v-direkt .dashicons { font-size: 18px; width: 18px; height: 18px; color: var(--bm); }
.vfl-v-nav--oben .vfl-v-direkt.ist-aktiv .dashicons { color: #fff; }
.vfl-v-gruppe-akt { font-weight: 600; font-size: 12px; opacity: .85; padding-left: 8px; border-left: 1px solid rgba(255, 255, 255, .45); }
.vfl-v-pfeil { width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform .2s; }
.vfl-v-gruppe[open] .vfl-v-pfeil { transform: translateY(2px) rotate(225deg); }
.vfl-v-gruppe { position: static; }
.vfl-v-menue { position: absolute; left: 0; right: 0; top: calc(100% + 8px); z-index: 40; padding: 16px; background: #fff; border: 1px solid var(--l); border-radius: 18px; box-shadow: 0 24px 48px rgba(7, 42, 102, .18); max-height: min(70vh, 640px); overflow: auto; animation: vfl-v-menue .16s ease-out; }
@keyframes vfl-v-menue { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
.vfl-v-menue-titel { margin: 0 0 10px 6px; font-size: 11px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; color: var(--pink); }
.vfl-v-menue-raster { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 2px 8px; }
.vfl-v-menue-raster a { display: flex; align-items: center; gap: 9px; padding: 9px 12px; border-radius: 12px; color: var(--bd) !important; font-weight: 700; font-size: 14px; text-decoration: none; }
.vfl-v-menue-raster a .dashicons { font-size: 18px; width: 18px; height: 18px; color: var(--bm); flex: 0 0 auto; }
.vfl-v-menue-raster a:hover { background: var(--bh); }
.vfl-v-menue-raster a.ist-aktiv { background: var(--b); color: #fff !important; }
.vfl-v-menue-raster a.ist-aktiv .dashicons { color: #fff; }
.vfl-v-nav--oben .vfl-v-wer { order: 2; flex-direction: row; align-items: center; gap: 10px; padding: 0 6px 0 12px; margin: 0; border: 0; border-left: 1px solid #EEF2F8; white-space: nowrap; }
.vfl-v-nav--oben .vfl-v-wer > span { display: grid; min-width: 0; max-width: 220px; }
.vfl-v-nav--oben .vfl-v-wer small { display: block; font-size: 11.5px; color: var(--g); overflow: hidden; text-overflow: ellipsis; }
.vfl-v-nav--oben .vfl-v-wer .vfl-avatar { display: inline-flex; width: 36px; height: 36px; font-size: 13px !important; }
@media (max-width: 1099px) {
	.vfl-v-nav--oben .vfl-v-wer small, .vfl-v-nav--oben .vfl-v-wer .vfl-avatar { display: none; }
	.vfl-v-gruppe-akt { display: none; }
}
@media (max-width: 782px) {
	.vfl-v-nav.vfl-v-nav--oben { top: var(--vfl-oben, 0px); border-radius: 0 0 16px 16px; margin-left: -16px; margin-right: -16px; border-left: 0; border-right: 0; }
	.vfl-v-nav--oben .vfl-v-nav-spur { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
	.vfl-v-nav--oben .vfl-v-wer { display: none; }
	.vfl-v-gruppe > summary, .vfl-v-nav--oben .vfl-v-direkt { padding: 9px 12px; }
	.vfl-v-menue { position: fixed; left: 8px; right: 8px; top: auto; margin-top: 8px; max-height: 70vh; }
	.vfl-v-menue-raster { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 480px) { .vfl-v-menue-raster { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .vfl-v-menue { animation: none; } .vfl-v-pfeil { transition: none; } }
@media print { .vfl-v-nav--oben { display: none !important; } }

/* 1.8 fußball.de-Abgleich */
.vfl-fd-kopf { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 16px; margin-bottom: 16px; }
@media (max-width: 860px) { .vfl-fd-kopf { grid-template-columns: 1fr; } }
.vfl-fd-liste { list-style: none; margin: 0 0 10px; padding: 0; display: grid; gap: 8px; }
.vfl-fd-liste li { position: relative; padding-left: 30px; line-height: 1.45; }
.vfl-fd-liste li::before { position: absolute; left: 0; top: 0; width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; font-weight: 900; font-size: 13px; }
.vfl-fd-liste li.ist-ja::before { content: "✓"; background: #E3F5EA; color: #13663B; }
.vfl-fd-liste li.ist-nein::before { content: "✕"; background: #FDECEA; color: #A93226; }
.vfl-fd-dl { display: grid; gap: 6px; margin: 0 0 12px; }
.vfl-fd-dl div { display: flex; justify-content: space-between; gap: 10px; border-bottom: 1px dashed #DCE3EE; padding-bottom: 6px; }
.vfl-fd-dl dt { font-weight: 700; color: #4A5468; }
.vfl-fd-dl dd { margin: 0; font-weight: 800; }
.vfl-fd-tabelle select { max-width: 100%; min-width: 220px; }
.vfl-fd-tabelle th[scope="row"] small { color: #4A5468; font-weight: 600; }
.vfl-fd-eigen { margin-top: 6px; font-size: 13px; }
.vfl-fd-eigen summary { cursor: pointer; color: #1F4FA8; font-weight: 700; }
.vfl-fd-eigen input { width: 100%; margin-top: 6px; }
.vfl-fd-log small { display: block; color: #4A5468; margin-top: 3px; }
.vfl-status.vfl-status--fehler { background: #FDECEA; color: #A93226; }
.vfl-erg.ist-gefragt { outline: 3px solid #F2B705; outline-offset: 3px; }
.vfl-fd-tabelle { width: 100%; }
.vfl-fd-tabelle tbody th[scope="row"] { background: #fff; color: #10224A; text-align: left; font-weight: 600; position: static; }
.vfl-fd-tabelle tbody tr.vfl-frauen th[scope="row"] { box-shadow: inset 4px 0 0 #D1206C; }

/* 1.9 Social Media posten */
.vfl-sp-kopf { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 16px; margin-bottom: 18px; align-items: start; }
@media (max-width: 900px) { .vfl-sp-kopf { grid-template-columns: 1fr; } }
.vfl-sp-konten { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 6px; }
.vfl-sp-konto { display: inline-flex; gap: 6px; align-items: center; padding: 6px 12px; border-radius: 999px; background: #EEF4FF; color: #10224A; font-size: 14px; }
.vfl-sp-konto--fb { background: #E7F0FF; }
.vfl-sp-konto--ig { background: #FCE8F1; }
.vfl-sp-konto.ist-aus { background: #F3F4F6; color: #4A5468; }
.vfl-sp-verbindung.ist-verbunden { border-left: 4px solid #1A7F4B; }
.vfl-sp-zugang { margin-top: 10px; }
.vfl-sp-zugang summary { cursor: pointer; font-weight: 800; color: #1F4FA8; }
.vfl-sp-schritte { margin: 12px 0 14px 18px; display: grid; gap: 6px; line-height: 1.45; }
.vfl-sp-haken { border: 0; padding: 0; margin: 0; display: grid; gap: 6px; grid-column: 1 / -1; }
.vfl-sp-haken legend { font-weight: 800; margin-bottom: 6px; }
.vfl-sp-liste { list-style: none; margin: 0 0 22px; padding: 0; display: grid; gap: 10px; }
.vfl-sp-liste li { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; background: #fff; border: 1px solid #DCE3EE; border-radius: 14px; padding: 12px 16px; }
.vfl-sp-titel { flex: 1; min-width: 220px; display: grid; gap: 2px; text-decoration: none; color: #10224A; }
.vfl-sp-titel small { color: #4A5468; }
.vfl-sp-links a { font-weight: 700; }
.vfl-sp-einzel { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 18px; align-items: start; }
@media (max-width: 900px) { .vfl-sp-einzel { grid-template-columns: 1fr; } }
.vfl-sp-bild .vfl-kachel-buehne canvas { width: 100%; height: auto; max-width: 520px; display: block; margin: 0 auto; border-radius: 14px; box-shadow: 0 8px 24px rgba(5, 29, 77, .18); }
.vfl-sp-text textarea { width: 100%; font: inherit; line-height: 1.5; }
.vfl-sp-ziele { border: 0; padding: 0; margin: 12px 0; display: flex; gap: 18px; flex-wrap: wrap; }
.vfl-sp-ziele legend { font-weight: 800; margin-bottom: 6px; }
.vfl-hinweis-klein { font-size: 13.5px; color: #4A5468; background: #FFF8E1; border-radius: 10px; padding: 8px 12px; }
.vfl-sp-verlauf { margin: 0; padding-left: 18px; display: grid; gap: 6px; font-size: 13.5px; }
.vfl-sp-verlauf .ist-ok { color: #13663B; font-weight: 700; }
.vfl-sp-verlauf .ist-fehler { color: #A93226; }
.vfl-knopf-gefahr { color: #A93226 !important; border-color: #E8B4AE !important; }
.vfl-status.vfl-status--trash { background: #F3F4F6; color: #4A5468; }

/* 1.10 KI-Schutz */
.vfl-ks-kopf { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 16px; margin-bottom: 16px; align-items: start; }
.vfl-ks-kopf .vfl-kacheln { display: grid; grid-template-columns: 1fr; gap: 12px; margin: 0; }
@media (max-width: 860px) { .vfl-ks-kopf { grid-template-columns: 1fr; } .vfl-ks-kopf .vfl-kacheln { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.vfl-ks-ua { max-width: 280px; word-break: break-all; font-size: 12.5px; color: #4A5468; }

/* 1.11 Ideen-Kiste */
.vfl-ik-raster { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 16px; align-items: start; }
@media (max-width: 960px) { .vfl-ik-raster { grid-template-columns: 1fr; } }
.vfl-ik-arten { display: flex; gap: 8px; flex-wrap: wrap; border: 0; padding: 0; margin: 0 0 12px; }
.vfl-ik-arten label { cursor: pointer; }
.vfl-ik-arten input { position: absolute; opacity: 0; }
.vfl-ik-arten span { display: inline-block; padding: 8px 14px; border: 1.5px solid #C9D4E6; border-radius: 999px; font-weight: 700; font-size: 14px; }
.vfl-ik-arten input:checked + span { background: #0B3B8C; border-color: #0B3B8C; color: #fff; }
.vfl-ik-arten input:focus-visible + span { outline: 3px solid #1D6AE0; outline-offset: 2px; }
.vfl-ik-ablage { border: 2px dashed #C9D4E6; border-radius: 12px; padding: 14px; text-align: center; color: #4A5468; font-size: 14px; background: #F7F9FD; }
.vfl-ik-ablage img { max-width: 100%; max-height: 260px; border-radius: 8px; display: block; margin: 0 auto 8px; }
.vfl-ik-bild:focus-within .vfl-ik-ablage, .vfl-ik-bild:focus .vfl-ik-ablage { border-color: #1D6AE0; }
.vfl-ik-filter { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.vfl-ik-filter a { padding: 6px 12px; border-radius: 999px; background: #EEF2F8; color: #14213D; text-decoration: none; font-size: 13.5px; font-weight: 600; }
.vfl-ik-filter a.ist-aktiv { background: #0B3B8C; color: #fff; }
.vfl-ik-filter b { margin-left: 4px; }
.vfl-ik-eintrag { padding: 0; margin-bottom: 10px; }
.vfl-ik-eintrag summary { display: flex; gap: 12px; align-items: center; padding: 14px 16px; cursor: pointer; list-style: none; }
.vfl-ik-eintrag summary::-webkit-details-marker { display: none; }
.vfl-ik-art { font-size: 22px; }
.vfl-ik-titel { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.vfl-ik-titel small { color: #4A5468; }
.vfl-ik-status { font-size: 12.5px; font-weight: 700; padding: 4px 10px; border-radius: 999px; background: #E7F1FB; color: #0B3B8C; white-space: nowrap; }
.vfl-ik-status--geplant { background: #F9EEDA; color: #7A4B00; }
.vfl-ik-status--umgesetzt, .vfl-ik-status--erledigt { background: #E3F5E8; color: #11592B; }
.vfl-ik-status--abgelehnt { background: #F3F4F6; color: #4A5468; }
.vfl-ik-inhalt { padding: 0 16px 16px; border-top: 1px solid #E4E9F2; }
.vfl-ik-foto { max-width: 100%; max-height: 320px; border-radius: 8px; border: 1px solid #E4E9F2; margin: 8px 0; }
.vfl-ik-technik { font-size: 12.5px; word-break: break-all; }
.vfl-ik-antwort { background: #F7F9FD; border-radius: 10px; padding: 10px 12px; margin: 8px 0; }
.vfl-ik-antwort p { margin: 4px 0 0; }
.vfl-ik-antworten select { min-height: 40px; }
.vfl-ik-form [hidden] { display: none !important; }
