{"id":4774,"date":"2026-05-05T05:39:43","date_gmt":"2026-05-05T09:39:43","guid":{"rendered":"https:\/\/statshockeymineur.com\/?page_id=4774"},"modified":"2026-05-06T05:09:37","modified_gmt":"2026-05-06T09:09:37","slug":"super-serie-identity","status":"publish","type":"page","link":"https:\/\/statshockeymineur.com\/en\/super-serie-identity\/","title":{"rendered":"super-serie-identity"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"4774\" class=\"elementor elementor-4774\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6cf0c05 e-flex e-con-boxed e-con e-parent\" data-id=\"6cf0c05\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d28a7f8 elementor-widget elementor-widget-shortcode\" data-id=\"d28a7f8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">        <style>\r\n            #mhsc-sspt-app {\r\n                --sspt-bg1: #f3f6fb;\r\n                --sspt-bg2: #e6edf8;\r\n                --sspt-card: #ffffff;\r\n                --sspt-text: #10213f;\r\n                --sspt-muted: #5c6a83;\r\n                --sspt-line: #d9e0eb;\r\n                --sspt-brand: #0b5cab;\r\n                --sspt-brand-dark: #093f77;\r\n                color: var(--sspt-text);\r\n                background: linear-gradient(160deg, var(--sspt-bg1), var(--sspt-bg2));\r\n                border: 1px solid #cfd9e9;\r\n                border-radius: 20px;\r\n                padding: 24px;\r\n                max-width: 1180px;\r\n                position: relative;\r\n                overflow: hidden;\r\n                box-shadow: 0 18px 46px rgba(5, 27, 58, 0.08);\r\n                font-family: \"Segoe UI\", \"Helvetica Neue\", Arial, sans-serif;\r\n            }\r\n\r\n            #mhsc-sspt-app::before {\r\n                content: \"\";\r\n                position: absolute;\r\n                top: -140px;\r\n                right: -120px;\r\n                width: 360px;\r\n                height: 360px;\r\n                border-radius: 50%;\r\n                background: radial-gradient(circle, rgba(30, 167, 255, 0.25), rgba(30, 167, 255, 0));\r\n                pointer-events: none;\r\n            }\r\n\r\n            .sspt-header {\r\n                position: relative;\r\n                margin-bottom: 14px;\r\n            }\r\n\r\n            .sspt-title {\r\n                margin: 0;\r\n                font-size: 34px;\r\n                line-height: 1.1;\r\n                font-weight: 800;\r\n                letter-spacing: -0.02em;\r\n            }\r\n\r\n            .sspt-path {\r\n                margin-top: 8px;\r\n                color: var(--sspt-muted);\r\n                font-weight: 600;\r\n                font-size: 13px;\r\n                letter-spacing: 0.04em;\r\n                text-transform: uppercase;\r\n            }\r\n\r\n            .sspt-intro {\r\n                margin-top: 10px;\r\n                margin-bottom: 16px;\r\n                background: rgba(255, 255, 255, 0.72);\r\n                border: 1px solid #d9e2f0;\r\n                border-radius: 12px;\r\n                padding: 12px 14px;\r\n                color: #1a2f4d;\r\n            }\r\n\r\n            .sspt-intro p {\r\n                margin: 0 0 8px;\r\n                font-size: 13px;\r\n                line-height: 1.45;\r\n                color: #334a6d;\r\n            }\r\n\r\n            .sspt-intro p:last-child {\r\n                margin-bottom: 0;\r\n            }\r\n\r\n            .sspt-intro-strong {\r\n                color: #0b4b89;\r\n                font-weight: 800;\r\n            }\r\n\r\n            .sspt-intro-link {\r\n                display: inline-flex;\r\n                align-items: center;\r\n                gap: 4px;\r\n                color: #0b4b89;\r\n                font-weight: 800;\r\n                text-decoration: underline;\r\n                text-decoration-thickness: 2px;\r\n                text-underline-offset: 2px;\r\n                background: rgba(11, 92, 171, 0.1);\r\n                border: 1px solid rgba(11, 92, 171, 0.25);\r\n                border-radius: 6px;\r\n                padding: 1px 6px;\r\n            }\r\n\r\n            .sspt-intro-link::after {\r\n                content: \"\u2197\";\r\n                font-size: 11px;\r\n                line-height: 1;\r\n                opacity: 0.9;\r\n            }\r\n\r\n            .sspt-intro-link:hover {\r\n                color: #083766;\r\n                background: rgba(11, 92, 171, 0.16);\r\n                border-color: rgba(11, 92, 171, 0.4);\r\n            }\r\n\r\n            .sspt-filters {\r\n                display: grid;\r\n                grid-template-columns: repeat(3, minmax(0, 1fr));\r\n                gap: 12px;\r\n                margin-top: 18px;\r\n                margin-bottom: 16px;\r\n                position: relative;\r\n            }\r\n\r\n            .sspt-control {\r\n                background: var(--sspt-card);\r\n                border: 1px solid var(--sspt-line);\r\n                border-radius: 12px;\r\n                padding: 10px 12px;\r\n                display: flex;\r\n                flex-direction: column;\r\n                gap: 6px;\r\n            }\r\n\r\n            .sspt-label {\r\n                font-size: 11px;\r\n                color: var(--sspt-muted);\r\n                font-weight: 700;\r\n                text-transform: uppercase;\r\n                letter-spacing: 0.08em;\r\n            }\r\n\r\n            .sspt-select {\r\n                width: 100%;\r\n                border: none;\r\n                outline: none;\r\n                background: transparent;\r\n                color: var(--sspt-text);\r\n                font-size: 14px;\r\n                font-weight: 700;\r\n                min-height: 28px;\r\n            }\r\n\r\n            #sspt-load {\r\n                border: 0;\r\n                border-radius: 12px;\r\n                background: linear-gradient(135deg, var(--sspt-brand), var(--sspt-brand-dark));\r\n                color: #fff;\r\n                padding: 12px 20px;\r\n                font-size: 14px;\r\n                font-weight: 800;\r\n                letter-spacing: 0.05em;\r\n                text-transform: uppercase;\r\n                cursor: pointer;\r\n                box-shadow: 0 8px 22px rgba(10, 69, 126, 0.28);\r\n            }\r\n\r\n            #sspt-load:hover {\r\n                filter: brightness(1.05);\r\n            }\r\n\r\n            #sspt-status {\r\n                margin-top: 12px;\r\n                min-height: 20px;\r\n                color: #214c82;\r\n                font-size: 15px;\r\n                font-weight: 800;\r\n            }\r\n\r\n            #sspt-results {\r\n                margin-top: 10px;\r\n                background: var(--sspt-card);\r\n                border: 1px solid var(--sspt-line);\r\n                border-radius: 14px;\r\n                overflow: hidden;\r\n            }\r\n\r\n            .sspt-table {\r\n                width: 100%;\r\n                border-collapse: collapse;\r\n            }\r\n\r\n            .sspt-table th {\r\n                background: #eef3fa;\r\n                color: #253856;\r\n                font-size: 12px;\r\n                text-transform: uppercase;\r\n                letter-spacing: 0.06em;\r\n                text-align: left;\r\n                padding: 12px 14px;\r\n            }\r\n\r\n            .sspt-table td {\r\n                border-top: 1px solid #edf2f9;\r\n                vertical-align: top;\r\n                padding: 11px 14px;\r\n                font-size: 14px;\r\n            }\r\n\r\n            .sspt-person {\r\n                font-weight: 700;\r\n                color: #1c2f4f;\r\n                display: block;\r\n            }\r\n\r\n            .sspt-position {\r\n                color: #5f6f89;\r\n                font-weight: 700;\r\n                font-size: 12px;\r\n                text-transform: uppercase;\r\n                letter-spacing: 0.04em;\r\n            }\r\n\r\n            .sspt-match-item {\r\n                display: grid;\r\n                grid-template-columns: 20px minmax(0, 1fr) 22px;\r\n                align-items: center;\r\n                gap: 8px;\r\n                padding: 6px 0;\r\n            }\r\n\r\n            .sspt-match-list {\r\n                display: grid;\r\n                grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));\r\n                gap: 6px 14px;\r\n            }\r\n\r\n            .sspt-match-main {\r\n                min-width: 0;\r\n                display: flex;\r\n                flex-direction: column;\r\n                align-items: flex-start;\r\n                gap: 2px;\r\n            }\r\n\r\n            .sspt-role-badge {\r\n                display: inline-flex;\r\n                align-items: center;\r\n                justify-content: center;\r\n                margin-left: 6px;\r\n                padding: 1px 7px;\r\n                border-radius: 999px;\r\n                font-size: 10px;\r\n                line-height: 1.2;\r\n                font-weight: 800;\r\n                letter-spacing: 0.04em;\r\n                text-transform: uppercase;\r\n                border: 1px solid #c5d9f4;\r\n                color: #0b5cab;\r\n                background: #ecf4ff;\r\n                vertical-align: middle;\r\n            }\r\n\r\n            .sspt-role-badge.coach {\r\n                border-color: #d4d9e5;\r\n                color: #4b5f82;\r\n                background: #f2f5fb;\r\n            }\r\n\r\n            .sspt-logo {\r\n                width: 20px;\r\n                height: 20px;\r\n                object-fit: contain;\r\n                border-radius: 50%;\r\n                background: #fff;\r\n                border: 1px solid #e3eaf5;\r\n                flex-shrink: 0;\r\n            }\r\n\r\n            .sspt-match-name {\r\n                font-size: 12px;\r\n                font-weight: 800;\r\n                color: #172b4d;\r\n                line-height: 1.2;\r\n            }\r\n\r\n            .sspt-team-link {\r\n                color: #0b5cab;\r\n                text-decoration: none;\r\n                border-bottom: 1px dotted rgba(11, 92, 171, 0.35);\r\n            }\r\n\r\n            .sspt-team-link:hover {\r\n                color: #093f77;\r\n                border-bottom-color: rgba(9, 63, 119, 0.55);\r\n            }\r\n\r\n            .sspt-match-meta {\r\n                color: #5d6f8b;\r\n                font-size: 11px;\r\n                margin-top: 0;\r\n                line-height: 1.2;\r\n            }\r\n\r\n            .sspt-dismiss-match {\r\n                margin-left: auto;\r\n                -webkit-appearance: none;\r\n                appearance: none;\r\n                box-sizing: border-box;\r\n                border: 1px solid #d84a4a;\r\n                background: #fff5f5;\r\n                color: #c72525;\r\n                width: 22px;\r\n                min-width: 22px;\r\n                max-width: 22px;\r\n                height: 22px;\r\n                padding: 0 !important;\r\n                border-radius: 50%;\r\n                display: inline-grid;\r\n                place-items: center;\r\n                font-size: 13px;\r\n                font-weight: 800;\r\n                line-height: 0;\r\n                cursor: pointer;\r\n                transition: all 0.15s ease;\r\n            }\r\n\r\n            .sspt-dismiss-match:hover {\r\n                color: #fff;\r\n                background: #c62828;\r\n                border-color: #c62828;\r\n            }\r\n\r\n            .sspt-context {\r\n                padding: 10px 12px;\r\n                background: #eef3fa;\r\n                border-bottom: 1px solid #d9e0eb;\r\n                display: flex;\r\n                flex-wrap: wrap;\r\n                gap: 8px;\r\n                align-items: center;\r\n            }\r\n\r\n            .sspt-context-team {\r\n                font-size: 13px;\r\n                font-weight: 800;\r\n                color: #0b5cab;\r\n            }\r\n\r\n            .sspt-context-sep {\r\n                color: #c2cedf;\r\n            }\r\n\r\n            .sspt-context-category {\r\n                font-size: 12px;\r\n                font-weight: 700;\r\n                color: #5c6a83;\r\n            }\r\n\r\n            .sspt-context-update {\r\n                width: 100%;\r\n                font-size: 11px;\r\n                font-weight: 700;\r\n                color: #6a7f9f;\r\n            }\r\n\r\n            .sspt-match-stats {\r\n                margin-top: 2px;\r\n                display: inline-flex;\r\n                flex-direction: column;\r\n                align-items: flex-start;\r\n                gap: 4px;\r\n            }\r\n\r\n            .sspt-stat-strip {\r\n                display: inline-flex;\r\n                align-items: stretch;\r\n                border-radius: 8px;\r\n                overflow: hidden;\r\n                border: 1px solid #dbe3ef;\r\n                box-shadow: 0 1px 3px rgba(7, 24, 49, 0.08);\r\n                background: #fff;\r\n            }\r\n\r\n            .sspt-stat-cell {\r\n                min-width: 38px;\r\n                padding: 2px 7px;\r\n                display: inline-flex;\r\n                flex-direction: column;\r\n                align-items: center;\r\n                justify-content: center;\r\n                border-right: 1px solid #e2e8f3;\r\n                color: #1f3557;\r\n                background: #fff;\r\n            }\r\n\r\n            .sspt-stat-cell:last-child {\r\n                border-right: 0;\r\n            }\r\n\r\n            .sspt-stat-cell.is-pts {\r\n                background: #1d3f86;\r\n                color: #fff;\r\n            }\r\n\r\n            .sspt-stat-cell.is-locked {\r\n                background: #f0f4f9;\r\n                color: #8a98ad;\r\n            }\r\n\r\n            .sspt-stat-label {\r\n                font-size: 9px;\r\n                font-weight: 800;\r\n                line-height: 1;\r\n                letter-spacing: 0.03em;\r\n                opacity: 0.8;\r\n            }\r\n\r\n            .sspt-stat-value {\r\n                margin-top: 1px;\r\n                font-size: 11px;\r\n                font-weight: 900;\r\n                line-height: 1.1;\r\n            }\r\n\r\n            .sspt-stat-cell.is-pts .sspt-stat-label {\r\n                color: #9dc2ff;\r\n            }\r\n\r\n            .sspt-stat-cell.is-pts .sspt-stat-value {\r\n                color: #fff;\r\n            }\r\n\r\n            .sspt-match-upsell {\r\n                font-size: 10px;\r\n                color: #1f5cae;\r\n                font-weight: 700;\r\n                cursor: pointer;\r\n                text-decoration: underline;\r\n                text-underline-offset: 2px;\r\n            }\r\n\r\n            .sspt-cell-empty {\r\n                color: transparent;\r\n            }\r\n\r\n            .sspt-lock-action {\r\n                display: inline-flex;\r\n                align-items: center;\r\n                justify-content: center;\r\n                width: 17px;\r\n                height: 17px;\r\n                margin: 0 1px;\r\n                border: 1px solid #d9deea;\r\n                border-radius: 5px;\r\n                background: #fff;\r\n                font-size: 11px;\r\n                font-weight: 800;\r\n                color: #a81f1f;\r\n                vertical-align: middle;\r\n                cursor: pointer;\r\n            }\r\n\r\n            .sspt-lock-action:hover {\r\n                background: #eef4ff;\r\n                border-color: #9eb8e3;\r\n            }\r\n\r\n            .sspt-auth-modal {\r\n                display: none;\r\n                position: fixed;\r\n                inset: 0;\r\n                background: rgba(0, 0, 0, 0.45);\r\n                z-index: 9999;\r\n                align-items: center;\r\n                justify-content: center;\r\n                padding: 18px;\r\n            }\r\n\r\n            .sspt-auth-modal.active {\r\n                display: flex;\r\n            }\r\n\r\n            .sspt-auth-card {\r\n                width: 100%;\r\n                max-width: 360px;\r\n                background: #fff;\r\n                border-radius: 14px;\r\n                box-shadow: 0 22px 50px rgba(10, 30, 60, 0.35);\r\n                padding: 22px;\r\n                text-align: center;\r\n            }\r\n\r\n            .sspt-auth-icon {\r\n                width: 58px;\r\n                height: 58px;\r\n                border-radius: 999px;\r\n                margin: 0 auto 10px;\r\n                display: grid;\r\n                place-items: center;\r\n                font-size: 26px;\r\n                background: #edf4ff;\r\n            }\r\n\r\n            .sspt-auth-title {\r\n                margin: 0 0 8px;\r\n                font-size: 19px;\r\n                font-weight: 800;\r\n                color: #11294a;\r\n                text-transform: uppercase;\r\n            }\r\n\r\n            .sspt-auth-text {\r\n                margin: 0 0 14px;\r\n                color: #5b6f8b;\r\n                font-size: 13px;\r\n                line-height: 1.35;\r\n            }\r\n\r\n            .sspt-auth-btn {\r\n                display: block;\r\n                width: 100%;\r\n                padding: 10px 12px;\r\n                border-radius: 8px;\r\n                text-decoration: none;\r\n                font-weight: 800;\r\n                margin-bottom: 8px;\r\n            }\r\n\r\n            .sspt-auth-btn.primary {\r\n                background: #1e5db0;\r\n                color: #fff;\r\n            }\r\n\r\n            .sspt-auth-btn.secondary {\r\n                background: #f0f3f7;\r\n                color: #304867;\r\n            }\r\n\r\n            .sspt-auth-close {\r\n                border: 0;\r\n                background: none;\r\n                color: #6d7f99;\r\n                font-size: 12px;\r\n                cursor: pointer;\r\n            }\r\n\r\n            .sspt-result-actions {\r\n                display: flex;\r\n                justify-content: flex-end;\r\n                gap: 8px;\r\n                padding: 10px 12px 12px;\r\n                border-top: 1px solid #e2e8f2;\r\n                background: #f8fbff;\r\n            }\r\n\r\n            .sspt-compress-btn {\r\n                border: 1px solid #bcd0ea;\r\n                background: #fff;\r\n                color: #1f4f89;\r\n                border-radius: 8px;\r\n                padding: 7px 12px;\r\n                font-size: 12px;\r\n                font-weight: 800;\r\n                letter-spacing: 0.03em;\r\n                text-transform: uppercase;\r\n                cursor: pointer;\r\n            }\r\n\r\n            .sspt-compress-btn:hover {\r\n                background: #eaf2ff;\r\n                border-color: #95b6e1;\r\n            }\r\n\r\n            .sspt-capture-mode {\r\n                position: fixed;\r\n                left: -99999px;\r\n                top: 0;\r\n                width: 390px;\r\n                background: #eef3fa;\r\n                padding: 8px;\r\n                z-index: -1;\r\n                overflow: hidden;\r\n            }\r\n\r\n            .sspt-capture-mode::before {\r\n                content: \"\";\r\n                position: absolute;\r\n                inset: 0;\r\n                background-image:\r\n                    repeating-linear-gradient(\r\n                        -28deg,\r\n                        rgba(18, 52, 93, 0.06) 0,\r\n                        rgba(18, 52, 93, 0.06) 1px,\r\n                        transparent 1px,\r\n                        transparent 90px\r\n                    );\r\n                pointer-events: none;\r\n            }\r\n\r\n            .sspt-capture-watermark {\r\n                position: absolute;\r\n                inset: 0;\r\n                z-index: 2;\r\n                pointer-events: none;\r\n                display: grid;\r\n                grid-template-columns: repeat(2, minmax(0, 1fr));\r\n                gap: 30px 18px;\r\n                padding: 16px 0;\r\n                align-content: space-evenly;\r\n                justify-items: center;\r\n                transform: rotate(-20deg) scale(1.08);\r\n                opacity: 0.12;\r\n                font-size: 12px;\r\n                font-weight: 900;\r\n                text-transform: none;\r\n                letter-spacing: 0.05em;\r\n                color: #12345d;\r\n                text-shadow: 0 0 1px rgba(18, 52, 93, 0.18);\r\n            }\r\n\r\n            .sspt-capture-watermark span {\r\n                white-space: nowrap;\r\n            }\r\n\r\n            .sspt-capture-head {\r\n                position: relative;\r\n                z-index: 1;\r\n                display: flex;\r\n                align-items: center;\r\n                gap: 8px;\r\n                padding: 7px 9px;\r\n                background: #ffffff;\r\n                border: 1px solid #cfddef;\r\n                border-radius: 10px;\r\n                margin-bottom: 6px;\r\n            }\r\n\r\n            .sspt-capture-head img {\r\n                width: 28px;\r\n                height: 28px;\r\n                object-fit: contain;\r\n                border-radius: 50%;\r\n                background: #fff;\r\n                border: 1px solid #dbe5f3;\r\n            }\r\n\r\n            .sspt-capture-head-main {\r\n                min-width: 0;\r\n            }\r\n\r\n            .sspt-capture-head-title {\r\n                font-size: 11px;\r\n                line-height: 1.1;\r\n                font-weight: 800;\r\n                color: #12345d;\r\n            }\r\n\r\n            .sspt-capture-head-url {\r\n                font-size: 10px;\r\n                line-height: 1.1;\r\n                color: #3466a8;\r\n                font-weight: 700;\r\n            }\r\n\r\n            .sspt-capture-mode .capture-wrap {\r\n                position: relative;\r\n                z-index: 1;\r\n                background: #fff;\r\n                border: 1px solid #cdd9ea;\r\n                border-radius: 10px;\r\n                overflow: hidden;\r\n            }\r\n\r\n            .sspt-capture-mode .sspt-table th {\r\n                padding: 6px 7px;\r\n                font-size: 9px;\r\n            }\r\n\r\n            .sspt-capture-mode .sspt-table td {\r\n                padding: 5px 7px;\r\n                font-size: 10px;\r\n            }\r\n\r\n            .sspt-capture-mode .sspt-match-list {\r\n                grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));\r\n                gap: 2px 6px;\r\n            }\r\n\r\n            .sspt-capture-mode .sspt-match-item {\r\n                grid-template-columns: 13px minmax(0, 1fr);\r\n                gap: 5px;\r\n                padding: 2px 0;\r\n            }\r\n\r\n            .sspt-capture-mode .sspt-logo {\r\n                width: 12px;\r\n                height: 12px;\r\n            }\r\n\r\n            .sspt-capture-mode .sspt-match-name {\r\n                font-size: 9px;\r\n                line-height: 1.15;\r\n            }\r\n\r\n            .sspt-capture-mode .sspt-match-meta {\r\n                font-size: 8px;\r\n                line-height: 1.1;\r\n            }\r\n\r\n            .sspt-capture-mode .sspt-stat-cell {\r\n                min-width: 24px;\r\n                padding: 1px 4px;\r\n            }\r\n\r\n            .sspt-capture-mode .sspt-stat-label {\r\n                font-size: 7px;\r\n            }\r\n\r\n            .sspt-capture-mode .sspt-stat-value {\r\n                font-size: 8px;\r\n            }\r\n\r\n            .sspt-capture-mode .sspt-person {\r\n                font-size: 10px;\r\n            }\r\n\r\n            .sspt-capture-mode .sspt-role-badge {\r\n                margin-left: 3px;\r\n                padding: 1px 4px;\r\n                font-size: 8px;\r\n            }\r\n\r\n            .sspt-capture-mode .sspt-dismiss-match,\r\n            .sspt-capture-mode .sspt-match-upsell,\r\n            .sspt-capture-mode .sspt-result-actions {\r\n                display: none !important;\r\n            }\r\n\r\n            .sspt-empty {\r\n                color: #7a879d;\r\n                font-size: 13px;\r\n                font-style: italic;\r\n            }\r\n\r\n            .sspt-loading {\r\n                position: absolute;\r\n                inset: 0;\r\n                background: rgba(245, 249, 255, 0.78);\r\n                display: none;\r\n                align-items: center;\r\n                justify-content: center;\r\n                z-index: 7;\r\n                backdrop-filter: blur(2px);\r\n            }\r\n\r\n            .sspt-loading.active {\r\n                display: flex;\r\n            }\r\n\r\n            .sspt-loader-wrap {\r\n                display: flex;\r\n                flex-direction: column;\r\n                align-items: center;\r\n                gap: 10px;\r\n            }\r\n\r\n            .sspt-puck {\r\n                width: 88px;\r\n                height: 88px;\r\n                border-radius: 50%;\r\n                background: radial-gradient(circle at 40% 30%, #2e3a4f, #111723 70%);\r\n                border: 4px solid #1f2a3a;\r\n                box-shadow: 0 10px 26px rgba(11, 19, 34, 0.4);\r\n                display: grid;\r\n                place-items: center;\r\n                animation: sspt-spin 1.1s linear infinite;\r\n            }\r\n\r\n            .sspt-puck img {\r\n                width: 54px;\r\n                height: 54px;\r\n                object-fit: contain;\r\n                border-radius: 50%;\r\n                background: #fff;\r\n                padding: 4px;\r\n            }\r\n\r\n            .sspt-loader-text {\r\n                color: #1f3658;\r\n                font-size: 12px;\r\n                font-weight: 800;\r\n                text-transform: uppercase;\r\n                letter-spacing: 0.09em;\r\n            }\r\n\r\n            @keyframes sspt-spin {\r\n                from {\r\n                    transform: rotate(0deg);\r\n                }\r\n                to {\r\n                    transform: rotate(360deg);\r\n                }\r\n            }\r\n\r\n            @media (max-width: 900px) {\r\n                .sspt-title {\r\n                    font-size: 28px;\r\n                }\r\n\r\n                .sspt-filters {\r\n                    grid-template-columns: 1fr;\r\n                }\r\n            }\r\n\r\n            @media (max-width: 640px) {\r\n                #mhsc-sspt-app {\r\n                    padding: 14px;\r\n                    border-radius: 14px;\r\n                }\r\n\r\n                .sspt-title {\r\n                    font-size: 24px;\r\n                    line-height: 1.15;\r\n                }\r\n\r\n                .sspt-path {\r\n                    font-size: 11px;\r\n                }\r\n\r\n                #sspt-load {\r\n                    width: 100%;\r\n                    padding: 12px;\r\n                }\r\n\r\n                .sspt-table,\r\n                .sspt-table thead,\r\n                .sspt-table tbody,\r\n                .sspt-table th,\r\n                .sspt-table td,\r\n                .sspt-table tr {\r\n                    display: block;\r\n                    width: 100%;\r\n                }\r\n\r\n                .sspt-table thead {\r\n                    display: none;\r\n                }\r\n\r\n                .sspt-table tr {\r\n                    display: grid;\r\n                    grid-template-columns: minmax(120px, 36%) 1fr;\r\n                    align-items: stretch;\r\n                    border: 1px solid #dce6f2;\r\n                    border-radius: 10px;\r\n                    margin-bottom: 10px;\r\n                    background: #fff;\r\n                    overflow: hidden;\r\n                    padding: 0;\r\n                }\r\n\r\n                .sspt-table tr:first-child {\r\n                    border: 1px solid #dce6f2;\r\n                }\r\n\r\n                .sspt-table td:first-child {\r\n                    border-top: 0;\r\n                    border-right: 1px solid #dae4f2;\r\n                    padding: 9px 8px;\r\n                    background: #eef3fa;\r\n                    border-bottom: 0;\r\n                    text-align: left;\r\n                }\r\n\r\n                .sspt-table td:first-child::before {\r\n                    content: \"Joueur\";\r\n                    display: block;\r\n                    font-size: 9px;\r\n                    color: #0b5cab;\r\n                    text-transform: uppercase;\r\n                    letter-spacing: 0.1em;\r\n                    font-weight: 800;\r\n                    margin-bottom: 2px;\r\n                }\r\n\r\n                .sspt-table td:last-child {\r\n                    border-top: 0;\r\n                    padding: 8px 10px;\r\n                    background: #ffffff;\r\n                    text-align: right;\r\n                }\r\n\r\n                .sspt-table td:last-child::before {\r\n                    content: \"Correspondances MHSC\";\r\n                    display: block;\r\n                    font-size: 9px;\r\n                    color: #5c6a83;\r\n                    text-transform: uppercase;\r\n                    letter-spacing: 0.1em;\r\n                    font-weight: 800;\r\n                    margin-bottom: 4px;\r\n                    text-align: right;\r\n                }\r\n\r\n                .sspt-table td[data-label]::before {\r\n                    content: none;\r\n                }\r\n\r\n                .sspt-puck {\r\n                    width: 74px;\r\n                    height: 74px;\r\n                }\r\n\r\n                .sspt-puck img {\r\n                    width: 46px;\r\n                    height: 46px;\r\n                }\r\n\r\n                .sspt-match-list {\r\n                    grid-template-columns: 1fr;\r\n                    gap: 3px;\r\n                }\r\n\r\n                .sspt-match-item {\r\n                    justify-content: flex-end;\r\n                    align-items: center;\r\n                }\r\n\r\n                .sspt-match-main {\r\n                    text-align: right;\r\n                    align-items: flex-end;\r\n                }\r\n\r\n                .sspt-context {\r\n                    gap: 5px;\r\n                }\r\n\r\n                .sspt-context-team,\r\n                .sspt-context-category {\r\n                    font-size: 12px;\r\n                }\r\n\r\n                .sspt-lock-action {\r\n                    width: 16px;\r\n                    height: 16px;\r\n                }\r\n\r\n                .sspt-role-badge {\r\n                    margin-left: 4px;\r\n                    padding: 1px 6px;\r\n                    font-size: 9px;\r\n                }\r\n\r\n                .sspt-result-actions {\r\n                    justify-content: center;\r\n                    gap: 6px;\r\n                }\r\n\r\n                .sspt-compress-btn {\r\n                    flex: 1;\r\n                }\r\n\r\n                .sspt-stat-cell {\r\n                    min-width: 34px;\r\n                    padding: 2px 5px;\r\n                }\r\n\r\n                .sspt-match-upsell {\r\n                    font-size: 9px;\r\n                }\r\n\r\n                .sspt-cell-empty::before {\r\n                    content: none !important;\r\n                }\r\n            }\r\n        <\/style>\r\n\r\n        <div id=\"mhsc-sspt-app\" data-office-id=\"10892\" data-is-member=\"0\">\r\n            <div class=\"sspt-loading\" id=\"sspt-loading\">\r\n                <div class=\"sspt-loader-wrap\">\r\n                    <div class=\"sspt-puck\">\r\n                        <img decoding=\"async\" src=\"https:\/\/statshockeymineur.com\/wp-content\/uploads\/2026\/01\/MHSC-480x480_trans-150x150.png\" alt=\"MHSC\">\r\n                    <\/div>\r\n                    <div class=\"sspt-loader-text\"><\/div>\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <div class=\"sspt-header\">\r\n                <h3 class=\"sspt-title\">Team Identity @ Super Serie Powered by True<\/h3>\r\n            <\/div>\r\n\r\n            <div class=\"sspt-intro\">\r\n                <p>This tool shows the active players for the Super Series teams - Powered by True. As the data is not archived, it is best to check this view during the tournament period to ensure accuracy of the information, as lineups may change frequently.<\/p>\r\n                <p class=\"translation-block\">The <a class=\"sspt-intro-link\" href=\"https:\/\/page.spordle.com\/fr\/superseries\" target=\"_blank\" rel=\"noopener noreferrer\" title=\"New tab\">Super Serie<\/a>  is the largest group of minor hockey tournaments in Canada. The Regulation on <a class=\"sspt-intro-link\" href=\"https:\/\/page.spordle.com\/fr\/superseries\/documents\" target=\"_blank\" rel=\"noopener noreferrer\" title=\"Ouvre dans un nouvel onglet\">eligible players<\/a> is available on their website.<\/p>\r\n                <p class=\"translation-block\"><span class=\"sspt-intro-strong\">Warning:<\/span> The Super Series and MHSC are separate entities. This data is provided for reference purposes only and has no official value for a protest. For any formal verification, contact the registrar.<\/p>\r\n            <\/div>\r\n\r\n            <div class=\"sspt-filters\">\r\n                <label class=\"sspt-control\">\r\n                    <span class=\"sspt-label\">Tournament<\/span>\r\n                    <select id=\"sspt-tournament\" class=\"sspt-select\"><\/select>\r\n                <\/label>\r\n                <label class=\"sspt-control\">\r\n                    <span class=\"sspt-label\">Level \/ Category<\/span>\r\n                    <select id=\"sspt-category\" class=\"sspt-select\"><\/select>\r\n                <\/label>\r\n                <label class=\"sspt-control\">\r\n                    <span class=\"sspt-label\">Team<\/span>\r\n                    <select id=\"sspt-team\" class=\"sspt-select\"><\/select>\r\n                <\/label>\r\n            <\/div>\r\n\r\n            <button id=\"sspt-load\" type=\"button\">Load players &amp; MHSC matching<\/button>\r\n            <div id=\"sspt-status\"><\/div>\r\n            <div id=\"sspt-results\"><\/div>\r\n        <\/div>\r\n\r\n        <div id=\"sspt-auth-modal\" class=\"sspt-auth-modal\" role=\"dialog\" aria-modal=\"true\" aria-label=\"Statistiques verrouillees\">\r\n            <div class=\"sspt-auth-card\" id=\"sspt-auth-card\">\r\n                <div class=\"sspt-auth-icon\">\ud83d\udd12<\/div>\r\n                <h4 class=\"sspt-auth-title\">Locked Statistics<\/h4>\r\n                <p class=\"sspt-auth-text\">Log in to your MHSC account to unlock full player stats.<\/p>\r\n                <a href=\"https:\/\/statshockeymineur.com\/wp-login.php?redirect_to=https%3A%2F%2Fstatshockeymineur.com%2Fen%2Fwp-json%2Fwp%2Fv2%2Fpages%2F4774\" class=\"sspt-auth-btn primary\">Log In<\/a>\r\n                <a href=\"https:\/\/buy.stripe.com\/5kQdRba335cEchxdZK8bS01?locale=en\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"sspt-auth-btn secondary\">Become a Member<\/a>\r\n                <button type=\"button\" class=\"sspt-auth-close\" id=\"sspt-auth-close\">Maybe later<\/button>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <script>\r\n        (function() {\r\n            const root = document.getElementById('mhsc-sspt-app');\r\n            if (!root) return;\r\n\r\n            const statusEl = document.getElementById('sspt-status');\r\n            const resultsEl = document.getElementById('sspt-results');\r\n            const tournamentEl = document.getElementById('sspt-tournament');\r\n            const categoryEl = document.getElementById('sspt-category');\r\n            const teamEl = document.getElementById('sspt-team');\r\n            const loadBtn = document.getElementById('sspt-load');\r\n            const loadingEl = document.getElementById('sspt-loading');\r\n            const authModalEl = document.getElementById('sspt-auth-modal');\r\n            const authCloseEl = document.getElementById('sspt-auth-close');\r\n\r\n            if (authCloseEl) {\r\n                authCloseEl.addEventListener('click', function() {\r\n                    authModalEl.classList.remove('active');\r\n                });\r\n            }\r\n\r\n            if (authModalEl) {\r\n                authModalEl.addEventListener('click', function(event) {\r\n                    if (event.target === authModalEl) {\r\n                        authModalEl.classList.remove('active');\r\n                    }\r\n                });\r\n            }\r\n\r\n            function showAuthModal() {\r\n                if (authModalEl) {\r\n                    authModalEl.classList.add('active');\r\n                }\r\n            }\r\n\r\n            function setStatus(msg) {\r\n                statusEl.textContent = msg || '';\r\n            }\r\n\r\n            function setLoading(isLoading, message) {\r\n                if (isLoading) {\r\n                    loadingEl.classList.add('active');\r\n                } else {\r\n                    loadingEl.classList.remove('active');\r\n                }\r\n\r\n                if (message) {\r\n                    setStatus(message);\r\n                }\r\n            }\r\n\r\n            function escapeHtml(v) {\r\n                return String(v || '').replace(\/[&<>\\\"']\/g, function(ch) {\r\n                    const map = {'&':'&amp;','<':'&lt;','>':'&gt;','\\\"':'&quot;',\"'\":'&#039;'};\r\n                    return map[ch] || ch;\r\n                });\r\n            }\r\n\r\n            function slugifyTeamName(name) {\r\n                const raw = String(name || '');\r\n                const base = raw.normalize ? raw.normalize('NFD').replace(\/[\\u0300-\\u036f]\/g, '') : raw;\r\n                return base\r\n                    .toUpperCase()\r\n                    .replace(\/[^A-Z0-9]+\/g, '-')\r\n                    .replace(\/^-+|-+$\/g, '') || 'EQUIPE';\r\n            }\r\n\r\n            function buildTeamUrl(teamId, teamName) {\r\n                const id = parseInt(teamId || '0', 10);\r\n                if (!id) {\r\n                    return '';\r\n                }\r\n                const slug = slugifyTeamName(teamName);\r\n                return 'https:\/\/statshockeymineur.com\/classement\/equipe\/' + encodeURIComponent(id) + '\/' + encodeURIComponent(slug) + '\/';\r\n            }\r\n\r\n            function formatUpdateStamp(dateObj) {\r\n                const date = dateObj instanceof Date ? dateObj : new Date();\r\n                const pad = function(v) {\r\n                    return String(v).padStart(2, '0');\r\n                };\r\n\r\n                return date.getFullYear() + '-' + pad(date.getMonth() + 1) + '-' + pad(date.getDate()) + ' ' + pad(date.getHours()) + ':' + pad(date.getMinutes());\r\n            }\r\n\r\n            function lockIconHtml() {\r\n                return '<span class=\"sspt-lock-action\" title=\"Statistique reservee aux membres\" aria-label=\"Statistique reservee aux membres\">\ud83d\udd12<\/span>';\r\n            }\r\n\r\n            function isGoalieMember(positions) {\r\n                return (positions || []).some(function(p) {\r\n                    return String(p || '').toUpperCase().trim() === 'G';\r\n                });\r\n            }\r\n\r\n            function isPlayerPosition(pos) {\r\n                const normalized = String(pos || '').toUpperCase().trim();\r\n                return ['F', 'C', 'D', 'G', 'P', 'D,F', 'D,G', 'F,C', 'F,D'].indexOf(normalized) !== -1;\r\n            }\r\n\r\n            function isCoachMember(positions) {\r\n                if (!Array.isArray(positions) || !positions.length) {\r\n                    return true;\r\n                }\r\n\r\n                return !positions.some(function(p) {\r\n                    return isPlayerPosition(p);\r\n                });\r\n            }\r\n\r\n            function formatGoalieGaa(value) {\r\n                const num = Number(value || 0);\r\n                if (!Number.isFinite(num)) {\r\n                    return '0.00';\r\n                }\r\n\r\n                return num.toFixed(2);\r\n            }\r\n\r\n            function statCell(label, valueHtml, cls) {\r\n                const className = cls ? 'sspt-stat-cell ' + cls : 'sspt-stat-cell';\r\n                return '<span class=\"' + className + '\"><span class=\"sspt-stat-label\">' + label + '<\/span><span class=\"sspt-stat-value\">' + valueHtml + '<\/span><\/span>';\r\n            }\r\n\r\n            function buildStatsLine(match, isGoalie, isMember) {\r\n                const skaterPj = parseInt(match.skaterPJ || 0, 10);\r\n                const skaterG = parseInt(match.skaterG || 0, 10);\r\n                const skaterA = parseInt(match.skaterA || 0, 10);\r\n                const skaterPts = parseInt(match.skaterPTS || 0, 10);\r\n                const goaliePj = parseInt(match.goaliePJ || 0, 10);\r\n                const goalieW = parseInt(match.goalieW || 0, 10);\r\n                const goalieL = parseInt(match.goalieL || 0, 10);\r\n                const goalieT = parseInt(match.goalieT || 0, 10);\r\n                const goalieGaa = formatGoalieGaa(match.goalieGAA || 0);\r\n\r\n                let html = '<div class=\"sspt-stat-strip\">';\r\n\r\n                if (isGoalie) {\r\n                    if (isMember) {\r\n                        html += statCell('PJ', String(goaliePj), '');\r\n                        html += statCell('V-D-N', goalieW + '-' + goalieL + '-' + goalieT, '');\r\n                        html += statCell('MOY', goalieGaa, 'is-pts');\r\n                        html += '<\/div>';\r\n                        return html;\r\n                    }\r\n\r\n                    html += statCell('PJ', String(goaliePj), '');\r\n                    html += statCell('V-D-N', lockIconHtml(), 'is-locked');\r\n                    html += statCell('MOY', lockIconHtml(), 'is-locked is-pts');\r\n                    html += '<\/div><div class=\"sspt-match-upsell js-sspt-upsell\">Devenir membre pour voir les stats -><\/div>';\r\n                    return html;\r\n                }\r\n\r\n                if (isMember) {\r\n                    html += statCell('PJ', String(skaterPj), '');\r\n                    html += statCell('B', String(skaterG), '');\r\n                    html += statCell('P', String(skaterA), '');\r\n                    html += statCell('PTS', String(skaterPts), 'is-pts');\r\n                    html += '<\/div>';\r\n                    return html;\r\n                }\r\n\r\n                html += statCell('PJ', String(skaterPj), '');\r\n                html += statCell('B', lockIconHtml(), 'is-locked');\r\n                html += statCell('P', lockIconHtml(), 'is-locked');\r\n                html += statCell('PTS', lockIconHtml(), 'is-locked is-pts');\r\n                html += '<\/div><div class=\"sspt-match-upsell js-sspt-upsell\">Devenir membre pour voir les stats -><\/div>';\r\n                return html;\r\n            }\r\n\r\n            function ensureHtml2Canvas() {\r\n                if (window.html2canvas) {\r\n                    return Promise.resolve(window.html2canvas);\r\n                }\r\n\r\n                return new Promise(function(resolve, reject) {\r\n                    const script = document.createElement('script');\r\n                    script.src = 'https:\/\/cdn.jsdelivr.net\/npm\/html2canvas@1.4.1\/dist\/html2canvas.min.js';\r\n                    script.async = true;\r\n                    script.onload = function() {\r\n                        if (window.html2canvas) {\r\n                            resolve(window.html2canvas);\r\n                        } else {\r\n                            reject(new Error('html2canvas introuvable.'));\r\n                        }\r\n                    };\r\n                    script.onerror = function() {\r\n                        reject(new Error('Impossible de charger html2canvas.'));\r\n                    };\r\n                    document.head.appendChild(script);\r\n                });\r\n            }\r\n\r\n            async function exportCompressedImage() {\r\n                const blob = await generateCaptureBlob();\r\n                if (!blob) {\r\n                    return;\r\n                }\r\n\r\n                try {\r\n                    const fileName = 'matching-mhsc-' + Date.now() + '.png';\r\n\r\n                    if (navigator.canShare && navigator.share) {\r\n                        const file = new File([blob], fileName, { type: 'image\/png' });\r\n                        if (navigator.canShare({ files: [file] })) {\r\n                            await navigator.share({\r\n                                files: [file],\r\n                                title: 'Matching MHSC',\r\n                                text: 'Capture du matching MHSC'\r\n                            });\r\n                            setStatus('Image prete et partagee.');\r\n                            return;\r\n                        }\r\n                    }\r\n\r\n                    const url = URL.createObjectURL(blob);\r\n                    const a = document.createElement('a');\r\n                    a.href = url;\r\n                    a.download = fileName;\r\n                    document.body.appendChild(a);\r\n                    a.click();\r\n                    a.remove();\r\n                    URL.revokeObjectURL(url);\r\n                    setStatus('Image exportee (PNG).');\r\n                } catch (e) {\r\n                    setStatus('Erreur export image: ' + e.message);\r\n                }\r\n            }\r\n\r\n            async function previewCompressedImage() {\r\n                const blob = await generateCaptureBlob();\r\n                if (!blob) {\r\n                    return;\r\n                }\r\n\r\n                const imageUrl = URL.createObjectURL(blob);\r\n                const win = window.open('', '_blank');\r\n                if (!win) {\r\n                    URL.revokeObjectURL(imageUrl);\r\n                    setStatus('Autorise les popups pour afficher l\\'image dans le navigateur.');\r\n                    return;\r\n                }\r\n\r\n                win.document.open();\r\n                win.document.write('<!doctype html><html lang=\"fr\"><head><meta charset=\"utf-8\"><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"><title>Apercu image - Matching MHSC<\/title><style>body{margin:0;background:#0f172a;display:grid;place-items:center;min-height:100vh;padding:12px}img{max-width:min(100%,430px);height:auto;border-radius:12px;box-shadow:0 14px 34px rgba(2,6,23,.45);background:#fff}a{position:fixed;top:10px;right:10px;color:#dbeafe;background:#1e3a8a;padding:6px 10px;border-radius:8px;font:700 12px\/1 Segoe UI,Arial,sans-serif;text-decoration:none}<\/style><\/head><body><a href=\"' + imageUrl + '\" download=\"matching-mhsc-preview.png\">Telecharger<\/a><img decoding=\"async\" src=\"' + imageUrl + '\" alt=\"Apercu matching MHSC\"><\/body><\/html>');\r\n                win.document.close();\r\n                setTimeout(function() {\r\n                    URL.revokeObjectURL(imageUrl);\r\n                }, 120000);\r\n                setStatus('Apercu image ouvert dans un nouvel onglet.');\r\n            }\r\n\r\n            async function generateCaptureBlob() {\r\n                const contextEl = resultsEl.querySelector('.sspt-context');\r\n                const tableEl = resultsEl.querySelector('.sspt-table');\r\n                if (!tableEl) {\r\n                    return null;\r\n                }\r\n\r\n                setStatus('Preparation de l\\'image...');\r\n\r\n                const captureHost = document.createElement('div');\r\n                captureHost.className = 'sspt-capture-mode';\r\n\r\n                const watermark = document.createElement('div');\r\n                watermark.className = 'sspt-capture-watermark';\r\n                for (let i = 0; i < 15; i++) {\r\n                    const mark = document.createElement('span');\r\n                    mark.textContent = 'https:\/\/statshockeymineur.com';\r\n                    watermark.appendChild(mark);\r\n                }\r\n                captureHost.appendChild(watermark);\r\n\r\n                const brandHeader = document.createElement('div');\r\n                brandHeader.className = 'sspt-capture-head';\r\n                brandHeader.innerHTML =\r\n                    '<img decoding=\"async\" src=\"https:\/\/statshockeymineur.com\/wp-content\/uploads\/2026\/01\/MHSC-480x480_trans-150x150.png\" alt=\"MHSC\">' +\r\n                    '<div class=\"sspt-capture-head-main\">' +\r\n                        '<div class=\"sspt-capture-head-title\">Stats Hockey Mineur<\/div>' +\r\n                        '<div class=\"sspt-capture-head-url\">statshockeymineur.com<\/div>' +\r\n                    '<\/div>';\r\n                captureHost.appendChild(brandHeader);\r\n\r\n                const wrap = document.createElement('div');\r\n                wrap.className = 'capture-wrap';\r\n\r\n                if (contextEl) {\r\n                    wrap.appendChild(contextEl.cloneNode(true));\r\n                }\r\n\r\n                const tableClone = tableEl.cloneNode(true);\r\n                tableClone.querySelectorAll('.sspt-dismiss-match').forEach(function(btn) {\r\n                    btn.remove();\r\n                });\r\n                tableClone.querySelectorAll('.sspt-match-upsell').forEach(function(cta) {\r\n                    cta.remove();\r\n                });\r\n                wrap.appendChild(tableClone);\r\n                captureHost.appendChild(wrap);\r\n                document.body.appendChild(captureHost);\r\n\r\n                try {\r\n                    const html2canvas = await ensureHtml2Canvas();\r\n                    const canvas = await html2canvas(captureHost, {\r\n                        backgroundColor: '#eef3fa',\r\n                        scale: Math.min(3, window.devicePixelRatio > 1 ? window.devicePixelRatio : 2),\r\n                        useCORS: true,\r\n                        logging: false\r\n                    });\r\n\r\n                    const blob = await new Promise(function(resolve) {\r\n                        canvas.toBlob(resolve, 'image\/png', 1);\r\n                    });\r\n\r\n                    if (!blob) {\r\n                        throw new Error('Generation de l\\'image impossible.');\r\n                    }\r\n\r\n                    return blob;\r\n                } catch (e) {\r\n                    setStatus('Erreur export image: ' + e.message);\r\n                    return null;\r\n                } finally {\r\n                    captureHost.remove();\r\n                }\r\n            }\r\n\r\n            async function api(path) {\r\n                const res = await fetch(path, { credentials: 'same-origin' });\r\n                if (!res.ok) {\r\n                    const txt = await res.text();\r\n                    throw new Error('HTTP ' + res.status + ' - ' + txt);\r\n                }\r\n                return res.json();\r\n            }\r\n\r\n            function fillSelect(el, rows, valueKey, labelKey, placeholder) {\r\n                el.innerHTML = '';\r\n                const first = document.createElement('option');\r\n                first.value = '';\r\n                first.textContent = placeholder;\r\n                el.appendChild(first);\r\n\r\n                rows.forEach(function(row) {\r\n                    const opt = document.createElement('option');\r\n                    opt.value = row[valueKey];\r\n                    opt.textContent = row[labelKey];\r\n                    el.appendChild(opt);\r\n                });\r\n            }\r\n\r\n            async function loadTournaments() {\r\n                const rows = await api('\/wp-json\/sspt\/v1\/tournaments');\r\n                fillSelect(tournamentEl, rows, 'officeId', 'name', 'Choisir un tournoi');\r\n                fillSelect(categoryEl, [], 'categoryId', 'categoryName', 'Choisir un niveau');\r\n                fillSelect(teamEl, [], 'teamId', 'teamName', 'Choisir une equipe');\r\n                setStatus('Choisis un tournoi pour charger les categories.');\r\n            }\r\n\r\n            async function loadCategories() {\r\n                const officeId = parseInt(tournamentEl.value || root.dataset.officeId || '0', 10);\r\n                if (!officeId) {\r\n                    fillSelect(categoryEl, [], 'categoryId', 'categoryName', 'Aucun niveau');\r\n                    fillSelect(teamEl, [], 'teamId', 'teamName', 'Aucune equipe');\r\n                    return;\r\n                }\r\n\r\n                setLoading(true, '');\r\n                try {\r\n                    const rows = await api('\/wp-json\/sspt\/v1\/categories?officeId=' + encodeURIComponent(officeId));\r\n                    fillSelect(categoryEl, rows, 'categoryId', 'categoryName', 'Choisir un niveau');\r\n                    fillSelect(teamEl, [], 'teamId', 'teamName', 'Choisir une equipe');\r\n                } finally {\r\n                    setLoading(false, '');\r\n                }\r\n            }\r\n\r\n            async function loadTeams() {\r\n                const officeId = parseInt(tournamentEl.value || '0', 10);\r\n                const categoryId = categoryEl.value;\r\n                if (!officeId || !categoryId) {\r\n                    fillSelect(teamEl, [], 'teamId', 'teamName', 'Choisir une equipe');\r\n                    return;\r\n                }\r\n\r\n                setLoading(true, 'Chargement des equipes...');\r\n                try {\r\n                    const rows = await api('\/wp-json\/sspt\/v1\/teams?officeId=' + encodeURIComponent(officeId) + '&categoryId=' + encodeURIComponent(categoryId));\r\n                    fillSelect(teamEl, rows, 'teamId', 'teamName', 'Choisir une equipe');\r\n                } finally {\r\n                    setLoading(false, '');\r\n                }\r\n            }\r\n\r\n            function renderMembers(data, teamName, categoryDisplay) {\r\n                const rows = (data && data.members) ? data.members : [];\r\n                const updatedAt = formatUpdateStamp(new Date());\r\n                const isMember = root.dataset.isMember === '1';\r\n\r\n                let contextHtml = '';\r\n                if (teamName || categoryDisplay) {\r\n                    contextHtml += '<div class=\"sspt-context\">';\r\n                    if (teamName) {\r\n                        contextHtml += '<span class=\"sspt-context-team\">' + escapeHtml(teamName) + '<\/span>';\r\n                    }\r\n                    if (teamName && categoryDisplay) {\r\n                        contextHtml += '<span class=\"sspt-context-sep\">|<\/span>';\r\n                    }\r\n                    if (categoryDisplay) {\r\n                        contextHtml += '<span class=\"sspt-context-category\">' + escapeHtml(categoryDisplay) + '<\/span>';\r\n                    }\r\n                    contextHtml += '<div class=\"sspt-context-update\">Mise a jour au ' + escapeHtml(updatedAt) + ' :<\/div>';\r\n                    contextHtml += '<\/div>';\r\n                }\r\n\r\n                if (!rows.length) {\r\n                    resultsEl.innerHTML = contextHtml + '<div style=\"padding:16px;\" class=\"sspt-empty\">Aucun joueur trouve.<\/div>';\r\n                    return;\r\n                }\r\n\r\n                let html = contextHtml;\r\n                html += '<table class=\"sspt-table\">';\r\n                html += '<thead><tr>';\r\n                html += '<th>Joueur<\/th>';\r\n                html += '<th>Correspondances MHSC<\/th>';\r\n                html += '<\/tr><\/thead><tbody>';\r\n\r\n                rows.forEach(function(row) {\r\n                    const positions = row.positions || [];\r\n                    const isGoalie = isGoalieMember(positions);\r\n                    const isCoach = !isGoalie && isCoachMember(positions);\r\n                    const roleTag = isGoalie\r\n                        ? ' <span class=\"sspt-role-badge goalie\">Goalie<\/span>'\r\n                        : (isCoach ? ' <span class=\"sspt-role-badge coach\">Coach<\/span>' : '');\r\n                    html += '<tr>';\r\n                    html += '<td data-label=\"Joueur\"><span class=\"sspt-person\">' + escapeHtml(row.fullName) + roleTag + '<\/span><\/td>';\r\n\r\n                    const matches = row.mhscMatches || [];\r\n                    if (isCoach) {\r\n                        html += '<td class=\"sspt-cell-empty\" data-label=\"Correspondances\"><\/td>';\r\n                    } else if (!matches.length) {\r\n                        html += '<td data-label=\"Correspondances\"><span class=\"sspt-empty\">Aucune correspondance MHSC<\/span><\/td>';\r\n                    } else {\r\n                        html += '<td data-label=\"Correspondances\">';\r\n                        html += '<div class=\"sspt-match-list\">';\r\n                        matches.forEach(function(m) {\r\n                            const category = (m.category || '').trim();\r\n                            const level = (m.level || '').trim();\r\n                            const metaCat = (level && category && category.toUpperCase().indexOf(level.toUpperCase()) !== -1) ? category : (category || level || 'N\/A');\r\n                            const currentTeamName = m.mainTeam || 'N\/A';\r\n                            const teamUrl = buildTeamUrl(m.teamId, currentTeamName);\r\n                            const teamHtml = teamUrl\r\n                                ? '<a href=\"' + escapeHtml(teamUrl) + '\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"sspt-team-link\">' + escapeHtml(currentTeamName) + '<\/a>'\r\n                                : escapeHtml(currentTeamName);\r\n                            const logo = m.teamLogo ? '<img decoding=\"async\" class=\"sspt-logo\" src=\"' + escapeHtml(m.teamLogo) + '\" alt=\"logo\">' : '<span class=\"sspt-logo\"><\/span>';\r\n                            html += '<div class=\"sspt-match-item\">';\r\n                            html += logo;\r\n                            html += '<div class=\"sspt-match-main\">';\r\n                                html += '<div class=\"sspt-match-name\">' + teamHtml + '<\/div>';\r\n                                html += '<div class=\"sspt-match-meta\">' + escapeHtml(metaCat) + '<\/div>';\r\n                                html += '<div class=\"sspt-match-stats\">' + buildStatsLine(m, isGoalie, isMember) + '<\/div>';\r\n                            html += '<\/div>';\r\n                            if (matches.length > 1) {\r\n                                html += '<button class=\"sspt-dismiss-match\" type=\"button\" title=\"Retirer cette correspondance\" aria-label=\"Retirer cette correspondance\">\u00d7<\/button>';\r\n                            }\r\n                            html += '<\/div>';\r\n                        });\r\n                        html += '<\/div>';\r\n                        html += '<\/td>';\r\n                    }\r\n\r\n                    html += '<\/tr>';\r\n                });\r\n\r\n                html += '<\/tbody><\/table>';\r\n                html += '<div class=\"sspt-result-actions\">';\r\n                html += '<button type=\"button\" class=\"sspt-compress-btn js-sspt-preview\">Afficher au format image<\/button>';\r\n                html += '<button type=\"button\" class=\"sspt-compress-btn js-sspt-compress\">Exporter image PNG<\/button>';\r\n                html += '<\/div>';\r\n                resultsEl.innerHTML = html;\r\n            }\r\n\r\n            resultsEl.addEventListener('click', function(event) {\r\n                const lockEl = event.target.closest('.sspt-lock-action');\r\n                if (lockEl) {\r\n                    showAuthModal();\r\n                    return;\r\n                }\r\n\r\n                const upsellEl = event.target.closest('.js-sspt-upsell');\r\n                if (upsellEl) {\r\n                    showAuthModal();\r\n                    return;\r\n                }\r\n\r\n                const dismissBtn = event.target.closest('.sspt-dismiss-match');\r\n                const previewBtn = event.target.closest('.js-sspt-preview');\r\n                const compressBtn = event.target.closest('.js-sspt-compress');\r\n                if (previewBtn) {\r\n                    previewCompressedImage();\r\n                    return;\r\n                }\r\n\r\n                if (compressBtn) {\r\n                    exportCompressedImage();\r\n                    return;\r\n                }\r\n\r\n                if (!dismissBtn) {\r\n                    return;\r\n                }\r\n\r\n                const itemEl = dismissBtn.closest('.sspt-match-item');\r\n                const listEl = dismissBtn.closest('.sspt-match-list');\r\n                const cellEl = dismissBtn.closest('td');\r\n                if (!itemEl || !listEl || !cellEl) {\r\n                    return;\r\n                }\r\n\r\n                itemEl.remove();\r\n                const remaining = listEl.querySelectorAll('.sspt-match-item');\r\n\r\n                if (!remaining.length) {\r\n                    cellEl.innerHTML = '<span class=\"sspt-empty\">Aucune correspondance MHSC<\/span>';\r\n                    return;\r\n                }\r\n\r\n                if (remaining.length === 1) {\r\n                    listEl.querySelectorAll('.sspt-dismiss-match').forEach(function(btn) {\r\n                        btn.remove();\r\n                    });\r\n                }\r\n            });\r\n\r\n            loadBtn.addEventListener('click', async function() {\r\n                try {\r\n                    const teamId = parseInt(teamEl.value || '0', 10);\r\n                    if (!teamId) {\r\n                        setStatus('Selectionne une equipe.');\r\n                        return;\r\n                    }\r\n\r\n                    setLoading(true, 'Chargement des joueurs et matching MHSC...');\r\n                    const selectedTeam = teamEl.options[teamEl.selectedIndex] ? teamEl.options[teamEl.selectedIndex].textContent.trim() : '';\r\n                    const selectedCategory = categoryEl.options[categoryEl.selectedIndex] ? categoryEl.options[categoryEl.selectedIndex].textContent.trim() : '';\r\n                    const payload = '\/wp-json\/sspt\/v1\/team-members?teamId=' + encodeURIComponent(teamId) + '&categoryName=' + encodeURIComponent(selectedCategory);\r\n                    const data = await api(payload);\r\n                    renderMembers(data, selectedTeam, selectedCategory);\r\n                    setStatus('Matching termine.');\r\n                } catch (e) {\r\n                    setStatus('Erreur: ' + e.message);\r\n                } finally {\r\n                    setLoading(false, '');\r\n                }\r\n            });\r\n\r\n            tournamentEl.addEventListener('change', async function() {\r\n                await loadCategories();\r\n                resultsEl.innerHTML = '';\r\n                setStatus('');\r\n            });\r\n\r\n            categoryEl.addEventListener('change', async function() {\r\n                await loadTeams();\r\n                resultsEl.innerHTML = '';\r\n                setStatus('');\r\n            });\r\n\r\n            loadTournaments().catch(function(e) {\r\n                setStatus('Erreur initialisation: ' + e.message);\r\n            });\r\n        })();\r\n        <\/script>\r\n        <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":17,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_uag_custom_page_level_css":"","site-sidebar-layout":"no-sidebar","site-content-layout":"page-builder","ast-site-content-layout":"full-width-container","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":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","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":"set","ast-page-background-enabled":"default","ast-page-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":"","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-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":"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":""},"mobile":{"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":""}},"footnotes":""},"class_list":["post-4774","page","type-page","status-publish","hentry"],"_hostinger_reach_plugin_has_subscription_block":false,"_hostinger_reach_plugin_is_elementor":false,"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"trp-custom-language-flag":false,"mailpoet_newsletter_max":false},"uagb_author_info":{"display_name":"Sebastien2 Lariviere2","author_link":"https:\/\/statshockeymineur.com\/en\/author\/sebastiengtlariviere-ca\/"},"uagb_comment_info":0,"uagb_excerpt":null,"_links":{"self":[{"href":"https:\/\/statshockeymineur.com\/en\/wp-json\/wp\/v2\/pages\/4774","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/statshockeymineur.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/statshockeymineur.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/statshockeymineur.com\/en\/wp-json\/wp\/v2\/users\/17"}],"replies":[{"embeddable":true,"href":"https:\/\/statshockeymineur.com\/en\/wp-json\/wp\/v2\/comments?post=4774"}],"version-history":[{"count":7,"href":"https:\/\/statshockeymineur.com\/en\/wp-json\/wp\/v2\/pages\/4774\/revisions"}],"predecessor-version":[{"id":4784,"href":"https:\/\/statshockeymineur.com\/en\/wp-json\/wp\/v2\/pages\/4774\/revisions\/4784"}],"wp:attachment":[{"href":"https:\/\/statshockeymineur.com\/en\/wp-json\/wp\/v2\/media?parent=4774"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}