{"id":86,"date":"2025-09-24T15:10:33","date_gmt":"2025-09-24T15:10:33","guid":{"rendered":"https:\/\/fantasyfootballticker.co.uk\/?page_id=86"},"modified":"2026-04-08T16:05:16","modified_gmt":"2026-04-08T16:05:16","slug":"home","status":"publish","type":"page","link":"https:\/\/fantasyfootballticker.co.uk\/","title":{"rendered":"Fixture Ticker"},"content":{"rendered":"\n\n\t\n<!--\n    \u2500\u2500 Outer wrapper: coloured when bg != white \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n    JS will toggle the 'ft-coloured-bg' class and set --ft-bg-color.\n    The CSS below uses that to add padding + rounded corners.\n-->\n<div id=\"fixture-ticker-wrap\">\n<div id=\"fixture-ticker\" style=\"font-family:system-ui;max-width:none;margin:20px auto;padding:4px;\">\n\n    <!-- Top bar -->\n    <div style=\"display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;flex-wrap:wrap;gap:8px;\">\n        <h2 style=\"margin:0;\">Fixture Ticker<\/h2>\n        <div style=\"display:flex;gap:8px;flex-wrap:wrap;\">\n            <button id=\"gradientBtn\">Gradient<\/button>\n            <button id=\"overrideBtn\">Override<\/button>\n            <button id=\"loadOverridesBtn\">Load Overrides<\/button>\n            <button id=\"annotateModeBtn\">Annotate Mode<\/button>\n            <button id=\"settingsBtn\">\u2699 Settings<\/button>\n            <button id=\"showAllBtn\" style=\"background:#28a745;color:white;border-color:#28a745;\">Show All<\/button>\n        <\/div>\n    <\/div>\n\n    <!-- Annotate cycle buttons -->\n    <div id=\"annotateCycleButtons\" style=\"display:none;gap:10px;margin-bottom:15px;\">\n        <button class=\"annotate-cycle-btn active\" data-cycle=\"6colour\"  style=\"background:#add8e6;border:1px solid #999;\">\u26aa6\ufe0f\u20e3<\/button>\n        <button class=\"annotate-cycle-btn\" data-cycle=\"greyblack\">\u26aa\u26ab<\/button>\n        <button class=\"annotate-cycle-btn\" data-cycle=\"redyellow\">\ud83d\udd34\ud83d\udfe1<\/button>\n        <button class=\"annotate-cycle-btn\" data-cycle=\"bluegreen\">\ud83d\udd35\ud83d\udfe2<\/button>\n    <\/div>\n\n    <!-- Gradient Controls -->\n    <div id=\"gradientControls\" style=\"display:none;background:#f8f9fa;padding:15px;border-radius:8px;margin-bottom:10px;border:1px solid #ddd;\">\n        <h4 style=\"margin:0 0 10px 0;\">Gradient Scale Controls<\/h4>\n        <div style=\"display:flex;gap:30px;flex-wrap:wrap;\">\n            <div style=\"flex:1;min-width:200px;\">\n                <label style=\"display:block;margin-bottom:5px;font-weight:bold;\">Easiest Rating: <span id=\"easiestValue\">3.0<\/span><\/label>\n                <input id=\"easiestSlider\" type=\"range\" min=\"2.8\" max=\"3.6\" step=\"0.1\" value=\"3.0\">\n            <\/div>\n            <div style=\"flex:1;min-width:200px;\">\n                <label style=\"display:block;margin-bottom:5px;font-weight:bold;\">Hardest Rating: <span id=\"hardestValue\">0.5<\/span><\/label>\n                <input id=\"hardestSlider\" type=\"range\" min=\"0.2\" max=\"1\" step=\"0.1\" value=\"0.5\">\n            <\/div>\n        <\/div>\n        <div style=\"margin-top:12px;\">\n            <label style=\"display:block;margin-bottom:5px;font-weight:bold;\">Combined Scale: <span id=\"combinedValue\">0.4<\/span><\/label>\n            <input id=\"combinedSlider\" type=\"range\" min=\"0\" max=\"0.5\" step=\"0.1\" value=\"0.4\">\n            <div style=\"font-size:12px;color:#666;margin-top:3px;\">+ increases contrast (affects both sliders together)<\/div>\n        <\/div>\n    <\/div>\n\n    <!-- Settings Panel -->\n    <div id=\"settingsPanel\" style=\"display:none;background:#f8f9fa;padding:16px;border-radius:8px;margin-bottom:10px;border:1px solid #ddd;\">\n        <h4 style=\"margin:0 0 14px 0;\">\u2699 Settings<\/h4>\n        <div style=\"display:flex;gap:32px;flex-wrap:wrap;align-items:flex-start;\">\n\n            <div style=\"min-width:175px;\">\n                <div style=\"font-weight:bold;margin-bottom:8px;font-size:13px;text-transform:uppercase;letter-spacing:.5px;color:#555;\">Columns<\/div>\n                <label style=\"display:flex;align-items:center;gap:8px;margin-bottom:8px;cursor:pointer;font-size:14px;\">\n                    <input type=\"checkbox\" id=\"showRatingCol\" checked style=\"width:16px;height:16px;cursor:pointer;\">\n                    Show Rating column\n                <\/label>\n                <label style=\"display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px;\">\n                    <input type=\"checkbox\" id=\"showAvgCol\" checked style=\"width:16px;height:16px;cursor:pointer;\">\n                    Show Avg column\n                <\/label>\n            <\/div>\n\n            <div style=\"min-width:175px;\">\n                <div style=\"font-weight:bold;margin-bottom:8px;font-size:13px;text-transform:uppercase;letter-spacing:.5px;color:#555;\">Team Names<\/div>\n                <label style=\"display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px;\">\n                    <input type=\"checkbox\" id=\"showFullNames\" style=\"width:16px;height:16px;cursor:pointer;\">\n                    Show full team names\n                <\/label>\n            <\/div>\n\n            <div style=\"min-width:260px;\">\n                <div style=\"font-weight:bold;margin-bottom:8px;font-size:13px;text-transform:uppercase;letter-spacing:.5px;color:#555;\">Background Colour<\/div>\n                <div style=\"display:flex;gap:8px;flex-wrap:wrap;\">\n                    <button class=\"bg-colour-btn active-bg\" data-bg=\"white\"     style=\"background:#fff;   border:2px solid #0073aa;\">White<\/button>\n                    <button class=\"bg-colour-btn\"           data-bg=\"paleblue\"  style=\"background:#ddeeff;border:1px solid #ccc;\">Pale Blue<\/button>\n                    <button class=\"bg-colour-btn\"           data-bg=\"palegreen\" style=\"background:#ddffdd;border:1px solid #ccc;\">Pale Green<\/button>\n                    <button class=\"bg-colour-btn\"           data-bg=\"palered\"   style=\"background:#ffdddd;border:1px solid #ccc;\">Pale Red<\/button>\n                <\/div>\n            <\/div>\n\n        <\/div>\n    <\/div>\n\n    <!-- Controls row -->\n    <div style=\"display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:10px;\">\n        <label>GWs<\/label>\n        <input id=\"gwStart\" type=\"number\" min=\"1\" max=\"38\" style=\"width:60px;\">\n        <span>to<\/span>\n        <input id=\"gwEnd\" type=\"number\" min=\"1\" max=\"38\" style=\"width:60px;\">\n        <button id=\"applyGW\">Apply<\/button>\n        <label>Mode<\/label>\n        <select id=\"diffMode\" style=\"min-width:180px;\">\n            <option value=\"overall\">Overall Difficulty<\/option>\n            <option value=\"attacking\">Attacking Difficulty<\/option>\n            <option value=\"defensive\">Defensive Difficulty<\/option>\n        <\/select>\n        <label>Color<\/label>\n        <select id=\"colorScheme\">\n            <option value=\"main\">Main (Red-White-Green)<\/option>\n            <option value=\"bluered\">Blue-Red<\/option>\n            <option value=\"purpleteal\">Purple-Teal<\/option>\n            <option value=\"goldbrown\">Gold-Brown<\/option>\n            <option value=\"navyorange\">Navy-Orange<\/option>\n        <\/select>\n        <label>Home Adv<\/label>\n        <select id=\"homeAdv\">\n            <option value=\"0\">None<\/option>\n            <option value=\"-0.1\">Low<\/option>\n            <option value=\"-0.2\" selected>Standard<\/option>\n            <option value=\"-0.4\">High<\/option>\n        <\/select>\n    <\/div>\n\n    <!-- Override Modal -->\n    <div id=\"overrideModal\" style=\"display:none;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:white;box-shadow:0 4px 12px rgba(0,0,0,0.2);border-radius:10px;width:90vw;max-width:900px;max-height:85vh;overflow-y:auto;z-index:9999;padding:16px 20px;font-family:system-ui;\">\n        <h3 style=\"margin-top:0;text-align:center;\">Override Team Difficulties<\/h3>\n        <p style=\"font-size:13px;text-align:center;margin-bottom:10px;color:#444;\">Computed values shown \u2014 edit to override (1.0\u20133.0)<\/p>\n        <div style=\"overflow:auto;max-height:calc(85vh - 150px);\">\n            <table style=\"width:100%;border-collapse:collapse;font-size:13px;\">\n                <thead style=\"position:sticky;top:0;background:#fafafa;z-index:10;\">\n                    <tr><th style=\"padding:8px;text-align:left;\">Team<\/th><th style=\"padding:8px;\">Overall<\/th><th style=\"padding:8px;\">Att<\/th><th style=\"padding:8px;\">Def<\/th><\/tr>\n                <\/thead>\n                <tbody>\n                                        <tr data-tla=\"MCI\">\n                        <td style=\"padding:6px 8px;font-weight:bold;\">Manchester City<\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-overall\"\n                            value=\"1.15\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-attacking\"\n                            value=\"1.42\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-defensive\"\n                            value=\"1.00\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                    <\/tr>\n                                        <tr data-tla=\"ARS\">\n                        <td style=\"padding:6px 8px;font-weight:bold;\">Arsenal<\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-overall\"\n                            value=\"1.28\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-attacking\"\n                            value=\"1.59\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-defensive\"\n                            value=\"1.10\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                    <\/tr>\n                                        <tr data-tla=\"MUN\">\n                        <td style=\"padding:6px 8px;font-weight:bold;\">Manchester United<\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-overall\"\n                            value=\"1.67\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-attacking\"\n                            value=\"1.73\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-defensive\"\n                            value=\"1.76\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                    <\/tr>\n                                        <tr data-tla=\"AVL\">\n                        <td style=\"padding:6px 8px;font-weight:bold;\">Aston Villa<\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-overall\"\n                            value=\"1.68\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-attacking\"\n                            value=\"2.15\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-defensive\"\n                            value=\"1.96\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                    <\/tr>\n                                        <tr data-tla=\"LIV\">\n                        <td style=\"padding:6px 8px;font-weight:bold;\">Liverpool<\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-overall\"\n                            value=\"1.43\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-attacking\"\n                            value=\"1.87\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-defensive\"\n                            value=\"1.63\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                    <\/tr>\n                                        <tr data-tla=\"BHA\">\n                        <td style=\"padding:6px 8px;font-weight:bold;\">Brighton &amp; Hove Albion<\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-overall\"\n                            value=\"1.64\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-attacking\"\n                            value=\"1.96\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-defensive\"\n                            value=\"1.55\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                    <\/tr>\n                                        <tr data-tla=\"BOU\">\n                        <td style=\"padding:6px 8px;font-weight:bold;\">AFC Bournemouth<\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-overall\"\n                            value=\"1.90\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-attacking\"\n                            value=\"2.07\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-defensive\"\n                            value=\"1.80\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                    <\/tr>\n                                        <tr data-tla=\"CHE\">\n                        <td style=\"padding:6px 8px;font-weight:bold;\">Chelsea<\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-overall\"\n                            value=\"2.07\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-attacking\"\n                            value=\"2.27\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-defensive\"\n                            value=\"2.06\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                    <\/tr>\n                                        <tr data-tla=\"BRE\">\n                        <td style=\"padding:6px 8px;font-weight:bold;\">Brentford<\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-overall\"\n                            value=\"2.07\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-attacking\"\n                            value=\"2.21\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-defensive\"\n                            value=\"1.81\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                    <\/tr>\n                                        <tr data-tla=\"EVE\">\n                        <td style=\"padding:6px 8px;font-weight:bold;\">Everton<\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-overall\"\n                            value=\"2.17\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-attacking\"\n                            value=\"2.25\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-defensive\"\n                            value=\"1.96\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                    <\/tr>\n                                        <tr data-tla=\"SUN\">\n                        <td style=\"padding:6px 8px;font-weight:bold;\">Sunderland<\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-overall\"\n                            value=\"2.38\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-attacking\"\n                            value=\"2.56\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-defensive\"\n                            value=\"1.86\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                    <\/tr>\n                                        <tr data-tla=\"FUL\">\n                        <td style=\"padding:6px 8px;font-weight:bold;\">Fulham<\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-overall\"\n                            value=\"2.14\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-attacking\"\n                            value=\"2.42\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-defensive\"\n                            value=\"1.78\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                    <\/tr>\n                                        <tr data-tla=\"CRY\">\n                        <td style=\"padding:6px 8px;font-weight:bold;\">Crystal Palace<\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-overall\"\n                            value=\"2.09\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-attacking\"\n                            value=\"2.36\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-defensive\"\n                            value=\"1.56\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                    <\/tr>\n                                        <tr data-tla=\"NEW\">\n                        <td style=\"padding:6px 8px;font-weight:bold;\">Newcastle United<\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-overall\"\n                            value=\"2.11\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-attacking\"\n                            value=\"2.15\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-defensive\"\n                            value=\"2.03\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                    <\/tr>\n                                        <tr data-tla=\"LEE\">\n                        <td style=\"padding:6px 8px;font-weight:bold;\">Leeds United<\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-overall\"\n                            value=\"2.55\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-attacking\"\n                            value=\"2.31\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-defensive\"\n                            value=\"1.63\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                    <\/tr>\n                                        <tr data-tla=\"NFO\">\n                        <td style=\"padding:6px 8px;font-weight:bold;\">Nottingham Forest<\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-overall\"\n                            value=\"2.33\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-attacking\"\n                            value=\"2.48\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-defensive\"\n                            value=\"1.81\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                    <\/tr>\n                                        <tr data-tla=\"WHU\">\n                        <td style=\"padding:6px 8px;font-weight:bold;\">West Ham United<\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-overall\"\n                            value=\"2.55\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-attacking\"\n                            value=\"2.54\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-defensive\"\n                            value=\"2.12\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                    <\/tr>\n                                        <tr data-tla=\"TOT\">\n                        <td style=\"padding:6px 8px;font-weight:bold;\">Tottenham Hotspur<\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-overall\"\n                            value=\"2.66\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-attacking\"\n                            value=\"2.43\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-defensive\"\n                            value=\"2.41\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                    <\/tr>\n                                        <tr data-tla=\"BUR\">\n                        <td style=\"padding:6px 8px;font-weight:bold;\">Burnley<\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-overall\"\n                            value=\"2.96\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-attacking\"\n                            value=\"2.84\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-defensive\"\n                            value=\"3.00\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                    <\/tr>\n                                        <tr data-tla=\"WOL\">\n                        <td style=\"padding:6px 8px;font-weight:bold;\">Wolverhampton Wanderers<\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-overall\"\n                            value=\"2.70\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-attacking\"\n                            value=\"2.84\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                        <td style=\"padding:4px;text-align:center;\"><input type=\"number\" step=\"0.01\" min=\"1.0\" max=\"3.0\" class=\"override-defensive\"\n                            value=\"2.52\"\n                            style=\"width:70px;border:1px solid #ccc;border-radius:6px;padding:5px 6px;font-size:13px;text-align:center;\"><\/td>\n                    <\/tr>\n                                    <\/tbody>\n            <\/table>\n        <\/div>\n        <div style=\"text-align:center;margin-top:15px;position:sticky;bottom:0;background:white;padding-top:10px;border-top:1px solid #eee;\">\n            <button id=\"overrideSave\"  style=\"background:#0073aa;color:#fff;border:none;border-radius:8px;padding:7px 16px;font-size:14px;cursor:pointer;\">Save<\/button>\n            <button id=\"overrideReset\" style=\"background:#e0e0e0;color:#333;border:none;border-radius:8px;padding:7px 16px;font-size:14px;margin-left:8px;cursor:pointer;\">Reset to Computed<\/button>\n            <button id=\"overrideClose\" style=\"background:#ccc;color:#333;border:none;border-radius:8px;padding:7px 16px;font-size:14px;margin-left:8px;cursor:pointer;\">Close<\/button>\n        <\/div>\n    <\/div>\n\n    <!-- Desktop table (hidden on mobile via CSS) -->\n    <div id=\"ft-desktop\">\n        <div style=\"overflow:auto;-webkit-overflow-scrolling:touch;\">\n            <table id=\"ftTable\" style=\"width:100%;border-collapse:collapse;\">\n                <thead><tr><\/tr><\/thead>\n                <tbody><\/tbody>\n            <\/table>\n        <\/div>\n    <\/div>\n\n    <!-- Mobile card layout (hidden on desktop via CSS) -->\n    <div id=\"ft-mobile\"><\/div>\n\n<\/div><!-- \/#fixture-ticker -->\n<\/div><!-- \/#fixture-ticker-wrap -->\n\n<script>\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n\n    if (typeof window.fixtureData === 'undefined') {\n        window.fixtureData = {\"teams\":[{\"short\":\"MCI\",\"name\":\"Manchester City\",\"difficulty\":{\"tla\":\"MCI\",\"base\":1.2857142857142856,\"form\":1.2,\"position\":1,\"overall\":1.1457142857142857,\"attacking\":1.4183333333333337,\"defensive\":1},\"fixtures\":{\"1\":{\"opponent\":\"WOL\",\"home\":false,\"diff\":2.7042857142857146},\"2\":{\"opponent\":\"TOT\",\"home\":true,\"diff\":2.658646616541353},\"3\":{\"opponent\":\"BHA\",\"home\":false,\"diff\":1.6433834586466167},\"4\":{\"opponent\":\"MUN\",\"home\":true,\"diff\":1.6670676691729323},\"5\":{\"opponent\":\"ARS\",\"home\":false,\"diff\":1.2821052631578949},\"6\":{\"opponent\":\"BUR\",\"home\":true,\"diff\":2.957894736842105},\"7\":{\"opponent\":\"BRE\",\"home\":false,\"diff\":2.0696992481203007},\"8\":{\"opponent\":\"EVE\",\"home\":true,\"diff\":2.167518796992481},\"9\":{\"opponent\":\"AVL\",\"home\":false,\"diff\":1.6791729323308269},\"10\":{\"opponent\":\"BOU\",\"home\":true,\"diff\":1.8954887218045113},\"11\":{\"opponent\":\"LIV\",\"home\":true,\"diff\":1.4341353383458646},\"12\":{\"opponent\":\"NEW\",\"home\":false,\"diff\":2.108796992481203},\"13\":{\"opponent\":\"LEE\",\"home\":true,\"diff\":2.5494736842105263},\"14\":{\"opponent\":\"FUL\",\"home\":false,\"diff\":2.136015037593985},\"15\":{\"opponent\":\"SUN\",\"home\":true,\"diff\":2.381052631578947},\"16\":{\"opponent\":\"CRY\",\"home\":false,\"diff\":2.08812030075188},\"17\":{\"opponent\":\"WHU\",\"home\":true,\"diff\":2.5479699248120298},\"18\":{\"opponent\":\"NFO\",\"home\":false,\"diff\":2.334436090225564},\"19\":{\"opponent\":\"SUN\",\"home\":false,\"diff\":2.381052631578947},\"20\":{\"opponent\":\"CHE\",\"home\":true,\"diff\":2.0661654135338345},\"21\":{\"opponent\":\"BHA\",\"home\":true,\"diff\":1.6433834586466167},\"22\":{\"opponent\":\"MUN\",\"home\":false,\"diff\":1.6670676691729323},\"23\":{\"opponent\":\"WOL\",\"home\":true,\"diff\":2.7042857142857146},\"24\":{\"opponent\":\"TOT\",\"home\":false,\"diff\":2.658646616541353},\"25\":{\"opponent\":\"LIV\",\"home\":false,\"diff\":1.4341353383458646},\"26\":{\"opponent\":\"FUL\",\"home\":true,\"diff\":2.136015037593985},\"27\":{\"opponent\":\"NEW\",\"home\":true,\"diff\":2.108796992481203},\"28\":{\"opponent\":\"LEE\",\"home\":false,\"diff\":2.5494736842105263},\"29\":{\"opponent\":\"NFO\",\"home\":true,\"diff\":2.334436090225564},\"30\":{\"opponent\":\"WHU\",\"home\":false,\"diff\":2.5479699248120298},\"32\":{\"opponent\":\"CHE\",\"home\":false,\"diff\":2.0661654135338345},\"33\":{\"opponent\":\"ARS\",\"home\":true,\"diff\":1.2821052631578949},\"34\":{\"opponent\":\"BUR\",\"home\":false,\"diff\":2.957894736842105},\"35\":{\"opponent\":\"EVE\",\"home\":false,\"diff\":2.167518796992481},\"36\":{\"opponent\":\"BRE\",\"home\":true,\"diff\":2.0696992481203007},\"37\":{\"opponent\":\"BOU\",\"home\":false,\"diff\":1.8954887218045113},\"31\":{\"opponent\":\"CRY\",\"home\":true,\"diff\":2.08812030075188},\"38\":{\"opponent\":\"AVL\",\"home\":true,\"diff\":1.6791729323308269}}},{\"short\":\"ARS\",\"name\":\"Arsenal\",\"difficulty\":{\"tla\":\"ARS\",\"base\":1,\"form\":1.8,\"position\":1.1052631578947367,\"overall\":1.2821052631578949,\"attacking\":1.5940909090909094,\"defensive\":1.0955631399317403},\"fixtures\":{\"1\":{\"opponent\":\"MUN\",\"home\":false,\"diff\":1.6670676691729323},\"2\":{\"opponent\":\"LEE\",\"home\":true,\"diff\":2.5494736842105263},\"3\":{\"opponent\":\"LIV\",\"home\":false,\"diff\":1.4341353383458646},\"4\":{\"opponent\":\"NFO\",\"home\":true,\"diff\":2.334436090225564},\"5\":{\"opponent\":\"MCI\",\"home\":true,\"diff\":1.1457142857142857},\"6\":{\"opponent\":\"NEW\",\"home\":false,\"diff\":2.108796992481203},\"7\":{\"opponent\":\"WHU\",\"home\":true,\"diff\":2.5479699248120298},\"8\":{\"opponent\":\"FUL\",\"home\":false,\"diff\":2.136015037593985},\"9\":{\"opponent\":\"CRY\",\"home\":true,\"diff\":2.08812030075188},\"10\":{\"opponent\":\"BUR\",\"home\":false,\"diff\":2.957894736842105},\"11\":{\"opponent\":\"SUN\",\"home\":false,\"diff\":2.381052631578947},\"12\":{\"opponent\":\"TOT\",\"home\":true,\"diff\":2.658646616541353},\"13\":{\"opponent\":\"CHE\",\"home\":false,\"diff\":2.0661654135338345},\"14\":{\"opponent\":\"BRE\",\"home\":true,\"diff\":2.0696992481203007},\"15\":{\"opponent\":\"AVL\",\"home\":false,\"diff\":1.6791729323308269},\"16\":{\"opponent\":\"WOL\",\"home\":true,\"diff\":2.7042857142857146},\"17\":{\"opponent\":\"EVE\",\"home\":false,\"diff\":2.167518796992481},\"18\":{\"opponent\":\"BHA\",\"home\":true,\"diff\":1.6433834586466167},\"19\":{\"opponent\":\"AVL\",\"home\":true,\"diff\":1.6791729323308269},\"20\":{\"opponent\":\"BOU\",\"home\":false,\"diff\":1.8954887218045113},\"21\":{\"opponent\":\"LIV\",\"home\":true,\"diff\":1.4341353383458646},\"22\":{\"opponent\":\"NFO\",\"home\":false,\"diff\":2.334436090225564},\"23\":{\"opponent\":\"MUN\",\"home\":true,\"diff\":1.6670676691729323},\"24\":{\"opponent\":\"LEE\",\"home\":false,\"diff\":2.5494736842105263},\"25\":{\"opponent\":\"SUN\",\"home\":true,\"diff\":2.381052631578947},\"26\":{\"opponent\":\"BRE\",\"home\":false,\"diff\":2.0696992481203007},\"31\":{\"opponent\":\"WOL\",\"home\":false,\"diff\":2.7042857142857146},\"27\":{\"opponent\":\"TOT\",\"home\":false,\"diff\":2.658646616541353},\"28\":{\"opponent\":\"CHE\",\"home\":true,\"diff\":2.0661654135338345},\"29\":{\"opponent\":\"BHA\",\"home\":false,\"diff\":1.6433834586466167},\"30\":{\"opponent\":\"EVE\",\"home\":true,\"diff\":2.167518796992481},\"32\":{\"opponent\":\"BOU\",\"home\":true,\"diff\":1.8954887218045113},\"33\":{\"opponent\":\"MCI\",\"home\":false,\"diff\":1.1457142857142857},\"34\":{\"opponent\":\"NEW\",\"home\":true,\"diff\":2.108796992481203},\"35\":{\"opponent\":\"FUL\",\"home\":true,\"diff\":2.136015037593985},\"36\":{\"opponent\":\"WHU\",\"home\":false,\"diff\":2.5479699248120298},\"37\":{\"opponent\":\"BUR\",\"home\":true,\"diff\":2.957894736842105},\"38\":{\"opponent\":\"CRY\",\"home\":false,\"diff\":2.08812030075188}}},{\"short\":\"MUN\",\"name\":\"Manchester United\",\"difficulty\":{\"tla\":\"MUN\",\"base\":2.142857142857143,\"form\":1.8,\"position\":1.2105263157894737,\"overall\":1.6670676691729323,\"attacking\":1.7309090909090912,\"defensive\":1.7574841540711845},\"fixtures\":{\"1\":{\"opponent\":\"ARS\",\"home\":true,\"diff\":1.2821052631578949},\"2\":{\"opponent\":\"FUL\",\"home\":false,\"diff\":2.136015037593985},\"3\":{\"opponent\":\"BUR\",\"home\":true,\"diff\":2.957894736842105},\"4\":{\"opponent\":\"MCI\",\"home\":false,\"diff\":1.1457142857142857},\"5\":{\"opponent\":\"CHE\",\"home\":true,\"diff\":2.0661654135338345},\"6\":{\"opponent\":\"BRE\",\"home\":false,\"diff\":2.0696992481203007},\"7\":{\"opponent\":\"SUN\",\"home\":true,\"diff\":2.381052631578947},\"8\":{\"opponent\":\"LIV\",\"home\":false,\"diff\":1.4341353383458646},\"9\":{\"opponent\":\"BHA\",\"home\":true,\"diff\":1.6433834586466167},\"10\":{\"opponent\":\"NFO\",\"home\":false,\"diff\":2.334436090225564},\"11\":{\"opponent\":\"TOT\",\"home\":false,\"diff\":2.658646616541353},\"12\":{\"opponent\":\"EVE\",\"home\":true,\"diff\":2.167518796992481},\"13\":{\"opponent\":\"CRY\",\"home\":false,\"diff\":2.08812030075188},\"14\":{\"opponent\":\"WHU\",\"home\":true,\"diff\":2.5479699248120298},\"15\":{\"opponent\":\"WOL\",\"home\":false,\"diff\":2.7042857142857146},\"16\":{\"opponent\":\"BOU\",\"home\":true,\"diff\":1.8954887218045113},\"17\":{\"opponent\":\"AVL\",\"home\":false,\"diff\":1.6791729323308269},\"18\":{\"opponent\":\"NEW\",\"home\":true,\"diff\":2.108796992481203},\"19\":{\"opponent\":\"WOL\",\"home\":true,\"diff\":2.7042857142857146},\"20\":{\"opponent\":\"LEE\",\"home\":false,\"diff\":2.5494736842105263},\"21\":{\"opponent\":\"BUR\",\"home\":false,\"diff\":2.957894736842105},\"22\":{\"opponent\":\"MCI\",\"home\":true,\"diff\":1.1457142857142857},\"23\":{\"opponent\":\"ARS\",\"home\":false,\"diff\":1.2821052631578949},\"24\":{\"opponent\":\"FUL\",\"home\":true,\"diff\":2.136015037593985},\"25\":{\"opponent\":\"TOT\",\"home\":true,\"diff\":2.658646616541353},\"26\":{\"opponent\":\"WHU\",\"home\":false,\"diff\":2.5479699248120298},\"27\":{\"opponent\":\"EVE\",\"home\":false,\"diff\":2.167518796992481},\"28\":{\"opponent\":\"CRY\",\"home\":true,\"diff\":2.08812030075188},\"29\":{\"opponent\":\"NEW\",\"home\":false,\"diff\":2.108796992481203},\"30\":{\"opponent\":\"AVL\",\"home\":true,\"diff\":1.6791729323308269},\"31\":{\"opponent\":\"BOU\",\"home\":false,\"diff\":1.8954887218045113},\"32\":{\"opponent\":\"LEE\",\"home\":true,\"diff\":2.5494736842105263},\"33\":{\"opponent\":\"CHE\",\"home\":false,\"diff\":2.0661654135338345},\"34\":{\"opponent\":\"BRE\",\"home\":true,\"diff\":2.0696992481203007},\"35\":{\"opponent\":\"LIV\",\"home\":true,\"diff\":1.4341353383458646},\"36\":{\"opponent\":\"SUN\",\"home\":false,\"diff\":2.381052631578947},\"37\":{\"opponent\":\"NFO\",\"home\":true,\"diff\":2.334436090225564},\"38\":{\"opponent\":\"BHA\",\"home\":false,\"diff\":1.6433834586466167}}},{\"short\":\"AVL\",\"name\":\"Aston Villa\",\"difficulty\":{\"tla\":\"AVL\",\"base\":1.7428571428571429,\"form\":2.0999999999999996,\"position\":1.3157894736842106,\"overall\":1.6791729323308269,\"attacking\":2.145909090909091,\"defensive\":1.9585568015602144},\"fixtures\":{\"1\":{\"opponent\":\"NEW\",\"home\":true,\"diff\":2.108796992481203},\"2\":{\"opponent\":\"BRE\",\"home\":false,\"diff\":2.0696992481203007},\"3\":{\"opponent\":\"CRY\",\"home\":true,\"diff\":2.08812030075188},\"4\":{\"opponent\":\"EVE\",\"home\":false,\"diff\":2.167518796992481},\"5\":{\"opponent\":\"SUN\",\"home\":false,\"diff\":2.381052631578947},\"6\":{\"opponent\":\"FUL\",\"home\":true,\"diff\":2.136015037593985},\"7\":{\"opponent\":\"BUR\",\"home\":true,\"diff\":2.957894736842105},\"8\":{\"opponent\":\"TOT\",\"home\":false,\"diff\":2.658646616541353},\"9\":{\"opponent\":\"MCI\",\"home\":true,\"diff\":1.1457142857142857},\"10\":{\"opponent\":\"LIV\",\"home\":false,\"diff\":1.4341353383458646},\"11\":{\"opponent\":\"BOU\",\"home\":true,\"diff\":1.8954887218045113},\"12\":{\"opponent\":\"LEE\",\"home\":false,\"diff\":2.5494736842105263},\"13\":{\"opponent\":\"WOL\",\"home\":true,\"diff\":2.7042857142857146},\"14\":{\"opponent\":\"BHA\",\"home\":false,\"diff\":1.6433834586466167},\"15\":{\"opponent\":\"ARS\",\"home\":true,\"diff\":1.2821052631578949},\"16\":{\"opponent\":\"WHU\",\"home\":false,\"diff\":2.5479699248120298},\"17\":{\"opponent\":\"MUN\",\"home\":true,\"diff\":1.6670676691729323},\"18\":{\"opponent\":\"CHE\",\"home\":false,\"diff\":2.0661654135338345},\"19\":{\"opponent\":\"ARS\",\"home\":false,\"diff\":1.2821052631578949},\"20\":{\"opponent\":\"NFO\",\"home\":true,\"diff\":2.334436090225564},\"21\":{\"opponent\":\"CRY\",\"home\":false,\"diff\":2.08812030075188},\"22\":{\"opponent\":\"EVE\",\"home\":true,\"diff\":2.167518796992481},\"23\":{\"opponent\":\"NEW\",\"home\":false,\"diff\":2.108796992481203},\"24\":{\"opponent\":\"BRE\",\"home\":true,\"diff\":2.0696992481203007},\"25\":{\"opponent\":\"BOU\",\"home\":false,\"diff\":1.8954887218045113},\"26\":{\"opponent\":\"BHA\",\"home\":true,\"diff\":1.6433834586466167},\"27\":{\"opponent\":\"LEE\",\"home\":true,\"diff\":2.5494736842105263},\"28\":{\"opponent\":\"WOL\",\"home\":false,\"diff\":2.7042857142857146},\"29\":{\"opponent\":\"CHE\",\"home\":true,\"diff\":2.0661654135338345},\"30\":{\"opponent\":\"MUN\",\"home\":false,\"diff\":1.6670676691729323},\"31\":{\"opponent\":\"WHU\",\"home\":true,\"diff\":2.5479699248120298},\"32\":{\"opponent\":\"NFO\",\"home\":false,\"diff\":2.334436090225564},\"33\":{\"opponent\":\"SUN\",\"home\":true,\"diff\":2.381052631578947},\"34\":{\"opponent\":\"FUL\",\"home\":false,\"diff\":2.136015037593985},\"35\":{\"opponent\":\"TOT\",\"home\":true,\"diff\":2.658646616541353},\"36\":{\"opponent\":\"BUR\",\"home\":false,\"diff\":2.957894736842105},\"37\":{\"opponent\":\"LIV\",\"home\":true,\"diff\":1.4341353383458646},\"38\":{\"opponent\":\"MCI\",\"home\":false,\"diff\":1.1457142857142857}}},{\"short\":\"LIV\",\"name\":\"Liverpool\",\"difficulty\":{\"tla\":\"LIV\",\"base\":1.2857142857142856,\"form\":1.6,\"position\":1.4210526315789473,\"overall\":1.4341353383458646,\"attacking\":1.8696969696969699,\"defensive\":1.6316918576304238},\"fixtures\":{\"1\":{\"opponent\":\"BOU\",\"home\":true,\"diff\":1.8954887218045113},\"2\":{\"opponent\":\"NEW\",\"home\":false,\"diff\":2.108796992481203},\"3\":{\"opponent\":\"ARS\",\"home\":true,\"diff\":1.2821052631578949},\"4\":{\"opponent\":\"BUR\",\"home\":false,\"diff\":2.957894736842105},\"5\":{\"opponent\":\"EVE\",\"home\":true,\"diff\":2.167518796992481},\"6\":{\"opponent\":\"CRY\",\"home\":false,\"diff\":2.08812030075188},\"7\":{\"opponent\":\"CHE\",\"home\":false,\"diff\":2.0661654135338345},\"8\":{\"opponent\":\"MUN\",\"home\":true,\"diff\":1.6670676691729323},\"9\":{\"opponent\":\"BRE\",\"home\":false,\"diff\":2.0696992481203007},\"10\":{\"opponent\":\"AVL\",\"home\":true,\"diff\":1.6791729323308269},\"11\":{\"opponent\":\"MCI\",\"home\":false,\"diff\":1.1457142857142857},\"12\":{\"opponent\":\"NFO\",\"home\":true,\"diff\":2.334436090225564},\"13\":{\"opponent\":\"WHU\",\"home\":false,\"diff\":2.5479699248120298},\"14\":{\"opponent\":\"SUN\",\"home\":true,\"diff\":2.381052631578947},\"15\":{\"opponent\":\"LEE\",\"home\":false,\"diff\":2.5494736842105263},\"16\":{\"opponent\":\"BHA\",\"home\":true,\"diff\":1.6433834586466167},\"17\":{\"opponent\":\"TOT\",\"home\":false,\"diff\":2.658646616541353},\"18\":{\"opponent\":\"WOL\",\"home\":true,\"diff\":2.7042857142857146},\"19\":{\"opponent\":\"LEE\",\"home\":true,\"diff\":2.5494736842105263},\"20\":{\"opponent\":\"FUL\",\"home\":false,\"diff\":2.136015037593985},\"21\":{\"opponent\":\"ARS\",\"home\":false,\"diff\":1.2821052631578949},\"22\":{\"opponent\":\"BUR\",\"home\":true,\"diff\":2.957894736842105},\"23\":{\"opponent\":\"BOU\",\"home\":false,\"diff\":1.8954887218045113},\"24\":{\"opponent\":\"NEW\",\"home\":true,\"diff\":2.108796992481203},\"25\":{\"opponent\":\"MCI\",\"home\":true,\"diff\":1.1457142857142857},\"26\":{\"opponent\":\"SUN\",\"home\":false,\"diff\":2.381052631578947},\"27\":{\"opponent\":\"NFO\",\"home\":false,\"diff\":2.334436090225564},\"28\":{\"opponent\":\"WHU\",\"home\":true,\"diff\":2.5479699248120298},\"29\":{\"opponent\":\"WOL\",\"home\":false,\"diff\":2.7042857142857146},\"30\":{\"opponent\":\"TOT\",\"home\":true,\"diff\":2.658646616541353},\"31\":{\"opponent\":\"BHA\",\"home\":false,\"diff\":1.6433834586466167},\"32\":{\"opponent\":\"FUL\",\"home\":true,\"diff\":2.136015037593985},\"33\":{\"opponent\":\"EVE\",\"home\":false,\"diff\":2.167518796992481},\"34\":{\"opponent\":\"CRY\",\"home\":true,\"diff\":2.08812030075188},\"35\":{\"opponent\":\"MUN\",\"home\":false,\"diff\":1.6670676691729323},\"36\":{\"opponent\":\"CHE\",\"home\":true,\"diff\":2.0661654135338345},\"37\":{\"opponent\":\"AVL\",\"home\":false,\"diff\":1.6791729323308269},\"38\":{\"opponent\":\"BRE\",\"home\":true,\"diff\":2.0696992481203007}}},{\"short\":\"BHA\",\"name\":\"Brighton & Hove Albion\",\"difficulty\":{\"tla\":\"BHA\",\"base\":2.142857142857143,\"form\":1.3,\"position\":1.526315789473684,\"overall\":1.6433834586466167,\"attacking\":1.9606862745098042,\"defensive\":1.5462471678091032},\"fixtures\":{\"1\":{\"opponent\":\"FUL\",\"home\":true,\"diff\":2.136015037593985},\"2\":{\"opponent\":\"EVE\",\"home\":false,\"diff\":2.167518796992481},\"3\":{\"opponent\":\"MCI\",\"home\":true,\"diff\":1.1457142857142857},\"4\":{\"opponent\":\"BOU\",\"home\":false,\"diff\":1.8954887218045113},\"5\":{\"opponent\":\"TOT\",\"home\":true,\"diff\":2.658646616541353},\"6\":{\"opponent\":\"CHE\",\"home\":false,\"diff\":2.0661654135338345},\"7\":{\"opponent\":\"WOL\",\"home\":false,\"diff\":2.7042857142857146},\"8\":{\"opponent\":\"NEW\",\"home\":true,\"diff\":2.108796992481203},\"9\":{\"opponent\":\"MUN\",\"home\":false,\"diff\":1.6670676691729323},\"10\":{\"opponent\":\"LEE\",\"home\":true,\"diff\":2.5494736842105263},\"11\":{\"opponent\":\"CRY\",\"home\":false,\"diff\":2.08812030075188},\"12\":{\"opponent\":\"BRE\",\"home\":true,\"diff\":2.0696992481203007},\"13\":{\"opponent\":\"NFO\",\"home\":false,\"diff\":2.334436090225564},\"14\":{\"opponent\":\"AVL\",\"home\":true,\"diff\":1.6791729323308269},\"15\":{\"opponent\":\"WHU\",\"home\":true,\"diff\":2.5479699248120298},\"16\":{\"opponent\":\"LIV\",\"home\":false,\"diff\":1.4341353383458646},\"17\":{\"opponent\":\"SUN\",\"home\":true,\"diff\":2.381052631578947},\"18\":{\"opponent\":\"ARS\",\"home\":false,\"diff\":1.2821052631578949},\"19\":{\"opponent\":\"WHU\",\"home\":false,\"diff\":2.5479699248120298},\"20\":{\"opponent\":\"BUR\",\"home\":true,\"diff\":2.957894736842105},\"21\":{\"opponent\":\"MCI\",\"home\":false,\"diff\":1.1457142857142857},\"22\":{\"opponent\":\"BOU\",\"home\":true,\"diff\":1.8954887218045113},\"23\":{\"opponent\":\"FUL\",\"home\":false,\"diff\":2.136015037593985},\"24\":{\"opponent\":\"EVE\",\"home\":true,\"diff\":2.167518796992481},\"25\":{\"opponent\":\"CRY\",\"home\":true,\"diff\":2.08812030075188},\"26\":{\"opponent\":\"AVL\",\"home\":false,\"diff\":1.6791729323308269},\"27\":{\"opponent\":\"BRE\",\"home\":false,\"diff\":2.0696992481203007},\"28\":{\"opponent\":\"NFO\",\"home\":true,\"diff\":2.334436090225564},\"29\":{\"opponent\":\"ARS\",\"home\":true,\"diff\":1.2821052631578949},\"30\":{\"opponent\":\"SUN\",\"home\":false,\"diff\":2.381052631578947},\"31\":{\"opponent\":\"LIV\",\"home\":true,\"diff\":1.4341353383458646},\"32\":{\"opponent\":\"BUR\",\"home\":false,\"diff\":2.957894736842105},\"33\":{\"opponent\":\"TOT\",\"home\":false,\"diff\":2.658646616541353},\"34\":{\"opponent\":\"CHE\",\"home\":true,\"diff\":2.0661654135338345},\"35\":{\"opponent\":\"NEW\",\"home\":false,\"diff\":2.108796992481203},\"36\":{\"opponent\":\"WOL\",\"home\":true,\"diff\":2.7042857142857146},\"37\":{\"opponent\":\"LEE\",\"home\":false,\"diff\":2.5494736842105263},\"38\":{\"opponent\":\"MUN\",\"home\":true,\"diff\":1.6670676691729323}}},{\"short\":\"BOU\",\"name\":\"AFC Bournemouth\",\"difficulty\":{\"tla\":\"BOU\",\"base\":2.142857142857143,\"form\":2,\"position\":1.631578947368421,\"overall\":1.8954887218045113,\"attacking\":2.0675490196078434,\"defensive\":1.7974990678865401},\"fixtures\":{\"1\":{\"opponent\":\"LIV\",\"home\":false,\"diff\":1.4341353383458646},\"2\":{\"opponent\":\"WOL\",\"home\":true,\"diff\":2.7042857142857146},\"3\":{\"opponent\":\"TOT\",\"home\":false,\"diff\":2.658646616541353},\"4\":{\"opponent\":\"BHA\",\"home\":true,\"diff\":1.6433834586466167},\"5\":{\"opponent\":\"NEW\",\"home\":true,\"diff\":2.108796992481203},\"6\":{\"opponent\":\"LEE\",\"home\":false,\"diff\":2.5494736842105263},\"7\":{\"opponent\":\"FUL\",\"home\":true,\"diff\":2.136015037593985},\"8\":{\"opponent\":\"CRY\",\"home\":false,\"diff\":2.08812030075188},\"9\":{\"opponent\":\"NFO\",\"home\":true,\"diff\":2.334436090225564},\"10\":{\"opponent\":\"MCI\",\"home\":false,\"diff\":1.1457142857142857},\"11\":{\"opponent\":\"AVL\",\"home\":false,\"diff\":1.6791729323308269},\"12\":{\"opponent\":\"WHU\",\"home\":true,\"diff\":2.5479699248120298},\"13\":{\"opponent\":\"SUN\",\"home\":false,\"diff\":2.381052631578947},\"14\":{\"opponent\":\"EVE\",\"home\":true,\"diff\":2.167518796992481},\"15\":{\"opponent\":\"CHE\",\"home\":true,\"diff\":2.0661654135338345},\"16\":{\"opponent\":\"MUN\",\"home\":false,\"diff\":1.6670676691729323},\"17\":{\"opponent\":\"BUR\",\"home\":true,\"diff\":2.957894736842105},\"18\":{\"opponent\":\"BRE\",\"home\":false,\"diff\":2.0696992481203007},\"19\":{\"opponent\":\"CHE\",\"home\":false,\"diff\":2.0661654135338345},\"20\":{\"opponent\":\"ARS\",\"home\":true,\"diff\":1.2821052631578949},\"21\":{\"opponent\":\"TOT\",\"home\":true,\"diff\":2.658646616541353},\"22\":{\"opponent\":\"BHA\",\"home\":false,\"diff\":1.6433834586466167},\"23\":{\"opponent\":\"LIV\",\"home\":true,\"diff\":1.4341353383458646},\"24\":{\"opponent\":\"WOL\",\"home\":false,\"diff\":2.7042857142857146},\"25\":{\"opponent\":\"AVL\",\"home\":true,\"diff\":1.6791729323308269},\"26\":{\"opponent\":\"EVE\",\"home\":false,\"diff\":2.167518796992481},\"27\":{\"opponent\":\"WHU\",\"home\":false,\"diff\":2.5479699248120298},\"28\":{\"opponent\":\"SUN\",\"home\":true,\"diff\":2.381052631578947},\"29\":{\"opponent\":\"BRE\",\"home\":true,\"diff\":2.0696992481203007},\"30\":{\"opponent\":\"BUR\",\"home\":false,\"diff\":2.957894736842105},\"31\":{\"opponent\":\"MUN\",\"home\":true,\"diff\":1.6670676691729323},\"32\":{\"opponent\":\"ARS\",\"home\":false,\"diff\":1.2821052631578949},\"33\":{\"opponent\":\"NEW\",\"home\":false,\"diff\":2.108796992481203},\"34\":{\"opponent\":\"LEE\",\"home\":true,\"diff\":2.5494736842105263},\"35\":{\"opponent\":\"CRY\",\"home\":true,\"diff\":2.08812030075188},\"36\":{\"opponent\":\"FUL\",\"home\":false,\"diff\":2.136015037593985},\"37\":{\"opponent\":\"MCI\",\"home\":true,\"diff\":1.1457142857142857},\"38\":{\"opponent\":\"NFO\",\"home\":false,\"diff\":2.334436090225564}}},{\"short\":\"CHE\",\"name\":\"Chelsea\",\"difficulty\":{\"tla\":\"CHE\",\"base\":1.5714285714285714,\"form\":3,\"position\":1.736842105263158,\"overall\":2.0661654135338345,\"attacking\":2.2700980392156866,\"defensive\":2.062884676054722},\"fixtures\":{\"1\":{\"opponent\":\"CRY\",\"home\":true,\"diff\":2.08812030075188},\"2\":{\"opponent\":\"WHU\",\"home\":false,\"diff\":2.5479699248120298},\"3\":{\"opponent\":\"FUL\",\"home\":true,\"diff\":2.136015037593985},\"4\":{\"opponent\":\"BRE\",\"home\":false,\"diff\":2.0696992481203007},\"5\":{\"opponent\":\"MUN\",\"home\":false,\"diff\":1.6670676691729323},\"6\":{\"opponent\":\"BHA\",\"home\":true,\"diff\":1.6433834586466167},\"7\":{\"opponent\":\"LIV\",\"home\":true,\"diff\":1.4341353383458646},\"8\":{\"opponent\":\"NFO\",\"home\":false,\"diff\":2.334436090225564},\"9\":{\"opponent\":\"SUN\",\"home\":true,\"diff\":2.381052631578947},\"10\":{\"opponent\":\"TOT\",\"home\":false,\"diff\":2.658646616541353},\"11\":{\"opponent\":\"WOL\",\"home\":true,\"diff\":2.7042857142857146},\"12\":{\"opponent\":\"BUR\",\"home\":false,\"diff\":2.957894736842105},\"13\":{\"opponent\":\"ARS\",\"home\":true,\"diff\":1.2821052631578949},\"14\":{\"opponent\":\"LEE\",\"home\":false,\"diff\":2.5494736842105263},\"15\":{\"opponent\":\"BOU\",\"home\":false,\"diff\":1.8954887218045113},\"16\":{\"opponent\":\"EVE\",\"home\":true,\"diff\":2.167518796992481},\"17\":{\"opponent\":\"NEW\",\"home\":false,\"diff\":2.108796992481203},\"18\":{\"opponent\":\"AVL\",\"home\":true,\"diff\":1.6791729323308269},\"19\":{\"opponent\":\"BOU\",\"home\":true,\"diff\":1.8954887218045113},\"20\":{\"opponent\":\"MCI\",\"home\":false,\"diff\":1.1457142857142857},\"21\":{\"opponent\":\"FUL\",\"home\":false,\"diff\":2.136015037593985},\"22\":{\"opponent\":\"BRE\",\"home\":true,\"diff\":2.0696992481203007},\"23\":{\"opponent\":\"CRY\",\"home\":false,\"diff\":2.08812030075188},\"24\":{\"opponent\":\"WHU\",\"home\":true,\"diff\":2.5479699248120298},\"25\":{\"opponent\":\"WOL\",\"home\":false,\"diff\":2.7042857142857146},\"26\":{\"opponent\":\"LEE\",\"home\":true,\"diff\":2.5494736842105263},\"27\":{\"opponent\":\"BUR\",\"home\":true,\"diff\":2.957894736842105},\"28\":{\"opponent\":\"ARS\",\"home\":false,\"diff\":1.2821052631578949},\"29\":{\"opponent\":\"AVL\",\"home\":false,\"diff\":1.6791729323308269},\"30\":{\"opponent\":\"NEW\",\"home\":true,\"diff\":2.108796992481203},\"31\":{\"opponent\":\"EVE\",\"home\":false,\"diff\":2.167518796992481},\"32\":{\"opponent\":\"MCI\",\"home\":true,\"diff\":1.1457142857142857},\"33\":{\"opponent\":\"MUN\",\"home\":true,\"diff\":1.6670676691729323},\"34\":{\"opponent\":\"BHA\",\"home\":false,\"diff\":1.6433834586466167},\"35\":{\"opponent\":\"NFO\",\"home\":true,\"diff\":2.334436090225564},\"36\":{\"opponent\":\"LIV\",\"home\":false,\"diff\":1.4341353383458646},\"37\":{\"opponent\":\"TOT\",\"home\":true,\"diff\":2.658646616541353},\"38\":{\"opponent\":\"SUN\",\"home\":false,\"diff\":2.381052631578947}}},{\"short\":\"BRE\",\"name\":\"Brentford\",\"difficulty\":{\"tla\":\"BRE\",\"base\":2.142857142857143,\"form\":2.3,\"position\":1.8421052631578947,\"overall\":2.0696992481203007,\"attacking\":2.212878787878788,\"defensive\":1.8093612871769869},\"fixtures\":{\"1\":{\"opponent\":\"NFO\",\"home\":false,\"diff\":2.334436090225564},\"2\":{\"opponent\":\"AVL\",\"home\":true,\"diff\":1.6791729323308269},\"3\":{\"opponent\":\"SUN\",\"home\":false,\"diff\":2.381052631578947},\"4\":{\"opponent\":\"CHE\",\"home\":true,\"diff\":2.0661654135338345},\"5\":{\"opponent\":\"FUL\",\"home\":false,\"diff\":2.136015037593985},\"6\":{\"opponent\":\"MUN\",\"home\":true,\"diff\":1.6670676691729323},\"7\":{\"opponent\":\"MCI\",\"home\":true,\"diff\":1.1457142857142857},\"8\":{\"opponent\":\"WHU\",\"home\":false,\"diff\":2.5479699248120298},\"9\":{\"opponent\":\"LIV\",\"home\":true,\"diff\":1.4341353383458646},\"10\":{\"opponent\":\"CRY\",\"home\":false,\"diff\":2.08812030075188},\"11\":{\"opponent\":\"NEW\",\"home\":true,\"diff\":2.108796992481203},\"12\":{\"opponent\":\"BHA\",\"home\":false,\"diff\":1.6433834586466167},\"13\":{\"opponent\":\"BUR\",\"home\":true,\"diff\":2.957894736842105},\"14\":{\"opponent\":\"ARS\",\"home\":false,\"diff\":1.2821052631578949},\"15\":{\"opponent\":\"TOT\",\"home\":false,\"diff\":2.658646616541353},\"16\":{\"opponent\":\"LEE\",\"home\":true,\"diff\":2.5494736842105263},\"17\":{\"opponent\":\"WOL\",\"home\":false,\"diff\":2.7042857142857146},\"18\":{\"opponent\":\"BOU\",\"home\":true,\"diff\":1.8954887218045113},\"19\":{\"opponent\":\"TOT\",\"home\":true,\"diff\":2.658646616541353},\"20\":{\"opponent\":\"EVE\",\"home\":false,\"diff\":2.167518796992481},\"21\":{\"opponent\":\"SUN\",\"home\":true,\"diff\":2.381052631578947},\"22\":{\"opponent\":\"CHE\",\"home\":false,\"diff\":2.0661654135338345},\"23\":{\"opponent\":\"NFO\",\"home\":true,\"diff\":2.334436090225564},\"24\":{\"opponent\":\"AVL\",\"home\":false,\"diff\":1.6791729323308269},\"25\":{\"opponent\":\"NEW\",\"home\":false,\"diff\":2.108796992481203},\"26\":{\"opponent\":\"ARS\",\"home\":true,\"diff\":1.2821052631578949},\"27\":{\"opponent\":\"BHA\",\"home\":true,\"diff\":1.6433834586466167},\"28\":{\"opponent\":\"BUR\",\"home\":false,\"diff\":2.957894736842105},\"29\":{\"opponent\":\"BOU\",\"home\":false,\"diff\":1.8954887218045113},\"30\":{\"opponent\":\"WOL\",\"home\":true,\"diff\":2.7042857142857146},\"31\":{\"opponent\":\"LEE\",\"home\":false,\"diff\":2.5494736842105263},\"32\":{\"opponent\":\"EVE\",\"home\":true,\"diff\":2.167518796992481},\"33\":{\"opponent\":\"FUL\",\"home\":true,\"diff\":2.136015037593985},\"34\":{\"opponent\":\"MUN\",\"home\":false,\"diff\":1.6670676691729323},\"35\":{\"opponent\":\"WHU\",\"home\":true,\"diff\":2.5479699248120298},\"36\":{\"opponent\":\"MCI\",\"home\":false,\"diff\":1.1457142857142857},\"37\":{\"opponent\":\"CRY\",\"home\":true,\"diff\":2.08812030075188},\"38\":{\"opponent\":\"LIV\",\"home\":false,\"diff\":1.4341353383458646}}},{\"short\":\"EVE\",\"name\":\"Everton\",\"difficulty\":{\"tla\":\"EVE\",\"base\":2.428571428571429,\"form\":2.1999999999999997,\"position\":1.9473684210526314,\"overall\":2.167518796992481,\"attacking\":2.247121212121212,\"defensive\":1.961482203803023},\"fixtures\":{\"1\":{\"opponent\":\"LEE\",\"home\":false,\"diff\":2.5494736842105263},\"2\":{\"opponent\":\"BHA\",\"home\":true,\"diff\":1.6433834586466167},\"3\":{\"opponent\":\"WOL\",\"home\":false,\"diff\":2.7042857142857146},\"4\":{\"opponent\":\"AVL\",\"home\":true,\"diff\":1.6791729323308269},\"5\":{\"opponent\":\"LIV\",\"home\":false,\"diff\":1.4341353383458646},\"6\":{\"opponent\":\"WHU\",\"home\":true,\"diff\":2.5479699248120298},\"7\":{\"opponent\":\"CRY\",\"home\":true,\"diff\":2.08812030075188},\"8\":{\"opponent\":\"MCI\",\"home\":false,\"diff\":1.1457142857142857},\"9\":{\"opponent\":\"TOT\",\"home\":true,\"diff\":2.658646616541353},\"10\":{\"opponent\":\"SUN\",\"home\":false,\"diff\":2.381052631578947},\"11\":{\"opponent\":\"FUL\",\"home\":true,\"diff\":2.136015037593985},\"12\":{\"opponent\":\"MUN\",\"home\":false,\"diff\":1.6670676691729323},\"13\":{\"opponent\":\"NEW\",\"home\":true,\"diff\":2.108796992481203},\"14\":{\"opponent\":\"BOU\",\"home\":false,\"diff\":1.8954887218045113},\"15\":{\"opponent\":\"NFO\",\"home\":true,\"diff\":2.334436090225564},\"16\":{\"opponent\":\"CHE\",\"home\":false,\"diff\":2.0661654135338345},\"17\":{\"opponent\":\"ARS\",\"home\":true,\"diff\":1.2821052631578949},\"18\":{\"opponent\":\"BUR\",\"home\":false,\"diff\":2.957894736842105},\"19\":{\"opponent\":\"NFO\",\"home\":false,\"diff\":2.334436090225564},\"20\":{\"opponent\":\"BRE\",\"home\":true,\"diff\":2.0696992481203007},\"21\":{\"opponent\":\"WOL\",\"home\":true,\"diff\":2.7042857142857146},\"22\":{\"opponent\":\"AVL\",\"home\":false,\"diff\":1.6791729323308269},\"23\":{\"opponent\":\"LEE\",\"home\":true,\"diff\":2.5494736842105263},\"24\":{\"opponent\":\"BHA\",\"home\":false,\"diff\":1.6433834586466167},\"25\":{\"opponent\":\"FUL\",\"home\":false,\"diff\":2.136015037593985},\"26\":{\"opponent\":\"BOU\",\"home\":true,\"diff\":1.8954887218045113},\"27\":{\"opponent\":\"MUN\",\"home\":true,\"diff\":1.6670676691729323},\"28\":{\"opponent\":\"NEW\",\"home\":false,\"diff\":2.108796992481203},\"29\":{\"opponent\":\"BUR\",\"home\":true,\"diff\":2.957894736842105},\"30\":{\"opponent\":\"ARS\",\"home\":false,\"diff\":1.2821052631578949},\"31\":{\"opponent\":\"CHE\",\"home\":true,\"diff\":2.0661654135338345},\"32\":{\"opponent\":\"BRE\",\"home\":false,\"diff\":2.0696992481203007},\"33\":{\"opponent\":\"LIV\",\"home\":true,\"diff\":1.4341353383458646},\"34\":{\"opponent\":\"WHU\",\"home\":false,\"diff\":2.5479699248120298},\"35\":{\"opponent\":\"MCI\",\"home\":true,\"diff\":1.1457142857142857},\"36\":{\"opponent\":\"CRY\",\"home\":false,\"diff\":2.08812030075188},\"37\":{\"opponent\":\"SUN\",\"home\":true,\"diff\":2.381052631578947},\"38\":{\"opponent\":\"TOT\",\"home\":false,\"diff\":2.658646616541353}}},{\"short\":\"SUN\",\"name\":\"Sunderland\",\"difficulty\":{\"tla\":\"SUN\",\"base\":3,\"form\":2.1999999999999997,\"position\":2.052631578947368,\"overall\":2.381052631578947,\"attacking\":2.560909090909091,\"defensive\":1.862408581179912},\"fixtures\":{\"1\":{\"opponent\":\"WHU\",\"home\":true,\"diff\":2.5479699248120298},\"2\":{\"opponent\":\"BUR\",\"home\":false,\"diff\":2.957894736842105},\"3\":{\"opponent\":\"BRE\",\"home\":true,\"diff\":2.0696992481203007},\"4\":{\"opponent\":\"CRY\",\"home\":false,\"diff\":2.08812030075188},\"5\":{\"opponent\":\"AVL\",\"home\":true,\"diff\":1.6791729323308269},\"6\":{\"opponent\":\"NFO\",\"home\":false,\"diff\":2.334436090225564},\"7\":{\"opponent\":\"MUN\",\"home\":false,\"diff\":1.6670676691729323},\"8\":{\"opponent\":\"WOL\",\"home\":true,\"diff\":2.7042857142857146},\"9\":{\"opponent\":\"CHE\",\"home\":false,\"diff\":2.0661654135338345},\"10\":{\"opponent\":\"EVE\",\"home\":true,\"diff\":2.167518796992481},\"11\":{\"opponent\":\"ARS\",\"home\":true,\"diff\":1.2821052631578949},\"12\":{\"opponent\":\"FUL\",\"home\":false,\"diff\":2.136015037593985},\"13\":{\"opponent\":\"BOU\",\"home\":true,\"diff\":1.8954887218045113},\"14\":{\"opponent\":\"LIV\",\"home\":false,\"diff\":1.4341353383458646},\"15\":{\"opponent\":\"MCI\",\"home\":false,\"diff\":1.1457142857142857},\"16\":{\"opponent\":\"NEW\",\"home\":true,\"diff\":2.108796992481203},\"17\":{\"opponent\":\"BHA\",\"home\":false,\"diff\":1.6433834586466167},\"18\":{\"opponent\":\"LEE\",\"home\":true,\"diff\":2.5494736842105263},\"19\":{\"opponent\":\"MCI\",\"home\":true,\"diff\":1.1457142857142857},\"20\":{\"opponent\":\"TOT\",\"home\":false,\"diff\":2.658646616541353},\"21\":{\"opponent\":\"BRE\",\"home\":false,\"diff\":2.0696992481203007},\"22\":{\"opponent\":\"CRY\",\"home\":true,\"diff\":2.08812030075188},\"23\":{\"opponent\":\"WHU\",\"home\":false,\"diff\":2.5479699248120298},\"24\":{\"opponent\":\"BUR\",\"home\":true,\"diff\":2.957894736842105},\"25\":{\"opponent\":\"ARS\",\"home\":false,\"diff\":1.2821052631578949},\"26\":{\"opponent\":\"LIV\",\"home\":true,\"diff\":1.4341353383458646},\"27\":{\"opponent\":\"FUL\",\"home\":true,\"diff\":2.136015037593985},\"28\":{\"opponent\":\"BOU\",\"home\":false,\"diff\":1.8954887218045113},\"29\":{\"opponent\":\"LEE\",\"home\":false,\"diff\":2.5494736842105263},\"30\":{\"opponent\":\"BHA\",\"home\":true,\"diff\":1.6433834586466167},\"31\":{\"opponent\":\"NEW\",\"home\":false,\"diff\":2.108796992481203},\"32\":{\"opponent\":\"TOT\",\"home\":true,\"diff\":2.658646616541353},\"33\":{\"opponent\":\"AVL\",\"home\":false,\"diff\":1.6791729323308269},\"34\":{\"opponent\":\"NFO\",\"home\":true,\"diff\":2.334436090225564},\"35\":{\"opponent\":\"WOL\",\"home\":false,\"diff\":2.7042857142857146},\"36\":{\"opponent\":\"MUN\",\"home\":true,\"diff\":1.6670676691729323},\"37\":{\"opponent\":\"EVE\",\"home\":false,\"diff\":2.167518796992481},\"38\":{\"opponent\":\"CHE\",\"home\":true,\"diff\":2.0661654135338345}}},{\"short\":\"FUL\",\"name\":\"Fulham\",\"difficulty\":{\"tla\":\"FUL\",\"base\":2.142857142857143,\"form\":2.0999999999999996,\"position\":2.1578947368421053,\"overall\":2.136015037593985,\"attacking\":2.4213636363636364,\"defensive\":1.7849829351535835},\"fixtures\":{\"1\":{\"opponent\":\"BHA\",\"home\":false,\"diff\":1.6433834586466167},\"2\":{\"opponent\":\"MUN\",\"home\":true,\"diff\":1.6670676691729323},\"3\":{\"opponent\":\"CHE\",\"home\":false,\"diff\":2.0661654135338345},\"4\":{\"opponent\":\"LEE\",\"home\":true,\"diff\":2.5494736842105263},\"5\":{\"opponent\":\"BRE\",\"home\":true,\"diff\":2.0696992481203007},\"6\":{\"opponent\":\"AVL\",\"home\":false,\"diff\":1.6791729323308269},\"7\":{\"opponent\":\"BOU\",\"home\":false,\"diff\":1.8954887218045113},\"8\":{\"opponent\":\"ARS\",\"home\":true,\"diff\":1.2821052631578949},\"9\":{\"opponent\":\"NEW\",\"home\":false,\"diff\":2.108796992481203},\"10\":{\"opponent\":\"WOL\",\"home\":true,\"diff\":2.7042857142857146},\"11\":{\"opponent\":\"EVE\",\"home\":false,\"diff\":2.167518796992481},\"12\":{\"opponent\":\"SUN\",\"home\":true,\"diff\":2.381052631578947},\"13\":{\"opponent\":\"TOT\",\"home\":false,\"diff\":2.658646616541353},\"14\":{\"opponent\":\"MCI\",\"home\":true,\"diff\":1.1457142857142857},\"15\":{\"opponent\":\"CRY\",\"home\":true,\"diff\":2.08812030075188},\"16\":{\"opponent\":\"BUR\",\"home\":false,\"diff\":2.957894736842105},\"17\":{\"opponent\":\"NFO\",\"home\":true,\"diff\":2.334436090225564},\"18\":{\"opponent\":\"WHU\",\"home\":false,\"diff\":2.5479699248120298},\"19\":{\"opponent\":\"CRY\",\"home\":false,\"diff\":2.08812030075188},\"20\":{\"opponent\":\"LIV\",\"home\":true,\"diff\":1.4341353383458646},\"21\":{\"opponent\":\"CHE\",\"home\":true,\"diff\":2.0661654135338345},\"22\":{\"opponent\":\"LEE\",\"home\":false,\"diff\":2.5494736842105263},\"23\":{\"opponent\":\"BHA\",\"home\":true,\"diff\":1.6433834586466167},\"24\":{\"opponent\":\"MUN\",\"home\":false,\"diff\":1.6670676691729323},\"25\":{\"opponent\":\"EVE\",\"home\":true,\"diff\":2.167518796992481},\"26\":{\"opponent\":\"MCI\",\"home\":false,\"diff\":1.1457142857142857},\"27\":{\"opponent\":\"SUN\",\"home\":false,\"diff\":2.381052631578947},\"28\":{\"opponent\":\"TOT\",\"home\":true,\"diff\":2.658646616541353},\"29\":{\"opponent\":\"WHU\",\"home\":true,\"diff\":2.5479699248120298},\"30\":{\"opponent\":\"NFO\",\"home\":false,\"diff\":2.334436090225564},\"31\":{\"opponent\":\"BUR\",\"home\":true,\"diff\":2.957894736842105},\"32\":{\"opponent\":\"LIV\",\"home\":false,\"diff\":1.4341353383458646},\"33\":{\"opponent\":\"BRE\",\"home\":false,\"diff\":2.0696992481203007},\"34\":{\"opponent\":\"AVL\",\"home\":true,\"diff\":1.6791729323308269},\"35\":{\"opponent\":\"ARS\",\"home\":false,\"diff\":1.2821052631578949},\"36\":{\"opponent\":\"BOU\",\"home\":true,\"diff\":1.8954887218045113},\"37\":{\"opponent\":\"WOL\",\"home\":false,\"diff\":2.7042857142857146},\"38\":{\"opponent\":\"NEW\",\"home\":true,\"diff\":2.108796992481203}}},{\"short\":\"CRY\",\"name\":\"Crystal Palace\",\"difficulty\":{\"tla\":\"CRY\",\"base\":2.142857142857143,\"form\":1.8,\"position\":2.263157894736842,\"overall\":2.08812030075188,\"attacking\":2.3607291666666668,\"defensive\":1.5642613359336908},\"fixtures\":{\"1\":{\"opponent\":\"CHE\",\"home\":false,\"diff\":2.0661654135338345},\"2\":{\"opponent\":\"NFO\",\"home\":true,\"diff\":2.334436090225564},\"3\":{\"opponent\":\"AVL\",\"home\":false,\"diff\":1.6791729323308269},\"4\":{\"opponent\":\"SUN\",\"home\":true,\"diff\":2.381052631578947},\"5\":{\"opponent\":\"WHU\",\"home\":false,\"diff\":2.5479699248120298},\"6\":{\"opponent\":\"LIV\",\"home\":true,\"diff\":1.4341353383458646},\"7\":{\"opponent\":\"EVE\",\"home\":false,\"diff\":2.167518796992481},\"8\":{\"opponent\":\"BOU\",\"home\":true,\"diff\":1.8954887218045113},\"9\":{\"opponent\":\"ARS\",\"home\":false,\"diff\":1.2821052631578949},\"10\":{\"opponent\":\"BRE\",\"home\":true,\"diff\":2.0696992481203007},\"11\":{\"opponent\":\"BHA\",\"home\":true,\"diff\":1.6433834586466167},\"12\":{\"opponent\":\"WOL\",\"home\":false,\"diff\":2.7042857142857146},\"13\":{\"opponent\":\"MUN\",\"home\":true,\"diff\":1.6670676691729323},\"14\":{\"opponent\":\"BUR\",\"home\":false,\"diff\":2.957894736842105},\"15\":{\"opponent\":\"FUL\",\"home\":false,\"diff\":2.136015037593985},\"16\":{\"opponent\":\"MCI\",\"home\":true,\"diff\":1.1457142857142857},\"17\":{\"opponent\":\"LEE\",\"home\":false,\"diff\":2.5494736842105263},\"18\":{\"opponent\":\"TOT\",\"home\":true,\"diff\":2.658646616541353},\"19\":{\"opponent\":\"FUL\",\"home\":true,\"diff\":2.136015037593985},\"20\":{\"opponent\":\"NEW\",\"home\":false,\"diff\":2.108796992481203},\"21\":{\"opponent\":\"AVL\",\"home\":true,\"diff\":1.6791729323308269},\"22\":{\"opponent\":\"SUN\",\"home\":false,\"diff\":2.381052631578947},\"23\":{\"opponent\":\"CHE\",\"home\":true,\"diff\":2.0661654135338345},\"24\":{\"opponent\":\"NFO\",\"home\":false,\"diff\":2.334436090225564},\"25\":{\"opponent\":\"BHA\",\"home\":false,\"diff\":1.6433834586466167},\"26\":{\"opponent\":\"BUR\",\"home\":true,\"diff\":2.957894736842105},\"27\":{\"opponent\":\"WOL\",\"home\":true,\"diff\":2.7042857142857146},\"28\":{\"opponent\":\"MUN\",\"home\":false,\"diff\":1.6670676691729323},\"29\":{\"opponent\":\"TOT\",\"home\":false,\"diff\":2.658646616541353},\"30\":{\"opponent\":\"LEE\",\"home\":true,\"diff\":2.5494736842105263},\"32\":{\"opponent\":\"NEW\",\"home\":true,\"diff\":2.108796992481203},\"33\":{\"opponent\":\"WHU\",\"home\":true,\"diff\":2.5479699248120298},\"34\":{\"opponent\":\"LIV\",\"home\":false,\"diff\":1.4341353383458646},\"35\":{\"opponent\":\"BOU\",\"home\":false,\"diff\":1.8954887218045113},\"36\":{\"opponent\":\"EVE\",\"home\":true,\"diff\":2.167518796992481},\"37\":{\"opponent\":\"BRE\",\"home\":false,\"diff\":2.0696992481203007},\"31\":{\"opponent\":\"MCI\",\"home\":false,\"diff\":1.1457142857142857},\"38\":{\"opponent\":\"ARS\",\"home\":true,\"diff\":1.2821052631578949}}},{\"short\":\"NEW\",\"name\":\"Newcastle United\",\"difficulty\":{\"tla\":\"NEW\",\"base\":1.5714285714285714,\"form\":2.3,\"position\":2.3684210526315788,\"overall\":2.108796992481203,\"attacking\":2.1472727272727274,\"defensive\":2.03266699171136},\"fixtures\":{\"1\":{\"opponent\":\"AVL\",\"home\":false,\"diff\":1.6791729323308269},\"2\":{\"opponent\":\"LIV\",\"home\":true,\"diff\":1.4341353383458646},\"3\":{\"opponent\":\"LEE\",\"home\":false,\"diff\":2.5494736842105263},\"4\":{\"opponent\":\"WOL\",\"home\":true,\"diff\":2.7042857142857146},\"5\":{\"opponent\":\"BOU\",\"home\":false,\"diff\":1.8954887218045113},\"6\":{\"opponent\":\"ARS\",\"home\":true,\"diff\":1.2821052631578949},\"7\":{\"opponent\":\"NFO\",\"home\":true,\"diff\":2.334436090225564},\"8\":{\"opponent\":\"BHA\",\"home\":false,\"diff\":1.6433834586466167},\"9\":{\"opponent\":\"FUL\",\"home\":true,\"diff\":2.136015037593985},\"10\":{\"opponent\":\"WHU\",\"home\":false,\"diff\":2.5479699248120298},\"11\":{\"opponent\":\"BRE\",\"home\":false,\"diff\":2.0696992481203007},\"12\":{\"opponent\":\"MCI\",\"home\":true,\"diff\":1.1457142857142857},\"13\":{\"opponent\":\"EVE\",\"home\":false,\"diff\":2.167518796992481},\"14\":{\"opponent\":\"TOT\",\"home\":true,\"diff\":2.658646616541353},\"15\":{\"opponent\":\"BUR\",\"home\":true,\"diff\":2.957894736842105},\"16\":{\"opponent\":\"SUN\",\"home\":false,\"diff\":2.381052631578947},\"17\":{\"opponent\":\"CHE\",\"home\":true,\"diff\":2.0661654135338345},\"18\":{\"opponent\":\"MUN\",\"home\":false,\"diff\":1.6670676691729323},\"19\":{\"opponent\":\"BUR\",\"home\":false,\"diff\":2.957894736842105},\"20\":{\"opponent\":\"CRY\",\"home\":true,\"diff\":2.08812030075188},\"21\":{\"opponent\":\"LEE\",\"home\":true,\"diff\":2.5494736842105263},\"22\":{\"opponent\":\"WOL\",\"home\":false,\"diff\":2.7042857142857146},\"23\":{\"opponent\":\"AVL\",\"home\":true,\"diff\":1.6791729323308269},\"24\":{\"opponent\":\"LIV\",\"home\":false,\"diff\":1.4341353383458646},\"25\":{\"opponent\":\"BRE\",\"home\":true,\"diff\":2.0696992481203007},\"26\":{\"opponent\":\"TOT\",\"home\":false,\"diff\":2.658646616541353},\"27\":{\"opponent\":\"MCI\",\"home\":false,\"diff\":1.1457142857142857},\"28\":{\"opponent\":\"EVE\",\"home\":true,\"diff\":2.167518796992481},\"29\":{\"opponent\":\"MUN\",\"home\":true,\"diff\":1.6670676691729323},\"30\":{\"opponent\":\"CHE\",\"home\":false,\"diff\":2.0661654135338345},\"31\":{\"opponent\":\"SUN\",\"home\":true,\"diff\":2.381052631578947},\"32\":{\"opponent\":\"CRY\",\"home\":false,\"diff\":2.08812030075188},\"33\":{\"opponent\":\"BOU\",\"home\":true,\"diff\":1.8954887218045113},\"34\":{\"opponent\":\"ARS\",\"home\":false,\"diff\":1.2821052631578949},\"35\":{\"opponent\":\"BHA\",\"home\":true,\"diff\":1.6433834586466167},\"36\":{\"opponent\":\"NFO\",\"home\":false,\"diff\":2.334436090225564},\"37\":{\"opponent\":\"WHU\",\"home\":true,\"diff\":2.5479699248120298},\"38\":{\"opponent\":\"FUL\",\"home\":false,\"diff\":2.136015037593985}}},{\"short\":\"LEE\",\"name\":\"Leeds United\",\"difficulty\":{\"tla\":\"LEE\",\"base\":3,\"form\":2.1999999999999997,\"position\":2.473684210526316,\"overall\":2.5494736842105263,\"attacking\":2.307156862745098,\"defensive\":1.6334470989761094},\"fixtures\":{\"1\":{\"opponent\":\"EVE\",\"home\":true,\"diff\":2.167518796992481},\"2\":{\"opponent\":\"ARS\",\"home\":false,\"diff\":1.2821052631578949},\"3\":{\"opponent\":\"NEW\",\"home\":true,\"diff\":2.108796992481203},\"4\":{\"opponent\":\"FUL\",\"home\":false,\"diff\":2.136015037593985},\"5\":{\"opponent\":\"WOL\",\"home\":false,\"diff\":2.7042857142857146},\"6\":{\"opponent\":\"BOU\",\"home\":true,\"diff\":1.8954887218045113},\"7\":{\"opponent\":\"TOT\",\"home\":true,\"diff\":2.658646616541353},\"8\":{\"opponent\":\"BUR\",\"home\":false,\"diff\":2.957894736842105},\"9\":{\"opponent\":\"WHU\",\"home\":true,\"diff\":2.5479699248120298},\"10\":{\"opponent\":\"BHA\",\"home\":false,\"diff\":1.6433834586466167},\"11\":{\"opponent\":\"NFO\",\"home\":false,\"diff\":2.334436090225564},\"12\":{\"opponent\":\"AVL\",\"home\":true,\"diff\":1.6791729323308269},\"13\":{\"opponent\":\"MCI\",\"home\":false,\"diff\":1.1457142857142857},\"14\":{\"opponent\":\"CHE\",\"home\":true,\"diff\":2.0661654135338345},\"15\":{\"opponent\":\"LIV\",\"home\":true,\"diff\":1.4341353383458646},\"16\":{\"opponent\":\"BRE\",\"home\":false,\"diff\":2.0696992481203007},\"17\":{\"opponent\":\"CRY\",\"home\":true,\"diff\":2.08812030075188},\"18\":{\"opponent\":\"SUN\",\"home\":false,\"diff\":2.381052631578947},\"19\":{\"opponent\":\"LIV\",\"home\":false,\"diff\":1.4341353383458646},\"20\":{\"opponent\":\"MUN\",\"home\":true,\"diff\":1.6670676691729323},\"21\":{\"opponent\":\"NEW\",\"home\":false,\"diff\":2.108796992481203},\"22\":{\"opponent\":\"FUL\",\"home\":true,\"diff\":2.136015037593985},\"23\":{\"opponent\":\"EVE\",\"home\":false,\"diff\":2.167518796992481},\"24\":{\"opponent\":\"ARS\",\"home\":true,\"diff\":1.2821052631578949},\"25\":{\"opponent\":\"NFO\",\"home\":true,\"diff\":2.334436090225564},\"26\":{\"opponent\":\"CHE\",\"home\":false,\"diff\":2.0661654135338345},\"27\":{\"opponent\":\"AVL\",\"home\":false,\"diff\":1.6791729323308269},\"28\":{\"opponent\":\"MCI\",\"home\":true,\"diff\":1.1457142857142857},\"29\":{\"opponent\":\"SUN\",\"home\":true,\"diff\":2.381052631578947},\"30\":{\"opponent\":\"CRY\",\"home\":false,\"diff\":2.08812030075188},\"31\":{\"opponent\":\"BRE\",\"home\":true,\"diff\":2.0696992481203007},\"32\":{\"opponent\":\"MUN\",\"home\":false,\"diff\":1.6670676691729323},\"33\":{\"opponent\":\"WOL\",\"home\":true,\"diff\":2.7042857142857146},\"34\":{\"opponent\":\"BOU\",\"home\":false,\"diff\":1.8954887218045113},\"35\":{\"opponent\":\"BUR\",\"home\":true,\"diff\":2.957894736842105},\"36\":{\"opponent\":\"TOT\",\"home\":false,\"diff\":2.658646616541353},\"37\":{\"opponent\":\"BHA\",\"home\":true,\"diff\":1.6433834586466167},\"38\":{\"opponent\":\"WHU\",\"home\":false,\"diff\":2.5479699248120298}}},{\"short\":\"NFO\",\"name\":\"Nottingham Forest\",\"difficulty\":{\"tla\":\"NFO\",\"base\":2.142857142857143,\"form\":2.1999999999999997,\"position\":2.5789473684210527,\"overall\":2.334436090225564,\"attacking\":2.482575757575758,\"defensive\":1.8132618235007314},\"fixtures\":{\"1\":{\"opponent\":\"BRE\",\"home\":true,\"diff\":2.0696992481203007},\"2\":{\"opponent\":\"CRY\",\"home\":false,\"diff\":2.08812030075188},\"3\":{\"opponent\":\"WHU\",\"home\":true,\"diff\":2.5479699248120298},\"4\":{\"opponent\":\"ARS\",\"home\":false,\"diff\":1.2821052631578949},\"5\":{\"opponent\":\"BUR\",\"home\":false,\"diff\":2.957894736842105},\"6\":{\"opponent\":\"SUN\",\"home\":true,\"diff\":2.381052631578947},\"7\":{\"opponent\":\"NEW\",\"home\":false,\"diff\":2.108796992481203},\"8\":{\"opponent\":\"CHE\",\"home\":true,\"diff\":2.0661654135338345},\"9\":{\"opponent\":\"BOU\",\"home\":false,\"diff\":1.8954887218045113},\"10\":{\"opponent\":\"MUN\",\"home\":true,\"diff\":1.6670676691729323},\"11\":{\"opponent\":\"LEE\",\"home\":true,\"diff\":2.5494736842105263},\"12\":{\"opponent\":\"LIV\",\"home\":false,\"diff\":1.4341353383458646},\"13\":{\"opponent\":\"BHA\",\"home\":true,\"diff\":1.6433834586466167},\"14\":{\"opponent\":\"WOL\",\"home\":false,\"diff\":2.7042857142857146},\"15\":{\"opponent\":\"EVE\",\"home\":false,\"diff\":2.167518796992481},\"16\":{\"opponent\":\"TOT\",\"home\":true,\"diff\":2.658646616541353},\"17\":{\"opponent\":\"FUL\",\"home\":false,\"diff\":2.136015037593985},\"18\":{\"opponent\":\"MCI\",\"home\":true,\"diff\":1.1457142857142857},\"19\":{\"opponent\":\"EVE\",\"home\":true,\"diff\":2.167518796992481},\"20\":{\"opponent\":\"AVL\",\"home\":false,\"diff\":1.6791729323308269},\"21\":{\"opponent\":\"WHU\",\"home\":false,\"diff\":2.5479699248120298},\"22\":{\"opponent\":\"ARS\",\"home\":true,\"diff\":1.2821052631578949},\"23\":{\"opponent\":\"BRE\",\"home\":false,\"diff\":2.0696992481203007},\"24\":{\"opponent\":\"CRY\",\"home\":true,\"diff\":2.08812030075188},\"25\":{\"opponent\":\"LEE\",\"home\":false,\"diff\":2.5494736842105263},\"26\":{\"opponent\":\"WOL\",\"home\":true,\"diff\":2.7042857142857146},\"27\":{\"opponent\":\"LIV\",\"home\":true,\"diff\":1.4341353383458646},\"28\":{\"opponent\":\"BHA\",\"home\":false,\"diff\":1.6433834586466167},\"29\":{\"opponent\":\"MCI\",\"home\":false,\"diff\":1.1457142857142857},\"30\":{\"opponent\":\"FUL\",\"home\":true,\"diff\":2.136015037593985},\"31\":{\"opponent\":\"TOT\",\"home\":false,\"diff\":2.658646616541353},\"32\":{\"opponent\":\"AVL\",\"home\":true,\"diff\":1.6791729323308269},\"33\":{\"opponent\":\"BUR\",\"home\":true,\"diff\":2.957894736842105},\"34\":{\"opponent\":\"SUN\",\"home\":false,\"diff\":2.381052631578947},\"35\":{\"opponent\":\"CHE\",\"home\":false,\"diff\":2.0661654135338345},\"36\":{\"opponent\":\"NEW\",\"home\":true,\"diff\":2.108796992481203},\"37\":{\"opponent\":\"MUN\",\"home\":false,\"diff\":1.6670676691729323},\"38\":{\"opponent\":\"BOU\",\"home\":true,\"diff\":1.8954887218045113}}},{\"short\":\"WHU\",\"name\":\"West Ham United\",\"difficulty\":{\"tla\":\"WHU\",\"base\":2.7142857142857144,\"form\":2.1999999999999997,\"position\":2.6842105263157894,\"overall\":2.5479699248120298,\"attacking\":2.5404545454545455,\"defensive\":2.1196489517308628},\"fixtures\":{\"1\":{\"opponent\":\"SUN\",\"home\":false,\"diff\":2.381052631578947},\"2\":{\"opponent\":\"CHE\",\"home\":true,\"diff\":2.0661654135338345},\"3\":{\"opponent\":\"NFO\",\"home\":false,\"diff\":2.334436090225564},\"4\":{\"opponent\":\"TOT\",\"home\":true,\"diff\":2.658646616541353},\"5\":{\"opponent\":\"CRY\",\"home\":true,\"diff\":2.08812030075188},\"6\":{\"opponent\":\"EVE\",\"home\":false,\"diff\":2.167518796992481},\"7\":{\"opponent\":\"ARS\",\"home\":false,\"diff\":1.2821052631578949},\"8\":{\"opponent\":\"BRE\",\"home\":true,\"diff\":2.0696992481203007},\"9\":{\"opponent\":\"LEE\",\"home\":false,\"diff\":2.5494736842105263},\"10\":{\"opponent\":\"NEW\",\"home\":true,\"diff\":2.108796992481203},\"11\":{\"opponent\":\"BUR\",\"home\":true,\"diff\":2.957894736842105},\"12\":{\"opponent\":\"BOU\",\"home\":false,\"diff\":1.8954887218045113},\"13\":{\"opponent\":\"LIV\",\"home\":true,\"diff\":1.4341353383458646},\"14\":{\"opponent\":\"MUN\",\"home\":false,\"diff\":1.6670676691729323},\"15\":{\"opponent\":\"BHA\",\"home\":false,\"diff\":1.6433834586466167},\"16\":{\"opponent\":\"AVL\",\"home\":true,\"diff\":1.6791729323308269},\"17\":{\"opponent\":\"MCI\",\"home\":false,\"diff\":1.1457142857142857},\"18\":{\"opponent\":\"FUL\",\"home\":true,\"diff\":2.136015037593985},\"19\":{\"opponent\":\"BHA\",\"home\":true,\"diff\":1.6433834586466167},\"20\":{\"opponent\":\"WOL\",\"home\":false,\"diff\":2.7042857142857146},\"21\":{\"opponent\":\"NFO\",\"home\":true,\"diff\":2.334436090225564},\"22\":{\"opponent\":\"TOT\",\"home\":false,\"diff\":2.658646616541353},\"23\":{\"opponent\":\"SUN\",\"home\":true,\"diff\":2.381052631578947},\"24\":{\"opponent\":\"CHE\",\"home\":false,\"diff\":2.0661654135338345},\"25\":{\"opponent\":\"BUR\",\"home\":false,\"diff\":2.957894736842105},\"26\":{\"opponent\":\"MUN\",\"home\":true,\"diff\":1.6670676691729323},\"27\":{\"opponent\":\"BOU\",\"home\":true,\"diff\":1.8954887218045113},\"28\":{\"opponent\":\"LIV\",\"home\":false,\"diff\":1.4341353383458646},\"29\":{\"opponent\":\"FUL\",\"home\":false,\"diff\":2.136015037593985},\"30\":{\"opponent\":\"MCI\",\"home\":true,\"diff\":1.1457142857142857},\"31\":{\"opponent\":\"AVL\",\"home\":false,\"diff\":1.6791729323308269},\"32\":{\"opponent\":\"WOL\",\"home\":true,\"diff\":2.7042857142857146},\"33\":{\"opponent\":\"CRY\",\"home\":false,\"diff\":2.08812030075188},\"34\":{\"opponent\":\"EVE\",\"home\":true,\"diff\":2.167518796992481},\"35\":{\"opponent\":\"BRE\",\"home\":false,\"diff\":2.0696992481203007},\"36\":{\"opponent\":\"ARS\",\"home\":true,\"diff\":1.2821052631578949},\"37\":{\"opponent\":\"NEW\",\"home\":false,\"diff\":2.108796992481203},\"38\":{\"opponent\":\"LEE\",\"home\":true,\"diff\":2.5494736842105263}}},{\"short\":\"TOT\",\"name\":\"Tottenham Hotspur\",\"difficulty\":{\"tla\":\"TOT\",\"base\":2.142857142857143,\"form\":3,\"position\":2.7894736842105265,\"overall\":2.658646616541353,\"attacking\":2.4310606060606066,\"defensive\":2.410823988298391},\"fixtures\":{\"1\":{\"opponent\":\"BUR\",\"home\":true,\"diff\":2.957894736842105},\"2\":{\"opponent\":\"MCI\",\"home\":false,\"diff\":1.1457142857142857},\"3\":{\"opponent\":\"BOU\",\"home\":true,\"diff\":1.8954887218045113},\"4\":{\"opponent\":\"WHU\",\"home\":false,\"diff\":2.5479699248120298},\"5\":{\"opponent\":\"BHA\",\"home\":false,\"diff\":1.6433834586466167},\"6\":{\"opponent\":\"WOL\",\"home\":true,\"diff\":2.7042857142857146},\"7\":{\"opponent\":\"LEE\",\"home\":false,\"diff\":2.5494736842105263},\"8\":{\"opponent\":\"AVL\",\"home\":true,\"diff\":1.6791729323308269},\"9\":{\"opponent\":\"EVE\",\"home\":false,\"diff\":2.167518796992481},\"10\":{\"opponent\":\"CHE\",\"home\":true,\"diff\":2.0661654135338345},\"11\":{\"opponent\":\"MUN\",\"home\":true,\"diff\":1.6670676691729323},\"12\":{\"opponent\":\"ARS\",\"home\":false,\"diff\":1.2821052631578949},\"13\":{\"opponent\":\"FUL\",\"home\":true,\"diff\":2.136015037593985},\"14\":{\"opponent\":\"NEW\",\"home\":false,\"diff\":2.108796992481203},\"15\":{\"opponent\":\"BRE\",\"home\":true,\"diff\":2.0696992481203007},\"16\":{\"opponent\":\"NFO\",\"home\":false,\"diff\":2.334436090225564},\"17\":{\"opponent\":\"LIV\",\"home\":true,\"diff\":1.4341353383458646},\"18\":{\"opponent\":\"CRY\",\"home\":false,\"diff\":2.08812030075188},\"19\":{\"opponent\":\"BRE\",\"home\":false,\"diff\":2.0696992481203007},\"20\":{\"opponent\":\"SUN\",\"home\":true,\"diff\":2.381052631578947},\"21\":{\"opponent\":\"BOU\",\"home\":false,\"diff\":1.8954887218045113},\"22\":{\"opponent\":\"WHU\",\"home\":true,\"diff\":2.5479699248120298},\"23\":{\"opponent\":\"BUR\",\"home\":false,\"diff\":2.957894736842105},\"24\":{\"opponent\":\"MCI\",\"home\":true,\"diff\":1.1457142857142857},\"25\":{\"opponent\":\"MUN\",\"home\":false,\"diff\":1.6670676691729323},\"26\":{\"opponent\":\"NEW\",\"home\":true,\"diff\":2.108796992481203},\"27\":{\"opponent\":\"ARS\",\"home\":true,\"diff\":1.2821052631578949},\"28\":{\"opponent\":\"FUL\",\"home\":false,\"diff\":2.136015037593985},\"29\":{\"opponent\":\"CRY\",\"home\":true,\"diff\":2.08812030075188},\"30\":{\"opponent\":\"LIV\",\"home\":false,\"diff\":1.4341353383458646},\"31\":{\"opponent\":\"NFO\",\"home\":true,\"diff\":2.334436090225564},\"32\":{\"opponent\":\"SUN\",\"home\":false,\"diff\":2.381052631578947},\"33\":{\"opponent\":\"BHA\",\"home\":true,\"diff\":1.6433834586466167},\"34\":{\"opponent\":\"WOL\",\"home\":false,\"diff\":2.7042857142857146},\"35\":{\"opponent\":\"AVL\",\"home\":false,\"diff\":1.6791729323308269},\"36\":{\"opponent\":\"LEE\",\"home\":true,\"diff\":2.5494736842105263},\"37\":{\"opponent\":\"CHE\",\"home\":false,\"diff\":2.0661654135338345},\"38\":{\"opponent\":\"EVE\",\"home\":true,\"diff\":2.167518796992481}}},{\"short\":\"BUR\",\"name\":\"Burnley\",\"difficulty\":{\"tla\":\"BUR\",\"base\":3,\"form\":3,\"position\":2.894736842105263,\"overall\":2.957894736842105,\"attacking\":2.8350000000000004,\"defensive\":3},\"fixtures\":{\"1\":{\"opponent\":\"TOT\",\"home\":false,\"diff\":2.658646616541353},\"2\":{\"opponent\":\"SUN\",\"home\":true,\"diff\":2.381052631578947},\"3\":{\"opponent\":\"MUN\",\"home\":false,\"diff\":1.6670676691729323},\"4\":{\"opponent\":\"LIV\",\"home\":true,\"diff\":1.4341353383458646},\"5\":{\"opponent\":\"NFO\",\"home\":true,\"diff\":2.334436090225564},\"6\":{\"opponent\":\"MCI\",\"home\":false,\"diff\":1.1457142857142857},\"7\":{\"opponent\":\"AVL\",\"home\":false,\"diff\":1.6791729323308269},\"8\":{\"opponent\":\"LEE\",\"home\":true,\"diff\":2.5494736842105263},\"9\":{\"opponent\":\"WOL\",\"home\":false,\"diff\":2.7042857142857146},\"10\":{\"opponent\":\"ARS\",\"home\":true,\"diff\":1.2821052631578949},\"11\":{\"opponent\":\"WHU\",\"home\":false,\"diff\":2.5479699248120298},\"12\":{\"opponent\":\"CHE\",\"home\":true,\"diff\":2.0661654135338345},\"13\":{\"opponent\":\"BRE\",\"home\":false,\"diff\":2.0696992481203007},\"14\":{\"opponent\":\"CRY\",\"home\":true,\"diff\":2.08812030075188},\"15\":{\"opponent\":\"NEW\",\"home\":false,\"diff\":2.108796992481203},\"16\":{\"opponent\":\"FUL\",\"home\":true,\"diff\":2.136015037593985},\"17\":{\"opponent\":\"BOU\",\"home\":false,\"diff\":1.8954887218045113},\"18\":{\"opponent\":\"EVE\",\"home\":true,\"diff\":2.167518796992481},\"19\":{\"opponent\":\"NEW\",\"home\":true,\"diff\":2.108796992481203},\"20\":{\"opponent\":\"BHA\",\"home\":false,\"diff\":1.6433834586466167},\"21\":{\"opponent\":\"MUN\",\"home\":true,\"diff\":1.6670676691729323},\"22\":{\"opponent\":\"LIV\",\"home\":false,\"diff\":1.4341353383458646},\"23\":{\"opponent\":\"TOT\",\"home\":true,\"diff\":2.658646616541353},\"24\":{\"opponent\":\"SUN\",\"home\":false,\"diff\":2.381052631578947},\"25\":{\"opponent\":\"WHU\",\"home\":true,\"diff\":2.5479699248120298},\"26\":{\"opponent\":\"CRY\",\"home\":false,\"diff\":2.08812030075188},\"27\":{\"opponent\":\"CHE\",\"home\":false,\"diff\":2.0661654135338345},\"28\":{\"opponent\":\"BRE\",\"home\":true,\"diff\":2.0696992481203007},\"29\":{\"opponent\":\"EVE\",\"home\":false,\"diff\":2.167518796992481},\"30\":{\"opponent\":\"BOU\",\"home\":true,\"diff\":1.8954887218045113},\"31\":{\"opponent\":\"FUL\",\"home\":false,\"diff\":2.136015037593985},\"32\":{\"opponent\":\"BHA\",\"home\":true,\"diff\":1.6433834586466167},\"33\":{\"opponent\":\"NFO\",\"home\":false,\"diff\":2.334436090225564},\"34\":{\"opponent\":\"MCI\",\"home\":true,\"diff\":1.1457142857142857},\"35\":{\"opponent\":\"LEE\",\"home\":false,\"diff\":2.5494736842105263},\"36\":{\"opponent\":\"AVL\",\"home\":true,\"diff\":1.6791729323308269},\"37\":{\"opponent\":\"ARS\",\"home\":false,\"diff\":1.2821052631578949},\"38\":{\"opponent\":\"WOL\",\"home\":true,\"diff\":2.7042857142857146}}},{\"short\":\"WOL\",\"name\":\"Wolverhampton Wanderers\",\"difficulty\":{\"tla\":\"WOL\",\"base\":2.7142857142857144,\"form\":2.3,\"position\":3,\"overall\":2.7042857142857146,\"attacking\":2.8372727272727274,\"defensive\":2.519258898098488},\"fixtures\":{\"1\":{\"opponent\":\"MCI\",\"home\":true,\"diff\":1.1457142857142857},\"2\":{\"opponent\":\"BOU\",\"home\":false,\"diff\":1.8954887218045113},\"3\":{\"opponent\":\"EVE\",\"home\":true,\"diff\":2.167518796992481},\"4\":{\"opponent\":\"NEW\",\"home\":false,\"diff\":2.108796992481203},\"5\":{\"opponent\":\"LEE\",\"home\":true,\"diff\":2.5494736842105263},\"6\":{\"opponent\":\"TOT\",\"home\":false,\"diff\":2.658646616541353},\"7\":{\"opponent\":\"BHA\",\"home\":true,\"diff\":1.6433834586466167},\"8\":{\"opponent\":\"SUN\",\"home\":false,\"diff\":2.381052631578947},\"9\":{\"opponent\":\"BUR\",\"home\":true,\"diff\":2.957894736842105},\"10\":{\"opponent\":\"FUL\",\"home\":false,\"diff\":2.136015037593985},\"11\":{\"opponent\":\"CHE\",\"home\":false,\"diff\":2.0661654135338345},\"12\":{\"opponent\":\"CRY\",\"home\":true,\"diff\":2.08812030075188},\"13\":{\"opponent\":\"AVL\",\"home\":false,\"diff\":1.6791729323308269},\"14\":{\"opponent\":\"NFO\",\"home\":true,\"diff\":2.334436090225564},\"15\":{\"opponent\":\"MUN\",\"home\":true,\"diff\":1.6670676691729323},\"16\":{\"opponent\":\"ARS\",\"home\":false,\"diff\":1.2821052631578949},\"17\":{\"opponent\":\"BRE\",\"home\":true,\"diff\":2.0696992481203007},\"18\":{\"opponent\":\"LIV\",\"home\":false,\"diff\":1.4341353383458646},\"19\":{\"opponent\":\"MUN\",\"home\":false,\"diff\":1.6670676691729323},\"20\":{\"opponent\":\"WHU\",\"home\":true,\"diff\":2.5479699248120298},\"21\":{\"opponent\":\"EVE\",\"home\":false,\"diff\":2.167518796992481},\"22\":{\"opponent\":\"NEW\",\"home\":true,\"diff\":2.108796992481203},\"23\":{\"opponent\":\"MCI\",\"home\":false,\"diff\":1.1457142857142857},\"24\":{\"opponent\":\"BOU\",\"home\":true,\"diff\":1.8954887218045113},\"25\":{\"opponent\":\"CHE\",\"home\":true,\"diff\":2.0661654135338345},\"26\":{\"opponent\":\"NFO\",\"home\":false,\"diff\":2.334436090225564},\"31\":{\"opponent\":\"ARS\",\"home\":true,\"diff\":1.2821052631578949},\"27\":{\"opponent\":\"CRY\",\"home\":false,\"diff\":2.08812030075188},\"28\":{\"opponent\":\"AVL\",\"home\":true,\"diff\":1.6791729323308269},\"29\":{\"opponent\":\"LIV\",\"home\":true,\"diff\":1.4341353383458646},\"30\":{\"opponent\":\"BRE\",\"home\":false,\"diff\":2.0696992481203007},\"32\":{\"opponent\":\"WHU\",\"home\":false,\"diff\":2.5479699248120298},\"33\":{\"opponent\":\"LEE\",\"home\":false,\"diff\":2.5494736842105263},\"34\":{\"opponent\":\"TOT\",\"home\":true,\"diff\":2.658646616541353},\"35\":{\"opponent\":\"SUN\",\"home\":true,\"diff\":2.381052631578947},\"36\":{\"opponent\":\"BHA\",\"home\":false,\"diff\":1.6433834586466167},\"37\":{\"opponent\":\"FUL\",\"home\":true,\"diff\":2.136015037593985},\"38\":{\"opponent\":\"BUR\",\"home\":false,\"diff\":2.957894736842105}}}],\"currentGW\":34,\"totalGW\":38,\"fullNames\":{\"ARS\":\"Arsenal\",\"MCI\":\"Manchester City\",\"LIV\":\"Liverpool\",\"CHE\":\"Chelsea\",\"NEW\":\"Newcastle United\",\"AVL\":\"Aston Villa\",\"NFO\":\"Nottingham Forest\",\"BHA\":\"Brighton & Hove Albion\",\"BOU\":\"AFC Bournemouth\",\"BRE\":\"Brentford\",\"FUL\":\"Fulham\",\"CRY\":\"Crystal Palace\",\"MUN\":\"Manchester United\",\"TOT\":\"Tottenham Hotspur\",\"EVE\":\"Everton\",\"WHU\":\"West Ham United\",\"WOL\":\"Wolverhampton Wanderers\",\"LEE\":\"Leeds United\",\"SUN\":\"Sunderland\",\"BUR\":\"Burnley\"}};\n    }\n\n    \/\/ \u2500\u2500 DOM refs \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n    const table            = document.getElementById(\"ftTable\");\n    const theadRow         = table.querySelector(\"thead tr\");\n    const tbody            = table.querySelector(\"tbody\");\n    const colorSelect      = document.getElementById(\"colorScheme\");\n    const gwStartEl        = document.getElementById(\"gwStart\");\n    const gwEndEl          = document.getElementById(\"gwEnd\");\n    const modeSelect       = document.getElementById(\"diffMode\");\n    const homeAdvEl        = document.getElementById(\"homeAdv\");\n    const applyBtn         = document.getElementById(\"applyGW\");\n    const loadBtn          = document.getElementById(\"loadOverridesBtn\");\n    const overrideBtn      = document.getElementById(\"overrideBtn\");\n    const overrideModal    = document.getElementById(\"overrideModal\");\n    const overrideSave     = document.getElementById(\"overrideSave\");\n    const overrideClose    = document.getElementById(\"overrideClose\");\n    const overrideResetBtn = document.getElementById('overrideReset');\n    const showAllBtn       = document.getElementById(\"showAllBtn\");\n    const annotateModeBtn  = document.getElementById(\"annotateModeBtn\");\n    const annotateCycleBtns= document.getElementById(\"annotateCycleButtons\");\n    const gradientBtn      = document.getElementById(\"gradientBtn\");\n    const gradientControls = document.getElementById(\"gradientControls\");\n    const easiestSlider    = document.getElementById(\"easiestSlider\");\n    const hardestSlider    = document.getElementById(\"hardestSlider\");\n    const easiestValue     = document.getElementById(\"easiestValue\");\n    const hardestValue     = document.getElementById(\"hardestValue\");\n    const combinedSlider   = document.getElementById(\"combinedSlider\");\n    const combinedValue    = document.getElementById(\"combinedValue\");\n    const settingsBtn      = document.getElementById(\"settingsBtn\");\n    const settingsPanel    = document.getElementById(\"settingsPanel\");\n    const showRatingColCb  = document.getElementById(\"showRatingCol\");\n    const showAvgColCb     = document.getElementById(\"showAvgCol\");\n    const showFullNamesCb  = document.getElementById(\"showFullNames\");\n    const fixtureTicker    = document.getElementById(\"fixture-ticker\");\n    const fixtureWrap      = document.getElementById(\"fixture-ticker-wrap\");\n\n    \/\/ \u2500\u2500 State \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n    const teams        = window.fixtureData.teams    || [];\n    const fullNames    = window.fixtureData.fullNames || {};\n    let teamDiffs      = {};\n    let overridesActive= false;\n    let homeMod        = parseFloat(homeAdvEl.value) || 0;\n    let colorScheme    = colorSelect.value || \"main\";\n    let mode           = modeSelect.value  || \"overall\";\n    let hiddenRows     = new Set();\n    let annotateMode   = false;\n    let selectedCells  = new Set();\n    let annotateCycle  = \"6colour\";\n    let scaleEasiest   = 3.0;\n    let scaleHardest   = 0.5;\n    let combinedScale  = 0.4;\n    let showRatingCol  = true;\n    let showAvgCol     = true;\n    let showFullNames  = false;\n    let bgColour       = \"white\";\n\n    let visibleGwCols      = 0;\n    let hiddenGwColIndices = new Set();\n\n    const movedFixtures = [];\n    addMovedFixture(\"MCI\", \"CRY\", 31, 36);\n\taddMovedFixture(\"BUR\", \"MCI\", 34, 33);\n\taddMovedFixture(\"BHA\", \"CHE\", 34, 33);\n\taddMovedFixture(\"BOU\", \"LEE\", 34, 33);\n    addMovedFixture(\"WOL\", \"ARS\", 31, 26);\n\n    const teamMap = {};\n    teams.forEach(t => teamMap[t.short] = t);\n\n    const currentGW = Math.min(38, Math.max(1, window.fixtureData.currentGW || 1));\n    gwStartEl.value = gwStartEl.value || currentGW;\n    gwEndEl.value   = gwEndEl.value   || Math.min(38, currentGW + 6);\n\n    \/\/ \u2500\u2500 BG colour \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n    \/\/ bgMap: inner ticker colours\n    const bgMap      = { white:'#ffffff', paleblue:'#ddeeff', palegreen:'#ddffdd', palered:'#ffdddd' };\n    \/\/ wrapMap: slightly deeper shade for the outer wrap (more saturated)\n    const wrapBgMap  = { white:'transparent', paleblue:'#c4ddff', palegreen:'#c4f0c4', palered:'#f0c4c4' };\n\n    function applyBgColour() {\n        const isWhite = (bgColour === 'white');\n\n        \/\/ Inner ticker background\n        fixtureTicker.style.background = bgMap[bgColour] || '#fff';\n\n        if (isWhite) {\n            \/\/ White: no outer styling\n            fixtureWrap.style.background    = 'transparent';\n            fixtureWrap.style.borderRadius  = '';\n            fixtureWrap.style.padding       = '';\n            fixtureWrap.style.marginTop     = '';\n            fixtureWrap.style.marginBottom  = '';\n        } else {\n            \/\/ Coloured: outer wrap gets a deeper tint, rounded corners, padding\n            fixtureWrap.style.background    = wrapBgMap[bgColour] || bgMap[bgColour];\n            fixtureWrap.style.borderRadius  = '18px';\n            fixtureWrap.style.padding       = '18px 20px';\n            fixtureWrap.style.marginTop     = '12px';\n            fixtureWrap.style.marginBottom  = '12px';\n            \/\/ Inner ticker gets slightly lighter version + its own radius\n            fixtureTicker.style.borderRadius = '12px';\n            fixtureTicker.style.padding      = '12px';\n        }\n        if (isWhite) {\n            fixtureTicker.style.borderRadius = '';\n            fixtureTicker.style.padding      = '4px';\n        }\n    }\n\n    \/\/ \u2500\u2500 Helpers \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n    function visibleRowCount() {\n        return Array.from(tbody.querySelectorAll(\"tr\"))\n            .filter(r => r.style.display !== 'none' && !r.classList.contains('hidden-row')).length;\n    }\n\n    function updateCrossVisibility() {\n        const vRows = visibleRowCount();\n        const vCols = visibleGwCols;\n        document.querySelectorAll('.row-cross').forEach(cross => {\n            const isHidden = hiddenRows.has(cross.dataset.team);\n            cross.style.display = (!isHidden && vRows <= 1) ? 'none' : 'flex';\n        });\n        document.querySelectorAll('.column-cross').forEach(cross => {\n            const idx = parseInt(cross.dataset.column);\n            const isHidden = hiddenGwColIndices.has(idx);\n            cross.style.display = (!isHidden && vCols <= 1) ? 'none' : 'flex';\n        });\n    }\n\n    function mix(c1,c2,t){ return [Math.round(c1[0]+(c2[0]-c1[0])*t),Math.round(c1[1]+(c2[1]-c1[1])*t),Math.round(c1[2]+(c2[2]-c1[2])*t)]; }\n\n    function getColor(v) {\n        const minVal=scaleHardest, maxVal=scaleEasiest, midVal=(minVal+maxVal)\/2;\n        v = Math.max(minVal, Math.min(maxVal, v));\n        const schemes={\n            main:       [[251,0,0],[255,255,255],[0,195,34]],\n            bluered:    [[200,0,0],[255,255,255],[0,100,200]],\n            purpleteal: [[128,0,128],[255,255,255],[0,128,128]],\n            goldbrown:  [[139,69,19],[255,255,255],[255,215,0]],\n            navyorange: [[0,0,128],[255,255,255],[255,165,0]],\n        };\n        const [hard,mid,easy] = schemes[colorScheme]||schemes.main;\n        let color;\n        if (v<=midVal) { const t=(v-minVal)\/(midVal-minVal); color=`rgb(${mix(hard,mid,t).join(\",\")})`; }\n        else           { const t=(v-midVal)\/(maxVal-midVal); color=`rgb(${mix(mid,easy,t).join(\",\")})`; }\n        const [r,g,b]=color.match(\/\\d+\/g).map(Number);\n        return [color, (r*299+g*587+b*114)\/1000>150 ? \"black\" : \"white\"];\n    }\n\n    function addMovedFixture(teamA,teamB,originalGW,newGW){ movedFixtures.push({teamA,teamB,originalGW,newGW}); }\n\n    \/\/ \u2500\u2500 buildHeaders \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n    function buildHeaders() {\n        theadRow.innerHTML = '';\n        [\n            {text:'Team',   key:'team'},\n            {text:'Rating', key:'rating'},\n            {text:'Avg',    key:'fixtures'},\n        ].forEach(({text,key}) => {\n            const th = document.createElement(\"th\");\n            th.textContent = text;\n            th.dataset.sort = key;\n            th.style.cssText = `background:#f1f3f4;padding:12px;text-align:${text==='Team'?'left':'center'};border:1px solid #ddd;position:relative;font-weight:bold;cursor:pointer;`;\n            if (text==='Team') th.style.minWidth = showFullNames ? '230px' : '80px';\n            theadRow.appendChild(th);\n        });\n\n        let s = parseInt(gwStartEl.value)||1;\n        let e = parseInt(gwEndEl.value)||s;\n        if (e<s) e=s;\n        if (e-s>12){ e=s+12; gwEndEl.value=e; }\n        const manyGWs = (e-s)>7;\n\n        const dgwMap={};\n        movedFixtures.forEach(mf=>{ if(!dgwMap[mf.newGW]) dgwMap[mf.newGW]=`DGW${mf.newGW}`; });\n\n        let totalGwCols = 0;\n        for (let gw=s; gw<=e; gw++) { totalGwCols++; if (dgwMap[gw]) totalGwCols++; }\n        visibleGwCols = totalGwCols;\n        hiddenGwColIndices.forEach(idx => { if (idx >= 3 && idx < 3+totalGwCols) visibleGwCols--; });\n\n        for (let gw=s; gw<=e; gw++) {\n            const pad = manyGWs ? '12px 6px' : '12px';\n            const fsz = manyGWs ? 'font-size:12px;' : '';\n            const th = document.createElement(\"th\");\n            th.textContent = \"GW\"+gw; th.dataset.gw=gw;\n            th.style.cssText=`background:#f1f3f4;padding:${pad};text-align:center;border:1px solid #ddd;position:relative;font-weight:bold;${fsz}cursor:pointer;`;\n            th.addEventListener('click', ()=>sortByGW(gw));\n            theadRow.appendChild(th);\n            addColumnCross(th, theadRow.children.length-1, manyGWs);\n\n            if (dgwMap[gw]) {\n                const dth = document.createElement(\"th\");\n                dth.textContent=dgwMap[gw]; dth.dataset.dgw=gw; dth.dataset.gw=gw;\n                dth.style.cssText=`background:#f8f9fa;padding:${pad};text-align:center;border:1px solid #ddd;position:relative;font-weight:bold;${fsz}cursor:pointer;`;\n                dth.addEventListener('click',()=>sortByGW(gw));\n                theadRow.appendChild(dth);\n                addColumnCross(dth, theadRow.children.length-1, manyGWs);\n            }\n        }\n        attachSortHandlers();\n        applyFixedColVisibility();\n    }\n\n    function addColumnCross(th, colIdx, manyGWs) {\n        const cross = document.createElement('div');\n        cross.innerHTML='\u2716'; cross.className='column-cross'; cross.dataset.column=colIdx;\n        const sz = manyGWs ? '18px' : '24px';\n        const fs = manyGWs ? '14px' : '18px';\n        cross.style.cssText=`position:absolute;top:50%;right:2px;transform:translateY(-50%);width:${sz};height:${sz};background:transparent;color:black;display:flex !important;align-items:center;justify-content:center;cursor:pointer;font-size:${fs};font-weight:bold;z-index:1000;transition:all 0.2s ease;`;\n        th.appendChild(cross);\n        cross.addEventListener('click', e=>{ e.stopPropagation(); toggleColumnVisibility(colIdx); });\n        cross.addEventListener('mouseenter',()=>{ cross.style.transform='translateY(-50%) scale(1.2)'; cross.style.color='#666'; });\n        cross.addEventListener('mouseleave',()=>{ cross.style.transform='translateY(-50%) scale(1)'; cross.style.color='black'; });\n    }\n\n    function applyFixedColVisibility() {\n        const rTh=theadRow.children[1], aTh=theadRow.children[2];\n        if (rTh) rTh.style.display = showRatingCol ? '' : 'none';\n        if (aTh) aTh.style.display = showAvgCol    ? '' : 'none';\n        tbody.querySelectorAll(\"tr\").forEach(row=>{\n            const rTd=row.children[1], aTd=row.children[2];\n            if (rTd) rTd.style.display = showRatingCol ? '' : 'none';\n            if (aTd) aTd.style.display = showAvgCol    ? '' : 'none';\n        });\n    }\n\n    function toggleColumnVisibility(colIdx) {\n        if (hiddenGwColIndices.has(colIdx)) { hiddenGwColIndices.delete(colIdx); visibleGwCols++; }\n        else                                { hiddenGwColIndices.add(colIdx);    visibleGwCols--; }\n        applyHiddenGwColStyles();\n        recalcAndSortAverages();\n        updateCrossVisibility();\n    }\n\n    function applyHiddenGwColStyles() {\n        theadRow.querySelectorAll(\"th\").forEach((th,idx)=>{ if (idx<3) return; th.style.display = hiddenGwColIndices.has(idx) ? 'none' : ''; });\n        tbody.querySelectorAll(\"tr\").forEach(row=>{ row.querySelectorAll(\"td\").forEach((td,idx)=>{ if (idx<3) return; td.style.display = hiddenGwColIndices.has(idx) ? 'none' : ''; }); });\n    }\n\n    \/\/ \u2500\u2500 isMobile helper (CSS-first: matches the @media breakpoint) \u2500\u2500\u2500\u2500\u2500\n    const mobileQuery = window.matchMedia('(max-width: 768px)');\n    function isMobile() { return mobileQuery.matches; }\n\n    \/\/ \u2500\u2500 Compute fixture difficulty value for a given team\/gw \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n    function getFixtureDiff(t, gw) {\n        const f = t.fixtures[gw];\n        if (!f) return null;\n        const isMovedOut = movedFixtures.some(mf=>mf.originalGW===gw&&(t.short===mf.teamA||t.short===mf.teamB));\n        const opp=teamMap[f.opponent], d=opp?.difficulty??{};\n        let tv;\n        if (overridesActive)         tv=teamDiffs[f.opponent]?.overall??2;\n        else if (mode===\"attacking\") tv=d.attacking??2;\n        else if (mode===\"defensive\") tv=d.defensive??2;\n        else                         tv=d.overall??2;\n        let diff = tv + (f.home ? 0 : homeMod);\n        if (isMovedOut) return { diff:0.02, isMovedOut:true, f };\n        diff = Math.max(scaleHardest, Math.min(scaleEasiest, diff));\n        return { diff, isMovedOut:false, f };\n    }\n\n    \/\/ \u2500\u2500 renderDesktopTable \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n    function renderDesktopTable() {\n        document.getElementById('ft-desktop').style.display = '';\n        document.getElementById('ft-mobile').style.display  = 'none';\n\n        hiddenGwColIndices.clear();\n        buildHeaders();\n        tbody.innerHTML = \"\";\n\n        const start = parseInt(gwStartEl.value)||1;\n        const end   = parseInt(gwEndEl.value)||start;\n\n        teams.forEach(t => {\n            const tr = document.createElement(\"tr\");\n            tr.dataset.team = t.short;\n\n            let teamDiff;\n            if (overridesActive) { teamDiff = teamDiffs[t.short]?.overall ?? 2; }\n            else {\n                const d=t.difficulty;\n                teamDiff = mode===\"attacking\"?d.attacking : mode===\"defensive\"?d.defensive : d.overall??2;\n            }\n\n            const displayName = showFullNames ? (fullNames[t.short]||t.short) : t.short;\n            const teamCell = document.createElement(\"td\");\n            teamCell.style.cssText='background:white;border:1px solid #ddd;padding:8px;position:relative;white-space:nowrap;width:50px';\n            const teamInner = document.createElement('div');\n            teamInner.style.cssText=`position:relative;padding-left:30px;padding-right:6px;text-align:left;min-width:${showFullNames?'205px':'60px'};`;\n            const rowCross = document.createElement('div');\n            rowCross.innerHTML = '\u2716';\n            rowCross.className = 'row-cross';\n            rowCross.dataset.team = t.short;\n            rowCross.style.cssText='position:absolute;left:2px;top:50%;transform:translateY(-50%);width:24px;height:24px;background:transparent;color:black;display:flex !important;align-items:center;justify-content:center;cursor:pointer;font-size:18px;font-weight:bold;z-index:1000;transition:all 0.2s;';\n            const teamLabel = document.createElement('span');\n            teamLabel.style.fontWeight = 'bold';\n            teamLabel.textContent = displayName;\n            teamInner.appendChild(rowCross);\n            teamInner.appendChild(teamLabel);\n            teamCell.appendChild(teamInner);\n            tr.appendChild(teamCell);\n\n            const ratingCell = document.createElement(\"td\");\n            ratingCell.textContent = teamDiff.toFixed(2);\n            ratingCell.style.cssText='background:white;border:1px solid #ddd;padding:8px;text-align:center;width:50px';\n            tr.appendChild(ratingCell);\n\n            const avgCell = document.createElement(\"td\");\n            avgCell.style.cssText='background:white;border:1px solid #ddd;padding:8px;text-align:center;width:50px;';\n            tr.appendChild(avgCell);\n\n            let diffSum = 0;\n\n            for (let gw=start; gw<=end; gw++) {\n                const f = t.fixtures[gw];\n                const thisGWdgws = movedFixtures.filter(mf=>mf.newGW===gw);\n\n                if (!f) {\n                    const empty=document.createElement(\"td\");\n                    empty.style.cssText='background:white;border:1px solid #ddd;padding:8px;text-align:center;';\n                    empty.dataset.greyedOut='0'; empty.dataset.difficulty='';\n                    tr.appendChild(empty);\n                } else {\n                    const result = getFixtureDiff(t, gw);\n                    const { diff, isMovedOut } = result;\n                    if (!isMovedOut) diffSum += diff;\n                    const [bg,txt]=getColor(diff);\n                    const gwCell=document.createElement(\"td\");\n                    gwCell.className = isMovedOut?'greyed-out':'';\n                    gwCell.innerHTML = `${f.opponent} (${f.home?\"H\":\"A\"})`;\n                    gwCell.dataset.difficulty = isMovedOut ? '' : diff.toFixed(2);\n                    gwCell.dataset.greyedOut  = isMovedOut ? '1' : '0';\n                    if (annotateMode) {\n                        gwCell.style.cssText=`background:white;color:black;font-weight:bold;border-radius:8px;cursor:pointer;text-align:center;padding:8px;border:1px solid #ddd;`;\n                        gwCell.addEventListener('click',e=>{e.stopPropagation();toggleCellSelection(gwCell,`${t.short}-${gw}-${f.opponent}`);});\n                    } else {\n                        gwCell.style.cssText=`background:${isMovedOut?'#ccc':bg};color:${isMovedOut?'#555':txt};font-weight:bold;border-radius:8px;text-align:center;padding:8px;border:1px solid #ddd;opacity:${isMovedOut?0.6:1};`;\n                    }\n                    tr.appendChild(gwCell);\n                }\n\n                if (thisGWdgws.length) {\n                    const mf=thisGWdgws.find(x=>x.teamA===t.short||x.teamB===t.short);\n                    if (!mf) {\n                        const ed=document.createElement(\"td\");\n                        ed.style.cssText='background:white;border:1px solid #ddd;padding:8px;text-align:center;';\n                        ed.dataset.greyedOut='0'; ed.dataset.difficulty='';\n                        tr.appendChild(ed);\n                    } else {\n                        const oppShort=mf.teamA===t.short?mf.teamB:mf.teamA;\n                        const isHome=mf.teamA===t.short;\n                        const opp2=teamMap[oppShort], d2=opp2?.difficulty??{};\n                        let mv;\n                        if (overridesActive)         mv=teamDiffs[oppShort]?.overall??2;\n                        else if (mode===\"attacking\") mv=d2.attacking??2;\n                        else if (mode===\"defensive\") mv=d2.defensive??2;\n                        else                         mv=d2.overall??2;\n                        const moved=mv+(!isHome?homeMod:0);\n                        const diff2=Math.max(scaleHardest,Math.min(scaleEasiest,moved));\n                        diffSum += diff2;\n                        const [bg2,txt2]=getColor(diff2);\n                        const dgwCell=document.createElement(\"td\");\n                        dgwCell.className=\"dgwcell\";\n                        dgwCell.innerHTML=`${oppShort} (${isHome?'H':'A'})`;\n                        dgwCell.dataset.difficulty=diff2.toFixed(2);\n                        dgwCell.dataset.greyedOut='0';\n                        if (annotateMode) {\n                            dgwCell.style.cssText=`background:white;color:black;font-weight:bold;border-radius:8px;cursor:pointer;text-align:center;padding:8px;border:1px solid #ddd;`;\n                            dgwCell.addEventListener('click',e=>{e.stopPropagation();toggleCellSelection(dgwCell,`${t.short}-DGW${gw}-${oppShort}`);});\n                        } else {\n                            dgwCell.style.cssText=`background:${bg2};color:${txt2};font-weight:bold;border-radius:8px;text-align:center;padding:8px;border:1px solid #ddd;`;\n                        }\n                        tr.appendChild(dgwCell);\n                    }\n                }\n            }\n\n            avgCell.textContent = visibleGwCols > 0 ? (diffSum \/ visibleGwCols).toFixed(2) : '0.00';\n            if (hiddenRows.has(t.short)) { tr.style.display='none'; tr.classList.add('hidden-row'); }\n            tbody.appendChild(tr);\n        });\n\n        sortRowsByAvg();\n        attachRowHandlers();\n        applyFixedColVisibility();\n        applyHiddenGwColStyles();\n        updateCrossVisibility();\n    }\n\n    \/\/ \u2500\u2500 renderMobileCards \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n    function renderMobileCards() {\n        document.getElementById('ft-desktop').style.display = 'none';\n        document.getElementById('ft-mobile').style.display  = '';\n\n        const container = document.getElementById('ft-mobile');\n        container.innerHTML = '';\n\n        const start = parseInt(gwStartEl.value)||1;\n        const end   = parseInt(gwEndEl.value)||start;\n        const dgwMap={};\n        movedFixtures.forEach(mf=>{ if(mf.newGW && !dgwMap[mf.newGW]) dgwMap[mf.newGW]=true; });\n\n        \/\/ Build GW label list (same order as desktop, including DGW columns)\n        const gwLabels = [];\n        for (let gw=start; gw<=end; gw++) {\n            gwLabels.push({ gw, isDgw:false });\n            if (dgwMap[gw]) gwLabels.push({ gw, isDgw:true });\n        }\n        const totalCols = gwLabels.length;\n\n        \/\/ Compute avg for each team (for sorting)\n        const teamAvgs = teams.map(t => {\n            let sum=0, cnt=0;\n            for (let gw=start; gw<=end; gw++) {\n                const res = getFixtureDiff(t, gw);\n                if (res && !res.isMovedOut) { sum+=res.diff; cnt++; }\n                \/\/ DGW\n                const mf = movedFixtures.find(m=>m.newGW===gw&&(t.short===m.teamA||t.short===m.teamB));\n                if (mf) {\n                    const oppShort = mf.teamA===t.short ? mf.teamB : mf.teamA;\n                    const isHome = mf.teamA===t.short;\n                    const opp2=teamMap[oppShort], d2=opp2?.difficulty??{};\n                    let mv;\n                    if (overridesActive)         mv=teamDiffs[oppShort]?.overall??2;\n                    else if (mode===\"attacking\") mv=d2.attacking??2;\n                    else if (mode===\"defensive\") mv=d2.defensive??2;\n                    else                         mv=d2.overall??2;\n                    const moved=mv+(!isHome?homeMod:0);\n                    sum += Math.max(scaleHardest,Math.min(scaleEasiest,moved)); cnt++;\n                }\n            }\n            const avg = totalCols>0 ? sum\/totalCols : 0;\n            return { t, avg };\n        });\n        teamAvgs.sort((a,b)=>b.avg-a.avg);\n\n        teamAvgs.forEach(({ t, avg }) => {\n            if (hiddenRows.has(t.short)) return;\n\n            let teamDiff;\n            if (overridesActive) { teamDiff = teamDiffs[t.short]?.overall ?? 2; }\n            else {\n                const d=t.difficulty;\n                teamDiff = mode===\"attacking\"?d.attacking : mode===\"defensive\"?d.defensive : d.overall??2;\n            }\n\n            const card = document.createElement('div');\n            card.className = 'ft-card';\n            card.dataset.team = t.short;\n\n            \/\/ Card header: team name + hide button + avg\n            const header = document.createElement('div');\n            header.className = 'ft-card-header';\n\n            const hideBtn = document.createElement('button');\n            hideBtn.className = 'ft-card-hide';\n            hideBtn.textContent = '\u2715';\n            hideBtn.title = 'Hide team';\n            hideBtn.addEventListener('click', () => {\n                hiddenRows.add(t.short);\n                card.remove();\n            });\n\n            const nameEl = document.createElement('span');\n            nameEl.className = 'ft-card-name';\n            nameEl.textContent = fullNames[t.short] || t.short;\n\n            const metaEl = document.createElement('span');\n            metaEl.className = 'ft-card-meta';\n            metaEl.textContent = `Avg ${avg.toFixed(2)}`;\n\n            header.appendChild(hideBtn);\n            header.appendChild(nameEl);\n            header.appendChild(metaEl);\n            card.appendChild(header);\n\n            \/\/ Fixture pills row\n            const pillsRow = document.createElement('div');\n            pillsRow.className = 'ft-pills-row';\n\n            for (let gw=start; gw<=end; gw++) {\n                \/\/ Regular fixture\n                const res = getFixtureDiff(t, gw);\n                if (res) {\n                    const { diff, isMovedOut, f } = res;\n                    const [bg, txt] = getColor(diff);\n                    const pill = document.createElement('div');\n                    pill.className = 'ft-pill' + (isMovedOut ? ' ft-pill-moved' : '');\n                    const label = document.createElement('div');\n                    label.className = 'ft-pill-label';\n                    label.textContent = `GW${gw}`;\n                    const opp = document.createElement('div');\n                    opp.className = 'ft-pill-opp';\n                    opp.textContent = f.opponent;\n                    const venue = document.createElement('div');\n                    venue.className = 'ft-pill-venue';\n                    venue.textContent = f.home ? 'H' : 'A';\n                    pill.appendChild(label);\n                    pill.appendChild(opp);\n                    pill.appendChild(venue);\n                    if (!isMovedOut) {\n                        pill.style.background = bg;\n                        pill.style.color = txt;\n                    }\n                    if (annotateMode) {\n                        pill.style.background = 'white';\n                        pill.style.color = 'black';\n                        pill.style.cursor = 'pointer';\n                        pill.addEventListener('click', () => {\n                            toggleCellSelection(pill, `${t.short}-${gw}-${f.opponent}`);\n                        });\n                    }\n                    pillsRow.appendChild(pill);\n                } else {\n                    \/\/ BGW \u2014 empty pill\n                    const pill = document.createElement('div');\n                    pill.className = 'ft-pill ft-pill-blank';\n                    const label = document.createElement('div');\n                    label.className = 'ft-pill-label';\n                    label.textContent = `GW${gw}`;\n                    const opp = document.createElement('div');\n                    opp.className = 'ft-pill-opp';\n                    opp.textContent = '\u2014';\n                    pill.appendChild(label);\n                    pill.appendChild(opp);\n                    pillsRow.appendChild(pill);\n                }\n\n                \/\/ DGW extra fixture\n                const mf = movedFixtures.find(m=>m.newGW===gw&&(t.short===m.teamA||t.short===m.teamB));\n                if (mf) {\n                    const oppShort = mf.teamA===t.short ? mf.teamB : mf.teamA;\n                    const isHome = mf.teamA===t.short;\n                    const opp2=teamMap[oppShort], d2=opp2?.difficulty??{};\n                    let mv;\n                    if (overridesActive)         mv=teamDiffs[oppShort]?.overall??2;\n                    else if (mode===\"attacking\") mv=d2.attacking??2;\n                    else if (mode===\"defensive\") mv=d2.defensive??2;\n                    else                         mv=d2.overall??2;\n                    const moved=mv+(!isHome?homeMod:0);\n                    const diff2=Math.max(scaleHardest,Math.min(scaleEasiest,moved));\n                    const [bg2,txt2]=getColor(diff2);\n                    const pill2 = document.createElement('div');\n                    pill2.className = 'ft-pill ft-pill-dgw';\n                    const lbl2 = document.createElement('div');\n                    lbl2.className = 'ft-pill-label';\n                    lbl2.textContent = `DGW${gw}`;\n                    const opp2el = document.createElement('div');\n                    opp2el.className = 'ft-pill-opp';\n                    opp2el.textContent = oppShort;\n                    const ven2 = document.createElement('div');\n                    ven2.className = 'ft-pill-venue';\n                    ven2.textContent = isHome ? 'H' : 'A';\n                    pill2.appendChild(lbl2);\n                    pill2.appendChild(opp2el);\n                    pill2.appendChild(ven2);\n                    pill2.style.background = bg2;\n                    pill2.style.color = txt2;\n                    pillsRow.appendChild(pill2);\n                }\n            }\n\n            card.appendChild(pillsRow);\n            container.appendChild(card);\n        });\n    }\n\n    \/\/ \u2500\u2500 rebuild: routes to correct renderer \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n    function rebuild() {\n        applyBgColour();\n        if (isMobile()) {\n            renderMobileCards();\n        } else {\n            renderDesktopTable();\n        }\n    }\n\n    function recalcAndSortAverages() {\n        if (isMobile()) { rebuild(); return; }\n        tbody.querySelectorAll(\"tr\").forEach(row => {\n            if (row.style.display==='none'||row.classList.contains('hidden-row')) return;\n            let total=0;\n            const cells=Array.from(row.querySelectorAll(\"td\"));\n            for (let i=3; i<cells.length; i++) {\n                const cell=cells[i];\n                if (cell.style.display==='none') continue;\n                if (cell.dataset.greyedOut==='1') continue;\n                const v=parseFloat(cell.dataset.difficulty);\n                if (!isNaN(v)) total+=v;\n            }\n            const avgTd=row.children[2];\n            if (avgTd) avgTd.textContent = visibleGwCols>0 ? (total\/visibleGwCols).toFixed(2) : '0.00';\n        });\n        sortRowsByAvg();\n    }\n\n    function sortRowsByAvg() {\n        const rows=Array.from(tbody.querySelectorAll(\"tr\"));\n        rows.sort((a,b)=>{\n            const aH=a.style.display==='none'||a.classList.contains('hidden-row');\n            const bH=b.style.display==='none'||b.classList.contains('hidden-row');\n            if (aH&&!bH) return 1; if (!aH&&bH) return -1;\n            return (parseFloat(b.children[2]?.textContent)||0)-(parseFloat(a.children[2]?.textContent)||0);\n        });\n        rows.forEach(r=>tbody.appendChild(r));\n        theadRow.querySelectorAll('th[data-sort]').forEach(h=>h.classList.remove('asc','desc'));\n        const ah=theadRow.querySelector('th[data-sort=\"fixtures\"]');\n        if (ah) ah.classList.add('desc');\n    }\n\n    function sortByGW(gw) {\n        const start=parseInt(gwStartEl.value)||1, end=parseInt(gwEndEl.value)||start;\n        let cellIndex=3;\n        for (let i=start;i<=end;i++){\n            const hasDGW=movedFixtures.some(mf=>mf.newGW===i);\n            if (i===gw) break;\n            cellIndex++; if (hasDGW) cellIndex++;\n        }\n        const rows=Array.from(tbody.querySelectorAll(\"tr\"));\n        rows.forEach(row=>{ const c=row.children[cellIndex]; row.dataset.sortValue=(c&&c.dataset.difficulty)?parseFloat(c.dataset.difficulty):Infinity; });\n        rows.sort((a,b)=>(parseFloat(b.dataset.sortValue)||Infinity)-(parseFloat(a.dataset.sortValue)||Infinity));\n        rows.forEach(r=>tbody.appendChild(r));\n        theadRow.querySelectorAll('th').forEach(h=>h.classList.remove('asc','desc'));\n    }\n\n    function attachSortHandlers() {\n        const sortable=theadRow.querySelectorAll('th[data-sort]');\n        sortable.forEach(th=>{\n            th.style.cursor='pointer';\n            th.onclick=()=>{\n                const key=th.dataset.sort, idx=key==='team'?0:key==='rating'?1:2;\n                const asc=!th.classList.contains('asc');\n                sortable.forEach(h=>h.classList.remove('asc','desc'));\n                th.classList.add(asc?'asc':'desc');\n                const rows=Array.from(tbody.querySelectorAll(\"tr\"));\n                rows.sort((a,b)=>{\n                    const A=a.children[idx].textContent.trim(), B=b.children[idx].textContent.trim();\n                    if (idx===0) return asc?A.localeCompare(B):B.localeCompare(A);\n                    return asc?(parseFloat(A)||0)-(parseFloat(B)||0):(parseFloat(B)||0)-(parseFloat(A)||0);\n                });\n                rows.forEach(r=>tbody.appendChild(r));\n            };\n        });\n    }\n\n    function attachRowHandlers() {\n        document.querySelectorAll('.row-cross').forEach(cross=>{\n            cross.addEventListener('click', e=>{ e.stopPropagation(); toggleRowVisibility(cross.dataset.team); });\n            cross.addEventListener('mouseenter',()=>{ cross.style.transform='translateY(-50%) scale(1.2)'; cross.style.color='#666'; });\n            cross.addEventListener('mouseleave',()=>{ cross.style.transform='translateY(-50%) scale(1)'; cross.style.color='black'; });\n        });\n    }\n\n    function toggleRowVisibility(teamName) {\n        if (hiddenRows.has(teamName)) hiddenRows.delete(teamName);\n        else                          hiddenRows.add(teamName);\n        const row=tbody.querySelector(`tr[data-team=\"${teamName}\"]`);\n        if (row){\n            if (hiddenRows.has(teamName)){ row.style.display='none'; row.classList.add('hidden-row'); }\n            else                         { row.style.display='';     row.classList.remove('hidden-row'); }\n        }\n        sortRowsByAvg();\n        updateCrossVisibility();\n    }\n\n    function showAll() {\n        hiddenRows.clear(); hiddenGwColIndices.clear();\n        if (isMobile()) { rebuild(); return; }\n        visibleGwCols = Array.from(theadRow.querySelectorAll(\"th\")).filter(th=>th.dataset.gw!==undefined).length;\n        tbody.querySelectorAll(\"tr\").forEach(r=>{ r.style.display=''; r.classList.remove('hidden-row'); });\n        theadRow.querySelectorAll(\"th\").forEach(th=>th.style.display='');\n        tbody.querySelectorAll(\"tr\").forEach(row=>row.querySelectorAll(\"td\").forEach(td=>td.style.display=''));\n        applyFixedColVisibility();\n        recalcAndSortAverages();\n        updateCrossVisibility();\n    }\n\n    function toggleCellSelection(cell, cellId) {\n        const bg=cell.style.background;\n        const rgbMap={'rgb(255, 255, 255)':'white','rgb(204, 204, 204)':'#cccccc','rgb(0, 0, 0)':'black','rgb(33, 150, 243)':'#2196F3','rgb(244, 67, 54)':'#F44336','rgb(76, 175, 80)':'#4CAF50','rgb(255, 235, 59)':'#FFEB3B'};\n        const normBg=rgbMap[bg]||bg;\n        const cycles={'6colour':['white','#cccccc','black','#2196F3','#F44336','#4CAF50','#FFEB3B'],'greyblack':['white','#cccccc','black'],'redyellow':['white','#F44336','#FFEB3B'],'bluegreen':['white','#2196F3','#4CAF50']};\n        const txtMap={white:'black','#cccccc':'black',black:'white','#2196F3':'white','#F44336':'white','#4CAF50':'white','#FFEB3B':'black'};\n        const list=cycles[annotateCycle]||cycles['6colour'];\n        const next=list[(list.indexOf(normBg)+1)%list.length];\n        cell.style.background=next; cell.style.color=txtMap[next]||'black';\n        if (next==='white') selectedCells.delete(cellId); else selectedCells.add(cellId);\n    }\n\n    \/\/ \u2500\u2500 Events \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n    colorSelect.addEventListener('change',e=>{ colorScheme=e.target.value; rebuild(); });\n    modeSelect.addEventListener('change', e=>{ mode=e.target.value; rebuild(); });\n    homeAdvEl.addEventListener('change',  e=>{ homeMod=parseFloat(e.target.value); rebuild(); });\n    applyBtn.addEventListener('click', ()=>rebuild());\n    gwEndEl.addEventListener(\"change\",   ()=>{ if(+gwEndEl.value<+gwStartEl.value) gwEndEl.value=gwStartEl.value; });\n    gwStartEl.addEventListener(\"change\", ()=>{ if(+gwEndEl.value<+gwStartEl.value) gwEndEl.value=gwStartEl.value; });\n\n    settingsBtn.addEventListener('click', ()=>{\n        const hidden=settingsPanel.style.display==='none';\n        settingsPanel.style.display=hidden?'block':'none';\n        settingsBtn.style.background=hidden?'#007bff':'white';\n        settingsBtn.style.color=hidden?'white':'#333';\n    });\n    showRatingColCb.addEventListener('change', ()=>{ showRatingCol=showRatingColCb.checked; applyFixedColVisibility(); });\n    showAvgColCb.addEventListener('change',    ()=>{ showAvgCol=showAvgColCb.checked; applyFixedColVisibility(); });\n    showFullNamesCb.addEventListener('change', ()=>{ showFullNames=showFullNamesCb.checked; rebuild(); });\n\n    document.querySelectorAll('.bg-colour-btn').forEach(btn=>{\n        btn.addEventListener('click', ()=>{\n            bgColour=btn.dataset.bg;\n            document.querySelectorAll('.bg-colour-btn').forEach(b=>{ b.classList.remove('active-bg'); b.style.border='1px solid #ccc'; });\n            btn.classList.add('active-bg'); btn.style.border='2px solid #0073aa';\n            applyBgColour();\n        });\n    });\n\n    gradientBtn.addEventListener('click', ()=>{\n        const h=gradientControls.style.display==='none';\n        gradientControls.style.display=h?'block':'none';\n        gradientBtn.style.background=h?'#007bff':'white'; gradientBtn.style.color=h?'white':'#333';\n    });\n    combinedSlider.addEventListener('input', e=>{\n        combinedScale=parseFloat(e.target.value); combinedValue.textContent=combinedScale.toFixed(1);\n        scaleEasiest=Math.max(2.5,Math.min(3.5,3.0+combinedScale));\n        scaleHardest=Math.max(0.5,Math.min(1.5,1.0-combinedScale));\n        easiestSlider.value=scaleEasiest; easiestValue.textContent=scaleEasiest.toFixed(1);\n        hardestSlider.value=scaleHardest; hardestValue.textContent=scaleHardest.toFixed(1);\n        rebuild();\n    });\n    easiestSlider.addEventListener('input', e=>{ scaleEasiest=parseFloat(e.target.value); easiestValue.textContent=scaleEasiest.toFixed(1); combinedSlider.value=0; combinedValue.textContent=\"0\"; combinedScale=0; rebuild(); });\n    hardestSlider.addEventListener('input', e=>{ scaleHardest=parseFloat(e.target.value); hardestValue.textContent=scaleHardest.toFixed(1); combinedSlider.value=0; combinedValue.textContent=\"0\"; combinedScale=0; rebuild(); });\n\n    annotateModeBtn.addEventListener('click', ()=>{\n        annotateMode=!annotateMode;\n        annotateModeBtn.textContent=annotateMode?'Annotating ON':'Annotate Mode';\n        annotateModeBtn.style.background=annotateMode?'#007bff':'white';\n        annotateModeBtn.style.color=annotateMode?'white':'#333';\n        annotateCycleBtns.style.display=annotateMode?'flex':'none';\n        if (!annotateMode) selectedCells.clear();\n        rebuild();\n    });\n    document.querySelectorAll('.annotate-cycle-btn').forEach(btn=>{\n        btn.addEventListener('click', ()=>{\n            annotateCycle=btn.dataset.cycle;\n            document.querySelectorAll('.annotate-cycle-btn').forEach(b=>{ b.classList.remove('active'); b.style.background='white'; b.style.color='#333'; b.style.border='1px solid #ddd'; });\n            btn.classList.add('active'); btn.style.background='#add8e6'; btn.style.border='1px solid #999';\n        });\n    });\n\n    showAllBtn.addEventListener(\"click\", showAll);\n\n    overrideBtn.addEventListener('click', ()=>{\n        overrideModal.querySelectorAll(\"tbody tr[data-tla]\").forEach(r=>{\n            const tla=r.dataset.tla, d=teamMap[tla]?.difficulty||{};\n            const src=(overridesActive&&teamDiffs[tla])?teamDiffs[tla]:d;\n            const oi=r.querySelector(\".override-overall\"), ai=r.querySelector(\".override-attacking\"), di=r.querySelector(\".override-defensive\");\n            if (oi) oi.value=(src.overall??2).toFixed(2);\n            if (ai) ai.value=(src.attacking??2).toFixed(2);\n            if (di) di.value=(src.defensive??2).toFixed(2);\n        });\n        overrideModal.style.display=\"block\";\n    });\n    overrideClose.addEventListener(\"click\", ()=>{ overrideModal.style.display=\"none\"; });\n    overrideSave.addEventListener(\"click\", ()=>{\n        const newDiffs={};\n        overrideModal.querySelectorAll(\"tbody tr[data-tla]\").forEach(r=>{\n            const tla=r.dataset.tla, oi=r.querySelector(\".override-overall\"), ai=r.querySelector(\".override-attacking\"), di=r.querySelector(\".override-defensive\");\n            if (!oi) return;\n            newDiffs[tla]={overall:parseFloat(oi.value)||2,attacking:parseFloat(ai?.value)||2,defensive:parseFloat(di?.value)||2};\n        });\n        localStorage.setItem(\"teamDiffs\",JSON.stringify(newDiffs));\n        teamDiffs=newDiffs; overridesActive=true;\n        if (loadBtn){ loadBtn.textContent='Reset to Default'; loadBtn.style.backgroundColor='#007bff'; loadBtn.style.color='#fff'; }\n        overrideModal.style.display=\"none\"; rebuild();\n    });\n    if (loadBtn) {\n        loadBtn.addEventListener('click', ()=>{\n            const stored=localStorage.getItem('teamDiffs');\n            if (!stored){ alert(\"\u26a0\ufe0f No saved overrides found.\"); return; }\n            if (!overridesActive){\n                try{ teamDiffs=JSON.parse(stored)||{}; }catch(e){ teamDiffs={}; }\n                overridesActive=true; loadBtn.textContent='Reset to Default'; loadBtn.style.backgroundColor='#007bff'; loadBtn.style.color='#fff';\n            } else {\n                teamDiffs={}; overridesActive=false; loadBtn.textContent='Load Overrides'; loadBtn.style.backgroundColor=''; loadBtn.style.color='';\n            }\n            rebuild();\n        });\n    }\n    if (overrideResetBtn) {\n        overrideResetBtn.addEventListener('click', ()=>{\n            overrideModal.querySelectorAll('tbody tr[data-tla]').forEach(r=>{\n                const d=teamMap[r.dataset.tla]?.difficulty||{};\n                const oi=r.querySelector(\".override-overall\"), ai=r.querySelector(\".override-attacking\"), di=r.querySelector(\".override-defensive\");\n                if (oi) oi.value=(d.overall??2).toFixed(2);\n                if (ai) ai.value=(d.attacking??2).toFixed(2);\n                if (di) di.value=(d.defensive??2).toFixed(2);\n            });\n            localStorage.removeItem('teamDiffs'); teamDiffs={}; overridesActive=false;\n            if (loadBtn){ loadBtn.textContent='Load Overrides'; loadBtn.style.backgroundColor=''; loadBtn.style.color=''; }\n        });\n    }\n\n    \/\/ \u2500\u2500 Resize listener: re-render when crossing mobile breakpoint \u2500\u2500\u2500\u2500\n    let lastMobile = isMobile();\n    window.addEventListener('resize', () => {\n        const nowMobile = isMobile();\n        if (nowMobile !== lastMobile) { lastMobile = nowMobile; rebuild(); }\n    });\n\n    \/\/ \u2500\u2500 Initial render \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n    rebuild();\n});\n<\/script>\n\n<style>\n#ftTable { border-collapse:collapse; width:100%; box-shadow:0 4px 12px rgba(0,0,0,0.15); border-radius:12px; overflow:hidden; background:white; }\n#ftTable th, #ftTable td { font-size:14px; padding:10px 12px; white-space:nowrap; border:none !important; position:relative; }\n#ftTable thead th { background:#f8f9fa; position:sticky; top:0; z-index:2; border-bottom:1px solid #ddd !important; font-weight:600; transition:background 0.2s; }\n#ftTable thead th:hover { background:#e8eaed; }\n#ftTable tbody tr:nth-child(even) { background:#fbfcfd; }\n#ftTable tbody tr:hover { background:#f1f5f9; }\n#ftTable td { text-align:center; border-right:1px solid #eee !important; }\n#ftTable th:first-child, #ftTable td:first-child { text-align:left; }\n#ftTable th:nth-child(2), #ftTable td:nth-child(2),\n#ftTable th:nth-child(3), #ftTable td:nth-child(3) { text-align:center; padding:6px; }\n.column-cross, .row-cross { display:flex !important; opacity:1 !important; visibility:visible !important; transition:all 0.2s ease; }\n.column-cross:hover, .row-cross:hover { transform:translateY(-50%) scale(1.2) !important; color:#666 !important; }\ntr.hidden-row { opacity:0.3 !important; background:rgba(255,0,0,0.05) !important; }\nselect, input[type=\"number\"] { border-radius:8px; border:1px solid #ccc; padding:6px 10px; font-size:14px; background:#fff; }\nselect:focus, input[type=\"number\"]:focus { outline:none; border-color:#0073aa; box-shadow:0 0 4px rgba(0,115,170,0.4); }\ninput[type=\"range\"] { width:100%; cursor:pointer; }\nbutton { transition:all 0.2s ease; border-radius:6px; border:1px solid #ddd; padding:8px 14px; cursor:pointer; font-weight:500; font-size:13px; background:white; color:#333; }\nbutton:hover { transform:translateY(-1px); box-shadow:0 2px 6px rgba(0,0,0,0.1); }\nbutton:active { transform:translateY(0); }\n#showAllBtn { background:#28a745 !important; color:white !important; border-color:#28a745 !important; }\n#showAllBtn:hover { background:#218838 !important; }\nth[data-sort] { cursor:pointer; user-select:none; }\nth.asc::after  { content:\" \u25b2\"; font-size:0.8em; opacity:0.7; }\nth.desc::after { content:\" \u25bc\"; font-size:0.8em; opacity:0.7; }\n.greyed-out { background:#cccccc !important; color:#555 !important; opacity:0.6; }\n.annotate-cycle-btn { min-width:70px; }\n.annotate-cycle-btn.active { background:#add8e6 !important; border:1px solid #999 !important; }\n.bg-colour-btn.active-bg { border:2px solid #0073aa !important; }\n\n\/* Outer wrap \u2013 smooth transition for background colour changes *\/\n#fixture-ticker-wrap { transition: background 0.3s ease, border-radius 0.3s ease, padding 0.3s ease; }\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   MOBILE CARD LAYOUT  \u2014  CSS-first, @media (max-width: 768px)\n   Zero effect on desktop. All layout switches driven by CSS.\n   JS rebuild() routes to renderMobileCards() when this fires.\n   \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n\n\/* \u2500\u2500 Desktop: show table, hide cards \u2500\u2500 *\/\n#ft-desktop { display: block; }\n#ft-mobile  { display: none;  }\n\n\/* \u2500\u2500 Mobile \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n@media (max-width: 768px) {\n\n    \/* Show cards, hide table *\/\n    #ft-desktop { display: none !important; }\n    #ft-mobile  { display: block !important; }\n\n    \/* Ticker wrapper: flush to edges *\/\n    #fixture-ticker {\n        margin: 0 !important;\n        padding: 8px 0 !important;\n    }\n\n    \/* \u2500\u2500 Mobile header bar \u2500\u2500 *\/\n    .ft-mobile-header {\n        display: flex;\n        align-items: center;\n        justify-content: space-between;\n        flex-wrap: wrap;\n        gap: 8px;\n        padding: 0 10px 10px;\n        border-bottom: 1px solid #e5e7eb;\n        margin-bottom: 10px;\n    }\n    .ft-mobile-header h2 { font-size: 16px; margin: 0; }\n    .ft-mobile-header .ft-mob-btns {\n        display: flex;\n        gap: 6px;\n        flex-wrap: wrap;\n    }\n    .ft-mobile-header button {\n        padding: 7px 11px;\n        font-size: 12px;\n        border-radius: 6px;\n        min-height: 36px;\n    }\n\n    \/* \u2500\u2500 Mobile controls row \u2500\u2500 *\/\n    .ft-mobile-controls {\n        display: flex;\n        flex-wrap: wrap;\n        gap: 8px;\n        align-items: center;\n        padding: 0 10px 10px;\n        font-size: 12px;\n    }\n    .ft-mobile-controls label { font-size: 11px; font-weight: 600; color: #555; }\n    .ft-mobile-controls select,\n    .ft-mobile-controls input[type=\"number\"] {\n        font-size: 12px;\n        padding: 6px 8px;\n        border-radius: 6px;\n        border: 1px solid #ccc;\n        min-height: 36px;\n    }\n    .ft-mobile-controls input[type=\"number\"] { width: 52px; }\n    .ft-mobile-controls select { max-width: 150px; }\n    .ft-mobile-controls button { min-height: 36px; padding: 6px 10px; font-size: 12px; }\n\n    \/* \u2500\u2500 Card container \u2500\u2500 *\/\n    #ft-mobile {\n        padding: 0 8px;\n    }\n\n    \/* \u2500\u2500 Individual team card \u2500\u2500 *\/\n    .ft-card {\n        background: #fff;\n        border-radius: 10px;\n        box-shadow: 0 1px 4px rgba(0,0,0,0.10);\n        margin-bottom: 10px;\n        padding: 10px 10px 8px;\n        border: 1px solid #e5e7eb;\n    }\n\n    \/* \u2500\u2500 Card header: hide-btn | name | avg \u2500\u2500 *\/\n    .ft-card-header {\n        display: flex;\n        align-items: center;\n        gap: 8px;\n        margin-bottom: 8px;\n    }\n    .ft-card-hide {\n        flex-shrink: 0;\n        width: 22px;\n        height: 22px;\n        border-radius: 50%;\n        border: none;\n        background: #e5e7eb;\n        color: #555;\n        font-size: 10px;\n        cursor: pointer;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        padding: 0;\n        line-height: 1;\n        min-height: 0;\n    }\n    .ft-card-hide:hover { background: #cbd5e1; }\n    .ft-card-name {\n        font-weight: 700;\n        font-size: 14px;\n        flex: 1;\n        white-space: nowrap;\n        overflow: hidden;\n        text-overflow: ellipsis;\n    }\n    .ft-card-meta {\n        font-size: 11px;\n        color: #888;\n        white-space: nowrap;\n        flex-shrink: 0;\n    }\n\n    \/* \u2500\u2500 Fixture pills row (horizontally scrollable) \u2500\u2500 *\/\n    .ft-pills-row {\n        display: flex;\n        gap: 5px;\n        overflow-x: auto;\n        -webkit-overflow-scrolling: touch;\n        padding-bottom: 4px;\n        scrollbar-width: none;\n    }\n    .ft-pills-row::-webkit-scrollbar { display: none; }\n\n    \/* \u2500\u2500 Single fixture pill \u2500\u2500 *\/\n    .ft-pill {\n        flex-shrink: 0;\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        justify-content: center;\n        min-width: 46px;\n        padding: 5px 4px;\n        border-radius: 7px;\n        border: 1px solid rgba(0,0,0,0.08);\n        cursor: default;\n        user-select: none;\n    }\n    .ft-pill-label {\n        font-size: 9px;\n        font-weight: 600;\n        opacity: 0.75;\n        letter-spacing: 0.3px;\n        margin-bottom: 2px;\n    }\n    .ft-pill-opp {\n        font-size: 13px;\n        font-weight: 700;\n        line-height: 1;\n    }\n    .ft-pill-venue {\n        font-size: 9px;\n        font-weight: 600;\n        margin-top: 2px;\n        opacity: 0.8;\n    }\n    .ft-pill-blank {\n        background: #f3f4f6;\n        color: #bbb;\n        border-color: #e5e7eb;\n    }\n    .ft-pill-moved {\n        background: #ccc;\n        color: #777;\n        opacity: 0.6;\n    }\n    .ft-pill-dgw {\n        border: 2px solid rgba(0,0,0,0.15);\n    }\n}\n<\/style>\n\n\t\n    <style>\n        .pl-league-wrap {\n            max-width: 900px;\n            min-width: 900px;\n            margin: 0 auto;\n            font-size: 1.18em;\n        }\n\n        table.pl-table {\n            width: 100%;\n            border-collapse: collapse;\n        }\n\n        table.pl-table thead tr {\n            background: #fbfbfb;\n        }\n\n        table.pl-table th {\n            border: 1px solid #ddd;\n            padding: 14px 10px;\n            text-align: center;\n            font-weight: 700;\n            font-size: 0.92em;\n            color: #444;\n            white-space: nowrap;\n        }\n\n        table.pl-table td {\n            border: 1px solid #eee;\n            padding: 12px 10px;\n            text-align: center;\n            white-space: nowrap;\n            vertical-align: middle;\n        }\n\n        table.pl-table tbody tr:hover {\n            background-color: #f0f4ff;\n        }\n\n        \/* Position column *\/\n        table.pl-table th.pos,\n        table.pl-table td.pos {\n            width: 36px;\n            font-weight: 700;\n            color: #555;\n        }\n\n        \/* Zone colour bars *\/\n        table.pl-table td.pos-ucl  { border-left: 4px solid #0a54a8; }\n        table.pl-table td.pos-uel  { border-left: 4px solid #f58c00; }\n        table.pl-table td.pos-uecl { border-left: 4px solid #2e9e4f; }\n        table.pl-table td.pos-rel  { border-left: 4px solid #e00;    }\n\n        \/* Team column *\/\n        table.pl-table th.team,\n        table.pl-table td.team {\n            text-align: left;\n            min-width: 180px;\n            font-weight: 500;\n        }\n\n        table.pl-table td.team img {\n            height: 26px;\n            width:  26px;\n            vertical-align: middle;\n            margin-right: 8px;\n            object-fit: contain;\n        }\n\n        \/* Points column \u2014 visually prominent like the score in fixtures *\/\n        table.pl-table th.points,\n        table.pl-table td.points {\n            font-weight: 700;\n            font-size: 1.18em;\n        }\n\n        \/* Goal difference *\/\n        table.pl-table td.gd-pos  { color: #1a7a1a; font-weight: 600; }\n        table.pl-table td.gd-neg  { color: #b00;    font-weight: 600; }\n        table.pl-table td.gd-zero { color: #777; }\n\n        \/* Form dots *\/\n        table.pl-table th.form,\n        table.pl-table td.form {\n            min-width: 100px;\n        }\n\n        .form-dot {\n            display: inline-block;\n            width: 14px;\n            height: 14px;\n            border-radius: 50%;\n            margin: 0 2px;\n            vertical-align: middle;\n        }\n        .form-dot-W { background: #1e9e3e; }\n        .form-dot-D { background: #aaa; }\n        .form-dot-L { background: #cc1111; }\n\n        \/* Zone legend *\/\n        .pl-legend {\n            display: flex;\n            gap: 18px;\n            flex-wrap: wrap;\n            margin-top: 10px;\n            font-size: 0.82em;\n            color: #555;\n        }\n        .pl-legend-item {\n            display: flex;\n            align-items: center;\n            gap: 6px;\n        }\n        .pl-legend-bar {\n            width: 12px;\n            height: 14px;\n            border-radius: 2px;\n        }\n\n        \/* \u2500\u2500 MOBILE: scroll wrapper activates, inner wrap stays full width \u2500\u2500 *\/\n        @media (max-width: 768px) {\n            .pl-league-scroll-outer {\n                overflow-x: auto;\n                -webkit-overflow-scrolling: touch;\n                width: 100%;\n            }\n            .pl-league-wrap {\n                min-width: 0;\n                max-width: none;\n                width: max-content;\n                font-size: 1em;\n            }\n        }\n    <\/style>\n\n    <!-- MOBILE CHANGE: added .pl-league-scroll-outer wrapper div -->\n    <div class=\"pl-league-scroll-outer\">\n    <div class=\"pl-league-wrap\">\n        <table class=\"pl-table\">\n            <thead>\n                <tr>\n                    <th class=\"pos\">Pos<\/th>\n                    <th class=\"team\">Team<\/th>\n                    <th title=\"Played\">P<\/th>\n                    <th title=\"Won\">W<\/th>\n                    <th title=\"Drawn\">D<\/th>\n                    <th title=\"Lost\">L<\/th>\n                    <th title=\"Goals For\">GF<\/th>\n                    <th title=\"Goals Against\">GA<\/th>\n                    <th title=\"Goal Difference\">GD<\/th>\n                    <th class=\"points\" title=\"Points\">Pts<\/th>\n                    <th class=\"form\" title=\"Last 5 results\">Form<\/th>\n                <\/tr>\n            <\/thead>\n            <tbody>\n                            <tr>\n                    <td class=\"pos pos-ucl\">1<\/td>\n                    <td class=\"team\">\n                                                    <img decoding=\"async\" src=\"https:\/\/crests.football-data.org\/65.png\" alt=\"MCI\">\n                                                Manchester City                    <\/td>\n                    <td>33<\/td>\n                    <td>21<\/td>\n                    <td>7<\/td>\n                    <td>5<\/td>\n                    <td>66<\/td>\n                    <td>29<\/td>\n                    <td class=\"gd-pos\">+37<\/td>\n                    <td class=\"points\">70<\/td>\n                    <td class=\"form\"><span style=\"color:#bbb;\">\u2014<\/span><\/td>\n                <\/tr>\n                            <tr>\n                    <td class=\"pos pos-ucl\">2<\/td>\n                    <td class=\"team\">\n                                                    <img decoding=\"async\" src=\"https:\/\/crests.football-data.org\/57.png\" alt=\"ARS\">\n                                                Arsenal                    <\/td>\n                    <td>33<\/td>\n                    <td>21<\/td>\n                    <td>7<\/td>\n                    <td>5<\/td>\n                    <td>63<\/td>\n                    <td>26<\/td>\n                    <td class=\"gd-pos\">+37<\/td>\n                    <td class=\"points\">70<\/td>\n                    <td class=\"form\"><span style=\"color:#bbb;\">\u2014<\/span><\/td>\n                <\/tr>\n                            <tr>\n                    <td class=\"pos pos-ucl\">3<\/td>\n                    <td class=\"team\">\n                                                    <img decoding=\"async\" src=\"https:\/\/crests.football-data.org\/66.png\" alt=\"MUN\">\n                                                Manchester United                    <\/td>\n                    <td>33<\/td>\n                    <td>16<\/td>\n                    <td>10<\/td>\n                    <td>7<\/td>\n                    <td>58<\/td>\n                    <td>45<\/td>\n                    <td class=\"gd-pos\">+13<\/td>\n                    <td class=\"points\">58<\/td>\n                    <td class=\"form\"><span style=\"color:#bbb;\">\u2014<\/span><\/td>\n                <\/tr>\n                            <tr>\n                    <td class=\"pos pos-ucl\">4<\/td>\n                    <td class=\"team\">\n                                                    <img decoding=\"async\" src=\"https:\/\/crests.football-data.org\/58.png\" alt=\"AVL\">\n                                                Aston Villa                    <\/td>\n                    <td>33<\/td>\n                    <td>17<\/td>\n                    <td>7<\/td>\n                    <td>9<\/td>\n                    <td>47<\/td>\n                    <td>41<\/td>\n                    <td class=\"gd-pos\">+6<\/td>\n                    <td class=\"points\">58<\/td>\n                    <td class=\"form\"><span style=\"color:#bbb;\">\u2014<\/span><\/td>\n                <\/tr>\n                            <tr>\n                    <td class=\"pos pos-uel\">5<\/td>\n                    <td class=\"team\">\n                                                    <img decoding=\"async\" src=\"https:\/\/crests.football-data.org\/64.png\" alt=\"LIV\">\n                                                Liverpool                    <\/td>\n                    <td>33<\/td>\n                    <td>16<\/td>\n                    <td>7<\/td>\n                    <td>10<\/td>\n                    <td>54<\/td>\n                    <td>43<\/td>\n                    <td class=\"gd-pos\">+11<\/td>\n                    <td class=\"points\">55<\/td>\n                    <td class=\"form\"><span style=\"color:#bbb;\">\u2014<\/span><\/td>\n                <\/tr>\n                            <tr>\n                    <td class=\"pos pos-uecl\">6<\/td>\n                    <td class=\"team\">\n                                                    <img decoding=\"async\" src=\"https:\/\/crests.football-data.org\/397.png\" alt=\"BHA\">\n                                                Brighton &amp; Hove Albion                    <\/td>\n                    <td>34<\/td>\n                    <td>13<\/td>\n                    <td>11<\/td>\n                    <td>10<\/td>\n                    <td>48<\/td>\n                    <td>39<\/td>\n                    <td class=\"gd-pos\">+9<\/td>\n                    <td class=\"points\">50<\/td>\n                    <td class=\"form\"><span style=\"color:#bbb;\">\u2014<\/span><\/td>\n                <\/tr>\n                            <tr>\n                    <td class=\"pos\">7<\/td>\n                    <td class=\"team\">\n                                                    <img decoding=\"async\" src=\"https:\/\/crests.football-data.org\/bournemouth.png\" alt=\"BOU\">\n                                                AFC Bournemouth                    <\/td>\n                    <td>34<\/td>\n                    <td>11<\/td>\n                    <td>16<\/td>\n                    <td>7<\/td>\n                    <td>52<\/td>\n                    <td>52<\/td>\n                    <td class=\"gd-zero\">0<\/td>\n                    <td class=\"points\">49<\/td>\n                    <td class=\"form\"><span style=\"color:#bbb;\">\u2014<\/span><\/td>\n                <\/tr>\n                            <tr>\n                    <td class=\"pos\">8<\/td>\n                    <td class=\"team\">\n                                                    <img decoding=\"async\" src=\"https:\/\/crests.football-data.org\/61.png\" alt=\"CHE\">\n                                                Chelsea                    <\/td>\n                    <td>34<\/td>\n                    <td>13<\/td>\n                    <td>9<\/td>\n                    <td>12<\/td>\n                    <td>53<\/td>\n                    <td>45<\/td>\n                    <td class=\"gd-pos\">+8<\/td>\n                    <td class=\"points\">48<\/td>\n                    <td class=\"form\"><span style=\"color:#bbb;\">\u2014<\/span><\/td>\n                <\/tr>\n                            <tr>\n                    <td class=\"pos\">9<\/td>\n                    <td class=\"team\">\n                                                    <img decoding=\"async\" src=\"https:\/\/crests.football-data.org\/402.png\" alt=\"BRE\">\n                                                Brentford                    <\/td>\n                    <td>33<\/td>\n                    <td>13<\/td>\n                    <td>9<\/td>\n                    <td>11<\/td>\n                    <td>48<\/td>\n                    <td>44<\/td>\n                    <td class=\"gd-pos\">+4<\/td>\n                    <td class=\"points\">48<\/td>\n                    <td class=\"form\"><span style=\"color:#bbb;\">\u2014<\/span><\/td>\n                <\/tr>\n                            <tr>\n                    <td class=\"pos\">10<\/td>\n                    <td class=\"team\">\n                                                    <img decoding=\"async\" src=\"https:\/\/crests.football-data.org\/62.png\" alt=\"EVE\">\n                                                Everton                    <\/td>\n                    <td>33<\/td>\n                    <td>13<\/td>\n                    <td>8<\/td>\n                    <td>12<\/td>\n                    <td>40<\/td>\n                    <td>39<\/td>\n                    <td class=\"gd-pos\">+1<\/td>\n                    <td class=\"points\">47<\/td>\n                    <td class=\"form\"><span style=\"color:#bbb;\">\u2014<\/span><\/td>\n                <\/tr>\n                            <tr>\n                    <td class=\"pos\">11<\/td>\n                    <td class=\"team\">\n                                                    <img decoding=\"async\" src=\"https:\/\/crests.football-data.org\/71.png\" alt=\"SUN\">\n                                                Sunderland                    <\/td>\n                    <td>33<\/td>\n                    <td>12<\/td>\n                    <td>10<\/td>\n                    <td>11<\/td>\n                    <td>36<\/td>\n                    <td>40<\/td>\n                    <td class=\"gd-neg\">-4<\/td>\n                    <td class=\"points\">46<\/td>\n                    <td class=\"form\"><span style=\"color:#bbb;\">\u2014<\/span><\/td>\n                <\/tr>\n                            <tr>\n                    <td class=\"pos\">12<\/td>\n                    <td class=\"team\">\n                                                    <img decoding=\"async\" src=\"https:\/\/crests.football-data.org\/63.png\" alt=\"FUL\">\n                                                Fulham                    <\/td>\n                    <td>33<\/td>\n                    <td>13<\/td>\n                    <td>6<\/td>\n                    <td>14<\/td>\n                    <td>43<\/td>\n                    <td>46<\/td>\n                    <td class=\"gd-neg\">-3<\/td>\n                    <td class=\"points\">45<\/td>\n                    <td class=\"form\"><span style=\"color:#bbb;\">\u2014<\/span><\/td>\n                <\/tr>\n                            <tr>\n                    <td class=\"pos\">13<\/td>\n                    <td class=\"team\">\n                                                    <img decoding=\"async\" src=\"https:\/\/crests.football-data.org\/354.png\" alt=\"CRY\">\n                                                Crystal Palace                    <\/td>\n                    <td>32<\/td>\n                    <td>11<\/td>\n                    <td>10<\/td>\n                    <td>11<\/td>\n                    <td>35<\/td>\n                    <td>36<\/td>\n                    <td class=\"gd-neg\">-1<\/td>\n                    <td class=\"points\">43<\/td>\n                    <td class=\"form\"><span style=\"color:#bbb;\">\u2014<\/span><\/td>\n                <\/tr>\n                            <tr>\n                    <td class=\"pos\">14<\/td>\n                    <td class=\"team\">\n                                                    <img decoding=\"async\" src=\"https:\/\/crests.football-data.org\/67.png\" alt=\"NEW\">\n                                                Newcastle United                    <\/td>\n                    <td>33<\/td>\n                    <td>12<\/td>\n                    <td>6<\/td>\n                    <td>15<\/td>\n                    <td>46<\/td>\n                    <td>49<\/td>\n                    <td class=\"gd-neg\">-3<\/td>\n                    <td class=\"points\">42<\/td>\n                    <td class=\"form\"><span style=\"color:#bbb;\">\u2014<\/span><\/td>\n                <\/tr>\n                            <tr>\n                    <td class=\"pos\">15<\/td>\n                    <td class=\"team\">\n                                                    <img decoding=\"async\" src=\"https:\/\/crests.football-data.org\/341.png\" alt=\"LEE\">\n                                                Leeds United                    <\/td>\n                    <td>34<\/td>\n                    <td>9<\/td>\n                    <td>13<\/td>\n                    <td>12<\/td>\n                    <td>44<\/td>\n                    <td>51<\/td>\n                    <td class=\"gd-neg\">-7<\/td>\n                    <td class=\"points\">40<\/td>\n                    <td class=\"form\"><span style=\"color:#bbb;\">\u2014<\/span><\/td>\n                <\/tr>\n                            <tr>\n                    <td class=\"pos\">16<\/td>\n                    <td class=\"team\">\n                                                    <img decoding=\"async\" src=\"https:\/\/crests.football-data.org\/351.png\" alt=\"NOT\">\n                                                Nottingham Forest                    <\/td>\n                    <td>33<\/td>\n                    <td>9<\/td>\n                    <td>9<\/td>\n                    <td>15<\/td>\n                    <td>36<\/td>\n                    <td>45<\/td>\n                    <td class=\"gd-neg\">-9<\/td>\n                    <td class=\"points\">36<\/td>\n                    <td class=\"form\"><span style=\"color:#bbb;\">\u2014<\/span><\/td>\n                <\/tr>\n                            <tr>\n                    <td class=\"pos\">17<\/td>\n                    <td class=\"team\">\n                                                    <img decoding=\"async\" src=\"https:\/\/crests.football-data.org\/563.png\" alt=\"WHU\">\n                                                West Ham United                    <\/td>\n                    <td>33<\/td>\n                    <td>8<\/td>\n                    <td>9<\/td>\n                    <td>16<\/td>\n                    <td>40<\/td>\n                    <td>57<\/td>\n                    <td class=\"gd-neg\">-17<\/td>\n                    <td class=\"points\">33<\/td>\n                    <td class=\"form\"><span style=\"color:#bbb;\">\u2014<\/span><\/td>\n                <\/tr>\n                            <tr>\n                    <td class=\"pos pos-rel\">18<\/td>\n                    <td class=\"team\">\n                                                    <img decoding=\"async\" src=\"https:\/\/crests.football-data.org\/73.png\" alt=\"TOT\">\n                                                Tottenham Hotspur                    <\/td>\n                    <td>33<\/td>\n                    <td>7<\/td>\n                    <td>10<\/td>\n                    <td>16<\/td>\n                    <td>42<\/td>\n                    <td>53<\/td>\n                    <td class=\"gd-neg\">-11<\/td>\n                    <td class=\"points\">31<\/td>\n                    <td class=\"form\"><span style=\"color:#bbb;\">\u2014<\/span><\/td>\n                <\/tr>\n                            <tr>\n                    <td class=\"pos pos-rel\">19<\/td>\n                    <td class=\"team\">\n                                                    <img decoding=\"async\" src=\"https:\/\/crests.football-data.org\/328.png\" alt=\"BUR\">\n                                                Burnley                    <\/td>\n                    <td>34<\/td>\n                    <td>4<\/td>\n                    <td>8<\/td>\n                    <td>22<\/td>\n                    <td>34<\/td>\n                    <td>68<\/td>\n                    <td class=\"gd-neg\">-34<\/td>\n                    <td class=\"points\">20<\/td>\n                    <td class=\"form\"><span style=\"color:#bbb;\">\u2014<\/span><\/td>\n                <\/tr>\n                            <tr>\n                    <td class=\"pos pos-rel\">20<\/td>\n                    <td class=\"team\">\n                                                    <img decoding=\"async\" src=\"https:\/\/crests.football-data.org\/76.png\" alt=\"WOL\">\n                                                Wolverhampton Wanderers                    <\/td>\n                    <td>33<\/td>\n                    <td>3<\/td>\n                    <td>8<\/td>\n                    <td>22<\/td>\n                    <td>24<\/td>\n                    <td>61<\/td>\n                    <td class=\"gd-neg\">-37<\/td>\n                    <td class=\"points\">17<\/td>\n                    <td class=\"form\"><span style=\"color:#bbb;\">\u2014<\/span><\/td>\n                <\/tr>\n                        <\/tbody>\n        <\/table>\n\n        <div class=\"pl-legend\">\n            <div class=\"pl-legend-item\">\n                <div class=\"pl-legend-bar\" style=\"background:#0a54a8;\"><\/div> UEFA Champions League\n            <\/div>\n            <div class=\"pl-legend-item\">\n                <div class=\"pl-legend-bar\" style=\"background:#f58c00;\"><\/div> UEFA Europa League\n            <\/div>\n            <div class=\"pl-legend-item\">\n                <div class=\"pl-legend-bar\" style=\"background:#2e9e4f;\"><\/div> UEFA Conference League\n            <\/div>\n            <div class=\"pl-legend-item\">\n                <div class=\"pl-legend-bar\" style=\"background:#e00;\"><\/div> Relegation\n            <\/div>\n        <\/div>\n    <\/div>\n    <\/div><!-- \/.pl-league-scroll-outer -->\n\n    \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":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-86","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/fantasyfootballticker.co.uk\/index.php?rest_route=\/wp\/v2\/pages\/86","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fantasyfootballticker.co.uk\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/fantasyfootballticker.co.uk\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/fantasyfootballticker.co.uk\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fantasyfootballticker.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=86"}],"version-history":[{"count":105,"href":"https:\/\/fantasyfootballticker.co.uk\/index.php?rest_route=\/wp\/v2\/pages\/86\/revisions"}],"predecessor-version":[{"id":395,"href":"https:\/\/fantasyfootballticker.co.uk\/index.php?rest_route=\/wp\/v2\/pages\/86\/revisions\/395"}],"wp:attachment":[{"href":"https:\/\/fantasyfootballticker.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=86"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}