/* FF Vereinsprofil – Designsystem floorball-facts.de V4 (eigenes CSS, da globale Klassen nur bei Nutzung geladen werden) */
.ffvp{
  --ffvp-navy:#0E2A52; --ffvp-orange:#e07645; --ffvp-link:#a8481b; --ffvp-band:#f4f6fa;
  --ffvp-fg:#14213a; --ffvp-muted:#5a6b82; --ffvp-line:#dfe5ee; --ffvp-card:#fff;
  --ffvp-win:#2f8f5b; --ffvp-loss:#c2413a; --ffvp-draw:#9aa4b5;
  --ffvp-head:"Barlow Condensed","Arial Narrow",Arial,sans-serif;
  --ffvp-body:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
  --ffvp-mono:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;
  font-family:var(--ffvp-body); color:var(--ffvp-fg); line-height:1.5; display:grid; grid-template-columns:minmax(0,1fr); gap:2.75rem; min-width:0; max-width:100%;
}
.ffvp *{box-sizing:border-box}
.ffvp-sec{min-width:0}
.ffvp h2{font-family:var(--ffvp-head);font-weight:800;font-size:clamp(1.65rem,3vw,2.1rem);line-height:1.1;margin:0;color:var(--ffvp-fg);text-wrap:balance}
.ffvp-lbl{display:block;font-family:var(--ffvp-mono);font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ffvp-orange);margin-bottom:.2rem}
.ffvp-muted{display:block;color:var(--ffvp-muted);font-size:.8rem}
.ffvp-empty{color:var(--ffvp-muted)}
.ffvp-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;flex-wrap:wrap;margin-bottom:1.25rem}

