/* FF Vereinsprofil – Spielorte des Wochenendes */
.ffwk{--wk-navy:#0E2A52;--wk-orange:#e07645;--wk-ended:#6b7f99;--wk-band:#f4f6fa;position:relative}
.ffwk h2{margin:.15em 0 .3em}
.ffwk-lbl{display:block;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--wk-orange)}
.ffwk-meta{margin:0 0 14px;color:#4a5a70;font-size:15px}
.ffwk-body{display:grid;gap:20px}
.ffwk.has-list .ffwk-body{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:start}
@media (max-width:860px){.ffwk.has-list .ffwk-body{grid-template-columns:1fr}}
.ffwk-mapwrap{position:relative;background:var(--wk-band);border-radius:16px;padding:10px;display:flex;justify-content:center}
.ffwk-map{display:block;width:100%;max-width:600px;height:auto;max-height:640px;overflow:hidden}
.ffwk-states path{fill:#e8edf3;stroke:#fff;stroke-linejoin:round}
.ffwk-states.is-crop path.nb{fill:#eef1f5;opacity:.6}
.ffwk-states.is-crop path.own{fill:#fde7db;stroke:#f2b393}
.ffwk-de{fill:none;stroke:#c9d3e1}
.ffwk-v{cursor:pointer}
.ffwk-core{fill:var(--wk-orange);stroke:#fff;transition:fill .2s}
.ffwk-v.is-planned .ffwk-core{fill:var(--wk-navy)}
.ffwk-v.is-ended .ffwk-core{fill:var(--wk-ended)}
.ffwk-halo{transform-box:fill-box;transform-origin:center;animation:ffwk-breathe 3.2s ease-in-out infinite}
.ffwk-v.is-live .ffwk-halo{animation:ffwk-pulse 1.4s ease-out infinite}
.ffwk-v.is-ended .ffwk-halo{opacity:.35;animation:none}
.ffwk-v:nth-child(3n+1) .ffwk-halo{animation-delay:-1.1s}
.ffwk-v:nth-child(3n+2) .ffwk-halo{animation-delay:-2.2s}
@keyframes ffwk-breathe{0%,100%{opacity:.45;transform:scale(.85)}50%{opacity:1;transform:scale(1.15)}}
@keyframes ffwk-pulse{0%{opacity:1;transform:scale(.6)}100%{opacity:0;transform:scale(2.2)}}
@media (prefers-reduced-motion:reduce){.ffwk-halo,.ffwk-v.is-live .ffwk-halo{animation:none;opacity:.8}.ffwk-v.is-ended .ffwk-halo{opacity:.4}}
.ffwk-v:focus{outline:none}
.ffwk-v:focus .ffwk-core,.ffwk-v:hover .ffwk-core,.ffwk-v.is-hl .ffwk-core{stroke:var(--wk-navy)}
.ffwk-v.is-planned:focus .ffwk-core,.ffwk-v.is-planned:hover .ffwk-core,.ffwk-v.is-planned.is-hl .ffwk-core{stroke:var(--wk-orange)}
/* Tooltip */
.ffwk-tip{position:absolute;z-index:20;width:min(340px,calc(100% - 8px));max-height:360px;overflow:auto;background:#fff;border-radius:12px;box-shadow:0 10px 30px rgba(14,42,82,.22);padding:12px 14px;font-size:14px;line-height:1.35;color:#1d2b3f}
.ffwk-tip[hidden]{display:none}
.ffwk-tip-h{display:flex;flex-direction:column;margin:2px 0 6px}
.ffwk-tip-h+.ffwk-tip-d{margin-top:0}
.ffwk-tip-h span{color:#5d6b80;font-size:13px}
.ffwk-tip > .ffwk-tip-h ~ .ffwk-tip-h{border-top:1px solid #e5eaf1;padding-top:8px;margin-top:8px}
.ffwk-tip-d{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--wk-orange);margin:8px 0 2px}
.ffwk-g{display:grid;grid-template-columns:42px 1fr auto;gap:8px;align-items:center;padding:4px 6px;margin:0 -6px;border-radius:6px;color:inherit;text-decoration:none}
a.ffwk-g:hover,a.ffwk-g:focus{background:var(--wk-band);outline:none}
.ffwk-g-t{color:#5d6b80;font-variant-numeric:tabular-nums}
.ffwk-g-m{display:grid;gap:3px;min-width:0}
.ffwk-g-m small{display:block;color:#8a96a8;font-size:11px;padding-left:30px}
.ffwk-team{display:flex;align-items:center;gap:8px;min-width:0}
.ffwk-tn{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ffwk-logo{flex:0 0 22px;width:22px;height:22px;object-fit:contain;border-radius:4px;background:#fff}
.ffwk-logo.is-ph{display:inline-flex;align-items:center;justify-content:center;background:#e8edf3;color:#0E2A52;font-size:9px;font-weight:800;letter-spacing:.02em;border-radius:50%}
.ffwk-tip{width:min(380px,calc(100% - 8px))}
.ffwk-g-r{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.ffwk-g-r em{font-style:normal;font-size:10px;font-weight:800;color:#fff;background:var(--wk-orange);border-radius:4px;padding:1px 4px;margin-left:5px;vertical-align:1px}
.ffwk-g.is-live .ffwk-g-r{color:var(--wk-orange)}
/* List */
.ffwk-list ol{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.ffwk-li{all:unset;box-sizing:border-box;display:grid;grid-template-columns:12px 1fr auto;grid-template-rows:auto auto;column-gap:10px;width:100%;padding:10px 12px;border-radius:10px;background:#fff;border:1px solid #e5eaf1;cursor:pointer}
.ffwk-li:hover,.ffwk-li:focus-visible{border-color:var(--wk-orange);box-shadow:0 2px 10px rgba(14,42,82,.08)}
.ffwk-li b{grid-column:2;font-weight:700;color:var(--wk-navy)}
.ffwk-sub{grid-column:2;color:#5d6b80;font-size:13px}
.ffwk-n{grid-column:3;grid-row:1/3;align-self:center;font-weight:800;font-size:18px;color:var(--wk-navy);font-variant-numeric:tabular-nums}
.ffwk-dot{grid-row:1/3;align-self:center;width:10px;height:10px;border-radius:50%;background:var(--wk-navy);box-shadow:0 0 0 3px rgba(224,118,69,.25)}
.ffwk-dot.is-live{background:var(--wk-orange);box-shadow:0 0 0 4px rgba(224,118,69,.35)}
.ffwk-dot.is-ended{background:var(--wk-ended);box-shadow:none}
.ffwk-all{all:unset;cursor:pointer;margin-top:10px;font-weight:700;color:#a8481b}
.ffwk-all:hover,.ffwk-all:focus-visible{text-decoration:underline}
.ffwk-empty{margin:12px 0 0;font-weight:600;color:var(--wk-navy)}
.ffwk-foot{margin-top:10px}
/* Verband: map left of "Spiele dieser Woche" */
.ffvp-vb-wkduo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:1.75rem;align-items:start}
.ffvp-vb-wkduo .ffwk-map{max-height:520px}
.ffvp-vb-wkduo .ffvp-vb-days{grid-template-columns:1fr}
@media (max-width:1000px){.ffvp-vb-wkduo{grid-template-columns:1fr}}
.ffwk-tip a.ffwk-g,.ffwk-tip a.ffwk-g:visited{color:#1d2b3f!important;text-decoration:none!important}
.ffwk-tip a.ffwk-g:hover .ffwk-tn,.ffwk-tip a.ffwk-g:focus .ffwk-tn{color:#a8481b}
/* Tabs for game operations */
.ffwk-switch{position:relative}
.ffwk-tabs{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 16px}
.ffwk-tab{all:unset;box-sizing:border-box;cursor:pointer;padding:8px 16px;border-radius:999px;border:1px solid #d5dde8;background:#fff;color:#0E2A52;font-weight:700;font-size:14px;line-height:1.2}
.ffwk-tab:hover,.ffwk-tab:focus-visible{border-color:#e07645}
.ffwk-tab[aria-selected="true"]{background:#0E2A52;border-color:#0E2A52;color:#fff}
.ffwk-sel select{appearance:auto;padding:8px 12px;border-radius:999px;border:1px solid #d5dde8;background:#fff;color:#0E2A52;font-weight:700;font-size:14px;cursor:pointer;max-width:100%}
.ffwk-sel.is-on select{background:#0E2A52;border-color:#0E2A52;color:#fff}
.ffwk-switch.is-busy .ffwk-pane{opacity:.45;transition:opacity .2s}
.ffwk-pane{min-height:200px}
/* Association tile above the venue list */
.ffwk-assocs{display:grid;gap:8px;margin:0 0 12px}
.ffwk-assoc{display:grid;grid-template-columns:44px 1fr auto;gap:12px;align-items:center;padding:12px 14px;border-radius:12px;background:#0E2A52;color:#fff!important;text-decoration:none!important;box-shadow:0 6px 20px rgba(14,42,82,.15);transition:transform .15s}
.ffwk-assoc:hover,.ffwk-assoc:focus-visible{transform:translateY(-1px)}
.ffwk-assoc-ic{width:44px;height:44px;border-radius:10px;background:#fff;object-fit:contain;display:flex;align-items:center;justify-content:center;color:#0E2A52;font-weight:800;font-size:12px;padding:3px;box-sizing:border-box}
.ffwk-assoc-t small{display:block;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#f3b08f;font-weight:700}
.ffwk-assoc-t b{display:block;font-size:15px;line-height:1.25;color:#fff}
.ffwk-assoc-go{font-size:20px;color:#e07645}
@media (prefers-reduced-motion:reduce){.ffwk-assoc{transition:none}.ffwk-assoc:hover{transform:none}}
.ffwk-sel .screen-reader-text{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
