﻿/* subpage-data.jsx - Group F detail and team pages */
const TEAM_PAGE_AXES = ["攻撃力", "中盤力", "守備力", "GK力", "控え層", "組織力"];
const OFFICIAL_NOTICE = "本サイトは、FIFA・大会主催者・各国サッカー協会とは関係のない非公式の観戦ガイドです。掲載情報は公式発表および信頼できる公開情報をもとに作成し、随時更新します。独自レーティングや勝敗予想は当サイト独自の分析であり、結果を保証するものではありません。商品リンクにはアフィリエイトリンクを含む場合があります。";
const PAGE_UPDATED = "2026年6月8日";

const STATUS_LABELS_SUB = {
  official_confirmed: "発表済み",
  broadcaster_pending: "放送局発表待ち",
  update_after_tournament_start: "大会開始後に更新",
  supplemental_only: "配信予定あり",
  not_applicable: "関連なし",
  future_announcement: "今後発表予定"
};

const TEAM_URLS = {
  jpn: "/worldcup2026/teams/japan/",
  ned: "/worldcup2026/teams/netherlands/",
  swe: "/worldcup2026/teams/sweden/",
  tun: "/worldcup2026/teams/tunisia/"
};

const GROUPF_STANDINGS = [
  { rank: 1, worldRank: 7, tournamentTeams: 48, key: "ned", team: "オランダ", rating: 87.7, label: "本命", note: "個の質と守備の安定感でGroup Fをリード。" },
  { rank: 2, worldRank: 15, tournamentTeams: 48, key: "jpn", team: "日本", rating: 81.2, label: "突破有力", note: "攻撃と中盤の質が高く、取りこぼしを防げれば突破圏。" },
  { rank: 3, worldRank: 26, tournamentTeams: 48, key: "swe", team: "スウェーデン", rating: 72.8, label: "突破争い", note: "前線火力は危険。日本戦が大きな分岐点。" },
  { rank: 4, worldRank: 36, tournamentTeams: 48, key: "tun", team: "チュニジア", rating: 68.0, label: "守備型の伏兵", note: "守備ブロックで試合を重くできる。先制点が鍵。" }
];

const GROUPF_FIXTURES_DETAIL = [
  { round: "第1戦", card: "日本 vs オランダ", teams: ["jpn", "ned"], jst: "2026年6月15日(月) 5:00", broadcast: "NHK総合、DAZN", statusKey: "official_confirmed", status: STATUS_LABELS_SUB.official_confirmed, source: "JFA公式 放送ページ", updated: PAGE_UPDATED, href: TEAM_URLS.jpn, note: "日本代表戦の放送局はJFA公式で発表済みです。" },
  { round: "第2戦", card: "日本 vs チュニジア", teams: ["jpn", "tun"], jst: "2026年6月21日(日) 13:00", broadcast: "日本テレビ、NHK BS、DAZN", statusKey: "official_confirmed", status: STATUS_LABELS_SUB.official_confirmed, source: "JFA公式 放送ページ", updated: PAGE_UPDATED, href: TEAM_URLS.jpn, note: "日本代表戦の放送局はJFA公式で発表済みです。" },
  { round: "第3戦", card: "日本 vs スウェーデン", teams: ["jpn", "swe"], jst: "2026年6月26日(金) 8:00", broadcast: "NHK総合、DAZN", statusKey: "official_confirmed", status: STATUS_LABELS_SUB.official_confirmed, source: "JFA公式 放送ページ", updated: PAGE_UPDATED, href: TEAM_URLS.jpn, note: "日本代表戦の放送局はJFA公式で発表済みです。" },
  { round: "第1戦", card: "オランダ vs スウェーデン", teams: ["ned", "swe"], jst: "日本時間は今後発表予定", broadcast: "DAZN / 地上波・BSは放送局発表待ち", statusKey: "supplemental_only", status: STATUS_LABELS_SUB.supplemental_only, source: "DAZN公式、電通発表", updated: PAGE_UPDATED, href: "/worldcup2026/predictions/group-f/", note: "放送局名が発表されるまでは局名を表示しません。" },
  { round: "第2戦", card: "チュニジア vs オランダ", teams: ["tun", "ned"], jst: "日本時間は今後発表予定", broadcast: "DAZN / 地上波・BSは放送局発表待ち", statusKey: "supplemental_only", status: STATUS_LABELS_SUB.supplemental_only, source: "DAZN公式、電通発表", updated: PAGE_UPDATED, href: TEAM_URLS.ned, note: "放送局名が発表されるまでは局名を表示しません。" },
  { round: "第3戦", card: "スウェーデン vs チュニジア", teams: ["swe", "tun"], jst: "日本時間は今後発表予定", broadcast: "DAZN / 地上波・BSは放送局発表待ち", statusKey: "supplemental_only", status: STATUS_LABELS_SUB.supplemental_only, source: "DAZN公式、電通発表", updated: PAGE_UPDATED, href: TEAM_URLS.tun, note: "放送局名が発表されるまでは局名を表示しません。" }
];