/* Kennzahlen */
.ffvp-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.75rem}
.ffvp-kpi{border-radius:10px;padding:.8rem 1rem;background:var(--ffvp-band)}
.ffvp-kpi b{display:block;font-family:var(--ffvp-head);font-weight:700;font-size:2.1rem;line-height:1.05;font-variant-numeric:tabular-nums;color:var(--ffvp-navy)}
.ffvp-kpi span{font-family:var(--ffvp-mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ffvp-muted)}
.ffvp-since{margin:.6rem 0 0;font-family:var(--ffvp-mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ffvp-muted)}
.ffvp--dark .ffvp-kpi{background:rgba(255,255,255,.08)}
.ffvp--dark .ffvp-kpi b{color:#fff}
.ffvp--dark .ffvp-kpi span{color:#f2a173}
.ffvp--dark .ffvp-since{color:rgba(255,255,255,.7)}

/* Reiter */
.ffvp-tabs{display:flex;gap:.4rem;flex-wrap:wrap}
.ffvp-tab{font:600 .82rem var(--ffvp-body);padding:.45rem .9rem;border-radius:999px;border:1px solid var(--ffvp-line);background:var(--ffvp-card);color:var(--ffvp-fg);cursor:pointer}
.ffvp-tab[aria-pressed="true"]{background:var(--ffvp-navy);border-color:var(--ffvp-navy);color:#fff}
.ffvp-tab:focus-visible,.ffvp-team:focus-visible,.ffvp-game:focus-visible,.ffvp-strip:focus-visible{outline:3px solid var(--ffvp-orange);outline-offset:2px}

/* Teams */
.ffvp-teams{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.9rem}
.ffvp-team{background:var(--ffvp-card);border:1px solid var(--ffvp-line);border-radius:12px;padding:1rem;display:grid;gap:.75rem;align-content:start;cursor:pointer;transition:border-color .15s}
.ffvp-team:hover{border-color:var(--ffvp-orange)}
.ffvp-team[hidden]{display:none!important}
.ffvp-t-top{display:flex;justify-content:space-between;align-items:flex-start;gap:.6rem}
.ffvp-t-name{font-family:var(--ffvp-head);font-weight:700;font-size:1.35rem;line-height:1.1}
.ffvp-t-league{font-size:.8rem;color:var(--ffvp-muted);margin-top:.15rem}
.ffvp-pos{min-width:3.6rem;text-align:center;border-radius:10px;background:var(--ffvp-band);padding:.4rem .5rem;line-height:1}
.ffvp-pos b{font-family:var(--ffvp-head);font-weight:800;font-size:1.75rem;color:var(--ffvp-navy)}
.ffvp-pos small{display:block;font-family:var(--ffvp-mono);font-size:.62rem;color:var(--ffvp-muted);margin-top:.2rem}
.ffvp-pos.is-first{background:var(--ffvp-orange)}
.ffvp-pos.is-first b,.ffvp-pos.is-first small{color:#fff}
.ffvp-t-row{display:flex;justify-content:space-between;align-items:center;gap:.6rem;font-size:.82rem;color:var(--ffvp-muted);font-variant-numeric:tabular-nums}
.ffvp-form{display:flex;gap:.25rem}
.ffvp-form i{width:1.25rem;height:1.25rem;border-radius:50%;display:grid;place-items:center;font:700 .62rem var(--ffvp-mono);color:#fff;font-style:normal}
.ffvp-f-S{background:var(--ffvp-win)} .ffvp-f-N{background:var(--ffvp-loss)} .ffvp-f-U{background:var(--ffvp-draw)}
.ffvp-t-next{border-top:1px dashed var(--ffvp-line);padding-top:.6rem;font-size:.82rem}
.ffvp-t-next .ffvp-lbl{font-size:.62rem}
.ffvp-t-more{display:none;border-top:1px solid var(--ffvp-line);padding-top:.6rem;font-size:.82rem;gap:.35rem}
.ffvp-team[aria-expanded="true"] .ffvp-t-more{display:grid}
.ffvp-t-more a{color:var(--ffvp-link);font-weight:600}

/* Spielplan-Leiste */
.ffvp-strip{display:flex;gap:.75rem;overflow-x:auto;padding-bottom:.6rem;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}
.ffvp-game{flex:0 0 220px;scroll-snap-align:start;background:var(--ffvp-card);border:1px solid var(--ffvp-line);border-radius:12px;padding:.85rem;display:grid;gap:.25rem;align-content:start;font-size:.82rem;color:var(--ffvp-fg)!important;text-decoration:none!important}
.ffvp-game:hover{border-color:var(--ffvp-orange)}
.ffvp-game.is-done{border-left:4px solid var(--ffvp-draw)}
.ffvp-game.ffvp-r-S{border-left-color:var(--ffvp-win)}
.ffvp-game.ffvp-r-N{border-left-color:var(--ffvp-loss)}
.ffvp-game.is-today{border-color:var(--ffvp-orange);box-shadow:0 0 0 2px rgba(224,118,69,.25)}
.ffvp-game.is-live{border-color:var(--ffvp-orange);background:#fbf1ec}
.ffvp-g-date{font-family:var(--ffvp-mono);font-size:.68rem;letter-spacing:.04em;text-transform:uppercase;color:var(--ffvp-muted)}
.ffvp-game.is-live .ffvp-g-date,.ffvp-game.is-today .ffvp-g-date{color:var(--ffvp-link);font-weight:700}
.ffvp-g-team{font-weight:600}
.ffvp-g-opp{color:var(--ffvp-fg)}
.ffvp-g-res{font-family:var(--ffvp-head);font-weight:800;font-size:1.6rem;line-height:1.1;font-variant-numeric:tabular-nums}
.ffvp-g-res.is-small{font-size:1rem;color:var(--ffvp-loss)}
.ffvp-now{flex:0 0 1.4rem;align-self:stretch;display:grid;place-items:center;width:1.4rem;font-family:var(--ffvp-mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ffvp-orange);writing-mode:vertical-rl;transform:rotate(180deg)}

@media (max-width:1024px){.ffvp-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:520px){.ffvp-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.ffvp-kpi b{font-size:1.75rem}}
@media (prefers-reduced-motion:reduce){.ffvp-team{transition:none}}

/* Version 2: Top-Scorer, Spielerkarte, Mitspielen, Nachbarn */
.ffvp h3{font-family:var(--ffvp-head);font-weight:700;font-size:1.35rem;line-height:1.15;margin:0 0 .4rem;color:var(--ffvp-fg)}
.ffvp-tbl-wrap{overflow-x:auto}
.ffvp-tbl-wrap[hidden]{display:none!important}
.ffvp-tbl{width:100%;border-collapse:collapse;font-size:.9rem;font-variant-numeric:tabular-nums}
.ffvp-tbl th{font-family:var(--ffvp-mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ffvp-muted);text-align:right;padding:.4rem .5rem;border-bottom:2px solid var(--ffvp-line);font-weight:700}
.ffvp-tbl th:nth-child(n+3),.ffvp-tbl td:nth-child(n+3){width:3.75rem}
.ffvp-tbl th:nth-child(-n+2),.ffvp-tbl td:nth-child(-n+2){text-align:left}
.ffvp-tbl td{padding:.55rem .5rem;border-bottom:1px solid var(--ffvp-line);text-align:right;vertical-align:top}
.ffvp-tbl small{display:block;color:var(--ffvp-muted);font-size:.74rem}
.ffvp-rk{font-family:var(--ffvp-mono);color:var(--ffvp-muted);width:2rem}
.ffvp-pts{font-weight:700}
.ffvp-pl{background:none;border:0;padding:0;font:600 .9rem var(--ffvp-body);color:var(--ffvp-link);cursor:pointer;text-decoration:underline dotted;text-underline-offset:3px;text-align:left}
.ffvp-pl:focus-visible{outline:3px solid var(--ffvp-orange);outline-offset:2px}
.ffvp-hint{margin:.5rem 0 0;font-size:.78rem;color:var(--ffvp-muted)}
.ffvp-modal{position:fixed;inset:0;background:rgba(8,18,36,.55);display:grid;place-items:center;padding:1rem;z-index:99999}
.ffvp-modal[hidden]{display:none!important}
.ffvp-modal-card{background:#fff;color:var(--ffvp-fg);border-radius:14px;max-width:440px;width:100%;padding:1.4rem;display:grid;gap:.8rem;max-height:90vh;overflow:auto;font-family:var(--ffvp-body)}
.ffvp-modal-card h3{font-size:1.8rem;margin:0}
.ffvp-m-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}
.ffvp-m-kpis div{background:var(--ffvp-band);border-radius:8px;padding:.5rem;text-align:center}
.ffvp-m-kpis b{display:block;font-family:var(--ffvp-head);font-size:1.6rem;line-height:1.1}
.ffvp-m-kpis span{font-family:var(--ffvp-mono);font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ffvp-muted)}
.ffvp-m-chart{display:flex;align-items:flex-end;gap:4px;height:110px;border-bottom:1px solid var(--ffvp-line);padding-top:16px}
.ffvp-m-bar{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:2px;height:100%;font-family:var(--ffvp-mono);font-size:.6rem;color:var(--ffvp-muted)}
.ffvp-m-bar i{display:block;width:100%;max-width:44px;background:var(--ffvp-navy);border-radius:3px 3px 0 0;min-height:2px}
.ffvp-m-bar.is-cur i{background:var(--ffvp-orange)}
.ffvp-m-axis{display:flex;gap:4px}
.ffvp-m-axis span{flex:1;min-width:0;overflow:hidden;text-align:center;font-family:var(--ffvp-mono);font-size:.58rem;color:var(--ffvp-muted)}
.ffvp-m-close{justify-self:start}
.ffvp-chips{display:flex;flex-wrap:wrap;gap:.4rem}
.ffvp-chips>span,.ffvp-chips>a{font-family:var(--ffvp-mono);font-size:.72rem;border:1px solid var(--ffvp-line);border-radius:6px;padding:.2rem .5rem;color:var(--ffvp-fg)}
.ffvp-chips.is-links>a,.ffvp-chips.is-links>span{font-family:var(--ffvp-body);font-size:.85rem;border-radius:999px;padding:.4rem .85rem;background:var(--ffvp-card);text-decoration:none}
.ffvp-chips.is-links>a:hover{border-color:var(--ffvp-orange)}
.ffvp-chips small{font-family:var(--ffvp-mono);font-size:.68rem;color:var(--ffvp-muted);margin-left:.4rem}
.ffvp-list a,.ffvp-near-sec a{color:var(--ffvp-link)}
.ffvp-btns{display:flex;flex-wrap:wrap;gap:.5rem}
.ffvp-btn{display:inline-flex;align-items:center;font:600 .88rem var(--ffvp-body);padding:.6rem 1rem;border-radius:8px;background:#bf5320;color:#fff!important;text-decoration:none!important;word-break:break-all}
.ffvp-btn.is-ghost{background:transparent;color:var(--ffvp-link)!important;border:1px solid var(--ffvp-line)}
.ffvp-near{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.75rem}
@media (max-width:1100px){.ffvp-near{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:700px){.ffvp-near{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:420px){.ffvp-near{grid-template-columns:1fr}}
.ffvp-club{display:flex;gap:.75rem;align-items:center;background:var(--ffvp-card);border:1px solid var(--ffvp-line);border-radius:12px;padding:.7rem .9rem;text-decoration:none!important;color:var(--ffvp-fg)!important}
.ffvp-club:hover{border-color:var(--ffvp-orange)}
.ffvp-club img,.ffvp-noimg{width:48px;height:48px;border-radius:8px;object-fit:contain;background:#fff;border:1px solid var(--ffvp-line);flex:0 0 48px}
.ffvp-club b{display:block;font-size:.86rem;line-height:1.25;overflow-wrap:anywhere}
.ffvp-club{min-width:0}
.ffvp-h3{margin-top:1.5rem!important}

/* 1.2.0: Teams | Scorer nebeneinander, Scorer-Karte wie im Partiennavigator, Mitspielen kompakt */
.ffvp-split{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:1.5rem;align-items:start}
.ffvp-split-main{min-width:0}
.ffvp-split-main .ffvp-teams{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.ffvp-split-side{position:sticky;top:96px;min-width:0}
.ffvp-sc{background:var(--ffvp-card);border:1px solid var(--ffvp-line);border-radius:12px;padding:.9rem 1rem;display:grid;gap:.6rem;box-shadow:0 1px 3px rgba(14,42,82,.06)}
.ffvp-sc-head{display:flex;justify-content:space-between;align-items:center;gap:.5rem}
.ffvp .ffvp-sc-head h2{font-family:var(--ffvp-mono);font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ffvp-navy)}
.ffvp-pill{font-family:var(--ffvp-mono);font-size:.64rem;font-weight:700;color:var(--ffvp-navy);background:#e8eef7;border-radius:999px;padding:.15rem .55rem;white-space:nowrap}
.ffvp-tabs.is-small .ffvp-tab{font-size:.75rem;padding:.3rem .7rem}
.ffvp-sc-tbl{font-size:.82rem}
.ffvp-sc-tbl th{font-size:.6rem;padding:.3rem .3rem;border-bottom:1px solid var(--ffvp-line)}
.ffvp-sc-tbl td{padding:.45rem .3rem;vertical-align:middle;position:relative}
.ffvp-sc-tbl th:nth-child(n+3),.ffvp-sc-tbl td:nth-child(n+3){width:2rem;text-align:center}
.ffvp-sc-tbl .ffvp-rk{width:1.6rem;font-family:var(--ffvp-head);font-weight:700;font-size:.95rem;color:var(--ffvp-muted)}
.ffvp-sc-tbl .ffvp-rk.is-top{color:var(--ffvp-orange)}
.ffvp-sc-tbl .ffvp-pl{font-size:.84rem;color:var(--ffvp-fg);text-decoration:none;font-weight:600;line-height:1.2}
.ffvp-sc-tbl .ffvp-pl:hover{color:var(--ffvp-link);text-decoration:underline}
.ffvp-sc-tbl small{font-size:.7rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}
.ffvp-sc-bar{display:block;height:2px;margin-top:.25rem;border-radius:2px;background:linear-gradient(90deg,var(--ffvp-orange),#f2a173);font-style:normal}
.ffvp-goals{color:#1f5fae;font-weight:700}
.ffvp-sc-tbl .ffvp-pts{font-weight:800;color:var(--ffvp-navy)}
.ffvp-sc-tbl tbody tr:hover td{background:#f7f9fc}
.ffvp-sc-legend{margin:0;font-size:.68rem;line-height:1.4;color:var(--ffvp-muted);border-top:1px solid var(--ffvp-line);padding-top:.5rem}
.ffvp-join{display:grid;grid-template-columns:auto minmax(0,1.6fr) minmax(0,1fr);background:var(--ffvp-card);border:1px solid var(--ffvp-line);border-radius:12px}
.ffvp-join-col{padding:.9rem 1.1rem;display:grid;gap:.45rem;align-content:start;min-width:0}
.ffvp-join-col+.ffvp-join-col{border-left:1px solid var(--ffvp-line)}
.ffvp-join-col .ffvp-lbl{margin:0}
.ffvp-join-col .ffvp-chips{max-width:220px}
.ffvp-list{list-style:none;margin:0;padding:0;display:grid;gap:.3rem;font-size:.85rem;line-height:1.35}
.ffvp-list a{font-weight:600}
.ffvp-list .ffvp-muted{display:inline;font-size:.78rem}
.ffvp-join .ffvp-btn{padding:.45rem .8rem;font-size:.82rem}
.ffvp-join-sec .ffvp-head{margin-bottom:.75rem}
@media (max-width:1100px){.ffvp-split{grid-template-columns:1fr}.ffvp-split-side{position:static}}
@media (max-width:900px){.ffvp-join{grid-template-columns:1fr}.ffvp-join-col+.ffvp-join-col{border-left:0;border-top:1px solid var(--ffvp-line)}.ffvp-join-col .ffvp-chips{max-width:none}}

/* 1.2.1: Tabellenstil des Themes neutralisieren (Rahmen, Zellfuellung, Abstand) */
.ffvp table.ffvp-tbl{border:0!important;margin:0!important;background:transparent!important}
.ffvp table.ffvp-tbl th,.ffvp table.ffvp-tbl td{border-left:0!important;border-right:0!important;border-top:0!important;background:transparent!important}
.ffvp table.ffvp-tbl td{border-bottom:1px solid var(--ffvp-line)!important}
.ffvp table.ffvp-tbl th{border-bottom:1px solid var(--ffvp-line)!important}
.ffvp table.ffvp-tbl tbody tr:last-child td{border-bottom:0!important}
.ffvp table.ffvp-sc-tbl tbody tr:hover td{background:#f7f9fc!important}

/* 1.3.0: Fakten und Vereinsgeschichte */
.ffvp-split2{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:1.5rem;align-items:start}
.ffvp-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
.ffvp-fact{background:var(--ffvp-card);border:1px solid var(--ffvp-line);border-radius:12px;padding:.85rem 1rem;display:grid;gap:.2rem;align-content:start}
.ffvp-fact .ffvp-lbl{margin:0;font-size:.62rem}
.ffvp-fact b{font-family:var(--ffvp-head);font-weight:800;font-size:2rem;line-height:1.05;color:var(--ffvp-navy);font-variant-numeric:tabular-nums}
.ffvp-fact .ffvp-muted{font-size:.78rem;line-height:1.35}
.ffvp-hist{background:var(--ffvp-card);border:1px solid var(--ffvp-line);border-radius:12px;padding:1rem 1rem .8rem}
.ffvp-hist-svg{display:block;width:100%;height:auto}
.ffvp-hist-axis{stroke:var(--ffvp-line);stroke-width:1}
.ffvp-hist-bar rect{fill:var(--ffvp-navy);transition:fill .15s}
.ffvp-hist-bar.is-cur rect{fill:var(--ffvp-orange)}
.ffvp-hist-bar:hover rect,.ffvp-hist-bar:focus rect,.ffvp-hist-bar.is-sel rect{fill:#1f5fae}
.ffvp-hist-bar.is-cur:hover rect,.ffvp-hist-bar.is-cur.is-sel rect{fill:#c75f30}
.ffvp-hist-bar{cursor:pointer;outline:none}
.ffvp-hist-v{font:700 11px var(--ffvp-mono);fill:var(--ffvp-fg)}
.ffvp-hist-x{font:500 10px var(--ffvp-mono);fill:var(--ffvp-muted)}
.ffvp-hist .ffvp-muted{margin:.4rem 0 0;font-size:.74rem}
.ffvp-hist-detail{font-size:.84rem;font-weight:600;color:var(--ffvp-fg);min-height:1.2em;margin-top:.25rem}
@media (max-width:1000px){.ffvp-split2{grid-template-columns:1fr}}
@media (max-width:520px){.ffvp-facts{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.ffvp-hist-bar rect{transition:none}}

/* 1.3.2: Spielgemeinschaften */
.ffvp-sg{display:inline-block;font-family:var(--ffvp-mono);font-size:.6rem;font-weight:700;letter-spacing:.06em;color:#fff;background:#1f5fae;border-radius:4px;padding:.1rem .35rem;margin-left:.4rem;vertical-align:middle;line-height:1.3}
.ffvp-t-sgname{font-size:.72rem;color:var(--ffvp-muted);margin-top:.1rem}
.ffvp-sg-note{margin:.8rem 0 0;font-size:.78rem;color:var(--ffvp-muted);max-width:90ch}
.ffvp-sg-note .ffvp-sg{margin-left:0;margin-right:.3rem}

/* 1.4.0: Verbandsseite [ff_verband] */
.ffvp-count{font-family:var(--ffvp-mono);font-size:.75rem;font-weight:700;color:var(--ffvp-muted);vertical-align:middle;margin-left:.3rem}
.ffvp-kpi small{display:block;font-size:.72rem;color:var(--ffvp-muted);margin-top:.15rem}
.ffvp--dark .ffvp-kpi small{color:rgba(255,255,255,.7)}
.ffvp-vb-kpi{display:grid;gap:1rem}
.ffvp-vb-kpi .ffvp-kpis{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
.ffvp-vb-curve{margin:0;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:1rem}
.ffvp-vb-curve svg{width:100%;height:64px;display:block}
.ffvp-vb-curve .a{fill:rgba(224,118,69,.18)}
.ffvp-vb-curve .l{fill:none;stroke:var(--ffvp-orange);stroke-width:2.5;vector-effect:non-scaling-stroke;stroke-linejoin:round}
.ffvp-vb-curve circle{fill:var(--ffvp-orange)}
.ffvp-vb-curve figcaption{display:grid;text-align:right;font-family:var(--ffvp-mono);font-size:.64rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ffvp-muted)}
.ffvp-vb-curve figcaption b{font-family:var(--ffvp-head);font-size:1.3rem;letter-spacing:0;text-transform:none;color:var(--ffvp-navy);white-space:nowrap}
.ffvp--dark .ffvp-vb-curve figcaption{color:#f2a173}
.ffvp--dark .ffvp-vb-curve figcaption b{color:#fff}
.ffvp--dark .ffvp-vb-curve .a{fill:rgba(224,118,69,.28)}
/* Karte */
.ffvp-vb-map{display:grid;gap:.5rem;align-content:start}
.ffvp-vb-svg{width:100%;max-width:420px;height:auto;justify-self:center;background:var(--ffvp-band);border-radius:16px;padding:10px}
.ffvp-vb-svg .b circle{fill:#c3cddc}
.ffvp-vb-svg .f circle{fill:var(--ffvp-orange);fill-opacity:.85;stroke:#fff;stroke-width:1;transition:fill .15s}
.ffvp-vb-svg .f a:hover circle,.ffvp-vb-svg .f a:focus circle{fill:var(--ffvp-navy);fill-opacity:1}
.ffvp-vb-svg .o circle:first-child{fill:none;stroke:var(--ffvp-navy);stroke-width:2}
.ffvp-vb-svg .o circle+circle{fill:var(--ffvp-navy)}
/* Vereine */
.ffvp-vb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.75rem}
.ffvp-vb-club>span{display:grid;gap:.1rem;min-width:0}
.ffvp-vb-club b{font-size:.9rem;line-height:1.25;overflow-wrap:anywhere}
.ffvp-vb-club.is-quiet{opacity:.72}
.ffvp-vb-club:hover{border-color:var(--ffvp-orange)}
.ffvp-vb-lead{font-style:normal;justify-self:start;font-family:var(--ffvp-mono);font-size:.6rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#fff;background:var(--ffvp-orange);border-radius:4px;padding:.1rem .4rem;margin-top:.15rem}
.ffvp-vb-club[hidden]{display:none!important}
/* Karte und Vereine nebeneinander */
.ffvp-vb-duo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:1.75rem;align-items:start}
@media (max-width:1000px){.ffvp-vb-duo{grid-template-columns:1fr}}
/* Ligen */
.ffvp-vb-shared{margin:-.2rem 0 1rem}
.ffvp-vb-shared a{color:var(--ffvp-link);font-weight:600}
.ffvp-vb-leagues h2{margin-bottom:1rem}
.ffvp-vb-lgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem}
.ffvp-vb-league{background:var(--ffvp-card);border:1px solid var(--ffvp-line);border-radius:12px;padding:.9rem 1rem .8rem;display:grid;gap:.6rem;align-content:start}
.ffvp-vb-league[hidden]{display:none!important}
.ffvp-vb-league header b{display:block;font-family:var(--ffvp-head);font-weight:700;font-size:1.25rem;line-height:1.1}
.ffvp-vb-league header .ffvp-muted{font-family:var(--ffvp-mono);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;margin-top:.2rem}
.ffvp-vb-top{list-style:none;margin:0;padding:0;display:grid;gap:.25rem}
.ffvp-vb-top li{display:grid;grid-template-columns:1.4rem minmax(0,1fr) auto;gap:.5rem;align-items:center;font-size:.86rem;padding:.25rem 0;border-bottom:1px solid var(--ffvp-line)}
.ffvp-vb-top li:last-child{border-bottom:0}
.ffvp-vb-pos{font-family:var(--ffvp-head);font-weight:800;font-size:1.05rem;color:var(--ffvp-muted)}
.ffvp-vb-top li:first-child .ffvp-vb-pos{color:var(--ffvp-orange)}
.ffvp-vb-team{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}
.ffvp-vb-team a{color:var(--ffvp-fg);text-decoration:none}
.ffvp-vb-team a:hover{color:var(--ffvp-link);text-decoration:underline}
.ffvp-vb-pts{font-family:var(--ffvp-head);font-weight:800;font-size:1.05rem;color:var(--ffvp-navy);font-variant-numeric:tabular-nums}
.ffvp-vb-pts small{font-family:var(--ffvp-mono);font-size:.55rem;font-weight:700;color:var(--ffvp-muted)}
.ffvp-vb-prog{height:4px;border-radius:4px;background:var(--ffvp-band);overflow:hidden}
.ffvp-vb-prog i{display:block;height:100%;background:linear-gradient(90deg,var(--ffvp-navy),#1f5fae)}
.ffvp-vb-league footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.3rem .8rem;font-size:.74rem;color:var(--ffvp-muted)}
.ffvp-vb-league footer a{color:var(--ffvp-link);font-weight:600;text-decoration:none}
.ffvp-vb-league footer a:hover{text-decoration:underline}
.ffvp-vb-more{margin-top:.9rem;cursor:pointer}
.ffvp-vb-leagues .ffvp-chips small{font-family:var(--ffvp-mono);font-size:.65rem;color:var(--ffvp-muted);margin-left:.35rem}
.ffvp-vb-leagues h3{margin-top:1.4rem}
@media (max-width:1100px){.ffvp-vb-lgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.ffvp-vb-lgrid{grid-template-columns:1fr}}
/* Kontakt */
.ffvp-vb-contact .ffvp-join{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr)}
.ffvp-vb-contact h2{margin-bottom:.75rem}
.ffvp-vb-adr{margin:0;font-size:.88rem;line-height:1.45}
@media (max-width:700px){.ffvp-vb-contact .ffvp-join{grid-template-columns:1fr}}
/* Verbaende im Vergleich */
.ffvp-vb-cmp h2,.ffvp-vb-subs h2,.ffvp-vb-map h2{margin-bottom:1rem}
.ffvp-vb-assoc{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.75rem}
.ffvp-vb-a{display:flex;gap:.75rem;align-items:center;background:var(--ffvp-card);border:1px solid var(--ffvp-line);border-radius:12px;padding:.75rem .9rem;text-decoration:none!important;color:var(--ffvp-fg)!important;transition:border-color .15s}
.ffvp-vb-a:hover{border-color:var(--ffvp-orange)}
.ffvp-vb-a img,.ffvp-vb-a .ffvp-noimg{width:44px;height:44px;flex:0 0 44px;border-radius:8px;object-fit:contain;background:#fff;border:1px solid var(--ffvp-line)}
.ffvp-vb-a-in{display:grid;gap:.15rem;min-width:0;flex:1}
.ffvp-vb-a-in>b{font-family:var(--ffvp-head);font-weight:800;font-size:1.2rem;line-height:1}
.ffvp-vb-a-in .ffvp-muted{font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ffvp-vb-a-bar{height:4px;border-radius:4px;background:var(--ffvp-band);overflow:hidden;margin-top:.25rem}
.ffvp-vb-a-bar i{display:block;height:100%;background:var(--ffvp-navy)}
.ffvp-vb-a-fig{font-size:.72rem;color:var(--ffvp-muted)}
.ffvp-vb-a-fig b{color:var(--ffvp-fg)}
.ffvp-vb-a.is-cur{border:2px solid var(--ffvp-orange);background:#fff7f2}
.ffvp-vb-a.is-cur .ffvp-vb-a-bar i{background:var(--ffvp-orange)}
@media (prefers-reduced-motion:reduce){.ffvp-vb-svg .f circle,.ffvp-vb-a{transition:none}}
/* 1.4.1: Vorsaison, Hero-Breite */
.ffvp-vb-pre{margin:0 0 -.3rem;font-size:.58rem;color:var(--ffvp-muted)}
.ffvp-vb-top.is-pre .ffvp-vb-pos,.ffvp-vb-top.is-pre .ffvp-vb-pts{visibility:hidden}
.ffvp-vb-top.is-pre li{grid-template-columns:0 minmax(0,1fr) 0;gap:0}
.ffvp-vb-top.is-pre .ffvp-vb-team{font-weight:500}
.ffvp-vb.ffvp--dark{width:min(660px,100%);min-width:min(660px,calc(100vw - 32px))}
.ffvp-vb.ffvp--dark .ffvp-vb-kpi .ffvp-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:520px){.ffvp-vb.ffvp--dark .ffvp-vb-kpi .ffvp-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* 1.4.2: Hero-Kennzahlen volle Spaltenbreite (Elementor-Widget streckt sich), Vergleich */
.elementor-widget:has(.ffvp-vb.ffvp--dark){align-self:stretch!important;width:100%!important;max-width:100%!important}
.ffvp-vb.ffvp--dark{width:100%;min-width:0}
.ffvp-vb-cmp .ffvp-vb-a{box-shadow:0 2px 8px rgba(14,42,82,.06)}
/* 1.5.0: Verbandsebenen, Vereinssuche in der Liste */
.ffvp-vb-path{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;font-family:var(--ffvp-mono);font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.ffvp-vb-path-l{color:var(--ffvp-muted);margin-right:.2rem}
.ffvp-vb-path a{color:var(--ffvp-link);text-decoration:none;border-bottom:1px solid transparent}
.ffvp-vb-path a:hover{border-bottom-color:currentColor}
.ffvp-vb-path i{font-style:normal;color:var(--ffvp-muted)}
.ffvp-vb-path span[aria-current]{color:var(--ffvp-fg)}
.ffvp--dark .ffvp-vb-path-l,.ffvp--dark .ffvp-vb-path i{color:rgba(255,255,255,.6)}
.ffvp--dark .ffvp-vb-path a{color:#f2a173}
.ffvp--dark .ffvp-vb-path span[aria-current]{color:#fff}
.ffvp-vb-tools{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem}
.ffvp-vb-find input{font:500 .85rem var(--ffvp-body);width:230px;max-width:100%;padding:.48rem .8rem .48rem 2.1rem!important;border:1px solid var(--ffvp-line)!important;border-radius:999px!important;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%235a6b82' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='7' cy='7' r='5'/%3E%3Cpath d='m11 11 3.5 3.5'/%3E%3C/svg%3E") no-repeat 11px center!important;color:var(--ffvp-fg);box-shadow:none!important}
.ffvp-vb-find input:focus{outline:none;border-color:var(--ffvp-orange)!important;box-shadow:0 0 0 3px rgba(224,118,69,.2)!important}
.ffvp-vb-none{margin:.6rem 0 0;font-size:.85rem;color:var(--ffvp-muted)}
.ffvp-vb-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;margin-top:.8rem}
.ffvp-vb-foot .ffvp-hint{margin:0}
.ffvp-vb-finder{font-weight:600;font-size:.86rem;color:var(--ffvp-link)!important;text-decoration:none}
.ffvp-vb-finder:hover{text-decoration:underline}
@media (max-width:640px){.ffvp-vb-tools,.ffvp-vb-find,.ffvp-vb-find input{width:100%}}
/* 1.5.1: Mitgliedsverbaende neben der Karte */
.ffvp-vb-duo .ffvp-vb-assoc{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
/* 1.6.0: Vereine ohne Saisonmanager-Daten */
.ffvp-basic .ffvp-kpis{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.ffvp-basic .ffvp-kpi b{font-size:1.5rem;line-height:1.15;overflow-wrap:anywhere}
.ffvp-basic .ffvp-kpi b a{color:inherit;text-decoration:none;border-bottom:2px solid var(--ffvp-orange)}
.ffvp-basic .ffvp-kpi span{display:block;margin-top:.2rem}
.ffvp-basic-card{background:var(--ffvp-card);border:1px solid var(--ffvp-line);border-left:4px solid var(--ffvp-orange);border-radius:12px;padding:1.1rem 1.25rem;display:grid;gap:.8rem;max-width:760px}
.ffvp-basic-card p{margin:0;font-size:.95rem}
.ffvp-basic-fix{font-size:.8rem;color:var(--ffvp-link)!important;text-decoration:underline;text-underline-offset:3px}
.ffvp-vb-svg .b a.p circle{fill:#9aa7b8;stroke:#fff;stroke-width:.8;transition:fill .15s}
.ffvp-vb-svg .b a.p:hover circle,.ffvp-vb-svg .b a.p:focus circle{fill:var(--ffvp-navy)}
/* 1.7.0: Lizenzspieler je Verband */
.ffvp-vb-lic h2{margin-bottom:1rem}
.ffvp-vb-lic-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:1.5rem;align-items:start}
.ffvp-vb-lic-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
.ffvp-vb-lic-kpis .ffvp-kpi:first-child{grid-column:1/-1;background:var(--ffvp-navy)}
.ffvp-vb-lic-kpis .ffvp-kpi:first-child b{color:#fff;font-size:2.6rem}
.ffvp-vb-lic-kpis .ffvp-kpi:first-child span{color:#f2a173}
.ffvp-vb-lic-kpis .ffvp-kpi:first-child small{color:rgba(255,255,255,.75)}
.ffvp-vb-pyr{margin:0;background:var(--ffvp-card);border:1px solid var(--ffvp-line);border-radius:14px;padding:1rem 1.1rem .9rem;display:grid;gap:.35rem}
.ffvp-vb-pyr-head,.ffvp-vb-pyr-row{display:grid;grid-template-columns:minmax(0,1fr) 4.2rem minmax(0,1fr);align-items:center}
.ffvp-vb-pyr-head{font-family:var(--ffvp-mono);font-size:.62rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ffvp-muted);margin-bottom:.2rem}
.ffvp-vb-pyr-head span{text-align:center}
.ffvp-vb-pyr-head .m{text-align:right;color:var(--ffvp-navy);padding-right:.5rem}
.ffvp-vb-pyr-head .f{text-align:left;color:var(--ffvp-orange);padding-left:.5rem}
.ffvp-vb-pyr-side{position:relative;height:22px}
.ffvp-vb-pyr-side i{position:absolute;top:0;bottom:0;border-radius:4px}
.ffvp-vb-pyr-side.m i{right:0;background:var(--ffvp-navy);border-radius:4px 0 0 4px}
.ffvp-vb-pyr-side.f i{left:0;background:var(--ffvp-orange);border-radius:0 4px 4px 0}
.ffvp-vb-pyr-side em{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--ffvp-fg);opacity:.55;border-radius:1px}
.ffvp-vb-pyr-side .v{position:absolute;top:50%;transform:translateY(-50%);font-family:var(--ffvp-mono);font-size:.68rem;font-weight:700;color:var(--ffvp-muted);font-variant-numeric:tabular-nums}
.ffvp-vb-pyr-side.m .v{left:0}
.ffvp-vb-pyr-side.f .v{right:0}
.ffvp-vb-pyr-age{text-align:center;font-family:var(--ffvp-mono);font-size:.7rem;font-weight:700;color:var(--ffvp-fg);white-space:nowrap}
.ffvp-vb-pyr figcaption{margin-top:.5rem}
@media (max-width:900px){.ffvp-vb-lic-grid{grid-template-columns:1fr}}
/* 1.7.1: Karte mit Umriss und Bundeslaendern; Pyramidenwerte am Balken */
.ffvp-vb-svg .st path{fill:#fff;stroke:#c9d3e1;stroke-width:.7;stroke-linejoin:round}
.ffvp-vb-svg .st path.own{fill:#fde7db;stroke:#f2b393}
.ffvp-vb-svg .de{fill:none;stroke:#8fa0b8;stroke-width:1.3;stroke-linejoin:round}
.ffvp-vb-pyr-side.m .v{left:auto}
.ffvp-vb-pyr-side.f .v{right:auto}
.ffvp-vb-svg .st a.lnk path{cursor:pointer;transition:fill .15s}
.ffvp-vb-svg .st a.lnk:hover path,.ffvp-vb-svg .st a.lnk:focus path{fill:#e3edf9;stroke:#9fb3cc}
.ffvp-vb-svg .st a.lnk:focus{outline:none}
/* 1.8.0: Verband V2 - Spiele der Woche, Top-Scorer, bundesweit, Schiris je Saison */
.ffvp-vb-week h2,.ffvp-vb-scorers h2,.ffvp-vb-nat h2,.ffvp-vb-refs h2{margin-bottom:1rem}
.ffvp-vb-days{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:.9rem;align-items:start}
.ffvp-vb-day{background:var(--ffvp-card);border:1px solid var(--ffvp-line);border-radius:12px;padding:.75rem .85rem}
.ffvp-vb-day.is-today{border-color:var(--ffvp-orange);box-shadow:0 0 0 1px var(--ffvp-orange) inset}
.ffvp .ffvp-vb-day h3{font-family:var(--ffvp-mono);font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ffvp-orange);margin:0 0 .4rem}
.ffvp-vb-day ul{list-style:none;margin:0;padding:0;display:grid}
.ffvp-vb-day li[hidden]{display:none!important}
.ffvp-vb-day a{display:grid;grid-template-columns:3.6rem minmax(0,1fr) auto;gap:.6rem;align-items:center;padding:.45rem 0;border-top:1px solid var(--ffvp-line);text-decoration:none!important;color:var(--ffvp-fg)!important}
.ffvp-vb-day li:first-child a{border-top:0}
.ffvp-vb-day a:hover .ffvp-vb-g-t b{color:var(--ffvp-link)}
.ffvp-vb-g-s{font-family:var(--ffvp-mono);font-size:.78rem;color:var(--ffvp-muted);text-align:center}
.ffvp-vb-g-s.is-done{font-family:var(--ffvp-head);font-weight:800;font-size:1.15rem;color:var(--ffvp-navy)}
.ffvp-vb-g-s em{font-style:normal;font-weight:700;font-size:.62rem;color:#fff;background:#c2413a;border-radius:4px;padding:.1rem .35rem;letter-spacing:.06em;text-transform:uppercase}
.ffvp-vb-g-t{display:grid;min-width:0}
.ffvp-vb-g-t b{font-size:.84rem;font-weight:600;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ffvp-vb-g-l{font-family:var(--ffvp-mono);font-size:.6rem;color:var(--ffvp-muted);max-width:7.5rem;text-align:right;line-height:1.25}
.ffvp-vb-wmore{margin-top:.9rem;cursor:pointer}
.ffvp-vb-scorers{max-width:760px}
.ffvp-vb-scorers .ffvp-sc-tbl{width:100%}
.ffvp-vb-natgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.75rem}
.ffvp-vb-natc{display:grid;gap:.35rem;align-content:start;background:linear-gradient(160deg,#0E2A52,#173a6b);border-radius:12px;padding:.85rem 1rem;text-decoration:none!important;color:#fff!important;transition:transform .15s}
.ffvp-vb-natc:hover{transform:translateY(-2px)}
.ffvp-vb-natl{font-family:var(--ffvp-mono);font-size:.62rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#f2a173}
.ffvp-vb-natt{display:flex;justify-content:space-between;gap:.6rem;align-items:baseline;border-top:1px solid rgba(255,255,255,.12);padding-top:.3rem}
.ffvp-vb-natt b{font-size:.88rem;font-weight:600}
.ffvp-vb-natt em{font-style:normal;font-family:var(--ffvp-head);font-weight:800;font-size:1.05rem;white-space:nowrap}
.ffvp-vb-rbars{display:flex;align-items:flex-end;gap:.6rem;height:190px;padding:0 .2rem;max-width:640px}
.ffvp-vb-rbar{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:.25rem}
.ffvp-vb-rbar i{display:block;width:100%;max-width:56px;background:var(--ffvp-navy);border-radius:6px 6px 2px 2px}
.ffvp-vb-rbar.is-cur i{background:var(--ffvp-orange)}
.ffvp-vb-rbar b{font-family:var(--ffvp-head);font-weight:800;font-size:1.1rem;color:var(--ffvp-navy)}
.ffvp-vb-rbar span{font-family:var(--ffvp-mono);font-size:.64rem;color:var(--ffvp-fg)}
.ffvp-vb-rbar small{font-family:var(--ffvp-mono);font-size:.58rem;color:var(--ffvp-muted)}
@media (prefers-reduced-motion:reduce){.ffvp-vb-natc{transition:none}.ffvp-vb-natc:hover{transform:none}}
.ffvp-vb-pair .ffvp-vb-scorers{max-width:none}
/* 1.8.2: Spiele der Woche breiter, Teamnamen lesbar */
.ffvp-vb-days{grid-template-columns:repeat(auto-fill,minmax(min(100%,430px),1fr))}
.ffvp-vb-day a{grid-template-columns:3.4rem minmax(0,1fr) 8.5rem}
.ffvp-vb-g-l{max-width:none}
@media (max-width:520px){.ffvp-vb-day a{grid-template-columns:3rem minmax(0,1fr)}.ffvp-vb-g-l{grid-column:2;text-align:left}}
