{"id":3461,"date":"2026-04-26T15:47:14","date_gmt":"2026-04-26T13:47:14","guid":{"rendered":"https:\/\/filmsafari.de\/?page_id=3461"},"modified":"2026-04-26T15:51:17","modified_gmt":"2026-04-26T13:51:17","slug":"nationalteams","status":"publish","type":"page","link":"https:\/\/filmsafari.de\/?page_id=3461","title":{"rendered":"Nationalteams"},"content":{"rendered":"    <div class=\"fm-nt-wrap\" data-ajax-url=\"https:\/\/filmsafari.de\/wp-admin\/admin-ajax.php\" data-player-profile-url=\"https:\/\/filmsafari.de\/?page_id=3377\">\n                                    <details class=\"fm-nt-card\" data-team-id=\"6\" data-country=\"Albania\" data-team-name=\"Albanien\" data-trainer=\"Niels\" data-flag=\"https:\/\/flagcdn.com\/24x18\/al.png\" data-logo=\"\">\n                    <summary class=\"fm-nt-head\">\n                        <span class=\"fm-nt-badges\">\n                                                        <img decoding=\"async\" src=\"https:\/\/flagcdn.com\/24x18\/al.png\" class=\"fm-nt-flag\" alt=\"Albania Flag\">                        <\/span>\n                        <span class=\"fm-nt-title-wrap\">\n                            <span class=\"fm-nt-title\">Albanien<\/span>\n                            <span class=\"fm-nt-sub\"><strong>Niels<\/strong> \u00b7 <span class=\"fm-nt-summary-count\">0 von 20 nominiert<\/span><\/span>\n                        <\/span>\n                        <span class=\"fm-nt-chevron\">\u25be<\/span>\n                    <\/summary>\n                    <div class=\"fm-nt-panel\">\n                        <div class=\"fm-nt-loading\">Spieler werden geladen \u2026<\/div>\n                    <\/div>\n                <\/details>\n                            <details class=\"fm-nt-card\" data-team-id=\"4\" data-country=\"Belgium\" data-team-name=\"Belgien\" data-trainer=\"Olaf\" data-flag=\"https:\/\/flagcdn.com\/24x18\/be.png\" data-logo=\"\">\n                    <summary class=\"fm-nt-head\">\n                        <span class=\"fm-nt-badges\">\n                                                        <img decoding=\"async\" src=\"https:\/\/flagcdn.com\/24x18\/be.png\" class=\"fm-nt-flag\" alt=\"Belgium Flag\">                        <\/span>\n                        <span class=\"fm-nt-title-wrap\">\n                            <span class=\"fm-nt-title\">Belgien<\/span>\n                            <span class=\"fm-nt-sub\"><strong>Olaf<\/strong> \u00b7 <span class=\"fm-nt-summary-count\">0 von 20 nominiert<\/span><\/span>\n                        <\/span>\n                        <span class=\"fm-nt-chevron\">\u25be<\/span>\n                    <\/summary>\n                    <div class=\"fm-nt-panel\">\n                        <div class=\"fm-nt-loading\">Spieler werden geladen \u2026<\/div>\n                    <\/div>\n                <\/details>\n                            <details class=\"fm-nt-card\" data-team-id=\"1\" data-country=\"Estonia\" data-team-name=\"Estland\" data-trainer=\"Olaf\" data-flag=\"https:\/\/flagcdn.com\/24x18\/ee.png\" data-logo=\"http:\/\/filmsafari.de\/wp-content\/uploads\/2026\/04\/nm_eesti.png\">\n                    <summary class=\"fm-nt-head\">\n                        <span class=\"fm-nt-badges\">\n                            <img decoding=\"async\" src=\"http:\/\/filmsafari.de\/wp-content\/uploads\/2026\/04\/nm_eesti.png\" class=\"fm-nt-logo\" alt=\"Estland Logo\">                            <img decoding=\"async\" src=\"https:\/\/flagcdn.com\/24x18\/ee.png\" class=\"fm-nt-flag\" alt=\"Estonia Flag\">                        <\/span>\n                        <span class=\"fm-nt-title-wrap\">\n                            <span class=\"fm-nt-title\">Estland<\/span>\n                            <span class=\"fm-nt-sub\"><strong>Olaf<\/strong> \u00b7 <span class=\"fm-nt-summary-count\">2 von 20 nominiert<\/span><\/span>\n                        <\/span>\n                        <span class=\"fm-nt-chevron\">\u25be<\/span>\n                    <\/summary>\n                    <div class=\"fm-nt-panel\">\n                        <div class=\"fm-nt-loading\">Spieler werden geladen \u2026<\/div>\n                    <\/div>\n                <\/details>\n                            <details class=\"fm-nt-card\" data-team-id=\"7\" data-country=\"Faroe Islands\" data-team-name=\"F\u00e4r\u00f6er\" data-trainer=\"Niels\" data-flag=\"https:\/\/flagcdn.com\/24x18\/fo.png\" data-logo=\"\">\n                    <summary class=\"fm-nt-head\">\n                        <span class=\"fm-nt-badges\">\n                                                        <img decoding=\"async\" src=\"https:\/\/flagcdn.com\/24x18\/fo.png\" class=\"fm-nt-flag\" alt=\"Faroe Islands Flag\">                        <\/span>\n                        <span class=\"fm-nt-title-wrap\">\n                            <span class=\"fm-nt-title\">F\u00e4r\u00f6er<\/span>\n                            <span class=\"fm-nt-sub\"><strong>Niels<\/strong> \u00b7 <span class=\"fm-nt-summary-count\">0 von 20 nominiert<\/span><\/span>\n                        <\/span>\n                        <span class=\"fm-nt-chevron\">\u25be<\/span>\n                    <\/summary>\n                    <div class=\"fm-nt-panel\">\n                        <div class=\"fm-nt-loading\">Spieler werden geladen \u2026<\/div>\n                    <\/div>\n                <\/details>\n                            <details class=\"fm-nt-card\" data-team-id=\"2\" data-country=\"Finland\" data-team-name=\"Finnland\" data-trainer=\"Niels\" data-flag=\"https:\/\/flagcdn.com\/24x18\/fi.png\" data-logo=\"http:\/\/filmsafari.de\/wp-content\/uploads\/2026\/05\/nm_finland.png\">\n                    <summary class=\"fm-nt-head\">\n                        <span class=\"fm-nt-badges\">\n                            <img decoding=\"async\" src=\"http:\/\/filmsafari.de\/wp-content\/uploads\/2026\/05\/nm_finland.png\" class=\"fm-nt-logo\" alt=\"Finnland Logo\">                            <img decoding=\"async\" src=\"https:\/\/flagcdn.com\/24x18\/fi.png\" class=\"fm-nt-flag\" alt=\"Finland Flag\">                        <\/span>\n                        <span class=\"fm-nt-title-wrap\">\n                            <span class=\"fm-nt-title\">Finnland<\/span>\n                            <span class=\"fm-nt-sub\"><strong>Niels<\/strong> \u00b7 <span class=\"fm-nt-summary-count\">0 von 20 nominiert<\/span><\/span>\n                        <\/span>\n                        <span class=\"fm-nt-chevron\">\u25be<\/span>\n                    <\/summary>\n                    <div class=\"fm-nt-panel\">\n                        <div class=\"fm-nt-loading\">Spieler werden geladen \u2026<\/div>\n                    <\/div>\n                <\/details>\n                            <details class=\"fm-nt-card\" data-team-id=\"3\" data-country=\"Iceland\" data-team-name=\"Island\" data-trainer=\"Niels\" data-flag=\"https:\/\/flagcdn.com\/24x18\/is.png\" data-logo=\"http:\/\/filmsafari.de\/wp-content\/uploads\/2026\/05\/nm_iceland.png\">\n                    <summary class=\"fm-nt-head\">\n                        <span class=\"fm-nt-badges\">\n                            <img decoding=\"async\" src=\"http:\/\/filmsafari.de\/wp-content\/uploads\/2026\/05\/nm_iceland.png\" class=\"fm-nt-logo\" alt=\"Island Logo\">                            <img decoding=\"async\" src=\"https:\/\/flagcdn.com\/24x18\/is.png\" class=\"fm-nt-flag\" alt=\"Iceland Flag\">                        <\/span>\n                        <span class=\"fm-nt-title-wrap\">\n                            <span class=\"fm-nt-title\">Island<\/span>\n                            <span class=\"fm-nt-sub\"><strong>Niels<\/strong> \u00b7 <span class=\"fm-nt-summary-count\">0 von 20 nominiert<\/span><\/span>\n                        <\/span>\n                        <span class=\"fm-nt-chevron\">\u25be<\/span>\n                    <\/summary>\n                    <div class=\"fm-nt-panel\">\n                        <div class=\"fm-nt-loading\">Spieler werden geladen \u2026<\/div>\n                    <\/div>\n                <\/details>\n                            <details class=\"fm-nt-card\" data-team-id=\"10\" data-country=\"Croatia\" data-team-name=\"Kroatien\" data-trainer=\"Olaf\" data-flag=\"https:\/\/flagcdn.com\/24x18\/hr.png\" data-logo=\"\">\n                    <summary class=\"fm-nt-head\">\n                        <span class=\"fm-nt-badges\">\n                                                        <img decoding=\"async\" src=\"https:\/\/flagcdn.com\/24x18\/hr.png\" class=\"fm-nt-flag\" alt=\"Croatia Flag\">                        <\/span>\n                        <span class=\"fm-nt-title-wrap\">\n                            <span class=\"fm-nt-title\">Kroatien<\/span>\n                            <span class=\"fm-nt-sub\"><strong>Olaf<\/strong> \u00b7 <span class=\"fm-nt-summary-count\">0 von 20 nominiert<\/span><\/span>\n                        <\/span>\n                        <span class=\"fm-nt-chevron\">\u25be<\/span>\n                    <\/summary>\n                    <div class=\"fm-nt-panel\">\n                        <div class=\"fm-nt-loading\">Spieler werden geladen \u2026<\/div>\n                    <\/div>\n                <\/details>\n                            <details class=\"fm-nt-card\" data-team-id=\"5\" data-country=\"Norway\" data-team-name=\"Norwegen\" data-trainer=\"Niels\" data-flag=\"https:\/\/flagcdn.com\/24x18\/no.png\" data-logo=\"\">\n                    <summary class=\"fm-nt-head\">\n                        <span class=\"fm-nt-badges\">\n                                                        <img decoding=\"async\" src=\"https:\/\/flagcdn.com\/24x18\/no.png\" class=\"fm-nt-flag\" alt=\"Norway Flag\">                        <\/span>\n                        <span class=\"fm-nt-title-wrap\">\n                            <span class=\"fm-nt-title\">Norwegen<\/span>\n                            <span class=\"fm-nt-sub\"><strong>Niels<\/strong> \u00b7 <span class=\"fm-nt-summary-count\">0 von 20 nominiert<\/span><\/span>\n                        <\/span>\n                        <span class=\"fm-nt-chevron\">\u25be<\/span>\n                    <\/summary>\n                    <div class=\"fm-nt-panel\">\n                        <div class=\"fm-nt-loading\">Spieler werden geladen \u2026<\/div>\n                    <\/div>\n                <\/details>\n                            <details class=\"fm-nt-card\" data-team-id=\"9\" data-country=\"Austria\" data-team-name=\"\u00d6sterreich\" data-trainer=\"Olaf\" data-flag=\"https:\/\/flagcdn.com\/24x18\/at.png\" data-logo=\"\">\n                    <summary class=\"fm-nt-head\">\n                        <span class=\"fm-nt-badges\">\n                                                        <img decoding=\"async\" src=\"https:\/\/flagcdn.com\/24x18\/at.png\" class=\"fm-nt-flag\" alt=\"Austria Flag\">                        <\/span>\n                        <span class=\"fm-nt-title-wrap\">\n                            <span class=\"fm-nt-title\">\u00d6sterreich<\/span>\n                            <span class=\"fm-nt-sub\"><strong>Olaf<\/strong> \u00b7 <span class=\"fm-nt-summary-count\">0 von 20 nominiert<\/span><\/span>\n                        <\/span>\n                        <span class=\"fm-nt-chevron\">\u25be<\/span>\n                    <\/summary>\n                    <div class=\"fm-nt-panel\">\n                        <div class=\"fm-nt-loading\">Spieler werden geladen \u2026<\/div>\n                    <\/div>\n                <\/details>\n                            <details class=\"fm-nt-card\" data-team-id=\"8\" data-country=\"Portugal\" data-team-name=\"Portugal\" data-trainer=\"Niels\" data-flag=\"https:\/\/flagcdn.com\/24x18\/pt.png\" data-logo=\"\">\n                    <summary class=\"fm-nt-head\">\n                        <span class=\"fm-nt-badges\">\n                                                        <img decoding=\"async\" src=\"https:\/\/flagcdn.com\/24x18\/pt.png\" class=\"fm-nt-flag\" alt=\"Portugal Flag\">                        <\/span>\n                        <span class=\"fm-nt-title-wrap\">\n                            <span class=\"fm-nt-title\">Portugal<\/span>\n                            <span class=\"fm-nt-sub\"><strong>Niels<\/strong> \u00b7 <span class=\"fm-nt-summary-count\">0 von 20 nominiert<\/span><\/span>\n                        <\/span>\n                        <span class=\"fm-nt-chevron\">\u25be<\/span>\n                    <\/summary>\n                    <div class=\"fm-nt-panel\">\n                        <div class=\"fm-nt-loading\">Spieler werden geladen \u2026<\/div>\n                    <\/div>\n                <\/details>\n                        <\/div>\n\n    <style>\n        \/* The base layout targets 320 px phones; wider arrangements are enhancements below. *\/\n        .fm-nt-wrap{max-width:760px;margin:14px auto;padding:0 6px;display:flex;flex-direction:column;gap:10px;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}\n        .fm-nt-card{background:linear-gradient(180deg,#fff,#f7faff);border:1px solid #dbe5f3;border-radius:14px;box-shadow:0 7px 20px rgba(30,64,175,.08);overflow:hidden}\n        .fm-nt-head{width:100%;min-height:44px;display:flex;align-items:center;gap:8px;text-align:left;border:0;background:transparent;padding:10px 8px;cursor:pointer;list-style:none}\n        .fm-nt-head::-webkit-details-marker{display:none}.fm-nt-badges{display:flex;align-items:center;gap:5px;flex:0 0 auto}\n        .fm-nt-logo,.fm-nt-flag{width:28px;height:22px;object-fit:cover;border-radius:5px;border:1px solid rgba(15,23,42,.12);background:#fff}\n        .fm-nt-title-wrap{flex:1;min-width:0}.fm-nt-title{display:block;font-weight:700;color:#0f172a;font-size:15px;overflow-wrap:anywhere}\n        .fm-nt-sub{display:block;color:#5b6b84;font-size:12px;margin-top:2px;overflow-wrap:anywhere}.fm-nt-chevron{color:#1d4ed8;font-size:16px;transition:transform .2s ease}.fm-nt-card[open] .fm-nt-chevron{transform:rotate(180deg)}\n        .fm-nt-panel{border-top:1px solid #e3eaf4;background:#fff;padding:8px}.fm-nt-loading,.fm-nt-empty{padding:12px;border-radius:10px;background:#f8fbff;color:#52607a;font-size:13px}\n        .fm-nt-dashboard{display:flex;align-items:center;gap:7px;min-width:0;padding:6px 7px;border-radius:8px;background:linear-gradient(135deg,#eff6ff,#f8fafc);border:1px solid #dbeafe}\n        .fm-nt-dashboard-flag{flex:0 0 auto;width:30px;height:21px;object-fit:cover;border-radius:4px;border:1px solid #cbd5e1}.fm-nt-dashboard h3{min-width:0;margin:0;color:#0f172a;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fm-nt-dashboard-trainer{margin-left:auto;color:#64748b;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fm-nt-dashboard-trainer strong{color:#334155}\n        .fm-nt-status-row{display:grid;grid-template-columns:minmax(76px,1.5fr) repeat(4,minmax(38px,1fr));gap:3px;margin:6px 0}.fm-nt-progress,.fm-nt-position-stat{display:flex;align-items:center;justify-content:center;min-width:0;min-height:32px;padding:3px;text-align:center;border-radius:6px;background:#f1f5f9;color:#475569;font-size:10px;white-space:nowrap}.fm-nt-progress{font-weight:800;color:#1d4ed8;background:#eff6ff}.fm-nt-position-stat strong{margin-right:2px;color:#0f172a;font-size:13px}\n        .fm-nt-sticky-controls{background:#fff;padding-bottom:6px;z-index:5}\n        .fm-nt-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;border-bottom:1px solid #dbe5f3}.fm-nt-tab{min-width:0;min-height:44px;border:0;background:transparent;padding:8px 6px;font-weight:700;color:#64748b;cursor:pointer;border-bottom:3px solid transparent;transition:color .2s ease,background-color .2s ease}.fm-nt-tab.is-active{color:#1d4ed8;border-bottom-color:#2563eb}\n        .fm-nt-tools{display:grid;grid-template-columns:1fr;gap:5px;margin-top:6px}.fm-nt-search{width:100%;min-width:0;min-height:44px;border:1px solid #cbd5e1;border-radius:7px;padding:7px 9px;font:inherit}.fm-nt-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}\n        .fm-nt-filter{min-width:44px;min-height:44px;border:0;border-radius:8px;padding:7px 4px;font-size:12px;font-weight:700;color:#0f172a;cursor:pointer;opacity:.8;transition:opacity .2s ease,box-shadow .2s ease}.fm-nt-filter.is-active{box-shadow:inset 0 0 0 2px rgba(15,23,42,.4);opacity:1}.fm-nt-filter[data-pos=\"G\"]{background:#c7d2fe}.fm-nt-filter[data-pos=\"D\"]{background:#bfdbfe}.fm-nt-filter[data-pos=\"M\"]{background:#bbf7d0}.fm-nt-filter[data-pos=\"F\"]{background:#fecaca}\n        .fm-nt-player{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:6px;align-items:center;padding:6px;border-radius:7px;border:2px solid #e9eef7;background:#fbfdff}.fm-nt-player.is-in-squad{box-shadow:inset 0 0 0 1px rgba(34,197,94,.35)}.fm-nt-player.fm-nt-pos-G{border-color:#818cf8}.fm-nt-player.fm-nt-pos-D{border-color:#60a5fa}.fm-nt-player.fm-nt-pos-M{border-color:#4ade80}.fm-nt-player.fm-nt-pos-F{border-color:#f87171}.fm-nt-player+.fm-nt-player{margin-top:5px}\n        .fm-nt-player-media{position:relative;width:40px}.fm-nt-player-photo{display:block;width:40px;height:40px;border-radius:50%;object-fit:cover;border:1px solid #dbe5f3;background:#eef2ff}.fm-nt-team-logo{position:absolute;right:-4px;bottom:-4px;width:24px;height:24px;border-radius:50%;object-fit:contain;border:2px solid #fff;background:#fff;box-shadow:0 1px 4px rgba(15,23,42,.2)}\n        .fm-nt-player-main{min-width:0}.fm-nt-player-name{display:flex;align-items:baseline;min-width:0;gap:4px;font-weight:700;color:#0f172a;font-size:13px;line-height:1.2;white-space:nowrap}.fm-nt-player-link{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;text-decoration:none;color:inherit}.fm-nt-player-age{flex:0 0 auto;color:#64748b;font-size:11px;font-weight:600}.fm-nt-player-link:hover{text-decoration:underline}\n        .fm-nt-actions{display:flex;align-items:center}.fm-nt-add{min-width:44px;min-height:44px;padding:5px 7px;display:inline-flex;align-items:center;justify-content:center;border-radius:7px;border:1px solid #bfd2f7;background:#eaf1ff;color:#1e40af;font-weight:700;font-size:11px;cursor:pointer;transition:background-color .2s ease,transform .2s ease}.fm-nt-remove{border-color:#bbf7d0;background:#f0fdf4;color:#166534}.fm-nt-add[disabled]{opacity:.45;cursor:not-allowed}\n        .fm-nt-player-details{display:block;grid-column:1\/-1;padding:6px;border-radius:6px;background:#f1f5f9}.fm-nt-performance{display:flex;flex-wrap:wrap;gap:5px 12px;font-size:12px;color:#475569}.fm-nt-player-avg{font-weight:700;color:#0f172a}.fm-nt-player-avg.is-negative{color:#b91c1c}.fm-nt-polarity-wrap{display:flex;flex-direction:column;gap:3px;margin-top:5px;max-width:300px}.fm-nt-polarity-avgs{display:flex;align-items:center;gap:10px;font-size:11px;font-weight:600}.fm-nt-polarity-avg-pos{color:#15803d}.fm-nt-polarity-avg-neg{color:#b91c1c}.fm-nt-polarity{height:9px;border-radius:999px;overflow:hidden;display:flex;background:#e2e8f0;width:100%;opacity:.9}.fm-nt-polarity-pos{height:100%;background:#16a34a}.fm-nt-polarity-neg{height:100%;background:#dc2626}\n        @media (min-width:375px){.fm-nt-wrap{padding:0 8px}.fm-nt-head{padding:11px 10px}.fm-nt-logo,.fm-nt-flag{width:32px;height:23px}}\n        @media (min-width:430px){.fm-nt-dashboard{gap:10px;padding:10px;border-radius:12px}.fm-nt-dashboard-flag{width:42px;height:30px;border-radius:7px}.fm-nt-dashboard h3{font-size:17px}.fm-nt-dashboard-trainer{font-size:12px}.fm-nt-status-row{gap:6px;margin:8px 0}.fm-nt-progress,.fm-nt-position-stat{min-height:38px;padding:6px 4px;border-radius:8px;font-size:11px}.fm-nt-position-stat strong{font-size:16px}.fm-nt-player{grid-template-columns:56px minmax(0,1fr) auto;gap:8px;padding:8px;border-radius:10px}.fm-nt-player-media{width:52px}.fm-nt-player-photo{width:52px;height:52px}.fm-nt-team-logo{width:28px;height:28px}.fm-nt-player-name{font-size:14px}.fm-nt-player-age{font-size:12px}.fm-nt-add{font-size:12px}}\n        @media (min-width:641px){.fm-nt-wrap{padding:0 10px}.fm-nt-status-row{gap:8px}.fm-nt-position-stat{font-size:12px;padding:7px 5px}.fm-nt-filters{grid-template-columns:repeat(4,minmax(70px,1fr))}.fm-nt-player{grid-template-columns:64px minmax(0,1fr) auto;padding:10px}.fm-nt-player-photo{width:56px;height:56px}.fm-nt-player-media{width:56px}.fm-nt-actions{flex-direction:row}}\n        @supports (position:sticky){.fm-nt-sticky-controls{position:sticky;top:0;padding-top:calc(4px + env(safe-area-inset-top));padding-bottom:calc(8px + env(safe-area-inset-bottom))}}\n        @media (prefers-reduced-motion:reduce){.fm-nt-chevron,.fm-nt-detail-chevron,.fm-nt-tab,.fm-nt-filter,.fm-nt-add{transition:none!important;animation:none!important;scroll-behavior:auto!important}}\n    <\/style>\n\n    <script>\n    (function(){\n        const roots = document.querySelectorAll('.fm-nt-wrap[data-ajax-url]');\n        if(!roots.length){ return; }\n\n        roots.forEach(function(root){\n        const ajaxUrl = root.getAttribute('data-ajax-url');\n        const playerProfileUrl = root.getAttribute('data-player-profile-url') || '';\n\n        function buildPlayerProfileUrl(playerId){\n            if(!playerProfileUrl){ return '#'; }\n            try{\n                const url = new URL(playerProfileUrl, window.location.origin);\n                url.searchParams.set('player_id', String(playerId || ''));\n                return url.toString();\n            }catch(e){\n                const separator = playerProfileUrl.includes('?') ? '&' : '?';\n                return `${playerProfileUrl}${separator}player_id=${encodeURIComponent(String(playerId || ''))}`;\n            }\n        }\n\n        function normalizePosition(pos){\n            const value = (pos || '').toString().trim().toUpperCase();\n            if(value.includes('GOALKEEP') || value === 'GK' || value === 'G'){ return 'G'; }\n            if(value.includes('DEF') || value === 'CB' || value === 'LB' || value === 'RB' || value === 'D'){ return 'D'; }\n            if(value.includes('MID') || value === 'CM' || value === 'CDM' || value === 'CAM' || value === 'M'){ return 'M'; }\n            return 'F';\n        }\n\n        function escapeHtml(str){\n            return (str || '').toString()\n                .replace(\/&\/g, '&amp;')\n                .replace(\/<\/g, '&lt;')\n                .replace(\/>\/g, '&gt;')\n                .replace(\/\"\/g, '&quot;')\n                .replace(\/'\/g, '&#039;');\n        }\n\n        function getPanelState(panel){\n            let players = [];\n            try { players = JSON.parse(panel.dataset.players || '[]'); } catch(_error) {}\n            return {\n                players,\n                view: panel.dataset.activeView || 'squad',\n                position: panel.dataset.activePos || '',\n                search: panel.dataset.search || ''\n            };\n        }\n\n        function renderPlayers(panel, teamId, players, activePos, activeView, search){\n            const card = panel.closest('.fm-nt-card');\n            const position = activePos === undefined ? (panel.dataset.activePos || '') : activePos;\n            const view = activeView || panel.dataset.activeView || 'squad';\n            const query = search === undefined ? (panel.dataset.search || '') : search;\n            panel.dataset.activePos = position;\n            panel.dataset.activeView = view;\n            panel.dataset.search = query;\n\n            const squad = players.filter(p => p.in_squad === true);\n            const positionButtons = [{key:'G',label:'Tor'},{key:'D',label:'Abwehr'},{key:'M',label:'Mittelfeld'},{key:'F',label:'Sturm'}];\n            const counts = positionButtons.reduce((result, item) => {\n                result[item.key] = squad.filter(p => normalizePosition(p.position) === item.key).length;\n                return result;\n            }, {});\n            const inArea = players.filter(p => view === 'squad' ? p.in_squad === true : p.in_squad !== true);\n            const normalizedQuery = query.trim().toLocaleLowerCase('de');\n            const filteredPlayers = inArea.filter(p => {\n                const matchesPosition = !position || normalizePosition(p.position) === position;\n                const haystack = `${p.player_name || ''} ${p.customteam_name || ''}`.toLocaleLowerCase('de');\n                return matchesPosition && (!normalizedQuery || haystack.includes(normalizedQuery));\n            });\n\n            if(card){\n                const summaryCount = card.querySelector('.fm-nt-summary-count');\n                if(summaryCount){ summaryCount.textContent = `${squad.length} von 20 nominiert`; }\n            }\n\n            const playerListHtml = filteredPlayers.length ? filteredPlayers.map(p => {\n                const gamesPlayed = Number.isFinite(Number(p.games_played)) ? Number(p.games_played) : 0;\n                const avg = p.durchschnitt !== null ? `\u00d8 ${p.durchschnitt}` : '';\n                const avgNegative = p.durchschnitt !== null && Number(p.durchschnitt) < 0;\n                const hasGames = gamesPlayed > 0;\n                const posRatio = hasGames && Number.isFinite(Number(p.score_pos_ratio)) ? Math.max(0, Math.min(1, Number(p.score_pos_ratio))) : 0;\n                const negRatio = hasGames && Number.isFinite(Number(p.score_neg_ratio)) ? Math.max(0, Math.min(1, Number(p.score_neg_ratio))) : 0;\n                const polarityHtml = hasGames ? `<div class=\"fm-nt-polarity-wrap\"><div class=\"fm-nt-polarity-avgs\"><span class=\"fm-nt-polarity-avg-pos\">Positiv \u00d8 ${p.score_pos_avg ?? '\u2014'}<\/span><span class=\"fm-nt-polarity-avg-neg\">Negativ \u00d8 ${p.score_neg_avg ?? '\u2014'}<\/span><\/div><div class=\"fm-nt-polarity\" aria-hidden=\"true\"><span class=\"fm-nt-polarity-pos\" style=\"width:${(posRatio*100).toFixed(2)}%\"><\/span><span class=\"fm-nt-polarity-neg\" style=\"width:${(negRatio*100).toFixed(2)}%\"><\/span><\/div><\/div>` : '';\n                const age = Number.isInteger(p.age) ? ` (${p.age})` : '';\n                const positionKey = normalizePosition(p.position);\n                const clubName = p.customteam_name ? escapeHtml(p.customteam_name) : 'Vereinslos';\n                const photo = p.photo ? `<img decoding=\"async\" src=\"${escapeHtml(p.photo)}\" class=\"fm-nt-player-photo\" alt=\"${escapeHtml(p.player_name)}\">` : '<div class=\"fm-nt-player-photo\" aria-hidden=\"true\"><\/div>';\n                const teamLogo = p.customteam_logo ? `<img decoding=\"async\" src=\"${escapeHtml(p.customteam_logo)}\" class=\"fm-nt-team-logo\" alt=\"${clubName} Logo\" title=\"${clubName}\">` : '';\n                const details = hasGames ? `<div class=\"fm-nt-player-details\"><div class=\"fm-nt-performance\">${avg ? `<span class=\"fm-nt-player-avg${avgNegative ? ' is-negative' : ''}\">Bewertung: ${avg}<\/span>` : ''}<span>Spiele: <strong>${gamesPlayed}<\/strong><\/span><\/div>${polarityHtml}<\/div>` : '';\n                return `<article class=\"fm-nt-player fm-nt-pos-${positionKey}${p.in_squad ? ' is-in-squad' : ''}${hasGames ? ' has-details' : ''}\" data-player-id=\"${p.player_id}\" data-position=\"${positionKey}\">\n                    <div class=\"fm-nt-player-media\">${photo}${teamLogo}<\/div>\n                    <div class=\"fm-nt-player-main\"><div class=\"fm-nt-player-name\"><a class=\"fm-nt-player-link\" href=\"${escapeHtml(buildPlayerProfileUrl(p.player_id))}\">${escapeHtml(p.player_name)}<\/a><span class=\"fm-nt-player-age\">${age}<\/span><\/div><\/div>\n                    <div class=\"fm-nt-actions\"><button type=\"button\" class=\"fm-nt-add${p.in_squad ? ' fm-nt-remove' : ''}\" data-team-id=\"${teamId}\" data-player-id=\"${p.player_id}\">${p.in_squad ? 'Entfernen' : 'Nominieren'}<\/button><\/div>${details}<\/article>`;\n            }).join('') : `<div class=\"fm-nt-empty\">${view === 'squad' && !inArea.length ? 'Der Kader ist noch leer. Nominiere Spieler im Bereich \u201eKandidaten\u201c.' : 'Keine Spieler entsprechen der Suche oder den gew\u00e4hlten Filtern.'}<\/div>`;\n\n            const flag = card ? card.dataset.flag : '';\n            panel.innerHTML = `<div class=\"fm-nt-dashboard\">${flag ? `<img decoding=\"async\" class=\"fm-nt-dashboard-flag\" src=\"${escapeHtml(flag)}\" alt=\"Flagge\">` : ''}<h3>${escapeHtml(card?.dataset.teamName || '')}<\/h3><span class=\"fm-nt-dashboard-trainer\">Trainer: <strong>${escapeHtml(card?.dataset.trainer || 'Nicht zugewiesen')}<\/strong><\/span><\/div>\n                <div class=\"fm-nt-status-row\"><div class=\"fm-nt-progress\" role=\"status\">${squad.length}\/20 nom.<\/div>${positionButtons.map(item => `<div class=\"fm-nt-position-stat\" title=\"${escapeHtml(item.label)}\"><strong>${counts[item.key]}<\/strong>${item.key}<\/div>`).join('')}<\/div>\n                <div class=\"fm-nt-sticky-controls\"><div class=\"fm-nt-tabs\" role=\"tablist\"><button class=\"fm-nt-tab${view === 'squad' ? ' is-active' : ''}\" data-view=\"squad\" role=\"tab\" aria-selected=\"${view === 'squad'}\">Kader (${squad.length})<\/button><button class=\"fm-nt-tab${view === 'candidates' ? ' is-active' : ''}\" data-view=\"candidates\" role=\"tab\" aria-selected=\"${view === 'candidates'}\">Kandidaten (${players.length-squad.length})<\/button><\/div>\n                <div class=\"fm-nt-tools\"><input class=\"fm-nt-search\" type=\"search\" value=\"${escapeHtml(query)}\" placeholder=\"Spieler oder Verein suchen\" aria-label=\"Spieler oder Verein suchen\"><div class=\"fm-nt-filters\">${positionButtons.map(btn => `<button type=\"button\" class=\"fm-nt-filter${position === btn.key ? ' is-active' : ''}\" data-pos=\"${btn.key}\" aria-pressed=\"${position === btn.key}\">${btn.label}<\/button>`).join('')}<\/div><\/div><\/div>\n                <div class=\"fm-nt-player-list\">${playerListHtml}<\/div>`;\n        }\n\n        root.querySelectorAll('.fm-nt-card').forEach(function(card){\n            card.addEventListener('toggle', function(){\n                const panel = card.querySelector('.fm-nt-panel');\n                const teamId = card.getAttribute('data-team-id');\n                const country = card.getAttribute('data-country') || '';\n                if(card.open && !panel.dataset.loaded){\n                    panel.innerHTML = '<div class=\"fm-nt-loading\">Spieler werden geladen \u2026<\/div>';\n                    fetch(`${ajaxUrl}?action=fm_nt_get_players&country=${encodeURIComponent(country)}&nationalteam_id=${encodeURIComponent(teamId)}`)\n                        .then(r => r.json())\n                        .then(payload => {\n                            if(!payload.success){\n                                panel.innerHTML = `<div class=\"fm-nt-loading\">Fehler: ${payload.data || 'Unbekannt'}<\/div>`;\n                                return;\n                            }\n                            panel.dataset.loaded = '1';\n                            panel.dataset.players = JSON.stringify(payload.data || []);\n                            renderPlayers(panel, teamId, payload.data || []);\n                        })\n                        .catch(() => {\n                            panel.innerHTML = '<div class=\"fm-nt-loading\">Fehler beim Laden der Spieler.<\/div>';\n                        });\n                }\n            });\n        });\n\n        function updatePlayerMembership(button, inSquad){\n            button.disabled = true;\n            const teamId = button.dataset.teamId || '';\n            const playerId = Number(button.dataset.playerId || 0);\n            const panel = button.closest('.fm-nt-panel');\n            const body = new URLSearchParams();\n            body.set('action', inSquad ? 'fm_nt_add_player' : 'fm_nt_remove_player');\n            body.set('nationalteam_id', teamId);\n            body.set('response_player_id', String(playerId));\n            fetch(ajaxUrl, {method:'POST', headers:{'Content-Type':'application\/x-www-form-urlencoded; charset=UTF-8'}, body:body.toString()})\n                .then(response => response.json())\n                .then(payload => {\n                    if(!payload.success){ throw new Error(payload.data || '\u00c4nderung fehlgeschlagen.'); }\n                    const state = getPanelState(panel);\n                    const player = state.players.find(item => Number(item.player_id) === playerId);\n                    if(player){ player.in_squad = inSquad; }\n                    panel.dataset.players = JSON.stringify(state.players);\n                    renderPlayers(panel, teamId, state.players, state.position, state.view, state.search);\n                })\n                .catch(error => {\n                    button.disabled = false;\n                    alert(error.message || 'Fehler beim Speichern.');\n                });\n        }\n\n        root.addEventListener('click', function(e){\n            const actionButton = e.target.closest('.fm-nt-add');\n            if(actionButton){\n                updatePlayerMembership(actionButton, !actionButton.classList.contains('fm-nt-remove'));\n                return;\n            }\n\n            const detailButton = e.target.closest('.fm-nt-detail-toggle');\n            if(detailButton){\n                const playerCard = detailButton.closest('.fm-nt-player');\n                const expanded = playerCard.classList.toggle('is-expanded');\n                detailButton.setAttribute('aria-expanded', expanded ? 'true' : 'false');\n                return;\n            }\n\n            const tab = e.target.closest('.fm-nt-tab');\n            if(tab){\n                const panel = tab.closest('.fm-nt-panel');\n                const card = tab.closest('.fm-nt-card');\n                const state = getPanelState(panel);\n                renderPlayers(panel, card.dataset.teamId, state.players, state.position, tab.dataset.view, state.search);\n                return;\n            }\n\n            const filterButton = e.target.closest('.fm-nt-filter');\n            if(filterButton){\n                const panel = filterButton.closest('.fm-nt-panel');\n                const card = filterButton.closest('.fm-nt-card');\n                const state = getPanelState(panel);\n                const nextPosition = state.position === filterButton.dataset.pos ? '' : filterButton.dataset.pos;\n                renderPlayers(panel, card.dataset.teamId, state.players, nextPosition, state.view, state.search);\n            }\n        });\n\n        root.addEventListener('input', function(e){\n            if(!e.target.matches('.fm-nt-search')){ return; }\n            const panel = e.target.closest('.fm-nt-panel');\n            const card = e.target.closest('.fm-nt-card');\n            const state = getPanelState(panel);\n            renderPlayers(panel, card.dataset.teamId, state.players, state.position, state.view, e.target.value);\n            const input = panel.querySelector('.fm-nt-search');\n            if(input){ input.focus(); input.setSelectionRange(input.value.length, input.value.length); }\n        });\n        });\n    })();\n    <\/script>\n    \n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","footnotes":""},"class_list":["post-3461","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/filmsafari.de\/index.php?rest_route=\/wp\/v2\/pages\/3461","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/filmsafari.de\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/filmsafari.de\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/filmsafari.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/filmsafari.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3461"}],"version-history":[{"count":3,"href":"https:\/\/filmsafari.de\/index.php?rest_route=\/wp\/v2\/pages\/3461\/revisions"}],"predecessor-version":[{"id":3575,"href":"https:\/\/filmsafari.de\/index.php?rest_route=\/wp\/v2\/pages\/3461\/revisions\/3575"}],"wp:attachment":[{"href":"https:\/\/filmsafari.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3461"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}