const GROUPF_VIEWPOINTS = [
  { title: "日本はどこで勝ち点を取るか", body: "チュニジア戦で取りこぼさず、スウェーデン戦で勝ち点を上積みできるか。オランダ戦は守備の時間を耐えながら一発を狙う設計になります。" },
  { title: "スウェーデン戦が山場", body: "ギョケレシュ、イサクの前線火力はGroup Fで最も危険な要素のひとつ。日本は中盤で供給源を断ち、背後の管理を徹底したいところです。" },
  { title: "チュニジア戦は先制点", body: "守備型の相手に先制されると試合が重くなります。日本は序盤から押し込み、セットプレーとサイド攻撃で早めに崩したい一戦です。" }
];

const FEATURED_MATCHES = [
  { title: "日本 vs スウェーデン", label: "突破を左右する注目カード", body: "日本の中盤力とスウェーデンの前線火力がぶつかる一戦。勝ち点3なら突破に大きく近づきます。" },
  { title: "オランダ vs 日本", label: "本命への挑戦", body: "オランダ相手にどこまで主導権を奪えるか。引き分け以上ならグループ突破の可能性が一気に高まります。" }
];

const TEAM_DETAILS = {
  jpn: {
    key: "jpn", name: "日本", displayName: "日本代表", en: "Japan", group: "Group F", fifaRank: "今後発表予定", rating: 81.2, worldRank: 15, tournamentTeams: 48, label: "突破有力", updated: PAGE_UPDATED,
    color: "#1A6FC4", accent: "#5BB7FF", radar: [84, 86, 78, 75, 79, 84],
    summary: "攻撃と中盤の質が高く、Group F突破を現実的に狙えるチーム。取りこぼしを防ぎ、スウェーデン戦で勝ち点を取れるかが鍵です。",
    myView: "日本はこの組で十分に2位突破を狙えます。中盤と前線の連動は強みですが、強い前線を持つ相手に対してCBとGK周りがどこまで安定するかが勝負どころです。",
    breakdown: [{label:"個人戦力",value:51.2,max:60},{label:"代表実績",value:18.0,max:25},{label:"戦術・組織力",value:8.0,max:10},{label:"大会適性",value:4.0,max:5},{label:"総合",value:81.2,max:100}],
    strengths: ["攻撃と中盤の連動性", "欧州組を中心にした選手層", "試合中の修正力と組織力"],
    concerns: ["CB/GKの安定感", "強力な前線への背後対応", "守備型相手を崩し切る精度"],
    tactics: "中盤でボールを動かし、サイドとハーフスペースから崩す形が軸。守備では前線から連動して奪い、ショートカウンターへつなげたいチームです。",
    vsJapan: "Group F全体の突破条件を中心に確認できます。",
    players: [
      ["久保 建英","MF/FW","レアル・ソシエダード",84.6,"攻撃の創造役","チャンスメイク / 右サイド",[82,88,68,72,80,78],"狭い局面で違いを作れる","フィジカル勝負が続く展開","日本の攻撃にリズムを作る中心。"],
      ["三笘 薫","FW","ブライトン",83.4,"左の突破役","ドリブル / 仕掛け",[76,78,62,86,74,70],"1対1の突破力","コンディションの波","左サイドで相手の守備計画を崩せる選手。"],
      ["遠藤 航","MF","リバプール",82.0,"中盤の回収役","守備強度 / 回収",[70,82,82,66,78,86],"球際と読み","連戦時の負荷","試合を締めるうえで欠かせない軸。"],
      ["上田 綺世","FW","フェイエノールト",81.5,"得点源","フィニッシュ / ポスト",[86,68,64,72,74,76],"ゴール前の決定力","孤立時の関与", "チュニジア戦で先制点を取りたい存在。"]
    ]
  },
  ned: {
    key: "ned", name: "オランダ", displayName: "オランダ代表", en: "Netherlands", group: "Group F", fifaRank: "今後発表予定", rating: 87.7, worldRank: 7, tournamentTeams: 48, label: "本命", updated: PAGE_UPDATED,
    color: "#F47B20", accent: "#FFB24A", radar: [88,86,89,86,84,86],
    summary: "欧州上位クラブ所属が多く、Group Fの本命。守備の軸と中盤の構成力が高く、総合力で一歩リードします。",
    myView: "オランダは本命ですが、攻撃創造性や主力コンディションには波もあります。日本は中盤で受け身になりすぎず、奪った後の速さで勝機を探したい相手です。",
    breakdown: [{label:"個人戦力",value:53.6,max:60},{label:"代表実績",value:22.0,max:25},{label:"戦術・組織力",value:8.2,max:10},{label:"大会適性",value:3.9,max:5},{label:"総合",value:87.7,max:100}],
    strengths: ["センターラインの質", "守備とビルドアップの安定", "セットプレーの高さ"],
    concerns: ["攻撃創造性の偏り", "主力コンディション", "押し込まれた時の切り替え"],
    tactics: "後方から丁寧に前進し、強いCBと中盤で試合を管理。サイドとセットプレーでも優位を取りやすい設計です。",
    vsJapan: "日本が勝ち点を狙うには、守備時間を耐えるだけでなく、中盤で奪った後に素早く背後へ出ることが重要です。",
    players: [
      ["Virgil van Dijk","DF","Liverpool",91.5,"守備の柱","空中戦 / 統率",[92,76,94,70,82,82],"守備範囲と高さ","背後への速攻", "Group F屈指の守備基準。"],
      ["Cody Gakpo","FW","Liverpool",88.5,"攻撃の軸","得点 / 創出",[90,78,70,76,82,80],"カットインと決定力","消える時間帯", "左からでも中央でも怖い。"],
      ["Frenkie de Jong","MF","Barcelona",89.0,"中盤支配","保持 / 前進",[78,94,76,82,70,86],"プレス回避","守備強度の波", "中盤の質を一段上げる存在。"],
      ["Bart Verbruggen","GK","Brighton",86.0,"守護神","セーブ / 配球",[74,78,88,78,58,76],"足元と反応","大舞台経験", "後方からの前進にも関わるGK。"]
    ]
  },
  swe: {
    key: "swe", name: "スウェーデン", displayName: "スウェーデン代表", en: "Sweden", group: "Group F", fifaRank: "今後発表予定", rating: 72.8, worldRank: 26, tournamentTeams: 48, label: "突破争い", updated: PAGE_UPDATED,
    color: "#006AA7", accent: "#FECC00", radar: [82,70,72,74,68,69],
    summary: "ギョケレシュ、イサクの前線火力が怖い突破争い候補。中盤支配よりも縦の威力で試合を動かすタイプです。",
    myView: "日本にとって最重要カードになりそうです。前線の個は怖い一方、中盤と守備の安定には隙があり、日本が主導権を取れる時間を増やしたい相手です。",
    breakdown: [{label:"個人戦力",value:44.9,max:60},{label:"代表実績",value:17.2,max:25},{label:"戦術・組織力",value:6.9,max:10},{label:"大会適性",value:3.7,max:5},{label:"総合",value:72.8,max:100}],
    strengths: ["前線の決定力", "縦に速い攻撃", "フィジカルと空中戦"],
    concerns: ["中盤の創造性", "主力の稼働リスク", "押し込まれた時の出口"],
    tactics: "守ってから前線へ速く届ける形が怖いチーム。セカンドボールとセットプレーでも一発を持っています。",
    vsJapan: "日本は供給源を断ち、背後管理を徹底したい相手。先に失点すると試合がかなり難しくなります。",
    players: [
      ["Viktor Gyokeres","FW","Arsenal",86.0,"得点源","14G / 推進力",[92,72,66,86,70,78],"強引に運べる","孤立時の支援", "一発で試合を変えるFW。"],
      ["Alexander Isak","FW","Liverpool",84.0,"前線の上限","決定力 / 背後",[90,74,62,84,70,76],"シュート精度","稼働時間", "状態が良ければ非常に危険。"],
      ["Lucas Bergvall","MF","Tottenham",70.0,"若手中盤","前進 / 補助",[76,68,68,70,72,70],"運動量","経験値", "中盤の上積み材料。"],
      ["Isak Hien","DF","Atalanta",78.0,"守備の軸","CB / 対人",[66,58,82,78,72,76],"対人守備","ビルドアップ", "守備安定の鍵。"]
    ]
  },
  tun: {
    key: "tun", name: "チュニジア", displayName: "チュニジア代表", en: "Tunisia", group: "Group F", fifaRank: "今後発表予定", rating: 68.0, worldRank: 36, tournamentTeams: 48, label: "守備型の伏兵", updated: PAGE_UPDATED,
    color: "#E70013", accent: "#FF6B6B", radar: [62,70,76,70,64,72],
    summary: "守備型の伏兵。攻撃創造性は課題ですが、守備ブロックで試合を重くできる相手です。",
    myView: "日本にとっては取りこぼしたくない一戦の相手ですが、簡単ではありません。先制できない時間が長くなるほどチュニジアの土俵になります。",
    breakdown: [{label:"個人戦力",value:38.5,max:60},{label:"代表実績",value:18.7,max:25},{label:"戦術・組織力",value:7.0,max:10},{label:"大会適性",value:3.8,max:5},{label:"総合",value:68.0,max:100}],
    strengths: ["守備ブロック", "中盤の粘り", "セットプレー"],
    concerns: ["攻撃創造性", "得点力", "押し込まれた後の出口"],
    tactics: "低めのブロックから失点を避け、カウンターとセットプレーで得点機を狙う構成。試合を膠着させる力があります。",
    vsJapan: "日本は早めに先制して相手を前に出させたいところ。焦って中央突破に偏ると、逆にカウンターを受けるリスクがあります。",
    players: [
      ["Hannibal Mejbri","MF","Burnley",76.0,"創造性の中心","1G4A / 前進",[78,72,68,74,70,72],"運ぶ力","守備負荷", "攻撃の質を上げる選手。"],
      ["Ellyes Skhiri","MF","Eintracht Frankfurt",80.0,"中盤の回収役","守備 / 走力",[64,78,78,70,72,80],"球際","攻撃貢献", "守備型チームの心臓。"],
      ["Ali Abdi","DF/WB","Nice",75.0,"左サイド","3G / 推進",[76,70,68,72,68,72],"左の推進力","背後対応", "攻守に幅を出す存在。"],
      ["Elias Achouri","FW","FC Copenhagen",72.0,"ワイド攻撃","3G3A",[74,68,62,76,66,68],"サイド突破","決定力", "カウンター時の出口。"]
    ]
  }
};

const SQUAD_SEEDS = {
  jpn: {
    GK: ["鈴木 彩艶", "大迫 敬介", "早川 友基"],
    DF: ["冨安 健洋", "板倉 滉", "谷口 彰悟", "渡辺 剛", "伊藤 洋輝", "瀬古 歩夢", "菅原 由勢", "長友 佑都"],
    MF: ["遠藤 航", "守田 英正", "田中 碧", "久保 建英", "堂安 律", "鎌田 大地", "南野 拓実"],
    FW: ["三笘 薫", "伊東 純也", "前田 大然", "上田 綺世", "小川 航基", "中村 敬斗", "鈴木 唯人", "後藤 啓介"]
  },
  ned: {
    GK: ["Bart Verbruggen", "Justin Bijlow", "Mark Flekken"],
    DF: ["Virgil van Dijk", "Nathan Ake", "Denzel Dumfries", "Micky van de Ven", "Jurrien Timber", "Stefan de Vrij", "Quilindschy Hartman", "Lutsharel Geertruida"],
    MF: ["Frenkie de Jong", "Tijjani Reijnders", "Mats Wieffer", "Ryan Gravenberch", "Jerdy Schouten", "Kenneth Taylor", "Teun Koopmeiners"],
    FW: ["Cody Gakpo", "Memphis Depay", "Donyell Malen", "Wout Weghorst", "Noa Lang", "Brian Brobbey", "Jeremie Frimpong", "Steven Bergwijn"]
  },
  swe: {
    GK: ["Robin Olsen", "Viktor Johansson", "Kristoffer Nordfeldt"],
    DF: ["Isak Hien", "Victor Lindelof", "Ludwig Augustinsson", "Emil Holm", "Gabriel Gudmundsson", "Carl Starfelt", "Hjalmar Ekdal", "Linus Wahlqvist"],
    MF: ["Lucas Bergvall", "Albin Ekdal", "Mattias Svanberg", "Hugo Larsson", "Emil Forsberg", "Jens Cajuste", "Samuel Gustafson"],
    FW: ["Viktor Gyokeres", "Alexander Isak", "Anthony Elanga", "Dejan Kulusevski", "Jesper Karlsson", "Robin Quaison", "Ken Sema", "Gustaf Nilsson"]
  },
  tun: {
    GK: ["Aymen Dahmen", "Bechir Ben Said", "Mouez Hassen"],
    DF: ["Ali Abdi", "Montassar Talbi", "Yassine Meriah", "Dylan Bronn", "Wajdi Kechrida", "Nader Ghandri", "Oussama Haddadi", "Hamza Mathlouthi"],
    MF: ["Ellyes Skhiri", "Hannibal Mejbri", "Rani Khedira", "Anis Ben Slimane", "Mohamed Ali Ben Romdhane", "Ferjani Sassi", "Aissa Laidouni"],
    FW: ["Elias Achouri", "Elias Saad", "Seifeddine Jaziri", "Youssef Msakni", "Naim Sliti", "Hamza Rafia", "Haythem Jouini", "Sayfallah Ltaief"]
  }
};

function makeSquad(key) {
  const base = TEAM_DETAILS[key];
  const seeds = SQUAD_SEEDS[key];
  const clubs = { GK: "大会直前に更新", DF: "大会直前に更新", MF: "大会直前に更新", FW: "大会直前に更新" };
  const squad = {};
  Object.keys(seeds).forEach((pos) => {
    squad[pos] = seeds[pos].map((name, idx) => ({
      name,
      pos,
      club: clubs[pos],
      rating: Math.max(62, Math.round((base.rating - 8 + (seeds[pos].length - idx) * 0.8) * 10) / 10),
      memo: idx < 2 ? "主力候補" : idx < 5 ? "ローテ候補" : "メンバー候補"
    }));
  });
  return squad;
}

Object.keys(TEAM_DETAILS).forEach((key) => {
  TEAM_DETAILS[key].squad = makeSquad(key);
  TEAM_DETAILS[key].keyPlayers = Object.values(TEAM_DETAILS[key].squad).flat().slice(0, 14);
  TEAM_DETAILS[key].fixtures = GROUPF_FIXTURES_DETAIL.filter((m) => m.teams.includes(key));
});

Object.assign(window, { TEAM_PAGE_AXES, OFFICIAL_NOTICE, PAGE_UPDATED, TEAM_URLS, GROUPF_STANDINGS, GROUPF_FIXTURES_DETAIL, GROUPF_VIEWPOINTS, FEATURED_MATCHES, TEAM_DETAILS });



